PCEtLSAqKiogV2luZSBGQVEgKioqIC0tPgogIDx0aXRsZT5XaW5lIEZBUTwvdGl0bGU+CiAgPHBhcmE+CiAgICAgRm9yIHRlY2huaWNhbCBxdWVzdGlvbnMsIHZpc2l0IHRoZSAKICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5vcmcvZm9tLW1ldGEvY2FjaGUvMTkuaHRtbCI+CiAgICAgV2luZSBUcm91Ymxlc2hvb3RpbmcgR3VpZGU8L3VsaW5rPiBpbnN0ZWFkLgogIDwvcGFyYT4KCiAgPHFhbmRhc2V0PgogICAgPHFhbmRhZGl2IGlkPSJBYm91dC10aGlzLUZBUSI+PHRpdGxlPkFib3V0IHRoaXMgRkFRPC90aXRsZT4KICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hvLW1haW50YWlucy10aGlzLUZBUSI+CiAgICAgICAgPHBhcmE+V2hvIG1haW50YWlucyB0aGlzIEZBUSA/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPkRhdmUgR2FyZG5lciBtYWludGFpbmVkIGl0IGZyb20gMTk5NS0xOTk4LjwvcGFyYT4KICAgICAgICA8cGFyYT5Eb3VnbGFzIFJpZGd3YXkgKHJpZGd3YXlAd2luZWhxLmNvbSkgdG9vayBpdCBvdmVyIGluIDE5OTkuPC9wYXJhPgogICAgICAgIDxwYXJhPkFuZHJlYXMgTW9ociAoYW1vaHJAY29kZXdlYXZlcnMuY29tKSBjb252ZXJ0ZWQgaXQgdG8gRkFRLU8tTWF0aWMgaW4gMjAwMC48L3BhcmE+CiAgICAgICAgPHBhcmE+RGltaXRyaWUgTy4gUGF1biwgS2VpdGggTWF0dGhld3MgYW5kIFRob21hcyBXaWNrbGluZSByZW9yZ2FuaXNlZCBpdCBpbiAyMDAyLjwvcGFyYT4KICAgICAgICA8cGFyYT5Gb3Igc3VnZ2VzdGlvbnMvYWRkaXRpb25zL2NvbXBsYWludHMgcmVnYXJkaW5nIHRoaXMgRkFRLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0bwogICAgICAgIDx1bGluayB1cmw9Im1haWx0bzp3aW5lLWZhcUB3aW5laHEub3JnIj53aW5lLWZhcUB3aW5laHEub3JnPC91bGluaz48L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoYXQtaXMtdGhlLWNvcHlyaWdodC1vbi10aGUtRkFRLUFuZCI+CiAgICAgICAgPHBhcmE+V2hhdCBpcyB0aGUgY29weXJpZ2h0IG9uIHRoZSBGQVEgPyBBbmQgaG93IG1heSBJIHVzZSBpdCA/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPlRoZSBvcmlnaW5hbCBXaW5lIEZBUSwgd2hpY2ggdGhpcyBGQVEgd2FzIGJhc2VkIG9uLCB3YXMgY29weXJpZ2h0ICZjb3B5OyAxOTk1LTE5OTggRGF2aWQgR2FyZG5lci48L3BhcmE+CiAgICAgICAgPHBhcmE+SXQgbWF5IGJlIHJlcHJvZHVjZWQgYW5kIG1vZGlmaWVkIHVuZGVyIHRoZSBzYW1lIHRlcm1zIGFzIFdpbmUgaXRzZWxmLjwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KICAgIDwvcWFuZGFkaXY+CiAgICA8cWFuZGFkaXYgaWQ9IkdlbmVyYWwtUXVlc3Rpb25zLWFib3V0LVdpbmUiPgogICAgICA8dGl0bGU+R2VuZXJhbCBRdWVzdGlvbnMgYWJvdXQgV2luZTwvdGl0bGU+CiAgICAgIDxxYW5kYWVudHJ5PgoKICAgICAgPHF1ZXN0aW9uIGlkPSJXaGF0LWlzLVdpbmUtYW5kLXdoYXQtaXMtaXQtc3VwcG9zZWQtdG8iPgogICAgICAgIDxwYXJhPldoYXQgaXMgV2luZSBhbmQgd2hhdCBpcyBpdCBzdXBwb3NlZCB0byBkbyA/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBpcyBhIHByb2dyYW0gd2hpY2ggYWxsb3dzIHRoZSBvcGVyYXRpb24gb2YgRE9TIGFuZCBNUwogICAgICAgICAgV2luZG93cyBwcm9ncmFtcyAoV2luZG93cyAzLnggYW5kIFdpbjMyIGV4ZWN1dGFibGVzKSBvbiBVTklYLiAKICAgICAgICAgIEl0IGNvbnNpc3RzIG9mIGEgcHJvZ3JhbSBsb2FkZXIsIHdoaWNoIGxvYWRzIGFuZCBleGVjdXRlcyBhIFdpbmRvd3MKICAgICAgICAgIGJpbmFyeSwgYW5kIGEgbGlicmFyeSB0aGF0IGltcGxlbWVudHMgV2luZG93cyBBUEkgY2FsbHMgdXNpbmcKICAgICAgICAgIHRoZWlyIFVOSVggb3IgWDExIGVxdWl2YWxlbnRzLiBUaGUgbGlicmFyeSBtYXkgYWxzbyBiZSB1c2VkIAogICAgICAgICAgZm9yIHBvcnRpbmcgV2luMzIgY29kZSBpbnRvIG5hdGl2ZSBVTklYIGV4ZWN1dGFibGVzLCBvZnRlbgogICAgICAgICAgd2l0aG91dCBtYW55IGNoYW5nZXMgaW4gdGhlIHNvdXJjZS4gV2luZSBpcyBmcmVlIHNvZnR3YXJlLCAKICAgICAgICAgIGFuZCBpdHMgbGljZW5zZSAoY29udGFpbmVkIGluIHRoZSBmaWxlIExJQ0VOU0UKICAgICAgICAgIGluIGVhY2ggZGlzdHJpYnV0aW9uKSBpcyBMR1BMIHN0eWxlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSXMtV2luZS1hbi1lbXVsYXRvciI+CiAgICAgICAgPHBhcmE+IElzIFdpbmUgYW4gZW11bGF0b3I/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgRm9ydHVuYXRlbHksIG5vLiBXaW5lIHByb3ZpZGVzIGxvdy1sZXZlbCBiaW5hcnkgY29tcGF0aWJpbGl0eSwgCiAgICAgICAgICBidXQgY3VycmVudGx5IG9ubHkgZm9yIE9TZXMgcnVubmluZyBvbiBJbnRlbC1jb21wYXRpYmxlIGNoaXBzLgogICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJBcmUtaGVyZS1hbnktYWx0ZXJuYXRpdmVzLXRvLVdpbmUiPgogICAgICAgIDxwYXJhPkFyZSB0aGVyZSBhbnkgYWx0ZXJuYXRpdmVzIHRvIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWWVzLCB0aGVyZSBhcmUuIFlvdSBjYW4gdXNlIFZNV2FyZSB0byBydW4gYSBXaW5kb3dzIGluc3RhbGxhdGlvbgogICAgICAgICAgaW5zaWRlIGEgdmlydHVhbCBtYWNoaW5lLCBvciB1c2UgV2luNExpbiB0byBydW4gYSBzcGVjaWFsbHkgCiAgICAgICAgICBhZGFwdGVkIFdpbmRvd3MgdmVyc2lvbiBvbiBMaW51eC4gQm90aCBzb2x1dGlvbnMgY29zdCBtb25leSBmb3IgCiAgICAgICAgICBib3RoIHRoZSBzb2Z0d2FyZSBpdHNlbGYgYW5kIGEgV2luZG93cyBsaWNlbnNlLgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CiAgICAgICAgIE5vdGUgdGhhdCwgbGlrZSBXaW5lLCB0aGV5IGNhbiBvbmx5IHVzZSB0aGUgaGFyZHdhcmUgcGxhdGZvcm0gdGhhdAogICAgICAgICB0aGUgdGFyZ2V0IHByb2dyYW1zIHdlcmUgb3JpZ2luYWxseSBjb21waWxlZCBmb3IgKHNlZSBiZWxvdykuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICAgICAKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iRGlmZmVyZW5jZS1iZXR3ZWVuLVdpbmUtYW5kLWVtdWxhdG9ycyI+CiAgICAgICAgPHBhcmE+V2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIFdpbmUgYW5kIHg4NiBoYXJkd2FyZSBlbXVsYXRvcnM/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgVGhlcmUgYXJlIHR3byBmcmVlIHg4NiBoYXJkd2FyZSBlbXVsYXRvcnM6CiAgICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vYm9jaHMuc291cmNlZm9yZ2UubmV0Ij4gYm9jaHM8L3VsaW5rPiwgYW5kIAogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvcHJvamVjdHMvcGxleDg2Ij4gcGxleDg2PC91bGluaz4uCiAgICAgICA8L3BhcmE+CgogICAgICAgPHBhcmE+CiAgICAgICAgICBQbGV4ODYgaXMgdGhlIG9wZW5zb3VyY2UgZnJlZS1zb2Z0d2FyZSBhbHRlcm5hdGl2ZSBmb3IgVk1XYXJlLAoJICBWaXJ0dWFsUEMsIGFuZCBvdGhlciBJQS0zMiBvbiBJQS0zMiAiVmlydHVhbCBQQyBwcm9kdWN0cy4iIEl0CiAgICAgICAgICBjYW4gb25seSBydW4gb24gdGhlIElBLTMyIGFyY2hpdGVjdHVyZS4KICAgICAgIDwvcGFyYT4KCiAgICAgICA8cGFyYT4KICAgICAgICAgIEJvY2hzIGlzIGEgaGlnaGx5IHBvcnRhYmxlIG9wZW4gc291cmNlIElBLTMyICh4ODYpIFBDIGVtdWxhdG9yIAogICAgICAgICAgd3JpdHRlbiBpbiBDKyssIHRoYXQgcnVucyBvbiBtb3N0IHBvcHVsYXIgcGxhdGZvcm1zLiBJdCBpbmNsdWRlcyBlbXVsYXRpb24KICAgICAgICAgIG9mIHRoZSBJbnRlbCB4ODYgQ1BVLCBjb21tb24gSS9PIGRldmljZXMsIGFuZCBhIGN1c3RvbSBCSU9TLiBDdXJyZW50bHksIAogICAgICAgICAgYm9jaHMgY2FuIGJlIGNvbXBpbGVkIHRvIGVtdWxhdGUgYSAzODYsIDQ4NiBvciBQZW50aXVtIENQVS4gQm9jaHMgaXMgY2FwYWJsZSAKICAgICAgICAgIG9mIHJ1bm5pbmcgbW9zdCBPcGVyYXRpbmcgU3lzdGVtcyBpbnNpZGUgdGhlIGVtdWxhdGlvbiBpbmNsdWRpbmcgTGludXgsIAogICAgICAgICAgV2luZG93c64gOTUsIERPUywgYW5kIHJlY2VudGx5IFdpbmRvd3OuIE5UIDQuCiAgICAgICA8L3BhcmE+CgogICAgICAgPHBhcmE+CiAgICAgICAgICBCb3RoIGFyZSBsaWNlbnNlZCB1bmRlciB0aGUgR1BMLiBCb2NocyBpcyBvbGRlciB0aGFuIHBsZXg4Niwgc2VlbXMgdG8gYmUgCiAgICAgICAgICBlYXNpZXIgdG8gaW5zdGFsbCwgYnV0IHBsZXg4NiB3aWxsIHJ1biBmYXN0ZXIgYmVjYXVzZSBwbGV4ODYgdXNlcyBhIHJlYWwgCiAgICAgICAgICB0aW1lIGJpbmFyeSBjb21waWxlci4gVGhlIGRyYXdiYWNrIG9mIGFsbCBlbXVsYXRvcnMgaXMgdGhhdCB5b3UgbmVlZCBhIHZlcnNpb24gCiAgICAgICAgICBvZiBXaW5kb3dzIGluIG9yZGVyIHRvIHJ1biBXaW5kb3dzLgogICAgICAgPC9wYXJhPgoKICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoeS13b3VsZC1hbnlvbmUtd2FudC1XaW5lLVdpbmRvd3Mtc3VjayI+CiAgICAgICAgPHBhcmE+V2h5IHdvdWxkIGFueW9uZSB3YW50IFdpbmU/IERvZXNuJ3QgV2luZG93cyBzdWNrPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEZpcnN0IFdpbmUgaXMgbm90IGFib3V0IHJ1bm5pbmcgV2luZG93cyBidXQgYWJvdXQgcnVubmluZyBXaW5kb3dzIAogICAgICAgICAgYXBwbGljYXRpb25zLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFNvIGlmIGFsbCB5b3VyIGNvbXB1dGluZyBuZWVkcyBhcmUgZnVsZmlsbGVkIGJ5IG5hdGl2ZSBVbml4IAogICAgICAgICAgYXBwbGljYXRpb25zLCB0aGVuIHlvdSBkbyBub3QgbmVlZCBXaW5lIGFuZCBzaG91bGQgbm90IGJlIHVzaW5nCiAgICAgICAgICBpdC4gSG93ZXZlciwgaWYgeW91IGRlcGVuZCBvbiBvbmUgb3IgbW9yZSBvZiB0aGUgdGVucyBvZiAKICAgICAgICAgIHRob3VzYW5kcyBvZiBXaW5kb3dzIGFwcGxpY2F0aW9ucywgdGhlbiBXaW5lIGlzIHRoZSBiZXN0IHdheSB0bwogICAgICAgICAgdXNlIGl0IHdpdGhvdXQgZ2l2aW5nIHVwIG9uIFVuaXguIExldCdzIGxvb2sgYXQgdGhlIGFsdGVybmF0aXZlcwogICAgICAgICAgdG8gc2VlIHdoeToKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGUgbW9zdCBvYnZpb3VzIGFsdGVybmF0aXZlIGlzIHRvIGR1YWwtYm9vdC4gVGhpcyBpcyB0aGUgc29sdXRpb24KICAgICAgICAgIHRoYXQgcHJvdmlkZXMgdGhlIGJlc3QgY29tcGF0aWJpbGl0eS4gSG93ZXZlciBpdCByZXF1aXJlcyB0aGF0IHlvdQogICAgICAgICAgYWNxdWlyZSBhIFdpbmRvd3MgbGljZW5zZSBhbmQgdGhlbiBkZWRpY2F0ZSBhIGdvb2QgY2h1bmsgb2YgeW91ciAKICAgICAgICAgIGhhcmQtZHJpdmUgdG8gV2luZG93cy4gQnV0IHRoZSB3b3JzdCBpcyB5ZXQgdG8gY29tZS4gRWFjaCB0aW1lIHlvdQogICAgICAgICAgd2lsbCB3YW50IHRvIHVzZSB0aGF0IGFwcGxpY2F0aW9uIHlvdSB3aWxsIGhhdmUgdG8gcmVib290IHRvIAogICAgICAgICAgV2luZG93cy4gVGhpcyBpcyBlc3BlY2lhbGx5IHNpZ25pZmljYW50IGlmIGV4dGVybmFsIGZhY3RvcnMgZGljdGF0ZQogICAgICAgICAgd2hlbiB5b3UgbXVzdCB1c2UgdGhpcyBhcHBsaWNhdGlvbiAoZS5nLiBjcmVkaXQgY2FyZCB0byBwcm9jZXNzLCAKICAgICAgICAgIGVtYWlsIHRvIHJldHJpZXZlIGZyb20gYSBMb3R1cyBOb3RlcyBzZXJ2ZXIpLiBUaGVuIHlvdSB3aWxsIGZpbmQKICAgICAgICAgIHlvdXJzZWxmIGZvcmNlZCB0byBjbG9zZSBhbGwgeW91ciBMaW51eCBhcHBsaWNhdGlvbnMganVzdCB0byBydW4KICAgICAgICAgIHRoYXQgb25lIFdpbmRvd3MgYXBwbGljYXRpb24uIFlvdSBtYXkgcXVpY2tseSBnZXQgdGlyZWQgb2YgdGhpcywgb3IKICAgICAgICAgIHdpbGwgZmluZCB0aGF0IHN1Y2ggYSBzaXR1YXRpb24gaXMgaW1wb3NzaWJsZSB0byBqdXN0aWZ5IGluIGEgCiAgICAgICAgICBidXNpbmVzcyBlbnZpcm9ubWVudC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGUgbmV4dCBzb2x1dGlvbiBpcyB0byBpbnN0YWxsIHZpcnR1YWwgbWFjaGluZSBlbXVsYXRpb24gc29mdHdhcmUKICAgICAgICAgIHN1Y2ggYXMgVk1XYXJlLCBXaW40TGluIG9yIFBsZXg4Ni4gVGhlbiB5b3UgY2FuIHVzZSB3aW5kb3dzIAogICAgICAgICAgYXBwbGljYXRpb25zIHdpdGhvdXQgc3VmZmVyaW5nIHN1Y2ggYSBiaWcgZGlzcnVwdGlvbi4gQnV0IGl0IHN0aWxsCiAgICAgICAgICByZXF1aXJlcyB0aGF0IHlvdSBhY3F1aXJlIGEgV2luZG93cyBsaWNlbnNlIGFuZCBkZWRpY2F0ZSBhcyBtdWNoIAogICAgICAgICAgZGlzayBzcGFjZSB0byBXaW5kb3dzLiBGdXJ0aGVybW9yZSB5b3Ugd2lsbCBwYXkgZm9yIHRoZSBhZGRlZCAKICAgICAgICAgIGNvbnZlbmllbmNlOiBpZiB1c2luZyBWTVdhcmUgb3IgV2luNExpbiB5b3UgaGF2ZSB0byBidXkgYW5vdGhlciAKICAgICAgICAgIGxpY2Vuc2UsIGFuZCBtb3JlIGltcG9ydGFudGx5IHlvdSBub3cgaGF2ZSB0byBkZWRpY2F0ZSBhIGdvb2QgY2h1bmsKICAgICAgICAgIG9mIHlvdXIgY29tcHV0ZXIncyBtZW1vcnkgdG8gdGhlIHZpcnR1YWwgbWFjaGluZS4gUGVyZm9ybWFuY2Ugd2lsbAogICAgICAgICAgdGFrZSBhIHNpZ25pZmljYW50IGhpdCB0b28uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgVXNpbmcgV2luZSBsZXRzIHlvdSBhdm9pZCBhbGwgb2YgdGhhdCBvdmVyaGVhZDogV2luZG93cyBsaWNlbnNlLAogICAgICAgICAgaGFyZC1kcml2ZSBzcGFjZSByZXF1aXJlZCBieSBXaW5kb3dzLCBtZW1vcnkgYW5kIHBlcmZvcm1hbmNlIGhpdCAKICAgICAgICAgIHRha2VuIGJ5IGVtdWxhdGVkIHZpcnR1YWwgbWFjaGluZXMuIE5vdyB5b3UgY2FuIHN0YXJ0IHlvdXIgV2luZG93cwogICAgICAgICAgYXBwbGljYXRpb24gc3RyYWlnaHQgZnJvbSB5b3VyIHJlZ3VsYXIgZGVza3RvcCBlbnZpcm9ubWVudCwgcGxhY2UKICAgICAgICAgIHRoYXQgYXBwbGljYXRpb24ncyB3aW5kb3cgc2lkZSBieSBzaWRlIHdpdGggbmF0aXZlIGFwcGxpY2F0aW9uIAogICAgICAgICAgd2luZG93cywgY29weS9wYXN0ZSBmcm9tIG9uZSB0byB0aGUgb3RoZXIsIGFuZCBydW4gaXQgYWxsIGF0IGZ1bGwgc3BlZWQuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSXQgaXMgYWxzbyBhIHByZXR0eSB2aXRhbCBwYXJ0IG9mIG1pZ3JhdGluZyBhIGxhcmdlIG9yZ2FuaXNhdGlvbiwKICAgICAgICAgIHlvdSBjYW4ndCBjaGFuZ2UgYSA1MDAwIGRlc2t0b3Agc2V0dXAgb3Zlcm5pZ2h0IHdpdGhvdXQgYSBsb3Qgb2Ygcmlzay4KICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoaWNoLW9uZS1vZi10aGUtZGlmZmVyZW50LVdpbmUtcGFja2FnZXMiPgogICAgICAgIDxwYXJhPldoaWNoIG9uZSBvZiB0aGUgZGlmZmVyZW50IFdpbmUgcGFja2FnZXMgb3V0IHRoZXJlIGlzIGdvb2QgZm9yIG1lPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEN1cnJlbnRseSB0aGVyZSBpcyBhIGJyb2FkIHNlbGVjdGlvbiBvZiBkaWZmZXJlbnQgV2luZSBwYWNrYWdlcy92ZXJzaW9uczoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHZhcmlhYmxlbGlzdD4KCgkgIDx2YXJsaXN0ZW50cnk+CiAgICAgICAgICAgPHRlcm0+PHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tIj5XaW5lPC91bGluaz48L3Rlcm0+CiAgICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgIFRoaXMgaXMgdGhlICJzdGFuZGFyZCIgc291cmNlIGRpc3RyaWJ1dGlvbiBvZiBXaW5lLiBJdHMgbGljZW5zZSBpcyAKICAgICAgICAgICAgICBMR1BMLCBpdCBjYW4gYmUgZG93bmxvYWRlZCBmb3IgZnJlZS4gCiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKCSAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgIDx0ZXJtPjx1bGluayB1cmw9Imh0dHA6Ly9yZXdpbmQuc291cmNlZm9yZ2UubmV0Ij5SZVdpbmU8L3VsaW5rPjwvdGVybT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgVGhpcyBpcyBhIGZvcmtlZCBXaW5lIHRyZWUgdGhhdCBnb3QgY3JlYXRlZCB3aGVuIFdpbmUgY2hhbmdlZCBpdHMKICAgICAgICAgICAgICBsaWNlbnNlIGZyb20gWDExIHRvIHRoZSBtb3JlIHJlc3RyaWN0aXZlIExHUEwsIGluIG9yZGVyIHRvIGxldCAKICAgICAgICAgICAgICBwZW9wbGUgY29udGludWUgdG8gbWFpbnRhaW4gYW4gWDExIGxpY2Vuc2VkIFdpbmUgdmVyc2lvbi4gSXRzIAogICAgICAgICAgICAgIGxpY2Vuc2UgaXMgWDExLCBpdCBjYW4gYmUgZG93bmxvYWRlZCBmb3IgZnJlZS4gCiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDwvdmFybGlzdGVudHJ5PgogCgkgIDx2YXJsaXN0ZW50cnk+CiAgICAgICAgICA8dGVybT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LnRyYW5zZ2FtaW5nLmNvbSI+VHJhbnNnYW1pbmcncyBXaW5lWDwvdWxpbms+PC90ZXJtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICBUaGlzIGlzIFRyYW5zR2FtaW5nJ3MgV2luZSB2ZXJzaW9uIHNwZWNpYWxseSBzdWl0ZWQgZm9yIGdhbWVzLiAKICAgICAgICAgICAgICBJdCBpbmNsdWRlcyBEaXJlY3QzRCBzdXBwb3J0ICh0aHVzIGl0cyBEaXJlY3RYIHN1cHBvcnQgaXMgbXVjaAogICAgICAgICAgICAgIG1vcmUgY29tcGxldGUgdGhhbiBXaW5lJ3MpIGFuZCBjb3B5cHJvdGVjdGlvbiBzdXBwb3J0LiBJdHMgbGljZW5zZQogICAgICAgICAgICAgIGlzIEFGUEwsIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uIGNhbiBiZSBkb3dubG9hZGVkIGZvciBmcmVlLCBidXQgCiAgICAgICAgICAgICAgdGhlIGJpbmFyeSBwYWNrIGFnZXMgdGhhdCBpbmNsdWRlIGNvcHkgcHJvdGVjdGlvbiBzdXBwb3J0IGFuZCBnb29kCiAgICAgICAgICAgICAgc3VwcG9ydCBhcmUgb25seSBmb3Igc3Vic2NyaWJlZCBjdXN0b21lcnMgKCQ1L21vbnRoKS4gCiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDwvdmFybGlzdGVudHJ5PgogCgkgIDx2YXJsaXN0ZW50cnk+CiAgICAgICAgICA8dGVybT48dWxpbmsgdXJsPSJodHRwOi8vd2luZS5jb2Rld2VhdmVycy5jb20iPkNvZGV3ZWF2ZXJzJyBXaW5lIHByZXZpZXc8L3VsaW5rPjwvdGVybT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgVGhpcyBpcyBhIHNwZWNpYWxseSBwYWNrYWdlZCBhbmQgbW9yZSBzdGFibGUvb2xkZXIgdmVyc2lvbiBvZiBXaW5lCiAgICAgICAgICAgICAgd2hpY2ggaGFzIGEgbmljZSBzZXR1cCBmb3IgZWFzeSBpbnN0YWxsYXRpb24uIExpY2Vuc2UgWDExLCBmcmVlIAogICAgICAgICAgICAgIGRvd25sb2FkLiAKICAgICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKCSAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgIDx0ZXJtPjx1bGluayB1cmw9Imh0dHA6Ly93d3cuY29kZXdlYXZlcnMuY29tL3Byb2R1Y3RzL2Nyb3Nzb3Zlci8iPkNvZGV3ZWF2ZXJzJyBDcm9zc292ZXIgUGx1Z2luPC91bGluaz48L3Rlcm0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgIFNwZWNpYWwgV2luZSBpbnN0YWxsYXRpb24gdG8gYmUgdXNlZCBmb3IgcnVubmluZyB3aW4zMiBicm93c2VyIAogICAgICAgICAgICAgIHBsdWdpbnMgc3VjaCBhcyBlLmcuIFF1aWNrdGltZSBpbiBMaW51eCBicm93c2Vycy4gQ29zdHMgJDI0Ljk1LiAKICAgICAgICAgICAgICBXZWxsIHdvcnRoIGl0ICh2ZXJ5IHN0YWJsZSBhbmQgdXNlZnVsIHBhY2thZ2luZykuIAogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPC92YXJsaXN0ZW50cnk+CgoJICA8dmFybGlzdGVudHJ5PgogICAgICAgICAgPHRlcm0+PHVsaW5rIHVybD0iaHR0cDovL3d3dy5jb2Rld2VhdmVycy5jb20vcHJvZHVjdHMvb2ZmaWNlLyI+Q29kZXdlYXZlcnMnIENyb3Nzb3ZlciBPZmZpY2U8L3VsaW5rPjwvdGVybT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgV2luZSB2ZXJzaW9uIHdpdGggc3BlY2lhbCBwYWNrYWdpbmcgdG8gbWFrZSBzdXJlIGFsbW9zdCBhbGwgCiAgICAgICAgICAgICAgaW1wb3J0YW50IE9mZmljZSB0eXBlIHByb2dyYW1zIHdvcmsgcHJldHR5IHdlbGwuIENvc3RzICQ1NC45NS4gCiAgICAgICAgICAgICAgU2VlbXMgdG8gYmUgd2VsbCB3b3J0aCBpdCBzbyBmYXIgYWNjb3JkaW5nIHRvIHNvbWUgY29tbWVudHMuIAogICAgICAgICAgICAgIChub3RlOiB5b3UncmUgc3VwcG9ydGluZyBhIGNvbXBhbnkgYWN0aXZlbHkgY29udHJpYnV0aW5nIHRvIHdpbmUKICAgICAgICAgICAgICBpZiB5b3UgZGVjaWRlIHRvIGJ1eSBlaXRoZXIgUGx1Z2luIG9yIE9mZmljZS4KICAgICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDwvdmFybGlzdGVudHJ5PgogCgkgIDx2YXJsaXN0ZW50cnk+CiAgICAgICAgICA8dGVybT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5vcmcvZG93bmxvYWQvIj5PdGhlciBwYWNrYWdlZCB2ZXJzaW9ucyBvZiBXaW5lPC91bGluaz48L3Rlcm0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgIFZhcmlvdXMgd2luZSBwYWNrYWdlcyBjYW4gYmUgZG93bmxvYWRlZCBmb3IgZnJlZSwgdG8gYmUgZm91bmQgYXQgCiAgICAgICAgICAgICAgV2luZSBIUS4gVGhleSdyZSBub3Qgb2ZmaWNpYWxseSBwYWNrYWdlZCBieSBXaW5lIEhRLCBhbmQgYXMgc3VjaCAKICAgICAgICAgICAgICBtYXkgaGF2ZSBzb21lIGNvbmZpZ3VyYXRpb24gaW5jb25zaXN0ZW5jaWVzLgogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaGF0cy10aGUtaGlzdG9yeS1vZi1XaW5lIj4KICAgICAgICA8cGFyYT5XaGF0J3MgdGhlIGhpc3Rvcnkgb2YgV2luZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGUgV2luZSBwcm9qZWN0IHN0YXJ0ZWQgaW4gMTk5MyBhcyBhIHdheSB0byBzdXBwb3J0IHJ1bm5pbmcgV2luZG93cyAzLjEKICAgICAgICAgIHByb2dyYW1zIG9uIExpbnV4LiBCb2IgQW1zdGFkdCB3YXMgdGhlIG9yaWdpbmFsIGNvb3JkaW5hdG9yLCBidXQgdHVybmVkCiAgICAgICAgICBpdCBvdmVyIGZhaXJseSBlYXJseSBvbiB0byBBbGV4YW5kcmUgSnVsbGlhcmQsIHdobyBoYXMgcnVuIGl0IGV2ZXIgCiAgICAgICAgICBzaW5jZS4gQSA8dWxpbmsgdXJsPSJuZXdzOmNvbXAuZW11bGF0b3JzLm1zLXdpbmRvd3Mud2luZSI+bmV3c2dyb3VwPC91bGluaz4KICAgICAgICAgIHdhcyBjcmVhdGVkIGluIEp1bHkgMTk5NC4gT3ZlciB0aGUgeWVhcnMsIHBvcnRzIGZvcgogICAgICAgICAgb3RoZXIgVW5peGVzIGhhdmUgYmVlbiBhZGRlZCwgYWxvbmcgd2l0aCBzdXBwb3J0IGZvciBXaW4zMiBhcyBXaW4zMiAKICAgICAgICAgIGFwcGxpY2F0aW9ucyBiZWNhbWUgcG9wdWxhci4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9hYm91dC5zaHRtbCI+CiAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5jb20vYWJvdXQuc2h0bWw8L3VsaW5rPgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoYXQtaXMtdGhlLWN1cnJlbnQtdmVyc2lvbi1vZi1XaW5lIj4KICAgICAgICA8cGFyYT5XaGF0IGlzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgV2luZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBBIG5ldyB2ZXJzaW9uIG9mIFdpbmUgaXMgZGlzdHJpYnV0ZWQgYWJvdXQgZXZlcnkgbW9udGguIFlvdSB3aWxsIGJlIAogICAgICAgICAgYWJsZSB0byBrZWVwIHVwIG9uIGFsbCB0aGUgbGF0ZXN0IHJlbGVhc2VzIGJ5IHJlYWRpbmcgdGhlIG5ld3Nncm91cAogICAgICAgICAgPHVsaW5rIHVybD0ibmV3czpjb21wLmVtdWxhdG9ycy5tcy13aW5kb3dzLndpbmUiPgogICAgICAgICAgY29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lPC91bGluaz4sIG9yIGJ5IHZpc2l0aW5nIHRoZQogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tIj5XaW5lIEhRIGhvbWVwYWdlPC91bGluaz4uIFdoZW4KICAgICAgICAgIGRvd25sb2FkaW5nIFdpbmUgZnJvbSB5b3VyIEZUUCBzaXRlIG9mIGNob2ljZSAoc2VlCiAgICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20vZG93bmxvYWQuc2h0bWwiPnRoZSBEb3dubG9hZCBwYWdlPC91bGluaz4KICAgICAgICAgIGZvciBzb21lIG9mIHRoZXNlIGNob2ljZXMpLCB5b3UgY2FuIG1ha2Ugc3VyZSB0aGF0IHlvdSBhcmUgZ2V0dGluZyAKICAgICAgICAgIHRoZSBsYXRlc3QgdmVyc2lvbiBieSB3YXRjaGluZyB0aGUgdmVyc2lvbiBudW1iZXJzIGluIHRoZSBkaXN0cmlidXRpb24KICAgICAgICAgIGZpbGVuYW1lLiBGb3IgaW5zdGFuY2UsIHRoZSBkaXN0cmlidXRpb24gcmVsZWFzZWQgb24gT2N0b2JlciAzMSwgMjAwMgogICAgICAgICAgd2FzIGNhbGxlZCBXaW5lLTIwMDIxMDMxLnRhci5nei4gUGF0Y2ggZmlsZXMgYXJlIGFsc28gYXZhaWxhYmxlLiBJZgogICAgICAgICAgeW91IGFyZSBjdXJyZW50IHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uLCB5b3UgY2FuIGRvd25sb2FkIGFuZCBhcHBseSAKICAgICAgICAgIGp1c3QgdGhlIGN1cnJlbnQgcGF0Y2ggZmlsZSByYXRoZXIgdGhhbiB0aGUgZW50aXJlIG5ldyBkaXN0cmlidXRpb24uCiAgICAgICAgICBUaGUgcGF0Y2ggZmlsZW5hbWVzIGZvbGxvdyB0aGUgc2FtZSBjb252ZW50aW9ucyBhcyB0aGUgbW9udGhseSAKICAgICAgICAgIGRpc3RyaWJ1dGlvbi4gPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbCI+CiAgICAgICAgICBSZWFkLW9ubHkgQ1ZTPC91bGluaz4gYWNjZXNzIGlzIGFsc28gYXZhaWxhYmxlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoYXQtaXMtdGhlLWN1cnJlbnQtU3RhdHVzLW9mLVdpbmUiPgogICAgICAgIDxwYXJhPldoYXQgaXMgdGhlIGN1cnJlbnQgU3RhdHVzIG9mIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQXMgb2YgbWlkIDIwMDIsIFdpbmUgY29uc2lzdHMgb2Ygb3ZlciAxIG1pbGxpb24gbGluZXMgb2YgQyBjb2RlLAogICAgICAgICAgd3JpdHRlbiBieSBtb3JlIHRoYW4gMzAwIGRldmVsb3BlcnMgZnJvbSBkb3plbnMgb2YgY291bnRyaWVzIGFyb3VuZAogICAgICAgICAgdGhlIHdvcmxkLiBXaW5lIGlzIGluIGFjdGl2ZSB1c2UgYnkgYW4gZXN0aW1hdGVkIDEwMEsgcGVvcGxlLiBXaW5lCiAgICAgICAgICBpbXBsZW1lbnRzIG1vcmUgdGhhbiA5MCUgb2YgdGhlIGNhbGxzIGluIHBvcHVsYXIgV2luZG93cyAKICAgICAgICAgIHNwZWNpZmljYXRpb25zIHN1Y2ggYXMgRUNNQS0yMzQgYW5kIE9wZW4zMi4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZb3UgbWF5IGFsc28gd2FudCB0byBsb29rIGF0IHRoZQogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL2Fib3V0L2luZGV4LnBocD9zdGF0dXMiPgogICAgICAgICAgU3RhdHVzIHBhZ2U8L3VsaW5rPiBmb3IgYSBnbG9iYWwgdmlldyBvbiBXaW5lJ3MgaW1wbGVtZW50YXRpb24gcHJvZ3Jlc3MuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hlbi13aWxsLVdpbmUtYmUtZmluaXNoZWQiPgogICAgICAgIDxwYXJhPldoZW4gd2lsbCBXaW5lIGJlIGZpbmlzaGVkPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIExhcmdlIHNvZnR3YXJlIHByb2plY3RzIGFyZSBuZXZlciBmaW5pc2hlZCwgb25seSByZWxlYXNlZC4gSW4gYW55CiAgICAgICAgICBjYXNlIFdpbmUgaXMgY2hhc2luZyBhIG1vdmluZyB0YXJnZXQgc2luY2UgZXZlcnkgbmV3IHJlbGVhc2Ugb2YgCiAgICAgICAgICBXaW5kb3dzIGNvbnRhaW5zIG5ldyBBUEkgY2FsbHMgb3IgdmFyaWF0aW9ucyB0byB0aGUgZXhpc3Rpbmcgb25lcy4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBCZWNhdXNlIFdpbmUgaXMgYmVpbmcgZGV2ZWxvcGVkIGJ5IHZvbHVudGVlcnMsIGl0IGlzIGRpZmZpY3VsdCB0bwogICAgICAgICAgcHJlZGljdCB3aGVuIGl0IHdpbGwgYmUgcmVhZHkgZm9yIGdlbmVyYWwgcmVsZWFzZS4gQnV0IGR1ZSB0byB0aGUKICAgICAgICAgIG11Y2ggaW5jcmVhc2VkIGludGVyZXN0IGJ5IGNvbXBhbmllcyBpbiBwb3J0aW5nIGFwcHMgdmlhIFdpbmUsIFdpbmUKICAgICAgICAgIGRldmVsb3BtZW50IGlzIGNvbnN0YW50bHkgZ2V0dGluZyBtb3JlIGFuZCBtb3JlIGFjdGl2ZS4gUmlnaHQgbm93CiAgICAgICAgICB3ZSBhcmUgd29ya2luZyBvbiByZWxlYXNpbmcgV2luZSAwLjkgZHVyaW5nIDIwMDMKICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaG8taXMtcmVzcG9uc2libGUtZm9yLVdpbmUiPgogICAgICAgIDxwYXJhPldobydzIHJlc3BvbnNpYmxlIGZvciBXaW5lPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUgaXMgYXZhaWxhYmxlIHRoYW5rcyB0byB0aGUgd29yayBvZiBtYW55IHBlb3BsZS4gUGxlYXNlIHNlZSB0aGUKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9zb3VyY2UvQVVUSE9SUyI+QVVUSE9SUzwvdWxpbms+CiAgICAgICAgICBmaWxlIGluIHRoZSBkaXN0cmlidXRpb24gZm9yIHRoZSBjb21wbGV0ZSBsaXN0LiBTb21lIGNvbXBhbmllcyB0aGF0CiAgICAgICAgICBhcmUgb3IgaGF2ZSBiZWVuIGludm9sdmVkIHdpdGggV2luZSBkZXZlbG9wbWVudCBhcmUgQ29kZXdlYXZlcnMsCiAgICAgICAgICBUcmFuc0dhbWluZywgQ29yZWwsIGFuZCBNYWNhZGFtaWFuLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9ImZvbGtzLXdoby1jb250cmlidXRlZC1tb25leS1vci1lcXVpcG1lbnQiPgogICAgICAgIDxwYXJhPldobyBhcmUgdGhlIGZvbGtzIGFuZCBvcmdhbml6YXRpb25zIHdobyBoYXZlIGNvbnRyaWJ1dGVkIG1vbmV5IG9yIGVxdWlwbWVudCB0byB0aGUgV2luZSBwcm9qZWN0PzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFBlb3BsZSBhbmQgb3JnYW5pemF0aW9ucyB3aG8gaGF2ZSBnaXZlbiBnZW5lcm91cyBjb250cmlidXRpb25zIG9mCiAgICAgICAgICBtb25leSwgZXF1aXBtZW50LCBvciBsaWNlbnNlcywgaW5jbHVkZToKICAgICAgICA8L3BhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdCBzcGFjaW5nPSJjb21wYWN0Ij4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+RGF2aWQgTC4gSGFycGVyPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+Qm9iIEhlcHBsZTwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPk1hcmsgQS4gSG9ydG9uPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+S2V2aW4gUC4gTGF3dG9uPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+VGhlIFN5bnRyb3B5IEluc3RpdHV0ZTwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPkphbWVzIFdvdWxmZTwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgVk1XYXJlIEluYy4gPHVsaW5rIHVybD0iaHR0cDovL3d3dy52bXdhcmUuY29tIj4KICAgICAgICAgICAgIChodHRwOi8vd3d3LnZtd2FyZS5jb20pPC91bGluaz4KICAgICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICBDb3JlbCA8dWxpbmsgdXJsPSJodHRwOi8vbGludXguY29yZWwuY29tIj4KICAgICAgICAgICAgIChodHRwOi8vbGludXguY29yZWwuY29tKTwvdWxpbms+CiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaGF0LXVuZG9jdW1lbnRlZC1BUElzLWFyZS1ub3QtdW5kZXJzdG9vZCI+CiAgICAgICAgPHBhcmE+V2hhdCB1bmRvY3VtZW50ZWQgQVBJcyAvIGludGVyZmFjZXMgYXJlIG5vdCB1bmRlcnN0b29kPyBXb3VsZAogICAgICAgICAgICAgIHNlZWluZyBNaWNyb3NvZnQgc291cmNlIGhlbHA/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgVGhlIGJlc3Qgd291bGQgYmUgaWYgdGhlIFdpbmRvd3MgQVBJIHdhcyBmdWxseSBkb2N1bWVudGVkLCBzbyBXaW5lCiAgICAgICAgICBjb3VsZCBiZSBhIHBlcmZlY3QgImNsZWFuLXJvb20iIGltcGxlbWVudGF0aW9uLiBTZWVpbmcgdGhlIHNvdXJjZQogICAgICAgICAgY29kZSBtaWdodCBtYWtlIGl0IGhhcmRlciB0byBwcm92ZSB0aGF0IG5vIGNvcHlyaWdodCB2aW9sYXRpb25zIGhhdmUKICAgICAgICAgIHRha2VuIHBsYWNlLiBUaGF0IHNhaWQsIHRoZSBkb2N1bWVudGF0aW9uIGlzIG9mdGVuIGJhZCwgbm9uZXhpc3RlbnQsCiAgICAgICAgICBhbmQgZXZlbiBtaXNsZWFkaW5nIHdoZXJlIGl0IGV4aXN0cywgc28gYSBmYWlyIGFtb3VudCBvZiByZXZlcnNlCiAgICAgICAgICBlbmdpbmVlcmluZyBoYXZlIGJlZW4gbmVjZXNzYXJ5LCBwYXJ0aWN1bGFybHkgaW4gdGhlIHNoZWxsIChFeHBsb3JlcikKICAgICAgICAgIGludGVyZmFjZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IklzLVRyYW5zR2FtaW5ncy1sYXN0LXBhdGNoLWluY2x1ZGVkLWluLVdpbmUiPgogICAgICAgIDxwYXJhPklzIFRyYW5zR2FtaW5nJ3MgbGF0ZXN0IHBhdGNoIGluY2x1ZGVkIGluIHRoZSBzdGFuZGFyZCBXaW5lIHJlbGVhc2U/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgTm8sIGl0J3Mgbm90LgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRyYW5zR2FtaW5nIG1ha2UgbW9uZXkgdmlhIGEgc3Vic2NyaXB0aW9uIHNlcnZpY2UuIFRodXMgdGhleSAKICAgICAgICAgIHN1Ym1pdHRlZCB0aGVpciBEaXJlY3REcmF3IGFuZCBzb21lIERpcmVjdFNvdW5kIHdvcmssIGJ1dCB0aGV5IHdpbGwKICAgICAgICAgIG5vdCBzdWJtaXQgdGhlaXIgT3BlbkdMIHdyYXBwZXIgYmFzZWQgRGlyZWN0M0Qgc3VwcG9ydC4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaWxsLXRoZXJlLWJlLWEtV2luZG93cy12ZXJzaW9uLW9mLVdpbmUiPgogICAgICAgIDxwYXJhPldpbGwgdGhlcmUgYmUgYSBXaW5kb3dzIHZlcnNpb24gb2YgV2luZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBTb21lIHBlb3BsZSBhcmUgd29ya2luZyBvbiBnZXR0aW5nIFdpbmUgY29kZSB0byBjb21waWxlIG9uIFdpbmRvd3MuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxpdGVtaXplZGxpc3Qgc3BhY2luZz0iY29tcGFjdCI+CiAgICAgICAgICA8bGlzdGl0ZW0+IAogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICBDeWd3aW4gPHVsaW5rIHVybD0iaHR0cDovd3d3LmN5Z3dpbi5jb20iPgogICAgICAgICAgICAgIChodHRwOi8vd3d3LmN5Z3dpbi5jb20vKTwvdWxpbms+CiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgIFJlYWN0b3MgPHVsaW5rIHVybD0iaHR0cDovL3d3dy5yZWFjdG9zLmNvbS8iPgogICAgICAgICAgICAgKGh0dHA6Ly93d3cucmVhY3Rvcy5jb20vKTwvdWxpbms+CiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGVyZSdzIHNvbWUgcHJvZ3Jlc3MsIHNvIGEgV2luZSB2ZXJzaW9uIHRoYXQncyB1c2FibGUgb24gV2luZG93cwogICAgICAgICAgbWlnaHQgYmUgYXZhaWxhYmxlIGF0IHNvbWUgdGltZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgCiAgICA8L3FhbmRhZGl2PgogICAgPHFhbmRhZGl2IGlkPSJXaGF0LWRvLUktbmVlZC1pbi1vcmRlci10by11c2UtV2luZSI+CiAgICAgIDx0aXRsZT5XaGF0IGRvIEkgbmVlZCBpbiBvcmRlciB0byB1c2UgV2luZT88L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJVbmRlci13aGF0LXBsYXRmb3Jtcy13aWxsLVdpbmUtcnVuIj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFVuZGVyIHdoYXQgaGFyZHdhcmUgcGxhdGZvcm0ocykgYW5kIG9wZXJhdGluZyBzeXN0ZW0ocykgd2lsbAogICAgICAgICAgV2luZShMaWIpIHJ1bj8KICAgICAgICA8L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lIGlzIGJlaW5nIGRldmVsb3BlZCBzcGVjaWZpY2FsbHkgdG8gcnVuIG9uIHRoZSBJbnRlbCB4ODYgY2xhc3MKICAgICAgICAgIG9mIENQVXMgdW5kZXIgY2VydGFpbiBVTklYZXMgdGhhdCBydW4gb24gdGhlIHg4NiBwbGF0Zm9ybS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBOZXRCU0QsIE9wZW5CU0QsIFVuaXh3YXJlLCBhbmQgU0NPIE9wZW5TZXJ2ZXIgNSB3b3JrZWQgYXQgb25lIHRpbWUsCiAgICAgICAgICBidXQgV2luZSBub3cgcmVxdWlyZXMga2VybmVsLWxldmVsIHRocmVhZHMgd2hpY2ggYXJlIG5vdCBjdXJyZW50bHkgCiAgICAgICAgICBhdmFpbGFibGUgKG9yIHVuZGVyc3Rvb2QgYnkgdGhlIFdpbmUgdGVhbSkgaW4gdGhvc2UgcGxhdGZvcm1zLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBXaW5lIGRldmVsb3BtZW50IHRlYW0gaG9wZXMgdG8gYXR0cmFjdCB0aGUgaW50ZXJlc3Qgb2Ygb3RoZXIKICAgICAgICAgIGNvbW1lcmNpYWwgVU5JWCBhbmQgVU5JWCBjbG9uZSB2ZW5kb3JzIGFzIHdlbGwuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQmVPUzogcG9ydGluZyBlZmZvcnRzIHVzZWQgdG8gYmUgcHJldHR5IHN0cm9uZywgYnV0IEJlT1MgaGFzIHNldmVyZQogICAgICAgICAgbGltaXRhdGlvbnMgaW4gVW5peCBjYWxsIHN1cHBvcnQsIHNvIGEgcG9ydCB3aWxsIHByb2JhYmx5IG5ldmVyCiAgICAgICAgICBoYXBwZW4uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgRnJlZUJTRDogU2hvdWxkIHdvcmssIHdpdGggbGltaXRhdGlvbnMgaW4gc3BlY2lmaWMgYXJlYXMgKG1haW5seSAKICAgICAgICAgIG1pc3NpbmcgZGV2aWNlL2hhcmR3YXJlIHN1cHBvcnQpCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgTGludXgveDg2OiBXT1JLUy4gSWYgaXQgZG9lc24ndCwgWW91IG1heSBhbHNvIHdhbnQgdG8gc2VlIHRoZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLm9yZy9mb20tbWV0YS9jYWNoZS8xOS5odG1sIj5XaW5lCiAgICAgICAgICBUcm91Ymxlc2hvb3RpbmcgR3VpZGU8L3VsaW5rPgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoYXQtbWluaW11bS1DUFUtbXVzdC1JLWhhdmUiPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2hhdCBtaW5pbXVtIENQVSBtdXN0IEkgaGF2ZSBpbiBteSBjb21wdXRlciB0byBiZSBhYmxlIHRvIHJ1biBXaW5lIAogICAgICAgICAgYW5kIE1TIFdpbmRvd3MgYXBwbGljYXRpb25zIHNtb290aGx5PwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdlIG5lZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIFdpbmUgYW5kIFdpbmVsaWIgaGVyZS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lIHdvbid0IHJ1biBvbiBhbnkgeDg2IENQVSBsZXNzIHRoYW4gYW4gODAzODYgZHVlIHRvIGFkZHJlc3MKICAgICAgICAgIG1hbmFnZW1lbnQgbGltaXRhdGlvbnMKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJdCBpcyBrbm93biB0byBhbHNvIHdvcmsgaW4gdGhlIDgwNDg2IGFuZCB1cHdhcmRzIGNvbXBhdGlibGUgQ1BVcy4KICAgICAgICAgIFRoZSBiYXNpYyB0ZXN0IGlzLCBpZiB5b3UgY2FuIHJ1biBYMTEgbm93LCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gcnVuCiAgICAgICAgICBXaW5lIGFuZCBNUyBXaW5kb3dzIGFwcGxpY2F0aW9ucyB1bmRlciBpdC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBBcyBhbHdheXMsIHRoZSBmYXN0ZXIgeW91ciBDUFUsIHRoZSBiZXR0ZXIuIEhhdmluZyBhIG1hdGggY29wcm9jZXNzb3IKICAgICAgICAgIGlzIHVuaW1wb3J0YW50LiBIb3dldmVyLCBoYXZpbmcgYSBncmFwaGljcyBhY2NlbGVyYXRlZCB2aWRlbyBjYXJkCiAgICAgICAgICBzdXBwb3J0ZWQgYnkgWCB3aWxsIGhlbHAgZ3JlYXRseQogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIERlcGVuZGluZyBvbiB5b3VyIGFwcGxpY2F0aW9uIHlvdSBtYXkgZmluZCB0aGF0IGZhc3RlciBzcGVlZHMgYXJlCiAgICAgICAgICByZXF1aXJlZCBmb3Igc2Vuc2libGUgdXNlLiBXZSBjYW4ndCBnaXZlIHNwZWNpZmljIGFkdmljZSBvbiB0aGF0IGR1ZQogICAgICAgICAgdG8gdGhlIHZhc3QgcmFuZ2Ugb2YgYXBwbGljYXRpb25zIG91dCB0aGVyZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctbXVjaC1kaXNrLXNwYWNlLXdpbGwtV2luZS10YWtlIj4KICAgICAgICA8cGFyYT4KICAgICAgICAgSG93IG11Y2ggZGlzayBzcGFjZSB3aWxsIHRoZSBXaW5lIHNvdXJjZSBjb2RlIGFuZCBiaW5hcmllcyB0YWtlIG9uIG15CiAgICAgICAgIGhhcmQgZHJpdmU/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWW91IG5lZWQgYXBwcm94aW1hdGVseSAyNTAgbWVnYWJ5dGVzIG9mIGZyZWUgaGFyZCBkcml2ZSBzcGFjZSB0bwogICAgICAgICAgc3RvcmUgYW5kIGNvbXBpbGUgdGhlIHNvdXJjZSBjb2RlLiBXaW5lIGFsc28gbmVlZHMgYWJvdXQgMTggbWVncyBpbgogICAgICAgICAgeW91ciAvdG1wIGRpcmVjdG9yeS4gQW5kIGFib3V0IDUwIE1CIGFyZSBuZWVkZWQgdG8gZG8gYSBtYWtlIGluc3RhbGwuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hhdC1vdGhlci1zb2Z0d2FyZS1kby1JLW5lZWQtdG8tY29tcGlsZSI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaGF0IG90aGVyIHNvZnR3YXJlIGRvIEkgbmVlZCB0byBoYXZlIGluc3RhbGxlZCB0byBjb21waWxlIGFuZCBydW4gCiAgICAgICAgICBXaW5lPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE1hbnkgZGV2ZWxvcG1lbnQgdG9vbHMgbmVlZCB0byBiZSBpbnN0YWxsZWQgaW4gb3JkZXIgdG8gY29tcGlsZSBXaW5lLgogICAgICAgICAgQSBsaXN0IG9mIHJlcXVpcmVkIHBhY2thZ2VzIGZvciBzZXZlcmFsIGRpc3RyaWJ1dGlvbnMgaXMgaW5jbHVkZWQgaW4KICAgICAgICAgIHRoZSBSRUFETUUgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL3NvdXJjZS9SRUFETUUiPgogICAgICAgICAgKGh0dHA6Ly93d3cud2luZWhxLmNvbS9zb3VyY2UvUkVBRE1FKTwvdWxpbms+LgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRvIHJ1biBXaW5lLCB5b3Ugd2lsbCBuZWVkIHRoZSBmb2xsb3dpbmc6CiAgICAgICAgPC9wYXJhPgoKICAgICAgICA8aXRlbWl6ZWRsaXN0IHNwYWNpbmc9ImNvbXBhY3QiPgogICAgICAgICAgPGxpc3RpdGVtPiAKICAgICAgICAgICAgPHBhcmE+VGhlIGNvbXBpbGVkIFdpbmUgYmluYXJ5PC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+QSBwcm9wZXJseSBjb25maWd1cmVkIHdpbmUuY29uZiBmaWxlIChvciB+Ly53aW5lcmMgZmlsZSk8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT5BbiBpbnN0YWxsZWQgYW5kIHdvcmtpbmcgWCBXaW5kb3cgc3lzdGVtPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+U29tZSBXaW5kb3dzIHByb2dyYW1zIHRvIHRlc3Q8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvaXRlbWl6ZWRsaXN0PgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSG93LW11Y2gtUkFNLWRvLUktbmVlZCI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBIb3cgbXVjaCBSQU0gZG8gSSBuZWVkIHRvIGhhdmUgb24gbXkgVU5JWCBzeXN0ZW0gdG8gYmUgYWJsZSB0byBydW4gCiAgICAgICAgICBXaW5lIGFuZCBNUyBXaW5kb3dzIGFwcGxpY2F0aW9ucyBzbW9vdGhseT8KICAgICAgICA8L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJZiB5b3UgY2FuIHJ1biBYIHNtb290aGx5IG9uIHlvdXIgVU5JWCBzeXN0ZW0gbm93LCB5b3Ugc2hvdWxkIGJlIAogICAgICAgICAgYWJsZSB0byBydW4gV2luZSBhbmQgTVMgV2luZG93cyBhcHBsaWNhdGlvbnMganVzdCBmaW5lIHRvbywgZGVwZW5kaW5nCiAgICAgICAgICBvbiBob3cgbWVtb3J5IGh1bmdyeSB0aGUgYXBwbGljYXRpb24gaXMuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQSBXaW5lIHdvcmtzdGF0aW9uIHdpbGwgd29yayB3aXRoIDE2IG1lZ2FieXRlcyBvZiBSQU0gYW5kIGEgMTYgCiAgICAgICAgICBtZWdhYnl0ZSBzd2FwIHBhcnRpdGlvbiBhcyBsb25nIGFzIHlvdSBoYXZlIGEgcmVhc29uYWJsZSBncmFwaGljcyAKICAgICAgICAgIGNhcmQuIE1vc3QgYXBwbGljYXRpb25zIHdpbGwgcnVuIHJlYXNvbmFibHkgd2l0aCA2NC82NCBNYiwgCiAgICAgICAgICBpbnRlcmFjdGl2ZSBnYW1lcyBhcmUgbGlrZWx5IHRvIG5lZWQgbW9yZS4gWW91IGNhbiBydW4gV2luZSB3aXRoIDgvOCwKICAgICAgICAgIGJ1dCBpdCBpcyBnb2luZyB0byBiZSB1bnVzYWJseSBzbG93IGFuZCB2ZXJ5IGNvbnN0cmFpbmluZyBvbiB0aGUgCiAgICAgICAgICBhcHBsaWNhdGlvbnMgeW91IGNhbiBydW4uIElmIHlvdSB3aXNoIHRvIGJlIHBhcnQgb2YgdGhlIGRldmVsb3BtZW50CiAgICAgICAgICB0ZWFtIGFuZCBwcm9ncmFtIFdpbmUgaXRzZWxmLCBiZSBhd2FyZSB0aGF0IHRoZSBkZWJ1Z2dlciBpcyByYXRoZXIgCiAgICAgICAgICBtZW1vcnkgaW50ZW5zaXZlLiBTb21lIGhhdmUgc3VnZ2VzdGVkIHRoYXQgNjQgbWVnYWJ5dGVzIGlzIHRoZQogICAgICAgICAgbWluaW11bSBSQU0gbmVlZGVkIGZvciBXaW5lIGRldmVsb3BtZW50LCBhbHRob3VnaCBzb21lIGFyZSBhYmxlIHRvIAogICAgICAgICAgd29yayAoYWxiZWl0IHNsb3dseSkgd2l0aCAyNCBtZWdhYnl0ZXMgb2YgcGh5c2ljYWwgUkFNIGFuZCBsb3RzIG9mCiAgICAgICAgICBzd2FwIHNwYWNlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1sb25nLWRvZXMtV2luZS10YWtlLXRvLWJ1aWxkIj4KICAgICAgICA8cGFyYT5Ib3cgbG9uZyBkb2VzIFdpbmUgdGFrZSB0byBidWlsZDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUgaXMgZ2V0dGluZyB0byBiZSBxdWl0ZSBsYXJnZSwgYW5kIGJ1aWxkaW5nIGZyb20gc2NyYXRjaCB0YWtlcyBhCiAgICAgICAgICBsb3Qgb2YgcHJvY2Vzc2luZy4gQXMgb2YgU2VwdGVtYmVyIDIwMDIsIGNvbXBpbGUgdGltZXMgd2VyZSBhcm91bmQgMjAKICAgICAgICAgIG1pbnV0ZXMgb24gYW4gQXRobG9uIDEyMDAgd2l0aCA2NDAgTWIgYW5kIDQ1LTUwIG1pbnV0ZXMgb24gYSBDeXJpeCAKICAgICAgICAgIDMwMCB3aXRoIDY0IE1iLiBJZiB5b3UgaGF2ZSBhIENWUyBjb3B5LCB5b3UgbWF5IG5vdCBuZWVkIHRvIHJlYnVpbGQKICAgICAgICAgIHRoZSB3aG9sZSB0aGluZyBldmVyeSB0aW1lIHlvdSB1cGRhdGUuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJLWhhdmUtYS1Ecml2ZXNwYWNlZC1wYXJ0aXRpb24iPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSBoYXZlIGEgRHJpdmVzcGFjZWQsIERvdWJsZXNwYWNlZCBvciBTdGFja2VyZWQgRE9TIHBhcnRpdGlvbi4gQ2FuIAogICAgICAgICAgV2luZSBydW4gTVMgV2luZG93cyBiaW5hcmllcyBsb2NhdGVkIGluIHN1Y2ggYSBwYXJ0aXRpb24/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWWVzLCBidXQgb25seSBpZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBzdXBwb3J0cyBtb3VudGluZyB0aG9zZSB0eXBlcwogICAgICAgICAgb2YgZHJpdmVzLlRoZXJlIGlzIGEgTGludXggZmlsZSBzeXN0ZW0gZHJpdmVyIGNhbGxlZCBkbXNkb3MgdGhhdCB3aWxsCiAgICAgICAgICBhbGxvdyByZWFkL3dyaXRlIGFjY2VzcyB0aHJvdWdoIERvdWJsZXNwYWNlZCBhbmQgRHJpdmVzcGFjZSAxLjAgCiAgICAgICAgICBkcml2ZXMuIE1vcmUgc3BlY2lmaWNhbGx5LCBpdCBzdXBwb3J0cyBtb3VudGluZyBET1MgNi4wIGFuZCA2LjIgCiAgICAgICAgICBEb3VibGVzcGFjZWQsIERPUyA2LjIyIERyaXZlc3BhY2VkLCBhbmQgV2luZG93cyA5NSBEb3VibGVzcGFjZWQgCiAgICAgICAgICBjb21wcmVzc2VkIHBhcnRpdGlvbnMgKHJlYWQgYW5kIHdyaXRlIGFjY2VzcyB3b3JrcyBmaW5lLCBidXQgd3JpdGUgCiAgICAgICAgICBhY2Nlc3MgaXMgc2xvdykuIEl0IGNhbiBiZSBmb3VuZCBhdCAKICAgICAgICAgIDx1bGluayB1cmw9ImZ0cDovL21ldGFsYWIudW5jLmVkdS9wdWIvTGludXgvc3lzdGVtL2ZpbGVzeXN0ZW1zL2Rvc2ZzLyI+CiAgICAgICAgICBmdHA6Ly9tZXRhbGFiLnVuYy5lZHUvcHViL0xpbnV4L3N5c3RlbS9maWxlIHN5c3RlbXMvZG9zZnMvPC91bGluaz4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJEby1JLW5lZWQtdG8taGF2ZS1hLURPUy1wYXJ0aXRpb24iPgogICAgICAgIDxwYXJhPkRvIEkgbmVlZCB0byBoYXZlIGEgRE9TIHBhcnRpdGlvbiBvbiBteSBzeXN0ZW0gdG8gdXNlIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWW91IGRvIG5vdCBuZWVkIGEgbGljZW5zZWQgYW5kIGluc3RhbGxlZCBjb3B5IG9mIERPUyBvciBNUyBXaW5kb3dzIHRvCiAgICAgICAgICBpbnN0YWxsLCBjb25maWd1cmUgYW5kIHJ1biBXaW5lLiBIb3dldmVyLCBXaW5lIGhhcyB0byBiZSBhYmxlIHRvIAogICAgICAgICAgJ3NlZScgYW4gTVMgV2luZG93cyBiaW5hcnkgKGkuZS4gYXBwbGljYXRpb24pIGlmIGl0IGlzIHRvIHJ1biBpdC4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iRG9lcy1NUy1XaW5kb3dzLW5lZWQtdG8tYmUtaW5zdGFsbGVkIj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIERvZXMgTVMgV2luZG93cyBuZWVkIHRvIGJlIGxvYWRlZCBpbnRvIHRoYXQgcGFydGl0aW9uIGluIG9yZGVyIHRvCiAgICAgICAgICBydW4gTVMgV2luZG93cyBwcm9ncmFtcyB1bmRlciBXaW5lPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE1hbnkgZm9sa3MgaGF2ZSBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkIGFuZCBydW4gc29tZSBzbWFsbCBwcm9ncmFtcwogICAgICAgICAgaW4gdGhlaXIgVU5JWCBmaWxlc3lzdGVtIHdpdGhvdXQgaGF2aW5nIGEgRE9TIHBhcnRpdGlvbiBvciBNUyAKICAgICAgICAgIFdpbmRvd3MuIEhvd2V2ZXIsIGluIG1hbnkgY2FzZXMgeW91IG5lZWQgYSBkaXJlY3RvcnkgYW5kIGZpbGUgCiAgICAgICAgICBpbmZyYXN0cnVjdHVyZSB0aGF0IGlzIHNpbWlsYXIgdG8gYW4gZXhpc3RpbmcgV2luZG93cyBpbnN0YWxsYXRpb24uCiAgICAgICAgICBTb21lIGFwcGxpY2F0aW9ucycgaW5zdGFsbGF0aW9uIHByb2dyYW1zIHdhbnQgdG8gZGlzdHJpYnV0ZSBzb21lIG9mCiAgICAgICAgICB0aGUgcGFja2FnZSdzIGZpbGVzIGludG8gdGhlIC93aW5kb3dzIGFuZCAvd2luZG93cy9zeXN0ZW0gCiAgICAgICAgICBkaXJlY3RvcmllcyBpbiBvcmRlciB0byBydW4sIGFuZCB1bmxlc3MgdGhlc2UgZXhpc3Qgb24geW91ciBVTklYIAogICAgICAgICAgZmlsZSBzeXN0ZW0sIHRob3NlIHByb2dyYW1zIHdpbGwgbm90IGluc3RhbGwgY29ycmVjdGx5IGFuZCBwcm9iYWJseQogICAgICAgICAgd2lsbCBub3QgcnVuIHdlbGwsIGlmIGF0IGFsbC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJZiB5b3UgaGF2ZSBhIERPUyBwYXJ0aXRpb24gd2l0aCBNUyBXaW5kb3dzIGluc3RhbGxlZCBpbiBpdCwgbWFrZQogICAgICAgICAgc3VyZSB0aGF0IHlvdXIgVU5JWCBzeXN0ZW0gY2FuICdzZWUnIHRoaXMgcGFydGl0aW9uIChjaGVjayB5b3VyIAogICAgICAgICAgL2V0Yy9mc3RhYiBmaWxlIG9yIG1vdW50IHRoZSBwYXJ0aXRpb24gbWFudWFsbHkpIHNvIHRoYXQgV2luZSBjYW4KICAgICAgICAgIHJ1biB0aGUgTVMgV2luZG93cyBiaW5hcmllcyBsb2NhdGVkIGluIHRoZSBET1MgcGFydGl0aW9uLiBUbyBydW4KICAgICAgICAgIHdpdGhvdXQgYSBET1MgcGFydGl0aW9uLCB5b3UgbmVlZCB0byBzZXQgYSBVTklYIHBhdGggdG8gYmUgeW91ciAKICAgICAgICAgIGRyaXZlIEMsIGFuZCBtYWtlIHN1cmUgdGhhdCB0aGUgL3dpbmRvd3MgYW5kIC93aW5kb3dzL3N5c3RlbSAKICAgICAgICAgIGRpcmVjdG9yaWVzIHBvaW50IHRvIHNvbWUgcGxhY2UgdGhhdCBhY3R1YWxseSBleGlzdC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBIZXJlJ3MgYW4gZXhhbXBsZSwgY29waWVkIGZyb20gYSBtYWNoaW5lIHdoaWNoIGhhcyBubyBET1MgcGFydGl0aW9uCiAgICAgICAgICBidXQgc3VjY2Vzc2Z1bGx5IHJ1bnMgV2luZToKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHNjcmVlbj4KICAgIFtEcml2ZSBDXSAgICAgIAogICAgICAgICAgUGF0aD0vdmFyL2xpYi93aW5lCiAgICAgICAgICBUeXBlPWhkCiAgICAgICAgICBMYWJlbD1NUy1ET1MKICAgICAgICAgIEZpbGVzeXN0ZW09d2luOTUKICAgIFt3aW5lXQogICAgICAgICAgV2luZG93cz1jOlx3aW5kb3dzCiAgICAgICAgICBTeXN0ZW09Yzpcd2luZG93c1xzeXN0ZW0KICAgICAgICAgIFRlbXA9ZTpcCiAgICAgICAgICBQYXRoPWM6XHdpbmRvd3M7Yzpcd2luZG93c1xzeXN0ZW07YzoKICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8cGFyYT4KICAgICAgICAgSW4gPGZpbGVuYW1lPi92YXIvbGliL3dpbmUvd2luZG93czwvZmlsZW5hbWU+LCB5b3Ugd2lsbCBuZWVkIHRvCiAgICAgICAgIGluc3RhbGwgYSA8ZmlsZW5hbWU+d2luLmluaTwvZmlsZW5hbWU+IGNvbmZpZyBmaWxlIHRoYXQgeW91IG1pZ2h0CiAgICAgICAgIGZpbmQgb24gYSB0eXBpY2FsIE1TIFdpbmRvd3MgMy4xIG1hY2hpbmUuIFRoZSBkaXJlY3RvcnkKICAgICAgICAgPGZpbGVuYW1lPi92YXIvbGliL3dpbmUvd2luZG93cy9zeXN0ZW08L2ZpbGVuYW1lPiBzaG91bGQgZXhpc3QsIGJ1dAogICAgICAgICBkb2Vzbid0IG5lZWQgdG8gY29udGFpbiBhbnl0aGluZy4gSG93ZXZlciwgdG8gdXNlIE1TIERMTHMsIHlvdSBjYW4KICAgICAgICAgY29weSB0aGVtIGludG8gdGhhdCBkaXJlY3RvcnkuIE5vdGUgdGhhdCB0aGlzIGlzIGEgY29udHJhdmVudGlvbiBvZgogICAgICAgICB0aGUgV2luZG93cyBsaWNlbmNlIHVubGVzcyBXaW5kb3dzIGlzIHByb3Blcmx5IGluc3RhbGxlZCBvbiB0aGUKICAgICAgICAgbWFjaGluZS4gSWYgeW91IGhhdmUgRE9TL01TIFdpbmRvd3MgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtLCB5b3UgY2FuCiAgICAgICAgIG1vdW50IHRoYXQgcGFydGl0aW9uIGF0IGJvb3R1cCBieSBtb2RpZnlpbmcgdGhlIGZpbGUgCiAgICAgICAgIDxmaWxlbmFtZT4vZXRjL2ZzdGFiPC9maWxlbmFtZT4gaW4geW91ciBVTklYIHBhcnRpdGlvbiAoYXNzdW1pbmcgdGhhdAogICAgICAgICB0aGUgVU5JWCBrZXJuZWwgc3VwcG9ydHMgdGhlIERPUy9NUyBXaW5kb3dzIGZpbGVzeXN0ZW0gdHlwZSkuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgeW91IGVkaXQgdGhpcyBmaWxlIGJ5IGhhbmQsIGl0IHNob3VsZCBjb250YWluIHNvbWV0aGluZyBzaW1pbGFyCiAgICAgICAgICB0byB0aGUgZm9sbG93aW5nOgogICAgICAgIDwvcGFyYT4KICAgICAgICA8c2NyZWVuPgovZGV2L2hkYTEgL2Rvc2MgbXNkb3MgdWlkPTAsZ2lkPTEwMCx1bWFzaz0wMDcgMCAwCiAgICAgICAgPC9zY3JlZW4+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGlzIHdpbGwgYWxsb3cgeW91IHRvIHJlYWQgYW5kIHdyaXRlIHRvIHRoZSBET1MgcGFydGl0aW9uIHdpdGhvdXQKICAgICAgICAgIGJlaW5nIHJvb3QuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IklmLVdpbmUtY29tcGxldGVseS1yZXBsYWNlcy1NUy1XaW5kb3dzIj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIFdpbmUgY29tcGxldGVseSByZXBsYWNlcyBNUyBXaW5kb3dzLCB3aWxsIGl0IGR1cGxpY2F0ZSBhbGwgb2YgdGhlCiAgICAgICAgICBmdW5jdGlvbnMgb2YgTVMgV2luZG93cz8KICAgICAgICA8L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBNb3N0IG9mIHRoZW0sIHllcy4gSG93ZXZlciwgc29tZSBhcHBsaWNhdGlvbnMgYW5kIGFwcGxldHMgdGhhdCBjb21lCiAgICAgICAgICB3aXRoIE1TIFdpbmRvd3MsIHN1Y2ggYXMgRmlsZSBNYW5hZ2VyIGFuZCBDYWxjdWxhdG9yLCBjYW4gYmUgCiAgICAgICAgICBjb25zaWRlcmVkIGJ5IHNvbWUgdG8gYmUgcmVkdW5kYW50LCBzaW5jZSAzMi1iaXQgVU5JWCBwcm9ncmFtcyB0aGF0CiAgICAgICAgICBkdXBsaWNhdGUgdGhlc2UgYXBwbGV0cycgZnVuY3Rpb25zIGFscmVhZHkgZXhpc3QuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2lsbC1JLWluc3RhbGwtb24tb255LVVOSVgtZmlsZS1zeXN0ZW0iPgogICAgICAgIDxwYXJhPiAKICAgICAgICAgIFdpbGwgSSBiZSBhYmxlIHRvIGluc3RhbGwgTVMgV2luZG93cyBhcHBsaWNhdGlvbnMgaW4gYW55IGZsYXZvciBvZiBhCiAgICAgICAgICBVTklYIGZpbGUgc3lzdGVtPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUgaXMgd3JpdHRlbiB0byBiZSBmaWxlIHN5c3RlbSBpbmRlcGVuZGVudCwgc28gTVMgV2luZG93cyAKICAgICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGluc3RhbGwgYW5kIHJ1biB1bmRlciB2aXJ0dWFsbHkgYW55IGZpbGUgc3lzdGVtCiAgICAgICAgICBzdXBwb3J0ZWQgYnkgeW91ciBicmFuZCBvZiBVTklYLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KIAogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaWxsLVdpbmUtcnVuLW9ubHktdW5kZXItWCI+CiAgICAgICAgPHBhcmE+IFdpbGwgV2luZSBydW4gb25seSB1bmRlciBYLCBvciBjYW4gaXQgcnVuIGluIGNoYXJhY3RlciBtb2RlPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE1vc3Qgb2YgV2luZSdzIGRldmVsb3BtZW50IGVmZm9ydCBpcyBnZWFyZWQgYWdhaW5zdCBNUyBXaW5kb3dzJyBHVUksCiAgICAgICAgICBidXQgc29tZSBsaW1pdGVkIHN1cHBvcnQgZm9yIGNoYXJhY3RlciBtb2RlIGhhcyBhcHBlYXJlZCwgYnkgc2V0dGluZwogICAgICAgICAgPHBhcmFtZXRlcj5HcmFwaGljc0RyaXZlcj10dHlkcnY8L3BhcmFtZXRlcj4gaW4gd2luZS5jb25mJ3MKICAgICAgICAgIDxwYXJhbWV0ZXI+W3dpbmVdPC9wYXJhbWV0ZXI+IHNlY3Rpb24uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSdzIGluZnJhc3RydWN0dXJlIGlzIGFscmVhZHkgc29tZXdoYXQgcHJlcGFyZWQgZm9yIHN1cHBvcnRpbmcKICAgICAgICAgIG90aGVyIGdyYXBoaWNzIGRyaXZlcnMgdGhhbiB4MTFkcnYsIGJ1dCBubyByZWFsICJhbHRlcm5hdGl2ZSIgCiAgICAgICAgICBncmFwaGljcyBkcml2ZXIgaGFzIGJlZW4gdXNlZCB5ZXQuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldpbGwtV2luZS1ydW4tdW5kZXItYW55LVgtd2luZG93LW1hbmFnZXIiPgogICAgICAgIDxwYXJhPldpbGwgV2luZSBydW4gdW5kZXIgYW55IFggd2luZG93IG1hbmFnZXI/IERvZXMgaXQgcmVxdWlyZSBhIHdpbmRvdyBtYW5hZ2VyIGF0IGFsbD88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lIGlzIHdpbmRvdyBtYW5hZ2VyIGluZGVwZW5kZW50LCBzbyB0aGUgWCB3aW5kb3cgbWFuYWdlciB5b3UKICAgICAgICAgIGNob29zZSB0byBydW4gaGFzIChhbG1vc3QpIG5vIGJlYXJpbmcgb24geW91ciBhYmlsaXR5IHRvIHJ1biBNUwogICAgICAgICAgV2luZG93cyBwcm9ncmFtcyB1bmRlciBXaW5lLiBXaW5lIHVzZXMgc3RhbmRhcmQgWCBsaWJyYXJpZXMsIHNvIG5vCiAgICAgICAgICBhZGRpdGlvbmFsIG9uZXMgYXJlIG5lZWRlZC4gV2luZSBoYXMgaXRzIG93biB3aW5kb3cgbWFuYWdlbWVudCwKICAgICAgICAgIHdoaWNoIGFjdHMgbGlrZSBNUyBXaW5kb3dzLiBJdCBjYW4gYmUgdHVybmVkIG9mZiB0byB1c2UgdGhlIG5hdGl2ZQogICAgICAgICAgd2luZG93IG1hbmFnZXIgYnkgbW9kaWZ5aW5nIE1hbmFnZWQgb3IgRGVza3RvcCBzZXR0aW5ncyBhcyBkZXNjcmliZWQKICAgICAgICAgIGluIDxjb21tYW5kPm1hbiB3aW5lLmNvbmY8L2NvbW1hbmQ+LgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldpbGwtMzItYml0LWFwcGxpY2F0aW9ucy1ydW4tdW5kZXItV2luZSI+CiAgICAgICAgPHBhcmE+V2lsbCAzMi1iaXQgV2luZG93cyA5NS85OCBhcHBsaWNhdGlvbnMgcnVuIHVuZGVyIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWWVzLCAzMi1iaXQgcHJvZ3JhbXMgYXJlIG5vdyBhYm91dCBhcyB3ZWxsIHN1cHBvcnRlZCBhcyAxNi1iaXQgCiAgICAgICAgICAgcHJvZ3JhbXMuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogICAgICAKICAgIDwvcWFuZGFkaXY+CiAgICA8cWFuZGFkaXYgaWQ9IkZBUS1HZXR0aW5nLVdpbmUiPgogICAgICA8dGl0bGU+R2V0dGluZyBXaW5lPC90aXRsZT4KICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hlcmUtY2FuLUktZ2V0LVdpbmUiPgogICAgICAgIDxwYXJhPldoZXJlIGNhbiBJIGdldCBXaW5lPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEJlY2F1c2Ugb2YgbGFncyBjcmVhdGVkIGJ5IHVzaW5nIG1pcnJvciwgd29yZCBvZiB0aGlzIG5ld2VzdCByZWxlYXNlCiAgICAgICAgICBtYXkgcmVhY2ggeW91IGJlZm9yZSB0aGUgcmVsZWFzZSBpcyBhY3R1YWxseSBhdmFpbGFibGUgYXQgdGhlIGZ0cAogICAgICAgICAgc2l0ZXMgbGlzdGVkIGhlcmUuIFRoZSBzb3VyY2VzIGFyZSBhdmFpbGFibGUgZnJvbSB0aGUgZm9sbG93aW5nCiAgICAgICAgICBsb2NhdGlvbnM6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxpdGVtaXplZGxpc3Q+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvIj4KICAgICAgICAgICAgICAgaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC8KICAgICAgICAgICAgICA8L3VsaW5rPgogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICA8dWxpbmsgdXJsPSJmdHA6Ly9mdHAuaW5mb21hZ2ljLmNvbS9wdWIvbWlycm9ycy9saW51eC9zdW5zaXRlL0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvIj4KICAgICAgICAgICAgICBmdHA6Ly9mdHAuaW5mb21hZ2ljLmNvbS9wdWIvbWlycm9ycy9saW51eC9zdW5zaXRlL0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvIAogICAgICAgICAgICAgIDwvdWxpbms+CiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICA8dWxpbmsgdXJsPSJmdHA6Ly9mdHAuZnUtYmVybGluLmRlL3VuaXgvbGludXgvbWlycm9ycy9zdW5zaXRlLnVuYy5lZHUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC8iPgogICAgICAgICAgICAgIGZ0cDovL2Z0cC5mdS1iZXJsaW4uZGUvdW5peC9saW51eC9taXJyb3JzL3N1bnNpdGUudW5jLmVkdS9BTFBIQS93aW5lL2RldmVsb3BtZW50LyAKICAgICAgICAgICAgICA8L3VsaW5rPgogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgoKICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgPHVsaW5rIHVybD0iZnRwOi8vb3JjdXMucHJvZ3NvYy51dHMuZWR1LmF1L3B1Yi9XaW5lL2RldmVsb3BtZW50LyI+CiAgICAgICAgICAgICAgZnRwOi8vb3JjdXMucHJvZ3NvYy51dHMuZWR1LmF1L3B1Yi9XaW5lL2RldmVsb3BtZW50LyAKICAgICAgICAgICAgICA8L3VsaW5rPgogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgoKICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEl0IHNob3VsZCBhbHNvIGJlIGF2YWlsYWJsZSBmcm9tIGFueSBvdGhlciBzaXRlIHRoYXQgbWlycm9ycyAKICAgICAgICAgIGliaWJsaW8ub3JnLiBGb3IgbW9yZSBkb3dubG9hZCBsb2NhdGlvbnMsIHNlZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly9mdHAgc2VhcmNoLmx5Y29zLmNvbS4iPmx5Y29zPC91bGluaz4gU29tZSBvZgogICAgICAgICAgdGhlc2UgZnRwIHNpdGVzIG1heSBhcmNoaXZlIHByZXZpb3VzIHZlcnNpb25zIG9mIFdpbmUgYXMgd2VsbCBhcyB0aGUKICAgICAgICAgIGN1cnJlbnQgb25lLiBUbyBkZXRlcm1pbmUgd2hpY2ggaXMgdGhlIGxhdGVzdCBvbmUsIGxvb2sgYXQgdGhlIAogICAgICAgICAgZGlzdHJpYnV0aW9uIGZpbGUgbmFtZSwgd2hpY2ggd2lsbCB0YWtlIHRoZSBmb3JtIAogICAgICAgICAgV2luZS1ZWVlZTU1ERC50YXIuZ3ouIFNpbXBseSByZXBsYWNlIFlZWVlNTUREIGluIHRoZSBkaXN0cmlidXRpb24KICAgICAgICAgIGZpbGUgbmFtZSB3aXRoIHRoZSBudW1iZXJzIGZvciB5ZWFyLCBtb250aCBhbmQgZGF0ZSwgcmVzcGVjdGl2ZWx5LgogICAgICAgICAgVGhlIGxhdGVzdCBvbmUgaXMgdGhlIG9uZSB0byBnZXQuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBiaW5hcnkgcGFja2FnZXMgYXJlIGF2YWlsYWJsZSBmb3Igc2V2ZXJhbCBPUydlcyBhbmQgCiAgICAgICAgICBkaXN0cmlidXRpb25zLiBTZWUgCiAgICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20vZG93bmxvYWQuc2h0bWwiPgogICAgICAgICAgdGhlIGRvd25sb2FkIHBhZ2U8L3VsaW5rPiBmb3IgdGhlIG1vc3QgcmVjZW50IGxpc3QuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSXMtdGhlcmUtYS1DVlMtdHJlZSI+CiAgICAgICAgPHBhcmE+SXMgdGhlcmUgYSBDVlMgdHJlZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBDdXJyZW50IFdpbmUgc291cmNlcyBhcmUgYWxzbyBhdmFpbGFibGUgdmlhIGFub255bW91cyBjbGllbnQvc2VydmVyCiAgICAgICAgICBDVlMuIFlvdSB3aWxsIG5lZWQgQ1ZTIDEuOSBvciBhYm92ZS4gSWYgeW91IGFyZSBjb21pbmcgZnJvbSBiZWhpbmQgYQogICAgICAgICAgZmlyZXdhbGwsIHlvdSB3aWxsIGVpdGhlciBuZWVkIGEgaG9sZSBpbiB0aGUgZmlyZXdhbGwgZm9yIHRoZSBDVlMKICAgICAgICAgIHBvcnQgKDI0MDEpIG9yIHVzZSBTT0NLUy4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUbyBsb2dpbiB0byB0aGUgQ1ZTIHRyZWUsIGRvCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxzY3JlZW4+CmV4cG9ydCBDVlNST09UPTpwc2VydmVyOmN2c0BjdnMud2luZWhxLmNvbS9ob21lL3dpbmUKY3ZzIGxvZ2luCiAgICAgICAgPC9zY3JlZW4+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBVc2UgImN2cyIgYXMgdGhlIHBhc3N3b3JkICh3aXRob3V0IHRoZSBxdW90ZXMpLiBOb3RlIHRoYXQgCiAgICAgICAgICA8ZmlsZW5hbWU+L2hvbWUvd2luZTwvZmlsZW5hbWU+IGlzIGEgcGF0aCBvbiB0aGUgc2VydmVyLCBub3Qgb24geW91cgogICAgICAgICAgbWFjaGluZS4gVG8gY2hlY2sgb3V0IHRoZSBlbnRpcmUgV2luZSBzb3VyY2UgdHJlZSAod2hpY2ggbWF5IGJlIAogICAgICAgICAgc2xvdyksIHVzZQogICAgICAgIDwvcGFyYT4KICAgICAgICA8c2NyZWVuPgpjdnMgLXogMyBjaGVja291dCB3aW5lIAogICAgICAgIDwvc2NyZWVuPgogICAgICAgIDxwYXJhPgogICAgICAgICAgb3IgaWYgeW91IGp1c3Qgd2FudCBhIHN1YnRyZWUsIG9yIGluZGl2aWR1YWwgZmlsZSwgeW91IGNhbiBkbyB0aGF0IAogICAgICAgICAgdG9vIHdpdGgKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHNjcmVlbj4KY3ZzIC16IDMgY2hlY2tvdXQgd2luZS9BTk5PVU5DRSAKICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEJlIGF3YXJlLCB0aG91Z2gsIHRoYXQgZ2V0dGluZyB0aGUgZW50aXJlIFdpbmUgc291cmNlIHRyZWUgdmlhIENWUwogICAgICAgICAgaXMgcHJldHR5IHNsb3csIGVzcGVjaWFsbHkgY29tcGFyZWQgdG8gZ2V0dGluZyBXaW5lIGZyb20gYW4gRlRQIAogICAgICAgICAgbWlycm9yIG5lYXIgeW91LiBGb3IgYSBDVlMgbWlycm9yIGxpc3QsIHNlZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9kZXYuc2h0bWwiPgogICAgICAgICAgaHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbDwvdWxpbms+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUGF0Y2ggZmlsZXMgYXJlIGFsc28gYXZhaWxhYmxlLCBzbyB0aGF0IHlvdSBkb24ndCBoYXZlIHRvIGRvd25sb2FkLAogICAgICAgICAgaW5zdGFsbCwgYW5kIGNvbmZpZ3VyZSB0aGUgZW50aXJlIGRpc3RyaWJ1dGlvbiBlYWNoIHdlZWsgaWYgeW91IGFyZQogICAgICAgICAgY3VycmVudCB0byB0aGUgcHJldmlvdXMgcmVsZWFzZS4gUGF0Y2ggZmlsZSByZWxlYXNlIG5hbWVzIGZvbGxvdyB0aGUKICAgICAgICAgIHNhbWUgbnVtYmVyaW5nIGNvbnZlbnRpb24gYXMgZG8gdGhlIGdlbmVyYWwgcmVsZWFzZXMsIGFuZCB0YWtlIHRoZSAKICAgICAgICAgIGZvcm0KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lLVlZWVlNTURELmRpZmYuZ3ogIAogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFBhdGNoIGZpbGVzIGFyZSBhdmFpbGFibGUgZnJvbSB0aGUgc2FtZSBzaXRlcyB0aGF0IGRpc3RyaWJ1dGUgdGhlCiAgICAgICAgICBmdWxsIHJlbGVhc2UuIFRvIHVwZ3JhZGUgdG8gYSBuZXcgcmVsZWFzZSBieSB1c2luZyBhIHBhdGNoIGZpbGUsCiAgICAgICAgICBmaXJzdCBjZCB0byB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGUgcmVsZWFzZSAodGhlIG9uZQogICAgICAgICAgY29udGFpbmluZyB0aGUgUkVBRE1FIGZpbGUpLCB0aGVuIGRvIGEgIm1ha2UgY2xlYW4iLCBhbmQgcGF0Y2ggdGhlCiAgICAgICAgICByZWxlYXNlIHdpdGgKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHNjcmVlbj4KZ3VuemlwIC1jIHBhdGNoLWZpbGUgfCBwYXRjaCAtcDEgCiAgICAgICAgPC9zY3JlZW4+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICB3aGVyZSBwYXRjaC1maWxlIGlzIHRoZSBuYW1lIG9mIHRoZSBwYXRjaCBmaWxlIHNvbWV0aGluZyBsaWtlCiAgICAgICAgICBXaW5lLVlZWVlNTURELmRpZmYuZ3ouIFlvdSBjYW4gdGhlbiByZS1ydW4gLi9jb25maWd1cmUsIGFuZCB0aGVuIHJ1bgogICAgICAgICAgbWFrZSBkZXBlbmQgJiYgbWFrZQogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdSBhcmUgbWlycm9yaW5nIHRoZSBXaW5lIGRpc3RyaWJ1dGlvbiBmcm9tIHRoZSB0c3gtMTEgc2l0ZSBhbmQKICAgICAgICAgIHdpc2ggdG8gYmUgbGlzdGVkIGhlcmUgaW4gdGhpcyBGQVEsIHBsZWFzZSBhZGQgaXQgdG8gdGhlIAogICAgICAgICAgInRoaW5ncyB0byBnbyBpbnRvIHRoZSBkb2N1bWVudGF0aW9uIiBhcmVhLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkNhbi1JLWdldC1XaW5lLXVzaW5nLWN2c3VwIj4KICAgICAgICA8cGFyYT5DYW4gSSBnZXQgV2luZSB1c2luZyBjdnN1cD88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGUgQ1ZTIG1pcnJvcnMgZG9uJ3Qgb2ZmZXIgY3ZzdXAgc3VwcG9ydCB5ZXQsIGJ1dCB0aGUgbWFpbiBzZXJ2ZXIKICAgICAgICAgIGRvZXMuIFVzZSBhIDxmaWxlbmFtZT53aW5lLnN1cDwvZmlsZW5hbWU+IGZpbGUgb2Y6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxzY3JlZW4+CipkZWZhdWx0IGhvc3Q9Y3ZzLndpbmVocS5jb20KKmRlZmF1bHQgYmFzZT0vY3ZzCipkZWZhdWx0IHByZWZpeD0vY3ZzL3dpbmUKKmRlZmF1bHQgcmVsZWFzZT13aW5lCipkZWZhdWx0IGRlbGV0ZSAKCiMgSWYgeW91ciBuZXR3b3JrIGxpbmsgaXMgYSBUMSBvciBmYXN0ZXIsIGNvbW1lbnQgb3V0IHRoZSBmb2xsb3dpbmcgbGluZS4KIypkZWZhdWx0IGNvbXByZXNzIAoKKmRlZmF1bHQgdXNlLXJlbC1zdWZmaXggCndpbmUgCiAgICAgICAgPC9zY3JlZW4+CiAgICAgPC9hbnN3ZXI+CiAgICAgPC9xYW5kYWVudHJ5PgogICAgPC9xYW5kYWRpdj4KCiAgICA8cWFuZGFkaXYgaWQ9Ikluc3RhbGxpbmctQW5kLUNvbmZpZ3VyaW5nLVdpbmUiPgogICAgICA8dGl0bGU+SW5zdGFsbGluZyBBbmQgQ29uZmlndXJpbmcgV2luZTwvdGl0bGU+CiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1kby1JLWNvbXBpbGUtdGhlLVdpbmUtc291cmNlLWNvZGUiPgogICAgICAgIDxwYXJhPkhvdyBkbyBJIGNvbXBpbGUgdGhlIFdpbmUgZGlzdHJpYnV0aW9uIHNvdXJjZSBjb2RlPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFNlZSB0aGUgUkVBRE1FICg8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20vc291cmNlL1JFQURNRSI+CiAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5jb20vc291cmNlL1JFQURNRTwvdWxpbms+KSBmb3IgaW5zdHJ1Y3Rpb25zLgogICAgICAgICAgQWRkaXRpb25hbGx5LCB5b3UgbWF5IHdhbnQgdG8gc2V0IHRoZSA8cGFyYW1ldGVyPlRNUERJUjwvcGFyYW1ldGVyPgogICAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgPGNvbW1hbmQ+VE1QRElSPX4vdG1wPC9jb21tYW5kPiBvcgogICAgICAgICAgPGNvbW1hbmQ+VE1QRElSPS90bXA8L2NvbW1hbmQ+IChpZiB5b3UgYXJlIHJvb3QpLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1kby1JLWluc3RhbGwtV2luZG93cy1pbi1XaW5lIj4KICAgICAgICA8cGFyYT5Ib3cgZG8gSSBpbnN0YWxsIFdpbmRvd3MgaW4gV2luZSB1bmRlciBMaW51eD88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBTaW1wbGUgYW5zd2VyOiB5b3UgQ0FOJ1QuIFdpbmRvd3MgZGVtYW5kcyBkaXJlY3QgYWNjZXNzIHRvIHRoZQogICAgICAgICAgaGFyZHdhcmUgYW5kIGNhbm5vdCBnZXQgaXQgd2l0aCBXaW5lIGFuZCBVTklYIGluIHRoZSB3YXkKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgV0lUSE9VVCBXaW5kb3dzIHByaW1hcmlseS4gSWYgeW91IHdhbnQKICAgICAgICAgIHRvIHVzZSBhIFdpbmRvd3MgaW5zdGFsbGF0aW9uLCB0aGVuIHVzZSBhbiBleGlzdGluZyBpbnN0YWxsYXRpb24gCiAgICAgICAgICBhbG9uZ3NpZGUgdGhlIFVOSVggaW5zdGFsbGF0aW9uIChzZWUgdGhlIGR1YWwtYm9vdCBIT1dUTyBmb3IgeW91ciBPUwogICAgICAgICAgZm9yIG1vcmUgZGV0YWlscykuIE9yIGFsdGVybmF0aXZlbHkgdXNlIHRoZSBjYWJleHRyYWN0IHV0aWxpdHkgdG8KICAgICAgICAgIGV4dHJhY3QgV2luZG93cyBpbnN0YWxsIGFyY2hpdmVzIHRvIGEgZGlyZWN0b3J5IHRoYXQgeW91IHdhbnQgdG8gdXNlCiAgICAgICAgICBhcyBXaW5lJ3MgV2luZG93cyB0cmVlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1kby1JLWNvbmZpZ3VyZS1XaW5lLXRvLXJ1bi1vbi1teS1zeXN0ZW0iPgogICAgICAgIDxwYXJhPkhvdyBkbyBJIGNvbmZpZ3VyZSBXaW5lIHRvIHJ1biBvbiBteSBzeXN0ZW0/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSByZXF1aXJlcyB0aGF0IHlvdSBoYXZlIGEgY29uZmlnIGZpbGUgYXMgCiAgICAgICAgICA8ZmlsZW5hbWU+fi8ud2luZS9jb25maWc8L2ZpbGVuYW1lPi4gVGhlIGZvcm1hdCBvZiB0aGlzIGZpbGUgaXMKICAgICAgICAgIGV4cGxhaW5lZCBpbiB0aGUgPGZpbGVuYW1lPndpbmUuY29uZjwvZmlsZW5hbWU+IG1hbiBwYWdlLiBUaGUgZmlsZQogICAgICAgICAgPGZpbGVuYW1lPmRvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWc8L2ZpbGVuYW1lPiAoIAogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL3NvdXJjZS9kb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnIj4KICAgICAgICAgIGh0dHA6Ly93d3cud2luZWhxLmNvbS9zb3VyY2UvZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZzwvdWxpbms+KSAKICAgICAgICAgIGNvbnRhaW5zIGEgY29uZmlnIGZpbGUgZXhhbXBsZS4gTW9yZSBleHBsaWNpdCBkaXJlY3Rpb25zIGNhbiBiZSAKICAgICAgICAgIGZvdW5kIGluIHRoZSA8ZmlsZW5hbWU+UkVBRE1FPC9maWxlbmFtZT4gZmlsZSAoCiAgICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20vc291cmNlL1JFQURNRSI+CiAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5jb20vc291cmNlL1JFQURNRTwvdWxpbms+KSB0aGF0IHdpbGwgYmUgbG9jYXRlZCBpbgogICAgICAgICAgdGhlIGJhc2UgV2luZSBkaXJlY3RvcnkgYWZ0ZXIgeW91IGd1bnppcCBhbmQgdW50YXIgdGhlIGRpc3RyaWJ1dGlvbgogICAgICAgICAgZmlsZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctZG8tSS11cGdyYWRlLWNvbmZpZ3VyYXRpb24iPgogICAgICAgIDxwYXJhPkhvdyBkbyBJIHVwZ3JhZGUgV2luZSB3aXRob3V0IGxvc2luZyBteSB3b3JraW5nIGNvbmZpZ3VyYXRpb24/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgVXBncmFkaW5nIHRoZSB3aW5lIGluc3RhbGxhdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIGV4aXN0aW5nIHdpbmUKICAgICAgICAgIGNvbmZpZ3VyYXRpb24uIFNvIGFmdGVyIHVwZ3JhZGluZyB3aW5lIHlvdSBzdGlsbCBoYXZlIHRoZSBvbGQgKHdvcmtpbmcgKQogICAgICAgICAgd2luZSBjb25maWd1cmF0aW9uLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IklmLUktdXNlLVdpbmRvd3Mtd2hpY2gtdmVyc2lvbnMtT0siPgogICAgICAgIDxwYXJhPklmIEkgd2FudCB0byB1c2UgYSBXaW5kb3dzIGluc3RhbGwsIHdoaWNoIHZlcnNpb25zIGFyZSBPSz88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBFaXRoZXIgdXNlIGEgY2xhc3NpYyBuby13aW5kb3dzIGluc3RhbGwgKFdpbmUgaXMgZ2V0dGVyIGJldHRlciBhbGwKICAgICAgICAgIHRoZSB0aW1lKSBvciB1c2UgYSBXaW45eCBpbnN0YWxsIChXaW45NSwgOTgsIDk4U0UsIE1FKS4gRE9OJ1QgCiAgICAgICAgICBjb25maWd1cmUgV2luZSB0byB1c2UgYW4gTlQtYmFzZWQgV2luZG93cyBpbnN0YWxsIChOVCwgV2luMkssIFdpblhQKS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJZi1JLXVzZS1XaW5kb3dzLXdoaWNoLW9uZS13b3Jrcy1iZXN0Ij4KICAgICAgICA8cGFyYT5JZiBJIHVzZSBhIFdpbmRvd3MgaW5zdGFsbCB3aXRoIFdpbmUsIHdoaWNoIG9uZSB3b3JrcyBiZXN0PzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEFzIG9mIDAyLzIwMDI6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSdkIHNheSBXaW45OFNFIGlzIHRoZSBiZXN0IHZlcnNpb24gdG8gdXNlIHdpdGggV2luZSwgYXMgaXQncyBmYWlybHkKICAgICAgICAgIHdpZGVzcHJlYWQgYW1vbmdzdCBkZXZlbG9wZXJzIGFuZCByZWxhdGl2ZWx5IG9sZC4gVXNpbmcgV2luMksgZmlsZXMKICAgICAgICAgIGlzIDxlbXBoYXNpcz5kZWZpbml0ZWx5PC9lbXBoYXNpcz4gd29yc2UgdGhhbiBhIHBsYWluIG5vLXdpbmRvd3MgCiAgICAgICAgICBXaW5lIGluc3RhbGwsIGFuZCBXaW4gTUUgaXMgc2FpZCB0byBiZSBwcm9ibGVtYXRpYywgdG9vIChhcyBwcm9iYWJseQogICAgICAgICAgbm8gZGV2ZWxvcGVyIHVzZXMgaXQpLiBJbiBzaG9ydDogYWxsIFdpbjl4ICZsdDs9IFc5OFNFIGFyZSBnb29kLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikluc3RhbGxpbmctVmlzdWFsLUJhc2ljLWFwcHMtd29udC1ydW4iPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSW5zdGFsbGluZyBhcHBsaWNhdGlvbnMgZ2VuZXJhdGVkIGJ5IFZpc3VhbCBCYXNpYyB3b24ndCBydW4uIFdoYXQKICAgICAgICAgIHNob3VsZCBJIGRvPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE1ha2Ugc3VyZSB5b3UgaGF2ZSBhbGwgdGhlIFZCIHJ1bnRpbWUgbGlicmFyaWVzIGluc3RhbGxlZC4gWW91IG1heQogICAgICAgICAgbmVlZCB0byB1c2UgdGhlIG5hdGl2ZSBkbGwgdmJydW42MC5kbGwKICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaGVuLUktY2xpY2stb24tZXhlLWZpbGUtbm90aGluZy1oYXBwZW5zIj4KICAgICAgICA8cGFyYT5XaGVuIEkgY2xpY2sgb24gKi5leGUgZmlsZSBpbiBteSBmaWxlIE1hbmFnZXIsIG5vdGhpbmcgaGFwcGVuczwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBub3JtYWwgV2luZSByZWxlYXNlcyBkb24ndCBoYXZlIC5leGUgZXh0ZW5zaW9ucyByZWdpc3RlcmVkIGZvcgogICAgICAgICAgV2luZSBpbiBLREUvR25vbWUgeWV0LiBZb3UgaGF2ZSB0byBvcGVuIGEgdGVybWluYWwgd2luZG93IGluc3RlYWQKICAgICAgICAgIChvZnRlbiBhbiBpY29uIHNob3dpbmcgYSAiYmxhY2sgc2NyZWVuIikgYW5kIHR5cGUgc29tZXRoaW5nIGxpa2U6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxzY3JlZW4+CmNkIC9teS93aW5kb3dzL3Byb2dyYW0vZGlyZWN0b3J5CndpbmUgbXlwcm9ncmFtLmV4ZQogICAgICAgIDwvc2NyZWVuPgogICAgICAgIDxwYXJhPgogICAgICAgICAgT3IgYWx0ZXJuYXRpdmVseSB5b3UgY291bGQgZG93bmxvYWQgdGhlIENvZGVXZWF2ZXJzIFdpbmUgcHJldmlldyAKICAgICAgICAgIHdoaWNoIGluY2x1ZGVzIC5leGUgZXh0ZW5zaW9uIHJlZ2lzdHJhdGlvbiBmb3IgS0RFL0dub21lIGFuZCBhIG5pY2UKICAgICAgICAgIHNldHVwIHByb2dyYW0uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iYmFzaC13aW5lLUNvbW1hbmQtbm90LWZvdW5kLVdoYXQtY2FuLUktZG8iPgogICAgICAgIDxwYXJhPmJhc2ggIndpbmU6IENvbW1hbmQgbm90IGZvdW5kIiBXaGF0IGNhbiBJIGRvPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRyeSB0byByZWxvZ2luIGludG8gYmFzaC4gVGhhdCBtaWdodCBmaXggaXQuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgaXQgZG9lc24ndCwgdGhlbiBtYWtlIHN1cmUgdGhlIHdpbmUgYmluYXJ5IGlzIGluIHlvdXIgCiAgICAgICAgICA8cGFyYW1ldGVyPlBBVEg8L3BhcmFtZXRlcj4uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUnVuIGFzIHJvb3Q6CiAgICAgICAgPC9QYXJhPgogICAgICAgIDxzY3JlZW4+CmZpbmQgLyAtbmFtZSAid2luZSIgLXR5cGUgZiAtcGVybSArMTExCiAgICAgICAgPC9zY3JlZW4+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICB0byBmaW5kIHRoZSBwYXRoIHdoZXJlIHRoZSB3aW5lIGJpbmFyeSBpcyBpbi4gVGhlbiBjaGVjayB3aGV0aGVyCiAgICAgICAgPHBhcmFtZXRlcj5QQVRIPC9wYXJhbWV0ZXI+IGluY2x1ZGVzIGl0OgogICAgICAgIDwvcGFyYT4KICAgICAgICA8c2NyZWVuPgplY2hvICRQQVRIIAogICAgICAgIDwvc2NyZWVuPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgbm90LCBhZGQgdGhhdCBlLmcuIHRvIDxmaWxlbmFtZT4vZXRjL3Byb2ZpbGU8L2ZpbGVuYW1lPiBieSBkb2luZzoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHNjcmVlbj4KZXhwb3J0IFBBVEg9JFBBVEg6L3BhdGgvdG8vd2luZS9iaW5hcnkgCiAgICAgICAgPC9zY3JlZW4+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGF0IHNob3VsZCBoZWxwLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgICBJZiB5b3UgdXNlZCBhIHBhY2thZ2UgbWFuYWdlciAoPGNvbW1hbmQ+cnBtPC9jb21tYW5kPiBvciAKICAgICAgICAgICA8Y29tbWFuZD5hcHQ8L2NvbW1hbmQ+KSAtIFZlcmlmeSB5b3VyIHBhY2thZ2VzLiBUaGUgcGFja2FnZSAKICAgICAgICAgICA8ZmlsZW5hbWU+d2luZXNldHVwdGsucnBtPC9maWxlbmFtZT4gaXMgb25seSBhIGZyb250LWVuZCBmb3IgCiAgICAgICAgICAgbWFraW5nIGEgbWVhbmluZ2Z1bGwgY29uZmlnIGZpbGUsIGl0IERPRVMgTk9UIGluc3RhbGwgdGhlIHdpbmUKICAgICAgICAgICBwYWNrYWdlLi4uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgIEZvciBjb21wbGV0ZSBwYWNrYWdlcywgdXNlIDx1bGluayB1cmw9Imh0dHA6Ly93d3cucnBtZmluZC5uZXQvIj4KICAgICAgICAgICB3d3cucnBtZmluZC5uZXQ8L3VsaW5rPiBvciB0aGUgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEub3JnL2Rvd25sb2FkLyI+CiAgICAgICAgICAgRG93bmxvYWQ8L3VsaW5rPiBzZWN0aW9uLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1kby1JLXJlbW92ZS1XaW5lLWZyb20tbXktQ29tcHV0ZXIiPgogICAgICAgIDxwYXJhPkhvdyBkbyBJIHJlbW92ZSBXaW5lIGZyb20gbXkgQ29tcHV0ZXI/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQWxsIHlvdSBoYXZlIHRvIGRvIGlzIHRvIHR5cGU6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxzY3JlZW4+CnJtIC1mUiBcWy9wYXRoL1xdV2luZSoKICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE1ha2Ugc3VyZSB0aGF0IHlvdSBzcGVjaWZ5IHRoZSBleGFjdCBwYXRoIHdoZW4gdXNpbmcgdGhlIHBvd2VyZnVsCiAgICAgICAgICA8Y29tbWFuZD5ybSAtZlI8L2NvbW1hbmQ+IGNvbW1hbmQuIElmIHlvdSBhcmUgYWZyYWlkIHRoYXQgeW91IG1pZ2h0CiAgICAgICAgICBkZWxldGUgc29tZXRoaW5nIGltcG9ydGFudCwgb3IgbWlnaHQgb3RoZXJ3aXNlIGRlbGV0ZSBvdGhlciBmaWxlcyAKICAgICAgICAgIHdpdGhpbiB5b3VyIGZpbGVzeXN0ZW0sIDxjb21tYW5kPmNkPC9jb21tYW5kPiBpbnRvIGVhY2ggV2luZSAKICAgICAgICAgIHN1YmRpcmVjdG9yeSBzaW5nbHkgYW5kIGRlbGV0ZSB0aGUgZmlsZXMgZm91bmQgdGhlcmUgbWFudWFsbHksIAogICAgICAgICAgb25lIGZpbGUgb3IgZGlyZWN0b3J5IGF0IGEgdGltZS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgTmVpdGhlciB0aGUgV2luZSBkZXZlbG9wZXJzIGFuZCBwcm9ncmFtbWVycywgbm9yIHRoZSBXaW5lIEZBUSAKICAgICAgICBhdXRob3IvbWFpbnRhaW5lciwgY2FuIGJlIGhlbGQgcmVzcG9uc2libGUgZm9yIHlvdXIgZGVsZXRpbmcgYW55CiAgICAgICAgZmlsZXMgaW4geW91ciBvd24gZmlsZXN5c3RlbS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICA8L3FhbmRhZGl2PgoKICAgIDxxYW5kYWRpdiBpZD0iQWJvdXQtcnVubmluZy1XaW5lIj4KICAgICAgPHRpdGxlPkFib3V0IHJ1bm5pbmcgV2luZTwvdGl0bGU+CiAgICAgIDxwYXJhPgogICAgICAgICBJbiBjYXNlIG9mIHByb2JsZW1zIHdoZW4gcnVubmluZyBXaW5lLCBZb3UgbWF5IGFsc28gd2FudCB0byBzZWUgdGhlCiAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLm9yZy9mb20tbWV0YS9jYWNoZS8xOS5odG1sIj4KICAgICAgICAgV2luZSBUcm91Ymxlc2hvb3RpbmcgR3VpZGU8L3VsaW5rPi4KICAgICAgIDwvcGFyYT4KICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSG93LWRvLUktcnVuLWFuLU1TLVdpbmRvd3MtcHJvZ3JhbSI+CiAgICAgICAgPHBhcmE+SG93IGRvIEkgcnVuIGFuIE1TIFdpbmRvd3MgcHJvZ3JhbSB1bmRlciBXaW5lPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdoZW4gaW52b2tpbmcgV2luZSwgeW91IG11c3Qgc3BlY2lmeSB0aGUgZW50aXJlIHBhdGggdG8gdGhlCiAgICAgICAgICBleGVjdXRhYmxlLCBvciBieSBmaWxlbmFtZSBvbmx5LiBGb3IgZXhhbXBsZSB0byBydW4gV2luZG93cycKICAgICAgICAgIHNvbGl0YWlyZSwgdHlwZSBhbnkgb2YgdGhlIGZvbGxvd2luZzoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICA8Y29tbWFuZD53aW5lIHNvbDwvY29tbWFuZD4gb3IgPGNvbW1hbmQ+d2luZSBzb2wuZXhlPC9jb21tYW5kPgogICAgICAgICAgICh1c2luZyB0aGUgc2VhcmNoIHBhdGggdG8gbG9jYXRlIHRoZSBmaWxlKS4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgPGNvbW1hbmQ+d2luZSBjOlxcd2luZG93c1xcc29sLmV4ZTwvY29tbWFuZD4gCiAgICAgICAgICAgKHVzaW5nIGEgRE9TIGZpbGVuYW1lKS4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgPGNvbW1hbmQ+d2luZSAvdXNyL3dpbmRvd3Mvc29sLmV4ZTwvY29tbWFuZD4KICAgICAgICAgICAodXNpbmcgYSBVTklYIGZpbGVuYW1lKS4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgPGNvbW1hbmQ+d2luZSAiYzpcd2luZG93c1xzb2wuZXhlIjwvY29tbWFuZD4KICAgICAgICAgICAgKHVzaW5nIHF1b3RlZCBET1MgZmlsZW5hbWUpLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBwYXRoIG9mIHRoZSBmaWxlIHdpbGwgYWxzbyBiZSBhZGRlZCB0byB0aGUgcGF0aCB3aGVuIGEgZnVsbCBuYW1lCiAgICAgICAgICBpcyBzdXBwbGllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgoKICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaW5lLWNhbm5vdC1maW5kLU1TLVdpbmRvd3Mtb24tbXktZHJpdmUiPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSBoYXZlIGluc3RhbGxlZCBhbmQgY29uZmlndXJlZCBXaW5lLCBidXQgV2luZSBjYW5ub3QgZmluZCBNUyAKICAgICAgICAgIFdpbmRvd3Mgb24gbXkgZHJpdmUuIFdoZXJlIGRpZCBJIGdvIHdyb25nPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdSBoYXZlIGEgRE9TIHBhcnRpdGlvbiwgZmlyc3QgbWFrZSBzdXJlIHRoYXQgeW91IGhhdmUgbW91bnRlZAogICAgICAgICAgaXQsIGVpdGhlciBieSBwdXR0aW5nIHRoZSBlbnRyeSBpbnRvIDxmaWxlbmFtZT4vZXRjL2ZzdGFiPC9maWxlbmFtZT4sCiAgICAgICAgICBvciBieSBtYW51YWxseSBtb3VudGluZyBpdC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBSZW1lbWJlciB0b28gdGhhdCB1bmxlc3MgeW91ciB2ZXJzaW9uIG9mIFVOSVggY2FuIHNlZSB0aHJvdWdoIGl0LCBvcgogICAgICAgICAgeW91IGFyZSBydW5uaW5nIGEgdXRpbGl0eSB0aGF0IGNhbiBzZWUgdGhyb3VnaCBpdCwgeW91ciBET1MKICAgICAgICAgIHBhcnRpdGlvbiBtdXN0IG5vdCBiZSBsb2NhdGVkIG9uIGEgRHJpdmVzcGFjZWQsIERvdWJsZXNwYWNlZCBvcgogICAgICAgICAgU3RhY2tlcmVkIHBhcnRpdGlvbiwgYXMgbmVpdGhlciBMaW51eCwgRnJlZUJTRCwgTmV0QlNEIG9yIFdpbmUgY2FuCiAgICAgICAgICBuYXRpdmVseSAnc2VlJyBmaWxlcyBsb2NhdGVkIGluIHRoZXNlIGNvbXByZXNzZWQgRE9TIHBhcnRpdGlvbnMuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQ2hlY2sgeW91ciBwYXRoIHN0YXRlbWVudHMgaW4gdGhlIDxmaWxlbmFtZT53aW5lLmNvbmY8L2ZpbGVuYW1lPiAKICAgICAgICAgIGZpbGUuIE5vIGNhcGl0YWwgbGV0dGVycyBtYXkgYmUgdXNlZCBpbiBwYXRocywgYXMgdGhleSBhcmUgCiAgICAgICAgICBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBsb3dlcmNhc2UuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iUGFydHMtb2YtbXktYXBwLWRvLW5vdC13b3JrLVdoYXQtaXMtd3JvbmciPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSB3YXMgYWJsZSB0byBnZXQgdmFyaW91cyBNUyBXaW5kb3dzIHByb2dyYW1zIHRvIHJ1biwgYnV0IHBhcnRzIG9mCiAgICAgICAgICB0aGVtIGRvIG5vdCB3b3JrLiBXaGF0IGlzIHdyb25nPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUgaXMgbm90IGNvbXBsZXRlIGF0IHRoaXMgdGltZSwgc28gc29tZSBvZiBlYWNoIHByb2dyYW1zJyAKICAgICAgICAgIGZlYXR1cmVzIG1heSBub3Qgd29yay4gVGhleSB3aWxsIGluIHRpbWUgYXMgbW9yZSBvZiB0aGUgTVMgCiAgICAgICAgICBXaW5kb3dzIEFQSSBjYWxscyBhcmUgaW5jbHVkZWQgaW4gV2luZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJNZW51cy1kby1ub3Qtd29yay1ob3ctY2FuLUktZXhpdCI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJIGhhdmUgcnVuIHZhcmlvdXMgTVMgV2luZG93cyBwcm9ncmFtcywgYnV0IHNpbmNlIHRoZSBwcm9ncmFtIG1lbnVzCiAgICAgICAgICBkbyBub3Qgd29yaywgaG93IGNhbiBJIGV4aXQgdGhlc2UgcHJvZ3JhbXM/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgS2lsbCB0aGUgeHRlcm0gc2hlbGwgd2luZG93IHRoYXQgeW91IGNhbGxlZCB1cCB0byBydW4geW91ciBNUyAKICAgICAgICAgIFdpbmRvd3MgcHJvZ3JhbSwgYW5kIHRoZSBYIHdpbmRvdyB0aGF0IGFwcGVhcmVkIHdpdGggdGhlIHByb2dyYW0gCiAgICAgICAgICB3aWxsIGJlIGtpbGxlZCB0b28uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iQ2FuLUktdXNlLVdpbmUtd2l0aC1vdGhlci1MaW51eC1EaXN0cm9zIj4KICAgICAgICA8cGFyYT5DYW4gSSB1c2UgV2luZSB3aXRoIFN1U2UsIFBlYW51dCBvciBvdGhlciBMaW51eCBEaXN0cm8ncz88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZb3UgY2FuIHVzZSBXaW5lIG9uIGFueSBzdWZmaWNpZW50bHkgcmVjZW50IExpbnV4IGluc3RhbGxhdGlvbi4gVGhlCiAgICAgICAgICBhbW91bnQgb2Ygd29yayBnZXR0aW5nIFdpbmUgdXAgYW5kIHJ1bm5pbmcgZGVwZW5kcyBvbiB3aGV0aGVyIHRoZXJlCiAgICAgICAgICBhcmUgcHJvcGVyIHBhY2thZ2VzIGF2YWlsYWJsZSBvciBhIHNvdXJjZSBjb21waWxlIGhhcyB0byBiZSBkb25lLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkRvZXMtV2luZS13b3JrLXdpdGgtQU1ELVByb2Nlc3NvcnMiPgogICAgICAgIDxwYXJhPkRvZXMgV2luZSB3b3JrIHdpdGggQU1EIFByb2Nlc3NvcnM/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWWVzLCBpdCBkb2VzLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJDYW4tSS1sYXVuY2gtVW5peC1hcHAtZnJvbS1XaW5kb3dzLWFwcCI+CiAgICAgICAgPHBhcmE+IENhbiBJIGxhdW5jaCBhIFVuaXggcHJvZ3JhbSBmcm9tIGEgV2luZG93cyBwcm9ncmFtPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFN1cmUsIFdpbmUgc3VwcG9ydHMgdGhhdC4gSnVzdCBlbnRlciB0aGUgdW5peCBwcm9ncmFtIG5hbWUgd2hlcmV2ZXIKICAgICAgICAgIGEgcHJvZ3JhbSBoYXMgc29tZXRoaW5nIHRoYXQgaXQncyBzdXBwb3NlZCB0byBleGVjdXRlLGFuZCB0aGVuIGl0IAogICAgICAgICAgc2hvdWxkIGp1c3Qgd29yay4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkVycm9yLXdpdGgtaW5zdGFsbHNoaWVsZC02Ij4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEkgZ2V0IDxxdW90ZT5FcnJvciBpbnN0YWxsaW5nIGlLZXJuZWwuZXhlOiAoMHgxNDAwKTwvcXVvdGU+CiAgICAgICAgICB3aGVuIHJ1bm5pbmcgYW4gSW5zdGFsbHNoaWVsZCA2IGluc3RhbGxlcgogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdSBnZXQgdGhlIGVycm9yICJFcnJvciBpbnN0YWxsaW5nIGlLZXJuZWwuZXhlOiAoMHgxNDAwKSIgYXQgYW55CiAgICAgICAgICBwb2ludCwgaXQncyBwcm9iYWJseSBiZWNhdXNlIHRoZXJlIGFyZSBsZWZ0b3ZlciBwcm9jZXNzZXMgZnJvbSBhCiAgICAgICAgICBwcmV2aW91cyB0cnkuIFlvdSBjYW4gdmVyaWZ5IHRoaXMgd2l0aCB0aGUgY29tbWFuZAogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT48Y29tbWFuZD4kIHBzIGF1Z3h3IHwgZ3JlcCB3aW5lPC9jb21tYW5kPjwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHRoYXQgY29tbWFuZCBzaG93cyBvbGQgY29waWVzIG9mIHdpbmUgcnVubmluZyB5b3VyIHNldHVwLAogICAgICAgICAgeW91IG5lZWQgdG8ga2lsbCB0aGVtIGJlZm9yZSB5b3UgY2FuIHJ1biB0aGUgc2V0dXAgcHJvZ3JhbS4KICAgICAgICAgIElmIHRoZXJlIGFyZSBubyBvdGhlciBXaW5lIHByb2dyYW1zIHJ1bm5pbmcsIHlvdSBjYW4ga2lsbCB0aGVtCiAgICAgICAgICBhbGwgd2l0aCB0aGUgY29tbWFuZAogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT48Y29tbWFuZD4kIGtpbGxhbGwgd2luZTwvY29tbWFuZD48L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJZiB5b3UncmUgYWxzbyBydW5uaW5nIFdpbmUgcHJvZ3JhbXMgeW91IGNhcmUgYWJvdXQsIHlvdSdsbAogICAgICAgICAgaGF2ZSB0byBraWxsIG9mZiB0aGUgb2xkIFNldHVwIGluc3RhbmNlcyBvbmUgYnkgb25lIHVzaW5nCiAgICAgICAgICBraWxsIGFuZCB0aGUgaW5kaXZpZHVhbCBQSURzIChvciBwZXJoYXBzIFdpbmUncyBzcGlmZnkgVGFzayBNYW5hZ2VyLAogICAgICAgICAgd2hpY2ggZG9lc24ndCBleGlzdCB5ZXQpLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFlvdSBzaG91bGQgcmVwZWF0IHRoZSA8Y29tbWFuZD5wczwvY29tbWFuZD4gdG8gbWFrZSBzdXJlIHRoZSBvbGQgCiAgICAgICAgICB3aW5lcyBhcmUgZ29uZS4gCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KICAgIDwvcWFuZGFkaXY+CiAgICAgCiAgICA8cWFuZGFkaXYgaWQ9IkdldHRpbmctaGVscCI+CiAgICAgIDx0aXRsZT5HZXR0aW5nIGhlbHA8L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJcy10aGVyZS1hbnktZG9jdW1lbnRhdGlvbi1mb3ItV2luZSI+CiAgICAgICAgPHBhcmE+SXMgdGhlcmUgYW55IGRvY3VtZW50YXRpb24gZm9yIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWWVzLCBzZWUgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEub3JnL3N1cHBvcnQuc2h0bWwiPgogICAgICAgICAgaHR0cDovL3d3dy53aW5laHEuY29tL3N1cHBvcnQuc2h0bWwuPC91bGluaz4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJLWhhdmUtd3JpdHRlbi1zb21lLWRvY3VtZW50ZW50YXRpb24iPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSBjb3VsZG4ndCBmaW5kIHRoZSBhbnN3ZXIgdG8gbXkgcXVlc3Rpb24gaW4gdGhlIGRvY3VtZW50YXRpb24sIGJ1dAogICAgICAgICAgSSd2ZSB3cml0dGVuIGEgZG9jdW1lbnQgZXhwbGFpbmluZyBob3cgdG8gc29sdmUgaXQuIFdoYXQgc2hvdWxkIEkgZG8/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgVXBkYXRlcyBhbmQgYWRkaXRpb25zIHRvIHRoZSBXaW5lIGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHNob3VsZCBiZQogICAgICAgICAgc2VudCB0byB0aGUgd2luZS1wYXRjaGVzIG1haWxpbmcgbGlzdCBhdCAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9kZXYuc2h0bWwjbWwiPgogICAgICAgICAgaHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbCNtbDwvdWxpbms+LiBXZWJzaXRlIGFuZCBGQVEgCiAgICAgICAgICBhZGRpdGlvbnMgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBhcHByb3ByaWF0ZSBXaW5lIEtub3dsZWRnZWJhc2UKICAgICAgICAgIGRpcmVjdG9yeS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJcy10aGVyZS1hLVVzZW5ldC1uZXdzZ3JvdXAtZm9yLVdpbmUiPgogICAgICAgIDxwYXJhPklzIHRoZXJlIGEgVXNlbmV0IG5ld3Nncm91cCBmb3IgV2luZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZZXMsIGFuZCBpdCdzIGNhbGxlZCAKICAgICAgICAgIDx1bGluayB1cmw9Im5ld3M6Y29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lIj4KICAgICAgICAgIGNvbXAuZW11bGF0b3JzLm1zLXdpbmRvd3Mud2luZTwvdWxpbms+LiBUaGUgbmV3c2dyb3VwIHNlcnZlcyBhcyBhCiAgICAgICAgICBwbGFjZSBmb3IgdXNlcnMgYW5kIGRldmVsb3BlcnMgdG8gZGlzY3VzcyBXaW5lLCBhbmQgZm9yIG1pbm9yIAogICAgICAgICAgYW5ub3VuY2VtZW50cyBmb3IgdGhlIGdlbmVyYWwgcHVibGljLiBNYWpvciBhbm5vdW5jZW1lbnRzIHdpbGwgYmUKICAgICAgICAgIGNyb3NzcG9zdGVkIHRvIG90aGVyIGFwcHJvcHJpYXRlIG5ld3Nncm91cHMsIHN1Y2ggYXMgdGhlIGZvbGxvd2luZzoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICA8dWxpbmsgdXJsPSJuZXdzOmNvbXAub3MubGludXguYW5ub3VuY2UiPgogICAgICAgICAgICBjb21wLm9zLmxpbnV4LmFubm91bmNlPC91bGluaz4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgPHVsaW5rIHVybD0ibmV3czpjY29tcC53aW5kb3dzLnguYW5ub3VuY2UiPgogICAgICAgICAgICBjb21wLndpbmRvd3MueC5hbm5vdW5jZTwvdWxpbms+CiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgIDx1bGluayB1cmw9Im5ld3M6Y2NvbXAuZW11bGF0b3JzLmFubm91bmNlIj4KICAgICAgICAgICAgY29tcC5lbXVsYXRvcnMuYW5ub3VuY2U8L3VsaW5rPgogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdXIgVXNlbmV0IHNpdGUgZG9lcyBub3QgY2FycnkgdGhlc2UgbmV3c2dyb3VwcywgcGxlYXNlIHVyZ2UgCiAgICAgICAgICB5b3VyIElTUCdzIHN5c2FkbWluIHRvIGFkZCBhbmQvb3IgdXBsaW5rIHRoZW0uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSXMtdGhlcmUtYS1Xb3JsZC1XaWRlLVdlYi1zaXRlLWZvci1XaW5lIj4KICAgICAgICA8cGFyYT5JcyB0aGVyZSBhIFdvcmxkIFdpZGUgV2ViIHNpdGUgZm9yIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBIUSAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tIj4KICAgICAgICAgIGh0dHA6Ly93d3cud2luZWhxLmNvbTwvdWxpbms+KSBpcyB0aGUgb2ZmaWNpYWwgc2l0ZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJcy10aGVyZS1hbi1JUkMtY2hhbm5lbC1mb3ItV2luZSI+CiAgICAgICAgPHBhcmE+SXMgdGhlcmUgYW4gSVJDIGNoYW5uZWwgZm9yIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgU3VyZS4gSXQncyBjaGFubmVsIDxmaWxlbmFtZT4jV2luZUhRPC9maWxlbmFtZT4gb24gCiAgICAgICAgICA8ZmlsZW5hbWU+aXJjLmZyZWVub2RlLm5ldDwvZmlsZW5hbWU+IHNlZSAKICAgICAgICAgICg8dWxpbmsgdXJsPSJodHRwOi8vZnJlZW5vZGUubmV0Ij4KICAgICAgICAgIGh0dHA6Ly9mcmVlbm9kZS5uZXQ8L3VsaW5rPikuIFVzdWFsbHkgc2V2ZXJhbAogICAgICAgICAgV2luZSBkZXZlbG9wZXJzIGhhbmcgb3V0IHRoZXJlIGp1c3QgdG8gaGVscCBZT1UgOy0pCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSS10aGluay1JLWZvdW5kLWEtYnVnLUhvdy1kby1JLXJlcG9ydC1pdCI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJIHRoaW5rIEkndmUgZm91bmQgYSBidWcuIEhvdyBkbyBJIHJlcG9ydCB0aGlzIGJ1ZyB0byB0aGUgV2luZQogICAgICAgICAgcHJvZ3JhbW1pbmcgdGVhbT8KICAgICAgICA8L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBCdWcgcmVwb3J0cyBzaG91bGQgYmUgc3VibWl0dGVkIHRvIG91ciBvbmxpbmUgQnVnemlsbGEgc3lzdGVtIAogICAgICAgICAgKDx1bGluayB1cmw9Imh0dHA6Ly9idWdzLndpbmVocS5jb20iPgogICAgICAgICAgaHR0cDovL2J1Z3Mud2luZWhxLmNvbS88L3VsaW5rPikuIFlvdSBzaG91bGQgaW5jbHVkZSBhdCBsZWFzdCB0aGUKICAgICAgICAgIGZvbGxvd2luZzoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBUaGUgV2luZSB2ZXJzaW9uIHRlc3RlZAogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBUaGUgTVMgV2luZG93cyBwcm9ncmFtIG5hbWUgYW5kLCBpZiBwb3NzaWJsZSwgdGhlIHZlcnNpb24gbnVtYmVyIAogICAgICAgICAgICBvZiB0aGUgc29mdHdhcmUgdGVzdGVkCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgIEEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGJ1ZwogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBUaGUgcmVsZXZhbnQgcGFydChzKSBvZiB0aGUgb3V0cHV0IG9mIHRoZSBXaW5lIGRlYnVnZ2VyCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgIEEgc2NyZWVuc2hvdCBvZiB0aGUgdmlzdWFsIHByb2JsZW0sIGlmIGFwcGxpY2FibGUKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlcG9ydGluZyBidWdzIHBsZWFzZSBzZWUgdGhlIAogICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5vcmcvRG9jcy93aW5lLXVzZXIvYnVnLXJlcG9ydGluZy5zaHRtbCI+CiAgICAgICAgIEhvdyB0byByZXBvcnQgYSBidWc8L3VsaW5rPiBzZWN0aW9uIG9mIHRoZSBXaW5lIFVzZXJzIEd1aWRlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KICAgIDwvcWFuZGFkaXY+CiAKICAgIDxxYW5kYWRpdiBpZD0iSGVscGluZy1XaW5lLW9yLWJlY29taW5nLWEtV2luZS1kZXZlbG9wZXIiPgogICAgICA8dGl0bGU+SGVscGluZyBXaW5lIG9yIGJlY29taW5nIGEgV2luZSBkZXZlbG9wZXI8L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctZG8tSS1iZWNvbWUtYS1XaW5lLWRldmVsb3BlciI+CiAgICAgICAgPHBhcmE+SG93IGRvIEkgYmVjb21lIGEgV2luZSBkZXZlbG9wZXI/IFdoYXQgZG8gSSBuZWVkIHRvIGtub3c/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgeW91IGNhbiBwcm9ncmFtIEMsIHRoYXQncyBhIGdvb2Qgc3RhcnQuIERvd25sb2FkIHRoZSBzb3VyY2VzIHZpYQogICAgICAgICAgQ1ZTLCBzdWJzY3JpYmUgdG8gdGhlIG1haWxpbmcgbGlzdHMsIGxvb2sgYXJvdW5kIHRoZSBzb3VyY2UsIGFuZCBwYXkKICAgICAgICAgIGF0dGVudGlvbiB0byB0aGUgY29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lIG5ld3Nncm91cCBhbmQgdGhlIAogICAgICAgICAgbWFpbGluZyBsaXN0cyAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbCNtbCI+CiAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5jb20vZGV2LnNodG1sI21sPC91bGluaz4pLiBTZWUgaWYgdGhlcmUncyBhbnl0aGluZwogICAgICAgICAgdGhhdCB5b3UgdGhpbmsgeW91IGNhbiBmaXggb3Igd29yayBvbi4gWW91IHdvbid0IGhhdmUgbXVjaCB0cm91YmxlCiAgICAgICAgICBmaW5kaW5nIGFyZWFzIHRoYXQgbmVlZCB3b3JrIGluIFdpbmUgKGdyZXAgZm9yIEZJWE1FcyBpbiB0aGUgc291cmNlKS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctY2FuLUktY29udHJpYnV0ZS10by10aGUtV2luZS1wcm9qZWN0Ij4KICAgICAgICA8cGFyYT5Ib3cgY2FuIEkgaGVscCBjb250cmlidXRlIHRvIHRoZSBXaW5lIHByb2plY3QsIGFuZCBpbiB3aGF0IHdheShzKT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZb3UgY2FuIGNvbnRyaWJ1dGUgcHJvZ3JhbW1pbmcgb3IgZG9jdW1lbnRhdGlvbiBza2lsbHMsIG9yIG1vbmV0YXJ5CiAgICAgICAgICBvciBlcXVpcG1lbnQgZG9uYXRpb25zLCB0byBhaWQgdGhlIFdpbmUgZGV2ZWxvcGVycyBpbiByZWFjaGluZyB0aGVpciAKICAgICAgICAgIGdvYWxzLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEZvciBhIGxpc3Qgb2YgaWRlYXMgb2YgaG93IHlvdSBjYW4gaGVscCwgcGxlYXNlIGNvbnN1bHQgdGhlIAogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL2Fib3V0L2luZGV4LnBocD9jb250cmliIj4KICAgICAgICAgIFdpbmUgY29udHJpYiBwYWdlPC91bGluaz4uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSS13YW50LXRvLWhlbHAtYmV0YS10ZXN0LVdpbmUiPgogICAgICAgIDxwYXJhPkkgd2FudCB0byBoZWxwIGJldGEgdGVzdCBXaW5lLiBIb3cgY2FuIEkgZG8gdGhpcz88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lIHN0aWxsIGNvbnNpc3RzIG9mIHNvbWUgQWxwaGEgY29kZSBhdCB0aGlzIHRpbWUuIEhvd2V2ZXIsIGFueW9uZQogICAgICAgICAgaXMgd2VsY29tZSB0byBkb3dubG9hZCB0aGUgbGF0ZXN0IHZlcnNpb24sIGFuZCB0cnkgaXQgb3V0IGF0IGFueQogICAgICAgICAgdGltZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJLXdyb3RlLXNvbWUtY29kZS1JLXdvdWxkLWxpa2UtdG8tc3VibWl0Ij4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEkgaGF2ZSB3cml0dGVuIHNvbWUgY29kZSB0aGF0IEkgd291bGQgbGlrZSB0byBzdWJtaXQgdG8gdGhlIFdpbmUKICAgICAgICAgIHByb2plY3QuIEhvdyBkbyBJIGdvIGFib3V0IGRvaW5nIHRoaXM/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUGF0Y2hlcyBhcmUgZ3JlYXRseSBhcHByZWNpYXRlZCBhbmQgc2hvdWxkIGJlIHN1Ym1pdHRlZCB0byB0aGUgCiAgICAgICAgICB3aW5lLXBhdGNoZXMgbWFpbGluZyBsaXN0IAogICAgICAgICAgKDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9kZXYuc2h0bWwjbWwiPgogICAgICAgICAgaHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbCNtbDwvdWxpbms+KS4gQWxzbyBzZWUgdGhpcyBwYWdlIGZvcgogICAgICAgICAgYSBkZXNjcmlwdGlvbiBvZiB3aGF0IGhhcHBlbnMgdG8gc3VibWl0dGVkIHBhdGNoZXMuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogICAgPC9xYW5kYWRpdj4KIAogICAgPHFhbmRhZGl2IGlkPSJEZXZlbG9waW5nLXByb2dyYW1zLXVzaW5nLVdpbmUtV2luZUxpYiI+CiAgICAgIDx0aXRsZT5EZXZlbG9waW5nIHByb2dyYW1zIHVzaW5nIFdpbmUvV2luZUxpYjwvdGl0bGU+CiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkNhbi1JLXVzZS1XaW5lLXRvLXBvcnQtV2luMzItc291cmNlcy10by1Vbml4Ij4KICAgICAgICA8cGFyYT5DYW4gSSB1c2UgV2luZSB0byBwb3J0IG15IFdpbjMyIHNvdXJjZXMgdG8gVW5peD88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGF0IGlzIHRoZSBpZGVhIG9mIFdpbmVsaWIuIFJpZ2h0IG5vdyB5b3UgbWF5IHN0aWxsIGhhdmUgc29tZSAKICAgICAgICAgIGRpZmZpY3VsdGllcywgYnV0IHRoaXMgaXMgY2hhbmdpbmcgYWxsIHRoZSB0aW1lLiBSZWFkIHRoZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLm9yZy9Eb2NzL3dpbmVsaWItdXNlci8iPgogICAgICAgICAgV2luZWxpYiBVc2VyJ3MgR3VpZGU8L3VsaW5rPiBmb3IgaW5mby4KCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaWxsLU1GQy13b3JrLXdpdGgtV2luZS1XaGF0LWRvLUktbmVlZC10by1kbyI+CiAgICAgICAgPHBhcmE+V2lsbCBNRkMgd29yayB3aXRoIFdpbmU/IFdoYXQgZG8gSSBuZWVkIHRvIGRvPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUgaXMgbm90IGltcGxlbWVudGluZyBhbiBNRkMgcmVwbGFjZW1lbnQgbm9yIGRvZXMgaXQgaW50ZW5kIHRvLgogICAgICAgICAgSG93ZXZlciBpdCBpcyBwb3NzaWJsZSAod2l0aCBhIGxvdCBvZiB3b3JrKSB0byBjb21waWxlIHRoZSBNRkMgZnJvbQogICAgICAgICAgc291cmNlIGFuZCB0aHVzIHByb2R1Y2UgYW4gPGZpbGVuYW1lPm1mYzQyLmRsbC5zbzwvZmlsZW5hbWU+IGxpYnJhcnkuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUGxlYXNlIHJlZmVyIHRvIHRoZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLm9yZy9Eb2NzL3dpbmVsaWItdXNlci8iPgogICAgICAgICAgV2luZWxpYiBVc2VyJ3MgR3VpZGU8L3VsaW5rPiBmb3IgaG93IHRvIGRvIHRoaXMuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iQXJlLXRoZXJlLWNvbW1lcmNpYWwtYXBwcy1wb3J0ZWQtdXNpbmctV2luZSI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBBcmUgdGhlcmUgYW55IGNvbW1lcmNpYWwgYXBwbGljYXRpb25zIHdoaWNoIGhhdmUgYmVlbiBwb3J0ZWQKICAgICAgICAgIHVzaW5nIFdpbmU/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQSBmZXcgZXhhbXBsZXMgb2YgYXBwbGljYXRpb25zIHVzaW5nIFdpbmVsaWI6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxpdGVtaXplZGxpc3Q+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgQ29yZWwncyBXb3JkUGVyZmVjdCBPZmZpY2UgU3VpdGUgCiAgICAgICAgICAgICg8dWxpbmsgdXJsPSJodHRwOi8vbGludXguY29yZWwuY29tL3Byb2R1Y3RzL3dwbzIwMDBfbGludXgvaW5kZXguaHRtIj4KICAgICAgICAgICAgaHR0cDovL2xpbnV4LmNvcmVsLmNvbS9wcm9kdWN0cy93cG8yMDAwX2xpbnV4L2luZGV4Lmh0bTwvdWxpbms+KQogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBBYmlsaXR5IE9mZmljZQogICAgICAgICAgICAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy5hYmlsaXR5LmNvbS9saW51eC9hYmlsaXR5bGludXgucGhwIj4KICAgICAgICAgICAgIGh0dHA6Ly93d3cuYWJpbGl0eS5jb20vbGludXgvYWJpbGl0eWxpbnV4LnBocDwvdWxpbms+KQogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBJQk0ncyBXZWJzcGhlcmUKICAgICAgICAgICAgKDx1bGluayB1cmw9Imh0dHA6Ly93d3c3Yi5ib3VsZGVyLmlibS5jb20vZGwvc3d3cy9zd3dzZ2RkYi1wIj4KICAgICAgICAgICAgaHR0cDovL3d3dzdiLmJvdWxkZXIuaWJtLmNvbS9kbC9zd3dzL3N3d3NnZGRiLXA8L3VsaW5rPikKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBNYW55IG90aGVyIGltcG9ydGFudCBhcHBsaWNhdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gcG9ydGVkLiAod2UgYXJlCiAgICAgICAgICBzcGVha2luZyBvZiBzZXZlcmFsIHRvcCA1MDAgYXBwbGljYXRpb25zIGhlcmUpCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSG93LWNhbi1JLWRldGVjdC1XaW5lIj4KICAgICAgICA8cGFyYT5Ib3cgY2FuIEkgZGV0ZWN0IFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWW91IHJlYWxseSBzaG91bGRuJ3Qgd2FudCB0byBkbyB0aGlzLiBJZiB0aGVyZSdzIGEgcXVpcmsgaW4gV2luZSAKICAgICAgICAgIHlvdSBuZWVkIHRvIHdvcmsgYXJvdW5kLCBpdCdzIG11Y2ggYmV0dGVyIHRvIGZpeCBpdCBpbiBXaW5lIChhZnRlcgogICAgICAgICAgYWxsIHlvdSdyZSBhIGRldmVsb3Blciwgc28geW91IHNob3VsZCBiZSBhYmxlIHRvIGdhdGhlciBlbm91Z2ggaGVscAogICAgICAgICAgYW5kIGtub3dsZWRnZSB0byBmaXggaXQgZm9yIHJlYWwpLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgCiAgICA8L3FhbmRhZGl2PgoKICAgIDxxYW5kYWRpdiBpZD0iV2luZS1IUS1pc3N1ZXMiPgogICAgICA8dGl0bGU+V2luZSBIUSBpc3N1ZXM8L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaHktYXJlLXRoZS1tYWlsbGlzdHMtc2V0LXRvLXJlcGx5LXRvLWF1dGhvciI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaHkgYXJlIHRoZSBtYWlsbGlzdHMgc2V0IHRvIHJlcGx5IHRvIGF1dGhvciwgbm90IHRvIG1haWxpbmcgbGlzdD8KICAgICAgICA8L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGVyZSBhcmUgdmVyeSB2YWxpZCByZWFzb25zIGZvciBkb2luZyBzby4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctdG8tdW5zdWJzY3JpYmUtZnJvbS10aGUtbWFpbGluZy1saXN0cyI+CiAgICAgICAgPHBhcmE+SG93IHRvIHVuc3Vic2NyaWJlIGZyb20gdGhlIG1haWxpbmcgbGlzdHM/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUGxlYXNlIHNlZTogPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEub3JnL2RldmVsb3BtZW50LyNtbCI+CiAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5vcmcvZGV2ZWxvcG1lbnQvI21sPC91bGluaz4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgPC9xYW5kYWRpdj4KIAogIDwvcWFuZGFzZXQ+Cgo8IS0tIEtlZXAgdGhpcyBjb21tZW50IGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUKTG9jYWwgdmFyaWFibGVzOgptb2RlOiBzZ21sCnNnbWwtcGFyZW50LWRvY3VtZW50Oigid2luZS1kb2Muc2dtbCIgImJvb2siICJwYXJ0IiAiY2hhcHRlciIgIiIpCkVuZDoKLS0+Cg==