Y29tbWl0IDE2YmVkYzY2MWRlMGRhZTc2N2IxMzc3ZDg0MTMzNzNhM2ZiY2ZhNzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMTkgMDc6MTQ6MzggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2FueW9ubGFuZHM6IERpc2FibGUgUENJZTAvU0FUQSBpbiBkZXYtdHJlZSBkZXBlbmRpbmcgb24gc2VsZWN0aW9uCgogICAgV2hlbiBTQVRBIGlzIHNlbGVjdGVkICh2aWEganVtcGVyIEo2KSB3ZSBuZWVkIHRvIGRpc2FibGUgdGhlIGZpcnN0IFBDSWUKICAgIG5vZGUgaW4gdGhlIGRldmljZSB0cmVlLCBzbyB0aGF0IExpbnV4IGRvZXNuJ3QgaW5pdGlhbGl6ZSBpdC4gT3RoZXJ3aXNlCiAgICB0aGUgTGludXggU0FUQSBkcml2ZXIgd2lsbCBmYWlsIHRvIGRldGVjdCB0aGUgZGV2aWNlcy4KCiAgICBUaGUgc2FtZSBnb2VzIHRoZSBvdGhlciB3YXkgYXJvdW5kIHRvby4gU28gaWYgUENJZSBpcyBzZWxlY3RlZCB3ZSBuZWVkCiAgICB0byBkaXNhYmxlIHRoZSBTQVRBIG5vZGUgaW4gdGhlIGRldmljZSB0cmVlLgoKICAgIFRoaXMgaXMgYmVjYXVzZSBQQ0llIHBvcnQgMCBhbmQgU0FUQSBvbiA0NjBFWCBzaGFyZSB0aGUgc2FtZSBwaW5zCiAgICAobXVsdGlwbGV4ZWQpIGFuZCB3ZSBoYXZlIHRvIGNvbmZpZ3VyZSBpbiBVLUJvb3Qgd2hpY2ggcGVyaXBoZXJhbCBpcwogICAgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2NjMjdiNDI2YWVlZmUyOTMwZjkxMTY5MmU5ZGYzMTQzZmIyNTY1ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NTggMjAwOCArMDIwMAoKICAgIGkzODY6IEZpeCBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBfX3Nob3dfYm9vdF9wcm9ncmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzExZjM0NDY5MzBjMWU2NGMxMjAyNmMxY2ZkMDA1MDBiMDViZTUyZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NTcgMjAwOCArMDIwMAoKICAgIHNjNTMwX3NwdW5rOiBhZGQgbWlzc2luZyBTT0JKUyBlbnRyeQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTU1OTMxNzE0M2I0Zjk1OTI3YjA4Y2QzODg3MDdlNmYwNzdlOTVmYQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NTYgMjAwOCArMDIwMAoKICAgIHNjNTIwX3NwdW5rOiBGaXggZmxhc2gKCiAgICBmbGFzaC5jOjU5Mzogd2FybmluZzogZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0LWFsaWFzaW5nIHJ1bGVzCiAgICBmbGFzaC5jOjM5ODogZXJyb3I6IGxhYmVsIGF0IGVuZCBvZiBjb21wb3VuZCBzdGF0ZW1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkxZjIyMTMxN2FmNjQxOTFlZThjYWYzMDNlYTkzMDU5NDMxNTg2OTEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWF5IDE4IDE5OjA5OjQ5IDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL3BjbWNpYTogYWRkIG1pc3NpbmcgaTgyMzY1CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkZDIyMzk0NDEzMmY5N2ZmYTUyOTc3ZWE5NWU1YTUyNDI4ZjVjYzJmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxOCAxOTowOTo0NyAyMDA4ICswMjAwCgogICAgaTM4Ni9ib290bTogcmVtb3ZlIHVudXNlZCB2YXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGE5ZGEzNDFkZjE5YjMyYWQyZWNiNThjZTUyOWY3ZTRmYWRhNzgxNGUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWF5IDE4IDE5OjA5OjQ1IDIwMDggKzAyMDAKCiAgICBleGFtcGxlL2dpdGlnbm9yZTogdXBkYXRlIHdpdGggYWxsIGdlbmVyYXRlZCBleGFtcGxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTM4ZGMzZWE4NjE0ZjhiMGM0MWU0MzJiNDQ1YTk5NTliOTcxMTI5NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMTUgMDA6NDI6NDUgMjAwOCArMDIwMAoKICAgIFRRTTgyNzI6IGZpeCBvdXQtb2YtdHJlZSBidWlsZGluZwoKICAgIC4uLmFuZCBhZGQgdG8gTUFLRUFMTCBzY3JpcHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRmODA1YzFlM2E2MGI5MjYzZGE4ZWMzYmNkMWY0NWVkY2VmYTdkY2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE0IDIzOjM0OjUzIDIwMDggKzAyMDAKCiAgICBlbnZpcm9ubWVudDogZml4IGJ1ZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBhODQwOWY0ZjFhYzgKCiAgICBlbnZfZ2V0X2NoYXIgaXMgbm90IGEgZnVuY3Rpb24sIGJ1dCBhIHBvaW50ZXIgdG8gb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2RhMmE0YTk5NjFmZDQzNDFiN2RiMzA1Y2IyMmZjMDU5NTdlOGI3NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTQgMTM6NTU6MzAgMjAwOCArMDIwMAoKICAgIEZpeCBjb25maWcgZmlsZXMgZm9yIG91dC1vZi10cmVlIGJ1aWxkaW5nCgogICAgU2V2ZXJhbCBib2FyZC88Li4uPi9jb25maWcubWsgZmlsZXMgaW5jbHVkZSBkeW5hbWljYWxseSBidWlsdCAoYnkKICAgIHRoZSBNYWtlZmlsZSkgY29uZmlnIGZpbGVzIGJ1dCB1c2VkIHRoZSB3cm9uZyBmaWxlIG5hbWUgb2YKCSQoVE9QRElSKS9ib2FyZC8kKEJPQVJERElSKS9jb25maWcudG1wCiAgICBpbnN0ZWFkIGlmIHRoZSBjb3JyZWN0CgkkKE9CSlRSRUUpL2JvYXJkLyQoQk9BUkRESVIpL2NvbmZpZy50bXAKCiAgICBUaGUgYnVnIGlzIG5hc3R5IGJlY2F1c2UgdGhlIGJ1aWxkIHJlc3VsdCBpcyBjb3JyZWN0IGZvciB0aGUgKG5vcm1hbCkKICAgIGluLXRyZWUgYnVpbGRzLCBhbmQgYmVjYXVzZSAnc2luY2x1ZGUnIGlzIHVzZWQgbm8gZXJyb3JzIGdldCByYWlzZWQKICAgIGV2ZW4gZm9yIG91dC1vZi10cmVlIGJ1aWxkIHRlc3RzLiBCdXQgb3V0LW9mLXRyZWUgYnVpbGRzIHVzZSBhbgogICAgaW5jb21wbGV0ZSBhbmQgdGh1cyB1c3VhbGx5IGluY29ycmVjdCBjb25maWd1cmF0aW9uLi4uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyZGQ3MDgyZTA2ZDU4MDQwNDAxMGIwNmZlNGUwZThiNzAzOGEwMGM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE0IDEzOjQwOjAzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBib2d1cyBDYW55b25sYW5kcyBjb25maWcubWsKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBjYW55b25sYW5kcyBjb25maWcubWsgZmlsZSB0byBlbmFibGUgY29ycmVjdAogICAgb3V0LW9mLXRyZWUgYnVpbGRzLiBUaGFua3MgdG8gV29sZmdhbmcgRGVuayBmb3Igc3BvdHRpbmcgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmRkMTI0N2E2NmQ3ODhhMzQ0NjI0NGY2ZmRlOTk1NWE5M2MyNjMyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNCAxMDozMjozMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBJbmRpdmlkdWFsIGhhbmRsaW5nIG9mIGRkcjJfZml4ZWQuYyBmb3IgY2FueW9ubGFuZHNfbmFuZCBidWlsZAoKICAgIENhbnlvbmxhbmRzIGhhcyBhIGZpbGUgZGRyMl9maXhlZC5jIHdoaWNoIG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50IHdoZW4KICAgIGJ1aWxkaW5nIGluIHNlcGFyYXRlIGRpcmVjdG9yeS4gSXQgaGFzIHRvIGJlIGxpbmtlZCB0byBidWlsZCBkaXJlY3RvcnkKICAgIG90aGVyd2lzZSBpdCBpcyBub3Qgc2Vlbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTg0MDlmNGYxYWM4NGMzNjI3M2MxYTFlMzQxMTg5NjYyNTIxYmNmYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTQgMTI6MjI6NDkgMjAwOCArMDIwMAoKICAgIGVudmlyb25tZW50OiBjbGVhbnVwIHByb3RvdHlwZSBkZWNsYXJhdGlvbnMgb2YgZW52IGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNmMzliMDc5NDgwMTVjNDgwYjcyYTZlNzMyY2Y3ZDgzOWFhOTNhOWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE0IDEyOjIxOjQ4IDIwMDggKzAyMDAKCiAgICBsaW5rc3RhdGlvbl9IR0xBTjogRml4IG91dCBvZiB0cmVlIGJ1aWxkaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDg1NTUxYzA1Y2EwOWU2YzQ5MWVhMTFhMWM2NzI3YTM2Nzc2YTU0NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNCAxMDozMjozMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBJbmRpdmlkdWFsIGhhbmRsaW5nIG9mIGRkcjJfZml4ZWQuYyBmb3IgY2FueW9ubGFuZHNfbmFuZCBidWlsZAoKICAgIENhbnlvbmxhbmRzIGhhcyBhIGZpbGUgZGRyMl9maXhlZC5jIHdoaWNoIG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50IHdoZW4KICAgIGJ1aWxkaW5nIGluIHNlcGFyYXRlIGRpcmVjdG9yeS4gSXQgaGFzIHRvIGJlIGxpbmtlZCB0byBidWlsZCBkaXJlY3RvcnkKICAgIG90aGVyd2lzZSBpdCBpcyBub3Qgc2Vlbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTUxMGI4MmQ1MDYxNWYzNDRlODlkNDI1MzNlODIyNGNjZTA2N2RjMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMTMgMjM6MTU6NTIgMjAwOCArMDIwMAoKICAgIE1ha2VmaWxlOiBmaXggImVycm9yOiB2ZXJzaW9uX2F1dG9nZW5lcmF0ZWQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDcwZmFiMTkwOGZjMTczNGE0MDM3MTFlYWFiYmVmNTQ2YmM0Yjc3ZGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMTMgMjA6MjI6MDEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIDQwNUVYKHIpIHJldmlzaW9uIEMgUFZSIGRlZmluaXRpb25zIGFuZCBkZXRlY3Rpb24gY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2NWRjZmE3OTIwNGY0NzUwYjkwNWExNzNhNTM2NWUwYjJlYjZjMmY2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAxMiAwMToxMToyMSAyMDA4ICswMjAwCgogICAgUmV2ZXJ0ICJwY2k6IEFkZCBDT05GSUdfUENJX1NLSVBfSE9TVF9CUklER0UgY29uZmlnIG9wdGlvbiIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDU1Nzc0YjUxMmZkZjYzYzA1MTZkNDQxY2M1ZGE3YzU0YmJmZmI3ZjIKICAgIHdoaWNoIGJyb2tlIG1hbnkgUG93ZXJQQyBib2FyZHMuCgpjb21taXQgZWUwY2ZhNzA4MDNhM2U2MjllYTU4MWE5YjIxNmY4ZWNlZjQwMmJmYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMTIgMDA6NTY6MjggMjAwOCArMDIwMAoKICAgIFJldmVydCAiQXZvaWQgaW5pdHJkIGFuZCBsb2didWZmZXIgYXJlYSBvdmVybGFwcyIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDFiNTYwNWNhNTdmYmIzNjRmNGQ3OGVlZWUyOGI5NzRlZDg3NWU4ODgKICAgIHdoaWNoIGJyZWFrcyBidWlsZGluZyBvbiBhbGwgUFBDIGJvYXJkcyB0aGF0IGRvbid0IHVzZSBhIGxvZyBidWZmZXIuCgpjb21taXQgMDJiOWIyMjQ0NmUzZDdhZDZhNjM4MmJlMTdhMWNlNzlhN2RlNTg5YgpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgTWF5IDEwIDE0OjAyOjA0IDIwMDggLTA3MDAKCiAgICBGaXggb2Zmc2V0IGNhbGN1bGF0aW9uIGZvciBtdWx0aS10eXBlIGxlZ2FjeSBpbWFnZXMuCgogICAgQ2FsY3VsYXRpb24gb2YgdGFpbCB3YXMgaW5jb3JyZWN0IHdoZW4gc2l6ZSAlIDQgPT0gMC4KCiAgICBOZXcgY29kZSByZW1vdmVzIHRoZSBjb25kaXRpb25hbCBhbmQgZG9lcyB0aGUgc2FtZSB0aGluZyBidXQgd2l0aCBhcml0aG1ldGljCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzlkY2EzYzNmMzdkMjY0N2FlYzQ1MDliMjRiMTZkMTU4ODJhZTNlNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMTIgMDA6NDA6NTggMjAwOCArMDIwMAoKICAgIFJldmVydCAiQ2hhbmdlIGVudl9nZXRfY2hhciBmcm9tIGEgZ2xvYmFsIGZ1bmN0aW9uIHB0ciB0byBhIGZ1bmN0aW9uLiIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGMwNTU5YmUzNzFiMmE2NGIxYTgxNzA4OGMzMzA4Njg4ZTIxODJmOTMKICAgIHdoaWNoIGlzIGtub3duIHRvIGJyZWFrIGJvb3RpbmcgZnJvbSBkYXRhZmxhc2ggYW5kIE5BTkQuCgpjb21taXQgMjBlNWVkMTM3NDgzODIzYWFlYTUxNzgxNjlmM2IxNDRjN2E0ZDllMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTEgMjM6MTM6NTcgMjAwOCArMDIwMAoKICAgIEFQSTogcmVtb3ZlIGR1cGxpY2F0ZSBzeXNjYWxsIGNoZWNrCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3OWRkMTcxMjY4OWQ2YTUwMzFkN2NiZmY1NDk1NzA0OTY4MDc1MWM3CkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDE2OjAwOjU1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEtpbGF1ZWE6IEFkZCBDT05GSUdfQk9PVFBfU1VCTkVUTUFTSyB0byBLaWxhdWVhIGJvYXJkIGNvbmZpZwoKICAgIFdoZW4gdXNpbmcgZGhjcC9ib290cCB0aGUgIm5ldG1hc2siIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQKICAgIGJlY2F1c2UgQ09ORklHX0JPT1RQX1NVQk5FVE1BU0sgaXMgbm90IGRlZmluZWQuIEJ1dCB1c3VhbGx5IHRoaXMgaXMKICAgIGRlc2lyZWFibGUsIHNvIHRoZSBmb2xsb3dpbmcgcGF0Y2ggYWRkcyB0aGlzIHRoaXMgb3B0aW9uIHRvIHRoZSBib2FyZAogICAgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODY5ZDE0YjRjYzJlNDdkZTJkZGNiMTE3YmFkMDQwN2E0NDQzNjY4NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1heSAxMCAxMDozMDozNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgTWFrYWx1IGRlZmNvbmZpZyB0byB1c2UgZGV2aWNlLXRyZWUgYm9vdGluZyBhcyBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCByZXdvcmtzIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IG9uIE1ha2FsdS4gTm93ICJuZXRfbmZzIiBmb3IKICAgIGV4YW1wbGUgdXNlcyB0aGUgZGV2aWNlLXRyZWUgc3R5bGUgYm9vdGluZyBmb3JtZXJseSBrbm93IGFzICJuZXRfbmZzX2ZkdCIuCiAgICBBbHNvIHRoZSBhZGRyZXNzZXMgaW4gUkFNIHdlcmUgY2hhbmdlZCBiZWNhdXNlIG9mIHRoZSBuZXcgaW1hZ2UgYm9vdGluZwogICAgc3VwcG9ydCwgd2hpY2ggY2hlY2sgZm9yIGltYWdlIG92ZXJ3cml0aW5nLiBTbyB0aGUgYWRkcmVzc2VzIG5lZWRlZCB0bwogICAgZ2V0IGFkanVzdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMzYxMmE3YjE5OWNhYjM5NDJmNjBkOWMxMzkyZWIzOWQ1OGNjNjk5CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJnaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgNyAxMzoyODoxNiAyMDA4IC0wNTAwCgogICAgUFBDOiBmaXggbWFwX3BoeXNtZW0gYnVpbGQgd2FybmluZwoKICAgIG1hcF9waHlzbWVtIGN1cnJlbnRseSBnZW5lcmF0ZXMgYSB3YXJuaW5nIHdoZW4gQ09ORklHX1BIWVNfNjRCSVQgaXMKICAgIGVuYWJsZWQuICBUaGlzIHF1aWV0cyB0aGUgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8QmVja3kuQnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNmYzMjY3NWY0MDI5MjAwMmVlMWZlZDI1MmMxODBhNDMwMjJkMmQ0CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJnaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgNyAxMzoyNDo1NyAyMDA4IC0wNTAwCgogICAgVXBkYXRlIHBjaSBjb2RlIHRvIHVzZSBwaHlzX2FkZHJfdAoKICAgIFBoeXNpY2FsIGFkZHJzIG5lZWQgdG8gYmUgcmVwcmVzZW50ZWQgYnkgcGh5c19hZGRyX3QsIG5vdAogICAgdW5zaWduZWQgbG9uZy4gIE90aGVyd2lzZSwgc3lzdGVtcyB0aGF0IHVzZSBDT05GSUdfUEhZU182NEJJVAogICAgYXJlIGdvaW5nIHRvIGZhaWwgbWlnaHRpbHkuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTFhNjE2NzQxZmMxMjhjZGI4OGYzOWJkZGNkNGQ3MmZlMTc0NjZkMApBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDggMjI6MzI6MjIgMjAwOCAtMDcwMAoKICAgIFN1cHBvcnQgbGVnYWN5IG11bHRpLXR5cGUgaW1hZ2VzIHdpdGhvdXQgRkRUIHNlY3Rpb24uCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIGxlZ2FjeSBtdWx0aS10eXBlIGltYWdlcyBjb250YWluaW5nIG9ubHkgYSBMaW51eCBrZXJuZWwKICAgIGFuZCByb290IGZpbGUgc3lzdGVtIHRvIGJlIGxvYWRlZCwgbWFpbnRhaW5pbmcgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzCiAgICB2ZXJzaW9ucyBvZiB1LWJvb3QuCgogICAgVGhpcyBpcyByZXF1aXJlZCB3aGVuIHVzaW5nIG9sZCBpbWFnZSBmaWxlcyBzdWNoIGFzIGEgTGludXggMi40IGtlcm5lbCAvCiAgICBmaWxlc3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgODgxMDMxZDk3MzI3ODNiN2FlYWUyMTk4ZmM3ZWI0ODBhZTg5NzRhNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgMTAgMDA6Mzg6MDIgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlNWU5ZDZjOWMwODE2MGJlN2U1YTM2ZTA0ZDEyNWNjY2U5OWI4Nzc0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSAxMCAwMDozNjowOSAyMDA4ICswMjAwCgogICAgcG9zdC9jcHUvcHBjNHh4L01ha2VmaWxlOiBsaW5lIGxlbmd0aCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjY2U5Y2ZkYWJjZjQxNmVjZDJhYWNjMzY4MWM5MWU1Mzc4Yzc1YTNkCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIyOjUyOjA5IDIwMDggKzAyMDAKCiAgICBGaXggQCAtPiA8YXQ+IHN1YnN0aXR1dGlvbgoKICAgIFdoZW4gYXBwbHlpbmcgdGhlIEFUOTFDQVA5IHBhdGNoZXMgdXBzdHJlYW0sIHNvbWV0aGluZyB0cmFuc2Zvcm1lZAogICAgdGhlICdAJyBjaGFyYWN0ZXIgaW50byB0aGUgJyA8YXQ+ICcgc2VxdWVuY2UuCgogICAgVGhlIHBhdGNoIGJlbG93IHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBmb3JtIGluIGFsbCB0aGUgcGxhY2VzIHdoZXJlCiAgICBpdCBoYXMgYmVlbiBtb2RpZmllZCAodGhlIEFUOTFDQVA5IGZpbGVzLCB0aGUgQVQ5MVNBTTkyNjAgZmlsZXMgd2hpY2gKICAgIHdlcmUgY29waWVkIGZyb20gQVQ5MUNBUDksIGFuZCBhIGNvdXBsZSBvZiBvdGhlciBmaWxlcyB3aGVyZSB0aGUKICAgICcgPGF0PiAnIHNlcXVlbmNlIHdhcyBwcmVzZW50KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDk2MDZiM2M4MWIzYzQ3YTFkNTg1MTRlOWEyMzJjNmY0NjFhMTc1OTcKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjI6NTI6MTAgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBvcmlnaW4gYW5kIGNvcHlyaWdodCBpbmZvcm1hdGlvbiBpbiBhcmNoLWF0OTFzYW05IGhlYWRlciBmaWxlcwoKICAgIFdoZW4gZG9pbmcgdGhlIEFUOTFDQVA5L0FUOTFTQU05IHBvcnQsIGEgbnVtYmVyIG9mIGhlYWRlciBmaWxlcyB3ZXJlCiAgICBjb3BpZWQgZnJvbSB0aGUgTGludXgga2VybmVsIHNvdXJjZXMuIFRoaXMgcGF0Y2ggZXhwbGljaXRseSBzcGVjaWZpZXMKICAgIHRoaXMgb3JpZ2luIGZvciBhbGwgdGhlIGNvcGllZCBoZWFkZXJzLCBhbmQgZm9yIHRob3NlIG1pc3NpbmcgY29weXJpZ2h0CiAgICBpbmZvcm1hdGlvbiwgYWRkcyBpdC4KCiAgICBBZGRpdGlvbmFseSwgdGhlIGhlYWRlciBmaWxlICdhdDkxc2FtOTI2eF9tYy5oJyBoYXMgYmVlbiBzdXBlcmNlZWRlZAogICAgaW4gdGhlIGxhdGVzdCBrZXJuZWwgc291cmNlcyBieSAnYXQ5MXNhbTlfc21jLmgnLgoKICAgIFRoZSBjb3B5cmlnaHQgaW5mb3JtYXRpb24gaGFzIGJlZW4gY29uZmlybWVkIGJ5IHRoZSBBVDkxIExpbnV4IGtlcm5lbAogICAgbWFpbnRhaW5lciwgQW5kcmV3IFZpY3RvciA8YXZpY3Rvci56YUBnbWFpbC5jb20+LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgY2ViNmI0ZmJlMWRjYzQwYmI2NzJlZjgxMzNkZGY0ODEzZTk3Y2JiMQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMjo1MjoxMSAyMDA4ICswMjAwCgogICAgQWRkIGNvcHlyaWdodCBpbmZvcm1hdGlvbiBpbiBBdG1lbCBib2FyZHMgcGFydGl0aW9uLmMKCiAgICBXaGVuIFVsZiBkaWQgdGhlIGRhdGFmbGFzaC5jIGNsZWFudXAsIGhlIGRpZG4ndCBhZGQgaGlzIGNvcHlyaWdodCBvbgogICAgdGhlIG5ldyBjcmVhdGVkIGZpbGVzLiBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgMmFiMDJmZDQ1NmQ4ZWY5MmFlOWY1NDM5NjE4ZDFmYTdjYTE2ZTVmMwpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDEwOjA5OjI3IDIwMDggKzAyMDAKCiAgICBteDMxYWRzOiBmaXggMzJrSHogY2xvY2sgaGFuZGxpbmcKCiAgICBBY2NvcmRpbmcgdG8gc2NoZW1hdGljcyBhbmQgdG8gUmVkQm9vdCBzb3VyY2VzLCB0aGUgTVgzMUFEUyB1c2VzIGEgMzI3NjhIegogICAgb3NjaWxsYXRvciBhcyBhIFNLSUwgc291cmNlLiBGaXggcHJldmlvdXNseSB3cm9uZ2x5IGFzc3VtZWQgMzIwMDBIeiB2YWx1ZS4KICAgIEFsc28gZml4IGEgdHlwbyB3aGVuIHZlcmlmeWluZyBhIGp1bXBlciBjb25maWd1cmF0aW9uLiBXaGlsZSBhdCBpdCwgbWFrZQogICAgdHdvIG5lZWRsZXNzbHkgZ2xvYmFsIGZ1bmN0aW9ucyBzdGF0aWMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDFiNTYwNWNhNTdmYmIzNjRmNGQ3OGVlZWUyOGI5NzRlZDg3NWU4ODgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWF5IDcgMTM6MTA6MDQgMjAwOCArMDIwMAoKICAgIEF2b2lkIGluaXRyZCBhbmQgbG9nYnVmZmVyIGFyZWEgb3ZlcmxhcHMKCiAgICBBZGQgbG9nYnVmZmVyIHRvIHJlc2VydmVkIExNQiBhcmVhcyB0byBwcmV2ZW50IGluaXRyZCBhbGxvY2F0aW9uCiAgICBmcm9tIG92ZXJsYXBpbmcgd2l0aCBpdC4KCiAgICBNYWtlIHN1cmUgdG8gdXNlIGNvcnJlY3QgbG9nYnVmZmVyIGJhc2UgYWRkcmVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM1OTUxOGUxNTk0OWIzNDAzZGY1YzViMGMyYzQ4ZWEwZTViZWEyNGIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWF5IDcgMTM6MDg6NTQgMjAwOCArMDIwMAoKICAgIHBwYzogQ2xlYW51cCBnZXRfZWZmZWN0aXZlX21lbXNpemUoKSB1c2UKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZWQgZWZmZWN0aXZlIG1lbW9yeSBzaXplIGNhbGN1bGF0aW9uIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyNzNjMzdkODQzZDViNTgxMDkwMzc4MDE2Y2QxMmRkOWM1ODY5MDdiCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1heSA3IDA5OjAzOjUzIDIwMDggKzAyMDAKCiAgICBGaXggYnVpbGQgZXJyb3JzIHdoZW4gQ09ORklHX0xPR0JVRkZFUiBhbmQgQ09ORklHX0ZJVCBhcmUgZW5hYmxlZAoKICAgIFJlY2VudCBtb2RpZmNhdGlvbnMgdG8gTE9HQlVGRkVSIGhhbmRsaW5nIGNvZGUgd2VyZSBpbmNvcnJlY2x5CiAgICBpbnRyb2R1Y2VkIHRvIGZpdF9jaGVja19rZXJuZWwoKSByb3V0aW5lIGR1cmluZwogICAgIk1lcmdlIGJyYW5jaCAnbmV3LWltYWdlJyBvZiBnaXQ6Ly93d3cuZGVueC5kZS9naXQvdS1ib290LXRlc3RpbmciLAogICAgY29tbWl0IDI3ZjMzZTlmNDVlZjdmOTY4NWNiZGM2NTA2NmExODI4ZTg1ZGRlNGYuCgogICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgdGhpcyBtZXJnZSBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGJjMTE3NTZkYWZmODlhM2RlMDljYTgwYWRhYzk2MmI4OGNmMDZlNmUKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglUdWUgTWF5IDYgMjA6MTY6MTUgMjAwOCAtMDcwMAoKICAgIFByb3BhZ2F0ZSBFcnJvciBTdGF0dXMgdG8gdGhlIFNoZWxsIG9uIGZ3X3ByaW50ZW52IEVycm9ycwoKICAgIENoYW5nZWQgaW1wbGVtZW50YXRpb24gc3VjaCB0aGF0IGZ3X3ByaW50ZW52IHJldHVybnMgZmFpbHVyZSBzdGF0dXMKICAgIHdoZW4gb25lIG9yIG1vcmUgc3BlY2lmaWVkIHZhcmlhYmxlcyBkbyBub3QgZXhpc3Qgb3Igd2hlbiBpbmNvcnJlY3QKICAgIGNvbW1hbmQgc3ludGF4IGlzIHVzZWQuCgogICAgVGhpcyBhaWRzIHNjcmlwdGluZyBmd19wcmludGVudiBzdWNoIHRoYXQgdGhlIHNjcmlwdCBjYW4ga2V5IG9mIHRoZQogICAgcmV0dXJuIHN0YXR1cyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHN0YW5kYXJkIGVycm9yICJzY3JhcGluZyIuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjNiNmQ1MjhlNGRkNzE5NjQwYTRiZmNkOTU0ZjRlNGM3ZjVkYjBkNgpBdXRob3I6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CkRhdGU6CVR1ZSBNYXkgNiAxNjoxODowMCAyMDA4IC0wNzAwCgogICAgRml4IENvbXBpbGF0aW9uIEVycm9ycyB3aXRoICd0b29scy9lbnYvZndfcHJpbnRlbnYnCgogICAgSW4gdGhlIGN1cnJlbnQgdG9wLW9mLXRyZWUsIDEuMy4zLi1yYzIsIHRoZSBvcHRpb25hbCB0b29sCiAgICAndG9vbHMvZW52L2Z3X3ByaW50ZW52JyBmYWlscyB0byBjb21waWxlIGZvciB0d28gcmVhc29uczoKCiAgICAxKSBUaGUgaGVhZGVyIHdhdGNoZG9nLmggY2Fubm90IGJlIGZvdW5kLgogICAgMikgVGhlIGhlYWRlciB6bGliLmggaXMgcGlja2VkIHVwIGZyb20gdGhlIHRvb2wgY2hhaW4gcmF0aGVyIHRoYW4gdGhlCiAgICAgICBwcm9qZWN0IGNhdXNpbmcgYSBwcm90b3R5cGUgY29uZmxpY3QgZm9yIGNyYzMyLgoKICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGJvdGggb2YgdGhlc2UgaXNzdWVzLgoKICAgIFBsYXRmb3JtcyBUZXN0ZWQgT246CiAgICAtIEFNQ0MgIktpbGF1ZWEiCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KCmNvbW1pdCA1OTdmNmMyNmExOGIzODk5MDNhNjQ2OTJiYWNiZjlhMWNhNjkzNTViCkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWF5IDUgMTA6MjI6NTMgMjAwOCAtMDUwMAoKICAgIEZpeCByZWFkbGluZV9pbnRvX2J1ZmZlcigpIHdpdGggQ09ORklHX0NNRExJTkVfRURJVElORyBiZWZvcmUgcmVsb2NhdGluZwoKICAgIFdoZW4gQ09ORklHX0NNRExJTkVfRURJVElORyBpcyBlbmFibGVkLCByZWFkbGluZV9pbnRvX2J1ZmZlcigpIGRvZXNuJ3QKICAgIHdvcmsgYmVmb3JlIHJlbG9jYXRpbmcgdG8gUkFNIGJlY2F1c2UgY29tbWFuZCBoaXN0b3J5IGlzIHdyaXR0ZW4gaW50bwogICAgYSBnbG9iYWwgYXJyYXkgdGhhdCBpcyBub3Qgd3JpdGFibGUgYmVmb3JlIHJlbG9jYXRpb24uICBUaGlzIHBhdGNoCiAgICBkZWZlcnMgdG8gdGhlIG5vLWVkaXRpbmcgYW5kIG5vLWhpc3RvcnkgY29kZSBpbiByZWFkbGluZV9pbnRvX2J1ZmZlcigpCiAgICBpZiBpdCBpcyBjYWxsZWQgYmVmb3JlIHJlbG9jYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3MjZjMGYxZTVmMTA4ZGNjZWEwNTI5NjUxMjNiOTU4MzdkMmJkNDAyCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNSAxNjoxMToyMiAyMDA4ICswMjAwCgogICAgY29zbWV0aWM6IEFkanVzdCBjb2Rpbmcgc3R5bGUgZm9yIHN3aXRjaCBzdGF0ZW1lbnRzIHRvIGJlIGNvbnNpc3RlbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA1NzRiMzE5NTEyYjEzZTEwODAwZjAwNDVlMzliOTkzZjRjYTI1ZTQyCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNSAxNjoxMToyMSAyMDA4ICswMjAwCgogICAgRml4IGRpc2sgdHlwZSBvdXRwdXQgaW4gZGlzay9wYXJ0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCAwNDViNGQyZDcxNjhlZjA5YzczNDlkY2Y2ZWNlYmU3NDMyYjc0MTcxCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZC5sdW5ndUB3aW5kcml2ZXIuY29tPgpEYXRlOglNb24gTWF5IDUgMTQ6MjA6MDMgMjAwOCArMDMwMAoKICAgIE1haWwgYWRkcmVzcyBjaGFuZ2UsIGRvY3VtZW50YXRpb24gbW9kaWZpZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkLmx1bmd1QHdpbmRydmllci5jb20+Cgpjb21taXQgNGQ0OWIyODAzOGUyODE5MDg4ZTgzNTZhNzcyMTJmYzk1YTg5Y2U1YQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE1heSA0IDE1OjQyOjQxIDIwMDggKzAyMDAKCiAgICBtaWNyb2JsYXplOiBSZXBhcmUgaW50YyBoYW5kbGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCA4NzhiM2IxZTE5M2U1NzBjYWYzZTk2YWQ4ZTMxZTU2MWY2OGQwMjg3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSA0IDE1OjE3OjUyIDIwMDggKzAyMDAKCiAgICBpbmNsdWRlL2dpdGlnbm9yZTogdXBkYXRlIHRvIGFsbCBhcmNoaXRlY3R1cmVzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxZGYzNjhhZWQzYjhiYzI0MGZlMTU5NWQyOTBiMGU5MWIyMjk2MWRhCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglNb24gTWF5IDUgMDI6MTI6MDYgMjAwOCArMDIwMAoKICAgIGlkZTogUmVtb3ZlIHNwdXJpb3VzIHNlY29uZCBpbmNsdWRlIG9mIGlvLmgKCiAgICBSZW1vdmVkIHRoZSBzZWNvbmQgaW5jbHVkZSwgd2l0aCBhbGwgdGhlICNpZmRlZiBhcm91bmQgYXMgc3VnZ2VzdGVkIGJ5IFdvbGZnYW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCA4ZmJjOTg1YmRhZDA5YjIzYjdlYjRkZjFkMmVhNTg5NjE5ZDhkYjRjCkF1dGhvcjogQWRyaWFuIEZpbGlwaSA8YWRyaWFuLmZpbGlwaUBldXJvdGVjaC5jb20+CkRhdGU6CVR1ZSBNYXkgNiAxNjo0NjozNyAyMDA4IC0wNDAwCgogICAgRml4IHNvbWUgdHlwb3MKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRocmVlIHR5cG9zLgogICAgVGhlIGZpcnN0IGlzIGEgcmVwZXRpdGlvbiBvZiBDT05GSUdfQ01EX0JTUC4KICAgIFRoZSBzZWNvbmQgbWFrZXMgdGhlICNlbmRpZiBjb21tZW50IG1hdGNoIGl0cyAjaWYuCiAgICBUaGUgdGhpcmQgaXMgYSBzcGVsbGluZyBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBZHJpYW4gRmlsaXBpIDxhZHJpYW4uZmlsaXBpQGV1cm90ZWNoLmNvbT4KCmNvbW1pdCBlNDE5ZTEyZDA0YWUzYjI4MGM5OWE4N2EyZWE0YWQ3YTQwNjI4YmNiCkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJU3VuIE1heSA0IDE2OjQ1OjAxIDIwMDggLTA3MDAKCiAgICBSZWNvZ25pemUgJ3Bvd2VycGMnIEFzIGFuIEFsaWFzIGZvciBJSF9BUkNIX1BQQwoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgcmVjb2duaXRpb24gb2YgJ3Bvd2VycGMnIGFzIGFuIGFsaWFzIGZvciB0aGUgUG93ZXJQQwogICAgYXJjaGl0ZWN0dXJlIHR5cGUgc2luY2UgTGludXggaXMgYWxyZWFkeSB0cmVuZGluZyBpbiB0aGF0IGRpcmVjdGlvbiwKICAgIHByZWZlcnJpbmcgJ3Bvd2VycGMnIHRvICdwcGMnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+Cgpjb21taXQgZjVhMjQyNTkxOTBjMzg4YzI1MjdiZGM0OWZlZTM0NTc3ZDg2MmNjNwpBdXRob3I6IFdoZWF0bGV5IFRyYXZpcyA8VHJhdmlzLldoZWF0bGV5QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXkgMiAxMzozNToxNSAyMDA4IC0wNzAwCgogICAgNzQ1MCBhbmQgODZ4eCBMMiBjYWNoZSBpbnZhbGlkYXRlIGJ1ZyBjb3JyZWN0aW9ucwoKICAgIFRoZSA3NjEwIGFuZCByZWxhdGVkIHBhcnRzIGhhdmUgYW4gTDJJUCBiaXQgaW4gdGhlIEwyQ1IgdGhhdCBpcwogICAgbW9uaXRvcmVkIHRvIHNpZ25hbCB3aGVuIHRoZSBMMiBjYWNoZSBpbnZhbGlkYXRlIGlzIGNvbXBsZXRlIHdoZXJlYXMgdGhlCiAgICA3NDUwIGFuZCByZWxhdGVkIHBhcnRzIHV0aWxpemUgTDJJIGZvciB0aGlzIHB1cnBvc2UuIEhvd2V2ZXIsIHRoZQogICAgY3VycmVudCBjb2RlIGRvZXMgbm90IGFjY291bnQgZm9yIHRoaXMgZGlmZmVyZW5jZS4gQWRkaXRpb25hbGx5IHRoZSA4Nnh4CiAgICBMMiBjYWNoZSBpbnZhbGlkYXRlIGNvZGUgdXNlZCBhbiAiYW5kaSIgaW5zdHJ1Y3Rpb24gd2hlcmUgYW4gImFuZGlzIgogICAgaW5zdHJ1Y3Rpb24gc2hvdWxkIGhhdmUgYmVlbiB1c2VkLgoKICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGJvdGggb2YgdGhlc2UgYnVncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUcmF2aXMgV2hlYXRsZXkgPHRyYXZpcy53aGVhdGxleUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtQnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQzMWNkYzQ1ZDM1OTJhNTU0NWE2NDlmYjVhMjRiNDU4YTRlNGI3MgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgOSAxMDoxNjoxMyAyMDA4ICswMjAwCgogICAgQXZvaWQgaW5maW5pdGUgbG9vcCAiR2VuZXJhdGluZyBpbmNsdWRlL2F1dG9jb25mLm1rIgoKICAgIEZpeCBhIGJvZ3VzIGNpcmN1bGFyIGRlcGVuZGVuY3kgdGhhdCBjYXVzZWQgYW4gaW5maW5pdGUgbG9vcCBvZgogICAgIkdlbmVyYXRpbmcgaW5jbHVkZS9hdXRvY29uZi5tayIgYWdhaW4gYW5kIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZWYyNjQyNjI1Y2JmYjFjMzY5NWUzNDc4ZDA4YWU1MTUwNTJhNDk1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDExOjEwOjQ2IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEtpbGF1ZWE6IEZpeCBpbmNvcnJlY3QgRlBHQSBGSUZPIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTAwZWNjZmViYzk1NGFkOTQ4NTE2MWVmZWNhN2Q5YWFmNjI2ZDUzMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDExOjA1OjE1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBmZHQgc3VwcG9ydCB0byBhbGwgcmVtYWluaW5nIEFNQ0MgUFBDNHh4IGV2YWwgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIGZkdCAoZmxhdHRlbmVkIGRldmljZSB0cmVlKSBzdXBwb3J0IHRvIGFsbCByZW1haW5pbmcgQU1DQwogICAgZXZhbCBib2FyZHMuIE1vc3QgbmV3ZXIgYm9hcmRzIGFscmVhZHkgc3VwcG9ydCBkZXZpY2UgdHJlZS4gV2l0aCB0aGlzIHBhdGNoLAogICAgYWxsIEFNQ0MgYm9hcmRzIG5vdyBlbmFibGUgZGV2aWNlIHRyZWUgcGFzc2luZyBmcm9tIFUtQm9vdCB0byBMaW51eAogICAgYXJjaC9wb3dlcnBjIGtlcm5lbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNiNWQ4OGI5NjExZTBjMzVjNTM1NDNhZDNiNGFiOTlmYTgyMjAzZTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgOCAxMTowMTowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgd2VhayBkZWZhdWx0IGZ0X2JvYXJkX3NldHVwKCkgcm91dGluZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmF1bHQgZnRfYm9hcmRfc2V0dXAoKSByb3V0aW5lIHRvIHRoZSA0eHggZmR0IGNvZGUuCiAgICBUaGlzIHJvdXRpbmUgaXMgZGVmaW5lZCBhcyB3ZWFrIGFuZCBjYW4gYmUgb3ZlcndyaXR0ZW4gYnkgYSBib2FyZCBzcGVjaWZpYwogICAgb25lIGlmIG5lZWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDFjMWJhODVjNzkxNTA1M2FkZjZhOGQxNGEwOGFjNmZjYjc1MGQwMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDEwOjQ4OjU4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IGFjYWRpYTogQWRkIGZkdCBzdXBwb3J0IGFuZCBmaXggc2VjdGlvbiBvdmVybGFwIHByb2JsZW0KCiAgICBUaGlzIHBhdGNoIGFkZHMgZmR0IChmbGF0dGVuZWQgZGV2aWNlIHRyZWUpIHN1cHBvcnQgdG8gdGhlIEFNQ0MKICAgIEFjYWRpYSBldmFsIGJvYXJkLiBUaGlzIGluY3JlYXNlcyB0aGUgaW1hZ2Ugc2l6ZSBhbmQgaXQgZG9lc24ndAogICAgZml0IGFueW1vcmUgaW50byAyNTZrQnl0ZS4gU2luY2Ugd2UgZGlkbid0IHdhbnQgdG8gcmVtb3ZlIGZlYXR1cmVzCiAgICBmcm9tIHRoZSBjb25maWd1cmF0aW9uLCB3ZSBkZWNpZGVkIHRvIGluY3JlYXNlIHRoZSBVLUJvb3QgaW1hZ2Ugc2l6ZQogICAgKGFkZCBvbmUgZmxhc2ggc2VjdG9yKS4KCiAgICBBbHNvIGNoYW5nZWQgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgZGVmaW5pdGlvbiB0byBtYWtlIGl0CiAgICBpbmRlcGVuZGVudCBvZiBzdWNoIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRhZGIzMDIzZGU3NWJjMTUwZjA4OGM4OTM1ZGIzNDA5MzBhZDM4YzgKQXV0aG9yOiBJcmEgU255ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KRGF0ZToJVHVlIEFwciAyOSAxMToxODo1NCAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgZGV2aWNlIHRyZWUgc3VwcG9ydCB0byBBTUNDIFlvc2VtaXRlCgogICAgQWRkIHN1cHBvcnQgZm9yIGJvb3Rpbmcgd2l0aCBhIGRldmljZSB0cmVlIGJsb2IuIFRoaXMgaXMgbmVlZGVkIHRvIGJvb3QKICAgIEFSQ0g9cG93ZXJwYyBrZXJuZWxzLiBBbHNvIGFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBldGgwIG1hYyBhZGRyZXNzCiAgICB2aWEgdGhlIGV0aGFkZHIgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjliYmVmY2UxYTY1M2VhMzVmNzRhNjZlYzExN2NkZGEyZTA0M2E0YgpBdXRob3I6IERhdmUgTWl0Y2hlbGwgPGRtaXRjaGVsbEBhbWNjLmNvbT4KRGF0ZToJV2VkIE1heSA3IDA5OjAwOjIzIDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEZpeCB0eXBvcyBpbiA0NjBHVC9FWCBGQkRWIGFycmF5CgogICAgQ29ycmVjdGVkIHR3byB0eXBvcyBpbiB0aGUgNDYwR1QvRVggRkJEViBhcnJheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIE1pdGNoZWxsIDxkbWl0Y2hlbGxAYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjZmNWZhOTI2MzYyOTI3MWVkYzg2MTc4YjFmMjI0ZTNjOWFhYjJiMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSA3IDE2OjU0OjMxIDIwMDggLTA1MDAKCiAgICA4NXh4OiBMaW1pdCBDUFUyIHdvcmthcm91bmQgdG8gcGFydHMgdGhhdCBoYXZlIHRoZSBlcnJhdGEKCiAgICBTaWduZWQtb2ZmLWJ5OiBFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1ZmU1MTRlOGFjZTU2NDMwMGQyYzFkNzM4NDZkZGZmNDk2NTQyNDMKQXV0aG9yOiBMZWUgTmlwcGVyIDxsZWUubmlwcGVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgMjUgMTU6NDQ6NDUgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IHN5c3RlbSBwZXJmb3JtYW5jZSBzZXR0aW5ncyBmb3IgTVBDODM0OUVNRFMuCgogICAgVGhlc2Ugc2FtZSBzZXR0aW5ncyBhcmUgdXNlZCBvbiBNUEM4MzQ5SVRYLCBhbmQKICAgIGltcHJvdmUgcGVyZm9ybWFuY2Ugb24gTVBDODM0OUVNRFMuCgogICAgU2lnbmVkLW9mZi1ieTogTGVlIE5pcHBlciA8bGVlLm5pcHBlckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OTM4N2RiYTkxMGU0ODU2NDBiNTc1ZTkyMGVlNDYzYjdlNjExZGMzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1heSA2IDEzOjIyOjUyIDIwMDggKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY2FjaGUuUzogRml4IGJ1aWxkIHdhcm5pbmcKCiAgICBTb21lIG9sZCBHTlUgYXNzZW1ibGVycywgc3VjaCBhcyB2Mi4xNCAoRUxESyAzLjEuMSksIHYyLjE2IChFTERLIDQuMS4wKSwKICAgIHdhcm5zIGlsbGVnYWwgZ2xvYmFsIHN5bWJvbCByZWZlcmVuY2VzIGJ5IGJhbCAoYW5kIGphbCBhbHNvKSBpbnN0cnVjdGlvbi4KICAgIFRoaXMgZG9lcyBub3QgaGFwcGVuIHdpdGggdGhlIGxhdGVzdCBiaW51dGlscyB2Mi4xOC4KCiAgICBIZXJlJ3MgYW4gZXhhbXBsZSBvbiBndGgyX2NvbmZpZzoKCiAgICBtaXBzXzRLQy1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHg5MDAwMDAwMCAtSS9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvaW5jbHVkZSAtZm5vLWJ1aWx0aW4gLWZmcmVlc3RhbmRpbmcgLW5vc3RkaW5jIC1pc3kKICAgIHN0ZW0gL29wdC9lbGRrMzExL3Vzci9iaW4vLi4vbGliL2djYy1saWIvbWlwcy1saW51eC8zLjMuMy9pbmNsdWRlIC1waXBlICAtRENPTkZJR19NSVBTIC1EX19NSVBTX18gLUcgMCAtbWFiaWNhbGxzIC1mcGljIC1waXBlIC1tc29mdC1mbG9hdCAtbWFyY2g9NGtjIC1tdHVuZT00awogICAgYyAtRUIgLWMgLW8gY2FjaGUubyBjYWNoZS5TCiAgICBjYWNoZS5TOiBBc3NlbWJsZXIgbWVzc2FnZXM6CiAgICBjYWNoZS5TOjI0MzogV2FybmluZzogUHJldGVuZGluZyBnbG9iYWwgc3ltYm9sIHVzZWQgYXMgYnJhbmNoIHRhcmdldCBpcyBsb2NhbC4KICAgIGNhY2hlLlM6MjUwOiBXYXJuaW5nOiBQcmV0ZW5kaW5nIGdsb2JhbCBzeW1ib2wgdXNlZCBhcyBicmFuY2ggdGFyZ2V0IGlzIGxvY2FsLgoKICAgIEluIHByaW5jaXBsZSwgZ2FzIG1pZ2h0IGJlIHNlbnNpdGl2ZSB0byBnbG9iYWwgc3ltYm9sIHJlZmVyZW5jZXMgaW4gUElDCiAgICBjb2RlIGJlY2F1c2UgdGhleSBzaG91bGQgYmUgcHJvY2Vzc2VkIHRocm91Z2ggR09UIChnbG9iYWwgb2Zmc2V0IHRhYmxlKS4KICAgIEJ1dCBpZiBgYmFsJyBpbnN0cnVjdGlvbiBpcyB1c2VkLCBpdCByZXN1bHRzIGluIFBDLWJhc2VkIG9mZnNldCBqdW1wLgogICAgVGhpcyBpcyB0aGUgY2F1c2Ugb2YgdGhpcyB3YXJuaW5nLgoKICAgIEluIHByYWN0aWNlLCB3ZSBrbm93IGl0IGRvZXNuJ3QgbWF0dGVyIHdoZXRoZXIgUEMtYmFzZWQgcmVmZXJlbmNlIG9yIEdPVC0KICAgIGJhc2VkLiBBcyBmb3IgdGhpcyBjYXNlLCBib3RoIHdpbGwgd29yayBiZWZvcmUvYWZ0ZXIgcmVsb2NhdGlvbi4gQnV0IGxldCdzCiAgICBmaXggdGhlIGNvZGUuCgogICAgVGhpcyBwYXRjaCBleHBsaWNpdGx5IHNldHMgdXAgYSB0YXJnZXQgYWRkcmVzcywgdGhlbiBqdW1wIHRoZXJlLgogICAgSGVyZSdzIGFuIGV4YW1wbGUgb2YgZGlzYXNzZW1ibGVkIGNvZGUgd2l0aC93aXRob3V0IHRoaXMgcGF0Y2guCgogICAgIDkwMDAwNjY4OgkgICAgIDE0ODVmZmVmCSAgICAgYm5lICAgICBhMCxhMSw5MDAwMDYyOCA8bWlwc19jYWNoZV9yZXNldCsweDIwPgogICAgIDkwMDAwNjZjOgkgICAgIGFjODBmZmZjCSAgICAgc3cgICAgICB6ZXJvLC00KGEwKQogICAgIDkwMDAwNjcwOgkgICAgIDAxNDAyODIxCSAgICAgbW92ZSAgICBhMSx0MgogICAgLTkwMDAwNjc0OgkgICAgIDA0MTFmZmJhCSAgICAgYmFsICAgICA5MDAwMDU2MCA8bWlwc19pbml0X2ljYWNoZT4KICAgIC05MDAwMDY3ODoJICAgICAwMTgwMzAyMQkgICAgIG1vdmUgICAgYTIsdDQKICAgIC05MDAwMDY3YzoJICAgICAwMTYwMjgyMQkgICAgIG1vdmUgICAgYTEsdDMKICAgIC05MDAwMDY4MDoJICAgICAwNDExZmZjYwkgICAgIGJhbCAgICAgOTAwMDA1YjQgPG1pcHNfaW5pdF9kY2FjaGU+CiAgICAtOTAwMDA2ODQ6CSAgICAgMDFhMDMwMjEJICAgICBtb3ZlICAgIGEyLHQ1CiAgICAtOTAwMDA2ODg6CSAgICAgMDMwMDAwMDgJICAgICBqciAgICAgIHQ4CiAgICAtOTAwMDA2OGM6CSAgICAgMDAwMDAwMDAJICAgICBub3AKICAgICs5MDAwMDY3NDoJICAgICAwMTgwMzAyMQkgICAgIG1vdmUgICAgYTIsdDQKICAgICs5MDAwMDY3ODoJICAgICA4ZjhmODNlYwkgICAgIGx3ICAgICAgdDcsLTMxNzY0KGdwKQogICAgKzkwMDAwNjdjOgkgICAgIDAxZTBmODA5CSAgICAgamFsciAgICB0NwogICAgKzkwMDAwNjgwOgkgICAgIDAwMDAwMDAwCSAgICAgbm9wCiAgICArOTAwMDA2ODQ6CSAgICAgMDE2MDI4MjEJICAgICBtb3ZlICAgIGExLHQzCiAgICArOTAwMDA2ODg6CSAgICAgMDFhMDMwMjEJICAgICBtb3ZlICAgIGEyLHQ1CiAgICArOTAwMDA2OGM6CSAgICAgOGY4ZjgxZTAJICAgICBsdyAgICAgIHQ3LC0zMjI4OChncCkKICAgICs5MDAwMDY5MDoJICAgICAwMWUwZjgwOQkgICAgIGphbHIgICAgdDcKICAgICs5MDAwMDY5NDoJICAgICAwMDAwMDAwMAkgICAgIG5vcAogICAgKzkwMDAwNjk4OgkgICAgIDAzMDAwMDA4CSAgICAganIgICAgICB0OAogICAgKzkwMDAwNjljOgkgICAgIDAwMDAwMDAwCSAgICAgbm9wCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAwZjhjNjJhMTRiNTIzYzU2ODc0ZWJjYjY3YzFhMTZjOTlhYWQ0OGIzCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZC5sdW5ndUB3aW5kcml2ZXIuY29tPgpEYXRlOglNb24gTWF5IDUgMTQ6MDQ6MDAgMjAwOCArMDMwMAoKICAgIEFsbG93IGJ1aWxkaW5nIG1pcHMgdmVyc2lvbnMgd2l0aCBFTERLIDMuMS4xCgogICAgLmdwd29yZCB3b3JrcyBvbmx5IHdpdGggbG9jYWwgc3ltYm9scyBvbiBjZXJ0YWluIGJpbnV0aWxzIHZlcnNpb25zCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZC5sdW5ndUB3aW5kcnZpZXIuY29tPgoKY29tbWl0IDEyYTY3YTllNTFmNmIzZWMyNmNiMGYwNzdmYjU2ODVhNDQ3YzM1OWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDUgMTI6NTI6MzYgMjAwOCArMDIwMAoKICAgIE1BS0VBTEw6IGFkZCBpbmthNHgwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiODNkY2MxM2FlN2IyZGFiMzk0YmZlZjZmNjk5NzUwZDExNDkwZWUyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1heSA0IDIxOjM0OjIzIDIwMDggKzAyMDAKCiAgICBrYjkyMDIgYm9hcmQ6IGZpeCBidWlsZCBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmFkZjYxZGM0Y2I1YzUzYTJkZjk5MGNiYzhkZjJiY2VhY2JmZDg2OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXkgNCAxMjoxMDozMyAyMDA4ICswMjAwCgogICAgUHJlcGFyZSBmb3IgdjEuMy4zLXJjMwoKICAgIFVwZGF0ZSBDaE5BR0VMT0csIG1pbm9yIHdoaXRlIHNwYWNlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3YzA3NzNmZGU2MTAwYjYxYmUyNTU4Y2I1ZDhjNDQyYTMxOTRhZWNiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1heSA0IDAwOjM1OjE1IDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL25ldC90c2VjLmM6IEZpeCB0eXBvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWE3Mzc5NDVlNmYzN2E1ZGU1ZGJhZDU1MGE3Njk0ZTBjYjJhODEyMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIE1heSAyIDIxOjQ1OjEyIDIwMDggLTA0MDAKCiAgICB2ZXJzaW9uX2F1dG9nZW5lcmF0ZWQuaDogdXNlIHByaW50ZiByYXRoZXIgdGhhbiBlY2hvIC1uCgogICAgU29tZSBzeXN0ZW1zIGFyZSBkdW1iIGFuZCBkbyBub3QgaW1wbGVtZW50IHRoZSAtbiBmbGFnIHRvIGVjaG8gKGxpa2UgT1MgWCkuCiAgICBDb252ZXJ0IHRoZSBNYWtlZmlsZSB0byB1c2UgcHJpbnRmIGFzIHRoaXMgc2hvdWxkIHdvcmsgZXZlcnl3aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRhY2MyYTEwOGFkMGE2NjkxNjU5MjQ3MDRhNmNiMDgzZjkxMzgyNDIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBNYXkgMiAxODoxNzo1MCAyMDA4IC0wNDAwCgogICAgZml4IGJ1aWxkaW5nIHdoZW4gc2F2ZWVudiBpcyBkaXNhYmxlZCBpbiBzb21lIHNldHVwcwoKICAgIElmIHlvdSBlbmFibGUgZW52aXJvbm1lbnQgaW4gdGhlIGZsYXNoLCBidXQgZGlzYWJsZSB0aGUgZW1iZWRkZWQKICAgIG9wdGlvbiwgYW5kIHlvdSBkaXNhYmxlIHRoZSBzYXZlZW52IGNvbW1hbmQsIHRoZW4gdGhlICNpZiBuZXN0ZWQKICAgIGxvZ2ljIHdpbGwgdHJpZ2dlciBhIGNvbXBpbGUgZmFpbHVyZToKICAgIGVudl9mbGFzaC5jOiBJbiBmdW5jdGlvbiAnZW52X3JlbG9jYXRlX3NwZWMnOgogICAgZW52X2ZsYXNoLmM6Mzk5OiBlcnJvcjogJ2ZsYXNoX2FkZHInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgVGhlIGZpeCBpcyB0byBhZGQgQ01EX1NBVkVFTlYgaWZkZWYgcHJvdGVjdGlvbiBsaWtlIGV2ZXJ5d2hlcmUgZWxzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgY2NmMWFkNTM1YWUxYzBkYzJkNDY2MjM1YzY2OGFkYmRmZTNhNTViNwpBdXRob3I6IEplcmVteSBNY05pY29sbCA8amVyZW15Lm1jbmljb2xsQHdpbmRyaXZlci5jb20+CkRhdGU6CUZyaSBNYXkgMiAxNjoxMDowNCAyMDA4IC0wNDAwCgogICAgU0JDODU0ODogZml4IGFkZHJlc3MgbWFzayB0byBhbGxvdyA2NE0gZmxhc2gKCiAgICBGaXggaW5jb3JyZWN0IG1hc2sgdG8gZW5hYmxlIGFsbCA2NE1CIG9mIG9uYm9hcmQgZmxhc2guCiAgICBQcmV2aW91c2x5IFUtQm9vdCBpbmNvcnJlY3RseSBtYXBwZWQgb25seSA4TUIgb2YgZmxhc2gsIHRoaXMKICAgIHBhdGNoIGNvcnJlY3RseSBtYXBzIGFsbCB0aGUgYXZhaWxhYmxlIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplcmVteSBNY05pY29sbCA8amVyZW15Lm1jbmljb2xsQHdpbmRyaXZlci5jb20+Cgpjb21taXQgMzY0ODA4NWM0NjRjOGMyMmVmNzZmYWIwMDZjYTQzNDRkMzc5NjEyNApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBNYXkgMiAxOTo0ODo1NiAyMDA4ICswMjAwCgogICAgcWVtdV9taXBzOiBhZGQgUkVBRE1FCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2ZmRkMDAyNjg5MTkwYTAwMjJjN2IzZGJhYjM3ZmNiYTcyNDU4MGNlCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglGcmkgTWF5IDIgMDI6MzU6NTkgMjAwOCArMDIwMAoKICAgIEZpeCBtaXNzcGVsbGVkIGNvbW1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgZmE5NTZmZGU2MGI3ZWM0ZGQ2NmJkNjJmOTkxMGZkMzQxYjUwNDlhMQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IE1heSAxIDA0OjEzOjA1IDIwMDggLTA0MDAKCiAgICBta2ltYWdlOiBtYWtlIG1tYXAoKSBjaGVja3MgY29uc2lzdGVudAoKICAgIFRoZSBtbWFwKCkgcmVsYXRlZCBjb2RlIGlzIGZ1bGwgb2YgaW5jb25zaXN0ZW50IGNhc3RzL2NvbnN0YW50cyB3aGVuCiAgICBpdCBjb21lcyB0byBlcnJvciBjaGVja2luZywgYW5kIG1heSBicmVhayB3aGVuIGJ1aWxkaW5nIG9uIHNvbWUKICAgIHN5c3RlbXMgKGxpa2Ugb25lcyB0aGF0IGRvIG5vdCBpbXBsaWNpdGx5IGRlZmluZSB0aGUgY2FkZHJfdCB0eXBlKS4KICAgIExldCdzIGp1c3QgYXZvaWQgdGhlIHdob2xlIG1lc3MgYnkgd3JpdGluZyB0aGUgY29kZSBuaWNlIGFuZCBjbGVhbiBpbgogICAgdGhlIGZpcnN0IHBsYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4ZTkwY2QwNDQ3YTBmMGNjZjUyOWVmODZmMGU2YjU2MTg3ZDNiODJhCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglUaHUgTWF5IDEgMDk6MDU6MzQgMjAwOCArMDIwMAoKICAgIEZpeCBkZWZpbmVkIGJ1dCBub3QgdXNlZCBidWlsZCB3YXJuaW5nCgogICAgLSB3YXJuaW5nOiAnc3JvbScgZGVmaW5lZCBidXQgbm90IHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgYjcxMTkwZjMyNTBhYWZmY2M4MWMzNWY2Y2ZkMzQ5OGNiN2M0ODAxMwpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJVGh1IE1heSAxIDA5OjA1OjI2IDIwMDggKzAyMDAKCiAgICBGaXggaW1wbGljaXQgZGVjbGFyYXRpb24gYnVpbGQgd2FybmluZ3MKCiAgICAtIHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmHNlcmlhbF9pbml0aWFsaXpl4oCZCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IDlhY2RlMTI5Y2MzZjljMWIzYmMxMWE4MjE0ODBkZDQ0Njc3NGQ2MTgKQXV0aG9yOiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMTk6MTg6MzIgMjAwOCArMDIwMAoKICAgIFRTRUM6IGFkZCBjb25maWcgb3B0aW9ucyBmb3IgVlNDODYwMSBSR01JSSBQSFkKCiAgICBUaGUgVml0ZXNzZSBWU0M4NjAxIFJHTUlJIFBIWSBoYXMgaW50ZXJuYWwgZGVsYXkgZm9yIGJvdGggUngKICAgIGFuZCBUeCBjbG9jayBsaW5lcy4gVGhleSBhcmUgY29uZmlndXJlZCB1c2luZyAyIGJpdHMgaW4gZXh0ZW5kZWQKICAgIHJlZ2lzdGVyIDB4MTcuCiAgICBUaGVyZWZvcmUgQ0ZHX1ZTQzg2MDFfU0tFV19UWCBhbmQgQ0ZHX1ZTQzg2MDFfU0tFV19SWCBoYXZlCiAgICBiZWVuIGludHJvZHVjZWQgd2l0aCB2YWxpZCB2YWx1ZXMgMC0zIGdpdmluZyAwLjAsIDEuNCwxLjcgYW5kIDIuMG5zIGRlbGF5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIC0tCgogICAgIGRyaXZlcnMvbmV0L3RzZWMuYyB8ICAgIDYgKysrKysrCiAgICAgZHJpdmVycy9uZXQvdHNlYy5oIHwgICAgMyArKysKICAgICAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmNvbW1pdCBiZDk4ZWU2MGRmNDNlZTZkZDZmNWViZTMyYzY3ZDAzZTkwNTEzZmY4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSAzIDIzOjA3OjE1IDIwMDggKzAyMDAKCiAgICBSZXZlcnQgIkNvbGRGaXJlOiBHZXQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY29ycmVjdCBHQ0MiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBiNzE2NmUwNWE1MTNjMDgwNmI2M2I5ZGZiNmYxZDc3NjQ1Y2VkZTJhCiAgICAocmVwbGFjZWQgYnkgY29tbWl0IGM0ZTVmNTJhNThkMjc4ZWViYjg3ZjQ3NmUzNTM5NzJjNWRhY2VhNDApLgoKY29tbWl0IGM0ZTVmNTJhNThkMjc4ZWViYjg3ZjQ3NmUzNTM5NzJjNWRhY2VhNDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDMgMjI6MjU6MDAgMjAwOCArMDIwMAoKICAgIGNvbmZpZy5tazogdXNlIGNvcnJlY3QgKGNyb3NzKSBjb21waWxlcgoKICAgIFNvbWUgY29uZmlnLm1rIGZpbGVzIHJlZmVyZW5jZSAkKENDKSB0byB0ZXN0IGZvciBzcGVjaWZpYyB0b29sIGNoYWluCiAgICBmZWF0dXJlcywgc28gbWFrZSBzdXJlICQoQ0MpIGdldHMgc2V0IGJlZm9yZSBpbmNsdWRpbmcgYW55IHN1Y2gKICAgIGNvbmZpZyBmaWxlcy4KCiAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIGNvbW1pdCBiNzE2NmUwNWE1ICgiQ29sZEZpcmU6IEdldCBpbmZvcm1hdGlvbiBmcm9tCiAgICB0aGUgY29ycmVjdCBHQ0MiKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDI3YzM4Njg5ZDBjZmRlMGU0NDQyMzkzNDVmOTdiNWVlY2M5ZjQwNjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgTWF5IDEgMDI6MTM6NDQgMjAwOCArMDIwMAoKICAgIHB4YTogZml4IHByZXZpb3VzIGRlZmluaXRpb24gb24gY3B1IGluaXQKCiAgICBzdGFydC5TOjE4MzoxOiB3YXJuaW5nOiAiSUNNUiIgcmVkZWZpbmVkCiAgICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gc3RhcnQuUzozMzoKICAgIGluY2x1ZGUvYXNtL2FyY2gvcHhhLXJlZ3MuaDo5MzU6MTogd2FybmluZzogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24KICAgIHN0YXJ0LlM6MTg3OjE6IHdhcm5pbmc6ICJSQ1NSIiByZWRlZmluZWQKICAgIC4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmQxMmU2OTdkZTc5NGQ3MDA3NjdmMjJmOTUwZTMwMjZjY2Y0ZGFmNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBNYXkgMSAwMjoxMzo0MyAyMDA4ICswMjAwCgogICAgcHhhOiBmaXggcGNtY2lhIG9wZXJhdGlvbiBvbiAnaScgbWF5IGJlIHVuZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRkNzdmNTEwMmRmZWFhMzZjZDU4ZDlhOWYwODNiZDJjYzQ5MTUyNmYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgQXByIDMwIDE2OjI0OjM1IDIwMDggLTA1MDAKCiAgICBNUEM4NjEwSFBDRDogRHJvcCAtTzIgZnJvbSB0aGUgYnVpbGQgZmxhZ3MKCiAgICBNYWtlIHRoZSBmbGFncyB1c2UgLU9zIGxpa2UgYWxsIG90aGVyIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMDA3MmI3OGJlMmI0MWU1YTBjYTNkZGMzOTMzNTU3NGRjMmU4NTViZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAzMCAxNTo1MDozOSAyMDA4ICswMjAwCgogICAgUlRDOiBGaXggbW9udGggb2Zmc2V0IGJ5IG9uZSBwcm9ibGVtIGluIE00MVQ2MiBSVEMgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gd2l0aCB0aGUgbW9udGggYmVpbmcgcmVhZCBhbmQgd3JpdHRlbgogICAgaW5jb3JyZWN0bHkgKG9mZnNldCBieSBvbmUpLiBUaGlzIG9ubHkgZ2V0cyB2aXNpYmxlIGJ5IGFsc28gdXNpbmcKICAgIHRoZSBMaW51eCBkcml2ZXIgKHJ0Yy1tNDF0ODApLgoKICAgIFRlc3RlZCBvbiBBTUNDIENhbnlvbmxhbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDFiYTFjYWQ4ZTY1OThhMjQ2NmU3ZTI5NzZjNmExMjI4NWRmNjE5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE1heSAzIDEzOjUxOjQ0IDIwMDggKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY29uZmlnLm1rOiBGaXggR05VIGFzc2VtYmxlciBtaW5vciB2ZXJzaW9uIHBpY2tlcgoKICAgIEN1cnJlbnQgdHJpY2sgdG8gcGljayB1cCBHTlUgYXNzZW1ibGVyIG1pbm9yIHZlcnNpb24gdXNlcyBhIGRvdCguKSBhcyBhCiAgICBkZWxpbWl0ZXIsIGFuZCB0YWtlIHRoZSBzZWNvbmQgZmllbGQgdG8gb2J0YWluIG1pbm9yIHZlcnNpb24gbnVtYmVyLiBCdXQKICAgIGFzIGNhbiBiZSBleHBlY3RlZCwgdGhpcyBkb2Vzbid0IHdvcmsgd2l0aCBhIHZlcnNpb24gc3RyaW5nIHdoaWNoIGhhcwogICAgZG90cyBtb3JlIHRoYW4gbmVlZHMuCgogICAgSGVyZSdzIGFuIGV4YW1wbGU6CgogICAgJCBtaXBzLWxpbnV4LWdudS1hcyAtLXZlcnNpb24gfCBncmVwICdHTlUgYXNzZW1ibGVyJwogICAgR05VIGFzc2VtYmxlciAoU291cmNlcnkgRysrIExpdGUgNC4yLTEyOSkgMi4xOC41MC4yMDA4MDIxNQogICAgJCBtaXBzLWxpbnV4LWdudS1hcyAtLXZlcnNpb24gfCBncmVwICdHTlUgYXNzZW1ibGVyJyB8IGN1dCAtZC4gLWYyCiAgICAyLTEyOSkgMgogICAgJAoKICAgIFRoaXMgcGF0Y2ggcmVzdHJpY3RzIHRoZSB2ZXJzaW9uIGZvcm1hdCB0byAyLlhYLlhYLi4uIFRoaXMgd2lsbCB3b3JrCiAgICBpbiBtb3N0IGNhc2VzLgoKICAgICQgbWlwcy1saW51eC1nbnUtYXMgLS12ZXJzaW9uIHwgZ3JlcCAnR05VIGFzc2VtYmxlcicgfCBlZ3JlcCAtbyAnMlwuWzAtOVwuXSsnCiAgICAyLjE4LjUwLjIwMDgwMjE1CiAgICAkIG1pcHMtbGludXgtZ251LWFzIC0tdmVyc2lvbiB8IGdyZXAgJ0dOVSBhc3NlbWJsZXInIHwgZWdyZXAgLW8gJzJcLlswLTlcLl0rJyB8IGN1dCAtZC4gLWYyCiAgICAxOAogICAgJAoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZWE2Mzg5NTFhY2VhZDdmMTA4NmM5MDhjMGI5ZjA4NmJlYWI4MmEyMgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBNYXkgMyAxMzo1MToyOCAyMDA4ICswOTAwCgogICAgW01JUFNdIGNwdS9taXBzL2NhY2hlLlM6IEFkZCBkY2FjaGVfZW5hYmxlCgogICAgUmVjZW50IGJvb3RlbGYgY29tbWFuZCBmaXhlcyAoMDE3ZTliNzkyNWY3NDg3OGQwZTk0NzUzODhjY2E5YmRhNWVmOTQ4MiwKICAgICJhbGxvdyBwb3J0cyB0byBvdmVycmlkZSBib290ZWxmIGJlaGF2aW9yIikgcmVxdWlyZXMgcG9ydHMgdG8gaGF2ZSB0aGlzCiAgICBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDJjNmZiZWM0Mzk3YzkzNmIxOGNkNDI0ODJiNjk3M2NkNjc4MWJkZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMSAyMTozMDoxNiAyMDA4ICswMjAwCgogICAgb25lbmFuZDogcmVuYW1lIDE2IGJpdCBtZW1vcnkgY29weSBpbnRvIG1lbWNweV8xNigpIHRvIGF2b2lkIGNvbmZsaWN0cwoKICAgIE9uZW5hbmQgbmVlZHMgYSB2ZXJzaW9uIG9mIG1lbWNweSgpIHdoaWNoIHBlcmZvcm1zIDE2IGJpdCBhY2Nlc3NlcwogICAgb25seTsgbWFrZSBzdXJlIHRoZSBuYW1lIGRvZXMgbm90IGNvbmZsaWN0IHdpdGggdGhlIHN0YW5kYXJkCiAgICBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDEyYmM0ZTk0MjUxYzM2OWM1MjlmZmE1MDVjZjU4YjE0OGMzNzJmN2YKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXByIDMwIDIyOjM4OjE3IDIwMDggKzAyMDAKCiAgICBjbWRfbmFuZDogZml4IHdhcm5pbmc6IHN0cjJsb25nIG5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMWI5ZWQyNTc0YTM4YzkzY2IwM2RhZDQxODg1ZmMwNmJlNGJmYzlkZApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgNCAxMToxNjoxMSAyMDA4IC0wNTAwCgogICAgRml4IGNhbGN1bGF0aW9uIG9mIEkyQyBjbG9jayBmb3Igc29tZSA4Nnh4IGNoaXBzCgogICAgU29tZSA4Nnh4IGNoaXBzIHVzZSBDQ0IgYXMgdGhlIGJhc2UgY2xvY2sgZm9yIHRoZSBJMkMsIGFuZCBvdGhlcnMgdXNlZCBDQ0IvMi4KICAgIFRoZXJlIGlzIG5vIHBhdHRlcm4gdGhhdCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggY2hpcHMgdXNlIHdoaWNoCiAgICBmcmVxdWVuY3ksIHNvIHRoZSBvbmx5IHdheSB0byBkZXRlcm1pbmUgaXMgdG8gbG9vayB1cCB0aGUgYWN0dWFsIFNPQwogICAgZGVzaWduYXRpb24gYW5kIHVzZSB0aGUgcmlnaHQgdmFsdWUgZm9yIHRoYXQgU09DLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjMyZjdmZTdiZDNhNWJkYTNhNDc2NTIwZjAwZTFhY2E3YzIxMDNhOQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMzAgMTI6MTE6MTkgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggZXRoZXJuZXQgaGFuZyBpc3N1ZSBmb3IgbWNmNTQ3eF84eAoKICAgIFRoZSBldGhlcm5ldCBoYW5nIGlzIGNhdXNlZCBieSByZWNlaXZpbmcgYnVmZmVyIGluIERSQU0gaXMgbm90CiAgICB5ZXQgcmVhZHkgZHVlIHRvIGFjY2VzcyBjeWNsZXMgcmVxdWlyZSBsb25nZXIgdGltZSBpbiBEUkFNLgogICAgUmVsb2NhdGUgRE1BIGJ1ZmZlciBkZXNjcmlwdG9ycyBmcm9tIERSQU0gdG8gaW50ZXJuYWwgU1JBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg4NmQ5MDE3NmZjMjU3ZTBhYjRkMGRiMDVkMTFkMDc0OWJiZWQzY2EKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDMwIDEyOjEwOjQ3IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGNvbXBpbGF0aW9uIGlzc3VlIGNhdXNlZCBieSBuZXcgY2hhbmdlcyBpbiBmc2xfaTJjLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMdWlnaSBDb21pbyBNYW50ZWxsaW5pIDxsdWlnaS5tYW50ZWxsaW5pQGlkZi1oaXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNzE2NmUwNWE1MTNjMDgwNmI2M2I5ZGZiNmYxZDc3NjQ1Y2VkZTJhCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxMjoxMDoyMyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEdldCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb3JyZWN0IEdDQwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1cnQgTWFoYW4gPGttYWhhbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNzhlN2VjOTVkYTQ3NTFlYzhmZTQ2MWJhYWNhYjJiZjdkMjUxMmE5CkF1dGhvcjogZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxODowMjo1OSAyMDA4ICswMjAwCgogICAgRml4IHdhcm5pbmcgaW4gZW52X25hbmQuYyBpZiBjb21waWxlZCBmb3IgRGFWaW5jaSBTY2htb29naWUKCiAgICBGaXggd2FybmluZ3MKCiAgICBudl9uYW5kLmM6IEluIGZ1bmN0aW9uICdzYXZlZW52JzoKICAgIGVudl9uYW5kLmM6MjAwOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2YgJ25hbmRfd3JpdGUnIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQogICAgZW52X25hbmQuYzogSW4gZnVuY3Rpb24gJ2Vudl9yZWxvY2F0ZV9zcGVjJzoKICAgIGVudl9uYW5kLmM6Mjc1OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2YgJ25hbmRfcmVhZCcgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlCgogICAgaWYgY29tcGlsZWQgZm9yIGRhdmluY2lfc2NobW9vZ2llX2NvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KICAgIEFjayBieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+Cgpjb21taXQgMzNhNGE3MGQ0OGQ2MjJjYzQ5NTBjNjBhODRmZWMyM2I5NDIxZjIzZQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAzMCAxMzozNDo0MCAyMDA4ICswMjAwCgogICAgRml4IHdhcm5pbmdzIHdoaWxlIGNvbXBpbGluZyBuZXQvbmV0LmMgZm9yIE1QQzg2MTBIUENEIGJvYXJkCgogICAgTVBDODYxMEhQQ0QgYm9hcmQgYWRkcyAtTzIgZ2NjIG9wdGlvbiB0byBQTEFURk9STV9DUFBGTEFHUwogICAgY2F1c2luZyBvdmVycmlkaW5nIGRlZmF1bHQgLU9zIG9wdGlvbi4gTmV3IGdjYyAodmVyLiA0LjIuMikKICAgIHByb2R1Y2VzIHdhcm5pbmdzIHdoaWxlIGNvbXBpbGluZyBuZXQvbmV0LmMgZmlsZSB3aXRoIC1PMgogICAgb3B0aW9uLiBUaGUgcGF0Y2ggaXMgYW4gYXR0ZW1wdCB0byBmaXggdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNThiNTc1ZTU3NWMyNWZkZjhjODgxNDFlMTQ1ZGIyMDFmMzA5MjE0OQpBdXRob3I6IFNhc2NoYSBMYXVlIDxTYXNjaGEuTGF1ZUBnbXguYml6PgpEYXRlOglXZWQgQXByIDMwIDE1OjIzOjM4IDIwMDggKzAyMDAKCiAgICBsd21vbjU6IGZpeCBvZmZzZXQgZXJyb3IgaW4gc3lzbW9uMCBQT1NUCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIExhdWUgPHNhc2NoYS5sYXVlQGxpZWJoZXJyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTc0MTliMjQzYTM3M2RlNGVlMDQyZjdkNGY0NWY2NmRlNzg3MjQwZApBdXRob3I6IFNhc2NoYSBMYXVlIDxTYXNjaGEuTGF1ZUBnbXguYml6PgpEYXRlOglXZWQgQXByIDMwIDE1OjE2OjM1IDIwMDggKzAyMDAKCiAgICBsd21vbjU6IGZpeCBtYW51YWwgbWVyZ2UgZXJyb3IgaW4gUE9TVAoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBMYXVlIDxzYXNjaGEubGF1ZUBsaWViaGVyci5jb20+Cgpjb21taXQgNDJmZmNlYzNmOWViYTAxMGE2NjJkNWI0Mjk4MTgxMmI2YmViZmI5YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTc6NDY6MjYgMjAwOCArMDIwMAoKICAgIGNtZF9uYW5kLmM6IGZpeCBhbm90aGVyICdpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlJyB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGUxMDlkOTA5NzA3ZTJkZmU4MDZiZTVlZmMzY2RiMTAzYjQ3YzhhZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTc6MjU6MDcgMjAwOCArMDIwMAoKICAgIE1ha2VmaWxlOiBmaXggcGFyYWxsZWwgYnVpbGRzCgogICAgVGhpcyBwcm9ibGVtIHNob3dzIHVwIHdpdGggcGFyYWxsZWwgYnVpbGRzIG9ubHk7IGl0IHJlc3VsdHMgaW4KICAgIHNvbWV3aGF0IGNyeXB0aWMgZXJyb3IgbWVzc2FnZXMgbGlrZQoKCSQgSk9CUz0tajYgTUFLRUFMTCBuZXRzdGFyCglDb25maWd1cmluZyBmb3IgbmV0c3RhciBib2FyZC4uLgoJYXJtLWxpbnV4LWxkOiBjYW5ub3QgZmluZCAtbGdlbmVyaWMKCW1ha2VbMV06ICoqKiBbZWVwcm9tLnNyZWNdIEVycm9yIDEKCiAgICBBIGZldyBib2FyZHMgKGxpa2UgbmV0c3RhciBhbmQgdm9pY2VibHVlKSBuZWVkIHNvbWUgbGlicmFyaWVzIGZvcgogICAgYnVpbGRpbmc7IGhvd2V2ZXIsIHRoZSBib2FyZCBNYWtlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBzdWNoCiAgICBkZXBlbmRlbmNpZXMgd2hpY2ggbWF5IGNhdXNlIHByb2JsZW1zIHdpdGggcGFyYWxsZWwgYnVpbGRzLiBBZGRpbmcKICAgIHN1Y2ggZGVwZW5kZW5jaWVzIGlzIGRpZmZpY3VsdCBhcyB3ZSB3b3VsZCBhbHNvIGhhdmUgdG8gcHJvdmlkZSBidWlsZAogICAgcnVsZXMsIHdoaWNoIGFscmVhZHkgZXhpc3QgaW4gdGhlIHJlc3BlY3RpdmUgbGlicmFyeSBNYWtlZmlsZXMuCgogICAgVG8gc29sdmUgdGhpcywgd2UgbWFrZSBzdXJlIHRoYXQgYWxsIGxpYnJhcmllcyBnZXQgYnVpbHQgYmVmb3JlIHRoZQogICAgYm9hcmQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRmMjcwOThlNWIwNzM2OTg5YjEzY2Q2MWQ3YmNhOTRiMzU3NGNmNWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTQ6NTE6MzYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRhcHQgQ2FueW9ubGFuZHMgZml4ZWQgRERSMiBzZXR1cCB0byBuZXcgRElNTSBtb2R1bGUKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIENhbnlvbmxhbmRzL0dsYWNpZXIgZml4ZWQgRERSMiBjb250cm9sbGVyIHNldHVwCiAgICB1c2VkIGZvciBOQU5EIGJvb3RpbmcgdG8gbWF0Y2ggdGhlIHZhbHVlcyBuZWVkZWQgZm9yIHRoZSBuZXcgNTEyTUIKICAgIERJTU0gbW9kdWxlcyBzaGlwcGVkIHdpdGggdGhlIHByb2R1Y3Rpb25zIGJvYXJkczoKCiAgICBDcnVjaWFsOiBDVDY0NjRBQzY2Ny44RkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWE5MjAyYTY1OWRjNzU5OTZmYWNmMTQ3NWYxODY2YTE5YTlkMzEyOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAzMCAxMDo0OTo0MyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSB3aXRoIERJTU1zIHdpdGggOCBiYW5rcyBpbiA0NHhfc3BkX2RkcjIuYwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggRElNTXMgdGhhdCBoYXZlIDggYmFua3MuIE5vdyB0aGUKICAgIE1DSUYwX01CeENGIHJlZ2lzdGVyIHdpbGwgYmUgc2V0dXAgY29ycmVjdGx5IGZvciB0aGlzIHNldHVwIHRvby4KCiAgICBUaGlzIHdhcyBub3RpY2VkIHdpdGggdGhlIDUxMk1CIERJTU0gb24gQ2FueW9ubGFuZHMvR2xhY2llci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzY2MTcyOTkzNThlYmJhMjYwZWNjMDJkMzNlOGU3NWQ4ZDEzZGQzYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMjM6NDE6MDYgMjAwOCArMDIwMAoKICAgIFByZXBhcmUgdjEuMy4zLXJjMiwgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiN2ZjYzRjMTM5OTM3ODIzNDJjZjVjZDIwZDIzN2E2MjgxNjQ4YTBiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAyMzozNToyNCAyMDA4ICswMjAwCgogICAgUHJlcGFyZSB2MS4zLjMtcmMyCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmN2IxNmEwYTRkNTcxZGQzM2IyYjUxODVhNTRmN2RkYzMxMWY4OWQ0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAyMzozMjoyMCAyMDA4ICswMjAwCgogICAgY29tbW9uL2Vudl9uYW5kLmM6IGZpeCBvbmUgbW9yZSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIGlzc3VlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlYTZmNjY4OTRmOTUyMjI5ZWViZmM0YWQwM2NkMjFmZTVjOGIzZjBmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAyMTozMzowOCAyMDA4ICswMjAwCgogICAgcG9zdC9ib2FyZC9sd21vbjUvc3lzbW9uLmM6IGZpeCBtYW51YWwgbWVyZ2UgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3MGEwZjgxNDEyYjBiMThhNmZkMGJlYTk2MDQ1MWJjNmMyY2NhNDlhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciAyOSAxMjo1NDo1OSAyMDA4IC0wNTAwCgogICAgODV4eDogQWRkIC1tbm8tc3BlIHRvIGU1MDAvODV4eCBidWlsZHMKCiAgICBOZXdlciBnY2MncyBtaWdodCBiZSBjb25maWd1cmVkIHRvIGVuYWJsZSBhdXRvdmVjdG9yaXphdGlvbiBieSBkZWZhdWx0LgogICAgSWYgd2UgaGFwcGVuIHRvIGJ1aWxkIHdpdGggb25lIG9mIHRob3NlIGNvbXBpbGVycyB3ZSB3aWxsIGdldCBTUEUKICAgIGluc3RydWN0aW9ucyBpbiByYW5kb20gY29kZS4KCiAgICAtbW5vLXNwZSBkaXNhYmxlcyB0aGUgY29tcGlsZXIgZm9yIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyBTUEUKICAgIGluc3RydWN0aW9ucyB3aXRob3V0IG91ciBrbm93bGVkZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4ZWEwOGU1YmU2OTQzNmFiY2M5NWQzZGExMTRkZTRhMmZmOGE2YWI1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciAyOSAxMDoxODozNCAyMDA4IC0wNTAwCgogICAgVXBkYXRlIC5naXRpZ25vcmUgZm9yIHpsaWIuaAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDUyMzljZjQxNTIxMDljYWE5MjUxNDVjY2Q0MzM1Mjk5MDJkZjg4NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBcHIgMjkgMTA6Mjc6MDggMjAwOCAtMDUwMAoKICAgIDg1eHgvODZ4eDogUmVuYW1lIGV4dF9yZWZyZWMgdG8gdGltaW5nX2NmZ18zIHRvIG1hdGNoIGRvY3MKCiAgICBBbGwgdGhlIDg1eHggYW5kIDg2eHggVU0gZGVzY3JpYmUgdGhlIHJlZ2lzdGVyIGFzIHRpbWluZ19jZmdfMwogICAgbm90IGFzIGV4dF9yZWZyZWMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlZjdkMzBiMTQzOTRlNGM0YTE1MzExOGY1ODQ1NzYwY2FkYWRhMDJhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciAyOSAxMDoyODozNCAyMDA4IC0wNTAwCgogICAgODV4eC84Nnh4OiBSZW5hbWUgRERSIGluaXQgYWRkcmVzcyBhbmQgaW5pdCBleHRlbmRlZCBhZGRyZXNzIHJlZ2lzdGVyCgogICAgUmVuYW1lIGluaXRfYWRkciBhbmQgaW5pdF9leHRfYWRkciB0byBtYXRjaCB0aGUgZG9jcyBiZXR3ZWVuCiAgICA4NXh4IGFuZCA4Nnh4LiAgQm90aCBub3cgdXNlICdpbml0X2FkZHInIGFuZCAnaW5pdF9leHRfYWRkcicuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjZjZjYzAxNDI3MDU0OTY4NDg3M2E1OTcyZDI1OTUwNTJjNDY4Y2I2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEFwciAyOCAwMjoyNDowNCAyMDA4IC0wNTAwCgogICAgODV4eDogQWRkaXRpb25hbCBmaXhlcyBhbmQgY2xlYW51cCBvZiBNUCBjb2RlCgogICAgKiBhZGp1c3QgX19zcGluX3RhYmxlIGFsaWdubWVudCB0byBtYXRjaCBlUEFQUiB2MC45NCBzcGVjCiAgICAqIGxvb3Agb3ZlciBhbGwgY3B1cyB3aGVuIGRldGVybWluZyB3aG8gaXMgdXAuICBUaGlzIGZpeGVzIGFuIGlzc3VlIGlmCiAgICAgIHRoZSAiYm9vdCBjcHUiIGlzbid0IGNvcmUwLiAgVGhlICJib290IGNwdSIgd2lsbCBhbHJlYWR5IGJlIGluIHRoZQogICAgICBjcHVfdXBfbWFzayBzbyB0aGVyZSBpcyBubyBoYXJtCiAgICAqIEFkZGVkIHNvbWUgcHJvdGVjdGlvbiBpbiB0aGUgY29kZSB0byBlbnN1cmUgcHJvcGVyIGJlaGF2aW9yLiAgVGhlc2UKICAgICAgY2hhbmdlcyBhcmUgZXhwbGljaXRseSBuZWVkZWQgYnV0IGRvbid0IGh1cnQ6CiAgICAgIC0gQWRkZWQgZWllaW8gdG8gZW5zdXJlIHRoZSAiaG90IHdvcmQiIG9mIHRoZSB0YWJsZSBpcyB3cml0dGVuIGFmdGVyCglhbGwgb3RoZXIgdGFibGUgdXBkYXRlcyBoYXZlIG9jY3VycmVkLgogICAgICAtIEFkZGVkIGlzeW5jIHRvIGVuc3VyZSB3ZSBkb24ndCBwcmVmZXRjaCBsb2FkaW5nIG9mIHRhYmxlIGVudHJpZXMKCXVudGlsIHdlIGEgcmVsZWFzZWQKCiAgICBUaGVzZSBpc3N1ZXMgd2UgcmFpc2VkIGJ5IERhdmUgTGl1LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYjJkNTI3YThiOWZiNTBhZmNjYmFmNzliNTU0MDk1MjU4NWNkYzc2MApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEFwciAyOSAxNTowNjo0MSAyMDA4ICswMjAwCgogICAgbHdtb241OiBtaW5vciBjbGVhbi11cCB0byBpbmNsdWRlL2NvbmZpZ3MvbHdtb241LmgKCiAgICBMV01PTjUgRFNQSUMgUE9TVCB1c2VzIHRoZSB3YXRjaC1kb2cgc2NyYXRjaCByZWdpc3Rlci4gU28sIG1ha2UKICAgIHRoZSBDRkdfRFNQSUNfVEVTVF9BRERSIGRlZmluaXRpb24gbW9yZSByZWFkYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZjRjNGQyMWE4ODVjY2MyMjJmZDBhY2RmNjUzYjY4MzI0OWU4NTExNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAxNjowODowNSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggQ0ZHX01PTklUT1JfTEVOIG9uIEthdG1haSBmYWlsc2F2ZSB0aGlzIHRpbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTM4MTA1ZWZlMWQyYjFhNDBhM2E5N2I0YzFmODVjMjExMWJlYTJkOApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEFwciAyOSAxMzozMjo0NSAyMDA4ICswMjAwCgogICAgcHBjIGZsdXNoX2NhY2hlOiBhZGQgd2F0Y2gtZG9nIHRyaWdnZXJpbmcgaW50byB0aGUgbG9vcHMuCgogICAgU29tZSBib2FyZHMgKGUuZy4gbHdtb241KSBuZWVkIHJhdGhlciBhIGZyZXF1ZW50IHdhdGNoLWRvZwogICAga2lja2luZy4gU2luY2UgdGhlIHRpbWUgaXQgdGFrZXMgZm9yIHRoZSBmbHVzaF9jYWNoZSgpIGZ1bmN0aW9uCiAgICB0byBjb21wbGV0ZSBpdHMgam9iIGRlcGVuZHMgb24gdGhlIHNpemUgb2YgZGF0YSBiZWluZyBmbHVzaGVkLCBvbmUKICAgIG1heSBlbmNvdW50ZXIgd2F0Y2gtZG9nIHJlc2V0cyBvbiBzdWNoIGJvYXJkcyB3aGVuLCBmb3IgZXhhbXBsZSwKICAgIGRvd25sb2FkIGJpZyBmaWxlcyBvdmVyIGV0aGVybmV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBjYWI5OWQ2ZjMyODFhYjY3ODRmZWNjZjk4YjliNDI1ZGFhNTg0MThhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDI5IDE0OjQ0OjU0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIGluIGRlbmFsaV9zcGRfZGRyMi5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRlYzlkNzhmZTVjZDU4NWQyODY4NzMxZmExMDhjYTFlNjI3MzBlNzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMTQ6MTI6MDcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IEthdG1haSBDRkdfTU9OSVRPUl9MRU4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODVhZDE4NGIzYjJiMGY4YWY5MjI4NDc3MzAzYzU1ZGNhMWI1MmVkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAxMzo1NzowNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb21wbGV0ZSByZW1vdmUgYm9ndXMgZGZsdXNoKCkKCiAgICBTaW5jZSB0aGUgY3VycmVudCBkZmx1c2goKSBpbXBsZW1lbnRhdGlvbiBpcyBrbm93IHRvIGhhdmUgc29tZSBwcm9ibGVtcwogICAgKGFzIHNlZW0gb24gbHdtb241IEVDQyBpbml0KSB0aGlzIHBhdGNoIHJlbW92ZXMgaXQgY29tcGxldGVseSBhbmQgcmVwbGFjZXMKICAgIGl0IGJ5IHVzaW5nIGNsZWFuX2RjYWNoZV9yYW5nZSgpLgoKICAgIFRlc3RlZCBvbiBLYXRtYWkgd2l0aCBFQ0MgRElNTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTM1ODQ2ZDZlY2FhZDI1NWFkMjhkOTNlYmJiNzhiM2Q1ZGE2OGNkYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAxMzozNjo1MSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgRUNDIGluaXRpYWxpemF0aW9uIG9uIGx3bW9uNSB0byB1c2UgY2xlYW5fZGNhY2hlX3JhbmdlKCkKCiAgICBBcyBpdCBzZWVtcyB0aGUgIm9sZCIgRUNDIGluaXRpYWxpemF0aW9uIHJvdXRpbmUgYnkgdXNpbmcgZGZsdXNoKCkgZGlkbid0CiAgICB3cml0ZSBhbGwgbGluZXMgaW4gdGhlIGRjYWNoZSBiYWNrIHRvIG1lbW9yeSBvbiBsd21vbjUuIFRoaXMgY291bGQgbGVhZAogICAgdG8gRUNDIGVycm9yIHVwb24gTGludXggYm9vdGluZy4gVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBwcm9ncmFtX2VjYygpCiAgICByb3V0aW5lIHRvIG5vdyB1c2UgY2xlYW5fZGNhY2hlX3JhbmdlKCkgaW5zdGVhZCBvZiBkZmx1c2goKS4KICAgIGNsZWFuX2RjYWNoZV9yYW5nZSgpIHVzZXMgZGNic3Qgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIHdhbnQgaW4gdGhpcwogICAgY2FzZS4KCiAgICBTaW5jZSBkZmx1c2goKSBpcyBrbm93biBpcyBjYXVzZSBwcm9ibGVtcywgdGhpcyByb3V0aW5lIHdpbGwgYmUKICAgIHJlbW92ZWQgY29tcGxldGVseSBhbmQgcmVwbGFjZWQgYnkgY2xlYW5fZGNhY2hlX3JhbmdlKCkgd2l0aCBhbgogICAgYWRkaXRpb25hbCBwYXRjaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMThlYzE5ZTRhYTFhMDQ1ZGZiZjJjN2MyZTMzOTYzNDg4ZTkyZDc1NwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIEFwciAyOCAxODoxOTozNCAyMDA4ICswMjAwCgogICAgUE9TVDogZml4IE1ha2VmaWxlcyBmb3IgbXBjOHh4LCBsd21vbiwgYW5kIG5ldHRhIFBPU1RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBlZWE1YTc0M2EyMTkzZWYyYTA1YjliYzZkYzQ0N2JhMjQxNDE2ZjM1CkF1dGhvcjogTWFya3VzIEJydW5uZXIgPHN1cGVyLmZpcmV0d2lzdGVyQGdvb2dsZW1haWwuY29tPgpEYXRlOglNb24gQXByIDI4IDA4OjQ3OjQ3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeHVwIGViYyBjbG9jayBpbiBGRFQgZm9yIDQwNUdQL0VQCgogICAgT24gcHBjNDA1RVAgYW5kIHBwYzQwNUdQIChhdCBsZWFzdCkgdGhlIGViYyBpcyBkaXJlY3RseSBhdHRhY2hlZCB0byB0aGUgcGxiCiAgICBhbmQgbm90IHRvIHRoZSBvcGIuIFRoaXMgcGF0Y2ggd2lsbCB0cnkgdG8gZml4dXAgL3BsYi9lYmMgaWYgL3BsYi9vcGIvZWJjCiAgICBkb2Vzbid0IGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBCcnVubmVyIDxzdXBlci5maXJldHdpc3RlckBnbWFpbC5jb20+Cgpjb21taXQgMmVmNzUwM2E1OTNjNzdhODBjMmEwNTQwMTE5NzAyMjdjNGI2Mjc3NApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBBcHIgMjQgMDc6NTc6MTcgMjAwOCArMDIwMAoKICAgIE5FMjAwMDogRml4IHJlZ3Jlc3NzaW9uIGludHJvZHVjZWQgYnkgZTcxMDE4NWFhZTkwIG9uIG5vbiBBWDg4Nzk2CgogICAgTW92ZSBub24taW5saWVkIGZ1bmN0aW9ucyBpbnRvIHNwZWNpZmljIGRyaXZlcnMgZmlsZQogICAgU2V0IGdldF9wcm9tIGFzIHdlYWsKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDQwY2I5MGVlMmI5N2RiMWY2OTdlMWI1NGYxOWE1NDhmZmM5NmQ3MWIKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMyAxNzowNDoxOSAyMDA4ICswMjAwCgogICAgbmV0OiBtYWtlIEFSUCB0aW1lb3V0IGNvbmZpZ3VyYWJsZQoKICAgIEN1cnJlbnRseSB0aGUgdGltZW91dCB3YWl0aW5nIGZvciBhbiBBUlAgcmVwbHkgaXMgaGFyZCBzZXQgdG8gNSBzZWNvbmRzLgogICAgT24gaS5NWDMxQURTIGR1ZSB0byBhIGhhcmR3YXJlICJzdHJhbmdlbmVzcyIgdXAgdG8gZm91ciBmaXJzdCBJUCBwYWNrZXRzCiAgICB0byB0aGUgYm9hcmRzIGdldCBsb3N0LCB3aGljaCB0eXBpY2FsbHkgYXJlIEFSUCByZXBsaWVzLiBCeSBjb25maWd1cmluZwogICAgdGhlIHRpbWVvdXQgdG8gYSBsb3dlciB2YWx1ZSB3ZSBzaWduaWZpY2FudGx5IGltcHJvdmUgdGhlIGZpcnN0IG5ldHdvcmsKICAgIHRyYW5zZmVyIHRpbWUgb24gdGhpcyBib2FyZC4gVGhlIHRpbWVvdXQgaXMgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywKICAgIGxhdGVyIGludGVybmFsbHkgaXQgaXMgY29udmVydGVkIHRvIGRlY2lzZWNvbmRzLCBiZWNhdXNlIGl0IGhhcyB0byBiZQogICAgY29udmVydGVkIHRvIGhhcmR3YXJlIHRpY2tzLCBhbmQgQ0ZHX0haIHJhbmdlcyBmcm9tIDkwMCB0byAyNzAwMDAwMCBvbgogICAgZGlmZmVyZW50IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDEzZTBiOGY3Y2E5ZDI5MjY3YmYwMWQ3YTAxZTUyMWEwNTE3YWRjZTEKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMyAxMzozNjoxOCAyMDA4ICswMjAwCgogICAgbWlub3IgY3M4OTAwIGRyaXZlciBjbGVhbiB1cAoKICAgIFJlbW92ZSBhIHJlZHVuZGFudCByZWdpc3RlciBkZWZpbml0aW9uLCBjbGVhbiB1cCBzb21lIGNvZGluZyBzdHlsZQogICAgdmlvbGF0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDcwN2ZhOTE3Y2NhMjRjMGYyMjc3NmY0OGFjNGE2ZmE1ZTUxODliMTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDIyOjAxOjA0IDIwMDggKzAyMDAKCiAgICBqZmZzMl8xcGFzcy5jOiBmaXggaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2YWVlMDBmNWU2YTFjZjI5ZDhmZThmZGM5YjcyNTJmYmQzMTExNWQ5CkF1dGhvcjogU2FzY2hhIExhdWUgPFNhc2NoYS5MYXVlQGdteC5iaXo+CkRhdGU6CVR1ZSBBcHIgMSAxMDoxMDoxOCAyMDA4ICswMjAwCgogICAgbHdtb241OiB1cGRhdGUgZHNQSUMgUE9TVCBzcGV6aWZpY2F0aW9uCgogICAgVGhlIHNwZWNpZmljYXRpb24gZm9yIHRoZSBsd21vbjUgYm9hcmQgZHNQSUMgUE9TVCBnb3QgY2hhbmdlZC4KICAgIEFsc28gYWRkIGRlZmluZXMgZm9yIHRoZSB0ZW1wZXJhdHVyZXMgIGFuZCB2b2x0YWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8c2FzY2hhLmxhdWVAbGllYmhlcnIuY29tPgoKY29tbWl0IDNlNDYxNWFiN2ZmMzg3ODFhNWRkODBkMGY0OWI5YWY1NWI0ZmUwYjcKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8U2FzY2hhLkxhdWVAZ214LmJpej4KRGF0ZToJVHVlIEFwciAxIDE1OjEzOjAzIDIwMDggKzAyMDAKCiAgICBGaXggd2F0Y2hkb2cgUE9TVCBmb3IgbHdtb241CgogICAgSWYgdGhlIGhhcmR3YXJlIHdhdGNoZG9nIGRldGVjdHMgYSB2b2x0YWdlIGVycm9yLCB0aGUgd2F0Y2hkb2cgc2V0cwogICAgR1BJTzYyIHRvIGxvdy4gVGhlIHdhdGNoZG9nIFBPU1QgaGFzIHRvIGRldGVjdCB0aGlzIGxvdyBsZXZlbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8bGVnbGFzMEBsZWdwYzE4MC5sZWcubGllYmhlcnIuaT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGQ1NzQ4YmNkNjY5ZjQ2YWViNjY4NmMxYjM0MTMyMzg0MzczOGNjYwpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgpEYXRlOglNb24gQXByIDI4IDE0OjM3OjE0IDIwMDggKzAyMDAKCiAgICBydGw4MTY5OiBmaXggY29tcGlsZXIgd2FybmluZ3MKCiAgICBGaXggbXVsdGlwbGUgY29tcGlsZXIgd2FybmluZ3MgcmVsYXRlZCB0byBhcmd1bWVudCB0eXBlIG1pc21hdGNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IDQxM2JmNTg2MjY2Zjg2YzZiZGJjNmM2ZDE0MGY2N2ExNWFmNGM0ZjEKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxNDozNjowNiAyMDA4ICswMjAwCgogICAgSURFOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCiAgICBUaGUgSURFIGRyaXZlciBjYW4gdXNlIDMyLWJpdCBhZGRyZXNzZXMgaW4gTEJBIG1vZGUsIGluIHdoaWNoIGNhc2UgaXQKICAgIHNwaXRzIG11bHRpcGxlIHdhcm5pbmdzIGR1cmluZyBjb21waWxhdGlvbi4gRml4IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+Cgpjb21taXQgZGI5MDg0ZGUyOGM0NmFjODFjOGY2ODE3MjJjYjBkNzQxMWJlNGQ3ZgpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgpEYXRlOglNb24gQXByIDI4IDE0OjM1OjU3IDIwMDggKzAyMDAKCiAgICBMaW5rU3RhdGlvbjogZml4IGNvbXBpbGVyIHdhcm5pbmcsIGFkZCBhIG1haW50YWluZXIKCiAgICBvdXRfOCB3YW50cyBhIHBvaW50ZXIgdG8gYW4gdW5zaWduZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LiBBZGQgYQogICAgbWFpbnRhaW5lciBmb3IgTGlua3N0YXRpb24gYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IGM3MWFiYmEzY2I2N2IwNjNmNzg5ZjE3YWJmNmM3NDQ3NzI3YzBjZDUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDE0OjU1OjEyIDIwMDggKzAyMDAKCiAgICBjbWRfbmFuZC5jOiBmaXggImRpZmZlciBpbiBzaWduZWRuZXNzIiBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmMmMyODhhMzUzNDFhZDAyYWMwM2IxNTYzZDc4Njc2M2M5YzhmMTU5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxMjo0ODo0NyAyMDA4ICswMjAwCgogICAgcGNuZXQuYzogZml4IGEgbWVyZ2UgaXNzdWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRjYTc5ZjQ3N2ViZDI1YTY4NzJlNjE5NmQ4MGUyZjVlZmY0NDEzNzYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDEyOjA4OjE4IDIwMDggKzAyMDAKCiAgICBOQU5EOiBmaXggc29tZSBzdHJpY3QtYWxpYXNpbmcgY29tcGlsZXIgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVjZDAxMzBlY2M3OWQ2ZGNkZTFiMWFjMjUzYWJjNDU3Y2E4YzMxMTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjggMTE6Mzc6MTQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGUgd2FybmluZyBvZiBoY3U0IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzNzljZDE1ZGQ2Yzc0YWM1MTQ5OWJjZTM0NTViZjZlMGNkYmU5ZjEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDExOjMxOjIzIDIwMDggKzAyMDAKCiAgICBNUEM4MzIzRVJEQjogZml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdtYWNfcmVhZF9mcm9tX2VlcHJvbScKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc2MDJlZDUwYTJmMGVmM2RjOGQ3ZGE5M2YxMTZkZTUwMjg4ZjViNTkKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjggMDA6MjU6MzIgMjAwOCArMDIwMAoKICAgIG14MzFhZHM6IGZpeCBsb2FkYWRkciBlbnZpcm9ubWVudCB2YXJpYWJsZSBkZWZpbmUKCiAgICBBcml0aG1ldGljIGV4cHJlc3Npb25zIGRvIG5vdCBnZXQgZXZhbHVhdGVkIHVuZGVyIHN0cmluZ2lmaWNhdGlvbi4gUmVtb3ZlCiAgICBkZWZhdWx0IG5ldHdvcmsgY29uZmlndXJhdGlvbiwgYWRkIERIQ1AgY29tbWFuZCBzdXBwb3J0LiBUaGFua3MgdG8gRmVsaXgKICAgIFJhZGVuc2t5IGZvciByZXBvcnRpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDE0NGVlYzc3N2FjMDdiY2IxMmJkMzgyNDVhNWEyODlmNjk0YTdmOTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDEwOjU1OjI0IDIwMDggKzAyMDAKCiAgICBrYXRtYWk6IGZpeCBzZWN0aW9uIG92ZXJsYXAgcHJvYmxlbQoKICAgIFNpbmNlIHdlIGRpZG4ndCB3YW50IHRvIHJlbW92ZSBmZWF0dXJlcyBmcm9tIHRoZSBjb25maWd1cmF0aW9uLCB3ZQogICAgZGVjaWRlZCB0byBpbmNyZWFzZSB0aGUgVS1Cb290IGltYWdlIHNpemUgKGFkZCBvbmUgZmxhc2ggc2VjdG9yKS4KCiAgICBBbHNvIGNoYW5nZWQgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgZGVmaW5pdGlvbiB0byBtYWtlIGl0CiAgICBpbmRlcGVuZGVudCBvZiBzdWNoIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTQxZDY5NmQyNTYyNGUzY2M2NWViZjkyNDE5OTU0MWFjZjUyZDc0ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjggMTA6NTU6MjQgMjAwOCArMDIwMAoKICAgIGthdG1haTogZml4IHNlY3Rpb24gb3ZlcmxhcCBwcm9ibGVtCgogICAgU2luY2Ugd2UgZGlkbid0IHdhbnQgdG8gcmVtb3ZlIGZlYXR1cmVzIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24sIHdlCiAgICBkZWNpZGVkIHRvIGluY3JlYXNlIHRoZSBVLUJvb3QgaW1hZ2Ugc2l6ZSAoYWRkIG9uZSBmbGFzaCBzZWN0b3IpLgoKICAgIEFsc28gY2hhbmdlZCB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudCBkZWZpbml0aW9uIHRvIG1ha2UgaXQKICAgIGluZGVwZW5kZW50IG9mIHN1Y2ggY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwM2M2Y2QzOWY5MTg0MTQzZmQ4YzUzNzg3MmIzZDRiMmUwM2YxNDY2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJU2F0IEFwciAyNiAxMTo0NDo0NCAyMDA4IC0wNTAwCgogICAgcG9zdDogRml4IGJ1aWxkaW5nIHdpdGggTz0KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGZkNzUzMWMxZTlkNTZiOWU1ZTA2ZDJjMGUwMmI3OThkYWI3MmY3MGMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDI2IDAxOjU1OjAwIDIwMDggKzAyMDAKCiAgICBQcmVwYXJlIHYxLjMuMy1yYzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE5Y2YyZWM5MGQ4Y2U1MmRhNjBjMTY5MzY5M2M0MDQ4Y2I4MTA5NjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDI2IDAxOjI1OjM5IDIwMDggKzAyMDAKCiAgICBwb3N0L01ha2VmaWxlOiBtYWtlIHN1cmUgdG8gdXNlIHRoZSBjb3JyZWN0IGZsYWdzCgogICAgQVJGTEFHUyB3YXMgbm90IHNldCwgd2hpY2ggY2F1c2VkICJwcGNfOHh4LWFyOiBjcmVhdGluZyBsaWJnZW5wb3N0LmEiCiAgICBtZXNzYWdlcyB0byBiZSBwcmludGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgN2VkNDAxMTczM2U3ZGNhOGY2NGQyMTI5MWU0Mjk0NjYyZjdkYzNlMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBBcHIgMjYgMDA6MzQ6NDIgMjAwOCArMDIwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmOTIwNGUxNTE3MzgzNGZmOGQxMjNlMzYyNzljZTQ5YzNjNmM3NGZjCkF1dGhvcjogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDIwIDEwOjM4OjEyIDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IEVuYWJsZSBTUEkgYW5kIE1DMTM3ODMvUlRDIHN1cHBvcnQgZm9yIHRoZSBMaXRla2l0IGJvYXJkCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIFNQSSBhbmQgTUMxMzc4My9SVEMgc3VwcG9ydCBmb3IgdGhlIExpdGVraXQgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgoKY29tbWl0IGY5N2FiYmZiNDdkOWU0MDczNTRlMTU3Y2FlM2Y2MzY5ZTQ2MGNkMzcKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDI1IDAxOjA4OjMyIDIwMDggLTA1MDAKCiAgICBNUEM4NTQ0RFM6IGRlY29kZSBwY2llMyBlbmQtcG9pbnQgY29uZmlndXJhdGlvbiBjb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjkyMTg4ZTE1NTIzYzE2NWM0MjY5NDAzZmRjZDMzYzI2ZDg5MTc2ZQpBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyNSAwMDo1NTowOSAyMDA4IC0wNTAwCgogICAgTVBDODU0NERTOiBSZW1vdmVzIHRoZSB1bmtub3duIGZsYXNoIG1lc3NhZ2UgaW5mb3JtYXRpb24KCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIHVua25vd24gZmxhc2ggbWVzc2FnZSBpbmZvcm1hdGlvbjoKICAgICcjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMSAtIFNpemUgPSAweGRlYWRiZWVmID0gLTI4NjI2MTI0OCBNQicKICAgIFRoaXMgdW5rbm93biBmbGFzaCBtZXNzYWdlIGlzIGNhdXNlZCBieSBQcm9tSmV0LgogICAgU29tZSBvZiB0aGUgYm9hcmQgdXNlciBpcyB1bmhhcHB5IHdpdGggdGhpcyBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGIyMTE1NzU3NDAzYmVlZjBhYzZiYzJjNmMzYjI0ZjMxMjU2YTc1ZDIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXByIDI0IDE0OjA3OjM4IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBidW1wIGxvYWRhZGRyIG92ZXIgZmR0YWRkciB0byAweDUwMDAwMAoKICAgIHRoaXMgc2VlbXMgYXMgYSBnb29kIGNvbXByb21pc2UgYmV0d2VlbiBodW1hbiBtZW1vcnksIHR5cGluZywKICAgIGFuZCBsYXN0IGJ1dCBub3QgbGVhc3QsIHRvIGFjY29tbW9kYXRlIGZvciBjdXJyZW50IGFuZCBmdXR1cmUga2VybmVsIGJsb2F0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZTVhNzE5MDI2NWEzNGQ5Njg1NzhmZjI2NjU0OWM2MGY2ZjU3NjU0CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXByIDE1IDEzOjEyOjIzIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBjbGVhbiB1cCB0aGUgcmVhZG1lIGZvciA4M3h4IGJvYXJkcwoKICAgIDEuIGNvcnJlY3QgdGhlIHR5cG8KICAgIDIuIGNvcnJlY3QgdGhlIG1lbW9yeSBtYXAgZm9yIDgzN3hlcmRiIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiY2FlNTJhNjgxOWVlOWRhZDVkMGQ5NmNkN2RhZWIyMDEwOGQ0NWZmCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXByIDE1IDEzOjExOjExIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiByZW1vdmUgdGhlIHVudXNlZCBDUE0ncyBzdHVmZgoKICAgIFRoZSBNUEM4M3h4IGZhbWlseSBuZXZlciBoYXZlIENQTSBibG9jaywgc28gcmVtb3ZlIGl0IGZyb20gODN4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2M2FkNjMyNWE4YWMwMDk3YTU0YjQxOGEzMjg4OTI2YjA0ODRiMTgKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEFwciAxOCAxNjoyOTo0MCAyMDA4ICswMjAwCgogICAgY2ZpLWZsYXNoOiBBZGQgQ0ZHX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1QKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBjb25maWd1cmFibGUgZmxhc2ggYXV0byBwcm90ZWN0aW9uIGxpc3QgdGhhdCBjYW4gYmUgdXNlZAogICAgdG8gbWFrZSBVLUJvb3QgcHJvdGVjdCBmbGFzaCByZWdpb25zIGluIGZsYXNoX2luaXQoKS4KCiAgICBUaGUgaWRlYSBoYXMgYmVlbiBkaXNjdXNzZWQgb24gdGhlIHUtYm9vdCBtYWlsaW5nIGxpc3Qgc3RhcnRpbmcKICAgIG9uIE5vdiAxOHRoLCAyMDA3LgoKICAgIEV2ZW4gdGhpcyBwYXRjaCBicmluZ3MgYSBuZXcgZmVhdHVyZSBpdCBpcyB1c2VkIGFzIGEgYnVnZml4IGZvciA0eHgKICAgIHBsYXRmb3JtcyB3aGVyZSBmbGFzaF9pbml0KCkgZG9lcyBub3QgY29tcGxldGVseSBwcm90ZWN0IHRoZQogICAgbW9uaXRvcidzIGZsYXNoIHJhbmdlIGluIGFsbCBzaXR1YXRpb25zLgoKICAgIFUtQm9vdCBwcm90ZWN0cyB0aGUgZmxhc2ggcmFuZ2UgZnJvbSBDRkdfTU9OSVRPUl9CQVNFIHRvCiAgICAoQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuICAtIDEpIGJ5IGRlZmF1bHQuIFRoaXMgZG9lcyBub3QKICAgIGluY2x1ZGUgdGhlIHJlc2V0IHZlY3RvciBhdCAweGZmZmZmZmZjLgoKICAgIEV4YW1wbGU6CiAgICAjZGVmaW5lIENGR19GTEFTSF9BVVRPUFJPVEVDVF9MSVNUIHt7MHhmZmY4MDAwMCwgMHg4MDAwMH19CgogICAgVGhpcyBjb25maWcgb3B0aW9uIHdpbGwgYXV0byBwcm90ZWN0IHRoZSBsYXN0IDUxMmsgb2YgZmxhc2ggdGhhdAogICAgY29udGFpbnMgdGhlIGJvb3Rsb2FkZXIgb24gYm9hcmQgbGlrZSBBUEM0MDUgYW5kIFBNQzQwNS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkMGQ5MWFlM2FjYjRmMjlkMWEyYTNhNzY2NzQ3NDc4ZWQ1NGUyODQ4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXByIDI1IDEzOjU5OjAzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBkb3VibGUgZGVmaW5lcyBpbiBsd21vbjUuaAoKICAgIGludHJvZHVjZWQgd2l0aCBsYXRlc3QgbHdtb241L1BPU1QgbWVyZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzU5MDM3OGZiOWM2ODY3MDk0OTJjZWIxNDI4MjVjZDA1ODI1NTk1NgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBcHIgMjUgMTM6NTQ6MDIgMjAwOCArMDIwMAoKICAgIFVzZSB3YXRjaGRvZy1hd2FyZSBmdW5jdGlvbnMgd2hlbiBjYWxjdWxhdGluZyBoYXNoZXMgb2YgaW1hZ2VzIC0gdGFrZSB0d28KCiAgICBTb21lIGZpbGVzIGRpZG4ndCBnZXQgdXBkYXRlZCBwcm9wZXJseSB3aXRoIHRoZSAiVXNlIHdhdGNoZG9nLWF3YXJlCiAgICBmdW5jdGlvbnMgd2hlbiBjYWxjdWxhdGluZyBoYXNoZXMgb2YgaW1hZ2VzIiBjb21taXQsIHRoaXMgY29tbWl0CiAgICBmaXhlcyB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhlMDQ4YzQzOGUyMGVjODliNDlkYTVmMDg1ZjhmNzU2ZWJhNmU1ODcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEFwciAyNSAxMjowMTozOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgYm9vdGNvdW50IGxpbWl0IGhhbmRsaW5nIGZvciBBUEM0MDUgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMWRlNmIyOGJlNWQxMDdhZTkwYWQ3YThhNDM2NTNjNDk5NjZlOGFmZQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBcHIgMjUgMTI6MTA6MDkgMjAwOCArMDIwMAoKICAgIFVzZSB3YXRjaGRvZy1hd2FyZSBmdW5jdGlvbnMgd2hlbiBjYWxjdWxhdGluZyBoYXNoZXMgb2YgaW1hZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkMDBjZTA5MDQwZDMxMDBlMmM3OTk4ZWY1NmRiNjJjMmQyMGQ5ZWUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAyNSAxMjo0NDowOCAyMDA4ICswMjAwCgogICAgVVNCOiBmaXggbW9yZSBHQ0MgNC4yLnggYWxpYXNpbmcgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgQWNrZWQtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgYWZmNGY4NjQ0OGY2NTg2OTMwZjBhM2JlN2ZjNGIwZGRjZjQ1MDk4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjUgMTI6NDE6NTMgMjAwOCArMDIwMAoKICAgIGxpYl9nZW5lcmljL2NyYzMyLmM6IGFkZCBtaXNzaW5nICNpbmNsdWRlIDx3YXRjaGRvZy5oPgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDNjY2RiY2Q1NjAyNjEwY2VhNGJkMGRiN2U0OGUxZWY4ODFhNTFlZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjUgMTE6NTI6MjEgMjAwOCArMDIwMAoKICAgIGxpYl9nZW5lcmljL2NyYzMyLmM6IGZpeCBjb21waWxlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDI0YmZlZGJkMGJlNGRjYWE5NDg2MTQwNzgyMGQ2YTcwZmVhN2UwM2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjIgMTI6MjA6MzIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUGFzcyBQQ0llIHJvb3QtY29tcGxleC9lbmRwb2ludCBjb25maWd1cmF0aW9uIHRvIExpbnV4IHZpYSB0aGUgZmR0CgogICAgVGhlIFBDSWUgcm9vdC1jb21wbGV4L2VuZHBvaW50IHNldHVwIGFzIGNvbmZpZ3VyZWQgdmlhIHRoZSAicGNpZV9tb2RlIgogICAgZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbCBub3cgZ2V0IHBhc3NlZCB0byB0aGUgTGludXgga2VybmVsIGJ5IHNldHRpbmcKICAgIHRoZSBkZXZpY2VfdHlwZSBwcm9wZXJ0eSBvZiB0aGUgUENJZSBkZXZpY2UgdHJlZSBub2RlLiBGb3Igbm9ybWFsIHJvb3QtCiAgICBjb21wbGV4IGNvbmZpZ3VyYXRpb24gaXQgd2lsbCBrZWVwIGl0cyBkZWZhdWx0cyB2YWx1ZSBvZiAicGNpIiBhbmQgZm9yCiAgICBlbmRwb2ludCBjb25maWd1cmF0aW9uIGl0IHdpbGwgZ2V0IGNoYW5nZWQgdG8gInBjaS1lbmRwb2ludCIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViMDYxNWJmNjAwZDJjYWY1YWEyOTU4ZjQ3ZjViYTM2NGM1MmQ1ZTcKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBBcHIgMjQgMTA6MzA6NTMgMjAwOCArMDIwMAoKICAgIGx3bW9uNTogd2F0Y2hkb2cgUE9TVCBmaXgKCiAgICBVc2UgdGhlIEdQVDBfTUFTS3ggcmVnaXN0ZXJzIGFzIHRoZSB0ZW1wb3Jhcnkgc3RvcmFnZSBmb3Igd2F0Y2gtZG9nCiAgICB0aW1lciBQT1NUIHRlc3QgaW5zdGVhZCBvZiBHUFQwX0NPTVB4LiBUaGUgbGF0dGVyCiAgICAoR1BUMF9DT01QMS4uR1BUMF9DT01QNSkgYXJlIHVzZWQgZm9yIHRoZSBsb2ctYnVmZmVyIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDc4ZTQ4ODI5ODgyNGJjMTUwYjVmM2ViZjc5NThjZDcxZmEyYWYxYjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIxIDE4OjEwOjE0IDIwMDggLTA1MDAKCiAgICBsaWJfcHBjOiBSZXZlcnQgIk1ha2UgTVBDODN4eCBvbmUgc3RlcCBjbG9zZXIgdG8gZnVsbCByZWxvY2F0aW9uLiIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDcwNDMxZThhNzM5M2I2Yjc5M2Y3Nzk1N2Y5NWI5OTlmYzlhMjY5Yjggd2hpY2ggaGFzCiAgICBwcm92ZW4gcHJvYmxlbWF0aWMgZ2V0dGluZyByaWdodCBmcm9tIHRoZSBzdGFydCBhdCBsZWFzdCBvbiA4M3h4IGFuZAogICAgNHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTk5NzE1YjhlYmZjNTAwZjNmNDBlMDFiMzZiNjRkNDczOTM4NDQzZApBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgQXByIDE4IDE0OjUwOjAxIDIwMDggKzAyMDAKCiAgICBSZWFsaW5pbmcgc29tZSBoZWFkZXIgZGVmaW5pdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNGFjYmM2YzdmOTkzY2FlNDA5YzQyNDYxNTQxNWEzZTc2ODIwZjEzZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBBcHIgMjQgMDc6NTc6MTYgMjAwOCArMDIwMAoKICAgIE5FMjAwMDogY29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGI0YWZmMWZmYWY3MTIwMDMyYzY1MzM1N2MwMDdmYWExNGY3NGQyOWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXByIDIzIDAwOjExOjQ3IDIwMDggKzA5MDAKCiAgICBxZW11LW1pcHMuaDogQWRkIENGSSBzdXBwb3J0CgogICAgQ09ORklHX0VOVl9PVkVSV1JJVEUgaXMgYWxzbyBhZGRlZC4KCiAgICBUaGlzIHBhdGNoIGlzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA0YTFmMTFiNDVhODI5MDhlNWIwZGY2MDJkNzAzMDgyNDEzYTZiN2VkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIEFwciAyMiAyMjo0NzoyNyAyMDA4ICswOTAwCgogICAgZG9jL1JFQURNRS5taXBzOiBBZGQgTUlQUyBub3RlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMjE1YjAxYmJhOGJjNjYyZDM1ZjcyYjA4NDcwMGIxOTJkMzY3ZGZiNApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBBcHIgMjIgMTI6Mjc6NTYgMjAwOCArMDIwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBjYWxjdWxhdGluZyBoYXNoZXMgd2l0aCB3YXRjaGRvZyB0cmlnZ2VyaW5nCgogICAgSW1wbGVtZW50IHdhdGNob2RnLWF3YXJlIHZhcmlhbnRzIG9mIGhhc2ggY2FsY3VsYXRpb24gZnVuY3Rpb25zOgogICAgLSBjcmMzMl93ZCgpCiAgICAtIG1kNV93ZCgpCiAgICAtIHNoYTFfY3N1bV93ZCgpCiAgICBUaGUgYWJvdmUgZnVuY3Rpb25zIGNhbGN1bGF0ZSB0aGUgaGFzaCBvZiB0aGUgaW5wdXQgYnVmZmVyIGluIGNodW5rcywKICAgIHRyaWdnZXJpbmcgdGhlIHdhdGNoZG9nIGFmdGVyIHByb2Nlc3NpbmcgZWFjaCBjaHVuay4gVGhlIGNodW5rIHNpemUKICAgIGlzIGdpdmVuIGFzIGEgZnVuY3Rpb24gY2FsbCBwYXJhbWV0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4ODc1ZTNhYmFiOTg2ZGY5MzAxNjdjZTVjMWFjNGY5NWRjYWNjODFjCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglXZWQgQXByIDIzIDExOjAyOjEyIDIwMDggKzA5MDAKCiAgICBxZW11LW1pcHM6IENsZWFudXAgd2hpdGVzcGFjZSwgaW5kZW50YXRpb24sIGV0Yy4KCiAgICBObyBmdW5jdGlvbmFsIGNoYW5nZS4KCiAgICBUaGlzIHBhdGNoIHdhcyBvcmlnaW5hbGx5IHN1Ym1pdHRlZCBieSBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRC4KICAgIFRoZW4gSSByZS1jcmVhdGVkIGZyb20gc2NyYXRjaCwgYW5kIGNoYW5nZWQgbW9yZSBsaW5lcyB0aGFuIHRoZSBvcmlnaW5hbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAzODY1NjMxOTdlM2E1MGIwZTk3YWQ5YWFlODdmNTdkOWFhYjkwOWFiCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVdlZCBPY3QgMTAgMjM6MDI6MDkgMjAwNyArMDMwMAoKICAgIEZpeGVkIHBjbmV0IGlvX2Jhc2UKCiAgICBCdXMgYW5kIHBoeXMgYWRkcmVzcyBhcmUgbm90IGFsd2F5cyB0aGUgc2FtZQoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IDExZWEyNmZkMWNiNjNjOTE0MDNmZTA0YTZlZWE5NzVjZDQxODYwM2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXByIDI0IDIzOjQ0OjI2IDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL25ldC9wY25ldC5jOiBDb2RpbmcgU3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg5OWVmN2I4NDU3OGI3Y2FmYWRmZDc4NDg4YzJmZDJhYWM5M2Y2MzYKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJV2VkIE9jdCAxMCAyMzowNDoyMyAyMDA3ICswMzAwCgogICAgQWRkZWQgQW03OUM5NzBBIGNoaXAgaWQgdG8gcGNuZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCAxN2M5ZGU2YmIzM2Y2NzZlYjc3NmRjYmZjNDZmYzFiMTRjMzg3MWE1CkF1dGhvcjogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDIwIDEwOjM1OjAzIDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IEZpeCBhcmNoaXRlY3R1cmUgbnVtYmVycyBmb3IgQURTIGFuZCBMaXRla2l0IGJvYXJkcwoKICAgIENvcnJlY3QgdGhlIExpbnV4IGFyY2hpdGVjdHVyZSBudW1iZXIgZm9yIGkuTVgzMSBMaXRla2l0IGFuZCBBRFMgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCBlN2FlODRkNmM3Mjg4NzkwZTg4NjM5ZjU3Y2I2MGRhZjg5YzExMzY5CkF1dGhvcjogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDIwIDEwOjM2OjM2IDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IFVzZSBzeW1ib2xpYyBuYW1lcyBmb3IgTGl0ZWtpdCBtZW1iYXNlcy4KCiAgICBVc2Ugc3ltYm9saWMgbmFtZXMgaW5zdGVhZCBvZiBoYXJkIGNvZGVkIGFkZHJlc3NlcyBmb3IgTGl0ZWtpdCBtZW1iYXNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+Cgpjb21taXQgMmVmMWQ5YjYwMzBkMDJmNTc2YjFiY2Q5ZmVjOTQ4ZTYwMjUyMjAxMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBcHIgMTkgMTc6NTk6MjAgMjAwOCArMDIwMAoKICAgIEZpeCBzaG93X2Jvb3RfcHJvZ3Jlc3MgcHJvdG90eXBlCgogICAgaW4gY29tbWl0IGZhZDYzNDA3MSAibWFrZSBzaG93X2Jvb3RfcHJvZ3Jlc3MgKCkgd2Vhay4iCiAgICBzaG93X2Jvb3RfcHJvZ3Jlc3MgaXMgc3VwcG9zZWQgdG8gYmUgZGVjbGFyZWQgYXMgd2VhayBidXQgZGVjbGFyZWQgYXMKICAgIGlubGluZSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZWRiZWQyNDdhMTRkNzBiOTQ5NTgwMTBmNzM2NjIxMjEyMjg1ZGU5MQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBcHIgMTggMTI6Mzk6MjMgMjAwOCArMDIwMAoKICAgIE1lbW9yeSBmb290cHJpbnQgb3B0aW1pemF0aW9ucwoKICAgIEFzIHN1Z2dlc3RlZCBieSBXb2xmZ2FuZyBEZW5rOgogICAgLSBpbWFnZSBwcmludGluZyBmdW5jdGlvbnM6CiAgICAgIC0gcmVtb3ZlIHdyYXBwZXJzCiAgICAgIC0gcmVtb3ZlIGluZGVudGF0aW9uIHByZWZpeCBmcm9tIGZ1bmN0aW9ucycgc2lnbmF0dXJlcwogICAgLSBtZXJnZSBnZXRlbnZfdmVyaWZ5IGFuZCBnZXRlbnZfYXV0b3N0YXJ0IGludG8gb25lIHBhcmFtZXRyaXplZCBmdW5jdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMGEwYjYwNmZhYWVjNGFmYjNmNzUwYjA5YWE0ZGYxZTQwYTM5ZGNiOApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAxNSAxMzozMzoxMSAyMDA4ICswMjAwCgogICAgTVgzMUFEUyBlbnZpcm9ubWVudCB2YXJpYWJsZSB1cGRhdGUsIHNwaSBhbmQgcnRjIHN1cHBvcnQKCiAgICBVcGRhdGUgTVgzMUFEUyBkZWZhdWx0IGVudmlyb25tZW50IHRvIGJldHRlciBtYXRjaCB0aGUgZmxhc2ggbGF5b3V0IGFuZAogICAgdGhlIG1lbW9yeSBtYXAsIHN1cHBvcnQgU1BJIGFuZCBSVEMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDAyMmYxMjE2MzU5NWI5YTU1MzgwYzZkNzdjMzExOWI5M2Q2YTlhNGIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gQXByIDIxIDA5OjI4OjM2IDIwMDggLTA1MDAKCiAgICA4NXh4OiBSb3VuZCB1cCBmcmVxdWVuY3kgY2FsY3VsYXRpb25zIHRvIGdldCByZWFzb25hYmxlIG91dHB1dAoKICAgIGVnLiBiZWNhdXNlIG9mIHJvdW5kaW5nIGVycm9yIHdlIGNhbiBnZXQgNzk5TWh6IGluc3RlYWQgb2YgODAwTWh6LgoKICAgIEludHJvZHVjZWQgRElWX1JPVU5EX1VQIGFuZCByb3VuZHVwIHRha2VuIGZyb20gbGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IERlamFuIE1pbmljIDxtaW5pY0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3Jpa2FudGggU3Jpbml2YXNhbiA8c3Jpa2FudGguc3Jpbml2YXNhbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODc2YjhmOTc4OTgyMjE2YWI0YTIyZGNkOWVmZGRmY2Q5YjBlMDRlNgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBBcHIgMjMgMTY6NTg6MDQgMjAwOCAtMDUwMAoKICAgIGZzbF9wY2k6IE9ubHkgbW9kaWZ5IHJlZ2lzdGVycyBpZiB3ZSBoYXZlIHRoZW0KCiAgICBwbWVfbXNnX2RldCBleGlzdHMgb25seSBvbiBQQ0llIGNvbnRyb2xsZXJzIG9ubHkgc2V0IGl0IGlmIHdlIGFyZSBhICJicmlkZ2UiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODNmZTMyMzM0MzM3ZGVmMTYwYjMwMmFhOWQxNTJkODA4YmZjYzY4ZQpBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMjMgMTA6NTc6MzMgMjAwOCArMDIwMAoKICAgIFVTQjogcmVtb3ZlIGEgY3B1IGJ1ZyB3b3JrYXJvdW5kIGZvciBhbiB1bnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBmOTU3NTc2Y2I1M2U2Y2ZhYjQxMjcwOWNmYzhkYjFhZmQzOWQyMWMzCkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAyMyAxMDo1MzoyMyAyMDA4ICswMjAwCgogICAgVVNCOiBmaXggdGhvc2UgcGVza3kgYWxpYXNpbmcgd2FybmluZ3MgaXNzdWVkIGJ5IGdjYy00LjIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgODljZGFiNzg4ZjM3MTZiMzM1ZmVmYjYwYjgzNmViY2Y5NzVhY2VhYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE1hciAzMSAxMTowMjowMSAyMDA4IC0wNDAwCgogICAgY3JjMzI6IHVzZSB1aW50MzJfdCByYXRoZXIgdGhhbiB1bnNpZ25lZCBsb25nCgogICAgVGhlIGVudmNyYy5jIGRvZXMgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGNyYywgYnV0CiAgICB0aGlzIGlzIGRvbmUgd2l0aCB0aGUgYnVpbGQgdG9vbGNoYWluIGluc3RlYWQgb2YgdGhlIHRhcmdldCB0b29sCiAgICBjaGFpbiwgc28gaWYgdGhlIGJ1aWxkIGlzIGEgNjRiaXQgc3lzdGVtIGJ1dCB0aGUgdGFyZ2V0IGlzIDMyYml0cywKICAgIHRoZSBzaXplIHdpbGwgb2J2aW91c2x5IGJlIHdyb25nLiBUaGlzIGNvbnZlcnRzIGFsbCB1bnNpZ25lZCBsb25nCiAgICBzdHVmZiByZWxhdGVkIHRvIGNyYzMyIHRvIHVpbnQzMl90IHR5cGVzLiBDb21waWxlIHRlc3RlZCBvbmx5OiBvdXRwdXQKICAgIG9mIC4vdG9vbHMvZW52Y3JjIHdoZW4gcnVuIG9uIGEgMzJiaXQgYnVpbGQgc3lzdGVtIG1hdGNoZXMgdGhhdCBvZiBhCiAgICA2NGJpdCBidWlsZCBzeXN0ZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODBjNDBiNzY1YjM2NDJkZGI5ZjMzOTJiNzg5ODcxNWFhYjQ0YTI5YwpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMDk6NTM6MjkgMjAwOCArMDEwMAoKICAgIEFSTTogRGF2aW5jaTogRml4IERNNjQ0eCB0aW1lciBvdmVyZmxvdyBoYW5kbGluZyBhbmQgY2xlYW51cAoKICAgIEZpeCBBUk0gYmFzZWQgRGFWaW5jaSBETTY0NHggdGltZXIgb3ZlcmZsb3cgaGFuZGxpbmcgYW5kIGNsZWFudXAgdGltZXIgY29kZS4KCiAgICBDaGFuZ2VzOgoKICAgIC0gUmVtb3ZlICpfbWFza2VkKCkgZnVuY3Rpb25zIGFzIG5vdGVkIGJ5IFdvbGZnYW5nCgogICAgLSBBZGFwdCByZWdpc3RlciBuYW1pbmcgdG8gcmVjZW50IFRJIHNwZWMgKHNwcnVlMjYsIE1hcmNoIDIwMDcpCgogICAgLSBGaXggcmVzZXRfdGltZXIoKSBoYW5kbGluZwoKICAgIC0gQXMgcmVwb3J0ZWQgYnkgUGlldGVyIFsxXSB0aGUgb3ZlcmZsb3cgZml4IGludHJvZHVjZWQgYSBkZWxheSBvZiBmYWN0b3IgMTYgKGUuZyAyIHNlY29uZHMgYmVjYW1lIDMyKS4gV2hpbGUgdGhlIG92ZXJmbG93IGZpeCBpcyBiYXNpY2FsbHkgb2theSwgaXQgbWlzc2VkIHRvIGRpdmlkZSB1ZGVsYXkgYnkgMTYsIHRvby4gRml4IHRoaXMuCgogICAgWzFdIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLmJvb3QtbG9hZGVycy51LWJvb3QvMzgxNzkKCiAgICAtIFJlbW92ZSBzb2Z0d2FyZSBkaXZpc2lvbiBvZiB0aW1lciBjb3VudCB2YWx1ZSAoRElWKHgpIG1hY3JvKSBhbmQgZG8gaXQgaW4gaGFyZHdhcmUgKFRJTV9DTEtfRElWKS4KCiAgICBNYW55IHRoYW5rcyB0byBUcm95IEtpc2t5IDx0cm95Lmtpc2t5QGJvdW5kYXJ5ZGV2aWNlcy5jb20+IGFuZCBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sPiBmb3IgdGhlIGhpbnRzICYgdGVzdGluZyEKCiAgICBQYXRjaCBpcyBjb21waWxlIHRlc3RlZCB3aXRoIGRhdmluY2lfZHZldm0gJiBzb25hdGEgJiBzY2htb29naWUgY29uZmlndXJhdGlvbiBhbmQgdGVzdGVkIGJ5IFBpZXRlciBvbiBEYVZpbmNpIEVWTSBoYXJkd2FyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KICAgIEFja2VkLWJ5OiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sPgoKY29tbWl0IGE2ZTZmYzYxMGUzOWRlYzQxYjc5NjgwNDEzZDRlZDM4MTQ1YmQzYzgKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglXZWQgQXByIDkgMTY6MDk6NDEgMjAwOCArMDIwMAoKICAgIEFkZGVkIHdhdGNoZG9nIHRyaWdnZXJpbmcgY2FsbHMgaW4gdGhlICJtdGVzdCIgdGVzdCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGQzMmE4NzRiOWI0YzFlOTQ5ZWUzOGJlNzc5MGY2YmY2ZDYxNDM0NTEKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVN1biBBcHIgNiAxOToxOToxNCAyMDA4ICswMjAwCgogICAgbHdtb241IHdhdGNoZG9nOiBsaW1pdCB0cmlnZ2VyIHJhdGUKCiAgICBMaW1pdCB0aGUgcmF0ZSBvZiBoL3cgd2F0Y2gtZG9nIHRyaWdnZXJpbmcgb24gdGhlIExXTU9ONSBib2FyZCBieQogICAgdGhlIENPTkZJR19XRF9NQVhfUkFURSB2YWx1ZS4KCiAgICBOb3RlIHRoYXQgYW4gZWFybGllciB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2ggd2hpY2ggdXNlZCBtaWNyb3NlY29uZHMKICAgIGluc3RlYWQgb2YgdGlja3MgZGlzIG5vdCB3b3JrLiBUaGUgcHJvYmxlbSB3YXMgdGhhdCB3ZSB1c2VkCiAgICB1c2VjMnRpY2tzKCkgdG8gY29udmVydCBtaWNyb3NlY29uZHMgaW50byB0aWNrcy4gdXNlYzJ0aWNrcygpIHVzZXMKICAgIGdldF90YmNsaygpLCB3aGljaCBpbiB0dXJuIGNhbGxzIGdldF9zeXNfaW5mbygpLiBJdCB0dXJucyBvdXQgdGhhdAogICAgdGhpcyBmdW5jdGlvbiBkb2VzIGEgbG90IG9mIHByb2xvbmdlZCBvcGVyYXRpb25zIChsaWtlIGRpdmlzaW9ucykKICAgIHdoaWNoIHRha2UgdG9vIG11Y2ggdGltZSBzbyB3ZSBkbyBub3QgdHJpZ2dlciB0aGUgd2F0Y2hkb2cgaW4gdGltZSwKICAgIGFuZCBpdCByZXNldHMgdGhlIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgMmQyYjk5NGEzMGJiMTAwNzc0ZGM3NDdhZTk4NjViN2Y5NTI4NWE4OApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIE1hciAzMSAxMDo1MTozNyAyMDA4ICswMjAwCgogICAgUE9TVDogbW92ZSBDT05GSUdfUE9TVCB0byBNYWtlZmlsZXMKCiAgICBJbnRyb2R1Y2UgdGhlIG5ldyBsb2dpY2FsIG9wdGlvbiBDT05GSUdfSEFTX1BPU1Qgd2hpY2ggaXMgc2V0IHdoZW4gdGhlCiAgICBwbGF0Zm9ybSBoYXMgQ09ORklHX1BPU1Qgc2V0LiBVc2UgQ09ORklHX0hBU19QT1NUIGluIHRoZSBwb3N0LyBNYWtlZmlsZXMKICAgIHRvIGRldGVybWluZSBzaG91bGQgdGhlIFBPU1QgbGlicyBiZSBjb21waWxlZCBmb3IgdGhlIHNlbGVjdGVkIHRhcmdldAogICAgcGxhdGZvcm0sIG9yIG5vdC4KCiAgICBUbyBhdm9pZCBicmVha2luZyB1LWJvb3QgbGlua2luZyBwcm9jZXNzLCB0aGUgZW1wdHkgcG9zdC9saWJwb3N0LmEgZmlsZSBpcwogICAgY3JlYXRlZCBmb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBoYXZlIFBPU1RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGE1MWU5MjQ4ZTJkMjdlMGEwMmVmMWU3NDBjNTc2Y2U5MGEzOWVlMQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIE1hciAzMSAxMDo0OTozNCAyMDA4ICswMjAwCgogICAgUE9TVDogcHJlcGFyYXRpb25zIGZvciBtb3ZpbmcgQ09ORklHX1BPU1QgdG8gTWFrZWZpbGVzCgogICAgUmVtb3ZlIENPTkZJR19QT1NUIGlmZGVmcyBmcm9tIHRoZSBwb3N0LyBzb3VyY2UgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1ZDQwZDQ0MzBkOWViYzg0MzRjNmYwNzk4NTk0ODM2ZTFlZmE3YTFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDIyIDE0OjE0OjIwIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBDYW55b25sYW5kcyBhbmQgR2xhY2llciBkZWZhdWx0IGVudmlyb25tZW50IGZvciBmZHQgdXNhZ2UKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBDYW55b25sYW5kcyBhbmQgR2xhY2llciBkZWZhdWx0IGVudmlyb25tZW50IHRvIGJldHRlcgogICAgZml0IHRvIHRoZSBhcmNoL3Bvd2VycGMgZGV2aWNlLXRyZWUga2VybmVscy4gVGhlIHZhcmlhYmxlcyBkZWFsaW5nIHdpdGgKICAgIGFyY2gvcHBjIGJvb3RpbmcgYXJlIHJlbW92ZWQsIHNpbmNlIHRoZXNlIGJvYXJkcyBhcmUgc3VwcG9ydGVkIG9ubHkgaW4KICAgIGFyY2gvcG93ZXJwYy4gR2xhY2llciB1c2VzIHRoZSBzYW1lIGNvbmZpZyBmaWxlIGFzIENhbnlvbmxhbmRzLgoKICAgIEFsc28sIHRoZSBHbGFjaWVyIG5vdyB1c2VzIG5vbi1GUFUgcm9vdHBhdGgsIHNpbmNlIDQ2MEdUIGhhcyBubyBGUFUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI3ODljYjRhNGMwYzFkZWZmODIwNTM1MzljZmUyOWE5YzZlMjNmOGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjIgMTQ6MDY6NDIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogU21hbGwgY29kaW5nIHN0eWxlIGNsZWFudXAgZm9yIHRoZSBsYXRlc3QgZXNkIHBhdGNoZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzk5NDFkNjNiYzAzYWVkOGM0OGQ3NjAyZjE4MjE3Y2MyMDBlZTkzMQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDE4OjAxOjA3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBDUFUgc3RyYXBwaW5nIGZvciBQTUM0NDAgYm9hcmRzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSB0ZW1wb3JhcnkgJ3Rlc3QnIHN0cmFwcGluZyBvcHRpb24KICAgIG9mIHRoZSBzYmUgY29tbWFuZC4gVGhlICc2NjcnIHN0cmFwcGluZyBvcHRpb24gbm93IHVzZXMKICAgIGEgUExCL1BDSSBkaXZpZGVyIG9mIDMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZjAwY2YzMTkzYTY2MzUzNTViMTIxZTkwZGViYjJmNTRlNzc3ZTdkYQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDE0OjQyOjIxIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSB1bnVzZWQgQVBDNDA1IHN0cmF0YWZsYXNoIGRyaXZlcgoKICAgIFRoZSBBUEM0MDUgYm9hcmQgc3VwcG9ydCBoYXMgYmVlbiBtaWdyYXRlZCB0byB1c2UgdGhlIGNvbW1vbgogICAgQ0ZJIGZsYXNoIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAxYzY4NjY3NmE4NjQ3M2JiZDkyMTUxZjA1NDRlMTA5NDEzZjZlZDA2CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBBcHIgMjEgMTQ6NDI6MTcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFQQzQwNSBjb25maWd1cmF0aW9uCgogICAgLSBlbmFibGUgZXNkJ3MgYXV0b191cGRhdGUgbWVjaGFuaXNtCiAgICAtIHN1cHBvcnQgYWx0ZXJuYXRpdmUgZmxhc2ggbGF5b3V0IG9uIHJldi4gMS44IGJvYXJkcwogICAgLSB1cGRhdGUgZGVmYXVsdCBlbnZpcm9ubWVudAogICAgLSB1c2UgY29tbW9uIENGSSBmbGFzaCBkcml2ZXIKICAgIC0gY29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAwYjk4NzI1MTVhNTIxYmY3ODY2ZGMyNGI4NWRkY2U3MDhlNjBkNzAyCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBBcHIgMjEgMTQ6NDI6MTEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFQQzQwNSBib2FyZCBzdXBwb3J0CgogICAgLSBlbmFibGUgZXNkJ3MgYXV0b191cGRhdGUgbWVjaGFuaXNtCiAgICAtIGZpeCBMQ0Qgc3VwcG9ydCBvbiBsYXRlc3QgaGFyZHdhcmUgcmV2aXNpb24gKHVzZXMgb3RoZXIgTENEIGNvbnRyb2xsZXIpCiAgICAtIHN1cHBvcnQgYWx0ZXJuYXRpdmUgZmxhc2ggbGF5b3V0IG9uIHJldi4gMS44IGJvYXJkcwogICAgLSBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDgzOTc1ZDAyZTIyNWUyMzE5NjA3ODQ5NzJlNzgyMGE4YjMwMzc1NmIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxNDo0MjowNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiB1cGRhdGUgZXNkJ3MgY29tbW9uIGF1dG9fdXBkYXRlIGNvZGUgZm9yIDQwNSBib2FyZHMKCiAgICAtIENvZGluZyBzdHlsZSBjbGVhbnVwIChsb25nIGxpbmVzKQogICAgLSBpbXByb3ZlIGhhbmRsaW5nIG9mIHByb3RlY3RlZCBmbGFzaCByZWdpb25zCiAgICAtIHJlbW92ZSBkZWFkIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBiOTIzM2ZlNWQ1OWNiMjVkOTc1MDcxNjE2YmQxMDM1ZDZmNGMyMjg1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBBcHIgMjEgMTQ6NDE6NTkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGVzZCdzIGNvbW1vbiBMQ0QgY29kZSBmb3IgNDA1IGJvYXJkcwoKICAgIC0gQ29kaW5nIHN0eWxlIGNsZWFudXAgKGxvbmcgbGluZXMpCiAgICAtIEFkZCBzMWQxMzUwNSBzdXBwb3J0CiAgICAtIE1ha2Ugc29tZSBmdW5jdGlvbnMgcmV0dXJuIGEgcmVzdWx0IGNvZGUgaW5zdGVhZCBvZiB2b2lkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZGVhNjgxODk0MjRjM2YxMjQyNDI3YTgxNDZhMzg2MWJmMDkzMTczYwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDExOjM2OjU1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBGUEdBIGltYWdlIGZvciBBUEM0MDUgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMmEwNWIxNTI5MjRhY2ZjZWMzYjAzNzY5MzMyOWU1MTdlNmQzNTc4ZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDExOjM2OjA4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBib290bG9nbyBmb3IgQVBDNDA1IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDhkZWFmZGM2YWQzNjgzNjhjZjAzYjU4Y2FiNGJkMzlmNDVkNjRiNWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMTggMTY6NDE6MzEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIGRjYWNoZV9lbmFibGUoKSBmb3IgNDQwCgogICAgZGNhY2hlX2VuYWJsZSgpIHdhcyBtaXNzaW5nIGZvciA0NDAgYW5kIHRoZSBwYXRjaAogICAgMDE3ZTliNzkyNWY3NDg3OGQwZTk0NzUzODhjY2E5YmRhNWVmOTQ4MiBbImFsbG93IHBvcnRzIHRvIG92ZXJyaWRlIGJvb3RlbGYKICAgICJdIGJlaGF2aW9yIHVzZXMgdGhpcyBmdW5jdGlvbi4KCiAgICBOb3RlOiBDdXJyZW50bHkgdGhlIGNhY2hlIGhhbmRsaW5nIGZ1bmN0aW9ucyBsaWtlCiAgICBkL2ljYWNoZV9kaXNhYmxlL2VuYWJsZSgpIGFyZSBOT1AncyBvbiA0NDAuIFRoaXMgbWF5IGJlIGNoYW5nZWQgaW4gdGhlCiAgICBmdXR1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0OWUwZDE3N2EwNzQ5NjE0YjMxNmVjODQ3ZmI2MjNmMDljODJjMDcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxMToxOTowNCAyMDA4ICswMjAwCgogICAgdmlkZW86IEFkZCBtaXNzaW5nIGZyZWUgZm9yIGxvZ28gbWVtb3J5CgogICAgVGhpcyBwYXRjaCBhZGRzIHR3byBtaXNzaW5nIGZyZWUoKXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgODRjMDFkM2EwNWFlM2FjYTVmN2MwYzEzYTMxY2E3MmJhMTE5OWE0MgpBdXRob3I6IFRyb3kgS2lza3kgPHRyb3kua2lza3lAYm91bmRhcnlkZXZpY2VzLmNvbT4KRGF0ZToJTW9uIFNlcCAyNCAxNjo0MTo0MyAyMDA3IC0wNzAwCgogICAgUEFUQ0ggLSBGaXggb29iIGRhdGEgY29waWVkIGludG8gc3VwcGxpZWQgYnVmZmVyCgogICAgVGhpcyBwYXRjaCBjb3JyZWN0bHkgc2V0cyB0aGUgb29iYXZhaWwgdmFyaWFibGUKICAgIGFuZCBmaXhlcyBhIGJ1ZyB3aGVyZSB0aGUgb29iIGRhdGEgd2FzIG5vdCB2YWxpZCB3aGVuCiAgICB0aGVyZSB3aGVyZSBtdWx0aXBsZSBncm91cHMgaW4gb29iZnJlZS4KCiAgICBGaXJzdCBzZWdtZW50IGZpeGVzIGEgdHlwbwogICAgU2Vjb25kIHNlZ21lbnQgZml4ZXMgYSBidWcgd2hlcmUgb29iIGRhdGEgbWF5IGJlIGNvcGllZCBpbmNvcnJlY3RseS4KICAgIFRoaXJkIHNlZ21lbnQgYWRkcyBhbiBlcnJvciBtZXNzYWdlIHdoZW4gZXhpdGluZyBkdWUgdG8gd3JpdGUgcHJvdGVjdC4KICAgIEZvcnRoIHNlZ21lbnQgZml4ZXMgYSBidWcgd2hlcmUgb29iYXZhaWwgbWF5IGJlIHNldCBpbmNvcnJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUcm95IEtpc2t5IDx0cm95Lmtpc2t5QGJvdW5kYXJ5ZGV2aWNlcy5jb20+Cgpjb21taXQgZTFkMDk2ODBmNjRiNDUyYWRkZTg5ZWQ5ZmUyOGE3N2M1NmJlZGM5YQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgQXByIDE4IDE3OjI0OjMyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBzeXNfZ2V0X2luZm8oKSBmb3IgNDA1R1AocikKCiAgICBUaGlzIHBhdGNoIGFzc2lnbnMgdGhlIGNvcnJlY3QgRUJDIGNsb2NrIGZvciA0MDVHUChyKSBDUFVzCiAgICB0byBQUEM0eHhfU1lTX0lORk8gc3RydWN0dXJlLiBXaXRob3V0IHRoaXMgcGF0Y2ggVS1Cb290CiAgICB1c2VzIGFuIHVuaW5pdGlhbGl6ZWQgRUJDIGNsb2NrIGluIGl0cyBzdGFydHVwIG1lc3NhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZGM3NzQ2ZDg2ZDJhM2RmZTAxYWI5YTcwY2I0MjdmOTJhZGMzMDNjNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMjAgMTU6Mzk6MzggMjAwOCAtMDcwMAoKICAgIE1ha2VmaWxlOiByZW1vdmUgbmFuZF9zcGwvU3lzdGVtLm1hcCB3aGVuIGNsZWFuaW5nIHVwLgoKY29tbWl0IGQ5YTQyYzBhY2U0ZDRmOWNiMDYxZDYyYTcyNjVkMTc4MGY5MDQ0N2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXByIDIwIDE1OjM1OjUyIDIwMDggLTA3MDAKCiAgICBNQUtFQUxMOiBzb3J0IGVudHJpZXMgLyBsaXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA4NzhhZjE2OWIxODE4NjhhMTA1YjVjMzNmM2E2NDIzZTJjOWZkNjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXByIDE4IDExOjI5OjAxIDIwMDggLTA1MDAKCiAgICA4NXh4OiBGaXggc2l6ZSBvZiBjcHUtcmVsZWFzZS1hZGRyIHByb3BlcnR5CgogICAgVGhlIGNwdS1yZWxlYXNlLWFkZHIgaXMgZGVmaW5lZCBhcyBhbHdheXMgYmVpbmcgYSA2NC1iaXQgcXVhbml0eSByZWdhcmRsZXNzCiAgICBpZiB3ZSBhcmUgcnVubmluZyBvbiBhIDMyLWJpdCBvciA2NC1iaXQgbWFjaGluZS4KCmNvbW1pdCA4ODM1M2E5ODUxMDk1NjJhNjM5YjJmOGEwYzkwZDc3MDExYmZlMzc0CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciA0IDExOjE1OjU4IDIwMDggLTA1MDAKCiAgICBGaXggY2FsY3VsYXRpb24gb2YgSTJDIGNsb2NrIGZvciBzb21lIDg1eHggY2hpcHMKCiAgICBTb21lIDg1eHggY2hpcHMgdXNlIENDQiBhcyB0aGUgYmFzZSBjbG9jayBmb3IgdGhlIEkyQy4gIFNvbWUgdXNlIENDQi8yLCBhbmQKICAgIHNvbWUgdXNlIENDQi8zLiAgVGhlcmUgaXMgbm8gcGF0dGVybiB0aGF0IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB3aGljaAogICAgY2hpcHMgdXNlIHdoaWNoIGZyZXF1ZW5jeSwgc28gdGhlIG9ubHkgd2F5IHRvIGRldGVybWluZSBpcyB0byBsb29rIHVwIHRoZQogICAgYWN0dWFsIFNPQyBkZXNpZ25hdGlvbiBhbmQgdXNlIHRoZSByaWdodCB2YWx1ZSBmb3IgdGhhdCBTT0MuCgogICAgVXBkYXRlIGltbWFwXzg1eHguaCB0byBpbmNsdWRlIHRoZSBHVVRTIFBPUkRFVlNSMiByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFlMDE0NzdhZWFmNDA5ZGRiOTdlMjYzM2FhYjljZjhjOWM2MDYxMmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDE4IDExOjQ0OjI3IDIwMDggLTA3MDAKCiAgICBGaXggYnVpbGQgYnJlYWthZ2UgY2FzdWVkIGJ5IGNvbW1pdCBjMDU1OWJlMzcxYjIKCglDaGFuZ2UgZW52X2dldF9jaGFyIGZyb20gYSBnbG9iYWwgZnVuY3Rpb24gcHRyIHRvIGEgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyNjhhODA0ZDdlMmZhMDdiNjQyMTFmZDJmOWE5NjE1ZGI0NTM5ZjIzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAxOCAxMDo1Mzo0MSAyMDA4IC0wNzAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5MmJhZDIwYWQ3NGI3MGFkZjM4MzlkZjlhMGE0N2NjZTAwMGFjM2Q3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgQXByIDggMTQ6MDA6NTcgMjAwOCAtMDQwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB1LWJvb3QgaW4gc3ZuIGFuZCBsb2NhbHZlcnNpb24tKiBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkMjNmZjY4MjdkZWNmMTIxNDYxZmJjNTYyMjYxMmZkN2VmZmUyMDdlCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTc6MDQ6MjIgMjAwOCArMDIwMAoKICAgIE1YMzFBRFMgbmV0d29yayBhbmQgZmxhc2ggdXBkYXRlcwoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIFUtQm9vdCB0byB1c2UgYnVmZmVyZWQgd3JpdGVzIHRvIHRoZSBTcGFuc2lvbiBOT1IKICAgIGZsYXNoIGluc3RhbGxlZCBvbiB0aGlzIGJvYXJkLCBhbmQgZWxpbWluYXRlcyBsb25nIGRlbGF5cyBpbiBuZXR3b3JrCiAgICB0cmFuc2ZlcnMgYWZ0ZXIgdGhlIGJvYXJkIHN0YXJ0dXAuCgogICAgQWxzbyBtb2RpZnkgZmxhc2ggbGF5b3V0IHRvIGVtYmVkIG1haW4gYW5kIHJlZHVuZGFudCBlbnZpcm9ubWVudAogICAgYmxvY2tzIGluIHRoZSBVLUJvb3QgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGI1ZGM5YjMwNGQyODk4MzFmMjkxODQzZmY4OGE0NWNiZGYxYTYyOTAKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMTQgMTA6NTM6MTIgMjAwOCArMDIwMAoKICAgIFN1cHBvcnQgZm9yIHRoZSBNWDMxQURTIGV2YWx1YXRpb24gYm9hcmQgZnJvbSBGcmVlc2NhbGUKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIE1YMzFBRFMgZXZhbHVhdGlvbiBib2FyZCBmcm9tIEZyZWVzY2FsZSwKICAgIGluaXRpYWxpemF0aW9uIGNvZGUgaXMgY29waWVkIGZyb20gUmVkQm9vdCBzb3VyY2VzLCBhbHNvIHByb3ZpZGVkIGJ5CiAgICBGcmVlc2NhbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDQ5OWU3ODMxZTFiYWFhYzZiZmI5NTkyMTNmMTk1MGMyMTZmYmM1YmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgOCAxMDozMzoyOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgQ2FueW9ubGFuZHMgdG8gc3VwcG9ydCBib290aW5nIGZyb20gMmsgcGFnZSBOQU5EIGRldmljZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWUxODJkY2UwNGQ2OGNjOTQ0MDdhMWIxZmEwOTMwN2YyYmI5NjcxOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciA4IDEwOjMzOjI4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkanVzdCBDYW55b25sYW5kcyBmaXhlZCBERFIyIHNldHVwIChOQU5EIGJvb3RpbmcpIHRvIDUxMk1CIFNPRElNTQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZTdjMGRiNmIyYTkwMDRmOTZjMmEyZDRmZmYyODQ5ZTE5YzJkODI1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDggMTA6MzM6MjcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIEdsYWNpZXIgTkFORCBib290aW5nIHRhcmdldAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0NmYzNzM4MzhlMzg0YTRjMjNkMTM1ODFiMWRmYTVhY2I2NmI1ODEwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDggMTA6MzE6MDAgMjAwOCArMDIwMAoKICAgIG5hbmRfc3BsOiBVcGRhdGUgbmFuZF9zcGwgdG8gc3VwcG9ydCAyayBwYWdlIHNpemUgTkFORCBkZXZpY2VzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGJvb3RpbmcgZnJvbSAyayBwYWdlIHNpemVkIE5BTkQgZGV2aWNlCiAgICAoZS5nLiBNaWNyb24gMjlGMkcwOEFBQykuCgogICAgVGVzdGVkIG9uIEFNQ0MgQ2FueW9ubGFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVlM2RjYTU3N2I3YzFiZjU4YmQyYjQ4NDQ5YjE4YjdlN2RjZDhlMDQKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMTcgMTg6MTg6MDAgMjAwOCArMDIwMAoKICAgIEZpeCBjcmFzaCBvbiBzZXF1b2lhIGluIHBwY180eHhfZXRoX2luaXQKCiAgICBDdXJyZW50bHkgVS1Cb290IGNyYXNoZXMgaW4gcHBjXzR4eF9ldGhfaW5pdCBvbiBzZXF1b2lhCiAgICB3aXRoIGNhY2hlIGVuYWJsZWQgKFRMQiBQYXJpdHkgZXhlcHRpb24pLiBUaGlzIHBhdGNoCiAgICBmaXhlcyB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgYWNjZjczNTU3NjdkYzdmNmI4NWQ4OGJiMWM3NWM5ZDk1ZTg0YmE1YgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAxNyAxODoxNToyNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggY3Jhc2ggb24gc2VxdW9pYSB3aXRoIGNhY2hlIGVuYWJsZWQKCiAgICBDdXJyZW50bHkgVS1Cb290IGNyYXNoZXMgb24gc2VxdW9pYSBib2FyZCBpbiBDUFUgUE9TVCBpZgogICAgY2FjaGUgaXMgZW5hYmxlZCAoQ09ORklHXzR4eF9EQ0FDSEUgZGVmaW5lZCkuIFRoZSBjYWNoZQogICAgd29uJ3QgYmUgZGlzYWJsZWQgYnkgY2hhbmdlX3RsYiBiZWZvcmUgQ1BVIFBPU1QgYmVjYXVzZQogICAgdGhlcmUgaXMgYW4gaW5zdWZmaWNpZW50IGFkcmVzcyByYW5nZSBjaGVjayBzaW5jZQogICAgQ0ZHX01FTV9UT1BfSElERSB3YXMgaW50cm9kdWNlZC4gVGhpcyBwYXRjaCB0cmllcyB0byBmaXgKICAgIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNDNjNTA5MjU0ZmFiMzc1YzQ5OTM2NDk4ZGE5NDQ2NTgxMTdlZDA3YwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVRodSBBcHIgMTcgMjM6MzU6MTMgMjAwOCArMDkwMAoKICAgIFVzZSBqciBhcyByZWdpc3RlciBqdW1wIGluc3RydWN0aW9uCgogICAgQ3VycmVudCBhc3NlbWJsZXIgY29kZXMgYXJlIGluY29uc2lzdGVudCBpbiB0aGUgd2F5IG9mIHJlZ2lzdGVyIGp1bXAKICAgIGluc3RydWN0aW9uIHVzYWdlOyBzb21lIHVzZSBqciwgc29tZSB1c2Ugai4gT2YgY291cnNlIEdOVSBhcyBhbGxvd3MgYm90aAogICAgdXNhZ2VzLCBidXQgYXMgY2FuIGJlIGV4cGVjdGVkIGZyb20gYEp1bXAgUmVnaXN0ZXInIHRoZSBtbmVtb25pYyBganInIGlzCiAgICBtb3JlIGludHVpdGl2ZSB0aGFuIGBqJy4gRm9yIGV4YW1wbGUsIExpbnV4IGRvZXNuJ3QgaGF2ZSBgaiA8cmVnPicgdXNhZ2UKICAgIGF0IGFsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDdjZTYzNzA5ODI4ZDM3YjA4ODY2ZTUzNzMzOWExNjliZDBkYjJiZDMKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMTUgMTQ6MTU6MzAgMjAwOCArMDIwMAoKICAgIFJUQyBkcml2ZXIgZm9yIE1DMTM3ODMKCiAgICBNQzEzNzgzIGlzIGEgbXVsdGlmdW5jdGlvbiBJUyB3aXRoIGFuIFNQSSBpbnRlcmZhY2UgdG8gdGhlIGhvc3QuIFRoaXMKICAgIGRyaXZlciBoYW5kbGVzIHRoZSBSVEMgY29udHJvbGxlciBpbiB0aGlzIGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDM4MjU0ZjQ1YjBiNDEyMzMyNzI2YzkwZDMxODRhZDQ3NDc5ZmNmZmIKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMTUgMTQ6MTQ6MjUgMjAwOCArMDIwMAoKICAgIE5ldyBpLk1YMzEgU1BJIGRyaXZlcgoKICAgIFRoaXMgaXMgYW4gU1BJIGRyaXZlciBmb3IgaS5NWCBhbmQgTVhDIGJhc2VkIFNvQ3MgZnJvbSBGcmVlc2NhbGUuIFNvIGZhcgogICAgb25seSBpbXBsZW1lbnRlZCBhbmQgdGVzdGVkIG9uIGkuTVgzMSwgY2FuIHdpdGggYSBtb2RpZmllZCByZWdpc3RlciBsYXlvdXQKICAgIGFuZCBkZWZpbml0aW9ucyBiZSB1c2VkIGZvciBpLk1YMjcsIEkgdGhpbmssIE1YQyBDUFVzIGhhdmUgc2ltaWxhciBTUEkKICAgIGNvbnRyb2xsZXJzIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgNzA2NDEyMmMyZWVmOTJmMDJhMDNlZjM3YTFhMWMwN2U3MGNkNGUzOApBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJVHVlIEFwciAxNSAxOTowOToxMCAyMDA4ICswMjAwCgogICAgRml4IG5hbWUgb2YgaS5NWDMxIGJvYXJkcyBpbiBjb25maWcgZmlsZSBoZWFkZXIKCiAgICBDb3JyZWN0IHRoZSBuYW1lIG9mIHRoZSBpLk1YMzEgTGl0ZWtpdCBhbmQgcGh5Q09SRSBib2FyZHMgaW4gY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCBhNDk4NjQ1OTNlMDgzYTVkMDc3OWZiOWNhOThlNWEwZjIwNTMxODNkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gQXByIDEzIDE5OjQyOjE5IDIwMDggLTA0MDAKCiAgICBhbGxvdyBwb3J0cyB0byBvdmVycmlkZSBnbyBiZWhhdmlvcgoKICAgIFNwbGl0IHRoZSBhcmNoLXNwZWNpZmljIGxvZ2ljIG91dCBvZiB0aGUgY29tbW9uIGdvIGNvZGUgYW5kIGludG8gYSBkZWRpY2F0ZWQKICAgIHdlYWsgZnVuY3Rpb24gY2FsbGVkIGRvX2dvX2V4ZWMoKSB0aGF0IGxpdmVzIGluIGNwdSBkaXJlY3Rvcmllcy4gIFRoaXMgd2lsbAogICAgbmVlZCByZXZpZXcgZnJvbSBpMzg2L25pb3MgcGVvcGxlIHRvIG1ha2Ugc3VyZSBJIGRpZG4ndCBicmVhayB0aGVtLgoKY29tbWl0IDAxN2U5Yjc5MjVmNzQ4NzhkMGU5NDc1Mzg4Y2NhOWJkYTVlZjk0ODIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBBcHIgMTMgMTk6NDI6MTggMjAwOCAtMDQwMAoKICAgIGFsbG93IHBvcnRzIHRvIG92ZXJyaWRlIGJvb3RlbGYgYmVoYXZpb3IKCiAgICBDaGFuZ2UgdGhlIGJvb3RlbGYgc2V0dXAgZnVuY3Rpb24gaW50byBhIGRlZGljYXRlZCB3ZWFrIGZ1bmN0aW9uIGNhbGxlZAogICAgZG9fYm9vdGVsZl9leGVjLiAgVGhpcyB3YXkgcG9ydHMgY2FuIGNvbnRyb2wgdGhlIGJlaGF2aW9yIGhvd2V2ZXIgdGhleQogICAgbGlrZSBiZWZvcmUvYWZ0ZXIgY2FsbGluZyB0aGUgRUxGIGVudHJ5IHBvaW50LgoKY29tbWl0IGE0YjQ2ZWQ2YjM1MDIzMzVjM2YzYTVkNjcyYWJlMGJjYjQ0ZjIwYjcKQXV0aG9yOiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KRGF0ZToJU2F0IEFwciAxMiAyMDo1NjowMyAyMDA4ICswMjAwCgogICAgUmVvcmRlciBBUk0gYm9hcmRzIGluIE1ha2VmaWxlCgogICAgUmVhcnJhbmdlIEFSTSBib2FyZHMgaW4gTWFrZWZpbGUgc28gdGhhdCBBUk05MjZFSi1TIGJvYXJkcwogICAgYXJlIG5vIGxvbmdlciB1bmRlciBBUk05MnhUIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KICAgIEFjay1CeSBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGMzYTYwY2IzYmQ2N2UxMjBmYzk5YjZiYTg4ZDkyOTVjM2MwN2Y2ODgKQXV0aG9yOiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KRGF0ZToJU2F0IEFwciAxMiAyMDoyOTo0NCAyMDA4ICswMjAwCgogICAgQ2xlYW4gdXAgZGF0YWZsYXNoIHBhcnRpdGlvbmluZwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgYm9hcmQgZGVwZW5kZW50IHBhcnRzIGZyb20KICAgICJkcml2ZXJzL210ZC9kYXRhZmxhc2guYyIuCiAgICBFYWNoIGJvYXJkIHJlbHlpbmcgb24gdGhpcywgd2lsbCBoYXZlIHRoZSBhcHByb3ByaWF0ZQogICAgY29kZSBpbiBhIG5ldyBmaWxlLCAicGFydGl0aW9uLmMiIGluIHRoZSBib2FyZCBkaXJlY3RvcnkuCiAgICBib2FyZCBNYWtlZmlsZXMgdXBkYXRlZCB0byB1c2UgdGhlIGZpbGUuCgogICAgVGhlIGRhdGFmbGFzaCBwYXJ0aXRpb25zIGFyZSBhbGlnbmVkIG9uIHNlY3Rvci9wYWdlIGJvdW5kYXJpZXMuCgogICAgVGhlIENPTkZJR19ORVdfREZfUEFSVElUSU9OIHdhcyB1c2VkIHRvIGNyZWF0ZSBuYW1lZCBwYXJ0aXRpb25zCiAgICBUaGlzIGlzIG5vdyB0aGUgZGVmYXVsdCBvcGVyYXRpb24sIGFuZCB0aGUgQ09ORklHIHZhcmlhYmxlIGlzIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+Cgpjb21taXQgNTFlY2RlOTQ2ZmVjNTExYTE2MzQ2ZTQ5ODIwNGNhMTBhZDcxMDgwZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBcHIgMTIgMTQ6MDg6NDUgMjAwOCArMDIwMAoKICAgIGdpdGlnbm9yZTogdWRwYXRlIHN0Z2l0IGdlbmVyYXRlZCBhbmQgLnBhdGNoIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDY2ZTM5ODE4ZTk1ZjUxZWUxYzFkZDIwOTQ0MDdhODkyOTU0M2ZhNmQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDE4IDAwOjE1OjM2IDIwMDggLTA3MDAKCiAgICBHZXQgcmlkIG9mIHJlZHVuZGFudCBjb3B5IG9mIHJlbmFtZWQgaGVhZGVyIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjM2FhZmQ4Y2Y4MTRlMzNhNzdkZTgxYzJmMjJiOGM3NzIyMTZhM2NjCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CUZyaSBBcHIgMTEgMjE6MjA6MTQgMjAwOCArMDMwMAoKICAgIEZpeCBkZXBlbmRlbmN5IGdlbmVyYXRpb24gZm9yIG9sZGVyIGdjYyB2ZXJzaW9ucwoKICAgICBXaXRoIGdjYyAzLjMuMyBhdCBsZWFzdCwgY29tcGlsYXRpb24gZmFpbHMgd2l0aAoKICAgIEdlbmVyYXRpbmcgaW5jbHVkZS9hdXRvY29uZi5tawogICAgZ2NjOiBjb21waWxhdGlvbiBvZiBoZWFkZXIgZmlsZSByZXF1ZXN0ZWQKICAgIG1ha2U6ICoqKiBbaW5jbHVkZS9hdXRvY29uZi5ta10gRXJyb3IgMQoKICAgIHNpbmNlIGNvbW1pdCAxNmZlNzc3NTJlZWUwOTliOWZiNjFlZDczNDYwZTUxY2M5NGIzN2JhLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGNiMWM0ODk2OTA1YWIyMmZjZDk4MmU2YThhNTM5ZjAwMzE5NDJlNzEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgQXByIDExIDExOjA3OjQ5IDIwMDggKzAyMDAKCiAgICBSZXN0b3JlIHRoZSBhYmlsaXR5IHRvIGNvbnRpbnVlIGJvb3RpbmcgYWZ0ZXIgbGVnYWN5IGltYWdlIG92ZXJ3cml0ZQoKICAgIEJlZm9yZSBuZXcgdUltYWdlIGNvZGUgd2FzIG1lcmdlZCwgYm9vdG0gY29kZSBhbGxvd2VkIGZvciB0aGUga2VybmVsIGltYWdlIHRvCiAgICBnZXQgb3ZlcndyaXR0ZW4gZHVyaW5nIGRlY29tcHJlc2lvbi4gbmV3IHVJbWFnZSBpbnRyb2R1Y2VkIGEgY2hlY2sgZm9yIGltYWdlCiAgICBvdmVyd3JpdGVzIGFuZCByZWZ1c2VkIHRvIGJvb3QgdGhlIGltYWdlIHRoYXQgZ290IG92ZXJ3cml0dGVuLiBUaGlzIHBhdGNoCiAgICByZXN0b3JlcyB0aGUgb2xkIGJlaGF2aW9yLiBJdCBhbHNvIGFkZHMgYSB3YXJuaW5nIHdoZW4gdGhlIGltYWdlIG92ZXJ3cml0ZW4gaXMKICAgIGEgbXVsdGktaW1hZ2UgZmlsZSwgYmVjYXVzZSBpbiBzdWNoIGNhc2UgYWNjZXNzaW5nIGNvbXBvbmVudGVzIG90aGVyIHRoYW4gdGhlCiAgICBmaXJzdCBvbmUgd2lsbCBmYWlsLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZGUyYjMyMTZlNmI0ZjNiMmZlOTM3NTljMDViMTc1MDRmOWRmZTAzNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBcHIgMTEgMTE6MDc6NDMgMjAwOCArMDIwMAoKICAgIHBwYzogRml4IGZ0ZF9ibG9iIHZhcmlhYmxlIGluaXQgd2hlbiBwcm9jZXNzaW5nIHJhdyBibG9iCgogICAgU2V0IGZkdF9ibG9iIHZhcmlhYmxlIGJlZm9yZSBpdHMgdmFsdWUgaXMgcHJpbnRlZCBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzZDM2YmUwMzAwNDNjZDg0MWEyNTUxZDAwYTM5NTEzNWUzNjNhNjRiCkF1dGhvcjogSmFzb24gV2Vzc2VsIDxqYXNvbi53ZXNzZWxAd2luZHJpdmVyLmNvbT4KRGF0ZToJVGh1IEFwciAxMCAxNDozMDoxNiAyMDA4IC0wNTAwCgogICAgUmVtb3ZlIGFsbCB0aGUgc2VhcmNoIHBhdGhzIGZyb20gdGhlIC5sZHMgZmlsZXMuCgogICAgVGhlIGNyb3NzIGNvbXBpbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgdGhlIGNvcnJlY3QgbGlicmFyaWVzCiAgICBhbmQgdGhlIGxvZ2ljIHRvIGZpbmQgdGhlIGxpbmtpbmcgbGlicmFyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIFdlc3NlbCA8amFzb24ud2Vzc2VsQHdpbmRyaXZlci5jb20+Cgpjb21taXQgN2Q3MjFlMzRhZTZiZTdkN2RiNjNlOGQwNjBhMjQ2Mjc4YmI3YWU1OApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBBcHIgMTQgMTU6NDQ6MTYgMjAwOCArMDIwMAoKICAgIEJvb3QtcmVsYXRlZCBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKICAgIC0gZG9jdW1lbnQgJ2Jvb3RtX2xvdycgYW5kICdib290bV9zaXplJyBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICAgIC0gdXBkYXRlIGluYWNjdXJhdGUgQ0ZHX0JPT1RNQVBTWiBlbnRyeQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYTZmMGJkOWYyYjE5NzFlMmE2MWFjMGZkMWZjMmM5NmNiN2E0YjY3YQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJV2VkIEFwciA5IDE3OjM0OjA4IDIwMDggKzAyMDAKCiAgICBGaXggcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IGEgdHlwbyBpbiAiVGlkaWVkIG90aGVyIGNwdS9hcm05MjB0L3N0YXJ0LlMgY29kZSIKCiAgICBSZXN0b3JlIGxvZ2ljIHJldmVydGVkIGJ5IGNvbW1pdAoKICAgIGNvbW1pdCA4MDc2N2E2Y2VhZDk5OTBkOWU3N2U2MmJlOTQ3ODQzYzJjNzJmNDY5CiAgICBBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CiAgICBEYXRlOiAgIFdlZCBTZXAgNSAxNjowNDo0MSAyMDA3ICswMTAwCgoJQ2hhbmdlZCBBUEkgbmFtZSB0byBjb2xvdXJlZF9sZWQuaAoJUmVtb3ZlZCBjb2RlIHVzaW5nIGRlcHJlY2F0ZWQgaWZkZWYgQ09ORklHX0JPT1RCSU5GVU5DCglUaWRpZWQgb3RoZXIgY3B1L2FybTkyMHQvc3RhcnQuUyBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGUyNWNiOGQzZjRmY2MyNjVhOWNkZjhlOWQ1NzdiNTliZGI2NGJiYWYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBBcHIgOCAxMDoyNDoyNCAyMDA4IC0wNDAwCgogICAgUmVtb3ZlIGNvbmZsaWN0aW5nIE5BTkQgSUQKCiAgICBUaGVyZSBhcmUgdHdvIE5BTkQgZW50cmllcyB3aXRoIElEIDB4REMgYW5kIHRoaXMgb2J2aW91c2x5IGNhdXNlcyBwcm9ibGVtcy4KICAgIEluIHRoZSBrZXJuZWwsIHRoZXkgcHVudGVkIHRoZSBmaXJzdCBlbnRyeSwgc28gd2Ugc2hvdWxkIGRvIHRoZSBzYW1lLgoKICAgIFNlZSB0aGlzIHVwc3RyZWFtIGUtbWFpbCBmb3IgbW9yZSBpbmZvOgogICAgaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvcGlwZXJtYWlsL2xpbnV4LW10ZC8yMDA3LUp1bHkvMDE4Nzk1Lmh0bWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEhlbm5lcmljaCA8bWljaGFlbC5oZW5uZXJpY2hAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxODhlOTRjMzcwNjIxNzA4ZDEzNTQ3ZDU4ZGJjNmVkM2M1NjAyYWE4CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglUdWUgQXByIDggMTY6MjA6MzUgMjAwOCArMDkwMAoKICAgIGNwdS9taXBzL2NwdS5jOiBGaXggZmx1c2hfY2FjaGUgYnVnCgogICAgQ2FjaGUgb3BlcmF0aW9ucyBoYXZlIHRvIHRha2UgbGluZSBhZGRyZXNzIChhZGRyKSwgbm90IHN0YXJ0X2FkZHIuCiAgICBJIG5vdGljZWQgdGhpcyBidWcgd2hlbiBkZWJ1Z2dpbmcgcGluZyBmYWlsdXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCA4ZjJhNjhhMDdjMDU4ZmNhMWQ0MTNlNTRmNzFjMmU3ZTc4YTc0ZWQ0CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVRodSBBcHIgMyAxNDoyOTowMSAyMDA4ICswMjAwCgogICAgVFFNNTIwMDogZml4IGRlZmF1bHQgSURFIHJlc2V0IGxldmVsCgogICAgQmVmb3JlIHRoZSBmaXJzdCBjYWxsIG9mIGlkZV9yZXNldCgpLCB0aGUgbGV2ZWwgb2YgdGhlIElERSByZXNldAogICAgc2lnbmFsIG9uIHRoZSBUUU01MjAwIGlzIGxvdyAocmVzZXQgYXNzZXJ0ZWQpLiBUaGlzIHBhdGNoIHNldHMgdGhlCiAgICBkZWZhdWx0IHZhbHVlIHRvIGhpZ2ggKHJlc2V0IG5vdCBhc3NlcnRlZCkuCgogICAgQ3VycmVudGx5IHRoaXMgcGF0Y2ggZml4ZXMgbm8gcmVhbCBwcm9ibGVtLCBidXQgaXQgaXMgY2xlYW5lciB0bwogICAgYXNzZXJ0IHRoZSByZXNldCBzaWduYWwgb25seSBvbiBkZW1hbmQsIGFuZCBub3QgcGVybWFuZW50bHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgYzYxZTAzM2Q2ZThhYmI3YjQwNjBlZTM2MDYwOTYxZTEzOTlmNjA3OQpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTQ6MTg6NDggMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXY6IHJlYWxpZ24gQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgZjMwODU3MmUxOWViN2ZlNjNhYTNkNDFmMjE0Y2RlNGMyM2M5ODAwZgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTQ6MTg6NDcgMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXY6IHJlbmFtZSAnYWRkY29uJyB0byAnYWRkY29ucycKCiAgICBUaGUgbGF0dGVyIG5hbWUgd2l0aCAxMyB1c2VycyBpcyBhbHJlYWR5IGVzdGFibGlzaGVkLCBzbyB3ZSB3aWxsIHVzZQogICAgdGhhdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBlMTc1ZWFjYzg3YzNhOWU0ZGFkMDc5OWZlZTBlOTU3MzI1MjBhZmM3CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVRodSBBcHIgMyAxMzozNzo1NiAyMDA4ICswMjAwCgogICAgSURFOiBmaXggYnVnIGluIHJlc2V0IHNlcXVlbmNlCgogICAgQWNjb3JkaW5nIHRvIHRoZSBhdGEgKGF0YTUpIHNwZWNpZmljYXRpb24gdGhlIFJFU0VULSBzaWduYWwKICAgIHNoYWxsIGJlIGFzc2VydGVkIGZvciBhdCBsZWFzdCAyNSB1cy4gV2l0aG91dCB0aGlzIHBhdGNoLAogICAgdGhlIFJFU0VULSBzaWduYWwgaXMgYXNzZXJ0ZWQgb24gc29tZSBib2FyZHMgZm9yIG9ubHkgPCAxIHVzCiAgICAoZS4gZy4gb24gdGhlIFRRTTUyMDApLiBUaGlzIHBhdGNoIGFkZHMgYSBnZW5lcmFsIGRlbGF5IG9mCiAgICAyNSB1cyB0byB0aGUgUkVTRVQtIHNpZ25hbC4KCiAgICBXaXRob3V0IHRoaXMgcGF0Y2ggYSBQbGF0aW51bSA0IEdpQiBDRiBjYXJkIGlzIG5vdCByZWNvZ25pc2VkCiAgICBwcm9wZXJseSBvbiBib2FyZHMgd2l0aCBhIFRRTTUyMDAgKFNUSzUyeHgsIFRCNTIwMCkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgODEzYmVhOTZhOTYwOTE2YzcyYjRhM2E3ZGY4NDAxNTE1MjljMjZjZQpBdXRob3I6IFNhc2NoYSBMYXVlIDxTYXNjaGEuTGF1ZUBnbXguYml6PgpEYXRlOglUaHUgQXByIDMgMTQ6NDM6MTEgMjAwOCArMDIwMAoKICAgIGx3bW9uNTogZGlzYWJsZSBDT05GSUdfWkVST19CT09UREVMQVkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8c2FzY2hhLmxhdWVAbGllYmhlcnIuY29tPgoKY29tbWl0IDUzZWVjNmYxZDI1OTMyZTc2ZDYzY2NiMTQwODI3OTJiMGI5NmJmNDEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXByIDIgMDg6MDM6NTggMjAwOCArMDIwMAoKICAgIGRzMTc0eDogRml4IHdhcm5pbmcgb24gcmV0dXJuIGluIHJ0Y19nZXQgYW5kIHJ0Y19zZXQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhMjUzYjM4YmY1MGM4NTIyN2MzM2NhMGZlYmM4NzBlZTQ5ZDE1ODhlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEFwciAyIDA4OjAzOjU3IDIwMDggKzAyMDAKCiAgICBjbWRfbG9nLmM6IEZpeCBhc3NpZ25tZW50IGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgSW4gZnVuY3Rpb24gJ2xvZ2J1ZmZfaW5pdF9wdHJzJzoKICAgIGNtZF9sb2cuYzo3OTogd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZjMGU5YThmMWNjMDkwZmJmYmM2Zjg2YjZiNGZkMTdhMTYyOGYzZGYKQXV0aG9yOiBHdXJ1cmFqYSBIZWJiYXIgSyBSIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglXZWQgQXByIDIgMTE6MDQ6NDMgMjAwOCArMDUzMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgI3VuZGVmIFNIT1dfSU5GTyBpbiBkcml2ZXJzL3VzYi91c2Jfb2hjaS5jCgogICAgU2lnbmVkLW9mZi1ieTogZ3VydXJhamEgaGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IDQ3OGQ1ZWM5YWUzY2JjYzYwNDAyNDFkMmQ3M2RiYmM2MWZlOWI0OWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgQXByIDEgMTQ6MDc6MTAgMjAwOCArMDIwMAoKICAgIHMzYzQ1MTBiX2V0aDogZml4ICdwYWNrZWQnIGF0dHJpYnV0ZSBpZ25vcmVkIGZvciBmaWVsZHMgb2YgTUFDRnJhbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGMwOGZiM2VhMzZkMTliMTY0MGI3OTA2MjY0NTgxZTkxMDU1MzQzOTkKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJVHVlIEFwciAxNSAxMDoyNDoxNCAyMDA4ICswMjAwCgogICAgQWRkaXRpb25hbCBQQ0kgSURzIGZvciBJREUgYW5kIG5ldHdvcmsgY29udHJvbGxlcnMKCiAgICBUaGVzZSBQQ0kgSURzIGFyZSByZXF1aXJlZCBieSB0aGUgTGlua3N0YXRpb24gcGxhdGZvcm1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IGMwNTU5YmUzNzFiMmE2NGIxYTgxNzA4OGMzMzA4Njg4ZTIxODJmOTMKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxqb2FraW0udGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJTW9uIEFwciAxNCAyMzowMTo1MCAyMDA4ICswMjAwCgogICAgQ2hhbmdlIGVudl9nZXRfY2hhciBmcm9tIGEgZ2xvYmFsIGZ1bmN0aW9uIHB0ciB0byBhIGZ1bmN0aW9uLgoKICAgIFRoaXMgYXZvaWRzIGFuIGVhcmx5IGdsb2JhbCBkYXRhIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCmNvbW1pdCAzZTBmMzMxYzA1ZDcyZjE0MDcxNWMxZTlmY2E5OTE5MjdlNDRkNDIyCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgQXByIDI5IDEyOjM1OjA4IDIwMDggKzAwMDAKCiAgICBDbGVhbiB1cCBzbXNjOTExeCBkcml2ZXIKCiAgICBSZXBsYWNlIGRpcmVjdCByZWdpc3RlciBhZGRyZXNzIGRlcmVmZW5jaW5nIHdpdGggYWNjZXNzb3IgZnVuY3Rpb25zLgogICAgUmVzdHJpY3QgZXhwbGljaXRseSAzMi1iaXQgYnVzLXdpZHRoLCBleHRlbmQgYWZmZWN0ZWQgY29uZmlndXJhdGlvbnMKICAgIHJlc3BlY3RpdmVseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGRlMWI2ODZiNzYzYWE4Yjg3YTg2ZjY3NDhjZTkxNjllN2ZjMGU0Y2QKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVR1ZSBBcHIgMTUgMDA6MDg6MjAgMjAwOCAtMDQwMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBzbXNjIG5ldHdvcmsgY29udHJvbGxlcnM6CiAgICBMQU45MTE1CiAgICBMQU45MTE2CiAgICBMQU45MTE3CiAgICBMQU45MjE1CiAgICBMQU45MjE2CiAgICBMQU45MjE3CgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNkZmQ0YWFiOTI5Y2NjZGRiNjNkOWVhNTA5OTY3ODYxZTEzMzNiNTIKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8U2FzY2hhLkxhdWVAZ214LmJpej4KRGF0ZToJVHVlIEFwciAxIDE1OjEzOjAzIDIwMDggKzAyMDAKCiAgICBGaXggd2F0Y2hkb2cgUE9TVCBmb3IgbHdtb241CgogICAgSWYgdGhlIGhhcmR3YXJlIHdhdGNoZG9nIGRldGVjdHMgYSB2b2x0YWdlIGVycm9yLCB0aGUgd2F0Y2hkb2cgc2V0cwogICAgR1BJTzYyIHRvIGxvdy4gVGhlIHdhdGNoZG9nIFBPU1QgaGFzIHRvIGRldGVjdCB0aGlzIGxvdyBsZXZlbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8bGVnbGFzMEBsZWdwYzE4MC5sZWcubGllYmhlcnIuaT4KCmNvbW1pdCAyNGI0NDg0NDhhOTE3ZTUyODA2ZjgyNjYwYTVjOWQ0NzYwODg5NGZiCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXByIDEgMTU6MjI6MTEgMjAwOCArMDgwMAoKICAgIGF0YTogdXBkYXRlIHRoZSBsaWJhdGEuaCBmcm9tIGF0YS5oIG9mIGxpbnV4IGtlcm5lbAoKICAgIEN1cnJlbnQgbGliYXRhLmggb2YgdS1ib290IGlzIG91dCBvZiBzeW5jIGZyb20gbGludXgga2VybmVsLAogICAgdGhpcyBwYXRjaCBtYWtlIGl0IGJlIGNvbnNpc3RlbnQgd2l0aCBsaW51eCBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+Cgpjb21taXQgZjhmOWRjOTg4ODNmNjZmNTllYjA2MDFkYTY1ODA4ZTZiMTM5Yzg3YwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBNYXIgMzEgMTE6NTk6MjcgMjAwOCAtMDUwMAoKICAgIEFsbG93IHVzZSBvZiBBUkNIPXBvd2VycGMgd2hlbiBidWlsZGluZwoKICAgIFRoZSBsaW51eCBrZXJuZWwgaXMgbm93IG1vc3RseSBBUkNIPXBvd2VycGMsIHNvIHRvIG1ha2UgbGlmZSBlYXNpZXIKICAgIGFsbG93IHVzZSB0byB1c2UgQVJDSD1wb3dlcnBjIGFuZCBjb252ZXJ0IGl0IHRvIEFSQ0g9cHBjLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGFmNjU3ZDJjNmQxY2E0ZjJmNzY5NzM1MzEzOTRkNDU3OGJhMmVmMApBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gTWFyIDMxIDEwOjQwOjU0IDIwMDggKzA5MDAKCiAgICBBZGQgYXBvbGxvbiBib2FyZCBNQUlOVEFJTkVSUyBlbnRyeQoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgNzdlNDc1Y2MwZWQxODMyMTYwMDE3ZDM2NGJlMzJhMGJlOWZmMDJhOQpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gTWFyIDMxIDEwOjQwOjM2IDIwMDggKzA5MDAKCiAgICBGaXggT25lTkFORCByZWFkCgogICAgSXQgc2hvdWxkIGFjY2VzcyB3aXRoIDE2LWJpdCBpbnN0ZWFkIG9mIDgtYml0CgogICAgTm93IGl0IHVzZXMgdGhlIGdlbmVyaWMgbWVtY3B5IHdpdGggOC1iaXQgYWNjZXNzLiBJdCBtZWFucyBpdCByZWFkcyB3cm9uZyBkYXRhIGZyb20gT25lTkFORC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IGE5ZGEyYjQxMDc5ZDIzMGRiM2E1NjQxNjI1MzExOTgzZjg1Y2UxZmIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIE1hciAzMSAxMDo0MDoxOSAyMDA4ICswOTAwCgogICAgRml4IE9uZU5BTkQgZXJhc2UgY29tbWFuZAoKICAgIEl0IG1pcy1jYWxjdWxhdGVzIHRoZSBibG9jayBhZGRyZXNzLgogICAgQWxzbyBmaXggREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgaW4gZW52X29uZW5hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA2MTUyNWYyZmZhMTU2NjY1YTY2OTA4ZmRhNDdkYmYyOWQ2NWVhNTc5CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+CkRhdGU6CU1vbiBNYXIgMzEgMDE6MzI6MTUgMjAwOCArMDIwMAoKICAgIFN1cHBvcnQgZm9yIExpbmtTdGF0aW9uIC8gS3Vyb0JveCBIRCBhbmQgSEcgUFBDIG1vZGVscwoKICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIHBvcnQgYnkgTWloYWkgR2VvcmdpYW4gKHNlZSBsaW5rc3RhdGlvbi5jIGZvcgogICAgQ29weXJpZ2h0IGluZm9ybWF0aW9uKSBhbmQgaW1wbGVtZW50cyBzdXBwb3J0IGZvciBMaW5rU3RhdGlvbiAvIEt1cm9Cb3ggSEQKICAgIGFuZCBIRyBQUEMgbW9kZWxzIGZyb20gQnVmZmFsbyBUZWNobm9sb2d5LCB3aGVyZWJ5IEhEIGlzIGRlYWN0aXZhdGVkIGF0CiAgICB0aGUgbW9tZW50LCBwZW5kaW5nIG5ldHdvcmsgZHJpdmVyIGZpeGluZy4KCiAgICBOb3RpY2UgdG8gdXNlcnM6IHRoaXMgaXMgcHJldHR5IG11Y2ggYSBiYXJlYm9uZSBwb3J0LiBTdXBwb3J0IGZvciBuZXR3b3JrCiAgICBvbiBIRyBtb2RlbHMgaXMgYWxyZWFkeSBpbiB0aGUgVS1Cb290IG1haW5saW5lLCBidXQgeW91IG1pZ2h0IGFsc28gd2FudAogICAgcGF0Y2hlcyB0byBzd2l0Y2ggZmFuIC8gcGh5IG1vZGVzIGRlcGVuZGluZyBvbiB0aGUgbmVnb3RpYXRlZCBldGhlcm5ldAogICAgcGFyYW1ldGVycy4gVGhpcyBwYXRjaCBhbHNvIGRvZXNuJ3Qgc3VwcG9ydCBjb25zb2xlIHN3aXRjaGluZywgYm9vdGluZyBFTQogICAgbW9kZSwgQnVmZmFsbyBzcGVjaWZpYyBleHQyIG1hZ2ljIG51bWJlci4gU28sIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgb2YKICAgIHRob3NlLCB5b3UgbmVlZCBhZGRpdGlvbmFsIHBhdGNoZXMuIE90aGVyd2lzZSB0aGlzIHBhdGNoZSBwcm92aWRlcyBhIGZ1bGx5CiAgICBmdW5jdGlvbmFsIHUtYm9vdCB3aXRoIGEgbmV0d29yayBjb25zb2xlIG9uIHlvdXIgc3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAwZjNiYTdlOTc4M2YzNTIzMThmMTk3YTMxNDhmNmQ1Y2MzZDc1YmVhCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAwMToyMjoxMyAyMDA4IC0wNTAwCgogICAgQWRkIENPTkZJR19NSUlfSU5JVCBzdXBwb3J0IHRvIHJlbGF0ZWQgYm9hcmRzCgogICAgUmVwbGFjZSBDT05GSUdfOHh4IGFuZCBDT05GSUdfTUNGNTMyeCB0byBDT05GSUdfTUlJX0lOSVQgaW4KICAgIGNtZF9pbml0LmMuIEFkZCBDT05GSUdfTUlJX0lOSVQgdG8gYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlcwogICAgdGhhdCB1c2UgbWlpX2luaXQoKSBpbiBjbWRfaW5pdC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmMzNmY2EyMmU3NmYyMGU0ZTQ3OTM4MTBjYTdhMDZhNDgwNWE2Y2Y0CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAwMToxOTowNiAyMDA4IC0wNTAwCgogICAgVXBkYXRlIENPTkZJR19QQ0lBVVRPX1NLSVBfSE9TVF9CUklER0UgdG8gcmVsYXRlZCBib2FyZHMKCiAgICBSZW1vdmUgdGVzdCBmb3IgQ09ORklHX01QQzUyMDAgaW4gZHJpdmVycy9wY2kvcGNpX2F1dG8uYyBhbmQgZGVmaW5lCiAgICBDT05GSUdfUENJQVVUT19TS0lQX0hPU1RfQlJJREdFIGluIHJlbGF0ZWQgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5OWNjYjQ4ODE4MWQwMTIyNDhjNmJlMzBiMjA5M2U5NTAzMTlmYzUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTWFyIDI3IDExOjQ2OjM4IDIwMDggLTA1MDAKCiAgICBJbnRyb2R1Y2UgcGh5c19zaXplX3QgYW5kIG1vdmUgcGh5c19hZGRyX3QgaW50byBhc20vdHlwZXMuaAoKICAgIEFsc28gYWRkIENPTkZJR19QSFlTXzY0QklUIG9uIHBvd2VycGMgdG8gZGVhbCB3aXRoIDMyLWJpdCBwcGMncwogICAgdGhhdCBoYXZlIGxhcmdlciBwaHlzaWNhbCBhZGRyZXNzZXMgbGlrZSA0NHgsIDg1eHgsIGFuZCA4Nnh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjBhMTRhNDJhMjVmNzJlMzc5ZjM4NDYwYjhhODQ4NDY2NzUzNjc5NQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAyIDE2OjE5OjA3IDIwMDggLTA1MDAKCiAgICBSZW5hbWUgaW5jbHVkZS9tZDUuaCB0byBpbmNsdWRlL3UtYm9vdC9tZDUuaAoKICAgIFNvbWUgc3lzdGVtcyBoYXZlIG1kNS5oIGluc3RhbGxlZCBpbiAvdXNyL2luY2x1ZGUvLiBUaGlzIGlzbid0IHRoZQogICAgZGVzaXJlZCBmaWxlICh3ZSB3YW50IHRoZSBvbmUgaW4gaW5jbHVkZS9tZDUuaCkuIFRoaXMgd2lsbCBhdm9pZCB0aGUKICAgIGNvbmZsaWN0LiBUaGlzIGZpeGVzIHRoZSBob3N0IHRvb2xzIGJ1aWxkaW5nIHByb2JsZW0gYnkgY3JlYXRpbmcgYSBuZXcKICAgIGRpcmVjdG9yeSBmb3IgVS1Cb290IHNwZWNpZmljIGhlYWRlciBmaWxlcy4KCiAgICBbUGF0Y2ggYnkgQW5keSBGbGVtaW5nLCBtb2RpZmllZCB0byB1c2Ugc2VwYXJhdGUgZGlyZWN0b3J5IGJ5IFdvbGZnYW5nCiAgICBEZW5rXQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMjk3YjdhMWVjODc0MzNmNjYzMjBkODlkOTkzZTFiYzczOGM2NmI4CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDI3IDE4OjUxOjE3IDIwMDggKzA4MDAKCiAgICBkcml2ZXJzOiBjb2RlIGNsZWFuIHVwCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZmY3Y2JhNGEyZTUxYzkwODI3ZjZkMjFhMGIyOGI0ZDY3MTA5NTk3CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDI3IDE4OjUwOjQxIDIwMDggKzA4MDAKCiAgICBkcml2ZXJzOiBjbGVhbiB1cCB0aGUgYXRhX3BpaXguaAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZThmN2JhNDA0ZjE0MDk2MDY5NjI4MTVlY2M5NTVhMDY5ODRiMDhiMwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAxODo0OTo1NiAyMDA4ICswODAwCgogICAgZG9jOiBlbmdsaXNoIHBvbGlzaGluZyBmb3IgUkVBRE1FLnNhdGEKCiAgICBhY2NvcmRpbmcgdG8gZ3ZiJ3Mgc3VnZ2VzdGlvbiwgcG9saXNoaW5nIGZvciB0aGUgZG9jLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplcnJ5IFZhbiBCYXJlbiA8Z2VyYWxkLnZhbmJhcmVuQGdlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2UzZjc2NmE1Mjc0ZDIwNDc4MDQ2MGUxODc5NzIzYjU2NTI5NmQzNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBNYXIgMjYgMTg6NTM6MjggMjAwOCAtMDUwMAoKICAgIEZpeCB3YXJuaW5ncyBpbnRyb2R1Y2VkIGJ5IEkyQyBidXMgc3BlZWQgc2V0dGluZyBwYXRjaAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2M3MzVlNzQzNzE1MGU4NjE1ZjI2OTMwYzc4MTlkYjg1NjM0Mjc2ZApBdXRob3I6IGVyYW4gbGliZXJ0eSA8ZXJhbi5saWJlcnR5QGdtYWlsLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAwMDo1MDo0OSAyMDA4ICswMTAwCgogICAgQWx0ZXJhIFN0cmF0aXggSUkgc3VwcG9ydAoKICAgIEFkZHMgU3VwcG9ydCBmb3IgQWx0ZXJhJ3MgU3RyYXRpeCBJSS4KCiAgICBXaXRoaW4geW91ciBib2FyZCBzcGVjaWZpYyBpbml0IGZpbGUgeW91IHdpbGwgaGF2ZSB0byBjYWxsCgogICAgMS4gZnBnYV9pbml0ICgvKiByZWxvY2F0ZWQgY29kZSBvZmZzZXQuIHVzdWFsbHkgPT4gKi8gZ2QtPnJlbG9jX29mZik7CiAgICAyLiBmcGdhX2FkZCAoZnBnYV9hbHRlcmEsIChBbHRlcmFfZGVzYyopJmFsdGVyYV9kZXNjKTsKCiAgICBBbHRlcmFfZGVzYyogY29udGluZXMgKGZvciBleGFtcGxlKToKCXsKCSBBbHRlcmFfU3RyYXRpeElJLAkvKiBwYXJ0IHR5cGUgKi8KCSBwYXNzaXZlX3NlcmlhbCwJLyogaW50ZXJmYWNlIHR5cGUgKi8KCSAxLAkJCS8qIGJ5dGVzIG9mIGRhdGEgcGFydCBjYW4gYWNjZXB0ICovCgkgKHZvaWQgKikoJmZ1bmNzKSwJLyogaW50ZXJmYWNlIGZ1bmN0aW9uIHRhYmxlICovCgkgMEwsCQkJLyogYmFzZSBpbnRlcmZhY2UgYWRkcmVzcyAqLwoJIDAJCQkvKiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBjb29raWUgKi8KCSB9CgogICAgZnVuY3MgaXMgdGhlIGludGVyZmFjZS4gSXQgaXMgb2YgdHlwZSBhbHRlcmFfYm9hcmRfc3BlY2lmaWNfZnVuYy4KICAgIEl0IGxvb2tzIGxpa2UgdGhpczoKICAgIGFsdGVyYV9ib2FyZF9zcGVjaWZpY19mdW5jIGZ1bmMgPSB7CglwcmVfZm4sCgljb25maWdfZm4sCglzdGF0dXNfZm4sCglkb25lX2ZuLAoJY2xrX2ZuLAoJZGF0YV9mbiwKCWFib3J0X2ZuLAoJcG9zdF9mbiwKICAgIH07CgogICAgeW91IHdpbGwgaGF2ZSB0byBpbXBsZW1lbnQgdGhlc2UgZnVuY3Rpb25zLCB3aGljaCBpcyB1c3VhbGx5IGJpdAogICAgYmFuZ2luZyBzb21lIGdwaW8uCgogICAgU2lnbmVkLW9mZi1ieTogRXJhbiBMaWJlcnR5IDxsaWJlcnR5QGV4dHJpY29tLmNvbT4KCmNvbW1pdCA1ZWNlOWVjOWY2Y2Q1Mjk1MGFiODQ4ZTJmZTQyMmRhY2YxZDNhMzM1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEFwciAxMyAxNDozMjo1NCAyMDA4IC0wNzAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWFkODYyMTY2YWEyNGQ2MmE2OWFhOWM3MDhmNmIyZjVjMGQyOGZiNwpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE1hciAyNiAyMDo0MToxNyAyMDA4ICswMTAwCgogICAgUGh5dGVjIFBoeWNvcmUtaS5NWDMxIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFBoeXRlYyBQaHljb3JlLWkuTVgzMSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBjYWViYzk1YmUzYjQyZTUxNDdiNWZhYzc2NzJhYzRiMjY5M2VmN2UxCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglXZWQgTWFyIDI2IDIwOjQxOjA5IDIwMDggKzAxMDAKCiAgICBteDMxIGxpdGVraXQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbXgzMSBsaXRla2l0IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGNkYWNlMDY2MTIwODc1NGE1MzAxOWVhMGRjN2I4MDNhMDQwZTA5MzkKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMjA6NDA6NDkgMjAwOCArMDEwMAoKICAgIGFkZCBhbiBpMmMgZHJpdmVyIGZvciBteDMxCgogICAgVGhpcyBwYXRjaCBhZGRzIGFuIGkyYyBkcml2ZXIgZm9yIEZyZWVzY2FsZSBpLk1YIHByb2Nlc3NvcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgOWI1NmY0ZjAzMDZmMzk0MGIwYWFmZDgyM2VkNmVjZmMyZDc1ZDZjNgpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE1hciAyNiAyMDo0MDo0MiAyMDA4ICswMTAwCgogICAgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA3ZWM2ODg2MmEyN2M4ZjZmNmQ1NjYyMjhkZThmNjcyNGQ5NjRhOTM5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEFwciAxMyAxNDoxOToyMyAyMDA4IC0wNzAwCgogICAgRml4IGNvbXBpbGUgZXJyb3IKCiAgICAuLi5hcyBzdWdnZXN0ZWQgYnkgUGV0ZXIgUGVhcnNlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MjUyZWQ5NTIwNGJkZjU1YmVjNWE5MGVhNjk4NjBiZjJmNzhjNjQzCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglXZWQgTWFyIDI2IDIwOjQwOjM2IDIwMDggKzAxMDAKCiAgICBTZXBhcmF0ZSBvbWFwMjR4eCBzcGVjaWZpYyBjb2RlIGZyb20gYXJtMTEzNgoKICAgIE1vdmUgb21hcDI0eHggY29kZSB0byBjcHUvYXJtMTEzNi9vbWFwMjR4eCwgcmVuYW1lIGluY2x1ZGUvYXNtLWFybS9hcmNoLWFybTExMzYKICAgIHRvIGNwdS9hcm0xMTM2L29tYXAyNHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAxZjFkODhkZDQwODE1MzMyZGYzMjk4MmU3MzlmMmRkZDJkYTZmZTFhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgSmFuIDI5IDE4OjIxOjA1IDIwMDggLTA1MDAKCiAgICBkaXNhYmxlIGNhY2hlcyBiZWZvcmUgYm9vdGluZyBhbiBhcHAgZm9yIEJsYWNrZmluIGFwcHMKCiAgICBJdCBpc24ndCBnZW5lcmFsbHkgc2F2ZSB0byBleGVjdXRlIGFwcGxpY2F0aW9ucyBvdXRzaWRlIG9mIFUtQm9vdCB3aXRoIGNhY2hlcwogICAgZW5hYmxlZCBkdWUgdG8gdGhlIHdheSB0aGUgQmxhY2tmaW4gcHJvY2Vzc29yIGhhbmRsZXMgY2FjaGVzIChyZXF1aXJlcwogICAgc29mdHdhcmUgYXNzaXN0YW5jZSkuICBUaGlzIHBhdGNoIGRpc2FibGVzIGNhY2hlcyBiZWZvcmUgYm9vdGluZyBhbiBFTEYgb3IKICAgIGp1c3QgYm9vdGluZyByYXcgY29kZS4gIFRoZSBwcmV2aW91cyBkaXNjdXNzaW9uIG9uIHRoZSBwYXRjaCB3YXMgdGhhdCB3ZQogICAgd2FudGVkIHRvIHVzZSB3ZWFrcyBpbnN0ZWFkLCBidXQgdGhhdCBwcm92ZWQgdG8gbm90IGJlIGZlYXNpYmxlIHdoZW4gbXVsdGlwbGUKICAgIHN5bWJvbHMgYXJlIGludm9sdmVkLCB3aGljaCBwdXRzIHVzIGJhY2sgYXQgdGhlIGlmZGVmIHNvbHV0aW9uLiAgSSd2ZQogICAgbWluaW1pemVkIHRoZSB1Z2xpbmVzcyBieSBtb3ZpbmcgdGhlIHNldHVwIHN0ZXAgb3V0c2lkZSBvZiB0aGUgbWFpbiBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZTZkZmVkNzA1ZWZhNDRlYmYwMGQyMWJiMTU4OGM2Y2NjOGYzYWQzMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMTMgMTA6MDM6NTQgMjAwOCAtMDcwMAoKICAgIHBwYzogR2V0IHJpZCBvZiB1bnVzZWQgbWFjaGluZSB0eXBlIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYWVlZDhkNzFhY2IzMjkwY2YyNDQ2ZjMxNmQ2YmE0MzdlNzg4MWM0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEFwciAxMyAwOTo1OToyNiAyMDA4IC0wNzAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc3NTRmMzNjNmZiN2EyYzA1MDM4OGQyMGJmMzg0NzAzODU1OGJkY2YKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEZlYiAyMSAxMzo1ODoxMSAyMDA4IC0wNTAwCgogICAgTE03MyBidWcgZml4IGZvciBuZWdhdGl2ZSB0ZW1wZXJhdHVyZXMgYW5kIGNsZWFudXAKCiAgICBXaGVuIHRoZSBMTTczIHRlbXBlcmF0dXJlIHNlbnNvciBtZWFzdXJlcyBhIHRlbXBlcmF0dXJlIGJlbG93IDAgQywgdGhlCiAgICBjdXJyZW50IGRyaXZlciBkb2VzIG5vdCBwZXJmb3JtIHNpZ24gZXh0ZW5zaW9uLCBzbyB0aGUgcmVzdWx0IHJldHVybmVkIGlzCiAgICA1MTIgQyB0b28gaGlnaC4gIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0sIGFuZCBkb2VzIGdlbmVyYWwgY2xlYW51cAogICAgb2YgdGhlIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgOTZlZjgzMWY3MTMyODlhZmJhMTlkYTBjOGY5MDVlOTlkYTJiMjNlMApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAzIDEzOjM2OjAyIDIwMDggKzAyMDAKCiAgICBjZmlfZmxhc2g6IFN1cHBvcnQgYnVmZmVyZWQgd3JpdGVzIG9uIG5vbi1zdGFuZGFyZCBTcGFuc2lvbiBOT1IgZmxhc2gKCiAgICBTb21lIE5PUiBmbGFzaCBjaGlwIGZyb20gU3BhbnNpb24sIGZvciBleGFtcGxlLCB0aGUgczI5d3MtbiBNaXJyb3JCaXQKICAgIHNlcmllcyByZXF1aXJlIGRpZmZlcmVudCBhZGRyZXNzZXMgZm9yIGJ1ZmZlcmVkIHdyaXRlIGNvbW1hbmRzLiBEZWZpbmUgYQogICAgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc3VwcG9ydCBidWZmZXJlZCB3cml0ZXMgb24gdGhvc2UgY2hpcHMuIEEgbW9yZQogICAgZWxlZ2FudCBzb2x1dGlvbiB3b3VsZCBiZSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCB0aG9zZSBjaGlwcyBieSBwYXJzaW5nCiAgICB0aGVpciBDRkkgcmVjb3JkcywgYnV0IHRoYXQgd291bGQgcmVxdWlyZSBpbnRyb2R1Y3Rpb24gb2YgYSBmaXh1cCB0YWJsZQogICAgaW50byB0aGUgY2ZpX2ZsYXNoIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgM2Y5YzU0MmQzZDY5YjFhMTBhNWUxOTNlNzc5MTMzYTA0NTRkMWY0NApBdXRob3I6IExlZSBOaXBwZXIgPGxlZS5uaXBwZXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAxMCAwOTozNTowNiAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogVXBkYXRlIERJTU0gZGF0YSBidXMgd2lkdGggdGVzdCB0byBzdXBwb3J0IDQwLWJpdCB3aWR0aAoKICAgIDMyLWJpdCB3aWRlIEVDQyBtZW1vcnkgbW9kdWxlcyByZXBvcnQgNDAtYml0IHdpZHRoLgogICAgQ2hhbmdlZCB0aGUgRElNTSBkYXRhIGJ1cyB3aWR0aCB0ZXN0IHRvICdsZXNzIHRoYW4gNjQnIGluc3RlYWQgb2YgJ2VxdWFsIDMyJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMZWUgTmlwcGVyIDxsZWUubmlwcGVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmYjVhNjg5ZDgyMmNhNjFlODE0YmQ1MjNmYzkzMGFmMzM1MjQyZmEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMTc6MDU6MTIgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgYnVnIG9mIHNlcmRlcyBpbml0aWFsaXphdGlvbgoKICAgIEN1cnJlbnRseSB0aGUgc2VyZGVzIHdpbGwgbm90IGJlIGluaXRpYWxpemF0ZWQgZHVlIHRvIHRoZQogICAgcGFydGlkJ3MgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjAwMDc4NDgxOGYwNDNkYjdjYTYwZTI4NDZhNzJkMDk3NzY2Yjg5NApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAzIDE2OjI4OjI5IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIFNBVEEgY2xvY2sgc2V0dGluZyBvZiA4Mzd4IHRhcmdldHMKCiAgICBDdXJyZW50bHkgdGhlIFNBVEEgY29udHJvbGxlciBjbG9jayBpcyBjb25maWd1cmVkIGFzIENTQiBjbG9jaywKICAgIHVzdWFsbHkgdGhlIENTQiBjbG9jayBpcyA0MDAvMzMzLzI2Nk1Iei4KCiAgICBIb3dldmVyLCBUaGUgU0FUQSBJUCBibG9jayBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gb3BlcmF0ZSB1cCB0bwogICAgMjAwIE1IeiBhcyBzdGF0ZWQgaW4gdGhlIEhXIHNwZWMuCgogICAgVGhlIGJ1ZyBpcyByZXBvcnRlZCBieSBKb2UgRCdBYmJyYWNjaW8gPGxqZDAxNUBmcmVlc2NhbGUuY29tPgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIFNBVEEgY2xvY2sgYXMgaGFsZiBvZiBDU0IgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWFjNGYzMjBiZjBiNTkzYWEwYTc0MWYyZDY0OWE4ZWNlODgzODY3MgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBcHIgMiAxMzo0MToyMSAyMDA4ICswMjAwCgogICAgbXBjODM3eGVyZGI6IEZpeCB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZmR0X2ZpeHVwX2RyX3VzYicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5N2IzZWNiNTc1YTkyZmEzNGMxNzY1MjI5ZGJjMDZmMmI2NjJmMTM5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEFwciA5IDA0OjIwOjU3IDIwMDggLTA1MDAKCiAgICA4NXh4OiBGaXggZGV0ZWN0aW9uIG9mIE1QIGNwdSBzcGluIHVwCgogICAgV2Ugd2VyZSBsb29raW5nIGF0IHRoZSB3cm9uZyBtZW1vcnkgb2Zmc2V0IHRvIGRldGVybWluZSBvZiBhIHNlY29uZGFyeQogICAgY3B1IGhhZCBiZWVuIHNwdW4gdXAgb3Igbm90LiAgQWxzbyBhZGRlZCBhIHdhcm5pbmcgbWVzc2FnZSBpZiB0aGUKICAgIGFsbCB0aGUgc2Vjb25kYXJ5IGNwdXMgd2UgZXhwZWN0IGRvbid0IHNwaW4gdXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmM2UwNGJkYzNmMzYwYzY2ODAxYTkwNDg5NTZlNjFlNDFhMTZlZGJhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciA4IDEwOjQ1OjUwIDIwMDggLTA1MDAKCiAgICA4NXh4OiBVc2UgU1ZSX1NPQ19WRVIgaW5zdGVhZCBvZiBTVlJfVkVSCgogICAgVGhlIHJlY2VudCBjaGFuZ2UgaW50cm9kdWNlZCBieSAnVXBkYXRlIFNWUiBudW1iZXJzIHRvIGV4cGFuZCBzdXBwb3J0JwogICAgbm93IHJlcXVpcmVzIHRoYXQgd2UgdXNlIFNWUl9TT0NfVkVSIGluc3RlYWQgb2YgU1ZSX1ZFUiBpZiB3ZSB3YW50CiAgICB0byBjb21wYXJlIGFnYWluc3QgYSBwYXJ0aWN1bGFyIHByb2Nlc3NvciBpZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDViMjA1MmU1ZjVmY2NlNWRiZDRkMjc1MGEyOWMwZTQ1YmNlODA2ZTcKQXV0aG9yOiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgpEYXRlOglGcmkgQXByIDExIDEwOjAwOjM1IDIwMDggLTA0MDAKCiAgICBwcGM0eHg6IEZpeCBwb3dlciBtZ3QgZGVmaW5pdGlvbnMgZm9yIFBQQzQ0MAoKICAgIENvcnJlY3RlZCBEQ1IgYWRkcmVzc2VzIG9mIFBQQzQ0MEVQIHBvd2VyIG1hbmFnZW1lbnQgcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+Cgpjb21taXQgOTUwYTM5MjQ2NGU2MTZiNDU5MGJjNDUwMWJlNDZlMmQ3ZDE2MmRlYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMTEgMTU6MTE6MjYgMjAwOCArMDIwMAoKICAgIFJldmVydCBtZXJnZSBvZiBnaXQ6Ly93d3cuZGVueC5kZS9naXQvdS1ib290LWFybSwgY29tbWl0IDYyNDc5YjE4OgoKICAgIFJldmVydGluZyBiZWNhbWUgbmVjZXNzYXJ5IGFmdGVyIGl0IHR1cm5lZCBvdXQgdGhhdCB0aGUgcGF0Y2hlcyBpbgogICAgdGhlIHUtYm9vdC1hcm0gcmVwbyB3ZXJlIG1vZGlmaWVkLCBhbmQgaW4gc29tZSBjYXNlcyBjb3JydXB0ZWQuCgogICAgVGhpcyByZXZlcnRzIHRoZSBmb2xsb3dpbmcgY29tbWl0czoKCgkwNjZiZWJkNjM1M2UzM2FmM2FkZWZjMzQwNDU2MDg3MTY5OWU5OTYxCgk3YTgzN2I3MzEwMTY2YWU4ZmM4YjhkNjZkN2VmMDFiNjBhODBmOWQ2CgljODhhZTIwNTgwYjJiMDE0ODdiNGNkY2M4YjJhMTEzZjU1MWFlZTM2CglhMTQ3ZTU2ZjAzODcxYmJhNGYwNTA1OGQ1ZTA0Y2U3ZGViMDEwYjA0CglkNjY3NGUwZTJhNmExZjAzMzk0NWY3ODgzODU2NjIxMGQzZjI4Yzk1Cgk4Yzg0NjNjY2U0NGQ4NDllMzc3NDQ3NDliMzJkMzhlMWRmYjEyZTUwCgljOThiNDdhZDI0YjJkOTFmNDFjMDlhM2Q2MmQ3ZjcwYWQ4NGY0YjdkCgk4YmY2OWQ4MTc4MjYxOTE4NzkzM2E2MDVmMWE5NWVlMWQwNjk0NzhkCgk4YzE2Y2IwZDNiOTcxZjQ2ZmJlNzdjMDcyNjY0YzBmMmRjZDQ0NzFkCglhNTc0YTczODUyYTUyNzc3OTIzNGU3M2UxN2U3NTk3ZmQ4MTI4ODgyCgkxMzc3YjU1ODNhNDgwMjFkOTgzZTFmZDU2NWY3ZDQwYzg5ZTg0ZDYzCgkxNzA0ZGMyMDkxN2I0ZjcxZTM3M2UyYzg4ODQ5N2VlNjY2ZDQwMzgwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2NGU1NDFmNGMxYjQxM2RkODRjN2U0MDlmNWMyYmYzMjhkYjJhYzEzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXByIDExIDA3OjAyOjI5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLaWxhdWVhIGRlZmNvbmZpZyB0byB1c2UgZGV2aWNlLXRyZWUgYm9vdGluZyBhcyBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCByZXdvcmtzIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IG9uIEtpbGF1ZWEvSGFsZWFrYWxhLiBOb3cKICAgICJuZXRfbmZzIiBmb3IgZXhtYXBsZSB1c2VzIHRoZSBkZXZpY2UtdHJlZSBzdHlsZSBib290aW5nIGZvcm1lcmx5IGtub3cKICAgIGFzICJuZXRfbmZzX2ZkdCIuIEFsc28gdGhlIGFkZHJlc3NlcyBpbiBSQU0gd2VyZSBjaGFuZ2VkIGJlY2F1c2Ugb2YgdGhlCiAgICBuZXcgaW1hZ2UgYm9vdGluZyBzdXBwb3J0LCB3aGljaCBjaGVjayBmb3IgaW1hZ2Ugb3ZlcndyaXRpbmcuIFNvIHRoZQogICAgYWRkcmVzc2VzIG5lZWRlZCB0b2dlZXQgYWRqdXN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1NmY1ZGFjZGEzODEwYjA5NGI5NGJjY2VmZmQzY2U2YzdmZjlhMjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgOSAxMTo1ODowMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggQ2FueW9ubGFuZHMgZGVmYXVsdCBlbnZpcm9ubWVudCB0byB3b3JrIHdpdGggbmV3IGltYWdlIHN1cHBvcnQKCiAgICBTaW5jZSB0aGUgbmV3IGltYWdlIHN1cHBvcnQgY2hlY2tzIGZvciBpbWFnZSBvdmVyd3JpdGluZywgdGhlIGRlZmF1bHQKICAgIGVudmlyb25tZW50IG5lZWRzIHRvIGdldCBhZGp1c3RlZCB0byB1c2UgY29ycmVjdCBhZGRyZXNzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmYzZjN2I2NDdkYmE3YWI4Njc0OTYxNmYwZTllNTc0MGRlZWQ0MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgOSAxMTo1NDoxMSAyMDA4ICswMjAwCgogICAgcHBjOiBSZXZlcnQgcGF0Y2ggNzA0MzFlOGEgdGhhdCB1c2VkIF9zdGFydCBpbnN0ZWFkIG9mIENGR19NT05JVE9SX0JBU0UKCiAgICBUaGUgcGF0Y2ggNzA0MzFlOGE3MzkzYjZiNzkzZjc3OTU3Zjk1Yjk5OWZjOWEyNjliOCAoTWFrZSBNUEM4M3h4IG9uZSBzdGVwCiAgICBjbG9zZXIgdG8gZnVsbCByZWxvY2F0aW9uLikgZG9lc24ndCB1c2UgQ0ZHX01PTklUT1JfQkFTRSBhbnltb3JlLiBCdXQKICAgIG9uIDR4eCBzeXN0ZW1zIF9zdGFydCBjdXJyZW50bHkgY2Fubm90IGJlIHVzZWQgZm9yIHRoaXMgY2FsY3VsYXRpb24uCiAgICBTbyByZXZlcnQgYmFjayB0byB0aGUgb3JpZ2luYWwgdmVyc2lvbiBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmOTEzNzRmNjVlYWU4YjQyY2FjMzI5ZTA2YmExYzU0NzI4Mjc4ZWZiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjQ5OjUyIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBTb3J0IG1pY3JvYmxhemUgYm9hcmRzIGluIE1BS0VBTEwgc2NyaXB0Cgpjb21taXQgNjIwMzJkZWI3MjE0YzZkOWI0Mzk2Mjk3ZTJhYWE1NTliYzJmODQ5NQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTo1ODo0NSAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogY2xlYW4gbWljcm9ibGF6ZV9jb25maWcubWsKCiAgICBGTEFHUyBhcmUgZ2VuZXJhdGVkIGJ5IFUtQk9PVCBnZW5lcmF0b3IuCiAgICBCb2FyZCBzcGVjaWZpYyBGTEFHUyBhcmUgaW4gYm9hcmQgZGlyZWN0b3J5CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGNmNWM2NzljYTA0YTZiNTRiZjUzYTU1YjhiOWMyOTMzNWIzODcyODcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDc6MTkgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IHh1cHYycCBmaXggY29uZmlnIGZpbGUgZm9yIHN1cHBvcnRpbmcgRkRUCgpjb21taXQgMTg4ZGMxNmIxODkxNDM1NzNiMWVkOTBlNTg0YmY4NjZkNzVjZGQxMgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTo1MzowMiAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogbWw0MDEgZml4IGNvbmZpZyBmaWxlIGZvciBzdXBwb3J0aW5nIEZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCA0YzZhNmYwMmUyMzkyMzYyNjEzMzM3NTk5OTdlZWFmODZiMzBiNTRjCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDExOjIyOjQ4IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBtbDQwMSAtIGFkZCBpZmRlZiBmb3IgR1BJTwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBhZjdhZTFhNDExYzY3ZWU5ZDE3YTY2ZDE3Y2U1MGIzNzRmM2RkNGU3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjEzOjAzIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBjbGVhbiB1YXJ0MTY1NTAgYW5kIHVhcnRsaXRlIGhhbmRsaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDBiMjBmMjUwODc3NDQxNDYwZmI3OWQ3MjE5Mjk1NGFiZTg0OTg4MzQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTE6MDg6MzEgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IEFkZCBFbWFjbGl0ZSBkcml2ZXIgdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgODY4Y2RlNTMxMGY4ODIzNGI3NzQ4NzhlNGYwNmU3OWRmMTBhODhiMwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTowODowMSAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogQWRkIEVtYWMgZHJpdmVyIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDZmOTYxYjRmNDYxZjZjYmI4M2E0NjdkNDY4YTAyZTYwNzhjMmIzMjcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDI6MjkgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IGFkZCBFbWFjIGV0aGVybmV0IGRyaXZlcgoKY29tbWl0IDg5YzUzODkxYjE4Y2JhZmQyOWFiODkzMWI0MGUyN2FkMjMxYjYwODUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDE6NTYgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IGFkZCBFbWFjbGl0ZSBldGhlcm5ldCBkcml2ZXIKCmNvbW1pdCBlNTg0NWUyMTIyNGRiZTJmZTQ3YjExZjFjZGY5NWRlN2Y4NGJlN2NiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDExOjA0OjAxIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBNTDQwMSBhbmQgWFVQVjJQIHJlbW92ZSBlbWFjIGFuZCBlbWFjbGl0ZSByZWZlcmVuY2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgNmJmM2U5ODJhZWZkYjFkYWY5ZjU0NjJkNDgyYzhmOWQxY2M5MGE1NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMDo1OTozMiAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogcmVtb3ZlIG9sZCBzZXR0aW5nIGZvciBlbWFjIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBjZDJiNzVlZmI5Y2MwMzdjNzRlY2VlOWIzNTg2ZjliZjllMWQ0ZTU3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEwOjU4OjE1IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBDbGVhbiBNYWtlZmlsZSBmcm9tIGFuY2llbnQgZW1hYyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgYWI2OGY5MjFkOWM3NDE4MzBmNzIxYzNkODc5YzEzYTBjNTU5NzE4MwpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDoyMDo0MyAyMDA4ICswMTAwCgogICAgU1BBUkMvTEVPTjI6IGFkZGVkIHN1cHBvcnQgZm9yIEdhaXNsZXIgc2ltdWxhdG9yIEdSU0lNL1RTSU0gZm9yIFNQQVJDL0xFT04yIHRhcmdldHMuIFNlZSB3d3cuZ2Fpc2xlci5jb20gZm9yIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA2ZWQ4YTQzYTE5YmIwMjc1NTAxYmMyODYwMDdkYWFmYTkyMzU1MmNmCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIzOjM4OjQ4IDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogYWRkZWQgc3VwcG9ydCBmb3IgR1ItQ1BDSS1BWDIwMDAgRlBHQSBBWCBib2FyZC4gVGhlIEZQR0EgaXMgZXhjaGFuZ2VhYmxlIGJ1dCBhIHN0YW5kYXJkIExFT04zIGRlc2lnbiBpcyBhc3N1bWVkLiBTZWUgd3d3LmdhaXNsZXIuY29tIGZvciBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgNjk0MDM4M2Q5ZWMxYmZlMmYxM2UzMzllNmY3MjNlOGQzNGFmMmIxMgpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMzozNDo0NyAyMDA4ICswMTAwCgogICAgU1BBUkMvTEVPTjM6IGFkZGVkIHN1cHBvcnQgZm9yIEFsdGVyYSBOSU9TIERldmVsb3BtZW50IGtpdCAoU1RSQVRJWCBJSSBFZGl0aW9uKSB3aXRoIEdSTElCIHRlbXBsYXRlIGRlc2lnbi4gU2VlIHd3dy5nYWlzbGVyLmNvbSBmb3IgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDgyM2VkZDhhNjZlZDUwYWY1YWFiYTBjNzk1NjdmNjcwNjFlNGQ3OWEKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTA6MDY6NTIgMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBhZGRlZCBzdXBwb3J0IGZvciBHYWlzbGVyIEdSU0lNL1RTSU0yIFNQQVJDL0xFT04zIHNpbXVsYXRvcm4uIFNlZSB3d3cuZ2Fpc2xlci5jb20gZm9yIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA3MWQ3ZTRjMDQ4OWU1ZWQ4ZmM2OTM4MjIzNmFhYTJhMWU1MTBjMTM1CkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIzOjI2OjQ4IDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogYWRkZWQgc3VwcG9ydCBmb3IgR1ItWEMzUy0xNTAwIGJvYXJkIHdpdGggR1JMSUIgdGVtcGxhdGUgZGVzaWduLiBTZWUgd3d3LmdhaXNsZXIuY29tIGZvciBib2FyZCBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgYjMzMDk5MGMyZjM2ZWU0YThiYjMxODM2MGUxYzhiYTk2NTI2OWFiNgpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDowMDozMyAyMDA4ICswMTAwCgogICAgU1BBUkM6IEFkZGVkIHN1cHBvcnQgZm9yIFNQQVJDIExFT04yIFNPQyBQcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDJhMmZhNzk3ZTYzYjFlM2NkNGQ1NzAzMThjYTVmYmY4NzIzZWY1M2EKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjM6MDA6MzggMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBBZGRlZCBBTUJBIEJ1cyBQbHVnJlBsYXkgaW5mb3JtYXRpb24gcHJpbnQgY29tbWFuZCAoYW1iYXBwKS4gSXQgY2FuIHByaW50IGF2YWlsYWJsZSBjb3JlcyAodHlwZTogQUhCIE1hc3RlciwgQUhCIFNsYXZlLCBBUEIgU2xhdmUpLCB0aGVpciBhZGRyZXNzIHJhbmdlcywgSVJRIG51bWJlciBhbmQgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgMWU5YTE2NGUyMjk3NjkzMzAwMmM1ZTRiMGI3OWIwOWZjZWRlOWNkNApBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1MToyOSAyMDA4ICswMTAwCgogICAgU1BBUkM6IEFkZGVkIHN1cHBvcnQgZm9yIFNQQVJDIExFT04zIFNPQyBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IGJmM2Q4YjMxMTY5NTQ2ZmNkZGI0NzM3MzkxZTE4OTNmYjEyZDAzM2EKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMDg6Mjk6MjYgMjAwOCArMDEwMAoKICAgIFNQQVJDOiBhZGRlZCBTUEFSQyBzdXBwb3J0IGZvciBuZXcgdWltYWdlIGluIGNvbW1vbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCAwMGFiMzJjODU0MDVhNGZlNjVmZDQxMjgyNDMwODYyMTBmYzkwYTIxCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjM2OjAzIDIwMDggKzAxMDAKCiAgICBTUEFSQzogYWRkZWQgU1BBUkMgYm9hcmQgaW5mb3JtYXRpb24gdG8gdGhlIGNvbW1hbmQgYmRpbmZvLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCBjMmYwMmRhMjFhM2YzN2YwODc4NTU0ZWViYzc4NWUwNGZkYzRlMTI4CkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglGcmkgTWFyIDI4IDA5OjQ3OjAwIDIwMDggKzAxMDAKCiAgICBTUEFSQzogQWRkZWQgZ2VuZXJpYyBzdXBwb3J0IGZvciBTUEFSQyBhcmNoaXRlY3R1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IGU1NGVjMGYwMTY4MDNlNGQ5NTI0ZmY3MWY3OTcxYmRhMGM1MWIyODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMyAxNDo1MDozNCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggNHh4IGVuZXQgZHJpdmVyIHRvIHN1cHBvcnQgNDYwR1QgRU1BQzIrMwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIFJHTUlJIHNldHVwIG9mIHRoZSA0NjBHVC4gVGhlIDQ2MEdUCiAgICBoYXMgMiBSR01JSSBpbnN0YW5jZXMgYW5kIHdlIG5lZWQgdG8gY29uZmlndXJlIHRoZSAybmQgUkdNSUkgaW5zdGFuY2UKICAgIGZvciB0aGUgRU1BQzIrMyBjaGFubmVscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzJhNTQ1Y2UzM2IyNmQ4MDMzN2Y4MGI1MzM4Mjg4MzkyNDlmYjFjOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBcHIgMiAwODowMzo1NiAyMDA4ICswMjAwCgogICAgTVBDOHh4OiBGaXggbGliZmR0IHN1cHBvcnQgaW50cm9kdWNlZCBpbiBjb21taXQgNzdmZjdiNzQKCiAgICBmZHQuYzogSW4gZnVuY3Rpb24gJ2Z0X2NwdV9zZXR1cCc6CiAgICBmZHQuYzozMzogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2RvX2ZpeHVwX2J5X3Byb3BfdTMyJwogICAgZmR0LmM6Mzk6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdkb19maXh1cF9ieV9jb21wYXRfdTMyJwogICAgZmR0LmM6NDM6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdmZHRfZml4dXBfZXRoZXJuZXQnCiAgICBmZHQuYzo0NTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2ZkdF9maXh1cF9tZW1vcnknCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0YWJkODQ0ZDhlYjEwODczNmUxY2Y4ZmJmM2RiZjYxZjJkNWZjMTFiCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDMxIDIwOjQ1OjU2IDIwMDggLTA1MDAKCiAgICBGaXggZmR0IHNldCBjb21tYW5kIHRvIGNvbmZvcm0gdG8gZHRzIHNwZWMKCiAgICBUaGUgZmR0IHNldCBjb21tYW5kIHdhcyB0cmVhdGluZyBwcm9wZXJ0aWVzIHNwZWNpZmllZCBhcyA8MDA+IGFuZCA8MDAxMT4KICAgIGFzIGJ5dGUgc3RyZWFtcywgcmF0aGVyIHRoYW4gYXMgYW4gYXJyYXkgb2YgY2VsbHMuCUFzIHdlIGFscmVhZHkgaGF2ZQogICAgc3ludGF4IGZvciBleHByZXNzaW5nIHRoZSBkZXNpcmUgZm9yIGEgc3RyZWFtIG9mIGJ5dGVzIChbIHh4IHh4IC4uLl0pLAogICAgd2Ugc2hvdWxkIHVzZSB0aGUgPD4gc3ludGF4IHRvIGRlc2NyaWJlIGFycmF5cyBvZiBjZWxscywgd2hpY2ggYXJlIGFsd2F5cwogICAgMzItYml0cyBwZXIgZWxlbWVudC4gIElmIHdlIGltYWdpbmUgdGhpcyBsaWtlbHkgKElNSE8pIHNjZW5hcmlvOgoKICAgID4gZmR0IHNldCAvZXRoZXJuZXQtcGh5QDEgcmVnIDwxPgoKICAgIFdpdGggdGhlIG9sZCBjb2RlLCB0aGlzIHdvdWxkIGNyZWF0ZSBhIGJhZCBmZHQsIHNpbmNlIHRoZSByZWcgY2VsbCB3b3VsZCBiZQogICAgbWFkZSB0byBiZSBvbmUgYnl0ZSBpbiBsZW5ndGguICBCdXQgdGhlIGNlbGwgbXVzdCBiZSA0IGJ5dGVzLCBzbyB0aGlzIHdvdWxkCiAgICBicmVhayBteXN0ZXJpb3VzbHkuCgogICAgQWxzbywgdGhlIGR0cyBzcGVjIGNhbGxzIGZvciBjb25zdGFudHMgaW5zaWRlIHRoZSBhbmdsZSBicmFja2V0cyAoPD4pCiAgICB0byBjb25mb3JtIHRvIEMgY29uc3RhbnQgc3RhbmRhcmRzIGFzIHRoZXkgcGVydGFpbiB0byBiYXNlLgogICAgVGFrZSB0aGlzIHNjZW5hcmlvOgoKICAgID4gZmR0IHNldCAvZXRoZXJuZXRAZjAwIHJlZyA8MHhlMjUwMDAwXCAweDEwMDA+CgogICAgVGhlIG9sZCBmZHQgY29tbWFuZCB3b3VsZCBjb21wbGFpbiB0aGF0IGl0IGNvdWxkbid0IHBhcnNlIHRoYXQuICBPciwgaWYgeW91CiAgICB3YW50ZWQgdG8gc3BlY2lmeSB0aGF0IGEgY2VydGFpbiBjbG9jayByYW4gYXQgMzMgTUh6LCB5b3UnZCBiZSByZXF1aXJlZCB0bwogICAgZG8gdGhpczoKCiAgICA+IGZkdCBzZXQgL215ZGV2IGNsb2NrIDwxZjc4YTQwPgoKICAgIFdoZXJlYXMgdGhlIG5ldyBjb2RlIHdpbGwgYWNjZXB0IGRlY2ltYWwgbnVtYmVycy4KCiAgICBXaGlsZSBJIHdhcyBpbiB0aGVyZSwgSSBleHRlbmRlZCB0aGUgZmR0IGNvbW1hbmQgcGFyc2VyIHRvIGhhbmRsZSBwcm9wZXJ0eQogICAgc3RyaW5ncyB3aGljaCBhcmUgc3BsaXQgYWNyb3NzIG11bHRpcGxlIGFyZ3VtZW50czoKCiAgICA+IGZkdCBzZXQgL2V0aGVybmV0QGYwMCBpbnRlcnJ1cHRzIDwgMzMgMiAzNCAyIDM2IDIgPgogICAgPiBmZHQgcCAvZXRoZXJuZXRAZjAwCiAgICBldGhlcm5ldEBmMDAgewoJaW50ZXJydXB0cyA9IDwweDIxIDB4MiAweDIyIDB4MiAweDI0IDB4Mj47CiAgICB9OwoKICAgIExhc3RseSwgdGhlIGZkdCBwcmludCBjb2RlIHdhcyByZWFycmFuZ2VkIHNsaWdodGx5IHRvIHByaW50IGFycmF5cyBvZiBjZWxscwogICAgaWYgdGhlIGxlbmd0aCBvZiB0aGUgcHJvcGVydHkgaXMgYSBtdWx0aXBsZSBvZiA0IGJ5dGVzLCBhbmQgdG8gbm90IHByaW50CiAgICBsZWFkaW5nIHplcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYzI5MjZhYmRkN2RiODkyOTZhOGNjN2YyMjRkZDlkNWQ0ZTM3YTU2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDIgMDg6Mzk6MzMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2FueW9ubGFuZHM6IEluaXQgU0FUQS9QQ0llIHBvcnQgY29ycmVjdGx5CgogICAgQ2FueW9ubGFuZHMgKDQ2MEVYKSBzaGFyZXMgdGhlIGZpcnN0IFBDSWUgaW50ZXJmYWNlIHdpdGggdGhlIFNvQyBTQVRBCiAgICBpbnRlcmZhY2UuIFRoaXMgdXNhZ2UgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUganVtcGVyIEo2LiBUaGlzIHBhdGNoCiAgICBjb3JyZWN0bHkgY29uZmlndXJlcyB0aGUgU0FUQS9QQ0llIFBIWSBmb3IgU0FUQSB1c2FnZSB3aGVuIHRoaXMganVtcGVyCiAgICBpcyBpbnN0YWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmZTI5NDZmMTk4NDgxMjU0YTZlZTk2MDBkNzQ1NmI4MzE2YTQwODMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDE3OjM3OjQ5IDIwMDggLTA1MDAKCiAgICByZW1vdmUgcmVtYWluaW5nIENPTkZJR19PRl9IQVNfe1VCT09UX0VOVixCRF9UfSBjb2RlCgogICAgZmluaXNoIG9mZiB3aGF0IGNvbW1pdCA0M2RkZDljODIwZmVjNDQ4MTYxODhmNTMzNDZiNDY0ZTIwYjMxNDJkLAogICAgIlJlbW92ZSBkZXByZWNhdGVkIENPTkZJR19PRl9IQVNfVUJPT1RfRU5WIGFuZCBDT05GSUdfT0ZfSEFTX0JEX1QiCiAgICBzdGFydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjU4NzNmMTczMmI5MmEyNTY5MGUxNTEzYjkwZGZiMGQ2NDRmNjY5NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBBcHIgMSAwNzozMDo1MSAyMDA4ICswMjAwCgogICAgZGF0YWZsYXNoOiBNb3ZlIENPTkZJR19IQVNfREFUQUZMQVNIIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyZDkzNGVhNTFmMjc2NTIyYjUzMmY4NzBhODIwZTg0NGZmNDgwYjViCkF1dGhvcjogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxNToyOTo0NSAyMDA4ICswMTAwCgogICAgQWRkIFZpdGVzc2UgODYwMSBzdXBwb3J0IHRvIFRTRUMgZHJpdmVyCgogICAgQWRkIHBoeV9pbmZvIGZvciBWaXRlc3NlIFZTQzg2MDEuCiAgICBBZGQgY29uZmlnIG9wdGlvbiwgQ0ZHX1ZTQzg2MDFfU0tFV0ZJWCwgdG8gZW5hYmxlIFJHTUlJIHNrZXcgdGltaW5nIGNvbXBlbnNhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgogICAgUmV2aWV3ZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNlYWM2NDAyYTUwOGIwZjY4YTIxY2M5Y2JjMmNjNDkzNDdkZTBjMzEKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMTQ6MjU6MDAgMjAwOCArMDAwMAoKICAgIFNQQVJDOiBhZGRlZCBTTUM5MTExMSBkcml2ZXIgaW4gYW5kIG91dCBtYWNyb3MgZm9yIExFT04gcHJvY2Vzc29ycy4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIFNQQVJDL0xFT04gcHJvY2Vzc29ycyBhYmxlIHRvIHJlYWQgYW5kIHdyaXRlCiAgICB0byB0aGUgU01DOTExMTEgY2hpcCB1c2luZyB0aGUgY2hpcCBleHRlcm5hbCBJL08gYnVzIG9mIHRoZSBtZW1vcnkKICAgIGNvbnRyb2xsZXIuIFRoaXMgcGF0Y2hzIGRlZmluZXMgdGhlIHN0YW5kYXJkIGluIGFuZCBvdXQgbWFjcm9zCiAgICBleHBlY3RlZCBieSB0aGUgU01DOTExMSBkcml2ZXIuCgogICAgVG8gYWNjZXNzIHRoYXQgSS9PIGJ1cyBvbmUgbXVzdCBzZXQgdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyCiAgICAoTUNUUkwgb3IgRlRNQ1RSTCkgY29ycmVjdGx5LiBJdCBpcyBhc3N1bWVkIHRoYXQgdGhlIHVzZXIgc2V0cwogICAgdXAgdGhpcyBjb3JyZWN0bHkgd2hlbiB0aGUgb3RoZXIgTUNUUkwgcGFyYW1ldGVycyBhcmUgc2V0IHVwLiBJdAogICAgY2FuIGJlIHNldCB1cCBmcm9tIHRoZSBib2FyZCBjb25maWd1cmF0aW9uIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgM2NhN2M1NThlYmEzNjMzMjU1NmJjNDcwZDQ1ZTJmNWQ0MmJkMGNhNgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTg6NTI6MzQgMjAwOCArMDEwMAoKICAgIEFkZCBtYWludGFpbmVyc2hpcCBpbmZvcm1hdGlvbiBmb3IgQVQ5MUNBUDlBREsgYW5kIEFUOTFTQU05MjYwRUsgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA0ZTAzZGRlODRkZDJjOTFlMzI3Y2RjMjNhZTExOWQ0MzI1NTlhN2EzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIE1hciAzMSAyMTozMTowNCAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjBFSzogTW92ZSBDT05GSUdfQ01EX05BTkQgdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDAxNzZkNDNlNzU5YTZlMDBjYWNjODVlZmYyNmZkNjBmNzRiNGY2YjcKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDE4OjUyOjMzIDIwMDggKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQVQ5MVNBTTkyNjBFSwoKICAgIFN1cHBvcnQgZm9yIGJvb3RpbmcgZnJvbSBpbnRlcm5hbCBEYXRhRmxhc2gsIGV4dGVybmFsIERhdGFGbGFzaCBjYXJkCiAgICBvciBOQU5EIGZsYXNoIGlzIGF2YWlsYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDE3NjJmMTNiNGFhYjg4YjY4NWIxNzIyZjE3ZGFkYTI0Nzk0NTYyNGIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gTWFyIDMxIDIxOjIwOjQ5IDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTogTW92ZSBDT05GSUdfSEFTX0RBVEFGTEFTSCB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzYxNzEyMTg4YjM1MzQ5NGRlZmIyYjY0NDQ5MWZmNzNkMGRhYWE2ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMjE6MTI6MTcgMjAwOCArMDIwMAoKICAgIEFUOTFDQVA5QURLOiBNb3ZlIENPTkZJR19DTURfTkFORCB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTgzYzFkYjA0YzFkZDBmOTJlMDJmMDZkMjlmMGM2NWEzZDlhMjY4NwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMjA6NTI6MzIgMjAwOCArMDEwMAoKICAgIFBvcnQgQVQ5MUNBUDkgdG8gdGhlIG5ldyBoZWFkZXJzCgogICAgQWRhcHQgdGhlIGV4aXN0aW5nIEFUOTFDQVA5IGNvZGUgdG8gdGhlIG5ldyBoZWFkZXJzIGFuZCBBUElzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgMTc3ZThhNWFjODFiYmM1MzFhMWQ1NGFiZGI0N2YyODYwMjY2YzNhYQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTk6NTI6MzEgMjAwOCArMDEwMAoKICAgIEZpbmlzaCBoZWFkZXIgZmlsZXMgcmV3b3JraW5nCgogICAgUmVwbGFjZSBBVDkxQ0FQOS5oIGZpbGUgd2l0aCBzZXZlcmFsIHNwbGl0dGVkIGhlYWRlciBmaWxlcyBjb21pbmcKICAgIGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBUaGlzIGlzIHBhcnQgMiBvZiB0aGUgcmVwbGFjZW1lbnQ6IG1vcmUgaGVhZGVyIGltcG9ydHMgYW5kIGVkaXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNmQxZGJiYmY5ZmRmNzI3Mzg0MDAyZTU1M2U2MTVjMTVkOGI5NjdmNApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTk6NTI6MzAgMjAwOCArMDEwMAoKICAgIEltcG9ydCBzZXZlcmFsIGhlYWRlciBmaWxlcyBmcm9tIExpbnV4CgogICAgUmVwbGFjZSBBVDkxQ0FQOS5oIGZpbGUgd2l0aCBzZXZlcmFsIHNwbGl0dGVkIGhlYWRlciBmaWxlcyBjb21pbmcKICAgIGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBUaGlzIGlzIHBhcnQgMSBvZiB0aGUgcmVwbGFjZW1lbnQ6IHByaXN0aW5lIGhlYWRlciBmaWxlcyBpbXBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBhOGE3OGYyZDk5ZGMxYmQzMGRjMzU5NWRhMTE4NTM5YjUwNmM2MTE4CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAyMDo1MjoyOCAyMDA4ICswMTAwCgogICAgTW92ZSBhdDkxY2FwOSBzcGVjaWZpYyBmaWxlcyB0byBhdDkxc2FtOSBkaXJlY3RvcnkKCiAgICBBVDkxQ0FQOSBhbmQgQVQ5MVNBTTkgU29DcyBhcmUgdmVyeSBjbG9zZSBoYXJkd2FyZSB3aXNlLCBzbyBhCiAgICBjb21tb24gaW5mcmFzdHJ1Y3R1cmUgY2FuIGJlIHVzZWQuIExldCB0aGlzIGluZnJhc3RydWN0dXJlIGJlCiAgICBuYW1lZCBhZnRlciB0aGUgQVQ5MVNBTTkgZmFtaWx5LCBhbmQgbW92ZSB0aGUgZXhpc3RpbmcgQVQ5MUNBUDkKICAgIGZpbGVzIHRvIHRoZSBuZXcgcGxhY2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA2MTEwNmE1NjU4NzBmZjUwM2Y5MmIyNTFiOTRiZDdhZmVmODg5YTA0CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAyMTo1MjoyNyAyMDA4ICswMTAwCgogICAgVXNlIHRpbWVyX2luaXQoKSBpbnN0ZWFkIG9mIGJvYXJkIHN1cHBsaWVkIGludGVycnVwdF9pbml0KCkKCiAgICBUaGUgdGltZXIgb24gQVQ5MUNBUDkvQVQ5MVNBTTkgaXMgc3VwcGxpZWQgYnkgdGhlIFNvQywgYW5kIG5vdCBieQogICAgdGhlIGJvYXJkLCBzbyB1c2UgdGltZXJfaW5pdCgpIGluc3RlYWQgb2YgaW50ZXJydXB0X2luaXQoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDU2MDRlMjE3OGM1MjE4ZmJmZGJhMmU0MjkzY2E3NjUyZTgyOWFjMjUKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDIxOjUyOjM2IDIwMDggKzAxMDAKCiAgICBDbGVhbnVwIERhdGFGbGFzaCBwYXJ0aXRpb24gaGFuZGxpbmcKCiAgICBEYXRhRmxhc2ggcGFydGl0aW9uIGluZm9ybWF0aW9uIGhhcyBiZWNvbWUgYSBtZXNzLiBUaGlzIHBhdGNoCiAgICBkZWZpbmVzIGEgc2luZ2xlIHBhcnRpdGlvbiBzY2hlbWUgZm9yIEF0bWVsIERhdGFGbGFzaGVzLiBUaGlzIHBhcnRpdGlvbgogICAgc2NoZW1lIHdpbGwgYmUgdXNlZCBieSBhbGwgQVQ5MUNBUDkgYW5kIEFUOTFTQU05IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDliNDY0MzJmYzY1Y2UwZjA4MjZiMzJlNGYxNWMxNWIzM2NjYjhkNDIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDA4OjQ3OjQ1IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGFsaWdubWVudCBpc3N1ZSBhZnRlciBDT05GSUdfSURFTlRfU1RSSU5HIGluIHN0YXJ0LlMKCiAgICBXaGVuIHRoZSB2ZXJzaW9uX3N0cmluZyBmdW5jdGlvbiBpbiBzdGFydC5TIGlzIG5vdCA0LWJ5dGUgYWxpZ24sCiAgICBpdCB3aWxsIGNhdXNlIHRoZSBjb21waWxlciBnZW5lcmF0ZXMgInVuYWxpZ25lZCBvcGNvZGVzIGRldGVjdGVkCiAgICBpbiBleGVjdXRhYmxlIHNlZ21lbnQiLiBUaGlzIGlzc3VlIGFmZmVjdHMgYWxsIENvbGRGaXJlIENQVXMuCiAgICBCeSBhZGRpbmcgLmFsaWduIDQgYWZ0ZXIgQ09ORklHX0lERU5UX1NUUklORywgaXQgd2lsbCBwYWQgMCdzIGlmCiAgICBpdCBpcyBub3QgYWxpZ25lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhZTYxZWVmZTE1YjRkNDU0MDYwYTcxNDBlNDlhZTU4MzIyYmU4MDMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDI1IDE1OjQxOjE1IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIGRzcGkgYW5kIHNlcmlhbCBmbGFzaCBzdXBwb3J0IGZvciBNQ0Y1NDQ1eAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDhlYWQ3YTdhOTIyZmNlYWY0OTRlMzUyYWJmYWI4MjE2YTQxYjQxNwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMTc6Mzc6MDEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBSZW1vdmUgUjUyMDAgYm9hcmQKCiAgICBUaGlzIGJvYXJkIG5ldmVyIHdlbnQgaW50byBwcm9kdWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogWmFjaGFyeSBQLiBMYW5kYXUgPHphY2hhcnkubGFuZGF1QGxhYnh0ZWNobm9sb2dpZXMuY29tPgogICAgQWNrZWQtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTQ1YzhlMGE3Y2QzY2E5ZDM4NDY2NjhmNjliMGQyMDEyNTBhYmVhOApBdXRob3I6IE1hdHRoZXcgRmV0dGtlIDxbbWF0dGhldy5mZXR0a2VAZ21haWwuY29tXT4KRGF0ZToJVGh1IEphbiAyNCAxNDowMjozMiAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZGVkIE01Mjc1RVZCIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBGZXR0a2UgPG1mZXR0a2VAdmlkZW9uLWNlbnRyYWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNzFkOWQ5MWEyY2Q5YzMwYjJiNjM2OWYxNWMxYTQ2YzExNTM3YzJiCkF1dGhvcjogTWF0dGhldyBGZXR0a2UgPFttYXR0aGV3LmZldHRrZUBnbWFpbC5jb21dPgpEYXRlOglNb24gRmViIDQgMTU6Mzg6MjAgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGRlZCBNQ0Y1Mjc1IGNwdSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgRmV0dGtlIDxtZmV0dGtlQHZpZGVvbi1jZW50cmFsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDRlNWI5ZWRhYjA3N2FiYTZlOWI4NDlhZmE0YjdmYmQ4ZmQ3YjAyYgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTI6MTQ6MTEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBEZWZpbmUgYm9vdGRlbGF5IGluIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgTTUyMjc3RVZCCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dCBXYWRlbCA8TWF0dC5XYWRkZWxAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc3ODc4ZjE2Y2VkZWUxNzE2MWZmMjMzNjk5MDk3MGZmZmM2Y2VhMzUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDE3IDEyOjA5OjA3IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IHNlY29uZCBtZW1vcnkgQ2hpcHNlbGVjdCBmb3IgTTU0NzVFVkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQzZDYwNjQyMzk1YTU1MDk1NmNiMjFkMjg3YzhjZmE1NjM5MTNkMjgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDEzIDE0OjI2OjMyIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIGNvcnJlY3QgRkxBU0hCQVIgYW5kIFJBTUJBUjEgZm9yIE1DRjUyODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGViMTRlYmU4MTNhMGNiNWQ0NzkwNTIyOGRhNDQ2YTVhZDY5MjQ3M2IKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJU3VuIE1hciAzMCAyMDozMzowNCAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBBZGQgQ0ZHX01FTV9UT1BfSElERSB0byBEZW5hbGkgU1BELWJhc2VkIFNEUkFNIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMDJlMzg5MjAyMTExMmYyMTA2N2Q5ZWQxZDA0YWU0MTgyNzI1YmE1MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzMSAxMjoyMDo0OCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBTbWFsbCB3aGl0ZXNwYWNlIGZpeCBvZiBlc2QgcGF0Y2hlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMzQzOTRhYmI1MjQ3ODUwNDdjODE1ZjAwZGRlOGNkYmRjMTU5M2M1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBNYXIgMzAgMTg6NTI6NDQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW51cCBQTUM0NDAgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGE2Y2M2YzM3MTg4ZDg1YzI1ZDE2N2E0NTE1ZGE4NmY0OGQ5YTU4M2UKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxODo1MjowNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcHRtIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBQTUM0NDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIHB0bTFsYSwgcHRtMW1zLCBwdG0ybGEgYW5kIHB0bTJtcwogICAgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoKICAgIENsZWFudXAgcGNpX3RhcmdldF9pbml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDdjOTFmNTFhMmZlMjk2OTA5MTQ3ZjE2NDZhMTQxMjcyOWRkMTBiMWQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxODowMToxNSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBNaW5vciB1cGRhdGVzIGZvciBEVTQ0MCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkNWJmZmViODY4ZDZiNGQ0NjJmNTU4ZGFjNDMwMTEwMjdiNjY0NGI3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRmViIDE5IDAwOjU0OjIwIDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogY2xlYW51cCBhbmQgb3ZlcmhhdWwgY29tbW9uIGJvYXJkIGluaXQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI4NmIzNDE2Zjg3NDM1OGFjYWYwNzUxOWU3NjIwY2RiMjE0NWY3NWIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6NTA6NTggMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBjbGVhbnVwIGxpYl9ibGFja2Zpbi9jYWNoZS5jCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDkxNzFmYzgxNzIyYzIwZmRiNWE4MjlhNThiMTdjOWVhYWRkNWZiNDQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBNYXIgMzAgMTU6NDY6MTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1bmlmeSBjcHUgYW5kIGJvb3QgbW9kZXMKCiAgICBBbGwgb2YgdGhlIGR1cGxpY2F0ZWQgY29kZSBmb3IgQmxhY2tmaW4gcHJvY2Vzc29ycyBhbmQgYm9vdCBtb2RlcyBoYXZlIGJlZW4KICAgIHVuaWZpZWQuICBBZnRlciBhbGwsIHRoZSBjb3JlIGlzIHRoZSBzYW1lIGZvciBhbGwgcHJvY2Vzc29ycywganVzdCB0aGUKICAgIHBlcmlwaGVyYWwgc2V0IGRpZmZlcnMgKHdoaWNoIGdldHMgaGFuZGxlZCBpbiB0aGUgZHJpdmVycykuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg4MGNjNDM4MWVhODM2MDI0OGNkZGNkZjg3YTY0NTY2NzQ1YTU3MjQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDIyOjUyOjM1IDIwMDggKzAxMDAKCiAgICBGaXggQ0ZHX05PX0ZMQVNIIGNvbXBpbGF0aW9uLgoKICAgIE1hbnkgQXRtZWwgYm9hcmRzIGhhdmUgbm8gInJlYWwiIChOT1IpIGZsYXNoIG9uIGJvYXJkLCBhbmQgcmVseSBvbmx5CiAgICBvbiBEYXRhRmxhc2ggYW5kIE5BTkQgbWVtb3JpZXMuIFRoaXMgcGF0Y2ggZW5hYmxlcyBDRkdfTk9fRkxBU0ggdG8KICAgIGJlIHByZXNlbnQgaW4gYSBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUsIHdoaWxlIHN0aWxsIGVuYWJsaW5nIGZsYXNoCiAgICBjb21tYW5kcyBsaWtlICdmbGluZm8nLCAncHJvdGVjdCcsIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDljZTdlNTNhYmQwMzlkZWNlYTFhZjY3YWVjODFiYmQ1ZGY3YTI1OTMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6NTg6MTMgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBCRjUzNy1zdGFtcDogY2xlYW51cCBzcGkgZmxhc2ggZHJpdmVyCgogICAgVGhpcyBwdW50cyB0aGUgb2xkIHNwaSBmbGFzaCBkcml2ZXIgZm9yIGEgbmV3L2dlbmVyYWxpemVkIG9uZSB1bnRpbCB0aGUKICAgIGNvbW1vbiBvbmUgY2FuIGJlIGludGVncmF0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGJiOGUzY2YyNWJjMGIwNDkzNmMwYzFhMDc1OTg1ZGQ4NzAwYTI0NGIKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjM0OjM0IDIwMDggLTA0MDAKCiAgICBGaXggbWFjcm8gdHlwbyBpbiBjb21tb24vY21kX21paS5jCgogICAgVGhpcyB0eXBvIHdhcyBpbnRyb2R1Y2VkIGluIGNvbW1pdCAyMzNhOGJjZDk0OTk3ZjNmMzQ1ODMzYTNiODJlODM2MjIyZjJhMjA2LiAgSQogICAgYWN0dWFsbHkgYXBwbGllZCB0aGUgd3JvbmcgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmMWI5ODVmMmQ3MjRjY2FhNGQzZGVmMDc5MTdmMGNhYWYxOGZhNzdkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxNjozOTo1MyAyMDA4ICswMjAwCgogICAgdXNlIGNvcnJlY3QgYXQ5MXJtOTIwMCByZWdpc3RlciBuYW1lIGluIG01MDFzayBib2FyZAoKICAgIFRoaXMgZml4ZXMgYSBuYW1pbmcgYnVnIGZvciBhdDkxcm05MjAwIGxvd2xldmVsIGluaXQgY29kZToKICAgIE5PUiBib290IGZsYXNoIGlzIG9uIGNoaXBzZWxlY3QgMCwgbm90IGNoaXBzZWxlY3QgMi4gIFRoaXMKICAgIG1ha2VzIGNvZGUgdXNlIHRoZSByZWdpc3RlciBuYW1lIGZyb20gY2hpcCBkYXRhc2hlZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDgwZWQxZGVhMTAzYTFjOGY0NTkxYWZjNzdkMmRlM2M3ODY4ZDk4MwpBdXRob3I6IERhdmlkIEJyb3duZWxsIDxkYXZpZC1iQHBhY2JlbGwubmV0PgpEYXRlOglGcmkgSmFuIDE4IDEyOjU1OjAwIDIwMDggLTA4MDAKCiAgICB1c2UgY29ycmVjdCBhdDkxcm05MjAwIHJlZ2lzdGVyIG5hbWUKCiAgICBUaGlzIGZpeGVzIGEgbmFtaW5nIGJ1ZyBmb3IgYXQ5MXJtOTIwMCBsb3dsZXZlbCBpbml0IGNvZGU6CiAgICBOT1IgYm9vdCBmbGFzaCBpcyBvbiBjaGlwc2VsZWN0IDAsIG5vdCBjaGlwc2VsZWN0IDIuICBUaGlzCiAgICBtYWtlcyBjb2RlIHVzZSB0aGUgcmVnaXN0ZXIgbmFtZSBmcm9tIGNoaXAgZGF0YXNoZWV0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBhMzU0M2Q2ZGM1MmIwYmE5YzY0MDE2Njg3Y2YzMmQ2MDBiMzFhNDc2CkF1dGhvcjogRGF2aWQgQnJvd25lbGwgPGRhdmlkLWJAcGFjYmVsbC5uZXQ+CkRhdGU6CUZyaSBKYW4gMTggMTI6NDU6NDUgMjAwOCAtMDgwMAoKICAgIGFkZCBtaXNzaW5nIEFSTSBib2FyZHMgdG8gTUFLRUFMTAoKICAgIEFkZCBzb21lIG1pc3NpbmcgQVJNIGJvYXJkcyB0byBNQUtFQUxMLiAgVGhlc2UgYnVpbGQgY29ycmVjdGx5LAogICAgdW5saWtlIHNldmVyYWwgb2YgdGhlIGJvYXJkcyBhbHJlYWR5IGxpc3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAwNjZiZWJkNjM1M2UzM2FmM2FkZWZjMzQwNDU2MDg3MTY5OWU5OTYxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxMTozNDowOSAyMDA4ICswMTAwCgogICAgQnJhY2tldCBSRUFEX1RJTUVSIG1hY3JvIGluIGNwdS9hcm0xMTM2L29tYXAyNHh4L2ludGVycnVwdHMuYwogICAgdG8gcHJldmVudCBjb21waWxhdGlvbiBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgoKY29tbWl0IDdhODM3YjczMTAxNjZhZThmYzhiOGQ2NmQ3ZWYwMWI2MGE4MGY5ZDYKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPFtsZ0BkZW54LmRlXT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMjozMCAyMDA4ICswMTAwCgogICAgU3VwcG9ydCBmb3IgdGhlIE1YMzFBRFMgZXZhbHVhdGlvbiBib2FyZCBmcm9tIEZyZWVzY2FsZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgTVgzMUFEUyBldmFsdWF0aW9uIGJvYXJkIGZyb20gRnJlZXNjYWxlLAogICAgaW5pdGlhbGl6YXRpb24gY29kZSBpcyBjb3BpZWQgZnJvbSBSZWRCb290IHNvdXJjZXMsIGFsc28gcHJvdmlkZWQgYnkgRnJlZXNjYWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBjODhhZTIwNTgwYjJiMDE0ODdiNGNkY2M4YjJhMTEzZjU1MWFlZTM2CkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTdW4gTWFyIDMwIDExOjMyOjI3IDIwMDggKzAxMDAKCiAgICBQaHl0ZWMgUGh5Y29yZS1pLk1YMzEgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgUGh5dGVjIFBoeWNvcmUtaS5NWDMxIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGExNDdlNTZmMDM4NzFiYmE0ZjA1MDU4ZDVlMDRjZTdkZWIwMTBiMDQKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzI6MjQgMjAwOCArMDEwMAoKICAgIG14MzEgbGl0ZWtpdCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBteDMxIGxpdGVraXQgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgZDY2NzRlMGUyYTZhMWYwMzM5NDVmNzg4Mzg1NjYyMTBkM2YyOGM5NQpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMjoyMSAyMDA4ICswMTAwCgogICAgYWRkIFNNU0MgTEFOOXgxeCBOZXR3b3JrIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBzbXNjIG5ldHdvcmsgY29udHJvbGxlcnM6CiAgICBMQU45MTE1CiAgICBMQU45MTE2CiAgICBMQU45MTE3CiAgICBMQU45MjE1CiAgICBMQU45MjE2CiAgICBMQU45MjE3CgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDhjODQ2M2NjZTQ0ZDg0OWUzNzc0NDc0OWIzMmQzOGUxZGZiMTJlNTAKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzI6MTYgMjAwOCArMDEwMAoKICAgIGFkZCBhbiBpMmMgZHJpdmVyIGZvciBteDMxCgogICAgVGhpcyBwYXRjaCBhZGRzIGFuIGkyYyBkcml2ZXIgZm9yIEZyZWVzY2FsZSBpLk1YIHByb2Nlc3NvcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgYzk4YjQ3YWQyNGIyZDkxZjQxYzA5YTNkNjJkN2Y3MGFkODRmNGI3ZApBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMDo0MyAyMDA4ICswMTAwCgogICAgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA4YmY2OWQ4MTc4MjYxOTE4NzkzM2E2MDVmMWE5NWVlMWQwNjk0NzhkCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTdW4gTWFyIDMwIDExOjI4OjQ2IDIwMDggKzAxMDAKCiAgICBTZXBhcmF0ZSBvbWFwMjR4eCBzcGVjaWZpYyBjb2RlIGZyb20gYXJtMTEzNgoKICAgIE1vdmUgb21hcDI0eHggY29kZSB0byBjcHUvYXJtMTEzNi9vbWFwMjR4eCwgcmVuYW1lIGluY2x1ZGUvYXNtLWFybS9hcmNoLWFybTExMzYgdG8gY3B1L2FybTExMzYvb21hcDI0eHguCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDhjMTZjYjBkM2I5NzFmNDZmYmU3N2MwNzI2NjRjMGYyZGNkNDQ3MWQKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjIzOjA1IDIwMDggKzAxMDAKCiAgICBBZGQgcG1kcmEgaW50byBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KCmNvbW1pdCBhNTc0YTczODUyYTUyNzc3OTIzNGU3M2UxN2U3NTk3ZmQ4MTI4ODgyCkF1dGhvcjogUGlldGVyIFZvb3J0aHVpanNlbiA8W3BpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmxdPgpEYXRlOglTdW4gTWFyIDMwIDExOjIxOjU4IDIwMDggKzAxMDAKCiAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBQcm9kcml2ZSBQTURSQSBib2FyZCwgYmFzZWQgb24gYSBETTY0NDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwdkBwcm9kcml2ZS5ubD4KCmNvbW1pdCAxMzc3YjU1ODNhNDgwMjFkOTgzZTFmZDU2NWY3ZDQwYzg5ZTg0ZDYzCkF1dGhvcjogUGlldGVyIFZvb3J0aHVpanNlbiA8W3BpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmxdPgpEYXRlOglTdW4gTWFyIDMwIDExOjExOjM0IDIwMDggKzAxMDAKCiAgICBSZW1vdmVzIGFsbCBib2FyZCBzcGVjaWZpYyBjb2RlIGZyb20gdGhlIGFyY2guIHBhcnQgZm9yIERNNjQ0eCAoRGFWaW5jaSkgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogUGlldGVyIFZvb3J0aHVpanNlbiA8cHZAcHJvZHJpdmUubmw+Cgpjb21taXQgMTcwNGRjMjA5MTdiNGY3MWUzNzNlMmM4ODg0OTdlZTY2NmQ0MDM4MApBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjA5OjAxIDIwMDggKzAxMDAKCiAgICAtIFJlbW92ZSAqX21hc2tlZCgpIGZ1bmN0aW9ucyBhcyBub3RlZCBieSBXb2xmZ2FuZwogICAgLSBBZGFwdCByZWdpc3RlciBuYW1pbmcgdG8gcmVjZW50IFRJIHNwZWMgKHNwcnVlMjYsIE1hcmNoIDIwMDcpCiAgICAtIEZpeCByZXNldF90aW1lcigpIGhhbmRsaW5nCiAgICAtIEFzIHJlcG9ydGVkIGJ5IFBpZXRlciBbMV0gdGhlIG92ZXJmbG93IGZpeCBpbnRyb2R1Y2VkIGEKICAgIGRlbGF5IG9mIGZhY3RvciAxNiAoZS5nIDIgc2Vjb25kcyBiZWNhbWUgMzIpLiBXaGlsZSB0aGUKICAgIG92ZXJmbG93IGZpeCBpcyBiYXNpY2FsbHkgb2theSwgaXQgbWlzc2VkIHRvIGRpdmlkZSB1ZGVsYXkgYnkKICAgIDE2LCB0b28uIEZpeCB0aGlzLgogICAgWzFdIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLmJvb3QtbG9hZGVycy51LWJvb3QvMzgxNzkKICAgIC0gUmVtb3ZlIHNvZnR3YXJlIGRpdmlzaW9uIG9mIHRpbWVyIGNvdW50IHZhbHVlIChESVYoeCkKICAgIG1hY3JvKSBhbmQgZG8gaXQgaW4gaGFyZHdhcmUgKFRJTV9DTEtfRElWKS4KICAgIE1hbnkgdGhhbmtzIHRvIFRyb3kgS2lza3kgPHRyb3kua2lza3lAYm91bmRhcnlkZXZpY2VzLmNvbT4KICAgIGFuZCBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sPiBmb3IKICAgIHRoZSBoaW50cyAmIHRlc3RpbmchCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CgogICAgQWNrZWQtYnk6IFBpZXRlciBWb29ydGh1aWpzZW4gPHBpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmw+Cgpjb21taXQgYWMzMzE1YzI2ZTE0M2MzMTY4MDc1MGM5YzEzZjAyN2VmYmNjODg3ZQpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJVGh1IE1hciA2IDE2OjQ1OjQ0IDIwMDggKzAxMDAKCiAgICBuZXcgUEhZIEAgZTEwMDAgLSAybmQgdHJ5CgogICAgQWRkIDgyNTQxRVIgZGV2aWNlIHdpdGggbGF0ZXN0IGludGVncmF0ZWQgSUdQMiBQSFkuCiAgICBJbnRyb2R1Y2VkIENPTkZJR19FMTAwMF9GQUxMQkFDS19NQUMgZm9yIE5JQyBicmluZy11cCB3aXRoIGVtcHR5IGVlcHJvbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGMyYjdkYTU1MjI5M2I1MGM5YzllNDZlZDcxMjY3YjAyYzJkZTllYTgKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMjA6MjI6NTMgMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBBZGRlZCBHUkVUSCBFdGhlcm5ldCAxMC8xMDAvMTAwMCBkcml2ZXIuCgogICAgR1JFVEggaXMgYW4gRXRoZXJuZXQgMTAvMTAwIG9yIDEwLzEwMC8xMDAwIE1BQyB3aXRoIG91dCB3aXRob3V0CiAgICBhIGRlYnVnIGxpbmsgKEVEQ0wpLiBUaGUgR1JFVEggY29yZSBpcyBkb2N1bWVudGVkIGluIEdSSVAucGRmCiAgICBhdmFpbGFibGUgYXQgd3d3LmdhaXNsZXIuY29tLgoKICAgIElmIHRoZSBHUkVUSCBoYXMgR2lnYUJpdCBzdXBwb3J0IChHQklULCBTY2F0dGVyIGdhdGhlciwgY2hlY2tzdW0KICAgIG9mZmxvYWRpbmcgZXRjLikgY2FuIGJlIGRldGVybWluZWQgYnkgYSBiaXQgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXIuCiAgICBUaGUgR0JJVCBNQUMgaXMgc3VwcG9ydGVkIGJ5IG9wZXJhdGluZyBpbiBHUlRFSCAxMC8xMDAgbGVnYWN5IG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAyMzNhOGJjZDk0OTk3ZjNmMzQ1ODMzYTNiODJlODM2MjIyZjJhMjA2CkF1dGhvcjogVHNpLUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTc6MDg6MjIgMjAwOCAtMDUwMAoKICAgIEFkZCBDT05GSUdfTUlJX0lOSVQgaW4gY21kX21paS5jCgogICAgUHJvdmlkZSBjb21tb24gY29uZmlndXJhdGlvbiBpbiBkb19taWkoKSB0byBleGVjdXRlIG1paV9pbml0KCkKICAgIGZvciBhbGwgY3B1IGFyY2hpdGVjdHVyZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmNjA1NDc5ZGUyZGViMTFlODM0ZjMxZGZkYjBhZjEwN2M4NmFjZWQ2CkF1dGhvcjogVHNpLUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTc6MDg6MTYgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggRkVDIHRyYW5zbWl0IGlzc3VlIGZvciBNQ0Y1Mjc1CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDlhMmY0MTZkNmFjNjA1OGNkNzg0NTAzM2FlNGRjMzJlZjFjMDc0NgpBdXRob3I6IEFyYXMgVmFpY2hhcyA8YXJhc3ZAbWFndGVjaC5jb20uYXU+CkRhdGU6CVdlZCBNYXIgMjYgMDk6NDM6NTcgMjAwOCArMTEwMAoKICAgIERIQ1AgcmVxdWVzdCBmaXggZm9yIFdpbmRvd3MgU2VydmVyIDIwMDMKCiAgICBBZGRlZCBvcHRpb24gQ09ORklHX0JPT1RQX0RIQ1BfUkVRVUVTVF9ERUxBWS4gVGhpcyBwcm92aWRlcyBhbiBvcHRpb25hbAogICAgZGVsYXkgYmVmb3JlIHNlbmRpbmcgIkRIQ1AgUmVxdWVzdCIgaW4gbmV0L2Jvb3RwLmMuIFJlcXVpcmVkIHRvIG92ZXJjb21lCiAgICBpbnRlcm9wZXJhYmlsaXR5IHByb2JsZW1zIHdpdGggV2luZG93cyBTZXJ2ZXIgMjAweCBESENQIHNlcnZlciB3aGVuIFUtQm9vdAogICAgY2xpZW50IHJlc3BvbmRzIHRvbyBmYXN0IGZvciBzZXJ2ZXIgdG8gaGFuZGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFyYXMgVmFpY2hhcyA8YXJhc3ZAbWFndGVjaC5jb20uYXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDk3YmY4NWQ3ODRmYmVkNDg1ZTY1MmViOTA3NTg5YWQwZDVjYjcyNjIKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMjA6NDA6MTkgMjAwOCArMDEwMAoKICAgIE1URC9DRkk6IGZsYXNoX3JlYWQ2NCBpcyBkZWZpbmVkIGEgd2VhayBmdW5jdGlvbiAoZm9yIFNQQVJDKQoKICAgIFNQQVJDIGhhcyBpbXBsZW1lbnRlZCBfX3Jhd19yZWFkcSwgaXQgcmVhZHMgNjQtYml0IGZyb20gYW55IDMyLWJpdCBhZGRyZXNzLgogICAgU1BBUkMgQ1BVcyBpbXBsZW1lbnQgZmxhc2hfcmVhZDY0IHdoaWNoIGNhbGxzIF9fcmF3X3JlYWRxLgoKICAgIEZvciBjdXJyZW50IFNQQVJDIGFyY2hpdGVjdHVyZXMgKExFT04yIGFuZCBMRU9OMykgZWFjaCByZWFkIGZyb20gdGhlCiAgICBGTEFTSCBtdXN0IGxlYWQgdG8gYSBjYWNoZSBtaXNzLiBUaGlzIGlzIGJlY2F1c2UgRkxBU0ggY2FuIG5vdCBiZSBzZXQKICAgIG5vbi1jYWNoZWFibGUgc2luY2UgcHJvZ3JhbSBjb2RlIHJlc2lkZXMgdGhlcmUsIGFuZCBhbHRlcm5hdGl2ZWx5IGRpc2FibGluZwogICAgY2FjaGUgaXMgcG9vciBmcm9tIHBlcmZvcm1hbmNlIHZpZXcsIG9yIGRvaW5nIGEgY2FjaGUgZmx1c2ggYmV0d2VlbiBlYWNoCiAgICByZWFkIGlzIGV2ZW4gcG9vcmVyLgoKICAgIEZvcmNpbmcgYSBjYWNoZSBtaXNzIG9uIGEgU1BBUkMgaXMgZG9uZSBieSBhIHNwZWNpYWwgaW5zdHJ1Y3Rpb24gImxkYSIgLQogICAgbG9hZCBhbHRlcm5hdGl2ZSBzcGFjZSwgdGhlIGFsdGVybmF0aXZlIHNwYWNlIG51bWJlciAoQVNJKSBpcyBwcm9jZXNzb3IKICAgIGltcGxlbWVudGF0aW9uIHNwY2lmaWMgYW5kIGNhbiBiZSBmb3VuZCBieSBpbmNsdWRpbmcgPGFzbS9wcm9jZXNzb3IuaD4uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDcwNDMxZThhNzM5M2I2Yjc5M2Y3Nzk1N2Y5NWI5OTlmYzlhMjY5YjgKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJRnJpIE1hciAyOCAxNTo0MToyNSAyMDA4ICswMTAwCgogICAgTWFrZSBNUEM4M3h4IG9uZSBzdGVwIGNsb3NlciB0byBmdWxsIHJlbG9jYXRpb24uCgogICAgUmVtb3ZlIGEgZmV3IGFic29sdXRlIHJlZmVyZW5jZXMgdG8gQ0ZHX01PTklUT1JfQkFTRSBmb3IgcHBjL21wYzgzeHgKICAgIGFuZCB1c2UgR09UIHJlbGF0aXZlIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWIyNzkzYTNmM2RlMzRkNDM5MjMyYjA1YWNjOGFmNjdhMDI4ZmQzNQpBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDI3IDE0OjM0OjQzIDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogZml4IEVFUFJPTSBwYWdlIHNpemUgYW5kIGdldCBNQUMgZnJvbSBFRVBST00KCiAgICBUaGlzIHBhdGNoIGZpeGVzIGVlcHJvbSBwYWdlIHNpemUgc28gdGhhdCB5b3UgY2FuIG5vdyB3cml0ZSBtb3JlIHRoYW4KICAgIDY0IGJ5dGVzIGF0IGEgdGltZS4KCiAgICBJdCBhbHNvIG1ha2VzIHRoZSBib2FyZCB0YWtlIE1BQyBhZGRyZXNzZXMsIGlmIGZvdW5kLCBmcm9tIEVFUFJPTS4KCiAgICBVc2VyIHNob3VsZCBwbGFjZSB1cCB0byA0IGFkZHJlc3NlcyBhdCBvZmZzZXQgMHg3ZjAwLCBmb3IKICAgIGV0aHssMSwyLDN9YWRkci4gIEFueSB1bnVzZWQgYWRkcmVzc2VzIHNob3VsZCBiZSB6ZXJvLiAgVGhpcyBncm91cCBvZgogICAgZm91ciBzaXgtYnl0ZSB2YWx1ZXMgc2hvdWxkIGhhdmUgaXQncyBDUkMgYXQgdGhlIGVuZC4gIGNyYzMyIGFuZAogICAgZWVwcm9tIGNvbW1hbmRzIGNhbiBiZSB1c2VkIHRvIGFjY29tcGxpc2ggdGhpcy4KCiAgICBJZiBDUkMgZmFpbHMsIE1BQyBhZGRyZXNzZXMgY29tZSBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIElmIENSQwogICAgc3VjY2VlZHMsIHRoZSBlbnZpcm9ubWVudCBpcyBvdmVyd3JpdHRlbiBhdCBzdGFydHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZjMyNWNmZjMxZjZlNzQ1ZTY1NDAwMTRiMTMxYjlhOTdmNjE5NDRjCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTU6MTU6MzggMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiBkZWZpbmUgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFCgogICAgQ29tbWl0IDU1Nzc0YjUxMmZkZjYzYzA1MTZkNDQxY2M1ZGE3YzU0YmJmZmI3ZjIgYnJva2UgdGhlIG9uYm9hcmQgVVNCCiAgICBjb250cm9sbGVyIG9uIHRoZSBQQ0kgYnVzIGluIExpbnV4IG9uIHRoZSBNUEM4MzIzRVJEQi4KCiAgICBUaGlzIGZpeGVzIGl0IGJ5IGRlZmluaW5nIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRSBpbiB0aGUgYm9hcmQncwogICAgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1YzRhZGU0ZGIxZTE2ZDNlNWQ0YTc4ODdmMzRlMTBlNTE2ZWQzYTkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDEwOjE5OjA3IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBjbGVhbnVwIFN5c3RlbSBQYXJ0IGFuZCBSZXZpc2lvbiBJRCBSZWdpc3RlciAoU1BSSURSKSBjb2RlCgogICAgaW4gdGhlIHNwaXJpdCBvZiBjb21taXQgMWNlZDEyMTYwMGIyMDYwYWIyZmY5ZjBmZGRkOTQyMWZkNzBhMGRjNiwKICAgIDg1eHgncyAiVXBkYXRlIFNWUiBudW1iZXJzIHRvIGV4cGFuZCBzdXBwb3J0Iiwgc2ltcGxpZnkgU1BSSURSIHByb2Nlc3NpbmcKICAgIGFuZCBwcm9jZXNzb3IgSUQgZGlzcGxheS4gIEFkZCBSRVZJRF97TUFKLE1JTn1PUiBtYWNyb3MgdG8gbWFrZQogICAgUkVWSUQgZGVwZW5kZW50IGNvZGUgc2ltcGxlci4gIEFsc28gYWRkZWQgUEFSVElEX05PX0UgYW5kIElTX0VfUFJPQ0VTU09SCiAgICBjb252ZW5pZW5jZSBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MWZkNTJjNmM4ZmQxOWYwYjc4NTZiOTgyMTdjZTM3YzQ2YzUyMWFmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDoxODo1MyAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogZGlzcGxheSBkZHIgZnJlcXVlbmN5IGluIGJvYXJkX2FkZF9yYW1faW5mbyBiYW5uZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM1Y2YxNTVjNWVjMWNlYWIyODQ5ZmE1YjZhYTNkOWEzZTllNmY0ODIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDEwOjE4OjQwIDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiB1bnJlaW52ZW50IG1lbV9jbGsKCiAgICBkZWxldGUgZGRyX2NsayBhbmQgdXNlIG1lbV9jbGsgaW5zdGVhZC4gIFJlbmFtZSBvdGhlciBkZHJfKl9jbGsgdG8KICAgIG1lbV8qX2NsayBmb3IgY29uc2lzdGVuY3kncyBzYWtlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzMwZTc5MjkyNmNhM2ZlNGRkMWI3MzRhM2JmNDRlNTVhZmE2ZjUzNgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTQ6MzE6MjMgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IGVuYWJsZSB0aGUgU0FUQSBpbnRlcmZhY2Ugb24gbXBjODMxNSByZGIgYW5kIG1wYzgzN3ggcmRiIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmVlYjNlNGZjNTRlZjJmNWQ1NzRkYWZkNDJjNmNlOTNhZmEzMDM5MwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NzoxOSAyMDA4ICswODAwCgogICAgbXBjODN4eDogZW5hYmxlIHRoZSBTQVRBIGludGVyZmFjZSBvbiBtcGM4Mzd4ZW1kcyBib2FyZAoKICAgIEVuYWJsZSB0aGUgZmlyc3QgdHdvIFNBVEEgaW50ZXJmYWNlcyBvbiBNUEM4Mzd4RU1EUyBib2FyZCwKICAgIFRoZSB0d28gU0FUQSBwb3J0cyBhcmUgb24gTFlOWDEuIChTQVRBMC8xIG9uIEo0LzUpCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmY4Yzg1ZThkMTg2NTczMGMxNThkOWVmNWEwNmM3MGMzYTEwNjAwYQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NjozNiAyMDA4ICswODAwCgogICAgbXBjODN4eDogaW5pdGlhbGl6ZSBzZXJkZXMgZm9yIE1QQzgzN3hFTURTIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggaXMgc3RvbGVuIGZyb20gQW50b24gVm9yb250c292J3MgcGF0Y2gKICAgIGZvciBtcGM4Mzd4ZXJkYiBib2FyZHMuCgogICAgVGhlIHJlZmVyZW5jZSBjbGsgYW5kIHhjb3JldmRkIHZvbHRhZ2Ugb2Ygc2VyZGVzMS8yCiAgICBpcyBzYW1lIGJldHdlZW4gbXBjODM3eGVtZHMgYW5kIG1wYzgzN3hlcmRiLgoKICAgIDgzNzdFOiBMWU5YMS0gMiBTQVRBCUxZTlgyLSAyIFBDSUUKICAgIDgzNzhFOiBMWU5YMS0gMiBTR01JSQlMWU5YMi0gMiBQQ0lFCiAgICA4Mzc5RTogTFlOWDEtIDIgU0FUQQlMWU5YMi0gMiBTQVRBCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2M4ZTgzOWFiYzgwODg3YWU4MzI3NjdiNTkzMGQ0MGVkZDZkN2ViNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAyOCAxNDowOTowNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDYW55b25sYW5kczogUHJpbnQgU0FUQS9QQ0llIGNvbmZpZ3VyYXRpb24gYW5kIGJvYXJkIHJldmlzaW9uCgogICAgQ2FueW9ubGFuZHMgKDQ2MEVYKSBzaGFyZXMgdGhlIGZpcnN0IFBDSWUgaW50ZXJmYWNlIHdpdGggdGhlIFNvQyBTQVRBCiAgICBpbnRlcmZhY2UuIFRoaXMgdXNhZ2UgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUganVtcGVyIEo2LiBUaGlzIHBhdGNoCiAgICBkaXNwbGF5cyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHVwb24gYm9vdHVwIGFuZCBjaGFuZ2VzIHRoZSBQQ0llCiAgICBpbml0IGxvb3AsIHRvIG9ubHkgaW5pdGlhbGl6ZSB0aGUgYXZhaWxhYmVsIFBDSWUgc2xvdHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkwNDQ3ZWNiYmFjODU3MjQ1N2I2ZDg5MDMwNzNhYzNmMTIwOTk1YmEKQXV0aG9yOiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgpEYXRlOglGcmkgTWFyIDI4IDExOjI5OjEwIDIwMDggKzAxMDAKCiAgICBNVEQvQ0ZJOiBBZGQgc3VwcG9ydCBmb3IgMTZiaXQgbGVnYWN5IEFNRCBmbGFzaAoKICAgIEFkZCBlbnRyeSBmb3IgNTEyS3gxNiBBTUQgZmxhc2ggdG8gamVkZWNfdGFibGUuCiAgICBSZWFkIG91dCAxNmJpdCBkZXZpY2UgaWQgaWYgY2hpcHdpZHRoIGlzIDE2Yml0LgogICAgRml4ZWQgY29kaW5nIHN0eWxlIGFmdGVyIFN0ZWZhbnMgZmVlZGJhY2sKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgoKY29tbWl0IDVlMTJlNzVkMTdjNGIxNWEzMTBhNDVjZDc4ZmU3MWI3Njk4YThhOGUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMjggMTE6MDI6NTMgMjAwOCArMDEwMAoKICAgIHBwYzogU21hbGwgY2hhbmdlIHRvIENGR19NRU1fVE9QX0hJREUgZGVzY3JpcHRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjgwZGY1OWE4ZDYyYzZlNzRjMjgxYjFjYjdlMjA1MmRmNGQ2Y2IwMApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IE1hciAyNyAxNTo0NDoxMiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IHN0YXQgc3RydWN0dXJlIGFuZCBzdGF0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNGJlOWViNzg5ZTcyYjg0NWQ2NjkzY2MzNmI3MGEwYjM1MjliM2YwOQpBdXRob3I6IE1hcmsgSm9uYXMgPHRvZXJ0ZWxAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDIyIDE5OjI3OjUyIDIwMDggKzAxMDAKCiAgICBzaDogUmVtb3ZlZCB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIGRyaXZlcnMvc2VyaWFsL3NlcmlhbF9zaC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSm9uYXMgPG1hcmsuam9uYXNAZGUuYm9zY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGYzMDlmYTM4OTI5ZmZiYTcxMjMwYzAyMzMwZmZhNDJmNGJiYTYzMzMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVdlZCBNYXIgMTIgMTg6MDI6NTcgMjAwOCArMDkwMAoKICAgIHNoOiBSZW1vdmUgZGlzYWJsZV9jdHJsYyBmdW5jdGlvbiBmcm9tIFI3NzgwTVAKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmY0YjI2NmZmMmE0ZmNjMmJmZjk4NWQ2YTIxNzg1MjQ2OWFmZGRiMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIE1hciAxMiAxNzo1NToxNSAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBtYWludGFpbmVyIG9mIFI3NzgwTVAgdG8gTUFJTlRBSU5FUiBmaWxlCgogICAgVXBkYXRlIE1BSU5UQUlORVIgZW50cnkgZm9yIFI3NzgwTVAuIEFuZCBmaXggbWFpbnRhaW5lcidzIG5hbWUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGY1ZTI0NjZmN2JhYTg4N2E3ZGYwYzUzNjMzM2VlYTgyMzEzMzM0OTcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBNYXIgMjUgMTc6MTE6MjQgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBSZW5lc2FzIFNvbHV0aW9ucyBSMkQgcGx1cyBib2FyZAoKICAgIFIyRCBwbHVzIGlzIFNIIHJlZmVyZW5jZSBib2FyZCB1c2VkIHdpdGggU0g3NzUxUi4KICAgIFRoaXMgYm9hcmQgaGFzIDI2Nk1oeiBDUFUsIDY0TUIgU0RSQU0sIENhcmRidXMsIENGIGludGVyZmFjZSwKICAgIG9uZSBQQ0kgYnVzLCBWR0EsIGFuZCB0d28gRXRoZXJuZXQgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZTkyYzk1MTgwYmI1YmM1ZmQ0MDUxNTk4YTlkNjBiZWFiYTQ4OTg4ZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIE1hciAxMiAxMjoxNToyOSAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFNINCBjYWNoZSBjb250cm9sCgogICAgQWRkIHN1cHBvcnQgU0g0IGNhY2hlIGNvbnRyb2wgYW5kIGZsYXNoX2NhY2hlIGZ1bmN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDI4ZTVlZmRlNGQ5MjVmY2IzNDkwMWQwMDMwZDA2NDhkZTJkYTdlODkKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CU1vbiBNYXIgMjQgMDE6NTM6MDEgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBQQ0kgaG9zdCBkcml2ZXIgZm9yIFNINzc1MS9TSDc3NTFSCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGFiOGY0ZDQwZDA2OWNkM2NiZTc1NjNkZGZlM2U1ZjAzYjBjN2M3MjEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CU1vbiBNYXIgMjQgMDI6MTE6MjYgMjAwOCArMDkwMAoKICAgIHNoOiBNb3ZlIFN1cGVySCBQQ0kgZHJpdmVyIGZyb20gY3B1L3NoNCB0byBkcml2ZXJzL3BjaQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA1NjY5MzMyNzgxMDFjMTQ0ZDc1MzYxZWE2ODI2NzhhMzI2YzEyOTBkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgTWFyIDEyIDEyOjEwOjI4IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgU3VwZXJIIFNINzc1MS9TSDc3NTFSCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDMzMTNlMGUyNjIyNGZjOWEwYzQ0NTEyNGYzNDU1MDU4YzY5NmRmODQKQXV0aG9yOiBNYXJrIEpvbmFzIDx0b2VydGVsQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMCAxMTozNzoxMCAyMDA4ICswMTAwCgogICAgc2g6IEFkZGVkIHN1cHBvcnQgZm9yIFNINzcyMCBiYXNlZCBib2FyZCBNUFIyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSm9uYXMgPG1hcmsuam9uYXNAZGUuYm9zY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDNlY2ZmMWQ3MGFlOTNlNjI4ZmU2NWIzZmUxZmM3YzljNzZjZGY5OWYKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBNYXIgNiAxNDowNTo1MyAyMDA4ICswOTAwCgogICAgc2g6IEZpeCByZWNlaXZlIEZJRk8gbGV2ZWwgcmVnaXN0ZXIgb2YgU0g0QQoKICAgIFJlY2VpdmUgRklGTyBsZXZlbCByZWdpc3RlciBpcyBkaWZmZXJlbnQgaW4gU0g0QS4KICAgIEJlY2F1c2UgcmVnaXN0ZXIgaXMgZGlmZmVyZW50LCBjYW5ub3Qgb2NjYXNpb25hbGx5IHJlY2VpdmUgZGF0YS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzEzM2MxZmIwYjU5MDY2MjIwNmIwZWJhNzBmNDQ3OGVlMDMwMGE5YQpBdXRob3I6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIE1hciAxMSAxMjo1NToxMiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFJlbmVzYXMgU29sdXRpb25zIFI3NzgwTVAKCiAgICBSZW5lc2FzIFNvbHV0aW9ucyBSNzc4ME1QIGlzIGEgcmVmZXJlbmNlIGJvYXJkIG9uIFNINzc4MC4KICAgIFRoaXMgYm9hcmQgaGFzIHNlcmlhbCwgMTAvMTAwIGJhc2UgRXRoZXJuZXQgZGVpdmljZSwgQ0Ygc2xvdAogICAgYW5kIFZHQSBkZXZpY2VzLiBUaGlzIGJvYXJkIGNhbiBzZXQgZXh0ZW5zaW9uIGJvYXJkLgogICAgRXh0ZW5zaW9uIGJvYXJkIGhhcyAxMC8xMDAvMTAwMCBiYXNlIEV0aGVybmV0IGRldmljZSwgUENJIHNsb3QsCiAgICBTLUFUQSwgaURWUiBzbG90LgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAxYTIzMzRhNGViNjM4NmQ3Y2QzNWQ5ZGU1ZmEzOWFmMmM3NjRhZDI4CkF1dGhvcjogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTQ6MzA6MDIgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBQQ0kgb2YgU3VwZXJIIGFuZCBTSDc3ODAKCiAgICBUaGlzIHBhdGNoIGFkZCBzdXBwb3J0IFBDSSBvZiBTdXBlckggYmFzZSBjb2RlIGFuZCBTSDc3ODAgc3BlY2lmaWMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYjU1NTIzZWZmZjJhZTExZjBiOWFlM2NjNDA1ODkzYzMyZWI3ODE1NgpBdXRob3I6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE0OjIzOjI2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgU0g3NzgwCgogICAgU0g3NzgwIGlzIENQVSBvZiBSZW5lc2FzIFRlY2hub2xvZ3kuCiAgICBUaGlzIENQVSBoYXMKICAgICAtIENQVSBjbG9jayA0MDBNSHoKICAgICAtIFBDSSBzdXBwb3J0CiAgICAgLSBERFItU0RSQU0gY29udHJvbGxlcgogICAgIC0gZXRjIC4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjMjA0MmY1OTUyYTY4NmM0MTQwMzEzMDliOGYyNDQ1MTNiZjU3OGYwCkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgSmFuIDI1IDIwOjQ2OjM2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUmVuZXNhcyBTb2x1dGlvbnMgTWlnby1SIGJvYXJkCgogICAgTWlnby1SIGlzIGEgYm9hcmQgYmFzZWQgb24gU0g3NzIyIGFuZCBoYXMgbWF5IGRldmljZXMuCiAgICBJbiB0aGlzIHBhdGNoLCBzdXBwb3J0ZWQgU0NJRiwgTk9SIGZsYXNoIGFuZCBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNzRkMWU2NmQyMmRhYzkxMzg4YmM1MzhiMmZlMTlmNzM1ZWRjNWI4MgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjcgMTU6MDY6NDAgMjAwOCArMDEwMAoKICAgIEZpeCBob3N0IHRvb2wgYnVpbGQgYnJlYWthZ2UsIHRha2UgdHdvCgogICAgUmV2ZXJ0IGNvbW1pdCA4N2M4NDMxZiBhbmQgZml4IGJ1aWxkIGJyZWFrYWdlIHNvIHRoYXQgdGhlIGJ1aWxkIGNvbnRpbnVlcwogICAgdG8gd29yayBvbiBGQyBzeXN0ZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgN2U0YTBkMjVlZDE4ZjY0MzdiZGY1OWViZmE0OWJiMGVkYzJmMjRlNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAxOSAwOTozNjo0NyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgRUNDIG9uIExXTU9ONQoKICAgIFNpbmNlIGFsbCBFQ0MgcmVsYXRlZCBwcm9ibGVtcyBzZWVtIHRvIGJlIHJlc29sdmVkIG9uIExXTU9ONSwgdGhpcyBwYXRjaAogICAgbm93IGVuYWJsZXMgRUNDIHN1cHBvcnQuCgogICAgV2UgaGF2ZSB0byB3cml0ZSB0aGUgRUNDIGJ5dGVzIGJ5IHplcm9pbmcgYW5kIGZsdXNoaW5nIGluIHNtYWxsZXIKICAgIHN0ZXBzLCBzaW5jZSB0aGUgd2hvbGUgMjU2TUJ5dGUgdGFrZXMgdG9vIGxvbmcgZm9yIHRoZSBleHRlcm5hbAogICAgd2F0Y2hkb2cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY0MzNmYTIwMmE5MWE2NTk0ZGQ0OGYwNjgwN2FjMzhiYTI3ZmEwYmIKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJTW9uIE1hciAxNyAxMToxMDozNSAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBVcGRhdGVzIHRvIEtvcmF0LXNwZWNpZmljIGNvZGUKCiAgICBUaGlzIHBhdGNoIGNvbnRhaW5zIHVwZGF0ZXMgZm9yIGNoYW5nZXMgZm9yIHRoZSBLb3JhdCBQUEM0NDBFUHggYm9hcmQuCiAgICBUaGVzZSBjaGFuZ2VzIGluY2x1ZGU6CgogICAgKDEpIFN1cHBvcnQgZm9yICJwZXJtYW5lbnQiIGFuZCAidXBncmFkYWJsZSIgY29waWVzIG9mIFUtQm9vdCwgYXMKICAgIGRlc2NyaWJlZCBpbiB0aGUgbmV3ICJkb2MvUkVBRE1FLmtvcmF0IiBmaWxlOwoKICAgICgyKSBhIG5ldyBtZW1vcnkgbWFwIGZvciB0aGUgcmVnaXN0ZXJzIGluIHRoZSBib2FyZCdzIENQTEQ7CgogICAgKDMpIGEgcmV2aXNlZCBmb3JtYXQgZm9yIG1hbnVmYWN0dXJlcidzIGRhdGEgaW4gc2VyaWFsIEVFUFJPTTsgYW5kCgogICAgKDQpIGNoYW5nZXMgdG8gdHJhY2sgdXBkYXRlcyB0byBVLUJvb3QgZm9yIHRoZSBTZXF1b2lhIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGY3NjZjZGY4OWIzYTJhNzYzNGI4YzU4NjlmNjA2MTUwZTMzMjAzNmMKQXV0aG9yOiBNYXJrdXMgQnJ1bm5lciA8c3VwZXIuZmlyZXR3aXN0ZXJAZ21haWwuY29tPgpEYXRlOglUaHUgTWFyIDI3IDEwOjQ2OjI1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFBQQzQwNUVQIFNldCBFTUFDIG5vaXNlIGZpbHRlciBiaXRzCgogICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgd2l0aCBjb21taXQgYWVlNzQ3ZjE5YjQ2MGEwZTlkYTIwZmYyMWU5MGZkYWFjMWNlYzM1OQogICAgd2hpY2ggZW5hYmxlZCBDRkdfNHh4X0dQSU9fVEFCTEUgZm9yIFBQQzQwNSBhbmQgdW5pbnRlbnRpb25hbGx5CiAgICBkaXNhYmxlZCB0aGUgc2V0dGluZyBvZiB0aGUgZW1hYyBub2lzZSBmaWx0ZXIgYml0cyBmb3IgUFBDNDA1RVAgd2hlbiBDRkdfNHh4X0dQSU9fVEFCTEUgaXMgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBCcnVubmVyIDxzdXBlci5maXJldHdpc3RlckBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjY2ZTJjOGIyNWMwNGI3OWU1ZmIzODViYzg5ODljMmRlN2Y2Mzk5MQpBdXRob3I6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgpEYXRlOglXZWQgRmViIDIwIDExOjU0OjIwIDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IFJlY29uZmlndXJlIFBMTCBmb3IgNjY3TUh6IHByb2Nlc3NvciBmb3IgUFBDNDQwRVB4CgogICAgT24gUFBDNDQwRVB4IHdpdGhvdXQgYSBib290c3RyYXAgSTJDIEVFUFJPTSwgdGhlIFBMTCBjYW4gYmUgcmVjb25maWd1cmVkCiAgICBhZnRlciBzdGFydHVwIHRvIGNoYW5nZSB0aGUgc3BlZWQgb2YgdGhlIGNsb2Nrcy4gVGhpcyBwYXRjaCBhZGRzIHRoZQogICAgb3B0aW9uIENGR19QTExfUkVDT05GSUcuIElmIHRoaXMgb3B0aW9uIGlzIHNldCB0byA2NjcsIHRoZSBDUFUKICAgIGluaXRpYWxpemF0aW9uIGNvZGUgd2lsbCByZWNvbmZpZ3VyZSB0aGUgUExMIHRvIHJ1biB0aGUgc3lzdGVtIHdpdGggYSBDUFUKICAgIGZyZXF1ZW5jeSBvZiA2NjdNSHogYW5kIFBMQiBmcmVxdWVuY3kgb2YgMTY2TUh6LCB3aXRob3V0IHRoZSBuZWVkIGZvciBhbgogICAgZXh0ZXJuYWwgRUVQUk9NLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4N2M4NDMxZmUyNGQ0ODEyMWYwNTNmZTY3Y2ZmNGNjZmUwOTdkNGQxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTWFyIDI3IDA5OjEyOjQwIDIwMDggKzAxMDAKCiAgICBuZXctaW1hZ2U6IEZpeCBob3N0IHRvb2wgYnVpbGQgYnJlYWthZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNmZiNGI2NDA1NjJhMTBkYWZmMGRiZTUzNzYzOGQ1MTFiNWI0ODY1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyNyAxMDoyNDowMyAyMDA4ICswMTAwCgogICAgcHBjOiBTZXQgQ0ZHX01FTV9UT1BfSElERSB0byAwIGlmIG5vdCBhbHJlYWR5IGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTQ2MjczMmEzZWM1NTFjMTE4NjI0NTA5MDJjZDhlZTFiZWRlYTZkOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAxOSAxMDoyMzo0MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgZmR0IHN1cHBvcnQgdG8gUHJvZHJpdmUgYWxwcgoKICAgIFNpbmNlIHRoaXMgYm9hcmQgd2lsbCBwcm9iYWJseSBiZSBwb3J0ZWQgdG8gYXJjaC9wb3dlcnBjIGluIHRoZQogICAgbmVhciBmdXR1cmUsIHdlIGFkZCBkZXZpY2UgdHJlZSBzdXBwb3J0IG5vdy4gVGhpcyB3YXkgd2UgYXJlCiAgICAicmVhZHkiIGZvciBhcmNoL3Bvd2VycGMgZnJvbSBub3cgb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUxMWU0ZjllN2Y3YjY3MTllNGQ5MWQ3ZjBmYzg5NDEyYjEzYjUxNTAKQXV0aG9yOiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQHByb2RyaXZlLm5sPgpEYXRlOglNb24gTWFyIDE3IDA5OjI3OjU2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEVuYWJsZSBjYWNoZSBzdXBwb3J0IG9uIHRoZSBBTFBSIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogUGlldGVyIFZvb3J0aHVpanNlbiA8cHZAcHJvZHJpdmUubmw+Cgpjb21taXQgMTRmNzNjYTY3OWY2ZmRiNDRjZmYwYjczMDRkNDE5ZGI0MWEwYWI2OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAxMDoxNDoxMSAyMDA4ICswMTAwCgogICAgcHBjOiBBZGQgQ0ZHX01FTV9UT1BfSElERSBvcHRpb24gdG8gaGlkZSBtZW1vcnkgYXJlYSB0aGF0IGRvZXNuJ3QgZ2V0ICJ0b3VjaGVkIgoKICAgIElmIENGR19NRU1fVE9QX0hJREUgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnIGhlYWRlciwgdGhpcyBzcGVjaWZpZWQKICAgIG1lbW9yeSBhcmVhIHdpbGwgZ2V0IHN1YnRyYWN0ZWQgZnJvbSB0aGUgdG9wIChlbmQpIG9mIHJhbSBhbmQgd29uJ3QgZ2V0CiAgICAidG91Y2hlZCIgYXQgYWxsIGJ5IFUtQm9vdC4gQnkgZml4aW5nIHVwIGdkLT5yYW1fc2l6ZSB0aGUgTGludXgga2VybmVsCiAgICBzaG91bGQgZ2V0cyBwYXNzZWQgdGhlIG5vdyAiY29ycmVjdGVkIiBtZW1vcnkgc2l6ZSBhbmQgd29uJ3QgdG91Y2ggaXQKICAgIGVpdGhlci4gVGhpcyBzaG91bGQgd29yayBmb3IgYXJjaC9wcGMgYW5kIGFyY2gvcG93ZXJwYy4gT25seSBMaW51eCBib2FyZAogICAgcG9ydHMgaW4gYXJjaC9wb3dlcnBjIHdpdGggYm9vdHdyYXBwZXIgc3VwcG9ydCwgd2hpY2ggcmVjYWxjdWxhdGUgdGhlCiAgICBtZW1vcnkgc2l6ZSBmcm9tIHRoZSBTRFJBTSBjb250cm9sbGVyIHNldHVwLCB3aWxsIGhhdmUgdG8gZ2V0IGZpeGVkCiAgICBpbiBMaW51eCBhZGRpdGlvbmFsbHkuCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoaXMgY29uZmlnIG9wdGlvbiBvbiBzb21lIFBQQzQ0MEVQeCBib2FyZHMgYXMgYSB3b3JrYXJvdW5kCiAgICBmb3IgdGhlIENISVAgMTEgZXJyYXRhLiBIZXJlIHRoZSBkZXNjcmlwdGlvbiBmcm9tIHRoZSBBTUNDIGRvY3VtZW50YXRpb246CgogICAgQ0hJUF8xMTogRW5kIG9mIG1lbW9yeSByYW5nZSBhcmVhIHJlc3RyaWN0ZWQgYWNjZXNzLgogICAgQ2F0ZWdvcnk6IDMKCiAgICBPdmVydmlldzoKICAgIFRoZSA0NDBFUHggRERSIGNvbnRyb2xsZXIgZG9lcyBub3QgYWNrbm93bGVkZ2UgYW55CiAgICB0cmFuc2FjdGlvbiB3aGljaCBpcyBkZXRlcm1pbmVkIHRvIGJlIGNyb3NzaW5nIG92ZXIgdGhlCiAgICBlbmQtb2YtbWVtb3J5LXJhbmdlIGJvdW5kYXJ5LCBldmVuIGlmIHRoZSBzdGFydGluZyBhZGRyZXNzIGlzCiAgICB3aXRoaW4gdmFsaWQgbWVtb3J5IHNwYWNlLiBBbnkgc3VjaCB0cmFuc2FjdGlvbiBmcm9tIGFueSBQTEI0CiAgICBtYXN0ZXIgd2lsbCByZXN1bHQgaW4gYSBQTEIgdGltZS1vdXQgb24gUExCNCBidXMuCgogICAgSW1wYWN0OgogICAgSW4gY2FzZSBvZiBzdWNoIG1pc2FsaWduZWQgYnVyc3RzLCBQTEI0IG1hc3RlcnMgd2lsbCBub3QKICAgIHJldHJpZXZlIGFueSBkYXRhIGF0IGFsbCwganVzdCB0aGUgYXZhaWxhYmxlIGRhdGEgdXAgdG8gdGhlCiAgICBlbmQgb2YgbWVtb3J5LCBlc3BlY2lhbGx5IHRoZSA0NDAgQ1BVLiBGb3IgZXhhbXBsZSwgaWYgYSBDUFUKICAgIGluc3RydWN0aW9uIHJlcXVpcmVkIGFuIG9wZXJhbmQgbG9jYXRlZCBpbiBtZW1vcnkgd2l0aGluIHRoZQogICAgbGFzdCA3IHdvcmRzIG9mIG1lbW9yeSwgdGhlIERDVSBtYXN0ZXIgd291bGQgYnVyc3QgcmVhZCA4CiAgICB3b3JkcyB0byB1cGRhdGUgdGhlIGRhdGEgY2FjaGUgYW5kIGNyb3NzIG92ZXIgdGhlCiAgICBlbmQtb2YtbWVtb3J5LXJhbmdlIGJvdW5kYXJ5LiBTdWNoIGEgRENVIHJlYWQgd291bGQgbm90IGJlCiAgICBhbnN3ZXJlZCBieSB0aGUgRERSIGNvbnRyb2xsZXIsIHJlc3VsdGluZyBpbiBhIFBMQjQgdGltZS1vdXQKICAgIGFuZCB1bHRpbWF0ZWx5IGluIGEgTWFjaGluZSBDaGVjayBpbnRlcnJ1cHQuIFRoZSBkYXRhIHdvdWxkCiAgICBiZSBpbmFjY2Vzc2libGUgdG8gdGhlIENQVS4KCiAgICBXb3JrYXJvdW5kOgogICAgRm9yYmlkIGFueSBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgdGhlIGxhc3QgMjU2IGJ5dGVzIG9mIEREUgogICAgbWVtb3J5LiBGb3IgZXhhbXBsZSwgbWFrZSB5b3VyIG9wZXJhdGluZyBzeXN0ZW0gYmVsaWV2ZSB0aGF0CiAgICB0aGUgbGFzdCAyNTYgYnl0ZXMgb2YgRERSIG1lbW9yeSBhcmUgYWJzZW50LiBBTUNDIGhhcyBhIHBhdGNoCiAgICB0aGF0IGRvZXMgdGhpcywgYXZhaWxhYmxlIGZvciBMaW51eC4KCiAgICBUaGlzIHBhdGNoIHNldHMgQ0ZHX01FTV9UT1BfSElERSBmb3IgdGhlIGZvbGxvd2luZyA0NDBFUHggYm9hcmRzOgogICAgbHdtb241LCBrb3JhdCwgc2VxdW9pYQoKICAgIFRoZSBvdGhlciByZW1haW5pbmcgNDQwRVB4IGJvYXJkIHdlcmUgaW50ZW50aW9uYWxseSBub3QgaW5jbHVkZWQKICAgIHNpbmNlIGl0IGlzIG5vdCBjbGVhciB0byBtZSwgaWYgdGhleSB1c2UgdGhlIGVuZCBvZiByYW0gZm9yIHNvbWUKICAgIG90aGVyIHB1cnBvc2UuIFRoaXMgaXMgdW5jbGVhciwgc2luY2UgdGhlc2UgYm9hcmRzIGhhdmUgQ09ORklHX1BSQU0KICAgIGRlZmluZWQgYW5kIGV2ZW4gY29tbWVudHMgbGlrZSB0aGlzOgoKICAgIFBNQzQ0MC5oOgogICAgLyogZXNkIGV4cGVjdHMgcHJhbSBhdCBlbmQgb2YgcGh5c2ljYWwgbWVtb3J5LgogICAgICogU28gbm8gbG9nYnVmZmVyIGF0IHRoZSBtb21lbnQuCiAgICAgKi8KCiAgICBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byBub3QgdXNlIHRoZSBsYXN0IDI1NiBieXRlcyBvbiB0aG9zZQogICAgYm9hcmRzIHRvby4gUGF0Y2hlcyBmcm9tIHRoZSBib2FyZCBtYWludGFpbmVycyBhcmUgd2VsY29tZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzY2NGJmOGMzYzliYjllMjM2ODkxZjBkOGRmZGE4ODNlODZkMTU5YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyNyAxMDowOTowNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggQ2FueW9ubGFuZHMgbGlua2VyIHNjcmlwdCAocmVtb3ZlIGJvZ3VzIEFTU0VSVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDU2YTNjZTE3OTY4OGNkZTYxMDczYTM2OTBlMjE3MDNkNjhmYWZkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAyNSAxNzo1MToxMyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDb3JyZWN0bHkgcGFzcyBwaHlpc2NhbCBGTEFTSCBiYXNlIGFkZHJlc3MgaW50byBkdGIKCiAgICBUaGUgcm91dGluZSBmdF9ib2FyZF9zZXR1cCgpIGNvbmZpZ3VyZXMgdGhlIEVCQyBOT1IgbWFwcGluZ3MgZm9yIHRoZQogICAgTGludXggcGh5c21hcF9vZiBkcml2ZXIuIFNpbmNlIG9uIDQ2MEVYL0dUIHdlIHJlbWFwIHRoZSBGTEFTSCBmcm9tCiAgICAweDQuZmMwMC4wMDAwIHRvIDB4NC5jYzAwLjAwMDAgYmVjYXVzZSBvZiB0aGUgbWF4LiAxNk1CeXRlIGJvb3QtQ1MKICAgIHByb2JsZW0sIHdlIG5lZWQgdG8gcGFzcyB0aGUgY29ycmVjdGVkIGFkZHJlc3MgaGVyZSB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlhZDMxOTg5ZGUxMmNlNWM2N2IwN2M0ODY3ZWFkNDc0NjU2NTVjNGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMTkgMTY6MzU6MTIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4gNHh4X2VuZXQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0YzllODU1NzM0YzUyMzkwMDMyMmE3YzNjZGQ5MDk5YjRmNTFiNTFkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDE5IDE2OjIwOjQ5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDIEdsYWNpZXIgNDA2R1QgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBTUNDIEdsYWNpZXIgNDYwR1QgZXZhbCBib2FyZC4KICAgIFRoZSBtYWluIGRpZmZlcmVuY2UgdG8gdGhlIENhbnlvbmxhbmRzIGJvYXJkIGFyZSBsaXN0ZWQgaGVyZToKCiAgICAtIDQgZXRoZXJuZXQgcG9ydHMgaW5zdGVhZCBvZiAyCiAgICAtIG5vIFNBVEEgcG9ydAogICAgLSBubyBVU0IgcG9ydAoKICAgIEN1cnJlbnRseSBFTUFDMiszIGFyZSBub3Qgd29ya2luZy4gVGhpcyB3aWxsIGJlIGZpeGVkIGluIGEgbGF0ZXIKICAgIHJlbGVhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ4YmQ2NDMxNDFhZjQ3MTBkN2YxYjY5YmJhYjZiNzYwZGUwYWYwYTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMjcgMDg6NDc6MjYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTWFzayAndmVjJyB3aXRoIDB4MWYgaW4gdWljX2ludGVycnVwdCgpIGZvciBiaXQgc2V0L2NsZWFyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI5NjcwZGQ4NWJlNmUwNDk2ZWYyZTIzMTA0M2MyM2NhZDliMWQ5MDMKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMjE6MDU6NDMgMjAwOCArMDEwMAoKICAgIEZpeCBvdXQgb2YgdHJlZSBidWlsZGluZyBpc3N1ZQoKICAgIEN1cnJlbnRseSBVLUJvb3QgYnVpbGRpbmcgaW4gc29tZSBleHRlcm5hbCBkaXJlY3RvcnkKICAgIGRvZXNuJ3Qgd29yay4gVGhpcyBwYXRjaCB0cmllcyB0byBmaXggdGhlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGQ0ZWU3MTFkOGE1YzM2NmVlM2Y4NTdjMjZiOTI3ZDEyZTY2NjE0ZmYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTg6MTM6MzMgMjAwOCArMDEwMAoKICAgIFJFQURNRTogdXBkYXRlIGRvY3VtZW50YXRpb24gKGF2YWlsYWJpbGl0eSwgbGlua3MsIGV0Yy4pCgogICAgRml4IHR5cG8gaW4gUkVBRE1FCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGU4MTNlYWUzYmZlYmE5YzBiZGE5ZDFiZjlmYzNkMDgxZjc5MDk3MmYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTc6NDc6NDQgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBpbiBjbWRfdXNiLmMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGNvbXBpbGF0aW9uIGVycm9yCiAgICBjbWRfdXNiLmM6IEluIGZ1bmN0aW9uICdkb191c2InOgogICAgY21kX3VzYi5jOjU1MjogZXJyb3I6IHZvaWQgdmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZDhjODJkYjQ4MmQ2YjUzNWQxMmI0MTlkNjQ0MGI4OGJmNzA5MWM5YgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMTc6NDU6MjkgMjAwOCAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBJMkMgYnVzIHNwZWVkIGluIGZzbF9pMmMuYwoKICAgIEFkZCBzdXBwb3J0IHRvIHRoZSBGcmVlc2NhbGUgSTJDIGRyaXZlciAoZnNsX2kyYy5jKSBmb3Igc2V0dGluZyBhbmQgcXVlcnlpbmcKICAgIHRoZSBJMkMgYnVzIHNwZWVkLglDdXJyZW50IDhbMzU2XXh4IGJvYXJkcyBkZWZpbmUgdGhlIENGR19JMkNfU1BFRUQgbWFjcm8sCiAgICBidXQgZnNsX2kyYy5jIGlnbm9yZXMgaXQgYW5kIHVzZXMgY29uc2VydmF0aXZlIHZhbHVlIHdoZW4gcHJvZ3JhbW1pbmcgdGhlCiAgICBJMkMgYnVzIHNwZWVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQwNDljYzdmNzFjMGQ4NzVlOGY1MDk5ZDFlZDIzNjY2YTgyYjhmOGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDI3IDAwOjAzOjU3IDIwMDggKzAxMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQwYjFmZTNjMzg4YTc3ZThmZTAwY2RkOTMwY2EzMTdhOTExOThkNApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NTozMiAyMDA4ICswODAwCgogICAgZHJpdmVyczogYWRkIHRoZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgU0FUQSBjb250cm9sbGVyCgogICAgQWRkIHRoZSBGcmVlc2NhbGUgb24tY2hpcCBTQVRBIGNvbnRyb2xsZXIgZHJpdmVyIHRvIHUtYm9vdCwKICAgIFRoZSBTQVRBIGNvbnRyb2xsZXIgaXMgdXNlZCBvbiB0aGUgODM3eCBhbmQgODMxNSB0YXJnZXRzLAogICAgVGhlIGRyaXZlciBjYW4gYmUgdXNlZCB0byBsb2FkIGtlcm5lbCwgZnMgYW5kIGR0Yi4KCiAgICBUaGUgZmVhdHVyZXMgbGlzdDoKICAgIC0gMS41LzMgR2JwcyBsaW5rIHNwZWVkCiAgICAtIExCQTQ4LCBMQkEyOCBzdXBwb3J0CiAgICAtIERNQSBhbmQgRlBETUEgc3VwcG9ydAogICAgLSBUd28gcG9ydHMgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmVkZTg3ZjRjODdjM2NjZDg2OGNjNjBlYmY3OTJlMDU2MGM2ZDAyNApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NDo0NCAyMDA4ICswODAwCgogICAgYXRhOiBhZGQgdGhlIHJlYWRtZSBmb3IgU0FUQSBjb21tYW5kIGxpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkNTQwODFjZDQ3OWU1NDJmYzM5OWI4YTQwNjUxZmYxMWExYWQ4NDkKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTM6MjQgMjAwOCArMDgwMAoKICAgIGF0YTogZW5hYmxlIHRoZSBzYXRhIGluaXRpYWxpemUgb24gYm9vdCB1cAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjkzODYzODNjNWMyYjMyM2M2NjQ5NWIwYjBjZWY2YTk3MTRkODNiZgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1MjozNiAyMDA4ICswODAwCgogICAgYXRhOiBhZGQgdGhlIGZpcyBzdHJ1Y3QgZm9yIFNBVEEKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZmYzY2NGU4MGRmYjJlMTdkZTBkZjVhZDM5ZTkxYTAyZTljMzYxYmMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTE6NDQgMjAwOCArMDgwMAoKICAgIGF0YTogYWRkIHRoZSBsaWJhdGEgc3VwcG9ydAoKICAgIGFkZCBzaW1wbGUgbGliYXRhIHN1cHBvcnQgaW4gdS1ib290CgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZTliYjQzNDI5ZTUwZGY1NWZhNDE5MzJjYmU2NTg0MWZmNTc5MjIwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjUwOjQ1IDIwMDggKzA4MDAKCiAgICBhdGE6IG1ha2UgdGhlIGF0YV9waWl4IGRyaXZlciB1c2luZyBuZXcgU0FUQSBmcmFtZXdvcmsKCiAgICBvcmlnaW5hbCBhdGFfcGlpeCBkcml2ZXIgaXMgdXNpbmcgSURFIGZyYW1ld29yaywgbm90IHJlYWwKICAgIFNBVEEgZnJhbWV3b3JrLiBGb3Igbm93LCB0aGUgYXRhX3BpaXggZHJpdmVyIGlzIG9ubHkgdXNlZAogICAgYnkgeDg2IHNjNTIwX2NkcCBib2FyZC4gVGhpcyBwYXRjaCBtYWtlcyB0aGUgYXRhX3BpaXggZHJpdmVyCiAgICB1c2UgdGhlIG5ldyBTQVRBIGZyYW1ld29yaywgc28KCiAgICAtIHJlbW92ZSB0aGUgZHVwbGljYXRlZCBjb21tYW5kIHN0dWZmCiAgICAtIHJlbW92ZSB0aGUgQ09ORklHX0NNRF9JREUgZGVmaW5lIGluIHRoZSBzYzUyMF9jZHAuaAogICAgLSBhZGQgdGhlIENPTkZJR19DTURfU0FUQSBkZWZpbmUgdG8gc2M1MjBfY2RwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM3MDU3YjUyOWMzYzNjYjljMGFjOTA2MDY4NmE0MDY4ZjE0OTFiYmUKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NDk6NDQgMjAwOCArMDgwMAoKICAgIGF0YTogYWRkIHRoZSBzdXBwb3J0IGZvciBTQVRBIGZyYW1ld29yawoKICAgIC0gYWRkIHRoZSBTQVRBIGZyYW1ld29yawogICAgLSBhZGQgdGhlIFNBVEEgY29tbWFuZCBsaW5lCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4M2M3ZjQ3MGE0Y2U5NGYzMzYwMGYxMWFlODVjZTRkY2YwMGFhOTBjCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjQ4OjE4IDIwMDggKzA4MDAKCiAgICBhdGE6IG1lcmdlIHRoZSBoZWFkZXIgb2YgYXRhX3BpaXggZHJpdmVyCgogICAgbW92ZSB0aGUgc2F0YS5oIGZyb20gaW5jbHVkZS8gdG8gZHJpdmVycy9ibG9jay9hdGFfcGlpeC5oCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZWVmNjI4MDRkOTY5NTQyNWIyNGM4N2I0NmE2MWE3ZmE3NGFmZWUwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjQ3OjA2IDIwMDggKzA4MDAKCiAgICBhdGE6IG1lcmdlIHRoZSBhdGFfcGlpeCBkcml2ZXIKCiAgICBtb3ZlIHRoZSBjbWRfc2F0YS5jIGZyb20gY29tbW9uLyB0byBkcml2ZXJzL2F0YV9waWl4LmMsCiAgICB0aGUgY21kX3NhdGEuYyBoYXZlIHNvbWUgcGFydCBvZiBhdGFfcGlpeCBjb250cm9sbGVyIGRyaXZlcnMuCiAgICBjb25zb2xpZGF0ZSB0aGUgZHJpdmVyIHRvIGhhdmUgYmV0dGVyIGZyYW1ld29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5ZTc0OWU5NTM1NGYzM2ViNWRjNjY1M2M2ZGI3ZDUwMmFkYjk1ZmUKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDE4OjI2OjQzIDIwMDggKzAxMDAKCiAgICBVU0IsIFN0b3JhZ2U6IGZpeCBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdAogICAgZjZiNDRlMGU0ZDE4ZmU1MDc4MzNhMGY3NmQyNGE5YWE3MmMxMjNmMSB0aGF0IHdpbGwgY2F1c2UgdXNiX3N0b3JfaW5mbwogICAgdG8gb25seSBwcmludCBvbmx5IGluZm9ybWF0aW9uIG9uIG9uZSBzdG9yYWdlIGRldmljZSwgYnV0IG5vdCBmb3IKICAgIG11bHRpcGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgODQxZTVlZGQxNjIzZjNmZWNiNmJmZmM1YzJmOTM4ZWQ3YTk0NzM2MApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAxNzo0Nzo0NCAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9yIGluIGNtZF91c2IuYwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgY29tcGlsYXRpb24gZXJyb3IKICAgIGNtZF91c2IuYzogSW4gZnVuY3Rpb24gJ2RvX3VzYic6CiAgICBjbWRfdXNiLmM6NTUyOiBlcnJvcjogdm9pZCB2YWx1ZSBub3QgaWdub3JlZCBhcyBpdCBvdWdodCB0byBiZQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZGQ2YzkxMGFhZGYyN2M4MjJmMTdiODdlYWUxYTliZDBiMmUzYWExNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBNYXIgMjYgMDg6NTM6NTMgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEFkZCBjcHVfbXBfbG1iX3Jlc2VydmUgaGVscGVyIHRvIHJlc2VydmUgYm9vdCBwYWdlCgogICAgUHJvdmlkZSBhIGJvYXJkX2xtYl9yZXNlcnZlIGhlbHBlciBmdW5jdGlvbiB0byBlbnN1cmUgd2UgcmVzZXJ2ZQogICAgdGhlIHBhZ2Ugb2YgbWVtb3J5IHdlIGFyZSB1c2luZyBmb3IgdGhlIGJvb3QgcGFnZSB0cmFuc2xhdGlvbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzk2NzlkODAwMjFhYjA5NWU2MzllMjUwY2E0NzJmZTUyNmRhMDJlMgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBNYXIgMjYgMDg6MzQ6MjUgMjAwOCAtMDUwMAoKICAgIDg1eHg6IFVwZGF0ZSBtdWx0aWNvcmUgYm9vdCBtZWNoYW5pc20gdG8gZVBBUFIgdjAuODEgc3BlYwoKICAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhcmUgbmVlZGVkIHRvIGJlIGlubGluZSB3aXRoIGVQQVBSIHYwLjgxOgoKICAgICogcjQsIHI1IGFuZCBub3cgYWx3YXlzIHNldCB0byAwIG9uIGJvb3QgcmVsZWFzZQogICAgKiByNyBpcyB1c2VkIHRvIHBhc3MgdGhlIHNpemUgb2YgdGhlIGluaXRpYWwgbWFwIGFyZWEgKElNQSkKICAgICogRVBBUFJfTUFHSUMgdmFsdWUgY2hhbmdlZCBmb3IgYm9vay1lIHByb2Nlc3NvcnMKICAgICogY2hhbmdlcyBpbiB0aGUgc3BpbiB0YWJsZSBsYXlvdXQKICAgICogc3BpbiB0YWJsZSBzdXBwb3J0cyBhIDY0LWJpdCBwaHlzaWNhbCByZWxlYXNlIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI1ZWVkYjJjMTk1OGExMzExMGM3ZGUxZmM4MDliNjI0MDUzY2M2OWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDE5IDE1OjAyOjA3IDIwMDggLTA1MDAKCiAgICBGU0w6IENsZWFuIHVwIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vTWFrZWZpbGUKCiAgICBFYWNoIGZpbGUgdGhhdCBjYW4gYmUgYnVpbHQgaGVyZSBub3cgZm9sbG93cyBzb21lCiAgICBDT05GSUdfIG9wdGlvbiBzbyB0aGF0IHRoZXkgYXJlIGFwcHJvcHJpYXRlbHkgYnVpbHQKICAgIG9yIG5vdCwgYXMgbmVlZGVkLglBbmQgQ09ORklHXyBkZWZpbmVzIHdlcmUgYWRkZWQKICAgIHRvIHZhcmlvdXMgYm9hcmQgY29uZmlnIGZpbGVzIHRvIG1ha2Ugc3VyZSB0aGF0IGhhcHBlbnMuCgogICAgVGhlIG90aGVyIGJvYXJkL2ZyZWVzY2FsZS8qL01ha2VmaWxlcyBubyBsb25nZXIgbmVlZAogICAgdG8gcmVhY2ggdXAgYW5kIG92ZXIgaW50byAuLi9jb21tb24gdG8gYnVpbGQgdGhlaXIKICAgIGluZGl2aWR1YWxseSBuZWVkZWQgZmlsZXMgYW55IG1vcmUuCgogICAgQm9hcmRzIHRoYXQgYXJlIENEUyBzcGVjaWZpYyB3ZXJlIHJlbmFtZWQgd2l0aCBjZHNfIHByZWZpeC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1YWY0YjM1OGE3Y2FhOWMwYWEzNzRkNGQ4OTRiZjc2MmVjMzc2NjkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIyOjAwOjI3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBGaXggbWVyZ2UgZHVwbGljYXRpb24KCiAgICBmdF9maXh1cF9jcHUoKSBnb3QgZHVwbGljYXRlZCBpbiBzb21lIG1lcmdlIHNuYWZ1LglSZW1vdmUgdGhlIGR1cGxpY2F0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU4OTNiM2QwYTQwODRmODdhMDZhNWQzZGMwM2RiOTEyMDY4MTg5NDEKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMTIgMTY6MzU6MDcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEV4cGFuZCBDQ1NSIHNwYWNlIHdpdGggbW9yZSBERFIgY29udHJvbGxlciByZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTNlNzdmYTUzNTliM2Y5ZjU5ZTRlOTQ2YjQ2ZDU3YTUzMDU3Y2M4NQpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE4OjA1OjA4IDIwMDggLTA2MDAKCiAgICA4NXh4OiBTcGVlZCB1cCBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkKCiAgICBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkgdXNlZCBnZXRfc3lzX2luZm8oKSBlYWNoIHRpbWUgdGhleSB3ZXJlCiAgICBjYWxsZWQuICBIb3dldmVyLCBnZXRfc3lzX2luZm8oKSByZWNhbGN1bGF0ZXMgZXh0cmFuZW91cyBpbmZvcm1hdGlvbiB3aGVuCiAgICBjYWxsZWQgZWFjaCB0aW1lLiAgSGF2ZSBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkgcmV0dXJuIG1lbW9pemVkCiAgICB2YWx1ZXMgZnJvbSBnbG9iYWxfZGF0YSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTllYTY3OTkxOGZiYzlhNTNmYTJmMmE5MDRhYWM4NzRlYTczNjAzNgpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE2OjQ2OjI3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBTaG93IEREUiBtZW1vcnkgZGF0YSByYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtZW1vcnkgY2xvY2sgZnJlcXVlbmN5LgoKICAgIFNob3cgdGhlIEREUiBtZW1vcnkgZGF0YSByYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtZW1vcnkgY2xvY2sKICAgIGZyZXF1ZW5jeS4JRm9yIEREUi9ERFIyIG1lbW9yaWVzIHRoZSBtZW1vcnkgZGF0YSByYXRlIGlzIDJ4IHRoZQogICAgbWVtb3J5IGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTkxOTMzY2E2ZWFiYzQ0MGU2ZWQ2OTY3MjMzYWFmNTZmY2U0NjRhMwpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE2OjQ0OjUzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBnZXRfdGJjbGsoKSBzcGVlZCB1cCBhbmQgcm91bmRpbmcgZml4CgogICAgU3BlZWQgdXAgZ2V0X3RiY2xrKCkgYnkgcmVmZXJlbmNpbmcgcHJlLWNvbXB1dGVkIGJ1cyBjbG9jawogICAgZnJlcXVlbmN5IHZhbHVlIGZyb20gZ2xvYmFsIGRhdGEgaW5zdGVhZCBvZiBzeXNfaW5mb190LiAgRml4CiAgICByb3VuZGluZyBvZiByZXN1bHQgdG8gbmVhcmVzdDsgcHJldmlvdXNseSBpdCB3YXMgcm91bmRpbmcKICAgIHVwd2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxY2VkMTIxNjAwYjIwNjBhYjJmZjlmMGZkZGQ5NDIxZmQ3MGEwZGM2CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDYgMDE6MTk6NDAgMjAwOCAtMDYwMAoKICAgIFVwZGF0ZSBTVlIgbnVtYmVycyB0byBleHBhbmQgc3VwcG9ydAoKICAgIEZTTCBoYXMgdGFrZW4gdG8gdXNpbmcgU1ZSWzE2OjIzXSBhcyBhbiBTT0Mgc3ViLXZlcnNpb24gZmllbGQuICBUaGlzCiAgICBpcyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGNlcnRhaW4gdmFyaWFudHMgd2l0aGluIGFuIFNPQyBmYW1pbHkuICBUbwogICAgYWNjb3VudCBmb3IgdGhpcywgd2UgYWRkIHRoZSBTVlJfU09DX1ZFUigpIG1hY3JvLCBhbmQgdXBkYXRlIHRoZSBTVlJfKgogICAgY29uc3RhbnRzIHRvIHJlZmxlY3QgdGhlIGxhcmdlciB2YWx1ZS4gIFdlIGFsc28gYWRkIFNWUiBudW1iZXJzIGZvciBhbGwKICAgIG9mIHRoZSBjdXJyZW50IHZhcmlhbnRzLiAgRmluYWxseSwgdG8gbWFrZSB0aGluZ3MgbmVhdGVyLCByYXRoZXIgdGhhbgogICAgdXNlIGFuIGVub3Jtb3VzIHN3aXRjaCBzdGF0ZW1lbnQgdG8gcHJpbnQgb3V0IHRoZSBDUFUgdHlwZSwgd2UgY3JlYXRlCiAgICBhbmQgYXJyYXkgb2YgU1ZSL25hbWUgcGFpcnMgKHVzaW5nIGEgbWFjcm8pLCBhbmQgcHJpbnQgb3V0IHRoZSBDUFUgbmFtZQogICAgdGhhdCBtYXRjaGVzIHRoZSBTVlIgU09DIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4M2VlZjQ0MGNmM2NlZjgxNjE3MmNjYmI1ODk3Y2NkOGU0MDNjZjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgNiAwMToxMjo1NyAyMDA4IC0wNjAwCgogICAgQWRkIHRoZSBGcmVlc2NhbGUgUENJIGRldmljZSBJRHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2FmZjBjMDUxYWQwNjEzMTcxY2YyYjk5NDFlZTQ4Njc1YzYyZTdjZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBGZWIgMTQgMTE6MDQ6MjMgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEFkZGVkIHN1cHBvcnQgZm9yIG11bHRpY29yZSBib290IG1lY2hhbmlzbQoKICAgIEFkZGVkIHRoZSBjcHUgY29tbWFuZCB0aGF0IHByb3ZpZGVzIGEgZ2VuZXJpYyBtZWNoYW5pc20gdG8gZ2V0IHN0YXR1cywKICAgIHJlc2V0LCBhbmQgcmVsZWFzZSBzZWNvbmRhcnkgY29yZXMgaW4gbXVsdGljb3JlIHByb2Nlc3NvcnMuCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIGVQQVBSIGRlZmluZWQgc3Bpbi10YWJsZSBtZWNoYW5pc20gb24gODV4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjMmI3NGZmZDM2ZjAyYzYxMjM3MjVlN2MyNTMzZGQyZGVhZjRiNjQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDE2OjQ4OjMzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBBZGRlZCBzdXBwb3J0IGZvciBtdWx0aWNvcmUgYm9vdCBtZWNoYW5pc20KCiAgICBBZGRlZCB0aGUgY3B1IGNvbW1hbmQgdGhhdCBwcm92aWRlcyBhIGdlbmVyaWMgbWVjaGFuaXNtIHRvIGdldCBzdGF0dXMsCiAgICByZXNldCwgYW5kIHJlbGVhc2Ugc2Vjb25kYXJ5IGNvcmVzIGluIG11bHRpY29yZSBwcm9jZXNzb3JzLgoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBlUEFQUiBkZWZpbmVkIHNwaW4tdGFibGUgbWVjaGFuaXNtIG9uIDg1eHguCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNjk3NjZlNGI1ZDQ3ZWNkM2FhNTg2NzdhOGRhODc1Njk0ZjM2NGYyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAzMCAxNDo1NToxNCAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIHRoZSBjb25jZXB0IG9mIENGR19DQ1NSQkFSX1BIWVMKCiAgICBXaGVuIHdlIGdvIHRvIDM2LWJpdCBwaHlzaWNhbCBhZGRyZXNzZXMgd2UgbmVlZCB0byBrZWVwIHRoZSBjb25jZXB0IG9mCiAgICB0aGUgcGh5c2ljYWwgQ0NTUkJBUiBhZGRyZXNzIHNlcGVyYXRlIGZyb20gdGhlIHZpcnR1YWwgb25lLgoKICAgIEZvciB0aGUgbWFqb3JpdHkgb2YgYm9hcmRzIENGR19DQ1NCQVJfUEhZUyA9PSBDRkdfQ0NTUkJBUgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNWI1ZWI5Y2E1Yjc3OGY3NjNiY2YzMzI2OTdiMzVjYzFlNzQ3NjI2ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTU6Mzg6NDcgMjAwOCArMDEwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGE4ODA4ZGY3YTljZWY1YTNkMmVlMjg2ZWY5ZWJmOWRlMTc4MDY2MApBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglXZWQgTWFyIDI2IDEzOjAyOjEzIDIwMDggKzAxMDAKCiAgICBBZGQgQ0ZHX1JUQ19EUzEzMzdfTk9PU0MgdG8gdHVybiBvZmYgT1NDIG91dHB1dAoKICAgIFRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciBSVEMgRFMxMzM3IGtlZXBzIHRoZSBPU0MKICAgIG91dHB1dCwgMzIsNzY4IEh6LCBvbi4gVGhpcyBhZGQgQ0ZHX1JUQ19EUzEzMzdfTk9PU0MgdG8KICAgIHR1cm4gaXQgb2ZmLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgoKY29tbWl0IDQzOGE0YzExMjYwYjRlYTk4MDUwMzliMGI0ZjkyZjlkZjUzMDZiMDIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDExOjQ4OjQ2IDIwMDggKzAxMDAKCiAgICBDbGVhbnVwIGNvZGluZyBzdHlsZSwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjE4Y2E3MjRjMDhjYThhNjQ5ZjA5MTdjZjIwMWNmMjNkNGIzM2YzOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTA6NDA6MTIgMjAwOCArMDEwMAoKICAgIFJFQURNRTogdXBkYXRlIGRvY3VtZW50YXRpb24gKGF2YWlsYWJpbGl0eSwgbGlua3MsIGV0Yy4pCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmNmI0NGUwZTRkMThmZTUwNzgzM2EwZjc2ZDI0YTlhYTcyYzEyM2YxCkF1dGhvcjogQXJhcyBWYWljaGFzIDxhcmFzdkBtYWd0ZWNoLmNvbS5hdT4KRGF0ZToJVHVlIE1hciAyNSAxMjowOTowNyAyMDA4ICsxMTAwCgogICAgVVNCIFN0b3JhZ2UsIGFkZCBtZWFuaW5nZnVsIHJldHVybiB2YWx1ZQoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgInVzYiBzdG9yYWdlIiBjb21tYW5kIHRvIHJldHVybiBzdWNjZXNzIGlmIGl0CiAgICBmaW5kcyBhIFVTQiBzdG9yYWdlIGRldmljZSwgb3RoZXJ3aXNlIGl0IHJldHVybnMgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxOGU2OWEzNWVmYmIwNzg0MDNkYjBjMDA2Mzk4NjQ3MGRhZDdkMDgyCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMjM6MjA6MTggMjAwOCArMDMwMAoKICAgIDgzeHgvZmR0X3N1cHBvcnQ6IGxldCB1c2VyIHNwZWNpZml5IEZTTCBVU0IgRHVhbC1Sb2xlIGNvbnRyb2xsZXIgcm9sZQoKICAgIExpbnV4IHVuZGVyc3RhbmRzICJob3N0IiAoZGVmYXVsdCksICJwZXJpcGhlcmFsIiBhbmQgIm90ZyIgKGJyb2tlbikuCiAgICBUaG91Z2gsIFUtQm9vdCBkb2Vzbid0IHJlc3RyaWN0IGRyX21vZGUgdmFyaWFibGUgdG8gdGhlc2UgdmFsdWVzICh0aGluawogICAgb2YgcmVuYW1lcyBpbiBmdXR1cmUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNzYwNDc4M2IyMzZlMzY4ZjIyNWVmYjdiM2VmYjQxOGZlMjBiNDA0CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMjM6MjA6MzAgMjAwOCArMDMwMAoKICAgIHRzZWM6IGZpeCBsaW5rIGRldGVjdGlvbiBmb3IgdGhlIFJUTDgyMTFCIFBIWQoKICAgIFJUTDgyMTFCIHNldHMgbGluayBzdGF0ZSByZWdpc3RlciBhZnRlciBhdXRvbmVnb3RpYXRpb24gY29tcGxldGUsCiAgICBzbyB3aXRoIGJvb3RkZWxheT0wIFJUTDgyMTFCIHdpbGwgcmVwb3J0IGxhY2sgb2YgdGhlIGxpbmsuCgogICAgVG8gZml4IHRoaXMsIHdlIHNob3VsZCB3YWl0IGZvciBhbmVnIHRvIGNvbXBsZXRlLCBldmVuIGlmIHRoZQogICAgbGluayBpcyBjdXJyZW50bHkgZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ZhOWNiYjAwZGM4M2ZjZjE3NTA0MmI2ZjIwYzJjOWJjZTlhMTVmNApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ3OjA5IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBhZGQgImZzbCxzb2MiIGFuZCAiZnNsLGltbXIiIGNvbXBhdGlibGUgZml4dXBzCgogICAgZGV2aWNlX3R5cGUgPSAic29jIiBpcyBiZWluZyBkZXByZWNhdGVkLCBuZXdlciBkZXZpY2UgdHJlZXMgd2lsbCB1c2UKICAgICJmc2wsc29jIiBhbmQvb3IgImZzbCxpbW1yIiBmb3IgdGhlIHNvYyBub2Rlcy4KCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBjbG9jay1mcmVxdWVuY3kgcHJvcGVydHkgZm9yIHNvYyBub2RlcyAodGhlIHNhbWUKICAgIHZhbHVlIGFzIGJ1cy1mcmVxdWVuY3kpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDUwN2UyZDc5YzkxNDQxYTBiYjJjZDNkMGMzMWM4YmZlM2Y4Y2VjMDcKQXV0aG9yOiBKb2UgRCdBYmJyYWNjaW8gPGxqZDAxNUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDI0IDEzOjAwOjU5IDIwMDggLTA0MDAKCiAgICBNb2RpZmllZCB0aGUgRERSIFNEUkFNIGNsb2NrIGNvbnRyb2wgcmVnaXN0ZXIgdG8gZGVsYXkgTUNLL01DS19CIDMvNCBjbG9jawoKICAgIFdpdGggdGhlIG9yaWdpbmFsIHZhbHVlIG9mIDEvMiBjbG9jayBjeWNsZSBkZWxheSwgdGhlIHN5c3RlbSByYW4gcmVsYXRpdmVseQogICAgc3RhYmxlIGV4Y2VwdCB3aGVuIHdlIHJ1biBiZW5jaG1hcmtzIHRoYXQgYXJlIGludGVuc2l2ZSB1c2VycyBvZiBtZW1vcnkuCiAgICBXaGVuIEkgcnVuIHNhbWJhIGNvbm5lY3RlZCBkaXNrIHdpdGggYSBIREJFTkNIIHRlc3QsIHRoZSBzeXN0ZW0gbG9ja3MtdXAKICAgIG9yIHJlYm9vdHMgc3BvcmFkaWNhbGx5LgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBEJ0FiYnJhY2NpbyA8Sm9lLkQnYWJicmFjY2lvQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTdiYTMyZDQ4MGE4NmRiNWRiOGRjZDhjYTY2YjIxYjRjYWRkYTkyMwpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDI0IDEyOjQ0OjEzIDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBTZXQgUENJIEkvTyBidXMtYWRkcmVzcyBiYXNlIHRvIHplcm8uCgogICAgVGhlIGRldmljZSB0cmVlcyBmb3IgdGhlc2UgYm9hcmRzIGRlc2NyaWJlIFBDSSBJL08gYXMgc3RhcnRpbmcgZnJvbQogICAgYWRkcmVzcyB6ZXJvIGZyb20gdGhlIGRldmljZSdzIHBlcnNwZWN0aXZlLgoKICAgIFBsYWNpbmcgSS9PIGVsc2V3aGVyZSBtYXkgY2F1c2UgcHJvYmxlbXMgd2l0aCBjZXJ0YWluIFBDSSBib2FyZHMsIGFuZCBtYXkKICAgIGNhdXNlIHByb2JsZW1zIHdpdGggTGludXguCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjcwMGU3ZGY3ZmVjZjJkMzc2NWFlNTY4Y2U3N2NlNzg4Y2RlNGYzZQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ3OjA1IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBNUEM4MzYwRS1SREs6IHVzZSAzMy4zKDMpTUh6IENMS0lOL1NZU19DTEsKCiAgICBBdCBsZWFzdCBvbiB0aGUgIjMzTUh6IFBpbG90IiBib2FyZCBjcnlzdGFsIGlzIGFjdHVhbGx5IDMzLjNNSHouCiAgICBUaGlzIHBhdGNoIGZpeGVzICJzeXN0ZW0gdGltZSBkcmlmdGluZyIgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCAzYTBjZmRkNTc2ZGM5YjE2ZDE0NjhkMzczMzkxODI2MDdjNjk3ZmI3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDc6MDIgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCgogICAgVGhpcyBpcyBuZWVkZWQgdG8gdXBkYXRlIC9jaG9vc2VuL2xpbnV4LHN0ZG91dC1wYXRoIHByb3Blcmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDM0MTllYjYyZjA4OGQ3YTIyZjFkMmEzY2ViZjc2Yjc3ZTQwOGI1YjkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NzowMCAyMDA4ICswMzAwCgogICAgbXBjODN4eDogTVBDODM2MEUtUkRLOiBhZGQgZGhjcCBjb21tYW5kCgogICAgUGx1cyBtb2RpZnkgZW52aXJvbm1lbnQgdG8gdXNlIGl0IGFuZCByZW1vdmUgYm9vdGZpbGUgZW52IHZhcmlhYmxlLAogICAgaXQgaXMgaW50ZXJuYWwgYW5kIENPTkZJR19CT09URklMRSBpcyB1c2VkIGZvciB0aGVzZSBwdXJwb3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBkODkyYjJkYmI0MDg3YTI2Nzc4YmZkNDI0NzBjM2VhN2QwZTJiNmFhCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NTcgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogcmV3b3JrIGRkciBzZXR1cCwgZW5hYmxlIGVjYwoKICAgIEN1cnJlbnQgRERSIHNldHVwIGVhc2lseSBjYXVzZXMgbWVtb3J5IGNvcnJ1cHRpb24sIHRoaXMgcGF0Y2ggZml4ZXMgaXQuCgogICAgQWxzbyBmaXggVElNSU5HX0NGRzBfTVJTX0NZQyBkZWZpbml0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGQ0N2Q0OWNjMzdhMzhmMjcxOWEzZTFiOWJiZTA4YWM4MTBjZjJkOWEKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0Njo1MyAyMDA4ICswMzAwCgogICAgbXBjODN4eDogTVBDODM2MEUtUkRLOiBjb25maWd1cmUgcGFyaW8gcGlucyBmb3IgQUQ3ODQzIGFuZCBGSENJCgogICAgVGhpcyBwYXRjaCBhZGRzIHFlIHBhcmlvIHBpbnMgY29uZmlndXJhdGlvbiBmb3IgQUQ3ODQzIEFEQy9Ub3VjaHNjcmVlbgogICAgY29udHJvbGxlciBhbmQgRkhDSSAoUUUgVVNCKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA3YWQ5NTk0OTA5NjJlNjg0MjY0OGQ4N2Q0YmQ3OTVlYTZjZGNjZTY3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NTEgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogYWRkIHN1cHBvcnQgZm9yIE5BTkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA5YTNlODMyYWViNDkxODYxZDAyOTk5MTI0MTU3MmViZGY0YjViNjFiCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NDYgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogdXNlIFJHTUlJX1JYSUQgaW50ZXJmYWNlIG1vZGUKCiAgICBUaGlzIGlzIG5lZWRlZCBmb3IgQkNNIFBIWXMgdG8gd29yayBvbiB0aGlzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDMwMDYxNWRjNWQ5YjBhMjAyMmZiYzZhZjBjMTMxNTllMzNmZDc1MmUKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NjozNCAyMDA4ICswMzAwCgogICAgdWVjOiBhZGQgc3VwcG9ydCBmb3IgQnJvYWRjb20gQkNNNTQ4MSBHaWdhYml0IFBIWQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciBCcm9hZGNvbSBCQ001NDgxIFBIWS4KCiAgICBSWEQtUlhDIGRlbGF5IHF1aXJrIGNvbWVzIGZyb20gTVBDODM2MEUtUkRLIEJTUCBzb3VyY2UsIGF1dGhvciBpcwogICAgUGV0ZXIgQmFyYWRhIDxwZXRlcmJAbG9naWNwZC5jb20+LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDZhNjAwYzNhMTg3NmJjMjAzNDQ1ZGY0ZjBmZDZiMTI2NDgyNTk2NjYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NjoyOCAyMDA4ICswMzAwCgogICAgdWVjOiBhZGQgc3VwcG9ydCBmb3IgUkdNSUlfUlhJRCBpbnRlcmZhY2UgbW9kZQoKICAgIFBIWSBkcml2ZXJzIHdpbGwgdXNlIGl0IHRvIHNldHVwIHNvZnR3YXJlIGRlbGF5IGJldHdlZW4gUlhEIGFuZCBSWEMKICAgIHNpZ25hbHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgOTFjZGFhM2E5ZDc1NjJiODY5ZDk2Nzc0ZTljOWRkZjE0MmMwODQ4ZApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ2OjI0IDIwMDggKzAzMDAKCiAgICB1ZWM6IGFkZCBzdXBwb3J0IGZvciBnYml0IG1paSBzdGF0dXMgcmVhZGluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBhYWJjZTdmYjUwNWZmZTU1ZWJmM2JmNGRjYWZkYWU5N2E1ODE1NThkCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTc6NDA6NDcgMjAwOCArMDMwMAoKICAgIDgzeHg6IGRlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUyBmb3IgdGhlIE1QQzgzN1hFUkRCIGJvYXJkcwoKICAgIFRoaXMgaXMgcHJpbWFyaWx5IGZvciB0aGUgZWFybHkgY29uc29sZSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDJiZDc0NjBlOTI4M2VjOTg1NjUxODliM2NkYmNmYjJiY2RjZGQ2MzUKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxNzo0MDo0MyAyMDA4ICswMzAwCgogICAgODN4eDogaW5pdGlhbGl6ZSBzZXJkZXMgZm9yIE1QQzgzN1hSREIgYm9hcmRzCgogICAgT24gdGhlIE1QQzgzNzdFUkRCOiAyIFNBVEEgYW5kIDIgUENJLUUuCiAgICBPbiB0aGUgTVBDODM3OEVSREI6IDIgUENJLUUKICAgIE9uIHRoZSBNUEM4Mzc5RVJEQjogNCBTQVRBCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNDUzMzE2YTJhMTk2NDJkOGFmY2JjYTc0NTJlNDBhNmI0NGExOTdiMQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDE3OjQwOjMyIDIwMDggKzAzMDAKCiAgICA4M3h4OiBzZXJkZXMgc2V0dXAgcm91dGluZXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgZmV3IHJvdXRpbmVzIHRvIGNvbmZpZ3VyZSBzZXJkZXMgb24gODM3eCB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGE3OTZjZGY5YzM3N2NiNGU1ZDYxZDEwNzlhMjk2NjA4ZjhmYmQ5MDMKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxNzo0MDoyNyAyMDA4ICswMzAwCgogICAgODN4eDogc3BsaXQgQ09CSlMgb250byBzZXBhcmF0ZSBsaW5lcwoKICAgIC4ucGx1cyBnZXQgcmlkIG9mIHNvbWUgI2lmZGVmcyBpbiB0aGUgLmMgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNDZhM2FlZWE3M2MxM2FiMDRlYmY3YTg3MzlhZmI4N2FjNWRhOTRhMwpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDE3OjQwOjIzIDIwMDggKzAzMDAKCiAgICA4M3h4OiBuYW5kIHN1cHBvcnQgZm9yIE1QQzgzN1hSREIgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgODJlNDVhMjA0MTkwNTkzZTg2MTMxNDVhOTI4Zjk5OGZiOGM5MDljNApBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJVHVlIE1hciAxOCAyMTo0NDo0MSAyMDA4IC0wNDAwCgogICAgRW5hYmxlIENPTkZJR19GTEFTSF9TSE9XX1BST0dSRVNTIG9uIHRoZSBNUEM4MzYwRU1EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZmE3YTFiNDcxOWUzMjVmY2UzMzI2ODlmYjg3NTRlYzE2NjE5MWZmCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXIgMjAgMTM6MTU6MzkgMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiByZW1vdmUgUlRDIGFuZCBhZGQgRUVQUk9NCgogICAgVGhlcmUncyBubyBvbi1ib2FyZCBSVEMgb24gdGhlIE1QQzgzMjNFUkRCLCBidXQgdGhlcmUgaXMgYW4gRUVQUk9NLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWJiZWVhODZlYjZhZmI4NzIzNzRjZDIzMjE3Y2IzYzEwMTg0NDNlZApBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDIwIDEzOjE1OjM0IDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogSW1wcm92ZSB0aGUgc3lzdGVtIHBlcmZvcm1hbmNlCgogICAgVGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFyZSBiYXNlZCBvbiBrZXJuZWwgVUNDIGV0aGVybmV0IHBlcmZvcm1hbmNlOgoKICAgIDEuCU1ha2UgdGhlIENTQiBidXMgcGlwZWxpbmUgZGVwdGggYXMgNCwgYW5kIGVuYWJsZSB0aGUgcmVwZWF0IG1vZGUKICAgIDIuCU9wdGltaXplIHRyYW5zYWN0aW9ucyBiZXR3ZWVuIFFFIGFuZCBDU0IuICBBZGRlZCBDRkdfU1BDUl9PUFQKCXN3aXRjaCB0byBlbmFibGUgdGhpcyBzZXR0aW5nLgoKICAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhcmUgYmFzZWQgb24gdGhlIEFwcCBOb3RlIEFOMzM2OSBhbmQKICAgIHZlcmlmaWVkIHRvIGltcHJvdmUgbWVtb3J5IGxhdGVuY3kgdXNpbmcgTE1iZW5jaDoKCiAgICAzLglDUzBfQ09ORklHW0FQX25fRU5dIGlzIGNoYW5nZWQgZnJvbSAxIHRvIDAKICAgIDQuCUNTMF9DT05GSUdbT0RUX1dSX0NPTkZJR10gc2V0IHRvIDEuICBXYXMgYSByZXNlcnZlZCBzZXR0aW5nCglwcmV2aW91c2x5LgogICAgNS4JVElNSU5HX0NGR18xW1dSUkVDXSBpcyBjaGFuZ2VkIGZyb20gM2Nsa3MgdG8gMmNsa3MgIChiYXNlZCBvbgoJVHdyPTE1bnMsIGFuZCB0aGlzIHdhcyBhbHJlYWR5IHRoZSBzZXR0aW5nIGluIEREUl9NT0RFKQogICAgNi4JVElNSU5HX0NGR18xW1BSRVRPQUNUXSBpcyBjaGFuZ2VkIGZyb20gM2Nsa3MgdG8gMmNsa3MuIChiYXNlZCBvbgoJVHJwPTE1bnMpCiAgICA3LglUSU1JTkdfQ0ZHXzFbQUNUVE9QUkVdIGlzIGNoYW5nZWQgZnJvbSA5Y2xrcyB0byA2Y2xrcy4gKGJhc2VkIG9uCglUcmFzPTQwbnMpCiAgICA4LglUSU1JTkdfQ0ZHXzFbQUNUVE9SV10gaXMgY2hhbmdlZCBmcm9tIDNjbGtzIHRvIDJjbGtzLiAoYmFzZWQgb24KCVRyY2Q9MTVucykKICAgIDkuCVRJTUlOR19DRkdfMVtSRUZSRUNdIGNoYW5nZWQgZnJvbSAyMSBjbGtzIHRvIDExY2xrcy4gIChiYXNlZCBvbgoJVHJmYz03NW5zKQogICAgMTAuIFRJTUlOR19DRkdfMltGT1VSX0FDVF0gaXMgY2hhbmdlZCBmcm9tIDEwIGNsa3MgdG8gN2Nsa3MuICAoYmFzZWQKCW9uIFRmYXc9NTBucykKICAgIDExLiBUSU1JTkdfQ0ZHXzJbQUREX0xBVF0gYW5kIEREUl9NT0RFW0FMXSBjaGFuZ2VkIGZyb20gMCB0byAxIChiYXNlZAoJb24gQ0w9MyBhbmQgV0w9MikuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYzU0OWM4NzFmNDM5MzMzOTZhNWIzZTIxZDg5NzAyM2Q0YjMxYjhkCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXIgMjAgMTM6MTU6MjggMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiB1c2UgcmVhZGFibGUgRERSIGNvbmZpZyBtYWNyb3MKCiAgICBVc2UgYXZhaWxhYmxlIHNoaWZ0L21hc2sgbWFjcm9zIHRvIGRlZmluZSBERFIgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5Yzc3ODRlZDkwYmE1MDMwMWVlYzUyMTE0NGY5NTExMWU0NzI5MDYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDggMTM6MTU6NTUgMjAwOCAtMDYwMAoKICAgIDgzeHg6IEFkZCBWaXRlc3NlIFZTQzczODUgZmlybXdhcmUgdXBsb2FkaW5nCgogICAgVXBkYXRlIHRoZSBNUEM4MzQ5RS1tSVRYLCBNUEM4MzEzRS1SREIsIGFuZCBNUEM4MzdYRS1SREIgYm9hcmQgZmlsZXMgdG8gdXBsb2FkCiAgICB0aGUgVml0ZXNzZSBWU0M3Mzg1IGZpcm13YXJlLiAgQ2hhbmdlZCBDT05GSUdfVlNDNzM4NSB0byBDT05GSUdfVlNDNzM4NV9FTkVULgogICAgQ2xlYW5lZCB1cCB0aGUgYm9hcmQgaGVhZGVyIGZpbGVzIHRvIG1ha2Ugc2VsZWN0aW5nIHRoZSBWU0M3Mzg1IGVhc2llciB0bwogICAgY29udHJvbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNTVkOThjNmQ1Yjg2OTRlNTYwYTBlNzI3YjE0Y2I2OTIxZDdjZmNjCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDEzOjE1OjU0IDIwMDggLTA2MDAKCiAgICBORVQ6IEFkZCBWaXRlc3NlIFZTQzczODUgZmlybXdhcmUgdXBsb2FkaW5nCgogICAgVGhlIFZpdGVzc2UgVlNDNzM4NSBpcyBhIDUtcG9ydCBzd2l0Y2ggZm91bmQgb24gdGhlIEZyZWVzY2FsZSBNUEM4MzQ5RS1tSVRYCiAgICBhbmQgb3RoZXIgYm9hcmRzLiAgQSBzbWFsbCBmaXJ3bWFyZSBtdXN0IGJlIHVwbG9hZGVkIHRvIGl0cyBvbi1ib2FyZCBtZW1vcnkKICAgIGJlZm9yZSBpdCBjYW4gYmUgZW5hYmxlZC4gIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29kZSB3aGljaCB1cGxvYWRzIGZpcm13YXJlCiAgICAoYnV0IG5vdCB0aGUgZmlybXdhcmUgaXRzZWxmKS4KCiAgICBQcmV2aW91c2x5LCB0aGlzIGZlYXR1cmUgd2FzIHByb3ZpZGVkIGJ5IGEgVS1Cb290IGFwcGxpY2F0aW9uIHRoYXQgd2FzCiAgICBtYWRlIGF2YWlsYWJsZSBvbmx5IG9uIEZyZWVzY2FsZSBCU1BzLiAgVGhlIFZTQzczODUgZmlybXdhcmUgbXVzdCBzdGlsbAogICAgYmUgb2J0YWluZWQgc2VwYXJhdGVseSwgYnV0IGF0IGxlYXN0IHRoZXJlIGlzIG5vIGxvbmdlciBhIG5lZWQgZm9yIGEgc2VwYXJhdGUKICAgIGFwcGxpY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhYTZmNmQxNzFhMWY5ZjQ2ZWU0ZjAzYWQ2YWNiOTdhNmJmYjcxODU1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAwMDo1MjoxMCAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFueXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQzZGRkOWM4MjBmZWM0NDgxNjE4OGY1MzM0NmI0NjRlMjBiMzE0MmQKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVNhdCBNYXIgMjIgMTQ6MjM6NDkgMjAwOCAtMDQwMAoKICAgIFJlbW92ZSBkZXByZWNhdGVkIENPTkZJR19PRl9IQVNfVUJPT1RfRU5WIGFuZCBDT05GSUdfT0ZfSEFTX0JEX1QKCiAgICBUaGVzZSBkZWZpbmVzIGVtYmVkZGVkIHRoZSB1LWJvb3QgZW52IHZhcmlhYmxlcyBhbmQvb3IgdGhlIGJkX3Qgc3RydWN0dXJlCiAgICBpbiB0aGUgZmR0IGJsb2IuICBUaGUgY29uY2x1c2lvbiBvZiBkaXNjdXNzaW9uIG9uIHRoZSB1LWJvb3QgZW1haWwgbGlzdAogICAgd2FzIHRoYXQgZW1iZWRkaW5nIHRoZXNlIGluIHRoZSBmZHQgYmxvYiBpcyBub3QgdXNlZnVsOiB0aGVyZSBhcmUgYmV0dGVyCiAgICB3YXlzIG9mIHBhc3NpbmcgdGhlIGRhdGEgKGluIGZhY3QsIHRoZSBmZHQgYmxvYiBpdHNlbGYgcmVwbGFjZXMgdGhlCiAgICBiZF90IHN0cnVjdCkuCgogICAgVGhlIG9ubHkgYm9hcmQgdGhhdCBlbmFibGVzIHRoZXNlIGlzIHRoZSBzdHh4dGMgYW5kIHRoZXkgZG9uJ3QgYXBwZWFyCiAgICB0byBiZSB1c2VkIGJ5IGxpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmVkMjI4NTc0MzM1OWZkMWZlNzNlNDExZGZmOTE0YjIyNTZlNjhmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTWFyIDE3IDEwOjQ5OjI1IDIwMDggKzAxMDAKCiAgICBydGM6IFJlbW92ZSAybmQgcmVmZXJlbmNlIHRvIG1heDY5MDAubyBpbiBkcml2ZXJzL3J0Yy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmI3MDdjMzlhMDgzM2U5MWQ5Zjc5N2RkODYyYWFhYWY0YWYyNjRkCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBNYXIgMTcgMDg6NTQ6MDYgMjAwOCArMDkwMAoKICAgIEFkZCBGbGV4LU9uZU5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgRmxleC1PbmVOQU5EIGlzIGEgbW9ub2xpdGhpYyBpbnRlZ3JhdGVkIGNpcmN1aXQgd2l0aCBhIE5BTkQgRmxhc2ggYXJyYXkKICAgIHVzaW5nIGEgTk9SIEZsYXNoIGludGVyZmFjZS4gVGhpcyBvbi1jaGlwIGludGVncmF0aW9uIGVuYWJsZXMgc3lzdGVtIGRlc2lnbmVycwogICAgdG8gcmVkdWNlIGV4dGVybmFsIHN5c3RlbSBsb2dpYyBhbmQgdXNlIGhpZ2gtZGVuc2l0eSBOQU5EIEZsYXNoCiAgICBpbiBhcHBsaWNhdGlvbnMgdGhhdCB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byB1c2UgbW9yZSBOT1IgY29tcG9uZW50cy4KCiAgICBGbGV4LU9uZU5BTkQgZW5hYmxlcyB1c2VycyB0byBjb25maWd1cmUgdG8gcGFydGl0aW9uIGl0IGludG8gU0xDIGFuZCBNTEMgYXJlYXMKICAgIGluIG1vcmUgZmxleGlibGUgd2F5LiBXaGlsZSBNTEMgYXJlYSBvZiBGbGV4LU9uZU5BTkQgY2FuIGJlIHVzZWQgdG8gc3RvcmUgZGF0YQogICAgdGhhdCByZXF1aXJlIGxvdyByZWxpYWJpbGl0eSBhbmQgaGlnaCBkZW5zaXR5LCBTTEMgYXJlYSBvZiBGbGV4LU9uZU5BTkQKICAgIHRvIHN0b3JlIGRhdGEgdGhhdCBuZWVkIGhpZ2ggcmVsaWFiaWxpdHkgYW5kIGhpZ2ggcGVyZm9ybWFuY2UuIEZsZXgtT25lTkFORAogICAgY2FuIGxldCB1c2VycyB0YWtlIGFkdmFudGFnZSBvZiBzdG9yaW5nIHRoZXNlIHR3byBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YQogICAgaW50byBvbmUgY2hpcCwgd2hpY2ggaXMgbWFraW5nIEZsZXgtT25lTkFORCBtb3JlIGNvc3QtIGFuZCBzcGFjZS1lZmZlY3RpdmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBjNTEyMzg5Y2M0YTEwMjUzMjQ5MjcxZmY2Yzg4N2M2ZGFiMWYwZGIyCkF1dGhvcjogQW5kcsOpIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJVGh1IE1hciAxMyAxMzo1MDo1MiAyMDA4ICswMTAwCgogICAgTVBDNTIwMDogc3VwcG9ydCBzZXR1cCB3aXRob3V0IEZFQwoKICAgIEluY2x1ZGUgRkVDIHNwZWNpZmljIG5vZGVzIGluIGZ0X2NwdV9zZXR1cCBvbmx5IGlmIENPTkZJR19NUEM1eHh4X0ZFQyBpcwogICAgZGVmaW5lZC4gU3lzdGVtcyB3aXRob3V0IEZFQywgaS5lLiBubyBGRUMgbm9kZSBpbiBEVEIsIHNob3VsZCBiZSBwb3NzaWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGFhMzUxMWU0MjI5NDYwNDFlZjYyNmY4MGEwNWFlNWU4YmZjNzAwZTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDUgMTg6MDU6NDYgMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZSBib2FyZC9tcGM4MjY2YWRzIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2YxZDg0NmU1YzU3NTQ0NDljMjg2NTg3ZDA5OWQ4NTI0NjA2Mjc3MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxODowNTo0NyAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzc0NDhocGMyIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjdlMjRkMjgzZTM0NzI3YzJhNmNkZmRhYzJlMDlhNDI2YzU3OWI3MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxODowNTo0NSAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzgyNjBhZHMgdW5kZXIgYm9hcmQvZnJlZXNjYWxlCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YThhNWRjNDc1OTg2N2M0NWFhOTU1ODBkZWI4YmYyNjY2OWE1ZDk3CkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTc6MDg6MzMgMjAwOCArMDkwMAoKICAgIG5ldDogQWRkIHN1cHBvcnQgQVg4ODc5NkwgZXRoZXJuZXQgZGV2aWNlCgogICAgQVg4ODc5NkwgaXMgZGV2aWNlIG9mIE5FMjAwMCBjb21wYXRpYmxlLgogICAgVGhpcyBwYXRjaCBzdXBwb3J0IEFYODg3OTZMIGV0aGVybmV0IGRldmljZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBBY2tlZC1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGUwYTYxNDBkZDM4MWUxZWVkMWFkYTIyOTExNjZlZjI2MTZkODgyMmIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDI1IDIyOjUwOjQxIDIwMDggKzAxMDAKCiAgICBuZTIwMDAgZHJpdmVyOiBjaGFuZ2UgI2lmZGVmIHRvIE1ha2VmaWxlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlNzEwMTg1YWFlOTBjNjRkMzljMmQ0NTNlNDBlNThjZWVmZTRmMjUwCkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTc6MDg6MjAgMjAwOCArMDkwMAoKICAgIG5ldDogRGl2aWRlZCBjb2RlIG9mIE5FMjAwMCBldGhlcm5ldCBkcml2ZXIKCiAgICBUaGVyZSBhcmUgbW9yZSBkZXZpY2VzIG9mIHRoZSBORTIwMDAgYmFzZS4KICAgIEEgcHJlc2VudCBjb2RlIGlzIGRpZmZpY3VsdCBmb3IgdXMgdG8gc3VwcG9ydCBtb3JlIGRldmljZXMuCiAgICBUbyBzdXBwb3J0IG1vcmUgTkUyMDAwIGNsb25lIGRldmljZXMsIHNlcGFyYXRlZCB0aGUgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgogICAgQWNrZWQtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzOTViY2U0ZjU5YTUwN2E2MGE0NzVmN2VlNDZiZWQ0N2RlOTQ4MmRmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gRmViIDI0IDIzOjU4OjEzIDIwMDggLTA1MDAKCiAgICBuZXQvQmxhY2tmaW46IG1vdmUgb24tY2hpcCBNQUMgZHJpdmVyIGludG8gZHJpdmVycy9uZXQvCgogICAgVGhlIEJsYWNrZmluIG9uLWNoaXAgTUFDIGRyaXZlciB3YXMgYmVpbmcgbWFuYWdlZCBpbiB0aGUgQkY1MzctU1RBTVAgYm9hcmQKICAgIGRpcmVjdG9yeSwgYnV0IGl0IGlzIG5vdCBib2FyZCBzcGVjaWZpYywgc28gcmVsb2NhdGUgaXQgdG8gdGhlIGRyaXZlcnMgZGlyCiAgICBzbyB0aGF0IG90aGVyIEJsYWNrZmluIHBvcnRzIGNhbiB1dGlsaXplIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4YTMwYjQ3MDA5NDJmMzc0OTVkMmU2N2Y1OTk4Y2RmZmI2ZTNiYThhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gRmViIDI0IDIzOjUyOjM1IDIwMDggLTA1MDAKCiAgICBzbWM5MTExMTogdXNlIFNTWU5DKCkgcmF0aGVyIHRoYW4gYXNtKHNzeW5jKSBmb3IgQmxhY2tmaW4KCiAgICBTaW5jZSB0aGUgInNzeW5jIiBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBoYXJkd2FyZSBhbm9tYWxpZXMgYXNzb2NpYXRlZCB3aXRoCiAgICBpdCwgaGF2ZSB0aGUgc21jOTExMTEgZHJpdmVyIHVzZSB0aGUgU1NZTkMgbWFjcm8gcmF0aGVyIHRoYW4gaW52b2tpbmcgaXQKICAgIGRpcmVjdGx5LiAgV2Ugd29ya2Fyb3VuZCBhbGwgdGhlIGFub21hbGllcyB2aWEgdGhpcyBtYWNyby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzdmZjdiNzQ0NGNlYjgwMjJiNDYxMTRmM2QwYjZkMThlMmZkMTEzOApBdXRob3I6IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4KRGF0ZToJU3VuIEZlYiAxNyAyMjo1Nzo0NyAyMDA4ICswMDAwCgogICAgOHh4OiBVcGRhdGUgT0Ygc3VwcG9ydCBvbiA4eHgKCiAgICBUaGlzIHBhdGNoIGRvZXMgc29tZSBzaGlmdGluZyBhcm91bmQgb2YgT0Ygc3VwcG9ydCBvbiA4eHguCgogICAgU2lnbmVkLW9mZi1ieTogQnJ5YW4gTydEb25vZ2h1ZSA8Ym9kb25vZ2h1ZUBjb2RlaGVybWl0LmllPgoKY29tbWl0IDljNjY2YTdkYjBiMjI4NWEyNzBjNjg4MTA4ODljZTdkNWRiYTMwNGIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRmViIDE1IDE1OjE2OjE4IDIwMDggLTA2MDAKCiAgICBwcGM6IEFsbG93IGJvYXJkcyB0byBzcGVjaWZ5IGhvdyBtdWNoIG1lbW9yeSB0aGV5IGNhbiBtYXAKCiAgICBGb3IgaGlzdG9yaWNhbCByZWFzb25zIHdlIGxpbWl0ZWQgdGhlIHN0YWNrIHRvIDI1Nk0gYmVjYXVzZSBzb21lIGJvYXJkcwogICAgY291bGQgb25seSBtYXAgdGhhdCBtdWNoIHZpYSBCQVRTLglIb3dldmVyIG5ld2VyIGJvYXJkcyBhcmUgY2FwYWJsZSBvZgogICAgbWFwcGluZyBtb3JlIG1lbW9yeSAoZm9yIGV4YW1wbGUgODV4eCBpcyBjYXBibGUgb2YgZG9pbmcgdXAgdG8gMkcpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTZmNWYzMTdjZDA3NGJiYmZhMmFhYjRmY2EwNTkwNGM4MTFjMTlmYgpBdXRob3I6IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4KRGF0ZToJRnJpIEZlYiAxNSAwMTowNTo1OCAyMDA4ICswMDAwCgogICAgOHh4IDogQWRkIE9GIHN1cHBvcnQgdG8gQWRkZXI4NzUgYm9hcmQgcG9ydCAtIHJlc3VibWl0CgogICAgU2lnbmVkLW9mZi1ieTogQnJ5YW4gTydEb25vZ2h1ZSA8Ym9kb25vZ2h1ZUBjb2RlaGVybWl0LmllPgoKY29tbWl0IGQwNTg2OThmZDJkOWY3NjlmZjM4YWM1M2M4NzA4YjNmZGQzMTRmMmQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgRmViIDE0IDIwOjQ0OjQyIDIwMDggLTA2MDAKCiAgICBBZGQgc2V0ZXhwciBjb21tYW5kCgogICAgQWRkIGEgc2ltcGxlIGV4cHIgc3R5bGUgY29tbWFuZCB0aGF0IHdpbGwgc2V0IGFuIGVudiB2YXJpYWJsZSBhcyB0aGUgcmVzdWx0CiAgICBvZiB0aGUgY29tbWFuZC4gIFRoaXMgYWxsb3dzIHVzIHRvIGRvIHNpbXBsZSBtYXRoIGluIHNoZWxsLiAgVGhlIGZvbGxvd2luZwogICAgb3BlcmF0aW9ucyBhcmUgc3VwcG9ydGVkOiAmLCB8LCBeLCArLCAtLCAqLCAvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2YxMDVmYWE2NGI5ODI2ZTA4ODcxMWZkZmNhYTcwY2IxMjMwMzk3YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxNzoyNzo0OCAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzc0NDhocGMyIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDQ5YzcwMzM3NGE4ODY4NDUzNDI1ZTE1ZGE3ZTJmNzYyMjFiNzJlNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxNzoyMTo0MyAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzgyNjZhZHMgdW5kZXIgYm9hcmQvZnJlZXNjYWxlCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ODYzNTc3OTg5YWQ2ODk0MjdiYjc1MDEwN2U5YTc1ZjFjMTY0NWQyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE2OjQxOjQxIDIwMDggLTA2MDAKCiAgICBGU0w6IE1vdmUgYm9hcmQvbXBjODI2MGFkcyB1bmRlciBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhNzczOTgzOTU3ZWU2YzRhYTM0NDQ2OWI3NDJmMjljN2QyNmFmYmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA4IDIwMDggKzA5MDAKCiAgICBbTUlQU10gTW92ZSBndGgyX2NvbmZpZyBmcm9tIEFSTSBzZWN0aW9uIHRvIE1JUFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDM3M2IxNmZjMGM1YWUzNGQyOGI5MDI3ZjgwOWFlM2NiZjQ1Y2RkMTUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gRXh0ZW5kIE1JUFNfTUFYX0NBQ0hFX1NJWkUgdXB0byA2NGtCCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBkOThlMzQ4ZTJlZDVhYWI4ZjdhNjQ3MWZmNjI4YWIwNjg4YjhhNDU5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIEZpeCBkY2FjaGVfc3RhdHVzKCkKCiAgICBZb3UgY2FuJ3QganVkZ2UgVU5DQUNIRUQgYnkgQ29uZmlnLkswIExTQi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGIwYzY2YWY1M2VjOTM4NWFjMmQxY2MyZTVkN2QxZWNkYzgxY2FmMzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gSW50cm9kdWNlIF9tYWNoaW5lX3Jlc3RhcnQKCiAgICBIYW5kbGVzIG1hY2hpbmUgc3BlY2lmaWMgZnVuY3Rpb25zIGJ5IHVzaW5nIHdlYWsgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZGVjYWJhNmY1Y2YzODZkNTY5YWMzOTk3YmViYjg3MWI5NjZjNmIxOApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBDbGVhbnVwIENQMCBTdGF0dXMgaW5pdGlhbGl6YXRpb24KCiAgICBBZGQgc2V0dXBfYzBfc3RhdHVzIGZyb20gTGludXguIEZvciB0aGUgbW9tZW50IHdlIGRpc2FibGUgaW50ZXJydXB0cywgc2V0CiAgICBDVTAsIG1hcmsgdGhlIGtlcm5lbCBtb2RlLCBhbmQgY2xlYXIgRVJMIGFuZCBFWEwuIFRoaXMgaXMgZ29vZCBlbm91Z2ggZm9yCiAgICByZXNldC10aW1lIGNvbmZpZ3VyYXRpb24gYW5kIHdpbGwgd29yayB3ZWxsIGFjcm9zcyBtb3N0IHByb2Nlc3NvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBkNDNkNDNlZjI4NDVhZjMwOWMyNWE2NGJiOWMyYzVmYjMyNjFiYzIzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIEluaXRpYWxpemUgQ1AwIENhdXNlIGJlZm9yZSBzZXR0aW5nIHVwIENQMCBTdGF0dXMgcmVnaXN0ZXIKCiAgICBXaXRob3V0IHRoaXMgY2hhbmdlLCB3ZSdsbCBiZSBzdWZmZXJpbmcgZnJvbSBkZWZmZXJlZCBXQVRDSCBleGNlcHRpb24KICAgIG9uY2UgU3RhdHVzLkVYTCBpcyBjbGVhcmVkLiBNYWtlIHN1cmUgQ2F1c2UuV1AgaXMgY2xlYXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDI2MTM4NjIzMjMwY2EyYmFkM2M3OGUwNWE2NTUyN2VhNzBjOGI2ODgKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gSU5DQS1JUDogTW92ZSB3YXRjaGRvZyBpbml0IGNvZGUgZnJvbSBzdGFydC5TIHRvIGxvd2xldmVsX2luaXQoKQoKICAgIE1vdmUgdGhpbmdzIHRvIGFwcHJvcHJpYXRlIHBsYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgY2NmOGY4MjRlZjY3ZGYwMjhkZWRiMjlmOGVhNWQ3MWE1YTg4ZDg5NQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDYgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBJbXBsZW1lbnQgZmx1c2hfY2FjaGUoKQoKICAgIFdlIGRvIEhpdF9Xcml0ZWJhY2tfSW52X0QgYW5kIEhpdF9JbnZhbGlkYXRlX0kuIFlvdSBtaWdodCB0aGluayB0aGF0IHlvdQogICAgZG9uJ3QgbmVlZCB0byBkbyBIaXRfSW52YWxpZGF0ZV9JLCBidXQgZmx1c2hfY2FjaGUoKSBuZWVkcyBpdCBzaW5jZSB0aGlzCiAgICBmdW5jdGlvbiBpcyB1c2VkIG5vdCBvbmx5IGluIFUtQm9vdCBzcGVjZmljIHByb2dyYW1zIGJ1dCBhbHNvIGF0IGxvYWRpbmcKICAgIHRhcmdldCBiaW5hcmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDJlMGU1MjcxYWFjOTE3ODEyYTc2YzcyMDMwYTJiMmM2ZjFkMzM4N2QKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA2IDIwMDggKzA5MDAKCiAgICBbTUlQU10gRml4IEktL0QtY2FjaGUgaW5pdGlhbGl6YXRpb24gbG9vcHMKCiAgICBDdXJyZW50bHkgd2UgZG8gMSkgSW5kZXhfU3RvcmVfVGFnX0ksIDIpIEZpbGwgYW5kIDMpIEluZGV4X1N0b3JlX1RhZ19JCiAgICBhZ2FpbiBwZXIgYSBsb29wIGZvciBJLWNhY2hlIGluaXRpYWxpemF0aW9uLiBCdXQgYWNjb3JkaW5nIHRvICdTZWUgTUlQUwogICAgUnVuJywgd2UncmUgZW5jb3VyYWdlZCB0byB1c2UgdGhyZWUgc2VwYXJhdGUgbG9vcHMgcmF0aGVyIHRoYW4gY29tYmluaW5nCiAgICB0aGVtICpmb3IgYm90aCBJLSBhbmQgRC1jYWNoZSouIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoaXMuCgogICAgSW4gYWNjb3JkYW5jZSB3aXRoIGZpeGluZyBhYm92ZSwgbWlwc19pbml0X1tpZF1jYWNoZSBhcmUgc2VwYXJhdGVkIGZyb20KICAgIG1pcHNfY2FjaGVfcmVzZXQoKSwgYW5kIHJld3JpdGUgY2FjaGUgbG9vcHMgYXJlIGNvbXBsZXRlbHkgcmV3cml0dGVuIHdpdGgKICAgIHVzZWZ1bCBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxODk4ODQwNzk3YzdmNTA3OTkzNzdiZDViMjg1YThhOTNhODJjNDE5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNiAyMDA4ICswOTAwCgogICAgW01JUFNdIFJlcGxhY2UgbWVtb3J5IGNsZWFyYW5jZSBjb2RlIHdpdGggZl9maWxsNjQKCiAgICBUaGlzIHJvdXRpbmUgZmlsbHMgbWVtb3J5IHdpdGggemVybyBieSA2NCBieXRlcywgYW5kIGlzIDY0LWJpdCBjYXBhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMmY1ZDQxNGNjYjQwMjRkZDA5OTJmZjZiMjI1NjE3MzJkYmM3MzU5MApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDYgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBjcHUvbWlwcy9jYWNoZS5TOiBJbnRyb2R1Y2UgTkVTVEVEL0xFQUYvRU5EIG1hY3JvcwoKICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGhlIGN1cnJlbnQgZnVuY3Rpb24gZGVmaW5pdGlvbnMgd2l0aCBORVNURUQsIExFQUYKICAgIGFuZCBFTkQgbWFjcm8uIFRoZXkgc3BlY2lmeSBzb21lIG1vcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKICAgIGZ1bmN0aW9uOyBhbiBhbGlnbm1lbnQgb2Ygc3ltYm9sLCB0eXBlIG9mIHN5bWJvbCwgc3RhY2sgZnJhbWUgdXNhZ2UsIGV0Yy4KICAgIFRoZXNlIGluZm9ybWF0aW9uIGV4cGxpY2l0bHkgdGVsbHMgdGhlIGFzc2VtYmxlciBhbmQgdGhlIGRlYnVnZ2VyIGFib3V0CiAgICB0aGUgdHlwZXMgb2YgY29kZSB3ZSB3YW50IHRvIGdlbmVyYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMjgyMjIzYTYwN2M2MTE0MjVmYTMzZjU0MjhmOGVhZTY2MzY5NzJiYgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMTE6NDM6MTcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBhc20gaGVhZGVycycgdXBkYXRlcwoKICAgIE1ha2Ugc29tZSBhc20gaGVhZGVycyBhZGp1c3RlZCB0byB0aGUgbGF0ZXN0IExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGUxMzkwODAxYTNjMWEyYjZkMTJmYTkwYmUzNjhlZmMxOWY1YjliZmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDExOjM5OjI5IDIwMDggKzA5MDAKCiAgICBbTUlQU10gUmVxdWVzdCBmb3IgdGhlICdtaXBzX2NhY2hlX2xvY2soKScgcmVtb3ZhbAoKICAgIFRoZSBpbml0aWFsIGludGVuc2lvbiBvZiBoYXZpbmcgbWlwc19jYWNoZV9sb2NrKCkgd2FzIHRvIHVzZSB0aGUgY2FjaGUKICAgIGFzIG1lbW9yeSBmb3IgdGVtcG9yYXJ5IHN0YWNrIHVzZSBzbyB0aGF0IGEgQyBlbnZpcm9ubWVudCBjYW4gYmUgc2V0IHVwCiAgICBhcyBlYXJseSBhcyBwb3NzaWJsZS4KCiAgICBCdXQgbm93IG1pcHNfY2FjaGVfbG9jaygpIGZvbGxvdyBsb3dsZXZlbF9pbml0KCkuIFdlJ3ZlIGFscmVhZHkgaGF2ZSB0aGUKICAgIHJlYWwgbWVtb3J5IGluaXRpbGFpemVkIGF0IHRoaXMgcG9pbnQsIHRoZXJlZm9yZSB3ZSBjb3VsZC9zaG91bGQgdXNlIGl0LgogICAgTm8gcmVhc29uIHRvIGxvY2sgYXQgYWxsLgoKICAgIE90aGVyIHByb2JsZW1zOgoKICAgIENhY2hlIGxvY2tpbmcgaXMgbm90IGNvbnNpc3RlbnQgYWNyb3NzIE1JUFMgaW1wbGVtZW50YWlvbnMuIFNvbWUgaW1wbGUtCiAgICBtZW50YXRpb25zIGRvbid0IHN1cHBvcnQgbG9ja2luZyBhdCBhbGwuIFRoZSBzdHlsZSBvZiBsb2NraW5nIHZhcmllcyAtCiAgICBzb21lIHN1cHBvcnQgcGVyIGxpbmUgbG9ja2luZywgb3RoZXJzIHBlciB3YXksIGV0Yy4gU29tZSBwYXJ0cyB1c2UgYml0cwogICAgaW4gc3RhdHVzIHJlZ2lzdGVycyBpbnN0ZWFkIG9mIGNhY2hlIG9wcy4gQ3VycmVudCBtaXBzX2NhY2hlX2xvY2soKSBpcwogICAgbm90IG5lY2Vzc2FyaWx5IGdlbmVyYWwtcHVycG9zZS4KCiAgICBBbmQgdGhpcyBpcyB3b3J0aHkgb2Ygc3BlY2lhbCBtZW50aW9uOyBvbmNlIFUtQm9vdC9NSVBTIGxvY2tzIHRoZSBsaW5lcywKICAgIHRoZXkgYXJlIG5ldmVyIGdldCB1bmxvY2tlZCwgc28gdGhlIGNvZGUgcmVsaWVzIG9uIHdoYXRldmVyIGdldHMgbG9hZGVkCiAgICBhZnRlciBVLUJvb3QgdG8gcmUtaW5pdGlhbGl6ZSB0aGUgY2FjaGUgYW5kIGNsZWFyIHRoZSBsb2Nrcy4gV2UncmUgc3VwLQogICAgcG9zZWQgdG8gaGF2ZSBDRkdfSU5JVF9SQU1fTE9DSyBhbmQgdW5sb2NrX3JhbV9pbl9jYWNoZSgpIGltcGxlbWVudGVkLAogICAgYnV0IGxlYXZlIHRoZSBzaXR1YXRpb24gYXMgaXQgaXMgZm9yIGEgbG9uZyB0aW1lLgoKICAgIEZvciB0aGVzZSByZWFzb25zLCBJIHByb3Bvc2VkIHRoZSByZW1vdmFsIG9mIG1pcHNfY2FjaGVfbG9jaygpIGZyb20gdGhlCiAgICBnbG9iYWwgc3RhcnQtdXAgY29kZS4KCiAgICBUaGlzIHBhdGNoIGFkZHMgQ0ZHX0lOSVRfUkFNX0xPQ0tfTUlQUyB0byBtYWtlIGV4aXN0aW5nIHVzZXJzIGF3YXJlIHRoYXQKICAgICp0aGluZ3MgaGF2ZSBjaGFuZ2VkKi4gSWYgaGUgd2FudHMgdGhlIHNhbWUgYmVoYXZpb3IgYXMgYmVmb3JlLCBoZSBuZWVkcwogICAgdG8gaGF2ZSBDRkdfSU5JVF9SQU1fTE9DS19NSVBTIGluIGhpcyBjb25maWcgZmlsZS4KCiAgICBJZiB3ZSBkb24ndCBoYXZlIGFueSByZWdyZXNzaW9uIHJlcG9ydCB0aHJvdWdoIHNldmVyYWwgcmVsZWFzZXMsIHRoZW4KICAgIHdlJ2xsIHJlbW92ZSBjb2RlcyBlbnRpcmVseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgQWNrZWQtYnk6IEFuZHJldyBEeWVyIDxhbWR5ZXJAZ21haWwuY29tPgoKY29tbWl0IDBkNDg5MjZjODdlYzk2Zjk3NGE2YWM0MDM0ZjRhMmYyZWFiMzI1NWYKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTE6MzA6NTQgMjAwOCArMDEwMAoKICAgIGx3bW9uNSBTWVNNT04gUE9TVDogZml4IGJhY2tsaWdodCBjb250cm9sCgogICAgSWYgdGhlIExXTU9ONSBjb25maWcgaGFzIFNZU01PTiBQT1NUIGFtb25nIENPTkZJR19QT1NUcyB3aGljaCBtYXkgYmUKICAgIHJ1biBvbiB0aGUgYm9hcmQsIHRoZW4gdGhlIFNZU01PTiBQT1NUIGNvbnRyb2xzIHRoZSBkaXNwbGF5IGJhY2tsaWdodAogICAgKGRvZXNuJ3Qgc3dpdGNoIGJhY2tsaWdodCBPTiBpZiBQT1NUIEZBSUxFRCwgYW5kIGRvZXMgc3dpdGNoIHRoZQogICAgYmFja2xpZ2h0IE9OIGlmIFBBU1NFRCkuCgogICAgSWYgbm90LCB0aGVuIHRoZSB2aWRlbyBkcml2ZXIgY29udHJvbHMgdGhlIGRpc3BsYXkgYmFja2xpZ2h0IChqdXN0CiAgICBzd2l0Y2ggT04gdGhlIGJhY2tsaWdodCB1cG9uIGluaXRpYWxpemF0aW9uKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZmYyYmRmYjJjMWUwNzNmNjVjMDY1MDExZjFlMThkMGExMzBiZDNkOApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxMToyOToxNCAyMDA4ICswMTAwCgogICAgbHdtb241IFNZU01PTiBQT1NUOiBmaXggaGFuZGxpbmcgb2YgbmVnYXRpdmUgdGVtcGVyYXR1cmVzCgogICAgRml4IGVycm9ycyBpbiB0aGUgTFdNT041IFN5c21vbiBQT1NUIGZvciBuZWdhdGl2ZSB0ZW1wZXJhdHVyZXMuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDU1Nzc0YjUxMmZkZjYzYzA1MTZkNDQxY2M1ZGE3YzU0YmJmZmI3ZjIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBNYXIgNyAxNjowNDoyNSAyMDA4ICswOTAwCgogICAgcGNpOiBBZGQgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFIGNvbmZpZyBvcHRpb24KCiAgICBJbiBjdXJyZW50IHNvdXJjZSBjb2RlLCB3aGVuIHRoZSBkZXZpY2UgbnVtYmVyIG9mIFBDSSBpcyAwLCBwcm9jZXNzIFBDSQogICAgYnJpZGdlIHdpdGhvdXQgZmFpbC4gSG93ZXZlciwgd2hlbiB0aGUgZGV2aWNlIG51bWJlciBpcyAwLCBpdCBpcyBub3QgUENJCiAgICBhbHdheXMgYnJpZGdlLiBUaGVyZSBhcmUgdGltZXMgd2hlbiBkZXZpY2Ugb2YgUENJIGFsbG9jYXRlcy4KCiAgICBXaGVuIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRSBpcyBlbmFibGUsIHRoaXMgcHJvYmxlbSBpcyBzb2x2ZWQgd2hlbgogICAgdXNlIHRoaXMgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NmFlYTNlYWVmYTI0OGZmYjkzMjhlMmI1MGM2NDcyMDQ4OWNkYmViCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglGcmkgTWFyIDIxIDA5OjE4OjQwIDIwMDggKzAxMDAKCiAgICBMV01PTjU6IGZpeCBkc1BJQyBQT1NUCgogICAgQWRkIHRlc3QgZm9yIERQSUNfU1lTX0VSUk9SX1JFRyB0byBiZSB6ZXJvIGluIHRoZSBMV01PTjUgZHNQSUMgUE9TVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+IC0tLQoKY29tbWl0IDM4OGI4MmZkZGM3YzA1NTk2ZjNmNjE1ZjE5MGRhMDQ0ODIyN2RjODIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDIwIDIzOjIzOjEzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRW5hYmxlIG5ldyB1SW1hZ2Ugc3VwcG9ydCBmb3IgdGhlIHBjczQ0MGVwIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTVmNGVjMmI5YzkxMGM3MjYxZTZmMDYwZWE1MzBkNThiMDM5NjkyZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjAgMjM6MjM6MTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBEbyBub3QgY29tcGlsZSBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IGJ5IGRlZmF1bHQKCiAgICBEaXNhYmxlIGRlZmF1bHQgYnVpbGRpbmcgb2YgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCBpbiBwcmVwYXJhdGlvbgogICAgZm9yIG1lcmdlIHdpdGggdGhlIG1hc3Rlci4gU3VwcG9ydCBmb3IgbmV3IGZvcm1hdCBjYW4gYmUgZW5hYmxlZCBvbgogICAgYSBwZXItYm9hcmQgYmFzaXMsIGJ5IGRlZmluaW5nIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGJvYXJkJ3MgY29uZmlnIGZpbGU6CgogICAgI2RlZmluZSBDT05GSUdfRklUCQkgICAxCiAgICAjZGVmaW5lIENPTkZJR19PRl9MSUJGRFQJICAgMQoKICAgIFRoaXMgY2FuIGJlIG9wdGlvbmFsbHkgZGVmaW5lZCB0byBnaXZlIG1vcmUgdmVyYm9zZSBvdXRwdXQ6CgogICAgI2RlZmluZSBDT05GSUdfRklUX1ZFUkJPU0UJICAgMSAvKiBlbmFibGUgZml0X2Zvcm1hdF97ZXJyb3Isd2FybmluZ30oKSAqLwoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZGFmYWVkZThhNDZjNzE1OTMxMDIzOWUwMzZjOTNlMzFjNjM3NDQ4NwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjAgMjM6MjA6MzEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBEaXNhYmxlIGRlYnVnaW5nIG91dHB1dCBpbiBwcmVwYXJhdGlvbiBmb3IgbWVyZ2Ugd2l0aCBtYXN0ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZiZTdhMTU1MDI3YmVhY2ViYWVlOWIzMmUxYWRhNzgxZmU5MjRiY2EKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDIwIDE5OjM4OjQ1IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ29tcGlsYXRpb24gYW5kIG5ldyB1SW1hZ2UgaGFuZGxpbmcgZml4ZXMgZm9yIGlteHRyYWN0CgogICAgRml4IGlteHRyYWN0IGNvbW1hbmQgbm90IGJlaW5nIGNvbXBpbGVkLWluIGRlc3BpdGUgQ09ORklHX0NNRF9YSU1HIGJlaW5nIGluCiAgICBpbmNsdWRlL2NvbmZpZ19jbWRfZGVmYXVsdC5oLiBGaXggZmV3IHdhcm5pbmdzIGFuZCBoYW5kbGluZyBvZiBuZXcgZm9ybWF0CiAgICBpbWFnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzNmNjOGNiYjMzNzlkNTE2NmY4ODI2NDExMjM1MjE3MzVjNDY5ZjkyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAyMzoxMDoxOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBhdXRvc2NyIGNvbW1hbmQgdXNlZCB3aXRoIG5ldyB1SW1hZ2UgZm9ybWF0CgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0MzE0MmU4MTdmMDU5N2JlNDEyZTdjYmUxOTQxM2Y1NTMyZWFmYTVkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAyMzoxMDoxOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCAqLml0cyBmaWxlcyBsb2NhdGlvbiBpbiBkb2N1bWVudGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4MWEwYWM2MmVhMjlmODI1MmQwYTcxNDcwOWQwZWNmZGJiYTJhMTVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyMCAyMjowMTozOCAyMDA4ICswMTAwCgogICAgbHdtb241IFBPU1Q6IHJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlCgogICAgcGx1cyBzb21lIGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiNzNhMTllMTYwOWQwZjcwNWNiYWI4MDE0Y2ExN2FlZmU4OWU0Yzc2CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWFyIDIwIDE3OjU2OjA0IDIwMDggKzAzMDAKCiAgICBMV01PTjU6IFBPU1QgUlRDIGZpeAoKICAgIE1vZGlmeSB0aGUgUlRDIEFQSSB0byBwcm92aWRlIG9uZSBhIHN0YXR1cyBmb3IgdGhlIHRpbWUgcmVwb3J0ZWQgYnkKICAgIHRoZSBydGNfZ2V0KCkgZnVuY3Rpb246CiAgICAgIDAgLSBhIHJlbGlhYmxlIHRpbWUgaXMgZ3VhcmFudGVlZCwKICAgIDwgMCAtIGEgcmVsaWFibGUgdGltZSBpc24ndCBndWFyYW50ZWVkIChwb3dlciBmYXVsdCwgY2xvY2sgaXNzdWVzLAoJICBhbmQgc28gb24pLgoKICAgIFRoZSBSVEMgY2hpcCBkcml2ZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIHRoaXMgaW5mbyBpZiB0aGUKICAgIGNvcnJlc3BvbmRpbmcgY2hpcCBzdXBwb3J0cyBzdWNoIGZ1bmN0aW9uYWxpdHkuIElmIG5vdCAtIGFsd2F5cwogICAgcmVwb3J0IHRoYXQgdGhlIHRpbWUgaXMgcmVsaWFibGUuCgogICAgVGhlIFBPU1QgUlRDIHRlc3Qgd2FzIG1vZGlmaWVkIHRvIGRldGVjdCB0aGUgUlRDIGZhdWx0cyB1dGlsaXppbmcKICAgIHRoaXMgbmV3IHJ0Y19nZXQoKSBmZWF0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBhNWNjNTU1NWNjZWU1OTY5MDhhN2Q4Y2YyMmExMDRmNmI5OTNiZmQ1CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBNYXIgMTkgMTQ6MjU6MTQgMjAwOCArMDEwMAoKICAgIFRRTTUyMDBCOiB1cGRhdGUgTVREIHBhcnRpdGlvbiBsYXlvdXQKCiAgICAtIGluc2VydCBwYXJ0aXRpb24gZm9yIGR0YiBibG9iIHRvIFRRTTUyMDBCIE1URCBsYXlvdXQKICAgIC0gc2V0IGVudiB2YXJpYWJsZXMgZGVwZW5kZW50IG9uIHRoZSBjb25maWd1cmVkIGJvYXJkCiAgICAgIChUUU01MjAwIG9yIFRRTTUyMDBCKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGYwMTA1NzI3ZDEzMmY1NmEyMWZhM2VkOGIxNjIzMDljY2E2Y2FjNDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMTkgMDc6MDk6MjYgMjAwOCArMDEwMAoKICAgIENGSTogU21hbGwgY2xlYW51cCBmb3IgRkxBU0hfU0hPV19QUk9HUkVTUwoKICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBkb24ndCBuZWVkIHRoYXQgbWFueSAjaWZkZWYncyBpbiB0aGUgY29kZS4gSXQgbW92ZXMKICAgIHRoZSBzdWJ0cmFjdGlvbiBpbnRvIHRoZSBtYWNybyBhbmQgZGVmaW5lcyBhIE5PUC1tYWNybyB3aGVuCiAgICBDT05GSUdfRkxBU0hfU0hPV19QUk9HUkVTUyBpcyBub3QgZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5YTA0MmU5Y2E1MTJiZWFhYTJjYjQ1MDI3NDMxM2ZjNDc3MTQxMjQxCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDggMTM6NDg6MDEgMjAwOCAtMDUwMAoKICAgIEZsYXNoIHByb2dyYW1taW5nIHByb2dyZXNzIGNvdW50ZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDVlMzM5ZmQ5ZWQ1MzlhN2Q3ZmVjNTljZmM4OGYwODU3YWIyNmE1M2YKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDE5IDEwOjAwOjA2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IHN0eWxlIGlzc3VlIHNwb3R0ZWQgYnkgV29sZmdhbmcgRGVuayA8d2RAZGVueC5vcmc+CgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxMWFiZTQ1YzQ4ZWMzNDg1YTZjMWE1MTY4Y2U4ZDc5YzMyODhhZGMxCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CU1vbiBGZWIgMTggMTg6MDk6MDQgMjAwOCArMTEwMAoKICAgIGxpYmZkdDogUmVtb3ZlIG5vIGxvbmdlciB1c2VkIGNvZGUgZnJvbSBmZHRfbm9kZV9vZmZzZXRfYnlfY29tcGF0aWJsZSgpCgogICAgU2luY2UgZmR0X25vZGVfb2Zmc2V0X2J5X2NvbXBhdGlibGUoKSB3YXMgY29udmVydGVkIHRvIHRoZSBuZXcKICAgIGZkdF9uZXh0X25vZGUoKSBpdGVyYXRvciwgYSBjaHVuayBvZiBpbml0aWFsaXphdGlvbiBjb2RlIGJlY2FtZQogICAgcmVkdW5kYW50LCBidXQgd2FzIG5vdCByZW1vdmVkIGJ5IG92ZXJzaWdodC4gIFRoaXMgcGF0Y2ggY2xlYW5zIGl0IHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGQwY2NiOWIxNDBiNDcyMDM5NzMyZGUxMDJmYzE0NTk3ZWVkYjE0ZGYKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJTW9uIEZlYiAxOCAxODowNjozMSAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBUcml2aWFsIGNsZWFudXAgZm9yIENIRUNLX0hFQURFUikKCiAgICBDdXJyZW50bHkgdGhlIENIRUNLX0hFQURFUigpIG1hY3JvIGlzIGRlZmluZWQgbG9jYWwgdG8gZmR0X3JvLmMuCiAgICBIb3dldmVyLCB0aGVyZSBhcmUgYSBoYW5kZnVsIG9mIGZ1bmN0aW9ucyAoZmR0X21vdmUsIHJ3X2NoZWNrX2hlYWRlciwKICAgIGZkdF9vcGVuX2ludG8pIGZyb20gb3RoZXIgZmlsZXMgd2hpY2ggY291bGQgYWxzbyB1c2UgaXQgKGN1cnJlbnRseQogICAgdGhleSBvcGVuLWNvZGUgc29tZXRoaW5nIG1vcmUtb3ItbGVzcyBpZGVudGljYWwpLiAgVGhlcmVmb3JlLCB0aGlzCiAgICBwYXRjaCBtb3ZlcyBDSEVDS19IRUFERVIoKSB0byBsaWJmZHRfaW50ZXJuYWwuaCBhbmQgdXNlcyBpdCBpbiB0aG9zZQogICAgcGxhY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGZlMzBhMzU0Y2RiYjgwOGI1ZjE1MzY2YTkzNWIxNTFhNGNjZWU3NGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDIwIDE0OjMyOjM2IDIwMDggLTA2MDAKCiAgICBGaXggZmR0IGJvYXJkc2V0dXAgY29tbWFuZCBwYXJzaW5nCgogICAgVGhlIGludHJvZHVjaXRvbiBvZiB0aGUgJ2ZkdCBib290Y3B1JyBicm9rZSBwYXJzaW5nIGZvciAnZmR0IGJvYXJkc2V0dXAnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODA0ODg3ZTYwMDFlMmYwMGJlYTExNDMxYmYzNGQ2ZDQ3MjUxMmNkYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBGZWIgMTUgMDM6MzQ6MzYgMjAwOCAtMDYwMAoKICAgIEFkZCBzdWItY29tbWFuZHMgdG8gZmR0CgogICAgZmR0IGhlYWRlcgkJCQktIERpc3BsYXkgaGVhZGVyIGluZm8KICAgIGZkdCBib290Y3B1IDxpZD4JCQktIFNldCBib290IGNwdWlkCiAgICBmZHQgbWVtb3J5IDxhZGRyPiA8c2l6ZT4JCS0gQWRkL1VwZGF0ZSBtZW1vcnkgbm9kZQogICAgZmR0IHJzdm1lbSBwcmludAkJCS0gU2hvdyBjdXJyZW50IG1lbSByZXNlcnZlcwogICAgZmR0IHJzdm1lbSBhZGQgPGFkZHI+IDxzaXplPgktIEFkZCBhIG1lbSByZXNlcnZlCiAgICBmZHQgcnN2bWVtIGRlbGV0ZSA8aW5kZXg+CQktIERlbGV0ZSBhIG1lbSByZXNlcnZlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjg0ZDY1ZjliMDg1ZmZiZWQ0NjRkMWQ1OGU4YWFhOGY1YTJlZmMwNwpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglUaHUgRmViIDE0IDE2OjUwOjM0IDIwMDggKzExMDAKCiAgICBsaWJmZHQ6IEZpeCBOT1AgaGFuZGxpbmcgYnVnIGluIGZkdF9hZGRfc3Vibm9kZV9uYW1lbGVuKCkKCiAgICBmZHRfYWRkX3N1Ym5vZGVfbmFtZWxlbigpIGhhcyBhIGJ1ZyBpZiBhc2tlZCB0byBhZGQgYSBzdWJub2RlIHRvIGEKICAgIG5vZGUgd2hpY2ggaGFzIE5PUCB0YWdzIGludGVyc3BlcnNlZCB3aXRoIGl0cyBwcm9wZXJ0aWVzLiAgSW4gdGhpcwogICAgY2FzZSBmZHRfYWRkX3N1Ym5vZGVfbmFtZWxlbigpIHdpbGwgcHV0IHRoZSBuZXcgc3Vibm9kZSBiZWZvcmUgdGhlCiAgICBmaXJzdCBOT1AgdGFnLCBldmVuIGlmIHRoZXJlIGFyZSBwcm9wZXJ0aWVzIGFmdGVyIGl0LCB3aGljaCB3aWxsCiAgICByZXN1bHQgaW4gYW4gaW52YWxpZCBibG9iLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGJ1ZywgYW5kIGFkZHMgYSB0ZXN0Y2FzZSBmb3IgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgYWUwYjU5MDhkZTNiOTg1NWY4OTMxYmM5YjMyYzlmYzQ5NjJkZjVhOQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglUdWUgRmViIDEyIDExOjU4OjMxIDIwMDggKzExMDAKCiAgICBsaWJmZHQ6IEFkZCBhbmQgdXNlIGEgbm9kZSBpdGVyYXRpb24gaGVscGVyIGZ1bmN0aW9uLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiBmZHRfbmV4dF9ub2RlKCkgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgdG8KICAgIGl0ZXJhdGUgdGhyb3VnaCBub2RlcyBvZiB0aGUgdHJlZSB3aGlsZSBrZWVwaW5nIHRyYWNrIG9mIGRlcHRoLiAgVGhpcwogICAgZnVuY3Rpb24gaXMgdXNlZCB0byBzaW1wbGlmeSB0aGUgaXRlcmF0aW9uIGNvZGUgaW4gYSBsb3Qgb2Ygb3RoZXIKICAgIGZ1bmN0aW9ucywgYW5kIGlzIGFsc28gZXhwb3J0ZWQgZm9yIHVzZSBieSBsaWJyYXJ5IHVzZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IDllYWViMDdhNzE4NWQ4NTJjN2FhMTA3MzVlY2Q0ZTllZGYyNGZiNWQKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJRnJpIEphbiAxMSAxNDo1NTowNSAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBBZGQgZmR0X3NldF9uYW1lKCkgZnVuY3Rpb24KCiAgICBUaGlzIHBhdGNoIGFkZHMgYW4gZmR0X3NldF9uYW1lKCkgZnVuY3Rpb24gdG8gbGliZmR0LCBtaXJyb3JpbmcKICAgIGZkdF9nZXRfbmFtZSgpLiAgVGhpcyBpcyBhIHIvdyBmdW5jdGlvbiB3aGljaCBhbHRlcnMgdGhlIG5hbWUgb2YgYQogICAgZ2l2ZW4gZGV2aWNlIHRyZWUgbm9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCAyM2UyMGFhNjQ4OGU2YzA2MjI0OTY1NDk4NjFiZmRjNzQxMDhkZWJlCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDE4IDEzOjMzOjMwIDIwMDggKzAxMDAKCiAgICBsd21vbjU6IEZpeCByZWdpc3RlciB0ZXN0IGxvZ2ljIHRvIG1hdGNoIHRoZSBzcGVjaWZpYyBHREMgaC93LgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDQ2YmMwYTkzODc3OWFhMWQ2NjRiODQ3ZDM2YjA4YWEwMGYyMmU1MzkKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTggMTM6Mjc6NTcgMjAwOCArMDEwMAoKICAgIEZpeCBiYWNrbGlnaHQgaW4gdGhlIGx3bW9uNSBQT1NULgoKICAgIEJhY2tsaWdodCB3YXMgc3dpdGNoZWQgb24gZXZlbiB3aGVuIHRlbXBlcmF0dXJlIHdhcyB0b28gbG93LgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDNkNjEwMTg2NDNhMmNkMzhjMTQ1YWE2ZGRlNTNmM2Y1ZjFhMGU5Y2YKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBGZWIgNiAxODo0ODozNiAyMDA4ICswMTAwCgogICAgVGhlIHBhdGNoIGludHJvZHVjZXMgdGhlIGFsdGVybmF0aXZlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGxvZyBidWZmZXIgZm9yIHRoZSBsd21vbjUgYm9hcmQ6IHRoZSBzdG9yYWdlIGZvciB0aGUgbG9nLWJ1ZmZlciBpdHNlbGYgaXMgT0NNKG9uLWNoaXAgbWVtb3J5KSwgdGhlIGxvZy1idWZmZXIgaGVhZGVyIGlzIG1vdmVkIHRvIHNpeCBHUFQgcmVnaXN0ZXJzIChQUEM0NDBFUFhfR1BUMF9DT01QMSwgLi4uLCBQUEM0NDBFUFhfR1BUMF9DT01QNSkuCgogICAgIFRvIGVuYWJsZSB0aGlzLCBhbHRlcm5hdGl2ZSwgY29uZmlndXJhdGlvbiB0aGUgVS1Cb290IGJvYXJkIGNvbmZpZ3VyYXRpb24KICAgIGZpbGUgZm9yIGx3bW9uNSBpbmNsdWRlcyB0aGUgZGVmaW5pdGlvbnMgb2YgYWx0ZXJuYXRpdmUgYWRkcmVzc2VzIGZvciBoZWFkZXIKICAgIChDT05GSUdfQUxUX0xIX0FERFIpIGFuZCBidWZmZXIgKENPTkZJR19BTFRfTEJfQUREUikuCgogICAgIFRoZSBMaW51eCBzaGFsbCBiZSBjb25maWd1cmVkIHdpdGggdGhlIENPTkZJR19BTFRfTEJfTE9DQVRJT04gb3B0aW9uIHNldCwKICAgIGFuZCBoYXMgdGhlIEJPQVJEX0FMVF9MSF9BRERSIGFuZCBCT0FSRF9BTFRfTEJfQUREUiBjb25zdGFudHMgZGVmaW5lZCBpbiB0aGUKICAgIGx3bW9uNSBib2FyZC1zcGVjaWZpYyBoZWFkZXIgKGFyY2gvcHBjL3BsYXRmb3Jtcy80eHgvbHdtb241LmgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAwZjAwOWY3ODFiNWI4OGYyNTc2OWUxNTRlYTRkNDJkYjEzYmFmMGM2CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTc6MTE6NTMgMjAwOCArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgbHdtb241IGJvYXJkIHJlc2V0IHZpYSBHUElPNTguCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZjY5NGUzMmY5MzU2NWVjMWZhOGQwMjI2YzU4NGQ2Yjg5ZTkzMWVkOQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE3OjA5OjU1IDIwMDggKzAxMDAKCiAgICBTb21lIGZpeGVzIHRvIGRzcGljLCBmcGdhLCBhbmQgZ2RjIHBvc3QgdGVzdHMgZm9yIGx3bW9uNS4gRGlzYWJsZSBleHRlcm5hbCB3YXRjaC1kb2cgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBiNDI4ZjZhOGM2NWM1MzAzZTVmOTZkYjhkMjRmMmY2OTlkOTRhOThjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTQ6MTE6MDMgMjAwOCArMDEwMAoKICAgIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBDUklUSUNBTCBmZWF0dXJlIG9mIFBPU1QgdGVzdHMuIElmIHRoZSB0ZXN0IG1hcmtlZCBhcyBQT1NUX0NSSVRJQ0FMIGZhaWxzIHRoZW4gdGhlIGFsdGVybmF0aXZlLCBwb3N0X2NyaXRpY2FsLCBib290LWNvbW1hbmQgaXMgdXNlZC4gSWYgdGhpcyBjb21tYW5kIGlzIG5vdCBkZWZpbmVkIHRoZW4gVS1Cb290IGVudGVycyBpbnRvIGludGVyYWN0aXZlIG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgOGYxNWQ0YWRkZDQ5Yzk1NjQxMmUxZTNiZmM3NjRhMGM4YjFmMzE4NApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjEwOjQyIDIwMDggKzAxMDAKCiAgICBUaGUgcGF0Y2ggYWRkcyBuZXcgUE9TVCB0ZXN0cyBmb3IgdGhlIEx3bW9uNSBib2FyZC4gVGhlc2UgYXJlOgoKICAgICogRXh0ZXJuYWwgV2F0Y2hkb2cgdGVzdDsKICAgICogZHNQSUMgdGVzdHM7CiAgICAqIEZQR0EgdGVzdDsKICAgICogR0RDIHRlc3Q7CiAgICAqIFN5c21vbiB0ZXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBjMmVkMzNlZmJmZmY1NzY3YmNhMjM2ODI4ZTAyMWM1NWZkNTQ3YjZjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTQ6MTA6MDEgMjAwOCArMDEwMAoKICAgIEVuYWJsZSBDT0RFQyBQT1NUIHdpdGggQ0ZHX1BPU1RfQ09ERUMgcmF0aGVyIHRoYW4gd2l0aCBDRkdfUE9TVF9EU1AuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+Cgpjb21taXQgM2E1ZDFlN2YxMzA5OTk4NzkxNzAyYjJhNTU5ZTMxMjY3ODE3NDZiOQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxOCAxMzozMzozMCAyMDA4ICswMTAwCgogICAgbHdtb241OiBGaXggcmVnaXN0ZXIgdGVzdCBsb2dpYyB0byBtYXRjaCB0aGUgc3BlY2lmaWMgR0RDIGgvdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAwZjg1NWExZjA1NmE4YzIyMTE2YTIxMDNhMzkwMGNiZmI2NjlkZjBiCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDE4IDEzOjI3OjU3IDIwMDggKzAxMDAKCiAgICBGaXggYmFja2xpZ2h0IGluIHRoZSBsd21vbjUgUE9TVC4KCiAgICBCYWNrbGlnaHQgd2FzIHN3aXRjZWhkIG9uIGV2ZW4gd2hlbiB0ZW1wZXJhdHVyZSB3YXMgdG9vIGxvdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAyZDk5MTk1OGIxZTQyMGZiZmUxN2IxMjhiZDI2YWRlNzRiZTVlZmNjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgRmViIDYgMTg6NDg6MzYgMjAwOCArMDEwMAoKICAgICBUaGUgcGF0Y2ggaW50cm9kdWNlcyB0aGUgYWx0ZXJuYXRpdmUgY29uZmlndXJhdGlvbiBvZiB0aGUgbG9nIGJ1ZmZlciBmb3IKICAgIHRoZSBsd21vbjUgYm9hcmQ6IHRoZSBzdG9yYWdlIGZvciB0aGUgbG9nLWJ1ZmZlciBpdHNlbGYgaXMgT0NNKG9uLWNoaXAgbWVtb3J5KSwKICAgIHRoZSBsb2ctYnVmZmVyIGhlYWRlciBpcyBtb3ZlZCB0byBzaXggR1BUIHJlZ2lzdGVycyAoUFBDNDQwRVBYX0dQVDBfQ09NUDEsIC4uLiwKICAgIFBQQzQ0MEVQWF9HUFQwX0NPTVA1KS4KCiAgICAgVG8gZW5hYmxlIHRoaXMsIGFsdGVybmF0aXZlLCBjb25maWd1cmF0aW9uIHRoZSBVLUJvb3QgYm9hcmQgY29uZmlndXJhdGlvbgogICAgZmlsZSBmb3IgbHdtb241IGluY2x1ZGVzIHRoZSBkZWZpbml0aW9ucyBvZiBhbHRlcm5hdGl2ZSBhZGRyZXNzZXMgZm9yIGhlYWRlcgogICAgKENPTkZJR19BTFRfTEhfQUREUikgYW5kIGJ1ZmZlciAoQ09ORklHX0FMVF9MQl9BRERSKS4KCiAgICAgVGhlIExpbnV4IHNoYWxsIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgQ09ORklHX0FMVF9MQl9MT0NBVElPTiBvcHRpb24gc2V0LAogICAgYW5kIGhhcyB0aGUgQk9BUkRfQUxUX0xIX0FERFIgYW5kIEJPQVJEX0FMVF9MQl9BRERSIGNvbnN0YW50cyBkZWZpbmVkIGluIHRoZQogICAgbHdtb241IGJvYXJkLXNwZWNpZmljIGhlYWRlciAoYXJjaC9wcGMvcGxhdGZvcm1zLzR4eC9sd21vbjUuaCkuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IGZmODE4YjIxYjA2OWY0YmM5Y2I3MzM3M2NjNWExNjAxNGJlMTAxYjcKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgNCAxNzoxMTo1MyAyMDA4ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBsd21vbjUgYm9hcmQgcmVzZXQgdmlhIEdQSU81OC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA2MDNmMTk0ZTVhZDgxYmIyZWY0MmQ2ZDhhYWE3NGRlMTc1YmNiNDExCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTc6MDk6NTUgMjAwOCArMDEwMAoKICAgIFNvbWUgZml4ZXMgdG8gZHNwaWMsIGZwZ2EsIGFuZCBnZGMgcG9zdCB0ZXN0cyBmb3IgbHdtb241LgogICAgRGlzYWJsZSBleHRlcm5hbCB3YXRjaC1kb2cgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBlMjYyZWZlMzU3NDJjMWFkNGIwOTY2ZmY1MDFlZmMyNmYzNGEwYWVjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTQ6MTE6MDMgMjAwOCArMDEwMAoKICAgIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBDUklUSUNBTCBmZWF0dXJlIG9mIFBPU1QgdGVzdHMuIElmIHRoZSB0ZXN0CiAgICBtYXJrZWQgYXMgUE9TVF9DUklUSUNBTCBmYWlscyB0aGVuIHRoZSBhbHRlcm5hdGl2ZSwgcG9zdF9jcml0aWNhbCwKICAgIGJvb3QtY29tbWFuZCBpcyB1c2VkLiBJZiB0aGlzIGNvbW1hbmQgaXMgbm90IGRlZmluZWQgdGhlbiBVLUJvb3QKICAgIGVudGVycyBpbnRvIGludGVyYWN0aXZlIG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgNjViMjBkY2VmYzg5NjE4MTkzZmE1MTk0Nzk2OGRhZGE5MWU0Yzc3OApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjEwOjQyIDIwMDggKzAxMDAKCiAgICBUaGUgcGF0Y2ggYWRkcyBuZXcgUE9TVCB0ZXN0cyBmb3IgdGhlIEx3bW9uNSBib2FyZC4KICAgIFRoZXNlIGFyZToKCiAgICAqIEV4dGVybmFsIFdhdGNoZG9nIHRlc3Q7CiAgICAqIGRzUElDIHRlc3RzOwogICAgKiBGUEdBIHRlc3Q7CiAgICAqIEdEQyB0ZXN0OwogICAgKiBTeXNtb24gdGVzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgOGRjM2IyMzAzZDJiNTdjNzc0YjYwOWNhMGU3MDQzZWQ4ZjliODhjMQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjEwOjAxIDIwMDggKzAxMDAKCiAgICBFbmFibGUgQ09ERUMgUE9TVCB3aXRoIENGR19QT1NUX0NPREVDIHJhdGhlciB0aGFuIHdpdGggQ0ZHX1BPU1RfRFNQLgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgoKY29tbWl0IDM1MTVmZDE4ZDRlOGU0NGY4NjNhYzcxNDJiNTVlMjJiMTA5ZTlhZjIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDE4IDE3OjM1OjUxIDIwMDggKzAxMDAKCiAgICBITUkxMDAxOiBmaXggY29tcGlsZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWYyYTk5NzAxMDljZWJmNzQ0NmUwNTAzYjEwYjcxZjg2NzMwNDVlZQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwNTozMjozMCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IEJGNTM3LXN0YW1wOiBkcm9wIGJvYXJkLXNwZWNpZmljIGZsYXNoIGRyaXZlciBmb3IgQ0ZJCgogICAgVGhlIHBhcmFsbGVsIGZsYXNoIG9uIHRoZSBCRjUzNy1TVEFNUCBpcyBDRkkgY29tcGxpYW50LCBzbyB0aGVyZSBpcyBubyBuZWVkCiAgICBmb3IgdGhlIGJvYXJkIHNwZWNpZmljIGRyaXZlciBhdCBhbGwuICBKdXN0IHVzZSB0aGUgY29tbW9uIENGSSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDViMjIxNjNmZWY4NjVhZjJiNmJmYjZiNzVmMWI3YmY0NDNjZTE3MGMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6MzY6MTQgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBhZGQgcHJvcGVyIEVMRiBtYXJraW5ncyB0byBzb21lIGFzc2VtYmx5IGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjZjY3NWQzYjJiOWMzNTExYzFkOTliYzhmOGYzOGZkMmYwOGJmY2FmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRmViIDE5IDAwOjM1OjE3IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogbmV3IGNwbGJpbmZvIGNvbW1hbmQgZm9yIHZpZXdpbmcgY3BsYiB0YWJsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYWFkYjcyNTAzY2QxNjAyMzQ5YTVmZTUzMzU2ZDVmNTVlY2MxYjkwMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwNTozNzo1MSAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHVwZGF0ZSBNQUlOVEFJTkVSUyBsaXN0CgogICAgQWRkIG1haW50YWluZXIgaW5mb3JtYXRpb24gZm9yIHRoZSBCbGFja2ZpbiBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGY3Y2UxMmNiNjVhMzBjNmUxNTJlZWNmMjZmMDMwNGI3ZDc4Y2YzOWQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDU6MjY6NDggMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBjb252ZXJ0IEJGSU5fQ1BVIHRvIENPTkZJR19CRklOX0NQVQoKICAgIFN0b3AgdHlpbmcgdGhpbmdzIHRvIHRoZSBwcm9jZXNzb3IgdGhhdCBzaG91bGQgYmUgdGllZCB0byBvdGhlciBkZWZpbmVzIGFuZAogICAgY2hhbmdlIEJGSU5fQ1BVIHRvIENPTkZJR19CRklOX0NQVSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIHRoZSBidWlsZAogICAgc3lzdGVtIHRvIHNlbGVjdCB0aGUgLW1jcHUgb3B0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4NmEyMGZiOTIwYmQxOTgxMDVhY2Y3YjExOTExMTdmNTY2ZDYzN2VkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgRmViIDE2IDA3OjQwOjM2IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogbW92ZSBib290bGRyIGNvbW1hbmQgdG8gY29tbW9uIGNvZGUKCiAgICBUaGlzIG1vdmVzIHRoZSBCbGFja2Zpbi1jb21tb24gYm9vdGxkciBjb21tYW5kIG91dCBvZiB0aGUgQkY1MzctU1RBTVAKICAgIHNwZWNpZmljIGJvYXJkIGRpcmVjdG9yeSBhbmQgaW50byB0aGUgY29tbW9uIGRpcmVjdG9yeSBzbyB0aGF0IGFsbCBCbGFja2ZpbgogICAgYm9hcmRzIG1heSB1dGlsaXplIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkZWNiZTAyOWIyYTlkMzMzM2QwMmM0MzMzODliMWM4MjFlZWE5NmQ3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMTQgMTE6MDU6MjAgMjAwOCArMDEwMAoKICAgIG1nY29nZTogdXBkYXRlIGNvbmZpZ3VyYXRpb24KCiAgICBGaXggY29uZmlndXJhdGlvbiBmb3IgbWdjb2dlIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYzEzNjcyNGNkYTAyMTljNDlmMWQ0YjM0NmYwMGRhMjliMTRmZGYxNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgMTYgMDE6MjI6NTkgMjAwOCArMDEwMAoKICAgIGRyaXZlcnMvcnRjL01ha2VmaWxlOiBrZWVwIGxpc3Qgc29ydGVkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5NTM2ZGZjY2UwM2U3YmU0Y2NiY2ViNDdhMDhkOWJhMDdhZGEzNjJmCkF1dGhvcjogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KRGF0ZToJU2F0IE1hciAxNSAxNTo0MDoyNiAyMDA4ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIEludGVyc2lsIGlzbDEyMDggUlRDCgogICAgU2lnbmVkLW9mZi1ieTogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KCmNvbW1pdCAwMjEwY2ZmM2QwNzlkOTdiMjE1NmIxMzY4NWVlOGRlMzY4ZTY4YTFhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE1hciAxNSAxNzozNjo0MSAyMDA4ICswMTAwCgogICAgY3JhbWZzOiBGaXggaWZkZWYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBiOGYyYTI3ODYxYTlmZDA2ZWI1NWEzNGY4NTVlYzljNTEwMmFhYjQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDE2IDAxOjEyOjU4IDIwMDggKzAxMDAKCiAgICBDb25kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQxNzEyYjRlOGM5NWRmZjIzMzU0YmNkNjIwZTFmOTQ3NzE2MGMxOTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNSAxMjozMTo1MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgVVNCIE9IQ0kgc3VwcG9ydCB0byBBTUNDIENhbnlvbmxhbmRzIDQ2MEVYIGV2YWwgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgVVNCIE9IQ0kgc3VwcG9ydCB0byB0aGUgQ2FueW9ubGFuZHMgYm9hcmQgcG9ydC4gSXQgYWxzbwogICAgZW5hYmxlcyBFWFQyIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI1OTZmNWI5ZDM1M2ZmM2U0Mzg3YTMzMjVkMDU3NDBmMTY5NTgwMzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNSAxMjoyOTozMiAyMDA4ICswMTAwCgogICAgdXNiOiBBZGQgQ0ZHX09IQ0lfVVNFX05QUyB0byBjb21tb24gVVNCLU9IQ0kgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBhZGRzIENGR19PSENJX1VTRV9OUFMgdG8gdGhlIGNvbW1vbiBVU0ItT0hDSSBkcml2ZXIuIFRoaXMKICAgIHdheSBhIGJvYXJkIGp1c3QgbmVlZHMgdG8gZGVmaW5lIHRoaXMgbmV3IG9wdGlvbiB0byBlbmFibGUgdGhlICJmb3JjZQogICAgTm9Qb3dlclN3aXRjaGluZyBtb2RlIiBpbnN0ZWFkIG9mIGFkZGluZyBuZXcgQ1BVL2FyY2hpdGVjdHVyZSBkZWZpbmVzCiAgICB0byB0aGUgVVNCIHNvdXJjZSBpdHNlbGYuCgogICAgVGhpcyBuZXcgb3B0aW9uIHdpbGwgYmUgdXNlZCBmaXJzdCB3aXRoIHRoZSBuZXcgQU1DQyA0NjBFWCBDYW55b25sYW5kcwogICAgYm9hcmQgcG9ydCwgd2hpY2ggd2lsbCBiZSBwb3N0ZWQgaW4gYSBmZXcgZGF5cy4KCiAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgYSBzbWFsbCBjb21waWxhdGlvbiBwcm9ibGVtIHdoZW4gREVCVUcgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzE2NjVlYmY4ODQwOGZmMmFjYjc2MmFmNDc5ODlmZDQzNjViMzIxYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzIDE3OjI3OjAyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBDYW55b25sYW5kcyBOQU5EIGJvb3Rpbmcgc3VwcG9ydAoKICAgIDQ2MEVYIGRvZXNuJ3Qgc3VwcG9ydCBhIGZpeGVkIGJvb3RzdHJhcCBvcHRpb24gdG8gYm9vdCBmcm9tIDUxMiBieXRlIHBhZ2UKICAgIE5BTkQgZGV2aWNlcy4gVGhlIG9ubHkgYm9vdHN0cmFwIG9wdGlvbiBmb3IgTkFORCBib290aW5nIGlzIG9wdGlvbiBGIGZvcgogICAgMmsgcGFnZSBkZXZpY2VzLiBTbyB0byBib290IGZyb20gYSA1MTIgYnlwZSBwYWdlIGRldmljZSwgdGhlIEkyQyBib290c3RyYXAKICAgIEVFUFJPTSBuZWVkcyB0byBiZSBwcm9ncmFtbWVkIGFjY29yZGluZ2x5LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQ2FueW9ubGFuZHMgYXZhbAogICAgYm9hcmQgYW5kIGFsc28gYWRkcyBzdXBwb3J0IHRvIHRoZSAiYm9vdHN0cmFwIiBjb21tYW5kLCB0byBlbmFibGUgTkFORAogICAgYm9vdGluZyBJMkMgc2V0dGluZy4KCiAgICBUZXN0ZWQgd2l0aCA1MTIgYnl0ZSBwYWdlIE5BTkQgZGV2aWNlICgzMk1CeXRlKSBvbiBDYW55b25sYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzgxM2YxZjgzNWE3ZWRmZGI5MjlmMjg0M2IwOWRiNzJjZDVjZDJmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNjo1MzowMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQU1DQyBDYW55b25sYW5kcyBzdXBwb3J0ICg0NjBFWCkgKDMvMykKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQ2FueW9ubGFuZHMgNDYwRVggZXZhbHVhdGlvbgogICAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY5ODNmZTIxZjc3NGE5MjRkM2FkYjI2M2EyNzBiYzJmMzAxZjJhYTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTY6NTI6MjQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIEFNQ0MgQ2FueW9ubGFuZHMgc3VwcG9ydCAoNDYwRVgpICgyLzMpCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBTUNDIENhbnlvbmxhbmRzIDQ2MEVYIGV2YWx1YXRpb24KICAgIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ZTFhM2ZlNTQ1YmJjZmNlYWZlMTgzMzQ0ZWJjOWYxYWQwMzgxOWMxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE2OjUxOjE3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDIENhbnlvbmxhbmRzIHN1cHBvcnQgKDQ2MEVYKSAoMS8zKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQU1DQyBDYW55b25sYW5kcyA0NjBFWCBldmFsdWF0aW9uCiAgICBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDNjNjA5OTJjZGY3MjQ5NmU3ZWFhYTNmYmQzN2ViYmU3NTgzNWY2OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNToxMTo0MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoNS81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmYyZWIzZjNkOGVhMmRiYjIyNGQwZGE1YTEyMDM4NjkzYmFiOTk0NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNToxMToxOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoNC81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTk5ZWNkNWFjYTM4MTk4NGQ4ZWJiZWIyMDdlY2U4MmExYzI3NTU3NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNTowNzoxMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoMy81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjgwMWIyZDJhOTkwNmYyMDZhYjllZThkMGI2ZTc0NmQyYjdmZTA1YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNTowNTo1MCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoMi81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGFjNDFlM2UzN2MzMDgwYzZiMWQ5NDYxZDY1NDE2MWNmZTJhYTQ5MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNTowNToyNiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoMS81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTZlNDEwMTc4Mzc1ZDlmMjBiZTI1ZmIyNGUxODA5NzRmMGFlMTIwYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxOSAyMjowNzo1NyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBpbnRlcnJ1cHQuYyByZXdvcmtlZAoKICAgIFRoaXMgcGF0Y2ggaXMgYSByZXdvcmsgb2YgdGhlIDR4eCBpbnRlcnJ1cHQgaGFuZGxpbmcgZG9uZSB3aGlsZQogICAgYWRkaW5nIHRoZSA0NjBFWC9HVCBzdXBwb3J0LiBJbnRlcnJ1cHRzIGFyZSBuZWVkZWQgb24gNHh4IGZvciB0aGUKICAgIEVNQUMgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NGE5OTliNmNkZDBiMDJkYzdkZTJjYWNjMzA2ZWFhODRhZmUyYjQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDE5IDIyOjAxOjU3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IHByb2dyYW1fdGxiIG5vdyB1c2VzIDY0Yml0IHBoeXNpY2FsIGFkZGVzcwoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgcGh5c2ljYWwgYWRkZXNzIHBhcmFtZXRlciBmcm9tIDMyYml0IHRvIDY0Yml0LgogICAgVGhpcyBpcyBuZWVkZWQgZm9yIDM2Yml0IDR4eCBwbGF0Zm9ybXMgdG8gYWNjZXNzIGFyZWFzIGxvY2F0ZWQKICAgIGJleW9uZCB0aGUgNEdCIGJvcmRlciwgbGlrZSBTb0MgcGVyaXBoZXJhbHMgKEVCQyBldGMuKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzMzMDdmYTE4NmFmODU3NzE5MjRjNDM0OTk3MDg5YjgxMDRjMGE0NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxOSAyMTo1ODoyNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBtaWlwaHkuYyByZXdvcmtlZAoKICAgIFdoaWxlIGFkZGluZyB0aGUgNDYwRVgvR1Qgc3VwcG9ydCBJIHJld29ya2VkIHRoZSA0eHggbWlpcGh5IGNvZGUuIEl0CiAgICBiYWRseSBuZWVkZSBzb21lIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg4YWZmNjJkZjM5YzA3NTYyNDFlYTlmOWI1YTdiM2FkZTI2Y2I4MmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTkgMTY6MjE6NDkgMjAwOCArMDEwMAoKICAgIHJ0YzogQWRkIE00MVQ2MiBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGQgc3VwcG9ydCBmb3IgdGhlIFNUTSBNNDFUNjIgUlRDLiBJdCBpcyB1c2VkIGFuZCB0ZXN0ZWQKICAgIG9uIHRoZSBBTUNDIENhbnlvbmxhbmRzIDQwNkVYIHBsYXRmb3JtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyMTdkMzgzZTIwMWFkYzdmMjI3MTE0NWFlMzQ1ZWE1ZWFlMmI3MTcwCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODo0Njo0MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgNDA1R1ByIGJhc2VkIE1DVTI1IGJvYXJkIHNwZWNpZmljIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA3NWE2NmRjZGIzODM4NjNhZDMzZjA1MzRjZmMyN2I3YTg2OTQ3ZGFkCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODo0Njo0MiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgNDA1R1ByIGJhc2VkIE1DVTI1IGJvYXJkIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBiMDVmMzU0MzZiNzMzYTI0MDU1OWU3N2U0NmJlZDg0Mzk2NjVlY2M1CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODo0Njo0MSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgNDA1R1ByIGJhc2VkIE1DVTI1IGJvYXJkLiBHbG9iYWwgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDE0YzI3YjM1YWM4MTJhNzFhYmNlNmUzZTJmNDEyOWQ1ZTkzMTM2NjAKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglNb24gRmViIDI1IDE4OjM3OjAyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhDVTQvNS4gcmVtb3ZlIG9ic29sZXRlIGhjdV9mbGFzaC5jCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBhMDc5NDk0ODUzY2MyYmZlZGRiMjY2NzMyMTlkYjBiNGIyYjMxNTY2CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODozNzowMSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBIQ1U0LzUuIFVzZSBGTEFTSF9DRklfTEVHQUNZCgogICAgQ2xlYW51cDogUmVtb3ZlIGN1c3RvbSBmbGFzaCBkcml2ZXIgZm9yIDggYml0IGJvb3QtZXByb20gYW5kIHJlcGxhY2UgaXQgd2l0aAogICAgdGhlIEZMQVNIX0NGSV9MRUdBQ1kgZXQgYWwuIGNvbmZpZyBvcHRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgZTQxNzBlNWE1MGM4MTEwZjc5MmJjMzc0NzI4MzNhZTY2OWQ2OTk1MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxMzo1MjoyNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggY29tbWVudCBpbiA0MDVFWCBERFIyIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NjY1MjlmY2NjODYwZWNiOWU5NTViNDIzOWRmZjY5Y2Q5ZTRlYTA5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIE1hciAxNCAxNjoyMjozNCAyMDA4ICswMTAwCgogICAgQWRkIE1ENSBzdXBwb3J0IHRvIHRoZSBuZXcgdUltYWdlIGZvcm1hdAoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMGVkZTBjMzgzNTMwYTQxOGNmOThiZTkxMjIzNzFhODY1NzNjZDBkYgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMTY6MjI6MzQgMjAwOCArMDEwMAoKICAgIEFkZCB0aGUgTUQ1IGFsZ29yaXRobQoKICAgIE1ENSBzdXBvcHJ0IGlzIHR1cm5lZCBvbiBieSBkZWZpbmluZyBDT05GSUdfTUQ1LCB0aGUgZGlnZXN0IGNhbiBiZSB0aGVuCiAgICBjYWxjdWxhdGVkIHVzaW5nIHRoZSBtZDUoKSBmdW5jdGlvbiAtLSBzZWUgaW5jbHVkZS9tZDUuaCBmb3IgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGI4YWE1N2I1ZDRkNjllOGYwODEwYTVlNjMyYzBjZTQxYzBmNDZlZTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgTWFyIDE0IDE2OjA0OjU0IDIwMDggKzAxMDAKCiAgICB0b29scy9zZXRsb2NhbHZlcnNpb246IHVzZSBhIGdpdC1kZXNjcmliZS1pc2ggZm9ybWF0CgogICAgQ2hhbmdlIHRoZSBhdXRvbWF0aWMgbG9jYWwgdmVyc2lvbiB0byBoYXZlIHRoZSBmb3JtIC1ubm5ubi1nU0hBMVNVTUlELAogICAgd2hlcmUgJ25ubm5uJyBpcyB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgc2luY2UgdGhlIGxhc3QgdGFnIChpLmUuLAogICAgMS4zLjItcmMzKS4gIFRoaXMgbWFrZXMgaXQgbXVjaCBlYXNpZXIgdG8gcmVjb2duaXplICJuZXdlciIgdmVyc2lvbnMKICAgIGFuZCB0byBzZWUgaG93IG11Y2ggaGFzIGJlZW4gY2hhbmdlZCBzaW5jZSB0aGUgcmVmZXJlbmNlZCB0YWcuCgogICAgU3RvbGVuIGZyb20gTGludXgga2VybmVsJ3Mgc2NyaXB0cy9zZXRsb2NhbHZlcnNpbywgc2VlIGNvbW1pdCBkODgyNDIxZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM2ZGMyMWM4NGRlMGYxNTlhMTc1MmM1ZWJkMzNjZmY4NDNmNjM2MDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEzIDE0OjMyOjAzIDIwMDggKzAxMDAKCiAgICBITUkxMDAxOiBhZGQgc3VwcG9ydCBmb3IgTVBDNTIwMCBSZXYuIEIgcHJvY2Vzc29ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDkwZjEzZGNlN2E3YTlhODRkNTczMDU3NmM5YTI0ZDBkYmIwN2NiM2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEzIDE0OjI5OjQ5IDIwMDggKzAxMDAKCiAgICBUUU01MjAwOiByZW1vdmUgZGVhZCBjb2RlCgogICAgVGhpcyBib2FyZCBuZXZlciB1c2VkIGEgTUdUNTEwMCBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhZmU0NWM4N2UzYzVkNzdiYWQ3NmIxYTU3ZGNjZDIwNzY0ZDQ1YjVkCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMjoxNDoxNSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBidWlsZCBpc3N1ZSBvbiBBUk0KCiAgICBBUk0gcGxhdGZvcm1zIGRvbid0IGhhdmUgYSBiZC0+YmlfbWVtc2l6ZSBzbyB1c2UgYmQtPmJpX2RyYW1bMF0uc2l6ZSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMzMxMGM1NDlhNzNhOTQ5NDMwYmZkYTkwODc2ZGY3NTUyYTFkYWIwYwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTI6MTM6MTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXMKCiAgICBDcmVhdGUgZG9jL3VJbWFnZS5GSVQgZG9jdW1lbnRhdGlvbiBkaXJlY3Rvcnkgd2l0aCB0aGUgZm9sbG93aW5nIGZpbGVzOgogICAgLSBjb21tYW5kX3N5bnRheF9leHRlbnNpb25zLnR4dCA6IGV4dGVuZGVkIGNvbW1hbmQgc3ludGF4IGRlc2NyaXB0aW9uCiAgICAtIGhvd3RvLnR4dAkJCSAgICA6IHNob3J0IHVzYWdlIGhvd3RvCiAgICAtIHNvdXJjZV9maWxlX2Zvcm1hdC50eHQJICAgIDogaW50ZXJuYWwgbmV3IHVJbWFnZSBmb3JtYXQgZGVzY3JpcHRpb24KCiAgICBBZGQgZXhhbXBsZSBpbWFnZSBzb3VyY2UgZmlsZXM6CiAgICAtIGtlcm5lbC5pdHMKICAgIC0ga2VybmVsX2ZkdC5pdHMKICAgIC0gbXVsdGkuaXRzCgogICAgVXBkYXRlIFJFQURNRSBhcHByb3ByaWF0ZWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFlYzczNzYxZDJlMjQ3MDc4ZjQ1MjBhMjY1ZDQ2M2U4YjczMzkxYTIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjM1OjUyIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IGRlZmluaXRpb24gb2YgY29tbW9uIGJvb3RtX2hlYWRlcnNfdCBmaWVsZHMKCiAgICB2ZXJpZnksIGF1dG9zdGFydCBhbmQgbG1iIGZpZWxkcyBhcmUgdXNlZCByZWdhcmRsZXNzIG9mIENPTkZJR19GSVQKICAgIHNldHRpbmcsIG1vdmUgdGhlaXIgZGVmaW5pdGlvbnMgdG8gY29tbW9uIHNlY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxZDFjYjQyNzBlZGM2YTk5Mjc2ODM0MDY0MDY5NzE3Zjk3ODJjNDkxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozNTo1MSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBidWlsZCBwcm9ibGVtcyBvbiB0cmFiIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmNzczYmVhOGUxMWY0YTExYzM4OGRjZWU5NTZiMjQ0NDIwM2U2YjY1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozNTo0NiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBwcm9wZXIgcmFtZGlzay9GRFQgaGFuZGxpbmcgd2hlbiBGSVQgY29uZmlndXJhdGlvbiBpcyB1c2VkCgogICAgU2F2ZSBGSVQgY29uZmlndXJhdGlvbiBwcm92aWVkIGluIHRoZSBmaXJzdCBib290bSBhcmd1bWVudCBhbmQgdXNlIGl0CiAgICB3aGVuIHRvIGdldCByYW1kaXNrL0ZEVCBzdWJpbWFnZXMgd2hlbiBzZWNvbmQgYW5kIHRoaXJkIChyYW1kaXNrL0ZEVCkKICAgIGFyZ3VtZW50cyBhcmUgbm90IHNwZWNpZmllZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDI2ODJjZThhNDIyNWYyM2Q3MmJiN2ZlZDA2OWU5MjhkZDM5ZDM0YWUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW9yZSB2ZXJib3NlIGtlcm5lbCBpbWFnZSB1bmNvbXByZXNzIGVycm9yIG1lc3NhZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDEzNzJjY2UyYjkwNDBmYjY0MGU1MDMyYjg0ZTNhMDMzYTIyZDZmZjAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gVXNlIHNob3dfYm9vdF9wcm9ncmVzcygpIGZvciBuZXcgdUltYWdlIGZvcm1hdAoKICAgIFRoaXMgcGF0Y2ggYWxsb2NhdGVzIGEgc2V0IG9mIHNob3dfYm9vdF9wcm9ncmVzcygpIElEcyBmb3IgbmV3IHVJbWFnZSBmb3JtYXQKICAgIGFuZCBhZGRzIHNob3dfYm9vdF9wcm9ncmVzcygpIGNhbGxzIGluIG5ldyB1SW1hZ2UgZm9ybWF0IGhhbmRsaW5nIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjMjhjNGQxOTNkYmZiMjBiMmRkM2E1NDQ3NjQwZmQ2ZGU3ZmQwNzIwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZyb21hdCBzdXBwb3J0IHRvIGZwZ2EgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMDk0NzVmNzUyNzQ2MGU0MjZjMGUwNjI4ZmM1YjhmMzc1NGZiYWEyMwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgaGFuZGxpbmcgdG8gb3RoZXIgYm9vdG0gcmVsYXRlZCBjb21tYW5kcwoKICAgIFVwZGF0ZWQgY29tbWFuZHM6CgogICAgZG9jYm9vdCAgLSBjbWRfZG9jLmMKICAgIGZkY2Jvb3QgIC0gY21kX2ZkYy5jCiAgICBkaXNrYm9vdCAtIGNtZF9pZGUuYwogICAgbmJvb3QgICAgLSBjbWRfbmFuZC5jCiAgICBzY3NpYm9vdCAtIGNtZF9zY3NpLmMKICAgIHVzYmJvb3QgIC0gY21kX3VzYi5jCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxYjc4OTdmMjhkNDlhODBkNzhkNzYwZWM2ZjZmMTFkYzBmOTE0MzM4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IHRvIGltZ2V4dHJhY3QgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNDI0YzRhYmRkMTc1ZDJjNDcwNTEwZGY4Y2UwZTMyZDNmNDYzZWMxNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCB0byBhdXRvc2NyaXB0IHJvdXRpbmUKCiAgICBhdXRvc2NyaXB0KCkgcm91dGluZSBpcyB1cGRhdGVkIHRvIGFjY2VwdCBzZWNvbmQgYXJndW1lbnQsIHdoaWNoCiAgICBpcyBvbmx5IHVzZWQgZm9yIEZJVCBpbWFnZXMgYW5kIHByb3ZpZGVzIGEgRklUIHN1YmltYWdlIHVuaXQgbmFtZS4KCiAgICBhdXRvc2NyaXB0KCkgcm91dGluZSBjYWxsZXJzIG11c3Qgbm93IHBhc3MgdHdvIGFyZ3VtZW50cy4gRm9yCiAgICBub24taW50ZXJhY3RpdmUgdXNlIChsaWtlIGluIGNtZF9sb2FkLmMsIGNtZF9uZXQuYyksIG5ldyBlbnZpcm9ubWVudAogICAgdmFyaWFibGUgJ2F1dG9zY3JpcHRfdW5hbWUnIGlzIGludHJvZHVjZWQgYW5kIHVzZWQgYXMgYSBGSVQKICAgIHN1YmltYWdlIHVuaXQgbmFtZSBzb3VyY2UuCgogICAgYXV0b3NjcmlwdCBjb21tYW5kIGFjY2VwdHMgZXh0ZW5kZWQgc3ludGF4IG9mIHRoZSBhZGRyIGFyZ3VtZW50OgogICAgYWRkcjo8c3ViaW1nX3VuYW1lPgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgY2Q3YzU5NmU5ZjU2MWRiYmMxN2I3MTcyNzc0MzhhZWU3OGNkZTE0ZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCB0byBhcmNoIHNwZWNpZmljIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZXMKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZgogICAgZG9fYm9vdG1fbGludXgoKSBhZGRpbmcgbmV3IHVJbWFnZSBmb3JtYXQgaGFuZGxpbmcgZm9yCiAgICBvcGVyYXRpb25zIGxpa2UgZ2V0IGtlcm5lbCBlbnRyeSBwb2ludCBhZGRyZXNzLCBnZXQga2VybmVsCiAgICBpbWFnZSBkYXRhIHN0YXJ0IGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzZGZlMTEwMTQ5MzExNDI1OTE5ZTZkNmExNGI1NjFiNDIwNzQ5OGYxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMjo1OSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBub2RlIG9mZnNldHMgZm9yIEZJVCBpbWFnZXMgbGlzdGVkIGluIHN0cnVjdCBib290bV9oZWFkZXJzCgogICAgVGhpcyBwYXRjaCBhZGRzIG5ldyBub2RlIG9mZnNldCBmaWVsZHMgdG8gc3RydWN0IGJvb3RtX2hlYWRlcnMKICAgIGFuZCB1cGRhdGVzIGJvb3RtX2hlYWRlcnMgcHJvY2Vzc2luZyBjb2RlIHRvIG1ha2UgdXNlIG9mIHRoZW0uCiAgICBTYXZlZCBub2RlIG9mZnNldHMgYWxsb3cgdG8gYXZvaWQgcmVwZWF0aW5nIGZpdF9pbWFnZV9nZXRfbm9kZSgpIGNhbGxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYmM4ZWQ0ODZiMTI1NDUyYmEzYmQ4MzQ0ZjA1MmY0MzczMjkxNTBjNQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzI6NTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBwcGM6IEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IHRvIEZEVCBoYW5kbGluZyByb3V0aW5lcwoKICAgIFN1cHBvcnQgZm9yIG5ldyAoRklUKSBmb3JtYXQgdUltYWdlcyBpcyBhZGRlZCB0byBwb3dlcnBjIHNwZWNpZmljCiAgICBib290X2dldF9mZHQoKSByb3V0aW5lIHdoaWNoIG5vdyByZWNvZ25pemVzLCBzYW5pdHkgY2hlY2tzIEZJVCBpbWFnZQogICAgYW5kIGlzIGFibGUgdG8gYWNjZXNzIGRhdGEgc2VjdGlvbnMgb2YgdGhlIHJlcXVlc3RlZCBjb21wb25lbnQgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhNDRhMjY5YTkwNWY5MjRiNDIwMDIwNTA2YTRkN2Q3ZWVkY2MwZWFmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDoxNDo1NyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlLWVuYWJsZSBpbnRlcnJ1cHRzIGZvciBub24gYXV0b21hdGljIGJvb3RpbmcKCiAgICBSZS1lbmFibGUgaW50ZXJydXB0cyBpZiB3ZSByZXR1cm4gZnJvbSBkb19ib290bV88b3M+IGFuZCAnYXV0b3N0YXJ0JwogICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCB0byAneWVzJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQ5ODVjODQ5OGM0ZTQ3MDk1ODIwZGE5N2FhNzIyMzgxZDM5MTcyYzUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjE0OjM4IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVtb3ZlIHVubmVjZXNzYXJ5IGFyZ3VtZW50cyBwYXNzZWQgdG8gcmFtZGlzayByb3V0aW5lcwoKICAgIGJvb3RfZ2V0X3JhbWRpc2soKSBhbmQgaW1hZ2VfZ2V0X3JhbWRpc2soKSBkbyBub3QgbmVlZCBhbGwKICAgIGNtZHRwLCBmbGFnLCBhcmdjIGFuZCBhcmd2IGFyZ3VtZW50cy4gU2ltcGxpZnkgcm91dGluZXMgZGVmaW5pdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM4Nzc5NjQ4M2JjN2MyOTAwNDcwZGM3NDdjMzY3ZjYwMjU3NzYwOGQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjEyOjM3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgZm9yIHJhbWRpc2sgaGFuZGxpbmcKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgYm9vdF9nZXRfcmFtZGlzaygpIHJvdXRpbmUgYWRkaW5nIGZvcm1hdAogICAgdmVyaWZpY2F0aW9uIGFuZCBoYW5kbGluZyBmb3IgbmV3IChGSVQpIHVJbWFnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2OTg2YTM4NTY3MTc0OWVjYjNmNjBjZjk5ZTljYmFlOGU0N2JiNTBlCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDowMTowNSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IGZvciBrZXJuZWwgYm9vdGluZwoKICAgIE5ldyBmb3JtYXQgdUltYWdlcyBhcmUgcmVjb2duaXplZCBieSB0aGUgYm9vdG0gY29tbWFuZCwKICAgIHZhbGlkaXR5IG9mIHNwZWNpZmllZCBrZXJuZWwgY29tcG9uZW50IGltYWdlIGlzIGNoZWNrZWQgYW5kCiAgICBpdHMgZGF0YSBzZWN0aW9uIGxvY2F0ZWQgYW5kIHVzZWQgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZwogICAgKHVuY29tcHJlc3MsIGxvYWQsIGV0Yy4pCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlMzJmZWE2YWRiNjIwZWNmMmJkNzBhY2YyZGQzN2U1M2RmOWQxNTQ3CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1hciAxMSAxMjozNToyMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IGZvciBpbWxzIGFuZCBpbWluZm8gY29tbWFuZHMKCiAgICBpbWxzIGFuZCBpbWluZm8gY2FuIG5vdyByZWNvZ25pemUgbmFkIHByaW50IG91dCBjb250ZW50cyBvZiB0aGUgbmV3IChGSVQpCiAgICBmb3JtYXQgdUltYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDlkMjU0MzhmZTdkNzBjZjM1YThhMjkzZWE1ZTM5MmZlZmM2NzI2MTMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWFyIDExIDEyOjM0OjQ3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIHN1cHBvcnQgZm9yIG5ldyB1SW1hZ2UgZm9ybWF0IHRvIG1raW1hZ2UgdG9vbAoKICAgIFN1cHBvcnQgZm9yIHRoZSBuZXcgdUltYWdlIGZvcm1hdCAoRklUKSBpcyBhZGRlZCB0byBta2ltYWdlIHRvb2wuCiAgICBDb21tYW5kbGluZSBzeW50YXggaXMgYXBwcm9wcmlhdGVseSBleHRlbmRlZDoKCiAgICBta2ltYWdlIFstRCBkdGNfb3B0aW9uc10gLWYgZml0LWltYWdlLml0cyBmaXQtaW1hZ2UKCiAgICBta2ltYWdlICh0b2dldGhlciB3aXRoIGR0YykgdGFrZXMgZml0LWltYWdlLml0cyBhbmQgcmVmZXJlbmNlZCB0aGVyZWluCiAgICBiaW5hcmllcyAobGlrZSB2bWxpbnV4LmJpbi5neikgYXMgaW5wdXRzLCBhbmQgcHJvZHVjZXMgZml0LWltYWdlIGZpbGUgLS0gdGhlCiAgICBmaW5hbCBpbWFnZSB0aGF0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgdGFyZ2V0IChlLmcuLCB2aWEgdGZ0cCkgYW5kIHRoZW4KICAgIGJvb3RlZCB1c2luZyB0aGUgYm9vdG0gY29tbWFuZCBpbiBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlYjYxNzVlZGQ2YzEyMGQ4Yjg5Njc4MjQzZTVhMmJlMzYyZWU4ZTQwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE1hciAxMCAxNzo1Mzo0OSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1ha2Ugbm9kZSB1bml0IG5hbWVzIGNvbnN0IGluIHN0cnVjdCBib290bV9oZWFkZXJzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA1ZGZiNTIxMzg2ODhjY2JmMDE0NmY2MjY4M2ZlNjIxN2IzY2UxYjA1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAyMToyNDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE5ldyB1SW1hZ2UgbG93LWxldmVsIEFQSQoKICAgIEFkZCBGRFQtYmFzZWQgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBuZXcgZm9ybWF0IGNvbXBvbmVudCBpbWFnZXMsCiAgICBjb25maWd1cmF0aW9ucywgbm9kZSBvcGVyYXRpb25zLCBwcm9wZXJ0eSBnZXQvc2V0LCBldGMuCgogICAgZml0XwktIHJvdXRpbmVzIGhhbmRsaW5nIGdsb2JhbCBuZXcgZm9ybWF0IHVJbWFnZSBvcGVyYXRpb25zCgkJICBsaWtlIGdldC9zZXQgdG9wIGxldmVsIHByb3BlcnR5LCBwcm9jZXNzIGFsbCBub2RlcywgZXRjLgogICAgZml0X2ltYWdlXwktIHJvdXRpbmVzIGhhbmRsaW5nIGNvbXBvbmVudCBpbWFnZXMgc3Vibm9kZXMKICAgIGZpdF9jb25mXwktIHJvdXRpbmVzIGhhbmRsaW5nIGNvbmZpZ3VyYXRpb25zIG5vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzMGYxODA2ZjYwOTc4ZDcwN2IwY2ZmMmQ3YmY4OWQxNDFmYzI0MjkwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDE2OjIwOjAyIDIwMDggKzAxMDAKCiAgICBSZWxlYXNlIHYxLjMuMgoKICAgIFVwZGF0ZSBDSEFOR0VMT0cgZm9yIHJlbGVhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YjQ2NGMyODliYTcxNWQwOTc5YjZlMWY5NDk0N2JiOGYxMDY4ZDE2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciA5IDE0OjUyOjExIDIwMDggKzAxMDAKCiAgICBTQ006IGZpeCAncGFja2VkJyBhdHRyaWJ1dGUgaWdub3JlZCBmb3IgZmllbGQgb2YgdHlwZSAnY2FuX21zZ190JyB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGRiNjk1Yjc4NTE1ZGRiODhhMmQ0ZjMzNTdjMTIwMzQ1ZWZiZjU5ZWMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDkgMTA6NDQ6MDEgMjAwOCArMDEwMAoKICAgIHNjYjkzMjg6IEZpeCBmbGFzaCB3YXJuaW5nOiB0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMmIzZTdlNjFkNmE3MmYxNmFlZTkzZjg3MGJjNmFmNjdmMzA3NThjNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAxMDo1MDo0MSAyMDA4ICswMTAwCgogICAgZXNkL2NvbW1vbi9mcGdhLmM6IGZpeCBpbmRlbnRhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNjMzg0M2UzNjQ1M2UyYjhkYjY1ZDdlNTZkZTkzOGJhMDQ1MDE2YTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMTA6MzM6MzEgMjAwOCArMDEwMAoKICAgIGNvbW1vbi9rZ2RiLmM6IGZpeCAnZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyJyB3YXJuaW5nCgogICAgYW5kIGdldCByaWQgb2YgYSBjb3VwbGUgb2YgdW5uZWVkZWQgY2FzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZDRmNGE4MzhkN2RjN2NmNGRlMTdlM2U5YTY3ZTJmMjIyYjZhMWM4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDEwOjA5OjUzIDIwMDggKzAxMDAKCiAgICBlc2QvY29tbW9uL2ZwZ2EuYzogZml4ICdhc3NpZ25tZW50IG9mIHJlYWQtb25seSBsb2NhdGlvbicgZXJyb3IKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM2ZmU0ZGFiYWMwNjZlODc1ODM0NWQyNDkwMzI3Njg0OTY5ODNhM2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMDI6MTM6MTkgMjAwOCArMDEwMAoKICAgIE1ha2VmaWxlOiBtYWtlIGJ1aWxkIHNpbGVudGx5IGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzZiYWJjODY1NzZmMDkyNTczNTk5MzM0Yzg1ZWM1NDNmZGJjNjAxNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAwMjowNzo0OSAyMDA4ICswMTAwCgogICAgbTUwMXNrOiBGaXggb3V0IG9mIHRyZWUgYnVpbGRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDIxMGVkMjAwNGUwNjJmZGQwM2YyNWFiNDkyNTk5OGFhMWJkMDhhMDcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMDA6MDY6MDkgMjAwOCArMDEwMAoKICAgIEFEUzUxMjE6IGZpeCBvdXQgb2YgdHJlZSBidWlsZAoKICAgIGFuZCBzaW1wbGlmeSBNYWtlZmlsZSBhIGJpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQ2Y2I1MDc0YTNmNzRkZTY0ZWJkOTdkZDBjNGVjN2ViM2Q3NjhiOTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDggMjI6MzU6MzEgMjAwOCArMDEwMAoKICAgIFJlbGVhc2UgdjEuMy4yCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3OGE5MGY4MjdkZjc0NTIwZTkzOWM3OTRmYzc0MTNkYWNlMjFjNGRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1hciA4IDIyOjM1OjA0IDIwMDggKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1OGYzYzU3YzYwMDhiNDJlMDFmNTUxZDNiZTZlZmQ4OGMxNGFjODdmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE1hciA4IDIxOjMwOjA0IDIwMDggKzAxMDAKCiAgICBlc2Q6IEZpeCB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2ZwZ2FfYm9vdCcgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQ3NTQ2OWQ0OGMwNTc5NTE0NGY0YjhiYTc2YWRkYmI0OTIwYTdiYmEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVNhdCBNYXIgOCAwOToyNTo0OSAyMDA4ICswOTAwCgogICAgbmV0OiBydGw4MTY5OiBBZGQgcHJvY2Vzc2luZyB3aGVuIE9XTmJpdCBkaWQndCBlbmFibGUgaW4gcnRsX3JlY3YoKQoKICAgIFdoZW4gcnRsX3JlY3YoKSBvZiBydGw4MTY5IGlzIGNhbGxlZCwgT1dOYml0IG9mIHN0YXR1cyByZWdpc3RlcgogICAgaXMgbm90IGVuYWJsZSBvY2Nhc2lvbmFsbHkuCiAgICBydGxfcmVjdigpIGRvZXNuJ3Qgd29yayBub3JtYWxseSB3aGVuIHRoZSBkcml2ZXIgZG9lc24ndCBkbwogICAgYXBwcm9wcmlhdGUgcHJvY2Vzc2luZy4KICAgIFRoaXMgcGF0Y2ggZml4IHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgODJhZmFiZmViOGFlNmEyN2M3YjM5NjAxMWVhOTlmNDcxMmFhNzNmYQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgTWFyIDcgMDg6MTU6MjggMjAwOCArMDEwMAoKICAgIG1nc3V2ZDogdXBkYXRlIGJvYXJkIGNvbmZpZ3VyYXRpb24KCiAgICBpbml0aWFsaXplIHRoZSBVUElPeCBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU0OTJjOTBjMjYyMTVlNDU5YWVjMGZkZjBmOGVmMWZkMjA0OTg4ZjUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE1hciA3IDA4OjEzOjQxIDIwMDggKzAxMDAKCiAgICBtZ2NvZ2U6IHVwZGF0ZSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgYWRkIHN1cHBvcnQgZm9yIHRoZSBjb25maWcgRmxhc2guCiAgICBpbml0aWFsaXplIHRoZSBVUElPeCBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDI3MGZlMjYxYjdmOTI5MjgwMGIyYjNkMWJmMTlhZTdjYmM4ODAyNTgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDcgMTI6Mjc6MzEgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IG1ha2UgZHRiIGJhc2VuYW1lIGZpbGUgcmVmZXJlbmNlcyBlcXVhbCB0aG9zZSBvZiBsaW51eAoKICAgIHRoZSBkdHMgZmlsZSBiYXNlbmFtZXMgd2VyZSB1cGRhdGVkIGluIGxpbnV4IC0gdGhpcyBoZWxwcyBhdm9pZAogICAgaW5hZHZlcnRlbnRseSBsb2FkaW5nIGFueSBvbGQgZHRicyBsYXlpbmcgYXJvdW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjMwYjYxNTRmMTZmNWZmYTRhOWY1YmZjYTVlMTE0ZDcyYjZlZjY3NQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTY6MDg6MjIgMjAwOCAtMDYwMAoKICAgIG5ldDogdWVjX3BoeTogYWN0dWFsbHkgaW5jcmVtZW50IHRoZSB0aW1lb3V0IGNvdW50ZXIKCiAgICBhbGxvdyB1LWJvb3QgdG8gcmVjb3ZlciAoYW5kLCBlLmcuLCBzd2l0Y2ggdG8gYW5vdGhlciBpbnRlcmZhY2UpIGluIHRoZQogICAgY2FzZSB3aGVyZSBhIFBIWSBkb2VzIG5vdCByZXBvcnQgYXV0b25lZ290aWF0aW9uIGlzIGNvbXBsZXRlIHdpdGhpbiBpdHMKICAgIHR3byBzZWNvbmQgdGltZW91dCB2YWx1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc3MjAwM2U0Mzk1N2VlMGM4OTVhYmVkN2NkODJjYmU3MjgyMGNiYjgKQXV0aG9yOiBNYXJrdXMgQnJ1bm5lciA8c3VwZXIuZmlyZXR3aXN0ZXJAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVdlZCBNYXIgNSAyMTozODoxMiAyMDA4ICswMTAwCgogICAgZml4IHRhaWh1IHNvZnQgc3BpX3JlYWQKCiAgICBUaGUgdGFpaHUgYm9hcmQgdXNlZCBncGlvX3JlYWRfb3V0X2JpdCB3aGljaCByZWFkcyB0aGUgb3V0cHV0IHJlZ2lzdGVyIGFuZCBub3QKICAgIHRoZSBwaW4gc3RhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEJydW5uZXIgPHN1cGVyLmZpcmV0d2lzdGVyQGdtYWlsLmNvbT4KCmNvbW1pdCBmYzg0YTg0OTVhYzc1MGY2YjRhZGFlODFmOGM0ZjEwMGY2NWI2MzQwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTWFyIDcgMDg6MDE6NDMgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogU2VxdW9pYTogQWRkIGRldmljZSB0cmVlIChmZHQpIExpbnV4IGJvb3RpbmcgZGVmYXVsdCBlbnYgdmFyaWFibGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGJkNDQ1OGNiNDdhYmVjYWJkNDA2YjEyMTA0NTdiZTk2YzY5ZmM0OWQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgNCAxNjo1OToyMiAyMDA4ICswODAwCgogICAgODM3eEVNRFM6IEltcHJvdmUgdGhlIHN5c3RlbSBwZXJmb3JtYW5jZQoKICAgIDEuIE1ha2UgdGhlIENTQiBidXMgcGlwZWxpbmUgZGVwdGggYXMgNCwgYW5kIGVuYWJsZQogICAgICAgdGhlIHJlcGVhdCBtb2RlOwogICAgMi4gUmFpc2UgdGhlIGVUU0VDIGVtZXJnZW5jeSBwcmlvcml0eTsKICAgIDMuIFVzZSB0aGUgaGlnaGVzdCBJUCBibG9ja3MgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkOGFiNThiMjEyNDgxYjFjNTc5NDdlYTIxYWE5NmM0Y2U4MDBkMGI0CkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVRodSBNYXIgNiAxNjo0NTo1MyAyMDA4ICswMTAwCgogICAgUmVwbGFjZSAicnVuIGxvYWQ7IHJ1biB1cGRhdGUiIHdpdGggY29uZGl0aW9uYWxpemVkICJydW4gbG9hZCB1cGRhdGUiLgoKICAgIFRoZSBsYXR0ZXIgdmVyc2lvbiBzdG9wcyB3aGVuICJydW4gbG9hZCIgZmFpbHMgZm9yIHdoYXRldmVyIHJlYXNvbnMKICAgIHJlbmRlcmluZyB0aGUgY29tYmluYXRpb24gKmEgbG90KiBtb3JlIHNlY3VyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA2YmMxMTM4ODZkN2QzMTZkZjFhNGU0NTliZWM4YmFmMDI3NTE4NTUxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDQgMTc6NDA6NDEgMjAwOCArMDEwMAoKICAgIG5ldDogUHJpbnQgZXJyb3IgbWVzc2FnZSB1cG9uIG5ldCB1c2FnZSB3aGVuIG5vIGV0aGVybmV0LWludGVyZmFjZSBpcyBmb3VuZAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHNlZW4gb24gUFBDNHh4IGJvYXJkcywgd2hlbiBubyBNQUMgYWRkcmVzcyBpcwogICAgZGVmaW5lZC4gVGhlbiBubyBldGhlcm5ldCBpbnRlcmZhY2UgaXMgYXZhaWxhYmxlIGJ1dCBhIHNpbXBsZSAidGZ0cCIKICAgIGNvbW1hbmQgd2lsbCByZXR1cm4gd2l0aG91dCBhbnkgZXJyb3IgbWVzc2FnZSB3aGljaCBpcyBxdWl0ZSBjb25mdXNpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGEzMGE1NDlhMzU1MzAzMmQ4MDllMDM1NjMwNmI2MmRlMGIxMjU5MDEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDQgMTA6MDM6MDMgMjAwOCAtMDYwMAoKICAgIFJlbW92ZSBlcnJvbmVvdXMgb3IgZXh0cmEgc3BkLmggI2luY2x1ZGVycy4KCiAgICBNYW55IG9mIHRoZSBzcGQuaCAjaW5jbHVkZXJzIGRvbid0IG5lZWQgaXQsCiAgICBhbmQgd2FudGVkIHRvIGhhdmUgc3BkX3NkcmFtKCkgZGVjbGFyZWQgaW5zdGVhZC4KICAgIFNpbmNlIHRoZXkgZGlkbid0IGdldCB0aGF0LCBzb21lIGFsc28gaGFkIG9wZW4KICAgIGNvZGVkIGV4dGVybiBkZWNsYXJhdGlvbnMgb2YgaXQgaW5zdGVhZCBvciBhcyB3ZWxsLgogICAgRml4IGl0IGFsbCB1cCBieSB1c2luZyBzcGRfc2RyYW0uaCB3aGVyZSBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNDQ3NTM4NmNlZjE0YWYzZmQ4OGYwNTE4YjY4OGU3NTU2Njk0ODZkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciA0IDE3OjQxOjI4IDIwMDggKzAxMDAKCiAgICBQQ1M0NDBFUDogZml4IGJ1aWxkIHByb2JsZW1zIChyZWR1bmRhbnQgI2RlZmluZSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU4NWUyZmE4NWVjMDlhNmZhYzI4NDZkMWQ4ODFkODczN2UyYmJkYTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxNzozOToyNSAyMDA4ICswMTAwCgogICAgbmV0OiBQcmludCBlcnJvciBtZXNzYWdlIHVwb24gbmV0IHVzYWdlIHdoZW4gbm8gZXRoZXJuZXQtaW50ZXJmYWNlIGlzIGZvdW5kCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gc2VlbiBvbiBQUEM0eHggYm9hcmRzLCB3aGVuIG5vIE1BQyBhZGRyZXNzIGlzCiAgICBkZWZpbmVkLiBUaGVuIG5vIGV0aGVybmV0IGludGVyZmFjZSBpcyBhdmFpbGFibGUgYnV0IGEgc2ltcGxlICJ0ZnRwIgogICAgY29tbWFuZCB3aWxsIHJldHVybiB3aXRob3V0IGFueSBlcnJvciBtZXNzYWdlIHdoaWNoIGlzIHF1aXRlIGNvbmZ1c2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzg0ZmFhYWZiOTk5Y2FlM2NlNDQ3YzkzZTI4YTBiN2UyZTVmZWY1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxNzozODo1MCAyMDA4ICswMTAwCgogICAgVzdPTE1DL1c3T0xNRzogZml4IGJ1aWxkIHByb2JsZW1zIChyZWR1bmRhbnQgI2RlZmluZSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGY5MzAxZTFjZGEyOTYyNDViYTA1MmQ3YjA4MzIxMTk5YzNkMGFmOWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDQgMTQ6NTg6MzEgMjAwOCArMDEwMAoKICAgIE1ha2VmaWxlOiBmaXggcHJvYmxlbSB3aXRoIG91dC1vZi10cmVlIGJ1aWxkcyBpbnRyb2R1Y2VkIGJ5IDUwMTNjMDlmCgogICAgQ29tbWl0IDUwMTNjMDlmIChNYWtlZmlsZTogY2xlYW51cCAiY2xlYW4iIHRhcmdldCkgaW50cm9kdWNlZCBhCiAgICBwcm9ibGVtIGZvciBvdXQtb2YtdHJlZSBidWlsZHMgd2hpY2ggY2F1c2VkICJtYWtlIGNsZWFuIiB0byBmYWlsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGZlY2U5NTAwNTU2YmVkNWQ4MjQ0YjFjMTVkOTczY2VjN2MyNWJmZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxMTo1ODoyNiAyMDA4ICswMTAwCgogICAgZXhhbXBsZXMvTWFrZWZpbGU6IGJ1aWxkICJoZWxsb193b3JsZCIgb24gOHh4LCB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3NGViMDIyMjU5NGZkMjNhYWZkZjE2OGU2MGU4NzI4MTRlZWE4YjYyCkF1dGhvcjogTWlrZSBOdXNzIDxtaWtlQHRlcmFzY2FsYS5jb20+CkRhdGU6CU1vbiBNYXIgMyAxNToyNzowNSAyMDA4IC0wNTAwCgogICAgUFBDNHh4IChTZXF1b2lhKTogRml4IEV0aGVybmV0ICJyZW1vdGUgZmF1bHQiIHByb2JsZW1zCgogICAgRXZlcnkgbm93IGFuZCB0aGVuIGEgU2VxdW9pYSBib2FyZCAob3IgZXF1aXZhbGVudCBoYXJkd2FyZSkgaGFkCiAgICBwcm9ibGVtcyBjb25uZWN0aW5nIHRvIGEgR2lnYWJpdCBjYXBhYmxlIG5ldHdvcmsgaW50ZXJmYWNlLgoKICAgIFRoZXJlIHdlcmUgZGlmZmVyZW5jZXMgaW4gdGhlIFBIWSBzZXR1cCBiZXR3ZWVuIExpbnV4IGFuZCBVLUJvb3QuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4gQXBwYXJlbnRseSAicmVtb3RlIGZhdWx0IiBpcyBiZWluZyBzZXQsCiAgICB3aGljaCBzaWduYWxzIHRvIHNvbWUgZGV2aWNlcyAob24gdGhlIG90aGVyIGVuZCBvZiB0aGUgY2FibGUpIHRoYXQgYQogICAgZmF1bHQgaGFzIG9jY3VycmVkLCB3aGlsZSBvdGhlciBkZXZpY2VzIGlnbm9yZSBpdC4gSSBiZWxpZXZlIHRoZSBSRiBiaXQKICAgIHdhcyBjYXVzaW5nIHRoZSBpc3N1ZSwgYnV0IEkgcmVtb3ZlZCBUNCBhbHNvLCB0byBtYXRjaCB1cCB3aXRoIExpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgoKY29tbWl0IDQ5MWZiNmRlYTlmNTJmZGI5Y2I1OTk2ZThlOTc4YjllOTY4NTE3OWYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDMgMDk6NTg6NTIgMjAwOCAtMDYwMAoKICAgIGZpeCBRRSBmaXJtd2FyZSB1cGxvYWRpbmcgbGltaXQKCiAgICBGaXggYSB0eXBvIGluIHFlX3VwbG9hZF9maXJtd2FyZSgpIHRoYXQgcHJldmVudGVkIHVwbG9hZGluZyBmaXJtd2FyZSBvbgogICAgc3lzdGVtcyB3aXRoIG1vcmUgdGhhbiBvbmUgUklTQyBjb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDJiYTU4ZTBjMzAyYjMzOWEzYzJmYWE2MDA2YTAxM2M2ZjE4NmI3YQpBdXRob3I6IEJlcm5oYXJkIE5lbWVjIDxibmVtZWNAZ2Fuc3Nsb3Nlci5jb20+CkRhdGU6CU1vbiBNYXIgMyAxMTo1NzoyMyAyMDA4ICswMDAwCgogICAgRml4IGVuZGlhbmVzcyBwcm9ibGVtIGluIGNyYW1mcyBjb2RlIChjcmFtZnMgaXMgYWx3YXlzIGhvc3QtZW5kaWFuIGluIExpbnV4KQoKICAgIE9yaWdpbmFsbHkgcG9pbnRlZCBvdXQgYnkgTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEB0Ym94LmJpej4sCiAgICBzZWUgaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUuY29tcC5ib290LWxvYWRlcnMudS1ib290LzIyODQ2CgogICAgU2lnbmVkLW9mZi1ieTogQmVybmhhcmQgTmVtZWMgPGJuZW1lY0BnYW5zc2xvc2VyLmNvbT4KCmNvbW1pdCA4NGQwYzJmMWUzOWNhZmY1OGJmNzY1YTdhYjdjNzJkYTIzYzI1ZWM4CkF1dGhvcjogS2ltIEIuIEhlaW5vIDxLaW0uSGVpbm9AYmx1ZWdpZ2EuY29tPgpEYXRlOglNb24gTWFyIDMgMTA6Mzk6MTMgMjAwOCArMDIwMAoKICAgIGZpeCBjb3B5IGZyb20gcmFtIHRvIGRhdGFmbGFzaAoKICAgIElmIEkgdHJ5IHRvICJjcC5iIDxyYW0+IDxkYXRhZmxhc2g+IiwgdS1ib290IHNlbGVjdHMgbm9ybWFsIGZsYXNoCiAgICByb3V0aW5lcyBpbnN0ZWFkIG9mIGRhdGFmbGFzaC4gVGhpcyBpcyBiZWNhdXNlIGl0IGNoZWNrcyAiaWYgc291cmNlCiAgICBhZGRyZXNzIGlzIG5vdCBkYXRhZmxhc2giIGluc3RlYWQgb2YgdGFyZ2V0IGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIEIuIEhlaW5vIDxLaW0uSGVpbm9AYmx1ZWdpZ2EuY29tPgoKY29tbWl0IDMyYmYzZDE0M2E4ODhmOGRlYWNmZGNjOTdlODk4ZjZjMDZkMGFlYTQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWFyIDMgMTI6MTY6NDQgMjAwOCArMDEwMAoKICAgIEZpeCBxdW90aW5nIHByb2JsZW0gKHByZWJvb3Qgc2V0dGluZykgaW4gbWFueSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YjBiMmI2ZmM5ZmUyMmUzODY0YzJhNTczMTZkOTFhMjUwN2VjMjE1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzIDEyOjM2OjQ5IDIwMDggKzAxMDAKCiAgICBBRFM1MTIxOiBGaXggZGVmYXVsdCBlbnZpcm9ubWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDkxYzgyMDc2YWU0OTJiYjFmOWQ5YzQ3YTQ4MTMxNDYzMWQzMmRjOGUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDIgMTY6MTI6MzEgMjAwOCArMDEwMAoKICAgIE1ha2VmaWxlOiBGaXggbWlzc2luZyB1bmNvbmZpZyBhbmQgbWtjb25maWcgdXNlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4Y2U0ZTVjMmMwMmNiN2U4YWRkZGY3YjY1MWQzMDUwZDgxY2U0YzFkCkF1dGhvcjogbWljaGFlbCA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CVN1biBNYXIgMiAyMzozMzo0NiAyMDA4ICswMTAwCgogICAgRml4IGNoZWNraW5nIGZhdDMyIGNsdXN0ZXIgc2l6ZS4KCiAgICBUaGlzIGZpeGVzIHRoZSBjbHVzdGVyIHNpemUgdGVzdHMgaW4gdGhlIEZBVDMyIGZpbGUgc3lzdGVtLgogICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgVkZBVCBzdXBwb3J0IGRvZXNuJ3Qgd29yayBpZiB0aGUKICAgIHJlZmVycmVkIGNsdXN0ZXIgaGFzIGFuIG9mZnNldCA+IDE2Yml0IHJlcHJlc2VudGF0aW9uLCBjYXVzaW5nCiAgICAiZmF0bG9hZCIgYW5kICJmYXRscyIgY29tbWFuZHMgZXRjLiB0byBmYWlsLgoKICAgIFNpZ25lZC1vZmYtYnk6IG1pY2hhZWwgdHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KCmNvbW1pdCA2NjFiYWQ2M2EwNzZhOTZjMzljNjRmMTM2OTE1ZjE0NjcyNWFmOTJiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciAyIDIyOjU3OjIzIDIwMDggKzAxMDAKCiAgICBQcmVwYXJlIHYxLjMuMi1yYzIgcmVsZWFzZSBjYW5kaWRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc2OTU3Y2IzZDYyMWJmNjY0MzExOTA4ZTU5NjJlMTUxYzYzM2MyODUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMSAxMjoxMTo0MCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBFTUFDOiBGaXggNDA1RVogZmlmbyBzaXplIHNldHVwIGluIEVNQUNfTVIxCgogICAgVGhlIDQwNUVaIG9ubHkgc3VwcG9ydHMgNTEyIGJ5dGVzIG9mIHJ4LS90eC1maWZvIEVNQUMgc2l6ZXMuIEJ1dAogICAgY3VycmVudGx5IDRrLzJrIGlzIGNvbmZpZ3VyZWQuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZS4KCiAgICBUaGFua3MgdG8gVGhvbWFzIEtpbmRsZXIgPHRraW5kbGVyQGxlbm9yZC5kZT4gZm9yIHBvaW50aW5nIHRoaXMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMTg5NzhjOGViNDM4MDNlMjc5NDIzMzkyMmRmNDI0OWZhMjc4YjgzCkF1dGhvcjogV29vZHJ1ZmYsIFJpY2hhcmQgPHItd29vZHJ1ZmYyQHRpLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNzozNDozNSAyMDA4IC0wNjAwCgogICAgRml4IGFsaWdubWVudCBlcnJvciBvbiBBUk0gZm9yIG1vZHVsZXMKCiAgICBGaXggYWxpZ25tZW50IGZhdWx0IG9uIEFSTSB3aGVuIHJ1bm5pbmcgbW9kdWxlcy4gIFdpdGggb3V0IGFuIGV4cGxpY2l0CiAgICBsaW5rZXIgZmlsZSBnY2M0LjIuMSB3aWxsIGhhbGYgd29yZCBhbGlnbiBfX2Jzc19zdGFydCdzIHZhbHVlLiAgVGhlIHdvcmQKICAgIGRlcmVmZXJlbmNlIHdpbGwgY3Jhc2ggaGVsbG9fd29ybGQuCgogICAgc2lnbmVkLW9mZi1ieSBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+Cgpjb21taXQgY2UxMTIwZGQ3MDNlNmYxMmM1OWU0ZWJhOTk2MjM1NmEwMzAwYjgzMgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNzo0NTozMSAyMDA4ICswODAwCgogICAgZnM6IEZpeCBleHQyIHJlYWQgaXNzdWUKCiAgICBUaGUgZXh0MiBhbGlnbmVkIHByb2Nlc3Mgd2lsbCBjb3JydXB0IHRoZSBrZXkKICAgIGRhdGEgc3RydWN0LCB0aGUgcGF0Y2ggZml4IHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MDEzYzA5ZjdhNTY3NTk1MmEzY2E4OGI2YmM2YzkyNGU2M2FmMzNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciAyIDIyOjQ1OjMzIDIwMDggKzAxMDAKCiAgICBNYWtlZmlsZTogY2xlYW51cCAiY2xlYW4iIHRhcmdldAoKICAgIE1ha2Ugc3VyZSBDRFBBVEggc2V0dGluZ3MgY2Fubm90IGludGVyZmVyZS4KICAgIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZmRhNTg2ZmMxMzczMjQzYzk3OTRiYWJkZTY5NTAwZjYyOTNhOGQ4CkF1dGhvcjogTGkgWWFuZyA8bGVvbGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxMTo0NjowNSAyMDA4ICswODAwCgogICAgYWRkIGNzY29wZSBidWlsZCB0YXJnZXQKCiAgICBBZGQgY3Njb3BlIGJ1aWxkIHRhcmdldCB0byBnZW5lcmF0ZSBjc2NvcGUgZGF0YWJhc2UgZm9yIGNvZGUgYnJvd3NpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTGkgWWFuZyA8bGVvbGlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNjU1YWRlZjY1ZTRjZjZiOTI5MDU0YjA0OWVlMTlhZTliNWNjYmUyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxNTowNjozOSAyMDA4IC0wNjAwCgogICAgbmV0OiB1ZWNfcGh5OiBoYW5kbGUgODhlMTExMSByZXYuQjIgZXJyYXR1bSA1LjYKCiAgICBlcnJhdHVtIDUuNiBzdGF0ZXMgdGhlIGF1dG9uZWcgY29tcGxldGlvbiBiaXQgaXMgZnVuY3Rpb25hbCBvbmx5IGlmIHRoZQogICAgYXV0b25lZyBiaXQgaXMgYXNzZXJ0ZWQuCgogICAgVGhpcyBmaXhlcyBhbnkgc2Vjb25kYXJpbHktaXNzdWVkIG5ldHdvcmtpbmcgY29tbWFuZHMgb24gbm9uLWdpZ2FiaXQKICAgIGxpbmtzIG9uIHRoZSBtcGM4MzYwIG1kcyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmOTFkYjdmNTgyY2ExN2IxZjE5ZjEwMTg5YzAyNTY5NmYzMzNkMmUKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAyNiAwOTozODoxNCAyMDA4IC0wNzAwCgogICAgTVBDNTEyMWUgQURTIFBDSSBzdXBwb3J0IHRha2UgMwoKICAgIEFkZHMgUENJIHN1cHBvcnQgZm9yIE1QQzUxMjEKCiAgICBUZXN0ZWQgd2l0aCBkcml2ZXJzL25ldC9ydGw4MTM5LmMKCiAgICBTdXBwb3J0IGlzIGNvbmRpdGlvbmFsIHNpbmNlIFBDSSBvbiBvbGQgc2lsaWNvbiBkb2VzIG5vdCB3b3JrLgoKICAgIGFkczUxMjFfUENJX2NvbmZpZyB0dXJucyBvbiBQQ0kKCiAgICBJbiB0aGlzIHZlcnNpb24sIGNvbmRpdGlvbiBjb21waWxhdGlvbiBvZiBQQ0kgY29kZSBoYXMgYmVlbiBtb3ZlZAogICAgZnJvbSBpZmRlZiBpbiBib2FyZC9hZHM1MTIxL3BjaS5jIHRvIGJvYXJkL2FkczUxMjEvTWFrZWZpbGUgYXMKICAgIHN1Z2dlc3RlZCBieSBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0YjRkYmVkNDEzM2Y2NTc3MDViN2M1MTkzMjA5ZGE5OTc4MjQzYTcKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMjUgMjM6NTM6MDcgMjAwOCArMDEwMAoKICAgIEZpeCB3YXJuaW5ncyB3aGlsZSBjb21waWxhdGlvbiBvZiBwb3N0L2RyaXZlcnMvbWVtb3J5LmMKCiAgICBGaXggd2FybmluZ3Mgd2hpbGUgY29tcGlsYXRpb24gd2l0aCBuZXcgZ2NjIGluIGVsZGstNC4yCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDRmYWUzNWE1M2IzZTk1ODI1NGQ2NTc0YTFjYzdlMTA4MTFmYzY3MjYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMjUgMjA6NTQ6MDQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gaW4gNHh4X2VuZXQuYyBkcml2ZXIKCiAgICBVLUJvb3QgY3Jhc2hlcyBpbiB0aGUgbmV0IGxvb3AgaWYgQ09ORklHXzR4eF9EQ0FDSEUgaXMKICAgIGVuYWJsZWQuIFRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSBlbnN1cmUgdGhhdCAnZXRocm90YXRlJwogICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXNuJ3Qgc2V0IHRvICJubyIgYW5kIHRoZW4gcnVuCiAgICAidGZ0cCAyMDAwMDAgbm90X2V4aXN0ZW50X2ZpbGUiLgogICAgVGhpcyBwYXRjaCB0cmllcyB0byBmaXggdGhlIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA2MGVjNjU0YzVlYjgwZDBmZTBjMzhhM2JkNDIxNDAyMTViYzA2NDg0CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglNb24gRmViIDI1IDIwOjA0OjIwIDIwMDggKzAxMDAKCiAgICBQT1NUOiBEaXNhYmxlIGNhY2hlIHdoaWxlIFNQUiBQT1NUCgogICAgQ3VycmVudGx5IChzaW5jZSBjb21taXQgYjJlMjE0MmMpIHUtYm9vdCBjcmFzaGVzIG9uCiAgICBzZXF1b2lhIGJvYXJkIHdoaWxlIFNQUiB0ZXN0IGlmIENPTkZJR180eHhfRENBQ0hFIGlzCiAgICBlbmFibGVkLiBUaGlzIHBhdGNoIGRpc2FibGVzIHRoZSBjYWNoZSB3aGlsZSBTUFIgdGVzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgYzMxM2IyYzZjNTU1ZTdkODllYzU5YmQ1MWM1OWFiMTY0YWQwMTA1ZApBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gRmViIDI1IDE3OjUyOjQwIDIwMDggKzAxMDAKCiAgICBUUU01MjAwOiB1c2UgYXV0b21hdGljIGZkdCBtZW1vcnkgZml4dXAgKHBhcnQgMikKCiAgICBDYWxsIGZkdF9maXh1cF9tZW1vcnkoKSBvbiB0aGUgYm9hcmRzIFRRTTUyMDAsIFRRTTUyMDBfQiwgVFFNNTIwMFMsCiAgICBUQjUyMDAgYW5kIFRCNTIwMF9CIHRvIGZpeHVwIHRoZSAvbWVtb3J5IG5vZGUgd2l0aCB0aGUgbWVtb3J5IHZhbHVlcwogICAgZGV0ZWN0ZWQgYnkgVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDQ0Y2VlYzI1M2VhOTQxYjMwMWFiZjRiMDc5ZDUyMzI0ZGVmNjlkOTIKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIEZlYiAyNSAxNToxNzowNSAyMDA4ICswMTAwCgogICAgVFFNNTIwMDogdXNlIGF1dG9tYXRpYyBmZHQgbWVtb3J5IGZpeHVwCgogICAgQ2FsbCBmZHRfZml4dXBfbWVtb3J5KCkgb24gdGhlIGJvYXJkcyBUUU01MjAwLCBUUU01MjAwX0IsIFRRTTUyMDBTLAogICAgVEI1MjAwIGFuZCBUQjUyMDBfQiB0byBmaXh1cCB0aGUgL21lbW9yeSBub2RlIHdpdGggdGhlIG1lbW9yeSB2YWx1ZXMKICAgIGRldGVjdGVkIGJ5IFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBmM2EzMjlhY2IyNjAxN2Q4ZTEwZTljOTNlMWU3MjZjMmE1YWM2MzRhCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBGZWIgMjUgMTM6Mjc6NTIgMjAwOCArMDEwMAoKICAgIFRRTTUyMDA6IGZpeCBidWcgaW4gU0RSQU0gaW5pdGlhbGl6YXRpb24gY29kZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIFNEUkFNIGluaXRpYWxpemF0aW9uIGNvZGUgZm9yIHRoZQogICAgVFFNNTIwMC4gVGhlIGhpX2FkZHIgYml0IGlzIG5vdyBzZXQgY29ycmVjdGx5LiBXaXRob3V0IHRoaXMgcGF0Y2gKICAgIHRoZSBoaV9hZGRyIGJpdCBpcyBhbHdheXMgc2V0IHRvIDEsIGlmIHRoZSBzZWNvbmQgU0RSQU0gYmFuayBpcwogICAgbm90IHBvcHVsYXRlZC4KCiAgICBGb3Igb3RoZXIgTVBDNTIwMCBib2FyZHMgYSBjb3JyZXNwb25kaWcgcGF0Y2ggaGFzIGFscmVhZHkgYmVlbiBhcHBsaWVkCiAgICBzb21lIHRpbWUgYWdvLCBzZWUgY29tbWl0IGE2MzEwOTI4MWFkNDFiMGZiNDg5ZmRjYjkwMTE3MWY3NmJjZGJjMmMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICAtLQogICAgRm9yZ2V0IHRoZSBmaXJzdCBwYXRjaCBwbGVhc2UuIEkgY29uZnVzZWQgZmxhc2ggd2l0aCBTRFJBTSBpbgogICAgdGhlIGNvbW1lbnQgLi4uCgpjb21taXQgMjE3YmY2YjZhMzEzZDljY2I2MTlhNGRiYzA5ZjczZjc3Y2Q0OGRmMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMDA6MDM6MTIgMjAwOCArMDEwMAoKICAgIG14MWZzMi9mbGFzaDogRml4IG11bHRpcGxlIGNvbXBpbGVyIHdhcm5pbmdzCgogICAgInBvaW50ZXIgdGFyZ2V0cyBpbiBhc3NpZ25tZW50IGRpZmZlciBpbiBzaWduZWRuZXNzIgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTU5OWMyOGNlZjU1YmU0MmE4Y2E2ZmE4MDg2YjFhNDRlNTZhODVkMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMDA6MDM6MTEgMjAwOCArMDEwMAoKICAgIGFybS1pbXg6IEZpeCByZWdpc3RlciBkZWZpbml0aW9ucwoKICAgIFN5bmMgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgd2l0aCBsaW51eAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzliY2Y3NWZlY2M1ODg4NmFmNzdkMmE1NzFjZmYyZWFiMzllYWI2ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMDA6MDM6MTAgMjAwOCArMDEwMAoKICAgIGFjdHVhMS9hY3R1YTIvYWN0dWEzOiBGaXggbXVsdGlwbGUgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmdzCgogICAgLSBhY3R1YTE6CglhY3R1eDEuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgxLmM6OTI6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncmV2aXNpb24nCgogICAgLSBhY3R1YTI6CglhY3R1eDIuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgyLmM6MTAwOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3MnCglhY3R1eDIuYzo5OTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCWFjdHV4Mi5jOiBJbiBmdW5jdGlvbiAncmVzZXRfcGh5JzoKCWFjdHV4Mi5jOjEzMDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJwoKICAgIC0gYWN0dWEzOgoJYWN0dXgzLmM6IEluIGZ1bmN0aW9uICdjaGVja2JvYXJkJzoKCWFjdHV4My5jOjExNDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGY4ZmE2MzY4YTZhMGMwMjE2NGRhOGUyZjUyZjE4ZDQ1N2M2OTc3YmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTdW4gRmViIDI0IDExOjQ0OjI5IDIwMDggKzA5MDAKCiAgICBSZW1vdmUgdGhlIF9fU1RSSUNUX0FOU0lfXyBjaGVjayBmcm9tIHRoZSBfX3U2NC9fX3M2NCBkZWNsYXJhdGlvbiBvbiAzMmJpdCB0YXJnZXRzLgoKICAgIFRoZSBwcmV2aW91cyBwYXRjaCB3YXMgbGFja2luZyBvZiBpMzg2LCBtaWNyb2JsYXplLCBuaW9zIGFuZCBuaW9zMi4gVGhpcwogICAgcGF0Y2ggdHJpZXMgdG8gZml4IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAwNWUwN2IxZWEyMjg0NGU5NDZjZmNmN2Q1ZThhMDE5OWQxOGQyYTk1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAyMjoyMjo0NiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBGRFQgYmxvYiB0b3RhbHNpemUgY2FsY3VsYXRpb24gaW4gYm9vdF9yZWxvY2F0ZV9mZHQoKQoKICAgIERvIG5vdCB1c2UgZ2xvYmFsIGZkdCBibG9iIHBvaW50ZXIsIGNhbGN1bGF0ZSBibG9iIHNpemUgZnJvbSByb3V0aW5lCiAgICBhcmd1bWVudCBibG9iIHBvaW50ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkMWNjNTI4NzljODk2NjUwN2RhZDlmYjU3NTQ4MWU2ZDM5ODVlNjRlCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CVR1ZSBGZWIgMTIgMDA6NTg6MzEgMjAwOCArMTEwMAoKICAgIGxpYmZkdDogQWRkIGFuZCB1c2UgYSBub2RlIGl0ZXJhdGlvbiBoZWxwZXIgZnVuY3Rpb24uCgogICAgVGhpcyBwYXRjaCBhZGRzIGFuIGZkdF9uZXh0X25vZGUoKSBmdW5jdGlvbiB3aGljaCBjYW4gYmUgdXNlZCB0bwogICAgaXRlcmF0ZSB0aHJvdWdoIG5vZGVzIG9mIHRoZSB0cmVlIHdoaWxlIGtlZXBpbmcgdHJhY2sgb2YgZGVwdGguICBUaGlzCiAgICBmdW5jdGlvbiBpcyB1c2VkIHRvIHNpbXBsaWZ5IHRoZSBpdGVyYXRpb24gY29kZSBpbiBhIGxvdCBvZiBvdGhlcgogICAgZnVuY3Rpb25zLCBhbmQgaXMgYWxzbyBleHBvcnRlZCBmb3IgdXNlIGJ5IGxpYnJhcnkgdXNlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgOGNmMzA4MDlhODI5MDJhNDcxODY2ZDJmMDc3MjVjZTNiOGEyMjI5MQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTY6MDA6MjQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbGliZmR0IHN1cHBvcnQgdG8gbWtpbWFnZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYTZlNTMwZjAwZDMxYTg0OTRhMDQyMjc5OWIyYjlhNjkyYTljMGViOQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTY6MDA6MjMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgc2hhMS5vIG9iamVjdCB0byBta2ltYWdlIGJpbmFyeSBidWlsZAoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZGY2ZjFiODk1Yzk5Nzk3OGYwM2FmZTA0NTAyZWU3NmI3YmEzNGFiOQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTY6MDA6MDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggY29tcG9uZW50IGhhbmRsaW5nIGZvciBsZWdhY3kgbXVsdGkgY29tcG9uZW50IGltYWdlcwoKICAgIFVzZSB1aW50MzJfdCB3aGVuIGFjY2Vzc2luZyBzaXplIHRhYmxlIGluIGltYWdlX211bHRpX2NvdW50KCkgYW5kCiAgICBpbWFnZV9tdWx0aV9nZXRpbWcoKSBmb3IgbXVsdGkgY29tcG9uZW50IGltYWdlcy4KCiAgICBBZGQgbWlzc2luZyB1aW1hZ2VfdG9fY3B1KCkgZW5kaWFubmVzcyBjb252ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNTcwYWJiMGFkMTIwZjYwMDJiY2FhM2NmNmYzMmJkNGNhMmUxYjI0OApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTU6NTk6NTkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBTaGFyZSBjb21tb24gdUltYWdlIGNvZGUgYmV0d2VlbiBta2ltYWdlIGFuZCBVLWJvb3QKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGZvbGxvd2luZyBjb21tb24gcm91dGluZXM6CgogICAgMSkgRGVkaWNhdGVkIG1raW1hZ2UgcHJpbnRfaGVhZGVyKCkgaXMgcmVwbGFjZWQgd2l0aCBjb21tb24KICAgIGltYWdlX3ByaW50X2NvbnRlbnRzKCkKICAgIGltYWdlX3ByaW50X2NvbnRlbnRzX25vaW5kZW50KCkKCiAgICAyKSBDb21tb24gb3MvYXJjaC90eXBlL2NvbXAgZmllbGRzIG5hbWUgPC0tPiBpZCB0cmFuc2xhdGlvbiByb3V0aW5lcwogICAgZ2VuaW1nX2dldF9vc19uYW1lKCkKICAgIGdlbmltZ19nZXRfYXJjaF9uYW1lKCkKICAgIGdlbmltZ19nZXRfdHlwZV9uYW1lKCkKICAgIGdlbmltZ19nZXRfY29tcF9uYW1lKCkKICAgIGdlbmltZ19nZXRfb3NfaWQoKQogICAgZ2VuaW1nX2dldF9hcmNoX2lkKCkKICAgIGdlbmltZ19nZXRfdHlwZV9pZCgpCiAgICBnZW5pbWdfZ2V0X2NvbXBfaWQoKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgOWE0ZGFhZDBhMzVlYjUxNDMwMzdlZWE5Zjc4NmEzZTlkNjcyYmRkNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBGZWIgMjkgMTQ6NTg6MzQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBVcGRhdGUgbmFtaW5nIGNvbnZlbnRpb24gZm9yIGJvb3RtL3VJbWFnZSByZWxhdGVkIGNvZGUKCiAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGZvbGxvd2luZyBwcmVmaXggY29udmVudGlvbiBmb3IgdGhlCiAgICBpbWFnZSBmb3JtYXQgaGFuZGxpbmcgYW5kIGJvb3RtIHJlbGF0ZWQgY29kZToKCiAgICBnZW5pbWdfCQktIGR1YWwgZm9ybWF0IHNoYXJlZCBjb2RlCiAgICBpbWFnZV8JCS0gbGVnYWN5IHVJbWFnZSBmb3JtYXQgc3BlY2lmaWMgY29kZQogICAgZml0XwkJLSBuZXcgdUltYWdlIGZvcm1hdCBzcGVjaWZpYyBjb2RlCiAgICBib290XwkJLSBib290aW5nIHByb2Nlc3MgcmVsYXRlZCBjb2RlCgogICAgUmVsYXRlZCByb3V0aW5lcyBhcmUgcmVuYW1lZCBhbmQgYSBmZXcgcGllY2VzIG9mIGNvZGUgYXJlIG1vdmVkIGFyb3VuZCBhbmQKICAgIHJlLWdyb3VwZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3NWZhMDAyYzQ3MTcxYjczZmI0YzFmMmMyZmU0ZDYzOTFjMTM2Mjc2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo1MSAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIFJlc3BlY3QgYXV0b3N0YXJ0IHNldHRpbmcgaW4gbGludXggYm9vdG0KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZDNmMmZhMGQyNzg0NjdiMjIzMmU0ZWIyMzcyZjkwNWMzZmViZmJlYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NTAgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBQcm92aWRlIGFiaWxpdHkgdG8gcmVzdHJpY3QgcmVnaW9uIHVzZWQgZm9yIGJvb3QgaW1hZ2VzCgogICAgQWxsb3cgdGhlIHVzZXIgdG8gc2V0ICdib290bV9sb3cnIGFuZCAnYm9vdG1fc2l6ZScgZW52IHZhcnMgYXMgYSB3YXkKICAgIHRvIHJlc3RyaWN0IHdoYXQgbWVtb3J5IHJhbmdlIGlzIHVzZWQgZm9yIGJvb3RtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlODIyZDdmYzRkZDQ3NTVkNGQwYTIyZjA1ZTMzZjMzZDFhMDQ4MWRhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0OSAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIFVzZSBsbWIgZm9yIGJvb3RtIGFsbG9jYXRpb25zCgogICAgQ29udmVydCBnZW5lcmljIHJhbWRpc2tfaGlnaCgpLCBnZXRfYm9vdF9jbWRsaW5lKCksIGdldF9ib290X2tiZCgpCiAgICBmdW5jdGlvbnMgb3ZlciB0byB1c2luZyBsbWIgZm9yIGFsbG9jYXRpb24gb2YgdGhlIHJhbWRpc2ssIGNvbW1hbmQgbGluZQogICAgYW5kIGtlcm5lbCBiZCBpbmZvLgoKICAgIENvbnZlcnQgUFBDIHNwZWNpZmljIGZkdF9yZWxvY2F0ZSgpIHRvIHVzZSBsbWIgZm9yIGFsbG9jYXRpb24gb2YgdGhlIGRldmljZQogICAgdHJlZS4KCiAgICBQcm92aWRlZCBhIHdlYWsgZnVuY3Rpb24gdGhhdCBib2FyZCBjb2RlIGNhbiBjYWxsIHRvIGRvIGFkZGl0aW9uYWwKICAgIGxtYiByZXNlcnZlcyBpZiBuZWVkZWQuCgogICAgQWxzbyBpbnRyb2R1Y2UgdGhlIGNvbmNlcHQgb2YgYm9vdG1hcF9iYXNlIHRvIHNwZWNpZnkgdGhlIG9mZnNldCBpbgogICAgcGh5c2ljYWwgbWVtb3J5IHRoYXQgdGhlIGJvb3RtYXAgaXMgbG9jYXRlZCBhdC4gIFRoaXMgaXMgdXNlZCBmb3IKICAgIGFsbG9jYXRpb25zIG9mIHRoZSBjbWRsaW5lLCBrZXJuZWwgYmQsIGFuZCBkZXZpY2UgdHJlZSBhcyB0aGV5IHNob3VsZAogICAgYmUgY29udGFpbmVkIHdpdGhpbiBib290bWFwX2Jhc2UgYW5kIGJvb3RtYXBfYmFzZSArIENGR19CT09UTUFQU1ouCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNTYxNGU3OTI2ODYzYmYwMjI1ZWM4NjBkOWIzMTk3NDFhOWM0MDA0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0OCAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBhdXRvc3RhcnQgZmxhZyB0byBib290bV9oZWFkZXJzIHN0cnVjdHVyZQoKICAgIFRoZSBhdXRvc3RhcnQgZW52IHZhcmlhYmxlIHdhcyBkcm9wcGVkIGFzIHBhcnQgb2YgdGhlIGluaXRpYWwgbmV3IHVJbWFnZQogICAgY2xlYW51cC4gIEFkZCBpdCBiYWNrIGhlcmUgc28gdGhlIGFyY2ggc3BlY2lmaWMgY29kZSBjYW4gZGVjaWRlIGlmIGl0CiAgICB3YW50cyB0byByZWFsbHkgYm9vdCBvciBub3QuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDRlZDY1NTJmNzE1OTgzYmZjN2QyMTJjMTE5OWExZjc5NmYxMTQ0YWQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ3IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gSW50cm9kdWNlIGxtYiBmcm9tIGxpbnV4IGtlcm5lbCBmb3IgbWVtb3J5IG1nbXQgb2YgYm9vdCBpbWFnZXMKCiAgICBJbnRyb2R1Y2UgdGhlIExNQiBsaWIgdXNlZCBvbiBQUEMgaW4gdGhlIGtlcm5lbCBhcyBhIGNsZWFuIHdheSB0byBtYW5hZ2UKICAgIHRoZSBtZW1vcnkgc3BhY2VzIHVzZWQgYnkgdmFyaW91cyBib290IGltYWdlcyBhbmQgc3RydWN0dXJlcy4gIFRoaXMgY29kZQogICAgd2lsbCBhbGxvdyB1cyB0byBzaW1wbGlmeSB0aGUgY29kZSBpbiBib290bSBhbmQgaXRzIHN1cHBvcnQgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDY0OGMyZTdhMTczYjBkN2YxN2JlZjRhZGFhMDYyMzA5MGM5ZTkwNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMjI6MDM6NDcgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBwcGM6IEFsbG93IGJvYXJkcyB0byBzcGVjaWZ5IGVmZmVjdGl2ZSBhbW91bnQgb2YgbWVtb3J5CgogICAgRm9yIGhpc3RvcmljYWwgcmVhc29ucyB3ZSBsaW1pdGVkIHRoZSBzdGFjayB0byAyNTZNIGJlY2F1c2Ugc29tZSBib2FyZHMKICAgIGNvdWxkIG9ubHkgbWFwIHRoYXQgbXVjaCB2aWEgQkFUUy4JSG93ZXZlciBuZXdlciBib2FyZHMgYXJlIGNhcGFibGUgb2YKICAgIG1hcHBpbmcgbW9yZSBtZW1vcnkgKGZvciBleGFtcGxlIDg1eHggaXMgY2FwYWJsZSBvZiBkb2luZyB1cCB0byAyRykuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDI3NGNlYTJiZGRiY2ExMGNkYWQ3ZGFhNTE4OTUxYjc1YzQ0ZWY2YmMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ2IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gcmV3b3JrIGVycm9yIGhhbmRsaW5nIHNvIGNvbW1vbiBmdW5jdGlvbnMgZG9uJ3QgcmVzZXQKCiAgICBDaGFuZ2VkIGltYWdlX2dldF9yYW1kaXNrKCkgdG8ganVzdCByZXR1cm4gTlVMTCBvbiBlcnJvciBhbmQgaGF2ZQogICAgZ2V0X3JhbWRpc2soKSBwcm9wb2dhdGUgdGhhdCBlcnJvciB0byB0aGUgY2FsbGVyLiAgSXQncyBsZWZ0IHRvIHRoZQogICAgY2FsbGVyIHRvIGNhbGwgZG9fcmVzZXQoKSBpZiBpdCB3YW50cyB0by4KCiAgICBBbHNvIG1vdmVkIGNhbGxpbmcgZG9fcmVzZXQoKSBpbiBnZXRfZmR0KCkgYW5kIGZkdF9yZWxvY2F0ZSgpIG9uIHBwYwogICAgdG8gYSBjb21tb24gbG9jYXRpb24uICBJbiB0aGUgZnV0dXJlIHdlIHdpbGwgY2hhbmdlIGdldF9mZHQoKSBhbmQKICAgIGZkdF9yZWxvY2F0ZSgpIHRvIHJldHVybiBzdWNjZXNzL2ZhaWx1cmUgYW5kIG5vdCBjYWxsIGRvX3Jlc2V0KCkgYXQgYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkMmJjMDk1YTYzOTY3MmRlZjExZDVkMDQzYjU2ODhkMGRiZDY5MmVjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0NSAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIHBwYzogUmUtb3JkZXIgcmFtZGlzay9mZHQgaGFuZGxpbmcgc2VxdWVuY2UKCiAgICBEb2luZyB0aGUgZmR0IGJlZm9yZSB0aGUgcmFtZGlzayBhbGxvd3MgdXMgdG8gZ3JvdyB0aGUgZmR0IHcvbyBjb25jZXJuCiAgICBob3dldmVyIGl0IGRvZXMgbWVhbiB3ZSBoYXZlIHRvIGdvIGluIGFuZCBmaXh1cCB0aGUgaW5pdHJkIGluZm8gc2luY2UKICAgIHdlIGRvbid0IGtub3cgd2hlcmUgaXQgd2lsbCBiZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI3OTUzNDkzZWYwMjVmYjY5OGQ2OGM1ZGVlMzliMzZmMDFmNGQ1MzAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ0IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gcHBjOiBEZXRlcm1pbmUgaWYgd2UgYXJlIGJvb3RpbmcgYW4gT0Ygc3R5bGUKCiAgICBJZiB3ZSBhcmUgYm9vdGluIE9GIHN0eWxlIHRoYW4gd2UgY2FuIHNraXAgc2V0dGluZyB1cCBzb21lIHRoaW5ncwogICAgdGhhdCBhcmUgdXNlZCBmb3IgdGhlIG9sZCBib290IG1ldGhvZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYTY2MTJiZGZlN2VmMzdiOTc4N2I2NjgwMGNmMDJhYWRlZDA1ZmJlYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NDMgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBEb24ndCBwYXNzIGtkYiB0byByYW1kaXNrX2hpZ2ggc2luY2Ugd2UgbWF5IG5vdCBoYXZlIG9uZQoKICAgIFdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdGhlIGtkYiBwYXJhbSBhcyB3ZSBhcmUganVzdCB1c2luZyBpdCB0byBnZXQKICAgIGJkLT5iaV9tZW1zaXplIHdoaWNoIHdlIGNhbiBnZXQgZnJvbSBnZC0+YmQtPmJpX21lbXNpemUuICBBbHNvLCBpZiB3ZQogICAgYm9vdCB2aWEgT0Ygd2UgbWlnaHQgbm90IGFjdHVhbGx5IGZpbGwgb3V0IGEga2RiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyYjIyZmE0YmFlZTUxZTZiNDY3YzQ0ZWExYmUwZDFlY2Q4NmU4Nzc1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAxNjozMDo0NyAyMDA4IC0wNjAwCgogICAgODV4eDogRG9uJ3QgaWNiaSB3aGVuIHVubG9ja2luZyB0aGUgY2FjaGUKCiAgICBUaGVyZSBpcyBubyByZWFzb24gdG8gaWNiaSB3aGVuIGludmFsaWRhdGluZyB0aGUgdGVtcG9yYXJ5IHN0YWNrIGluCiAgICB0aGUgZC1jYWNoZS4gIEl0cyBpbXBvc3NpYmxlIG9uIGU1MDAgdG8gaGF2ZSB0aGUgaS1jYWNoZSBjb250YWluCiAgICBhbnkgYWRkcmVzc2VzIGluIHRoZSB0ZW1wIHN0YWNrIGFuZCBpdCBjYW4gYmUgcHJvYmxlbWF0aWMgaW4gZ2VuZXJhdGluZwogICAgdHJhbnNhY3Rpb25zIG9uIHRoZSBidXMgdG8gbm9uLXZhbGlkIGFkZHJlc3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDUzNGVhNmI2Zjg2ZjhiNzVlZjJhYzA2MWVmMTEwYTk4ZjEwM2Q3ZDYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTU6NTA6NTAgMjAwOCAtMDYwMAoKICAgIEZpeCBzb3VyY2UgZm9yIEVDTSBlcnJvciBJVlBSCgogICAgVGhlIHNvdXJjZSB2ZWN0b3IgZm9yIHRoZSBFQ00gd2FzIGJlaW5nIHNldCB0byAyLAogICAgYnV0IHRoYXQncyB3aGF0IHRoZSBzb3VyY2UgdmVjdG9yIGZvciBERFIgd2FzIGJlaW5nCiAgICBzZXQgdG8uICBDaGFuZ2UgaXQgdG8gMS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjFmYWU4YjJiNGU0ZTZlNjQ4Nzk2ZTA3ZTIwYWIxM2U5Y2IxODkyMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxNDoyOTo1OCAyMDA4IC0wNjAwCgogICAgSW52YWxpZGF0ZSBJTklUX1JBTSBUTEIgbWFwcGluZ3MKCiAgICBDb21taXQgMGRiMzdkYy4uLiAgKGFuZCBzb21lIG90aGVycykgY2hhbmdlZCB0aGUgSU5JVF9SQU0gVExCCiAgICBtYXBwaW5ncyB0byBiZSB1bmd1YXJkZWQuICBUaGlzIGNvbGxpZGVkIHdpdGggYW4gZXhpc3RpbmcgImJ1ZyIKICAgIHdoZXJlIHRoZSBtYXBwaW5ncyBmb3IgdGhlIElOSVRfUkFNIHdlcmUgYmVpbmcga2VwdCBhcm91bmQuCiAgICBUaGlzIG1lYW50IHRoYXQgc3BlY3VsYXRpdmUgbG9hZHMgdG8gdGhvc2UgYWRkcmVzc2VzIHdlcmUKICAgIHN1Y2NlZWRpbmcgaW4gdGhlIFRMQiwgYW5kIGdvaW5nIG91dCB0byB0aGUgYnVzLCB3aGVyZSB0aGV5CiAgICB3ZXJlIGNhdXNpbmcgYW4gZXhjZXB0aW9uICh0aGVyZSdzIG5vdGhpbmcgYXQgdGhhdCBhZGRyZXNzKS4gVGhlCiAgICBGbGFzaCBjb2RlIHdhcyBjb2luY2lkZW50YWxseSBjYXVzaW5nIHN1Y2ggYSBzcGVjdWxhdGl2ZSBsb2FkLgogICAgUmF0aGVyIHRoYW4gZ28gYmFjayB0byBtYXBwaW5nIHRoZSBJTklUIFJBTSBhcyBndWFyZGVkLCB3ZSBmaXgKICAgIGl0IHNvIHRoYXQgdGhlIGVudHJpZXMgZm9yIHRoZSBJTklUX1JBTSBhcmUgaW52YWxpZGF0ZWQuICBUaHVzCiAgICB0aGUgc3BlY3VsYXRpdmUgbG9hZHMgd2lsbCBmYWlsIGluIHRoZSBUTEIsIGFuZCBoYXZlIG5vIGVmZmVjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzQ3Yjc5MzhkM2U1NjFlYjIxNWFhMzg2YzM3ZmI1YWNiNWEzODNjNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMjI6NTY6MTcgMjAwOCArMDEwMAoKICAgIHNiYzg1NDg6IEZpeCBSZXZpc2lvbiByZWFkaW5nIGFuZCB1bnVzZWQgdmFyaWFibGUgJ3BhdGgnCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0OTVkMTYyMzc0YzQ3MmY0NjQ1NDQ1MzU1MzM4MmFkMDczNWRjNzI1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAyMjo1NjoxNiAyMDA4ICswMTAwCgogICAgc2JjODU0ODogRml4IGNmaSBmbGFzaCBiYW5rIGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0ZWZiZTlkYmIxMjlmODU3ZjI3ODU2OTM2MTEyYzhjMDJmMDE2YmU2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMjoyNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENvcnJlY3QgcmF3IEZEVCBibG9iIGhhbmRsaWcgd2hlbiBDT05GSUdfRklUIGlzIGRpc2FibGVkCgogICAgRHVhbCBmb3JtYXQgaW1hZ2UgY29kZSBtdXN0IHByb3Blcmx5IGhhbmRsZSBhbGwgdGhyZWUgRkRUIHBhc3NpbmcgbWV0aG9kczoKICAgIC0gcmF3IEZEVCBibG9iIHBhc3NlZAogICAgLSBGRFQgYmxvYiBlbWJlZGRlZCBpbiB0aGUgbGVnYWN5IHVJbWFnZQogICAgLSBGRFQgYmxvYiBlbWJlZGRlZCBpbiB0aGUgbmV3IHVJbWFnZQoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyBwcm9wZXIgcmF3IEZEVCBoYW5kbGluZyB3aGVuIG5vIEZJVCBpbWFlZyBzdXBwb3J0CiAgICBpcyBjb21waWxlZCBpbi4gVGhpcyBpcyBhIGJpdCB0cmlja3kgYXMgd2UgbXVzdCBkZWN0ZWQgRklUIGZvcm1hdCBldmVuCiAgICB3aGVuIEZJVCB1SW1hZ2UgaGFuZGxpbmcgaXMgbm90IGVuYWJsZWQgYXMgYm90aCBGSVQgdUltYWdlcyBhbmQgcmF3IEZEVAogICAgYmxvYnMgdXNlIHRoYSBzYW1lIGxvdyBsZXZlbCBmb3JtYXQgKGxpYmZkdCkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmZjA3MzRjZmYwZmI1Mzk3Y2UyZjQ2MDJmNGYzZTVlYzljOGEzNmU4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMjoyNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFBPV0VSUEM6IEFkZCBpbWFnZV9nZXRfZmR0KCkgcm91dGluZQoKICAgIEZEVCBibG9iIG1heSBiZSBwYXNzZWQgZWl0aGVyOiAoMSkgcmF3ICgyKSBvciBlbWJlZGRlZCBpbiB0aGUgbGVnYWN5IHVJbWFnZQogICAgKDMpIG9yIGVtYmVkZGVkIGluIHRoZSBuZXcgdUltYWdlLiBGb3IgdGhlICgyKSBjYXNlIGVtYmVkZGluZyBpbWFnZSBtdXN0IGJlCiAgICB2ZXJpZmllZCBiZWZvcmUgd2UgZ2V0IEZEVCBmcm9tIGl0LiBUaGlzIHBhdGNoIGZhY3RvcnMgb3V0IGxlZ2FjeSBpbWFnZQogICAgc3BlY2lmaWMgdmVyaWZpY2F0aW9uIHJvdXRpbmUgdG8gdGhlIHNlcGFyYXRlIGhlbHBlciByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxZWZkNDM2MDFmOTBkZTIxZWM2YzBlYmI5ODgwODIzZTgyMjkyN2IxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMjowNyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBpbWFnZV9nZXRfa2VybmVsKCkgcm91dGluZQoKICAgIExlZ2FjeSBpbWFnZSBzcGVjaWZpYyB2ZXJpZmljYXRpb24gaXMgZmFjdG9yZWQgb3V0IHRvIGEgc2VwYXJhdGUgaGVscGVyCiAgICByb3V0aW5lIHRvIGtlZXAgZ2V0X2tlcm5lbCgpIGdlbmVyaWMgYW5kIHNpbXBsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGE1ZWEzZTYxNjhmZTZhMjc4MGVlYWYyNTdhM2IxOWYzMGRlYzY1OApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTE6MDE6MDQgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIGltYWdlIHZlcmlmeSBmbGFnIHRvIGJvb3RtX2hlYWRlcnMgc3RydWN0dXJlCgogICAgRG8gbm90IHBhc3MgaW1hZ2UgdmVyaWZpY2F0aW9uIGZsYWcgZGlyZWN0bHkgdG8gcmVsYXRlZCByb3V0aW5lcy4KICAgIFNpbXBsaWZ5IGFyZ3VtZW50IHBhc3NpbmcgYW5kIG1vdmUgaXQgdG8gdGhlIGJvb3RtX2hlYWRlciBzdHJ1Y3R1cmUgd2hpY2gKICAgIGNvbnRhaW5zIGN1cmVudGx5IHByb2Nlc3NlZCBpbWFnZSBzcGVjaWZpYyBkYXRhIGFuZCBpcyBhbHJlYWR5IGJlaW5nIHBhc3NlZAogICAgb24gdGhlIGFyZ3VtZW50IGxpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgyM2FmZTdjZWZlMDBkYWZlZmM2Njk2YzFjYzdhYTgyOGMzOTQyMzQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRmViIDI3IDExOjAwOjQ3IDIwMDggKzAxMDAKCiAgICBbTWFrZWZpbGVdIFNvcnQgQ09CSlMgaW4gbGliXzxhcmNoPiBNYWtlZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDZmMGY5ZGZjNGVlODgwZmJmNDAwYTJlYmUxNDIzODE4MWE2YzNmOTEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRmViIDI3IDExOjAwOjQ3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gT3B0aW1pemUgZ2VuX2dldF9pbWFnZSgpIGZsb3cgY29udHJvbAoKICAgIFdoZW4gQ09ORklHX0hBU19EQVRBRkxBU0ggaXMgbm90IGRlZmluZWQgZ2VuX2dldF9pbWFnZSgpIHJvdXRpbmUgaGFzIG5vdGhpbmcKICAgIHRvIGRvLCB1cGRhdGUgaXRzIGNvbnRyb2wgZmxvdyB0byBiZXR0ZXIgcmVmbGVjdCB0aGF0IHNpbXBsZSBjYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkMmNlZDllYjE5ZWM3NGY0YTM1OTk0OWRiZTM1MzQyN2ZhNmQ1NWNhCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIEZlYiA0IDA4OjI4OjE3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUE9XRVJQQzogU3BsaXQgZ2V0X2ZkdCgpIGludG8gZ2V0IGFuZCByZWxvY2F0ZSByb3V0aW5lcwoKICAgIFBQQyBzcGVjaWZpYyBGRFQgYmxvYiBoYW5kbGluZyBjb2RlIGlzIGRpdmlkZWQgaW50byB0d28gc2VwYXJhdGUgcm91dGluZXM6CgogICAgZ2V0X2ZkdCgpCS0gZmluZCBhbmQgdmVyaWZ5IGEgRkRUIGJsb2IgKGVpdGhlciByYXcgb3IgaW1hZ2UgZW1iZWRkZWQpCiAgICBmZHRfcmVsb2NhdGUoKQktIG1vdmUgRkRUIGJsb2IgdG8gd2l0aGluIEJPT1RNQVAgaWYgbmVlZGVkCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDMzZmE1YzBiZmFmNDY1ZGU4Y2ViMjNmY2Q2YjM5N2Y2OGIzNWE4MTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRmViIDI1IDEzOjEzOjM3IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBGaXggcmVuYW1lZCBHVVIgc3ltYm9scyBpbiBzYmM4NjQxZCBib2FyZC4KCiAgICBCYWNrIGluIGNvbW1pdCBhNTUxY2VlOTlhZDFkMWRhMjBmZDIzYWQyNjVkZTQ3NDQ4ODUyZjU2CiAgICAoODZ4eDogRml4IEdVUiBQQ0kgY29uZmlnIHJlZ2lzdGVycyBwcm9wZXJseSksIHdlIHNob3VsZCBoYXZlCiAgICBjaGFuZ2VkIHRoZSBNUEM4Nnh4X1BPUkJNU1JfSEEgYW5kIE1QQzg2eHhfUE9SREVWU1JfSU9fU0VMCiAgICBzeW1ib2xzIGluIHRoZSBzYmM4NjQxZCBib2FyZCBhcyB3ZWxsLiAgRml4IHRoaXMgb3ZlcnNpZ2h0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjRjZDU5NGU2MjNjMzlmNzM5NjRkMTg3ODc3NjNlNDUzM2Y3OTFmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAyNSAxNjo1MDo0OCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggYWNhZGlhX25hbmQgYnVpbGQgcHJvYmxlbQoKICAgIERvbid0IGluY2x1ZGUgdGVzdGRyYW0oKSBvbiBOQU5ELWJvb3RpbmcgdGFyZ2V0IGFjYWRpYV9uYW5kLiBUaGlzIHNhdmVzCiAgICBhIGZldyBieXRlcyBhbmQgbWFrZXMgdGhlIHRhcmdldCBidWlsZCBjbGVhbiBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTRlMDk5ZTY5OGQ0MWU4MTc5ZDA1YzJiMmRiY2Y3MDRhMjM2Zjc0OApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMjQgMjM6MDM6MTIgMjAwOCArMDAwMAoKICAgIG14MWZzMi9mbGFzaDogRml4IG11bHRpcGxlIHBvaW50ZXJ0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDcyNDkwMmM4NDY0ZTYxMDY0MmIzYTE3MDI3OGI5OTcxMDMyNTg4OGUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDI0IDIzOjAzOjExIDIwMDggKzAwMDAKCiAgICBhcm0taW14OiBGaXggcmVnaXN0ZXJzIGRlZmluaXRpb24KCiAgICBTeW5jIHJlZ2lzdGVycyBkZWZpbml0aW9uIHdpdGggbGludXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRjZDI4OGI1ODllYTExNzg5NDdjNmUzNjQ0NTNjMzJiM2RlZGU2YjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDI0IDIzOjAzOjEwIDIwMDggKzAwMDAKCiAgICBhY3R1YTEvYWN0dWEyL2FjdHVhMzogRml4IG11bHRpcGxldW51c2VkIHZhcmlhYmxlCgogICAgLSBhY3R1YTE6CglhY3R1eDEuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgxLmM6OTI6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncmV2aXNpb24nCgogICAgLSBhY3R1YTI6CglhY3R1eDIuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgyLmM6MTAwOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3MnCglhY3R1eDIuYzo5OTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCWFjdHV4Mi5jOiBJbiBmdW5jdGlvbiAncmVzZXRfcGh5JzoKCWFjdHV4Mi5jOjEzMDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJwoKICAgIC0gYWN0dWEzOgoJYWN0dXgzLmM6IEluIGZ1bmN0aW9uICdjaGVja2JvYXJkJzoKCWFjdHV4My5jOjExNDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQ1OTM0YWQ3NzU2ZjAzOGEzOTNhOWNmYWI3NmE0ZmUzMDZkOWQ5MzAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gRmViIDQgMDg6Mjg6MDkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgZHVhbCBmb3JtYXQgdUltYWdlIHN1cHBvcnQgZnJhbWV3b3JrCgogICAgVGhpcyBwYXRjaCBhZGRzIGZyYW1ld29yayBmb3IgZHVhbCBmb3JtYXQgaW1hZ2VzLiBGb3JtYXQgZGV0ZWN0aW9uIGlzIGFkZGVkCiAgICBhbmQgdGhlIGJvb3RtIGNvbnRyb2xsIGZsb3cgaXMgdXBkYXRlZCB0byBpbmNsdWRlIGNhc2VzIGZvciBuZXcgRklUIGZvcm1hdAogICAgdUltYWdlcy4KCiAgICBXaGVuIHRoZSBsZWdhY3kgKGltYWdlX2hlYWRlciBiYXNlZCkgZm9ybWF0IGlzIGRldGVjdGVkIGFwcHJvcHJpYXRlCiAgICBsZWdhY3kgc3BlY2lmaWMgaGFuZGxpbmcgaXMgaW52b2tlZC4gRm9yIHRoZSBuZXcgKEZJVCBiYXNlZCkgZm9ybWF0IHVJbWFnZXMKICAgIGR1YWwgYm9vdCBmcmFtZXdvcmsgaGFzIGEgbWluaWFsIHN1cHBvcnQsIHRoYXQgd2lsbCBvbmx5IHByaW50IG91dCBhCiAgICBjb3JyZXNwb25kaW5nIGRlYnVnIG1lc3NhZ2VzLiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgRklUIHNwZWNpZmljIGhhbmRsaW5nIHdpbGwKICAgIGJlIGFkZGVkIGluIGZvbGxvd2luZyBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYjI5NjYxZmMxMTUxMDc3Nzc2NDU0Mjg4MDUxYmM5YTQ4ODM1MWNlOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBGZWIgMjQgMTU6MjE6MzYgMjAwOCArMDEwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBQcmVwYXJlIHYxLjMuMi1yYzIgcmVsZWFzZSBjYW5kaWRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDAwYjQ4YTQ4NDI0ODk0ZGFhNTg5ZDE2NmQ3MzI3NzgzMGIxYzZhYzQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgRmViIDIzIDEyOjE1OjU2IDIwMDggKzAxMDAKCiAgICBFTlY6IHJlbW92ZSBzYXZlZW52IHdoZW4gQ0ZHX0VOVl9JU19OT1dIRVJFIGlzIHNlbGVjdGVkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiMDc1ZDc0ZWZiNzBmZjY4YzQ5YTI1MzJmMjZiNTZkNjcwM2I2OWMxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IEZlYiAyMyAxNzoyNDoxNiAyMDA4ICswOTAwCgogICAgUmVtb3ZlIHRoZSBfX1NUUklDVF9BTlNJX18gY2hlY2sgZnJvbSB0aGUgX191NjQvX19zNjQgZGVjbGFyYXRpb24gb24gMzJiaXQgdGFyZ2V0cy4KCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBPbGFmIEhlcmluZyBbV2VkLCAxNyBPY3QgMjAwNyAwNjoyNzoxMyArMDAwMCAoMjM6MjcgLTA3MDApXQoKICAgIFJlbW92ZSB0aGUgX19TVFJJQ1RfQU5TSV9fIGNoZWNrIGZyb20gdGhlIF9fdTY0L19fczY0IGRlY2xhcmF0aW9uIG9uCiAgICAzMmJpdCB0YXJnZXRzLgoKICAgIEdDQyBjYW4gYmUgbWFkZSB0byB3YXJuIGFib3V0IHVzYWdlIG9mIGxvbmcgbG9uZyB0eXBlcyB3aXRoIElTTyBDOTAKICAgICgtYW5zaSksIGJ1dCBvbmx5IHdpdGggLXBlZGFudGljLiAgWW91IGNhbiB3cml0ZSB0aGlzIGluIGEgd2F5IHRoYXQgZXZlbgogICAgdGhlbiBpdCBkb2Vzbid0IGNhdXNlIHdhcm5pbmdzLCBuYW1lbHkgYnk6CgogICAgI2lmZGVmIF9fR05VQ19fCiAgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX19zaWduZWRfXyBsb25nIGxvbmcgX19zNjQ7CiAgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdTY0OwogICAgI2VuZGlmCgogICAgVGhlIF9fZXh0ZW5zaW9uX18ga2V5d29yZCBpbiBmcm9udCBvZiB0aGlzIHN3aXRjaGVzIG9mZiBhbnkgcGVkYW50aWMKICAgIHdhcm5pbmdzIGZvciB0aGlzIGV4cHJlc3Npb24uCgogICAgU2lnbmVkLW9mZi1ieTogT2xhZiBIZXJpbmcgPG9saEBzdXNlLmRlPgogICAgQ2M6IDxsaW51eC1hcmNoQHZnZXIua2VybmVsLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+CiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAyMDhhY2QxMTJlNjUxN2IyMWZjMzBjNDIwMzk2OTAyYjEwMzU2M2FjCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IEZlYiAyMyAxNzowNzo1NyAyMDA4ICswOTAwCgogICAgY3B1L21jZjUyeDIvY29uZmlnLm1rOiBNYWtlIG5lZWRsZXNzbHkgZGVmZmVyZWQgZXhwYW5zaW9ucyBpbW1lZGlhdGUuCgogICAgVGhpcyB3aWxsIHJlZHVjZSB0aGUgYnVpbGQgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDQ5NWEwZGRlN2ZhMWIxNGNkYzE1NjA3ZDg2NTAzZWMyYmRjZDAyYzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgRmViIDIzIDE3OjA1OjAwIDIwMDggKzA5MDAKCiAgICBjcHUvcHBjNHh4L2NvbmZpZy5tazogTWFrZSBhIG5lZWRsZXNzbHkgZGVmZmVyZWQgZXhwYW5zaW9uIGltbWVkaWF0ZS4KCiAgICBUaGlzIHdpbGwgcmVkdWNlIHRoZSBidWlsZCB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZTY4MmJhMzk5YTFkNzZmMDlkOGNjN2FmMWU1NzA2NmYxZDM2MGQ5MQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBGZWIgMjMgMTY6NTg6NDEgMjAwOCArMDkwMAoKICAgIGNwdS9taXBzL2NvZmlnbC5tazogTWFrZSBhIG5lZWRsZXNzbHkgZGVmZmVyZWQgZXhwYW5zaW9uIGltbWVkaWF0ZS4KCiAgICBUaGlzIHJlZHVjZXMgdGhlIGJ1aWxkIHRpbWUgYnkgfjEwJS4gSGVyZSdzIHRoZSBndGgyX2NvbmZpZyBleGFtcGxlLgoKCSAgICBCRUZPUkUJIEFGVEVSCiAgICByZWFsICAgIDBtMzEuNDQxcwkgMG0yNy44MzNzCiAgICB1c2VyICAgIDBtMjQuNzY2cwkgMG0yMy4wNDVzCiAgICBzeXMgICAgIDBtMTAuNDI1cwkgMG03LjQ2OHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDAyNDA5ZjhjZjU0YzdjZDkxOTgxZjBkZmVjMTM1ZGJmMzg1ODA5MGMKQXV0aG9yOiBNYXJjZWwgTW9vbGVuYWFyIDxtYXJjZWxtQGp1bmlwZXIubmV0PgpEYXRlOglGcmkgRmViIDIyIDEwOjQ4OjA3IDIwMDggLTA4MDAKCiAgICBtYWtlIGRlZmluZTJtay5zZWQgd29yayBvbiBGcmVlQlNECgogICAgSW4gdGhlIHRocmVhZCAiWzEuMy4yLXJjMV0gTVBDODU0OENEUy9NUEM4NTU1Q0RTIGNvbmZpZ3MgZmFpbHMgdG8gbGluayIsCiAgICB0aGUgZGVmaW5lMm1rLnNlZCBzY3JpcHQgd2FzIGlkZW50aWZpZWQgYXMgdGhlIHNvdXJjZSBvZiB0aGUgbGluawogICAgZmFpbHVyZSBvbiBGcmVlQlNELiBUaGUgcHJvYmxlbSBpcyB0aGF0IHNlZCgxKSBkb2VzIG5vdCBhbHdheXMgc3VwcG9ydAogICAgdGhlICcrJyBvcGVyYXRvci4gSXQgaXNuJ3Qgb24gRnJlZUJTRC4gVGhlIGF0dGFjaCBwYXRjaCBpbXBsZW1lbnRzIHRoZQogICAgZXF1aXZhbGVudCwgdXNpbmcgdGhlICcqJyBvcGVyYXRvciBpbnN0ZWFkIGFuZCBzaG91bGQgd29yayBldmVyeXdoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBNb29sZW5hYXIgPG1hcmNlbG1AanVuaXBlci5uZXQ+Cgpjb21taXQgZTUwODRhZjhkZWQ1ODQ1M2NkMDdlYzFhZjhiMGYyOWYzNDEyMmJiYwpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgRmViIDIyIDE3OjIxOjMyIDIwMDggKzAxMDAKCiAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgInJhbWRpc2siIHdpdGggInJhbWRpc2tfc2l6ZSIga2VybmVsIHBhcmFtZXRlci4KCiAgICBUaGUgTGludXggY29tbWl0IGZhYzhiMjA5YjEwODRiYzg1NzQ4YmQ1NGUxM2QwMGMxMjYyYjIyMGYgKCJSZW1vdmUKICAgIGZpbmFsIHRyYWNlcyBvZiBsb25nLWRlcHJlY2F0ZWQgInJhbWRpc2siIGtlcm5lbCBwYXJtIikgbWFrZXMgdGhlc2UKICAgIGNoYW5nZXMgbmVjY2Vzc2FyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBkMDFiODQ3YzVjZDA3MDg5NWM0YmExNzhjODVjZDA2OGE5NWNmN2NkCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBGZWIgMjEgMTM6NTg6MTYgMjAwOCAtMDUwMAoKICAgIExNNzUgYnVnIGZpeCBmb3IgbmVnYXRpdmUgdGVtcGVyYXR1cmVzCgogICAgV2hlbiB0aGUgTE03NSB0ZW1wZXJhdHVyZSBzZW5zb3IgbWVhc3VyZXMgYSB0ZW1wZXJhdHVyZSBiZWxvdyAwIEMsIHRoZQogICAgY3VycmVudCBkcml2ZXIgZG9lcyBub3QgcGVyZm9ybSBzaWduIGV4dGVuc2lvbiwgc28gdGhlIHJlc3VsdCByZXR1cm5lZCBpcwogICAgMjU2IEMgdG9vIGhpZ2guICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDVhOTEwYzIyNGIxM2U0MTNiZGE0MTkyMjM3OWFkZDZkNzVjMzJkYTMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMSAxODozMzo0NSAyMDA4ICswMTAwCgogICAgSURTODI0NzogdXBkYXRlIE1BSU5UQUlORVIgZW50cnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNzllYWMyYmZiNTkxZjJiMDI4ZWMxNzM1MDQ5ZGM5MWU0MzIwZGU0YQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgRmViIDIxIDE4OjMxOjE1IDIwMDggKzAxMDAKCiAgICBGaXggZGV2aWNlIHRyZWUgZm9yIG1nc3V2ZCBib2FyZC4KCiAgICBSZW5hbWUgdGhlICJzY2MiIG5vZGUgaW4gImV0aGVybmV0IiBmb3IgdGhlIG1nc3V2ZCBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyZTcyMTA5NGE3MGE1MjIwNmFmMmUxYmYxMjA4ZDlhNzEzMWY2ZGFkCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgRmViIDIxIDE0OjIzOjQyIDIwMDggKzAxMDAKCiAgICBsd21vbjU6IGVuYWJsZSBoYXJkd2FyZSB3YXRjaGRvZwoKICAgIFNvbWUgYm9hcmRzIChlLmcuIGx3bW9uNSkgbWF5IHVzZSByYXRoZXIgc21hbGwgd2F0Y2hkb2cgaW50ZXJ2YWxzLCBzbwogICAgY2F1c2luZyBpdCB0byByZWJvb3QgdGhlIGJvYXJkIGlmIFUtQm9vdCBkb2VzIGEgbG9uZyBidXN5LXdhaXQgd2l0aAogICAgdWRlbGF5KCkuIFRodXMsIGZvciB0aGVzZSBib2FyZHMgd2UgaGF2ZSB0byByZXN0YXJ0IFdEIG1vcmUKICAgIGZyZXF1ZW50bHkuCgogICAgVGhpcyBwYXRjaCBzcGxpdHMgdGhlIGJ1c3ktd2FpdCB1ZGVsYXkoKSBpbnRvIHNtYWxsZXIsIHByZWRlZmluZWQsCiAgICBpbnRlcnZhbHMsIHNvIHRoYXQgdGhlIHdhdGNoZG9nIHRpbWVyIG1heSBiZSByZXNldHRlZCB3aXRoIHRoZQogICAgY29uZmlndXJhYmxlIChDT05GSUdfV0RfUEVSSU9EKSBpbnRlcnZhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgYmM3Nzg4MTI0N2VlNmY5NWQ3YTllYmM0OTlkMjZiOTZiYWUzOGM5ZApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMSAxMjo1MjoyOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBTdXBwb3J0IGZvciBBVEkgUmFkZW9uIDkyMDAgY2FyZCBvbiBzZXF1b2lhCgogICAgQWRkcyBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgQVRJIFJhZGVvbiA5MjAwIGNhcmQKICAgIHN1cHBvcnQgdG8gc2VxdW9pYSBjb25maWcgZmlsZS4gSWYgQ09ORklHX1ZJREVPCiAgICBpcyBlbmFibGVkLCBURVhUX0JBU0Ugc2hvdWxkIGJlIGNoYW5nZWQgdG8gMHhGRkY4MDAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNWE5YWJjYzMxN2NmM2M4YTY5NTU5ZmY4MzA4MWY0ZTVkNzE5ZWRiNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDg6MTg6MDcgMjAwOCAtMDYwMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgZGVmaW5lcyBmb3IgQVJSQVlfU0laRQoKICAgIEEgZmV3IGR1cGxpY2F0ZSBvZiB0aGUgQVJSQVlfU0laRSBtYWNybyBzbmVha2VkIGluIHNpbmNlIHdlIHB1dAogICAgdGhlIGRlZmluZSBpbiBjb21tb24uaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgxZDkzZTVjNGI4M2Q4YjZkY2VlNjlkZTZmNGExNGNjZjZmNzExNGEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gRmViIDE4IDA4OjA5OjM3IDIwMDggLTA2MDAKCiAgICBwcGM6IEFsbG93IGJvYXJkcyB0byBzcGVjaWZ5IGVmZmVjdGl2ZSBhbW91bnQgb2YgbWVtb3J5CgogICAgRm9yIGhpc3RvcmljYWwgcmVhc29ucyB3ZSBsaW1pdGVkIHRoZSBzdGFjayB0byAyNTZNIGJlY2F1c2Ugc29tZSBib2FyZHMKICAgIGNvdWxkIG9ubHkgbWFwIHRoYXQgbXVjaCB2aWEgQkFUUy4JSG93ZXZlciBuZXdlciBib2FyZHMgYXJlIGNhcGFibGUgb2YKICAgIG1hcHBpbmcgbW9yZSBtZW1vcnkgKGZvciBleGFtcGxlIDg1eHggaXMgY2FwYWJsZSBvZiBkb2luZyB1cCB0byAyRykuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3NTVjMzVmNTRiYTdlYjc2ODdhYTc5MzVlMDRhMDJhMDFlZjFiMjdiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDE4IDA1OjI0OjEzIDIwMDggLTA1MDAKCiAgICBpbmNsdWRlIGF1dG9jb25mLm1rIGJlZm9yZSBhbnkgb3RoZXIgLm1rIGZpbGVzCgogICAgVGhpcyBidW1wcyB0aGUgYXV0b2NvbmYubWsgaW5jbHVkZSBzdGVwIGFib3ZlIGJvYXJkL2NwdS9hcmNoL2V0Yy4uLiBzbyB0aGF0CiAgICB0aG9zZSAubWsgZmlsZXMgY2FuIGhhdmUgbWFrZSBpZiBzdGF0ZW1lbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMTZmZTc3NzUyZWVlMDk5YjlmYjYxZWQ3MzQ2MGU1MWNjOTRiMzdiYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwNToxMDowNyAyMDA4IC0wNTAwCgogICAgZXJyb3IgY2hlY2sgYXV0b2NvbmYubWsgZ2VuZXJhdGlvbgoKICAgIElmIGFueSBvZiB0aGUgc3RlcHMgZm9yIGdlbmVyYXRpbmcgYXV0b2NvbmYubWsgZmFpbCBjdXJyZW50bHksIHRoZXkgZ28KICAgIHVubm90aWNlZC4JVG8gZml4LCB3ZSBjYW4gc2ltcGx5IGFkZCAnc2V0IC1lJyB0byB0aGUgbG9uZyBsaXN0IG9mIGNvbW1hbmRzLgogICAgVGhpcyBpcyBzaW1wbGVyIGFuZCBtb3JlIHJvYnVzdCB0aGFuIHBsYWNpbmcgJ3x8IGV4aXQgJCQ/JyBhZnRlciBldmVyeSBsaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwMTk4OTVhOGRlZTcxYTlmMDBkYTA1YzAzZTM3OWY0NWQ1ODFiMGZlCkF1dGhvcjogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTggMDg6MDM6NTEgMjAwOCArMDEwMAoKICAgIEZpeCBidWcgaW4gZGVwZW5kZW5jeSBjaGVja2luZwoKICAgIEJ5IGFkZGluZyBWRVJTSU9OX0ZJTEUgdG8gdGhlIFBIT05ZIHRhcmdldHMgdGhlIHNjcmlwdAogICAgL3Rvb2xzL3NldGxvY2FsdmVyc2lvbiBpcyBhbHdheXMgY2FsbGVkIGFuZCB2ZXJzaW9uX2F1dG9nZW5lcmF0ZWQuaAogICAgaXMgcmVwbGFjZWQgb25seSBpZiB0aGUgc2NyaXB0IGZpbmQgYSBtb2RpZmllZCBzb3VyY2UgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA5OGJhMTQ0Y2NjOTEyZWVlOTBkZDQyNjk5ZjAyM2M0OTdjZTc3NGM2CkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMTQ6MzU6NDMgMjAwOCArMDkwMAoKICAgIEZpeCBHUE1DIENTMiBtZW1vcnkgc2V0dXAgYXQgYXBvbGxvbgoKICAgIEl0IGRpc2FibGVzIHRoZSBjdXJyZW50IG1hcCBmaXJzdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgZTg0NWUwN2UxZTZlNjRmNDBlMzU2ODg0MzlkM2NkY2YwMWNmZmY0ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMjM6NTI6NDYgMjAwOCArMDEwMAoKICAgIHVsaTUyNng6IEZpeCBtdWx0aXBsZSBkaWZmZXIgaW4gc2lnbmVkbmVzcyBhbmQgcGFyZW50aGVzZXMgYXJvdW5kIGNvbXBhcmlzb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGJlZWNjZjdhNWRjNTQxNWMyMDJlMDEzMmEzM2M1OGZjMzE2YzJhNjIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDE2OjU4OjA0IDIwMDggKzAxMDAKCiAgICBNSVBTOiBGaXggQ0ZHX05PX0ZMQVNIIHN1cHBvcnQKCiAgICAtIEZpeCBmbGFzaF9pbml0IGNhbGwgd2hlbiBDRkdfTk9fRkxBU0ggaXMgdXNlZAogICAgLSBSZW1vdmUgbm8gbW9yZSBuZWVkZWQgZmxhc2guYyBmb3IgcWVtdS1taXBzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlZGZlZDFkOTFkZjJiMjY3MGE4MTJjYTlkMWExZjlmYWFlN2RiYTQ3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgRmViIDE2IDAyOjQwOjE4IDIwMDggLTA1MDAKCiAgICBlYXN5bG9nbzogY2xlYW4gdXAgc29tZSBtb3JlIGFuZCBhZGQgLXIgKHJnYikgc3VwcG9ydAoKICAgIE1pY2hhZWwgSGVubmVyaWNoIGFkZGVkIHN1cHBvcnQgZm9yIG91dHB1dHRpbmcgYW4gaW1hZ2UgaW4gUkdCIGZvcm1hdCByYXRoZXIKICAgIHRoYW4gZm9yY2luZyBZVVlWIGFsbCB0aGUgdGltZS4gIFRoaXMgbWFrZXMgb2J2aW91cyBzZW5zZSBpZiB0aGUgZGlzcGxheSB5b3UKICAgIGhhdmUgdGFrZXMgUkdCIGlucHV0IHJhdGhlciB0aGFuIFlVWVYuCgogICAgUmF0aGVyIHRoYW4gaGFjayBpbiBzdXBwb3J0IGZvciBvcHRpb25zLCBJJ3ZlIGNvbnZlcnRlZCBpdCB0byB1c2UgZ2V0b3B0IGFuZAogICAgY2xlYW5lZCB1cCB0aGUgYXJndW1lbnQgcGFyc2luZyBpbiB0aGUgcHJvY2Vzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEhlbm5lcmljaCA8bWljaGFlbC5oZW5uZXJpY2hAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBmNjVjOTgxMjljY2FkYTNmN2NhZjk3ZDgwMzk1YTk1Yjg0ZTkxMWRlCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgRmViIDE2IDAyOjEyOjM3IDIwMDggLTA1MDAKCiAgICBNYWtlZmlsZTogYWRkIHRhcmdldCBmb3IgJChMRFNDUklQVCkKCiAgICBJZiB0aGUgJChMRFNDUklQVCkgZG9lcyBub3QgZXhpc3QgKG5vcm1hbGx5IGl0J3MgYm9hcmQvJChCT0FSRCkvdS1ib290LmxkcyksCiAgICB0aGVuIGNoYW5nZSBpbnRvIHRoZSBib2FyZCBkaXJlY3RvcnkgYW5kIHRyeSBhbmQgY3JlYXRlIGl0LiAgVGhpcyBhbGxvd3MgeW91CiAgICB0byBnZW5lcmF0ZSB0aGUgbGlua2VyIHNjcmlwdCBvbiB0aGUgZmx5IGJhc2VkIHVwb24gYm9hcmQgZGVmaW5lcyAobGlrZSB0aGUKICAgIEJsYWNrZmluIGJvYXJkcyBkbykuCgogICAgVGhlcmUgc2hvdWxkIGJlIG5vIHJlZ3Jlc3Npb25zIGR1ZSB0byB0aGlzIGNoYW5nZSBhcyB0aGUgbm9ybWFsIGNhc2UgaXMgdG8KICAgIGFscmVhZHkgaGF2ZSBhIHUtYm9vdC5sZHMgZmlsZS4gIElmIHRoYXQncyB0aGUgY2FzZSwgdGhlbiB0aGVyZSdzIG5vdGhpbmcgdG8KICAgIGdlbmVyYXRlLCBhbmQgc28gbWFrZSB3aWxsIGFsd2F5cyBleGl0LiAgVGhlIGZpeCBoZXJlIGlzIHRoYXQgaWYgdGhlIGxpbmtlcgogICAgc2NyaXB0IGRvZXMgbm90IGV4aXN0LCB0aGUgaW1wbGljaXQgcnVsZXMgdGFrZSBvdmVyIGFuZCBhdHRlbXB0IHRvIGd1ZXNzIGhvdwogICAgdG8gZ2VuZXJhdGUgdGhlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDU1ODNjYmY3MzY0NzRlZjc1NGUxMjhhNTRmYjc4NjMyZjU3YjQ4ZmQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDE3OjI3OjQ5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IGVycm9uZW91cyB1c2Ugb2YgaW1hZ2VfZ2V0X21hZ2ljKCkgaW4gZmRjL3VzYiBjbWRzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyMjQyZjUzNjk4MjJiYzc3ODBkYjk1YzQ3OTg1YmI0MDhlYTkxNTdiCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxNzoyNzo0MSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbmFtZSBhbmQgbW92ZSBwcmludF9pbWFnZV9oZHIoKSByb3V0aW5lCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmNTA0MzNkNjcwZWMyZWU5ZTk2YWJhYzY3Y2RjNmU1ZTA2MWE4MTBkCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxNzoyMDoyMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBmaXRfcGFyc2VfY29uZigpIGFuZCBmaXRfcGFyc2Vfc3ViaW1hZ2UoKSByb3V0aW5lcwoKICAgIEludHJvZHVjaW5nIHJvdXRpbmVzIGZvciBwYXJzaW5nIG5ldyB1SW1hZ2UgZm9ybWF0IGJvb3RtIGFyZ3VtZW50czoKICAgIFs8YWRkcj5dIzxjb25mPgkJLSBjb25maWd1cmF0aW9uIHNwZWNpZmljYXRpb24KICAgIFs8YWRkcj5dOjxzdWJpbWc+CS0gc3ViaW1hZ2Ugc3BlY2lmaWNhdGlvbgoKICAgIE5ldyBmb3JtYXQgaW1hZ2VzIGNhbiBjb250YWluIG11bHRpcGxlIHN1YmltYWdlcyBvZiB0aGUgc2FtZSB0eXBlLiBGb3IgZXhhbXBsZQogICAgYSBzaW5nbGUgbmV3IGZvcm1hdCBpbWFnZSBmaWxlIGNhbiBjb250YWluIHRocmVlIGtlcm5lbHMsIHR3byByYW1kaXNrcyBhbmQgYQogICAgY291cGxlIG9mIEZEVCBibG9icy4gU3ViaW1hZ2UgYW5kIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhdGlvbnMgYXJlIGV4dGVuc2lvbnMKICAgIHRvIGJvb3RtIChhbmQgb3RoZXIgaW1hZ2UtcmVsYXRlZCBjb21tYW5kcykgYXJndW1lbnRzJyBzeW50YXggdGhhdCBhbGxvdyB0bwogICAgc3BlY2lmeSB3aGljaCBwYXJ0aWN1bGFyIHN1YmltYWdlIHNob3VsZCBiZSBvcGVyYXRlZCBvbi4KCiAgICBTdWJpbWFnZSBzcGVjaWZpY2F0aW9uIGlzIHVzZWQgdG8gZGVub3RlIGEgcGFydGljdWxhciBzdWJpbWFnZS4gQ29uZmlndXJhdGlvbnMKICAgIGFyZSBhIGJpdCBtb3JlIGNvbXBsZXggLS0gdGhleSBhcmUgdXNlZCB0byBkZWZpbmUgYSBwYXJ0aWN1YWxyIGJvb3Rpbmcgc2V0dXAsCiAgICBmb3IgZXhhbXBsZSBhIChrZXJuZWwsIGZkdCBibG9iKSBwYWlyLCBvciBhIChrZXJuZWwsIHJhbWRpc2ssIGZkdCBibG9iKSB0dXBsZSwKICAgIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZmZjg4OGExOTk3ZmY3ZGU5YjI5ZTI0MDUwZmM0YTBmZDQwM2JhMTYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDE3OjIwOjE5IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIGdlbl9nZXRfaW1hZ2UoKSByb3V0aW5lCgogICAgVGhpcyByb3V0aW5lIGFzc3VyZXMgdGhhdCBpbWFnZSAod2hldGhlciBsZWdhY3kgb3IgRklUKSBpcyBub3QKICAgIGluIGEgc3BlY2lhbCBkYXRhZmxhc2ggc3RvcmFnZS4KCiAgICBJZiBpbWFnZSBhZGRyZXNzIGlzIGEgZGF0YWZsYXNoIGFkZHJlc3MgaW1hZ2UgaXMgbW92ZWQgdG8gc3lzdGVtIFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDc1ZDNlOGZiZDkzYzE0ZDk5MjlkMDI0Yzc1YWYyZDc0MmM3NmRiNzAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDE3OjIwOjE4IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUHVsbCBpbiBsaWJmZHQgaWYgQ09ORklHX0ZJVCBpcyBlbmFibGVkCgogICAgTmV3IHVJbWFnZSBmb3JtYXQgKEZsYXR0ZW5lZCBJbWFnZSBUcmVlKSByZXF1aXJlcyBsaWJmZHQKICAgIGZ1bmN0aW9uYWxpdHksIHByaW50IG91dCBlcnJvciBtZXNzYWdlIGlmIENPTkZJR19PRl9MSUJGRFQKICAgIGlzIG5vdCBkZWZpbmVkLgoKICAgIE5ldyB1SW1hZ2Ugc3VwcG9ydCBpcyBlbmFibGVkIGJ5IGRlZmluaW5nIENPTkZJR19GSVQgKGFuZCBDT05GSUdfT0ZfTElCRkRUKS4KICAgIFRoaXMgY29tbWl0IHR1cm5zIGl0IG9uIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxYmE2MzlkYTU2MDRhNjRiM2VkODg0YTJjYmIxYzU0MTRhOWZhNzI4CkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAyMzoxNjozNSAyMDA4ICswMTAwCgogICAgQ0ZJOiBEbyBub3QgdXNlIHVuaW5pdGlhbGl6ZWQgY21kX3Jlc2V0CgogICAgRG8gbm90IHVzZSB1bmluaXRpYWxpemVkIGNtZF9yZXNldDsgaXNzdWUgYm90aCBBTUQgYW5kIEludGVsIHJlc2V0CiAgICBjb21tYW5kcyBpbnN0ZWFkCgogICAgRnJvbSBhIHNob3J0IHRlc3QsIGl0IGxvb2tzIGxpa2UgQU1ELXN0eWxlIGZsYXNoIHJvbXMgdHJlYXQgKmFueSogdW5rbm93bgogICAgY29tbWFuZCB3cml0ZSBhcyBhIHJlc2V0LCBhdCBsZWFzdCB3aGVuIGluIENGSSBRdWVyeSBtb2RlLCBzbyBpc3N1aW5nIHRoZQogICAgSW50ZWwgcmVzZXQgY29tbWFuZCB0byBBTUQtc3R5bGUgZmxhc2hzIHNlZW1zIHNhZmUgKGZyb20gdGhlIHNtYWxsIHNhbXBsZSBJCiAgICBoYXZlKSwgcGx1cyB0aGUgMy1jeWNsZSBtYWdpYyBzZXF1ZW5jZSBzaG91bGQga2ljayB0aGUgc3RhdGUgbWFjaGluZSBpbnRvCiAgICB0aGUgcmlnaHQgc3RhdGUgZXZlbiB3aXRob3V0IGEgcmVzZXQgY29tbWFuZC4gU2luY2UgdGhlIEFNRC1zdHlsZSBmbGFzaHMKICAgIHJlcXVpcmUgdGhlIHVubG9jayBzZXF1ZW5jZSBmb3IgcmVhbCBvcGVyYXRpb24sIEkgY2hvc2UgdG8gdHJ5IHRoZSBBTUQgcmVzZXQKICAgIGNvbW1hbmQgZmlyc3QsIHNvIHRoYXQgSW50ZWwgZmxhc2hzIGRvIG5vIHNlZSBhbiBpbnZhbGlkIGNvbW1hbmQgcHJpb3IgdG8KICAgIHRoZSBDRkkgcXVlcnkuCgogICAgSSBoYXZlIHRlc3RlZCB0aGUgcGF0Y2ggb24gQU0yOUxWMzIwLXN0eWxlIGZsYXNocyBmcm9tIEZ1aml0c3UgYW5kIE1hY3Jvbml4LAogICAgcGx1cyBJbnRlbCBTdHJhdGFGbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU3YTg1ZjI2ODMwYzlmMmU3ODUwNjQyMWMyZDUxOWEyOTY1YmM3YTEKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDExOjU2OjQ0IDIwMDggKzAxMDAKCiAgICBBUEk6IEFkZCAoYykgYW5kIGxpY2Vuc2luZyBub3RpY2UgdG8gdGhlIHB1YmxpYyBBUEkgaGVhZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgOTI4ZDFkNzdmODYyM2MxMjBkODc2M2UyMGUxY2E1OGRmOWM1YzRjNgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IEZlYiAyMSAxMTowNjowNyAyMDA4ICswMTAwCgogICAgRml4IENQVSBQT1NUIHRlc3QgZmFpbHVyZQoKICAgIFRoZSBDUFUgUE9TVCB0ZXN0IGNvZGUgKHJ1biBmcm9tIGNwdV9wb3N0X2V4ZWNfMzEoKSkgZG9lc24ndCBmb2xsb3cgdGhlCiAgICBBQkkgY2FyZWZ1bGx5LCBhdCBsZWFzdCB0aGUgQ1IzLCBDUjQsIGFuZCBDUjUgZmllbGRzIG9mIENSIGFyZSBjbG9iYmVyZWQKICAgIGJ5IGl0LiBUaGUgZ2NjLTQuMiB3aXRoIGl0cyBtb3JlIGFnZ3Jlc3NpdmUgb3B0aW1pemF0aW9uIGV4cG9zZXMgdGhpcyBmYWN0LgogICAgVGhpcyBwYXRjaCBqdXN0IHNhdmVzIHRoZSBDUiB2YWx1ZSBiZWZvcmUgcnVubmluZyB0aGUgdGVzdCBjb2RlLCBzbyBhbGxvd2luZwogICAgaXQgdG8gZG8gYW55dGhpbmcgaXQgd2FudHMgd2l0aCBDUi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICAtLQoKY29tbWl0IGQ1OTA4YjA5Mzk1NTQxNWYzZDM0MDcwNjM3OGI5OTFmOTExYWY2NzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDIwIDE1OjI2OjUxIDIwMDggLTA2MDAKCiAgICA4NjEwSFBDRDogRG9jdW1lbnQgdGhlIGZsYXNoYmFuayBzZWxlY3Rpb24gc3dpdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNTUxY2VlOTlhZDFkMWRhMjBmZDIzYWQyNjVkZTQ3NDQ4ODUyZjU2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyMCAxNDoyMjoyNiAyMDA4IC0wNjAwCgogICAgODZ4eDogRml4IEdVUiBQQ0kgY29uZmlnIHJlZ2lzdGVycyBwcm9wZXJseS4KCiAgICBCYWNrIGluIGNvbW1pdCA5NzVhMDgzYTVlZjc4NWM0MTRiMzVmOWM1YjhhZTI1YjI2YjQxNTI0IHdoZXJlCiAgICBJIHRyaWVkIHRvICI4NjEwSFBDRDogRml4IHR5cG9zIGluIHR3byBQQ0kgc2V0dXAgcmVnaXN0ZXJzIiwgSQogICAgYm90Y2hlZCBpdCBkdWUgdG8gbm90IHJlYWxpemluZyB0aGF0IDg2MTAgYW5kIDg2NDEgaGFkIGRpZmZlcmVudAogICAgR2xvYmFsIFV0aWxpdHkgUmVnaXN0ZXIgZGVmaW50aW9ucywgb25lIG9mIHdoaWNoIHdhcyBsaWtlIDg1eHgsCiAgICBhbmQgdGhlIG90aGVyIHdhc24ndC4gIENvcnJlY3QgdGhpcyBwcm9ibGVtIGJ5IGludHJvZHVjaW5nIHR3bwogICAgc3ltYm9scywgb25lIGZvciBlYWNoIDg2eHggU29DLCBidXQgbmVpdGhlciBvZiB3aGljaCBpcyBuYW1lZAogICAgYW55dGhpbmcgbGlrZSA4NXh4LgoKICAgIE15IGJhZC4gIExvdmVseSBXZWRuZXNkYXkgd2l0aCBnaXQgYmlzZWN0LglZb3Uga25vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNiMDZlYjk2MWJkZmZjODcyOGIzOGMyNDI0NzNkODAyZTgzYWIyYjQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDIwIDEyOjI0OjExIDIwMDggLTA2MDAKCiAgICA4NjEwSFBDRDogRG9uJ3QgdXNlIFZJREVPL0NGQl9DT05TT0xFIGJ5IGRlZmF1bHQuCgogICAgV2l0aG91dCBhbiBhY3R1YWwgc3VwcG9ydGVkIHZpZGVvIGNhcmQgaG9va2VkIHVwLCBlbmFibGluZwogICAgdGhlIENPTkZJR19WSURFTyBieSBkZWZhdWx0IGp1c3QgbWFrZXMgaXQgbG9vayBicm9rZW4gYnkKICAgIHJvdXRpbmcgYWxsIGNvbnNvbGUgb3V0cHV0IHRvIHRoZSB2aWRlbyBjYXJkLiAgIERvbid0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQyNjRlZmY0MzEyZjIzMDc3NmI5MTNlZGFkZTdjZWI3NWYxYjFlMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMCAxNTowODoxNSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEZpeCBtaXNzaW5nIGNvZGUgZmxhc2ggc2l6ZSBmb3IgTTU0ODVFVkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBNYWhhbiA8a21haGFuQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1NGY5MjYzZTRlMTFlMzRiMWU3MGMxNjBiYzQ2N2VmMWQ4ZWM1OWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzAgMTU6MDQ6NDIgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBGaXggNTI4MiBhbmQgNTI3MSBpbnRlcnJ1cHQgbWFzayBiaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3NWEwODNhNWVmNzg1YzQxNGIzNWY5YzViOGFlMjViMjZiNDE1MjQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDE5IDEyOjMxOjA4IDIwMDggLTA2MDAKCiAgICA4NjEwSFBDRDogRml4IHR5cG9zIGluIHR3byBQQ0kgc2V0dXAgcmVnaXN0ZXJzLgoKICAgIFRoZSB0d28gc3ltYm9scyBNUEM4Nnh4X1BPUkRFVlNSX0lPX1NFTCBhbmQgTVBDODZ4eF9QT1JCTVNSX0hBCiAgICB3ZXJlIGVycm9uZW91c2x5IHByZXNlbnQgYXMgODV4eCBuYW1lcyBhbmQgdmFsdWVzLCBsZWZ0b3ZlciBmcm9tCiAgICB0aGUgY2xvbmUgd2Fycy4gIEZpeCB0aGlzIGJ5IHJlbW92aW5nIHRoZSA4NXh4IGNydWZ0IGZyb20gdGhlCiAgICA4Nnh4IGNvZGViYXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTNmNTQzM2Y3MDBkNGRhOWY2ZmRmMmE0YmI4MDMxMDEzM2E3YzE3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBGZWIgMTggMTQ6MDE6NTYgMjAwOCAtMDYwMAoKICAgIDg2eHg6IENvbnZlcnQgc2JjODY0MWQgdG8gdXNlIGxpYmZkdC4KCiAgICBUaGlzIGlzIHRoZSBwcm9wZXIgZml4IGZvciBhIG1pc3NpbmcgY2xvc2luZyBicmFjZSBpbiB0aGUgZnVuY3Rpb24KICAgIGZ0X2NwdV9zZXR1cCgpIG5vdGljZWQgYnkgam9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbS4KICAgIFRoZSBmdF9jcHVfc2V0dXAoKSBmdW5jdGlvbiBpbiBtcGM4NjQxaHBjbi5jIHNob3VsZCBoYXZlIGJlZW4KICAgIHJlbW92ZWQgZWFybGllciBhcyBpdCB3YXMgdW5kZXIgdGhlIG9ic29sZXRlIENPTkZJR19PRl9GTEFUX1RSRUUsCiAgICBidXQgd2FzIG1pc3NlZC4gIE9ubHksIHRoZSBzYmM4NjQxZCB3YXMgbm9taW5hbGx5IHN0aWxsIHVzaW5nIGl0LgogICAgSXQgYWxsIGdvdCByaXBwZWQgb3V0LCBhbmQgdGhlIGZ1bmNhbGl0eSB0aGF0IHdhcyBpbiBmdF9ib2FyZF9zZXR1cCgpCiAgICB3YXMgcmVmYWN0b3JlZCB0byByZW1vdmUgdGhlIENQVSBwb3J0aW9ucyBpbnRvIHRoZSBuZXcgZmlsZQogICAgY3B1L21wYzg2eHgvZmR0LmMgaW5zdGVhZC4JTWFrZSBzYmM4NjQxZCB1c2UgdGhpcyBub3cuCgogICAgQmFzZWQgbG9vc2VseSBvbiBhbiBvcmlnaW5hbCBwYXRjaCBmcm9tIGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA0ZWZkZGM4N2M1MGM4NGY4NWRhZDVjMzMxYzYzNGE2Y2U4MzBhODMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDIzOjM1OjMxIDIwMDggKzAxMDAKCiAgICBtcGM4Nnh4OiBGaXggdW51c2VkIHZhcmlhYmxlICdjb25maWcnIGFuZCAnaW1tYXAnCgogICAgYW5kIHJlbW92ZSB1c2VsZXNzIENPTkZJR19ERFJfSU5URVJMRUFWRQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODNkMWIzODc2Njk1YzRmMjFmYWZmMmI3MzFkOWVmODNmMzhlZDIwOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMjM6MDM6MzYgMjAwOCArMDEwMAoKICAgIG1wYzg2eHg6IEZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbnMgJ2luaXRfbGF3cycgYW5kICdkaXNhYmxlX2xhdycKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGI2ZjI5Yzg0YzIwOGEwOTFmOTVhMTBjYmM5ODUyZDcyOTY1OWJhMjAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDE0OjE1OjMxIDIwMDggKzAxMDAKCiAgICBzM2MyNHgwOiBGaXggdW51c2VkIHZhcmlhYmxlICdpJyBpbiBmdW5jdGlvbiAnc2VyaWFsX2luaXRfZGV2JwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMDkzN2I4ZDg2OWZkYjQyZDZhZDRmZTMxMjk1ODYzOWJkNjJjOTczZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMTQ6MTU6MzIgMjAwOCArMDEwMAoKICAgIHB4YTogZml4IGFzc2lnbm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlCgogICAgZml4IG1tY19icmVhZCBmdW5jdGlvbiBwcm90b3R5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDY0ZDc5MjA2M2ZmZjkwYjgxMTgxNzliMDkyZmVlZTA5ZmU1Y2FlMTMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDE0OjE1OjMwIDIwMDggKzAxMDAKCiAgICBhdDkxY2FwOWFkazogZml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdldGhfaW5pdCcKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDM3NWM0MzUzZGI4ZjkwMGY3ZWM3NzJlMjZmYWIxMTZlYzAwZjdkM2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gRmViIDE3IDE1OjQzOjQ0IDIwMDggKzAxMDAKCiAgICBSZW1vdmUgZmlsZXMgYWRkZWQgYnkgbWlzdGFrZSwgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGI3Mzg2NTRkM2M4NGEzMGYyYmZkOWE4ZDc2NTJmZjIwODA3Yzg5MGMKQXV0aG9yOiBNaWtlIE51c3MgPG1pa2VAdGVyYXNjYWxhLmNvbT4KRGF0ZToJV2VkIEZlYiA2IDExOjEwOjExIDIwMDggLTA1MDAKCiAgICBQUEM0NDBFUHg6IE9wdGlvbmFsbHkgZW5hYmxlIHNlY29uZCBJMkMgYnVzCgogICAgVGhlIG9wdGlvbiBDT05GSUdfSTJDX01VTFRJX0JVUyBkb2VzIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gU2VxdW9pYSwgdGhlCiAgICBQUEM0NDBFUHggcmVmZXJlbmNlIHBsYXRmb3JtLCBiZWNhdXNlIElJQzEgaXMgbmV2ZXIgZW5hYmxlZC4gQWRkIFNlcXVvaWEgYm9hcmQKICAgIGNvZGUgdG8gdHVybiBvbiBJSUMxIGlmIENPTkZJR19JMkNfTVVMVElfQlVTIGlzIHNlbGVjdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgogICAgQ2M6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlZjViNGYyMjFjMjJkMDU3NzA4Nzg1MTM5NTE3NDVmMjM2YjViNDNmCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVHVlIEZlYiA1IDEwOjI2OjQ0IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhDVTQvNS4gQ2xlYW51cCBjb25maWdzCgogICAgLSBoY3U0Lmg6IFJlbW92ZWQgZGVmaW5lIG9mIENPTkZJR19QUEM0MDVHUHIKICAgIC0gQ29ycmVjdGVkIHBoeSBhZGRyZXNzZXMKICAgIC0gRml4IGJvb3QgdmFyaWFibGVzCiAgICAtIFJlc3BlY3QgbGluZSBsZW5ndGggb2YgODAgY2hhcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDc0OTczMTI2ZDFiZTYzYWM3NWJkYzE5MmY0NjIzNGRjYTNhN2M0MjEKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUdWUgRmViIDUgMTE6MzE6MjggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSENVNC81LiBDbGVhbnVwcwoKICAgIC0gRml4IHNvbWUgY29kaW5nIHN0eWxlIHZpb2xhdGlvbnMuCiAgICAtIFVzZSBpbi9vdXRfdTE2LzMyIHdoZXJlIGFwcHJvcHJpYXRlLgogICAgLSBVc2UgcmVnaXN0ZXIgbmFtZXMgZnJvbSBwcGM0MDUuaC4KICAgIC0gRml4IHRyYWNlIHVzZWFnZSBmb3IgTGF1dGVyYmFjaC4KICAgIC0gUmVtb3ZlIG9ic29sZXRlIGdlbmVyYXRpb24gSENVMi4KICAgIC0gUmVuYW1lZCBmaXhlZF9oY3U0X3NkcmFtIHRvIGluaXRfcHBjNDA1X3NkcmFtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgOGNjMTBkMDZiODMzZWQ5MTdhMTlhZDM1OGM4ZWJiZWQ4YmMxOTU1NQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVR1ZSBGZWIgNSAxMDoyNjo0MSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBQUEM0MDVHUHIgZml4IG1pc3NpbmcgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDIxNDM5OGQ5Y2IyMjI2OGQ5ZDRmNzU2MzM1OWVkY2EwZjc4Mjk3YTIKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJRnJpIEphbiAxOCAyMTo0OTowNSAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBCZWF1dGlmeSBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBTZXF1b2lhIGFuZCBLb3JhdCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAzMGM2YTI0MWU4ODQ5OWY1MzZlODZkMzI1NzU5ZTI5YmEwMGZmNjdmCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgRmViIDE1IDIwOjA5OjAxIDIwMDggKzAxMDAKCiAgICBXaXBlIG91dCBhc3NlbWJsZXIgd2FybmluZ3Mgd2hpbGUgY29tcGlsaW5nIHg4NiBiaW9zZW11CgogICAgVGhpcyBwYXRjaCB0cmllcyB0byBnZXQgcmlkIG9mIHNvbWUgYXNzZW1ibGVyIHdhcm5pbmdzIGFib3V0CiAgICBjaGFuZ2VkIC5nb3QyIHNlY3Rpb24gdHlwZSB3aGlsZSBjb21waWxpbmcgeDg2IGJpb3MgZW11bGF0b3IKICAgIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDY3YTQzODllMzlhZDg1M2Q2NWI3MmUyYjdjYWQxNWM3ZTgyOTExNDcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgRmViIDE1IDAwOjU3OjA5IDIwMDggKzAxMDAKCiAgICBQcmVwYXJlIHYxLjMuMi1yYzEgcmVsZWFzZSBjYW5kaWRhdGUKCmNvbW1pdCBmMzNlOTY1M2M5YzA5ODY4OTk1ZDc4ODUxMWQ1NzM3NzFjMjA5ZmU1CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglGcmkgRmViIDE1IDAwOjEzOjIwIDIwMDggKzAxMDAKCiAgICBGaXggY29tcGlsZSB3YXJuaW5nIG9uIGxpYl9wcGMvYm9hcmQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBlNWM2ZjlmOGJlYzRkZmY5NjAzNDE5MTYxZTNhMTVjYzhhZDVkNWY0CkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgRmViIDE0IDE4OjIyOjA0IDIwMDggKzAxMDAKCiAgICBBZGQgUmFkZW9uIE1vYmlsaXR5IDkyMDAgcGNpIGRldmljZSBpZCB0byB0aGUgcmFkZW9uIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggZXh0ZW5kcyBQQ0kgZGV2aWNlIGlkIHRhYmxlIG9mIHRoZQogICAgcmFkZW9uIGRyaXZlciBzbyB0aGF0IHRoZSBkcml2ZXIgd2lsbCBhbHNvIHN1cHBvcnQKICAgIFJhZGVvbiBNb2JpbGl0eSA5MjAwIChNOSspIGJhc2VkIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgMWI4NjA3ZTFmNzE0MzU0OGM2MDYyYzI4MzcxNDQ5ZWM2OTU4OGMwMApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxNCAxODoxOTo1MCAyMDA4ICswMTAwCgogICAgRXh0ZW5kIEFUSSBSYWRlb24gZHJpdmVyIHRvIHN1cHBvcnQgbW9yZSB2aWRlbyBtb2RlcwoKICAgIEFkZHMgQVRJIFJhZGVvbiA5MjAwIHN1cHBvcnQgZm9yIDEyODB4MTAyNCwgMTAyNHg3NjgsCiAgICA4MDB4NjAwLCA2NDB4NDgwIGF0IDI0LCAxNiBhbmQgOCBicHAuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDQxMjQzODJkZTAyOWQzNjExNjJhNGI4Y2VjYzc3M2ViOGYyNmUyYTgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDEwIDE3OjA1OjIwIDIwMDggKzAxMDAKCiAgICB4c2VuZ2luZTogZml4IHR5cG8gYW5kIGZldyBjb2Rpbmcgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZmNGFiZWU3ODliNmQ5YmUzZWM0Yjk3YWQ0OGY1MDkzNTU1NTllOWUKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJRnJpIEZlYiA4IDIxOjI1OjU4IDIwMDggKzAxMDAKCiAgICBGaXggd3JvbmcgbWVtb3J5IGxpbWl0IGNhbGN1bGF0aW9uIGluIG1lbW9yeS10ZXN0CgogICAgSWYgdGhlIGxlbmd0aCBvZiB0aGUgbWVtb3J5IGFkZHJlc3MgcmFuZ2UgcGFzc2VkIHRvIHRoZSAibXRlc3QiIGNvbW1hbmQgaXMKICAgIG5vdCBvZiB0aGUgZm9ybSAyXnggLSAxLCBub3QgYWxsIGFkZHJlc3MgbGluZXMgYXJlIHRlc3RlZC4gVGhpcyBidWcgaXMKICAgIGluaGVyaXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZSBhdAogICAgaHR0cDovL3d3dy5uZXRyaW5vLmNvbS9FbWJlZGRlZC1TeXN0ZW1zL0hvdy1Uby9NZW1vcnktVGVzdC1TdWl0ZS1DLiBGaXgKICAgIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+Cgpjb21taXQgN2UzMGY1ZWFjN2YwNzA4MmE3Y2E3N2I3ZDkxYjk0NGE4ZDBhZjZkYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTUgMDA6MTE6MzkgMjAwOCArMDEwMAoKICAgIENvZGluZyBTVHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjY5MjFlM2RjMzMxMjkzYzg3M2VjNGQxMDlmZDU1MTdhNDJhOTBiMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEZlYiA1IDEzOjMwOjQzIDIwMDggKzA5MDAKCiAgICBzaDogRml4IHJlZ2lzdGVyIGFkZHJlc3Mgb2YgU0g3NzIyCgogICAgVGhlIGFkZHJlc3Mgb2YgU0g3NzIyIGlzIHdyb25nIGJ5IG9sZCBkb2N1bWVudC4KICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwZWM3YTA2MWZiMWMyNzdmNmFmZDczZDYxZGQ3MWJkMjFlN2VmN2IyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTc6NDQ6MjMgMjAwOCAtMDUwMAoKICAgIG9ubHkgdXBkYXRlIHZlcnNpb24gaGVhZGVyIGFzIG5lZWRlZAoKICAgIENvbnN0YW50bHkgcmVidWlsZGluZyB0aGUgdmVyc2lvbiBoZWFkZXIgd2lsbCBmb3JjZSB1c2VsZXNzIHJlbGlua2luZywgc28gd2UKICAgIHNpbXBseSBuZWVkIHRvIGNvbXBhcmUgdGhlIG5ldyBoZWFkZXIgd2l0aCB0aGUgZXhpc3Rpbmcgb25lIGJlZm9yZSB1cGRhdGluZwogICAgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDIwODQ0N2Y4ZTk1M2YzNDc0MjVlYjkyYzhlMjhkNTllNmQ5MTEzNjMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBKYW4gMjggMDU6NTY6MTkgMjAwOCAtMDUwMAoKICAgIERvIG5vdCBzcGVjaWZ5IGEgQ1JPU1NfQ09NUElMRSBkZWZhdWx0IHdoZW4gZXhlY3V0aW5nIHNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMWY3ODBhYTZmMTdhNWQ3OTc5MWQ2OWVjMWQyZjY2ZDc2YWM0NWQ4ZQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgpEYXRlOglXZWQgRmViIDEzIDExOjE5OjE5IDIwMDggKzAxMDAKCiAgICBGaXggcmV0dXJuIHZhbHVlIG9mIG10ZXN0IHdoZW4gQ0ZHX0FMVF9NRU1URVNUIHNldAoKICAgIEZpeCBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBmcm9tIGEgbm9uLXZvaWQgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+Cgpjb21taXQgOTQzYWZhMjI5Y2Y1YmY3MGVmOTE3YzdlYjZiZDBkYjU5YTFiYTYwMgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNDozNToyNiAyMDA4IC0wNjAwCgogICAgODV4eCwgODZ4eDogRGV0ZXJtaW5lIEkyQyBjbG9jayBmcmVxdWVuY2llcyBhbmQgc3RvcmUgaW4gZ2xvYmFsX2RhdGEKCiAgICBVcGRhdGUgZ2xvYmFsX2RhdGEgdG8gZGVmaW5lIGkyYzFfY2xrIGFuZCBpMmMyX2NsayB0byA4NXh4IGFuZCA4Nnh4LgoKICAgIFVwZGF0ZSB0aGUgZ2V0X2Nsb2NrcygpIGZ1bmN0aW9uIGluIDg1eHggYW5kIDg2eHggdG8gZGV0ZXJtaW5lIHRoZSBJMkMKICAgIGNsb2NrIGZyZXF1ZW5jeSBhbmQgc3RvcmUgaXQgaW4gZ2QtPmkyYzFfY2xrIGFuZCBnZC0+aTJjMl9jbGsuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOTMxYjNhOWMzYmRmYWFlYWE3MWU1N2E2MDI2ZWVjNzI2MDA1YjA4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxNCAyMzoxODowMSAyMDA4ICswMTAwCgogICAgVFFNODM0eDogY2xlYW4gdXAgY29uZmlndXJhdGlvbgoKICAgIEdldCBib2FyZCBuYW1lIGNvbnNpc3RlbnQgd2l0aCBMaW51eCBhbmQgZWxzZXdoZXJlOwogICAgZ2V0IHJpZCBvZiBsb2NhbCBuZXR3b3JrIGRlZmluaXRpb25zIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDM4Y2MwOWM1NWIxZDdmMjMzNzg5MDUyYzZmYzQ2MmU1Mzc3NjY5YTkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgRmViIDE0IDA4OjAyOjEyIDIwMDggKzAxMDAKCiAgICBURlRQOiBmaXggc2VhcmNoIG9mICc6JyBpbiBCb290RmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMGJjOWVmYWRhMTcwMDk2YzZiMjczZjE5MTY1ZTMyOTM2ZDMzMGQ4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTQgMjI6NDY6NTUgMjAwOCArMDEwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTc2NzBmNmMxZTUyYWU2ZDJhNDNmZjc1YThiY2ZhN2E1Yzg2ZTQ3YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTQgMjI6NDM6MjIgMjAwOCArMDEwMAoKICAgIFBQQzogVXNlIHIyIGluc3RlYWQgb2YgcjI5IGFzIGdsb2JhbCBkYXRhIHBvaW50ZXIKCiAgICBSMjkgd2FzIGFuIHVubHVja3kgY2hvaWNlIGFzIHdpdGggcmVjZW50IHRvb2xjaGFpbnMgKGdjYy00LjIueCkgZ2NjCiAgICB3aWxsIHJlZnVzZSB0byB1c2UgbG9hZC9zdG9yZSBtdWx0aXBsZSBpbnNuczsgaW5zdGVhZCwgaXQgaXNzdWVzIGEKICAgIGxpc3Qgb2Ygc2ltcGxlIGxvYWQvc3RvcmUgaW5zdHJ1Y3Rpb25zIHVwb24gZnVuY3Rpb24gZW50cnkgYW5kIGV4aXQsCiAgICByZXN1bHRpbmcgaW4gYmlnZ2VyIGNvZGUgc2l6ZSwgd2hpY2ggaW4gdHVybiBtYWtlcyB0aGUgYnVpbGQgZm9yIGEKICAgIGZldyBib2FyZHMgZmFpbC4KCiAgICBVc2UgcjIgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNjMjM0ZWZhNjkzYmM1OTkwNmMyYmU1NWM3OTE4ZWNiYjU1MzkyZWEKQXV0aG9yOiBVd2UgS2xlaW5lLUvDtm5pZyA8VXdlLktsZWluZS1Lb2VuaWdAZGlnaS5jb20+CkRhdGU6CVdlZCBKYW4gMzAgMDk6MDg6NDkgMjAwOCArMDEwMAoKICAgIEFSTTogbWFrZSB0aGUgbWFjaGlkIGNvbmZpZ3VyYWJsZSB2aWEgdGhlIGVudmlyb25tZW50CgogICAgSWYgdGhlIHZhcmlhYmxlICJtYWNoaWQiIGV4aXN0cywgbGV0IGRvX2Jvb3RtX2xpbnV4IHVzZSB0aGF0IGluc3RlYWQKICAgIG9mIGJkLT5iaV9hcmNoX251bWJlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBVd2UgS2xlaW5lLUv2bmlnIDxVd2UuS2xlaW5lLUtvZW5pZ0BkaWdpLmNvbT4KCmNvbW1pdCBkZDI0MDU4NDA3YzVhZGQ0NWNjNjBhZWM2Yzc1N2RkYzFhMTdlMWIwCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzQ6NDYgMjAwOCArMDIwMAoKICAgIFVzZSAjaWZkZWYgQ09ORklHX0ZTTERNQUZFQwoKICAgIE1DRF90YXNrcy5jIGxhY2tzIFtzdWJqZWN0XSBzbyBjb21waWxhdGlvbiBvZiBtaXBzIHRhcmdldHMgKGFuZCBtb3JlLCBwcm9iYWJseSkKICAgIGZhaWxzCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgMjZjN2JhYjgxZTA4ZGM3YmQ2OTZjNDhmNzUzNDI4YTgyOTYyOWJkOApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBKYW4gMTkgMTA6MjU6NTkgMjAwOCArMDkwMAoKICAgIGNvbW1vbi9taWlwaHl1dGlsLmM6IENsZWFudXAgTUlJX0RFQlVHIGFuZCBkZWJ1ZygpCgogICAgQ3VycmVudCBNSUlfREVCVUcgaXMgY29uZnVzaW5nIGluIHR3byB3YXlzLiBPbmUgaXMgdXNlbGVzcyBkZWZpbmUtdGhlbi0KICAgIHVuZGVmIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuIFRoZSBvdGhlciBpcyB0aGVyZSBpcyBvbmx5IG9uZSBkZWJ1ZygpIGluCiAgICB0aGlzIGZpbGUsIGFuZCB0aGF0IGRvZXNuJ3Qgc2VlbSB3b3J0aHdoaWxlIHRvIGJvdGhlciBoYXZpbmcgTUlJX0RFQlVHLgogICAgV2hpbGUgdGhlcmUgYXJlIG1hbnkgdXNlZnVsIHByaW50ZigpL3B1dHMoKSBkZWJ1ZyBjb2RlcywgYnV0IHRoZXkgYXJlIGZvcgogICAgREVCVUcsIG5vdCBmb3IgTUlJX0RFQlVHLgoKICAgIFRoaXMgcGF0Y2ggdHJpZXMgdG8gcHV0IHRoZW0gYWxsIHRvZ2V0aGVyIGludG8gTUlJX0RFQlVHIGFuZCBkZWJ1ZygpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNzUxYjliNTE4OWYzMjc0YjAzYzgwOTE3MjYzMTMxNmQ2YjAwMmM4MgpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglUaHUgSmFuIDE3IDE2OjQzOjI1IDIwMDggKzA5MDAKCiAgICBPbmVOQU5EIEluaXRpYWwgUHJvZ3JhbSBMb2FkZXIgKElQTCkgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgT25lTkFORCBib290IHdpdGhpbiBVLUJvb3QuCiAgICBCZWZvcmUgdGhpcyB3b3JrLCB3ZSB1c2VkIGFub3RoZXIgT25lTkFORCBJUEwgY2FsbGVkIFgtTG9hZGVyIGJhc2VkCiAgICBvbiBvcGVuIHNvdXJjZS4gV2l0aCB0aGlzIHdvcmssIHdlIGNhbiBidWlsZCB0aGUgb25lYm9vdC5iaW4gaW1hZ2UKICAgIHdpdGhvdXQgb3RoZXIgcHJvZ3JhbS4KCiAgICBUaGUgYnVpbGQgc2VxdWVuY2UgaXMgc2ltcGxlLgogICAgRmlyc3QsIGl0IGNvbXBpbGVzIHRoZSB1LWJvb3QuYmluCiAgICBTZWNvbmQsIGl0IGNvbXBpbGVzIE9uZU5BTkQgSVBMCiAgICBGaW5hbGx5LCBpdCBiZWNvbWVzIHRoZSBvbmVib290LmJpbiBmcm9tIE9uZU5BTkQgSVBMIGFuZCB1LWJvb3QuYmluCiAgICBUaGUgbWVjaGFuaXNtIGlzIHNpbWlsYXIgd2l0aCBOQU5EIGJvb3QgZXhjZXB0IGl0IGJvb3RzIGZyb20gaXRzZWxmLgoKICAgIEFub3RoZXIgdGhpbmcgaXMgdGhhdCB5b3UgY2FuIG9ubHkgdXNlIHRoZSBPbmVOQU5EIElQTCBvbmx5IHRvIHdvcmsKICAgIG90aGVyIGJvb3Rsb2FkZXIgc3VjaCBhcyBSZWRCb290IGFuZCBzbyBvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDIxZjZmOTYzNmYwZTk3ODM5NzU0ODc1MTM0NzQyNWZiZjhkNDJiYjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTM6MDY6NTkgMjAwOCAtMDYwMAoKICAgIEZpeCBDT05GSUdfTU1DIHVzYWdlIGluIGZhdCBjb2RlCgogICAgQSAjaWYgc3RhdGVtZW50IGluIGZhdC5jIGRlcGVuZGVkIG9uIENPTkZJR19NTUMsIGluc3RlYWQgb2YKICAgIGRlZmluZWQoQ09ORklHX01NQykuICBUaGlzIG1lYW50IENPTkZJR19NTUMgbmVlZGVkIHRvIGJlIGRlZmluZWQKICAgIGFzICIxIiByYXRoZXIgdGhhbiBqdXN0IGRlZmluZWQuICBOb3cgaXQncyBiZXR0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1N2Q3ZDM2NGNlMTg5ZTM5YjBhNjQzMzhkMmY4MDEyYzA3NGEyYmQKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEyOjUyOjMxIDIwMDggKzAxMDAKCiAgICBwcGM6IFJlZmFjdG9yIGNhY2hlIHJvdXRpbmVzLCBzbyB0aGVyZSBpcyBvbmx5IG9uZSBjb21tb24gc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgM2YyYWM4ZjkyOGM3NmNiZDIzNzQ0MzdiMmQwNzlmOGI0MzI0YWFiYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTU6NTU6MDIgMjAwOCAtMDYwMAoKICAgIDg2eHg6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIGluIHN5c19lcHJvbS5jCgogICAgc3lzX2VlcHJvbS5jOjgyOjk6IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNlcXVlbmNlICdcLycKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1MjMwMTA3MDI1NzMzZTg5ZTI4ZmQ1ZTVjZmQ5MTZkNDk1M2MyOGEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuIGF0PgpEYXRlOglGcmkgRmViIDIyIDExOjQwOjUwIDIwMDggKzAwMDAKCiAgICBNb3ZlIEFUOTFSTTkyMDBESyBib2FyZCBzdXBwb3J0IHVuZGVyIGJvYXJkL2F0bWVsCgogICAgV2UgYWxyZWFkeSBoYXZlIGEgdmVuZG9yIHN1YmRpciBmb3IgQXRtZWwsIHNvIHdlIHNob3VsZCB1c2UgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNmQwOTQzYTZiZTk5OTc3ZDZkODUzZDUxNzQ5ZTk5NjNkNjhlYjE5MgpBdXRob3I6IEFuZHJlYXMgRW5nZWwgPGFuZHJlYXMuZW5nZWxAZXJpY3Nzb24uY29tPgpEYXRlOglNb24gSmFuIDE0IDA5OjA2OjUyIDIwMDggKzAwMDAKCiAgICBBUk06IGNsZWFudXAgZHVwbGljYXRlZCBleGNlcHRpb24gaGFuZGxpbmdjb2RlCgogICAgTW92ZSBkdXBsaWNhdGVkIGV4Y2VwdGlvbiBoYW5kbGluZyBjb2RlIGludG8gbGliX2FybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIEVuZ2VsIDxhbmRyZWFzLmVuZ2VsQGVyaWNzc29uLmNvbT4KCmNvbW1pdCBlYThkOTg5ZjRlZjgyMDNlMWMwMjkxZTYyNDM1YThjNjJlM2NmYjI5CkF1dGhvcjogVGltbyBUdXVuYWluZW4gPHRpbW8udHV1bmFpbmVuQHN5c2FydC5maT4KRGF0ZToJRnJpIEZlYiAxIDEwOjA5OjAzIDIwMDggKzAwMDAKCiAgICBTdXBwb3J0IGZvciBBcnRpbGEgTS01MDEgc3RhcnRlciBraXQKCiAgICBLaW1tbyBMZXBwYWxhIC8gU3lzYXJ0IGFuZAogICAgVGltbyBUdXVuYWluZW4gLyBTeXNhcnQKCmNvbW1pdCA5NjA0YjZlNTNkZGFlNGZlMDBhNDg4Y2JjZDZiMGU2Y2IzNDRiY2NjCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJTW9uIEZlYiAxMSAxMDo1MDoxOSAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydAoKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIHJlYWRfZGF0YWZsYXNoKCkgdGFrZXMgYSBzaWduZWQgY2hhciBwb2ludGVyIGFzIGEgcGFyYW1ldGVyLiBTaWxlbmNlIGEKICAgIGZldyB3YXJuaW5ncyBkdWVzIHRvIGluY29ycmVjdCBwYXJhbWV0ZXIgdHlwZXMgaW4gZW52X2RhdGFmbGFzaC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNjRlOGEwNmFmNjhjZGExNzRhOGEwNmQwYTYxZmNlNWU1YmIxODlkNwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBGZWIgNyAwOTo0Mjo1NyAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IG1vdmUgYm9hcmQgZmlsZXMgdG8gQXRtZWwgdmVuZG9yIGRpcmVjdG9yeS4KCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogbW92ZSBhdDkxY2FwOWFkayBib2FyZCBmaWxlcyB0byBBdG1lbCB2ZW5kb3IgZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNzI2M2VmMTkxYjg3ZGE5NDc2OGY3NjJjNzA5M2JlZGViNzBkYjk4ZgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuIGF0PgpEYXRlOglUaHUgSmFuIDMgMjE6MTU6NTYgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBNQUNCIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgQWNrZWQtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDZhZmNhYmYxMWQ3MzIxODUwZjRmZWFhZGZlZTg0MTQ4OGFjZTU0YzUKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgRmViIDcgMTY6Mzc6NTQgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBib2FyZC8gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGZlZmI2YzEwOTI4Y2FhOWU3MTMzNWNhZDY0ZGNiNjVjODNmY2U4YWIKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbiBhdD4KRGF0ZToJV2VkIEphbiAzMCAyMToxNTo1NCAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IGNwdS8gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGZhNTA2YTkyNmNlYzM0ODgwNTE0MzU3NmM5NDFmOGU2MWIzMzNjYzAKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgSmFuIDMxIDIxOjE1OjUzIDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogaW5jbHVkZS8gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDIwYjE5N2M2ZjI3OTlhZjM5OWE2OGY5NmExYWZmNTQzYTc1NjIxYjgKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglTdW4gSmFuIDIwIDE5OjQ5OjIxIDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogYnVpbGQgaW50ZWdyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGQ0OWZlNGJlZDViNjllYzkxMDkwOWQxYmQ2MmRhMjNlY2Q4ODAxZmQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglTdW4gSmFuIDIwIDIxOjA3OjAwIDIwMDggKzAwMDAKCiAgICBJbXByb3ZlIERhdGFGbGFzaCBDUyBkZWZpbml0aW9uLgoKICAgIFVzZSBhIHN0cnVjdHVyZSBpbnN0ZWFkIG9mIHRoZSBlcnJvciBwcm9uZSB1bm5hbWVkIGFycmF5IHRvCiAgICBkZWZpbmUgdGhlIHBvc3NpYmxlIGRhdGFmbGFzaCBiYW5rcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGE2Y2RkMjFiNTYwMTQyMDg3MDYyMzg3MTJhODUzYTllOWEwYTIyOTAKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglTYXQgSmFuIDE5IDIxOjA5OjM1IDIwMDggKzAwMDAKCiAgICBGaXggYXJtOTI2ZWpzIGNvbXBpbGUgd2hlbiBTS0lQX0xPV0xFVkVMX0lOSVQgaXMgb24KCiAgICBGaXggYXJtOTI2ZWpzIGNvbXBpbGUgd2hlbiBTS0lQX0xPV0xFVkVMX0lOSVQgaXMgb24uCgogICAgY3B1L2FybTkyNmVqcy9zdGFydC5vOiBJbiBmdW5jdGlvbiBgY3B1X2luaXRfY3JpdCc6CiAgICAuLi4vY3B1L2FybTkyNmVqcy9zdGFydC5TOjIyNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgbG93bGV2ZWxfaW5pdCcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGVhNjg2ZjUyZTQ1YjNkZjI5Mzg4NjZkM2Y1YTk4YmIyNTU2ZGZlMmIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgRmViIDEgMTY6NTA6MjQgMjAwOCArMDAwMAoKICAgIEZpeCB0aW1lciBvdmVyZmxvdyBpbiBEYVZpbmNpCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCBmNGU3Y2JmY2IwZmNiYzMyNWEyYmNmZWE3ZTAwZTNkZDM3ZjkzODQ2CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIEZlYiAxIDE2OjQ5OjA4IDIwMDggKzAwMDAKCiAgICBVcGRhdGUgYm9hcmQgTmV0U3RhcgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgoKY29tbWl0IGI3ZjYxOTNlNzY2NTFlMWZkNjA2ZTQ2ZWIxMTkxNWI1M2NiNjYxOGIKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUdWUgRmViIDUgMTA6MjY6NDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSENVNC81LiBGaXggbWFrZSBPPS4uL3h4CgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAyOWUzNTAwY2JjNDNjODllZmY2ZTcyMGNhODNlMzc1ZGVlZWNkOWIzCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVR1ZSBKYW4gMjIgMDg6NTE6NTkgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogQWRkIENPTkZJR180eHhfRENBQ0hFIGNvbXBpbGUgc3dpdGNoIHRvIERlbmFsaS1jb3JlIFNQRCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgZmU4OTFlY2Y0ZDE4N2U5ZDExZGRlODY5ZWQ0NjIzYWY1MmI1NDQ1MQpBdXRob3I6IEhpcm9zaGkgSXRvIDxpdG9AbWxiLmNvLmpwPgpEYXRlOglUaHUgSmFuIDMxIDE4OjM1OjA0IDIwMDggKzA5MDAKCiAgICBORlMgVGltZW91dCB3aXRoIGxhcmdlIGZpbGVzLgoKICAgIFJldHJ5IHRvIHNlbmQgTkZTIHBhY2tldCBiZWZvcmUgcmVhY2hpbmcgdGltZW91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIaXJvc2hpIEl0byA8aXRvQG1sYi5jby5qcD4KCmNvbW1pdCA4OGY3MjUyN2Y1Yjg5YzA5MDVhZDVjMzZjYzJlZjhkMjlkZDZiYmYwCkF1dGhvcjogSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAc2lnMjEubmV0PgpEYXRlOglUdWUgSmFuIDI5IDAwOjExOjI1IDIwMDggKzAxMDAKCiAgICBBZGQgZGVwZW5kZW5jaWVzIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyB3aXRoIHBhcmFsbGVsIG1ha2UuCgogICAgU2lnbmVkLW9mZi1ieTogSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAc2lnMjEubmV0PgoKY29tbWl0IDZkMWI2ZjlmODljODE1ZWFjYTQ0YWNmZjhlNzNlY2U3MTgxZjYxYjYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBKYW4gMjggMDU6NDY6MDEgMjAwOCAtMDUwMAoKICAgIE1hcmsgYm9hcmRfaW5pdF9bZnJdIGFzIG5vcmV0dXJuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDE2MWIyYWY0ZDdiNDhmZDYwMmNlMzMzYzM1NWE0ZGYwMzM3ODkyYmIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBKYW4gMjggMDU6Mjg6NTAgMjAwOCAtMDUwMAoKICAgIE9ubHkgdXNlIFRFWFRfQkFTRSBpZiBkZWZpbmVkIGJ5IHRoZSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxYjc2OTg4MTc1MDAzMGYxMDc0MzgwOGI5ZDYwMTNlMTFmNTU5MzUwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEphbiAyNSAwNzo1NDo0NyAyMDA4ICswMTAwCgogICAgRml4IHJlbWFpbmluZyBDT05GSUdfQ09NTUFORFMKCiAgICB1cGRhdGUgY29tbWVudHMKICAgIEZpeCBjb2Rpbmcgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBjOWQ0MmU2YjBiODNkNTA3MzM1YTI5MWUzZWE5OTI0MDAzOGY0YjkKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglNb24gSmFuIDIxIDE2OjQ2OjAwIDIwMDggKzAxMDAKCiAgICBBZGQgKn4gdG8gLmdpdGlnbm9yZQoKICAgIE9uZSBzaG91bGQgbmV2ZXIgYWRkIGEgYmFja3VwIGZpbGUgZW5kaW5nIGluIHdpdGggfiB0byB0aGUgZ2l0IHJlcG9zaXRvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAzY2ZiMGM1MWIyYmI1ZWRlNTRlY2E4NWFjZTViMWJhMTJiZTMxNGIwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMDowMjoxMCAyMDA4IC0wNjAwCgogICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbmVzIGZvciBBUlJBWV9TSVpFCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjNzdjZTQ3NGIxYzU3YjEzZTlkMzZkOTgzMGYxNDc5NjZjMTQzNjk0CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJTW9uIEphbiAxNCAyMjowODoxNCAyMDA4ICswMTAwCgogICAgRml4IGluY29ycmVjdCBhZGRyZXNzIHRlc3QgaW4gQVQ5MUZfRGF0YWZsYXNoU2VsZWN0KCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBkOWFkMTE1YmJmN2JiMDg0MmRlN2RiZDI1MDJiN2U0MzBmODNjYzNkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAxMyAxNTowOTo1OCAyMDA4IC0wNjAwCgogICAgRml4IGJ1aWxkaW5nIG9mIGZkdF9zdXBwb3J0LmMgaWYgREVCVUcgc2V0CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjY2Q2ZTE0NjRlNTM5NmJjMWE5YWViZjcwNzdkZGY0MzQyZWFmZTAzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAxMiAxNDo1MzoyOCAyMDA4IC0wNjAwCgogICAgQWRkIENGR19NUEM4Nnh4X0REUl9BRERSIGFuZCBDRkdfTVBDODZ4eF9ERFIyX0FERFIgc3ltYm9scwoKICAgIFRoZXNlIHJlcGxhY2UgZGlyZWN0IHN0cnVjdHVyZSByZWZlcmVuY2VzIGZvciBJTU1SIHNlY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzYyNzc2YmU4ZGNhNDA5N2NhMDNkNGY5NDE1ZjA4ZDQ4ODdiNDVkMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTIgMDA6NDU6MDYgMjAwOCArMDEwMAoKICAgIEdldCByaWQgb2YgIiN1bmRlZiBERUJVRyIgZnJvbSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3M2JmMWUyZGU3ODYyYmNkYmQ1YTlmOTkzYjNlODRiNjdjOGVhOWM4CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNzowOTo0MSAyMDA4IC0wNjAwCgogICAgUmVtb3ZlICN1bmRlZiBERUJVRyBmcm9tIE1QQzgzeHggYm9hcmQgaGVhZGVyIGZpbGVzCgogICAgUmVtb3ZlIHRoZSAiI3VuZGVmIERFQlVHIiBsaW5lIGZyb20gYWxsIEZyZWVzY2FsZSA4M3h4IGJvYXJkIGhlYWRlciBmaWxlcy4KICAgIFRoZSBpbmNsdXNpb24gb2YgdGhpcyBsaW5lIG1ha2VzIGl0IGltcG9zc2libGUgdG8gZW5hYmxlIGRlYnVnIGNvZGUgaW4KICAgIG90aGVyIHNvdXJjZSBmaWxlcywgYmVjYXVzZSAiI2RlZmluZSBERUJVRyIgdHlwaWNhbGx5IG5lZWRzIHRvIGJlIGRlZmluZWQKICAgIGJlZm9yZSBhbnkgaGVhZGVyIGZpbGVzIGFyZSBpbmNsdWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY5MDE4Y2UyZTA4NmU5Y2FmMzViOTE0ZDY3NWI4MmJjNDg4OGYwNzcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDA4OjI1OjQ1IDIwMDggLTA2MDAKCiAgICBRRTogTW92ZSBGRFQgc3VwcG9ydCBpbnRvIGEgY29tbW9uIGZpbGUKCiAgICBNb3ZlIHRoZSBmbGF0IGRldmljZSB0cmVlIHNldHVwIGZvciBRRSByZWxhdGVkIGRldmljZXMgaW50bwogICAgYSBjb21tb24gZmlsZSBzaGFyZWQgYmV0d2VlbiA4M3h4ICYgODV4eCBwbGF0Zm9ybXMgdGhhdCBoYXZlIFFFJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1Y2Y3NDZjMzAzNzEwMzI5ZjgwNDBkOWM2MmVlMzU0MzEzZTNlOTFmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1OTowOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUga2VybmVsIGRhdGEgZmluZCBjb2RlIHRvIGdldF9rZXJuZWwoKSByb3V0aW5lCgogICAgVmVyaWZpY2F0aW9uIG9mIHRoZSBrZXJuZWwgaW1hZ2UgKGluIG9sZCBmb3JtYXQpIGFuZCBmaW5kaW5nIGtlcm5lbAogICAgZGF0YSBpcyBtb3ZlZCB0byBhIGRlZGljYXRlZCByb3V0aW5lLiBUaGUgcm91dGluZSB3aWxsIGFsc28gaG9sZAogICAgc3VwcG9ydCBmb3IsIHRvIGJlIGFkZGVkLCBuZXcgaW1hZ2UgZm9ybWF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgN2IzMjU0NTRmZDIzMWQ0MjczZGUzZmUzNzM4NTBmNzc3ZmIwODZiZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6NTg6MjAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBDbGVhbnVwIEZEVCBoYW5kbGluZyBpbiBQUEMgZG9fYm9vdF9saW51eCgpCgogICAgTW92ZSBGRFQgYmxvYiBmaW5kaW5nIGFuZCByZWxvY2F0aW9uIHRvIGEgZGVkaWNhdGVkCiAgICBnZXRfZmR0KCkgcm91dGluZS4gSXQgaW5jcmVhc2VzIGNvZGUgcmVhZGFiaWxpdHkgYW5kCiAgICB3aWxsIG1ha2UgYWRkaW5nIHN1cHBvcnQgZm9yIG5ldyB1SW1hZ2UgZm9ybWF0IGVhc2llci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGI2YjBmZTY0NjBiNzA2M2FjNjBiOWEzNTMxZWYyMTBhZWRiMzE0NTEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjU4OjEzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ2xlYW51cCBkb19ib3RtX2xpbnV4KCkgYm9vdCBhbGxvY2F0aW9ucwoKICAgIFRoaXMgcGF0Y2ggbW92ZXMgY29tbW9uIHByZS1ib290IGFsbG9jYXRpb24gc3RlcHMgc2hhcmVkIGJldHdlZW4gUFBDCiAgICBhbmQgTTY4SyB0byBhIGhlbHBlciByb3V0aW5lczoKCiAgICBjb21tb246CiAgICAtIGdldF9ib290X3NwX2xpbWl0KCkKICAgIC0gZ2V0X2Jvb3RfY21saW5lKCkKICAgIC0gZ2V0X2Jvb3Rfa2JkKCkKCiAgICBwbGF0Zm9ybToKICAgIC0gc2V0X2Nsb2Nrc19pbl9taHooKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgY2VhZWQyYjFlNTRlYmYxNGQ2MDBlMDJmZWYwMTZjOGRmNWNjNGQ0MApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6NTc6MTcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIHJhbWRpc2sgbG9hZGluZyB0byBhIGNvbW1vbiByb3V0aW5lCgogICAgUmFtZGlzayBsb2FkaW5nIGNvZGUsIGluY2x1ZGluZyBpbml0cmRfaGlnaCB2YXJpYWJsZSBoYW5kbGluZywKICAgIHdhcyBkdXBsaWNhdGVkIGZvciBQUEMgYW5kIE02OEsgcGxhdGZvcm1zLiBUaGlzIHBhdGNoIGNyZWF0ZXMKICAgIGNvbW1vbiBoZWxwZXIgcm91dGluZSB0aGF0IGlzIGJlaW5nIGNhbGxlZCBmcm9tIGJvdGggcGxhdGZvcm0KICAgIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2OGQ0ZjA1ZTZiMjM4M2E0NDJmYjcxZjgwZjJhOWZiYjNkOGRlZjY4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1NTo1MyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbW92ZWQgZGVhZCByYW1kaXNrIGNvZGUgb24gbWljcm9ibGF6ZSBhcmNoaXRlY3R1cmVzCgogICAgTWljcm9ibGF6ZSBkb19ib290bV9saW51eCgpIGluY2x1ZGVzIHJhbWRpc2sgcHJvY2Vzc2luZyBjb2RlIGJ1dAogICAgdGhlIHJhbWRpc2sgZG9lcyBub3QgZ2V0IHVzZWQgYW55d2hlcmUgbGF0ZXIgb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA1YWQwM2ViMzg1NGMxNjI2ODQyMjJhNzE4YjQ0YzA3MTZlYTBkYjAzCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1NTozOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZhY3RvciBvdXQgY29tbW9uIGltYWdlX2dldF9yYW1kaXNrKCkgcm91dGluZQoKICAgIEFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkb19ib290bV9saW51eCgpIHJvdXRpbmVzIHNoYXJlIGNvbW1vbgogICAgcmFtZGlzayBpbWFnZSBwcm9jZXNzaW5nIGNvZGUuIE1vdmUgdGhpcyBjb2RlIHRvIGEgY29tbW9uCiAgICBoZWxwZXIgcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQzYzVlYjZkZDFmNGVkM2MzMzg4Mzg2Y2YxZDFiZjgyYWE1MWQ1NmIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA4IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW92ZSBGRFQgZXJyb3IgcHJpbnRpbmcgdG8gY29tbW9uIGZkdF9lcnJvcigpIHJvdXRpbmUKCiAgICBGRFQgZXJyb3IgaGFuZGxpbmcgaW4gUFBDIGRvX2Jvb3RtX2xpbnV4KCkgc2hhcmVzIHRoZSBzYW1lIG1lc3NhZ2UgZm9ybWF0LgogICAgVGhpcyBwYXRjaCBtb3ZlcyBlcnJvciBtZXNzYWdlIHByaW50aW5nIHRvIGEgaGVscGVyIGZkdF9lcnJvcigpIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDQyYjczZThlZTAwZDQ4MDA0NzkxZGVhNjRiODA5M2ZiOTc0YzU3ZTEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRmFjdG9yIG91dCBjb21tb24gcm91dGluZXMgZm9yIGdldHRpbmcgb3MvYXJjaC90eXBlL2NvbXAgbmFtZXMKCiAgICBNb3ZlIG51bWVyaWMtaWQgdG8gbmFtZSB0cmFuc2xhdGlvbiBmb3IgaW1hZ2Ugb3MvYXJjaC90eXBlL2NvbXAgaGVhZGVyCiAgICBmaWVsZHMgdG8gYSBoZWxwZXIgcm91dGluZXM6IGltYWdlX2dldF9vc19uYW1lKCksIGltYWdlX2dldF9hcmNoX25hbWUoKSwKICAgIGltYWdlX2dldF90eXBlX25hbWUoKSwgaW1hZ2VfZ2V0X2NvbXBfbmFtZSgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZTk5YzI2Njk0YTM4NDIyMWQzMzZmNjQ0OGMwNmE1NzQ3OWMwYmFhNApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW1vdmUgc3RhbmRhbG9uZSBhcHBsaWNhdGlvbnMgaGFuZGxpbmcgZnJvbSBib29vdG0KCiAgICBTdGFuZGFsb25lIGFwcGxpY2F0aW9ucyBhcmUgc3VwcG9zZWQgdG8gYmUgcnVuIHVzaW5nIHRoZSAiZ28iIGNvbW1hbmQuCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc3RhbmRhbG9uZSBpbWFnZXMgaGFuZGxpbmcgZnJvbSB0aGUgZG9fYm9vdG0oKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDRhMmFkNWZmNjQwMDY5ODQzM2RkNzIwM2QzNDkzOWMzYzljYzliZmYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVtb3ZlIE9GX0ZMQVRfVFJFRSBzdXBwb3J0IGZyb20gUFBDIGJvb3RtIGNvZGUKCiAgICBTdXBwb3J0IGZvciBPRl9GTEFUX1RSRUUgaXMgdG8gYmUgb2Jzb2xldGVkIGluIHRoZSBuZWFyIGZ1dHVyZSwKICAgIHJlbW92ZSByZWxhdGVkIGNvZGUgZnJvbSB0aGUgYm9vdG0gcm91dGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4Mjg1MGYzZDMyYTI2NjE4NjhlYzY4NzZiZWQ3YTIyYzU1Y2VmNzE4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFVzZSBpbWFnZSBBUEkgaW4gU0ggZG9fYm9vdG1fbGludXgoKSByb3V0aW5lCgogICAgSW50cm9kdWNlIGltYWdlIGhhbmRsaW5nIEFQSSBmb3IgbGF0ZWx5IGFkZGVkIEhpdGFjaGkgU0ggYXJjaGl0ZWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNGE5OTVlZGVjMWFjMTYzZDkzMjZkMTQzZmZlMmI0N2U3NTQzNDA3ZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW5hbWUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGJvb3RtIGNvZGUgZmlsZXMKCiAgICBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZG9fYm9vdG1fbGludXgoKSBhbmQgb3RoZXIgYm9vdG0gaGVscGVyIHJvdXRpbmVzIGlzCiAgICBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgY29kZS4gQXMgc3VjaCBpdCByZXNpZGVzIGluIGxpYl88YXJjaD4gZGlyZWN0b3JpZXMKICAgIGluIGZpbGVzIG5hbWVkIDxhcmNoPl9saW51eC5jCgogICAgVGhpcyBwYXRjaCByZW5hbWVzIHRob3NlIGZpbGVzIHRvIGEgbW9yZSBjbGVhciBhbmQgYWNjdXJhdGUKICAgIGxpYl88YXJjaD4vYm9vdG0uYyBmb3JtLgoKICAgIExpc3Qgb2YgdGhlIHJlbmFtZWQgZmlsZXM6CiAgICAgICBsaWJfYXJtL2FybWxpbnV4LmMgLT4gbGliX2FybS9ib290bS5jCiAgICAgICBsaWJfYXZyMzIvYXZyMzJfbGludXguYyAtPiBsaWJfYXZyMzIvYm9vdG0uYwogICAgICAgbGliX2JsYWNrZmluL2JmNTMzX2xpbnV4LmMgLT4gbGliX2JsYWNrZmluL2Jvb3RtLmMKICAgICAgIGxpYl9pMzg2L2kzODZfbGludXguYyAtPiBsaWJfaTM4Ni9ib290bS5jCiAgICAgICBsaWJfbTY4ay9tNjhrX2xpbnV4LmMgLT4gbGliX202OGsvYm9vdG0uYwogICAgICAgbGliX21pY3JvYmxhemUvbWljcm9ibGF6ZV9saW51eC5jIC0+IGxpYl9taWNyb2JsYXplL2Jvb3RtLmMKICAgICAgIGxpYl9taXBzL21pcHNfbGludXguYyAtPiBsaWJfbWlwcy9ib290bS5jCiAgICAgICBsaWJfbmlvcy9uaW9zX2xpbnV4LmMgLT4gbGliX25pb3MvYm9vdG0uYwogICAgICAgbGliX25pb3MyL25pb3NfbGludXguYyAtPiBsaWJfbmlvczIvYm9vdG0uYwogICAgICAgbGliX3BwYy9wcGNfbGludXguYyAtPiBsaWJfcHBjL2Jvb3RtLmMKICAgICAgIGxpYl9zaC9zaF9saW51eC5jIC0+IGxpYl9zaC9ib290bS5jCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3NTgyNDM4YzI4NWJmMGNlZjgyOTA5ZDBmMjMyZGU2NGVjNTY3YThhCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJldHVybiBlcnJvciBvbiBpbWFnZSBtb3ZlL3VuY29tcHJlc3Mgb3ZlcndyaXRlcwoKICAgIENoZWNrIGZvciBvdmVyd3JpdGVzIGR1cmluZyBpbWFnZSBtb3ZlL3VuY29tcHJlc3MsIHJldHVybiB3aXRoIGVycm9yCiAgICB3aGVuIHRoZSBvcmlnaW5hbCBpbWFnZSBnZXRzIGNvcnJ1cHRlZC4gUmVwb3J0IGNsZWFyIG1lc3NhZ2UgdG8gdGhlIHVzZXIKICAgIGFuZCBwcmV2ZW50IGZ1cnRoZXIgdHJvdWJsZXMgd2hlbiBwb2ludGVyIHRvIHRoZSBjb3JydXB0ZWQgaW1hZ2VzIGlzIHBhc3NlZAogICAgdG8gZG9fYm9vdG1fbGludXggcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGYxM2U3YjJlOTkzYzYxZmVkMWY2MDc5NjI1MDFlMDUxOTQwZDZlODAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTI6MTcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBDbGVhbnVwIGltYWdlIGhlYWRlciBwb2ludGVyIHVzZSBpbiBib290bSBjb2RlCgogICAgLSB1c2Ugc2luZ2xlIGltYWdlIGhlYWRlciBwb2ludGVyIGluc3RlYWQgb2YgYSBzZXQgb2YgYXV4aWxsaWFyeSB2YXJpYWJsZXMuCiAgICAtIGFkZCBtdWx0aSBjb21wb25lbnQgaW1hZ2UgaGVscGVyIHJvdXRpbmVzOiBnZXQgY29tcG9uZW50IHNpemUvZGF0YSBhZGRyZXNzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxZWUxMTgwYjZlOTNlNTZkMDI4MmFjOGQ5NDNlNDQ4ZTlkMGVhYjIwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjE3OjEwIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ2xlYW51cCBjbWRfYm9vdG0uYwoKICAgIC0gc29ydCBhbmQgY2xlYW51cCBoZWFkZXJzLCBkZWNsYXJhdGlvbnMsIGV0Yy4KICAgIC0gZ3JvdXAgcmVsYXRlZCByb3V0aW5lcwogICAgLSBjbGVhbnVwIGluZGVudGF0aW9uLCB3aGl0ZSBzcGFjZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGFmMTNjZGJjMDFlYWY4ODg4MDk3OGJmYjRmNjAzZTAxMjgxOGJhMjQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDUgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbWVtbW92ZV93ZCgpIGNvbW1vbiByb3V0aW5lCgogICAgTW92ZSBjb21tb24sIHdhdGNoZG9nIHNlbnNpYmxlIG1lbW1vdmUgY29kZSB0byBhIGhlbHBlciBtZW1tbW92ZV93ZCgpIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5NThmYzQ4YWJkZGVhYjUxM2VhNDg0N2UzNGYyMmEyZTlmZTY3ZmUxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQ0IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IEZEVCBoZWFkZXIgdmVyaWZpY2F0aW9uIGluIFBQQyBkb19ib290X2xpbnV4KCkgcm91dGluZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMTUxNTg5NzFmNDkyNTVjY2VmNTRmMDk3OWE5NDJjZmQzZGUyYWU1MgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0NCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCB1SW1hZ2UgaGVhZGVyIHBvaW50ZXIgdXNlIGluIGkzODYgZG9fYm9vdG1fbGludXgoKQoKICAgIFVzZSBpbWFnZSBoZWFkZXIgY29weSBpbnN0ZWFkIG9mIGEgKHBvc3NpYmx5IGNvcnJ1cHRlZCkgcG9pbnRlciB0bwogICAgYSBpbml0aWFsIGltYWdlIGxvY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjYxZGNmNDYyNGIyNWYzYzU1MWVmY2Y4NjM0ZTkxOTRmYWJiYTljMwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0NCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbW92ZSBJMzg2IHVJbWFnZSBmYWtlX2hlYWRlcigpIHJvdXRpbmUKCiAgICBJMzg2IHRhcmdldHMgYXJlIG5vdCB1c2luZyBhIHVJbWFnZSBmb3JtYXQsIGluc3RlYWQgZmFrZSBoZWFkZXIKICAgIGlzIGFkZGVkIHRvIHJhbSBpbWFnZSBiZWZvcmUgaXQgaXMgZnVydGhlciBwcm9jZXNzZWQgYnkgYm9vdG0uCgogICAgUmVtb3ZlIHRoaXMgZml4dXAgYW5kIGZvcmNlIHByb3BlciB1SW1hZ2UgdXNlIGZvciBJMzg2LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNTU5MzE2ZmFmN2VhZTA2MTRjOTFkNzdmNTA5YjU3ZDZjNGMwOTFiYQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0NCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUgQ0hVTktTWiBkZWZpbml0aW9uIHRvIGltYWdlLmgKCiAgICBDSFVOS1NaIGRlZmluZWQgZm9yIFBQQyBhbmQgTTY4SyBpcyBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgb2YgNjRLLAogICAgbW92ZSB0aGlzIGRlZmluaXRpb24gdG8gYSBjb21tb24gaGVhZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMzIxMzU5ZjIwODIzZTBiOGM1YWQzOGI2NGQwMDdhNmM0OGNkYTE2ZQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0MyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUgZ3VuemlwKCkgY29tbW9uIGNvZGUgdG8gY29tbW9uL2d1bnppcC5jCgogICAgTW92ZSBndW56aXAoKSwgemFsbG9jKCkgYW5kIHpmcmVlKCkgdG8gYSBzZXBhcmF0ZSBmaWxlLgogICAgU2hhcmUgemFsbG9jKCkgYW5kIHpmcmVlKCkgd2l0aCBjcmFtZnMgdW5jb21wcmVzcyByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZDQ1ZDVhMThiNmIzNjY4OGYyMzY1NjIzZjlkNTUwNTY2YzY2NGI1YgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0MyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENsZWFudXAgT0YvRkRUICNpZi8jZWxpZi8jZW5kaWYgdXNlIGluIGRvX2Jvb3RtX2xpbnV4KCkKCiAgICBNYWtlIENPTkZJR19PRl9MSUJGRFQgYW5kIENPTkZJR19PRl9GTEFUX1RSRUUgdXNlIG1vcmUKICAgIHJlYWRhYmxlIGluIFBQQyB2YXJpYW50IG9mIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDVkM2NjNTVlY2JhZTI3N2UwOGY1ZmY3NzFkYTIwYjFkNmEzNmVjMzYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIFBQQyBkb19ib290bV9saW51eCgpIHRvIGxpYl9wcGMvcHBjX2xpbnV4LmMKCiAgICBQUEMgaW1wbGVtZW50YXRpb24gb2YgZG9fYm9vdG1fbGludXgoKSByb3V0aW5lIGlzIG1vdmVkIHRvCiAgICBhIGRlZGljYXRlZCBmaWxlIGxpYl9wcGMvcHBjX2xpbnV4LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGI5N2EyYTBhMjFmMjc5ZDY2ZGU4YTliZGJmZTIxOTIwOTY4YmNiMWMKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTQ6MDkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBEZWZpbmUgYSBBUEkgZm9yIGltYWdlIGhhbmRsaW5nIG9wZXJhdGlvbnMKCiAgICAtIEFkZCBpbmxpbmUgaGVscGVyIG1hY3JvcyBmb3IgYmFzaWMgaGVhZGVyIHByb2Nlc3NpbmcKICAgIC0gTW92ZSBjb21tb24gbm9uIGlubGluZSBjb2RlIGNvbW1vbi9pbWFnZS5jCiAgICAtIFJlcGxhY2UgZGlyZWN0IGhlYWRlciBhY2Nlc3Mgd2l0aCB0aGUgQVBJIHJvdXRpbmVzCiAgICAtIFJlbmFtZSBJSF9DUFVfKiB0byBJSF9BUkNIXyoKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGVkMjliYzRlODE0MmI0NmI2MjZmNjc1MjQyMDdiMzZlNDNkOWFhZDYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjE5OjU4IDIwMDggKzAxMDAKCiAgICBBZGQgbWlzc2luZyBjbWRfeGltZy5vIHRvIGNvbW1vbi9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMzdlM2M2MmZhMDdhODIzZTc1NjljODcyZTNhOTM5NWQyMjdlZDhlMwpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gSmFuIDI4IDEwOjE1OjAyIDIwMDggKzAxMDAKCiAgICBBRFM1MTIxZTogRERSMiBpbml0L3RpbWluZyB1cGRhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhYzkxNTI4MzBkN2ZkZWJhY2U4YTI2MGI3NzM3ZWYyODcwYzIxY2EwCkF1dGhvcjogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzAgMTM6MzY6NTcgMjAwOCAtMDcwMAoKICAgIERldmljZSB0cmVlIHVwZGF0ZXMKCiAgICBDaGFuZ2VzIHRvIG1hdGNoIDUxMjEgZGV2aWNlIHRyZWUgZ29pbmcgbWFpbmxpbmUgaW4gMi42LjI1LgoKICAgIENoYW5nZSBPRl9TT0MgZnJvbSAic29jNTEyMSIgdG8gcGxhaW4gInNvYyIuCiAgICBSZW1vdmUgdW5uZWVkZWQgInJlZi1mcmVxdWVuY3kiIGZpeHVwcy4KICAgIFJlbW92ZSAiYWRkcmVzcyIgZW5ldGFkZHIgZml4dXAuCgogICAgQWRkIGJ1cy1mcmVxdWVuY3kgZml4dXAgZm9yIG9sZCBPRl9TT0Mgc28gb2xkCiAgICBrZXJuZWxzIHdpdGggb2xkIGRldmljZSB0cmVlcyB3aWxsIHdvcmsgd2l0aCBuZXcKICAgIHUtYm9vdCB3aXRoIDY2TUh6IElQUyBjbG9jawoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRlNTVkMThkZjNmZjJlYTYxNDYyNGU3NDc5M2RlN2M0MzUyMGUwZTcKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMCAxMzozNjo1NiAyMDA4IC0wNzAwCgogICAgQ2hhbmdlIElQUyBmcmVxIHRvIDY2TUh6CgogICAgUmVjb21tZW5kZWQgZnJlcXVlbmN5IGlzIDY2TUh6CiAgICBDaGFuZ2UgZGl2aWRlciBmcm9tIDQgdG8gMy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZDljYjYyZjlkOGI3OGQ2YzNhZjVkMWU5YjVhM2Q2OGEzZDczOTc0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIEphbiAxNCAyMjozODo1NSAyMDA4ICswMTAwCgogICAgeHNlbmdpbmU6IHJlbmFtZSBib2FyZF9wb3N0X2luaXQgdG8gYm9hcmRfbGF0ZV9pbml0CgogICAgbWlzc2luZyBtaWdyYXRpb24gZnJvbSAiQ2xlYW51cCBvZiBzb21lIGluaXQgZnVuY3Rpb25zIgogICAgaW4gYzgzN2RjYjFhMzE2NzQ1MDkyNTY3YmZlNGZiMjY2ZDA5NDE4ODRmZgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOGRhZmE4NzQ3NmIwZDcxNzBlMjE5YzJmNWUzODQyYzgzM2E5MTgwNwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglTYXQgSmFuIDEyIDIzOjM1OjMzIDIwMDggLTA1MDAKCiAgICBBZGQgYXR0cmlidXRlIFBPU1RfUFJFUkVMIHRvIEVDQyBtZW1vcnkgUE9TVAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGVkMmNmNTQ4Y2FjODBjZDNjZjgxNTRkY2ZlN2IyNjg1YmVmNDU5MzgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDA4OjI1OjQ1IDIwMDggLTA2MDAKCiAgICBRRTogTW92ZSBGRFQgc3VwcG9ydCBpbnRvIGEgY29tbW9uIGZpbGUKCiAgICBNb3ZlIHRoZSBmbGF0IGRldmljZSB0cmVlIHNldHVwIGZvciBRRSByZWxhdGVkIGRldmljZXMgaW50bwogICAgYSBjb21tb24gZmlsZSBzaGFyZWQgYmV0d2VlbiA4M3h4ICYgODV4eCBwbGF0Zm9ybXMgdGhhdCBoYXZlIFFFJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkMzhkYTUzNzk0M2NkMzYzNTZiOWQzZDlkOWI2MDUzMzU1NGI4MWQ4CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTc6MjA6MTQgMjAwOCArMDEwMAoKICAgIEFWUjMyOiBNYWtlIFNEUkFNIHJlZnJlc2ggcmF0ZSBjb25maWd1cmFibGUKCiAgICBUaGUgZXhpc3RpbmcgY29kZSBhc3N1bWVzIHRoZSBTRFJBTSByb3cgcmVmcmVzaCBwZXJpb2Qgc2hvdWxkIGFsd2F5cwogICAgYmUgMTUuNiB1cy4gVGhpcyBpcyBub3QgYWx3YXlzIHRydWUsIGFuZCBpbmRlZWQgb24gdGhlIEFUTkdXMTAwLCB0aGUKICAgIHJlZnJlc2ggcmF0ZSBzaG91bGQgcmVhbGx5IGJlIDcuODEgdXMuCgogICAgQWRkIGEgcmVmcmVzaF9wZXJpb2QgbWVtYmVyIHRvIHN0cnVjdCBzZHJhbV9pbmZvIGFuZCBpbml0aWFsaXplIGl0CiAgICBwcm9wZXJseSBmb3IgYm90aCBBVFNUSzEwMDAgYW5kIEFUTkdXMTAwLiBPdXQtb2YtdHJlZSBib2FyZHMgd2lsbAogICAgcGFuaWMoKSB1bnRpbCB0aGUgcmVmcmVzaF9wZXJpb2QgbWVtYmVyIGlzIHVwZGF0ZWQgcHJvcGVybHkuCgogICAgQmlnIHRoYW5rcyB0byBHZXJoYXJkIEJlcmdob2ZlciBmb3IgcG9pbnRpbmcgb3V0IHRoaXMgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNjExNTFjY2NiNjYwY2RiMDZhMDdmYjI4M2RlNjA4OTkxM2Q3YmRlMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgQXByIDE5IDEwOjEwOjExIDIwMDcgKzAyMDAKCiAgICBBVFNUSzEwMDA6IEZpeCBwb3RlbnRpYWwgZmxhc2ggcHJvZ3JhbW1pbmcgYnVnCgogICAgVGhlIChub3cgb2Jzb2xldGUpIGF0bmd3MTAwIGZsYXNoIHByb2dyYW1taW5nIGNvZGUgd2FzIGhhdmluZyBwcm9ibGVtcwogICAgcHJvZ3JhbW1pbmcgdGhlIG9uYm9hcmQgYXQ0OWJ2NjQyIGNoaXAuIFRoZSBhdHN0azEwMDAgZmxhc2gKICAgIHByb2dyYW1taW5nIGNvZGUgbWF5IGhhdmUgdGhlIHNhbWUgYnVnLCBzbyBpbXBvcnQgZml4IGZvciB0aGlzIHByb2JsZW0KICAgIGZyb20gdGhlIEFWUjMyIExpbnV4IEJTUC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiMmUxZDViNjQ0NjlmMTBkZmNjZTI3ZjdiMGFmZDkzNTY4NGE4ZTExCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBOb3YgMjIgMTc6MDQ6MTMgMjAwNyArMDEwMAoKICAgIEFUU1RLMTAwNDogRml4IGNvbW1lbnQgYWJvdXQgZGVmYXVsdCBsb2FkIGFkZHJlc3MKCiAgICBUaGUgZGVmYXVsdCBsb2FkIGFkZHJlc3MgaXMgU0RSQU0gKyAyTUIsIG5vdCBTRFJBTSArIDRNQi4gVGhlIGxhdHRlcgogICAgd291bGRuJ3QgaGF2ZSB3b3JrZWQgYW55d2F5IHNpbmNlIHRoZSBib2FyZCBjYW4gb25seSBhY2Nlc3MgNE1CIG9mCiAgICBTRFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA4MjY5YWI1MzYwOGQ4ZGIyYWEwNjk2OWMzMzdhYjBiMDUxODIxMWU1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBOb3YgMjIgMTc6MDE6MjQgMjAwNyArMDEwMAoKICAgIEFUU1RLMTAwMjogVXNlIFNEUkFNICsgNE1CIGFzIGRlZmF1bHQgbG9hZCBhZGRyZXNzCgogICAgTWFueSBwZW9wbGUgcnVuIGludG8gcHJvYmxlbXMgd2hlbiB0aGV5IGNvbXBpbGUgYSBiaWcga2VybmVsIGFuZCBsb2FkCiAgICB0aGUgdUltYWdlIGF0IHRoZSBkZWZhdWx0IFNEUkFNICsgMk1CIGFkZHJlc3MgYXMgdGhlIGtlcm5lbCB3aWxsCiAgICBvdmVyd3JpdGUgdGhlIHVJbWFnZSBhcyBpdCBpcyBiZWluZyB1bnBhY2tlZC4gSW5jcmVhc2UgdGhlIGRlZmF1bHQKICAgIGxvYWQgYWRkcmVzcyBzbyB0aGF0IHdlIGNhbiBsb2FkIGEgNE1CIGtlcm5lbCBpbWFnZSB3aXRob3V0IGFueQogICAgcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMmJjYWNjMmQ4NDFiNzdmM2QyZDM5MTBkYjcyMjAwMzc0MjcyN2U5ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDIyIDE2OjUxOjM5IDIwMDcgKzAxMDAKCiAgICBBVE5HVzEwMDogRml4IGRlZmF1bHQgbXRlc3QgcmFuZ2UKCiAgICBMZXQgbXRlc3QgY292ZXIgdGhlIHdob2xlIFNEUkFNIGV4Y2VwdCB0aGUgbGFzdCBtZWdhYnl0ZSwgd2hpY2ggaXMKICAgIHdoZXJlIHUtYm9vdCBsaXZlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5ODU2YTZiMzEwNGUwYmMyMTBiMDg2OGRmZTY5MWM1MmJmMDNjMjI3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgSmFuIDIyIDE1OjMxOjU2IDIwMDggKzA5MDAKCiAgICBzaDogRml4IHJlZ2lzdGVyIGFkZHJlc3Mgb2YgU0g3NzIyLgoKICAgIFRoZSBhZGRyZXNzIG9mIFNINzcyMiBpcyB3cm9uZyBieSBvbGQgZG9jdW1lbnQuCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMzA5NDJiMThiNjZmMzVmMmNlZWRhYjM5YWYxMGU5ZWNjYWE5NDNjYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICBuZXcgY29tbWFuZCBmb3IgZGlzcGxheWluZyBzdHJpbmdzIGF0IHNwZWNpZmllZCBtZW1vcnkgbG9jYXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI1OGQ4YjQ4ZTI1YjBjODY2ZDE2N2NjNTc3ZjExOGY1MjhjZDllMGEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NyAyMDA4IC0wNTAwCgogICAgcmV3cml0ZS9jbGVhbnVwIEJsYWNrZmluIFJUQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOTRhOTFlMjQ4YjcxYzNmZjk1MWZjMjdjZmY2OTA5ZTgyY2EzN2QxNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICBnZW5lcmF0ZSB1LWJvb3QubGRyIGZvciBCbGFja2ZpbiB0YXJnZXRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI3NzlmN2E1OTUzMDQzNjA0MGYxNTdmNzg0MWRiN2FiNzk2NTQyZGYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NyAyMDA4IC0wNTAwCgogICAgc2NydWIgdW51c2VkIHN5bWJvbHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgY2MyOTc3YWNjM2JiYmI3ODUwZjE2NjQ1ZGQxMDgxZjk1MzM1ODY4ZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICBtb3ZlIEJsYWNrZmluIGNwdSBvYmplY3QgbGlzdCB0byByZXNwZWN0aXZlIGNwdSBkaXJlY3RvcmllcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkMGIwMWEyNDZkMGEzNTFiYzdkY2UxZDBjOWNmNmFlYmRmNmQ3NTA1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTcgMjAwOCAtMDUwMAoKICAgIGludGVyZmFjZSB0byBCbGFja2ZpbiBvbi1jaGlwIE9uZS1UaW1lLVByb2dyYW1tYWJsZSBtZW1vcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNGM3MjdjNzdlNDM4NzJkM2ExZDFmNzZhOTQ5ZmNiM2YyNmEzODc4OApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU2IDIwMDggLTA1MDAKCiAgICBhZGQgc3VwcG9ydCBmb3IgbWVtb3J5IGNvbW1hbmRzIHdpdGggQmxhY2tmaW4gTDEgaW5zdHJ1Y3Rpb24gbWVtb3J5CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDZiOTA5N2U1ZTc0OTBhYTdiODI4YzZmMWExYzdhMGU4NzVkZjg0NjQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NiAyMDA4IC0wNTAwCgogICAgdXNlIEMgY29kZSByYXRoZXIgdGhhbiBpbmxpbmUgYXNzZW1ibHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOTdjMjZlMDA2ZDJmYTZkNGUxNTYwOTMzZWU2ZjM4NWQ4Yjg5MDhiOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU2IDIwMDggLTA1MDAKCiAgICBhZGQgQmxhY2tmaW4tc3BlY2lmaWMgcmVnaW5mbyBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDA4NThiODM1ZTdlYTUwMWVhMDg0ZDM0Y2VmNzU5MzJmMDk4MzQyYmIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NSAyMDA4IC0wNTAwCgogICAgYWRkIHN1cHBvcnQgZm9yIEJsYWNrZmluIHN5bWJvbCBwcmVmaXhlcyB0byBleGFtcGxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4ZGM0OGQ3MWE0YmU3NTNlYTlmODQ5NTZjZDMzNjAwZGUzNWZhZDA0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTUgMjAwOCAtMDUwMAoKICAgIGFkZCBCbGFja2Zpbi1zcGVjaWZpYyBiZGluZm8gY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwMDAzNjEzZTNjN2RmM2I4NGIyY2I5MmU3OTdkNzdmNDZmMTVhNDNhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTUgMjAwOCAtMDUwMAoKICAgIG1vdmUgLWZmaXhlZC1QNSB0byBibGFja2Zpbl9jb25maWcubWsgYW5kIGRyb3AgdW51c2VkIC1EX19CTEFDS0ZJTl9fCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDYwZmE3MmQ2NTYxMGM3ZWYzM2UxZDZkYjg1ODk3OWQwNWZmMGRmNTgKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NSAyMDA4IC0wNTAwCgogICAgdW5pZnkgdGhlIEJsYWNrZmluIGJvYXJkIHRhcmdldHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZDRkNzczMDg1M2U1ZDY3NWY3NmVjNjY2ODA3ZGEzMDI4YzkxZDU5MgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU1IDIwMDggLTA1MDAKCiAgICBwdW50IEJsYWNrZmluIFZEU1AgaGVhZGVycyBhbmQgaW1wb3J0IHNhbml0aXplZC9hdXRvLWdlbmVyYXRlZCBvbmVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDZjZmNjZTY3NjcxYTM0MjUyMjlkNjYyMDMzODZmYTNjYmQwY2MzYmQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgYWx3YXlzIHB1bGwgaW4gYXNtL2JsYWNrZmluLmggZm9yIEJsYWNrZmluIHBvcnRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGJmNTM5NzRjMmRkYWU2NzhkNzY2MGYyYjVjY2ZlYjA3MzJiNmY1ZGMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgYWRkIG1pc3NpbmcgX19yYXcgdmVyc2lvbnMgb2YgQmxhY2tmaW4gcmVhZC93cml0ZSBpbyBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMjRlMDJkMGZkM2FjYzUwZTczZTFhM2NkZDU2N2YwYTc3OTQ2ZjE1ZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU0IDIwMDggLTA1MDAKCiAgICBhZGQgdGhlIGRlZmF1bHQgQmxhY2tmaW4gbG9nbyB1c2VkIGJ5IEJsYWNrZmluIGJvYXJkcyB3aXRoIHNwbGFzaCBzY3JlZW5zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDRjNThlYjU1NTIyMjBlNDI1YzhhZjZhYzhkMjgzOTI0NGEyZjU3YjEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgYWRkIHNvbWUgbW9yZSBCbGFja2ZpbiBkb2NzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDMyYTlmNWYyMTYwYTAzNGVhODdlYTY1MWIyMzNlZjdjNjM1ZTU1Y2YKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgbWFrZSBzbWM5MTExMV9lZXByb20gbWFuYWdtZW50IHNpbXBsZXIgYnkgZGVwZW5kaW5nIG9uIHRoZSBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUgcmF0aGVyIHRoYW4gYSBoYXJkY29kZWQgbGlzdCBvZiBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNDA4N2JjODhjZWJlYzc1YzQzMmE3ZmU5ZjZhZmI1NDViMDkxOTgzMQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU0IDIwMDggLTA1MDAKCiAgICBmaXggYnVpbGRpbmcgb24gQmxhY2tmaW4gYXMgdGhlIGFzc2VtYmxlciBzdXBwb3J0cyB0aGUgLnNldCBzeW50YXgsIG5vdCB0aGUgPSBzeW50YXgsIGZvciBhc3NpZ25pbmcgc3ltYm9scwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiNDUyNjRlZTg1Y2JkOTIwMjA2NDBhMzJlMDJmYjQzNGZkNTU3MTA4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTMgMjAwOCAtMDUwMAoKICAgIGFkZCBnaXRpZ25vcmVzIGZvciBCbGFja2ZpbiBwaWVjZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYTkzOTA3YzQzZjg0N2YwNzZkZDBlMzRlZTNiNjliNWU4ZTZkMGQyOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBKYW4gMTggMDE6MTQ6MDMgMjAwOCArMDEwMAoKICAgIFRGVFA6IGFkZCBob3N0IGlwIGFkZHIgc3VwcG9ydAoKICAgIGFsbG93IHRvIHVzZSBhIGRpZmZlcmVudCBzZXJ2ZXIgYXMgc2V0IGluIHNlcnZlcmlwCiAgICBhZGQgQ09ORklHX1RGVFBfRklMRV9OQU1FX01BWF9MRU4gdG8gY29uZmlndXJlIHRoZSBmaWxlIG5hbWUgbGVuZ3RoCiAgICBpZiBub3QgZGVmaW5lZCB0aGUgbWF4IGxlbmd0aCB3aWxsIGJlIGF0IDEyOAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTU2YjRiNDk0Y2Q5MmRlZjU3Nzk2OWY5Njc4Mzk1YWEyMmQzNGM5ZgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNDozNToyNiAyMDA4IC0wNjAwCgogICAgODV4eCw4Nnh4OiBEZXRlcm1pbmUgSTJDIGNsb2NrIGZyZXF1ZW5jaWVzIGFuZCBzdG9yZSBpbiBnbG9iYWxfZGF0YQoKICAgIFVwZGF0ZSBnbG9iYWxfZGF0YSB0byBkZWZpbmUgaTJjMV9jbGsgYW5kIGkyYzJfY2xrIHRvIDg1eHggYW5kIDg2eHguCgogICAgVXBkYXRlIHRoZSBnZXRfY2xvY2tzKCkgZnVuY3Rpb24gaW4gODV4eCBhbmQgODZ4eCB0byBkZXRlcm1pbmUgdGhlIEkyQwogICAgY2xvY2sgZnJlcXVlbmN5IGFuZCBzdG9yZSBpdCBpbiBnZC0+aTJjMV9jbGsgYW5kIGdkLT5pMmMyX2Nsay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdlYzhiYjE1ZWUzNjhlYTU0ZDQ4ZDY0ODY3NzY3YTcwNGQ5YWI0YzIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDI3IDEwOjU2OjU0IDIwMDcgKzAxMDAKCiAgICBPTUFQNTkxMjogZml4IEZJRk8gaGFuZGxpbmcgaW4gVUFSVCBkcml2ZXIKCiAgICBBY2NvcmRpbmcgdG8gdGhlIE9NQVA1OTEyIFNlcmlhbCBJbnRlcmZhY2VzIFJlZmVyZW5jZSBHdWlkZSAoc2VlCiAgICBodHRwOi8vZm9jdXMudGkuY29tL2xpdC91Zy9zcHJ1NzYwYy9zcHJ1NzYwYy5wZGYsIHBhZ2UgMTUwKSwgdGhlCiAgICBGSUZPX0VOIGVuYWJsZSBiaXQgaW4gdGhlIEZJRk8gQ29udHJvbCBSZWdpc3RlciAoRkNSKSBjYW4gb25seSBiZQogICAgY2hhbmdlZCB3aGVuIHRoZSBiYXVkIGNsb2NrIGlzIG5vdCBydW5uaW5nLCBpLiBlLiB3aGVuIGJvdGggRExMIGFuZAogICAgRExIIGFyZSBzZXQgdG8gMC4KCiAgICBUaHVzIG1ha2Ugc3VyZSB0aGF0IERMTCBhbmQgRExIIGFyZSAwIHdoZW4gd3JpdGluZyB0aGUgRkNSLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTYxNTg3NzhiNWY1MmYyMDFlOTVkZWQyZDJkOTA4NGIwZWQ1NjcwZApBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTU6MTA6NTIgMjAwNyArMDEwMAoKICAgIEFSTTogUzNDMjR4MCBTb0MgTkFORCBjb250cm9sbGVyIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgTkFORCBzdXBwb3J0IHRvIHRoZSBTM0MyNHgwIFNvQyBjb2RlIGluIHUtYm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgYTdjMTg1ZWQzZDlmOGViZDg1Y2ZjMjg2ZTFmZmVlNzJlNDgwMzE2MwpBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTQ6MjQ6NDAgMjAwNyArMDEwMAoKICAgIEFSTTogczNjMjR4eDogTXVsdGlwbGUgc2VyaWFsIHBvcnQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBDT05GSUdfU0VSSUFMX01VTFRJIG9uIHMzYzI0eDAgQ1BVJ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IGEyNWY3MmYxZjczYTExZGU2ODI1MWZiODhjODk5OTFlMjAyZTY4ZmEKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE0OjE2OjU3IDIwMDcgKzAxMDAKCiAgICBBUk06IGFybTkyMHQ6IEFsbG93IHVzZSBvZiAnZ2QnIHBvaW50ZXIgZnJvbSBJUlEKCiAgICBUaGlzIHBhdGNoIGFsbG93cyB1cyB0byB1c2UgdGhlICdnZCcgcG9pbnRlciAoYW5kIHRodXMgZW52aXJvbm1lbnQKICAgIGFuZCBldmVyeXRoaW5nIGVsc2UgYXNzb2NpYXRlZCB3aXRoIGl0KSBmcm9tIGludGVycnVwdCBjb250ZXh0IG9uCiAgICBhcm05MjB0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgYmUxOWJkNWNkMGY0NTRiNjMyOTg4NDRhMGI1Mzc3ZTAyOWIyY2FhZApBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTQ6MTk6MzggMjAwNyArMDEwMAoKICAgIEFSTTogYXJtOTIwL3MzYzI0eHg6IElSUSBkZW11bGl0cGxleGVyIGNhbGxiYWNrCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgSVJRIGRlbXVsdGlwbGV4ZXIgY2FsbGJhY2sgdG8gdGhlIGFybTkyMCBjcHUgY29yZSBjb2RlLAogICAgcGx1cyBhIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgaXQgZm9yIHRoZSBTM0MyNDEwLgoKICAgIFRoZSBwdXJwb3NlIGlzIHRvIGFsbG93IGFybTkyMHQgaW1wbGVtZW50YXRpb25zIHN1Y2ggYXMgdGhlIHMzYzI0eDAgdG8KICAgIGltcGxlbWVudCBpbnRlcnJ1cHQgaGFuZGxlcnMgaW4gdS1ib290IHdpdGhvdXQgaGF2aW5nIHRvIHRvdWNoIGNvcmUKICAgIGFybTkyMHQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IGE0MWRiYmQ5OGQyMDFkOGFlYTMxYjVkMjFkZjQ3NDJjMjBjZDdlZGEKQXV0aG9yOiBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CkRhdGU6CVR1ZSBEZWMgMTggMTY6MDM6MDcgMjAwNyAtMDgwMAoKICAgIEFSTTogRGlzcGxheSBFdGhlcm5ldCBpbmZvIGluIGRvX2JkaW5mbyBvbmx5IGlmIENPTkZJR19DTURfTkVUIGlzIGRlZmluZWQKCiAgICBBZGQgaWZkZWYgdG8gYmRpbmZvIGNvbW1hbmQgdG8gZGlzcGxheSBldGhlcm5ldCBpbmZvcm1hdGlvbgogICAgb25seSBpZiBDT05GSUdfQ01EX05FVCBpcyBkZWZpbmVkIGZvciBhcm0gbW9kdWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLIFIgR3VydXJhamEgSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IGY3YWQ3OWI2ZjlmMGY0NTQzN2I2MmUxOWI0NTM1NmNjMmFhZjQ4ODQKQXV0aG9yOiBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CkRhdGU6CVR1ZSBEZWMgMTggMTY6MDA6NTQgMjAwNyAtMDgwMAoKICAgIEFSTTogYWRkIEkyQyBpbml0IGZ1bmN0aW9uIGNhbGwgaW4gbGliX2FybS9ib2FyZC5jCgogICAgQWRkcyBJMkMgaW5pdCBmdW5jIGNhbGwgdG8gaW5pdCBzZXF1ZW5jZSBmb3IgQVJNIGJvYXJkcy4gVGhpcyBpcwogICAgcHJlc2VudCBpbiBwcGMsYmxhY2tmaW4gYW5kIG90aGVyIHByb2Nlc3NvciBpbml0IHNlcXVlbmNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEsgUiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgZmYwMmYxMzk4MDRmM2NiNjE0MTRmN2JiY2JmZGFhMDI3OWUzZWZhZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxIDA5OjM4OjI5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBuZGZjIEhXIEVDQyBieXRlIG9yZGVyCgogICAgVGhlIGN1cnJlbnQgbmRmYyBIVyBFQ0MgaW1wbGVtZW50YXRpb24gc3dhcHMgdGhlIGZpcnN0IHR3byBFQ0MgYnl0ZXMuCiAgICBCdXQgdGhlIDR4eCBOREZDIGFscmVhZHkgdXNlcyB0aGUgU01DIChTbWFydCBNZWRpYSBDYXJkKSBFQ0Mgb3JkZXJpbmcsCiAgICBzbyB0aGlzIHN3YXBwaW5nIGluIHRoZSBIVyBFQ0MgZHJpdmVyIGlzIGJvZ3VzLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMKICAgIHByb2JsZW0gYW5kIG5vdyByZWFsbHkgdXNlcyB0aGUgU01DIEVDQyBieXRlIG9yZGVyLgoKICAgIFRoYW5rcyB0byBTZWFuIE1hY0xlbm5hbiBmb3IgcG9pbnRpbmcgdGhpcyBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUxZDE0MjliNDliMGVlNThjODBmOGM3YjI5YzFlYmFmOGJlN2Y1ZjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzAgMTU6MzU6NTAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IEdQSU8gY29uZmlndXJhdGlvbiBmb3IgcGNzNDQwZXAKCiAgICBUaGUgU1JEMF9QRkMwIHJlZ2lzdGVyIHdhcyBub3QgY29uZmlndXJlZCBjb3JyZWN0bHkgdG8gZW5hYmxlIHRoZSBHUElPJ3MKICAgIDQ5LTYzIGZvciBHUElPLiBUaGV5IGhhdmUgYmVlbiBjb25maWd1cmVkIGFzIHRyYWNlIHNpZ25hbHMuIFRoaXMgcGF0Y2gKICAgIGZpeGVzIHRoaXMgYnkgY2xlYXJpbmcgdGhlIGNvcnJlc3BvbmRpbmcgYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyOGQ3N2Q5NjhiZmUwMzE2ZGViNWJmMTVjMTdmNTdkNWZmMmM4ODIxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMwIDE0OjQ4OjI4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIHdpdGggaW5pdC1yYW0gYmlnZ2VyIHRoYW4gNGsgb24gNDQwIHBsYXRmb3JtcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZmVkZmRkZjk3NDYxYjg4NjY4YjlhZWM3NzRkZmI3YTBjNmRjMzY4CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglGcmkgRGVjIDcgMDA6NDI6MzIgMjAwNyArMDEwMAoKICAgIEFSTTogQm9hcmQgdm9pY2VibHVlIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KCmNvbW1pdCAyYzUyNjBmNzExMTY4ZDVlZTkxYzcwZGRiYjdkODk3MDEzZWVmYzQ2CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglUaHUgRGVjIDYgMjM6MjQ6NTcgMjAwNyArMDEwMAoKICAgIEFSTTogQVQ5MVJNOTIwMCBiYXNlZCBib2FyZHMgY29uZmlnIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CgogICAgUmVtb3ZlIG5vd2hlcmUgdXNlZCBzdHJ1Y3QgYmRfaW5mb19leHQsIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlcywgZml4CiAgICBpbmRlbnRhdGlvbi4KCmNvbW1pdCA0ODFmMjhiMWRiNWNkMjFkZWI1NWY2OTM5OWJhMjQwZTEwN2FmNGM3CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglUaHUgRGVjIDYgMjI6NTk6MTYgMjAwNyArMDEwMAoKICAgIEFSTTogRml4IGF0OTFybTkyMDBkayBiYXNlIGFkZHJlc3MKCiAgICBTb21ld2hlcmUgZHVyaW5nIGRldmVsb3BtZW50IG9mIFUtQm9vdC0xLjEuMyBDT05GSUdfQk9PVEJJTkZVTkMgd2FzCiAgICByZW5hbWVkIGludG8gQ09ORklHX0lOSVRfQ1JJVElDQUwgd2hpY2ggd2FzIDA0IEFwciAyMDA1IHJlcGxhY2VkCiAgICB3aXRoIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQgYW5kIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09ULgogICAgSG93ZXZlciBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUIGhhcyBvcG9zaXRlIG1lYW5pbmcgdG8KICAgIENPTkZJR19CT09UQklORlVOQywgc28gZml4IGNvbmZpZ3VyYXRpb24gdG8gcmVmbGVjdCB0aGlzIGZhY3QuCiAgICBJJ20gc2VuZGluZyB0aGlzIHBhdGNoIDR0aCAoISkgdGltZSBpbiBob3BlIGl0IHByb2R1Y2VzIGF0IGxlYXN0IHNvbWUKICAgIHJlYWN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KCiAgICBGaXggYXQ5MXJtOTIwMGRrIGJhc2UgYW5kIGVudmlyb25tZW50IGFkZHJlc3MuCgpjb21taXQgYzk1MjE5ZmFlMmE3YWRkN2RhYTJmOTFhZWRjYTY1YjE2OTg0NjVjNwpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDIwIDEwOjQwOjI0IDIwMDcgKzAxMDAKCiAgICBNTUMgZm9yIFBYQSAyN1ggKHJlc3VibWl0KQoKICAgIE1NQyBzdXBwb3J0IGZvciBYX1NjYWxlIFBYQSBpcyBicm9rZW4gYW5kIGRvZXMgbm90IHdvcmsuCiAgICBNYWlubHksIHRoZSBtbWNfaW5pdCgpIGZ1bmN0aW9uIGNhbm5vdCByZWNvZ25pemUgY3VycmVudCBTRC9NTUMgY2FyZHMuCiAgICBUaGVyZSB3ZXJlIGFscmVhZHkgc29tZSBwYXRjaGVzIGFyb3VuZCB0aGUgd29ybGQgYnV0IG5vbmUgb2YgdGhlbSB3YXMKICAgIG1lcmdlZCBpbnRvIHRoZSBvZmZpY2lhbCB1LWJvb3QgdHJlZS4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIG9yZGVyIGZpeGluZyB0aGlzIGlzc3VlLiBSZXN1Ym1pdCBhZnRlciBjb2RlIGNsZWFudXAuCgogICAgQXBwbGllZCBhbmQgdGVzdGVkIG9uIFBYQSAyNzAgKFRyaXplcHNJViBtb2R1bGUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDk2YmJmYTFlNjYyNWNlMjNhMTUwOTM2ODYzYjNlY2Y0Yzg1M2ViMzMKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyMCAxMDozNzowNCAyMDA3ICswMTAwCgogICAgRml4IGdjYyBpc3N1ZXMgaW4gcHhhLXJlZ3MuaAoKICAgIEZpeCBnY2M0IGlzc3VlLiBXaXRoIHNvbWUgdG9vbGNoYWluLCBhIHByZXZpb3VzIHBhdGNoIHRoYXQgZml4ZXMgZ2NjNAogICAgaXNzdWVzIGdlbmVyYXRlcyB3cm9uZyBjb2RlLgogICAgKFByb2JsZW0gd2FzIHJlcG9ydGVkIHdpdGggZ2NjLTQuMC4yLWdsaWJjLTIuMy42L2FybS1zb2Z0ZmxvYXQtbGludXgtZ251KS4KICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gYW5kIHNvbHZlcyB0aGUgZ2NjLTQgaXNzdWVzIGFzIHRoZSBsaW51eAogICAga2VybmVsIGRvZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgSXZhbm92IDxpdmFkbWl0cnlAZ21haWwuY29tPgoKY29tbWl0IDcwNDdiMzg4ODc2ZTdiOTA1YjJlYzRlZGI4MDEwNTQzZTM2NDFiODUKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CkRhdGU6CVR1ZSBKYW4gMjkgMDg6NDU6MDMgMjAwOCArMDEwMAoKICAgIFRRTTgzNHg6IGVuYWJsZSBESENQCgogICAgU2lnbmVkLW9mZi1ieTogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhODc3MDA0ZDQ0Y2E3ZGJjMWU2MThhZGQzZWViMWRhN2M4NGU0YmVjCkF1dGhvcjogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgpEYXRlOglUdWUgSmFuIDI5IDA4OjQ1OjAyIDIwMDggKzAxMDAKCiAgICBUUU04MzR4OiBzdXBwb3J0IGZvciBTcGFuc2lvbiBOLXR5cGUgRmxhc2hlcyAoc2VjdG9yIHNpemUgPSAyNTYgS2lCIGF0IDJ4MTYgQml0KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5MzFhYjE3NjAyNWIwM2NmYzMyMGIzZmQxZWNhNDMyYTg4ZWQ1NjAKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTYXQgSmFuIDI2IDIzOjQxOjE5IDIwMDggLTA1MDAKCiAgICBGaXggY29uZGl0aW9uYWwgY29tcGlsYXRpb24gb2YgbXB4OHh4eF9zcGkgZHJpdmVyCgogICAgVGhpcyBkcml2ZXIgc2hvdWxkIG9ubHkgY29tcGlsZSBpZiBDT05GSUdfTVBDOFhYWF9TUEkgaXMgc2V0CgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjNmNzMyZDNkMzg4MGZlYjUzMWY0OGFmMjQ3YzAyNWJmMDE0NjJiMApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjkgMTc6MDA6MzQgMjAwOCArMDEwMAoKICAgIEFQSTogUHJvdmlkZSBkdW1teSBoYWx0KCkgaW4gdGhlIGdsdWUgbGF5ZXIuCgogICAgVGhpcyBmaXhlcyBhIGRlbW8gYXBwIGxpbmsgZmFpbHVyZSBvbiBwbGF0Zm9ybXMgY29uZmlndXJlZCB3aXRoIENPTkZJR19QQU5JQ19IQU5HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgMGRjMWZjMjJhZjg2ZDE2OTkzMzg4ZDllZDk2MzBkYmFhMmQ1MTgyNgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjkgMTY6NTc6MzggMjAwOCArMDEwMAoKICAgIEFQSTogQ29udmVydCBjb25kaXRpb25hbCBidWlsZGluZyB0byB0aGUgbmV3IHNjaGVtZS4KCiAgICBUaGlzIGZpeGVzIGEgYnVpbGQgYnJlYWthZ2Ugd2l0aCBDT05GSUdfQVBJIGVuYWJsZWQsIHdoaWNoIGFwcGVhcmVkIGFmdGVyCiAgICB0aGUgcmVjZW50IGNoYW5nZXMgaW4gdGhlIFUtQm9vdCBidWlsZCBzeXN0ZW0uCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5OGI3NDI0ODljMDk3ODBiZTZhODMyZWVhYTRlNWVmZjgyNDc5MmJiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAyNSAwOTo1NjoxNyAyMDA4ICswMTAwCgogICAgaW5rYTR4MDogcmVtb3ZlIGRlYWQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNGY5M2Y4YjFhNGQzNWI2ZDMwMjg0MjEzMmVkYmE5MjBlZjhmNjJhYQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjA2IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBBZGQgcmVnaW5mbyBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRjZWJjYjYzODcxNWE2Mjc4ZGE5M2I1NTNkNTAxNmY5OTgyMzgxNgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjA1IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBBZGQgcHJpbnRfbGF3cyBmdW5jdGlvbiB0byBmc2xfbGF3LmMKCiAgICBUaGlzIGNhbiBiZSB1c2VkIGZvciBkZWJ1ZywgYW5kIHdpbGwgYmUgdXNlZCBieSBib2FyZCBjb2RlCiAgICB0byBoZWxwIGltcGxlbWVudCByZWdpbmZvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDljZDMyNDI2ZjI2YTA1NjdiYjYxZjMzOWVkZDgzYzZhMmNlOWJmYzMKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowNCAyMDA4IC0wNjAwCgogICAgODZ4eDogUmVtb3ZlIG9sZC1zdHlsZSBsYXcgc2V0dXAgY29kZQoKICAgIFRoaXMgaW5jbHVkZXMgbXBjODYxMGhwY2QsIG1wYzg2NDFocGNuLCBhbmQgc2JjODY0MWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzEzZDgxODY2NDlkYWU4NzQ2MTNkNDk1YjBjZWNhYTAzOWE5OGIzMApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjAzIDIwMDggLTA2MDAKCiAgICA4Nnh4OiBDb252ZXJ0IHNiYzg2NDFkIHRvIHVzZSBuZXcgbGF3IHNldHVwIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDMxOTc2ZjYzNjRiOTM4MzNlOTg5ZjU3ZTlmMWUwMjNlMGJlOGM0YwpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjAyIDIwMDggLTA2MDAKCiAgICA4Nnh4OiBDb252ZXJ0IG1wYzg2MTBocGNkIHRvIG5ldyBsYXcgc2V0dXAgbWV0aG9kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5MzNiOTFmOGE0OWU0MzY2ODFmMTYzZGYzMTczYmViOTFjYWM0NGEKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowMSAyMDA4IC0wNjAwCgogICAgODZ4eDogU3VwcG9ydCBuZXcgbGF3IHNldHVwIG1ldGhvZCBhbmQgY29udmVydCBtcGM4NjQxCgogICAgQWRkcyB0aGUgc3VwcG9ydCBjb2RlIGluIGNwdS9tcGM4Nnh4IGZvciB0aGUgbmV3IGxhdyBzZXR1cCBjb2RlCiAgICByZWNlbnRseSBjcmVhdGVkIGZzbF9sYXcuYywgYW5kIGNoYW5nZXMgdGhlIE1QQzg2NDFIUENOIGNvbmZpZwogICAgdG8gdXNlIHRoaXMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYTQxZjdjZTljMDg2ZTIwOGMwZWFiZjUyNTY1YTIzN2FmMmEyYmQxCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzE6MDAgMjAwOCAtMDYwMAoKICAgIDg2eHg6IFJlYXJyYW5nZSB0aGUgc2VxdWVuY2UgaW4gc3RhcnQuUwoKICAgICogc3BsaXQgdGhlIEJBVCBpbml0aWFsaXphdGlvbiBzbyB0aGF0IG9ubHkgMiBCQVRzIChmb3IgdGhlIGJvb3QgcGFnZQogICAgYW5kIHN0YWNrKSBhcmUgcHJvZ3JhbW1lZCB2ZXJ5IGVhcmx5IG9uLiAgVGhlIHJlc3QgYXJlIGluaXRpYWxpemVkIGxhdGVyLgogICAgKiBNb3ZlIG90aGVyIEJBVCBzZXR1cCwgIGNjc3JiYXIgc2V0dXAsIGFuZCBsYXcgc2V0dXAgbGF0ZXIgaW4gdGhlIGNvZGUKICAgIGFmdGVyIHRyYW5zbGF0aW9uIGhhcyBiZWVuIGVuYWJsZWQuCgogICAgVGhlc2UgY2hhbmdlcyB3aWxsIGZhY2lsaXRhdGUgdGhlIG1vdmluZyBvZiBsYXcgYW5kIEJBVCBpbml0aWFsaXphdGlvbgogICAgdG8gQyBjb2RlLCBhbmQgd2lsbCBhaWQgd2l0aCAzNi1iaXQgcGh5c2ljYWwgYWRkcmVzc2luZyBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMzZGFjMDNiMWI1ZDYxZTRmZWQ3YmFkNDQ1YmE0MGI0Yzk3ZmViYTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIzIDE0OjQxOjM3IDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgQ2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODY1ZjBmOTc1NGI5NTE4M2NhZDM5NWRlN2U4Y2I4NWRmMGM2ZWExZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjMgMTQ6MzE6MTcgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBDbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjZmU1Y2E3Nzk3NmFmZGJlN2VjYjg2ZTM5ZmQ3NTA1YmRlNjM2YWNlCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDE4IDEwOjA3OjA0IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBDb3JyZWN0IHRoZSBzdHJ1Y3Qgc3BpOHh4eCBpbiBtcGM4eHh4X3NwaS5oCgogICAgVGhlIGNvbW1pdCAwNGE5ZTExODBhYzc2YTdiYWNjMTVhNmZjZDk1YWQ4MzlkNjViZGRiCiAgICBjYXVzZSB0aGUgODN4eCBpbW1hcCBicm9rZW4sIHNvIHRoZSBETUEgYW5kIFBDSSB3aWxsCiAgICBiZSBmYWlsZWQuCgogICAgVGhlIHBhdGNoIGZpeCB0aGUgc3RydWN0IHNwaTh4eHggYW5kIHJtIHN0cnVjdCBzcGk4M3h4LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZiNDQzOTQ0NDI4NmUwZmNkMDE1OTZkZjUwNGU2Y2E4OTdhZDNlNWEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IEFwciAxNCAxNzoxMTo0OSAyMDA3ICswMjAwCgogICAgQVZSMzI6IEFUTkdXMTAwIGJvYXJkIHN1cHBvcnQKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIEFUTkdXMTAwIE5ldHdvcmsgR2F0ZXdheSByZWZlcmVuY2UgZGVzaWduLAogICAgaW5jbHVkaW5nIGZsYXNoLCBldGhlcm5ldCBhbmQgTU1DIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZTAwNjkyN2EwYjlhNTRlOGVlNzY4NWQ4YWM3NDhhYWFkNjgwMTg2MgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDI0IDE4OjE1OjMxIDIwMDcgKzAxMDAKCiAgICBBVlIzMjogSW5pdGlhbGl6ZSBpcGFkZHIsIGxvYWRhZGRyIGFuZCBib290ZmlsZSBhdCBzdGFydHVwCgogICAgSSBkb24ndCBrbm93IHdoeSB0aGUgcmVsZXZhbnQgbGF5ZXJzIGNhbid0IGRvIHRoaXMgYnkgaXRzZWxmLCBidXQgdGhpcwogICAgaXMgd2hhdCBwcGMgZG9lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3OTk4OTFlZjdiMWIzNDMyMDMyZWMyMzQ2NmRmNmI2NjVhNzk3ZmE0CkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJRnJpIEphbiAxOCAwMDowNDoyOCAyMDA4ICswMTAwCgogICAgQWRkIEFjVHV4IGJvYXJkIHN1cHBvcnQKCiAgICBIaSwKCiAgICBUaGUgcGF0Y2ggYWRkcyA0IGJvYXJkcywgY2FsbGVkIEFjVHV4LTEgLi4gQWNUdXgtNC4gVGhpcyBwYXRjaCBjb250YWlucyB0aGUKICAgIGZpbGVzIHRoYXQKICAgIGNvbnRhaW4gY2hhbmdlcyBmb3IgbXVsdGlwbGUgYm9hcmRzLCB0aGUgYm9hcmQtc3BlY2lmaWMgZmlsZXMgZm9sbG93IGFzCiAgICBzZXBhcmF0ZSBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+Cgpjb21taXQgNjZhNDM0NGE0ZDkxMGExMTEyNWRmNzc2ODg5OWFkNTI5NzE5ODU1ZQpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMTk6NTM6MjMgMjAwOCArMDEwMAoKICAgIGFkZCBBY1R1eC00IGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IGJjMjQzNDVlNDEwMWE1Yzk5NmQ2YjQ4Y2U0OTdiMDljNTMwMjVkYzYKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglXZWQgSmFuIDE2IDE5OjUxOjU1IDIwMDggKzAxMDAKCiAgICBhZGQgQWNUdXgtMyBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KCmNvbW1pdCBhZWJmMDBmYzRkMTM0M2IyNDcxNTM3Mzg5M2Y3YjIwYmY0NjJkMWU5CkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAxOTo1MToxNCAyMDA4ICswMTAwCgogICAgYWRkIEFjVHV4LTIgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+Cgpjb21taXQgZWE5OWU4ZjA1YjcyNDBmZDY1NzczOWUyODY2NjQ2NjRhZTE2MGFiZQpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMTk6NTA6MzcgMjAwOCArMDEwMAoKICAgIGFkZCBBY1R1eC0xIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IDNkOWYzYmZiN2EzM2VmZThlNDFlMDFiMDI1NTYzY2Q3MTJjNTdkNjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gSmFuIDE0IDE5OjIwOjA4IDIwMDggKzAxMDAKCiAgICBBUk06IHJlbW92ZSB1c2VsZXNzIGZ1bmN0aW9uIGJvYXJkX3Bvc3RfaW5pdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTZiZDQ2Mjk0MjAyMmU0NTY5YjU4MmMwNzJhMGVkMjZkZTFjZDE5YgpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVRodSBKYW4gMTAgMTQ6NTk6NDYgMjAwOCArMDEwMAoKICAgIElYUDogZW5hYmxlIFJUUwoKICAgIGVuYWJsZXMgdGhlIFJUUyBzaWduYWwgd2l0aCBDT05GSUdfU0VSSUFMX1JUU19BQ1RJVkUuCiAgICBObyBoYW5kc2hha2luZyBpcyBkb25lLCBidXQgdGhlIGFjdGl2ZSBSVFMgc2lnbmFsIGFsbG93cyB0bwogICAgY29ubmVjdCB0byB0aGUgdGFyZ2V0IHVzaW5nIGEgUEMgd2hpY2ggaXMgdXNpbmcgUlRTL0NUUwogICAgaGFuZHNoYWtlLCBhbmQgZG9lcyBubyBoYXJtIGlmIHRoZSBQQyBpcyBzZXQgdG8gaWdub3JlIFJUUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IGExY2YwMjdhMDhmOWRjMWMwZTc2OTQ5OWU2ZjRmYmRkY2Y5Y2FiOTMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gSmFuIDcgMDg6NDE6MzQgMjAwOCArMDEwMAoKICAgIElYUDogYWRkIGR5bmFtaWMgbWljcm9jb2RlIGFkZHIKCiAgICBhbGxvdyB0byBsb2FkIHRoZSBtaWNyb2RlIGZyb20gZmxhc2ggb3IgcmFtIGJ5IGRvd25sb2FkIGl0IHRocm91Z2gKICAgIHRoZSBzZXJpYWwgb3Igb3RoZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjNlYmNjNDYxNWRkMzk5MjZjY2Y2MWYxZDVmMzUxMDI2MmVmNjU2NApBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVNhdCBOb3YgMTAgMTU6NDQ6MTIgMjAwNyArMDEwMAoKICAgIGxvYWQgaXhwNDJ4IE5QRSBmaXJtd2FyZSBmcm9tIHNlcGFyYXRlIGZsYXNoIGJsb2NrLCByZW1vdmUgZGVhZCBjb2RlCgogICAgSGksCgogICAgdGhlIGZvbGxvd2luZyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gbW92ZSB0aGUgSVhQNDJYIE5QRSBmaXJtd2FyZSB0byBhCiAgICBzZXBhcmF0ZSBmbGFzaCBibG9jaywgd2hvc2Ugc3RhcnQgYWRkcmVzcyBpcyBkZWZpbmVkIGluCiAgICBDT05GSUdfSVhQNFhYX05QRV9FWFRfVUNPREVfQkFTRS4gVXNpbmcgdGhhdCwgaXQgaXMgcG9zc2libGUgdG8gYnVpbGQKICAgIE5QRS1lbmFibGVkIHUtYm9vdCB3aXRob3V0IGNvcHlyaWdodCBwcm9ibGVtcyBkdWUgdG8gdGhlIE5QRSBmaXJtd2FyZS4KCiAgICBJIGhvcGUgdGhlIHBhdGNoIGFwcGxpZXMsIEkgZ2V0IHdoaXRlc3BhY2UtcmVsYXRlZCBkaWZmZXJlbmNlcyBpbiB0aGUgTlBFCiAgICBmaWxlcyBkdWUgdG8gdHJhaWxpbmcgd2hpdGVzcGFjZSBpbiB0aGUgb3JpZ2luYWwgdmVyc2lvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTdhMTI3MjAxZWIzZDhjYzE5MTcwYTAwOGUwYmQ3YWY2MDhiZDcyZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNDoxNTo0NiAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjU0N3hfOHggLSBBZGQgTTU0NzVFVkIgYW5kIE01NDg1RVZCIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYWVlMTExMTM1ZDg2NjBhMTY0ZDRmNmJmN2Q2NmIwMzJlYTUzNWNmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE0OjAyOjQ5IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTQ3eF84eCAtIEFkZCBNNTQ3eEVWQiBhbmQgTTU0OHhFVkIgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NzdkMWFiZDk3OTZmMWMyZTE0ODQxN2NjMTA2NTdlODQ3ZDMxOGNlCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE0OjAwOjI1IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggRkVDIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MmY1NmFkYzBiMjVkNDM4NzVhZDA2N2JhZTZiZTFiY2VhODZiNzlmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEzOjU0OjA5IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggZG1hIGNvZGUgYW5kIGhlYWRlciBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNlMDlmYzQ5YjU2ZWEzYzQ0Mjc5NGI2YmU5YjdkYjRiOTlkZmRjODcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6NTI6MDMgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTQ3eF84eCBkbWEgY29kZSAtIDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMTg2NWVhODQ0ZTcxNTRmZDMwYzdlMjg2MGRhNGVlZDRhMTJhZDFmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEzOjQ4OjUyIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggZG1hIGNvZGUgLSAxCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDYyMWZjM2ZlN2NkNjViNzhiM2NiZDMxZjY1YzlmN2Y3MmIyMmJkMwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMzozOTo0NCAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1NDd4Xzh4IHJlbGF0ZWQgaGVhZGVyIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU3MGMwMTg2YWVjYWIxYjc0N2IyZDQ0ZDBlMWQzYzFhYzRjYjI3ZjUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6Mzc6MzQgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTQ3eF84eCBjcHUgYXJjaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUyNzU2ZjRiNTRhYmEwZTA1MjNiODFkZDE0NTY2NjgyOWNmN2ZkNTkKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6NDc6MjMgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTIyN3ggY3B1IGFuZCBNNTIyNzdFVkIgc3VwcG9ydC0zCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzg3NTgxMDI3OTk0YzE0ODEzMWIyZjExYWE3NTUwMWY3ODJlYzE5YQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzo0NjoxOSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1MjI3eCBjcHUgYW5kIE1DRjUyMjc3RVZCIHN1cHBvcnQtMgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE1NTJhZjcwZWNhYjExYjlmM2RjZWZmNzUyOGVkMTVmYWY2NzhiOWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6NDM6MzMgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTIyN3ggY3B1IGFuZCBNNTIyNzdFVkIgc3VwcG9ydC0xCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzk3YjdiODFhMWYxMDA4Nzk4YWUxMjA2OTEzNTA4Y2M4OWNiM2E3ZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzozNTo0NCAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEZpeCBDRkkgRmxhc2ggbG93IGxldmVsIFJlYWQvV3JpdGUgbWFjcm8KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYTVmMWY5ZGM4MTVhNzZmNmRmZmI1ODA3OTg1OTljMDI4ZmU3ZmViCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjIzOjA4IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MzczRVZCIHBsYXRmb3JtIHN1cHBvcnQgLSAyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWFjNTU5ZDRhYTM1OGY2M2I0OGM2MmI1NjQyMjRjMDZmZWViNGUzNgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzoxOTo1NCAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTM3M0VWQiBwbGF0Zm9ybSBzdXBwb3J0IC0gMQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMyMGQ2MTk5MWZhMzE5MGVlNDE3NjU2MDFlZDAxN2I2YjVmZjdiMmIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6MTc6MDMgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBVcGRhdGUgRmxleEJ1cyBDUyBmb3IgTUNGNTMyeAoKICAgIERlZmluaXRpb24gdXBkYXRlIGFuZCBjaGFuZ2UgZnJvbSAxNmJpdCB0byAzMmJpdAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJlNzJhZDA2NDRiOTQwODE3YTg5YTM1OTBjZTBkN2I5OWMwNWMzOTYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6MTE6NDcgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBQQ0kgYW5kIG1pc2MgdXBkYXRlcyBmb3IgTUNGNTQ0NXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMmIxNjQ5MzQ4MGFjM2Q0YTYwYWQ3ZDgzNWIwZGMyN2QyZTk5Y2VlCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjA2OjU1IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTQ0NXggaGVhZGVyIGZpbGVzIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkOWFhZTYyNjA5OTNhOTNmN2ZjZjEzYWJmZjg1YTYwMWY0ZjUwZWE3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE2OjU5OjQyIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyeCBoZWFkZXIgZmlsZXMgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdhZjc3NTFkMDQ3ZTc0YjJlYzU4NDAwZjk3Yjg3OWM1NjQ0NmIzZTgKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTU6MzA6MTUgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgbW9kdWxlcyBoZWFkZXIgZmlsZXMKCiAgICBBZGQgQ0Ygc3BlY2lmaWMgbW9kdWxlcyBoZWFkZXIgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjk1NmFjZDVlZjkzYTQ5ODMzN2Y4YWMyZWM2YWU2YTc3ZDQ5MWRjNQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTcgMTI6NDg6MDAgMjAwOCAtMDYwMAoKICAgIGNvZGluZ3N0eWxlIGNsZWFudXAgZm9yIHNwaSBkcml2ZXIKCiAgICAuLmFuZCBybSB1bnVzZWQgQ09ORklHX0ZTTF9TUEkgZGVmaW5lCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNTlmZWZmYjQyYzlmMTc0MTE2ZGI3YTgyYTMxMWRmOTg5ODNkZmNlCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxNzoxMjoxMiAyMDA4IC0wNTAwCgogICAgRlNMOiBGaXggY29tbW9uIEVFUFJPTV9kYXRhIHN0cnVjdHVyZSBkZWZpbml0aW9uCgogICAgLSBGaXggRUVQUk9NX2RhdGEgc3RydWN0dXJlIGRlZmluaXRpb24gYWNjb3JkaW5nIHRvIFN5c3RlbSBFRVBST00gRGF0YSBGb3JtYXQuCiAgICAtIFJlYWQgTUFDIGFkZHJlc3NlcyBmcm9tIEVFUFJPTSB0byBldGhYYWRkciBiZWZvcmUgc2F2aW5nIGV0aFhhZGRyIHRvCiAgICAgIGJkLT5iaV9ldGhhZGRyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmJlZTc2NGJkNmRhNTEwYTRhYWQ2MTQ4ODAzMDBjOTY4YmM3MzE4ZApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTU6NDg6MTIgMjAwOCAtMDYwMAoKICAgIDg2eHg6IGVuYWJsZSBjb21tYW5kLWxpbmUgZWRpdGluZwoKICAgIEVuYWJsZSBjb21tYW5kLWxpbmUgZWRpdGluZyBmb3IgYWxsIE1QQzg2eHggYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODBkZGQyMjYyNmQzMjFhNzcyZWJmYmEzMDRlYjc4MzBjYjRmNmJhYwpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMjI6Mzc6NDIgMjAwOCAtMDUwMAoKICAgIEltcGxlbWVudCBoYXJkIFNQSSBkcml2ZXIgb24gTVBDODM0OUVNRFMKCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZzbF9zcGkgZHJpdmVyIG9uIHRoZSBNUEM4MzQ5RU1EUyBldmFsdWF0aW9uIGJvYXJkLgogICAgVGhpcyBib2FyZCBoYXMgYW4gU1QgTTI1UDQwIDRNYml0IEVFUFJPTSBvbiBpdHMgU1BJIGJ1cwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA0YTllMTE4MGFjNzZhN2JhY2MxNWE2ZmNkOTVhZDgzOWQ2NWJkZGIKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDIyOjM3OjM1IDIwMDggLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgYSBGcmVlc2NhbGUgbm9uLUNQTSBTUEkgY29udHJvbGxlcgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgU1BJIGNvbnRyb2xsZXIgZm91bmQgb24gRnJlZXNjYWxlIFBvd2VyUEMKICAgIHByb2Nlc3NvcnMgc3VjaCBhcyB0aGUgTUNQODM0eCBmYW1pbHkuICBBZGRpdGlvbmFsbHksIGEgbmV3IGNvbmZpZyBvcHRpb24sCiAgICBDT05GSUdfSEFSRF9TUEksIGlzIGFkZGVkIGZvciBnZW5lcmFsIHB1cnBvc2UgU1BJIGNvbnRyb2xsZXIgdXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4Y2I0M2E4OWJlNmNmZDI4MzI1N2E2MDNkZDk4NDE1MDNjY2NlMGYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTcgMTg6MjM6MTkgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgZmF0YWwgY29uZmxpY3Qgb2YgbWVyZ2UKCiAgICBUaGUgY29tbWl0IDllODk2NDc4ODljZDRiNWFkYTViNWU3Y2FkNmNiZTU1NzM3YTA4ZDcKICAgIHdpbGwgY2F1c2UgdGhlIG1wYzgzMTVlcmRiIGJvYXJkIGNhbid0IGJvb3QgdXAuCgogICAgVGhlIHBhdGNoIGZpeCB0aGF0IGJ1ZywgYW5kIHJlbW92ZSB0aGUgZHVwbGljYXRlZCAjaWZkZWYKICAgIENGR19TUENSX1RTRUNFUCBjb2RlIGFuZCBjbGVhbiB0aGUgU0NDUl9UU0VDMiBmb3IKICAgIE1QQzgzMTNFIHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMjU5ZWVhYTQxNDgxMjVhODE0MTc0NzdmNjJjMDViZDY3ZjYwNTg3CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDg6NTA6MDkgMjAwOCAtMDUwMAoKICAgIE1lcmdlIFNlcXVvaWEgYmVhdXRpZmljYXRpb24gaW50byBLb3JhdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgZTE2OTI1NzczMjExMjkxYjU2MmU3NzE4NzA2MWU5ZGQxZDc1NzIxNwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgSmFuIDE3IDA3OjQ1OjA1IDIwMDggKzAxMDAKCiAgICBuZXQ6IGFkZCAnZXRocm90YXRlJyBlbnZpcm9ubWVudCB2YXJpYWJsZQoKICAgIFtQQVRDSF0gbmV0OiBhZGQgJ2V0aHJvdGF0ZScgZW52aXJvbm1lbnQgdmFyaWFibGUKCiAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIHRoZSBidWlsZHRpbWUgY29uZmlndXJhdGlvbiBvcHRpb24KICAgIENPTkZJR19ORVRfRE9fTk9UX1RSWV9BTk9USEVSIHRocm91Z2ggdGhlICdldGhyb3RhdGUnIHJ1bnRpbWUKICAgIGNvbmZpZ3VyYXRpb24gdmVyaWFibGUuIFNlZSBSRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGJhNTJiZTNkMGU2MThjMjYwNzBlOTNhYWYzYzFmMmQyYWRmNTU3MWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTcgMTQ6Mjk6MDQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzIGFuZCBjb2Rpbmcgc3R5bGUgaXNzdWVzIGluIEhDVTQvSENVNQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1NWVkMTUxNmNiYzFkYWQzYWUyNzdjNjdlZTA2ZmM0YTQ2ZWFhYzdkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgSmFuIDE3IDE4OjA3OjMyIDIwMDggKzA5MDAKCiAgICBzaDogUmVtb3ZlIENPTkZJR19DT01NQU5EUyBmcm9tIE1TNzcyMFNFIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDA1NTYwNmJkMjVlODhjMGNkMDRhZDM0OGE2NzlhMDRiMWI2MTZiZWUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE4OjM5OjIwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE5ldHN0YWwgSENVNCBib2FyZDogYWRkZWQgdmFyaW91cyBmaXhlcyBhbmQgUE9TVAoKICAgIC0gTW92ZWQgc29tZSBjb21tb24gY29kZSB0byBuZXRzdGFsL2NvbW1vbi9ubV9ic3AuYy4KICAgIC0gc2RyYW0gaW5pdGlhbGlzYXRpb24gZ29lcyBnbyBuZXRzdGFsL2NvbW1vbi9maXhlZF9zZHJhbS5jLgogICAgLSBBZGRlZCBzdXBwb3J0IGZvciBQT1NULgogICAgLSBTdHlsaXN0aWMgY2xlYW51cHMgKG11bHRpLWxpbmUgY29tbWVudHMvIGVuZm9yY2UgODAgY29sb21uIHdpZHRoKQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNjliMDYzNGE0ZWU5OGM5NzkxODE1NjAwZDQzYjk5ZjYyNmE5NTJmMwpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVRodSBKYW4gMTcgMTI6NTM6NTYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogbmV0c3RhbC9jb21tb24gZGVmaW5lIHJvdXRpbmVzIHVzZWQgYnkgYWxsIGJvYXJkcwoKICAgIEFkZGVkIHNvbWUgcm91dGluZXMgdXNlZCBieSBhbGwgTmV0c3RhbCBib2FyZHM6CiAgICAtIG5tX2JzcC5jOiAtIG5tX3Nob3dfcHJpbnQgYW5kCgkgICAgLSAgY29tbW9uX21pc2NfaW5pdF9yCgkgICAgLSBzZXRfcGFyYW1zX2Zvcl9zd19pbnN0YWxsLiBWZXJ5IHNwZWNpZmljIGNvZGUgdG8gaGFuZGxlIG91ciBTVwoJICAgICAgaW5zdGFsbGF0aW9uIHByb2NlZHVyZQogICAgLSBmaXhlZF9zZHJhbS5jOiBDb21tb24gcm91dGluZXMgZm9yIEhDVTQgKGFuZCB1cGNvbWluZykgTUNVMjUgYm9hcmRzCiAgICAgIHRvIGhhbmRsZSBzZHJhbSBpbml0aWFsaXphdGlvbi4KICAgIC0gbm0uaDogQ29tbW9uIGhlYWRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgZWZlZmY1MzgyYjdhOTFiNDhhMWFhNjhiMmI3NWY5MmFkMWQzM2ZmOApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTg6Mzk6MTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTmV0c3RhbCBIQ1U1IGJvYXJkOiBhZGRlZCB2YXJpb3VzIGZpeGVzIGFuZCBQT1NUCgogICAgLSBNb3ZlZCBzb21lIGNvbW1vbiBjb2RlIHRvIG5lc3RhbC9jb21tb24vbm1fYnNwLmMuCiAgICAtIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSB2eFdvcmtzIEVEUi4KICAgIC0gRW5hYmxlIHRyYWNlIGZvciBMYXV0ZXJiYWNoLCBpZiBwcmVzZW50LgogICAgLSBBZGRlZCBzdXBwb3J0IGZvciBQT1NULgogICAgLSBTdHlsaXN0aWMgY2xlYW51cHMgKG11bHRpLWxpbmUgY29tbWVudHMvIGVuZm9yY2UgODAgY29sb21uIHdpZHRoKQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNDM3MTA5MGU1ZGE3N2VkYzdiZjlmMjk2MzY0ZGI0ODAxNjM5ZDljNApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTg6Mzk6MDggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTmV0c3RhbCBIQ1U1IGJvYXJkLiBBZGRlZCBQT1NULiBWYXJpb3VzIGZpeGVzCgogICAgLSBWYXJpb3VzIGZpeGVzCiAgICAtIFJlZHVjZWQgcm9tX3NpemUgZnJvbSAzODQgdG8gMzIwIGtCCiAgICAtIEVudmlyb25tZW50IGlzIG5vdyBpbiBmbGFzaAogICAgLSBBZGRlZCBQT1NUCiAgICAtIFN1cHBvcnQgZm9yIE9GCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA0YmQ1MDM2ZTYwYWZhYzM3ZTQ4NGMyZDM1Y2JiZTdmNmNjMTYyM2U3CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxODozNzo1MCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBOZXRzdGFsIEhDVTQgYm9hcmQuIEFkZGVkIFBPU1QuIFZhcmlvdXMgZml4ZXMKCiAgICAtIFZhcmlvdXMgZml4ZXMKICAgIC0gUmVkdWNlZCByb21fc2l6ZSBmcm9tIDM4NCB0byAzMjAga0IKICAgIC0gRW52aXJvbm1lbnQgaXMgbm93IGluIGZsYXNoCiAgICAtIEFkZGVkIFBPU1QKICAgIC0gU3VwcG9ydCBmb3IgT0YKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDFhM2FjODZiNzlmY2I2OTAyNzVjODU4NjFjOGVmYTZhMzg5OTA2MGEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IEphbiAxNyAxMDo1MzowOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDb21wbGV0ZSBEVTQ0MCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMTVhMDhiYzJiZWY5MWU1ZjFlYTRiOWNmNjBlNDY4MzJkODZiY2MxZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgSmFuIDE3IDEwOjUyOjMwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBEVTQ0MCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYWMzMzFkYTA3ZGIzODYwZjExZmExZDBmZDNkYjdjODEwYmNlMTE5OApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAxNTo1Mzo1MiAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBTdXBlckggU0NJRiBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGZpeGVkIHdyb25nIFNINzcyMCBDUFUgbWFjcm8gYW5kIGNoYW5nZWQgbWFjcm8gdGhhdAogICAgY2FsY3VsYXRlZCB2YWx1ZSBvZiBTQ0JSUiByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMzM0ZTQ0MmU2ZmFjNTliZTkxMjQ0MDYzZTliM2Y2Y2EyNWU4ZGFmOApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE1OjEyOjQ3IDIwMDggKzAxMDAKCiAgICBTZXQgaXBzIGRpdmlkb3IgdG8gMS80IG9mIGNzYiBjbG9jay4KCiAgICBQcmV2aW91cyBzZXR0aW5nIGNhdXNlIGlwcyBjbG9jayB0byBiZSBvdXQgb2Ygc3BlYy4gVGhpcyBidWcgd2FzIGZvdW5kIGJ5IEpvaG4KICAgIFJpZ2J5IGZyb20gRnJlZXNjYWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdkYzM1OGJiMGRlOWUyZmEzNDFmM2I0YzkxNDQ2NmIxZjM0YjJkODkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAyOjE5OjE4IDIwMDggLTA2MDAKCiAgICA4NXh4OiBHZXQgcmlkZSBvZiBvbGQgVExCIHNldHVwIGNvZGUKCiAgICBOb3cgdGhhdCBhbGwgYm9hcmRzIGhhdmUgYmVlbiBjb252ZXJ0ZWQsIHJlbW92ZSBvbGQgY29uZmlnIGNvZGUgYW5kIHRoZQogICAgY29uZmlnIG9wdGlvbiBmb3IgdGhlIG5ldyBzdHlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDNiNTU4ZTI2YTVlZjMxNjM1Nzg3ZDZkNmU5N2Q3MDkzOWQ0Zjg5MmQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAyOjAyOjEwIDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IFRRTTg1eHggdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzQxMjFiNDcwYzE0ZjdlYWYyODRlZTgzOGJmZmNhNmY5NTIxMDY5ZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDE6NTY6MzIgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgU1RYR1AzICYgU1RYU1NBIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDE0M2I1MThkOTEyNWI1NGY5NmYxZDdmMWFmYzY0MGI4YWFlODFmZjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjQ0OjM0IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IFNCQzg1NDAvU0JDODU2MC9TQkM4NTQ4IHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgxODIxOGJhYzZhMTE1OTFlMjU0MmMzNDRkMjMzMGUwZjRlMTk2OGIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjMxOjM0IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IFBNODU0L1BNODU2IHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGZmNDY4MWM5Mjg1YjJiNGQyNDU1MmExOWNhY2MxNzY5ZmUyZmM3ZTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjI1OjMzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NDBFVkFMIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDczYWE5YWMyYjQ2ZjFjZmQwMzkxMDZlYmQ2Yjk4NjUwMTYwMDUyMzQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjEyOjIyIDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NjggTURTIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBkYjM3ZGMyZWVkMzA4ODRkYjJkYWEyNGRiZDlhMTEzYjVkMDA2MTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjAxOjA5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NDEvTVBDODU1NS9NUEM4NTQ4IENEUyB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyMTlhODFiOThkODM0ZjkwNzFiNmY3YzNiZGM2YjdlYzM5Y2M0NmNjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMDo1MjoyOSAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBNUEM4NTQwL01QQzg1NjAgQURTIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgwZDBiNmExNDk4NzYxYzQzNTViMmRiOWM4MDAxYjA0YzI5NWU3YjgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAwOjMyOjE3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IEFUVU04NTQ4IHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBmN2EzZGM5NWNiZmYzYzIxYmQ2ZGJjNjM5MzEzNzk2NDEyYmJiYWIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDIzOjExOjU3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NDQgRFMgdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODcxNjMxODA1N2E1ZjYwYWIxYmEwODFlY2UyZGJlODJhZTAwZTFlZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMjI6Mzg6MzQgMjAwOCAtMDYwMAoKICAgIDg1eHg6IFJld29ya2VkIGluaXRpYWwgcHJvY2Vzc29yIGluaXQKCiAgICBSZXdvcmtlZCB0aGUgaW5pdGlhbCBwcm9jZXNzb3IgaW5pdGlhbHphdGlvbiBzZXF1ZW5jZToKICAgICogaW50cm9kdWNlZCBjcHVfZWFybHlfaW5pdF9mIHRoYXQgaXMgcnVuIGluIGFkZHJlc3Mgc3BhY2UgMSAoQVM9MSkKICAgICogTW92ZWQgVExCL0xBVyBhbmQgQ0NTUiBpbml0IGludG8gY3B1X2Vhcmx5X2luaXRfZigpCiAgICAqIFJld29ya2VkIGluaXRpYWwgYXNtIGNvZGUgdG8gZG8gbW9zdCBvZiB0aGUgY29yZSBpbml0IGJlZm9yZSBUTEJzCgogICAgVGhlIG1haW4gcmVhc29ucyBmb3IgdGhlc2UgY2hhbmdlcyBhcmUgdG8gYWxsb3cgaGFuZGxpbmcgb2YgMzYtYml0IHBoeXMKICAgIGFkZHJlc3NlcyBpbiB0aGUgZnV0dXJlIGFuZCBzb21lIG9mIHRoZSBpc3N1ZXMgdGhhdCB3aWxsIGV4aXN0IHdoZW4gd2UKICAgIGRvIHRoYXQuCgogICAgVGhlcmUgYXJlIGEgZmV3IGNhdmVhdHMgb24gd2hhdCBjYW4gYmUgaW5pdGlhbGl6ZWQgdmlhIHRoZSBMQVcgYW5kIFRMQgogICAgc3RhdGljIHRhYmxlczoKICAgICogVExCIGVudHJ5IDE0LzE1IGNhbid0IGJlIGluaXRpYWxpemVkIHZpYSB0aGUgVExCIHRhYmxlCiAgICAqIGFueSBMQVcgdGhhdCBjb3ZlcnMgdGhlIGltcGxpY2l0IGJvb3Qgd2luZG93ICg0Ry04TSB0byA0RykgbXVzdCBtYXAgdG8KICAgICAgdGhlIGNvZGUgdGhhdCBpcyBjdXJyZW50bHkgZXhlY3V0aW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDRhMjNjZmQ2MzYwYTY4ZWFhNDFmOTQ1MTkwNjE4YTU1NTE5ZWFjMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMjI6MzM6MjIgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEludHJvZHVjZSBuZXcgdGxiIEFQSQoKICAgIEFkZCBhIHNldCBvZiBmdW5jdGlvbnMgdG8gbWFuaXB1bGF0ZSBUTEIgZW50cmllczoKICAgICAqIHNldF90bGIoKSAtIHdyaXRlIGEgdGxiIGVudHJ5CiAgICAgKiBpbnZhbGlkYXRlX3RsYigpIC0gaW52YWxpZGF0ZSBhIHRsYiBhcnJheQogICAgICogZGlzYWJsZV90bGIoKSAtIGRpc2FibGUgYSB2YXJpYWJsZSBzaXplIHRsYiBlbnRyeQogICAgICogaW5pdF90bGJzKCkgLSBzZXR1cCBpbml0aWFsIHRsYnMgYmFzZWQgb24gc3RhdGljIHRhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiZTg4YjE2OTk4NjNjMjYyODE4ZjNhZjdmNjAxNzNiNGQ0OGRmOGZjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE3IDA3OjUwOjE3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCByZW1haW5pbmcgQ09ORklHX0NPTU1BTkRTIGluIDR4eCBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjOGM0MWQ0YTgwYjFhOGFkNTk4NGEyODdkODFlYTc4MDQ5NjI1OWY4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAxMDowNDo0MiAyMDA4IC0wNjAwCgogICAgODV4eDogVXNlIHByb3BlciBkZWZpbmVzIGZvciBQQ0kgYWRkcmVzc2VzCgogICAgV2Ugc2hvdWxkIGJlIHVzaW5nIHRoZSBfTUVNX1BIWVMgZm9yIExBVyBhbmQgVExCIHNldHVwIGFuZCBub3QgX01FTV9CQVNFLgogICAgV2hpbGUgX01FTV9CQVNFICYgX01FTV9QSFlTIGFyZSBub3JtYWxseSB0aGUgc2FtZSwgX01FTV9CQVNFIHNob3VsZCBvbmx5CiAgICBiZSB1c2VkIGZvciBjb25maWd1cmluZyB0aGUgUENJIEFUTVUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NGE1MDcwMTE1ZWZmMzhlOWIzMjRiNzhhYmRmYTBiNDUyMDU4MGI5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOToyMjoyOSAyMDA4IC0wNjAwCgogICAgODV4eDogUmVtb3ZlIG9sZCBzdHlsZSBvZiBMQVcgaW5pdAoKICAgIEFsbCBib2FyZHMgYXJlIG5vdyB1c2luZyB0aGUgbmV3IGZzbF9sYXcgY29kZSBzbyB3ZSBjYW4gZHJvcCB0aGUgb2xkIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0ZDM1MjFjYzc5Y2FiYzYxZWRmMTJjNDhjMGNlMzE4ZDRlZmI3MTJmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOToxNToyOSAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCByZW1haW5pbmcgODV4eCBib2FyZHMgb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBDb252ZXJ0ZWQgQVRVTTg1NDgsIE1QQzg1NjggTURTLCBNUEM4NTQwIEVWQUwsIGFuZCBUUU04NXh4IGJvYXJkcyBvdmVyCiAgICB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NzJiMTNhZmM0MjcxMGYyOTU3YzM4MmE3MTAzNjA0MjljMGUwOTliCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOToxMTo1MyAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCBTVFhHUDMvU1RYU1NBIG92ZXIgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0NWYyMTY2YWMwMjMzYTkyNjMwNTgzNzhmMzk2MTJiZDExZjYxMTk2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOTowNjo0OCAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCBQTTg1NC9QTTg1NiBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTJiMTU5ZDAwNzBlZTA2ZTRhYzdlMmY5MzgxZDNlOGU1NDJlNjE0YQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDk6MDU6MjcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgU0JDODU0MC9TQkM4NTYwL1NCQzg1NDggb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDJjZmFhMWFhMWFhYzM5YTgxMDA2YjdiMjdlMGU0MzFiZjIxZjZkZmEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDAxOjQ1OjEwIDIwMDggLTA2MDAKCiAgICA4NXh4OiBjb252ZXJ0IE1QQzg1NDEvTVBDODU1NS9NUEM4NTQ4IENEUyBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzIzMmEyNzI0Y2NjOWRjYmMzZWM0ZWY4NGFkYTAyZjEzY2NkMTIzOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDE6MzI6MDYgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgTVBDODU0MC9NUEM4NTYwIEFEUyBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNGJjYWU5YzkyYWVlMGQ3MmEyZjE5YjgxY2FiMjdlZjM4MTA3Y2U3NQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDE6MTY6MTYgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgTVBDODU0NCBEUyBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODNkNDBkZmQ3OWZlODY4Nzk2Mjc1ODAyZjYwMTE2ZDg0YjllNDM5NQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDE6MTM6NTggMjAwOCAtMDYwMAoKICAgIDg1eHg6IE1vdmUgTEFXIGluaXQgY29kZSBpbnRvIEMKCiAgICBNb3ZlIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgTEFXcyBpbnRvIEMgY29kZSBhbmQgcHJvdmlkZSBhbiBBUEkKICAgIHRvIGFsbG93IG1vZGlmaWNhdGlvbiBvZiBMQVdzIGFmdGVyIGluaXQuCgogICAgQm9hcmQgY29kZSBpcyByZXNwb25zaWJsZSB0byBwcm92aWRlIGEgbGF3X3RhYmxlIGFuZCBudW1fbGF3X2VudHJpZXMuCgogICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gdXNlIHRoZSBzYW1lIGNvZGUgb24gODZ4eCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYmVkOGNlODM4YTYwOWFhYWIxMzZkNDNiMjVlNmRmMmE1MjBiYzg1NApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MDM6MTIgMjAwNyArMDEwMAoKICAgIHFlbXUtbWlwczogYWN0aXZlIEhVU0ggUEFSU0VSLCBBVVRPX0NPTVBMRVRFIGFuZCBDTURMSU5FX0VESVRJTkcKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDA3NjRjMTY0ZmVkNjI3N2QzNTljZjEzMmQ1NTE4N2VhMzQyOTAxMTQKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJV2VkIEphbiAxNiAxOToyNzo1MSAyMDA4ICswMjAwCgogICAgTUlQUzpUYXJnZXQgc3VwcG9ydCBmb3IgcWVtdSAtTSBtaXBzCgogICAgV2l0aCBzZXJpYWwsIE5FMjAwMCwgSURFIHN1cHBvcnQuIFRlc3RlZCBpbiBiaWctZW5kaWFuIG1vZGUuCiAgICBNZW1vcnkgc2l6ZSBoYXJkLWNvZGVkIHRvIDEyOE0gZm9yIG5vdywgc28gZG9uJ3QgcGxheSB3aXRoCiAgICB0aGUgLW0gb3B0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IDdmNTJmYTNjMmRmNTllNDlkYzJiYWRkN2MwODRjZjJkMDA3YzQzOGYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgSmFuIDExIDAwOjAxOjM3IDIwMDggKzAxMDAKCiAgICBGaXggbmZzIGNvbW1hbmQgaGVscCB0byByZWZsZWN0IHRoYXQgdGhlIHNlcnZlcmlwIGlzIG9wdGlvbmFsCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYjhmNDE2MmE0ZjdhOWJlZTVlOWQwMzA1YzE3ZjJkMzRkZTQ2NmE5YgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBEZWMgMTAgMjI6MzI6MTQgMjAwNyArMDEwMAoKICAgIGJmNTM3LXN0YW1wOiByZW1vdmUgYWxyZWFkeSBkZWZpbmVkIGlzX3plcm9fZXRoZXJfYWRkciBhbmQgaXNfbXVsdGljYXN0X2V0aGVyX2FkZHIKCiAgICBhbmQgbW92ZSBpc192YWxpZF9ldGhlcl9hZGRyIGJvYXJkIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBjMmY4OTZiOGZjNDcyMmUzNjkxNTkwM2UxOTQyZTEzOGU2OGNlODA0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE2OjEzOjMxIDIwMDggKzA5MDAKCiAgICBkcml2ZXJzL25ldC9ydGw4MTM5LmM6IHJ4X3N0YXR1cyBzaG91bGQgYmUgbGUzMl90b19jcHUocnhfc3RhdHVzKS4KCiAgICByeF9zdGF0dXMgb24gdGhlIG1lbW9yeSBpcyBiYXNpY2FsbHkgaW4gTEUsIGJ1dCBuZWVkcyB0byBiZSBoYW5kbGVkIGluIENQVQogICAgZW5kaWFuLiBsZTMyX3RvX2NwdSgpIHRha2VzIHVwIHRoaXMgbWlzc2lvbi4gRXZlbiBpZiBvbiB0aGUgc2FuZSBoYXJkd2FyZSwKICAgIGl0J2xsIHdvcmsgZmluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBDYzogTWFzYW1pIEtvbWl5YSA8bWtvbWl5YUBzb25hcmUuaXQ+CiAgICBDYzogTHVjYXMgSmluIDxsdWNhc2ppbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDk2YTIzNjc0NmZlNmE3Yjg0ODAyYWZiNGVkMzE1MzY2OTZkMzQ4MTIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTY6MTI6MjYgMjAwOCArMDkwMAoKICAgIGRyaXZlcnMvbmV0L3J0bDgxMzkuYzogRml4IGNhY2hlIGNvaGVyZW5jeSBpc3N1ZXMKCiAgICBDdXJyZW50IGRyaXZlciBpcyBtZWFudCBmb3IgY2FjaGUgY29oZXJlbnQgc3lzdGVtcy4gVGhpcyBwYXRjaCBhZGRzCiAgICBmbHVzaF9jYWNoZSgpIHJvdXRpbmVzIHRvIHN1cHBvcnQgY2FjaGUgbm9uLWNvaGVyZW50IHN5c3RlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQ2M6IE1hc2FtaSBLb21peWEgPG1rb21peWFAc29uYXJlLml0PgogICAgQ2M6IEx1Y2FzIEppbiA8bHVjYXNqaW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkMTI3NmM3NmMxZTJiNTAzNTI5NjY4OTI4MGJhMWFjYjJjNDI1MTA0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE2OjExOjE0IDIwMDggKzA5MDAKCiAgICBkcml2ZXJzL25ldC9ydGw4MTM5LmM6IEZpeCB0eCB0aW1lb3V0CgogICAgInRvID0gKGN1cnJ0aWNrcygpICsgUlRMX1RJTUVPVVQpIiBoYXMgcG9zc2liaWxpdGllcyB0byB3cmFwIGFyb3VuZC4gSWYgaXQKICAgIGRvZXMsIHRoZSBjb25kaXRpb24gIihjdXJydGlja3MoKSA8IHRvKSIgYmVjb21lcyBpbnZhbGlkIGFuZCBpbW1lZGlhdGVseQogICAgbGVhZHMgdG8gdHggdGltZW91dCBlcnJvci4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBmaW5lLWdyYWRlZCB1ZGVseSgxMCkKICAgIGxvb3BzIHRvIGVhc2UgdGhlIGltcGFjdCBvZiB3cmFwcGluZyBhcm91bmQuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQ2M6IE1hc2FtaSBLb21peWEgPG1rb21peWFAc29uYXJlLml0PgogICAgQ2M6IEx1Y2FzIEppbiA8bHVjYXNqaW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxOGVlMzIwZmY2M2VkYmY3YjI3YmJlYjA1ZjBlMTJhNTIzMDJjNjhhCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDExIDE4OjQ1OjI4IDIwMDggKzA4MDAKCiAgICBUU0VDOiBBZGQgdGhlIHN1cHBvcnQgZm9yIFJlYWxUZWsgUlRMODIxMUIgUEhZCgogICAgQWRkIHRoZSBzdXBwb3J0IG9mIFJlYWxUZWsgUlRMODIxMUIgUEhZLCB0aGUgUlRMODIxMUIKICAgIFBIWSBvbmx5IHN1cHBvcnRzIFJHTUlJIGFuZCBNSUkgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4NGEzMDQ3YjcyYjcwZTg2MmIwYjdhOGUyMDU4MDc3NDU3Zjg5YTMyCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVdlZCBKYW4gMTYgMDk6NDA6NDEgMjAwOCArMDEwMAoKICAgIFJlbW92ZSBhbm5veWluZyBkZWJ1ZyBwcmludG91dCBmb3IgUEhZIGxlc3MgYm9hcmRzLgoKICAgIFBIWSBsZXNzIGJvYXJkIHByaW50cyBvdXQgbG90cyBvZiAicmVhZCB3cm9uZyAuLi4iOgogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMiwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMywgYmFzZSBlMDEwMjMyMAogICAgVUVDOiBQSFkgaXMgR2VuZXJpYyBNSUkgKGZmZmZmZmZmKQogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgNCwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMCwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgNSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgNSwgYmFzZSBlMDEwMjMyMAogICAgRlNMIFVFQzA6IEZ1bGwgRHVwbGV4CiAgICBGU0wgVUVDMDogU3BlZWQgMTAwQlQKICAgIEZTTCBVRUMwOiBMaW5rIGlzIHVwCiAgICBVc2luZyBGU0wgVUVDMCBkZXZpY2UKCiAgICBNYWtlIHRoaXMgcHJpbnRvdXQgZGVwZW5kIG9uIFVFQ19WRVJCT1NFX0RFQlVHIGFuZAogICAgcmVtb3ZlIGl0cyBkZWZpbml0aW9uIGluIHVlY19waHkuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBlZTYyZWQzMjg2ZjgzYjk4Yjc3ODVlMDMxOGRjNjM3OWU3OGY3ZmY2CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNDoxMTowMCAyMDA4IC0wNjAwCgogICAgbmV0OiByZWR1Y2UgYm9vdCBsYXRlbmN5IG9uIFFFIFVFQyBiYXNlZCBib2FyZHMKCiAgICBhY3R1YWxseSBwb2xsaW5nIGZvciBQSFkgYXV0b25lZ290aWF0aW9uIHRvIGZpbmlzaCBlbmFibGVzIHVzIHRvIHJlbW92ZSB0aGUKICAgIDUgc2Vjb25kIGJvb3QgcHJvbXB0IGxhdGVuY3kgcHJlc2VudCBvbiBRRSBiYXNlZCBib2FyZHMuCgogICAgY2FsbCB0byBxZV9zZXRfbWlpX2Nsa19zcmMgaW4gaW5pdF9waHksIGFuZCBtdiBjYWxsIHRvIGluaXRfcGh5IGZyb20KICAgIHVlY19pbml0aWFsaXplIHRvIHVlY19pbml0IGJ5IEpvYWtpbSBUamVybmx1bmQ7IGF1dG9uZWdvdGlhdGlvbiB3YWl0CiAgICBjb2RlIHNoYW1lbGVzc2x5IHN0b2xlbiBmcm9tIHRzZWMgZHJpdmVyLgoKICAgIGFsc28gcm0gdW51c2VkIENPTkZJR19STUlJX01PREUgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDU1ZmU3YzU3YThiOTlhMTMwOTI1MDUyZGNkYmI3N2YwNTNkYzUwZTMKQXV0aG9yOiBtaWNoYWVsLmZpcnRoQGJ0LmNvbSA8bWljaGFlbC5maXJ0aEBidC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTE6NDA6NTEgMjAwOCArMDAwMAoKICAgIFRTRUMgZHJpdmVyOiBDaGFuZ2UgTURJTyBzdXBwb3J0IHRvIGFsbG93IGFjY2VzcyB0byBhbnkgUEhZcyBvbiB0aGUgTURJTyBidXMKCiAgICBUaGUgY3VycmVudCBUU0VDIGRyaXZlciBsaW1pdHMgTURJTyBhY2Nlc3MgdG8gdGhlIGRldmljZXMgdGhhdCBoYXZlIGJlZW4gY29uZmlndXJlZCBhcyBhdHRhY2hlZAogICAgdG8gYSBUU0VDIE1BQy4gVGhpcyBwYXRjaCBhbGxvd3MgYWNjZXNzIHRvIGFueSBQSFkgZGV2aWNlIG9uIHRoZSBNRElPIGJ1cyB0aHJvdWdoIHRoZSAnbWlpJyBjb21tYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEZpcnRoIDxtaWNoYWVsLmZpcnRoQGJ0LmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDVlOTE4YTk4YzI2ZThhYjliNWQyZDQ4ZDk5OGEyY2VkMmI1Yjg1YjMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDE2IDAwOjM4OjA1IDIwMDggLTA2MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzN3hFUkRCCgogICAgTVBDODM3eEVSREIgYm9hcmQgc3VwcG9ydCBpbmNsdWRlczoKICAgICogRERSMiAzMzBNSHogaGFyZGNvZGVkIChzb2xkZXJlZCBvbiB0aGUgYm9hcmQpCiAgICAqIExvY2FsIEJ1cyBOT1IgRmxhc2gKICAgICogSTJDLCBVQVJUIGFuZCBSVEMKICAgICogZVRTRUMgUkdNSUkgKFRTRUMwIC0gUlRMODIxMUIgd2l0aCBNSUk7CiAgICAqCSAgICAgICBUU0VDMSAtIFZTQzczODUgbG9jYWwgYnVzLCBoYXJkY29kZWQsIHJlcXVpcmVzIHNlcGVyYXRlIGZpcm13YXJlCiAgICAqCQkgICAgICAgbG9hZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBLZXZpbiBMYW0gPGtldmluLmxhbUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9lIEQnQWJicmFjY2lvIDxqb2UuZCdhYmJyYWNjaW9AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWU4OTY0Nzg4OWNkNGI1YWRhNWI1ZTdjYWQ2Y2JlNTU3MzdhMDhkNwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTI6MDY6MTYgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBzdXBwb3J0IGZvciBtb3JlIHN5c3RlbSBjbG9jayBwZXJmb3JtYW5jZSBjb250cm9scwoKICAgIFN5c3RlbSByZWdpc3RlcnMgdGhhdCBhcmUgbW9kaWZpZWQgYXJlIHRoZSBBcmJpdGVyIENvbmZpZ3VyYXRpb24KICAgIFJlZ2lzdGVyIChBQ1IpLCB0aGUgU3lzdGVtIFByaW9yaXR5IENvbnRyb2wgUmVnaXN0ZXIgKFNQQ1IpLCBhbmQgdGhlCiAgICBTeXN0ZW0gQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAoU0NDUikuCgogICAgU2lnbmVkLW9mZiBieTogTWljaGFlbCBGLiBSZWlzcyA8TWljaGFlbC5GLlJlaXNzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgRCdBYmJyYWNjaW8gPGxqZDAxNUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNmMzY2RlMDUwZTJkMjQzZTYyYjM3NDg2ZjE1NTg1NzA3ODdiZWI4CkF1dGhvcjogSmFtZXMgWWFuZyA8amFtZXMueWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDE2IDExOjU4OjA4IDIwMDggLTA2MDAKCiAgICBGU0w6IEdlbmVyYWxpemUgUElYSVMgcmVzZXQgY29tbWFuZCBwYXJzaW5nLgoKICAgIEJlZm9yZSwgdGhlIG9yZGVyIG9mIGFyZ3VtZW50cyB0byB0aGUgcGl4aXNfcmVzZXQKICAgIGNvbW1hbmQgbmVlZGVkIHRvIGJlIHN1cHBsaWVkIGluIGEgaGFyZC1jb2RlZCBvcmRlci4KICAgIEdlbmVyYWxpemUgdGhlIGNvbW1hbmQgcGFyc2luZyB0byBhbGxvdyBhbnkgb3JkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8amFtZXMueWFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWQ4Zjg2ODdiNzhjM2U5MTdiMTczZjAzODkyNjY5NTM4M2M1NTU1NQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6NDI6NDEgMjAwOCAtMDYwMAoKICAgIEZTTDogQ29udmVydCBib2FyZC9mcmVlc2NhbGUvY29tbW9uL01ha2VmaWxlIHRvIHVzZSBDT05GSUdfCgogICAgQ29udmVydCB0aGUgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9NYWtlZmlsZSB0byB1c2UKICAgIENPTkZJR18qIG9wdGlvbnMgdG8gc2VsZWN0IHdoaWNoIGZpbGVzIHRvIGNvbmRpdGlvbmFsbHkKICAgIGNvbXBpbGUgaW50byB0aGUgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbiBsaWJyYXJ5IHJhdGhlcgogICAgdGhhbiBjb25kaXRpb25hbGx5IGNvbXBpbGluZyBlbnRpcmUgZmlsZXMuCgogICAgTm93IGhhbmRsZXM6OgoJQ09ORklHX0ZTTF9QSVhJUwoJQ09ORklHX0ZTTF9ESVVfRkIKCUNPTkZJR19QUV9NRFNfUElCCgogICAgQ09ORklHX0lEX0VFUFJPTSBpcyBpbnRyb2R1Y2VkIHVudGlsIENGR19JRF9FRVBST00gaXMgZ29uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdjMjIyMWViMjMwMzcyYTllNTM3YzRmNjYzNmIxNDdiMDkwOTMyNWYKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTY6Mzg6MzggMjAwOCArMDgwMAoKICAgIFVzZSBDT05GSUdfVUxJNTI2WCBhcyBNUEM4NjEwSFBDRCBkZWZhdWx0IEV0aGVybmV0IGRyaXZlcgoKICAgIFVzZSBkcml2ZXIvbmV0L3VsaTUyNnguYyBhcyBNUEM4NjEwSFBDRCBkZWZhdWx0IEV0aGVybmV0IGRyaXZlci4KICAgIFJlbW92ZSB1bnVzZWQgZXRoZXJuZXQgQ09ORklHXyBvcHRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcxMWE3OTQ2Mjc3ZDJlMjlhZjQ4MTAxMWU4NjM1ZTk5NzVjNTRlNDUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE0OjA1OjE0IDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggUUUgRVRIUFJJTUVzIHRvIGNvcnJlY3QgJ0ZTTCBVRUMwJyB2YWx1ZQoKICAgIGNvbnRpbnVhdGlvbiBvZiBjb21taXQgYjk2YzgzZDRhZTQ3NWE3MGVmMjYzNWNkMGU3NDgxNzRjNDRjODYwMQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzYzZWVhOWZmN2YxOWEyY2JhMTdmMjYyYmQxNzU1OWYxNjZlMTM0ZQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMDk6NTE6MTIgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGNsZWFuIHVwIG1wYzgzNjBlbWRzLmMgd2FybmluZ3MKCiAgICBtcGM4MzYwZW1kcy5jOiBJbiBmdW5jdGlvbiAnZnRfYm9hcmRfc2V0dXAnOgogICAgbXBjODM2MGVtZHMuYzozMjc6IHdhcm5pbmc6IGFzc2lnbm1lbnQgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3QKICAgIG1wYzgzNjBlbWRzLmM6MzI5OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ2ZkdF9nZXRwcm9wJyBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdAogICAgbXBjODM2MGVtZHMuYzozMzQ6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnZmR0X3NldHByb3AnIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CiAgICBtcGM4MzYwZW1kcy5jOjM0MTogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdAogICAgbXBjODM2MGVtZHMuYzozNDM6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnZmR0X2dldHByb3AnIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CiAgICBtcGM4MzYwZW1kcy5jOjM0ODogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAyIG9mICdmZHRfc2V0cHJvcCcgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYwOTg4MGVhNzJhMWM4MDZkYjIyM2NlNTk0YzVmYjFiNjU0MmZmNmEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE2OjE0OjQ2IDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggcGh5LWNvbm5lY3Rpb24tdHlwZSBmaXh1cCBjb2RlCgogICAgdXNlIHRyZWUgcGFzc2VkIHRvIHVzIGluIGxvY2FsIGJsb2IsIG5vdCBnbG9iYWwgZmR0LgoKICAgIEFsc28gdXNlIGZkdF9wYXRoX29mZnNldCB0byBjb252ZXJ0IHRvIHJlbGF0aXZlIG9mZnNldCwgc2luY2UgYWJzb2x1dGUKICAgIHJlZmVyZW5jZSBpcyBuZWVkZWQgdG8gY2hlY2sgZm9yIHJnbWlpLWlkIG1vZGUgc3RyaW5nIHZhbHVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmI0Yzk1MmJlN2M0MzU3YTEzZTgzOWQ0OGRmODA4NTM4MjBjMzNlYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBKYW4gMTQgMDk6MDE6NDAgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBtcGM4MzEzL21wYzgzMTUvbXBjODM0OWl0eCBNYWtlZmlsZXMgZm9yIHNpbGVudCBidWlsZCAod2l0aCAtcykKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMWQ4ZWQyYzA4ZGExNGIxNjg2NThjYzVmYTc4NTI5ZDQ2MWFlYTcwCkF1dGhvcjogUG9vbmFtIEFnZ3J3YWwgPGIxMDgxMkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDA5OjQxOjE0IDIwMDggKzA1MzAKCiAgICBDaGFuZ2VzIGluIHVib290IEREUiBjb25maWd1cmF0aW9uIGZvciBNUEM4MzEzZVJEQgoKICAgIFRoZXNlIGNoYW5nZXMgd2VyZSBpZGVudGlmaWVkIGJ5IEhpZ2hTbWl0aCBCaWxsICxNYXp6eWFyIGFuZCBKb3NlcGggZm9yCiAgICBERFIgY29uZmlndXJhdGlvbiBpbiB1LWJvb3QgY29kZS4gU29tZSBhcmUgcmVsYXRlZCB0byBwZXJmb3JtYW5jZSwgc29tZQogICAgYWZmZWN0IHN0YWJpbGl0eSBhbmQgc29tZSBjb3JyZWN0IGZldyBiYXNpYyBlcnJvcnMgaW4gdGhlIGN1cnJlbnQKICAgIGNvbmZpZ3VyYXRpb24uCgogICAgVGhlIGNoYW5nZXMgaGF2ZSBiZWVuIHRlc3RlZCBhbmQgZm91bmQgdG8gZ2l2ZSBiZXR0ZXIgbWVtb3J5IGxhdGVuY3kKICAgIGZpZ3VyZXMgb24gTVBDODMxM2VSREIuTE1CZW5jaCBmaWd1cmVzIHByb3ZlIGl0LgoKICAgIFRoZSBjaGFuZ2VzIGFyZToKCiAgICAtIENTMF9DT05GSUdbIEFQX25fRU5dIGlzIGNoYW5nZWQgZnJvbSAxIHRvIDAKICAgICAgKHRoaXMgbWF5IGltcHJvdmUgcGVyZm9ybWFuY2UgZm9yIGFwcGxpY2F0aW9uIHdpdGggbWFueSByZWFkCiAgICAgIG9yIHdyaXRlIHRvIG9wZW4gcGFnZXMpLgogICAgLSBDUzBfQ09ORklHW09EVF9XUl9DRkddIGlzIGN1cnJlbnRseSBjaGFuZ2VkIGZyb20gMTAwIHRvCiAgICAgIDAwMSAoYWN0aXZhdGluZyBhbGwgdGhlIENTIHdoZW4gb25seSBvbmUgaXMgdXNlZCBtYXkgY2F1c2UKICAgICAgdW53YW50ZWQgbm9pc2Ugb24gdGhlIHN5c3RlbSkKCiAgICAtIFRJTUlOR19DRkdfMVtBQ1RUT1BSRV0gaXMgY2hhbmdlZCBmcm9tIDljbGtzIHRvIDhjbGtzIChiYXNlZCBvbgogICAgICBUcmFzPTQ1bnMpCiAgICAtIFRJTUlOR19DRkdfMVtSRUZSRUNdIGNoYW5nZWQgZnJvbSAyMSBjbGtzIHRvIDE4Y2xrcy4KCiAgICAtIFRJTUlOR19DRkdfMltBTF0gdmFsdWUgY2hhbmdlZCBmcm9tIDAgc2V0dGluZyB0byAxIGNsayB0bwogICAgICBjb21wbHkgd2l0aCB0aGUgMyBPRFQgY2xrIHJlcXVpcmVtZW50cykKICAgIC0gVElNSU5HX0NGR18yW0NQT10gd2FzIHNldCB0byBhIHJlc2VydmVkIHZhbHVlLCBjaGFuZ2VkIHRvIFJMKzMvNC4KICAgIC0gVElNSU5HX0NGR18yW0ZPVVJfQUNUXSBpcyBjaGFuZ2VkIGZyb20gMTAgY2xrcyB0byA2Y2xrcy4KCiAgICAtIEREUl9TRFJBTV9NT0RFW0FMXWNoYW5nZWQgZnJvbSAwIHRvIDEuCiAgICAtIEREUl9TRFJBTV9NT0RFW1dSUkVDXSBjaGFuZ2VkIGZyb20gMSBjbGsgdG8gMyBjbGtzLgoKICAgIC0gRERSX1NEUkFNX0lOVEVSVkFMW1JFRklOVF0gaXMgY2hhbmdlZCBmcm9tIDB4MDMyMCB0byAweDA1MTAuCiAgICAtIEREUl9TRFJBTV9JTlRFUlZBTFtCU1RPUFJFXSBpcyBjaGFuZ2VkIGZyb20gMHg2NCB0byAweDA1MDAuCgogICAgVGhlIHBhdGNoIGlzIGJhc2VkIG9mIGdpdDovL3d3dy5kZW54LmRlL2dpdC91LWJvb3QtbXBjODN4eC5naXQKICAgIFRoZSBsYXN0IGNvbW1pdCBvbiB0aGlzIHRyZWUgd2FzIDY3NzVjNjg2ODNhNTNjN2FiYzc3ODc3NDY0MWFhYzZmODMzYTJjYmYKCiAgICBTaWduZWQtb2ZmLWJ5OiBQb29uYW0gQWdncndhbC1iMTA4MTIgPGIxMDgxMkBmcmVlc2NhbGUuY29tPgogICAgQ2M6IEJpbGwgSGlnaFNtaXRoIDxCaWxsLkhpZ2hzbWl0aEBmcmVlc2NhbGUuY29tPgogICAgQ2M6IFJhenpheiBNYXp5YXIgPE1SYXp6YXpAZnJlZXNjYWxlLmNvbT4KICAgIENjOiBKb3NlcCBQIEogPFBKLkpvc2VwaEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNWNkZDdkZjRhMDZlZGI5MTUzOWM5YTJlYTdjMTc4YTg3MGMzYTk1CkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglTYXQgSmFuIDEyIDEzOjI0OjE0IDIwMDggLTA1MDAKCiAgICBFbmFibGUgdGhlIGlzZHJhbSBjb21tYW5kIG9uIHRoZSBNUEM4MzYwRU1EUyBib2FyZAoKICAgIFRoZSBpc2RyYW0gY29tbWFuZCBwcmludHMgb3V0IGRlY29kZWQgaW5mb3JtYXRpb24gdGhlICJzZXJpYWwgcHJlc2VuY2UKICAgIGRldGVjdCIgKFNQRCkgY2hpcCBvbiB0aGUgU0RSQU0gU0lNTXMuICBUaGlzIGNhbiBiZSB2ZXJ5IGhlbHBmdWwgd2hlbgogICAgZGVidWdnaW5nIG1lbW9yeSBjb25maWd1cmF0aW9uIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiZDUyMmNlNGFmZGEzZDQ4NjhlZThjOTEzZjUzOTQwOTQzMjZiZTEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTg6NDg6MjQgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgc3VwcG9ydCBmb3IgTVBDODMxNUVSREIgYm9hcmQKCiAgICBUaGUgZmVhdHVyZXMgbGlzdDoKICAgIC0gQm9vdCBmcm9tIE5PUiBGbGFzaAogICAgLSBERFIyIDI2Nk1IeiBoYXJkY29kZWQgY29uZmlndXJhdGlvbgogICAgLSBMb2NhbCBidXMgTk9SIEZsYXNoIFIvVyBvcGVyYXRpb24KICAgIC0gSTJDLCBVQVJULCBNSUkgYW5kIFJUQwogICAgLSBlVFNFQzAvMSBzdXBwb3J0CiAgICAtIFBDSSBob3N0CgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjA1ODg0ZWZhNjE0ZTRkOGE5NDEzMTU4ZmMyMjhlMGRjMDJhYjcwNApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxODo0Njo1MCAyMDA4ICswODAwCgogICAgbXBjODN4eDogQWRkIGNvbmZpZyBvZiBlVFNFQyBlbWVyZ2VuY3kgcHJpb3JpdHkgaW4gU1BDUgoKICAgIFRoZSBUU0VDIGVtZXJnZW5jeSBwcmlvcml0eSBkZWZpbml0aW9uIG9mIDgzMXgvODM3eAogICAgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGRlZmluaXRpb24gb2YgODM0eCBpbiBTUENSIHJlZ2lzdGVyLgoKICAgIEFkZCB0aGUgb3RoZXIgY29uZmlnIG9mIFRTRUMgZW1lcmdlbmN5IHByaW9yaXR5IGludG8KICAgIGNwdV9pbml0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5Yjk1ODIzNGIwNzgzZjEzZDkyZjAwN2Y3NTNmZDJjM2FlMmM4NjgwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDExIDE4OjQyOjE5IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmUgY2FjaGUgY29uZmlnIGZyb20gTVBDODM2MEVSREsuaAoKICAgIFRoZSBNUEM4MzYwRVJESyBib2FyZCBzdXBwb3J0IHBhdGNoIGlzIGFkZGVkIGJlZm9yZQogICAgdGhlIGNvbW1pdCAyYzViNDhmYzIwNWMzZTI3NTI5MTBkYThmMzkyMDllZDA3NTkyOWU1CiAgICBzbywgbWlzcyBjbGVhbiB1cCBpdC4KCiAgICBUaGUgcGF0Y2ggY2xlYW4gdXAgdGhlIG1pc3MgY2FjaGUgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkOWQyMzA1M2Q0MzVjMDhmYzg2OTUwMTdiNWNiOTAwM2ZjZGE3ODYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAyMzowOTozMiAyMDA4ICswMzAwCgogICAgbmFuZDogRlNMIFVQTSBOQU5EIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDZjYjIyMzlhZTc2ZmFlZTY0NDM0Mjg2YzRmOGZjNzEzNzQ3MDJkZDIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJVHVlIEphbiAxNSAwODo1OTo0NCAyMDA4ICswOTAwCgogICAgT25lTkFORDogU2VwYXJhdGUgVS1Cb290IGRlcGVuZGVudCBjb2RlIGZyb20gT25lTkFORAoKICAgIE9uZU5BTkQ6IFNlcGFyYXRlIFUtQm9vdCBkZXBlbmRlbnQgY29kZSBmcm9tIE9uZU5BTkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDgzYTQ5YzhkZDc5OThiZTJkMWYwZDQyMDU5N2EzNmJiZjBiZjQxNjQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxMDozMzo0NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBTZXF1b2lhIGNvZGluZyBzdHlsZSBjbGVhbnVwIGFuZCBiZWF1dGlmaWNhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDRiM2NjNmVjZTljNDU1NTA0Y2YxMjkwOWZhZTM4ZDA4NWQ4NDhhYzAKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVHVlIEphbiAxNSAxNDozNTo1OCAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBSZWZhY3RvciBFQ0MgUE9TVCBmb3IgQU1DQyBEZW5hbGkgY29yZQoKICAgIFRoZSBFQ0MgUE9TVCByZXBvcnRlZCBpbnRlcm1pdHRlbnQgZmFpbHVyZXMgcnVubmluZyBhZnRlciBwb3dlci11cCBvbgogICAgdGhlIEtvcmF0IFBQQzQ0MEVQeCBib2FyZC4JRXZlbiB3aGVuIHRoZSB0ZXN0IHBhc3NlZCwgdGhlIGRlYnVnZ2luZwogICAgb3V0cHV0IG9jY2FzaW9uYWxseSByZXBvcnRlZCBhZGRpdGlvbmFsIHVuZXhwZWN0ZWQgRUNDIGVycm9ycy4KCiAgICBUaGlzIHJlZmFjdG9yaW5nIGhhcyB0aHJlZSBtYWluIG9iamVjdGl2ZXM6ICgxKSBtaW5pbWl6ZSB0aGUgY29kZQogICAgZXhlY3V0ZWQgd2l0aCBFQ0MgZW5hYmxlZCBkdXJpbmcgdGhlIHRlc3RzLCAoMikgYWRkIG1vcmUgY2hlY2tpbmcgb2YgdGhlCiAgICByZXN1bHRzIHNvIGFueSB1bmV4cGVjdGVkIEVDQyBlcnJvcnMgd291bGQgY2F1c2UgdGhlIHRlc3QgdG8gZmFpbCwgYW5kCiAgICAoMykgdXNlIHN5bmNocm9uaXphdGlvbiAob25seSkgd2hlcmUgcmVxdWlyZWQgYnkgdGhlIHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAyNDY1NjY1YjczYWMyZjY4OGFmOTQ1YjFlZDUxMDc1MmFmYTgxNmE0CkF1dGhvcjogRGF2aWQgU2FhZGEgPERhdmlkLlNhYWRhQGVjaXRlbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEwOjQwOjI0IDIwMDggKzAyMDAKCiAgICBRRSBVRUM6IEV4dGVuZCBudW1iZXIgb2Ygc3VwcG9ydGVkIFVFQ3MgdG8gNAoKICAgIFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBVRUNzIHRvIDQuIE5vdGUgdGhhdCB0aGUKICAgIHByb2JsZW0gb2YgUUUgdGhyZWFkIHJlc291cmNlcyBleGhhdXN0aW9uIGlzIHJlc29sdmVkIGJ5IHNldHRpbmcgdGhlCiAgICBjb3JyZWN0IG51bWJlciBvZiBRRSB0aHJlYWRzIGFjY29yZGluZyB0byBFdGhlcm5ldCB0eXBlIChHQkUgb3IgRkUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNhYWRhIDxkYXZpZC5zYWFkYUBlY2l0ZWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNThkMjA0MjU2Y2IxY2UxYmQzMjM4NDdkOWY2NDRhY2Y3MGE3MmU2YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMTYgMDA6MDE6MDEgMjAwOCArMDEwMAoKICAgIExXTU9ONTogZW5hYmxlIGh1c2ggc2hlbGwgYXMgY29tbWFuZCBsaW5lIHBhcnNlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjZmZmIxODgzZmVlZGRkYzgxM2Q4YTUwN2QwNjBmMmE5NDBlYjJiMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTUgMTc6MjI6MjggMjAwOCArMDEwMAoKICAgIEFEUzUxMjE6IGRpc2FibGUgd2F0Y2hkb2c7IGVuYWJsZSBpbWFnZSB0aW1lc3RhbXBzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYjRmNzc4ZmU5ZDFkZTYxZDc0NDViYWU3YjMyNTM0MGFiYTY5NjhkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAxNSAxNzoyMToyOCAyMDA4ICswMTAwCgogICAgVEs4ODVEOiBmaXhlcyBmb3IgYmlnZ2VyIGZsYXNoIHNlY3RvciBzaXplcyBvbiBuZXcgbW9kdWxlczsKICAgIGFkanVzdCBkZWZhdWx0IGVudmlyb25tZW50OwogICAgZGlzYWJsZSBTQ0MgZXRoZXJuZXQgKG5vdCB1c2VkIG9uIHRoaXMgYm9hcmQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjkxZDdhZTVjYTg5YWNmOWZhMWVkMTAxNWRjMDc4Y2YyOTU4MTYwNwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEphbiAxNSAxNzo0ODoxMyAyMDA4ICswOTAwCgogICAgcGNtY2lhOiBSZW1vdmUgQ09ORklHX0NPTU1BTkRTIGZyb20gbWFydWJ1biBwY21jaWEgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDc2ZTQ5YWE3ZmI4ZTc2Y2M0OTA5MmMxYWNkNTNmZmY5MjFlMjYzNjAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBKYW4gMTUgMjM6MjU6MjUgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBTSDc3MTAvU0g3NzEyCgogICAgU0g3NzEwL1NINzcxMiBvZiBTSDMgQ1BVIGFyZSBzdXBwb3J0ZWQuCiAgICBTSDc3MVggaXMgY2FsbGVkIFNILUV0aGVyLCBhbmQgaGFzIHRoZSBFdGhlciBjb250cm9sbGVyIGluIENQVS4KICAgIFRoZSBkcml2ZXIgb2YgRXRoZXIgaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDYzYTExYmU2ODMwNjg3MGUwNGQzODUxZWQ5ZmE0MTk1NWNkZjQ4OTQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBKYW4gMTUgMjM6MDY6MTcgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBvZiBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkgdG8gU3VwZXJICgogICAgVGhpcyBwYXRjaCBhZGQgdGhlIHN1cHBvcnQgb2YgbWFwX3BoeXNtZW0oKSBhbmQgdW5tYXBfcGh5c21lbSgpCiAgICB1c2VkIHdpdGggQ29tbW9uIEZsYXNoIEludGVyZmFjZShDRkkpIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZGIzOTk1ZmU1MTY0YWM1ZDYzMGI3ZWNiOTYyODZhOTgyOGRmYmI1NApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIEphbiA5IDE0OjQyOjI3IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIG1haW50YWluZXIgb2YgTVM3NzIwU0UgdG8gdGhlIE1BSU5UQUlORVIgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBkY2Q5OWU4OGUwM2Q1NmEwYWVlY2Q0MmI1MDdkMmQyOWQyMGFiMGUzCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgSmFuIDkgMTQ6Mzk6NTggMjAwOCArMDkwMAoKICAgIHNoOiBGaXggYm9hcmQgbmFtZSBpbiBNUzc3MjBTRSdzIGNvbmZpZy5tawoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjMGEwNGQ5MzczNGQ3NjhiMzlkYmI3MmZiNTAxYjY1NjE0Yzg2MTVkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgSmFuIDkgMTQ6Mzc6MzYgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgTVM3NzIwU0UgdG8gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBiMmI1ZTJiYjc4YTFlZjRhZTg1MDRmNWEyNmJmZGMzMjkzZWE3NGFlCkF1dGhvcjogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgpEYXRlOglNb24gRGVjIDMgMjI6NTg6NTAgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBmb3IgTVM3NzIwUlAwMiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIENDOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBBY2tlZC1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDdjMTBjNTcyNzU5MDE5MzlhOGVjZTRhOWVmM2U3Y2NiN2MxMmEwZWQKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNDozMDowMiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IGZvciBTSDc3MjAgaW4gc2VyaWFsX3NoIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CiAgICBDQzogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQWNrZWQtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBmOTkxM2E4ZWU3MWZmMTRmY2ZjMWM3ZmQwZTY5MTJmODk3ZTY5NDAzCkF1dGhvcjogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgpEYXRlOglNb24gRGVjIDMgMjI6NTg6NDUgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBTSDMgYW5kIFNINzcyMAoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIENDOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBBY2tlZC1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDlhZGZjOWZiOWFkZTY0Y2RmMWVkOWZmODQyZTRmOTAwY2JkYTc4YmQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTUgMTA6MTE6MDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcgaW4gY3B1L3BwYzR4eC80NHhfc3BkX2RkcjIuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxN2JlZjY4MDk3YWIzNjkyNTAwYTM2ZmIzMTExNWJmZjc5MTBhYTk5CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJTW9uIEphbiAxNCAxNDowNDo0MiAyMDA4ICswMTAwCgogICAgcHBjXzR4eDogRml4IHBvc3Qgc3ByLmMgZm9yIFBQQzQwNQoKICAgIHBvc3QvY3B1L3BwYzR4eC9zcHIuYyBjb250YWluZWQgYSBmZXcgY2hlY2tzIGZvciByZWdpc3RlcnMgb25seSBwcmVzZW50CiAgICBmb3IgUFBDNDQwIGFuZCBkZXJpdmF0ZXMgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMDZjNDI4YmNkNDQxMzAxNGI0MzIzNmU3Nzc2NTAyMjA3MTQyNGZhNgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxMToxMjowMSAyMDA4ICswODAwCgogICAgUUU6IGZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBxZS5jOiBJbiBmdW5jdGlvbiAncWVfdXBsb2FkX2Zpcm13YXJlJzoKICAgIHFlLmM6MzkwOiB3YXJuaW5nOiBwb2ludGVyIHRhcmdldHMgaW4gcGFzc2luZyBhcmd1bWVudCAyCiAgICB1ZWMuYzogSW4gZnVuY3Rpb24gJ3VlY19pbml0aWFsaXplJzoKICAgIHVlYy5jOjEyMzY6IHdhcm5pbmc6ICd1ZWNfaW5mbycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTBkZDk5ZDUxZWZhNTVmZTAyM2UxOWM5N2VhZDkyNjgzNzI1ZWIxMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEphbiAxNCAxMDowNTowNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgS2lsYXVlYSBDUExEIGNvbmZpZ3VyYXRpb24gd2l0aCBVU0IgUEhZIHJlc2V0IGJpdAoKICAgIE5vdyB0aGF0IGJpdCAyOSBpcyB0aGUgVVNCIFBIWSByZXNldCBiaXQsIHVwZGF0ZSB0aGUgS2lsYXVlYSBwb3J0CiAgICB0byByZW1vdmUgdGhlIFVTQiBQSFkgcmVzZXQgYWZ0ZXIgcG93ZXJ1cC4gVGhlIENQTEQgd2lsbCBrZWVwIHRoZQogICAgVVNCIFBIWSBpbiByZXNldCAoYWN0aXZlIGxvdykgdW50aWwgdGhlIGJpdCBpcyBzZXQgdG8gMSBpbgogICAgYm9hcmRfZWFybHlfaW5pdF9mKCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY0M2FkNTM5MDhmMWVhODNhN2MyNmMzNTA1YmJlODQzODJlNDdhYWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDIzOjI2OjQ1IDIwMDggKzAxMDAKCiAgICBBUk06IHVwZGF0ZSBtYWNoLXR5cGVzLmggZnJvbSAyLjYuMjQtcmM3IExpbnV4IGtlcm5lbCB0cmVlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZDEwMzA3MWI3YjBlM2VjODg4ODU5YmZjYjlkNDIyNTY1ZTZkNzUwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAyMzozNzo1MCAyMDA4ICswMTAwCgogICAgQURTNTEyMTogRml4IHR5cG8gaW4gYWRzNTEyMS5jLCBhZGp1c3QgZGVmYXVsdCBlbnZpcm9ubWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTFiNjdkMDZmYWE2NzBjNjVkZTZmMjllYzViNWFhY2U3NGIyYTA0NwpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDI0IDE4OjE4OjQzIDIwMDcgLTA2MDAKCiAgICBBRFM1MTIxOiBNQVggc2xldyByYXRlIGZvciBQQVRBIHBpbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZDUzMWFhYzM0YWFhZDEzOGYxNmNhY2RiNTFkNjE5MDhkNTljMGUyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAyMTowNTo1MiAyMDA4ICswMTAwCgogICAgRml4IE1ha2VmaWxlIGRlcGVuZGVuY3kgcHJvYmxlbSB3aXRoIHBhcmFsbGVsIGJ1aWxkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg5OTY3ODQxZTNlYTAyZTNkMGU1ZTEyOTVhYjY4NzU3NmU1YjEwODkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDE5OjUxOjM5IDIwMDggKzAxMDAKCiAgICBNUEM4NTQ0RFM6IGZpeCBib2FyZCBNYWtlZmlsZSBmb3Igc2lsZW50IGJ1aWxkICh3aXRoIC1zKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmQ3MTRmODJmYjRiOGJiN2UyNjdlOWM3MWI4MDA5YmM2NzBiZmU4OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMTY6NDQ6MDggMjAwOCArMDEwMAoKICAgIFBNQzQ0MCBib2FyZDogZml4IGJvYXJkIE1ha2VmaWxlIGZvciBvdXQtb2YtdHJlZSBidWlsZGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmViM2ZiMTU1ODhkMzE5YmQzMDk5ZDVmOWI5MTAwNTFkZmVhYjZiMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMTY6MDc6NDQgMjAwOCArMDEwMAoKICAgIE1ha2FsdTogZml4IGNvbXBpbGUgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGExZTAzYmNhZGM3NzM0Njg4YTIxZThkZDJlNDZhNGY2MDgxOTNjMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBKYW4gMTMgMTI6MzY6MTIgMjAwOCArMDEwMAoKICAgIGNtZF9uYW5kIDogZml4IGNvbXBpbGVyIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4MjI1ZDFlM2FjMGFiMTQ3Y2RkZTRiMDA0MjgxMjU4MzM4MGFmYjhhCkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPHJpbmNld2luZEBkaXNjd29ybGQuZGFzY29uLmRlPgpEYXRlOglTYXQgSmFuIDEyIDIwOjI5OjQ3IDIwMDggKzAxMDAKCiAgICBDRkk6IEZpeCBDT05GSUdfRkxBU0hfQ0ZJX0xFR0FDWSBjb21waWxhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJiMmY0M2VkNmEzMGVjZTc3Zjc2MTkxYzg0NWFjOTUyNjdkYWEzMWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDAyOjE5OjQ0IDIwMDggKzAxMDAKCiAgICBNUEM4MzYwRVJESzogZml4IGluY29ycmVjdCBpbml0aWFsaXphdGlvbiBvZiBDRkdfSTJDX05PUFJPQkVTCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwOGU5OWUxZGQwMWEzZTBlM2RjM2E3MTM4ZWI4MjdjOTk3ZTJiNzRkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAwMjoxOToxMyAyMDA4ICswMTAwCgogICAgTVBDOHh4IEZFQyBkcml2ZXI6IGZpeCBjb21waWxlciB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWU2ZDEwNTZkMmMyZTRkMTI2NjQxM2MwYWU4YTZkNTUyOWVjZGU0YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMDA6NTk6MjEgMjAwOCArMDEwMAoKICAgIEZpeCBNYWtlZmlsZSBkZXBlbmRlbmNpZXMgaXNzdWVzOyBhbGxvdyBzaWxlbnQgYnVpbGQKCiAgICAtIGdldCByaWQgb2YgInZlcnNpb24iIHRhcmdldCB3aGljaGRpZG4ndCByZWFsbHkgd29yawogICAgLSBtYWtlIGF1dG9jb25mLm1rIGRlcGVuZCBvbiB2ZXJzaW9uX2F1dG9nZW5lcmF0ZWQuaCB0byBtYWtlIHN1cmUKICAgICAgdG8gcmVidWlsZCBmaWxlcyBhcyBuZWVkZWQKICAgIC0gYWRkIFhFQ0hPIG1hY3JvIHRvIGFsbG93IGZvciBzaWxlbnQgYnVpbGQgdXNpbmcgIm1ha2UgLXMiCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMzQzYWI4M2Q1MTM1YjU1OGFhNThkYjliZThmYzdmYWE2OGQ3N2VkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAwMDo1NTo0NyAyMDA4ICswMTAwCgogICAgQURTNTEyMWU6IGZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGYyYjZmNDYxMDYyN2ZlM2Q2MDc2MjBlMjUwODI5MTZhMDE1Mzg4NzUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDAwOjU1OjE4IDIwMDggKzAxMDAKCiAgICBNVU5JQ2VzOiBmaXggYm9hcmQgTWFrZWZpbGUgZm9yIHJlbW90ZSBidWlsZCBkaXJlY3RvcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJhZDRkMzk5OWZlODAxYWE3MTYyMjFkN2Q5YTRjNWJkYWQ3NDc4M2EKQXV0aG9yOiBPbGl2ZXIgV2ViZXIgPGFsbW9lbGlAZ214LmRlPgpEYXRlOglXZWQgSmFuIDkgMTc6MDQ6MzggMjAwOCArMDEwMAoKICAgIE1QQzUyMDA6IGRvbid0IHVzZSBoYXJkY29kZWQgTUJBUiBhZGRyZXNzIGluIEJlc3Rjb21tIGZpcm13YXJlCgogICAgU2lnbmVkLW9mZi1ieTogT2xpdmVyIFdlYmVyIDxhbG1vZWxpQGdteC5kZT4KCmNvbW1pdCAwMGFjNTBlMzQ4ZDFiYWNlMjdhMTc0YjdmNTI4ZDExM2JjN2NkZjdmCkF1dGhvcjogQW5kcmVhcyBFbmdlbCA8YW5kcmVhcy5lbmdlbEBlcmljc3Nvbi5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNzoxMDo1NiAyMDA4ICswMTAwCgogICAgTWFrZSBib290cmV0cnkgd29yayB3aGVuIGNvbW1hbmQgbGluZSBlZGl0aW5nIGlzIGVuYWJsZWQKCiAgICBDdXJyZW50bHksIHdoZW4gQ09ORklHX0NNRExJTkVfRURJVElORyBpcyBzZXQsIGJvb3RyZXRyeSBkb2Vzbid0IHdvcmsuCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgRW5nZWwgPGFuZHJlYXMuZW5nZWxAZXJpY3Nzb24uY29tPgoKY29tbWl0IDYzMmRlMDY3MmQzYzNhYjUzYWQ3OThjNDdmNWYxZWIyNjAwOGEwZTQKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJRnJpIEphbiAxMSAyMzoyNjoxOCAyMDA4IC0wNTAwCgogICAgUmVmYWN0b3IgY29kZSBmb3IgImkyYyBzZHJhbSIgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDBkZjZiODQ0NmM0NzIxYjkxY2UzMTE1NDgxMTQ4OTExMzAzNzEwODMKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEphbiAxMCAyMjoyMzozOSAyMDA4IC0wNTAwCgogICAgRml4ICJpMmMgc2RyYW0iIGNvbW1hbmQgZm9yIEREUjIgRElNTXMKCiAgICBNYW55IG9mIHRoZSBTUEQgYnl0ZXMgZm9yIEREUjIgU0RSQU0gYXJlIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgdGhlCiAgICAiaTJjIHNkcmFtIiBjb21tYW5kLiAgVGhpcyBwYXRjaCBwcm92aWRlcyBjb3JyZWN0IGFsdGVybmF0aXZlCiAgICBpbnRlcnByZXRhdGlvbnMgd2hlbiBERFIyIG1lbW9yeSBpcyBkZXRlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA2NDEzNGYwMTEyNTQxMjM2MTg3OThmZjc3YzQyYmExOTZiMmVjNDg1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMiAyMDozMTozOSAyMDA4ICswMTAwCgogICAgRml4IGxpbmtlciBzY3JpcHRzOiBhZGQgTk9MT0FEIGF0cmlidXRlIHRvIC5ic3MvLnNic3Mgc2VjdGlvbnMKCiAgICBXaXRoIHJlY2VudCB0b29sY2hhaW4gdmVyc2lvbnMsIHNvbWUgYm9hcmRzIHdvdWxkIG5vdCBidWlsZCBiZWNhdXNlCiAgICBvciBlcnJvcnMgbGlrZSB0aGlzIG9uZSAoaGVyZSBmb3Igb2NvdGVhIGJvYXJkIHdoZW4gYnVpbGRpbmcgd2l0aAogICAgRUxESyA0LjIgYmV0YSk6CiAgICBwcGNfNHh4LWxkOiBzZWN0aW9uIC5ib290cGcgW2ZmZmZmMDAwIC0+IGZmZmZmMjNiXSBvdmVybGFwcyBzZWN0aW9uIC5ic3MgW2ZmZmVlOTAwIC0+IGZmZmZmOGFiXQoKICAgIEZvciBtYW55IGJvYXJkcywgdGhlIC5ic3Mgc2VjdGlvbiBpcyBiaWcgZW5vdWdoIHRoYXQgaXQgd3JhcHMgYXJvdW5kCiAgICBhdCB0aGUgZW5kIG9mIHRoZSBhZGRyZXNzIHNwYWNlICgweEZGRkZGRkZGKSwgc28gdGhlIHByb2JsZW0gd2lsbCBub3QKICAgIGJlIHZpc2libGUgdW5sZXNzIHlvdSB1c2UgYSA2NCBiaXQgdG9vbCBjaGFpbiBmb3IgZGV2ZWxvcG1lbnQuIE9uCiAgICBzb21lIGJvYXJkcyBob3dldmVyLCBjaGFuZ2VzIHRvIHRoZSBjb2RlIHNpemUgKGR1ZSB0byBkaWZmZXJlbnQKICAgIG9wdGltaXphdGlvbnMpIHdlIGJhaWwgb3V0IHdpdGggc2VjdGlvbiBvdmVybGFwcyBsaWtlIGFib3ZlLgoKICAgIFRoZSBmaXggaXMgdG8gYWRkIHRoZSBOT0xPQUQgYXR0cmlidXRlIHRvIHRoZSAuYnNzIGFuZCAuc2JzcwogICAgc2VjdGlvbnMsIHRlbGxpbmcgdGhlIGxpbmtlciB0aGF0IC5ic3MgZG9lcyBub3QgY29uc3VtZSBhbnkgc3BhY2UgaW4KICAgIHRoZSBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNhZmFjNzllYzI3YjkxZGYxODVmMDkwYjMxZGFkOTYyMDc3OWY0NDAKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDExIDIwOjQyOjU4IDIwMDggLTA2MDAKCiAgICBVU0I6IEFkZCBQaGlsaXBzIDE1NjEgUENJLU9IQ0kgaWRzCiAgICAobmVlZGVkIGZvciBNNTQ3NUVWQikKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWU4ZGVmNjczMWNkN2JlYzc0YmZmNDJhMTZiMTM5ZGUwNDAxMDM1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTIgMTU6NTE6MzQgMjAwOCArMDEwMAoKICAgIEFkZCBNQUlOVEFJTkVSUyBlbnRyaWVzIGZvciBpZHM4MjQ3LCBqdXBpdGVyLCBtdW5pY3NlLCBzYzMgYW5kIHVjMTAxCiAgICBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVkNDllMGUxNTJhOGI4MWNjMDYwMjI3MWU4ZmQyNTkzNzFmNTU5YjcKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxMjowMzo0MyAyMDA4ICswMTAwCgogICAgTVBDNTEyWDogQ2xlYW51cCBidXMgY2xvY2sgbmFtZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgNjZhOTQ1NWI2YmY0NmQ2OWNlYzVjODhkMWE2MDBkMWQ5YTEwNjcwZApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTc6MTY6NTkgMjAwOCArMDEwMAoKICAgIE1QQzUxMlg6IEZpeGVkIHR5cG8gaW4gbWFjcm8gbmFtZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyODFmZjlhNDVjZjllYjE3YjhhOWFmYzQzNmNiNzgzY2YxZjYyMzYzCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxNzoxNjoxNSAyMDA4ICswMTAwCgogICAgYWRzNTEyMTogQWRkZWQgc3VwcG9ydCBmb3IgRkRULgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGExMGZmOTE5NjE4M2U3ZTVmMmFlM2M0ZjVmM2NiZTkyYWU5Y2I3MTkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEyIDAxOjA1OjUwIDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGY2ZGI5NDU2NDllNWU5ZDBjN2VmZTMzYjUwN2QyNDNjZGM4NmNmMDMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNToxNToxNyAyMDA4ICswMTAwCgogICAgRml4ZWQgc3ludGF4IGVycm9yIGluIGZ1bmN0aW9uIGluaXRfZTMwMF9jb3JlKCkgb2YgbXBjODN4eC9zdGFydC5TIGlmCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGZhMDU2NjRjZDhjN2FiMWVjZjA2MmFhNzNiOTkyYjdiNThiYmE0OWMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNToxNToxNiAyMDA4ICswMTAwCgogICAgTVVOSUNlczogU2V0IHRoZSByaWdodCBDRkdfREVGQVVMVF9NQkFSIHZhbHVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDVmYjJiMjM0MmVjZThkNzg2YzZmN2ZkYmExYmMyNzNmZWJkM2IzZDIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNToxNToxNSAyMDA4ICswMTAwCgogICAgYWRkZWQgdGhlIGNvbmZpZyBGaWxlIGZvciB0aGUgTVVOSUNlcyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2MzQxZDlkNzIzYjcxYjRjMGJmODZmOTc5ZTRjYjIyOGMwMmZkMDlkCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6MTU6MTQgMjAwOCArMDEwMAoKICAgIGFkZGVkIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBNVU5JQ2VzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDNiYjc3ZmIwOWExY2FhYmY1YTI5MmNjNWI0ODZhNzhiOTc3ZmJlMTkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEyIDAwOjM5OjM3IDIwMDggKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HIGFuZCBNQUlOVEFJTkVSUyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDViYTczOTBjM2NiNTc5MTcyYmU2Njg4OGEzNzE3MDdiNDdiNWJlNGUKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDI6MTU6MDIgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBwcm9ibGVtIGluIGNvbW1vbi9jbWRfYm1wLmMKCiAgICBjb21tb24vY21kX2JtcC5jIGZhaWxzIHRvIGNvbXBpbGUgaWYgQ09ORklHX1ZJREVPX0JNUF9HWklQCiAgICBpc24ndCBkZWZpbmVkLiBUaGlzIHBhdGNoIGZpeCB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA1YWE0MzdiYWFlNWZlNjI5YWJlYWI5OWJlZjc5M2EyYTFmYzcxYjU4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDE6MTI6MDkgMjAwOCArMDEwMAoKICAgIEZpeCBkZWZhdWx0Y29uZmlnIGZvciB0aGUgbWdjb2dlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGFjOWRiMDY2YjI2OTM1ZjMxYmZmMTVjOTgxNjhiMTlmYWViNjAzZjMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAwMToxMjowOCAyMDA4ICswMTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdGhlIG1nY29nZSBib2FyZCBmcm9tIGtleW1pbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYjQyM2QwNTVjYzJlMTNjNGVmMWYwMzg5YzNmYTI5ODhkMGVlZDgxOApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDAxOjEyOjA3IDIwMDggKzAxMDAKCiAgICBFbmFibGUgU01DIG1pY3JvY29kZSByZWxvY2F0aW9uIHBhdGNoIGZvciBTTUMxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDM4MWU0ZTYzOTcyMGQ4ZDJlZmI4MDY2YzdjNDhlYzk1ODhjYjI4YzcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAwMToxMjowNiAyMDA4ICswMTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdGhlIG1nc3V2ZCBib2FyZCBmcm9tIGtleW1pbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYmYwNTI5Mzk3M2IzNDhmNjk0NmM5ZGY5MmNkM2M2NWVjZTQyZDBiZQpBdXRob3I6IEphbWVzIFlhbmcgPGphbWVzLnlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAxNjowMjowNyAyMDA4IC0wNjAwCgogICAgRml4IDY0LWJpdCB2c3ByaW50Zi4KCiAgICBUaGVyZSB3ZXJlIHNvbWUgc2l6ZSBhbmQgdW5zaWduZWQgcHJvYmxlbXMuCiAgICBBbHNvIGFkZCBzdXBwb3J0IGZvciAibGwiIHNpemUgbW9kaWZpZXIgaW4gZm9ybWF0IHN0cmluZyBsaWtlIGdsaWJjCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTJmYTM3ZWFjNTMwODYwNjQzYWZhMjZhZTM0N2FmM2QyM2Q2NzMwOQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglXZWQgSmFuIDkgMTI6NDI6MzUgMjAwOCAtMDUwMAoKICAgIFJlbW92ZSBzdXBlcmZsdW91cyBwcmVwcm9jZXNzb3IgY29uZGl0aW9uYWxzIGZyb20gTE03MyBkcml2ZXIKCiAgICAoMSkgUmVtb3ZlIHVudXNlZCBzeW1ib2wgIkNGR19FRVBST01fUEFHRV9XUklURV9FTkFCTEUiLgoKICAgICgyKSBVc2UgY29uZGl0aW9uYWwgTWFrZWZpbGUuby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBlZmM2ZjQ0N2MxYjk0MGQxNjUwYzRiODU0YzU1OThhNTk1ZGRjM2RhCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgSmFuIDEwIDE3OjU5OjA3IDIwMDggKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIFRLODg1RCBiYXNlYm9hcmQgZnJvbSBURUxFLURBVEEKCiAgICBUaGUgVEs4ODVEIGJvYXJkIHVzZXMgYSBUUU04ODVEIG1vZHVsZSBmcm9tIFRRLCB0aGlzIHBvcnQgYWRkcyBhbgogICAgb3duIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgYWRkcyBhIGxhc3Rfc3RhZ2VfaW5pdCgpIG1ldGhvZCB0bwogICAgY29uZmlndXJlIHRoZSB0d28gUEhZcywgZGVwZW5kaW5nIG9uIHRoZSBwaHlfYXV0b19uZWdvIGVudmlyb25tZW50CiAgICB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgMGVjNTk1MjQzZGM5OWVkY2QyNDhiYmNmYmZkNWExZGM4NjBiZGU4OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTAgMDI6MjI6MDUgMjAwOCAtMDYwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5nCgogICAgbWFpbi5jOiBJbiBmdW5jdGlvbiAncmVhZGxpbmVfaW50b19idWZmZXInOgogICAgbWFpbi5jOjkyNzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdwX2J1ZicKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGJlZDUzNzUzZGQxZDdlNmJjYmVhNDMzOWJlMGZiNzc2MDIxNGNjMzUKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTQ6MzA6MDEgMjAwOCArMDEwMAoKICAgIEFkZCBGdWppdHN1IENvcmFsUC9MaW1lIHZpZGVvIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IDIwYzQ1MGVmNjFlZjJlYjFjOTZmOWI1OWJhMGViOGQ4NDliYmEwNTgKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDI6Mzk6NDcgMjAwOCArMDEwMAoKICAgIEZpeCB2aWRlbyBjb25zb2xlIG5ld2xpbmUgYW5kIGNhcnJpYWdlIHJldHVybiBoYW5kbGluZwoKICAgIExpbmVzIG9mIHRoZSBsZW5naHQgQ09OU09MRV9DT0xTIG9yIGdyZWF0ZXIgdGhhbiBDT05TT0xFX0NPTFMKICAgIGFyZSBub3QgZGlzcGxheWVkIGNvcnJlY3RseS4gVGhpcyBpcyBhbiBhdHRlbXB0IHRvIGZpeAogICAgdGhpcyBpc3N1ZS4gQWxzbyBhZGQgY2FycmlhZ2UgcmV0dXJuIGhhbmRsaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGQ1YTE2M2Q2YmFhMDRmNWE4ZWRjYzEwZWJjNmZhZDA4NjU3ZDMwOTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6NTM6NTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IHNkcmFtIGluaXQgb24gU2VxdW9pYSBib2FyZHMKCiAgICBDbGVhciBwb3NzaWJsZSBlcnJvcnMgaW4gTUNTUiByZXN1bHRpbmcgZnJvbSBkYXRhLWV5ZS1zZWFyY2guCiAgICBJZiBub3QgZG9uZSwgdGhlbiB3ZSBjb3VsZCBnZXQgYW4gaW50ZXJydXB0IGxhdGVyIG9uIHdoZW4KICAgIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ2MTBhNjA3MzBiNzQ2NGY2ZjY1OWRiNDlkMjY0ZDg5YTdjNzEwNjEKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6MzE6MDkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmV3b3JrIExpbWUgc3VwcG9ydCBmb3IgbHdtb241CgogICAgUmV3b3JrIExpbWUgc3VwcG9ydCBmb3IgbHdtb241IHVzaW5nIG5ldyB2aWRlbyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZmY0MWZmYzkzYzE1OTJlNzdhNDRiZGJlYmQ1ZDc4MTczOWYzYWFlMApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDExIDE0OjU1OjE2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBQTUM0NDAgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBlM2VkY2IzNmYxNGYwYWFiYjZmNTBlOTYwMTRkNjg3N2Y3M2Q2NGVhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTQ6NTU6MDggMjAwOCArMDEwMAoKICAgIHBweDR4eDogRml4IHNkcmFtIGluaXQgb24gUE1DNDQwIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDA2MWFhZDRkMzIwZGRkY2UyNjI0NzY5OWRjZjI4NzVlZTJlYTEzNjYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDk6MzMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgYnVnIG9mIDI2Nk1IeiBkYXRhIHJhdGUgRERSCgogICAgVGhlIEREUiBkb2Vzbid0IHdvcmsgb24gdGhlIDI2Nk1IeiBkYXRhIHJhdGUsCiAgICB0aGUgcGF0Y2ggZml4IHRoZSBidWcuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGVkMDgzMTdhZDllMzQwYjg4N2JmMmViNDZlOTU2NWEwZjYxMGE5MwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAyMzowODoyNiAyMDA4ICswODAwCgogICAgbXBjODN4eDogTWFrZSB0aGUgY29kZSBtb3JlIHJlYWRhYmxlCgogICAgRm9ybWF0IHRoZSBjb2RlLCBtYWtlIGl0IG1vcmUgcmVhZGFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZTc0ZDYzZDFhMjExZmJjMzRlYzQyNGUyZGM2NzI2NjAxZjMyM2QwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjA3OjIzIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBSZWR1Y2UgdGhlIGxhdGVuY3kgb2YgRERSCgogICAgUmVkdWNlIHRoZSBBTCBmcm9tIDIgdG8gMSBjbG9jayB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZjM5MzFhMmJlZDU0MTJjMjBkNWU1NTM2Yzg2NWZiZDY1N2Y3ZDI4CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjA2OjA1IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIHdyb25nIGRlZmluaXRpb24gb2YgTVBDODMxNUUKCiAgICBBY2NvcmRpbmcgdG8gdGhlIGxhdGVzdCB1c2VyIG1hbnVhbCBvZiBNUEM4MzE1RSwKICAgIDEpIFRoZSBTVkNPRCBvZiBIUkNXTCBpcyBkaWZmZXJlbnQgdGhhbiA4Mzd4CiAgICAyKSBUaGUgU0NDUiBoYXMgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjMjYzOGVhMDhhNTM3YTFiZDQwOWRiODczYWFhYTMzYTA1M2ViYWUKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDU6MDAgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgdHlwbyBpbiBtcGM4M3h4LmgKCiAgICBUaGUgU1BDUiBhYm91dCBUU0VDIHByaW9yaXR5IGlzIHdyb25nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxNaWNoYWVsLkJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9lIEQnQWJicmFjY2lvIDxKb2UuRCdhYmJyYWNjaW9AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM4NmVmMmNkOWVmODE5MzUwNDkyMzFmYTg5ZjM2YzdiNzkzZjJkNGIKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDQ6MTMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgdHlwbyBpbiBnbG9iYWwgZGF0YSBzdHJ1Y3QKCiAgICBGaXggdGhlIHR5cG8gaW4gZ2xvYmFsX2RhdGEuaAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJjNWI0OGZjMjA1YzNlMjc1MjkxMGRhOGYzOTIwOWVkMDc1OTI5ZTUKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDM6MDMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZSBjYWNoZSBjb25maWcgZnJvbSBjb25maWcuaAoKICAgIGNsZWFuIHVwIHRoZSBjYWNoZSBjb25maWcgZnJvbSBjb25maWdzLmggb2YgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYWI2ZjU1NmJiYmJkMWJiMzVhNTQzMzE2MWY3ZjE3M2MxOGRmNTU5CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVdlZCBKYW4gOSAyMDo1Nzo0NyAyMDA4ICswMzAwCgogICAgbXBjODN4eDogYWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzYwRS1SREsKCiAgICBUaGlzIGlzIE1QQzgzNjBFIGJhc2VkIGJvYXJkIHdpdGg6CiAgICAtIDI1Nk1CIGZpeGVkIFNEUkFNOwogICAgLSA4TUIgSW50ZWwgU3RyYXRhIE5PUiBmbGFzaDsKICAgIC0gU3RNSUNSTyA2NE1pQiBOQU5EIGZsYXNoOwogICAgLSB0d28gMTAvMTAwLzEwMDAgZXRoZXJuZXQgcG9ydHMgY29ubmVjdGVkIHZpYSBCcm9hZGNvbQogICAgICBCQ001NDgxIFBIWXM7CiAgICAtIHR3byAxMC8xMDAgZXRoZXJuZXQgcG9ydHMgY29ubmVjdGVkIHZpYSBOYXRpb25hbAogICAgICBEUDgzODQ4IFBIWXM7CiAgICAtIG9uZSBQQ0kgYW5kIG9uZSBtaW5pUENJIHNsb3RzOwogICAgLSBmb3VyIHNlcmlhbCBwb3J0cyAodHdvIE5TMTY1NTAtY29tcGF0aWJsZSwgdHdvIFVDQ3MpOwogICAgLSBmb3VyIFVTQiBwb3J0cyB3b3JraW5nIHRocm91Z2ggTVBDODM2MEUgIkZIQ0kiIFVTQiBjb250cm9sbGVyOwogICAgLSBGdWppdHN1IE1CODYyNzcgZ3JhcGhpY3MgY29udHJvbGxlcjsKICAgIC0gQW5hbG9nIHRvIERpZ2l0YWwgQ29udmVydGVyL1RvdWNoc2NyZWVuIGNvbnRyb2xsZXIsIEFENzg0MwogICAgICBjb25uZWN0ZWQgdG8gU1BJLgoKICAgIEZlYXR1cmVzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBwYXRjaCBhcmU6CiAgICAtIFN0TUlDUk8gNjRNaUIgTkFORCBmbGFzaCAocGF0Y2ggc2VudCk7CiAgICAtIE1JTlQgZnJhbWVidWZmZXIgaW5pdGlhbGl6YXRpb24gKHBhdGNoIGlzIHBlbmRpbmcpOwogICAgLSBGZXRjaGluZyBwcm9kdWN0aW9uIGluZm9ybWF0aW9uIGZyb20gdGhlIEVFUFJPTSB2aWEgSTJDOwogICAgLSBGSENJIFVTQjsKICAgIC0gVHdvIHNsb3cgVUNDcyB1c2VkIGFzIFJTLTQ4NSBVQVJUcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjNkMmNkZTdhM2FhMWU4M2I3OTY4Y2RmZjkyOWU1MmM4Y2M2MTdiYgpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglXZWQgSmFuIDkgMjA6NTc6NDAgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IGFkZCAiZnNsLCBxZSIgY29tcGF0aWJsZSBmaXh1cHMKCiAgICBOZXcgZGV2aWNlIHRyZWVzIHdpbGwgdXNlICJmc2wscWUiIGNvbXBhdGlibGUgcHJvcGVydGllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTc3YjU3NTgzYTdjMzQwMTBlNTY2YTA5YTY3OWVjM2MxODM2Zjk5NgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNToyNDowNiAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogYWRkIG1pc3NpbmcgQ09ORklHX0hBU19FVEgwIGRlZmluZXMKCiAgICB0aGUgbmV3IGxpYmZkdCBjb2RlIG9ubHkgdXBkYXRlcyBldGgwIGlmIENPTkZJR19IQVNfRVRIMAogICAgaXMgZGVmaW5lZDsgYWRkIHRoZSBkZWZpbmUgdG8gdGhlIG1pc3NpbmcgYm9hcmQgY29uZmlncy4KCiAgICBUaGFua3MgdG8gRW1pbGlhbiBNZWR2ZSBmb3IgZmluZGluZyB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjgzMGI3ZjE2MzU5ODRiYTYwNzIxOWZjYmQ3ODU5N2MyOGVlYjUyOQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZ2lsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDE0OjAwOjI4IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBTdXBwb3J0IDJHQiBESU1NcwoKICAgIENvbmZpZ3VyZSB0aGUgbnVtYmVyIG9mIGJpdHMgdXNlZCB0byBhZGRyZXNzIHRoZSBiYW5rcyBpbnNpZGUgdGhlIFNEUkFNCiAgICBkZXZpY2UuICBUaGUgZGVmYXVsdCByZWdpc3RlciB2YWx1ZSBvZiAwIG1lYW5zIDIgYml0cyB0byBhZGRyZXNzIDQgYmFua3MuCiAgICBIaWdoZXIgY2FwYWNpdHkgZGV2aWNlcyBsaWtlIGEgMkdCIERJTU0gcmVxdWlyZSAzIGJpdHMgdG8gYWRkcmVzcyA4IGJhbmtzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZ2lsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkMzMyZGJlYjA4ZjU4NjNkMWVhNjlkOTFhMDBjNTQ5OWQzYTg3ZWQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglUaHUgSmFuIDEwIDE4OjUwOjMzIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE1ha2UgU2VxdW9pYSBib290IHZ4V29ya3MKCiAgICB2eFdvcmtzIGV4cGVjdHMgaW4KICAgIFRMQiAwIGEgZW50cnkgZm9yIHRoZSBNYWNoaW5lIENoZWNrIGludGVycnVwdAogICAgVExCIDEgYSBlbnRyeSBmb3IgdGhlIFJBTQogICAgVExCIDIgYSBlbnRyeSBmb3IgdGhlIEVCQwogICAgVExCIDMgYSBlbnRyeSBmb3IgdGhlIGJvb3QgZmxhc2gKCiAgICBBZnRlciBjaGFuZ2luZyB0aGUgYmF1ZHJhdGUgdG8gOTYwMCBJIGhhZCBubyBwcm9ibGVtcyB0byBib290IHRoZQogICAgdnhXb3JrcyBpbWFnZSBhcyBkaXN0cmlidXRlZCBieSBXaW5kUml2ZXIgKFJldmlzaW9uIDIuMC8xIGZyb20KICAgIEp1bmUgMTgsIDIwMDcpCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA2ZDgxODRiMDBjMGQxZDcwOTBlNGEyZjUxNGUzMTBkOThhMzk0ZjhkCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVdlZCBKYW4gOSAyMzoxMDoyNyAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBGaXggZGZsdXNoKCkgdG8gcmVzdG9yZSBEVkxJTSByZWdpc3RlcgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDI1MmY2MGIwNjhkMWY5NDE5MGI1YmNmZGExNjlkYjU4MjM4N2UxNWUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgSmFuIDEwIDAzOjUyOjQ0IDIwMDggLTA1MDAKCiAgICBOaW9zMjogcmVtb3ZlIGNvbW1vbi9jbWRfYmRpbmZvLmMgdW51c2VkIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBNY051dHQgPHNtY251dHRAcHN5ZW50LmNvbT4KCmNvbW1pdCA0MjJiMWEwMTYwMmI2ZTJmYmY4NDQ0YTExOTJjN2JhMzE0NjFmZDRjCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE4OjE1OjUzIDIwMDggLTA1MDAKCiAgICBGaXggRXRoZXJuZXQgaW5pdCgpIHJldHVybiBjb2RlcwoKICAgIENoYW5nZSByZXR1cm4gdmFsdWVzIG9mIGluaXQoKSBmdW5jdGlvbnMgaW4gYWxsIEV0aGVybmV0IGRyaXZlcnMgdG8gY29uZm9ybQogICAgdG8gdGhlIGZvbGxvd2luZzoKCgk+PTA6IFN1Y2Nlc3MKCTwwOiAgRmFpbHVyZQoKICAgIEFsbCBkcml2ZXJzIGdvaW5nIGZvcndhcmQgc2hvdWxkIHJldHVybiAwIG9uIHN1Y2Nlc3MuICBDdXJyZW50IGRyaXZlcnMgdGhhdAogICAgcmV0dXJuIDEgb24gc3VjY2VzcyB3ZXJlIGxlZnQgYXMtaXMgdG8gbWluaW1pemUgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CiAgICBBY2tlZC1CeTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkM2E2NTMyY2JlMjYzZDk5MmY0OWU4NmFjOTViZWRlMjhlOTZmOWM4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxMCAwMDo1NToxNCAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE3YTQxZTQ0OTIxMjFjY2Y5ZmEyYzEwYzJjYjFhNmQxYzE4ZDc0ZjcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTY6NTY6NTQgMjAwOCAtMDYwMAoKICAgIEFkZCBRRSBicmcgZnJlcSBhbmQgY29ycmVjdCBxZSBidXMgZnJlcSBmZHQgdXBkYXRlIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5MGRmZWYwNmMyZDE2OWEzMzU2MzU5NTk2ODkwNzU0ZGZiOGVlMWMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNjozNDo1MSAyMDA4IC0wNjAwCgogICAgUmVtb3ZlIGNhY2hlIGNvbmZpZyBmcm9tIEFUVU04NTQ4IGFuZCBzYmM4NTQ4IGNvbmZpZ3MKCiAgICBUaGVzZSBib2FyZHMgd2VyZW4ndCB1cGRhdGVkIGJ5IEt1bWFyJ3MgY29uZmlnIHBhdGNoIGJlY2F1c2UgdGhleQogICAgd2VyZW4ndCBpbiB0aGUgdHJlZSwgeWV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOGVjMjM4NTAzOGMwOTRiMDdlYzViNDkzMzYyODlhNDZiNmU5Y2M2CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiA3IDEzOjMxOjE5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBhZGQgYWJpbGl0eSB0byB1cGxvYWQgUUUgZmlybXdhcmUKCiAgICBEZWZpbmUgdGhlIGxheW91dCBvZiBhIGJpbmFyeSBibG9iIHRoYXQgY29udGFpbnMgYSBRRSBmaXJtd2FyZSBhbmQgaW5zdHJ1Y3Rpb25zCiAgICBvbiBob3cgdG8gdXBsb2FkIGl0LiAgQWRkIGZ1bmN0aW9uIHFlX3VwbG9hZF9maXJtd2FyZSgpIHRvIHBhcnNlIHRoZSBibG9iIGFuZAogICAgcGVyZm9ybSB0aGUgYWN0dWFsIHVwbG9hZC4JQWRkIGNvbW1hbmQtbGluZSBjb21tYW5kICJxZSBmdyIgdG8gdGFrZSBhIGZpcm13YXJlCiAgICBibG9iIGluIG1lbW9yeSBhbmQgdXBsb2FkIGl0LiAgVXBkYXRlIGZ0X2NwdV9zZXR1cCgpIG9uIDg1eHggdG8gY3JlYXRlIHRoZQogICAgJ2Zpcm13YXJlJyBkZXZpY2UgdHJlZSBub2RlIGlmIFUtQm9vdCBoYXMgdXBsb2FkZWQgYSBmaXJtd2FyZS4gIEZ1bGx5IGRlZmluZQogICAgJ3N0cnVjdCByc3AnIGluIGltbWFwX3FlLmggdG8gaW5jbHVkZSB0aGUgYWN0dWFsIFJJU0MgU3BlY2lhbCBSZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMDA5ZjNlY2E5OWJiN2I5ZTZiYTY2MzlhODkwOWExMzhkZDVlOWZlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEphbiA4IDAxOjIyOjIxIDIwMDggLTA2MDAKCiAgICA4NXh4OiBSZW1vdmUgY2FjaGUgY29uZmlnIGZyb20gY29uZmlncy5oCgogICAgRWl0aGVyIHVzZSB0aGUgc3RhbmRhcmQgZGVmaW5lcyBpbiBhc20vY2FjaGUuaCBvciBncmFiIHRoZSBpbmZvcm1hdGlvbgogICAgYXQgcnVudGltZSBmcm9tIHRoZSBMMUNGRyBTUFIuCgogICAgQWxzbywgbWlub3IgY2xlYW51cCBpbiBjYWNoZS5oIHRvIG1ha2UgdGhlIGNvZGUgYSBiaXQgbW9yZSByZWFkYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGI5NjRlOTM2OGY0NTM3MmFhZjFkYTBjMTNmZTU2ZjZkODFhZThlOTYKQXV0aG9yOiByb2JlcnQgbGF6YXJza2kgPHJvYmVydGxhemFyc2tpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIERlYyAyMSAxMDozOToyNyAyMDA3IC0wNTAwCgogICAgbXBjODV4eDogQWRkIHN1cHBvcnQgZm9yIEFUVU04NTQ4ICh1cGRhdGVkKQoKICAgIEFkZCBzdXBwb3J0IGZvciBJbnN0aXR1dG8gQXRsYW50aWNvJ3MgQVRVTTg1NDggYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiByb2JlcnQgbGF6YXJza2kgPHJvYmVydGxhemFyc2tpQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YmQ2MTA0YjcxZGU5YmNhODBhYzhlMDkzNjAwMzQ0M2JiNDJmMmZjCkF1dGhvcjogcm9iZXJ0IGxhemFyc2tpIDxyb2JlcnRsYXphcnNraUBnbWFpbC5jb20+CkRhdGU6CUZyaSBEZWMgMjEgMTA6MzY6MzcgMjAwNyAtMDUwMAoKICAgIG1wYzg1eHg6IEFkZCBzdXBwb3J0IGZvciBBVFVNODU0OCAodXBkYXRlZCkKCiAgICBBZGQgc3VwcG9ydCBmb3IgSW5zdGl0dXRvIEF0bGFudGljbydzIEFUVU04NTQ4IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogcm9iZXJ0IGxhemFyc2tpIDxyb2JlcnRsYXphcnNraUBnbWFpbC5jb20+Cgpjb21taXQgOWUzZWQzOTJkMmM4OTY1ZTI0Yzk0MmI1ODc5NmMzMWM2NDRjMmY3MApBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBEZWMgMTMgMDY6NDU6MTQgMjAwNyAtMDYwMAoKICAgIG1wYzg1eHg6IEFkZCBzdXBwb3J0IGZvciBTQkM4NTQ4ICh1cGRhdGVkKQoKICAgIEFkZCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyJ3MgU0JDODU0OCByZWZlcmVuY2UgYm9hcmQuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KCmNvbW1pdCAxMWM0NWViZDQ2ZDY1MTdiNTFiN2E5MmRkNTJhNjE4YjJmNGU1NTg2CkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAwNjo0NTowOCAyMDA3IC0wNjAwCgogICAgbXBjODV4eDogQWRkIHN1cHBvcnQgZm9yIFNCQzg1NDggKHVwZGF0ZWQpCgogICAgQWRkIHN1cHBvcnQgZm9yIFdpbmQgUml2ZXIncyBTQkM4NTQ4IHJlZmVyZW5jZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgogICAgU2lnbmVkLW9mZiBieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0ZDRiY2IwODdjMmVjZTFjNGQwZGU4ZWZlODVlMDA3NWU1YjE1OTQKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE9jdCAyMiAxOTo1ODoxOSAyMDA3ICswNDAwCgogICAgTVBDODU2OEUtTURTOiBzZXQgdXAgUUUgcGFyaW8gZm9yIFVBUlQxCgogICAgVG8gdXNlIFVBUlQxIG9uIHRoZSBNUEM4NTY4RS1NRFMsIFFFIHBhcmlvIHBpbnMgUENbMDozXSBzaG91bGQKICAgIGJlIHNldCB1cCBhcHByb3ByaWF0ZWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGFkMTYyMjQ5Y2IzNzFlOWUzODk3MTY3NmYwOWJlNzkxZTVmM2NmNGEKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE9jdCAyMiAxODoxMjo0NiAyMDA3ICswNDAwCgogICAgTVBDODU2OEUtTURTOiByZXNldCBVQ0NzIHRvIHVzZSB0aGVtIHJlbGlhYmx5CgogICAgSW4gb3JkZXIgdG8gdXNlIEdFVEgxIGFuZCBHRVRIMiBvbiB0aGUgTVBDODU2OEUtTURTLCB3ZSBzaG91bGQgcmVzZXQKICAgIFVDQ3MuCgogICAgcC5zIFNpbWlsYXIgY29kZSBleGlzdHMgaW4gdGhlIExpbnV4IGtlcm5lbCBib2FyZCBmaWxlIChmb3IgY2FwYWJpbGl0eQogICAgcmVhc29ucyB3aXRoIG9sZGVyIFUtQm9vdHMpLCBidXQgc2hvdWxkIGJlIHJlbW92ZWQgc29tZSBkYXkuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgMjE0NmNmNTY4MjFjMzM2NDc4NmNhOTRhNzMwNjAwOGM1ODI0YjIzOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMDE6MTg6MTUgMjAwNyAtMDYwMAoKICAgIFJld29ya2VkIEZTTCBCb29rLUUgVExCIG1hY3JvcyB0byBiZSBtb3JlIHJlYWRhYmxlCgogICAgVGhlIG9sZCBtYWNyb3MgbWFkZSBpdCBkaWZmaWN1bHQgdG8ga25vdyB3aGF0IFdJTUdFIGFuZCBwZXJtIGJpdHMKICAgIHdlcmUgc2V0IGZvciBhIFRMQiBlbnRyeS4gIEFjdHVhbGx5IHVzZSB0aGUgYml0IG1hc2tzIGZvciB0aGVzZSBpdGVtcwogICAgc2luY2UgdGhleSBhcmUgb25seSBhIHNpbmdsZSBiaXQuCgogICAgQWxzbyBtb3ZlZCB0aGUgbWFjcm9zIGludG8gbW11Lmggb3V0IG9mIGU1MDAuaCBzaW5jZSB0aGV5IGFyZW4ndCBzcGVjaWZpYwogICAgdG8gZTUwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDFkNDcyNzNkNDY5MjU5MjlmOGYyYzE5MTNjZDk2ZDcyNTdhYWRlODgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRGVjIDE4IDIzOjIxOjUxIDIwMDcgLTA2MDAKCiAgICBVc2UgRlNMIEJvb2stRSBNTVUgbWFjcm9zIGZyb20gTGludXggS2VybmVsCgogICAgR3JhYiB0aGUgRlNMIEJvb2stRSBNQVMgcmVnaXN0ZXIgbWFjcm9zIGZyb20gTGludXguICBBbHNvIGFkZGVkCiAgICBkZWZpbmVzIGZvciBwYWdlIHNpemVzIHVwIHRvIDRUQiBhbmQgcmVtb3ZlZCBTSEFSRU4gc2luY2UgaXQgZG9lc250CiAgICByZWFsbHkgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwMmRmNGEyNzBmODE3ZWY2ZWMzOTA0N2EwMWI1NWZlY2RjNWYzYjM3CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTM6NTE6MzIgMjAwOCAtMDYwMAoKICAgIEZpeCBteSBvd24gbWVyZ2Ugc3R1cGlkaXR5CgogICAgV2F5IGJhY2sgaW4gQXVndXN0IEkgbWVyZ2VkIEhlaWtvJ3MgcGF0Y2g6CiAgICA1NjZhNDk0ZjU5MjogW1BDUzQ0MEVQXSB1cGdyYWRlIHRoZSBQQ1M0NDBFUCBib2FyZAoKICAgIHdpdGggSm9uJ3MgQ09ORklHX0NPTU1BTkRTIHBhdGNoZXMuCgogICAgVGhpcyB3YXMgZG9uZSBpbiBjb21taXQ6IDZiZjZmMTE0ZGNkZDk3ZWMzZjgwYzI3NjFlZDQwZTMxMjI5ZDZiNzgKCiAgICBIb3dldmVyLCBpbiB0aGUgcHJvY2VzcywgSSBsZWZ0IG91dCBzb21lIG9mIEhlaWtvJ3MgZ29vZCBjaGFuZ2VzLgoKICAgIE5vdyBIZWlrbydzIGFuZCBKb24ncyBwYXRjaGVzIGFyZSBwcm9wZXJseSBtZXJnZWQgaW4gZmF0X3JlZ2lzdGVyX2RldmljZSgpCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY2MzZiNjJhNmVmYzdmMTRlNmU3ODg3ODg2MzFhZTdhN2ZjYTQ1MzcKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxMToxNzo0OSAyMDA4IC0wNjAwCgogICAgRXhwb3NlIHBhcnNlX2xpbmUoKSBnbG9iYWxseS4KCiAgICBBZGQgbmV3IGZ1bmN0aW9uIHJlYWRsaW5lX2ludG9fYnVmZmVyKCkgdGhhdCBhbGxvd3MgdGhlCiAgICBvdXRwdXQgb2YgcmVhZGxpbmUgdG8gYmUgcHV0IGludG8gYSBwb2ludGVyIHRvIGNoYXIgYnVmZmVyLgoKICAgIFRoaXMgcmVmYWN0b3JpbmcgYWxsb3dzIG90aGVyIGZ1bmN0aW9ucyBiZXNpZGVzIHRoZQogICAgbWFpbiBjb21tYW5kIGxvb3AgdG8gYWxzbyB1c2UgdGhlIHNhbWUgaW5wdXQgbWVjaGFuaXNtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdjYTkwNTEzNDg2YWJkNGFlNTBiZDFiNzQwM2Y0N2NjNThjNWFkMjUKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAwMToxNToyNSAyMDA4ICswMTAwCgogICAgdHJpdmlhbDogZml4IGNvbnNlcXVlbmNlcyBvZiBhIGJhZCBtZXJnZQoKICAgIEZpeCB3aGF0IGxvb2tzIGxpa2UgYSBtZXJnZSBhcnRpZmFjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgNDc4NWE2OTRjMDA0NTk5NmNjZjBhYzViOGVkZjUzMWVmYzFiNzMwZQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMyAxMDo1MToxNSAyMDA4ICswODAwCgogICAgQWRkIEN0cmwgY29tYm8ga2V5IHN1cHBvcnQgdG8gdXNiIGtleWJvYXJkIGRyaXZlci4KCiAgICBDdHJsIGNvbWJvIGtleSBzdXBwb3J0IGlzIGFkZGVkLCB3aGljaCBpcyB2ZXJ5IHVzZWZ1bCB0byBpbnB1dCBDdHJsLUMKICAgIGZvciBpbnRlcnJ1cHQgY3VycmVudCBqb2IuCiAgICBBbHNvIGFkZCB1c2JfZXZlbnRfcG9sbCgpIGNhbGxpbmcgdG8gdXNiX2tiZF90ZXN0YygpLCB3aGljaCBjYW4gZ2V0CiAgICBrZXkgaW5wdXQgd2hlbiB0c3RjKCkgaXMgY2FsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTBjNzM4MmJjNWQ1ZTY0YzQ3Zjk0YWMyY2E3OGNjNTc0NDQyZTgyZApBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMzozMDo1NiAyMDA3ICswMTAwCgogICAgZml4IHZhcmlvdXMgY29tbWVudHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgNzgxN2NiMjA4M2Q5ODI5MjM3NTJmZTBmMTJiNjdjMGU3YzA5YTAyNwpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMzozMDo0NiAyMDA3ICswMTAwCgogICAgZml4IGNvbW1lbnRzIHdpdGggbmV3IGRyaXZlcnMgb3JnYW5pemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IGE5YjQxMGRjN2QyYTQ3MjFjNDA4YjEzYWJmYzAzNzk4ODE1MGYxNDUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTI6NTA6NTkgMjAwNyArMDkwMAoKICAgIFJlbW92ZSB0aGUgb2Jzb2xldGUgdGVyc2UgdmVyc2lvbiBvZiBkb19taWkoKQoKICAgIFdlIG5vdyBoYXZlIG1vcmUgdXNlZnVsIHZlcnNpb24gb2YgZG9fbWlpKCkgYW5kIGV2ZXJ5Ym9keSB1c2UgaXQuCiAgICBHZXJhbGQgVmFuIEJhcmVuIHNheXM6CgogICAgPiBXaGVuIEkgb3JpZ2luYWxseSB3cm90ZSB0aGUgbWlpIGNvbW1hbmQgNighKSB5ZWFycyBhZ28sIEkgd3JvdGUgYQogICAgPiB2ZXJib3NlIHZlcnNpb24gdGhhdCBwcmludGVkIGh1bWFuIHJlYWRhYmxlIGRlY29tcG9zaXRpb24gb2YgdGhlIGZsYWdzLAogICAgPiBldGMuLCBhbmQgYSB0ZXJzZSBvbmUgdGhhdCBkaWRuJ3QgcHJpbnQgYXMgbXVjaCBzdHVmZiBhbmQgdGh1cyBoYWQgYQogICAgPiBzbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCiAgICA+CiAgICA+IEl0IHNvdW5kcyBsaWtlIHRoZSB0ZXJzZSB2ZXJzaW9uIGhhcyB3aXRoZXJlZCBhbmQgZGllZCwgYXBwYXJlbnRseQogICAgPiBwZW9wbGUgYXJlIG9ubHkgdXNpbmcgdGhlIHZlcmJvc2UgdmVyc2lvbiAod2hpY2ggaXMgdmVyeSB1bmRlcnN0YW5kYWJsZSwKICAgID4gSSBkbyBteXNlbGYpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMDFjNjg3YWE2ZTA2NWJkNGZhZjgwZjcyMzM2MWU3OTg5NDFkZDZiMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IERlYyAyNyAxMzo0Mjo1NiAyMDA3IC0wNTAwCgogICAgRG8gbm90IHJlZmVyZW5jZSBzaGExLmMgd2hlbiBidWlsZGluZyBta2ltYWdlLgoKICAgIHJlbW92ZSBzaGExLm8gZnJvbSBta2ltYWdlIGxpbmtpbmcgc2luY2UgaXQgaXNuJ3QgYWN0dWFsbHkgdXNlZC4KCiAgICBTaWduZWQtT2ZmLUJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjkxNzNhZjczZTUyNGQzN2M4MTJmMjEwMTczY2Y4MzM4NWM1MTcxYQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNTozOTo1NCAyMDA3ICswOTAwCgogICAgY29tbW9uL2NtZF9taWkuYzogQWRkIHNhbml0eSBhcmdjIGNoZWNrCgogICAgSWYgdHlwZSBtaWkgY29tbWFuZCB3aXRob3V0IGFyZ3VtZW50cywgd2Ugc3VmZmVyIGZyb20gdW5pbml0aWFsaXplZCBhcmd2W10KICAgIGVudHJpZXM7IGZvciBleGFtcGxlIHdlIE1JUFMgZ2V0IHN0dWNrIGJ5IFRMQiBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgNTAwODU2ZWIxNzA3ZWQxN2Q5MjA0YmFhNjFkZDU5OTQ4ZDNiMjg5OQpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBKYW4gOSAxOTozOTozNiAyMDA4ICswMTAwCgogICAgQVBJIGZvciBleHRlcm5hbCBhcHBsaWNhdGlvbnMuCgogICAgVGhpcyBpcyBhbiBBUEkgZm9yIGV4dGVybmFsIChzdGFuZGFsb25lKSBhcHBsaWNhdGlvbnMgcnVubmluZyBvbiB0b3Agb2YKICAgIFUtQm9vdCwgYW5kIGlzIG1lYW50IHRvIGJlIG1vcmUgZXh0ZW5zaWJsZSBhbmQgcm9idXN0IHRoYW4gdGhlIGV4aXN0aW5nCiAgICBqdW1wdGFibGUgbWVjaGFuaXNtLiBJdCBpcyBzaW1pbGFyIHRvIFVOSVggc3lzY2FsbCBhcHByb2FjaC4gU2VlIGFwaS9SRUFETUUKICAgIGZvciBtb3JlIGRldGFpbHMuCgogICAgSW5jbHVkZWQgaXMgdGhlIGRlbW8gYXBwbGljYXRpb24gdXNpbmcgdGhpcyBuZXcgZnJhbWV3b3JrIChhcGlfZXhhbXBsZXMpLgoKICAgIFBsZWFzZSBub3RlIHRoaXMgaXMgc3RpbGwgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUsIGFuZCBpcyB0dXJuZWQgb2ZmIGJ5CiAgICBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgZmU4ZGQwYjIyMjBiN2MwMmIwZDRjOWM0Zjk5Njc4Nzk5NzA0NzdiMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxMjoxNDo1NSAyMDA4IC0wNjAwCgogICAgODZ4eDogUmVtb3ZlIGNhY2hlIGNvbmZpZyBmcm9tIGNvbmZpZ3MuaAoKICAgIEp1c3QgdXNlIHRoZSBzdGFuZGFyZCBkZWZpbmVzIGluIGFzbS9jYWNoZS5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjZhNDE3OTBmOGViYTE5YWQ0NTBlMThhZTkxMzUxZGFmNDg1YjNlMgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBKYW4gOSAxODowNToyNyAyMDA4ICswMTAwCgogICAgR2xvYmFsaXplIGVudm1hdGNoKCkKCiAgICBUaGUgbmV3bHkgaW50cm9kdWNlZCBBUEkgKHJvdXRpbmVzIHJlbGF0ZWQgdG8gZW52IHZhcnMpIHdpbGwgbmVlZCB0byBjYWxsCiAgICBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBaYWJkeXIgPGFybW9Ac2VtaWhhbGYuY29tPgoKY29tbWl0IDFkZjE3MGY4YjJhOTllMWUyZjk0MGY5ZjBiNTY1MTFlMWU0YzllMWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDQgMTI6MDc6MjcgMjAwOCAtMDYwMAoKICAgIENvbnZlcnQgTVBDODYxMEhQQ0QgdG8gdXNlIGxpYmZkdC4KCiAgICBBc3N1bWVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgYWxpYXNlcyBub2RlIGluIHRoZSBEVFMgdG8KICAgIGxvY2F0ZSB0aGUgcGNpIGFuZCBzZXJpYWwgbm9kZXMgZm9yIGZpeHVwcy4KCiAgICBVc2UgY29uc2lzdGVudCBmZHRhZGRyIGFuZCBmZHRmaWxlIGluIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM5OTc0YWIwYTRkMzczMWNkYjc2YTc1OTlkOWZlOTQ0NWQ3NjRkNjAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDQgMTE6NTg6MjMgMjAwOCAtMDYwMAoKICAgIDg2MTA6IEZpeCBsaW5nZXJpbmcgY29tcGlsZSB3YXJuaW5ncy4KCiAgICBUdXJuIG9mZiBERUJVRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYwMDdmMzI1MWMwOTY3YWRjMTNmMmVkOGJlMWI5MjRkZGMzMDEyNGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTU6MTQ6NDYgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmYzY0MTRlY2E1NWYxZmMxMDhmYjEyZmM4Y2RjNDNiZDhiNDQ2M2Y5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRGVjIDE4IDA0OjI5OjU1IDIwMDcgLTA1MDAKCiAgICBmaXggZWFzeWxvZ28gb24gYmlnIGVuZGlhbiBkZXYgc3lzdGVtcwoKICAgIGRpZG50IHJlYWxpemUgaG93IG91dCBvZiBzaGFwZSBlYXN5bG9nbyBhY3R1YWxseSB3YXMgdW50aWwgaSB0cmllZCB1c2luZyBpdC4KICAgIHRoaXMgcGF0Y2ggZG9lcyBieXRlIHN3YXBwaW5nIGFzIG5lZWQgYmUgb24gdGhlIGlucHV0IHRnYSBoZWFkZXIgc2luY2UgdGhlIHRnYQogICAgaXMgaW4gbGl0dGxlIGVuZGlhbiBidXQgdGhlIGhvc3QgY291bGQganVzdCBhcyB3ZWxsIGJlIGJpZyBlbmRpYW4uCWkgZGlkbnQKICAgIGJvdGhlciB1c2luZyBic3dhcCBtYWNyb3Mgb3Igc3VjaCBzdHVmZiBmcm9tIHN5c3RlbSBoZWFkZXJzIGFzIG5vdGhpbmcgaW4KICAgIFBPU0lYIGRpY3RhdGVzIGJ5dGUgc3dhcHBpbmcgZnVuY3Rpb25hbGl0eS4KCiAgICBTaWduZWQtT2ZmLUJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMzhkMjk5YzJkYjgxYmQ4ODljNjAxYjVkZmMxMmM0ZTgzZWY4MzMzMwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIERlYyAxOCAwMzoyMzoyNSAyMDA3IC0wNTAwCgogICAgY2xlYW51cCBlYXN5bG9nbwoKICAgIC0gbWFrZSB0aGUgTWFrZWZpbGUgbm90IHN1Y2sKICAgIC0gaW5jbHVkZSBwcm9wZXIgaGVhZGVycyBmb3IgcHJvdG90eXBlcwogICAgLSBmaXggb2J2aW91cyBicm9rZW4gaGFuZGxpbmcgb2Ygc3RyY2hyKCkgd2hlbiBoYW5kbGluZyAnLicgaW4gZmlsZW5hbWVzCgogICAgU2lnbmVkLU9mZi1CeTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg4M2UzOTI1ZDk5YThkZDY5YzViMDIwMWNiYTViMTg4N2Y4OGY5NWMKQXV0aG9yOiByYXB0b3Jicmlub0BhaW0uY29tIDxyYXB0b3Jicmlub0BhaW0uY29tPgpEYXRlOglUaHUgRGVjIDEzIDIxOjIzOjI4IDIwMDcgLTA1MDAKCiAgICBGaXggYnVpbGQgcHJvYmxlbXMgdW5kZXIgQ3lnd2luCgogICAgVGhpcyBwYXRjaCBhbGxvd3MgdS1ib290IHRvIGJ1aWxkIHdpdGhvdXQgZXJyb3IgaW4gYSBjeWd3aW4KICAgIGVudmlyb25tZW50LiAgQ3lnd2luIGRvZXMgbm90IGRlZmluZSBfX3U2NCBpbiBpdCdzCiAgICBpbmNsdWRlL2FzbS90eXBlcy5oIGZpbGUuICBUaGUgLWlkaXJhZnRlciBmbGFnIGluIHRoZSB1LWJvb3QKICAgIGJ1aWxkIGNhdXNlcyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBjeWd3aW4gdHlwZXMuaCBmaWxlIGFzIG9wcG9zZWQKICAgIHRvIHUtYm90L2luY2x1ZGUvYXNtL3R5cGVzLmggZmlsZSB3aGljaCBkb2VzIGRlZmluZSBfX3U2NC4KICAgIFN1YnNlcXVlbnRseSwgc2hhMS5jIGNvbXBpbGUgZmFpbHMgZHVlIHRvIHVua25vd24gc3ltYm9sLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJyaWFuIE1pbGxlciA8cmFwdG9yYnJpbm9AbmV0c2NhcGUubmV0PgoKY29tbWl0IDQzZWYxYzM4MWY5MTk1NTA0YTI0ODhmNWNiOTA5MjI3ZWI5N2Q0NzUKQXV0aG9yOiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgpEYXRlOglGcmkgTm92IDMwIDE3OjI5OjU5IDIwMDcgKzAxMDAKCiAgICBjbWRfYm1wOiBBZGQgc3VwcG9ydCBmb3IgZGlzcGxheWluZyBnemlwIGNvbXByZXNzZWQgYm1wcwoKICAgIFRoZSBleGlzdGluZyBjb2RlIGNhbiBzaG93IGluZm9ybWF0aW9uIGFib3V0IGEgZ3ppcCBjb21wcmVzc2VkIEJNUAogICAgaW1hZ2UsIGJ1dCBjYW4ndCBhY3R1YWxseSBkaXNwbGF5IGl0LgoKICAgIFRoZXJlZm9yZSwgbW92ZSB0aGUgZGVjb21wcmVzc2lvbiBjb2RlIG91dCBvZiBibXBfaW5mbygpIGFuZCB1c2UgaXQgaW4KICAgIGJtcF9kaXNwbGF5KCkgYXMgd2VsbCBpbiBvcmRlciB0byBkaXNwbGF5IGEgY29tcHJlc3NlZCBCTVAgaW1hZ2UuCgogICAgQWxzbywgY2xlYW4gdGhpbmdzIHVwIGEgYml0IGFuZCBmaXggYSBtZW1vcnkgbGVhayB3aGlsZSB3ZSdyZSBhdCBpdC4KCiAgICBbaHNraW5uZW1vZW5AYXRtZWwuY29tOiBhIGJpdCBvZiByZWZhY3RvcmluZ10KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGQxOTdmZmQ4MTcyYzZmZGVmMzg3MzM0MjQ2NDBhOWE0NzI5NWQ2ZTkKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjkgMjE6MTU6NTYgMjAwNyArMDEwMAoKICAgIEZpeCBhbmQgb3B0aW1pemUgTUlJIG9wZXJhdGlvbnMgb24gRkVDIChNUEM4eHgpIGNvbnRyb2xsZXJzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIGlzc3VlcyBhdCBsZWFzdCBvbiBhIE1QQzg4NSBiYXNlZCBzeXN0ZW0gd2l0aCB0d28KICAgIEZFQyBpbnRlcmZhY2VzIHVzZWQgaW4gTUlJIG1vZGUuCgogICAgMS4gUEhZIGRpc2NvdmVyeSBzaG91bGQgZmlyc3QgcmVhZCBQSFlfUEhZSURSMiByZWdpc3RlciBhbmQgb25seSB0aGVuCiAgICAgICBQSFlfUEhZSURSMSBsaWtlIGNwdS9tcGM4eHgvZmVjLmM6Om1paV9kaXNjb3Zlcl9waHkoKSBkb2VzIGl0LAogICAgICAgb3RoZXJ3aXNlIHRoZSB2YWx1ZXMgcmVhZCBhcmUgd3JvbmcuIEFsc28gbm90aWNlLCB0aGF0IFBIWSBkaXNjb3ZlcnkKICAgICAgIGNhbm5vdCB3b3JrIG9uIE1QQzg4eCAvIE1QQzg3eCBpbiBzZXR1cHMgd2l0aCBib3RoIEZFQ3MgYWN0aXZlIGF0IGFsbAogICAgICAgaW4gaXRzIHByZXNlbnQgZm9ybSwgYmVjYXVzZSBmb3IgYm90aCBpbnRlcmZhY2VzIHRoZSByZWdpc3RlcnMgZnJvbSBGRUMKICAgICAgIDEgYXJlIHVzZWQgdG8gY29tbXVuaWNhdGUgb3ZlciBNSUkuCgogICAgMi4gUmVtb3ZlIGNvZGUgZHVwbGljYXRpb24gZm9yIHJlc2V0dGluZyB0aGUgRkVDIGJ5IGlzb2xhdGluZyBpdCBpbnRvIGEKICAgICAgIHNlcGFyYXRlIGZ1bmN0aW9uLgoKICAgIDMuIEluaXRpYWxpemUgTUlJIG9uIEZFQyAxIHdoZW4gY29tbXVuaWNhdGluZyBvdmVyIEZFQyAyIGluIGZlY19pbml0KCkuCgogICAgNC4gT3B0aW1pemUgbWlpX2luaXQoKSB0byBvbmx5IHJlc2V0IHRoZSBGRUMgMSBjb250cm9sbGVyIG9uY2UuCgogICAgNS4gRml4IGEgdHlwbyBpbiBtaWlfaW5pdCgpIHVzaW5nIGluZGV4IGkgaW5zdGVhZCBvZiBqIHRodXMgcG90ZW50aWFsbHkKICAgICAgIGxlYWRpbmcgdG8gdW5wcmVkaWN0YWJsZSByZXN1bHRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA2YTVlMWQ3NWJmMTA2ZmExNTdlOWNlNjhiY2FmNGIxM2U4YTFkMjE0CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDIwIDEzOjE0OjIwIDIwMDcgKzAxMDAKCiAgICBGaXggZW5kaWFubmVzcyBjb252ZXJzaW9ucyBpbiBydGw4MTY5IGRyaXZlcgoKICAgIEl0IGlzIHVuY2xlYXIgb24gd2hhdCBwbGF0Zm9ybXMgdGhpcyBkcml2ZXIgaGFzIGJlZW4gdGVzdGVkLCBzaW5jZQogICAgbm9vbmUgdXAgdG8gbm93IGRlZmluZXMgQ09ORklHX1JUTDgxNjkgaW4gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24KICAgIGhlYWRlci4gTm93IGl0IGhhcyBiZWVuIGZpeGVkIGZvciBhIGJpZy1lbmRpYW4gbXBjODI0MSBiYXNlZAogICAgbGlua3N0YXRpb24gcGxhdGZvcm0uIFRoaXMgcGF0Y2ggcHJlc2VudHMgdGhlIG5lY2Vzc2FyeSBlbmRpYW5uZXNzCiAgICBjb252ZXJzaW9uIGZpeGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA1ODY5NGY5NzA5YzBjM2UzMTc4ZTM0OWFlNzQ4ZDk4Y2ZiMGM2MzlhCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAzIDEwOjUxOjE1IDIwMDggKzA4MDAKCiAgICBBZGQgQ3RybCBjb21ibyBrZXkgc3VwcG9ydCB0byB1c2Iga2V5Ym9hcmQgZHJpdmVyLgoKICAgIEN0cmwgY29tYm8ga2V5IHN1cHBvcnQgaXMgYWRkZWQsIHdoaWNoIGlzIHZlcnkgdXNlZnVsIHRvIGlucHV0IEN0cmwtQwogICAgZm9yIGludGVycnVwdCBjdXJyZW50IGpvYi4KICAgIEFsc28gYWRkIHVzYl9ldmVudF9wb2xsKCkgY2FsbGluZyB0byB1c2Jfa2JkX3Rlc3RjKCksIHdoaWNoIGNhbiBnZXQKICAgIGtleSBpbnB1dCB3aGVuIHRzdGMoKSBpcyBjYWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMDdlYjAyNjg3ZjAwODcyMTk3NGEyZmI1NGNkN2ZkYzI4MDMzYWIzYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxMzo0MzozOCAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZW5hdXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGMyNmFjYzFhNDNiMzFkZGNhNWFkZDQyZmQwMzYwZmYwZWVlOTBjODAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNzoxMzoxMSAyMDA3ICswMTAwCgogICAgUmVtb3ZlIGJpdCBzd2FwcGluZyBpbiBYaWxpbnggU3BhcnRhbiBiaXRmaWxlIGxvYWRpbmcKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIHVubmVjZXNzYXJ5IGJpdCBzd2FwcGluZyB3aGVuCiAgICBib290aW5nIC5iaXQgZmlsZXMgd2l0aCB0aGUgJ2ZwZ2EgbG9hZGInIGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNDM3ZmM3MzI3ZjA2MTFmODI5Mzc4NThmMmQ4MGU0Y2Q2MWI0MDk4NApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjEzOjA1IDIwMDcgKzAxMDAKCiAgICBGaXggTVNCIGNoZWNrIGluIFhpbGlueCBTcGFydGFuIHNsYXZlIHNlcmlhbCBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgM2JmZjRmZmEzMzcyOWE0MjY0NWUzMjhhMjFlOGQxNjQ4ODg3Mjk1OApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjEyOjU2IDIwMDcgKzAxMDAKCiAgICBBZGQgbmV3IFhpbGlueCBTcGFydGFuIEZQR0EgdHlwZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAyMWQzOWQ1OThjNGU3NGQ0ZTc3NjE2MDhjNzlkYmEyNzE1ZDQwYTRjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTc6MTI6NDMgMjAwNyArMDEwMAoKICAgIEFkZCBwcmUgYW5kIHBvc3QgY29uZmlndXJhdGlvbiBjYWxsYmFja3MgZm9yIFNwYXJ0YW4gRlBHQXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBwb3N0IGNvbmZpZ3VyYXRpb24gY2FsbGJhY2sgZm9yIFNwYXJ0YW4yLzMgRlBHQXMuCiAgICBwcmUgYW5kIHBvc3QgY29uZmlndXJhdGlvbiBjYWxsYmFjayBhcmUgbm93IG9wdGlvbmFsIGFuZAogICAgbm90IGNhbGxlZCB3aGVuIHRoZSBmdW5jdGlvbiBwb2ludGVyIGlzIHNldCB0byBOVUxMLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDAxMzM1MDJlMzlmZjg5YjY3YzI2Y2I0MDE1ZTBlN2U4ZDk1NzExODQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNzoxMjozNCAyMDA3ICswMTAwCgogICAgSW1wcm92ZSBjb25maWd1cmF0aW9uIG9mIEZQR0Egc3Vic3lzdGVtCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBGUEdBIHN1YnN5c3RlbSBjb25maWd1cmF0aW9uIHRocm91Z2gKICAgIHRoZSBDT05GSUdfRlBHQSBiaXRtYXNrIGNvbmZpZ3VyYXRpb24gb3B0aW9uLgoKICAgIFNlZSBSRUFETUUgZm9yIHRoZSBuZXcgb3B0aW9uczoKCglDT05GSUdfRlBHQSwKCUNPTkZJR19GUEdBXzx2ZW5kb3I+LAoJQ09ORklHX0ZQR0FfPGZhbWlseT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA5NWM2YmM3ZDRhMzU4OGI0NTJiYWNhNjEwZjhjNzk1YTgzNjMwNDc3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTY6NTU6MTcgMjAwNyArMDEwMAoKICAgIEFkZCBFcHNvbiBSWDgwMjUgUlRDIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAxMjA4YTJkZmRlMDJiZWRkM2M1YmRhMjlhNjA2NjMyYjhlMGJlMDU4CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTY6NTc6MjMgMjAwNyArMDEwMAoKICAgIHNlcmlhbDogTWFrZSBkZWZhdWx0X3NlcmlhbF9jb25zb2xlKCkgYSB3ZWFrIGZ1bmN0aW9uCgogICAgV2l0aCB0aGlzIHBhdGNoIGl0IGlzIHBvc3NpYmxlIHRvIHJlaW1wbGVtZW50IGRlZmF1bHRfc2VyaWFsX2NvbnNvbGUoKQogICAgaW4gYm9hcmQgc3BlY2lmaWMgY29kZS4gVGhpcyB3aWxsIGJlIGRvbmUgaW4gdGhlIHVwY29tbWluZyBQTUM0NDAKICAgIFUtQm9vdCBwb3J0LiBUaGlzIGFsc28gYWxsb3dzIHRoZSBsd21vbiBib2FyZCBtYWludGFpbmVyIHRvCiAgICByZW1vdmUgdGhlICcjaWYgIWRlZmluZWQoQ09ORklHX0xXTU9OKSAuLi4nIGZyb20gY29tbW9uL3NlcmlhbC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGQxNjQ3MWVlMDVjZTdhYzUzOTJiYzBlOWZlM2ZmNGI1OGE3NjhmMzMKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE0OjE0OjQ3IDIwMDcgKzAxMDAKCiAgICBhZGQgJ3Rlcm1pbmFsIHByb2dyYW0nIGZ1bmN0aW9uYWxpdHkKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSAnY3UnIGxpa2Ugc2VyaWFsIHRlcm1pbmFsIGNvbW1hbmQgdG8gdS1ib290CiAgICB1c2luZyB3aGljaCB5b3UgY2FuIGFjY2VzcyBvdGhlciBzZXJpYWwgcG9ydHMgZnJvbSB0aGUgc3lzdGVtIGNvbnNvbGUuCgogICAgT3Blbk1va28gdXNlcyB0aGlzIGluIHRoZWlyIE5lbzE5NzMgcGhvbmVzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIEdTTQogICAgTW9kZW0gYW5kIEdQUyBjaGlwIGZyb20gdGhlIGJvb3Rsb2FkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCA2MmQ0ZjQzNjUzNDE1NzZmNWE1MzA3YjJiMjA1YTVhYTJlM2M2YmU2CkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNDoxMjo1MyAyMDA3ICswMTAwCgogICAgUmUtaW50cm9kdWNlIHRoZSAnbmFuZCByZWFkLm9vYicgYW5kICduYW5kIHdyaXRlLm9vYicgY29tbWFuZHMKICAgIHRoYXQgdXNlZCB0byBleGlzdCB3aXRoIHRoZSBsZWdhY3kgTkFORCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCBmNTQwYzQyZDk1NjQ4NTRiMTljZTliYmI3MGFmZmUxNzI1MjlmZTcwCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNDowOTo1OCAyMDA3ICswMTAwCgogICAgRml4IGJ1aWxkaW5nIHdpdGggQ1JBTUZTIGJ1dCBub3QgSkZGUzIgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgMjNkMGJhZjk2N2ZlY2RhZjE4MDRmMDQ1ZjYzMzkzMzdjNTYwN2VlYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6NTI6NTggMjAwNyArMDEwMAoKICAgIEFsbG93IENPTkZJR19BVVRPX0NPTVBMRVRFIGFuZCBjb21tYW5kIGhpc3RvcnkgQ09ORklHX0NNRExJTkVfRURJVElORyBhdCB0aGUgc2FtZXRpbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDIzNzc2ZmYyOTI5NjZhODVkODExMTI2OTMzODMwYmVkNDgyMTE4MjYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgRGVjIDExIDEwOjUzOjEyIDIwMDcgKzAxMDAKCiAgICBBUk06IHN1cHBvcnQgYm9hcmQtc3BlY2lmaWMgZXRoZXJuZXQgUEhZIGluaXQKCiAgICBBZGQgdW50aWwgdGhlIG5ldyBwaHlsaWIgd2lsbCBiZSBhcnJpdmVkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3Yjc0ZWJlNzIzZTU3NmJhZWRmNWE4YjYyNDA1ODliMTliODQ1YTFiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyA4IDE2OjM0OjA4IDIwMDcgKzAxMDAKCiAgICBJWFA6IEFkZCBmdWxsIGJhdWQtcmF0ZSBzdXBwb3J0IGZvciBpeHA0MngsIGl4cDQ1eCBhbmQgaXhwNDZ4CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhMmRmNGRhMzFiMWExZTQxZTNlOWUxMzU4Y2ZjNTJiODA2MDQ2Y2UxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIERlYyA5IDExOjAxOjEwIDIwMDcgKzAxMDAKCiAgICBBZGQgbWlzc2luZyBmaWxlIGluIGdpdGlnbm9yZSBhbmQgY29tbWVudHMKCiAgICBiYXNlZCBvbiBMaW51eCBzb3VyY2UgdHJlZSdzIC5naXRpZ25vcmUgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDQzNWRjOGZjZGIzYmM2MWQzZDQ5MDc3M2E4ZjM2OWY5OGEyMGM4NjgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTE6MzY6MjEgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiMmUyMTQyYzUwMGM0OGE1N2YxOGY5ZGQzMGU2NmMxM2NhZWEwOTcxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTA6Mzg6NTggMjAwOCArMDEwMAoKICAgIFBPU1Q6IEV4ZWN1dGUgU1BSIHRlc3QgYWZ0ZXIgcmVsb2NhdGlvbgoKICAgIE9uIExXTU9ONSB3ZSBub3cgdXNlIGQtY2FjaGUgYXMgaW5pdC1yYW0gYW5kIHN0YWNrLiBUaGUgU1BSIFBPU1QgdGVzdCB1c2VzCiAgICBzZWxmIG1vZGlmeWluZyBjb2RlIGFuZCB0aGlzIGRvZXNuJ3Qgd29yayB3aXRoIHN0YWNrIGluIGQtY2FjaGUsIHNpbmNlCiAgICBJIGNhbid0IG1vdmUgdGhlIGNvZGUgZnJvbSBkLWNhY2hlIHRvIGktY2FjaGUuIFdlIG1vdmUgdGhlIFNQUiB0ZXN0IHRvCiAgICBiZSBleGVjdXRlZCBhIGxpdHRsZSBsYXRlciwgYWZ0ZXIgcmVsb2NhdGlvbi4gVGhlbiBzdGFjayBpcyBsb2NhdGVkIGluCiAgICBTRFJBTSBhbmQgdGhpcyBzZWxmLW1vZGlmeWluZyBjb2RlIGlzIG5vIHByb2JsZW0gYW55bW9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGYyNGUwNjM3YWUxMTM1MDBkOGJkNjBkODBkNTdhZmNjMGFhOGJkZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDEwOjI4OjIwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IENoYW5nZSBMV01PTjUgdG8gbm90IHVzZSBPQ00gZm9yIGluaXQtcmFtIGFuZCBQT1NUIGFueW1vcmUKCiAgICBUaGlzIHBhdGNoIGNvbmZpZ3VyZXMgdGhlIExXTU9ONSBwb3J0IHRvIHVzZSBkLWNhY2hlIGFzIGluaXQtcmFtIGFuZAogICAgdGhlIHVudXNlZCBHUFQwX0NPTVA2IGFzIFBPU1QgV09SRCBzdG9yYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNzU0ZjUwYjcxMDE5NGY4ODZiNmYyODMxODAzZDg5NjAxNzFhMTRkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTA6MjU6NDYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIENGR19QT1NUX0FMVF9XT1JEX0FERFIgdG8gc3VwcG9ydCBub24gT0NNIFBPU1QgV09SRCBzdG9yYWdlCgogICAgVGhlIHByaXZpb3VzIDR4eCBQT1NUIGltcGxlbWVudGF0aW9uIG9ubHkgc3VwcG9ydGVkIHN0b3JpbmcgdGhlIFBPU1QKICAgIFdPUkQgaW4gT0NNLiBTaW5jZSB3ZSBuZWVkIHRvIHJlc2VydmUgdGhlIE9DTSBvbiBMV01PTjUgZm9yIHRoZSBsb2didWZmZXIKICAgIHdlIG5lZWQgdG8gc3RvcmUgdGhlIFBPU1QgV09SRCBpbiBzb21lIG90aGVyIG5vbiB2b2xhdGlsZSBsb2NhdGlvbi4KICAgIFRoaXMgcGF0Y2ggYWRkcyBDRkdfUE9TVF9BTFRfV09SRF9BRERSIHRvIHNwZWNpZnkgYW4gYWRkcmVzcyBmb3Igc3VjaAogICAgYSBsb2NhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTAyYzUyMWQ5NGI0NWQ3YjA1YWE1MjJlNGNjZGU2Yjc0YmY1ZmU1NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDEwOjIzOjE2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCA0NHggY2FjaGUgbG9ja2luZyB0byBiZXR0ZXIgc3VwcG9ydCBpbml0LXJhbSBpbiBkLWNhY2hlCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGxvY2tpbmcgdGhlIGluaXQtcmFtL3N0YWNrIGluIGQtY2FjaGUsCiAgICBzbyB0aGF0IG90aGVyIHJlZ2lvbnMgbWF5IHVzZSBkLWNhY2hlIGFzIHdlbGwKCiAgICBOb3RlLCB0aGF0IHRoaXMgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBsb2NrcyBleGFjdGx5IDRrIG9mIGQtY2FjaGUsCiAgICBzbyBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgeW91IGRvbid0IGRlZmluZSBhIGJpZ2dlciBpbml0LXJhbSBhcmVhLiBUYWtlCiAgICBhIGxvb2sgYXQgdGhlIGx3bW9uNSA0NDBFUHggaW1wbGVtZW50YXRpb24gYXMgYSByZWZlcmVuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBkZGI4OTYwMWE4ZDI5ZTgwOGRiNDUwMzY2NzUyZmZkYzYyNjdjNTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTA6MTY6MzMgMjAwOCArMDEwMAoKICAgIEZpeCBtZW1zZXQgYnVnIGluIGV4dDJmc19yZWFkX2ZpbGUoKQoKICAgIGV4dDJmc19yZWFkX2ZpbGUoKSBoYWQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cyBzd2FwcGVkLgoKICAgIFBvaW50ZWQgb3V0IGJ5IE1pa2UgTW9udG91ciwgMTkgRGVjIDIwMDcgMjI6MzQ6MjUgLTA4MDAKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDMyZDZmMWJjMDkxNzVmM2I3NzQ2OTc3MWU4MzliYzcyNTVhOWYyMmUKQXV0aG9yOiBNYXJrdXMgS2xvdHpiw7xjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDUgMDg6MTc6MTUgMTk4OCArMDEwMAoKICAgIEZpeCBwcm9ibGVtcyB3aXRoIHVzYiBzdG9yYWdlIGRldmljZXMgb24gTVBDNTIwMCAvVFFNNTIwMAoKICAgIFRoZSBNUEM1MjAwIE9IQ0kgY29udHJvbGxlciBvcGVyYXRlcyBpbiBiaWcgZW5kaWFuLCBzbwogICAgQ0ZHX09IQ0lfQkVfQ09OVFJPTExFUiBtdXN0IGJlIGRlZmluZWQgZm9yIGl0IHRvIHdvcmsgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA0NmY2ZTUwMTkwNDhiMTAzZDc2OTNkNTMxMGRlMGYxY2ZiYWY0YzE5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA4IDIyOjU4OjI3IDIwMDggKzAxMDAKCiAgICBGaXggY29tcGlsZSBwcm9ibGVtIHdpdGggbmV3IGVudiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjRiMzcyN2I5Nzc5ZDg2MTI3Y2Q1NzZlMzkyYTk4N2RlNWViYjlmZApBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjcgMTA6MjM6MjAgMjAwNyArMDEwMAoKICAgIHRvb2xzOiBmaXggZndfcHJpbnRlbnYgdG9vbCB0byBjb21waWxlIGFnYWluCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBmd19wcmludGVudi9md19zZXRlbnYgdXNlcnNwYWNlIHRvb2wgdG8gaW5jbHVkZQogICAgdGhlIGNvcnJlY3QgTVREIGhlYWRlciBpbiBvcmRlciB0byBjb21waWxlIGFnYWluc3QgY3VycmVudCBrZXJuZWwKICAgIGhlYWRlcnMuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXMgcHJlc2VydmVkIGJ5IGludHJvZHVjaW5nIGFuIG9wdGlvbgogICAgTVREX1ZFUlNJT04gd2hpY2ggY2FuIGJlIHNldCB0byAib2xkIiBmb3IgY29tcGlsYXRpb24gdXNpbmcgdGhlIG9sZCBNVEQKICAgIGhlYWRlcnMuIEFsb25nIHdpdGggdGhpcyBhIG51bWJlciBvZiB3YXJuaW5ncyBhcmUgZml4ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxZjg0MDIxYTg1YWJlYjgzN2QyY2UwZGM4NDI5N2I0ZjFkNDVkNTE2CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxNTo0MDowOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBhc3NpZ24gUENJIGludGVycnVwdHMgb24gc2V1cW9pYSBib2FyZHMKCiAgICBTb21lIG9wZXJhdGluZyBzeXN0ZW1zIHJlbHkgb24gYXNzaWduZWQgUENJIGludGVycnVwdHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNmU5MjMzZDMwYWZlNTdjYjZlMTQ4ZmJmYTQ4OTVlNzgxMDE5NmZhYwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgSmFuIDggMTU6NTA6NDkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTW92ZSBjcHUvcHBjNHh4L3ZlY251bS5oIGludG8gaW5jbHVkZSBwYXRoCgogICAgVGhpcyBwYXRjaCBhbGxvd3MgdGhlIHVzZSBvZiA0eHggaW50ZXJydXB0IHZlY3RvciBudW1iZXIgZGVmaW5lcwogICAgaW4gYm9hcmQgc3BlY2lmaWMgY29kZSBvdXRzaWRlIGNwdS9wcGM0eHguCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNTgwZDFkMzE4NmEyYmM2ZGJkYjYyNjk0MWI3MTZkYWUxNzg4ZTUxZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgSmFuIDggMTU6Mzk6MDEgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IFVJQzIgdmVjdG9yIG51bWJlciBiYXNlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZmY1ZmI4YTZjY2JhNTZlMzQ4MmQwZTI5N2Q4Y2ZiN2ZhYTA0MDgxMQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgSmFuIDggMTI6NDk6NTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIFBMQi9QQ0kgZGl2aWRlciBmb3IgUE1DNDQwIGJvYXJkCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBQTEIvUENJIGRpdmlkZXIgd2hlbiBydW5uaW5nIGF0CiAgICA0MDBNSHogQ1BVIGZyZXF1ZW5jeSBmcm9tIDQgdG8gMyB3aGljaCByZXN1bHRzIGluIDQ0TUh6IFBDSSBzeW5jIGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDdkNWQ3NTYzMzE3NDg2NzMxNmEwYzBmMmZjYTVjZWIyY2YzMTJjZGUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEphbiA4IDExOjEzOjA5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IERpc2FibGUgZXJyb3IgbWVzc2FnZSB3aGVuIG5vIE5BTkQgY2hpcCBpcyBpbnN0YWxsZWQgb24gUE1DNDQwCgogICAgQWRkIENGR19OQU5EX1FVSUVUX1RFU1Qgb3B0aW9uIHRvIGRpc2FibGUgZXJyb3IgbWVzc2FnZSB3aGVuCiAgICBubyBOQU5EIGNoaXAgaXMgaW5zdGFsbGVkIG9uIFBNQzQ0MCBib2FyZHMuCgogICAgRGlzYWJsZSBhIGNvdXBsZSBvZiBjb25maWcgZGVmaW5lcyB0aGF0IGFyZSBvbmx5IHVzZWQgZm9yIE5BTkRfVV9CT09ULgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGM4M2Q3Y2E0ZGFkZDQ0YWU0MzAyMzUwNzdmNjNiNjRhMTFmMzZmNmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDggMjI6NTg6MjcgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxlIHByb2JsZW0gd2l0aCBuZXcgZW52IGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2ZGU2NmIzNTQyNjMxMmEyMTE3NGE5YmYwNTc2YTA5NGUyOTA0YmVhCkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyNyAxMDoyMzoyMCAyMDA3ICswMTAwCgogICAgdG9vbHM6IGZpeCBmd19wcmludGVudiB0b29sIHRvIGNvbXBpbGUgYWdhaW4KCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGZ3X3ByaW50ZW52L2Z3X3NldGVudiB1c2Vyc3BhY2UgdG9vbCB0byBpbmNsdWRlCiAgICB0aGUgY29ycmVjdCBNVEQgaGVhZGVyIGluIG9yZGVyIHRvIGNvbXBpbGUgYWdhaW5zdCBjdXJyZW50IGtlcm5lbAogICAgaGVhZGVycy4gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBpcyBwcmVzZXJ2ZWQgYnkgaW50cm9kdWNpbmcgYW4gb3B0aW9uCiAgICBNVERfVkVSU0lPTiB3aGljaCBjYW4gYmUgc2V0IHRvICJvbGQiIGZvciBjb21waWxhdGlvbiB1c2luZyB0aGUgb2xkIE1URAogICAgaGVhZGVycy4gQWxvbmcgd2l0aCB0aGlzIGEgbnVtYmVyIG9mIHdhcm5pbmdzIGFyZSBmaXhlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGFkMzAwNmZlN2U4NDY2NzAyMTc1M2I3NDI0N2IwYmFmZDk3YmEzNWYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSmFuIDcgMjM6NDc6MzIgMjAwOCAtMDUwMAoKICAgIExJQkZEVDogdXNlIG1lbW1vdmUoKSBpbnN0ZWFkIG9mIG1lbWNweSgpCgogICAgVGhpcyBpcyBwYXJ0aWFsIHBhdGNoIGZyb20gdGhlIERUQy9saWJmZHQKICAgIGNvbW1pdCAgNjdiNmIzM2I5YjQxM2E0NTBhNzIxMzViNWRjNTljMGExZTMzZTY0NwogICAgQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KICAgIERhdGU6ICAgV2VkIE5vdiAyMSAxMTo1NjoxNCAyMDA3ICsxMTAwCgoJVGhlIHBhdGNoIGFsc28gZml4ZXMgb25lIGdlbnVpbmUgYnVnIGNhdWdodCBieSB2YWxncmluZCAtCglfcGFja2Jsb2NrcygpIGluIGZkdF9ydy5jIHdhcyB1c2luZyBtZW1jcHkoKSB3aGVyZSBpdCBzaG91bGQgaGF2ZSBiZWVuCgl1c2luZyBtZW1tb3ZlKCkuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBhZWM3MTM1YmMzMDBlMzM0MGQxOGYyMDMzNDdlZTAwYzViNWY2OGMwCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CU1vbiBEZWMgMTcgMTQ6NDI6MDcgMjAwNyArMTEwMAoKICAgIGxpYmZkdDogQWRkIG1vcmUgZG9jdW1lbnRhdGlvbiAocGF0Y2ggdGhlIHNldmVudGgpCgogICAgVGhpcyBwYXRjaCBhZGRzIG1vcmUgZG9jdW1lbnRpbmcgY29tbWVudHMgdG8gbGliZmR0LmguICBTcGVjaWZpY2FsbHksCiAgICB0aGVzZSBkb2N1bWVudCB0aGUgcmVhZC93cml0ZSBmdW5jdGlvbnMgKG5vdCBpbmNsdWRpbmcgZmR0X29wZW5faW50bygpCiAgICBhbmQgZmR0X3BhY2soKSwgZm9yIG5vdykuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgOWQ0NDUwYjVhZGMzNjYyM2U5YzFkZTFmOTI1MzlkYjc3YWQwYzU3ZQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglNb24gRGVjIDE3IDE0OjQxOjUyIDIwMDcgKzExMDAKCiAgICBsaWJmZHQ6IEFkZCBtb3JlIGRvY3VtZW50YXRpb24gKHBhdGNoIHRoZSBzaXh0aCkKCiAgICBUaGlzIHBhdGNoIGFkZHMgc29tZSBtb3JlIGRvY3VtZW50aW5nIGNvbW1lbnRzIHRvIGxpYmZkdC5oLgogICAgU3BlY2lmaWNhbGx5IHRoaXMgZG9jdW1lbnRzIGFsbCB0aGUgd3JpdGUtaW4tcGxhY2UgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGI2MGFmM2Q0YzE2ODA0ODdlZTM3ZTExYWExYjNkYjZkZWMwNGQ4ZjAKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgRGVjIDI5IDIyOjQ1OjI3IDIwMDcgLTA1MDAKCiAgICBGaW5lIGdyYWluZWQgcGVyIHByb3BlcnR5IC9jaG9zZW4gdXBkYXRpbmcuCgogICAgSW1wbGVtZW50IGEgc3VnZ2VzdGlvbiBieSBTY290dCBXb29kIHRvIG1ha2UgdGhlIC9jaG9zZW4gaGFuZGxpbmcgZmluZQogICAgZ3JhaW5lZC4gIERvbid0IG92ZXJ3cml0ZSBwcmUtZXhpc3RpbmcgcHJvcGVydGllcyBvbiBhIHBlci1wcm9wZXJ0eSBiYXNpcywKICAgIHNvIGlmIC9jaG9zZW4gZXhpc3RzIGJ1dCBhIG5lY2Vzc2FyeSAvY2hvc2VuL3Byb3BlcnR5IGRvZXNuJ3QsIGl0IGdldHMKICAgIGNyZWF0ZWQuICBJZiBhIC9jaG9zZW4gcHJvcGVydHkgZXhpc3RzLCBpdCBpcyBOT1Qgb3ZlcndyaXR0ZW4gdW5sZXNzIHRoZQogICAgImZvcmNlIiBmbGFnIGlzIHRydWUuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAyMzhjYjdhNDIzYzZlYWEzNjQ5NmVmYjc4OGNmYjk3OThjZWE3Zjk1CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEphbiA1IDE1OjMzOjI5IDIwMDggLTA1MDAKCiAgICBJbXByb3ZlIHRoZSBGRFQgaGVscCBtZXNzYWdlLgoKICAgIEFkZCBhIG5vdGUgdGhhdCAiZmR0IGNvcHkiIG1ha2VzIHRoZSBuZXcgYWRkcmVzcyBhY3RpdmUuCiAgICBSZW1vdmUgbW9zdCBvZiB0aGUgZXh0cmEgaGludHMgYXQgdGhlIGVuZCBvZiB0aGUgZmR0IGhlbHAuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBlYTZkOGJlMTUzY2VhZjE2OTU4ZjgwMDljZWE2ZDc1ZjNmZjU4ZDkyCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEphbiA1IDE0OjUyOjA0IDIwMDggLTA1MDAKCiAgICBTdXBwb3J0IHNldHRpbmcgRkRUIHByb3BlcnRpZXMgd2l0aCBvcHRpb25hbCB2YWx1ZXMuCgogICAgRml4IGEgYnVnIGZvdW5kIGFuZCBkb2N1bWVudGVkIGJ5IEJhcnRsb21pZWogU2lla2Egd2hlcmUgdGhlIG9wdGlvbmFsCiAgICB2YWx1ZSBvbiAiZmR0IHNldCA8cGF0aD4gPHByb3A+IFs8dmFsPl0iIHdhc24ndCBvcHRpb25hbC4KCiAgICA9PiBmZHQgbWtub2RlIC8gdGVzdG5vZGUKICAgID0+IGZkdCBwcmludCAvdGVzdG5vZGUKICAgIHRlc3Rub2RlIHsKICAgIH07CiAgICA9PiBmZHQgc2V0IC90ZXN0bm9kZSB0ZXN0cHJvcAogICAgPT4gZmR0IHByaW50IC90ZXN0bm9kZQogICAgdGVzdG5vZGUgewoJICAgIHRlc3Rwcm9wOwogICAgfTsKCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDIyZmIyMjQ2ZGY5MWJmYzg0MGQ4N2YwYzU5MTA4MThiYWQ1NTU3N2EKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxMTo1NjozMCAyMDA3ICswMTAwCgogICAgQWRkIGZkdF9maW5kX2FuZF9zZXRwcm9wKCkgdG8gZmR0X3N1cHBvcnQuaAoKICAgIGZkdF9maW5kX2FuZF9zZXRwcm9wKCkgaXMgdXNlZCBieSBzZXZlcmFsIDR4eCBib2FyZHMgYW5kIGl0J3MKICAgIG1pc3NpbmcgaW4gdGhlIGFwcHJvcHJpYXRlIGhlYWRlci4gVGhpcyBwYXRjaCBlbGltaW5hdGVzIGEKICAgIHdhcm5pbmcgd2hlbiBidWlsZGluZyBVLUJvb3QgZm9yIHN1Y2ggYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MDJiNzY5YmFjMTdiMDU2MGQzNTM1YTQyYzUwMjQ2OWVlMTkwY2QxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDggMTg6Mzk6MzAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmV0dXJuIDAgb24gc3VjY2VzcyBpbiA0eHggZXRoZXJuZXQgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY3NzVjNjg2ODNhNTNjN2FiYzc3ODc3NDY0MWFhYzZmODMzYTJjYmYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDggMDk6NTk6NDkgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBtaXNzZWQgcGNpX2hvc2UgLT4gaG9zZSBjb252ZXJzaW9uIGZvciBuZXcgbGliZmR0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk0ZmFiMjVmNWYxYTdkMWMwY2M2M2MxN2U4MTNlYTg5NDNmZTQ5YzcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDIwIDE2OjI4OjM0IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBybSByZW1haW5pbmcgRkxBVF9UUkVFIGNvZGUKCiAgICAuLmluIGJvYXJkIHBjaS5jIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMzQ1OGQyY2Q1NWQwMTczMmUzMGE3NmQ4OThhZmQ5OWU4NzFjZDY3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxNTo1NzoyOCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogcmVtb3ZlIEZMQVRfVFJFRSBjb2RlCgogICAgbmVlZCB0byBybSBpdCBmcm9tIHBjaSBjb2RlLCB0b28hCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YjhiYzYwNmM2MTQ1NjU2NmFmNjkxMmY4MThhMTUzYjZiMDZmMjQyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxNDowOToyMiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogY29udmVydCB0byB1c2luZyBkb19maXh1cF8qKCkKCiAgICBjb252ZXJ0IHRvIHVzaW5nIHNpbXBsZXIgbXBjODV4eCBzdHlsZSBmZHQgdXBkYXRlIGNvZGU7IHN0cmVhbWxpbmUgYnkKICAgIGVsaW1pbmF0aW5nIG1hY3JvcyBPRl9TT0MsIE9GX0NQVSwgZXRjLiB3aGljaCBhbGxvd3MgdXMgdG8gcm0KICAgIHRoZSBvbGQgc2Nob29sIEZMQVRfVFJFRSBjb2RlIGZyb20gODN4eCAoc2luY2UgdGhlIHNiYzgzNDkgd2FzIGp1c3QKICAgIGNvbnZlcnRlZCBvdmVyIHRvIHVzaW5nIGxpYmZkdCkuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNDk2ODY1ZWNjMzFhMmZlMmY5YWJmZTc5ODMzNGJiMDJhYWYwNWFiCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBEZWMgMjAgMTI6NTg6NTEgMjAwNyAtMDUwMAoKICAgIHNiYzgzNDk6IGVuYWJsZSBsaWJmZHQgYnkgZGVmYXVsdCBvbiBXUlMgU0JDODM0OSBib2FyZC4KCiAgICBNYWtlIGxpYmZkdCB0aGUgZGVmYXVsdCBmb3IgdGhlIFdSUyBTQkM4MzQ5IGJvYXJkLgogICAgUGFyYWxsZWwgb2YgY29tbWl0IDM1Y2M0ZTQ4MjM2NjhlODc0NTg1NDg5OWNmYWVkZDQ0ODliZWIwZWYKICAgIGRvbmUgZm9yIHRoZSBvdGhlciA4M3h4IGJhc2VkIGJvYXJkcy4gIEFsc28gZml4IGEgdHlwbyBpbiBDT05GSUdfUENJLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgoKY29tbWl0IDI0MDhiM2YyMGJjYmRkOWM2YzM5N2NkMDNhYjBkNzFkNTQ2ODBhNDAKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxMjo1ODoxNiAyMDA3IC0wNTAwCgogICAgc2JjODM0OTogbWlncmF0ZSBib2FyZCB0byBsaWJmZHQKCiAgICBUaGlzIGFkZHMgbGliZmR0IHN1cHBvcnQgY29kZSBmb3IgdGhlIFdpbmQgUml2ZXIgc2JjODM0OSBib2FyZC4KCiAgICBQYXJhbGxlbCBvZiBjb21taXQgM2ZkZTllOGIyMmNmYmQ3YWY0ODkyMTQ3NThmOTgzOWEyMDY1NzZjYiBmb3IKICAgIHRoZSBvdGhlciBGcmVlc2NhbGUgODN4eCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgMjdhMjU2YTkwY2M4NjM5MmFjOWJmMDAzOWEzYWZlNjM4ZWMyYzE4ZApBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUaHUgRGVjIDIwIDEyOjU2OjE5IDIwMDcgLTA1MDAKCiAgICBzYmM4MzQ5OiBSZW1vdmUgYm9hcmQgc3BlY2lmaWMgRUNDIGNvZGUKCiAgICBFQ0MgY29kZSBpcyBub3cgc2hhcmVkIGZvciBhbGwgODN4eCBib2FyZHMsIHNvIHJlbW92ZSBib2FyZCBzcGVjaWZpYyBvbmUuCiAgICBTZWUgY29tbWl0IGRhYWI4YzY3ZDJkZWZlZjczZGMyNmFiMDdmMGMzYWZkMWIwNWQwMTkgZm9yIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCBhMWUxYWM4NDkyNDkzMTBlNWUyZTVjNzE0OGU5ZmIzNTNhODMxN2E3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAwMTozMDo0OCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogUmVtb3ZlIENPTkZJRyBvcHRpb25zIHJlbGF0ZWQgdG8gT0YgdGhhdCB3ZSBkb250IHVzZSAob24gODM3eCkKCiAgICBjb250aW51YXRpb24gb2YgY29tbWl0IDM3Mzk1ZmEyYjBkOWQ2MTdmMjhkNDRjYTExNTkyMjYwZWYxNjEwNWEgdG8gODM3eAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2NmMjFjMzExZTY4ZDQ4Mzk5ZWZmMWU3MjkzNjA1Mjg4NWY2ZTNmNwpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglUaHUgRGVjIDYgMTY6NDM6NDAgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IENPTkZJR19VRUNfRVRIMyBpbiBNUEM4M3h4CgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+Cgpjb21taXQgZTZhZjk5MzJkMzExNzFlMzVkYjg4MGU3YjJmMjlmOTAzYjFiNzY2MApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTE6MDA6NTQgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBDT05GSUcgb3B0aW9ucyByZWxhdGVkIHRvIE9GIHRoYXQgd2UgZG9udCB1c2UKCiAgICBUaGUgTVBDODM2MEUgTURTIGNvbmZpZyBkZWZpbmVkOgoJQ09ORklHX09GX0hBU19CRF9UCglDT05GSUdfT0ZfSEFTX1VCT09UX0VOVgoKICAgIFdoaWNoIHdlIGRvbid0IHVzZSBvciBldmVyIG5lZWRlZC4JVGhpcyBzZWVtcyBsaWtlIGNvcHktcGFzdGUgZmVhdHVyZSBjcmVlcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY2MDIwODJiNGI3ZWQ0ZWUxNjQzMjA2N2NjNjdhMGEyNGZlZGM3MTUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDEwIDE0OjE2OjIyIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBzdXByZXNzIGNvbXBpbGVyIHdhcm5pbmcKCiAgICBtcGM4MzYwZW1kcy5jOiBJbiBmdW5jdGlvbiDigJhmdF9ib2FyZF9zZXR1cOKAmToKICAgIG1wYzgzNjBlbWRzLmM6MzM1OiB3YXJuaW5nOiBhc3NpZ25tZW50IGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCiAgICBtcGM4MzYwZW1kcy5jOjM0NTogd2FybmluZzogYXNzaWdubWVudCBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzE2ZTQ0ZmE4MzVmYjllZWM5ODJkOTE5ODYzYTA0ZTJmNzhlNWNlNwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjcgMTQ6MTc6MjkgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCByZW1haW5pbmcgZmR0X2ZpbmRfbm9kZV9ieV9wYXRoIHJlZmVyZW5jZXMKCiAgICByZW5hbWUgdG8gZmR0X3BhdGhfb2Zmc2V0CgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MjFkNGIxOWFkMWJlNzA0ZGY1ODcyNTQ4NWQ5MjkyZGMwNDE0YWRmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiAxOSAxMjozMDowOSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZml4IENGR19FTlZfQUREUiBhbmQgQ0ZHX0VOVl9TRUNUX1NJWkUgZGVmaW5pdGlvbnMgZm9yIDgzN3gKCiAgICBGaXggdGhlIGRlZmluaXRpb25zIG9mIENGR19FTlZfQUREUiBhbmQgQ0ZHX0VOVl9TRUNUX1NJWkUgZm9yIDgzN3guCiAgICBUaGlzIGNoYW5nZSBndWFyYW50ZWVzIHRoYXQgdGhlIGVudmlyb25tZW50IHdpbGwgYmUgbG9jYXRlZCBvbiB0aGUKICAgIGZpcnN0IGZsYXNoIHNlY3RvciBhZnRlciB0aGUgVS1Cb290IGltYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjRmODY4NDMzYjUwZWNiYWE4OGUxMThhYWRjN2JkMjU0MDEzYzZhZQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgOSAxNDoyODowOCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogbXBjODM2MCByZXYuMi4xIGVycmF0dW0gMjogcmVwbGFjZSByZ21paS1pZCB3aXRoIHJnbWlpLXJ4aWQKCiAgICB1LWJvb3QgaXRzZWxmIHVzZXMgR01JSSBtb2RlIG9uIHRoZSA4MzYwLiAgRml4IHVwIFVDQyBwaHktY29ubmVjdGlvbi10eXBlCiAgICBwcm9wZXJ0aWVzIGluIHRoZSBkZXZpY2UgdHJlZSBzbyB0aGUgUEhZIGdldHMgY29uZmlndXJlZCBmb3IgaW50ZXJuYWwgZGVsYXkgb24KICAgIFJYIG9ubHkgYnkgdGhlIE9TLCBhcyBwcmVzY3JpYmVkIGJ5IG1wYzgzNjAgcmV2LiAyLjEgcGIgbWRzIGVycmF0dW0gIzIuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmI0NDhkYmZiZTJhOThmMDFmZjRhZGMzYzM5NzlmOGM1NDFhZDdiCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE4IDEyOjQxOjE1IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiB1cGRhdGUgdGhlIENSRURJVFMgYW5kIE1BSU5UQUlORVJTCgogICAgdXBkYXRlIHRoZSBDUkVESVRTIGFuZCBNQUlOVEFJTkVSUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyMWFkZDRiNDJhZjdiNzY3NDQ4MjUxYjU5OWI5MTA2NmExNjBlMGQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTI6NDA6MjEgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IGFkZCBNQUlOVEFJTkVSIGFuZCBNQUtFQUxMIGVudHJpZXMgZm9yIHRoZSBtcGM4Mzd4ZW1kcwoKICAgIEFkZCB0aGUgTUFJTlRBSU5FUiBhbmQgTUFLRUFMTCBlbnRyaWVzIGZvciBtcGM4Mzd4ZW1kcwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjg5MDBjZTkwOTRjNDYyMzU1ZWI3OTJlZWEyNjRmZjE2YWM4ZmQxNgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMjozODo1MyAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBNUEM4Mzd4RU1EUyBib2FyZCByZWFkbWUKCiAgICBBZGQgdGhlIFJFQURNRS5tcGM4Mzd4ZW1kcyB0byAvZG9jCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxOTU4MGU2NjBjYzhkYTQ5ZjE2NTM2YThiZDc4YzA0N2M3YmMxMmU1CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE4IDEyOjM3OjU3IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIHN1cHBvcnQgb2YgTVBDODM3eEVNRFMgYm9hcmQKCiAgICBUaGUgTVBDODM3eEVNRFMgYm9hcmQgc3VwcG9ydDoKICAgICogRERSMiA0MDBNSHogaGFyZGNvZGVkIGFuZCBTUEQgaW5pdAogICAgKiBMb2NhbCBidXMgTk9SIEZsYXNoCiAgICAqIEkyQywgVUFSVCwgTUlJIGFuZCBSVEMKICAgICogZVRTRUMgUkdNSUkKICAgICogUENJIGhvc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU1NWRhNjE3MDI3NzFmZTBmNzZmM2RlMjNiNGU3NTkwZjM3MDQxNjEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTI6MzY6NTggMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgc3VwcG9ydCBvZiBNUEM4MzE1RSBTb0MKCiAgICBUaGUgTVBDODMxNUUgU29DIGluY2x1ZGluZyBlMzAwYzMgY29yZSBhbmQgbmV3IElQIGJsb2NrcywKICAgIHN1Y2ggYXMgVERNLCBQQ0kgRXhwcmVzcyBhbmQgU0FUQSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDMwNTFjM2QzNWM5OTgxY2VhYTA1OTAwNTY2MGU2OTlmM2VhY2YxYwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMjozNjoxMSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBzdXBwb3J0IG9mIE1QQzgzN3ggU29DCgogICAgVGhlIE1QQzgzN3ggU29DIGluY2x1ZGluZyBlMzAwYzQgY29yZSBhbmQgbmV3IElQIGJsb2NrcywKICAgIHN1Y2ggYXMgU0RIQywgUENJIEV4cHJlc3MgYW5kIFNBVEEgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1MWQ5NmY3ZTRjODRhZGNkYjk4ZWYwN2VjODc4YzIwMzI2ZTMzNTkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIE5vdiAxNCAxODo1NDo1MyAyMDA3ICswMzAwCgogICAgTVBDODM2MEUtTURTOiBjb25maWd1cmUgYW5kIGVuYWJsZSBzZWNvbmQgVUFSVAoKICAgIERlc3BpdGUgdXNlciBtYW51YWwsIEJDU1I5LjcgaXMgbmVnYXRlZCAoaGlnaCkgb24gSFJTVCwgc28KICAgIFVBUlQyIGlzIGRpc2FibGVkLiBGaXggdGhhdCBhbmQgY29uZmlndXJlIFFFIHBpbnMgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgYjI4OTNlMWZjYjI4ZmFkOGM4YjMxNzEwNGRmOGNlZTAxNDJjNzYzMQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgNSAwOTozNDowNiAyMDA3IC0wNjAwCgogICAgODN4eDogZml4IENGR19FTlZfQUREUiBhbmQgQ0ZHX0VOVl9TRUNUX1NJWkUgZGVmaW5pdGlvbnMKCiAgICBGaXggdGhlIGRlZmluaXRpb25zIG9mIENGR19FTlZfQUREUiBhbmQgQ0ZHX0VOVl9TRUNUX1NJWkUgZm9yIGFsbCBvZiB0aGUKICAgIGN1cnJlbnRseS1kZWZpbmVkIDgzeHggYm9hcmRzLiAgVGhpcyBjaGFuZ2UgZ3VhcmFudGVlcyB0aGF0IHRoZSBlbnZpcm9ubWVudAogICAgd2lsbCBiZSBsb2NhdGVkIG9uIHRoZSBmaXJzdCBmbGFzaCBzZWN0b3IgYWZ0ZXIgdGhlIFUtQm9vdCBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMDUzMjk1MTZhMTM2MTZiNTMyNDBjZDg1YjczOTIxN2MyYmY4N2YxCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CUZyaSBKYW4gNCAxMzoyNzowMiAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBSZW1vdmUgd2VhayBiaW5kaW5nIGZyb20gY29tbW9uIERlbmFsaSBkYXRhLWV5ZSBzZWFyY2ggY29kZQoKICAgIE5vdyB0aGF0IHRoZXJlIGFyZSBubyBib2FyZC1zcGVjaWZpYyB2ZXJzaW9ucyBvZgogICAgImRlbmFsaV9jb3JlX3NlYXJjaF9kYXRhX2V5ZSgpIiwgdGhlIHdlYWsgYmluZGluZyBvbiB0aGUgY29tbW9uIHZlcnNpb24KICAgIGNhbiBiZSByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDViYTU3NmMwMTYwMmZkMzI4ODAwYTQyNzk2NGMzNmEwYTA1YzVkY2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNSAwOToxMzo0NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIENPTkZJR19FQ0NfRVJST1JfUkVTRVQgZnJvbSA0NHhfc3BkX2RkcjIuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NDVjNmM5NWRiZmU2YzkxNWNlNjhhMGExMTU4NTJmYTE3OTMyZmI0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDUgMDk6MTI6NDEgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIEthdG1haS80NHhfc3BkX2RkcjIuYyBjb2RlIGZvciBvcHRpbWFsIEREUjIgc2V0dXAKCiAgICBPbiBLYXRtYWkgdGhlIGNvbXBsZXRlIGF1dG8tY2FsaWJyYXRpb24gc29tZWhvdyBkb2Vzbid0IHNlZW0gdG8KICAgIHByb2R1Y2UgdGhlIGJlc3QgcmVzdWx0cywgbWVhbmluZyBvcHRpbWFsIHZhbHVlcyBmb3IgUlFGRC9SRkZELgogICAgVGhpcyB3YXMgZGlzY292ZXJlZCBieSBHREEgdXNpbmcgYSBoaWdoIGJhbmR3aWR0aCBzY29wZSwKICAgIGFuYWx5emluZyB0aGUgRERSMiBzaWduYWxzLiBHREEgcHJvdmlkZWQgYSBmaXhlZCB2YWx1ZSBmb3IgUlFGRCwKICAgIHNvIG5vdyBvbiBLYXRtYWkgIm9ubHkiIFJGRkQgaXMgYXV0by1jYWxpYnJhdGVkLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIFJEQ0MgY2FsaWJyYXRpb24gYXMgbWVudGlvbmVkIG9uIHBhZ2UgNyBvZgogICAgdGhlIEFNQ0MgUG93ZXJQQzQ0MFNQL1NQZSBERFIyIGFwcGxpY2F0aW9uIG5vdGU6CiAgICAiRERSMS9ERFIyIEluaXRpYWxpemF0aW9uIFNlcXVlbmNlIGFuZCBEeW5hbWljIFR1bmluZyIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDlkYjQ3YjhhZTZhZmZmMmI4OThiZTMxMjk0OGZmNTAxMzU3ZGM4MApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgSmFuIDIgMTY6NDg6NDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHNkcmFtLmggZnJvbSBQTUM0NDAgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAzNDA2NWEyY2UwZDg5NzJmMmVjNjY1MjA3NjAxNGFiMjQzZDJjZThhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBKYW4gMiAxNjo0ODozNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiB1c2UgY29tbW9uIGRlbmFsaSBjb3JlIGRlZmluZXMgYW5kIGRhdGEgZXllIHNlYXJjaCBjb2RlIGZvciBQTUM0NDAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA5YWM2YjZmM2QzZjFiMDcyZDg5MjY4YjJlZmU0N2U5NWU2NjU5NDg5CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBKYW4gMiAxMjowNToxNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBNb3JlIGNsZWFudXAgZm9yIGVzZCdzIExDRCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZmU5YzI2YjMzMGEyMWNlNzNlNTJiNWJkMzQ3ZDcyNWNiODFlM2NmYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA0IDEyOjAwOjAxIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBTZXF1b2lhIE5BTkQgYm9vdGluZyB0YXJnZXQKCiAgICBUaGUgU2VxdW9pYSBOQU5EIGJvb3RpbmcgdGFyZ2V0IG5vdyB1c2VzIHRoZSByZWNlbnRseSBleHRyYWN0ZWQKICAgIGNwdS9wcGM0eHgvZGVuYWxpX2RhdGFfZXllLmMgZmlsZSB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBkZGQ5NjlhZWM1MzJiZDdlYWUzMGZjMDk1OTA0ODhhM2FhYTYyOWEKQXV0aG9yOiBMYXdyZW5jZSBSLiBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEphbiAzIDE1OjAyOjAyIDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IFVzZSBDRkdfNHh4X0dQSU9fVEFCTEUgdG8gY29uZmlndXJlIEtvcmF0IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgYjA1ZThiZjU4YmU5ZDg5NTZmZGZkZTNkOGM4ZTg3YzE0MDQxNDY2MwpBdXRob3I6IExhd3JlbmNlIFIuIEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglGcmkgSmFuIDQgMDI6MTE6NTYgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogVXNlIENGR180eHhfR1BJT19UQUJMRSB0byBjb25maWd1cmUgU2VxdW9pYSBib2FyZAoKICAgIE5vdGU6IHRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgY29uZmlndXJhdGlvbiBvZiBzb21lIEdQSU8gcmVnaXN0ZXJzOgoKICAgICAgIFJlZ2lzdGVyICAgICAgT2xkIFZhbHVlCSBOZXcgVmFsdWUKICAgIC0tLS0tLS0tLS0tLS0tLSAgLS0tLS0tLS0tLSAgLS0tLS0tLS0tLQogICAgRENSIEdQSU8wX1RDUiAgICAweDAwMDAwMDBGICAweDAwMDBGMENGCiAgICBEQ1IgR1BJTzBfVFNSSCAgIDB4NTUwMDUwMDAgIDB4MDAwMDAwMDAKICAgIERDUiBHUElPMV9UQ1IgICAgMHhDMjAwMDAwMCAgMHhFMjAwMDAwMAogICAgRENSIEdQSU8xX1RTUkwgICAweDBDMDAwMDAwICAweDAwMjAwMDAwCiAgICBEQ1IgR1BJTzFfSVNSMkwgIDB4MDAwNTAwMDAgIDB4MDAxMTAwMDAKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA1YWI4ODRiMjU0Y2EyZTcwN2FiNTA1NDVjZDcwNWYzMDEwOGNmNDkxCkF1dGhvcjogTGF3cmVuY2UgUi4gSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBKYW4gMyAxODo1NDowMCAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBBZGQgZnVuY3Rpb25hbGl0eSB0byBHUElPIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIG1ha2VzIHR3byBhZGRpdGlvbnMgdG8gR1BJTyBzdXBwb3J0OgoKICAgIEZpcnN0LCBpdCBhZGRzIGZ1bmN0aW9uIGdwaW9fcmVhZF9pbl9iaXQoKSB0byByZWFkIHRoZSBhIGJpdCBmcm9tIHRoZQogICAgR1BJTyBJbnB1dCBSZWdpc3RlciAoR1BJT3hfSVIpIGluIHRoZSBzYW1lIHdheSB0aGF0IGZ1bmN0aW9uCiAgICBncGlvX3JlYWRfb3V0X2JpdCgpIHJlYWRzIGEgYml0IGZyb20gdGhlIEdQSU8gT3V0cHV0IFJlZ2lzdGVyCiAgICAoR1BJT3hfT1IpLgoKICAgIFNlY29uZCwgaXQgbW9kaWZpZXMgZnVuY3Rpb24gZ3Bpb19zZXRfY2hpcF9jb25maWd1cmF0aW9uKCkgdG8gcHJvdmlkZQogICAgYW4gYWRkaXRpb25hbCBvcHRpb24gZm9yIGNvbmZpZ3VyaW5nIHRoZSBHUElPIGZyb20gdGhlCiAgICAiQ0ZHXzR4eF9HUElPX1RBQkxFIi4KCiAgICBBY2NvcmRpbmcgdG8gdGhlIDQ0MEVQeCBVc2VyJ3MgTWFudWFsLCB3aGVuIGFuIGFsdGVybmF0ZSBvdXRwdXQgaXMgdXNlZCwKICAgIHRoZSB0aHJlZS1zdGF0ZSBjb250cm9sIGlzIGNvbmZpZ3VyZWQgaW4gb25lIG9mIHR3byB3YXlzLCBkZXBlbmRpbmcgb24KICAgIHRoZSBwYXJ0aWN1bGFyIG91dHB1dC4gIFRoZSBmaXJzdCBvcHRpb24gaXMgdG8gc2VsZWN0IHRoZSBjb3JyZXNwb25kaW5nCiAgICBhbHRlcm5hdGUgdGhyZWUtc3RhdGUgY29udHJvbCBpbiB0aGUgR1BJT3hfVFJTSC9MIHJlZ2lzdGVycy4gIFRoZSBzZWNvbmQKICAgIG9wdGlvbiBpcyB0byBzZWxlY3QgdGhlIEdQSU8gVGhyZWUtU3RhdGUgQ29udHJvbCBSZWdpc3RlciAoR1BJT3hfVENSKSBpbgogICAgdGhlIEdQSU94X1RSU0gvTCByZWdpc3RlcnMsIGFuZCBzZXQgdGhlIGNvcnJlc3BvbmRpbmcgYml0IGluIHRoZQogICAgR1BJT3hfVENSIHJlZ2lzdGVyIHRvIGVuYWJsZSB0aGUgb3V0cHV0LiAgRm9yIGV4YW1wbGUsIHRoZSBNYW51YWwKICAgIHNwZWNpZmllcyBjb25maWd1cmluZyB0aGUgR1BJTzAwIEFsdGVybmF0ZSAxIFNpZ25hbCAoUHJlQWRkcjA3KSB0byB1c2UKICAgIHRoZSBhbHRlcm5hdGUgdGhyZWUtc3RhdGUgY29udHJvbCAoZmlyc3Qgb3B0aW9uKSwgYW5kIHNwZWNpZmllcwogICAgY29uZmlndXJpbmcgdGhlIEdQSU8zMiBBbHRlcm5hdGUgMSBTaWduYWwgKFVTQjJPTTApIHdpdGggdGhlIG91dHB1dAogICAgZW5hYmxlZCBpbiB0aGUgR1BJT3hfVENSIHJlZ2lzdGVyIChzZWNvbmQgb3B0aW9uKS4KCiAgICBDdXJyZW50bHksIGdwaW9fc2V0X2NoaXBfY29uZmlndXJhdGlvbigpIGNvbmZpZ3VyZXMgYWxsIGFsdGVybmF0ZSBzaWduYWwKICAgIG91dHB1dHMgdG8gdXNlIHRoZSBmaXJzdCBvcHRpb24uICBUaGlzIHBhdGNoIGFsbG93IHRoZSBzZWNvbmQgb3B0aW9uIHRvCiAgICBiZSBzZWxlY3RlZCBieSBzZXR0aW5nIHRoZSAib3V0X3ZhbCIgZWxlbWVudCBpbiB0aGUgdGFibGUgZW50cnkgdG8KICAgICJHUElPX09VVF8xIi4gIFRoZSBmaXJzdCBvcHRpb24gaXMgdXNlZCB3aGVuIHRoZSAib3V0X3ZhbCIgZWxlbWVudCBpcwogICAgc2V0IHRvICJHUElPX09VVF8wIi4gIEJlY2F1c2UgIm91dF92YWwiIGlzIG5vdCBjdXJyZW50bHkgdXNlZCB3aGVuIGFuCiAgICBhbHRlcm5hdGUgc2lnbmFsIGlzIHNlbGVjdGVkLCBhbmQgYmVjYXVzZSBhbGwgY3VycmVudCBHUElPIHRhYmxlcyBzZXQKICAgICJvdXRfdmFsIiB0byAiR1BJT19PVVRfMCIgZm9yIGFsbCBhbHRlcm5hdGUgc2lnbmFscywgdGhpcyBwYXRjaCBzaG91bGQKICAgIG5vdCBjaGFuZ2UgYW55IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDE5NjQwNGNkYzFkZTQ5NWQ2MTgyZTg0NzMxYzIwMGZjNTc0OGRmMTUKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMTowMTo1NCAyMDA3IC0wNTAwCgogICAgUFBDNHh4OiBSZW1vdmUgc2RyYW0uaCBmcm9tIGJvYXJkL2x3bW9uNQoKICAgIFRoZXNlIGRlZmluaXRpb25zIGFyZSBub3cgaW4gImluY2x1ZGUvcHBjNDQwLmgiLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGVmMTZmY2NmOTZlNTVlYWI5M2ZlMjVkMDNlYmUyZTliNTZlNTMzMmIKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMTowMTozMiAyMDA3IC0wNTAwCgogICAgUFBDNHh4OiBVc2UgY29tbW9uIGNvZGUgZm9yIExXTU9ONSBib2FyZCBTRFJBTSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBjb2RlIHNvIHRoYXQgdGhlIGRhdGEtZXllCiAgICBzZWFyY2ggaXMgbm93IGRvbmUgd2l0aCB3aXRoIHRoZSBjYWNoZSBkaXNhYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA2MmNjMzk1MWFiNzIxMzVkOWMxMDFmMTg0NWI3OTRlNjNhMGZhMTg5CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVN1biBEZWMgMzAgMDE6MDE6MTQgMjAwNyAtMDUwMAoKICAgIFBQQzR4eDogUmVtb3ZlIHNkcmFtLmggZnJvbSBib2FyZC9hbWNjL3NlcXVvaWEKCiAgICBUaGVzZSBkZWZpbml0aW9ucyBhcmUgbm93IGluICJpbmNsdWRlL3BwYzQ0MC5oIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjZTM5MDJlMTc2NWJiZmIwN2NmNWJiZTk4YmU5YTY4ZTMwMDk5OTZhCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVN1biBEZWMgMzAgMDE6MDA6NTAgMjAwNyAtMDUwMAoKICAgIFBQQzR4eDogVXNlIGNvbW1vbiBjb2RlIGZvciBTZXF1b2lhIGJvYXJkIFNEUkFNIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA4YjBjNWMxMjc2OTAzMzU3NTgxMDBjMjVlYWVjMmI4NGRiOTdjMTAxCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTY6NTg6NDEgMjAwNyArMDEwMAoKICAgIG5ldDogQWRkIENPTkZJR19ORVRfRE9fTk9UX1RSWV9BTk9USEVSIG9wdGlvbgoKICAgIFdoZW4gQ09ORklHX05FVF9ET19OT1RfVFJZX0FOT1RIRVIgaXMgZGVmaW5lZCBVLUJvb3QncwogICAgbmV0d29ya2luZyBzdGFjayBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IHN3aXRjaCB0bwogICAgYW5vdGhlciBpbnRlcmZhY2UuIFRoaXMgcGF0Y2ggZG9lcyBub3QgdG91Y2ggdGhlIGRlZmF1bHQKICAgIGJlaGF2aW9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1MDViZTg3YTY1ZTRmODdhZDdkOGRhMWQ1N2VhNGRjZDQ4N2Q3ZTMyCkF1dGhvcjogVXBha3VsIEJhcmtha2F0eSA8dXBha3VsQGdtYWlsLmNvbT4KRGF0ZToJVGh1IE5vdiAyOSAxMjoxNjoxMyAyMDA3ICswNTMwCgogICAgTkVUOiBQcm9wZXIgcmV0dXJuIGNvZGUgaGFuZGxpbmcgaW4gZXRoX2luaXQoKSBmdW5jdGlvbiBpbiBmaWxlIGV0aC5jCgogICAgVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgcmV0dXJuIGNvZGUgaGFuZGxpbmcgaW4gdGhlIGV0aF9pbml0KCkKICAgIGZ1bmN0aW9uLCB0byBiZSBjb21wYXRpYmxlIHdpdGggdGhlIGhhbmRsaW5nIG9mIHRoZSByZXR1cm4gY29kZXMgaW4KICAgIHRoZSBvdGhlciBuZXR3b3JrIHN0YWNrIGZpbGVzLiBJdCBub3cgcmV0dXJucyBhIDAgb24gU3VjY2VzcyBhbmQgLTEgb24KICAgIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFVwYWt1bCBCYXJrYWthdHkgPHVwYWt1bC5iYXJrYWthdHlAY29uZXhhbnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1Y2EyZDA5NTNlNDU3OWE4MDgxMDk2NmNjYTIwNzdlMjBkOTEyYzk3CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglNb24gTm92IDE5IDIwOjI3OjA0IDIwMDcgKzA5MDAKCiAgICBuZXQvZXRoLmM6IEZpeCBlbnZfZW5ldGFkZHIgc2lnbmVkIG92ZXJmbG93CgogICAgQXNzaWduaW5nIHRoZSBvdXRwdXQgb2Ygc2ltcGxlX3N0cnRvdWwoQ0I6QTk6ODc6NjU6NDM6MjEpIHRvIGBjaGFyJywgd2UgYXJlCiAgICB3YXJuZWQgYXMgYmVsb3c6CgogICAgICBVLUJvb3QgMS4yLjAgKEF1ZyAzMCAyMDA3IC0gMDg6Mjc6MzcpCgogICAgICBEUkFNOiAgMjU2IE1CCiAgICAgIEZsYXNoOiAzMiBNQgogICAgICBJbjogICAgc2VyaWFsCiAgICAgIE91dDogICBzZXJpYWwKICAgICAgRXJyOiAgIHNlcmlhbAogICAgICBOZXQ6ICAgTkVDLUNhbmR5CiAgICAgIFdhcm5pbmc6IE5FQy1DYW5keSBNQUMgYWRkcmVzc2VzIGRvbid0IG1hdGNoOgogICAgICBBZGRyZXNzIGluIFNST00gaXMJIDAwOjAwOjRDOjgwOjkyOkEyCiAgICAgIEFkZHJlc3MgaW4gZW52aXJvbm1lbnQgaXMgIEZGRkZGRkNCOkZGRkZGRkE5OkZGRkZGRjg3OjY1OjQzOjIxCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIGVudl9lbmV0YWRkciB0eXBlIGZyb20gYGNoYXInIHRvIGB1bnNpZ25lZCBjaGFyJy4KCiAgICBDYzogTWFzYWtpIElzaGlrYXdhIDxpc2hpa2F3YS1tYXNha2lAY250Lm14ZS5uZXMubmVjLmNvLmpwPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmODViNjA3MTA1NzFiMzcyOTNkMjIzMzkzM2I3NmUyYWEzZGI1NjM1CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxODoxOTowMiAyMDA3ICswMTAwCgogICAgSW50cm9kdWNlIG5ldyBldGhfcmVjZWl2ZSByb3V0aW5lCgogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyByb3V0aW5lIGlzIHJlY2VpdmluZyBhIHNpbmdsZSBuZXR3b3JrIGZyYW1lLCBvdXRzaWRlIG9mCiAgICBVLUJvb3QncyBOZXRMb29wKCkuIEV4cG9ydGluZyBpdCB0byBzdGFuZGFsb25lIHByb2dyYW1zIHRoYXQgcnVuIG9uIHRvcCBvZgogICAgVS1Cb290IHdpbGwgbGV0IHRoZW0gdXRpbGlzZSBuZXR3b3JraW5nIGZhY2lsaXRpZXMuIEZvciBzZW5kaW5nIGEgcmF3IGZyYW1lCiAgICB0aGUgYWxyZWFkeSBleGlzdGluZyBldGhfc2VuZCgpIGNhbiBiZSB1c2VkLgoKICAgIFRoZSBkaXJlY3QgY29uc3VtZXIgb2YgdGhpcyByb3V0aW5lIGlzIHRoZSBuZXdseSBpbnRyb2R1Y2VkIEFQSSBsYXllciBmb3IKICAgIGV4dGVybmFsIGFwcGxpY2F0aW9ucyAoZW5hYmxlZCB3aXRoIENPTkZJR19BUEkpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1Yzc0MDcxMWYwZWE1YjUxNDE0YjM0MWI3MTU5N2M0YTA3NTFiZTc0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAzIDEwOjQxOjA0IDIwMDggLTA2MDAKCiAgICA4NjEwOiBNb3ZlIGluY2x1ZGUgb2YgY29uZmlnLmggZWFybGllci4KCiAgICBJbmNsdWRlIGNvbmZpZy5oIGVhcmxpZXIgaW4gdGhlIHNldCBvZiAjaW5jbHVkZXMKICAgIHNvIGFzIHRvIGF2b2lkIGEgaW5jaWRlbnRhbCBhbmQgZHVwbGljYXRlIGRlZmluaXRpb24KICAgIG9mIENGR19DQUNIRUxJTkVfU0laRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIKCmNvbW1pdCA2MWQzNDIxYmRlYTA5MGJkMDM5OWIxNGMzZTEwYTNiZWJjYzhkNWZmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyA0IDEwOjUzOjM0IDIwMDcgLTA2MDAKCiAgICBEb24ndCBzbGFtICN1bmRlZiBERUJVRyBpbiB0aGUgODY0MUhQQ04gY29uZmlnIGZpbGUuCgogICAgRG9pbmcgc28gcHJldmVudHMgaXQgZnJvbSBiZWluZyBpbmRpdmlkdWFsbHkgc2V0CiAgICBhbmQgdXNlZnVsIGluIG90aGVyIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWE5ZjczOTVlYzM2MjU4NGU1ZTRmMjY2YmQwYjBjNDQyMmNmNmE0YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMjggMTQ6NDc6MTggMjAwNyAtMDYwMAoKICAgIENvbnZlcnQgTVBDODY0MUhQQ04gdG8gdXNlIGxpYmZkdC4KCiAgICBBc3N1bWVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgYWxpYXNlcyBub2RlIGluIHRoZSBEVFMgdG8KICAgIGxvY2F0ZSB0aGUgZXRoZXJuZXQsIHBjaSBhbmQgc2VyaWFsIG5vZGVzIGZvciBmaXh1cHMuCgogICAgVXNlIGNvbnNpc3RlbnQgZmR0YWRkciBhbmQgZmR0ZmlsZSBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZTM3NDIyZDAwMDJlMTA0OTBlMjY4MzkyZTBjNGUzMDI4ZTUyY2VjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIgMTQ6MDY6MjYgMjAwOCArMDEwMAoKICAgIGNmaV9mbGFzaDogRml4IGJ1ZyBpbiBmbGFzaF9pc3NldCgpIHRvIHVzZSBjb3JyZWN0IDMyYml0IGZ1bmN0aW9uCgogICAgVGhpcyBidWcgd2FzIGRldGVjdGVkIG9uIHRoZSBMV01PTjUgdGFyZ2V0IHdoaWNoIGhhcyAyIEludGVsIDE2Yml0IHdpZGUKICAgIGZsYXNoIGNoaXBzIGNvbm5lY3RlZCB0byBhIDMyYml0IHdpZGUgcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTE4MmU5ZjhlM2I5MmZjMzcyZDY0OTQzMjkzZGU1M2RhYTJlMjZjZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMiAxNTo1ODo0NCAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGUgcHJvYmxlbSBpbnRyb2R1Y2VkIGJ5ICJjbGVhbnVwIiBjb21taXQgM2RmZDcwOGMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDFhYWFiOWJmYWUwYjNiMmVlMmI0MThjMjJjNjUxMjgwZWU3YjY1YzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIgMTU6NTQ6NDUgMjAwOCArMDEwMAoKICAgIE1ha2Ugc2NyaXB0cyBhbmQgTWFrZWZpbGVzIFBPU0lYIGNvbXBsaWFudAoKICAgIFRoZSBiYXNoIGJ1aWx0aW4gdmVyc2lvbnMgb2YgdGhlICJ0ZXN0IiAocmVzcC4gIlsiKSBjb21tYW5kIGFsbG93CiAgICB1c2luZyAiPT0iIGZvciBzdHJpbmcgY29tcGFyaXNvbnMsIGJ1dCBQT1NJWCBjb21wYXRpYmxlIGltcGxlbWVuLQogICAgdGF0aW9ucyAobGlrZSAvdXNyL2Jpbi90ZXN0KSBpbnNpc3Qgb24gdXNpbmcgIj0iIG9ubHkuIE9uIHN1Y2ggc3lzdGVtcwogICAgeW91IHdpbGwgc2VlOgoKCSQgL3Vzci9iaW4vdGVzdCBhID09IGEgJiYgZWNobyBPSwoJL3Vzci9iaW4vdGVzdDogPT06IGJpbmFyeSBvcGVyYXRvciBleHBlY3RlZAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgTWFrZWZpbGVzIGFuZCBzY3JpcHRzIHRvIHVzZSBQT1NJWCBzdHlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQ3Y2MyM2NiZTlhNjY5YzUxMDE4M2Y0ZjA0OWJmNzAzZWY0NDVmM2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMiAxNDowNTozNyAyMDA4ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBGaXggYnVnIGluIGZsYXNoX2lzc2V0KCkgdG8gdXNlIGNvcnJlY3QgMzJiaXQgZnVuY3Rpb24KCiAgICBUaGlzIGJ1ZyB3YXMgZGV0ZWN0ZWQgb24gdGhlIExXTU9ONSB0YXJnZXQgd2hpY2ggaGFzIDIgSW50ZWwgMTZiaXQgd2lkZQogICAgZmxhc2ggY2hpcHMgY29ubmVjdGVkIHRvIGEgMzJiaXQgd2lkZSBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZGZkNzA4Y2MxYjJhOTY2YWQ0NTRjYTllZDEyNWRkMTdkYmFkYmNjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyIDEyOjM4OjQzIDIwMDggKzAxMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUxNzRhYzM0YWRmNWQ1NjUzZGYxMmJjM2NmMTljNTIwNjNhNzEyNjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjggMTc6Mjk6NTYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGJhMTMyY2FiMThhZTQzOGI2ZGQ1YjAyMTRjMjhhOGZjMGQ5NzZlNQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDE3OjA3OjI0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IENvbXBsZXRlIFBNQzQ0MCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBicmluZ3MgdGhlIFBNQzQ0MCBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUuCiAgICBGaW5hbGx5IGl0IGVuYWJsZXMgdGhlIFBNQzQ0MCBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDQwNzg0M2E1ODI1NjBmYzUyMzEyOTk1NjFhYjNjMmI2YjZjZDMzOTcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxNzowNzoxOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgRlBHQSBzdXBwb3J0IGFuZCBCU1AgY29tbWFuZHMgZm9yIFBNQzQ0MCBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc29tZSBCU1AgY29tbWFuZHMgYW5kIEZQR0EgYm9vdGluZyBzdXBwb3J0CiAgICBmb3IgZXNkJ3MgUE1DNDQwIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3MmM1ZDUyYWVkY2NlMzVlNGI0ZmE1ODk1NjA1NTU0ODI1YjZhNzZmCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTc6MDc6MTQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgZXNkIFBNQzQ0MCBib2FyZCBmaWxlcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgZmlyc3QgZmlsZXMgZm9yIHRoZSBuZXcgZXNkIFBNQzQ0MCBib2FyZHMuCiAgICBUaGUgbmV4dCB0d28gcGF0Y2hlcyB3aWxsIGNvbXBsZXRlIHRoZSBQTUM0NDAgYm9hcmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBmNmUwZjFmNjE4OTZjZTc3MjliYTFiY2VhMmZmYmQxMzhkMzk0N2Y1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTc6MTA6MzYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIEVFUFJPTSB3cml0ZSBwcm90ZWN0aW9uIGZvciBQTFU0MDUgYm9hcmRzICsgbWlzYy4gdXBkYXRlcwoKICAgIC0gYWRkIEVFUFJPTSB3cml0ZSBwcm90ZWN0aW9uIGZvciBlc2QgUExVNDA1IGJvYXJkcy4KICAgIC0gaW5pdGlhbGl6ZSBOQU5EIEdQSU9zCiAgICAtIHVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycwogICAgLSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNzc2NjBjNGI1OTA1NWQ2MjFkMmE4NTk1YmQ0YzE4YmIyNzcyNjhmYwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDE3OjEwOjQ0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IHVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycyBmb3IgZXNkJ3MgTENEIGNvZGUKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGVzZCdzIExDRCBkZWN0ZWN0aW9uIGNvZGUgdG8gd29yayBjb3JyZWN0bHkgd2l0aAogICAgbmV3ZXIgZ2NjIHZlcnNpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGI1NmJkMGZjZmMxYzczZGI3MjJlMzQ2MmM4YTliZjYwN2JhNzc3NWUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxNzoxMDo0MiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNYWludGVuYW5jZSBwYXRjaCBmb3IgVk9INDA1IGJvYXJkcwoKICAgIC0gYWRkIEVFUFJPTSB3cml0ZSBwcm90ZWN0aW9uCiAgICAtIGluaXRpYWxpemUgTkFORCBHUElPcwogICAgLSB1c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMKICAgIC0gc2xvdyBkb3duIEkyQyBjbG9jayB0byAxMDBrSHoKICAgIC0gZW5hYmxlIGV4dC4gSTJDIGJ1cwogICAgLSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzA1NTY5MDY2ZGJjYmEzZmRmMzZkNGQxOTQzZGYyNjVkYzMxNmE4NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyOCAxNjowODowOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgNDA1RVAgUENJIGFyYml0ZXIgcGVyIGRlZmF1bHQgb24gYWxsIGJvYXJkcwoKICAgIEluIGFuIGF0dG1lbXQgdG8gY2xlYW4gdXAgdGhlIDR4eCBzdGFydC5TIGZpbGUsIEkgcmVtb3ZlZCB0aGUgZW5hYmxpbmcKICAgIG9mIHRoZSBpbnRlcm5hbCA0MDVFUCBQQ0kgYXJiaXRlci4gVGhpcyBpcyBuZWVkZWQgZm9yIG11bHRpcGxlIG90aGVyCiAgICA0MDVFUCBwbGF0Zm9ybXMsIGxpa2UgbW9zdCBvZiB0aGUgZXNkIDQwNUVQLiBOb3cgdGhlIGludGVybmFsIFBDSQogICAgYXJiaXRlciBpcyBlbmFibGVkIGFnYWluIHBlciBkZWZhdWx0IGFzIGl0IGhhcyBiZWVuIGJlZm9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYmVjOTI2NDYxNmZiNzgyNzNhMWQ5M2U4N2ZmNGIwYjY3YzdiZWMxYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyOCAxNTo1Mzo0NiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggYnVnIGluIGNwdV9pbml0LmMgKDQwNUVQIGluc3RlYWQgb2YgNDUwRVApCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgQWNrZWQtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGZiODNhNjVjNjBhYjVjYTEyMzU4Yjc1ZjEyNTdlNWVlZTZjZGJmNzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjggMDY6MDY6MDQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHByb2JsZW0gb2Yga2lsYXVlYS9oYWxlYWthbGEgbmFuZCBib290aW5nIHRhcmdldAoKICAgIFVzZSBjb3JyZWN0IGxpbmsgdG8gbmFuZF9lY2Mgbm93IGxvY2F0ZWQgaW4gZHJpdmVycy9tdGQvbmFuZC8gZm9yIHRoZQogICAgcGxhdGZvcm1zIG1lbnRpb25lZCBhYm92ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjU2OGZkMjU1NzQxODFhM2IxMmFlM2Q2NmIyOTEzOTAzNDQyY2I4MwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjAzOjQ2IDIwMDcgKzAxMDAKCiAgICBSZW1vdmUgQ1BDSTQ0MCBib2FyZAoKICAgIFRoaXMgYm9hcmQgbmV2ZXIgbGVmdCBwcm90b3R5cGluZyBzdGF0ZSBhbmQgaXQKICAgIGJlY2FtZSBhIG1pbGxzdG9uZSByb3VuZCBteSBuZWNrLiBTbyByZW1vdmUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzU5MWRmZmUwY2JhY2Q4OTZjY2JhZDA2MDExZmU2ZDZhZmEwODBkYQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgRGVjIDI3IDExOjI4OjUxIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgS29yYXQgUFBDNDQwRVB4IGJvYXJkCgogICAgVGhlc2UgcGF0Y2hlcyBhZGQgc3VwcG9ydCBmb3IgdGhlIFBQQzQ0MEVQeC1iYXNlZCAiS29yYXQiIGJvYXJkIHRvCiAgICBVLUJvb3QuICBUaGV5IGFyZSBiYXNlZCBwcmltYXJpbHkgb24gc3VwcG9ydCBmb3IgdGhlIFNlcXVvaWEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgODdkYzA5NjgyOWU2YTYzNjNmNGZkZDczNjUzYjAwOTNhODVhZGJlMApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjE2OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgY29uZmlndXJhdGlvbiBmaWxlIGZvciBLb3JhdCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggc3VwcGxpZXMgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdGhlIEtvcmF0IFBQQzQ0MEVQeC0KICAgIHByb2Nlc3NvciBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA4ZWI1MmQ1ZDk4MmI3NjRiMzljODhkOWQxMDY0ZDU2YzUzOTdiZmE1CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MTY6MTEgMjAwNyAtMDUwMAoKICAgIEFkZCBkZW5hbGlfZGF0YV9leWUubyBhbmQgZGVuYWxpX3NwZF9kZHIyLm8gdG8gUFBDNHh4IE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgYWJhMTk2MDRkODQ4YjI4MzhjZmI5ZWJlODE4OTA5ZTZhMjE2MDU4ZQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgRGVjIDI3IDEwOjU0OjQ4IDIwMDcgLTA1MDAKCiAgICBBZGQgNDQwRVB4IEREUjIgU1BEIERJTU0gc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBTUEQgRERSMiBzdXBwb3J0IGZvciB0aGUgNDQwRVB4ICgiRGVuYWxpIikgU0RSQU0KICAgIGNvbnRyb2xsZXIuICBJdCBzaG91bGQgYWxzbyB3b3JrIG9uIHRoZSA0NDBHUnguICBJdCBpcyBiYXNlZCBvbiB0aGUgRERSMgogICAgU1BEIGNvZGUgZm9yIHRoZSA0NDBFUC80NDBFUHgsIGJ1dCBtYWtlcyBubyBwcm92aXNpb24gZm9yIEREUjEgc3VwcG9ydC4KCiAgICBUaGlzIGNvZGUgaGFzIGJlZW4gdGVzdGVkIG9uIHByb3RvdHlwZSBLb3JhdCBib2FyZHMgd2l0aCB0aHJlZSBLaW5nc3RvbgogICAgRElNTVM6IDUxMiBNaUIgRUNDIChvbmUgcmFuayksIDUxMiBNaUIgbm9uLUVDQyAob25lIHJhbmspIGFuZCAxIEdpQiBFQ0MKICAgICh0d28gcmFua3MpLiAgVGhlIEtvcmF0IGJvYXJkIGhhcyBhIHNpbmdsZSBESU1NIHNvY2tldCwgYnV0IHN1cHBvcnQgaGFzCiAgICBiZWVuIHByb3ZpZGVkICh0aG91Z2ggbm90IHRlc3RlZCkgZm9yIGJvYXJkcyB3aXRoIHR3byBESU1NIHNvY2tldHMuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgOGEyNGE2OTYzMDAyY2I4NjdkNWE2YjcwZTM1NjBmMGIxNDY3ZjU1ZgpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjE1OjMwIDIwMDcgLTA1MDAKCiAgICBDb3B5IDQ0MEVQeC9HUnggU0RSQU0gZGF0YS1leWUgc2VhcmNoIHRvIGNvbW1vbiBkaXJlY3RvcnkKCiAgICBUaGlzIHBhdGNoIGNyZWF0ZXMgYSBub24tYm9hcmQtc3BlY2lmaWMgZmlsZSBmb3IgcGVyZm9ybWluZyB0aGUgU0RSQU0KICAgIGRhdGEtZXllIHNlYXJjaC4gIEl0IGFsc28gYWRkcyBFQ0MgZXJyb3IgY2hlY2tpbmcgdG8gdGhlIHRlc3Qgb2YgdmFsaWQKICAgIGRhdGEgb24gcmVhZGJhY2sgd2hlbiBFQ0MgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjNDZmNTMzMzNiMjJiMWY5MDk4Njc2YmVhODg4NGZjN2RiODIwY2YzCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MTU6MTMgMjAwNyAtMDUwMAoKICAgIEFkZCBkZWZpbml0aW9ucyBmb3IgNDQwRVB4L0dSeCBTRFJBTSBjb250cm9sbGVyIHRvIHBwYzQ0MC5oCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBEZW5hbGkgU0RSQU0gY29udHJvbGxlciBkZWZpbml0aW9ucyB0byAicHBjNDQwLmgiLgogICAgSXQgYWxzbyBmaXhlcyB0d28gdHlwb3MgaW4gdGhlIGRlZmluaXRpb25zLCBzbyB0aGUgYm9hcmQtc3BlY2lmaWMKICAgICJzZHJhbS5oIiBmaWxlcyBjb250YWluaW5nIHRoZXNlIGRlZmluaXRpb25zIGFyZSBhbHNvIGZpeGVkIHRvIGF2b2lkCiAgICBjb21waWxlciB3YXJuaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjMzQ4NTc4YmY2MTJkMGM1NmQ4ZDM3NmQyM2NhZTE2ZGVmYmQ4NmFmCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTA6NTA6NTUgMjAwNyAtMDUwMAoKICAgIEFkZCBFdGhlcm5ldCAxMDAwQkFTRS1YIHN1cHBvcnQgZm9yIFBQQzR4eAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBzd2l0Y2g6ICJDT05GSUdfUEhZX0RZTkFNSUNfQU5FRyIuICBXaGVuIHRoaXMgc3ltYm9sCiAgICBpcyBkZWZpbmVkLCB0aGUgUEhZIHdpbGwgYWR2ZXJ0aXNlIGl0J3MgY2FwYWJpbGl0aWVzIGZvciBhdXRvbmVnb3RpYXRpb24KICAgIGJhc2VkIG9uIHRoZSBjYXBhYmlsaXRpZXMgc2hvd24gaW4gdGhlIFBIWSdzIHN0YXR1cyByZWdpc3RlcnMsIGluY2x1ZGluZwogICAgMTAwMEJBU0UtWC4gIFdoZW4gIkNPTkZJR19QSFlfRFlOQU1JQ19BTkVHIiBpcyBub3QgZGVmaW5lZCwgdGhlIFBIWSB3aWxsCiAgICBhZHZlcnRpc2UgaGFyZC1jb2RlZCBjYXBhYmlsaXRpZXMsIGFzIGJlZm9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA5ZTJjMzQ3MTUxZGI1YWU4YWNmNWYxOGI5OTQ5M2NkNTNlNjYzN2UzCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBEZWMgMjcgMDk6NTI6MTcgMjAwNyAtMDUwMAoKICAgIEFkZCBkcml2ZXIgZm9yIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE03MyB0ZW1wZXJhdHVyZSBzZW5zb3IKCiAgICBUaGlzIGRyaXZlciBpcyBiYXNlZCBvbiB0aGUgZHJpdmVyIGZvciB0aGUgTE03NS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAxMjYxODI3ODY4OGVhOWIzZDc2NTM2OTYwYTVhZDJlMzc5MGZhYzQwCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MTQ6MDAgMjAwNyAtMDUwMAoKICAgIEFkZCBkcml2ZXIgZm9yIFNUTWljcm9lbGVjdHJvbmljcyBNNDFUNjAgUlRDCgogICAgVGhpcyBkcml2ZXIgaXMgYmFzZWQgb24gdGhlIGRyaXZlciBmb3IgdGhlIE00MVQxMS4JSW4gdGhlIGludGVuZGVkCiAgICBhcHBsaWNhdGlvbiwgdGhlIFJUQyB3aWxsIGJlIHBvd2VyZWQgYnkgYSBsYXJnZSBjYXBhY2l0b3IsIHJhdGhlciB0aGFuIGEKICAgIGJhdHRlcnkuICBUaGUgZHJpdmVyIHRoZXJlZm9yZSBjaGVja3MgdG8gc2VlIHdoZXRoZXIgdGhlIFJUQyBoYXMgbG9zdAogICAgcG93ZXIuICBUaGUgY2hpcCdzIE9VVCBiaXQgaXMgbm9ybWFsbHkgcmVzZXQgZnJvbSBpdHMgcG93ZXItdXAgc3RhdGUuICBJZgogICAgdGhlIE9VVCBiaXQgaXMgcmVhZCBhcyBzZXQsIG9yIGlmIHRoZSBkYXRlIGFuZCB0aW1lIGFyZSBub3QgdmFsaWQsIHRoZW4gdGhlCiAgICBSVEMgaXMgYXNzdW1lZCB0byBoYXZlIGxvc3QgcG93ZXIsIGFuZCBpdHMgZGF0ZSBhbmQgdGltZSBhcmUgcmVzZXQgdG8KICAgIDE5MDAtMDEtMDEgMDA6MDA6MDAuCgogICAgU3VwcG9ydCBmb3IgYWRqdXN0aW5nIHRoZSBzcGVlZCBvZiB0aGUgY2xvY2sgdG8gaW1wcm92ZSBhY2N1cmFjeSBpcwogICAgcHJvdmlkZWQgdGhyb3VnaCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBkMzQ3MTE3M2UxNGI3NTQ0YmI2MDMzOWVkYThkM2QzOTA2Njk0YjBhCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MzQ6MzkgMjAwNyAtMDUwMAoKICAgIFVzZSBvdXRfYmUzMigpIGFuZCBmcmllbmRzIHRvIGFjY2VzcyBtZW1vcnktbWFwcGVkIHJlZ2lzdGVycyBpbiBzZXF1b2lhLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjNjhmNTlmZTNlYzE2NzY5ZjgyYjVmY2E3NDIxOTgzYzMzNmQzYWFjCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MzQ6MjAgMjAwNyAtMDUwMAoKICAgIFVzZSBkZWZpbml0aW9ucyBmcm9tICJhc20tcHBjL21tdS5oIiBpbiBpbml0LlMgZm9yIFNlcXVvaWEKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAwZDljZGVhYzFkM2ZhOGQ2MmVkN2Q4ODNhY2M5NTBjMzY0ZjViZGE4CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MjM6NTAgMjAwNyAtMDUwMAoKICAgIENvc21ldGljIGNoYW5nZXMgdG8gRUNDIFBPU1QgZm9yIEFNQ0MgRGVuYWxpIGNvcmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAyZTU4M2Q2YzgxMDM0ZjgwYTI2N2I4OWZhNTU0OThhZTA2M2NjZWYxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRGVjIDI2IDIwOjIwOjE5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiBwcm9ibGVtIGluIDQwNSBjYWNoZSBQT1NUIHRlc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDJkNTVlYTBiZGUwNmU0N2Q1YTNiNDliMGQ5MTAwMmFjZDhlNTcwOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IERlYyAyMiAxMjoyMDowOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNb3ZlIHZpcnR1YWwgYWRkcmVzcyBvZiBQT1NUIGNhY2hlIHRlc3QgdG8gYmlnZ2VyIGFkZHJlc3MKCiAgICBPbiBTZXF1b2lhICYgTFdNT041IHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIFBPU1QgY2FjaGUgdGVzdCBpcyBub3cKICAgIG1vdmVkIHRvIGEgYmlnZ2VyIGFkZHJlc3MuIFRoaXMgZW5hYmxlcyB1c2FnZSBvZiBtb3JlIG1lbW9yeSBvbiB0aG9zZQogICAgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkOTE3MjIxMDJjZjYzZjc3YTAxNDhlZDNmM2Q1NGEyNmQ4NzU3NWU5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgRGVjIDIyIDEyOjE4OjI2IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIGluIDQ0eCBjYWNoZSBQT1NUIHJvdXRpbmUKCiAgICBBcyByZXBvdGVkIGJ5IExhcnJ5IEpvaG5zb24sIHJ1bm5pbmcgImRpYWcgcnVuIGNhY2hlIiBjYXVzZWQgYSBjcmFzaAogICAgaW4gVS1Cb290LiBUaGlzIHByb2JsZW0gd2FzIGludHJvZHVjZWQgYnkgYSBwYXRjaCB0aGF0IHJlbW92ZWQgdGhlCiAgICBUTEIgZW50cnkgZm9yIHRoZSBjYWNoZSB0ZXN0IGFmdGVyIHRoZSB0ZXN0IGhhcyBjb21wbGV0ZWQuIFNpbmNlIHRoaXMKICAgIFRMQiB3YXMgb25seSBzZXR1cCBvbmNlLCBhIDJuZCBhdHRlbXB0IHRvIHJ1biB0aGlzIGNhY2hlIHRlc3QKICAgIGZhaWxlZCB3aXRoIGEgY3Jhc2guIE5vdyB0aGlzIFRMQiBlbnRyeSBpcyBjcmVhdGVkIGV2ZXJ5IHRpbWUgdGhlCiAgICByb3V0aW5lIGlzIGNhbGxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjAyNjViNTc2YmI4ZmE5NDY1Zjk5ZTk5YzMyMzc2OGI1NjJmYWRjMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyMSAwNzo1MToyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgTWFrYWx1IGZkdCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGJmODMyNGU0YTUwNzU4ZGFmZjhjZGRkMDRjNmEyZmY4ZWQ3NzViZWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBEZWMgMTkgMDk6MDU6NDAgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIGZkdCBzdXBwb3J0IHRvIEFNQ0MgS2F0bWFpIGV2YWwgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzI4YTM0MDM5MmE1ZGY5YWFmMDA3OTJiZTk4OWRmNzNlNzUwODU5ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxOCAwODo0NDo1MSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBmZHQ6IENsZWFudXAgc2V0dXAgb2YgY3B1IG5vZGUgc2V0dXAKCiAgICBOb3cgdGhlIGNwdSBub2RlIHNldHVwICgidGltZWJhc2UtZnJlcXVlbmN5IiBhbmQgImNsb2NrLWZyZXF1ZW5jeSIpIGlzCiAgICB3aXRob3V0IHVzaW5nIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBjcHUgbm9kZS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZQogICAgdG8gdXNlIHRoaXMgVS1Cb290IHZlcnNpb24gd2l0aCBib3RoIHZlcnNpb25zIG9mIGNwdS1ub2RlIG5hbWluZwogICAgImNwdUAwIiBhbmQgdGhlIGZvcm1lciAiUG93ZXJQQyw0NDBFUHhAMCIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc4MTJiYzRhMmUyNDM2ZWJiYzBjZTViNGU5OWMxZGZjMmU3N2ViNWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBEZWMgMTcgMTc6MjY6MjEgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGx3bW9uNSBjb21waWxhdGlvbiBwcm9ibGVtCgogICAgTm93IHRoYXQgdGhlIDQ0MEVQeCBFQ0MgdGVzdCBpcyBub3QgYm9hcmQgc3BlY2lmaWMgYW55bW9yZQogICAgcmVtb3ZlIHRoaXMgTWFrZWZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQyZWQzM2ZmZTEzNWY2MTg2ODBmOWQ2ZTk3MTJlYjM1YTg1YmNiNjIKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0c2NoaW5AdC1vbmxpbmUuZGU+CkRhdGU6CVdlZCBEZWMgNSAxNzo0MzoyMCAyMDA3ICswMTAwCgogICAgRml4IHBwYzR4eCBjbGVhcl9ic3MoKSBjb2RlCgogICAgcHBjNHh4IGNsZWFyX2JzcygpIGZhaWxzIGlmIEJTUyBzZWdtZW50IHNpemUgaXMgbm90CiAgICBkaXZpc2libGUgYnkgNCB3aXRob3V0IHJlbWFpbmRlci4gVGhpcyBwYXRjaCBwcm92aWRlcwogICAgZml4IGZvciB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDg1ZGMyYTdmODJkMTFlMTdmMGNhMmE0NDgxMThhZWQ3ZjdhNGI4NWQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgTm92IDMwIDE4OjM1OjExIDIwMDcgKzAxMDAKCiAgICBQUEM0eHg6IE1pbmltYWwgY2hhbmdlcyB0byBhZGQgdnhXb3JrcyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAwNTI0NDBiMDIyY2E4OTgxZDM5YjZmOGMxMGQxYWE2MzI2ZjQ3NDgwCkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiAyMyAxMzowOToxOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQ09ORklHX0JPT1RQX1NVQk5FVE1BU0sgdG8gU2VxdW9pYSBib2FyZCBjb25maWcKCiAgICBXaGVuIHVzaW5nIGRoY3AvYm9vdHAgdGhlICJuZXRtYXNrIiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3QKICAgIHNldCBiZWNhdXNlIENPTkZJR19CT09UUF9TVUJORVRNQVNLIGlzIG5vdCBkZWZpbmVkLiBCdXQgdXN1YWxseSB0aGlzIGlzCiAgICBkZXNpcmVhYmxlLCBzbyB0aGUgZm9sbG93aW5nIHBhdGNoIGFkZHMgdGhpcyB0aGlzIG9wdGlvbiB0byB0aGUgYm9hcmQKICAgIGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE3MjRhOWI0MGM3ZmJlYjZhZGUxOTNjYTUyMzIxYjQ0MWVhZWNiNGUKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IE9jdCAyNyAxMjo0ODoxNSAyMDA3IC0wNDAwCgogICAgRml4L2VuaGFuY2UgRUNDIFBPU1QgZm9yIDQ0MEVQeC9HUngKCiAgICBUaGlzIHBhdGNoIGFsbG93cyB0aGUgRUNDIFBPU1QgdG8gYmUgdXNlZCBmb3IgZGlmZmVyZW50IGJvYXJkcyB3aXRoIHRoZQogICAgUFBDNDQwIERlbmFsaSBTRFJBTSBjb250cm9sbGVyLiAgTW9kaWZpY2F0aW9ucyBpbmNsdWRlIHNraXBwaW5nIHRoZSB0ZXN0CiAgICBpZiBFQ0MgaXMgbm90IGVuYWJsZWQgKGFzIGZvciBub24tRUNDIERJTU1zKSBhbmQgYWRkaW5nIHN5bmNocm9uaXphdGlvbgogICAgdG8gcHJldmVudCB0aW1pbmcgZXJyb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDQ1NGE2Y2Y4ZDQ5OGY3MGQyYjNlMThmMDc4Mzc2MDNlYjI0YjEyZDQKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IE9jdCAyNyAxMjo0ODowNSAyMDA3IC0wNDAwCgogICAgUFBDNHh4OiBNb3ZlL3JlbmFtZSBFQ0MgUE9TVCBmb3IgNDQwRVB4L0dSeAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGMyOWQyZDM2ODAwNDZkNDMwMDIyYzU1ZTUwZmNiMjdmNTg2NjUxN2UKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxMToyMDozMyAyMDA3ICswMTAwCgogICAgcHBjNHh4OiB1c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgZm9yIDR4eCBldGhlcm5ldCBQT1NUCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYmE3OWZkZTU4YTQ4YzBhNmZmOGUyYTk2Y2FiYTk1MTU5NDE0MjIwMwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDE0IDExOjE5OjU2IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IGZpeCBmbHVzaCArIGludmFsaWRhdGVfZGNhY2hlX3JhbmdlIGFyZ3VtZW50cwoKICAgIGZsdXNoICsgaW52YWxpZGF0ZV9kY2FjaGVfcmFuZ2UoKSBleHBlY3QgdGhlIHN0YXJ0IGFuZCBzdG9wKzEgYWRkcmVzcy4KICAgIFNvIHRoZSBzdG9wIGFkZHJlc3MgaXMgdGhlIGZpcnN0IGFkZHJlc3MgYmVoaW5kICghKSB0aGUgcmFuZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgODcxZTZjZTE4OGE3YzZiYzczMjFiY2Y4MzcyODU3MDM1ZDIwZjFjZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAxNCAwODo0MToyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBmZHQ6IHVzZSBmZHRfZml4dXBfZXRoZXJuZXQoKQoKICAgIEJ5IHVzaW5nIGFsaWFzZXMgaW4gdGhlIGR0cyBmaWxlLCB0aGUgZXRoZXJuZXQgbm9kZSBmaXh1cCBpcwogICAgbXVjaCBlYXNpZXIgd2l0aCB0aGUgcmVjZW50bHkgYWRkZWQgZnVuY3Rpb25zLgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhlIGR0cyBmaWxlIG5lZWRzIHRoZSBhbGlhc2VzIGZvciB0aGlzIHRvIHdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEzNjI4ODg0N2UzYjA0ZjJmZjM1N2EwNjdhZDQ1ZTEwYWZhMGEyNGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgMTMgMTQ6NTI6NTMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQnJpbmcgNHh4IGZkdCBzdXBwb3J0IHVwLXRvLWRhdGUKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZSB0aGUgNHh4IGZkdCBzdXBwb3J0LiBJdCBlbmFibGVkIGZkdCBib290aW5nCiAgICBvbiB0aGUgQU1DQyBLaWxhdWVhIGFuZCBTZXF1b2lhIGZvciBub3cuIE1vcmUgY2FuIGZvbGxvdyBsYXRlcgogICAgcXVpdGUgZWFzaWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGM4MGUyNzU5ZmJhODU5Y2NjNGNkYWRjNjMzNTc3Y2EyOTcxZjNlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDI3IDA3OjUwOjU0IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEFkZCBtaXNzaW5nIGNoZWNrIGZvciBlcmFzZWQgZGVzdCB0byBmbGFzaF93cml0ZV9jZmlidWZmZXIoKQoKICAgIFRoZSBjaGVjayBmb3IgYW4gc3VmZmljaWVudGx5IGVyYXNlZCBkZXN0aW5hdGlvbiB3YXMgbWlzc2luZyBpbiB0aGUKICAgIGJ1ZmZlcmVkIHdyaXRlIGZ1bmN0aW9uIG9mIHRoZSBjZmkgZmxhc2ggZHJpdmVyICh3aGVuCiAgICBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSBpcyBkZWZpbmVkKS4gVGhpcyBwYXRjaCBhZGRzIHRoaXMgY2hlY2sgdG8gdGhhdAogICAgd3JpdGluZyB0byBzdWNoIGEgcmVnaW9uIHdpbGwgZmFpbCB3aXRoIHRoZSBjdXJyZWN0IGVycm9yIG1lc3NhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMzZWQ3M2JjMGUzOGQwZjJiNWMxODNkNDYyOWQ4ZjIwN2U1Yjk5OTQKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIE5vdiAxMiAxMDo1NjoxNyAyMDA3ICswMTAwCgogICAgU29tZSBjb25maWd1cmF0aW9uIHVwZGF0ZXMgZm9yIHRoZSBUUU01MjAwIGJhc2VkIFRCNTIwMCBib2FyZDoKCiAgICAtIGVuYWJsZSBjb21tYW5kIGxpbmUgaGlzdG9yeQogICAgLSBpbmNyZWFzZSBtYWxsb2Mgc3BhY2UgKGJlY2F1c2Ugb2YgYmlnZ2VyIGZsYXNoIHNlY3RvcnMpCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZTMxOGQ5ZTkwMjFhMGFmNzUwODE3MWY4NGVkMDlkMGU3OWYwMjg0ZQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUaHUgU2VwIDI3IDExOjEwOjA4IDIwMDcgKzAyMDAKCiAgICBUUU04eHg6IHVzZSB0aGUgQ0ZJIGZsYXNoIGRyaXZlciBvbiBhbGwgVFFNOHh4IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDExZDllZWM0NzliNDcwZWFiOTI0MmFiOTM3ZmNhNzBhODc2ZDkzNzYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NiAyMDA3ICswMjAwCgogICAgVFFNODg1RDogYWRqdXN0IGZvciBkb3VibGVkIGZsYXNoIHNlY3RvciBzaXplICsgc29tZSBtaW5vciBmaXhlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDIyZDFhNTZjYmZiMGJmZjM0ZjQ3N2I0ZGI2YTU1ZDA3NmQ4MjliODMKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxqZW5zLmdlaHJsZWluQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NCAyMDA3ICswMjAwCgogICAgVFFNODg1RDogRXhjaGFuZ2VkIFNEUkFNIHRpbWluZyBieSBhIG1vcmUgcmVsYXhlZCB0aW1pbmcuCgogICAgQ0FTLUxhdGVuY3k9MiwgV3JpdGUgUmVjb3ZlcnkgVGltZSB0V1I9MgogICAgVGhlIG1heC4gc3VwcG9ydGVkIGJ1cyBmcmVxdWVuY3kgaXMgNjYgTUh6LiBUaGVyZWZvcmUsIGNoYW5nZWQKICAgIHRocmVzaG9sZCB0byBzd2l0Y2ggZnJvbSAxOjEgbW9kZSB0byAyOjEgZnJvbSA4MCBNSHogdG8gNjYgTUh6LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGI5ODhiOGNkNDQzOTg5YmU2NTE2MTg4OGVlYTAxMjdhZDAzZjg0NmYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NiAyMDA3ICswMjAwCgogICAgVFFNODg1RDogdXNlIGNhbGN1bGF0ZWQgY3B1Y2xrIGluc3RlYWQgb2YgbWVhc3VyaW5nIGl0CgogICAgT24gdGhlIFRRTTg4NUQgdGhlIG1lYXN1cmVtZW50IG9mIGNwdWNsayB3aXRoIHRoZSBQSVQgcmVmZXJlbmNlCiAgICB0aW1lciBpc3Qgbm90IG5lY2Vzc2FyeS4gU2luY2UgYWxsIG1vZHVsZSB2YXJpYW50cyB1c2UgdGhlIHNhbWUKICAgIGV4dGVybmFsIDEwIE1IeiBvc2NpbGxhdG9yLCB0aGUgY3B1Y2xrIG9ubHkgZGVwZW5kcyBvbiB0aGUgUExMCiAgICBjb25maWd1cmF0aW9uIC0gd2hpY2ggaXMgcmVhZGFibGUgYnkgc29mdHdhcmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgNDkyYzcwNDk4NjkzNDhkMzExNjhkZThkYWQ4OTY1MTMxNWU0NjhlMApBdXRob3I6IEplbnMgR2VocmxlaW4gPGplbnMuZ2VocmxlaW5AdHFzLmRlPgpEYXRlOglUaHUgU2VwIDI3IDE0OjU0OjQ2IDIwMDcgKzAyMDAKCiAgICBUUU04ODVEOiBmaXggU0RSQU0gcmVmcmVzaAoKICAgIEF0IDEzMyBNSHogdGhlIGN1cnJlbnQgU0RSQU0gcmVmcmVzaCByYXRlIGlzIHRvbyBmYXN0CiAgICAobWVhc3VyZWQgNCAqIDEuMTcgdXMpLgogICAgQ0ZHX01BTVJfUFRBIGNoYW5nZXMgZnJvbSAzOSB0byAxMjguIFRoaXMgcmVzdWx0CiAgICBpbiBhIHJlZnJlc2ggcmF0ZSBvZiA0ICogNy44IHVzIGF0IHRoZSBkZWZhdWx0IGNsb2NrCiAgICA2NiBNSHouIEF0IDEzMyBNSHogdGhlIHZhbHVlIHdpbGwgYmUgdGhlbiA0ICogMy44IHVzLgogICAgVGhpcyBpcyBhIGNvbXByb21pc2UgdW50aWwgYSBuZXcgbWV0aG9kIGlzIGZvdW5kIHRvCiAgICBhZGp1c3QgdGhlIHJlZnJlc2ggcmF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBkYWJhZDRiOWJjNDY5MDhlMzAxZjczY2U3NmIzOGIyMzYyNmE5NmU5CkF1dGhvcjogSmVucyBHZWhybGVpbiA8amVucy5nZWhybGVpbkB0cXMuZGU+CkRhdGU6CVRodSBTZXAgMjcgMTQ6NTQ6NDYgMjAwNyArMDIwMAoKICAgIFRRTTg2ME06IFN1cHBvcnQgZm9yIDEwY29sIFNEUkFNcywgbWF4LiAxMjggTWlCCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgNjFmYjE1YzUxNmZlZjU2MzFlMzA1ZjE5NzZkN2IzYTY3OTcyNTg1NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgMjcgMDE6NTI6NTAgMjAwNyArMDEwMAoKICAgIEZpeCBjb2Rpbmcgc3R5bGUgaXNzdWVzOyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDY3YmNlZTExZmUyNmFkNDIyZjJkZTk3MWFhNzA4NjYwNzk4NzBmMgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgRGVjIDE0IDE1OjM2OjE4IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEFkZCBtYW51ZmFjdHVyZXItc3BlY2lmaWMgZml4dXBzCgogICAgUnVuIGZpeHVwcyBiYXNlZCBvbiB0aGUgSkVERUMgbWFudWZhY3R1cmVyIElEIGluZGVwZW5kZW50IG9mIHRoZQogICAgY29tbWFuZCBzZXQgSUQuCgogICAgVGhpcyBjaGFuZ2VzIGN1cnJlbnQgYmVoYXZpb3VyOiBQcmV2aW91c2x5LCBnZW9tZXRyeSByZXZlcnNhbCBmb3IgQU1ECiAgICBjaGlwcyB3ZXJlIGRvbmUgYmFzZWQgb24gdGhlIGNvbW1hbmQgc2V0IElELCB3aGlsZSB0aGV5IGFyZSBub3cgZG9uZQogICAgYmFzZWQgb24gdGhlIEpFREVDIG1hbnVmYWN0dXJlciBhbmQgZGV2aWNlIElELgoKICAgIEFsc28gYWRkIGZpeHVwIGZvciB0b3AtYm9vdCBBdG1lbCBjaGlwcy4gQSBmaXh1cCBpcyBuZWVkZWQgZm9yCiAgICBBVDQ5QlY2NDE2KFQpIHRvbywgYnV0IHNpbmNlIHUtYm9vdCBjdXJyZW50bHkgb25seSByZWFkcyB0aGUgbG93IGJ5dGUKICAgIG9mIHRoZSBkZXZpY2UgSUQsIHRoZXJlJ3Mgbm8gd2F5IHRvIHRlbGwgaXQgYXBhcnQgZnJvbSBBVDQ5QlY2NDJELAogICAgd2hpY2ggc2hvdWxkIG5vdCBoYXZlIHRoaXMgZml4dXAuIFNpbmNlIEFUNDlCVjY0MkQgc3VwcG9ydCBpcwogICAgbmVjZXNzYXJ5IHRvIGdldCBBVE5HVzEwMCBib2FyZCBzdXBwb3J0IGludG8gbWFpbmxpbmUsIEkndmUgY29tbWVudGVkCiAgICBvdXQgdGhlIGZpeHVwIGZvciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMGRkZjA2ZGRmNmI0YmQwNTdhZDRjNWYwZGZmZWE3ODcwYmEwNmEyYQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgRGVjIDE0IDE1OjM2OjE3IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEFkZCBjbWRzZXQtc3BlY2lmaWMgaW5pdCBmdW5jdGlvbnMKCiAgICBNb3ZlIHRoaW5ncyBsaWtlIHJlYWRpbmcgSkVERUMgSURzIGFuZCBmaXhpbmcgdXAgZ2VvbWV0cnkgcmV2ZXJzYWwKICAgIGludG8gc2VwYXJhdGUgZnVuY3Rpb25zLiBUaGUgZ2VvbWV0cnkgcmV2ZXJzYWwgZml4dXAgaXMgbm93IHBlcmZvcm1lZAogICAgYnkgYWx0ZXJpbmcgdGhlIHFyeSBzdHJ1Y3R1cmUgZGlyZWN0bHksIHdoaWNoIG1ha2VzIHRoZSBzZWN0b3IgaW5pdAogICAgY29kZSBzbGlnaHRseSBjbGVhbmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGUyMzc0MWY0YTZkODA0NzUyMGVmMGQ0OTcxNzYyNzQ5YjM1ODdkMzIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxNTozNjoxNiAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBSZWFkIHdob2xlIFFSWSBzdHJ1Y3R1cmUgaW4gb25lIGdvCgogICAgUmVhZCBvdXQgdGhlIHdob2xlIENGSSBTdGFuZGFyZCBRdWVyeSBzdHJ1Y3R1cmUgYWZ0ZXIgc3VjY2Vzc2Z1bCBjZmkKICAgIGlkZW50aWZpY2F0aW9uLiBUaGlzIGFsbG93cyBzdWJzZXF1ZW50IGNvZGUgdG8gYWNjZXNzIHRoaXMgaW5mb3JtYXRpb24KICAgIGRpcmVjdGx5IHdpdGhvdXQgaGF2aW5nIHRvIGdvIHRocm91Z2ggZmxhc2hfcmVhZF91Y2hhcigpIGFuZCBmcmllbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGRmOWMyNWVhMDRiMzhhMGUwNWQ0ZjhjNzNjNWNjMTQ0Y2RhZmE3ZGIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIERlYyAxNyAxMTowMjo0NCAyMDA3ICswMTAwCgogICAgQVZSMzI6IEZpeCBsb2dpYyBpbnZlcnNpb24gaW4gZGlzYWJsZV9pbnRlcnJ1cHRzKCkKCiAgICBkaXNhYmxlX2ludGVycnVwdHMoKSBzaG91bGQgcmV0dXJuIG5vbnplcm8gaWYgaW50ZXJydXB0cyB3ZXJlCiAgICBfZW5hYmxlZF8gYmVmb3JlLCBub3QgZGlzYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYWNhYzQ3NTIxMmNiZWRiMTdiMzIxYTM2M2ExYzg3OGUyYjQ3YjM3ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgRGVjIDE0IDE2OjUxOjIyIDIwMDcgKzAxMDAKCiAgICBBVlIzMjogRW5hYmxlIGludGVycnVwdHMgYXQgYm9vdHVwCgogICAgVGhlIHRpbWVyIGNvZGUgZGVwZW5kcyBvbiB0aGUgdGltZXIgaW50ZXJydXB0IHRvIGtlZXAgdHJhY2sgb2YgdGhlCiAgICB1cHBlciAzMiBiaXRzIG9mIHRoZSBjeWNsZSBjb3VudGVyLiBUaGlzIG9idmlvdXNseSBkb2Vzbid0IHdvcmsgd2hlbgogICAgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgdGhlIHdob2xlIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTU3MGJjZDg3ZjRkYjI1NTUxNGY0M2I2NzAxNzQ2YzQxMmY4ZmVmMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDE1IDEwOjAzOjQ1IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogRml4IHdyb25nIHBpbiBzZXR1cCBmb3IgVVNBUlQzCgogICAgQXMgcmVwb3J0ZWQgYnkgR2VyaGFyZCBCZXJnaG9mZXI6CgogICAgaW4gImdwaW9fZW5hYmxlX3VzYXJ0MyIgdGhlIGNvcnJlY3QgcGlucyBmb3IgVVNBUlQgMyBhcmUgUEIxNyBhbmQgUEIxOAogICAgaW5zdGVhZCBvZiBQQjE4IGFuZCBQQjE5LgoKICAgIHdoaWNoIGlzIG9idmlvdXNseSBjb3JyZWN0LiBUaGVyZSdzIGN1cnJlbnRseSBubyBjb2RlIHRoYXQgdXNlcwogICAgVVNBUlQzLCBidXQgY3VzdG9tIGJvYXJkcyBtYXkgcnVuIGludG8gcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDllYTBkZTAzZGNjM2VlN2FmMDQ1YjBiNTcyMjI3YmRhMmMxYzkxOApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDEgMTI6NDQ6MjAgMjAwNyArMDEwMAoKICAgIFJFQURNRTogUmVtb3ZlIEFUU1RLMTAwMCBkYXVnaHRlcmJvYXJkIGxpc3QKCiAgICBBcyBub3RlZCBieSBLaW0gUGhpbGxpcHMsIHRoZXNlIGxpc3RzIHRlbmQgdG8gYmVjb21lIG91dCBvZiBkYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGM4MWNiYmFkMjFjYjBhZTk4M2UyZTc5NjIxMTIwMjIzNGNkYzhiZTIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVHVlIE9jdCAzMCAxNDo1NjozNiAyMDA3ICswMTAwCgogICAgQWRkIEFUU1RLMTAwWzIzNF0gdG8gTUFJTlRBSU5FUlMKCiAgICBBZGQgYWxsIHRoZSBBVFNUSzEwMDAgZGF1Z2h0ZXJib2FyZHMgdG8gTUFJTlRBSU5FUlMgYWxvbmcgd2l0aCB0aGVpcgogICAgIm1vdGhlciIuIEFsc28gdXBkYXRlIHRoZSBlbnRyeSBmb3IgQVRTVEsxMDAwIHRvIGJlIG5vdCBvbmx5IGFib3V0IHRoZQogICAgQVA3MDAwIENQVTsgaXQncyBpbnRlbmRlZCB0byBoYW5kbGUgYWxsIENQVXMgaW4gdGhlIEFUMzJBUCBmYW1pbHkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNjRmZjIzNTdiMTcyNzIxMzgwMzU5MTgxM2RiYzc3OWM5MjRiZjc3MgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gT2N0IDI5IDEzOjAyOjU0IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogQWRkIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDQgYm9hcmQKCiAgICBBVFNUSzEwMDQgaXMgYSBkYXVnaHRlcmJvYXJkIGZvciBBVFNUSzEwMDAgd2l0aCB0aGUgQVQzMkFQNzAwMiBDUFUsCiAgICB3aGljaCBpcyBhIGRlcml2YXRpdmUgb2YgQVQzMkFQNzAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA2Njc1NjhkYjE1N2YzNzRiODVhYmQ3ZTAzNTk2ZGRkMWYwYjI1NjgxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6MDI6NTQgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBBZGQgc3VwcG9ydCBmb3IgdGhlIEFUU1RLMTAwMyBib2FyZAoKICAgIEFUU1RLMTAwMyBpcyBhIGRhdWdodGVyYm9hcmQgZm9yIEFUU1RLMTAwMCB3aXRoIHRoZSBBVDMyQVA3MDAxIENQVSwKICAgIHdoaWNoIGlzIGEgZGVyaXZhdGl2ZSBvZiBBVDMyQVA3MDAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDVmZWU4NGE3OTRhNTFlYzgzMDU0OGNkYTQ4NWE3NzBlZmIwMThiOTIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzoyMzozMyAyMDA3ICswMTAwCgogICAgQVZSMzI6IE1ha2Ugc29tZSBBVDMyQVA3MDB4IHBlcmlwaGVyYWxzIG9wdGlvbmFsCgogICAgQWRkIGEgY2hpcC1mZWF0dXJlcyBmaWxlIHByb3ZpZGluZyBkZWZpbml0aW9ucyBvZiB0aGUgZm9ybQoKICAgIEFUMzJBUDcwMHhfQ0hJUF9IQVNfPHBlcmlwaGVyYWw+CgogICAgdG8gaW5kaWNhdGUgdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgZ2l2ZW4gcGVyaXBoZXJhbCBvbiB0aGUgY3VycmVudGx5CiAgICBzZWxlY3RlZCBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDM2ZjI4ZjhhOTYwNWVlNWRjZmEzMzA0ODJjZmM2MjE3MTI2MWFmOTcKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzowOTo1NiAyMDA3ICswMTAwCgogICAgQVZSMzI6IFJlbmFtZSBhdDMyYXA3MDAwIC0+IGF0MzJhcDcwMHgKCiAgICBUaGUgU29DLXNwZWNpZmljIGNvZGUgZm9yIGFsbCB0aGUgQVQzMkFQNzAweCBDUFVzIGlzIHByYWN0aWNhbGx5CiAgICBpZGVudGljYWw7IHRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCBzb21lIGNoaXBzIGhhdmUgbGVzcyBmZWF0dXJlcwogICAgdGhhbiBvdGhlcnMuIEJ5IGRvaW5nIHRoaXMgcmVuYW1lLCB3ZSBjYW4gYWRkIHN1cHBvcnQgZm9yIHRoZSBBUDcwMDAKICAgIGRlcml2YXRpdmVzIHNpbXBseSBieSBtYWtpbmcgc29tZSBmZWF0dXJlcyBjb25kaXRpb25hbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0ZDVmYTk5YzczZjM1NGU3Y2Y5ODVlZmNmNDE3ZWE1NWNhMmY2YTVlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBKdW4gMjkgMTg6MjI6MzQgMjAwNyArMDIwMAoKICAgIGF0bWVsX21jaTogU2hvdyBTUiB3aGVuIGJsb2NrIHJlYWQgZmFpbHMKCiAgICBTaG93IGNvbnRyb2xsZXIgc3RhdHVzIGFzIHdlbGwgYXMgY2FyZCBzdGF0dXMgd2hlbiBhbiBlcnJvciBvY2N1cnMKICAgIGR1cmluZyBibG9jayByZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDg2OTdlNmExOWIxMGY1MTQ1MTFiNmE5Yzg2ZGU4OGJkMTA4YzRmOGQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgMTMgMTQ6NTI6NTMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQnJpbmcgNHh4IGZkdCBzdXBwb3J0IHVwLXRvLWRhdGUKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZSB0aGUgNHh4IGZkdCBzdXBwb3J0LiBJdCBlbmFibGVkIGZkdCBib290aW5nCiAgICBvbiB0aGUgQU1DQyBLaWxhdWVhIGFuZCBTZXF1b2lhIGZvciBub3cuIE1vcmUgY2FuIGZvbGxvdyBsYXRlcgogICAgcXVpdGUgZWFzaWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMmQzMGFhNzk3NzljMmFhN2E5OThiYmFlNGMwNzVmODIyYTUzMDA0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzQgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogVXNlIG1hcF9waHlzbWVtKCkgYW5kIHVubWFwX3BoeXNtZW0oKQoKICAgIFVzZSBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkgdG8gY29udmVydCBmcm9tIHBoeXNpY2FsIHRvCiAgICB2aXJ0dWFsIGFkZHJlc3Nlcy4gVGhpcyBnaXZlcyB0aGUgYXJjaCBhIGNoYW5jZSB0byBwcm92aWRlIGFuIHVuY2FjaGVkCiAgICBtYXBwaW5nIGZvciBmbGFzaCBhY2Nlc3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0ZDdkNjkzNmViMjlhZjdjY2EzMzA5Mzc4MDgzMTJhYTVmNjE0NTRkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzMgMjAwNyArMDEwMAoKICAgIEludHJvZHVjZSBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkKCiAgICBtYXBfcGh5c21lbSgpIHJldHVybnMgYSB2aXJ0dWFsIGFkZHJlc3Mgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYWNjZXNzIGEKICAgIGdpdmVuIHBoeXNpY2FsIGFkZHJlc3Mgd2l0aG91dCBpbnZvbHZpbmcgdGhlIGNhY2hlLiB1bm1hcF9waHlzbWVtKCkKICAgIHNob3VsZCBiZSBjYWxsZWQgd2hlbiB0aGUgdmlydHVhbCBhZGRyZXNzIHJldHVybmVkIGJ5IG1hcF9waHlzbWVtKCkgaXMKICAgIG5vIGxvbmdlciBuZWVkZWQuCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgc3R1YiBpbXBsZW1lbnRhdGlvbiB3aGljaCBzaW1wbHkgcmV0dXJucyB0aGUKICAgIHBoeXNpY2FsIGFkZHJlc3MgY2FzdCB0byBhIHVjaGFyICogZm9yIGFsbCBhcmNoaXRlY3R1cmVzIGV4Y2VwdCBBVlIzMiwKICAgIHdoaWNoIGNvbnZlcnRzIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHRvIGFuIHVuY2FjaGVkIHZpcnR1YWwgbWFwcGluZy4KICAgIHVubWFwX3BoeXNtZW0oKSBpcyBhIG5vLW9wIG9uIGFsbCBhcmNoaXRlY3R1cmVzLCBidXQgaWYgYW55CiAgICBhcmNoaXRlY3R1cmUgbmVlZHMgdG8gZG8gc3VjaCBtYXBwaW5ncyB0aHJvdWdoIHRoZSBUTEIsIHRoaXMgaXMgdGhlCiAgICBob29rIHdoZXJlIHRob3NlIFRMQiBlbnRyaWVzIGNhbiBiZSBpbnZhbGlkYXRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjZGJhZWZiNWY1ZjAzZTU0NDU1ZDA0MzlkY2Y2ZGJkOTdlYWQxZjlkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzIgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogSW50cm9kdWNlIHJlYWQgYW5kIHdyaXRlIGFjY2Vzc29ycwoKICAgIEludHJvZHVjZSBmbGFzaF9yZWFkezgsMTYsMzIsNjQpIGFuZCBmbGFzaF93cml0ZXs4LDE2LDMyLDY0fSBhbmQgdXNlCiAgICB0aGVtIHRvIGFjY2VzcyB0aGUgZmxhc2ggbWVtb3J5LiBUaGlzIG1ha2VzIGl0IGNsZWFyZXIgd2hlbiB0aGUgZmxhc2gKICAgIGlzIGFjdHVhbGx5IGJlaW5nIGFjY2Vzc2VkOyBtZXJlbHkgZGVyZWZlcmVuY2luZyBhIHZvbGF0aWxlIHBvaW50ZXIKICAgIGxvb2tzIGp1c3QgbGlrZSBhbnkgb3RoZXIga2luZCBvZiBhY2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgODEyNzExY2U2YjNhMzg2MTI1ZGNmMGQ2YTU5NTg4ZTQ2MWFiYmI4NwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjMxIDIwMDcgKzAxMDAKCiAgICBJbXBsZW1lbnQgX19yYXdfe3JlYWQsd3JpdGV9W2J3bF0gb24gYWxsIGFyY2hpdGVjdHVyZXMKCiAgICBUaGlzIGFkZHMgaW1wbGVtZW50YXRpb25zIG9mIF9fcmF3X3JlYWRbYndsXSBhbmQgX19yYXdfd3JpdGVbYndsXSB0bwogICAgbTY4aywgcHBjLCBuaW9zIGFuZCBuaW9zMi4gVGhlIG02OGsgYW5kIHBwYyBpbXBsZW1lbnRhdGlvbnMgd2VyZSB0YWtlbgogICAgZnJvbSBMaW51eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiZTYwYTkwMjFjODJmYzVhZWNkNWIyYjFmYzk2ZjcwYTljODFiYmNkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBPY3QgNiAxODo1NTozNiAyMDA3ICswMjAwCgogICAgY2ZpX2ZsYXNoOiBSZW9yZGVyIGZ1bmN0aW9ucyBhbmQgZWxpbWluYXRlIGV4dHJhIHByb3RvdHlwZXMKCiAgICBSZW9yZGVyIHRoZSBmdW5jdGlvbnMgaW4gY2ZpX2ZsYXNoLmMgc28gdGhhdCBlYWNoIGZ1bmN0aW9uIG9ubHkgdXNlcwogICAgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGRlZmluZWQgYmVmb3JlIGl0LiBUaGlzIGFsbG93cyB0aGUgc3RhdGljCiAgICBwcm90b3R5cGUgZGVjbGFyYXRpb25zIG5lYXIgdGhlIHRvcCB0byBiZSBlbGltaW5hdGVkIGFuZCBtaWdodCBhbGxvdwogICAgZ2NjIHRvIGRvIGEgYmV0dGVyIGpvYiBpbmxpbmluZyBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMzA1NTc5M2JjYmRmMjRiMWY4MTE3ZjYwNmZmYjc2NmQzMmViNzY2ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjI5IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IE1ha2Ugc29tZSBuZWVkbGVzc2x5IGdsb2JhbCBmdW5jdGlvbnMgc3RhdGljCgogICAgTWFrZSBmdW5jdGlvbnMgbm90IGRlY2xhcmVkIGluIGFueSBoZWFkZXIgZmlsZSBzdGF0aWMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2U1YjliNDcxNTE4YzU2NTJmZWJjNjhiYTYyYjQzMjE5M2Q2YWJmNApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjI4IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEJyZWFrIGxvbmcgbGluZXMKCiAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIGtlZXAgYWxsIGxpbmVzIGluIHRoZSBjZmlfZmxhc2ggZHJpdmVyIGJlbG93IDgwCiAgICBjb2x1bW5zLiBUaGVyZSBhcmUgYSBmZXcgbGluZXMgbGVmdCB3aGljaCBkb24ndCBmaXQgdGhpcyByZXF1aXJlbWVudAogICAgYmVjYXVzZSBJIGNvdWxkbid0IGZpbmQgYW55IHRyaXZpYWwgd2F5IHRvIGJyZWFrIHRoZW0gKGkuZS4gaXQgd291bGQKICAgIHRha2Ugc29tZSByZXN0cnVjdHVyaW5nLCB3aGljaCBJIGludGVuZCB0byBkbyBpbiBhIGxhdGVyIHBhdGNoLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0MjAyNmM5Y2IzYTc2ODQ5YjQxZTZlMjRhYmZiN2I1NjgwN2E1YzFhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIERlYyAxMSAxMzo1OTo1NyAyMDA3ICswMTAwCgogICAgQ0ZJOiBzeW5jaHJvbml6ZSBjb21tYW5kIG9mZnNldHMgd2l0aCBMaW51eCBDRkkgZHJpdmVyCgogICAgRml4ZXMgbm9uLXdvcmtpbmcgQ0ZJIEZsYXNoIG9uIHRoZSBJbmthNHgwIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOGZmM2RlNjFmYzVmOWIzYjIxNjQ3YmNlMDgxYTNiN2Y3MTBmMGQ0ZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBEZWMgNyAxMjoxNzozNCAyMDA3IC0wNjAwCgogICAgSGFuZGxlIE1QQzg1eHggUENJZSByZXNldCBlcnJhdGEgKFBDSS1FeCAzOCkKCiAgICBPbiB0aGUgTVBDODV4eCBib2FyZHMgdGhhdCBoYXZlIFBDSWUgZW5hYmxlIHRoZSBQQ0llIGVycmF0YSBmaXguCiAgICAoTVBDODU0NERTLCBNUEM4NTQ4Q0RTLCBNUEM4NTY4TURTKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgyYWM4Yzk3MTQ1YTRjM2JmOGIzZGJmYWQwMGZhOTZlOTIwZjliOWMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRGVjIDcgMTI6MDQ6MzAgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBGcmVlc2NhbGUgTVBDODV4eCBBRFMvQ0RTL01EUyBib2FyZCBjb25maWcKCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRF9FTEYKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQ0MzU3OTMyMjljZTI5YTQyNzk3YzFlZGMzOWY1YjM0Zjk4N2Y5MWEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRGVjIDcgMDQ6NTk6MjYgMjAwNyAtMDYwMAoKICAgIEhhbmRsZSBBc3luY2hyb25vdXMgRERSIGNsb2NrIG9uIDg1eHgKCiAgICBUaGUgTVBDODU3MiBpbnRyb2R1Y2VzIHRoZSBjb25jZXB0IG9mIGFuIGFzeW5jaHJvbm91cyBERFIgY2xvY2sgd2l0aAogICAgcmVnYXJkcyB0byB0aGUgcGxhdGZvcm0gY2xvY2suCgogICAgSW50cm9kdWNlIGdldF9kZHJfZnJlcSgpIHRvIHJlcG9ydCB0aGUgRERSIGZyZXEgcmVnYXJkbGVzcyBvZiBzeW5jL2FzeW5jCiAgICBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjJhYmIyZDJlYWY3Yjc5NWE2OTIzYzYyNzNlYzljYjUzZmRhOWExMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6MzQ6MjggMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBGcmVlc2NhbGUgTVBDODV4eCBBRFMvQ0RTL01EUyBib2FyZCBjb25maWcKCiAgICAqIFJlbW92ZWQgc29tZSBtaXNjIGVudmlyb25tZW50IHNldHVwCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRExJTkVfRURJVElORwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDE1YTYxM2JhYmI4NGQ1ZTVkNWI0MmU4ZTU1Mzg2OGM3MWZjM2E2NApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6NDc6NDQgMjAwNyAtMDYwMAoKICAgIE1vdmUgdGhlIE1QQzg1NDEvTVBDODU1NS9NUEM4NTQ4IENEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGMyZDk0M2ZmYmZkMzM1OWIzYjQ1ZDE3N2I0MzczNzlkMmNiODZmYmYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjE2OjE4IDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTQwIEFEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDg3MGNlYWM1YjNhMzQ4NmMxMDkzOTZlMDA1YWY4MWFlNzYyYjU3MTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjE0OjUwIDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTYwIEFEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGFjYmNhODc2ZmIzZmVjMjVjZDljNTViMGVmYzgxZmY2MThmZjUyNjIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjEzOjQ3IDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTY4IE1EUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGE4NTNkNTZjNTliMzM0MTUzMDQ1MzE0NDM2MzM4MDg3MzZhY2ZjNmUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAyOjE4OjU5IDIwMDcgLTA2MDAKCiAgICBVc2Ugc3RhbmRhcmQgTEFXQVJfVFJHVF9JRl8qIGRlZmluZXMgZm9yIExBVyBzZXR1cCBvbiA4NXh4CgogICAgV2UgYWxyZWFkeSBoYWQgZGVmaW5lcyBmb3IgTEFXQVJfVFJHVF9JRl8qIHRoYXQgd2Ugc2hvdWxkIHVzZQogICAgcmF0aGVyIHRoYW4gY3JlYXRpbmcgbmV3IG9uZXMuICBBbHNvLCBhZGRlZCBzb21lIG1pc3NpbmcgZGVmaW5lcyBmb3IKICAgIFBDSUUgdGFyZ2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDA0ZGI0MDA4OTJkYTM3Yjc2YTU4NWUzMzJhMGMxMzc5NTRhZDIwMTUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAyOjEwOjA5IDIwMDcgLTA2MDAKCiAgICBTdG9wIHVzaW5nIGltbWFwX3Qgb24gODV4eAoKICAgIEluIHRoZSBmdXR1cmUgdGhlIG9mZnNldHMgdG8gdmFyaW91cyBibG9ja3MgbWF5IG5vdCBiZSBpbiBzYW1lIGxvY2F0aW9uLgogICAgTW92ZSB0byB1c2luZyBDRkdfTVBDODV4eF8qX0FERFIgYXMgdGhlIGJhc2Ugb2YgdGhlIHJlZ2lzdGVycwogICAgaW5zdGVhZCBvZiBnZXR0aW5nIGl0IHZpYSAmaW1tYXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyNzE0MjIzZjhlMDRhYjNlNDEzM2ZmNjU4NzJlZWYzNjZkOTBiZmVhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMToyMzowOSAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIENPTkZJR19PRl9GTEFUX1RSRUUgcmVsYXRlZCBjb2RlIGZyb20gbXBjODV4eCBzaW5jZSB3ZSBub3cgdXNlIGxpYmZkdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYzQ4MDg2MWJmMDAwMTU2ZTZhM2U5MzJjMjU4ZGI1OWZmMjIxMmRkMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDE6MDY6MTkgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTY4IE1EUyB0byB1c2UgbGliZmR0CgogICAgVXBkYXRlZCB0aGUgTVBDODU2OCBNRFMgY29uZmlnIHRvIHVzZSBsaWJmZHQgYW5kIGFzc3VtZSB1c2Ugb2YgYWxpYXNlcyBmb3IKICAgIGV0aGVybmV0LCBwY2ksIGFuZCBzZXJpYWwgZm9yIHRoZSB2YXJpb3VzIGZpeHVwcyB0aGF0IGFyZSBkb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMTU2M2Y1NmUwYzY4ZjY5MjBmOTU2MzgyZDZkMTNiZWUzZjAxYzBmNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMTQgMTU6NTI6MDYgMjAwNyAtMDUwMAoKICAgIEFkZCBQQ0kgRXhwcmVzcyBzdXBwb3J0IG9uIE1QQzg1NjhNRFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiOTBkMjU0OTc2MjViOTBmZmEzZjI5MTFhMDg5NWNhMjM3NTU2ZmY1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMDoxMTo0NCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1eHggQ0RTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NXh4IENEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZmQ1ZWM2NmIxMDUyMWEwNTdhZDczZTY5YWI1ZjBmOWVhZmJhMjU1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAyMjo1NDoyNyAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NDAgQURTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NTQwIEFEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1Y2U3MTU4MDJmNmM1MGRjNzhiMzQwNWI5MmYxODRiMWUzNzEwNTE5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAyMjo0MDozMSAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NjAgQURTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NTYwIEFEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhYWZlZWZiZGI4YjAyOWY1Y2EyYTE5NTU5OGQwYTUwMWE2MDZlZWE5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAwMDozNjozMyAyMDA3IC0wNjAwCgogICAgU3RvcCB1c2luZyBpbW1hcF90IGZvciBjcG0gb2Zmc2V0IG9uIDg1eHgKCiAgICBJbiB0aGUgZnV0dXJlIHRoZSBvZmZzZXRzIHRvIHZhcmlvdXMgYmxvY2tzIG1heSBub3QgYmUgaW4gc2FtZSBsb2NhdGlvbi4KICAgIE1vdmUgdG8gdXNpbmcgQ0ZHX01QQzg1eHhfQ1BNX0FERFIgYXMgdGhlIGJhc2Ugb2YgdGhlIENQTSByZWdpc3RlcnMKICAgIGluc3RlYWQgb2YgZ2V0dGluZyBpdCB2aWEgJmltbWFwLT5pbV9jcG0uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNTliNTVhNWI4ZmNhZGFhOTk3ODFiYTQ4ZTdhMzhlOTU2YWZhNTI3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMzoyNTowMiAyMDA3IC0wNjAwCgogICAgU3RvcCB1c2luZyBpbW1hcF90IGZvciBndXRzIG9mZnNldCBvbiA4NXh4CgogICAgSW4gdGhlIGZ1dHVyZSB0aGUgb2Zmc2V0cyB0byB2YXJpb3VzIGJsb2NrcyBtYXkgbm90IGJlIGluIHNhbWUgbG9jYXRpb24uCiAgICBNb3ZlIHRvIHVzaW5nIENGR19NUEM4NXh4X0dVVFNfQUREUiBhcyB0aGUgYmFzZSBvZiB0aGUgZ3V0cyByZWdpc3RlcnMKICAgIGluc3RlYWQgb2YgZ2V0dGluZyBpdCB2aWEgJmltbWFwLT5pbV9ndXIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1MGMwM2M4Y2Y0OTRkOTFjZGVjMzk2NzBkOTUzMzdjNzQzZTE2ZWM5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMjo0MjozNCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NDQgRFMgY29uZmlnCgogICAgKiBSZW1vdmVkIEhBU19FVEgyL0hBU19FVEgzIC0gTVBDODU0NCBvbmx5IGhhcyBUU0VDMS8yCiAgICAqIFJlbW92ZWQgc29tZSBtaXNjIGVudmlyb25tZW50IHNldHVwCiAgICAqIE1vdmVkIHRvIHVzaW5nIGZkdGZpbGUgJiBmZHRhZGRyIGFzIGZkdCBlbnYgdmFyIG5hbWVzCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRExJTkVfRURJVElORwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWRkY2U1N2UyZTRjNDllNzdmZmIyMDIwYTg0NjkwNzEzYmIxOGI0NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTc6MTI6MjQgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTQ0RFMgdG8gdXNlIGxpYmZkdAoKICAgIFVwZGF0ZWQgdGhlIE1QQzg1NDREUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmODUyY2U3MmYxMDBjYWJkMWYxMWMyMWMwODVhMGFkOGVjYTlmYjY1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMDoxNTozMCAyMDA3IC0wNjAwCgogICAgQWRkIGxpYmZkdCBiYXNlZCBmdF9jcHVfc2V0dXAgZm9yIG1wYzg1eHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDNiOWFiZGM0NDhhMWMyYzZhNGMyYWEyOTI3MjRiNGQxYTA1MTY2YTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTEgMTM6Mzg6MTkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ29ycmVjdCBHUElPIG9mZnNldCBpbiBncGlvX2NvbmZpZygpCgogICAgVGhhbmtzIHRvIEdhcnkgSmVubmVqb2huIGZvciBwb2ludGluZyB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODgwOWEyNzEzYjFjZWFmM2RhNTVkOWQ3ODU0NzAyOTRmMTVkZTA2YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxMSAxMTo0NjowMSAyMDA3ICswMTAwCgogICAgcnRjOiBGaXggbWVyZ2luZyBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdjZmMxMmE3ZGNmZGIzNTBlMmFiNzZkYjRkYWZjYzMwZjdlNzdjMmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBEZWMgOCAxNDo0NzozNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiA0MDVFWDogQ29ycmVjdGx5IGVuYWJsZSBVU0IgcGlucwoKICAgIFRoaXMgcGF0Y2ggc2VsZWN0cyB0aGUgVVNCIGRhdGEgcGlucyBpbiB0aGUgNDA1RVggR1BJTyBhbmQgTUZDIChtdWx0aQogICAgZnVuY3Rpb24gY29udHJvbCkgcmVnaXN0ZXJzLiBUaGlzIGlzIGRvbmUgZm9yIHRoZSBBTUNDIEtpbGF1ZWEgYW5kCiAgICBNYWthbHUgZXZhbCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk2OTJjMjczNGE0N2YyM2I0NGEwZjY4MDQyYTNlMmNhOGQxYmZiMzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBEZWMgOCAwODoyNTowOSAyMDA3ICswMTAwCgogICAgQ0ZJOiBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MWIyMGNjYzJkNzk1YWU5YTExOTlkYjVhNTBhZDljMjhkMWU0ZDIyCkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJRnJpIERlYyA3IDIzOjM1OjAyIDIwMDcgKzAxMDAKCiAgICBDRkk6IHN1cHBvcnQgSkVERUMgZmxhc2ggcm9tcyBpbiBDRkktZmxhc2ggZnJhbWV3b3JrCgogICAgVGhlIGZvbGxvd2luZyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG5vbi1DRkkgZmxhc2ggUk9NUywgYnkgaG9va2luZyBpbnRvIHRoZQogICAgQ0ZJIGZsYXNoIGNvZGUgYW5kIHVzaW5nIG1vc3Qgb2YgaXRzIGNvZGUsIGFzIHJlY2VudGx5IGRpc2N1c3NlZCBoZXJlIGluIHRoZQogICAgdGhyZWFkICJNaXhpbmcgQ0ZJIGFuZCBub24tQ0ZJIGZsYXNocyIuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMDFiMTdkZDg1NmZhMTIwYjI5NzBmNTBkOTU5ODU0NmE0OTI3ZWMzCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIE5vdiAyOCAyMToyNDo1MCAyMDA3IC0wNTAwCgogICAgQ29uZGl0aW9uYWxseSBjb21waWxlIGZkdF9maXh1cF9ldGhlcm5ldCgpCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzOiBPbiBib2FyZHMgdGhhdCBkb24ndCBoYXZlIGV0aGVybmV0cyBkZWZpbmVkLAogICAgZG9uJ3QgY29tcGlsZSBmZHRfZml4dXBfZXRoZXJuZXQoKS4KCmNvbW1pdCAyNDZkNGFlNmJjMjgyYmMxODQxMjI0ZTFjNWZjNDlkYzkyNWUwYmY3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMTo1OTo0NiAyMDA3IC0wNjAwCgogICAgQ29udmVydCBib2FyZHMgdGhhdCBzZXQgbWVtb3J5IG5vZGUgdG8gdXNlIGZkdF9maXh1cF9tZW1vcnkoKQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMTUxYzhiMDliMzVlZWJlOGZkOTEzOWNiNmMxZDkxYzI3YjIyZjA1OApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTc6MDY6MTUgMjAwNyAtMDYwMAoKICAgIEFkZGVkIGZkdF9maXh1cF9zdGRvdXQgdGhhdCB1c2VzIGFsaWFzZXMgdG8gc2V0IGxpbnV4LHN0ZG91dC1wYXRoCgogICAgV2UgdXNlIGEgY29tYmluYXRpb24gb2YgdGhlIHNlcmlhbE4gYWxpYXMgYW5kIENPTkZJR19DT05TX0lOREVYIHRvCiAgICBkZXRlcm1pbmUgd2hpY2ggc2VyaWFsIGFsaWFzIHdlIHNob3VsZCBzZXQgbGludXgsc3Rkb3V0LXBhdGggdG8uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzYzkyNzI4MTNmYWQ4NGM2OTFkMGU0OTg5YmIxOGEzZmZlYmRlYmZjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxNDo1Nzo0NSAyMDA3IC0wNjAwCgogICAgQWRkIGNvbW1vbiBtZW1vcnkgZml4dXAgZnVuY3Rpb24KCiAgICBBZGQgdGhlIGZ1bmN0aW9uIGZkdF9maXh1cF9tZW1vcnkoKSB0byBmaXh1cCB0aGUgL21lbW9yeSBub2RlIG9mIHRoZSBmZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDljOTEwOWU3ZmNmN2FjMmNhMTljOTViOGFjNTRiOGQxYzc3M2IxNTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTm92IDI2IDExOjE5OjEyIDIwMDcgLTA2MDAKCiAgICBDb25kaXRpb25hbGx5IGNvbXBpbGUgZmR0X3N1cHBvcnQuYwoKICAgIE1vZGlmeSBjb21tb24vTWFrZWZpbGUgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIGZkdF9zdXBwb3J0LmMgYmFzZWQKICAgIG9uIENPTkZJR19PRl9MSUJGRFQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkODhlN2JhMDk4MDc3MzQ3OWUxYTY0YmFkYjI5MzExNjA3MWI3ZWYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxMDo0MTo0MCAyMDA3IC0wNjAwCgogICAgRml4IGJ1aWxkIGJyZWFrYWdlIGR1ZSB0byBsaWJmZHQgaW1wb3J0CgogICAgVGhlIElEUzgyNDcgZ290IGxvc3QgaW4gdGhlIHVwZGF0ZSBhbmQgbmVlZCBhbiBBUEkgdXBkYXRlCiAgICBkbyB0byByZW5hbWUgb2YgZnVuY3Rpb25zIGluIGxpYmZkdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI4ZjM4NGIxNzFiYmYxZmIyZGFmYjEwNDZlNmQyNTlhNmIyZjg3MTQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgTm92IDIzIDE5OjQzOjIwIDIwMDcgLTA1MDAKCiAgICBBZGQgc3BhY2VzIGFyb3VuZCB0aGUgPSBpbiB0aGUgZmR0IHByaW50IGZvcm1hdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDI5NTkyZWNiYTNiOTMyYjliMTUyYmNlYzZjMGMwODA2NDEyZGI0YTMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBEZWMgNyAwMToyNTozOCAyMDA3ICswOTAwCgogICAgc2g6IE1vdmVkIGRyaXZlciBvZiB0aGUgU3VwZXJIIGRlcGVuZGVuY2UKCiAgICBUaGUgY29tcG9zaXRpb24gb2YgdGhlIGRpcmVjdG9yeSBpbiB0aGUgZHJpdmVycy8gY2hhbmdlZC4KICAgIEkgbW92ZWQgU3VwZXJIIHNlcmlhbCBkcml2ZXIgYW5kIG1hcnVidW4gUENNQ0lBIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNDFiZTk2OWY0OTU3MTE1ZWQ3YjFmZThiODkwYmZhZWU5OWQ3YTdhMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgNiAxMDoyMToxOSAyMDA3ICswMTAwCgogICAgUmVsZWFzZSB2MS4zLjEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNmNTkzM2JhMWU5N2ExY2Q4ZjVmMjQwNzBlODIwZjIxZDk3NmVhZWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDYgMTA6MjE6MDMgMjAwNyArMDEwMAoKICAgIEFEUzUxMjEgQm9hcmQ6IGZpeCBjb21waWxlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhMjcwNDRiMTRhOWU5MzY3OGE4MmQ3YjM1ZjIwMmI5M2U3Njg3YWJjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDYgMDU6NTg6NDMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIGhhcmR3YXJlLWZpeCBmb3IgUENJL0RNQSBlcnJhdGEgb24gQU1DQyA0NDBTUC9TUGUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSBoYXJkd2FyZS1maXggZm9yIHRoZSBQQ0kvRE1BIGVycmF0YSdzIDE5KzIyIGJ5CiAgICBzZXR0aW5nIHRoZSBGSVhEIGJpdCBpbiB0aGUgU0RSMF9NRlIgcmVnaXN0ZXIuIEhlcmUgYSBkZXNjcmlwdGlvbiBvZiB0aGUKICAgIHN5bXB0b21zOgoKICAgIFByb2JsZW0gRGVzY3JpcHRpb24KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgSWYgYSBETUEgaXMgcGVyZm9ybWVkIGJldHdlZW4gbWVtb3J5IGFuZCBQQ0kgd2l0aCB0aGUgRE1BIDEgQ29udHJvbGxlcgogICAgdXNpbmcgcHJlZmV0Y2gsIGFuZCBhcyBhIHJlc3VsdCB1c2VzIGEgc3BlY2lhbCBwdXJwb3NlIGJ1ZmZlciBzZWxlY3RlZCBieQogICAgdGhlIFBDSVhuIEJyaWRnZSBPcHRpb25zIDEgUmVnaXN0ZXIgKFBDSVhuX0JSREdPUFQxW1JCUDddIC0gYml0cyAzMS0yOSksCiAgICB0aGUgZmlyc3QgcGFydCBvZiB0aGUgdHJhbnNmZXIgc2VxdWVuY2UgaXMgcGVyZm9ybWVkIHR3aWNlLiBUaGUKICAgIFBQQzQ0MFNQZSBQQ0kgQ29udHJvbGxlciByZXF1ZXN0cyBtb3JlIGRhdGEgdGhhbiB3YXMgbmVlZGVkIHN1Y2ggdGhhdCBpbgogICAgdGhlIGNhc2Ugb2YgZW5mb3JjZSBtZW1vcnkgcHJvdGVjdGlvbiwgYSBob3N0IENQVSAgZXhjZXB0aW9uIGNhbiBvY2N1ci4KICAgIE5vIGRhdGEgaXMgY29ycnVwdGVkLCBiZWNhdXNlIGRhdGEgdHJhbnNmZXIgaXMgc3RvcHBlZCBpbiB0aGUgUENJCiAgICBDb250cm9sbGVyLiBQcmVmZXRjaCBlbmFibGUgaXMgc3BlY2lmaWVkIGJ5IHNldHRpbmcgRE1BIENvbmZpZ3VyYXRpb24KICAgIFJlZ2lzdGVyIChJMk8wX0RNQXhfQ0ZHW0RYRVBEXSAtIGJpdCAzMSkgdG8gMC4KCiAgICBCZWhhdmlvciB0aGF0IG1heSBiZSBvYnNlcnZlZCBpbiBhIHJ1bm5pbmcgc3lzdGVtCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAxLiBETUEgcGVyZm9ybWFuY2UgaXMgZGVjcmVhc2VkIGJlY2F1c2Ugb2YgdGhlIGRvdWJsZSBhY2Nlc3Mgb24gdGhlIFBDSSBidXMKICAgIGludGVyZmFjZS4KICAgIDIuIElmIGFuIGlsbGVnYWwgYWNjZXNzIHRvIHNvbWUgYWRkcmVzcyBvbiB0aGUgUENJIGJ1cyBpcyBkZXRlY3RlZCBhdCB0aGUKICAgIHN5c3RlbSBsZXZlbCwgYSBtYWNoaW5lIGNoZWNrIG9yIHNpbWlsYXIgc3lzdGVtIGVycm9yIG1heSBvY2N1ci4KCiAgICBXb3JrYXJvdW5kcyBBdmFpbGFibGUKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAxLiBEbyBub3QgcHJvZ3JhbSBwcmVmZXRjaC4gTm90ZSB0aGF0IGEgcHJlZmV0Y2ggY29tbWFuZCBjYW5ub3QgYmUgcHJvZ3JhbW1lZAogICAgd2l0aG91dCBzZWxlY3RpbmcgYSBzcGVjaWFsIHB1cnBvc2UgYnVmZmVyLgogICAgMi4gVG8gYXZvaWQgY3Jvc3NpbmcgYSBwaHlzaWNhbCBib3VuZGFyeSBvZiB0aGUgUENJIHNsYXZlIGRldmljZSwgYWRkIDUxMgogICAgYnl0ZXMgb2YgYWRkcmVzcyB0byB0aGUgUENJIGFkZHJlc3MgcmFuZ2UuCgogICAgVGhpcyBwYXRjaCB3YXMgb3JpZ2luYWxseSBwcm92aWRlZCBieSBQcmF2aW4gTS4gQmF0aGlqYSA8cGJhdGhpamFAYW1jYy5jb20+CiAgICBmcm9tIEFNQ0MgYW5kIHNsaWdobHkgY2hhbmdlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQcmF2aW4gTS4gQmF0aGlqYSA8cGJhdGhpamFAYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTkwOTIxZjcxZDIyNWJmOWUwZjBmYzdiOGJlYWRlYjgwMDFiZjc4YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyA0IDE2OjI5OjQ4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFlvc2VtaXRlL1llbGxvd3N0b25lOiBBZGQgRFRUIEFENzQxNCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhkNGYwNDBhM2MxNTAzNmE2ZWEyNWE5YzM5ZTdkODlmZWZhODQ0MGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gRGVjIDMgMDA6MTU6MjggMjAwNyArMDEwMAoKICAgIFByZXBhcmUgZm9yIDEuMy4xLXJjMQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTE1ZTMzNDMzZTdjMDUxMTE5NjhkYzliNDM0YTUyZmQ0MmNiZDIyMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiAzMCAwNzoxNTo0MSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBLaWxhdWVhOiBBZGQgUENJZSByZXNldCBhc3NlcnRpb24gdXBvbiBwb3dlci11cAoKICAgIFRoaXMgbWFudWFsIFBDSWUgcmVzZXQgdHJpZ2dlcmluZyBzb2x2ZXMgdGhlIHByb2JsZW0gc2VlbiB3aXRoIHRoZQogICAgSW50ZWwgRVBSTy8xMDAwIGNhcmQsIHdoaWNoIHdhcyBub3QgZGV0ZWN0ZWQgKGxpbmsgbm90IGVzdGFibGlzaGVkKQogICAgdXBvbiBwb3dlci11cCByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjYwZWVhNTY3NmNhNDY5MDNhMzM1Njg2Y2MwMjBiMjljNGNhNDZmZQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMToyMTo1NCAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBTdXBlckggYm9hcmRzIG1haW50YWluZXIgdG8gTUFJTlRBSU5FUlMgZmlsZQoKICAgIEFkZCBNUzc3NTBTRSBhbmQgTVM3NzIyU0UncyBib2FyZCBtYWludGFpbmVyIHRvIE1BSU5UQUlORVJTIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGFhOWM0ZjFkMjI3MDFhOTIzNDdjMWM4MWYzNGQxMmM4YWQzYTM3NDcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDA6MTM6MDQgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgbXM3NzUwc2Ugc3VwcG9ydCBpbiBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGM3MTQ0MzczNDI3YTE3ODMzMmJmOTc1NDEzMWM4YzM0YzUyYzIwMGEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDI3IDA5OjQ0OjUzIDIwMDcgKzAxMDAKCiAgICBzaDogQWRkIHNoMyBhbmQgc2g0IHN1cHBvcnQgaW4gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMTMwMDgwODc0YTNkMjg0NTAwOTg0ODFhMjYyYzVmN2M4NTVlOTA4ZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIE5vdiAyNSAwMjo1MToxNyAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBkb2N1bWVudCBmb3IgU3VwZXJILgoKICAgIFRoaXMgZG9jdW1lbnQgaXMgYSBzdW1tYXJ5IG9mIGluZm9ybWF0aW9uIGNvbmNlcm5pbmcgU3VwZXJIIG9mIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMzNlY2RjMmY5ZDY0OTI2ZTFhNjA2N2IyOGYzYTBhZWZjM2I2ZDIzZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIE5vdiAyNSAwMjozOTozMSAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBtYXJ1YnVuJ3MgcGNtY2lhIGRyaXZlcgoKICAgIE1hcnVidW4gcGNtY2lhIGlzIGEgY2hpcCBmb3IgUENNQ0lBIHVzZWQgd2l0aCBTdXBlckguCiAgICBPZiBjb3Vyc2UsIHRoaXMgY2FuIGJlIHVzZWQgZXZlbiBieSBvdGhlciBhcmNoaXRlY3R1cmVzLgogICAgV2hlbiB1c2UgdGhpcyBkcml2ZXIsIGNhbWUgdG8gYmUgYWJsZSB0byB1c2UgQ29tcGFjdEZsYXNoCiAgICBhbmQgRXRoZXJuZXQuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGZlYmQ4NmI5NjliOTc1Mjg5ZWQ5NDhmMWFjMGViOTcyMmRhNDFjZWQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBOb3YgMjUgMDI6MzI6MTMgMjAwNyArMDkwMAoKICAgIHNoOiBVcGRhdGUgU3VwZXJIIFNDSUYgZHJpdmVyCgogICAgLSBDaGFuZ2VkIHZvbGF0aWxlIHVuc2lnbmVkIHRvIHZ1Xy4KICAgIC0gQ2hhbmdlZCBNYWtlZmlsZSBmb3Iga2NvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgOGJlNzYwOTAzNjQ1YWYwOTg3MWJlNTBhZDBhNmY5ZWJiNjJiMzExZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyNyAxMTo1NzozNSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBLaWxhdWVhICYgTWFrYWx1OiBGaXggZXh0IElSUSBwaW4gbXVsdGlwbGV4aW5nCgogICAgQWZ0ZXIgYW4gZXJyb3IgaW4gdGhlIEFNQ0MgNDA1RVggdXNlcnMgbWFudWFsIG5vdyBjb3JyZWN0bHkgY29uZmlndXJlCiAgICBJUlEyIChLaWxhdWVhKS9JUlEwIChNYWthbHUpIGFzIGFsdGVybmF0ZSAyIHNpZ25hbCBmb3IgZXh0ZXJuYWwgSVJRCiAgICB1c2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTVmNjAxZmQxYjEyNzhkZWFlNWFhOWZjMjdhMjMyYjBkMWMxYzc4OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjYgMTk6MTg6MjEgMjAwNyArMDEwMAoKICAgIENsZWFudXAgY29kaW5nIHN0eWxlOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzZGVjYTlkNDQ3NjdlZmQxYjgzZjRiNzAxZjBkYmYyMWE3NTk1ZjdiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAyNSAyMjozOToyNSAyMDA3ICswMTAwCgogICAgTUFLRUFMTDogYWRkIG1pc3NpbmcgNTEyeCBib2FyZHMgaW4gcHBjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhMzQwYzMyNWU2NjhjYTczODZjMjI3NjM4NzY4MTcyMGJlOWMzNzU3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAyNSAxODo0NTo0NyAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgOiBmaXggdGFncyBjdGFncyBldGFncyB3aXRoIG5ldyBkcml2ZXJzIG9yZ2FuaXphdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjMzNjJjZmM2YmFhOTdhZTBlMzdiYTJjNmVjZTUzMGZjYWM5Zjc5ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNiAxNTowNjoxNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNYWthbHU6IENoYW5nZSBFQkMgc2V0dXAgZm9yIENTMCB0byBlbmFibGUgNDAwTUh6IHVzYWdlCgogICAgQXMgc3VnZ2VzdGVkIGJ5IFNlbmFvLCB1c2UgYSBkaWZmZXJlbnQgRUJDX1BCMEFQIHNldHVwIGZvciA0MDBNSHoKICAgIG9wZXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2ExY2UyMjYyODcyNzBiYjAxZTI1YjhlMzY3NGM3MDFmMTJlZGYxOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNiAxNTowMTo0NSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBLaWxhdWVhOiBDb25maWd1cmUgcGluIG11eCB0byB1c2UgZXh0IElSUTIgYXMgaW50ZXJydXB0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg3ZGRlZGQ2YWQ4MDQ0MjdjZTEyNWNlYWEwNzZkN2E0Zjc0ZTlkNWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDI1IDE4OjQ1OjQ3IDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSA6IGZpeCB0YWdzIGN0YWdzIGV0YWdzIHdpdGggbmV3IGRyaXZlcnMgb3JnYW5pemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1OTgyOWNjMTg5Mzc4YzE0MmMxM2QyYWE4ZDlhODk3ZDhiZWYzOTYxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToyNjo1NiAyMDA3ICswMTAwCgogICAgZHJpdmVycy9tdGQgOiBtb3ZlIG10ZCBkcml2ZXJzIHRvIGRyaXZlcnMvbXRkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzMThjMGI5MDQzMWYyNjQ4NTUyZTVhZGU3ODgzM2Y0MjY1MmNlODU5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToxNzo1NSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9taXNjIDogbW92ZSBtaXNjIGRyaXZlcnMgdG8gZHJpdmVycy9taXNjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzM2RhZjViNzg1ODgwN2NiNGNlNDE1OGMyYzU2NTI0NjcxYzE0YzA4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToxMzo1OSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9ibG9jayA6IG1vdmUgYmxvY2sgZHJpdmVycyB0byBkcml2ZXJzL2Jsb2NrCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwYzY5OGRjYWE3MDI3NWViODgxNGY2NjViNTQ1NTQ3Y2VlMDEzODkyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMDo1OTo1MCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9ydGMgOiBtb3ZlIHJ0YyBkcml2ZXJzIHRvIGRyaXZlcnMvcnRjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmODY4Y2M1YTUwNzU3ZDk0ZjM2YzMxMjM5NTQ4MWNiMGYxODdkOWU2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMDoxNDo0NCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9od21vbiA6IG1vdmUgaGFyZHdhcmUgbW9uaXRvciBkcnZpZXJzIHRvIGRyaXZlcnMvaHdtb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDE2YjE5NWM4MmExOGNiZmQxNjQ4MDBmMTdhMWVmOWRiMmU0ODMzMWEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjQ2OjQ1IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL2lucHV0IDogbW92ZSBpbnB1dCBkcml2ZXJzIHRvIGRyaXZlcnMvaW5wdXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU0NTU4NjY2MjkzMzY0ZmMzYWYxYzFkOTM4MWNhOTMzZmEwZjEyNzUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjQwOjExIDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3VzYiA6IG1vdmUgdXNiIGRyaXZlcnMgdG8gZHJpdmVycy91c2IKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDEzNzhkZjc5MmE3ZmYzYWJkMWJmNTRhNjNmNTQ3NTc4NGY1YjA4M2MKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjMzOjM4IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3NlcmlhbCA6IG1vdmUgc2VyaWFsIGRyaXZlcnMgdG8gZHJpdmVycy9zZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDI0MzllNGJmYTExMWJhYmY0YmMwN2JhMjBlZmJmM2UzNjAzNjgxM2UKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTm92IDIxIDIxOjE5OjI0IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL25ldCA6IG1vdmUgbmV0IGRyaXZlcnMgdG8gZHJpdmVycy9uZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDM1MmQyNTkxMzBiMzQ5ZmU5NTkzYjhkYWRhNjQxYmQ3OGE5NjU5ZTUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjQxOjQ4IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3ZpZGVvIDogbW92ZSB2aWRlbyBkcml2ZXJzIHRvIGRyaXZlcnMvdmlkZW8KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDczNjQ2MjE3MTg2YWExN2FmYzhlMzA1YzVmMDZmMDZkZDMzNWVhYWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjMzOjA5IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3BjbWNpYSA6IG1vdmUgcGNtY2lhIGRyaXZlcnMgdG8gZHJpdmVycy9wY21jaWEKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkzYTY4NmVlOWM1ZGRjNmZhMzY4YzMyY2ZiZmRlNmY2NzI0NTk5ZmMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjI4OjA5IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3BjaSA6IG1vdmUgcGNpIGRyaXZlcnMgdG8gZHJpdmVycy9wY2kKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkxNjIzNTI4MTc1Nzk4NDBkNzgwMmRhNmQ4NTg3MmIzY2EwMDNjOTcKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUaHUgTm92IDIyIDE3OjIzOjIzIDIwMDcgLTA1MDAKCiAgICBGaXggZmR0IHByaW50aW5nIGZvciB1cGRhdGVkIGxpYmZkdAoKICAgIEFsc28gaW1wcm92ZSBwcmludGluZyAoYWRvcHQgZHRjIHYxICJjIHN0eWxlIiBoZXggZm9ybWF0KSwgd2hpdGVzcGFjZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOWViNzdjZWExZmExMmQ1OTY5ZWIyNmExZDFkODFkYTM4MWJkNmIxYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTM6MzA6MTUgMjAwNyAtMDYwMAoKICAgIEFkZCBhZGRpdGlvbmFsIGZkdCBmaXh1cCBoZWxwZXIgZnVuY3Rpb25zCgogICAgQWRkZWQgdGhlIGZvbGxvd2luZyBmZHQgZml4dXAgaGVscGVyczoKICAgICAqIGRvX2ZpeHVwX2J5X3Byb3B7X3UzMn0gLSBGaW5kIG1hdGNoaW5nIG5vZGVzIGJ5IHByb3BlcnR5IG5hbWUvdmFsdWUKICAgICAqIGRvX2ZpeHVwX2J5X2NvbXBhdHtfdTMyfSAtIEZpbmQgbWF0Y2hpbmcgbm9kZXMgYnkgY29tcGF0CgogICAgVGhlIF91MzIgdmFyaWFudHMgd29yayB0aGUgc2FtZSBvbmx5IHRoZSBwcm9wZXJ0eSB0aGV5IGFyZSBzZXR0aW5nCiAgICBpcyBrbm93IHRvIGJlIGEgMzItYml0IGludGVnZXIgaW5zdGVhZCBvZiBhIGJ5dGUgYnVmZmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWI1NDQ2MzNhYmRkMTRmNGRkNWQ5MmU1MDBiNzNlYjU5ZWY1N2U2NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTE6MTE6MDMgMjAwNyAtMDYwMAoKICAgIEFkZCBmZHRfZml4dXBfZXRoZXJuZXQgaGVscGVyIHRvIHNldCBtYWMgYWRkcmVzc2VzCgogICAgQWRkZWQgYSBmaXh1cCBoZWxwZXIgdGhhdCB1c2VzIGFsaWFzZXMgdG8gc2V0IG1hYyBhZGRyZXNzZXMKICAgIGluIHRoZSBkZXZpY2UgdHJlZSBiYXNlZCBvbiB0aGUgYmRfdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZGJhZjA3Y2U2MjBhYWIyNDllMzUwMmIyMGE5ODYyMzRhNmFmMWQzYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTQ6MDc6NDYgMjAwNyAtMDYwMAoKICAgIEZpeCB3YXJuaW5ncyBmcm9tIGltcG9ydCBvZiBsaWJmZHQKCiAgICBjbWRfZmR0LmM6IEluIGZ1bmN0aW9uIGZkdF9wcmludDoKICAgIGNtZF9mZHQuYzo1ODY6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MTM6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MzU6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MzY6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDhkMDRmMDJmNjIyNGU2OTgzZjQ4MTJlYTRkYTcwNDk1MGVjODUzOWMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgT2N0IDI0IDExOjA0OjIyIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgbGliZmR0IGZyb20gZGV2aWNlIHRyZWUgY29tcGlsZXIgKGR0YykKCiAgICBVcGRhdGUgbGliZmR0IHRvIGNvbW1pdCA4ZWFmNWUzNTgzNjYwMTdhYTJlODQ2YzUwMzhkMWFhMTk5NTgzMTRlIGZyb20KICAgIHRoZSBkZXZpY2UgdHJlZSBjb21waWxlciAoZHRjKSBwcm9qZWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTkzYmVjZjgwZDczMmI2NGFlZjgxYjIzZThiNmVjZTAyYzQwNTMzZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVNhdCBOb3YgMyAxOTo0NjoyOCAyMDA3IC0wNTAwCgogICAgTW92ZSBkb19maXh1cCogZm9yIGxpYmZkdCBpbnRvIGNvbW1vbiBjb2RlCgogICAgTW92ZWQgdGhlIGdlbmVyaWMgZml4dXAgaGFuZGxpbmcgY29kZSBvdXQgb2YgY3B1L21wYzV4eHggYW5kIGNwdS9tcGM4MjYwCiAgICBpbnRvIGNvbW1vbi9mZHRfc3VwcG9ydC5jIGFuZCByZW5hbWVkOgoKICAgIGRvX2ZpeHVwKCkJLT4gZG9fZml4dXBfYnlfcGF0aCgpCiAgICBkb19maXh1cF91MzIoKQktPiBkb19maXh1cF9ieV9wYXRoX3UzMigpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNzM4YjRhNzU5OThmNDJhNzQwOGRlZmFkYzliYWFjN2EzMWM5MmRiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAyNSAxNjoxNTowNyAyMDA3IC0wNTAwCgogICAgTWFrZSBubyBvcHRpb25zIHRvIGZkdCBwcmludCBkZWZhdWx0IHRvICcvJwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTNjMjkzM2UwMjUwM2ZlMzZhZGUyYzFiNjVhZjQ2ZjJiN2ExNjhlNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBPY3QgMjQgMTA6MjE6NTcgMjAwNyAtMDUwMAoKICAgIFJlbW92ZWQgc29tZSBub251c2VkIGZkdCBmdW5jdGlvbnMgYW5kIG1vdmVkIGZkdF9maW5kX2FuZF9zZXRwcm9wIG91dCBvZiBsaWJmZHQKCiAgICBSZW1vdmVkOgoJZmR0X25vZGVfaXNfY29tcGF0aWJsZQoJZmR0X2ZpbmRfbm9kZV9ieV90eXBlCglmZHRfZmluZF9jb21wYXRpYmxlX25vZGUKCiAgICBUbyBlYXNlIG1lcmdlIG9mIG5ld2VyIGxpYmZkdCBhcyB3ZSBhcmVuJ3QgdXNpbmcgdGhlbSBhbnl3aGVyZSBhdCB0aGlzIHRpbWUuCgogICAgQWxzbyBtb3ZlZCBmZHRfZmluZF9hbmRfc2V0cHJvcCBvdXQgb2YgbGliZmR0IGludG8gZmR0X3N1cHBvcnQuYyBmb3IgdGhlIHNhbWUKICAgIHJlYXNvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDk4ZTI4NjdjYzg1NDA5YjkxOWY4NjJlNmMxNjAyNjQ2MWVjOTU1ZGYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVdlZCBOb3YgMjEgMDk6MTk6MzcgMjAwNyAtMDcwMAoKICAgIFtCVUlMRF0gUmVtb3ZlIGxpYnJhcmllcyB3aGVuIHVwZGF0aW5nIGF1dG9jb25mLm1rCgogICAgRml4IGxpYnJhcnkgcHJvYmxlbXMgY2F1c2VkIGJ5IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiAgVXNpbmcKICAgIGF1dG9jb25mLm1rIHRvIGRlY2lkZSB3aGljaCBmaWxlcyB0byBjb21waWxlIGhhcyBjYXVzZWQgYSBwcm9ibGVtIHdoZW4KICAgIGNoYW5naW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBvbmUgYm9hcmQgdG8gYW5vdGhlciB3aXRob3V0IGNsZWFyaW5nIG91dAogICAgdGhlIGxpYnJhcnkgKCouYSkgZmlsZXMuCgogICAgSXQgdXNlZCB0byBiZSB0aGF0IHRoZSBsaW5rZXIgd2FzIGFsd2F5cyBwYXNzZWQgdGhlIHNhbWUgbGlzdCBvZiAubwogICAgZmlsZXMgd2hlbiBidWlsZGluZyB0aGUgLmEgZmlsZXMuICBIb3dldmVyLCB0aGF0IGlzIG5vdCBsb25nZXIgdHJ1ZQogICAgd2l0aCBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gIE5vdywgYSBkaWZmZXJlbnQgYm9hcmQgY29uZmlnIHdpbGwgaGF2ZQogICAgYSBkaWZmZXJlbnQgZmlsZSBsaXN0IHBhc3NlZCB0byB0aGUgbGlua2VyLiAgVGhlIHByb2JsZW0gb2NjdXJzIHdoZW4KICAgIGEgbGlicmFyeSBoYXMgYWxyZWFkeSBiZWVuIGJ1aWx0IGFuZCB0aGUgYm9hcmQgY29uZmlnIGlzIGNoYW5nZWQuCgogICAgU2luY2UgdGhlIGxpbmtlciB3aWxsIHVwZGF0ZSBpbnN0ZWFkIG9mIHJlcGxhY2UgYSBwcmVleGlzdGluZyBsaWJyYXJ5LAogICAgdGhlbiBpZiB0aGUgZmlsZSBsaXN0IGNoYW5nZXMgdG8gcmVtb3ZlIHNvbWUgb2JqZWN0IGZpbGVzIHRoZSBvbGQKICAgIG9iamVjdHMgd2lsbCBzdGlsbCBleGlzdCBpbiB0aGUgbGlicmFyeS4KCiAgICBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIGFsbCBvbGQgbGlicmFyeSBmaWxlcyB3aGVuIGF1dG9jb25mLm1rIGlzCiAgICBtYWRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlZDEzNTNkNzRiOWNlOGE3ZmNkNjYwNTcwYjg0OGExODRkNjE0YjVmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyMSAwODo0OTo1MCAyMDA3IC0wNjAwCgogICAgW0JVSUxEXSBjb25kaXRpb25hbGx5IGNvbXBpbGUgbGliZmR0LyouYyBpbiBsaWJmZHQvTWFrZWZpbGUKCiAgICBNb2RpZnkgbGliZmR0L01ha2VmaWxlIHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSB0aGUgKi5jIGZpbGVzIGJhc2VkCiAgICBvbiB0aGUgYm9hcmQgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNGE0MzcxOWE3NzM4NzEyODExZDgyMmNhODEyNTQyN2IyN2E1NWNkYwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgW0JVSUxEXSBjb25kaXRpb25hbGx5IGNvbXBpbGUgY29tbW9uL2NtZF8qLmMgaW4gY29tbW9uL01ha2VmaWxlCgogICAgTW9kaWZ5IGNvbW1vbi9NYWtlZmlsZSB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgdGhlIGNtZF8qLmMgZmlsZXMgYmFzZWQKICAgIG9uIHRoZSBib2FyZCBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDJmMTU1ZjZjMGExZjVlOWEzMDZhM2YxZjRmYmUwNjdkYjdjZWQzYjEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIFtCVUlMRF0gR2VuZXJhdGUgaW5jbHVkZS9hdXRvY29uZi5tayBmcm9tIGJvYXJkIGNvbmZpZyBmaWxlcwoKICAgIFVzZSBjcHAgYW5kIHNlZCB0byBwb3N0cHJvY2VzcyBjb25maWcuaCBhbmQgaW1wb3J0IHRoZSBkZWZpbmVkIHZhbHVlcwogICAgaW50byBpbmNsdWRlL2F1dG9jb25mLm1rLiAgYXV0b2NvbmYubWsgaXMgdGhlbiBpbmNsdWRlZCBieSBjb25maWcubWsgdG8KICAgIGdpdmUgJ21ha2UnIGFjY2VzcyB0byB0aGUgYm9hcmQgY29uZmlndXJhdGlvbi4KCiAgICBEb2luZyB0aGlzIGVuYWJsZXMgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYXQgdGhlIE1ha2VmaWxlIGxldmVsIGluc3RlYWQKICAgIG9mIGJ5IHdyYXBwaW5nIGV2ZXJ5IC5jIGZpbGUgd2l0aCAjaWZkZWYvI2VuZGlmIHdyYXBwZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2OGI4ODk5OWRhODdhYjg4ZTcxZTEzMDYxOTI5MDViZTM0NTAxOThlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAxNTowMjoyNiAyMDA3IC0wNjAwCgogICAgODYxMEhQQ0Q6IEVuYWJsZSB0aGUgODYxMCBEaXNwbGF5IEludGVyZmFjZSBVbml0CgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NGY4OWZhYTlkMWU3N2VkOTQ3ZTYyOGQzZWZmYWE1MTNmZTA1ZDA1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAxNTowMDo1MyAyMDA3IC0wNjAwCgogICAgTW92ZSA4NjEwIERJVSBpbnRlcmZhY2Ugc3RydWN0dXJlIGRlZmluaXRpb25zIHRvIGhlYWRlciBmaWxlLgoKICAgIFRoZXNlIHR3byBzdHJ1Y3R1cmVzIGFyZSBzdGlsbCBuZWVkZWQgZHVyaW5nIHRoZQogICAgaW5pdGlhbGl6YXRpb24gYW5kIHNldHVwIG9mIHRoZSBESVUgaGFyZHdhcmUuCiAgICBTbyBtb3ZlIHRoZW0gdG8gdGhlIGZzbF9kaXVfZmIuaCBmaWxlIGZvciBub3cuCiAgICBPZmZpY2lhbCAiYmxhaCIuCgogICAgTm90aWNlZC1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDgwYzY0NmRiZjQ3NGExMDljM2Y4NTcxOGZiMDFjZTA0MmEzOGM0NQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMjAgMjA6MTQ6MTggMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvaTJjIDogbW92ZSBpMmMgZHJpdmVycyB0byBkcml2ZXJzL2kyYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOWEzMzdkZGMxNTRhMTBhMjZmMTE3ZmQxNDdiMDA5YWJjZGViYTc1YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMTkgMjI6MjA6MjQgMjAwNyArMDEwMAoKICAgIFByZXBhcmUgZm9yIDEuMy4wIHJlbGVhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmMzBhZDQ5YjE2YmY5OThiMDNjMWE1MjI4YjZjODYzNjlkNjFjMjU4CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiAxOSAxMDowMjoxMyAyMDA3IC0wNTAwCgogICAgTW92ZSBDT05GSUdfUUUgb3V0IG9mIENPTkZJR19QQ0kgd3JhcCBmb3IgTVBDODU2OE1EUwoKICAgIENPTkZJR19RRSBzaG91bGRuJ3QgYmUgaW4gdGhlIHdyYXAgb2YgQ09ORklHX1BDSSwgZml4IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjhjMzIwNjA5MzY2MTc2YjMxMTA0ZDliZjVlMjk1MjMyZTFjN2YxZApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJTW9uIE5vdiAxOSAxMToxNDoxNiAyMDA3ICswOTAwCgogICAgW01JUFNdIGJvYXJkL2d0aDIvbG93bGV2ZWxfaW5pdC5TOiBGaXggYSBidWlsZCB3YXJuaW5nCgogICAgbG93bGV2ZWxfaW5pdC5TOiBBc3NlbWJsZXIgbWVzc2FnZXM6CiAgICBsb3dsZXZlbF9pbml0LlM6NDEzOiBXYXJuaW5nOiBQcmV0ZW5kaW5nIGdsb2JhbCBzeW1ib2wgdXNlZCBhcyBicmFuY2ggdGFyZ2V0IGlzIGxvY2FsLgoKICAgIExvb2tpbmcgYXQgY29kZXMsIHRoZSBgbWVtdGVzdCcgYW5kIGBjbGVhcm1lbScgYXJlIGludGVudGlvbmFsIG1peGVkCiAgICB1c2Ugb2YgYGdsb2JhbCBzeW1ib2xzJyBhbmQgYGxhYmVsJyBmb3IgZGVidWdnaW5nIHB1cnBvc2UuIFRvIG1ha2UgaXQKICAgIGJ1aWxkLCBqdXN0IGRpc2FibGUgZ2xvYmFsLXN5bWJvbHMtdXNlIGZvciBub3cuIEFzIGEgcmVzdWx0IGBtZW10ZXN0JwogICAgc3RpbGwgcmVtYWlucyBhcyB1bnVzZWQsIGJ1dCBsZWF2ZSBpdCBiZS4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCBlOGRhNThmMmJjMDkyODkxZThjYzkyYjkyN2VkNWM0YmQwY2IwY2FiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAxOSAxMjo1OToxNCAyMDA3ICswMTAwCgogICAgRml4IGJ1aWxkIHByb2JsZW1zIHdpdGggbXAydXNiIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2YmY0YzY4NmFmY2ExZTg2ZTFjMzg0ZDU5MjE4ZjkxNDYwNTcxM2JmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAxOCAxODozNjoxMSAyMDA3ICswMTAwCgogICAgczNjMjR4MDogRml4IHVzYl9vaGNpLmMgbWlzc2luZyBpbiBNYWtlZmlsZQogICAgYW5kIHVzYl9vaGNpLmMgd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjA3M2Y2MWUwNzhkYTVkZGI1MjFiNTYyNTZiY2MzNjUwODU4OTg4MwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMTggMTI6NTU6MDIgMjAwNyArMDEwMAoKICAgIHBiMXgwMCBib2FyZDogRml4IHUxNiBzdGF0dXMgZGVjbGFyYXRpb24gd2hlbiBQQ01DSUEgaXMgZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODQxMmQ4MTRjZThiZjU1NzBhMmI3NDdmMWU3ZmQzMjEwOTdmZTk4NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgMTggMTc6MTE6MDkgMjAwNyArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBmb3IgQVJNIHN5c3RlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0MDllY2RjMGJiNDdkZDI4YjBhZjZjMjVmZmQ2NThkMjJjYzM2YjM3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE5vdiAxOCAxNjozNjoyNyAyMDA3ICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGZvciBQUEMgc3lzdGVtcy4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY1MzgxMWEzYzJiMzU4NTZiZjEyZTE5NmRjYzhjNDY5NGUyOGU0MjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgMTggMTQ6NDQ6NDQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ29ycmVjdCA0MDVFWCBQQ0llIFVUTCByZWdpc3RlciBtYXBwaW5nCgogICAgTWFwIDRrIG1lbSBzcGFjZSBmb3IgVVRMIHJlZ2lzdGVycyBmb3IgZWFjaCBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNzljMmM0ZmE3MWMwZDFlYmVmMzk0NTA4ZGY5MDg4ZGY4YTMwOGQzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAxNyAxMTozMToxMCAyMDA3ICswMTAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gbmV0L25ldC5jIGFuZCBuZXQvbmZzLmMKCmNvbW1pdCA3ZTE0ZmM2NTM2OGNiZDI4NjFiMTIwNzQ1M2RhNTVhNGZjN2IzZjgxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDo0Mjo0NSAyMDA3ICswOTAwCgogICAgZ3RoMi5jOiBGaXggYSB3YXJuaW5nIG9uIGd0aDIgYnVpbGQuCgogICAgZ3RoMi5jOiBJbiBmdW5jdGlvbiAnbWlzY19pbml0X3InOgogICAgZ3RoMi5jOjQzNDogd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnc2V0ZW52JyBkaWZmZXIgaW4gc2lnbmVkbmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMjMwOWMxMzBhYTRjODRiOTFiZDg3NGE0MTI2OWM5MjNlYjYxYjU1NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAwNzo1ODoyNSAyMDA3ICswMTAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gY29tbW9uL2NtZF9zY3NpLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWVhNjFiNTc5Njg1NTRlYWYwZjQ3NGVjN2UwODhiMTdkMzY3ZjQ3NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAxNDo1MjoyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBLaWxhdWVhIGNvbmZpZyBmaWxlCgogICAgLSBVc2UgZ2VuZXJpYyBHUElPIGNvbmZpZ3VyYXRpb24gZnJhbWV3b3JrIChDRkdfNHh4X0dQSU9fVEFCTEUpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdlMWQ4ODRiN2NiNjAyMDA3MzI5YzUxN2VjMWM0NTNlM2E2YTVkOWMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgTm92IDE3IDIwOjA1OjI2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY29uZmlnLm1rOiBGaXggR05VIGFzc2VtYmxlciBtaW5vciB2ZXJzaW9uIHBpY2tlcgoKICAgIEN1cnJlbnQgdHJpY2sgdG8gcGljayB1cCBHTlUgYXNzZW1ibGVyIG1pbm9yIHZlcnNpb24gZG9lcyBub3Qgd29yayB3aXRoIHRoZQogICAgbGF0ZXN0IGJpbnV0aWxzICgyMDA3LTAzLTAxIG9yIGxhdGVyKSBkdWUgdG8gJHtQS0dWRVJTSU9OfSBub3cgZGVmYXVsdCB0bwogICAgIihHTlUgQmludXRpbHMpICIuCgogICAgICAkIHNkZS1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiCiAgICAgIEdOVSBhc3NlbWJsZXIgMi4xNS45NCBtaXBzc2RlLTYuMDIuMDItMjAwNTA2MDIKICAgICAgJCBzZGUtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JwogICAgICAyLjE1Ljk0CiAgICAgICQgc2RlLWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIgfGF3ayAne3ByaW50ICQzfScgfGF3ayAtRi4gJ3twcmludCAkMn0nCiAgICAgIDE1CiAgICAgICQKCiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiCiAgICAgIEdOVSBhc3NlbWJsZXIgKEdOVSBCaW51dGlscykgMi4xOAogICAgICAkIG1pcHMtbGludXgtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JwogICAgICAoR05VCiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiIHxhd2sgJ3twcmludCAkM30nIHxhd2sgLUYuICd7cHJpbnQgJDJ9JwogICAgICAobm8gb3V0cHV0KQogICAgICAkCgogICAgQXMgYSByZXN1bHQgb2YgYWJvdmUsIHlvdSdsbCBzZWUgbWFueSBub2lzZXMgd2l0aCBzdWNoIGJpbnV0aWxzOgoKICAgICAgbWFrZSAtQyBjcHUvbWlwcy8KICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICAvYmluL3NoOiBsaW5lIDA6IFs6IDogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkCiAgICAgIG1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSBgL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9jcHUvbWlwcycKICAgICAgbWlwcy1saW51eC1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtYyAtbyBpbmNhaXBfd2R0Lm8gaW5jYWlwX3dkdC5TCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKICAgICAgbWlwcy1saW51eC1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtYyAtbyBjYWNoZS5vIGNhY2hlLlMKICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICBtaXBzLWxpbnV4LWdjYyAtZyAgLU9zICAgLURfX0tFUk5FTF9fIC1EVEVYVF9CQVNFPTB4QjAwMDAwMDAgIC1JL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9pbmNsdWRlIC1mbm8tYnVpbHRpbiAtZmZyZWVzdGFuZGluZyAtbm9zdGRpbmMgLWlzeXN0ZW0gL2hvbWUvc2t1cmliYXkvZGV2ZWwvYnVpbGRyb290L2J1aWxkX21pcHMvc3RhZ2luZ19kaXIvdXNyL2Jpbi8uLi9saWIvZ2NjL21pcHMtbGludXgtdWNsaWJjLzQuMi4xL2luY2x1ZGUgLXBpcGUgIC1EQ09ORklHX01JUFMgLURfX01JUFNfXyAtRyAwIC1tYWJpY2FsbHMgLWZwaWMgLXBpcGUgLW1zb2Z0LWZsb2F0IC1tYXJjaD00a2MgLW10dW5lPTRrYyAtRUIgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtYyAtbyBhc2Nfc2VyaWFsLm8gYXNjX3NlcmlhbC5jCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKCiAgICBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgdGhlIHRyaWNrIGFuZCBtYWtlcyBpdCB3b3JrIHdpdGggYm90aCB2ZXJzaW9ucyBvZiBnYXMuCiAgICBJIGFsc28gcmVwbGFjZSBhbiBleHBlbnNpdmUgYGF3ayAob3IgZ2F3ayknIHdpdGggYGN1dCcuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxNjY2NGY3Mjg1MDg0NmU2NDU2MTZkYTFjMGZhNWFmY2Q2ZDE1ZjE1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyNiAyMDA3ICswOTAwCgogICAgW01JUFNdIFJlbW92ZSB1c2VsZXNzIGluc3RydWN0aW9ucyBmb3IgaW5pdGlhbGl6aW5nICRncC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDAzYzAzMWQ1NjYwZWE5NDZjMzlhZjZlMmUxNjI2N2RhODU3YzYwOWYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjI3OjA2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gTUlQUyA0SyBjb3JlOiBDb2Rpbmcgc3R5bGUgY2xlYW51cHMKCiAgICBObyBsb2dpY2FsIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmNWU0MjlkMzg2MGJiYTRjNmFlOGJlYWQ4Zjc4MzQ5ZmEyNDQ5MWIyCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyMCAyMDA3ICswOTAwCgogICAgW01JUFNdIGd0aDIuYzogRml4IGEgd2FybmluZyBvbiBndGgyIGJ1aWxkLgoKICAgIGd0aDIuYzogSW4gZnVuY3Rpb24gJ21pc2NfaW5pdF9yJzoKICAgIGd0aDIuYzo0MzQ6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3NldGVudicgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDRmYmQwNzQxYjJiNjQ0MWRhMTBiZTkzZTEwMjY3MTIyNTgxYjcwNzkKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjIyOjMzIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gYXUxeDAwX2V0aC5jOiBGaXhlZCBhIHdhcm5pbmcgb24gcGIxMDAwIGJ1aWxkLgoKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9taWlwaHlfd3JpdGUnOgogICAgYXUxeDAwX2V0aC5jOjEzOTogd2FybmluZzogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmMDEzMjA0NTk3MzZmMTU2NzA3NDI1Y2Y4MTEyZjk4NjA2MzAxYWE0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNSAyMDA3ICswOTAwCgogICAgW01JUFNdIGF1MXgwMF9ldGguYzogRml4IGF1MXgwMF9taWlwaHlfe3JlYWQsd3JpdGV9IGJ1aWxkIGVycm9yCgogICAgYXUxeDAwX2V0aC5jOiBJbiBmdW5jdGlvbiAnYXUxeDAwX2VuZXRfaW5pdGlhbGl6ZSc6CiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogJ2F1MXgwMF9taWlwaHlfcmVhZCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6ICdhdTF4MDBfbWlpcGh5X3dyaXRlJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9taWlwaHlfd3JpdGUnOgogICAgYXUxeDAwX2V0aC5jOjI5ODogd2FybmluZzogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCiAgICBtYWtlWzFdOiAqKiogW2F1MXgwMF9ldGgub10gRXJyb3IgMQoKICAgIEZpeGVkIGJ5IG1vdmluZyB0aGVzZSB0d28gZnVuY3Rpb25zIGZvcndhcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBiMDkyNThjNTM5M2VkZDEwODdjNWYzOWFlNjgzMzhmMTZiNDlmOGIzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNSAyMDA3ICswOTAwCgogICAgTUFLRUFMTDogQWRkZWQgbWlzc2luZyBwYjEwMDAgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDJlNGE2ZTM2NjdhMWUzOWMwZTZlOTk0OTg2ODZiMTVkMjcxOGIzNjkKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI0IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gcGIxMDAwOiBSZXBsYWNlIG9ic29sZXRlIG1lbXNldHVwLlMgd2l0aCBsb3dsZXZlbF9pbml0LlMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDY2MmU1Y2IzOTcyNDljM2VhODhhNGMzMjU1ZTljY2ZjNDBiOThkODIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI0IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogQ2xlYW51cCBfX3VfYm9vdF9jbWRfe3N0YXJ0LGVuZH0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDU5NDdmNjk5OWFhZmE3YzU0YzEzOTA5ODNkMjY0YTg0NjNkZmVhOGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDAyOjM0OjM4IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9JRywgcHJlcGFyZSBmb3IgLXJjNAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQzMjllNmYwNWJiZGZlNmJkNzFiMGUwOWYwYzc2ZDNiMGEwMjVhNQpBdXRob3I6IEx1b3RhbyBGdSA8bC5mdUBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE5vdiAxNCAxODo1ODozMyAyMDA3ICswMTAwCgogICAgRml4IHRoZSBpMmMgZnJlcXVlbmN5IGFuZCBkZWZhdWx0IGFkZHJlc3MgaW4gcnNkcHJvdG8gYm9hcmQKCiAgICByc2Rwcm90byBib2FyZCBzdXBwb3J0IGhhcyB3cm9uZyBJMkMgZnJlcXVlbmN5IGFuZCB3cm9uZyByZXR1cm4gdmFsdWUKICAgIGhhbmRsaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEx1b3RhbyBGdSA8bC5mdUBwZW5ndXRyb25peC5kZT4KCmNvbW1pdCA0MjljMTgwZWRhZDAzOGY5MWM5ODljYjE0YjQ3ODIyODA5MmU3MDU0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAwMTo0NTozOCAyMDA3ICswMTAwCgogICAgcG93ZXJwYzogQmFja291dCByZWxvY2F0aW9uIGNoYW5nZXMgZm9yIE1QQzUxMjEsIHRvby4KCiAgICBBcHBseSBHcmFudCBMaWtlbHkncyBiYWNrb3V0IHRvIE1QQzUxMjEgY29kZSwgdG9vLgoKICAgIFBvaW50ZWQgb3V0IGJ5IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYzNkZDQzMzM4YTA3NzE2NWU3ZTAzMDljYjM5OTRlNjVkMmJkYmY4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgTm92IDEzIDIyOjE4OjMzIDIwMDcgLTA3MDAKCiAgICBwb3dlcnBjOiBCYWNrb3V0IHJlbG9jYXRpb24gY2hhbmdlcy4KCiAgICBVZ2guICBJICpoYXRlKiB0byBiYWNrIHRoaXMgY2hhbmdlIG91dCwgYnV0IHRoZXNlIGNvbXBpbGVyIGZsYWdzIGRvbid0CiAgICB3b3JrIGZvciByZWxvY2F0aW9uIG9uIGFsbCB2ZXJzaW9ucyBvZiBHQ0MuICBJJ3ZlIG5vdCBiZWVuIGFibGUgdG8KICAgIHJlcHJvZHVjZSB0aGUgZW52aXJvbm1lbnQgaW4gbXkgc2V0dXAgKGFuZCBoZW5jZSwgbm90IGJlZW4gYWJsZSB0bwogICAgZmluZCBhIGNvbWJpbmF0aW9uIHRoYXQgKmRvZXMqIHdvcmspLCBzbyBJJ3ZlIGdvdCBubyBjaG9pY2UgYnV0IHRvIGdvCiAgICBiYWNrIHRvIHRoZSBvbGQgZ2NjIGZsYWdzIGFuZCBsaW5rZXIgc2NyaXB0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1YzE1MDEwZWZhZDk4MGFkNTQ5OGNjNTY1ZmMxZWQ3MGRmMmY1MmI0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAxMyAwOToxMTowNSAyMDA3ICswMTAwCgogICAgRml4ZWQgbWlwc19pb19wb3J0X2Jhc2UgYnVpbGQgZXJyb3JzLgoKICAgIFRoaXMgcGF0Y2ggaGFzIGJlZW4gc2VudCBvbjoKICAgIC0gMjkgU2VwIDIwMDcKCiAgICBBbHRob3VnaCBtaXBzX2lvX3BvcnRfYmFzZSBpcyBjdXJyZW50bHkgYSBwYXJ0IG9mIElERSBjb21tYW5kLCBpdCBpcyBxdWl0ZQogICAgZnVuZGFtZW50YWwgZm9yIE1JUFMgSS9PIHBvcnQgYWNjZXNzIHN1Y2ggYXMgaW5bYndsXSBhbmQgb3V0W2J3bF0uIFNvIG1vdmUKICAgIGl0IHRvIE1JUFMgZ2VuZXJhbCBwYXJ0LCBhbmQgaW50cm9kdWNlIGBzZXRfaW9fcG9ydF9iYXNlKCknIGZyb20gTGludXguCgogICAgVGhpcyBwYXRjaCBpcyB0cmlnZ2VyZWQgYnkgbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWlwc19pb19wb3J0X2Jhc2UnIGJ1aWxkCiAgICBlcnJvciBvbiBndGgyIChhbmQgdGIwMjI5IGFsc28gbmVlZHMgdGhpcyBmaXguKQoKICAgIGJvYXJkL2d0aDIvbGliZ3RoMi5hKGd0aDIubyk6IEluIGZ1bmN0aW9uIGBsb2dfc2VyaWFsX2NoYXInOgogICAgL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9ib2FyZC9ndGgyL2d0aDIuYzo0NzogbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWlwc19pb19wb3J0X2Jhc2UnCiAgICBjb21tb24vbGliY29tbW9uLmEoY21kX2lkZS5vKTovaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2NvbW1vbi9jbWRfaWRlLmM6NzEyOiBmaXJzdCBkZWZpbmVkIGhlcmUKICAgIG1ha2U6ICoqKiBbdS1ib290XSBFcnJvciAxCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmVjYmI3YTNmYTliMDk0MGVkMzNlNDkwZDE5NWQ0YjY4MzBiMjQyMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDE6MzA6NDAgMjAwNyArMDEwMAoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgc2xhdmUgc2VyaWFsIHByb2dyYW1taW5nIG1vZGUgZm9yIHRoZSBYaWxpbngKICAgIFNwYXJ0YW4yLzMgRlBHQXMuIFRoZSBvbGQgY29kZSB1c2VkICI8IDAiIG9uIGEgImNoYXIiIHR5cGUgdG8gdGVzdCBpZgogICAgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHdhcyBzZXQsIHdoaWNoIGRpZCBub3Qgd29yayBvbiBhbnkKICAgIGFyY2hpdGVjdHVyZSB3aGVyZSAiY2hhciIgZGVmYXVsdGVkIHRvIGJlIGFuIHVuc2lnbmVkIHR5cGUuCgogICAgQmFzZWQgb24gYSBwYXRjaCBieSBBbmdlbG9zIE1hbm91c2FyaWRpcyA8YW1hbm91c0BpbmFjY2Vzc25ldHdvcmtzLmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQwOGI3MjMzYmMyNTJmYWFkODMzOWU3Y2EwZGRmZDYyZmE3OTkwM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDEgMTI6MjM6MjkgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBicm9rZW4gdmFyaWFibGUgcmVmZXJlbmNlIHdoZW4gI2RlZiBERUJVR2luZy4KCiAgICBTb21ldGltZXMgeW91IGNhbid0IHJlZmVyZW5jZSB0aGUgRERSMiBjb250cm9sbGVyIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY5ZDkxNjRkOWM2YjVhN2YwMzkzZmQ4ZDdlMjQ2YjhhMDMyNmJjMTkKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI2IDE4OjMyOjAwIDIwMDcgKzA4MDAKCiAgICBtYWtlIDg2MTAgYm9hcmQgdXNlIHBpeGlzIHJlc2V0CgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYjc0YjNjMWM5NDgxYTZiZmZiZjhjZDQ0NWU1YmNiZjY5MDhlODM2CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxOToyNjoyMSAyMDA3ICswODAwCgogICAgVW5pZnkgcGl4aXNfcmVzZXQgYWx0YmFuayBhY3Jvc3MgYm9hcmQgZmFtaWxpZXMKCiAgICBCYXNpY2FsbHksIHJlZmFjdG9yIHRoZSBDRkdfUElYSVNfVkJPT1RfTUFTSyB2YWx1ZXMKICAgIGludG8gdGhlIHNlcGFyYXRlIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NGJmNTU1NDY1Yzc5MjZiZTEzZTEwNDZhYzBkMGYwNWFjNzI4MjljCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE5vdiA3IDA4OjE5OjIxIDIwMDcgKzAxMDAKCiAgICBGaXggd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdhNjBlZTdjNjI0OGE5NThjNTc1N2QzNjYwYTE3MDI3MjNhMjc4NmQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTm92IDcgMDg6MTk6MTkgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNvbW1vbi9jbWRfaWRlLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGYzMWQzOGI5ZWVhOWIzMmY2YTFhYzg0OGEyOThjYzcxY2E0YzlhMDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgMTYgMTQ6MTY6NTQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIDQwNUVYIFBDSWUgVVRMIHJlZ2lzdGVyIGNvbmZpZ3VyYXRpb24KCiAgICBUaWxsIG5vdyB0aGUgVVRMIHJlZ2lzdGVycyBvbiA0MDVFWCB3ZXJlIG5vdCBpbml0aWFsaXplZCBidXQgbGVmdCB3aXRoCiAgICB0aGVpciBkZWZhdWx0IHZhbHVlcy4gVGhpcyBwYXRjaCBuZXcgaW5pdGlhbGl6ZXMgc29tZSBvZiB0aGUgVVRMCiAgICByZWdpc3RlcnMgb24gNDA1RVguCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVjZGNiZDRmOGMxZjhjZWZkNzg1NzUyZjRlNzUzNmFhZTJhNGVjZjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgMTYgMTQ6MDA6NTkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgTWFrYWx1IGZvciBib2FyZCByZXYgMS4xCgogICAgVGhpcyBwYXRjaCBhZGRzIGNoYW5nZXMgbmVlZGVkIGZvciBNYWthbHUgcmV2IDEuMToKCiAgICAtIEVuYWJsZSAybmQgRERSMiBiYW5rIHJlc3VsdGluZyBpbiAyNTZNQnl0ZSBvZiBTRFJBTQogICAgLSBFbmFibGUgMm5kIGV0aGVybmV0IHBvcnQgRU1BQzEKICAgIC0gVXNlIGdlbmVyaWMgR1BJTyBjb25maWd1cmF0aW9uIGZyYW1ld29yayAoQ0ZHXzR4eF9HUElPX1RBQkxFKQogICAgLSBSZXNldCBQQ0llIHBvcnRzIHZpYSBHUElPIHVwb24gYm9vdHVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRkNGZhYWU2NWUxMTVlMzI3NDI1Y2Q1MTRjMWEzNTE0NmE4NTE2NmIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIEdyb3VwIFBDSSBhbmQgUENNQ0lBIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1Nzk4Zjg3ZGMxMGE0OTZkNzlkMzE3N2I5ZjVhNzY0ODg5ODdmZDM1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMxIDIwMDcgLTA2MDAKCiAgICBHcm91cCBibG9jay9mbGFzaCBkcml2ZXJzIGluIGRyaXZlcnMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZGY1OGM4MTU1MTcwMGYwNThiNDRjYWNmNTVhNzk5N2ZhNjNiZmUwYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgR3JvdXAgVVNCIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1ZGJiNmVkNjIyZTUzOWIwYzg0OTNlZjdlNTc4ZDNhNTMzMTgxZDI5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBHcm91cCBpMmMgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGVjMDBjNzZkZTBlNTk3MTI3MzkwNTk5OGQ2MmQ2YmIxMTkzMjQyMTgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEdyb3VwIGNvbnNvbGUgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDc1NGYyMzBhYTAxYjhjNzg5ZmMzMWY4MDEzYzI0ODc5NTQwNzMzMDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEdyb3VwIG5ldHdvcmsgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGYwMDM3YzU2YjBkMTJjZDQ2MjE1MTI0NjY3YjlmODNkNjBlZjkzOTEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEJ1aWxkOiBzcGxpdCBDT0JKUyB2YWx1ZSBpbnRvIG11bHRpcGxlIGxpbmVzCgogICAgVGhpcyBjaGFuZ2UgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGNvbmR0aXRpb25pYWwgY29tcGlsZSBzdXBwb3J0IGluIHRoZQogICAgYnVpbGQgc3lzdGVtLiAgQnkgc3BsaXRpbmcgdGhlbSBhbGwgaW50byBzZXBlcmF0ZSBsaW5lcyBub3csIHN1YnNlcXVlbnQKICAgIHBhdGNoZXMgdGhhdCBjaGFuZ2UgJ0NPQkpTLXkgKz0gJyBpbnRvICdDT0JKUy0kKENPTkZJR188YmxhaD4pICs9ICcgd2lsbAogICAgYmUgbGVzcyBpbnZhc2l2ZSBhbmQgZWFzaWVyIHRvIHJldmlldwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxYjRhYWZmZTRmYjJhNWU5NWQ5MTExYTVkOTRmZDFmODkyMTVkY2U0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBBZGQgLmdpdGlnbm9yZSBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1NTQxM2YzNWYwNTRhODJlNDAwNDJmMWRiY2Y1MDFjNmEwNTcxOWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6Mjc6NTIgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCByZWxvY2F0aW9uIGZpeHVwIGZvciBtcGM1eHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzNjQ5Y2Q5OWJhODE1YjY2MDE4Njg3MzU3NjU2MDJmMDBlZjM2OTJiLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGUxNTYzMzg4OGEwNThhYWNiMzFhNjJkMmNmMTI3OGUxZTRjMjM2YWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjQ6MzIgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBNUEM1eHh4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNmY3NTc2YjIwZWNmMGQwNDBjM2FjM2IwMzJiNWNiYzg2MGUzOGE5MC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxMzkzNjVmYmU1NjZkMGZjNjE5YTFlZDA0NDUyZWM1Mzg4ZjBjZWY4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIxOjA0IDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODIyMCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGE4NWRkMjU0YzA1NzdmY2ExMzYyN2M0NmU5M2ZjMmFkNGM0ZjFmMDAuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzA5MjIzNDIzNjllNWUzOWIyODZmZTIxZTc2OGEyMzljYTA3YTUxNApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDo1NyAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBmM2E1MmZlMDU5MjM5MzVkYjg2OTg1ZGFmOTQzOGUyZjcwYWMzOWFhLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk2Mjc5YWI0Y2FkNjBjYjU5NzJhYTkzNGZiZTQ4NDVhYzAyY2M3NWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6NTAgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjYwIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWFmNjFiMmY0YjgzOGEwNWY3OWJlMjc0ZjNlNWE2NmVkZDJkOWM5Ni4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5MjhmZTMzYjI0Y2RmMzgyYThkYzg2ODdmZWQyNGIxOTYxY2RiNWQ2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIwOjQzIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODN4eCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDA1NzAwNGY0YTQ4NjM1NTRkNTZjYzU2MjY4YmZhN2M3ZDk3MzhlMjcuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYzkzOTQ1ZThmOWUzMDA4NjBkMmJmNzNhMjU0OWNlNTc5NGY4YmQwMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDoyNSAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJbTVBDNTEyeF0gQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGQxNzk3OWQwMzU5NDkyYTgyMmEwYTQwOWQyNmUzYTM1NDliNGNkNC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBjOTY3MmY4MWYxYmRiNGU4ZGRmNjJhYTcyY2EwMjA2ZThiNzJhYTFjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTm92IDE1IDE0OjI1OjA5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFNtYWxsIEFNQ0MgS2lsYXVlYSBjbGVhbnVwCgogICAgUmVtb3ZlIG5vdCBuZWVkZWQgcGNpX3RhcmdldF9pbml0KCkgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFlZTc0N2YxOWI0NjBhMGU5ZGEyMGZmMjFlOTBmZGFhYzFjZWMzNTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMTUgMTQ6MjM6NTUgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIDQ0MCBHUElPIGluaXQgdGFibGUgQ0ZHXzQ0MF9HUElPX1RBQkxFIGZvciA0MDUgcGxhdGZvcm1zCgogICAgLSBSZW5hbWUgQ0ZHXzQ0MF9HUElPX1RBQkxFIHRvIENGR180eHhfR1BJT19UQUJMRQogICAgLSBDbGVhbnVwIG9mIHRoZSA0eHggR1BJTyBmdW5jdGlvbnMKICAgIC0gTW92ZSBzb21lIEdQSU8gZGVmaW5lcyBmcm9tIHRoZSBjcHUgaGVhZGVycyBwcGM0MDUuaC9wcGM0NDAuaCBpbnRvIGdwaW8uaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4YWRhMGViZjM4ZTQwNzNiZWVhMDMwOTE4OGIyNWQ4MmExMTJhMmFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTm92IDE1IDE0OjIwOjA4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFNQ0MgVGFpaHUgYm9hcmQgY29uZmlnIGZpbGUgY2xlYW51cAoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIEFNQ0MgVGFpaHUgYSBsaXR0bGUgbW9yZSBjb21wYXRpYmxlIHRvIHRoZSBvdGhlcgogICAgQU1DQyBldmFsIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWU3MWM1MWQ3NGM5NjNkMzE3NDA2MGMwNzhkY2FjZjEzYmRkMDJlZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBOb3YgMTUgMTM6Mzc6MjggMjAwNyArMDEwMAoKICAgIFtJTktBNHgwXSBORyBoYXJkd2FyZTogZmxhc2ggc3VwcG9ydAoKICAgIERpc2FibGVkIGFuZCByZW1vdmUgaW5rYTR4MCBjdXN0b20gZmxhc2ggZHJpdmVyLCB1c2UgQ0ZJIGZsYXNoCiAgICBkcml2ZXIgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDVmYjZkNzE5MWUyMDZjZGRlMGUyMzE0MGZkODExMWNhZWQ5M2E1OTUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTm92IDE1IDEzOjI5OjU1IDIwMDcgKzAxMDAKCiAgICBbSU5LQTR4MF0gTkcgaGFyZHdhcmU6IFNEUkFNIHN1cHBvcnQKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhyZWUgbmV3IEREUiBjaGlwcyB0aGF0IG1heSAgYmUgcHJlc2VudCBvbiBhIE5HCiAgICBJTktBNHgwIGhhcmR3YXJlOiBIWUIyNUQ1MTIxNjBCRi01LCBLNEg1MTE2MzhDLTdDQjMsIFQ0NlYzMk0xNkJOLTZJVC4KCiAgICBDbGVhbnVwIGJvYXJkL2lua2E0eDAvbXQ0OGxjMTZtMTZhMi03NS5oIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmMjNjYjM0YzM2N2JiMjc1ODVhNGZkYjhhNzUyNzczNzBlN2QwNTk2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAxMzoyNDo0MyAyMDA3ICswMTAwCgogICAgW0lOS0E0eDBdIE5HIGhhcmR3YXJlOiBwbGF0Zm9ybSBjb2RlIHVwZGF0ZQoKICAgIC0gQ2xlYW51cCBjb21waWxlIHdhcm5pbmdzLgogICAgLSBBZGQgbWlzc2luZyAnXDAnIGluIGRlZmF1bHQgZW52aXJvbm1lbnQuCiAgICAtIEluY3JlYXNlIENGR19NT05JVE9SX0xFTiB0byAyNTYgS2lCLgogICAgLSBBZGQgcmVxdWlyZWQgQ0ZHX1VTRV9QUENFTlYuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyYWU2NGY1MTM1ZTUxYmIxODc1Mzg4NGQxMjY1Yjk5ZTg5YjVhZWRkCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAwODo1ODowMCAyMDA3ICswMDAwCgogICAgUmVtb3ZlIHdhcm5pbmdzIHJlIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MKICAgIFJlbW92ZSB3YXJuaW5ncyByZSBvbmVuYW5kX3JlYWQoKSAmIHdyaXRlKCkKCmNvbW1pdCAyZGI5MTZlMTQ0MTBlM2VjMTczODUwOGM3YmY0ZGZlYjJiMjk5YWU3CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAwODo0NToxMyAyMDA3ICswMDAwCgogICAgQ29ycmVjdGlvbiBwYXRjaAoKY29tbWl0IDFkOGE0OWVjYTFjN2JkYzhkYjFjNDdhOTJmOTAxNGEyOWVhZDAzYWUKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTg6NTI6MjggMjAwNyArMDgwMAoKICAgIEVuYWJsZSBVTGkxNTc1IEV0aGVybmV0IHN1cHBvcnQgaW4gODYxMEhQQ0QgY29uZmlnCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTRmZDZjOTNjMjhhMGE0NTM1MmZmZjVkZDkyNjczNDAxZmY1NjNmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAxMyAwODoxODoyMCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBsd21vbjU6IENoYW5nZSBQSFkgcmVzZXQgc2VxdWVuY2UgZm9yIFBIWSBNRElPIGFkZHJlc3MgbGF0Y2hpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2QwYTQwNjZiNWE2YjY5OGU1ZmMxYjY2Y2ZlOTcwNTc3NGJiY2U5MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAxMyAwODowNjoxMSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggNDA1RVggUENJZSBVVExTRVQgcmVnaXN0ZXIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWNlNTUxNTFjODVkMDY4ZjcwMzE3YThkNjVjNjEwNThiODkxYWZiNApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDEzIDA3OjUwOjI5IDIwMDcgKzAxMDAKCiAgICBbVUMxMDFdIFNSQU0gbm93IHdpdGggMiBNQiB3b3JraW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDJkMTQ2ODQzNDExMDlhNjk2MTZlNGQ2MDE2Y2Q2MTQwMmQ1NTA4NmYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIE5vdiA5IDE1OjM3OjUzIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFVzZSBnZW5lcmljIHVzYi1vaGNpIGRyaXZlciBmb3Igc2VxdW9pYSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIHNlcXVvaWEgYm9hcmQgdXNlIHRoZSBnZW5lcmljIHVzYi1vaGNpIGRyaXZlcgogICAgaW5zdGVhZCBvZiBjcHUvcHBjNHh4L3VzYl9vaGNpLmMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWJlNjU5YWMwODY4ZGMzNjdjYWE5NTdjNWM3MjVlNDZiMDdmNmE1ZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgTm92IDkgMTU6Mzc6MjMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogTWFrZSBVU0Igd29ya2luZyB3aXRoIENPTkZJR180eHhfRENBQ0hFIGRlZmluZWQKCiAgICBUaGlzIHBhdGNoIGRpc2FibGVzIHRoZSA0NHggZC1jYWNoZSBvbiAndXNiIHN0YXJ0JyBhbmQKICAgIHJlZW5hYmxlcyBpdCBvbiAndXNiIHN0b3AnLiBUaGlzIHNob3VsZCBiZSBzZWVuIGFzIGEKICAgIHRlbXBvcmFyeSBmaXggdW50aWwgdGhlIGdlbmVyaWMgdXNiLW9oY2kgZHJpdmVyIGNhbgogICAgbGlmZSB3aXRoIGQtY2FjaGUgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYmRlMjE2OWQyYzQ4ZmNjOWZmMDM0ODk1MzRhNzhmZmIwYThhMGQ0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBOb3YgOSAxNTozNjo0NCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgcmVkdW5kYW50IGNvZGUgZnJvbSA0eHggbmV0d29yayBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSByZWR1bmRhbnQgY29kZSBhbmQgZGVjcmVtZW50cyB0aGUgZW5kCiAgICBhZGRyZXNzIG9mIGNhY2hlIGZsdXNoIGFuZCBpbnZhbGlkYXRlIGJ5IDEuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWNhOTg4MWFhZDhjNDEzYWMyYTgyODY4YTVlMzcxOTE3ODI1NDUwMgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBOb3YgOSAxNToyNDoyNiAyMDA3ICswMDAwCgogICAgQWRkIGFwb2xsb24gYm9hcmQgc3VwcG9ydAogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBiNTMzMTNkYmZjNzQ1MjVkODVmMWU3ZTAxMDJmOTAyZDVjODYzYmViCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTm92IDkgMTI6MTk6NTggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIEluOi9PdXQ6L0VycjogYm9vdCBvdXRwdXQgZm9yIEFNQ0MgS2lsYXVlYQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjN2Y2OWMzNDAyNzc5MzVhNmMxOWE5NTY0MjE4NTJkYTk0NGEzNjVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTm92IDkgMTI6MTg6NTQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogTWFrZSBvdXRwdXQgYSBsaXR0bGUgc2hvcnRlciBvbiBJMkMgYm9vdHJvbSBkZXRlY3Rpb24KCiAgICBNb3N0IDR4eCBQUEMgY2FwYWJsZSBvZiB1c2luZyBhbiBJMkMgYm9vdHJvbSBmb3IgYm9vdHN0cmFwIHNldHRpbmcKICAgIGFscmVhZHkgcHJpbnQgYSBsaW5lIHdpdGggdGhlIGluZm9ybWF0aW9uIHdoaWNoIEkyQyBib290cm9tIGlzCiAgICB1c2VkIGZvciBib290c3RyYXAgY29uZmlndXJhdGlvbi4gU28gd2UgZG9uJ3QgbmVlZCB0aGlzIGV4dHJhIGxpbmUKICAgIHdpdGggIkkyQyBib290IEVFUFJPTSBlbi0vZGlzLWFibGVkIi4KCiAgICBUaGlzIHBhdGNoIGFsc28gaGFzIGEgbGl0dGxlIGNvZGUgY2xlYW51cCBpbnRlZ3JhdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ZDczN2EyODE1MmVjMTI4NzNmODU0NGNjYTFmYjM5YTQ5ZTVlNjkzCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDggMTI6NTA6MTggMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IC0gUmVtb3ZlIHJlc2V0IHJlZ2lzdGVycyBmcm9tIENDTQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZDdjZGVhNzY5YTYwYjBhNmU0YzE4YmVmN2Y5ZDY0OGZkMTRiOGQ3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDggMTI6MzE6MTEgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IC0gQWRkIFJlc2V0IHN0cnVjdHVyZSB0byBpbW1hcF81MzI5LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDliMjZjZjAwZDc2ZDc1ZmRmN2ZkYzRiMTNlNGRkOTI5NzQzYmMyMQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA4IDEyOjE5OjAxIDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSAtIHJldmVydCBpbmNsdWRlL2FzbS1tNjhrL201MzI5LmggZmlsZSBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyNWEyNGI1ZTA2MmFkOTQ2Mjc0MjQ1MDhhZTgxNGY1MWRiZTFhMzQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNyAxODowMDo1NCAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjU0NDV4IC0gVXBkYXRlIGNvcnJlY3QgUkFNQkFSIGFuZCBtaXNzaW5nIGxpbmtlciBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNDhjN2MxNDgzNWYzNGQ1ZDkxMGI0NWU1NjAwMDUwZTU4Y2E2Y2FiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDcgMTc6NTY6MTUgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzJ4IC0gVXBkYXRlIGRvX3Jlc2V0KCkgdXNpbmcgY29yZSByZXNldAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkOTI0MGE1ZjgyN2ViM2I0NzZhNmJhMjkzOGQwMWYxYTllNzY4OGY0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDcgMTc6NTE6MDAgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBVcGRhdGUgY3B1IGZsYWcgZm9yIDQuMi14eCBjb21waWxlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNzBiYTU2MTE1YjRkYTYzYjQ2ZTk3NDI4N2ZhNDU1MGQ0MDIzMzg2CkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAzMSAxNDo1OTowNCAyMDA3IC0wNTAwCgogICAgODYxMDogQWRkIGNvbnNvbGUgZnJhbWUgYnVmZmVyIHN1cHBvcnQgdG8gRlNMIDg2MTAgRElVIGRyaXZlci4KCiAgICBBZGQgY2ZiIGNvbnNvbGUgc3VwcG9ydCB0byBGU0wgODYxMCBESVUgZHJpdmVyLgogICAgSW5zcGVjdCBib2FyZCB2ZXJzaW9uIGZyb20gUElYSVMgdG8gb2J0YWluIGNvcnJlY3QgcGl4ZWwgZm9ybWF0LgoKICAgIFVzZSAjZGVmaW5lIENPTkZJR19WSURFTyBpbiBjb25maWcgZmlsZSB0byBlbmFibGUgZmIgY29uc29sZS4KCiAgICBUbyBzd2l0Y2ggbW9uaXRvciwgc2V0IG1vbml0b3IgdmFyaWFibGUgdG8KICAgIDAgLSBEVkksIDEgLSBTaW5nbGUgbGluayBMVkRTLCAyIC0gRG91YmxlIGxpbmsgTFZEUwogICAgZm9sbG93ZWQgYnkgImRpdWZiIGluaXQiLgoKICAgIFByZXNlcnZlIGxvZ28gYml0bWFwIGF0IHRoZSB0b3Agb2YgdGhlIGZiIGNvbnNvbGUuCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTg3Nzg4MGM2OTQ5ZTk0OGJkNjNjZDZlYTRlMjE2NTczZDJmNTNkZApBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6NTg6MzkgMjAwNyAtMDUwMAoKICAgIDg2MTA6IEFkZCA4NjEwIERJVSBkaXNwbGF5IGRyaXZlcgoKICAgIDEyODB4MTAyNCBhbmQgMTAyNHg3NjggQCAzMiBicHAgYXJlIHN1cHBvcnRlZCBub3cuCiAgICBEVkksIFNpbmdsZS1saW5rIExWRFMsIERvdWJsZS1saW5rIExWRFMgYXJlIGFsbCBzdXBwb3J0ZWQuCgogICAgRW52aXJvbm1lbnRhbCB2YXJpYWJsZSAibW9uaXRvciIgaXMgdXNlZCB0byBzcGVjaWZ5IG1vbml0b3IgcG9ydC4KCiAgICBBIG5ldyBjb21tYW5kICJkaXVmYiIgaXMgaW50cm9kdWNlZCB0byByZWluaXRpYWxpemUgbW9uaXRvcgogICAgYW5kIGRpc3BsYXkgYSBCTVAgZmlsZSBpbiB0aGUgbWVtb3J5LiBTbyBmYXIsIDEtYml0LCA0LWJpdCwKICAgIDgtYml0IGFuZCAyNC1iaXQgQk1QIGZvcm1hdHMgYXJlIHN1cHBvcnRlZC4KCglkaXVmYiBpbml0CgkgICAgLSBpbml0aWFsaXplIHRoZSBkaXUgZHJpdmVyCglFbmFibGUgdGhlIHBvcnQgc3BlY2lmaWVkIGluIHRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlICJtb25pdG9yIgoKCWRpdWZiIGFkZHIKCSAgICAtIGRpc3BsYXkgYm1wIGZpbGUgaW4gbWVtb3J5LgoJVGhlIGJtcCBpbWFnZSBzaG91bGQgYmUgbm8gYmlnZ2VyIHRoYW4gdGhlIHJlc29sdXRpb24sIDEyODB4MTAyNAoJZm9yIERWSSBhbmQgZG91YmxlLWxpbmsgTFZEUywgMTAyNHg3NjggZm9yIHNpbmdsZS1saW5rIExWRFMuCgogICAgTm90ZSwgdGhpcyBkcml2ZXIgYWxsb2NhdGUgbWVtb3J5IGJ1dCBkb2Vzbid0IGZyZWUgaXQgYWZ0ZXIgdXNlCiAgICBJdCBpcyB3cml0dGVuIG9uIHB1cnBvc2UgLS0gdG8gYXZvaWQgYSBmYWlsdXJlIG9mIHJlYWxsb2NhdGlvbgogICAgZHVlIHRvIG1lbW9yeSBmcmFnZW1lbnQuCgogICAgRUNDIG9mIEREUiBpcyBkaXNhYmxlZCBmb3IgRElVIHBlcmZvcm1hbmNlLiBMMiBkYXRhIGNhY2hlIGlzIGFsc28gZGlzYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBsb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTJlNWRkZmVjZGRhMzA4Zjc1NzgyZmFlMjA2YjY3N2IxODEwZjVmOQpBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMzEgMTA6NDM6NTkgMjAwNyAtMDUwMAoKICAgIEZTTDogQWRkIGEgZnJlZXNjYWxlIGJpdG1hcCBsb2dvLgoKICAgIFRoaXMgRnJlZXNjYWxlIGxvZ28gaXMgYSAzNDAgeCAxMjggeCA0YnBwIEJNUCBmaWxlCiAgICB0aGF0IGNhbiBiZSBkaXNwbGF5ZWQgYnkgdGhlIERJVSBGcmFtZWJ1ZmZlciBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTgxNTMzOGZiZDFjMGY5NGY4Mjc2ZDI4OTFiOTljYWE1YTA1ZjYyMgpBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6NTc6NTMgMjAwNyAtMDUwMAoKICAgIDg2MTA6IE1ha2Ugc29tZSBleHRyYSBkZWJ1ZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgY29uZGl0aW9uYWwuCgogICAgT25lIG1heSAjZGVmaW5lIEVOVl9ERUJVRyB0byBnZXQgdGhlbSBiYWNrIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzYxNDIxY2NjYTgwYTlmYjM3YjE5YzM3YWE2MWQ0NmVmNzVlMDY0NwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTk6MjY6MjEgMjAwNyArMDgwMAoKICAgIDg2MTA6IEFjdHVhbGx5IGVuYWJsZSBwaXhpc19yZXNldCBDT05GSUdzCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmM2JjZWFhYjIzMGI0NzQ4ZDBhZmM0MTA5YjY4MzczMDhmMDE4YjQwCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyNiAxODozMTo1OSAyMDA3ICswODAwCgogICAgRml4IHRoZSBCQVQgZGVmaW5pdGlvbiBvZiBQQ0kgSU8gb24gODYxMCBib2FyZAoKICAgIFRoZSBhZGRyZXNzIGluIHRoZSBCQVQgcmVnaXN0ZXIgaXMgYWxpZ25lZCB3aXRoIHRoZSBCQVQgc2l6ZS4KICAgIFRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIGFjdHVhbGx5IGRpZCBub3QgZGVmaW5lIEJBVCBmb3IgUENJRTIgSU8uCiAgICBUaGlzIHBhdGNoIGZpeCB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWYyM2NhMzM0YTZmNWYwMjFlZjllOWQwZmFkOWRhODBkNjNiMmQ1NgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTk6MjY6MjEgMjAwNyArMDgwMAoKICAgIFVuaWZ5IHBpeGlzX3Jlc2V0IGFsdGJhbmsgYWNyb3NzIGJvYXJkIGZhbWlsaWVzCgogICAgQmFzaWNhbGx5LCByZWZhY3RvciB0aGUgQ0ZHX1BJWElTX1ZCT09UX01BU0sgdmFsdWVzCiAgICBpbnRvIHRoZSBzZXBhcmF0ZSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTgzMThlYzIwNWM4ZTg3OTRiNWY5ZjFiODU4NGFiYWRiNDQwZThiYQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjYgMTg6MzI6MDAgMjAwNyArMDgwMAoKICAgIG1ha2UgODYxMCBib2FyZCB1c2UgcGl4aXMgcmVzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDljODQ3MDllZWRjZTljNjgwZGQ2OTU5ODRhYjdkMjMyOGY0ZjA0ZjUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDEgMTI6MjM6MjkgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBicm9rZW4gdmFyaWFibGUgcmVmZXJlbmNlIHdoZW4gI2RlZiBERUJVR2luZy4KCiAgICBTb21ldGltZXMgeW91IGNhbid0IHJlZmVyZW5jZSB0aGUgRERSMiBjb250cm9sbGVyIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmMTAzMTA1YTM3NDZhYjEyMjc5YjYzYjhjMWQzNzJjMGNlMmNjNTgKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgNSAxNzozOToyNCAyMDA3ICswODAwCgogICAgSW1wbGVtZW50IGdlbmVyYWwgVUxpIDUyNnggRXRoZXJuZXQgZHJpdmVyIHN1cHBvcnQgaW4gVS1ib290CgogICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGdlbmVyYWwgVUxpIDUyNnggRXRoZXJuZXQgZHJpdmVyLgogICAgVW50aWwgbm93LCBpdCBpcyB0aGUgb25seSBuYXRpdmUgRXRoZXJuZXQgcG9ydCBvbgogICAgTVBDODYxMEhQQ0QgYm9hcmQsIGJ1dCBpdCBjb3VsZCBiZSB1c2VkIG9uIG90aGVyIGJvYXJkcwogICAgd2l0aCBVTGkgNTI2eCBFdGhlcm5ldCBwb3J0IGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNzFiYzZlNjQ3NGZlYThlZjQ4MWI5YjQ1ZDFlZGQ3YWQxZjZkZmJiZApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgTm92IDEgMDg6NDY6NTAgMjAwNyAtMDUwMAoKICAgIE5FVDogQWRkIEV0aGVybmV0IDEwMDBCQVNFLVggc3VwcG9ydCBmb3IgUFBDNHh4CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIDEwMDBCQVNFLVggdG8gZnVuY3Rpb25zICJtaWlwaHlfc3BlZWQgKCkiIGFuZAogICAgIm1paXBoeV9kdXBsZXgoKSIuCUl0IGFsc28gYWRkcyBmdW5jdGlvbiAibWlpcGh5X2lzXzEwMDBiYXNlX3ggKCkiLCB3aGljaAogICAgcmV0dXJucyBub24temVybyBpZmYgdGhlIFBIWSByZWdpc3RlcnMgYXJlIGNvbmZpZ3VyZWQgZm9yIDEwMDBCQVNFLVguICBUaGUKICAgICJtaWkgaW5mbyIgY29tbWFuZCBpcyBtb2RpZmllZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIDEwMDBCQVNFLVQgYW5kIC1YLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgMjk4MDM1ZGY0OTQ4YjExM2QyOWFjMGU2OTQ3MTdkMzRiOTViYzVkYwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglXZWQgT2N0IDMxIDExOjIxOjI5IDIwMDcgLTA1MDAKCiAgICBORVQ6IENvc21ldGljIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDY1NGYzOGIzYTM4Nzg4Njk5NmE1YTc1NzcxZmJmYzI5Y2I0ZjIyNWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgNSAwNzo0MzowNSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNYWtlIG91dHB1dCBhIGxpdHRsZSBzaG9ydGVyIG9uIFBDSWUgZGV0ZWN0aW9uCgogICAgTm93IG5vdCBtYXggMyBsaW5lcyBidXQgMiBsaW5lcyBhcmUgcHJpbnRlZCBwZXIgUENJZSBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OTI3NDJhNWIwOWQ5MDQwYWRiZDE1NmZiOTA3NTZhZjY2YWRlMzEwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAzIDIzOjA5OjI3IDIwMDcgKzAxMDAKCiAgICBDbGVhbnVwIGNvZGluZyBzdHlsZTsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTg4MWNiNTYzZTMyZjQ1ODMyYjdiNmRiNzdiZGNkMDE3YWRjYmI0MQpBdXRob3I6IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBjY3B1LmNvbT4KRGF0ZToJRnJpIE5vdiAyIDEzOjE1OjQyIDIwMDcgLTA3MDAKCiAgICBmaXggd29yZGluZyBpbiBSRUFETUUKCiAgICBDaGFuZ2VkIHRoZSB3b3JkaW5nIHRvIHByb3Blcmx5IGRlc2NyaWJlIHRoZSBzaGFkb3dpbmcKICAgIG9mIHRoZSBlbnZpcm9ubWVudCBmcm9tIFJPTSB0byBSQU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAYWNtLm9yZz4KCmNvbW1pdCBhZDg0NWJlZWYwNjI0NTQyNmM1N2I1M2RjZGMwMWI3ZGM3MGUwZDQ1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJV2VkIE9jdCAzMSAwMjoxODoxNSAyMDA3ICswOTAwCgogICAgYmxhY2tmaW46IE1vdmUgYC1EX19CTEFDS0ZJTl9fJyB0byAkKEFSQ0gpX2NvbmZpZy5tawoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZWMyMjc1NTc5OTQ2NmM4YTEwMzY2NGJiM2E1ZTY0N2JmOWMyMzhmNApBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglUaHUgT2N0IDI1IDE2OjA4OjE0IDIwMDcgKzAzMDAKCiAgICBUcmltbWVkIHNvbWUgdmFyaWFibGVzIGluIG5lMjAwMC5jCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgZWI2ZjIxNGQzNjQ0YjJhNzc5NjhjMTc2ZWQzNmRjZjg1OGNmZTdlMApBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6NTE6MjcgMjAwNyArMDgwMAoKICAgIEZpeCB0aGUgaXNzdWUgb2YgdXNiX2tiZCBkcml2ZXIgbWlzc2luZyB0aGUgc2NhbiBjb2RlIG9mIGtleSAneicuCgogICAgVGhlIHNjYW4gY29kZSBvZiB0aGUga2V5ICd6JyBpcyAweDFkLCB3aGljaCBzaG91bGQgYmUgaGFuZGxlZC4KCiAgICBUaGUgY2hhbmdlIGhhcyBiZSB0ZXN0ZWQgb24gTk9WQVRFSyBVU0Iga2V5Ym9hcmQgYW5kIFVMSSBQQ0kgT0hDSQogICAgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJiZjQ3OTZmNjQ5OGZiYWRlNTZkNTZlZmYzYTBhNDliMjk5ZDkzZTUKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjMwOjA0IDIwMDcgKzA4MDAKCiAgICBGaXggVVNCIHN1cHBvcnQgaXNzdWUgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgaGFzIGFscmVhZHkgZW5hYmxlZCBVU0IsIGJ1dCBpdAogICAgbWlzc2VkIGRlZmluaXRpb24gb2YgQ0ZHX09IQ0lfU1dBUF9SRUdfQUNDRVNTLCB0aGUgVVNCCiAgICBvbiBNUEM4NjQxSFBDTiBjYW4gbm90IHdvcmsgYmVjYXVzZSBvZiB0aGUgd3JvbmcgVVNCCiAgICByZWdpc3RlciBlbmRpYW4uCgogICAgQW5kIGFkZCB0aGUgVVNCIGNvbW1hbmQgdG8gVS1Cb290IGNvbW1hbmRzIGxpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZTYyMDQxMDIzZGMzZGU5ZDk4ZDk3N2JiMDgwMjM1YmM2ZDAzNWUwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE9jdCAyNCAxODoxNjowMSAyMDA3ICswMjAwCgogICAgVXNlIGNvbmZpZ19jbWRfZGVmYXVsdC5oIGluc3RlYWQgb2YgY29uZmlnX2NtZF9hbGwuaAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTY2MjJmODc4NTc0MzliMWMyMjFlOWRlZWYxMWE5ZDViYjVkNDMwOApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBPY3QgMjQgMDE6Mzc6MzYgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IENhbGwgdXNiX2NwdV9pbml0KCkgZHVyaW5nIGJvYXJkIGluaXQKCiAgICB1c2JfY3B1X2luaXQoKSBjb25maWd1cmVzIEdQUyBVU0IgcGlucywgY2xvY2tzLCBldGMuIGFuZAogICAgaXMgcmVxdWlyZWQgZm9yIHByb3BlciBvcGVyYXRpb24gb2Yga2VybmVsIFVTQiBzdWJzeXN0ZW0uCiAgICBUaGlzIHNldHVwIHdhcyBwcmV2aW91c2x5IGRvbmUgaW4gdGhlIGtlcm5lbCBieSB0aGUgZml4dXAKICAgIGNvZGUgd2hpY2ggaXMgYmVpbmcgcmVtb3ZlZCwgdGh1cyBsb3cgbGV2ZWwgaW5pdCBtdXN0IGJlCiAgICBkb25lIGJ5IFUtYm9vdCBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyOWMyOWMwMjY3ZmU4NTdlNzIwMTRjZTkwYzVkMzViMmVmNjMwMmJkCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE2OjI1OjUwIDIwMDcgKzAyMDAKCiAgICBGaXggdHlwbyBpbiBuZnMuYwoKICAgIEFuIG9idmlvdXMgdHlwby4gT3JpZ2luYWxseSBmaXhlZCBpbiBsaW5rc3RhdGlvbiB1LWJvb3QgcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgNTk1NDNmZTAwYTRjZTcyMGVmOWY1YWE3ZmIzODdjNmRhZjFjN2Q3OApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNDozNTowNSAyMDA3ICswMjAwCgogICAgRml4IGEgdHlwbyBpbiBjcHUvbXBjODI0eC9pbnRlcnJ1cHRzLmMKCiAgICBTaW5jZSBEZWNlbWJlciAyMDAzIHRoZSB0aW1lcl9pbnRlcnJ1cHRfY3B1KCkgZnVuY3Rpb24gaW4KICAgIGNwdS9tcGM4MjR4L2ludGVycnVwdHMuYyBjb250YWlucyB3aGF0IHNlZW1zIHRvIGJlIGEgc3VwZXJmbHVvdXMKICAgIHBhcmFtZXRlci4gUmVtb3ZlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBjOWU3YjliOWExNzAwZmUwMDk2NzhkMWY5YjQxZTYzNjRhYzVkZjJkCkF1dGhvcjogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgpEYXRlOglXZWQgT2N0IDE3IDExOjEzOjUxIDIwMDcgKzAyMDAKCiAgICBhZGQgZnRfY3B1X3NldHVwKC4uKSBvbiBtcGM4MjYwCgogICAgQWRkIGZ0X2NwdV9zZXR1cCguLiktZnVuY3Rpb24gdG8gYWRhcHQgaXQgZm9yIHVzZSB3aXRoIGxpYmZkdAogICAgYmFzZWQgb24gY29kZSBmcm9tIG1wYzV4eHgKCiAgICBTaWdlbmQtb2ZmLWJ5OiBTZXJnZWogU3RlcGFub3YgPFNlcmdlai5TdGVwYW5vdkBpZHMuZGU+CiAgICAtLQoKY29tbWl0IDZhYmQ4MmUxOWFlOTNjMGI0ZDEwNGU1MDE2NWUyMzU5MTVlYzA4NzUKQXV0aG9yOiBTZXJnZWogU3RlcGFub3YgPFNlcmdlai5TdGVwYW5vdkBpZHMuZGU+CkRhdGU6CVdlZCBPY3QgMTcgMTE6MTg6NDIgMjAwNyArMDIwMAoKICAgIGNoYW5nZXMgZm9yIElEUzgyNDcgYm9hcmQgc3VwcG9ydAoKICAgIFRvIGdldCB0aGUgSURTODI0NyBib2FyZCB3b3JraW5nIGZvbGxvd2luZyBhcmUgZG9uZToKICAgICAtIEZDQzIgaXMgZGVhY3RpdmF0ZWQKICAgICAtIEZDQzEgaXMgYWN0aXZhdGVkCiAgICAgLSBJMkMgaXMgYWN0aXZhdGVkCiAgICAgLSBDRkkgZHJpdmVyIGlzIGFjdGl2YXRlZAogICAgIC0gQWRhcHRlZCBmb3IgdXNlIHdpdGggTElCRkRUCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgogICAgLS0KCmNvbW1pdCAzZDZjYjNiMjRhZGQ2NDE1Zjg2YTBmMDEzZWE0MGY1NjM5YjkwMDQ3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTm92IDMgMTI6MDg6MjggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIEFNQ0MgS2lsYXVlYS9IYWxlYWthbGEgTkFORCBib290aW5nIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIHRoZSBBTUNDIDQwNUVYKHIpIGV2YWwgYm9hcmRzLgogICAgQWdhaW4sIG9ubHkgb25lIGltYWdlIHN1cHBvcnRzIGJvdGggdGFyZ2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGI2Njg0YTY5ODUwMGJlOWMxNDJlYzJjOWY0NmNmYzM0OGUxN2YwYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgT2N0IDI0IDE1OjQ4OjM3IDIwMDcgKzAyMDAKCiAgICBBVFNUSzEwMDI6IFJlbW92ZSBkZWZhdWx0IGV0aGVybmV0IGFkZHJlc3NlcwoKICAgIFdvbGZnYW5nIGlzIHJpZ2h0OiBJdCdzIG5vdCBhIGdvb2QgaWRlYSB0byBzZXQgdXAgZGVmYXVsdCBpbml0aWFsCiAgICBldGhlcm5ldCBhZGRyZXNzZXMgZm9yIGEgYm9hcmQsIGV2ZW4gdGhvdWdoIHRoZXkgYmVsb25nIHRvIHRoZSBsb2NhbAogICAgcmFuZ2UuCgogICAgVGhpcyB3aWxsIGNoYW5nZSB0aGUgZmFpbHVyZSBtb2RlIGZyb20gIklUIG1hbmFnZXIgc2NyZWFtcyBhdCB5b3UgZm9yCiAgICB1c2luZyBkdXBsaWNhdGUgZXRoZXJuZXQgYWRkcmVzc2VzIiB0byBhIG5pY2UgZXJyb3IgbWVzc2FnZSBleHBsYWluaW5nCiAgICB0aGF0IHRoZSBldGhlcm5ldCBhZGRyZXNzIGhhc24ndCBiZWVuIHNldCBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlNWM3OTRlNDkxYTU3ZDgyOWI2ZDg3MzNlMmVkODM2OGEyMjY5YWJmCkF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxNzo0MDozNSAyMDA3IC0wNDAwCgogICAgREhDUCBDbGllbnQgRml4CgogICAgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCiAgICBjb21taXQgZTZlNTA1ZWFlOTRlZDcyMWUxMjNlMTc3NDg5MjkxZmM0NTQ0YjdiOAogICAgQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgRGF0ZTogICBNb24gT2N0IDI5IDE3OjE5OjAzIDIwMDcgLTA0MDAKCglGb3VuZCBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBESENQIFJlcXVlc3QgcGFja2V0IGlzIGJ1aWx0LCB3aGVyZSB0aGUgSVAgYWRkcmVzcwoJdGhhdCBpcyBvZmZlcmVkIGJ5IHRoZSBzZXJ2ZXIgaXMgYm91bmQgdG8gcHJlbWF0dXJlbHkuIFRoaXMgcGF0Y2ggaXMgYSBmaXggb2YKCXRoYXQgYnVnIHdoZXJlIHRoZSBJUCBhZGRyZXNzIG9mZmVyZWQgYnkgdGhlIERIQ1Agc2VydmVyIGlzIG5vdCB1c2VkIHVudGlsCglhZnRlciB0aGUgREhDUCBBQ0sgZnJvbSB0aGUgc2VydmVyIGlzIHJlY2VpdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA1ZDk2ZDQwZDNmMzZkYTMzMzQ4ZTY4ZjllYTk5M2YzODNlMTFmOTk3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDIwOjU4OjM0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBhY2FkaWFfbmFuZCBidWlsZCBwcm9ibGVtCgogICAgU2luY2UgdGhlIGNhY2hlIGhhbmRsaW5nIGZ1bmN0aW9ucyB3ZXJlIG1vdmVkIGZyb20gc3RhcnQuUyBpbnRvIGNhY2hlLlMKICAgIHRoZSBhY2FkaWEgTkFORCBib290aW5nIE1ha2ZpbGUgbmVlZHMgdG8gYmUgYWRhcHRlZCBhY2NvcmRpbmdseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWEyZTE0Mjg0MzUzM2NhNTkzZmNiNWNiM2UxZGFmMWI3ZjVlNTk0OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAyMDo1NzoxMSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQ09ORklHXzR4eF9EQ0FDSEUgY29tcGlsZSBvcHRpb25zIHRvIGVuYWJsZSBjYWNoZWQgU0RSQU0KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIENPTkZJR180eHhfRENBQ0hFIG9wdGlvbnMgdG8gc29tZSBTRFJBTSBpbml0IGZpbGVzCiAgICBhbmQgdG8gdGhlIFNlcXVvaWEgVExCIGluaXQgY29kZS4gTm93IHRoZSBjYWNoZSBjYW4gYmUgZW5hYmxlZCBvbiA0NHgKICAgIGJvYXJkcyBieSBkZWZpbmluZyBDT05GSUdfNHh4X0RDQUNIRSBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUuIFRoaXMKICAgIG9wdGlvbiB3aWxsIGRpc2FwcGVhciwgd2hlbiBtb3JlIGJvYXJkcyB1c2UgaXMgc3VjY2Vzc2Z1bGx5IGFuZCBubwogICAgbW9yZSBrbm93biBwcm9ibGVtcyBleGlzdC4KCiAgICBUaGlzIGlzIHRlc3RlZCBzdWNjZXNzZnVsbHkgb24gU2VxdW9pYSBhbmQgS2F0bWFpLiBUaGUgb25seSBwcm9ibGVtIHRoYXQKICAgIG5lZWRzIHRvIGJlIGZpeGVkIGlzLCB0aGF0IFVTQiBpcyBub3Qgd29ya2luZyBvbiBTZXF1b2lhIHJpZ2h0IG5vdywgc2luY2UKICAgIGl0IHdpbGwgbmVlZCBzb21lIGNhY2hlIGhhbmRsaW5nIGNvZGUgdG9vLCBzaW1pbGFyIHRvIHRoZSA0eHggRU1BQyBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNkYjkzYjhiZWRkMzJlOTE0YjM4OTc2MTQxYjNmZGY0ZWEzZmY3MzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMjA6NTE6MTAgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIENQVSBQT1NUIHRlc3QgZm9yIDR4eCB3aXRoIGRjYWNoZSBlbmFibGVkCgogICAgTm93IHdpdGggY2FjaGVzIGVuYWJsZWQgKGktIGFuZCBkLWNhY2hlKSBvbiA0NHgsIHdlIG5lZWQgYSBjaGFuY2UgdG8KICAgIGRpc2FibGUgdGhlIGNhY2hlIGZvciB0aGUgQ1BVIFBPU1QgdGVzdHMsIHNpbmNlIHRoZXNlIHRlc3RzIGNvbnNpc3QKICAgIG9mIHNlbGYgbW9kaWZ5aW5nIGNvZGUuIFRoaXMgaXMgZG9uZSB2aWEgdGhlIG5ldyBjaGFuZ2VfdGxiKCkgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY3MWIyODg4YjRiM2M4NzA5MDlhMDM0MTQyN2IyYTkxNDI0NmY4MWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMjA6NDc6MjYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ2hhbmdlIDR4eCBQT1NUIGV0aGVybmV0IHRlc3QgdG8gaGFuZGxlIGNhY2hlZCBtZW1vcnkgdG9vCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSA0eHggRU1BQyBQT1NUIGRyaXZlciB0byB3b3JrIHRvbywgd2hlbiBkY2FjaGUgaXMKICAgIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGEyNjg1OTA0MDYxYjM1YTE3NTgzZDY1ZmU0N2NkYzI2ODZhNjllYWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMjA6NDU6NTMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHRlbXBvcmFyeSBUTEIgZW50cnkgaW4gUE9TVCBjYWNoZSB0ZXN0IG9ubHkgZm9yIDQ0MAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZjc2OGNiMTY4ZDgxNTdjMjRhMjUwMTZkYmZiZWI0NjVlNDdmNDIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDE4OjAxOjI0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IENoYW5nZSA0eHggZXRoZXJuZXQgZHJpdmVyIHRvIGhhbmRsZSBjYWNoZWQgbWVtb3J5IHRvbwoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgNHh4IEVNQUMgZHJpdmVyIHRvIHdvcmsgdG9vLCB3aGVuIGRjYWNoZSBpcwogICAgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDgzZTA5YTIyM2M2NjYyNjllZjgxZDM1NzNhNjU5MWIxMDQ2YjBlZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAxNzo1OToyMiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgY2hhbmdlX3RsYiBmdW5jdGlvbiB0byBtb2RpZnkgSSBhdHRyaWJ1dGUgb2YgVExCKHMpCgogICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGVpdGhlciB0dXJuIGNhY2hlIG9uIG9yIG9mZiBpbiBhIHNwZWNpZmljCiAgICBtZW1vcnkgYXJlYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDI1ZGZlMDhmYmQxMjIwY2I5OTRlN2U2YjEwNTA0OWFhOWFhOGU3OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAxNzo1Nzo1MiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgY2FjaGUgZGVmaW5pdGlvbiBmcm9tIDR4eCBib2FyZCBjb25maWcgZmlsZXMKCiAgICBBbGwgNHh4IGJvYXJkIGNvbmZpZyBmaWxlcyBkb24ndCBuZWVkIHRoZSBjYWNoZSBkZWZpbml0aW9ucyBhbnltb3JlLgogICAgVGhlc2UgYXJlIG5vdyBkZWZpbmVkIGluIGNvbW1vbiBoZWFkZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5Yjk0YWM2MWQyMTc2MTg1YzMwYWRmMDc5M2UwNzllYzMwZTY4Njg3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDE3OjU1OjU4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFJld29yayA0eHggY2FjaGUgc3VwcG9ydAoKICAgIE5ldyBjYWNoZSBoYW5kbGluZyBmdW5jdGlvbnMgYWRkZWQgYW5kIGFsbCBleGlzdGluZyBmdW5jdGlvbnMKICAgIG1vdmVkIGZyb20gc3RhcnQuUyBpbnRvIHNlcGVyYXRlIGNhY2hlLlMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA2NzEzNzczZGE0YWMzZDM5MGM2M2Q4MjY0MWViNTUzMjI0YjI3YzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTg6MDM6MTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcgZnJvbSBwcmV2aW91cyBjb21taXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmZhMzk3ZGY2N2MwZjI2OWU0NTI4YmYxODFhNmU4Yzg4Zjk3MjNmOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNDo0MDozMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgdGVtcG9yYXJ5IFRMQiBlbnRyeSBpbiBQT1NUIGNhY2hlIHRlc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTMzOGU2YTgxODM0MDk5YmExOTczM2I2OWFhZmQ4ZWY1ZjA5ODA5NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNDowNTowOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgYXV0b25lZ290aWF0aW9uIHRpbWVvdXQgZnJvbSA0IHRvIDUgc2Vjb25kcwoKICAgIEkgbGF0ZWx5IG5vdGljZWQsIHRoYXQgbmV3ZXIgNHh4IGJvYXJkIHdpdGggR0JpdCBzdXBwb3J0IHNvbWV0aW1lcyBkb24ndAogICAgZmluaXNoIGxpbmsgYXV0b25lZ290aWF0aW9uIGluIDQgc2Vjb25kcy4gQ2hhbmdpbmcgdGhpcyB0aW1lb3V0IHRvIDUKICAgIHNlY29uZHMgc2VlbXMgZmluZSBoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZDgzNDc2YTRjMWM5OTExZDE1OGEzZjhhNDMxMmQzNTRiYzFiZGI3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE0OjAzOjE3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSA0eHhfZW5ldCAmIG1paXBoeSB0byB1c2Ugb3V0X2JlMzIoKSBhbmQgZnJpZW5kcwoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBhbGwgaW4zMi9vdXQzMiBjYWxscyB0byB1c2UgdGhlIHJlY29tbWVuZGVkIGluX2JlMzIvCiAgICBvdXRfYmUzMiBtYWNyb3MgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2Q0N2NlZTJjYzU3ZjkwNzM4MGYyYzA2ZjViNmM2ODNkMDNlNDIzYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAyNSAxMjoyNDo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggUE9TVCBldGhlcm5ldCB0ZXN0IGZvciBIYWxlYWthbGEKCiAgICBUaGUgUE9TVCBldGhlcm5ldCB0ZXN0IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvIGR5bmFtaWNhbGx5IGRldGVybWluZQogICAgdGhlIGNvdW50IG9mIGV0aGVybmV0IGRldmljZXMuIFRoaXMgY29kZSBpcyBjbG9uZWQgZnJvbSB0aGUgNHh4CiAgICBldGhlcm5ldCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYxMDQ5M2M2ZDc3YTFlMDdhNmMyZmY0ZDc3MjkzN2E1ZTczNTlkNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTE6MzE6MDUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29ycmVjdCBVQVJUIGlucHV0IGNsb2NrIGNhbGN1bGF0aW9uIGFuZCBwYXNzaW5nIHRvIGZkdAoKICAgIFdlIG5vdyB1c2UgYSB2YWx1ZSBpbiB0aGUgZ2QgKGdsb2JhbCBkYXRhKSBzdHJ1Y3R1cmUgZm9yIHRoZSBVQVJUIGlucHV0CiAgICBmcmVxdWVuY3ksIHNpbmNlIHRoZSBQUEM0eHhfU1lTX0lORk8gc3RydWN0IGlzIGFsd2F5cyByZXdyaXR0ZW4gY29tcGxldGVseQogICAgaW4gZ2V0X3N5c19pbmZvKCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM1M2YyNjg4YjRlMGZjN2I5NjliYzcwYTAyYmU0YjQwYmYwZGQxMjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTA6MTA6MDggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgQU1DQyBIYWxlYWthbGEgUFBDNDA1RVhyIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBIYWxlYWthbGEgaXMgbmVhcmx5IGlkZW50aWNhbCB3aXRoIHRoZSBLaWxhdWVhIGV2YWwgYm9hcmQuIFRoZSBvbmx5CiAgICBkaWZmZXJlbmNlIGlzIHRoYXQgdGhlIDQwNUVYciBvbmx5IHN1cHBvcnRzIG9uZSBFTUFDIGFuZCBvbmUgUENJZQogICAgaW50ZXJmYWNlLiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEhhbGVha2FsYSBib2FyZCBieSB1c2luZwogICAgdGhlIGlkZW50aWNhbCBpbWFnZSBmb3IgS2lsYXVlYSBhbmQgSGFsZWFrYWxhLiBUaGUgZGlzdGluY3Rpb24gaXMgZG9uZQogICAgYnkgY29tcGFyaW5nIHRoZSBQVlIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlmNzk4NzY2YWE4NWU2MmViOGZhOGM3MjFlMTQ4ZGY2MDliNzgxMzcKQXV0aG9yOiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgpEYXRlOglUdWUgT2N0IDIzIDA4OjI5OjEwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeGVkIG9mZnNldCBvZiByZWZyZXNoIHJhdGUgdHlwZSBmb3IgQmFtYm9vIG9uLWJvYXJkIEREUiBTRFJBTQoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbm90ZSB0byB0aGUgZml4ZWQgRERSIHNldHVwIGZvciBCYW1ib28gTkFORCBib290aW5nOgoKICAgIE5vdGU6CiAgICBBcyBmb3VuZCBvdXQgYnkgRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4sIHRoZSBmaXhlZAogICAgRERSIHNldHVwIGhhcyBwcm9ibGVtcyAoVS1Cb290IGNyYXNoZXMgcmFuZG9tbHkgdXBvbiBURlRQKSwgd2hlbiB0aGUgRElNTQogICAgbW9kdWxlcyBhcmUgc3RpbGwgcGx1Z2dlZCBpbi4gU28gaXQgaXMgcmVjb21tZW5kZWQgdG8gcmVtb3ZlIHRoZSBESU1NCiAgICBtb2R1bGVzIHdoaWxlIHVzaW5nIHRoZSBOQU5EIGJvb3RpbmcgY29kZSB3aXRoIHRoZSBmaXhlZCBTRFJBTSBzZXR1cCEKCiAgICBTaWduZWQtb2ZmLWJ5OiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFmZTlmYTU5Y2I2M2I0ZjlkMTZiZjAxYzkzZWIyMTJmMjVhMzhjMmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTY6MjQ6NDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIFNOVFAgc3VwcG9ydCB0byBBTUNDIEthdG1haSwgS2lsYXVlYSAmIE1ha2FsdSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzI0OGY2M2FkODljYjAzMTQ5MWVkYjcwMTY1ODdmZTZlOWEyMzhiOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNjoyMjo0MCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZXdvcmsgb2YgNHh4IHNlcmlhbCBkcml2ZXIgKDQpCgogICAgQ2hhbmdlIDR4eF91YXJ0LmM6CgogICAgLSBVc2UgaW5fOC9vdXRfOCBtYWNyb3MgaW5zdGVhZCBvZiBpbjgvb3V0OAogICAgLSBObyBuZWVkIGZvciBVQVJUX0JBU0UgbWFyY28gYW55bW9yZSwgbm93IHJlYWxseSBoYW5kbGVkIHZpYSBmdW5jdGlvbgogICAgICBwYXJhbWV0ZXIKICAgIC0gc2VyaWFsX2luaXRfY29tbW9uKCkgaW50cm9kdWNlZAogICAgLSBGdXJ0aGVyIGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU2MWNiODE2M2E2NmI4YTEzNTY5NmFlMjMyZTJiZWFkMWNlMGEwNDkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTU6NDU6NDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmV3b3JrIG9mIDR4eCBzZXJpYWwgZHJpdmVyICgzKQoKICAgIENoYW5nZSBhbGwgbGlua2VyIHNjcmlwdHMgdG8gcmVmZXJlbmNlIHRoZSBjaGFuZ2VkIGRyaXZlciBuYW1lIGlvcDQ4MF91YXJ0Lm8uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg4MmFlNDEyNzQ5MjFmOTAxNjEzMTgwNmJkZWIyN2UxOTYwNmY0N2EKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTU6NDQ6MzkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmV3b3JrIG9mIDR4eCBzZXJpYWwgZHJpdmVyICgyKQoKICAgIENoYW5nZSBhbGwgbGlua2VyIHNjcmlwdHMgdG8gcmVmZXJlbmNlIHRoZSBjaGFuZ2VkIGRyaXZlciBuYW1lIDR4eF91YXJ0Lm8uCgogICAgTm90ZTogSW4gbW9zdCBjYXNlZCBhbGwgdGhlc2UgZXhwbGljaXQgcmVmZXJlbmNpbmcgb2YgdGhlc2Ugb2JqZWN0IGZpbGVzCiAgICBpbiB0aGUgbGlua2VyIHNjcmlwdHMgaXMgbm90IG5lY2Nlc3NhcnkuIE9ubHkgZm9yIG1hbnVhbGx5IGVtYmVkZGVkCiAgICBlbnZpcm9ubWVudCBpbnRvIHRoZSBVLUJvb3QgaW1hZ2UsIHdoaWNoIGlzIG5vdCBkb25lIGlzIG1vc3QgY2FzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFkMzFlNDBiZWQwNDJjYjY3MGQwMDM2ZmVhOTY0MzUwMDdhZmI4MzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTU6MDk6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmV3b3JrIG9mIDR4eCBzZXJpYWwgZHJpdmVyICgxKQoKICAgIFRoaXMgcGF0Y2ggc3RhcnRzIHRoZSByZXdvcmsgb2YgdGhlIFBQQzR4eCBzZXJpYWwgZHJpdmVyLiBGaXJzdCB3ZSBzcGxpdAogICAgdGhlIGZpbGUgaW50byB0d28gc2VwZXJhdGUgZmlsZXMsIG9uZSA0eHhfdWFydC5jIHdpdGggdGhlIDQwNS80NDAgVUFSVAogICAgaGFuZGxpbmcgY29kZSBhbmQgdGhlIG90aGVyIG9uZSBpb3A0ODBfdWFydC5jIHdpdGggdGhlIFVBUlQgY29kZSBmb3IgdGhlCiAgICBQTFgtVGVjaCBJT1A0ODAgUFBDIChQUEM0MDMgYmFzZWQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NjRlNzQxN2VlNWY2ZTI1YjE3MTU3MjBlN2Q3ZGQzNDg3MTA5Mzg1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDEwOjMwOjM4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvcnJlY3QgVUFSVCBpbnB1dCBjbG9jayBjYWxjdWxhdGlvbiBhbmQgcGFzc2luZyB0byBmZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjExZWE5MWFjNmMyMjViZWM3ZTY2OGEwM2QwYmE3ZDczMTA2NzlmYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAwNzozNDozNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBBTUNDIE1ha2FsdSA0MDVFWCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZhOGFlYTIwNDU2ZTZmMWRiYTQzZjQ2YmNjNzIwMjRkZDk0OTk5OTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMDc6MzM6NTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGZyZXFVQVJUIHRvIENQVSBzcGVlZCBkZXRlY3Rpb24KCiAgICBUaGlzIHZhbHVlIGlzIG5lZWRlZCBsYXRlciBmb3IgdGhlIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb24gb2YKICAgIHRoZSB1YXJ0IGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MzdjNzMwYjRkN2M2YjFkZGYzZDFlMjQ3Y2I0NDQ1MDA1ZDliZjBkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDE0OjI2OjI5IDIwMDcgKzAyMDAKCiAgICBwcGM6IFNtYWxsIEtpbGF1ZWEgY2xlYW51cCBvZiBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NThjMDM3YWVlYWQzNGI0OTYzMWI4ZGEzYTkwYjFiYmExNGMwNDEwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDA4OjE2OjEyIDIwMDcgKzAyMDAKCiAgICBydGM6IEFkZCBYaWNvci9JbnRlcnNpbCBYMTIwNSBSVEMgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgWGljb3IvSW50ZXJzaWwgWDEyMDUgUlRDIHVzZWQgb24gdGhlCiAgICBBTUNDIE1ha2FsdSBldmFsIGJvYXJkLiBUaGlzIGRyaXZlciBpcyBiYXNpY2FsbHkgY2xvbmVkIGZyb20gdGhlIExpbnV4CiAgICBkcml2ZXIgdmVyc2lvbiAoMi42LjIzKS4KCiAgICBUaGlzIHBhdGNoIGFsc28gaW50cm9kdWNlcyB0aGUgTGludXggYmNkLmggaGVhZGVyIGZvciB0aGUgQkNEMkJJTi8KICAgIEJJTjJCQ0QgY29udmVyc2lvbnMuIEluIHRoZSBmdXR1cmUgc29tZSBvZiB0aGUgb3RoZXIgVS1Cb290IFJUQyBkcml2ZXIKICAgIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gYWxzbyB1c2UgdGhpcyBoZWFkZXIgaW5zdGVhZCBvZiBpbXBsZW1lbnRpbmcKICAgIHRoZWlyIG93biBsb2NhbCBjb3B5IG9mIHRoZXNlIGZ1bmN0aW9ucy9tYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA4N2RmZGI3OWI1ZmQxYWI5OWEyNjk5MGM2MmE3MzJjMDFhOGM3ZjYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjEgMDg6MTI6NDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29uc29saWRhdGUgc29tZSBvZiB0aGUgNDA1IGFuZCA0NDAgbWFjcm9zL3N0cnVjdHMgaW50byA0eHgKCiAgICBUaGlzIHBhdGNoIG1vdmVzIHNvbWUgY29tbW9uIDR4eCBtYWNyb3MgYW5kIHRoZSBQUEM0MDVfU1lTX0lORk8vCiAgICBQUEM0NDBfU1lTX0lORk8gc3RydWN0dXJlIGludG8gdGhlIGNvbW1vbiBwcGM0eHguaCBoZWFkZXIuCgogICAgTG90J3Mgb2Ygb3RoZXIgbWFjcm9zIGFyZSBnb29kIGNhbmRpZGF0ZXMgdG8gYmUgY29uc29saWRhdGVkIHRoaXMgd2F5CiAgICBpbiB0aGUgZnV0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NzBjN2FmNTgwMGY1OThkMjI3MzBkMWY0YjcwZjE2YzliMzM1MTJlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDA4OjA1OjE4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBzaXplIHNldHVwIGluIEtpbGF1ZWEgRERSMiBpbml0IHJvdXRpbmUKCiAgICBUaGUgc2l6ZSB3YXMgaW5pdGlsaXplZCB3cm9uZy4gSW5zdGVhZCBvZiAyNTZNQiwgdGhlIEREUjIgY29udHJvbGxlcgogICAgd2FzIHNldHVwIHRvIDUxMk1CLiBOb3cgdGhlIGNvcnJlY3QgdmFsdWVzIGlzIHVzZWQuCgogICAgVGhpcyBwYXRjaCBhbHNvIGRvZXMgYSBsaXR0bGUgY2xlYW51cCBhbmQgYWRkcyBhIGNvbW1lbnQgaGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjZiYTliNTY2MDdkNGIyNzU1MDMwMWM3YzdmNmI1NWI2NTRmZDYyYQpBdXRob3I6IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CkRhdGU6CVRodSBPY3QgMTggMTc6Mjk6MDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRGVmaW5lIENPTkZJR19CT09LRSBmb3IgYWxsIFBQQzQ0MCBiYXNlZCBwcm9jZXNzb3JzCgogICAgQ09ORklHX0JPT0tFIG11c3QgYmUgZGVmaW5lZCBmb3IgUFBDNDQwIHByb2Nlc3NvcnMgc28gdGhhdCB0aGUgcHJvcGVyIFNQUgogICAgbnVtYmVyIGlzIHVzZWQgdG8gYWNjZXNzIHN5c3RlbSByZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMzZjNjgxNjAzMzNhYzVmZTQxZWMzZGIxMmE3MjhiNzA3NWIzOTEyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDE4IDA3OjQyOjI3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBpbmJvdW5kIFBDSWUgbG9jYXRpb24gZm9yIGVuZHBvaW50IHRlc3RzIG9uIEthdG1haQoKICAgIE9uIFl1Y2NhICYgS2F0bWFpLCB0aGUgaW5ib3VuZCBtZW1vcnkgbWFwIHBvaW50ZWQgdG8gMHg0LjAwMDAuMDAwMCwgd2hpY2gKICAgIGlzIHRoZSBpbnRlcm5hbCBTUkFNLiBTaW5jZSBJIG5vdyBwb3J0ZWQgYW5kIHRlc3RlZCB0aGlzIGVuZHBvaW50IG1vZGUKICAgIG9uIEtpbGF1ZWEgc3VjY2Vzc2Z1bGx5IHRvIG1hcCB0byAwIChTRFJBTSksIEkgYWxzbyBjaGFuZ2VkIHRoaXMgZm9yCiAgICBLYXRtYWkuCgogICAgWXVjY2Egd2lsbCBzdGF5IGF0IGludGVybmFsIFNSQU0gZm9yIG5vdy4gTm90IHN1cmUgaWYgc29tZWJvZHkgcmVsaWVzIG9uCiAgICB0aGlzIHNldHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1Y2I0YWY0NzkxZjYxODQzNDMyMTU1MTQyYjZjZmFjOTAxZjY2YzEwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDE4IDA3OjM5OjM4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBQQ0llIGVuZHBvaW50IHN1cHBvcnQgb24gS2lsYXVlYSAoNDA1RVgpCgogICAgVGhpcyBwYXRjaCBhZGRzIGVuZHBvaW50IHN1cHBvcnQgZm9yIHRoZSBBTUNDIEtpbGF1ZWEgZXZhbCBib2FyZC4gSXQgY2FuCiAgICBiZSB0ZXN0ZWQgYnkgY29ubmVjdGluZyBhIHJld29ya2VkIFBDSWUgY2FibGUgKG9ubHkgMXggbGFuZSBzaW5nbGVzCiAgICBjb25uZWN0ZWQpIHRvIGFub3RoZXIgcm9vdC1jb21wbGV4LgoKICAgIEluIHRoaXMgdGVzdCBzZXR1cCwgYSA2NE1CIGluYm91bmQgd2luZG93IGlzIGNvbmZpZ3VyZWQgYXQgQkFSMCB3aGljaCBtYXBzCiAgICB0byAwIG9uIHRoZSBQTEIgc2lkZS4gU28gYWNjZXNzaW5nIHRoaXMgQkFSMCBmcm9tIHRoZSByb290LWNvbXBsZXggd2lsbAogICAgYWNjZXNzIHRoZSBmaXJzdCA2NE1CIG9mIHRoZSBTRFJBTSBvbiB0aGUgUFBDIHNpZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ0Y2IyZDE3OTQ2NDY2NzQwYWZlYjE5NWE1N2Q2Y2IyOTBiZjRjYzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMTMgMTY6NDM6MjMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRHluYW1pYyBjb25maWd1cmF0aW9uIG9mIDR4eCBQQ0llIG1vZGUgYXMgcm9vdCBvciBlbmRwb2ludCBtb2RlCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGR5bmFtaWMgY29uZmlndXJhdGlvbiBvZiBQQ0llIHBvcnRzIGZvciB0aGUKICAgIEFNQ0MgUFBDNHh4IGJvYXJkcyBlcXVpcHBlZCB3aXRoIFBDSWUgaW50ZXJmYWNlcy4gVGhlc2UgYXJlIHRoZSBQUEM0NDBTUGUKICAgIGJvYXJkcyBZdWNjYSAmIEthdG1haSBhbmQgdGhlIDQwNUVYIGJvYXJkIEtpbGF1ZWEuCgogICAgVGhpcyBkeW5hbWljIGNvbmZpZ3VyYXRpb24gaXMgZG9uZSB2aWEgdGhlICJwY2llX21vZGUiIGVudmlyb25lbWVudAogICAgdmFyaWFibGUuIFRoaXMgdmFyaWFibGUgY2FuIGJlIHNldCB0byAiRVAiIG9yICJSUCIgZm9yIGVuZHBvaW50IG9yCiAgICByb290cG9pbnQgbW9kZS4gTXVsdGlwbGUgdmFsdWVzIGNhbiBiZSBqb2luZWQgdmlhIHRoZSAiOiIgZGVsaW1pdGVyLgogICAgSGVyZSBhbiBleGFtcGxlOgoKICAgIHBjaWVfbW9kZT1SUDpFUDpFUAoKICAgIFRoaXMgd2F5LCBQQ0llIHBvcnQgMCB3aWxsIGJlIGNvbmZpZ3VyZWQgYXMgcm9vdHBvaW50LCBQQ0llIHBvcnQgMSBhbmQgMgogICAgYXMgZW5kcG9pbnQuCgogICAgUGVyIGRlZmF1bHQgWXVjY2Egd2lsbCBiZSBjb25maWd1cmVkIGFzOgogICAgcGNpZV9tb2RlPVJQOkVQOkVQCgogICAgUGVyIGRlZmF1bHQgS2F0bWFpIHdpbGwgYmUgY29uZmlndXJlZCBhczoKICAgIHBjaWVfbW9kZT1SUDpSUDpSRVAKCiAgICBQZXIgZGVmYXVsdCBLaWxhdWVhIHdpbGwgYmUgY29uZmlndXJlZCBhczoKICAgIHBjaWVfbW9kZT1SUDpSUAoKICAgIFNpZ25lZC1vZmYtYnk6IFRpcnVtYWxhIFIgTWFycmkgPHRtYXJyaUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZDY3MTgwMmI2N2EwZWYzN2EwNjEyNGZhMmNlODVmMDBhYTIyYzZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDExIDExOjE1OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEVuYWJsZSBkZXZpY2UgdHJlZSBzdXBwb3J0IChmZHQpIG9uIEtpbGF1ZWEgcGVyIGRlZmF1bHQKCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIGZkdCBzdXBwb3J0IG9uIHRoZSBBTUNDIEtpbGF1ZWEgZXZhbCBib2FyZC4KICAgIEFkZGl0aW9uYWxseSBub3cgRUJDIHJhbmdlcyBmZHQgZml4dXAgaXMgaW5jbHVkZWQgdG8gc3VwcG9ydCBOT1IKICAgIEZMQVNIIG1hcHBpbmcgdmlhIHRoZSBMaW51eCBwaHlzbWFwX29mIGRyaXZlci4KCiAgICBUaGlzIEtpbGF1ZWEgcG9ydCBub3cgc3VwcG9ydCBib290aW5nIGFyY2gvcHBjIGFuZCBhcmNoL3Bvd2VycGMKICAgIExpbnV4IGtlcm5lbHMuIFRoZSBkZWZhdWx0IGVudmlyb25tZW50ICJuZXRfbmZzIiBpcyBmb3IgYXJjaC9wcGMKICAgIGFuZCAibmV0X25mc19mZHQiIGlzIGZvciBhcmNoL3Bvd2VycGMuIEluIHRoZSBsb25nIHJ1biwgYXJjaC9wcGMKICAgIHN1cHBvcnQgd2lsbCBiZSByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0OTk0ZmZkODkwYjlkOTVkODA3Mzg3YTliN2JkOGE0ODAzZWU0MDZlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDExIDExOjExOjQ1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBhZGRpdGlvbmFsIGRlYnVnIGluZm8gdG8gNHh4IGZkdCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRiMzIzMmRkYjA1OGQwZWQwYmMzMWY3YzVjMjk2NzQ4YTFhZmFjNjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAyMToyODo1OCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggc21hbGwgbWVyZ2UgcHJvYmxlbXMgd2l0aCBDUENJNDQwIGFuZCBBY2FkaWEgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE5NDFjY2U3MWIxYWU5NzU2MDI4NTQwNDUwNjFlODJmOTRlY2QwMTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNzozNToxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggc21hbGwgbWVyZ2UgcHJvYmxlbSBpbiA0eHhfZW5ldC5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU2NjgwNmNhMWExYmY0ZDg5NWRhYWYwYjJiYTU0OTRhYmJmZmViYWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNzoxMTozMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBBTUNDIEtpbGF1ZWEgNDA1RVggc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYmJkMTI1NzIxYWVhNjY0NWZkYjk2MmYzNmJkNDFmNTllMjcyZjlkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTc6MTA6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIFBQQzQwNUVYIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWQ3Yjg3NGU5YzlhN2M2NmY1ZDhkYTllYzc4YTM3MzM3NjVkM2UzMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE3OjA5OjM2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENsZWFudXAgb2YgNHh4IFBDSSBhbmQgUENJZSBzdXBwb3J0IChyZW5hbWluZykKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGYxNGVkNjIzMGI5YzEwOWFhYzlhNmZiODc4NDk3ZGFiZDQ0YzJkYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE3OjA3OjUwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIGZkdCBzdXBwb3J0IHRvIDR4eCAoZmlyc3QgbmVlZGVkIG9uIDQwNUVYKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDI0YThiYjI5MjRiOTA3MjRiOTQ0MTY1ZDMxNDFmMWZhOGRmZTViCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTc6MDQ6NTcgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCA0MDVFWCBzdXBwb3J0IHRvIDR4eCBVQVJUIFBPU1QgdGVzdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZjJlOTJjMTFmNmUyMzkyZmM4MTg3ODI5MjExYTVjYTdmMGMxZTEyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTU6MTA6MDIgMjAwNyArMDIwMAoKICAgIERUVDogUHJlcGFyZSBEUzE3NzUgZHJpdmVyIGZvciB1c2Ugb2YgZGlmZmVyZW50IEkyQyBhZGRyZXNzZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTllOTNiMWUxNmQyNjcyMjA0NDBkODI3YjkyMGZiYWQ4YWJmYTcwZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE0OjIzOjQzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDR4eF9wY2llOiBDaGFuZ2UgUENJZSBzdGF0dXMgb3V0cHV0IHRvIG1hdGNoIGNvbW1vbiBzdHlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZjY4ZjY2YmNiMGRhODQ3ODQ1YWEyZmFjMTFlYmE2YzI1OTM4Yzk5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMDk6MjI6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogNHh4X3BjaWU6IERpc2FibGUgZGVidWcgb3V0cHV0IGFzIGRlZmF1bHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTc5MjM3NzBjYjUyYjY0ZDY5ZWVjOTU4YTExYjJlZGE4ZDQ2ZTBmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDA5OjE4OjIzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDR4eF9wY2llOiBNb3JlIGdlbmVyYWwgY2xlYW51cCBhbmQgNDA1RVggUENJZSBzdXBwb3J0IGFkZGVkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRkYmVlOGE5MGRmNjEzZWI1MTdhYWRiZWNlYmQ3MGYxNjg5MTNkMzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAwNzo1NzoyMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiA0eHhfcGNpZTogQ2hhbmdlIENGR19QQ0lFX01FTVNJWkUgdG8gMTI4TUIgb24gWXVjY2EgJiBLYXRtYWkKCiAgICAxMjhNQiBzZWVtcyB0byBiZSB0aGUgc21hbGxlc3QgcG9zc2libGUgdmFsdWUgZm9yIHRoZSBtZW1vcnkgc2l6ZQogICAgZm9yIG9uIFBDSWUgcG9ydC4gV2l0aCB0aGlzIGNoYW5nZSBub3cgdGhlIEJBUidzIG9mIHRoZSBQQ0llIGNhcmRzCiAgICBhcmUgYWNjZXNzaWJsZSB1bmRlciBVLUJvb3QuCgogICAgT25lIGJpZyBub3RlOiBUaGlzIG9ubHkgd29ya3MgZm9yIFBDSWUgcG9ydCAwICYgMS4gRm9yIHBvcnQgMiB0aGlzCiAgICBjdXJyZW50bHkgZG9lc24ndCB3b3JrLCBzaW5jZSB0aGUgYmFzZSBhZGRyZXNzIGlzIG5vdyAweGMwMDAwMDAwCiAgICAoMHhiMDAwMDAwMCArIDIgKiAweDA4MDAwMDAwKSwgYW5kIHRoaXMgaXMgYWxyZWFkeSBvY2N1cGllZCBieQogICAgQ0ZHX1BDSUUwX0NGR0JBU0UuIEJ1dCBzb2x2aW5nIHRoaXMgaXNzdWUgZm9yIHBvcnQgMiB3b3VsZCBtZWFuCiAgICB0byBjaGFuZ2UgdGhlIGJhc2UgYWRkcmVzc2VzIGNvbXBsZXRlbHkgYW5kIHRoaXMgY2hhbmdlIHdvdWxkIGhhdmUKICAgIHRvbyBtdWNoIGltcGFjdCByaWdodCBub3cuCgogICAgVGhpcyBwYXRjaCBhZGRzIGRlYnVnIG91dHB1dCB0byB0aGUgNHh4IHBjaWUgZHJpdmVyIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmQ5NTI4OTI4MWVkMjk1OGViZjc2ZDJiNTVmODZiYmQ4ODU5MWZkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDIxOjE2OjMyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDR4eF9wY2llOiBGaXggcHJvYmxlbSB3aXRoIFNEUk4gYWNjZXNzIHVzaW5nIHBvcnQgbnVtYmVyIGFzIGlkeAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMDQ4YmNiZjBiYWQyNjIzNzhjNWFmNjhmMmJmNjc3OGZiN2Q4MjlhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMgMTU6MDE6MDIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVuYW1lIDQwNWdwX3BjaSB0byA0eHhfcGNpIHNpbmNlIGl0cyB1c2VkIG9uIGFsbCA0eHggcGxhdGZvcm1zCgogICAgVGhlc2UgZmlsZXMgd2VyZSBpbnRyb2R1Y2VkIHdpdGggdGhlIElCTSA0MDVHUCBidXQgYXJlIGN1cnJlbnRseSB1c2VkIG9uIGFsbAogICAgNHh4IFBQQyBwbGF0Zm9ybXMuIFNvIHRoZSBuYW1lIGRvZXNuJ3QgbWF0Y2ggdGhlIGNvbnRlbnQgYW55bW9yZS4gVGhpcyBwYXRjaAogICAgcmVuYW1lcyB0aGUgZmlsZXMgdG8gNHh4X3BjaS5jL2guCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk0Mjc2ZWIwYTdhMzViOWU4YzA1M2Q1ODlhZTIyNWIwZjAxN2EyMzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMyAxNDoxNDo1OCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgYSBjb21tZW50IGZvciA0MDVFWCBQQ0llIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDNkMzQ0YmI2YTVmMDgyZWExMGVjOWQ3NTM1NThlYTdkZmQxYzYyNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDEwOjM4OjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE1ha2UgNDQwU1BlIFBDSWUgY29kZSBtb3JlIGdlbmVyaWMgdG8gdXNlIG9uIGRpZmZlcmVudCA0eHggUFBDcyAoMykKCiAgICAoMykgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG1hY3JvcyBsaWtlIFNEUk5fUEVTRFJfRExQU0VUKHBvcnQpIHRvIGFjY2VzcwoJdGhlIFNEUiByZWdpc3RlcnMgb2YgdGhlIFBDSWUgcG9ydHMuIFRoaXMgbWFrZXMgdGhlIG92ZXJhbGwgZGVzaWduCgljbGVhcmVyLCBzaW5jZSBpdCByZW1vdmVkIGEgbG90IG9mIHN3aXRjaCBzdGF0ZW1lbnRzIHdoaWNoIGFyZSBub3QKCW5lZWRlZCBhbnltb3JlLgoKCUFsc28sIHRoZSBmdW5jdGlvbnMgcHBjNHh4X2luaXRfcGNpZV9yb290cG9ydCgpIGFuZAoJcHBjNHh4X2luaXRfcGNpZV9lbnRwb3J0KCkgYXJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uCglwcGM0eHhfaW5pdF9wY2llX3BvcnQoKSwgc2luY2UgbW9zdCBvZiB0aGUgY29kZSB3YXMgZHVwbGljYXRlZC4KCVRoaXMgbWFrZXMgbWFpbnRhaW5hbmNlIGFuZCBwb3J0aW5nIHRvIG90aGVyIDR4eCBwbGF0Zm9ybXMKCWVhc2llci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDI2ZjcxMTA2ODcxZjMxZDE3ZDBlYTBkYjlhNzU0N2ZmOTI5MzRiYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDA3OjQ4OjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE1ha2UgNDQwU1BlIFBDSWUgY29kZSBtb3JlIGdlbmVyaWMgdG8gdXNlIG9uIGRpZmZlcmVudCA0eHggUFBDcyAoMikKCiAgICBUaGlzIHBhdGNoIGlzIHRoZSBmaXJzdCBwYXRjaCBvZiBhIHNlcmllcyB0byBtYWtlIHRoZSA0NDBTUGUgUENJZSBjb2RlCiAgICB1c2FibGUgb24gZGlmZmVyZW50IDR4eCBQUEMgcGxhdGZvcm1zLiBJbiBwcmVwZXJhdGlvbiBmb3IgdGhlIG5ldyA0MDVFWAogICAgd2hpY2ggaXMgYWxzbyBlcXVpcHBlZCB3aXRoIFBDSWUgaW50ZXJmYWNlcy4KCiAgICAoMikgVGhpcyBwYXRjaCByZW5hbWVzIHRoZSBmdW5jdGlvbnMgZnJvbSA0NDBzcGVfIHRvIDR4eF8gd2l0aCBhCglsaXR0bGUgYWRkaXRpb25hbCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM3YzZkYTIzMDI4ZjE0NmQ5MTI1MTRiOTVhZWZhM2RhN2NmMzc2OTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMyAwNzozNDoxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBNYWtlIDQ0MFNQZSBQQ0llIGNvZGUgbW9yZSBnZW5lcmljIHRvIHVzZSBvbiBkaWZmZXJlbnQgNHh4IFBQQ3MgKDEpCgogICAgVGhpcyBwYXRjaCBpcyB0aGUgZmlyc3QgcGF0Y2ggb2YgYSBzZXJpZXMgdG8gbWFrZSB0aGUgNDQwU1BlIFBDSWUgY29kZQogICAgdXNhYmxlIG9uIGRpZmZlcmVudCA0eHggUFBDIHBsYXRmb3Jtcy4gSW4gcHJlcGVyYXRpb24gZm9yIHRoZSBuZXcgNDA1RVgKICAgIHdoaWNoIGlzIGFsc28gZXF1aXBwZWQgd2l0aCBQQ0llIGludGVyZmFjZXMuCgogICAgKDEpIFRoaXMgcGF0Y2ggcmVuYW1lcyB0aGUgZmlsZXMgZnJvbSA0NDBzcGVfcGNpZSB0byA0eHhfcGNpZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNDVhMzYyYWQzYzBjMWI4NGZjY2M5ZmVjN2I2MjNlYjE0ZjZlNTAyCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE9jdCAyNCAwMTozNzozNiAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogQ2FsbCB1c2JfY3B1X2luaXQoKSBkdXJpbmcgYm9hcmQgaW5pdAoKICAgIHVzYl9jcHVfaW5pdCgpIGNvbmZpZ3VyZXMgR1BTIFVTQiBwaW5zLCBjbG9ja3MsIGV0Yy4gYW5kCiAgICBpcyByZXF1aXJlZCBmb3IgcHJvcGVyIG9wZXJhdGlvbiBvZiBrZXJuZWwgVVNCIHN1YnN5c3RlbS4KICAgIFRoaXMgc2V0dXAgd2FzIHByZXZpb3VzbHkgZG9uZSBpbiB0aGUga2VybmVsIGJ5IHRoZSBmaXh1cAogICAgY29kZSB3aGljaCBpcyBiZWluZyByZW1vdmVkLCB0aHVzIGxvdyBsZXZlbCBpbml0IG11c3QgYmUKICAgIGRvbmUgYnkgVS1ib290IG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBiNWFmNzczZjhkOTI2NzdlMDZmMzI5NWI0NTU1N2M5ZDBhNDg3YzI0CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzo1MToyNyAyMDA3ICswODAwCgogICAgRml4IHRoZSBpc3N1ZSBvZiB1c2Jfa2JkIGRyaXZlciBtaXNzaW5nIHRoZSBzY2FuIGNvZGUgb2Yga2V5ICd6Jy4KCiAgICBUaGUgc2NhbiBjb2RlIG9mIHRoZSBrZXkgJ3onIGlzIDB4MWQsIHdoaWNoIHNob3VsZCBiZSBoYW5kbGVkLgoKICAgIFRoZSBjaGFuZ2UgaGFzIGJlIHRlc3RlZCBvbiBOT1ZBVEVLIFVTQiBrZXlib2FyZCBhbmQgVUxJIFBDSSBPSENJCiAgICBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDg1YWM5ODhlODZmOTQxNGZhNjQ1YjAxNDhkYzY2YzM1MjBhMWViODQKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBPY3QgMTUgMTE6NTk6MTcgMjAwNyArMDIwMAoKICAgIFBYQSBVU0IgT0hDSTogInVzYiBzdG9wIiBpbXBsZW1lbnRhdGlvbi4KCiAgICBTb21lIFVTQiBrZXlzIG5lZWQgdG8gYmUgc3dpdGNoZWQgb2ZmIGJlZm9yZSBsb2FkaW5nIHRoZSBrZXJuZWwKICAgIG90aGVyd2lzZSB0aGV5IGNhbiByZW1haW4gaW4gYW4gdW5kZWZpbmVkIHN0YXR1cyB3aGljaCBwcmV2ZW50cyB0aGVtCiAgICB0byBiZSBjb3JyZWN0bHkgcmVjb2duaXplZCBieSB0aGUga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAzMTU0ODI0OWRlY2YxOGE2Yjg3N2ExODQzNmI2MTM5ZGQ0ODNmZTRhCkF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxNzo0MDozNSAyMDA3IC0wNDAwCgogICAgREhDUCBDbGllbnQgRml4CgogICAgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCiAgICBjb21taXQgZTZlNTA1ZWFlOTRlZDcyMWUxMjNlMTc3NDg5MjkxZmM0NTQ0YjdiOAogICAgQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgRGF0ZTogICBNb24gT2N0IDI5IDE3OjE5OjAzIDIwMDcgLTA0MDAKCglGb3VuZCBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBESENQIFJlcXVlc3QgcGFja2V0IGlzIGJ1aWx0LCB3aGVyZSB0aGUgSVAgYWRkcmVzcwoJdGhhdCBpcyBvZmZlcmVkIGJ5IHRoZSBzZXJ2ZXIgaXMgYm91bmQgdG8gcHJlbWF0dXJlbHkuIFRoaXMgcGF0Y2ggaXMgYSBmaXggb2YKCXRoYXQgYnVnIHdoZXJlIHRoZSBJUCBhZGRyZXNzIG9mZmVyZWQgYnkgdGhlIERIQ1Agc2VydmVyIGlzIG5vdCB1c2VkIHVudGlsCglhZnRlciB0aGUgREhDUCBBQ0sgZnJvbSB0aGUgc2VydmVyIGlzIHJlY2VpdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBlOGVlOGYzYWRlMmEwNmMxODkzZGQ1ZTY4ZjIyMzA3MGQ2NTBjN2VkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjE2OjIyIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1NDQ1NTogRml4IGNvcnJlY3QgYm9vdCBsb2NhdGlvbiBmb3IgYXRtZWwgYW5kIGludGVsCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY4OGU4ZWI0MTRhYzExMWNjYTdjZTYwYmRmMzBlODA1YWI5YTdiY2IKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MTQ6MDAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggYnVpbGQgZXJyb3Igd2hlbiBDT05GSUdfV0FUQ0hET0cgaXMgZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjdlMTJlNzA1YjIwNGNmZTkxNGUzZTNlNjkzZDY5YTQ0NWRjYWJmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjEyOjM2IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MzI5OiBBc3NpZ24gY29ycmVjdCBTRFJBTSBzaXplIGFuZCBmaXggY2FjaGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTVlOWYyYzIxMmE2NTYxMGIyZTU5YTVjMDBkMDExMzM4M2E0ZGEwYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxMDoyMyAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTI1MzogQXNzaWduIGNvcnJlY3QgU0RSQU0gc2l6ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYWNlZmE3MmVlMDAyNmY4NjJhYjY1NTk3Y2E2ODc0MjhmNjNhOTczCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjA5OjE3IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MjgyOiBGaXggZXh0ZXJuYWwgZmxhc2ggYm9vdCBhbmQgcmV0dXJuIGRyYW1zaXplCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ3ODc5MWFlOTE0ZDRlN2M1ZWRjYTFjZGFkNzNiM2RjODFhNGViODIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjIwOjAxIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBpbmNyZWFzZSBrZXJuZWxfYWRkcl9yIGFuZCBmZHRfYWRkcl9yIChoaW50ZWQgYnkgV29sZmdhbmcgRGVuaykuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxYTBjZTIwYWE0Y2I0ZTMwNjhkYTA0ZTcyOTBlZTk5ODZmZDBiODM0CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBPY3QgMjQgMDg6NDI6MjUgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IGZpeCBzcHVyaW91cyBjaGFyYWN0ZXJzIG9uIHNlY29uZCBzZXJpYWwgaW50ZXJmYWNlCgogICAgV2l0aCB0aGlzIHBhdGNoIFBTQzMgaXMgY29uZmlndXJlZCBhcyBVQVJULiBUaGlzIGlzIGRvbmUsIGJlY2F1c2UgaWYKICAgIHRoZSBwaW5zIG9mIFBTQzMgYXJlIG5vdCBjb25maWd1cmVkIGF0IGFsbCAoLT4gYWxsIHBpbnMgYXJlIEdQSSksCiAgICBkdWUgdG8gY3Jvc3N0YWxrLCBzcHVyaW91cyBjaGFyYWN0ZXJzIG1heSBiZSBzZW5kIG92ZXIgdGhlIFJYMjMyXzJfVFhECiAgICBzaWduYWwgbGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiZTRhODdmMTFlMjk3YTVjZWRlZGJmN2RkNzFjMDI0OGYzODc0YWNkCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBPY3QgMjQgMDg6NDE6MjcgMjAwNyArMDIwMAoKICAgIFRRTTUyMDBTOiBmaXggY29tbWFuZHMgZm9yIFNUSzUyeHggYmFzZSBib2FyZCBiZWNhdXNlIG9mIG1pc3NpbmcgU001MDEgZ3JhZmljIGNvbnRyb2xsZXIKCiAgICBTb21lIGNvbW1hbmRzIGZvciB0aGUgU1RLNTJ4eCBiYXNlIGJvYXJkIHRyeSB0byBhY2Nlc3MgdGhlIFNNNTAxIGdyYWZpYwogICAgY29udHJvbGxlci4gQnV0IHRoZSBUUU01MjAwUyBoYXMgbm8gZ3JhZmljIGNvbnRyb2xsZXIgKG9ubHkgdGhlIFRRTTUyMDAKICAgIGFuZCB0aGUgVFFNNTIwMEIgaGF2ZSkuIFRoaXMgcGF0Y2ggZGVhY3RpdmF0ZXMgdGhlIGNvbW1hbmRzIGFjY2Vzc2luZwogICAgdGhlIFNNNTAxIGZvciB0aGUgVFFNNTIwMFMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYjMxZjY0MzQzZWFkOTQ4MmNkNDM5YjFhZGJlNGMzNDAyNmE2NDFiMQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjQ1OjUzIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBmaXggc3B1cmlvdXMgY2hhcmFjdGVycyBvbiBzZWNvbmQgc2VyaWFsIGludGVyZmFjZQoKICAgIFdpdGggdGhpcyBwYXRjaCBQU0MzIGlzIGNvbmZpZ3VyZWQgYXMgVUFSVC4gVGhpcyBpcyBkb25lLCBiZWNhdXNlIGlmCiAgICB0aGUgcGlucyBvZiBQU0MzIGFyZSBub3QgY29uZmlndXJlZCBhdCBhbGwgKC0+IGFsbCBwaW5zIGFyZSBHUEkpLAogICAgZHVlIHRvIGNyb3NzdGFsaywgc3B1cmlvdXMgY2hhcmFjdGVycyBtYXkgYmUgc2VuZCBvdmVyIHRoZSBSWDIzMl8yX1RYRAogICAgc2lnbmFsIGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgMGZjMGY5MWIyMGZmYTgwMmY1YTY2NTM0Y2E1YzI4NDQ5MTA1ODNmNgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjQwOjA2IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwUzogZml4IGNvbW1hbmRzIGZvciBTVEs1Mnh4IGJhc2UgYm9hcmQgYmVjYXVzZSBvZiBtaXNzaW5nIFNNNTAxIGdyYWZpYyBjb250cm9sbGVyCgogICAgU29tZSBjb21tYW5kcyBmb3IgdGhlIFNUSzUyeHggYmFzZSBib2FyZCB0cnkgdG8gYWNjZXNzIHRoZSBTTTUwMSBncmFmaWMKICAgIGNvbnRyb2xsZXIuIEJ1dCB0aGUgVFFNNTIwMFMgaGFzIG5vIGdyYWZpYyBjb250cm9sbGVyIChvbmx5IHRoZSBUUU01MjAwCiAgICBhbmQgdGhlIFRRTTUyMDBCIGhhdmUpLiBUaGlzIHBhdGNoIGRlYWN0aXZhdGVzIHRoZSBjb21tYW5kcyBhY2Nlc3NpbmcKICAgIHRoZSBTTTUwMSBmb3IgdGhlIFRRTTUyMDBTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDdiMGE0MjIxOWYzMDI3N2Y3MWY0NDA1Y2JhZjhhMjY5ZjZkMmQyMjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gT2N0IDIxIDA5OjE0OjI4IDIwMDcgKzAyMDAKCiAgICBNaXBzOiBGaXggc3RyaW5nIGZ1bmN0aW9ucyBkaWZmZXIgcHJvdG90eXBlIGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjYjgyNTBmZTRiM2M0ZWQ1NDliMjcwZThhMjBiYzIyMDYwZTdlMWQyCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAxNzo1MTo0MCAyMDA3IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IGVuYWJsZSBDT01NQU5EX01FTU9SWSBpZiBpbmJvdW5kIHdpbmRvdwoKICAgIFBhdGNoIDE2ZTIzYzNmIHJlbW92ZWQgUENTUkJBUiBhbGxvY2F0aW9uLglCdXQgcGFzc2luZyB6ZXJvIHdpbmRvd3MKICAgIHRvIHBjaWF1dG9fc2V0dXBfZGV2aWNlIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2Ygbm90IGdldHRpbmcKICAgIENPTU1BTkRfTUVNT1JZIHNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5ZDBkNTI3OTkyNTY2ZWJlZjk4MjY5NjJmZjE3NDViMmYwODJiOTIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDEwOjU1OjI0IDIwMDcgKzAyMDAKCiAgICBkZWx0YTogRml4IE9IQ0lfUkVHU19CQVNFIHVuZGVjbGFyZWQgYW5kIHdhaXRfbXMgaW1wbGljaXQgZGVjbGFyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDljNDg4NGY1NGRhOTgyY2U5OTBjN2QxNzYwYWM4MWIwNzA0ZDNjNjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDA4OjEwOjE1IDIwMDcgKzAyMDAKCiAgICBmaXggd2FybmluZzogbm8gcmV0dXJuIHN0YXRlbWVudCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU3ODIyMGY2ZTUxNDIwNjc1N2FjZmUyNDcyOTdmYzlhMzI4YTg4MWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDA2OjMzOjQ1IDIwMDcgKzAyMDAKCiAgICB4c2VuZ2luZTogRml4IG5vIHBhcnRpdGlvbiB0eXBlIHNwZWNpZmllZCwgdXNlIERPUyBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxMGNkYjhkYmQ2N2E4MTg4MjNhYjllYzg4YjY4ZmMzNDg5MDNkYjU5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwMDoyNDo1OSAyMDA3ICswMjAwCgogICAgbHViYm9jazogRml4IG5vIHBhcnRpdGlvbiB0eXBlIHNwZWNpZmllZCwgdXNlIERPUyBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0MWI0ZDI4MmQzOGZhNzIzMWMzMTVjNWY2Y2ZmZjViZGQyNGUwMTkxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNjo1MDowMyAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlOiBrZWVwIGxpc3RzIHNvcnRlZDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNThiNzRiMDVjNjIxZTI4MzVlY2Y0ZTJkMzI0MzA0MmNmNDE4Njc3NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MDk6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGRyaXZlcnMgbWFrZWZpbGUgZW50cmllcyBkczE3MjIuYyBtd19lZXByb20uYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTY0NTViZmViYzk4ODc4MzcwOTVjOTA1MWQyMTZmNTNjNjFiNWYxMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MDc6MzkgMjAwNyArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGJvYXJkL2lubm9rb20vaW5ub2tvbS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyYTQ3NDFkOWExNGVjNDc1ZjUwZTk4NTZkMmMwYTY3ZThiNDI3MWJkCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjI1OjMzIDIwMDcgKzAyMDAKCiAgICBmaXggcHhhMjU1X2lkcCBib2FyZAoKICAgIFRoZSBweGEyNTVfaWRwIGJlaW5nIGFuIG9sZCB1bm1haW50YWluZWQgYm9hcmQgc2hvd2VkIHNldmVyYWwgaXNzdWVzOgogICAgMS4gQ09ORklHX0lOSVRfQ1JJVElDQUwgd2FzIHN0aWxsIGRlZmluZWQuCiAgICAyLiBOZWl0aGVyIENPTkZJR19NQUNfUEFSVElUSU9OIG5vciBDT05GSUdfRE9TX1BBUlRJVElPTiB3YXMgZGVmaW5lZC4KICAgIDMuIFN5bWJvbCBmbGFzaF9hZGRyIHdhcyB1bmRlY2xhcmVkLgogICAgNC4gVGhlIGJvYXJkcyBsb3dsZXZlbF9pbml0IGZ1bmN0aW9uIHdhcyBzdGlsbCBjYWxsZWQgbWVtc2V0dXAuCiAgICA1LiBUaGUgVEVYVF9CQVNFIHdhcyBzdGlsbCAweGEzMDAwMDAwIHJhdGhlciB0aGFuIDB4YTMwODAwMDAuCiAgICA2LiBVc2luZyAtbWFyY2g9YXJtdjUgaW5zdGVhZCBvZiAtbWFyY2g9YXJtdjV0ZSByZXN1bHRlZCBpbiBsb3RzIG9mCiAgICAndGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IGludGVyd29ya2luZycgd2FybmluZ3Mgb24gcmVjZW50IGNvbXBpbGVycy4KICAgIDcuIFRoZSBQWEEncyBzZXJpYWwgZHJpdmVyIHJlZGVmaW5lZCBGRlVBUlQsIEJUVUFSVCBhbmQgU1RVQVJUIHVzZWQgYXMKICAgIGluZGV4ZXMgcmF0aGVyIHRoYW4gdGhlIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZyb20gdGhlIHB4YS1yZWdzIGhlYWRlcgogICAgZmlsZS4gUmVuYW1lZCB0aGVtIHRvIEZGVUFSVF9JTkRFWCwgQlRVQVJUX0lOREVYIGFuZCBTVFVBUlRfSU5ERVggdG8KICAgIGF2b2lkIGFueSBhbWJpZ3VpdGllcy4KICAgIDguIFRoZXJlIHdlcmUgc2V2ZXJhbCByZWRlZmluaXRpb24gd2FybmluZ3MgY29uY2VybmluZyBJQ01SLCBPU01SMywKICAgIE9TQ1IsIE9XRVIsIE9JRVIsIFJDU1IgYW5kIENDQ1IgaW4gdGhlIFBYQSdzIGFzc2VtYmx5IHN0YXJ0IGZpbGUuCiAgICA5LiBUaGUgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlIHdhcyByYXRoZXIgb3V0ZGF0ZWQuCiAgICAxMC4gVGhlIHBhcnQgaGVhZGVyIGZpbGUgZGVmaW5lZCB0aGUgdmVuZG9yLCBwcm9kdWN0IGFuZCByZXZpc2lvbiBhcnJheXMKICAgIGFzIHVuc2lnbmVkIGNoYXJzIGluc3RlYWQgb2YganVzdCBjaGFycyBpbiB0aGUgYmxvY2tfZGV2X2Rlc2NfdAogICAgc3RydWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCAyOThjZDRjYWZlODFmZjhhNmM4N2JlOGZiYzQ0MGEyMDcyMGQzZWQ2CkF1dGhvcjogUnVuZSBUb3JnZXJzZW4gPHJ1bmV0QGlubm92c3lzLmNvbT4KRGF0ZToJV2VkIE9jdCAxNyAxMTo1NjozMSAyMDA3IC0wNTAwCgogICAgTWFrZSBNUEM4MjY2QURTIGNvbW1hbmQgc2VsZWN0aW9uIG1vcmUgcm9idXN0CgogICAgRml4IE1QQzgyNjYgY29tbWFuZCBsaW5lIGRlZmluaXRpb24gc28gaXQgd29uJ3QgYnJlYWsgd2hlbiBuZXcgY29tbWFuZHMKICAgIGFyZSBhZGRlZCB0byB1LWJvb3QuCiAgICBTaWduZWQtb2ZmLWJ5IFJ1bmUgVG9yZ2Vyc2VuIDxydW5ldEBpbm5vdnN5cy5jb20+Cgpjb21taXQgZDNhZmExZWUxOTM0NWEzMWZkMWVhYWQzZTk4Yjk3ZDEzY2E0NzMxNQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTM6MTQ6MTAgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IFVwZGF0ZSBjb25maWd1cmF0aW9uIHRvIGFjY29tb2RhdGUgbmV4dCBnZW5lcmF0aW9uIGJvYXJkLgoKICAgIE5ldyBib2FyZCBoYXMgZmFzdGVyIG9zY2lsbGF0b3IgYW5kIGEgZGlmZmVyZW50IEZsYXNoIGNoaXAuIFRoaXMgYWZmZWN0czoKICAgIC0gQ0ZHX01QQzVYWFhfQ0xLSU4KICAgIC0gU0RSQU0gdGltaW5ncwogICAgLSBGbGFzaCBDUyBjb25maWd1cmF0aW9uICh0aW1pbmdzKQogICAgLSBGbGFzaCBzZWN0b3Igc2l6ZSwgYW5kIHRodXMgTVREIHBhcnRpdGlvbiBsYXlvdXQKICAgIC0gbWFsbG9jKCkgYXJlbmEgc2l6ZSAoZHVlIHRvIGJpZ2dlciBGbGFzaCBzZWN0b3JzKQogICAgLSBzbWFsbGVyIG1lbW9yeSB0ZXN0IHJhbmdlIChkdWUgdG8gYmlnZ2VyIG1hbGxvYygpIGFyZW5hKQoKICAgIFRoaXMgcGF0Y2ggYWxzbyBlbmFibGVzIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0aW5nIHZpYSAibXRlc3QiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZWZmNTAxOTA0ZGYyYmYxNzI0YTc1MDA2MjYyOGJhMmM1MWRiYjFmOApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTE6MzY6MDcgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBzZXR0aW5nIG9mIFNEZWxheSByZWcuIHRvIFNEUkFNIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbi4KCiAgICBQZXIgQU4zMjIxIChNUEM1MjAwQiBTRFJBTSBJbml0aWFsaXphdGlvbiBhbmQgQ29uZmlndXJhdGlvbiksIHRoZSBTRGVsYXkKICAgIHJlZ2lzdGVyIG11c3QgYmUgd3JpdHRlbiBhIHZhbHVlIG9mIDB4MDAwMDAwMDQgYXMgdGhlIGZpcnN0IHN0ZXAgb2YgdGhlCiAgICBTRFJBTSBjb250b3JsbGVyIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3YTkzNDg3MjhlYmRhNjNjZGJhYWNmZmQ4MzA5OWFhNzFkOWQ0YzU0CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIE9jdCAyMyAxMDoyMjoxNiAyMDA3ICswMTAwCgogICAgTW92ZSBQTDAxKiBzZXJpYWwgZHJpdmVycyB0byBkcml2ZXJzL3NlcmlhbCBhbmQgYWRqdXN0IE1ha2VmaWxlcy4KCmNvbW1pdCAyMGQ1MDBkNTMxYTZiOTcxY2U2Y2MxYmYxOTFjYjAwOTJjZGMwYWZjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDEwOjE3OjQyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogU29tZSBmdXJ0aGVyIEdQSU8gY29uZmlnIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGU5YTczOGZhYTdjMmY0NzI4NjExOWMzYmZlYmMzZGZiZmU3ZDg2ZApBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglTdW4gT2N0IDIxIDIyOjEwOjEwIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gRml4IFVOQ0FDSEVEX1NEUkFNCgogICAgUEhZU0FERFIgaXMgZm9yIHBoeXNpY2FsIGFkZHJlc3MsIEtTRUcxQUREUiBpcyBmb3IgdW5jYWNoZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgMDAxMDFkZDdhMzJkMTJmNjk4MTUwMTIzZTQ3ZTRiMzQyMDI3OWY4NgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAyMTozMDo0MiAyMDA3ICswOTAwCgogICAgW01JUFNdIEFkZCBQSUMtcmVsYXRlZCBzd2l0Y2hlcyB0byBQTEFURk9STV97Q1BQLExEfUZMQUdTIGFuZCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGViNzAwNjM2ZGIwMTdkMzEwZWRhZWI1NTliMTNkODI1ODg1NjA2NzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzcgMjAwNyArMDkwMAoKICAgIFtNSVBTXSB1LWJvb3QubGRzOiBEZWZpbmUgX2dwIGluIGEgc3RhbmRhcmQgbWFubmVyCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDIyMDY5MjE1ZWI3YWRmNWEzODg4YmY3Yzc3ODRlYTlkNzBhNzJjZDAKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBGaXggJGdwIHVzYWdlCgogICAgTm93IHdlIGxvYWQgJGdwIHdpdGggX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCBidXQgdGhpcyBpcyBpbmNvcnJlY3QgdXNlLgogICAgQXMgYSBnZW5lcmFsIHByaW5jaXBsZSwgd2Ugc2hvdWxkIHVzZSBfZ3AgZm9yICRncC4KCiAgICBUaGFua3MgdG8gbGlua2VyIHNjcmlwdCdzIGhlbHAgd2UgZm9ydHVuYXRlbHkgaGF2ZSBfZ3Agd2hpY2ggZXF1YWxzIHRvCiAgICBfR0xPQkFMX09GRlNFVF9UQUJMRV8uIEJ1dCBvbmNlIF9ncCBnZXRzIG91dCBvZiBhbGlnbm1lbnQsIHdlIHdpbGwgbm90CiAgICBiZSBhYmxlIHRvIGFjY2VzcyB0byBHT1QgZW50aXJlcywgZ2xvYmFsIHZhcmlhYmxlcyBhbmQgcHJvY2VkdXJlIGVudHJ5CiAgICBwb2ludHMuIFRoZSByaWdodCB0aGluZyB0byBkbyBpcyB0byB1c2UgX2dwLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2UgYSBuZXcgc3ltYm9sIGAuZ3B3b3JkIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXycKICAgIHdoaWNoIGhvbGRzIHRoZSBvZmZzZXQgZnJvbSBfZ3AuIFdoZW4gdXBkYXRpbmcgR09UIGVudHJpZXMsIHdlIHVzZSB0aGlzCiAgICBvZmZzZXQgYW5kIF9ncCB0byBjYWxjdWxhdGUgdGhlIGZpbmFsIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy4KCiAgICBUaGlzIHBhdGNoIGlzIG9yaWdpbmFsbHkgc3VibWl0dGVkIGJ5IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPiwgdGhlbgogICAgSSBtYWRlIHNvbWUgY2hhbmdlIHRvIGxlYXZlIG92ZXIgbnVtX2dvdF9lbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIENjOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBjYmYyMzIzYjViODI4NWVhMDFhY2JhN2JiYjkwNWEzMTYyZDliMDIxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogRml4IF9fZ290X3N0YXJ0IGFuZCBfX2dvdF9lbmQKCiAgICBFbnN1cmUgdGhhdCBfX2dvdF9zdGFydCBwb2ludHMgdG8gdG9wIG9mIHRoZSBgLmdvdCcsIGFuZCBfX2dvdF9lbmQgcG9pbnRzCiAgICB0byBib3R0b20gYXMgd2VsbCwgc28gdGhhdCB3ZSBuZXZlciBmYWlsIHRvIGNvdW50IG51bV9nb3RfZW50cmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgZTVmMzI1ZmVjNWI0OGFlNzA1Yzg5NTIyOTIzYmE1YTJlMzdjZDVjNwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAxMDo1NTozNiAyMDA3ICswOTAwCgogICAgW01JUFNdIHUtYm9vdC5sZHM6IFJlbW92ZSBkdXBsaWNhdGVkIC5zZGF0YSBzZWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDA1YmY0OTE5YzFjZTQ5Y2RlZGFkYWNkNTY0ZDA3ODZhOGVkNzk2YTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDAxOjAxOjE3IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmYyODVjYTA3ZWRhMWVhNGE4OTA5ODQ4Y2MxY2M2MDRlYzhmZWM5YwpBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglUaHUgT2N0IDQgMjA6NDc6MTAgMjAwNyArMDMwMAoKICAgIEZpeCBORTIwMDAgZHJpdmVyOgoKICAgIEZpeGVkIHR5cG8gaW4gbmUyMDAwLmgsIHRoaW5rbyByZSBuMmtfaW5iKCkgdXNhZ2UsIGRvbid0IHRyeQogICAgdG8gZG8gYW55dGhpbmcgaW4gZXRoX3N0b3AoKSBpZiBldGhfaW5pdCgpIHdhcyBub3QgY2FsbGVkLgogICAgU2ltcGxpZmllZCBSWCBwYXRoIGluIG9yZGVyIHRvIGF2b2lkIHRpbWVvdXRzIG9uIHJlYWxseSByZWFsbHkKICAgIGZhc3QgTkUyMDAwIGNhcmRzIChyZWFkOiBxZW11IHdpdGggaW50ZXJuYWwgdGZ0cCksIE5ldExvb3AoKSBpcwogICAgY2xldmVyIGVub3VnaCB0byBjb3BlIHdpdGggMSBwYWNrZXQgcGVyIGV0aF9yeCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGRmOTA5NjhiNDhmYjM0ZmE5MDcyZmFiMTUwZGIyYWM4OTY3OGY1MzcKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTM6MzI6MTMgMjAwNyAtMDQwMAoKICAgIFNldHRpbmcgTVNSW0RFXSBpbiBkb19yZXNldAoKICAgIEhlbGxvLAogICAgICAgVGhpcyBwYXRjaCBlbnN1cmVzIHRoZSBzb2Z0IHJlc2V0IG9mIHRoZSBib2FyZCBmb3IgdGhlIDg1eHggYm9hcmRzCiAgICAgICBieSBzZXR0aW5nIHRoZSBNU1JbREVdIGluIHRoZSBkb19yZXNldCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdWdob3NoIEdhbnUgPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgoKY29tbWl0IDFlNzAxZTcwMTMwNGIzYzNhMzc2OGNhODNkZDJhYjdiOWU4OGM3N2QKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTM6MzY6MDEgMjAwNyAtMDQwMAoKICAgIE1TUiBvdmVyd3JpdGUgZml4CgogICAgSGVsbG8sCiAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIE1TUiBvdmVyd3JpdGUgaW4gdGhlIHN0YXJ0LlMgd2hlbiBtb3Zpbmcgb3V0IG9mCiAgICAgIHRoZSBsYXN0IDRLIHBhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3VnaG9zaCBHYW51IDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KCmNvbW1pdCA1YzdlYTY0YmI3NGE4NTBhMmIyMzAzZjg1M2E4MjcwNjk1YWQ4NjAyCkF1dGhvcjogRGFuIFdpbHNvbiA8ZHdpbHNvbkBmdWxjcnVtbWljcm8uY29tPgpEYXRlOglGcmkgT2N0IDE5IDExOjMzOjQ4IDIwMDcgLTA1MDAKCiAgICB0c2VjIGRyaXZlciBzaG91bGQgY2xlYXIgUkhBTFQgb24gc3RhcnR1cAoKICAgIFRoaXMgd2FzIGNhdXNpbmcgcHJvYmxlbXMgZm9yIHNvbWUgcGVvcGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsYWluIEdyYXZlbCA8YWdyYXZlbEBmdWxjcnVtbWljcm8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGFuIFdpbHNvbiA8ZHdpbHNvbkBmdWxjcnVtbWljcm8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MDBkNDdiOGY2YTEwMDE5ZTUzN2RjOWE2MmFhMTQ5OGRmNThkMjUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDExIDAwOjI5OjE4IDIwMDcgLTA1MDAKCiAgICBJbXByb3ZlIGhhbmRsaW5nIG9mIFBDSSBpbnRlcnJ1cHQgZGV2aWNlIHRyZWUgZml4dXAgb24gTVBDODV4eCBDRFMKCiAgICBPbiB0aGUgTVBDODV4eCBDRFMgd2UgaGF2ZSB0d28gaXNzdWVzOgoKICAgIDEuIFRoZSBkZXZpY2UgdHJlZSBmaXh1cCBjb2RlIGRpZCBub3QgY2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9wZXJ0eSB3ZSBhcmUKICAgIHRyeWluZyB0byB1cGRhdGUgaXMgYWN0dWFsbHkgZm91bmQuICBJdHMgcG9zc2libGUgdGhhdCBpdCB3b3VsZCB1cGRhdGUKICAgIHJhbmRvbSBtZW1vcnkgc3RhcnRpbmcgYXQgMC4KCiAgICAyLiBOZXdlciBMaW51eCBrZXJuZWwncyBoYXZlIG1vdmVkIHRoZSBsb2NhdGlvbiBvZiB0aGUgUENJIG5vZGVzIHRvIGJlCiAgICBzaWJpbGluZ3Mgb2YgdGhlIHNvYyBub2RlIGFuZCBub3QgY2hpbGRyZW4uICBUaGUgZXhwbGljaXQgUEFUSCB0byB0aGUgUENJCiAgICBub2RlIHdvdWxkIG5vdCBiZSBmb3VuZCBmb3IgdGhlc2UgZGV2aWNlIHRyZWVzLiAgQWRkIHRoZSBhYmlsaXR5IHRvIGhhbmRsZQogICAgYm90aCBwYXRocy4gIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkbid0IGhhbmRsZSBzdWNoIGZpeHVwcyBieSBleHBsaWNpdCBwYXRoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTMwNjNlZWM3NzU3MTliN2U5MTAyM2JiZWMzZjY0YjMxMTg3OTFkZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMTEgMDA6MTg6NDggMjAwNyAtMDUwMAoKICAgIFNldCBPRl9TVERPVVRfUEFUSCB0byBtYXRjaCB0aGUgZGVmYXVsdCBjb25zb2xlIG9uIE1QQzg1NjggTURTCgogICAgT24gdGhlIE1QQzg1NjggTURTIHdlIHVzZSB0dHlTMCwgVUFSVDAsIGV0Yy4gYXMgdGhlIHN0YW5kYXJkIGNvbmZpZ3VyZWQKICAgIGNvbnNvbGUuICBNYWtlIGl0IHNvIHdlIG1hdGNoIHRoYXQgY29uZmlnIHdoYXQgd2UgdGVsbCBMaW51eCBhcyB0aGUgZWFybHkKICAgIFNURE9VVCBjb25zb2xlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTFjZTNjYjYxN2JiMDZmOTFmODJmOTg5MTUzOTExNzVhZGRmM2U4MgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMiAxMToxMjoyNyAyMDA3IC0wNTAwCgogICAgUmVtb3ZlIG1hZ2ljIG51bWJlcnMgZnJvbSBjYWNoZSByZWxhdGVkIG9wZXJhdGlvbnMgZm9yIG1wYzg1eHgKCiAgICBUaGUgbXBjODV4eCBzdGFydCBjb2RlIHVzZXMgc29tZSBtYWdpYyBudW1iZXJzIHRoYXQgd2UgYWN0dWFsbHkKICAgIGhhdmUgI2RlZmluZXMgZm9yIGluIDxjb25maWcuaD4gc28gdXNlIHRob3NlIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NDQxZjYxYTNkOGI3MDM0ZjE5ZmMxMzYxMTgzZTkzNjE5OGU2ZGJiCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTkgMTY6NDc6MjYgMjAwNyArMDIwMAoKICAgIEZpeCB0d28gdHlwb3MuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgMjgxZGY0NTdjMWFhNTBkMjc1MjE2NWQwYzVjMzI4MmQ0MDI3Yjk3NApBdXRob3I6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOCAxNzo0NzoxOSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIGNvbmZpZ3VyZSBlbnRyeSBmb3IgTVBDODN4eCBBVE0gc3VwcG9ydAoKICAgIEFkZCBNUEM4MzYwRU1EU19BVE1fY29uZmlnIGFuZCBNUEM4MzJYRU1EU19BVE1fY29uZmlnIGludG8KICAgIE1ha2ZpbGUgYW5kIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQyNjQ2NTU0ZjUyOWE5NTc3NTE1ZWNlYjBlYzVlY2VlZTE4MjQ0YmEKQXV0aG9yOiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTggMTc6NDQ6MzggMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IHBxLW1kcy1waWIuYyB0eXBvIGVycm9yCgogICAgQ29ycmVjdCB0byB2YWw4IGZyb20gdmFsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2UxMWFlODBmZWMxZWUxMjE5NDk0MDk1NTQzMTE4NmFiZjYwMDljMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxNTo0MDoxOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgNjY3LzEzMyAoQ1BVL1BMQikgZnJlcXVlbmN5IHNldHVwIHRvIFNlcXVvaWEgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2M4OWQ3NTQwOWViMjY2MzlkMzZkZmExMWQ0ZWUzZDhiOTYyZGMzYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTYgMTU6Mjc6NDMgMjAwNyAtMDUwMAoKICAgIEluaXRpYWwgbXBjODYxMGhwY2QgTWFrZWZpbGUgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1haGVzaCBKYWRlIDxtYWhlc2guamFkZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTU1M2RmODZkM2EzMTljM2ExYTdjZGU3ZTRlZGQ2ZWViNWFhNjRjNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTYgMTU6MjY6NTEgMjAwNyAtMDUwMAoKICAgIEluaXRpYWwgbXBjODYxMGhwY2QgY3B1LywgUkVBRE1FIGFuZCBpbmNsdWRlLyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFoZXNoIEphZGUgPG1haGVzaC5qYWRlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZGQyZGI1M2NlYjBkZmY4MGYyNWMyYTA3ZjgzZjI5YjkwN2I0MDNlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxNiAxMzo1NDowMSAyMDA3IC0wNTAwCgogICAgSW5pdGlhbCBtcGM4NjEwaHBjZCBib2FyZCBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFoZXNoIEphZGUgPG1haGVzaC5qYWRlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZWU2YmExYTA1NmU0MDYxYWI0Y2ZkZTMwMTI3ZTMzMmU3OTU3YWZkCkF1dGhvcjogcnVuZXRAaW5ub3ZzeXMuY29tIDxydW5ldEBpbm5vdnN5cy5jb20+CkRhdGU6CVR1ZSBPY3QgMTYgMTQ6NTA6NDAgMjAwNyAtMDUwMAoKICAgIE1ha2UgTVBDODI2NkFEUyBib2FyZCBjb21waWxlIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJ1bmV0IFRvcmdlcnNlbiA8cnVuZXRAaW5ub3ZzeXMuY29tPgoKY29tbWl0IDI0OTExNjdjMjQ1ZDhlYmU2ZjJkYmQ4YzQyODdhYWEwZDE0ZmU5M2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDI3IDEyOjQxOjAzIDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBBbGxvdyBmb3IgZmV3ZXIgRERSIHNsb3RzIHBlciBtZW1vcnkgY29udHJvbGxlci4KCiAgICBBcyBhIGRpcmVjdCBjb3JyZWxhdGlvbiBleGlzdHMgYmV0d2VlbiBERFIgRElNTSBzbG90cwogICAgYW5kIFNQRCBFRVBST00gYWRkcmVzc2VzIHVzZWQgdG8gY29uZmlndXJlIHRoZW0sIHVzZQogICAgdGhlIGluZGl2aWR1YWxseSBkZWZpbmVkIFNQRF9FRVBST01fQUREUkVTUyogdmFsdWVzIHRvCiAgICBkZXRlcm1pbmUgaWYgYSBERFIgRElNTSBzbG90IHNob3VsZCBoYXZlIGl0cyBTUEQKICAgIGNvbmZpZ3VyYXRpb24gcmVhZCBvciBub3QuCgogICAgRWZmZWN0aXZlbHksIHRoaXMgbm93IGFsbG93cyBmb3IgMSBvciAyIERJTU0gc2xvdHMKICAgIHBlciBtZW1vcnkgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkNGE5NDVlMTg5YTJmMzg0YzY2NDMyMzE2ZGEyNzg4YTBhYzE2MDcKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBPY3QgMTUgMTE6NTk6MTcgMjAwNyArMDIwMAoKICAgIFBYQSBVU0IgT0hDSTogInVzYiBzdG9wIiBpbXBsZW1lbnRhdGlvbi4KCiAgICBTb21lIFVTQiBrZXlzIG5lZWQgdG8gYmUgc3dpdGNoZWQgb2ZmIGJlZm9yZSBsb2FkaW5nIHRoZSBrZXJuZWwKICAgIG90aGVyd2lzZSB0aGV5IGNhbiByZW1haW4gaW4gYW4gdW5kZWZpbmVkIHN0YXR1cyB3aGljaCBwcmV2ZW50cyB0aGVtCiAgICB0byBiZSBjb3JyZWN0bHkgcmVjb2duaXplZCBieSB0aGUga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGUyZTkzNDQyZTU1OGNmMTUwMGU5Mjg2MWY5OTcxM2IyZjA0NWVhMjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMTUgMTE6Mzk6MDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGJ1ZyBpbiBJMkMgYm9vdHN0cmFwIHZhbHVlcyBmb3IgU2VxdW9pYS9SYWluaWVyCgogICAgVGhlIEkyQyBib290c3RyYXAgdmFsdWVzIHRoYXQgY2FuIGJlIHNldHVwIHZpYSB0aGUgImJvb3RzdHJhcCIgY29tbWFuZCwKICAgIHdlcmUgc2V0dXAgaW5jb3JyZWN0IHJlZ2FyZGluZyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgaW50ZXJuYWwgc3luYyBQQ0kKICAgIGNsb2NrLiBUaGUgdmFsdWVzIGZvciBQTEIgY2xvY2sgPT0gMTMzTUh6IHdlcmUgc2xpZ2hseSBpbmNvcnJlY3QgYW5kIHRoZQogICAgdmFsdWVzIGZvciBQTEIgY2xvY2sgPT0gMTY2TUh6IHdlcmUgdG90YWxseSBpbmNvcnJlY3QuIFRoaXMgY291bGQKICAgIGxlYWQgdG8gYSBoYW5ndXAgdXBvbiBib290aW5nIHdoaWxlIFBDSSBjb25maWd1cmF0aW9uIHNjYW4uCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlIGFuZCBjb25maWd1cmVzIHZhbGlkIFBDSSBkaXZpc29yIHZhbHVlcwogICAgZm9yIHRoZSBzeW5jIFBDSSBjbG9jaywgd2l0aCByZXNwZWN0IHRvIHRoZSBwcm92aWRlZCBleHRlcm5hbCBhc3luYwogICAgUENJIGZyZXF1ZW5jeS4KCiAgICBIZXJlIHRoZSB2YWx1ZXMgb2YgdGhlIGZvcm11bGEgaW4gdGhlIGNoYXB0ZXIgMTQuMiAiUENJIGNsb2NraW5nIgogICAgZnJvbSB0aGUgNDQwRVB4IHVzZXJzIG1hbnVhbDoKCiAgICBBc3luY1BDSUNMSyAtIDFNSHogPD0gU3luY1BDSUNsayA8PSAoMiAqIEFzeW5jUENJQ2xrKSAtIDFNSHoKCiAgICAzM01IeiBhc3luYyBQQ0kgZnJlcXVlbmN5OgogICAgUExCID0gMTMzOgogICAgPT4JICAgIDMyIDw9IDQ0LjMgPD0gNjUJICAgIChkaXYgPSAzKQoKICAgIFBMQiA9IDE2NjoKICAgID0+CSAgICAzMiA8PSA1NS4zIDw9IDY1CSAgICAoZGl2ID0gMykKCiAgICA2Nk1IeiBhc3luYyBQQ0kgZnJlcXVlbmN5OgogICAgUExCID0gMTMzOgogICAgPT4JICAgIDY1IDw9IDY2LjUgPD0gMTMyCSAgICAoZGl2ID0gMikKCiAgICBQTEIgPSAxNjY6CiAgICA9PgkgICAgNjUgPD0gODMgPD0gMTMyCSAgICAoZGl2ID0gMikKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWE1OTU4YjdkZTcwYWU5OWYwZTdjYmQ1Yzk3ZWMxMzQ2ZTA1MTU4NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAxNSAxMToyOTozMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggaW5jb3JyZWN0IDMzLzY2TUh6IFBDSSBjbG9jayBsb2ctbWVzc2FnZSBvbiBTZXF1b2lhICYgWW9zZW1pdGUKCiAgICBUaGUgQkNTUiBzdGF0dXMgYml0IGZvciB0aGUgNjZNSHogUENJIG9wZXJhdGlvbiB3YXMgY29ycmVjdGx5CiAgICBhZGRyZXNzZWQgKE1TQi9MU0IgcHJvYmxlbSkuIE5vdyB0aGUgY29ycmVjdCBjdXJyZW50bHkgc2V0dXAKICAgIFBDSSBmcmVxdWVuY3kgaXMgZGlzcGxheWVkIHVwb24gYm9vdHVwLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyB0aGlzIHByb2JsZW0gb24gUmFpbmllciAmIFllbGxvd3N0b25lLCBzaW5jZSB0aGVzZQogICAgYm9hcmRzIHVzZSB0aGUgc2FtZSBzb3VjZSBjb2RlIGFzIFNlcXVvaWEgJiBZb3NlbWl0ZSBkby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGEzYWFkNTVjYmRlODBhYjZlMzAxYWFmYTgyYTJjNDExYWE1M2VmZgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU2IDIwMDcgKzAyMDAKCiAgICBUUU04NjBNOiBhZGp1c3QgZm9yIGRvdWJsZWQgZmxhc2ggc2VjdG9yIHNpemUuCgogICAgQWRqdXN0IGZsYXNoIG1hcCB0byBzdXBwb3J0IHRoZSBuZXcgUzI5R0x4eE4gKE4tVHlwZSkgRmxhc2hlcyB3aXRoCiAgICBkb3VibGVkIHNlY3RvciBzaXplLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDlkMjkyNTBlMmU2MmY0YmYyMGM3YTIwYjQxNzNkODRjNDhmMTFmNWQKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxqZW5zLmdlaHJsZWluQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NCAyMDA3ICswMjAwCgogICAgVFFNOHh4OiBGaXggQ0FOIHRpbWluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBkNDNlNDg5YmFmMDJhZmFlNDkwNzc3OTFmYjIyMzMyZDI0MGQ4NjU2CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVRodSBTZXAgMjcgMTQ6NTQ6MzYgMjAwNyArMDIwMAoKICAgIFRRTTg2Nk06IGZpeCBTRFJBTSByZWZyZXNoCgogICAgQXQgMTMzIE1IeiB0aGUgY3VycmVudCBTRFJBTSByZWZyZXNoIHJhdGUgaXMgdG9vIGZhc3QKICAgIChtZWFzdXJlZCA0ICogMS4xNyB1cykuCiAgICBDRkdfTUFNUl9QVEEgY2hhbmdlcyBmcm9tIDM5IHRvIDk3LiBUaGlzIHJlc3VsdAogICAgaW4gYSByZWZyZXNoIHJhdGUgb2YgNCAqIDcuOCB1cyBhdCB0aGUgZGVmYXVsdCBjbG9jawogICAgNTAgTUh6LiBBdCAxMzMgTUh6IHRoZSB2YWx1ZSB3aWxsIGJlIHRoZW4gNCAqIDIuOSB1cy4KICAgIFRoaXMgaXMgYSBjb21wcm9taXNlIHVudGlsIGEgbmV3IG1ldGhvZCBpcyBmb3VuZCB0bwogICAgYWRqdXN0IHRoZSByZWZyZXNoIHJhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgOWVmNTdiYmVlMWM2N2NjMDFkYTIwMjZjMjQyYzQ2OTJkYjMyYmUzNgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU1IDIwMDcgKzAyMDAKCiAgICBUUU04NjZNOiBhZGp1c3QgZm9yIGRvdWJsZWQgZmxhc2ggc2VjdG9yIHNpemUuCgogICAgQWRqdXN0IGZsYXNoIG1hcCB0byBzdXBwb3J0IHRoZSBuZXcgUzI5R0x4eE4gKE4tVHlwZSkgRmxhc2hlcyB3aXRoCiAgICBkb3VibGVkIHNlY3RvciBzaXplLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGY4YmY5MDQ2MWQ5YmFkMmU2ZmVkMzFmY2ViYWYyMzVmNjBkZDY3NjMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBPY3QgMTQgMTY6MTI6MjkgMjAwNyArMDIwMAoKICAgIFtGSVhdIFhVUFYyUCBjaGFuZ2UgY29tbWFuZCBoYW5kbGluZwogICAgYW5kIHJlbW92ZSBjb2RlIHZpb2xhdGlvbgoKY29tbWl0IDYzNjQwMDE5ODIyOGQ5Njk4M2MwNjY1N2IxN2Y3NjBmNTk4OTk1OGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDE0IDAwOjEzOjE5IDIwMDcgKzAyMDAKCiAgICBQcmVwYXJlIGZvciAxLjMuMC1yYzMgcmVsZWFzZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjhmMTRmNzdjYTVmZTVmOWNjMDI1YzhjYWUxMDE2NzFmNjI4MzA5ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBTZXAgMjkgMTM6NDE6MzcgMjAwNyArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNwdS9weGEvbW1jLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGZjMTllMzZmNzQxZThiYzcyN2MwYTMzMDE3MGIzYjVkYjkwMzk5ZWYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDEzIDIzOjUxOjE0IDIwMDcgKzAyMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBib2FyZC9tcGwvdmNtYTkvdmNtYTkuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGRlNzRiOWVlYWNjY2FmMGE0MmU1ZWNjOWFlNzlhODhmN2EzMTEyOTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDEzIDIxOjE1OjM5IDIwMDcgKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUxODkzODE1YjA5OTk0MTBkN2EzMjc1ODk2MTFjN2IzOGU5NTI5OWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDEyIDE1OjQ5OjM5IDIwMDcgKzAyMDAKCiAgICBHUDMgU1NBOiBlbmFibGUgUlRDCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4MDAyMDEyMDQxZjFmZjlmOTk3YTU3MjdhYmU1MDE1ZjcwY2QyZTQ2CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgOSAxMzo1ODoyNCAyMDA3ICswMjAwCgogICAgW2FkczUxMjFdIEVFUFJPTSBzdXBwb3J0IGFkZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdiNjI0YWQyNTRiOTdlNWEyNWRjYTIzMDRhMzk4YjY0YWVlZGFmZmUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE9jdCA2IDE4OjU1OjM1IDIwMDcgKzAyMDAKCiAgICBBVlIzMjogSW5pdGlhbGl6ZSBiaV9mbGFzaCogaW4gYm9hcmRfaW5pdF9yCgogICAgVGhlIEFUU1RLMTAwMC1zcGVjaWZpYyBmbGFzaCBkcml2ZXIgaW50aWFsaXplcyBiaV9mbGFzaHN0YXJ0LAogICAgYmlfZmxhc2hzaXplIGFuZCBiaV9mbGFzaG9mZnNldCwgYnV0IG90aGVyIGZsYXNoIGRyaXZlcnMsIGxpa2UgdGhlIENGSQogICAgZHJpdmVyLCBkb24ndC4KCiAgICBJbml0aWFsaXplIHRoZXNlIGluIGJvYXJkX2luaXRfciBpbnN0ZWFkIHNvIHRoYXQgdGhpbmdzIHdpbGwgc3RpbGwgYmUKICAgIHNldCB1cCBjb3JyZWN0bHkgd2hlbiB3ZSBzd2l0Y2ggdG8gdGhlIENGSSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMmIyYTU4N2Q2ZDMwNzYzODdkMjJhYzc0MGY0NDA0NGJmNDZlMmNiOApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBPY3QgNSAxMDo0MDo1NCAyMDA3ICswMjAwCgogICAgdHFtNTIwMDogRml4IENPTkZJR19DTURfUENJIHR5cG8gaW4gYm9hcmQgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5Mjg2OTE5NWVmODIxMDc1OGQyMTc2MjMwYzBhMzY4OTdhZmQ1MGVkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIE9jdCA1IDA5OjQ2OjA2IDIwMDcgKzAyMDAKCiAgICBDTTUyMDA6IEZpeCBtaXNzaW5nIG51bGwtdGVybWluYXRpb24gaW4gaG9zdG5hbWUgbWFuaXB1bGF0aW9uIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDlhZGQ5ODg0YjFmZGRjMzRjYTE4NmUwMGEyZjg2OGNjZDVkMDJkODcKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVHVlIE9jdCAyIDE5OjA5OjAxIDIwMDcgKzAyMDAKCiAgICBGaXggbWVtdGVzdCBicmVha2FnZQoKICAgIENGR19NRU1URVNUX1NUQVJUIHVzZXMgd2VpcmQgbWFnaWMgaW52b2x2aW5nIGdkLCB3aGljaCBmYWlscyB0bwogICAgY29tcGlsZS4gVXNlIGhhcmRjb2RlZCB2YWx1ZXMgaW5zdGVhZCAod2UgYWN0dWFsbHkga25vdyBob3cgbXVjaCBSQU0KICAgIHdlIGhhdmUgb24gYm9hcmQuKQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDczODgxNWMwY2M0NGFhMzI5MDk3Zjg2OGRjMWVmYzQ5ZWRlOWM1YmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMiAxMTo0NDo0NiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4N2MxODMzYTM5ZTk0NGRiNjYzODUyODZmZDVlMjhmOWIzZmNkZDUwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIgMTE6NDQ6MTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBSZW1vdmUgd2F0Y2hkb2cgZm9yIG5vdywgc2luY2Ugbm90IGZ1bGx5IHRlc3RlZCB5ZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmRiNjQ3ODQwNjFiZmMzNGY0YmE3MGVmMWQyZmJlNzEzM2I1NTY3MApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gT2N0IDEgMDk6NTE6NTAgMjAwNyArMDIwMAoKICAgIFByb2dyYW0gRVBMRCB0byBmb3JjZSBmdWxsIGR1cGxleCBtb2RlIGZvciBQSFkuCgogICAgRVBMRCBmb3JjZXMgbW9kZXMgb2YgUEhZIG9wZXJhdGlvbi4gQnkgZGVmYXVsdCBmdWxsIGR1cGxleCBpcyB0dXJuZWQgb2ZmLgogICAgVGhpcyBmaXggdHVybnMgaXQgb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgNzg1YzEzNDc3Yjc3ZGNkMmU2YzUxMjhmZmZjZGI0ZTE5NDNmNDgxOApBdXRob3I6IFRpbW8gS2V0b2xhIDx0aW1vLmtldG9sYUBleGVydHVzLmZpPgpEYXRlOglNb24gU2VwIDI0IDE0OjUwOjMyIDIwMDcgKzAzMDAKCiAgICBCdWdmaXg6IFVzZSBvbmx5IG9uZSBQVEQgZm9yIG9uZSBlbmRwb2ludAoKICAgIE9yaWdpbmFsIGlzcDExNngtaGNkIGNvZGUgcHJlcGFyZWQgbXVsdGlwbGUgUFREcyBmb3IgbG9uZ2VyIHRoYW4gMTYKICAgIGJ5dGUgdHJhbnNmZXJzIGZvciBvbmUgZW5kcG9pbnQuIFRoYXQgaXMgdW5uZWNlc3NhcnkgYmVjYXVzZSB0aGUKICAgIElTUDExNnggaXMgYWJsZSB0byBzcGxpdCBsb25nIGRhdGEgZnJvbSBvbmUgUFREIGludG8gbXVsdGlwbGUKICAgIHRyYW5zYWN0aW9ucyBiYXNlZCBvbiB0aGUgYnVmZmVyIHNpemUgb2YgdGhlIGVuZHBvaW50LiBJdCBhbHNvIGNhdXNlZAogICAgc2VyaW91cyBwcm9ibGVtcyBpZiB0aGUgZW5kcG9pbnQgTkFLZWQgc29tZSBvZiB0aGUgdHJhbnNhY3Rpb25zLiBJbgogICAgdGhhdCBjYXNlIElTUDExNnggd291bGRuJ3Qgbm90aWNlIHRoYXQgdGhlIG90aGVyIFBURHMgd2VyZSBmb3IgdGhlIHNhbWUKICAgIGVuZHBvaW50IGFuZCB3b3VsZCB0cnkgdGhlIG90aGVyIFBURHMgcG9zc2libHkgb3V0IG9mIG9yZGVyLiBUaGF0IHdvdWxkCiAgICBicmVhayB0aGUgd2hvbGUgdHJhbnNmZXIuCgogICAgVGhpcyBwYXRjaCBtYWtlcyBpc3AxMTZ4X3N1Ym1pdF9qb2IgdG8gdXNlIG9uZSBQVEQgZm9yIG9uZSB0cmFuc2Zlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW1vIEtldG9sYSA8dGltby5rZXRvbGFAZXhlcnR1cy5maT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgODZlYzg2YzA0MzI2YzM5MTMxNzhhNzY3OWFhOTEwZGUwNzFkYTc1ZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBTZXAgMjcgMjM6Mjc6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBtaXNzaW5nIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIG9uIENPTkZJR19MUEMyMjkyIGluIHNlcmlhbAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgM2U5NTRiZWI2MTRiNWIxOTBkN2Y0ZjRjM2I2NDE0MzdhMDEzMmUzNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCAxMSAxNDoxMjo1NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IENoYW5nZSBHUElPIDU4IHRvIGRlZmF1bHQgdG8gbG93ICh3YXRjaGRvZyB0ZXN0KQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDg3YWRiZGNmOTU5NGJiMmViNjg2MzI1YTZmOTU0MGRhZDFiNzBhCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAyNiAxNjozNTo1NCAyMDA3IC0wNTAwCgogICAgODV4eCBpbyBvdXQgZnVuY3Rpb25zIG5lZWQgc3luYyBhZnRlciB3cml0ZS4KCiAgICBUaGlzIGZpeGVzIHRoZSBtYzE0NjgxOCBydGNfcmVhZC93cml0ZSBmdW5jdGlvbnMgZm9yIDg1eHguCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZDM4ZWZmYzZlMzU5ZTZiMWIwYzc4ZDY2ZThiYzFhNGRjMTVhMmFlCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgU2VwIDI1IDE1OjQ4OjA1IDIwMDcgLTA2MDAKCiAgICBGcGdhOiBmaXggaW5jb3JyZWN0IHRlc3Qgb2YgQ0ZHX0ZQR0FfWElMSU5YIG1hY3JvCgogICAgQ0ZHX0ZQR0FfWElMSU5YIGlzIGEgYml0IHZhbHVlIHVzZWQgdG8gdGVzdCBhZ2FpbnN0IHRoZSB2YWx1ZSBpbgogICAgQ09ORklHX0ZQR0EuICBUZXN0aW5nIGZvciBhIHZhbHVlIHdpbGwgYWx3YXlzIHJldHVybiBUUlVFLglJIGRvbid0CiAgICB0aGluayB0aGF0IGlzIHRoZSBpbnRlbnRpb24gaW4gdGhpcyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA4NTM2NDNkOGNmMmNhODBjYjJlMjVjNTNhZDVkYzU4MGFiYWZlMTY2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjQxOjMwIDIwMDcgKzAyMDAKCiAgICBbRklYXSBjaGFuZ2UgY29tbWFuZCBoYW5kbGluZyBhbmQgcmVtb3ZpbmcgY29kZSB2aW9sYXRpb24KCmNvbW1pdCBmMjQwMzU2NTA3MDM4ZTVjZTU1ZThhMjRjYjI2MDdlOWVhZTZkMTBjCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjM2OjA2IDIwMDcgKzAyMDAKCiAgICBbRklYXSBjaGFuZ2Ugc2V0cyBvZiBjb21tYW5kcwogICAgYmVjYXVzZSBjaGFuZ2luZyBvZiBjb21tYW5kIGhhbmRsaW5nIGJyaW5ncwogICAgY29tcGlsYXRpb24gcHJvYmxlbXMKCmNvbW1pdCBjYjFiYzYzYjc1YTIzMjU3MWViNjlhYTJjOGFhOTE5MzIxNjU1ODQ1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjMwOjQyIDIwMDcgKzAyMDAKCiAgICBbRklYXSBFbWFpbCByZXBhcmF0aW9uICYgQ29weXJpZ2h0CiAgICBCb3RoIGNvZGVzIGFyZSB3cml0dGVuIGJ5IG15c2VsZiB3aXRob3V0IGFueQogICAgc3VwcG9ydCBmcm9tIENUVQoKY29tbWl0IDA3MzFjYmFlNmMyZmVhYjkzYjI0NGQ4M2ZkNmE0M2Y1Y2M5YmY4NTIKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MjU6MTEgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQ2hhbmdlIG1hY3JvIG5hbWUgZm9yIFVhcnRMaXRlCiAgICBiZWNhdXNlIFBvd2VyUEMgNDA1IGNhbiB1c2UgVWFydExpdGUgYXMgY29uc29sZQoKY29tbWl0IDFjMTEwMGQyZmNmNDZiOWQxMWRjZjc4ZDZlNWFlYTc1ZTJlOGI3MTYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MjE6MTkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIGRlc2lnbiB3aXRob3V0IGludGVycnVwdCBjb250cm9sbGVyCiAgICBQb2xsaW5nIHRpbWVyCgpjb21taXQgMDczMTkzM2VjOGVjNDVkMDJiYTg5YjUyZGY2NzNkNTI2ODczY2RkZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoxOTo0OCAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVzb2x2ZSBwcm9ibGVtIHdpdGggY3B1IHdpdGhvdXQgYmFycmVsIHNoaWZ0ZXIKCmNvbW1pdCBkYjE0ZDc3OTk1Y2U1MTViNzI4YjE3OGI2M2Y4MmJhYmU2MGUzZDU2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjE4OjQ2IDIwMDcgKzAyMDAKCiAgICBbRklYXSByZXBhaXIgZW1haWwgYWRkcmVzcwoKY29tbWl0IDQ4MWQ0MzI4NjE4ODA0YWRkMWY4MThhNmM5NjI5NjEyMWNkMDUyOGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MTc6NDIgMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlcGFpciBNRlNMIGNvbW1hbmRzCgpjb21taXQgYjkwYzA0NWYwMzVjM2NjOWI1ZDJlZGFlZDYwNDhkZmI3NGU0MDc2MwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDowODozNyAyMDA3ICswMjAwCgogICAgc3luY2hyb25peml0aW9uIHdpdGggbWFpbmxpbmUKCmNvbW1pdCBlZGEzZTFlNjYxOWFkMGJlZTk0YWU0YjE2Yzk5ZDg4ZTc3ZTJhZjEzCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjQyOjM4IDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgY29tbWFuZCBvZiBpZGUgd2l0aCBzaAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBkOTFlYTQ1ZDE1Y2Y4ZTA5ODc0NTZiZDIxMWZmYmI2NTA4MjRiNmYxCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjM4OjQyIDIwMDcgKzA5MDAKCiAgICBzaDogVXBkYXRlIE1ha2VmaWxlCgogICAgQWRkIHN1cHBvcnQgTVM3NzIyU0UwMSB0byBNYWtlZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmMwYmJkY2NkMzc5ZjVjODcwMmFmOWUwNzY1Mjk0YzJmYjc0NzJhNgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjozMToxMyAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFJlbmVzYXMgc2g3NzIyIHByb2Nlc3NvciBhbmQgSGl0YWNoaSBNUzc3MjJTRTAxIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDA0NzM3NWJmYTRjMzA1MmZhNTBhNzQ4ZGE3ZmY4OWU5ZGFkM2IzNjQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6MTk6MjQgMjAwNyArMDkwMAoKICAgIHNoOiBVcGRhdGUgTVM3NzUwU0UwMSBwbGF0Zm9ybQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA1MTZhZDc2MGRiMzU1Mzc2NjI2N2FkYTAxYjdkNWQ3MjdmYWE0YmJkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjE3OjA4IDIwMDcgKzA5MDAKCiAgICBzaDogUmVtb3ZlIGNvbW1lbnQgb3V0IGNvZGUgZnJvbSBpbmNsdWRlL2FzbS1zaC9jcHVfc2g0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYjAyYmFkMTI4NjY5ZTU2N2ZjZTg3ZDhkZjgyM2IwNmEwMTQ0YjhkYgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjoxMjozMCAyMDA3ICswOTAwCgogICAgc2g6IFVwZGF0ZSBjb3JlIGNvZGUgb2YgU3VwZXJILgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2NmRjYWQzYTlhNTNlMDc2NmQ5MGUwMDg0MTIzYmQ4NTI5NTIyZmIwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IFNlcCAyMCAwMDowNDoxNCAyMDA3ICswMjAwCgogICAgdjEuMy4wLXJjMgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTM1ZTE5YmMyNzczZWJjYTQ4N2U5YTgzNzFmNjdlMWJhMjAyMzEzYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgMTggMjE6MzY6MzUgMjAwNyArMDIwMAoKICAgIEF2b2lkIGNvbXBpbGVyIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4YTc4M2E2NTg1MWJjNzQyMWFiNjlmNDQyMjYxMjE1ZTIxYjg4OTFhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgU2VwIDE4IDEyOjI0OjU3IDIwMDcgLTA2MDAKCiAgICBCdWdmaXg6IHJlbW92ZSBlbWJlZGRlZCBudWxsIChcMCkgZnJvbSBDRkdfQk9PVEZJTEUgbWFjcm8gaW4gVFFNODU0MF9jb25maWcKCiAgICAvYmluL2Jhc2ggYW5kIC9iaW4vZGFzaCAod2hpY2ggL2Jpbi9zaCBpcyBsaW5rZWQgdG8gb24gdWJ1bnR1KSBoYW5kbGUgZW1iZWRkZWQKICAgIG51bGxzIGluIGEgc3RyaW5nIGRpZmZlcmVudGx5LiAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50OgoJZWNobyAidGhpcyBpcyBhIHN0cmluZ1wwIiA+IGFmaWxlCiAgICBXaWxsIHByb2R1Y2UgdGhlIGZvbGxvd2luZyB3aXRoIC9iaW4vYmFzaDoKCSJ0aGlzIGlzIGEgc3RyaW5nXDAiCiAgICBCdXQgd2l0aCAvYmluL2Rhc2gsIHdpbGwgcHJvZHVjZToKCSJ0aGlzIGlzIGEgc3RyaW5nCgogICAgQnVnIGZpeGVkIGJ5IG1vdmluZyB0aGUgZW1iZWRkZWQgbnVsbCBvdXQgb2YgdGhlIG1ha2VmaWxlIGFuZCBpbnRvIHRoZQogICAgY29uZmlnIGhlYWRlci4gIEFsc28gcmVuYW1lZCB0aGUgbWFjcm8gdG8gYXZvaWQgdXNhZ2UgY29saXNpb24gd2l0aCB0aGUgc2FtZQogICAgbWFjcm8gdXNlZCBieSBvdGhlciBib2FyZCBwb3J0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjhkM2NhN2I2ZmEzMjJhYzU3ZThlODMxZjA3ZGJlZWEwMzlhOWYzNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgMTggMTc6NDA6MjcgMjAwNyArMDIwMAoKICAgIE1DQzIwMDogZml4IGJ1aWxkIHdhcm5pbmcKCiAgICBUaGUgTUNDMjAwIGJvYXJkIGNvbmZpZyBmaWxlIGluY2x1ZGVzIHZlcnNpb24uaCBmb3Igc29tZSBjdXN0b21lci0KICAgIHNwZWNpZmljIHNldHRpbmcsIHdoaWNoIGNhdXNlcyB3YXJuaW5ncyB3aXRoICJtYWtlIGRlcGVuZCI7IGJ1aWxkCiAgICB2ZXJzaW9uLmggYmVmb3JlIGRlcGVuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGJkODYyMjBmNThiOTlkNjg5NjE5OGMzODVmZGExMzJmMGM5ODA5MTUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDE4IDEzOjA3OjU0IDIwMDcgKzAxMDAKCiAgICBNb3ZlIGNvbG91cmVkIGxlZCBBUEkgdG8gc3RhdHVzX2xlZC5oCiAgICBJbXByb3ZlIGluZGVudGF0aW9uIGluIGRyaXZlcnMvYXQ0NS5jCgpjb21taXQgZTgwZTU4NWIwMGZiYmFiN2FkMWJmNzE2MTk3NDFmMmM1YjAyOWFiNwpBdXRob3I6IEVpcmlrIEFhbm9uc2VuIDxlYWFAd3BybWVkaWNhbC5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMDg6NDc6MjAgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBhdHN0azEwMDIgYm9vdGFyZ3MuCgogICAgVXBkYXRlcyB0byBhdHN0azEwMDIgVS1Cb290IGhlYWRlciBmaWxlOgogICAgLSBDaGFuZ2VkIGJvb3RhcmdzOgoJKiBTZXQgdGhlIGJvb3RhcmdzIGZvciBhdDEwMDIgdG8gcG9pbnQgdG8gdGhlIFNELWNhcmQgcGFydGl0aW9uIGluc3RlYWQKCSogLi4uIG9mIHRoZSBib290IGZsYXNoLgoJKiBSZW1vdmluZyB0aGUgcm9vdGZzdHlwZSBzaW5jZSB0aGF0IGFyZ3VtZW50IGFyZSBub3QgbmVlZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVpcmlrIEFhbm9uc2VuIDxlYWFAd3BybWVkaWNhbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBhNGYzYWFiNmRmYmVkNmMyOTM2N2M2ODhiZmI4YTQ3ZWVmNjJjMjI1CkF1dGhvcjogRWlyaWsgQWFub25zZW4gPGVhYUB3cHJtZWRpY2FsLmNvbT4KRGF0ZToJV2VkIFNlcCAxMiAxMzozMjozNyAyMDA3ICswMjAwCgogICAgQWRkIHNvbWUgY29tbWVudHMgdG8gY2xvY2tzIGluIGF0c3RrMTAwMi5oCgogICAgVGhpcyBwYXRjaCBhcHBsaWVzIHNvbWUgY2xhcmlmeWluZyBjb21tZW50cyB0byBob3cgdGhlIGRpZmZlcmVudAogICAgY2xvY2tzIGFyZSBzZXR1cCBhY2NvcmRpbmcgdG8gYXRzdGsxMDAyLmggU29tZSBvZiB0aGUgcHJldmlvdXMKICAgIGNvbW1lbnRzIHdoZXJlIHN0YXRpbmcgd3JvbmdmdWwgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTcyMTNmMzI0MTZlYWQ4ODVkZWFmZWE4Njc3NGU5MTJmZmQ2MGFkMApBdXRob3I6IERhdmlkIFNhYWRhIDxEYXZpZC5TYWFkYUBlY2l0ZWxlLmNvbT4KRGF0ZToJTW9uIFNlcCAxNyAxNzowNDo0NyAyMDA3ICswMjAwCgogICAgRGVzY3JpcHRpb246IEFkZCBORUMncyBQQ0kgT0hDSSBtb2R1bGUgSUQgdG8gdGhlIFVTQiBPSENJIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNhYWRhIDxkYXZpZC5zYWFkYUBlY2l0ZWxlLmNvbT4KCmNvbW1pdCAzMDM2M2U5OGZhNDcwZmJlY2VhNWU4YmMwZjE0NDMzNTI3NTRmMzAzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gU2VwIDE3IDA4OjIwOjQ3IDIwMDcgKzAyMDAKCiAgICBTbWFsbCB3aGl0ZXNwYWNlIGNsZWFudXAgb2YgT25lTkFORCBwYXRjaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkN2U4Y2UxMDFhNGE0NWVkNmVkNDU3MzlmYzJkZTVmODdiMTNmN2YxCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBTZXAgMTAgMTc6MTU6MTQgMjAwNyArMDkwMAoKICAgIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBbUEFUQ0ggMy8zXSBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgT25lTkFORCBzdXBwb3J0IGF0IFUtQm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgMTdhYTI4MDA0NTdkZjBjMDZiNDE1MTZmNDZmMTI2NzEyYzE5NjIxOQpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gU2VwIDEwIDE3OjE0OjM0IDIwMDcgKzA5MDAKCiAgICBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgW1BBVENIIDIvM10gT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIE9uZU5BTkQgc3VwcG9ydCBhdCBVLUJvb3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDkxNjUyN2Y0ODA5YTdiY2Q4MTFmMWYxZGFmMzRhZjE4NGUzMWRkOGMKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIFNlcCAxMCAxNzoxMzo0OSAyMDA3ICswOTAwCgogICAgT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIFtQQVRDSCAxLzNdIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBPbmVOQU5EIHN1cHBvcnQgYXQgVS1Cb290CgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBiNDljOTBkZjZlN2NmY2ZiOGI4NjJiOGJiZjg0NDhkZmY1ZWVkOWE1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gU2VwIDE2IDIwOjUxOjU3IDIwMDcgKzAyMDAKCiAgICBbRklYXSByZW1vdmUgZmlsZXMgZm9ybSByZXBvc2l0b3J5Cgpjb21taXQgNjdjMzEwMzZhY2FhYWE5OTJmYzM0NmNjODlkYjA5MDlhN2U3MzNjNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBTZXAgMTYgMTc6MTA6MDQgMjAwNyArMDIwMAoKICAgIFRRTTh4eFtMTV06IEZpeCBicm9rZW4gZW52aXJvbm1lbnQgYWxpZ25tZW50LgoKICAgIFdpdGggcmVjZW50IHRvb2xjaGFpbnMsIHRoZSBlbnZpcm9ubWVudCBzZWN0b3JzIHdlcmUgbm8gbG9uZ2VyIGFsaWduZWQgdG8KICAgIHNlY3RvciBib3VuZGFyaWVzLiBUaGUgcmVhc29uIHdhcyBhIGNvbWJpbmF0aW9uIG9mIHR3byBidWdzOgoKICAgIDEpIGNvbW1vbi9lbnZpcm9ubWVudC5jIGFzc3VtZWQgdGhhdCBDT05GSUdfVFFNOHh4TCB3b3VsZCBiZSBkZWZpbmVkCiAgICAgICBmb3IgYWxsIFRRTTh4eEwgYW5kIFRRTTh4eE0gYm9hcmRzLiBCdXQgImluY2x1ZGUvY29tbW9uLmgiLCB3aGVyZQogICAgICAgdGhpcyBnZXRzIGRlZmluZWQsIGlzIG5vdCBpbmNsdWRlZCBoZXJlIChhbmQgY2Fubm90IGJlIGluY2x1ZGVkCiAgICAgICB3aXRob3V0IGNhdXNpbmcgbG90cyBvZiBwcm9ibGVtcykuCgogICAgICAgQWRkZWQgYSBuZXcgI2RlZmluZSBDRkdfVVNFX1BQQ0VOViBmb3IgYWxsIGJvYXJkcyB3aGljaCByZWFsbHkKICAgICAgIHdhbnQgdG8gcHV0IHRoZSBlbnZpcm9ubWVudCBpcyBhICIucHBjZW52IiBzZWN0aW9uLgoKICAgIDIpIFRoZSBsaW5rZXIgc2NyaXB0cyBqdXN0IGluY2x1ZGUgZW52aXJvbm1lbnQubywgc2lsZW50bHkgYXNzdW1pbmcKICAgICAgIHRoYXQgdGhlIG9iamVjdHMgaW4gdGhhdCBmaWxlIGFyZSByZWFsbHkgaW4gdGhlIG9yZGVyIGluIHdoaWNoCiAgICAgICB0aGV5IGFyZSBjb2RlZCBpbiB0aGUgQyBmaWxlLCBpLiBlLiAiZW52aXJvbm1lbnQiIGZpcnN0LCB0aGVuCiAgICAgICAicmVkdW5kYW5kX2Vudmlyb25tZW50IiwgYW5kICJlbnZfc2l6ZSIgbGFzdC4gSG93ZXZlciwgY3VycmVudAogICAgICAgdG9vbGNoYWlucyAoR0NDLTQueCkgcmVvcmRlciB0aGUgb2JqZWN0cywgY2F1c2luZyB0aGUgZW52aXJvbm1lbnQKICAgICAgIGRhdGEgbm90IHRvIHN0YXJ0IG9uIGEgZmxhc2ggc2VjdG9yIGJvdW5kYXJ5OgoKICAgICAgIEluc3RlYWQgb2Y6CQkJCQl3ZSBnb3Q6CgoJNDAwMDgwMDAgVCBlbnZpcm9ubWVudAkJCTQwMDA4MDAwIFQgZW52X3NpemUKCTQwMDBjMDAwIFQgcmVkdW5kYW5kX2Vudmlyb25tZW50CTQwMDA4MDA0IFQgcmVkdW5kYW5kX2Vudmlyb25tZW50Cgk0MDAxMDAwMCBUIGVudl9zaXplCQkJNDAwMGMwMDQgVCBlbnZpcm9ubWVudAoKICAgICAgIE5vdGU6IHRoaXMgcGF0Y2ggZml4ZXMganVzdCB0aGUgZmlyc3QgcGFydCwgYW5kIGN1cmVzIHRoZSBhbGlnbm1lbnQKICAgICAgIHByb2JsZW0gYnkgbWFraW5nIHN1cmUgdGhhdCAiZW52X3NpemUiIGdldHMgcGxhY2VkIGNvcnJlY3RseS4gSG93ZXZlciwKICAgICAgIHdlIHN0aWxsIGhhdmUgYSBwb3RlbnRpYWwgaXNzdWUgYmVjYXVzZSBwcmltYXJ5IGFuZCByZWR1bmRhbnQKICAgICAgIGVudmlyb25tZW50IHNlY3RvcnMgYXJlIGFjdHVhbGx5IHN3YXBwZWQsIGkuIGUuIHdlIGhhdmUgbm93OgoKCTQwMDA4MDAwIFQgcmVkdW5kYW5kX2Vudmlyb25tZW50Cgk0MDAwYzAwMCBUIGVudmlyb25tZW50Cgk0MDAxMDAwMCBUIGVudl9zaXplCgogICAgICAgVGhpcyBzaGFsbCBiZSBmaXhlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZWI2ZGE4MDUwNzk3YzIwNGM5ZDAxMDU0ODQyNDE4NmM3Y2UzMmZjMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBTZXAgMTYgMDI6Mzk6MzUgMjAwNyArMDIwMAoKICAgIFRRTTh4eC9GUFM4eHg6IGFkanVzdCBmbGFzaCBwYXJ0aXRpb25zIGZvciAyLjYgQVJDSD1wb3dlcnBjIGtlcm5lbHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNkMmQxNjAyYzU0Y2M2OTU3YmRlZjM4NzIyNzJhNGIyNjQ4OTM5NjAKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMTAgMTQ6NTQ6NTYgMjAwNyAtMDQwMAoKICAgIFR5cG8gZml4IGluIHRzZWMuYwoKICAgIEZpeHVwIGZvciB0aGUgYnJlYWsgc3RhdGVtZW50IGluIHdyb25nIHBsYWNlLgoKICAgIFtQYXRjaCBieSB1cndpdGhzdWdob3NoQGdtYWlsLmNvbV0KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OglXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDViZDdmZTlhZWI3NjkwNjM3MWY0MGI4ZmQwNzYxM2YxMDkyMmUzZTcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAxMSAxNzowNDowMCAyMDA3ICswMjAwCgogICAgRml4IGRvX2RpdigpIHVzYWdlIGluIG5hbmQgcHJvY2VzcyBvdXRwdXQKCiAgICBGaXggdXNhZ2Ugb2YgZG9fZGl2KCkgaW4gbmFuZCBlcmFzZXxyZWFkfHdyaXRlIHByb2Nlc3Mgb3V0cHV0LgoKICAgIFRoZSBsYXN0IHBhdGNoIHRvIG5hbmRfdXRpbC5jIGludHJvZHVjZWQgZG9fZGl2KCkgaW5zdGVhZCBvZiBsaWJnY2MncwogICAgaW1wbGVtZW50YXRpb24uIEJ1dCBkb19kaXYoKSByZXR1cm5zIHRoZSBxdW90aWVudCBpbiBpdHMgZmlyc3QKICAgIG1hY3JvIHBhcmFtZXRlciBhbmQgbm90IGFzIHJlc3VsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjNzUwZDJlNjY5MmEwMDBhODJmMjlkZTdiZjI0ZTNkYzIxMjM5MTYxCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBTZXAgMTIgMTI6MzY6NTMgMjAwNyArMDIwMAoKICAgIE5BTkQ6IEFkZCBDRkdfTkFORF9RVUlFVCBvcHRpb24KCiAgICBUaGlzIGNvbmZpZyBvcHRpb24gc2V0cyB0aGUgZGVmYXVsdCBmb3IgdGhlIHByb2dyZXNzIGluZm9ybWF0aW9uCiAgICBvdXRwdXQgYmVoYXZpb3IgdGhhdCBjYW4gYWxzbyBiZSBjb25maWd1cmVkIHRocm91Z2ggdGhlICdxdWlldCcKICAgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKICAgIFRoZSBsZWdhY3kgTkFORCBjb2RlIGRvZXMgbm90IHByaW50IHRoZSBjdXJyZW50IHByb2dyZXNzIGluZm8KICAgIG9uIHRoZSBjb25zb2xlLiBTbyB0aGlzIG9wdGlvbiBpcyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IKICAgIHVuaXRzIHRoYXQgYXJlIGluIHRoZSBmaWVsZCBhbmQgd2hlcmUgc2V0dGluZyB0aGUgcXVpZXQgdmFyaWFibGUKICAgIGlzIG5vdCBhbiBvcHRpb24uIFdpdGggQ0ZHX05BTkRfUVVJRVQgc2V0IHRvICcxJyB0aGUgY29uc29sZQogICAgcHJvZ3Jlc3MgaW5mbyBpcyB0dXJuZWQgb2ZmLiBUaGlzIGNhbiBzdGlsbCBiZSBvdmVyd3JpdHRlbgogICAgdGhyb3VnaCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZGNiODg2MzAyOTBkMmJjZDgwMzM4NmRkNGMyYmU3MzE0Mjk5NGM0ZgpBdXRob3I6IExpZXcgVHNpIENodW5nLXI1YWFocCA8VHNpLWNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxNjowNjowNSAyMDA3IC0wNzAwCgogICAgQ29sZEZpcmU6IGZpeCBidWlsZCBlcnJvciBiZWNhc3VlIG9mIGJhZCB0eXBlIG9mIG1paV9pbml0KCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzE0ZDViNmNlNTJhNGVkMTlkZDI5NWQxMzY0ZTI0NmM1ZTYwNTAxNwpBdXRob3I6IExpZXcgVHNpIENodW5nLXI1YWFocCA8VHNpLWNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxNjowNDowNSAyMDA3IC0wNzAwCgogICAgQ29sZEZpcmU6IEZpeCBidWlsZCBlcnJvciBjYXVzZWQgYnkgcGl4aXMuYwoKICAgIE1vdmVkIHRoZSAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+IGluc2lkZSB0aGUgI2lmZGVmIENPTkZJR19GU0xfUElYSVMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUyMTY1OWUzMDY2MGExMzc3YzQyYWYxMzVhNjExNGVmZTM5ODAxZDkKQXV0aG9yOiBTYW0gU3BhcmtzIDxTU3BhcmtzQHR3YWNzLmNvbT4KRGF0ZToJRnJpIFNlcCAxNCAxMToxNDo0MiAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzgzNDlJVFgqX2NvbmZpZyB0byBwbGFjZSBjb25maWcudG1wIGluIHJpZ2h0IHBsYWNlLgoKICAgIE1QQzgzNElUWCpfY29uZmlnIGRvZXMgbm90IHN0b3JlIGNvbmZpZy50bXAgYXQgdGhlIGNvcnJlY3QgbG9jYXRhdGlvbiwKICAgIGNhdXNpbmcgTVBDODM0OUlUWEdQIHRvIGhhdmUgdGhlIHdyb25nIFRFWFRfQkFTRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW0gU3BhcmtzIDxTU3BhcmtzQHR3YWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxMjE4YWJmMWI1ODE3YTM5YTgyMzk5YjRiOTI4YjAwNzUwNTc1YmRhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IFNlcCAxNSAyMDo0ODo0MSAyMDA3ICswMjAwCgogICAgRml4IGNhc2VzIHdoZXJlIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIHdhcyBub3QgZGVjbGFyZWQgYXMgZ2xvYmFsCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2NmIzZjI0ZDY2NWJlNjc4YTlkYmIxMjViMWU4NDE4NTQwMGY2M2I1CkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJU2F0IFNlcCAxNSAxMTo1NTo0MiAyMDA3ICswMjAwCgogICAgTWFrZSBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBnbG9iYWwgZm9yIERhVmluY2kKCiAgICBBcyBkaXNjdXNzZWQgaW4gWzFdLCBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBoYXMgdG8gYmUgZ2xvYmFsIGFuZCBub3QKICAgIGZ1bmN0aW9uIGxvY2FsLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKICAgIFsxXSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC5ib290LWxvYWRlcnMudS1ib290LzMxODA1Cgpjb21taXQgOTkxYjA4OWQxY2U1YWQ5NDU3MjVlMzY1N2E4ZjEwNmRmYTAyYTM4ZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IFNlcCAxNSAwMDowMzozNSAyMDA3ICswMjAwCgogICAgU3luY2hyb25pemUgd2l0aCBVLUJPT1QgbWFpbmxpbmUKCmNvbW1pdCBkN2ZlZTMyYjdlNjFmZTExYzY0ZTM3MWNkZTc5ZmFhNDc2OGU4MzUwCkF1dGhvcjogU2FtIFNwYXJrcyA8U1NwYXJrc0B0d2Fjcy5jb20+CkRhdGU6CUZyaSBTZXAgMTQgMTE6MTQ6NDIgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4MzQ5SVRYKl9jb25maWcgdG8gcGxhY2UgY29uZmlnLnRtcCBpbiByaWdodCBwbGFjZS4KCiAgICBNUEM4MzRJVFgqX2NvbmZpZyBkb2VzIG5vdCBzdG9yZSBjb25maWcudG1wIGF0IHRoZSBjb3JyZWN0IGxvY2F0YXRpb24sCiAgICBjYXVzaW5nIE1QQzgzNDlJVFhHUCB0byBoYXZlIHRoZSB3cm9uZyBURVhUX0JBU0UuCgogICAgU2lnbmVkLW9mZi1ieTogU2FtIFNwYXJrcyA8U1NwYXJrc0B0d2Fjcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZlN2I3YjZlYTFiNmQwNGRiZTk2MjQyZWI2YTBjMWM2NjRjOThlOGMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE4OjIxOjQ4IDIwMDcgKzAyMDAKCiAgICBjbTUyMDA6IEZpeCBhIHR5cG8gaW50cm9kdWNlZCBieSBhZmFhYzg2ZmUyOTQ4YWM4NGNkOWExMmJiZWQ4ODNiM2M2ODNlN2Q5CgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlMWY2MDFiNTcyZGI1ZGU5YWE4MWEwYjc3YzY4YTg2OTk0ZmUyNGM0CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxNjozMzo1OSAyMDA3ICswMjAwCgogICAgdHFtNTIwMDogUmVzdG9yZSBjdXN0b21hcnkgZW52LiB2YXJpYWJsZSBib290IGNvbW1hbmRzIGZvciBwb3dlcnBjIGtlcm5lbHMKCiAgICAtIHVwZGF0ZSBkZWZhdWx0IGRlZmluaXRpb25zIG9mIGtlcm5lbF9hZGRyIGFuZCBmZHRfYWRkciBlbnYuIHZhcmlhYmxlcwogICAgLSBtYWtlIGFyY2gvcG93ZXJwYyBib290aW5nIHRoZSBkZWZhdWx0IHNjZW5hcmlvCiAgICAtIHVwZGF0ZSBNVEQgcGFydGl0aW9uIGxheW91dCB0byBtYXRjaCB0aGUgYWJvdmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGYzNDAyNGQ0YTMyOGU2ZWRkOTA2NDU2ZGE5OGQyYzUzNzE1NWM0ZjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgU2VwIDEyIDAwOjQ4OjU3IDIwMDcgKzAyMDAKCiAgICBGaXggbWVtb3J5IGNvcnJ1cHRpb24gcHJvYmxlbSBvbiBTVFggR1AzIFNTQSBCb2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ5NGM3OWU0NzAxMWFmNWU4ZGQxMGVkNjE2M2MwOWI0Y2ZjNzQzY2MKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDExIDE1OjM1OjAxIDIwMDcgKzAxMDAKCiAgICBGaW5hbCB0aWR5Cgpjb21taXQgMzhhZDgyZGEwYzExODBlY2RlYjIxMmE4ZjQyNDVlOTQ1YmNjNTQ2ZQpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgU2VwIDExIDE1OjQyOjExIDIwMDcgKzAyMDAKCiAgICBbR1AzU1NBXSBBZGQgZGVmaW5lIENPTkZJR19NUEM4NVhYX1BDSTIgaW4gY29uZmlnIGZpbGUgdG8gYWxsb3cgdS1ib290IHRvCiAgICBzY2FuIG9uIHNlY29uZCBwY2kgYnVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDZjMmY0ZjM4OGU4MTgxNjU1ZWE4YjY5MzQzZWEwMGI2OGFhNmU4ZDAKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIFNlcCAxMSAxMjo1Nzo1MiAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gSW5kaXZpZHVhbCBoYW5kbGluZyBvZiBzZHJhbS5jIGZvciBiYW1ib29fbmFuZCBidWlsZAoKICAgIEJhbWJvbyBoYXMgYSBmaWxlIHNkcmFtLmMgd2hpY2ggbmVlZHMgc3BlY2lhbCB0cmVhdG1lbnQgd2hlbiBidWlsZGluZyBpbgogICAgc2VwYXJhdGUgZGlyZWN0b3J5LiBJdCBoYXMgdG8gYmUgbGlua2VkIHRvIGJ1aWxkIGRpcmVjdG9yeSBvdGhlcndpc2UgaXQgaXMKICAgIG5vdCBzZWVuLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQ0NTk2Mzg1NGVmZjM5ZDU3NTEyNGQ4NTk0MTliYjQ5NTNjZTJjODcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBTZXAgMTEgMDA6Mzc6MDQgMjAwNyArMDIwMAoKICAgIFtGSVhdIE1pY3JvYmxhemUgTUw0MDEgLSByZXBhcmUgRkxBU0ggaGFuZGxpbmcKCmNvbW1pdCAzOGMxZWY3MjhkMTk5NTA0MTRhOGFiMWNjZmM1Mzc2Nzg0OGZhMzQ2CkF1dGhvcjogU2VhbiBNQ0dPT0dBTiA8c2Vhbi5tY2dvb2dhbkBzdC5jb20+CkRhdGU6CU1vbiBTZXAgMTAgMTY6NTU6NTkgMjAwNyArMDEwMAoKICAgIEFsbG9jYXRlIENQVSBBcmNoaXRlY3R1cmUgQ29kZSBmb3IgU1RNaWNyb2VsZWN0cm9uaWNzJyBTVDIwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZWFuIE1jR29vZ2FuIDxTZWFuLk1jR29vZ2FuQHN0LmNvbT4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY29tbWl0IDc1NGJhYzQ4MTU2Zjg5NThkOGY2YTUzYTUxZWRhODhhYjU3NTg5MjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gU2VwIDEwIDIwOjQyOjMxIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgdmVyc2lvbiB0byBtYXRjaCBjdXJyZW50IHN0YXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgN2E4ODhkNmIzYzMyYTEyNmRiYjUwNGVmMTQ2YmI0YzI2NTc0Y2E3YgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gU2VwIDEwIDE3OjM5OjA4IDIwMDcgKzAyMDAKCiAgICBbTVBDNTEyeF0gU3RyZWFtbGluZSBmcmFtZSBoYW5kbGluZyBpbiB0aGUgRkVDIGRyaXZlcgoKICAgIC0gY29udmVydCBmcmFtZSBzaXplIHNldHRpbmdzIHRvIGJlIGRlcml2ZWQgZnJvbSBhIHNpbmdsZSBiYXNlCiAgICAtIHNldCBmcmFtZSBzaXplIHRvIHRoZSByZWNvbW1lbmRlZCBkZWZhdWx0IHZhbHVlCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgZTI1MWUwMGQwZGI0YjM2ZDFkMmI3ZTM4ZmVjNDNhNzI5NmI1MjlhMgpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gU2VwIDEwIDExOjM0OjAwIDIwMDcgKzA5MDAKCiAgICBSZW1vdmUgY29tcGlsZXIgd2FybmluZzogdGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IGludGVyd29ya2luZwoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgMWQ5ZTMxZTA0OTExYTZiYjdjYzY2ZGQ5MTEzMmM2OTkxMDFjMzJlMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBTZXAgOSAyMToyMTozMyAyMDA3ICswMjAwCgogICAgRml4IGNvbXBpbGUgZXJyb3IgaW4gc3BjMTkyMCBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YvxjaGVyIDxta0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhN2Q3ZWNhNzkxYTM3ZjQ1MmM5ZGExMGZlZjRiMzFkZDdhYTlhNjIyCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglGcmkgU2VwIDcgMDk6MjU6MDcgMjAwNyAtMDYwMAoKICAgIEJ1Z2ZpeDogbWFrZSBib290bStsaWJmZHQgY29tcGlsZSBvbiBib2FyZHMgd2l0aCBubyBmbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2ZWZjMWZjMGI2M2U1NWY5NGM1YmM2MWQ4ZGQyM2M5MThlM2JjNzc4CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxODozNTozNyAyMDA3ICswMjAwCgogICAgW1BQQzQ0MFNQZV0gUENJZSBlbnZpcm9ubWVudCBzZXR0aW5ncyBmb3IgS2F0bWFpIGFuZCBZdWNjYQoKICAgIC0gJ3BjaWNvbmZpZ2hvc3QnIGlzIHNldCBieSBkZWZhdWx0IGluIG9yZGVyIHRvIGJlIGFibGUgdG8gc2NhbiBicmlkZ2VzCiAgICBiZWhpbmQgdGhlIHByaW1hcnkgaG9zdC9QQ0llCgogICAgLSAncGNpc2NhbmRlbGF5JyBlbnYgdmFyaWFibGUgaXMgcmVjb2duaXplZCB0byBhbGxvdyBmb3IgdXNlci1jb250cm9sbGVkCiAgICBkZWxheSBiZWZvcmUgdGhlIFBDSWUgYnVzIGVudW1lcmF0aW9uOyBzb21lIHBlcmlwaGVyYWwgZGV2aWNlcyByZXF1aXJlIGEKICAgIHNpZ25pZmljYW50IGRlbGF5IGJlZm9yZSB0aGV5IGNhbiBiZSBzY2FubmVkIChlLmcuIExTSTg0MDhFKTsgd2l0aG91dCB0aGUKICAgIGRlbGF5IHRoZXkgYXJlIG5vdCBkZXRlY3RlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdmMTkxMzkzODk4NGVmNmM2YTQ2Y2I1M2UwMDM3MTkxOTZkOWM1ZGUKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE4OjIwOjIzIDIwMDcgKzAyMDAKCiAgICBbUFBDNDQwU1BlXSBJbXByb3ZlIFBDSWUgY29uZmlndXJhdGlvbiBzcGFjZSBhY2Nlc3MKCiAgICAtIGNvcnJlY3QgY29uZmlndXJhdGlvbiBzcGFjZSBtYXBwaW5nCiAgICAtIGNvcnJlY3QgYnVzIG51bWJlcmluZwogICAgLSBiZXR0ZXIgYWNjZXNzIHRvIGNvbmZpZyBzcGFjZQoKICAgIFByaW9yIHRvIHRoaXMgcGF0Y2gsIHRoZSA0NDBTUGUgaG9zdC9QQ0llIGJyaWRnZSB3YXMgYWJsZSB0byBjb25maWd1cmUgb25seSB0aGUKICAgIGZpcnN0IGRldmljZSBvbiB0aGUgZmlyc3QgYnVzLiBXZSBub3cgYWxsb3cgdG8gY29uZmlndXJlIHVwIHRvIDE2IGJ1c2VzOwogICAgYWxzbywgc2Nhbm5pbmcgZm9yIGRldmljZXMgYmVoaW5kIHRoZSBQQ0llLVBDSWUgYnJpZGdlIGlzIHN1cHBvcnRlZCwgc28KICAgIHBlcmlwaGVyYWwgZGV2aWNlcyBmYXJ0aGVyIGluIGhpZXJhcmNoeSBjYW4gYmUgaWRlbnRpZmllZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxNWVlNDczNGU0ZTA4MDAzZDczZDllYWQzY2E4MGUyYTA2NzJlNDI3CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxNzo0NjoxOCAyMDA3ICswMjAwCgogICAgW1BQQzQ0MFNQZV0gQ29udmVydCBtYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbnMgaGFuZGxpbmcKCiAgICBDb252ZXJ0IHVzaW5nIGZpeHVwIG1lY2hhbmlzbSB0byBzdXBwcmVzc2luZyBNQ0sgZm9yIHRoZSBkdXJhdGlvbiBvZiBjb25maWcKICAgIHJlYWQvd3JpdGUgdHJhbnNhY3Rpb246IHdoaWxlIGZpeHVwcyB3b3JrIGZpbmUgd2l0aCB0aGUgY2FzZSBvZiBhIHByZWNpc2UKICAgIGV4Y2VwdGlvbiwgd2UgaWRlbnRpZmllZCBhIG1ham9yIGRyYXdiYWNrIHdpdGggdGhpcyBhcHByb2FjaCB3aGVuIHRoZXJlJ3MKICAgIGFuIGltcHJlY2lzZSBjYXNlLiBJbiB0aGlzIHNjZW5hcmlvIHRoZXJlIGlzIHRoZSBmb2xsb3dpbmcgcmFjZSBjb25kaXRpb246CiAgICB0aGUgZml4dXAgaXMgKGJ5IGRlc2lnbikgc2V0IHRvIGNhdGNoIHRoZSBpbnN0cnVjdGlvbiBmb2xsb3dpbmcgdGhlIG9uZQogICAgYWN0dWFsbHkgY2F1c2luZyB0aGUgZXhjZXB0aW9uOyBpZiBhbiBpbnRlcnJ1cHQgKGUuZy4gZGVjcmVtZW50ZXIpIGhhcHBlbnMKICAgIGJldHdlZW4gdGhvc2UgdHdvIGluc3RydWN0aW9ucywgdGhlIElTUiBjb2RlIGlzIGV4ZWN1dGVkIGJlZm9yZSB0aGUgZml4dXAKICAgIGhhbmRsZXIgdGhlIG1hY2hpbmUgY2hlY2sgaXMgbm8gbG9uZ2VyIHByb3RlY3RlZCBieSB0aGUgZml4dXAgaGFuZGxlciBhcyBpdAogICAgYXBwZWFycyBhcyB3aXRoaW4gdGhlIElTUiBjb2RlLiBJbiBjb25zZXF1ZW5jZSB0aGUgZml4dXAgYXBwcm9hY2ggaXMgYmVpbmcKICAgIHBoYXNlZCBvdXQgYW5kIHJlcGxhY2VkIHdpdGggZXhwbGljaXQgc3VwcHJlc3Npbmcgb2YgTUNLIGR1cmluZyBhIFBDSWUKICAgIGNvbmZpZyByZWFkL3dyaXRlIGN5Y2xlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZmNzY0MGM5ZWFkODgwNmI1ZDgyN2YyYjI5ZjljYjI2MzJhZGQ3MjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgU2VwIDcgMTc6NDM6MzYgMjAwNyArMDIwMAoKICAgIEZpeCB0eXBvIGluIE1BS0VBTEwgc2NyaXB0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDhlMmU1ZmNkMmUwNjY3MGI2MmUxNjgwYTM5MzRjMGU1NWM3MjgxMApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTc6MDk6MjEgMjAwNyArMDIwMAoKICAgIFtNUEM1MTJ4XSBQcm9wZXIgaGFuZGxpbmcgb2YgbGFyZ2VyIGZyYW1lcyBpbiB0aGUgRkVDIGRyaXZlcgoKICAgIFdoZW4gZnJhbWUgbGFyZ2VyIHRoYW4gbG9jYWwgUlggYnVmZmVyIGlzIHJlY2VpdmVkLCBpdCBpcyBzcGxpdCBhbmQgaGFuZGxlZAogICAgYnkgdHdvIGJ1ZmZlciBkZXNjcmlwdG9ycy4gUHJpb3IgdG8gdGhpcyBwYXRjaCB0aGUgRkVDIGRyaXZlciBkaXNjYXJkZWQKICAgIGNvbnRlbnRzIG9mIGEgYnVmZmVyIGRlc2NyaXB0b3Igd2l0aG91dCB0aGUgJ0xBU1QnIGJpdCBzZXQsIHNvIHRoZSBmaXJzdAogICAgcGFydCBvZiB0aGUgZnJhbWUgd2FzIGxvc3QgaW4gY2FzZSBvZiBsYXJnZXIgZnJhbWVzLiBUaGlzIGZpeCBhbGxvd3MgdG8KICAgIHNhZmVseSBjb21iaW5lIHRoZSB0d28gcGllY2VzIGludG8gdGhlIHdob2xlIGZyYW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDhkMTc5NzlkMDM1OTQ5MmE4MjJhMGE0MDlkMjZlM2EzNTQ5YjRjZDQKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTc6MDU6MzYgMjAwNyArMDIwMAoKICAgIFtNUEM1MTJ4XSBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGE4OWNiYmQyN2E2MGU2NzQwNzcyMDAwZmQwNjg4ZmZiYTFjMjU3NmEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgU2VwIDcgMDE6MjE6MjUgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0csIG1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDVlNTgwM2UxMTlkZTNiZWJkNzZmYzlhNTdiYWFjMGI1YWVjY2M4YTMKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAzMCAyMzowMTo0OSAyMDA3ICswMjAwCgogICAgUFhBMjcwOiBBZGRlZCBzdXBwb3J0IGZvciBUcml6ZXBzSVYgYm9hcmQuCgogICAgVGhpcyBwYXRjaCBhZGQgc3VwcG9ydCBmb3IgdGhlIFRyaXplcHMgSVYgbW9kdWxlICg1MjBNaHopLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDgwMTcyYzYxODFjOTEyZmJiMzRlYTNiYTBjMjJiMjMyYjQxOWI0N2YKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAzMCAyMjo1NzowNCAyMDA3ICswMjAwCgogICAgUFhBMjcwOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc2VyaWFsIHBvcnRzLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBzZXJpYWwgcG9ydHMgdG8gdGhlIFBYQSB0YXJnZXQuCiAgICBGRlVBUlQsIEJUVUFSVCBhbmQgU1RVQVJUIGFyZSBzdXBwb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgMjhiYjNmNzJjNjg3YWM2YjJlYjA3NmIwMWRkMjFhNWZkNjU3ZDQ1ZQpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDMwIDIyOjQ4OjQ3IDIwMDcgKzAyMDAKCiAgICBQWEEyNzA6IGZpeCBjb21waWxlIGlzc3VlIChpbnZhbGlkIGx2YWx1ZSkKCiAgICBDb2RlIGlzIGJyb2tlbiBmb3IgUFhBMjcwIGR1ZSB0byAiaW52YWxpZCBsdmFsdWUgaW4gYXNzaWdubWVudCIuCgogICAgVGhpcyBwYXRjaCBmaXggaXQgaW4gcHhhLXJlZ3MuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDFkMmNhNDQ2ZTFhNzMxZGY0MjAyMDZkMDRmZTI3OGMyN2VhNmI4ZTgKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMwIDE4OjE5OjA1IDIwMDcgKzA4MDAKCiAgICBBZGQgQlVJTERfRElSIHN1cHBvcnQgZm9yIGJpb3MgZW11bGF0b3IuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNGQ4YTU1MTQ1NDQyZjEzNjk4MjYzNDg2MjM0MWEzZTAyMDAyYmRhCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglGcmkgQXVnIDMxIDE0OjQxOjUxIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gUmVtb3ZlIGlubGluZSBhc20gc3RyaW5nIGZ1bmN0aW9ucwoKICAgIFN0b3AgdXNpbmcgaW5saW5lIHN0cmluZyBmdW5jdGlvbnMgb24gTUlQUyBhcyBvdGhlciBBUkNIcyBkbyBzbywKICAgIHNpbmNlIHRoZSBvcHRpbWl6ZWQgaW5saW5lIGFzbSB2ZXJzaW9ucyBhcmUgbm90IHNtYWxsLgoKICAgIFRoaXMgY2hhbmdlIGlzIHRyaWdnZXJlZCBieSBhIGZvbGxvd2luZyBNSVBTIGJ1aWxkIGVycm9yOgogICAgY29tbW9uL2xpYmNvbW1vbi5hKGV4cG9ydHMubykoLnRleHQrMHhkYyk6IEluIGZ1bmN0aW9uIGBqdW1wdGFibGVfaW5pdCc6CiAgICBjb21tb24vZXhwb3J0cy5jOjMyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzdHJjbXAnCiAgICBtYWtlOiAqKiogW3UtYm9vdF0gRXJyb3IgMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCA4ZWEyYzRlNTQ4MzNkZWFlYmMyNGMzY2E2YjdmMjEzNTNjMjViMGY1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglGcmkgQXVnIDMxIDE0OjQxOjQ1IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gVXBkYXRlIGFzbSBzdHJpbmcgaGVhZGVyCgogICAgVGhpcyBwYXRjaGVzIGNvbnRhaW5zIHNldmVyYWwgYnVnZml4ZXMgYW5kIGNsZWFudXBzIGluIHRoZSBsYXRlc3QgdXBzdHJlYW06CgogICAgIC0gRG9uJ3QgaW5jbHVkZSBsaW51eC9jb25maWcuaAogICAgIC0gUmVtb3ZlIGJ1Z2d5IGlubGluZSB2ZXJzaW9uIG9mIG1lbXNjYW4uCiAgICAgLSBNZXJnZSB3aXRoIExpbnV4IDIuNi4xMS1yYzMuCiAgICAgLSBGaXggdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBzdHJjcHkgaW4gYmluZm10X21pc2MgY2F1c2VkIGJ5IGdjYyAzLjQuCiAgICAgLSBHb29kYnllIG1pcHM2NC4JMzE3MDQgbGluZXMgb2YgY29kZSBiaXRlIHRoZSBkdXN0LgogICAgIC0gUmVwbGFjZSBleHRlcm4gaW5saW5lIHdpdGggc3RhdGljIGlubGluZS4KICAgICAtIEZpeCByZXR1cm4gdmFsdWUgb2Ygc3RybmNweS4KICAgICAtIFJlbW92ZSBhIGJ1bmNoIG1vcmUgIiQxIiBjbG9iYmVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgNWI3MjlmYjNiZDk4ZjQ5ODU1ZDZiZmM2NTdjM2ZiYWU5NWYyYWRjMgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNzozMToyMiAyMDA3ICswMjAwCgogICAgRml4IGRvX2Jvb3RtX2xpbnV4KCkgc28gdGhhdCBtdWx0aS1maWxlIGltYWdlcyB3aXRoIEZEVCBibG9iIGJvb3QuCgogICAgRml4IGluY29ycmVjdCBibG9iIGFkZHJlc3MgY2FsY3VsYXRpb24gaW4gZG9fYm9vdG1fbGludXgoKSB0aGF0IHByZXZlbnRzCiAgICBib290aW5nIHRoZSBrZXJuZWwgZnJvbSBhIG11bHRpLWZpbGUgaW1hZ2UgKGtlcm5lbCArIGluaXRyZCArIGJsb2IpLgoKICAgIEFsc28sIG1ha2UgbWlub3IgdXBkYXRlcyB0byB0aGUgVS1Cb290J3Mgb3V0cHV0IGFuZCB0byB0aGUgY29kaW5nIHN0eWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMDQxYTI1NTRhZDYxOWU4MGRjZTUyMGMxYTMzMjEwYWZmY2I2YTNmMgpBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5Lmplbm5lam9obkBmcmVlbmV0LmRlPgpEYXRlOglGcmkgQXVnIDMxIDE0OjI5OjA0IDIwMDcgKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU2lsNjgwIElERSBjb250cm9sbGVyLgoKICAgIG8gYWRkIGRyaXZlcnMvc2lsNjgwLmMgdG8gc3VwcG9ydCB0aGUgU2lsNjgwIElERS1jb250cm9sbGVyLgogICAgbyBkcml2ZXJzL01ha2VmaWxlOiBhZGQgc2lsNjgwLm8uCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgZTc5MDIxMjIzYmMzMzlkZjY1NWUzNjA2NDVhNTJjNDU3YTc0YjA2NwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IFNlcCA2IDA5OjQ3OjQwIDIwMDcgLTA2MDAKCiAgICBib290bS9mZHQ6IE9ubHkgcHJvY2VzcyB0aGUgZmR0IGlmIGFuIGZkdCBhZGRyZXNzIHdhcyBwcm92aWRlZAoKICAgIEJvYXJkcyB3aXRoIENPTkZJR19PRl9MSUJGRFQgZW5hYmxlZCBhcmUgbm90IGFibGUgdG8gYm9vdCBvbGQtc3R5bGUKICAgIGtlcm5lbHMgdXNpbmcgdGhlIGJvYXJkIGluZm8gc3RydWN0dXJlIChpbnN0ZWFkIG9mIHBhc3NpbmcgYSBkZXZpY2UgdHJlZSkKICAgIFRoaXMgY2hhbmdlIGFsbG93cyB0aGUgb2xkIHN0eWxlIGJvb3RpbmcgdG8gYmUgdXNlZCBpZiB0aGUgZmR0IGFyZ3VtZW50CiAgICB3YXMgbm90IHBhc3NlZCB0byAnYm9vdG0nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmMjgxN2E4NGMyZTliZWEyYzVkZmMwODRiY2UyZjJkMjU2M2FjNDMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBTZXAgNiAwOTo0NjoyMyAyMDA3IC0wNjAwCgogICAgTWlncmF0ZSA1eHh4IGJvYXJkcyBmcm9tIENPTkZJR19PRl9GTEFUX1RSRUUgdG8gQ09ORklHX09GX0xJQkZEVAoKICAgIEFmZmVjdHMgYm9hcmRzOiBpY2VjdWJlIChsaXRlNTIwMCksIGp1cGl0ZXIsIG1vdGlvbnBybywgdHFtNTIwMAoKICAgIFRlc3RlZCBvbjogbGl0ZTUyMDBiCgogICAgTm90ZTogdGhlIGZpeHVwIGZ1bmN0aW9ucyBoYXZlIG5vdCBiZWVuIG1vdmVkIHRvIGEgY29tbW9uIHBsYWNlLiAgVGhpcwogICAgcGF0Y2ggaXMgdGFyZ2V0ZWQgZm9yIGltbWVkaWF0ZSBtZXJnaW5nIGFzIGluIHNvbHZlcyBhIGJ1aWxkIGlzc3VlLCBidXQKICAgIHRoZSBmaW5hbCBuYW1lL2xvY2F0aW9uIG9mIHRoZSBmaXh1cHMgaXMgc3RpbGwgc3ViamVjdCB0byBkZWJhdGUuICBJCiAgICBwcm9wb3NlIHRvIG1lcmdlIHRoaXMgbm93LCBhbmQgbW92ZSB0aGUgZml4dXBzIGluIHRoZSBuZXh0IG1lcmdlIHdpbmRvdwogICAgdG8gYmUgdXNhYmxlIGJ5IGFsbCB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA0MWJiNzZlOTQxOTI5ZjU0YTczMjA2ZmIxMzJmN2E0YzI3NTU0M2EzCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgU2VwIDYgMDk6NDY6MTcgMjAwNyAtMDYwMAoKICAgIGxpYmZkdDogYWRkIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZkdF9maW5kX2FuZF9zZXRwcm9wKCkKCiAgICBHaXZlbiB0aGUgcGF0aCB0byBhIG5vZGUsIGZkdF9maW5kX2FuZF9zZXRwcm9wKCkgYWxsb3dzIGEgcHJvcGVydHkgdmFsdWUKICAgIHRvIGJlIHNldCBkaXJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgODA3NjdhNmNlYWQ5OTkwZDllNzdlNjJiZTk0Nzg0M2MyYzcyZjQ2OQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBTZXAgNSAxNjowNDo0MSAyMDA3ICswMTAwCgogICAgQ2hhbmdlZCBBUEkgbmFtZSB0byBjb2xvdXJlZF9sZWQuaAogICAgUmVtb3ZlZCBjb2RlIHVzaW5nIGRlcHJlY2F0ZWQgaWZkZWYgQ09ORklHX0JPT1RCSU5GVU5DCiAgICBUaWRpZWQgb3RoZXIgY3B1L2FybTkyMHQvc3RhcnQuUyBjb2RlCgpjb21taXQgNTZhOTI3MDUyMWJhYWEwMGUxMjYzOWE5NzgzMDJhNjdmNjFlZjA2MApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBdWcgMzAgMTY6MTg6MTggMjAwNyAtMDUwMAoKICAgIEZpeCBVTEkgUlRDIHN1cHBvcnQgb24gTVBDODU0NCBEUwoKICAgIFRoZSBSVEMgb24gdGhlIE0xNTc1IFVMSSBjaGlwc2V0IHJlcXVpcmVzIGEgZHVtbXkgcmVhZCBiZWZvcmUKICAgIHdlIGFyZSBhYmxlIHRvIHRhbGsgdG8gdGhlIFJUQy4gIFdlIGFjY29tcGxpc2ggdGhpcyBieSBhZGRpbmcgYQogICAgc2Vjb25kIG1lbW9yeSByZWdpb24gdG8gdGhlIFBIQiB0aGUgVUxJIGlzIG9uIGFuZCByZWFkIGZyb20gaXQuCgogICAgVGhlIHNlY29uZCByZWdpb24gaXMgYWRkZWQgdG8gbWFpbnRhaW4gY29tcGF0aWFiaWx0eSB3aXRoIExpbnV4J3MKICAgIHZpZXcgb2YgdGhlIFBDSSBtZW1vcnkgbWFwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjc1ZTg5ZTliNTcxNGRiMmIwZTgwMDc0MDcxZGZiZGQ2ZjU5NDg4YQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMzAgMDE6NTg6NDggMjAwNyAtMDUwMAoKICAgIGZ0X2JvYXJkX3NldHVwIHVwZGF0ZSA4NXh4Lzg2eHggb2YgcGNpL3BjaWUgYnVzLXJhbmdlIHByb3BlcnR5LgoKICAgIHBjaWUgaXMgbm93IGRpZmZlcmVudGlhdGVkIGZyb20gcGNpLiAgQWRkIDg2NDEgYnVzLXJhbmdlIHVwZGF0ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZjVjM2QzNzIwZTc3N2E1NzJkY2RjOGFmMjAwOGI0NGM3MjQzODg1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE2OjE4OjM4IDIwMDcgKzAxMDAKCiAgICBBZGQgY29sb3VyZWQgbGVkIGludGVyZmFjZSBmb3IgQVJNIGJvYXJkcy4KICAgIFVzZSBpdCBpbiBjcHUvYXJtOTIwdC9zdGFydC5TIHRvIGluZGljYXRlIFUtQm9vdCBjb2RlIGhhcyBiZWVuIGVudGVyZWQuCgpjb21taXQgNzQ2MmZlMGQ1YTlkNDBjZGUwODNmYjFhM2NkNzM5MTE5OTZiNWVjYgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNDo0OToyOCAyMDA3ICswMTAwCgogICAgTW92ZSBpbmNsdWRlL2xlZC5oIHRvIGJvYXJkL2F0OTFybTkyMDBkawoKY29tbWl0IDZlNGJmOWIyNGU1N2MxNWFiYzY1NDJlNjg1ZDA2MzgwYmM2NGFmMjcKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDQgMTQ6MjU6NTEgMjAwNyArMDEwMAoKICAgIFJhbiBMaW5kZW50IG9uIGRyaXZlcnMvYXQ0NS5jCgpjb21taXQgNTU3YWI4OWQyOTRmMDhkZDUzMmYyMWQxOTg2MWI0MDA5MzIwMGEzMwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNDoyMzo1MCAyMDA3ICswMTAwCgogICAgUmVuYW1lIENPTkZJR19DTURfTVVYIHRvIENPTkZJR19DTURfQVQ5MV9TUElNVVgKCmNvbW1pdCA4MWI3M2RlYzE2ZmQxMjI3MzY5YTE5MWU3MjVlMTAwNDRhOWQ1NmI4CkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMzEgMTU6MjE6NDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogKFJlLSlFbmFibGUgQ09ORklHX1BDSV9QTlAgb24gQU1DQyA0NDBFUHggU2VxdW9pYQoKICAgIFRoZSA0NDBFUHggaGFzIGEgcHJvYmxlbSB3aGVuIHRoZSBQQ0lfQ0FDSEVfTElORV9TSVpFIHJlZ2lzdGVyIGlzCiAgICBzZXQgdG8gbm9uLXplcm8sIGJlY2F1c2UgaXQgZG9lc24ndCBzdXBwb3J0IE1STSAobWVtb3J5LXJlYWQtCiAgICBtdWx0aXBsZSkgY29ycmVjdGx5LiBXZSBub3cgYWRkZWQgdGhlIHBvc3NpYmlsaXR5IHRvIGNvbmZpZ3VyZQogICAgdGhpcyByZWdpc3RlciBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUsIHNvIHRoYXQgdGhlIGRlZmF1bHQgdmFsdWUKICAgIG9mIDggY2FuIGJlIG92ZXJyaWRkZW4uCgogICAgSGVyZSB0aGUgZGV0YWlscyBvZiB0aGlzIHBhdGNoOgoKICAgIG8gZHJpdmVyc19wY2lfYXV0by5jOiBpbnRyb2R1Y2UgQ0ZHX1BDSV9DQUNIRV9MSU5FX1NJWkUgdG8gYWxsb3cKICAgICAgYm9hcmQtc3BlY2lmaWMgc2V0dGluZ3MuIEFzIGFuIGV4YW1wbGUgdGhlIHNlcXVvaWEgYm9hcmQgcmVxdWlyZXMgMC4KICAgICAgSWRlYSBmcm9tIFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4uCiAgICBvIGJvYXJkL2FtY2Mvc2VxdW9pYS9pbml0LlM6IGFkZCBhIFRMQiBtYXBwaW5nIGF0IDB4RTgwMDAwMDAgZm9yIHRoZQogICAgICBQQ0kgSU8tc3BhY2UuIE9idGFpbmVkIGZyb20gU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPi4KICAgIG8gaW5jbHVkZS9jb25maWdzL3NlcXVvaWEuaDogdHVybiBDT05GSUdfUENJX1BOUCBiYWNrIG9uIGFuZCBzZXQKICAgICAgQ0ZHX1BDSV9DQUNIRV9MSU5FX1NJWkUgdG8gMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MDE3NDc0NmM2NjhiMzA5Mzc4YTkxNDg4ZGRlZDg5OGU5NTUzZWFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAzMSAxMDowMTo1MSAyMDA3ICswMjAwCgogICAgRml4IFRGVFAgT0FDSyBjb2RlIGZvciBzaG9ydCBwYWNrZXRzLgoKICAgIFRoZSBvbGQgY29kZSBoYWQgYSBsb29wIGxpbWl0IG92ZXJmbG93IGJ1ZyB3aGljaCBjYXVzZWQgYSBzZW1pLQogICAgaW5maW5pdGUgbG9vcCBmb3Igc21hbGwgcGFja2V0cywgYmVjYXVzZSBpbiAiaTxsZW4tOCIsICJpIiB3YXMgc2lnbmVkLAogICAgYnV0ICJsZW4iIHdhcyB1bnNpZ25lZCwgYW5kICJsZW4tOCIgYmVjYW1lIGEgaHVnZSBudW1iZXIgZm9yIHNtYWxsCiAgICB2YWx1ZXMgb2YgImxlbiIuCgogICAgVGhpcyBpcyBhIHdvcmthcm91bmQgd2hpY2ggcmVwbGFjZXMgYnJva2VuIGNvbW1pdCA4ZjFiYzI4NC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY5NmRkMTMwN2NkOGU3M2ExMGU5YmIzYzUxNzMxYmZkNmY4MzdiZWUKQXV0aG9yOiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgpEYXRlOglUaHUgQXVnIDMwIDE1OjAzOjA1IDIwMDcgKzAyMDAKCiAgICBSZWR1Y2UgQk9PVERFTEFZIHZhcmlhYmxlIHRvIDEgc2Vjb25kIGJ5IGRlZmF1bHQgZm9yIFNUSzEwMDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzg4YjZlMWNiZjlhOGFlMmEzNGZiNjAyZjc4YTFiZjRlNjY5MmI2YQpBdXRob3I6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CkRhdGU6CVRodSBBdWcgMzAgMTU6MDM6MDQgMjAwNyArMDIwMAoKICAgIFJlbW92ZSBkb3VibGUgcXVvdGF0aW9uIG1hcmtzIGFyb3VuZCBNQUMgYWRkcmVzcyBmb3IgU1RLMTAwMgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmZjEzYWM4YzdiYmViYjIzOGUzMzk1OTJkZTc2NWM1NDZkYmExMDczCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAzMCAxNDo0MjoxNSAyMDA3ICswMjAwCgogICAgQmFja291dCBjb21taXQgOGYxYmMyODQgYXMgaXQgY2F1c2VzIFRGVFAgdG8gZmFpbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE5MDBmYmYyNTVhY2JhOGI5NGZiNDQyYTE2NDA4ZWE4NWExZDQ2YTYKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMwIDAyOjI2OjE3IDIwMDcgLTA1MDAKCiAgICBSZXZlcnQgIkZpeCBNUEM4NTQ0RFMgUENJZTMgc2NzaS4iCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NDY4ZTY4MC4KICAgIENvbW1pdCAxNmUyM2MzZjVkYSByZW1vdmluZyBhbGxvY2F0aW9uIG9mIFBDU1JCQVIgaXMgc3VmZmljaWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhmMWJjMjg0MDhkZWQyMTM0MThkOWJjMDc4MGM3ZDhmYjhhMDM3NzQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVdlZCBBdWcgMjkgMTg6MjY6MjQgMjAwNyAtMDYwMAoKICAgIHRmdHA6IGRvbid0IGltcGxpY2l0eSB0cnVzdCB0aGUgZm9ybWF0IG9mIHJlY2V2aWVkIHBhY2tldHMKCiAgICBUaGUgVEZUUCBPQUNLIGNvZGUgdHJ1c3RzIHRoYXQgdGhlIGluY29taW5nIHBhY2tldCBpcyBmb3JtYXRlZCBhcwogICAgQVNDSUkgdGV4dCBhbmQgY2FuIGJlIHByb2Nlc3NlZCBieSBzdHJpbmcgZnVuY3Rpb25zLiBJdCBhbHNvIGhhcyBhCiAgICBsb29wIGxpbWl0IG92ZXJmbG93IGJ1ZyB3aGVyZSBpZiB0aGUgcGFja2V0IGxlbmd0aCBpcyBsZXNzIHRoYW4gOCwgaXQKICAgIGVuZHMgdXAgbG9vcGluZyBvdmVyICphbGwqIG9mIG1lbW9yeSB0byBmaW5kIHRoZSAnYmxrc2l6ZScgc3RyaW5nLgoKICAgIFRoaXMgcGF0Y2ggc29sdmVzIHRoZSBwcm9ibGVtIGJ5IGZvcmNpbmcgdGhlIHBhY2tldCB0byBiZSBudWxsCiAgICB0ZXJtaW5hdGVkIGFuZCB1c2luZyBzdHJzdHIoKSB0byBzZWFyY2ggZm9yIHRoZSBzdWIgc3RyaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwNDYyNTc2NGNjOTNjZThhNjE2MjVhYzE5ZDdmZTJhMmNlZWU4MTQzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI5IDE2OjMxOjE4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBsd21vbjUgZGVmYXVsdCBlbnZpcm9ubWVudCB0byBzdXBwb3J0IExpbnV4IFJUQwoKICAgIFRoZSBMaW51eCBQQ0Y4NTYzIFJUQyBkcml2ZXIgZG9lc24ndCBkbyBhdXRvcHJvYmluZywgc28gd2UgbmVlZAogICAgdG8gc3VwcGx5IHRoZSBSVEMgSTJDIGFkZHJlc3MgYXMgYm9vdGxpbmUgcGFyYW1ldGVyLiBUaGlzIHBhdGNoCiAgICBhZGRzIHN1cHBvcnQgZm9yIHRoaXMgcnRjIHByb2JpbmcgcGFyYW1ldGVyIHRvIHRoZSBib290YXJnczoKCiAgICAicnRjLXBjZjg1NjMucHJvYmU9MCwweDUxIgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNjAyYTVjNDBhZTM3YWI5NjVhNGUyNDA4NTRmZGFmZmI1MTMyOGE0CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyOSAwOTowNjowNSAyMDA3IC0wNTAwCgogICAgc2JjODY0MTogcmVtb3ZlIHVudXNlZCBPRl9GTEFUX1RSRUVfTUFYX1NJWkUKCiAgICB0aGlzIGhhZCBzbGlwcGVkIHRocm91Z2ggdGhlIGNyYWNrcywgc2luY2UgdGhlIHNiYyBib2FyZCB3YXMgYWRkZWQKICAgIGFmdGVyIEkgd3JvdGUgdGhlIG9yaWdpbmFsIHBhdGNoIHRvIHJlbW92ZSBhbGwgdGhlc2Ugc3ltYm9scywgYW5kCiAgICBiZWZvcmUgaXQgd2FzIG1lcmdlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1YmRlZDNjODhlNDhhZTY0OGE3NWQzNTdkYzgxYTgyNTVmYTgxZjEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI5IDE0OjA1OjMwIDIwMDcgKzAyMDAKCiAgICBBZGQgbWlpX2luaXQoKSBwcm90b3R5cGUKCiAgICB0byBnZXQgcmlkIG9mIGEgKmxvdCogb2YgY29tcGlsZXIgd2FybmluZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyZDFmMjNhYTFlNzRlNGE4ZjhmZmE2N2YyNDZlYjk4YzUyMmRmZDdmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyOSAxMzozNTowMyAyMDA3ICswMjAwCgogICAgRGlzYWJsZSBuZXR3b3JrIHN1cHBvcnQgb24gY21pX21wYzV4eCBib2FyZAoKICAgIC4uYmVjYXVzZSBpdCBjYXVzZWQgY29tcGlsZXIgZXJyb3JzIGFuZCB0aGVyZSBzZWVtcyB0byBiZSBubwogICAgYm9hcmQgbWFpbnRhaW5lciB0byB0YWtlIGNhcmUgb2YgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk0NjhlNjgwNGI3ZTI1YjBmNmY1MmU1M2Y0N2JjZTMxNzU0MDBhMTYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gQXVnIDIwIDA5OjQ0OjAwIDIwMDcgLTA1MDAKCiAgICBGaXggTVBDODU0NERTIFBDSWUzIHNjc2kuCgogICAgPGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKICAgIFRoZSBwcm9ibGVtIGlzIHBjaWF1dG9fc2V0dXBfZGV2aWNlKCkgZ2V0dGluZyBjYWxsZWQgZnJvbSBmc2xfcGNpX2luaXQuYwogICAgaXMgYWxsb2NhdGluZyBtZW1vcnkgc3BhY2UgaXQgZG9lc24ndCBuZWVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGJmNGFiYjhhNGU5OTU1NTU2YjEyMGExYWFmYTMwYzAzZTc0MDMyYQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjEgMDk6Mzg6NTkgMjAwNyAtMDUwMAoKICAgIDg1NDhjZHMgZml4ZXMKCiAgICBSZXN0b3JlIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MgZGVmaW5pdGlvbiB3aGljaCBjb250YWlucyB0aGUKICAgIGNvcnJlY3QgY29uc29sZWRldiBuZWVkZWQgZm9yIGxpbnV4IGJvb3QuCiAgICBTdGFuZGFyZGl6ZSBvbiBmZHR7ZmlsZSxhZGRyfSB2YXIgdG8gaG9sZCBkdGIgZmlsZSBuYW1lLgoKICAgIFNldCBQQ0kgaW5ib3VuZCBtZW1vcnkgcmVnaW9uIGZyb20gQ0ZHX01FTU9SWV97QlVTLFBIWVN9LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ExYWM0MTlmYTBkMmQyM2RkZDA4YmQ2MWQxNjg5NmE5ZjMzYzkzMwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMjMgMTU6MjA6NTQgMjAwNyAtMDQwMAoKICAgIEVuYWJsZSBMMiBjYWNoZSBmb3IgTVBDODU2OE1EUyBib2FyZAoKICAgIFRoZSBMMiBjYWNoZSBzaXplIGlzIDUxMktCIGZvciA4NTY4LCBwcmludCBvdXQgdGhlIGNvcnJlY3QgaW5mb3JtYWl0b24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NGM0N2ZkYWYxNGNiMjlmYTNmYjRkNGRhMmVmZGQ5NmM4MDNiNDZiCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMiAxNzo1NDo0OSAyMDA3ICswODAwCgogICAgUmVtb3ZlIHRoZSBiaW9zIGVtdWxhdG9yIGJpbmFyeSBmaWxlcyBmcm9tIE1BSSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzYwOGQ3NWY5Yzg3YzllYjViM2E0MzIxOWQwNTA2ZDNlOTc5YTEzZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjEgMTc6MDA6MTcgMjAwNyAtMDUwMAoKICAgIHN1cHBvcnQgYm9hcmQgdmVuZG9yLWNvbW1vbiBtYWtlZmlsZXMKCiAgICBpZiBhIGJvYXJkLyQoVkVORE9SKS9jb21tb24vTWFrZWZpbGUgZXhpc3RzLCBidWlsZCBpdC4KCiAgICBhbHNvIGFkZCB0aGUgZmlyc3Qgc3VjaCBjYXNlLCBib2FyZC9mcmVlc2NhbGUvY29tbW9uL01ha2VmaWxlLCB0bwogICAgaGFuZGxlIGJ1aWxkaW5nIGJvYXJkLXNoYXJlZCBFRVBST00sIFBJWElTLCBhbmQgTURTLVBJQiBjb2RlLCBhcwogICAgZGljdGF0ZWQgYnkgYm9hcmQgY29uZmlndXJhdGlvbi4KCiAgICB0aHVzbHkgZ2V0IHJpZCBvZiBhbHRlcm5hdGUgYnVpbGQgZGlyIGVycm9ycyBzdWNoIGFzOgoKICAgIEZBVEFMOiBjYW4ndCBjcmVhdGUgL3dvcmsvd2QvdG1wL3UtYm9vdC1wcGMvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlbWRzLy4uL2NvbW1vbi9wcS1tZHMtcGliLm86IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKCiAgICBieSBwdXR0aW5nIHRoZSBjb21tb24vIG1rZGlyIGNvbW1hbmQgaW4gaXRzIHByb3BlciBwbGFjZSAodGhlIGNvbW1vbgogICAgTWFrZWZpbGUpLiBDb21tb24gYml0cyBmcm9tIGV4aXN0aW5nIGluZGl2aWR1YWwgYm9hcmQgTWFrZWZpbGVzIGhhdmUKICAgIGJlZW4gcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVmOGYyMDc1MjcxMmRjMWNkYmQ4NmY0N2UzYmQ2ZTM1ZjgxYzgzZmQKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyMSAxNTo1MjozMyAyMDA3ICswMjAwCgogICAgRml4OiBURlRQIGlzIG5vdCB3b3JraW5nIG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcwoKICAgIFRGVFAgZG9lcyBub3Qgd29yayBhbnltb3JlIGFmdGVyIG11bHRpY2FzdCB0ZnRwCiAgICBwYXRjaCB3YXMgYXBwbGllZCBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMuCiAgICBUaGlzIHBhdGNoIGZpeCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA1ZjQ3MDk0ODU3MDUyNmU5MTg2ZjA1M2EzMDAzZGE3NzE5NjA0ZTkwCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjEgMTU6NTA6MzMgMjAwNyArMDIwMAoKICAgIEZpeCBNQUMgYWRkcmVzcyBzZXR0aW5nIGluIERNOTAwMCBkcml2ZXIuCgogICAgVGhlIGxvZ2ljIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGEgY29ycmVjdCBNQUMgYWRkcmVzcyBpbiB0aGUgRE05MDAwCiAgICBFRVBST00sIGFkZGVkIGluIHRoZSBsYXN0IHBhdGNoLCBpcyB3cm9uZy4gTm93IHRoZSBNQUMgYWRkcmVzcyBpcwogICAgYWx3YXlzIHRha2VuIGZyb20gdGhlIGVudmlyb25tZW50LCBldmVuIGlmIGEgc3VpdGFibGUgTUFDIGlzIHByZXNlbnQKICAgIGluIHRoZSBFRVBST00uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgNGE4NTI3ZWYwODZlYzdjODlmNDA2NzRlZjAyNGFlNmY5ODhhNjE0YQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUdWUgQXVnIDIxIDEyOjQwOjM0IDIwMDcgKzAyMDAKCiAgICBNUEM1eHh4OiBmaXggc29tZSBjb21waWxlciB3YXJuaW5ncyBpbiBVU0IgY29kZQoKICAgIEZpeCB0aGUgZm9sbG93aW5nIHdhcm5pbmdzOgogICAgLSB1c2IuYzp4eDogd2FybmluZzogZnVuY3Rpb24gZGVjbGFyYXRpb24gaXNuJ3QgYSBwcm90b3R5cGUKICAgIC0gdXNiX29oY2kuYzp4eHg6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnX19mc3dhYjMyJyBtYWtlcyBpbnRlZ2VyCiAgICAgIGZyb20gcG9pbnRlciB3aWh0b3V0IGEgY2FzdAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmFzZUB0cXMuZGU+Cgpjb21taXQgMTZlMjNjM2Y1ZGFiNjkzN2Y1MTA5MzY1NDE2ODA4YzdmMTVjMTIyYgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMjAgMjM6NTU6MzMgMjAwNyAtMDUwMAoKICAgIGZzbF9wY2lfaW5pdCAtIFJlbW92ZSBzZWxmIFBDU1JCQVIgYWxsb2NhdGlvbgoKICAgIENQVSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlIHdhcyBiZWluZyB3YXN0ZWQgYnkgYWxsb2NhdGluZyBhCiAgICBQQ1NSQkFSIFBDSSBpbmJvdW5kIHJlZ2lvbiB0byBpdCdzIG1lbW9yeSBzcGFjZS4KCiAgICBBcyBhIHJ1bGUsIFBDU1JCQVIgc2hvdWxkIGJlIGxlZnQgYWxvbmUgc2luY2UgaXQgZG9lcyBub3QgYWZmZWN0CiAgICB0cmFuc2FjdGlvbnMgZnJvbSBzZWxmIGFuZCBvdGhlciBtYXN0ZXJzIG1heSBoYXZlIGNoYW5nZWQgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZTcwMGNlMDNhMjNiYjE5MjExNDliYzc3MDA4YWNlNzEwM2Q1Mjg5CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBBdWcgMjAgMTM6NTY6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5nIGluIGluY2x1ZGUvczNjMjQxMC5oCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgInR5cGUgcXVhbGlmaWVycyBpZ25vcmVkIG9uIGZ1Y3Rpb24gcmV0dXJuIHRweWUiCiAgICB3YXJuaW5nIGZvciBpbmNsdWRlL3MzYzI0MTAuaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDliYjhiMjA5ZWQyMDU4YTU3NTZlY2JlYjU0NGMwNjdlNDRhNDJhZWEKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglNb24gQXVnIDIwIDA3OjA5OjA1IDIwMDcgKzAyMDAKCiAgICBGaXggY29tcGlsYXRpb24gZXJyb3IgZm9yIG9tYXAyNDIwaDRfY29uZmlnLgoKICAgIG9tYXAyNDIwaDQgc3dpdGNoZWQgdG8gY2ZpLCBzbyByZW1vdmUgb2xkIChhbHJlYWR5IGRpc2FibGVkKSBmbGFzaC5jCiAgICBhbmQgZmxhc2hfcHJvYmUoKSBjYWxscyBpbiBlbnZfZmxhc2guYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCAzYmIzNDJmYzg1ZDc5ZGJiNmI4YzIwMzllN2NkY2RkYzgyYjhkOTBmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxNDozNDoxNCAyMDA3IC0wNTAwCgogICAgZmR0OiByZW1vdmUgdW51c2VkIE9GX0ZMQVRfVFJFRV9NQVhfU0laRSByZWZlcmVuY2VzCgogICAgYW5kIG1ha2Ugc29tZSBtaW5vciBjb3JyZWN0aW9ucyB0byB0aGUgRkRUIHBhcnQgb2YgdGhlIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZhZjJlZWIxZTk5YzJkY2M1ODRkNGM1YWI3ZmNhZTMwYTMyNWY0ZGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI5IDAxOjMyOjA1IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE4NjE1NThjNjVmNjVmMWNmMTMwMmYzYTM1ZTlkYjc2ODZiOWUxYTMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjggMTc6NDA6MzMgMjAwNyArMDIwMAoKICAgIFtVQzEwMV0gRml4OiBpZiBubyBDRiBpbiB0aGUgYm9hcmQsIFUtQm9vdCByZXNldHMgc29tZXRpbWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGY5ODk4NGNiMTk0YmIzNGRiZTFkYjk0MjlkM2I1MTEzM2FmMzBkMDcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjggMTc6Mzk6MTQgMjAwNyArMDIwMAoKICAgIElERToJLSBtYWtlIGlkZV9pbmIgKCkgYW5kIGlkZV9vdXRiICgpICJ3ZWFrIiwgc28gYm9hcmRzIGNhbgoJICAgICAgZGVmaW5lIHRoZXJlIG93biBJL08gZnVuY3Rpb25zLgoJICAgICAgKE5lZWRlZCBmb3IgdGhlIHBjczQ0MGVwIGJvYXJkKS4KCSAgICAtIFRoZSBkZWZhdWx0IEkvTyBGdW5jdGlvbnMgYXJlIGFnYWluIDggQml0IGFjY2Vzc2VzLgoJICAgIC0gQWRkZWQgQ09ORklHX0NNRF9JREUgZm9yIHRoZSBwY3M0NDBlcCBCb2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyYzA1ZmQxMjU3NDQ5ODFlNWYyODI4ZDI0ZTY2Y2NjMjBhNzdkMjVkCkF1dGhvcjogU2VtaWggSGF6YXIgPHNlbWloLmhhemFyQGluZGVmaWEuY29tPgpEYXRlOglNb24gQXVnIDIwIDE5OjAwOjAxIDIwMDcgKzAzMDAKCiAgICBBVlIzMjogQ2hhbmdlIHByb3RvdHlwZSBvZiBtZW1zZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZW1paCBIYXphciA8c2VtaWguaGF6YXJAaW5kZWZpYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5YzAyZGVmYzI5YjU3OTQ1YjYwMDcxNGNmNjFkZGZkMDJiMDJmYjE0CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglTYXQgQXVnIDI1IDA1OjA3OjE2IDIwMDcgKzAyMDAKCiAgICBQT1NUOiBsaW1pdCBtZW1vcnkgdGVzdCBhcmVhIHRvIG5vdCB0b3VjaCBnbG9iYWwgZGF0YSBhbnltb3JlCgogICAgQXMgZXhwZXJpZW5jZWQgb24gbHdtb241LCBvbiBzb21lIGJvYXJkcyB0aGUgUE9TVCBtZW1vcnkgdGVzdCBjYW4KICAgIGNvcnJ1cHQgdGhlIGdsb2JhbCBkYXRhIGJ1ZmZlciAoYmQpLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUKICAgIGJ5IGNoZWNraW5nIGFuZCBsaW1pdGluZyB0aGlzIGFyZWEuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1ZTFhODRkNDgzZTM2YmUxMGUyMDZlNTM5YjAyOGM0ODg5ZTExNTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMjQgMTU6NDE6NDIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIFJUQyBQT1NUIHRlc3QgdG8gbHdtb241IGJvYXJkIGNvbmZpZ3VyYXRpb24KCiAgICBTaW5jZSB0aGlzIFJUQyBQT1NUIHRlc3QgaXMgdGFraW5nIHF1aXRlIGEgd2hpbGUgdG8gY29tcGxldGUKICAgIGl0J3Mgb25seSBpbml0aWF0ZWQgdXBvbiBzcGVjaWFsIGtleXByZXNzIHNhbWUgYXMgdGhlIGNvbXBsZXRlCiAgICBtZW1vcnkgUE9TVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDdiZmE2MjAwMzdhNmQyMjEwMTU5Mzg3NTcxYmRmOTNhYTMyYzE2MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAyNCAxNToxOToxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgR1BJTyBzaWduYWwgZm9yIHdhdGNoZG9nIHRyaWdnZXJpbmcgb24gbHdtb241CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGMyNWRkOGZjMjVlOWNhMzY5NWRiOTk2YTI1N2Q5YmE0ZGFiNDE0ZGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMjMgMTE6MDI6MzcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHN1cHBvcnQgZm9yIDJuZCBJMkMgRUVQUk9NIG9uIGx3bW9uNSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgMm5kIEVFUFJPTSAoQVQyNEMxMjgpIG9uIHRoZSBsd21vbjUKICAgIGJvYXJkLiBOb3cgdGhlICJlZXByb20iIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gcmVhZC93cml0ZSBmcm9tL3RvIHRoaXMKICAgIGRldmljZS4gQWRkaXRpb25hbGx5IGEgbmV3IGNvbW1hbmQgd2FzIGFkZGVkICJlZXByb213cCIgdG8gZW4tL2Rpc2FibGUKICAgIHRoZSB3cml0ZS1wcm90ZWN0IG9mIHRoaXMgMm5kIEVFUFJPTS4KCiAgICBUaGUgMXN0IEVFUFJPTSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcyB3cml0ZS1wcm90ZWN0IGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM2NGZiMzBlNGM1OTc2MDA3ZDU2ZmMxNzg5YzdhMDY2NjA4MmI1MzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjIgMDg6NTY6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHVudXNlZCBvcHRpb24gQ0ZHX0lOSVRfUkFNX09DTQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYWQ2Mzg3ODczN2E1YTJiMWU2MDgyNWJmMGE3ZDYwMWQ3YTY5NWU3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDIxIDE2OjI3OjU3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBtYXRyaXgga2JkIHN1cHBvcnQgdG8gbHdtb241IGJvYXJkICg0NDBFUHggYmFzZWQpCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBtYXRyaXgga2V5Ym9hcmQgb24gdGhlIGx3bW9uNSBib2FyZC4KICAgIFNpbmNlIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgZHNQQ0kgaXMga2luZCBvZiBjb21wYXRpYmxlIHdpdGggdGhlCiAgICAib2xkIiBsd21vbiBib2FyZCwgbW9zdCBvZiB0aGUgY29kZSBpcyBjb3BpZWQgZnJvbSB0aGUgbHdtb24KICAgIGJvYXJkIGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2U2NmMwNzgwMDM2MDdhN2QxZDIxNGMxNWE1ZjI2MmJjMWI0MDMyZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTkgMTA6Mjc6MzQgMjAwNyArMDIwMAoKICAgIEZpeCBzb21lIGJ1aWxkIGVycm9ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA1Njc1NzM1ZWY3N2RjMjNiNWUwZWI3ODJiYWQxZmY0NzdiNTVlODYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXVnIDE4IDIyOjAwOjM4IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDc5ZjI0MGY3ZWNjMDUwNmI0M2FjNTBkMWVhNDA1ZmY2NTQwZDRkNTcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDIyOjUyOjM5IDIwMDcgLTA1MDAKCiAgICBsaWJfcHBjOiBtYWtlIGJvYXJkX2FkZF9yYW1faW5mbyB3ZWFrCgogICAgcGxhdGZvcm1zIHdpc2hpbmcgdG8gZGlzcGxheSBSQU0gZGlhZ25vc3RpY3MgaW4gYWRkaXRpb24gdG8gc2l6ZSwKICAgIGNhbiBkbyBzbywgb24gb25lIGxpbmUsIGluIHRoZWlyIG93biBib2FyZF9hZGRfcmFtX2luZm8oKQogICAgaW1wbGVtZW50YXRpb24uCgogICAgdGhpcyBjb25zZXF1ZW50bHkgZWxpbWluYXRlcyBDT05GSUdfQUREX1JBTV9JTkZPLgoKICAgIFRoYW5rcyB0byBTdGVmYW4gZm9yIHRoZSBoaW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODE1YjViZDViMTg1Njk5MTdjM2UwNGI5NzU3NTExZTZlZDIzYjlmNgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNyAxMjo0Mzo0NCAyMDA3ICswOTAwCgogICAgUENJX1JFQURfVklBX0RXT1JEX09QOiBGaXggKnZhbCB1bmluaXRpYWxpemVkIGJ1ZwoKICAgIFRoaXMgcGF0Y2ggaGFzIGJlZW4gc2VudCBvbjoKICAgIC0gNiBKdW4gMjAwNwoKICAgIE1hbnkgdXNlcnMgb2YgUENJIGNvbmZpZyByZWFkIHJvdXRpbmVzIHRlbmQgdG8gaWdub3JlIHRoZSBmdW5jdGlvbgogICAgcmV0IHZhbHVlLCBhbmQgYXJlIG9ubHkgY29uY2VybmVkIGFib3V0IHRoZSBjb250ZW50cyBvZiAqdmFsLiBCYXNlZAogICAgb24gdGhpcywgcGNpX2hvc2VfcmVhZF9jb25maWdfe2J5dGUsd29yZH1fdmlhX2R3b3JkIHNob3VsZCBpbml0aWFsaXplCiAgICB0aGUgKnZhbCBvbiBkd29yZCByZWFkIGVycm9yLgoKICAgIFdpdGhvdXQgdGhpcyBmaXgsIGZvciBleGFtcGxlLCB3ZSdsbCBnbyBvbiBzY2FubmluZyBidXMgd2l0aCB2ZW5kb3Igb3IKICAgIGhlYWRlcl90eXBlIHVuaW5pdGlhbGl6ZWQuIFRoaXMgYnJpbmdzIG1hbnkgdW5uZWNlc3NhcnkgY29uZmlnIHRyaWFscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgMjY2NjdiN2ZhMDVhOGJmMmZjNjVmYjlmMzIzMGIwMmIxYTEwYzM2NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEF1ZyAxOCAxNDozNzo1MiAyMDA3ICswMjAwCgogICAgQ29sZEZpcmU6IEZpeCBzb21lIHJlbWFpbmluZyBwcm9ibGVtcyB3aXRoIENGR19DTURfCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgyODBmNmExYzQzMjQ3NjE2YjY4MjI0Njc1MTg4ZTVjY2QxMjQ2NTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBBdWcgMTggMTQ6MzM6MDIgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRhNDQyZDMxODZiMzE4OTNiNGY3N2M2ZTgyZjYzYzQ1MTdhNTIyNGIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTk6MjM6NTAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUyMzVFVkIgUGxhdGZvcm0gZm9yIE1DRjUyM3gKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGNjMWNkNTk0MTgyN2EwNGNmNWM1MWEwN2ZjYzQyZTg5NDU4OTRhYQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTcgMDk6MzA6MDAgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCB0eXBvIGluIEREUjIgcHJvZ3JhbW1pbmcKCiAgICBpbnRyb2R1Y2VkIGluIHRoZSBpbXBsZW1lbnQgYm9hcmRfYWRkX3JhbV9pbmZvIHBhdGNoIGFzIEkgd2FzIGNsZWFuaW5nIG91dCB0aGUKICAgIG1hZ2ljIG51bWJlcnMuICBzb3JyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1OGZlOTU3ODRkMjUxNGZjOWMyMTAyOGRjNTlmMmIzMTlhMzVkODAKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDIyOjUzOjA5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtb3ZlIGZyZWVzY2FsZSBib2FyZHMgdG8gYm9hcmRzL2ZyZWVzY2FsZQoKICAgIGluY2x1ZGVzIGJ1aWxkIGZpeGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWFhNGFkOGQ4ZTdlOTQ2ODIxOTk5MGM3ODc1ZDVmZGM5ZTk2MmY0NwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMjI6NTI6NTkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IHN1cHByZXNzIHVudXNlZCB2YXJpYWJsZSAndmFsOCcgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmJlYTQ2Zjc2Zjc2N2I5MTkwNzBiNDgyOWJmMzRjODZiZDIyMzI0OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMjI6NTI6NDggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGltcGxlbWVudCBib2FyZF9hZGRfcmFtX2luZm8KCiAgICBhZGQgYm9hcmRfYWRkX3JhbV9pbmZvLCB0byBtYWtlIG1lbW9yeSBkaWFnbm9zdGljIG91dHB1dCBtb3JlCiAgICBjb25zaXN0ZW50LiB1LWJvb3QgYmFubmVyIG91dHB1dCBub3cgbG9va3MgbGlrZToKCiAgICBEUkFNOiAgMjU2IE1CIChERFIxLCA2NC1iaXQsIEVDQyBvbikKCiAgICBhbmQgZm9yIGJvYXJkcyB3aXRoIFNEUkFNIG9uIHRoZSBsb2NhbCBidXMsIGEgbGluZSBzdWNoIGFzIHRoaXMgaXMKICAgIGFkZGVkOgoKICAgIFNEUkFNOiA2NCBNQiAobG9jYWwgYnVzKQoKICAgIGFsc28gcmVwbGFjZWQgc29tZSBtYWdpYyBudW1iZXJzIHdpdGggdGhlaXIgZXF1aXZhbGVudCBkZWZpbmUgbmFtZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNDc3ODU4NWQxMzg5ZDg2ZDU4NDZlZmVjMjllNWZjZTg5MjY4MGNlCkF1dGhvcjogVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDE3IDEwOjM1OjU5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBTcGxpdCBQSUIgaW5pdCBjb2RlIGZyb20gcGNpLmMgYW5kIGFkZCBRb2MzIEFUTSBjYXJkIHN1cHBvcnQKCiAgICBUaGUgcGF0Y2ggc3BsaXQgdGhlIFBJQiBpbml0IGNvZGUgZnJvbSBwY2kuYyB0byBhIHNpbmdsZSBmaWxlIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vcHEtbWRzLXBpYi5jCiAgICBBbmQgYWRkIFFvYzMgQVRNIGNhcmQgc3VwcG9ydCBmb3IgTVBDODM2MEVNRFMgYW5kIE1QQzgzMlhFTURTIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnkgVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhZTE1OGNkODdhNGEyNTcyMmIyNzgzNTI2MWI2ZmYwZmEyYWE2YTcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTU6MDU6MTEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTU0NDU1RVZCIGZvciBNQ0Y1NDQ1eAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMTQzNmE4NDI2NTRhOGQzOTI3ZDA4MmE4YWU5ZWUwYTEwZGE2MmQ3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDEzOjIwOjUwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MjUzRVZCRSBwbGF0Zm9ybSBmb3IgTUNGNTJ4MgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNjA1YWFjZDgzMjQwOTQxOTk0MDI4MTZjYzZkOTEyNGFiYTU3YjhkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDA1OjA0OjMxIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MjQ5RVZCIHBsYXRmb3JtIGZvciBNQ0Y1MngyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYyOGUxYmQ5ZGFhNmRlNWViMzNhZTQ4MjJiZGE2YjAwOGNjYjRlOWUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MzI6MDYgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBVcGRhdGUgRnJlZXNjYWxlIE1DRjUyeDIgcGxhdGZvcm1zCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3MDQ3MGRiZjZmNGJiOTg2NGUwZDk3YWVlZGJjMTdjMTY3YzZkMWMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NTU6MTAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBVcGRhdGUgRUIrTUNGLUVWMTIzIHBsYXRmb3JtCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFhOTNkODU5ZDliMWZjZDhlZWE1MmQ1MWIwNmU4NmMzOGY3MjExMWIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NDY6MzggMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiB1cGRhdGUgVEFTUkVHIHBsYXRmb3JtIGZvciBNQ0Y1MngyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5NTA1NTEwYmY1NmE5YjU1NTgyNDhkZDhiNzNlYzlkOWExNTU2YTIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NDU6NTEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiB1cGRhdGUgcjUyMDAgcGxhdGZvcm0gZm9yIE1DRjUyeDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmNmZDNjN2JjODEzZmIzMTdhYjdjMDc4MWYwZDE4NzRiMWMwODc3YwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo0MzoyMCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IGlkbXIgcGxhdGZvcm0gTUNGNTJ4MiB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjcwNjQyNGQwYmI4NTFmYjUyYWYwMGNkMWMzMzAxZTkxZWU3ZjJiMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo0MTowNiAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IGNvYnJhNTI3MiBwbGF0Zm9ybSBmb3IgTUNGNTJ4MiB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTYxMTU2NjViNGE2NGMxMGMwMTQ0MGM1Nzc0OWIyNjVlMDkwOGZhNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTozODoxNSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUyeDIgSGVhZGVyIGZpbGVzIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4M2VjMjBiYzQzODBlZWJkZGZkZTQ1ZGE2ZTNhNjlhOTJkNGRiMjFkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjIxOjIxIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTJ4MiB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjUyZTc4MzA0ZGNjMGFjNDU5YzBlYTFmYTViZTI3NWM3ZDE2NDJjZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxODo0NjoxMSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgdXBkYXRlIGNhY2hlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcxNzE5NzdmYjhmZDc3Y2ZiNjY3Njk1M2ZhOWEwNTc4OWM0NTA1MTMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTU6NDA6MjAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IGhlYWRlciBmaWxlIGNsZWFuIHVwCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFiNzdiYzU0N2JhNTYxYzI1ZWEzNDQ1N2VkMTdhYTBiMmY3YzI3MjMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTU6Mzk6MTcgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IFVwZGF0ZSBhbmQgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMDMyN2RjNTU0MWY5NDdjMGNmN2UzMWZlZjg2YzQ3MDYxNjk2MDdhCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE2OjM1OjAyIDIwMDcgLTA1MDAKCiAgICBBZGQgQ09ORklHX0hBU19FVEgwIHRvIGFsbCBib2FyZHMgd2l0aCBUU0VDCgogICAgVGhlIDg1eHggY29kZSBub3cgcmVsaWVzIG9uIENPTkZJR19IQVNfRVRIMCB0byBkZXRlcm1pbmUgd2hldGhlcgogICAgdG8gdXBkYXRlIFRTRUMxJ3MgZGV2aWNlLXRyZWUgbm9kZSwgc28gd2UgbmVlZCB0byBhZGQgaXQKICAgIHRvIGFsbCB0aGUgYm9hcmRzIHdpdGggVFNFQ3MuICBEbyB0aGlzIGZvciA4M3h4IGFuZCA4Nnh4LCB0b28sCiAgICBzaW5jZSB0aGV5IHdpbGwgZXZlbnR1YWxseSBkbyBzb21ldGhpbmcgc2ltaWxhci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDY0ZWU5MDhhMWI1MjVlNWJiMmI0Y2JlYjVjNDQ5YWQ2YTQ2OTY2NgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBdWcgMTYgMTU6MDU6MDQgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBNUEM4NTQ0IERTIFBDSSBtZW1vcnkgbWFwCgogICAgVGhlIFBDSWUgYnVzIHRoYXQgdGhlIFVMSSBNMTU3NSBpcyBjb25uZWN0ZWQgdG8gaGFzIG5vIHBvc3NpYmxlIHdheSBvZgogICAgbmVlZGluZyBtb3JlIHRoYW4gdGhlIGZpeGVkIGFtb3VudCBvZiBJTyAmIE1lbW9yeSBzcGFjZSBuZWVkZWQgYnkgdGhlIFVMSS4KCiAgICBTbyBtYWtlIGl0IHVzZSBmYXIgbGVzcyBJTyAmIG1lbW9yeSBzcGFjZSBhbmQgaGF2ZSBpdCB1c2UgdGhlIHNoYXJlZCBMQVcuICBUaGlzCiAgICBmcmVlJ3MgdXAgYSBMQVcgZm9yIFBDSWUxIElPIHNwYWNlLiAgQWxzbyByZWR1Y2UgdGhlIGFtb3VudCBvZiBJTyBzcGFjZSBuZWVkZWQKICAgIGJ5IGVhY2ggYnVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZWE1ODc3ZTMxZWQ2M2FkZTk0OGZkMTI5Mzg5NWVjMjNmZTAxNDcyZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBdWcgMTYgMTE6MDE6MjEgMjAwNyAtMDUwMAoKICAgIEZpeCB1cCBzb21lIGZkdCBpc3N1ZXMgb24gODU0NERTCgogICAgSXQgbG9va3MgbGlrZSB3ZSBoYWQgYSBtZXJnZSBpc3N1ZSB0aGF0IGR1cGxpY2F0ZWQgYSBiaXQgb2YgY29kZQogICAgaW4gZnRfYm9hcmRfc2V0dXAuCUFsc28sIHdlIG5lZWQgdG8gc2V0IENPTkZJR19IQVNfRVRIMCB0byBnZXQKICAgIHRoZSBNQUMgYWRkcmVzcyBwcm9wZXJseSBzZXQgaW4gdGhlIGRldmljZSB0cmVlIG9uIGJvb3QgZm9yIFRTRUMxCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwN2JjMjA1NjBjYjlkM2QxODZjY2EyNjhjMDVjODI3NjJlOGM1NWFkCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxNToxNjowMyAyMDA3ICswMjAwCgogICAgUFBDNHh4OkhDVTQvNSBjbGVhbnVwCgogICAgTWlub3IgY2xlYW51cHMgdG8gY29uZmlybSB0byB0aGUgdS1ib290IGNvZGluZyBzdHlsZS4KICAgIFNvbWUgZ2VybWFuIGV4cHJlc3Npb25zIC0+IGVuZ2xpc2guCiAgICBIQ1U1IGVuZm9yY2VzIGEgdW5pcXVlIElQIGFkcmVzcyBmb3IgYSBnaXZlbiBzbG90IGluIHRoZSByYWNrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMWU2YjA3YzY0OTY3YzFlYjJjZDg0ZmFhNGMzMmJmMmE3NjliYzhlYgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTU6MTY6MDIgMjAwNyArMDIwMAoKICAgIFBQQzR4eDpIQ1U0LzUgY2xlYW51cCBlY2Mvc2RyYW0gaW5pdAoKICAgIE1ha2UgZWNjIGluaXRpYWxpc2F0aW9uIHJvYnVzdCwgYXMgRERSMi1FQ0MgZXJyb3JzIG1heSBiZSBnZW5lcmF0ZWQKICAgIHdoaWxlIHplcm9pbmcgdGhlIFJBTS4KCiAgICBSZXR1cm4gMTYgYnl0ZXMgKGEgY2FjaGVsaW5lKSBsZXNzIHRoYW4gdGhlIGF2YWlsYWJsZSBtZW1vcnksIGFzIHRoZQogICAgYm9hcmQgYW5kL29yIFBQQzQ0MEVQeCBtaWdodCBoYXZlIHByb2JsZW1zIGFjY2Vzc2luZyB0aGUgbGFzdCBieXRlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGQzNWI1MDhhNTU1MDg1MzViNmU4NDQ1YjcxODU4NWQyN2RmNzMzZDMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjI5OjU2IDIwMDcgLTA1MDAKCiAgICBmZHQ6IHN1cHByZXNzIHVudXNlZCB2YXJpYWJsZSAnYmQnIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgyYmQ5ZWU3NzQ5MDU4OGQ0ZGE3ODVkNzU4MjljYTYzZDAxNzZiYWYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDY6NTAgMjAwNyAtMDUwMAoKICAgIEZpeCB3YXJuaW5ncyBmcm9tIG9mX2RhdGEgY29weSBmaXgKCiAgICBGb3Jnb3QgdG8gY2FzdCBvZl9mbGF0X3RyZWUgdG8gdWxvbmcuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MTNhZmRhNzdkNWVlYzBmNDdkMzAzMDI1YjBjNjYxYjcwZTRjNzMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDM6NDQgMjAwNyAtMDUwMAoKICAgIERvbid0IHdhaXQgZm9yIGRpc2Nvbm5lY3RlZCBUU0VDcwoKICAgIFRoZSBUU0VDIGRyaXZlcidzIFBIWSBjb2RlIHdhaXRzIGEgbG9uZyB0aW1lIGZvciBhdXRvbmVnb3RpYXRpb24gdG8KICAgIGNvbXBsZXRlLCBldmVuIGlmIHRoZSBsaW5rIGlzIGRvd24uICBUaGUgUEhZIGtub3dzIHRoZSBsaW5rIGlzCiAgICBkb3duIG9yIHVwIGJlZm9yZSBhdXRvbmVnb3RpYXRpb24gY29tcGxldGVzLCBzbyB3ZSBjYW4gc2hvcnQtY2lyY3VpdAogICAgdGhlIHByb2Nlc3MgaWYgdGhlIGxpbmsgaXMgZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjk2YzgzZDRhZTQ3NWE3MGVmMjYzNWNkMGU3NDgxNzRjNDRjODYwMQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowMzozNCAyMDA3IC0wNTAwCgogICAgRml4IG51bWVyb3VzIGJ1Z3MgaW4gdGhlIDg1NjggVUVDIHN1cHBvcnQKCiAgICBBY3R1YWxseSwgZml4ZWQgYSBsYXJnZSBidWcgaW4gdGhlIFVFQyBmb3IgKmFsbCogcGxhdGZvcm1zLgogICAgSG93IGRpZCB0aGlzIGV2ZXIgd29yaz8KCiAgICB1ZWNfaW5pdCgpIGRpZCBub3QgZm9sbG93IHRoZSBzcGVjIGZvciBldGhfaW5pdCgpLCBhbmQgcmV0dXJuZWQKICAgIDAgb24gc3VjY2Vzcy4gIFN3aXRjaCBpdCB0byByZXR1cm4gdGhlIGxpbmsgbGlrZSB0c2VjX2luaXQoKQogICAgKGFuZCAwIG9uIGVycm9yKQoKICAgIFRoZSBpbW1hcCBmb3IgdGhlIDg1Njggd2FzIGRlZmluZWQgYmFzZWQgb24gTVBDODU2OCwgcmF0aGVyIHRoYW4KICAgIENPTkZJR19NUEM4NTY4CgogICAgQ09ORklHX1FFIHdhcyBvZmYKCiAgICBDT05GSUdfRVRIUFJJTUUgd2FzIHNldCB0byAiRnJlZXNjYWxlIEdFVEgiLiAgTm93IGlzICJGU0wgVUVDMCIKCiAgICBGaXhlZCBhIGNvbW1lbnQgYWJvdXQgdGhlIHJhbmdlcyBmb3IgQ09ORklHX0VUSFBSSU1FIGlmIFRTRUNfRU5FVCBpcwogICAgZW5hYmxlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYTc5MDEzZTJhZGRhNTMzMzJkZmQwYjUxMTA2NmE4MDVlOTI5YTlkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjAzOjI1IDIwMDcgLTA1MDAKCiAgICBEZWZpbmUgdHNlYyBmbGFnIHZhbHVlcyBpbiBjb25maWcgZmlsZXMKCiAgICBUaGUgdHNlY19pbmZvIHN0cnVjdHVyZSBhbmQgYXJyYXkgaGFzIGEgImZsYWdzIiBmaWVsZCBmb3IgZWFjaAogICAgZXRoZXJuZXQgY29udHJvbGxlci4gIFRoaXMgZmllbGQgaXMgdGhlIG9ubHkgcmVhc29uIHRoZXJlIGFyZQogICAgc2V0dGluZ3MuICBTd2l0Y2ggdG8gZGVmaW5pbmcgVFNFQ25fRkxBR1MgZm9yIGVhY2ggY29udHJvbGxlcgogICAgaW4gdGhlIGNvbmZpZyBoZWFkZXIsIGFuZCB3ZSBjYW4gZ3JlYXRseSBzaW1wbGlmeSB0aGUgYXJyYXksIGFuZAogICAgYWxzbyBzaW1wbGlmeSB0aGUgYWRkaXRpb24gb2YgZnV0dXJlIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWM3MjM4MjI5NTA3ZTdmNDc1MzNhNjExZWE4YzUzMzE5ZDIzNGNmMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowMzoxMyAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIGFsbCBib2FyZHMgd2l0aCBhIFRTRUMKCiAgICBDaGFuZ2VzIHRvIHRoZSBUU0VDIGRyaXZlciBhZmZlY3QgYWxtb3N0IGFsbCA4M3h4LCA4NXh4LCBhbmQgODZ4eCBib2FyZHMuCiAgICBOb3cgd2UgY2FuIGRvIGEgTUFLRUFMTCB0ZXN0IG9uIGFsbCBvZiB0aGVtIQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMGFhZjcxNmNiMGRjNjYxNGRmNTRlZjc4YmVkNTE0NGFmZDIzZWY4CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE3OjMwOjU2IDIwMDcgLTA1MDAKCiAgICBGaXggb2ZfZGF0YSBjb3B5aW5nIGZvciBDT05GSUdfT0ZfRkxBVF9UUkVFLXVzaW5nIGJvYXJkcwoKICAgIFRoZSBmaXgsICJGaXggd2hlcmUgdGhlICNpZmRlZiBDRkdfQk9PVE1BUFNaIGlzIHBsYWNlZCIKICAgIG5lZ2xlY3RlZCB0byAqYWxzbyogcHV0IHRoZSBjb2RlIGluc2lkZSB0aGUgc2ltaWxhciAjaWZkZWYKICAgIGZvciBDT05GSUdfT0ZfRkxBVF9UUkVFLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3OGY5ZmVmN2Y0MDYwNzhjOGJmNzE5MWU2NjVhNzNmNzk1MTU3NzQ2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTU6NDY6NDYgMjAwNyAtMDUwMAoKICAgIG1wYzg4NWFkczogRG9uJ3QgZGVmaW5lIENPTkZJR19CWklQMi4KCiAgICBiemlwMiByZXF1aXJlcyBhIHNpZ25pZmljYW50IGNodW5rIG9mIG1hbGxvYyBzcGFjZSwgYW5kIHRoZXJlIGlzbid0CiAgICBlbm91Z2ggcm9vbSBvbiBtcGM4ODVhZHMgKHdpdGggb25seSA4TUIgUkFNKSBmb3IgYm90aCBiemlwMidzIG1hbGxvYyBhcmVhCiAgICBhbmQgYSBkb3dubG9hZGVkIGltYWdlIGF0IDB4NDAwMDAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAwMjI3NWEzZWQ4YjExNDg4NWY2NzAyZDZkNTQ0ZDA3ODBkZmU2ODkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPE1vbnN0ckBzZXpuYW0uY3o+CkRhdGU6CVRodSBBdWcgMTYgMDg6NTQ6MTAgMjAwNyArMDIwMAoKICAgIEJpb3MgZW11bGF0b3IgLSBmaXggbWljcm9ibGF6ZSB0b29sY2hhaW4gcHJvYmxlbQoKICAgIG1pY3JvYmxhemUgQ1BVIGhhdmUgcHJvYmxlbSB3aXRoIGJpb3NfZW11bGF0b3IgY29kZS4KICAgIE1pY3JvYmxhemUgdG9vbGNoYWluIGRvZXNuJ3Qgc3VwcG9ydCBQUkFHTUEgUEFDSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgYTVhMzhmNGZkN2U1MzY2ZDcwNmZmNmE5ODVmOWI2NzE1ZGRiYzk4YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMTE6NTE6MDQgMjAwNyArMDIwMAoKICAgIE1pbm9yIENvZGluZyBTdHlsZSBmaXg7IFVwZGF0ZSBDSEFOR0VMT0cgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhmYjZlODBjMDY4NDllMzAxM2FjNWM5MzUwZDhlZDllNTI5Njc5OTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMTE6MjE6NDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlICN3YXJuaW5nIGluIGVzZCBhdXRvX3VwZGF0ZS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkNzgwNzRkMmU4MDZlZGMzODBjMTQ2NGViOWU1ZGYzMzVlY2U2NWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjIgMTc6MzI6MjggMjAwNyArMDIwMAoKICAgIHBwYzd4eDogVXBkYXRlIENQQ0k3NTAgYm9hcmQKCiAgICBUaGlzIHNtYWxsIENQQ0k3NTAgdXBkYXRlIGV4dGVuZHMgdGhlIGJvYXJkIHNwZWNpZmljIGNvbW1hbmQKICAgICJzaG93X2NvbmZpZyIgdG8gZGlzcGxheSB0aGUgTWFydmVsbCBzdHJhcHBpbmcgcmVnaXN0ZXJzIGFuZAogICAgZXh0ZW5kcyB0aGUgUENJIElERSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlaW5oYXJkIEFybHQgPHJlaW5oYXJkLmFybHRAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3OGNmZjUwZWRiYTZiMTUwOGViMTVjMmY1M2NlOTY2YWM4OTFlYjllCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUaHUgQXVnIDE2IDEwOjQ2OjI4IDIwMDcgKzAyMDAKCiAgICBbRklYXSBDaGFuZ2VzIGZvciBiaW9zX2VtdWxhdG9yIGNvZGUgZm9yIG90aGVycyBhcmNoaXRlY3R1cmUKCmNvbW1pdCA2ZTBlMjI1M2YwMzkzNDRmOGViZDI3ODcyODVmZGJhOTBlNjcxNGU4CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUaHUgQXVnIDE2IDEwOjQ1OjA5IDIwMDcgKzAyMDAKCiAgICBbRklYXSBSZW1vdmUgdW51c2VkIGluY2x1ZGUgZmlsZQoKY29tbWl0IDlkZTQ2OWJkOTYwY2MxODcwYmI0MGQ2NjcyZWQ0MjcyNmI4YjUwZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMTA6MTg6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogT25seSBlbmFibGUgUE9TVCBGUFUgdGVzdCBvbiBTZXF1b2lhIGFuZCBub3QgUmFpbmllcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZGEwYzViZDRhNTNlNDBlYjRmN2ViNzJhNGMwNTFlY2FiYWQ3ODNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDA5OjU0OjUxIDIwMDcgKzAyMDAKCiAgICBBZGQgbWlzc2luZyByYWluaWVyIChQUEM0NDBHUngpIHRhcmdldCB0byBNQUtFQUxMIGFuZCBNQUlOVEFJTkVScyBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMmJhNzAyMmY2MmJiNzU5MDgyOTZjNThjNjM4NjZlMWQyOTRiNjlhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDA5OjUyOjI5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBTZXF1b2lhL1JhaW5pZXIgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBBcyBzdWdnZXN0ZWQgYnkgRGF2aWQgTWl0Y2hlbGwsIGhlcmUgYW4gdXBkYXRlIGZvciB0aGUgU2VxdW9pYS9SYWluaWVyCiAgICBib290c3RyYXAgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzVjYzRlNDgyMzY2OGU4NzQ1ODU0ODk5Y2ZhZWRkNDQ4OWJlYjBlZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MzkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGVuYWJsZSBsaWJmZHQgYnkgZGVmYXVsdCBvbiBmcmVlc2NhbGUgYm9hcmRzCgogICAgdGhpcyBlbmFibGVzIGxpYmZkdCBjb2RlIGJ5IGRlZmF1bHQgZm9yIHRoZQogICAgZnJlZXNjYWxlIG1wYzgzMTNlcmRiLCBtcGM4MzJ4ZW1kcywgbXBjODM0OWVtZHMsCiAgICBtcGM4MzQ5aXR4IGFuZCBncCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZmRlOWU4YjIyY2ZiZDdhZjQ4OTIxNDc1OGY5ODM5YTIwNjU3NmNiCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDozMyAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogbWlncmF0ZSByZW1haW5pbmcgZnJlZXNjYWxlIGJvYXJkcyB0byBsaWJmZHQKCiAgICB0aGlzIGFkZHMgbGliZmR0IHN1cHBvcnQgY29kZSBmb3IgdGhlIGZyZWVzY2FsZQogICAgbXBjODMxM2VyZGIsIG1wYzgzMnhlbWRzLCBtcGM4MzQ5ZW1kcywgbXBjODM0OWl0eCwKICAgIGFuZCBncCBib2FyZHMuCgogICAgQm9hcmRzIHJlbWFpbiBjb21wYXRpYmxlIHdpdGggT0ZfRkxBVF9UUkVFLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmExNmUwZGZjYzQxMTliNDZhZGIxZGNlMmQ2YzhmYjNjNWQxMDhlMQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MjYgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1vdmUgY29tbW9uIC9tZW1vcnkgbm9kZSB1cGRhdGUgbWVjaGFuaXNtIHRvIGNwdS5jCgogICAgYWxzbyBhZGRzIGNvbW1vbiBwcm90b3R5cGVzIHRvIGluY2x1ZGUvY29tbW9uLmguCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZjllMGU5ZjMzOWFlZTRjZTMxYTMzOGQ1ZjI3MzU2ZWI1NDU3Zjg1CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDoxOSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogcmVtYWluaW5nIDgzNjAgbGliZmR0IGZpeGVzCgogICAgUENJIGNsb2NrcyBhbmQgUUUgZnJlcXVlbmNpZXMgd2VyZW4ndCBiZWluZyB1cGRhdGVkLCBhbmQgdGhlIGNvcmUgY2xvY2sKICAgIHdhcyBiZWluZyB1cGRhdGVkIGluY29ycmVjdGx5LiAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSAvbWVtb3J5IG5vZGUgaWYKICAgIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdCBwcmlvciB0byB1cGRhdGUuCgogICAgcGx1cyBzb21lIGNvc21ldGljIHRyaW1taW5nIHRvIHNpbmdsZSBsaW5lIGNvbW1lbnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjRiMmFjNWVkOWFhZmY5OTIwZDQ4N2JmZjhhNTk2OTZjMDgzYTUyNApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MTIgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCBVRUMyLT4xIHR5cG8gaW4gbGliZmR0IHNldHVwIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE5ZmExYzM1MzY4NDg0ZDRlZDEwZGRjZThhNzc5M2MyMTg2MmUzYTMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjA1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBhZGQgTUFJTlRBSU5FUiBhbmQgTUFLRUFMTCBlbnRyaWVzIGZvciB0aGUgbXBjODMyM2VyZGIKCiAgICBhbmQgcmVvcmRlciB0aGUgZXhpc3RpbmcgODN4eCBtYWludGFpbmVycyBhbHBoYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDViNGRlOTMwOWQ3YTAzYWExZGIyZTUzOTFhYjY5NjM2MzM5MWY0NjAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVdlZCBBdWcgMTUgMjE6MTU6MDUgMjAwNyArMDIwMAoKICAgIFtGSVhdIFJlc29sdmUgcHJvYmxlbSB3aXRoIHdhcm5pbmdzCiAgICBtaWNyb2JsYXplIHRvb2xjaGFpbiBkb24ndCBzdXBwb3J0IFBSQUdNQSBQQUNLLgoKY29tbWl0IGQxZWQyOGNmMzZhYjZiMWQ0YzQ3OTgwOWRlNzI1MmJmNTNkMmYyZDQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVdlZCBBdWcgMTUgMjE6MDU6MDcgMjAwNyArMDIwMAoKICAgIFtGSVhdIENvcnJlY3Rpb24gY29tbWFuZCBzZXR0aW5nIGZvciBNaWNyb2JsYXplIGJvYXJkcwoKY29tbWl0IDdhYTYzZDhjZDMwYWIyMGFjMmZkMWFiODZlNjA0NzFkZThiMWYxZTUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVdlZCBBdWcgMTUgMjE6MDM6NDEgMjAwNyArMDIwMAoKICAgIFtGSVhdIENvcnJlY3Rpb24gY29tbWFuZCBkZWZpbml0aW9uCgpjb21taXQgMzBiNTJkZjllOTA2YmYwZTQ2NTkxNmMyYzZiYjUxOTJiNDM4ZTBiOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTE6NTU6MzUgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBsaW5nZXJpbmcgQ0ZHX0NNRF8qIHJlZmVyZW5jZXMgaW4gc2JjODY0MWQuaAoKICAgIFJlbW92ZSBhIGxlZnRvdmVyIGluIG5ldC90ZnRwLmMgd2hpbGUgd2UncmUgYXQgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0Y2U5MTc3NDJiMWU0OGZhYTliZjlhOTc1NzU0NWU1NmZiNGNmZTQ0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMjoyMDo0MCAyMDA3IC0wNTAwCgogICAgTW92ZSB0aGUgTVBDODY0MUhQQ04gYm9hcmQgdW5kZXIgYm9hcmQvZnJlZXNjYWxlLgoKICAgIE1pbm9yIHBhdGggY29ycmVjdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSBidWlsZGFiaWxpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NjYyNTc3ZmUzNmZkYjZhNDRiNTViOTk4ZDlkYWFjNjM5MmE3MzZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMTo0NjoyMiAyMDA3IC0wNTAwCgogICAgODZ4eDogRml4IGxpbmdlcmluZyBDRkdfQ01EXyogcmVmZXJlbmNlcyBpbiBzYmM4NjQxZC5oCgogICAgUmVtb3ZlIGEgbGVmdG92ZXIgaW4gbmV0L3RmdHAuYyB3aGlsZSB3ZSdyZSBhdCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIxMGY0NjNjNzE5MTdiN2E0NDk1YzIxMDNjMjI4YjljMTc5YWU2NGQKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTE6MTM6MTUgMjAwNyAtMDQwMAoKICAgIEZpeCB3aGVyZSB0aGUgI2lmZGVmIENGR19CT09UTUFQU1ogaXMgcGxhY2VkLgoKICAgIENvbW1pdCAwNzNlMWI1MDk5ODBjZWZlNmY1M2MyZDdmYmJjZDEzNWRmMWUzOTI0ICJGaXggaW5pdHJkL2R0YgogICAgaW50ZXJhY3Rpb24iIHB1dCB0aGUgbmV3IGNvZGUgb3V0c2lkZSBvZiB0aGUgI2lmIGRlZmluZWQoQ09ORklHX09GX0xJQkZEVCkKICAgIHdoZW4gaXQgc2hvdWxkIGhhdmUgZ29uZSBpbnNpZGUgb2YgdGhlIGNvbmRpdGlvbmFsLiAgQXMgYSByZXN1bHQsIGl0CiAgICBicm9rZSBub24tTElCRkRUIGJvYXJkIGJ1aWxkcy4KCiAgICBBbHNvIGFkZGVkIGEgbWlzc2luZyAibm90LiIgdG8gdGhlIGNvbW1lbnQuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAwZTE5MjA5NzY3MTk0YTk3Y2VjNmQ5M2RiYTllNjRkMWRhOGQ1NDhlCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMjoxNDoyMyAyMDA3ICswMjAwCgogICAgUFBDNHh4OkhDVTQvNS1Cb2FyZCBmaXggY29tcGlsZSB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA1OTRlNzk4MzhjZTUwNzhhOTBkMGMyN2FiYjJiMmQ2MWQ1ZjhlOGE3CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxNDowNjo0NSAyMDA3IC0wNTAwCgogICAgRml4IG1hbGxvYyBzaXplIGVycm9yIGluIGFoY2lfaW5pdF9vbmUuCgogICAgVHlwaWNhbGx5IHRoaXMgY2F1c2VzIHNjc2kgaW5pdCB0byBjb3JydXB0IHRoZQogICAgZGV2bGlzdCBhbmQgYnJlYWsgdGhlIGNvbmluZm8gY29tbWFuZC4KICAgIEZpeCBhIGNvbXBpbGVyIHNpemUgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjM2MWFjZDY0ZmQyNTI1YzA4MWI5YjI4OGIwODA0ZWZlMjA5YzBlOQpBdXRob3I6IGtzaUBrb2k4Lm5ldCA8a3NpQGtvaTgubmV0PgpEYXRlOglUdWUgQXVnIDE0IDEwOjAyOjE2IDIwMDcgLTA3MDAKCiAgICBUSSBEYVZpbmNpIC0gZml4IHVuc3VwcG9ydGVkICVoaHggZm9ybWF0CgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+Cgpjb21taXQgZjAxZGJiNTQyNGE4MTQ1M2M4MTE5MGRkMzBlOTQ1ODkxNDY2ZjYyMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTg6NDI6MzYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDczZTFiNTA5OTgwY2VmZTZmNTNjMmQ3ZmJiY2QxMzVkZjFlMzkyNApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDozMjo1OSAyMDA3IC0wNTAwCgogICAgRml4IGluaXRyZC9kdGIgaW50ZXJhY3Rpb24KCiAgICBUaGUgb3JpZ2luYWwgY29kZSB3b3VsZCB3cm9uZ2x5IHJlbG9jYXRlIHRoZSBibG9iIHRvIGJlIHJpZ2h0IGJlZm9yZQogICAgdGhlIGluaXRyZCBpZiBpdCBleGlzdGVkLiAgVGhlIGJsb2IgKm11c3QqIGJlIHdpdGhpbiBDRkdfQk9PVE1BUFNaLAogICAgaWYgaXQgaXMgZGVmaW5lZC4gIFNvIHdlIG1ha2UgdHdvIGNoYW5nZXM6CgogICAgMSkgZmxhZyB0aGUgYmxvYiBmb3IgcmVsb2NhdGlvbiB3aGVuZXZlciBpdHMgYWRkcmVzcyBpcyBhYm92ZSBCT09UTUFQU1oKCiAgICAyKSBJZiB0aGUgYmxvYiBpcyBiZWluZyByZWxvY2F0ZWQsIHJlbG9jYXRlIGl0IGJlZm9yZSBrYmQsIG5vdCBpbml0cmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTU0Yjk3MDE3Mzc2OTMwN2ExMTZiZDM0MDI4YjZkMGMyZWVhMmE0ZQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTU6NDA6MDAgMjAwNyArMDEwMAoKICAgIFN1cHBseSBzcGkgaW50ZXJmYWNlIGluIGF0NDUuYwoKY29tbWl0IDRjZTg0NmVjNTlmMzZiODVkNjY0NGE3Njk2OTBhZDNmZWI2Njc1NzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTU6MTI6MDEgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEZpeCBtZXJnZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQyOWQ5NTcxZjYwNjMxYWU4YTJmZTEyYjExYmU0Yzc1YjBjMmIzN2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTU6MDM6MTcgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc3OWU5NzUxMTdhNzVlOTFmY2ViZTIyNmE2MzEwNGRiZmI5MjRhYjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTQ6NDQ6NDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgWmV1cyAoUFBDNDA1RVApIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzVhMTcyYTVmZDYzNmMxMjQ2NzQyOWUzZjc5MTBlNTM3NzM5NzljNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNDo0MTo1NSAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIG9wdGlvbiBmb3IgZXh0ZXJuYWwgZXRoZXJuZXQgbG9vcGJhY2sgdGVzdAoKICAgIFdoZW4gQ0ZHX1BPU1RfRVRIRVJfRVhUX0xPT1BCQUNLIGlzIGRlZmluZWQsIHRoZSBldGhlcm5ldCBQT1NUCiAgICBpcyBub3QgZG9uZSB1c2luZyBhbiBpbnRlcm5hbCBsb29wYmFjayBjb25uZWN0aW9uLCBidXQgYnkgYXNzdW1pbmcKICAgIHRoYXQgYW4gZXh0ZXJuYWwgbG9vcGJhY2sgY29ubmVjdG9yIGlzIHBsdWdnZWQgaW50byB0aGUgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViMmI0MDEwYWU0MjYyNDUxNzI5ODg4MDRlZThkOTE5M2ZiNDEwMzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTQ6Mzk6NDQgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCBwcGM0MDUgc3VwcG9ydCB0byBjYWNoZSBhbmQgVUFSVCBQT1NUCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBjNDJmMzZmMTUwNzRiZDk4MDhhN2RiZDdlZjYxMWZhZDliZjUzN2MKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjQ2OjMyIDIwMDcgKzAxMDAKCiAgICBSZXBsYWNlIGxvc3QgZW5kIG9mIGF0NDUuYy4KCmNvbW1pdCA2NWQ3YWRhNjQ1NTdlNzYwOTRiNGZkM2JhZDMwYTBmMThmNWZiMmIyCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDozMDowNiAyMDA3ICswMTAwCgogICAgVXBkYXRlIE1ha2VmaWxlcyBmb3IgbWVyZ2VkIGFuZCBzcGxpdCBhdDQ1LmMuCgpjb21taXQgMzQ1NGNlY2UyZGI1N2NiOWViNzA4Nzk5NWY3ZTczMDY2YTE2M2Y3MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MjE6MDYgMjAwNyArMDEwMAoKICAgIERlbGV0ZSB0aGUgbWVyZ2VkIGZpbGVzLgoKY29tbWl0IGRjYmZkMmU1NjQ5Zjk3YWEwNGZiYmM2ZWEyYjAwOGFhNDQ4NmUyMjUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjE0OjA1IDIwMDcgKzAxMDAKCiAgICBBZGQgdGhlIGZpbGVzLgoKY29tbWl0IGQ0ZmM2MDEyZmQwYTVjMjExYjgyNTY5MWY0NGIwNmY4MDMyYzA1NTEKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjEwOjUyIDIwMDcgKzAxMDAKCiAgICBBZGQgTUFDSF9UWVBFIHJlY29yZHMgZm9yIHNldmVyYWwgQVQ5MSBib2FyZHMuCiAgICBNZXJnZSB0byB0d28gYXQ0NS5jIGZpbGVzIGludG8gYSBjb21tb24gZmlsZSwgc3BsaXQgdG8gYXQ0NS5jIGFuZCBzcGkuYwogICAgRml4IHNwZWxsaW5nIGVycm9yIGluIERNOTE2MSBQSFkgU3VwcG9ydC4KICAgIEluaXRpYWxpemUgYXQ5MXJtOTIwMCBib2FyZCAoYW5kIHNldCBMRUQpLgogICAgQWRkIFBJTyBjb250cm9sIGZvciBhdDkxcm05MjAwZGsgTEVEcyBhbmQgTXV4LgogICAgQ2hhbmdlIGRhdGFmbGFzaCBwYXJ0aXRpb24gYm91bmRhcmllcyB0byBiZSBjb21wYXRpYmxlIHdpdGggTGludXggMi42LgoKICAgIFNpZ25lZC1vZmYtYnk6CVBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OglVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KCmNvbW1pdCA0ZWYzNWU1M2M2OTM1NTZjNTRiMGMyMmQ2Zjg3M2RlODdiYWRlMjUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAwOTo1NDo0NiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg1ZWI1Y2FmNmI5MDZmN2VjNWI1NDgxNGU4YzdjNzRmNTU5ODZiYjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDA5OjQ3OjI3IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cDsgcmVidWlsZCBDSEFOR0VMT0cKCmNvbW1pdCA3ZjNmMmJkMmRjMDhlMGIwNWUxODU2NjJjYTJlMmQyODM3NTcxMDRhCkF1dGhvcjogUmFuZHkgVmluc29uIDxydmluc29uQGxpbnV4Ym94Lihub25lKT4KRGF0ZToJVHVlIEZlYiAyNyAxOTo0MjoyMiAyMDA3IC0wNzAwCgogICAgODV4eENEUzogQWRkIG1ha2UgdGFyZ2V0cyBmb3IgbGVnYWN5IHN5c3RlbXMuCgogICAgVGhlIFBDSSBJRCBzZWxlY3QgdmFsdWVzIG9uIHRoZSBBcmNhZGlhIG1haW4gYm9hcmQgZGlmZmVyIGRlcGVuZGluZwogICAgb24gdGhlIHZlcnNpb24gb2YgdGhlIGhhcmR3YXJlLiBUaGUgc3RhbmRhcmQgY29uZmlndXJhdGlvbiBzdXBwb3J0cwogICAgUmV2IDMuMS4gVGhlIGxlZ2FjeSB0YXJnZXQgc3VwcG9ydHMgUmV2IDIueC4KCiAgICBTaWduZWQtb2ZmLWJ5IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBtdmlzdGEuY29tPgoKY29tbWl0IGU0MTA5NGM3ZTM4MTc3Yzc1NWZiZDliMTgyMDE4MDY5NjE0ZjA4MGQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMDE6NTA6MDkgMjAwNyAtMDUwMAoKICAgIDg1eHhDRFM6IEVuYWJsZSB0aGUgVklBIFBDSS10by1JU0EgYnJpZGdlLgoKICAgIEF1dGhvcjogUmFuZHkgVmluc29uIDxydmluc29uQGxpbnV4Ym94Lihub25lKT4KCiAgICBFbmFibGUgdGhlIFBDSS10by1JU0EgYnJpZGdlIGluIHRoZSBWSUEgU291dGhicmlkZ2UgbG9jYXRlZCBvbiB0aGUKICAgIEFyY2FkaWEgbWFpbiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYW5keSBWaW5zb24gPHJ2aW5zb25AbXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGE5ZDQ2MTBkNzZlNTJjNGQyMGE4ZjNkODQzMzQzOWE3ZmNmNWI3MQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAwMDoxNDoyNSAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFVFQyB0byA4NTY4CgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNTllNDA5MWZmZTAxNDgzOThiOWU5ZmYxNGEwMTllYTAzOGI3NDMyCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAxOSAxNDoxODozNCAyMDA3IC0wNDAwCgogICAgQWRkIFBDSSBzdXBwb3J0IGZvciBNUEM4NTY4TURTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBpcyBhZ2FpbnN0IHUtYm9vdC1tcGM4NXh4LmdpdCBvZiB3d3cuZGVueC5jb20KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRWJvbnkgWmh1IDxlYm9ueS56aHVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTExZDYzODJjOTlmZGVhMDhjMjMxMmVlZWFlODc4Njk0NWUxODlhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAxOSAxNDoxODozMiAyMDA3IC0wNDAwCgogICAgRW1waXJpY2FsbHkgc2V0IGNwbyBhbmQgY2xrX2FkanVzdCBmb3IgbXBjODV4eCBERFIyIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGlzIGFnYWluc3QgdS1ib290LW1wYzg1eHguZ2l0IG9mIHd3dy5kZW54LmNvbQoKICAgIFNldHRpbmcgY3BvIHRvIDB4OSBmb3IgZnJlcXVlbmNpZXMgaGlnaGVyIHRoYW4gMzMzTUh6IGlzIHZlcmlmaWVkIG9uCiAgICBib3RoIE1QQzg1NDhDRFMgYm9hcmQgYW5kIE1QQzg1NjhNRFMgYm9hcmQsIGVzcGVjaWFsbHkgZm9yIHN1cHBvcnRpbmcKICAgIDUzM01IeiBERFIyLgoKICAgIFNldHRpbmcgY2xrX2FkanVzdCB0byAweDYoMy80IGxhdGUgY3ljbGUpIGZvciBNUEM4NTY4TURTIGJvYXJkIGlzIGZvcgogICAgRERSMiBvbiBhbGwgY3VycmVudCBib2FyZCB2ZXJzaW9ucyBlc3BlY2lhbGx5IHZlciAxLjkyIG9yIGxhdGVyIHRvIGJyaW5nCiAgICB1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNkYjBiZWY1OWVhYjExNTU4MDE2MThjZWY1YzQ4MWU5NzU1M2I1OTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDcgMTg6MDc6MjcgMjAwNyAtMDUwMAoKICAgIFVzZSBhbiBhYnNvbHV0ZSBhZGRyZXNzIHdoZW4ganVtcGluZyBvdXQgb2YgNGsgYm9vdCBwYWdlCgogICAgT24gZTUwMCB3aGVuIHdlIGxlYXZlIHRoZSA0ayBib290IHBhZ2Ugd2Ugc2hvdWxkIHVzZSBhbiBhYnNvbHV0ZSBhZGRyZXNzIHNpbmNlCiAgICB3ZSBkb24ndCBrbm93IHdoZXJlIHRoZSBib2FyZCBjb2RlIG1heSB3YW50IHVzIHRvIGJlIHJlYWxseSBydW5uaW5nIGF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMzk5ODBjNjEwYzlhNGMzODE5MDdjOWUxZDFiOWMwZTFjMGRjYTU3YQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMyAxNDo0OTo1OSAyMDA3IC0wNTAwCgogICAgTVBDODV4eCBCQSBiaXRzIG5vdCBzZXQgZm9yIDMtYml0IGJhbmsgYWRkcmVzcyBESU1NCgogICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lcyBub3Qgc2V0IHRoZSBudW1iZXIgb2YgYmFuayBhZGRyZXNzIGJpdHMKICAgIChCQSkgaW4gdGhlIHByb2Nlc3Nvci4gVGhlIGRlZmF1bHQgYXNzdW1lcyAyIGxvZ2ljYWwgYmFuayBiaXRzLiBUaGlzCiAgICB3b3JrcyBmaW5lIGZvciBhIERJTU0gdGhhdCB1c2VzIGRldmljZXMgd2l0aCA0IGludGVybmFsIGJhbmtzIChTUEQKICAgIGJ5dGUxNyA9IDB4NCkgYnV0IG5lZWRzIHRvIGJlIHNldCBhcHByb3ByaWF0ZWx5IGZvciBhIERJTU0gdGhhdCB1c2VzCiAgICBkZXZpY2VzIHdpdGggOCBpbnRlcm5hbCBiYW5rcyAoU1BEIGJ5dGUxNyA9IDB4OCkuCgogICAgU2lnbmVkLW9mZi1ieTogR3JlZyBEYXZpcyA8RGF2aXNHQGVtYmVkZGVkcGxhbmV0LmNvbT4KCmNvbW1pdCA2YzU0MzU5N2JiNGIxZWNmNWQ4NTg5ZjdhYmIwZjM5OTI5ZmI3ZmQxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDEzIDE0OjM4OjA2IDIwMDcgLTA1MDAKCiAgICBGaXggbWlub3IgODV4eCB3YXJuaW5ncwoKICAgIFNvbWUgcGF0Y2hlcyBoYWQgaW5zZXJ0ZWQgd2FybmluZ3MgaW50byB0aGUgYnVpbGQ6CiAgICAqIG1wYzg1NjBhZHMgZGVjbGFyZWQgZGF0YSB3aXRob3V0IHVzaW5nIGl0CiAgICAqIGNwdV9pbml0IGRlY2xhcmVkIGVjbSBhbmQgaW1tYXAgd2l0aG91dCB1c2luZyBpdCBpbiBhbGwgQ09ORklHcwogICAgKiBNUEM4NTQ4Q0RTLmggaGFkIGl0cyBkZWZhdWx0IGZpbGVuYW1lcyBjaGFuZ2VkIHNvIHRoYXQgdGhleSBjb250YWluZWQKICAgICAgIlxtIiBpbiB0aGUgcGF0aHMuICBNYWRlIHRoZSBkZWZhdWx0cyBub3QgV2luZG93cy1zcGVjaWZpYyAob3IKICAgICAgYW55dGhpbmctc3BlY2lmaWMpCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYyY2ZmNmIxMDRmODJiOTkzYmVmNjA4NmNlMGM5NzE1OWJiZTFhZGQKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjUyIDIwMDcgLTA1MDAKCiAgICA4NTQ4Y2RzIFBDSUUgc3VwcG9ydC4KCiAgICBNYWtlIHRoZSBlYXJseSBMMSBjYWNoZSBzdGFjayByZWdpb24gZ3VhcmRlZCB0byBwcmV2ZW50IHNwZWN1bGF0aXZlCiAgICBmZXRjaGVzIG91dHNpZGUgdGhlIGxvY2tlZCByYW5nZS4KCiAgICBVc2UgX1BIWVMgZGVmaW5lcywgbm90IF9NRU0gZm9yIGNwdS1zaWRlIFBDSSBtZW1vcnkgbWFwcGVkIHJlZ2lvbnMuCiAgICBpbml0LlMgd2hpdGVzcGFjZSBjbGVhbnVwLgoKICAgIEFsbG93IFRFWFRfQkFTRSB2YWx1ZSB0byBiZSBzcGVjaWZpZWQgb24gY29tbWFuZCBsaW5lLiAgVGhpcyBhbGxvd3MgaXQKICAgIHRvIGJlIHNldCB0byAweGZmZmMwMDAwIHdoaWNoIGN1dHMgdGhlIHVib290IGJpbmFyeSBpbiBoYWxmLgoKICAgIENsZWFyIGFuZCBlbmFibGUgbGJjIGFuZCBlY20gZXJyb3JzLgoKICAgIFVwZGF0ZSBsYXN0X2J1c25vIGluIGRldmljZS10cmVlIGZvciBwY2kgYW5kIHBjaWUuCgogICAgUmVtb3ZlIGxvYWQgb2Ygb2Jzb2xldGUgY3B1L21wYzg1eHgvcGNpLjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MzdmMWJhMDVjZmIyNDhhYmE1YWI4ZTFmYjFiZmVlZmEwN2Q1OTYyCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo1MSAyMDA3IC0wNTAwCgogICAgODU0NGRzIFBDSUUgc3VwcG9ydAoKICAgIFBDSTEgTEFXIG1hcHBpbmcgc2hvdWxkIHVzZSBDRkdfUENJMV9NRU1fUEhZIGFuZCBub3QgX0JBU0UgYWRkcmVzcy4KCiAgICBFbmFibGUgTEJDIGFuZCBFQ00gZXJyb3JzIGFuZCBjbGVhciBlcnJvciByZWdpc3RlcnMuCgogICAgQWRkIHRmdHBmbGFzaCBlbnYgdmFyIHRvIGdldCB1Ym9vdCBmcm9tIHRmdHAgc2VydmVyIGFuZCBmbGFzaCBpdC4KCiAgICBBZGQgcGNpL3BjaWUgY29udmVuaWVuY2UgZW52IHZhcnMgdG8gZGlzcGxheSByZWdpc3RlciBzcGFjZToKICAgICAgInJ1biBwY2llM3JlZ3MiIHRvIHNlZSBhbGwgcGNpZTMgY2NzciByZWdpc3RlcnMKICAgICAgInJ1biBwY2llM2NmZyIgdG8gc2VlIGFsbCBjZmcgcmVnaXN0ZXJzCiAgICBXaGl0ZXNwYWNlIGNsZWFudXAgYW5kIE1QQzg1NDREUy5oCgogICAgRW5hYmxlIENPTkZJR19JTlRFUlJVUFRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYxYTIxZTk4MGE3YjkxODg0MjRkMDRmMWMyNjVmZGM1YzIxYzdlODUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMDE6MzQ6MjEgMjAwNyAtMDUwMAoKICAgIDg1eHggc3RhcnQuUyBjbGVhbnVwIGFuZCBleGNlcHRpb24gc3VwcG9ydAoKICAgIEZyb206IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CgogICAgU3VwcG9ydCBleHRlcm5hbCBpbnRlcnJ1cHRzIGZyb20gcGxhdGZvcm0gdG8gZWxpbWluYXRlIHN5c3RlbSBoYW5ncy4KICAgIERlZmluZSBDT05GSUdfSU5URVJSVVBUUyBib2FyZCBjb25maWd1cmUgb3B0aW9uIHRvIGVuYWJsZS4KICAgIEVuYWJsZSBlY20sIGRkciwgbGJjLCBhbmQgcGNpL3BjaWUgZXJyb3IgaW50ZXJydXB0cyBpbiBQSUMuCgogICAgUmVtb3ZlIGV4dHJhIGNwdSBpbml0aWFsaXphdGlvbiByZWR1bmRhbnQgd2l0aCBoYXJkd2FyZSBpbml0aWFsaXphdGlvbi4KICAgIFdoaXRlc3BhY2UgY2xlYW51cC4KCiAgICBEZWZpbmUgYW5kIHVzZSBfU1RBUlRfT0ZGU0VUIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBwcm9jZXNzb3JzIHVzaW5nCiAgICBwcGNfYXNtLnRtcGwKCiAgICBNb3ZlIGFkZGl0aW9uYWwgY29kZSBmcm9tIC50ZXh0IHRvIGJvb3QgcGFnZSB0byBtYWtlIHJvb20gZm9yCiAgICBleGNlcHRpb24gdmVjdG9ycyBhdCBzdGFydCBvZiBpbWFnZS4KCiAgICBIYW5kbGUgTWFjaGluZSBDaGVjaywgRXh0ZXJuYWwgYW5kIENyaXRpY2FsIGV4Y2VwdGlvbnMuCgogICAgRml4IGU1MDAgbWFjaGluZSBjaGVjayBlcnJvciBkZXRlcm1pbmF0aW9uIGluIHRyYXBzLmMKCiAgICBURVhUX0JBU0UgY2FuIG5vdyBiZSAweGZmZmNfMDAwMCAtIHdoaWNoIGN1dHMgYmluYXJ5IGltYWdlIGluIGhhbGYuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2JkMzBmYzRhNjQ3NWI0MWQ2Njc5YWUzYWFmYzlmYTUwNTI2MGM0NwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAwMTozMzoxOCAyMDA3IC0wNTAwCgogICAgQWRkIE1QQzg1NDREUyBSRUFETUUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBjN2Y5YjBkZTRlMzAwMzcwYWRmYzcwNDEyOGZhMGY3OWExNDNiNgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDggMjAwNyAtMDUwMAoKICAgIDg1eHggYWxsb3cgZGVidWdnZXIgdG8gY29uZmlndXJlIGRkci4KCiAgICBPbmx5IGNoZWNrIGZvciBtcGM4NTQ4IHJldiAxIHdoZW4gY29tcGlsZWQgZm9yIDg1NDguCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjkzNzJmZjM4YzViYWFiN2QwZTNhOGMxNGZlMTFmYTE5NGEzODcwNApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDcgMjAwNyAtMDUwMAoKICAgIG1wYzg1eHggTDIgY2FjaGUgcmVwb3J0aW5nIGFuZCBTUkFNIHJlbG9jYXRpb24gb3B0aW9uLgoKICAgIEFsbG93IGRlYnVnZ2VyIHRvIG92ZXJyaWRlIGZsYXNoIGNzMC9jczEgc2V0dGluZ3MgdG8gZW5hYmxlIGFsdGVybmF0ZQogICAgYm9vdCByZWdpb25zCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDFmMGY4ZmIxYWI5MmYwY2JhN2QzMjlkZTkwMDcwZjgyMmY4Mjk5ZgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDYgMjAwNyAtMDUwMAoKICAgIGU1MDAgbmVlZHMgcHBjX2FzbS50bXAgTUNLX0VYQ0VQVElPTgoKICAgIEFsd2F5cyBkZWZpbmUgTUNLX0VYQ0VQVElPTiBtYWNybyAtIHNvIGU1MDAgY2FuIHVzZSBpdCB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTNhNWM0MjRiZjg2NTViN2I0ZTJjMzA1YTQ0MTk2MzI1OWEyNmE4MQpBdXRob3I6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxMDo0MTowNyAyMDA3IC0wNTAwCgogICAgbXVsdGljYXN0IHRmdHA6IFJGQzIwOTAKCiAgICBJbXBsZW1lbnRlZCBJRVRGIFJGQzIwOTAsIE11bHRpY2FzdCBURlRQLiAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbgogICAgb24gUmVhbHRlayBSVEw4MTM5IGFuZCBGcmVlc2NhbGUgVFNFQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBVcGRlZ3JhZmYgPGRhdmVAY3JheS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA1ZDExMGYwYWE2OWYwNjVlZTM4NmVjMTg0MGRmZWUxZThjYzQ2YmMxCkF1dGhvcjogV2lsc29uIENhbGxhbiA8d2NhbGxhbkBzYXZhbnRhdi5jb20+CkRhdGU6CVNhdCBKdWwgMjggMTA6NTY6MTMgMjAwNyAtMDQwMAoKICAgIE5ldyBDT05GSUdfQk9PVFBfU0VSVkVSSVAgb3B0aW9uCgogICAgQWRkZWQgQ09ORklHX0JPT1RQX1NFUlZFUklQIHRvIGFsbG93IHRoZSB0ZnRwIHNlcnZlciB0byBiZSBkaWZmZXJlbnQKICAgIGZyb20gdGhlIGJvb3RwIHNlcnZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFdpbHNvbiBDYWxsYW4gPHdjYWxsYW5Ac2F2YW50YXYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNTBjY2E4Yjk3NmVjNzQwNjk4NjAyMDhjMzZlNjRjZThmNGQ1ZTRjMQpBdXRob3I6IE1pa2UgUmFwb3BvcnQgPG1pa2VAY29tcHVsYWIuY28uaWw+CkRhdGU6CVN1biBBdWcgMTIgMDg6NDg6MjcgMjAwNyArMDMwMAoKICAgIEFkZCBhYmlsaXR5IHRvIHRha2UgTUFDIGFkZHJlc3MgZnJvbSB0aGUgZW52aXJvbm1lbnQgdG8gRE05MDAwIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgUmFwb3BvcnQgPG1pa2VAY29tcHVsYWIuY28uaWw+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBiZTVkNzJkMTBkNDc2MDkzMjYyMjYyMjUxODFlMzAxZmI5YTMzYjU4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyAxMyAyMTo1Nzo1MyAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjY2EzNDk2N2NiZDEzZmY2YmQzNTJiZTI5ZTNmMWNjODhhYjI0YzA1CkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJU2F0IEF1ZyAxMSAwNjo1NDo1OCAyMDA3IC0wNTAwCgogICAgTW9kaWZ5IFNCQzg2NDFEIHRvIHVzZSBuZXcgRnJlZXNjYWxlIFBDSSByb3V0aW5lcwoKICAgIFBDSS1FeHByZXNzIHNvY2tldHMgMSBhbmQgMiB2ZXJpZmllZCB3b3JraW5nIHdpdGggSW50ZWwgUHJvLzEwMDAgUFQKICAgIGFkYXB0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KICAgIFNpZ25kZS1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTA4NDU4MzAzZTdmOWRiNjdmMjk2OTgwMDM2ZDMyOTJjMzVjYjQ1YwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSnVuIDI5IDE4OjM4OjUxIDIwMDcgKzAyMDAKCiAgICBhdG1lbF9tY2k6IEZpeCBkYXRhIHRpbWVvdXQgdmFsdWUKCiAgICBDYWxjdWxhdGUgdGhlIGRhdGEgdGltZW91dCBiYXNlZCBvbiB2YWx1ZXMgZnJvbSB0aGUgQ1NEIGluc3RlYWQgb2YKICAgIGp1c3QgdXNpbmcgYSBoYXJkY29kZWQgRFRPUiB2YWx1ZS4gVGhpcyBpcyBhIGJhY2twb3J0IG9mIGEgc2ltaWxhciBmaXgKICAgIGluIEJTUCAyLjAsIHdpdGggb25lIGFkZGl0aW9uYWwgZml4OiB0aGUgRFRPQ1lDIHZhbHVlIGlzIHJvdW5kZWQgdXAKICAgIGluc3RlYWQgb2YgZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwYmE4ZWVkMjhiNTc1NjI2YjE3ZTBhNzg4MmY5MjNiODNlMGQ3NTg0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBBdWcgMTMgMTc6MjI6MzEgMjAwNyArMDIwMAoKICAgIEFWUjMyOiBJbmNsdWRlIDxkaXY2NC5oPiBpbnN0ZWFkIG9mIDxhc20vZGl2NjQuaD4KCiAgICBpbmNsdWRlL2FzbS1hdnIzMi9kaXY2NC5oIHdhcyByZWNlbnRseSBtb3ZlZCB0byBpbmNsdWRlL2RpdjY0LmgsIGJ1dAogICAgY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMgd2Fzbid0IHByb3Blcmx5IHVwZGF0ZWQgKGFuIGVhcmxpZXIgdmVyc2lvbiBvZgogICAgdGhlIHBhdGNoIHdhcyBtZXJnZWQgcGVyaGFwcz8pCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIGNwdS9hdDMyYXAvaW50ZXJydXB0cy5jIHNvIHRoYXQgdGhlIGF2cjMyIHBvcnQKICAgIGNvbXBpbGVzIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGYwZDEyNDZlZDdjYjVhODg1MjIyNDRjNTk2ZDdhZTdlNmYxNjEyODMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEp1biAyNyAxMzozNDoyNiAyMDA3ICswMjAwCgogICAgYXRtZWxfbWNpOiBVc2UgNTEyIGJ5dGUgYmxvY2tzaXplIGlmIHBvc3NpYmxlCgogICAgSW5zdGVhZCBvZiBhbHdheXMgdXNpbmcgdGhlIGxhcmdlc3QgYmxvY2tzaXplIHRoZSBjYXJkIHN1cHBvcnRzLCBjaGVjawogICAgaWYgaXQgY2FuIHN1cHBvcnQgc21hbGxlciBibG9jayBzaXplcyBhbmQgdXNlIDUxMiBieXRlcyBpZiBwb3NzaWJsZS4KICAgIE1vc3QgY2FyZHMgZG8gc3VwcG9ydCB0aGlzLCBhbmQgb3RoZXIgcGFydHMgb2YgdS1ib290IHNlZW0gdG8gaGF2ZQogICAgdHJvdWJsZSB3aXRoIGJsb2NrIHNpemVzIGRpZmZlcmVudCBmcm9tIDUxMiBieXRlcy4KCiAgICBBbHNvIGVuYWJsZSB1bmRlcnJ1bi9vdmVycnVuIHByb3RlY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CiAgICBBY2tlZC1ieTogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KCmNvbW1pdCAyNzNkYjdlMWJkZDE5MzdlMzJmMWQ0NTA3MzIxYmI3MjFlYmQzMTE4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXVnIDEzIDA5OjA1OjMzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIGluIFBMTCBjbG9jayBjYWxjdWxhdGlvbgoKICAgIFRoaXMgcGF0Y2ggd2FzIG9yaWdpbmFsbCBwcm92aWRlZCBieSBEYXZpZCBNaXRjaGVsbCA8ZG1pdGNoZWxsQGFtY2MuY29tPgogICAgYW5kIGZpeGVzIGEgYnVnIGluIHRoZSBQTEwgY2xvY2sgY2FsY3VsYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk5ODZiYzNlNDBlODk5YmVhMzcyYTk5YTJiY2E0MDcxYmRmMmUyNGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDIxOjM0OjUwIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgNzdkMTlhOGJmM2IwYjFlNDAxY2I5ZjIzYzgxZTJlZjQxOTcwNWMxYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMjE6MzQ6MzQgMjAwNyArMDIwMAoKICAgIE1pbm9yIGFsaWdubWVudCBvZiBvdXRwdXQsIDJuZCB0cnkuCiAgICBBbHNvIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZiMzA5ZjIyYTcyNGZhZDg0MThlODExNzUxYTA3NDFiODkzNDE5Y2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDIwOjM1OjQ5IDIwMDcgKzAyMDAKCiAgICBNaW5vciBhbGlnbm1lbnQgb2Ygb3V0cHV0CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2ZjZkN2I5Yzg1NTllMjQxZThkMjMyNjIxNTQyYjhiNTk2OTliMDdiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAxODoyODoxOCAyMDA3ICswMjAwCgogICAgQ2xlYW51cCBvdXRwdXQgb24gQURTNTEyMSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsKCmNvbW1pdCBhNGQyNjM2ZjJhODU5MjQ1ZWQzYTQwMWYyNjE4OWRhMmRmZGE0Y2ViCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAxNToxMTozOCAyMDA3ICswMjAwCgogICAgQWRhcHQgYm9hcmQgY29uZmlndXJhdGlvbiBhbmQgZml4IGtlcm5lbCBjcmFzaCBvbiBNQ0MyMDAgYm9hcmQuCgogICAgVGhlIHVwZGF0ZSBwcm9jZWR1cmUgd2FzIG1vZGlmaWVkIHRvIHR1cm4gb2ZmIHRoZSBVU0Igc3Vic3lzdGVtCiAgICBiZWZvcmUgZXhpdCBmb3IgTUNDMjAwIGFuZCBUUkFCLiBUaGlzIGlzIG5lY2Vzc2FyeSBhcyBvdGhlcndpc2UgdGhlCiAgICBVU0IgY29udHJvbGxlciBjb250aW51ZXMgdG8gd3JpdGUgcGVyaW9kaWNhbGx5IHRvIHN5c3RlbSBtZW1vcnkhCgogICAgTUNDMjAwLXNwZWNpZmljIG5vdGVzOgogICAgLSB0aGUgcGF0Y2ggZGlzYWJsZXMgdGhlIG1hZ2ljIGtleSBjaGVjayBmb3IgTUNDMjAwCiAgICAtIHRoZSBwYXRjaCBjb250YWlucyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzIG1hZGUKICAgICAgZm9yIHRoZSBuZXcgcmV2aXNpb24gb2YgdGhlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUyN2YzYTZlZmI5ZGI1YTUzMzIyM2IwNWM2MjlmZjRhYzhkOTIxYmYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDE0OjQ3OjU0IDIwMDcgKzAyMDAKCiAgICBBZGp1c3QgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9mIEFEUzUxMjEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhZmFhYzg2ZmUyOTQ4YWM4NGNkOWExMmJiZWQ4ODNiM2M2ODNlN2Q5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAxNDoyNzozOSAyMDA3ICswMjAwCgogICAgQ2xlYW4gdXAgc29tZSByZW1haW5pbmcgQ0ZHX0NNRF8gLT4gQ09ORklHX0NNRF8gaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWZlNmJlNjIwOGRkYTg1MmMzNTY0ZTM4NGJkNzhkNzU3ODRkZWEzZQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBBdWcgNyAyMToxNDoyMiAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSBlcnJvciBwcmludCBtZXNzYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDk5ZGZmY2EzYjc1OTBhMTZhMDBiYzQ3NWM4NjBiNjdiMmEzZjE0NjIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDE3IDEzOjU3OjA0IDIwMDcgLTA1MDAKCiAgICBmZHQ6IGFsbG93IGZvciBidWlsZHMgdGhhdCBkb24ndCB3YW50IGVudiBhbmQgYmRfdCBub2RlcwoKICAgIHByb3RlY3QgZmR0X2VudiBhbmQgZmR0X2JkX3QgaW52b2NhdGlvbnMsIGZpeCBjb2RpbmdzdHlsZSB3aGlsZSBpbiB0aGUKICAgIGFyZWEuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MTE0OGJmN2FlYmExNDJkNmYzNDg4MDVkYjc2MjVkYjdkYTY0ZDZmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxNyAxMzo1Njo1MyAyMDA3IC0wNTAwCgogICAgZmR0OiBkbyBib2FyZCBzZXR1cCBiYXNlZCBvbiBmZHQgYWRkcmVzcyBzcGVjaWZpZWQgb24gYm9vdG0gbGluZQoKICAgIFRoZSBsYXN0IGZkdCBwYXRjaCB0byBib290bSBkaWQgYm9hcmQgc2V0dXAgYmFzZWQgb24gdGhlIGFkZHJlc3MKICAgIHNwZWNpZmllZCBieSBhIHByaW9yIGZkdCBhZGRyZXNzIGNvbW1hbmQgaW52b2NhdGlvbi4gIFRoZSBib290bQogICAgY29kZSwgYXMgaXRzIGNhbGwgdG8gZmR0X2Nob3NlbiBkb2VzLCBzaG91bGQgdXNlIHRoZSBmZHQgc3BlY2lmaWVkCiAgICBieSB0aGUgdXNlciBvbiB0aGUgYm9vdG0gY29tbWFuZC4gIE5vdGUgdGhpcyByZXN0b3JlcyBmdWxsCiAgICBmdW5jdGlvbmFsaXR5IGZvciB0aGUgODM2MCdzIGV4aXN0aW5nIGRlZmF1bHQgYm9vdCBlbnZpcm9ubWVudAogICAgdmFsdWVzLCBlLmcuICdydW4gbmZzYm9vdCcgKGkuZS4gbm8gaGF2aW5nIHRvICdmZHQgYWRkciAkZmR0YWRkcicKICAgIGJlZm9yZSBib290aW5nIGEga2VybmVsKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUxMjVhMmZmYzIwOWRkMzQ3OTRlMzI2YzcxNzU2NTgyNTNiZWFkZjMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgSnVsIDEwIDIwOjQwOjM5IDIwMDcgLTA0MDAKCiAgICBDYWxsIGZ0X2JvYXJkX3NldHVwKCkgZnJvbSB0aGUgYm9vdG0gY29tbWFuZC4KCiAgICBJbiB0aGUgcGF0Y2ggdGl0bGVkICJDcmVhdGUgbmV3IGZkdCBib2FyZHNldHVwIGNvbW1hbmQuLi4iIEkgcmVtb3ZlZCB0aGUKICAgIGNhbGwgdG8gZnRfYm9hcmRfc2V0dXAoKSBmcm9tIHRoZSByb3V0aW5lIGZkdF9jaG9zZW4oKSwgYnV0IEkgZm9yZ290CiAgICB0byBhZGQgYSBkaXJlY3QgY2FsbCBiYWNrIGludG8gY21kX2Jvb3RtLmMKCiAgICBUaGlzIGZpeGVzIHRoZSBvdmVyc2lnaHQgYnkgYWRkaW5nIHRoZSBkaXJlY3QgY2FsbCB0byB0aGUgYm9vdG0gY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGZkNjFlNTVkZDhjYjUyY2UzZmY5MWIzOTE3YWYyNmUyNGI2YjA4NDUKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSnVuIDI1IDIzOjI1OjI4IDIwMDcgLTA0MDAKCiAgICBDcmVhdGUgbmV3IGZkdCBib2FyZHNldHVwIGNvbW1hbmQsIGZpeCBidWcgcGFyc2luZyBbXSBmb3JtIG9mIHNldCB2YWx1ZXMuCgogICAgUHJldmlvdXNseSBmdF9ib2FyZF9zZXR1cCgpIHdhcyBjYWxsZWQgYnkgZmR0X2Nob3NlbigpIHdoaWNoIHdhcyBub3QKICAgIHJlYWxseSBjb3JyZWN0bHkgc3RydWN0dXJlZC4gIFRoaXMgc3BsaXRzIGZ0X2JvYXJkX3NldHVwKCkgb3V0IGJ5IGNyZWF0aW5nCiAgICBhIG5ldyBmZHQgYm9hcmRzZXR1cCBjb21tYW5kLgoKICAgIEZpeCBhIGJ1ZyB3aGVuIHBhcnNpbmcgZmR0IHNldCBjb21tYW5kIHZhbHVlcyB3aGljaCBoYXZlIHRoZSBzcXVhcmUKICAgIGJyYWNrZXQgZm9ybSBbMDAgMTEgMjIgMzNdIC0gdGhlIGxlbmd0aCB3YXMgdXBkYXRlZCBpbmNvcnJlY3RseSBpbiB3aGVuCiAgICBwYXJzaW5nIHRoYXQgZm9ybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDZmMzVkZWQ5ZTg1NDkzNTk1ZTBlYjY2YTgyYjUwMmE5NTMyNmQwNDkKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSnVuIDI1IDIwOjU1OjU4IDIwMDcgLTA0MDAKCiAgICBUaWdodGVuIHVwIHRoZSBlcnJvciBtZXNzYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGM0NTg3NGIwNWFhZTg5N2E2YzI5ZDFhOTdkNGJiNzA4ZmNhMjc1NmMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSnVuIDI1IDE5OjUyOjIzIDIwMDcgLTA0MDAKCiAgICBBc3RoZXRpYyBpbXByb3ZlbWVudHM6IGVycm9yIG1lc3NhZ2VzIGFuZCBsaW5lIGxlbmd0aHMuCgogICAgVGlnaHRlbiB1cCB0aGUgZXJyb3IgbWVzc2FnZXMsIHNwbGl0IG92ZXJsZW5ndGggbGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAzNWVjMzk4ZjE2ZTE3ZGY2MDBlZGMxYjM4YzFlOWU2MmMxNWM5YWExCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJRnJpIE1heSAyNSAyMjowODo1NyAyMDA3IC0wNDAwCgogICAgRml4IGZkdF9jaG9zZW4oKSB0byBjYWxsIGZ0X2JvYXJkX3NldHVwKCksIGNsZWFuIHVwIGxvbmcgbGluZXMuCgogICAgVGhlIGZkdF9jaG9zZW4oKSBmdW5jdGlvbiB3YXMgYWRkaW5nL3NldGluZyBzb21lIHByb3BlcnRpZXMgYWQtaG9jCiAgICAgIGltcHJvcGVybHkgYW5kIGR1cGxpY2F0ZWQgKHBvb3JseSkgd2hhdCB3YXMgZG9uZSBpbiBmdF9ib2FyZF9zZXR1cCgpCgogICAgQ2xlYW4gdXAgbG9uZyBsaW5lcyAoc2V0dGluZyBwcm9wZXJ0aWVzLCBwcmludGluZyBlcnJvcnMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMDZlMTlhMDc3MDFjOTY4ZjE1ZDcyYzA4M2I1ODcyYTFhMTFjN2IwMQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBNYXkgMjEgMjM6Mjc6MTYgMjAwNyAtMDQwMAoKICAgIEZvciBmZHRfZmluZF9ub2RlX2J5X3BhdGgoKSwgaGFuZGxlIHRoZSByb290IHBhdGggcHJvcGVybHkuCgogICAgQWxzbyByZW1vdmVzIHRoZSBzcGVjaWFsIGNhc2Ugcm9vdCBwYXRoIGRldGVjdGlvbiBpbiBjbWRfZmR0LmMgc2luY2UgaXQKICAgIGlzIG5vIGxvbmdlciBuZWNlc3NhcnkuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5Njc1ZWU3MjA4YWI5NjVkMTNlYThkODI2MmQ3N2FjNDE2MGVmNTQ5CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVGh1IE1heSAxNyAyMzo1NDozNiAyMDA3IC0wNDAwCgogICAgQWRkIGZkdF9maW5kX25vZGVfYnlfdHlwZSgpIGFuZCBmZHRfZmluZF9jb21wYXRpYmxlX25vZGUoKSB0byBMSUJGRFQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDFhODYxMTY5YmMzNzU4ZjlkZTNhZWFkNjJiMDU4NzM2YzY4OTEyNDYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgSnVuIDYgMjI6NDc6NTggMjAwNyAtMDQwMAoKICAgIFJlcGxhY2UgZmR0X25vZGVfb2Zmc2V0KCkgd2l0aCBmZHRfZmluZF9ub2RlX2J5X3BhdGgoKS4KCiAgICBUaGUgbmV3IG5hbWUgbWF0Y2hlcyBtb3JlIGNsb3NlbHkgdGhlIGtlcm5lbCdzIG5hbWUsIHdoaWNoIGlzIGFsc28KICAgIGEgbXVjaCBiZXR0ZXIgZGVzY3JpcHRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBhZGRkOGNlODMwNzhjMjVmMGVjYTVmMjNhZGJkZmM2NGNhNTBhMjQzCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIE1heSAxNiAyMjozOTo1OSAyMDA3IC0wNDAwCgogICAgRml4IGNtZF9mZHQgbGluZSBsZW5ndGhzLCByZWZhY3RvciBjb2RlLgoKICAgIEJyZWFrIGxpbmVzIHRoYXQgd2VyZSBncmVhdGVyIHRoYW4gODAgY2hhcmFjdGVycyBpbiBsZW5ndGguCiAgICBNb3ZlIHRoZSBmZHQgcHJpbnQgYW5kIHByb3BlcnR5IHBhcnNpbmcgY29kZSB0byBzZXBhcmF0ZSBzdGF0aWMgZnVuY3Rpb25zCiAgICAgIHRvIHJlZHVjZSBjb2RpbmcgY2x1dHRlciBpbiB0aGUgZmR0X2NtZCBoYW5kbGluZyBib2R5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMjUxMTQwMzNhYjIxNzg4ODEwYzQ4YmE0ZGYxMDNiNjQ5ZGExMjIzYgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXkgMTIgMDk6NDc6MjUgMjAwNyAtMDQwMAoKICAgIEZEVCBjb21tYW5kIGltcHJvdmVtZW50cy4KCiAgICBGaXggImZkdCBzZXQiIHNvIHRoYXQgaXQgd2lsbCBjcmVhdGUgYSBub24tZXhpc3RpbmcgcHJvcGVydHkuCiAgICBBZGQgImZkdCBta25vZGUiIHRvIGNyZWF0ZSBub2Rlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDM4ZWI1MDhlOGU4MTFlMmU1NzYyOGY0NDVkZTNhMjRhMjNjN2Q4MDQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWF5IDEyIDA5OjQ1OjQ2IDIwMDcgLTA0MDAKCiAgICBSZW9yZ2FuaXplIGFuZCBmaXggcHJvYmxlbXMgKHJldHVybnMpIGluIHRoZSBib290bSBjb21tYW5kLgoKICAgIERvICpOT1QqIHJldHVybiBhZnRlciB0aGUgInBvaW50IG9mIG5vIHJldHVybiIgaGFzIGJlZW4gcGFzc2VkLgogICAgICBJZiBzb21ldGhpbmcgZ29lcyB3cm9uZywgdGhlIGJvYXJkIG11c3QgYmUgcmVzZXQgYWZ0ZXIgdGhhdCBwb2ludC4KICAgIE1vdmUgdGhlICJUcmFuc2ZlcnJpbmcgY29udHJvbCB0byBMaW51eCIgZGVidWcgbWVzc2FnZSBiYWNrIHRvIHdoZXJlIGl0CiAgICAgIGJlbG9uZ3M6IGp1c3QgYmVmb3JlIHRyYW5zZmVycmluZyBjb250cm9sIHRvIGxpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgODljODc1N2Q4ZjIxM2M0NzcwOWJkYzRlZmUwNjk1MjYzYTYwODBhNgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBNYXkgOCAyMToyNzozNSAyMDA3IC0wNDAwCgogICAgRml4IGJ1Z3MgaW4gdGhlIENPTkZJR19PRl9MSUJGRFQKCiAgICBTdHVwaWQgY29kaW5nIG1pc3Rha2VzIChpZGVudGlmaWVkIGJ5IFRpbXVyIFRhYmksIHRoYW5rcykuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA2YmUwN2NjMWNhNDU4Mjc4Yzg1ZWNkYmYxYTA1MzZjZmY0YzcwMWVjCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIEFwciAyNSAyMjo0NzoxNSAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSBmZHQgbW92ZSBsZW5ndGggaGFuZGxpbmcuCgogICAgTWFrZSB0aGUgbGVuZ3RoIHBhcmFtZXRlciBvcHRpb25hbDogaWYgbm90IHNwZWNpZmllZCwgZG8gdGhlIG1vdmUgdXNpbmcKICAgIHRoZSBjdXJyZW50IHNpemUgdW5jaGFuZ2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYmI5MzBlNzZmZWE2Y2Y4OWNhMmQ5OGUyZjdjN2E2MDQzZDc5MzI3ZApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMjI6MjM6MzYgMjAwNyAtMDQwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW4gdXAuCgogICAgRGVjbGFyZSB0aGUgdmFyaWFibGUgZmR0IHByb3Blcmx5IGFzIGV4dGVybi4KICAgIENhbGwgdGhlICJzZXRfZm4iIGZ1bmN0aW9uIHBvaW50ZXIgdGhlICJzaG9ydCB3YXkiIHdpdGhvdXQgdGhlIGZ1bGwKICAgICAgZGVyZWZlcmVuY2luZyBzeW50YXguCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBiYTI0ZTJhYzNiZGI1YzQ4OWYzYzc4N2U3NTQyYjY0NzRjNGQ2NWM2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIEFwciAyNSAyMToyNDoyNyAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSBlcnJvciBtZXNzYWdlcywgbW9yZSBpbmZvcm1hdGl2ZS4KCiAgICBQcmludCBtb3JlIHRoYW4gdGhlIHJhdyBsaWJmZHQgZXJyb3IgbWVzc2FnZSBzdHJpbmdzLiAgVGhpcyBpcyBlc3BlY2lhbGx5CiAgICB1c2VmdWwgZm9yIGNsdWluZyBpbiB0aGUgdXNlciB3aGVuIHRoZSBib290bSBjb21tYW5kIGFib3J0cyBkdWUgdG8KICAgIGJsb2IgcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA4MDk2YjNiOGY3NzJjMTg5NGRkZWRhOWRiY2VmZjZhODgyNjQ3M2E0CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAyMjo0Njo1MyAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBDb25kaXRpb25hbGx5IGNvbXBpbGUgYmFzZWQgb24gQ09ORklHX09GX0xJQkZEVAoKICAgIFRoaXMgaXMgdGhlIHdheSB1LWJvb3QgcmVkdWNlcyBjb25maWd1cmVkLW91dCBjb2RlLiAgQXQgV29sZmdhbmcKICAgIEdyYW5kZWdnZXIgYW5kIFdvbGZnYW5nIERlbmsncyByZXF1ZXN0LCBtYWtlIGxpYmZkdCBjb25mb3JtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOTIzZWZkMjg2NDExZWQwNTJkOWUwNzRmNTlmODk4NmQ2MDgxMDYxYwpBdXRob3I6IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBjY3B1LmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxNDo1NDo0NyAyMDA3IC0wNzAwCgogICAgYWRkIGltYWdlIHNpemUgYW5kIGRlc2NyaXB0b3JzIGZvciBTcGFydGFuIDNFIEZQR0EgY2hpcHMKCiAgICBTcGFydGFuIDNFIGltYWdlIHNpemVzIHRha2VuIGZyb20gVGFibGUgMS00IGluIFhpbGlueCBVRzMzMiAodjEuMSkKCiAgICBTaWduZWQtb2ZmIGJ5OiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAY2NwdS5jb20+Cgpjb21taXQgZmI1NjU3OWZmZTdlZjMyNzViNzAzNmJiN2I5MjRlNWEwZDMyYmQ3MApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTU6MzQ6NDggMjAwNyAtMDUwMAoKICAgIG1ha2UgTUFLRUFMTCBtb3JlIGltbXVuZSB0byBtZXJnZSBjb25mbGljdHMKCiAgICAuLmJ5IHBsYWNpbmcgYm9hcmQgZW50cmllcyBvbmUgcGVyIGxpbmUsIGFzIHN1Z2dlc3RlZCBieSBqZGwuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNjI4MTE0ZWM1NjRmOTY5ZjM0YjVmNzEwNWZiZDE2OGNiOGM5YzNmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxMzoyODoyNSAyMDA3IC0wNTAwCgogICAgUkVBRE1FOiBSZW1vdmUgb3V0ZGF0ZWQgY3B1IHR5cGUsIGJvYXJkIHR5cGUsIGFuZCBOQU1FX2NvbmZpZyBsaXN0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDliYjU5OTEyZDIxYWFjYjUwN2ViODFmZDIxZmI3YWY2NTBjNzA2YwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxNTo0ODo1OSAyMDA3ICswODAwCgogICAgbXBjODN4eDogU3VwcHJlc3MgdGhlIHdhcm5pbmcgJ2J1cnN0bGVuJwoKICAgIHN1cHByZXNzIHRoZSB3YXJuaW5nICdidXJzdGxlbicgb2Ygc3BkX3NkcmFtLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY0NmJiYTY0NjVhNDVjNjA3NDZkNGNjMTYwMmNkMDZjMTk2MGYyZApBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBBdWcgOSAxNToxMTowMyAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNCQzg2NDFELiBDb25maWcgZmlsZXMuCgogICAgQWRkIHN1cHBvcnQgZm9yIFdpbmQgUml2ZXIncyBTQkM4NjQxRCByZWZlcmVuY2UgYm9hcmQuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KICAgIEFja2VkLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGFjMjczMjcxZDU3MzIxZjkwNTA1YzdhNTFjZGIxZWYyMTEzYjYyOApBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBBdWcgOSAxNToxMDo1MyAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNCQzg2NDFELiAgQm9hcmQgZmlsZXMuCgogICAgQWRkIHN1cHBvcnQgZm9yIFdpbmQgUml2ZXIncyBTQkM4NjQxRCByZWZlcmVuY2UgYm9hcmQuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KICAgIEFja2VkLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzJjMGFiNGFmZjg2NjIyYjgzN2E0OGEwZTU2MDM1MWY5YWZhZmI5NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxMCAyMDozNDo1OCAyMDA3ICswMjAwCgogICAgQ29uZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM3NGIyMTA4ZTMxZmUwOWJkMWM1ZDI5MWMzY2YzNjA1MTBkNGYxM2UKQXV0aG9yOiBTZXJnZXkgS3VidXNoeW4gPGtzaUBrb2k4Lm5ldD4KRGF0ZToJRnJpIEF1ZyAxMCAyMDoyNjoxOCAyMDA3ICswMjAwCgogICAgW0FSTV0gVEkgRGFWaW5jaSBzdXBwb3J0LCBob3BlZnVsbHkgZmluYWwKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIGZvbGxvd2luZyBEYVZpbmNpIGJvYXJkczoKICAgIC0gRFZfRVZNCiAgICAtIFNDSE1PT0dJRQogICAgLSBTT05BVEEKCiAgICBDaGFuZ2VzOgoKICAgIC0gU3BsaXQgaW50byBzZXBhcmF0ZSBib2FyZCBkaXJlY3RvcmllcwogICAgLSBSZW1vdmVkIGNoYW5nZXMgdG8gTVREX0RFQlVHIChvciB3aGF0ZXZlciBpdCdzIGNhbGxlZCkKICAgIC0gTmV3IENPTkZJR19DTUQgcGFydHkgbGluZSBmb2xsb3dlZAogICAgLSBTb21lIGNvc21ldGljIGZpeGVzLCBjbGVhbnVwIGV0Yy4KICAgIC0gUGF0Y2hlcyBhZ2FpbnN0IHRoZSBsYXRlc3QgVS1Cb290IHRyZWUgYXMgb2Ygbm93LgogICAgLSBGaXhlZCBDT05GSUdfQ01EX05FVCBpbiBuZXQgZmlsZXMuCiAgICAtIEZpeGVkIENPTkZJR19DTURfRUVQUk9NIGZvciBzY2htb29naWUuCiAgICAtIE1hZGUgc3VyZSBpdCBjb21waWxlcyBhbmQgd29ya3MgKGZvcmNlZW52KCkgbGluayBwcm9ibGVtKSBvbiBTQ0hNT09HSUUgYW5kCiAgICAgICBEVl9FVk0uIENhbid0IGNoZWNrIGlmIGl0IHdvcmtzIG9uIFNPTkFUQSwgZG9uJ3QgaGF2ZSBhIGJvYXJkIGFueSBtb3JlLAogICAgICAgYnV0IGl0IGF0IGxlYXN0IGNvbXBpbGVzLgoKICAgIEhlcmUgaXMgYW4gZXhjZXJwdCBmcm9tIHNlc3Npb24gbG9nIG9uIFNDSE1PT0dJRS4uLgoKICAgIFUtQm9vdCAxLjIuMC1nNmMzM2M3ODUtZGlydHkgKEF1ZyAgNyAyMDA3IC0gMTM6MDc6MTcpCgogICAgRFJBTTogIDEyOCBNQgogICAgTkFORDogIDEyOCBNaUIKICAgIEluOiAgICBzZXJpYWwKICAgIE91dDogICBzZXJpYWwKICAgIEVycjogICBzZXJpYWwKICAgIEFSTSBDbG9jayA6IDI5N01IegogICAgRERSIENsb2NrIDogMTYyTUh6CiAgICBFVEggUEhZICAgOiBEUDgzODQ4IEAgMHgwMQogICAgVS1Cb290ID4gaXByb2JlCiAgICBWYWxpZCBjaGlwIGFkZHJlc3NlczogMUIgMzggM0EgM0QgM0YgNTAgNUQgNkYKICAgIFUtQm9vdCA+IHBpbmcgMTkyLjE2OC4yNTMuMTAKICAgIGhvc3QgMTkyLjE2OC4yNTMuMTAgaXMgYWxpdmUKICAgIFUtQm9vdCA+CgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+CiAgICBBY2tlZC1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogWmFjaCBTYWRlY2tpIDxaYWNoLlNhZGVja2lAcmlwY29kZS5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJlNGQ5NGYxZTNjMjk2MTQyODk2N2EzM2I2ZmYyNTIwNTY4MzkxYjMKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ1IDIwMDcgLTA1MDAKCiAgICBmc2xfcGNpX2luaXQgY2xlYW51cC4KCiAgICBEbyBub3QgZW5hYmxlIG5vcm1hbCBlcnJvcnMgY3JlYXRlZCBkdXJpbmcgcHJvYmUgKG1hc3RlciBhYm9ydCwgcGVyciwKICAgIGFuZCBwY2llIEludmFsaWQgQ29uZmlndXJhdGlvbiBhY2Nlc3MpLgoKICAgIEFkZCBDT05GSUdfUENJX05PU0NBTiBib2FyZCBvcHRpb24gdG8gcHJldmVudCBidXMgc2Nhbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MzZiM2U2OWI2NjdjM2ViOWE2MWVjZTRlNzg2NDdkM2ZjZTlmYzJhCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0NCAyMDA3IC0wNTAwCgogICAgcGNpYXV0b19zZXR1cF9kZXZpY2UgYmFyc19udW0gZml4CgogICAgUGFzc2luZyBiYXJzX251bT0wIHRvIHBjaWF1dG9fc2V0dXBfZGV2aWNlIHNob3VsZCBhc3NpZ24gbm8gYmFycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2YwYjE4NWU1OGNhMGFlYzhhZTJiMmE4ODA0ZWMwZWY1OGVlMjFkNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgNiAxNzozOTo0NCAyMDA3IC0wNTAwCgogICAgODY0MWhwY246IERvIGNvcnJlY3Qgc2l6ZWQgcG9pbnRlciBtYXRoLgoKICAgIFdoZW4gSSByZWJhc2VkIEVkJ3MgcGF0Y2ggYW5kIGNsZWFuZWQgdXAgYSBmZXcgY29tcGlsYXRpb24KICAgIHByb2JsZW1zLCBJIGFwcGFyZW50bHkgcmViYXNlZCBteSBicmFpbiBvbiBjcmFjayBmaXJzdC4KICAgIEZpeCB0aGF0IGJ5IGRvaW5nIChjaGFyICopIHNpemVkIHBvaW50ZXIgbWF0aCBhcyBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZmM3YTdmNWJiMzI3M2M5OTUxMTczYzc4ODAwMWQ0NTExOGYxNDFmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyIDE0OjQyOjIwIDIwMDcgLTA1MDAKCiAgICBjcHUvODZ4eCBmaXhlcy4KCiAgICBSZW1vdmUgcmV2IDEgZml4ZXMuCiAgICBBbHdheXMgc2V0IFBJQ0dDUl9NT0RFLgogICAgRW5hYmxlIG1hY2hpbmUgY2hlY2sgYW5kIHByb3ZpZGUgYm9hcmQgY29uZmlnIG9wdGlvbgogICAgdG8gc2V0IGFuZCBoYW5kbGUgU29DIGVycm9yIGludGVycnVwdHMuCgogICAgSW5jbHVkZSBNU1NTUjAgaW4gZXJyb3IgbWVzc2FnZS4KCiAgICBJc29sYXRlIGEgUkFNQk9PVCBiaXQgb2YgY29kZSB3aXRoICNpZmRlZiBDRkdfUkFNQk9PVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNWQyMmY5NTdhODVhMjJiYjNjZDFhZDA4NGZhNTQwNDYyMGQxYzQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDEwIDEwOjQyOjI1IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYTZkNTZjMjA5ODlmZTI3MzYwYWZlNzQzYmQyYTdhZDRkNzZlNDhmCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVGh1IEF1ZyAyIDE3OjQyOjA4IDIwMDcgKzAyMDAKCiAgICBNYWtlIHVzZSBvZiBnZW5lcmljIDY0Yml0IGRpdmlzaW9uIGluIG5hbmRfdXRpbC5jCgogICAgVXNlIGdlbmVyaWMgNjRiaXQgZGl2aXNpb24gaW4gbmFuZF91dGlsLmMuIFRoaXMgbWFrZXMgbmFuZF91dGlsLmMKICAgIGluZGVwZW5kZW50IG9mIGFueSB0b29sY2hhaW4gNjRiaXQgZGl2aXNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgZjdjMDg2ZTk0ZThjZTlhYWQ3MjY4YWY5N2Y3M2FhNjg4NDY4NmYyNwpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVRodSBBdWcgMiAxNzo0MToxNCAyMDA3ICswMjAwCgogICAgTW92ZSA2NGJpdCBkaXZpc2lvbiBmcm9tIGF2cjMyIHRvIGdlbmVyaWMgbGliCgogICAgTW92ZSB0aGUgNjRiaXQgZGl2aXNpb24gZnJvbSBsaWJfYXZyMzIgdG8gbGliX2dlbmVyaWMuIFdpdGggdGhpcywgYWxsCiAgICBib2FyZHMgY2FuIGRvX2Rpdi9fX2RpdjY0XzMyIGlmIG5lZWRlZCwgbm90IG9ubHkgYXZyIG9uZS4gQ29kZSBpcyBwdXQKICAgIHRvIGxpYl9nZW5lcmljLCBzbyBubyBsYXJnZXIgbWVtb3J5IGZvb3RwcmludCBpZiBub3QgdXNlZC4gTm8gY29kZQogICAgbW9kaWZpY2F0aW9ucy4gVGhhbmtzIGZvciBwcm9wb3NhbCBieSBIw6V2YXJkIFNraW5uZW1vZW4uCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgMTU3Y2RhNGQwYzNkNTkyY2NiYjE5YmJmYzA3ZDkyNTE4OTRmMDg5NApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6MzE6MjIgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEhDVTUgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDZlNWRlMjZjNmU3NTgwZmFmMTZlODc3NDVjZDQ4OGI5MmI0OTJkMGMKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjMwOjMzIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBIQ1U0IGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBlODM5N2ZjNzhjOTM5NGQ3MWRlMjMzYTRkODEwZmJjOTA0N2U0Yzc2CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMTozODoyNiAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogY29tbW9uIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBhYzk4MmVhNWE0ZjJmOTkzZWZjZjUyZGNhMTIyZjVhNTlkZjA0N2Q4CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMToyODo0NCAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogbWFrZSByZWxhdGVkCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAxMzdmZGQ5ZjQ3NGVjYjg1M2VmZGFjZTUyMDA1NzYzMDhjNjdmMThkCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMToyODowMyAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSENVNSBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDcxNGJjNTViMzViNmY2YTY1Y2M4NzQwYTM4NDJhNTQzZTg4Y2RlZjIKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjI3OjE1IDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBIQ1U0IGNvbmZpZwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMTg5NGRkMzgxMTI0YmRiZmJkYWU3Y2YzYTZjYTUyYThlYjFmNDQyMQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6MjU6MzEgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IFJFQURNRXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDY0MWNjYTk1NjljZTM1MWRkYjI4N2ZkMzM0M2Q4YjFkY2I1OTFkYjQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjM3OjQwIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBJbmZyYXN0cnVjdHVyZQoKICAgIFRoaXMgc2VyaWVzIG9mIHBhdGNoZXMgYWRkcyBzdXBwb3J0IGZvciAyIGJvYXJkcyBmcm9tIE5ldHN0YWwgTWFzY2hpbmVuLgoKICAgIFRoZSBIQ1U0IGhhcyBhIFBQQzQwNUdwciBhbmQKICAgIHRoZSBIQ1U1IGhhcyBhIFBQQzQ0MEVQWC4KCiAgICBUaGUgSENVNCBoYXMgYSBzb21laG93IGNvbXBsaWNhdGVkIGZsYXNoIHNldHVwLCBhcyB0aGUgYm9vdGVwcm9tIGlzCiAgICBvbmx5IDggYml0cyBhbmQgdGhlIENGSSAxNiBiaXRzIHdpZGUsIHdoaWNoIG1ha2VzIGl0IGltcG9zc2libGUgdG8gdXNlIGEgbW9yZQogICAgZWxlZ2FudCBzb2x1dGlvbi4KCiAgICBUaGUgSENVNSBoYXMgb25seSBhIGJvb3RlcHJvbSBhcyB0aGUgd2hvbGUgY29kZSB3aWxsIGJlIGRvd25sb2FkZWQgZnJvbSBhCiAgICBkaWZmZXJlbnQgYm9hcmQgd2hpY2ggaGFzIEhELCBDRC1ST00sIGV0YyBhbmQgd2hlcmUgYWxsIGNvZGUgaXMgc3RvcmVkLgoKICAgIFRoaXMgaXMgbXkgdGhpcmQgdHJ5LiBJIGluY29ycG9yYXRlZCBhbGwgc3VnZ2VzdGlvbnMgbWFkZSBieSBXb2xmZ2FuZyBhbmQgU3RlZmFuLgogICAgVGhhbmtzIHRoZW0gYSBsb3QuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAzZTRjOTBjNjIzMzYxOGZjMTgwNmU2M2ZkZTY4ZGY1ZjNkNmEwMTcxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDEwIDA4OjQyOjU1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBsd21vbjUgUE9TVCBjb25maWd1cmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI5Y2IyNWRhNTZhZmUxOGNmNWU3MDcyYTkyYTlkOThlYThhZjFmZDQKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMDg6MjU6MjIgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCBwcGM0eHggVUFSVCBQT1NUIHN1cHBvcnQgd2l0aG91dCBleHRlcm5hbCB1YXJ0IGNsb2NrIChsd21vbjUpCgogICAgVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgVUFSVCBQT1NUIG9uIHBwYzQ0eC1iYXNlZCBib2FyZHMgd2l0aCBubwogICAgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrcyBpbnN0YWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OWMyZmRhYjkxYmM2MzNlNDZmYjQxZGJhYTYyOWY4N2NjZjZlMDBmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyA2IDE4OjE4OjM0IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggSVRYW0dQXSBPPWJ1aWxkZGlyIGJ1aWxkcwoKICAgIG1ha2U6ICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0IGAvd29yay93ZC90bXAvYm9hcmQvbXBjODM0OWl0eC91LWJvb3QubGRzJywgbmVlZGVkIGJ5IGAvd29yay93ZC90bXAvdS1ib290Jy4gIFN0b3AuCgogICAgQm90aCB0aGUgSVRYIGFuZCBJVFgtR1AgZmFpbCB3aGVuIHlvdSB1c2UgIm1ha2UgTz08c29tZSBkaXI+IC4uLiIgb3IKICAgICJCVUlMRF9ESVI9PHNvbWUgZGlyPiAuL01BS0VBTEwgLi4uIgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDdlOGJjODQ2NzU5ZTAzN2I4YWYwZTVmOWM5ZjljZmE3YTEwNTBjMwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxIDE1OjAwOjU5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBDb3JyZWN0IHRoZSBSRUFETUUgZm9yIEREUiBFQ0MKCiAgICBVcGRhdGUgdGhlIFJFQURNRSBmb3IgRERSIEVDQywgY2hhbmdlIHRoZSBuYW1lCiAgICB0byBSRUFETUUubXBjODN4eC5kZHJlY2MuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGFhYjhjNjdkMmRlZmVmNzNkYzI2YWIwN2YwYzNhZmQxYjA1ZDAxOQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxIDE1OjAwOjE1IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBDb25zb2xpZGF0ZSB0aGUgRUNDIHN1cHBvcnQgb2YgODN4eAoKICAgIFJlbW92ZSB0aGUgZHVwbGljYXRlZCBzb3VyY2UgY29kZSBvZiBlY2MgY29tbWFuZCBvbiB0aGUgPGJvYXJkPi5jLAogICAgZm9yIHJldXNlZCwgbW92ZSB0aGVzZSBjb2RlIHRvIGNwdS9tcGM4M3h4IGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMzY1NzVjNTQ0Y2YxYjY5NjU0ZDhmYjMzNGJkYTY5YzZmZjNkYTM2CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgQXVnIDQgMTM6Mzc6MzkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IENvcnJlY3QgdGhlIGJ1cnN0IGxlbmd0aCBmb3IgRERSMiB3aXRoIDMyIGJpdHMKCiAgICBUaGUgYnVyc3QgbGVuZ3RoIHNob3VsZCBiZSA0IGZvciBERFIyIHdpdGggMzIgYml0cyBidXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFjMjc0YzRlMDViNmRjOWIyNGVkYzhhYTYxOGIwMmY2MDdlZTZlZWQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDI1IDE5OjI1OjMzIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBhZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzMjNFIFJEQgoKICAgIE1QQzgzMjNFIGJhc2VkIGJvYXJkIHdpdGggNjRNQiBmaXhlZCBTRFJBTSwgMTZNQiBmbGFzaCwKICAgIGZpdmUgMTAvMTAwIGV0aGVybmV0IHBvcnRzIGNvbm5lY3RlZCB2aWEgYW4gSUNQbHVzIElQMTc1QwogICAgc3dpdGNoLCBvbmUgUENJIHNsb3QsIGFuZCBzZXJpYWwuICBGZWF0dXJlcyBub3Qgc3VwcG9ydGVkCiAgICBpbiB0aGlzIHBhdGNoIGFyZSBTRCBjYXJkIGludGVyZmFjZSwgMiBVU0IgcG9ydHMsIGFuZCB0aGUKICAgIHR3byBwaG9uZSBwb3J0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzQzZDkxMDA5ZDU1ZmM1YjNmZjhjYzk0MDU5N2FmNmM2YWExZDM1OQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjUgMTk6MjU6MjggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeHVwIGdlbmVyaWMgcGNpIGZvciBsaWJmZHQKCiAgICBhZGQgbGliZmR0IHN1cHBvcnQgdG8gdGhlIGdlbmVyaWMgODN4eCBwY2kgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjU3YWM3YTdiMzcxMDkyNDViNjlkYjgwODM5ZWJlZTI2MTc5OTY2YQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjUgMTk6MjU6MjIgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCA4MzYwIGFuZCBjcHUgZnVuY3Rpb25zIHRvIHVwZGF0ZSBmZHQgYmVpbmcgcGFzc2VkCgogICAgLi5hbmQgbm90IHRoZSBnbG9iYWwgZmR0LiBSZW5hbWUgbG9jYWwgZmR0IHZhcnMgdG8gYmxvYiBzbyBhcyBub3QgdG8KICAgIGJlIGNvbmZ1c2VkIHdpdGggdGhlIGdsb2JhbCB2YXIgd2l0aCB0aGUgc2FtZSB0aHJlZS1sZXR0ZXIgbmFtZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiZTQwNDQ1OWE2YjczOTU0MTVhNTdiYjM1ZTgzNzdlM2IyYjVhY2IKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMTozNDoyNCAyMDA3IC0wNDAwCgogICAgbXBjODN4eDogRml4IGVycm9ycyB3aGVuIENPTkZJR19PRl9MSUJGRFQgaXMgZW5hYmxlZAoKICAgIFNldmVyYWwgbm9kZSBzdHJpbmdzIHdlcmUgbm90IGNvcnJlY3QgKHRyYWlsaW5nIHNsYXNoZXMgYW5kIHByb3BlcnRpZXMKICAgICAgaW4gdGhlIHN0cmluZ3MpCiAgICBBZGRlZCBzZXR0aW5nIG9mIHRoZSB0aW1lYmFzZS1mcmVxdWVuY3kuCiAgICBJbXByb3ZlZCBlcnJvciBtZXNzYWdlcyBhbmQgdXNlIGRlYnVnKCkgaW5zdGVhZCBvZiBwcmludGYoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNmQwMmM5YmJhYzE3NTFjNWUxOTI5NGYwMDAxMDBiNDhkNDNhOTIwCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjE6Mjc6MzAgMjAwNyAtMDQwMAoKICAgIG1wYzgzeHg6IFJlcGxhY2UgZmR0X25vZGVfb2Zmc2V0KCkgd2l0aCBmZHRfZmluZF9ub2RlX2J5X3BhdGgoKS4KCiAgICBUaGUgbmV3IG5hbWUgbWF0Y2hlcyBtb3JlIGNsb3NlbHkgdGhlIGtlcm5lbCdzIG5hbWUsIHdoaWNoIGlzIGFsc28KICAgIGEgbXVjaCBiZXR0ZXIgZGVzY3JpcHRpb24uCgogICAgVGhlc2UgYXJlIHRoZSBtcGM4M3h4IGNoYW5nZXMgbWFkZSBuZWNlc3NhcnkgYnkgdGhlIGZ1bmN0aW9uIG5hbWUgY2hhbmdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDliZTM5YTY3YzlmOGZlZjcxMDdmNWRmMDlkNjczMDA1ZjA0ZDA5NjMKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDI1IDEwOjQxOjU2IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIGRpc3BsYXkgb2YgcmVzZXQgc3RhdHVzCgogICAgODN4eCBwcm9jZXNzb3IgZmFtaWx5IGhhcyBtYW55IHJlc2V0IHNvdXJjZXMsIHN1Y2ggYXMKICAgIHBvd2VyIG9uIHJlc2V0LCBzb2Z0d2FyZSBoYXJkIHJlc2V0LCBzb2Z0d2FyZSBzb2Z0IHJlc2V0LAogICAgSlRBRywgYnVzIG1vbml0b3IsIHNvZnR3YXJlIHdhdGNoZG9nLCBjaGVjayBzdG9wIHJlc2V0LAogICAgZXh0ZXJuYWwgaGFyZCByZXNldCwgZXh0ZXJuYWwgc29mdHdhcmUgcmVzZXQuCiAgICBzb21ldGltZXMsIHRvIGZpZ3VyZSBvdXQgdGhlIGZhdWx0IG9mIHN5c3RlbSwgd2UgbmVlZCB0bwogICAga25vdyB0aGUgY2F1c2Ugb2YgcmVzZXQgZWFybHkgYmVmb3JlIHRoZSBwcm9tcHQgb2YKICAgIHUtYm9vdCBwcmVzZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZmOTY1OGQ3MDQ5YmY4YzhlOGUwYTA1ZGJlNWU5ZjdlOTFhYTVhNWQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDI1IDEwOjQxOjA0IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIGFsaWduIGJ1ZyBvZiBTRE1BIGJ1ZmZlcgoKICAgIEFjY29yZGluZyB0byB0aGUgbGF0ZXN0IHVzZXIgbWFudWFsLCB0aGUgU0RNQSB0ZW1wb3JhcnkKICAgIGJ1ZmZlciBiYXNlIGFkZHJlc3MgbXVzdCBiZSA0S0IgYWxpZ25lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NmRjMmMyZGM1MWY4Yjg4YmI4ZTIzMWJjODBjZDkyZWFlMWQ2NDc2CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxMzoyMToxMiAyMDA3ICswODAwCgogICAgbXBjODN4eDogUmV2aXNlIHRoZSBNUEM4MzYwRU1EUyByZWFkbWUgZG9jCgogICAgV2hlbiB0aGUgcmV2Mi54IHNpbGljb24gbW91bnQgb24gdGhlIE1QQzgzNjBFTURTIGJhb3JkLAogICAgYW5kIGlmIHlvdSBhcmUgdXNpbmcgdGhlIHUtYm9vdCB2ZXJzaW9uIGFmdGVyIHRoZSBjb21taXQKICAgIDNmYzBiZDE1OTEwM2I1MzZlMWM1NGM2ZjQ0NTdhMDliM2FiYTY2Y2EuCiAgICB0byBtYWtlIHRoZSBldGhlcm5ldCBpbnRlcmZhY2UgdXNhYmxlLCB3ZSBoYXZlIHRvIHNldHVwCiAgICB0aGUganVtcGVycyBjb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTczOWJjOTU3OTdhYWM0ZmVmYzRjNzViNTVjN2M3OGU1OWQzZWE5YwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMyAxMzo0NjozMiAyMDA3IC0wNTAwCgogICAgRlNMIEkyQyBkcml2ZXIgcHJvZ3JhbXMgdGhlIHR3byBJMkMgYnVzc2VzIGRpZmZlcmVudGx5CgogICAgVGhlIGkyY19pbml0KCkgZnVuY3Rpb24gaW4gZnNsX2kyYy5jIHByb2dyYW1zIHRoZSB0d28gSTJDIGJ1c3NlcyBkaWZmZXJlbnRseS4KICAgIFRoZSBzZWNvbmQgSTJDIGJ1cyBoYXMgaXRzIHNsYXZlIGFkZHJlc3MgcHJvZ3JhbW1lZCBpbmNvcnJlY3RseSBhbmQgaXMKICAgIG1pc3NpbmcgYSA1LXVzIGRlbGF5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRmMzNmNmI0ZDZkNjM2OTNkZDkyMDA4MDhiMjQyZGUxYjg2Y2I4ZTgKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDMgMTM6MDQ6MzQgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBTQ0NSIHByb2dyYW1taW5nIGluIGNwdV9pbml0X2YoKSB0byBzdXBwb3J0IGFsbCA4M3h4IHByb2Nlc3NvcnMKCiAgICBVcGRhdGUgdGhlIGNwdV9pbml0X2YoKSBmdW5jdGlvbiBpbiBjcHUvbXBjODN4eC9jcHVfaW5pdC5jIHRvIHByb2dyYW0gdGhlCiAgICBiaXRmaWVsZHMgZm9yIGFsbCA4M3h4IHByb2Nlc3NvcnMuCVRoZSBjb2RlIHRvIHVwZGF0ZSBzb21lIGJpdGZpZWxkcyB3YXMKICAgIGNvbXBpbGVkIG9ubHkgb24gc29tZSBwcm9jZXNzb3JzLiAgTm93LCB0aGUgYml0ZmllbGRzIGFyZSBwcm9ncmFtbWVkIGFzIGxvbmcKICAgIGFzIHRoZSBjb3JyZXNwb25kaW5nIENGR19TQ0NSIG9wdGlvbiBpcyBkZWZpbmVkIGluIHRoZSBib2FyZCBoZWFkZXIgZmlsZS4KICAgIFRoaXMgbWVhbnMgdGhhdCB0aGUgYm9hcmQgaGVhZGVyIGZpbGUgc2hvdWxkIG5vdCBkZWZpbmUgYW55IENGR19TQ0NSIG1hY3JvcwogICAgZm9yIGJpdGZpZWxkcyB0aGF0IGRvbid0IGV4aXN0IG9uIHRoYXQgcHJvY2Vzc29yLCBvdGhlcndpc2UgdGhlIFNDQ1Igd2lsbCBiZQogICAgcHJvZ3JhbW1lZCBpbmNvcnJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NTQ2MjY2OTk5ZjBiOWI1MTM3MjYzNjYxNDIxMWI4OGQ5MGYwZjI1CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CUZyaSBKdW4gMjIgMTM6MDQ6MjIgMjAwNyArMDIwMAoKICAgIFRRTTgzNHg6IGNsZWFudXAgY29uZmlndXJhdG9uCgogICAgUmVtb3ZlIGlycml0YXRpbmcgI3VuZGVmIERFQlVHCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkNDk3ZTZiZjBmNWJmNjM3MjliNGE0N2IzZmQ3ODZkM2M3N2ExYmMKQXV0aG9yOiBkYXZpZC5zYWFkYSA8RGF2aWQuU2FhZGFAZWNpdGVsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTggMDk6MDk6NTMgMjAwNyAtMDcwMAoKICAgIE1QQzgzeHg6IEZpeCBtYWtlZmlsZSB0byBnZW5lcmF0ZSBjb25maWcuaCBmaWxlIGluIHRoZSBidWlsZCBkaXJlY3RvcnkKCiAgICBNUEM4M3h4OiBGaXggdGhlIE1ha2VmaWxlIGNvbmZpZyBzZWN0aW9ucyB0byBnZW5lcmF0ZSB0aGUgaW5jbHVkZS9jb25maWcuaAogICAgZmlsZSBpbiB0aGUgYnVpbGQgZGlyZWN0b3J5IGluc3RlYWQgb2YgdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2FhZGEgPGRhdmlkLnNhYWRhQGVjaXRlbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZGVkMDI0MmU0MzcyNTkzNjY3OTJkNTJiN2U5ZDFlMTkzMWQ4ZmE1CkF1dGhvcjogTGVlIE5pcHBlciA8TGVlLk5pcHBlckBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDE0IDIwOjA3OjMzIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgODM2MCBzaWxpY29uIHJldmlzaW9uIDIuMQoKICAgIFRoaXMgY2hhbmdlIGFkZHMgODM2MCBzaWxpY29uIHJldmlzaW9uIDIuMSBzdXBwb3J0IHRvIHUtYm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMZWUgTmlwcGVyIDxsZWUubmlwcGVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEyMjgwNjQ2OWE4ZjJiNjljODI5ZjRmZDUzNjFmZGViZDBjYjAxYjQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgQXVnIDggMDQ6MTQ6MjggMjAwNyAtMDUwMAoKICAgIFRyZWF0IHBwYzY0IGhvc3QgYXMgcHBjCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZGM0Mjc5YjA4ZmY4MjQ3MmJlYzJlMmM5MDg1ODYwMjQ1OWZlYmU4CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA4IDA5OjAxOjQ2IDIwMDcgKzA4MDAKCiAgICBNaW5vciBmaXggZm9yIGJpb3MgZW11bGF0b3IgbWFrZWZpbGUKCiAgICBBZGQgJChvYmopIHRvIExJQiBhdm9pZGluZyBvYmplY3RzIGJlIGJ1aWx0IGluIHRoZSBzb3VyY2UgZGlyCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZTk4MWRjODU3YWRmYzgwMzZjYTJmNmQ1ZDVhMDZjMmE4YWE3N2Q2CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA4IDA4OjMzOjExIDIwMDcgKzA4MDAKCiAgICBBZGQgQ09ORklHX0JJT1NFTVUgZGVmaW5lIHRvIGd1YXJkIGFsbCB0aGUgYmlvcyBlbXVsYXRvciBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCiAgICBUaGlzIHBhdGNoIGZpeCB0aGUgY29tcGlsZSBpc3N1ZSBvbiB0aGUgYm9hcmQgdGhhdCBkaWQgbm90IGVuYWJsZSB0aGUgYmlvcyBlbXVsYXRvcgoKY29tbWl0IGVkODEwNjQzMzUyMmYyZWE4OTMzZTk4MDgzNDY4NjBkMDYxZDc3MzEKQXV0aG9yOiBaYWNoIFNhZGVja2kgPFphY2guU2FkZWNraUByaXBjb2RlLmNvbT4KRGF0ZToJVHVlIEp1bCAzMSAxMjoyNzoyNSAyMDA3IC0wNTAwCgogICAgdHNlYzogZml4IG11bHRpcGxlIFBIWSBzdXBwb3J0CgogICAgVGhlIGNoYW5nZSBlbnRpdGxlZCAiUmVkdWNlIENPTkZJR19NUEM4WVhYX1RTRUN4IHRvIENPTkZJR19UU0VDeCIKICAgIGJyb2tlIG11bHRpcGxlIFBIWSBzdXBwb3J0IGluIHRzZWMuYy4gIFRoaXMgZml4ZXMgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogWmFjaCBTYWRlY2tpIDxaYWNoLlNhZGVja2lAcmlwY29kZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRjYjg0YjcyMDhhZGUwYmJlYmJlYjU2YmVjOWMyYzY0ZjhiMmVlZGUKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglUaHUgQXVnIDkgMDk6MDg6MTggMjAwNyAtMDUwMAoKICAgIHRzZWM6IEFsbG93IFRlbiBCaXQgSW50ZXJmYWNlIGFkZHJlc3MgdG8gYmUgY29uZmlndXJhYmxlCgogICAgQWxsb3cgdGhlIGFkZHJlc3Mgb2YgdGhlIFRlbiBCaXQgSW50ZXJmYWNlIChUQkkpIHRvIGJlIGNoYW5nZWQgaW4gdGhlCiAgICBldmVudCBvZiBhIGNvbmZsaWN0IHdpdGggYW5vdGhlciBkZXZpY2UuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KCmNvbW1pdCAzYmE0YzJkNjhmNjU0MWRiNDY3N2I0YWVhMTIwNzFmNTZlNmZmNmU2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDggMDk6NTQ6MjYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0MWRlMWYwZDM3M2UwOWM3ODJkZWE1NTgzODVhMDYyNDcxMTFiYTUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwNToxNToxOCAyMDA3IC0wNTAwCgogICAgUG9ydCBlbmFibGVkIGZvciBJMkMgc2lnbmFscyBhbmQgY2hpcHNlbGVjdHMgcG9ydCBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYTMzY2U2NWE0YzUxYTY5MTkwZGQ4YzQwOGY5ZTFjNjJhNjZlOTRmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDQ6MzE6MTggMjAwNyAtMDUwMAoKICAgIEFkZGVkIE5BTkQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYWY5ZTQ0N2JlYjNlNDk4ODE4ZWY4YWQwYjhjMTU5N2NkNTA2MTQ5CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDQ6MTE6MjAgMjAwNyAtMDUwMAoKICAgIEFkZGVkIEkyQyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk5YzAzYzE3NWQyNjg5MDkzMTc2ZmFjZjE3YzU4Y2UyY2IzMjAwMDEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzo1ODo1MiAyMDA3IC0wNTAwCgogICAgQ2hhbmdlZCBDRkdfQ0xLIHRvIGdkLT5idXNfY2xrIGZvciBDRkdfVElNRVJfUFJFU0NBTEVSLiBBZGRlZCBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBmb3IgdGltZS5jCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhkMWQ2NmFmNTRkMzA1ZGUyOWQwYmJmNGFhOGM5ZTYzNzVmN2Y3MzEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzo1NToyMSAyMDA3IC0wNTAwCgogICAgQWRkZWQgdWFydF9ncGlvX2NvbmYoKSBpbiBzZXJpYWxfaW5pdCgpLCBzZXBlcmF0ZWQgdWFydCBwb3J0IGNvbmZpZ3VyYXRpb24gZnJvbSBjcHVfaW5pdCgpIHRvIHVhcnRfZ3Bpb19jb25mKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmZkZTg0YTQ0YjdlNTc1ZWE4MGZlMGUyZDViZTNiNmY3M2QxZTYzMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjQzOjMwIDIwMDcgLTA1MDAKCiAgICBNb3ZlZCBzeW5jKCkgZnJvbSBib2FyZCBmaWxlIHRvIGluY2x1ZGUvYXNtLW02OGsvaW8uaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZTczN2Q4NDc2ZTdkNmE1OTZkMTZjYWFmNmEzODUzYTlhMTE5MGEyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6MzA6NDQgMjAwNyAtMDUwMAoKICAgIERlY2xhcmVkIGF0dHJpYnV0ZXMgb2Ygdm9pZCBfX21paV9pbml0KHZvaWQpIGFzIGFuIGFsaWFzIGZvciBpbnQgbWlpX2luaXQodm9pZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTk5OGJkMzdlYWQ4NWU5Mzk1MzU1OTcyMDcxMGQzYjA2ODVjODFlNgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjE5OjEwIDIwMDcgLTA1MDAKCiAgICBSZW5hbWVkIENPTkZJR19NQ0ZTRVJJQUwgdG8gQ09ORklHX01DRlVBUlQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2M0YzM3MjJhMzhkNDBiMGNmNTM3ZGRhZTcyYjA0ZjQwODhiMTkwYwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgNyAxNjoxNzowNiAyMDA3ICswODAwCgogICAgQWRkIENPTkZJR19CSU9TRU1VIGRlZmluZSB0byBndWFyZCBhbGwgdGhlIGJpb3MgZW11bGF0b3IgY29kZQoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBjb21waWxlIGlzc3VlIG9uIHRoZSBib2FyZCB0aGF0IGRpZCBub3QgZW5hYmxlIHRoZSBiaW9zIGVtdWxhdG9yCgpjb21taXQgYmYxMDYwZWE0ZjllYWE3ZTdkMTY0YTcwYTdkNmYyODkzOTg4MjA1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgNyAxNjowMjoxMyAyMDA3ICswMjAwCgogICAgRml4IG1pc3NpbmcgYnJhY2UgZXJyb3IgaW4gZnMvZmF0L2ZhdC5jCiAgICBbcG9pbnRlZCBvdXQgYnkgUm9kZXJpayBXaWxkZW5idXJnXQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzA2NzE0ZDk3YTBkMDhkNTllZGE0ZGUyMjY4YzM5ZjUwNDY4ODMyOQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEF1ZyA2IDIzOjQxOjUzIDIwMDcgKzAyMDAKCiAgICBbRklYXSByZW1vdmUgY3V0ZSBjb2RlCgpjb21taXQgZjUwMGQ5ZmRlYjU3NjI4ODY1NmRhYzQyNzA1MmFkMmM1Y2EwYWQxYQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEF1ZyA2IDIzOjM1OjI2IDIwMDcgKzAyMDAKCiAgICBbRklYXSBGaXggcm9tZnMgY29kZQoKY29tbWl0IGFiNGI5NTZkMzE0M2Y4ZjgxNzQwODkwNTNmNWRmYWJiYjA0NzYyYjAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBBdWcgNiAyMzozMTo0OSAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ29kaW5nIHN0eWxlIGNsZWFudXAgLSBXb2xmZ2FuZydzIHN1Z2dlc3Rpb25zCgpjb21taXQgNmMzM2M3ODU1N2NhNmY4ZGE2OGMwMWNlMzNlMjc4Njk1MTk3ZDNmNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgNiAyMzoyMTowNSAyMDA3ICswMjAwCgogICAgRml4ZWQgdHlwbyBpbiBSRUFETUUgKHBvaW50ZWQgb3V0IGJ5IE1hcnRpbiBKb3N0KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDUzNzIyM2FmYTYxZjY0NDgwZGYzMWNlNDQwYTljYjM4NmRmNGE4MTQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgNiAyMToxMDoxNyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBCYW1ib28gUkVBRE1FIGRvYy9SRUFETUUuYmFtYm9vCgogICAgQXMgc3VnZ2VzdGVkIGJ5IEV1Z2VuZSBPJ0JyaWVuIDxFdWdlbmUuTydCcmllbkBhZHZhbnRlY2hhbXQuY29tPiwKICAgIGhlcmUgYW4gdXBkYXRlZCBCYW1ib28gUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YzdlNGIwNjIxNGRiNjFiYjIxZjFiY2JlNTdjOTc1MTk2NjliYWFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyA2IDAyOjE3OjM2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDIyMTgzOGNjN2ViMTc4MzcwZmY2MmFhMDU5MjBhNTgyZTEyYWMzMjIKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjAzOjIyIDIwMDcgKzA4MDAKCiAgICBSZW1vdmUgdGhlIGJpb3MgZW11bGF0b3IgZnJvbSBNQUkgYm9hcmQuCgogICAgVGhlIGJpb3MgZW11bGF0b3IgaW4gdGhlIE1BSSBib2FyZCBjYW4gbm90IHBhc3MgY29tcGlsZQogICAgYW5kIGhhdmUgYSBsb3Qgb2YgY3JhcCBpbiBpdC4gcmVtb3ZlIGl0IGFuZCB3aWxsIGhhdmUgYQogICAgY2xlYW4gYW5kIHNtYWxsIGJpb3MgZW11bGF0b3IgaW4gdGhlIGRyaXZlcnMgZGlyZWN0b3J5CiAgICB3aGljaCBjYW4gYmUgdWVzZWQgZm9yIGV2ZXJ5IGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTYxODMzMjQwOWJiOTZmNDQ0OGQxNzEyODk5MzY5ZmM4MGMwYjQ4OQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMTMgMTI6MTQ6NTkgMjAwNyArMDgwMAoKICAgIEZpeCBzb21lIGNvbXBpbGUgaXNzdWVzIGZvciBNQUkgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZjQ2MGExZWUxNDhiNjQ4ZWUyNDJjMzE1NzY1MDI4N2Q0Mjk2MjYwCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAxMyAxMjoxNDo1OCAyMDA3ICswODAwCgogICAgQ29uZmlndXJhdGlvbnMgZm9yIEFUSSB2aWRlbyBjYXJkIEJJT1MgZW11bGF0b3IKCiAgICBUaGlzIHBhdGNoIGFkZCBkZWZpbml0aW9uIG9mIHRoZSBCSU9TIGVtdWxhdG9yIGFuZCB0aGUgQVRJIGZyYW1lYnVmZmVyCiAgICBkcml2ZXIgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjZTkyZjg1MDUzYjhkZjYxM2VkY2YwNWIyNmE0MTZjYmMzZDYyOWMKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDYgMDg6MzQ6NTYgMjAwNyArMDgwMAoKICAgIFRoaXMgaXMgYSBCSU9TIGVtdWxhdG9yLCBwb3J0aW5nIGZyb20gU2NpVGVjaCBmb3IgdS1ib290LCBtYWlubHkgZm9yCiAgICBBVEkgdmlkZW8gY2FyZCBCSU9TLiBhbmQgY2FuIGJlIHVzZWQgZm9yIHg4NiBjb2RlIGVtdWxhdGlvbiBieSBzb21lCiAgICBtb2RpZmljYXRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTA3MjE4OGFjYWJkZTMxNzhmYWM3ZjVhNTk3MTUwZTZlNzRmZDQwYwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgNiAwODozMzozMyAyMDA3ICswODAwCgogICAgVGhpcyBpcyBhIGZyYW1lYnVmZmVyIGRyaXZlciBmb3IgQVRJIHZpZGVvIGNhcmQsIGNhbiB3b3JrIGZvciBQQ0k5MjAwLAogICAgWDMwMCwgWDcwMCwgWDgwMCBBVEkgdmlkZW8gY2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTcyOGJlMzg5ZTY1ZmQ0N2YzNGIzM2MyNTk2MjcxZWI0ZGI3NTFhZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgNiAwMTowMTo0OSAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4MDkyZmVmNGMyOWIzOTU5NThiYjY0OTY0N2RhN2UzNzc1NzMxNTE3CkF1dGhvcjogTWFydGluIEtyYXVzZSA8TWFydGluLktyYXVzZUB0cXMuZGU+CkRhdGU6CVR1ZSBEZWMgMTIgMTQ6MjY6MDEgMjAwNiArMDEwMAoKICAgIEFkZCBmdW5jdGlvbnMgdG8gbGlzdCBvZiBleHBvcnRlZCBmdW5jdGlvbnMKCiAgICBBZGRpdGlvbmFsbHkgZXhwb3J0IHRoZSBmb2xsb3dpbmcgZnVjdGlvbnMgKHRvIG1ha2UgdHJhYl9jb25maWcgYnVpbGQgYWdhaW4pOgogICAgLSBzaW1wbGVfc3RydG9sKCkKICAgIC0gc3RyY21wKCkKCiAgICBBbHNvIGJ1bXAgdGhlIEFCSSB2ZXJzaW9uIHRvIHJlZmxlY3QgdGhpcyBjaGFuZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA2M2NlYzU4MTRmYWI1ZDJiMWM4Njk4MjMyNzQzMzgwN2E1YWMwMjQ5CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyIDE0OjA5OjQ5IDIwMDcgLTA1MDAKCiAgICBNYWtlIE1QQzg2NDEncyBQQ0kvUENJLUUgZHJpdmVyIGEgY29tbW9uIGRyaXZlciBmb3IgbWFueSBGU0wgcGFydHMuCgogICAgQWxsIG9mIHRoZSBQQ0kvUENJLUV4cHJlc3MgZHJpdmVyIGFuZCBpbml0aWFsaXphdGlvbiBjb2RlIHRoYXQKICAgIHdhcyBpbiB0aGUgTVBDODY0MUhQQ04gcG9ydCBoYXMgbm93IGJlZW4gbW92ZWQgaW50byB0aGUgY29tbW9uCiAgICBkcml2ZXJzL2ZzbF9wY2lfaW5pdC5jLiAgSW4gYSBzdWJzZXF1ZW50IHBhdGNoLCB0aGlzIHdpbGwgYmUKICAgIHV0aWxpemVkIGJ5IHRoZSA4NXh4IHBvcnRzIGFzIHdlbGwuCgogICAgQ29tbW9uIFBDSS1FIElNTUFQIHJlZ2lzdGVyIGJsb2NrcyBmb3IgRlNMIDg1eHgvODZ4eCBhcmUgYWRkZWQuCgogICAgQWxzbyBlbmFibGUgdGhlIHNlY29uZCBQQ0ktRXhwcmVzcyBjb250cm9sbGVyIG9uIDg2NDEKICAgIGJ5IGdldHRpbmcgaXRzIEJBVFMgYW5kIENGR18gc2V0dXAgcmlnaHQuCgogICAgRml4ZWQgYSB1MTYgdmVuZG9yIGNvbXBpbGVyIHdhcm5pbmcgaW4gQUhDSSBkcml2ZXIgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMjc0Y2E0ZjZkNjg4MzBlN2M5MTZmODk3NTYxY2ZmOGM0MTAxYzM4CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gQXVnIDUgMjI6MzM6MDUgMjAwNyArMDIwMAoKICAgIFtGSVhdIENvZGluZyBzdHlsZSBjbGVhbnVwCgpjb21taXQgYWY4Mzc3ZDRlYjNhMGFjNWE4MzE4MzBkNWNlNjNmYmY2NWZlY2I3ZgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEF1ZyA1IDE2OjEzOjMxIDIwMDcgKzAyMDAKCiAgICBbRklYXSBYaWxpbnggVWFydGxpdGUgZHJpdmVyCiAgICBCZWNhdXNlIFBQQzQwNSBjYW4gdXNlIFVBUlRMSVRFIHNlcmlhbCBpbnRlcmZhY2UgYW5kCiAgICBNaWNyb2JsYXplIGNhbiB1c2UgVWFydDE2NTUwIHNlcmlhbCBpbnRlcmZhY2Ugbm90IG9ubHkgVWFydGxpdGUuCgpjb21taXQgOTg4ODllZGQ1MGFhZGY4NjIwNzFlYjU2NjQ3NDdhZDBkNTY4YTIwZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEF1ZyA1IDE1OjU0OjUzIDIwMDcgKzAyMDAKCiAgICBbRklYXSBDaGFuZ2UgY29uZmlndXJhdGlvbiBmb3IgWFVQVjJQIE1pY3JvYmxhemUgYm9hcmQKCmNvbW1pdCA1MzcwOTFiNGVlZDkzMDI4NjVkMDNmZWYzZjcyMTJiNGZlNWNmMjhmCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gQXVnIDUgMTU6NTM6NTAgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQWRkZWQgc3VwcG9ydCBmb3IgWGlsaW54IEVtYWMgY29tbXVuaXR5IGRyaXZlcgoKY29tbWl0IDg2YjExNmIxYjFlMTY1Y2E0ODQwZGFlZmVkMzZkMmUzYjg0NjAxNzMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgQXVnIDMgMTI6MDg6MTYgMjAwNyArMDIwMAoKICAgIGNtMV9xcDEgLT4gY201MjAwOiBzaW5nbGUgVS1Cb290IGltYWdlIGZvciBtb2R1bGVzIGZyb20gdGhlIGNtNTIwMCBmYW1pbHkuCgogICAgQWRkIHRoZSBhYmlsaXR5IGZvciBtb2R1bGVzIGZyb20gdGhlIFNjaGluZGxlciBjbTUyMDAgZmFtaWx5IHRvIHVzZSBhCiAgICBzaW5nbGUgVS1Cb290IGltYWdlOgogICAgLSByZW5hbWUgY20xX3FwMSB0byBjbTUyMDAKICAgIC0gYWRkIHJ1bi10aW1lIG1vZHVsZSBkZXRlY3Rpb24KICAgIC0gcGFyYW1ldHJpemUgU0RSQU0gY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIG1vZHVsZSB3ZSBhcmUgcnVubmluZyBvbgoKICAgIEZldyBtaW5vciwgYm9hcmQtc3BlY2lmaWMgZml4ZXMgaW5jbHVkZWQgaW4gdGhpcyBwYXRjaDoKICAgIC0gYmV0dGVyIE1BQyBhZGRyZXNzIGhhbmRsaW5nCiAgICAtIHVwZGF0ZWQgZGVmYXVsdCBlbnZpcm9ubWVudCAoJ3VwZGF0ZScgY29tbWFuZCB1c2VzICt7ZmlsZXNpemV9IG5vdykKICAgIC0gaW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgaW4gdGhlIGF1dG8tdXBkYXRlIGNvZGUKICAgIC0gYWxsb3cgYm9vdGluZyBVLUJvb3QgZnJvbSBSQU0gKENGR19SQU1CT09UKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzdlNzE3ZWJjMmIwNDRkN2E3MTA2MjU1MmM5ZGMwZjU0ZWE5Yjc3OQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAzIDA0OjA1OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgTWFydmVsbCAxMTQ5IFBIWSBzdXBwb3J0IHRvIHRoZSBUU0VDCgpjb21taXQgYjFiNTRlMzUyMDI4ZWQzNzBjM2FhOTVkNmZkZWI5ZDY0YzVkMmY4NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMiAyMToyNzo0NiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDYzZTIyNzY0ZDJmODY1M2Y2ODg4OGM2NjdlYjY1YjM5OTZiNTI2ODAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIgMTA6MTE6MTggMjAwNyArMDIwMAoKICAgIE1pbm9yIGNsZWFudXAgb2YgPGJvYXJkPl9uYW5kIGJ1aWxkIHJ1bGVzLgoKY29tbWl0IDljYThkNzlkZTA5NmM2NWI5YjljODY3MjU5YjNmZjQ2ODVmNzc1ZWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMiAwODozMzo1NiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb2RlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzkyNDA5ODEyMjA2YWM2N2E3ZmE3YWFlMjk4NTM5YTljMzgwNGE0NgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSnVsIDMxIDE4OjUxOjQ4IDIwMDcgKzAyMDAKCiAgICBbcHBjNDQwU1BlXSBHcmFjZWZ1bCByZWNvdmVyeSBmcm9tIG1hY2hpbmUgY2hlY2sgZHVyaW5nIFBDSWUgY29uZmlndXJhdGlvbgoKICAgIER1cmluZyBjb25maWcgdHJhbnNhY3Rpb25zIG9uIHRoZSBQQ0llIGJ1cyBhbiBhdHRlbXB0IHRvIHNjYW4gZm9yIGEKICAgIG5vbi1leGlzdGVudCBkZXZpY2UgY2FuIGxlYWQgdG8gYSBtYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbiB3aXRoIGNlcnRhaW4KICAgIHBlcmlwaGVyYWwgZGV2aWNlcy4gSW4gb3JkZXIgdG8gYXZvaWQgY3Jhc2hpbmcgaW4gc3VjaCBzY2VuYXJpb3MgdGhlCiAgICBpbnN0cnVtZW50ZWQgdmVyc2lvbnMgb2YgdGhlIGNvbmZpZyBjeWNsZSByZWFkIHJvdXRpbmVzIGFyZSBpbnRyb2R1Y2VkLCBzbwogICAgdGhlIGV4Y2VwdGlvbnMgZml4dXBzIGZyYW1ld29yayBjYW4gZ3JhY2VmdWxseSByZWNvdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgZGVjOTk1NThiOWVhNzVhMzc5NDBkMDdmNDFhMzU2NWE1MGI1NGFkMQpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKdWwgMzEgMTg6MTk6NTQgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIFNlcGFyYXRlIHNldHRpbmdzIGZvciBQQ0llIGJ1cyBudW1iZXJpbmcgb24gNDQwU1BlIHJldi5BCgogICAgVGhpcyBicmluZ3MgYmFjayBzZXBhcmF0ZSBzZXR0aW5ncyBmb3IgUENJZSBidXMgbnVtYmVycyBkZXBlbmRpbmcgb24gY2hpcAogICAgcmV2aXNpb24sIHdoaWNoIGdvdCBlbGltaW5hdGVkIGluIDJiMzkzYjBmMGFmODQwMmVmNDNiMjVjMTk2OGJmZDI5NzE0ZGRmZmEKICAgIGNvbW1pdC4gNDQwU1BlIHJldi4gQSBkb2VzIE5PVCB3b3JrIHByb3Blcmx5IHdpdGggdGhlIHNhbWUgc2V0dGluZ3MgYXMgZm9yCiAgICB0aGUgcmV2LiBCIChubyBkZXZpY2VzIGFyZSBzZWVuIG9uIHRoZSBidXMgZHVyaW5nIGVudW1lcmF0aW9uKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGNkZDkxN2E0M2RhNmZhN2ZjOGY1NGEzY2M5ZjQyMGNlNWVjZjMxOTcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIgMDA6NDg6NDUgMjAwNyArMDIwMAoKICAgIEZpeCBidWlsZCBlcnJvcnMgYW5kIHdhcm5pbmdzIC8gY29kZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDJmNjgwMDY2MjdlZGE2Y2I2YzdmMzY0YmRkZjYyMWRiZmQyZmM2OApBdXRob3I6IEV1Z2VuZSBPQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KRGF0ZToJVHVlIEp1bCAzMSAxMDoyNDo1NiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBCYW1ib28gNDQwRVAgc3VwcG9ydAoKICAgIENoYW5nZWQgc3RvcmFnZSB0eXBlIG9mIGNmZ19zaW11bGF0ZV9zcGRfZWVwcm9tIHRvIGNvbnN0CiAgICBDaGFuZ2VkIHN0b3JhZ2UgdHlwZSBvZiBncGlvX3RhYiB0byBzdGFjayBzdG9yYWdlCiAgICAoQ2Fubm90IGFjY2VzcyBnbG9iYWwgZGF0YSBkZWNsYXJhdGlvbnMgaW4gLmJzcyB1bnRpbCBhZmVyIGNvZGUgcmVsb2NhdGlvbikKCiAgICBJbXByb3ZlZCBTRFJBTSB0ZXN0cyB0byBjYXRjaCBwcm9ibGVtcyB3aGVyZSBkYXRhIGlzIG5vdCB1bmlxdWVseSBhZGRyZXNzYWJsZQogICAgKGUuZy4gaW5jb3JyZWN0bHkgcHJvZ3JhbW1lZCBTRFJBTSByb3cgb3IgY29sdW1ucykKCiAgICBBZGRlZCBDT05GSUdfUFJPR19TRFJBTV9UTEIgdG8gc3VwcG9ydCBCYW1ib28gU0lNTS9ESU1NIG1vZHVsZXMKICAgIEZpeGVkIEFNMjlMVjMyMERUIChPcENvZGUgRmxhc2gpIHNlY3RvciBtYXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBFdWdlbmUgT0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWE5ZjZiY2UzODNjYzlmYmNkZWUyOGI1ODM2MTA5YjFhNmRiYTU3NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAzMSAwODozNzowMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDQwRVB4IGx3bW9uNSBib2FyZCBzdXBwb3J0CgogICAgLSBDbGVhciBFQ0Mgc3RhdHVzIHJlZ3MgYWZ0ZXIgRUNDIFBPU1QgdGVzdAogICAgLSBTZXQgZGNieiBmb3IgRUNDIGdlbmVyYXRpb24gd2l0aCBjYWNoZXMgZW5hYmxlZCBhcyBkZWZhdWx0CiAgICAtIENvZGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyN2E1MjhmYjQxNDMzYzRjMWUyYjVkNmJkM2ZkOGQ3ODYwNmZjNzI0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDMwIDExOjA0OjU3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE9ubHkgcHJpbnQgRUNDIHJlbGF0ZWQgaW5mbyB3aGVuIHRoZSBlcnJvciBiaXMgYXJlIHNldAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMzYyMjBhNGJhZjFmMTg4YmE2MGYxN2U5ZDBmMDQzMDY5YjEzNjJhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMTY6NDQ6MzEgMjAwNyArMDIwMAoKICAgIG5ldyBGUEdBIGltYWdlIGZvciBQTFU0MDUgYm9hcmQKCiAgICBuZXcgRlBHQSBpbWFnZSBmb3IgUExVNDA1IGJvYXJkIHdpdGggaW1wcm92ZWQgQ29tcGFjdEZsYXNoIHRpbWluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDg5OTNlNTRiNmYzOTc5NzM3OTRmM2Q2ZjQ3ZDNiM2MwYzk4ZGQ0ZjYKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVsIDI3IDE0OjQzOjU5IDIwMDcgKzAyMDAKCiAgICBbQURTNTEyMV0gU3VwcG9ydCBmb3IgdGhlIEFEUzUxMjEgYm9hcmQKCiAgICBUaGUgZm9sbG93aW5nIE1QQzUxMjFlIHN1YnN5c3RlbXMgYXJlIHN1cHBvcnRlZDoKCiAgICAtIGxvdy1sZXZlbCBDUFUgaW5pdAogICAgLSBOT1IgQm9vdCBGbGFzaCAoY29tbW9uIENGSSBkcml2ZXIpCiAgICAtIEREUiBTRFJBTQogICAgLSBGRUMKICAgIC0gSTJDCiAgICAtIFdhdGNoZG9nCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFuIFdyb2JlbCA8d3JyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxODYzY2ZiN2IxMDBiYTBlZTM0MDE3OTk0NTdhMDFkYzA1ODc0NWY4CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAxNDoyMjowNCAyMDA3ICswMjAwCgogICAgW1BQQ10gUmVtb3ZlIHVudXNlZCBNU1JfVVNFUiBkZWZpbml0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkNDAyNGJiNzJkZDgxNjk1ZWMwOTliMjE5OWVkYTBkMjdjNjIzZTYyCkF1dGhvcjogSm9obiBPdGtlbiA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgpEYXRlOglUaHUgSnVsIDI2IDE3OjQ5OjExIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBzdXBwb3J0IGZvciBBTUNDIDQwNUVQIFRhaWh1IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBPdGtlbiA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgoKY29tbWl0IGI2NjA5MWRlNmM3MzkwNjIwMzEyYzI1MDFkYjIzZDgzOTFlN2NhYmIKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMjYgMTU6MDg6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBVcGRhdGUgTGltZSBpbml0aWFsaXphdGlvbgoKICAgIENoYW5nZSBMaW1lIFNEUkFNIGluaXRpYWxpemF0aW9uIHRvIG5vdyBzdXBwb3J0IDEwME1IeiBhbmQKICAgIDEzM01IeiAoaWYgZW5hYmxlZCkuIEFsc28gdGhlIGZyYW1lYnVmZmVyIGlzIGluaXRpYWxpemVkIHRvCiAgICBkaXNwbGF5IGEgYmx1ZSByZWN0YW5nbGUgd2l0aCBhIHdoaXRlIGJvcmRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWYyNGE4MDhmMTdmYzBmMzdiN2ZiNDgwNWY3MzQ3NDEzMzVjYWVjYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAyNCAwOTo1Mjo1MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IFN1cHBvcnQgZm9yIDEyOCBNQnl0ZSBOT1IgRkxBU0ggYWRkZWQKCiAgICBUaGUgdXNlZCBJbnRlbCBOT1IgRkxBU0ggY2hpcHMgaGF2ZSBpbnRlcm5hbGx5IHR3byBkaWVzLCBhbmQgYXJlIG5vdwogICAgdHJlYXRlZCBhcyB0d28gc2VwZXJhdGUgY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFlZGY1YmRlMTc5ZWNmYmQwYTk2MTMwZDE4OTk2YTk2NTE4Yjc4NWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMjQgMDc6MjA6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGx3bW9uNSBpbnRlcnJ1cHQgY29udHJvbGxlciBzZXR1cCAocG9sYXJpdHksIHRyaWdnZXIuLi4pCgogICAgQXMgc3VnZ2VzdGVkIGJ5IEhha2FuIEVyeWlnaXQsIGhlcmUgYW4gdXBkYXRlZCBzZXR1cCBmb3IgdGhlIGx3bW9uNQogICAgaW50ZXJydXB0IGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE3MWQ5NmVhYzgxMzBiNTNhOTFmOTNjZDEwYzcwZmNhMGRiMThkNTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMjAgMTU6MDM6NDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGJ1ZyB3aXRoIGRlZmF1bHQgR1BJTyBvdXRwdXQgdmFsdWUKCiAgICBBcyBzcG90dGVkIGJ5IE1hdHRoaWFzIEZ1Y2hzLCB0aGUgZGVmYXVsdCBvdXRwdXQgdmFsdWVzIGZvciBhbGwgR1BJTzEKICAgIG91dHB1dHMgd2VyZSBub3Qgc2V0dXAgY29ycmVjdGx5LiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzMWUzZThiODMxZjM1NzA1NjQ0OGZhNTczMTM3ZDVmYjM3MDAwZmQKQXV0aG9yOiBQYXZlbCBLb2xlc25pa292IDxjb25jb3JkQGVtY3JhZnQuY29tPgpEYXRlOglGcmkgSnVsIDIwIDE1OjAzOjAzIDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgRUNDIFBPU1QgZm9yIHRoZSBsd21vbjUgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgRUNDIFBvc3QgdGVzdCBmb3IgdGhlIEx3bW9uNSBib2FyZCBiYXNlZAogICAgb24gUFBDNDQwRVB4IHRvIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXZlbCBLb2xlc25pa292IDxjb25jb3JkQGVtY3JhZnQuY29tPgogICAgQWNrZWQtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2MzMDIzYjlmOTVkN2FjOTU5YTc2NDQ3MWE2NTAwMTA2MmFlY2Y0MQpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKdWwgMTkgMTc6MTI6MjggMjAwNyArMDIwMAoKICAgIEZpeCBicmVha2FnZSBvZiA4eHggYm9hcmRzIGZyb20gcmVjZW50IGNvbW1pdC4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBuZWdhdGl2ZSBjb25zZXF1ZW5jZXMgZm9yIDh4eCBvZiB0aGUgcmVjZW50CiAgICAicHBjNHh4OiBDbGVhbiB1cCA0NDAgZXhjZXB0aW9ucyBoYW5kbGluZyIgY29tbWl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgYzg4M2Y2ZWEzMmRjZTkxZjA3NjcwYjNhYWZlY2Y2Yzk5YjFlNTM0MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAxMzoxMToxMiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODg0OGVjODU4Zjc0ZWQ2ZGFiMDZmYjZkNWRkYzkzM2UwYTEzMjhiZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAxMDowMjoxMiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb2RlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmE0OWZjMTdkMDkwMjBlN2ViZDk1MzY2OTRkOTlkMjBlNDE5ZmNiOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAxMDowMTozOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBTUNDIEx1YW4gdXNlcyB0aGUgbmV3IGJvYXJkc3BlY2lmaWMgRERSMiBjb250cm9sbGVyIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmM2YxNzQyMmFlYjAzZmI4MWE3YWM4Yzc4ZDJiMDVkMDVhYTRjZjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMTA6MDA6NDMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogU3VwcG9ydCBmb3IgWXVjY2EgYm9hcmQgd2l0aCA0NDBTUGUgUmV2IEEgYWRkZWQgdG8gNDR4X3NwZF9kZHIyLmMKCiAgICBUaGUgbmV3IGJvYXJkc3BlY2lmaWMgRERSMiBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBmb3IgdGhlIFl1Y2NhCiAgICBib2FyZC4gTm93IHRoZSBZdWNjYSBib2FyZCB3aXRoIDQ0MFNQZSBSZXYuIEEgY2hpcHMgaXMgYWxzbyBzdXBwb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlZDE0YWRkZjk3YzhjZDhmNTMxZTlhZTdiMmQzZTIyMmZmZmQ1M2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMDk6NTc6MDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG5ldyB3ZWFrIGZ1bmN0aW9ucyB0byBzdXBwb3J0IGJvYXJkc3BlY2lmaWMgRERSMiBjb25maWd1cmF0aW9uCgogICAgVGhlIG5ldyAid2VhayIgZnVuY3Rpb25zIGRkcl93cmR0cigpIGFuZCBkZHJfY2xrdHIoKSBhcmUgYWRkZWQgdG8gYmV0dGVyCiAgICBzdXBwb3J0IG5vbiBkZWZhdWx0LCBib2FyZHNwZWNpZmljIEREUigyKSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU3NDNhOTIwN2EzNzBiOTBmMDliMjBlYmQ2MTE2N2M4MDZiOTM3ZjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMDg6NTM6NTEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHJlbW92ZV90bGIoKSBmdW5jdGlvbiB0byByZW1vdmUgYSBtZW0gYXJlYSBmcm9tIFRMQiBzZXR1cAoKICAgIFRoZSBuZXcgZnVuY3Rpb24gcmVtb3ZlX3RsYigpIGNhbiBiZSB1c2VkIHRvIHJlbW92ZSB0aGUgVExCJ3MgdXNlZCB0bwogICAgbWFwIGEgc3BlY2lmaWMgbWVtb3J5IHJlZ2lvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3IgdGhlIEREUigyKQogICAgc2V0dXAgcm91dGluZXMgd2hpY2ggY29uZmlndXJlIHRoZSBTRFJBTSBhcmVhIHRlbXBvcmFyaWx5IGFzIGEgY2FjaGVkCiAgICBhcmVhIChmb3Igc3BlZWR1cCBvbiBhdXRvLWNhbGlicmF0aW9uIGFuZCBFQ0MgZ2VuZXJhdGlvbikgYW5kIGxhdGVyCiAgICBuZWVkIHRoaXMgYXJlYSB1bmNhY2hlZCBmb3Igbm9ybWFsIHVzYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwYzBhOWNkYTFiZGUzNzEwNjUyMDQ3NmVkNDg2YmQ2N2ViOGQzMGFlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gSnVsIDE2IDAwOjMxOjA3IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFN1cHBvcnQgZm9yIFhpbGlueCBFbWFjTGl0ZSBjb250cm9sbGVyCgpjb21taXQgM2E2Y2FiODQ0Y2Y3NGY3NjYzOWQ3OTVlMGJlODcxN2UwMmM4NmFmNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKdWwgMTQgMjI6NTE6MDIgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDUyODBmMzUyYzhkYTMzYjFkN2ZiZjQ0ODc2ODcxN2Q5ZTE2ZmY5YTEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBKdWwgMTQgMTM6MTE6MjggMjAwNyArMDIwMAoKICAgIFtGSVhdIHN1cHBvcnQgZm9yIHNpbXBseSBtZWFzdXJpbmcgdGltZQoKY29tbWl0IDkxYmI0Y2E2NjVkMmUwY2Y3ZjYwYzRiNWIzNzA5OTAyNTBlYzBjNDMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBKdWwgMTQgMTI6NDE6MjMgMjAwNyArMDIwMAoKICAgIFtGU10gQWRkZWQgc3VwcG9ydCBmb3IgUk9NRlMKCmNvbW1pdCAwMTE1OTUzMDc3MzFhN2E2N2E3NDQ1ZDEwN2MyNzlkMDMxZThhYjk3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgSnVsIDE0IDAxOjA2OjU4IDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCS0gZml4IGNvbXBpbGUgZXJyb3IsIGlmIEJVSUxEX0RJUiBpcyB1c2VkCgpjb21taXQgNWEyZjEwOThkODFhZDU4YjMwOWU1ZTU1OGQwNDkyNjQzMTY2YTc5OQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEp1bCAxNCAwMDoxODo0OCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBTdXBwb3J0IHRpbWUgd2l0aG91dCB0aW1lcgoKY29tbWl0IGE0NzZjYTJhYzIyMTdkZGQwNWEyYmYwYzUxNDA3NTgxNGIxMGEzYzAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBKdWwgMTMgMjE6NDM6NTUgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIHByb2JsZW0gd2l0aCBkaXNhYmxlZCBCQVJSRUwgU0hJRlRFUgoKY29tbWl0IDU1ZTI2YWQ2MjEwN2QyZjE0Zjc1N2RlM2FlMGIxNGI5YWE3YWVkOTQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBKdWwgMTMgMjE6NDE6NDQgMjAwNyArMDIwMAoKICAgIFtGSVhdIGNvcnJlY3QgaGVscCBmb3IgcnNwcgoKY29tbWl0IGZhZDYzNDA3MTU0ZjQ2MjQ2Y2U4MGQ1M2E5YzY2OWE0NDM2MmFjNjcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTMgMDk6NTQ6MTcgMjAwNyArMDIwMAoKICAgIG1ha2Ugc2hvd19ib290X3Byb2dyZXNzICgpIHdlYWsuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOTA3OTAyNDcyMzkxYjZjYTE4NzZlYzMwMDY4NzU2MmVjYWY0NTliMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMyAwODoyNjowNSAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQktIFRoZSBESUFHIExFRHMgYXJlIG5vdyBibGlua2luZywgaWYgYW4gZXJyb3Igb2NjdXIKCQktIGZpeCBjb21waWxlIGVycm9yLCBpZiBCVUlMRF9ESVIgaXMgdXNlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGEyZTFjNzA5OGNmOTU3NDM4NmIwYzk2ODQxZGZjOGVhNWNjOTM1NzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTIgMTY6MzI6MDggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIHJlY2VpdmUgYnVmZmVyIGhhbmRsaW5nIGluIHRoZSA0eHggZW1hYyBkcml2ZXIKCiAgICBUaGlzIGNoYW5nZSBmaXhlcyBhIGJ1ZyBpbiB0aGUgcmVjZWl2ZSBidWZmZXIgaGFuZGxpbmcsIHRoYXQKICAgIGNvdWxkIGxlYWQgdG8gcHJvYmxlbXMgdXBvbiBoaWdoIG5ldHdvcmsgdHJhZmZpYyAoYnJvYWRjYXN0cy4uLikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIzOWYwNWVlNGRkNGNmZTBiNTBmMjUxYjUzM2RjZWJlOWU2N2MzNjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEyIDAxOjQ1OjM0IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLCBtaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVhNTZhZjNiNTIyYmE0N2ZiMzNhM2ZlZTg0ZDIzYmYxZTU0Mjk2NTQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdW4gOCAxNjo0MToxOCAyMDA3IC0wNTAwCgogICAgUmVtb3ZlIGVycm9uZW91cyBlcnJhdGEgY29kZSBmcm9tIE1hcnZlbCA4OEUxMTExUyBkcml2ZXIKCiAgICBUaGUgTWFydmVsIDg4RTExMTFTIGRyaXZlciBmb3IgdGhlIFRTRUMgd2FzIGNvcGllZCBmcm9tIHRoZQogICAgODhFMTEwMSBkcml2ZXIsIGFuZCBpbmNsdWRlZCBhIGZpeCBmb3IgYW4gZXJyYXR1bSB3aGljaCBkb2VzIG5vdAogICAgZXhpc3Qgb24gdGhhdCBwYXJ0LiAgTm93IGl0IGlzIHJlbW92ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTgyZWZjZjIzZmQwMzY0N2UwMWUyZmJlMjhhN2EzNjIzOTE1NmNjMApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biA1IDE2OjM4OjQ0IDIwMDcgLTA1MDAKCiAgICBGcm9tOiBlcmFuIGxpYmVydHkgPGVyYW4ubGliZXJ0eUBnbWFpbC5jb20+CgogICAgYWRkcyB0aGUgcmVzZXQgcmVnaXN0ZXIgdG8gODV4eCBpbW1hcAoKICAgIFNpZ25lZC1vZmYtYnk6IEVyYW4gTGliZXJ0eSA8ZXJhbi5saWJlcnR5QGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkM2VjMGQ5NDNhMDQ1YmRiOTllMTU5ZTdiYmM3NzQzMGUwOWYxMWQ3CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDEwIDE3OjUwOjAxIDIwMDcgLTA1MDAKCiAgICBQb2xpc2hlZCB0aGUgODV4eCBBRFMgY29uZmlnIGZpbGVzCgogICAgTWFkZSB0aGUgYm9vdCBjb21tYW5kcyB1c2UgZGV2aWNlIHRyZWVzIGJ5IGRlZmF1bHQuCiAgICBBbHNvIG1vdmVkIHRoZSByYW1kaXNrIHRvIDEwMDAwMDAgKEkgdGhpbmsgdGhlIHByZXZpb3VzIGFkZHJlc3MKICAgIHdhcyBnZXR0aW5nIG92ZXJyaWRkZW4gZHVyaW5nIGJvb3QpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZmIzN2IzMmQxYjBiMDNmMTgwNzdkYmE0OWNjNjZhNmU3NmZhMDM4CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSA5IDExOjAzOjMyIDIwMDcgLTA1MDAKCiAgICA4NTQ0ZHM6IEZpeCBNYWtlZmlsZSBhZnRlciBtb3ZpbmcgcGl4aXMgdG8gYm9hcmQvZnJlZXNjYWxlLgoKICAgIFRoZSBPQkpUUkVFICE9IFNSQ1RSRUUgYnVpbGQgc2NlbmFyaW8gd2FzIGJyb2tlbi4KICAgIFRoaXMgZml4ZXMgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmEzY2VlNDNjM2I3MWZhNWI4ZDkxZGIxOWYwNTA2Nzg2NTI5MGYzZQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSA5IDAwOjU0OjIwIDIwMDcgLTA1MDAKCiAgICB0c2VjOiBGaXggUEhZIGNvZGUgdG8gbWF0Y2ggZmlyc3QgZHJpdmVyCgogICAgSmFycm9sZCBXZW4gbm90aWNlZCB0aGF0IHRoZSBnZW5lcmljIFBIWSBjb2RlIGFsd2F5cyBtYXRjaGVzCiAgICB1bmRlciB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4gIENoYW5nZSBpdCBzbyB0aGUgZmlyc3QgbWF0Y2gKICAgIHdpbnMsIGFuZCAqb25seSogdW5rbm93biBQSFlzIHRyaWdnZXIgdGhlIGdlbmVyaWMgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNjYzA5MWFhYzYxYTM4Y2Q5OThkNTc1ZDkyZjcyMzJlMjU2ZDYzMTIKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxNzoyNzo0MyAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIENQTSBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9uIHRvIDg1NjAgQURTCgogICAgKiBBZGRzIGNvZGUgdG8gbW9kaWZ5IENQTSBmcmVxdWVuY2llcwogICAgKiBDbGVhbnMgdXAgdGhlIGNvbmZpZyBmaWxlIHRvICNkZWZpbmUgVFNFQyBhbmQgKGZvciBub3cpICN1bmRlZiBGQ0MKICAgICogQWRkcyB0aGUgTUlJIGNvbW1hbmQgZm9yIGFsbCA4NTYwIEFEUyBjb25maWd1cmF0aW9ucwogICAgKiBVcGRhdGVzIGNvbmZpZyBmaWxlIHRvIHByb3ZpZGUgY29udmVuaWVuY2UgY29tbWFuZHMgZm9yIGJvb3RpbmcKICAgICAgd2l0aCBhIGRldmljZSB0cmVlCgogICAgU2lnbmVkLW9mZi1ieTogVml0YWx5IEJvcmR1ZyA8dmJvcmR1Z0BydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc1MDdkNTZjY2FmN2FhZTFjNDc0MzQyYTlhNTU0MDE2NWNkN2U5ZDkKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxNzoyMzowMiAyMDA3IC0wNTAwCgogICAgRml4IE1hcnZlbGwgODhlMTE0NSBQSFkgaW5pdCBjb2RlCgogICAgRml4IGEgYnVnIGluIHRoZSBNYXJ2ZWxsIDg4ZTExNDUgUEhZIGluaXQgY29kZSBpbiB0aGUgVFNFQyBkcml2ZXIKICAgIHdoZXJlIHRoZSByZXNldCB3YXMgYmVpbmcgZG9uZSBhZnRlciB0aGUgZXJyYXRhIGNvZGUgaW5zdGVhZCBvZgogICAgYmVmb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWRjMjEwZGVjNWJhY2U5OGE1MGI2YmE5MDUzNDc4OTAwOTFhOWJiMApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTI6MTYgMjAwNyAtMDUwMAoKICAgIEFkZCBzaW1wbGUgYWdlbnQvZW5kLXBvaW50IGNvbmZpZ3VyYXRpb24gaW4gUENJIEF1dG9Db25maWcgZm9yIFBDSV9DTEFTU19QUk9DRVNTT1JfUE9XRVJQQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU4Yjg1ZjNiYTRjZDg5MzBlMGEyZmVhMjEwMGM4MTVkNjQyMDE3NjUKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUyOjA4IDIwMDcgLTA1MDAKCiAgICBwY2lhdXRvIHNldHVwIGJyaWRnZQoKICAgIFRoZSBQMlAgYnJpZGdlIGJ1cyBudW1iZXJzIHByb2dyYW1tZWQgaW50byB0aGUgZGV2aWNlIGFyZSByZWxhdGl2ZSB0bwogICAgaG9zZS0+Zmlyc3RfYnVzbm8uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NzFmNDlmYTcxNzAwNGNhNDI2OGI0ZTI0MDU3ZWZjN2JmOWY5ODdiCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MjowMSAyMDA3IC0wNTAwCgogICAgU3VwcG9ydCBQQ0llIGV4dGVuZGVkIGNvbmZpZyByZWdpc3RlcnMKCiAgICBGU0wgUENJZSBibG9jayBoYXMgZXh0ZW5kZWQgY2ZnIHJlZ2lzdGVycyBpbiB0aGUgMTAwIGFuZCA0MDAgcmFuZ2UuCiAgICBGb3IgZXhhbXBsZSwgdG8gcmVhZCB0aGUgTFRTU00gcmVnaXN0ZXI6IHBjaSBkaXNwbGF5IDxidXNuPi4wIDQwNCAxCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTVmZWIxMjU4MWJiMjkxMmNlMzAxZTQ4NjZiNzFmODQ2ZTlmYzA3CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MTo0OCAyMDA3IC0wNTAwCgogICAgTWlub3IgaW1wcm92ZW1lbnRzIHRvIGRyaXZlcnMvcGNpX2F1dG8uYwoKICAgIC0gTWFrZSBwY2lhdXRvX3twcmUscG9zdH1zY2FuX3NldHVwX2JyaWRnZSBub24tc3RhdGljCiAgICAtIEFkZGVkIHBoeXNpY2FsIGFkZHJlc3MgZGlzcGxheSBpbiBkZWJ1ZyBtZXNzYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQwZTgxYWRkYWI3YmI3NGQyMGRkZjY4MWNlOWJhYmM4ODBhODI4ZWUKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUxOjM1IDIwMDcgLTA1MDAKCiAgICBTdGFydCBwY2kgaG9zZSBzY2FuIGZyb20gaG9zZS0+Y3VycmVudF9idXNuby4KCiAgICBFbnN1cmUgaG9zZS0+Y3VycmVudF9idXNubyBpcyBub3QgbGVzcyB0aGFuIGZpcnN0X2J1c25vLiAgVGhpcyBmaXhlcwogICAgYnJva2VuIGJvYXJkIGNvZGUgd2hpY2ggbGVhdmVzIGN1cnJlbnRfYnVzbm89MCB3aGVuIGZpcnN0X2J1c25vIGlzCiAgICBncmVhdGVyIHRoYW4gMCBmb3IgdGhlIGNhc2VzIHdpdGggbXVsdGlwbGUgY29udHJvbGxlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODY1YjFmYjc4NDNhMDhhZDQ5YTYzMTlhMzY0MTU3NTIyNzZmZjQ4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDExIDEyOjEzOjUzIDIwMDcgKzAyMDAKCiAgICBGaXggc29tZSBjb21waWxlIHByb2JsZW1zIGludHJvZHVjZWQgYnkgdGhlIGxhdGVzdCBDRkdfQ01EX3h4eCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZhMWRmMzA4OTI2YTZmNzBlMzUwNGM1NzUxNGVmMjdhYzMxZmQxM2EKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSnVsIDExIDIwOjExOjA3IDIwMDcgKzAyMDAKCiAgICBDTTEuUVAxOiBTdXBwb3J0IGZvciB0aGUgU2NoaW5kbGVyIENNMS5RUDEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTZlMWQ3NWJlODE5M2NhNzllNDIxNWEzNjhiZjlkN2YyMzYyNDUwZgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAxMSAxODozOToxMSAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQktIFNob3cgb24gdGhlIERJQUcgTEVEcywgaWYgdGhlIFNIQTEgY2hlY2sgZmFpbGVkCgkJLSBub3cgdGhlIEZsYXNoIFNUIE0yOVcwNDBCIGlzIHN1cHBvcnRlZCAobm90IHRlc3RlZCkKCQktIGZpeCB0aGUgImxlZCIgY29tbWFuZAoJCS0gZml4IGNvbXBpbGUgZXJyb3IsIGlmIEJVSUxEX0RJUiBpcyB1c2VkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZTk1MTQ3NTFjZmE1Y2NlNjFlYTY5OWZhMGQzZWIzNzg5OGE1ZWViNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU3VuIEp1bCA4IDEzOjQ0OjI3IDIwMDcgKzAyMDAKCiAgICBGaXggbWFsbG9jIHByb2JsZW0gaW50cm9kdWNlZCB3aXRoIHRoZSByZWxvY2F0aW9uIGZpeHVwIGZvciB0aGUgUFBDIHBsYXRmb3JtCgogICAgVGhlIHJlbG9jYXRpb24gZml4dXAgZGlkbid0IGhhbmRsZSB0aGUgbWFsbG9jIHBvaW50ZXIgaW5pdGlhbGl6YXRpb24KICAgIGNvcnJlY3RseS4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0uIFRlc3RlZCBzdWNjZXNzZnVsbHkgb24gNHh4LgogICAgVGhlIHJlbG9jYXRpb24gZml4dXAgcGF0Y2hlcyBmb3IgNHh4IHdpbGwgZm9sbG93IHNvb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBkY2E4NzRkYjYyNzE4ZTQxMjUzNjU5ZTYwZjNhMWRlN2ViNDE4Y2UKQXV0aG9yOiBUc2lDaHVuZyA8dGNsaWV3QEdva3UuKG5vbmUpPgpEYXRlOglUdWUgSnVsIDEwIDE1OjQ1OjQzIDIwMDcgLTA1MDAKCiAgICBDYWNoZSB1cGRhdGUgYW5kIGFkZGVkIENGR19VTklGWV9DQUNIRQoKICAgIEVuYWJsZWQgY2FjaGUgaW4gY3B1X2luaXRfZigpIGZvciBmYXN0ZXIgZmxhc2ggdG8gbWVtIGFsbG9jYXRpb24uIFVwZGF0ZWQgY2FjaGUgaGFuZGxpbmcgaW4gc3RhcnQuUy4gQXBwbGllZCBjYWNoZSBpbnZhbGlkYXRlIGluIGZlY19zZW5kKCkgYW5kIGZlY19yZWN2KCkuIEFkZGVkIENGR19VTklGWV9DQUNIRSBmb3IgQ0YgVjMgb25seS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyA8dGNsaWV3QEdva3UuKG5vbmUpPgoKY29tbWl0IDUyYjAxNzYwNGE4ZjRkNGE3OTU4ODBlZjZlNzg2MWQ3ZjJmMWIwMDUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzozNjoxNiAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlLiBJbmNsdWRlIGR0aW1lcl9pbnRyX3NldHVwKCkuIENoYW5nZWQgdGltZXIgZGl2aWRlciB0byBnbG9iYWwgZGVmaW5lLgoKICAgIEluY2x1ZGUgaW1tYXAuaCBhbmQgdGltZXIuaC4gTW92ZWQgZHRpbWVyIGludGVycnVwdCBzZXR1cCB0byBkdGltZXJfaW50cl9zZXR1cCgpIGZyb20gY3B1L21jZjUzMngvaW50ZXJydXB0cy5jLiBDaGFuZ2VkIChDRkdfQ0xLIC8xMDAwMDAwKSAtMSA8PCA4IHRvIENGR19USU1FUl9QUkVTQ0FMRVIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWNkYzA3YzdlZjhmMDhlYTU1ZDNjNDdlZDkyMjFkOTFhYTZkNWZhYwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjMxOjI1IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGVzCgogICAgSW5jbHVkZSBpbW1hcC5oIGFuZCByZW5hbWVkIG1jZnJ0Yy5oIHRvIHJ0Yy5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI4NzBlOThhYzhlNTU1M2U5MTg3YjEyYTQ3ZTVmNDZiYWJiNTM5OTAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyOToyMSAyMDA3IC0wNTAwCgogICAgQWRkIG1jZmZlY19pbml0aWFsaXplKCkKCiAgICBBZGRlZCBtY2ZmZWNfaW5pdGlhbGl6ZSgpIGluIGV0aF9pbml0aWFsaXplKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDVhMjViZmQwYzUyZjhhM2ZhMTM3MjE2YmM5NGQzMmY5MGJlZGM1ZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjI3OjQwIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUgYW5kIGNsZWFuIHVwCgogICAgSW5jbHVkZSBpbW1hcC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBjZWU5YzY2MzE4NjAyYzg1NmE4OTlhZTVmYTc1NzljY2JhNjQ0M2EKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyMzoxNSAyMDA3IC0wNTAwCgogICAgTmV3IHVhcnQgc3RydWN0dXJlIGFuZCBkZWZpbmVzCgogICAgU2VwZXJhdGVkIGZyb20gbWNmdWFydC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5MGU3OWRlOGQ5OWU5YzlkNjlkNjBiZmZmOWYyNGMzMzcxNjU5MDAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyMjozMSAyMDA3IC0wNTAwCgogICAgTmV3IHRpbWVyIHN0cnVjdHVyZSBhbmQgZGVmaW5lcwoKICAgIFNlcGVyYXRlZCBmcm9tIG1jZnRpbWVyLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTA0YWNiMmViYTQ3ODI0ODk0MTcyNDBlZmY3NmUyMGUxNzZhZWMxMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjIxOjA5IDIwMDcgLTA1MDAKCiAgICBSZW5hbWUgbWNmcnRjIHRvIHJ0YwoKICAgIFNpbmNlIGl0IGlzIGFscmVhZHkgaW4gbTY4ayBmb2xkZXIsIHVuLW5lY2Vzc2FyeSB0byBwYWQgbWNmLiBSZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5LmggdG8gaW1tYXAuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYmQ4MDZmZTRmYzIzOTU4YjhmNzg3NzgxOTllN2E2ZTNmOGY2YWQ1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MTc6MzYgMjAwNyAtMDUwMAoKICAgIFJlbmFtZSBtY2ZzZXJpYWwuYy4gVXBkYXRlIGluY2x1ZGUgaGVhZGVyCgogICAgUmVuYW1lZCBtY2ZzZXJpYWwuYyB0byBtY2Z1YXJ0LmMuIE1vZGlmaWVkIE1ha2VmaWxlIGZvciBtY2Z1YXJ0Lm8gZnJvbSBtY2ZzZXJpYWwuby4gUmVwbGFjZSBpbW1hcF81MzI5LmggYW5kIG01MzI5LmggdG8gaW1tYXAuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMjIwOGZiYzJlYjlkZTNmNDI4NWJmYWEwMjFjNmViYWUxNmM5YjBlCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MTM6NTggMjAwNyAtMDUwMAoKICAgIEhlYWRlciBmaWxlIHVwZGF0ZSwgY2xlYW4gdXAgYW5kIGNhY2hlIGhhbmRsaW5nCgogICAgUmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4gSW5jbHVkZWQgY2FjaGVfaW52YWxpZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmUzZjI1YWU5MDgyZGFhOWY1ZDE4MWRiNDVkZmJjMmU1MmNlMGY5NwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjEwOjQwIDIwMDcgLTA1MDAKCiAgICBDcmVhdGUgaW50ZXJydXB0cy5jIGFuZCBtb2RpZnkgTWFrZWZpbGUKCiAgICBpbnRlcnJ1cHRfaW5pdCgpIGFuZCBkdGltZXJfaW50cl9zZXR1cCgpIGFyZSBwbGFjZWQgaW4gaW50ZXJydXB0cy5jLiBBZGRlZCBpbnRlcnJ1cHRzLm8gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRkMTA0ZjFlZDY1NWVkYTUwYzA2YmE2MzYyMzdhODNlZDk0M2YzNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjA2OjU1IDIwMDcgLTA1MDAKCiAgICBFbmFibGUgSWNhY2hlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5YmYzZGUzNzdiMmJhZTcwYzk4M2M5Yjk3ZmVhZTkxNDk5OWU3MzUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzowNTozMSAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlIGFuZCBzb21lIGNsZWFuIHVwCgogICAgUmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4gUmVtb3ZlZCB3aGl0ZXNwYWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODRhMDE1YjUyZWM4MjBhNWFlMTczNzE3ZDc4NTE2ZGU3MzFjODljMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjAzOjI4IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUgYW5kIGVuYWJsZSBpY2FjaGUKCiAgICBSZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLiBFbmFibGVkIGljYWNoZV9lbmFibGUoKSBpbiBjcHVfaW5pdF9yKCkuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdhMTdlNzU5YzdhOGI1OGU5MTBkYWY1NGRmNjExZTk0ZmM4Y2EwNzQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzowMToyMiAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlIGFuZCByZW1vdmVkIGludGVycnVwdF9pbml0KCkKCiAgICBSZXBsYWNlIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguIFJlbW92ZWQgaW50ZXJydXB0X2luaXQoKSBhbmQgcGxhY2VkIGl0IGluIGludGVycnVwdHMuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYjYzNTQ5MmM5NWJkMGQ2ZTA4ZjkzZjY5OTgyMWNiYTFmNjAyYTY0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NTc6NDYgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBmb3IgZmxhc2gubyBhbmQgbWlpLm8KCiAgICBSZW1vdmVkIGZsYXNoLm8gYW5kIGFkZGVkIG1paS5vCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1ZGVkMjc1ZDgzOWU0ZmY3OWY0MTcxOGQ1MGE4MzVkOTg5ZjU3YmMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo1NjoxOSAyMDA3IC0wNTAwCgogICAgTUlJIGZ1bmN0aW9ucyBjYWxscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDI3YzgxNDEwNDU2MGUyOWJkYTE0OTU1YzY3NzAzMjQ1YWFhYTViNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjU0OjQyIDIwMDcgLTA1MDAKCiAgICBSZW1vdmVkIE1JSSBmdW5jdGlvbnMgYW5kIHJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguCgogICAgVGhlIHJlbW92ZWQgTUlJIHJvdXRpbmVzIHdpbGwgYmUgcGxhY2VkIGluIG1paS5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMWE3OTNmZGEwOWM2M2RmNWE0OTZmMDlkYzFjN2NiMjZlNjc1MWEyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NTE6MDUgMjAwNyAtMDUwMAoKICAgIER1cGxpY2F0ZSBjb2RlCgogICAgVGhlcmUgaXMgYSBDb21tb24gRmxhc2ggSW50ZXJmYWNlIERyaXZlciBleGlzdGVkLiBUbyB1c2UgdGhlIENGSSBkcml2ZXIsIGRlZmluZSBDRkdfRkxBU0hfQ0ZJIGluIGNvbmZpZ3VyYXRpb24gZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjc0NDM1NGE4NDM3YjhmNzhkYjE3OGUzMDY2MDIxNTY4OGJmZjU3MApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjQ2OjM4IDIwMDcgLTA1MDAKCiAgICBTZXBlcmF0ZSBvbGQgc3RydWN0dXJlIGRlZmluZXMgYW5kIG5ldyBzdHJ1Y3R1cmUgZGVmaW5lcwoKICAgIFJlbW92ZWQgbmV3IHVhcnQgc3RydWN0dXJlIGFuZCBkZWZpbmVzIHRvIHVhcnQuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYmQ1ODYwOGRiY2ZmODg5MGNhOWEwYzU5ZTg2MWFjMjRmOGJiMjMwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NDU6MDEgMjAwNyAtMDUwMAoKICAgIFNlcGVyYXRlIG9sZCBzdHJ1Y3R1cmUgZGVmaW5lcyBhbmQgbmV3IHN0cnVjdHVyZSBkZWZpbmVzCgogICAgTmV3IHRpbWVyIHN0cnVjdHVyZSBhbmQgZGVmaW5lcyB3aWxsIG1vdmUgdG8gbmV3IHRpbWVyLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGNkNWNkNmRlNGZmOTJlMDM5NzgzMzhlZDdhZWIzY2U3YjdiOTc4NApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjQyOjIzIDIwMDcgLTA1MDAKCiAgICBDbGVhbiB1cAoKICAgIFJlbW92ZWQgd2hpdGVzcGFjZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MTQ4NzFmNTY1ZGQ4YmQxMTIxZTRhM2FjMTY2NWE3OTBlMjBiOGYyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NDE6MjQgMjAwNyAtMDUwMAoKICAgIENsZWFuIHVwCgogICAgUmVwbGFjZWQgd2hpdGVzcGFjZSB3aXRoIHRhYnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDhkYmZlYWJjN2FmZmZlMzA2MDlhNDQ4OWYxMGMyMmNiNjdlZjdkZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjM5OjA3IDIwMDcgLTA1MDAKCiAgICBDcmVhdGUgbmV3IGhlYWRlciBmaWxlIGFuZCBtb3ZlIHBlcmlwaGVyYWxzIGJhc2UgYWRkcmVzcyBmcm9tIGNvbmZpZ3MgZmlsZSB0byBuZXcgaGVhZGVyIGZpbGUuCgogICAgQ3JlYXRlIG5ldyBoZWFkZXIgZmlsZSB0byBpbmNsdWRlIGltbWFwXzV4eHguaCBhbmQgbTV4eHguaCBhbmQgdG8gc2hhcmUgYW1vbmcgZHJpdmVycyB3aXRob3V0IHVwZGF0ZSBpbiBkcml2ZXIgZmlsZSBlYWNoIHByb2Nlc3NvciBpcyBhZGRlZC4gTW92ZWQgcGVyaXBoZXJhbHMgYmFzZSBhZGRyZXNzIGFuZCBkZWZpbmVzIGZyb20gY29uZmlncyBmaWxlIHRvIGltbWFwLmguCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlMjk2ZTMxYzQ0MTFmOTZkOWNiM2QyYWZjOGZjYjAwNjg2N2FiZmEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjoyNDo1OCAyMDA3IC0wNTAwCgogICAgUmV2ZXJ0IGZpbGUgbW9kZQoKICAgIENoYW5nZWQgTUFLRUFMTCBmaWxlIG1vZGUgdG8gZXhlY3V0YWJsZSwgcmVtb3ZlZCBleGVjdXRhYmxlIGZpbGUgbW9kZSBmcm9tIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzYWZmMGNiOWVjZjIzNmQ3ZThjOTM3NjFkZDFkYWRmNjgzN2E1ODIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjE5OjUwIDIwMDcgLTA1MDAKCiAgICBkaXNrLyBkb2MvIGxpYl8qLyBhbmQgdG9vbHMvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkYjVkODZmMDIxNWJjYjZjMjkzNTEwYzUwZWIwNTBlOTI4ODNiN2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjEzOjIxIDIwMDcgLTA1MDAKCiAgICBkcml2ZXJzLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNDBhN2YzZTM4ODhiNDJhNDM2NzRiMDk5ZTU0NzAwMjJjOGM1NDRjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMTowNzo1NiAyMDA3IC0wNTAwCgogICAgZnMvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYxMGYyZTljMjhhOWMxMDFlMDlmYTFiNzgxNDNjZjVmMDBlZDE1OTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjA1OjAyIDIwMDcgLTA1MDAKCiAgICBuZXQvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkwMjUzMTc4ODM3NjA0NmRhMjEyYWZkMTY2MWNmZmI2MmYzZGFhMWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjAyOjQ0IDIwMDcgLTA1MDAKCiAgICBjb21tb24vOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzOWI1NzQxNTgzOGM3M2ZiMGEzN2VjYTg0ZGUzYzY4YmE5OTA1ODYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDEwOjQ4OjIyIDIwMDcgLTA1MDAKCiAgICBib2FyZC9bai16XSo6IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzdhMzE4NTQ1ZDU3YWVmYTg0NDc1MjQ2NWI5NGM3ZTA5YTNmMjZkMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTA6Mzk6MTAgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tBLVphLWldKjogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNjhiNjBhMGViN2U3M2IyNDNjYTU1Mzk5ZjJhN2RmNzZlMmMzZjNkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMDoyNzozOSAyMDA3IC0wNTAwCgogICAgY3B1LyBydGMvIGluY2x1ZGUvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNzlhMTM2YzM1ODg4MTQ3ODQ1NjFkNmU0ODU2OTcwZWU4MmQ2ZTJhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMDoxMjoxMCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1twLXpdKiArIG1pc2M6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2Y1YzAxNTc3NDAwYzc0Y2M1YmFjNzRmNDFkZDBkM2M3OWRmNjIzYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6Mzg6MDIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bZy1vXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODBmZjRmOTliODRiNjRlZGNhM2ZkMTBkYTM2NWVjMTQ5M2JlMWM5NQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6Mjk6MDEgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bYS1lXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTFhYTBiYjUwMmUyNWZkNTk4YjVlMGNjZGZiMmMxNzQ5MjFkNzE0YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6MjI6MjMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bUC1aXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjU5ZTJmNjczNjIzMmEwOGFjY2E4Nzg1YzIwNmUyYjRkOWNkMDdkNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6MTA6NDkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bSi1PXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTE3OTk0MzRjNWZmMTVhNjEyNTc3YmIxYWQxZjRlYTFhMDU5NWU0YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6MDI6NTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bQS1JXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWZlODBkNzljNWM0ZTUyZDM0MTBhN2FiNGI4NTE1ZGEwOTVjZGFiMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMjowODozNCAyMDA3IC0wNTAwCgogICAgRmluYWxseSByZXRpcmUgY21kX2NvbmZkZWZzLmggYW5kIENPTkZJR19CT09UUF9NQVNLIQoKICAgIEFsbCBvZiB0aGUgY2hvaWNlcyBmb3IgQ09ORklHX0JPT1RQXyBhcmUgbm93IGRvY3VtZW50ZWQgaW4KICAgIHRoZSBSRUFETUUgZmlsZS4gIFlvdSBtdXN0IG5vdyBpbmRpdmlkdWFsbHkgc2VsZWN0IGV4YWN0bHkKICAgIHRoZSBzZXQgdGhhdCB5b3Ugd2FudCB1c2luZyBhIHNlcmllcyBvZgoJI2RlZmluZSBDT05GSUdfQk9PVFBfPHg+CiAgICBzdGF0ZW1lbnRzIGluIHRoZSBib2FyZCBwb3J0IGNvbmZpZyBmaWxlcyBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkM2I4YzFhNzQzZGNkMzE2MjVjOTllNmE0NDU5MGYyMDdlYjAwMDI4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjU3OjMxIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW20tel0qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJmZDkwY2U1NzViMDJkMTg5Y2JmNDQzYzg1MzA5YmNkMDAxYWEzOTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6NDg6MjYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bYS1tXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzdkNGJiNzA1ODY2NTlkZWRlZjE2NThjZTFiZWQwNzFiZTA5OGFlYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMTozODowMiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tULVpdKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxODIyNWU4ZGQxOTUwYmQ2ZGJmMzUwMTFlNDM2ZGI3ZjQ3NGMxODdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjMxOjI0IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW1AtU10qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdiZTA0NGU0ZWE2NDRiMGVmMWM0ODZkYWRjMWE0YzI2NjViNDM3NGQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6MjQ6MTkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bSC1OXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWQyZWJlMWIzZWYwMDU1YzY2MWJiMWEwZDI1MmJmMjUyMzgwMDY5ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMToxNjo1MyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tBLUddKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTVmN2Y4ZDgzZjM2MDIxYWIxZjBlM2Q3MzhmNWQ4YzgwODNhN2UzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE5OjEyOjMwIDIwMDcgLTA1MDAKCiAgICBSZXRpcmUgQ09ORklHX0NPTU1BTkRTIGZpbmFsbHkuCiAgICBTdHJpcCBvbGQgQ0ZHX0NNRF8qIHN5bWJvbHMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjU1MDFmN2Q3MjBmZWQ5OWFiMGI0MmM4M2Y1ZGVhNTI4NjhjZTAwNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxOToxMDowMyAyMDA3IC0wNTAwCgogICAgVXBkYXRlIFJFQURNRS4qIHRvIHJlZmVyZW5jZSBuZXcgQ09ORklHX0NNRF8qIG5hbWVzIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0MzEyODNjN2U2ZDU0YWUxODBkNDY2ZTUxYmYyZDk3NDcxYTBhZDkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTk6MDY6MDAgMjAwNyAtMDUwMAoKICAgIGNwdS9tKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYTFlZDFlMWY5MjJjNDE5YmI3MWY3ZGY0OTQ5ZDc4M2FkZTM2OWZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjU3OjIyIDIwMDcgLTA1MDAKCiAgICBjcHUvWzdhLWxuLXpdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYjNhYmNiYWJkODQwOTI4ZmIxZWI1MTIyMTE4Y2E0NjZiNWU1MDEzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjQ1OjE2IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bcS16XSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2ZlMDAxMDlhNWYxMmRlNTViNmUyNWIxZjk4ZGZjMjRiYzkwOTBjOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODozODozOSAyMDA3IC0wNTAwCgogICAgYm9hcmQvW20tcF0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1MDhhNGNlZmQ4YTk1M2ZjNjQ5NTc2NTA1MDZhMDM1ZTZlM2Q5ZDEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MzE6MjggMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tmLWxdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOTMwNzI2MmY4YTlmM2I1YzllMTVhNjA2N2VhZGMxNzQwNzE0NmY2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjI0OjU1IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bZC1lXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmNlYzJlYjkzZTEyNjQwMDAwOTcyOTMyOGU3OTdmMTJiYzk0ZjFmZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODoxOTowOSAyMDA3IC0wNTAwCgogICAgYm9hcmQvW0EtWmEtY10qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1OTM4MTRmMmJlMGM5Y2RjMzEzM2NkNTUwYjE2N2I4YTk4ODMyOGYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MTA6NTAgMjAwNyAtMDUwMAoKICAgIHJ0Yy86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjczNTA1NjhmOWQ0NmU2NmMyMTgyOWYzNTEzYjNkYjBjYWViOTQ4YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODowNTozOCAyMDA3IC0wNTAwCgogICAgbGliX3thcm0sYXZyMzIsYmxhY2tmaW4sZ2VuZXJpYyxpMzg2fS86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2RlZjZiMzRmOTEwZjA4ZDdlZjBhMTQ2NDZkYTA2NzcxOTIzN2NhMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODowMjoxMSAyMDA3IC0wNTAwCgogICAgbGliX3ttNjhrLG1pY3JvYmxhemUsbWlwcyxwcGN9LzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZDYwZDEyMjNiOTlhODhhNzIxNmYzZTA0MWZlNDA2MzRhZDRjMmJiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjU2OjUwIDIwMDcgLTA1MDAKCiAgICBmcy86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzkxODk4YmJjNTA1YWZmM2UxMmE4MDdhZjg4ZTc2ZGExOGVmYjdlZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzo0NjowOSAyMDA3IC0wNTAwCgogICAgdG9vbHMvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0M2QxYWIyMzk2MDk1MGI1MmUwYTI4MDNjMmQzZWE0YzU1OGZhMDEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6NDU6MTQgMjAwNyAtMDUwMAoKICAgIG5ldC86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2I1MWMwYmY4OGY5NWExYmNhNjgzMjRiMDEyNmY4ZWVkOGI0MzI3MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzozOTo0MiAyMDA3IC0wNTAwCgogICAgZHJpdmVycy9bbi16XSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDdkMzhhMTdlOTY0YWVjNGM3ODI3ZjBlZTlhNTgzYmM4Y2MxYWQ2YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzozMDowMSAyMDA3IC0wNTAwCgogICAgZHJpdmVycy9bYS1tXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2RlNWM2NGQxN2NmNDgzNGFhN2I1YzM3M2YyODhiYzdkYWQyN2IyOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzoyMjozNyAyMDA3IC0wNTAwCgogICAgZGlzay86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjM5MjIxYzc2Yzg4MjE1YmQ1NWFmODNhZDE3NGZjMzBkMTk0MGY4ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzoxNTo0OSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwogICAgTW9zdGx5IHJlbW92ZWQgZnJvbSBjb21tZW50cyBoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGVmMjE4ZjZmZGY4ZDc0N2Y0NTg5ZGE1MjUyYjAwNGU3ZDJjMjg3NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMTAgMDA6MDE6MjggMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzg2MDNjZmJkNDU3MzM3OWE2MDc2YzljMjA4NTQ1YmEyYmJmMDE5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCA5IDExOjAwOjI0IDIwMDcgKzAyMDAKCiAgICBTbWFsbCBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZjkyYzdlN2M5YTYyNzU1YjE0NTdkM2M0NmY5M2M4YzFmNmMxOWZjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBKdWwgOSAxMDoxMDowOCAyMDA3ICswMjAwCgogICAgTWlncmF0ZSBlc2QgNDA1RVAgYm9hcmRzIHRvIG5ldyBOQU5EIHN1YnN5c3RlbQoKICAgIFJlbW92ZSB1bnVzZWQgQ0ZHX05BTkRfTEVHQUNZIGRlZmluZQoKICAgIFRoZXNlIGJvYXJkcyB0byBub3QgaGF2ZSBOQU5ELgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGJkODRlZTRjMjAyMGMzYTY4NjFmNGJiMmU3ZWEwZmI0OWY4MmU4MDMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDEwOjEwOjA2IDIwMDcgKzAyMDAKCiAgICBNaWdyYXRlIGVzZCA0MDVFUCBib2FyZHMgdG8gbmV3IE5BTkQgc3Vic3lzdGVtCgogICAgTWlncmF0ZSBlc2QgNDA1RVAgYm9hcmRzIHRvIG5ldyBOQU5EIHN1YnN5c3RlbQoKICAgIC1jbGVhbnVwCiAgICAtdXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzIChpbi9vdXRfYmUzMigpKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGUwOWY3YWI1NzQ5YzM0NWY5MjRkYTI3MmJlYTA1MjFhNzNhZjViMTEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDEwOjEwOjA0IDIwMDcgKzAyMDAKCiAgICBNaWdyYXRlIGVzZCA0MDVFUCBib2FyZHMgdG8gbmV3IE5BTkQgc3Vic3lzdGVtCgogICAgVGhpcyBwYXRjaCBwcmVwYXJlcyB0aGUgbWlncmF0aW9uIGZyb20gdGhlIGxlZ2FjeSBOQU5EIGRyaXZlcgogICAgdG8gVS1Cb290J3MgbmV3IE5BTkQgc3Vic3lzdGVtIGZvciBlc2QgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGMzNTE3ZjkxOWQwZjYxNjUwY2YzMDI3ZmQ0ZmFmMGY2MzExNDJmNmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTg6MTA6MDggMjAwNyAtMDUwMAoKICAgIGNvbW1vbi8qIG5vbi1jbWQqOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZkOWJjYWEzNWJlNjRmZTQxYTQyMjNmZGI2ZWNkYmFkNTI0NzBiMzkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTg6MDU6MzkgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW3AteF0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNzZmZTQ3NDI1YWZjN2Q1ZDY3MGZmMDUzOTgyM2M4NWQ2NWQ5YzQyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE4OjAyOjIzIDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1tpLW5dKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmFhMjZkYjQxMTM2NzliODA5NzBmZjQ0N2Q5MWNjMTAyMTc3NDJhNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNzo1MTozOSAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9bYWZdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWYwNzVlZTk2ZTUyZGRhN2I2YmNhNmM5Mzc1ODhhZWFhZWM1ZjJjZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNzowMjowMSAyMDA3IC0wNTAwCgogICAgQ2xlYXIgdXAgY29uZnVzaW9uIG92ZXIgdGhlIENNRF9QT1NUIGFuZCBQT1NUX0RJQUcgbWVzcy4KCiAgICBGb3Igc29tZSByZWFzb24sIENPTkZJR19QT1NUIHBlcm1lYXRlZCBhcyBDT05GSUdfQ01EX1BPU1RfRElBRwogICAgd2hlbiBpdCByZWFsbHkgbWVhbnMganVzdCBDT05GSUdfQ01EX0RJQUcuCVRoZXJlIGlzIG5vIENNRF9QT1NULgogICAgQ2xlYXIgdGhpcyBtZXNzIHVwIHNvbWUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMzYzMTQ4NzEwNWE1N2FiN2NiYWRmYzI2ZWZiYWY5Njc2Mjc1MDE4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjQ1OjA4IDIwMDcgLTA1MDAKCiAgICBSZW1vdmUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIGNtZF9jb25mZGVmcy5oIGluY2x1ZGUgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEyMmQ0ZGE5NWUyMDA0OWI0ZGFhMWMyYTAyMmY2MWU4YTcyZjJmYjYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6NDI6NTkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogQ2F0Y2ggc29tZSBDT05GSUdfQ01EXyogY29udmVyc2lvbiBzdHJhZ2dsZXJzLgoKICAgIFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIGx3bW9uNS5oIGJvYXJkIGNvbmZpZyBmaWxlLgogICAgRml4IENPTkZJR19DTURfKiB0eXBvIGJyYWluZGFtYWdlIGluIG9tYXAxNTEwaW5uLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1NTYyOTAxNjYxYmQ0MjhmN2U1ZmViMzMzZjc5NjM3MmNiODEwMTkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6MzE6NTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBbVFVWV1pZWl0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZlN2Y3ODJkNWI4YzY0YTAxOTVjNjhjMzFhMGExMWQ0ZjY0MTM1NWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6MDI6NDQgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBTKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlOWEwZjhmMTVjMTFmMzM3OTY3YWEwNjAwYWQ2ZThhZjMzMDM3ZjUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjEyOjQwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgUiogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTJhYTlmZDIzZDcyNGJkNmFiODhlMWJhYTBkYjM1MTMzYTI3MzAzZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNDo1NTowNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFEqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFjZjAyNjk3Nzk0MjJmM2UxNDdkMmRkZmI0OTljOWY2ZmYxMGFkNWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTQ6NDk6NDQgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBQKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMThhMTA2MWE4NjMwY2I2Nzk5NWZkZjk5YWZkM2ZiNTBkMWIxODdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE0OjIxOjQzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgW05PXSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODM1M2UxMzliZmFkOTA1OWM1NGY1YjI0MjFmMWEzMDkwZTE1YTJlMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNDoxNDoxNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIE0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM0OGYyNThmMjQyNTM0MzNlNGEyMzAyYTBiYmNlYjY3NDBhNjcyNDYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTM6NDY6MTggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBbSUpLTF0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZjNGY0ZGE5YmZjOWY5NDAzZjU0ZmNlNjc4ZWQwMzY0YjdjODZhNmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTA6MDk6MzUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBIKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MGEwODc2YjUxMDZiMzQyMjBlNDU5YzIwOGJiZjY0ODA3MzMwNmMwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEp1bCA3IDIxOjA0OjI2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgRiogYW5kIEcqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRjYWE3MTU2MjgyNmEyNDY2ZTg5NGM4NjhkMTMyNTA5ZGNkYTg0NDQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgSnVsIDcgMjA6NTY6MDUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBFKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYzMyMjdmM2M3Mzc1MDIzMTFiMjViNzIwODQ1NzM5MDFjYmJmMTdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEp1bCA3IDIwOjQwOjQzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgRCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDljZjdlOGVlN2VmOTQzZmRmZTg2NmNlMjg0MTBiMGJmYmY2YTI2YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAxOTo1MjozNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEMqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRlOGIyYTZlMzMyOThkY2RiMTBiZGRhNDhkYjI1ZTUzYzMwODllYmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMTk6MzI6MDcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBCKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OThmZjlhMjI4NDg1YmQ0YjlmMjNkMDY2YmFkYTI2OGY5YWRkMWRkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDE5OjEzOjUyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgQSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpbmNlIEFEUzg2MC5oIGluY2x1ZGVzICJib2FyZC9mYWRzL2ZhZHMuaCIgd2l0aCByYW1pZmljYXRpb25zCiAgICBvbiB0aGUgQ09ORklHX0NPTU1BTkQgdHJlYXRtZW50LCBpdCB0b28gaGFzIHRvIGJlIGFkanVzdGVkIHRvCiAgICBleGNsdWRlIGFscmVhZHkgY29uZmlndXJlZCBjb21tYW5kcyBpbiB0aGlzIHNhbWUgY29tbWl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTBlMDM4OTMyZjIyZWU4MGViZDUzZGUzMTI1MzFlNzBlNjU5MGEyZgpBdXRob3I6IFRob21hcyBLbm9ibG9jaCA8a25vYmxvY2hAc2llbWVucy5jb20+CkRhdGU6CUZyaSBKdWwgNiAxNDo1ODozOSAyMDA3ICswMjAwCgogICAgW05BTkRdIEJhZCBibG9jayBza2lwcGluZyBmb3IgY29tbWFuZCBuYm9vdAoKICAgIFRoZSBvbGQgaW1wbGVtZW50YXRpb24gb2YgY29tbWFuZCBuYm9vdCBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgdGhlIGltYWdlIGZyb20KICAgIE5BTkQgZmxhc2ggd2l0aCBza2lwcGluZyBvZiBiYWQgYmxvY2tzLiBUaGUgcGF0Y2ggaW1wbGVtZW50cyBhIG5ldyB2ZXJzaW9uIG9mCiAgICB0aGUgbmJvb3QgY29tbWFuZDogYnkgY2FsbGluZyBuYm9vdC5qZmZzMiBmcm9tIHRoZSB1LWJvb3QgY29tbWFuZCBsaW5lIHRoZQogICAgY29tbWFuZCB3aWxsIGxvYWQgdGhlIGltYWdlIGZyb20gTkFORCBmbGFzaCB3aXRoIHJlc3BlY3QgdG8gYmFkIGJsb2NrcyAoYnkgdXNpbmcKICAgIG5hbmRfcmVhZF9vcHRzKCkpLiBUaGlzIGlzIHNpbWlsYXIgdG8gZS5nLiB0aGUgTkFORCByZWFkIGNvbW1hbmQ6ICJuYW5kCiAgICByZWFkLmpmZnMyIC4uLiIuCgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMzQwNDNmNjAxYTkwYWM1M2U1ZWNjODQ2ZmJiNzNhMWVmMzhjYjFmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDYgMTI6MjY6NTEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGx3bW9uNSBkZWZhdWx0IGVudmlyb25tZW50CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVkMTg3NDMwYTA1NWQ2MmYxN2NhODRkNzVlNzI0NTQzOWQxZjdlNzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNiAxMTo0ODoyNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgbHdtb241IGJvYXJkCgogICAgQWRkIHVubG9jaz15ZXMgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gZGVmYXVsdCB2YXJpYWJsZXMgdG8gdW5sb2NrCiAgICB0aGUgQ0ZJIGZsYXNoIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZiMGExNzRhMWU2ZjU1ZTFmNWExZmJiMjIzY2RhZDc2NDVhNDY0NmUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNiAwOTo0NTo0NyAyMDA3ICswMjAwCgogICAgRml4IHByb2JsZW0gd2l0aCBnZXQvc2V0ZGNyIGNvbW1hbmRzIGludHJvZHVjZWQgYnkgY2ZnIHBhdGNoZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjExNTJmOGMyOGRiNGEyMjA4N2MyMWM2MThhM2Y3YmFhNDhlOWE0ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNiAwMjo1MDoxOSAyMDA3ICswMjAwCgogICAgQ29kZSBjbGVhbnVwIGFuZCBkZWZhdWx0IGNvbmZpZyB1cGRhdGUgZm9yIFNUQyBHUDMgU1NBIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTRkYmUxYjIxNWY1YzZjNDYyZTc2OTA5ZDI0MGJkOTY0NzJiODRkZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgNSAxNzo1NjoyNyAyMDA3ICswMjAwCgogICAgRml4aW5nIHNvbWUgdHlwb3MgZXRjLiBpbnRyb2R1Y2VkIG1haW5seSBieSBjZmcgcGF0Y2hlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGI2YjQ2ODQ1NDY4MDlmODljOGJhYzcyODYzY2E0OWI1ZmQ4YWMwY2QKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDUgMTE6MTI6MTYgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IGRjYTNiM2Q2ZDYzOTZiNjdlNWU4NGFmNTM0NTIxNjQ5MjNjNzM0NDMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6NDYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBbdi16XSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmMxOGViOTgwNGI1MjVmM2U0ZjNiYjNkMDE0ZGQ2OWEyMDBkOWZhNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzozOCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIHQqIGFuZCB1KiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NmRhMWU5NmI3ZGIxNGY0ZmNkMmM5MjU0NGU3YzA4NjIwMjRiYzc2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjMwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgcyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTBjYzNlYjZkMmJlODU2ZDlkZGQ4MTQzNmRlOWNmMzQzYmM2YjVjOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzoyMyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIHEqIGFuZCByKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNmEzNDU2MGQ1NmE5ZGY1YmMyYWUyMzUyNWQ5MjI5NzM2MTM0NzU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjE3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgcCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTVjYjIzMDkyYTdkMzE0OTBhMzNkNGVjODcxNDY4YjYzYmFiZmEzYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzoxMyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIG8qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkyOWEyYmZkMTQyNzM3MDAzYThmYzMyZTFiODZlMWYyYzE4NTAyNTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MDcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBuKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZGMxMWE1MTE5NjBkNDkwZjdmMDFmZmQ3NDZlZGZlNjI3N2Y5OWIwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjAxIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgbSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWJiYjFjMDgyMGMxZmJkMzgxMWFiNmVlNGJhMGY2YzZmNzZiMjdlNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjo1NyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGwqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJjMjM0YzEyOWZhMDRmYjlmYTMzNTMwOTMwZTVjYmM2MDg0Y2Q0N2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6NTEgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBqKiBhbmQgayogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWQyYzZiYzQ5MTk2OWY4ZDhmYjM0YzhlMzBlOGJlYTdhMmFmOWMzMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjozMiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGkqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4ZDVkMTAyYTJmMmU2MTljOTIwNTBiOWFlZGJiNjk2ODkxODViYzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MjUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBoKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MmViMGVmYWVkNzA0OGFmY2M2MWZjNmYwMDg1YzQ5Mzk0YjVkYzM2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjE5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgZyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWJlYzNkMzAwMmQzYmJiYWU2ZjI0NjhhMGY3Mzc2ZGIxMTIwZDMzZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjoxMCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGUqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFiOTk5YmExYjMxZWJlNzhkZDE2Mzc0Mzk0YTU1ZDdjNmU1YWE2ZTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MDMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBkKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzN2U0ZjI0Yjg3ZmEyNTVhZTQ1NmQxOTNiN2NkMjNjMThkZDFkNTZiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjU2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgYyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmEyMzUxZjlkMWU4NDFiZDAwZWE2ZGFkMWUzYzE2ZDAyNTlhZDI2NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTo0OSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGIqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBiMzYxYzkxNjYxN2FmZjc5ZTY0N2I0MGYwZTQzMzYxZTBiYmFjY2YKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6NDIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBhKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNzMwY2RhODJlMzYyZGY2YTIyZjRjNTljMGE5Yjk3ZTg4NWIxMDE0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjM1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIG1wYzV4eCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNzk0Y2ZlZmVhZDVmYzE3N2NmNGY0MTE2NGU4MDM4MmU5Yzk0ODRhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjE1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgNTIwMCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlZjBkZjUyYWI0OWVlYTRhMzBjMTUwODdmZDI3ZDU0YzFkOTQ2ZjJjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjA3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIFNUeCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NjZlMzA4OWJmYzgyNmJiNGRjNzQ2MzdmOGFhZDg3YTNiYWI3OWZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMwOjU4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHNiYyogYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjY5NDY5MGUyODVhY2FhMzQ5MjJmNTVmNGI1YWUwMzBkYTYwYzU1YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMDo1MCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBUUU0gYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWNjNGM0NTgzMjk3NjViNThlNTg0YTE5ODIxZTc5NmIzYzEwZTk3NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMDoyOCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiA4Mnh4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhlYTU0OTlhZmRhYmEwYWNmNjA5MjNkZDk5MDAxYzM5OWQ0YTdjOGUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzA6MDYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gODN4eCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNDQ4OTYyMTVhMDljNjBmYTQwY2FlOTA2ZjdlZDIwN2JiYzJjNDkyCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IEp1bCA1IDA4OjE3OjM3IDIwMDcgKzAyMDAKCiAgICBNZXJnZWQgUE9TVCBmcmFtZXdvcmsgd2l0aCB0aGUgY3VycmVudCBUT1QuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBiMjQ2MjlmYTM3NzIxNGQ2M2JiNDBkMTM2MGUzNTRiNmQzZTRhZjU2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biAxMyAxMzoyMzoxNSAyMDA3IC0wNTAwCgogICAgbXBjODZ4eDogUmVtb3ZlIG9sZCBDRkdfQ01EXyogcmVmZXJlbmNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ2MTc1ZDk3NjRkYTEyOWJiNGZkMzQxY2QyNTU0ZGM3ZDU1ZjViMmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDEzIDEzOjIyOjU0IDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU2OE1EUyB0byBNQUtFQUxMIDg1eHggdGFyZ2V0LgoKICAgIEl0IHdhcyBtaXNzaW5nIGZyb20gdGhlIG9yaWdpbmFsIHBvcnQgc3VibWlzc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI4MzVlNTE4Yzk2OWU1MTI0YmExMTc0ZWVmM2U4Mzc1ZTEyZmE3ZDUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDEzIDEzOjIyOjA4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIDg1eHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTZiMzA0YWMyMDkxNjg5NTA2MDg4YTlhZTY3ZjYzZmQ2MzAwY2YxNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gMTMgMTM6MjE6MzcgMjAwNyAtMDUwMAoKICAgIEZpeCAjaWYgdHlwbyBpbiBDT05GSUdfQ01EXyogY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY3ODBiODMzMTZkOWFmMWY2MWQ3MWNjODhiMTkxN2IzODdiOWI5OTUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglXZWQgSnVuIDI3IDE4OjExOjM4IDIwMDcgKzAyMDAKCiAgICByZXN1Ym1pdDogcHBjNHh4OiBSZW1vdmUgc2VxdW9pYS9zZXF1aW9hLmguIENsZWFudXAgcHBjNDQwLmggZm9yIFBQQzQ0MEVQWAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KCmNvbW1pdCAwNGU2YzM4Yjc2NmVhYTJmMzI4NzU2MTU2M2M5ZTIxNWUwYzNhMGQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDQgMTA6MDY6MzAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGx3bW9uNSBib2FyZAoKICAgIC0gQWRkIG9wdGlvbmFsIEVDQyBnZW5lcmF0aW9uIHJvdXRpbmUgdG8gcHJlc2VydmUgZXhpc3RpbmcKICAgICAgUkFNIHZhbHVlcy4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBMaW51eCBsb2ctYnVmZmVyIHN1cHBvcnQKICAgIC0gQWRkIG9wdGlvbmFsIEREUjIgc2V0dXAgd2l0aCBDTD00CiAgICAtIEdQSU81MCBub3QgdXNlZCBhbnltb3JlCiAgICAtIExpbWUgcmVnaXN0ZXIgc2V0dXAgYWRkZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjgxMGEzNDY3N2RiYzQ0NjMzNGY1ZTQ1MWYxNjgyNDI2ZGQzM2I0OQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjE3OjI4IDIwMDcgLTA2MDAKCiAgICBGaXggTWFrZWZpbGUgdG8gdXNlICQoTUtDT05GSUcpIG1hY3JvIGZvciBhbGwgYm9hcmQgcG9ydHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTBiMWIyZDY5YjkzOTZmZjJmMDExNjVlYmMxNmM5YTU5NGViNTkyNgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjE3OjI4IDIwMDcgLTA2MDAKCiAgICBGaXggTWFrZWZpbGUgdG8gdXNlICQoTUtDT05GSUcpIG1hY3JvIGZvciBhbGwgYm9hcmQgcG9ydHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMDU3MDA0ZjRhNDg2MzU1NGQ1NmNjNTYyNjhiZmE3YzdkOTczOGUyNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjQ5IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgzeHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWFmNjFiMmY0YjgzOGEwNWY3OWJlMjc0ZjNlNWE2NmVkZDJkOWM5NgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjQ0IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjNhNTJmZTA1OTIzOTM1ZGI4Njk4NWRhZjk0MzhlMmY3MGFjMzlhYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjM5IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTg1ZGQyNTRjMDU3N2ZjYTEzNjI3YzQ2ZTkzZmMyYWQ0YzRmMWYwMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjM0IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyMjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNmY3NTc2YjIwZWNmMGQwNDBjM2FjM2IwMzJiNWNiYzg2MGUzOGE5MApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjI5IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIE1QQzV4eHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMzY0OWNkOTliYTgxNWI2NjAxODY4NzM1NzY1NjAyZjAwZWYzNjkyYgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjI0IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IHJlbG9jYXRpb24gZml4dXAgZm9yIG1wYzV4eAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmODJiM2I2MzA0YjYyMGVmN2UyOGJmYWExZWE4ODdhMmFkMmZhMzI1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MTkgMjAwNyAtMDYwMAoKICAgIERvbid0IHNldCBnZC0+cmVsb2Nfb2ZmIGlmIHJlbG9jYXRpb24gb2YgLmZpeHVwIHdvcmtzIGNvcnJlY3RseQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlMWE2MTQ0YzMyZGM3ZGU3M2JjZGQzMzk5NWRlMDE0OGNiZDBiZDI4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MTQgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4M3h4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDE3ZTMyZmMzOTA4YmY3MDg5ZDNmMTZmYzgyYTFjM2FlNjc0ZGQ2NWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDowOSAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODI2MCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhZjdkMzhiMzkzNjkwZDdlZWFmNDE4YWM4NWExZTgzMWE1MGQ1ZmQwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MDQgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY5NGEzYWVjZWJjNDBjYTA5MzljN2Q2NmQwMTAwMDljZjUxYmU5ZTIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzo1OSAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMgKDMgb2YgNCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTcxYzA4NGYzYWM3ZmVkZjE0NDUzN2RiMmIyZGE0NzMyMzA2ODgzMwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjUzIDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cyAoMiBvZiA0KQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmNjcwYTE1NDY4ZDEzNjUyNDFkNDAwMjJiOTQwOGUxMDA0MTgxZjVlCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6NDggMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzICgxIG9mIDQpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDA5NTU1YmQ0NWEwNGMwZTU0ZjE3MjUyOGQyMWJjMTg4OTY1NTBkMjgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzo0MyAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyMjAgbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWVmYjk5MmYwNDZlNTEyMjVjOTNkNTJmODBmZWNiZTQzM2FiZDc4OQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjM4IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjNXh4eCBsaW5rZXIgc2NyaXB0cyAoMyBvZiAzKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwN2MxM2RmZWY2NWIzMTY0N2U2OWQ4YjYxZGFhMWVlYzU5OGFkZDFhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MzMgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM1eHh4IGxpbmtlciBzY3JpcHRzICgyIG9mIDMpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGI0ZjY3NTEzYTYyNGNlODU4NjZjNjZjNTc1YmQyZDlkNzk3N2Q3ZjAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzoyOCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzV4eHggbGlua2VyIHNjcmlwdHMgKDEgb2YgMykKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYjdkOGUwNWY4Njc1MjQ5YjVmMjA4YWE3M2JhYmVlZDM4NGE0NTE5ZApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjIzIDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjNXh4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDQxNmEwYjZkNDBmNmViYTNhMmZjNTQ3MjUzYzE2YmRhMjhkOTIyZjcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzoxOCAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODN4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1ZmM1OTE3NWI5Mjg4M2VkNWQyNjY2YTA0ZTZiYzQ5ZTcwYTRhMzY1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MTMgMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgyNjAgbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzM3ZjllYjAyZDczMzVkZjJiM2U0ZDdhNGQzMzQ4Nzg0ZDFkYTIwNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjA4IDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDljNzU3Yjc4OWE1OWE4NTVkYjU3YjQ0OGRkODI1MzI5YzRlOWM0YTAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzowMyAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODIyMCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBkMTgxYzlhMTVjZDQxODYzZmUyNDg0MGQxNzg0ODQyOWYyN2QzYzhjCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzI6NTggMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzV4eHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMjg3YWM5MjRhZGI3MjkxYmViZTUwODY2NTJhMzYyYTMwYWIyOGIxMwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMyOjUzIDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM1eHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNTJiODcwNGQwMjQ1ZTU4OWY4NmQ0NjJlOWVjMjVhZWI3ZWNiYmJkZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgNCAwMDo0Mzo1MyAyMDA3ICswMjAwCgogICAgRml4IGEgZmV3IGZpbGUgcGVybWlzc2lvbiBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc4ZTBjZjJkZTdiZTdmMWVhZWViNjIyZWI2MWZkNTBlNGQ1ZTIwNWMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDQgMDA6Mzg6MzggMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLiBSZWJ1aWxkIENIQU5HRUxPRyBmaWxlLgoKY29tbWl0IDJmOWMxOWU0OTZhY2I2YmI1MGQ5Mjk5ZTFhYWIzNzc2MjVkNDhjMzgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjQ0IDIwMDcgLTA1MDAKCiAgICBjb25maWdzLyBtcGM4Nnh4OiBSZXdyaXRlIGNvbW1hbmQgbGluZSBvcHRpb25zIHVzaW5nIG5ldyBDT05GSUdfQ01ELSogc3R5bGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MDJhZDNiMzNkOWNlZWY4M2RiYWI0NmJlNjg2NDZkNjQ1ZDYzN2VlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzozOSAyMDA3IC0wNTAwCgogICAgUkVBRE1FOiBSZXdyaXRlIGNvbW1hbmQgbGluZSBjb25maWcgdG8gdXNlIENPTkZJR19DTURfKiBuYW1lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcyYTA3NGNlYzY4ZTViYWQ2MGQ2MzIwNmMwNTA5NzRlMDhhZmQ4MDQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjM0IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlLyBub24tY29uZmlnOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZmNmNTQzZTBiNjYyOGM3NmZmNDg3MDViMWIwNTY2YmZkMTE1MDdiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzoyOCAyMDA3IC0wNTAwCgogICAgdG9vbHMvIDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTEwN2ViZTBkMzUyNDIwODk1YWI2OWI3MTU2OTdiZGViYzhjYWY1MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MjMgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1trLXpdKjogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWUzNzgwMDNkNTkyZWE4MjhlYzY5ZDZkZWZjZDRkZTc5MDk2ZGQ1YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MTkgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tNYS1pXSo6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDczNzE4NDExNGVjOWM5ZTBhYjk0ZDY3MTM1MzYxMjYwNzNiZDI0NzIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjE1IDIwMDcgLTA1MDAKCiAgICBjcHUvIG5vbi1tcGMqOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNDgwNzBmZTVmZTQ0MGRmYjVlZTUyNjhjOTIwZGU3MGU0OGVhMzI3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzowOCAyMDA3IC0wNTAwCgogICAgY3B1L21wYyovIDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGM1MDVkYjBhMGRjMWY2NzBiMTNjZTNiNGQzZmJmMWVjNWIzY2JkMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MDMgMjAwNyAtMDUwMAoKICAgIGxpYl8qLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzNmMDMyMDIxZWM1ZjEzY2RhOGZhYTRlMzRiNmRlODA5NjBlYjg2ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6NTggMjAwNyAtMDUwMAoKICAgIGxpYl9wcGMvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OGI3OTAwM2MyMWMyNTc4MjA2MDAzMjU2ZGU0ZTc4MWQ2YjM2Y2E4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjo1MyAyMDA3IC0wNTAwCgogICAgcnRjLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmUyMTE1YWNiNmE4OTJkNTNhNjg4MWJmMjUzYWU0MWQzZGYzOTE1NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6NDkgMjAwNyAtMDUwMAoKICAgIG5ldC86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1Y2RiOWI3MmM5NDY1NWM3MzA4YjQ2NGEyNjY2MDU3YzBiMjg2ZTAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjM0IDIwMDcgLTA1MDAKCiAgICBkaXNrLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGUxMDlhZTk4Mjk0YTVjYTdmZjg0OGI3NjUyYzdiZmQ0MDIzYTk0YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6MjAgMjAwNyAtMDUwMAoKICAgIGZzLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDViZTQzZGU5M2ZmOTA1YzQ2NWU1MDlkNDVhMzE2NGVmNDhkMjZlNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6MTAgMjAwNyAtMDUwMAoKICAgIGRyaXZlcnMvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNDUzOTYwZDRmZGI4N2IzOTcwZDk2MTE5YjkwZGYyZWQwMjRmYzRhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjowNSAyMDA3IC0wNTAwCgogICAgY29tbW9uLyBub24tY21kOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NWM0NTBiNDdhNjI2NTlkNTIyY2ZhOGY0ZmExZTRlNWM2MGRjY2QwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMTo1NCAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9baS16XSogOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNzZhZGM4MTQyYzFkOTU2Mzg1YTEwOWUwYjcwZjkzMTllZGU0ZDY2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMTo0MyAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9bYS1mXSogOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYzYzYjEwYjYxZmQ2ODIzOGQ0YzE1YzFjZDA0YzBiMzgyMjhlMmMxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMTozNCAyMDA3IC0wNTAwCgogICAgSW50cm9kdWNlIGluaXRpYWwgdmVyc2lvbnMgb2YgbmV3IENvbW1hbmQgQ29uZmlnIGZpbGVzLgoKICAgIERlcml2ZSB0aHJlZSBuZXcgZmlsZXMgZnJvbSBjbWRfY29uZmRlZnMuaDoKCWNvbmZpZ19ib290cC5oIC0gSGFzIEJPT1RQIHJlbGF0ZWQgY29uZmlnIG9wdGlvbnMsIG5vdCBjb21tYW5kcwoJY29uZmlnX2NtZF9hbGwuaCAtIEhhcyBhIENPTkZJR19DTURfKiBkZWZpbml0aW9uIGZvciBldmVyeSBjb21tYW5kCgljb25maWdfY21kX2RlZmF1bHQuaCAtIEhhcyBhIENPTkZJR19DTURfKiBkZWZpbml0aW9uIGZvciBkZWZhdWx0IGNtZHMuCgogICAgRm9yIG5vdywgaW5jbHVkZSAiY29uZmlnX2Jvb3RwLmgiIGZvciBjb21wYXRhYmlsaXR5IHVudGlsIGFsbAogICAgdXNlcnMgb2YgaXQgZGlyZWN0bHkgaW5jbHVkZSBpdCBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmMmEwNTg5ODY1ODkwMGRjNTcxNzc2MWUyN2FiZjIwNTJlNjdlMTMKQXV0aG9yOiBNdXNodGFxIEtoYW4gPG11c2h0YXFrXzkyMUB5YWhvby5jby5pbj4KRGF0ZToJU2F0IEp1biAzMCAxODo1MDo0OCAyMDA3ICswMjAwCgogICAgRml4IFMtQVRBIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogbXVzaHRhcSBraGFuIDxtdXNodGFxa185MjFAeWFob28uY28uaW4+Cgpjb21taXQgYTVkNzFlMjkwZjM2NzMyNjliZThlZWZiNGVjNDRmNTM0MTJmOTQ2MQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyNSAxOToxMTozNyAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQlnZXQgcmlkIG9mIENPTkZJR19QUEM0eHhfVVNFX1NQRF9ERFJfSU5JVF9IQU5HCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYTFiZDYyMDBlY2NkM2EwMjA0MGE5NTVkNWY0M2QzZWUxZmM5ZjkzYgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxNzowMzoxMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBQUEM0NDBFUHggRW1pdCBERFIwIHJlZ2lzdGVycyBvbiBtYWNoaW5lIGNoZWNrIGludGVycnVwdAoKICAgIFRoaXMgcGF0Y2ggcHJpbnRzIHRoZSBERFIgc3RhdHVzIHJlZ2lzdGVycyB1cG9uIG1hY2hpbmUgY2hlY2sKICAgIGludGVycnVwdCBvbiB0aGUgNDQwRVB4L0dSeC4gVGhpcyBjYW4gYmUgdXNlZnVsIGVzcGVjaWFsbHkgd2hlbgogICAgRUNDIHN1cHBvcnQgaXMgZW5hYmxlZC4KCiAgICBJIGFkZGVkIHNvbWUgc21hbGwgY2hhbmdlcyB0byB0aGUgb3JpZ2luYWwgcGF0Y2ggZnJvbSBOaWtsYXVzIHRvCiAgICBtYWtlIGl0IGNvbXBpbGUgY2xlYW4uCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgwNzAxOGZiN2ZhY2ViNDI5Y2UwY2I0N2JhYTIwNzM3NDZiMzNhNGUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTY6NTA6NTUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IE89YnVpbGRpciBidWlsZHMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtIHRvIGFzc2VtYmxlIGNwdS9wcGM0eHgvc3RhcnQuUwogICAgZXhwZXJpZW5jZWQgbGFzdCB3ZWVrIHdoZXJlIGJ1aWxkaW5nIGZhaWxlZCBoYXZpbmcgc3BlY2lmaWVkCiAgICBPPS4uL2J1aWxkLnNlcXVvaWEuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgoKY29tbWl0IDQ2NmZmZjFhN2JiNWZlNzY0YTA2NDUwNjI2ZjYwOTgyMTlmNDQ2YjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMjUgMTU6NTc6MzkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHBjaV9wcmVfaW5pdCgpIGZvciA0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBDRkdfUENJX1BSRV9JTklUIG9wdGlvbiBjb21wbGV0ZWx5LCBzaW5jZQogICAgaXQncyBub3QgbmVlZGVkIGFueW1vcmUgd2l0aCB0aGUgcGF0Y2ggZnJvbSBNYXR0aGlhcyBGdWNocyB3aXRoCiAgICB0aGUgIndlYWsiIHBjaV9wcmVfaW5pdCgpIGltcGxlbWVudGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZjM1YzUzMTY2MjEzYzI0YTVhMGUyMzkwZWQ4NjExMzZmZjczODcwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBKdW4gMjQgMTc6NDE6MjEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogTWFpbnRlbmFuY2UgcGF0Y2ggZm9yIGVzZCdzIENQQ0k0MDUgZGVyaXZhdHMKCiAgICAtYWRkIHBjaV9wcmVfaW5pdCgpIGZvciBwY2kgaW50ZXJydXB0IGZpeHVwIGNvZGUKICAgIC1kaXNhYmxlIHBoeSBzbGVlcCBtb2RlIHZpYSByZXNldF9waHkoKSBmdW5jdGlvbgogICAgLXVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycwogICAgLWNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA1YTFjOWZmMGM0NDMwNWI1N2NiNGQ4ZjkzNjliYmE5MGJjZjBlMWY4CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBKdW4gMjQgMTc6MjM6NDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHBjaV9wcmVfaW5pdCgpIGZvciA0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGNhbGxpbmcgYSBwbGF0dGZvcm0gZGVwZW5kYW50CiAgICBwY2lfcHJlX2luaXQoKSBmdW5jdGlvbiBmb3IgNDA1IGJvYXJkcy4gVGhpcyBjYW4gYmUgdXNlZCB0bwogICAgbW92ZSB0aGUgY3VycmVudCBwY2lfNDA1Z3BfZml4dXBfaXJxKCkgZnVuY3Rpb24gaW50byB0aGUKICAgIGJvYXJkIGNvZGUuCgogICAgVGhpcyBwYXRjaCBhbHNvIG1ha2VzIHRoZSBDRkdfUENJX1BSRV9JTklUIGRlZmluZSBvYnNvbGV0ZS4KICAgIEEgZGVmYXVsdCBmdW5jdGlvbiB3aXRoICd3ZWFrJyBhdHRyaWJ1dGUgaXMgdXNlZCB3aGVuCiAgICBhIGJvYXJkIHNwZWNpZmljIHBjaV9wcmVfaW5pdCgpIGlzIG5vdCBpbXBsZW1lbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAxNjM2ZDFjODUyOWMwMDZkMTA2Mjg3Y2ZiYzIwY2QwYTI0NmZlMWNiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMiAyMzo1OTowMCAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxrZSBjbGVhbnVwOyByZWJ1aWxkIENIQU5HRUxPRwoKY29tbWl0IDJkYzY0NDUxYjRjMDhmZmQ2MTkzNzJhYmZkYzI1MDZhMmUyMzYzYjkKQXV0aG9yOiBJZ29yIExpc2l0c2luIDxpZ29yQGVtY3JhZnQuY29tPgpEYXRlOglXZWQgQXByIDE4IDE0OjU1OjE5IDIwMDcgKzA0MDAKCiAgICBBZGFwdCBsb2cgYnVmZmVyIGNvZGUgdG8gc3VwcG9ydCBMaW51eCAyLjYKCiAgICBBIG5ldyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgImxvZ3ZlcnNpb24iLCBzZWxlY3RzIHRoZSBsb2cgYnVmZmVyCiAgICBiZWhhdmlvdXIuIElmIGl0IGlzIG5vdCBzZXQgb3Igc2V0IHRvIGEgdmFsdWUgb3RoZXIgdGhhbiAyLCB0aGVuIHRoZQogICAgb2xkLCBMaW51eCAyLjQuNCwgYmVoYXZpb3VyIGlzIHNlbGVjdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IElnb3IgTGlzaXRzaW4gPGlnb3JAZW1jcmFmdC5jb20+CiAgICAtLQoKY29tbWl0IGExMWUwNjk2NWVjOTEyNzBjNTE4NTM0MDdmZjEyNjFkM2M3NDAzODYKQXV0aG9yOiBJZ29yIExpc2l0c2luIDxpZ29yQGVtY3JhZnQuY29tPgpEYXRlOglXZWQgTWFyIDI4IDE5OjA2OjE5IDIwMDcgKzA0MDAKCiAgICBFeHRlbmQgUE9TVCBzdXBwb3J0IGZvciBQUEM0NDAKCiAgICBBZGRlZCBtZW1vcnksIENQVSwgVUFSVCwgSTJDIGFuZCBTUFIgUE9TVCB0ZXN0cyBmb3IgUFBDNDQwLgoKICAgIFNpZ25lZC1vZmYtYnk6IElnb3IgTGlzaXRzaW4gPGlnb3JAZW1jcmFmdC5jb20+CiAgICAtLQoKY29tbWl0IDU2NmE0OTRmNTkyYWUzYjNjMDc4NWQ5MGQ0ZTFiYTQ1NTc0ODgwYzQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjIgMTk6MTE6NTQgMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JICAgIHVwZ3JhZGUgdGhlIFBDUzQ0MEVQIGJvYXJkOgoJCSAgICAtIFNob3cgb24gdGhlIFN0YXR1cyBMRURzLCBzb21lIFN0YXRlcyBvZiB0aGUgYm9hcmQuCgkJICAgIC0gR2V0IHRoZSBNQUMgYWRkcmVzc2VzIGZyb20gdGhlIEVFUHJvbQoJCSAgICAtIHVzZSBQUkVCT09UCgkJICAgIC0gdXNlIHRoZSBDRiBvbiB0aGUgYm9hcmQuCgkJICAgIC0gY2hlY2sgdGhlIFUtQm9vdCBpbWFnZSBpbiB0aGUgRmxhc2ggd2l0aCBhIFNIQTEKCQkgICAgICBjaGVja3N1bS4KCQkgICAgLSB1c2UgZHluYW1pYyBUTEIgZW50cmllcyBnZW5lcmF0aW9uIGZvciB0aGUgU0RSQU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAzYTFmNWM4MWIwYjk1NTc4MTdhNzg5YmVjZTgzOTkwNTU4MWMyMjA1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDIyIDE2OjU4OjQwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIHdpdGggZXh0ZW5kZWQgcHJvZ3JhbV90bGIoKSBmdW50aW9uCgogICAgVGhlIHJlY2VudGx5IGV4dGVuZGVkIHByb2dyYW1fdGxiKCkgZnVuY3Rpb24gaGFkIGEgcHJvYmxlbSB3aGVuCiAgICBtdWx0aXBsZSBUTEIncyBoYWQgdG8gYmUgc2V0dXAgKGZvciBleGFtcGxlIHdpdGggNTEyTUIgb2YgU0RSQU0pLiBUaGUKICAgIHZpcnR1YWwgYWRkcmVzcyB3YXMgbm90IGluY3JlbWVudGVkLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUKICAgIGFuZCBpcyB0ZXN0ZWQgb24gS2F0bWFpIHdpdGggNTEyTUIgU0RSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAyMDMyZThmMTQ3NTFhMWE3NTFiMDkyNDBhNGYxY2Y5ZjhhMjA3N2YKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVuIDIyIDE0OjU4OjA0IDIwMDcgKzAyMDAKCiAgICBbcHBjXSBGaXggYnVpbGQgYnJlYWthZ2UgZm9yIGFsbCBub24tNHh4IFBvd2VyUEMgdmFyaWFudHMuCgogICAgLSBhZGFwdCB0byB0aGUgbW9yZSBnZW5lcmljIEVYQ0VQVElPTl9QUk9MT0cgYW5kIENSSVRfRVhDRVBUSU9OIG1hY3JvcwogICAgLSBtaW5vciA0eHggY2xlYW51cAoKY29tbWl0IGQ2NzdiMzI4NTVmNTc3YWUyNjkwZGNkNjRhMTcyY2RkNzA2ZTBmZmMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBKdW4gMjIgMTA6MzQ6MTIgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gYWRkIG5hbmRfaW5pdCgpIHByb3RvdHlwZSB0byBuYW5kLmgKCiAgICBzaW5jZSBuYW5kX2luaXQoKSBpcyBleHBlY3RlZCB0byBiZSBjYWxsZWQgYnkgb3RoZXIgcGFydHMgb2YgdS1ib290LCB0aGVyZQogICAgc2hvdWxkIGJlIGEgcHJvdG90eXBlIGZvciBpdCBpbiBuYW5kLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODNiNGNmYTNkNjI5ZGZmMDI2NDM2NjI2M2M1ZTk0ZDlhNTBhZDgwYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gMjAgMTg6MTQ6MjQgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBSZWZyZXNoIENIQU5HRUxPRy4KCmNvbW1pdCBiM2Y5ZWM4NmUzODgyMDdmZDAzZGNkZjdiMTQ1YjllZDA4MGJmMDI0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDE5IDE3OjIyOjQ0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBib290c3RyYXAgY29tbWFuZCBmb3IgQU1DQyBTZXF1b2lhICg0NDBFUHgpIGV2YWwgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBib2FyZCBjb21tYW5kIHRvIGNvbmZpZ3VyZSB0aGUgSTJDIGJvb3RzdHJhcCBFRVBST00KICAgIHZhbHVlcy4gUmlnaHQgbm93IDUzMyBhbmQgNjY3TUh6IGFyZSBzdXBwb3J0ZWQgZm9yIGJvb3RpbmcgZWl0aGVyIHZpYSBOT1IKICAgIG9yIE5BTkQgRkxBU0guIEhlcmUgdGhlIHVzYWdlOgoKICAgID0+IGJvb3RzdHJhcCA1MzMgbm9yCTt0byBjb25maWd1cmUgdGhlIGJvYXJkIGZvciA1MzNNSHogTk9SIGJvb3RpbmcKICAgID0+IGJvb3RzdHJhcCA2NjcgbmFuZAk7dG8gY29uZmlndXJlIHRoZSBib2FyZCBmb3IgNjY3TUh6IE5OQU5EIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGY4YTI0Y2RkMzAxNTE1MDVjZjU3YmJlZTUyODllOTFiZjUzYmQxYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1biAxOSAxNjo0MjozMSAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gRml4IHByb2JsZW0gd2l0aCBOQU5EIGJvb3Rpbmcgb24gQU1DQyBBY2FkaWEKCiAgICBUaGUgbGF0ZXN0IGNoYW5nZXMgc2hvd2VkIGEgcHJvYmxlbSB3aXRoIHRoZSBsb2NhdGlvbiBvZiB0aGUgTkFORC1TUEwKICAgIGltYWdlIGluIHRoZSBPQ00gYW5kIHRoZSBpbml0LWRhdGEgYXJlYSAoaW5jbC4gY2FjaGUpLiBUaGlzIHBhdGNoCiAgICBmaXhlcyB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg2YmE5OWUzNDE5NDM5NDA1MmQyNGMwNGRjNDBkMTI2M2QyOWEyNmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdW4gMTkgMTY6NDA6NTggMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIENoYW5nZSBib2FyZC9hbWNjL2FjYWRpYS9jcHIuYyB0byBwbGwuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ZTU4NWYwMmY4MmMxN2NjNjZjZDIyOWRiZjBmZDMwNjZiYmJmNjU4CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxOCAxMzo1MDoxMyAyMDA3IC0wNTAwCgogICAgQWRkZWQgTTUzMjlBRkVFIGFuZCBNNTMyOUJGRUUgUGxhdGZvcm1zCgogICAgQWRkZWQgYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiLCBjcHUvbWNmNTMyeCwgZHJpdmVycy9uZXQsCiAgICBkcml2ZXJzL3NlcmlhbCwgIGltbWFwXzUzMjkuaCwgbTUzMjkuaCwgbWNmcnRjLmgsCiAgICBpbmNsdWRlL2NvbmZpZ3MvTTUzMjlFVkIuaCwgbGliX202OGsvaW50ZXJydXB0cy5jLCBhbmQKICAgIHJ0Yy9tY2ZydGMuYwoKICAgIE1vZGlmaWVkIENSRURJVFMsIE1BS0VGSUxFLCBNYWtlZmlsZSwgUkVBRE1FLCBjb21tb24vY21kX2JkaW5mby5jLAogICAgY29tbW9uL2NtZF9taWkuYywgaW5jbHVkZS9hc20tbTY4ay9ieXRlb3JkZXIuaCwgaW5jbHVkZS9hc20tbTY4ay9mZWMuaCwKICAgIGluY2x1ZGUvYXNtLW02OGsvaW8uaCwgaW5jbHVkZS9hc20tbTY4ay9tY2Z0aW1lci5oLAogICAgaW5jbHVkZS9hc20tbTY4ay9tY2Z1YXJ0LmgsIGluY2x1ZGUvYXNtLW02OGsvcHRyYWNlLmgsCiAgICBpbmNsdWRlL2FzbS1tNjhrL3UtYm9vdC5oLCBsaWJfbTY4ay9NYWtlZmlsZSwgbGliX202OGsvYm9hcmQuYywKICAgIGxpYl9tNjhrL3RpbWUuYywgbmV0L2V0aC5jIGFuZCBydGMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5MzE3MmYwOGQ2YWZiM2YzNGQ4YTJmMjZlZTBlZTg3NDI2MWNmMjcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBKdW4gMTcgMTk6MDQ6MTEgMjAwNyArMDIwMAoKICAgIFtmaXhdIGVtYWlsIHJlcGFyYXRpb24KCmNvbW1pdCAzNjY2YWZmZmU3YmFmODU5YzZhZTBjZTJiZWJiYzhhYjdlNTEyZGRjCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gSnVuIDE3IDE5OjAzOjIxIDIwMDcgKzAyMDAKCiAgICBbRklYXSBmaXggbWljcm9ibGF6ZSBmaWxlIHBlcm1pdGlzc2lvbgoKY29tbWl0IGU3Mzg0NmI3Y2YxZTI5YWU2MzViZjliYjU1NzAyNjk2NjNkZjJlZTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMTUgMTE6MzM6NDEgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIENoYW5nZSBsd21vbjUgcG9ydCB0byB3b3JrIHdpdGggcmVjZW50IDQ0MCBleGNlcHRpb24gcmV3b3JrCgogICAgTm93IENPTkZJR180NDAgaGFzIHRvIGJlIGRlZmluZWQgaW4gYWxsIFBQQzQ0MCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVmYTM1Y2YxMmQ5MTRkNGNhYmE5NDJhY2Q1YTZjNDVmMjE3ZGUzMDIKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1biAxNSAxMToxOToyOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbiB1cCA0NDAgZXhjZXB0aW9ucyBoYW5kbGluZwoKICAgIC0gSW50cm9kdWNlZCBkZWRpY2F0ZWQgc3dpdGNoZXMgZm9yIGJ1aWxkaW5nIDQ0MCBhbmQgNDA1IGltYWdlcyByZXF1aXJlZAogICAgICBmb3IgNDQwLXNwZWNpZmljIG1hY2hpbmUgaW5zdHJ1Y3Rpb25zIGxpa2UgJ3JmbWNpJyBldGMuCgogICAgLSBFeGNlcHRpb24gdmVjdG9ycyBtb3ZlZCB0byB0aGUgcHJvcGVyIGxvY2F0aW9uIChfc3RhcnQgbW92ZWQgYXdheSBmcm9tCiAgICAgIHRoZSBjcml0aWNhbCBleGNlcHRpb24gaGFuZGxlciBzcGFjZSwgd2hpY2ggaXQgb2NjdXBpZWQpCgogICAgLSBDcml0aWNhbElucHV0IG5vdyBzZXJ2aWNlZCAod2l0aCBkZWZhdWx0IGhhbmRsZXIpCgogICAgLSBNYWNoaW5lQ2hlY2sgcHJvcGVybHkgc2VydmljZWQgKGFkZGVkIGEgZGVkaWNhdGVkIGhhbmRsZXIgYW5kIHJldHVybgogICAgICBzdWJyb3V0aW5lKQoKICAgIC0gT3ZlcmFsbCBjbGVhbnVwIG9mIGV4Y2VwdGlvbnMgZGVjbGFyZWQgd2l0aCBTVERfRVhDRVBUSU9OIG1hY3JvICh1bnVzZWQsCiAgICAgIHVuaGFuZGxlZCBhbmQgdGhvc2Ugbm90IHJlbGV2YW50IGZvciA0eHggd2VyZSBlbGltaW5hdGVkKQoKICAgIC0gRWxpbWluYXRlZCBMaW51eCBsZWZ0b3ZlcnMsIHJlbW92ZWQgZGVhZCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI3NjVmZmI3NzNmNWEzY2Q1YWE5NGVjNzZiNmEwNTI3NmI4Y2Q1YjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMTUgMDg6MTg6MDEgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEFkZCBpbml0aWFsIGx3bW9uNSBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIExpZWJoZXJyIGx3bW9uNSBib2FyZCBldXFpcHBlZAogICAgd2l0aCBhbiBBTUNDIDQ0MEVQeCBQb3dlclBDLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NWY3MzczNzZkNWZmM2Q1ZjBkNDVhOGI2NTc2ODYzMjZkMTc1MzA3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDE1IDA3OjM5OjQzIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBFeHRlbmQgNDR4IEdQSU8gc2V0dXAgd2l0aCBkZWZhdWx0IG91dHB1dCBzdGF0ZQoKICAgIFRoZSBib2FyZCBjb25maWcgYXJyYXkgQ0ZHXzQ0MF9HUElPX1RBQkxFIGZvciB0aGUgcHBjNDQwIEdQSU8gc2V0dXAKICAgIGlzIGV4dGVuZGVkIHdpdGggdGhlIGRlZmF1bHQgR1BJTyBvdXRwdXQgc3RhdGUgKGxldmVsKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGJjYTIwODUxOGU1ZTdmMDFhNjQyMDU4OGQxY2Q2ZTYwZGI3NGMyYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1biAxNCAxMToxNDozMiAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gRXh0ZW5kIHByb2dyYW1fdGxiKCkgd2l0aCB2aXJ0dWFsICYgcGh5c2ljYWwgYWRkcmVzc2VzCgogICAgTm93IHByb2dyYW1fdGxiKCkgYWxsb3dzIHRvIHByb2dyYW0gYSBUTEIgKG9yIG11bHRpcGxlKSB3aXRoCiAgICBkaWZmZXJlbnQgdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzc2VzLiBXaXRoIHRoaXMgY2hhbmdlLCBub3cgb25lCiAgICBwaHlzaWNhbCByZWdpb24gKGUuZy4gU0RSQU0pIGNhbiBiZSBtYXBwZWQgMiB0aW1lcywgb25jZSB3aXRoIGNhY2hlcwogICAgZGlhYmxlZCBhbmQgb25jZSB3aXRoIGNhY2hlcyBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OTEyMTIxZjdlZDgwNGVhNThmZDYyZjNmMjMwYjVkY2ZjMzU3ZDg4CkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMjMgMTk6MDI6NDEgMjAwNyArMDIwMAoKICAgIENoYW5nZSAncmVwZWF0YWJsZScgYXR0cmlidXRlIG9mIHNvbWUgY29tbWFuZHMgdG8gc2Vuc2libGUgdmFsdWVzLgoKICAgIE1vc3QgcHJvbWluZW50bHkgdGhpcyBjaGFuZ2VzICdlcmFzZScgdG8gYmUgbm9uLXJlcGVhdGFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNWFmYjIwMjA5M2Y2YTAwMTc5N2RiOTJjZjY5NWI5M2E3MGVhOWFiNApBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDIzIDE4OjQ3OjQ4IDIwMDcgKzAyMDAKCiAgICBGaXggJ3J1bicgbm90IHRvIGNvbnRpbnVlIGFmdGVyIGludGVycnVwdGVkIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA5Yjc0NjRhMmM4ODYxNGUxMDYxZjUwOWM0ODkzMGEzZDI0MGQxYTM1CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxNToxNDoyNCAyMDA3ICswMjAwCgogICAgVVNCOiBUaGlzIHBhdGNoIGZpeCByZWFkbCBpbiBvaGNpIHN3YXAgcmVnIGFjY2Vzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhmODQxNmZhZGE5ZmFmOTRiOWE5MmYyMWZlNjAwMDY0M2NiNTIxZDUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVuIDggMTQ6NTI6MjIgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IEFkZCBGbGF0IERldmljZSBUcmVlIHN1cHBvcnQsIHVwZGF0ZSBkZWZhdWx0IGVudi4gYWNjb3JkaW5nbHkuCgogICAgU2lnbmVkLW9mZi1ieTogSmFuIFdyb2JlbCA8d3JyQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkwNDVmMzNjMDIzZjY5ODY2MGEyZTQ1ZDFiMjE5NGMwNzExYWJlYmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDggMTA6MjQ6NTggMjAwNyArMDIwMAoKICAgIEZpeCBjb25maWcgcHJvYmxlbXMgb24gU0MzIGJvYXJkOyBtYWtlIGlkZV9yZXNldF90aW1lb3V0IHdvcmsuCgpjb21taXQgZmJhM2ZiMDQ0OWI4YTU0NTQyYWVkMWU3MjlkZTc2ZTdmNWEyZmYxYgpBdXRob3I6IEJlbm/DrnQgTW9uaW4gPGJtb25pbkBhZGVuZW8uZXU+CkRhdGU6CUZyaSBKdW4gOCAwOTo1NToyNCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBmaXggZ3BpbyBzZXR0aW5nIHdoZW4gdXNpbmcgQ0ZHXzQ0MF9HUElPX1RBQkxFCgogICAgU2V0IHRoZSBjb3JyZWN0IHZhbHVlIGluIEdQSU94X1RDUiB3aGVuIGNvbmZpZ3VyaW5nIHRoZSBncGlvCiAgICB3aXRoIENGR180NDBfR1BJT19UQUJMRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW5vaXQgTW9uaW4gPGJtb25pbkBhZGVuZW8uZXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjUzOWVkYzA3NmNmZTUyYmZmOTE5ZGQ1MTJiYThkN2FmMGUyMjA5MgpBdXRob3I6IFZhZGltIEJlbmRlYnVyeSA8dmJlbmRlYkBnb29nbGUuY29tPgpEYXRlOglUaHUgTWF5IDI0IDE1OjUyOjI1IDIwMDcgLTA3MDAKCiAgICBjb3NtZXRpYyBjaGFuZ2VzIHRvIGJjbTU3MHggZHJpdmVyCgogICAgVGhpcyBpcyBhIGNvc21ldGljIG9ubHkgY2hhbmdlcyBzdWJtaXNzaW9uLgogICAgSXQgYWZmZWN0cyBmaWxlcyByZWxldmFudCB0byBiY201NzB4IGRyaXZlci4KICAgIHRoZSBjb21tYW5kcyB1c2VkIHRvIGdlbmVyYXRlIHRoaXMgY2hhbmdlIHdhcwoKICAgIGNkIGRyaXZlcnMKICAgIExpbmRlbnQgLXBjcyAtbDgwICBiY201NzB4LmMgICBiY201NzB4X2xtLmggICBiY201NzB4X21tLmgJdGlnb24zLmMgIHRpZ29uMy5oCgogICAgVGhlIEJNVyB0YXJnZXQgKHRoZSBvbmx5IG9uZSB1c2luZyB0aGlzIGNoaXAgc28gZmFyKSBidWlsZHMgY2xlYW5seSwgdGhlCiAgICBgYmVmb3JlIGFuZCBhZnRlcicgZ2VuZXJhdGVkIG9iamVjdCBmaWxlcyBmb3IgZHJpdmVycy9iY201NzB4LmMgYW5kCiAgICBkcml2ZXJzL3RpZ29uMy5vIGFyZSBpZGVudGljYWwgYXMgcmVwb3J0ZWQgYnkgb2JqZHVtcCAtZAoKICAgIFNpZ25lZC1vZmYtYnk6IFZhZGltIEJlbmRlYnVyeSA8dmJlbmRlYkBnb29nbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNzI1NjcxY2NkMmNkMDRjOWViYzUwYzllNWE5NGRkOGNiYWRlNjZiNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxNjoyNjo1NiAyMDA3ICswMjAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXA7IGdlbmVyYXRlIG5ldyBDSEFOR0VMT0cgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE5ZDc2M2MzNWUwYjU1NjhlYWYwYjhhZGJmN2E2OGNjZmU3ZmEyNDMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDk6NDQgMjAwNyArMDIwMAoKICAgIFRSQUIsIFVTQjogdXBkYXRlIHRyYWIgYm9hcmQgY29uZmlndXJhdGlvbiBmb3IgdXNlIG9mIGdlbmVyaWMgb2hjaSBkcml2ZXIKCmNvbW1pdCBkYWNlNDVhY2QxYzEzNTdkYWE5MzIyMDk5ZDA3YzlhOWUwOGIwMDI0CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQ5OjQzIDIwMDcgKzAyMDAKCiAgICBVU0I6IG9oY2kgZml4ZXMgYW5kIGNsZWFudXAgZm9yIHBwYzR4eCBhbmQgeW9zZW1pdGUgYm9hcmQuCgpjb21taXQgNzI2NTc1NzBiNjE2MzVjNzRmYTBjM2YwZTllN2QwNjcxYTlkMDhkZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0OTo0MyAyMDA3ICswMjAwCgogICAgVVNCOiBvaGNpIGZpeGVzIGFuZCBjbGVhbnVwIGZvciBtcGM1eHh4IGFuZCBJY2VDdWJlIGJvYXJkIGNvbmZpZwoKY29tbWl0IGZjNDNiZTQ3OGYyYWEzN2NlMzhhY2Q4NTM1NTAzODg2NmU0MTYyYWYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDk6MzUgMjAwNyArMDIwMAoKICAgIFVTQi9PSENJOiBlbmRpYW5uZXNzIGNsZWFudXAgaW4gdGhlIGdlbmVyaWMgb2hjaSBkcml2ZXIKCmNvbW1pdCBjNDQwYmZlNmQ2ZDkyZDY2NDc4YTdlODQ0MDJiMzFmNDg0MTM2MTdiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDI6MTMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciBBTUNDIEFjYWRpYSAoNDA1RVopIGV2YWwgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIHRoZSBBTUNDIEFjYWRpYSBldmFsIGJvYXJkLgoKICAgIFBsZWFzZSBtYWtlIHN1cmUgdG8gY29uZmlndXJlIGp1bXBlciBKNyB0byBwb3NpdGlvbiAyLTMgd2hlbiBib290aW5nCiAgICBmcm9tIE5PUiwgYW5kIHRvIHBvc2l0aW9uIDEtMiB3aGVuIGJvb3RpbmcgZm9yIE5BTkQuCgogICAgSSBhbHNvIGFkZGVkIGEgYm9hcmQgY29tbWFuZCB0byBjb25maWd1cmUgdGhlIEkyQyBib290c3RyYXAgRUVQUk9NCiAgICB2YWx1ZXMuIFJpZ2h0IG5vdyBvbmx5IDI2N01IeiBpcyBzdXBwb3J0IGZvciBib290aW5nIGVpdGhlciB2aWEgTk9SCiAgICBvciBOQU5EIEZMQVNILiBIZXJlIHRoZSB1c2FnZToKCiAgICA9PiBib290c3RyYXAgMjY3IG5vcgk7dG8gY29uZmlndXJlIHRoZSBib2FyZCBmb3IgMjY3TUh6IE5PUiBib290aW5nCiAgICA9PiBib290c3RyYXAgMjY3IG5hbmQJO3RvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgZm9yIDI2N01IeiBOTkFORCBib290aW5nCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE4MTM1MTI1ZjkwOTk0OGI4NWQxZDY4ODFhYjRhYzBlZmI0YTFjNTgKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjE0IDIwMDcgKzAyMDAKCiAgICBGaWxlcyBpbmNsdWRlL2xpbnV4L2J5dGVvcmRlci97YmlnLGxpdHRsZX1fZW5kaWFuLmggZGVmaW5lCiAgICBfX0JJR19FTkRJQU4gYW5kIF9fTElUVExFX0VORElBTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBhODFkMWMwYjg1YjEzZTlkNDVmMmQ4N2RlOTZhNTFhNmUwZWYwZjgyCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjE0IDIwMDcgKzAyMDAKCiAgICBBZGQgVVNCIFBDSS1PSENJLCBVU0Iga2V5Ym9hcmQgYW5kIGV2ZW50IHBvbGwgc3VwcG9ydCB0byB0aGUKICAgIE1QQzg2NDFIUENOIGJvYXJkIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGRhZTE0Y2U4ZmJkZjM4MDAxN2RjNTRmMTcyMjE4ZTdkMmFjYzg4OQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxNCAyMDA3ICswMjAwCgogICAgVVNCIFBDSS1PSENJLCBpbnRlcnJ1cHQgcGlwZSBhbmQgdXNiIGV2ZW50IHBvbGwgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkZWQgVVNCIFBDSS1PSENJIGNoaXBzIHN1cHBvcnQsIGludGVycnVwdCBwaXBlIHN1cHBvcnQKICAgIGFuZCB1c2IgZXZlbnQgcG9sbCBzdXBwb3J0LiBGb3Igc3VwcG9ydGluZyB0aGUgVVNCIGludGVycnVwdCBwaXBlLCB0aGUKICAgIGdsb2JlIHVyYl9wcml2IGlzIG1vdmVkIHRvIHB1cmIgaW4gZWQgc3RydWN0LiBOb3csIHdlIGNhbiBwcm9jZXNzCiAgICBzZXZlcmFsIHVyYnMgYXQgb25lIHRpbWUuIFRoZSBpbnRlcnJ1cHQgcGlwZSBzdXBwb3J0IGNvZGVzIGFyZSBwb3J0ZWQKICAgIGZyb20gTGludXgga2VybmVsIDIuNC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZkY2ZhYTFiMDIyNjhiMjg5OWUzNzRiMzVhZGY5MzZjOTExYTQ3ZWIKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTMgMjAwNyArMDIwMAoKICAgIFVTQiBldmVudCBwb2xsIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgVVNCIGV2ZW50IHBvbGwgc3VwcG9ydCwgd2hpY2ggY291bGQgYmUgdXNlZCBpbiB1c2JrYmQKICAgIGFuZCBvdGhlciB1c2IgZGV2aWNlcyBkcml2ZXIgd2hlbiB0aGUgYXN5bmNocm9ub3VzIGludGVycnVwdAogICAgcHJvY2Vzc2luZyBpcyBzdXBwb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbQoKY29tbWl0IDlhMWQwMGZhNDdjMWUwNWUzZmRiNjBiMzMyMTNhZjRlMThkNGMxOGUKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjEyIDIwMDcgKzAyMDAKCiAgICBJU1AxMTZ4OiBkZWxheSBmb3IgY3JhcHB5IFVTQiBrZXlzCgogICAgVXNpbmcgc29tZSAodmVyeSkgc2xvdyBVU0Iga2V5cyBjYXVzZSB0aGUgVVNCIGhvc3QgY29udHJvbGxlciBidWZmZXJzCiAgICBhcmUgbm90IHJlYWR5IHRvIGJlIHJlYWQgYnkgdGhlIENQVSBzbyB3ZSBuZWVkIGFuIGV4dHJhIGRlbGF5IGJlZm9yZQogICAgcmVhZGluZyB0aGUgVVNCIHN0b3JhZ2UgZGF0YS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCAwOTQ0NDE0MzY3MGM5YzIyNDNjYjdhYmE5ZjcwYjM3MTNkMzNiZWQxCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjEyIDIwMDcgKzAyMDAKCiAgICBDaGFuZ2UgZHVwbGljYXRlIHVzYl9jcHVfaW5pdF9mYWlsIHRvIHVzYl9ib2FyZF9pbml0X2ZhaWwKCiAgICBUaGFua3MgdG8gTGlldyBUc2kgQ2h1bmcgPFRzaS1jaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+IGZvciBwb2ludGluZwogICAgdGhpcyBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAzMjkyMmNkYzQ3MGZkZmQzOWJlYTBjMWM0ZjU4MmQzZmIzNDA0MjFlCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biA1IDEyOjMwOjUyIDIwMDcgLTA1MDAKCiAgICBtcGM4NjQxIGltYWdlIHNpemUgY2xlYW51cAoKICAgIGU2MDAgZG9lcyBub3QgaGF2ZSBhIGJvb3RwZyByZXN0cmljdGlvbi4KICAgIE1vdmUgdGhlIHZlcnNpb24gc3RyaW5nIHRvIGJlZ2lubmluZyBvZiBpbWFnZSBhdCBmZmYwMDAwMC4KICAgIFJlc2V0dmVjLlMgaXMgbm90IG5lZWRlZC4KICAgIFVwZGF0ZSBmbGFzaCBjb3B5IGluc3RydWN0aW9ucy4KICAgIEFkZCB0ZnRwZmxhc2ggZW52IHZhcmlhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTNjYmUxZjkzYzU3MjJmOGViYmFkNDY4ZTMwYzA2OWEyYjUxMTA5NwpBdXRob3I6IEJlbm/DrnQgTW9uaW4gPGJtb25pbkBhZGVuZW8uZXU+CkRhdGU6CU1vbiBKdW4gNCAwODozNjowNSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBGaXggcHBjNHh4IGJvb3RzdHJhcCBsZXR0ZXIgZGlzcGxheWVkIG9uIHN0YXJ0dXAKCiAgICBUaGUgYXR0YWNoZWQgcGF0Y2ggaXMgbWFpbmx5IGNvc21ldGljLCBhbGxvd2luZyB1LWJvb3QgdG8KICAgIGRpc3BsYXkgdGhlIGNvcnJlY3QgYm9vdHN0cmFwIG9wdGlvbiBsZXR0ZXIgYWNjb3JkaW5nIHRvIHRoZQogICAgZGF0YXNoZWV0cy4KCiAgICBUaGUgb3JpZ2luYWwgcGF0Y2ggd2FzIGV4dGVuZGVkIHdpdGggNDA1RVogc3VwcG9ydCBieSBTdGVmYW4KICAgIFJvZXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbm9pdCBNb25pbiA8Ym1vbmluQGFkZW5lby5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1YjEzMTNmYjI3NThmZmNlOGI2MjQ0NTdmNzc3ZDhjYzY3MDk2MDhkCkF1dGhvcjogTmlraXRhIFYuIFlvdXNoY2hlbmtvIDx5b3VzaEBkZWJpYW4ub3JnPgpEYXRlOglXZWQgTWF5IDIzIDEyOjQ1OjE5IDIwMDcgKzA0MDAKCiAgICBmaXggY29tcGlsYXRpb24gcHJvYmxlbSBmb3IgbXBjODM0OWl0eCBDRkdfUkFNQk9PVAoKICAgIEN1cnJlbnQgaW5jbHVkZS9jb25maWdzL01QQzgzNDlJVFguaCBkb2VzIGNvbnRhaW4gc29tZSBzdXBwb3J0IGZvciBidWlsZGluZwogICAgaW1hZ2UgdGhhdCB3aWxsIGJlIHN0YXJ0ZWQgZnJvbSBtZW1vcnkgKHdpdGhvdXQgcHV0dGluZyBpbiBpbnRvIGZsYXNoKS4KICAgIEl0IGNvdWxkIGJlIHRyaWdnZXJlZCBieSBidWlsZGluZyB3aXRoIFRFWFRfQkFTRSBzZXQgdG8gYSBsb3cgdmFsdWUuCgogICAgSG93ZXZlciwgdGhpcyBzdXBwb3J0IGlzIGluY29tcGxldGU6IHVzaW5nIG9mIGxvdyBURVhUX0JBU0UgY2F1c2VzCiAgICBkZWZpbmluZyBjb25maWd1cmF0aW9uIG1hY3JvcyBpbiBpbmNvbnNpc3RlbnQgd2F5LCB3aGljaCBsYXRlciBsZWFkcwogICAgdG8gY29tcGlsYXRpb24gZXJyb3JzLiBJbiBwYXJ0aWN1bGFyLiBmbGFzaCBzdXBwb3J0IGlzIGJlaW5nIGRpc2FibGVkLAogICAgYnV0IHRoZW4gZmxhc2ggc3RydWN0dXJlcyBnZXQgcmVmZXJlbmNlZC4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMsIG1ha2luZyBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRoIGxvdyBURVhUX0JBU0UuCgogICAgU2lnbmVkLU9mZi1CeTogTmlraXRhIFlvdXNoY2hlbmtvIDx5b3VzaEBkZWJpYW4ub3JnPgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGEzNjRmMDk3MGRlNDk5NDlkNjM1ZTYwYWNjZjQ2M2M2NDQzZWY4YwpBdXRob3I6IE5pa2l0YSBWLiBZb3VzaGNoZW5rbyA8eW91c2hAZGViaWFuLm9yZz4KRGF0ZToJV2VkIE1heSAyMyAxMjo0NToyNSAyMDA3ICswNDAwCgogICAgYWRkIG1pc3NpbmcgJ2NvbnNvbGUnIHZhciB0byBkZWZhdWx0IG1wYzgzNDlpdHggY29uZmlnCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxOGQxNTZlYjM3YzkwZmFkYzhlYzdhODFhM2I4OTE3NjE2MWY4NWI3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTY6MTg6MTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG1pc3NpbmcgZmlsZSBmb3IgQmFtYm9vIE5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE1NWE5NjQ3OGEwODgxZTZkYTk2Y2JiYmNmMzQ5NTJkNmEzYjFiNGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNTo1ODoxOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVbmRvIFNlcXVvaWEgcGF0Y2ggZm9yIGR5bmFtaWMgRUJDIHNwZWVkIHN1cHBvcnQgb2YgODNNSHoKCiAgICBUaGlzIHBhdGNoIHVuZG9lcyB0aGUgcGF0Y2ggYnkgSmVmZiBNYW5uIHdpdGggY29tbWl0LWlkIGFkYTQ2OTdkLiBBcwogICAgc3VnZ2VzdGVkIGJ5IEFNQ0MgaXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgRUJDCiAgICBzcGVlZCBhZnRlciBib290dXAuIFNvIHdlIHVuZG8gdGhpcyBjaGFuZ2UgdG8gYmUgb24gdGhlIHNhZmUgc2lkZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWQ5MDk2MDQzZThmNzEzZDRiZjE3NDNkMzJlMTQ1OWU2YTExNjQ0YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjI5OjA0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBTZXF1b2lhIE5BTkQgYm9vdGluZyBzdXBwb3J0IHdpdGggRUNDCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNmOTU5YzdkNjY4NzU2N2MzMDhlMzY2ZTk1ODFlMWE1YWZmNWNjNWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToyNzoxMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIEFNQ0MgQmFtYm9vICg0NDBFUCkgZXZhbCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQmFtYm9vIGV2YWwgYm9hcmQuCiAgICBTaW5jZSB0aGUgTkFORC1TUEwgYm9vdCBpbWFnZSBpcyBsaW1pdGVkIHRvIDRrYnl0ZXMsIHRoaXMgdmVyc2lvbgogICAgb25seSBzdXBwb3J0cyB0aGUgb25ib2FyZCA2NE1CeXRlcyBvZiBERFIuIFRoZSBESU1NIG1vZHVsZXMgY2FuJ3QgYmUKICAgIHN1cHBvcnRlZCwgc2luY2UgdGhlIHNldHVwIGNvZGUgZm9yIEkyQyBESU1NIGF1dG9kZXRlY3Rpb24gYW5kCiAgICBjb25maWd1cmF0aW9uIGlzIHRvbyBiaWcgZm9yIHRoaXMgTkFORCBib290bG9hZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MmJlNTZmNTNjOGIxMDc4NjhlNjEyNWM4NTI0YWU4NDI5M2U5NWE3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MjM6MDQgMjAwNyArMDIwMAoKICAgIE5BTkQ6IEFkZCBFQ0Mgc3VwcG9ydCB0byBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBpbiBuYW5kX3NwbC9uYW5kX2Jvb3QuYwoKICAgIFRoZSBVLUJvb3QgTkFORCBib290aW5nIHN1cHBvcnQgaXMgbm93IGV4dGVuZGVkIHRvIHN1cHBvcnQgRUNDCiAgICB1cG9uIGxvYWRpbmcgb2YgdGhlIE5BTkQgVS1Cb290IGltYWdlLgoKICAgIFRlc3RlZCBvbiBBTUNDIFNlcXVvaWEgKDQ0MEVQeCkgYW5kIEJhbWJvbyAoNDQwRVApLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDcxZGIwN2ZiYjY1YTg0MWZmYzlmNGYxMTI1NjJiOTQ1MjMwZjk4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MTk6MjkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUHJlcGFyZSBCYW1ib28gcG9ydCBmb3IgTkFORCBib290aW5nIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlICJub3JtYWwiIEJhbWJvbyBOT1IgYm9vdGluZyBwb3J0LCBzbwogICAgdGhhdCBpdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIGNvbWluZyBzb29uIE5BTkQgYm9vdGluZwogICAgQmFtYm9vIHBvcnQuCgogICAgSXQgYWxzbyBlbmFibGVzIHRoZSAybmQgTkFORCBmbGFzaCBvbiB0aGUgQmFtYm9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1M2FkMDIxMDNmYjhiZTQxMzhhOTkzN2E4YWI5MWZjZGZmN2I0OTg3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MTY6NTggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGluX2JlMzIoKSBmdW5jdGlvbnMgYW5kIGZyaWVuZHMgdG8gbGF0ZXN0IExpbnV4IHZlcnNpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTFkYTA5Y2ZiY2UwYzFkZTA1ZDZkODRhYTgzNjNkNjY2ZmE3ZWEzYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjE1OjEyIDIwMDcgKzAyMDAKCiAgICBOQU5EOiBBZGQgaGFyZHdhcmUgRUNDIHN1cHBvcnQgdG8gdGhlIFBQQzR4eCBOQU5EIGRyaXZlciBuZGZjLmMKCiAgICBUaGlzIHBhdGNoIGFkZHMgaGFyZHdhcmUgRUNDIHN1cHBvcnQgdG8gdGhlIE5ERkMgZHJpdmVyLiBJdCBhbHNvCiAgICBjaGFuZ2VzIHRoZSByZWdpc3RlciBhY2Nlc3MgZnJvbSB1c2luZyB0aGUgInNpbXBsZSIgaW4zMi9vdXQzMgogICAgZnVuY3Rpb25zIHRvIHRoZSBpbl9iZTMyL291dF9iZTMyIGZ1bmN0aW9ucywgd2hpY2ggbWFrZSBzdXJlCiAgICB0aGF0IHRoZSBhY2Nlc3MgaXMgY29ycmVjdGx5IHN5bmNlZC4gVGhpcyBpcyB0aGUgb25seSByZWNvbW1lbmRlZAogICAgYWNjZXNzIHRvIFNvQyByZWdpc3RlcnMgaW4gdGhlIGN1cnJlbnQgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxN2I1ZTg2MjI4N2NjYTc2ZjE5ZGNmOGI3NDFlNjFhN2QwNjYxN2YyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MTI6MTUgMjAwNyArMDIwMAoKICAgIE5BTkQ6IFVwZGF0ZSBuYW5kX2VjYy5jIHRvIGxhdGVzdCBMaW51eCB2ZXJzaW9uCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBuYW5kX2VjYyBjb2RlIHRvIHRoZSBsYXRlc3QgTGludXggdmVyc2lvbi4KICAgIFRoZSBtYWluIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGUgbW9yZSBjb21wYWN0IGNvZGUuIFRoaXMgbWFrZXMKICAgIGl0IHBvc3NpYmxlIHRvIGluY2x1ZGUgdGhlIEVDQyBjb2RlIGludG8gdGhlIE5BTkQgYm9vdGxvYWRlcgogICAgaW1hZ2UgKE5BTkRfU1BMKSBmb3IgUFBDNHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkMmQ0MzI3NjBkMjE5OWQwZTg1NThmZGQ5ZDE3ODliODEzMWFiY2Y3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MDk6NTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogNDR4IEREUiBkcml2ZXIgY29kZSBjbGVhbnVwIGFuZCBzbWFsbCBmaXggZm9yIEJhbWJvbwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlNGJiZWQyODAzYTJhZDA1MjFjNzM2MmY1ZDNlMDY1Zjk5YWJhZWRjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTM6NDU6MjQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIEx1YW4gY29uZmlnIGZpbGUgdG8gc3VwcG9ydCBFQ0MKCiAgICBXaXRoIHRoZSB1cGRhdGVkIDQ0eCBERFIyIGRyaXZlciB0aGUgTHVhbiBib2FyZCBub3cgc3VwcG9ydHMKICAgIEVDQyBnZW5lcmF0aW9uIGFuZCBjaGVja2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzE4N2RiNzM0OTFjOGRlMGZiNTZlZmI1ZTUxMzRiYTVlYzQ0MzA4OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDEzOjQ1OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NHhfc3BkX2RkcjIgY29kZSAoNDQwU1AvNDQwU1BlKQoKICAgIEFkZCBjb25maWcgb3B0aW9uIGZvciAxODAgZGVncmVlIGFkdmFuY2UgY2xvY2sgY29udHJvbCBhcyBuZWVkZWQKICAgIGZvciB0aGUgQU1DQyBMdWFuIGV2YWwgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVlMTUyOTgzOGFiYmZhYTM1ZjE0ZTNmZmJlYWFiYTY5MzE1OTQ3NWYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDMxIDE3OjIwOjA5IDIwMDcgKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU1RYIEdQM1NTQSAoc3R4c3NhKSBCb2FyZCB3aXRoIDQgTWlCIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzA0OTI4OGZiMWYxNmYxYjMxNzE0MDIyNmNkZWJkMDdiZDQxNjM5NQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MjY6NDYgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IENvZGUgY2xlYW51cCwgZml4IG9mIGEgdHlwbyBpbiBPRl9TVERPVVRfUEFUSC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDQ1MjBmZDRkMmM0NTBkYTQ5NjM3MjE2YWEwZTUzNzM5YjYxYzYwYWMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjA2OjM2IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgc3VwcG9ydCBmb3IgcmVkdW5kYW50IGVudmlyb25tZW50LgoKICAgIEVuYWJsZSByZWR1bmRhbnQgZW52aXJvbm1lbnQsIGFkZCBhIE1URCBwYXJ0aXRpb24gZm9yIGl0OyBhbHNvIGFkZCBlbnYuCiAgICB2YXJpYWJsZSBjb21tYW5kIGZvciBwYXNzaW5nIE1URCBwYXJ0aXRpb25zIHRvIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhMjZlYWJlZWMzMTc0NmYwNmQzMDkxMDM2OTA4OTI4MDU2OTZlMzQ0CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzowNToxMSAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQ2hhbmdlIG1heGltdW0gY29uc29sZSBidWZmZXIgc2l6ZSBmcm9tIDI1NiB0byAxMDI0IGJ5dGVzLgoKICAgIEFsbG93IHBhc3NpbmcgbG9uZ2VyIGNvbW1hbmQgbGluZSB0byB0aGUga2VybmVsIC0gdXNlZnVsIGVzcGVjaWFsbHkKICAgIGZvciBwYXNzaW5nIE1URCBwYXJ0aXRpb24gbGF5b3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5MTYwYjk2ZjcxNDgzYTExNmRlODFjNjg5ODVlOGVlMzA2ZDM2NzY0CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzowNDoxOCAyMDA3ICswMjAwCgogICAgRml4OiBBZGQgbWlzc2luZyBOVUxMIHRlcm1pbmF0aW9uIGluIHN0cmluZ3MgZXhwYW5kZWQgYnkgbWFjcm9zIHBhcnNlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNjMwZWM4NGFlZjcyMjhmYzFkYmZiMzhkZWM3ODU0MTQwM2E3ODZjZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MDM6MzcgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IFVwZGF0ZSBFRVBST00ncyBwYWdlIHdyaXRlIGJpdHMgYW5kIHdyaXRlIGRlbGF5LgoKICAgIENoYW5nZSBFRVBST00gY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGRhdGFzaGVldDogIlRoZSAyNEMwMUEgYW5kIDI0QzAyQQogICAgaGF2ZSBhIHBhZ2Ugd3JpdGUgY2FwYWJpbGl0eSBvZiB0d28gYnl0ZXMiLCBhbmQgIlRoaXMgZGV2aWNlIG9mZmVycyBmYXN0ICgxbXMpCiAgICBieXRlIHdyaXRlIi4gQWRkIDNtcyBvZiBleHRyYSBkZWxheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzAwMTI1ZTA3YzFlYmMxMjViYWI0MGUxZTE4YmNlZWQ4YmUwYzE2MgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTg6NDUgMjAwNyArMDIwMAoKICAgIE1QQzVYWFgsIE1vdGlvbi1QUk86IEZpeCBQSFkgaW5pdGlhbGl6YXRpb24gcHJvYmxlbS4KCiAgICBBZnRlciBiZWluZyByZXNldCBpbiBtcGM1eHh4X2ZlY19pbml0X3BoeSgpLCBQSFkgZ29lcyBpbnRvIEZYIG1vZGUsIGluIHdoaWNoCiAgICBuZXR3b3JraW5nIGRvZXMgbm90IGZ1bmN0aW9uLiBUaGlzIGNvbW1pdCBzd2l0Y2hlcyBQSFkgdG8gVFggbW9kZSBieSBjbGVhcmluZwogICAgdGhlIEZYX1NFTCBiaXQgb2YgTW9kZSBDb250cm9sIFJlZ2lzdGVyLiBJdCBhbHNvIHJldmVyc2VzIGNvbW1pdAogICAgMDA4ODYxYTJmM2VmMmMwNjI3NDRkNzMzNzg3YzdlNTMwYTFiODc2MSwgaS5lLiwgYSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkzYjc4ZjUzNGE2ZTcwOGI0Y2YxYTRmZmI0ZDg0MzhjNjdhMDA3ZGIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjU3OjE1IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIHRlbXBlcmF0dXJlIHNlbnNvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzc1ZTYzOTYzMGNjMTMyZGMxOWNkMWVjZGE1OTIyYzBkYjBiZmJiYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTU6MjMgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBkaXNwbGF5aW5nIG9mIENQTEQgcmV2aXNpb24gaW5mb3JtYXRpb24gZHVyaW5nIGJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogSmFuIFdyb2JlbCA8d3JyQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM5OTUxMmQ2YmQzOTczZjAxY2EyZmM0ODk2ZDgyOWI0NmU2OGYxNTAKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjUzOjQzIDIwMDcgKzAyMDAKCiAgICBNUEM1eHh4OiBDaGFuZ2UgbmFtZXMgb2YgZGVmaW5lcyByZWxhdGVkIHRvIElQQiBhbmQgUENJIGNsb2Nrcy4KCiAgICBCb3RoIENGR19QQ0lTUEVFRF82NiBhbmQgQ0ZHX0lQQlNQRUVEXzEzMyBhcmUgbWlzbmFtZWQsIGFzIGRlZmluaW5nCiAgICB0aGVtIGRvZXMgbm90IGNhdXNlIFBDSSBvciBJUEIgY2xvY2tzIHRvIHJ1biBhdCB0aGUgc3BlY2lmaWVkIHNwZWVkLgogICAgSW5zdGVhZCwgdGhleSBjb25maWd1cmUgZGl2aXNvcnMgdXNlZCB0byBjYWxjdWxhdGUgc2FpZCBjbG9ja3MuIFRoaXMKICAgIHBhdGNoIHJlbmFtZXMgdGhlIGRlZmluZXMgYWNjb3JkaW5nIHRvIHRoZWlyIHJlYWwgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhMTFjMGI4NWRjMzY2NGJiM2MxZTc4MTEzNzExODczMGM4ZjYxOWFiCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1MTo0OCAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIExFRCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbiBXcm9iZWwgPHdyckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgN2ViYjQ0NzliMDdmZjI5NGViNGQ3NmU0MjA3NTNhMDM0OWY3YzkzYgpBdXRob3I6IFVsZiBTYW11ZWxzc29uIDx1bGZAYXRtZWwuY29tPgpEYXRlOglUaHUgTWF5IDI0IDEyOjEyOjQ3IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdW05BTkRdIERlZmluZSB0aGUgVmVuZG9yIElkIGZvciBNaWNyb24gTkFORCBGbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IFVsZiBTYW11ZWxzc29uIDx1bGZAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ3NTY4OTQ3MjJjODg4ZDA5YTlmYTFkZjgzMjM3NTM3NzJkM2RjY2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMjQgMDk6NDk6MDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHNtYWxsIDQwNUVaIE9DTSBpbml0aWxpemF0aW9uIGJ1ZyBpbiBzdGFydC5TCgogICAgQXMgcG9pbnRlZCBvdXQgYnkgQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGFjbS5vcmc+IHRoaXMgcGF0Y2gKICAgIGZpeGVzIGEgc21hbGwgYnVnIGluIHRoZSA0MDVFWiBPQ00gaW5pdGlhbGl6YXRpb24uIFRoYW5rcyBmb3IKICAgIHNwb3R0aW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZDRhMTc5MDEzZDU5YTc2NDQ2NDYyZTFlYjBhOTY5ZmJhNjNlYjgxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDI0IDA4OjIyOjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBTUNDIEFjYWRpYSBzdXBwb3J0IGZvciBib2FyZCByZXZpc2lvbiAxLjEKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIEFjYWRpYSAoNDA1RVopIHN1cHBvcnQgZm9yIHRoZSBuZXcgMS4xIGJvYXJkCiAgICByZXZpc2lvbi4gSXQgYWxzbyBhZGRzIHN1cHBvcnQgZm9yIE5BTkQgRkxBU0ggdmlhIHRoZSA0eHggTkRGQy4KCiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBqdW1wZXIgSjcgbXVzdCBiZSBpbiBwb3NpdGlvbiAyLTMgZm9yIHRoaXMKICAgIE5BTkQgc3VwcG9ydC4gUG9zaXRpb24gMS0yIGlzIGZvciBOQU5EIGJvb3Rpbmcgb25seS4gTkFORCBib290aW5nCiAgICBzdXBwb3J0IHdpbGwgZm9sbG93IGxhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MjJkNTUzNjViYjU1N2UwODRkMGUzMzYyNWE2ZGVkY2M4NjYxMTBiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAyMyAxNDowOTo0NiAyMDA3IC0wNTAwCgogICAgQWRkIExJU1RfODZ4eCBNQUtFQUxMIHRhcmdldCBmb3IgUG93ZXJQQyBidWlsZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZjAwNzdhYmQ2OWY3YTdjNzU2YTkxNWI5NjEwMzczMDJiZTNlNmYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIyIDEyOjQ4OjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVzZSBkbyB7IC4uLiB9IHdoaWxlICgwKSBmb3IgQ1BSICYgU0RSIGFjY2VzcyBtYWNyb3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmYzZGZjMTM5YTgzOGIwODQxYzE1MWVmZTAwYWQ0N2RiMjM2NmU3OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyMiAxMjo0NjoxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgNDA1IHN1cHBvcnQgdG8gNHh4IE5BTkQgZHJpdmVyIG5kZmMuYwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciA0MDUgUFBDJ3MgdG8gdGhlIDR4eCBOQU5EIGRyaXZlcgogICAgbmRmYy5jLiBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB0aGUgbmV3IEFNQ0MgNDA1RVouCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEwNjAzZDc2NzY3NDI2YmU4MDNkYWRkNGZiNjg4Yjk3ZWI2OTQ4MWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMjEgMDc6NDE6MjIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gaW4gNDA1RVogT0NNIGluaXRpYWxpemF0aW9uCgogICAgQXMgc3BvdHRlZCBieSBCcnVjZSBBZGxlciB0aGlzIHBhdGNoIGZpeGVzIGFuIGluaXRpYWxpemF0aW9uIHByb2JsZW0KICAgIGZvciB0aGUgNDA1RVogT0NNLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZTNiOTU2OTA2ZWJhOWU0YWQ3OTMxNTgxZWNlZGFhZDEwZWNjY2U4CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIE1heSAxOCAxNjo0NzowMyAyMDA3ICswMTAwCgogICAgUmVkdWNlIGxpbmUgbGVuZ3RocyB0byA4MCBjaGFyYWN0ZXJzIG1heC4KCmNvbW1pdCA5M2VmNDVjOWRkZmRkOWZjMTdjNGU3NGJkOGUyZjI0NTY1ODBlYjcyCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIE1heSAxOCAxNDozNDowNyAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgcGVybWlzc2lvbnMKCmNvbW1pdCAxNDQzYTMxNDU3ZDY4ZjdlOGYwYjk0MDNlOTgzMmVjMWU3OWRjNTlkCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIE1heSAxOCAxNDozMzoxMSAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgcGVybWlzc2lvbnMKCmNvbW1pdCAyNTVhMzU3N2M4NDg3MDY0NDFkYWVlMDE3NDU0M2VmZTIwNWE3N2Y4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxNiAxNjo1MjoxOSAyMDA3IC0wNTAwCgogICAgUmVkdWNlIENPTkZJR19NUEM4WVhYX1RTRUN4IHRvIENPTkZJR19UU0VDeAoKICAgIEZvciBhbGwgcHJhY3RpY2FsIHUtYm9vdCBwdXJwb3NlcywgVFNFQ3MgZG9uJ3QgZGlmZmVyIHRocm91Z2hvdXQgdGhlCiAgICBtcGM4WzM1Nl14eCBmYW1pbGllczsgcmVkdWNlIENPTkZJR19NUEM4WVhYX1RTRUN4IHRvIENPTkZJR19UU0VDeC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcwMTI0YzI2MDJhZTJkNGM1ZDNkYmEwNWI0ODJkOTE1NDgyNDJkZTgKQXV0aG9yOiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNiAxNDo0OToxMiAyMDA3ICswMjAwCgogICAgRml4IGNvbXBpbGUgcHJvYmxlbSBjYXVzZSBteSBNaWNyb2JsYXplIG1lcmdlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgYWRhNDY5N2QwMjMwZDZkYTU1Mjg2Nzc3N2Y5OGE2N2VjM2JhMjU3OQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglXZWQgTWF5IDE2IDEzOjIzOjEwIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFJ1biBuZXcgc2VxdW9pYSBib2FyZHMgd2l0aCBhbiBFQkMgc3BlZWQgb2YgODNNSHoKCiAgICBCZWNhdXNlIHRoZSBTZXF1b2lhIGJvYXJkIGRvZXMgbm90IGJvb3Qgd2l0aCBhbiBFQkMgZmFzdGVyIHRoYW4gNjZNSHosCiAgICB0aGUgY2xvY2sgZGl2aWRlciBhcmUgY2hhbmdlZCBhZnRlciB0aGUgaW5pdGlhbCBib290IHByb2Nlc3MuCgogICAgVGhpcyBhbGxvd3MgZm9yIG1heGltdW0gY2xvY2tpbmcgc3BlZWRzICB0byBiZSBhY2hpZXZlZCBvbiBuZXdlciBib2FyZHMuCiAgICBTZXF1b2lhIGJvYXJkcyB3aXRoIDY2Ni42NiBNSHogcHJvY2Vzc29ycyByZXF1aXJlIHRoYXQgdGhlIEVCQyBkaXZpZGVyCiAgICBiZSBzZXQgdG8gMyBpbiBvcmRlciB0byBzdGFydCB0aGUgaW5pdGlhbCBib290IHByb2Nlc3MgYXQgYSBzbG93ZXIgRUJDCiAgICBzcGVlZC4gQWZ0ZXIgdGhlIGluaXRpYWwgYm9vdCBwcm9jZXNzLCB0aGUgZGl2aWRlciBjYW4gYmUgc2V0IGJhY2sgdG8gMiwKICAgIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGJvYXJkcyB0byBydW4gYXQgODMuMzMzTUh6LiBUaGlzIGlzIGJhY2t3YXJkCiAgICBjb21wYXRpYmxlIHdpdGggYm9hcmRzIHdpdGggNTMzLjMzIE1IeiBwcm9jZXNzb3JzLCBhcyB0aGVzZSBib2FyZHMgd2lsbAogICAgYWxyZWFkeSBiZSBzZXQgd2l0aCBhbiBFQkMgZGl2aWRlciBvZiAyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgoKY29tbWl0IGE3Njc2ZWE3NzMyZjNjNTk2ODA1MDc5ZmVkN2U1YzlmYWM2NTJjZmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE2IDAxOjE2OjUzIDIwMDcgKzAyMDAKCiAgICBNaW5vciBDb2RpbmcgU3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ2MmY2NGNjMjNhOTQwZWFmZTcxMmM3NzZiMzI0OWU0MTYwNzUzZDEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE2IDAwOjEzOjMzIDIwMDcgKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgQ2xlYW51cCwgbmV3IENIQU5HRUxPRwoKY29tbWl0IDMxNjJlYjgzNjkwM2M4YjI0N2ZkYzc0NzBkZDM5YmZhNjk5NmY0OTUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDE1IDIzOjM4OjA1IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCmNvbW1pdCA2NmQ5ZGJlYzFjYzI3ZDYzOThlZTZjZjg0NjM5ZGJlMTQ5NzEyNTFlCkF1dGhvcjogbXVzaHRhcSBraGFuIDxtdXNodGFxX2tAcHJvY3N5cy5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MjM6MDIgMjAwNyArMDUzMAoKICAgIEFkZCBkcml2ZXIgZm9yIFMtQVRBLWNvbnRyb2xsZXIgb24gSW50ZWwgcHJvY2Vzc29ycyB3aXRoIFNvdXRoCiAgICBCcmlkZ2UsIElDSC01LCBJQ0gtNiBhbmQgSUNILTcuCgogICAgSW1wbGVtZW50YXRpb246CgogICAgMS4gQ29kZSBpcyBkaXZpZGVkIGluIHRvIHR3byBmaWxlcy4gQWxsIGZ1bmN0aW9ucywgd2hpY2ggYXJlCiAgICAgICBjb250cm9sbGVyIHNwZWNpZmljIGFyZSBrZXB0IGluICJkcml2ZXJzL2F0YV9waWl4LmMiIGZpbGUgYW5kCiAgICAgICBmdW5jdGlvbnMsIHdoaWNoIGFyZSBub3QgY29udHJvbGxlciBzcGVjaWZpYywgYXJlIGtlcHQgaW4KICAgICAgICJjb21tb24vY21kX3NhdGEuYyIgZmlsZS4KCiAgICAyLiBSZWFkaW5nIGFuZCBXcml0aW5nIGZyb20gdGhlIFMtQVRBIGRyaXZlIGlzIGRvbmUgdXNpbmcgUElPIG1ldGhvZC4KCiAgICAzLiBEcml2ZXIgY2FuIGJlIGNvbmZpZ3VyZWQgZm9yIDQ4LWJpdCBhZGRyZXNzaW5nIGJ5IGRlZmluaW5nIG1hY3JvCiAgICAgICBDT05GSUdfTEJBNDgsIGlmIHRoaXMgbWFjcm8gaXMgbm90IGRlZmluZWQgZHJpdmVyIHVzZXMgdGhlIDI4LWJpdAogICAgICAgYWRkcmVzc2luZy4KCiAgICA0LiBTLUFUQSByZWFkIGZ1bmN0aW9uIGlzIGhvb2tlZCB0byB0aGUgRmlsZSBzeXN0ZW0sIGNvbW1hbmRzIGxpa2UKICAgICAgIGV4dDJscyBhbmQgZXh0MmxvYWQgZmlsZSBjYW4gYmUgdXNlZC4gVGhpcyBoYXMgYmVlbiB0ZXN0ZWQuCgogICAgNS4gVS1Cb290IGNvbW1hbmQgIlNBVEFfaW5pdCIgaXMgYWRkZWQsIHdoaWNoIGluaXRpYWxpemVzIHRoZSBTLUFUQQogICAgICAgY29udHJvbGxlciBhbmQgaWRlbnRpZmllcyB0aGUgUy1BVEEgZHJpdmVzIGNvbm5lY3RlZCB0byBpdC4KCiAgICA2LiBVLUJvb3QgY29tbWFuZCAic2F0YSIgaXMgYWRkZWQsIHdoaWNoIGlzIHVzZWQgdG8gcmVhZC93cml0ZSwgcHJpbnQKICAgICAgIHBhcnRpdGlvbiB0YWJsZSBhbmQgZ2V0IGluZm8gYWJvdXQgdGhlIGRyaXZlcyBwcmVzZW50LiBUaGlzIEkgaGF2ZQogICAgICAgaW1wbGVtZW50ZWQgaW4gc2FtZSB3YXkgYXMgImlkZSIgY29tbWFuZCBpcyBpbXBsZW1lbnRlZCBpbiBVLUJvb3QuCgogICAgNy4gVGhpcyBkcml2ZXIgaXMgZm9yIFMtQVRBIGluIG5hdGl2ZSBtb2RlLgoKICAgIDguIFRoaXMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIE5hdGl2ZSBjb21tYW5kIHF1ZXVpbmcgYW5kCiAgICAgICBIb3QtcGx1Z2dpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTXVzaHRhcSBLaGFuIDxtdXNodGFxX2tAcHJvY3N5cy5jb20+Cgpjb21taXQgNjQ0ZTZmYjRlYjhiZTkwZWEwNGJhMzRiNjQzYThiZjAxOWQ2ODBlMApBdXRob3I6IG11c2h0YXEga2hhbiA8bXVzaHRhcV9rQHByb2NzeXMuY29tPgpEYXRlOglNb24gQXByIDMwIDE1OjU3OjIyIDIwMDcgKzA1MzAKCiAgICBGaXhlcyBidWcgY2xlYXJpbmcgdGhlIGJzcyBzZWN0aW9uIGZvciBpMzg2CgogICAgSGksCiAgICBUaGVyZSBpcyBhIGJ1ZyBpbiB0aGUgY29kZSBvZiBjbGVhcmluZyB0aGUgYnNzIHNlY3Rpb24gZm9yIHByb2Nlc3NvcgogICAgaTM4Ni4oRmlsZTogY3B1L2kzODYvc3RhcnQuUykKICAgIEluIHRoZSBjb2RlLCBic3Nfc3RhcnQgYWRkciAoc3RhcnRpbmcgYWRkciBvZiBic3Mgc2VjdGlvbikgaXMgcHV0IGludG8KICAgIHRoZSByZWdpc3RlciAlZWF4LCBidXQgdGhlIGNvZGUgd2hpY2ggY2xlYXJzIHRoZSBic3Mgc2VjdGlvbiByZWZlcnMgdG8KICAgIHRoZSBhZGRyIHBvaW50ZWQgYnkgJWVkaS4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgYnVnIGJ5IHB1dHRpbmcgYnNzX3N0YXJ0IGludG8gJWVkaSByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNdXNodGFxIEtoYW4gPG11c2h0YXFfa0Bwcm9jc3lzLmNvbT4KCmNvbW1pdCBjMzI0M2NmN2I0OTAwNTcyNzdkNjFhY2ZmZTRhZDA5NDZmOWViNGE0CkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxNjo0NzoyOCAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIEJDTTU0NjQgUXVhZCBQaHkKCiAgICBBZGRlZCBzdXBwb3J0IGZvciBCcm9hZGNvbSdzIEJDTTU0NjQgUXVhZCBQaHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgoKY29tbWl0IDFiMzA1YmRjNzU0Yzg0NjhlMWQ1ZDg1OGY1ZGNmOGE3YTBhNGJiN2EKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDkgMDg6MTA6NTcgMjAwNyArMDgwMAoKICAgIFNlYXJjaCB0aGUgZXhjZXB0aW9uIHRhYmxlIHdpdGggbGluZWFyIGFsZ29yaXRobQoKICAgIFNlYXJjaCB0aGUgZXhjZXB0aW9uIHRhYmxlIHdpdGggbGluZWFyIGFsZ29yaXRobSBpbnN0ZWFkIG9mCiAgICBiaXNlY3RpbmcgYWxnb3JpdGhtLgogICAgQmVjYXVzZSB0aGUgZXhjZXB0aW9uIHRhYmxlIG1pZ2h0IGJlIHVuc29ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZGZhYTUwZWI4MTk2ODZiZmJhMTkyN2U4YzViOGE3MGE0ZDY1ZmQzCkF1dGhvcjogQXVicmV5LkxpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1heSAxNCAxMTo0NzozNSAyMDA3ICswODAwCgogICAgRml4IGNvbXBpbGF0aW9uIGlzc3VlcyBvbiBNQUNPU1gKCiAgICBTaW5nZWQtb2ZmLWJ5OiBNYXJjIEhvZmZtYW4gPE1hcmMuSG9mZm1hbkBhbmFsb2cuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KCmNvbW1pdCA1NmZkNzE2Mjk4NWM0MTIzMTdiYmY3NjNhMjI1ZmJhMjNjNjRmZDMxCkF1dGhvcjogU3RlcGhlbiBXaWxsaWFtcyA8c3RldmVAaWNhcnVzLmNvbT4KRGF0ZToJVHVlIE1heSAxNSAwNzo1NTo0MiAyMDA3IC0wNzAwCgogICAgRml4IGZvciBjb21waWxlIG9mIEpTRSB0YXJnZXQKCiAgICBUaGUgYXR0YWNoZWQgcGF0Y2ggZml4ZXMgdGhlIGNvbXBpbGUgb2YgdGhlIEpTRSBib2FyZCBpbiB0aGUKICAgIGRlbnggZ2l0IGFzIG9mIDE0IG1heSAyMDA3LiBJdCBpcyBhbiBleHRyZW1lbHkgc2ltcGxlIHBhdGNoLAogICAgaXQganVzdCBhZGRzIHRoZSBtaXNzaW5nIGRlZmluZSBvZiBDRkdfU1lTVEVNQUNFX1dJRFRILgoKICAgICBGaXggdG8gY29tcGlsZSBKU0UgYWdhaW5zdCAyMDA3MDUxNCBnaXQgb2YgdS1ib290Cgpjb21taXQgNjlkZjNjNGRhMGM5MzAxN2NjZWIyNWEzNjZlNzk0NTcwYmQwZWQ5OApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUByYWh1dGUuKG5vbmUpPgpEYXRlOglTdW4gTWF5IDEzIDIxOjAxOjAzIDIwMDcgKzA5MDAKCiAgICBzaDogTVM3NzUwU0Ugc3VwcG9ydC4KCiAgICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEhpdGFjaGkgTVM3NzUwU0UuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDBiMTM1Y2ZjMmU1MjRkYzI0OWI3NTA1N2I1NWRkNGNjMDk4NDJlMjcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAcmFodXRlLihub25lKT4KRGF0ZToJU3VuIE1heSAxMyAyMDo1ODowMCAyMDA3ICswOTAwCgogICAgc2g6IEZpcnN0IHN1cHBvcnQgY29kZSBvZiBTdXBlckguCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDYxOTM2NjY3ZTg2YTI1MGFlMTJmZDJkYzE4OWQzNTg4ZjBhNTllMGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMTEgMTI6MDE6NDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG10Y3ByL21mY3ByIGFjY2VzcyBtYWNyb3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQzYzQ4YmQ4NDYwNmM0MDI1YzhhN2M3MjYzZmRhNDY1ZDZlMjg0YwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1heSAxMSAxMjowMTowNiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBTZXQgYmQtPmJpX3BjaV9idXNmcmVxIG9uIDQ0MEVQeC9HUnggdG9vCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdkOThiYTc3MGE3ZWFlZmEyOWNlOTI3ZjMxYTA5NTZkZjg1YmY2NTAKQXV0aG9yOiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWF5IDEwIDE2OjU1OjUyIDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQWRkIE1URCBhbmQgSkZGUzIgc3VwcG9ydCwgYWxzbyBhZGQgZGVmYXVsdCBwYXJ0aXRpb24KICAgIGRlZmluaXRpb24uCgpjb21taXQgNjVmYjZhNjc2ZTgyMWY5NTcwYTJhMzc2ZGMyMDRiZjYxMWNlNWY4MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0Mjo0NCAyMDA3ICswMTAwCgogICAgQWRkIHRoZSBib2FyZCBkaXJlY3RvcnkgZm9yIFNNTjQyCgpjb21taXQgMTYwMTMxYmY5NjU3ODU0MTk2MjZkZjZjMzg4NzI5ZmUwYjU5Nzk5MgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0MTo1OCAyMDA3ICswMTAwCgogICAgQWRkIHRoZSBmaWxlcyBmb3IgdGhlIFNNTjQyIGJvYXJkCgpjb21taXQgNWM2ZDJiNWE1MDBmOGM0OTY3MGRlODkxMDE1MGI3OGE0MWY3ODFmYwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0MDozNCAyMDA3ICswMTAwCgogICAgUmVtb3ZlIHRoZSBkZWxldGVkIGZpbGVzIGZvciB0aGUgU01ONDIgcGF0Y2gKCmNvbW1pdCBiMGQ4ZjViZjBkMjE1YWRjOTQyNGNiMjI4YjI0ODRkYmYwN2Y3NzYxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIE1heSA5IDExOjM3OjU2IDIwMDcgKzAxMDAKCiAgICBOZXcgYm9hcmQgU01ONDIgYnJhbmNoCgpjb21taXQgMjlmM2JlMGNhZjA3OTljYTZiODlkZmQ5ODI0YzE1NjE5YTUwMDAwZgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMDoyNDozOCAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgcGVybWlzc2lvbnMKCmNvbW1pdCBiODQyODliNTk1NzMxZTg4NTFkZjQ2ZTg5Mzg0NWNjMTMyMmM5YjliCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA4IDE0OjE3OjA3IDIwMDcgLTA1MDAKCiAgICA4NjQxaHBjbjogRml4IE1ha2VmaWxlIGFmdGVyIG1vdmluZyBwaXhpcyB0byBib2FyZC9mcmVlc2NhbGUuCgogICAgVGhlIE9CSlRSRUUgIT0gU1JDVFJFRSBidWlsZCBzY2VuYXJpbyB3YXMgYnJva2VuLgogICAgVGhpcyBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNjlmNjZjNmViZTgyYmJiZDFkYTc2NmJjNGVkYTQwZWM3ZWU1YWYxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTWF5IDggMTU6NTc6NDMgMjAwNyArMDIwMAoKICAgIGFkZDogcmVhZGluZyBzcGVjaWFsIHB1cnBvc2UgcmVnaXN0ZXJzCgpjb21taXQgMWE1MGYxNjRiZWIwNjVmMzYwZmJkZGI3NjAyOTYwN2Q2YjA5OTY5OApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE0OjUyOjUyIDIwMDcgKzAyMDAKCiAgICBhZGQ6IE1pY3JvYmxhemUgVjUgZXhjZXB0aW9uIGhhbmRsaW5nCgpjb21taXQgYWI4NzRkNTA0N2U1ZDMwZGJjMWU1MTdmZjI2MDgzZWZmZmE5OGVjYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE0OjM5OjExIDIwMDcgKzAyMDAKCiAgICBhZGQ6IEZTTCBjb250cm9sIHJlYWQgYW5kIHdyaXRlCgpjb21taXQgZGUxZGUwMmE3Y2JmMDVlNmI2M2UwZDhmZmM2MjRmMTI0OTNmNmJhMwpBdXRob3I6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxMzowNTo0NCAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIEFkZCBzdXBwb3J0IGZvciBJMkMsIEVFUFJPTSBhbmQgUlRDLgoKY29tbWl0IGZhNWMyYmExMjNiMWJmODg0NTViZmMyMWRiNWU3ODZjYTA0NTAyOWQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMTA6MjM6NTYgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBBZGQgQVRBIHN1cHBvcnQuIEFkZCBDRi1ib290aW5nIGNvbW1hbmRzIHRvIHRoZSBkZWZhdWx0CiAgICBlbnZpcm9ubWVudC4KCmNvbW1pdCAwNjI0MWQ1MGEzYWIxYjIwYTBiMDhiYWVlYWZmY2FhMjNhZTRiODM5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDA5OjM5OjEyIDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQ2hhbmdlIElQQiBjbG9jayBmcmVxdWVuY3kgZnJvbSA1ME1IeiB0byAxMDBNSHouIFRoaXMKICAgIGVsaW1pbmF0ZXMgbmV0d29ya2luZyBwcm9ibGVtcyBpbiBMaW51eCAodGltZW91dHMpLgoKY29tbWl0IDFmMTM2OWMzNGI2MjliZTk0NzAyNjg0ZDQxZDNmZGRmMGY2MTkzZTcKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMDk6MjE6NTcgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBFbmFibGUgRmxhdCBEZXZpY2UgVHJlZSBzdXBwb3J0IGFuZCBtb2RpZnkgZGVmYXVsdCBlbnZpcm9ubWVudAogICAgdG8gYWxsb3cgYm9vdGluZyBvZiBGRFQtZXhwZWN0aW5nIGtlcm5lbHMuCgpjb21taXQgZmIwNWY2ZGEzNWVhMWMxNWM1NTNhYmU2ZjIzZjY1NmJmMThkYzVkYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDIzOjU4OjMxIDIwMDcgKzAyMDAKCiAgICBuZXc6IFVTRV9NU1JfSU5UUiBzdXBwb3J0Cgpjb21taXQgMDA4ODYxYTJmM2VmMmMwNjI3NDRkNzMzNzg3YzdlNTMwYTFiODc2MQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBNYXkgNyAyMjozNjoxNSAyMDA3ICswMjAwCgogICAgW01QQzV4eHhdIFRoZXJlIGFyZSBuZXR3b3JraW5nIHByb2JsZW1zIG9uIHRoZSBNb3Rpb24tUFJPIGJvYXJkIHdpdGgKICAgIGN1cnJlbnQgUEhZIGluaXRhbGl6YXRpb24gY29kZSAodGZ0cCB0aW1lb3V0cyBhbGwgdGhlIHRpbWUpLiBUaGlzIGNvbW1pdAogICAgdGVtcG9yYXJpbHkgZGlzYWJsZXMgUEhZIGluaXRhbGl6YXRpb24gc2VxdWVuY2UgdG8gbWFrZSB0aGUgbmV0d29ya2luZwogICAgb3BlcmF0aW9uYWwsIHVudGlsIGEgZml4IGlzIGZvdW5kLgoKY29tbWl0IGFiY2E5MDE4NjljMzc2MGI2YzVmZWNiODI1ZGI2YzFkOTFhNzhhOTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMjI6MTA6MzYgMjAwNyArMDIwMAoKICAgIEdldCByaWQgb2YgZHVwbGljYXRlZCBmaWxlIChzZWUgaW5jbHVkZS9jb25maWdzL3NiYzg1NjAuaCBpbnN0ZWFkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjA3YjdiMmM5ZDk3NTJlMGY2NDc4YzMwYzI5YjcwODdmNmU2Y2JiNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNyAyMjowNzowOCAyMDA3ICswMjAwCgogICAgR2V0IHJpZCBvZiBkdXBsaWNhdGVkIGZpbGUgKHNlZSBkb2MvUkVBRE1FLlNCQzg1NjAgaW5zdGVhZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE3YmFjN2U5YjU3YmE5NDgwNTFiZWIxOWVjNWJlM2E3NWNlNzUzODMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOTo0MzoxMCAyMDA3ICswMjAwCgogICAgZml4OiByZWFkIGFuZCB3cml0ZSBNU1IgLSByZXBhaXIgbnVtYmVyIG9mIHBhcmFtZXRlcnMKCmNvbW1pdCAxOTNiNGEzYmIzYWNhZGRmNzk4ZGE4ZGUwZGEwNWQ5NGJhODc3NGVlCkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CU1vbiBNYXkgNyAxOTo0Mjo0OSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBwcGM0eHg6IEZpeCBDT05GSUdfU1lTX0NMS19GUkVRIGRlZmluaXRpb24gaW4gU2VxdW9pYSBjb25maWcgZmlsZQoKICAgIEEgJzMnIGdvdCBjdXQgb2ZmIGluIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBsYXN0IHBhdGNoIHRvIGF1dG9tYXRpY2FsbHkKICAgIGNoYW5nZSB0aGUgY2xvY2sgc3BlZWQgb2YgdGhlIHN5c3RlbSBjbG9jayBvbiBzZXF1b2lhIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE5YmYxZmJhZDdmMTlkNWExMjBiZTliMWRhZjEzNmUwNTJmY2FiMzkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOTozMzo1MSAyMDA3ICswMjAwCgogICAgbmV3OiBmc2wgaW50ZXJydXB0IHN1cHBvcnQKICAgIEZTTF9IYXNfZGF0YSBpcyBjb25uZWN0ZWQgdG8gSU5UQy4KCmNvbW1pdCA3OTIwMzJiYWE3ZDYyNWUzNGM5ODFhYjZkZjUyMTkxMWJkOGRjODYxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MzA6MTIgMjAwNyArMDIwMAoKICAgIGZpeDogaW50ZXJydXB0IGhhbmRsZXIKICAgIHJlbW92ZSBhc20gY29kZQoKY29tbWl0IGYzZjAwMWEzNDFlZjE4NWQwZjEzODQxYmU1YjVkYzMzOTVhYWNjMzEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOToyNTowOCAyMDA3ICswMjAwCgogICAgZml4OiByZW1vdmUgYXNtIGNvZGUKCmNvbW1pdCBmYjdjMmRiZWYwMmM5ZjZmOGQ3YjA0ZWM0YzJiZmI5MTQxOGI5YzAxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MTI6NDMgMjAwNyArMDIwMAoKICAgIGZpeDogY2xlYW4gaW50ZXJydXB0Cgpjb21taXQgNDJlZmVkNjEzMGM4ZmNmN2RhODgxMzg1YjU0MjcwNjVkMjgwMTc1NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE3OjIyOjI1IDIwMDcgKzAyMDAKCiAgICBmaXg6IGludGVycnVwdCBoYW5kbGVyIGZvciBtdWx0aXBsZSBzb3VyY2VzCgpjb21taXQgNDhmYmQzYTRjZGFiYmViYzFkZWJkN2VlZDczYzAwYzJjYWY5MTRmNgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE3OjExOjA5IDIwMDcgKzAyMDAKCiAgICBuZXc6IGFkZCB3cml0aW5nIHRvIG1zciByZWdpc3RlcgoKY29tbWl0IDNhNjE5ZGQ3YmVkMDNlOGI0ZDIyYTM5MTFmOTBmZDEyYWY1Mzc2YzIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMTY6NDM6NTYgMjAwNyArMDIwMAoKICAgIEZpeCBhbiBhbmNpZW50IENIQU5HRUxPRyBjb25mbGljdAoKY29tbWl0IGFjNGNkNTlkNTljOWJmM2Y4OWNiN2EzNDRhYmY4MTg0ZDY3OGY1NjIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgTWF5IDUgMDg6MTI6MzAgMjAwNyArMDIwMAoKICAgIDV4eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhOWQ4N2UyNzA3ZGNiMjQ5ZjZiYjdmN2ZmN2UwMGFjZDhjZGE5ZmQyCkF1dGhvcjogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEFwciAyOSAxNDowMTo1NCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBVc2UgUFZSIHRvIGRpc3Rpbmd1aXNoIE1QQzUyMDBCIGZyb20gTVBDNTIwMCBpbiBib290IG1lc3NhZ2UKCiAgICBNUEM1MjAwQiBzeXN0ZW1zIGFyZSBpbmNvcnJlY3RseSByZXBvcnRlZCBhcyBNUEM1MjAwIGluIFUtQm9vdCBzdGFydC11cAogICAgbWVzc2FnZS4gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28gdmFyaWFudHMsIGFuZCBwcmludCBwcm9wZXIgQ1BVCiAgICBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBXaWFuZWNraSA8Z3J6ZWdvcnoud2lhbmVja2lAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA0ZWM1YmQ1NWVkMWZmYTkxYTc3NGFmMjk4NzY5NjIxZjRmYmIxOGMxCkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglXZWQgQXByIDI1IDE2OjAxOjI2IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIHNpbXBsaWZ5IHNpbGVudCBjb25zb2xlCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNzU5OGE0M2YyYjQyMWE3MTNkODEzNWU5OGE0MmMzN2Q5ZWI5ZGYwCkF1dGhvcjogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxNTozMDozOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBBdm9pZCBhc3NpZ25pbmcgUENJIHJlc291cmNlcyBmcm9tIHplcm8gYWRkcmVzcwoKICAgIElmIGEgUENJIElERSBjYXJkIGhhcHBlbnMgdG8gZ2V0IGEgemVybyBhZGRyZXNzIGFzc2lnbmVkIHRvIGl0LCB0aGUgTGludXggSURFCiAgICBjb3JlIGNvbXBsYWlucyBhbmQgSURFIGRyaXZlcnMgZmFpbHMgdG8gd29yay4gIEFsc28sIGFzc2lnbmluZyB6ZXJvIHRvIGEgQkFSCiAgICB3YXMgaWxsZWdhbCBhY2NvcmRpbmcgdG8gUENJIDIuMSAodGhlIGxhdGVyIHJldmlzaW9ucyBzZWVtIHRvIGhhdmUgZXhjbHVkZWQgdGhlCiAgICBzZW50ZW5jZSBhYm91dCAiMCIgYmVpbmcgY29uc2lkZXJlZCBhbiBpbnZhbGlkIGFkZHJlc3MpIC0tIHNvLCB1c2UgYSByZWFzb25hYmxlCiAgICBzdGFydGluZyB2YWx1ZSBvZiAweDEwMDAgKHRoYXQncyB3aGF0IHRoZSBtb3N0IExpbnV4IGFyY2hzIGFyZSB1c2luZykuCgogICAgQWx0ZXJuYXRpdmVseSwgb25lIG1pZ2h0IGhhdmUgZml4ZWQgdGhlIGNhbGxzIHRvIHBjaV9zZXRfcmVnaW9uKCkgaW5kaXZpZHVhbGx5CiAgICAoc29tZSBjb2RlIGV2ZW4gc2VlbXMgdG8gaGF2ZSB0YWtlbiBjYXJlIG9mIHRoaXMgaXNzdWUpIGJ1dCB0aGF0IHdvdWxkIGhhdmUKICAgIGJlZW4gYSBsb3QgbW9yZSB3b3JrLiA6LSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZmZkNDUxYWZlYjA4ZTViZTdkZGFlNjgwNDg3ZWM5NjJiMmJjYTI1CkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTQ6MDA6MTEgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gc2V0ZW52KC4uLikgY2FuIGRlbGV0ZSBlbnZpcm9ubWVudGFsdmFyaWFibGVzCgogICAgdXBkYXRlIHNldGVudigpIGZ1bmN0aW9uIHNvIHRoYXQgZW50ZXJpbmcgYSBOVUxMIHZhbHVlIGZvciB0aGUKICAgIHZhcmlhYmxlJ3MgdmFsdWUgd2lsbCBkZWxldGUgdGhlIGVudmlyb25tZW50YWwgdmFyaWFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWJkMGEwYWUwNWE0NDc2OWM0ZTI3NDU4YWQ0ZTlmMzQzODI1MDQ0MwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEFwciAyMyAxMzo1NDoyNCAyMDA3ICswMjAwCgogICAgW3BhdGNoXSB1c2UgdW5zaWduZWQgY2hhciBpbiBzbWM5MTExMSBkcml2ZXIgZm9yIG1hYwoKICAgIHRoZSB2X21hYyB2YXJpYWJsZSBpbiB0aGUgc21jOTExMTEgZHJpdmVyIGlzIGRlY2xhcmVkIGFzIGEgc2lnbmVkIGNoYXIgLi4uCiAgICB0aGlzIGNhdXNlcyBwcm9ibGVtcyB3aGVuIG9uZSBvZiB0aGUgYnl0ZXMgaW4gdGhlIE1BQyBpcyAic2lnbmVkIiBsaWtlIDB4RTAKICAgIGJlY2F1c2Ugd2hlbiBpdCBnZXRzIHByaW50ZWQgb3V0LCB5b3UgZ2V0IGEgZGlzcGxheSBsaWtlOgogICAgMHhGRkZGRkZFMCBhbmQgdGhhdCdzIG5vIGdvb2QKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZmZjNTBmOWJiMTk0MzQzYzYzMDM1MTdhNTE3NzA4NDU3YTVlYjZiOApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IE1heSA1IDE4OjU0OjQyIDIwMDcgKzAyMDAKCiAgICBuZXc6IEZTTCBhbmQgTVNSIHN1cHBvcnQgIzIKCmNvbW1pdCBmN2UyZTBlYjA2NjgxMzYzMDVmNzhiYjljMjFiZTc5YjQ4YTM0MjQ3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgTWF5IDUgMTg6Mjc6MTYgMjAwNyArMDIwMAoKICAgIG5ldzogRlNMIGFuZCBNU1Igc3VwcG9ydAoKY29tbWl0IDJmMTUyNzhjMmViOTExYzY2OGI0ZmU1NjIxMzBiNzhjZjU1NGQxMzkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTg6MjM6MTEgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsa2UgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg4NWVjODliNjQ4YTg5OWEyZjMyMzkzZmQzZmZkOWY3MjM0YzQ0MDIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTg6MDU6MDIgMjAwNyArMDIwMAoKICAgIEFkZCBTVFggR1AzIFNTQSBib2FyZCB0byBNQUtFQUxMIHNjcmlwdDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU0OTk2NDViM2ZlMTdhNTQ4YWY5ZGZjNDc5Y2E2ZTI0NTVmMTc5YTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTc6MTU6NTAgMjAwNyArMDIwMAoKICAgIE1ha2UgImZpbGUiIGNvbW1hbmQgaGFwcHkgd2l0aCBzb21lIGNvbmZpZy5tayBmaWxlczsgdXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGUzYjhjNzhiYzI0ODljMjdhZTAyMDk4NmVmMGVhY2E2ODQ4NjZjZWYKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjMyOjE0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IERldGVjdCBpZiB0aGUgc3lzY2xrIG9uIFNlcXVvaWEgaXMgMzMgb3IgMzMuMzMzIE1IegoKICAgIFRoZSBBTUNDIFNlY3F1b2lhIGJvYXJkIGhhcyBiZWVuIGNoYW5nZWQgaW4gYSBuZXcgcmV2aXNpb24gZnJvbSB1c2luZyBhCiAgICAzMy4wMDAgTUh6IGNsb2NrIHRvIGEgMzMuMzMzIE1IeiBzeXN0ZW0gY2xvY2suIEEgYml0IGluIHRoZSBDUExECiAgICBpbmRpY2F0ZXMgdGhlIGRpZmZlcmVuY2UuIFRoaXMgcGF0Y2ggcmVhZHMgdGhhdCBiaXQgYW5kIHVzZXMgdGhlIGNvcnJlY3QKICAgIGNsb2NrIHNwZWVkIGZvciB0aGUgYm9hcmQuIFRoaXMgY29kZSBpcyBiYWNrd2FyZCBjb21wYXRhYmxlIHdpbGwgYWxsCiAgICBwcmlvciBib2FyZHMuIEFsbCBwcmlvciBib2FyZHMgd2lsbCBiZSByZWFkIGFzIDMzLjAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNTQ0ZmY2NjU2ZmNhMjYzZWQxZWJlMzk4OTliNmQ5NWRhNjdjOGI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMDg6Mjk6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogU2VxdW9pYTogUmVtb3ZlIGNwdS9wcGM0eHgvc3BlZWQuYyBmcm9tIE5BTkQgYm9vdGluZwoKICAgIFVzaW5nIGNwdS9wcGM0eHgvc3BlZWQuYyB0byBjYWxjdWxhdGUgdGhlIGJ1cyBmcmVxdWVuY3kgaXMgdG9vIGJpZwogICAgZm9yIHRoZSA0ayBOQU5EIGJvb3QgaW1hZ2Ugc28gZGVmaW5lIGJ1c19mcmVxdWVuY3kgdG8gMTMzTUh6IGhlcmUKICAgIHdoaWNoIGlzIHNhdmUgZm9yIHRoZSByZWZyZXNoIGNvdW50ZXIgc2V0dXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJmNTUwYWI5NzY0MDUzMDBmNWIwN2JmMjg5MDgwMDg0MGQwYWEwNWYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgTWF5IDUgMDg6MTI6MzAgMjAwNyArMDIwMAoKICAgIDV4eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhNzk4ODY1OTA1OTNiYTFkNjY3Yzg0MGNhYTQ5NDBjNjE2MzlmMThmCkF1dGhvcjogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA3OjA0OjQyIDIwMDcgKzAyMDAKCiAgICBOQU5EOiBXcm9uZyBjYWxjdWxhdGlvbiBvZiBwYWdlIG51bWJlciBpbiBuYW5kX2Jsb2NrX2JhZCgpCgogICAgSW4gY2FzZSB0aGF0IHRoZXJlIGlzIG5vIG1lbW9yeSBiYXNlZCBiYWQgYmxvY2sgdGFibGUgYXZhaWxhYmxlIHRoZQogICAgZnVuY3Rpb24gbmFuZF9ibG9ja19jaGVja2JhZCgpIGluIGRyaXZlcnMvbXRkL25hbmQvbmFuZF9iYXNlLmMgd2lsbCBjYWxsCiAgICBuYW5kX2Jsb2NrX2JhZCgpIGRpcmVjdGx5LiBXaGVuIHBhcmFtZXRlciAnZ2V0Y2hpcCcgaXMgc2V0IHRvIHplcm8sCiAgICBuYW5kX2Jsb2NrX2JhZCgpIHdpbGwgbm90IHJpZ2h0IHNoaWZ0IHRoZSBvZmZzZXQgdG8gY2FsY3VsYXRlIHRoZQogICAgY29ycmVjdCBwYWdlIG51bWJlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgS25vYmxvY2ggPGtub2Jsb2NoQHNpZW1lbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk4NzdkN2RjZDFlZWJlNjFhYTVkOGI4ZmZlOWMwNDhlYTQyNmU2ZjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDQgMTA6MDI6MzMgMjAwNyArMDIwMAoKICAgIEZpeCBpbml0cmQgbGVuZ3RoIGNvcnJ1cHRpb24gaW4gYm9vdG0gY29tbWFuZC4KCiAgICBXaGVuIHVzaW5nIEZEVCBJbWFnZXMsIHRoZSBsZW5ndGggb2YgYW4gaW5pdGFsIHJhbWRpc2sgd2FzCiAgICBvdmVyd3JpdHRlbiAoYnVnIGludHJvZHVjZWQgYnkgY29tbWl0IDg3YTQ0OWM4LCAyMiBBdWcgMjAwNikuCgogICAgUGF0Y2hlcyBieSBUaW11ciBUYWJpICYgSm9obnMgRGFuaWVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDY4YWFiNjYwYmMzOTEyYjkzMGJlNTU0MGU2YjNmM2ZkNmFkM2M5NgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXkgMyAxOTo0Mzo1MiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IHRyaXZpYWwgZXJyb3IgaW4gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY0YTg5ZDZjZTg1ODRiOWZjNjRmNGU4NWRhOWVjYWMzY2ZjMmMyYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMyAxNjozNDo0MSAyMDA3ICswMjAwCgogICAgVXBkYXRlIGJvYXJkIGNvbmZpZ3VyYXRpb24gZm9yIFNUWCBHUDNTU0EgYm9hcmQ6CgogICAgRW5hYmxlIGh1c2ggc2hlbGwsIGVudmlyb25tZW50IGluIGZsYXNoIHJhdGhlciBpbiBFRVBST00sCiAgICBtb3JlIHVzZXItZnJpZW5kbHkgZGVmYXVsdCBlbnZpcm9ubWVudCwgZXRjLgogICAgVGhlIHNpbXBsZSBFRVBST00gZW52aXJvbm1lbnQgY2FuIGJlIHNlbGVjdGVkIGVhc2lseSBpbiB0aGUgYm9hcmQKICAgIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmM2ZmIxOTlkYzU3NTZmYzcyZjQ5ZDFmNGRlMTA1ZTA4OTA0OWQ2NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjQgMTQ6Mzc6NDkgMjAwNyArMDIwMAoKICAgIENsZWFudXAgU1RYIEdQM1NTQSBjb2RlOyBmaXggYnVpbGQgYW5kIGNvbXBpbGUgcHJvYmxlbXMuCgpjb21taXQgMzUxNzFkYzA0ZTAyOGVjYWNjMjNhZDkxNmE2NjI5NTQ3MjU1NWRiZgpBdXRob3I6IERhbiBNYWxlayA8ZGFuQGVtYmVkZGVkYWxsZXkuY29tPgpEYXRlOglGcmkgSmFuIDUgMDk6MTU6MzQgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTVFggR1AzU1NBIChzdHhzc2EpIEJvYXJkCgogICAgU2lnbmVkLW9mZi1ieSBEYW4gTWFsZWssIDxkYW5AZW1iZWRkZWRhbGxleS5jb20+Cgpjb21taXQgZjIxMzRmOGU5ZWIwMDZiZGNkNzI5ZTg5ZjMwOWMwN2IyZmE0NTE4MApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWF5IDIgMTM6MzE6NTMgMjAwNyArMDIwMAoKICAgIG1hY2I6IERvbid0IHJlc3RhcnQgYXV0b25lZ290aWF0aW9uIGlmIHdlIGFscmVhZHkgaGF2ZSBsaW5rCgogICAgUmV3b3JrIG1hY2JfcGh5X2luaXQgc28gdGhhdCBpdCBkb2Vzbid0IGF0dGVtcHQgdG8gcmUtbmVnb3RpYXRlIGlmIHRoZQogICAgbGluayBpcyBhbHJlYWR5IHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDA0ZmNiNWQzOGJjOTA3NzljZDlhNzEwZDYwNzAyMDc1OTg2ZjBlMjkKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1heSAyIDEzOjIyOjM4IDIwMDcgKzAyMDAKCiAgICBtYWNiOiBJbnRyb2R1Y2UgYSBmZXcgYmFycmllcnMgd2hlbiBkZWFsaW5nIHdpdGggRE1BIGRlc2NyaXB0b3JzCgogICAgVGhlcmUgd2VyZSBhIGZldyB0aGVvcmV0aWNhbCBwb3NzaWJpbGl0aWVzIHRoYXQgdGhlIGNvbXBpbGVyIG1pZ2h0CiAgICBvcHRpbWl6ZSBhd2F5IERNQSBkZXNjcmlwdG9yIHJlYWRzIGFuZC9vciB3cml0ZXMgYW5kIHRodXMgY2F1c2UKICAgIHN5bmNocm9uaXphdGlvbiBwcm9ibGVtcyB3aXRoIHRoZSBoYXJkd2FyZS4gSW5zZXJ0IGJhcnJpZXJzIHdoZXJlCiAgICB3ZSBkZXBlbmQgb24gcmVhZHMvd3JpdGVzIGFjdHVhbGx5IGhpdHRpbmcgbWVtb3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZmYTYyMWEwZDEyYTFjY2Q4MWM5MzZjNTY3Zjg5MTdhMjEzNzg3YTgKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBGZWIgMjQgMDE6MDg6MTMgMjAwNyAtMDYwMAoKICAgIENsZWFuZWQgdXAgc29tZSA4NXh4IFBDSSBidWdzCgogICAgKiBDbGVhbmVkIHVwIHRoZSBDRFMgUENJIENvbmZpZyBUYWJsZXMgYW5kIGFkZGVkIE5VTEwgZW50cmllcyB0bwogICAgICB0aGUgZW5kCiAgICAqIEZpeGVkIFBDSWUgTEFXQkFSIGFzc2lnbmVtdCB0byB1c2UgdGhlIGNwdS1yZWxhdGl2ZSBhZGRyZXNzCiAgICAqIEZpeGVkIDg1eHggUENJIGNvZGUgdG8gYXNzaWduIHBvd2FyIHJlZ2lvbiBzaXplcyBiYXNlZCBvbiB0aGUKICAgICAgY29uZmlnIHZhbHVlcyAocmF0aGVyIHRoYW4gaGFyZC1jb2RpbmcgdGhlbSkKICAgICogRml4ZWQgdGhlIDg1NDggQ0RTIFBDSTIgSU8gdG8gb25jZSBhZ2FpbiBoYXZlIDAgYXMgdGhlIGJhc2UgYWRkcmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NzQzMTA1OTg4ZmM0NGQ1YjBkMzAzODhjNzkwNjA3ODM1YWFlN2E2CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAyOjU0OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIDg1NjggTURTIGJvYXJkCgogICAgVGhpcyBpbmNsdWRlZCBzb21lIGNoYW5nZXMgdG8gY29tbW9uIGZpbGVzOgogICAgKiBBZGQgODU2OCBwcm9jZXNzb3IgU1ZSIHRvIHZhcmlvdXMgcGxhY2VzCiAgICAqIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBxZSBidXMtZnJlcXVlbmN5IHZhbHVlIGluIHRoZSBkdHMKICAgICogQWRkIHRoZSA4NTY4TURTIHRhcmdldCB0byB0aGUgTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWYxYzJiODRiZjI3Yzg1NjViYWRkYzgyZDFhYmI5MzcwMGQxMGUyZQpBdXRob3I6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDozNDo0OCAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRyZWF0aW5nIHVua25vd24gUEhZcyBhcyBnZW5lcmljIFBIWXMuCgogICAgV2hlbiBicmluZ2luZyB1cCB1LWJvb3Qgb24gbmV3IGJvYXJkcywgUEhZIHN1cHBvcnQgc29tZXRpbWVzIGdldHMKICAgIG5lZ2xlY3RlZC4JTW9zdCBQSFlzIGRvbid0IHJlYWxseSBuZWVkIGFueSBzcGVjaWFsIHN1cHBvcnQsCiAgICB0aG91Z2guICBCeSBhZGRpbmcgYSBnZW5lcmljIGVudHJ5IHRoYXQgYWx3YXlzIG1hdGNoZXMgaWYgbm90aGluZwogICAgZWxzZSBkb2VzLCB3ZSBjYW4gcHJvdmlkZSBzdXBwb3J0IGZvciAidW5zdXBwb3J0ZWQiIFBIWXMgZm9yIHRoZQogICAgdHNlYy4KCiAgICBUaGUgZ2VuZXJpYyBQSFkgZHJpdmVyIHN1cHBvcnRzIG1vc3QgUEhZcywgaW5jbHVkaW5nIGdpZ2FiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgVXBkZWdyYWZmIDxkYXZlQGNyYXkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE3NWFmOWJmZDhmZmYwNDk5ZWZkYmI5MDYwMWNlYzVhMmFmZWYxMTcKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgNyAxNToyODowNCAyMDA3IC0wNjAwCgogICAgQ29uZGl0aW9uYWxpemUgODY0MSBSZXYxLjAgTUNNIHdvcmthcm91bmRzCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNjQ3MDJiN2ZjOGY4ZGYzOWQzMWFkZDc3MGRmNmUzNzJmOWU5Y2UzCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxMzo1OTo1MCAyMDA3IC0wNTAwCgogICAgRml4IG1lbW9yeSBpbml0aWFsaXphdGlvbiBvbiBNUEM4MzQ5RS1tSVRYCgogICAgRGVmaW5lIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYIGFuZCBNUEM4MzQ5RS1tSVRYLUdQLgogICAgVGhpcyBhbGxvd3MgZGRyLT5zZHJhbV9jbGtfY250bCB0byBiZSBwcm9wZXJseSBpbml0aWFsaXplZC4gIFRoaXMgaXMgbmVjZXNzYXJ5CiAgICBvbiBzb21lIElUWCBib2FyZHMsIG5vdGFibHkgdGhvc2Ugd2l0aCBhIHJldmlzaW9uIDMuMSBDUFUuCgogICAgQWxzbyBjaGFuZ2Ugc3BkX3NkcmFtKCkgaW4gY3B1L21wYzgzeHgvc3BkX3NkcmFtLmMgdG8gbm90IHdyaXRlIGFueXRoaW5nIGludG8KICAgIGRkci0+c2RyYW1fY2xrX2NudGwgaWYgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTCBpcyBub3QgZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IE1pY2hhZWwgQmVuZWRpY3QgPE1CZW5lZGljdEB0d2Fjcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU0YjJkNDM0YWU5ZDAxNzg3OTM2ZjM0ZmUxNzU5Y2YzZDc2MjRhZTMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDMwIDE1OjI2OjIxIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiByZXBsYWNlIGVsYWJvcmF0ZSBib290dGltZSB2ZXJib3NpdHkgd2l0aCAnY2xvY2tzJyBjb21tYW5kCgogICAgYW5kIGZpeCBDUFU6IHRvIGFsaWduIHdpdGggQm9hcmQ6IGRpc3BsYXkgdGV4dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMxYWI4MjY2OWQ5NTI1OTk4YzM0ZTgwMmExMmNhZDY2MjcyM2YyMmEKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMTYgMTM6MDI6NTMgMjAwNyAtMDUwMAoKICAgIFJld3JvdGUgcGljb3NfdG9fY2xrKCkgdG8gYXZvaWQgcm91bmRpbmcgZXJyb3JzLgogICAgQ2xhcmlmaWVkIHRoYXQgY29udmVyc2lvbiBpcyB0byBEUkFNIGNsb2NrcyByYXRoZXIgdGhhbiBwbGF0Zm9ybSBjbG9ja3MuCiAgICBNYWRlIGZ1bmN0aW9uIHN0YXRpYyB0byBzcGRfc2RyYW0uYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiMzk1MDFkMjg3NTRlNzI3MjZjZTdmYjAyMzEwZTU2ZGJkZjExNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MTM6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQmFtYm9vOiBVc2UgY3VycmVudCBOQU5EIGRyaXZlciBhbmQgKm5vdCogdGhlIGxlZ2FjeSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODY0YWE2YTZhNDY2ZmNiOTJiZjMyYjFkN2RiYTc5Y2Q3MDliNTJjOQpBdXRob3I6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MDE6NTQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBNUEM1MjAwQiBmcm9tIE1QQzUyMDAgaW4gYm9vdCBtZXNzYWdlCgogICAgTVBDNTIwMEIgc3lzdGVtcyBhcmUgaW5jb3JyZWN0bHkgcmVwb3J0ZWQgYXMgTVBDNTIwMCBpbiBVLUJvb3Qgc3RhcnQtdXAKICAgIG1lc3NhZ2UuIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdHdvIHZhcmlhbnRzLCBhbmQgcHJpbnQgcHJvcGVyIENQVQogICAgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWM1ZDMyNDI5MzVjZjM1NDNhZjAxMTQyNjI3NDk0NDM0ODM0Y2Y5OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMTI6MzQ6MzggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1pbm9yIGZpeHVwcyBmb3IgODMxM3JkYiBpbnRyb2R1Y3Rpb24KCmNvbW1pdCBhZGE0ZDQwMDkxZjZlZDRhNGYwMDQwZTA4ZDIwZGIyMTk2N2U0YTY3CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglXZWQgQXByIDI1IDE2OjAxOjI2IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIHNpbXBsaWZ5IHNpbGVudCBjb25zb2xlCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDQ4NzZhMzgwZjU3NTZmNTc0MTJjYWY3NGMxZDZkYzIwMWRkNzk2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgQXByIDI0IDIzOjAxOjAyIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIE1URCBwYXJ0aXRpb24gc3VwcG9ydCwgSkZGUzIgc3VwcG9ydAoKY29tbWl0IDM3ZWQ2Y2RkNDE1OTE5NWJmYWQ2OGQ4YTIzN2Y2YWRkYThmNDgyY2IKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEFwciAyNCAxNDowMzo0NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBzZXR1cCA0NDBFUHgvR1J4IFpNSUkvUkdNSUkgYnJpZGdlIGRlcGVuZGluZyBvbiBQRkMgcmVnaXN0ZXIgY29udGVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA2NmVkNmNjYTNmMzQwZjdhOGEwNmQ5MjcyYWUyZWY4ZTk2ZjAyNzNkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAyOjM3OjQ3IDIwMDcgLTA1MDAKCiAgICBSZXdvcmtlZCA4NXh4IHNwZWVkIGRldGVjdGlvbiBjb2RlCgogICAgQ2hhbmdlZCB0aGUgY29kZSB0byByZWFkIHRoZSByZWdpc3RlcnMgYW5kIGNhbGN1bGF0ZSB0aGUgY2xvY2sKICAgIHJhdGVzLCByYXRoZXIgdGhhbiB1c2luZyBhICJzd2l0Y2giIHN0YXRlbWVudC4KCiAgICBJZGVhIGZyb20gQW5kcmV3IEtsb3NzbmVyIDxhbmRyZXdAY2VzYS5vcGJ1Lnhlcm94LmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODFmNDgxY2E3MDhlZDZhNTZiZjljNDEwZTMxOTFkYmFkNTgxYzU2NQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjoyNDoyOCAyMDA3IC0wNTAwCgogICAgRW5hYmxlIDg1NDQgc3VwcG9ydAoKICAgICogQWRkIHN1cHBvcnQgdG8gdGhlIE1ha2VmaWxlCiAgICAqIEFkZCA4NTQ0IGNvbmZpZ3VyYXRpb24gc3VwcG9ydCB0byB0aGUgdHNlYyBkcml2ZXIKICAgICogQWRkIDg1NDQgU1ZSIG51bWJlcnMgdG8gcHJvY2Vzc29yLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZDhjM2EyMDk2ZWFmZjhkN2RlODlkNDVlOWFmNGQ0YjBkNDg2OGZlCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDIzIDE3OjEyOjI1IDIwMDcgLTA2MDAKCiAgICBTdXBwb3J0IDFHIHNpemUgb24gODU0OAoKICAgIGU1MDB2MiBhbmQgbmV3ZXIgY29yZXMgc3VwcG9ydCAxRyBwYWdlIHNpemVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDVjZWY2MTJjYzYwMWQyZDFjODkwZmJiZDdjZGM5NjA5YTE4OWE0NgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNzoxMToxNiAyMDA3IC0wNjAwCgogICAgQ2hhbmdlZCBCT09LRV9QQUdFU1pfbkdCIHRvIEJPT0tFX1BBR0VTWl9uRwoKICAgIFRoZSBvdGhlciBwYWdlc3ogY29uc3RhbnRzIHVzZSBvbmUgbGV0dGVyIHRvIHNwZWNpZnkgb3JkZXIgb2YKICAgIG1hZ25pdHVkZS4JQWxzbyBjaGFuZ2UgdGhlIG9uZSByZWZlcmVuY2UgdG8gaXQgaW4gbXBjODU0OGNkcy9pbml0LlMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWY5YTMxOGNlYTE0MjcyZWRkMTBkNjM3MzllMmQzMjZjOTBmNDMwZQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNjoyODo0NiAyMDA3IC0wNjAwCgogICAgT25seSBzZXQgZGRyaW9vdmNyIGZvciA4NTQ4IHJldjEuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MzQzZGJmODViYzAzMDMzZjIxMDJkOGU4NTQzNTY3YzJjMWFkMmQyCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgRmViIDI0IDAxOjE2OjQ1IDIwMDcgLTA2MDAKCiAgICBUd2VhayBERFIgRUNDIGVycm9yIGNvdW50ZXIKCiAgICBFbmFibGUgc2luZ2xlLWJpdCBlcnJvciBjb3VudGVyIHdoZW4gbWVtb3J5IHdhcyBjbGVhcmVkIGJ5IGRkciBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODVlN2M3YTQ1ZTNkZDljN2NlM2U3MjIzNTJiYTYwZjhkZjFhN2E0YgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBGZWIgMTIgMTM6MzQ6NTUgMjAwNyAtMDYwMAoKICAgIDg1eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAzYjgxYjQ4ZWVjMGFkMjQ5ZWM5N2E0YWUxNmMzNmZhMmUwMTRmZjQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDE6NDQ6NDQgMjAwNyAtMDUwMAoKICAgIFNvbWUgODV4eCBjcHUgY2xlYW51cHMKCiAgICAqIENsZWFuZWQgdXAgdGhlIFRTUltXSVNdIGNsZWFyaW5nCiAgICAqIENsZWFuZWQgdXAgRE1BIGluaXRpYWxpemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE1MWQ1ZDk5MmVhYjhjNDk3YjI0YzgxNmM3M2RjMWFkOGJmZmI0ZWIKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDE6MzI6MjIgMjAwNyAtMDUwMAoKICAgIEFkZCBjcHUgc3VwcG9ydCBmb3IgdGhlIDg1NDQKCiAgICBSZWNvZ25pemUgbmV3IFNWUiB2YWx1ZXMsIGFuZCBhZGQgYSBmZXcgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjVkODNkN2Y0YWM2NTcyNzE4MmQ4ZGRhZjdiYTQyZmE3NGNmNjVhZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMTEgMTY6NTE6MDIgMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTQ0RFMgYmFzaWMgcG9ydCBib2FyZCBmaWxlcy4KCiAgICBBZGQgYm9hcmQgcG9ydCB1bmRlciBuZXcgYm9hcmQvZnJlZXNjYWxlIGRpcmVjdG9yeQogICAgc3RydWN0dXJlIGFuZCByZXVzZSBleGlzdGluZyBQSVhJUyBGUEdBIHN1cHBvcnQgdGhlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGNkZTRiMDBmYzczOTNiODlmMzc5ZDgzYTlkNDM2ZGNiMTMzNGJmYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMTEgMTY6NTA6NTcgMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTQ0RFMgbWFpbiBjb25maWd1cmF0aW9uIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzYyZGQ4MzA3N2FjMDRjMDI5NmJjYTNlODI0ZWMyZmIzZDQ0ZDlkNgpBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVdlZCBEZWMgMjcgMjI6MDc6MTUgMjAwNiArMDMwMAoKICAgIEZpeCBQQ0kgSS9PIHNwYWNlIG1hcHBpbmcgb24gRnJlZXNjYWxlIE1QQzg1eDBBRFMKCiAgICBUaGUgUENJIEkvTyBzcGFjZSBtYXBwaW5nIGZvciBGcmVlc2NhbGUgTVBDODU0MEFEUyBib2FyZCB3YXMgYnJva2VuIGJ5IGNvbW1pdAogICAgNTJjN2E2OGI4ZDU4N2ViY2Y1YTZiMDUxYjU4YjNkM2ZmYTM3N2RkYyB3aGljaCBmYWlsZWQgdG8gdXBkYXRlIHRoZSAjZGVmaW5lJ3MKICAgIGRlc2NyaWJpbmcgdGhlIGxvY2FsIGFkZHJlc3Mgd2luZG93IHVzZWQgZm9yIHRoZSBQQ0kgSS9PIHNwYWNlIGFjY2Vzc2VzIC0tIGZpeAogICAgdGhpcyBhbmQgY2Fycnkgb3ZlciB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgaW50byB0aGUgTVBDODU2MEFEUyBjb2RlIHNpbmNlIHRoZQogICAgUENJIEkvTyBzcGFjZSBtYXBwaW5nIHdhcyBhbHNvIGJyb2tlbiBmb3IgdGhpcyBib2FyZCAoYnkgdGhlIGVhcmxpZXIgY29tbWl0CiAgICAwODc0NTQ2MDllNDcyOTU0NDNhZjc5M2EyODJjZGRjZDkxYTVmNDljKS4JQWRkIHRoZSBjb21tZW50cyBjbGFyaWZ5aW5nIGhvdwogICAgdGhlIFBDSSBJL08gc3BhY2UgbXVzdCBiZSBtYXBwZWQgdG8gYWxsIHRoZSBNUEM4NXh4IGJvYXJkIGNvbmZpZy4gaGVhZGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgoKICAgICBib2FyZC9tcGM4NTQwYWRzL2luaXQuUwkgIHwgICAgNCArKy0tCiAgICAgYm9hcmQvbXBjODU2MGFkcy9pbml0LlMJICB8ICAgIDQgKystLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTQwQURTLmggfCAgICA1ICsrLS0tCiAgICAgaW5jbHVkZS9jb25maWdzL01QQzg1NDFDRFMuaCB8ICAgIDIgKy0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU0OENEUy5oIHwgICAgMiArLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTYwQURTLmggfCAgICA4ICsrKystLS0tCiAgICAgNiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmNvbW1pdCA5NjYyOWNiYWJkYjcyN2Q0YTVlNjI1NDJkZWVmYzAxZDQ5OGRiNmRjCkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyA1IDE2OjQyOjMwIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEZpeCBlNTAwIHYyIGNvcmUgcmVzZXQgYnVnCgogICAgVGhlIGZvbGxvd2luZyBwYXRjaCBmaXhlcyB0aGUgZTUwMCB2MiBjb3JlIHJlc2V0IGJ1Zy4KICAgIEZvciBlNTAwIHYyIGNvcmUsIGEgbmV3IHJlc2V0IGNvbnRyb2wgcmVnaXN0ZXIgaXMgYWRkZWQgdG8gcmVzZXQgdGhlCiAgICBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYzMjQ3YTVhY2Q1ODAzMmU2Y2YzM2Y1MjViYzM5MjNiNDY3YmFjODgKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDIwIDExOjAxOjAwIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IHYyOiBSZW1vdmUgdGhlIGZpeGVkIFRMQiBhbmQgTEFXIGVudHJ5bnVibWVyCgogICAgUmVtb3ZlIHRoZSBmaXhlZCBUTEIgYW5kIExBVyBlbnRyeSBudWJtZXIuIFVzZSBhY3R1YWxseSBUTEIgYW5kIExBVwogICAgZW50cnkgbnVtYmVyIHRvIGNvbnRyb2wgdGhlIGxvb3AuICBUaGlzIGNhbiByZWR1Y2UgdGhlIHBvdGVudGlhbCByaXNrCiAgICBmb3IgdGhlIDg1eHggcHJvY2Vzc29yIGluY3JlYXNpbmcgaXRzIFRMQiBhZG4gTEFXIGVudHJ5IG51bWJlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTd2FydGhvdXQgRWR3YXJkIDxzd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwYjE5MzRiYTEyZmQ0MDhmY2MzYjhiZDlmNGIwNDg2NGM0MmE0MmJmCkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyAxOCAxNzowMTowNCAyMDA2ICswODAwCgogICAgdS1ib290OiBGaXggdGhlIDg1eHhjZHMgdHNlYyBidWcKCiAgICBGaXggdGhlIDg1eHhjZHMgdHNlYyBidWcuCiAgICBXaGVuIGVuYWJsZSBQQ0ksIHRzZWMubyBzaG91bGQgYmUgYWRkZWQgdG8gdS1ib290LmxkcyB0byBtYWtlIHRzZWMgd29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzMzN2IyMzdmZmM0YWFmMWI5NDY3MDI0ZmU0NzJhODgwZDg1MjU5OApBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMTUgMTQ6NDM6MzEgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRml4IENQVTIgZXJyYXRhIG9uIE1QQzg1NDhDRFMgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFwcGx5IHdvcmthcm91bmQgb2YgQ1BVMiBlcnJhdGEgb24gTVBDODU0OENEUyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OkVib255IFpodSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzliMThjNGYzZTBiNmQwZGMwMGY0ZTY4YmFkMmRhMzc2NmM4NWYwOQpBdXRob3I6IGVib255LnpodUBmcmVlc2NhbGUuY29tIDxlYm9ueS56aHVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyAxOCAxNjoyNToxNSAyMDA2ICswODAwCgogICAgdS1ib290OiBEaXNhYmxlcyBNUEM4NTQ4Q0RTIDJUX1RJTUlORyBmb3IgRERSIGJ5IGRlZmF1bHQKCiAgICBUaGlzIHBhdGNoIGRpc2FibGVzIE1QQzg1NDhDRFMgMlRfVElNSU5HIGZvciBERFIgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OkVib255IFpodSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDFmYjdlMGYxZWM5YjkxYmRhZTI1NjViYWI1ZjJlM2VlMTUwMzljNwpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgMTQgMTQ6MTQ6NTUgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRW5hYmxlIFBDSSBmdW5jdGlvbiBhbmQgYWRkIFBFWCAmIHJhcGlkaW8gbWVtb3J5IG1hcCBvbiBNUEM4NTQ4Q0RTIGJvYXJkCgogICAgRW5hYmxlIFBDSSBmdW5jdGlvbiBhbmQgYWRkIFBFWCAmIHJhcGlkaW8gbWVtb3J5IG1hcCBvbiBNUEM4NTQ4Q0RTCiAgICBib2FyZC4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NmI4YTA1NDMyZjM0NmYzNjQ5MzUzNWM4NTMyMGI3MGVjOWM3YzFiCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6NTQ6MTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBNUEM4MzEzRVJEQiBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5ZWEzYjZlYWZlNjA2Mjg1YWU0ZDVjMzc4MDI2MTUzZGRlNTMyMDAKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoyMSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIGdlbmVyaWMgUENJIHNldHVwIGNvZGUuCgogICAgQm9hcmQgY29kZSBjYW4gbm93IHJlcXVlc3QgdGhlIGdlbmVyaWMgc2V0dXAgY29kZSByYXRoZXIgdGhhbiBoYXZpbmcgdG8KICAgIGNvcHktYW5kLXBhc3RlIGl0IGZvciB0aGVtc2VsdmVzLiAgQm9hcmRzIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gdXNlIHRoaXMKICAgIG9uY2UgdGhleSdyZSB0ZXN0ZWQgd2l0aCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3Yzk4ZTUxOTNlOTNkZjZiOWI2NTE4NTFkNTRiNjM4YTYxZWJiMGVhCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCA4MzF4IHN1cHBvcnQgdG8gc3BlZWQuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZjI1MzI4M2EzMmQ5MWUwNjg0NGQ3Zjg3ZjliMzNmNGY0ZmJjZThmCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCA4MzF4IHN1cHBvcnQgdG8gZ2xvYmFsX2RhdGEuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1ZTdlZjg5N2U1NDU5MWU2MTVmYzFiNDU4Yjc0YzI4NmZlMWZiMDYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoxNiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQ2hhbmdlIFBWUl84M3h4IHRvIFBWUl9FMzAwQzEtMywgYW5kIHVwZGF0ZSBjaGVja2NwdSgpLgoKICAgIFJhdGhlciB0aGFuIG1pc2xlYWRpbmdseSBkZWZpbmUgUFZSXzgzeHggYXMgdGhlIHNwZWNpZmljIHR5cGUgb2YgODN4eAogICAgYmVpbmcgYnVpbHQgZm9yLCB0aGUgUFZSIG9mIGVhY2ggY29yZSByZXZpc2lvbiBpcyBkZWZpbmVkLiBjaGVja2NwdSgpIG5vdwogICAgcHJpbnRzIHRoZSBjb3JlIHRoYXQgaXQgZGV0ZWN0cywgcmF0aGVyIHRoYW4gYWJvcnRpbmcgaWYgaXQgZG9lc24ndCBmaW5kCiAgICB3aGF0IGl0IHRoaW5rcyBpdCB3YW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMzViMGM0OTUwZDg0Y2Y5ZTNhOWUzMmI5MTYxMzU5NTZkMWFjNjM2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IFJlY29nbml6ZSBTUFIgdmFsdWVzIGZvciBNUEM4MzExIGFuZCBNUEM4MzEzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ4N2M1N2IyMDFiNDU3MmQxNmYxYjY0Mjk5OGZhYTAwYzk5MTJiMTYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozMTo1NSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciBNUEM4MzF4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdmYzRjNzFhMTQzYmU4NjY2ZDcwODAzZmIyNWFlNjAzNzljOTU2MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjMgMTU6Mzk6NTkgMjAwNyArMDIwMAoKICAgIEZpeCBmaWxlIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzgyNTc5ODhhYmZlNzRkNDU5Y2EyYWQ3NDhiMTA5Y2EwNGU0ZWZlMQpBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTU6MzA6MzkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQXZvaWQgYXNzaWduaW5nIFBDSSByZXNvdXJjZXMgZnJvbSB6ZXJvIGFkZHJlc3MKCiAgICBJZiBhIFBDSSBJREUgY2FyZCBoYXBwZW5zIHRvIGdldCBhIHplcm8gYWRkcmVzcyBhc3NpZ25lZCB0byBpdCwgdGhlIExpbnV4IElERQogICAgY29yZSBjb21wbGFpbnMgYW5kIElERSBkcml2ZXJzIGZhaWxzIHRvIHdvcmsuICBBbHNvLCBhc3NpZ25pbmcgemVybyB0byBhIEJBUgogICAgd2FzIGlsbGVnYWwgYWNjb3JkaW5nIHRvIFBDSSAyLjEgKHRoZSBsYXRlciByZXZpc2lvbnMgc2VlbSB0byBoYXZlIGV4Y2x1ZGVkIHRoZQogICAgc2VudGVuY2UgYWJvdXQgIjAiIGJlaW5nIGNvbnNpZGVyZWQgYW4gaW52YWxpZCBhZGRyZXNzKSAtLSBzbywgdXNlIGEgcmVhc29uYWJsZQogICAgc3RhcnRpbmcgdmFsdWUgb2YgMHgxMDAwICh0aGF0J3Mgd2hhdCB0aGUgbW9zdCBMaW51eCBhcmNocyBhcmUgdXNpbmcpLgoKICAgIEFsdGVybmF0aXZlbHksIG9uZSBtaWdodCBoYXZlIGZpeGVkIHRoZSBjYWxscyB0byBwY2lfc2V0X3JlZ2lvbigpIGluZGl2aWR1YWxseQogICAgKHNvbWUgY29kZSBldmVuIHNlZW1zIHRvIGhhdmUgdGFrZW4gY2FyZSBvZiB0aGlzIGlzc3VlKSBidXQgdGhhdCB3b3VsZCBoYXZlCiAgICBiZWVuIGEgbG90IG1vcmUgd29yay4gOi0pCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWZiOTAzYTJlYjk0MzZiYWE5MjcwY2NjMGMyNzA4MmQ4NjQ5N2Q4OQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gQXByIDIzIDE0OjAwOjExIDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHNldGVudiguLi4pIGNhbiBkZWxldGUgZW52aXJvbm1lbnRhbHZhcmlhYmxlcwoKICAgIHVwZGF0ZSBzZXRlbnYoKSBmdW5jdGlvbiBzbyB0aGF0IGVudGVyaW5nIGEgTlVMTCB2YWx1ZSBmb3IgdGhlCiAgICB2YXJpYWJsZSdzIHZhbHVlIHdpbGwgZGVsZXRlIHRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2ZjEwNGU1Y2FhNzQ3ZDU2OGVmZjI2YjM2OTU2NWFmNTdjMmZmYTYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBBcHIgMjMgMTM6NTQ6MjQgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gdXNlIHVuc2lnbmVkIGNoYXIgaW4gc21jOTExMTEgZHJpdmVyIGZvciBtYWMKCiAgICB0aGUgdl9tYWMgdmFyaWFibGUgaW4gdGhlIHNtYzkxMTExIGRyaXZlciBpcyBkZWNsYXJlZCBhcyBhIHNpZ25lZCBjaGFyIC4uLgogICAgdGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBvbmUgb2YgdGhlIGJ5dGVzIGluIHRoZSBNQUMgaXMgInNpZ25lZCIgbGlrZSAweEUwCiAgICBiZWNhdXNlIHdoZW4gaXQgZ2V0cyBwcmludGVkIG91dCwgeW91IGdldCBhIGRpc3BsYXkgbGlrZToKICAgIDB4RkZGRkZGRTAgYW5kIHRoYXQncyBubyBnb29kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ5OGMwODg1YWQ2MTdmY2NmMjFlN2MyNmVmOGNiNzI4ZmJmYjI0NTkKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTM6MTA6NTIgMjAwNyArMDIwMAoKICAgIFVTQjogKEFub3RoZXIpIGRlbGF5IGZvciBjcmFwcHkgVVNCIGtleXMuCgogICAgU29tZSBVU0Iga2V5cyBhcmUgc2xvdyBpbiBnaXZpbmcgYmFjayBhbiBhbnN3ZXIgd2hlbiB0aGUgUm9vdCBIVUIKICAgIGVuYWJsZXMgcG93ZXIgbGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgMzIzYmZhOGY0MzZkYzNiYzU3MTg3YzliMTQ4OGJjMzE0NmZmMTUyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyMyAxMjowMDoyMiAyMDA3ICswMjAwCgogICAgUmVtb3ZlIEJPQVJETElCUyB1c2FnZSBjb21wbGV0ZWx5CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMyNTU2NDQzODQwZjEyNzE3MGU0YmFhOGJkZDViNTY3MDM5ZjZjMzYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBBcHIgMjEgMjE6MDc6MjIgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gU3lzdGVtQUNFIHN1cHBvcnQgZm9yIE1pY3JvYmxhemUKCmNvbW1pdCAwNjQzNjMxYWExMDM2Y2Q3NDZiZjVkMTVmNWEzNGJjN2JjMDFlYTRmCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIxOjAyOjQwIDIwMDcgKzAyMDAKCiAgICAxNmJpdCByZWFkL3dyaXRlIGxpdHRsZSBlbmRpYW4KCmNvbW1pdCA5ZDFkNmEzNGQyNmM1OTMzYmMwOTdjZTczYzkzNDhmOTU1NzNjZGQ0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIwOjUzOjMxIDIwMDcgKzAyMDAKCiAgICBDaGFuZ2UgTUw0MDEgcGFyYW1ldGVycyAtIFhpbGlueCBCU1AKCmNvbW1pdCAyZTM0M2I5YTU3ZjMyZTFiZDA4YzM1Yzk5NzY5MTAzMzNmYjRlMTNkCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyOCAwNTozNzoyOSAyMDA3IC0wNjAwCgogICAgbXBjODY0MWhwY246IEZpeCBMQVcgYW5kIFRMQiBzZXR1cCB0byB1c2UgdGhlIElPX1BIWVMgI2RlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3OWNiNDczOTFlZWJlZjg1YWNhZGIzZjY5NjFlZjZjNTVjYWNlNmFjCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxOSAxMDo0MjozNyAyMDA3ICswODAwCgogICAgRW5hYmxlIExBV3MgZm9yIE1QQzg2NDEgUENJLUV4Mi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDc4NTFjZTFlMWYxNDA2NjViNTIwMDI2YWJmMTA0Mjk2OGIxMTAyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDoxMjoyNiAyMDA3IC0wNTAwCgogICAgbXBjODZ4eDsgV3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIGZ0cF9jcHVfc2V0dXAoKQogICAgc2hvdWxkIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MsIGlmIHRoZXkKICAgIGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdkYmRmMjhiOGJkODU1YTg1MzBkYzMyOTJlNDk4MjU3NWExOTcwNjAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDIwIDE0OjExOjM4IDIwMDcgLTA1MDAKCiAgICBtcGM4Nnh4OiBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIG1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE0ZGE1Zjc2NzViYmI0MjdjNDY5ZTNmNDUwMDZlMDI3YjZlMjFkYjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDIwIDE3OjQzOjI4IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwIGNvbXBpbGVyIHdhcm5pbmdzLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2OTIzNTY1ZGIxMmFmMzRmZDVlMDJkMzU0ZWU2NWE4Yzc4YWM0NjBmCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjAgMTI6MDE6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBicmVha2FnZSBvZiBOQzY1MCBib2FyZCB3aXRoIHJlc3BlY3QgdG8gbmFuZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDM5ZjIzY2Q5MDk0NzYzOWFjMjc4YTE4ZmYyNzdlYzc4NmI1YWMxNjcKQXV0aG9yOiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxMToxMzoxNiAyMDA3ICswMjAwCgogICAgW1JGQyBQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IGZpeCBPRl9UQkNMSyAodGltZWJhc2UtZnJlcXVlbmN5KSBjYWxjdWxhdGlvbgoKICAgIEcyIGNvcmUgcmVmZXJlbmNlIG1hbnVhbCBzYXlzIGRlY3JlbWVudGVyIGFuZCB0aW1lIGJhc2UKICAgIGFyZSBkZWNyZWFzaW5nL2luY3JlYXNpbmcgb25jZSBldmVyeSA0IGJ1cyBjbG9jayBjeWNsZXMuCiAgICBMZXRzIGZpeCBpdCwgc28gdGltZSBpbiBMaW51eCB3b24ndCBydW4gdHdpY2UgYXMgZmFzdAoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3NjUxZjhiZGJiYTAzYmIwYjRmMjQxZTJkMmM0Y2I2NWIyMzBiZDU2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVGh1IEFwciAxOSAyMzoxNDozOSAyMDA3IC0wNDAwCgogICAgRml4IHNlcmlvdXMgcG9pbnRlciBidWcgd2l0aCBib290bSBhbmQgcmVzZXJ2ZSBtYXAuCgogICAgV2hhdCB3YXMgc3VwcG9zZSB0byBiZSBhIHN0YWNrIHZhcmlhYmxlIHdhcyBkZWNsYXJlZCBhcyBhIHBvaW50ZXIsCiAgICAgIG92ZXJ3cml0aW5nIHJhbmRvbSBtZW1vcnkuCiAgICBBbHNvIG1vdmVkIHRoZSBsaWJmZHQuYSByZXF1aXJlbWVudCBpbnRvIHRoZSBtYWluIE1ha2VmaWxlLiAgVGhhdCBpcwogICAgICBUaGUgVS1Cb290IFdheS4KCmNvbW1pdCBkMjE2ODYyNjM1NzRlOTVjYjNlOWU5YjA0OTZmOTY4YjFiODk3ZmRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXByIDE5IDA5OjUzOjUyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjaGlwIHNlbGVjdCB0aW1pbmcgZm9yIFN5c0FDRSBhY2Nlc3Mgb24gQU1DQyBLYXRtYWkKCiAgICBQcmV2aW91cyB2ZXJzaW9ucyB1c2VkIGZ1bGwgd2FpdCBzdGF0ZXMgZm9yIHRoZSBjaGlwIHNlbGVjdCAjMSB3aGljaAogICAgaXMgY29ubmVjdGVkIHRvIHRoZSBYaWxpbml4IFN5c3RlbUFDRSBjb250cm9sbGVyIG9uIHRoZSBBTUNDIEthdG1haQogICAgZXZhbHVhdGlvbiBib2FyZC4gVGhpcyBsZWFkcyB0byByZWFsbHkgc2xvdyBhY2Nlc3MgYW5kIHRoZXJlZm9yZSBsb3cKICAgIHBlcmZvcm1hbmNlLiBUaGlzIHBhdGNoIG5vdyBzZXRzIHVwIHRoZSBjaGlwIHNlbGVjdCBhIGxvdCBmYXN0ZXIKICAgIHJlc3VsdGluZyBpbiBtdWNoIGJldHRlciByZWFkL3dyaXRlIHBlcmZvcm1hbmNlIG9mIHRoZSBMaW51eCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM3ODM3ODI4ZDg5MDg0ODc5YmVlMmYyYjhjN2M2OGQ0Njk1OTQwZGYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE3OjQ5OjI5IDIwMDcgKzAyMDAKCiAgICBDbGVuYXVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZDA5NGM2Mzc5ZTJlZjhhNGQwY2ViNTY0MGIyNGNiMGM4ZDA0NDQ5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNzoyMDo1OCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmEyNmVjNDczMmVmZDdhMzA4ZDBiYmM5NzcxNGMxZDc1ZWYxMTczYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTc6MDc6MjYgMjAwNyArMDIwMAoKICAgIENsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWdlbmQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVmNmM3MzJhZmZlYTk2NDc3NjJkMjdhNDYxN2EyYWU2NGM1MmRjZWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE2OjE3OjQ2IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgYWQ0ZWI1NTU2NzFkOTdmOTZkYzU2ZWFiNTUxMDNiMWY4Njg3NGIwMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTQ6MzA6MzkgMjAwNyArMDIwMAoKICAgIE1DQzIwMCBib2FyZDogcmVtb3ZlIHdhcm5pbmcgd2hpY2ggaXMgb2Jzb2xldGUgYWZ0ZXIgUFNvQyBmaXJtd2FyZSBjaGFuZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzNzQ3YTNmMDEwYjJiMTQ0MmRlYzNlODcxYzY5Nzg4YjYwMTdhYWFlCkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CVdlZCBBcHIgMTggMTI6MTE6MDUgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IGRvY3VtZW50IHdha2V1cCBmcm9tIGxvdy1wb3dlciBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+Cgpjb21taXQgZTY3MzIyNmZmOWQ2YWE5MWI0N2NlYWM3NGI4YzEzNzcwYjA2YmIzNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxMjowNzo0NyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQWNhZGlhIHRvIG5vdCBzZXR1cCBQTEwgd2hlbiBib290aW5nIHZpYSBib290c3RyYXAgRUVQUk9NCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkwZTZmNDFjZjA5ZmM5OGY2Y2NiNTEwZTE4M2Q1M2FiODU0NmNmMmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTI6MDU6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG91dHB1dCBmb3IgYm9vdHJvbSBsb2NhdGlvbiB0byA0MDVFWiBwb3J0cwoKICAgIE5vdyA0MDVFWiBwb3J0cyBhbHNvIHNob3cgdXBvbiBib290dXAgZnJvbSB3aGljaCBib290IGRldmljZQogICAgdGhleSBhcmUgY29uZmlndXJlZCB0byBib290OgoKICAgIFUtQm9vdCAxLjIuMC1nZDM4MzJlOGYtZGlydHkgKEFwciAxOCAyMDA3IC0gMDc6NDc6MDUpCgogICAgQ1BVOiAgIEFNQ0MgUG93ZXJQQyA0MDVFWiBSZXYuIEEgYXQgMTk5Ljk5OSBNSHogKFBMQj0xMzMsIE9QQj02NiwgRUJDPTY2IE1IeikKCSAgIEJvb3RzdHJhcCBPcHRpb24gRSAtIEJvb3QgUk9NIExvY2F0aW9uIEVCQyAoMzIgYml0cykKCSAgIDE2IGtCIEktQ2FjaGUgMTYga0IgRC1DYWNoZQogICAgQm9hcmQ6IEFjYWRpYSAtIEFNQ0MgUFBDNDA1RVogRXZhbHVhdGlvbiBCb2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YzAwZGZiMGJmODljOGMyM2U4YWY1YjViZGY0OWNmNjZkNzY5Zjg1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEFwciAxNyAxMzozMDozMyAyMDA3ICswMTAwCgogICAgTW92ZSBwcGVhcnNlIHRvIEFSTSBib2FyZCBsaXN0CiAgICBBZGQgS29uc3RhbnRpbiBLbGV0c2Noa2UgZm9yIHNjYjkzMjguCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgoKY29tbWl0IGQzODMyZThmZTFiMjE0ZWM2MjQyNGVhYzM2Y2ZkYTlmYzU2ZDIxYjMKQXV0aG9yOiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDowMDoxMyAyMDA3ICswMjAwCgogICAgW1BBVENIXSBpY2VjdWJlL2xpdGU1MjAwYjogd2FrZXVwIGZyb20gbG93LXBvd2VyIHN1cHBvcnQKCiAgICBVLUJvb3QgcGFydCBvZiBMaXRlNTIwMGIgbG93IHBvd2VyIG1vZGUgc3VwcG9ydC4KICAgIFB1dHMgU0RSQU0gb3V0IG9mIHNlbGYtcmVmcmVzaCBhbmQgdHJhbnNmZXJzIGNvbnRyb2wgdG8KICAgIGFkZHJlc3Mgc2F2ZWQgYXQgcGh5c2ljYWwgMHgwLgoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmMzVhNTNmYzdiMGM3OWZjZmU3YmRjMDExNjNjNGIzNGFhYmExNDYwCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU3VuIEFwciAxNSAxMzo1NDoyNiAyMDA3IC0wNDAwCgogICAgRml4IHRoZSBmdF9jcHVfc2V0dXAoKSBwcm9wZXJ0eSBzZXR0aW5ncy4KCiAgICBVc2UgInNldHRlciIgZnVuY3Rpb25zIGluc3RlYWQgb2YgZmxhZ3MsIGNsZWFuZXIgYW5kIG1vcmUgZmxleGlibGUuCiAgICBJdCBhbHNvIGZpeGVzIHRoZSBwcm9ibGVtIG5vdGVkIGJ5IFRpbXVyIFRhYmkgdGhhdCB0aGUgZXRoZXJuZXQgTUFDCiAgICBhZGRyZXNzZXMgd2VyZSBhbGwgYmVpbmcgc2V0IGluY29ycmVjdGx5IHRvIHRoZSBzYW1lIE1BQyBhZGRyZXNzLgoKY29tbWl0IGMyOGFiYjljNjE0ZjY1Y2UyMDk2Y2M0YTY2ZmM4ODZjNzdkMGU1YTQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgQXByIDE0IDIyOjUxOjI0IDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIHRoZSBib290bSBjb21tYW5kIGZvciBDT05GSUdfT0ZfTElCRkRUCgogICAgSW4gYm9vdG0sIGNyZWF0ZSB0aGUgIi9jaG9zZW4iIG5vZGUgb25seSBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QKICAgICAgKGJldHRlciBtYXRjaGVzIHRoZSBwcmV2aW91cyBiZWhhdmlvcikuCiAgICBVcGRhdGUgZm9yIHByb3BlciByZXNlcnZlZCBtZW1vcnkgbWFwIGhhbmRsaW5nIGZvciBpbml0cmQuCgpjb21taXQgM2Y5ZjA4Y2Y5MWM4YTY5NDlhNWQ3OGExOGJkM2Q4ZGY3Yjg2ZDg4OApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBBcHIgMTQgMjI6NDY6NDEgMjAwNyAtMDQwMAoKICAgIEFkZCBzb21lIHV0aWxpdGllcyB0byBtYW5pcHVsYXRlIHRoZSByZXNlcnZlZCBtZW1vcnkgbWFwLgoKY29tbWl0IDgwNDhjZGQ1NmYwNGE3NTZlZWVhNDk1MWY0MDJiZjVjYzMzNzg1ZGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDE0IDIxOjE2OjU0IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgOGU2ODc1MTgzY2RjYTkxYzEzNDQwOGQxMTlkNGFiY2Q0OGVmNjg1NgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjU2OjQ2IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogRW5hYmxlIE1NQyBzdXBwb3J0CgogICAgU2V0IHVwIHRoZSBwb3J0bXV4IGZvciB0aGUgTU1DIGludGVyZmFjZSBhbmQgZW5hYmxlIHRoZSBNTUMgZHJpdmVyCiAgICBhbG9uZyB3aXRoIHN1cHBvcnQgZm9yIERPUyBwYXJ0aXRpb25zLCBleHQyIGFuZCBGQVQgZmlsZXN5c3RlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZmMyNmM5N2JiNmRmNDFiNGE5NTY2MmMzNDA1NGZlOTEyMzg3YmYzOApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSmFuIDIwIDEwOjAzOjUzIDIwMDYgKzAxMDAKCiAgICBBdG1lbCBNQ0kgZHJpdmVyCgogICAgRHJpdmVyIGZvciB0aGUgQXRtZWwgTUNJIGNvbnRyb2xsZXIgKE1NQyBpbnRlcmZhY2UpIGZvciBBVDMyQVAgQ1BVcy4KCiAgICBUaGUgQVQ5MSBBUk0tYmFzZWQgQ1BVcyB1c2UgYmFzaWNhbGx5IHRoZSBzYW1lIGhhcmR3YXJlLCBzbyBpdCBzaG91bGQKICAgIGJlIHBvc3NpYmxlIHRvIHNoYXJlIHRoaXMgZHJpdmVyLCBidXQgbm8gZWZmb3J0IGhhcyBiZWVuIG1hZGUgc28gZmFyLgoKICAgIEhhcmR3YXJlIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBBVDMyQVA3MDAwIGRhdGEgc2hlZXQsCiAgICB3aGljaCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tCgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL2RhdGFzaGVldHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwNWZkYWIxZWY2YTEwZDA0OWE1MDAyMWE4NmYxMjI2ZjQ0NGQ5YjlmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTg6NTU6MzcgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBBZGQgY2xrIGFuZCBncGlvIGluZnJhc3RydWN0dXJlIGZvciBtbWNpCgogICAgSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIG1tY2kgcGlucywgYXMgd2VsbCBhcwogICAgZnVuY3Rpb25zIGZvciBnZXR0aW5nIHRoZSBjbG9jayByYXRlIG9mIHRoZSBtbWNpIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2ZhYzNmNjllOWYwNWM1ZTUzMjY2ODE5NzZjMzVkMTI5MzI0YzRkZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjUzOjU2IDIwMDYgKzAxMDAKCiAgICBFbmFibGUgcGFydGl0aW9uIHN1cHBvcnQgd2l0aCBNTUMKCiAgICBJbmNsdWRlIGltcGxlbWVudGF0aW9ucyBvZiBpbml0X3BhcnQoKSBhbmQgZ2V0X3BhcnRpdGlvbl9pbmZvKCkgd2hlbgogICAgQ09ORklHX01NQyBpcyBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOWEyNGY0NzdhMWVkNWJiMGY3NDM3N2M5ODVkNzU0ZWJiZmE0NDg3MgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE3OjE0OjMwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogRW5hYmxlIG5ldHdvcmtpbmcKCiAgICBJbXBsZW1lbnQgTUFDQiBpbml0aWFsaXphdGlvbiBmb3IgQVZSMzIgYW5kIEFUU1RLMTAwMCwgYW5kIHR1cm4KICAgIGV2ZXJ5dGhpbmcgb24sIGluY2x1ZGluZyB0aGUgTUFDQiBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNWMxZmUxZmZmZmQxNzUwYTdlNDdlNWEyZTJjZDYwMGMwMGU0ZjAwOQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSmFuIDIwIDEwOjAzOjM0IDIwMDYgKzAxMDAKCiAgICBBdG1lbCBNQUNCIGV0aGVybmV0IGRyaXZlcgoKICAgIERyaXZlciBmb3IgdGhlIEF0bWVsIE1BQ0Igb24tY2hpcCBldGhlcm5ldCBjb250cm9sbGVyLgoKICAgIFRoaXMgZHJpdmVyIGhhcyBiZWVuIHRlc3RlZCBvbiB0aGUgQVRTVEsxMDAwIGJvYXJkIHdpdGggYSBBVDMyQVA3MDAwCiAgICBDUFUuIEl0IHNob3VsZCBwcm9iYWJseSB3b3JrIG9uIEFUOTFTQU05MjZ4IGFzIHdlbGwgd2l0aCBzb21lIG1pbm9yCiAgICBtb2RpZmljYXRpb25zLgoKICAgIEhhcmR3YXJlIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBBVDMyQVA3MDAwIGRhdGEgc2hlZXQsCiAgICB3aGljaCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tCgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL2RhdGFzaGVldHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiNGVjOWMyZDQzZDg5NDcyOWJiNjMzYmZkYmRmYTk1YTk2MmMxNTU2CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTY6NTY6MTQgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBBZGQgY2xrIGFuZCBncGlvIGluZnJhc3RydWN0dXJlIGZvciBtYWNiMCBhbmQgbWFjYjEKCiAgICBJbXBsZW1lbnQgZnVuY3Rpb25zIGZvciBjb25maWd1cmluZyB0aGUgbWFjYjAgYW5kIG1hY2IxIHBpbnMsIGFzCiAgICB3ZWxsIGFzIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgY2xvY2sgcmF0ZSBvZiB0aGUgdmFyaW91cwogICAgYnVzc2VzIHRoZSBtYWNiIGV0aGVybmV0IGNvbnRyb2xsZXJzIGFyZSBjb25uZWN0ZWQgdG8uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZDVhY2I5NWIxNmEwYTc0YzY0MzUyNDM0MmMzNDM3ZTc2NTQyNmQwNQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE1OjM5OjE1IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogSW1wbGVtZW50IHNpbXBsZSBETUEgbWVtb3J5IGFsbG9jYXRvcgoKICAgIEltcGxlbWVudCBkbWFfYWxsb2NfY29oZXJlbnQoKSB3aGljaCByZXR1cm5zIGNhY2hlLWFsaWduZWQKICAgIHVuY2FjaGVhYmxlIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5MTk3NWIwZmVhNzczYzllNjgxZmVhOGNmMzM0OTY2OWYyNzY4NWVlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTU6NDY6MDIgMjAwNiArMDEwMAoKICAgIEltcG9ydCA8bGludXgvbWlpLmg+IGZyb20gdGhlIExpbnV4IGtlcm5lbAoKICAgIEluc3RlYWQgb2YgY3JlYXRpbmcgeWV0IGFub3RoZXIgc2V0IG9mIE1JSSByZWdpc3RlciBkZWZpbml0aW9ucwogICAgaW4gdGhlIG1hY2IgZHJpdmVyLCBoZXJlJ3MgYSBjb21wbGV0ZSBzZXQgb2YgZGVmaW5pdGlvbnMgZm9yIGV2ZXJ5b25lCiAgICB0byB1c2UuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMWI4MDRiMjI5NTU2YTRkODYyZGE5M2MwZWM5NGU3OTQxOTM2NGIyYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWFyIDIxIDE5OjQ3OjM2IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogSW5jbHVkZSBtb3JlIGNvbW1hbmRzIGZvciBBVFNUSzEwMDAKCiAgICBJbmNsdWRlIHRoZSBpbWksIGltbHMgYW5kIGpmZnMgY29tbWFuZHMgc2V0cyBieSBkZWZhdWx0IG9uIEFUU1RLMTAwMC4KICAgIEFsc28gZGVmaW5lIENPTkZJR19CT09UQVJHUyB0byBzb21ldGhpbmcgbW9yZSB1c2VmdWwsIGRlZmluZQogICAgQ09ORklHX0JPT1RDT01NQU5EIGFuZCBlbmFibGUgYXV0b2Jvb3QgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5YzBkZWI1YWUzZWEwMTg5ZjJlMDhhYzI5ZWYxMzE2ZjFmYjg1NDhkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXIgMjEgMTk6NDQ6NDggMjAwNyArMDEwMAoKICAgIEFWUjMyOiBQcm92aWRlIGEgZGVmaW5pdGlvbiBvZiBzdHJ1Y3Qgc3RhdAoKICAgIENvcHkgdGhlIGRlZmluaXRpb24gb2Ygc3RydWN0IHN0YXQgZnJvbSB0aGUgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDEyZjA5OWMwODE2N2E3YTUxYWVlZTYyM2JjMTZkYWZkMDg0MTI3MWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNDo0NjowNiAyMDA2ICswMTAwCgogICAgQVZSMzI6IFVzZSBpbml0ZHJhbSgpIGluc3RlYWQgb2YgYm9hcmRfaW5pdF9tZW1vcmllcygpCgogICAgQ29uZm9ybSB0byB0aGUgInN0YW5kYXJkIiBpbnRlcmZhY2UgYW5kIHVzZSBpbml0ZHJhbSgpIGluc3RlYWQgb2YKICAgIGJvYXJkX2luaXRfbWVtb3JpZXMoKSBvbiBBVlIzMi4gVGhpcyBlbmFibGVzIHVzIHRvIGdldCByaWQgb2YgdGhlCiAgICBzZHJhbV9zaXplIG1lbWJlciBvZiB0aGUgZ2xvYmFsX2RhdGEgc3RydWN0IGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMWY0ZjIxMjFjMjY4NTE4MmViODdmYTlhOWI3OTlkMTkxNzM4N2ExYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gTm92IDIwIDE1OjUzOjEwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogUmVsb2NhdGUgdS1ib290IHRvIFNEUkFNCgogICAgUmVsb2NhdGUgdGhlIHUtYm9vdCBpbWFnZSBpbnRvIFNEUkFNIGxpa2UgZXZlcnlvbmUgZWxzZSBkb2VzLiBUaGlzCiAgICBtZWFucyB0aGF0IHdlIGNhbiBoYW5kbGUgbXVjaCBsYXJnZXIgLmRhdGEgYW5kIC5ic3MgdGhhbiB3ZSB1c2VkIHRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGRmNTQ4ZDNjM2UyYmJjNDAyNTg3MTMxNjc4NTlmZmMyY2U5OWE5MDAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIE5vdiAxOSAxODowNjo1MyAyMDA2ICswMTAwCgogICAgQVZSMzI6IFJlc291cmNlIG1hbmFnZW1lbnQgcmV3cml0ZQoKICAgIFJld3JpdGUgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgY29kZSAoaS5lLiBJL08gbWVtb3J5LCBjbG9jayBnYXRpbmcsCiAgICBncGlvKSBzbyBpdCBkb2Vzbid0IGRlcGVuZCBvbiBhbnkgZ2xvYmFsIHN0YXRlLiBUaGlzIGlzIG5lY2Vzc2FyeQogICAgYmVjYXVzZSB0aGlzIGNvZGUgaXMgaGVhdmlseSB1c2VkIGJlZm9yZSByZWxvY2F0aW9uIHRvIFJBTSwgc28gd2UKICAgIGNhbid0IHdyaXRlIHRvIGFueSBnbG9iYWwgdmFyaWFibGVzLgoKICAgIEFzIGFuIGFkZGVkIGJvbnVzLCB0aGlzIG1ha2VzIHUtYm9vdCdzIG1lbW9yeSBmb290cHJpbnQgYSBiaXQgc21hbGxlciwKICAgIGFsdGhvdWdoIHNvbWUgZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBsZWZ0IG91dDsgYWxsIGNsb2NrcyBhcmUgZW5hYmxlZAogICAgYWxsIHRoZSB0aW1lLCBhbmQgdGhlcmUncyBubyBjaGVja2luZyBmb3IgZ3BpbyBsaW5lIGNvbmZsaWN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwM2QxZTEzNjU3OTZjZDE1ZDE3MjZlOGE1MWZkOGI1YmU1MGIyZmU5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMTggMTg6MDE6MTMgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBDbGVhbiB1cCBtZW1vcnktbWFwLmggZm9yIGF0MzJhcDcwMDAKCiAgICBDb252ZXJ0IHNwYWNlcyB0byB0YWJzIChtdXN0IGhhdmUgbWlzc2VkIHRoaXMgb25lIGxhc3QgdGltZSBhcm91bmQpLAogICAgc29ydCB0aGUgZW50cmllcyBieSBhZGRyZXNzIGFuZCBncm91cCB0aGVtIHRvZ2V0aGVyIGJ5IGJ1cwogICAgY29ubmVjdGl2aXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDI4YzY5OWVmNjlmNGI2Y2RmMjUyZTQ3NDdiN2I1OTAwMjhhODg5ODEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzozMjozMSAyMDA2ICswMTAwCgogICAgQVZSMzI6IEJ1aWxkIHBvc2l0aW9uLWluZGVwZW5kZW50IHUtYm9vdAoKICAgIEFkZCAtZlBJQyAtbW5vLWluaXQtZ290IHRvIHRoZSBhdnIzMi1zcGVjaWZpYyBDRkxBR1MgdG8gbWFrZSB1LWJvb3QKICAgIHBvc2l0aW9uIGluZGVwZW5kZW50LiBUaGlzIHdpbGwgbWFrZSByZWxvY2F0aW9uIGEgbG90IGVhc2llci4KCiAgICAtbW5vLWluaXQtZ290IG1lYW5zIHRoYXQgZ2NjIHNob3VsZG4ndCBlbWl0IGNvZGUgdG8gbG9hZCB0aGUgR09UCiAgICBhZGRyZXNzIGludG8gcjYgaW4gZXZlcnkgZnVuY3Rpb24gcHJvbG9ndWUuIFdlIGRvIGl0IG9uY2UgYW5kIGZvcgogICAgYWxsIGluIHRoZSBlYXJseSBzdGFydHVwIGFzc2VtYmx5IGNvZGUsIHNvIGVuYWJsaW5nIHRoaXMgb3B0aW9uCiAgICBtYWtlcyB1LWJvb3QgYSBiaXQgZmFzdGVyIGFuZCBzbWFsbGVyLgoKICAgIFRoZSBhc3NlbWJseSBwYXJ0cyBoYXZlIGFsd2F5cyBiZWVuIHBvc2l0aW9uLWluZGVwZW5kZW50LCBzbyBubyBjb2RlCiAgICBjaGFuZ2VzIHNob3VsZCBiZSBuZWNlc3NhcnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNTM3NGIzNmRlOTFkMDA2ZDFkZjk1MzYyNTlmYTlmNjZiMDFhYTNhYQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE3OjI0OjMxIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogVXNlIGF2cjMyLWxpbnV4LSBjcm9zcy1jb21waWxhdGlvbiBwcmVmaXggYnkgZGVmYXVsdAoKICAgIEl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciB3aGljaCB0b29sY2hhaW4geW91IHVzZSB0byBjb21waWxlIHUtYm9vdCwKICAgIGJ1dCB0aGUgYXZyMzItbGludXggb25lIGlzIHByb2JhYmx5IHdoYXQgbW9zdCBwZW9wbGUgaGF2ZSBpbnN0YWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzg0MWJlZWRkZWJlY2UwMDM5ZTcyNGZiMjdmNGQxYTM5ZWUxYzZiNgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE3OjE1OjMwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogU3BsaXQgc3RhcnRfdV9ib290IGludG8gYm9hcmRfaW5pdF9mIGFuZCBib2FyZF9pbml0X3IKCiAgICBTcGxpdCB0aGUgYXZyMzIgaW5pdGlhbGl6YXRpb24gY29kZSBpbnRvIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZQogICAgcmVsb2NhdGlvbiwgYm9hcmRfaW5pdF9mIGFuZCBhIGZ1bmN0aW9uIHRvIHJ1biBhZnRlciByZWxvY2F0aW9uLAogICAgYm9hcmRfaW5pdF9yLiBGb3Igbm93LCBib2FyZF9pbml0X2Ygc2ltcGx5IGNhbGxzIGJvYXJkX2luaXRfcgogICAgYXQgdGhlIGVuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzNzQwMzAwNWNmZTZiYjEzOTY0ZDQ1MGY2YTQ4YTBiMGYyZjcwMTdlCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgQXByIDE0IDA1OjI2OjQ4IDIwMDcgKzAyMDAKCiAgICBbRml4XQlTZXQgdGhlIExFRCBzdGF0dXMgcmVnaXN0ZXIgb24gdGhlIFVDMTAxIGZvciB0aGUgTFhUOTcxIFBIWS4KCSAgICBjbGVhciB0aGUgRGlzcGxheSBhZnRlciByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA3ODgyNzUxYzc4YjdlY2FiZmQ0OWIwZWZmOGRlMjc2NjFjNzFmMTZjCkF1dGhvcjogRGVuaXMgUGV0ZXIgPGQucGV0ZXJAbXBsLmNoPgpEYXRlOglGcmkgQXByIDEzIDA5OjEzOjMzIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEZpeCBidWdzIGluIGNtZF9pZGUuYyBhbmQgY21kX3Njc2kuYwoKICAgIEZpeCBidWcgaW50cm9kdWNlZCBieSAiRml4IGdldF9wYXJ0aXRpb25faW5mbygpIHBhcmFtZXRlciBlcnJvciBpbiBhbGwKICAgIG90aGVyIGNhbGxzIiBmcm9tIDIwMDUtMDMtMDQgaW4gY21kX2lkZS5jIGFuZCBjbWRfc2NzaS5jLCB3aGljaCBwcmV2ZW50ZWQKICAgIHRvIHVzZSBkaXNrYm9vdCBvciBzY3NpYm9vdCBmb3JtIGFub3RoZXIgZGV2aWNlIHRoYW4gMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZW5pcyBQZXRlciA8ZC5wZXRlckBtcGwuY2g+Cgpjb21taXQgMGI5NDUwNGQyMmU3MGY1MzdjMTdhMGQzOGM4N2VkYjZlMzcwOTc3ZApBdXRob3I6IEdyZWcgTG9wcCA8bG9wcEBwb2JveC5jb20+CkRhdGU6CUZyaSBBcHIgMTMgMDg6MDI6MjQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gRml4IHVzZSBvZiAidm9pZCAqIiBmb3IgYmxvY2sgZGV2IHJlYWQvd3JpdGUgYnVmZmVyIHBvaW50ZXJzCgogICAgU2lnbmVkLW9mLWJ5OiBHcmVnIExvcHAgPGxvcHBAcG9ib3guY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2ZmJmMjYxZjhkZjI5NGU1ODljZmFkZWJlYmU1NDY4ZTNjMGYyOWU5CkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgOSAxOTowODoyNSAyMDA3ICswODAwCgogICAgRml4IHR3byBidWdzIGZvciBNUEM4M3h4IEREUjIgY29udHJvbGxlciBTUEQgSW5pdAoKICAgIFRoZXJlIGFyZSBhIGZldyBidWdzIGluIHRoZSBjcHUvbXBjODN4eC9zcGRfc2RyYW0uYwogICAgdGhlIGZpcnN0IGJ1ZyBpcyB0aGF0IHRoZSBwaWNvc190b19jbGsgcm91dGluZSBpbnRyb2R1Y2VzIGEgaHVnZQogICAgcm91bmRpbmcgZXJyb3IgaW4gODN4eC4KICAgIHRoZSBzZWNvbmQgYnVnIGlzIHRoYXQgdGhlIG1vZGUgcmVnaXN0ZXIgd3JpdGUgcmVjb3ZlcnkgZmllbGQgaXMKICAgIHRXUi0xLCBub3QgdFdSID4+IDEuCgpjb21taXQgMmFkM2FiYTAxZDM3YjcyZTdjOTU3YjA3ZTEwMmZjY2Q2NGZlNmQxMwpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglUaHUgQXByIDEyIDE0OjE1OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBpMmMgZGl2aXNvciBjYWxjdWxhcmlvbiBmb3IgUFBDNHh4CgogICAgVGhpcyBwYXRjaCBmaXhlcyBjaGFuZ2VzIHRoZSBpMmNfaW5pdCguLi4pIGZ1bmN0aW9uIHRvIHVzZSB0aGUgZnVuY3Rpb24KICAgIGdldF9PUEJfZnJlcSgpIHJhdGhlciB0aGFuIGNhbGN1bGF0aW5nIHRoZSBPUEIgc3BlZWQgYnkKICAgIHN5c0luZm8uZnJlcVBMQi9zeXNJbmZvLnBsbE9wYkRpdi4gVGhlIGdldF9PUEJfZnJlcSgpIGZ1bmN0aW9uIGlzCiAgICBzcGVjaWZpYyBwZXIgcHJvY2Vzc29yLiBUaGUgcHJpb3IgbWV0aG9kIHdhcyBub3QgYW5kIHNvIHdhcyBjYWxjdWxhdGluZwogICAgdGhlIHdyb25nIHNwZWVkIGZvciBzb21lIFBQQzR4eCBwcm9jZXNzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZjOWJhOTE5Mzc1ZGI5NzdhYWFkOTE0NmJmMzIwYzdhZmQwN2FlN2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDExIDE3OjI1OjAxIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MTA1NmRkOTg2M2U2YTFiYzM2M2FmYmJlMTc3NWM1OGNkOTY3NDE4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxMSAxNzoyMjo1NSAyMDA3ICswMjAwCgogICAgVXBkYXRlIGZvciBTQzMgYm9hcmQKCiAgICAqIE1ha2UgSURFIHRpbWVvdXQgY29uZmlndXJhYmxlIHRocm91Z2ggaWRlX3Jlc2V0X3RpbWVvdXQgdmFyaWFibGUuCiAgICAqIFVzZSBOZXdsaW5lIGFzICJwYXNzd29yZCIgc3RyaW5nCiAgICAqIFVzZSBqdXN0IGEgc2luZ2xlIHBhcnRpdGlvbiBpbiBOQU5EIGZsYXNoCgpjb21taXQgM2Q5OGI4NTgwMGM4MGRjNjgyMjdjOGYxMGJmNWM5MzQ1NmQ2ZDA1NApBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMjIgMTI6Mzc6MzAgMjAwNyAtMDYwMAoKICAgIEFkZCBQSVhJUyBGUEdBIHN1cHBvcnQgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIE1vdmUgdGhlIDg2NDFIUENOJ3MgUElYSVMgY29kZSB0byB0aGUgbmV3IGRpcmVjdG9yeQogICAgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi8gYXMgaXQgd2lsbCBiZSBzaGFyZWQgYnkKICAgIGZ1dHVyZSBib2FyZHMgbm90IGluIHRoZSBzYW1lIHByb2Nlc3NvciBmYW1pbHkuCgogICAgV3JpdGUgYSAicGl4aXNfcmVzZXQiIGNvbW1hbmQgdGhhdCB1dGlsaXplcyB0aGUgRlBHQQogICAgcmVzZXQgc2VxdWVuY2VyIHRvIHN1cHBvcnQgYWx0ZXJuYXRlIHNvZnQtcmVzZXQgb3B0aW9ucwogICAgc3VjaCBhcyB1c2luZyB0aGUgImFsdGVybmF0ZSIgZmxhc2ggYmFuaywgZW5hYmxpbmcKICAgIHRoZSB3YXRjaCBkb2csIG9yIGNob29zaW5nIGRpZmZlcmVudCBDUFUgZnJlcXVlbmNpZXMuCgogICAgQWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBwaXhpc19yZXNldCB0byBSRUFETUUubXBjODY0MWhwY24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjRkYmJkNDBjNTgzNDliNjRmNDNmZDMzZGJiNWNhMGFkYjY3ZDY0MgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBcHIgNiAxNDoxOTo0MyAyMDA3IC0wNDAwCgogICAgTW92ZWQgZmR0IGNvbW1hbmQgc3VwcG9ydCBjb2RlIHRvIGZkdF9zdXBwb3J0LmMKCiAgICAuLi5pbiBwcmVwYXJhdGlvbiBmb3IgaW1wcm92aW5nIHRoZSBib290bSBjb21tYW5kJ3MgaGFuZGxpbmcgb2YgZmR0IGJsb2JzLgogICAgQWxzbyBjbGVhbmVkIHVwIHNvbWUgY29kaW5nIHNsb3BwaW5lc3MuCgpjb21taXQgNjY3OWY5Mjk5NTM0ZTQ4OGExNzFhOWJiOGY5YmI4OTFkZTI0N2FhYgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBcHIgNiAxNDoxNzoxNCAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBNYWtlIGZkdF9jaGVja19oZWFkZXIoKSBwdWJsaWMKCiAgICBDaGFuZ2VkIF9mZHRfY2hlY2tfaGVhZGVyKCkgdG8gZmR0X2NoZWNrX2hlYWRlcigpIGFuZCBtYWRlIGl0IHBhcnQgb2YKICAgIHRoZSBpbnRlcmZhY2UgLSBpdCBpcyBhIHVzZWZ1bCByb3V0aW5lLgoKICAgIEFsc28gZGlkIHNvbWUgYXN0aGV0aWNzIGNsZWFudXAgdG8gdGhlIGluY2x1ZGUgZmlsZXMgKGhlYWRlcnMpLgoKY29tbWl0IGMwNzA3Y2U2NTY3NzY1MGI1Y2VhYjA1MDBlZTUwYWU1MTY4YWZlZjIKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzQ6MDYgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEtpbGwgb2ZmIGEgYnVuY2ggb2YgY29tbW9uIGxvY2FsIHByb3RvdHlwZXMKCmNvbW1pdCA3YjdlMzBhYTY0YmI2NjU3YTFiZmQzMmZkYmRiZmViNTYxZTZhNDhkCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMzOjA0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBGaXggZHluYW1pYyBDUExCIGdlbmVyYXRpb24gaXNzdWUKCmNvbW1pdCAwNDQ1ZTNhMjY0MjUxZDc1YjFiZTQ1ZWY3MTNjNzA3MjZhMjk1MmYwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMxOjQ3IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBtaW5pb3IgY2xlYW51cAoKY29tbWl0IDE1NWZkNzY2NTczOTgxMDkwZTYzOGI0OTNkNTg1NzU2MjE1MTg2MmUKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzE6MTggMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEZpeCBjb3B5cmlnaHQgYW5kIHVwZGF0ZSBsaWNlbnNlCgpjb21taXQgOWZkNDM3YmJkNzVkMjgyZjg5OWUxZGE1MGJlMjBhMmJmMzg0NTBiYwpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMDoyNSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gQWRkIEJGNTM3IEVNQUMgZHJpdmVyIGluaXRpYWxpemF0aW9uCgpjb21taXQgODg5MjU2ZTg2MDRlMGM2OGRiMWQ4NjZkNzIwODk0ZGZmZWRlOWRmNgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyOTo1NSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY2FsbCByZWFsIHRoZSBzeXN0ZW0gc3luY2hyb25pemUgaW5zdHJ1Y3Rpb24KCmNvbW1pdCBlMGRmMWM5MjFiNzg4Mjg5NTY0ZTRjMWVlNzEyMGE2YTljZDNhYjA1CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjI5OjE3IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSByZW1vdmUgYXNtL3BhZ2UuaCBhcyB3ZSBkbyBub3QgYWN0dWFsbHkgdXNlL3dhbnQgYW55IG9mIHRoZXNlIGRlZmluaXRpb25zIG5vciBkb2VzIGFueSBvdGhlciBhcmNoIGluY2x1ZGUgaXQKCmNvbW1pdCBkZmVlYWIyY2Q2ODBkZjA0N2U2OGU3MjNiMjQ2YWRmNmYzM2JiNTU2CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjI4OjM0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXTogZml4IGZsYXNoIHVuYWxpZ25lZCBjb3B5IGlzc3VlCgpjb21taXQgNDQzZmViNzQwNTg0ZTQwNmVmYTIwM2FmOTA5ZmUyOTI2NjA4ZThkNQpBdXRob3I6IElnb3IgTWFybmF0IDxtYXJueUByYW1ibGVyLnJ1PgpEYXRlOglXZWQgTWFyIDIxIDA5OjU1OjAxIDIwMDcgKzAzMDAKCiAgICBVcGRhdGUgdXNhZ2Ugb2YgJ25jJyBpbiBSRUFETUUuTmV0Q29uc29sZQoKICAgIEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IHVzYWdlIG9mIE5ldENvbnNvbGUgb24gc3lzdGVtcyB3aGVyZSB0aGUgLWwgYW5kIC1wCiAgICBzd2l0Y2hlcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgoKICAgIFNpZ25lZC1vZmYtYnk6IElnb3IgTWFybmF0IDxtYXJueUByYW1ibGVyLnJ1PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgMzFjOThhODgyMjgwMjFiMzE0Yzg5ZWJiODEwNGZiNjQ3M2RhNDQ3MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgNCAwMjowOTozMCAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgOTRhYmQ3YzA1ODNlYmUwMWU3OTliMjVmNDUxMjAxZGVlYWFiNTUwZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgNCAwMTo0OToxNSAyMDA3ICswMjAwCgogICAgTWlub3IgY2xlYW51cC4KCmNvbW1pdCA4MjJhZjM1MWFkMmJhYmM3ZDk5MDMzMzYxYTVmY2FjZDMwZjZiYzc4CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglUdWUgQXByIDMgMTQ6Mjc6MTggMjAwNyArMDIwMAoKICAgIFN1cHBvcnQgZm9yIHRoZSBQaGlsaXBzIElTUDExNnggSENEIChIb3N0IENvbnRyb2xsZXIgRHJpdmVyKQoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KCmNvbW1pdCBlZGY1ODUxYmU2YzE3YzAzMWQ0ZjcxZGQ1YjBhMTIwNDBiN2M1MGM4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAzIDE0OjI3OjA4IDIwMDcgKzAyMDAKCiAgICBVU0I6IGNsZWFudXAgbW9uYWhhbnMgdXNiIHN1cHBvcnQuIFJlbW92ZSBkZWFkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBhNjVjNTc2OGU1NTM3NTMwYmQxNzgwYWYzZDNmZGRjMzExM2ExNjNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXByIDIgMTA6MDk6MzAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIFN5c0FDRSBhZGRyZXNzIG9uIEthdG1haQoKICAgIFdpdGggdGhpcyBuZXcgYmFzZSBhZGRyZXNzIG9mIHRoZSBYaWxpbnggU3lzdGVtQUNFIGNvbnRyb2xsZXIKICAgIHRoZSBMaW51eCBkcml2ZXIgd2lsbCBiZSBlYXNpZXIgdG8gYWRhcHQsIHNpbmNlIGl0IGNhbiBub3cgYmUKICAgIG1hcHBlZCB2aWEgdGhlICJub3JtYWwiIGlvcmVtYXAoKSBjYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZWEwM2M0ZThjM2EyMWNlNDNkM2ZhZjQ4YTZlNmQ0NzRjOGJkZjczCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxNDozMDo1MyAyMDA3IC0wNDAwCgogICAgRml4IHNvbWUgbWlub3Igd2hpdGVzcGFjZSB2aW9sYXRpb25zLgoKY29tbWl0IDIxM2JmOGM4MjJkZThlZWNhZjY5ODYwNjg0NDY5Y2RhYmEyZTllNmEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjIzOjUxIDIwMDcgLTA0MDAKCiAgICBBZGQgYSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUgKGZkdCkgY29tbWFuZCAoMiBvZiAyKQoKICAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGV4aXN0aW5nIGNvZGUgdG8gc3VwcG9ydCB0aGUgbmV3IGZkdCBjb21tYW5kLgoKY29tbWl0IDc4MWUwOWVlNmUzZTNlMzkyYWIzNjJjMWYwZWYxMDY4YWRjNzZlM2UKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjIyOjEwIDIwMDcgLTA0MDAKCiAgICBBZGQgYSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUgKGZkdCkgY29tbWFuZCAoMSBvZiAyKQoKICAgIFRoZSBmZHQgY29tbWFuZCB1c2VzIERhdmlkIEdpYnNvbidzIGxpYmZkdCBsaWJyYXJ5IHRvIG1hbmlwdWxhdGUgYXMgd2VsbAogICAgYXMgcHJpbnQgdGhlIGZsYXR0ZW5lZCBkZXZpY2UgdHJlZS4gIFRoaXMgcGF0Y2ggaXMgdGhlIG5ldyBjb21tYW5kLAogICAgdGhlIHNlY29uZCBwYXJ0IGlzIHRoZSBtb2RpZmljYXRpb25zIHRvIHRoZSBleGlzdGluZyBjb2RlLgoKY29tbWl0IDNhZjBkNTg3ZDkzZTBiZTVmOTZlMWIzMGZhNDFlNjYyZjhiMDgwM2UKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjEzOjQzIDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEVuaGFuY2VkIGFuZCBwdWJsaXNoZWQgZmR0X25leHRfdGFnKCkKCiAgICBFbmhhbmNlZCB0aGUgZm9ybWVybHkgcHJpdmF0ZSBmdW5jdGlvbiBfZmR0X25leHRfdGFnKCkgdG8gYWxsb3cgc3RlcHBpbmcKICAgICAgdGhyb3VnaCB0aGUgdHJlZSwgdXNlZCB0byBwcm9kdWNlIGEgaHVtYW4tcmVhZGFibGUgZHVtcCwgYW5kIG1hZGUKICAgICAgaXQgcGFydCBvZiB0aGUgcHVibGlzaGVkIGludGVyZmFjZS4KICAgIEFsc28gYWRkZWQgc29tZSBjb21tZW50cy4KCmNvbW1pdCBmYTNhNzRjZWM3M2RmZDA2YTVhZTM1YTlhMzM2ODIwMDI3M2FhYTcxCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjowNTozOSAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBDdXN0b21pemF0aW9ucyBmb3IgdXNlIGJ5IHUtYm9vdC4KCiAgICBDaGFuZ2VzIHRvIERhdmlkIEdpYnNvbidzIG9yaWdpbmFsIHNvdXJjZSB0byBmaXQgaW50byB1LWJvb3QncwogICAgZW52aXJvbm1lbnQuICBObyBmdW5jdGlvbmFsaXR5IGNoYW5nZXMuCgpjb21taXQgMzU3NDgxNzdjNjRhNGE4M2EwMDA1N2U5M2JiMzNlNDAyNzhhMmE5NgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MDA6NTYgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogSW1wb3J0IGxpYmZkdCBzb3VyY2UgKDIgb2YgMikKCiAgICBUaGlzIGFkZHMgdGhlIGFwcGxpY2FibGUgbGliZmR0IHNvdXJjZSBmaWxlcyAodW5tb2RpZmllZCkgYW5kIGEgUkVBRE1FCiAgICB0byBleHBsYWluIHdoZXJlIHRoZSBzb3VyY2UgY2FtZSBmcm9tLgoKY29tbWl0IDdjZDVkYTBmZTg3N2U3MTcxYTRjZGQ0NDg4MGJjZTc4MzEzMjg3MWEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDExOjU5OjU5IDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEltcG9ydCBsaWJmZHQgc291cmNlICgxIG9mIDIpCgogICAgVGhpcyBhZGRzIHRoZSBhcHBsaWNhYmxlIGxpYmZkdCBzb3VyY2UgZmlsZXMgKHVubW9kaWZpZWQpIGFuZCBhIFJFQURNRQogICAgdG8gZXhwbGFpbiB3aGVyZSB0aGUgc291cmNlIGNhbWUgZnJvbS4KCmNvbW1pdCBkYTZlYmMxYmMwODJjYmUzYjZiYmRlMDc5Y2FmZTA5ZjdlYmJhZDRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDEzOjE2OjIzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLYXRtYWkgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBOb3cgdGhlIEREUjIgZnJlcXVlbmN5IGlzIGFsc28gMipQTEIgZnJlcXVlbmN5IHdoZW4gMTY2TUh6IFBMQgogICAgaXMgc2VsZWN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNhYmVlNzU2YTY1MzI5ODY3Mjk0NzdjM2NjMWVhMTZlZjg1MTdhZDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMTM6MTU6MDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0eF9zcGRfZGRyMiBjb2RlICg0NDBTUC80NDBTUGUpCgogICAgQWRkaXRpb25hbCBSQU0gaW5mb3JtYXRpb24gaXMgbm93IHByaW50ZWQgdXBvbiBwb3dlcnVwLCBsaWtlCiAgICBERFIyIGZyZXF1ZW5jeSBhbmQgQ0FTIGxhdGVuY3kuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYwNzIzODAzNDMxYWM3NWNhZDA4NTY5MDc4OWU0MzNkNWFiOTE3NGUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMDg6NDg6MzYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIFl1Y2NhIGNvbmZpZyBmaWxlIHRvIHN1cHBvcnQgRUNDCgogICAgV2l0aCB0aGUgdXBkYXRlZCA0NHggRERSMiBkcml2ZXIgdGhlIFl1Y2NhIGJvYXJkIG5vdyBzdXBwb3J0cwogICAgRUNDIGdlbmVyYXRpb24gYW5kIGNoZWNraW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0OTBlNTczMGM2NzRiMjBkNzA4Yjc4M2EyYzVmZmQ3MjA4ZjgzODczCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ3OjM0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCAiYm9vdHN0cmFwIiBjb21tYW5kIGZvciBLYXRtYWkgYm9hcmQKCiAgICBUaGUgYm9hcmQgc3BlY2lmaWMgImJvb3RzdHJhcCIgY29tbWFuZCBpcyBub3cgZml4ZWQgYW5kIGNhbgogICAgYmUgdXNlZCBmb3IgdGhlIEFNQ0MgS2F0bWFpIGJvYXJkIHRvIGNvbmZpZ3VyZSBkaWZmZXJlbnQKICAgIENQVS9QTEIvT1BCIGZyZXF1ZW5jaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5NGY1NDcwM2MzYTc3NmVjMjNlNDI3Y2EyYTE2ZTBhNzlhNWQ1MGMxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ2OjA4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NHhfc3BkX2RkcjIgY29kZSAoNDQwU1AvNDQwU1BlKQoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgYXV0byBjYWxpYnJhdGlvbiByb3V0aW5lLiBUaGlzIGRyaXZlciBub3cgcnVucwogICAgbW9yZSByZWxpYWJsZSB3aXRoIHRoZSB0ZXN0ZWQgbW9kdWxlcy4gSXQncyBhbHNvIHRlc3RlZCB3aXRoCiAgICAxNjdNSHogUExCIGZyZXF1ZW5jeSAoNjY3TUh6IEREUjIgZnJlcXVlbmN5KSBvbiB0aGUgS2F0bWFpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNDJjZDA5N2JlMWU3YWZmZTgyZjQyYWIzZGEyMjA5NTlhNjk5ZTY0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDMwIDIyOjUyOjA5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIENsZWFuIGluY2x1ZGUgZGVwZW5kZW5jZQoKY29tbWl0IDZmOTM0MjEwZmIyOTNmZGUyY2ZiNDI1MWM2ZDk2ZmRjNThiNmE5MDYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMzAgMjI6NDI6NDUgMjAwNyArMDIwMAoKICAgIFtDTEVBTl0gUmVtb3ZlIGluZWZmaWNpZW50IFN1emFrdSBjb2RlCgpjb21taXQgNDMwZjFiMGY5YTY3MGMyZjEzZWFhNTJlNjZhMTBkYjk2ZGQzNjQ3ZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyOCAxNTowMzoxNiAyMDA3ICswMjAwCgogICAgTWVyZ2Ugc29tZSBBTUNDIG1ha2UgdGFyZ2V0cyB0byBrZWVwIHRoZSB0b3AtbGV2ZWwgTWFrZWZpbGUgc21hbGxlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwYzc1YzlkODQzMDdhOWYxY2JlMWZmMGM0ZDg5MzdlZTNhOTY0NzVlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI4IDE0OjUyOjEyIDIwMDcgKzAyMDAKCiAgICBpMmM6IEVuYWJsZSAib2xkIiBpMmMgY29tbWFuZHMgZXZlbiB3aGVuIENPTkZJR19JMkNfQ01EX1RSRUUgaXMgZGVmaW5lZAoKICAgIFRoZSAib2xkIiBpMmMgY29tbWFuZHMgKGlwcm9iZSwgaW1kLi4uKSBhcmUgbm93IGNvbXBpbGVkIGluIGFnYWluLAogICAgZXZlbiB3aGVuIHRoZSBpMmMgY29tbWFuZCB0cmVlIGlzIGVuYWJsZWQgdmlhIHRoZSBDT05GSUdfSTJDX0NNRF9UUkVFCiAgICBjb25maWcgb3B0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZGEwNDhhZGY0NGJlYTVlM2I5NDA4MGQwMjkwM2MyZTNmZTdhYTRhCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTWFyIDI3IDAwOjMyOjE2IDIwMDcgKzAyMDAKCiAgICBQQVRDSDogUmVzb2x2ZSBHUEwgbGljZW5zZSBwcm9ibGVtCgpjb21taXQgYWUwMGJiNGIyOTQ0ZGM2NGE0ODVlZDcyYTE5NzU0YjExYWY3YzIyMwpBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJTW9uIE1hciAyNiAxMjowMzozNiAyMDA3ICswMjAwCgogICAgUFhBOiBweGEyN3ggVVNCIE9IQ0kgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGFlNzlmNjA2NzdjMjA4MzI2NTM1NjQ3ZGNiZDVjM2VjNDBkYmNiMGIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTWFyIDI2IDExOjIxOjA1IDIwMDcgKzAyMDAKCiAgICBVU0I6IHJlbW92ZSB0aGUgUzNDMjRYMF9tZXJnZSAjZGVmaW5lLCB3aGljaCB3YXMgaW50cm9kdWNlZCB3aGlsZQogICAgbWVyZ2luZyBPSENJIGRyaXZlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxNzk4MDQ5NTIyZjU5NDAxM2FlYTI5NDU3ZDQ2Nzk0Mjk4YzZhZTE1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxyb290QG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1hciAyNiAwMTozOTowNyAyMDA3ICswMjAwCgogICAgU3VwcG9ydCBmb3IgWFVQVjJQIGJvYXJkCiAgICBSZXNldCBzdXBwb3J0CiAgICBCU1AgYXV0b2NvbmZpZyBzdXBwb3J0Cgpjb21taXQgMGQ5NzRkNTI5NzM0OTUwNGEyZGRmYTA5MzE0YmU1NzNiNWRmMzIwYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo1NzowOSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgNHh4IEdQSU8gZnVuY3Rpb25zCgogICAgVGhpcyBwYXRjaCBhZGRzIHNvbWUgNHh4IEdQSU8gZnVuY3Rpb25zLiBJdCBhbHNvIG1vdmVzIHNvbWUgb2YgdGhlCiAgICBjb21tb24gY29kZSBhbmQgZGVmaW5lcyBpbnRvIGEgY29tbW9uIDR4eCBHUElPIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZGI2MzM2NThiYmYzNjZhYjBjOGRhZDdhMDcyN2UxZmIyYWU2YjExCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI0IDE1OjU1OjU4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFNtYWxsIFNlcXVvaWEgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzY2I4NmYzZTQwZDJhODAzNTYxNzc0MzRhOTlmNzViYzhiYWE5Y2FmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI0IDE1OjQ1OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENsZWFuIHVwIDQwRVovQWNhZGlhIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGNsZWFucyB1cCBhbGwgdGhlIG9wZW4gaXNzdWUgb2YgdGhlIHByZWxpbWluYXJ5CiAgICBBY2FkaWEgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmViMWRmODM1MTkxZDhjZTRiODFkNWFmNDBmYThlMGZiZTc4ZTk5NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBEZWMgMTIgMTE6MDI6MjAgMjAwNiAtMDYwMAoKICAgIEZpeCA4NjQxSFBDTiBwcm9ibGVtIHdpdGggbGQgdmVyc2lvbiAyLjE2CgogICAgKERvdCBvdXRzaWRlIHNlY3Rpb25zIHByb2JsZW0pLgoKICAgIFRoaXMgZml4IGlzIGluIHRoZSBzcGlyaXQgb2YgODA3ZDVkNzMxOTMzMGUzMzZhYjM0YTU2MjNjNWUwZDczYjg3ZDU0MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk5NjRhNGRkMGQ0ZWY1YTAzN2ZlYmFlYmYxYWE0OTRiMWE3Mjk5MWMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMTA6MzU6NTUgMjAwNiAtMDYwMAoKICAgIFNldCBSZXYgMi54IDg2eHggUElDIGluIG1peGVkIG1vZGUuCgogICAgUHJldmVudCBmYWxzZSBpbnRlcnJ1cHQgZnJvbSBoYW5naW5nIExpbnV4IGFzIE1TUltFRV0gaXMgc2V0CiAgICB0byBlbmFibGUgaW50ZXJydXB0cyBieSBjaGFuZ2luZyB0aGUgUElDIG91dCBvZiB0aGUgZGVmYXVsdAogICAgcGFzcyB0aHJvdWdoIG1vZGUgaW50byBtaXhlZCBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVhNThhNzNjZWIwYTQwNTljNDJlZjY0Y2VkYmMxYTQ1ZTBhYWEwMGUKQXV0aG9yOiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMTA6MzI6MzUgMjAwNiAtMDYwMAoKICAgIEFkZCBmbGFzaCBjbWQgZnVuY3Rpb24gdG8gODY0MUhQQ04gcmFtYm9vdAoKICAgIEFsc28gZml4ZXMgc29tZSBjb21tbWFuZCBmb3IgODY0MSBIUENOIHJhbWJvb3QgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyY2NjZWFjYzA0YjAwOWQ5MjNhZmI3YzI2MTg5YmEyZjhhMmE1ZDQ2CkF1dGhvcjogRWQgU3dhcnRob3V0IDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjM0OjE0IDIwMDYgLTA2MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgODY0MSBSZXYgMiBzaWxpY29uLgoKICAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgSSBhbSB1bmFibGUgdG8gZ2V0IHRvIHRoZSBwcm9tcHQgb24gcmV2IDIgc2lsaWNvbi4KICAgIE9ubHkgc2V0IGRkcmlvb3ZjciBmb3IgcmV2MS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQ8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0YmE0NjRiOTkwMDFmOGJkMWM0NTZhMWU5ZDU5NzI2MjUyZjcwN2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDIyIDAwOjEzOjEyIDIwMDcgKzAxMDAKCiAgICBDb2RlIGNsZWFudXAgLyByZS1pbnNlcnQgcHJldmlvdXMgQ29weXJpZ2h0IGVudHJpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYThkZmUwODM1OWExYjY2MzQxOGIyZmFhMWRhMWQ3YmNlMzRkMzAyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAyMzoyNjoxNSAyMDA3ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgZTY2MTVlY2Y0ZWFmNGRkNTI2OTY5MzRhZWQ4ZjVjNjQ3NGNmZDI4NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxNDo1NDoyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggZmlsZSBtb2RlIG9mIGluY2x1ZGUvY29uZmlncy9hY2FkaWEuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNWY0NjE0YzkzNTBkOTMzM2U1NzUxMDBmYjI1MGFhYjc3NGQwMjU4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxNDo0MTo0NiAyMDA3ICswMTAwCgogICAgU1BDMTkyMDogZml4IHNtYWxsIGNsb2NrIHJvdXRpbmcgYnVnCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxNmMwY2MxYzgyMDgxYTQ5M2FiODdjNTE5ODBiMjgzMzZjZTFiY2U4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDEzOjM5OjU3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBBTUNDIEFjYWRpYSAoNDA1RVopIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbmV3IEFNQ0MgQWNhZGlhIGV2YWwgYm9hcmQuCgogICAgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIEFjYWRpYS80MDVFWiBzdXBwb3J0IGlzIHN0aWxsIGluIGEgYmV0YSBzdGFnZS4KICAgIFN0aWxsIGxvdCdzIG9mIGNsZWFudXAgbmVlZGVkIGJ1dCB3ZSBuZWVkIGEgcHJlbGltaW5hcnkgcmVsZWFzZSBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUwMWJkMjE4YjAwYWY3MzQ5OTMzMWExYTcwMTYyNWE4NTJjZDI4NmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTM6Mzg6NTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIEFNQ0MgUFBDNDA1RVogc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbmV3IEFNQ0MgNDA1RVogUFBDLiBJdCBpcyBpbgogICAgcHJlcGFyYXRpb24gZm9yIHRoZSBBTUNDIEFjYWRpYSBib2FyZCBzdXBwb3J0LgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBBY2FkaWEvNDA1RVogc3VwcG9ydCBpcyBzdGlsbCBpbiBhIGJldGEgc3RhZ2UuCiAgICBTdGlsbCBsb3QncyBvZiBjbGVhbnVwIG5lZWRlZCBidXQgd2UgbmVlZCBhIHByZWxpbWluYXJ5IHJlbGVhc2Ugbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwN2U4MmNiMmUyODRhODkzZGY2NjkzZjJhMTMzN2FiMmM0N2JmNmExCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDA4OjQ1OjE3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFRRTTgyNzI6IGRvbnQgY2hhbmdlIHRoZSBiaXRzIGdpdmVuIGZyb20gdGhlIEhSQ1cKCQkgICAgIGZvciB0aGUgU0lVTUNSIGFuZCBCQ1IgUmVnaXN0ZXIuCgkJICAgICBGaXggdGhlIGNhbGN1bGF0aW9uIGZvciB0aGUgRUVwcm9tIFNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2NTQ1ODk4NzNkYmFmY2YxMDRkZmYxMzNjZTBkMDNhNDUwNmU5Y2MzCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVHVlIE1hciAyMCAxODoxNjoyNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gQWRkIEJGNTYxIEVaS0lUIGJvYXJkIHN1cHBvcnQKCmNvbW1pdCBhNjE1NGZkMWNmZDAyMGY2ZGE4NTI3ZTAzNjViMTAyMGExMWE3MWQwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxOSAyMjo1NTo1OCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gbWlub3IgY2xlYW51cAoKY29tbWl0IDM4OWI2YmI1MGY3NDViZjUwMzhjZTAzMDMwMGQ4YTg1MTJlOTZmNzkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWFyIDE5IDEzOjEwOjA4IDIwMDcgKzAxMDAKCiAgICBSZW1vdmUgb2Jzb2xldGVkIFBPU1QgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZTcwOWJiYjI2MzZiNTY3MGE4ZjJiNTc1ZTEzOGViMWY1NTc3M2Y2CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxOSAwMToyNjoxMSAyMDA3ICswODAwCgogICAgW1BBVENIXSBBZGQgZmxhc2ggY2hpcCBNMjlXMzIwRVQvQiBzdXBwb3J0Cgpjb21taXQgMjZiZjdkZWNhMzY0YTViMzNmMzllOGYxNGRkZDNmNDA4MTM0NTAxNQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMDE6MjQ6NTIgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjUzNyBzdGFtcCBib2FyZCBzdXBwb3J0Cgpjb21taXQgODQyM2U1ZTMxYTcyMzVkMDVhNDgyNjI3MzE1ZmIxMWQ0OWMxN2JkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAxNiAyMToxMTo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVc2UgZHluYW1pYyBTRFJBTSBUTEIgc2V0dXAgb24gQU1DQyBFYm9ueSBldmFsIGJvYXJkCgogICAgRGVmaW5lIENPTkZJR19QUk9HX1NEUkFNX1RMQiBzbyB0aGF0IHRoZSBUTEIgZW50cmllcyBmb3IgdGhlCiAgICBERFIgbWVtb3J5IGFyZSBkeW5hbWljYWxseSBwcm9ncmFtbWVkIG1hdGNoaW5nIHRoZSB0b3RhbCBzaXplCiAgICBvZiB0aGUgZXF1aXBwZWQgbWVtb3J5IChESU1NIG1vZHVsZXMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NmQxNDY2ZjkxOGI4ODFjZGEyZDI1OTI1NDc2MWU3Mzg4NTA5M2MyCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBNYXIgMTMgMTM6Mzg6MDUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gcmVuYW1lZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAnYWRkY29uJyB0byAnYWRkY29ucycgZm9yIFBDSTQwNQoJICAgIGJvYXJkcyBpbiB0ZXJtcyBvZiB1bmlmaWNhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBhNzA5MGI5OTNkM2Q0ZDIyMjFhYzNmMzNlNmNiMWQxYjJjY2M2YmYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMyAxNjowNTo1NSAyMDA3ICswMTAwCgogICAgTWFrZSBTQzMgYm9hcmQgYnVpbGQgd2l0aCAnbWFrZSBPPSc7IHVzZSAnYWRkY29ucycgY29uc2lzdGVudGx5CiAgICAoU0MzIGFuZCBKdXBpdGVyIHVzZWQgdG8gdXNlICdhZGRjb24nIGluc3RlYWQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgd2RAZGVueC5kZQoKY29tbWl0IDg1MDJlMzBhMjhlNDkyYzc1NmVhMmQ3ZGYwYWNlMDI2Mzg4ZmNlNGIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTMgMDk6NDA6NTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gdXBkYXRlIGJvYXJkIGNvbmZpZyBmb3IganVwaXRlciBCb2FyZDoKCSAgICBhZGRlZCBIdXNoIFNoZWxsLAoJCSAgQ09ORklHX0NNRExJTkVfRURJVElORywKCQkgIENGR19FTlZfQUREUl9SRURVTkQgYWN0aXZhdGVkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMGQ5M2RlMTE0NDkzOTBhNTk4NGIwMjM2YzM2MTJlNTBmNmRiYjdlOApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTIgMTI6MTE6NTUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIG1pbm9yIGNsZWFudXAKCmNvbW1pdCBiZmE1NzU0YTU4NDc3YWM5MTdkMjE1MjdjZDBmMDc5ZDg3Y2YxODhlCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMiAwMTo0MjowNiAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gRml4IEJVSUxEX0RJUiBvcHRpb24gb2YgTUFLRUFMTCBidWlsZGluZyBpc3N1ZQoKY29tbWl0IDg0NDBiYjE0NTgxYTI5NDM3NWMzNGI5MWI0MjUxMmY5NzUzZDExMzAKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDEyIDAwOjI1OjE0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBjb2RlIGNsZWFudXAKCmNvbW1pdCBjZmM2NzExNmE3MDZmZDE4YjhmNmE5YzExYTE2NzUzYzU2MjZkNjg5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gTWFyIDExIDEzOjQ4OjI0IDIwMDcgKzAxMDAKCiAgICBbTWljcm9ibGF6ZV1bUEFUQ0hdIHBhcnQgMgogICAgdGltZXIgc3VwcG9ydAogICAgaW50ZXJydXB0IGNvbnRyb2xsZXIgc3VwcG9ydAogICAgZmxhc2ggc3VwcG9ydAogICAgZXRoZXJuZXQgc3VwcG9ydAogICAgY2FjaGUgc3VwcG9ydAogICAgYm9hcmQgaW5mb3JtYXRpb24gc3VwcG9ydAogICAgZW52IHN1cHBvcnQKICAgIGJvb3RpbmcgaW1hZ2Ugc3VwcG9ydAoKICAgIGFkZGluZyBzdXBwb3J0IGZvciBYaWxpbnggTUw0MDEKCmNvbW1pdCA3NjMxNmEzMThkZTkxZjYxODRlN2MyMmExMGUwMmQyNzVhZGUyNDQxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gTWFyIDExIDEzOjQyOjU4IDIwMDcgKzAxMDAKCiAgICBbTWljcm9ibGF6ZV1bUEFUQ0hdCiAgICB0aW1lciBzdXBwb3J0CiAgICBpbnRlcnJ1cHQgY29udHJvbGxlciBzdXBwb3J0CiAgICBmbGFzaCBzdXBwb3J0CiAgICBldGhlcm5ldCBzdXBwb3J0CiAgICBjYWNoZSBzdXBwb3J0CiAgICBib2FyZCBpbmZvcm1hdGlvbiBzdXBwb3J0CiAgICBlbnYgc3VwcG9ydAogICAgYm9vdGluZyBpbWFnZSBzdXBwb3J0CgogICAgYWRkaW5nIHN1cHBvcnQgZm9yIFhpbGlueCBNTDQwMQoKY29tbWl0IDhkYjEzZDYzMTU3ODExYzgzOWQxNWEzMTNkOWYyZDJmNWZkMTBhZjMKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDEwIDIzOjQ5OjI5IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBjb2RlIGNsZWFudXAKCmNvbW1pdCBlZjI2YTA4ZmVmOTI4YjdiYzExYWUyYzEwOWU2MzhkYzNhMDE2ZDkxCkF1dGhvcjogQXVicmV5LkxpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIE1hciA5IDEzOjQwOjU2IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENILTIvMl0gQ29tbW9uIGZpbGVzIGNoYW5nZWQgdG8gc3VwcG9ydCBiZjUzMyBwbGF0Zm9ybQoKY29tbWl0IDNmMDYwNmFkMGI1NjM5ZjdmMjI4NDhmZTViNDU3NGU3NTRkMDQ3MGYKQXV0aG9yOiBBdWJyZXkuTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglGcmkgTWFyIDkgMTM6Mzg6NDQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1QQVRDSC0xLzJdOiBSZW1vdmUgb2Jzb2xldGUgYmxhY2tmaW4gcG9ydCBhbmQgYWRkIGJmNTMzIHBsYXRmb3JtIHN1cHBvcnQKCmNvbW1pdCA5OTI0MjNhYjQzYzJiY2Y2YjcwNDg1M2JkMDBhZjc3NDUwOTE1ZTIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMjM6MDA6MDggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGZpbGUgbW9kZSBvZiBzZXF1b2lhLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWI5MmY2MTM1NTY4MDBmNzQ4MzY2NmRiMDlkOWEyMzdhZDkxMWQ0YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMjI6NTI6NTEgMjAwNyArMDEwMAoKICAgIE1pbm9yIGNsZWFudXAuCgpjb21taXQgOGNlMTZmNTVjN2I5NzUyYWYzZDhiZWQ4NDUyMWFlYzUzMzdlMmRlMQpBdXRob3I6IEpvaG4gT3RrZW4gam9obkBzb2Z0YWR2YW5jZXMuY29tIDxqb2huQHNvZnRhZHZhbmNlcy5jb20+CkRhdGU6CVRodSBNYXIgOCAwOTozOTo0OCAyMDA3IC0wNjAwCgogICAgcHBjNHh4OiBDbGVhciBTZXF1b2lhL1JhaW5pZXIgc2VjdXJpdHkgZW5naW5lIHJlc2V0IGJpdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIE90a2VuIGpvaG5Ac29mdGFkdmFuY2VzLmNvbSA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgoKY29tbWl0IDY1MGEzMzBkZDI1MzkxMzBjOGMzMjQ3OTFlMmY5Zjc1YWVkNzlkNGUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDE2OjI2OjUyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogYWRkIHNvbWUgbW9yZSBTUEQgZWVwcm9tIGRlY29kaW5nIGZvciBERFIyIG1vZHVsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkOWZjNzAzMjQ2ODQwYzRiMjY4ZGViZjQ4YzMzNGJhNTVjNTk3ZGMwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyNTo0NyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IGRpc2FibGUgZmxhdCBpMmMgY29tbWFuZHMgd2hlbiBDT05GSUdfSTJDX0NNRF9UUkVFIGlzIGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjZWQ1YjkwMjkwNDMzOTczNDhjZGM4OGUwY2ZjZDZiMWY2MjkyNTBiCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyMzoxMSAyMDA3ICswMTAwCgogICAgW1BBVENIXSA0eHg6IGFsbG93IENPTkZJR19JMkNfQ01EX1RSRUUgd2l0aG91dCBDT05GSUdfSTJDX01VTFRJX0JVUwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGQ4YThlYTVjNDc2ZDM3MDA2ZmM3Zjg1YjdmOTAzMTQyNzk1YzhiMTQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDE2OjIwOjMyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIG1pc3NpbmcgZGVmYXVsdCBDRkdfU1BEX0JVU19OVU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBmOWZjNmE1ODUyYTYzMzU4NDA4ODJmYTIxMTE5MjUwMTBlZWExYWJlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBNYXIgNyAxNTozMjowMSAyMDA3ICswMTAwCgogICAgZml4ZWQgZXRoZXJuZXQgcGh5IGNvbmZpZ3VyYXRpb24gZm9yIHBsdTQwNSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDc2OTEwNGM5MzU2NTk0ZGViMjA5MmUyMDRhMzljMDViMzMyMDJkNmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIxOjQ5OjI3IDIwMDcgKzAxMDAKCiAgICBNaW5vciBjbGVhbnVwCgpjb21taXQgMDBjZGI0Y2U1ZTFiNDIyNDhlN2U2NTIyYWQwZGEzNDIxYjk4OGFmYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDEwOjEzOjE2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIEx1YW4gNDQwU1AgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhlIEFNQ0MgTHVhbiBub3cgdXNlcyB0aGUgY29tbW9uIDQ0MFNQKGUpIEREUiBTUEQgY29kZSBmb3IgRERSCiAgICBpbml0aXRpYWxpeml0aW9uLiBUaGlzIGluY2x1ZGVzIEREUiBhdXRvIGNhbGlicmF0aW9uIGFuZCBzdXBwb3J0CiAgICBmb3IgZGlmZmVyZW50IERJTU0gbW9kdWxlcywgaW5zdGVhZCBvZiB0aGUgZml4ZWQgc2V0dXAgdXNlZCBpbgogICAgdGhlIGVhcmxpZXIgdmVyc2lvbi4KCiAgICBUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyB0aGUgY2FjaGUgaW4gRkxBU0ggZm9yIHRoZSBzdGFydHVwCiAgICBwaGFzZSBvZiBVLUJvb3QgKHdoaWxlIHJ1bm5pbmcgZnJvbSBGTEFTSCkuIEFmdGVyIHJlbG9jYXRpbmcgdG8KICAgIFNEUkFNIHRoZSBjYWNoZSBpcyBkaXNhYmxlZCBhZ2Fpbi4gVGhpcyB3aWxsIHNwZWVkIHVwIHRoZSBib290CiAgICBwcm9jZXNzLCBlc3BlY2lhbGx5IHRoZSBTRFJBTSBzZXR1cCwgc2luY2UgdGhlcmUgYXJlIHNvbWUgbG9vcHMKICAgIGZvciBtZW1vcnkgdGVzdGluZyAoYXV0byBjYWxpYnJhdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJmNWRmNDczNTE5MTBhMjkzNmM3NzQxY2YxMTE4NTU4MjkyMDA5NDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDoxMDoxOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBZdWNjYSA0NDBTUGUgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhlIEFNQ0MgWXVjY2Egbm93IHVzZXMgdGhlIGNvbW1vbiA0NDBTUChlKSBERFIgU1BEIGNvZGUgZm9yIEREUgogICAgaW5pdGl0aWFsaXppdGlvbi4gVGhpcyBpbmNsdWRlcyBERFIgYXV0byBjYWxpYnJhdGlvbiBhbmQgc3VwcG9ydAogICAgZm9yIGRpZmZlcmVudCBESU1NIG1vZHVsZXMsIGluc3RlYWQgb2YgdGhlIGZpeGVkIHNldHVwIHVzZWQgaW4KICAgIHRoZSBlYXJsaWVyIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI3MjFhNjhhOWVhOTFmMWU0OTQ2NDljZTY4YjI1NzcyNjFmNTc4ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDowNzoxOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBTbWFsbCBBTUNDIEthdG1haSA0NDBTUGUgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmMjk0NDk3NDc5YjFkY2E2ZGQ4NjMxOGIyYTkxMmY3MmZlZGUwZGYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDowNjowOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDQwU1AvNDQwU1BlIEREUiBTUEQgc2V0dXAgY29kZSB0byBzdXBwb3J0IDQ0MFNQCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgzODUzMTc4YmQzNmJjYTZmMGY4ZjEzMzE0NzY2MjBjODRhNTg3ZmMKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDcgMTI6MTQ6NTAgMjAwNyAtMDYwMAoKICAgIG5ldCAtIFN1cHBvcnQgcGluZyByZXBseSB3aGVuIHByb2Nlc3NpbmcgbmV0LWxvb3AKCiAgICBBZGQgSUNNUF9FQ0hPX1JFUVVFU1QgcGFja2V0IHN1cHBvcnQgYnkgcmVzcG9uZGluZyB3aXRoIGEgSUNNUF9FQ0hPX1JFUExZLgoKICAgIFRoaXMgcGVybWl0cyB0aGUgcGluZyBjb21tYW5kIHRvIHRlc3QgdGhlIHBoeSBpbnRlcmZhY2Ugd2hlbiB0aGUgcGh5CiAgICBpcyBwdXQgaW4gbG9vcGJhY2sgbW9kZSAodHlwaWNhbGx5IGJ5IHNldHRpbmcgcmVnaXN0ZXIgMCBiaXQgMTQpLgoKICAgIEl0IGFsc28gYWxsb3dzIHRoZSBwb3J0IHRvIHJlc3BvbmQgdG8gYW4gZXh0ZXJuYWwgcGluZyB3aGVuIHUtYm9vdCBpcwogICAgcHJvY2Vzc2luZyBzb21lIG90aGVyIG5ldCBjb21tYW5kIChzdWNoIGFzIHRmdHApLiAgVGhpcyBpcyB1c2VmdWwgd2hlbgogICAgdGZ0cCBhcHBlYXJzIHRvIGhhbmcuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGZhMWFlZjE1YmNkNDc3MzY2ODdiZTFhZjU0NDUwNmU5MGZiYTU0NWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjo0MzowMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVc2UgZHluYW1pYyBTRFJBTSBUTEIgc2V0dXAgb24gQU1DQyBPY290ZWEgZXZhbCBib2FyZAoKICAgIERlZmluZSBDT05GSUdfUFJPR19TRFJBTV9UTEIgc28gdGhhdCB0aGUgVExCIGVudHJpZXMgZm9yIHRoZQogICAgRERSIG1lbW9yeSBhcmUgZHluYW1pY2FsbHkgcHJvZ3JhbW1lZCBtYXRjaGluZyB0aGUgdG90YWwgc2l6ZQogICAgb2YgdGhlIGVxdWlwcGVkIG1lbW9yeSAoRElNTSBtb2R1bGVzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTJlYmU2OTY4MTg5MzllMmI5NzQ2MjhiZTljOTIxZWEzZmU5ZGUxMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciA3IDE2OjM5OjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCBBTUNDIDQ0eCBTUEQgU0RSQU0gaW5pdCBjb2RlIHRvIHN1cHBvcnQgMiBESU1NJ3MKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSB0aGF0IG9jY3VycyB3aGVuIDIgRElNTSdzIGFyZQogICAgdXNlZC4gVGhpcyBwcm9ibGVtIHdhcyBmaXJzdCBzcG90dGVkIGFuZCBmaXhlZCBieSBHZXJhbGQgSmFja3NvbgogICAgPGdlcmFsZC5qYWNrc29uQHJlYW9uaXhzZWN1cml0eS5jb20+IGJ1dCB0aGlzIHBhdGNoIGZpeGVzIHRoZQogICAgcHJvYmxlbSBpbiBhIGxpdHRsZSBtb3JlIGNsZXZlciB3YXkuCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgdGhlIG5pY2UgZnVuY3Rpb25hbGl0eSB0byBkeW5hbWljYWxseQogICAgY3JlYXRlIHRoZSBUTEIgZW50cmllcyBmb3IgdGhlIFNEUkFNICh0bGIuYykuIFNvIHdlIHNob3VsZAogICAgbmV2ZXIgcnVuIGludG8gc3VjaCBwcm9ibGVtcyB3aXRoIHdyb25nICh0b28gc2hvcnQpIFRMQgogICAgaW5pdGlhbGl6YXRpb24gYWdhaW4gb24gdGhlc2UgcGxhdGZvcm1zLgoKICAgIEFzIHRoaXMgZmVhdHVyZSBpcyBuZXcgdG8gdGhlICJvbGQiIDQ0eCBTUEQgRERSIGRyaXZlciwgaXQKICAgIGhhcyB0byBiZSBlbmFibGVkIHZpYSB0aGUgQ09ORklHX1BST0dfU0RSQU1fVExCIGRlZmluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzkyMTg0MzM5ODM0MTdiOWRmMDg3OTc2YTc5ZTNmODBkZDVlODNkNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjozMzo0NCAyMDA3ICswMTAwCgogICAgVUMxMDE6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDhkN2UyNzMyMjIxYmMyZDY0ZGYxNGY3MDBjNjRjMjNlMGE0YzNkY2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIE1hciA3IDE2OjE5OjQ2IDIwMDcgKzAxMDAKCiAgICBITUkxMDAxOiBmaXggYnVpbGQgZXJyb3IsIGNsZWFudXAgY29tcGlsZXIgd2FybmluZ3MuCgpjb21taXQgYWQ1YmI0NTFhZGU1NTJjNDRiZWY5MTE5ZDkwNzkyOWViYzJjMTI2ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMTg6MDg6NDMgMjAwNyArMDEwMAoKICAgIFJlc3RydWN0dXJlIFBPU1QgZGlyZWN0b3J5IHRvIHN1cHBvcnQgb2Ygb3RoZXIgQ1BVcywgYm9hcmRzLCBldGMuCgpjb21taXQgYTUyODRlZmQxMjU5Njc2NzViMmU5YzZlZjdiOTU4MzIyNjhhZDM2MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMTg6MDE6NDcgMjAwNyArMDEwMAoKICAgIEZpeCBIT1NUQVJDSCBoYW5kbGluZy4KICAgIFBhdGNoIGJ5IE1pa2UgRnJ5c2luZ2VyLCBNYXIgMDUgMjAwNwoKY29tbWl0IDA3YjdiMDAzN2FhYzUxMDI5Mzk5MTdkN2NiZTU2MWI1YzBkNWFhNDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNiAwNzo0NzowNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTcGVlZCBvcHRpbWl6YXRpb24gb2YgQU1DQyBTZXF1b2lhL1JhaW5pZXIgRERSMiBzZXR1cAoKICAgIEFzIHByb3ZpZGVkIGJ5IHRoZSBBTUNDIGFwcGxpY2F0aW9ucyB0ZWFtLCB0aGlzIHBhdGNoIG9wdGltaXplcyB0aGUKICAgIEREUjIgc2V0dXAgZm9yIDE2Nk1IeiBidXMgc3BlZWQuIFRoZSB2YWx1ZXMgcHJvdmlkZWQgYXJlIGFsc28gc2F2ZQogICAgdG8gdXNlIG9uIGEgIm5vcm1hbCIgMTMzTUh6IFBMQiBidXMgc3lzdGVtLiBPbmx5IHRoZSByZWZyZXNoIGNvdW50ZXIKICAgIHNldHVwIGhhcyB0byBiZSBhZGp1c3RlZCBhcyBkb25lIGluIHRoaXMgcGF0Y2guCgogICAgRm9yIHRoaXMgdGhlIE5BTkQgYm9vdGluZyB2ZXJzaW9uIGhhZCB0byBpbmNsdWRlIHRoZSAic3BlZWQuYyIgZmlsZQogICAgZnJvbSB0aGUgY3B1L3BwYzR4eCBkaXJlY3RvcnkuIFdpdGggdGhpcyBhZGRpdGlvbiB0aGUgTkFORCBTUEwgaW1hZ2UKICAgIHdpbGwganVzdCBmaXQgaW50byB0aGUgNGtieXRlcyBvZiBwcm9ncmFtIHNwYWNlLiBnY2MgdmVyc2lvbiA0LnggYXMKICAgIHByb3ZpZGVkIHdpdGggRUxESyA0LnggaXMgbmVlZGVkIHRvIGdlbmVyYXRlIHRoaXMgb3B0aW1pemVkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY0N2QzYzNlZWQwZGExZDE1MDVlZWNhYmUwYjBmYWI5NmY5NTZlNjgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIE1hciA0IDAxOjM2OjA1IDIwMDcgKzAxMDAKCiAgICBTb21lIGNvZGUgY2xlYW51cC4KCmNvbW1pdCA3ODFlMDI2YzhhYTZmN2U5ZWI1ZjBlNzJjYzRkMjA5NzEyMTliMTQ4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyOCAwMDowMjowNCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdmdF9nZXRfcHJvcCcgd2FybmluZ3MKCiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIGM1YmYxM2IwMjI4NGMzMjA0YTcyMzU2NmE5YmFiNzAwZTUwNTk2NTkgY29tbWl0KQoKY29tbWl0IDRmZWFiNGRlN2JmYzJjYjJmZWQzNmFkNzZmOTNjM2E2OTY1OWJiYWYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDI3IDIzOjUxOjQyIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggY29uZmlnIG9mIEFyYml0ZXIsIFN5c3RlbSBQcmlvcml0eSwgYW5kIENsb2NrIE1vZGUKCiAgICBUaGUgY29uZmlnIHZhbHVlIGZvcjoKICAgICogQ0ZHX0FDUl9QSVBFX0RFUAogICAgKiBDRkdfQUNSX1JQVENOVAogICAgKiBDRkdfU1BDUl9UU0VDMUVQCiAgICAqIENGR19TUENSX1RTRUMyRVAKICAgICogQ0ZHX1NDQ1JfVFNFQzFDTQogICAgKiBDRkdfU0NDUl9UU0VDMkNNCgogICAgV2VyZSBub3QgYmVpbmcgdXNlZCB3aGVuIHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyCgogICAgQWRkZWQ6CiAgICAqIENGR19TQ0NSX1VTQk1QSENNCiAgICAqIENGR19TQ0NSX1VTQkRSQ00KICAgICogQ0ZHX1NDQ1JfUENJQ00KICAgICogQ0ZHX1NDQ1JfRU5DQ00KCiAgICBUbyBhbGxvdyBmdWxsIGNvbmZpZyBvZiB0aGUgU0NDUi4KCiAgICBBbHNvIHJlbW92ZWQgcmFuZG9tIENGR19TQ0NSIHNldHRpbmdzIGluIE1QQzgzNDlFTURTLCBUUU04MzR4LCBhbmQgc2JjODM0OQogICAgdGhhdCB3ZXJlIGp1c3QgYm9ndXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkNTFiM2NmMzcxY2Q0NDEwMzA0NjBlZjE5ZDM2YjI5MjRjMzYxYjFhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEZlYiAyMiAyMDowNjo1NyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogdXBkYXRlIFtsb2NhbC1dbWFjLWFkZHJlc3MgcHJvcGVydGllcyBvbiBVRUMgYmFzZWQgZGV2aWNlcwoKICAgIDgzNjAgYW5kIDgzMnggd2VyZW4ndCB1cGRhdGluZyB0aGVpciBbbG9jYWwtXW1hYy1hZGRyZXNzCiAgICBwcm9wZXJ0aWVzLiBUaGlzIHBhdGNoIGZpeGVzIHRoYXQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MWY0ZjkxMmFjYmU2MDc3NmM1ZTAwZGYxZWM5NDA5NGNlNjcyOTU3CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAxMyAxMDo0MTo0MiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogd3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIHRoaXMgcGF0Y2gKICAgIHVwZGF0ZXMgZnRwX2NwdV9zZXR1cCgpIHRvIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBpZiBpdCBleGlzdHMuCiAgICBUaGlzIGZ1bmN0aW9uIGFscmVhZHkgdXBkYXRlcyBsb2NhbC1tYWMtYWRkcmVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyZDcxYTcxZjU3ZmQ1ZDM4YjI3YWMzODQ4ZTUwZDc5MDM2MGE1OTgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDI3IDE4OjQxOjA4IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgY29tbWFuZCBsaW5lIGVkaXRpbmcgYnkgZGVmYXVsdAoKY29tbWl0IDNmYzBiZDE1OTEwM2I1MzZlMWM1NGM2ZjQ0NTdhMDliM2FiYTY2Y2EKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDE0IDE5OjUwOjUzIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBEaXNhYmxlIEcxVFhDTEssIEcyVFhDTEsgaC93IGJ1ZmZlcnMKCiAgICBEaXNhYmxlIEcxVFhDTEssIEcyVFhDTEsgaC93IGJ1ZmZlcnMuIFRoaXMgcGF0Y2gKICAgIGZpeGVzIGEgbmV0d29ya2luZyB0aW1lb3V0IGlzc3VlIHdpdGggTVBDODM2MEVBIChSZXYuMikgUEJzLgoKICAgIFZlcmlmaWVkIG9uIFJldi4gMS4xLCBSZXYuIDEuMiwgYW5kIFJldi4gMi4wIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRW1pbGlhbiBNZWR2ZSA8RW1pbGlhbi5NZWR2ZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ2MTg1M2NmMjQ3MmUwYjhiY2JkMTMxNDYxYTkzZDFjNDlmZjBjMWYKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNzoxNyAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIEREUjIgY29udHJvbGxlciBmaXhlZC9TUEQgSW5pdCBmb3IgTVBDODN4eAoKICAgIFRoZSBjb2RlIHN1cHBseSBmaXhlZCBhbmQgU1BEIGluaXRpYWxpemF0aW9uIGZvciBNUEM4M3h4IEREUjIgQ29udHJvbGxlci4KICAgIGl0IHBhc3MgRERSL0REUjIgY29tcGxpYW5jZSB0ZXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBYaWUgWGlhb2JvIDxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIxMTBmNDBiZDE4MGM2YjU2MDI3NjU4OWJlZWRmNzUzZTk3YzQ2Y2UKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNzowNiAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBjcHUgc3BlY2lmaWMgY29kZSBmb3IgTVBDODM2MEUgcmV2Mi4wIE1EUwoKICAgIE1QQzgzNjBFIHJldjIuMCBoYXZlIG5ldyBzcHJpZHIsYW5kIFBWUiB2YWx1ZSwKICAgIFRoZSBNRFMgYm9hcmQgZm9yIE1QQzgzNjBFIHJldjIuMCBoYXMgMzJNIGJ5dGVzIEZsYXNoIGFuZCAyNTZNIEREUjIgRElNTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBYaWUgWGlhb2JvIDxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhkMTcyYzBmMGQ4NTk5OGEyNTZhOTViNzQ1OWE1NDAzYTMwMzgwZWQKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNjo0NCAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBjcHUgYW5kIGJvYXJkIHNwZWNpZmljIGNvZGUgZm9yIE1QQzgzNDlFIHJldjMuMSBNRFMKCiAgICBNUEM4MzQ5RSByZXYzLjEgaGF2ZSBuZXcgc3ByaWRyLGFuZCBQVlIgdmFsdWUsCiAgICBUaGUgTURTIGJvYXJkIGZvciBNUEM4MzQ5RSByZXYzLjEgaGFzIDMyTSBieXRlcyBGbGFzaCBhbmQgMjU2TSBERFIyIERJTU0uCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibzxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY2ZjVmNzA5ZTVjOGU0NTY0YzRkZmVlY2ZkZjIyNzkyNDRmOWM4M2IKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxqb2FraW0udGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJV2VkIEphbiAzMSAxMTowNDoxOSAyMDA3ICswMTAwCgogICAgbXBjODN4eDogRml4IGVtcHR5IGkyYyByZWFkcy93cml0ZXMgaW4gZnNsX2kyYy5jCgogICAgRml4IGVtcHR5IGkyYyByZWFkcy93cml0ZXMsIGkyY193cml0ZSgweDUwLCAweDAwLCAwLCBOVUxMLCAwKQogICAgd2hpY2ggaXMgdXNlZCB0byBzZSBpZiBhbiBzbGF2ZSB3aWxsIEFDSyBhZnRlciByZWNlaXZpbmcgaXRzIGFkZHJlc3MuCgogICAgQ29ycmVjdCBpMmMgcHJvYmluZyB0byB1c2UgdGhpcyBtZXRob2QgYXMgdGhlIG9sZCBtZXRob2QgY291bGQgdXBzZXQKICAgIGEgc2xhdmUgYXMgaXQgd3JvdGUgYSBkYXRhIGJ5dGUgdG8gaXQuCgogICAgQWRkIGEgc21hbGwgZGVsYXkgaW4gaTJjX2luaXQoKSB0byBsZXQgdGhlIGNvbnRyb2xsZXIKICAgIHNodXRkb3duIGFueSBvbmdvaW5nIEkyQyBhY3Rpdml0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCmNvbW1pdCA3YTc4ZjE0OGQ2YTcyOThlNGZmYWNlNjgwZGM3ZWFjZDg3N2IxYWJhCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMSAxNTo1NDoyOSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYLUdQCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYLUdQLCBhIHN0cmlwcGVkLWRvd24gdmVyc2lvbiBvZiB0aGUKICAgIE1QQzgzNDlFLW1JVFguICBCb251cyBmZWF0dXJlcyBpbmNsdWRlIHN1cHBvcnQgZm9yIGxvdy1ib290IChCTVMgYml0IGluCiAgICBIUkNXIGlzIDApIGZvciB0aGUgSVRYIGFuZCBhIFJFQURNRSBmb3IgdGhlIElUWCBhbmQgdGhlIElUWC1HUC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZhYjE2ODA3YWRhZDM1MGY2MTgwMjQzNTBjNjk1MDE2NWMyNDdjNzIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDMxIDE1OjU0OjIwIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBEZWxldGUgc2RyYW1faW5pdCgpIGZvciBNUEM4MzQ5RS1tSVRYCgogICAgVGhlcmUgaXMgbm8gU0RSQU0gb24gYW55IG9mIHRoZSA4MzQ5IElUWCB2YXJpYW50cywgc28gZnVuY3Rpb24gc2RyYW1faW5pdCgpCiAgICBuZXZlciBkb2VzIGFueXRoaW5nLiAgVGhpcyBwYXRjaCBkZWxldGVzIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTg3Yzg1NmViNDExYjkzNjU5MzdkMGQ0YjljMjFlNDZhZGJlMWMxNApBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTkgMTA6NDM6MjYgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgTEFXMS8zIGJ1ZwoKICAgIFRoZSBwYXRjaCBzb2x2ZXMgdGhlIGFsaWdubWVudCBwcm9ibGVtIG9mIHRoZSBsb2NhbCBidXMgYWNjZXNzIHdpbmRvd3MgdG8KICAgIHJlbmRlciBhY2Nlc3NpYmxlIHRoZSBtZW1vcnkgYmFuayBhbmQgUEhZIHJlZ2lzdGVycyBvZiBVUEMgMSAoc3RhcnRpbmcgYXQKICAgIDB4ZjgwMSAwMDAwKS4gV2hhdCB3ZSBhY3R1YWxseSBkaWQgd2FzIHRvIGFkanVzdCB0aGUgc2l6ZXMgb2YgdGhlIGJ1cwogICAgYWNjZXNzIHdpbmRvd3Mgc28gdGhhdCB0aGUgYmFzZSBhZGRyZXNzIGFsaWdubWVudCByZXF1aXJlbWVudCB3b3VsZCBiZSBtZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQ2hlcmVqaSBNYXJpYW4gPG1hcmlhbi5jaGVyZWppQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmlkaXNoIFNobG9taSA8Z3JpZGlzaEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5N2M0YjM5N2RjZTIzNmE3MzE4YjMwNDY2N2JmODllNTlkMDhiMTdjCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNTozMSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZG9uJ3QgaGFuZyBpZiB3YXRjaGRvZyBjb25maWd1cmVkIG9uIDgzNjAsIDgzMngKCiAgICBkb24ndCBoYW5nIGlmIHdhdGNoZG9nIGNvbmZpZ3VyZWQgb24gODM2MCwgODMyeAoKICAgIFRoZSB3YXRjaGRvZyBwcm9ncmFtbWluZyBtb2RlbCBpcyB0aGUgc2FtZSBhY3Jvc3MgYWxsIDgzeHggZGV2aWNlczsKICAgIG1ha2UgdGhlIGNvZGUgcmVmbGVjdCB0aGF0LgoKY29tbWl0IGI3MDA0NzQ3ODU3MGUzNzFjZTcyMjNiZTM0MmNlOThhZmVhMGY3ZDYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDMwIDE2OjE1OjIxIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIGxvY2FsLW1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKICAgIHByb3RlY3QgbWVtY3B5IHRvIGJhZCBhZGRyZXNzIGlmIGEgbG9jYWwtbWFjLWFkZHJlc3MgaXMgbWlzc2luZyBmcm9tIGR0Cgpjb21taXQgNjc1MmVkMDg4Yzc1YzI2YTg5YjcwYzQ2YjczMjZhNGNkNjAxNWYyOQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTU6MDQgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IG1ha2UgODM2MCBkZWZhdWx0IGVudmlyb25tZW50IGZkdCBiZSA4MzYwIChub3QgODM0OSkKCiAgICBtYWtlIDgzNjAgZGVmYXVsdCBlbnZpcm9ubWVudCBmZHQgYmUgODM2MCAobm90IDgzNDkpCgpjb21taXQgYTI4ODk5YzkxMDAyNGEwMjI2MzMxZGYwNzIwN2IxMDM4YzMwMGM5MwpBdXRob3I6IEVtaWxpYW4gTWVkdmUgPEVtaWxpYW4uTWVkdmVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNDo1MCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRml4IGFsdGVybmF0aW5nIHR4IGVycm9yIC8gdHggYnVmZmVyIG5vdCByZWFkeSBidWcgaW4gUUUgVUVDCgogICAgVGhlIHByb2JsZW0gaXMgbm90IGdjYzQgYnV0IHRoZSBjb2RlIGl0c2VsZi4gVGhlIEJEX1NUQVRVUygpIG1hY3JvIGNhbid0CiAgICBiZSB1c2VkIGZvciBidXN5LXdhaXRpbmcgc2luY2UgaXQgc3RyaXBzIHRoZSAndm9sYXRpbGUnIHByb3BlcnR5IGZyb20KICAgIHRoZSBiZCB2YXJpYWJsZS4gZ2NjMyB3YXMgd29ya2luZyBieSBwdXJlIGx1Y2suCgogICAgVGhpcyBpcyBhIGZvbGxvdyBvbiBwYXRjaCB0byAiRml4IHRoZSBVRUMgZHJpdmVyIGJ1ZyBvZiBRRSIKCmNvbW1pdCAzZTc4YTMxY2ZlM2QzMDIyZjQ2ZjY3ZWI4OGUxMjgxZDVjYzJlYjg5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEphbiAzMCAxNDowODozMCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogUmVwbGFjZSBDT05GSUdfTVBDODM0OSBhbmQgdXNlIENPTkZJR19NUEM4MzRYIGluc3RlYWQKCiAgICBUaGUgY29kZSB0aGF0IGlzIGlmZGVmJ2Qgd2l0aCBDT05GSUdfTVBDODM0OSBpcyBhY3R1YWxseSBhcHBsaWNhYmxlIHRvIGFsbAogICAgTVBDODM0WCBjbGFzcyBwcm9jZXNzb3JzLiAgQ2hhbmdlIHRoZSBwcm90ZWN0aW9ucyBmcm9tIENPTkZJR19NUEM4MzQ5IHRvCiAgICBDT05GSUdfTVBDODM0WCBzbyB0aGV5IGFyZSBtb3JlIGdlbmVyaWMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhZTI0NmRjNmMxOTM3YzI5MTAxNGVhZGQ5MGI2ZDQ4YzQzOGM3Y2IwCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAyNSAxMzo0MDo1NSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogYWRkIE1QQzgzMlhFTURTIGFuZCBzYmM4MzQ5IHRvIE1BS0VBTEwKCmNvbW1pdCA0ZGVjZDg0ZThmMDQyNzljNWNmZmY3ZjhlOTA3NDY1ZWY4ZDhhM2ZiCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyNCAxNzoxODozNyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogc29ydCBNYWtlZmlsZSB0YXJnZXRzCgogICAgcmVvcmRlcmVkIHRhcmdldHMgYWxwaGFiZXRpY2FsbHkKCmNvbW1pdCA5MWUyNTc2OTc3MWMxMTY0ZWQ2M2ZmY2EwYWRkNDlmOTM0YWUzMzQzCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVR1ZSBKYW4gMTYgMTE6Mzg6MTQgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IFUtQm9vdCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyIFNCQzgzNDkKCiAgICBJJ3ZlIHJlZG9uZSB0aGUgU0JDODM0OSBzdXBwb3J0IHRvIG1hdGNoIGdpdC1jdXJyZW50LCB3aGljaAogICAgaW5jb3Jwb3JhdGVzIGFsbCB0aGUgTVBDODM0eCB1cGRhdGVzIGZyb20gRnJlZXNjYWxlIHNpbmNlIHRoZSAxLjEuNgogICAgcmVsZWFzZSwgIGluY2x1ZGluZyB0aGUgRERSIGNoYW5nZXMuCgogICAgSSd2ZSBrZXB0IGFsbCB0aGUgU0JDODM0OSBmaWxlcyBhcyBwYXJhbGxlbCBhcyBwb3NzaWJsZSB0byB0aGUKICAgIE1QQzgzNDlFTURTIG9uZXMgZm9yIGVhc2Ugb2YgbWFpbnRlbmFuY2UgYW5kIHRvIGFsbG93IGZvciBlYXN5CiAgICBpbnNwZWN0aW9uIG9mIHdoYXQgd2FzIGNoYW5nZWQgdG8gc3VwcG9ydCB0aGlzIGJvYXJkLiAgSGVuY2UgdGhlIFNCQzgzNDkKICAgIFUtQm9vdCBoYXMgRkRUIHN1cHBvcnQgYW5kIGV2ZXJ5dGhpbmcgZWxzZSB0aGF0IHRoZSBNUEM4MzQ5RU1EUyBoYXMuCgogICAgRm9ydHVuYXRlbHkgdGhlIEZyZWVzY2FsZSB1cGRhdGVzIGFkZGVkIHN1cHBvcnQgZm9yIGJvYXJkcyB1c2luZyBDUzAsCiAgICBidXQgSSBoYWQgdG8gY2hhbmdlIHNwZF9zZHJhbS5jIHRvIGFsbG93IGZvciBib2FyZCBzcGVjaWZpYyBzZXR0aW5ncyBmb3IKICAgIHRoZSBzZHJhbV9jbGtfY250bCAoaXQgaXMvd2FzIGhhcmQgY29kZWQgdG8gemVybywgYW5kIHRoYXQgcmVtYWlucyB0aGUKICAgIGRlZmF1bHQgaWYgdGhlIGJvYXJkIGRvZXNuJ3Qgc3BlY2lmeSBhIHZhbHVlLikKCiAgICBIb3BlZnVsbHkgdGhpcyBzaG91bGQgYmUgbWVyZ2VhYmxlIGFzLWlzIGFuZCByZXF1aXJlIG5vIHdoaXRlc3BhY2UKICAgIGNsZWFudXBzIG9yIHNpbWlsYXIsIGJ1dCBpZiBzb21ldGhpbmcgZG9lc24ndCBtZWFzdXJlIHVwIHRoZW4gbGV0IG1lCiAgICBrbm93IGFuZCBJJ2xsIGZpeCBpdC4KCiAgICBUaGFua3MsCiAgICBQYXVsLgoKY29tbWl0IDA1MDMxZGI0NTZhYjIyN2YzZTM3NTJmMzdiOWI4MTJiNjViYjgzYWQKQXV0aG9yOiBTYW0gU29uZyA8c2Ftc29uZ3NodUB5YWhvby5jb20uY24+CkRhdGU6CVRodSBEZWMgMTQgMTk6MDM6MjEgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZSBhIHJlZHVuZGFudCBzZW1pY29sb24gaW4gbXBjODM0OWl0eC5jCgogICAgQSByZWR1bmRhbnQgc2VtaWNvbG9uIGV4aXN0ZWQgaW4gbXBjODM0OWl0eC5jCiAgICBzaG91bGQgYmUgcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW0gU29uZyA8c2Ftc29uZ3NodUB5YWhvby5jb20uY24+Cgpjb21taXQgZjM1ZjM1ODI0MWM1NDliZTNmNzVjZmUyZWFhNjQyOTE0Mjc1YjdiYQpBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z2VyYWxkLnZhbmJhcmVuQGNvbWNhc3QubmV0PgpEYXRlOglXZWQgRGVjIDYgMjE6MjM6NTUgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IFB1dCB0aGUgdmVyc2lvbiAoYW5kIG1hZ2ljKSBhZnRlciB0aGUgSFJDVy4KCiAgICBQdXQgdGhlIHZlcnNpb24gKGFuZCBtYWdpYykgYWZ0ZXIgdGhlIEhSQ1cuICBUaGlzIHB1dHMgaXQgaW4gYSBmaXhlZAogICAgbG9jYXRpb24gaW4gZmxhc2gsIG5vdCBhdCB0aGUgc3RhcnQgb2YgZmxhc2ggYnV0IGFzIGNsb3NlIGFzIHdlIGNhbiBnZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSmVycnkgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDQ4YWVjZDk2OTE3MWE2ZTk5YTU1ZmFlMDQ5MzM4NTc3ODdmOWE1YmQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxNDo1MSAyMDA2ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBNUEM4MzJYRU1EUyBib2FyZCByZWFkbWUKCiAgICBBZGQgdGhlIE1QQzgzMlhFTURTIGJvYXJkIHJlYWRtZQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjRjM2FjYTNmMTM1OGIxMTNkMzIxNWFkYjU0MzNiMTU2ZTk5ZjcyYgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDIxOjEzOjE1IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzMlhFTURTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBzdXBwb3J0cyBEVUFSVCwgRVRIMy80IGFuZCBQQ0kgZXRjLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTA4MDMxM2MzMjMyMmUxNWFiNWExOGViODk2YTI1Mjg1OGM1NzI4NApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDIxOjExOjU4IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBzdHJlYW1saW5lIHRoZSA4M3h4IGltbXIgaGVhZCBmaWxlCgogICAgRm9yIGJldHRlciBmb3JtYXQgYW5kIHN0eWxlLCBJIHN0cmVhbWxpbmVkIHRoZSA4M3h4IGhlYWQgZmlsZXMsCiAgICBpbmNsdWRpbmcgaW1tYXBfODN4eC5oIGFuZCBtcGM4M3h4LmguIEluIHRoZSBvbGQgaGVhZCBmaWxlcywgMSkKICAgIGR1cGxpY2F0ZWQgbWFjcm8gZGVmaW5pdGlvbiBhcHBlYXIgaW4gdGhlIGJvdGggZmlsZXM7IDIpIHRoZSBzdHJ1Y3R1cmUKICAgIG9mIFFFIGltbXIgaXMgZHVwbGljYXRlZCBpbiB0aGUgaW1tYXBfODN4eC5oIGFuZCBpbW1hcF9xZS5oOyAzKSBUaGUKICAgIG1hY3JvIGRlZmluaXRpb24gcHV0IGluc2lkZSB0aGUgZWFjaCBzdHJ1Y3R1cmUuIFNvLCBJIGNsZWFuZWQgdXAgdGhlCiAgICBzdHJ1Y3R1cmUgb2YgUUUgaW1tciBmcm9tIGltbWFwXzgzeHguaCwgZGVsZXRlZCB0aGUgZHVwbGljYXRlZCBzdHVmZiBhbmQKICAgIG1vdmVkIHRoZSBtYWNybyBkZWZpbml0aW9uIHRvIG1wYzgzeHguaCwgSnVzdCBsaWtlIE1QQzgyNjAuCgogICAgQ0hBTkdFTE9HCgogICAgKnN0cmVhbWxpbmUgdGhlIDgzeHggaW1tciBoZWFkIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkZDAyNDkyZjQzZGI1NDA4ZjVhYjlmODIzYjBiYTU3OTZlMjhlZjAKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBEZWMgNiAxMTozODoxNyAyMDA2ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBVRUMgZHJpdmVyIGJ1ZyBvZiBRRQoKICAgIFRoZSBwYXRjaCBwcmV2ZW50cyB0aGUgR0NDIHRvb2wgY2hhaW4gZnJvbSBzdHJpcGluZyB1c2VmdWwgY29kZSBmb3IKICAgIG9wdGltaXphdGlvbi4gSXQgd2lsbCBtYWtlIFVFQyBldGhlcm5ldCBkcml2ZXIgd29ya2FibGUsIE90aGVyd2lzZSB0aGUKICAgIFVFQyB3aWxsIGZhaWwgaW4gdHggd2hlbiB5b3UgYXJlIHVzaW5nIGdjYzQueC4gYnV0IHRoZSBkcml2ZXIgY2FuIHdvcmsKICAgIHdoZW4gdXNpbmcgZ2NjMy40LjMuCgogICAgQ0hBTkdFTE9HCgogICAgKlByZXZlbnQgdGhlIEdDQyBmcm9tIHN0cmlwaW5nIGNvZGUgZm9yIG9wdGltaXphdGlvbiwgT3RoZXJ3aXNlIHRoZSBVRUMKICAgIHdpbGwgdHggZmFpbGVkIHdoZW4geW91IGFyZSB1c2luZyBnY2M0LnguCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTU4ZTRjOWE5YTkxN2NlNzk1ZGQxNmQ0ZWM4ZDUxNWY5ZjdhYTM1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEgMjE6MTE6MzYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFNQ0MgS2F0bWFpIDQ0MFNQZSBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIHJlY2VudGx5IGFkZGVkIEthdG1haSBib2FyZCBzdXBwb3J0LiBUaGUgYmlnZ2VzdAogICAgY2hhbmdlIGlzIHRoZSBzdXBwb3J0IG9mIEVDQyBESU1NIG1vZHVsZXMgaW4gdGhlIDQ0MFNQKGUpIFNQRCBERFIyCiAgICBkcml2ZXIuCgogICAgUGxlYXNlIG5vdGUsIHRoYXQgc3RpbGwgc29tZSBwcm9ibGVtcyBhcmUgbGVmdCB3aXRoIHNvbWUgbWVtb3J5CiAgICBjb25maWd1cmF0aW9ucy4gU2VlIHRoZSBkcml2ZXIgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGMxMjA0NWEzYjA2YzViNjY3NWQzZmUwMmZiYzlmNTQ1OTg4MTI5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxIDA3OjAzOjI1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIG1pc3NpbmcgZGVmYXVsdCBDRkdfUlRDX0JVU19OVU0gJiBDRkdfRFRUX0JVU19OVU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2NiYzcwMzY2NDhlNDY1Njk3Y2EyOThiYTUxZTBlNzZkZGEzNTJhMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgRmViIDI4IDAxOjI4OjUzIDIwMDcgKzAxMDAKCiAgICBTQzM6IGZpeCB0eXBvIGluIGRlZmF1bHQgZW52aXJvbm1lbnQKCmNvbW1pdCBlMzQ0NTY4YjFiNDZhZjg1ZWMzMmQ4MTU1ODZmOTFiYzExNWQ2MjIzCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAyMDoxNTozMCAyMDA3ICswMzAwCgogICAgTUNDMjAwOiBGaXhlcyBmb3IgdXBkYXRlIHByb2NlZHVyZQoKICAgIC0gZml4IGxvZ2ljIGVycm9yIGluIGltYWdlIHR5cGUgaGFuZGxpbmcKICAgIC0gbWFrZSBzdXJlIGZpbGUgc3lzdGVtIGltYWdlcyAoY3JhbWZzIGV0Yy4pIGdldCBzdG9yZWQgaW4gZmxhc2gKICAgICAgd2l0aCBpbWFnZSBoZWFkZXIgc3RyaXBwZWQgc28gdGhleSBjYW4gYmUgbW91bnRlZCB0aHJvdWdoIE1URAoKY29tbWl0IDc0MzU3MTE0NWIzNzE4Mjc1N2Q0ZTY4OGE3Nzg2MGIzNmVlNzc1NzMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyNyAxNDoyNjowNCAyMDA3ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IDYzOGRkMTQ1OGJiZGMyYTU1ZDRiOWUyNWM1YzRlMWY4MzhhNWRjNzIKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUdWUgRmViIDI3IDEyOjQwOjE2IDIwMDcgKzAzMDAKCiAgICBNQ0MyMDAgdXBkYXRlIC0gYWRkIExDRCBQcm9ncmVzcyBJbmRpY2F0b3IKCmNvbW1pdCA2YzdjYWM4YzRmY2UwZWEyYmY4ZTE1ZWQ4NjU4ZDg3OTc0MTU1YjQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRmViIDIyIDA3OjQzOjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIGdldF9kZXYoKSBub3cgdW5jb25kaXRpb25hbGx5IHVzZXMgbWFudWFsIHJlbG9jYXRpb24KCiAgICBTaW5jZSB0aGUgcmVsb2NhdGlvbiBmaXggaXMgbm90IGluY2x1ZGVkIHlldCBhbmQgd2UncmUgbm90IHN1cmUgaG93CiAgICBpdCB3aWxsIGJlIGFkZGVkLCB0aGlzIHBhdGNoIHJlbW92ZXMgY29kZSB0aGF0IHJlcXVpcmVkIHJlbG9jYXRpb24KICAgIHRvIGJlIGZpeGVkIGZvciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgyNzRlYzBiZDAxZDJmZWIyYzdmMDk1ZWJhNzhkNDJlYTAwOTc5OGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMjIgMDc6NDA6MjMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2hhbmdlIHN5c3RlbWFjZSBkcml2ZXIgdG8gc2VsZWN0IDggJiAxNmJpdCBtb2RlCgogICAgQXMgc3VnZ2VzdGVkIGJ5IEdyYW50IExpa2VseSB0aGlzIHBhdGNoIGVuYWJsZXMgdGhlIFhpbGlueCBTeXN0ZW1BQ0UKICAgIGRyaXZlciB0byBzZWxlY3QgOCBvciAxNmJpdCBtb2RlIHVwb24gc3RhcnR1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2ExOTdiMmZlNDlkNmZhMDM5NzhlNjBhZjIzOTRlZmU5YzcwYjUyNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjEgMTY6NTI6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSCB2M10gQWRkIHN5bmMgdG8gZW5zdXJlIGZsYXNoX3dyaXRlX2NtZCBpcyBmdWxseSBmaW5pc2hlZAoKICAgIFNvbWUgQ1BVcyBsaWtlIFBQQywgQkxBQ0tGSU4gbmVlZCBzeW5jKCkgdG8gZW5zdXJlIGNmaSBmbGFzaCB3cml0ZSBjb21tYW5kCiAgICBpcyBmdWxseSBmaW5pc2hlZC4gVGhlIHN5bmMoKSBpcyBkZWZpbmVkIGluIGVhY2ggQ1BVJ3MgaW8uaCBmaWxlLiBGb3IKICAgIHRob3NlIENQVXMgd2hpY2ggZG8gbm90IG5lZWQgc3luYyBmb3Igbm93LCBhIGR1bW15IHN5bmMoKSBpcyBkZWZpbmVkIGluCiAgICB0aGVpciBpby5oIGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYTA0OTk1YzdkYzY3NzIwMTNhOWEwZGM1Yzc2N2YxOTBjNDAyNDc4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRmViIDIxIDEzOjQ0OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCBwcm9ibGVtIGluIHN5c3RlbWFjZSBkcml2ZXIgKGFjZV93cml0ZXcgaW5zdGVhZCBvZiBhY2Vfd3JpdGUpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1MWJiNTcxMDdkNzg5NzhhZTA4ZTY5N2MzZGViYTgxNmY1YmUwOTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MjE6NTcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4IHJlbG9jYXRpb24gcHJvYmxlbSB3aXRoICJuZXciIGdldF9kZXYoKSBmdW5jdGlvbgoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgIm5ldyIgZ2V0X2RldigpIGZ1bmN0aW9uIGZvciBibG9jayBkZXZpY2VzCiAgICBpbnRyb2R1Y2VkIGJ5IEdyYW50IExpa2VseSB0byBiZSB1c2VkIG9uIHN5c3RlbXMgdGhhdCBzdGlsbCBzdWZmZXIKICAgIGZyb20gdGhlIHJlbG9jYXRpb24gcHJvYmxlbXMgKG1hbnVhbCByZWxvY2F0aW9uIG5lZWRlIGJlY2F1c2Ugb2YKICAgIHByb2JsZW1zIHdpdGggbGlua2VyIHNjcmlwdCkuCgogICAgSG9wZWZ1bGx5IHdlIGNhbiByZXNvbHZlIHRoaXMgcmVsb2NhdGlvbiBpc3N1ZSBzb29uIGZvciBhbGwgcGxhdGZvcm0KICAgIHNvIHdlIGRvbid0IG5lZWQgdGhpcyBhZGRpdGlvbmFsIGNvZGUgYW55bW9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDkzZTIyMTJmOTYyNjY4YjNkY2UwOTFmZjVlZGMzM2YyMzQ3ZmUzNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMzoxNzo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgU3lzdGVtQUNFIGRyaXZlciBmb3IgMTZiaXQgYWNjZXNzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHNvbWUgcHJvYmxlbXMgd2hlbiB0aGUgWGlsaW54IFN5c3RlbUFDRSBkcml2ZXIKICAgIGlzIHVzZWQgd2l0aCAxNmJpdCBhY2Nlc3Mgb24gYW4gYmlnIGVuZGlhbiBwbGF0Zm9ybSAobGlrZSB0aGUKICAgIEFNQ0MgS2F0bWFpKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODc0YmI3Yjg4ZmU5YjQ2NDhlMTI4OGEzODdhZjJlMzEwMTRhNzJmMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMzoxNTo0MCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhbiB1cCBLYXRtYWkgKDQ0MFNQZSkgbGlua2VyIHNjcmlwdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0NzQ1YWNhYTFhNjAzYjY3ZjZiOWI3OTcwMzY1ZWJhZGQ3ZDY1ODZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjU3OjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciB0aGUgQU1DQyBLYXRtYWkgKDQ0MFNQZSkgZXZhbCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGMwMThlY2UxM2VmZmM2ODllNDc0NzllYTllYmYxYzk4YTUwN2Y1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjUxOjI2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMgZm9yIFJUQyAmIERUVAoKICAgIFRoaXMgcGF0Y2ggc3dpdGNoZXMgdG8gdGhlIGRlc2lyZWQgSTJDIGJ1cyB3aGVuIHRoZSBkYXRlL2R0dAogICAgY29tbWFuZHMgYXJlIGNhbGxlZC4gVGhpcyBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUKICAgIENGR19SVENfQlVTX05VTSBhbmQvb3IgQ0ZHX0RUVF9CVVNfTlVNIGRlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQwMzdlZDNiNjM5MjNjZmNlYzI3Zjc4NGE4OTA1N2MzY2JhYmNlZGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6NDM6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiBBZGQgNDQwU1AoZSkgRERSMiBTUEQgRElNTSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBERFIyIGNvbnRyb2xsZXIgdXNlZCBvbiB0aGUKICAgIDQ0MFNQIGFuZCA0NDBTUGUuIEl0IGlzIHRlc3RlZCBvbiB0aGUgS2F0bWFpICg0NDBTUGUpIGV2YWwKICAgIGJvYXJkIGFuZCB3b3JrcyBmaW5lIHdpdGggdGhlIGZvbGxvd2luZyBESU1NIG1vZHVsZXM6CgogICAgLSBDb3JzYWlyIENNMlg1MTItNTQwMEM0ICg1MTJNQnl0ZSBwZXIgRElNTSkKICAgIC0gS2luZ3N0b24gVmFsdWVSQU0gS1ZSNjY3RDJONS81MTIgKDUxMk1CeXRlIHBlciBESU1NKQogICAgLSBLaW5nc3RvbiBWYWx1ZVJBTSBLVlI2NjdEMk41SzIvMkcgKDFHQnl0ZSBwZXIgRElNTSkKCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyB0aGUgbmljZSBmdW5jdGlvbmFsaXR5IHRvIGR5bmFtaWNhbGx5CiAgICBjcmVhdGUgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUgU0RSQU0gKHRsYi5jKS4gU28gd2Ugc2hvdWxkCiAgICBuZXZlciBydW4gaW50byBzdWNoIHByb2JsZW1zIHdpdGggd3JvbmcgKHRvbyBzaG9ydCkgVExCCiAgICBpbml0aWFsaXphdGlvbiBhZ2FpbiBvbiB0aGVzZSBwbGF0Zm9ybXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2ZDgzMGM5ODMwMzc5MDQ1ZjVkYWE5ZjU0MmFjMWM5OTBjNzAwNjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6MzU6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiBTcGxpdCA0eHggU1BEIFNEUkFNIGluaXQgcm91dGluZXMgaW50byAyIGZpbGVzCgogICAgU2luY2UgdGhlIGV4aXN0aW5nIDR4eCBTUEQgU0RSQU0gaW5pdGlhbGl6YXRpb24gcm91dGluZXMgZm9yIHRoZQogICAgNDA1IFNEUkFNIGNvbnRyb2xsZXIgYW5kIHRoZSA0NDAgRERSIGNvbnRyb2xsZXIgZG9uJ3QgaGF2ZSBtdWNoIGluCiAgICBjb21tb24gdGhpcyBwYXRjaCBzcGxpdHMgYm90aCBkcml2ZXJzIGludG8gZGlmZmVyZW50IGZpbGVzLgoKICAgIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSA0NDAgRERSMiBjb250cm9sbGVyIHN1cHBvcnQgKDQ0MFNQL2UpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3OWIyZDBiYjJlYWUwOTYwMjQ0OGY3YTdjYjU2NTMwZDJmMzFlNmM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjI3OjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c3NlcyBvbiB0aGUgUFBDNHh4CiAgICBwbGF0Zm9ybXMuIERlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUyBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUKICAgIHRvIG1ha2UgdXNlIG9mIHRoaXMgZmVhdHVyZS4KCiAgICBJdCBhbHNvIG1lcmdlcyB0aGUgNDA1IGFuZCA0NDAgaTJjIGhlYWRlciBmaWxlcyBpbnRvIG9uZSBjb21tb24KICAgIGZpbGUgNHh4X2kyYy5oLgoKICAgIEFsc28gdGhlIDR4eCBpMmMgcmVzZXQgcHJvY2VkdXJlIGlzIHJld29ya2VkIHNpbmNlIEkgZXhwZXJpZW5jZWQKICAgIHNvbWUgcHJvYmxlbXMgd2l0aCB0aGUgZmlyc3QgYWNjZXNzIG9uIHRoZSA0NDBTUGUgS2F0bWFpIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYjg2N2E3NjIzOGZiMzhlOTUyYzM3ODcxYjE2ZDBkN2ZkNjFjOTVmCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjQ1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggOV85XSBVc2UgInZvaWQgKiIgbm90ICJ1bnNpZ25lZCBsb25nICoiIGZvciBibG9jayBkZXYgcmVhZF93cml0ZSBidWZmZXIgcG9pbnRlcnMKCiAgICBCbG9jayBkZXZpY2UgcmVhZC93cml0ZSBpcyBhbm9ueW1vdXMgZGF0YTsgdGhlcmUgaXMgbm8gbmVlZCB0byB1c2UgYQogICAgdHlwZWQgcG9pbnRlci4gIHZvaWQgKiBpcyBmaW5lLiAgQWxzbyBhZGQgYSBob29rIGZvciBibG9ja19yZWFkIGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1Mzc1OGZhMjBlOTM1Y2M4N2VlYjA1MTllZDM2NWRmNzUzYTZmMjg5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjM4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggOF85XSBBZGQgYmxvY2tfd3JpdGUgaG9vayB0byBibG9ja19kZXZfZGVzY190CgogICAgUHJlcGFyYXRpb24gZm9yIGZ1dHVyZSBwYXRjaGVzIHdoaWNoIHN1cHBvcnQgYmxvY2sgZGV2aWNlIHdyaXRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjQ4NTJlYmU2Y2E5NDZhNTA5NjY3ZWI2OGJlNDIwMjZmODM3YmU3NgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTozMSAyMDA3ICswMTAwCgogICAgW1BBVENIIDdfOV0gUmVwbGFjZSBhY2VfcmVhZHdfYWNlX3dyaXRlYiBmdW5jdGlvbnMgd2l0aCBtYWNyb3MKCiAgICBSZWdpc3RlciByZWFkL3dyaXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBhIGZ1bGwgZnVuY3Rpb24uICBUaGUKICAgIHBhdGNoIHJlcGxhY2VzIHRoZW0gd2l0aCBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDNhOGNlOWFmNmZjYjU3NDRhNzg1MWI0NDQwYzA3Njg4YWNjNDA4NDQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MjMgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA2XzldIE1vdmUgY29tbW9uX2NtZF9hY2UuYyB0byBkcml2ZXJzX3N5c3RlbWFjZS5jCgogICAgVGhlIGNvZGUgaW4gdGhpcyBmaWxlIGlzIG5vdCBhIGNvbW1hbmQ7IGl0IGlzIGEgZGV2aWNlIGRyaXZlci4gIFB1dCBpdCBpbgogICAgdGhlIGNvcnJlY3QgcGxhY2UuCVRoZXJlIGFyZSB6ZXJvIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGlzIHBhdGNoLCBpdAogICAgb25seSBtb3ZlcyB0aGUgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTg0NjE4ZjNlNzc5NGM3ODNlYzhkMTUxMWU3NGM2ZWUyZDY5YmZlNApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNToxNiAyMDA3ICswMTAwCgogICAgW1BBVENIIDVfOV0gV2hpdGVzcGFjZSBmaXh1cCBvbiBjb21tb25fY21kX2FjZS5jICh1c2luZyBMaW5kZW50KQoKICAgIFRoaXMgcGF0Y2ggaXMgaW4gcHJlcGFyYXRpb24gb2YgYWRkaXRpb25hbCBjaGFuZ2VzIHRvIHRoZSBzeXNhY2UgZHJpdmVyLgogICAgTWF5IGFzIHdlbGwgdGFrZSB0aGlzIG9wcG9ydHVuaXR5IHRvIGZpeHVwIHRoZSBpbmNvbnNpc3RlbnQgd2hpdGVzcGFjZSBzaW5jZQogICAgdGhpcyBmaWxlIGlzIGFib3V0IHRvIHVuZGVyZ28gbWFqb3IgY2hhbmdlcyBhbnl3YXkuCgogICAgVGhlcmUgYXJlIHplcm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoaXMgcGF0Y2guICBJdCBvbmx5IGNsZWFucyB1cCB0aGUKICAgIHRoZSB3aGl0ZXNwYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA4MGJhOTgxZDk0MDQ3MWZlN2U1MzllNjRmYTNkMmJkODAwMDJiZWRhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjA3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggNF80XSBSZW1vdmUgbG9jYWwgaW1wbGVtZW50YXRpb24gb2YgaXNwcmludCgpIGluIGZ0X2J1aWxkLmMKCiAgICBpc3ByaW50IGlzIGFscmVhZHkgZGVmaW5lZCBpbiBjdHlwZS5jCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGM5NWM0MjgwZDc1MWNhMDc4YzJmZjU4MjI4ZDJmMmI0NGNjZjA2MDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAzXzldIE1vdmUgYnVmZmVyIHByaW50IGNvZGUgZnJvbSBtZCBjb21tYW5kIHRvIGNvbW1vbiBmdW5jdGlvbgoKICAgIFByaW50aW5nIGEgYnVmZmVyIGlzIGEgZGFybiB1c2VmdWwgdGhpbmcuICBNb3ZlIHRoZSBidWZmZXIgcHJpbnQgY29kZQogICAgaW50byBwcmludF9idWZmZXIoKSBpbiBsaWJfZ2VuZXJpYy8KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTliMGYwZmQzZmJmMjU3MmFlMWE3NzIzZGQ5MGNmZmM4ZTg1MTMwYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNDo1MiAyMDA3ICswMTAwCgogICAgW1BBVENIIDJfNF0gVXNlIGNvbmZpZy5oLCBub3QgeHBhcmFtZXRlcnMuaCwgZm9yIHhpbGlueCB0YXJnZXRzCgogICAgQ2hhbmdlIHRoZSB4aWxpbnggZGV2aWNlIGRyaXZlcnMgYW5kIGJvYXJkIGNvZGUgdG8gaW5jbHVkZSBjb25maWcuaAogICAgaW5zdGVhZCBvZiB4cGFyYW1ldGVycy5oIGRpcmVjdGx5Lgljb25maWcuaCBhbHdheXMgaW5jbHVkZXMgdGhlCiAgICBjb3JyZWN0IHhwYXJhbWV0ZXJzIGZpbGUuICBUaGlzIGNoYW5nZSByZWR1Y2VzIHRoZSBwb3NpYmlsaXR5IG9mCiAgICBpbmNsdWRpbmcgdGhlIHdyb25nIGZpbGUgd2hlbiBhZGRpbmcgYSBuZXcgeGlsaW54IGJvYXJkIHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzM1ZGQ5N2IxYjIwZTc3N2QwNTljN2IzODlmZTlkNzBjZDNmODBjNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNDozNCAyMDA3ICswMTAwCgogICAgW1BBVENIIDFfNF0gTWVyZ2UgY29tbW9uIGdldF9kZXYoKSByb3V0aW5lcyBmb3IgYmxvY2sgZGV2aWNlcwoKICAgIEVhY2ggb2YgdGhlIGZpbGVzeXN0ZW0gZHJpdmVycyBkdXBsaWNhdGUgdGhlIGdldF9kZXYgcm91dGluZS4gIFRoaXMgY2hhbmdlCiAgICBtZXJnZXMgdGhlbSBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uIGluIHBhcnQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmNWZjYzNjMjBiNjU1NTRlOThhMTY1NTQyYzM2ZWUwYzYxMGEyZDgxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTkgMjM6MDk6NTEgMjAwNyArMDEwMAoKICAgIE1DQzIwMDogU29mdHdhcmUgVXBkYXRlcjogYWxsb3cgYm90aCAicmFtZGlzayIgYW5kICJmaWxlc3lzdGVtIiB0eXBlcwogICAgYXMgcm9vdCBmaWxlIHN5c3RlbSBpbWFnZXMuCgpjb21taXQgNDg5YzY5NmFlNzIxMTIxODk2MWQxNTllNDNlNzIyZDc0YzM2ZmNiYwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTQ6MzA6MjggMjAwNyArMDMwMAoKICAgIE1DQzIwMDogRXh0ZW5zaW9ucyB0byBTb2Z0d2FyZSBVcGRhdGUgTWVjaGFuaXNtCgogICAgVXBkYXRlIC8gZXh0ZW5kIFNvZnR3YXJlIFVwZGF0ZSBNZWNoYW5pc20gZm9yIE1DQzIwMCBib2FyZDoKCiAgICAtIEFkZCBzdXBwb3J0IGZvciByb290ZnMgaW1hZ2UgYWRkZWQuIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICAgICAgInJvb3Rmc19zdCIgYW5kICJyb290ZnNfbmQiIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0CiAgICAgIHZhbHVlcyBvZiB0aGUgaW1hZ2Ugc3RhcnQgYW5kIGVuZC4KICAgIC0gUmVtb3ZlIGV4Y2Vzc2l2ZSBrZXkgY2hlY2sgY29kZS4KICAgIC0gQ29kZSBjbGVhbnVwLgoKY29tbWl0IDRiZTIzYTEyZjIzZjEzNzI2MzRlZGMzMjE1MTM3YjA5NzY4Yjc5NDkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTkgMDg6MjM6MTUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFNlcXVvaWEgRUJDIGNvbmZpZ3VyYXRpb24gKE5PUiBGTEFTSCkKCiAgICBBcyBzcG90dGVkIGJ5IE1hdHRoaWFzIEZ1Y2hzLCB0aGUgUkVBRFkgaW5wdXQgc2hvdWxkIG5vdCBiZQogICAgZW5hYmxlZCBmb3IgdGhlIE5PUiBGTEFTSCBvbiB0aGUgU2VxdW9pYSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjYwNWU5MGJmNjc2ZDQ4MTIzYWZlNTcxOWE4NDZkMmI1MmIyNGFhYwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxNiAwNzo1Nzo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGRlZCBzdXBwb3J0IGZvciB0aGUganVwaXRlciBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA0OTdkMDEyZTViZTAxOTRlMTA4NDA3M2QwMDgxZWIxYTg0NDc5NmIyCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDEyIDEzOjExOjUwIDIwMDcgKzAxMDAKCiAgICBMUEMyMjkyOiBwYXRjaCBmcm9tIFNpZW1lbnMuCgpjb21taXQgYjBiMWE5MjBhZWJlYWQwZDQ0MTQ2ZTczNjc2YWU5ZDgwZmZmYzhlMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEZlYiAxMCAwODo0OTozMSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgbWlzc2luZyBwM214LmggZmlsZSB0byByZXBvc2l0b3J5ICh1cHMpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzZDRhNDk4M2ZiOWIzYWU1ZjdiMmYxMGM1OTlhY2EyYjFiNDAzNGEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDkgMTA6NDU6NDIgMjAwNyArMDEwMAoKICAgIFtNb3Rpb24tUFJPXSBQcmVsaW1pbmFyeSBzdXBwb3J0IGZvciB0aGUgTW90aW9uLVBSTyBib2FyZC4KCmNvbW1pdCA1YTc1M2Y5OGM2YTAxYmQxYzYxYTlhM2Y5NWU4MzI5YTM1ZjYyOTk0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRmViIDcgMTY6NTE6MDggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIHNvbWUgQU1DQyA0eHggYm9hcmQgY29uZmlnIGZpbGVzIChzZXQgaW5pdHJkX2hpZ2gpCgogICAgU29tZSBib2FyZHMgdGhhdCBjYW4gaGF2ZSBtb3JlIHRoYW4gNzY4TUJ5dGVzIG9mIFNEUkFNIG5lZWQgdG8KICAgIHNldCAiaW5pdHJkX2hpZ2giLCBzbyB0aGF0IHRoZSBpbml0cmQgY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZQogICAgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MzcyY2E2ODIyNzkzMGQwM2NmZmE1NDgzMTA1MjRjYWQ1Yjk2NzMzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRmViIDIgMTI6NDQ6MjIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ29ycmVjdGx5IGRpc3BsYXkgUENJIGFyYml0ZXIgZW4tL2Rpc2FibGVkIG9uIHNvbWUgNHh4IGJvYXJkcwoKICAgIFByZXZpb3VzbHkgdGhlIHN0cmFwcGluZyBEQ1IvU0RSIHdhcyByZWFkIHRvIGRldGVybWluZSBpZiB0aGUgaW50ZXJuYWwgUENJCiAgICBhcmJpdGVyIGlzIGVuYWJsZWQgb3Igbm90LiBUaGlzIHN0cmFwcGluZyBiaXQgY2FuIGJlIG92ZXJyaWRkZW4sIHNvIG5vdwogICAgdGhlIGN1cnJlbnQgc3RhdHVzIGlzIHJlYWQgZnJvbSB0aGUgY29ycmVjdCBEQ1IvU0RSIHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyYWE1NGY2NTFhNDJkMTk4NjczMzE4ZjA3YTIwYzg5YTQzZTRkMTk3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRmViIDIgMTI6NDI6MDggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2hhbmdlIGNvbmZpZ3VyYXRpb24gb3V0cHV0IG9mIFN5Y2Ftb3JlLCBZZWxsb3dzdG9uZSAmIFJhaW5pZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjM3NDRkNmI1YmYxNzU5MmViNmEwZWY0ZjMxOGY2MDg5ZjU1OTkzYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxIDEzOjIyOjQxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSBQQ0ktUE5QIGNvbmZpZ3VyYXRpb24gZnJvbSBTZXF1b2lhL1JhaW5pZXIgY29uZmlnIGZpbGUKCiAgICBXaGVuIFBDSSBQTlAgaXMgZW5hYmxlZCB0aGUgcGNpIHBucCBjb25maWd1cmF0aW9uIHJvdXRpbmUgaXMgY2FsbGVkCiAgICB3aGljaCBzZXRzIHRoZSBQQ0lfQ0FDSEVfU0laRV9MSU5FIHRvIDguIFRoaXMgc2VlbXMgdG8gZ2VuZXJhdGUgc29tZQogICAgcHJvYmxlbXMgd2l0aCBzb21lIFBDSSBjYXJkcy4gRm9yIG5vdyBkaXNhYmxlIHRoZSBQQ0kgUE5QIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI5MDJmYWRhZGUzYmU3NjU5NDY3ZThkMDc0MDQ4YzZiNzA2OGY1YzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTY6NTY6MTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIDQ0MEVQeC80NDBHUnggY3B1IGRldGVjdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNWVhMjg3YjAyYTY5NDVjMzk3NzQxMGUzNjRhODc5ZGQxYTU1NWM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDE2OjM4OjA0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBlc2QgY3BjaTUyMDAgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBSZWluaGFyZCBBcmx0IDxyZWluaGFyZC5hcmx0QGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgOGI3ZDFmMGFiN2Q3YzRmZTMxNjBiYmY3NGE3ZTk2OTBkOWYzYTNhYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMSAxNjozNzozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgZXNkIG1lY3A1MjAwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogUmVpbmhhcmQgQXJsdCA8cmVpbmhhcmQuYXJsdEBlc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDcxYTRlNWZkYThiNjAwNDRhYjlmNDYwNjlmYTFjZmEyNmJkZDA3ZmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTI6Mzg6NTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIHVubmVjY2Vzc2FyeSB5ZWxsb3dzdG9uZSBib2FyZCBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlODAyNTk0YjZmYTFiMTY2MzA4ODIwYzI3NmI5NmRjMGQ3Y2M3MzFjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE3OjA2OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhICg0NDBFUHgpIGNvbmZpZyBmaWxlCgogICAgVGhlIGNvbmZpZyBmaWxlIG5vdyBoYW5kbGVzIHRoZSAybmQgdGFyZ2V0LCB0aGUgUmFpbmllciAoNDQwR1J4KQogICAgZXZhbHVhdGlvbiBib2FyZCBiZXR0ZXIuIEFkZGl0aW9uYWxseSB0aGUgUFBDIGlucHV0IGNsb2NrIHdhcwogICAgYWRqdXN0ZWQgdG8gbWF0Y2ggdGhlIGNvcnJlY3QgdmFsdWUgb2YgMzMuMCBNSHouCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcwMDIwMGM2N2U3M2I4Mzc1MTQxOGFiZTc4MTU4NDBkY2E4ZmQ2Y2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTc6MDQ6MTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gTWVyZ2UgWW9zZW1pdGUgJiBZZWxsb3dzdG9uZSBib2FyZCBwb3J0cwoKICAgIE5vdyB0aGUgQU1DQyBldmFsIGJvYXJkcyBZb3NlbWl0ZSAoNDQwRVApIGFuZCBZZWxsb3dzdG9uZSAoNDQwR1IpCiAgICBzaGFyZSBvbmUgY29uZmlnIGZpbGUgYW5kIGFsbCBib2FyZCBzcGVjaWZpYyBmaWxlcy4gVGhpcyB3YXkgd2UKICAgIGRvbid0IGhhdmUgdG8gbWFpbnRhaW4gdHdvIGRpZmZlcmVudCBzZXRzIG9mIGZpbGVzIGZvciBuZWFybHkKICAgIGlkZW50aWNhbCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFiYmY1ZWFlMzIyZjVmMWY2NDI3ZWNjM2FjMTNhMGNiN2RiYThhZDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTU6MDE6NDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIFNDUFUgKFBETkIzIHZhcmlhbnQpIGJvYXJkCgogICAgU0NQVSBkb2Vzbid0IHVzZSByZWR1bmRhbnQgZW52aXJvbm1lbnQgaW4gZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYzMDQ0MzBlZDY0MmVhOGZhMTVjOWU1YWY5NjVhYzJlMDMzZWVjNDUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTI6NTE6MDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gYWxwcjogVXBkYXRlIGFscHIgYm9hcmQgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjhkYjg0ZjEzMmIxZTMzNWYyMGY5NjEzOGExZjA5ZWQ5N2IwODY2NApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDAwOjUwOjQwIDIwMDcgKzAxMDAKCiAgICBMUEMyMjkyIFNPRElNTSBwb3J0IGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDZiZDI0NDdlZTQ3ZWUyM2MxOGQyYjNjN2NjZDVhMjBmNzYyNmY1YjMKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjQgMTI6MTY6NTYgMjAwNyArMDEwMAoKICAgIEFkZCBwb3J0IGZvciB0aGUgbHBjMjI5MnNvZGltbSBldmFsdWF0aW9uIGJvYXJkIGZyb20gRW1iZWRkZWRBcnRpc3RzCgpjb21taXQgMmRhZjA0NmJhNjI3Zjg1ZjQ0MTk1ODE1Nzc4MTQwMDM5NjM2MjQ0ZQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTc6MjI6MDYgMjAwNyArMDEwMAoKICAgIFtpRE1SXSBBZGQgTVREIGFuZCBKRkZTMiBzdXBwb3J0LCBhbHNvIGFkZCBkZWZhdWx0IHBhcnRpdGlvbiBkZWZpbml0aW9uLgoKY29tbWl0IGY3ZGIzMzEwMWZiYzljOGYwYTEwNzM4Y2U4NzAzNDg3NWExN2FlYjkKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDIzIDE0OjIxOjE0IDIwMDcgKzAxMDAKCiAgICBbaURNUl0gRmxhc2ggZHJpdmVyIG9uIGluaXRpYWxpc2F0aW9uIHdyaXRlLXByb3RlY3RzIHNvbWUgc2VjdG9ycywKICAgIGN1cnJlbnRseSBzZWN0b3JzIDAtMy4gU2VjdG9yIDMgZG9lcyBub3QgbmVlZCB0byBiZSBwcm90ZWN0ZWQsIHRob3VnaAogICAgKFUtYm9vdCBvY2N1cGllcyBzZWN0b3JzIDAtMSBhbmQgdGhlIGVudmlyb25tZW50IHNlY3RvciAyKS4gVGhpcyBjb21taXQKICAgIGZpeGVzIHRoaXMsIGkuZS4sIG9ubHkgc2VjdG9ycyAwLTIgYXJlIHByb3RlY3RlZC4KCmNvbW1pdCAwZWQ0N2JiMTE5Y2QyYzRjMTZlZGIyNTQ4Nzg5MTQ4ZjllNmRjOWRlCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxNDoxMToyMiAyMDA3ICswMTAwCgogICAgW2lETVJdIFVzaW5nIE1JSS1yZWxhdGVkIGNvbW1hbmRzIG9uIGlEUk0gYm9hcmQgZG9lc24ndCB3b3JrIG5vdyAoZS5nLiwKICAgICJtaWkgZGV2aWNlIiByZXN1bHRzIGluICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiIpLiBGaXhpbmcgdGhpcyBwcm9wZXJseQogICAgcmVxdWlyZXMgc29tZSBjbGVhbi11cCBpbiB0aGUgRkVDIGRyaXZlcnMgaW5mcmFzdHJ1Y3R1cmUgZm9yIENvbGRGaXJlLCBzbwogICAgdGhpcyBjb21taXQgZGlzYWJsZXMgTUlJIGNvbW1hZHMgZm9yIG5vdy4KCmNvbW1pdCAzNjNkMWQ4ZjljOTliNjNkYWVmODFmNTk4NWNhYjNmYzAwZWRkZTVjCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxMzoyNToyMiAyMDA3ICswMTAwCgogICAgW0NvbGRGaXJlIE1DRjUyNzEgZmFtaWx5XSBBZGQgQ1BVIGRldGVjdGlvbiBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgQ2hpcAogICAgSWRlbnRpZmljYXRpb24gUmVnaXN0ZXIgKENJUikuCgpjb21taXQgZmRlZjM4ODc1ODUwNjc2NWQ0ZDZhNzE1NWM4ZjE1ODRjNjNmZjU4MQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAyMiAxMzoxOToyMSAyMDA3ICswODAwCgogICAgdXNlICBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBIGRlZmluZSBpbnN0ZWFkIG9mIGRlZmluZSBDRkdfRkxBU0hfQ0ZJX1NXQVAKICAgIFRoZSBwYXRjaCBieSBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+IG9uIEphbiwgMTksIDIwMDcKICAgIGZpeGVzIGNmaV9kcml2ZXIgYnVnIGZvciBtcGM3NDQ4aHBjMiBib2FyZC4gVGhlIGRlZmF1bHQgY2ZpX2RyaXZlciBjYW4gc3VwcG9ydAogICAgbXBjNzQ0OGhwYzIgYm9hcmQuCgpjb21taXQgYTQwMTIzOTY2NDU1MzNhZWYyMTgzNTRlZWJhNzU0ZGZmMGRlYWNlOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSmFuIDE5IDIzOjA4OjM5IDIwMDcgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuCgpjb21taXQgZjUzOWI3YmE3ZDdlZjZkZDE4N2M4MjA5NjA5MDAxY2IxY2Q5NWUzOQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAxOTo1NzoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTQzMgYm9hcmQ6IGFkZGVkIENGR19DTURfQVVUT1NDUklQVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBkMGI2ZTE0MDg3ZGRkODc4OWYyMjRhNDhlMWQzM2YyYTVkZjRkMTY3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSmFuIDE5IDE4OjA1OjI2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENGSTogZGVmaW5lIENGR19XUklURV9TV0FQUEVEX0RBVEEgZm9yIHRoZSBDRkktRmxhc2ggZHJpdmVyCgkJIGlmIHlvdSBtdXN0IHN3YXAgdGhlIGJ5dGVzIGJldHdlZW4gcmVhZGluZy93cml0aW5nLgoJCSAoTmVlZGVkIGZvciB0aGUgU0MzIGJvYXJkKQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDlkOGQ1YTViZmI2NDc2OGYyOWEwY2I0N2ZjMzdjZDZmNGM0MGUyNzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTY6MDU6NDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIFByb2RyaXZlIFNDUFUgKFBETkIzIHZhcmlhbnQpIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAwNTdkNzU4ZTNlODc0Y2JlN2YyNDc0NWQwY2NlOGMxY2I2YzIwN2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTE6NTQ6NTIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIFAzTXggc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNDE2N2EzNmMyOWVlOTQ2YjcyNzQ2NWRiNWMwMTQ3NDZhMDhlOTc4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDExOjQ4OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBtaXNzaW5nIFRhaXNoYW4gY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2I0ODIwNzI1ZTlmYzQwOWM1Y2JjOGU4MzA1NGE2ZWQ1MjJkMjExMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMToyODo1MSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXg6IENvbXBpbGVyd2FybmluZ3MgZm9yIFNDMyBib2FyZC4KCQkgVGhlIEVCQyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIGlzIG5vdyBieSBDRkdfRUJDX0NGRyBkZWZpbmFibGUKCQkgQWRkZWQgSkZGUzIgc3VwcG9ydCBmb3IgdGhlIFNDMyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1ZmI2OTJjYWU1N2QxNzEwYzhmNTJhNDI3Y2Y3ZjM5YTM3MzgzZmNkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDEwOjI1OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBBTUNDIFRhaXNoYW4gUFBDNDQwR1ggZXZhbCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZDNlMDEwNzIzNWFhMGU2YTZkY2I3N2Y5ODg0NDk3MjgwYmY4NWFkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTYgMTg6MzA6NTAgMjAwNyArMDEwMAoKICAgIFJhbmFtZSBzb2xpZGNhcmQzIGludG8gc2MzOyBhZGQgcmVkdW5kYW50IGVudiBmb3Igc2MzCgpjb21taXQgMWJiYmJkZDIwZmNlYzk5MzM2OTcwMDBkY2Y1NWZmNzk3MjYyMjU5NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDE2IDEyOjQ2OjM1IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgZGVmYXVsdCBlbnZpcm9ubWVudCBmb3IgU29saWRjYXJkMwoKY29tbWl0IDVhNWM1Njk4NmE5Y2NmNzE2NDJjOGI2Mzc0ZWIxODQ4N2IxNWZlY2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKYW4gMTUgMDk6NDY6MjkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4IDQ0MFNQZSByZXYgQiBkZXRlY3Rpb24gZnJvbSBwcmV2aW91cyBwYXRjaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDQzZDMxNDEwYzU3MWVlOGY5NzBkYTgxOWE0NGQ2OThmZGQ2YjFmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gSmFuIDE0IDEzOjM1OjMxIDIwMDcgKzAxMDAKCglbRklYXSBjb3JyZWN0IEkyQyBXcml0ZXMgZm9yIHRoZSBMTTgxIFNlbnNvci4KCglTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAwYmJhNTQ1MjgzNWYxOWE2MTIwNGVkY2RhM2E1ODExMmZkOGUyMjA4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMTE6MTc6MTAgMjAwNyArMDEwMAoKICAgIFVuZG8gY29tbWl0IDMwMzNlYmIyOiByZXNldCBjb21tYW5kIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cwoKICAgIEhhaXlpbmcgV2FuZydzIG1vZGlmaWNhdGlvbiB0byB0aGUgcmVzZXQgY29tbWFuZCB3YXMgYnJva2VuLCB1bmRvIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTU5ODE3NzhjZmYwMDM4ZmQ5OTQxMDQ0ZDZhM2VkYTgxMGUzMzI1OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMyAwODowMTowMyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgNDQwU1AoZSkgY3B1IHJldmlzaW9ucwoKICAgIEFsc28gZGlzcGxheSBlbmFibGVkL2Rpc2FibGVkIFJBSUQgNiBzdXBwb3J0IGZvciA0NDBTUC80NDBTUGUgUFBDJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc3ZGRjNWI5YWZiMzI1MjYyZmQ4ODc1MmJhNDMwYTFkZGVkMWYwYzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTk6NTYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFllbGxvd3N0b25lICg0NDBHUikgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBBbHNvIHRoZSBFQkMgaW5pdGlhbGlzaW5nIGlzIG5vdyBkb25lIHZpYSBkZWZpbmVzIGluIHRoZSBib2FyZCBjb25maWcKICAgIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2YWRmZjM2MmMyYzAxNDFmZjhhODEwZDQyYTdlNDc4Zjc3OTEzMGYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTk6MTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFlvc2VtaXRlICg0NDBFUCkgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBBbHNvIHRoZSBFQkMgaW5pdGlhbGlzaW5nIGlzIG5vdyBkb25lIHZpYSBkZWZpbmVzIGluIHRoZSBib2FyZCBjb25maWcKICAgIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUwYjllYThjOGEyOTRkZTZhNTM1MGFlNjM4ODc5ZDI0YjViNzA5ZDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTc6NTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFNlcXVvaWEgKDQ0MEVQeCkgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2E0M2JhMThlOTEwMjA2ZWY4MDYzZTRiMjJkMjgyNjMwYmZmM2ZkMgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxMSAxNTo0NDo0NCAyMDA3ICswMTAwCgoJQWRkZWQgc3VwcG9ydCBmb3IgdGhlIFNPTElEQ0FSRCBJSUkgYm9hcmQgZnJvbSBFdXJvZGVzaWduCgoJU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNmFiYWVlNDI2MjFjMDdlODFhMmNkMTg5YWQ0MzY4YjVlOGM1MDI4MApBdXRob3I6IFJlaW5oYXJkIFRoaWVzIDxSZWluaGFyZC5UaGllc0B3ZWIuZGU+CkRhdGU6CVdlZCBKYW4gMTAgMTQ6NDE6MTQgMjAwNyArMDEwMAoKICAgIEFkanVzdGVkIGRlZmF1bHQgZW52aXJvbm1lbnQgZm9yIGNhbTUyMDAgYm9hcmQuCgpjb21taXQgYmFiNWE5MGQ0Y2NjMWE0NmE4MTI3Yjg2N2ZhNTkwMjhjYzYyM2FkOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDEwIDE1OjM1OjUyIDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgNzg3ZmExNTg2MGE1NzgzM2U1MGJkMzA1NTUwNzlhOWNkNGU1MTliOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDEwIDAxOjI4OjM5IDIwMDcgKzAxMDAKCiAgICBGaXggYXV0b191cGRhdGUgZm9yIE1DQzIwMCBib2FyZC4KCiAgICBUaGUgaW52b2NhdGlvbiBvZiBkb19hdXRvX3VwZGF0ZSgpIGlzIG1vdmVkIHRvIHRoZSBlbmQgb2YgdGhlCiAgICBtaXNjX2luaXRfcigpIGZ1bmN0aW9uLCBhZnRlciB0aGUgZmxhc2ggbWFwcGluZ3MgaGF2ZSBiZWVuCiAgICBpbml0aWFsaXplZC4gUGxlYXNlIGZpbmQgYXR0YWNoZWQgYSBwYXRjaCB0aGF0IGltcGxlbWVudHMgdGhhdAogICAgY2hhbmdlLgoKICAgIEFsc28gY29ycmVjdCB0aGUgZGVjb2Rpbmcgb2YgdGhlIGtleXBhZCBzdGF0dXMuIFdpdGggdGhpcyB1cGRhdGUsIHRoZQogICAga2V5IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSB1cGRhdGUgaXMgQ29sdW1uIDIsIFJvdyAyLgoKY29tbWl0IGQ5Mzg0ZGUyZjU3MTA0NmU3MTA4MWJhZTIyYjQ5ZTNkNWNhMmUzZDUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSmFuIDEwIDAwOjI2OjE1IDIwMDcgKzAxMDAKCiAgICBDQU01MjAwIGZsYXNoIGRyaXZlciBtb2RpZmljYXRpb25zOgogICAgLSB1c2UgQ0ZJIGRyaXZlciAocmVwbGFjZXMgY3VzdG9tIGZsYXNoIGRyaXZlcikgZm9yIG1haW4gJ2NhbTUyMDAnIHRhcmdldAogICAgLSBhZGQgc2Vjb25kIGJ1aWxkIHRhcmdldCAnY2FtNTIwMF9uaW9zZmxhc2gnIHdoaWNoIHN0aWxsIHVzZXMgY3VzdG9tIGRyaXZlcgoKY29tbWl0IDY3ZmVhMDIyZmE5NTdmNTk2NTNiNTIzOGM3NDk2ZjgwYTZiNzA0MzIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTY6MDI6NDggMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGNsZWFudXAgbWVtb3J5IGNvbnRvbGxlciBzZXR1cAoKY29tbWl0IDhmYzIxMDJmYWEyMzU5M2M4MDM4MTQzN2MwOWY3NzQ1YTE0ZGViNDAKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTQgMjAwNyArMDEwMAoKICAgIEZpeCB0aGUgY3B1IHNwZWVkIHNldHVwIHRvIHdvcmsgd2l0aCBhbGwgYm9hcmRzLgoKY29tbWl0IDkyOTVhY2I3NzQ4MWNmMDk5ZWY5YjQwZTFmYTJkMTQ1YjNjNzQ5MGMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTMgMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGFkZCBzdXBwb3J0IGZvciB0aGUgRk0xOEwwOCBSYW10cm9uIEZSQU0KCmNvbW1pdCAzOGNjZDJmZGYzMzY0YTUzZmU4MGU5YjM2NTMwM2VjZGFmYzllMjIzCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEzIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiB1cGRhdGUgdGhlIEhQSSByZWdpc3RlciBhZGRyZXNzZXMgdG8gd29yayB3aXRoIHRoZSBzZWNvbmQKICAgIGdlbmVyYXRpb24gb2YgaGFyZHdhcmUKCmNvbW1pdCA1OTIxZTUzMTNmYzNlYWRkNDI3NzBjMmI5OWJhZGQ3ZmFlNWVjZjFlCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMyAyMDA3ICswMTAwCgogICAgTWlzY2VsbGFuaW91cyBzcGMxOTIwIHJlbGF0ZWQgY2xlYW51cHMKCmNvbW1pdCBlNGMyZDM3YWRjOGJiMWJmNjlkY2Y2MDBjYmM2Yzc1ZjkxNmE2MTIwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEyIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwIEdPL05PR08gbGVkIHNob3VsZCBiZSBzZXQgdG8gY29sb3IgcmVkIGluIFUtQm9vdAoKY29tbWl0IDBiZTYyNzI4YWFjNDU5YmEyNjhkNmQ3NTJlZDQ5ZWMwZTJiYzczNDgKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEyIDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIERTMzIzMSBSVEMKCmNvbW1pdCA4MTM5NTY3YjYwZDY3ODU4NGIwNWYwNzE4YTY4MWYyMDQ3YzVlMTRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMSAyMDA3ICswMTAwCgogICAgU01DMSB1c2VzIGV4dGVybmFsIENMSzQgaW5zdGVhZCBvZiBCUkcgb24gc3BjMTkyMAoKY29tbWl0IGQ4ZDlkZTFhMDJmYmQ4ODBiNjEzZDYwNzE0M2QxZjU3MzQyYWZmYzcKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEwIDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgdGhlIFNQQzE5MjAgQ01CIFBMRCBkcml2ZXIKCmNvbW1pdCAzZjM0Zjg2OTE2Mjc1MGU1ZTk5OWZkMTQwZjg4NGY1ZGU5NTJiY2ZlCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMCAyMDA3ICswMTAwCgogICAgQWRkIC8gZW5hYmxlIEkyQyBzdXBwb3J0IG9uIHRoZSBzcGMxOTIwIGJvYXJkCgpjb21taXQgZDI4NzA3ZGJjZTFlOWFjMjAxN2FkMDUxZGE0MTMzYmYyMmI0MjA0ZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTAgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgdG1zMzIwNjcxeCBob3N0IHBvcnQgaW50ZXJmYWNlIChIUEkpCgpjb21taXQgZjRlYjU0NTI5YmIzNjY0YzNhNTYyZTQ4OGI0NjBmZTA3NWY3OWQ2NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gSmFuIDcgMDA6MTM6MTEgMjAwNyArMDEwMAoKICAgIFByZXBhcmUgZm9yIHJlbGVhc2UgMS4yLjAKCmNvbW1pdCBmMDdhZTdhOWRhZWYyN2EzZDAyMTNhNGYzZmUzOWQ1MzQyMTczYzAyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDYgMTU6NTg6MDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gNDR4OiBGaXggcHJvYmxlbSB3aXRoIEREUiBjb250cm9sbGVyIHNldHVwIChyZWZyZXNoIHJhdGUpCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gd2l0aCBhbiBpbmNvcnJlY3Qgc2V0dXAgZm9yIHRoZSByZWZyZXNoCiAgICB0aW1lciBvZiB0aGUgNDR4IEREUiBjb250cm9sbGVyIGluIHRoZSBmaWxlIGNwdS9wcGM0eHgvc2RyYW0uYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMTZjMWRhOTU3N2YwNmM1ZmMwODY1MWE0MDY1NTM3NDA3ZGU0NjM1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDYgMTU6NTY6MTMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFMUFIgYm9hcmQgZmlsZXMKCiAgICBUaGlzIHVwZGF0ZSBicmluZ3MgdGhlIEFMUFIgYm9hcmQgc3VwcG9ydCB0byB0aGUgbmV3ZXN0IHZlcnNpb24uCiAgICBJdCBhbHNvIGZpeGVzIGEgcHJvYmxlbSB3aXRoIHRoZSBOQU5EIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2QxZDkzN2Y5MDI1MGEzMjk4OGMzN2IyYjRhZjgzNjRkMjVkZThlZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDExOjQ2OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmQ6IEZpeCBwcm9ibGVtIHdpdGggb29ic2l6ZSBjYWxjdWxhdGlvbgoKICAgIEhlcmUgdGhlIGRlc2NyaXB0aW9uIGZyb20gQnJpYW4gQnJlbHNmb3JkIDxCcmlhbl9CcmVsc2ZvcmRAZGVsbC5jb20+OgoKICAgIFRoZSBIeW5peCBwYXJ0IHJldHVybnMgYSAweDFkIGluIHRoZSA0dGggSUQgYnl0ZS4gVGhlIFNhbXN1bmcgcGFydAogICAgcmV0dXJucyBhIDB4MTUuIEluIHRoZSBjb2RlIGZyYWdtZW50IGJlbG93IGJpdHMgWzE6MF0gZGV0ZXJtaW5lIHRoZQogICAgcGFnZSBzaXplLCBpdCBpcyBBTkRlZCB2aWEgIihleHRpZCAmIDB4MykiIHRoZW4gc2hpZnRlZCBvdXQuIFRoZQogICAgbmV4dCBmaWVsZCBpcyBhbHNvIEFORGVkIHdpdGggMHgzLiBIb3dldmVyIHRoaXMgaXMgYSBvbmUgYml0IGZpZWxkCiAgICBhcyBkZWZpbmVkIGluIHRoZSBIeW5peCBhbmQgU2Ftc3VuZyBwYXJ0cyBpbiB0aGUgNHRoIElEIGJ5dGUgdGhhdAogICAgZGV0ZXJtaW5zIHRoZSBvb2JzaXplLCBub3QgYSB0d28gYml0IGZpZWxkLiBJdCB3b3JrcyBvbiBTYW1zdW5nIGFzCiAgICBiaXRzWzM6Ml0gYXJlIDAxLiBIb3dldmVyIGZvciB0aGUgSHluaXggdGhlcmUgaXMgYSAxMSBpbiB0aGVzZSB0d28KICAgIGJpdHMsIHNvIHRoZSBvb2Igc2l6ZSBnZXRzIG1lc3NlZCB1cC4KCiAgICBJIGNoZWNrZWQgdGhlIGNvcnJlY3QgbGludXggY29kZSBhbmQgdGhlIHN1Z2dlc3RlZCBmaXggZnJvbSBCcmlhbiBpcwogICAgYWxzbyBhdmFpbGFibGUgaW4gdGhlIGxpbnV4IG5hbmQgbXRkIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTc4YmM0NDNhZTVhNGE4YmE4NzU5MDU4N2Q1ZTM1YmY1YTc4N2IyZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDEwOjQwOjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENsZWFyIFBMQjRBMF9BQ1JbV1JQXSBvbiBTZXF1b2lhICg0NDBFUHgpCgogICAgVGhpcyBmaXggd2lsbCBtYWtlIHRoZSBNQUwgYnVyc3QgZGlzYWJsaW5nIHBhdGNoIGZvciB0aGUgTGludXgKICAgIEVNQUMgZHJpdmVyIG9ic29sZXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMjM4ODk4MzgyODJiNjIzN2I0MDE2NjRmMjJkZDIyZGZiYTJjMDY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDUgMTA6Mzg6MDUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIEREUjIgb3B0aW1pemF0aW9uIGNvZGUgZm9yIFNlcXVvaWEgKDQ0MEVQeCkgYm9hcmQKCiAgICBUaGlzIGNvZGUgd2lsbCBvcHRpbWl6ZSB0aGUgRERSMiBjb250cm9sbGVyIHNldHVwIG9uIGEgYm9hcmQgc3BlY2lmaWMKICAgIGJhc2lzLgoKICAgIE5vdGU6IFRoaXMgY29kZSBkb2Vzbid0IHdvcmsgcmlnaHQgbm93IG9uIHRoZSBOQU5EIGJvb3RpbmcgaW1hZ2UgZm9yIHRoZQogICAgU2VxdW9pYSBib2FyZCwgc2luY2UgaXQgZG9lc24ndCBmaXQgaW50byB0aGUgNGtCeXRlcyBmb3IgdGhlIFNQTCBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2NlNGFjYmI2ODM5ODYzNGI4ZDAxMWVkN2JiMGQxMjI2OWM4NDIzMApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBEZWMgMjggMTk6MDg6MjEgMjAwNiArMDEwMAoKICAgIEZldyBWMzhCIGNoYW5nZXM6CiAgICAgIC0gZml4IGEgdHlwbyBpbiBWMzhCIGNvbmZpZyBmaWxlCiAgICAgIC0gbW92ZSB3YXRjaGRvZyBpbml0aWFsaXNhdGlvbiBlYXJsaWVyIGluIHRoZSBib290IHByb2Nlc3MKICAgICAgLSBhZGQgIndkdD1vZmYiIHRvIGRlZmF1bHQga2VybmVsIGNvbW1hbmQgbGluZSAoZGlzYWJsZXMga2VybmVsIHdhdGNoZG9nKQoKY29tbWl0IDkyZWI3MjliYWQ4NzY3MjVhZWVhOTA4ZDJhZGRiYTA4MDA2MjA4NDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIERlYyAyNyAwMToyNjoxMyAyMDA2ICswMTAwCgogICAgRml4IGJ1ZyBpbiBhZGFwdGlvbiBvZiBTdGVmYW5vIEJhYmljJ3MgQ0ZJIGRyaXZlciBwYXRjaC4KCmNvbW1pdCA5YzBmNDJlY2ZlMjVmN2ZmY2U4ZWM3YTgxNWYwMzg2NGQ3MjNmZmUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBEZWMgMjQgMDE6NDI6NTcgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBkNzg0ZmRiMDU5MDBhZGEzNjg2ZDU3Nzg3ODNlMWZiMzI4ZTlmYjY2CkF1dGhvcjogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTIgMDA6MjI6NDIgMjAwNiArMDEwMAoKICAgIEZpeCBjZmkgZmFpbHVyZSB3aXRoIFNwYW5zaW9uIEZsYXNoIChTcGFuc2lvbiBGbGFzaCBEZXZpY2VzIGhhdmUgYSBkaWZmZXJlbnQgb2Zmc2V0IHRvIGdvIGludG8gQ0ZJIG1vZGUpCgpjb21taXQgMWIzYzM2MGMyMzVkYzY4NGVjMDZjMmQ1ZjE4M2YwYTI4MmNlNDVlMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyMiAxNDoyOTo0MCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBGaXggc2VxdW9pYSBmbGFzaCBhdXRvZGV0ZWN0aW9uIChmaW5hbGx5IGNvcnJlY3QpCgogICAgTm93IDMyTUJ5dGUgYW5kIDY0TUJ5dGUgRkxBU0ggaXMga25vdyB0byB3b3JrIGFuZCBvdGhlcgogICAgY29uZmlndXJhdGlvbnMgc2hvdWxkIHdvcmsgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MmU1MjM2YThiNzE5NTQzNjQzZmQyNmQ1ODI3OTM4YWIyYjk0ODE4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjIgMTA6MzA6MjYgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCBmYTIzMDQ0NTY0MDkxZjA1ZDk2OTViZWI3YjViOWE5MzFlN2Y0MWE0CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgRGVjIDIxIDE3OjE3OjAyIDIwMDYgKzAxMDAKCiAgICBBZGRlZCBzdXBwb3J0IGZvciB0aGUgVFFNODI3MiBib2FyZCBmcm9tIFRRCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNmRlZGYzZDQ5ZGQxNGMzYmY1NDFjOGVjZWU3ZmZhYWM1ZjBlMWQ2YwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyMSAxNjoxNDo0OCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgdGhlIFVDMTAxIGJvYXJkIGZyb20gTUFOLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGM4NGJhZDBlZjYwZTcwNTVhYjBiZDQ5YjkzMDY5NTA5Y2VjYzM4MmEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRGVjIDIwIDAwOjI5OjQzIDIwMDYgKzAxMDAKCiAgICBGaXggdG8gbWFrZSB0aGUgYmF1ZHJhdGUgY2hhbmdlcyBpbW1lZGlhdGUgZm9yIHRoZSBNQ0Y1MngyIGZhbWlseS4KCmNvbW1pdCBkYWE2ZTQxOGJjYzBjNzE3NzUyZThkZTkzOWMyMTNjNzkwMjg2MDk2CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAwMDoyNzozMiAyMDA2ICswMTAwCgogICAgUHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgdGhlIGlETVIgYm9hcmQgKENvbGRGaXJlKS4KCmNvbW1pdCBjZGI5N2E2Njc4ODI2Zjg1ZTdjNjllYWU2YTFjMTEzZDAzNGM5YjEwCkF1dGhvcjogQW5kcmVpIFNhZnJvbm92IDxzYWZyb25vdkBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIERlYyA4IDE2OjIzOjA4IDIwMDYgKzAxMDAKCiAgICBhdXRvbWF0aWMgdXBkYXRlIG1lY2hhbmlzbQoKY29tbWl0IDlkMjdiM2EwNjg1ZmY5OWZjNDc3OTgzZjMxNWMwNGQ0OWY2NTdhOGEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNzo1Njo1OSAyMDA2ICswODAwCgogICAgU2xpZ2h0IGNvZGUgY2xlYW4gdXAuCiAgICBBZGQgY29tbWVudHMsIGRlbGV0ZSBkdXBsaWNhdGUgZGVmaW5lIGFuZCByZW1vdmUgc3BhY2VzLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkYmNkNjllM2UyNzc2ZWEzMzQ1OTBkNTc2OGUzNjkyYzVmYWU1YzEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNzo1NDoyMSAyMDA2ICswODAwCgogICAgSW50cm9kdWNlIFBMTF9DRkdbMDo0XSB0YWJsZSBmb3IgcHJvY2Vzc29yIDc0NDgvNzQ0N0EvNzQ1NS83NDU3LiBUaGUgb3JpZ2luYWwKICAgIG11bHRpcGxpZXIgdGFibGUgY2FuIG5vdCByZWZlY3QgdGhlIHJlYWwgUExMIGNsb2NrIGJlaGF2aW9yIG9mIHRoZXNlCiAgICBwcm9jZXNzb3JzLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGhhcmR3YXJlIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbGVkCiAgICBpbmZvcm1hdGlvbiBvZiB0aGUgY29ycmVzcG9uZGluZyBwcm9jZXNzb3JzLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlZmUyMGM5NTc5MDExZDk5ODdmNjJlZDdkMzVlZThjZGMxY2YwZTAKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNDo0NjoyMyAyMDA2ICswODAwCgogICAgUmVtb3ZlIHRoZSBzdGF0aWMgTUFDIGFkZHJlc3MsIGlwIGFkZHJlc3MsIHNlcnZlciBpcCwgbmV0bWFzayBhbmQKICAgIGdhdGV3YXkgaXAgZm9yIG5ldHdvcmsgc2V0dGluZy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZjEyYzYxY2YzMWVkNzNkNzJkZGZjZmM3MTJhODU0YTNhMTc3YWFmCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTQ6MzM6MDggMjAwNiArMDgwMAoKICAgIFJlbW92ZSB0aGUgZHVwbGljYXRlIG1lbW9yeSB0ZXN0IGNvZGUgZm9yIG1wYzc0NGlocGMyIGJvYXJkLgogICAgSWYgYSBtZW1vcnkgdGVzdCBpcyBuZWVkZWQsIHBsZWFzZSB1c2UgdGhlIGZ1bmN0aW9ucyBpbgogICAgcG9zdC9tZW1vcnkuYyBvciBtZW10ZXN0IGNvbW1hbmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzljMWVlZWQ3ZGQxOTNmYTY1ZmIxOTQ2NTQxMzIwNDBkNDlkNGQzYQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIERlYyAxIDE5OjAxOjI1IDIwMDYgKzA4MDAKCiAgICBGaXggdGhlIGV4Y2VwdGlvbiBvY2N1cmluZyBpbiBSQU0gdGFibGUgc2VhcmNoIGlzc3VlLgogICAgVGhlIG9yaWdpbmFsIHNlYXJjaF9vbmVfdGFibGUoKSBmdW5jdGlvbiBjb2RlIGNhbiBvbmx5IHByb2Nlc3NlcyB0aGUgc2VhcmNoCiAgICBmb3IgdGhlIGV4Y2VwdGlvbiBvY2N1cnJpbmcgaW4gRkxBU0gvUk9NLCBiZWNhdXNlIHRoZSBleGNlcHRpb24gYW5kIGZpeHVwCiAgICB0YWJsZSB1c3VhbGx5IGxvY2F0ZSBpbiBGTEFTSC4gSWYgdGhlIGV4Y2VwdGlvbiBhZGRyZXNzIGlzIGFsc28gaW4KICAgIEZMQVNILCBpdCB3aWxsIGJlIE9LLgogICAgSWYgdGhlIGV4Y2VwdGlvbiBvY2N1cnMgaW4gUkFNLCBhZnRlciB0aGUgdS1ib290IHJlbG9jYXRpb24sIGEKICAgIHJlbG9jYXRpb24gb2Zmc2V0IHNob3VsZCBiZSBhZGRlZC4KCiAgICBjbGVhbiB1cCB0aGUgY29kZSBpbiBjcHUvNzR4eF83eHgvY3B1LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWUzMTEyMTRlMGQyMTZmOTA0ZmVlYTI2OTU5OWQwOTM0YmY3MWYyMwpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIERlYyAxIDExOjQ3OjM2IDIwMDYgKzA4MDAKCiAgICBDbGVhbiB1cCB0aGUgY29kZSBhY2NvcmRpbmcgdG8gY29kZXN0eWxlOgogICAgKDEpIHJlbW92ZSBzb21lIEMrKyBjb21tZW50cy4KICAgICgyKSByZW1vdmUgdHJhaWxpbmcgd2hpdGUgc3BhY2UuCiAgICAoMykgcmVtb3ZlIHRyYWlsaW5nIGVtcHR5IGxpbmUuCiAgICAoNCkgSW5kZW50YXRpb24gYnkgdGFibGUuCiAgICAoNSkgcmVtb3ZlIHt9IGluIG9uZSBsaW5lIGNvbmRpdGlvbi4KICAgICg2KSBhZGQgc3BhY2UgYmVmb3JlICcoJyBpbiBmdW5jdGlvbiBjYWxsLgogICAgUmVtb3ZlIHNvbWUgd2VpcmQgcHJpbnRmICgpIG91dHB1dC4KICAgIEFkZCBuZWNlc3NhcnkgY29tbWVudHMuCiAgICBNb2RpZmllZCBNYWtlZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LgoKY29tbWl0IGRkNTIwYmYzMTRjN2FkZDQxODNjNTE5MTY5MjE4MGY1NzZmOTZiNjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAzMCAxODowMjoyMCAyMDA2ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLgoKY29tbWl0IDhkOWE4NjEwYjgyNTYzMzExMzIyMjdlOWU2NTg1YzZiZDU3NDI3ODcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAzMCAwMTo1NDowNyAyMDA2ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDcyNmU5MGFhY2YwYjFlY2IwZTcwNTViZTU3NDYyMmZiZTNlNDUwYmEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVdlZCBOb3YgMjkgMTY6MjM6NDIgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gW01QQzUyeHhdIFVzZSBJUEIgYnVzIGZyZXF1ZW5jeSBmb3IgU09DIHBlcmlwaGVyYWxzCgogICAgVGhlIHNvYyBub2RlIG9mIHRoZSBtcGM1Mnh4IG5lZWRzIHRvIGJlIGxvYWRlZCB3aXRoIHRoZSBJUEIgYnVzIGZyZXF1ZW5jeSwKICAgIG5vdCB0aGUgWExCIGZyZXF1ZW5jeS4KCiAgICBUaGlzIHBhdGNoIGRlcGVuZHMgb24gdGhlIHByZXZpb3VzIHBhdGNoZXMgZm9yIE1QQzUyeHggZGV2aWNlIHRyZWUgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIFNpZ25lZC1vZmYtYnk6IFN5bHZhaW4gTXVuYXV0IDx0bnRAMjQ2dE50LmNvbT4KCmNvbW1pdCAxZWFjMmE3MTQxN2I2Njc1YjExYWFjZTcyMTAyYTJlN2ZkZThmNWM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDE1OjQyOjM3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBQcm9kcml2ZSBQM003NTAgJiBQM003NDQ4IChQM014KSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFByb2RyaXZlIFAzTTc1MCAoUFBDNzUwICYgTVY2NDQ2MCkKICAgIGFuZCB0aGUgUDNNNzQ0OCAoTVBDNzQ0OCAmIE1WNjQ0NjApIFBNQyBtb2R1bGVzLiBCb3RoIG1vZHVsZXMgYXJlCiAgICBxdWl0ZSBzaW1pbGFyIGFuZCBzaGFyZSB0aGUgc2FtZSBib2FyZCBkaXJlY3RvcnkgInByb2RyaXZlL3AzbXgiCiAgICBhbmQgdGhlIHNhbWUgY29uZmlnIGZpbGUgInAzbXguaCIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFiZGQ0NjgzMmFlYjU2OWY1ZTA0YjFmMjBmNjQzMTg1MjViNjUyNWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMjkgMTI6NTM6MTUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gY29tbW9uL2NtZF9lbGYuYzogRW5hYmxlIGxvYWRhZGRyIGFzIHBhcmFtZXRlciBpbiBib290dnggY29tbWFuZAoKICAgIEluIHRoZSBib290dnggY29tbWFuZCB0aGUgbG9hZCBhZGRyZXNzIHdhcyBvbmx5IHJlYWQgZnJvbSB0aGUgZW52CiAgICB2YXJpYWJsZSAibG9hZGFkZHIiIGFuZCBub3Qgb3B0aW9uYWxseSBwYXNzZWQgYXMgcGFyYW10ZXIgYXMgZGVzY3JpYmVkCiAgICBpbiB0aGUgaGVscC4gVGhpcyBpcyBmaXhlZCB3aXRoIHRoaXMgcGF0Y2guIFRoZSBiZWhhdmlvdXIgaXMgbm93IHRoZQogICAgc2FtZSBhcyBpbiB0aGUgYm9vdGVsZiBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZTI2ZjEwNzRjM2FjMWJkOGZkMDk0ZjBkYzRhMWM0YTBiMTVhNTkyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDEyOjAzOjU3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIGluY2x1ZGUvcHBjNDQwLmggbWlub3IgZXJyb3IgYWZmZWN0aW5nIGludGVycnVwdHMKCiAgICBGaXhlZCBpbmNsdWRlL3BwYzQ0MC5jIGZvciBVSUMgYWRkcmVzcyBCdWcKCiAgICBDb3JyZWN0cyBidWcgYWZmZWN0aW5nIHRoZSBhZGRyZXNzZXMgZm9yIHRoZSB1bml2ZXJzYWwgaW50ZXJydXB0CiAgICBjb250cm9sbGVyIFVJQzIgYW5kIFVJQzMgb24gdGhlIFBQQzQ0MCBFcHgsIEdSeCwgYW5kIFNQRSBjaGlwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmIE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOTM5ZDk2OTQ0M2NjZjMxNmNhYjJiZjMyYWIxMDI3ZDRkYjViYTFhCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVR1ZSBOb3YgMjggMTY6MTc6MjcgMjAwNiAtMDYwMAoKICAgIE1ha2UgZnNsLWkyYyBub3QgY29uZmxpY3Qgd2l0aCBTT0ZUIEkyQwoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTQxOThiZjc2OGZkYzk1OGUzYzFhZmQyNDA0ZTUyNjIyMDhlOThkNwpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglUdWUgTm92IDI4IDE2OjE3OjE4IDIwMDYgLTA2MDAKCiAgICBGaXggSTJDIG1hc3RlciBhZGRyZXNzIGluaXRpYWxpemF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2YzZDA0NWU1MWNhOGRjYzZjZjc1OTgyNzE0MDg2MWQ2YWMyNWMwNApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMjM6MzE6MTkgMjAwNiAtMDYwMAoKICAgIEFzc2lnbiBtYWludGFpbmVycyBmb3IgbXBjODM0OWVtZHMgYW5kIG1wYzgzNjBlbWRzCgogICAgRGF2ZSBmb3IgbXBjODM2MGVtZHMsIGFuZCBtZSBmb3IgbXBjODM0OWVtZHMuCgpjb21taXQgMWFhOTM0YzgxYjc3ZjIwODBkM2NhNGIyMjZlYWI2N2IxN2EzMzk2MQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMjM6Mjg6MzMgMjAwNiAtMDYwMAoKICAgIEVsaW1pbmF0ZSBnY2MgNCAndXNlZCB1bmluaXRpYWxpemVkJyB3YXJuaW5ncyBpbiBkcml2ZXJzL3FlL3VjY2YuYwoKICAgIGdpdmUgaW5pdGlhbCB2YWx1ZXMgZm9yIHJlZ19udW0sIHNoaWZ0LCBwX2NteHVjciBpbiB1Y2Nfc2V0X2Nsa19zcmMKICAgIHNpbmNlIHRoZXkgYXJlIHBhc3NlZCBieSByZWZlcmVuY2UgdG8gdWNjX2dldF9jbXh1Y3JfcmVnIGFuZCBhc3NpZ25lZC4KCmNvbW1pdCBlODU3YTViZGIzOTU0Yjg5NmMwOTIwY2I5ZDhkMmIxYjljMTA3Y2U1CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyOCAxMjowOTozNSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogTWlzY2VsbGFuZW91cyBjb2RlIHN0eWxlIGZpeGVzCgogICAgSW1wbGVtZW50IHZhcmlvdXMgY29kZSBzdHlsZSBmaXhlcyBhbmQgc2ltaWxhciBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTU5NTgxYzU2YWI1ZDZlMDIwN2RkYWMzYjJjMWQ1NWNiMzZlYzcwNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyOCAxNzo1NTo0OSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBFbmFibGUgdGhlIEljZUN1YmUvbGl0ZTUyMDAgdmFyaWFudHMgdG8gcGFzcyBhIGRldmljZSB0cmVlIHRvIExpbnV4LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29kZSBhbmQgY29uZmlndXJhdGlvbiBuZWNlc3NhcnkgdG8gYm9vdCB3aXRoIGFuCiAgICBhcmNoL3Bvd2VycGMgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QGdtYWlsLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU3MzJmYWVjOTVhODNjYjQ2OGI0ODUwYWU4MDdjODMwMWRkZThmNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTY6MDk6MjQgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiA0NDBTUCBSZXYuIEMgZGV0ZWN0aW9uIGFkZGVkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU3ZjNlOWZmMDFmYmQ3ZmE3MmViNDJhOTY3NWZiZWQ2YmM0NzM2YjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTE6MDQ6NDUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gbmFuZDogRml4IHBhdGNoIG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNThlM2IxNGMxOGVkMzI4OGNlZWY4ZDA4Njk0NmRiZjNkZjY0Y2NmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyOCAxMTowNDo0NSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBuYW5kOiBGaXggcGF0Y2ggbWVyZ2UgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZjRiNjAyZWM3NTI0YTAzMmJkZjNjNmQyOGM3ZjUyNWE0YTY3ZWFhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMjI6NTM6NTMgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBmNmU0OTVmNTRjZGI4ZmUzNDBiOWMwM2RlYWI0MGFkNzQ2ZDUyZmFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjQzOjI1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eF9lbmV0LmM6IENvcnJlY3QgdGhlIHNldHRpbmcgb2Ygem1paWZlciByZWdpc3RlcgoKICAgIFBhdGNoIGJlbG93IGNvcnJlY3RzIHRoZSBzZXR0aW5nIG9mIHRoZSB6bWlpZmVyIHJlZ2lzdGVyLCBpdCB3YXMKICAgIG92ZXJ3cml0dGluZyB0aGUgcmVnaXN0ZXIgcmF0aGVyIHRoYW4gT1JpbmcgdGhlIHNldHRpbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5laWwgV2lsc29uIDxOV2lsc29uQGFpcnNwYW4uY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQxYTcyNTQ1Mjk2ODAwYjdlMjE5ZjkzMTA0YWQ1ODM2ZjAwMDNkNjYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTc6MzQ6MTAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gU2VsZWN0IE5BTkQgZW1iZWRkZWQgZW52aXJvbm1lbnQgZnJvbSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgVGhlIGN1cnJlbnQgTkFORCBCb290bG9hZGVyIHNldHVwIGZvcmNlcyB0aGUgZW52aXJvbm1lbnQKICAgIHZhcmlhYmxlcyB0byBiZSBpbiBsaW5lIHdpdGggdGhlIGJvb3Rsb2FkZXIuIFRoaXMgY2hhbmdlCiAgICBlbmFibGVzIHRoZSBjb25maWd1cmF0aW9uIHRvIGJlIG1hZGUgaW4gdGhlIGJvYXJkIGluY2x1ZGUKICAgIGZpbGUgaW5zdGVhZCBzbyB0aGF0IGl0IGNhbiBiZSBpbmRpdmlkdWFsbHkgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNTc4NDg2Mjg1N2MzYzIyMTQ0OThkZWZjZmVkODRmZjEzN2ZiODFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjIyOjE5IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmRfd2FpdCgpIHRpbWVvdXQgZml4ZXMKCiAgICBUd28gZml4ZXMgZm9yIHRoZSBuYW5kX3dhaXQoKSBmdW5jdGlvbiBpbgogICAgZHJpdmVycy9uYW5kL25hbmRfYmFzZS5jOgoKICAgIDEuIFVzZSBjb3JyZWN0IHRpbWVvdXRzLiBUaGUgb3JpZ2luYWwgdGltZW91dHMgaW4gTGludXgKICAgIHNvdXJjZSBhcmUgNDAwbXMgYW5kIDIwbXMgbm90IDQwcyBhbmQgMjBzCgogICAgMi4gUmV0dXJuIGNvcnJlY3QgZXJyb3IgdmFsdWUgaW4gY2FzZSBvZiB0aW1lb3V0LiAwIGlzCiAgICBpbnRlcnByZXRlZCBhcyBPSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSdWkgU291c2EgPHJ1aS5zb3VzYUBsYXBvc3RlLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYTU1NTNiMDk1YmYwNGY0ZjEwOWFkN2U1NjVkYWUzYWJhNDdiMjMwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjA0OjA2IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEFsbG93IENPTkZJR19PRl9GTEFUX1RSRUUgdG8gYm9vdCBhIG5vbi1hcmNoL3Bvd2VycGMga2VybmVsCgogICAgVGhpcyBwYXRjaCBhbGxvd3MgYW4gYXJjaC9wcGMga2VybmVsIHRvIGJlIGJvb3RlZCBieSBqdXN0IHBhc3NpbmcgMSBvciAyCiAgICBhcmd1bWVudHMgdG8gYm9vdG0uICBJdCByZW1vdmVzIHRoZSBnZXRlbnYoImRpc2FibGVfb2YiKSB0ZXN0IHRoYXQgdXNlZAogICAgdG8gYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5Mzk4ZTAxODU5Mzc4MmM1ZmE3ZDA3NDE5NTVmYzEyNTZiMzRjMWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNTozMjo0MiAyMDA2ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDE3MjliOTJjZGU1NzU0NzY2ODRiZmZlODE5ZDBiNzc5MWI1N2JmZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NTI6MDQgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gNHh4OiBGaXggcHJvYmxlbSB3aXRoIGJvYXJkIHNwZWNpZmljIHJlc2V0IGNvZGUgKG5vdyBmb3IgcmVhbCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2M1ZWU4YTkyYTBlM2NhNmY3MjdhZjcxYjhmZDIwNjQ2MGM3YWZkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDo0OTo1MSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBhbHByOiByZW1vdmUgdW51c2VkIGJvYXJkIHNwZWNpZmljIGZsYXNoIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxZjk0ZDE2MmUyYjVmMGVkYzI4ZDlmYjExNDgyNTAyYzQ0ZDIxOGUxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjQ4OjQxIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eDogRml4IHByb2JsZW0gd2l0aCBib2FyZCBzcGVjaWZpYyByZXNldCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVjMGMyZWM3MjVhZWM5NTI0YTE3N2E3N2NlNzU1NTllNjQ0YTkzMWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NDY6MDYgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIHRlc3RpbmcgNHh4IGVuZXQgUEhZIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFjMmNlMjI2MjA2OTUxMGYzMWM3ZDNmZDdlZmQzZDU4YjhjMGMxNDgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6MTI6MTcgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIEFMUFIgYm9hcmQgc3VwcG9ydCAoNDQwR1gpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU4YjQ4NTc3NjY5OGMzZDcxZWM1YTIxNWUzOTIxMjNiNGMxNWFmYTMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDExOjUxOjIxIDIwMDYgKzAxMDAKCiAgICBBZGQgYSBzbWFsbCBSRUFETUUgd2l0aCBpbmZvcm1hdGlvbiBvbiB0aGUgZ2VuZXJpYyBvaGNpIGRyaXZlci4KCmNvbW1pdCBhZTNiNzcwZTRlYWU4ZTk4YjZlOWUyOTY2MmUxOGM0N2ZkZjAxNzFmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0Njo0NiAyMDA2ICswMTAwCgogICAgRml4IHNvbWUgZW5kaWFubmVzcyBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgZ2VuZXJpYyBvaGNpIGRyaXZlcgoKY29tbWl0IDdiNTliM2M3YThjZTJlNGI1NjdhYmY5OWMxY2Q2NjdiZjM1Yjk0MTgKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDExOjQ0OjU4IDIwMDYgKzAxMDAKCiAgICBJbnRyb2R1Y2VkIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBDT05GSUdfVVNCX09IQ0lfTkVXIGluIG9yZGVyIHRvIGJlIGFibGUKICAgIHRvIGNob29zZSBiZXR3ZWVuIHRoZSBvbGQgYW5kIHRoZSBnZW5lcmljIE9IQ0kgZHJpdmVycy4KCmNvbW1pdCA1M2UzMzZlOWZmYzUxMDM1YmRjNGU1ODY3NjMxYjMzNzg3NjFiNGRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0MzowOSAyMDA2ICswMTAwCgogICAgTW9kaWZpZWQgdGhlIG1wYzV4eHggYW5kIHRoZSBwcGM0eHggY3B1IHRvIHVzZSB0aGUgZ2VuZXJpYyBPSENJIGRyaXZlcgogICAgYW5kIGFkYXB0ZWQgYm9hcmQgY29uZmlncyBUUU01MjAwIGFuZCB5b3NlbWl0ZSBhY2NvcmRpbmdseS4gVGhpcyBjb21taXQKICAgIGFsc28gbWFrZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJvb3QgaHViIHBvcnRzIGNvbmZpZ3VyYWJsZQogICAgKENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUykuCgpjb21taXQgNzhkNjIwZWJiNTg3MWQyNTIyNzBkZWRmYWQ2MGM2NTY4OTkzYjc4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGF0bGFzLmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjMgMjI6NTg6NTggMjAwNiArMDEwMAoKICAgIFVwZGF0ZXMgZm9yIFRRTTUyMDAgbW9kdWxlczoKICAgIC0gZml4IG9mZi1ieS1vbmUgZXJyb3IgaW4gYm9hcmQvdHFtNTIwMC9jYW01MjAwX2ZsYXNoLmMgZXJyb3IgbWVzc2FnZQogICAgLSBzaW1wbGlmeSAidWRhdGUiIGRlZmluaXRpb25zCgpjb21taXQgMjA1MzI4MzMwNGVlZGRmMjUwZDEwOWU2NzkxZWI2ZmE0Y2FkMTRmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyMiAxMzoyMDo1MCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHggc3RhcnQuUzogRml4IGZvciBwcm9jZXNzb3IgZXJyYXRhCgogICAgRml4ZWQgY3B1L3BwYzR4eC9zdGFydC5TIGZvciA0NDBFUHggRXJyYXRhOiBmdXJ0aGVyIGNvcnJlY3RzIFBQQzQ0MEVQeAogICAgZXJyYXRhIDEuMTI6IDQ0MF8zMyBieSBtb3ZpbmcgcGF0Y2ggdXAgaW4gY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmIE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZWY2MjUxNDAzZjYzNzg0MTAwMGUwZmVmOWU4MzJhYTAxMzM5ODIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDIwIDIwOjM5OjUyIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIFNlcXVvaWEgY29uZmlnIGZpbGUgdG8gc3VwcG9ydCA2NE1CeXRlIE5PUiBGTEFTSAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlNGJiZDhkYTE2NGI5NzZkMzg2MTZiZDljNjljNWU4NmUxOTNjZGYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjAgMTA6Mjg6MzAgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCAyNjA0MjFhMjFlOTM0YTY4ZDMxZmI2MTI1YjBmYmQyNjMxYThjYTIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDEzIDEzOjU1OjI0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIENGSSBkcml2ZXIgQU1EIENvbW1hbmQgU2V0IFRvcCBib290IGdlb21ldHJ5IHJldmVyc2FsLCBldGMuIFtVcGRhdGVkXQoKICAgICAgICogQWRkcyBzdXBwb3J0IGZvciBBTUQgY29tbWFuZCBzZXQgVG9wIEJvb3QgZmxhc2ggZ2VvbWV0cnkgcmV2ZXJzYWwKICAgICAgICogQWRkcyBzdXBwb3J0IGZvciByZWFkaW5nIEpFREVDIE1hbnVmYWN0dXJlciBJRCBhbmQgRGV2aWNlIElECiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgZGlzcGxheWluZyBjb21tYW5kIHNldCwgbWFudWZhY3R1cmVyIGlkIGFuZAoJIGRldmljZSBpZHMgKGZsaW5mbykKICAgICAgICogTWFrZXMgZmxpbmZvIG91dHB1dCB0byBiZSBjb25zaXN0ZW50IHdoZW4gQ0ZHX0ZMQVNIX0VNUFRZX0lORk8gZGVmaW5lZAogICAgICAgKiBSZW1vdmVzIG91dGRhdGVkIGNoYW5nZSBoaXN0b3J5IChyZWZlciB0byBnaXQgbG9nIGluc3RlYWQpCgogICAgU2lnbmVkLW9mZi1ieTogVG9sdW5heSBPcmt1biA8bGlzdG1lbWJlckBvcmt1bi51cz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiMjFiNTExZDRjNTA0MDhmNDg1M2Y0NmYwNmI2MDEyNzIxOTYyMjNmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBOb3YgMTIgMjE6MTM6MjMgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBjZTNmMWE0MGM1MDdhZmJhYjA2YzVlYjU4Y2NkYzY3MTNlZGEzMjQ1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU2F0IE5vdiAxMSAyMjo0ODoyMiAyMDA2ICswMTAwCgogICAgRGlzYWJsZSB0aGUgd2F0Y2hkb2cgaW4gdGhlIGRlZmF1bHQgY29uZmlnIGZvciB0aGUgVjM4QiBib2FyZC4KCmNvbW1pdCA0NGE0N2U2ZGIyNjk0ODQxMjExZjFjOGZkYmFmZDM2OTkyZTljZDFhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU2F0IE5vdiAxMSAyMjo0MzowMCAyMDA2ICswMTAwCgogICAgQ2hhbmdlIHRoZSBHUElPIHBpbiBtdWx0aXBsZXhpbmcgY29uZmlndXJhdGlvbiBmb3IgVjM4Qi4gVGhlIFVTQiBHUElPIHBpbgogICAgZ3JvdXAgaXMgZW5hYmxlZCBmb3IgVVNCIGVhcmxpZXIgKGluIGNwdV9pbml0X2YoKSBpbnN0ZWFkIG9mCiAgICB1c2JfbG93bGV2ZWxfaW5pdCgpKS4KCmNvbW1pdCA5MTY1MGIzZTRkZTY4ODAzOGQ0ZjcxMjc5YzQ0ODU4ZTNlMmM2ODcwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgNiAxNzowNjozNiAyMDA2ICswMTAwCgogICAgU2VxdWVudGlhbCBhY2Nlc3NlcyB0byBub24tZXhpc3RlbnQgbWVtb3J5IG11c3QgYmUgc3luY2hyb25pemVkLAogICAgYXQgbGVhc3Qgb24gRzIgY29yZXMuCgogICAgVGhpcyBmaXhlcyBnZXRfcmFtX3NpemUoKSBwcm9ibGVtcyBvbiBNUEM1MjAwIFJldi4gQiBib2FyZHMuCgpjb21taXQgYmU1ZTYxODE1ZDVhMWZhYzI5MGNlOWMwZWYwOWNiNmE4ZTQyODhmYQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxOToxNTowMCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogVXBkYXRlIDgzeHggdG8gdXNlIGZzbF9pMmMuYwoKICAgIFVwZGF0ZSB0aGUgODN4eCB0cmVlIHRvIHVzZSBJMkMgc3VwcG9ydCBpbiBkcml2ZXJzL2ZzbF9pMmMuYy4gIERlbGV0ZQogICAgY3B1L21wYzgzeHgvaTJjLmMsIGluY2x1ZGUvYXNtLXBwYy9pMmMuaCwgYW5kIGFsbCByZWZlcmVuY2VzIHRvIHRob3NlIGZpbGVzLgogICAgQWRkZWQgbXVsdGlwbGUgSTJDIGJ1cyBzdXBwb3J0IHRvIGZzbF9pMmMuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQyMzlkNzRiMWM5Mzc5ODRiYzUxOTA4M2E4ZTdkZTM3M2EzOTBmMDYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTI6MDA6MjggMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IFJlcGxhY2UgQ0ZHX0lNTVJCQVIgd2l0aCBDRkdfSU1NUgoKICAgIFJlcGxhY2UgYWxsIGluc3RhbmNlcyBvZiBDRkdfSU1NUkJBUiB3aXRoIENGR19JTU1SLCBzbyB0aGF0IHRoZSA4M3h4CiAgICB0cmVlIG1hdGNoZXMgdGhlIG90aGVyIDh4eHggdHJlZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmN2ZiMmU3MDNlYzk2ODg1NDE0MTY5NjI3MjRhZGZmNzBhNzMyMmNiCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjQ3OjExIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBMaW5kZW50IGFuZCBjbGVhbiB1cCBjcHUvbXBjODN4eC9zcGVlZC5jCgpjb21taXQgOTBmMzBhNzEwYTNjNjE5YjU0MDU4NjBhNjg2YzRkZGZjNDk1ZDRiNgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODowNTo1MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogRml4IHRoZSBpbmNvcnJlY3QgZGNieiBvcGVyYXRpb24KCiAgICBUaGUgODM0eCByZXYxLnggc2lsaWNvbiBoYXMgb25lIENQVTUgZXJyYXRhLgoKICAgIFRoZSBpc3N1ZSBpcyB3aGVuIHRoZSBkYXRhIGNhY2hlIGxvY2tlZCB3aXRoCiAgICBISUQwW0RMT0NLXSwgdGhlIGRjYnogaW5zdHJ1Y3Rpb24gbG9va3MgbGlrZSBuby1vcCBpbnN0LgoKICAgIFRoZSByaWdodCBiZWhhdmlvciBvZiB0aGUgZGF0YSBjYWNoZSBpcyB3aGVuIHRoZSBkYXRhIGNhY2hlCiAgICBMb2NrZWQgd2l0aCBISUQwW0RMT0NLXSwgdGhlIGRjYnogaW5zdHJ1Y3Rpb24gYWxsb2NhdGVzCiAgICBuZXcgdGFncyBpbiBjYWNoZS4KCiAgICBUaGUgODM0eCByZXYzLjAgYW5kIGxhdGVyIGFuZCA4MzYwIGhhdmUgbm90IHRoaXMgYnVnIGluc2lkZS4KCiAgICBTbywgd2hlbiA4MzR4IHJldjMuMC84MzYwIGFyZSB3b3JraW5nIHdpdGggRUNDLCB0aGUgZGNiegogICAgaW5zdHJ1Y3Rpb24gd2lsbCBjb3JydXB0IHRoZSBzdGFjayBpbiBjYWNoZSwgdGhlIHByb2Nlc3NvciB3aWxsCiAgICBjaGVja3N0b3AgcmVzZXQuCgogICAgSG93ZXZlciwgdGhlIDgzNHggcmV2MS54IGNhbiB3b3JrIHdpdGggRUNDIHdpdGggdGhlc2UgY29kZSwKICAgIGJlY2F1c2UgdGhlIHNpbGxpY29uIGhhcyB0aGlzIGNhY2hlIGJ1Zy4gVGhlIGRjYnogd2lsbCBub3QKICAgIGNvcnJ1cHQgdGhlIHN0YWNrIGluIGNhY2hlLgogICAgUmVhbGx5LCBpdCBpcyB0aGUgZmF1bHQgY29kZSBydW5uaW5nIG9uIGZhdWx0IHNpbGxpY29uLgoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBpbmNvcnJlY3QgZGNieiBvcGVyYXRpb24uIEluc3RlYWQgb2YKICAgIENQVSBGUCB3cml0aW5nIHRvIGluaXRpYWxpc2UgdGhlIEVDQy4KCiAgICBDSEFOR0VMT0c6CiAgICAqIEZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uIGluc3RlYWQgb2YgQ1BVIEZQCiAgICB3cml0aW5nIHRvIGluaXRpYWxpc2UgdGhlIEVDQyBtZW1vcnkuIE90aGVyd2lzZSwgaXQKICAgIHdpbGwgY29ycnVwdCB0aGUgc3RhY2sgaW4gY2FjaGUsIFRoZSBwcm9jZXNzb3Igd2lsbCBjaGVja3N0b3AKICAgIHJlc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmYwYjU0MmQ2NzczYTVhMWNiY2U3NzY5MWYwMDliMDZkOWFlYjU3ZApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMDoxMDo0MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogYWRkIE9GX0ZMQVRfVFJFRSBiaXRzIHRvIDgzeHggYm9hcmRzCgogICAgYWRkIGZ0X3BjaV9zZXR1cCwgT0ZfQ1BVLCBPRl9TT0MsIE9GX1RCQ0xLLCBhbmQKICAgIFNURE9VVF9QQVRIIGNvbmZpZ3VyYXRpb24gYml0cyB0byBtcGM4MzQ5ZW1kcywKICAgIG1wYzgzNDlpdHgsIGFuZCBtcGM4MzYwZW1kcyBib2FyZCBjb2RlLgoKICAgIHJlZG8gZW52aXJvbm1lbnQgdG8gdXNlIGJvb3RtIHdpdGggdGhlIGZkdGFkZHIKICAgIGZvciBib290aW5nIEFSQ0g9cG93ZXJwYyBrZXJuZWxzIGJ5IGRlZmF1bHQsCiAgICBhbmQgcHJvdmlkZSBkZWZhdWx0IGZkdGFkZHIgdmFsdWVzLgoKY29tbWl0IDQ4MDQxMzY1YjM0MjA1ODlhZDQ2NGViYzc3NTJlMDA1MzUzOGI3MjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDEgMDA6MDc6MjUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGNoYW5nZSBmdCBjb2RlIHRvIG1vZGlmeSBsb2NhbC1tYWMtYWRkcmVzcyBwcm9wZXJ0eQoKICAgIFVwZGF0ZSA4M3h4IE9GIGNvZGUgdG8gdXBkYXRlIGxvY2FsLW1hYy1hZGRyZXNzIHByb3BlcnRpZXMKICAgIGZvciBldGhlcm5ldCBpbnN0ZWFkIG9mIHRoZSBvYnNvbGV0ZSAnYWRkcmVzcycgcHJvcGVydHkuCgpjb21taXQgOWNhODgwYTI1MDg3MGE3ZDU1NzU0MjkxYjU1OTFkMmI1ZmU4OWI1NApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMjE6MjM6MTYgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCBkdWFsIEkyQyBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUlUWCwgTVBDODM0OUVNRFMsIFRRTTgzNHgsIGFuZCBNUEM4MzYwRU1EUwoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGFuIGltcHJvdmVkIEkyQyBzZXRfc3BlZWQoKSwgd2hpY2ggaGFuZGxlcyBhbGwgY2xvY2sKICAgIGZyZXF1ZW5jaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWM0YjU2MjJjZTA1MGI1ZWUxZTE1NGI5OGRmNjMwZDc3ODY2MTYzMgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTk6NTQ6NTkgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCB0aGUgUkVBRE1FLm1wYzgzNjBlbWRzCgogICAgYWRkIGRvYy9SRUFETUUubXBjODM2MGVtZHMgdG8gYWNjb21wYW55IHRoZSBuZXcgYm9hcmQgc3VwcG9ydAoKY29tbWl0IDc3MzdkNWM2NThjNjA2Zjk5OWRmYmUzZTg2YjBmZWQ0OWU1YzUwZWYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTI6MTE6MTUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBRRSBldGhlcm5ldCBzdXBwb3J0CgogICAgdGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBRVUlDQyBFbmdpbmUgYmFzZWQgVUNDIGdpZ2FiaXQgZXRoZXJuZXQgZGV2aWNlLgoKY29tbWl0IDVmODIwNDM5NGUzOWJiZThjZDlmMDhiOGY4ZDE0NWI2YzAxZjdjNzMKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTk6MzM6NDQgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBNUEM4MzYwRU1EUyBiYXNpYyBib2FyZCBzdXBwb3J0CgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBGcmVlc2NhbGUgTVBDODM2MEVNRFMgYm9hcmQuCiAgICBJbmNsdWRlcyBERFIsIERVQVJULCBMb2NhbCBCdXMsIFBDSS4KCmNvbW1pdCAyMzg5MmU0OTM1MmRlNzRmN2ZhYzM2ZmY5MGJiMWJlMTQzZDE5NWUzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOTozMDo0MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogYWRkIHRoZSBRVUlDQyBFbmdpbmUgKFFFKSBpbW1hcCBmaWxlCgogICAgY29tbW9uIFFFIGltbWFwIGZpbGUuICBBbHNvIHJlcXVpcmVkIGZvciA4MzYwLgoKY29tbWl0IGI3MDE2NTJhNDk5MmJkY2M2MmZiMWE2MDM4YTg1YmVlZjllNTVkYTQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjI1OjM4IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgODM2MCBzcGVjaWZpY3MgdG8gODN4eCBpbW1hcAoKICAgIE1haW5seSBhZGQgUUUgZGV2aWNlIGRlcGVuZGVuY2llcywgd2l0aCBhcHByb3ByaWF0ZSA4MzYwIHByb3RlY3Rpb24uCiAgICBMaW5kZW50IGFsc28gcnVuLgoKY29tbWl0IDk4ODgzMzMyNGE3ZmRhNDgyYzhhYzNjYTIzZWI1MzlmODIzMmU0MDQKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjE0OjQxIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggUENJLCBVU0IsIGJvb3RhcmdzIGZvciBNUEM4MzQ5RS1tSVRYCgogICAgUFJFUkVRVUlTSVRFIFBBVENIRVM6CgogICAgKiBUaGlzIHBhdGNoIGNhbiBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIGZvbGxvd2luZyBwYXRjaGVzIGhhdmUgYmVlbiBhcHBsaWVkOgoKICAgICAgMSkgRE5YIzIwMDYwOTIxNDIwMDAwMTUgIkFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWCAgMS8yIgogICAgICAyKSBETlgjMjAwNjA5MjE0MjAwMDAyNCAiQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYICAyLzIiCgogICAgQ0hBTkdFTE9HOgoKICAgICogRm9yIHRoZSA4MzQ5RS1tSVRYLCBmaXggc29tZSBzaXplIHZhbHVlcyBpbiBwY2lfaW5pdF9ib2FyZCgpLCBlbmFibGUKICAgICAgdGhlIGNsb2NrIGZvciB0aGUgMm5kIFVTQiBib2FyZCAoTGludXgga2VybmVsIHdpbGwgaGFuZyBvdGhlcndpc2UpLAogICAgICBhbmQgZml4IHRoZSBDT05GSUdfQk9PVEFSR1MgbWFjcm8uCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYWQ2YjUxM2IzMTA3MGJkMGMwMDM3OTJlZDFjM2U3ZjVkNzQwMzU3CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxODo0NDo0MiAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYCgogICAgUFJFUkVRVUlTSVRFIFBBVENIRVM6CgogICAgKiBUaGlzIHBhdGNoIGNhbiBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIGZvbGxvd2luZyBwYXRjaGVzIGhhdmUgYmVlbiBhcHBsaWVkOgoKICAgICAgMSkgRE5YIzIwMDYwOTA3NDIwMDAwMjQgIkFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMiCiAgICAgIDIpIEROWCMyMDA2MDkwNzQyMDAwMDMzICJNdWx0aS1idXMgSTJDIGltcGxlbWVudGF0aW9uIG9mIE1QQzgzNHgiCiAgICAgIDMpIEROWCMyMDA2MDkxMjQyMDAwMDQxICJBZGRpdGlvbmFsIE1QQzgzNDkgc3VwcG9ydCBmb3IgbXVsdGlidXMgaTJjIgogICAgICA0KSBETlgjMjAwNjA5MTI0MjAwMDA3OCAiQWRkIHN1cHBvcnQgZm9yIHZhcmlhYmxlIGZsYXNoIG1lbW9yeSBzaXplcyBvbiA4M3h4IHN5c3RlbXMiCiAgICAgIDUpIEROWCMyMDA2MDkxMjQyMDAwMDY5ICJBZGQgc3VwcG9ydCBmb3IgRXJyYXRhIEREUjYgb24gTVBDIDgzNHggc3lzdGVtcyIKCiAgICBDSEFOR0VMT0c6CgogICAgKiBBZGQgc3VwcG9ydCBmb3IgdGhlIEZyZWVzY2FsZSBNUEM4MzQ5RS1tSVRYIHJlZmVyZW5jZSBkZXNpZ24gcGxhdGZvcm0uCiAgICAgIFRoZSBzZWNvbmQgVFNFQyAoVml0ZXNzZSA3Mzg1IHN3aXRjaCkgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxODNkYTZkOWI0NDZjYzEyMTIzNDU1ODQ0YWQxMTg3ZTIzNzU2MjZmCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVR1ZSBTZXAgMTIgMTA6MTU6NTMgMjAwNiAtMDQwMAoKICAgIEFkZGl0aW9uYWwgTVBDODM0OSBzdXBwb3J0IGZvciBtdWx0aWJ1cyBpMmMKCiAgICBIZWxsbywKCiAgICBIZXJlIGlzIGEgcGF0Y2ggZm9yIGEgZmlsZSB0aGF0IHdhcyBhY2NpZGVudGFsbHkgbGVmdCBvdXQgb2YgYSBwcmV2aW91cwogICAgYXR0ZW1wdC4KCiAgICBJdCBhY2NvbXBhbmllcyB0aGUgcGF0Y2ggd2l0aCB0aWNrZXQgRE5YIzIwMDYwOTA3NDIwMDAwMjQKCiAgICBDSEFOR0VMT0c6CgkgICAgQ2hhbmdlIFBDSSBpbml0aWFsaXphdGlvbiB0byB1c2UgbmV3IG11bHRpLWJ1cyBJMkMgQVBJLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiMjRmMTE5ZDY3MmI3MDlkMTUzZmYyYWMwOTFkNGFhNjNlYzY4NzdkCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBTZXAgNyAxNjo1MTowNCAyMDA2IC0wNDAwCgogICAgTXVsdGktYnVzIEkyQyBpbXBsZW1lbnRhdGlvbiBvZiBNUEM4MzR4CgogICAgSGVsbG8sCgogICAgQXR0YWNoZWQgaXMgYSBwYXRjaCBpbXBsZW1lbnRpbmcgbXVsdGlwbGUgSTJDIGJ1c2VzIG9uIHRoZSBNUEM4MzR4IENQVQogICAgZmFtaWx5IGFuZCB0aGUgTVBDODM0OUVNRFMgYm9hcmQgaW4gcGFydGljdWxhci4KICAgIFRoaXMgcGF0Y2ggcmVxdWlyZXMgUGF0Y2ggMSAoQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcykuCiAgICBUZXN0aW5nIHdhcyBwZXJmb3JtZWQgb24gYSA1MzNNSHogYm9hcmQuCgogICAgLyoqKiBOb3RlOiBUaGlzIHBhdGNoIHJlcGxhY2VzIHRpY2tldCBETlgjMjAwNjA4MzA0MjAwMDAyNyAqKiovCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CgogICAgQ0hBTkdFTE9HOgoJICAgIEltcGxlbWVudGVkIGRyaXZlci1sZXZlbCBjb2RlIHRvIHN1cHBvcnQgdHdvIEkyQyBidXNlcyBvbiB0aGUKICAgIE1QQzgzNHggQ1BVIGZhbWlseSBhbmQgdGhlIE1QQzgzNDlFTURTIGJvYXJkLiAgQXZhaWxhYmxlIEkyQyBidXMgc3BlZWRzCiAgICBhcmUgNTBrSHosIDEwMGtIeiBhbmQgNDAwa0h6IG9uIGVhY2ggYnVzLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiYjk5YWQ2ZDgyNTdiZjgyOGYxNTBkNDBmNTA3YjMwZDgwYTRhN2FlCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBTZXAgNyAxNjo1MDo1NCAyMDA2IC0wNDAwCgogICAgQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcwoKICAgIEhlbGxvLAoKICAgIEF0dGFjaGVkIGlzIGEgcGF0Y2ggcHJvdmlkaW5nIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcyBhdCB0aGUKICAgIGNvbW1hbmQgbGV2ZWwuICBUaGUgc2Vjb25kIHBhcnQgb2YgdGhlIHBhdGNoIGluY2x1ZGVzIGFuIGltcGxlbWVudGF0aW9uCiAgICBmb3IgdGhlIE1QQzgzNHggQ1BVIGFuZCBNUEM4MzQ5RU1EUyBib2FyZC4KCiAgICAvKioqIE5vdGU6IFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGlja2V0IEROWCMyMDA2MDgzMDQyMDAwMDE4ICoqKi8KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCiAgICBPdmVydmlldzoKCiAgICAxLiBJbmNsdWRlIG5ldyAnaTJjJyBjb21tYW5kIChiYXNlZCBvbiBVU0IgaW1wbGVtZW50YXRpb24pIHVzaW5nCiAgICBDT05GSUdfSTJDX0NNRF9UUkVFLgoKICAgIDIuIEFsbG93IG11bHRpcGxlIGJ1c2VzIGJ5IGRlZmluaW5nIENPTkZJR19JMkNfTVVMVElfQlVTLiAgTm90ZSB0aGF0CiAgICB0aGUgY29tbWFuZHMgdG8gY2hhbmdlIGJ1cyBudW1iZXIgYW5kIHNwZWVkIGFyZSBvbmx5IGF2YWlsYWJsZSB1bmRlciB0aGUKICAgIG5ldyAnaTJjJyBjb21tYW5kIG1lbnRpb25lZCBpbiB0aGUgZmlyc3QgYnVsbGV0LgoKICAgIDMuIFRoZSBvcHRpb24gQ0ZHX0kyQ19OT1BST0JFUyBoYXMgYmVlbiBleHBhbmRlZCB0byB3b3JrIGluIG11bHRpLWJ1cwogICAgc3lzdGVtcy4gIFdoZW4gQ09ORklHX0kyQ19NVUxUSV9CVVMgaXMgdXNlZCwgdGhpcyBvcHRpb24gdGFrZXMgdGhlIGZvcm0KICAgIG9mIGFuIGFycmF5IG9mIGJ1cy1kZXZpY2UgcGFpcnMuICBPdGhlcndpc2UsIGl0IGlzIGFuIGFycmF5IG9mIHVjaGFyLgoKICAgIENIQU5HRUxPRzoKCSAgICBBZGRlZCBuZXcgJ2kyYycgbWFzdGVyIGNvbW1hbmQgZm9yIGFsbCBJMkMgaW50ZXJhY3Rpb24uICBUaGlzIGlzCiAgICBjb25kaXRpb25hbGx5IGNvbXBpbGVkIHdpdGggQ09ORklHX0kyQ19DTURfVFJFRS4gIE5ldyBjb21tYW5kcyBhZGRlZCBmb3IKICAgIHNldHRpbmcgSTJDIGJ1cyBzcGVlZCBhcyB3ZWxsIGFzIGNoYW5naW5nIHRoZSBhY3RpdmUgYnVzIGlmIHRoZSBib2FyZAogICAgaGFzIG1vcmUgdGhhbiBvbmUgKGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgd2l0aAogICAgQ09ORklHX0kyQ19NVUxUSV9CVVMpLiAgVXBkYXRlZCBOT1BST0JFIGxvZ2ljIHRvIGhhbmRsZSBtdWx0aXBsZSBidXNlcy4KICAgIFVwZGF0ZWQgUkVBRE1FLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiZWQ4NWNhZjg3MjcxNGViZjUzMDEzOTY3YTY5NWM5ZDYzYWNmYzY4CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxODoxMzozNiAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIEVycmF0YSBERFI2IG9uIE1QQyA4MzR4IHN5c3RlbXMKCiAgICBDSEFOR0VMT0c6CgogICAgKiBFcnJhdGEgRERSNiwgd2hpY2ggYWZmZWN0cyBhbGwgY3VycmVudCBNUEMgODM0eCBwcm9jZXNzb3JzLCBsaXN0cyBjaGFuZ2VzCiAgICAgIHJlcXVpcmVkIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCB2YXJpb3VzIHR5cGVzIG9mIEREUiBtZW1vcnkuICBUaGlzCiAgICAgIHBhdGNoIGltcGxlbWVudHMgdGhvc2UgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmZDZlNDcwZjYzOTg4MzAwMmM3YzU5ZDU2MjY5MGE1Y2IwZjQ4NjUKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDI1IDE4OjQ1OjIzIDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggVFFNIGJ1aWxkIGJ5IGRlZmluaW5nIGEgQ0ZHX0ZMQVNIX1NJWkUgZm9yIGl0Cgpjb21taXQgMzEwNjhiN2M0YWJlZWZjYjJjOGZkNGZiZWNjYzhlYzZjNmQwNDc1YQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTc6MDc6MDAgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBmbGFzaCBtZW1vcnkgc2l6ZXMgb24gODN4eCBzeXN0ZW1zCgogICAgQ0hBTkdFTE9HOgoKICAgICogT24gODN4eCBzeXN0ZW1zLCB1c2UgdGhlIENGR19GTEFTSF9TSVpFIG1hY3JvIHRvIHByb2dyYW0gdGhlIExCQyBsb2NhbCBhY2Nlc3MKICAgICAgIHdpbmRvdyByZWdpc3RlcnMsIGluc3RlYWQgb2YgdXNpbmcgYSBoYXJkLWNvZGVkIHZhbHVlIG9mIDhNQi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJmYzM0YWU2NmU3M2ZhNzg0MWQxYTAwNmRjMWI1ZGNiYzFmNzg5NjUKQXV0aG9yOiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE4OjM4OjEzIDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBVbmlmaWVkIFRRTTgzNHggdmFyaWFibGUgbmFtZXMgd2l0aCA4M3h4IGFuZCBjb25zb2xpZGF0ZWQgbWFjcm9zCgogICAgVW5pZmllZCBUUU04MzR4IHZhcmlhYmxlIG5hbWVzIHdpdGggODN4eCBhbmQgY29uc29saWRhdGVkIG1hY3JvCiAgICBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIDgzNjAgYW5kIG90aGVyIHVwY29taW5nIDgzeHggZGV2aWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNmVkYTdmODBjY2MxM2Q2NTgwMjAyNjhjNTA3ZDcxNzNjZjJlOGFhCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxNDo0MToyMSAyMDA2IC0wNTAwCgogICAgbXBjODN4eDogQ2hhbmdlZCB0byB1bmlmaWVkIG1weDgzeHggbmFtZXMgYW5kIGFkZGVkIGNvbW1vbiA4M3h4IGNoYW5nZXMKCiAgICBJbmNvcnBvcmF0ZWQgdGhlIGNvbW1vbiB1bmlmaWVkIHZhcmlhYmxlIG5hbWVzIGFuZCB0aGUgY2hhbmdlcyBpbiBwcmVwYXJhdGlvbgogICAgZm9yIHJlbGVhc2luZyBtcGM4MzYwIHBhdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODk0YzQ2YzI3YzY0ODkxZjkzYWMwNGVkZGU4NmE5ZmE5NzU4ZDkyCkF1dGhvcjogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxODozNjowMiAyMDA2ICswODAwCgogICAgbXBjODN4eDogRml4IG1pc3NpbmcgYnVpbGQgZm9yIG1wYzgzNDllbWRzIHBjaS5jCgogICAgTWFrZSBwY2kgYnVpbGQgZm9yIG1wYzgzNDllbWRzCgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDlhODFmZjc0MGIyOWRlZWExZTJhYjA4YTNjMmFjMTM2YzJlNjIxOQpBdXRob3I6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMgMTg6Mzk6NDkgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZWQgdW51c2VkIGZpbGUgcmVzZXR2ZWMuUyBmb3IgbXBjODN4eCBjcHUKCiAgICBSZW1vdmVkIHVudXNlZCBmaWxlIHJlc2V0dmVjLlMgZm9yIG1wYzgzeHggY3B1CgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDRmODk5ZmM0NjVjM2U0NGYyYjU1ZWNjNzA2MThmNTY5NmZjMGRkZgpBdXRob3I6IE5pY2sgU3BlbmNlIDxOaWNrLlNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgU2VwIDMwIDAwOjMyOjU5IDIwMDYgLTA3MDAKCiAgICBOQU5EIEZsYXNoIHZlcmlmeSBhY3Jvc3MgYmxvY2sgYm91bmRhcmllcwoKICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcHJvYmxlbSB3aGVuIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMKICAgIGRlZmluZWQKICAgIGFuZCB0aGUgd3JpdGUgY3Jvc3NlcyBhIGJsb2NrIGJvdW5kYXJ5LiBUaGUgcG9pbnRlciB0byB0aGUgdmVyaWZpY2F0aW9uCiAgICBidWZmZXIgKGJ1ZnN0YXJ0KSBpcyBub3QgYmVpbmcgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBzdGFydGluZyBvZiB0aGUKICAgIG5ldwogICAgYmxvY2sgc28gdGhlIHZlcmlmaWNhdGlvbiBvZiB0aGUgc2Vjb25kIGJsb2NrIGZhaWxzLgoKICAgIENIQU5HRUxPRzoKCiAgICAqIEZpeCBOQU5EIEZMQVNIIHBhZ2UgdmVyaWZpY2F0aW9uIGFjcm9zcyBibG9jayBib3VuZGFyaWVzCgpjb21taXQgZjQ4NGRjNzkxYTM5MzI1MzcyMTNjNDNjNjU0Y2MxMjk1YzY0Yjg0YwpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDcgMDc6Mzk6NDYgMjAwNiAtMDcwMAoKICAgIEFkZGVkIFJHTUlJIHN1cHBvcnQgdG8gdGhlIFRTRUNzIGFuZCBNYXJ2ZWxsIDg4MTExMSBQaHkKCiAgICBBZGRlZCBhIHBoeSBpbml0aWFsaXphdGlvbiB0byBhZGp1c3QgdGhlIFJHTUlJIFJYIGFuZCBUWCB0aW1pbmcKICAgIEFsd2F5cyBzZXQgdGhlIFIxMDAgYml0IGluIDEwMCBCYXNlVCBtb2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIFRTRUMgbW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4MzFjOGI4YTk3Nzk5ZGE3NzkyM2Q2YmJiNGMyNjBjMGQ0NTUyMWMKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxMzoxMDowMCAyMDA2ICswODAwCgogICAgUmVtb3ZlIHNvbWUgdW51c2VkIENGRyBkZWZpbmUuCiAgICB1bmRlZiBDRkdfRFJBTV9URVNUCgpjb21taXQgOTljMDljNGRlYzM0Zjc3YzI0M2JmNTFiZWE1MzJlM2YzMzk0MTBhZApBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEzOjA3OjM2IDIwMDYgKzA4MDAKCiAgICBDaGFuZ2UgdGhlIFRFWFRfQkFTRSBmcm9tIDB4RkZGMDAwMDAgdG8gMHhGRjAwMDAwMC4KICAgIEJvdGggd29yay4gMHhGRjAwMDAwMCBzZWVtcyBtb3JlIHJlYXNvbmFibGUuCgpjb21taXQgYzU5MjAwNDQzMDcyMzUzMDQ0YWE0YmY3MzdhNWE2MGY5YTlhZjIzMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTm92IDIgMTU6MTU6MDEgMjAwNiArMDEwMAoKICAgIFJlbGVhc2UgVS1Cb290IDEuMS42Cgpjb21taXQgYzFmYmU0MTAzYTBkNmM4OTU3ZjkxMmFmOTAyZDcwNWJhNjc4MzZmMgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjE0OjQ4IDIwMDYgKzA4MDAKCiAgICBUaGlzIHBhdGNoIGNvbWVzIGZyb20gWXVsaSdzIHBvc3RlZCBwYXRjaCBvbiA4LzgvMjAwNgogICAgdGl0bGVkICJDRkkgRHJpdmVyIExpdHRsZS1FbmRpYW4gd3JpdGUgSXNzdWUiLgoKICAgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvbWVzc2FnZS5waHA/bXNnX2lkPTM2MzExOTk5CgogICAgSWYgdGhhdCBwYXRjaCBhcHBsaWVkLCBwbGVhc2UgZGlzY2FyZCB0aGlzIG9uZS4KICAgIFVudGlsIG5vdyAsIEkgZG8gbm90IHNlZSBoaXMgcGF0Y2ggaXMgYXBwbGllZC4gU28gcGxlYXNlIGFwcGx5IHRoaXMgb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1bGkgQmFyY29oZW4gPHl1bGlAYXJhYmVsbGFzdy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjgyNWYxNThlNDQ5ZTFlOWNmNzRjMDhlNTcyOTU1ZTEyMjM5NGM5NgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjEyOjMxIDIwMDYgKzA4MDAKCiAgICBUc2kxMDggb24gY2hpcCBpMmMgc3VwcG9ydC4KCiAgICBUaGUgaTJjICBJbnRlcmZhY2UgcHJvdmlkZXMgYSBtYXN0ZXItb25seSwgc2VyaWFsIGludGVyZmFjZSB0aGF0IGNhbiBiZQogICAgdXNlZCBmb3IgaW5pdGlhbGl6aW5nIFRzaTEwOC9Uc2kxMDkgcmVnaXN0ZXJzIGZyb20gYW4gRUVQUk9NIGFmdGVyIGEKICAgIGRldmljZSByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkyMjZlN2Q2ZjA5YjlhMWFjMDc0Y2Q5MThjODEyMjVhNDY4OWJiYTgKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxMTowNiAyMDA2ICswODAwCgogICAgVHNpMTA4IG9uIGNoaXAgcGNpIGNvbnRyb2xsZXIgc3VwcG9ydC4KCiAgICBJZiB0aGVyZSBpcyBubyBwY2kgY2FyZCwgdGhlIHRzaTEwOC8xMDkgcGNpIGNvbmZpZ3VyZSByZWFkIHdpbGwKICAgIGNhdXNlIGEgbWFjaGluZSBjaGVjayBleGNlcHRpb24gdG8gdGhlIHByb2Nlc3Nvci4gUENJIGVycm9yIHNob3VsZAogICAgYWxzbyBiZSBjbGVhcmVkIGFmdGVyIHRoZSByZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDE5MjdjZWU5NzcxMjZlNTQ3Y2VlYmEyM2U0Zjk3OGYzNzdjZmI4ZgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjA4OjU1IDIwMDYgKzA4MDAKCiAgICBUdW5kcmEgdHNpMTA4IG9uIGNoaXAgRXRoZXJuZXQgY29udHJvbGxlciBzdXBwb3J0LgoKICAgIFRoZSBmb2xsb3dpbmcgaXMgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgRXRoZXJuZXQgY29udHJvbGxlcjoKICAgIFRoZSBUc2kxMDgvOSBFdGhlcm5ldCBDb250cm9sbGVyIGNvbm5lY3RzIFN3aXRjaCBGYWJyaWMgdG8gdHdvIGluZGVwZW5kZW50CiAgICBHaWdhYml0IEV0aGVybmV0IHBvcnRzLEUwIGFuZCBFMS4gIEl0IHVzZXMgYSBzaW5nbGUgTWFuYWdlbWVudCBpbnRlcmZhY2UKICAgIHRvIG1hbmFnZSB0aGUgdHdvIHBoeXNpY2FsIGNvbm5lY3Rpb24gZGV2aWNlcyAoUEhZcykuICBFYWNoIEV0aGVybmV0IHBvcnQKICAgIGhhcyBpdHMgb3duIHN0YXRpc3RpY3MgbW9uaXRvciB0aGF0IHRyYWNrcyBhbmQgcmVwb3J0cyBrZXkgaW50ZXJmYWNlCiAgICBzdGF0aXN0aWNzLiAgRWFjaCBwb3J0IHN1cHBvcnRzIGEgMjU2LWVudHJ5IGhhc2ggdGFibGUgZm9yIGFkZHJlc3MKICAgIGZpbHRlcmluZy4JSW4gYWRkaXRpb24sIGVhY2ggcG9ydCBpcyBicmlkZ2VkIHRvIHRoZSBTd2l0Y2ggRmFicmljCiAgICB0aHJvdWdoIGEgMi1LYnl0ZSB0cmFuc21pdCBGSUZPIGFuZCBhIDQtS2J5dGUgUmVjZWl2ZSBGSUZPLgoKICAgIEVhY2ggRXRoZXJuZXQgcG9ydCBhbHNvIGhhcyBhIHBhaXIgb2YgaW50ZXJuYWwgRXRoZXJuZXQgRE1BIGNoYW5uZWxzIHRvCiAgICBzdXBwb3J0IHRoZSB0cmFuc21pdCBhbmQgcmVjZWl2ZSBkYXRhIGZsb3dzLiAgVGhlIEV0aGVybmV0IERNQSBjaGFubmVscwogICAgdXNlIGRlc2NyaXB0b3JzIHNldCB1cCBpbiBtZW1vcnksIHRoZSBtZW1vcnkgbWFwIG9mIHRoZSBkZXZpY2UsIGFuZAogICAgYWNjZXNzIHZpYSB0aGUgU3dpdGNoIEZhYnJpYy4gIFRoZSBFdGhlcm5ldCBDb250cm9sbGVyP3MgRE1BIGFyYml0ZXIKICAgIGhhbmRsZXMgYXJiaXRyYXRpb24gZm9yIHRoZSBTd2l0Y2ggRmFicmljLglUaGUgQ29udHJvbGxlciBhbHNvCiAgICBoYXMgYSByZWdpc3RlciBidXNpbnRlcmZhY2UgZm9yIHJlZ2lzdGVyIGFjY2Vzc2VzIGFuZCBzdGF0dXMgbW9uaXRvcgogICAgY29udHJvbC4KCiAgICBUaGUgUE1EIChQaHlzaWNhbCBNZWRpYSBEZXZpY2UpIGludGVyZmFjZSBvcGVyYXRlcyBpbiBNSUksIEdNSUksIG9yIFRCSQogICAgbW9kZXMuICBUaGUgTUlJIG1vZGUgaXMgdXNlZCBmb3IgY29ubmVjdGluZyB3aXRoIDEwIG9yIDEwMCBNYml0L3MgUE1Ecy4KICAgIFRoZSBHTUlJIGFuZCBUQkkgbW9kZXMgYXJlIHVzZWQgdG8gY29ubmVjdCB3aXRoIEdpZ2FiaXQgUE1Ecy4gIEludGVybmFsCiAgICBkYXRhIGZsb3dzIHRvIGFuZCBmcm9tIHRoZSBFdGhlcm5ldCBDb250cm9sbGVyIHRocm91Z2ggdGhlIFN3aXRjaCBGYWJyaWMuCgogICAgRWFjaCBFdGhlcm5ldCBwb3J0IHVzZXMgaXRzIHRyYW5zbWl0IGFuZCByZWNlaXZlIERNQSBjaGFubmVscyB0byBtYW5hZ2UKICAgIGRhdGEgZmxvd3MgdGhyb3VnaCBidWZmZXIgZGVzY3JpcHRvcnMgdGhhdCBhcmUgcHJlZGVmaW5lZCBieSB0aGUKICAgIHN5c3RlbSAodGhlIGRlc2NyaXB0b3JzIGNhbiBleGlzdCBhbnl3aGVyZSBpbiB0aGUgc3lzdGVtIG1lbW9yeSBtYXApLgogICAgVGhlc2UgZGVzY3JpcHRvcnMgYXJlIGRhdGEgc3RydWN0dXJlcyB0aGF0IHBvaW50IHRvIGJ1ZmZlcnMgZmlsbGVkCiAgICB3aXRoIGRhdGEgcmVhZHkgdG8gdHJhbnNtaXQgb3ZlciBFdGhlcm5ldCwgb3IgdGhleSBwb2ludCB0byBlbXB0eQogICAgYnVmZmVycyByZWFkeSB0byByZWNlaXZlIGRhdGEgZnJvbSBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc4YWEwYzM0MjdmM2VjZGViMzRhYWJmYmJlMmRkMjNiNmFkOGY0MGUKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTowMTozMyAyMDA2ICswODAwCgogICAgVHVuZHJhIHRzaTEwOCBoZWFkZXIgZmlsZS4KCiAgICBUaGUgVHVuZHJhIFNlbWljb25kdWN0b3IgQ29ycG9yYXRpb24gKFR1bmRyYSkgVHNpMTA4IGlzIGEgaG9zdCBicmlkZ2UgZm9yCiAgICBQb3dlclBDIHByb2Nlc3NvcnMgdGhhdCBvZmZlcnMgbnVtZXJvdXMgc3lzdGVtIGludGVyY29ubmVjdCBvcHRpb25zIGZvcgogICAgZW1iZWRkZWQgYXBwbGljYXRpb24gZGVzaWduZXJzLiBUaGUgVHNpMTA4IGNhbiBpbnRlcmNvbm5lY3QgNjB4IG9yCiAgICBNUFggcHJvY2Vzc29ycyB0byBQQ0kvWCBwZXJpcGhlcmFscywgRERSMi00MDAgbWVtb3J5LCBHaWdhYml0IEV0aGVybmV0LAogICAgYW5kIEZsYXNoLiBQcm92aWRlZCB0aGUgbWFjcm8gZGVmaW5lIGZvciB0c2kxMDggY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3YzRkYjA5Njk5YzZiODkxNzZiMzEwMDRhZmNiODNlYjE1ODVkNDcKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo1OToxNSAyMDA2ICswODAwCgogICAgQWRkICBtcGM3NDQ4aHBjMiAgKG1wYzc0NDggKyB0c2kxMDgpICBib2FyZCBhc3NvY2lhdGVkIGNvZGUgc3VwcG9ydC4KICAgIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgaGlnaCBsZXZlbCBjb2RlOnRzaTEwOCBpbml0ICsgbXBjNzQ0OGhwYzIuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNzgwMWI4YWIxMWM2MWI1NzdlNDU3NDJhNTE1YmIzYjIzYjgwMjQxCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTc6MjEgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBNYWtlICxjb25maWcubWsgYW5kIGxpbmsgZmlsZSBmb3IgdGhlIG1wYzc0NDhocGMyIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY0MTFjMGMzYmJjNzlmOWJhOGFlZjU4Mjk2YTQyZDhmOWQ4YTBhNgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjU1OjA0IDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgVGhlIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgaGVhZGVyIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MjViYjVkZGI1MGIyNDNmOTMxMjYyY2E4YzQ2OTU2NDA5NDcxOTE3CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTI6MjEgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBUaGUgbXBjNzQ0OGhwYzIgYm9hcmQgc3VwcG9ydCBsb3cgbGV2ZWwgYXNzZW1ibGUgbGFuZ3VhZ2UgaW5pdCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGM1Mjc4M2IzZDAyNGUxNTNjNDk3MmI5NzMzMmUzMTRiYzNiZGM0NgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjQ5OjUxIDIwMDYgKzA4MDAKCiAgICBHZW5lcmFsIGNvZGUgbW9kaWZpY2F0aW9uIGZvciBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0LgogICAgMS4gQWRkIDc0NDdBIGFuZCA3NDQ4IHByb2Nlc3NvciBzdXBwb3J0LgogICAgMi4gQWRkIHRoZSBmb2xsb3dpbmcgZmxhZ3MuCgogICAgQ0ZHX0NPTkZJR19CVVNfQ0xLIDogSWYgdGhlIDc0eHggYnVzIGZyZXF1ZW5jeSBjYW4gYmUgY29uZmlndXJlZCBkeW5hbWljYWxseQogICAgKHN1Y2ggYXMgYnkgc3dpdGNoIG9uIGJvYXJkKSwgdGhpcyBmbGFnIHNob3VsZCBiZSBzZXQuCgogICAgQ0ZHX0VYQ0VQVElPTl9BRlRFUl9SRUxPQ0FURTogSWYgYW4gZXhjZXB0aW9uIG9jY3VycyBhZnRlciB0aGUgdS1ib290CiAgICByZWxvY2F0ZXMgdG8gUkFNLCB0aGlzIGZsYWcgc2hvdWxkIGJlIHNldC4KCiAgICBDRkdfU0VSSUFMX0hBTkdfSU5fRVhDRVBUSU9OOiBJZiB0aGUgcHJpbnQgb3V0IGZ1bmN0aW9uIHdpbGwgY2F1c2UgdGhlCiAgICBzeXN0ZW0gaGFuZyBpbiBleGNlcHRpb24sIHRoaXMgZmxhZyBzaG91bGQgYmUgc2V0LgoKICAgIFRoZXJlIGlzIGEgZGVzaWduIGlzc3VlIGZvciB0c2kxMDgvMTA5IHBjaSBjb25maWd1cmUgIHJlYWQuIFdoZW4gcGNpIHNjYW4KICAgIHRoZSBzbG90cywgaWYgdGhlcmUgaXMgbm8gcGNpIGNhcmQsIHRoZSB0c2kxMDgvOSB3aWxsIGNhdXNlIGEgbWFjaGluZQogICAgY2hlY2sgZXhjZXB0aW9uIGZvciBtcGM3NDQ4IHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY5MzY2YmY0MmYyMmQ2N2VmY2U4ZGEzZjhjNDBhNDNkNGEzYzI2OTUKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODozNDo0NyAyMDA2ICswODAwCgogICAgQWRkIFJFQURNRSBmaWxlIGZvciBtcGM3NDQ4aHBjMiBib2FyZC4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNTcyMWI1Y2VjMmJlNGJjZTc5Y2ZhZGUxN2VjOGY2YWExZTY3NTI2CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAyOjA0OjM4IDIwMDYgKzAxMDAKCiAgICBGaW5pc2ggdXAgc3VwcG9ydCBmb3IgTWFyZWxWMzhCIGJvYXJkCiAgICAgLSBhZGQgd2F0Y2hkb2cgc3VwcG9ydAogICAgIC0gZW5hYmxlIEdQSU9fV0tVUF83IHBpbiBmb3IgaW5wdXQKICAgICAtIGNvZGUgY2xlYW51cAoKY29tbWl0IGZmYTE1MGJjOTBjOTQzY2EyNjUxNzBiZDFiZTNmMjkzNjc0ZGQ1YzcKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6NDU6NDYgMjAwNiArMDEwMAoKICAgIC0gRml4IGlzc3VlcyByZWxhdGVkIHRvIHRoZSB1c2Ugb2YgRUxESyA0IHdoZW4gY29tcGlsaW5nIGZvciBNYXJlbFYzOEI6CgkgICogcmVtb3ZlIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIGV0aGFkZHIuYwoJICAqIGFkanVzdCBsaW5rZXIgc2NyaXB0IChmaXhlcyBhIGNyYXNoIHJlc3VsdGluZyBmcm9tIGluY29ycmVjdAoJICBkZWZpbml0aW9uIG9mIF9fdV9ib290X2NtZF9zdGFydCkKICAgIC0gU29tZSBNYXJlbFYzOEIgY29kZSBjbGVhbnVwLgoKY29tbWl0IGRhZTgwZjNjYWY5NzU0YTZkZDNkZGYzY2Y5MDNkMGM0NmNiZDQzODUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6Mzg6MTYgMjAwNiArMDEwMAoKICAgIC0gQWRkIE1QQzVYWFggcmVnaXN0ZXIgZGVmaW5pdGlvbiBNUEM1WFhYX1dVX0dQSU9fREFUQV9JIGFuZCBjaGFuZ2UgdGhlCiAgICAgIE1QQzVYWFhfV1VfR1BJT19EQVRBIG1hY3JvIHRvIE1QQzVYWFhfV1VfR1BJT19EQVRBX08gKHBlciBNUEM1MjAwIFVzZXIncwogICAgICBNYW51YWwpLiBSZXBsYWNlIHRoZSB1c2VzIG9mIE1QQzVYWFhfV1VfR1BJT19EQVRBIHdpdGgKICAgICAgTVBDNVhYWF9XVV9HUElPX0RBVEFfTyBmb3IgYWZmZWN0ZWQgYm9hcmRzLgoKICAgIC0gQWRkIGRlZmludGlvbnMgZm9yIHNvbWUgTVBDNVhYWCBHUElPIHBpbnMuCgpjb21taXQgODJkOWM5ZWMyOWExYmVjMWIwM2JhNjE2NDI1ZWJhZWQyMzEwNzJjOApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMTozNDoyOSAyMDA2ICswMTAwCgogICAgQ2hhbmdlZCBNYXJlbFYzOEIgYm9hcmQgbWFrZSB0YXJnZXQgdG8gbG93ZXJjYXNlLiBDb25maWcgZmlsZSBjbGVhbnVwLgoKY29tbWl0IDE5NTRiZTZlOWM5NDIxYjQ1ZDBhOWQwNWIxMDM1NmFjYzc1NjMxNTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyOSAwMTowMzo1MSAyMDA2ICswMjAwCgogICAgQXV0b21hdGljYWxseSBhZGp1c3QgQVJGTEFHUyBzbyAibWFrZSAtcyIgaXMgcmVhbGx5IHNpbGVudC4KCmNvbW1pdCBmYWU2ODRlODk4NDQ4NTYzODNiZGYxMDE0NDA4ODk1NTdkZjNlNmIxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDE2OjQ1OjAwIDIwMDYgKzAyMDAKCiAgICBbUEFUQ0hdIG9tYXA5MjUuYzogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTI2NTU4MTUwMmFiOGVhOGMwOGU4ZWRiZTliZjY0ZmJkNjJmZDc3NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAxNzoxMjo1OCAyMDA2ICswMjAwCgogICAgW1BBVENIXSBBZGQgc29tZSBtaXNzaW5nIG1hY2h0eXBlcyBmb3IgbmV0c3RhciAmIHZvaWNlYmx1ZSBib2FyZHMKCiAgICBVc2UgTUFDSF9UWVBFX05FVFNUQVIgYW5kIE1BQ0hfVFlQRV9WT0lDRUJMVUUgZGVmaW5lcyBpbnN0ZWFkIG9mCiAgICBudW1iZXJzIGluIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg1NmYwNTQ0MTBjZWY1MmQ4NjhmZWIzMzAxNjhiMmE0YzQwOTEzMjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMTU6NTU6NTIgMjAwNiArMDIwMAoKICAgIFtQQVRDSF0gTkFORDogUGFydGl0aW9uIG5hbWUgc3VwcG9ydCBhZGRlZCB0byBOQU5EIHN1YnN5c3RlbQoKICAgIGNocGFydCwgbmJvb3QgYW5kIE5BTkQgc3Vic3lzdGVtIHJlbGF0ZWQgY29tbWFuZHMgbm93IGFjY2VwdCBhbHNvIHBhcnRpdGlvbgogICAgbmFtZSB0byBzcGVjaWZ5IG9mZnNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDdhNjlhMThjMmVjZmRhOTA0MjMxZmRmMjNlMjUyM2VhNzc5MmViNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAyOjI5OjQ0IDIwMDYgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDI3NTFhOTVhYmQxYjk2OTExMDgxYzM1N2U5NmExMmZhOTdiNDBkZWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyOToxNCAyMDA2ICswMjAwCgogICAgRW5hYmxlIGNvbW1hbmRsaW5lIGVkaXRpbmcgYW5kIGh1c2ggc2hlbGwgb24gYWxsIFRRTSBib2FyZHMuCgpjb21taXQgODA3OGYxYTVmNjNhNzM5Yjg1MzM0NzhmNmMyYjYyZmIxZTJmNzlkNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAyOjI4OjAyIDIwMDYgKzAyMDAKCiAgICBSRUFETUUgc2F5cyBDRkdfQVVUT19DT01QTEVURSwgYnV0IG9jZGUgdXNlcyBDT05GSUdfQVVUT19DT01QTEVURQoKY29tbWl0IDQ3MWE3YmU3YTA0MmU5NWU0NDBmNWRlOTY5Yzk3NjUyMTRhZThkNmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAxOjE0OjMyIDIwMDYgKzAyMDAKCiAgICBDaGVjayBmb3IgaWxsZWdhbCBjaGFyYWN0ZXIgJz0nIGluIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVzLgoKICAgIE1ha2Ugc3VyZSB0aGUgc3RyaW5nIHBhc3NlZCBhcyB2YXJpYWJsZSBuYW1lIGRvZXMgbm90IGNvbnRhaW4gYSAnPScKICAgIGNoYXJhY3Rlci4gVGhpcyBub3Qgb25seSBwcmV2ZW50cyB0aGUgY29tbW9uIGVycm9yIG9yIHR5cGluZwogICAgInNldGVudiBmb289YmFyIiBpbnN0ZWFkIG9mICJzZXRlbnYgZm9vIGJhciIsIGJ1dCAobW9yZSBpbXBvcnRhbnRseSkKICAgIGFsc28gY2xvc2VzIGEgYmFja2Rvb3Igd2hpY2ggYWxsb3dlZCB0byBkZWxldGUgd3JpdGUtcHJvdGVjdGVkCiAgICBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGZvciBleGFtcGxlIGJ5IHVzaW5nICJzZXRlbnYgZXRoYWRkcj0iLgoKY29tbWl0IDE5OTczYjZhZDk4NjNhNTZmNWM1ZmJjZmQ5MGUyMGFiMjQ5MGEyYzIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMDozODozOSAyMDA2ICswMjAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IGUxMTg4N2E3N2Q4MTA3NzQxNmEyZDFjNWUwMzU0OTE2ZmVlOGMwMzQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNzo1NTozMSAyMDA2ICswMjAwCgogICAgRG9uJ3QgcGFzcyBhbnkgZGVidWcgb3B0aW9ucyBkaXJlY3RseSB0byB0aGUgYXNzZW1ibGVyCgogICAgV2hlbiBwYXNzaW5nIHRoZSAtZyBvcHRpb24gdG8gZ2NjLCBnY2MgYXV0b21hdGljYWxseSBzZWxlY3RzIGEKICAgIHN1aXRhYmxlIC0tZzxmb3JtYXQ+IG9wdGlvbiB0byBwYXNzIG9uIHRvIHRoZSBhc3NlbWJsZXIuCiAgICBUaHVzLCB0aGVyZSdzIG5vIHBvaW50IGluIGZvcmNpbmcgYSBzcGVjaWZpYyBkZWJ1ZyBvcHRpb24gb24gdGhlCiAgICBhc3NlbWJsZXIgdXNpbmcgdGhlIC1XYSBtZWNoYW5pc20uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZWEwOGZmNmUxNGY5ZWJiOGMwN2NmYTc5YzUxZWY1NDBlYjA4NzM5MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjcgMDc6NDc6MjIgMjAwNiAtMDUwMAoKICAgIE1QQzg2eHg6IENsZWFuZWQgdXAgdW51c2VkIGFuZCBjb25kaXRpb25hbGx5IHVzZWQgbG9jYWwgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDM4OTM2Y2RhZTQ2YmZkMjYyM2ZmODNmNmNlOWI2MTZkMzZhYjBmOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgT2N0IDI3IDExOjU1OjIxIDIwMDYgKzAyMDAKCiAgICBGaXggImFyIiBmbGFncyBpbiBzb21lIE1ha2VmaWxlcyB0byBhbGxvdyBmb3Igc2lsZW50ICJtYWtlIC1zIgoKY29tbWl0IDQ2NTNmOTFjMTNlZDUxYzIxY2M0YzM4NTU3NDVkNjlhM2ZiMTgxN2YKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNDozODoyNSAyMDA2IC0wNDAwCgogICAgRml4IFRTRUMgZHJpdmVyIChub3cgZm9yIHJlYWwpOiBhdm9pZCBjcmFzaGVzIGlmIFBIWSBpcyBub3QgYXR0YWNoZWQKICAgIHRvIGEgVFNFQyAoZS5nLiBhIHN3aXRjaCBpcyBjb25uZWN0ZWQgdmlhIFJNSUkpIG9yCiAgICBpZiB0aGUgUEhZIGlzIGRlZmVjdGl2ZS9pbmNvcnJlY3RseSBjb25maWd1cmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGI5ODViNWQ2ZTRmYjg4ZjUwOGY3YWEwZjEyNmMyZTI3YWRhMmI5OTkKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNDozODoyNSAyMDA2IC0wNDAwCgogICAgRml4IFRTRUMgZHJpdmVyOiBhdm9pZCBjcmFzaGVzIGlmIFBIWSBpcyBub3QgYXR0YWNoZWQKICAgIHRvIGEgVFNFQyAoZS5nLiBhIHN3aXRjaCBpcyBjb25uZWN0ZWQgdmlhIFJNSUkpIG9yCiAgICBpZiB0aGUgUEhZIGlzIGRlZmVjdGl2ZS9pbmNvcnJlY3RseSBjb25maWd1cmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDJiMmE0MGJlYmJmMTgyMjUwNmU4MGU2MzFkNzI1M2U2MGYwZTBmZTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAyNiAxNjoyNDozMSAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwLgoKY29tbWl0IDVlM2IwYmMxOWYwN2VkMjc3ZDg1MzI0YWQwNDI3NjQyYzg5ODFiYWYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxNTo0ODo1OSAyMDA2ICswMjAwCgogICAgRmluaXNoIHVwIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDAvQVRTVEsxMDAyIGJvYXJkcwoKICAgIEFkZCBhdHN0azEwMDJfY29uZmlnIHRhcmdldCB0byBNYWtlZmlsZSBhbmQgbW92ZSB0aGUgQVZSMzIgc2VjdGlvbgogICAgZG93biBiZWxvdyBCbGFja2ZpbiBzbyB0aGF0IGl0IGRvZXNuJ3QgZW5kIHVwIGluIHRoZSBtaWRkbGUgb2YKICAgIE1JUFMuCgogICAgRHJvcCB0aGUgYXV0b2dlbmVyYXRlZCBsaW5rZXIgc2NyaXB0IHRoaW5nIGZvciBub3cuIFdpbGwgaGF2ZSB0bwogICAgcmV2aXNpdCBob3cgdG8gaGFuZGxlIGNoaXBzIHdpdGggZGlmZmVyZW50IGZsYXNoIGFuZCBSQU0gbGF5b3V0CiAgICBsYXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjNzZmOTUxYTc0N2NmYjg3YmE4MjZlZjQ1YjVhZWE4MmQ1YjVkYmI0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE9jdCAyNCAyMzo0NzozNyAyMDA2IC0wNTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgTXVsdGktSW1hZ2UgZmlsZXMgdGhhdCBjb250YWluIGEgZGV2aWNlIHRyZWUKCiAgICBJZiBhIE11bHRpLUltYWdlIGZpbGUgY29udGFpbnMgYSB0aGlyZCBpbWFnZSB3ZSB0cnkgdG8gdXNlIGl0IGFzIGEKICAgIGRldmljZSB0cmVlLiAgVGhlIGRldmljZSB0cmVlIGltYWdlIGlzIGFzc3VtZWQgdG8gYmUgdW5jb21wcmVzc2VkIGluIHRoZQogICAgaW1hZ2UgZmlsZS4gIFdlIGF1dG9tYXRpY2FsbHkgYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBkZXZpY2UgdHJlZSBpbiBtZW1vcnkKICAgIGFuZCBwcm92aWRlIGFuIDhrIHBhZCB0byBhbGxvdyBtb3JlIHRoYW4gYSByZWFzb25hYmxlIGFtb3VudCBvZiBncm93dGguCgogICAgQWRkaXRpb25hbGx5LCBhIGRldmljZSB0cmVlIHRoYXQgd2FzIGNvbnRhaW5lZCBpbiBmbGFzaCB3aWxsIG5vdyBhdXRvbWF0aWNhbGx5CiAgICBnZXQgY29waWVkIHRvIHN5c3RlbSBtZW1vcnkgYXMgcGFydCBvZiBib290LiAgUHJldmlvdXNseSBhbiBlcnJvciB3YXMKICAgIHJlcG9ydGVkIGlmIG9uZSB0cmllZCB0byBib290IGEgZGV2aWNlIHRyZWUgdGhhdCB3YXMgaW4gZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3YzUyYzRiOTQzZmY1MmJiZTg3OTZhN2UyZDNlNDc2Y2VhZjNmNTEyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAyMTozNTo1NSAyMDA2ICswMjAwCgogICAgU3dpdGNoIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIENIQU5HRUxPRyBmaWxlLgogICAgKHVzZSAibWFrZSBDSEFOR0VMT0ciIHRvIHVwZGF0ZSBpdCBmcm9tIHRpbWUgdG8gdGltZSkKCmNvbW1pdCA3YWRlMGM2MzRhOTc5YzMyZmE5MWE3NGU4ZjU3NzVmMjQ2NTFmYmU2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE4OjA2OjQ4IDIwMDYgKzAyMDAKCiAgICBGaXggYnVnIGluIFBQQzQ0MCBOQU5EIGRyaXZlciBjcHUvcHBjNHh4L25kZmMuYwogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAyNCBPY3QgMjAwNgoKY29tbWl0IDhhZTNiNzEzYjIyODZlMGMzMjEzYjc4MDIwNjJlNGMxNTk5MDEwZGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNzoyNDo1NSAyMDA2ICswMjAwCgogICAgTWVyZ2Ugd2l0aCAvaG9tZS93ZC9naXQvdS1ib290L21hc3RlcgoKY29tbWl0IDQ3YTY5ODljMTA2ODVkMmFiM2VmY2Y5NTIyOGNlNTBkMmE0OTZkM2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNTozMjo1NyAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwCgpjb21taXQgM2E3OGUzZTc1YjYzM2VjYjY0MTMxMTRmZmQxMWUyZjAwMGM0ZjExZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjUxOjM2IDIwMDYgKzAyMDAKCiAgICBNb3ZlIGF0c3RrMTAwMCBmaWxlcyBpbnRvIHZlbmRvciBzcGVjaWZpYyBkaXJlY3RvcnkuCiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDEyIFNlcCAyMDA2Cgpjb21taXQgNmNjZWM0NDkyZTc3NDI4ZmQ2ZWFmZDNkZmU5NGZiZGYwOGU5MWQzNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjQyOjM3IDIwMDYgKzAyMDAKCiAgICBBZGQgQVRTVEsxMDAwIGFuZCBBVFNUSzEwMDIgYm9hcmQgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAwNiBTZXAgMjAwNgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDAwIHdpdGggdGhlIEFUU1RLMTAwMiBDUFUKICAgIGRhdWdodGVyYm9hcmQuCgogICAgQVRTVEsxMDAwIGlzIGEgZnVsbC1mZWF0dXJlZCBkZXZlbG9wbWVudCBib2FyZCBmb3IgQVQzMkFQIENQVXMuIEl0CiAgICBoYXMgdHdvIGV0aGVybmV0IHBvcnRzLCBhIGhpZ2ggcXVhbGl0eSBRVkdBIExDRCBwYW5lbCwgYSBsb3Vkc3BlYWtlciwKICAgIGFuZCBjb25uZWN0b3JzIGZvciBVU0FSVCwgUFMvMiwgVkdBLCBVU0IsIE1NQy9TRCBjYXJkcyBhbmQKICAgIENvbXBhY3RGbGFzaCBjYXJkcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhpcyBwYWdlOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy90b29scy5hc3A/ZmFtaWx5X2lkPTY4MgoKICAgIFRoZSBBVFNUSzEwMDIgaXMgYSBkYXVnaHRlcmJvYXJkIGZvciB0aGUgQVRTVEsxMDAwIHN1cHBvcnRpbmcgdGhlCiAgICBBVDMyQVA3MDAwIGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZjkzYWU3ODhjMzY0MGZjZGU1ZGIzODM0NzFkNDU1NDhmZjQwNjBkMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjMxOjI0IDIwMDYgKzAyMDAKCiAgICBBZGQgY29tbW9uIHNlcmlhbCBkcml2ZXIgZm9yIEF0bWVsIEFUMzIgYW5kIEFUOTEgY2hpcHMKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMDYgU2VwIDIwMDYKCiAgICBUaGlzIGlzIGEgZmlyc3QgYXR0ZW1wdCBhdCBjcmVhdGluZyBhIGNvbW1vbiBzZXJpYWwgZHJpdmVyIGZvciBBdG1lbAogICAgY2hpcHMuIEZvciBub3csIGl0IHN1cHBvcnRzIHRoZSBBVDMyQVA3MDAwIEFWUjMyIGNoaXAsIGJ1dCBpdCBzaG91bGQKICAgIGJlIHBvc3NpYmxlIHRvIHN1cHBvcnQgQVQ5MVJNOTIwMCBhbmQgb3RoZXIgQVJNLWJhc2VkIGNoaXBzIHdpdGggc29tZQogICAgbWlub3IgbW9kaWZpY2F0aW9ucy4KCiAgICBUaGVyZSdzIG5vdGhpbmcgZnVuZGFtZW50YWxseSBBVlIzMi1zcGVjaWZpYyBpbiB0aGlzIGRyaXZlciwgYnV0IGl0CiAgICBkb2VzIHVzZSBzb21lIGZlYXR1cmVzIHdoaWNoIGFyZSBjdXJyZW50bHkgb25seSBkZWZpbmVkIGZvciB0aGUKICAgIEFUMzJBUCBDUFUgcG9ydDoKICAgICAgKiBwbV9nZXRfY2xvY2tfZnJlcTogT2J0YWluIHRoZSBjbG9jayBmcmVxdWVuY3kgb2YgYSBnaXZlbiBkb21haW4KICAgICAgKiBnZC0+Y29uc29sZV91YXJ0OiBBICJzdHJ1Y3QgZGV2aWNlIiBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0CglyZWdpc3RlciBtYXBwaW5ncywgZ3BpbyByZXNvdXJjZXMgYW5kIGNsb2NrcyBhc3NvY2lhdGVkIHdpdGggdGhlCglVQVJUIGRldmljZS4KCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSBmZWF0dXJlcywgcGxlYXNlIHNlZSB0aGUgIkFUMzJBUAogICAgQ1BVIiBwYXRjaC4KCmNvbW1pdCA3MmEwODdlMDQ3MDVjMjZjYWQ5ODI4NzllYmQwNmI1MjgxYmY4MjVhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6Mjc6MzUgMjAwNiArMDIwMAoKICAgIEFkZCBBVDMyQVAgQ1BVIGFuZCBBVDMyQVA3MDAwIFNvQyBzdXBwb3J0CiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDA2IFNlcCAyMDA2CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBVDMyQVAgQ1BVIGZhbWlseSBhbmQgdGhlIEFUMzJBUDcwMDAKICAgIGNoaXAsIHdoaWNoIGlzIHRoZSBmaXJzdCBjaGlwIGltcGxlbWVudGluZyB0aGUgQVZSMzIgYXJjaGl0ZWN0dXJlLgoKICAgIFRoZSBBVDMyQVAgQ1BVIGNvcmUgaXMgYSBoaWdoLXBlcmZvcm1hbmNlIGltcGxlbWVudGF0aW9uIGZlYXR1cmluZyBhCiAgICA3LXN0YWdlIHBpcGVsaW5lLCBzZXBhcmF0ZSBpbnN0cnVjdGlvbi0gYW5kIGRhdGEgY2FjaGVzLCBhbmQgYSBNTVUuCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSB0aGUgIkFWUjMyIEFQIFRlY2huaWNhbCBSZWZlcmVuY2UiOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9yZXNvdXJjZXMvcHJvZF9kb2N1bWVudHMvZG9jMzIwMDEucGRmCgogICAgSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlIEFUMzJBUDcwMDAgY2hpcCBjb21lcyB3aXRoIGEgbGFyZ2Ugc2V0IG9mCiAgICBpbnRlZ3JhdGVkIHBlcmlwaGVyYWxzLCBtYW55IG9mIHdoaWNoIGFyZSBzaGFyZWQgd2l0aCB0aGUgQVQ5MSBzZXJpZXMKICAgIG9mIEFSTS1iYXNlZCBtaWNyb2NvbnRyb2xsZXJzIGZyb20gQXRtZWwuIEZ1bGwgZGF0YSBzaGVldCBpcwogICAgYXZhaWxhYmxlIGhlcmU6CgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Jlc291cmNlcy9wcm9kX2RvY3VtZW50cy9kb2MzMjAwMy5wZGYKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3YjY0ZmVmMzNjNjZiZTY0ODgyNmMwZmY5NzU4Mjk4ZWYxM2QwNjA0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6MjE6MTYgMjAwNiArMDIwMAoKICAgIEFkZCBBVlIzMiBhcmNoaXRlY3R1cmUgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCA2IFNlcCAyMDA2IDE2OjIzOjAyICswMjAwCgogICAgVGhpcyBwYXRjaCBhZGRzIGNvbW1vbiBpbmZyYXN0cnVjdHVyZSBjb2RlIGZvciB0aGUgQXRtZWwgQVZSMzIKICAgIGFyY2hpdGVjdHVyZS4gU2VlIGRvYy9SRUFETUUuQVZSMzIgZm9yIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMmRhMmQ5YTQ3NjYwNjNiOTg0OGYzYTM1YWQ2MDI1NDk5Y2Y4NzI2NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDEzOjU3OjMzIDIwMDYgKzAyMDAKCiAgICBVc2UgLWcgaW5zdGVhZCBvZiAtZ3N0YWJzIGluIEFGTEFHU19ERUJVRwogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAzMCBBdWcgMjAwNgoKICAgIEluIGNvbmZpZy5taywgLVdhLC1nc3RhYnMgaXMgdW5jb25kaXRpb25hbGx5IGFwcGVuZGVkIHRvIEFGTEFHUyBubwogICAgbWF0dGVyIHdoYXQgdGhlIHRhcmdldCdzIHByZWZlcnJlZCBkZWJ1Z2dpbmcgZm9ybWF0IGlzLiBUaGlzIHBhdGNoCiAgICBzaW1wbHkgcmVwbGFjZXMgLWdzdGFicyB3aXRoIC1nLCBzbyB0aGF0IHRoZSBkZWZhdWx0IGRlYnVnZ2luZyBmb3JtYXQKICAgIGZvciB0aGUgYXJjaGl0ZWN0dXJlIGlzIHVzZWQuCgpjb21taXQgOTY1ODI5ODcyMTY5YzI5OTYwMjM4NDBkOThlMWQ4NWFkMTQ4ZDYyOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDEzOjU1OjE4IDIwMDYgKzAyMDAKCiAgICBGaXgvd29ya2Fyb3VuZCBicm9rZW4gZGVwZW5kZW5jeSBoYW5kbGluZyB3aXRoIG1ha2UgMy44MQogICAgQmFzZWQgb24gcGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAyOSBBdWcgMjAwNiAxMToyMDozOSArMDIwMAoKY29tbWl0IDgzMThmYmY4Y2MzMDQxOGI2MjFlYTlmMzliODRiNGMxYTA4ZjAwM2EKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gT2N0IDIzIDIyOjE3OjA1IDIwMDYgKzAyMDAKCiAgICBGaXggc2VxdW9pYSBzZXBhcmF0ZSBvYmplY3QgZGlyZWNvcnkgYnVpbGRpbmcgcHJvYmxlbXMuCgpjb21taXQgM2RmYTljZmRjZWU3OGIzMGRhMzQzMjMxOGIzMjgyMWZmYWJlOTc0YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjAgMTc6MTY6MzUgMjAwNiAtMDUwMAoKICAgIFVzZSBnZW5lcmljIEkyQyByZWdpc3RlciBibG9jayBvbiA4NXh4IGFuZCA4Nnh4LgoKICAgIFJlcGxhY2UgcHJpdmF0ZSBJTU1BUCBJMkMgc3RydWN0dXJlcyB3aXRoIGdlbmVyaWMgcmVnIGJsb2NrCiAgICBhbmQgYWxsb3cgODZ4eCB0byBoYXZlIG11bHRpcGxlIEkyQyBkZXZpY2UgYnVzc2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjUwMTI4MjdkZjExY2EwYzliZTFkZjVmOGIxNTNlMTg4ZGMyZmE3YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjAgMTU6NTQ6MzQgMjAwNiAtMDUwMAoKICAgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncyBvbiBhIGZldyA4NXh4IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIwNDc2NzI2ODRjZjg1Y2I2Zjk2YTFmYmM5OTMxODBhYWFmMTlhOTkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE1OjUwOjE1IDIwMDYgLTA1MDAKCiAgICBDb252ZXJ0ZWQgYWxsIDg1eHggYm9hcmRzIHRvIHVzZSBhIGNvbW1vbiBGU0wgSTJDIGRyaXZlci4KICAgIEludHJvZHVjZWQgQ09GSUdfRlNMX0kyQyB0byBzZWxlY3QgdGhlIGNvbW1vbiBGU0wgSTJDIGRyaXZlci4KICAgIEFuZCByZW1vdmVkIGhhcmQgaTJjIHBhdGggZnJvbSBhIGZldyB1LWJvb3QubGRzIHNjaXB0cyB0b28uCiAgICBNaW5vciB3aGl0ZXNwYWNlIGNsZWFudXBzIGFsb25nIHRoZSB3YXkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDQ1ZjY5ZTM2MmIwNTg5MmM5ZTkyYTc5MDdlNTgyMDk5NTYxMmFhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOSAxMjowMjoyNCAyMDA2IC0wNTAwCgogICAgUmV3cml0ZSBhIHNlcmllcyBvZiBnb3RvIHN0YXRlbWVudHMgYXMgYSBzZXF1ZW5jZXMgb2YKICAgIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zIGluc3RlYWQuCgogICAgVXNlIGNvbnNpc3RlbnQgcmV0dXJuIGNvZGUgMC8tMSBmb3IgZ29vZC9iYWQgaW5kaWNhdG9ycy4KCiAgICBJbmNsdWRlIG9uZSBmZXdlciBmaWxlIGlmIHRoZSBkcml2ZXIgaXNuJ3QgdXNlZCBhdCBhbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MjM3YzAzM2IwMmZlMjk1ODgwNDM1ZjFlYjgwODE5YTBjOTg3NTMyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOSAxMTowMjoxNiAyMDA2IC0wNTAwCgogICAgTW92ZWQgaTJjIGRyaXZlciBvdXQgb2YgY3B1L21wYzg2eHgvaTJjLmMgaW50byBkcml2ZXJzL2ZzbF9pMmMuYwoKICAgIGluIGFuIGVmZm9ydCB0byBiZWdpbiB0byB1bmlmeSB0aGUgdW1wdGVlbiBGU0wgSTJDIGRyaXZlcnMgdGhhdAogICAgYXJlIGFsbCBvdGhlcndpc2UgdmVyeSBzaW1pbGFyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTNhN2ZjZGYzN2Y2ZWE5NDI5YWUwNGM5ZGY2N2Y4OTMzNjRjZmU0YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTE6MzM6NTIgMjAwNiAtMDUwMAoKICAgICogRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MgZm9yIGdjYyA0LjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmOWUxZjViOWU2ZjljZTgxMGY1ZThiZjI5NjFjOTU0MmE1ODY1YzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMTcgMDY6MTQ6MzEgMjAwNiArMDIwMAoKICAgIEFkZCBtb25pdG9yIGZ1bmN0aW9ucyBmb3IgaW5kaXJlY3QgYWNjZXNzIHRvIFBQQzQ0MCBEQ1IncwogICAgUGF0Y2ggYnkgTGVvbmlkIEJhcnl1ZGluLCAxMiBPY3QgMjAwNgoKY29tbWl0IDVmMzI0OWEwYTE2OGU0NDZhNGNjOTY2OWIyYmNlMGJjNDU2ZjBhMDkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDEzIDE2OjQ3OjUzIDIwMDYgLTA1MDAKCiAgICBGaXhlZCBsZWFkaW5nIHdoaXRlc3BhY2UgaXNzdWVzLgogICAgUmVtb3ZlZCBzcHVyaW91cyBMQVdBUiB0aGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlZTkwY2I3N2UwMWQ2ZThjY2QzN2UxYmQ5NjY3ODU5Nzg3NWMzOTEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDEyIDEwOjQyOjM2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWVkZWQgaW5jbHVkZSBmaWxlcyBhbmQgbG9jYWwgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZWFmM2E1ZmY0OTYwYTQ2ZjNhOTA2MzU2OGJhMmFmNzg4M2YwN2M1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgT2N0IDEwIDAwOjIzOjMyIDIwMDYgLTA2MDAKCiAgICBGaXggcG9zc2libGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nLgoKICAgIFdoZW4gQ09ORklHX09GX0ZMQUdfVFJFRSBpcyBzZXQsIHRoZSBjb21waWxlciBjb21wbGFpbnMgdGhhdCAnbGVuJyBpbgogICAgZG9fYm9vdG1fbGludXgoKSBtYXkgYmUgdW5pbml0aWFsaXplZC4gIFRoZXJlIGlzIG5vIHBvc3NpYmlsaXR5IGluIHRoZQogICAgY3VycmVudCBjb2RlIHRoYXQgbGVuIHdpbGwgZ2V0IHVzZWQgdW5pbml0aWFsaXplZCwgYnV0IHRoaXMgZml4IGZvbGxvd3MKICAgIHRoZSBleGlzdGluZyBjb252ZW50aW9uIG9mIHNldHRpbmcgYm90aCBsZW4gYW5kIGRhdGEgdG8gemVybyBhdCB0aGUgc2FtZQogICAgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzM3NmViODdhYWE2MDFmNzI4ZjliOGU1ZTljZDI3MTFhNjdmNTI5ZQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMTEgMTU6MTM6MDEgMjAwNiAtMDUwMAoKICAgICogRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MgZm9yIGdjYyA0LjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmNjUxYmFhMzY1ZTU0NDcyNDZhYWQ2YTYzM2NjZDY2N2NmMjRhMzkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDExIDEwOjEwOjQzIDIwMDYgLTA1MDAKCiAgICBNb3ZlICJhciIgZmxhZ3MgdG8gY29uZmlnLm1rIHRvIGFsbG93IGZvciBzaWxlbnQgIm1ha2UgLXMiCgpjb21taXQgMWZkNTY5OWE0YTI0ZjVjMWRhYjFiMzJmNDgwYmFjZTFlYmI5ZmMzZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MTk6MDMgMjAwNiAtMDUwMAoKICAgIENvZGluZyBzdHlsZSBjaGFuZ2VzIHRvIHJlbW92ZSBsb2NhbCB2YXJpYmxlIGJsb2NrcwogICAgYW5kIHJlZm9ybWF0IGEgYml0IG5pY2VyLgoKY29tbWl0IDhiMjgzZGJiM2EwOGQxYjhkNDA2YmMxNWYxMTllMDgxYjNlMjYwNmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE2OjA0IDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBpc3N1ZXMuCgpjb21taXQgN2IzODJiNzEyNWYyMzk3Y2NlNjMyNTNkZjYyZjE4M2UzZGZhMjc3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MTQ6NDUgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGlzc3Vlcy4KCmNvbW1pdCBlMTAzOTBkZGQ3MzZiMGRhZDE1MjhlZWM0YjBmZTM1YzA4MjcxMzlhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzowNjo1MyAyMDA2IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgaXNzdWVzLgoKY29tbWl0IDg5ODc1ZTk2YmEzZjAyMzE1N2JmNTBkNWY4ZTMzYmYyNTQ5NjRhNzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjAzOjQzIDIwMDYgLTA1MDAKCiAgICBSYW4gbGluZGVudCBhbmQgY2xlYW5lZCB1cCB3aGl0ZXNwYWNlIGlzc3Vlcy4KICAgIEZvcm1hdCBmb3IgODAtY29sdW1ucyB0b28uCgpjb21taXQgMzMzOTYxYWU3MDk1ZmM2NmQ4YTA0MWZjZTFhYzllZTg3M2IwOWQ4NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MDI6MjIgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGFuZCA4MC1jb2wgaXNzdWVzLgoKY29tbWl0IDVjOTEyY2IxYzMxMjY2YzY2Y2E1OWIzNmY5YjZmODcyOTY0MjFkNzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgNyAxMTozNjo1MSAyMDA2ICswMjAwCgogICAgQ0ZHX05BTkRfUVVJRVRfVEVTVCBhZGRlZCB0byBub3Qgd2FybiB1cG9uIG1pc3NpbmcgTkFORCBkZXZpY2UKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCA1YmM1MjhmYTRkYTc1MWQ0NzIzOTdiMzA4MTM3MjM4YTY0NjVhZmQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzU6MjUgMjAwNiArMDIwMAoKICAgIFVwZGF0ZSBBTFBSIGNvZGUgKE5BTkQgc3VwcG9ydCB3b3JraW5nIG5vdykKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCA3N2Q1MDM0ODQ3ZDMyODc1M2I4MGM0NmI4M2Y5NjBhMTRhMjZmNDBlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzM6MDMgMjAwNiArMDIwMAoKICAgIFJlbW92ZSBjb21waWxlIHdhcm5pbmdzIGluIGZwZ2EgY29kZQogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAwNyBPY3QgMjAwNgoKY29tbWl0IGYzNDQzODY3ZTkwZDI5NzlhN2RkMWM2NWIwZDUzNzc3N2UxZjk4NTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgNyAxMTozMDo1MiAyMDA2ICswMjAwCgogICAgQWRkIENPTkZJR19CT0FSRF9SRVNFVCB0byBjb25maWd1cmUgYm9hcmQgc3BlY2lmaWMgcmVzZXQgZnVuY3Rpb24KICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCBmNTVkZjE4MTg3ZTdhNDVjYjczZmVjNDM3MGQxMjEzNWU2NjkxYWUxCkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBTZXAgMjkgMDg6MjM6MTIgMjAwNiArMDEwMAoKICAgIEZpeCBtaXNzaW5nIHRDeWNsZS9tb2RmcmVxIGNhbGN1bGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgyNzJkYzJmNThmMjQ3M2Q4OTk1ZmNjOWI5MTY0NDBjZmJhMDgwZjAKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMTMgMTA6MzM6MzUgMjAwNiAtMDUwMAoKICAgIFVwZGF0ZWQgY29uZmlnIGhlYWRlcnMgdG8gYWRkIGRlZmF1bHQgRkRULWJhc2VkIGJvb3RpbmcKCmNvbW1pdCAwOWYzZTA5ZTllYmNmYTc5MTljYTg5MzFhNGI1NTA0ZmFkZDFmMWQzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjM0OjE4IDIwMDYgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgZVRTRUMgMyAmIDQgb24gODU0OCBDRFMKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIHVzaW5nIGVUU0VDIDMgYW5kIGVUU0VDIDQgb24gdGhlIDg1NDggQ0RTLgogICAgICBUaGlzIHdpbGwgb25seSB3b3JrIG9uIHJldiAxLjMgYm9hcmRzIChidXQgZG9lc24ndCBicmVhayBvbGRlciBib2FyZHMpCiAgICAqIENsZWFuZWQgdXAgc29tZSBjb21tZW50cyB0byByZWZsZWN0IHRoZSBleHBhbmRlZCByb2xlIG9mIHRzZWMKICAgICAgaW4gb3RoZXIgc3lzdGVtcwoKY29tbWl0IDA4NGQ2NDhiMTA5Yzg5ODRmODM2NzQwNDNjMWE3ZmEzODg1ZWY4MDEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMTMgMTA6MzM6NTYgMjAwNiAtMDUwMAoKICAgIEFkZGVkIGNvZGUgdG8gc3VwcG9ydCAyLjYuMTggUENJIGNoYW5nZXMgaW4gdS1ib290CgogICAgKiBBZGRlZCBjb2RlIHRvIHN3aXp6bGUgdGhlIElSUSBtYXAgZm9yIHRoZSBQQ0kKCmNvbW1pdCBhZmJkYzY0OWY4NzUxZTRmNGYxYTZmNTI3ZWRmZTEzOTc3M2YyYzE1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOSAwOTozNDoxMCAyMDA2IC0wNTAwCgogICAgTW9kaWZpZWQgbWFrZWZpbGUgZm9yIG5ldyBidWlsZCBtZWNoYW5pc20uCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTRiYTZhNzk4YmViNzUzZTdhODY0NTAwNDE0ZmNjMmQxOThiOGJjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAxNCAwODo0MDozNiAyMDA2IC0wNTAwCgogICAgSGFuZGxlIDg2eHggU1ZSIHZhbHVlcyBhY2NvcmRpbmcgdG8gdGhlIG5ldyBSZWZlcmVuY2UgTWFudWFsLgogICAgQm90aCA4NjQxIGFuZCA4NjQxRCBoYXZlIFNWUiA9PSAweDgwOTAsIGFuZCBhcmUgZGlzdGluZ3Vpc2hlZAogICAgYnkgdGhlIGJ5dGUgaW4gYml0cyAxNi0yMyBpbnN0ZWFkLgogICAgVGhhbmtzIHRvIEphc29uIEppbiBmb3Igbm90aWNpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OGM4ZjQ5MjFmYzQ3ZmIwZWIyMzg0YjE2NTg2ZjFiZDdmMjc1YmU3CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyOCAxNDoyNTozMSAyMDA2ICswODAwCgogICAgRml4ZWQgYW4gT0YtdHJlZSBvZmYtYnktb25lIGJ1ZyB3aGVuIGFkZGluZyBhIG5ldyBwcm9wZXJ0eSBuYW1lLgogICAgVGhpcyBidWcgd2lsbCBjYXVzZSB0aGUga2VybmVsIGJvb3RpbmcgdG8gcGF1c2UgYSBsb25nIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIChjaGVycnkgcGlja2VkIGZyb20gMmYxNTc3NmNjYzZkYzMyMzc3ZDhiYTk2NTJiOGY1ODA1OWMyN2M2ZCBjb21taXQpCgpjb21taXQgOWJmZjdhNjlhODg1YWRlYmJkMmJkNDU5OTA0OTRlYzRjZjk5OGEzMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjkgMTE6MDU6MDkgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSB0cmFpbGluZyBlbXB0eSBsaW5lcy4KCmNvbW1pdCBjZDZkNzNkNWI4OTVhNTkzNWFjNGZkZTBhMzU2Mjg4MTQyYTU4NGUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyOSAwOTo0ODo0OSAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIGJvZ3VzIG1zeW5jIGFuZCB1c2Ugdm9sYXRpbGUgYXNtLgoKY29tbWl0IDc3OGQ0NTA0OWNlNTkyN2I2NWIzZmYxZDhlNjY5MmI2NTRiZGQ0OWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDI5IDA4OjE3OjE0IDIwMDYgLTA1MDAKCiAgICBBZGQgbXlzZWxmIGFzIG1haW50YWluZXIgZm9yIE1QQzg2NDFIUENOLgoKY29tbWl0IDJmMTU3NzZjY2M2ZGMzMjM3N2Q4YmE5NjUyYjhmNTgwNTljMjdjNmQKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDI4IDE0OjI1OjMxIDIwMDYgKzA4MDAKCiAgICBGaXhlZCBhbiBPRi10cmVlIG9mZi1ieS1vbmUgYnVnIHdoZW4gYWRkaW5nIGEgbmV3IHByb3BlcnR5IG5hbWUuCiAgICBUaGlzIGJ1ZyB3aWxsIGNhdXNlIHRoZSBrZXJuZWwgYm9vdGluZyB0byBwYXVzZSBhIGxvbmcgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU1Njc4MDZiNjdkMGFlODM0OTNhYTg4MjNhZDNiNmM5MTRmNTgxZDcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDI1IDE0OjM4OjM0IDIwMDYgLTA0MDAKCiAgICBDaGFuZ2UgcmFtZGlza2FkZHIgYW5kIGR0YmFkZHIKICAgIFJlbW92ZSBQRVggZmx1ZmYgY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjJiNzg0MjFkOWRiNDljMjFhODIxYWY4YTE5YzIxYzFmN2RmYjI5ZQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTM6MzI6NDUgMjAwNiAtMDUwMAoKICAgICogQW5vdGhlciBzbWFsbCBmaXggZm9yIGJvb3Rpbmcgd2l0aCBkaXNhYmxlX29mCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0YTdjYzBmMjE5MThlNmVjZjA3ZWQ1NzA3NWQ2N2RmMmM0YTEyOTljCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMyAxMTowNDo0MyAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBhbmQgbGluZGVudCBuZXcgQUhDSSBkcml2ZXIuCgpjb21taXQgZGFiZjllZjhjMTBiNGRlYWQ1ZWYyMTA2ZWY3NDJiMWMwNmI1NDJkZQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxqYXNvbkBidXMuYXAuZnJlZXNjYWxlLm5ldD4KRGF0ZToJV2VkIEF1ZyAyMyAxOToxNToxMiAyMDA2ICswODAwCgogICAgQWRkIEFIQ0kgZGVmaW5lIGFuZCBzYXRhIHN1cHBvcnQgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ3ODJhYzgwYjAyZjBkMDFhZmQzMDllMjIwMGRkM2M3MDM3ZjJiYTQKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8amFzb25AYnVzLmFwLmZyZWVzY2FsZS5uZXQ+CkRhdGU6CVdlZCBBdWcgMjMgMTk6MTA6NDQgMjAwNiArMDgwMAoKICAgIEFkZCBBSENJIHN1cHBvcnQgdG8gdS1ib290CgogICAgQWRkIEFIQ0kgc3VwcG9ydCBpbiB1LWJvb3QsIGVuYWJsZSB0aGUgc2F0YSBkaXNrIGNvbnRyb2xsZXJzIHdoaWNoCiAgICBmb2xsb3dpbmcgdGhlIEFIQ0kgcHJvdG9jb2wuCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW48amFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDhlYTJhY2Y1ZjEzN2NhZTk5NDE3ZGY0ZjU3M2QwMzZlZTM4NDY2OApBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTc6NTQ6MzIgMjAwNiArMDgwMAoKICAgIEFkZCBkdGIgYm9vdC11cCBwYXJhbWV0ZXIgdG8gZGVmYXVsdCBib290IGNvbW1hbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjkzNzc1YzIwMzZiOTliYWEzOTBlYTQyNWM0NzcxODk1YmJjNjNjNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTg6MjY6MDggMjAwNiAtMDUwMAoKICAgIENsZWFudXAgZXZlbiBtb3JlIHBvb3JseSBpbnRyb2R1Y2VkIHdoaXRlc3BhY2UuCgpjb21taXQgYWU2MjQxNjg1Y2JjZjBjNzlhMzYzNjUzMGQyY2VhYjFmYjI5MWE5NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTg6MDc6MDAgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgbW9yZSBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IDJjMzNlOGExYzUzNWIzYWU5MWNmMGIyODQ0ODA2MDBiZjNmNTdjNTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE3OjU0OjA1IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIHBvb3JseSBpbnRyb2R1Y2VkIHdoaXRlc3BhY2UuCgpjb21taXQgODBlOTU1YzdkZDk4ZjRiNGZkMjNjMjExM2NhZjc1ZWQyYjc3YjViMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTI6MjU6MjcgMjAwNiAtMDUwMAoKICAgIEdlbmVyYWwgaW5kZW50IGFuZCB3aGl0ZXNwYWNlIGNsZWFudXBzLgoKY29tbWl0IGZmZmYzYWU1NmY1ODQyY2EzNjc5ZTRjZTc5MjJiODE5YTg3YWFkOWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDEyOjA2OjE4IDIwMDYgLTA1MDAKCiAgICBHZW5lcmFsIGluZGVudCBhbmQgd2hpdGVzcGFjZSBjbGVhbnVwcy4KCmNvbW1pdCA0MWEwZThiMzA0ZDNmZjU1ZmUyN2EyMzA1MDdhYWM3OTY4NDAxNmFjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxMDo0MjoyMSAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBjb21waWxlciB3YXJuaW5ncy4KCmNvbW1pdCA1ZGU2MmM0N2E4NjI4YjNkYTRkNzNmN2MwNzAyN2YzMmEzMzQyZDQwCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAwOTozMTo1OSAyMDA2IC0wNTAwCgogICAgRml4IGRpc2FibGVfb2YgYm9vdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODdhNDQ5YzhhYzM5NjQyMGNiMjQyNjBmNzE3ZWE5ZTZmYWE4MjA0NwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMDk6MjM6NTUgMjAwNiAtMDUwMAoKICAgIFN1cHBvcnQgZm9yIEZEVCBpbiB1SW1hZ2UgZm9ybWF0LCBlcnJvciB3aGVuIHVzaW5nIEZEVCBmcm9tIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NWMyOTljMzgzNjlkMDFhZGRkNWUwNTRiOGExNjIxN2I3MGY0YTg2CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNSAxNToxMjo1NSAyMDA2IC0wNDAwCgogICAgVW5sb2NrIGNhY2hlIGJlZm9yZSBrZXJuZWwgc3RhcnRzIHVwIGZvciBNUEM4Nnh4Cgpjb21taXQgNjcyNTY2NzhmMDBjMDliMGE3ZjE5ZTg2MmU1YzE4NDc1NTNkMzFiYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTM6MTUgMjAwNiAtMDQwMAoKICAgIENvcHkgR2xvYmFsIERhdGEgUG9pbnRlciB0byByMjkgZm9yIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSCgpjb21taXQgMWM4ZjZkOGZiMDI4ZjE1NjA5NGQwNWYyZDE0Mjk4ZTY0NzkzNjRhYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTI6NTUgMjAwNiAtMDQwMAoKICAgIFVubG9jayBjYWNoZSBiZWZvcmUga2VybmVsIHN0YXJ0cyB1cCBmb3IgTVBDODZ4eAoKY29tbWl0IDBkOWNjYzU1ZWRmOWE3ZjNjNWIyYjYyNjM1ODBhNmVhOGQ3MDJhMDQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEzOjE1IDIwMDYgLTA0MDAKCiAgICBDb3B5IEdsb2JhbCBEYXRhIFBvaW50ZXIgdG8gcjI5IGZvciBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUgoKY29tbWl0IDg2YzhlMTdmMjVlOTcyYTdlMjcyOTUwYTA3MzVmYWQ4NGUwODJiODgKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE2IDEzOjU5OjQ3IDIwMDYgLTA1MDAKCiAgICAqIEZpeCBkaXNhYmxlX29mIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI1Yzc1MWU5YWRjODZlMjJmZTNiNWI0N2NmMjgwNjM3OWI1NzVkYjcKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE2IDEwOjU0OjA5IDIwMDYgLTA1MDAKCiAgICAqIFN1cHBvcnQgZm9yIEZEVCBpbiB1SW1hZ2UgZm9ybWF0LCBlcnJvciB3aGVuIHVzaW5nIEZEVCBmcm9tIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OTk2MjBjMmQ2NmQ0ZWVmM2IyYTAwMzRkMDYyZTcxZDQ1ZDg4NmM5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE1IDE0OjIyOjM1IDIwMDYgKzAyMDAKCiAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgQUxQUiBib2FyZCBmcm9tIFByb2RyaXZlCiAgICBOQU5EIG5lZWRzIHNvbWUgYWRkaXRpb25hbCB0ZXN0aW5nCiAgICBQYXRjaCBieSBIZWlrbyBTY2hvY2hlciwgMTUgQXVnIDIwMDYKCmNvbW1pdCBmMGZmNDY5MmZmMzM3MmRlYzU1MDc0YThlYjQ0NDk0M2FiMDk1YWJiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE1IDE0OjE1OjUxIDIwMDYgKzAyMDAKCiAgICBBZGQgRlBHQSBBbHRlcmEgQ3ljbG9uZSAyIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhlaWtvIFNjaG9jaGVyLCAxNSBBdWcgMjAwNgoKY29tbWl0IGZlY2YxYzdlNGRlMWIyNzc5ZWRjMTg3NDJiOTFjMjJiZGMzMmI2OGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDE0IDE1OjMzOjM4IDIwMDYgLTA1MDAKCiAgICBGaXggQkFUMCB0byBhY3R1YWxseSBiZSBjYWNoZWFibGUsIG5vbi1ndWFyZGVkIGFzIGRvY3VtZW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MGJjODM1NTlkYjU3NDU2ODE5MDlmZDczODJhZTUwOTU2N2UxMTZkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA5IDE1OjMyOjE2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmVkIE1QQzg2NDFIUENOIERUUyBzb3VyY2UgZmlsZSBmcm9tIGJ1aWxkLgogICAgSXQgaXMgbm8gbG9uZ2VyIGxpbmtlZCBpbnRvIFUtQm9vdDsgaXRzIHNvdXJjZXMgYXJlCiAgICBub3cgbG9jYXRlZCBpbiB0aGUga2VybmVsIHRyZWUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNGMzYzBlMDFkYmYxZjhjYzJiZDA4ZGU5MmYyYjg5YmE4NDkyMWViCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NzowMyAyMDA2IC0wNTAwCgogICAgKiBTd2l0Y2hlZCBkZWZhdWx0IFBDSSBzcGVlZCBmb3IgODU0MCBBRFMgYmFjayB0byAzM01IegoKICAgICogQWRkZWQgY29tbWVudHMgYW5kIGEgcHJpbnRmIHRvIHdhcm4gdGhhdCBQQ0ktWCB3b24ndAogICAgICB3b3JrIGF0IDMzTUh6CiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNmM1ZTEzNzNiNmVhMGJiMzdhMThlNGFlZWNlYzAwNjEzZDFjZDM5CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjozNSAyMDA2IC0wNTAwCgogICAgKiBGaXhlZCBhIGJ1ZyB3aGVyZSA4NTU1IFBDSSBjb2RlIHVzZWQgdGhlIG9sZCB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gbmFtZXMgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMWRmZmZkOGMyNmY4ZWNkZDYzMGEwYWU0YzgzNGU3NTFlNGU0NTIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ2OjEzIDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFZJQSBjb25maWd1cmF0aW9uIHRhYmxlCgogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBQQ0kyIG9uIENEUwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzg4ZjlmZTY2YjY0MjQ3ZTViNmEzODQxMGJhMzE1Y2EyNTU5NmQxNgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6NDEgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgUENJIG1lbW9yeSBkZWZpbml0aW9ucyBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTcwNzRlZDk2NTUzMDliNjQyMzFiYzJjZWU2OWZlODUzOTlmODA1NQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6MTcgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgaW5pdGlhbGl6aW5nIHNlY29uZCBQQ0kgYnVzIG9uIDg1eHggUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYwZTZmNTdmNzFiM2M0ZmRkMTMwMjhlYjAzYzNmM2U5MTkyNmRkYTIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjQ5IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFBDSS1YICNkZWZpbmVzIGZvciBQQ0ktWCBpbml0aWFsaXphdGlvbiBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTRlMTE1NThiODEwZWYyY2RkZmZkZjdiOWQ4NmJjMTEzMDQ0MTk2MApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDQ6MjMgMjAwNiAtMDUwMAoKICAgICogTWFkZSBzdXJlIHRoZSBjb2RlIHdoaWNoIGRpc2FibGVzIHByZWZldGNoIGZvciBQQ0kgZGV2aWNlcyBzZXRzIHRoZSBzaXplIG9mIHRoZSBwcmVmZXRjaCByZWdpb24gdG8gMCBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGUxNjM4N2RiMWQ0YWFjZDViZjM1Y2I2ZDdjMTk0Mjc2NWMwMzQ3YgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDM6MzYgMjAwNiAtMDUwMAoKICAgICogQWRkIEZsYXQgRGV2IFRyZWUgY29uc3RydWN0aW9uIGZvciBNUEM4NXh4IEFEUyBhbmQgQ0RTIGJvYXJkcyBQYXRjaCBieSBKb24gTG9lbGlnZXIgMTctSmFuLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg1NWU2ZmIwNzNmOWQwNGZlNGE3ZjA2YzEwN2VjYmFjNjM0NGRkZDQKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjAwIDIwMDYgLTA1MDAKCiAgICAqIFJlbW92ZWQgdGhlIG9mdHJlZS5kdHMgZm9yIHN0eHh0eCBpbiBsaWdodCBvZiB0aGUgY2hhbmdlcyB0byB0aGUgZmxhdCBkZXZpY2UgdHJlZSBoYW5kbGluZyBjb2RlIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA1NDk4ZDkwMzEyYWFkOWY2YmRiZjA0Nzk4NjAyN2MzNWIwM2NkMTYzCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MjoyNCAyMDA2IC0wNTAwCgogICAgKiBQYXRjaCB0byBtb2RpZnkgZnRfYnVpbGQuYyB0byB1cGRhdGUgZmxhdCBkZXZpY2UgdHJlZXMgaW4gcGxhY2UgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDAyNjc3NjhlZGRjNWNhN2JjMTg2NWJjNDBjODY2ODI5YWM1ZWZiZmUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQxOjM3IDIwMDYgLTA1MDAKCiAgICAqIE1vZGlmeSBib290bSBjb21tYW5kIHRvIHN1cHBvcnQgYm9vdGluZyB3aXRoIGZsYXQgZGV2aWNlIHRyZWVzIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA4ZmM4YmQyY2M0NzliNmNkMTg4ZmRlZGU0MDEwZTBlMDUyOTcwYjhhCkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOSAxNDozMzo1MCAyMDA2ICswMTAwCgogICAgQWRkIFJhcGlkaW8gc3VwcG9ydCBmb3IgdGhlIE1QQzg2NDFIUENOCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTFhNDE0YzdkMWZiMGVhYzkxMjU5MmNkOTk1YjMwYzlmMjMwNDVjOQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDggMTE6MzI6NDMgMjAwNiArMDEwMAoKICAgIEZpeCBjYXNsYXQgY2FsY3VsYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDlkMzA3M2U3NDE1MzI3OGU3OTA0YTcwODE5YmJlZjdkZjUwZTFhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE2OjE3OjU2IDIwMDYgLTA1MDAKCiAgICBDb252ZXJ0IHRvIG1hYy1hZGRyZXNzIGluIGV0aGVybmV0IG5vZGVzLgoKY29tbWl0IDcxNzQ4YWY4MzNjYTEwMTdlZGYxNDE1YmUzNzYzNjZmZjI5MzdkMTcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjM1IDIwMDYgLTA0MDAKCiAgICBDb3JyZWN0IHRoZSBpcnEgdmFsdWUgb2YgRFVBUlQyCgpjb21taXQgOWNiM2U4ODE2YWU0ZDg1NGU3ZGMyMjEyOGMzZWVhM2Q3MGJiOTgyYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMTI6NDE6NDEgMjAwNiAtMDQwMAoKICAgIENoYW5nZSB0aGUgc3BhY2Ugc2l6ZSBvZiBQRVggSU8gaW4gUkVBRE1FCgpjb21taXQgMjM5ZGIzN2M5NGY3YTkyOTQxYzQ0NjVmZWNlYjg2N2M2MDkyNDFjNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMTI6NDE6MTggMjAwNiAtMDQwMAoKICAgIE1vdmUgZ2V0X2JvYXJkX3N5c19jbGsgdG8gYm9hcmQgZGlyZWN0b3J5Cgpjb21taXQgNDkyOTAwYjk4NTQzOWZiY2UxYTExOGFmZGUxZTM1ZGVmODcwZGIwMwpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDA5OjAzOjU0IDIwMDYgKzAxMDAKCiAgICBGaXggODY0MUhQQ04gcG9sbHV0aW9uCgpjb21taXQgNTE1YWI4YTYyZTg1NzRlMmJhYmM2ZThkY2M0MzU0NGFkMjIxYzViMgpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDA4OjE2OjA2IDIwMDYgKzAxMDAKCiAgICBGaXggODY0MUhQQ04gdGltZWJhc2UKCmNvbW1pdCBjODYzNjBiODMwZjFlZWNkN2E3MjIwODU3NWRkZTRmNTc4NzlmYWVhCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwMDowMTozNCAyMDA2ICswODAwCgogICAgRml4ZWQgT0YgZGV2aWNlIHRyZWUgb2YgbXBjODZ4eGhwY24gYm9hcmQuCgogICAgVGhlIGNoYW5nZXMgd29ya3MgaW4gd2l0aCBrZXJuZWwgaXJxIG1hcHBpbmcgcmV3b3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmVhM2YyOGQyODU5NDJiZjNmN2FiMzM5Y2U4NTE3OGRlZDU0NDIyNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTIgMTA6NDg6MDUgMjAwNiAtMDQwMAoKICAgIEFkZCBzdXBwb3J0IGZvciByZWFkaW5nIGFuZCB3cml0aW5nIG1hYyBhZGRyZXNzZXMgdG8gb3IgZnJvbSBJRCBFRVBST00uCgogICAgQWRkZWQgY29kZSBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBNYWMgYWRkcmVzc2VzIHRvL2Zyb20gSUQgRUVQUk9NKDB4NTcpLgogICAgV2l0aCBhdHRhY2hlZCBwYXRjaCwgd2UgY2FuIHVzZSBjb21tYW5kICJtYWMvbWFjIHJlYWQvbWFjIHNhdmUvIgogICAgdG8gcmVhZCBhbmQgd3JpdGUgRUVQUk9NIHVuZGVyIHUtYm9vdCBwcm9tcHQuCgogICAgVS1ib290IHdpbGwgY2FsY3VsYXRlIHRoZSBjaGVja3N1bSBvZiBFRVBST00gd2hpbGUgYm9vdHVwLAogICAgaWYgaXQgaXMgcmlnaHQsIHRoZW4gdS1ib290IHdpbGwgY2hlY2sgd2hldGhlciB0aGUgbWFjIGFkZHJlc3MKICAgIG9mIGVUU0VDMC8xLzIvMyBpcyBhdmFpbGFsYmUgKG5vbi16ZXJvKS4KCiAgICBJZiB0aGVyZSBpcyBtYWMgYWRkcmVzcyBhdmFpbGFiZSBpbiBFRVBST00sIHUtYm9vdCB3aWxsIHVzZSBpdCwKICAgIG90aGVyZXdpc2UsIHUtYm9vdCB3aWxsIHVzZSB0aGUgbWFjIGFkZHJlc3MgZGVmaW5lZCBpbgogICAgTVBDODY0MUhQQ04uaC4gVGhpcyBtYXRjaGVzIHRoZSByZXF1aXJlbWVudCB0byBzZXQgdW5pcXVlIG1hYyBhZGRyZXNzCiAgICBmb3IgZWFjaCBUU0VDIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmNiMjhlNzYzNDE1ZTBlNGU2NmIwZjQ1ODQyZDE1NTdhZTE5OGU1ZQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCAxMyAxMDozNToxMCAyMDA2IC0wNTAwCgogICAgRml4ZWQgaW5pdHJkIGlzc3VlIGJ5IGRlZmluZSBiaWcgUkFNCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU2Y2QyYTE3ODVkNzRlYzNkMzBhODZmMWNiMzYwYmU4ZGU0NzgxNTEKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDcgMTA6MDE6NDUgMjAwNiAtMDUwMAoKICAgIFdlIG1hZGUgYSB1LWJvb3QgcGF0Y2ggdG8gZml4IHRoZSBoYW5nIHVwIGlzc3VlCiAgICB3aGVuIGJvb3RpbmcgZmlsZXN5c3RlbSBmcm9tIHJhbWRpc2suCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4NDMzY2NjNTg1MGVlNzA1NDlhZjBiMmJjNWI5MjAzNTVlZjUzODgKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ3OjAzIDIwMDYgLTA1MDAKCiAgICAqIFN3aXRjaGVkIGRlZmF1bHQgUENJIHNwZWVkIGZvciA4NTQwIEFEUyBiYWNrIHRvIDMzTUh6CiAgICAqIEFkZGVkIGNvbW1lbnRzIGFuZCBhIHByaW50ZiB0byB3YXJuIHRoYXQgUENJLVggd29uJ3QKICAgICAgd29yayBhdCAzM01IegogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTRjMmEwZWIwYzNlM2ZmYmY4MjQ4MDAxODRlZTQyYmRjOTlkNWIxOQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MzUgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgYSBidWcgd2hlcmUgODU1NSBQQ0kgY29kZSB1c2VkIHRoZSBvbGQgdmFyaWFibGUgYW5kCiAgICAgIGZ1bmN0aW9uIG5hbWVzCiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYmZjN2NlNzU2Yjg4ZWIyNmU1NTM3YmM3YjYyNWM0NDVjNmRjZmFjCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjoxMyAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBWSUEgY29uZmlndXJhdGlvbiB0YWJsZQogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBQQ0kyIG9uIENEUwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTJjN2E2OGI4ZDU4N2ViY2Y1YTZiMDUxYjU4YjNkM2ZmYTM3N2RkYwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6NDEgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgUENJIG1lbW9yeSBkZWZpbml0aW9ucwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDg3NDU0NjA5ZTQ3Mjk1NDQzYWY3OTNhMjgyY2RkY2Q5MWE1ZjQ5YwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6MTcgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgaW5pdGlhbGl6aW5nIHNlY29uZCBQQ0kgYnVzIG9uIDg1eHgKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI2MzZhYWViNmZkNTE2YTQ0MmZiNjExYmJlZWRkZjMwNzdhNjg3ZmIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjQ5IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFBDSS1YICNkZWZpbmVzIGZvciBQQ0ktWCBpbml0aWFsaXphdGlvbgogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjBhYmJjNmZmZmExMTU2OTAxMDdjYzk0MmM3YWJmODRiZGMwM2ExYgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDQ6MjMgMjAwNiAtMDUwMAoKICAgICogTWFkZSBzdXJlIHRoZSBjb2RlIHdoaWNoIGRpc2FibGVzIHByZWZldGNoIGZvciBQQ0kgZGV2aWNlcwogICAgICBzZXRzIHRoZSBzaXplIG9mIHRoZSBwcmVmZXRjaCByZWdpb24gdG8gMAogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBkNWZhMzVkMDJkZjIyNTgwNTkzYmYwMDM5YWIxNzMzNjdlOGVmMApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDM6MzYgMjAwNiAtMDUwMAoKICAgICogQWRkIEZsYXQgRGV2IFRyZWUgY29uc3RydWN0aW9uIGZvciBNUEM4NXh4IEFEUyBhbmQgQ0RTIGJvYXJkcwogICAgICBQYXRjaCBieSBKb24gTG9lbGlnZXIgMTctSmFuLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlN2U4YjBjYjVhMGM0OWRjMTgwMDc1Yjk2ZGYyOTZhODkzYmYxNDYKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjAwIDIwMDYgLTA1MDAKCiAgICAqIFJlbW92ZWQgdGhlIG9mdHJlZS5kdHMgZm9yIHN0eHh0eCBpbiBsaWdodCBvZiB0aGUgY2hhbmdlcwogICAgICB0byB0aGUgZmxhdCBkZXZpY2UgdHJlZSBoYW5kbGluZyBjb2RlCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCAxYjM4MGVjMjI1NjY1ZTczOTU5Njc3ZjM4OTNkYzY1OGM1OTI1ZTA1CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MjoyNCAyMDA2IC0wNTAwCgogICAgKiBQYXRjaCB0byBtb2RpZnkgZnRfYnVpbGQuYyB0byB1cGRhdGUgZmxhdCBkZXZpY2UgdHJlZXMgaW4gcGxhY2UKICAgICAgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDk4YTljNGQ0NjhhOTQyYTA5ZWJlODk3OWJlYzUwODAxN2YzZTQ0NjIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQxOjM3IDIwMDYgLTA1MDAKCiAgICAqIE1vZGlmeSBib290bSBjb21tYW5kIHRvIHN1cHBvcnQgYm9vdGluZyB3aXRoIGZsYXQgZGV2aWNlIHRyZWVzCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCBkYTAxMmFiNjYxZmQ0YWIxNjlkZDdiOWIzMjIwMWE0ZGY2MmNmMzRhCkF1dGhvcjogSmluIFpoZW5neGlvbmcgPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDA4OjQzOjU2IDIwMDYgLTA1MDAKCiAgICBDaGFuZ2UgSWQgdG8gc3ltYm9saWMgbmFtZSBmb3IgUlRMODEzOQoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmMwOWNmM2MyYmZiOGQ1NGM2NTljYmIzMzJmNzlkMDk1MDk4MmZkMApBdXRob3I6IEppbiBaaGVuZ3hpb25nLVI2NDE4OCA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjcgMTg6MTI6MTAgMjAwNiArMDgwMAoKICAgIEZpeCBSVEw4MTM5IGluIGJpZyBlbmRpYW4KCiAgICBzaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgogICAgc2lnbmVkLW9mZi1ieTogV2VpIFpoYW5nIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmY2ZiOWE1Nzk0N2ZjMjAzYjk5ZmU4MWFiMDU3OGY3Mjg2MjYxZjlmCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMjoyMyAyMDA2ICswODAwCgogICAgRml4IFRzZWMgYnVnIHdoZW4gbm8gbGluawoKICAgICBXaGVuIHRmdHAgYSBub24tZXhpc3QgZmlsZSBmcm9tIHRoZSB0ZnRwIHNlcnZlciwgdS1ib290IHdpbGwgY2hlY2sKICAgICB0aGUgbGluayBvZiBhbGwgZXRoIHBvcnQuIFRoZSBvcmlnaW5hbCBmaWxlIHdpbGwgcmV0dXJuIHdyb25nIGxpbmsKICAgICBzdGF0ZSBvbiB0aGUgbm8gbGluayBwb3J0cy4KCiAgICBzaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJkMjJjMmI5NzUxNGZiZmIwZTAzYmQ5YzcyYjM0NDVlNGRiZDU3ZTIKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjEyOjAyIDIwMDYgKzA4MDAKCiAgICBGaXggYnVnIGZvciBpb19iYXIgc2l6ZSBkdXJpbmcgcGNpIHNjYW4KCiAgICBEdXJpbmcgdGhlIHBjaSBzY2FuIHByb2Nlc3MsIFNvbWUgZGV2aWNlcyByZXR1cm4gYmFyX3JlcG9uc2Ugd2l0aCB0aGUKICAgIGhpZ2hlc3QgYnl0ZXMgMCwgc3VjaCBhcyB0aGUgcGNpIGJyaWRnZSBpbiB1bGkxNTc1IHJldHVybiBiYXJfcmVzcG9uc2UKICAgIHdpdGggMHhmZmZmZmYsIFNvIHRoZSBiYXJfc2l6ZSBzaG91bGQgYmUgbWFudWFsbHkgc2V0IHVuZGVyIDY0Sy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZhN2RiOWMzNzdiYzIzNTNhMTdiZjFkMzgxZDY1YTZjNDE4NzI4ZjAKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjExOjU0IDIwMDYgKzA4MDAKCiAgICBFbmFibGUgUENJRTEgZm9yIE1QQzg2NDFIUENOIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OWQ3MGUzYTQ3YWZmYjliYWUwNDFhMmNhZWNlN2NkNTE2ZTIxM2IzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMjYgMTE6MDY6MDAgMjAwNiArMDIwMAoKICAgIE1vcmUgY29kZSBjbGVhbnVwCgpjb21taXQgNjg0NjIzY2U5MmM1ZmQzMmU3ZGIyZDZlMDE2OTQ1YTY3YzVmZmFiYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMjIgMDg6NTE6NDYgMjAwNiAtMDUwMAoKICAgIEZpeCBidWcgaW4gODY0MWhwY24gcmVzZXQgY29tbWFuZCB3aXRoIG5vIGFyZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiZTQyOWE1ZGRiZjBlYmUyZDk0MTc0YmE1OGZjZmM3YTI0Mjg1ZGMKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDIwIDE3OjQ3OjE1IDIwMDYgKzA4MDAKCiAgICBSZXdvcmtlZCBJUlEgbWFwcGluZyBpbiBPRi10cmVlLgoKY29tbWl0IDBlNGMyYTE3Y2EzNDAwMWVkMzZkMjU5ZjEzY2I4OGFkYTQ2MTFhOGMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDE1IDIxOjMzOjM3IDIwMDYgLTA1MDAKCiAgICBEbyBub3QgZW5hYmxlIGFkZHJlc3MgdHJhbnNsYXRpb24gb24gc2Vjb25kYXJ5IENQVXMuCiAgICBEbyBub3Qgc2V0IHVwIEJBVHMgb24gc2Vjb25kYXJ5IENQVXMuICBMZXQgTGludXggZG8gdGhlIG5hc3R5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg2ZWRhMDIyNDczMzk0YWQ4ZjM2Yjg2ZjJiZGM5YjRjYjgxNjI5MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSnVuIDE0IDE4OjE0OjU2IDIwMDYgKzAyMDAKCiAgICBDb2RlIGNsZWFudXAKCmNvbW1pdCAxNmM4ZDVlNzZhZTBmNzhmMzlhNjA2MDg1NzRhZGZlMGZlYjljYzcwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKdW4gMTQgMTc6NDU6NTMgMjAwNiArMDIwMAoKICAgIFZhcmlvdXMgVVNCIHJlbGF0ZWQgcGF0Y2hlcwogICAgLSBBZGQgc3VwcG9ydCBmb3IgbXBjOHh4IFVTQiBkZXZpY2UuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBDb21tb24gRGV2aWNlIENsYXNzIC0gQWJzdHJhY3QgQ29udHJvbCBNb2RlbCBVU0IgY29uc29sZS4KICAgIC0gQWRkIHN1cHBvcnQgZm9yIGZsb3cgY29udHJvbCBpbiBVU0Igc2xhdmUgZGV2aWNlcy4KICAgIC0gQWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIGdzZXJpYWwgYW5kIGNkY19hY20gdXNpbmcgZW52aXJvbm1lbnQuCiAgICAtIE1pbm9yIGNoYW5nZXMgdG8gdXNiZGNvcmVfb21hcDE1MTAuYyB1c2JkY29yZV9vbWFwMTUxMC5oCiAgICAtIFVwZGF0ZSB1c2Jjb3JlIHNsaWdodGx5IHRvIGVhc2UgaG9zdCBlbnVtZXJhdGlvbi4KICAgIC0gRml4IG5vbi1wb3J0YWJsZSBlbmRpYW4gcHJvYmxlbXMgaW4gdXNiZGNvcmUgYW5kIHVzYmRjb3JlX2VwMC4KICAgIC0gQWRkIEFkZGVyVVNCX2NvbmZpZyBhcyBhIGRlZmNvbmZpZyB0byBlbmFibGUgdXNhZ2Ugb2YgdGhlIFVTQiBjb25zb2xlCiAgICAgIGJ5IGRlZmF1bHQgd2l0aCB0aGUgQWRkZXI4N3ggVS1Cb290IHBvcnQuCiAgICBQYXRjaGVzIGJ5IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4sIDI5IE1heSAyMDA2Cgpjb21taXQgOGVjYzk3MTYxOGY1NjAyOWFkOTlkMzUxNmY4YjI5N2E2ZWQ1ODk3MQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gNyAxMDo1Mzo1NSAyMDA2IC0wNTAwCgogICAgRml4IGEgZ2V0X2JvYXJkX3N5c19jbGsoKSB1c2UtYmVmb3JlLWRlZiB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgZDliZjQ4NThmY2E1YWE0ZDY1MWIyODMyNzBmNzdkYTcyZWJhZGZkNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gNyAxMDo1Mjo0OSAyMDA2IC0wNTAwCgogICAgQWxsb3cgRFRDIHBhdGggdG8gYmUgcGFzc2VkIGluLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgYzgzYWU5ZWE2ZDkzYWJiZTc1MWJmOGEzMzk2MjM2YTA4NGU1NmY4NwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gNiAxNjo1NDoyOSAyMDA2IC0wNDAwCgogICAgTW9kaWZ5IHRoZSBJUlEgb2YgRFVBUlQyCgpjb21taXQgYzkzNGY2NTVmOWFlY2E3MGE1YzVmODhiNDY1ZDllOWQ1N2E4ZDIyZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTM6NTU6MzUgMjAwNiAtMDUwMAoKICAgIFJldmlldyBjbGVhbnVwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNiNTk2NWZiOTViNzdhNDlmNGU2YWY5NTI0OGUwYzg0OWY0YWYwM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEyOjQ0OjQ0IDIwMDYgLTA1MDAKCiAgICBXaGl0ZSBzcGFjZSBjbGVhbnVwLgogICAgU29tZSA4MC1jb2x1bW4gY2xlYW51cHMuCiAgICBDb252ZXJ0IHByaW50ZigpIHRvIHB1dHMoKSB3aGVyZSBwb3NzaWJsZS4KICAgIFVzZSAjaW5jbHVkZSAic3BkX3NkcmFtLmgiIGFzIG5lZWRlZC4KICAgIEVuaGFuY2VkIHJlc2V0IGNvbW1hbmQgdXNhZ2UgbWVzc2FnZSBhIGJpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNkNWM1YmU1NDc0NDVkZDNiZDJlYjczNjhkODBkZjAzZWE0Mzc5NzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDExOjM5OjM0IDIwMDYgLTA1MDAKCiAgICBSZW1vdmVkIHVubmVlZGVkIGxvY2FsX2J1c19pbml0KCkgZnJvbSA4NjQxSFBDTiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkM2Q3MjljMTZjMzkyZDI5ODJkMzI2NmI2NTlkMzMzYzkyNzY5N2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDExOjI0OjI4IDIwMDYgLTA1MDAKCiAgICBNb3ZlZCBtcGM4NjQxaHBjbl9ib2FyZF9yZXNldCgpIG91dCBvZiBjcHUvIGludG8gYm9hcmQvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjJhOTQxZGUwNjAzNTBhZDE1ODc4ZDgyMTk4MjVmNDk1MGU5YmI4ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTA6MDc6MjggMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBkZWFkIGRlYnVnIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAxMjZhYTcwZjEwYmEzZDIwZTBhNmY0ZDMyMzI4MjUwNTEzYjc3NzcwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSAzMCAxNzo0NzowMCAyMDA2IC0wNTAwCgogICAgTW92ZSBtcGM4Nnh4IFBJWElTIGNvZGUgdG8gYm9hcmQgZGlyZWN0b3J5CgogICAgRmlyc3QgY3V0IGF0IG1vdmluZyB0aGUgUElYSVMgcGxhdGZvcm0gY29kZSBvdXQgb2YKICAgIHRoZSA4Nnh4IGNwdSBkaXJlY3RvcnkgYW5kIGludG8gYm9hcmQvbXBjODY0MWhwY24KICAgIHdoZXJlIGl0IGJlbG9uZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGY4M2EyZmNlZjFhNjcwYzQ1ZmM1ODUxMTlkY2MxZmUwNjJjNGE5CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAzMCAxNjo1NjoxNCAyMDA2ICswMjAwCgogICAgU3VwcG9ydCBnZW5lcmljIE9IQ0kgc3VwcG9ydCBmb3IgdGhlIHMzYzI0eDAgY3B1LgoKY29tbWl0IDM4Y2VlMTJkY2ZjYzI1NzM3MWM5MDFjN2UxM2U1OGVjYWIwYTM1ZDgKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDMwIDA5OjEwOjMyIDIwMDYgLTA1MDAKCiAgICBJbXByb3ZlICJyZXNldCIgY29tbWFuZCdzIGludGVyYWN0aW9uIHdpdGggd2F0Y2hkb2cuCgoJInJlc2V0IGFsdGJhbmsiIHdpbGwgcmVzZXQgYW5vdGhlciBiYW5rIFdJVEhPVVQgd2F0Y2ggZG9nIHRpbWVyIGVuYWJsZWQKCSJyZXNldCBhbHRiYW5rIHdkIiB3aWxsIHJlc2V0IGFub3RoZXIgYmFuayBXSVRIIHdhdGNoIGRvZyBlbmFibGVkCgkiZGlzd2QiIHdpbGwgZGlzYWJsZSB3YXRjaCBkb2cgYWZ0ZXIgdS1ib290IGJvb3RzIHVwIHN1Y2Nlc3NmdWxseQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzAyMDVlNWE2ZGRjODUyOGIxMWRiOWViNGQzZmEwMjA5ZDlmY2UyYQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgMzAgMDg6NTE6MTkgMjAwNiAtMDUwMAoKICAgIEZpeCB0d28gU0RSQU0gc2V0dXAgYnVncy4KCglGaXggRUNDIHNldHVwIGJ1Zy4KCUVuYWJsZSAxVC8yVCBiYXNlZCBvbiBudW1iZXIgb2YgRElNTXMgcHJlc2VudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxMWZlYzUwMTUzMzRkZWIyMDEwZTM2Y2UwMGJiMTE4Y2M1NDI5YTUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWF5IDI2IDEwOjI0OjQ4IDIwMDYgLTA1MDAKCiAgICBBZGQgZmlyc3QgZHJhZnQgb2YgdGhlIE1QQzg2NDFIUENOIGRvYy9SRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCBlZDQ1ZDZjOTMwYjU5Mzk3MThhODdlZTEyZTI1Y2Y5YTA1OTc4ZDRhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDoxMzowNCAyMDA2IC0wNTAwCgogICAgQWRkZWQgcGNpQDgwMDAgYmxvY2suCiAgICBVcGRhdGVkIGV0aGVybmV0IGludGVycnVwdCBtYXBwaW5ncyAobW92ZWQgdXAgNDgpLgogICAgQ2xlYW5lZCB1cCBhIGZldyBjb21tZW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IDMwMzNlYmIyMGZkN2MzNzJjN2JjYTNjOTk1NWE0NjkyYmIyMjQwYjcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWF5IDI2IDEwOjAxOjE2IDIwMDYgLTA1MDAKCiAgICBBbGxvdyBhcmdzIG9uIHJlc2V0IGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAzMDFmMWFhMzg0ZDBlZGNhZTZhMjJmZDlhZGI5MzNhZDcxNjk1ZWNjCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyMyAxMzozODozNSAyMDA2ICswMjAwCgogICAgQ2hhbmdlZCB0aGUgbXAydXNiIChhdDkxcm05MjAwKSBib2FyZCB0byB1c2UgdGhlIGdlbmVyaWMgT0hDSSBkcml2ZXIuIFNvbWUKICAgIGZpeGVzIHRvIHRoZSBsYXR0ZXIuCgpjb21taXQgMjRlMzc2NDVlNzM3OGIyMGZhOGYyMGUyOTk2YzhmYjhlOTBjNzBjOQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjMgMTA6MzM6MTEgMjAwNiArMDIwMAoKICAgIE1vcmUgY2xlYW51cCBmb3IgdGhlIGRlbHRhIGJvYXJkIGFuZCB0aGUgZ2VuZXJpYyB1c2Jfb2hjaSBkcml2ZXIuIEFkZGVkCiAgICBDRkdfVVNCX0JPQVJEX0lOSVQgYW5kIENGR19VU0JfQ1BVX0lOSVQgZm9yIGVuYWJsaW5nIGJvYXJkIGFuZCBjcHUgc3BlY2lmaWMKICAgIGluaXRpYWxpemF0aW9uIGFuZCBjbGVhbnVwIGhvb2tzIHJlc3BlY3RpdmVseS4KCmNvbW1pdCAzZTMyNmVjZTllYmE4MTg0ZjVkNDhhYTRmYjg3NzYwYThmNmYwZjEwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAyMiAxNjozMzo1NCAyMDA2ICswMjAwCgogICAgVGhpcyBwYXRjaCBhZGRzIFVTQiBzdG9yYWdlIHN1cHBvcnQgZm9yIHRoZSBkZWx0YSBib2FyZC4gVGhpcyBpcyB0aGUgZmlyc3QKICAgIGJvYXJkIHRvIG1ha2UgdXNlIG9mIGEgZ2VuZXJpYyBPSENJIGRyaXZlciwgdGhhdCBjYWxscyBob29rcyBmb3IgYm9hcmQKICAgIGRlcGVuZGFudCBpbml0aWFsaXphdGlvbi4KCmNvbW1pdCAxNGUzNzA4MWZmM2NhYzdlYmU2ZTkzODM2NTIzNDI5ODUzYjZiMjkyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoyODozOSAyMDA2IC0wNTAwCgogICAgQ2hhbmdlIGFyYml0cmF0aW9uIHRvIHJvdW5kLXJvYmluIGZvciBTTVAgbGludXguCgpjb21taXQgOWE2NTU4NzZlNTk5NWJlODBmNDkwNTRlMjUwOTUwMGU4NzFlNGQzYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6MjY6MzQgMjAwNiAtMDUwMAoKICAgIEVuYWJsZSBkdWFsIEREUiBjb250cm9sbGVycyBhbmQgaW50ZXJsZWF2aW5nLgoKY29tbWl0IDU4NmQxZDVhYmQzZTUyNWYxZTFkOWI4MWU1YTYxYTRkYTZiMmZhM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEzOjIyOjQ0IDIwMDYgLTA1MDAKCiAgICBVcGRhdGUgODZ4eCBhZGRyZXNzIG1hcCBhbmQgTEFXQkFScy4KCmNvbW1pdCBjY2NjZTVkMDU4MWJiMGJhNDYwMjc5OWE0YjUxMTJlNThkMTU3OWNiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoxNDoxNSAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIEwyIENhY2hlIGludmFsaWRhdGUgcG9sbGluZy4KCmNvbW1pdCBmMzVlYzY4ZmIwNjZjZWMwZTM2Mjk0YmZlMDdkZWMyZDRlOGFkM2E4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMjozMzowOSAyMDA2IC0wNTAwCgogICAgRW5hYmxlIDJuZCBDUFUgYW5kIEkyQy4KCmNvbW1pdCBiZjY5MGRjYjUxMmQzNGM0ZmNlZWMwZWIxZTVjMGU4OGE5ZGI1ZDU0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSAxNSAwNzoyNjo1NiAyMDA2IC0wNTAwCgogICAgVXBkYXRlIGludGVycnVwdCBtYXBwaW5nLgoKY29tbWl0IDZjZmVhMzM0NzdiMDRiNjNlZDQ3Mzg2ZWQxNjI5NTI5NDg0YzMzYmEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDEwIDA5OjM4OjA2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWVkZWQgSU5JVF9SQU1fTE9DSyBjYWNoZSB0d2lkZGxpbmcuCiAgICBDb3JyZWN0bHkgdHJhY2tzIHIyOSBhcyBnbG9iYWwgZGF0YSBwb2ludGVyIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ0ZGQzMTdiNThjMTI2YTJhN2U3M2Y0NzY0ZWNjMWE3Yzk3Zjg3NmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDEwIDA5OjMzOjA3IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZmxhc2guYyBmaWxlLgoKY29tbWl0IDE4YjZjOGNkOGFmNmNjN2YzNTE4MGNlZGM0YWRiMzIzNmNjMWExYjgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDkgMDg6MjM6NDkgMjAwNiAtMDUwMAoKICAgIEdldCBNUEM4NjQxSFBDTiBmbGFzaCBpbWFnZXMgd29ya2luZy4KCglFbmFibGUgdGhlIENGSSBkcml2ZXIuCglSZW1vdmUgYm9ndXMgTEFXQkFSNyBjcnVmdC4KCVVzZSBjb3JyZWN0IFRFWFRfQkFTRSwgRml4dXAgbG9hZCBzY3JpcHQuCglFbmFibGUgU1BEIEVFUFJPTSBkdXJpbmcgRERSIHNldHVwLgoJVXNlIGdlbmVyaWMgUkZDIDE5MTggSVAgYWRkcmVzc2VzIGJ5IGRlZmF1bHQuCgpjb21taXQgNWM5ZWZiMzZhNmI1NDMxNDIzZjUyODg4YTBlM2I0YjUxNWZlN2VjYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMjcgMTA6MTU6MTYgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgd2hpdGVzcGFjZXMgYW5kIHN0eWxlIGlzc3Vlcy4KICAgIFJlbW92ZWQgLy8tc3R5bGUgY29tbWVudHMuCiAgICBVc2UgODAtY29sdW1uIGxpbmVzLgogICAgUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICBSZW1vdmUgZGVhZCBjb2RlIGFuZCBkZWJ1ZyBjcnVmdC4KCmNvbW1pdCBhMjMyMGE2YmY4MTEzYTA5NTQ0YzQyZDE2MGQxMGFjNjlkMDQ5YTAzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAyNyAwODoyMjozOSAyMDA2IC0wNTAwCgogICAgUmV2ZXJ0IGJhZCBQQ0kgcHJlZmV0Y2ggbGltaXQgY2hhbmdlLgoKY29tbWl0IGRlYmI3MzU0ZDFlYTRmNjk0MTU0ODE4ZGY1ZTViNTIzZjVjMWNjMWQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDI2IDE3OjU4OjU2IDIwMDYgLTA1MDAKCiAgICBJbml0aWFsIHN1cHBvcnQgZm9yIE1QQzg2NDEgSFBDTiBib2FyZC4K