PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cgo8IS0tIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDA2LiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgLS0+CjwhLS0gU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIC0tPgo8IS0tIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KSAtLT4KPGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9CiAgICAiSFRNTCBUaWR5IGZvciBXaW5kb3dzICh2ZXJzIDFzdCBBdWd1c3QgMjAwMiksIHNlZSB3d3cudzMub3JnIj4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vYm9vc3QuY3NzIj4KCiAgICA8dGl0bGU+Qm9vc3QuUHl0aG9uIC0gQWNrbm93bGVkZ21lbnRzPC90aXRsZT4KICA8L2hlYWQ+CgogIDxib2R5IGxpbms9IiMwMDAwZmYiIHZsaW5rPSIjODAwMDgwIj4KICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI3IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9CiAgICAiaGVhZGVyIj4KICAgICAgPHRyPgogICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjMwMCI+CiAgICAgICAgICA8aDM+PGEgaHJlZj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtIj48aW1nIGhlaWdodD0iODYiIHdpZHRoPSIyNzciCiAgICAgICAgICBhbHQ9IkMrKyBCb29zdCIgc3JjPSIuLi8uLi8uLi8uLi9ib29zdC5wbmciIGJvcmRlcj0iMCI+PC9hPjwvaDM+CiAgICAgICAgPC90ZD4KCiAgICAgICAgPHRkIHZhbGlnbj0idG9wIj4KICAgICAgICAgIDxoMSBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5Cb29zdC5QeXRob248L2E+PC9oMT4KCiAgICAgICAgICA8aDIgYWxpZ249ImNlbnRlciI+QWNrbm93bGVkZ21lbnRzPC9oMj4KICAgICAgICA8L3RkPgogICAgICA8L3RyPgogICAgPC90YWJsZT4KICAgIDxocj4KCiAgICA8cD48YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9wZW9wbGUvZGF2ZV9hYnJhaGFtcy5odG0iPkRhdmUgQWJyYWhhbXM8L2E+IGlzCiAgICB0aGUgYXJjaGl0ZWN0LCBkZXNpZ25lciwgYW5kIGltcGxlbWVudG9yIG9mIDxiPkJvb3N0LlB5dGhvbjwvYj4uPC9wPgoKICAgIDxwPjxhIGhyZWY9Im1haWx0bzpicmV0dC5jYWxjb3R0QHBhcmFkaXNlLm5ldC5ueiI+QnJldHQgQ2FsY290dDwvYT4KICAgIGNvbnRyaWJ1dGVkIGFuZCBtYWludGFpbnMgdGhlIFZpc3VhbCBTdHVkaW8gcHJvamVjdCBmaWxlcyBhbmQKICAgIGRvY3VtZW50YXRpb24uPC9wPgoKICAgIDxwPjxhIGhyZWY9Im1haWx0bzpHb3R0ZnJpZWQuR2Fuc3NhdWdlLWF0LWhhdWZlLmRlIj5Hb3R0ZnJpZWQKICAgIEdhbt9hdWdlPC9hPiBzdXBwbGllZCBzdXBwb3J0IGZvciBvcGFxdWUgcG9pbnRlciBjb252ZXJzaW9ucywKICAgIGNvbXBsZXRlIHdpdGggZG9jdW1lbnRhdGlvbiBhbmQgYSByZWdyZXNzaW9uIHRlc3QgKGFuZCBJIGRpZG4ndAogICAgZXZlbiBoYXZlIHRvIGFzayBoaW0gZm9yIHRob3NlKSEKCiAgICA8cD5Kb2VsIGRlIEd1em1hbiBpbXBsZW1lbnRlZCB0aGUgPGEgaHJlZj0ib3ZlcmxvYWRzLmh0bWwiPmRlZmF1bHQKICAgIGFyZ3VtZW50IHN1cHBvcnQ8L2E+IGFuZCB3cm90ZSB0aGUgZXhjZWxsZW50IDxhIGhyZWY9CiAgICAiLi4vdHV0b3JpYWwvaW5kZXguaHRtbCI+dHV0b3JpYWwgZG9jdW1lbnRhdGlvbjwvYT4uPC9wPgoKICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL3Blb3BsZS9yYWxmX3dfZ3Jvc3NlX2t1bnN0bGV2ZS5odG0iPlJhbGYgVy4KICAgIEdyb3NzZS1LdW5zdGxldmU8L2E+IGltcGxlbWVudGVkIHRoZSA8YSBocmVmPSJwaWNrbGUuaHRtbCI+cGlja2xlCiAgICBzdXBwb3J0PC9hPiwgYW5kIGhhcyBlbnRodXNpYXN0aWNhbGx5IHN1cHBvcnRlZCB0aGUgbGlicmFyeSBzaW5jZSBpdHMKICAgIGJpcnRoLCBjb250cmlidXRpbmcgdG8gZGVzaWduIGRlY2lzaW9ucyBhbmQgcHJvdmlkaW5nIGludmFsdWFibGUKICAgIHJlYWwtd29ybGQgaW5zaWdodCBpbnRvIHVzZXIgcmVxdWlyZW1lbnRzLiBSYWxmIGhhcyB3cml0dGVuIHNvbWUgPGEgaHJlZj0KICAgICJmYXEuaHRtbCNxdWVzdGlvbjIiPmV4dGVuc2lvbnM8L2E+IGZvciBjb252ZXJ0aW5nIEMrKyBjb250YWluZXJzIHRoYXQgSQogICAgaG9wZSB3aWxsIGJlIGluY29ycG9yYXRlZCBpbnRvIHRoZSBsaWJyYXJ5IHNvb24uIEhlIGFsc28gaW1wbGVtZW50ZWQgdGhlCiAgICBjcm9zcy1tb2R1bGUgc3VwcG9ydCBpbiB0aGUgZmlyc3QgdmVyc2lvbiBvZiBCb29zdC5QeXRob24uIE1vcmUKICAgIGltcG9ydGFudGx5LCBSYWxmIG1ha2VzIHN1cmUgbm9ib2R5IGZvcmdldHMgdGhlIG5lYXItcGVyZmVjdCBzeW5lcmd5IG9mCiAgICBDKysgYW5kIFB5dGhvbiBmb3Igc29sdmluZyB0aGUgcHJvYmxlbXMgb2YgbGFyZ2Utc2NhbGUgc29mdHdhcmUKICAgIGNvbnN0cnVjdGlvbi48L3A+CgogICAgPHA+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvcGVvcGxlL2FsZWtzZXlfZ3VydG92b3kuaHRtIj5BbGVrc2V5IEd1cnRvdm95PC9hPgogICAgd3JvdGUgYW4gaW5jcmVkaWJsZSBDKysgPGEgaHJlZj0iaHR0cDovL3d3dy5teXdpa2luZXQuY29tL21wbCI+VGVtcGxhdGUKICAgIE1ldGFwcm9ncmFtbWluZyBMaWJyYXJ5PC9hPiB3aGljaCBhbGxvd3MgQm9vc3QuUHl0aG9uIHRvIHBlcmZvcm0gbXVjaCBvZgogICAgaXRzIGNvbXBpbGUtdGltZSBtYWdpYy4gSW4gYWRkaXRpb24sIEFsZWtzZXkgdmVyeSBnZW5lcm91c2x5IGNvbnRyaWJ1dGVkCiAgICBoaXMgdGltZSBhbmQgZGVlcCBrbm93bGVkZ2Ugb2YgdGhlIHF1aXJrcyBvZiB2YXJpb3VzIGJ1Z2d5IGNvbXBpbGVycyB0bwogICAgaGVscCB1cyBnZXQgYXJvdW5kIHByb2JsZW1zIGF0IGNydWNpYWwgbW9tZW50cy48L3A+CgogICAgPHA+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvcGVvcGxlL3BhdWxfbWVuc29uaWRlcy5odG0iPlBhdWwgTWVuc29uaWRlczwvYT4sCiAgICBidWlsZGluZyBvbiB0aGUgd29yayA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9wZW9wbGUvdmVzYV9rYXJ2b25lbi5odG0iPlZlc2EKICAgIEthcnZvbmVuPC9hPiwgd3JvdGUgYSBzaW1pbGFybHkgYW1hemluZyA8YSBocmVmPQogICAgIi4uLy4uLy4uL3ByZXByb2Nlc3Nvci9kb2MvaW5kZXguaHRtbCI+UHJlcHJvY2Vzc29yIE1ldGFwcm9ncmFtbWluZwogICAgTGlicmFyeTwvYT4sIGFuZCBnZW5lcm91c2x5IGNvbnRyaWJ1dGVkIHRoZSB0aW1lIGFuZCBleHBlcnRpc2UgdG8gZ2V0IGl0CiAgICB3b3JraW5nIGluIHRoZSBCb29zdC5QeXRob24gbGlicmFyeSwgcmV3cml0aW5nIG11Y2ggb2YgQm9vc3QuUHl0aG9uIHRvCiAgICB1c2UgdGhlIG5ldyBwcmVwcm9jY2Vzc29yIG1ldGFwcm9ncmFtbWluZyBjb25zdHJ1Y3RzIGFuZCBoZWxwaW5nIHVzIHRvCiAgICB3b3JrIGFyb3VuZCBidWdneSBhbmQgc2xvdyBDKysgcHJlcHJvY2Vzc29ycy48L3A+CgogICAgPHA+PGEgaHJlZj0ibWFpbHRvOm5pY29kZW11cy1hdC1nbG9iYWxpdGUuY29tLmJyIj5CcnVubyBkYSBTaWx2YSBkZQogICAgT2xpdmVpcmE8L2E+IGNvbnRyaWJ1dGVkIHRoZSBpbmdlbmlvdXMgPGEKICAgIGhyZWY9Ii4uLy4uL3B5c3RlL2luZGV4Lmh0bWwiPlB5c3RlPC9hPiAoJnF1b3Q7UGllLVN0ZWgmcXVvdDspCiAgICBjb2RlIGdlbmVyYXRvci4KCiAgICA8cD48YSBocmVmPSJtYWlsdG86bmlja21Ac2l0aXVzLmNvbSI+Tmlrb2xheSBNbGFkZW5vdjwvYT4gY29udHJpYnV0ZWQKICAgIDxjb2RlPnN0YXRpY21ldGhvZDwvY29kZT4gc3VwcG9ydC48L3A+CgogICAgPHA+TWFydGluIENhc2FkbyBzb2x2ZWQgc29tZSBzdGlja3kgcHJvYmxlbXMgd2hpY2ggYWxsb3cgdXMgdG8gYnVpbGQgdGhlCiAgICBCb29zdC5QeXRob24gc2hhcmVkIGxpYnJhcnkgZm9yIEFJWCdzIGNyYXp5IGR5bmFtaWMgbGlua2luZyBtb2RlbC48L3A+CgogICAgPHA+PGEgaHJlZj0ibWFpbHRvOmFjaGltQHByb2NvZGVycy5uZXQiPkFjaGltIERvbW1hPC9hPiBjb250cmlidXRlZCBzb21lCiAgICBvZiB0aGUgPGEgaHJlZj0icmVmZXJlbmNlLmh0bWwjb2JqZWN0X3dyYXBwZXJzIj5PYmplY3QgV3JhcHBlcnM8L2E+IGFuZAogICAgSFRNTCB0ZW1wbGF0ZXMgZm9yIHRoaXMgZG9jdW1lbnRhdGlvbi4gRGF2ZSBIYXdrZXMgY29udHJpYnV0ZWQKICAgIGluc3BpcmF0aW9uIGZvciB0aGUgdXNlIG9mIHRoZSA8Y29kZT48YSBocmVmPQogICAgInNjb3BlLmh0bWwjc2NvcGUtc3BlYyI+c2NvcGU8L2E+PC9jb2RlPiBjbGFzcyB0byBzaW1wbGlmeSBtb2R1bGUKICAgIGRlZmluaXRpb24gc3ludGF4LiBQZWFydSBQZWFyc29uIHdyb3RlIHNvbWUgb2YgdGhlIHRlc3QgY2FzZXMgdGhhdCBhcmUgaW4KICAgIHRoZSBjdXJyZW50IHRlc3Qgc3VpdGUuPC9wPgoKICAgIDxwPlRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIHZlcnNpb24gb2YgQm9vc3QuUHl0aG9uIHdhcyBmdW5kZWQgaW4gcGFydCBieQogICAgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cubGxubC5nb3YvIj5MYXdyZW5jZSBMaXZlcm1vcmUgTmF0aW9uYWwKICAgIExhYm9yYXRvcmllczwvYT4gYW5kIGJ5IHRoZSA8YSBocmVmPSJodHRwOi8vY2NpLmxibC5nb3YvIj5Db21wdXRhdGlvbmFsCiAgICBDcnlzdGFsbG9ncmFwaHkgSW5pdGlhdGl2ZTwvYT4gYXQgTGF3cmVuY2UgQmVya2VsZXkgTmF0aW9uYWwKICAgIExhYm9yYXRvcmllcy48L3A+CgogICAgPHA+PGEgaHJlZj0iaHR0cDovL2tvZ3Mtd3d3LmluZm9ybWF0aWsudW5pLWhhbWJ1cmcuZGUvfmtvZXRoZS8iPlVsbHJpY2gKICAgIEtvZXRoZTwvYT4gaGFkIGluZGVwZW5kZW50bHkgZGV2ZWxvcGVkIGEgc2ltaWxhciBzeXN0ZW0uIFdoZW4gaGUKICAgIGRpc2NvdmVyZWQgQm9vc3QuUHl0aG9uIHYxLCBoZSBnZW5lcm91c2x5IGNvbnRyaWJ1dGVkIGNvdW50bGVzcyBob3VycyBvZgogICAgY29kaW5nIGFuZCBtdWNoIGluc2lnaHQgaW50byBpbXByb3ZpbmcgaXQuIEhlIGlzIHJlc3BvbnNpYmxlIGZvciBhbiBlYXJseQogICAgdmVyc2lvbiBvZiB0aGUgc3VwcG9ydCBmb3IgZnVuY3Rpb24gb3ZlcmxvYWRpbmcgYW5kIHdyb3RlIHRoZSBzdXBwb3J0IGZvcgogICAgcmVmbGVjdGluZyBDKysgaW5oZXJpdGFuY2UgcmVsYXRpb25zaGlwcy4gSGUgaGFzIGhlbHBlZCB0byBpbXByb3ZlCiAgICBlcnJvci1yZXBvcnRpbmcgZnJvbSBib3RoIFB5dGhvbiBhbmQgQysrICh3ZSBob3BlIHRvIGRvIGFzIHdlbGwgaW4gdjIKICAgIGFnYWluIHNvb24pLCBhbmQgaGFzIGRlc2lnbmVkIHRoZSBvcmlnaW5hbCBzdXBwb3J0IGZvciBleHBvc2luZyBudW1lcmljCiAgICBvcGVyYXRvcnMsIGluY2x1ZGluZyBhIHdheSB0byBhdm9pZCBleHBsaWNpdCBjb2VyY2lvbiBieSBtZWFucyBvZgogICAgb3ZlcmxvYWRpbmcuPC9wPgoKICAgIDxwPlRoZSBtZW1iZXJzIG9mIHRoZSBib29zdCBtYWlsaW5nIGxpc3QgYW5kIHRoZSBQeXRob24gY29tbXVuaXR5CiAgICBzdXBwbGllZCBpbnZhbHVhYmxlIGVhcmx5IGZlZWRiYWNrLiBJbiBwYXJ0aWN1bGFyLCBSb24gQ2xhcmtlLCBNYXJrCiAgICBFdmFucywgQW50b24gR2x1Y2ssIENodWNrIEluZ29sZCwgUHJhYmh1IFJhbWFjaGFuZHJhbiwgYW5kIEJhcnJ5IFNjb3R0CiAgICB0b29rIHRoZSBicmF2ZSBzdGVwIG9mIHRyeWluZyB0byB1c2UgQm9vc3QuUHl0aG9uIHdoaWxlIGl0IHdhcyBzdGlsbCBpbgogICAgZWFybHkgc3RhZ2VzIG9mIGRldmVsb3BtZW50LjwvcD4KCiAgICA8cD5UaGUgZmlyc3QgdmVyc2lvbiBvZiBCb29zdC5QeXRob24gd291bGQgbm90IGhhdmUgYmVlbiBwb3NzaWJsZSB3aXRob3V0CiAgICB0aGUgc3VwcG9ydCBvZiBEcmFnb24gU3lzdGVtcywgd2hpY2ggc3VwcG9ydGVkIGl0cyBkZXZlbG9wbWVudCBhbmQKICAgIHJlbGVhc2UgYXMgYSBCb29zdCBsaWJyYXJ5LjwvcD4KICAgIDxocj4KCiAgICA8cD5SZXZpc2VkIAogICAgPCEtLXdlYmJvdCBib3Q9IlRpbWVzdGFtcCIgUy1UeXBlPSJFRElURUQiIFMtRm9ybWF0PSIlZCAlQiwgJVkiIHN0YXJ0c3BhbiAtLT4KICAgICAyNiBOb3ZlbWJlciwgMjAwMiAKICAgIDwhLS13ZWJib3QgYm90PSJUaW1lc3RhbXAiIGVuZHNwYW4gaS1jaGVja3N1bT0iMzkzNTkiIC0tPgogICAgPC9wPgoKICAgIDxwPjxpPiZjb3B5OyBDb3B5cmlnaHQgPGEgaHJlZj0KICAgICJodHRwOi8vd3d3LmJvb3N0Lm9yZy9wZW9wbGUvZGF2ZV9hYnJhaGFtcy5odG0iPkRhdmUgQWJyYWhhbXM8L2E+IDIwMDIuPC9pPjwvcD4KICA8L2JvZHk+CjwvaHRtbD4KCg==