PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+CjxodG1sPjxoZWFkPgoKPHRpdGxlPlByaW1pdGl2ZXM8L3RpdGxlPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRoZW1lL3N0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiPjwvaGVhZD4KPGJvZHk+Cjx0YWJsZSBiYWNrZ3JvdW5kPSJ0aGVtZS9ia2QyLmdpZiIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgogIDx0Ym9keT48dHI+IAogICAgPHRkIHdpZHRoPSIxMCI+IAogICAgPC90ZD4KICAgIDx0ZCB3aWR0aD0iODUlIj4gCiAgICAgIDxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjYiPjxiPlByaW1pdGl2ZXM8L2I+PC9mb250PgogICAgPC90ZD4KICAgIDx0ZCB3aWR0aD0iMTEyIj48YSBocmVmPSJodHRwOi8vc3Bpcml0LnNmLm5ldCI+PGltZyBzcmM9InRoZW1lL3NwaXJpdC5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIiBoZWlnaHQ9IjQ4IiB3aWR0aD0iMTEyIj48L2E+PC90ZD4KICA8L3RyPgo8L3Rib2R5PjwvdGFibGU+Cjxicj4KPHRhYmxlIGJvcmRlcj0iMCI+CiAgPHRib2R5Pjx0cj4KICAgIDx0ZCB3aWR0aD0iMTAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9IjMwIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0idGhlbWUvdV9hcnIuZ2lmIiBib3JkZXI9IjAiPjwvYT48L3RkPgogICAgPHRkIHdpZHRoPSIzMCI+PGEgaHJlZj0ib3JnYW5pemF0aW9uLmh0bWwiPjxpbWcgc3JjPSJ0aGVtZS9sX2Fyci5naWYiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+CiAgICA8dGQgd2lkdGg9IjMwIj48YSBocmVmPSJvcGVyYXRvcnMuaHRtbCI+PGltZyBzcmM9InRoZW1lL3JfYXJyLmdpZiIgYm9yZGVyPSIwIj48L2E+PC90ZD4KICAgPC90cj4KPC90Ym9keT48L3RhYmxlPgo8cD5UaGUgZnJhbWV3b3JrIHByZWRlZmluZXMgc29tZSBwYXJzZXIgcHJpbWl0aXZlcy4gVGhlc2UgYXJlIHRoZSBtb3N0IGJhc2ljIGJ1aWxkaW5nIAogIGJsb2NrcyB0aGF0IHRoZSBjbGllbnQgdXNlcyB0byBidWlsZCBtb3JlIGNvbXBsZXggcGFyc2Vycy4gVGhlc2UgcHJpbWl0aXZlIHBhcnNlcnMgCiAgYXJlIHRlbXBsYXRlIGNsYXNzZXMsIG1ha2luZyB0aGVtIHZlcnkgZmxleGlibGUuPC9wPgo8cD5UaGVzZSBwcmltaXRpdmUgcGFyc2VycyBjYW4gYmUgaW5zdGFudGlhdGVkIGRpcmVjdGx5IG9yIHRocm91Z2ggYSB0ZW1wbGF0aXplZCAKICBoZWxwZXIgZnVuY3Rpb24uIEdlbmVyYWxseSwgdGhlIGhlbHBlciBmdW5jdGlvbiBpcyBmYXIgc2ltcGxlciB0byBkZWFsIHdpdGggCiAgYXMgaXQgaW52b2x2ZXMgbGVzcyB0eXBpbmcuPC9wPgo8cD5XZSBoYXZlIHNlZW4gdGhlIGNoYXJhY3RlciBsaXRlcmFsIHBhcnNlciBiZWZvcmUgdGhyb3VnaCB0aGUgZ2VuZXJhdG9yIGZ1bmN0aW9uIAogIDx0dD5jaF9wPC90dD4gd2hpY2ggaXMgbm90IHJlYWxseSBhIHBhcnNlciBidXQsIHJhdGhlciwgYSBwYXJzZXIgZ2VuZXJhdG9yLiAKICBDbGFzcyA8dHQ+Y2hsaXQmbHQ7Q2hhclQmZ3Q7PC90dD4gaXMgdGhlIGFjdHVhbCB0ZW1wbGF0ZSBjbGFzcyBiZWhpbmQgdGhlIGNoYXJhY3RlciAKICBsaXRlcmFsIHBhcnNlci4gVG8gaW5zdGFudGlhdGUgYSA8dHQ+Y2hsaXQ8L3R0PiBvYmplY3QsIHlvdSBtdXN0IGV4cGxpY2l0bHkgCiAgcHJvdmlkZSB0aGUgY2hhcmFjdGVyIHR5cGUsIDx0dD5DaGFyVDwvdHQ+LCBhcyBhIHRlbXBsYXRlIHBhcmFtZXRlciB3aGljaCBkZXRlcm1pbmVzIAogIHRoZSB0eXBlIG9mIHRoZSBjaGFyYWN0ZXIuIFRoaXMgdHlwZSB0eXBpY2FsbHkgY29ycmVzcG9uZHMgdG8gdGhlIGlucHV0IHR5cGUsIAogIHVzdWFsbHkgPHR0PmNoYXI8L3R0PiBvciA8dHQ+d2NoYXJfdDwvdHQ+LiBUaGUgZm9sbG93aW5nIGV4cHJlc3Npb24gY3JlYXRlcyAKICBhIHRlbXBvcmFyeSBwYXJzZXIgb2JqZWN0IHdoaWNoIHdpbGwgcmVjb2duaXplIHRoZSBzaW5nbGUgbGV0dGVyIDxzcGFuIGNsYXNzPSJxdW90ZXMiPidYJzwvc3Bhbj4uPC9wPgo8cHJlPjxjb2RlPjxmb250IGNvbG9yPSIjMDAwMDAwIj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2hsaXQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmNoYXI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDsoPC9zcGFuPjxzcGFuIGNsYXNzPSJsaXRlcmFsIj4nWCc8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPjwvZm9udD48L2NvZGU+PC9wcmU+CjxwPlVzaW5nIDx0dD5jaGxpdDwvdHQ+J3MgZ2VuZXJhdG9yIGZ1bmN0aW9uIDx0dD5jaF9wPC90dD4gc2ltcGxpZmllcyB0aGUgdXNhZ2UgCiAgb2YgdGhlIDx0dD5jaGxpdCZsdDsmZ3Q7PC90dD4gY2xhc3MgKHRoaXMgaXMgdHJ1ZSBvZiBtb3N0IFNwaXJpdCBwYXJzZXIgY2xhc3NlcyAKICBzaW5jZSBtb3N0IGhhdmUgY29ycmVzcG9uZGluZyBnZW5lcmF0b3IgZnVuY3Rpb25zKS4gSXQgaXMgY29udmVuaWVudCB0byBjYWxsIAogIHRoZSBmdW5jdGlvbiBiZWNhdXNlIHRoZSBjb21waWxlciB3aWxsIGRlZHVjZSB0aGUgdGVtcGxhdGUgdHlwZSB0aHJvdWdoIGFyZ3VtZW50IAogIGRlZHVjdGlvbiBmb3IgdXMuIFRoZSBleGFtcGxlIGFib3ZlIGNvdWxkIGJlIGV4cHJlc3NlZCBsZXNzIHZlcmJvc2VseSB1c2luZyAKICB0aGUgPHR0PmNoX3AgPC90dD5oZWxwZXIgZnVuY3Rpb24uIDwvcD4KPHByZT48Y29kZT48Zm9udCBjb2xvcj0iIzAwMDAwMCI+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNoX3A8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPidYJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KSAgPC9zcGFuPjxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBlcXVpdmFsZW50IHRvIGNobGl0Jmx0O2NoYXImZ3Q7KCdYJykgb2JqZWN0PC9zcGFuPjwvZm9udD48L2NvZGU+PC9wcmU+Cjx0YWJsZSBhbGlnbj0iY2VudGVyIiBib3JkZXI9IjAiIHdpZHRoPSI4MCUiPgogIDx0Ym9keT48dHI+IAogICAgPHRkIGNsYXNzPSJub3RlX2JveCI+PGltZyBzcmM9InRoZW1lL2xlbnMuZ2lmIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTUiPiA8Yj5QYXJzZXIgCiAgICAgIGdlbmVyYXRvcnM8L2I+PGJyPgogICAgICA8YnI+CiAgICAgIFdoZW5ldmVyIHlvdSBzZWUgYW4gaW52b2NhdGlvbiBvZiB0aGUgcGFyc2VyIGdlbmVyYXRvciBmdW5jdGlvbiwgaXQgaXMgZXF1aXZhbGVudCAKICAgICAgdG8gdGhlIHBhcnNlciBpdHNlbGYuIFRoZXJlZm9yZSwgd2Ugb2Z0ZW4gY2FsbCA8dHQ+Y2hfcDwvdHQ+IGEgY2hhcmFjdGVyIAogICAgICBwYXJzZXIsIGV2ZW4gaWYsIHRlY2huaWNhbGx5IHNwZWFraW5nLCBpdCBpcyBhIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIGEgCiAgICAgIGNoYXJhY3RlciBwYXJzZXIuPC90ZD4KICA8L3RyPgo8L3Rib2R5PjwvdGFibGU+CjxwPlRoZSBmb2xsb3dpbmcgZ3JhbW1hciBzbmlwcGV0IHNob3dzIHRoZXNlIGZvcm1zIGluIGFjdGlvbjo8L3A+CjxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImNvbW1lbnQiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIGEgcnVsZSBjYW4gInN0b3JlIiBhIHBhcnNlciBvYmplY3QuICBUaGV5J3JlIGNvdmVyZWQ8YnI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gbGF0ZXIsIGJ1dCBmb3Igbm93IGp1c3QgY29uc2lkZXIgYSBydWxlIGFzIGFuIG9wYXF1ZSB0eXBlPGJyPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnJ1bGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cjE8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiwgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5yMjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LCA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PGJyPjxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jaGxpdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+Y2hhcjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0OyA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPng8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPidYJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTsgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gZGVjbGFyZSBhIHBhcnNlciBuYW1lZCB4PGJyPjxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5yMSA8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPj0gPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jaGxpdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+Y2hhcjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Oyg8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPidYJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTsgIDwvc3Bhbj48c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gIGV4cGxpY2l0IGRlY2xhcmF0aW9uPGJyPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnIyIDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+PSA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPng8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjsgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gIHVzaW5nIHg8YnI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cjMgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj49IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2hfcDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+J1gnPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gIHVzaW5nIHRoZSBnZW5lcmF0b3I8L3NwYW4+PC9jb2RlPjwvcHJlPgo8aDI+IGNobGl0IGFuZCBjaF9wPC9oMj4KPHA+TWF0Y2hlcyBhIHNpbmdsZSBjaGFyYWN0ZXIgbGl0ZXJhbC4gPHR0PmNobGl0PC90dD4gaGFzIGEgc2luZ2xlIHRlbXBsYXRlIHR5cGUgCiAgcGFyYW1ldGVyIHdoaWNoIGRlZmF1bHRzIHRvIDx0dD5jaGFyPC90dD4gKGkuZS4gPHR0PmNobGl0Jmx0OyZndDs8L3R0PiBpcyBlcXVpdmFsZW50IAogIHRvIDx0dD5jaGxpdCZsdDtjaGFyJmd0OzwvdHQ+KS4gVGhpcyB0eXBlIHBhcmFtZXRlciBpcyB0aGUgY2hhcmFjdGVyIHR5cGUgdGhhdCAKICA8dHQ+Y2hsaXQ8L3R0PiB3aWxsIHJlY29nbml6ZSB3aGVuIHBhcnNpbmcuIFRoZSBmdW5jdGlvbiBnZW5lcmF0b3IgdmVyc2lvbiBkZWR1Y2VzIAogIHRoZSB0ZW1wbGF0ZSB0eXBlIHBhcmFtZXRlcnMgZnJvbSB0aGUgYWN0dWFsIGZ1bmN0aW9uIGFyZ3VtZW50cy4gVGhlIDx0dD5jaGxpdDwvdHQ+IAogIGNsYXNzIGNvbnN0cnVjdG9yIGFjY2VwdHMgYSBzaW5nbGUgcGFyYW1ldGVyOiB0aGUgY2hhcmFjdGVyIGl0IHdpbGwgbWF0Y2ggdGhlIAogIGlucHV0IGFnYWluc3QuIEV4YW1wbGVzOjwvcD4KPHByZT48Y29kZT48c3BhbiBjbGFzcz0iY29tbWVudCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cjEgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj49IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2hsaXQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+J1gnPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5yMiA8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPj0gPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jaGxpdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+d2NoYXJfdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Oyg8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkw8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPidYJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8YnI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cjMgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj49IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2hfcDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+J1gnPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzwvc3Bhbj48L2NvZGU+PC9wcmU+CjxwPkdvaW5nIGJhY2sgdG8gb3VyIG9yaWdpbmFsIGV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ncm91cCA8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPj0gPC9zcGFuPjxzcGFuIGNsYXNzPSJsaXRlcmFsIj4nKCcgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7Jmd0OyA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmV4cHIgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7Jmd0OyA8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPicpJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5leHByMSA8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPj0gPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pbnRlZ2VyIDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+fCA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmdyb3VwPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PGJyPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmV4cHIyIDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+PSA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmV4cHIxIDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0OyZndDsgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4qKCg8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPicqJyA8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDsmZ3Q7IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+ZXhwcjE8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPikgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj58IDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+Jy8nIDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0OyZndDsgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5leHByMTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KSk7PGJyPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmV4cHIgIDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+PSA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmV4cHIyIDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0OyZndDsgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4qKCg8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPicrJyA8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDsmZ3Q7IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+ZXhwcjI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPikgPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj58IDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+Jy0nIDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0OyZndDsgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5leHByMjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KSk7PC9zcGFuPjwvY29kZT48L3ByZT4KPHA+PC9wPgo8cD50aGUgY2hhcmFjdGVyIGxpdGVyYWxzIDx0dCBjbGFzcz0icXVvdGVzIj4nKCc8L3R0PiwgPHR0IGNsYXNzPSJxdW90ZXMiPicpJzwvdHQ+LCAKICA8dHQgY2xhc3M9InF1b3RlcyI+JysnPC90dD4sIDx0dCBjbGFzcz0icXVvdGVzIj4nLSc8L3R0PiwgPHR0IGNsYXNzPSJxdW90ZXMiPicqJzwvdHQ+IAogIGFuZCA8dHQgY2xhc3M9InF1b3RlcyI+Jy8nPC90dD4gaW4gdGhlIGdyYW1tYXIgZGVjbGFyYXRpb24gYXJlIDx0dD5jaGxpdDwvdHQ+IAogIG9iamVjdHMgdGhhdCBhcmUgaW1wbGljaXRseSBjcmVhdGVkIGJlaGluZCB0aGUgc2NlbmVzLjwvcD4KPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMCIgd2lkdGg9IjgwJSI+CiAgPHRib2R5Pjx0cj4gCiAgICA8dGQgY2xhc3M9Im5vdGVfYm94Ij48aW1nIHNyYz0idGhlbWUvbGVucy5naWYiIGhlaWdodD0iMTYiIHdpZHRoPSIxNSI+IDxiPmNoYXIgCiAgICAgIG9wZXJhbmRzPC9iPiA8YnI+CiAgICAgIDxicj4KICAgICAgVGhlIHJlYXNvbiB0aGlzIHdvcmtzIGlzIGZyb20gdHdvIHNwZWNpYWwgdGVtcGxhdGl6ZWQgb3ZlcmxvYWRzIG9mIDx0dD5vcGVyYXRvcjxzcGFuIGNsYXNzPSJvcGVyYXRvcnMiPiZndDsmZ3Q7PC9zcGFuPjwvdHQ+IAogICAgICB0aGF0IHRha2VzIGEgKDx0dD5jaGFyPC90dD4sIDx0dD4gUGFyc2VyVDwvdHQ+KSwgb3IgKDx0dD5QYXJzZXJUPC90dD4sIDx0dD5jaGFyPC90dD4pLiAKICAgICAgVGhlc2UgZnVuY3Rpb25zIGNvbnZlcnQgdGhlIGNoYXJhY3RlciBpbnRvIGEgPHR0PmNobGl0PC90dD4gb2JqZWN0LjwvdGQ+CiAgPC90cj4KPC90Ym9keT48L3RhYmxlPgo8cD4gT25lIG1heSBwcmVmZXIgdG8gZGVjbGFyZSB0aGVzZSBleHBsaWNpdGx5IGFzOjwvcD4KPHByZT48Y29kZT48c3BhbiBjbGFzcz0ic3BlY2lhbCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2hsaXQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cGx1czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+JysnPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jaGxpdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0OyZndDsgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5taW51czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+Jy0nPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jaGxpdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0OyZndDsgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj50aW1lczwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+JyonPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jaGxpdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0OyZndDsgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5kaXZpZGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPicvJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8YnI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2hsaXQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+b3BwYXI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPicoJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8YnI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2hsaXQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7IDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2xwYXI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPicpJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+PC9jb2RlPjwvcHJlPgo8aDI+cmFuZ2UgYW5kIHJhbmdlX3A8L2gyPgo8cD5BIDx0dD5yYW5nZTwvdHQ+IG9mIGNoYXJhY3RlcnMgaXMgY3JlYXRlZCBmcm9tIGEgbG93L2hpZ2ggY2hhcmFjdGVyIHBhaXIuIFN1Y2ggCiAgYSBwYXJzZXIgbWF0Y2hlcyBhIHNpbmdsZSBjaGFyYWN0ZXIgdGhhdCBpcyBpbiB0aGUgPHR0PnJhbmdlPC90dD4sIGluY2x1ZGluZyAKICBib3RoIGVuZHBvaW50cy4gTGlrZSA8dHQ+Y2hsaXQ8L3R0PiwgPHR0PnJhbmdlPC90dD4gaGFzIGEgc2luZ2xlIHRlbXBsYXRlIHR5cGUgCiAgcGFyYW1ldGVyIHdoaWNoIGRlZmF1bHRzIHRvIDx0dD5jaGFyPC90dD4uIFRoZSA8dHQ+cmFuZ2U8L3R0PiBjbGFzcyBjb25zdHJ1Y3RvciAKICBhY2NlcHRzIHR3byBwYXJhbWV0ZXJzOiB0aGUgY2hhcmFjdGVyIHJhbmdlICg8aT5mcm9tPC9pPiBhbmQgPGk+dG88L2k+LCBpbmNsdXNpdmUpIAogIGl0IHdpbGwgbWF0Y2ggdGhlIGlucHV0IGFnYWluc3QuIFRoZSBmdW5jdGlvbiBnZW5lcmF0b3IgdmVyc2lvbiBpcyA8dHQ+cmFuZ2VfcDwvdHQ+LiAKICBFeGFtcGxlczo8L3A+CjxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnJhbmdlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7Jmd0Oyg8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPidBJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+J1onPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gbWF0Y2hlcyAnQScuLidaJzxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5yYW5nZV9wPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJsaXRlcmFsIj4nYSc8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+PHNwYW4gY2xhc3M9ImxpdGVyYWwiPid6Jzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KSAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIG1hdGNoZXMgJ2EnLi4neic8L3NwYW4+PC9jb2RlPjwvcHJlPgo8cD5Ob3RlLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgImJlZm9yZSIgdGhlIHNlY29uZCwgYWNjb3JkaW5nIAogIHRvIHRoZSB1bmRlcmx5aW5nIGNoYXJhY3RlciBlbmNvZGluZyBjaGFyYWN0ZXJzLiBUaGUgcmFuZ2UsIGxpa2UgY2hsaXQgaXMgYSAKICBzaW5nbGUgY2hhcmFjdGVyIHBhcnNlci48L3A+Cjx0YWJsZSBhbGlnbj0iY2VudGVyIiBib3JkZXI9IjAiIHdpZHRoPSI4MCUiPgogIDx0Ym9keT48dHI+CiAgICA8dGQgY2xhc3M9Im5vdGVfYm94Ij48aW1nIHNyYz0idGhlbWUvYWxlcnQuZ2lmIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiPjxiPiAKICAgICAgQ2hhcmFjdGVyIG1hcHBpbmc8L2I+PGJyPgogICAgICA8YnI+CiAgICAgIENoYXJhY3RlciBtYXBwaW5nIHRvIGlzIGluaGVyZW50bHkgcGxhdGZvcm0gZGVwZW5kZW50LiBJdCBpcyBub3QgZ3VhcmFudGVlZCAKICAgICAgaW4gdGhlIHN0YW5kYXJkIGZvciBleGFtcGxlIHRoYXQgJ0EnICZsdDsgJ1onLCBob3dldmVyLCBpbiBtYW55IG9jY2FzaW9ucywgCiAgICAgIHdlIGFyZSB3ZWxsIGF3YXJlIG9mIHRoZSBjaGFyYWN0ZXIgc2V0IHdlIGFyZSB1c2luZyBzdWNoIGFzIEFTQ0lJLCBJU08tODg1OS0xIAogICAgICBvciBVbmljb2RlLiBUYWtlIGNhcmUgdGhvdWdoIHdoZW4gcG9ydGluZyB0byBhbm90aGVyIHBsYXRmb3JtLjwvdGQ+CiAgPC90cj4KPC90Ym9keT48L3RhYmxlPgo8aDI+IHN0cmxpdCBhbmQgc3RyX3A8L2gyPgo8cD5UaGlzIHBhcnNlciBtYXRjaGVzIGEgc3RyaW5nIGxpdGVyYWwuIDx0dD5zdHJsaXQ8L3R0PiBoYXMgYSBzaW5nbGUgdGVtcGxhdGUgCiAgdHlwZSBwYXJhbWV0ZXI6IGFuIGl0ZXJhdG9yIHR5cGUuIEludGVybmFsbHksIDx0dD5zdHJsaXQ8L3R0PiBob2xkcyBhIGJlZ2luL2VuZCAKICBpdGVyYXRvciBwYWlyIHBvaW50aW5nIHRvIGEgc3RyaW5nIG9yIGEgY29udGFpbmVyIG9mIGNoYXJhY3RlcnMuIFRoZSA8dHQ+c3RybGl0PC90dD4gCiAgYXR0ZW1wdHMgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgaW5wdXQgc3RyZWFtIHdpdGggdGhpcyBzdHJpbmcuIFRoZSB0ZW1wbGF0ZSB0eXBlIAogIHBhcmFtZXRlciBkZWZhdWx0cyB0byA8dHQ+Y2hhciBjb25zdDxzcGFuIGNsYXNzPSJvcGVyYXRvcnMiPio8L3NwYW4+PC90dD4uIDx0dD5zdHJsaXQ8L3R0PiAKICBoYXMgdHdvIGNvbnN0cnVjdG9ycy4gVGhlIGZpcnN0IGFjY2VwdHMgYSBudWxsLXRlcm1pbmF0ZWQgY2hhcmFjdGVyIHBvaW50ZXIuIAogIFRoaXMgY29uc3RydWN0b3IgbWF5IGJlIHVzZWQgdG8gYnVpbGQgPHR0PnN0cmxpdHM8L3R0PiBmcm9tIHF1b3RlZCBzdHJpbmcgbGl0ZXJhbHMuIAogIFRoZSBzZWNvbmQgY29uc3RydWN0b3IgdGFrZXMgaW4gYSBmaXJzdC9sYXN0IGl0ZXJhdG9yIHBhaXIuIFRoZSBmdW5jdGlvbiBnZW5lcmF0b3IgCiAgdmVyc2lvbiBpcyA8dHQ+c3RyX3A8L3R0Pi4gRXhhbXBsZXM6PC9wPgo8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJjb21tZW50Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdHJsaXQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7KDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RyaW5nIj4iSGVsbG8gV29ybGQiPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPGJyPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnN0cl9wPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJzdHJpbmciPiJIZWxsbyBXb3JsZCI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8YnI+PGJyPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnN0ZDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnN0cmluZyA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm1zZzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RyaW5nIj4iSGVsbG8gV29ybGQiPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdHJsaXQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnN0ZDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnN0cmluZzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnN0X2l0ZXJhdG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bXNnPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5iZWdpbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCksIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bXNnPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5lbmQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpKTs8L3NwYW4+PC9jb2RlPjwvcHJlPgo8dGFibGUgYWxpZ249ImNlbnRlciIgYm9yZGVyPSIwIiB3aWR0aD0iODAlIj4KICA8dGJvZHk+PHRyPgogICAgPHRkIGNsYXNzPSJub3RlX2JveCI+PGltZyBzcmM9InRoZW1lL25vdGUuZ2lmIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiPiA8Yj5DaGFyYWN0ZXIgCiAgICAgIGFuZCBwaHJhc2UgbGV2ZWwgcGFyc2luZzwvYj48YnI+CiAgICAgIDxicj4KICAgICAgVHlwaWNhbCBwYXJzZXJzIHJlZ2FyZCB0aGUgcHJvY2Vzc2luZyBvZiBjaGFyYWN0ZXJzIChzeW1ib2xzIHRoYXQgZm9ybSB3b3JkcyAKICAgICAgb3IgbGV4ZW1lcykgYW5kIHBocmFzZXMgKHdvcmRzIHRoYXQgZm9ybSBzZW50ZW5jZXMpIGFzIHNlcGFyYXRlIGRvbWFpbnMuIAogICAgICBFbnRpdGllcyBzdWNoIGFzIHJlc2VydmVkIHdvcmRzLCBvcGVyYXRvcnMsIGxpdGVyYWwgc3RyaW5ncywgbnVtZXJpY2FsIGNvbnN0YW50cywgCiAgICAgIGV0Yy4sIHdoaWNoIGNvbnN0aXR1dGUgdGhlIHRlcm1pbmFscyBvZiBhIGdyYW1tYXIgYXJlIHVzdWFsbHkgZXh0cmFjdGVkIAogICAgICBmaXJzdCBpbiBhIHNlcGFyYXRlIGxleGljYWwgYW5hbHlzaXMgc3RhZ2UuPGJyPgogICAgICA8YnI+CiAgICAgIEF0IHRoaXMgcG9pbnQsIGFzIGV2aWRlbnQgaW4gdGhlIGV4YW1wbGVzIHdlIGhhdmUgc28gZmFyLCBpdCBpcyBpbXBvcnRhbnQgCiAgICAgIHRvIG5vdGUgdGhhdCwgY29udHJhcnkgdG8gc3RhbmRhcmQgcHJhY3RpY2UsIHRoZSBTcGlyaXQgZnJhbWV3b3JrIGhhbmRsZXMgCiAgICAgIHBhcnNpbmcgdGFza3MgYXQgYm90aCB0aGUgY2hhcmFjdGVyIGxldmVsIGFzIHdlbGwgYXMgdGhlIHBocmFzZSBsZXZlbC4gT25lIAogICAgICBtYXkgY29uc2lkZXIgdGhhdCBhIGxleGljYWwgYW5hbHl6ZXIgaXMgc2VhbWxlc3NseSBpbnRlZ3JhdGVkIGluIHRoZSBTcGlyaXQgCiAgICAgIGZyYW1ld29yay48YnI+CiAgICAgIDxicj4KICAgICAgQWx0aG91Z2ggdGhlIFNwaXJpdCBwYXJzZXIgbGlicmFyeSBkb2VzIG5vdCBuZWVkIGEgc2VwYXJhdGUgbGV4aWNhbCBhbmFseXplciwgCiAgICAgIHRoZXJlIGlzIG5vIHJlYXNvbiB3aHkgd2UgY2Fubm90IGhhdmUgb25lLiBPbmUgY2FuIGFsd2F5cyBoYXZlIGFzIG1hbnkgcGFyc2VyIAogICAgICBsYXllcnMgYXMgbmVlZGVkLiBJbiB0aGVvcnksIG9uZSBtYXkgY3JlYXRlIGEgcHJlcHJvY2Vzc29yLCBhIGxleGljYWwgYW5hbHl6ZXIgCiAgICAgIGFuZCBhIHBhcnNlciBwcm9wZXIsIGFsbCB1c2luZyB0aGUgc2FtZSBmcmFtZXdvcmsuPC90ZD4KICA8L3RyPgo8L3Rib2R5PjwvdGFibGU+CjxoMj5jaHNlcSBhbmQgY2hzZXFfcDwvaDI+CjxwPk1hdGNoZXMgYSBjaGFyYWN0ZXIgc2VxdWVuY2UuIDx0dD5jaHNlcTwvdHQ+IGhhcyB0aGUgc2FtZSB0ZW1wbGF0ZSB0eXBlIHBhcmFtZXRlcnMgCiAgYW5kIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgYXMgc3RybGl0LiBUaGUgZnVuY3Rpb24gZ2VuZXJhdG9yIHZlcnNpb24gaXMgPHR0PmNoc2VxX3A8L3R0Pi4gCiAgRXhhbXBsZXM6PC9wPgo8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jaHNlcTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0OyZndDsoPC9zcGFuPjxzcGFuIGNsYXNzPSJzdHJpbmciPiJBQkNERUZHIjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jaHNlcV9wPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJzdHJpbmciPiJBQkNERUZHIjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj48L2NvZGU+PC9wcmU+CjxwPjx0dD5zdHJsaXQ8L3R0PiBpcyBhbiBpbXBsaWNpdCBsZXhlbWUuIFRoYXQgaXMsIGl0IHdvcmtzIHNvbGVseSBvbiB0aGUgY2hhcmFjdGVyIAogIGxldmVsLiA8dHQ+Y2hzZXE8L3R0PiwgPHR0PnN0cmxpdDwvdHQ+J3MgdHdpbiwgb24gdGhlIG90aGVyIGhhbmQsIGNhbiB3b3JrIG9uIAogIGJvdGggdGhlIGNoYXJhY3RlciBhbmQgcGhyYXNlIGxldmVscy4gV2hhdCB0aGlzIHNpbXBseSBtZWFucyBpcyB0aGF0IGl0IGNhbiAKICBpZ25vcmUgd2hpdGUgc3BhY2VzIGluIGJldHdlZW4gdGhlIHN0cmluZyBjaGFyYWN0ZXJzLiBGb3IgZXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNoc2VxPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7Jmd0Oyg8L3NwYW4+PHNwYW4gY2xhc3M9InN0cmluZyI+IkFCQ0RFRkciPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPjwvY29kZT48L3ByZT4KPHA+Y2FuIHBhcnNlOjwvcD4KPHByZT48c3BhbiBjbGFzcz0ic3BlY2lhbCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+QUJDREVGRzxicj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5BIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+QiA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkMgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5EIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+RSA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5HPGJyPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkFCIDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Q0QgPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5FRkc8L3NwYW4+PC9wcmU+CjxoMj5Nb3JlIGNoYXJhY3RlciBwYXJzZXJzPC9oMj4KPHA+VGhlIGZyYW1ld29yayBhbHNvIHByZWRlZmluZXMgdGhlIGZ1bGwgcmVwZXJ0b2lyZSBvZiBzaW5nbGUgY2hhcmFjdGVyIHBhcnNlcnM6PC9wPgo8dGFibGUgYWxpZ249ImNlbnRlciIgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIj4KICA8dGJvZHk+PHRyPiAKICAgIDx0ZCBjbGFzcz0idGFibGVfdGl0bGUiIGNvbHNwYW49IjIiPlNpbmdsZSBjaGFyYWN0ZXIgcGFyc2VyczwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGNsYXNzPSJ0YWJsZV9jZWxscyIgd2lkdGg9IjMwJSI+PGI+YW55Y2hhcl9wPC9iPjwvdGQ+CiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iNzAlIj5NYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyIChpbmNsdWRpbmcgCiAgICAgIHRoZSBudWxsIHRlcm1pbmF0b3I6ICdcMCcpPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iMzAlIj48Yj5hbG51bV9wPC9iPjwvdGQ+CiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iNzAlIj5NYXRjaGVzIGFscGhhLW51bWVyaWMgY2hhcmFjdGVyczwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGNsYXNzPSJ0YWJsZV9jZWxscyIgd2lkdGg9IjMwJSI+PGI+YWxwaGFfcDwvYj48L3RkPgogICAgPHRkIGNsYXNzPSJ0YWJsZV9jZWxscyIgd2lkdGg9IjcwJSI+TWF0Y2hlcyBhbHBoYWJldGljIGNoYXJhY3RlcnM8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBjbGFzcz0idGFibGVfY2VsbHMiIHdpZHRoPSIzMCUiPjxiPmJsYW5rX3A8L2I+PC90ZD4KICAgIDx0ZCBjbGFzcz0idGFibGVfY2VsbHMiIHdpZHRoPSI3MCUiPk1hdGNoZXMgc3BhY2VzIG9yIHRhYnM8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBjbGFzcz0idGFibGVfY2VsbHMiIHdpZHRoPSIzMCUiPjxiPmNudHJsX3A8L2I+PC90ZD4KICAgIDx0ZCBjbGFzcz0idGFibGVfY2VsbHMiIHdpZHRoPSI3MCUiPk1hdGNoZXMgY29udHJvbCBjaGFyYWN0ZXJzPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iMzAlIj48Yj5kaWdpdF9wPC9iPjwvdGQ+CiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iNzAlIj5NYXRjaGVzIG51bWVyaWMgZGlnaXRzPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iMzAlIj48Yj5ncmFwaF9wPC9iPjwvdGQ+CiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iNzAlIj5NYXRjaGVzIG5vbi1zcGFjZSBwcmludGluZyBjaGFyYWN0ZXJzPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iMzAlIj48Yj5sb3dlcl9wPC9iPjwvdGQ+CiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iNzAlIj5NYXRjaGVzIGxvd2VyIGNhc2UgbGV0dGVyczwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGNsYXNzPSJ0YWJsZV9jZWxscyIgd2lkdGg9IjMwJSI+PGI+cHJpbnRfcDwvYj48L3RkPgogICAgPHRkIGNsYXNzPSJ0YWJsZV9jZWxscyIgd2lkdGg9IjcwJSI+TWF0Y2hlcyBwcmludGFibGUgY2hhcmFjdGVyczwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGNsYXNzPSJ0YWJsZV9jZWxscyIgd2lkdGg9IjMwJSI+PGI+cHVuY3RfcDwvYj48L3RkPgogICAgPHRkIGNsYXNzPSJ0YWJsZV9jZWxscyIgd2lkdGg9IjcwJSI+TWF0Y2hlcyBwdW5jdHVhdGlvbiBzeW1ib2xzPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iMzAlIj48Yj5zcGFjZV9wPC9iPjwvdGQ+CiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iNzAlIj5NYXRjaGVzIHNwYWNlcywgdGFicywgcmV0dXJucywgYW5kIG5ld2xpbmVzPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iMzAlIj48Yj51cHBlcl9wPC9iPjwvdGQ+CiAgICA8dGQgY2xhc3M9InRhYmxlX2NlbGxzIiB3aWR0aD0iNzAlIj5NYXRjaGVzIHVwcGVyIGNhc2UgbGV0dGVyczwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGNsYXNzPSJ0YWJsZV9jZWxscyIgd2lkdGg9IjMwJSI+PGI+eGRpZ2l0X3A8L2I+PC90ZD4KICAgIDx0ZCBjbGFzcz0idGFibGVfY2VsbHMiIHdpZHRoPSI3MCUiPk1hdGNoZXMgaGV4YWRlY2ltYWwgZGlnaXRzPC90ZD4KICA8L3RyPgo8L3Rib2R5PjwvdGFibGU+CjxoMj48YSBuYW1lPSJuZWdhdGlvbiI+PC9hPm5lZ2F0aW9uIH48L2gyPgo8cD5TaW5nbGUgY2hhcmFjdGVyIHBhcnNlcnMgc3VjaCBhcyB0aGUgPHR0PmNobGl0PC90dD4sIDx0dD5yYW5nZTwvdHQ+LCA8dHQ+YW55Y2hhcl9wPC90dD4sIAogIDx0dD5hbG51bV9wPC90dD4gZXRjLiBjYW4gYmUgbmVnYXRlZC4gRm9yIGV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4gICAgfjwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2hfcDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibGl0ZXJhbCI+J3gnPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPjwvY29kZT48L3ByZT4KPHA+bWF0Y2hlcyBhbnkgY2hhcmFjdGVyIGV4Y2VwdCA8dHQ+J3gnPC90dD4uIERvdWJsZSBuZWdhdGlvbiBvZiBhIGNoYXJhY3RlciBwYXJzZXIgCiAgY2FuY2VscyBvdXQgdGhlIG5lZ2F0aW9uLiA8dHQ+fn5hbHBoYV9wPC90dD4gaXMgZXF1aXZhbGVudCB0byA8dHQ+YWxwaGFfcDwvdHQ+LjwvcD4KPGgyPmVvbF9wPC9oMj4KPHA+TWF0Y2hlcyB0aGUgZW5kIG9mIGxpbmUgKENSL0xGIGFuZCBjb21iaW5hdGlvbnMgdGhlcmVvZikuPC9wPgo8aDI+PGI+bm90aGluZ19wPC9iPjwvaDI+CjxwPk5ldmVyIG1hdGNoZXMgYW55dGhpbmcgYW5kIGFsd2F5cyBmYWlscy48L3A+CjxoMj5lbmRfcDwvaDI+CjxwPk1hdGNoZXMgdGhlIGVuZCBvZiBpbnB1dCAocmV0dXJucyBhIHN1Y2Vzc2Z1bCBtYXRjaCB3aXRoIDAgbGVuZ3RoIHdoZW4gdGhlIAogIGlucHV0IGlzIGV4aGF1c3RlZCk8L3A+PGgyPmVwc19wPC9oMj4KPHA+VGhlIDxzdHJvbmc+RXBzaWxvbjwvc3Ryb25nPiAoPHR0PmVwc2lsb25fcDwvdHQ+IGFuZCA8dHQ+ZXBzX3A8L3R0PikgaXMgYSBtdWx0aS1wdXJwb3NlIAogIHBhcnNlciB0aGF0IHJldHVybnMgYSB6ZXJvIGxlbmd0aCBtYXRjaC4gU2VlIDxhIGhyZWY9ImVwc2lsb24uaHRtbCI+RXBzaWxvbjwvYT4gZm9yIGRldGFpbHMuPC9wPjxwPjwvcD4KPHRhYmxlIGJvcmRlcj0iMCI+CiAgPHRib2R5Pjx0cj4gCiAgICA8dGQgd2lkdGg9IjEwIj48L3RkPgogICAgPHRkIHdpZHRoPSIzMCI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9InRoZW1lL3VfYXJyLmdpZiIgYm9yZGVyPSIwIj48L2E+PC90ZD4KICAgIDx0ZCB3aWR0aD0iMzAiPjxhIGhyZWY9Im9yZ2FuaXphdGlvbi5odG1sIj48aW1nIHNyYz0idGhlbWUvbF9hcnIuZ2lmIiBib3JkZXI9IjAiPjwvYT48L3RkPgogICAgPHRkIHdpZHRoPSIzMCI+PGEgaHJlZj0ib3BlcmF0b3JzLmh0bWwiPjxpbWcgc3JjPSJ0aGVtZS9yX2Fyci5naWYiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+CiAgPC90cj4KPC90Ym9keT48L3RhYmxlPgo8YnI+CjxociBzaXplPSIxIj4KPHAgY2xhc3M9ImNvcHlyaWdodCI+Q29weXJpZ2h0IKkgMTk5OC0yMDAzIEpvZWwgZGUgR3V6bWFuPGJyPgogIENvcHlyaWdodCCpIDIwMDMgTWFydGluIFdpbGxlPGJyPgogIDxicj4KICA8Zm9udCBzaXplPSIyIj5Vc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCiAgICBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAogICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KSA8L2ZvbnQ+IDwvcD4KPHA+Jm5ic3A7PC9wPgo8L2JvZHk+PC9odG1sPg==