BAhJIgL4EDxwPlRoZSBBcGFjaGUgV2lja2V0IFBNQyBhbm5vdW5jZXMgQXBhY2hlIFdpY2tldCA2LjkuMSE8L3A+Cgo8cD5UaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSBmb3IgNi45LjAgd2hlcmUgd2UgaW5hZHZlcnRlbnRseSBicm9rZSBDREkKaW5qZWN0aW9uIGludG8gKGFtb25nc3Qgb3RoZXJzKSBhbm9ueW1vdXMgaW5uZXIgY2xhc3Nlcy4gU2VlIGJlbG93CmZvciBtb3JlIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGlzIHJlbGVhc2UuPC9wPgoKPHA+UGxlYXNlIG5vdGUgdGhhdCB0aGlzIHBhdGNoIHJlbGVhc2UgPHN0cm9uZz5vbmx5PC9zdHJvbmc+IGZpeGVzIFdJQ0tFVC01MjY0LjwvcD4KCjxwPlN0YXJ0aW5nIHdpdGggV2lja2V0IDYgd2UgdXNlIHNlbWFudGljIHZlcnNpb25pbmcgZm9yIHRoZSBmdXR1cmUKZGV2ZWxvcG1lbnQgb2YgV2lja2V0LCBhbmQgYXMgc3VjaCBubyBBUEkgYnJlYWtzIGFyZSBwcmVzZW50IGluIHRoaXMKcmVsZWFzZSBjb21wYXJlZCB0byA2LjAuMC48L3A+Cgo8aDMgaWQ9ImpxdWVyeS11cGRhdGUtaW4tNjkwIj5KUXVlcnkgdXBkYXRlIGluIDYuOS4wPC9oMz4KCjxwPkFzIG9mIFdpY2tldCA2Ljkgd2Ugc2hpcCBKUXVlcnkgMS4xMC4xLiBUaGUgSlF1ZXJ5IHByb2plY3QgaGFzCmRlY2lkZWQgdG8gcmVtb3ZlIGRlcHJlY2F0ZWQgQVBJcyBmcm9tIHRoZWlyIGNvZGViYXNlIGZyb20gSlF1ZXJ5IDEuOQphbmQgdXAuIFRoaXMgbWVhbnMgdGhhdCBKUXVlcnkgcGx1Z2lucyB1c2luZyB0aGVzZSBkZXByZWNhdGVkIEFQSXMgbm8KbG9uZ2VyIHdvcmsuIFNlZSB0aGUgSlF1ZXJ5IG1pZ3JhdGlvbiBndWlkZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiwKYXZhaWxhYmxlIGZyb20gaHR0cDovL2pxdWVyeS5jb20vdXBncmFkZS1ndWlkZS8xLjkvPC9wPgoKPHA+SWYgeW91ciBhcHBsaWNhdGlvbiBkZXBlbmRzIG9uIHRoZXNlIGRlcHJlY2F0ZWQgQVBJcyB5b3UgY2FuIGVhc2lseQpkb3duZ3JhZGUgdG8gSlF1ZXJ5IDEuOC4zLXRoZSBwcmV2aW91c2x5IHByb3ZpZGVkIEpRdWVyeSB0aGF0IHN0aWxsCmNvbnRhaW5zIHRoZXNlIEFQSXMuIERvd25sb2FkIHRoZSAxLjguMyByZWxlYXNlIG9mIGpxdWVyeSBhbmQgYWRkIGl0CnRvIHlvdXIgcHJvamVjdCBpbiBpdHMgYXBwbGljYXRpb27igJlzIGluaXQgbWV0aG9kOjwvcD4KCjxmaWd1cmUgY2xhc3M9ImhpZ2hsaWdodCI+PHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtamF2YSIgZGF0YS1sYW5nPSJqYXZhIj48c3BhbiBjbGFzcz0ibmQiPkBPdmVycmlkZTwvc3Bhbj4gCjxzcGFuIGNsYXNzPSJrZCI+cHJvdGVjdGVkPC9zcGFuPiA8c3BhbiBjbGFzcz0ia3QiPnZvaWQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJuZiI+aW5pdDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+KCk8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj57PC9zcGFuPgogICAgPHNwYW4gY2xhc3M9Im4iPmdldEphdmFTY3JpcHRMaWJyYXJ5U2V0dGluZ3M8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPigpPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJvIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJuYSI+c2V0SlF1ZXJ5UmVmZXJlbmNlPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJuIj55b3VySnF1ZXJ5MTgzUmVzb3VyY2VSZWZlcmVuY2U8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPik7PC9zcGFuPgo8c3BhbiBjbGFzcz0ibyI+fTwvc3Bhbj48L2NvZGU+PC9wcmU+PC9maWd1cmU+Cgo8aDMgaWQ9ImNkaS1pbmplY3Rpb24taXNzdWUiPkNESSBpbmplY3Rpb24gaXNzdWU8L2gzPgoKPHA+SW4gdGhlIENESSByZWxlYXNlcyBvZiBXZWxkIDIuMC4xIGFuZCBwcmlvciwgaXQgd2FzIGFzc3VtZWQgdGhhdAppbmplY3Rpb24gaW4gYW5vbnltb3VzIGlubmVyIGNsYXNzZXMgd2FzIG5vdCBsZWdhbCBhbmQgd2hlbgphdHRlbXB0ZWQsIGl0IHJlc3VsdGVkIGluIGFuIGV4Y2VwdGlvbjo8L3A+Cgo8ZmlndXJlIGNsYXNzPSJoaWdobGlnaHQiPjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXRleHQiIGRhdGEtbGFuZz0idGV4dCI+Q2F1c2VkIGJ5OiBvcmcuamJvc3Mud2VsZC5leGNlcHRpb25zLkRlZmluaXRpb25FeGNlcHRpb246IFdFTEQtMDAwMDcwClNpbXBsZSBiZWFuIFtFbmhhbmNlZEFubm90YXRlZFR5cGVJbXBsXSBwcml2YXRlIGNsYXNzCmNvbS5leGFtcGxlLkhvbWVQYWdlJEFGb3JtIGNhbm5vdCBiZSBhIG5vbi1zdGF0aWMgaW5uZXIgY2xhc3M8L2NvZGU+PC9wcmU+PC9maWd1cmU+Cgo8cD5UaGlzIHdhcyByZXBvcnRlZCBhcwo8YSBocmVmPSJodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1dJQ0tFVC01MjI2Ij5XSUNLRVQtNTIyNjwvYT4sIGFzCml0IGJlY2FtZSBhbiBpc3N1ZSBpbiBHbGFzc2Zpc2ggNCwgd2hpY2ggc2hpcHMgd2l0aCBXZWxkIDIuMC4xIChvcgplYXJsaWVyKS4gV2UgaW1wbGVtZW50ZWQgYSBmaXggZm9yIHRoaXMgcGFydGljdWxhciBpc3N1ZSBieSBub3QKaW5qZWN0aW5nIGludG8gYW5vbnltb3VzIGlubmVyIGNsYXNzZXMuPC9wPgoKPHA+VW5mb3J0dW5hdGVseSB0aGlzIHdhcyBub3QgYSBidWcgdGhhdCBuZWVkZWQgZml4aW5nIG9uIG91ciBwYXJ0LCBidXQKcmF0aGVyIGluIHRoZSBXZWxkIGZyYW1ld29yayAoc2VlCjxhIGhyZWY9Imh0dHBzOi8vaXNzdWVzLmpib3NzLm9yZy9icm93c2UvV0VMRC0xNDQxIj5XRUxELTE0NDE8L2E+KTwvcD4KCjxwPlRoZXJlZm9yZSB3ZSByZXZlcnRlZCB0aGUgY29tbWl0cyBkb25lIGZvciBXSUNLRVQtNTIyNiBhbmQgaG9wZSB0aGF0CkdsYXNzZmlzaCB3aWxsIHVwZ3JhZGUgdGhlaXIgV2VsZCBpbXBsZW1lbnRhdGlvbiBzb29uLiBGb3IgdGhlIHdob2xlCnN0b3J5IHJlYWQKPGEgaHJlZj0iaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9XSUNLRVQtNTI2NCI+V0lDS0VULTUyNjQ8L2E+PC9wPgoKPGgzIGlkPSJ1c2luZy10aGlzLXJlbGVhc2UiPlVzaW5nIHRoaXMgcmVsZWFzZTwvaDM+Cgo8cD5XaXRoIEFwYWNoZSBNYXZlbiB1cGRhdGUgeW91ciBkZXBlbmRlbmN5IHRvIChhbmQgZG9u4oCZdCBmb3JnZXQgdG8KdXBkYXRlIGFueSBvdGhlciBkZXBlbmRlbmNpZXMgb24gV2lja2V0IHByb2plY3RzIHRvIHRoZSBzYW1lIHZlcnNpb24pOjwvcD4KCjxmaWd1cmUgY2xhc3M9ImhpZ2hsaWdodCI+PHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UteG1sIiBkYXRhLWxhbmc9InhtbCI+PHNwYW4gY2xhc3M9Im50Ij4mbHQ7ZGVwZW5kZW5jeSZndDs8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDtncm91cElkJmd0Ozwvc3Bhbj5vcmcuYXBhY2hlLndpY2tldDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9ncm91cElkJmd0Ozwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O2FydGlmYWN0SWQmZ3Q7PC9zcGFuPndpY2tldC1jb3JlPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2FydGlmYWN0SWQmZ3Q7PC9zcGFuPgogICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7dmVyc2lvbiZndDs8L3NwYW4+Ni45LjE8c3BhbiBjbGFzcz0ibnQiPiZsdDsvdmVyc2lvbiZndDs8L3NwYW4+CjxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9kZXBlbmRlbmN5Jmd0Ozwvc3Bhbj48L2NvZGU+PC9wcmU+PC9maWd1cmU+Cgo8cD5PciBkb3dubG9hZCBhbmQgYnVpbGQgdGhlIGRpc3RyaWJ1dGlvbiB5b3Vyc2VsZiwgb3IgdXNlIG91cgpjb252ZW5pZW5jZSBiaW5hcnkgcGFja2FnZTwvcD4KCjx1bD4KICA8bGk+U291cmNlOiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzYuOS4xIj42LjkuMSBzb3VyY2UgZG93bmxvYWQ8L2E+PC9saT4KICA8bGk+QmluYXJ5OiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzYuOS4xL2JpbmFyaWVzIj42LjkuMSBiaW5hcnkgZG93bmxvYWQ8L2E+PC9saT4KPC91bD4KCjxoMyBpZD0idXBncmFkaW5nLWZyb20tZWFybGllci12ZXJzaW9ucyI+VXBncmFkaW5nIGZyb20gZWFybGllciB2ZXJzaW9uczwvaDM+Cgo8cD5JZiB5b3UgdXBncmFkZSBmcm9tIDYueS56IHRoaXMgcmVsZWFzZSBpcyBhIGRyb3AgaW4gcmVwbGFjZW1lbnQuIElmCnlvdSBjb21lIGZyb20gYSB2ZXJzaW9uIHByaW9yIHRvIDYuMC4wLCBwbGVhc2UgcmVhZCBvdXIgV2lja2V0IDYKbWlncmF0aW9uIGd1aWRlIGZvdW5kIGF0PC9wPgoKPHVsPgogIDxsaT48YSBocmVmPSJodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L1dJQ0tFVC9NaWdyYXRpb24rdG8rV2lja2V0KzYuMCI+bWlncmF0aW9uIHRvIFdpY2tldCA2LjA8L2E+PC9saT4KPC91bD4KCjxwPkhhdmUgZnVuITwvcD4KCjxwPuKAlCBUaGUgV2lja2V0IHRlYW08L3A+CgY6BkVU