安全研究
CVE-2025-11001 7-Zip ZIP Parsing Directory Traversal to RCE:symlink 拼接收件路径
Thinking
2025-02-15
3 分钟阅读
研究档案
#漏洞分析#代码审计#恶意软件
7-Zip 在解析 ZIP 时把 symlink 当成普通目录项处理——攻击者构造『目录 + symlink + 恶意文件』三层结构,symlink 指向系统敏感路径,受害者解压时 symlink 被解析,后续被解压的恶意文件就写入任意位置。
Unlock to view this content.
ad8d9422966c73fee42096dad808c6448a272095349f41facc28f3d18d1ee66a0726fb5aaffd9271b6702e0ae53f6961031443030e63d37842b7356b4a67d1f44b648f709f84d99b1640e6f7a87a3d44129b61502fc0c5c728a88c67798e6cfb7bcb30fe880464fad1a2cf9635735fbd6e964b402ea4ed27e494f7c87c72f1c586b333a47062292625ea7240d146fb061f3975a6253d117e97272d7df5aa897fb9fe2c09034f658aae2645a68076992d7d9de07ae63e2fac88f85e475412988dfbc9227684ce8a2a690cc05eab1a8be530176395abc65f06cea0c682c847a554582fc8b6a403c5350d759817dbdbe59c79c71ee0cd2f808c0b65c8cf43eb2c3ef1349d2472375ffe8f137e64253c93726c9da2bc8fd5dac8689954dee3032bbdc5dfd1718142b44dd921a495b886c1fd9b759c85ee5f899183a476bf8105673ce87afaa8eb07099222c82538967c895c532903ae5a97f44004b45fcab56ea44e705316ddd67377ba941c0ce96e4c79425e7e4f39fb32292be229b49a8d0b2f8c85fc94e1a11aa7510a9c3df58c5f5a8c40207cfb24bd2ae3bf8517188718ffb4a9d5ee1c338b82a33e51cf4b8561c31522efff4f26d17dac686a756941313a7a1d6870413dc1b496d60b3879dea42a1f2f831229aaa3ed3813e87d9911441e8dd298ac7108d09f3b325e831babd147fb97164d4e70c517f7293c2df8e2590ccc30e2cfb17c98c026530de4fcb4d2f4e78db691dd5b774286c317ff07617dbc81d097c9b4510271398c138c04999c3259bd8301ca91508bafac325ec0a2274c04eed4f1a2606f395c737522d041bd47a6a08107950845a1f2f03a0054e183ea6f2cff2d97924a7736f006993779996aee1d4827d97e625646415ae8dad9fcc369175ab505d47bf19a1cedd324c268e72f91f3b76cdc126b50f3dd210edaf1f5fb66512f8b3908c419497ca54b0e1566cec544bf7a7e2762050f64732a09bac09f77dee24e71b0632dea309effb0a40addd41cc47bb45ff59be8ba14a78ce5da40eea04f67585188617c0609c0717a0597a65bd4d82feb2519f122623b69f1aad4c9eb6be9e1d0457ae8c1e4c1182aeabcd7e82b62771e5d88e0671a1ae4547ac0cb6f7519e33eeca4ac9c18c862d0d9f1a4a849a620f30364a2044ad3f75bfc4d2b2e56ced3fce98123b453192e8a0271578d04728c82c8f104b8cefdccd1ade60cccabac8948d28df79f9eddf5a983ef91447c0c129eedfb495d4aae416fbff0592e10e1203e0289cb01fcd56eabe3ae043702c078e1c1f3625a19d6e2197c099103f5f6426e424d6295f4dfc2520e668ef3e771bab3b503a94aba2a86eeba67c8ba252bdc70e580e6157aa1c178432fd0b4d42f5dceb5e2a3210cfe4315943e87b1fcc7e08a10c9fd541fb9a680c9414993b64024232f08fe88907777d9e8911026170db5d647493a5e383f667e011a5c76031a89389bdc2f41dbfec54ca41fac5924db03689f40d5e59db7ad155760c2f1a4048fcd755d0b996e1962e85d876c7cb1b89da4c918b53e73ed2fab6d607a744adab0ae511f59901b8a5d068260f173ddcfc38af2777651882fdbaddc75264e7dbff9d6136b15f6377df83efb72d7a7b74581f5d3a06d48ddd73ed833fd8ccdbe80fb91c064b49e27f59c82e12a51ebb61065cde5b56792c0946e4e8c185ebf27b689202000974fa678c3ff6929e0aa49ddb1fb43a3f7d433b3f81849dcfa65fdfecdad9b047f721cd72dce4427fec06e0bf3b010e42b657058e47a553a4bbce4f9b4e81c5aa04c30379dc08c8b8d9112d5536acaa82fe5a095265845b83d73ef629aad30e8fc55b776a0e10cc0de69b46ad984fb5bdbb6ac4f1f9947b67e72767e01b561d1ac67bc739a25e79b5647eec962e2da7876fbe2299e5fc61f158c389a53997b9697dd720c9a91deb3eaa3bd41652ebc0aeae32797cbe523737569590a7dbb8d85caff3f8aaee243292395b75c5ab5b9aee5e796d2dc9d9e12d7c1af7c1fe6ee6b92f3310d21967e93dd0703ec098a4837f407eea822d92b19504195aab612e12619175a2f163ccaf2432567bf5c36453a73fee9a245326f2c64da518d744cb81fb3ba09531a9630b0072f24da7144692ac7c68afd6159ef2dd8d39adcbab9471a942e93c47252f1cf8169a6181666e61a3145d057ee739c0f7d72db7e32e0d35507b1503dec94c6286c2668ecc33baa3d8b61dc4a5d8e9422898660e56e1415a0b2c8b0311914657c7bb53c105e8b8ac09495ae95970934d3c6adc21a6633ac7ec5f1a0f20fe08438018ca14dc8e0f0de1f8cb1c3a27d64131ee0c3bd51ccc11e76c8b5f188cbfd16f2ebb88304ca1fb9a548b077d2cb7b0be60ba0d7404857333aab1c394f1c9117d3e53dcea9cf4857777afb5e49d0daf3cc5cfa206d1e32052f45c72f835d53514e55960aa60d0d3b7bf120d0a9f238a6ad5d43cf9a83fdbc608446ed9f7c1ca6b26b0f4679c394e8c673b13305b1e581cfb7b85b3abddf7f3cd47520f301a8c8dd90ac29897830b87e9a7ed6676922eb0cd209288adb928f5f8c91643e91cdbe2c8bdbe75225f3b4cdf4755439ad47a5c398c10beae3f0199567c9c8b6bf20453ab588095459240c94e582b1e823dac7219b7fd0c8984c8771a77e010e882fae8b77224792d4c07cb45d5b7e3c389470b0316246d4a69ae4892b9500b8bb8e350dac4df55d5059af03774d7aa5f65e339e2528db611564d3b19fe6c63957970ad00cfe2a86989610f05ad42f096d13a703ed0a03831123ca32929193620ab164d9164a2229cfbdc367ff75dc881cfc92eba3c3b465262b966bfeb56376dfe2621f6c9ede1b41eb458eda5e463db8b20f0745651b389355edb5caa18aa71652fd008941a837aeab32df2a25d24797dac7f40125b2cf126c95bec9b186a56fa571024d91b081dde66358503627ef44d41c91890aff5e7ac60b665c3e0e0fe4ccce6c38a248b6145ce0808950f2ed53b81163c3f83f6daa494eee5ddd402e29d4a2c32f234c7d3b55fc9c5eb6eeb06da5c939989e97b16a0be188db17cdb670b16506df3dd40fea12d11519ec0ee4c93bfd91b92cc954620fa55d37f18a6dccc6112564b91ed81eeee75f9516f321b0cf3b3117f4b4dc1e383409c9861288c2cf9b2085ab2295b27a257b8fe04f9a9b03a242f6b33156c0da4f98fcecd0e844296a429886d7c610a9f04bd1d91d934a7ff3bba7d87834b3e4399204295400204741545e0ee5fe8657e79a09c599608a20fe5ef803b9c27bb2b79dda6169764231a508295c97ed8d4f66c4c66dcb728bd58458b730c572578ba76419c3c9c23a75d8108d6127448175dab894a404008b7625c29485751ec247fe5d396a62e3d32dcc0ea299eec60f508a93106c6d6e409bffcb042d8ff92d4dd559210a1bd09fe8883061624aff1f3043d74a27d8fa7acde246399c78ea76fbf2fb931ecf2e91ada5954e32cec713f3aee1db720746c9cb8e018935ba2ce36549e0b229f691eb3e45cfbb720e5404d3c789ca3a9f3358aeee380ec10d90c19460e6f7a080a8f0edcaace5140656a4b819463c490b426109efa70c1a7974706cef741391a4f77ded362237c739e895b44fb4b08be4937f22710d17b50ced31270e92662639f42d968a3075d1d124492c98f933de232f1447850490b91bd6209274936aa4fd0bb7972c5d2d1eaebcea45d22f492befc50d9e8a89692a5668b7dab018d66289fe4a77b75296eedeaa3901cbfbe1138ba192026d5657ba5d18ef611664684944a002b73a240bf0d95559a19d5ae29a8cc5a7ce563b95226da09d142a2b1ac5dcdfa69d40b48f57ed5c1fac1d3018bcb03e4eb2f298ba43466018283f30cb8dbb8218c8a5fff9a434ec4dc0572c2348eca8e5900a61a1d3bce95c8d9b97b1a849b817213f3b65180dfe02a510e9d8183f08c4cbc4df9721ade1eaf6e761c86981bb892c80a31672a86e8ced9b0073ef23e371f5fddc8d187eede4926b3cd783d4ffc92509beab4942ecb61d3942fd47c102003972f764e039f45679a60c138bd0efd7f3a3df63df1e9477b898d71ea4026d1a6f7422aa8d16dd00b5d57478068b7784e0302560a388366cccbbc269fbb6d501a9b694c1984af42a0a5ecc555868b857972627d093249923dd3d3a249728eceaaa90052590f58e0b5c018d731e4b6d4f2d53e9c0897b7444fa4693563a0c0e9a23d89a927004ed58298f015a2b9df37a495b2ab87e273d6d207cc6605257badf4ee65b27f42621d0479f45e5253acbd6c4dd0b784a7182de880c3b16bf825d988e27dce4896b92024d5214f9e1cef9edc2793918e318d5d76c3c52e8d46ef3561a51cc06f8f845427f0ade8f9b1848d86c191f678140b0471b8a2e1dc286b0e7969b11e29bf4434671b733ccf25d9207013608f43653922289481d348b74fec97096c457a73c12071e7e44323d256fa7a8a837b24222164111a54c5a7b1a8ab48e4c82e3250e4dd3981357f3099423976502bcfd09bd5730dc19147851033f033a4ac1a01a09b740c210e6f8b8439f3422a6ffc9f052028aad19f91ef412367d9e7bf736d2dd91915d3d352f3e1a16f99afdac6d2fb1fdc303c7e793ae87675f14fadc07999b6a038ebb9b50ad9fa27ea052497a3942467bc3ba0fbb9f788d5550045ed1fdc529681cf5b6f82f6dad3d5588098f65d6e220596eb83ba6abc188ea0c2721ca1f7473625c3325d8c7cf3c3e61297535e611925d5d96f0f0febacda70c19769bc546c1a42d03346c02e970bf0ea84a8d5edba9f828df97484633cb0f90ddf12b8bb6369756b29c6b74bedfc3a0be645421bb9384288e9b5bceb11cf42648e80fceefe2393b99d0cb7e8c4f6a2352a7928ec1765d991c224987887a2eb5e646cb0c6a0e8d2b64b43030e3666543e57a495649a2e768a993ca9e8e86611a099f0f2a277356382d4bb6841748f95ade8fb87f4bda553fcb5247cf25e2ada7645b24b0a6e7b8babcae303812d8ba6aedde4cf2efaec5cd153019ea7d3ecd71db0e7e8aeb03becb49b638d6705b3306b1c43e4345c5b03ed52c6dc965baeb58495030d15ba19a8e36c8cf4636456b0a1ef297f8e35549072625bace7d461a4629010101ac85291ec6acd65d5d5ef3e43b47fa7bc0ffa4cf73f201f9f32aa1530fbd432ab17abdf9f94a2c8a1ab3d616f4034b463d97e91e0096c2aa32b4043f0d9131888e5b9a6243e2ea5e3522953ce0952c33bde77125032adc06fd717c552990a42f3d95a9eabc6302811789b55b1ec91811cc7eca1df2455234e4b15dd8db4d3a8576f32f500c0d7c90ae492ddf79af0353d830d6ebca3515829c6ae1ed3a50de590ea2c8c2a0b5c09af83e294c90d581d375da1e79def8268594efa6085d36ed5f05a2361993e42b5ab140233d9392550e87c29b771f59447b784f35cf726e1cc387e549fa3d2a3f34eff842a80b67ec53ebbf845eaa6bb61c7e2184fe66c46630145e53ab463d5f584abde03059fa063449740d77724a59031077e7d51ac41630dabb445d2e59119dfd506acf5cacc1c98fa48dd9c96fcda22516f4c1d988ce5e5f293153986d0e63f38c0748ca6dc3a0806fe82092cc1eec1075a2632c82e3a45a2d94ed292396751fa3b3092d49f1d656b488f889a3df96aaf5dc0e3c66641eeda242f98eab2af1276f5c695cc891b660b2deb7ee72574c34cd45f0b941dd8b2105f2fccffa704d22f452287f56364b12bb70cbdd7089b06cef1792d85059469b5dcd8e2ae7642b065972a0e6ec05756229fcc9971e5cbc9306ffaad4f03fea7f88a49b5085328eac6b735bb2687ac50a7bd28731aa1814316229a0b30b8d3e3ac8d1f69c475eb1321b3db19356d57d3d4d10c4f80440df8b8f1c64b390e9302b33249cd66202fe69f26c9536ab1838b5dfd580d7a9a6af4b8a2535dcfc0b738982f3b0cd7f8a02fc3aa8fda7ad7120b836bfb1634742ae88e68ec44de030b188e4c3f9e1fcff09bfd62d5875da024ff34e29623ba979f9c7dedc46bbb7bcda7911fc88a9479bb2a8b57da004842a63d623b5312a811fe81898fe4fb9e9a19abce62ee36c04f33b5a2941988730265aa72e6dfb449538b8e938044fc742ddafba2c0e014f848711ebec6e513d99beeacf9f7dab857bcae64701eb4a74bd00f5db3c65e1fb5157ca9d4cba453d7187a6d86de209b7505dd9a1f4cd7f06e2a28ec64b7b7213c66e3bbc6a497589d47388005060f46abb0d5d491dbd1deccfb8c9e76e32d866f7937fe21423840d52994962373d1967041ba838be1076582e5199518be7e192e389ee496486b175eaa52615ceef966558486e2f29ee9209e555aeef5f0b6268d21643ac69ebb25d6ec7cbaec7885c8d7119fd0fd710e6eeb85271ebc1f16a3b479c0402177c9d53cc912725d6fd7f78c4490cf8d3575ad7c933b2ca8342771ce598ec1b57032c56ebd89839e19cdad514c5ea8efc1c6d2c232d65b9f6bd0f63271a67e647b34b64a18f3712967427200bde288cdb6488a614128a0951a087bd51299190923d35b6e3cdd62fce669bc25dbe55d28324f3dd8f14b85dec77c9a2435ca06dea32ec35daa39998f00b6a7500f6ba9d6eb3a8f522d84dc89f9e43fb98a04ef97bae5f27a21c55347ad6434dc918dd57a759205f1fea16213185136cd1fe3900db3a69dcdcafc4e7ffcd68cc530ac4a15a85a0d0ea5593887254844c3d86ddc74584e60e5c08d60b73cf0d99c6115811140f66ff81c8bfa3a791634471b3f3c4e0baa72581def622d6100b5b07e31ce4d9dca575a5f86135bba702f050de5cd5e41d6b0295e7b0d0d56691f86cf6b4b3f24f339d4450a0b050e0644e7ad70c3bb62b13f572b2f5db141659d52545d0ef25ac29c2ec329fab81d82bbc8e245739b439a87c0f88385688e16af10c9bef522a587b5583ee259f9dd1debaa4a7e06718d61ddbd8dd17d4ef6ac1cf72a7ff75b1634c19cf483815e42ef3bf389688212ca9b8c4bf6ffa964a5d23ac190f881ad1b90c6ec62c73bc6e0804afd4f86b7b0528854e973c4bba8570aa6aef3d7eb887be8b4f8174992c307f9a0116a3b4b43408a4a088e705a3d8dae2f95488ebbe073892ff980b83d1f91eda2de1dec2197a61dd6a508a5373fa24cd30883e97c17c97a74f7248153268eab3abe16a2c1ea493a5239356fc61abe3c90485a098c2fab25770332825245939b9771bf076e627565d3013a5d1ab04ddf87d7e0a84b2b4e193a8a78d38387378179f832f8533ce835ee7814a0c2acf722d0415416567816a47d290a5296fbdeeac3bb91af9a3bf058e38e9b77860847f709538e3d802108f37c07b93564d94f21501bab4fdf8f82bfcfc4eee08f17812c98fc83d1732768404481e1733b7821ed093cb85cb51bf383663e106ca64abea4d60b6c852d53382f6938e6af52995f304c5767d47d06169e3909c5b9624dd196dd82d7e4f985774e1efbd447947ed7bc136661634d3df6d9756a61f62fe229e6488d544eb445791d886f702335d30845dc09539aa2aa3e2055ad45c279b89f3430fbea2f03e7f18b5bca2743b28f4f3a83061e0449d05b56a8f5b07907906f23fca6570bfb50a788eb9c7604c5626cd54098d9e04053b9619f07cc0b6a5d76c722e2cb2a21951feb9ba223c083d5f7afe14c15e9ea1ece56e1f810aa9d3ca5474b0975801f016efbc7b641ee5067a5ccc56e661178a31c04edb3cf508fc8caded0bf992862450ab5ed56f24023edeca659eb8a72274b2cf3ac9b7ec987182340331b7d722f7c7586434e96dd8814c4f23b0533b07d26a65ae0dad06f66ca1c7f9e8bab956ccf437c0ddd1be4e9e804124d0aa062f9d98e2ca8928685b4dcc5aac2fe6fd09ef6f0e9d5b538bedd9b6ece56c03aa983c8fa481d33911c39f82b79e451cb56f64952ab35bca702ad2271d34c991036f29f30b5fcb920b583f78bc901695bda1619df30b60f12d275bff2d17c61db422e5f0efa8420d7ea4added69787e4a58e5fa59f7a6cc3424e19cb68e9f00ff17c56093e565de4716e55c0c7c0006422ab5098345d134ff6e4c6fa8ea64860c2825308b33d34f20d684b6abffc940fb9f3f6d386b8acc593862c2aaf1bb6f26a9c2717c3f5e261f8e768e690659861ea47a6330754c2e1a368da08490f1ff406cdb42c376dd78bca17e9e22a8d574df101f43c86ca4d6d745bae11f23ad28e498632460913420f1fa4c1e81663c17ba5d0ebb4764a0832bdbcea19d8178ecd2682cdced8ae8afbc4f827f5192a27a1cb96a94d233d13cc24b8a2a9be8d9c7dd60a317ea84a46c414f798626ebc587e81be9300ff719bf0f2d55b95460b512d69a017a2ad923eccbc243aaa14c716fdbf2bb0707b43e7504511c0c5e4fddd721c4a8fdac6bbea32d36876dd7ef215504b1d68b579c3e16cbff2d6bc1abc221c2f15bb27b9eeda3be0f40a2f6789c5a6c5c828eeb60a7759e0236fd2b23063ff649b5a2617f94af4182079e4acea29d0474302370eb23381a5270bf741be8baab678dfc3aed7bc842d811308d330910f1d9908e40f89973b3f9fdb8b64ce1f0ca116461fd2b07016b5d9e6cc31b2311034bfce466ba0e219f605ff82afe4c25fd18907bb4cd769d7ab1ccf286e4351c04336f70d2bb3817f8d8ba213aafc70cac1c9ce7856f7e0f6e594298e429267b46f00f6b0f10521176fd00220a7310aed382fba14118837ae8dac69a2edf8b13a1ac4a74b880e73821c34d21af57c523b065916547e866895c8acf9cac7e8fa96eda3a67d900e32b7d7ac3f3db5ee0fb12cf58d9e6d2513be3c59ee4e74b285ca13923bf22041b78ffdd73b1405fb80ee6b56fed6adf51d73463553b1424ba1615b36698bf166720521b0acb767fb224e4c4e0ee7aec76b336eee6f6cac2baf01dd3179f18bd89baf34e51f2e13b8c0299c3a751842fbb475c5a0d8167af388b9b8e66ea1a59cce3d1d4dcaeeb75660727b4a2ba214c0717d2057657a985cc10f86aea9f2cfd7d7824ae042bfe7ad4dc34196c4d1c1f8e7ba99b472adc7232c37043f0bde6d206c5ca1d842a3d31a71379e668367d7f0e8d09b7894e602099bfb5fe740c5b30b16552a890a3b3e5085a62143f52ecc955c764175d23ceed28701b613b359cb166044b66d82b932dd94ffc75a0b60d8efafcc9d05da1e656ca63ec9086a2dba7663149582dfad7548043c246c530a6c8fe02a6b27d4ebed7e5c9b4c67c6fe619bd84d81c14065244b1edadcdc0629d6174a98adfe585ef55a948f4d0858a5a5e18f1e263d6e3ab55fc9f7144d502c32b397d114c9c50fb631a311f9d5017fab8666b92b422647089a46110b09eae177371371a04bac919d52535b6f865775b8a9778d031bced03d628e53c4a32796ee3a0fc27b3159f6b1cef68d9832b4aeb4ff108b56aa22001901e6586e98533d985ff340c3e22769ea8d6496401004ecf93ad076c4320630a9a2925c8a0ecf9ba4e5fdc64732a73a5a289bc55595d5399ef16df35352deb2b077f8639136d30635021e21f28b36543154355dd6ca5a79f8af99020762a804b4ff1ca303b7a53b1e7ebda76c2bc67eb4676acde5f199b6f15a79dfb2f655b8cb123d3996e15b3f15bd78f5656c13f990bd8205a6715db5accff7670559d68859de0d1aa1d54ab834dbe7ab3a1c92ed85ef91e303feb24a39f359104cea8db93bac71e56749d4cdf04199f3dc14f9b55549a440e38bc6370a20dbc04b45c0286735e084e66404b4a973131ff59b6698ec7ee20eb179bb6f5449185ceb140fee72de0b126c56e296dd8b9dafe101d45871afeac0d98a2e8eb0010978978ad7a5a2541473fc7de6aac9603384ea08db0dfac30953fae9db48dbe10c1814e4b215345e6c13fc60236d25839394baae05eacfec906af172a86d8cd5b86952bf874164e393a1ca119ce2abb7df343e22b72f3ebd6e027e2c92cc1d358b96a6dd6cd6b1f9f6b96b5b6b12ac967a8cd2cc7f59f2a5c541ee32bdd9bc0157353086be33acc2199e4c3e60b57a215836de6607bed5e06e553f9cea63875bc9de153d0c540479a8c959bc36c6560bc10c9416e3e2e23263f3004dfa3c0d75d888b27d7fcd18c5a75ec90e257d68e3ddfda382abc7fe63d829b96536c3b7b075ed3960123ef9e6f2c7564d558c4bdd08b1a4b9599d7c27e2efca6f2328f81903e785cd8a834a4091b4aabe0ca9913d90877de7da4ce7cb41c6196c2574a9457681ad3b0e800c00300cc753670812decea98dc918d447a5e4b55fdf7aa36437cf5746ca764c56f1053d62e00fd914cea8f8a3f47c67b67dc218e0c37991bd5cf82c09c6248acd259fe6e356026666e139041981a745f8b74960558578479fb1ff5fd7d453d82c522e7407db74b0b6ccce3f488b274e9c32af17d3e028afa40343d6d53a219b75567187d5633a2e8f8d6867f8801d9fb892bb1dfc7e3ab01fe4363e4001c789c86a58fdf6b619840eb885c133dd8cdab222cb87b5d65e9b271deb48f3429a637af849771a676d64b2a98bef369e2604ab8e94b64bc8b4f91f9a4345102cea25dc696524c81013d8be55e31bfef5ea74517f18616695cf07df48750a170777e7905bd7a9ead07697ddd840cf5b409f60e7505dbdfb5d0e5592714c31f5a3e96068f995e5c8193e8c3bcaea9f4df620b11ffd7e1faa0299d43a287178bde3deda54e50becebf41771986e29d86d711482c6e84cb535aafeb66a2c9ff6674226ad0da549384e3c17f4e61ab688c7e65d0c859fb548565dd781c6af9d7e72dc083a642ad1553ad944b954c93877e93d50a30d8a3ccc8af0b0bb31f00ee783c5718ecbd2a1604622aede36ab4e059cdebdea2b087cb2d6fd587c5390429bfcf60197c74a170d85506bcbd60ba21ede741e1a61fda343a7a09cd4ae96e89c44c50e89fd36714269a9218652c346fcc14a22e18f657aae4bd2d01c000a0214fc38feaa7a2cf4e1215190e271f33cb42df0db305e2bd4a33000fbd3602bde62481a8a6e7ff572212a6896c8998f9b89ba4dc5d8e69ab1701152393e9ef7d76dcb9d61709adaa09147f99963d270052db16dbff714d1ce1b3877c8711b975ac5fb50dc2484982618b643d42bfc32bd80fd12b80c34fae53c33cab8e88de5eaf14385880eede02e0564c2d3f0cbba434b3a06e241cdbc141725b210743bfb788ce42c38d02a332338535e1c54eaafcdaa2027c76d03e272f8a68c3089cca43610e1e9f6ff4ff046364ef80fe3caafcb5e1609bf7998f2085090d8cd36a7dba9f33a72214674fa89f39905743097b301b705ed4de788b341a48d6c851aeb86f22dce38bc808df765a7f559630c589caf8bfb54c5558d423050659ca37a86979c3d8f50d1a51aa84a94a7684e0312516e4df763fbb56760437296e944d72c9e2be61458707dfb78018e43b3f41dd9d9bf5bdbc02a9158d4e4c068c32931d07950081bd21925bc1400efe699553d2a2fdfc086055a1810b4e2b1a8624d14aef438dab641654c525b0166c6153fb95e3159552040c47bd00ee99035f01ba43c7346396ed19a17d69ff7a63fd8a82cbb14b991ecb6e82d7ac56a3696e50391be55313bf60975ad692c618b10d653a5dcb905df7f4f6042adff5d0632d08204857b39aa4f611462f21b868e0570c67372548b837df37595395fe0c11773912d2a038ffd8bec98311eb44136a03deab6d87d6dfe751611fd67fc504e88672e03faaa7cc272671ccf179adb09f0fbd44cecd3301c1db7983c134aa00c1b2e3e0a1c574619c128b4fb3e0af9139a246887ffbd827f62eb80b6c66c599af6bde712caa4d02fbfbe1557e4dc76af87e99ece3c04cec7e2bba1c2966795a3e4ca6fb4be9bd5f794ee70c3a6e8d6d3f2a8cbc371feb9ef1aa499333edf78dd19c99796ae7f94b658646e9387fb65079346a0e99095ba364e5074601eda95d88cb33afb0d62