PD9waHAKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQlyZXF1aXJlX29uY2UoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICIvZWNsaXBzZS5vcmctY29tbW9uL3N5c3RlbS9hcHAuY2xhc3MucGhwIik7CXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL25hdi5jbGFzcy5waHAiKTsgCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL21lbnUuY2xhc3MucGhwIik7IAkkQXBwIAk9IG5ldyBBcHAoKTsJJE5hdgk9IG5ldyBOYXYoKTsJJE1lbnUgCT0gbmV3IE1lbnUoKTsJCWluY2x1ZGUoIl9wcm9qZWN0Q29tbW9uLnBocCIpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgoJCgkjCgkjIEJlZ2luOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzLiAgQ2hhbmdlIHRoZXNlLiAKCSRwYWdlVGl0bGUgCQk9ICJMYSBzb3J0aWUgc2ltdWx0YW7pZSBFY2xpcHNlIEluZGlnbyBlc3QgbWFpbnRlbmFudCBkaXNwb25pYmxlIjsKCSRwYWdlS2V5d29yZHMJPSAiZWxpcHNlLCBpbmRpZ28sIGphdmEiOwoJJHBhZ2VBdXRob3IJCT0gIklhbiBTa2VycmV0dCI7CgkKCSMgQWRkIHBhZ2Utc3BlY2lmaWMgTmF2IGJhcnMgaGVyZQoJIyBGb3JtYXQgaXMgTGluayB0ZXh0LCBsaW5rIFVSTCAoY2FuIGJlIGh0dHA6Ly93d3cuc29tZW90aGVyc2l0ZS5jb20vKSwgdGFyZ2V0IChfc2VsZiwgX2JsYW5rKQoJIyAkTmF2LT5hZGRDdXN0b21OYXYoIk15IExpbmsiLCAibXlwYWdlLnBocCIsICJfc2VsZiIpOwoJIyAkTmF2LT5hZGRDdXN0b21OYXYoIkdvb2dsZSIsICJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIiwgIl9ibGFuayIpOwoKCSMgRW5kOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzCgkjCgkKCSMgUGFzdGUgeW91ciBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgRU9IVE1MIG1hcmtlcnMhCQoJJGh0bWwgPSA8PDxFT0hUTUwKCTxzdHlsZT4KCQkucGFkZGVkbGlzdCBsaSB7CXBhZGRpbmctYm90dG9tOjdweDsJfQoJPC9zdHlsZT4KCQo8ZGl2IGlkPSJtYWluY29udGVudCI+Cgk8ZGl2IGlkPSJtaWRjb2x1bW4iPgoJCgkJPGgxPiRwYWdlVGl0bGU8L2gxPgoJCQoJCQogIDxwPjxzdHJvbmc+T3R0YXdhLCBDYW5hZGEgLSBKdW5lIDIyLCAyMDExPC9zdHJvbmc+IC0gTGEgZm9uZGF0aW9uIEVjbGlwc2UgZXN0IGhldXJldXNlIGQnYW5ub25jZXIgbCdhcnJpdullIGRlIEluZGlnbywgbGEgc29ydGllIHNpbXVsdGFu6WUgYW5udWVsbGUgcG91ciAyMDExLiBQb3VyIGxhIGh1aXRp6G1lIGFubullIAogIGNvbnPpY3V0aXZlLCBsYSBjb21tdW5hdXTpIEVjbGlwc2UgYSBsaXZy6SBzaW11bHRhbultZW50IHNlcyBwcm9qZXRzIOAgbCdoZXVyZS4gSW5kaWdvIGVzdCBkaXNwb25pYmxlIGTocyBtYWludGVuYW50IGF1IHTpbOljaGFyZ2VtZW50IOAgbCdhZHJlc3NlIHN1aXZhbnRlIDogPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9kb3dubG9hZHMiPnd3dy5lY2xpcHNlLm9yZy9kb3dubG9hZHM8L2E+LgogIDwvcD4KCjxzdHJvbmc+TGVzIGNoaWZmcmVzIGNs6XM8L3N0cm9uZz4KPHVsPgo8bGk+NjIgcHJvamV0cyBvbnQgcGFydGljaXDpIOAgSW5kaWdvCjxsaT40NiBtaWxsaW9ucyBkZSBsaWduZXMgZGUgY29kZSBsaXZy6WVzIGxlIG3qbWUgam91ciAoY2FsY3Vs6SBwYXIgT2hsb2gpCjxsaT40MDggZOl2ZWxvcHBldXJzIG9udCBjb250cmlidekgZHUgY29kZQo8bGk+NDkgb3JnYW5pc2F0aW9ucyBvbnQgY29sbGFib3LpCjxsaT4xMCBwYWNrYWdlcyBwculk6WZpbmlzIChKYXZhLCBKYXZhRUUsIE1vZGVsaW5nLCBldGMuKSBwZXJtZXR0ZW50IHVuIHTpbOljaGFyZ2VtZW50IGV0IHVuZSB1dGlsaXNhdGlvbiBzaW1wbGlmaelzCjwvdWw+Cgo8cD5MZXMgZ3JhbmRlcyBub3V2ZWF1dOlzIGRlIEluZGlnbyBpbmNsdWVudCBkZSBub3V2ZWxsZXMgZm9uY3Rpb25uYWxpdOlzIHBvdXIgbGVzIGTpdmVsb3BwZXVycyBKYXZhLCBkZXMgaW5ub3ZhdGlvbnMgZGFucyBsZXMgdGVjaG5vbG9naWVzIGRlIG1vZOlsaXNhdGlvbiwgZXQgZGVzIGF2YW5j6WVzIGRhbnMgbGVzIAp0ZWNobm9sb2dpZXMgRWNsaXBzZSBSdW50aW1lLjwvcD4KCjxzdHJvbmc+Tm91dmVsbGVzIGZvbmN0aW9ubmFsaXTpcyBjbOlzIHBvdXIgbGVzIGTpdmVsb3BwZXVycyBKYXZhPC9zdHJvbmc+Cjx1bD4KPGxpPkVHaXQgMS4wIGZvdXJuaXQgbGUgc3VwcG9ydCBkZSBwcmVtaWVyIG5pdmVhdSBwb3VyIGxlcyBk6XZlbG9wcGV1cnMgSmF2YSBzZSBiYXNhbnQgc3VyIEdpdCBjb21tZSBvdXRpbCBkZSBnZXN0aW9uIGRlIGNvZGUgc291cmNlLgo8bGk+V2luZG93QnVpbGRlciwgY29uc3RydWN0ZXVyIGQnSUhNIGRlIGdyYW5kZSByZW5vbW3pZSBiYXPpIHN1ciBFY2xpcHNlLCBlc3QgbWFpbnRlbmFudCBkaXNwb25pYmxlIGVuIHRhbnQgcXVlIHByb2pldCBvcGVuIHNvdXJjZSBFY2xpcHNlLgo8bGk+TGVzIHRlc3RzIGZvbmN0aW9ubmVscyBhdXRvbWF0aXPpcyBkJ0lITSBwb3VyIGxlcyBhcHBsaWNhdGlvbnMgSmF2YSBldCBIVE1MIHNvbnQgaW5jbHVzIHZpYSBKdWJ1bGEuCjxsaT5tMmVjbGlwc2UgYXBwb3J0ZSB1bmUgZm9ydGUgaW506WdyYXRpb24gYXZlYyBNYXZlbiBldCBsZSB3b3Jrc3BhY2UgRWNsaXBzZSBwZXJtZXR0YW50IGF1eCBk6XZlbG9wcGV1cnMgZGUgdHJhdmFpbGxlciBhdmVjIGRlcyBwcm9qZXRzIE1hdmVuIGRpcmVjdGVtZW50IOAgcGFydGlyIGQnRWNsaXBzZS4KPGxpPk15bHluIDMuNiBzdXBwb3J0ZSBsZSBjb250cvRsZSBkZXMgYnVpbGRzIEh1ZHNvbiBkaXJlY3RlbWVudCDgIHBhcnRpciBkdSB3b3Jrc3BhY2UgRWNsaXBzZS4KPGxpPkVjbGlwc2UgTWFya2V0cGxhY2UgQ2xpZW50IHN1cHBvcnRlIG1haW50ZW5hbnQgbGVzIGluc3RhbGxhdGlvbnMgZW4gZHJhZy1hbmQtZHJvcCBkZSBzb2x1dGlvbnMsIGJhc+llcyBzdXIgRWNsaXBzZSwgZGlyZWN0ZW1lbnQgZGFucyBFY2xpcHNlIDsgZmFjaWxpdGFudCBsJ2luc3RhbGxhdGlvbiBkZSBub3V2ZWxsZXMgc29sdXRpb25zLgo8L3VsPgoKPHN0cm9uZz5Ob3V2ZWxsZXMgaW5ub3ZhdGlvbnMgZGFucyBFY2xpcHNlIE1vZGVsaW5nPC9zdHJvbmc+Cjx1bD4KPGxpPlh0ZXh0IDIuMCBhIGFqb3V06SBkZSBub3V2ZWxsZXMgZm9uY3Rpb25uYWxpdOlzIHBvdXIgbGVzIERTTHMgKERvbWFpbi1zcGVjaWZpYyBsYW5ndWFnZXMpIDogMSkgcG9zc2liaWxpdOkgZGUgY3LpZXIgZGVzIERTTHMgYXZlYyBkZXMgZXhwcmVzc2lvbnMg4CBsYSBKYXZhOyAyKSBYdGVuZCwgdW4gbm91dmVhdSBsYW5nYWdlIApxdWkgcGVybWV0IGQnaW506WdyZXIgbGEgZ+lu6XJhdGlvbiBkZSBjb2RlIGRhbnMgdW4gZW52aXJvbm5lbWVudCBFY2xpcHNlOyAzKSB1biBub3V2ZWF1IGZyYW1ld29yayBkZSByZWZhY3RvcmluZyBwb3VyIERTTHMuCjxsaT5BY2NlbGVvIDMuMSBpbnToZ3JlIGxhIGfpbulyYXRpb24gZGUgY29kZSBkYW5zIGxlcyBjaGHubmVzIGRlIGJ1aWxkIEFudCBldCBNYXZlbiwgZXQgaW5jbHV0IGRlcyBhbelsaW9yYXRpb25zIHBvdXIgbCfpZGl0aW9uIGRlIGfpbulyYXRldXIuCjxsaT5DRE8gTW9kZWwgUmVwb3NpdG9yeSA0LjAgaW506GdyZSBwbHVzaWV1cnMgYmFzZXMgZGUgZG9ubullcyBOb1NRTCB0ZWxsZXMgcXVlIE9iamVjdGl2aXR5L0RCLCBNb25nb0RCLCBldCBEQjQwLiBEZXMgb3B0aW1pc2F0aW9ucyBkZSBjYWNoZSBldCBhdXRyZXMgYW3pbGlvcmF0aW9ucyBwZXJtZXR0ZW50IGQnYXZvaXIgZGVzIG1vZOhsZXMgZGUgcGx1c2lldXJzIGdpZ2FvY3RldHMuCjxsaT5FTUYgMi43IGZhY2lsaXRlIGxhIHLpcGxpY2F0aW9uIGRlcyBjaGFuZ2VtZW50cyDgIHRyYXZlcnMgbGVzIHN5c3TobWVzIGRpc3RyaWJ16XMgZGUgZmHnb24gb3B0aW1pc+llIDogdW4gY2xpZW50IHBldXQgcmVudm95ZXIgdmVycyBsZSBzZXJ2ZXVyIHVuZSBkZXNjcmlwdGlvbiBtaW5pbWFsZSBkZXMgY2hhbmdlbWVudHMgcGx1dPR0IHF1ZSBkZSByZW52b3llciB0b3RhbGVtZW50IGxhIG5vdXZlbGxlIGluc3RhbmNlLCBhcmJpdHJhaXJlbWVudCBsYXJnZS4KPGxpPkVjbGlwc2UgRXh0ZW5kZWQgRWRpdGluZyBGcmFtZXdvcmsgKEVFRikgMS4wIGfpbuhyZSBkZXMg6WRpdGV1cnMgRU1GIGF2YW5j6XMgZXQgZGVzaWducyBlbiB1biBjbGljLgo8bGk+RU1GIENvbXBhcmUgMS4yIGFwcG9ydGUgdW4gc3VwcG9ydCBk6WRp6SBVTUwgZXQgZXN0IGNvbXBs6XRlbWVudCBpbnTpZ3LpIGF2ZWMgbGVzIG91dGlscyBkZSBnZXN0aW9uIGRlIGNvZGUgc291cmNlLgo8bGk+RU1GIEZhY2V0LCBub3V2ZWF1IHByb2pldCwgcGVybWV0IGQn6XRlbmRyZSB1biBt6XRhbW9k6GxlIEVjb3JlIGV4aXN0YW50IHNhbnMgbW9kaWZpY2F0aW9uLgo8L3VsPgoKCjxzdHJvbmc+QXZhbmPpZXMgRWNsaXBzZVJUPC9zdHJvbmc+Cjx1bD4KPGxpPkVjbGlwc2VMaW5rIDIuMyBzdXBwb3J0ZSBsZXMgZW50aXTpcyBKUEEgq6BtdWx0aS10ZW5hbnSguywgcmVuZGFudCBwb3NzaWJsZSBkJ2luY29ycG9yZXIgbGEgcGVyc2lzdGFuY2UgSlBBIGRhbnMgZGVzIGFwcGxpY2F0aW9ucyBkZSB0eXBlIFNhYXMuCjxsaT5FcXVpbm94IDMuNyBpbXBs6W1lbnRlIG1haW50ZW5hbnQgbGVzIHNw6WNpZmljYXRpb25zIE9TR2kgNC4zLCBpbmNsdWFudCBsJ3V0aWxpc2F0aW9uIGRlIHNpZ25hdHVyZXMgZ+lu6XJpcXVlcywgY2FwYWJpbGl0aWVzIGfpbulyaXF1ZXMsIGV0IHJlcXVpcmVtZW50cyBwb3VyIGxlcyBidW5kbGVzLgo8bGk+RWNsaXBzZSBDb21tdW5pY2F0aW9uIEZyYW1ld29yayAoRUNGKSBpbXBs6W1lbnRlIGxlcyBzdGFuZGFyZCBSZW1vdGUgU2VydmljZSBldCBSZW1vdGUgU2VydmljZSBBZG1pbiBPU0dpIDQuMi4KPGxpPlJpZW5hIDMuMCBzdXBwb3J0ZSBtYWludGVuYW50IGxhIGNy6WF0aW9uIGQnYXBwbGljYXRpb25zIGRlIG5hdmlnYXRldXIgd2ViIGVuIHV0aWxpc2FudCBFY2xpcHNlIFJBUC4KPC91bD4KCjxzdHJvbmc+TGUgbW90IGR1IGRpcmVjdGV1cjwvc3Ryb25nPjxicj4Kk05vdXMgc29tbWVzIHRy6HMgZmllcnMgZGUgY+ls6WJyZXIgdW5lIG5vdXZlbGxlIHNvcnRpZSBzaW11bHRhbullIGFubnVlbGxlIGRlIGxhIGNvbW11bmF1dOkgRWNsaXBzZZQgZOljbGFyZSBNaWtlIE1pbGlua292aWNoLCBkaXJlY3RldXIgZXjpY3V0aWYgZGUgbGEgZm9uZGF0aW9uIEVjbGlwc2UuIAqTQ2V0dGUgc29ydGllIGEgdW5lIGxvbmd1ZSBsaXN0ZSBkZSBub3V2ZWxsZXMgZm9uY3Rpb25uYWxpdOlzLCBlbiBwYXJ0aWN1bGllciBwb3VyIGxlcyBk6XZlbG9wcGV1cnMgSmF2YS4gRGVzIGZvbmN0aW9ubmFsaXTpcyBjb21tZSBsZSBzdXBwb3J0IGRlIEdpdCwgbCdpbnTpZ3JhdGlvbiBkZSBNYXZlbiBldCBIdWRzb24sIHVuIApjb25zdHJ1Y3RldXIgZCdJSE0gYXZlYyBXaW5kb3dCdWlsZGVyLCBldCBub3RyZSBub3V2ZWwgb3V0aWwgZGUgdGVzdCBKdWJ1bGEsIGonZW4gc3VpcyBjZXJ0YWluLCBtb3RpdmVudCBsZXMgZOl2ZWxvcHBldXJzIGQnZXNzYXllciBJbmRpZ28ulAogCgoJPC9kaXY+CgoJPCEtLSByZW1vdmUgdGhlIGVudGlyZSA8ZGl2PiB0YWcgdG8gb21pdCB0aGUgcmlnaHQgY29sdW1uISAgLS0+Cgk8ZGl2IGlkPSJyaWdodGNvbHVtbiI+CgkJPGRpdiBjbGFzcz0ic2lkZWl0ZW0iPgoJCQk8aDY+UmVsYXRlZCBMaW5rczwvaDY+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvaW5kaWdvLyI+SW5kaWdvIFNpdGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvaW5kaWdvL2ZyaWVuZHMucGhwIj5JbmRpZ28gNTAwPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2Rvd25sb2FkcyI+RG93bmxvYWQ8L2E+PC9saT4KCQkJPC91bD4KCQk8L2Rpdj4KCTwvZGl2PgkKPC9kaXY+CgoKRU9IVE1MOwoJJGh0bWwgPSBtYl9jb252ZXJ0X2VuY29kaW5nKCRodG1sLCAiSFRNTC1FTlRJVElFUyIsICJJU08tODg1OS0xIik7CgkkcGFnZVRpdGxlID0gbWJfY29udmVydF9lbmNvZGluZygkcGFnZVRpdGxlLCAiSFRNTC1FTlRJVElFUyIsICJJU08tODg1OS0xIik7CgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cj8+CgoK