PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 131
fileStructure = $struct; } /** * Returns true when this entry represents a directory. * * @return bool */ public function isDirectory() { return ( $this->fileStructure->type == self::IS_DIRECTORY ); } /** * Returns true when this entry represents a file. * * @return bool */ public function isFile() { return ( $this->fileStructure->type == self::IS_FILE ); } /** * Returns true when this entry represents a hard link. * * @return bool */ public function isHardLink() { return ( $this->fileStructure->type == self::IS_LINK ); } /** * Returns true when this entry represents a symbolic link. * * @return bool */ public function isSymLink() { return ( $this->fileStructure->type == self::IS_SYMBOLIC_LINK ); } /** * Returns true when this entry represents a symbolic or a hard link. * * @return bool */ public function isLink() { return ( $this->isHardLink() || $this->isSymLink() ); } /** * Returns type of the entry. * * @return int Possible values are: {@link IS_LINK}, {@link IS_SYMBOLIC_LINK}, {@link IS_CHARACTER_DEVICE}, {@link IS_BLOCK_DEVICE}, * {@link IS_DIRECTORY}, or {@link IS_FIFO}. */ public function getType() { return $this->fileStructure->type; } /** * Returns the user ID of the entry. * * @return int */ public function getUserId() { return $this->fileStructure->uid; } /** * Returns the group ID of the entry. * * @return int */ public function getGroupId() { return $this->fileStructure->gid; } /** * Returns the complete path or path without the prefix. * * By default the full path is returned, unless the $withPrefix is set * to true. * * @param bool $withPrefix * * @return string */ public function getPath( $withPrefix = true ) { if ( $withPrefix ) { return $this->fileStructure->path; } else { return $this->getPathWithoutPrefix( $this->fileStructure->path, $this->prefix ); } } /** * Returns the path without the prefix. * * The path without the prefix is returned. * If the prefix doesn't match with the complete path, the whole path is returned. * * @param string $completePath * @param string $prefix * @return string */ private function getPathWithoutPrefix( $completePath, $prefix ) { $prefixLength = strlen( $prefix ); if ( strcmp( substr( $completePath, 0, $prefixLength ), $prefix ) == 0 ) { $i = 0; // Check next character while ( $completePath[$i + $prefixLength] == "/" ) { $i++; } $result = substr( $completePath, $prefixLength + $i ); return $result; } else { // No match. return $completePath; } } /** * Removes the prefix from the path and clears the prefix. * * This method is useful when it comes to adding a entry to an archive * and the complete path to the file is no longer needed. */ public function removePrefixFromPath() { $this->fileStructure->path = $this->getPathWithoutPrefix( $this->fileStructure->path, $this->prefix ); $this->prefix = ""; } /** * Returns the link with or without prefix. * * This method is similar to {@link getPath()}, but returns the link instead of the path. * If the current does not represents a link, an empty string is returned. * Use the {@link isLink()} method to see if the current entry is a link. * * @param bool $withPrefix */ public function getLink( $withPrefix = true ) { if ( $withPrefix ) { return $this->fileStructure->link; } else { return $this->getPathWithoutPrefix( $this->fileStructure->link, $this->prefix ); } } /** * Returns a bit mask representing the permissions of this entry. * * It returns the permissions in octal numbers as a string, for example: * "0000755" * * @return string */ public function getPermissions() { return $this->fileStructure->mode; } /** * Returns the file size. * * @return int */ public function getSize() { return $this->fileStructure->size; } /** * Returns the modification time as a timestamp. * * @return int */ public function getModificationTime() { return $this->fileStructure->mtime; } /** * Returns the last access time as a timestamp. * * @return int */ public function getAccessTime() { return $this->fileStructure->atime; } /** * Returns the inode. * * @return int */ public function getInode() { return $this->fileStructure->ino; } /** * Returns the major device number. * * @return int */ public function getMajor() { return $this->fileStructure->major; } /** * Returns the minor device number. * * @return int */ public function getMinor() { return $this->fileStructure->minor; } /** * Returns the device. * * FIXME DEPRECATED? * * @return int */ public function getDevice() { return $this->fileStructure->device; } /** * Returns the permissions as a string. * * If the entry has all the permissions, it will return: "rwxrwx" Where the first three letters * represent the group permissions and the last three letters the user permissions. * * @return string */ public function getPermissionsString() { $out = ""; $perm = octdec( $this->getPermissions() ); for ( $i = 6; $i >= 0; $i -= 3 ) { $part = ( $perm >> $i ); if ( $part & 4 ) { $out .= "r"; } else { $out .= "-"; } if ( $part & 2 ) { $out .= "w"; } else { $out .= "-"; } if ( $part & 1 ) { $out .= "x"; } else { $out .= "-"; } } return $out; } /** * Returns the type string for the current type of the entry. * * Returns a type string for the current entry. If the entry is a: * - directory: "d". * - file: "-". * - symbolic link: "l". * - hard link: "h". * * @return string */ public function getTypeString() { switch ( $this->fileStructure->type ) { case self::IS_DIRECTORY: return "d"; case self::IS_FILE: return "-"; case self::IS_SYMBOLIC_LINK: return "l"; case self::IS_LINK: return "h"; default: return "Z"; } } /** * Sets the prefix. * * @param string $prefix */ public function setPrefix( $prefix ) { $this->prefix = $prefix; } /** * Returns the prefix. * * @return string */ public function getPrefix( ) { return $this->prefix; } /** * Returns a string representing the current entry. * * @return string */ public function __toString() { $out = $this->getTypeString(); $out .= $this->getPermissionsString(); $out .= " "; $out .= $this->getUserId() . " "; $out .= $this->getGroupId() . " "; $out .= str_pad( $this->getSize(), 7, " ", STR_PAD_LEFT ) . " "; $out .= date( "Y-m-d H:i:s ", $this->getModificationTime() ); $out .= $this->getPath(); $out .= ( $this->isLink() ? " -> " . $this->getLink() : "" ); return $out; } /** * Create a file structure from a $file in the file system. * * @param string $file * @return ezcArchiveFileStructure */ protected static function getFileStructureFromFile( $file ) { clearstatcache(); $stat = ( is_link( $file ) ? lstat( $file ) : stat( $file ) ); $lstat = lstat( $file ); // Set the file information. $struct = new ezcArchiveFileStructure(); $struct->path = $file; $struct->gid = $stat["gid"]; $struct->uid = $stat["uid"]; $struct->mtime = $stat["mtime"]; $struct->atime = $stat["atime"]; $struct->mode = decoct( $stat["mode"] & ezcArchiveStatMode::S_PERM_MASK ); // First bits describe the type. $struct->ino = $stat["ino"]; $struct->type = self::getLinkType( $stat ); if ( $struct->type == ezcArchiveEntry::IS_FILE ) { $struct->size = $stat["size"]; } else { $struct->size = 0; } if ( $struct->type == ezcArchiveEntry::IS_SYMBOLIC_LINK ) { $struct->link = readlink( $file ); } $rdev = $stat["rdev"]; if ( $rdev == -1 ) { if ( $struct->type == ezcArchiveEntry::IS_BLOCK_DEVICE || $struct->type == ezcArchiveEntry::IS_CHARACTER_DEVICE) { throw new ezcArchiveException( "Cannot add a device to the TAR because the device type cannot be determined. Your system / PHP version does not support 'st_blksize'." ); } $rdev = 0; } $struct->major = ( int ) ( $rdev / 256 ); $struct->minor = ( int ) ( $rdev % 256 ); return $struct; } /** * Returns one or an array of ezcArchiveEntry's from one or multiple files in the file system. * * One or multiple ezcArchiveEntry's are created upon the given files. * The prefix will directly set for the ezcArchiveEntry with $prefix. * * If $files contains a path to a file, then one ezcArchiveEntry will be created and returned. * If $files is an array of paths, then all those ezcArchiveEntry's will be created and returned in an array. * * When multiple files are given in an array, this method will search for hard links among other files in the array. * * @throws ezcArchiveEntryPrefixException if the prefix is invalid. * * @param string|array(string) $files * @param string $prefix * @return ezcArchiveEntry */ public static function getEntryFromFile( $files, $prefix ) { $isArray = true; if ( !is_array( $files ) ) { $isArray = false; $files = array( $files ); } $inodes = array(); $i = 0; foreach ( $files as $file ) { if ( !file_exists( $file ) && !is_link( $file ) ) return false; $struct = self::getFileStructureFromFile( $file ); // Check if it's a hardlink if the OS supports it, and handle it. if ( ezcBaseFeatures::supportsLink() ) { if ( isset( $inodes[ $struct->ino ] ) ) { // Yes, it's a hardlink. $struct->type = ezcArchiveEntry::IS_LINK; $struct->size = 0; $struct->link = $inodes[ $struct->ino ]; } else { $inodes[ $struct->ino ] = $struct->path; } } $entry[$i] = new ezcArchiveEntry( $struct ); $entry[$i]->setPrefix( $prefix ); if ( isset( $prefix ) && strlen( $prefix ) > 0 ) { if ( strlen( $entry[$i]->getPath() ) == strlen( $entry[$i]->getPath( false ) ) ) { throw new ezcArchiveEntryPrefixException( $prefix, $file ); } } $i++; } return ( $isArray ? $entry : $entry[0] ); } /** * Returns an ezcArchiveEntry-type that corresponds to the ezcArchiveStatMode-type * * @param ezcArchiveStatMode $stat Possible values are: {@link ezcArchiveStatMode::S_IFIFO}, {@link ezcArchiveStatMode::S_IFCHR}, * {@link ezcArchiveStatMode::S_IFDIR}, {@link ezcArchiveStatMode::S_IFBLK}, * {@link ezcArchiveStatMode::S_IFREG}, or {@link ezcArchiveStatMode::S_IFLNK}. * * @return int Possible values are: {@link IS_LINK}, {@link IS_SYMBOLIC_LINK}, {@link IS_CHARACTER_DEVICE}, * {@link IS_BLOCK_DEVICE}, {@link IS_DIRECTORY}, or {@link IS_FIFO}. */ protected static function getLinkType( $stat ) { switch ( $stat["mode"] & ezcArchiveStatMode::S_IFMT ) { case ezcArchiveStatMode::S_IFIFO: return ezcArchiveEntry::IS_FIFO; case ezcArchiveStatMode::S_IFCHR: return ezcArchiveEntry::IS_CHARACTER_DEVICE; case ezcArchiveStatMode::S_IFDIR: return ezcArchiveEntry::IS_DIRECTORY; case ezcArchiveStatMode::S_IFBLK: return ezcArchiveEntry::IS_BLOCK_DEVICE; case ezcArchiveStatMode::S_IFREG: return ezcArchiveEntry::IS_FILE; case ezcArchiveStatMode::S_IFLNK: return ezcArchiveEntry::IS_SYMBOLIC_LINK; // Hardlinks are not resolved here. FIXME? } return false; } } ?>