# Name: smd_lately v0.22 # Type: Client side plugin # Show recently viewed/popular articles # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEwOiJzbWRfbGF0ZWx5IjtzOjY6ImF1dGhvciI7czoxMToi U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjIyIjtzOjExOiJkZXNjcmlwdGlvbiI7czoz NzoiU2hvdyByZWNlbnRseSB2aWV3ZWQvcG9wdWxhciBhcnRpY2xlcyI7czo0OiJoZWxwIjtz OjE1MDEwOiI8ZGl2IGlkPSJzbWRfaGVscCI+CgoJPGgxPnNtZF9sYXRlbHk8L2gxPgoKCTxw Pkxpc3QgdGhlIG1vc3QgcmVjZW50IGFydGljbGVzIHZpZXdlZCBieSB0aGUgY3VycmVudCB2 aXNpdG9yIG9yLCBhbHRlcm5hdGl2ZWx5LCBhbGwgdmlzaXRvcnMuIENhbiBhbHNvIG9yZGVy IGJ5IHBvcHVsYXJpdHkgKG1vc3Qgdmlld2VkKS48L3A+CgoJPGgyIGlkPSJmZWF0dXJlcyI+ RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+TGlzdCByZWNlbnRseSB2aWV3ZWQgYXJ0aWNs ZXM6IHVzZWZ1bCBvbiBwcm9kdWN0IHBhZ2VzIG9yIGluIHNob3BwaW5nIGNhcnQ8L2xpPgoJ CTxsaT5TaG93IGEgbGlzdCBvZiB0aGUgbW9zdCBwb3B1bGFyIGFydGljbGVzPC9saT4KCQk8 bGk+TGltaXQgZWl0aGVyIGxpc3QgYnkgc2VjdGlvbiBvciBhcmJpdHJhcnkgdmFsdWUgKGlw LCBob3N0LCBwYWdlLCByZWZlcmVyKSBpZiB5b3Ugd2lzaDwvbGk+CgkJPGxpPlVzZXMgdGhl IHZpc2l0b3IgbG9nczwvbGk+CgkJPGxpPkF1dG9tYXRpY2FsbHkgZmlsdGVycyBvdXQgYXJ0 aWNsZSBsaXN0IHBhZ2VzLCBjYXRlZ29yeSwgYXV0aG9yIG9yIHNlYXJjaCB2aXNpdHM8L2xp PgoJPC91bD4KCgk8aDIgaWQ9ImF1dGhvciI+QXV0aG9yIC8gY3JlZGl0czwvaDI+CgoJPHA+ PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbnRhY3QiPlN0ZWYgRGF3c29uPC9h Pi48L3A+CgoJPGgyIGlkPSJpbnN0YWxsIj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlv bjwvaDI+CgoJPHAgY2xhc3M9InJlcXVpcmVkIj5SZXF1aXJlcyBMb2dnaW5nIHRvIGJlIHNl dCB0byA8ZW0+QWxsIGhpdHM8L2VtPiAod2lsbCBpc3N1ZSBhIHdhcm5pbmcgb2Ygbm90KTwv cD4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9Imh0dHA6 Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy8xMTEwL3NtZF9sYXRlbHkiPnRleHRwYXR0ZXJu Lm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNv ZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0i Y2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5k IGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRl eHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTMxMzQxIj5mb3J1bSB0aHJlYWQ8L2E+ IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lz ZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIHNpbXBseSBkZWxldGUg ZnJvbSB0aGUgQWRtaW4gLSZndDsgUGx1Z2lucyBwYWdlLjwvcD4KCgk8aDIgaWQ9Im5wIj48 Y29kZT4mbHQ7dHhwOnNtZF9sYXRlbHkmZ3Q7PC9jb2RlPjwvaDI+CgoJPHA+UGxhY2UgdGhp cyB0YWcgYW55d2hlcmUgeW91IHdpc2ggdG8gZGlzcGxheSBhIGxpc3Qgb2YgcmVjZW50bHkg dmlld2VkIGFydGljbGVzLiBUaGUgdGFnIG1heSBiZSB1c2VkIGFzIGEgc2luZ2xlIHRhZyAo d2l0aCBhbiBvcHRpb25hbCBmb3JtKSBvciBhcyBhIGNvbnRhaW5lci4gSW5zaWRlIHRoZSBm b3JtL2NvbnRhaW5lciB5b3UgY2FuIHVzZSBhbnkgc3RhbmRhcmQgYXJ0aWNsZSB0YWdzICYj ODIxMjsgPGNvZGU+Jmx0O3R4cDp0aXRsZSAvJmd0OzwvY29kZT4sIDxjb2RlPiZsdDt0eHA6 ZXhjZXJwdCAvJmd0OzwvY29kZT4sIDxjb2RlPiZsdDt0eHA6cG9zdGVkIC8mZ3Q7PC9jb2Rl PiwgZXRjICYjODIxMjsgdG8gZm9ybWF0IHRoZSBsaXN0IGhvd2V2ZXIgeW91IGxpa2UuIFdp dGhvdXQgZWl0aGVyIGEgZm9ybSBvciBhIGNvbnRhaW5lciwgdGhlIHBsdWdpbiBkaXNwbGF5 cyBhIGh5cGVybGlua2VkIHRpdGxlIHRvIHRoZSBhcnRpY2xlLjwvcD4KCgk8cD5UaGUgZm9s bG93aW5nIGF0dHJpYnV0ZXMgY2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSBwbHVnaW4mIzgy MTc7cyBvdXRwdXQ6PC9wPgoKCTxoMyBjbGFzcz0iYXR0cyI+QXR0cmlidXRlczwvaDM+CgoJ PGg0PkxvZyBmaWx0ZXJpbmcgYW5kIHNvcnQgb3JkZXIgYXR0cmlidXRlczwvaDQ+CgoJPHVs PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Ynk8L3NwYW4+IDogdXNlIDxjb2RlPmJ5PSZx dW90OyZxdW90OzwvY29kZT4gb3IgPGNvZGU+Ynk9JnF1b3Q7U01EX0FMTCZxdW90OzwvY29k ZT4gdG8gdmlldyB0aGUgbW9zdCByZWNlbnQgYXJ0aWNsZXMgYnkgYWxsIHNpdGUgdmlzaXRv cnMuIEJ5IGRlZmF1bHQgKGkuZS4gaWYgdGhlIGF0dHJpYnV0ZSBpcyBvbWl0dGVkKSB0aGUg cGx1Z2luIG9ubHkgc2hvd3MgdGhlIHJlY2VudCBhcnRpY2xlcyB2aWV3ZWQgYnkgdGhlIGN1 cnJlbnQgdmlzaXRvcjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5zZWN0aW9uPC9z cGFuPiA6IGNob29zZSB0byBzaG93IGFydGljbGVzIG9ubHkgZnJvbSB0aGlzIGxpc3Qgb2Yg c2VjdGlvbnMuIERlZmF1bHQ6IHVuc2V0IChpLmUuIGZyb20gYWxsIHNlY3Rpb25zKS4gPHNw YW4gY2xhc3M9InJlcXVpcmVkIj5Ob3RlIHRoYXQgeW91IG11c3QgYmUgdXNpbmcgZWl0aGVy IG1lc3N5IG1vZGUgb3IgYSBwZXJtbGluayBtb2RlIHdpdGggPGNvZGU+L3NlY3Rpb248L2Nv ZGU+IGluIGl0IHRvIGZpbHRlciBieSBzZWN0aW9uPC9zcGFuPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5zaG93X2N1cnJlbnQ8L3NwYW4+IDogRGlzcGxheSB0aGUgYXJ0aWNs ZSBiZWluZyB2aWV3ZWQgaW4gdGhlIGxpc3Q6IDE9WWVzOyAwPU5vLiBJZ25vcmVkIGlmIGlu IGFuIGFydGljbGVfbGlzdCBwYWdlLiBEZWZhdWx0OiAwPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPmluY2x1ZGU8L3NwYW4+IDogZW5zdXJlIHRoYXQgbG9nIGZpbGUgZW50cmll cyB0aGF0IG1hdGNoIHRoaXMgc2V0IG9mIGNyaXRlcmlhIGFyZSBpbmNsdWRlZCBpbiB0aGUg bGlzdC4gVGhpcyBhdHRyaWJ1dGUgdGFrZXMgdXAgdG8gMyBwYXJhbWV0ZXJzLCBzZXBhcmF0 ZWQgYnkgPGNvZGU+cGFyYW1fZGVsaW08L2NvZGU+IChkZWZhdWx0IGlzIHRoZSBjb2xvbiku Cgk8dWw+CgkJPGxpPkZpcnN0IGlzIHRoZSBuYW1lIG9mIGEgZmllbGQgdG8gbWF0Y2ggYWdh aW5zdC4gQ2hvb3NlIGZyb20gPGNvZGU+aXA8L2NvZGU+ICh0aGUgZGVmYXVsdCksIDxjb2Rl Pmhvc3Q8L2NvZGU+LCA8Y29kZT5wYWdlPC9jb2RlPiBvciA8Y29kZT5yZWZlcjwvY29kZT48 L2xpPgoJCTxsaT5TZWNvbmQgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIHRvIGluZGljYXRl IHdoZXRoZXIgdGhlIG1hdGNoIGlzIGEgcmVndWxhciBleHByZXNzaW9uLCB3aWxkIG9yIGFu IGV4YWN0IG1hdGNoLiBVc2UgPGNvZGU+cmVnZXg8L2NvZGU+IGlmIHlvdSB3aXNoIHRoaXMg bWF0Y2ggdG8gYmUgY29uc2lkZXJlZCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgc3BlY2lm eSA8Y29kZT5saWtlPC9jb2RlPiBpZiB5b3Ugd2FudCB0byBjaGVjayBpZiB0aGUgdGV4dCBp cyBhIHNpbXBsZSAmIzgyMTY7d2lsZCYjODIxNzsgbWF0Y2ggKGl0JiM4MjE3O3Mgc2ltaWxh ciB0bywgYnV0IHF1aWNrZXIgdGhhbiwgYSByZWdleCksIG9yIG9taXQgdGhlIHBhcmFtZXRl ciBlbnRpcmVseSBpZiB5b3Ugd2FudCBhbiAmIzgyMTY7ZXhhY3QgbWF0Y2gmIzgyMTc7IHRv IGJlIGNvbnNpZGVyZWQ8L2xpPgoJCTxsaT5GaW5hbGx5LCBzcGVjaWZ5IHRoZSB0ZXh0IHlv dSB3YW50IHRvIG1hdGNoIHdpdGggdGhhdCBmaWVsZC4gRm9yIGV4YW1wbGUsIDxjb2RlPmlu Y2x1ZGU9JnF1b3Q7aG9zdDpsaWtlOnd3dy5kb21haW4uY29tJnF1b3Q7PC9jb2RlPiB3b3Vs ZCBvbmx5IGluY2x1ZGUgcmVzdWx0cyB0aGF0IGhhZCA8Y29kZT53d3cuZG9tYWluLmNvbTwv Y29kZT4gc29tZXdoZXJlIGluIHRoZWlyIGhvc3QgbmFtZS4gVXNpbmcgPGNvZGU+aW5jbHVk ZT0mcXVvdDsxOTIuMTY4LjIuMjAwJnF1b3Q7PC9jb2RlPiB3b3VsZCBzaG93IHBhZ2VzIGZy b20gYW55IGludGVybmFsIG1lZGRsaW5nIHlvdSBtYXkgaGF2ZSBkb25lIG9uIHlvdXIgbG9j YWwgPHNwYW4gY2xhc3M9ImNhcHMiPlhBTVBQPC9zcGFuPiBzZXJ2ZXIuIE5vdGUgdGhhdCBp ZiB5b3Ugb21pdCBwYXJhbWV0ZXJzIDEgYW5kIDIsIHRoZSBwbHVnaW4gdXNlcyB0aGUgZGVm YXVsdHM8L2xpPgoJPC91bD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZXhjbHVk ZTwvc3Bhbj4gOiBlbnN1cmUgdGhhdCBsb2cgZmlsZSBlbnRyaWVzIHRoYXQgbWF0Y2ggdGhp cyBzZXQgb2YgY3JpdGVyaWEgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGluY2x1ZGVkIGlu IHRoZSBsaXN0LiBVc2UgdGhpcyBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgPGNvZGU+aW5jbHVk ZTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZnJvbTwvc3Bhbj4gOiBk YXRlIC8gdGltZSBzdGFtcCAod3JpdHRlbiBpbiBFbmdsaXNoKSBvZiB0aGUgPGVtPmVhcmxp ZXN0PC9lbT4gZGF0ZSB0byBjb25zaWRlciBpbiB0aGUgbG9ncy4gWW91IG1heSBzcGVjaWZ5 IDxjb2RlPj9tb250aDwvY29kZT4gYW5kL29yIDxjb2RlPj95ZWFyPC9jb2RlPiB0byBoYXZl IHRoZSBwbHVnaW4gcmVwbGFjZSBpdCB3aXRoIHRoZSBjdXJyZW50IG1vbnRoL3llYXIuIERl ZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnRvPC9zcGFuPiA6 IGRhdGUgLyB0aW1lIHN0YW1wICh3cml0dGVuIGluIEVuZ2xpc2gpIG9mIHRoZSA8ZW0+bW9z dCByZWNlbnQ8L2VtPiBkYXRlIHRvIGNvbnNpZGVyIGluIHRoZSBsb2dzLiBZb3UgbWF5IHNw ZWNpZnkgPGNvZGU+P21vbnRoPC9jb2RlPiBhbmQvb3IgPGNvZGU+P3llYXI8L2NvZGU+IHRv IGhhdmUgdGhlIHBsdWdpbiByZXBsYWNlIGl0IHdpdGggdGhlIGN1cnJlbnQgbW9udGgveWVh ci4gRGVmYXVsdDogY3VycmVudCB0aW1lPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PndpdGhpbjwvc3Bhbj4gOiBkYXRlIG9mZnNldCAod3JpdHRlbiBpbiBFbmdsaXNoKSB3aGlj aCBzcGVjaWZpZXMgYSB0aW1lIHdpbmRvdyBpbiB3aGljaCB5b3UgYXJlIGludGVyZXN0ZWQu IEZvciBleGFtcGxlIDxjb2RlPndpdGhpbj0mcXVvdDszNiBob3VycyZxdW90OzwvY29kZT4g d291bGQgc2hvdyByZXN1bHRzIGZyb20gdGhlIGxhc3QgMzYgaG91cnMuIElmIHlvdSBzcGVj aWZ5IGEgPGNvZGU+dG88L2NvZGU+IGRhdGUsIHRoZSB2YWx1ZSBvZiA8Y29kZT53aXRoaW48 L2NvZGU+IGlzIHN1YnRyYWN0ZWQgZnJvbSBpdC4gSWYgeW91IHNwZWNpZnkgYSA8Y29kZT5m cm9tPC9jb2RlPiBkYXRlLCB0aGUgdmFsdWUgb2YgPGNvZGU+d2l0aGluPC9jb2RlPiBpcyA8 ZW0+YWRkZWQ8L2VtPiB0byBpdC4gSWYgeW91IHNwZWNpZnkgYm90aCA8Y29kZT5mcm9tPC9j b2RlPiBhbmQgPGNvZGU+dG88L2NvZGU+LCB0aGUgb2Zmc2V0IGlzIGNhbGN1bGF0ZWQgcmVs YXRpdmUgdG8gdGhlIDxjb2RlPnRvPC9jb2RlPiBhdHRyaWJ1dGUuIERlZmF1bHQ6IHVuc2V0 PC9saT4KCTwvdWw+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+c29ydDwvc3Bh bj4gOiBvcmRlciB0aGUgbGlzdCBieSBlaXRoZXIgPGNvZGU+dGltZTwvY29kZT4sIG9yIDxj b2RlPnBvcHVsYXJpdHk8L2NvZGU+LiBBZGQgPGNvZGU+YXNjPC9jb2RlPiBvciA8Y29kZT5k ZXNjPC9jb2RlPiB0byBjaG9vc2UgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgc29ydCBvcmRl ci4gRGVmYXVsdDogPGNvZGU+dGltZSBkZXNjPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj5saW1pdDwvc3Bhbj4gOiBzaG93IHRoaXMgbWFueSBpdGVtcyBpbiB0aGUg bGlzdC4gMCA9IHVubGltaXRlZC4gRGVmYXVsdDogMTA8L2xpPgoJPC91bD4KCgk8aDQ+QXJ0 aWNsZSBmaWx0ZXIgYXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+c3RhdHVzPC9zcGFuPiA6IE9ubHkgYXJ0aWNsZXMgd2l0aCBvbmUgb2YgdGhlc2Ug bGlzdGVkIHN0YXR1cyB2YWx1ZXMgYXJlIGRpc3BsYXllZCBpbiB0aGUgbGlzdC4gRGVmYXVs dDogNCAoPGNvZGU+bGl2ZTwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PnRpbWU8L3NwYW4+IDogSWYgYW4gYXJ0aWNsZSBpbiB0aGUgbG9nIGhhcyBpdHMgcG9zdGVk IHRpbWVzdGFtcCBpbiB0aGUgdGltZSBwZXJpb2QgaW5kaWNhdGVkIGluIHRoaXMgYXR0cmli dXRlLCBpdCB3aWxsIGJlIGRpc3BsYXllZC4gQ2hvb3NlIGZyb20gPGNvZGU+YW55PC9jb2Rl PiwgPGNvZGU+ZnV0dXJlPC9jb2RlPiBvciA8Y29kZT5wYXN0PC9jb2RlPiAodGhlIGRlZmF1 bHQpLiBMZWF2aW5nIHRoaXMgYXQgaXRzIGRlZmF1bHQgcHJldmVudHMgYW55IGZ1dHVyZS1k YXRlZCBhcnRpY2xlcyB0aGF0IHlvdSBtYXkgYmUgcHJldmlld2luZyBmcm9tIHNob3dpbmcg dXAgaW4gdGhlIGxpc3Q8L2xpPgoJPC91bD4KCgk8aDQ+RGlzcGxheSBhdHRyaWJ1dGVzPC9o ND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj53cmFwdGFnPC9zcGFuPiA6IHRo ZSAoWClIVE1MIHRhZywgd2l0aG91dCBpdHMgYnJhY2tldHMsIHRvIHdyYXAgdGhlIGxpc3Qg d2l0aC4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y2xh c3M8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIG5h bWUgdG8gYXBwbHkgdG8gdGhlIHdyYXB0YWcuIERlZmF1bHQ6IDxjb2RlPnNtZF9sYXRlbHk8 L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9zcGFuPiA6IHRo ZSAoWClIVE1MIHRhZywgd2l0aG91dCBpdHMgYnJhY2tldHMsIHRvIHdyYXAgZWFjaCBpdGVt IHdpdGguIERlZmF1bHQ6IDxjb2RlPmJyPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj5sYWJlbDwvc3Bhbj4gOiB0aGUgbGFiZWwgdGV4dCB0byBhZGQgdG8gdGhlIHRv cCBvZiB0aGUgbGlzdC4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+bGFiZWx0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0IGl0cyBi cmFja2V0cywgdG8gd3JhcCB0aGUgbGFiZWwgd2l0aC4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJ PC91bD4KCgk8aDQ+UGx1Z2luIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlczwvaDQ+CgoJPHVs PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Zm9ybTwvc3Bhbj4gOiBpZiB5b3UgcHJlZmVy IHRvIHVzZSBhIGZvcm0gaW5zdGVhZCBvZiB0aGUgY29udGFpbmVyIHRvIGhvbGQgeW91ciBt YXJrdXAgYW5kIHRhZ3MsIHNwZWNpZnkgaXQgaGVyZS4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0 byB1c2UgYmV0d2VlbiBpdGVtcyBpbiBhdHRyaWJ1dGUgbGlzdHMgKDxjb2RlPnNlY3Rpb248 L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgPGNvZGU+ZXhjbHVkZTwvY29kZT4sIDxj b2RlPnN0YXR1czwvY29kZT4pLiBEZWZhdWx0OiBjb21tYTwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj5wYXJhbV9kZWxpbTwvc3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRvIHVzZSBi ZXR3ZWVuIHBhcmFtZXRlcnMgaW5zaWRlIGFuIGF0dHJpYnV0ZSAoPGNvZGU+aW5jbHVkZTwv Y29kZT4sIDxjb2RlPmV4Y2x1ZGU8L2NvZGU+KS4gRGVmYXVsdDogY29sb248L2xpPgoJPC91 bD4KCgk8aDMgY2xhc3M9ImF0dHMiPlJlcGxhY2VtZW50IHZhcmlhYmxlczwvaDM+CgoJPHA+ SW4gYWRkaXRpb24gdG8gcmVndWxhciA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBh cnRpY2xlIHRhZ3MsIHlvdSBtYXkgZW1wbG95IGFueSBvZiB0aGUgZm9sbG93aW5nIGNvZGVz IGluIHlvdXIgZm9ybS9jb250YWluZXIgdG8gZGlzcGxheSB0aGUgY29ycmVzcG9uZGluZyB2 YWx1ZTo8L3A+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlf Y291bnR9PC9zcGFuPiA6IHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGFydGljbGUgaGFzIGJl ZW4gYWNjZXNzZWQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlf ZnVsbGRhdGV9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBhY2Nlc3MgZGF0 ZSBzdGFtcDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVseV9kYXRl fTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNjZXNzIGRhdGU8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfZGF0ZV95ZWFyfTwvc3Bhbj4g OiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNjZXNzIHllYXI8L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfZGF0ZV9tb250aH08L3NwYW4+IDogdGhlIGFy dGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyBtb250aCAobnVtYmVyKTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVseV9kYXRlX21vbnRobmFtZX08L3NwYW4+IDog dGhlIGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyBtb250aCAoZnVsbCBuYW1lKTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVseV9kYXRlX2RheX08L3NwYW4+ IDogdGhlIGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyBkYXkgKG51bWJlcik8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfZGF0ZV9kYXluYW1lfTwvc3Bh bj4gOiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNjZXNzIGRheSAoZnVsbCBuYW1lKTwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVseV90aW1lfTwvc3Bhbj4g OiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNjZXNzIHRpbWUgc3RhbXA8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfdGltZV9ob3VyfTwvc3Bhbj4gOiB0 aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNjZXNzIGhvdXI8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfdGltZV9taW51dGV9PC9zcGFuPiA6IHRoZSBhcnRp Y2xlJiM4MjE3O3MgbGFzdCBhY2Nlc3MgbWludXRlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPntzbWRfbGF0ZWx5X3RpbWVfc2Vjb25kfTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYj ODIxNztzIGxhc3QgYWNjZXNzIHNlY29uZDwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0iY2F2ZWF0 cyI+Q2F2ZWF0czwvaDM+CgoJPHA+U2luY2UgdGhlIHBsdWdpbiB1c2VzIHRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBsb2dzIHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGV5 IGFyZSBiZWluZyB1c2VkIChBZG1pbi0mZ3Q7QmFzaWMgUHJlZnMpLiBJdCBhbHNvIG1lYW5z IHRoYXQgYW55IHZpc2l0b3JzIHVzaW5nIGFuIGFub255bWlzaW5nIHByb3h5IHdpbGwgZ2V0 IHNwdXJpb3VzIChvciBubykgcmVzdWx0cy4gVGhlaXIgbG9zcy48L3A+CgoJPGgyIGNsYXNz PSJleGFtcGxlcyI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE6IHJl Y2VudCBhcnRpY2xlIGxpc3QgZm9yIGN1cnJlbnQgdmlzaXRvcjwvaDM+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9sYXRlbHkgLyZndDsK PC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI6IHJlY2VudCBhcnRpY2xl cyBmb3IgYWxsIHZpc2l0b3JzPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFz cz0iYmxvY2siPiZsdDt0eHA6c21kX2xhdGVseSBieT0mcXVvdDsmcXVvdDsgc2VjdGlvbj0m cXVvdDthcmNoaXZlLCBhYm91dCZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+T25s eSBzaG93cyB0aGUgYXJ0aWNsZXMgdmlld2VkIGZyb20gdGhlICYjODIxNjthcmNoaXZlJiM4 MjE3OyBhbmQgJiM4MjE2O2Fib3V0JiM4MjE3OyBzZWN0aW9ucy48L3A+CgoJPGgzIGlkPSJl ZzMiPkV4YW1wbGUgMzogbW9zdCBwb3B1bGFyIGFydGljbGVzIGFjcm9zcyB0aGUgc2l0ZTwv aDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNt ZF9sYXRlbHkgYnk9JnF1b3Q7JnF1b3Q7IHNvcnQ9JnF1b3Q7cG9wdWxhcml0eSZxdW90OyAg LyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPldpdGhvdXQgdXNpbmcgdGhlIDxjb2RlPmJ5PC9j b2RlPiBhdHRyaWJ1dGUsIHRoaXMgd291bGQgZ2l2ZSB0aGUgbW9zdCBwb3B1bGFyIGFydGlj bGVzIGZvciB0aGUgY3VycmVudCB2aXNpdG9yICYjODIxMjsgcHJvYmFibHkgbm90IHdoYXQg eW91IHdhbnQhPC9wPgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ6IHRhZyBhcyBhIGNvbnRh aW5lcjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7 dHhwOnNtZF9sYXRlbHkgYnk9JnF1b3Q7JnF1b3Q7CiAgICAgd3JhcHRhZz0mcXVvdDt1bCZx dW90OyBicmVhaz0mcXVvdDtsaSZxdW90OyBsaW1pdD0mcXVvdDs2JnF1b3Q7Jmd0OwogICAm bHQ7dHhwOnBlcm1saW5rJmd0OyZsdDt0eHA6dGl0bGUgLyZndDsmbHQ7L3R4cDpwZXJtbGlu ayZndDsgW3tzbWRfbGF0ZWx5X2NvdW50fV0mbHQ7YnIgLyZndDsKICAgJmx0O3R4cDpwb3N0 ZWQgLyZndDsgYnkgJmx0O3R4cDphdXRob3IgLyZndDsKJmx0Oy90eHA6c21kX2xhdGVseSZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNob3dzIHRoZSA2IG1vc3QgcmVjZW50IGFydGljbGVz IGFjY2Vzc2VkIGJ5IGFueSBzaXRlIHZpc2l0b3IuIFRoZSB1bm9yZGVyZWQgbGlzdCBvdXRw dXQgY29udGFpbnMgYSBwZXJtbGlua2VkIHRpdGxlLCB0aGUgZGF0ZSB0aGUgYXJ0aWNsZSB3 YXMgcG9zdGVkIGFuZCB0aGUgYXJ0aWNsZSYjODIxNztzIGF1dGhvci48L3A+CgoJPGgzIGlk PSJlZzUiPkV4YW1wbGUgNTogZmlsdGVyaW5nIGJ5IGhvc3Q8L2gzPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfbGF0ZWx5IGJ5PSZxdW90 OyZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVv dDsgbGltaXQ9JnF1b3Q7NiZxdW90OwogICAgIGV4Y2x1ZGU9JnF1b3Q7aG9zdDppZDM0NTYt YnQuY3VzdHJlZi5jb20sIHJlZmVyOiZxdW90OyZndDsKICAgJmx0O3R4cDpwZXJtbGluayZn dDsmbHQ7dHhwOnRpdGxlIC8mZ3Q7Jmx0Oy90eHA6cGVybWxpbmsmZ3Q7IFt7c21kX2xhdGVs eV9jb3VudH1dJmx0O2JyIC8mZ3Q7CiZsdDsvdHhwOnNtZF9sYXRlbHkmZ3Q7CjwvY29kZT48 L3ByZT4KCgk8cD5TaG93cyBvbmx5IHJlY29yZHMgdGhhdCBoYXZlIHNvbWUgcmVmZXJlciBp bmZvcm1hdGlvbiAoaS5lLiB3ZSBhcmUgZXhjbHVkaW5nIGVudHJpZXMgd2hlcmUgcmVmZXIg PSBlbXB0eSkgYW5kIHRob3NlIHRoYXQgaGF2ZSA8c3BhbiBjbGFzcz0iY2FwcyI+Tk9UPC9z cGFuPiBiZWVuIGFjY2Vzc2VkIHZpYSB0aGUgdW5pcXVlIGhvc3RuYW1lIGdpdmVuIHRvIHlv dSBieSB5b3VyIDxzcGFuIGNsYXNzPSJjYXBzIj5JU1A8L3NwYW4+ICYjODIxMjsgYXNzdW1p bmcgPGNvZGU+aWQzNDU2LWJ0LmN1c3RyZWYuY29tPC9jb2RlPiBzaG93cyB1cCBpbiB0aGUg JiM4MjE2O2hvc3QmIzgyMTc7IGNvbHVtbiB3aGVuZXZlciB5b3UgYWNjZXNzIGEgPHNwYW4g Y2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gYXJ0aWNsZS48L3A+CgoJPHA+SWYgeW91IGFkanVz dGVkIHRoZSBleGNsdWRlIGF0dHJpYnV0ZSB0byByZWFkIDxjb2RlPmV4Y2x1ZGU9JnF1b3Q7 aG9zdDpsaWtlOmJ0LmN1c3RyZWYmcXVvdDs8L2NvZGU+IHRoZW4gYW55IGxvZyBlbnRyaWVz IHdpdGggPGNvZGU+YnQuY3VzdHJlZjwvY29kZT4gaW4gdGhlbSB3b3VsZCBiZSBleGNsdWRl ZCBmcm9tIGNvbnNpZGVyYXRpb24uPC9wPgoKCTxoMyBpZD0iZWc2Ij5FeGFtcGxlIDY6IGZp bHRlcmluZyBieSB0aW1lIHJhbmdlPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2xhdGVseSBieT0mcXVvdDsmcXVvdDsKICAgICB3 cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7CiAgICAgZnJvbT0m cXVvdDs/eWVhci0/bW9udGgtMDEmcXVvdDsmZ3Q7CiAgICZsdDt0eHA6cGVybWxpbmsmZ3Q7 Jmx0O3R4cDp0aXRsZSAvJmd0OyZsdDsvdHhwOnBlcm1saW5rJmd0OyBbe3NtZF9sYXRlbHlf Y291bnR9XSZsdDticiAvJmd0OwombHQ7L3R4cDpzbWRfbGF0ZWx5Jmd0Owo8L2NvZGU+PC9w cmU+CgoJPHA+U2hvd3Mgb25seSB0aGUgaGl0cyBnZW5lcmF0ZWQgZnJvbSB0aGUgZmlyc3Qg ZGF5IG9mIHRoZSBjdXJyZW50IG1vbnRoIHVudGlsIG5vdy4gVGhlIHJlY2VudCBsaXN0IHdp bGwgdGh1cyAmIzgyMTY7cmVzZXQmIzgyMTc7IG9uIHRoZSAxc3Qgb2YgZXZlcnkgbW9udGgu PC9wPgoKCTxwPklmIHlvdSByZW1vdmVkIHRoZSA8Y29kZT5mcm9tPC9jb2RlPiBhdHRyaWJ1 dGUgYW5kIHVzZWQgPGNvZGU+d2l0aGluPSZxdW90OzMwIGRheXMmcXVvdDs8L2NvZGU+IHlv dSB3b3VsZCBpbnN0ZWFkIHNlZSBhICYjODIxNjtyb2xsaW5nJiM4MjE3OyB0b3RhbCBvZiB0 aGUgaGl0cyBpbiB0aGUgcHJldmlvdXMgMzAgZGF5cyAoeW91IGNvdWxkIGFsc28gdXNlIDxj b2RlPndpdGhpbj0mcXVvdDsxIG1vbnRoJnF1b3Q7PC9jb2RlPiB0byBnZXQgcm91Z2hseSB0 aGUgc2FtZSByZXN1bHQpLjwvcD4KCgk8aDMgaWQ9ImNoYW5nZWxvZyI+Q2hhbmdlbG9nPC9o Mz4KCgk8cD4yMyBKdWwgMDkgfCAwLjEgfCBJbml0aWFsIHJlbGVhc2U8YnIgLz4KMjQgSnVs IDA5IHwgMC4xMSB8IE1hZGUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCA8c3BhbiBjbGFz cz0iY2FwcyI+VFhQPC9zcGFuPiA0LjAuODxiciAvPgoxMCBBdWcgMDkgfCAwLjEyIHwgTmV2 ZXIgYXNzdW1lIHdoYXQgcmVtYWlucyBpbiB0aGUgZmlsdGVyZWQgPHNwYW4gY2xhc3M9ImNh cHMiPlVSTDwvc3Bhbj4gaXMgYWN0dWFsbHkgYW4gYXJ0aWNsZTxiciAvPgoxMSBTZXAgMDkg fCAwLjEzIHwgQWRkZWQgcmVwbGFjZW1lbnQgdmFyczxiciAvPgoxOSBGZWIgMTAgfCAwLjIg fCBBZGRlZCA8Y29kZT5zdGF0dXM8L2NvZGU+LCA8Y29kZT50aW1lPC9jb2RlPiwgPGNvZGU+ aW5jbHVkZTwvY29kZT4sIDxjb2RlPmV4Y2x1ZGU8L2NvZGU+LCA8Y29kZT5kZWxpbTwvY29k ZT4sIGFuZCA8Y29kZT5wYXJhbV9kZWxpbTwvY29kZT4gOyBhcnRpY2xlIGxpc3Qgbm93IGZp bHRlcmVkIGJ5IDxjb2RlPnRpbWU9JnF1b3Q7cGFzdCZxdW90OzwvY29kZT4gYW5kIDxjb2Rl PnN0YXR1cz0mcXVvdDs0JnF1b3Q7PC9jb2RlPiBieSBkZWZhdWx0PGJyIC8+CjEwIE1heSAx MCB8IDAuMjEgfCBBZGRlZCA8Y29kZT5mcm9tPC9jb2RlPiwgPGNvZGU+dG88L2NvZGU+IGFu ZCA8Y29kZT53aXRoaW48L2NvZGU+ICh0aGFua3MgdGhlX2dob3N0KSA7IGFkZGVkIDxjb2Rl Pmxpa2U8L2NvZGU+IG1hdGNoaW5nIDsgcmVtb3ZlZCBzb21lIHBvd2VyLWh1bmdyeSA8c3Bh biBjbGFzcz0iY2FwcyI+UkVHRVhQPC9zcGFuPiBvcGVyYXRvcnMgaW4gZmF2b3VyIG9mIDxz cGFuIGNsYXNzPSJjYXBzIj5MSUtFPC9zcGFuPiB0byBpbXByb3ZlIHBlcmZvcm1hbmNlPGJy IC8+CjI4IE1heSAxMCB8IDAuMjIgfCBGaXhlZCBkZWZhdWx0IDxjb2RlPmNsYXNzPC9jb2Rl PiBhdHRyaWJ1dGUgYW5kIHJlbW92ZWQgdHJhaWxpbmcgc2xhc2ggaW4gbG9nIHBhZ2VzICh0 aGFua3MgbWFuaXF1aSk8L3A+Cgo8L2Rpdj4KPCEtLSAqKiogQkVHSU4gUExVR0lOIENTUyAq KiogLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNzbWRfaGVscCB7IGxpbmUtaGVpZ2h0 OjEuNSA7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6IDEwNSUv MTMwJSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25vc3BhY2U7IGJhY2tncm91bmQtY29s b3I6ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9jayB7IGZvbnQtd2VpZ2h0Om5vcm1h bDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3VuZC1jb2xvcjogI2YwZTY4Yzsg ZGlzcGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4OyBwYWRkaW5nOjEwcHg7IH0K I3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1z ZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsg Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xv cjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBo MyB7IGNvbG9yOiAjMjc1Njg1OyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7 IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06 IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiNzbWRfaGVscCBoNCB7 IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFw eDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQojc21k X2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMzNkOyB9CiNzbWRfaGVs cCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQoj c21kX2hlbHAgdGFibGUge3dpZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmct Ym90dG9tOjFlbTt9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNv bGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KI3NtZF9oZWxwIHVsIHsgbGlzdC1zdHlsZS10 eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgLnJlcXVpcmVkIHtjb2xvcjpyZWQ7fQojc21kX2hl bHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0KI3NtZF9oZWxwIC5icmVhayB7 IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioqIEVORCBQTFVHSU4gQ1NTICoq KiAtLT4KIjtzOjQ6ImNvZGUiO3M6OTEzMjoiZnVuY3Rpb24gc21kX2xhdGVseSgkYXR0cywg JHRoaW5nPU5VTEwpIHsNCglnbG9iYWwgJHByZWZzLCAkdGhpc2FydGljbGUsICRwZXJtbGlu a19tb2RlOw0KDQoJLy8gQ2hlY2sgbG9nZ2luZyBpcyBvbg0KCWlmICggJHByZWZzWydsb2dn aW5nJ10gIT0gJ2FsbCcpIHsNCgkJdHJpZ2dlcl9lcnJvcihzbWRfcnZfZ1R4dCgnbG9nZ2lu Z19lbmFibGVkJyksIEVfVVNFUl9OT1RJQ0UpOw0KCQlyZXR1cm47DQoJfQ0KDQoJZXh0cmFj dChsQXR0cyhhcnJheSgNCgkJJ2J5JyA9PiAnU01EX0NVUlJFTlQnLCAvLyBEZWZhdWx0IGlz IHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IHZpc2l0b3IuIENhbiBiZSBlbXB0eSBm b3IgJ2FsbCcgdmlzaXRvcnMNCgkJJ3NlY3Rpb24nID0+ICcnLA0KCQknc3RhdHVzJyA9PiAn JywNCgkJJ3RpbWUnID0+ICdwYXN0JywNCgkJJ2luY2x1ZGUnID0+ICcnLA0KCQknZXhjbHVk ZScgPT4gJycsDQoJCSd3aXRoaW4nID0+ICcnLA0KCQknZnJvbScgPT4gJycsDQoJCSd0bycg PT4gJycsDQoJCSdzaG93X2N1cnJlbnQnID0+IDAsDQoJCSdmb3JtJyA9PiAnJywNCgkJJ2xp bWl0JyA9PiAxMCwNCgkJJ3NvcnQnID0+ICd0aW1lIGRlc2MnLA0KCQknd3JhcHRhZycgPT4g JycsDQoJCSdicmVhaycgPT4gJ2JyJywNCgkJJ2NsYXNzJyA9PiBfX0ZVTkNUSU9OX18sDQoJ CSdsYWJlbCcgPT4gJycsDQoJCSdsYWJlbHRhZycgPT4gJycsDQoJCSdkZWxpbScgPT4gJywn LA0KCQkncGFyYW1fZGVsaW0nID0+ICc6JywNCgkJJ3NpbGVudCcgPT4gMCwNCgkJJ2RlYnVn JyA9PiAwLA0KCSksICRhdHRzKSk7DQoNCgkvLyBTYW5pdGl6ZSBzb3J0IG9wdGlvbnMNCgkk c29ydEJpdHMgPSBkb19saXN0KCRzb3J0LCAiICIpOw0KCSRzb3J0Qml0c1swXSA9IChlbXB0 eSgkc29ydEJpdHNbMF0pKSA/ICd0aW1lJyA6ICRzb3J0Qml0c1swXTsNCglpZiAoIWlzc2V0 KCRzb3J0Qml0c1sxXSkgfHwgIWluX2FycmF5KCRzb3J0Qml0c1sxXSwgYXJyYXkoJ2Rlc2Mn LCAnYXNjJykpKSB7DQoJCSRzb3J0Qml0c1sxXSA9ICdkZXNjJzsNCgkJJHNvcnQgPSBqb2lu KCIgIiwgJHNvcnRCaXRzKTsNCgl9DQoNCgkvLyBJUCBhZGRyZXNzIGNsYXVzZQ0KCSRpcCA9 ICcnOw0KCWlmICgkYnkgPT0gJ1NNRF9DVVJSRU5UJykgew0KCQlpZiAoZnVuY3Rpb25fZXhp c3RzKCdyZW1vdGVfYWRkcicpKSB7DQoJCQkkaXAgPSByZW1vdGVfYWRkcigpOw0KCQl9IGVs c2Ugew0KCQkJJGlwID0gc2VydmVyU2V0KCdSRU1PVEVfQUREUicpOw0KCQkJaWYgKCgkaXAg PT0gJzEyNy4wLjAuMScgfHwgJGlwID09IHNlcnZlclNldCgnU0VSVkVSX0FERFInKSkgJiYg c2VydmVyU2V0KCdIVFRQX1hfRk9SV0FSREVEX0ZPUicpKSB7DQoJCQkJJGlwcyA9IGV4cGxv ZGUoJywgJywgc2VydmVyU2V0KCdIVFRQX1hfRk9SV0FSREVEX0ZPUicpKTsNCgkJCQkkaXAg PSAkaXBzWzBdOw0KCQkJfQ0KCQl9DQoJCWlmICgkaXApIHsNCgkJCSRpcCA9ICIgQU5EIGlw PSciLmRvU2xhc2goJGlwKS4iJyI7DQoJCX0NCgl9IGVsc2UgaWYgKCRieSA9PSAnU01EX0FM TCcpIHsNCgkJJGJ5ID0gJyc7DQoJfQ0KDQoJLy8gTWFrZSBzdXJlIHdlIGRvbid0IGluY2x1 ZGUgdGhlIGN1cnJlbnQgYXJ0aWNsZQ0KCS8vIE5vdGUgdGhlIHJlZ2V4cCBpcyBhbmNob3Jl ZCB0byB0aGUgZW5kIHdpdGggYSAkDQoJJHRoaXNpY2xlID0gJyc7DQoJaWYgKGlzc2V0KCR0 aGlzYXJ0aWNsZSkpIHsNCgkJaWYgKCEkc2hvd19jdXJyZW50KSB7DQoJCQkkdXJsdGl0bGUg PSAkdGhpc2FydGljbGVbJ3VybF90aXRsZSddOw0KCQkJJHRoaXNpY2xlID0gKCR1cmx0aXRs ZSkgPyAiIEFORCBwYWdlIE5PVCBMSUtFICclJHVybHRpdGxlJyIgOiAnJzsNCgkJfQ0KCX0N Cg0KCS8vIEZpbHRlciBvdXQgYXJ0aWNsZV9saXN0IHBhZ2VzIGFuZCBvdGhlciAodW4pZGVz aXJhYmxlcw0KCSRydWxlcyA9IGFycmF5KA0KCQkicGFnZSBOT1QgTElLRSAnLyciLCAvLyBH b29kYnllIGZyb250IHBhZ2UNCgkJInBhZ2UgTk9UIExJS0UgJyVxPSUnIiwgLy8gR29vZGJ5 ZSBzZWFyY2hlcw0KCQkicGFnZSBOT1QgTElLRSAnJWM9JSciLCAvLyBHb29kYnllIGNhdCBs aXN0cw0KCQkicGFnZSBOT1QgTElLRSAnJXBnPSUnIiwgLy8gR29vZGJ5ZSBtdWx0aS1wYWdl IGxpc3RzDQoJCSJwYWdlIE5PVCBMSUtFICclY2F0ZWdvcnk9JSciLA0KCQkicGFnZSBOT1Qg TElLRSAnL2NhdGVnb3J5LyUnIiwNCgkJInBhZ2UgTk9UIExJS0UgJyVhdXRob3I9JSciLA0K CQkicGFnZSBOT1QgTElLRSAnL2F1dGhvci8lJyIsDQoJKTsNCg0KCWlmICgkc2VjdGlvbikg ew0KCQkkc2VjdGlvbiA9IGRvX2xpc3QoJHNlY3Rpb24sICRkZWxpbSk7DQoJCSRzdWJydWxl ID0gYXJyYXkoKTsNCgkJZm9yZWFjaCAoJHNlY3Rpb24gYXMgJHNlYykgew0KCQkJaWYgKCRw ZXJtbGlua19tb2RlID09ICdtZXNzeScpIHsNCgkJCQkkc3VicnVsZVtdID0gInBhZ2UgTElL RSAnJXM9JHNlYyUnIjsNCgkJCX0gZWxzZSB7DQoJCQkJJHN1YnJ1bGVbXSA9ICJwYWdlIExJ S0UgJy8kc2VjJScgQU5EIHBhZ2UgTk9UIFJFR0VYUCAnXi8kc2VjLz8kJyI7DQoJCQl9DQoJ CX0NCgkJJHN1YnJ1bGUgPSAnKCcgLiBqb2luKCcgT1IgJywgJHN1YnJ1bGUpIC4gJyknOw0K CQkkcnVsZXNbXSA9ICRzdWJydWxlOw0KCX0gZWxzZSB7DQoJCS8vIEV4Y2x1ZGUgYW55IHJv d3MgdGhhdCBqdXN0IGNvbnRhaW4gdGhlIHNlY3Rpb24gKGkuZS4gYXJ0aWNsZSBsaXN0IHBh Z2VzKQ0KCQkkYWxsU2VjcyA9IHNhZmVfY29sdW1uKCduYW1lJywgJ3R4cF9zZWN0aW9uJywg IjE9MSIsICRkZWJ1Zyk7DQoJCSRydWxlc1tdID0gInBhZ2UgTk9UIFJFR0VYUCAnXi8oIiAu IGpvaW4oInwiLCAkYWxsU2VjcykgLiAiKS8/JCciOw0KCX0NCg0KCS8vIFByb2Nlc3MgYW55 IG1hbnVhbCBpbmNsdWRlcw0KCWlmICgkaW5jbHVkZSkgew0KCQkkaW5jbHVkZSA9IGRvX2xp c3QoJGluY2x1ZGUsICRkZWxpbSk7DQoJCSRzdWJydWxlcyA9IGFycmF5KCk7DQoJCWZvcmVh Y2ggKCRpbmNsdWRlIGFzICRpbmMpIHsNCgkJCSRyZWdleCA9ICRsaWtlID0gZmFsc2U7DQoJ CQkkY29sdW1uID0gJ2lwJzsNCgkJCSRwYXJ0cyA9IGRvX2xpc3QoJGluYywgJHBhcmFtX2Rl bGltKTsNCgkJCSRtYXRjaCA9IGFycmF5X3BvcCgkcGFydHMpOw0KCQkJZm9yZWFjaCAoJHBh cnRzIGFzICRwYXJ0KSB7DQoJCQkJc3dpdGNoICgkcGFydCkgew0KCQkJCQljYXNlICJpcCI6 DQoJCQkJCWNhc2UgImhvc3QiOg0KCQkJCQljYXNlICJwYWdlIjoNCgkJCQkJY2FzZSAicmVm ZXIiOg0KCQkJCQkJJGNvbHVtbiA9ICRwYXJ0Ow0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2Ug Imxpa2UiOg0KCQkJCQkJJGxpa2UgPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2Ug InJlZ2V4IjoNCgkJCQkJCSRyZWdleCA9IHRydWU7DQoJCQkJCQlicmVhazsNCgkJCQl9DQoJ CQl9DQoJCQkkc3VicnVsZXNbXSA9ICRyZWdleCA/ICIkY29sdW1uIFJFR0VYUCAnIi5kb1Ns YXNoKHByZWdfcXVvdGUoJG1hdGNoKSkuIiciIDogKCgkbGlrZSkgPyAiJGNvbHVtbiBMSUtF ICclIi5kb1NsYXNoKCRtYXRjaCkuIiUnIiA6ICIkY29sdW1uID0gJyIuZG9TbGFzaCgkbWF0 Y2gpLiInIik7DQoJCX0NCgkJJHJ1bGVzW10gPSAnKCcuam9pbignIE9SICcsICRzdWJydWxl cykuJyknOw0KCX0NCg0KCS8vIFByb2Nlc3MgYW55IG1hbnVhbCBleGNsdWRlcw0KCWlmICgk ZXhjbHVkZSkgew0KCQkkZXhjbHVkZSA9IGRvX2xpc3QoJGV4Y2x1ZGUsICRkZWxpbSk7DQoJ CWZvcmVhY2ggKCRleGNsdWRlIGFzICRleGMpIHsNCgkJCSRyZWdleCA9ICRsaWtlID0gZmFs c2U7DQoJCQkkY29sdW1uID0gJ2lwJzsNCgkJCSRwYXJ0cyA9IGRvX2xpc3QoJGV4YywgJHBh cmFtX2RlbGltKTsNCgkJCSRtYXRjaCA9IGFycmF5X3BvcCgkcGFydHMpOw0KCQkJZm9yZWFj aCAoJHBhcnRzIGFzICRwYXJ0KSB7DQoJCQkJc3dpdGNoICgkcGFydCkgew0KCQkJCQljYXNl ICJpcCI6DQoJCQkJCWNhc2UgImhvc3QiOg0KCQkJCQljYXNlICJwYWdlIjoNCgkJCQkJY2Fz ZSAicmVmZXIiOg0KCQkJCQkJJGNvbHVtbiA9ICRwYXJ0Ow0KCQkJCQkJYnJlYWs7DQoJCQkJ CWNhc2UgImxpa2UiOg0KCQkJCQkJJGxpa2UgPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJ CWNhc2UgInJlZ2V4IjoNCgkJCQkJCSRyZWdleCA9IHRydWU7DQoJCQkJCQlicmVhazsNCgkJ CQl9DQoJCQl9DQoJCQkkcnVsZXNbXSA9ICRyZWdleCA/ICIkY29sdW1uIE5PVCBSRUdFWFAg JyIuZG9TbGFzaChwcmVnX3F1b3RlKCRtYXRjaCkpLiInIiA6ICgoJGxpa2UpID8gIiRjb2x1 bW4gTk9UIExJS0UgJyUiLmRvU2xhc2goJG1hdGNoKS4iJSciIDogIiRjb2x1bW4gIT0gJyIu ZG9TbGFzaCgkbWF0Y2gpLiInIik7DQoJCX0NCgl9DQoNCgkvLyBGaWx0ZXIgYnkgdGltZSBm cmFtZQ0KCSRmcm9tc3RhbXAgPSAkdG9zdGFtcCA9ICRkaWZmc3RhbXAgPSAwOw0KCSR0aGlz bW9udGggPSBkYXRlKCdGJywgbWt0aW1lKDAsMCwwLHN0cmZ0aW1lKCclbScpLDEpKTsNCgkk dGhpc3llYXIgPSBzdHJmdGltZSgnJVknKTsNCglpZiAoJGZyb20pIHsNCgkJJGZyb20gPSBz dHJfcmVwbGFjZSgiP21vbnRoIiwgJHRoaXNtb250aCwgJGZyb20pOw0KCQkkZnJvbSA9IHN0 cl9yZXBsYWNlKCI/eWVhciIsICR0aGlzeWVhciwgJGZyb20pOw0KCQkkZnJvbXN0YW1wID0g c3RydG90aW1lKCRmcm9tKTsNCgkJaWYgKCRmcm9tc3RhbXApIHsNCgkJCSRydWxlc1tdID0g IlVOSVhfVElNRVNUQU1QKHRpbWUpID4gJGZyb21zdGFtcCI7DQoJCX0gZWxzZSB7DQoJCQlp ZiAoISRzaWxlbnQpIHsNCgkJCQl0cmlnZ2VyX2Vycm9yKHNtZF9ydl9nVHh0KCdpbnZhbGlk X3RzJywgYXJyYXkoInt3aGVyZX0iID0+ICdmcm9tJykpLCBFX1VTRVJfTk9USUNFKTsNCgkJ CX0NCgkJfQ0KCX0NCglpZiAoJHRvKSB7DQoJCSR0byA9IHN0cl9yZXBsYWNlKCI/bW9udGgi LCAkdGhpc21vbnRoLCAkdG8pOw0KCQkkdG8gPSBzdHJfcmVwbGFjZSgiP3llYXIiLCAkdGhp c3llYXIsICR0byk7DQoJCSR0b3N0YW1wID0gc3RydG90aW1lKCR0byk7DQoJCWlmICgkdG9z dGFtcCkgew0KCQkJJHJ1bGVzW10gPSAiVU5JWF9USU1FU1RBTVAodGltZSkgPCAkdG9zdGFt cCI7DQoJCX0gZWxzZSB7DQoJCQlpZiAoISRzaWxlbnQpIHsNCgkJCQl0cmlnZ2VyX2Vycm9y KHNtZF9ydl9nVHh0KCdpbnZhbGlkX3RzJywgYXJyYXkoInt3aGVyZX0iID0+ICd0bycpKSwg RV9VU0VSX05PVElDRSk7DQoJCQl9DQoJCX0NCgl9DQoJaWYgKCR3aXRoaW4pIHsNCgkJaWYg KCR0b3N0YW1wKSB7DQoJCQkkcmVmc3RhbXAgPSAkdG9zdGFtcDsNCgkJCSRyZWZkaXIgPSAn LSc7DQoJCX0gZWxzZSBpZiAoJGZyb21zdGFtcCkgew0KCQkJJHJlZnN0YW1wID0gJGZyb21z dGFtcDsNCgkJCSRyZWZkaXIgPSAnKyc7DQoJCX0gZWxzZSB7DQoJCQkkcmVmc3RhbXAgPSB0 aW1lKCk7DQoJCQkkcmVmZGlyID0gJy0nOw0KCQl9DQoNCgkJJGRpZmZzdGFtcCA9IHN0cnRv dGltZSgkcmVmZGlyLiR3aXRoaW4sICRyZWZzdGFtcCk7DQoJCWlmICgkZGlmZnN0YW1wKSB7 DQoJCQkkcnVsZXNbXSA9ICJVTklYX1RJTUVTVEFNUCh0aW1lKSAiLigoJHJlZmRpciA9PSAn LScpID8gJz4gJyA6ICc8ICcgKS4kZGlmZnN0YW1wOw0KCQl9IGVsc2Ugew0KCQkJaWYgKCEk c2lsZW50KSB7DQoJCQkJdHJpZ2dlcl9lcnJvcihzbWRfcnZfZ1R4dCgnaW52YWxpZF90cycs IGFycmF5KCJ7d2hlcmV9IiA9PiAnd2l0aGluJykpLCBFX1VTRVJfTk9USUNFKTsNCgkJCX0N CgkJfQ0KCX0NCg0KCWlmICgkZGVidWcpIHsNCgkJZWNobyAiKysgc21kX2xhdGVseSBSVUxF UyArKyI7DQoJCWRtcCgkcnVsZXMpOw0KCQlpZiAoJGZyb20gfHwgJHRvIHx8ICR3aXRoaW4p IHsNCgkJCWVjaG8gIisrIFRJTUUgV0lORE9XICsrIjsNCgkJCWlmICgkZnJvbSkgew0KCQkJ CWRtcCgiRlJPTTogIiAuIGRhdGUoJ1ktTS1kIEg6aTpzJywgJGZyb21zdGFtcCkpOw0KCQkJ fQ0KCQkJaWYgKCR3aXRoaW4pIHsNCgkJCQlkbXAoIldJVEhJTjogIiAuIGRhdGUoJ1ktTS1k IEg6aTpzJywgJGRpZmZzdGFtcCksICR3aXRoaW4gLiAoKCRyZWZkaXIgPT0gJy0nKSA/ICIg QkVGT1JFIFRPIERBVEUiIDogIiBBRlRFUiBGUk9NIERBVEUiKSk7DQoJCQl9DQoJCQlpZiAo JHRvKSB7DQoJCQkJZG1wKCJUTzogIi4gZGF0ZSgnWS1NLWQgSDppOnMnLCAkdG9zdGFtcCkp Ow0KCQkJfSBlbHNlIHsNCgkJCQlkbXAoIlRPOiAiLiBkYXRlKCdZLU0tZCBIOmk6cycsIHRp bWUoKSkpOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJJHJ1bGVzID0gJyBBTkQgJyAuIGpvaW4oJyBB TkQgJywgJHJ1bGVzKTsNCg0KCSRxdWVyeSA9ICdTRUxFQ1QgY291bnQocGFnZSkgYXMgcG9w dWxhcml0eSwgcGFnZSwgTUFYKHRpbWUpIGFzIHRpbWUgRlJPTSAnLlBGWC4ndHhwX2xvZyBX SEVSRSAxPTEnLiRpcC4kdGhpc2ljbGUuJHJ1bGVzLicgQU5EIHN0YXR1cyA9IDIwMCBHUk9V UCBCWSBwYWdlIE9SREVSIEJZICcuJHNvcnQ7DQoJJHJzID0gZ2V0Um93cygkcXVlcnksICRk ZWJ1Zyk7DQoNCglpZiAoJGRlYnVnID4gMSkgew0KCQlkbXAoJHJzKTsNCgl9DQoNCgkvLyBT ZXQgdXAgY291bnRlcnMgYW5kIGNyZWF0ZSBxdWVyeSBwYXJhbXMNCgkkY291bnQgPSAwOw0K CSRvdXQgPSBhcnJheSgpOw0KDQoJaWYgKCRzdGF0dXMpIHsNCgkJJHN0YXR1cyA9IGRvX2xp c3QoJHN0YXR1cywgJGRlbGltKTsNCgkJJHN0YXRpID0gYXJyYXkoKTsNCgkJZm9yZWFjaCAo JHN0YXR1cyBhcyAkc3RhdCkgew0KCQkJaWYgKGVtcHR5KCRzdGF0KSkgew0KCQkJCWNvbnRp bnVlOw0KCQkJfSBlbHNlIGlmIChpc19udW1lcmljKCRzdGF0KSkgew0KCQkJCSRzdGF0aVtd ID0gJHN0YXQ7DQoJCQl9IGVsc2Ugew0KCQkJCSRzdGF0aVtdID0gZ2V0U3RhdHVzTnVtKCRz dGF0KTsNCgkJCX0NCgkJfQ0KCQkkc3RhdHVzID0gIiBBTkQgU3RhdHVzIElOICgiLmpvaW4o JywnLCAkc3RhdGkpLiIpIjsNCgl9DQoNCglzd2l0Y2goJHRpbWUpIHsNCgkJY2FzZSAiIjoN CgkJY2FzZSAiYW55IiA6ICR0aW1lID0gIiI7IGJyZWFrOw0KCQljYXNlICJmdXR1cmUiIDog JHRpbWUgPSAiIEFORCBQb3N0ZWQgPiBDVVJEQVRFKCkiOyBicmVhazsNCgkJZGVmYXVsdCA6 ICR0aW1lID0gIiBBTkQgUG9zdGVkIDwgQ1VSREFURSgpIjsgYnJlYWs7DQoJfQ0KDQoJLy8g TG9vcCB1bnRpbCBsaW1pdCByZWFjaGVkDQoJaWYgKCRycykgew0KCQlmb3JlYWNoICgkcnMg YXMgJHJvdykgew0KCQkJaWYgKCRsaW1pdCA+IDAgJiYgaXNfbnVtZXJpYygkbGltaXQpICYm ICRjb3VudCA9PSAkbGltaXQpIGJyZWFrOw0KCQkJJHVybHBhcnRzID0gZXhwbG9kZSgnLycs IHJ0cmltKCRyb3dbJ3BhZ2UnXSwiLyIpKTsNCgkJCSRkYXJ0aWNsZSA9IHNhZmVfcm93KCcq LCB1bml4X3RpbWVzdGFtcChQb3N0ZWQpIGFzIHVQb3N0ZWQsIHVuaXhfdGltZXN0YW1wKEV4 cGlyZXMpIGFzIHVFeHBpcmVzLCB1bml4X3RpbWVzdGFtcChMYXN0TW9kKSBhcyB1TGFzdE1v ZCcsICd0ZXh0cGF0dGVybicsICJ1cmxfdGl0bGU9JyIuJHVybHBhcnRzW2NvdW50KCR1cmxw YXJ0cyktMV0uIiciLiRzdGF0dXMuJHRpbWUsICRkZWJ1Zyk7DQoJCQlpZiAoJGRlYnVnID4g Mikgew0KCQkJCWRtcCgkZGFydGljbGUpOw0KCQkJfQ0KCQkJaWYgKCRkYXJ0aWNsZSkgew0K CQkJCSR0aGVUaW1lID0gc3RydG90aW1lKCRyb3dbJ3RpbWUnXSk7DQoJCQkJJHJlcGxhY2Vt ZW50cyA9IGFycmF5KA0KCQkJCQkie3NtZF9sYXRlbHlfY291bnR9IiA9PiAkcm93Wydwb3B1 bGFyaXR5J10sDQoJCQkJCSJ7c21kX2xhdGVseV9mdWxsZGF0ZX0iID0+ICRyb3dbJ3RpbWUn XSwNCgkJCQkJIntzbWRfbGF0ZWx5X2RhdGV9IiA9PiBzdHJmdGltZSgiJUYiLCAkdGhlVGlt ZSksDQoJCQkJCSJ7c21kX2xhdGVseV9kYXRlX3llYXJ9IiA9PiBzdHJmdGltZSgiJVkiLCAk dGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVseV9kYXRlX21vbnRofSIgPT4gc3RyZnRpbWUo IiVtIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfZGF0ZV9tb250aG5hbWV9IiA9 PiBzdHJmdGltZSgiJUIiLCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVseV9kYXRlX2Rh eX0iID0+IHN0cmZ0aW1lKCIlZCIsICR0aGVUaW1lKSwNCgkJCQkJIntzbWRfbGF0ZWx5X2Rh dGVfZGF5bmFtZX0iID0+IHN0cmZ0aW1lKCIlQSIsICR0aGVUaW1lKSwNCgkJCQkJIntzbWRf bGF0ZWx5X3RpbWV9IiA9PiBzdHJmdGltZSgiJVQiLCAkdGhlVGltZSksDQoJCQkJCSJ7c21k X2xhdGVseV90aW1lX2hvdXJ9IiA9PiBzdHJmdGltZSgiJUgiLCAkdGhlVGltZSksDQoJCQkJ CSJ7c21kX2xhdGVseV90aW1lX21pbnV0ZX0iID0+IHN0cmZ0aW1lKCIlTSIsICR0aGVUaW1l KSwNCgkJCQkJIntzbWRfbGF0ZWx5X3RpbWVfc2Vjb25kfSIgPT4gc3RyZnRpbWUoIiVTIiwg JHRoZVRpbWUpLA0KCQkJCSk7DQoJCQkJYXJ0aWNsZV9wdXNoKCk7DQoJCQkJcG9wdWxhdGVB cnRpY2xlRGF0YSgkZGFydGljbGUpOw0KCQkJCSRvdXRbXSA9ICgkdGhpbmcpID8gcGFyc2Uo c3RydHIoJHRoaW5nLCAkcmVwbGFjZW1lbnRzKSkgOiAoKCRmb3JtKSA/IHBhcnNlX2Zvcm0o c3RydHIoJGZvcm0sICRyZXBsYWNlbWVudHMpKSA6IGhyZWYoJGRhcnRpY2xlWydUaXRsZSdd LCBwZXJtbGlua3VybCgkZGFydGljbGUpKSk7DQoJCQkJYXJ0aWNsZV9wb3AoKTsNCgkJCQkk Y291bnQrKzsNCgkJCX0NCgkJfQ0KCX0NCglyZXR1cm4gKCRvdXQpID8gZG9MYWJlbCgkbGFi ZWwsICRsYWJlbHRhZykuZG9XcmFwKCRvdXQsICR3cmFwdGFnLCAkYnJlYWssICRjbGFzcykg OiAnJzsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQbHVnaW4tc3Bl Y2lmaWMgcmVwbGFjZW1lbnQgc3RyaW5ncyAtIGxvY2FsaXNlIGFzIHJlcXVpcmVkDQpmdW5j dGlvbiBzbWRfcnZfZ1R4dCgkd2hhdCwgJGF0dHMgPSBhcnJheSgpKSB7DQoJJGxhbmcgPSBh cnJheSgNCgkJJ2ludmFsaWRfdHMnID0+ICdJbnZhbGlkIGRhdGUvdGltZSBpbmZvIGluICJ7 d2hlcmV9IiBhdHRyaWJ1dGUuJywNCgkJJ2xvZ2dpbmdfZW5hYmxlZCcgPT4gJ0xvZ2dpbmcg bXVzdCBiZSBzZXQgdG8gIkFsbCBoaXRzIiBpbiBCYXNpYyBQZWZzLicsDQoJKTsNCglyZXR1 cm4gc3RydHIoJGxhbmdbJHdoYXRdLCAkYXR0cyk7DQp9IjtzOjQ6InR5cGUiO3M6MToiMCI7 czo1OiJmbGFncyI7czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6MzoibWQ1IjtzOjMy OiIwZDAzYzA5OGYzZjE3NDQ3MzgyODliZGI5YjU4NGY2NCI7fQ==