PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIgeG1sbnM9Imh0dHA6Ly91c2VmdWxpbmMuY29tL25zL2RvYXAjIj4KCiAgPFByb2plY3Q+CiAgICA8bmFtZT5JbWFnZU1hZ2ljazwvbmFtZT4KICAgIDxzaG9ydGRlc2MgeG1sOmxhbmc9ImVuIj5JbWFnZU1hZ2ljazogY29udmVydCwgZWRpdCwgYW5kIGNvbXBvc2UgaW1hZ2VzLjwvc2hvcnRkZXNjPgogICAgPGhvbWVwYWdlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvIi8+CiAgICA8Y3JlYXRlZD5AUEFDS0FHRV9SRUxFQVNFX0RBVEVAPC9jcmVhdGVkPgoKICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZW4iPgpJbWFnZU1hZ2lja64gaXMgYSBzb2Z0d2FyZSBzdWl0ZSB0byBjcmVhdGUsIGVkaXQsIGNvbXBvc2UsIG9yIGNvbnZlcnQgYml0bWFwIGltYWdlcy4gSXQgY2FuIHJlYWQgYW5kIHdyaXRlIGltYWdlcyBpbiBhIHZhcmlldHkgb2YgZm9ybWF0cyAob3ZlciAxMDApIGluY2x1ZGluZyBEUFgsIEVYUiwgR0lGLCBKUEVHLCBKUEVHLTIwMDAsIFBERiwgUGhvdG9DRCwgUE5HLCBQb3N0c2NyaXB0LCBTVkcsIGFuZCBUSUZGLiBVc2UgSW1hZ2VNYWdpY2sgdG8gcmVzaXplLCBmbGlwLCBtaXJyb3IsIHJvdGF0ZSwgZGlzdG9ydCwgc2hlYXIgYW5kIHRyYW5zZm9ybSBpbWFnZXMsIGFkanVzdCBpbWFnZSBjb2xvcnMsIGFwcGx5IHZhcmlvdXMgc3BlY2lhbCBlZmZlY3RzLCBvciBkcmF3IHRleHQsIGxpbmVzLCBwb2x5Z29ucywgZWxsaXBzZXMgYW5kIELpemllciBjdXJ2ZXMuCgpUaGUgZnVuY3Rpb25hbGl0eSBvZiBJbWFnZU1hZ2ljayBpcyB0eXBpY2FsbHkgdXRpbGl6ZWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lIG9yIHlvdSBjYW4gdXNlIHRoZSBmZWF0dXJlcyBmcm9tIHByb2dyYW1zIHdyaXR0ZW4gaW4geW91ciBmYXZvcml0ZSBsYW5ndWFnZS4gQ2hvb3NlIGZyb20gdGhlc2UgaW50ZXJmYWNlczogRzJGIChBZGEpLCBNYWdpY2tDb3JlIChDKSwgTWFnaWNrV2FuZCAoQyksIENoTWFnaWNrIChDaCksIEltYWdlTWFnaWNrT2JqZWN0IChDT00rKSwgTWFnaWNrKysgKEMrKyksIEpNYWdpY2sgKEphdmEpLCBMLU1hZ2ljayAoTGlzcCksIE5NYWdpY2sgKE5la28vaGFYZSksIE1hZ2lja05ldCAoLk5FVCksIFBhc2NhbE1hZ2ljayAoUGFzY2FsKSwgUGVybE1hZ2ljayAoUGVybCksIE1hZ2lja1dhbmQgZm9yIFBIUCAoUEhQKSwgSU1hZ2ljayAoUEhQKSwgUHl0aG9uTWFnaWNrIChQeXRob24pLCBSTWFnaWNrIChSdWJ5KSwgb3IgVGNsTWFnaWNrIChUY2wvVEspLiBXaXRoIGEgbGFuZ3VhZ2UgaW50ZXJmYWNlLCB1c2UgSW1hZ2VNYWdpY2sgdG8gbW9kaWZ5IG9yIGNyZWF0ZSBpbWFnZXMgZHluYW1pY2FsbHkgYW5kIGF1dG9tYWdpY2FsbHkuCgpJbWFnZU1hZ2ljayBpcyBmcmVlIHNvZnR3YXJlIGRlbGl2ZXJlZCBhcyBhIHJlYWR5LXRvLXJ1biBiaW5hcnkgZGlzdHJpYnV0aW9uIG9yIGFzIHNvdXJjZSBjb2RlIHRoYXQgeW91IG1heSBmcmVlbHkgdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIGluIGJvdGggb3BlbiBhbmQgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zLiBJdCBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLCBhcHByb3ZlZCBieSB0aGUgT1NJIGFuZCByZWNvbW1lbmRlZCBmb3IgdXNlIGJ5IHRoZSBPU1NDQy4KClRoZSBJbWFnZU1hZ2ljayBkZXZlbG9wbWVudCBwcm9jZXNzIGVuc3VyZXMgYSBzdGFibGUgQVBJIGFuZCBBQkkuIEJlZm9yZSBlYWNoIEltYWdlTWFnaWNrIHJlbGVhc2UsIHdlIHBlcmZvcm0gYSBjb21wcmVoZW5zaXZlIHNlY3VyaXR5IGFzc2Vzc21lbnQgdGhhdCBpbmNsdWRlcyBtZW1vcnkgYW5kIHRocmVhZCBlcnJvciBkZXRlY3Rpb24gdG8gcHJldmVudCBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuCgpGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzCgpIZXJlIGFyZSBqdXN0IGEgZmV3IGV4YW1wbGVzIG9mIHdoYXQgSW1hZ2VNYWdpY2sgY2FuIGRvOgoKICBGb3JtYXQgY29udmVyc2lvbjogY29udmVydCBhbiBpbWFnZSBmcm9tIG9uZSBmb3JtYXQgdG8gYW5vdGhlciAoZS5nLiBQTkcgdG8gSlBFRykuCiAgVHJhbnNmb3JtOiByZXNpemUsIHJvdGF0ZSwgY3JvcCwgZmxpcCBvciB0cmltIGFuIGltYWdlLgogIFRyYW5zcGFyZW5jeTogcmVuZGVyIHBvcnRpb25zIG9mIGFuIGltYWdlIGludmlzaWJsZS4KICBEcmF3OiBhZGQgc2hhcGVzIG9yIHRleHQgdG8gYW4gaW1hZ2UuCiAgRGVjb3JhdGU6IGFkZCBhIGJvcmRlciBvciBmcmFtZSB0byBhbiBpbWFnZS4KICBTcGVjaWFsIGVmZmVjdHM6IGJsdXIsIHNoYXJwZW4sIHRocmVzaG9sZCwgb3IgdGludCBhbiBpbWFnZS4KICBBbmltYXRpb246IGNyZWF0ZSBhIEdJRiBhbmltYXRpb24gc2VxdWVuY2UgZnJvbSBhIGdyb3VwIG9mIGltYWdlcy4KICBUZXh0ICYgY29tbWVudHM6IGluc2VydCBkZXNjcmlwdGl2ZSBvciBhcnRpc3RpYyB0ZXh0IGluIGFuIGltYWdlLgogIEltYWdlIGlkZW50aWZpY2F0aW9uOiBkZXNjcmliZSB0aGUgZm9ybWF0IGFuZCBhdHRyaWJ1dGVzIG9mIGFuIGltYWdlLgogIENvbXBvc2l0ZTogb3ZlcmxhcCBvbmUgaW1hZ2Ugb3ZlciBhbm90aGVyLgogIE1vbnRhZ2U6IGp1eHRhcG9zZSBpbWFnZSB0aHVtYm5haWxzIG9uIGFuIGltYWdlIGNhbnZhcy4KICBHZW5lcmFsaXplZCBwaXhlbCBkaXN0b3J0aW9uOiBjb3JyZWN0IGZvciwgb3IgaW5kdWNlIGltYWdlIGRpc3RvcnRpb25zIGluY2x1ZGluZyBwZXJzcGVjdGl2ZS4KICBNb3JwaG9sb2d5IG9mIHNoYXBlczogZXh0cmFjdCBmZWF0dXJlcywgZGVzY3JpYmUgc2hhcGVzIGFuZCByZWNvZ25pemUgcGF0dGVybnMgaW4gaW1hZ2VzLgogIE1vdGlvbiBwaWN0dXJlIHN1cHBvcnQ6IHJlYWQgYW5kIHdyaXRlIHRoZSBjb21tb24gaW1hZ2UgZm9ybWF0cyB1c2VkIGluIGRpZ2l0YWwgZmlsbSB3b3JrLgogIEltYWdlIGNhbGN1bGF0b3I6IGFwcGx5IGEgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24gdG8gYW4gaW1hZ2Ugb3IgaW1hZ2UgY2hhbm5lbHMuCiAgRGlzY3JldGUgRm91cmllciB0cmFuc2Zvcm06IGltcGxlbWVudHMgdGhlIGZvcndhcmQgYW5kIGludmVyc2UgREZULgogIEhpZ2ggZHluYW1pYy1yYW5nZSBpbWFnZXM6IGFjY3VyYXRlbHkgcmVwcmVzZW50IHRoZSB3aWRlIHJhbmdlIG9mIGludGVuc2l0eSBsZXZlbHMgZm91bmQgaW4gcmVhbCBzY2VuZXMgcmFuZ2luZyBmcm9tIHRoZSBicmlnaHRlc3QgZGlyZWN0IHN1bmxpZ2h0IHRvIHRoZSBkZWVwZXN0IGRhcmtlc3Qgc2hhZG93cy4KICBFbmNpcGhlciBvciBkZWNpcGhlciBhbiBpbWFnZTogY29udmVydCBvcmRpbmFyeSBpbWFnZXMgaW50byB1bmludGVsbGlnaWJsZSBnaWJiZXJpc2ggYW5kIGJhY2sgYWdhaW4uCiAgVmlydHVhbCBwaXhlbCBzdXBwb3J0OiBjb252ZW5pZW50IGFjY2VzcyB0byBwaXhlbHMgb3V0c2lkZSB0aGUgaW1hZ2UgcmVnaW9uLgogIExhcmdlIGltYWdlIHN1cHBvcnQ6IHJlYWQsIHByb2Nlc3MsIG9yIHdyaXRlIG1lZ2EtLCBnaWdhLSwgb3IgdGVyYS1waXhlbCBpbWFnZSBzaXplcy4KICBUaHJlYWRzIG9mIGV4ZWN1dGlvbiBzdXBwb3J0OiBJbWFnZU1hZ2ljayBpcyB0aHJlYWQgc2FmZSBhbmQgbW9zdCBpbnRlcm5hbCBhbGdvcml0aG1zIGV4ZWN1dGUgaW4gcGFyYWxsZWwgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Ygc3BlZWQtdXBzIG9mZmVyZWQgYnkgbXVsdGljb3JlIHByb2Nlc3NvciBjaGlwcy4KICBIZXRlcm9nZW5lb3VzIGRpc3RyaWJ1dGVkIHByb2Nlc3Npbmc6IGNlcnRhaW4gYWxnb3JpdGhtcyBhcmUgT3BlbkNMLWVuYWJsZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Ygc3BlZWQtdXBzIG9mZmVyZWQgYnkgZXhlY3V0aW5nIGluIGNvbmNlcnQgYWNyb3NzIGhldGVyb2dlbmVvdXMgcGxhdGZvcm1zIGNvbnNpc3Rpbmcgb2YgQ1BVcywgR1BVcywgYW5kIG90aGVyIHByb2Nlc3NvcnMuCiAgSW1hZ2VNYWdpY2sgb24gdGhlIGlQaG9uZTogY29udmVydCwgZWRpdCwgb3IgY29tcG9zZSBpbWFnZXMgb24geW91ciBpT1MgY29tdXRpbmcgZGV2aWNlIHN1Y2ggYXMgdGhlIGlQaG9uZSBvciBpUGFkLgoKRXhhbXBsZXMgb2YgSW1hZ2VNYWdpY2sgVXNhZ2Ugc2hvd3MgaG93IHRvIHVzZSBJbWFnZU1hZ2ljayBmcm9tIHRoZSBjb21tYW5kLWxpbmUgdG8gYWNjb21wbGlzaCBhbnkgb2YgdGhlc2UgdGFza3MgYW5kIG11Y2ggbW9yZS4gQWxzbywgc2VlIEZyZWQncyBJbWFnZU1hZ2ljayBTY3JpcHRzOiBhIHBsZXRob3JhIG9mIGNvbW1hbmQtbGluZSBzY3JpcHRzIHRoYXQgcGVyZm9ybSBnZW9tZXRyaWMgdHJhbnNmb3JtcywgYmx1cnMsIHNoYXJwZW5zLCBlZGdpbmcsIG5vaXNlIHJlbW92YWwsIGFuZCBjb2xvciBtYW5pcHVsYXRpb25zLgogICAgPC9kZXNjcmlwdGlvbj4KCiAgICA8bWFpbnRhaW5lcj4KICAgICAgPGZvYWY6UGVyc29uPgogICAgICAgIDxmb2FmOm5hbWU+SW1hZ2VNYWdpY2sgU3R1ZGlvIExMQzwvZm9hZjpuYW1lPgogICAgICAgIDxmb2FmOmhvbWVwYWdlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvIi8+CiAgICAgIDwvZm9hZjpQZXJzb24+CiAgICA8L21haW50YWluZXI+CgogICAgPHJlbGVhc2U+CiAgICAgIDxWZXJzaW9uPgogICAgICAgICAgPG5hbWU+c3RhYmxlPC9uYW1lPgogICAgICAgICAgPGNyZWF0ZWQ+QFBBQ0tBR0VfUkVMRUFTRV9EQVRFQDwvY3JlYXRlZD4KICAgICAgICAgIDxyZXZpc2lvbj5AUEFDS0FHRV9WRVJTSU9OQDwvcmV2aXNpb24+CiAgICAgICAgICA8cGF0Y2gtbGV2ZWw+QFBBQ0tBR0VfVkVSU0lPTl9BRERFTkRVTUA8L3BhdGNoLWxldmVsPgogICAgICA8L1ZlcnNpb24+CiAgICA8L3JlbGVhc2U+CgogICAgPG1haWxpbmctbGlzdCByZGY6cmVzb3VyY2U9Imh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnL21haWxtYW4vbGlzdGluZm8vbWFnaWNrLXVzZXJzIi8+CiAgICA8bWFpbGluZy1saXN0IHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvbWFpbG1hbi9saXN0aW5mby9tYWdpY2stZGV2ZWxvcGVycyIvPgogICAgPG1haWxpbmctbGlzdCByZGY6cmVzb3VyY2U9Imh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnL21haWxtYW4vbGlzdGluZm8vbWFnaWNrLWJ1Z3MiLz4KICAgIDxtYWlsaW5nLWxpc3QgcmRmOnJlc291cmNlPSJodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy9tYWlsbWFuL2xpc3RpbmZvL21hZ2ljay1hbm5vdW5jZSIvPgoKICAgIDxkb3dubG9hZC1wYWdlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvc2NyaXB0L2Rvd25sb2FkLnBocCIvPgogICAgPGRvd25sb2FkLW1pcnJvciByZGY6cmVzb3VyY2U9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvaW1hZ2VtYWdpY2svIi8+CgogICAgPCEtLSBMaWNlbnNpbmcgZGV0YWlscyAtLT4KICAgIDxsaWNlbnNlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvc2NyaXB0L2xpY2Vuc2UucGhwIi8+CgogICAgPCEtLSBzb3VyY2UgcmVwb3NpdG9yeSAtLT4KICAgIDxyZXBvc2l0b3J5PgogICAgICA8U1ZOUmVwb3NpdG9yeT4KICAgICAgICA8cmVwb3NpdG9yeVdlYlZpZXcgcmRmOnJlc291cmNlPSJodHRwOi8vdHJhYy5pbWFnZW1hZ2ljay5vcmcvYnJvd3Nlci9JbWFnZU1hZ2ljay90cnVuay8iLz4KICAgICAgPC9TVk5SZXBvc2l0b3J5PgogICAgPC9yZXBvc2l0b3J5PgogIDwvUHJvamVjdD4KCgogIDwhLS0KICAgICAgIG9wdGlvbmFsIGFkbWluaXN0cmF2aWE6CiAgICAgICBhdXRob3JpbmcgdG9vbHMgY2FuIGFkZCBtb3JlIGhlcmUgaWYgdGhleSdkIGxpa2UuCiAgIC0tPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiPgogICAgPGZvYWY6bWFrZXI+CiAgICAgIDxmb2FmOlBlcnNvbj4KICAgICAgICA8Zm9hZjpuYW1lPkltYWdlTWFnaWNrIFN0dWRpbyBMTEM8L2ZvYWY6bmFtZT4KICAgICAgICA8Zm9hZjpob21lcGFnZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnLyIvPgogICAgICA8L2ZvYWY6UGVyc29uPgogICAgPC9mb2FmOm1ha2VyPgogIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8IS0tIApMb2NhbCB2YXJpYWJsZXM6Cm1vZGU6bnhtbApFbmQ6Ci0tPgo=