# asy_sitemap v0.7 # Generates a gz-compressed Google-Sitemap. # Sencer Yurdaguel # http://www.sencer.de/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YTo5OntzOjQ6Im5hbWUiO3M6MTE6ImFzeV9zaXRlbWFwIjtzOjc6InZlcnNpb24iO3M6Mzoi MC43IjtzOjY6ImF1dGhvciI7czoxNjoiU2VuY2VyIFl1cmRhZ3VlbCI7czoxMDoiYXV0aG9y X3VyaSI7czoyMToiaHR0cDovL3d3dy5zZW5jZXIuZGUvIjtzOjExOiJkZXNjcmlwdGlvbiI7 czo0MToiR2VuZXJhdGVzIGEgZ3otY29tcHJlc3NlZCBHb29nbGUtU2l0ZW1hcC4iO3M6NDoi dHlwZSI7aToxO3M6NDoiaGVscCI7czo0MDYxOiIKCTxoMT5ESVNDTEFJTUVSPC9oMT4KCgk8 cD5USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEFTIElTIEFORCBGT1IgRlJFRS4gVEhFIEFV VEhPUiBESVNDTEFJTVMgQU5ZIEFORCBBTEwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkg REFNQUdFUyBXSEFUU09FVkVSIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP RiBUSElTIFNPRlRXQVJFLjxiciAvPgpJbXBvcnRhbnQ6IFJlYWQgPGVtPktub3duIElzc3Vl czwvZW0+IGJlZm9yZSB1c2luZyB0aGlzIHBsdWdpbi48L3A+CgoJPGgxPldoYXQgaXMgYSBH b29nbGUgU2l0ZW1hcD88L2gxPgoKCTxwPllvdSBjYW4gZmluZCB0aGUgcmVsZXZhbnQgSW5m b3JtYXRpb24gb24gR29vZ2xlJiM4MjE3O3Mgd2Vic2l0ZTo8L3A+CgoJPHVsPgoJPGxpPkJh c2ljIEluZm9ybWF0aW9uOiA8YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY29tL3dlYm1h c3RlcnMvc2l0ZW1hcHMvZG9jcy9lbi9hYm91dC5odG1sIj5odHRwczovL3d3dy5nb29nbGUu Y29tL3dlYm1hc3RlcnMvc2l0ZW1hcHMvZG9jcy9lbi9hYm91dC5odG1sPC9hPjwvbGk+CgkJ PGxpPlByb3RvY29sOiA8YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY29tL3dlYm1hc3Rl cnMvc2l0ZW1hcHMvZG9jcy9lbi9wcm90b2NvbC5odG1sIj5odHRwczovL3d3dy5nb29nbGUu Y29tL3dlYm1hc3RlcnMvc2l0ZW1hcHMvZG9jcy9lbi9wcm90b2NvbC5odG1sPC9hPjwvbGk+ Cgk8L3VsPgoKCTxoMT5Ib3cgZG8gSSB1c2UgdGhpcyBQbHVnaW4/PC9oMT4KCgk8cD5PdXQg b2YgdGhlIGJveCB0aGlzIHBsdWdpbiB3aWxsIGxldCB5b3UgbWFudWFsbHkgY3JlYXRlIGEg Z3ppcC1jb21wcmVzc2VkIHNpdGVtYXAgdGhyb3VnaCB0aGUgZXh0ZW5zaW9uLXRhYi4gSG93 ZXZlciB5b3UgY2FuIGVkaXQgdGhlIGNvZGUgb2YgdGhpcyBwbHVnaW4gYW5kIHVuY29tbWVu dCB0aGUgdHdvIGxpbmVzIHRoYXQgc3RhcnQgd2l0aCA8c3Ryb25nPnJlZ2lzdGVyX2NhbGxi YWNrPC9zdHJvbmc+IGlmIHlvdSB3YW50IHRoZSBzaXRlbWFwIHRvIGJlIGF1dG9tYXRpY2Fs bHkgcmUtY3JlYXRlZCBldmVyeXRpbWUgeW91IHBvc3Qgb3IgZWRpdCBhbiBhcnRpY2xlLiAo WW91IGNhbiBhbHNvIGFkZCBtb3JlIHJlZ2lzdGVyX2NhbGxiYWNrcyBmb3Igb3RoZXIgZXZl bnRzKS4gRm9yIGF1dG9tYXRpYyByZS1jcmVhdGlvbiwgeW91IHNob3VsZCBhbHNvIGNoYW5n ZSB0aGUgZGVmYXVsdCB2YXJpYWJsZXMgaW4gdGhlIGNvZGUgaW4gYSB3YXkgdGhhdCBzdWl0 cyB5b3VyIG5lZWRzLiA8c3Ryb25nPkJlZm9yZTwvc3Ryb25nPiB5b3UgcmVseSBvbiBhdXRv bWF0aWMgcmUtY3JlYXRpb24gb2YgdGhlIHNpdGVtYXAsIG1hbnVhbGx5IHRlc3QgdGhlIGNy ZWF0aW9uIGFuZCBtYWtlIHN1cmUgdGhhdCBpdCB3b3Jrcy48L3A+CgoJPHA+SWYgeW91IHVu Y29tbWVudGVkIHRoZSA8c3Ryb25nPnJlZ2lzdGVyX2NhbGxiYWNrPC9zdHJvbmc+IGxpbmVz LCBHb29nbGUgaXMgYXV0b21hdGljYWxseSBub3RpZmllZCAod2l0aCBhIHBpbmcpIHVwb24g Y3JlYXRpb24gb2YgbmV3IGFydGljbGVzIGFuZCB5b3UgY2FuIGFkZGl0aW9uYWxseSAob3Ig YWx0ZXJuYXRpdmVseSkgbWFudWFsbHkgcGluZyBHb29nbGUgYWZ0ZXIgeW91IHJlLWNyZWF0 ZSBhIHNpdGVtYXAgdGhlIG1hbnVhbCB3YXkuIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gc3Vi bWl0IHRoZSBzaXRlbWFwIHRvIEdvb2dsZSwgYnV0IGl0IGlzIHN0aWxsIHJlY29tbWVuZGVk LCBiZWNhdXNlIHlvdSB3aWxsIGdldCBmZWVkYmFjayBvbiB3aGV0aGVyIHRoZXkgcmVjZWl2 ZWQgeW91ciBwaW5nLCB3aGVuIHRoZXkgZG93bmxvYWRlZCB5b3VyIHNpdGVtYXAsIGFuZCBp ZiBpdCB0aGV5IGZvdW5kIGl0IHRvIGJlIHZhbGlkIChzaG91bGRuJiM4MjE3O3QgYmUgYSBw cm9ibGVtLCBidXQgeW91IG5ldmVyIGtub3cmIzgyMzA7KS48L3A+CgoJPGgxPldoYXQgZG9l cyB0aGUgc2l0ZW1hcCBsb29rIGxpa2UgYW5kIHdoYXQgZG9lcyBpdCBjb250YWluPzwvaDE+ CgoJPHA+VGhlIFNpdGVtYXAgYXMgZ2VuZXJhdGVkIGJ5IHRoaXMgcGx1Z2luIHdpbGwgaW5s dWRlOjwvcD4KCgk8b2w+Cgk8bGk+QSBMaW5rIHRvIHRoZSByb290IG9mIHlvdXIgdHhwLWlu c3RhbGwgd2l0aCBjaGFuZ2UgZnJlcXVlbmN5IHNldCB0byBhbHdheXM8L2xpPgoJCTxsaT5B IExpbmsgdG8gPHN0cm9uZz5lYWNoPC9zdHJvbmc+IG9uZSBvZiB5b3VyIHNlY3Rpb25zICh0 aGF0IG1lYW5zIDxlbT5ldmVyeTwvZW0+IHNlY3Rpb24pLCBjaGFuZ2UgZnJlcXVlbmN5IGlz IGNvbmZpZ3VyYWJsZTwvbGk+CgkJPGxpPkEgTGluayB0byBldmVyeSBhcnRpY2xlIHRoYXQg aXMgTGl2ZSBvciBTdGlja2llZCA8ZW0+YW5kPC9lbT4gaGFzIGEgUG9zdC1kYXRlIHRoYXQg aXMgbm90IGluIHRoZSBmdXR1cmUgKHRoYXQgc2hvdWxkIGNvdmVyIGV2ZXJ5IHB1YmxpY2x5 IGF2YWlsYWJsZSBhcnRpY2xlKS4gQSBMYXN0IE1vZGlmaWVkIGRhdGUgd2lsbCBiZSBpbmNs dWRlZC4gQ2hhbmdlIGZyZXF1ZW5jeSBjYW4gYmUgY29uZmlndXJlZC4gWW91IGNhbiBvcHRp b25hbGx5IGFsc28gc2V0IGEgZGlmZmVyZW50IGNoYW5nZSBmcmVxdWVuY3kgZm9yIGFydGlj bGVzIHRoYXQgaGF2ZSBub3QgYmVlbiBlZGl0ZWQgaW4gdGhlIGxhc3QgWCBkYXlzLiAoVXNl ZnVsIGlmIHlvdSBkb24mIzgyMTc7dCB3YW50IEdvb2dsZSB0byBrZWVwIHJlLWZldGNoaW5n IG9sZCBhcnRpY2xlcyB0aGF0IGRvbiYjODIxNzt0IGNoYW5nZS4pPC9saT4KCTwvb2w+CgoJ PGgxPktub3duIElzc3VlczwvaDE+CgoJPHVsPgoJPGxpPjxzdHJvbmc+Q29tbWVudHMgYXJl IHRvdGFsbHkgaWdub3JlZDo8L3N0cm9uZz4gVGhlIGxhc3QtbW9kaWZpZWQgZGF0ZSBpcyBv bmx5IHRoZSBkYXRlIGZvciB0aGUgYXJ0aWNsZS4gVGhpcyBpcyB1c2VmdWwgZm9yIHNpdGVz IHRoYXQgcmVseSBtb3N0bHkgb24gc3RhdGljIGNvbnRlbnQgYXMgd3JpdHRlbiBieSB0aGUg YXV0aG9ycy4gSWYgeW91ciBzaXRlIGhhcyB2ZXJ5IGFjdGl2ZSBjb21tZW50ZXJzLCB5b3Ug bWF5IG5vdCB3YW50IHRvIHVzZSB0aGlzIHBsdWdpbiBvciBjaGFuZ2UgdGhlIGNvZGUgYWNj b3JkaW5nIHRvIHlvdXIgZGVzaXJlcy48L2xpPgoJPC91bD4KCgk8dWw+Cgk8bGk+PHN0cm9u Zz5QYXNzd29yZCBQcm90ZWN0ZWQgQXJ0aWNsZXMgd2lsbCBiZSBpbiB0aGUgc2l0ZW1hcDo8 L3N0cm9uZz4gSWYgeW91ciBhcnRpY2xlIHRpdGxlcyBhcmUgaW5jbHVkZWQgaW4gdGhlIHVy bCB0aGlzIDxzdHJvbmc+d2lsbCBsZWFkIHRvIGRpc2Nsb3N1cmUgb2YgdGhlIFRpdGxlIG9m IHlvdXIgcG9zdHM8L3N0cm9uZz4uIE9mIGNvdXJzZSBzaW5jZSB5b3VyIGFydGljbGVzIGFy ZSBzdGlsbCBwYXNzd29yZC1wcm90ZWN0ZWQgdGhlIGFydGljbGVzIHRoZW1zZWx2ZXMgd2ls bCBzdGlsbCBub3QgYmUgdnJhd2xlZCBieSBHb29nbGU6IFRoZSBHb29nbGVib3QgaGFzIHRo ZSBzYW1lICYjODIyMDtwZXJtaXNzaW9ucyYjODIyMTsgYW5kIHBvc3NpYmlsaXRlcyBhcyBh IHJhbmRvbSBndWVzdCB1c2VyLjwvbGk+Cgk8L3VsPgoKCTx1bD4KCTxsaT48c3Ryb25nPlNl dmVyYWwgUGFnZXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHNpdGVtYXA6PC9zdHJv bmc+ICYjODIyMDtQYWdpbmF0ZWQgcGFnZXMmIzgyMjE7IGFyZSBub3QgaW5jbHVkZWQgaW4g dGhlIHNpdGVtYXAgKFNlY3Rpb24gcGFnZXMgYW5kIHRoZSBIb21lLXBhZ2Ugb2Z0ZW4gYXJl IHBhZ2luYXRlZCkuIFRoZXJlIG1heSBhbHNvIGJlIG90aGVyIHBhZ2VzIG5vdCBpbmNsdWRl ZCB0aGF0IGFyZSBwcm92aWRlZCB0aHJvdWdoIHBsdWdpbnMsIGZvciBleGFtcGxlIGFyY2hp dmUtcGFnZXMgYnkgY2VydGFpbiBhcmNoaXZlIHBsdWdpbnMgZXRjLiBPbmx5IHRoZSBwYWdl cyB0aGF0IGFyZSBtZW50aW9uIGluIHRoZSB0aHJlZS1wb2ludCBsaXN0IGFib3ZlIGFyZSBp bmNsdWRlZCBpbiB0aGUgc2l0ZW1hcC48L2xpPgoJPC91bD4KCgoKICI7czo0OiJjb2RlIjtz Ojg4NDU6IgoJaWYgKGZ1bmN0aW9uX2V4aXN0cygicmVnaXN0ZXJfY2FsbGJhY2siKSkgewov LwkJVW5jb21tZW50IHRoZSBmb2xsb3dpbmcgMiBMaW5lcyBpZiB5b3Ugd2FudCB0aGUgc2l0 ZW1hcCB0bwovLwkJYmUgYXV0b21hdGljYWxseSByZWNyZWF0ZWQsIHdoZW5ldmVyIHlvdSBl ZGl0IG9yIHBvc3QgYW4gYXJ0aWNsZS4KCi8vCQlyZWdpc3Rlcl9jYWxsYmFjaygiYXN5X21h a2Vfc2l0ZW1hcF93cmFwcGVyIiwgImFydGljbGUiLCAiZWRpdCIpOwovLwkJcmVnaXN0ZXJf Y2FsbGJhY2soImFzeV9tYWtlX3NpdGVtYXBfd3JhcHBlciIsICJhcnRpY2xlIiwgImNyZWF0 ZSIpOwoJfQoKCWlmIChAdHhwaW50ZXJmYWNlID09ICdhZG1pbicpIHsKCQlyZWdpc3Rlcl90 YWIoImV4dGVuc2lvbnMiLCAiYXN5X3NpdGVtYXAiLCAiRy1TaXRlbWFwIik7CgkJcmVnaXN0 ZXJfY2FsbGJhY2soImFzeV9zaXRlbWFwIiwgImFzeV9zaXRlbWFwIik7Cgl9CgoJLyogVGhp cyBmdW5jdGlvbiBob2xkcyB0aGUgQ29uZmlndXJhdGlvbiBEYXRhCgkgKiBAZ2V0X3BzYSAg IGJpbmFyeSAgV2V0aGVyIHRvIGdldCB0aGUgY29uZmlnIGZyb20gUE9TVC12YXJpYWJsZXMK CSAqLwoJZnVuY3Rpb24gYXN5X3NpdGVtYXBfY29uZmlnKCRnZXRfcHNhID0gZmFsc2UpIHsK CQkkb3B0aW9ucyA9ICgkZ2V0X3BzYSkKCQkJCQk/IHBzYShhcnJheSgnZnJlcV9zZWN0aW9u JywnZnJlcV9kZWZhdWx0JywnZnJlcV9kYXlzJywnYXJ0aWNsZV9kYXlzJykpCgkJCQkJOiBh cnJheSgnZnJlcV9zZWN0aW9uJyA9PiAnJywnZnJlcV9kZWZhdWx0JyA9PiAnJywnZnJlcV9k YXlzJyA9PiAnJywnYXJ0aWNsZV9kYXlzJyA9PiAnJyk7CgkJZXh0cmFjdCgkb3B0aW9ucyk7 CgkJLy8KCQkvLyBUaGVzZSBhcmUgdGhlIGhhcmRjb2RlZCBkZWZhdWx0cywgZmVlbCBmcmVl IHRvIGVkaXQgdGhlbS4KCQkvLyBGb3IgdGhlIG1lYW5pbmcgb2YgdGhlIGZpcnN0IHRocmVl IHNlZSAkY2hhbmdlZnJlcV9hcnJheSBiZWxvdwoJCS8vCgkJLy8gQGZyZXFfc2VjdGlvbiAg ICAgaW50WzAtN10gVGhlIENoYW5nZS1GcmVxdWVuY3kgZm9yIFNlY3Rpb25zCgkJLy8gQGZy ZXFfZGVmYXVsdCAgICAgaW50WzAtN10gVGhlIENoYW5nZS1GcmVxdWVuY3kgZm9yIEFydGlj bGVzIChkZWZhdWx0KQoJCS8vIEBmcmVxX2RheXMgICAgICAgIGludFswLTddIFRoZSBDaGFu Z2UtRnJlcXVlbmN5IGZvciBBcnRpY2xlcyAob2xkZXIgdGhhbiB4IGRheXMpCgkJLy8gQGFy dGljbGVfZGF5cyAgICAgaW50ICAgICAgVGhlIG51bWJlciBvZiBkYXlzIGZvciBAZnJlcV9k YXlzCgoJCWlmICgnJyA9PT0gJGZyZXFfc2VjdGlvbikgJGZyZXFfc2VjdGlvbiA9IDM7IC8v IDMgaXMgZGFpbHkKCQlpZiAoJycgPT09ICRmcmVxX2RlZmF1bHQpICRmcmVxX2RlZmF1bHQg PSA0OyAvLyA0IGlzIHdlZWtseQoJCWlmICgnJyA9PT0gJGZyZXFfZGF5cykgCSAgJGZyZXFf ZGF5cyAJPSA2OyAvLyA2IGlzIHllYXJseQoJCWlmICgnJyA9PT0gJGFydGljbGVfZGF5cykg JGFydGljbGVfZGF5cyA9IDMwOyAvLzAgaWYgeW91IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMK CgkJLy8gVGhlIGZpbGVuYW1lIGZvciB0aGUgc2l0ZW1hcC4gZGlybmFtZSh0eHBhdGgpIGlz IHJvb3Qgb2YgeW91ciB0eHAtaW5zdGFsbAoJCSRmaWxlbmFtZSA9IGRpcm5hbWUodHhwYXRo KS4nL3NpdGVtYXAueG1sLmd6JzsKCgkJLy8gRG8gTk9UIGVkaXQgYmVsb3cgdGhpcyBwb2lu dAoJCS8vIFRoZXNlIHZhbHVlcyBhcmUgYXMgZGVmaW5leSBieSBHb29nbGUKCQkkY2hhbmdl ZnJlcV9hcnJheSA9IGFycmF5KAoJCQkwID0+ICJvbWl0IGNoYW5nZWZyZXEiLAoJCQkxID0+ ICJhbHdheXMiLAoJCQkyID0+ICJob3VybHkiLAoJCQkzID0+ICJkYWlseSIsCgkJCTQgPT4g IndlZWtseSIsCgkJCTUgPT4gIm1vbnRobHkiLAoJCQk2ID0+ICJ5ZWFybHkiLAoJCQk3ID0+ ICJuZXZlciIKCQkpOwoKCQlmb3JlYWNoICgkb3B0aW9ucyBhcyAka2V5ID0+ICR2YWx1ZSkK CQl7CgkJCSRvcHRpb25zWyRrZXldID0gJCRrZXk7CgkJfQoJCXJldHVybiBhcnJheSgkb3B0 aW9ucywgJGNoYW5nZWZyZXFfYXJyYXksICRmaWxlbmFtZSk7Cgl9CgoJLyogVGhpcyB3cmFw cGVyIGZ1bmN0aW9uIGludm9rZXMgdGhlIHNpdGVtYXAgZ2VuZXJhdGlvbiB3aXRob3V0IG91 dHB1dC4KCSAqIENhbiBiZSB1c2VkIGluIHJlZ2lzdGVyX2NhbGxiYWNrKCkgZm9yIGF1dG8t Z2VuZXJhdGluZyB0aGVmIGZpbGUuCgkgKi8KCWZ1bmN0aW9uIGFzeV9tYWtlX3NpdGVtYXBf d3JhcHBlcigkZXZlbnQsICRzdGVwKSB7CgkJaWYgKCAoJGV2ZW50PT09J2FydGljbGUnKSAm JiAoJHN0ZXA9PT0nY3JlYXRlJykKCQkJICYmICgoY291bnQoJF9QT1NUKT09MCkgfHwgKCRf UkVRVUVTVFsndmlldyddIT0nJykpICkgcmV0dXJuOwoJCWVsc2VpZiAoY291bnQoJF9QT1NU KT09MCkgcmV0dXJuOwoJCWxpc3QoJG9wdGlvbnMsICRjaGFuZ2VmcmVxX2FycmF5LCAkZmls ZW5hbWUpID0gYXN5X3NpdGVtYXBfY29uZmlnKGZhbHNlKTsKCQlleHRyYWN0KCRvcHRpb25z KTsKCQkkb3V0ID0gYXN5X21ha2Vfc2l0ZW1hcCgkZnJlcV9zZWN0aW9uLCRmcmVxX2RlZmF1 bHQsJGZyZXFfZGF5cywkYXJ0aWNsZV9kYXlzLCRmaWxlbmFtZSwkY2hhbmdlZnJlcV9hcnJh eSk7CgoJCS8vIExldCdzIG1ha2UgdGhlIGh0dHAtcmVxdWVzdC4KCQkvLyBOb3QgdXNpbmcg Zm9wZW4sIGJlY2F1c2UgdXJsLXdyYXBwZXJzIG1heSBiZSB0dXJuZWQgb2ZmIGZvciBzZWN1 cml0eS4KCQlnbG9iYWwgJHNpdGV1cmw7CgkJJGZwID0gZnNvY2tvcGVuICgid3d3Lmdvb2ds ZS5jb20iLCA4MCwgJGVycm5vLCAkZXJyc3RyLCAzMCk7CgoJCS8vT25seSBwaW5nIGdvb2ds ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IGFydGljbGUuIEdvb2dsZSByZS1mZXRjaGVzIHRoZSBz aXRlbWFwIGluIGludGVydmFscyBhbndheSwKCQkvL2FuZCB3ZSBkb24ndCB3YW50IHRvIHVw c2V0IEdvb2dsZSwgZG8gd2U/IE1hbnVhbCBQaW5nIGlzIGFsd2F5cyBwb3NzaWJsZSBhbnlo b3cuCgkJaWYgKCAoJGV2ZW50PT09J2FydGljbGUnKSAmJiAoJHN0ZXA9PT0nY3JlYXRlJykg KQoJCXsKCQkJaGVhZGVyKCJYLXNpdGVtYXA6IFRyeWluZyB0byBwaW5nIGdvb2dsZS4uLiIp OwoJCQlpZiAoJGZwKSB7CgkJCSAgICR1cmwgPSB1cmxlbmNvZGUoJ2h0dHA6Ly8nLiRzaXRl dXJsLicvJy5iYXNlbmFtZSgkZmlsZW5hbWUpKTsKCQkJICAgZnB1dHMgKCRmcCwgIkdFVCAv d2VibWFzdGVycy9zaXRlbWFwcy9waW5nP3NpdGVtYXA9Ii4kdXJsLiIgSFRUUC8xLjBcclxu XHJcbiIpOwoJCQkgICBoZWFkZXIoIlgtc2l0ZW1hcC0yOiAuLi53ZSBzZW50IHNvbWV0aGlu Zy4uLiIpOwoJCQkgICB3aGlsZSAoIWZlb2YoJGZwKSkgewoJCQkgICAgICAgJHRtcCA9IGZn ZXRzKCRmcCwxMjgpOwoJCQkJICAgaWYgKHN0cnN0cigkdG1wLCAnMjAwIE9LJykpIGhlYWRl cigiWC1zaXRlbWFwLTM6IC4uLnlheSwgaXQgd29ya2VkISIpOwoJCQkgICB9CgkJCSAgIGZj bG9zZSgkZnApOwoJCQl9IGVsc2UgaGVhZGVyKCJYLXNpdGVtYXAtMjogLi4uYnVtbWVyLiBE aWRuJ3Qgd29yay4iKTsKCQl9IC8vRW5kIFBpbmcKCQlyZXR1cm47Cgl9CgoJLyogVGhpcyB0 aGUgZnVuY3Rpb24gZHJhd3MgdGhlIEFkbWluLVNpZGUgSW50ZXJmYWNlCgkgKgoJICovCglm dW5jdGlvbiBhc3lfc2l0ZW1hcCgkZXZlbnQsICRzdGVwKSB7CgkJbGlzdCgkb3B0aW9ucywg JGNoYW5nZWZyZXFfYXJyYXksICRmaWxlbmFtZSkgPSBhc3lfc2l0ZW1hcF9jb25maWcodHJ1 ZSk7CgkJZXh0cmFjdCgkb3B0aW9ucyk7CgkJaWYgKCFmaWxlX2V4aXN0cygkZmlsZW5hbWUp KQoJCQkkZmlsZV9lcnJvciA9ICRmaWxlbmFtZS4iIGRvZXMgbm90IGV4aXN0LiBDcmVhdGUg aXQgYW5kIG1ha2UgaXQgd3JpdGFibGUuIjsKCQllbHNlaWYgKCFpc193cml0YWJsZSgkZmls ZW5hbWUpKQoJCQkkZmlsZV9lcnJvciA9ICRmaWxlbmFtZS4iIGV4aXN0cywgYnV0IGlzIG5v dCB3cml0YWJsZS4gTWFrZSBpdCB3cml0YWJsZS4iOwoJCWVsc2UgJGZpbGVfZXJyb3IgPSBm YWxzZTsKCgkJaWYgKHBzKCJkb19zb21ldGhpbmciKSAmJiAoISRmaWxlX2Vycm9yKSkKCQl7 CgkJCSRvdXQgPSBhc3lfbWFrZV9zaXRlbWFwKCRmcmVxX3NlY3Rpb24sJGZyZXFfZGVmYXVs dCwkZnJlcV9kYXlzLCRhcnRpY2xlX2RheXMsJGZpbGVuYW1lLCRjaGFuZ2VmcmVxX2FycmF5 KTsKCQkJcGFnZXRvcCgiRy1TaXRlbWFwIiwgIiIpOwoJCQllY2hvICRvdXQ7CgkJfQoJCWVs c2UKCQl7CgkJCXBhZ2V0b3AoIkctU2l0ZW1hcCIsICIiKTsKCQkJZWNobyAiPGRpdiBhbGln bj1cImNlbnRlclwiIHN0eWxlPVwibWFyZ2luLXRvcDozZW1cIj4iOwoJCQlpZiAoJGZpbGVf ZXJyb3IpIGVjaG8gJzxwIHN0eWxlPSJjb2xvcjpyZWQiPicuJGZpbGVfZXJyb3IuJzwvcD4n OwoJCQllY2hvIGZvcm0oCgkJCQl0YWcoIkdvb2dsZSBTaXRlbWFwIEdlbmVyYXRvciIsICJo MyIpLgoJCQkJZ3JhZigiU2VjdGlvbiBDaGFuZ2UgRnJlcXVlbmN5OiAiLnNlbGVjdElucHV0 KCdmcmVxX3NlY3Rpb24nLCRjaGFuZ2VmcmVxX2FycmF5LCAkZnJlcV9zZWN0aW9uKS4iPGJy IC8+Ii4KCQkJCQkiQXJ0aWNsZSBDaGFuZ2UgRnJlcXVlbmN5IChEZWZhdWx0KTogIi5zZWxl Y3RJbnB1dCgnZnJlcV9kZWZhdWx0JywkY2hhbmdlZnJlcV9hcnJheSwgJGZyZXFfZGVmYXVs dCkuIjxiciAvPiIuCgkJCQkJIkFydGljbGUgQ2hhbmdlIEZyZXF1ZW5jeSAoaWYgbGFzdCBt b2RpZmllZCBkYXRlIG9mIGFydGljbGUgb2xkZXIgdGhhbiAiLgoJCQkJCWZJbnB1dCgidGV4 dCIsICJhcnRpY2xlX2RheXMiLCAkYXJ0aWNsZV9kYXlzLCAiZWRpdCIsICIiLCAiIiwgIjIi LCAiIikuIiBkYXlzKTogIi5zZWxlY3RJbnB1dCgnZnJlcV9kYXlzJywgJGNoYW5nZWZyZXFf YXJyYXksICRmcmVxX2RheXMpLiI8YnIgLz4iLgoJCQkJCWZJbnB1dCgic3VibWl0IiwgImRv X3NvbWV0aGluZyIsICJHbyIsICJzbWFsbGVyYm94IikuCgkJCQkJZUlucHV0KCJhc3lfc2l0 ZW1hcCIpLnNJbnB1dCgiZ2VuZXJhdGUiKQoJCQkJLCIgc3R5bGU9XCJ0ZXh0LWFsaWduOmNl bnRlcjtcIiIpCgkJCSk7CgkJCWVjaG8gIjwvZGl2PiI7CgkJfQoJfQoKCS8qIEdlbmVyYXRl cyBhIGd6aXBwZWQgU2l0ZW1hcCBGaWxlIGFzIGRlZmluZWQgYnkgR29vZ2xlCgkgKgoJICog QGZyZXFfc2VjdGlvbiAgICAgaW50ICAgIFRoZSBDaGFuZ2UtRnJlcXVlbmN5IGZvciBTZWN0 aW9ucwoJICogQGZyZXFfZGVmYXVsdCAgICAgaW50ICAgIFRoZSBDaGFuZ2UtRnJlcXVlbmN5 IGZvciBBcnRpY2xlcyAoZGVmYXVsdCkKCSAqIEBmcmVxX2RheXMgICAgICAgIGludCAgICBU aGUgQ2hhbmdlLUZyZXF1ZW5jeSBmb3IgQXJ0aWNsZXMgKG9sZGVyIHRoYW4geCBkYXlzKQoJ ICogQGFydGljbGVfZGF5cyAgICAgaW50ICAgIFRoZSBudW1iZXIgb2YgZGF5cyBmb3IgQGZy ZXFfZGF5cwoJICogQGZpbGVuYW1lICAgICAgICAgc3RyaW5nIFRoZSBmaWxlbmFtZSBmb3Ig dGhlIHNpdGVtYXAKCSAqIEBjaGFuZ2VmcmVxX2FycmF5IGFycmF5ICBBIGZpeGVkIG1hcHBp bmcgZm9yIEdvb2dsZSdzICJjaGFuZ2VmcmVxIgoJICovCglmdW5jdGlvbiBhc3lfbWFrZV9z aXRlbWFwKCRmcmVxX3NlY3Rpb24sJGZyZXFfZGVmYXVsdCwkZnJlcV9kYXlzLCRhcnRpY2xl X2RheXMsJGZpbGVuYW1lLCRjaGFuZ2VmcmVxX2FycmF5KSB7CgkJZ2xvYmFsICRzaXRldXJs OwoJCWluY2x1ZGUgdHhwYXRoLicvcHVibGlzaC90YWdoYW5kbGVycy5waHAnOwoJCSRtZXNz YWdlID0nJzsKCQkkZmlsZSA9IEBnem9wZW4oJGZpbGVuYW1lLCd3YicpIG9yICRtZXNzYWdl ID0gIkNhbid0IHdyaXRlIHRvIGZpbGUuIjsKCgkJaWYgKCRmaWxlKQoJCXsKCQkJLy9TdGFy dGluZyB0aGUgb3V0cHV0CgkJCSRvdXQgPSAJY2hyKDYwKS4nP3htbCB2ZXJzaW9uPSIxLjAi IGVuY29kaW5nPSJVVEYtOCI/Jy5jaHIoNjIpLm4uCgkJCQkJJzx1cmxzZXQgeG1sbnM9Imh0 dHA6Ly93d3cuZ29vZ2xlLmNvbS9zY2hlbWFzL3NpdGVtYXAvMC44NCIKCXhtbG5zOnhzaT0i aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCgl4c2k6c2NoZW1h TG9jYXRpb249Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zY2hlbWFzL3NpdGVtYXAvMC44NAoJ aHR0cDovL3d3dy5nb29nbGUuY29tL3NjaGVtYXMvc2l0ZW1hcC8wLjg0L3NpdGVtYXAueHNk Ij4nOwoJCQkvLwoJCQkvL0xldCdzIGRvIGZyb250cGFnZSBhbmQgc2VjdGlvbnMgZmlyc3Qu CgkJCS8vCgkJCSRvdXQgLj0gJzx1cmw+Jy5uLgoJCQkJCScgPGxvYz5odHRwOi8vJy4kc2l0 ZXVybC4nLzwvbG9jPicubi4KCQkJCQknIDxjaGFuZ2VmcmVxPicuJGNoYW5nZWZyZXFfYXJy YXlbMV0uJzwvY2hhbmdlZnJlcT4nLm4uCgkJCQkJJzwvdXJsPicubjsKCgkJCSRycyA9IHNh ZmVfY29sdW1uKCJuYW1lIiwidHhwX3NlY3Rpb24iLCJuYW1lICE9ICdkZWZhdWx0JyBvcmRl ciBieSBuYW1lIik7CgoJCQlpZiAoJHJzKSB7CgkJCQlmb3JlYWNoICgkcnMgYXMgJGEpIHsK CQkJCQlpZigkYSkgewoJCQkJCQlpZigkR0xPQkFMU1sncGVybWxpbmtfbW9kZSddID09ICdt ZXNzeScpIHsKCQkJCQkJCSR1cmwgPSAnaHR0cDovLycuJHNpdGV1cmwuJy8/cz0nLnVybGVu Y29kZSgkYSk7CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQkkdXJsID0gJ2h0dHA6Ly8nLiRzaXRl dXJsLicvJy51cmxlbmNvZGUoJGEpLicvJzsKCQkJCQkJfQoJCQkJCQkkb3V0IC49ICc8dXJs Picubi4KCQkJCQkJCQknIDxsb2M+Jy4kdXJsLic8L2xvYz4nLm47CgkJCQkJCWlmICgkZnJl cV9zZWN0aW9uID4gMCkgJG91dCAuPSAnIDxjaGFuZ2VmcmVxPicuJGNoYW5nZWZyZXFfYXJy YXlbJGZyZXFfc2VjdGlvbl0uJzwvY2hhbmdlZnJlcT4nLm47CgkJCQkJCSRvdXQgLj0gJzwv dXJsPicubjsKCQkJCQl9CgkJCQl9CgkJCX0KCQkJJHRtcCA9IGd6d3JpdGUoJGZpbGUsJG91 dCk7CgoJCQkvLwoJCQkvL0xldCdzIGRvIHRoZSBpbmRpdmlkdWFsIGFydGljbGVzCgkJCS8v CgkJCSRycyA9IHNhZmVfcm93c19zdGFydCgiSUQsdW5peF90aW1lc3RhbXAoUG9zdGVkKSBh cyBQb3N0ZWQsICB1bml4X3RpbWVzdGFtcChMYXN0TW9kKSBhcyBMYXN0TW9kLCBTZWN0aW9u LCBTdGF0dXMsIFRpdGxlLCB1cmxfdGl0bGUiLCAndGV4dHBhdHRlcm4nLAoJCQkJCSIgU3Rh dHVzID49ICc0JyBhbmQgUG9zdGVkIDwgbm93KCkgb3JkZXIgYnkgTGFzdE1vZCBERVNDIik7 CgkJCWlmICgkcnMpIHsKCQkJCXdoaWxlKCRhcnRpY2xlID0gbmV4dFJvdygkcnMpKSB7CgkJ CQkJJHVybCA9IHBlcm1saW5rdXJsKCRhcnRpY2xlKTsKCQkJCQlpZiAoJGFydGljbGVbJ0xh c3RNb2QnXT09MCkgJGFydGljbGVbJ0xhc3RNb2QnXSA9ICRhcnRpY2xlWydQb3N0ZWQnXTsK CQkJCQkkY2hhbmdlZnJlcSA9ICRmcmVxX2RlZmF1bHQ7CgkJCQkJaWYgKCgkYXJ0aWNsZV9k YXlzID4gMCkgJiYgKCh0aW1lKCkgLSAkYXJ0aWNsZVsnTGFzdE1vZCddKSA+ICgkYXJ0aWNs ZV9kYXlzICogODY0MDAgKSkpCgkJCQkJewoJCQkJCQkkY2hhbmdlZnJlcSA9ICRmcmVxX2Rh eXM7CgkJCQkJfQoJCQkJCSRvdXQgID0gJzx1cmw+Jy5uLgoJCQkJCQkJJyA8bG9jPicuJHVy bC4nPC9sb2M+Jy5uLgoJCQkJCQkJJyA8bGFzdG1vZD4nLmFzeV9pc284NjAxX2RhdGUoJGFy dGljbGVbJ0xhc3RNb2QnXSkuJzwvbGFzdG1vZD4nLm47CgkJCQkJaWYgKCRjaGFuZ2VmcmVx ID4gMCkgJG91dCAuPSAnIDxjaGFuZ2VmcmVxPicuJGNoYW5nZWZyZXFfYXJyYXlbJGNoYW5n ZWZyZXFdLic8L2NoYW5nZWZyZXE+Jy5uOwoJCQkJCSRvdXQgLj0gJzwvdXJsPicubjsKCQkJ CQkkdG1wID0gZ3p3cml0ZSgkZmlsZSwkb3V0KTsKCgkJCQl9IC8vIGVuZCB3aGlsZSBmb3Ig YXJ0aWNsZQoJCQl9IC8vIGVuZCBpZgoJCQkkdG1wID0gZ3p3cml0ZSgkZmlsZSwnPC91cmxz ZXQ+Jyk7CgkJCWd6Y2xvc2UoJGZpbGUpOwoJCX0KCQlpZiAoJG1lc3NhZ2UgPT0nJykgJG1l c3NhZ2UgPSAnRmlsZSBzdWNjZXNzZnVsbHkgd3JpdHRlbi4nOwoJCSRyZXQgID0gIjxkaXYg YWxpZ249XCJjZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi10b3A6M2VtXCI+IjsKCQkkcmV0IC49 ICc8Yj4nLiRtZXNzYWdlLic8L2I+Jy5ici5icjsKCQkkcmV0IC49ICJGaWxlbmFtZTogIi4k ZmlsZW5hbWUuIGJyLmJyOwoJCSRyZXQgLj0gJ0Rvd25sb2FkIHRoZSBGaWxlOiA8YSBocmVm PSJodHRwOi8vJy4kc2l0ZXVybC4nLycuYmFzZW5hbWUoJGZpbGVuYW1lKS4nIj4nLmJhc2Vu YW1lKCRmaWxlbmFtZSkuJzwvYT4nLmJyLmJyOwoJCSRyZXQgLj0gJzxiPlBpbmcgR29vZ2xl PC9iPjogPGEgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tL3dlYm1hc3RlcnMvc2l0ZW1h cHMvcGluZz9zaXRlbWFwPScuCgkJCQl1cmxlbmNvZGUoJ2h0dHA6Ly8nLiRzaXRldXJsLicv Jy5iYXNlbmFtZSgkZmlsZW5hbWUpKS4KCQkJCSciPndpdGggdGhpcyBzaXRlbWFwPC9hPic7 CgkJJHJldCAuPSAiPC9kaXY+IjsKCQlyZXR1cm4gJHJldDsKCX0KCgkvKiBGb3JtYXQgRGF0 ZSBpbiBJU084NjAxCgkgKiBJIHN0b2xlIHRoaXMgZnJvbSBodHRwOi8vcGhwLm5ldC9kYXRl CgkgKgoJICogQHRpbWUJaW50CQl1bml4IHRpbWVzdGFtcAoJICogQHJldHVybiAgc3RyaW5n ICBJU084NjAxIGZvcm1hdHRlZCBkYXRlCgkqLwoJZnVuY3Rpb24gYXN5X2lzbzg2MDFfZGF0 ZSgkdGltZSkgewoJICAgJHR6ZCA9IGRhdGUoJ08nLCR0aW1lKTsKCSAgICR0emQgPSBzdWJz dHIoY2h1bmtfc3BsaXQoJHR6ZCwgMywgJzonKSwwLDYpOwoJICAgJGRhdGUgPSBkYXRlKCdZ LW0tZFxUSDppOnMnLCAkdGltZSkgLiAkdHpkOwoJICAgcmV0dXJuICRkYXRlOwoJfQoiO3M6 MzoibWQ1IjtzOjMyOiI2ZDhiMTBjZTBlZDJjZmNhYzJjYzgyNmZmYzc0ZTI5MCI7fQ==