a:3:{s:4:"name";s:12:"blockreferer";s:4:"dirs";a:4:{i:0;s:12:"blockreferer";i:1;s:17:"blockreferer/l10n";i:2;s:20:"blockreferer/l10n/fr";i:3;s:25:"blockreferer/l10n/fr-utf8";}s:5:"files";a:6:{s:30:"blockreferer/l10n/fr/main.lang";s:7408:"O0Jsb2NrIGJ5IFJlZmVyZXIKQmxvY2FnZSBwYXIgUulm6XJlbnQKCjtTdGF0aXN0aWNzClN0YXRpc3RpcXVlcwoKO0Jsb2NrIGFueSB1bmRlc2lyYWJsZSByZWZlcmVycyB0byBhdm9pZCBhc3NvY2lhdGVkIHNwYW0KQmxvcXVlIHRvdXQgculm6XJlbnQgaW5k6XNpcmFibGUgYWZpbiBkJ+l2aXRlciBsZSBzcGFtIGFzc29jaekKCjtDb3VsZCBub3QgY3JlYXRlIEJsb2NrIGJ5IFJlZmVyZXIgZGVkaWNhdGVkIGZvbGRlcgpJbXBvc3NpYmxlIGRlIGNy6WVyIGxlIHLpcGVydG9pcmUgZOlkaekgcG91ciBCbG9jYWdlIHBhciBS6WbpcmVudAoKO1JlZmVyZXJzIGxpc3Qgd2FzIHN1Y2Nlc3NmdWxseSBjb252ZXJ0ZWQuIFlvdSBtYXkgbm93IGRlbGV0ZSB0YWJsZQpMYSBsaXN0ZSBkZXMgculm6XJlbnRzIGEg6XTpIGNvbnZlcnRpZSBhdmVjIHN1Y2Pocy4gVm91cyBwb3V2ZXogbWFpbnRlbmFudCBzdXBwcmltZXIgbGEgdGFibGUKCjtPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZApPcHRpb25zIHNhdXbpZXMgYXZlYyBzdWNj6HMKCjtSZWZlcmVyIHN1Y2Nlc3NmdWxseSBzYXZlZApS6WbpcmVudCBzYXV26SBhdmVjIHN1Y2PocwoKO1doaXRlbGlzdCByZWZlcmVyIHN1Y2Nlc3NmdWxseSBzYXZlZApS6WbpcmVudCBhdXRob3Jpc+kgc2F1dukgYXZlYyBzdWNj6HMKCjtSZWZlcmVycyBzdWNjZXNzZnVsbHkgZGVsZXRlZApS6WbpcmVudHMgc3VwcHJpbelzIGF2ZWMgc3VjY+hzCgo7V2hpdGVsaXN0IHJlZmVyZXJzIHN1Y2Nlc3NmdWxseSBkZWxldGVkClLpZulyZW50cyBhdXRvcmlz6XMgc2F1dulzIGF2ZWMgc3VjY+hzCgo7T3B0aW9ucwpPcHRpb25zCgo7VXNlIHJlZ3VsYXIgZXhwcmVzc2lvbgpVdGlsaXNlciBkZXMgZXhwcmVzc2lvbnMgculndWxp6HJlcwoKO0ZvcndhcmQgdmlzaXRvciB0byBpdCdzIG93biByZWZlcmVyIGluc3RlYWQgb2YgYmxvY2tpbmcgaXQKUmVudm9pZSBsZSB2aXNpdGV1ciB2ZXJzIHNvbiBwcm9wcmUgculm6XJlbnQgYXUgbGlldSBkZSBsZSBibG9xdWVyCgo7TG9nIGJsb2NraW5nClNhdXZlciBsZSBqb3VybmFsIGRlcyBibG9jYWdlcwoKO1ZpZXcgbG9nClZvaXIgbGUgam91cm5hbAoKO1VzZSBwZXJzb25hbGl6ZWQgZXJyb3IgbWVzc2FnZQpVdGlsaXNlciB1biBtZXNzYWdlIGQnZXJyZXVyIHBlcnNvbm5hbGlz6QoKO1BlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlIChIVE1MKSA6Ck1lc3NhZ2UgZCdlcnJldXIgcGVyc29ubmFsaXPpIChIVE1MKSA6Cgo7VGV4dCBvZiB0aGUgIkFjY2VzcyB0byB0aGUgcGFnZSIgbGluayA6ClRleHRlIGR1IGxpZW4gIkFjY+lkZXIg4CBsYSBwYWdlIiA6Cgo7QWRkIGEgbmV3IHJlZmVyZXIgdG8gYmxvY2sKQWpvdXRlciB1biBub3V2ZWF1IHLpZulyZW50IOAgYmxvcXVlcgoKO0FkZCBhIG5ldyByZWZlcmVyIHRvIGF1dGhvcml6ZQpBam91dGVyIHVuIG5vdXZlYXUgculm6XJlbnQg4CBhdXRvcmlzZXIKCjtSZWZlcmVyIHRvIGJsb2NrIDoKUulm6XJlbnQg4CBibG9xdWVyIDoKCjtSZWZlcmVyIHRvIGF1dGhvcml6ZSA6ClLpZulyZW50IOAgYXV0b3Jpc2VyIDoKCjtTYXZlClNhdXZlcgoKO0Jsb2NrZWQgcmVmZXJlciBsaXN0Ckxpc3RlIGRlcyBy6WbpcmVudHMgYmxvcXXpcwoKO0F1dGhvcml6ZWQgcmVmZXJlciBsaXN0IApMaXN0ZSBkZXMgculm6XJlbnRzIGF1dG9yaXPpcwoKO1JlZmVyZXIKUulm6XJlbnQKCjtObyByZWZlcmVyIGlzIGJsb2NrZWQgZm9yIG5vdwpBdWN1biBy6WbpcmVudCBuJ2VzdCBibG9xdekgcG91ciBsJ2luc3RhbnQKCjtObyByZWZlcmVyIGlzIGF1dGhvcml6ZWQgZm9yIG5vdwpBdWN1biBy6WbpcmVudCBuJ2VzdCBhdXRvcmlz6SBwb3VyIGwnaW5zdGFudAoKO0RlbGV0ZQpTdXBwcmltZXIKCjtJbnN0YWxsYXRpb24KSW5zdGFsbGF0aW9uCgo7VG8gdXNlIHBsdWdpbiwganVzdCBhZGQgcGFydCBvZiB0aGUgcmVmZXJlciB5b3Ugd2FudCB0byBibG9jazsgaS5lIGFkZCAic29tZWJ1enp3b3JkIiB0byBibG9jayBhbnkgcmVmZXJlciB3aGljaCBoYXZlICJzb21lYnV6endvcmQiIGluLgpQb3VyIHV0aWxpc2VyIGxlIHBsdWdpbiwgYWpvdXRlciBqdXN0ZSB1bmUgcGFydGllIGR1IHLpZulyZW50IHF1ZSB2b3VzIHZvdWxleiBibG9xdWVyOyBwYXIgZXhlbXBsZSBham91dGV6ICJzb21lYnV6endvcmQiIHBvdXIgYmxvcXVlciB0b3V0IHLpZulyZW50IGNvbnRlbmFudCAic29tZWJ1enp3b3JkIi4KCjtUaGVzZSByZWZlcmVycyBhcmUgaGVyZSBvbmx5IHRvIGV4Y2VwdGlvbm5hbHkgYXV0aG9yaXplIGEgYmxvY2tlZCBvbmUsIGFuIGVtcHR5IGxpc3Qgd29uJ3QgYmxvY2sgYW55b25lLgpDZXMgYXV0b3Jpc2F0aW9ucyBuZSBzb250IGzgIHF1J+AgdGl0cmUgZCdleGNlcHRpb24gcG91ciBsZSBibG9jYWdlLCB1bmUgbGlzdGUgdmlkZSBuZSBibG9xdWFudCBwYXMgdG91dCBsZSBtb25kZS4KCjtJZiBhIHJlZmVyZXIgaXMgYmxvY2tlZCAoYW5kIG9ubHkgaW4gdGhpcyBjYXNlKSwgaXQgd2lsbCBiZSBjaGVja2VkIGlmIGl0IGV4aXN0cyBpbnRvIGF1dGhvcml6ZWQgcmVmZXJlcnMgbGlzdC4KTGUgZm9uY3Rpb25uZW1lbnQgZXN0IGxlIHN1aXZhbnQgOiBzaSB1biBy6WbpcmVudCBlc3QgYmxvcXXpIChldCB1bmlxdWVtZW50IGRhbnMgY2UgY2FzKSwgdW4gdGVzdCBzZXJhIGZhaXQgc3VyIGxhIGxpc3RlIGRlcyBy6WbpcmVudHMg4CBhdXRvcmlzZXIgZGUgbWFuaehyZSDgIHNhdm9pciBzaSBvbiBwZXV0IGV4Y2VwdGlvbm5lbGxlbWVudCBkb25uZXIgbCdhY2Pocy4KCjtpLmUuIDogaWYgc29tZW9uZSBmaW5kcyB5b3VyIGJsb2cgd2hpbGUgbG9va2luZyBmb3IgInNvbWVidXp6d29yZCIgd2l0aCBHb29nbGUsIGFuZCB5b3UgZG9uJ3Qgd2FudCB0byBibG9jayB1c2VycyBmcm9tIEdvb2dsZSwgeW91IG1heSBhZGQgImh0dHA6Ly93d3cuZ29vZ2xlLiIgdG8geW91ciBhdXRob3JpemVkIHJlZmVyZXJzIGxpc3QuClBhciBleGVtcGxlLCBzaSB1bmUgcGVyc29ubmUgdHJvdXZlIHZvdHJlIHNpdGUgc3VyIGdvb2dsZSBsb3JzIGQndW5lIHJlY2hlcmNoZSBkZSAic29tZWJ1enp3b3JkIiwgbWFpcyBxdWUgdm91cyBuZSBzb3VoYWl0aWV6IHBhcyBibG9xdWVyIGxlcyB2aXNpdGV1cnMgZGUgZ29vZ2xlLCB2b3VzIHBvdXZleiBham91dGVyICJodHRwOi8vd3d3Lmdvb2dsZS4iIGRhbnMgbGEgbGlzdGUgZGVzIHLpZulyZW50cyBhdXRvcmlz6XMuCgo7T3RoZXIgcmVmZXJlcnMgd2l0aCAic29tZWJ1enp3b3JkIiB3aXRoaW4gdGhlaXIgcmVmZXJlciB3aWxsIHN0YXkgYmxvY2tlZC4KTGVzIGF1dHJlcyB2aXNpdGV1cnMgYXlhbnQgInNvbWVidXp6d29yZCIgZGFucyBsZXVyIHLpZulyZW50IHJlc3Rlcm9udCBibG9xdelzLgoKO2lzIG5vdCBjaGVja2VkCm4nZXN0IHBhcyBjb2No6QoKO1lvdSBoYXZlIHRvIHVzZSBwYXJ0IG9mIHJlZmVyZXJzLCBvciB0aGVpciBmdWxsIGFkZHJlc3MuClZvdXMgZGV2ZXogdXRpbGlzZXIgdW5lIHBhcnRpZSBkZXMgculm6XJlbnQsIG91IGJpZW4gbGV1ciBhZHJlc3NlIGNvbXBs6HRlLgoKO2lzIGNoZWNrZWQKZXN0IGNvY2jpCgo7WW91IGhhdmUgdG8gdXNlIHJlZ3VsYXIgZXhwcmVzc2lvbiAoY2FzZSBpbnNlbnNpdGl2ZSkuClZvdXMgZGV2ZXogdXRpbGlzZXIgZGVzIGV4cHJlc3Npb25zIHLpZ3VsaehyZXMgKGluc2Vuc2libGVzIOAgbGEgY2Fzc2UpLgoKO0lmIHlvdSBtb2RpZnkgZGlmZmVyZW50IGZvcm1zIGF0IHRoZSBzYW1lIHRpbWUsIG9ubHkgdGhlIG9uZSB5b3UgY2hvc2UgdG8gc2F2ZSBjaGFuZ2VzIHdpbGwgYmUgc2F2ZWQuClNpIHZvdXMgbW9kaWZpZXogcGx1c2lldXJzIGZvcm11bGFpcmVzIGVuIG3qbWUgdGVtcHMsIHNldWwgY2VsdWkgcG91ciBsZXF1ZWwgdm91cyBhdXJleiBjaG9pc2kgZCdlbnJlZ2lzdHJlciBsZXMgY2hhbmdlbWVudHMgc2VyYSBzYXV26S4KCjtUaGUgYXV0aG9yaXphdGlvbiBoYXMgcHJpb3JpdHkgb24gYmxvY2tpbmcsIGFuZCBtYXkgdXNlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdG9vLgpMJ2F1dG9yaXNhdGlvbiBlc3QgcHJpb3JpdGFpcmUgc3VyIGxlIGJsb2NhZ2UsIGV0IHBldXQgdXRpbGlzZXIgZGVzIGV4cHJlc3Npb25zCnLpZ3VsaehyZXMuCgo7SWYgeW91IHVwZ3JhZGUgZnJvbSB2ZXJzaW9uIDEuMCBvciAxLjEsIHlvdSB3aWxsIGhhdmUgdG8gY29udmVydCB0aGUgcmVmZXJlcnMgbGlzdCB0byB0aGUgbmV3IGZvcm1hdC4KU2kgdm91cyBtZXR0ZXog4CBqb3VyIGRlcHVpcyBsYSB2ZXJzaW9uIDEuMCBvdSAxLjEsIHZvdXMgZGV2ZXogY29udmVydGlyIHZvdHJlIGxpc3RlIGRlcyBy6WbpcmVudHMgYXUgbm91dmVhdSBmb3JtYXQuCgo7Q29udmVydApDb252ZXJ0aXIKCjtDb3VsZCBub3QgY3JlYXRlIHRlbXAgZmlsZQpJbXBvc3NpYmxlIGRlIGNy6WVyIGxlIGZpY2hpZXIgdGVtcG9yYWlyZQoKO0NvdWxkIG5vdCBjb3B5IHRlbXAgZmlsZQpJbXBvc3NpYmxlIGRlIGNvcGllciBsZSBmaWNoaWVyIHRlbXBvcmFpcmUKCjt0byBmaW5hbCBmaWxlCnZlcnMgbGUgZmljaGllciBmaW5hbAoKO0hlbHAKQWlkZQoKO0FsbCBibG9ja2luZ3MgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBiZWdpbm5pbmcgb2YgdGhlIGxvZy4KVG91cyBsZXMgYmxvY2FnZXMgOiBub21icmUgZGUgculm6XJlbnRzIGJsb3F16XMgZGVwdWlzIGxlIGTpYnV0IGRlIGxhIGpvdXJuYWxpc2F0aW9uLgoKO1llYXJseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMzY1IGRheXMuCkFubnVlbGxlcyA6IG5vbWJyZSBkZSBy6WbpcmVudHMgYmxvcXXpcyBkYW5zIGxlcyBkZXJuaWVycyAzNjUgam91cnMuCgo7TW9udGhseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMzAgZGF5cy4KTWVuc3VlbGxlcyA6IG5vbWJyZSBkZSBy6WbpcmVudHMgYmxvcXXpcyBkYW5zIGxlcyBkZXJuaWVycyAzMCBqb3Vycy4KCjtXZWVrbHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDcgZGF5cy4KSGViZG9tYWRhaXJlcyA6IG5vbWJyZSBkZSBy6WbpcmVudHMgYmxvcXXpcyBkYW5zIGxlcyBkZXJuaWVycyA3IGpvdXJzLgoKO0RhaWx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAyNCBob3Vycy4KSm91cm5hbGnocmVzIDogbm9tYnJlIGRlIHLpZulyZW50cyBibG9xdelzIGRhbnMgbGVzIGRlcm5p6HJlcyAyNCBoZXVyZXMuCgo7VGhlcmUgYXJlIG5vIGF2YWlsYWJsZSBzdGF0aXN0aWNzCklsIG4neSBhIHBhcyBkZSBzdGF0aXN0aXF1ZXMgZGlzcG9uaWJsZXMKCjtUaW1lIHN0YXRpc3RpY3MKU3RhdGlzdGlxdWVzIHRlbXBvcmVsbGVzCgo7QWxsIGJsb2NraW5ncyA6ClRvdXMgbGVzIGJsb2NhZ2VzIDoKCjtZZWFybHkgOgpBbm51ZWxsZXMgOgoKO01vbnRobHkgOgpNZW5zdWVsbGVzIDoKCjtXZWVrbHkgOgpIZWJkb21hZGFpcmVzIDoKCjtEYWlseSA6CkpvdXJuYWxp6HJlcyA6Cgo7UmVmZXJlcnMgc3RhdGlzdGljcwpTdGF0aXN0aXF1ZXMgcGFyIHLpZulyZW50Cgo7UmVmZXJlciBob3N0cyBzdGF0aXN0aWNzClN0YXRpc3RpcXVlcyBwYXIgaPR0ZSBkdSBy6WbpcmVudAoK";s:35:"blockreferer/l10n/fr-utf8/main.lang";s:7584:"O0Jsb2NrIGJ5IFJlZmVyZXIKQmxvY2FnZSBwYXIgUsOpZsOpcmVudAoKO1N0YXRpc3RpY3MKU3RhdGlzdGlxdWVzCgo7QmxvY2sgYW55IHVuZGVzaXJhYmxlIHJlZmVyZXJzIHRvIGF2b2lkIGFzc29jaWF0ZWQgc3BhbQpCbG9xdWUgdG91dCByw6lmw6lyZW50IGluZMOpc2lyYWJsZSBhZmluIGQnw6l2aXRlciBsZSBzcGFtIGFzc29jacOpCgo7Q291bGQgbm90IGNyZWF0ZSBCbG9jayBieSBSZWZlcmVyIGRlZGljYXRlZCBmb2xkZXIKSW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgcsOpcGVydG9pcmUgZMOpZGnDqSBwb3VyIEJsb2NhZ2UgcGFyIFLDqWbDqXJlbnQKCjtSZWZlcmVycyBsaXN0IHdhcyBzdWNjZXNzZnVsbHkgY29udmVydGVkLiBZb3UgbWF5IG5vdyBkZWxldGUgdGFibGUKTGEgbGlzdGUgZGVzIHLDqWbDqXJlbnRzIGEgw6l0w6kgY29udmVydGllIGF2ZWMgc3VjY8Oocy4gVm91cyBwb3V2ZXogbWFpbnRlbmFudCBzdXBwcmltZXIgbGEgdGFibGUKCjtPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZApPcHRpb25zIHNhdXbDqWVzIGF2ZWMgc3VjY8OocwoKO1JlZmVyZXIgc3VjY2Vzc2Z1bGx5IHNhdmVkClLDqWbDqXJlbnQgc2F1dsOpIGF2ZWMgc3VjY8OocwoKO1doaXRlbGlzdCByZWZlcmVyIHN1Y2Nlc3NmdWxseSBzYXZlZApSw6lmw6lyZW50IGF1dGhvcmlzw6kgc2F1dsOpIGF2ZWMgc3VjY8OocwoKO1JlZmVyZXJzIHN1Y2Nlc3NmdWxseSBkZWxldGVkClLDqWbDqXJlbnRzIHN1cHByaW3DqXMgYXZlYyBzdWNjw6hzCgo7V2hpdGVsaXN0IHJlZmVyZXJzIHN1Y2Nlc3NmdWxseSBkZWxldGVkClLDqWbDqXJlbnRzIGF1dG9yaXPDqXMgc2F1dsOpcyBhdmVjIHN1Y2PDqHMKCjtPcHRpb25zCk9wdGlvbnMKCjtVc2UgcmVndWxhciBleHByZXNzaW9uClV0aWxpc2VyIGRlcyBleHByZXNzaW9ucyByw6lndWxpw6hyZXMKCjtGb3J3YXJkIHZpc2l0b3IgdG8gaXQncyBvd24gcmVmZXJlciBpbnN0ZWFkIG9mIGJsb2NraW5nIGl0ClJlbnZvaWUgbGUgdmlzaXRldXIgdmVycyBzb24gcHJvcHJlIHLDqWbDqXJlbnQgYXUgbGlldSBkZSBsZSBibG9xdWVyCgo7TG9nIGJsb2NraW5nClNhdXZlciBsZSBqb3VybmFsIGRlcyBibG9jYWdlcwoKO1ZpZXcgbG9nClZvaXIgbGUgam91cm5hbAoKO1VzZSBwZXJzb25hbGl6ZWQgZXJyb3IgbWVzc2FnZQpVdGlsaXNlciB1biBtZXNzYWdlIGQnZXJyZXVyIHBlcnNvbm5hbGlzw6kKCjtQZXJzb25hbGl6ZWQgZXJyb3IgbWVzc2FnZSAoSFRNTCkgOgpNZXNzYWdlIGQnZXJyZXVyIHBlcnNvbm5hbGlzw6kgKEhUTUwpIDoKCjtUZXh0IG9mIHRoZSAiQWNjZXNzIHRvIHRoZSBwYWdlIiBsaW5rIDoKVGV4dGUgZHUgbGllbiAiQWNjw6lkZXIgw6AgbGEgcGFnZSIgOgoKO0FkZCBhIG5ldyByZWZlcmVyIHRvIGJsb2NrCkFqb3V0ZXIgdW4gbm91dmVhdSByw6lmw6lyZW50IMOgIGJsb3F1ZXIKCjtBZGQgYSBuZXcgcmVmZXJlciB0byBhdXRob3JpemUKQWpvdXRlciB1biBub3V2ZWF1IHLDqWbDqXJlbnQgw6AgYXV0b3Jpc2VyCgo7UmVmZXJlciB0byBibG9jayA6ClLDqWbDqXJlbnQgw6AgYmxvcXVlciA6Cgo7UmVmZXJlciB0byBhdXRob3JpemUgOgpSw6lmw6lyZW50IMOgIGF1dG9yaXNlciA6Cgo7U2F2ZQpTYXV2ZXIKCjtCbG9ja2VkIHJlZmVyZXIgbGlzdApMaXN0ZSBkZXMgcsOpZsOpcmVudHMgYmxvcXXDqXMKCjtBdXRob3JpemVkIHJlZmVyZXIgbGlzdApMaXN0ZSBkZXMgcsOpZsOpcmVudHMgYXV0b3Jpc8OpcwoKO1JlZmVyZXIKUsOpZsOpcmVudAoKO05vIHJlZmVyZXIgaXMgYmxvY2tlZCBmb3Igbm93CkF1Y3VuIHLDqWbDqXJlbnQgbidlc3QgYmxvcXXDqSBwb3VyIGwnaW5zdGFudAoKO05vIHJlZmVyZXIgaXMgYXV0aG9yaXplZCBmb3Igbm93CkF1Y3VuIHLDqWbDqXJlbnQgbidlc3QgYXV0b3Jpc8OpIHBvdXIgbCdpbnN0YW50Cgo7RGVsZXRlClN1cHByaW1lcgoKO0luc3RhbGxhdGlvbgpJbnN0YWxsYXRpb24KCjtUbyB1c2UgcGx1Z2luLCBqdXN0IGFkZCBwYXJ0IG9mIHRoZSByZWZlcmVyIHlvdSB3YW50IHRvIGJsb2NrOyBpLmUgYWRkICJzb21lYnV6endvcmQiIHRvIGJsb2NrIGFueSByZWZlcmVyIHdoaWNoIGhhdmUgInNvbWVidXp6d29yZCIgaW4uClBvdXIgdXRpbGlzZXIgbGUgcGx1Z2luLCBham91dGVyIGp1c3RlIHVuZSBwYXJ0aWUgZHUgcsOpZsOpcmVudCBxdWUgdm91cyB2b3VsZXogYmxvcXVlcjsgcGFyIGV4ZW1wbGUgYWpvdXRleiAic29tZWJ1enp3b3JkIiBwb3VyIGJsb3F1ZXIgdG91dCByw6lmw6lyZW50IGNvbnRlbmFudCAic29tZWJ1enp3b3JkIi4KCjtUaGVzZSByZWZlcmVycyBhcmUgaGVyZSBvbmx5IHRvIGV4Y2VwdGlvbm5hbHkgYXV0aG9yaXplIGEgYmxvY2tlZCBvbmUsIGFuIGVtcHR5IGxpc3Qgd29uJ3QgYmxvY2sgYW55b25lLgpDZXMgYXV0b3Jpc2F0aW9ucyBuZSBzb250IGzDoCBxdSfDoCB0aXRyZSBkJ2V4Y2VwdGlvbiBwb3VyIGxlIGJsb2NhZ2UsIHVuZSBsaXN0ZSB2aWRlIG5lIGJsb3F1YW50IHBhcyB0b3V0IGxlIG1vbmRlLgoKO0lmIGEgcmVmZXJlciBpcyBibG9ja2VkIChhbmQgb25seSBpbiB0aGlzIGNhc2UpLCBpdCB3aWxsIGJlIGNoZWNrZWQgaWYgaXQgZXhpc3RzIGludG8gYXV0aG9yaXplZCByZWZlcmVycyBsaXN0LgpMZSBmb25jdGlvbm5lbWVudCBlc3QgbGUgc3VpdmFudCA6IHNpIHVuIHLDqWbDqXJlbnQgZXN0IGJsb3F1w6kgKGV0IHVuaXF1ZW1lbnQgZGFucyBjZSBjYXMpLCB1biB0ZXN0IHNlcmEgZmFpdCBzdXIgbGEgbGlzdGUgZGVzIHLDqWbDqXJlbnRzIMOgIGF1dG9yaXNlciBkZSBtYW5pw6hyZSDDoCBzYXZvaXIgc2kgb24gcGV1dCBleGNlcHRpb25uZWxsZW1lbnQgZG9ubmVyIGwnYWNjw6hzLgoKO2kuZS4gOiBpZiBzb21lb25lIGZpbmRzIHlvdXIgYmxvZyB3aGlsZSBsb29raW5nIGZvciAic29tZWJ1enp3b3JkIiB3aXRoIEdvb2dsZSwgYW5kIHlvdSBkb24ndCB3YW50IHRvIGJsb2NrIHVzZXJzIGZyb20gR29vZ2xlLCB5b3UgbWF5IGFkZCAiaHR0cDovL3d3dy5nb29nbGUuIiB0byB5b3VyIGF1dGhvcml6ZWQgcmVmZXJlcnMgbGlzdC4KUGFyIGV4ZW1wbGUsIHNpIHVuZSBwZXJzb25uZSB0cm91dmUgdm90cmUgc2l0ZSBzdXIgZ29vZ2xlIGxvcnMgZCd1bmUgcmVjaGVyY2hlIGRlICJzb21lYnV6endvcmQiLCBtYWlzIHF1ZSB2b3VzIG5lIHNvdWhhaXRpZXogcGFzIGJsb3F1ZXIgbGVzIHZpc2l0ZXVycyBkZSBnb29nbGUsIHZvdXMgcG91dmV6IGFqb3V0ZXIgImh0dHA6Ly93d3cuZ29vZ2xlLiIgZGFucyBsYSBsaXN0ZSBkZXMgcsOpZsOpcmVudHMgYXV0b3Jpc8Opcy4KCjtPdGhlciByZWZlcmVycyB3aXRoICJzb21lYnV6endvcmQiIHdpdGhpbiB0aGVpciByZWZlcmVyIHdpbGwgc3RheSBibG9ja2VkLgpMZXMgYXV0cmVzIHZpc2l0ZXVycyBheWFudCAic29tZWJ1enp3b3JkIiBkYW5zIGxldXIgcsOpZsOpcmVudCByZXN0ZXJvbnQgYmxvcXXDqXMuCgo7aXMgbm90IGNoZWNrZWQKbidlc3QgcGFzIGNvY2jDqQoKO1lvdSBoYXZlIHRvIHVzZSBwYXJ0IG9mIHJlZmVyZXJzLCBvciB0aGVpciBmdWxsIGFkZHJlc3MuClZvdXMgZGV2ZXogdXRpbGlzZXIgdW5lIHBhcnRpZSBkZXMgcsOpZsOpcmVudCwgb3UgYmllbiBsZXVyIGFkcmVzc2UgY29tcGzDqHRlLgoKO2lzIGNoZWNrZWQKZXN0IGNvY2jDqQoKO1lvdSBoYXZlIHRvIHVzZSByZWd1bGFyIGV4cHJlc3Npb24gKGNhc2UgaW5zZW5zaXRpdmUpLgpWb3VzIGRldmV6IHV0aWxpc2VyIGRlcyBleHByZXNzaW9ucyByw6lndWxpw6hyZXMgKGluc2Vuc2libGVzIMOgIGxhIGNhc3NlKS4KCjtJZiB5b3UgbW9kaWZ5IGRpZmZlcmVudCBmb3JtcyBhdCB0aGUgc2FtZSB0aW1lLCBvbmx5IHRoZSBvbmUgeW91IGNob3NlIHRvIHNhdmUgY2hhbmdlcyB3aWxsIGJlIHNhdmVkLgpTaSB2b3VzIG1vZGlmaWV6IHBsdXNpZXVycyBmb3JtdWxhaXJlcyBlbiBtw6ptZSB0ZW1wcywgc2V1bCBjZWx1aSBwb3VyIGxlcXVlbCB2b3VzIGF1cmV6IGNob2lzaSBkJ2VucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBzZXJhIHNhdXbDqS4KCjtUaGUgYXV0aG9yaXphdGlvbiBoYXMgcHJpb3JpdHkgb24gYmxvY2tpbmcsIGFuZCBtYXkgdXNlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdG9vLgpMJ2F1dG9yaXNhdGlvbiBlc3QgcHJpb3JpdGFpcmUgc3VyIGxlIGJsb2NhZ2UsIGV0IHBldXQgdXRpbGlzZXIgZGVzIGV4cHJlc3Npb25zIHLDqWd1bGnDqHJlcy4KCjtJZiB5b3UgdXBncmFkZSBmcm9tIHZlcnNpb24gMS4wIG9yIDEuMSwgeW91IHdpbGwgaGF2ZSB0byBjb252ZXJ0IHRoZSByZWZlcmVycyBsaXN0IHRvIHRoZSBuZXcgZm9ybWF0LgpTaSB2b3VzIG1ldHRleiDDoCBqb3VyIGRlcHVpcyBsYSB2ZXJzaW9uIDEuMCBvdSAxLjEsIHZvdXMgZGV2ZXogY29udmVydGlyIHZvdHJlIGxpc3RlIGRlcyByw6lmw6lyZW50cyBhdSBub3V2ZWF1IGZvcm1hdC4KCjtDb252ZXJ0CkNvbnZlcnRpcgoKO0NvdWxkIG5vdCBjcmVhdGUgdGVtcCBmaWxlCkltcG9zc2libGUgZGUgY3LDqWVyIGxlIGZpY2hpZXIgdGVtcG9yYWlyZQoKO0NvdWxkIG5vdCBjb3B5IHRlbXAgZmlsZQpJbXBvc3NpYmxlIGRlIGNvcGllciBsZSBmaWNoaWVyIHRlbXBvcmFpcmUKCjt0byBmaW5hbCBmaWxlCnZlcnMgbGUgZmljaGllciBmaW5hbAoKO0hlbHAKQWlkZQoKO0FsbCBibG9ja2luZ3MgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBiZWdpbm5pbmcgb2YgdGhlIGxvZy4KVG91cyBsZXMgYmxvY2FnZXMgOiBub21icmUgZGUgcsOpZsOpcmVudHMgYmxvcXXDqXMgZGVwdWlzIGxlIGTDqWJ1dCBkZSBsYSBqb3VybmFsaXNhdGlvbi4KCjtZZWFybHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDM2NSBkYXlzLgpBbm51ZWxsZXMgOiBub21icmUgZGUgcsOpZsOpcmVudHMgYmxvcXXDqXMgZGFucyBsZXMgZGVybmllcnMgMzY1IGpvdXJzLgoKO01vbnRobHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDMwIGRheXMuCk1lbnN1ZWxsZXMgOiBub21icmUgZGUgcsOpZsOpcmVudHMgYmxvcXXDqXMgZGFucyBsZXMgZGVybmllcnMgMzAgam91cnMuCgo7V2Vla2x5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCA3IGRheXMuCkhlYmRvbWFkYWlyZXMgOiBub21icmUgZGUgcsOpZsOpcmVudHMgYmxvcXXDqXMgZGFucyBsZXMgZGVybmllcnMgNyBqb3Vycy4KCjtEYWlseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMjQgaG91cnMuCkpvdXJuYWxpw6hyZXMgOiBub21icmUgZGUgcsOpZsOpcmVudHMgYmxvcXXDqXMgZGFucyBsZXMgZGVybmnDqHJlcyAyNCBoZXVyZXMuCgo7VGhlcmUgYXJlIG5vIGF2YWlsYWJsZSBzdGF0aXN0aWNzCklsIG4neSBhIHBhcyBkZSBzdGF0aXN0aXF1ZXMgZGlzcG9uaWJsZXMKCjtUaW1lIHN0YXRpc3RpY3MKU3RhdGlzdGlxdWVzIHRlbXBvcmVsbGVzCgo7QWxsIGJsb2NraW5ncyA6ClRvdXMgbGVzIGJsb2NhZ2VzIDoKCjtZZWFybHkgOgpBbm51ZWxsZXMgOgoKO01vbnRobHkgOgpNZW5zdWVsbGVzIDoKCjtXZWVrbHkgOgpIZWJkb21hZGFpcmVzIDoKCjtEYWlseSA6CkpvdXJuYWxpw6hyZXMgOgoKO1JlZmVyZXJzIHN0YXRpc3RpY3MKU3RhdGlzdGlxdWVzIHBhciByw6lmw6lyZW50Cgo7UmVmZXJlciBob3N0cyBzdGF0aXN0aWNzClN0YXRpc3RpcXVlcyBwYXIgaMO0dGUgZHUgcsOpZsOpcmVudAoK";s:21:"blockreferer/icon.png";s:3164:"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";s:21:"blockreferer/desc.xml";s:332:"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8cGx1Z2luIG5hbWU9ImJsb2NrcmVmZXJlciIgdmVyc2lvbj0iMS45LjEiIGFjdGl2ZT0iMSI+CiAgPGF1dGhvcj5Bcm5hdWQgQm91ZG91PC9hdXRob3I+CiAgPGxhYmVsPkJsb2NrIGJ5IFJlZmVyZXI8L2xhYmVsPgogIDxkZXNjPkJsb2NrIGFueSB1bmRlc2lyYWJsZSByZWZlcmVycyB0byBhdm9pZCBhc3NvY2lhdGVkIHNwYW08L2Rlc2M+CjwvcGx1Z2luPgo=";s:26:"blockreferer/functions.php";s:5116:"PD9waHAKJHJlZmVyZXJzT3B0aW9uc0ZpbGUgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfb3B0aW9ucy5waHAnOwokcmVmZXJlcnNMaXN0RmlsZSAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci9yZWZlcmVycy50eHQnOwokd2hpdGVMaXN0RmlsZSAgICAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci93aGl0ZWxpc3QudHh0JzsKJHJlZmVyZXJzTG9nRmlsZSAgICAgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfbG9nLmNzdic7CiRyZWZlcmVyc0xpc3RBcnJheSAgID0gYXJyYXkoKTsKJHdoaXRlTGlzdEFycmF5ICAgICAgPSBhcnJheSgpOwoKLyogTG9hZCBwcmVmcyBmaWxlICovCmlmIChmaWxlX2V4aXN0cygkcmVmZXJlcnNPcHRpb25zRmlsZSkpCiAgaW5jbHVkZSAkcmVmZXJlcnNPcHRpb25zRmlsZTsKCgppZiAoZmlsZV9leGlzdHMoJHdoaXRlTGlzdEZpbGUpKSB7CiAgLyogTG9hZCB3aGl0ZWxpc3QgKi8KICAkd2hpdGVMaXN0QXJyYXkgPSBmaWxlKCR3aGl0ZUxpc3RGaWxlKTsKICAkbG9vcCA9IDA7CiAgd2hpbGUgKCRsb29wIDwgY291bnQoJHdoaXRlTGlzdEFycmF5KSkgewogICAgJHdoaXRlTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHdoaXRlTGlzdEFycmF5WyRsb29wXSk7CiAgICAkbG9vcCsrOwogIH0KfQoKaWYgKGZpbGVfZXhpc3RzKCRyZWZlcmVyc0xpc3RGaWxlKSkgewogIC8qIExvYWQgcmVmZXJlcnMgbGlzdCAqLwogICRyZWZlcmVyc0xpc3RBcnJheSA9IGZpbGUoJHJlZmVyZXJzTGlzdEZpbGUpOwogICRsb29wID0gMDsKICB3aGlsZSAoJGxvb3AgPCBjb3VudCgkcmVmZXJlcnNMaXN0QXJyYXkpKSB7CiAgICAkcmVmZXJlcnNMaXN0QXJyYXlbJGxvb3BdID0gdHJpbSgkcmVmZXJlcnNMaXN0QXJyYXlbJGxvb3BdKTsKICAgICRsb29wKys7CiAgfQoKICAvKiBJZiBhIHJlZmVyZXIgaXMgc2V0LCBhbmQgaXMgbm90IGEgcGFydCBvZiB0aGUgVVJMIG9mIHRoZSBibG9nICovCiAgaWYgKGlzc2V0KCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSkgJiYgKHN0cnN0cigkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10sJzovLycuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pID09ICIiKSkgewogICAgJGxvb3AgPSAwOwogICAgd2hpbGUgKCRsb29wIDwgY291bnQoJHJlZmVyZXJzTGlzdEFycmF5KSkgewogICAgICAvKiBJZiB0aGUgcmVmZXJlciBpcyBpbiB0aGUgbGlzdCAqLwogICAgICBpZiAoICghJG9wdF9yZWdleHAgJiYgJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSAhPSAiIiAmJiBzdHJzdHIoc3RydG9sb3dlcigkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pLHN0cnRvbG93ZXIoJHJlZmVyZXJzTGlzdEFycmF5IFskbG9vcF0pKSkgfHwgKCRvcHRfcmVnZXhwICYmIGVyZWdpKCRyZWZlcmVyc0xpc3RBcnJheSBbJGxvb3BdLCAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pKSApIHsKICAgICAgICAvKiBXZSB0YWcgdGhlIHJlZmVyZXIgdG8gYmUgYmxvY2tlZCAqLwogICAgICAgICR0b19ibG9jayA9IHRydWU7CgogICAgICAgIGlmIChjb3VudCgkd2hpdGVMaXN0QXJyYXkpID4gMCkgewogICAgICAgICAgJHdoaXRlbG9vcCA9IDA7CiAgICAgICAgICB3aGlsZSAoJHdoaXRlbG9vcCA8IGNvdW50KCR3aGl0ZUxpc3RBcnJheSkpIHsKICAgICAgICAgICAgaWYgKCAoISRvcHRfcmVnZXhwICYmICR3aGl0ZUxpc3RBcnJheVskd2hpdGVsb29wXSAhPSAiIiAmJiBzdHJzdHIoc3RydG9sb3dlcigkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pLHN0cnRvbG93ZXIoJHdoaXRlTGlzdEFycmF5IFskd2hpdGVsb29wXSkpKSB8fCAoJG9wdF9yZWdleHAgJiYgZXJlZ2koJHdoaXRlTGlzdEFycmF5IFskd2hpdGVsb29wXSwgJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkgKSB7CiAgICAgICAgICAgICAgJHRvX2Jsb2NrPWZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR3aGl0ZWxvb3ArKzsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkdG9fYmxvY2sgPT0gdHJ1ZSkgewogICAgICAgICAgaWYgKCRvcHRfZm9yd2FyZCkgewogICAgICAgICAgICAvKiBJZiBwbHVnaW4gaXMgc2V0IHRvIGZvcndhcmQgdGhlIHJlZmVyZXIgdG8gaXQncyBvd24gcmVmZXJlciAqLwogICAgICAgICAgICBoZWFkZXIoJ0xvY2F0aW9uOicuJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9Jy5vcHRfY2hhcnNldCk7CiAgICAgICAgICAgIGhlYWRlcignSFRUUC8xLjAgNDAzIEZvcmJpZGRlbicpOwogICAgICAgICAgICBlY2hvICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPicuIlxuIjsKICAgICAgICAgICAgZWNobyAnPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJmciIgbGFuZz0iZnIiPicuIlxuIjsKICAgICAgICAgICAgZWNobyAnPGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9Jy4kb3B0X2NoYXJzZXQuJyIgLz48L2hlYWQ+Jy4iXG4iOwogICAgICAgICAgICBlY2hvICc8Ym9keT4nOwogICAgICAgICAgICBpZiAoISRvcHRfbWVzc2FnZSkgewogICAgICAgICAgICAgIC8qIElmIHRoZSBwbHVnaW4gaXMgbm90IHNldCB0byB1c2UgYSBwZXJzb25hbGl6ZWQgZXJyb3IgbWVzc2FnZSAqLwogICAgICAgICAgICAgIGVjaG8gJzxoMT40MDMgRm9yYmlkZGVuPC9oMT4nLiJcbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIC8qIElmIHRoZSBwbHVnaW4gaXMgc2V0IHRvIHVzZSBhIHBlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlICovCiAgICAgICAgICAgICAgZWNobyAkb3B0X21lc3NhZ2VfdGV4dCAuICc8YnIvPjxici8+Jy4iXG4iOwogICAgICAgICAgICAgIGlmIChpc3NldCgkb3B0X2xpbmspICYmICRvcHRfbGluayAhPSAiIikgewogICAgICAgICAgICAgICAgZWNobyAnPGEgaHJlZj0iJy4kX1NFUlZFUlsnUkVRVUVTVF9VUkknXS4nIj4nLiRvcHRfbGluay4nPC9hPicuIlxuIjsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZWNobyAnPGEgaHJlZj0iJy4kX1NFUlZFUlsnUkVRVUVTVF9VUkknXS4nIj5BY2Nlc3MgdG8gdGhlIHBhZ2U8L2E+Jy4iXG4iOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlY2hvICc8L2JvZHk+PC9odG1sPicuIlxuIjsKICAgICAgICAgIH0KICAgICAgICAgIC8qIElmIHBsdWdpbiBpcyBzZXQgdG8gbG9nIGJsb2NraW5nICovCiAgICAgICAgICBpZiAoaXNzZXQoJG9wdF9sb2cpICYmICRvcHRfbG9nICE9ICIiKSB7CiAgICAgICAgICAgIGlmICgkZnBvaW50ZXIgPSBmb3BlbigkcmVmZXJlcnNMb2dGaWxlLCAnYSsnKSkgewogICAgICAgICAgICAgIGZ3cml0ZSgkZnBvaW50ZXIsIHRpbWUoKS4nOycuZGF0ZSgiWS1tLWQgSDppOnMiLCB0aW1lKCkpLic7Jy4kX1NFUlZFUlsiUkVNT1RFX0FERFIiXS4nOycuJF9TRVJWRVJbIlJFTU9URV9IT1NUIl0uJzsnLiRfU0VSVkVSWyJIVFRQX1JFRkVSRVIiXS4nOycuJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXS4iXG4iKTsKICAgICAgICAgICAgICBmY2xvc2UoJGZwb2ludGVyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZXhpdCgpOwogICAgICAgIH0KICAgICAgfQogICAgICAkbG9vcCsrOwogICAgfQogIH0KfQo/Pgo=";s:22:"blockreferer/index.php";s:25904:"PD9waHAKLyogdXNlZnVsbCB2YXJpYWJsZXMgKi8KJHJlZmVyZXJzT3B0aW9uc0ZpbGUgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfb3B0aW9ucy5waHAnOwokcmVmZXJlcnNMaXN0RmlsZSAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci9yZWZlcmVycy50eHQnOwokd2hpdGVMaXN0RmlsZSAgICAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci93aGl0ZWxpc3QudHh0JzsKJHJlZmVyZXJzTG9nRmlsZSAgICAgPSAnLi4vc2hhcmUvYmxvY2tyZWZlcmVyL3JlZmVyZXJzX2xvZy5jc3YnOwokcmVmZXJlcnNMaXN0QXJyYXkgICA9IGFycmF5KCk7CiR3aGl0ZUxpc3RBcnJheSAgID0gYXJyYXkoKTsKCmJ1ZmZlcjo6c3RyKCc8aDI+Jy5fXygnQmxvY2sgYnkgUmVmZXJlcicpLic8L2gyPicpOwoKYnVmZmVyOjpzdHIoJzxwPjxhIGhyZWY9InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciI+Q29uZmlndXJhdGlvbjwvYT4gLSAnKTsKYnVmZmVyOjpzdHIoJzxhIGhyZWY9InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciZwYWdlPXN0YXRpc3RpY3MiPicuX18oJ1N0YXRpc3RpY3MnKS4nPC9hPjwvcD4nKTsKCmlmICghaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgfHwgJF9HRVRbJ3BhZ2UnXSAhPSAnc3RhdGlzdGljcycpIHsKICAvKioqKiogQ29uZmlndXJhdGlvbiBwYWdlICoqKioqLwoKICAvKiBJbml0IC0gQ3JlYXRlIHBsdWdpbiBkZWRpY2F0ZWQgZm9sZGVyICovCiAgaWYgKCFmaWxlX2V4aXN0cyhEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvJykpIHsKICAgIHVtYXNrKDAwMCk7CiAgICBpZiAoIW1rZGlyKERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci8nLCAwNzc3KSkgewogICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnQ291bGQgbm90IGNyZWF0ZSBCbG9jayBieSBSZWZlcmVyIGRlZGljYXRlZCBmb2xkZXInKS4gJyAnIC4gRENfU0hBUkVfRElSLicvYmxvY2tyZWZlcmVyLycuICc8L2g0PicpOwogICAgfQogIH0KCiAgLyogSW5pdCAtIENvbnZlcnQgb2xkIGRhdGFiYXNlIHRvIHBsYWluIHRleHQgZmlsZSAqLwogIGlmIChpc3NldCgkX1BPU1RbJ2NvbnZlcnQnXSkgJiYgJF9QT1NUWydjb252ZXJ0J10gIT0gJycpIHsKICAgIGdsb2JhbCAkY29uOwogICAgaWYgKCEkcnMgPSAkY29uLT5zZWxlY3QoJ1NFTEVDVCByZWZlcmVyIEZST00gJy5EQl9QUkVGSVguJ2Jsb2NrcmVmZXJlcicpKSB7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuICRjb24tPmVycm9yKCkgLiAnPC9oND4nKTsKICAgIH0gZWxzZSB7CiAgICAgIHdoaWxlICgkcnMtPmZldGNoKCkpIHsKICAgICAgICBhcnJheV9wdXNoKCRyZWZlcmVyc0xpc3RBcnJheSwgJHJzLT5mKCdyZWZlcmVyJykpOwogICAgICB9CiAgICAgIHNvcnQoJHJlZmVyZXJzTGlzdEFycmF5KTsKICAgICAgaWYgKHNhdmVSZWZlcmVyTGlzdCgkcmVmZXJlcnNMaXN0QXJyYXkpKTsKICAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnUmVmZXJlcnMgbGlzdCB3YXMgc3VjY2Vzc2Z1bGx5IGNvbnZlcnRlZC4gWW91IG1heSBub3cgZGVsZXRlIHRhYmxlJykgLiAnICcgLiBEQl9QUkVGSVguJ2Jsb2NrcmVmZXJlcicgLiAnPC9oND4nKTsKICAgIH0KICB9CgogIC8qIEluaXQgLSBMb2FkIHJlZmVyZXJzIGxpc3QgKi8KICBpZiAoZmlsZV9leGlzdHMoJHJlZmVyZXJzTGlzdEZpbGUpKSB7CiAgICAkcmVmZXJlcnNMaXN0QXJyYXkgPSBmaWxlKCRyZWZlcmVyc0xpc3RGaWxlKTsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSk7CiAgICAgICRsb29wKys7CiAgICB9CiAgfQoKICAvKiBJbml0IC0gTG9hZCB3aGl0ZWxpc3QgKi8KICBpZiAoZmlsZV9leGlzdHMoJHdoaXRlTGlzdEZpbGUpKSB7CiAgICAkd2hpdGVMaXN0QXJyYXkgPSBmaWxlKCR3aGl0ZUxpc3RGaWxlKTsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCR3aGl0ZUxpc3RBcnJheSkpIHsKICAgICAgJHdoaXRlTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHdoaXRlTGlzdEFycmF5WyRsb29wXSk7CiAgICAgICRsb29wKys7CiAgICB9CiAgfQoKICAvKiBBY3Rpb24gLSBTYXZlIG9wdGlvbnMgKi8KICBpZiAoaXNzZXQoJF9QT1NUWydvcHRpb25zJ10pICYmICRfUE9TVFsnb3B0aW9ucyddICE9ICcnKSB7CiAgICBzYXZlT3B0aW9ucygkX1BPU1QpOyAKICB9CgogIC8qIEluaXQgLSBMb2FkIG9wdGlvbnMgZmlsZSAqLwogIGlmIChmaWxlX2V4aXN0cygkcmVmZXJlcnNPcHRpb25zRmlsZSkpCiAgICBpbmNsdWRlICRyZWZlcmVyc09wdGlvbnNGaWxlOwoKICAvKiBBY3Rpb24gLSBTYXZlIG5ldyByZWZlcmVyICovCiAgaWYgKGlzc2V0KCRfUE9TVFsncmVmZXJlciddKSAmJiAkX1BPU1RbJ3JlZmVyZXInXSAhPSAnJykgewogICAgYXJyYXlfcHVzaCgkcmVmZXJlcnNMaXN0QXJyYXksICRfUE9TVFsncmVmZXJlciddKTsKICAgIHNvcnQoJHJlZmVyZXJzTGlzdEFycmF5KTsKICAgIGlmIChzYXZlUmVmZXJlckxpc3QoJHJlZmVyZXJzTGlzdEFycmF5LCAkcmVmZXJlcnNMaXN0RmlsZSkpOwogICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnUmVmZXJlciBzdWNjZXNzZnVsbHkgc2F2ZWQnKSAuICc8L2g0PicpOwogIH0KCiAgLyogQWN0aW9uIC0gU2F2ZSBuZXcgd2hpdGVsaXN0IHJlZmVyZXIgKi8KICBpZiAoaXNzZXQoJF9QT1NUWyd3aGl0ZWxpc3QnXSkgJiYgJF9QT1NUWyd3aGl0ZWxpc3QnXSAhPSAnJykgewogICAgYXJyYXlfcHVzaCgkd2hpdGVMaXN0QXJyYXksICRfUE9TVFsnd2hpdGVsaXN0J10pOwogICAgc29ydCgkd2hpdGVMaXN0QXJyYXkpOwogICAgaWYgKHNhdmVSZWZlcmVyTGlzdCgkd2hpdGVMaXN0QXJyYXksICR3aGl0ZUxpc3RGaWxlKSk7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdXaGl0ZWxpc3QgcmVmZXJlciBzdWNjZXNzZnVsbHkgc2F2ZWQnKSAuICc8L2g0PicpOwogIH0KCiAgLyogQWN0aW9uIC0gRGVsZXRlIG9sZCByZWZlcmVyICovCiAgaWYgKGlzc2V0KCRfUE9TVFsnZGVsZXRlJ10pICYmICRfUE9TVFsnZGVsZXRlJ10gIT0gJycpIHsKICAgICRwb3N0X2NvdW50ID0gY291bnQoJF9QT1NUKTsKICAgIGlmICgkcG9zdF9jb3VudCA+IDEpIHsKICAgICAgcmVzZXQoJF9QT1NUKTsKICAgICAgJGxvb3AgPSAwOwogICAgICB3aGlsZSAoJGxvb3AgPCAkcG9zdF9jb3VudCkgewogICAgICAgICRwb3N0a2V5ID0ga2V5KCRfUE9TVCk7CiAgICAgICAgaWYgKHN1YnN0cigkcG9zdGtleSwgMCwgNSkgPT0gJ3JlZmlkJykgewogICAgICAgICAgJHBvc3R2YWx1ZSA9IGN1cnJlbnQoJF9QT1NUKTsKICAgICAgICAgICRhcnJheUxvb3AgPSAwOwogICAgICAgICAgd2hpbGUoJGFycmF5TG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgICAgICAgaWYgKCRyZWZlcmVyc0xpc3RBcnJheVskYXJyYXlMb29wXSA9PSAkcG9zdHZhbHVlKSB7CiAgICAgICAgICAgICAgdW5zZXQoJHJlZmVyZXJzTGlzdEFycmF5WyRhcnJheUxvb3BdKTsKICAgICAgICAgICAgICAkcmVmZXJlcnNMaXN0QXJyYXkgPSBhcnJheV9tZXJnZSgkcmVmZXJlcnNMaXN0QXJyYXkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRhcnJheUxvb3ArKzsKICAgICAgICAgIH0gICAgICAgICAgCiAgICAgICAgfQogICAgICAgICRsb29wKys7CiAgICAgICAgbmV4dCgkX1BPU1QpOwogICAgICB9CiAgICAgIGlmIChzYXZlUmVmZXJlckxpc3QoJHJlZmVyZXJzTGlzdEFycmF5LCAkcmVmZXJlcnNMaXN0RmlsZSkpOwogICAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdSZWZlcmVycyBzdWNjZXNzZnVsbHkgZGVsZXRlZCcpIC4gJzwvaDQ+Jyk7CiAgICB9CiAgfQoKICAvKiBBY3Rpb24gLSBEZWxldGUgb2xkIHdoaXRlbGlzdCByZWZlcmVyICovCiAgaWYgKGlzc2V0KCRfUE9TVFsnZGVsZXRlX3doaXRlbGlzdCddKSAmJiAkX1BPU1RbJ2RlbGV0ZV93aGl0ZWxpc3QnXSAhPSAnJykgewogICAgJHBvc3RfY291bnQgPSBjb3VudCgkX1BPU1QpOwogICAgaWYgKCRwb3N0X2NvdW50ID4gMSkgewogICAgICByZXNldCgkX1BPU1QpOwogICAgICAkbG9vcCA9IDA7CiAgICAgIHdoaWxlICgkbG9vcCA8ICRwb3N0X2NvdW50KSB7CiAgICAgICAgJHBvc3RrZXkgPSBrZXkoJF9QT1NUKTsKICAgICAgICBpZiAoc3Vic3RyKCRwb3N0a2V5LCAwLCA1KSA9PSAnd2h0aWQnKSB7CiAgICAgICAgICAkcG9zdHZhbHVlID0gY3VycmVudCgkX1BPU1QpOwogICAgICAgICAgJGFycmF5TG9vcCA9IDA7CiAgICAgICAgICB3aGlsZSgkYXJyYXlMb29wIDwgY291bnQoJHdoaXRlTGlzdEFycmF5KSkgewogICAgICAgICAgICBpZiAoJHdoaXRlTGlzdEFycmF5WyRhcnJheUxvb3BdID09ICRwb3N0dmFsdWUpIHsKICAgICAgICAgICAgICB1bnNldCgkd2hpdGVMaXN0QXJyYXlbJGFycmF5TG9vcF0pOwogICAgICAgICAgICAgICR3aGl0ZUxpc3RBcnJheSA9IGFycmF5X21lcmdlKCR3aGl0ZUxpc3RBcnJheSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGFycmF5TG9vcCsrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkbG9vcCsrOwogICAgICAgIG5leHQoJF9QT1NUKTsKICAgICAgfQogICAgICBpZiAoc2F2ZVJlZmVyZXJMaXN0KCR3aGl0ZUxpc3RBcnJheSwgJHdoaXRlTGlzdEZpbGUpKTsKICAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnV2hpdGVsaXN0IHJlZmVyZXJzIHN1Y2Nlc3NmdWxseSBkZWxldGVkJykgLiAnPC9oND4nKTsKICAgIH0KICB9CgogIC8qIEhUTUwgLSBPcHRpb25zICovCiAgYnVmZmVyOjpzdHIoJzxmb3JtIGFjdGlvbj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyIiBtZXRob2Q9InBvc3QiPicpOwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ09wdGlvbnMnKSAuICc8L2xlZ2VuZD4nKTsKICBidWZmZXI6OnN0cignPHAgY2xhc3M9ImZpZWxkIj4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0aW9ucyIgdmFsdWU9InRydWUiPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJvcHRfcmVnZXhwIiBuYW1lPSJvcHRfcmVnZXhwIiB2YWx1ZT0idHJ1ZSIgJy4oJG9wdF9yZWdleHA9PXRydWU/J2NoZWNrZWQ9ImNoZWNrZWQiJzonJykuJy8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ1VzZSByZWd1bGFyIGV4cHJlc3Npb24nKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im9wdF9mb3J3YXJkIiBuYW1lPSJvcHRfZm9yd2FyZCIgdmFsdWU9InRydWUiICcuKCRvcHRfZm9yd2FyZD09dHJ1ZT8nY2hlY2tlZD0iY2hlY2tlZCInOicnKS4nLz4nKTsKICBidWZmZXI6OnN0cihfXygnRm9yd2FyZCB2aXNpdG9yIHRvIGl0XCdzIG93biByZWZlcmVyIGluc3RlYWQgb2YgYmxvY2tpbmcgaXQnKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im9wdF9sb2ciIG5hbWU9Im9wdF9sb2ciIHZhbHVlPSJ0cnVlIiAnLigkb3B0X2xvZz09dHJ1ZT8nY2hlY2tlZD0iY2hlY2tlZCInOicnKS4nLz4nKTsKICBidWZmZXI6OnN0cihfXygnTG9nIGJsb2NraW5nJykuJyAnKTsKICBidWZmZXI6OnN0cignKDxhIGhyZWY9IicuJHJlZmVyZXJzTG9nRmlsZS4nIj4nLl9fKCdWaWV3IGxvZycpLic8L2E+KScpOwogIGJ1ZmZlcjo6c3RyKCc8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJvcHRfbWVzc2FnZSIgbmFtZT0ib3B0X21lc3NhZ2UiIHZhbHVlPSJ0cnVlIiAnLigkb3B0X21lc3NhZ2U9PXRydWU/J2NoZWNrZWQ9ImNoZWNrZWQiJzonJykuJy8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ1VzZSBwZXJzb25hbGl6ZWQgZXJyb3IgbWVzc2FnZScpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cihfXygnUGVyc29uYWxpemVkIGVycm9yIG1lc3NhZ2UgKEhUTUwpIDonKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoJzx0ZXh0YXJlYSBuYW1lPSJvcHRfbWVzc2FnZV90ZXh0IiBpZD0ib3B0X21lc3NhZ2VfdGV4dCIgY29scz0iNjAiIHJvd3M9IjEwIj4nIC4gJG9wdF9tZXNzYWdlX3RleHQgLiAnPC90ZXh0YXJlYT4nKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cihfXygnVGV4dCBvZiB0aGUgIkFjY2VzcyB0byB0aGUgcGFnZSIgbGluayA6JykpOyAgICAgICAgICAgICAgICAgICAgIAogIGJ1ZmZlcjo6c3RyKCc8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im9wdF9saW5rIiBuYW1lPSJvcHRfbGluayIgdmFsdWU9IicuJG9wdF9saW5rLiciIHNpemU9IjQwIi8+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvcD4nKTsKICBidWZmZXI6OnN0cignPHA+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQiIHZhbHVlPSInIC4gX18oJ1NhdmUnKSAuICciIC8+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvcD4nKTsKICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKICBidWZmZXI6OnN0cignPC9mb3JtPicpOwoKICAvKiBIVE1MIC0gQWRkIGEgbmV3IHJlZmVyZXIgdG8gYXV0aG9yaXplICovCiAgYnVmZmVyOjpzdHIoJzxmb3JtIGFjdGlvbj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyIiBtZXRob2Q9InBvc3QiPicpOwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ0FkZCBhIG5ldyByZWZlcmVyIHRvIGF1dGhvcml6ZScpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKCc8cCBjbGFzcz0iZmllbGQiPicpOwogIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSJyZWZlcmVyIiBjbGFzcz0iZmxvYXQiPicgLiBfXygnUmVmZXJlciB0byBhdXRob3JpemUgOicpIC4gJzwvbGFiZWw+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgbmFtZT0id2hpdGVsaXN0IiBpZD0id2hpdGVsaXN0IiAvPicpOwogIGJ1ZmZlcjo6c3RyKCcmbmJzcDsmbmJzcDsnKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IicgLiBfXygnU2F2ZScpIC4gJyIgLz4nKTsKICBidWZmZXI6OnN0cignPC9wPicpOwogIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwogIGJ1ZmZlcjo6c3RyKCc8L2Zvcm0+Jyk7CgogIC8qIEhUTUwgLSBBdXRob3JpemVkIHJlZmVyZXIgbGlzdCAqLwogIGJ1ZmZlcjo6c3RyKCc8Zm9ybSBhY3Rpb249InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciIgbWV0aG9kPSJwb3N0Ij4nKTsKICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdBdXRob3JpemVkIHJlZmVyZXIgbGlzdCcpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWxldGVfd2hpdGVsaXN0IiB2YWx1ZT0idHJ1ZSI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IG92ZXJmbG93OiBhdXRvIj48dGFibGU+PHRyPjx0ZCBjb2xzcGFuPSIyIj48Yj4nIC4gX18oJ1JlZmVyZXInKSAuICc8L2I+PC90ZD48L3RyPicpOwogIGlmKGNvdW50KCR3aGl0ZUxpc3RBcnJheSkgPCAxKSB7CiAgICBidWZmZXI6OnN0cignPHRyPjx0ZCBjb2xzcGFuPSIyIj4nIC4gX18oJ05vIHJlZmVyZXIgaXMgYXV0aG9yaXplZCBmb3Igbm93JykgLiAnPC90ZD48L3RyPicpOwogIH0gZWxzZSB7CiAgICAkbG9vcCA9IDA7CiAgICB3aGlsZSAoJGxvb3AgPCBjb3VudCgkd2hpdGVMaXN0QXJyYXkpKSB7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8dHIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmNmY5ZjIiPicpOwogICAgICBidWZmZXI6OnN0cignPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0id2h0aWQnLiR3aGl0ZUxpc3RBcnJheVskbG9vcF0uJyIgdmFsdWU9IicuJHdoaXRlTGlzdEFycmF5WyRsb29wXS4nIi8+Jyk7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8dGQ+JyAuICR3aGl0ZUxpc3RBcnJheVskbG9vcF0gLiAnPC90ZD4nKTsKICAgICAgYnVmZmVyOjpzdHIoJzwvdHI+Jyk7CiAgICAgICRsb29wKys7CiAgICB9CiAgfQogIGJ1ZmZlcjo6c3RyKCc8L3RhYmxlPjwvZGl2PicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iJyAuIF9fKCdEZWxldGUnKSAuICciLz4nKTsKICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKICBidWZmZXI6OnN0cignPC9mb3JtPicpOwoKICAvKiBIVE1MIC0gQWRkIGEgbmV3IHJlZmVyZXIgdG8gYmxvY2sgKi8KICBidWZmZXI6OnN0cignPGZvcm0gYWN0aW9uPSJ0b29scy5waHA/cD1ibG9ja3JlZmVyZXIiIG1ldGhvZD0icG9zdCI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxmaWVsZHNldD48bGVnZW5kPicgLiBfXygnQWRkIGEgbmV3IHJlZmVyZXIgdG8gYmxvY2snKSAuICc8L2xlZ2VuZD4nKTsKICBidWZmZXI6OnN0cignPHAgY2xhc3M9ImZpZWxkIj4nKTsKICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0icmVmZXJlciIgY2xhc3M9ImZsb2F0Ij4nIC4gX18oJ1JlZmVyZXIgdG8gYmxvY2sgOicpIC4gJzwvbGFiZWw+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgbmFtZT0icmVmZXJlciIgaWQ9InJlZmVyZXIiIC8+Jyk7CiAgYnVmZmVyOjpzdHIoJyZuYnNwOyZuYnNwOycpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iJyAuIF9fKCdTYXZlJykgLiAnIiAvPicpOwogIGJ1ZmZlcjo6c3RyKCc8L3A+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvZm9ybT4nKTsKCiAgLyogSFRNTCAtIEJsb2NrZWQgcmVmZXJlciBsaXN0ICovCiAgYnVmZmVyOjpzdHIoJzxmb3JtIGFjdGlvbj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyIiBtZXRob2Q9InBvc3QiPicpOwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ0Jsb2NrZWQgcmVmZXJlciBsaXN0JykgLiAnPC9sZWdlbmQ+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlbGV0ZSIgdmFsdWU9InRydWUiPicpOwogIGJ1ZmZlcjo6c3RyKCc8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBvdmVyZmxvdzogYXV0bzsiPjx0YWJsZT48dHI+PHRkIGNvbHNwYW49IjIiPjxiPicgLiBfXygnUmVmZXJlcicpIC4gJzwvYj48L3RkPjwvdHI+Jyk7CiAgaWYoY291bnQoJHJlZmVyZXJzTGlzdEFycmF5KSA8IDEpIHsKICAgIGJ1ZmZlcjo6c3RyKCc8dHI+PHRkIGNvbHNwYW49IjIiPicgLiBfXygnTm8gcmVmZXJlciBpcyBibG9ja2VkIGZvciBub3cnKSAuICc8L3RkPjwvdHI+Jyk7CiAgfSBlbHNlIHsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgYnVmZmVyOjpzdHIoJzx0ciBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjlmMiI+Jyk7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWZpZCcuJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXS4nIiB2YWx1ZT0iJy4kcmVmZXJlcnNMaXN0QXJyYXlbJGxvb3BdLiciLz4nKTsKICAgICAgYnVmZmVyOjpzdHIoJzx0ZD4nIC4gJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSAuICc8L3RkPicpOwogICAgICBidWZmZXI6OnN0cignPC90cj4nKTsKICAgICAgJGxvb3ArKzsKICAgIH0KICB9CiAgYnVmZmVyOjpzdHIoJzwvdGFibGU+PC9kaXY+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSInIC4gX18oJ0RlbGV0ZScpIC4gJyIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwogIGJ1ZmZlcjo6c3RyKCc8L2Zvcm0+Jyk7CgogIC8qIEhUTUwgLSBJbnN0YWxsYXRpb24gaGVscCAqLwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ0luc3RhbGxhdGlvbicpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKCc8cD48Yj4nLl9fKCdSZWZlcmVyIHRvIGJsb2NrIDonKS4nPC9iPiAnLl9fKCdUbyB1c2UgcGx1Z2luLCBqdXN0IGFkZCBwYXJ0IG9mIHRoZSByZWZlcmVyIHlvdSB3YW50IHRvIGJsb2NrOyBpLmUgYWRkICJzb21lYnV6endvcmQiIHRvIGJsb2NrIGFueSByZWZlcmVyIHdoaWNoIGhhdmUgInNvbWVidXp6d29yZCIgaW4uJykgLiAnPC9wPicpOwogIGJ1ZmZlcjo6c3RyKCc8cD48Yj4nLl9fKCdSZWZlcmVyIHRvIGF1dGhvcml6ZSA6JykuJzwvYj4gJyk7CiAgYnVmZmVyOjpzdHIoX18oJ1RoZXNlIHJlZmVyZXJzIGFyZSBoZXJlIG9ubHkgdG8gZXhjZXB0aW9ubmFseSBhdXRob3JpemUgYSBibG9ja2VkIG9uZSwgYW4gZW1wdHkgbGlzdCB3b25cJ3QgYmxvY2sgYW55b25lLicpKTsKICBidWZmZXI6OnN0cignICcuX18oJ0lmIGEgcmVmZXJlciBpcyBibG9ja2VkIChhbmQgb25seSBpbiB0aGlzIGNhc2UpLCBpdCB3aWxsIGJlIGNoZWNrZWQgaWYgaXQgZXhpc3RzIGludG8gYXV0aG9yaXplZCByZWZlcmVycyBsaXN0LicpKTsKICBidWZmZXI6OnN0cignICcuX18oJ2kuZS4gOiBpZiBzb21lb25lIGZpbmRzIHlvdXIgYmxvZyB3aGlsZSBsb29raW5nIGZvciAic29tZWJ1enp3b3JkIiB3aXRoIEdvb2dsZSwgYW5kIHlvdSBkb25cJ3Qgd2FudCB0byBibG9jayB1c2VycyBmcm9tIEdvb2dsZSwgeW91IG1heSBhZGQgImh0dHA6Ly93d3cuZ29vZ2xlLiIgdG8geW91ciBhdXRob3JpemVkIHJlZmVyZXJzIGxpc3QuJykpOwogIGJ1ZmZlcjo6c3RyKCcgJy5fXygnT3RoZXIgcmVmZXJlcnMgd2l0aCAic29tZWJ1enp3b3JkIiB3aXRoaW4gdGhlaXIgcmVmZXJlciB3aWxsIHN0YXkgYmxvY2tlZC4nKSk7CiAgYnVmZmVyOjpzdHIoJzwvcD4nKTsKICBidWZmZXI6OnN0cignPHVsPicpOwogIGJ1ZmZlcjo6c3RyKCc8bGk+JyAuICciJy5fXygnVXNlIHJlZ3VsYXIgZXhwcmVzc2lvbicpIC4gJyIgJyAuIF9fKCdpcyBub3QgY2hlY2tlZCcpIC4gJyA6ICcgLl9fKCdZb3UgaGF2ZSB0byB1c2UgcGFydCBvZiByZWZlcmVycywgb3IgdGhlaXIgZnVsbCBhZGRyZXNzLicpIC4gJzwvbGk+Jyk7CiAgYnVmZmVyOjpzdHIoJzxsaT4nIC4gJyInLl9fKCdVc2UgcmVndWxhciBleHByZXNzaW9uJykgLiAnIiAnIC4gX18oJ2lzIGNoZWNrZWQnKSAuICcgOiAnIC5fXygnWW91IGhhdmUgdG8gdXNlIHJlZ3VsYXIgZXhwcmVzc2lvbiAoY2FzZSBpbnNlbnNpdGl2ZSkuJykgLiAnPC9saT4nKTsKICBidWZmZXI6OnN0cignPC91bD4nKTsKICBidWZmZXI6OnN0cihfXygnSWYgeW91IG1vZGlmeSBkaWZmZXJlbnQgZm9ybXMgYXQgdGhlIHNhbWUgdGltZSwgb25seSB0aGUgb25lIHlvdSBjaG9zZSB0byBzYXZlIGNoYW5nZXMgd2lsbCBiZSBzYXZlZC4nKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+PGJyLz4nKTsKICBidWZmZXI6OnN0cihfXygnVGhlIGF1dGhvcml6YXRpb24gaGFzIHByaW9yaXR5IG9uIGJsb2NraW5nLCBhbmQgbWF5IHVzZSByZWd1bGFyIGV4cHJlc3Npb25zIHRvby4nKSk7CiAgYnVmZmVyOjpzdHIoJzxocj4nKTsKICBidWZmZXI6OnN0cignPHA+JyAuIF9fKCdJZiB5b3UgdXBncmFkZSBmcm9tIHZlcnNpb24gMS4wIG9yIDEuMSwgeW91IHdpbGwgaGF2ZSB0byBjb252ZXJ0IHRoZSByZWZlcmVycyBsaXN0IHRvIHRoZSBuZXcgZm9ybWF0LicpIC4gJzwvcD4nKTsKICBidWZmZXI6OnN0cignPGZvcm0gYWN0aW9uPSJ0b29scy5waHA/cD1ibG9ja3JlZmVyZXIiIG1ldGhvZD0icG9zdCI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbnZlcnQiIHZhbHVlPSJ0cnVlIj4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiBfXygnQ29udmVydCcpIC4gJyIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8L2Zvcm0+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7Cn0gZWxzZSB7Ci8qKioqKiBTdGF0aXN0aWNzIHBhZ2UgKioqKiovCiAgCiAgLyogVXNlZnVsbCBhcnJheXMgCiAgICogJGFycmF5VGltZSA6IEFycmF5IHdpdGggdGltZSBzdGF0aXN0aWNzIDogbGFzdCAyNGgsIHdlZWssIG1vbnRoLCB5ZWFyCiAgICogICAgICAgICAgICAgIGFuZCBhbGwgdGltZS4KICAgKiAkYXJyYXlSZWZlcmVudCA6IEFycmF5IHdpdGggcmVmZXJlbnRzIHN0YXRpc3RpY3MKICAgKiAkYXJyYXlIb3N0cyA6IEFycmF5IHdpdGggYmxvY2tlZCByZWZlcmVudHMgKGhvc3RuYW1lKQogICAqLwoKICAvKiBJbml0IHZhcmlhYmxlcyAqLwogICRjdXJUaW1lID0gdGltZSgpOwoKICAvKiBJbml0IHRpbWUgc3RhdGlzdGljcyBhcnJheSAqLwogICRhcnJheVRpbWUgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICdkYXknICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICd3ZWVrJyAgPT4gMCwKICAgICAgICAgICAgICAgICAgICdtb250aCcgPT4gMCwKICAgICAgICAgICAgICAgICAgICd5ZWFyJyAgPT4gMCwKICAgICAgICAgICAgICAgICAgICdhbGwnICAgPT4gMAogICAgICAgICAgICAgICApOwogIAogIC8qIEluaXQgcmVmZXJlbnQgc3RhdGlzdGljcyBhcnJheSAqLwogIGlmIChmaWxlX2V4aXN0cygkcmVmZXJlcnNMaXN0RmlsZSkpIHsKICAgICRyZWZlcmVyc0xpc3RBcnJheSA9IGZpbGUoJHJlZmVyZXJzTGlzdEZpbGUpOwogICAgJGxvb3AgPSAwOwogICAgd2hpbGUgKCRsb29wIDwgY291bnQoJHJlZmVyZXJzTGlzdEFycmF5KSkgewogICAgICAkcmVmZXJlcnNMaXN0QXJyYXlbJGxvb3BdID0gdHJpbSgkcmVmZXJlcnNMaXN0QXJyYXlbJGxvb3BdKTsKICAgICAgJGxvb3ArKzsKICAgIH0KICAgICRhcnJheVJlZmVyZXJzID0gYXJyYXlfZmxpcCgkcmVmZXJlcnNMaXN0QXJyYXkpOwogICAgcmVzZXQoJGFycmF5UmVmZXJlcnMpOwogICAgJGxvb3AgPSAwOwogICAgd2hpbGUgKCRsb29wIDwgY291bnQoJGFycmF5UmVmZXJlcnMpKSB7CiAgICAgICRhcnJheVJlZmVyZXJzW2tleSgkYXJyYXlSZWZlcmVycyldID0gMDsKICAgICAgbmV4dCgkYXJyYXlSZWZlcmVycyk7CiAgICAgICRsb29wKys7CiAgICB9CiAgfSBlbHNlIHsKICAgICRhcnJheVJlZmVyZXJzID0gYXJyYXkoKTsKICB9CiAKICAvKiBJbml0IHJlZmVyZW50IGhvc3RzIHN0YXRpc3RpY3MgYXJyYXkgKi8KICAkYXJyYXlIb3N0cyA9IGFycmF5KCk7CiAKICAvKiBTdGVwIGZvcndhcmQgbG9nIGZpbGUgdG8gZmlsbCBhcnJheXMgKi8gCiAgaWYgKGZpbGVfZXhpc3RzKCRyZWZlcmVyc0xvZ0ZpbGUpKSB7CiAgICAkZnBvaW50ZXIgPSBmb3BlbigkcmVmZXJlcnNMb2dGaWxlLCAncicpOwogICAgd2hpbGUgKCFmZW9mKCRmcG9pbnRlcikpIHsKICAgICAgdW5zZXQoJGN1ckxpbmUpOwogICAgICB1bnNldCgkbGluZUFycmF5KTsKICAgICAgdW5zZXQoJHRpbWVTdGFtcCk7CiAgICAgIHVuc2V0KCRyZWZlcmVyKTsKICAgICAgJGN1cmxpbmUgPSBmZ2V0cygkZnBvaW50ZXIpOwogICAgICAkbGluZUFycmF5ID0gZXhwbG9kZSgnOycsICRjdXJsaW5lKTsKICAgICAgJHRpbWVTdGFtcCA9ICRsaW5lQXJyYXlbMF07CiAgICAgICRob3N0ID0gJGxpbmVBcnJheVs0XTsKICAgICAgJHJlZmVyZXIgPSAkbGluZUFycmF5WzVdOwogICAgICAvKiBmaWxsIGhvc3RzIGFycmF5ICovCiAgICAgICRob3N0bmFtZSA9IHN1YnN0cigkaG9zdCwgc3RycG9zKCRob3N0LCAnOi8vJykrMyApOwogICAgICAkaG9zdG5hbWUgPSBzdWJzdHIoJGhvc3RuYW1lLCAwLCBzdHJwb3MoJGhvc3RuYW1lLCAnLycpICk7CiAgICAgICRhcnJheUhvc3RzW3RyaW0oJGhvc3RuYW1lKV0rKzsKICAgICAgLyogZmlsbCByZWZlcmVycyBhcnJheSAqLwogICAgICBpZiAodHJpbSgkcmVmZXJlcikgIT0gJycpCiAgICAgICAgJGFycmF5UmVmZXJlcnNbdHJpbSgkcmVmZXJlcildKys7CiAgICAgIC8qIGZpbGwgdGltZSBhcnJheSAqLwogICAgICBpZiAodHJpbSgkdGltZVN0YW1wKSkgewogICAgICAgICRhcnJheVRpbWVbJ2FsbCddKys7CiAgICAgICAgaWYgKCgkdGltZVN0YW1wKzM2MDAqMjQqMzY1KSA+PSAkY3VyVGltZSkKICAgICAgICAgICRhcnJheVRpbWVbJ3llYXInXSsrOwogICAgICAgIGlmICgoJHRpbWVTdGFtcCszNjAwKjI0KjMwKSA+PSAkY3VyVGltZSkKICAgICAgICAgICRhcnJheVRpbWVbJ21vbnRoJ10rKzsKICAgICAgICBpZiAoKCR0aW1lU3RhbXArMzYwMCoyNCo3KSA+PSAkY3VyVGltZSkKICAgICAgICAgICRhcnJheVRpbWVbJ3dlZWsnXSsrOwogICAgICAgIGlmICgoJHRpbWVTdGFtcCszNjAwKjI0KSA+PSAkY3VyVGltZSkKICAgICAgICAgICRhcnJheVRpbWVbJ2RheSddKys7IAogICAgICB9CiAgICB9CiAgICBmY2xvc2UoJGZwb2ludGVyKTsKICB9CgogIC8qIEhUTUwgLSBIZWxwICovCiAgYnVmZmVyOjpzdHIoJzxmaWVsZHNldD48bGVnZW5kPicgLiBfXygnSGVscCcpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdBbGwgYmxvY2tpbmdzIDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgYmVnaW5uaW5nIG9mIHRoZSBsb2cuJykpOwogIGJ1ZmZlcjo6c3RyKCc8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdZZWFybHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDM2NSBkYXlzLicpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cihfXygnTW9udGhseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMzAgZGF5cy4nKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ1dlZWtseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgNyBkYXlzLicpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cihfXygnRGFpbHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDI0IGhvdXJzLicpKTsKICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKCiAgLyogRG9lcyBzdGF0aXN0aWNzIGZpbGUgZXhpc3RzID8gKi8KICBpZiAoZmlsZV9leGlzdHMoJHJlZmVyZXJzTG9nRmlsZSkpIHsgCiAgICAvKiBIVE1MIC0gVGltZSBzdGF0aXN0aWNzICovCiAgICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdUaW1lIHN0YXRpc3RpY3MnKSAuICc8L2xlZ2VuZD4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSJhbGwiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdBbGwgYmxvY2tpbmdzIDonKSAuICc8L2xhYmVsPicpOwogICAgYnVmZmVyOjpzdHIoJGFycmF5VGltZVsnYWxsJ10uJzxici8+Jyk7CiAgICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0ieWVhciIgY2xhc3M9ImZsb2F0Ij4nIC4gX18oJ1llYXJseSA6JykgLiAnPC9sYWJlbD4nKTsKICAgIGJ1ZmZlcjo6c3RyKCRhcnJheVRpbWVbJ3llYXInXS4nPGJyLz4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSJtb250aCIgY2xhc3M9ImZsb2F0Ij4nIC4gX18oJ01vbnRobHkgOicpIC4gJzwvbGFiZWw+Jyk7CiAgICBidWZmZXI6OnN0cigkYXJyYXlUaW1lWydtb250aCddLic8YnIvPicpOwogICAgYnVmZmVyOjpzdHIoJzxsYWJlbCBmb3I9IndlZWsiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdXZWVrbHkgOicpIC4gJzwvbGFiZWw+Jyk7CiAgICBidWZmZXI6OnN0cigkYXJyYXlUaW1lWyd3ZWVrJ10uJzxici8+Jyk7CiAgICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0iZGF5IiBjbGFzcz0iZmxvYXQiPicgLiBfXygnRGFpbHkgOicpIC4gJzwvbGFiZWw+Jyk7CiAgICBidWZmZXI6OnN0cigkYXJyYXlUaW1lWydkYXknXS4nPGJyLz4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwoKICAgIC8qIEhUTUwgLSBSZWZlcmVyIHN0YXRpc3RpY3MgKi8KICAgIGFyc29ydCgkYXJyYXlSZWZlcmVycyk7CiAgICAkbG9vcCA9IDA7CiAgICByZXNldCgkYXJyYXlSZWZlcmVycyk7CiAgICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdSZWZlcmVycyBzdGF0aXN0aWNzJykgLiAnPC9sZWdlbmQ+Jyk7CiAgICBidWZmZXI6OnN0cignPGRpdiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgb3ZlcmZsb3c6IGF1dG8iPicpOwogICAgd2hpbGUgKCRsb29wIDwgY291bnQoJGFycmF5UmVmZXJlcnMpKSB7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSInLmtleSgkYXJyYXlSZWZlcmVycykuJyIgc3R5bGU9IndpZHRoOiA0MDBweCIgY2xhc3M9ImZsb2F0Ij4nLmtleSgkYXJyYXlSZWZlcmVycykuJyA6IDwvbGFiZWw+Jyk7CiAgICAgIGJ1ZmZlcjo6c3RyKCRhcnJheVJlZmVyZXJzW2tleSgkYXJyYXlSZWZlcmVycyldLicgKCcubnVtYmVyX2Zvcm1hdCgkYXJyYXlSZWZlcmVyc1trZXkoJGFycmF5UmVmZXJlcnMpXS8kYXJyYXlUaW1lWydhbGwnXSoxMDAsIDIpLiclKTxici8+Jyk7CiAgICAgIG5leHQoJGFycmF5UmVmZXJlcnMpOwogICAgICAkbG9vcCsrOwogICAgfQogICAgYnVmZmVyOjpzdHIoJzwvZGl2PicpOwogICAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CgogICAgLyogSFRNTCAtIFJlZmVyZXIgaG9zdHMgc3RhdGlzdGljcyAqLwogICAgYXJzb3J0KCRhcnJheUhvc3RzKTsKICAgICRsb29wID0gMDsKICAgIHJlc2V0KCRhcnJheUhvc3RzKTsKICAgIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ1JlZmVyZXIgaG9zdHMgc3RhdGlzdGljcycpIC4gJzwvbGVnZW5kPicpOwogICAgYnVmZmVyOjpzdHIoJzxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IG92ZXJmbG93OiBhdXRvIj4nKTsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRhcnJheUhvc3RzKSkgewogICAgICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0iJy5rZXkoJGFycmF5SG9zdHMpLiciIHN0eWxlPSJ3aWR0aDogNDAwcHgiIGNsYXNzPSJmbG9hdCI+Jy5rZXkoJGFycmF5SG9zdHMpLicgOiA8L2xhYmVsPicpOwogICAgICBidWZmZXI6OnN0cigkYXJyYXlIb3N0c1trZXkoJGFycmF5SG9zdHMpXS4nICgnLm51bWJlcl9mb3JtYXQoJGFycmF5SG9zdHNba2V5KCRhcnJheUhvc3RzKV0vJGFycmF5VGltZVsnYWxsJ10qMTAwLCAyKS4nJSk8YnIvPicpOwogICAgICBuZXh0KCRhcnJheUhvc3RzKTsKICAgICAgJGxvb3ArKzsKICAgIH0KICAgIGJ1ZmZlcjo6c3RyKCc8L2Rpdj4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwogIH0gZWxzZSB7CiAgICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdTdGF0aXN0aWNzJykgLiAnPC9sZWdlbmQ+Jyk7CiAgICBidWZmZXI6OnN0cihfXygnVGhlcmUgYXJlIG5vIGF2YWlsYWJsZSBzdGF0aXN0aWNzJykpOwogICAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CiAgfQp9CgovKioqKiogRnVuY3Rpb25zIGRlY2xhcmF0aW9uICoqKioqLwpmdW5jdGlvbiBzYXZlUmVmZXJlckxpc3QoJHJlZmVyZXJBcnJheSwgJGZpbGVOYW1lKSB7CiAgJHRtcFJlZmVyZXJzRmlsZSA9IGRpcm5hbWUoX19GSUxFX18pLicvdG1wLnR4dCc7CgogIGlmICghKCRmcG9pbnRlciA9IGZvcGVuKCR0bXBSZWZlcmVyc0ZpbGUsICd3KycpKSkgewogICAgYnVmZmVyOjpzdHIoJzxoND4nIC4gX18oJ0NvdWxkIG5vdCBjcmVhdGUgdGVtcCBmaWxlJykgLiAnICcgLiAkdG1wUmVmZXJlcnNGaWxlLiAnPC9oND4nKTsKICAgIHJldHVybiBmYWxzZTsKICB9IGVsc2UgewogICAgJGxvb3AgPSAwOwogICAgd2hpbGUgKCRsb29wIDwgY291bnQoJHJlZmVyZXJBcnJheSkpIHsKICAgICAgZndyaXRlKCRmcG9pbnRlciwgJHJlZmVyZXJBcnJheVskbG9vcF0uIlxuIik7CiAgICAgICRsb29wKys7CiAgICB9CiAgICBmY2xvc2UoJGZwb2ludGVyKTsKICAgIGlmICghY29weSgkdG1wUmVmZXJlcnNGaWxlLCAkZmlsZU5hbWUpKSB7CiAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnQ291bGQgbm90IGNvcHkgdGVtcCBmaWxlJykgLiAnICcgLiAkdG1wUmVmZXJlcnNGaWxlLicgJy4gX18oJ3RvIGZpbmFsIGZpbGUnKSAuICcgJyAuICRmaWxlTmFtZSAuICc8L2g0PicpOwogICAgICAgdW5saW5rKCR0bXBSZWZlcmVyc0ZpbGUpOwogICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSBlbHNlIHsKICAgICAgIHVubGluaygkdG1wUmVmZXJlcnNGaWxlKTsKICAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KfQoKZnVuY3Rpb24gc2F2ZU9wdGlvbnMoJiRwb3N0KSB7CiAgJHRtcE9wdGlvbnNGaWxlID0gZGlybmFtZShfX0ZJTEVfXykuJy9yZWZlcmVyc19vcHRpb25zLnBocCc7CiAgJG9wdGlvbnNGaWxlID0gRENfU0hBUkVfRElSLicvYmxvY2tyZWZlcmVyL3JlZmVyZXJzX29wdGlvbnMucGhwJzsKCiAgaWYgKCEoJGZwb2ludGVyID0gZm9wZW4oJHRtcE9wdGlvbnNGaWxlLCAndysnKSkpIHsKICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdDb3VsZCBub3QgY3JlYXRlIHRlbXAgZmlsZScpIC4gJyAnIC4gJHRtcE9wdGlvbnNGaWxlLiAnPC9oND4nKTsKICAgIHJldHVybiBmYWxzZTsKICB9IGVsc2UgewogICAgZndyaXRlKCRmcG9pbnRlciwgJzw/cGhwJy4iXG4iKTsKICAgIGZ3cml0ZSgkZnBvaW50ZXIsICckb3B0X2NoYXJzZXQ9IicuZGNfZW5jb2RpbmcuIlwiO1xuIik7CiAgICAkcG9zdGNvdW50ID0gY291bnQoJHBvc3QpOwogICAgJGxvb3AgPSAwOwogICAgcmVzZXQoJHBvc3QpOwogICAgd2hpbGUgKCRsb29wIDwgJHBvc3Rjb3VudCkgewogICAgICAkcG9zdGtleSA9IGtleSgkcG9zdCk7CiAgICAgIGlmICgkcG9zdGtleSAhPSAnb3B0aW9ucycpIHsKICAgICAgICBmd3JpdGUoJGZwb2ludGVyLCAnJCcuJHBvc3RrZXkuJz0iJy5zdHJfcmVwbGFjZSgnIicsJ1wiJyxjdXJyZW50KCRwb3N0KSkuIlwiO1xuIik7CiAgICAgIH0KICAgICAgbmV4dCgkcG9zdCk7CiAgICAgICRsb29wKys7CiAgICB9CiAgICBmd3JpdGUoJGZwb2ludGVyLCAnPz4nKTsKICAgIGZjbG9zZSgkZnBvaW50ZXIpOwogICAgaWYgKCFjb3B5KCR0bXBPcHRpb25zRmlsZSwgJG9wdGlvbnNGaWxlKSkgewogICAgICAgYnVmZmVyOjpzdHIoJzxoND4nIC4gX18oJ0NvdWxkIG5vdCBjb3B5IHRlbXAgZmlsZScpIC4gJyAnIC4gJHRtcE9wdGlvbnNGaWxlLicgJy4gX18oJ3RvIGZpbmFsIGZpbGUnKSAuICcgJyAuICRvcHRpb25zRmlsZSAuICc8L2g0PicpOwogICAgfSBlbHNlIHsKICAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZCcpIC4gJzwvaDQ+Jyk7CiAgICB9CiAgICB1bmxpbmsoJHRtcE9wdGlvbnNGaWxlKTsKICB9Cn0KPz4K";}}