Y29tbWl0IGZkMzI5ZTZmMDViYmRmZTZiZDcxYjBlMDlmMGM3NmQzYjBhMDI1YTUKQXV0aG9yOiBMdW90YW8gRnUgPGwuZnVAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVdlZCBOb3YgMTQgMTg6NTg6MzMgMjAwNyArMDEwMAoKICAgIEZpeCB0aGUgaTJjIGZyZXF1ZW5jeSBhbmQgZGVmYXVsdCBhZGRyZXNzIGluIHJzZHByb3RvIGJvYXJkCgogICAgcnNkcHJvdG8gYm9hcmQgc3VwcG9ydCBoYXMgd3JvbmcgSTJDIGZyZXF1ZW5jeSBhbmQgd3JvbmcgcmV0dXJuIHZhbHVlCiAgICBoYW5kbGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMdW90YW8gRnUgPGwuZnVAcGVuZ3V0cm9uaXguZGU+Cgpjb21taXQgNDI5YzE4MGVkYWQwMzhmOTFjOTg5Y2IxNGI0NzgyMjgwOTJlNzA1NApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDE6NDU6MzggMjAwNyArMDEwMAoKICAgIHBvd2VycGM6IEJhY2tvdXQgcmVsb2NhdGlvbiBjaGFuZ2VzIGZvciBNUEM1MTIxLCB0b28uCgogICAgQXBwbHkgR3JhbnQgTGlrZWx5J3MgYmFja291dCB0byBNUEM1MTIxIGNvZGUsIHRvby4KCiAgICBQb2ludGVkIG91dCBieSBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWMzZGQ0MzMzOGEwNzcxNjVlN2UwMzA5Y2IzOTk0ZTY1ZDJiZGJmOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIE5vdiAxMyAyMjoxODozMyAyMDA3IC0wNzAwCgogICAgcG93ZXJwYzogQmFja291dCByZWxvY2F0aW9uIGNoYW5nZXMuCgogICAgVWdoLiAgSSAqaGF0ZSogdG8gYmFjayB0aGlzIGNoYW5nZSBvdXQsIGJ1dCB0aGVzZSBjb21waWxlciBmbGFncyBkb24ndAogICAgd29yayBmb3IgcmVsb2NhdGlvbiBvbiBhbGwgdmVyc2lvbnMgb2YgR0NDLiAgSSd2ZSBub3QgYmVlbiBhYmxlIHRvCiAgICByZXByb2R1Y2UgdGhlIGVudmlyb25tZW50IGluIG15IHNldHVwIChhbmQgaGVuY2UsIG5vdCBiZWVuIGFibGUgdG8KICAgIGZpbmQgYSBjb21iaW5hdGlvbiB0aGF0ICpkb2VzKiB3b3JrKSwgc28gSSd2ZSBnb3Qgbm8gY2hvaWNlIGJ1dCB0byBnbwogICAgYmFjayB0byB0aGUgb2xkIGdjYyBmbGFncyBhbmQgbGlua2VyIHNjcmlwdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWMxNTAxMGVmYWQ5ODBhZDU0OThjYzU2NWZjMWVkNzBkZjJmNTJiNApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMTMgMDk6MTE6MDUgMjAwNyArMDEwMAoKICAgIEZpeGVkIG1pcHNfaW9fcG9ydF9iYXNlIGJ1aWxkIGVycm9ycy4KCiAgICBUaGlzIHBhdGNoIGhhcyBiZWVuIHNlbnQgb246CiAgICAtIDI5IFNlcCAyMDA3CgogICAgQWx0aG91Z2ggbWlwc19pb19wb3J0X2Jhc2UgaXMgY3VycmVudGx5IGEgcGFydCBvZiBJREUgY29tbWFuZCwgaXQgaXMgcXVpdGUKICAgIGZ1bmRhbWVudGFsIGZvciBNSVBTIEkvTyBwb3J0IGFjY2VzcyBzdWNoIGFzIGluW2J3bF0gYW5kIG91dFtid2xdLiBTbyBtb3ZlCiAgICBpdCB0byBNSVBTIGdlbmVyYWwgcGFydCwgYW5kIGludHJvZHVjZSBgc2V0X2lvX3BvcnRfYmFzZSgpJyBmcm9tIExpbnV4LgoKICAgIFRoaXMgcGF0Y2ggaXMgdHJpZ2dlcmVkIGJ5IG11bHRpcGxlIGRlZmluaXRpb24gb2YgYG1pcHNfaW9fcG9ydF9iYXNlJyBidWlsZAogICAgZXJyb3Igb24gZ3RoMiAoYW5kIHRiMDIyOSBhbHNvIG5lZWRzIHRoaXMgZml4LikKCiAgICBib2FyZC9ndGgyL2xpYmd0aDIuYShndGgyLm8pOiBJbiBmdW5jdGlvbiBgbG9nX3NlcmlhbF9jaGFyJzoKICAgIC9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvYm9hcmQvZ3RoMi9ndGgyLmM6NDc6IG11bHRpcGxlIGRlZmluaXRpb24gb2YgYG1pcHNfaW9fcG9ydF9iYXNlJwogICAgY29tbW9uL2xpYmNvbW1vbi5hKGNtZF9pZGUubyk6L2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9jb21tb24vY21kX2lkZS5jOjcxMjogZmlyc3QgZGVmaW5lZCBoZXJlCiAgICBtYWtlOiAqKiogW3UtYm9vdF0gRXJyb3IgMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZlY2JiN2EzZmE5YjA5NDBlZDMzZTQ5MGQxOTVkNGI2ODMwYjI0MjIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDAxOjMwOjQwIDIwMDcgKzAxMDAKCiAgICBGaXggYSBidWcgaW4gdGhlIHNsYXZlIHNlcmlhbCBwcm9ncmFtbWluZyBtb2RlIGZvciB0aGUgWGlsaW54CiAgICBTcGFydGFuMi8zIEZQR0FzLiBUaGUgb2xkIGNvZGUgdXNlZCAiPCAwIiBvbiBhICJjaGFyIiB0eXBlIHRvIHRlc3QgaWYKICAgIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCB3YXMgc2V0LCB3aGljaCBkaWQgbm90IHdvcmsgb24gYW55CiAgICBhcmNoaXRlY3R1cmUgd2hlcmUgImNoYXIiIGRlZmF1bHRlZCB0byBiZSBhbiB1bnNpZ25lZCB0eXBlLgoKICAgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgQW5nZWxvcyBNYW5vdXNhcmlkaXMgPGFtYW5vdXNAaW5hY2Nlc3NuZXR3b3Jrcy5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkMDhiNzIzM2JjMjUyZmFhZDgzMzllN2NhMGRkZmQ2MmZhNzk5MDNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAxIDEyOjIzOjI5IDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBGaXggYnJva2VuIHZhcmlhYmxlIHJlZmVyZW5jZSB3aGVuICNkZWYgREVCVUdpbmcuCgogICAgU29tZXRpbWVzIHlvdSBjYW4ndCByZWZlcmVuY2UgdGhlIEREUjIgY29udHJvbGxlciB2YXJpYWJsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmOWQ5MTY0ZDljNmI1YTdmMDM5M2ZkOGQ3ZTI0NmI4YTAzMjZiYzE5CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyNiAxODozMjowMCAyMDA3ICswODAwCgogICAgbWFrZSA4NjEwIGJvYXJkIHVzZSBwaXhpcyByZXNldAoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGI3NGIzYzFjOTQ4MWE2YmZmYmY4Y2Q0NDVlNWJjYmY2OTA4ZTgzNgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTk6MjY6MjEgMjAwNyArMDgwMAoKICAgIFVuaWZ5IHBpeGlzX3Jlc2V0IGFsdGJhbmsgYWNyb3NzIGJvYXJkIGZhbWlsaWVzCgogICAgQmFzaWNhbGx5LCByZWZhY3RvciB0aGUgQ0ZHX1BJWElTX1ZCT09UX01BU0sgdmFsdWVzCiAgICBpbnRvIHRoZSBzZXBhcmF0ZSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjRiZjU1NTQ2NWM3OTI2YmUxM2UxMDQ2YWMwZDBmMDVhYzcyODI5YwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBOb3YgNyAwODoxOToyMSAyMDA3ICswMTAwCgogICAgRml4IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBhc3NpZ25tZW50IGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3YTYwZWU3YzYyNDhhOTU4YzU3NTdkMzY2MGExNzAyNzIzYTI3ODZkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE5vdiA3IDA4OjE5OjE5IDIwMDcgKzAxMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBjb21tb24vY21kX2lkZS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5NTU0MTNmMzVmMDU0YTgyZTQwMDQyZjFkYmNmNTAxYzZhMDU3MTliCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjI3OjUyIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgcmVsb2NhdGlvbiBmaXh1cCBmb3IgbXBjNXh4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzY0OWNkOTliYTgxNWI2NjAxODY4NzM1NzY1NjAyZjAwZWYzNjkyYi4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlMTU2MzM4ODhhMDU4YWFjYjMxYTYyZDJjZjEyNzhlMWU0YzIzNmFiCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjI0OjMyIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgTVBDNXh4eCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDZmNzU3NmIyMGVjZjBkMDQwYzNhYzNiMDMyYjVjYmM4NjBlMzhhOTAuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMTM5MzY1ZmJlNTY2ZDBmYzYxOWExZWQwNDQ1MmVjNTM4OGYwY2VmOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMTowNCAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyMjAiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhODVkZDI1NGMwNTc3ZmNhMTM2MjdjNDZlOTNmYzJhZDRjNGYxZjAwLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDcwOTIyMzQyMzY5ZTVlMzliMjg2ZmUyMWU3NjhhMjM5Y2EwN2E1MTQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6NTcgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjR4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjNhNTJmZTA1OTIzOTM1ZGI4Njk4NWRhZjk0MzhlMmY3MGFjMzlhYS4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5NjI3OWFiNGNhZDYwY2I1OTcyYWE5MzRmYmU0ODQ1YWMwMmNjNzVhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIwOjUwIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODI2MCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDVhZjYxYjJmNGI4MzhhMDVmNzliZTI3NGYzZTVhNjZlZGQyZDljOTYuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTI4ZmUzM2IyNGNkZjM4MmE4ZGM4Njg3ZmVkMjRiMTk2MWNkYjVkNgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDo0MyAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgzeHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAwNTcwMDRmNGE0ODYzNTU0ZDU2Y2M1NjI2OGJmYTdjN2Q5NzM4ZTI3LgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGM5Mzk0NWU4ZjllMzAwODYwZDJiZjczYTI1NDljZTU3OTRmOGJkMDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6MjUgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiW01QQzUxMnhdIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDhkMTc5NzlkMDM1OTQ5MmE4MjJhMGE0MDlkMjZlM2EzNTQ5YjRjZDQuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNTRmZDZjOTNjMjhhMGE0NTM1MmZmZjVkZDkyNjczNDAxZmY1NjNmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAxMyAwODoxODoyMCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBsd21vbjU6IENoYW5nZSBQSFkgcmVzZXQgc2VxdWVuY2UgZm9yIFBIWSBNRElPIGFkZHJlc3MgbGF0Y2hpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWNlNTUxNTFjODVkMDY4ZjcwMzE3YThkNjVjNjEwNThiODkxYWZiNApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDEzIDA3OjUwOjI5IDIwMDcgKzAxMDAKCiAgICBbVUMxMDFdIFNSQU0gbm93IHdpdGggMiBNQiB3b3JraW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDhkNzM3YTI4MTUyZWMxMjg3M2Y4NTQ0Y2NhMWZiMzlhNDllNWU2OTMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgOCAxMjo1MDoxOCAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgLSBSZW1vdmUgcmVzZXQgcmVnaXN0ZXJzIGZyb20gQ0NNCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdkN2NkZWE3NjlhNjBiMGE2ZTRjMThiZWY3ZjlkNjQ4ZmQxNGI4ZDcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgOCAxMjozMToxMSAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgLSBBZGQgUmVzZXQgc3RydWN0dXJlIHRvIGltbWFwXzUzMjkuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwOWIyNmNmMDBkNzZkNzVmZGY3ZmRjNGIxM2U0ZGQ5Mjk3NDNiYzIxCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDggMTI6MTk6MDEgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IC0gcmV2ZXJ0IGluY2x1ZGUvYXNtLW02OGsvbTUzMjkuaCBmaWxlIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjI1YTI0YjVlMDYyYWQ5NDYyNzQyNDUwOGFlODE0ZjUxZGJlMWEzNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA3IDE4OjAwOjU0IDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTQ0NXggLSBVcGRhdGUgY29ycmVjdCBSQU1CQVIgYW5kIG1pc3NpbmcgbGlua2VyIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI0OGM3YzE0ODM1ZjM0ZDVkOTEwYjQ1ZTU2MDAwNTBlNThjYTZjYWIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNyAxNzo1NjoxNSAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjUzMnggLSBVcGRhdGUgZG9fcmVzZXQoKSB1c2luZyBjb3JlIHJlc2V0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ5MjQwYTVmODI3ZWIzYjQ3NmE2YmEyOTM4ZDAxZjFhOWU3Njg4ZjQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNyAxNzo1MTowMCAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IFVwZGF0ZSBjcHUgZmxhZyBmb3IgNC4yLXh4IGNvbXBpbGVyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmMTAzMTA1YTM3NDZhYjEyMjc5YjYzYjhjMWQzNzJjMGNlMmNjNTgKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgNSAxNzozOToyNCAyMDA3ICswODAwCgogICAgSW1wbGVtZW50IGdlbmVyYWwgVUxpIDUyNnggRXRoZXJuZXQgZHJpdmVyIHN1cHBvcnQgaW4gVS1ib290CgogICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGdlbmVyYWwgVUxpIDUyNnggRXRoZXJuZXQgZHJpdmVyLgogICAgVW50aWwgbm93LCBpdCBpcyB0aGUgb25seSBuYXRpdmUgRXRoZXJuZXQgcG9ydCBvbgogICAgTVBDODYxMEhQQ0QgYm9hcmQsIGJ1dCBpdCBjb3VsZCBiZSB1c2VkIG9uIG90aGVyIGJvYXJkcwogICAgd2l0aCBVTGkgNTI2eCBFdGhlcm5ldCBwb3J0IGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNzFiYzZlNjQ3NGZlYThlZjQ4MWI5YjQ1ZDFlZGQ3YWQxZjZkZmJiZApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgTm92IDEgMDg6NDY6NTAgMjAwNyAtMDUwMAoKICAgIE5FVDogQWRkIEV0aGVybmV0IDEwMDBCQVNFLVggc3VwcG9ydCBmb3IgUFBDNHh4CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIDEwMDBCQVNFLVggdG8gZnVuY3Rpb25zICJtaWlwaHlfc3BlZWQgKCkiIGFuZAogICAgIm1paXBoeV9kdXBsZXgoKSIuCUl0IGFsc28gYWRkcyBmdW5jdGlvbiAibWlpcGh5X2lzXzEwMDBiYXNlX3ggKCkiLCB3aGljaAogICAgcmV0dXJucyBub24temVybyBpZmYgdGhlIFBIWSByZWdpc3RlcnMgYXJlIGNvbmZpZ3VyZWQgZm9yIDEwMDBCQVNFLVguICBUaGUKICAgICJtaWkgaW5mbyIgY29tbWFuZCBpcyBtb2RpZmllZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIDEwMDBCQVNFLVQgYW5kIC1YLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgMjk4MDM1ZGY0OTQ4YjExM2QyOWFjMGU2OTQ3MTdkMzRiOTViYzVkYwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglXZWQgT2N0IDMxIDExOjIxOjI5IDIwMDcgLTA1MDAKCiAgICBORVQ6IENvc21ldGljIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDk5Mjc0MmE1YjA5ZDkwNDBhZGJkMTU2ZmI5MDc1NmFmNjZhZGUzMTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDMgMjM6MDk6MjcgMjAwNyArMDEwMAoKICAgIENsZWFudXAgY29kaW5nIHN0eWxlOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlODgxY2I1NjNlMzJmNDU4MzJiN2I2ZGI3N2JkY2QwMTdhZGNiYjQxCkF1dGhvcjogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGNjcHUuY29tPgpEYXRlOglGcmkgTm92IDIgMTM6MTU6NDIgMjAwNyAtMDcwMAoKICAgIGZpeCB3b3JkaW5nIGluIFJFQURNRQoKICAgIENoYW5nZWQgdGhlIHdvcmRpbmcgdG8gcHJvcGVybHkgZGVzY3JpYmUgdGhlIHNoYWRvd2luZwogICAgb2YgdGhlIGVudmlyb25tZW50IGZyb20gUk9NIHRvIFJBTQoKICAgIFNpZ25lZC1vZmYtYnk6IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBhY20ub3JnPgoKY29tbWl0IGFkODQ1YmVlZjA2MjQ1NDI2YzU3YjUzZGNkYzAxYjdkYzcwZTBkNDUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglXZWQgT2N0IDMxIDAyOjE4OjE1IDIwMDcgKzA5MDAKCiAgICBibGFja2ZpbjogTW92ZSBgLURfX0JMQUNLRklOX18nIHRvICQoQVJDSClfY29uZmlnLm1rCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBlYzIyNzU1Nzk5NDY2YzhhMTAzNjY0YmIzYTVlNjQ3YmY5YzIzOGY0CkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVRodSBPY3QgMjUgMTY6MDg6MTQgMjAwNyArMDMwMAoKICAgIFRyaW1tZWQgc29tZSB2YXJpYWJsZXMgaW4gbmUyMDAwLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBlYjZmMjE0ZDM2NDRiMmE3Nzk2OGMxNzZlZDM2ZGNmODU4Y2ZlN2UwCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzo1MToyNyAyMDA3ICswODAwCgogICAgRml4IHRoZSBpc3N1ZSBvZiB1c2Jfa2JkIGRyaXZlciBtaXNzaW5nIHRoZSBzY2FuIGNvZGUgb2Yga2V5ICd6Jy4KCiAgICBUaGUgc2NhbiBjb2RlIG9mIHRoZSBrZXkgJ3onIGlzIDB4MWQsIHdoaWNoIHNob3VsZCBiZSBoYW5kbGVkLgoKICAgIFRoZSBjaGFuZ2UgaGFzIGJlIHRlc3RlZCBvbiBOT1ZBVEVLIFVTQiBrZXlib2FyZCBhbmQgVUxJIFBDSSBPSENJCiAgICBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmJmNDc5NmY2NDk4ZmJhZGU1NmQ1NmVmZjNhMGE0OWIyOTlkOTNlNQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MzA6MDQgMjAwNyArMDgwMAoKICAgIEZpeCBVU0Igc3VwcG9ydCBpc3N1ZSBmb3IgTVBDODY0MUhQQ04gYm9hcmQuCgogICAgVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBoYXMgYWxyZWFkeSBlbmFibGVkIFVTQiwgYnV0IGl0CiAgICBtaXNzZWQgZGVmaW5pdGlvbiBvZiBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MsIHRoZSBVU0IKICAgIG9uIE1QQzg2NDFIUENOIGNhbiBub3Qgd29yayBiZWNhdXNlIG9mIHRoZSB3cm9uZyBVU0IKICAgIHJlZ2lzdGVyIGVuZGlhbi4KCiAgICBBbmQgYWRkIHRoZSBVU0IgY29tbWFuZCB0byBVLUJvb3QgY29tbWFuZHMgbGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlNjIwNDEwMjNkYzNkZTlkOThkOTc3YmIwODAyMzViYzZkMDM1ZTAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgT2N0IDI0IDE4OjE2OjAxIDIwMDcgKzAyMDAKCiAgICBVc2UgY29uZmlnX2NtZF9kZWZhdWx0LmggaW5zdGVhZCBvZiBjb25maWdfY21kX2FsbC5oCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1NjYyMmY4Nzg1NzQzOWIxYzIyMWU5ZGVlZjExYTlkNWJiNWQ0MzA4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE9jdCAyNCAwMTozNzozNiAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogQ2FsbCB1c2JfY3B1X2luaXQoKSBkdXJpbmcgYm9hcmQgaW5pdAoKICAgIHVzYl9jcHVfaW5pdCgpIGNvbmZpZ3VyZXMgR1BTIFVTQiBwaW5zLCBjbG9ja3MsIGV0Yy4gYW5kCiAgICBpcyByZXF1aXJlZCBmb3IgcHJvcGVyIG9wZXJhdGlvbiBvZiBrZXJuZWwgVVNCIHN1YnN5c3RlbS4KICAgIFRoaXMgc2V0dXAgd2FzIHByZXZpb3VzbHkgZG9uZSBpbiB0aGUga2VybmVsIGJ5IHRoZSBmaXh1cAogICAgY29kZSB3aGljaCBpcyBiZWluZyByZW1vdmVkLCB0aHVzIGxvdyBsZXZlbCBpbml0IG11c3QgYmUKICAgIGRvbmUgYnkgVS1ib290IG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDI5YzI5YzAyNjdmZTg1N2U3MjAxNGNlOTBjNWQzNWIyZWY2MzAyYmQKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTY6MjU6NTAgMjAwNyArMDIwMAoKICAgIEZpeCB0eXBvIGluIG5mcy5jCgogICAgQW4gb2J2aW91cyB0eXBvLiBPcmlnaW5hbGx5IGZpeGVkIGluIGxpbmtzdGF0aW9uIHUtYm9vdCBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA1OTU0M2ZlMDBhNGNlNzIwZWY5ZjVhYTdmYjM4N2M2ZGFmMWM3ZDc4CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE0OjM1OjA1IDIwMDcgKzAyMDAKCiAgICBGaXggYSB0eXBvIGluIGNwdS9tcGM4MjR4L2ludGVycnVwdHMuYwoKICAgIFNpbmNlIERlY2VtYmVyIDIwMDMgdGhlIHRpbWVyX2ludGVycnVwdF9jcHUoKSBmdW5jdGlvbiBpbgogICAgY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jIGNvbnRhaW5zIHdoYXQgc2VlbXMgdG8gYmUgYSBzdXBlcmZsdW91cwogICAgcGFyYW1ldGVyLiBSZW1vdmUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGM5ZTdiOWI5YTE3MDBmZTAwOTY3OGQxZjliNDFlNjM2NGFjNWRmMmQKQXV0aG9yOiBTZXJnZWogU3RlcGFub3YgPFNlcmdlai5TdGVwYW5vdkBpZHMuZGU+CkRhdGU6CVdlZCBPY3QgMTcgMTE6MTM6NTEgMjAwNyArMDIwMAoKICAgIGFkZCBmdF9jcHVfc2V0dXAoLi4pIG9uIG1wYzgyNjAKCiAgICBBZGQgZnRfY3B1X3NldHVwKC4uKS1mdW5jdGlvbiB0byBhZGFwdCBpdCBmb3IgdXNlIHdpdGggbGliZmR0CiAgICBiYXNlZCBvbiBjb2RlIGZyb20gbXBjNXh4eAoKICAgIFNpZ2VuZC1vZmYtYnk6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KICAgIC0tCgpjb21taXQgNmFiZDgyZTE5YWU5M2MwYjRkMTA0ZTUwMTY1ZTIzNTkxNWVjMDg3NQpBdXRob3I6IFNlcmdlaiBTdGVwYW5vdiA8U2VyZ2VqLlN0ZXBhbm92QGlkcy5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxMToxODo0MiAyMDA3ICswMjAwCgogICAgY2hhbmdlcyBmb3IgSURTODI0NyBib2FyZCBzdXBwb3J0CgogICAgVG8gZ2V0IHRoZSBJRFM4MjQ3IGJvYXJkIHdvcmtpbmcgZm9sbG93aW5nIGFyZSBkb25lOgogICAgIC0gRkNDMiBpcyBkZWFjdGl2YXRlZAogICAgIC0gRkNDMSBpcyBhY3RpdmF0ZWQKICAgICAtIEkyQyBpcyBhY3RpdmF0ZWQKICAgICAtIENGSSBkcml2ZXIgaXMgYWN0aXZhdGVkCiAgICAgLSBBZGFwdGVkIGZvciB1c2Ugd2l0aCBMSUJGRFQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWogU3RlcGFub3YgPFNlcmdlai5TdGVwYW5vdkBpZHMuZGU+CiAgICAtLQoKY29tbWl0IDhiNjY4NGE2OTg1MDBiZTljMTQyZWMyYzlmNDZjZmMzNDhlMTdmMGMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE9jdCAyNCAxNTo0ODozNyAyMDA3ICswMjAwCgogICAgQVRTVEsxMDAyOiBSZW1vdmUgZGVmYXVsdCBldGhlcm5ldCBhZGRyZXNzZXMKCiAgICBXb2xmZ2FuZyBpcyByaWdodDogSXQncyBub3QgYSBnb29kIGlkZWEgdG8gc2V0IHVwIGRlZmF1bHQgaW5pdGlhbAogICAgZXRoZXJuZXQgYWRkcmVzc2VzIGZvciBhIGJvYXJkLCBldmVuIHRob3VnaCB0aGV5IGJlbG9uZyB0byB0aGUgbG9jYWwKICAgIHJhbmdlLgoKICAgIFRoaXMgd2lsbCBjaGFuZ2UgdGhlIGZhaWx1cmUgbW9kZSBmcm9tICJJVCBtYW5hZ2VyIHNjcmVhbXMgYXQgeW91IGZvcgogICAgdXNpbmcgZHVwbGljYXRlIGV0aGVybmV0IGFkZHJlc3NlcyIgdG8gYSBuaWNlIGVycm9yIG1lc3NhZ2UgZXhwbGFpbmluZwogICAgdGhhdCB0aGUgZXRoZXJuZXQgYWRkcmVzcyBoYXNuJ3QgYmVlbiBzZXQgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZTVjNzk0ZTQ5MWE1N2Q4MjliNmQ4NzMzZTJlZDgzNjhhMjI2OWFiZgpBdXRob3I6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTc6NDA6MzUgMjAwNyAtMDQwMAoKICAgIERIQ1AgQ2xpZW50IEZpeAoKICAgIFRoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4gTUlNRSBmb3JtYXQuCgogICAgY29tbWl0IGU2ZTUwNWVhZTk0ZWQ3MjFlMTIzZTE3NzQ4OTI5MWZjNDU0NGI3YjgKICAgIEF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KICAgIERhdGU6ICAgTW9uIE9jdCAyOSAxNzoxOTowMyAyMDA3IC0wNDAwCgoJRm91bmQgYSBidWcgaW4gdGhlIHdheSB0aGUgREhDUCBSZXF1ZXN0IHBhY2tldCBpcyBidWlsdCwgd2hlcmUgdGhlIElQIGFkZHJlc3MKCXRoYXQgaXMgb2ZmZXJlZCBieSB0aGUgc2VydmVyIGlzIGJvdW5kIHRvIHByZW1hdHVyZWx5LiBUaGlzIHBhdGNoIGlzIGEgZml4IG9mCgl0aGF0IGJ1ZyB3aGVyZSB0aGUgSVAgYWRkcmVzcyBvZmZlcmVkIGJ5IHRoZSBESENQIHNlcnZlciBpcyBub3QgdXNlZCB1bnRpbAoJYWZ0ZXIgdGhlIERIQ1AgQUNLIGZyb20gdGhlIHNlcnZlciBpcyByZWNlaXZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgMzE1NDgyNDlkZWNmMThhNmI4NzdhMTg0MzZiNjEzOWRkNDgzZmU0YQpBdXRob3I6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTc6NDA6MzUgMjAwNyAtMDQwMAoKICAgIERIQ1AgQ2xpZW50IEZpeAoKICAgIFRoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4gTUlNRSBmb3JtYXQuCgogICAgY29tbWl0IGU2ZTUwNWVhZTk0ZWQ3MjFlMTIzZTE3NzQ4OTI5MWZjNDU0NGI3YjgKICAgIEF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KICAgIERhdGU6ICAgTW9uIE9jdCAyOSAxNzoxOTowMyAyMDA3IC0wNDAwCgoJRm91bmQgYSBidWcgaW4gdGhlIHdheSB0aGUgREhDUCBSZXF1ZXN0IHBhY2tldCBpcyBidWlsdCwgd2hlcmUgdGhlIElQIGFkZHJlc3MKCXRoYXQgaXMgb2ZmZXJlZCBieSB0aGUgc2VydmVyIGlzIGJvdW5kIHRvIHByZW1hdHVyZWx5LiBUaGlzIHBhdGNoIGlzIGEgZml4IG9mCgl0aGF0IGJ1ZyB3aGVyZSB0aGUgSVAgYWRkcmVzcyBvZmZlcmVkIGJ5IHRoZSBESENQIHNlcnZlciBpcyBub3QgdXNlZCB1bnRpbAoJYWZ0ZXIgdGhlIERIQ1AgQUNLIGZyb20gdGhlIHNlcnZlciBpcyByZWNlaXZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgZThlZThmM2FkZTJhMDZjMTg5M2RkNWU2OGYyMjMwNzBkNjUwYzdlZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxNjoyMiAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTQ0NTU6IEZpeCBjb3JyZWN0IGJvb3QgbG9jYXRpb24gZm9yIGF0bWVsIGFuZCBpbnRlbAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ODhlOGViNDE0YWMxMTFjY2E3Y2U2MGJkZjMwZTgwNWFiOWE3YmNiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjE0OjAwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGJ1aWxkIGVycm9yIHdoZW4gQ09ORklHX1dBVENIRE9HIGlzIGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY3ZTEyZTcwNWIyMDRjZmU5MTRlM2UzZTY5M2Q2OWE0NDVkY2FiZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxMjozNiAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTMyOTogQXNzaWduIGNvcnJlY3QgU0RSQU0gc2l6ZSBhbmQgZml4IGNhY2hlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1ZTlmMmMyMTJhNjU2MTBiMmU1OWE1YzAwZDAxMTMzODNhNGRhMGIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MTA6MjMgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlIDUyNTM6IEFzc2lnbiBjb3JyZWN0IFNEUkFNIHNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmFjZWZhNzJlZTAwMjZmODYyYWI2NTU5N2NhNjg3NDI4ZjYzYTk3MwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzowOToxNyAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTI4MjogRml4IGV4dGVybmFsIGZsYXNoIGJvb3QgYW5kIHJldHVybiBkcmFtc2l6ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNzg3OTFhZTkxNGQ0ZTdjNWVkY2ExY2RhZDczYjNkYzgxYTRlYjgyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoyMDowMSAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogaW5jcmVhc2Uga2VybmVsX2FkZHJfciBhbmQgZmR0X2FkZHJfciAoaGludGVkIGJ5IFdvbGZnYW5nIERlbmspLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMWEwY2UyMGFhNGNiNGUzMDY4ZGEwNGU3MjkwZWU5OTg2ZmQwYjgzNApBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgT2N0IDI0IDA4OjQyOjI1IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBmaXggc3B1cmlvdXMgY2hhcmFjdGVycyBvbiBzZWNvbmQgc2VyaWFsIGludGVyZmFjZQoKICAgIFdpdGggdGhpcyBwYXRjaCBQU0MzIGlzIGNvbmZpZ3VyZWQgYXMgVUFSVC4gVGhpcyBpcyBkb25lLCBiZWNhdXNlIGlmCiAgICB0aGUgcGlucyBvZiBQU0MzIGFyZSBub3QgY29uZmlndXJlZCBhdCBhbGwgKC0+IGFsbCBwaW5zIGFyZSBHUEkpLAogICAgZHVlIHRvIGNyb3NzdGFsaywgc3B1cmlvdXMgY2hhcmFjdGVycyBtYXkgYmUgc2VuZCBvdmVyIHRoZSBSWDIzMl8yX1RYRAogICAgc2lnbmFsIGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYmU0YTg3ZjExZTI5N2E1Y2VkZWRiZjdkZDcxYzAyNDhmMzg3NGFjZApBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgT2N0IDI0IDA4OjQxOjI3IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwUzogZml4IGNvbW1hbmRzIGZvciBTVEs1Mnh4IGJhc2UgYm9hcmQgYmVjYXVzZSBvZiBtaXNzaW5nIFNNNTAxIGdyYWZpYyBjb250cm9sbGVyCgogICAgU29tZSBjb21tYW5kcyBmb3IgdGhlIFNUSzUyeHggYmFzZSBib2FyZCB0cnkgdG8gYWNjZXNzIHRoZSBTTTUwMSBncmFmaWMKICAgIGNvbnRyb2xsZXIuIEJ1dCB0aGUgVFFNNTIwMFMgaGFzIG5vIGdyYWZpYyBjb250cm9sbGVyIChvbmx5IHRoZSBUUU01MjAwCiAgICBhbmQgdGhlIFRRTTUyMDBCIGhhdmUpLiBUaGlzIHBhdGNoIGRlYWN0aXZhdGVzIHRoZSBjb21tYW5kcyBhY2Nlc3NpbmcKICAgIHRoZSBTTTUwMSBmb3IgdGhlIFRRTTUyMDBTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGIzMWY2NDM0M2VhZDk0ODJjZDQzOWIxYWRiZTRjMzQwMjZhNjQxYjEKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNjo0NTo1MyAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogZml4IHNwdXJpb3VzIGNoYXJhY3RlcnMgb24gc2Vjb25kIHNlcmlhbCBpbnRlcmZhY2UKCiAgICBXaXRoIHRoaXMgcGF0Y2ggUFNDMyBpcyBjb25maWd1cmVkIGFzIFVBUlQuIFRoaXMgaXMgZG9uZSwgYmVjYXVzZSBpZgogICAgdGhlIHBpbnMgb2YgUFNDMyBhcmUgbm90IGNvbmZpZ3VyZWQgYXQgYWxsICgtPiBhbGwgcGlucyBhcmUgR1BJKSwKICAgIGR1ZSB0byBjcm9zc3RhbGssIHNwdXJpb3VzIGNoYXJhY3RlcnMgbWF5IGJlIHNlbmQgb3ZlciB0aGUgUlgyMzJfMl9UWEQKICAgIHNpZ25hbCBsaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDBmYzBmOTFiMjBmZmE4MDJmNWE2NjUzNGNhNWMyODQ0OTEwNTgzZjYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNjo0MDowNiAyMDA3ICswMjAwCgogICAgVFFNNTIwMFM6IGZpeCBjb21tYW5kcyBmb3IgU1RLNTJ4eCBiYXNlIGJvYXJkIGJlY2F1c2Ugb2YgbWlzc2luZyBTTTUwMSBncmFmaWMgY29udHJvbGxlcgoKICAgIFNvbWUgY29tbWFuZHMgZm9yIHRoZSBTVEs1Mnh4IGJhc2UgYm9hcmQgdHJ5IHRvIGFjY2VzcyB0aGUgU001MDEgZ3JhZmljCiAgICBjb250cm9sbGVyLiBCdXQgdGhlIFRRTTUyMDBTIGhhcyBubyBncmFmaWMgY29udHJvbGxlciAob25seSB0aGUgVFFNNTIwMAogICAgYW5kIHRoZSBUUU01MjAwQiBoYXZlKS4gVGhpcyBwYXRjaCBkZWFjdGl2YXRlcyB0aGUgY29tbWFuZHMgYWNjZXNzaW5nCiAgICB0aGUgU001MDEgZm9yIHRoZSBUUU01MjAwUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA3YjBhNDIyMTlmMzAyNzdmNzFmNDQwNWNiYWY4YTI2OWY2ZDJkMjI3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAwOToxNDoyOCAyMDA3ICswMjAwCgogICAgTWlwczogRml4IHN0cmluZyBmdW5jdGlvbnMgZGlmZmVyIHByb3RvdHlwZSBkZWNsYXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgY2I4MjUwZmU0YjNjNGVkNTQ5YjI3MGU4YTIwYmMyMjA2MGU3ZTFkMgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMTc6NTE6NDAgMjAwNyAtMDUwMAoKICAgIGZzbF9wY2lfaW5pdCBlbmFibGUgQ09NTUFORF9NRU1PUlkgaWYgaW5ib3VuZCB3aW5kb3cKCiAgICBQYXRjaCAxNmUyM2MzZiByZW1vdmVkIFBDU1JCQVIgYWxsb2NhdGlvbi4JQnV0IHBhc3NpbmcgemVybyB3aW5kb3dzCiAgICB0byBwY2lhdXRvX3NldHVwX2RldmljZSBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIG5vdCBnZXR0aW5nCiAgICBDT01NQU5EX01FTU9SWSBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlOWQwZDUyNzk5MjU2NmViZWY5ODI2OTYyZmYxNzQ1YjJmMDgyYjkyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAxMDo1NToyNCAyMDA3ICswMjAwCgogICAgZGVsdGE6IEZpeCBPSENJX1JFR1NfQkFTRSB1bmRlY2xhcmVkIGFuZCB3YWl0X21zIGltcGxpY2l0IGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5YzQ4ODRmNTRkYTk4MmNlOTkwYzdkMTc2MGFjODFiMDcwNGQzYzY0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwODoxMDoxNSAyMDA3ICswMjAwCgogICAgZml4IHdhcm5pbmc6IG5vIHJldHVybiBzdGF0ZW1lbnQgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlNzgyMjBmNmU1MTQyMDY3NTdhY2ZlMjQ3Mjk3ZmM5YTMyOGE4ODFmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwNjozMzo0NSAyMDA3ICswMjAwCgogICAgeHNlbmdpbmU6IEZpeCBubyBwYXJ0aXRpb24gdHlwZSBzcGVjaWZpZWQsIHVzZSBET1MgYXMgZGVmYXVsdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTBjZGI4ZGJkNjdhODE4ODIzYWI5ZWM4OGI2OGZjMzQ4OTAzZGI1OQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MjQ6NTkgMjAwNyArMDIwMAoKICAgIGx1YmJvY2s6IEZpeCBubyBwYXJ0aXRpb24gdHlwZSBzcGVjaWZpZWQsIHVzZSBET1MgYXMgZGVmYXVsdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDFiNGQyODJkMzhmYTcyMzFjMzE1YzVmNmNmZmY1YmRkMjRlMDE5MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTY6NTA6MDMgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZToga2VlcCBsaXN0cyBzb3J0ZWQ7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU4Yjc0YjA1YzYyMWUyODM1ZWNmNGUyZDMyNDMwNDJjZjQxODY3NzcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjA5OjA1IDIwMDcgKzAyMDAKCiAgICBGaXggbWlzc2luZyBkcml2ZXJzIG1ha2VmaWxlIGVudHJpZXMgZHMxNzIyLmMgbXdfZWVwcm9tLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDk2NDU1YmZlYmM5ODg3ODM3MDk1YzkwNTFkMjE2ZjUzYzYxYjVmMTAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjA3OjM5IDIwMDcgKzAyMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBib2FyZC9pbm5va29tL2lubm9rb20uYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMmE0NzQxZDlhMTRlYzQ3NWY1MGU5ODU2ZDJjMGE2N2U4YjQyNzFiZApBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwMDoyNTozMyAyMDA3ICswMjAwCgogICAgZml4IHB4YTI1NV9pZHAgYm9hcmQKCiAgICBUaGUgcHhhMjU1X2lkcCBiZWluZyBhbiBvbGQgdW5tYWludGFpbmVkIGJvYXJkIHNob3dlZCBzZXZlcmFsIGlzc3VlczoKICAgIDEuIENPTkZJR19JTklUX0NSSVRJQ0FMIHdhcyBzdGlsbCBkZWZpbmVkLgogICAgMi4gTmVpdGhlciBDT05GSUdfTUFDX1BBUlRJVElPTiBub3IgQ09ORklHX0RPU19QQVJUSVRJT04gd2FzIGRlZmluZWQuCiAgICAzLiBTeW1ib2wgZmxhc2hfYWRkciB3YXMgdW5kZWNsYXJlZC4KICAgIDQuIFRoZSBib2FyZHMgbG93bGV2ZWxfaW5pdCBmdW5jdGlvbiB3YXMgc3RpbGwgY2FsbGVkIG1lbXNldHVwLgogICAgNS4gVGhlIFRFWFRfQkFTRSB3YXMgc3RpbGwgMHhhMzAwMDAwMCByYXRoZXIgdGhhbiAweGEzMDgwMDAwLgogICAgNi4gVXNpbmcgLW1hcmNoPWFybXY1IGluc3RlYWQgb2YgLW1hcmNoPWFybXY1dGUgcmVzdWx0ZWQgaW4gbG90cyBvZgogICAgJ3RhcmdldCBDUFUgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcndvcmtpbmcnIHdhcm5pbmdzIG9uIHJlY2VudCBjb21waWxlcnMuCiAgICA3LiBUaGUgUFhBJ3Mgc2VyaWFsIGRyaXZlciByZWRlZmluZWQgRkZVQVJULCBCVFVBUlQgYW5kIFNUVUFSVCB1c2VkIGFzCiAgICBpbmRleGVzIHJhdGhlciB0aGFuIHRoZSByZWdpc3RlciBkZWZpbml0aW9ucyBmcm9tIHRoZSBweGEtcmVncyBoZWFkZXIKICAgIGZpbGUuIFJlbmFtZWQgdGhlbSB0byBGRlVBUlRfSU5ERVgsIEJUVUFSVF9JTkRFWCBhbmQgU1RVQVJUX0lOREVYIHRvCiAgICBhdm9pZCBhbnkgYW1iaWd1aXRpZXMuCiAgICA4LiBUaGVyZSB3ZXJlIHNldmVyYWwgcmVkZWZpbml0aW9uIHdhcm5pbmdzIGNvbmNlcm5pbmcgSUNNUiwgT1NNUjMsCiAgICBPU0NSLCBPV0VSLCBPSUVSLCBSQ1NSIGFuZCBDQ0NSIGluIHRoZSBQWEEncyBhc3NlbWJseSBzdGFydCBmaWxlLgogICAgOS4gVGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZSB3YXMgcmF0aGVyIG91dGRhdGVkLgogICAgMTAuIFRoZSBwYXJ0IGhlYWRlciBmaWxlIGRlZmluZWQgdGhlIHZlbmRvciwgcHJvZHVjdCBhbmQgcmV2aXNpb24gYXJyYXlzCiAgICBhcyB1bnNpZ25lZCBjaGFycyBpbnN0ZWFkIG9mIGp1c3QgY2hhcnMgaW4gdGhlIGJsb2NrX2Rldl9kZXNjX3QKICAgIHN0cnVjdHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgMjk4Y2Q0Y2FmZTgxZmY4YTZjODdiZThmYmM0NDBhMjA3MjBkM2VkNgpBdXRob3I6IFJ1bmUgVG9yZ2Vyc2VuIDxydW5ldEBpbm5vdnN5cy5jb20+CkRhdGU6CVdlZCBPY3QgMTcgMTE6NTY6MzEgMjAwNyAtMDUwMAoKICAgIE1ha2UgTVBDODI2NkFEUyBjb21tYW5kIHNlbGVjdGlvbiBtb3JlIHJvYnVzdAoKICAgIEZpeCBNUEM4MjY2IGNvbW1hbmQgbGluZSBkZWZpbml0aW9uIHNvIGl0IHdvbid0IGJyZWFrIHdoZW4gbmV3IGNvbW1hbmRzCiAgICBhcmUgYWRkZWQgdG8gdS1ib290LgogICAgU2lnbmVkLW9mZi1ieSBSdW5lIFRvcmdlcnNlbiA8cnVuZXRAaW5ub3ZzeXMuY29tPgoKY29tbWl0IGQzYWZhMWVlMTkzNDVhMzFmZDFlYWFkM2U5OGI5N2QxM2NhNDczMTUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgT2N0IDIzIDEzOjE0OjEwIDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBVcGRhdGUgY29uZmlndXJhdGlvbiB0byBhY2NvbW9kYXRlIG5leHQgZ2VuZXJhdGlvbiBib2FyZC4KCiAgICBOZXcgYm9hcmQgaGFzIGZhc3RlciBvc2NpbGxhdG9yIGFuZCBhIGRpZmZlcmVudCBGbGFzaCBjaGlwLiBUaGlzIGFmZmVjdHM6CiAgICAtIENGR19NUEM1WFhYX0NMS0lOCiAgICAtIFNEUkFNIHRpbWluZ3MKICAgIC0gRmxhc2ggQ1MgY29uZmlndXJhdGlvbiAodGltaW5ncykKICAgIC0gRmxhc2ggc2VjdG9yIHNpemUsIGFuZCB0aHVzIE1URCBwYXJ0aXRpb24gbGF5b3V0CiAgICAtIG1hbGxvYygpIGFyZW5hIHNpemUgKGR1ZSB0byBiaWdnZXIgRmxhc2ggc2VjdG9ycykKICAgIC0gc21hbGxlciBtZW1vcnkgdGVzdCByYW5nZSAoZHVlIHRvIGJpZ2dlciBtYWxsb2MoKSBhcmVuYSkKCiAgICBUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdGluZyB2aWEgIm10ZXN0Ii4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGVmZjUwMTkwNGRmMmJmMTcyNGE3NTAwNjI2MjhiYTJjNTFkYmIxZjgKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgT2N0IDIzIDExOjM2OjA3IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgc2V0dGluZyBvZiBTRGVsYXkgcmVnLiB0byBTRFJBTSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24uCgogICAgUGVyIEFOMzIyMSAoTVBDNTIwMEIgU0RSQU0gSW5pdGlhbGl6YXRpb24gYW5kIENvbmZpZ3VyYXRpb24pLCB0aGUgU0RlbGF5CiAgICByZWdpc3RlciBtdXN0IGJlIHdyaXR0ZW4gYSB2YWx1ZSBvZiAweDAwMDAwMDA0IGFzIHRoZSBmaXJzdCBzdGVwIG9mIHRoZQogICAgU0RSQU0gY29udG9ybGxlciBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgN2E5MzQ4NzI4ZWJkYTYzY2RiYWFjZmZkODMwOTlhYTcxZDlkNGM1NApBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTA6MjI6MTYgMjAwNyArMDEwMAoKICAgIE1vdmUgUEwwMSogc2VyaWFsIGRyaXZlcnMgdG8gZHJpdmVycy9zZXJpYWwgYW5kIGFkanVzdCBNYWtlZmlsZXMuCgpjb21taXQgMjBkNTAwZDUzMWE2Yjk3MWNlNmNjMWJmMTkxY2IwMDkyY2RjMGFmYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxMDoxNzo0MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IFNvbWUgZnVydGhlciBHUElPIGNvbmZpZyBjaGFuZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRlOWE3MzhmYWE3YzJmNDcyODYxMTljM2JmZWJjM2RmYmZlN2Q4NmQKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJU3VuIE9jdCAyMSAyMjoxMDoxMCAyMDA3ICswOTAwCgogICAgW01JUFNdIEZpeCBVTkNBQ0hFRF9TRFJBTQoKICAgIFBIWVNBRERSIGlzIGZvciBwaHlzaWNhbCBhZGRyZXNzLCBLU0VHMUFERFIgaXMgZm9yIHVuY2FjaGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDAwMTAxZGQ3YTMyZDEyZjY5ODE1MDEyM2U0N2U0YjM0MjAyNzlmODYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMjE6MzA6NDIgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBBZGQgUElDLXJlbGF0ZWQgc3dpdGNoZXMgdG8gUExBVEZPUk1fe0NQUCxMRH1GTEFHUyBhbmQgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCBlYjcwMDYzNmRiMDE3ZDMxMGVkYWViNTU5YjEzZDgyNTg4NTYwNjc0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM3IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogRGVmaW5lIF9ncCBpbiBhIHN0YW5kYXJkIG1hbm5lcgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCAyMjA2OTIxNWViN2FkZjVhMzg4OGJmN2M3Nzg0ZWE5ZDcwYTcyY2QwCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gRml4ICRncCB1c2FnZQoKICAgIE5vdyB3ZSBsb2FkICRncCB3aXRoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXywgYnV0IHRoaXMgaXMgaW5jb3JyZWN0IHVzZS4KICAgIEFzIGEgZ2VuZXJhbCBwcmluY2lwbGUsIHdlIHNob3VsZCB1c2UgX2dwIGZvciAkZ3AuCgogICAgVGhhbmtzIHRvIGxpbmtlciBzY3JpcHQncyBoZWxwIHdlIGZvcnR1bmF0ZWx5IGhhdmUgX2dwIHdoaWNoIGVxdWFscyB0bwogICAgX0dMT0JBTF9PRkZTRVRfVEFCTEVfLiBCdXQgb25jZSBfZ3AgZ2V0cyBvdXQgb2YgYWxpZ25tZW50LCB3ZSB3aWxsIG5vdAogICAgYmUgYWJsZSB0byBhY2Nlc3MgdG8gR09UIGVudGlyZXMsIGdsb2JhbCB2YXJpYWJsZXMgYW5kIHByb2NlZHVyZSBlbnRyeQogICAgcG9pbnRzLiBUaGUgcmlnaHQgdGhpbmcgdG8gZG8gaXMgdG8gdXNlIF9ncC4KCiAgICBUaGlzIHBhdGNoIGFsc28gaW50cm9kdWNlIGEgbmV3IHN5bWJvbCBgLmdwd29yZCBfR0xPQkFMX09GRlNFVF9UQUJMRV8nCiAgICB3aGljaCBob2xkcyB0aGUgb2Zmc2V0IGZyb20gX2dwLiBXaGVuIHVwZGF0aW5nIEdPVCBlbnRyaWVzLCB3ZSB1c2UgdGhpcwogICAgb2Zmc2V0IGFuZCBfZ3AgdG8gY2FsY3VsYXRlIHRoZSBmaW5hbCBfR0xPQkFMX09GRlNFVF9UQUJMRV8uCgogICAgVGhpcyBwYXRjaCBpcyBvcmlnaW5hbGx5IHN1Ym1pdHRlZCBieSBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4sIHRoZW4KICAgIEkgbWFkZSBzb21lIGNoYW5nZSB0byBsZWF2ZSBvdmVyIG51bV9nb3RfZW50cmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBDYzogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgY2JmMjMyM2I1YjgyODVlYTAxYWNiYTdiYmI5MDVhMzE2MmQ5YjAyMQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAxMDo1NTozNiAyMDA3ICswOTAwCgogICAgW01JUFNdIHUtYm9vdC5sZHM6IEZpeCBfX2dvdF9zdGFydCBhbmQgX19nb3RfZW5kCgogICAgRW5zdXJlIHRoYXQgX19nb3Rfc3RhcnQgcG9pbnRzIHRvIHRvcCBvZiB0aGUgYC5nb3QnLCBhbmQgX19nb3RfZW5kIHBvaW50cwogICAgdG8gYm90dG9tIGFzIHdlbGwsIHNvIHRoYXQgd2UgbmV2ZXIgZmFpbCB0byBjb3VudCBudW1fZ290X2VudHJpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGU1ZjMyNWZlYzViNDhhZTcwNWM4OTUyMjkyM2JhNWEyZTM3Y2Q1YzcKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSB1LWJvb3QubGRzOiBSZW1vdmUgZHVwbGljYXRlZCAuc2RhdGEgc2VjdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCAwNWJmNDkxOWMxY2U0OWNkZWRhZGFjZDU2NGQwNzg2YThlZDc5NmExCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyMSAwMTowMToxNyAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZmMjg1Y2EwN2VkYTFlYTRhODkwOTg0OGNjMWNjNjA0ZWM4ZmVjOWMKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJVGh1IE9jdCA0IDIwOjQ3OjEwIDIwMDcgKzAzMDAKCiAgICBGaXggTkUyMDAwIGRyaXZlcjoKCiAgICBGaXhlZCB0eXBvIGluIG5lMjAwMC5oLCB0aGlua28gcmUgbjJrX2luYigpIHVzYWdlLCBkb24ndCB0cnkKICAgIHRvIGRvIGFueXRoaW5nIGluIGV0aF9zdG9wKCkgaWYgZXRoX2luaXQoKSB3YXMgbm90IGNhbGxlZC4KICAgIFNpbXBsaWZpZWQgUlggcGF0aCBpbiBvcmRlciB0byBhdm9pZCB0aW1lb3V0cyBvbiByZWFsbHkgcmVhbGx5CiAgICBmYXN0IE5FMjAwMCBjYXJkcyAocmVhZDogcWVtdSB3aXRoIGludGVybmFsIHRmdHApLCBOZXRMb29wKCkgaXMKICAgIGNsZXZlciBlbm91Z2ggdG8gY29wZSB3aXRoIDEgcGFja2V0IHBlciBldGhfcngoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBkZjkwOTY4YjQ4ZmIzNGZhOTA3MmZhYjE1MGRiMmFjODk2NzhmNTM3CkF1dGhvcjogdXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20gPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgpEYXRlOglNb24gU2VwIDI0IDEzOjMyOjEzIDIwMDcgLTA0MDAKCiAgICBTZXR0aW5nIE1TUltERV0gaW4gZG9fcmVzZXQKCiAgICBIZWxsbywKICAgICAgIFRoaXMgcGF0Y2ggZW5zdXJlcyB0aGUgc29mdCByZXNldCBvZiB0aGUgYm9hcmQgZm9yIHRoZSA4NXh4IGJvYXJkcwogICAgICAgYnkgc2V0dGluZyB0aGUgTVNSW0RFXSBpbiB0aGUgZG9fcmVzZXQgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3VnaG9zaCBHYW51IDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KCmNvbW1pdCAxZTcwMWU3MDEzMDRiM2MzYTM3NjhjYTgzZGQyYWI3YjllODhjNzdkCkF1dGhvcjogdXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20gPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgpEYXRlOglNb24gU2VwIDI0IDEzOjM2OjAxIDIwMDcgLTA0MDAKCiAgICBNU1Igb3ZlcndyaXRlIGZpeAoKICAgIEhlbGxvLAogICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBNU1Igb3ZlcndyaXRlIGluIHRoZSBzdGFydC5TIHdoZW4gbW92aW5nIG91dCBvZgogICAgICB0aGUgbGFzdCA0SyBwYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN1Z2hvc2ggR2FudSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+Cgpjb21taXQgNWM3ZWE2NGJiNzRhODUwYTJiMjMwM2Y4NTNhODI3MDY5NWFkODYwMgpBdXRob3I6IERhbiBXaWxzb24gPGR3aWxzb25AZnVsY3J1bW1pY3JvLmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAxMTozMzo0OCAyMDA3IC0wNTAwCgogICAgdHNlYyBkcml2ZXIgc2hvdWxkIGNsZWFyIFJIQUxUIG9uIHN0YXJ0dXAKCiAgICBUaGlzIHdhcyBjYXVzaW5nIHByb2JsZW1zIGZvciBzb21lIHBlb3BsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGFpbiBHcmF2ZWwgPGFncmF2ZWxAZnVsY3J1bW1pY3JvLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhbiBXaWxzb24gPGR3aWxzb25AZnVsY3J1bW1pY3JvLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NjAwZDQ3YjhmNmExMDAxOWU1MzdkYzlhNjJhYTE0OThkZjU4ZDI1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAxMSAwMDoyOToxOCAyMDA3IC0wNTAwCgogICAgSW1wcm92ZSBoYW5kbGluZyBvZiBQQ0kgaW50ZXJydXB0IGRldmljZSB0cmVlIGZpeHVwIG9uIE1QQzg1eHggQ0RTCgogICAgT24gdGhlIE1QQzg1eHggQ0RTIHdlIGhhdmUgdHdvIGlzc3VlczoKCiAgICAxLiBUaGUgZGV2aWNlIHRyZWUgZml4dXAgY29kZSBkaWQgbm90IGNoZWNrIHRvIHNlZSBpZiB0aGUgcHJvcGVydHkgd2UgYXJlCiAgICB0cnlpbmcgdG8gdXBkYXRlIGlzIGFjdHVhbGx5IGZvdW5kLiAgSXRzIHBvc3NpYmxlIHRoYXQgaXQgd291bGQgdXBkYXRlCiAgICByYW5kb20gbWVtb3J5IHN0YXJ0aW5nIGF0IDAuCgogICAgMi4gTmV3ZXIgTGludXgga2VybmVsJ3MgaGF2ZSBtb3ZlZCB0aGUgbG9jYXRpb24gb2YgdGhlIFBDSSBub2RlcyB0byBiZQogICAgc2liaWxpbmdzIG9mIHRoZSBzb2Mgbm9kZSBhbmQgbm90IGNoaWxkcmVuLiAgVGhlIGV4cGxpY2l0IFBBVEggdG8gdGhlIFBDSQogICAgbm9kZSB3b3VsZCBub3QgYmUgZm91bmQgZm9yIHRoZXNlIGRldmljZSB0cmVlcy4gIEFkZCB0aGUgYWJpbGl0eSB0byBoYW5kbGUKICAgIGJvdGggcGF0aHMuICBJbiB0aGUgZnV0dXJlIHdlIHNob3VsZG4ndCBoYW5kbGUgc3VjaCBmaXh1cHMgYnkgZXhwbGljaXQgcGF0aC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGEzMDYzZWVjNzc1NzE5YjdlOTEwMjNiYmVjM2Y2NGIzMTE4NzkxZGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDExIDAwOjE4OjQ4IDIwMDcgLTA1MDAKCiAgICBTZXQgT0ZfU1RET1VUX1BBVEggdG8gbWF0Y2ggdGhlIGRlZmF1bHQgY29uc29sZSBvbiBNUEM4NTY4IE1EUwoKICAgIE9uIHRoZSBNUEM4NTY4IE1EUyB3ZSB1c2UgdHR5UzAsIFVBUlQwLCBldGMuIGFzIHRoZSBzdGFuZGFyZCBjb25maWd1cmVkCiAgICBjb25zb2xlLiAgTWFrZSBpdCBzbyB3ZSBtYXRjaCB0aGF0IGNvbmZpZyB3aGF0IHdlIHRlbGwgTGludXggYXMgdGhlIGVhcmx5CiAgICBTVERPVVQgY29uc29sZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGUxY2UzY2I2MTdiYjA2ZjkxZjgyZjk4OTE1MzkxMTc1YWRkZjNlODIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDIgMTE6MTI6MjcgMjAwNyAtMDUwMAoKICAgIFJlbW92ZSBtYWdpYyBudW1iZXJzIGZyb20gY2FjaGUgcmVsYXRlZCBvcGVyYXRpb25zIGZvciBtcGM4NXh4CgogICAgVGhlIG1wYzg1eHggc3RhcnQgY29kZSB1c2VzIHNvbWUgbWFnaWMgbnVtYmVycyB0aGF0IHdlIGFjdHVhbGx5CiAgICBoYXZlICNkZWZpbmVzIGZvciBpbiA8Y29uZmlnLmg+IHNvIHVzZSB0aG9zZSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTQ0MWY2MWEzZDhiNzAzNGYxOWZjMTM2MTE4M2U5MzYxOThlNmRiYgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE5IDE2OjQ3OjI2IDIwMDcgKzAyMDAKCiAgICBGaXggdHdvIHR5cG9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDI4MWRmNDU3YzFhYTUwZDI3NTIxNjVkMGM1YzMyODJkNDAyN2I5NzQKQXV0aG9yOiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTggMTc6NDc6MTkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBjb25maWd1cmUgZW50cnkgZm9yIE1QQzgzeHggQVRNIHN1cHBvcnQKCiAgICBBZGQgTVBDODM2MEVNRFNfQVRNX2NvbmZpZyBhbmQgTVBDODMyWEVNRFNfQVRNX2NvbmZpZyBpbnRvCiAgICBNYWtmaWxlIGFuZCBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMjY0NjU1NGY1MjlhOTU3NzUxNWVjZWIwZWM1ZWNlZWUxODI0NGJhCkF1dGhvcjogVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDE4IDE3OjQ0OjM4IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBwcS1tZHMtcGliLmMgdHlwbyBlcnJvcgoKICAgIENvcnJlY3QgdG8gdmFsOCBmcm9tIHZhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNlMTFhZTgwZmVjMWVlMTIxOTQ5NDA5NTU0MzExODZhYmY2MDA5YzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTcgMTU6NDA6MTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIDY2Ny8xMzMgKENQVS9QTEIpIGZyZXF1ZW5jeSBzZXR1cCB0byBTZXF1b2lhIGJvb3RzdHJhcCBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdlZTZiYTFhMDU2ZTQwNjFhYjRjZmRlMzAxMjdlMzMyZTc5NTdhZmQKQXV0aG9yOiBydW5ldEBpbm5vdnN5cy5jb20gPHJ1bmV0QGlubm92c3lzLmNvbT4KRGF0ZToJVHVlIE9jdCAxNiAxNDo1MDo0MCAyMDA3IC0wNTAwCgogICAgTWFrZSBNUEM4MjY2QURTIGJvYXJkIGNvbXBpbGUgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogUnVuZXQgVG9yZ2Vyc2VuIDxydW5ldEBpbm5vdnN5cy5jb20+Cgpjb21taXQgMjQ5MTE2N2MyNDVkOGViZTZmMmRiZDhjNDI4N2FhYTBkMTRmZTkzYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMjcgMTI6NDE6MDMgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEFsbG93IGZvciBmZXdlciBERFIgc2xvdHMgcGVyIG1lbW9yeSBjb250cm9sbGVyLgoKICAgIEFzIGEgZGlyZWN0IGNvcnJlbGF0aW9uIGV4aXN0cyBiZXR3ZWVuIEREUiBESU1NIHNsb3RzCiAgICBhbmQgU1BEIEVFUFJPTSBhZGRyZXNzZXMgdXNlZCB0byBjb25maWd1cmUgdGhlbSwgdXNlCiAgICB0aGUgaW5kaXZpZHVhbGx5IGRlZmluZWQgU1BEX0VFUFJPTV9BRERSRVNTKiB2YWx1ZXMgdG8KICAgIGRldGVybWluZSBpZiBhIEREUiBESU1NIHNsb3Qgc2hvdWxkIGhhdmUgaXRzIFNQRAogICAgY29uZmlndXJhdGlvbiByZWFkIG9yIG5vdC4KCiAgICBFZmZlY3RpdmVseSwgdGhpcyBub3cgYWxsb3dzIGZvciAxIG9yIDIgRElNTSBzbG90cwogICAgcGVyIG1lbW9yeSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQ0YTk0NWUxODlhMmYzODRjNjY0MzIzMTZkYTI3ODhhMGFjMTYwNwpBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJTW9uIE9jdCAxNSAxMTo1OToxNyAyMDA3ICswMjAwCgogICAgUFhBIFVTQiBPSENJOiAidXNiIHN0b3AiIGltcGxlbWVudGF0aW9uLgoKICAgIFNvbWUgVVNCIGtleXMgbmVlZCB0byBiZSBzd2l0Y2hlZCBvZmYgYmVmb3JlIGxvYWRpbmcgdGhlIGtlcm5lbAogICAgb3RoZXJ3aXNlIHRoZXkgY2FuIHJlbWFpbiBpbiBhbiB1bmRlZmluZWQgc3RhdHVzIHdoaWNoIHByZXZlbnRzIHRoZW0KICAgIHRvIGJlIGNvcnJlY3RseSByZWNvZ25pemVkIGJ5IHRoZSBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgZTJlOTM0NDJlNTU4Y2YxNTAwZTkyODYxZjk5NzEzYjJmMDQ1ZWEyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAxNSAxMTozOTowMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggYnVnIGluIEkyQyBib290c3RyYXAgdmFsdWVzIGZvciBTZXF1b2lhL1JhaW5pZXIKCiAgICBUaGUgSTJDIGJvb3RzdHJhcCB2YWx1ZXMgdGhhdCBjYW4gYmUgc2V0dXAgdmlhIHRoZSAiYm9vdHN0cmFwIiBjb21tYW5kLAogICAgd2VyZSBzZXR1cCBpbmNvcnJlY3QgcmVnYXJkaW5nIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBpbnRlcm5hbCBzeW5jIFBDSQogICAgY2xvY2suIFRoZSB2YWx1ZXMgZm9yIFBMQiBjbG9jayA9PSAxMzNNSHogd2VyZSBzbGlnaGx5IGluY29ycmVjdCBhbmQgdGhlCiAgICB2YWx1ZXMgZm9yIFBMQiBjbG9jayA9PSAxNjZNSHogd2VyZSB0b3RhbGx5IGluY29ycmVjdC4gVGhpcyBjb3VsZAogICAgbGVhZCB0byBhIGhhbmd1cCB1cG9uIGJvb3Rpbmcgd2hpbGUgUENJIGNvbmZpZ3VyYXRpb24gc2Nhbi4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUgYW5kIGNvbmZpZ3VyZXMgdmFsaWQgUENJIGRpdmlzb3IgdmFsdWVzCiAgICBmb3IgdGhlIHN5bmMgUENJIGNsb2NrLCB3aXRoIHJlc3BlY3QgdG8gdGhlIHByb3ZpZGVkIGV4dGVybmFsIGFzeW5jCiAgICBQQ0kgZnJlcXVlbmN5LgoKICAgIEhlcmUgdGhlIHZhbHVlcyBvZiB0aGUgZm9ybXVsYSBpbiB0aGUgY2hhcHRlciAxNC4yICJQQ0kgY2xvY2tpbmciCiAgICBmcm9tIHRoZSA0NDBFUHggdXNlcnMgbWFudWFsOgoKICAgIEFzeW5jUENJQ0xLIC0gMU1IeiA8PSBTeW5jUENJQ2xrIDw9ICgyICogQXN5bmNQQ0lDbGspIC0gMU1IegoKICAgIDMzTUh6IGFzeW5jIFBDSSBmcmVxdWVuY3k6CiAgICBQTEIgPSAxMzM6CiAgICA9PgkgICAgMzIgPD0gNDQuMyA8PSA2NQkgICAgKGRpdiA9IDMpCgogICAgUExCID0gMTY2OgogICAgPT4JICAgIDMyIDw9IDU1LjMgPD0gNjUJICAgIChkaXYgPSAzKQoKICAgIDY2TUh6IGFzeW5jIFBDSSBmcmVxdWVuY3k6CiAgICBQTEIgPSAxMzM6CiAgICA9PgkgICAgNjUgPD0gNjYuNSA8PSAxMzIJICAgIChkaXYgPSAyKQoKICAgIFBMQiA9IDE2NjoKICAgID0+CSAgICA2NSA8PSA4MyA8PSAxMzIJICAgIChkaXYgPSAyKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1YTU5NThiN2RlNzBhZTk5ZjBlN2NiZDVjOTdlYzEzNDZlMDUxNTg3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDE1IDExOjI5OjMzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBpbmNvcnJlY3QgMzMvNjZNSHogUENJIGNsb2NrIGxvZy1tZXNzYWdlIG9uIFNlcXVvaWEgJiBZb3NlbWl0ZQoKICAgIFRoZSBCQ1NSIHN0YXR1cyBiaXQgZm9yIHRoZSA2Nk1IeiBQQ0kgb3BlcmF0aW9uIHdhcyBjb3JyZWN0bHkKICAgIGFkZHJlc3NlZCAoTVNCL0xTQiBwcm9ibGVtKS4gTm93IHRoZSBjb3JyZWN0IGN1cnJlbnRseSBzZXR1cAogICAgUENJIGZyZXF1ZW5jeSBpcyBkaXNwbGF5ZWQgdXBvbiBib290dXAuCgogICAgVGhpcyBwYXRjaCBhbHNvIGZpeGVzIHRoaXMgcHJvYmxlbSBvbiBSYWluaWVyICYgWWVsbG93c3RvbmUsIHNpbmNlIHRoZXNlCiAgICBib2FyZHMgdXNlIHRoZSBzYW1lIHNvdWNlIGNvZGUgYXMgU2VxdW9pYSAmIFlvc2VtaXRlIGRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYTNhYWQ1NWNiZGU4MGFiNmUzMDFhYWZhODJhMmM0MTFhYTUzZWZmCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTYgMjAwNyArMDIwMAoKICAgIFRRTTg2ME06IGFkanVzdCBmb3IgZG91YmxlZCBmbGFzaCBzZWN0b3Igc2l6ZS4KCiAgICBBZGp1c3QgZmxhc2ggbWFwIHRvIHN1cHBvcnQgdGhlIG5ldyBTMjlHTHh4TiAoTi1UeXBlKSBGbGFzaGVzIHdpdGgKICAgIGRvdWJsZWQgc2VjdG9yIHNpemUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgOWQyOTI1MGUyZTYyZjRiZjIwYzdhMjBiNDE3M2Q4NGM0OGYxMWY1ZApBdXRob3I6IEplbnMgR2VocmxlaW4gPGplbnMuZ2VocmxlaW5AdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU0IDIwMDcgKzAyMDAKCiAgICBUUU04eHg6IEZpeCBDQU4gdGltaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGQ0M2U0ODliYWYwMmFmYWU0OTA3Nzc5MWZiMjIzMzJkMjQwZDg2NTYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJVGh1IFNlcCAyNyAxNDo1NDozNiAyMDA3ICswMjAwCgogICAgVFFNODY2TTogZml4IFNEUkFNIHJlZnJlc2gKCiAgICBBdCAxMzMgTUh6IHRoZSBjdXJyZW50IFNEUkFNIHJlZnJlc2ggcmF0ZSBpcyB0b28gZmFzdAogICAgKG1lYXN1cmVkIDQgKiAxLjE3IHVzKS4KICAgIENGR19NQU1SX1BUQSBjaGFuZ2VzIGZyb20gMzkgdG8gOTcuIFRoaXMgcmVzdWx0CiAgICBpbiBhIHJlZnJlc2ggcmF0ZSBvZiA0ICogNy44IHVzIGF0IHRoZSBkZWZhdWx0IGNsb2NrCiAgICA1MCBNSHouIEF0IDEzMyBNSHogdGhlIHZhbHVlIHdpbGwgYmUgdGhlbiA0ICogMi45IHVzLgogICAgVGhpcyBpcyBhIGNvbXByb21pc2UgdW50aWwgYSBuZXcgbWV0aG9kIGlzIGZvdW5kIHRvCiAgICBhZGp1c3QgdGhlIHJlZnJlc2ggcmF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA5ZWY1N2JiZWUxYzY3Y2MwMWRhMjAyNmMyNDJjNDY5MmRiMzJiZTM2CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBTZXAgMjYgMTc6NTU6NTUgMjAwNyArMDIwMAoKICAgIFRRTTg2Nk06IGFkanVzdCBmb3IgZG91YmxlZCBmbGFzaCBzZWN0b3Igc2l6ZS4KCiAgICBBZGp1c3QgZmxhc2ggbWFwIHRvIHN1cHBvcnQgdGhlIG5ldyBTMjlHTHh4TiAoTi1UeXBlKSBGbGFzaGVzIHdpdGgKICAgIGRvdWJsZWQgc2VjdG9yIHNpemUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZjhiZjkwNDYxZDliYWQyZTZmZWQzMWZjZWJhZjIzNWY2MGRkNjc2MwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE9jdCAxNCAxNjoxMjoyOSAyMDA3ICswMjAwCgogICAgW0ZJWF0gWFVQVjJQIGNoYW5nZSBjb21tYW5kIGhhbmRsaW5nCiAgICBhbmQgcmVtb3ZlIGNvZGUgdmlvbGF0aW9uCgpjb21taXQgNjM2NDAwMTk4MjI4ZDk2OTgzYzA2NjU3YjE3Zjc2MGY1OTg5OTU4ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBPY3QgMTQgMDA6MTM6MTkgMjAwNyArMDIwMAoKICAgIFByZXBhcmUgZm9yIDEuMy4wLXJjMyByZWxlYXNlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2OGYxNGY3N2NhNWZlNWY5Y2MwMjVjOGNhZTEwMTY3MWY2MjgzMDlmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IFNlcCAyOSAxMzo0MTozNyAyMDA3ICswMjAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gY3B1L3B4YS9tbWMuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZmMxOWUzNmY3NDFlOGJjNzI3YzBhMzMwMTcwYjNiNWRiOTAzOTllZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMTMgMjM6NTE6MTQgMjAwNyArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGJvYXJkL21wbC92Y21hOS92Y21hOS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGU3NGI5ZWVhY2NjYWYwYTQyZTVlY2M5YWU3OWE4OGY3YTMxMTI5NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMTMgMjE6MTU6MzkgMjAwNyArMDIwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTE4OTM4MTViMDk5OTQxMGQ3YTMyNzU4OTYxMWM3YjM4ZTk1Mjk5ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTIgMTU6NDk6MzkgMjAwNyArMDIwMAoKICAgIEdQMyBTU0E6IGVuYWJsZSBSVEMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDgwMDIwMTIwNDFmMWZmOWY5OTdhNTcyN2FiZTUwMTVmNzBjZDJlNDYKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE9jdCA5IDEzOjU4OjI0IDIwMDcgKzAyMDAKCiAgICBbYWRzNTEyMV0gRUVQUk9NIHN1cHBvcnQgYWRkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgN2I2MjRhZDI1NGI5N2U1YTI1ZGNhMjMwNGEzOThiNjRhZWVkYWZmZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgT2N0IDYgMTg6NTU6MzUgMjAwNyArMDIwMAoKICAgIEFWUjMyOiBJbml0aWFsaXplIGJpX2ZsYXNoKiBpbiBib2FyZF9pbml0X3IKCiAgICBUaGUgQVRTVEsxMDAwLXNwZWNpZmljIGZsYXNoIGRyaXZlciBpbnRpYWxpemVzIGJpX2ZsYXNoc3RhcnQsCiAgICBiaV9mbGFzaHNpemUgYW5kIGJpX2ZsYXNob2Zmc2V0LCBidXQgb3RoZXIgZmxhc2ggZHJpdmVycywgbGlrZSB0aGUgQ0ZJCiAgICBkcml2ZXIsIGRvbid0LgoKICAgIEluaXRpYWxpemUgdGhlc2UgaW4gYm9hcmRfaW5pdF9yIGluc3RlYWQgc28gdGhhdCB0aGluZ3Mgd2lsbCBzdGlsbCBiZQogICAgc2V0IHVwIGNvcnJlY3RseSB3aGVuIHdlIHN3aXRjaCB0byB0aGUgQ0ZJIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyYjJhNTg3ZDZkMzA3NjM4N2QyMmFjNzQwZjQ0MDQ0YmY0NmUyY2I4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIE9jdCA1IDEwOjQwOjU0IDIwMDcgKzAyMDAKCiAgICB0cW01MjAwOiBGaXggQ09ORklHX0NNRF9QQ0kgdHlwbyBpbiBib2FyZCBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkyODY5MTk1ZWY4MjEwNzU4ZDIxNzYyMzBjMGEzNjg5N2FmZDUwZWQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgT2N0IDUgMDk6NDY6MDYgMjAwNyArMDIwMAoKICAgIENNNTIwMDogRml4IG1pc3NpbmcgbnVsbC10ZXJtaW5hdGlvbiBpbiBob3N0bmFtZSBtYW5pcHVsYXRpb24gY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOWFkZDk4ODRiMWZkZGMzNGNhMTg2ZTAwYTJmODY4Y2NkNWQwMmQ4NwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUdWUgT2N0IDIgMTk6MDk6MDEgMjAwNyArMDIwMAoKICAgIEZpeCBtZW10ZXN0IGJyZWFrYWdlCgogICAgQ0ZHX01FTVRFU1RfU1RBUlQgdXNlcyB3ZWlyZCBtYWdpYyBpbnZvbHZpbmcgZ2QsIHdoaWNoIGZhaWxzIHRvCiAgICBjb21waWxlLiBVc2UgaGFyZGNvZGVkIHZhbHVlcyBpbnN0ZWFkICh3ZSBhY3R1YWxseSBrbm93IGhvdyBtdWNoIFJBTQogICAgd2UgaGF2ZSBvbiBib2FyZC4pCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNzM4ODE1YzBjYzQ0YWEzMjkwOTdmODY4ZGMxZWZjNDllZGU5YzViYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyIDExOjQ0OjQ2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg3YzE4MzNhMzllOTQ0ZGI2NjM4NTI4NmZkNWUyOGY5YjNmY2RkNTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMiAxMTo0NDoxOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IFJlbW92ZSB3YXRjaGRvZyBmb3Igbm93LCBzaW5jZSBub3QgZnVsbHkgdGVzdGVkIHlldAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZGI2NDc4NDA2MWJmYzM0ZjRiYTcwZWYxZDJmYmU3MTMzYjU1NjcwCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBPY3QgMSAwOTo1MTo1MCAyMDA3ICswMjAwCgogICAgUHJvZ3JhbSBFUExEIHRvIGZvcmNlIGZ1bGwgZHVwbGV4IG1vZGUgZm9yIFBIWS4KCiAgICBFUExEIGZvcmNlcyBtb2RlcyBvZiBQSFkgb3BlcmF0aW9uLiBCeSBkZWZhdWx0IGZ1bGwgZHVwbGV4IGlzIHR1cm5lZCBvZmYuCiAgICBUaGlzIGZpeCB0dXJucyBpdCBvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3ODVjMTM0NzdiNzdkY2QyZTZjNTEyOGZmZmNkYjRlMTk0M2Y0ODE4CkF1dGhvcjogVGltbyBLZXRvbGEgPHRpbW8ua2V0b2xhQGV4ZXJ0dXMuZmk+CkRhdGU6CU1vbiBTZXAgMjQgMTQ6NTA6MzIgMjAwNyArMDMwMAoKICAgIEJ1Z2ZpeDogVXNlIG9ubHkgb25lIFBURCBmb3Igb25lIGVuZHBvaW50CgogICAgT3JpZ2luYWwgaXNwMTE2eC1oY2QgY29kZSBwcmVwYXJlZCBtdWx0aXBsZSBQVERzIGZvciBsb25nZXIgdGhhbiAxNgogICAgYnl0ZSB0cmFuc2ZlcnMgZm9yIG9uZSBlbmRwb2ludC4gVGhhdCBpcyB1bm5lY2Vzc2FyeSBiZWNhdXNlIHRoZQogICAgSVNQMTE2eCBpcyBhYmxlIHRvIHNwbGl0IGxvbmcgZGF0YSBmcm9tIG9uZSBQVEQgaW50byBtdWx0aXBsZQogICAgdHJhbnNhY3Rpb25zIGJhc2VkIG9uIHRoZSBidWZmZXIgc2l6ZSBvZiB0aGUgZW5kcG9pbnQuIEl0IGFsc28gY2F1c2VkCiAgICBzZXJpb3VzIHByb2JsZW1zIGlmIHRoZSBlbmRwb2ludCBOQUtlZCBzb21lIG9mIHRoZSB0cmFuc2FjdGlvbnMuIEluCiAgICB0aGF0IGNhc2UgSVNQMTE2eCB3b3VsZG4ndCBub3RpY2UgdGhhdCB0aGUgb3RoZXIgUFREcyB3ZXJlIGZvciB0aGUgc2FtZQogICAgZW5kcG9pbnQgYW5kIHdvdWxkIHRyeSB0aGUgb3RoZXIgUFREcyBwb3NzaWJseSBvdXQgb2Ygb3JkZXIuIFRoYXQgd291bGQKICAgIGJyZWFrIHRoZSB3aG9sZSB0cmFuc2Zlci4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIGlzcDExNnhfc3VibWl0X2pvYiB0byB1c2Ugb25lIFBURCBmb3Igb25lIHRyYW5zZmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbW8gS2V0b2xhIDx0aW1vLmtldG9sYUBleGVydHVzLmZpPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA4NmVjODZjMDQzMjZjMzkxMzE3OGE3Njc5YWE5MTBkZTA3MWRhNzVkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IFNlcCAyNyAyMzoyNzo0NyAyMDA3ICswMjAwCgogICAgRml4IG1pc3NpbmcgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgb24gQ09ORklHX0xQQzIyOTIgaW4gc2VyaWFsCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzZTk1NGJlYjYxNGI1YjE5MGQ3ZjRmNGMzYjY0MTQzN2EwMTMyZTM1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDExIDE0OjEyOjU1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogQ2hhbmdlIEdQSU8gNTggdG8gZGVmYXVsdCB0byBsb3cgKHdhdGNoZG9nIHRlc3QpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE0ODdhZGJkY2Y5NTk0YmIyZWI2ODYzMjVhNmY5NTQwZGFkMWI3MGEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDI2IDE2OjM1OjU0IDIwMDcgLTA1MDAKCiAgICA4NXh4IGlvIG91dCBmdW5jdGlvbnMgbmVlZCBzeW5jIGFmdGVyIHdyaXRlLgoKICAgIFRoaXMgZml4ZXMgdGhlIG1jMTQ2ODE4IHJ0Y19yZWFkL3dyaXRlIGZ1bmN0aW9ucyBmb3IgODV4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBkMzhlZmZjNmUzNTllNmIxYjBjNzhkNjZlOGJjMWE0ZGMxNWEyYWUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBTZXAgMjUgMTU6NDg6MDUgMjAwNyAtMDYwMAoKICAgIEZwZ2E6IGZpeCBpbmNvcnJlY3QgdGVzdCBvZiBDRkdfRlBHQV9YSUxJTlggbWFjcm8KCiAgICBDRkdfRlBHQV9YSUxJTlggaXMgYSBiaXQgdmFsdWUgdXNlZCB0byB0ZXN0IGFnYWluc3QgdGhlIHZhbHVlIGluCiAgICBDT05GSUdfRlBHQS4gIFRlc3RpbmcgZm9yIGEgdmFsdWUgd2lsbCBhbHdheXMgcmV0dXJuIFRSVUUuCUkgZG9uJ3QKICAgIHRoaW5rIHRoYXQgaXMgdGhlIGludGVudGlvbiBpbiB0aGlzIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDg1MzY0M2Q4Y2YyY2E4MGNiMmUyNWM1M2FkNWRjNTgwYWJhZmUxNjYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6NDE6MzAgMjAwNyArMDIwMAoKICAgIFtGSVhdIGNoYW5nZSBjb21tYW5kIGhhbmRsaW5nIGFuZCByZW1vdmluZyBjb2RlIHZpb2xhdGlvbgoKY29tbWl0IGYyNDAzNTY1MDcwMzhlNWNlNTVlOGEyNGNiMjYwN2U5ZWFlNmQxMGMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MzY6MDYgMjAwNyArMDIwMAoKICAgIFtGSVhdIGNoYW5nZSBzZXRzIG9mIGNvbW1hbmRzCiAgICBiZWNhdXNlIGNoYW5naW5nIG9mIGNvbW1hbmQgaGFuZGxpbmcgYnJpbmdzCiAgICBjb21waWxhdGlvbiBwcm9ibGVtcwoKY29tbWl0IGNiMWJjNjNiNzVhMjMyNTcxZWI2OWFhMmM4YWE5MTkzMjE2NTU4NDUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MzA6NDIgMjAwNyArMDIwMAoKICAgIFtGSVhdIEVtYWlsIHJlcGFyYXRpb24gJiBDb3B5cmlnaHQKICAgIEJvdGggY29kZXMgYXJlIHdyaXR0ZW4gYnkgbXlzZWxmIHdpdGhvdXQgYW55CiAgICBzdXBwb3J0IGZyb20gQ1RVCgpjb21taXQgMDczMWNiYWU2YzJmZWFiOTNiMjQ0ZDgzZmQ2YTQzZjVjYzliZjg1MgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoyNToxMSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBDaGFuZ2UgbWFjcm8gbmFtZSBmb3IgVWFydExpdGUKICAgIGJlY2F1c2UgUG93ZXJQQyA0MDUgY2FuIHVzZSBVYXJ0TGl0ZSBhcyBjb25zb2xlCgpjb21taXQgMWMxMTAwZDJmY2Y0NmI5ZDExZGNmNzhkNmU1YWVhNzVlMmU4YjcxNgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoyMToxOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgZGVzaWduIHdpdGhvdXQgaW50ZXJydXB0IGNvbnRyb2xsZXIKICAgIFBvbGxpbmcgdGltZXIKCmNvbW1pdCAwNzMxOTMzZWM4ZWM0NWQwMmJhODliNTJkZjY3M2Q1MjY4NzNjZGRlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjE5OjQ4IDIwMDcgKzAyMDAKCiAgICBbRklYXSByZXNvbHZlIHByb2JsZW0gd2l0aCBjcHUgd2l0aG91dCBiYXJyZWwgc2hpZnRlcgoKY29tbWl0IGRiMTRkNzc5OTVjZTUxNWI3MjhiMTc4YjYzZjgyYmFiZTYwZTNkNTYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MTg6NDYgMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlcGFpciBlbWFpbCBhZGRyZXNzCgpjb21taXQgNDgxZDQzMjg2MTg4MDRhZGQxZjgxOGE2Yzk2Mjk2MTIxY2QwNTI4ZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoxNzo0MiAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVwYWlyIE1GU0wgY29tbWFuZHMKCmNvbW1pdCBiOTBjMDQ1ZjAzNWMzY2M5YjVkMmVkYWVkNjA0OGRmYjc0ZTQwNzYzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjA4OjM3IDIwMDcgKzAyMDAKCiAgICBzeW5jaHJvbml6aXRpb24gd2l0aCBtYWlubGluZQoKY29tbWl0IDY2ZGNhZDNhOWE1M2UwNzY2ZDkwZTAwODQxMjNiZDg1Mjk1MjJmYjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgU2VwIDIwIDAwOjA0OjE0IDIwMDcgKzAyMDAKCiAgICB2MS4zLjAtcmMyCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxMzVlMTliYzI3NzNlYmNhNDg3ZTlhODM3MWY2N2UxYmEyMDIzMTNhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCAxOCAyMTozNjozNSAyMDA3ICswMjAwCgogICAgQXZvaWQgY29tcGlsZXIgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhhNzgzYTY1ODUxYmM3NDIxYWI2OWY0NDIyNjEyMTVlMjFiODg5MWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBTZXAgMTggMTI6MjQ6NTcgMjAwNyAtMDYwMAoKICAgIEJ1Z2ZpeDogcmVtb3ZlIGVtYmVkZGVkIG51bGwgKFwwKSBmcm9tIENGR19CT09URklMRSBtYWNybyBpbiBUUU04NTQwX2NvbmZpZwoKICAgIC9iaW4vYmFzaCBhbmQgL2Jpbi9kYXNoICh3aGljaCAvYmluL3NoIGlzIGxpbmtlZCB0byBvbiB1YnVudHUpIGhhbmRsZSBlbWJlZGRlZAogICAgbnVsbHMgaW4gYSBzdHJpbmcgZGlmZmVyZW50bHkuICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQ6CgllY2hvICJ0aGlzIGlzIGEgc3RyaW5nXDAiID4gYWZpbGUKICAgIFdpbGwgcHJvZHVjZSB0aGUgZm9sbG93aW5nIHdpdGggL2Jpbi9iYXNoOgoJInRoaXMgaXMgYSBzdHJpbmdcMCIKICAgIEJ1dCB3aXRoIC9iaW4vZGFzaCwgd2lsbCBwcm9kdWNlOgoJInRoaXMgaXMgYSBzdHJpbmcKCiAgICBCdWcgZml4ZWQgYnkgbW92aW5nIHRoZSBlbWJlZGRlZCBudWxsIG91dCBvZiB0aGUgbWFrZWZpbGUgYW5kIGludG8gdGhlCiAgICBjb25maWcgaGVhZGVyLiAgQWxzbyByZW5hbWVkIHRoZSBtYWNybyB0byBhdm9pZCB1c2FnZSBjb2xpc2lvbiB3aXRoIHRoZSBzYW1lCiAgICBtYWNybyB1c2VkIGJ5IG90aGVyIGJvYXJkIHBvcnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmOGQzY2E3YjZmYTMyMmFjNTdlOGU4MzFmMDdkYmVlYTAzOWE5ZjM1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCAxOCAxNzo0MDoyNyAyMDA3ICswMjAwCgogICAgTUNDMjAwOiBmaXggYnVpbGQgd2FybmluZwoKICAgIFRoZSBNQ0MyMDAgYm9hcmQgY29uZmlnIGZpbGUgaW5jbHVkZXMgdmVyc2lvbi5oIGZvciBzb21lIGN1c3RvbWVyLQogICAgc3BlY2lmaWMgc2V0dGluZywgd2hpY2ggY2F1c2VzIHdhcm5pbmdzIHdpdGggIm1ha2UgZGVwZW5kIjsgYnVpbGQKICAgIHZlcnNpb24uaCBiZWZvcmUgZGVwZW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYmQ4NjIyMGY1OGI5OWQ2ODk2MTk4YzM4NWZkYTEzMmYwYzk4MDkxNQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTM6MDc6NTQgMjAwNyArMDEwMAoKICAgIE1vdmUgY29sb3VyZWQgbGVkIEFQSSB0byBzdGF0dXNfbGVkLmgKICAgIEltcHJvdmUgaW5kZW50YXRpb24gaW4gZHJpdmVycy9hdDQ1LmMKCmNvbW1pdCBlODBlNTg1YjAwZmJiYWI3YWQxYmY3MTYxOTc0MWYyYzViMDI5YWI3CkF1dGhvcjogRWlyaWsgQWFub25zZW4gPGVhYUB3cHJtZWRpY2FsLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAwODo0NzoyMCAyMDA3ICswMjAwCgogICAgVXBkYXRlIGF0c3RrMTAwMiBib290YXJncy4KCiAgICBVcGRhdGVzIHRvIGF0c3RrMTAwMiBVLUJvb3QgaGVhZGVyIGZpbGU6CiAgICAtIENoYW5nZWQgYm9vdGFyZ3M6CgkqIFNldCB0aGUgYm9vdGFyZ3MgZm9yIGF0MTAwMiB0byBwb2ludCB0byB0aGUgU0QtY2FyZCBwYXJ0aXRpb24gaW5zdGVhZAoJKiAuLi4gb2YgdGhlIGJvb3QgZmxhc2guCgkqIFJlbW92aW5nIHRoZSByb290ZnN0eXBlIHNpbmNlIHRoYXQgYXJndW1lbnQgYXJlIG5vdCBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRWlyaWsgQWFub25zZW4gPGVhYUB3cHJtZWRpY2FsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGE0ZjNhYWI2ZGZiZWQ2YzI5MzY3YzY4OGJmYjhhNDdlZWY2MmMyMjUKQXV0aG9yOiBFaXJpayBBYW5vbnNlbiA8ZWFhQHdwcm1lZGljYWwuY29tPgpEYXRlOglXZWQgU2VwIDEyIDEzOjMyOjM3IDIwMDcgKzAyMDAKCiAgICBBZGQgc29tZSBjb21tZW50cyB0byBjbG9ja3MgaW4gYXRzdGsxMDAyLmgKCiAgICBUaGlzIHBhdGNoIGFwcGxpZXMgc29tZSBjbGFyaWZ5aW5nIGNvbW1lbnRzIHRvIGhvdyB0aGUgZGlmZmVyZW50CiAgICBjbG9ja3MgYXJlIHNldHVwIGFjY29yZGluZyB0byBhdHN0azEwMDIuaCBTb21lIG9mIHRoZSBwcmV2aW91cwogICAgY29tbWVudHMgd2hlcmUgc3RhdGluZyB3cm9uZ2Z1bCBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5NzIxM2YzMjQxNmVhZDg4NWRlYWZlYTg2Nzc0ZTkxMmZmZDYwYWQwCkF1dGhvcjogRGF2aWQgU2FhZGEgPERhdmlkLlNhYWRhQGVjaXRlbGUuY29tPgpEYXRlOglNb24gU2VwIDE3IDE3OjA0OjQ3IDIwMDcgKzAyMDAKCiAgICBEZXNjcmlwdGlvbjogQWRkIE5FQydzIFBDSSBPSENJIG1vZHVsZSBJRCB0byB0aGUgVVNCIE9IQ0kgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2FhZGEgPGRhdmlkLnNhYWRhQGVjaXRlbGUuY29tPgoKY29tbWl0IDMwMzYzZTk4ZmE0NzBmYmVjZWE1ZThiYzBmMTQ0MzM1Mjc1NGYzMDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgMTcgMDg6MjA6NDcgMjAwNyArMDIwMAoKICAgIFNtYWxsIHdoaXRlc3BhY2UgY2xlYW51cCBvZiBPbmVOQU5EIHBhdGNoCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ3ZThjZTEwMWE0YTQ1ZWQ2ZWQ0NTczOWZjMmRlNWY4N2IxM2Y3ZjEKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIFNlcCAxMCAxNzoxNToxNCAyMDA3ICswOTAwCgogICAgT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIFtQQVRDSCAzLzNdIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBPbmVOQU5EIHN1cHBvcnQgYXQgVS1Cb290CgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCAxN2FhMjgwMDQ1N2RmMGMwNmI0MTUxNmY0NmYxMjY3MTJjMTk2MjE5CkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBTZXAgMTAgMTc6MTQ6MzQgMjAwNyArMDkwMAoKICAgIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBbUEFUQ0ggMi8zXSBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgT25lTkFORCBzdXBwb3J0IGF0IFUtQm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgOTE2NTI3ZjQ4MDlhN2JjZDgxMWYxZjFkYWYzNGFmMTg0ZTMxZGQ4YwpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gU2VwIDEwIDE3OjEzOjQ5IDIwMDcgKzA5MDAKCiAgICBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgW1BBVENIIDEvM10gT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIE9uZU5BTkQgc3VwcG9ydCBhdCBVLUJvb3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IGI0OWM5MGRmNmU3Y2ZjZmI4Yjg2MmI4YmJmODQ0OGRmZjVlZWQ5YTUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBTZXAgMTYgMjA6NTE6NTcgMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlbW92ZSBmaWxlcyBmb3JtIHJlcG9zaXRvcnkKCmNvbW1pdCA2N2MzMTAzNmFjYWFhYTk5MmZjMzQ2Y2M4OWRiMDkwOWE3ZTczM2M0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIFNlcCAxNiAxNzoxMDowNCAyMDA3ICswMjAwCgogICAgVFFNOHh4W0xNXTogRml4IGJyb2tlbiBlbnZpcm9ubWVudCBhbGlnbm1lbnQuCgogICAgV2l0aCByZWNlbnQgdG9vbGNoYWlucywgdGhlIGVudmlyb25tZW50IHNlY3RvcnMgd2VyZSBubyBsb25nZXIgYWxpZ25lZCB0bwogICAgc2VjdG9yIGJvdW5kYXJpZXMuIFRoZSByZWFzb24gd2FzIGEgY29tYmluYXRpb24gb2YgdHdvIGJ1Z3M6CgogICAgMSkgY29tbW9uL2Vudmlyb25tZW50LmMgYXNzdW1lZCB0aGF0IENPTkZJR19UUU04eHhMIHdvdWxkIGJlIGRlZmluZWQKICAgICAgIGZvciBhbGwgVFFNOHh4TCBhbmQgVFFNOHh4TSBib2FyZHMuIEJ1dCAiaW5jbHVkZS9jb21tb24uaCIsIHdoZXJlCiAgICAgICB0aGlzIGdldHMgZGVmaW5lZCwgaXMgbm90IGluY2x1ZGVkIGhlcmUgKGFuZCBjYW5ub3QgYmUgaW5jbHVkZWQKICAgICAgIHdpdGhvdXQgY2F1c2luZyBsb3RzIG9mIHByb2JsZW1zKS4KCiAgICAgICBBZGRlZCBhIG5ldyAjZGVmaW5lIENGR19VU0VfUFBDRU5WIGZvciBhbGwgYm9hcmRzIHdoaWNoIHJlYWxseQogICAgICAgd2FudCB0byBwdXQgdGhlIGVudmlyb25tZW50IGlzIGEgIi5wcGNlbnYiIHNlY3Rpb24uCgogICAgMikgVGhlIGxpbmtlciBzY3JpcHRzIGp1c3QgaW5jbHVkZSBlbnZpcm9ubWVudC5vLCBzaWxlbnRseSBhc3N1bWluZwogICAgICAgdGhhdCB0aGUgb2JqZWN0cyBpbiB0aGF0IGZpbGUgYXJlIHJlYWxseSBpbiB0aGUgb3JkZXIgaW4gd2hpY2gKICAgICAgIHRoZXkgYXJlIGNvZGVkIGluIHRoZSBDIGZpbGUsIGkuIGUuICJlbnZpcm9ubWVudCIgZmlyc3QsIHRoZW4KICAgICAgICJyZWR1bmRhbmRfZW52aXJvbm1lbnQiLCBhbmQgImVudl9zaXplIiBsYXN0LiBIb3dldmVyLCBjdXJyZW50CiAgICAgICB0b29sY2hhaW5zIChHQ0MtNC54KSByZW9yZGVyIHRoZSBvYmplY3RzLCBjYXVzaW5nIHRoZSBlbnZpcm9ubWVudAogICAgICAgZGF0YSBub3QgdG8gc3RhcnQgb24gYSBmbGFzaCBzZWN0b3IgYm91bmRhcnk6CgogICAgICAgSW5zdGVhZCBvZjoJCQkJCXdlIGdvdDoKCgk0MDAwODAwMCBUIGVudmlyb25tZW50CQkJNDAwMDgwMDAgVCBlbnZfc2l6ZQoJNDAwMGMwMDAgVCByZWR1bmRhbmRfZW52aXJvbm1lbnQJNDAwMDgwMDQgVCByZWR1bmRhbmRfZW52aXJvbm1lbnQKCTQwMDEwMDAwIFQgZW52X3NpemUJCQk0MDAwYzAwNCBUIGVudmlyb25tZW50CgogICAgICAgTm90ZTogdGhpcyBwYXRjaCBmaXhlcyBqdXN0IHRoZSBmaXJzdCBwYXJ0LCBhbmQgY3VyZXMgdGhlIGFsaWdubWVudAogICAgICAgcHJvYmxlbSBieSBtYWtpbmcgc3VyZSB0aGF0ICJlbnZfc2l6ZSIgZ2V0cyBwbGFjZWQgY29ycmVjdGx5LiBIb3dldmVyLAogICAgICAgd2Ugc3RpbGwgaGF2ZSBhIHBvdGVudGlhbCBpc3N1ZSBiZWNhdXNlIHByaW1hcnkgYW5kIHJlZHVuZGFudAogICAgICAgZW52aXJvbm1lbnQgc2VjdG9ycyBhcmUgYWN0dWFsbHkgc3dhcHBlZCwgaS4gZS4gd2UgaGF2ZSBub3c6CgoJNDAwMDgwMDAgVCByZWR1bmRhbmRfZW52aXJvbm1lbnQKCTQwMDBjMDAwIFQgZW52aXJvbm1lbnQKCTQwMDEwMDAwIFQgZW52X3NpemUKCiAgICAgICBUaGlzIHNoYWxsIGJlIGZpeGVkIGluIHRoZSBuZXh0IHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlYjZkYTgwNTA3OTdjMjA0YzlkMDEwNTQ4NDI0MTg2YzdjZTMyZmMxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIFNlcCAxNiAwMjozOTozNSAyMDA3ICswMjAwCgogICAgVFFNOHh4L0ZQUzh4eDogYWRqdXN0IGZsYXNoIHBhcnRpdGlvbnMgZm9yIDIuNiBBUkNIPXBvd2VycGMga2VybmVscwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2QyZDE2MDJjNTRjYzY5NTdiZGVmMzg3MjI3MmE0YjI2NDg5Mzk2MApBdXRob3I6IHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tIDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KRGF0ZToJTW9uIFNlcCAxMCAxNDo1NDo1NiAyMDA3IC0wNDAwCgogICAgVHlwbyBmaXggaW4gdHNlYy5jCgogICAgRml4dXAgZm9yIHRoZSBicmVhayBzdGF0ZW1lbnQgaW4gd3JvbmcgcGxhY2UuCgogICAgW1BhdGNoIGJ5IHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tXQogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6CVdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWJkN2ZlOWFlYjc2OTA2MzcxZjQwYjhmZDA3NjEzZjEwOTIyZTNlNwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgU2VwIDExIDE3OjA0OjAwIDIwMDcgKzAyMDAKCiAgICBGaXggZG9fZGl2KCkgdXNhZ2UgaW4gbmFuZCBwcm9jZXNzIG91dHB1dAoKICAgIEZpeCB1c2FnZSBvZiBkb19kaXYoKSBpbiBuYW5kIGVyYXNlfHJlYWR8d3JpdGUgcHJvY2VzcyBvdXRwdXQuCgogICAgVGhlIGxhc3QgcGF0Y2ggdG8gbmFuZF91dGlsLmMgaW50cm9kdWNlZCBkb19kaXYoKSBpbnN0ZWFkIG9mIGxpYmdjYydzCiAgICBpbXBsZW1lbnRhdGlvbi4gQnV0IGRvX2RpdigpIHJldHVybnMgdGhlIHF1b3RpZW50IGluIGl0cyBmaXJzdAogICAgbWFjcm8gcGFyYW1ldGVyIGFuZCBub3QgYXMgcmVzdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGM3NTBkMmU2NjkyYTAwMGE4MmYyOWRlN2JmMjRlM2RjMjEyMzkxNjEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIFNlcCAxMiAxMjozNjo1MyAyMDA3ICswMjAwCgogICAgTkFORDogQWRkIENGR19OQU5EX1FVSUVUIG9wdGlvbgoKICAgIFRoaXMgY29uZmlnIG9wdGlvbiBzZXRzIHRoZSBkZWZhdWx0IGZvciB0aGUgcHJvZ3Jlc3MgaW5mb3JtYXRpb24KICAgIG91dHB1dCBiZWhhdmlvciB0aGF0IGNhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCB0aGUgJ3F1aWV0JwogICAgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgVGhlIGxlZ2FjeSBOQU5EIGNvZGUgZG9lcyBub3QgcHJpbnQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MgaW5mbwogICAgb24gdGhlIGNvbnNvbGUuIFNvIHRoaXMgb3B0aW9uIGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvcgogICAgdW5pdHMgdGhhdCBhcmUgaW4gdGhlIGZpZWxkIGFuZCB3aGVyZSBzZXR0aW5nIHRoZSBxdWlldCB2YXJpYWJsZQogICAgaXMgbm90IGFuIG9wdGlvbi4gV2l0aCBDRkdfTkFORF9RVUlFVCBzZXQgdG8gJzEnIHRoZSBjb25zb2xlCiAgICBwcm9ncmVzcyBpbmZvIGlzIHR1cm5lZCBvZmYuIFRoaXMgY2FuIHN0aWxsIGJlIG92ZXJ3cml0dGVuCiAgICB0aHJvdWdoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkY2I4ODYzMDI5MGQyYmNkODAzMzg2ZGQ0YzJiZTczMTQyOTk0YzRmCkF1dGhvcjogTGlldyBUc2kgQ2h1bmctcjVhYWhwIDxUc2ktY2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE2OjA2OjA1IDIwMDcgLTA3MDAKCiAgICBDb2xkRmlyZTogZml4IGJ1aWxkIGVycm9yIGJlY2FzdWUgb2YgYmFkIHR5cGUgb2YgbWlpX2luaXQoKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMTRkNWI2Y2U1MmE0ZWQxOWRkMjk1ZDEzNjRlMjQ2YzVlNjA1MDE3CkF1dGhvcjogTGlldyBUc2kgQ2h1bmctcjVhYWhwIDxUc2ktY2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE2OjA0OjA1IDIwMDcgLTA3MDAKCiAgICBDb2xkRmlyZTogRml4IGJ1aWxkIGVycm9yIGNhdXNlZCBieSBwaXhpcy5jCgogICAgTW92ZWQgdGhlICNpbmNsdWRlIDxhc20vY2FjaGUuaD4gaW5zaWRlIHRoZSAjaWZkZWYgQ09ORklHX0ZTTF9QSVhJUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTIxNjU5ZTMwNjYwYTEzNzdjNDJhZjEzNWE2MTE0ZWZlMzk4MDFkOQpBdXRob3I6IFNhbSBTcGFya3MgPFNTcGFya3NAdHdhY3MuY29tPgpEYXRlOglGcmkgU2VwIDE0IDExOjE0OjQyIDIwMDcgLTA2MDAKCiAgICBVcGRhdGUgTVBDODM0OUlUWCpfY29uZmlnIHRvIHBsYWNlIGNvbmZpZy50bXAgaW4gcmlnaHQgcGxhY2UuCgogICAgTVBDODM0SVRYKl9jb25maWcgZG9lcyBub3Qgc3RvcmUgY29uZmlnLnRtcCBhdCB0aGUgY29ycmVjdCBsb2NhdGF0aW9uLAogICAgY2F1c2luZyBNUEM4MzQ5SVRYR1AgdG8gaGF2ZSB0aGUgd3JvbmcgVEVYVF9CQVNFLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhbSBTcGFya3MgPFNTcGFya3NAdHdhY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDEyMThhYmYxYjU4MTdhMzlhODIzOTliNGI5MjhiMDA3NTA1NzViZGEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgU2VwIDE1IDIwOjQ4OjQxIDIwMDcgKzAyMDAKCiAgICBGaXggY2FzZXMgd2hlcmUgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgd2FzIG5vdCBkZWNsYXJlZCBhcyBnbG9iYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY2YjNmMjRkNjY1YmU2NzhhOWRiYjEyNWIxZTg0MTg1NDAwZjYzYjUKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglTYXQgU2VwIDE1IDExOjU1OjQyIDIwMDcgKzAyMDAKCiAgICBNYWtlIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIGdsb2JhbCBmb3IgRGFWaW5jaQoKICAgIEFzIGRpc2N1c3NlZCBpbiBbMV0sIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIGhhcyB0byBiZSBnbG9iYWwgYW5kIG5vdAogICAgZnVuY3Rpb24gbG9jYWwuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CgogICAgWzFdIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLmJvb3QtbG9hZGVycy51LWJvb3QvMzE4MDUKCmNvbW1pdCA5OTFiMDg5ZDFjZTVhZDk0NTcyNWUzNjU3YThmMTA2ZGZhMDJhMzhlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgU2VwIDE1IDAwOjAzOjM1IDIwMDcgKzAyMDAKCiAgICBTeW5jaHJvbml6ZSB3aXRoIFUtQk9PVCBtYWlubGluZQoKY29tbWl0IGQ3ZmVlMzJiN2U2MWZlMTFjNjRlMzcxY2RlNzlmYWE0NzY4ZTgzNTAKQXV0aG9yOiBTYW0gU3BhcmtzIDxTU3BhcmtzQHR3YWNzLmNvbT4KRGF0ZToJRnJpIFNlcCAxNCAxMToxNDo0MiAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzgzNDlJVFgqX2NvbmZpZyB0byBwbGFjZSBjb25maWcudG1wIGluIHJpZ2h0IHBsYWNlLgoKICAgIE1QQzgzNElUWCpfY29uZmlnIGRvZXMgbm90IHN0b3JlIGNvbmZpZy50bXAgYXQgdGhlIGNvcnJlY3QgbG9jYXRhdGlvbiwKICAgIGNhdXNpbmcgTVBDODM0OUlUWEdQIHRvIGhhdmUgdGhlIHdyb25nIFRFWFRfQkFTRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW0gU3BhcmtzIDxTU3BhcmtzQHR3YWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmU3YjdiNmVhMWI2ZDA0ZGJlOTYyNDJlYjZhMGMxYzY2NGM5OGU4YwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTg6MjE6NDggMjAwNyArMDIwMAoKICAgIGNtNTIwMDogRml4IGEgdHlwbyBpbnRyb2R1Y2VkIGJ5IGFmYWFjODZmZTI5NDhhYzg0Y2Q5YTEyYmJlZDg4M2IzYzY4M2U3ZDkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGUxZjYwMWI1NzJkYjVkZTlhYTgxYTBiNzdjNjhhODY5OTRmZTI0YzQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE2OjMzOjU5IDIwMDcgKzAyMDAKCiAgICB0cW01MjAwOiBSZXN0b3JlIGN1c3RvbWFyeSBlbnYuIHZhcmlhYmxlIGJvb3QgY29tbWFuZHMgZm9yIHBvd2VycGMga2VybmVscwoKICAgIC0gdXBkYXRlIGRlZmF1bHQgZGVmaW5pdGlvbnMgb2Yga2VybmVsX2FkZHIgYW5kIGZkdF9hZGRyIGVudi4gdmFyaWFibGVzCiAgICAtIG1ha2UgYXJjaC9wb3dlcnBjIGJvb3RpbmcgdGhlIGRlZmF1bHQgc2NlbmFyaW8KICAgIC0gdXBkYXRlIE1URCBwYXJ0aXRpb24gbGF5b3V0IHRvIG1hdGNoIHRoZSBhYm92ZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZjM0MDI0ZDRhMzI4ZTZlZGQ5MDY0NTZkYTk4ZDJjNTM3MTU1YzRmNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBTZXAgMTIgMDA6NDg6NTcgMjAwNyArMDIwMAoKICAgIEZpeCBtZW1vcnkgY29ycnVwdGlvbiBwcm9ibGVtIG9uIFNUWCBHUDMgU1NBIEJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDk0Yzc5ZTQ3MDExYWY1ZThkZDEwZWQ2MTYzYzA5YjRjZmM3NDNjYwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgMTEgMTU6MzU6MDEgMjAwNyArMDEwMAoKICAgIEZpbmFsIHRpZHkKCmNvbW1pdCAzOGFkODJkYTBjMTE4MGVjZGViMjEyYThmNDI0NWU5NDViY2M1NDZlCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBTZXAgMTEgMTU6NDI6MTEgMjAwNyArMDIwMAoKICAgIFtHUDNTU0FdIEFkZCBkZWZpbmUgQ09ORklHX01QQzg1WFhfUENJMiBpbiBjb25maWcgZmlsZSB0byBhbGxvdyB1LWJvb3QgdG8KICAgIHNjYW4gb24gc2Vjb25kIHBjaSBidXMuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgNmMyZjRmMzg4ZTgxODE2NTVlYThiNjkzNDNlYTAwYjY4YWE2ZThkMApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgU2VwIDExIDEyOjU3OjUyIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBJbmRpdmlkdWFsIGhhbmRsaW5nIG9mIHNkcmFtLmMgZm9yIGJhbWJvb19uYW5kIGJ1aWxkCgogICAgQmFtYm9vIGhhcyBhIGZpbGUgc2RyYW0uYyB3aGljaCBuZWVkcyBzcGVjaWFsIHRyZWF0bWVudCB3aGVuIGJ1aWxkaW5nIGluCiAgICBzZXBhcmF0ZSBkaXJlY3RvcnkuIEl0IGhhcyB0byBiZSBsaW5rZWQgdG8gYnVpbGQgZGlyZWN0b3J5IG90aGVyd2lzZSBpdCBpcwogICAgbm90IHNlZW4uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgZDQ1OTYzODU0ZWZmMzlkNTc1MTI0ZDg1OTQxOWJiNDk1M2NlMmM4NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIFNlcCAxMSAwMDozNzowNCAyMDA3ICswMjAwCgogICAgW0ZJWF0gTWljcm9ibGF6ZSBNTDQwMSAtIHJlcGFyZSBGTEFTSCBoYW5kbGluZwoKY29tbWl0IDM4YzFlZjcyOGQxOTk1MDQxNGE4YWIxY2NmYzUzNzY3ODQ4ZmEzNDYKQXV0aG9yOiBTZWFuIE1DR09PR0FOIDxzZWFuLm1jZ29vZ2FuQHN0LmNvbT4KRGF0ZToJTW9uIFNlcCAxMCAxNjo1NTo1OSAyMDA3ICswMTAwCgogICAgQWxsb2NhdGUgQ1BVIEFyY2hpdGVjdHVyZSBDb2RlIGZvciBTVE1pY3JvZWxlY3Ryb25pY3MnIFNUMjAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlYW4gTWNHb29nYW4gPFNlYW4uTWNHb29nYW5Ac3QuY29tPgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjb21taXQgNzU0YmFjNDgxNTZmODk1OGQ4ZjZhNTNhNTFlZGE4OGFiNTc1ODkyOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgMTAgMjA6NDI6MzEgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSB2ZXJzaW9uIHRvIG1hdGNoIGN1cnJlbnQgc3RhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3YTg4OGQ2YjNjMzJhMTI2ZGJiNTA0ZWYxNDZiYjRjMjY1NzRjYTdiCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBTZXAgMTAgMTc6Mzk6MDggMjAwNyArMDIwMAoKICAgIFtNUEM1MTJ4XSBTdHJlYW1saW5lIGZyYW1lIGhhbmRsaW5nIGluIHRoZSBGRUMgZHJpdmVyCgogICAgLSBjb252ZXJ0IGZyYW1lIHNpemUgc2V0dGluZ3MgdG8gYmUgZGVyaXZlZCBmcm9tIGEgc2luZ2xlIGJhc2UKICAgIC0gc2V0IGZyYW1lIHNpemUgdG8gdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQgdmFsdWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlMjUxZTAwZDBkYjRiMzZkMWQyYjdlMzhmZWM0M2E3Mjk2YjUyOWEyCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBTZXAgMTAgMTE6MzQ6MDAgMjAwNyArMDkwMAoKICAgIFJlbW92ZSBjb21waWxlciB3YXJuaW5nOiB0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJ3b3JraW5nCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCAxZDllMzFlMDQ5MTFhNmJiN2NjNjZkZDkxMTMyYzY5OTEwMWMzMmUyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIFNlcCA5IDIxOjIxOjMzIDIwMDcgKzAyMDAKCiAgICBGaXggY29tcGlsZSBlcnJvciBpbiBzcGMxOTIwIGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpi/GNoZXIgPG1rQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE3ZDdlY2E3OTFhMzdmNDUyYzlkYTEwZmVmNGIzMWRkN2FhOWE2MjIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CUZyaSBTZXAgNyAwOToyNTowNyAyMDA3IC0wNjAwCgogICAgQnVnZml4OiBtYWtlIGJvb3RtK2xpYmZkdCBjb21waWxlIG9uIGJvYXJkcyB3aXRoIG5vIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDZlZmMxZmMwYjYzZTU1Zjk0YzViYzYxZDhkZDIzYzkxOGUzYmM3NzgKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE4OjM1OjM3IDIwMDcgKzAyMDAKCiAgICBbUFBDNDQwU1BlXSBQQ0llIGVudmlyb25tZW50IHNldHRpbmdzIGZvciBLYXRtYWkgYW5kIFl1Y2NhCgogICAgLSAncGNpY29uZmlnaG9zdCcgaXMgc2V0IGJ5IGRlZmF1bHQgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBzY2FuIGJyaWRnZXMKICAgIGJlaGluZCB0aGUgcHJpbWFyeSBob3N0L1BDSWUKCiAgICAtICdwY2lzY2FuZGVsYXknIGVudiB2YXJpYWJsZSBpcyByZWNvZ25pemVkIHRvIGFsbG93IGZvciB1c2VyLWNvbnRyb2xsZWQKICAgIGRlbGF5IGJlZm9yZSB0aGUgUENJZSBidXMgZW51bWVyYXRpb247IHNvbWUgcGVyaXBoZXJhbCBkZXZpY2VzIHJlcXVpcmUgYQogICAgc2lnbmlmaWNhbnQgZGVsYXkgYmVmb3JlIHRoZXkgY2FuIGJlIHNjYW5uZWQgKGUuZy4gTFNJODQwOEUpOyB3aXRob3V0IHRoZQogICAgZGVsYXkgdGhleSBhcmUgbm90IGRldGVjdGVkCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgN2YxOTEzOTM4OTg0ZWY2YzZhNDZjYjUzZTAwMzcxOTE5NmQ5YzVkZQpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTg6MjA6MjMgMjAwNyArMDIwMAoKICAgIFtQUEM0NDBTUGVdIEltcHJvdmUgUENJZSBjb25maWd1cmF0aW9uIHNwYWNlIGFjY2VzcwoKICAgIC0gY29ycmVjdCBjb25maWd1cmF0aW9uIHNwYWNlIG1hcHBpbmcKICAgIC0gY29ycmVjdCBidXMgbnVtYmVyaW5nCiAgICAtIGJldHRlciBhY2Nlc3MgdG8gY29uZmlnIHNwYWNlCgogICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgdGhlIDQ0MFNQZSBob3N0L1BDSWUgYnJpZGdlIHdhcyBhYmxlIHRvIGNvbmZpZ3VyZSBvbmx5IHRoZQogICAgZmlyc3QgZGV2aWNlIG9uIHRoZSBmaXJzdCBidXMuIFdlIG5vdyBhbGxvdyB0byBjb25maWd1cmUgdXAgdG8gMTYgYnVzZXM7CiAgICBhbHNvLCBzY2FubmluZyBmb3IgZGV2aWNlcyBiZWhpbmQgdGhlIFBDSWUtUENJZSBicmlkZ2UgaXMgc3VwcG9ydGVkLCBzbwogICAgcGVyaXBoZXJhbCBkZXZpY2VzIGZhcnRoZXIgaW4gaGllcmFyY2h5IGNhbiBiZSBpZGVudGlmaWVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDE1ZWU0NzM0ZTRlMDgwMDNkNzNkOWVhZDNjYTgwZTJhMDY3MmU0MjcKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE3OjQ2OjE4IDIwMDcgKzAyMDAKCiAgICBbUFBDNDQwU1BlXSBDb252ZXJ0IG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9ucyBoYW5kbGluZwoKICAgIENvbnZlcnQgdXNpbmcgZml4dXAgbWVjaGFuaXNtIHRvIHN1cHByZXNzaW5nIE1DSyBmb3IgdGhlIGR1cmF0aW9uIG9mIGNvbmZpZwogICAgcmVhZC93cml0ZSB0cmFuc2FjdGlvbjogd2hpbGUgZml4dXBzIHdvcmsgZmluZSB3aXRoIHRoZSBjYXNlIG9mIGEgcHJlY2lzZQogICAgZXhjZXB0aW9uLCB3ZSBpZGVudGlmaWVkIGEgbWFqb3IgZHJhd2JhY2sgd2l0aCB0aGlzIGFwcHJvYWNoIHdoZW4gdGhlcmUncwogICAgYW4gaW1wcmVjaXNlIGNhc2UuIEluIHRoaXMgc2NlbmFyaW8gdGhlcmUgaXMgdGhlIGZvbGxvd2luZyByYWNlIGNvbmRpdGlvbjoKICAgIHRoZSBmaXh1cCBpcyAoYnkgZGVzaWduKSBzZXQgdG8gY2F0Y2ggdGhlIGluc3RydWN0aW9uIGZvbGxvd2luZyB0aGUgb25lCiAgICBhY3R1YWxseSBjYXVzaW5nIHRoZSBleGNlcHRpb247IGlmIGFuIGludGVycnVwdCAoZS5nLiBkZWNyZW1lbnRlcikgaGFwcGVucwogICAgYmV0d2VlbiB0aG9zZSB0d28gaW5zdHJ1Y3Rpb25zLCB0aGUgSVNSIGNvZGUgaXMgZXhlY3V0ZWQgYmVmb3JlIHRoZSBmaXh1cAogICAgaGFuZGxlciB0aGUgbWFjaGluZSBjaGVjayBpcyBubyBsb25nZXIgcHJvdGVjdGVkIGJ5IHRoZSBmaXh1cCBoYW5kbGVyIGFzIGl0CiAgICBhcHBlYXJzIGFzIHdpdGhpbiB0aGUgSVNSIGNvZGUuIEluIGNvbnNlcXVlbmNlIHRoZSBmaXh1cCBhcHByb2FjaCBpcyBiZWluZwogICAgcGhhc2VkIG91dCBhbmQgcmVwbGFjZWQgd2l0aCBleHBsaWNpdCBzdXBwcmVzc2luZyBvZiBNQ0sgZHVyaW5nIGEgUENJZQogICAgY29uZmlnIHJlYWQvd3JpdGUgY3ljbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgZmY3NjQwYzllYWQ4ODA2YjVkODI3ZjJiMjlmOWNiMjYzMmFkZDcyOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgNyAxNzo0MzozNiAyMDA3ICswMjAwCgogICAgRml4IHR5cG8gaW4gTUFLRUFMTCBzY3JpcHQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwOGUyZTVmY2QyZTA2NjcwYjYyZTE2ODBhMzkzNGMwZTU1YzcyODEwCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxNzowOToyMSAyMDA3ICswMjAwCgogICAgW01QQzUxMnhdIFByb3BlciBoYW5kbGluZyBvZiBsYXJnZXIgZnJhbWVzIGluIHRoZSBGRUMgZHJpdmVyCgogICAgV2hlbiBmcmFtZSBsYXJnZXIgdGhhbiBsb2NhbCBSWCBidWZmZXIgaXMgcmVjZWl2ZWQsIGl0IGlzIHNwbGl0IGFuZCBoYW5kbGVkCiAgICBieSB0d28gYnVmZmVyIGRlc2NyaXB0b3JzLiBQcmlvciB0byB0aGlzIHBhdGNoIHRoZSBGRUMgZHJpdmVyIGRpc2NhcmRlZAogICAgY29udGVudHMgb2YgYSBidWZmZXIgZGVzY3JpcHRvciB3aXRob3V0IHRoZSAnTEFTVCcgYml0IHNldCwgc28gdGhlIGZpcnN0CiAgICBwYXJ0IG9mIHRoZSBmcmFtZSB3YXMgbG9zdCBpbiBjYXNlIG9mIGxhcmdlciBmcmFtZXMuIFRoaXMgZml4IGFsbG93cyB0bwogICAgc2FmZWx5IGNvbWJpbmUgdGhlIHR3byBwaWVjZXMgaW50byB0aGUgd2hvbGUgZnJhbWUuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgOGQxNzk3OWQwMzU5NDkyYTgyMmEwYTQwOWQyNmUzYTM1NDliNGNkNApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxNzowNTozNiAyMDA3ICswMjAwCgogICAgW01QQzUxMnhdIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgYTg5Y2JiZDI3YTYwZTY3NDA3NzIwMDBmZDA2ODhmZmJhMWMyNTc2YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgNyAwMToyMToyNSAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRywgbWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgNWU1ODAzZTExOWRlM2JlYmQ3NmZjOWE1N2JhYWMwYjVhZWNjYzhhMwpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDMwIDIzOjAxOjQ5IDIwMDcgKzAyMDAKCiAgICBQWEEyNzA6IEFkZGVkIHN1cHBvcnQgZm9yIFRyaXplcHNJViBib2FyZC4KCiAgICBUaGlzIHBhdGNoIGFkZCBzdXBwb3J0IGZvciB0aGUgVHJpemVwcyBJViBtb2R1bGUgKDUyME1oeikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgODAxNzJjNjE4MWM5MTJmYmIzNGVhM2JhMGMyMmIyMzJiNDE5YjQ3ZgpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDMwIDIyOjU3OjA0IDIwMDcgKzAyMDAKCiAgICBQWEEyNzA6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzZXJpYWwgcG9ydHMuCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlcmlhbCBwb3J0cyB0byB0aGUgUFhBIHRhcmdldC4KICAgIEZGVUFSVCwgQlRVQVJUIGFuZCBTVFVBUlQgYXJlIHN1cHBvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCAyOGJiM2Y3MmM2ODdhYzZiMmViMDc2YjAxZGQyMWE1ZmQ2NTdkNDVlCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMzAgMjI6NDg6NDcgMjAwNyArMDIwMAoKICAgIFBYQTI3MDogZml4IGNvbXBpbGUgaXNzdWUgKGludmFsaWQgbHZhbHVlKQoKICAgIENvZGUgaXMgYnJva2VuIGZvciBQWEEyNzAgZHVlIHRvICJpbnZhbGlkIGx2YWx1ZSBpbiBhc3NpZ25tZW50Ii4KCiAgICBUaGlzIHBhdGNoIGZpeCBpdCBpbiBweGEtcmVncy5oCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgMWQyY2E0NDZlMWE3MzFkZjQyMDIwNmQwNGZlMjc4YzI3ZWE2YjhlOApBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMzAgMTg6MTk6MDUgMjAwNyArMDgwMAoKICAgIEFkZCBCVUlMRF9ESVIgc3VwcG9ydCBmb3IgYmlvcyBlbXVsYXRvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI0ZDhhNTUxNDU0NDJmMTM2OTgyNjM0ODYyMzQxYTNlMDIwMDJiZGEKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CUZyaSBBdWcgMzEgMTQ6NDE6NTEgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBSZW1vdmUgaW5saW5lIGFzbSBzdHJpbmcgZnVuY3Rpb25zCgogICAgU3RvcCB1c2luZyBpbmxpbmUgc3RyaW5nIGZ1bmN0aW9ucyBvbiBNSVBTIGFzIG90aGVyIEFSQ0hzIGRvIHNvLAogICAgc2luY2UgdGhlIG9wdGltaXplZCBpbmxpbmUgYXNtIHZlcnNpb25zIGFyZSBub3Qgc21hbGwuCgogICAgVGhpcyBjaGFuZ2UgaXMgdHJpZ2dlcmVkIGJ5IGEgZm9sbG93aW5nIE1JUFMgYnVpbGQgZXJyb3I6CiAgICBjb21tb24vbGliY29tbW9uLmEoZXhwb3J0cy5vKSgudGV4dCsweGRjKTogSW4gZnVuY3Rpb24gYGp1bXB0YWJsZV9pbml0JzoKICAgIGNvbW1vbi9leHBvcnRzLmM6MzI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHN0cmNtcCcKICAgIG1ha2U6ICoqKiBbdS1ib290XSBFcnJvciAxCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDhlYTJjNGU1NDgzM2RlYWViYzI0YzNjYTZiN2YyMTM1M2MyNWIwZjUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CUZyaSBBdWcgMzEgMTQ6NDE6NDUgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBVcGRhdGUgYXNtIHN0cmluZyBoZWFkZXIKCiAgICBUaGlzIHBhdGNoZXMgY29udGFpbnMgc2V2ZXJhbCBidWdmaXhlcyBhbmQgY2xlYW51cHMgaW4gdGhlIGxhdGVzdCB1cHN0cmVhbToKCiAgICAgLSBEb24ndCBpbmNsdWRlIGxpbnV4L2NvbmZpZy5oCiAgICAgLSBSZW1vdmUgYnVnZ3kgaW5saW5lIHZlcnNpb24gb2YgbWVtc2Nhbi4KICAgICAtIE1lcmdlIHdpdGggTGludXggMi42LjExLXJjMy4KICAgICAtIEZpeCB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIHN0cmNweSBpbiBiaW5mbXRfbWlzYyBjYXVzZWQgYnkgZ2NjIDMuNC4KICAgICAtIEdvb2RieWUgbWlwczY0LgkzMTcwNCBsaW5lcyBvZiBjb2RlIGJpdGUgdGhlIGR1c3QuCiAgICAgLSBSZXBsYWNlIGV4dGVybiBpbmxpbmUgd2l0aCBzdGF0aWMgaW5saW5lLgogICAgIC0gRml4IHJldHVybiB2YWx1ZSBvZiBzdHJuY3B5LgogICAgIC0gUmVtb3ZlIGEgYnVuY2ggbW9yZSAiJDEiIGNsb2JiZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCA1YjcyOWZiM2JkOThmNDk4NTVkNmJmYzY1N2MzZmJhZTk1ZjJhZGMyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE3OjMxOjIyIDIwMDcgKzAyMDAKCiAgICBGaXggZG9fYm9vdG1fbGludXgoKSBzbyB0aGF0IG11bHRpLWZpbGUgaW1hZ2VzIHdpdGggRkRUIGJsb2IgYm9vdC4KCiAgICBGaXggaW5jb3JyZWN0IGJsb2IgYWRkcmVzcyBjYWxjdWxhdGlvbiBpbiBkb19ib290bV9saW51eCgpIHRoYXQgcHJldmVudHMKICAgIGJvb3RpbmcgdGhlIGtlcm5lbCBmcm9tIGEgbXVsdGktZmlsZSBpbWFnZSAoa2VybmVsICsgaW5pdHJkICsgYmxvYikuCgogICAgQWxzbywgbWFrZSBtaW5vciB1cGRhdGVzIHRvIHRoZSBVLUJvb3QncyBvdXRwdXQgYW5kIHRvIHRoZSBjb2Rpbmcgc3R5bGUuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAwNDFhMjU1NGFkNjE5ZTgwZGNlNTIwYzFhMzMyMTBhZmZjYjZhM2YyCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnkuamVubmVqb2huQGZyZWVuZXQuZGU+CkRhdGU6CUZyaSBBdWcgMzEgMTQ6Mjk6MDQgMjAwNyArMDIwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTaWw2ODAgSURFIGNvbnRyb2xsZXIuCgogICAgbyBhZGQgZHJpdmVycy9zaWw2ODAuYyB0byBzdXBwb3J0IHRoZSBTaWw2ODAgSURFLWNvbnRyb2xsZXIuCiAgICBvIGRyaXZlcnMvTWFrZWZpbGU6IGFkZCBzaWw2ODAuby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KCmNvbW1pdCBlNzkwMjEyMjNiYzMzOWRmNjU1ZTM2MDY0NWE1MmM0NTdhNzRiMDY3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgU2VwIDYgMDk6NDc6NDAgMjAwNyAtMDYwMAoKICAgIGJvb3RtL2ZkdDogT25seSBwcm9jZXNzIHRoZSBmZHQgaWYgYW4gZmR0IGFkZHJlc3Mgd2FzIHByb3ZpZGVkCgogICAgQm9hcmRzIHdpdGggQ09ORklHX09GX0xJQkZEVCBlbmFibGVkIGFyZSBub3QgYWJsZSB0byBib290IG9sZC1zdHlsZQogICAga2VybmVscyB1c2luZyB0aGUgYm9hcmQgaW5mbyBzdHJ1Y3R1cmUgKGluc3RlYWQgb2YgcGFzc2luZyBhIGRldmljZSB0cmVlKQogICAgVGhpcyBjaGFuZ2UgYWxsb3dzIHRoZSBvbGQgc3R5bGUgYm9vdGluZyB0byBiZSB1c2VkIGlmIHRoZSBmZHQgYXJndW1lbnQKICAgIHdhcyBub3QgcGFzc2VkIHRvICdib290bScuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2YyODE3YTg0YzJlOWJlYTJjNWRmYzA4NGJjZTJmMmQyNTYzYWM0MwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IFNlcCA2IDA5OjQ2OjIzIDIwMDcgLTA2MDAKCiAgICBNaWdyYXRlIDV4eHggYm9hcmRzIGZyb20gQ09ORklHX09GX0ZMQVRfVFJFRSB0byBDT05GSUdfT0ZfTElCRkRUCgogICAgQWZmZWN0cyBib2FyZHM6IGljZWN1YmUgKGxpdGU1MjAwKSwganVwaXRlciwgbW90aW9ucHJvLCB0cW01MjAwCgogICAgVGVzdGVkIG9uOiBsaXRlNTIwMGIKCiAgICBOb3RlOiB0aGUgZml4dXAgZnVuY3Rpb25zIGhhdmUgbm90IGJlZW4gbW92ZWQgdG8gYSBjb21tb24gcGxhY2UuICBUaGlzCiAgICBwYXRjaCBpcyB0YXJnZXRlZCBmb3IgaW1tZWRpYXRlIG1lcmdpbmcgYXMgaW4gc29sdmVzIGEgYnVpbGQgaXNzdWUsIGJ1dAogICAgdGhlIGZpbmFsIG5hbWUvbG9jYXRpb24gb2YgdGhlIGZpeHVwcyBpcyBzdGlsbCBzdWJqZWN0IHRvIGRlYmF0ZS4gIEkKICAgIHByb3Bvc2UgdG8gbWVyZ2UgdGhpcyBub3csIGFuZCBtb3ZlIHRoZSBmaXh1cHMgaW4gdGhlIG5leHQgbWVyZ2Ugd2luZG93CiAgICB0byBiZSB1c2FibGUgYnkgYWxsIHRhcmdldHMuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDQxYmI3NmU5NDE5MjlmNTRhNzMyMDZmYjEzMmY3YTRjMjc1NTQzYTMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBTZXAgNiAwOTo0NjoxNyAyMDA3IC0wNjAwCgogICAgbGliZmR0OiBhZGQgY29udmVuaWVuY2UgZnVuY3Rpb24gZmR0X2ZpbmRfYW5kX3NldHByb3AoKQoKICAgIEdpdmVuIHRoZSBwYXRoIHRvIGEgbm9kZSwgZmR0X2ZpbmRfYW5kX3NldHByb3AoKSBhbGxvd3MgYSBwcm9wZXJ0eSB2YWx1ZQogICAgdG8gYmUgc2V0IGRpcmVjdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA4MDc2N2E2Y2VhZDk5OTBkOWU3N2U2MmJlOTQ3ODQzYzJjNzJmNDY5CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIFNlcCA1IDE2OjA0OjQxIDIwMDcgKzAxMDAKCiAgICBDaGFuZ2VkIEFQSSBuYW1lIHRvIGNvbG91cmVkX2xlZC5oCiAgICBSZW1vdmVkIGNvZGUgdXNpbmcgZGVwcmVjYXRlZCBpZmRlZiBDT05GSUdfQk9PVEJJTkZVTkMKICAgIFRpZGllZCBvdGhlciBjcHUvYXJtOTIwdC9zdGFydC5TIGNvZGUKCmNvbW1pdCA1NmE5MjcwNTIxYmFhYTAwZTEyNjM5YTk3ODMwMmE2N2Y2MWVmMDYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEF1ZyAzMCAxNjoxODoxOCAyMDA3IC0wNTAwCgogICAgRml4IFVMSSBSVEMgc3VwcG9ydCBvbiBNUEM4NTQ0IERTCgogICAgVGhlIFJUQyBvbiB0aGUgTTE1NzUgVUxJIGNoaXBzZXQgcmVxdWlyZXMgYSBkdW1teSByZWFkIGJlZm9yZQogICAgd2UgYXJlIGFibGUgdG8gdGFsayB0byB0aGUgUlRDLiAgV2UgYWNjb21wbGlzaCB0aGlzIGJ5IGFkZGluZyBhCiAgICBzZWNvbmQgbWVtb3J5IHJlZ2lvbiB0byB0aGUgUEhCIHRoZSBVTEkgaXMgb24gYW5kIHJlYWQgZnJvbSBpdC4KCiAgICBUaGUgc2Vjb25kIHJlZ2lvbiBpcyBhZGRlZCB0byBtYWludGFpbiBjb21wYXRpYWJpbHR5IHdpdGggTGludXgncwogICAgdmlldyBvZiB0aGUgUENJIG1lbW9yeSBtYXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNzVlODllOWI1NzE0ZGIyYjBlODAwNzQwNzFkZmJkZDZmNTk0ODhhCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAwMTo1ODo0OCAyMDA3IC0wNTAwCgogICAgZnRfYm9hcmRfc2V0dXAgdXBkYXRlIDg1eHgvODZ4eCBvZiBwY2kvcGNpZSBidXMtcmFuZ2UgcHJvcGVydHkuCgogICAgcGNpZSBpcyBub3cgZGlmZmVyZW50aWF0ZWQgZnJvbSBwY2kuICBBZGQgODY0MSBidXMtcmFuZ2UgdXBkYXRlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlmNWMzZDM3MjBlNzc3YTU3MmRjZGM4YWYyMDA4YjQ0YzcyNDM4ODUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDQgMTY6MTg6MzggMjAwNyArMDEwMAoKICAgIEFkZCBjb2xvdXJlZCBsZWQgaW50ZXJmYWNlIGZvciBBUk0gYm9hcmRzLgogICAgVXNlIGl0IGluIGNwdS9hcm05MjB0L3N0YXJ0LlMgdG8gaW5kaWNhdGUgVS1Cb290IGNvZGUgaGFzIGJlZW4gZW50ZXJlZC4KCmNvbW1pdCA3NDYyZmUwZDVhOWQ0MGNkZTA4M2ZiMWEzY2Q3MzkxMTk5NmI1ZWNiCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE0OjQ5OjI4IDIwMDcgKzAxMDAKCiAgICBNb3ZlIGluY2x1ZGUvbGVkLmggdG8gYm9hcmQvYXQ5MXJtOTIwMGRrCgpjb21taXQgNmU0YmY5YjI0ZTU3YzE1YWJjNjU0MmU2ODVkMDYzODBiYzY0YWYyNwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNDoyNTo1MSAyMDA3ICswMTAwCgogICAgUmFuIExpbmRlbnQgb24gZHJpdmVycy9hdDQ1LmMKCmNvbW1pdCA1NTdhYjg5ZDI5NGYwOGRkNTMyZjIxZDE5ODYxYjQwMDkzMjAwYTMzCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE0OjIzOjUwIDIwMDcgKzAxMDAKCiAgICBSZW5hbWUgQ09ORklHX0NNRF9NVVggdG8gQ09ORklHX0NNRF9BVDkxX1NQSU1VWAoKY29tbWl0IDgxYjczZGVjMTZmZDEyMjczNjlhMTkxZTcyNWUxMDA0NGE5ZDU2YjgKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAzMSAxNToyMTo0NiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiAoUmUtKUVuYWJsZSBDT05GSUdfUENJX1BOUCBvbiBBTUNDIDQ0MEVQeCBTZXF1b2lhCgogICAgVGhlIDQ0MEVQeCBoYXMgYSBwcm9ibGVtIHdoZW4gdGhlIFBDSV9DQUNIRV9MSU5FX1NJWkUgcmVnaXN0ZXIgaXMKICAgIHNldCB0byBub24temVybywgYmVjYXVzZSBpdCBkb2Vzbid0IHN1cHBvcnQgTVJNIChtZW1vcnktcmVhZC0KICAgIG11bHRpcGxlKSBjb3JyZWN0bHkuIFdlIG5vdyBhZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gY29uZmlndXJlCiAgICB0aGlzIHJlZ2lzdGVyIGluIHRoZSBib2FyZCBjb25maWcgZmlsZSwgc28gdGhhdCB0aGUgZGVmYXVsdCB2YWx1ZQogICAgb2YgOCBjYW4gYmUgb3ZlcnJpZGRlbi4KCiAgICBIZXJlIHRoZSBkZXRhaWxzIG9mIHRoaXMgcGF0Y2g6CgogICAgbyBkcml2ZXJzX3BjaV9hdXRvLmM6IGludHJvZHVjZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRSB0byBhbGxvdwogICAgICBib2FyZC1zcGVjaWZpYyBzZXR0aW5ncy4gQXMgYW4gZXhhbXBsZSB0aGUgc2VxdW9pYSBib2FyZCByZXF1aXJlcyAwLgogICAgICBJZGVhIGZyb20gU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPi4KICAgIG8gYm9hcmQvYW1jYy9zZXF1b2lhL2luaXQuUzogYWRkIGEgVExCIG1hcHBpbmcgYXQgMHhFODAwMDAwMCBmb3IgdGhlCiAgICAgIFBDSSBJTy1zcGFjZS4gT2J0YWluZWQgZnJvbSBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+LgogICAgbyBpbmNsdWRlL2NvbmZpZ3Mvc2VxdW9pYS5oOiB0dXJuIENPTkZJR19QQ0lfUE5QIGJhY2sgb24gYW5kIHNldAogICAgICBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRSB0byAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYwMTc0NzQ2YzY2OGIzMDkzNzhhOTE0ODhkZGVkODk4ZTk1NTNlYWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDMxIDEwOjAxOjUxIDIwMDcgKzAyMDAKCiAgICBGaXggVEZUUCBPQUNLIGNvZGUgZm9yIHNob3J0IHBhY2tldHMuCgogICAgVGhlIG9sZCBjb2RlIGhhZCBhIGxvb3AgbGltaXQgb3ZlcmZsb3cgYnVnIHdoaWNoIGNhdXNlZCBhIHNlbWktCiAgICBpbmZpbml0ZSBsb29wIGZvciBzbWFsbCBwYWNrZXRzLCBiZWNhdXNlIGluICJpPGxlbi04IiwgImkiIHdhcyBzaWduZWQsCiAgICBidXQgImxlbiIgd2FzIHVuc2lnbmVkLCBhbmQgImxlbi04IiBiZWNhbWUgYSBodWdlIG51bWJlciBmb3Igc21hbGwKICAgIHZhbHVlcyBvZiAibGVuIi4KCiAgICBUaGlzIGlzIGEgd29ya2Fyb3VuZCB3aGljaCByZXBsYWNlcyBicm9rZW4gY29tbWl0IDhmMWJjMjg0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjk2ZGQxMzA3Y2Q4ZTczYTEwZTliYjNjNTE3MzFiZmQ2ZjgzN2JlZQpBdXRob3I6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CkRhdGU6CVRodSBBdWcgMzAgMTU6MDM6MDUgMjAwNyArMDIwMAoKICAgIFJlZHVjZSBCT09UREVMQVkgdmFyaWFibGUgdG8gMSBzZWNvbmQgYnkgZGVmYXVsdCBmb3IgU1RLMTAwMgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjODhiNmUxY2JmOWE4YWUyYTM0ZmI2MDJmNzhhMWJmNGU2NjkyYjZhCkF1dGhvcjogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KRGF0ZToJVGh1IEF1ZyAzMCAxNTowMzowNCAyMDA3ICswMjAwCgogICAgUmVtb3ZlIGRvdWJsZSBxdW90YXRpb24gbWFya3MgYXJvdW5kIE1BQyBhZGRyZXNzIGZvciBTVEsxMDAyCgogICAgU2lnbmVkLW9mZi1ieTogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZmMTNhYzhjN2JiZWJiMjM4ZTMzOTU5MmRlNzY1YzU0NmRiYTEwNzMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDMwIDE0OjQyOjE1IDIwMDcgKzAyMDAKCiAgICBCYWNrb3V0IGNvbW1pdCA4ZjFiYzI4NCBhcyBpdCBjYXVzZXMgVEZUUCB0byBmYWlsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTkwMGZiZjI1NWFjYmE4Yjk0ZmI0NDJhMTY0MDhlYTg1YTFkNDZhNgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMzAgMDI6MjY6MTcgMjAwNyAtMDUwMAoKICAgIFJldmVydCAiRml4IE1QQzg1NDREUyBQQ0llMyBzY3NpLiIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDk0NjhlNjgwLgogICAgQ29tbWl0IDE2ZTIzYzNmNWRhIHJlbW92aW5nIGFsbG9jYXRpb24gb2YgUENTUkJBUiBpcyBzdWZmaWNpZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGYxYmMyODQwOGRlZDIxMzQxOGQ5YmMwNzgwYzdkOGZiOGEwMzc3NApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJV2VkIEF1ZyAyOSAxODoyNjoyNCAyMDA3IC0wNjAwCgogICAgdGZ0cDogZG9uJ3QgaW1wbGljaXR5IHRydXN0IHRoZSBmb3JtYXQgb2YgcmVjZXZpZWQgcGFja2V0cwoKICAgIFRoZSBURlRQIE9BQ0sgY29kZSB0cnVzdHMgdGhhdCB0aGUgaW5jb21pbmcgcGFja2V0IGlzIGZvcm1hdGVkIGFzCiAgICBBU0NJSSB0ZXh0IGFuZCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IHN0cmluZyBmdW5jdGlvbnMuIEl0IGFsc28gaGFzIGEKICAgIGxvb3AgbGltaXQgb3ZlcmZsb3cgYnVnIHdoZXJlIGlmIHRoZSBwYWNrZXQgbGVuZ3RoIGlzIGxlc3MgdGhhbiA4LCBpdAogICAgZW5kcyB1cCBsb29waW5nIG92ZXIgKmFsbCogb2YgbWVtb3J5IHRvIGZpbmQgdGhlICdibGtzaXplJyBzdHJpbmcuCgogICAgVGhpcyBwYXRjaCBzb2x2ZXMgdGhlIHByb2JsZW0gYnkgZm9yY2luZyB0aGUgcGFja2V0IHRvIGJlIG51bGwKICAgIHRlcm1pbmF0ZWQgYW5kIHVzaW5nIHN0cnN0cigpIHRvIHNlYXJjaCBmb3IgdGhlIHN1YiBzdHJpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDA0NjI1NzY0Y2M5M2NlOGE2MTYyNWFjMTlkN2ZlMmEyY2VlZTgxNDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjkgMTY6MzE6MTggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIGx3bW9uNSBkZWZhdWx0IGVudmlyb25tZW50IHRvIHN1cHBvcnQgTGludXggUlRDCgogICAgVGhlIExpbnV4IFBDRjg1NjMgUlRDIGRyaXZlciBkb2Vzbid0IGRvIGF1dG9wcm9iaW5nLCBzbyB3ZSBuZWVkCiAgICB0byBzdXBwbHkgdGhlIFJUQyBJMkMgYWRkcmVzcyBhcyBib290bGluZSBwYXJhbWV0ZXIuIFRoaXMgcGF0Y2gKICAgIGFkZHMgc3VwcG9ydCBmb3IgdGhpcyBydGMgcHJvYmluZyBwYXJhbWV0ZXIgdG8gdGhlIGJvb3RhcmdzOgoKICAgICJydGMtcGNmODU2My5wcm9iZT0wLDB4NTEiCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI2MDJhNWM0MGFlMzdhYjk2NWE0ZTI0MDg1NGZkYWZmYjUxMzI4YTQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDI5IDA5OjA2OjA1IDIwMDcgLTA1MDAKCiAgICBzYmM4NjQxOiByZW1vdmUgdW51c2VkIE9GX0ZMQVRfVFJFRV9NQVhfU0laRQoKICAgIHRoaXMgaGFkIHNsaXBwZWQgdGhyb3VnaCB0aGUgY3JhY2tzLCBzaW5jZSB0aGUgc2JjIGJvYXJkIHdhcyBhZGRlZAogICAgYWZ0ZXIgSSB3cm90ZSB0aGUgb3JpZ2luYWwgcGF0Y2ggdG8gcmVtb3ZlIGFsbCB0aGVzZSBzeW1ib2xzLCBhbmQKICAgIGJlZm9yZSBpdCB3YXMgbWVyZ2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzViZGVkM2M4OGU0OGFlNjQ4YTc1ZDM1N2RjODFhODI1NWZhODFmMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjkgMTQ6MDU6MzAgMjAwNyArMDIwMAoKICAgIEFkZCBtaWlfaW5pdCgpIHByb3RvdHlwZQoKICAgIHRvIGdldCByaWQgb2YgYSAqbG90KiBvZiBjb21waWxlciB3YXJuaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJkMWYyM2FhMWU3NGU0YThmOGZmYTY3ZjI0NmViOThjNTIyZGZkN2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI5IDEzOjM1OjAzIDIwMDcgKzAyMDAKCiAgICBEaXNhYmxlIG5ldHdvcmsgc3VwcG9ydCBvbiBjbWlfbXBjNXh4IGJvYXJkCgogICAgLi5iZWNhdXNlIGl0IGNhdXNlZCBjb21waWxlciBlcnJvcnMgYW5kIHRoZXJlIHNlZW1zIHRvIGJlIG5vCiAgICBib2FyZCBtYWludGFpbmVyIHRvIHRha2UgY2FyZSBvZiB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTQ2OGU2ODA0YjdlMjViMGY2ZjUyZTUzZjQ3YmNlMzE3NTQwMGExNgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBBdWcgMjAgMDk6NDQ6MDAgMjAwNyAtMDUwMAoKICAgIEZpeCBNUEM4NTQ0RFMgUENJZTMgc2NzaS4KCiAgICA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CgogICAgVGhlIHByb2JsZW0gaXMgcGNpYXV0b19zZXR1cF9kZXZpY2UoKSBnZXR0aW5nIGNhbGxlZCBmcm9tIGZzbF9wY2lfaW5pdC5jCiAgICBpcyBhbGxvY2F0aW5nIG1lbW9yeSBzcGFjZSBpdCBkb2Vzbid0IG5lZWQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0YmY0YWJiOGE0ZTk5NTU1NTZiMTIwYTFhYWZhMzBjMDNlNzQwMzJhCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMSAwOTozODo1OSAyMDA3IC0wNTAwCgogICAgODU0OGNkcyBmaXhlcwoKICAgIFJlc3RvcmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUyBkZWZpbml0aW9uIHdoaWNoIGNvbnRhaW5zIHRoZQogICAgY29ycmVjdCBjb25zb2xlZGV2IG5lZWRlZCBmb3IgbGludXggYm9vdC4KICAgIFN0YW5kYXJkaXplIG9uIGZkdHtmaWxlLGFkZHJ9IHZhciB0byBob2xkIGR0YiBmaWxlIG5hbWUuCgogICAgU2V0IFBDSSBpbmJvdW5kIG1lbW9yeSByZWdpb24gZnJvbSBDRkdfTUVNT1JZX3tCVVMsUEhZU30uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YTFhYzQxOWZhMGQyZDIzZGRkMDhiZDYxZDE2ODk2YTlmMzNjOTMzCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyMyAxNToyMDo1NCAyMDA3IC0wNDAwCgogICAgRW5hYmxlIEwyIGNhY2hlIGZvciBNUEM4NTY4TURTIGJvYXJkCgogICAgVGhlIEwyIGNhY2hlIHNpemUgaXMgNTEyS0IgZm9yIDg1NjgsIHByaW50IG91dCB0aGUgY29ycmVjdCBpbmZvcm1haXRvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk0YzQ3ZmRhZjE0Y2IyOWZhM2ZiNGQ0ZGEyZWZkZDk2YzgwM2I0NmIKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIyIDE3OjU0OjQ5IDIwMDcgKzA4MDAKCiAgICBSZW1vdmUgdGhlIGJpb3MgZW11bGF0b3IgYmluYXJ5IGZpbGVzIGZyb20gTUFJIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NjA4ZDc1ZjljODdjOWViNWIzYTQzMjE5ZDA1MDZkM2U5NzlhMTNmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMSAxNzowMDoxNyAyMDA3IC0wNTAwCgogICAgc3VwcG9ydCBib2FyZCB2ZW5kb3ItY29tbW9uIG1ha2VmaWxlcwoKICAgIGlmIGEgYm9hcmQvJChWRU5ET1IpL2NvbW1vbi9NYWtlZmlsZSBleGlzdHMsIGJ1aWxkIGl0LgoKICAgIGFsc28gYWRkIHRoZSBmaXJzdCBzdWNoIGNhc2UsIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vTWFrZWZpbGUsIHRvCiAgICBoYW5kbGUgYnVpbGRpbmcgYm9hcmQtc2hhcmVkIEVFUFJPTSwgUElYSVMsIGFuZCBNRFMtUElCIGNvZGUsIGFzCiAgICBkaWN0YXRlZCBieSBib2FyZCBjb25maWd1cmF0aW9uLgoKICAgIHRodXNseSBnZXQgcmlkIG9mIGFsdGVybmF0ZSBidWlsZCBkaXIgZXJyb3JzIHN1Y2ggYXM6CgogICAgRkFUQUw6IGNhbid0IGNyZWF0ZSAvd29yay93ZC90bXAvdS1ib290LXBwYy9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVtZHMvLi4vY29tbW9uL3BxLW1kcy1waWIubzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQoKICAgIGJ5IHB1dHRpbmcgdGhlIGNvbW1vbi8gbWtkaXIgY29tbWFuZCBpbiBpdHMgcHJvcGVyIHBsYWNlICh0aGUgY29tbW9uCiAgICBNYWtlZmlsZSkuIENvbW1vbiBiaXRzIGZyb20gZXhpc3RpbmcgaW5kaXZpZHVhbCBib2FyZCBNYWtlZmlsZXMgaGF2ZQogICAgYmVlbiByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWY4ZjIwNzUyNzEyZGMxY2RiZDg2ZjQ3ZTNiZDZlMzVmODFjODNmZApBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgQXVnIDIxIDE1OjUyOjMzIDIwMDcgKzAyMDAKCiAgICBGaXg6IFRGVFAgaXMgbm90IHdvcmtpbmcgb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zCgogICAgVEZUUCBkb2VzIG5vdCB3b3JrIGFueW1vcmUgYWZ0ZXIgbXVsdGljYXN0IHRmdHAKICAgIHBhdGNoIHdhcyBhcHBsaWVkIG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcy4KICAgIFRoaXMgcGF0Y2ggZml4IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDVmNDcwOTQ4NTcwNTI2ZTkxODZmMDUzYTMwMDNkYTc3MTk2MDRlOTAKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyMSAxNTo1MDozMyAyMDA3ICswMjAwCgogICAgRml4IE1BQyBhZGRyZXNzIHNldHRpbmcgaW4gRE05MDAwIGRyaXZlci4KCiAgICBUaGUgbG9naWMgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYSBjb3JyZWN0IE1BQyBhZGRyZXNzIGluIHRoZSBETTkwMDAKICAgIEVFUFJPTSwgYWRkZWQgaW4gdGhlIGxhc3QgcGF0Y2gsIGlzIHdyb25nLiBOb3cgdGhlIE1BQyBhZGRyZXNzIGlzCiAgICBhbHdheXMgdGFrZW4gZnJvbSB0aGUgZW52aXJvbm1lbnQsIGV2ZW4gaWYgYSBzdWl0YWJsZSBNQUMgaXMgcHJlc2VudAogICAgaW4gdGhlIEVFUFJPTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA0YTg1MjdlZjA4NmVjN2M4OWY0MDY3NGVmMDI0YWU2Zjk4OGE2MTRhCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVR1ZSBBdWcgMjEgMTI6NDA6MzQgMjAwNyArMDIwMAoKICAgIE1QQzV4eHg6IGZpeCBzb21lIGNvbXBpbGVyIHdhcm5pbmdzIGluIFVTQiBjb2RlCgogICAgRml4IHRoZSBmb2xsb3dpbmcgd2FybmluZ3M6CiAgICAtIHVzYi5jOnh4OiB3YXJuaW5nOiBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpc24ndCBhIHByb3RvdHlwZQogICAgLSB1c2Jfb2hjaS5jOnh4eDogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAxIG9mICdfX2Zzd2FiMzInIG1ha2VzIGludGVnZXIKICAgICAgZnJvbSBwb2ludGVyIHdpaHRvdXQgYSBjYXN0CgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXNlQHRxcy5kZT4KCmNvbW1pdCAxNmUyM2MzZjVkYWI2OTM3ZjUxMDkzNjU0MTY4MDhjN2YxNWMxMjJiCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyMCAyMzo1NTozMyAyMDA3IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IC0gUmVtb3ZlIHNlbGYgUENTUkJBUiBhbGxvY2F0aW9uCgogICAgQ1BVIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2Ugd2FzIGJlaW5nIHdhc3RlZCBieSBhbGxvY2F0aW5nIGEKICAgIFBDU1JCQVIgUENJIGluYm91bmQgcmVnaW9uIHRvIGl0J3MgbWVtb3J5IHNwYWNlLgoKICAgIEFzIGEgcnVsZSwgUENTUkJBUiBzaG91bGQgYmUgbGVmdCBhbG9uZSBzaW5jZSBpdCBkb2VzIG5vdCBhZmZlY3QKICAgIHRyYW5zYWN0aW9ucyBmcm9tIHNlbGYgYW5kIG90aGVyIG1hc3RlcnMgbWF5IGhhdmUgY2hhbmdlZCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlNzAwY2UwM2EyM2JiMTkyMTE0OWJjNzcwMDhhY2U3MTAzZDUyODkKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIEF1ZyAyMCAxMzo1Njo0NyAyMDA3ICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmcgaW4gaW5jbHVkZS9zM2MyNDEwLmgKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSAidHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVjdGlvbiByZXR1cm4gdHB5ZSIKICAgIHdhcm5pbmcgZm9yIGluY2x1ZGUvczNjMjQxMC5oCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgOWJiOGIyMDllZDIwNThhNTc1NmVjYmViNTQ0YzA2N2U0NGE0MmFlYQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CU1vbiBBdWcgMjAgMDc6MDk6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBmb3Igb21hcDI0MjBoNF9jb25maWcuCgogICAgb21hcDI0MjBoNCBzd2l0Y2hlZCB0byBjZmksIHNvIHJlbW92ZSBvbGQgKGFscmVhZHkgZGlzYWJsZWQpIGZsYXNoLmMKICAgIGFuZCBmbGFzaF9wcm9iZSgpIGNhbGxzIGluIGVudl9mbGFzaC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IDNiYjM0MmZjODVkNzlkYmI2YjhjMjAzOWU3Y2RjZGRjODJiOGQ5MGYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDE0OjM0OjE0IDIwMDcgLTA1MDAKCiAgICBmZHQ6IHJlbW92ZSB1bnVzZWQgT0ZfRkxBVF9UUkVFX01BWF9TSVpFIHJlZmVyZW5jZXMKCiAgICBhbmQgbWFrZSBzb21lIG1pbm9yIGNvcnJlY3Rpb25zIHRvIHRoZSBGRFQgcGFydCBvZiB0aGUgUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmFmMmVlYjFlOTljMmRjYzU4NGQ0YzVhYjdmY2FlMzBhMzI1ZjRkZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjkgMDE6MzI6MDUgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTg2MTU1OGM2NWY2NWYxY2YxMzAyZjNhMzVlOWRiNzY4NmI5ZTFhMwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyOCAxNzo0MDozMyAyMDA3ICswMjAwCgogICAgW1VDMTAxXSBGaXg6IGlmIG5vIENGIGluIHRoZSBib2FyZCwgVS1Cb290IHJlc2V0cyBzb21ldGltZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZjk4OTg0Y2IxOTRiYjM0ZGJlMWRiOTQyOWQzYjUxMTMzYWYzMGQwNwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyOCAxNzozOToxNCAyMDA3ICswMjAwCgogICAgSURFOgktIG1ha2UgaWRlX2luYiAoKSBhbmQgaWRlX291dGIgKCkgIndlYWsiLCBzbyBib2FyZHMgY2FuCgkgICAgICBkZWZpbmUgdGhlcmUgb3duIEkvTyBmdW5jdGlvbnMuCgkgICAgICAoTmVlZGVkIGZvciB0aGUgcGNzNDQwZXAgYm9hcmQpLgoJICAgIC0gVGhlIGRlZmF1bHQgSS9PIEZ1bmN0aW9ucyBhcmUgYWdhaW4gOCBCaXQgYWNjZXNzZXMuCgkgICAgLSBBZGRlZCBDT05GSUdfQ01EX0lERSBmb3IgdGhlIHBjczQ0MGVwIEJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDJjMDVmZDEyNTc0NDk4MWU1ZjI4MjhkMjRlNjZjY2MyMGE3N2QyNWQKQXV0aG9yOiBTZW1paCBIYXphciA8c2VtaWguaGF6YXJAaW5kZWZpYS5jb20+CkRhdGU6CU1vbiBBdWcgMjAgMTk6MDA6MDEgMjAwNyArMDMwMAoKICAgIEFWUjMyOiBDaGFuZ2UgcHJvdG90eXBlIG9mIG1lbXNldAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlbWloIEhhemFyIDxzZW1paC5oYXphckBpbmRlZmlhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDljMDJkZWZjMjliNTc5NDViNjAwNzE0Y2Y2MWRkZmQwMmIwMmZiMTQKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVNhdCBBdWcgMjUgMDU6MDc6MTYgMjAwNyArMDIwMAoKICAgIFBPU1Q6IGxpbWl0IG1lbW9yeSB0ZXN0IGFyZWEgdG8gbm90IHRvdWNoIGdsb2JhbCBkYXRhIGFueW1vcmUKCiAgICBBcyBleHBlcmllbmNlZCBvbiBsd21vbjUsIG9uIHNvbWUgYm9hcmRzIHRoZSBQT1NUIG1lbW9yeSB0ZXN0IGNhbgogICAgY29ycnVwdCB0aGUgZ2xvYmFsIGRhdGEgYnVmZmVyIChiZCkuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZQogICAgYnkgY2hlY2tpbmcgYW5kIGxpbWl0aW5nIHRoaXMgYXJlYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzVlMWE4NGQ0ODNlMzZiZTEwZTIwNmU1MzliMDI4YzQ4ODllMTE1OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAyNCAxNTo0MTo0MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgUlRDIFBPU1QgdGVzdCB0byBsd21vbjUgYm9hcmQgY29uZmlndXJhdGlvbgoKICAgIFNpbmNlIHRoaXMgUlRDIFBPU1QgdGVzdCBpcyB0YWtpbmcgcXVpdGUgYSB3aGlsZSB0byBjb21wbGV0ZQogICAgaXQncyBvbmx5IGluaXRpYXRlZCB1cG9uIHNwZWNpYWwga2V5cHJlc3Mgc2FtZSBhcyB0aGUgY29tcGxldGUKICAgIG1lbW9yeSBQT1NULgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkN2JmYTYyMDAzN2E2ZDIyMTAxNTkzODc1NzFiZGY5M2FhMzJjMTYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDI0IDE1OjE5OjEwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBHUElPIHNpZ25hbCBmb3Igd2F0Y2hkb2cgdHJpZ2dlcmluZyBvbiBsd21vbjUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzI1ZGQ4ZmMyNWU5Y2EzNjk1ZGI5OTZhMjU3ZDliYTRkYWI0MTRkYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyMyAxMTowMjozNyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgc3VwcG9ydCBmb3IgMm5kIEkyQyBFRVBST00gb24gbHdtb241IGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSAybmQgRUVQUk9NIChBVDI0QzEyOCkgb24gdGhlIGx3bW9uNQogICAgYm9hcmQuIE5vdyB0aGUgImVlcHJvbSIgY29tbWFuZCBjYW4gYmUgdXNlZCB0byByZWFkL3dyaXRlIGZyb20vdG8gdGhpcwogICAgZGV2aWNlLiBBZGRpdGlvbmFsbHkgYSBuZXcgY29tbWFuZCB3YXMgYWRkZWQgImVlcHJvbXdwIiB0byBlbi0vZGlzYWJsZQogICAgdGhlIHdyaXRlLXByb3RlY3Qgb2YgdGhpcyAybmQgRUVQUk9NLgoKICAgIFRoZSAxc3QgRUVQUk9NIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIHdyaXRlLXByb3RlY3QgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzY0ZmIzMGU0YzU5NzYwMDdkNTZmYzE3ODljN2EwNjY2MDgyYjUzNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyMiAwODo1NjowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIG9wdGlvbiBDRkdfSU5JVF9SQU1fT0NNCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNhZDYzODc4NzM3YTVhMmIxZTYwODI1YmYwYTdkNjAxZDdhNjk1ZTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjEgMTY6Mjc6NTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG1hdHJpeCBrYmQgc3VwcG9ydCB0byBsd21vbjUgYm9hcmQgKDQ0MEVQeCBiYXNlZCkKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG1hdHJpeCBrZXlib2FyZCBvbiB0aGUgbHdtb241IGJvYXJkLgogICAgU2luY2UgdGhlIGltcGxlbWVudGF0aW9uIGluIHRoZSBkc1BDSSBpcyBraW5kIG9mIGNvbXBhdGlibGUgd2l0aCB0aGUKICAgICJvbGQiIGx3bW9uIGJvYXJkLCBtb3N0IG9mIHRoZSBjb2RlIGlzIGNvcGllZCBmcm9tIHRoZSBsd21vbgogICAgYm9hcmQgZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZTY2YzA3ODAwMzYwN2E3ZDFkMjE0YzE1YTVmMjYyYmMxYjQwMzJmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxOSAxMDoyNzozNCAyMDA3ICswMjAwCgogICAgRml4IHNvbWUgYnVpbGQgZXJyb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDU2NzU3MzVlZjc3ZGMyM2I1ZTBlYjc4MmJhZDFmZjQ3N2I1NWU4NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBBdWcgMTggMjI6MDA6MzggMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgNzlmMjQwZjdlY2MwNTA2YjQzYWM1MGQxZWE0MDVmZjY1NDBkNGQ1NwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMjI6NTI6MzkgMjAwNyAtMDUwMAoKICAgIGxpYl9wcGM6IG1ha2UgYm9hcmRfYWRkX3JhbV9pbmZvIHdlYWsKCiAgICBwbGF0Zm9ybXMgd2lzaGluZyB0byBkaXNwbGF5IFJBTSBkaWFnbm9zdGljcyBpbiBhZGRpdGlvbiB0byBzaXplLAogICAgY2FuIGRvIHNvLCBvbiBvbmUgbGluZSwgaW4gdGhlaXIgb3duIGJvYXJkX2FkZF9yYW1faW5mbygpCiAgICBpbXBsZW1lbnRhdGlvbi4KCiAgICB0aGlzIGNvbnNlcXVlbnRseSBlbGltaW5hdGVzIENPTkZJR19BRERfUkFNX0lORk8uCgogICAgVGhhbmtzIHRvIFN0ZWZhbiBmb3IgdGhlIGhpbnQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MTViNWJkNWIxODU2OTkxN2MzZTA0Yjk3NTc1MTFlNmVkMjNiOWY2CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglGcmkgQXVnIDE3IDEyOjQzOjQ0IDIwMDcgKzA5MDAKCiAgICBQQ0lfUkVBRF9WSUFfRFdPUkRfT1A6IEZpeCAqdmFsIHVuaW5pdGlhbGl6ZWQgYnVnCgogICAgVGhpcyBwYXRjaCBoYXMgYmVlbiBzZW50IG9uOgogICAgLSA2IEp1biAyMDA3CgogICAgTWFueSB1c2VycyBvZiBQQ0kgY29uZmlnIHJlYWQgcm91dGluZXMgdGVuZCB0byBpZ25vcmUgdGhlIGZ1bmN0aW9uCiAgICByZXQgdmFsdWUsIGFuZCBhcmUgb25seSBjb25jZXJuZWQgYWJvdXQgdGhlIGNvbnRlbnRzIG9mICp2YWwuIEJhc2VkCiAgICBvbiB0aGlzLCBwY2lfaG9zZV9yZWFkX2NvbmZpZ197Ynl0ZSx3b3JkfV92aWFfZHdvcmQgc2hvdWxkIGluaXRpYWxpemUKICAgIHRoZSAqdmFsIG9uIGR3b3JkIHJlYWQgZXJyb3IuCgogICAgV2l0aG91dCB0aGlzIGZpeCwgZm9yIGV4YW1wbGUsIHdlJ2xsIGdvIG9uIHNjYW5uaW5nIGJ1cyB3aXRoIHZlbmRvciBvcgogICAgaGVhZGVyX3R5cGUgdW5pbml0aWFsaXplZC4gVGhpcyBicmluZ3MgbWFueSB1bm5lY2Vzc2FyeSBjb25maWcgdHJpYWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCAyNjY2N2I3ZmEwNWE4YmYyZmM2NWZiOWYzMjMwYjAyYjFhMTBjMzY3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgQXVnIDE4IDE0OjM3OjUyIDIwMDcgKzAyMDAKCiAgICBDb2xkRmlyZTogRml4IHNvbWUgcmVtYWluaW5nIHByb2JsZW1zIHdpdGggQ0ZHX0NNRF8KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODI4MGY2YTFjNDMyNDc2MTZiNjgyMjQ2NzUxODhlNWNjZDEyNDY1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEF1ZyAxOCAxNDozMzowMiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGE0NDJkMzE4NmIzMTg5M2I0Zjc3YzZlODJmNjNjNDUxN2E1MjI0YgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxOToyMzo1MCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTIzNUVWQiBQbGF0Zm9ybSBmb3IgTUNGNTIzeAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0Y2MxY2Q1OTQxODI3YTA0Y2Y1YzUxYTA3ZmNjNDJlODk0NTg5NGFhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNyAwOTozMDowMCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IHR5cG8gaW4gRERSMiBwcm9ncmFtbWluZwoKICAgIGludHJvZHVjZWQgaW4gdGhlIGltcGxlbWVudCBib2FyZF9hZGRfcmFtX2luZm8gcGF0Y2ggYXMgSSB3YXMgY2xlYW5pbmcgb3V0IHRoZQogICAgbWFnaWMgbnVtYmVycy4gIHNvcnJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTU4ZmU5NTc4NGQyNTE0ZmM5YzIxMDI4ZGM1OWYyYjMxOWEzNWQ4MApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMjI6NTM6MDkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1vdmUgZnJlZXNjYWxlIGJvYXJkcyB0byBib2FyZHMvZnJlZXNjYWxlCgogICAgaW5jbHVkZXMgYnVpbGQgZml4ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YWE0YWQ4ZDhlN2U5NDY4MjE5OTkwYzc4NzVkNWZkYzllOTYyZjQ3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAyMjo1Mjo1OSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogc3VwcHJlc3MgdW51c2VkIHZhcmlhYmxlICd2YWw4JyB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYmVhNDZmNzZmNzY3YjkxOTA3MGI0ODI5YmYzNGM4NmJkMjIzMjQ4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAyMjo1Mjo0OCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogaW1wbGVtZW50IGJvYXJkX2FkZF9yYW1faW5mbwoKICAgIGFkZCBib2FyZF9hZGRfcmFtX2luZm8sIHRvIG1ha2UgbWVtb3J5IGRpYWdub3N0aWMgb3V0cHV0IG1vcmUKICAgIGNvbnNpc3RlbnQuIHUtYm9vdCBiYW5uZXIgb3V0cHV0IG5vdyBsb29rcyBsaWtlOgoKICAgIERSQU06ICAyNTYgTUIgKEREUjEsIDY0LWJpdCwgRUNDIG9uKQoKICAgIGFuZCBmb3IgYm9hcmRzIHdpdGggU0RSQU0gb24gdGhlIGxvY2FsIGJ1cywgYSBsaW5lIHN1Y2ggYXMgdGhpcyBpcwogICAgYWRkZWQ6CgogICAgU0RSQU06IDY0IE1CIChsb2NhbCBidXMpCgogICAgYWxzbyByZXBsYWNlZCBzb21lIG1hZ2ljIG51bWJlcnMgd2l0aCB0aGVpciBlcXVpdmFsZW50IGRlZmluZSBuYW1lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE0Nzc4NTg1ZDEzODlkODZkNTg0NmVmZWMyOWU1ZmNlODkyNjgwY2UKQXV0aG9yOiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTcgMTA6MzU6NTkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IFNwbGl0IFBJQiBpbml0IGNvZGUgZnJvbSBwY2kuYyBhbmQgYWRkIFFvYzMgQVRNIGNhcmQgc3VwcG9ydAoKICAgIFRoZSBwYXRjaCBzcGxpdCB0aGUgUElCIGluaXQgY29kZSBmcm9tIHBjaS5jIHRvIGEgc2luZ2xlIGZpbGUgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9wcS1tZHMtcGliLmMKICAgIEFuZCBhZGQgUW9jMyBBVE0gY2FyZCBzdXBwb3J0IGZvciBNUEM4MzYwRU1EUyBhbmQgTVBDODMyWEVNRFMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieSBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGFlMTU4Y2Q4N2E0YTI1NzIyYjI3ODM1MjYxYjZmZjBmYTJhYTZhNwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxNTowNToxMSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTQ0NTVFVkIgZm9yIE1DRjU0NDV4CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGExNDM2YTg0MjY1NGE4ZDM5MjdkMDgyYThhZTllZTBhMTBkYTYyZDcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTM6MjA6NTAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUyNTNFVkJFIHBsYXRmb3JtIGZvciBNQ0Y1MngyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE2MDVhYWNkODMyNDA5NDE5OTQwMjgxNmNjNmQ5MTI0YWJhNTdiOGQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMDU6MDQ6MzEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUyNDlFVkIgcGxhdGZvcm0gZm9yIE1DRjUyeDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjI4ZTFiZDlkYWE2ZGU1ZWIzM2FlNDgyMmJkYTZiMDA4Y2NiNGU5ZQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDozMjowNiAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IFVwZGF0ZSBGcmVlc2NhbGUgTUNGNTJ4MiBwbGF0Zm9ybXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODcwNDcwZGJmNmY0YmI5ODY0ZTBkOTdhZWVkYmMxN2MxNjdjNmQxYwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo1NToxMCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IFVwZGF0ZSBFQitNQ0YtRVYxMjMgcGxhdGZvcm0KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWE5M2Q4NTlkOWIxZmNkOGVlYTUyZDUxYjA2ZTg2YzM4ZjcyMTExYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo0NjozOCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IHVwZGF0ZSBUQVNSRUcgcGxhdGZvcm0gZm9yIE1DRjUyeDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTk1MDU1MTBiZjU2YTliNTU1ODI0OGRkOGI3M2VjOWQ5YTE1NTZhMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo0NTo1MSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IHVwZGF0ZSByNTIwMCBwbGF0Zm9ybSBmb3IgTUNGNTJ4MgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2Y2ZkM2M3YmM4MTNmYjMxN2FiN2MwNzgxZjBkMTg3NGIxYzA4NzdjCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjQzOjIwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogaWRtciBwbGF0Zm9ybSBNQ0Y1MngyIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NzA2NDI0ZDBiYjg1MWZiNTJhZjAwY2QxYzMzMDFlOTFlZTdmMmIwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjQxOjA2IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogY29icmE1MjcyIHBsYXRmb3JtIGZvciBNQ0Y1MngyIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NjExNTY2NWI0YTY0YzEwYzAxNDQwYzU3NzQ5YjI2NWUwOTA4ZmE0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjM4OjE1IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTJ4MiBIZWFkZXIgZmlsZXMgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgzZWMyMGJjNDM4MGVlYmRkZmRlNDVkYTZlM2E2OWE5MmQ0ZGIyMWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6MjE6MjEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MngyIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTJlNzgzMDRkY2MwYWM0NTljMGVhMWZhNWJlMjc1YzdkMTY0MmNmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE4OjQ2OjExIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSB1cGRhdGUgY2FjaGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzE3MTk3N2ZiOGZkNzdjZmI2Njc2OTUzZmE5YTA1Nzg5YzQ1MDUxMwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxNTo0MDoyMCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgaGVhZGVyIGZpbGUgY2xlYW4gdXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWI3N2JjNTQ3YmE1NjFjMjVlYTM0NDU3ZWQxN2FhMGIyZjdjMjcyMwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxNTozOToxNyAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgVXBkYXRlIGFuZCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwMzI3ZGM1NTQxZjk0N2MwY2Y3ZTMxZmVmODZjNDcwNjE2OTYwN2EKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTY6MzU6MDIgMjAwNyAtMDUwMAoKICAgIEFkZCBDT05GSUdfSEFTX0VUSDAgdG8gYWxsIGJvYXJkcyB3aXRoIFRTRUMKCiAgICBUaGUgODV4eCBjb2RlIG5vdyByZWxpZXMgb24gQ09ORklHX0hBU19FVEgwIHRvIGRldGVybWluZSB3aGV0aGVyCiAgICB0byB1cGRhdGUgVFNFQzEncyBkZXZpY2UtdHJlZSBub2RlLCBzbyB3ZSBuZWVkIHRvIGFkZCBpdAogICAgdG8gYWxsIHRoZSBib2FyZHMgd2l0aCBUU0VDcy4gIERvIHRoaXMgZm9yIDgzeHggYW5kIDg2eHgsIHRvbywKICAgIHNpbmNlIHRoZXkgd2lsbCBldmVudHVhbGx5IGRvIHNvbWV0aGluZyBzaW1pbGFyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNjRlZTkwOGExYjUyNWU1YmIyYjRjYmViNWM0NDlhZDZhNDY5NjY2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEF1ZyAxNiAxNTowNTowNCAyMDA3IC0wNTAwCgogICAgVXBkYXRlIE1QQzg1NDQgRFMgUENJIG1lbW9yeSBtYXAKCiAgICBUaGUgUENJZSBidXMgdGhhdCB0aGUgVUxJIE0xNTc1IGlzIGNvbm5lY3RlZCB0byBoYXMgbm8gcG9zc2libGUgd2F5IG9mCiAgICBuZWVkaW5nIG1vcmUgdGhhbiB0aGUgZml4ZWQgYW1vdW50IG9mIElPICYgTWVtb3J5IHNwYWNlIG5lZWRlZCBieSB0aGUgVUxJLgoKICAgIFNvIG1ha2UgaXQgdXNlIGZhciBsZXNzIElPICYgbWVtb3J5IHNwYWNlIGFuZCBoYXZlIGl0IHVzZSB0aGUgc2hhcmVkIExBVy4gIFRoaXMKICAgIGZyZWUncyB1cCBhIExBVyBmb3IgUENJZTEgSU8gc3BhY2UuICBBbHNvIHJlZHVjZSB0aGUgYW1vdW50IG9mIElPIHNwYWNlIG5lZWRlZAogICAgYnkgZWFjaCBidXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlYTU4NzdlMzFlZDYzYWRlOTQ4ZmQxMjkzODk1ZWMyM2ZlMDE0NzJlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEF1ZyAxNiAxMTowMToyMSAyMDA3IC0wNTAwCgogICAgRml4IHVwIHNvbWUgZmR0IGlzc3VlcyBvbiA4NTQ0RFMKCiAgICBJdCBsb29rcyBsaWtlIHdlIGhhZCBhIG1lcmdlIGlzc3VlIHRoYXQgZHVwbGljYXRlZCBhIGJpdCBvZiBjb2RlCiAgICBpbiBmdF9ib2FyZF9zZXR1cC4JQWxzbywgd2UgbmVlZCB0byBzZXQgQ09ORklHX0hBU19FVEgwIHRvIGdldAogICAgdGhlIE1BQyBhZGRyZXNzIHByb3Blcmx5IHNldCBpbiB0aGUgZGV2aWNlIHRyZWUgb24gYm9vdCBmb3IgVFNFQzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDA3YmMyMDU2MGNiOWQzZDE4NmNjYTI2OGMwNWM4Mjc2MmU4YzU1YWQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE1OjE2OjAzIDIwMDcgKzAyMDAKCiAgICBQUEM0eHg6SENVNC81IGNsZWFudXAKCiAgICBNaW5vciBjbGVhbnVwcyB0byBjb25maXJtIHRvIHRoZSB1LWJvb3QgY29kaW5nIHN0eWxlLgogICAgU29tZSBnZXJtYW4gZXhwcmVzc2lvbnMgLT4gZW5nbGlzaC4KICAgIEhDVTUgZW5mb3JjZXMgYSB1bmlxdWUgSVAgYWRyZXNzIGZvciBhIGdpdmVuIHNsb3QgaW4gdGhlIHJhY2suCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAxZTZiMDdjNjQ5NjdjMWViMmNkODRmYWE0YzMyYmYyYTc2OWJjOGViCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxNToxNjowMiAyMDA3ICswMjAwCgogICAgUFBDNHh4OkhDVTQvNSBjbGVhbnVwIGVjYy9zZHJhbSBpbml0CgogICAgTWFrZSBlY2MgaW5pdGlhbGlzYXRpb24gcm9idXN0LCBhcyBERFIyLUVDQyBlcnJvcnMgbWF5IGJlIGdlbmVyYXRlZAogICAgd2hpbGUgemVyb2luZyB0aGUgUkFNLgoKICAgIFJldHVybiAxNiBieXRlcyAoYSBjYWNoZWxpbmUpIGxlc3MgdGhhbiB0aGUgYXZhaWxhYmxlIG1lbW9yeSwgYXMgdGhlCiAgICBib2FyZCBhbmQvb3IgUFBDNDQwRVB4IG1pZ2h0IGhhdmUgcHJvYmxlbXMgYWNjZXNzaW5nIHRoZSBsYXN0IGJ5dGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgZDM1YjUwOGE1NTUwODUzNWI2ZTg0NDViNzE4NTg1ZDI3ZGY3MzNkMwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6Mjk6NTYgMjAwNyAtMDUwMAoKICAgIGZkdDogc3VwcHJlc3MgdW51c2VkIHZhcmlhYmxlICdiZCcgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODJiZDllZTc3NDkwNTg4ZDRkYTc4NWQ3NTgyOWNhNjNkMDE3NmJhZgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowNjo1MCAyMDA3IC0wNTAwCgogICAgRml4IHdhcm5pbmdzIGZyb20gb2ZfZGF0YSBjb3B5IGZpeAoKICAgIEZvcmdvdCB0byBjYXN0IG9mX2ZsYXRfdHJlZSB0byB1bG9uZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzYxM2FmZGE3N2Q1ZWVjMGY0N2QzMDMwMjViMGM2NjFiNzBlNGM3MwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowMzo0NCAyMDA3IC0wNTAwCgogICAgRG9uJ3Qgd2FpdCBmb3IgZGlzY29ubmVjdGVkIFRTRUNzCgogICAgVGhlIFRTRUMgZHJpdmVyJ3MgUEhZIGNvZGUgd2FpdHMgYSBsb25nIHRpbWUgZm9yIGF1dG9uZWdvdGlhdGlvbiB0bwogICAgY29tcGxldGUsIGV2ZW4gaWYgdGhlIGxpbmsgaXMgZG93bi4gIFRoZSBQSFkga25vd3MgdGhlIGxpbmsgaXMKICAgIGRvd24gb3IgdXAgYmVmb3JlIGF1dG9uZWdvdGlhdGlvbiBjb21wbGV0ZXMsIHNvIHdlIGNhbiBzaG9ydC1jaXJjdWl0CiAgICB0aGUgcHJvY2VzcyBpZiB0aGUgbGluayBpcyBkb3duLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOTZjODNkNGFlNDc1YTcwZWYyNjM1Y2QwZTc0ODE3NGM0NGM4NjAxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjAzOjM0IDIwMDcgLTA1MDAKCiAgICBGaXggbnVtZXJvdXMgYnVncyBpbiB0aGUgODU2OCBVRUMgc3VwcG9ydAoKICAgIEFjdHVhbGx5LCBmaXhlZCBhIGxhcmdlIGJ1ZyBpbiB0aGUgVUVDIGZvciAqYWxsKiBwbGF0Zm9ybXMuCiAgICBIb3cgZGlkIHRoaXMgZXZlciB3b3JrPwoKICAgIHVlY19pbml0KCkgZGlkIG5vdCBmb2xsb3cgdGhlIHNwZWMgZm9yIGV0aF9pbml0KCksIGFuZCByZXR1cm5lZAogICAgMCBvbiBzdWNjZXNzLiAgU3dpdGNoIGl0IHRvIHJldHVybiB0aGUgbGluayBsaWtlIHRzZWNfaW5pdCgpCiAgICAoYW5kIDAgb24gZXJyb3IpCgogICAgVGhlIGltbWFwIGZvciB0aGUgODU2OCB3YXMgZGVmaW5lZCBiYXNlZCBvbiBNUEM4NTY4LCByYXRoZXIgdGhhbgogICAgQ09ORklHX01QQzg1NjgKCiAgICBDT05GSUdfUUUgd2FzIG9mZgoKICAgIENPTkZJR19FVEhQUklNRSB3YXMgc2V0IHRvICJGcmVlc2NhbGUgR0VUSCIuICBOb3cgaXMgIkZTTCBVRUMwIgoKICAgIEZpeGVkIGEgY29tbWVudCBhYm91dCB0aGUgcmFuZ2VzIGZvciBDT05GSUdfRVRIUFJJTUUgaWYgVFNFQ19FTkVUIGlzCiAgICBlbmFibGVkCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNhNzkwMTNlMmFkZGE1MzMzMmRmZDBiNTExMDY2YTgwNWU5MjlhOWQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDM6MjUgMjAwNyAtMDUwMAoKICAgIERlZmluZSB0c2VjIGZsYWcgdmFsdWVzIGluIGNvbmZpZyBmaWxlcwoKICAgIFRoZSB0c2VjX2luZm8gc3RydWN0dXJlIGFuZCBhcnJheSBoYXMgYSAiZmxhZ3MiIGZpZWxkIGZvciBlYWNoCiAgICBldGhlcm5ldCBjb250cm9sbGVyLiAgVGhpcyBmaWVsZCBpcyB0aGUgb25seSByZWFzb24gdGhlcmUgYXJlCiAgICBzZXR0aW5ncy4gIFN3aXRjaCB0byBkZWZpbmluZyBUU0VDbl9GTEFHUyBmb3IgZWFjaCBjb250cm9sbGVyCiAgICBpbiB0aGUgY29uZmlnIGhlYWRlciwgYW5kIHdlIGNhbiBncmVhdGx5IHNpbXBsaWZ5IHRoZSBhcnJheSwgYW5kCiAgICBhbHNvIHNpbXBsaWZ5IHRoZSBhZGRpdGlvbiBvZiBmdXR1cmUgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYzcyMzgyMjk1MDdlN2Y0NzUzM2E2MTFlYThjNTMzMTlkMjM0Y2YzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjAzOjEzIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRpbmcgYWxsIGJvYXJkcyB3aXRoIGEgVFNFQwoKICAgIENoYW5nZXMgdG8gdGhlIFRTRUMgZHJpdmVyIGFmZmVjdCBhbG1vc3QgYWxsIDgzeHgsIDg1eHgsIGFuZCA4Nnh4IGJvYXJkcy4KICAgIE5vdyB3ZSBjYW4gZG8gYSBNQUtFQUxMIHRlc3Qgb24gYWxsIG9mIHRoZW0hCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwYWFmNzE2Y2IwZGM2NjE0ZGY1NGVmNzhiZWQ1MTQ0YWZkMjNlZjgKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTc6MzA6NTYgMjAwNyAtMDUwMAoKICAgIEZpeCBvZl9kYXRhIGNvcHlpbmcgZm9yIENPTkZJR19PRl9GTEFUX1RSRUUtdXNpbmcgYm9hcmRzCgogICAgVGhlIGZpeCwgIkZpeCB3aGVyZSB0aGUgI2lmZGVmIENGR19CT09UTUFQU1ogaXMgcGxhY2VkIgogICAgbmVnbGVjdGVkIHRvICphbHNvKiBwdXQgdGhlIGNvZGUgaW5zaWRlIHRoZSBzaW1pbGFyICNpZmRlZgogICAgZm9yIENPTkZJR19PRl9GTEFUX1RSRUUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc4ZjlmZWY3ZjQwNjA3OGM4YmY3MTkxZTY2NWE3M2Y3OTUxNTc3NDYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxNTo0Njo0NiAyMDA3IC0wNTAwCgogICAgbXBjODg1YWRzOiBEb24ndCBkZWZpbmUgQ09ORklHX0JaSVAyLgoKICAgIGJ6aXAyIHJlcXVpcmVzIGEgc2lnbmlmaWNhbnQgY2h1bmsgb2YgbWFsbG9jIHNwYWNlLCBhbmQgdGhlcmUgaXNuJ3QKICAgIGVub3VnaCByb29tIG9uIG1wYzg4NWFkcyAod2l0aCBvbmx5IDhNQiBSQU0pIGZvciBib3RoIGJ6aXAyJ3MgbWFsbG9jIGFyZWEKICAgIGFuZCBhIGRvd25sb2FkZWQgaW1hZ2UgYXQgMHg0MDAwMDAuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDAyMjc1YTNlZDhiMTE0ODg1ZjY3MDJkNmQ1NDRkMDc4MGRmZTY4OQpBdXRob3I6IE1pY2hhbCBTaW1layA8TW9uc3RyQHNlem5hbS5jej4KRGF0ZToJVGh1IEF1ZyAxNiAwODo1NDoxMCAyMDA3ICswMjAwCgogICAgQmlvcyBlbXVsYXRvciAtIGZpeCBtaWNyb2JsYXplIHRvb2xjaGFpbiBwcm9ibGVtCgogICAgbWljcm9ibGF6ZSBDUFUgaGF2ZSBwcm9ibGVtIHdpdGggYmlvc19lbXVsYXRvciBjb2RlLgogICAgTWljcm9ibGF6ZSB0b29sY2hhaW4gZG9lc24ndCBzdXBwb3J0IFBSQUdNQSBQQUNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBhNWEzOGY0ZmQ3ZTUzNjZkNzA2ZmY2YTk4NWY5YjY3MTVkZGJjOThiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAxMTo1MTowNCAyMDA3ICswMjAwCgogICAgTWlub3IgQ29kaW5nIFN0eWxlIGZpeDsgVXBkYXRlIENIQU5HRUxPRyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGZiNmU4MGMwNjg0OWUzMDEzYWM1YzkzNTBkOGVkOWU1Mjk2Nzk5MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAxMToyMTo0OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgI3dhcm5pbmcgaW4gZXNkIGF1dG9fdXBkYXRlLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmQ3ODA3NGQyZTgwNmVkYzM4MGMxNDY0ZWI5ZTVkZjMzNWVjZTY1ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMiAxNzozMjoyOCAyMDA3ICswMjAwCgogICAgcHBjN3h4OiBVcGRhdGUgQ1BDSTc1MCBib2FyZAoKICAgIFRoaXMgc21hbGwgQ1BDSTc1MCB1cGRhdGUgZXh0ZW5kcyB0aGUgYm9hcmQgc3BlY2lmaWMgY29tbWFuZAogICAgInNob3dfY29uZmlnIiB0byBkaXNwbGF5IHRoZSBNYXJ2ZWxsIHN0cmFwcGluZyByZWdpc3RlcnMgYW5kCiAgICBleHRlbmRzIHRoZSBQQ0kgSURFIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUmVpbmhhcmQgQXJsdCA8cmVpbmhhcmQuYXJsdEBlc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc4Y2ZmNTBlZGJhNmIxNTA4ZWIxNWMyZjUzY2U5NjZhYzg5MWViOWUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVRodSBBdWcgMTYgMTA6NDY6MjggMjAwNyArMDIwMAoKICAgIFtGSVhdIENoYW5nZXMgZm9yIGJpb3NfZW11bGF0b3IgY29kZSBmb3Igb3RoZXJzIGFyY2hpdGVjdHVyZQoKY29tbWl0IDZlMGUyMjUzZjAzOTM0NGY4ZWJkMjc4NzI4NWZkYmE5MGU2NzE0ZTgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVRodSBBdWcgMTYgMTA6NDU6MDkgMjAwNyArMDIwMAoKICAgIFtGSVhdIFJlbW92ZSB1bnVzZWQgaW5jbHVkZSBmaWxlCgpjb21taXQgOWRlNDY5YmQ5NjBjYzE4NzBiYjQwZDY2NzJlZDQyNzI2YjhiNTBkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAxNiAxMDoxODozMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBPbmx5IGVuYWJsZSBQT1NUIEZQVSB0ZXN0IG9uIFNlcXVvaWEgYW5kIG5vdCBSYWluaWVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZkYTBjNWJkNGE1M2U0MGViNGY3ZWI3MmE0YzA1MWVjYWJhZDc4M2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMDk6NTQ6NTEgMjAwNyArMDIwMAoKICAgIEFkZCBtaXNzaW5nIHJhaW5pZXIgKFBQQzQ0MEdSeCkgdGFyZ2V0IHRvIE1BS0VBTEwgYW5kIE1BSU5UQUlORVJzIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAyYmE3MDIyZjYyYmI3NTkwODI5NmM1OGM2Mzg2NmUxZDI5NGI2OWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMDk6NTI6MjkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIFNlcXVvaWEvUmFpbmllciBib290c3RyYXAgY29tbWFuZAoKICAgIEFzIHN1Z2dlc3RlZCBieSBEYXZpZCBNaXRjaGVsbCwgaGVyZSBhbiB1cGRhdGUgZm9yIHRoZSBTZXF1b2lhL1JhaW5pZXIKICAgIGJvb3RzdHJhcCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNWNjNGU0ODIzNjY4ZTg3NDU4NTQ4OTljZmFlZGQ0NDg5YmViMGVmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDozOSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZW5hYmxlIGxpYmZkdCBieSBkZWZhdWx0IG9uIGZyZWVzY2FsZSBib2FyZHMKCiAgICB0aGlzIGVuYWJsZXMgbGliZmR0IGNvZGUgYnkgZGVmYXVsdCBmb3IgdGhlCiAgICBmcmVlc2NhbGUgbXBjODMxM2VyZGIsIG1wYzgzMnhlbWRzLCBtcGM4MzQ5ZW1kcywKICAgIG1wYzgzNDlpdHggYW5kIGdwIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNmZGU5ZThiMjJjZmJkN2FmNDg5MjE0NzU4Zjk4MzlhMjA2NTc2Y2IKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjMzIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtaWdyYXRlIHJlbWFpbmluZyBmcmVlc2NhbGUgYm9hcmRzIHRvIGxpYmZkdAoKICAgIHRoaXMgYWRkcyBsaWJmZHQgc3VwcG9ydCBjb2RlIGZvciB0aGUgZnJlZXNjYWxlCiAgICBtcGM4MzEzZXJkYiwgbXBjODMyeGVtZHMsIG1wYzgzNDllbWRzLCBtcGM4MzQ5aXR4LAogICAgYW5kIGdwIGJvYXJkcy4KCiAgICBCb2FyZHMgcmVtYWluIGNvbXBhdGlibGUgd2l0aCBPRl9GTEFUX1RSRUUuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YTE2ZTBkZmNjNDExOWI0NmFkYjFkY2UyZDZjOGZiM2M1ZDEwOGUxCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDoyNiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogbW92ZSBjb21tb24gL21lbW9yeSBub2RlIHVwZGF0ZSBtZWNoYW5pc20gdG8gY3B1LmMKCiAgICBhbHNvIGFkZHMgY29tbW9uIHByb3RvdHlwZXMgdG8gaW5jbHVkZS9jb21tb24uaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhmOWUwZTlmMzM5YWVlNGNlMzFhMzM4ZDVmMjczNTZlYjU0NTdmODUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjE5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiByZW1haW5pbmcgODM2MCBsaWJmZHQgZml4ZXMKCiAgICBQQ0kgY2xvY2tzIGFuZCBRRSBmcmVxdWVuY2llcyB3ZXJlbid0IGJlaW5nIHVwZGF0ZWQsIGFuZCB0aGUgY29yZSBjbG9jawogICAgd2FzIGJlaW5nIHVwZGF0ZWQgaW5jb3JyZWN0bHkuICBUaGlzIHBhdGNoIGFsc28gYWRkcyBhIC9tZW1vcnkgbm9kZSBpZgogICAgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0IHByaW9yIHRvIHVwZGF0ZS4KCiAgICBwbHVzIHNvbWUgY29zbWV0aWMgdHJpbW1pbmcgdG8gc2luZ2xlIGxpbmUgY29tbWVudHMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNGIyYWM1ZWQ5YWFmZjk5MjBkNDg3YmZmOGE1OTY5NmMwODNhNTI0CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDoxMiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IFVFQzItPjEgdHlwbyBpbiBsaWJmZHQgc2V0dXAgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTlmYTFjMzUzNjg0ODRkNGVkMTBkZGNlOGE3NzkzYzIxODYyZTNhMwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MDUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGFkZCBNQUlOVEFJTkVSIGFuZCBNQUtFQUxMIGVudHJpZXMgZm9yIHRoZSBtcGM4MzIzZXJkYgoKICAgIGFuZCByZW9yZGVyIHRoZSBleGlzdGluZyA4M3h4IG1haW50YWluZXJzIGFscGhhLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWI0ZGU5MzA5ZDdhMDNhYTFkYjJlNTM5MWFiNjk2MzYzMzkxZjQ2MApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJV2VkIEF1ZyAxNSAyMToxNTowNSAyMDA3ICswMjAwCgogICAgW0ZJWF0gUmVzb2x2ZSBwcm9ibGVtIHdpdGggd2FybmluZ3MKICAgIG1pY3JvYmxhemUgdG9vbGNoYWluIGRvbid0IHN1cHBvcnQgUFJBR01BIFBBQ0suCgpjb21taXQgZDFlZDI4Y2YzNmFiNmIxZDRjNDc5ODA5ZGU3MjUyYmY1M2QyZjJkNApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJV2VkIEF1ZyAxNSAyMTowNTowNyAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ29ycmVjdGlvbiBjb21tYW5kIHNldHRpbmcgZm9yIE1pY3JvYmxhemUgYm9hcmRzCgpjb21taXQgN2FhNjNkOGNkMzBhYjIwYWMyZmQxYWI4NmU2MDQ3MWRlOGIxZjFlNQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJV2VkIEF1ZyAxNSAyMTowMzo0MSAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ29ycmVjdGlvbiBjb21tYW5kIGRlZmluaXRpb24KCmNvbW1pdCAzMGI1MmRmOWU5MDZiZjBlNDY1OTE2YzJjNmJiNTE5MmI0MzhlMGI4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMTo1NTozNSAyMDA3IC0wNTAwCgogICAgODZ4eDogRml4IGxpbmdlcmluZyBDRkdfQ01EXyogcmVmZXJlbmNlcyBpbiBzYmM4NjQxZC5oCgogICAgUmVtb3ZlIGEgbGVmdG92ZXIgaW4gbmV0L3RmdHAuYyB3aGlsZSB3ZSdyZSBhdCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjZTkxNzc0MmIxZTQ4ZmFhOWJmOWE5NzU3NTQ1ZTU2ZmI0Y2ZlNDQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDEyOjIwOjQwIDIwMDcgLTA1MDAKCiAgICBNb3ZlIHRoZSBNUEM4NjQxSFBDTiBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg2NjI1NzdmZTM2ZmRiNmE0NGI1NWI5OThkOWRhYWM2MzkyYTczNmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDExOjQ2OjIyIDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBGaXggbGluZ2VyaW5nIENGR19DTURfKiByZWZlcmVuY2VzIGluIHNiYzg2NDFkLmgKCiAgICBSZW1vdmUgYSBsZWZ0b3ZlciBpbiBuZXQvdGZ0cC5jIHdoaWxlIHdlJ3JlIGF0IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjEwZjQ2M2M3MTkxN2I3YTQ0OTVjMjEwM2MyMjhiOWMxNzlhZTY0ZApBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMToxMzoxNSAyMDA3IC0wNDAwCgogICAgRml4IHdoZXJlIHRoZSAjaWZkZWYgQ0ZHX0JPT1RNQVBTWiBpcyBwbGFjZWQuCgogICAgQ29tbWl0IDA3M2UxYjUwOTk4MGNlZmU2ZjUzYzJkN2ZiYmNkMTM1ZGYxZTM5MjQgIkZpeCBpbml0cmQvZHRiCiAgICBpbnRlcmFjdGlvbiIgcHV0IHRoZSBuZXcgY29kZSBvdXRzaWRlIG9mIHRoZSAjaWYgZGVmaW5lZChDT05GSUdfT0ZfTElCRkRUKQogICAgd2hlbiBpdCBzaG91bGQgaGF2ZSBnb25lIGluc2lkZSBvZiB0aGUgY29uZGl0aW9uYWwuICBBcyBhIHJlc3VsdCwgaXQKICAgIGJyb2tlIG5vbi1MSUJGRFQgYm9hcmQgYnVpbGRzLgoKICAgIEFsc28gYWRkZWQgYSBtaXNzaW5nICJub3QuIiB0byB0aGUgY29tbWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDBlMTkyMDk3NjcxOTRhOTdjZWM2ZDkzZGJhOWU2NGQxZGE4ZDU0OGUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgQXVnIDE1IDEyOjE0OjIzIDIwMDcgKzAyMDAKCiAgICBQUEM0eHg6SENVNC81LUJvYXJkIGZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDU5NGU3OTgzOGNlNTA3OGE5MGQwYzI3YWJiMmIyZDYxZDVmOGU4YTcKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDE0OjA2OjQ1IDIwMDcgLTA1MDAKCiAgICBGaXggbWFsbG9jIHNpemUgZXJyb3IgaW4gYWhjaV9pbml0X29uZS4KCiAgICBUeXBpY2FsbHkgdGhpcyBjYXVzZXMgc2NzaSBpbml0IHRvIGNvcnJ1cHQgdGhlCiAgICBkZXZsaXN0IGFuZCBicmVhayB0aGUgY29uaW5mbyBjb21tYW5kLgogICAgRml4IGEgY29tcGlsZXIgc2l6ZSB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8amFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMzYxYWNkNjRmZDI1MjVjMDgxYjliMjg4YjA4MDRlZmUyMDljMGU5CkF1dGhvcjoga3NpQGtvaTgubmV0IDxrc2lAa29pOC5uZXQ+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MDI6MTYgMjAwNyAtMDcwMAoKICAgIFRJIERhVmluY2kgLSBmaXggdW5zdXBwb3J0ZWQgJWhoeCBmb3JtYXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgS3VidXNoeW4gPGtzaUBrb2k4Lm5ldD4KCmNvbW1pdCBmMDFkYmI1NDI0YTgxNDUzYzgxMTkwZGQzMGU5NDU4OTE0NjZmNjIxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxODo0MjozNiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwNzNlMWI1MDk5ODBjZWZlNmY1M2MyZDdmYmJjZDEzNWRmMWUzOTI0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjMyOjU5IDIwMDcgLTA1MDAKCiAgICBGaXggaW5pdHJkL2R0YiBpbnRlcmFjdGlvbgoKICAgIFRoZSBvcmlnaW5hbCBjb2RlIHdvdWxkIHdyb25nbHkgcmVsb2NhdGUgdGhlIGJsb2IgdG8gYmUgcmlnaHQgYmVmb3JlCiAgICB0aGUgaW5pdHJkIGlmIGl0IGV4aXN0ZWQuICBUaGUgYmxvYiAqbXVzdCogYmUgd2l0aGluIENGR19CT09UTUFQU1osCiAgICBpZiBpdCBpcyBkZWZpbmVkLiAgU28gd2UgbWFrZSB0d28gY2hhbmdlczoKCiAgICAxKSBmbGFnIHRoZSBibG9iIGZvciByZWxvY2F0aW9uIHdoZW5ldmVyIGl0cyBhZGRyZXNzIGlzIGFib3ZlIEJPT1RNQVBTWgoKICAgIDIpIElmIHRoZSBibG9iIGlzIGJlaW5nIHJlbG9jYXRlZCwgcmVsb2NhdGUgaXQgYmVmb3JlIGtiZCwgbm90IGluaXRyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNTRiOTcwMTczNzY5MzA3YTExNmJkMzQwMjhiNmQwYzJlZWEyYTRlCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxNTo0MDowMCAyMDA3ICswMTAwCgogICAgU3VwcGx5IHNwaSBpbnRlcmZhY2UgaW4gYXQ0NS5jCgpjb21taXQgNGNlODQ2ZWM1OWYzNmI4NWQ2NjQ0YTc2OTY5MGFkM2ZlYjY2NzU3NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNToxMjowMSAyMDA3ICswMjAwCgogICAgUE9TVDogRml4IG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDI5ZDk1NzFmNjA2MzFhZThhMmZlMTJiMTFiZTRjNzViMGMyYjM3YwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNTowMzoxNyAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzc5ZTk3NTExN2E3NWU5MWZjZWJlMjI2YTYzMTA0ZGJmYjkyNGFiMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNDo0NDo0MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBaZXVzIChQUEM0MDVFUCkgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjNWExNzJhNWZkNjM2YzEyNDY3NDI5ZTNmNzkxMGU1Mzc3Mzk3OWM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDE0OjQxOjU1IDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgb3B0aW9uIGZvciBleHRlcm5hbCBldGhlcm5ldCBsb29wYmFjayB0ZXN0CgogICAgV2hlbiBDRkdfUE9TVF9FVEhFUl9FWFRfTE9PUEJBQ0sgaXMgZGVmaW5lZCwgdGhlIGV0aGVybmV0IFBPU1QKICAgIGlzIG5vdCBkb25lIHVzaW5nIGFuIGludGVybmFsIGxvb3BiYWNrIGNvbm5lY3Rpb24sIGJ1dCBieSBhc3N1bWluZwogICAgdGhhdCBhbiBleHRlcm5hbCBsb29wYmFjayBjb25uZWN0b3IgaXMgcGx1Z2dlZCBpbnRvIHRoZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWIyYjQwMTBhZTQyNjI0NTE3Mjk4ODgwNGVlOGQ5MTkzZmI0MTAzOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNDozOTo0NCAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIHBwYzQwNSBzdXBwb3J0IHRvIGNhY2hlIGFuZCBVQVJUIFBPU1QKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGM0MmYzNmYxNTA3NGJkOTgwOGE3ZGJkN2VmNjExZmFkOWJmNTM3YwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6NDY6MzIgMjAwNyArMDEwMAoKICAgIFJlcGxhY2UgbG9zdCBlbmQgb2YgYXQ0NS5jLgoKY29tbWl0IDY1ZDdhZGE2NDU1N2U3NjA5NGI0ZmQzYmFkMzBhMGYxOGY1ZmIyYjIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjMwOjA2IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgTWFrZWZpbGVzIGZvciBtZXJnZWQgYW5kIHNwbGl0IGF0NDUuYy4KCmNvbW1pdCAzNDU0Y2VjZTJkYjU3Y2I5ZWI3MDg3OTk1ZjdlNzMwNjZhMTYzZjcxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDoyMTowNiAyMDA3ICswMTAwCgogICAgRGVsZXRlIHRoZSBtZXJnZWQgZmlsZXMuCgpjb21taXQgZGNiZmQyZTU2NDlmOTdhYTA0ZmJiYzZlYTJiMDA4YWE0NDg2ZTIyNQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MTQ6MDUgMjAwNyArMDEwMAoKICAgIEFkZCB0aGUgZmlsZXMuCgpjb21taXQgZDRmYzYwMTJmZDBhNWMyMTFiODI1NjkxZjQ0YjA2ZjgwMzJjMDU1MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MTA6NTIgMjAwNyArMDEwMAoKICAgIEFkZCBNQUNIX1RZUEUgcmVjb3JkcyBmb3Igc2V2ZXJhbCBBVDkxIGJvYXJkcy4KICAgIE1lcmdlIHRvIHR3byBhdDQ1LmMgZmlsZXMgaW50byBhIGNvbW1vbiBmaWxlLCBzcGxpdCB0byBhdDQ1LmMgYW5kIHNwaS5jCiAgICBGaXggc3BlbGxpbmcgZXJyb3IgaW4gRE05MTYxIFBIWSBTdXBwb3J0LgogICAgSW5pdGlhbGl6ZSBhdDkxcm05MjAwIGJvYXJkIChhbmQgc2V0IExFRCkuCiAgICBBZGQgUElPIGNvbnRyb2wgZm9yIGF0OTFybTkyMDBkayBMRURzIGFuZCBNdXguCiAgICBDaGFuZ2UgZGF0YWZsYXNoIHBhcnRpdGlvbiBib3VuZGFyaWVzIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBMaW51eCAyLjYuCgogICAgU2lnbmVkLW9mZi1ieToJUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6CVVsZiBTYW11ZWxzc29uIDx1bGZAYXRtZWwuY29tPgoKY29tbWl0IDRlZjM1ZTUzYzY5MzU1NmM1NGIwYzIyZDZmODczZGU4N2JhZGUyNTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDA5OjU0OjQ2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODVlYjVjYWY2YjkwNmY3ZWM1YjU0ODE0ZThjN2M3NGY1NTk4NmJiNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMDk6NDc6MjcgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwOyByZWJ1aWxkIENIQU5HRUxPRwoKY29tbWl0IDdmM2YyYmQyZGMwOGUwYjA1ZTE4NTY2MmNhMmUyZDI4Mzc1NzEwNGEKQXV0aG9yOiBSYW5keSBWaW5zb24gPHJ2aW5zb25AbGludXhib3guKG5vbmUpPgpEYXRlOglUdWUgRmViIDI3IDE5OjQyOjIyIDIwMDcgLTA3MDAKCiAgICA4NXh4Q0RTOiBBZGQgbWFrZSB0YXJnZXRzIGZvciBsZWdhY3kgc3lzdGVtcy4KCiAgICBUaGUgUENJIElEIHNlbGVjdCB2YWx1ZXMgb24gdGhlIEFyY2FkaWEgbWFpbiBib2FyZCBkaWZmZXIgZGVwZW5kaW5nCiAgICBvbiB0aGUgdmVyc2lvbiBvZiB0aGUgaGFyZHdhcmUuIFRoZSBzdGFuZGFyZCBjb25maWd1cmF0aW9uIHN1cHBvcnRzCiAgICBSZXYgMy4xLiBUaGUgbGVnYWN5IHRhcmdldCBzdXBwb3J0cyBSZXYgMi54LgoKICAgIFNpZ25lZC1vZmYtYnkgUmFuZHkgVmluc29uIDxydmluc29uQG12aXN0YS5jb20+Cgpjb21taXQgZTQxMDk0YzdlMzgxNzdjNzU1ZmJkOWIxODIwMTgwNjk2MTRmMDgwZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAwMTo1MDowOSAyMDA3IC0wNTAwCgogICAgODV4eENEUzogRW5hYmxlIHRoZSBWSUEgUENJLXRvLUlTQSBicmlkZ2UuCgogICAgQXV0aG9yOiBSYW5keSBWaW5zb24gPHJ2aW5zb25AbGludXhib3guKG5vbmUpPgoKICAgIEVuYWJsZSB0aGUgUENJLXRvLUlTQSBicmlkZ2UgaW4gdGhlIFZJQSBTb3V0aGJyaWRnZSBsb2NhdGVkIG9uIHRoZQogICAgQXJjYWRpYSBtYWluIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBtdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYTlkNDYxMGQ3NmU1MmM0ZDIwYThmM2Q4NDMzNDM5YTdmY2Y1YjcxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDAwOjE0OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgVUVDIHRvIDg1NjgKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1OWU0MDkxZmZlMDE0ODM5OGI5ZTlmZjE0YTAxOWVhMDM4Yjc0MzIKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDE5IDE0OjE4OjM0IDIwMDcgLTA0MDAKCiAgICBBZGQgUENJIHN1cHBvcnQgZm9yIE1QQzg1NjhNRFMgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGlzIGFnYWluc3QgdS1ib290LW1wYzg1eHguZ2l0IG9mIHd3dy5kZW54LmNvbQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxMTFkNjM4MmM5OWZkZWEwOGMyMzEyZWVlYWU4Nzg2OTQ1ZTE4OWEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDE5IDE0OjE4OjMyIDIwMDcgLTA0MDAKCiAgICBFbXBpcmljYWxseSBzZXQgY3BvIGFuZCBjbGtfYWRqdXN0IGZvciBtcGM4NXh4IEREUjIgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggaXMgYWdhaW5zdCB1LWJvb3QtbXBjODV4eC5naXQgb2Ygd3d3LmRlbnguY29tCgogICAgU2V0dGluZyBjcG8gdG8gMHg5IGZvciBmcmVxdWVuY2llcyBoaWdoZXIgdGhhbiAzMzNNSHogaXMgdmVyaWZpZWQgb24KICAgIGJvdGggTVBDODU0OENEUyBib2FyZCBhbmQgTVBDODU2OE1EUyBib2FyZCwgZXNwZWNpYWxseSBmb3Igc3VwcG9ydGluZwogICAgNTMzTUh6IEREUjIuCgogICAgU2V0dGluZyBjbGtfYWRqdXN0IHRvIDB4NigzLzQgbGF0ZSBjeWNsZSkgZm9yIE1QQzg1NjhNRFMgYm9hcmQgaXMgZm9yCiAgICBERFIyIG9uIGFsbCBjdXJyZW50IGJvYXJkIHZlcnNpb25zIGVzcGVjaWFsbHkgdmVyIDEuOTIgb3IgbGF0ZXIgdG8gYnJpbmcKICAgIHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2RiMGJlZjU5ZWFiMTE1NTgwMTYxOGNlZjVjNDgxZTk3NTUzYjU5NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgNyAxODowNzoyNyAyMDA3IC0wNTAwCgogICAgVXNlIGFuIGFic29sdXRlIGFkZHJlc3Mgd2hlbiBqdW1waW5nIG91dCBvZiA0ayBib290IHBhZ2UKCiAgICBPbiBlNTAwIHdoZW4gd2UgbGVhdmUgdGhlIDRrIGJvb3QgcGFnZSB3ZSBzaG91bGQgdXNlIGFuIGFic29sdXRlIGFkZHJlc3Mgc2luY2UKICAgIHdlIGRvbid0IGtub3cgd2hlcmUgdGhlIGJvYXJkIGNvZGUgbWF5IHdhbnQgdXMgdG8gYmUgcmVhbGx5IHJ1bm5pbmcgYXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzOTk4MGM2MTBjOWE0YzM4MTkwN2M5ZTFkMWI5YzBlMWMwZGNhNTdhCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDEzIDE0OjQ5OjU5IDIwMDcgLTA1MDAKCiAgICBNUEM4NXh4IEJBIGJpdHMgbm90IHNldCBmb3IgMy1iaXQgYmFuayBhZGRyZXNzIERJTU0KCiAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBzZXQgdGhlIG51bWJlciBvZiBiYW5rIGFkZHJlc3MgYml0cwogICAgKEJBKSBpbiB0aGUgcHJvY2Vzc29yLiBUaGUgZGVmYXVsdCBhc3N1bWVzIDIgbG9naWNhbCBiYW5rIGJpdHMuIFRoaXMKICAgIHdvcmtzIGZpbmUgZm9yIGEgRElNTSB0aGF0IHVzZXMgZGV2aWNlcyB3aXRoIDQgaW50ZXJuYWwgYmFua3MgKFNQRAogICAgYnl0ZTE3ID0gMHg0KSBidXQgbmVlZHMgdG8gYmUgc2V0IGFwcHJvcHJpYXRlbHkgZm9yIGEgRElNTSB0aGF0IHVzZXMKICAgIGRldmljZXMgd2l0aCA4IGludGVybmFsIGJhbmtzIChTUEQgYnl0ZTE3ID0gMHg4KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmVnIERhdmlzIDxEYXZpc0dAZW1iZWRkZWRwbGFuZXQuY29tPgoKY29tbWl0IDZjNTQzNTk3YmI0YjFlY2Y1ZDg1ODlmN2FiYjBmMzk5MjlmYjdmZDEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMTMgMTQ6Mzg6MDYgMjAwNyAtMDUwMAoKICAgIEZpeCBtaW5vciA4NXh4IHdhcm5pbmdzCgogICAgU29tZSBwYXRjaGVzIGhhZCBpbnNlcnRlZCB3YXJuaW5ncyBpbnRvIHRoZSBidWlsZDoKICAgICogbXBjODU2MGFkcyBkZWNsYXJlZCBkYXRhIHdpdGhvdXQgdXNpbmcgaXQKICAgICogY3B1X2luaXQgZGVjbGFyZWQgZWNtIGFuZCBpbW1hcCB3aXRob3V0IHVzaW5nIGl0IGluIGFsbCBDT05GSUdzCiAgICAqIE1QQzg1NDhDRFMuaCBoYWQgaXRzIGRlZmF1bHQgZmlsZW5hbWVzIGNoYW5nZWQgc28gdGhhdCB0aGV5IGNvbnRhaW5lZAogICAgICAiXG0iIGluIHRoZSBwYXRocy4gIE1hZGUgdGhlIGRlZmF1bHRzIG5vdCBXaW5kb3dzLXNwZWNpZmljIChvcgogICAgICBhbnl0aGluZy1zcGVjaWZpYykKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjJjZmY2YjEwNGY4MmI5OTNiZWY2MDg2Y2UwYzk3MTU5YmJlMWFkZApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NTIgMjAwNyAtMDUwMAoKICAgIDg1NDhjZHMgUENJRSBzdXBwb3J0LgoKICAgIE1ha2UgdGhlIGVhcmx5IEwxIGNhY2hlIHN0YWNrIHJlZ2lvbiBndWFyZGVkIHRvIHByZXZlbnQgc3BlY3VsYXRpdmUKICAgIGZldGNoZXMgb3V0c2lkZSB0aGUgbG9ja2VkIHJhbmdlLgoKICAgIFVzZSBfUEhZUyBkZWZpbmVzLCBub3QgX01FTSBmb3IgY3B1LXNpZGUgUENJIG1lbW9yeSBtYXBwZWQgcmVnaW9ucy4KICAgIGluaXQuUyB3aGl0ZXNwYWNlIGNsZWFudXAuCgogICAgQWxsb3cgVEVYVF9CQVNFIHZhbHVlIHRvIGJlIHNwZWNpZmllZCBvbiBjb21tYW5kIGxpbmUuICBUaGlzIGFsbG93cyBpdAogICAgdG8gYmUgc2V0IHRvIDB4ZmZmYzAwMDAgd2hpY2ggY3V0cyB0aGUgdWJvb3QgYmluYXJ5IGluIGhhbGYuCgogICAgQ2xlYXIgYW5kIGVuYWJsZSBsYmMgYW5kIGVjbSBlcnJvcnMuCgogICAgVXBkYXRlIGxhc3RfYnVzbm8gaW4gZGV2aWNlLXRyZWUgZm9yIHBjaSBhbmQgcGNpZS4KCiAgICBSZW1vdmUgbG9hZCBvZiBvYnNvbGV0ZSBjcHUvbXBjODV4eC9wY2kuMAoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgzN2YxYmEwNWNmYjI0OGFiYTVhYjhlMWZiMWJmZWVmYTA3ZDU5NjIKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjUxIDIwMDcgLTA1MDAKCiAgICA4NTQ0ZHMgUENJRSBzdXBwb3J0CgogICAgUENJMSBMQVcgbWFwcGluZyBzaG91bGQgdXNlIENGR19QQ0kxX01FTV9QSFkgYW5kIG5vdCBfQkFTRSBhZGRyZXNzLgoKICAgIEVuYWJsZSBMQkMgYW5kIEVDTSBlcnJvcnMgYW5kIGNsZWFyIGVycm9yIHJlZ2lzdGVycy4KCiAgICBBZGQgdGZ0cGZsYXNoIGVudiB2YXIgdG8gZ2V0IHVib290IGZyb20gdGZ0cCBzZXJ2ZXIgYW5kIGZsYXNoIGl0LgoKICAgIEFkZCBwY2kvcGNpZSBjb252ZW5pZW5jZSBlbnYgdmFycyB0byBkaXNwbGF5IHJlZ2lzdGVyIHNwYWNlOgogICAgICAicnVuIHBjaWUzcmVncyIgdG8gc2VlIGFsbCBwY2llMyBjY3NyIHJlZ2lzdGVycwogICAgICAicnVuIHBjaWUzY2ZnIiB0byBzZWUgYWxsIGNmZyByZWdpc3RlcnMKICAgIFdoaXRlc3BhY2UgY2xlYW51cCBhbmQgTVBDODU0NERTLmgKCiAgICBFbmFibGUgQ09ORklHX0lOVEVSUlVQVFMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjFhMjFlOTgwYTdiOTE4ODQyNGQwNGYxYzI2NWZkYzVjMjFjN2U4NQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAwMTozNDoyMSAyMDA3IC0wNTAwCgogICAgODV4eCBzdGFydC5TIGNsZWFudXAgYW5kIGV4Y2VwdGlvbiBzdXBwb3J0CgogICAgRnJvbTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCiAgICBTdXBwb3J0IGV4dGVybmFsIGludGVycnVwdHMgZnJvbSBwbGF0Zm9ybSB0byBlbGltaW5hdGUgc3lzdGVtIGhhbmdzLgogICAgRGVmaW5lIENPTkZJR19JTlRFUlJVUFRTIGJvYXJkIGNvbmZpZ3VyZSBvcHRpb24gdG8gZW5hYmxlLgogICAgRW5hYmxlIGVjbSwgZGRyLCBsYmMsIGFuZCBwY2kvcGNpZSBlcnJvciBpbnRlcnJ1cHRzIGluIFBJQy4KCiAgICBSZW1vdmUgZXh0cmEgY3B1IGluaXRpYWxpemF0aW9uIHJlZHVuZGFudCB3aXRoIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uLgogICAgV2hpdGVzcGFjZSBjbGVhbnVwLgoKICAgIERlZmluZSBhbmQgdXNlIF9TVEFSVF9PRkZTRVQgY29uc2lzdGVudCB3aXRoIG90aGVyIHByb2Nlc3NvcnMgdXNpbmcKICAgIHBwY19hc20udG1wbAoKICAgIE1vdmUgYWRkaXRpb25hbCBjb2RlIGZyb20gLnRleHQgdG8gYm9vdCBwYWdlIHRvIG1ha2Ugcm9vbSBmb3IKICAgIGV4Y2VwdGlvbiB2ZWN0b3JzIGF0IHN0YXJ0IG9mIGltYWdlLgoKICAgIEhhbmRsZSBNYWNoaW5lIENoZWNrLCBFeHRlcm5hbCBhbmQgQ3JpdGljYWwgZXhjZXB0aW9ucy4KCiAgICBGaXggZTUwMCBtYWNoaW5lIGNoZWNrIGVycm9yIGRldGVybWluYXRpb24gaW4gdHJhcHMuYwoKICAgIFRFWFRfQkFTRSBjYW4gbm93IGJlIDB4ZmZmY18wMDAwIC0gd2hpY2ggY3V0cyBiaW5hcnkgaW1hZ2UgaW4gaGFsZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YmQzMGZjNGE2NDc1YjQxZDY2NzlhZTNhYWZjOWZhNTA1MjYwYzQ3CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE0IDAxOjMzOjE4IDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU0NERTIFJFQURNRQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MGM3ZjliMGRlNGUzMDAzNzBhZGZjNzA0MTI4ZmEwZjc5YTE0M2I2CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0OCAyMDA3IC0wNTAwCgogICAgODV4eCBhbGxvdyBkZWJ1Z2dlciB0byBjb25maWd1cmUgZGRyLgoKICAgIE9ubHkgY2hlY2sgZm9yIG1wYzg1NDggcmV2IDEgd2hlbiBjb21waWxlZCBmb3IgODU0OC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyOTM3MmZmMzhjNWJhYWI3ZDBlM2E4YzE0ZmUxMWZhMTk0YTM4NzA0CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0NyAyMDA3IC0wNTAwCgogICAgbXBjODV4eCBMMiBjYWNoZSByZXBvcnRpbmcgYW5kIFNSQU0gcmVsb2NhdGlvbiBvcHRpb24uCgogICAgQWxsb3cgZGVidWdnZXIgdG8gb3ZlcnJpZGUgZmxhc2ggY3MwL2NzMSBzZXR0aW5ncyB0byBlbmFibGUgYWx0ZXJuYXRlCiAgICBib290IHJlZ2lvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MWYwZjhmYjFhYjkyZjBjYmE3ZDMyOWRlOTAwNzBmODIyZjgyOTlmCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0NiAyMDA3IC0wNTAwCgogICAgZTUwMCBuZWVkcyBwcGNfYXNtLnRtcCBNQ0tfRVhDRVBUSU9OCgogICAgQWx3YXlzIGRlZmluZSBNQ0tfRVhDRVBUSU9OIG1hY3JvIC0gc28gZTUwMCBjYW4gdXNlIGl0IHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1M2E1YzQyNGJmODY1NWI3YjRlMmMzMDVhNDQxOTYzMjU5YTI2YTgxCkF1dGhvcjogRGF2aWQgVXBkZWdyYWZmIDxkYXZlQGNyYXkuY29tPgpEYXRlOglNb24gSnVuIDExIDEwOjQxOjA3IDIwMDcgLTA1MDAKCiAgICBtdWx0aWNhc3QgdGZ0cDogUkZDMjA5MAoKICAgIEltcGxlbWVudGVkIElFVEYgUkZDMjA5MCwgTXVsdGljYXN0IFRGVFAuICBJbml0aWFsIGltcGxlbWVudGF0aW9uCiAgICBvbiBSZWFsdGVrIFJUTDgxMzkgYW5kIEZyZWVzY2FsZSBUU0VDLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDVkMTEwZjBhYTY5ZjA2NWVlMzg2ZWMxODQwZGZlZTFlOGNjNDZiYzEKQXV0aG9yOiBXaWxzb24gQ2FsbGFuIDx3Y2FsbGFuQHNhdmFudGF2LmNvbT4KRGF0ZToJU2F0IEp1bCAyOCAxMDo1NjoxMyAyMDA3IC0wNDAwCgogICAgTmV3IENPTkZJR19CT09UUF9TRVJWRVJJUCBvcHRpb24KCiAgICBBZGRlZCBDT05GSUdfQk9PVFBfU0VSVkVSSVAgdG8gYWxsb3cgdGhlIHRmdHAgc2VydmVyIHRvIGJlIGRpZmZlcmVudAogICAgZnJvbSB0aGUgYm9vdHAgc2VydmVyCgogICAgU2lnbmVkLW9mZi1ieTogV2lsc29uIENhbGxhbiA8d2NhbGxhbkBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA1MGNjYThiOTc2ZWM3NDA2OTg2MDIwOGMzNmU2NGNlOGY0ZDVlNGMxCkF1dGhvcjogTWlrZSBSYXBvcG9ydCA8bWlrZUBjb21wdWxhYi5jby5pbD4KRGF0ZToJU3VuIEF1ZyAxMiAwODo0ODoyNyAyMDA3ICswMzAwCgogICAgQWRkIGFiaWxpdHkgdG8gdGFrZSBNQUMgYWRkcmVzcyBmcm9tIHRoZSBlbnZpcm9ubWVudCB0byBETTkwMDAgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBSYXBvcG9ydCA8bWlrZUBjb21wdWxhYi5jby5pbD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGJlNWQ3MmQxMGQ0NzYwOTMyNjIyNjIyNTE4MWUzMDFmYjlhMzNiNTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDEzIDIxOjU3OjUzIDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNjYTM0OTY3Y2JkMTNmZjZiZDM1MmJlMjllM2YxY2M4OGFiMjRjMDUKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglTYXQgQXVnIDExIDA2OjU0OjU4IDIwMDcgLTA1MDAKCiAgICBNb2RpZnkgU0JDODY0MUQgdG8gdXNlIG5ldyBGcmVlc2NhbGUgUENJIHJvdXRpbmVzCgogICAgUENJLUV4cHJlc3Mgc29ja2V0cyAxIGFuZCAyIHZlcmlmaWVkIHdvcmtpbmcgd2l0aCBJbnRlbCBQcm8vMTAwMCBQVAogICAgYWRhcHRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgogICAgU2lnbmRlLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMDg0NTgzMDNlN2Y5ZGI2N2YyOTY5ODAwMzZkMzI5MmMzNWNiNDVjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBKdW4gMjkgMTg6Mzg6NTEgMjAwNyArMDIwMAoKICAgIGF0bWVsX21jaTogRml4IGRhdGEgdGltZW91dCB2YWx1ZQoKICAgIENhbGN1bGF0ZSB0aGUgZGF0YSB0aW1lb3V0IGJhc2VkIG9uIHZhbHVlcyBmcm9tIHRoZSBDU0QgaW5zdGVhZCBvZgogICAganVzdCB1c2luZyBhIGhhcmRjb2RlZCBEVE9SIHZhbHVlLiBUaGlzIGlzIGEgYmFja3BvcnQgb2YgYSBzaW1pbGFyIGZpeAogICAgaW4gQlNQIDIuMCwgd2l0aCBvbmUgYWRkaXRpb25hbCBmaXg6IHRoZSBEVE9DWUMgdmFsdWUgaXMgcm91bmRlZCB1cAogICAgaW5zdGVhZCBvZiBkb3duLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDBiYThlZWQyOGI1NzU2MjZiMTdlMGE3ODgyZjkyM2I4M2UwZDc1ODQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMyAxNzoyMjozMSAyMDA3ICswMjAwCgogICAgQVZSMzI6IEluY2x1ZGUgPGRpdjY0Lmg+IGluc3RlYWQgb2YgPGFzbS9kaXY2NC5oPgoKICAgIGluY2x1ZGUvYXNtLWF2cjMyL2RpdjY0Lmggd2FzIHJlY2VudGx5IG1vdmVkIHRvIGluY2x1ZGUvZGl2NjQuaCwgYnV0CiAgICBjcHUvYXQzMmFwL2ludGVycnVwdHMuYyB3YXNuJ3QgcHJvcGVybHkgdXBkYXRlZCAoYW4gZWFybGllciB2ZXJzaW9uIG9mCiAgICB0aGUgcGF0Y2ggd2FzIG1lcmdlZCBwZXJoYXBzPykKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMgc28gdGhhdCB0aGUgYXZyMzIgcG9ydAogICAgY29tcGlsZXMgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZjBkMTI0NmVkN2NiNWE4ODUyMjI0NGM1OTZkN2FlN2U2ZjE2MTI4MwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgSnVuIDI3IDEzOjM0OjI2IDIwMDcgKzAyMDAKCiAgICBhdG1lbF9tY2k6IFVzZSA1MTIgYnl0ZSBibG9ja3NpemUgaWYgcG9zc2libGUKCiAgICBJbnN0ZWFkIG9mIGFsd2F5cyB1c2luZyB0aGUgbGFyZ2VzdCBibG9ja3NpemUgdGhlIGNhcmQgc3VwcG9ydHMsIGNoZWNrCiAgICBpZiBpdCBjYW4gc3VwcG9ydCBzbWFsbGVyIGJsb2NrIHNpemVzIGFuZCB1c2UgNTEyIGJ5dGVzIGlmIHBvc3NpYmxlLgogICAgTW9zdCBjYXJkcyBkbyBzdXBwb3J0IHRoaXMsIGFuZCBvdGhlciBwYXJ0cyBvZiB1LWJvb3Qgc2VlbSB0byBoYXZlCiAgICB0cm91YmxlIHdpdGggYmxvY2sgc2l6ZXMgZGlmZmVyZW50IGZyb20gNTEyIGJ5dGVzLgoKICAgIEFsc28gZW5hYmxlIHVuZGVycnVuL292ZXJydW4gcHJvdGVjdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIEFja2VkLWJ5OiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgoKY29tbWl0IDI3M2RiN2UxYmRkMTkzN2UzMmYxZDQ1MDczMjFiYjcyMWViZDMxMTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgMTMgMDk6MDU6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gaW4gUExMIGNsb2NrIGNhbGN1bGF0aW9uCgogICAgVGhpcyBwYXRjaCB3YXMgb3JpZ2luYWxsIHByb3ZpZGVkIGJ5IERhdmlkIE1pdGNoZWxsIDxkbWl0Y2hlbGxAYW1jYy5jb20+CiAgICBhbmQgZml4ZXMgYSBidWcgaW4gdGhlIFBMTCBjbG9jayBjYWxjdWxhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTk4NmJjM2U0MGU4OTliZWEzNzJhOTlhMmJjYTQwNzFiZGYyZTI0YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMjE6MzQ6NTAgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCA3N2QxOWE4YmYzYjBiMWU0MDFjYjlmMjNjODFlMmVmNDE5NzA1YzFhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAyMTozNDozNCAyMDA3ICswMjAwCgogICAgTWlub3IgYWxpZ25tZW50IG9mIG91dHB1dCwgMm5kIHRyeS4KICAgIEFsc28gdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmIzMDlmMjJhNzI0ZmFkODQxOGU4MTE3NTFhMDc0MWI4OTM0MTljZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMjA6MzU6NDkgMjAwNyArMDIwMAoKICAgIE1pbm9yIGFsaWdubWVudCBvZiBvdXRwdXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZmNmQ3YjljODU1OWUyNDFlOGQyMzI2MjE1NDJiOGI1OTY5OWIwN2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDE4OjI4OjE4IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwIG91dHB1dCBvbiBBRFM1MTIxIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuawoKY29tbWl0IGE0ZDI2MzZmMmE4NTkyNDVlZDNhNDAxZjI2MTg5ZGEyZGZkYTRjZWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDE1OjExOjM4IDIwMDcgKzAyMDAKCiAgICBBZGFwdCBib2FyZCBjb25maWd1cmF0aW9uIGFuZCBmaXgga2VybmVsIGNyYXNoIG9uIE1DQzIwMCBib2FyZC4KCiAgICBUaGUgdXBkYXRlIHByb2NlZHVyZSB3YXMgbW9kaWZpZWQgdG8gdHVybiBvZmYgdGhlIFVTQiBzdWJzeXN0ZW0KICAgIGJlZm9yZSBleGl0IGZvciBNQ0MyMDAgYW5kIFRSQUIuIFRoaXMgaXMgbmVjZXNzYXJ5IGFzIG90aGVyd2lzZSB0aGUKICAgIFVTQiBjb250cm9sbGVyIGNvbnRpbnVlcyB0byB3cml0ZSBwZXJpb2RpY2FsbHkgdG8gc3lzdGVtIG1lbW9yeSEKCiAgICBNQ0MyMDAtc3BlY2lmaWMgbm90ZXM6CiAgICAtIHRoZSBwYXRjaCBkaXNhYmxlcyB0aGUgbWFnaWMga2V5IGNoZWNrIGZvciBNQ0MyMDAKICAgIC0gdGhlIHBhdGNoIGNvbnRhaW5zIHRoZSBjb25maWd1cmF0aW9uIGNoYW5nZXMgbWFkZQogICAgICBmb3IgdGhlIG5ldyByZXZpc2lvbiBvZiB0aGUgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTI3ZjNhNmVmYjlkYjVhNTMzMjIzYjA1YzYyOWZmNGFjOGQ5MjFiZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMTQ6NDc6NTQgMjAwNyArMDIwMAoKICAgIEFkanVzdCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gb2YgQURTNTEyMSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFmYWFjODZmZTI5NDhhYzg0Y2Q5YTEyYmJlZDg4M2IzYzY4M2U3ZDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDE0OjI3OjM5IDIwMDcgKzAyMDAKCiAgICBDbGVhbiB1cCBzb21lIHJlbWFpbmluZyBDRkdfQ01EXyAtPiBDT05GSUdfQ01EXyBpc3N1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1ZmU2YmU2MjA4ZGRhODUyYzM1NjRlMzg0YmQ3OGQ3NTc4NGRlYTNlCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVHVlIEF1ZyA3IDIxOjE0OjIyIDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIGVycm9yIHByaW50IG1lc3NhZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOTlkZmZjYTNiNzU5MGExNmEwMGJjNDc1Yzg2MGI2N2IyYTNmMTQ2MgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTcgMTM6NTc6MDQgMjAwNyAtMDUwMAoKICAgIGZkdDogYWxsb3cgZm9yIGJ1aWxkcyB0aGF0IGRvbid0IHdhbnQgZW52IGFuZCBiZF90IG5vZGVzCgogICAgcHJvdGVjdCBmZHRfZW52IGFuZCBmZHRfYmRfdCBpbnZvY2F0aW9ucywgZml4IGNvZGluZ3N0eWxlIHdoaWxlIGluIHRoZQogICAgYXJlYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkxMTQ4YmY3YWViYTE0MmQ2ZjM0ODgwNWRiNzYyNWRiN2RhNjRkNmYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDE3IDEzOjU2OjUzIDIwMDcgLTA1MDAKCiAgICBmZHQ6IGRvIGJvYXJkIHNldHVwIGJhc2VkIG9uIGZkdCBhZGRyZXNzIHNwZWNpZmllZCBvbiBib290bSBsaW5lCgogICAgVGhlIGxhc3QgZmR0IHBhdGNoIHRvIGJvb3RtIGRpZCBib2FyZCBzZXR1cCBiYXNlZCBvbiB0aGUgYWRkcmVzcwogICAgc3BlY2lmaWVkIGJ5IGEgcHJpb3IgZmR0IGFkZHJlc3MgY29tbWFuZCBpbnZvY2F0aW9uLiAgVGhlIGJvb3RtCiAgICBjb2RlLCBhcyBpdHMgY2FsbCB0byBmZHRfY2hvc2VuIGRvZXMsIHNob3VsZCB1c2UgdGhlIGZkdCBzcGVjaWZpZWQKICAgIGJ5IHRoZSB1c2VyIG9uIHRoZSBib290bSBjb21tYW5kLiAgTm90ZSB0aGlzIHJlc3RvcmVzIGZ1bGwKICAgIGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSA4MzYwJ3MgZXhpc3RpbmcgZGVmYXVsdCBib290IGVudmlyb25tZW50CiAgICB2YWx1ZXMsIGUuZy4gJ3J1biBuZnNib290JyAoaS5lLiBubyBoYXZpbmcgdG8gJ2ZkdCBhZGRyICRmZHRhZGRyJwogICAgYmVmb3JlIGJvb3RpbmcgYSBrZXJuZWwpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTEyNWEyZmZjMjA5ZGQzNDc5NGUzMjZjNzE3NTY1ODI1M2JlYWRmMwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMjA6NDA6MzkgMjAwNyAtMDQwMAoKICAgIENhbGwgZnRfYm9hcmRfc2V0dXAoKSBmcm9tIHRoZSBib290bSBjb21tYW5kLgoKICAgIEluIHRoZSBwYXRjaCB0aXRsZWQgIkNyZWF0ZSBuZXcgZmR0IGJvYXJkc2V0dXAgY29tbWFuZC4uLiIgSSByZW1vdmVkIHRoZQogICAgY2FsbCB0byBmdF9ib2FyZF9zZXR1cCgpIGZyb20gdGhlIHJvdXRpbmUgZmR0X2Nob3NlbigpLCBidXQgSSBmb3Jnb3QKICAgIHRvIGFkZCBhIGRpcmVjdCBjYWxsIGJhY2sgaW50byBjbWRfYm9vdG0uYwoKICAgIFRoaXMgZml4ZXMgdGhlIG92ZXJzaWdodCBieSBhZGRpbmcgdGhlIGRpcmVjdCBjYWxsIHRvIHRoZSBib290bSBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgZmQ2MWU1NWRkOGNiNTJjZTNmZjkxYjM5MTdhZjI2ZTI0YjZiMDg0NQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMjM6MjU6MjggMjAwNyAtMDQwMAoKICAgIENyZWF0ZSBuZXcgZmR0IGJvYXJkc2V0dXAgY29tbWFuZCwgZml4IGJ1ZyBwYXJzaW5nIFtdIGZvcm0gb2Ygc2V0IHZhbHVlcy4KCiAgICBQcmV2aW91c2x5IGZ0X2JvYXJkX3NldHVwKCkgd2FzIGNhbGxlZCBieSBmZHRfY2hvc2VuKCkgd2hpY2ggd2FzIG5vdAogICAgcmVhbGx5IGNvcnJlY3RseSBzdHJ1Y3R1cmVkLiAgVGhpcyBzcGxpdHMgZnRfYm9hcmRfc2V0dXAoKSBvdXQgYnkgY3JlYXRpbmcKICAgIGEgbmV3IGZkdCBib2FyZHNldHVwIGNvbW1hbmQuCgogICAgRml4IGEgYnVnIHdoZW4gcGFyc2luZyBmZHQgc2V0IGNvbW1hbmQgdmFsdWVzIHdoaWNoIGhhdmUgdGhlIHNxdWFyZQogICAgYnJhY2tldCBmb3JtIFswMCAxMSAyMiAzM10gLSB0aGUgbGVuZ3RoIHdhcyB1cGRhdGVkIGluY29ycmVjdGx5IGluIHdoZW4KICAgIHBhcnNpbmcgdGhhdCBmb3JtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNmYzNWRlZDllODU0OTM1OTVlMGViNjZhODJiNTAyYTk1MzI2ZDA0OQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMjA6NTU6NTggMjAwNyAtMDQwMAoKICAgIFRpZ2h0ZW4gdXAgdGhlIGVycm9yIG1lc3NhZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYzQ1ODc0YjA1YWFlODk3YTZjMjlkMWE5N2Q0YmI3MDhmY2EyNzU2YwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTk6NTI6MjMgMjAwNyAtMDQwMAoKICAgIEFzdGhldGljIGltcHJvdmVtZW50czogZXJyb3IgbWVzc2FnZXMgYW5kIGxpbmUgbGVuZ3Rocy4KCiAgICBUaWdodGVuIHVwIHRoZSBlcnJvciBtZXNzYWdlcywgc3BsaXQgb3Zlcmxlbmd0aCBsaW5lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDM1ZWMzOThmMTZlMTdkZjYwMGVkYzFiMzhjMWU5ZTYyYzE1YzlhYTEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgTWF5IDI1IDIyOjA4OjU3IDIwMDcgLTA0MDAKCiAgICBGaXggZmR0X2Nob3NlbigpIHRvIGNhbGwgZnRfYm9hcmRfc2V0dXAoKSwgY2xlYW4gdXAgbG9uZyBsaW5lcy4KCiAgICBUaGUgZmR0X2Nob3NlbigpIGZ1bmN0aW9uIHdhcyBhZGRpbmcvc2V0aW5nIHNvbWUgcHJvcGVydGllcyBhZC1ob2MKICAgICAgaW1wcm9wZXJseSBhbmQgZHVwbGljYXRlZCAocG9vcmx5KSB3aGF0IHdhcyBkb25lIGluIGZ0X2JvYXJkX3NldHVwKCkKCiAgICBDbGVhbiB1cCBsb25nIGxpbmVzIChzZXR0aW5nIHByb3BlcnRpZXMsIHByaW50aW5nIGVycm9ycykuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAwNmUxOWEwNzcwMWM5NjhmMTVkNzJjMDgzYjU4NzJhMWExMWM3YjAxCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJTW9uIE1heSAyMSAyMzoyNzoxNiAyMDA3IC0wNDAwCgogICAgRm9yIGZkdF9maW5kX25vZGVfYnlfcGF0aCgpLCBoYW5kbGUgdGhlIHJvb3QgcGF0aCBwcm9wZXJseS4KCiAgICBBbHNvIHJlbW92ZXMgdGhlIHNwZWNpYWwgY2FzZSByb290IHBhdGggZGV0ZWN0aW9uIGluIGNtZF9mZHQuYyBzaW5jZSBpdAogICAgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDk2NzVlZTcyMDhhYjk2NWQxM2VhOGQ4MjYyZDc3YWM0MTYwZWY1NDkKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUaHUgTWF5IDE3IDIzOjU0OjM2IDIwMDcgLTA0MDAKCiAgICBBZGQgZmR0X2ZpbmRfbm9kZV9ieV90eXBlKCkgYW5kIGZkdF9maW5kX2NvbXBhdGlibGVfbm9kZSgpIHRvIExJQkZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMWE4NjExNjliYzM3NThmOWRlM2FlYWQ2MmIwNTg3MzZjNjg5MTI0NgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBKdW4gNiAyMjo0Nzo1OCAyMDA3IC0wNDAwCgogICAgUmVwbGFjZSBmZHRfbm9kZV9vZmZzZXQoKSB3aXRoIGZkdF9maW5kX25vZGVfYnlfcGF0aCgpLgoKICAgIFRoZSBuZXcgbmFtZSBtYXRjaGVzIG1vcmUgY2xvc2VseSB0aGUga2VybmVsJ3MgbmFtZSwgd2hpY2ggaXMgYWxzbwogICAgYSBtdWNoIGJldHRlciBkZXNjcmlwdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGFkZGQ4Y2U4MzA3OGMyNWYwZWNhNWYyM2FkYmRmYzY0Y2E1MGEyNDMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgTWF5IDE2IDIyOjM5OjU5IDIwMDcgLTA0MDAKCiAgICBGaXggY21kX2ZkdCBsaW5lIGxlbmd0aHMsIHJlZmFjdG9yIGNvZGUuCgogICAgQnJlYWsgbGluZXMgdGhhdCB3ZXJlIGdyZWF0ZXIgdGhhbiA4MCBjaGFyYWN0ZXJzIGluIGxlbmd0aC4KICAgIE1vdmUgdGhlIGZkdCBwcmludCBhbmQgcHJvcGVydHkgcGFyc2luZyBjb2RlIHRvIHNlcGFyYXRlIHN0YXRpYyBmdW5jdGlvbnMKICAgICAgdG8gcmVkdWNlIGNvZGluZyBjbHV0dGVyIGluIHRoZSBmZHRfY21kIGhhbmRsaW5nIGJvZHkuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAyNTExNDAzM2FiMjE3ODg4MTBjNDhiYTRkZjEwM2I2NDlkYTEyMjNiCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1heSAxMiAwOTo0NzoyNSAyMDA3IC0wNDAwCgogICAgRkRUIGNvbW1hbmQgaW1wcm92ZW1lbnRzLgoKICAgIEZpeCAiZmR0IHNldCIgc28gdGhhdCBpdCB3aWxsIGNyZWF0ZSBhIG5vbi1leGlzdGluZyBwcm9wZXJ0eS4KICAgIEFkZCAiZmR0IG1rbm9kZSIgdG8gY3JlYXRlIG5vZGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMzhlYjUwOGU4ZTgxMWUyZTU3NjI4ZjQ0NWRlM2EyNGEyM2M3ZDgwNApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXkgMTIgMDk6NDU6NDYgMjAwNyAtMDQwMAoKICAgIFJlb3JnYW5pemUgYW5kIGZpeCBwcm9ibGVtcyAocmV0dXJucykgaW4gdGhlIGJvb3RtIGNvbW1hbmQuCgogICAgRG8gKk5PVCogcmV0dXJuIGFmdGVyIHRoZSAicG9pbnQgb2Ygbm8gcmV0dXJuIiBoYXMgYmVlbiBwYXNzZWQuCiAgICAgIElmIHNvbWV0aGluZyBnb2VzIHdyb25nLCB0aGUgYm9hcmQgbXVzdCBiZSByZXNldCBhZnRlciB0aGF0IHBvaW50LgogICAgTW92ZSB0aGUgIlRyYW5zZmVycmluZyBjb250cm9sIHRvIExpbnV4IiBkZWJ1ZyBtZXNzYWdlIGJhY2sgdG8gd2hlcmUgaXQKICAgICAgYmVsb25nczoganVzdCBiZWZvcmUgdHJhbnNmZXJyaW5nIGNvbnRyb2wgdG8gbGludXguCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA4OWM4NzU3ZDhmMjEzYzQ3NzA5YmRjNGVmZTA2OTUyNjNhNjA4MGE2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVHVlIE1heSA4IDIxOjI3OjM1IDIwMDcgLTA0MDAKCiAgICBGaXggYnVncyBpbiB0aGUgQ09ORklHX09GX0xJQkZEVAoKICAgIFN0dXBpZCBjb2RpbmcgbWlzdGFrZXMgKGlkZW50aWZpZWQgYnkgVGltdXIgVGFiaSwgdGhhbmtzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDZiZTA3Y2MxY2E0NTgyNzhjODVlY2RiZjFhMDUzNmNmZjRjNzAxZWMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgQXByIDI1IDIyOjQ3OjE1IDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIGZkdCBtb3ZlIGxlbmd0aCBoYW5kbGluZy4KCiAgICBNYWtlIHRoZSBsZW5ndGggcGFyYW1ldGVyIG9wdGlvbmFsOiBpZiBub3Qgc3BlY2lmaWVkLCBkbyB0aGUgbW92ZSB1c2luZwogICAgdGhlIGN1cnJlbnQgc2l6ZSB1bmNoYW5nZWQuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBiYjkzMGU3NmZlYTZjZjg5Y2EyZDk4ZTJmN2M3YTYwNDNkNzkzMjdkCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIEFwciAyNSAyMjoyMzozNiAyMDA3IC0wNDAwCgogICAgTWlub3IgY29kZSBjbGVhbiB1cC4KCiAgICBEZWNsYXJlIHRoZSB2YXJpYWJsZSBmZHQgcHJvcGVybHkgYXMgZXh0ZXJuLgogICAgQ2FsbCB0aGUgInNldF9mbiIgZnVuY3Rpb24gcG9pbnRlciB0aGUgInNob3J0IHdheSIgd2l0aG91dCB0aGUgZnVsbAogICAgICBkZXJlZmVyZW5jaW5nIHN5bnRheC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGJhMjRlMmFjM2JkYjVjNDg5ZjNjNzg3ZTc1NDJiNjQ3NGM0ZDY1YzYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgQXByIDI1IDIxOjI0OjI3IDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIGVycm9yIG1lc3NhZ2VzLCBtb3JlIGluZm9ybWF0aXZlLgoKICAgIFByaW50IG1vcmUgdGhhbiB0aGUgcmF3IGxpYmZkdCBlcnJvciBtZXNzYWdlIHN0cmluZ3MuICBUaGlzIGlzIGVzcGVjaWFsbHkKICAgIHVzZWZ1bCBmb3IgY2x1aW5nIGluIHRoZSB1c2VyIHdoZW4gdGhlIGJvb3RtIGNvbW1hbmQgYWJvcnRzIGR1ZSB0bwogICAgYmxvYiBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDgwOTZiM2I4Zjc3MmMxODk0ZGRlZGE5ZGJjZWZmNmE4ODI2NDczYTQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgQXByIDIwIDIyOjQ2OjUzIDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IENvbmRpdGlvbmFsbHkgY29tcGlsZSBiYXNlZCBvbiBDT05GSUdfT0ZfTElCRkRUCgogICAgVGhpcyBpcyB0aGUgd2F5IHUtYm9vdCByZWR1Y2VzIGNvbmZpZ3VyZWQtb3V0IGNvZGUuICBBdCBXb2xmZ2FuZwogICAgR3JhbmRlZ2dlciBhbmQgV29sZmdhbmcgRGVuaydzIHJlcXVlc3QsIG1ha2UgbGliZmR0IGNvbmZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5MjNlZmQyODY0MTFlZDA1MmQ5ZTA3NGY1OWY4OTg2ZDYwODEwNjFjCkF1dGhvcjogQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGNjcHUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDE0OjU0OjQ3IDIwMDcgLTA3MDAKCiAgICBhZGQgaW1hZ2Ugc2l6ZSBhbmQgZGVzY3JpcHRvcnMgZm9yIFNwYXJ0YW4gM0UgRlBHQSBjaGlwcwoKICAgIFNwYXJ0YW4gM0UgaW1hZ2Ugc2l6ZXMgdGFrZW4gZnJvbSBUYWJsZSAxLTQgaW4gWGlsaW54IFVHMzMyICh2MS4xKQoKICAgIFNpZ25lZC1vZmYgYnk6IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBjY3B1LmNvbT4KCmNvbW1pdCBmYjU2NTc5ZmZlN2VmMzI3NWI3MDM2YmI3YjkyNGU1YTBkMzJiZDcwCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxNTozNDo0OCAyMDA3IC0wNTAwCgogICAgbWFrZSBNQUtFQUxMIG1vcmUgaW1tdW5lIHRvIG1lcmdlIGNvbmZsaWN0cwoKICAgIC4uYnkgcGxhY2luZyBib2FyZCBlbnRyaWVzIG9uZSBwZXIgbGluZSwgYXMgc3VnZ2VzdGVkIGJ5IGpkbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2MjgxMTRlYzU2NGY5NjlmMzRiNWY3MTA1ZmJkMTY4Y2I4YzljM2YKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDEzOjI4OjI1IDIwMDcgLTA1MDAKCiAgICBSRUFETUU6IFJlbW92ZSBvdXRkYXRlZCBjcHUgdHlwZSwgYm9hcmQgdHlwZSwgYW5kIE5BTUVfY29uZmlnIGxpc3RzCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OWJiNTk5MTJkMjFhYWNiNTA3ZWI4MWZkMjFmYjdhZjY1MGM3MDZjCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDEwIDE1OjQ4OjU5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBTdXBwcmVzcyB0aGUgd2FybmluZyAnYnVyc3RsZW4nCgogICAgc3VwcHJlc3MgdGhlIHdhcm5pbmcgJ2J1cnN0bGVuJyBvZiBzcGRfc2RyYW0uCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjQ2YmJhNjQ2NWE0NWM2MDc0NmQ0Y2MxNjAyY2QwNmMxOTYwZjJkCkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IEF1ZyA5IDE1OjExOjAzIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU0JDODY0MUQuIENvbmZpZyBmaWxlcy4KCiAgICBBZGQgc3VwcG9ydCBmb3IgV2luZCBSaXZlcidzIFNCQzg2NDFEIHJlZmVyZW5jZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgogICAgQWNrZWQtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YWMyNzMyNzFkNTczMjFmOTA1MDVjN2E1MWNkYjFlZjIxMTNiNjI4CkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IEF1ZyA5IDE1OjEwOjUzIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU0JDODY0MUQuICBCb2FyZCBmaWxlcy4KCiAgICBBZGQgc3VwcG9ydCBmb3IgV2luZCBSaXZlcidzIFNCQzg2NDFEIHJlZmVyZW5jZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgogICAgQWNrZWQtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMmMwYWI0YWZmODY2MjJiODM3YTQ4YTBlNTYwMzUxZjlhZmFmYjk1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDEwIDIwOjM0OjU4IDIwMDcgKzAyMDAKCiAgICBDb25kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzc0YjIxMDhlMzFmZTA5YmQxYzVkMjkxYzNjZjM2MDUxMGQ0ZjEzZQpBdXRob3I6IFNlcmdleSBLdWJ1c2h5biA8a3NpQGtvaTgubmV0PgpEYXRlOglGcmkgQXVnIDEwIDIwOjI2OjE4IDIwMDcgKzAyMDAKCiAgICBbQVJNXSBUSSBEYVZpbmNpIHN1cHBvcnQsIGhvcGVmdWxseSBmaW5hbAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIERhVmluY2kgYm9hcmRzOgogICAgLSBEVl9FVk0KICAgIC0gU0NITU9PR0lFCiAgICAtIFNPTkFUQQoKICAgIENoYW5nZXM6CgogICAgLSBTcGxpdCBpbnRvIHNlcGFyYXRlIGJvYXJkIGRpcmVjdG9yaWVzCiAgICAtIFJlbW92ZWQgY2hhbmdlcyB0byBNVERfREVCVUcgKG9yIHdoYXRldmVyIGl0J3MgY2FsbGVkKQogICAgLSBOZXcgQ09ORklHX0NNRCBwYXJ0eSBsaW5lIGZvbGxvd2VkCiAgICAtIFNvbWUgY29zbWV0aWMgZml4ZXMsIGNsZWFudXAgZXRjLgogICAgLSBQYXRjaGVzIGFnYWluc3QgdGhlIGxhdGVzdCBVLUJvb3QgdHJlZSBhcyBvZiBub3cuCiAgICAtIEZpeGVkIENPTkZJR19DTURfTkVUIGluIG5ldCBmaWxlcy4KICAgIC0gRml4ZWQgQ09ORklHX0NNRF9FRVBST00gZm9yIHNjaG1vb2dpZS4KICAgIC0gTWFkZSBzdXJlIGl0IGNvbXBpbGVzIGFuZCB3b3JrcyAoZm9yY2VlbnYoKSBsaW5rIHByb2JsZW0pIG9uIFNDSE1PT0dJRSBhbmQKICAgICAgIERWX0VWTS4gQ2FuJ3QgY2hlY2sgaWYgaXQgd29ya3Mgb24gU09OQVRBLCBkb24ndCBoYXZlIGEgYm9hcmQgYW55IG1vcmUsCiAgICAgICBidXQgaXQgYXQgbGVhc3QgY29tcGlsZXMuCgogICAgSGVyZSBpcyBhbiBleGNlcnB0IGZyb20gc2Vzc2lvbiBsb2cgb24gU0NITU9PR0lFLi4uCgogICAgVS1Cb290IDEuMi4wLWc2YzMzYzc4NS1kaXJ0eSAoQXVnICA3IDIwMDcgLSAxMzowNzoxNykKCiAgICBEUkFNOiAgMTI4IE1CCiAgICBOQU5EOiAgMTI4IE1pQgogICAgSW46ICAgIHNlcmlhbAogICAgT3V0OiAgIHNlcmlhbAogICAgRXJyOiAgIHNlcmlhbAogICAgQVJNIENsb2NrIDogMjk3TUh6CiAgICBERFIgQ2xvY2sgOiAxNjJNSHoKICAgIEVUSCBQSFkgICA6IERQODM4NDggQCAweDAxCiAgICBVLUJvb3QgPiBpcHJvYmUKICAgIFZhbGlkIGNoaXAgYWRkcmVzc2VzOiAxQiAzOCAzQSAzRCAzRiA1MCA1RCA2RgogICAgVS1Cb290ID4gcGluZyAxOTIuMTY4LjI1My4xMAogICAgaG9zdCAxOTIuMTY4LjI1My4xMCBpcyBhbGl2ZQogICAgVS1Cb290ID4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgS3VidXNoeW4gPGtzaUBrb2k4Lm5ldD4KICAgIEFja2VkLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KICAgIEFja2VkLWJ5OiBaYWNoIFNhZGVja2kgPFphY2guU2FkZWNraUByaXBjb2RlLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmU0ZDk0ZjFlM2MyOTYxNDI4OTY3YTMzYjZmZjI1MjA1NjgzOTFiMwpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDUgMjAwNyAtMDUwMAoKICAgIGZzbF9wY2lfaW5pdCBjbGVhbnVwLgoKICAgIERvIG5vdCBlbmFibGUgbm9ybWFsIGVycm9ycyBjcmVhdGVkIGR1cmluZyBwcm9iZSAobWFzdGVyIGFib3J0LCBwZXJyLAogICAgYW5kIHBjaWUgSW52YWxpZCBDb25maWd1cmF0aW9uIGFjY2VzcykuCgogICAgQWRkIENPTkZJR19QQ0lfTk9TQ0FOIGJvYXJkIG9wdGlvbiB0byBwcmV2ZW50IGJ1cyBzY2FuLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkzNmIzZTY5YjY2N2MzZWI5YTYxZWNlNGU3ODY0N2QzZmNlOWZjMmEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ0IDIwMDcgLTA1MDAKCiAgICBwY2lhdXRvX3NldHVwX2RldmljZSBiYXJzX251bSBmaXgKCiAgICBQYXNzaW5nIGJhcnNfbnVtPTAgdG8gcGNpYXV0b19zZXR1cF9kZXZpY2Ugc2hvdWxkIGFzc2lnbiBubyBiYXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZjBiMTg1ZTU4Y2EwYWVjOGFlMmIyYTg4MDRlYzBlZjU4ZWUyMWQ0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyA2IDE3OjM5OjQ0IDIwMDcgLTA1MDAKCiAgICA4NjQxaHBjbjogRG8gY29ycmVjdCBzaXplZCBwb2ludGVyIG1hdGguCgogICAgV2hlbiBJIHJlYmFzZWQgRWQncyBwYXRjaCBhbmQgY2xlYW5lZCB1cCBhIGZldyBjb21waWxhdGlvbgogICAgcHJvYmxlbXMsIEkgYXBwYXJlbnRseSByZWJhc2VkIG15IGJyYWluIG9uIGNyYWNrIGZpcnN0LgogICAgRml4IHRoYXQgYnkgZG9pbmcgKGNoYXIgKikgc2l6ZWQgcG9pbnRlciBtYXRoIGFzIG5lZWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmYzdhN2Y1YmIzMjczYzk5NTExNzNjNzg4MDAxZDQ1MTE4ZjE0MWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDIgMTQ6NDI6MjAgMjAwNyAtMDUwMAoKICAgIGNwdS84Nnh4IGZpeGVzLgoKICAgIFJlbW92ZSByZXYgMSBmaXhlcy4KICAgIEFsd2F5cyBzZXQgUElDR0NSX01PREUuCiAgICBFbmFibGUgbWFjaGluZSBjaGVjayBhbmQgcHJvdmlkZSBib2FyZCBjb25maWcgb3B0aW9uCiAgICB0byBzZXQgYW5kIGhhbmRsZSBTb0MgZXJyb3IgaW50ZXJydXB0cy4KCiAgICBJbmNsdWRlIE1TU1NSMCBpbiBlcnJvciBtZXNzYWdlLgoKICAgIElzb2xhdGUgYSBSQU1CT09UIGJpdCBvZiBjb2RlIHdpdGggI2lmZGVmIENGR19SQU1CT09ULgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM1ZDIyZjk1N2E4NWEyMmJiM2NkMWFkMDg0ZmE1NDA0NjIwZDFjNDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMTAgMTA6NDI6MjUgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNhNmQ1NmMyMDk4OWZlMjczNjBhZmU3NDNiZDJhN2FkNGQ3NmU0OGYKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglUaHUgQXVnIDIgMTc6NDI6MDggMjAwNyArMDIwMAoKICAgIE1ha2UgdXNlIG9mIGdlbmVyaWMgNjRiaXQgZGl2aXNpb24gaW4gbmFuZF91dGlsLmMKCiAgICBVc2UgZ2VuZXJpYyA2NGJpdCBkaXZpc2lvbiBpbiBuYW5kX3V0aWwuYy4gVGhpcyBtYWtlcyBuYW5kX3V0aWwuYwogICAgaW5kZXBlbmRlbnQgb2YgYW55IHRvb2xjaGFpbiA2NGJpdCBkaXZpc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCBmN2MwODZlOTRlOGNlOWFhZDcyNjhhZjk3ZjczYWE2ODg0Njg2ZjI3CkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVGh1IEF1ZyAyIDE3OjQxOjE0IDIwMDcgKzAyMDAKCiAgICBNb3ZlIDY0Yml0IGRpdmlzaW9uIGZyb20gYXZyMzIgdG8gZ2VuZXJpYyBsaWIKCiAgICBNb3ZlIHRoZSA2NGJpdCBkaXZpc2lvbiBmcm9tIGxpYl9hdnIzMiB0byBsaWJfZ2VuZXJpYy4gV2l0aCB0aGlzLCBhbGwKICAgIGJvYXJkcyBjYW4gZG9fZGl2L19fZGl2NjRfMzIgaWYgbmVlZGVkLCBub3Qgb25seSBhdnIgb25lLiBDb2RlIGlzIHB1dAogICAgdG8gbGliX2dlbmVyaWMsIHNvIG5vIGxhcmdlciBtZW1vcnkgZm9vdHByaW50IGlmIG5vdCB1c2VkLiBObyBjb2RlCiAgICBtb2RpZmljYXRpb25zLiBUaGFua3MgZm9yIHByb3Bvc2FsIGJ5IEjDpXZhcmQgU2tpbm5lbW9lbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCAxNTdjZGE0ZDBjM2Q1OTJjY2JiMTliYmZjMDdkOTI1MTg5NGYwODk0CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMTozMToyMiAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSENVNSBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNmU1ZGUyNmM2ZTc1ODBmYWYxNmU4Nzc0NWNkNDg4YjkyYjQ5MmQwYwpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6MzA6MzMgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEhDVTQgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGU4Mzk3ZmM3OGM5Mzk0ZDcxZGUyMzNhNGQ4MTBmYmM5MDQ3ZTRjNzYKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjM4OjI2IDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBjb21tb24gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGFjOTgyZWE1YTRmMmY5OTNlZmNmNTJkY2ExMjJmNWE1OWRmMDQ3ZDgKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjI4OjQ0IDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBtYWtlIHJlbGF0ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDEzN2ZkZDlmNDc0ZWNiODUzZWZkYWNlNTIwMDU3NjMwOGM2N2YxOGQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjI4OjAzIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBIQ1U1IGNvbmZpZwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNzE0YmM1NWIzNWI2ZjZhNjVjYzg3NDBhMzg0MmE1NDNlODhjZGVmMgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mjc6MTUgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEhDVTQgY29uZmlnCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAxODk0ZGQzODExMjRiZGJmYmRhZTdjZjNhNmNhNTJhOGViMWY0NDIxCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMToyNTozMSAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogUkVBRE1FcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNjQxY2NhOTU2OWNlMzUxZGRiMjg3ZmQzMzQzZDhiMWRjYjU5MWRiNApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6Mzc6NDAgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEluZnJhc3RydWN0dXJlCgogICAgVGhpcyBzZXJpZXMgb2YgcGF0Y2hlcyBhZGRzIHN1cHBvcnQgZm9yIDIgYm9hcmRzIGZyb20gTmV0c3RhbCBNYXNjaGluZW4uCgogICAgVGhlIEhDVTQgaGFzIGEgUFBDNDA1R3ByIGFuZAogICAgdGhlIEhDVTUgaGFzIGEgUFBDNDQwRVBYLgoKICAgIFRoZSBIQ1U0IGhhcyBhIHNvbWVob3cgY29tcGxpY2F0ZWQgZmxhc2ggc2V0dXAsIGFzIHRoZSBib290ZXByb20gaXMKICAgIG9ubHkgOCBiaXRzIGFuZCB0aGUgQ0ZJIDE2IGJpdHMgd2lkZSwgd2hpY2ggbWFrZXMgaXQgaW1wb3NzaWJsZSB0byB1c2UgYSBtb3JlCiAgICBlbGVnYW50IHNvbHV0aW9uLgoKICAgIFRoZSBIQ1U1IGhhcyBvbmx5IGEgYm9vdGVwcm9tIGFzIHRoZSB3aG9sZSBjb2RlIHdpbGwgYmUgZG93bmxvYWRlZCBmcm9tIGEKICAgIGRpZmZlcmVudCBib2FyZCB3aGljaCBoYXMgSEQsIENELVJPTSwgZXRjIGFuZCB3aGVyZSBhbGwgY29kZSBpcyBzdG9yZWQuCgogICAgVGhpcyBpcyBteSB0aGlyZCB0cnkuIEkgaW5jb3Jwb3JhdGVkIGFsbCBzdWdnZXN0aW9ucyBtYWRlIGJ5IFdvbGZnYW5nIGFuZCBTdGVmYW4uCiAgICBUaGFua3MgdGhlbSBhIGxvdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDNlNGM5MGM2MjMzNjE4ZmMxODA2ZTYzZmRlNjhkZjVmM2Q2YTAxNzEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMTAgMDg6NDI6NTUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGx3bW9uNSBQT1NUIGNvbmZpZ3VyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjljYjI1ZGE1NmFmZTE4Y2Y1ZTcwNzJhOTJhOWQ5OGVhOGFmMWZkNApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAwODoyNToyMiAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIHBwYzR4eCBVQVJUIFBPU1Qgc3VwcG9ydCB3aXRob3V0IGV4dGVybmFsIHVhcnQgY2xvY2sgKGx3bW9uNSkKCiAgICBUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBVQVJUIFBPU1Qgb24gcHBjNDR4LWJhc2VkIGJvYXJkcyB3aXRoIG5vCiAgICBleHRlcm5hbCBzZXJpYWwgY2xvY2tzIGluc3RhbGxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk5YzJmZGFiOTFiYzYzM2U0NmZiNDFkYmFhNjI5Zjg3Y2NmNmUwMGYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDYgMTg6MTg6MzQgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCBJVFhbR1BdIE89YnVpbGRkaXIgYnVpbGRzCgogICAgbWFrZTogKioqIE5vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYC93b3JrL3dkL3RtcC9ib2FyZC9tcGM4MzQ5aXR4L3UtYm9vdC5sZHMnLCBuZWVkZWQgYnkgYC93b3JrL3dkL3RtcC91LWJvb3QnLiAgU3RvcC4KCiAgICBCb3RoIHRoZSBJVFggYW5kIElUWC1HUCBmYWlsIHdoZW4geW91IHVzZSAibWFrZSBPPTxzb21lIGRpcj4gLi4uIiBvcgogICAgIkJVSUxEX0RJUj08c29tZSBkaXI+IC4vTUFLRUFMTCAuLi4iCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0N2U4YmM4NDY3NTllMDM3YjhhZjBlNWY5YzlmOWNmYTdhMTA1MGMzCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDEgMTU6MDA6NTkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IENvcnJlY3QgdGhlIFJFQURNRSBmb3IgRERSIEVDQwoKICAgIFVwZGF0ZSB0aGUgUkVBRE1FIGZvciBERFIgRUNDLCBjaGFuZ2UgdGhlIG5hbWUKICAgIHRvIFJFQURNRS5tcGM4M3h4LmRkcmVjYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYWFiOGM2N2QyZGVmZWY3M2RjMjZhYjA3ZjBjM2FmZDFiMDVkMDE5CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDEgMTU6MDA6MTUgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IENvbnNvbGlkYXRlIHRoZSBFQ0Mgc3VwcG9ydCBvZiA4M3h4CgogICAgUmVtb3ZlIHRoZSBkdXBsaWNhdGVkIHNvdXJjZSBjb2RlIG9mIGVjYyBjb21tYW5kIG9uIHRoZSA8Ym9hcmQ+LmMsCiAgICBmb3IgcmV1c2VkLCBtb3ZlIHRoZXNlIGNvZGUgdG8gY3B1L21wYzgzeHggZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAzNjU3NWM1NDRjZjFiNjk2NTRkOGZiMzM0YmRhNjljNmZmM2RhMzYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBBdWcgNCAxMzozNzozOSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQ29ycmVjdCB0aGUgYnVyc3QgbGVuZ3RoIGZvciBERFIyIHdpdGggMzIgYml0cwoKICAgIFRoZSBidXJzdCBsZW5ndGggc2hvdWxkIGJlIDQgZm9yIEREUjIgd2l0aCAzMiBiaXRzIGJ1cwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWMyNzRjNGUwNWI2ZGM5YjI0ZWRjOGFhNjE4YjAyZjYwN2VlNmVlZApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjUgMTk6MjU6MzMgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODMyM0UgUkRCCgogICAgTVBDODMyM0UgYmFzZWQgYm9hcmQgd2l0aCA2NE1CIGZpeGVkIFNEUkFNLCAxNk1CIGZsYXNoLAogICAgZml2ZSAxMC8xMDAgZXRoZXJuZXQgcG9ydHMgY29ubmVjdGVkIHZpYSBhbiBJQ1BsdXMgSVAxNzVDCiAgICBzd2l0Y2gsIG9uZSBQQ0kgc2xvdCwgYW5kIHNlcmlhbC4gIEZlYXR1cmVzIG5vdCBzdXBwb3J0ZWQKICAgIGluIHRoaXMgcGF0Y2ggYXJlIFNEIGNhcmQgaW50ZXJmYWNlLCAyIFVTQiBwb3J0cywgYW5kIHRoZQogICAgdHdvIHBob25lIHBvcnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNDNkOTEwMDlkNTVmYzViM2ZmOGNjOTQwNTk3YWY2YzZhYTFkMzU5CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAyNSAxOToyNToyOCAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4dXAgZ2VuZXJpYyBwY2kgZm9yIGxpYmZkdAoKICAgIGFkZCBsaWJmZHQgc3VwcG9ydCB0byB0aGUgZ2VuZXJpYyA4M3h4IHBjaSBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTdhYzdhN2IzNzEwOTI0NWI2OWRiODA4MzllYmVlMjYxNzk5NjZhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAyNSAxOToyNToyMiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IDgzNjAgYW5kIGNwdSBmdW5jdGlvbnMgdG8gdXBkYXRlIGZkdCBiZWluZyBwYXNzZWQKCiAgICAuLmFuZCBub3QgdGhlIGdsb2JhbCBmZHQuIFJlbmFtZSBsb2NhbCBmZHQgdmFycyB0byBibG9iIHNvIGFzIG5vdCB0bwogICAgYmUgY29uZnVzZWQgd2l0aCB0aGUgZ2xvYmFsIHZhciB3aXRoIHRoZSBzYW1lIHRocmVlLWxldHRlciBuYW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGJlNDA0NDU5YTZiNzM5NTQxNWE1N2JiMzVlODM3N2UzYjJiNWFjYgpBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIxOjM0OjI0IDIwMDcgLTA0MDAKCiAgICBtcGM4M3h4OiBGaXggZXJyb3JzIHdoZW4gQ09ORklHX09GX0xJQkZEVCBpcyBlbmFibGVkCgogICAgU2V2ZXJhbCBub2RlIHN0cmluZ3Mgd2VyZSBub3QgY29ycmVjdCAodHJhaWxpbmcgc2xhc2hlcyBhbmQgcHJvcGVydGllcwogICAgICBpbiB0aGUgc3RyaW5ncykKICAgIEFkZGVkIHNldHRpbmcgb2YgdGhlIHRpbWViYXNlLWZyZXF1ZW5jeS4KICAgIEltcHJvdmVkIGVycm9yIG1lc3NhZ2VzIGFuZCB1c2UgZGVidWcoKSBpbnN0ZWFkIG9mIHByaW50ZigpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2ZDAyYzliYmFjMTc1MWM1ZTE5Mjk0ZjAwMDEwMGI0OGQ0M2E5MjAKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMToyNzozMCAyMDA3IC0wNDAwCgogICAgbXBjODN4eDogUmVwbGFjZSBmZHRfbm9kZV9vZmZzZXQoKSB3aXRoIGZkdF9maW5kX25vZGVfYnlfcGF0aCgpLgoKICAgIFRoZSBuZXcgbmFtZSBtYXRjaGVzIG1vcmUgY2xvc2VseSB0aGUga2VybmVsJ3MgbmFtZSwgd2hpY2ggaXMgYWxzbwogICAgYSBtdWNoIGJldHRlciBkZXNjcmlwdGlvbi4KCiAgICBUaGVzZSBhcmUgdGhlIG1wYzgzeHggY2hhbmdlcyBtYWRlIG5lY2Vzc2FyeSBieSB0aGUgZnVuY3Rpb24gbmFtZSBjaGFuZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWJlMzlhNjdjOWY4ZmVmNzEwN2Y1ZGYwOWQ2NzMwMDVmMDRkMDk2MwpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTA6NDE6NTYgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgZGlzcGxheSBvZiByZXNldCBzdGF0dXMKCiAgICA4M3h4IHByb2Nlc3NvciBmYW1pbHkgaGFzIG1hbnkgcmVzZXQgc291cmNlcywgc3VjaCBhcwogICAgcG93ZXIgb24gcmVzZXQsIHNvZnR3YXJlIGhhcmQgcmVzZXQsIHNvZnR3YXJlIHNvZnQgcmVzZXQsCiAgICBKVEFHLCBidXMgbW9uaXRvciwgc29mdHdhcmUgd2F0Y2hkb2csIGNoZWNrIHN0b3AgcmVzZXQsCiAgICBleHRlcm5hbCBoYXJkIHJlc2V0LCBleHRlcm5hbCBzb2Z0d2FyZSByZXNldC4KICAgIHNvbWV0aW1lcywgdG8gZmlndXJlIG91dCB0aGUgZmF1bHQgb2Ygc3lzdGVtLCB3ZSBuZWVkIHRvCiAgICBrbm93IHRoZSBjYXVzZSBvZiByZXNldCBlYXJseSBiZWZvcmUgdGhlIHByb21wdCBvZgogICAgdS1ib290IHByZXNlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmY5NjU4ZDcwNDliZjhjOGU4ZTBhMDVkYmU1ZTlmN2U5MWFhNWE1ZApBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTA6NDE6MDQgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgYWxpZ24gYnVnIG9mIFNETUEgYnVmZmVyCgogICAgQWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QgdXNlciBtYW51YWwsIHRoZSBTRE1BIHRlbXBvcmFyeQogICAgYnVmZmVyIGJhc2UgYWRkcmVzcyBtdXN0IGJlIDRLQiBhbGlnbmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY2ZGMyYzJkYzUxZjhiODhiYjhlMjMxYmM4MGNkOTJlYWUxZDY0NzYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDI1IDEzOjIxOjEyIDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBSZXZpc2UgdGhlIE1QQzgzNjBFTURTIHJlYWRtZSBkb2MKCiAgICBXaGVuIHRoZSByZXYyLnggc2lsaWNvbiBtb3VudCBvbiB0aGUgTVBDODM2MEVNRFMgYmFvcmQsCiAgICBhbmQgaWYgeW91IGFyZSB1c2luZyB0aGUgdS1ib290IHZlcnNpb24gYWZ0ZXIgdGhlIGNvbW1pdAogICAgM2ZjMGJkMTU5MTAzYjUzNmUxYzU0YzZmNDQ1N2EwOWIzYWJhNjZjYS4KICAgIHRvIG1ha2UgdGhlIGV0aGVybmV0IGludGVyZmFjZSB1c2FibGUsIHdlIGhhdmUgdG8gc2V0dXAKICAgIHRoZSBqdW1wZXJzIGNvcnJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNzM5YmM5NTc5N2FhYzRmZWZjNGM3NWI1NWM3Yzc4ZTU5ZDNlYTljCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAzIDEzOjQ2OjMyIDIwMDcgLTA1MDAKCiAgICBGU0wgSTJDIGRyaXZlciBwcm9ncmFtcyB0aGUgdHdvIEkyQyBidXNzZXMgZGlmZmVyZW50bHkKCiAgICBUaGUgaTJjX2luaXQoKSBmdW5jdGlvbiBpbiBmc2xfaTJjLmMgcHJvZ3JhbXMgdGhlIHR3byBJMkMgYnVzc2VzIGRpZmZlcmVudGx5LgogICAgVGhlIHNlY29uZCBJMkMgYnVzIGhhcyBpdHMgc2xhdmUgYWRkcmVzcyBwcm9ncmFtbWVkIGluY29ycmVjdGx5IGFuZCBpcwogICAgbWlzc2luZyBhIDUtdXMgZGVsYXkuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGYzM2Y2YjRkNmQ2MzY5M2RkOTIwMDgwOGIyNDJkZTFiODZjYjhlOApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMyAxMzowNDozNCAyMDA3IC0wNTAwCgogICAgVXBkYXRlIFNDQ1IgcHJvZ3JhbW1pbmcgaW4gY3B1X2luaXRfZigpIHRvIHN1cHBvcnQgYWxsIDgzeHggcHJvY2Vzc29ycwoKICAgIFVwZGF0ZSB0aGUgY3B1X2luaXRfZigpIGZ1bmN0aW9uIGluIGNwdS9tcGM4M3h4L2NwdV9pbml0LmMgdG8gcHJvZ3JhbSB0aGUKICAgIGJpdGZpZWxkcyBmb3IgYWxsIDgzeHggcHJvY2Vzc29ycy4JVGhlIGNvZGUgdG8gdXBkYXRlIHNvbWUgYml0ZmllbGRzIHdhcwogICAgY29tcGlsZWQgb25seSBvbiBzb21lIHByb2Nlc3NvcnMuICBOb3csIHRoZSBiaXRmaWVsZHMgYXJlIHByb2dyYW1tZWQgYXMgbG9uZwogICAgYXMgdGhlIGNvcnJlc3BvbmRpbmcgQ0ZHX1NDQ1Igb3B0aW9uIGlzIGRlZmluZWQgaW4gdGhlIGJvYXJkIGhlYWRlciBmaWxlLgogICAgVGhpcyBtZWFucyB0aGF0IHRoZSBib2FyZCBoZWFkZXIgZmlsZSBzaG91bGQgbm90IGRlZmluZSBhbnkgQ0ZHX1NDQ1IgbWFjcm9zCiAgICBmb3IgYml0ZmllbGRzIHRoYXQgZG9uJ3QgZXhpc3Qgb24gdGhhdCBwcm9jZXNzb3IsIG90aGVyd2lzZSB0aGUgU0NDUiB3aWxsIGJlCiAgICBwcm9ncmFtbWVkIGluY29ycmVjdGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1NDYyNjY5OTlmMGI5YjUxMzcyNjM2NjE0MjExYjg4ZDkwZjBmMjUKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJRnJpIEp1biAyMiAxMzowNDoyMiAyMDA3ICswMjAwCgogICAgVFFNODM0eDogY2xlYW51cCBjb25maWd1cmF0b24KCiAgICBSZW1vdmUgaXJyaXRhdGluZyAjdW5kZWYgREVCVUcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWQ0OTdlNmJmMGY1YmY2MzcyOWI0YTQ3YjNmZDc4NmQzYzc3YTFiYwpBdXRob3I6IGRhdmlkLnNhYWRhIDxEYXZpZC5TYWFkYUBlY2l0ZWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxOCAwOTowOTo1MyAyMDA3IC0wNzAwCgogICAgTVBDODN4eDogRml4IG1ha2VmaWxlIHRvIGdlbmVyYXRlIGNvbmZpZy5oIGZpbGUgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeQoKICAgIE1QQzgzeHg6IEZpeCB0aGUgTWFrZWZpbGUgY29uZmlnIHNlY3Rpb25zIHRvIGdlbmVyYXRlIHRoZSBpbmNsdWRlL2NvbmZpZy5oCiAgICBmaWxlIGluIHRoZSBidWlsZCBkaXJlY3RvcnkgaW5zdGVhZCBvZiB0aGUgc291cmNlIGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTYWFkYSA8ZGF2aWQuc2FhZGFAZWNpdGVsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFkZWQwMjQyZTQzNzI1OTM2Njc5MmQ1MmI3ZTlkMWUxOTMxZDhmYTUKQXV0aG9yOiBMZWUgTmlwcGVyIDxMZWUuTmlwcGVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMTQgMjA6MDc6MzMgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciA4MzYwIHNpbGljb24gcmV2aXNpb24gMi4xCgogICAgVGhpcyBjaGFuZ2UgYWRkcyA4MzYwIHNpbGljb24gcmV2aXNpb24gMi4xIHN1cHBvcnQgdG8gdS1ib290LgoKICAgIFNpZ25lZC1vZmYtYnk6IExlZSBOaXBwZXIgPGxlZS5uaXBwZXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTIyODA2NDY5YThmMmI2OWM4MjlmNGZkNTM2MWZkZWJkMGNiMDFiNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBBdWcgOCAwNDoxNDoyOCAyMDA3IC0wNTAwCgogICAgVHJlYXQgcHBjNjQgaG9zdCBhcyBwcGMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBkYzQyNzliMDhmZjgyNDcyYmVjMmUyYzkwODU4NjAyNDU5ZmViZTgKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDggMDk6MDE6NDYgMjAwNyArMDgwMAoKICAgIE1pbm9yIGZpeCBmb3IgYmlvcyBlbXVsYXRvciBtYWtlZmlsZQoKICAgIEFkZCAkKG9iaikgdG8gTElCIGF2b2lkaW5nIG9iamVjdHMgYmUgYnVpbHQgaW4gdGhlIHNvdXJjZSBkaXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNlOTgxZGM4NTdhZGZjODAzNmNhMmY2ZDVkNWEwNmMyYThhYTc3ZDYKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDggMDg6MzM6MTEgMjAwNyArMDgwMAoKICAgIEFkZCBDT05GSUdfQklPU0VNVSBkZWZpbmUgdG8gZ3VhcmQgYWxsIHRoZSBiaW9zIGVtdWxhdG9yIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBjb21waWxlIGlzc3VlIG9uIHRoZSBib2FyZCB0aGF0IGRpZCBub3QgZW5hYmxlIHRoZSBiaW9zIGVtdWxhdG9yCgpjb21taXQgZWQ4MTA2NDMzNTIyZjJlYTg5MzNlOTgwODM0Njg2MGQwNjFkNzczMQpBdXRob3I6IFphY2ggU2FkZWNraSA8WmFjaC5TYWRlY2tpQHJpcGNvZGUuY29tPgpEYXRlOglUdWUgSnVsIDMxIDEyOjI3OjI1IDIwMDcgLTA1MDAKCiAgICB0c2VjOiBmaXggbXVsdGlwbGUgUEhZIHN1cHBvcnQKCiAgICBUaGUgY2hhbmdlIGVudGl0bGVkICJSZWR1Y2UgQ09ORklHX01QQzhZWFhfVFNFQ3ggdG8gQ09ORklHX1RTRUN4IgogICAgYnJva2UgbXVsdGlwbGUgUEhZIHN1cHBvcnQgaW4gdHNlYy5jLiAgVGhpcyBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaYWNoIFNhZGVja2kgPFphY2guU2FkZWNraUByaXBjb2RlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGNiODRiNzIwOGFkZTBiYmViYmViNTZiZWM5YzJjNjRmOGIyZWVkZQpBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBBdWcgOSAwOTowODoxOCAyMDA3IC0wNTAwCgogICAgdHNlYzogQWxsb3cgVGVuIEJpdCBJbnRlcmZhY2UgYWRkcmVzcyB0byBiZSBjb25maWd1cmFibGUKCiAgICBBbGxvdyB0aGUgYWRkcmVzcyBvZiB0aGUgVGVuIEJpdCBJbnRlcmZhY2UgKFRCSSkgdG8gYmUgY2hhbmdlZCBpbiB0aGUKICAgIGV2ZW50IG9mIGEgY29uZmxpY3Qgd2l0aCBhbm90aGVyIGRldmljZS4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgoKY29tbWl0IDNiYTRjMmQ2OGY2NTQxZGI0Njc3YjRhZWExMjA3MWY1NmU2ZmY2ZTYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgOCAwOTo1NDoyNiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTQxZGUxZjBkMzczZTA5Yzc4MmRlYTU1ODM4NWEwNjI0NzExMWJhNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDA1OjE1OjE4IDIwMDcgLTA1MDAKCiAgICBQb3J0IGVuYWJsZWQgZm9yIEkyQyBzaWduYWxzIGFuZCBjaGlwc2VsZWN0cyBwb3J0IGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFhMzNjZTY1YTRjNTFhNjkxOTBkZDhjNDA4ZjllMWM2MmE2NmU5NGYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwNDozMToxOCAyMDA3IC0wNTAwCgogICAgQWRkZWQgTkFORCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVhZjllNDQ3YmViM2U0OTg4MThlZjhhZDBiOGMxNTk3Y2Q1MDYxNDkKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwNDoxMToyMCAyMDA3IC0wNTAwCgogICAgQWRkZWQgSTJDIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTljMDNjMTc1ZDI2ODkwOTMxNzZmYWNmMTdjNThjZTJjYjMyMDAwMQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjU4OjUyIDIwMDcgLTA1MDAKCiAgICBDaGFuZ2VkIENGR19DTEsgdG8gZ2QtPmJ1c19jbGsgZm9yIENGR19USU1FUl9QUkVTQ0FMRVIuIEFkZGVkIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIGZvciB0aW1lLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGQxZDY2YWY1NGQzMDVkZTI5ZDBiYmY0YWE4YzllNjM3NWY3ZjczMQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjU1OjIxIDIwMDcgLTA1MDAKCiAgICBBZGRlZCB1YXJ0X2dwaW9fY29uZigpIGluIHNlcmlhbF9pbml0KCksIHNlcGVyYXRlZCB1YXJ0IHBvcnQgY29uZmlndXJhdGlvbiBmcm9tIGNwdV9pbml0KCkgdG8gdWFydF9ncGlvX2NvbmYoKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZmRlODRhNDRiN2U1NzVlYTgwZmUwZTJkNWJlM2I2ZjczZDFlNjMwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6NDM6MzAgMjAwNyAtMDUwMAoKICAgIE1vdmVkIHN5bmMoKSBmcm9tIGJvYXJkIGZpbGUgdG8gaW5jbHVkZS9hc20tbTY4ay9pby5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDllNzM3ZDg0NzZlN2Q2YTU5NmQxNmNhYWY2YTM4NTNhOWExMTkwYTIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzozMDo0NCAyMDA3IC0wNTAwCgogICAgRGVjbGFyZWQgYXR0cmlidXRlcyBvZiB2b2lkIF9fbWlpX2luaXQodm9pZCkgYXMgYW4gYWxpYXMgZm9yIGludCBtaWlfaW5pdCh2b2lkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OTk4YmQzN2VhZDg1ZTkzOTUzNTU5NzIwNzEwZDNiMDY4NWM4MWU2CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6MTk6MTAgMjAwNyAtMDUwMAoKICAgIFJlbmFtZWQgQ09ORklHX01DRlNFUklBTCB0byBDT05GSUdfTUNGVUFSVAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YzRjMzcyMmEzOGQ0MGIwY2Y1MzdkZGFlNzJiMDRmNDA4OGIxOTBjCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyA3IDE2OjE3OjA2IDIwMDcgKzA4MDAKCiAgICBBZGQgQ09ORklHX0JJT1NFTVUgZGVmaW5lIHRvIGd1YXJkIGFsbCB0aGUgYmlvcyBlbXVsYXRvciBjb2RlCgogICAgVGhpcyBwYXRjaCBmaXggdGhlIGNvbXBpbGUgaXNzdWUgb24gdGhlIGJvYXJkIHRoYXQgZGlkIG5vdCBlbmFibGUgdGhlIGJpb3MgZW11bGF0b3IKCmNvbW1pdCBiZjEwNjBlYTRmOWVhYTdlN2QxNjRhNzBhN2Q2ZjI4OTM5ODgyMDUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyA3IDE2OjAyOjEzIDIwMDcgKzAyMDAKCiAgICBGaXggbWlzc2luZyBicmFjZSBlcnJvciBpbiBmcy9mYXQvZmF0LmMKICAgIFtwb2ludGVkIG91dCBieSBSb2RlcmlrIFdpbGRlbmJ1cmddCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3MDY3MTRkOTdhMGQwOGQ1OWVkYTRkZTIyNjhjMzlmNTA0Njg4MzI5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gQXVnIDYgMjM6NDE6NTMgMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlbW92ZSBjdXRlIGNvZGUKCmNvbW1pdCBmNTAwZDlmZGViNTc2Mjg4NjU2ZGFjNDI3MDUyYWQyYzVjYTBhZDFhCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gQXVnIDYgMjM6MzU6MjYgMjAwNyArMDIwMAoKICAgIFtGSVhdIEZpeCByb21mcyBjb2RlCgpjb21taXQgYWI0Yjk1NmQzMTQzZjhmODE3NDA4OTA1M2Y1ZGZhYmJiMDQ3NjJiMApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEF1ZyA2IDIzOjMxOjQ5IDIwMDcgKzAyMDAKCiAgICBbRklYXSBDb2Rpbmcgc3R5bGUgY2xlYW51cCAtIFdvbGZnYW5nJ3Mgc3VnZ2VzdGlvbnMKCmNvbW1pdCA2YzMzYzc4NTU3Y2E2ZjhkYTY4YzAxY2UzM2UyNzg2OTUxOTdkM2Y0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyA2IDIzOjIxOjA1IDIwMDcgKzAyMDAKCiAgICBGaXhlZCB0eXBvIGluIFJFQURNRSAocG9pbnRlZCBvdXQgYnkgTWFydGluIEpvc3QpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTM3MjIzYWZhNjFmNjQ0ODBkZjMxY2U0NDBhOWNiMzg2ZGY0YTgxNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyA2IDIxOjEwOjE3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBTUNDIEJhbWJvbyBSRUFETUUgZG9jL1JFQURNRS5iYW1ib28KCiAgICBBcyBzdWdnZXN0ZWQgYnkgRXVnZW5lIE8nQnJpZW4gPEV1Z2VuZS5PJ0JyaWVuQGFkdmFudGVjaGFtdC5jb20+LAogICAgaGVyZSBhbiB1cGRhdGVkIEJhbWJvbyBSRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDljN2U0YjA2MjE0ZGI2MWJiMjFmMWJjYmU1N2M5NzUxOTY2OWJhYWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDYgMDI6MTc6MzYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjIxODM4Y2M3ZWIxNzgzNzBmZjYyYWEwNTkyMGE1ODJlMTJhYzMyMgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6MDM6MjIgMjAwNyArMDgwMAoKICAgIFJlbW92ZSB0aGUgYmlvcyBlbXVsYXRvciBmcm9tIE1BSSBib2FyZC4KCiAgICBUaGUgYmlvcyBlbXVsYXRvciBpbiB0aGUgTUFJIGJvYXJkIGNhbiBub3QgcGFzcyBjb21waWxlCiAgICBhbmQgaGF2ZSBhIGxvdCBvZiBjcmFwIGluIGl0LiByZW1vdmUgaXQgYW5kIHdpbGwgaGF2ZSBhCiAgICBjbGVhbiBhbmQgc21hbGwgYmlvcyBlbXVsYXRvciBpbiB0aGUgZHJpdmVycyBkaXJlY3RvcnkKICAgIHdoaWNoIGNhbiBiZSB1ZXNlZCBmb3IgZXZlcnkgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NjE4MzMyNDA5YmI5NmY0NDQ4ZDE3MTI4OTkzNjlmYzgwYzBiNDg5CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAxMyAxMjoxNDo1OSAyMDA3ICswODAwCgogICAgRml4IHNvbWUgY29tcGlsZSBpc3N1ZXMgZm9yIE1BSSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBmNDYwYTFlZTE0OGI2NDhlZTI0MmMzMTU3NjUwMjg3ZDQyOTYyNjAKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDEzIDEyOjE0OjU4IDIwMDcgKzA4MDAKCiAgICBDb25maWd1cmF0aW9ucyBmb3IgQVRJIHZpZGVvIGNhcmQgQklPUyBlbXVsYXRvcgoKICAgIFRoaXMgcGF0Y2ggYWRkIGRlZmluaXRpb24gb2YgdGhlIEJJT1MgZW11bGF0b3IgYW5kIHRoZSBBVEkgZnJhbWVidWZmZXIKICAgIGRyaXZlciBmb3IgTVBDODY0MUhQQ04gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWNlOTJmODUwNTNiOGRmNjEzZWRjZjA1YjI2YTQxNmNiYzNkNjI5YwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgNiAwODozNDo1NiAyMDA3ICswODAwCgogICAgVGhpcyBpcyBhIEJJT1MgZW11bGF0b3IsIHBvcnRpbmcgZnJvbSBTY2lUZWNoIGZvciB1LWJvb3QsIG1haW5seSBmb3IKICAgIEFUSSB2aWRlbyBjYXJkIEJJT1MuIGFuZCBjYW4gYmUgdXNlZCBmb3IgeDg2IGNvZGUgZW11bGF0aW9uIGJ5IHNvbWUKICAgIG1vZGlmaWNhdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MDcyMTg4YWNhYmRlMzE3OGZhYzdmNWE1OTcxNTBlNmU3NGZkNDBjCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCA2IDA4OjMzOjMzIDIwMDcgKzA4MDAKCiAgICBUaGlzIGlzIGEgZnJhbWVidWZmZXIgZHJpdmVyIGZvciBBVEkgdmlkZW8gY2FyZCwgY2FuIHdvcmsgZm9yIFBDSTkyMDAsCiAgICBYMzAwLCBYNzAwLCBYODAwIEFUSSB2aWRlbyBjYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NzI4YmUzODllNjVmZDQ3ZjM0YjMzYzI1OTYyNzFlYjRkYjc1MWFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyA2IDAxOjAxOjQ5IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDgwOTJmZWY0YzI5YjM5NTk1OGJiNjQ5NjQ3ZGE3ZTM3NzU3MzE1MTcKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxNYXJ0aW4uS3JhdXNlQHRxcy5kZT4KRGF0ZToJVHVlIERlYyAxMiAxNDoyNjowMSAyMDA2ICswMTAwCgogICAgQWRkIGZ1bmN0aW9ucyB0byBsaXN0IG9mIGV4cG9ydGVkIGZ1bmN0aW9ucwoKICAgIEFkZGl0aW9uYWxseSBleHBvcnQgdGhlIGZvbGxvd2luZyBmdWN0aW9ucyAodG8gbWFrZSB0cmFiX2NvbmZpZyBidWlsZCBhZ2Fpbik6CiAgICAtIHNpbXBsZV9zdHJ0b2woKQogICAgLSBzdHJjbXAoKQoKICAgIEFsc28gYnVtcCB0aGUgQUJJIHZlcnNpb24gdG8gcmVmbGVjdCB0aGlzIGNoYW5nZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDYzY2VjNTgxNGZhYjVkMmIxYzg2OTgyMzI3NDMzODA3YTVhYzAyNDkKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDIgMTQ6MDk6NDkgMjAwNyAtMDUwMAoKICAgIE1ha2UgTVBDODY0MSdzIFBDSS9QQ0ktRSBkcml2ZXIgYSBjb21tb24gZHJpdmVyIGZvciBtYW55IEZTTCBwYXJ0cy4KCiAgICBBbGwgb2YgdGhlIFBDSS9QQ0ktRXhwcmVzcyBkcml2ZXIgYW5kIGluaXRpYWxpemF0aW9uIGNvZGUgdGhhdAogICAgd2FzIGluIHRoZSBNUEM4NjQxSFBDTiBwb3J0IGhhcyBub3cgYmVlbiBtb3ZlZCBpbnRvIHRoZSBjb21tb24KICAgIGRyaXZlcnMvZnNsX3BjaV9pbml0LmMuICBJbiBhIHN1YnNlcXVlbnQgcGF0Y2gsIHRoaXMgd2lsbCBiZQogICAgdXRpbGl6ZWQgYnkgdGhlIDg1eHggcG9ydHMgYXMgd2VsbC4KCiAgICBDb21tb24gUENJLUUgSU1NQVAgcmVnaXN0ZXIgYmxvY2tzIGZvciBGU0wgODV4eC84Nnh4IGFyZSBhZGRlZC4KCiAgICBBbHNvIGVuYWJsZSB0aGUgc2Vjb25kIFBDSS1FeHByZXNzIGNvbnRyb2xsZXIgb24gODY0MQogICAgYnkgZ2V0dGluZyBpdHMgQkFUUyBhbmQgQ0ZHXyBzZXR1cCByaWdodC4KCiAgICBGaXhlZCBhIHUxNiB2ZW5kb3IgY29tcGlsZXIgd2FybmluZyBpbiBBSENJIGRyaXZlciB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEyNzRjYTRmNmQ2ODgzMGU3YzkxNmY4OTc1NjFjZmY4YzQxMDFjMzgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBBdWcgNSAyMjozMzowNSAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ29kaW5nIHN0eWxlIGNsZWFudXAKCmNvbW1pdCBhZjgzNzdkNGViM2EwYWM1YTgzMTgzMGQ1Y2U2M2ZiZjY1ZmVjYjdmCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gQXVnIDUgMTY6MTM6MzEgMjAwNyArMDIwMAoKICAgIFtGSVhdIFhpbGlueCBVYXJ0bGl0ZSBkcml2ZXIKICAgIEJlY2F1c2UgUFBDNDA1IGNhbiB1c2UgVUFSVExJVEUgc2VyaWFsIGludGVyZmFjZSBhbmQKICAgIE1pY3JvYmxhemUgY2FuIHVzZSBVYXJ0MTY1NTAgc2VyaWFsIGludGVyZmFjZSBub3Qgb25seSBVYXJ0bGl0ZS4KCmNvbW1pdCA5ODg4OWVkZDUwYWFkZjg2MjA3MWViNTY2NDc0N2FkMGQ1NjhhMjBlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gQXVnIDUgMTU6NTQ6NTMgMjAwNyArMDIwMAoKICAgIFtGSVhdIENoYW5nZSBjb25maWd1cmF0aW9uIGZvciBYVVBWMlAgTWljcm9ibGF6ZSBib2FyZAoKY29tbWl0IDUzNzA5MWI0ZWVkOTMwMjg2NWQwM2ZlZjNmNzIxMmI0ZmU1Y2YyOGYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBBdWcgNSAxNTo1Mzo1MCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBBZGRlZCBzdXBwb3J0IGZvciBYaWxpbnggRW1hYyBjb21tdW5pdHkgZHJpdmVyCgpjb21taXQgODZiMTE2YjFiMWUxNjVjYTQ4NDBkYWVmZWQzNmQyZTNiODQ2MDE3MwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBdWcgMyAxMjowODoxNiAyMDA3ICswMjAwCgogICAgY20xX3FwMSAtPiBjbTUyMDA6IHNpbmdsZSBVLUJvb3QgaW1hZ2UgZm9yIG1vZHVsZXMgZnJvbSB0aGUgY201MjAwIGZhbWlseS4KCiAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIG1vZHVsZXMgZnJvbSB0aGUgU2NoaW5kbGVyIGNtNTIwMCBmYW1pbHkgdG8gdXNlIGEKICAgIHNpbmdsZSBVLUJvb3QgaW1hZ2U6CiAgICAtIHJlbmFtZSBjbTFfcXAxIHRvIGNtNTIwMAogICAgLSBhZGQgcnVuLXRpbWUgbW9kdWxlIGRldGVjdGlvbgogICAgLSBwYXJhbWV0cml6ZSBTRFJBTSBjb25maWd1cmF0aW9uIGFjY29yZGluZyB0byB0aGUgbW9kdWxlIHdlIGFyZSBydW5uaW5nIG9uCgogICAgRmV3IG1pbm9yLCBib2FyZC1zcGVjaWZpYyBmaXhlcyBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoOgogICAgLSBiZXR0ZXIgTUFDIGFkZHJlc3MgaGFuZGxpbmcKICAgIC0gdXBkYXRlZCBkZWZhdWx0IGVudmlyb25tZW50ICgndXBkYXRlJyBjb21tYW5kIHVzZXMgK3tmaWxlc2l6ZX0gbm93KQogICAgLSBpbXByb3ZlZCBlcnJvciBtZXNzYWdlcyBpbiB0aGUgYXV0by11cGRhdGUgY29kZQogICAgLSBhbGxvdyBib290aW5nIFUtQm9vdCBmcm9tIFJBTSAoQ0ZHX1JBTUJPT1QpCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjN2U3MTdlYmMyYjA0NGQ3YTcxMDYyNTUyYzlkYzBmNTRlYTliNzc5CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDMgMDQ6MDU6MjUgMjAwNyAtMDUwMAoKICAgIEFkZCBNYXJ2ZWxsIDExNDkgUEhZIHN1cHBvcnQgdG8gdGhlIFRTRUMKCmNvbW1pdCBiMWI1NGUzNTIwMjhlZDM3MGMzYWE5NWQ2ZmRlYjlkNjRjNWQyZjg2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyIDIxOjI3OjQ2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjNlMjI3NjRkMmY4NjUzZjY4ODg4YzY2N2ViNjViMzk5NmI1MjY4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMiAxMDoxMToxOCAyMDA3ICswMjAwCgogICAgTWlub3IgY2xlYW51cCBvZiA8Ym9hcmQ+X25hbmQgYnVpbGQgcnVsZXMuCgpjb21taXQgOWNhOGQ3OWRlMDk2YzY1YjliOWM4NjcyNTliM2ZmNDY4NWY3NzVlZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyIDA4OjMzOjU2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvZGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjOTI0MDk4MTIyMDZhYzY3YTdmYTdhYWUyOTg1MzlhOWMzODA0YTQ2CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKdWwgMzEgMTg6NTE6NDggMjAwNyArMDIwMAoKICAgIFtwcGM0NDBTUGVdIEdyYWNlZnVsIHJlY292ZXJ5IGZyb20gbWFjaGluZSBjaGVjayBkdXJpbmcgUENJZSBjb25maWd1cmF0aW9uCgogICAgRHVyaW5nIGNvbmZpZyB0cmFuc2FjdGlvbnMgb24gdGhlIFBDSWUgYnVzIGFuIGF0dGVtcHQgdG8gc2NhbiBmb3IgYQogICAgbm9uLWV4aXN0ZW50IGRldmljZSBjYW4gbGVhZCB0byBhIG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9uIHdpdGggY2VydGFpbgogICAgcGVyaXBoZXJhbCBkZXZpY2VzLiBJbiBvcmRlciB0byBhdm9pZCBjcmFzaGluZyBpbiBzdWNoIHNjZW5hcmlvcyB0aGUKICAgIGluc3RydW1lbnRlZCB2ZXJzaW9ucyBvZiB0aGUgY29uZmlnIGN5Y2xlIHJlYWQgcm91dGluZXMgYXJlIGludHJvZHVjZWQsIHNvCiAgICB0aGUgZXhjZXB0aW9ucyBmaXh1cHMgZnJhbWV3b3JrIGNhbiBncmFjZWZ1bGx5IHJlY292ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkZWM5OTU1OGI5ZWE3NWEzNzk0MGQwN2Y0MWEzNTY1YTUwYjU0YWQxCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEp1bCAzMSAxODoxOTo1NCAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gU2VwYXJhdGUgc2V0dGluZ3MgZm9yIFBDSWUgYnVzIG51bWJlcmluZyBvbiA0NDBTUGUgcmV2LkEKCiAgICBUaGlzIGJyaW5ncyBiYWNrIHNlcGFyYXRlIHNldHRpbmdzIGZvciBQQ0llIGJ1cyBudW1iZXJzIGRlcGVuZGluZyBvbiBjaGlwCiAgICByZXZpc2lvbiwgd2hpY2ggZ290IGVsaW1pbmF0ZWQgaW4gMmIzOTNiMGYwYWY4NDAyZWY0M2IyNWMxOTY4YmZkMjk3MTRkZGZmYQogICAgY29tbWl0LiA0NDBTUGUgcmV2LiBBIGRvZXMgTk9UIHdvcmsgcHJvcGVybHkgd2l0aCB0aGUgc2FtZSBzZXR0aW5ncyBhcyBmb3IKICAgIHRoZSByZXYuIEIgKG5vIGRldmljZXMgYXJlIHNlZW4gb24gdGhlIGJ1cyBkdXJpbmcgZW51bWVyYXRpb24pLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgY2RkOTE3YTQzZGE2ZmE3ZmM4ZjU0YTNjYzlmNDIwY2U1ZWNmMzE5NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMiAwMDo0ODo0NSAyMDA3ICswMjAwCgogICAgRml4IGJ1aWxkIGVycm9ycyBhbmQgd2FybmluZ3MgLyBjb2RlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkMmY2ODAwNjYyN2VkYTZjYjZjN2YzNjRiZGRmNjIxZGJmZDJmYzY4CkF1dGhvcjogRXVnZW5lIE9CcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgpEYXRlOglUdWUgSnVsIDMxIDEwOjI0OjU2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBTUNDIEJhbWJvbyA0NDBFUCBzdXBwb3J0CgogICAgQ2hhbmdlZCBzdG9yYWdlIHR5cGUgb2YgY2ZnX3NpbXVsYXRlX3NwZF9lZXByb20gdG8gY29uc3QKICAgIENoYW5nZWQgc3RvcmFnZSB0eXBlIG9mIGdwaW9fdGFiIHRvIHN0YWNrIHN0b3JhZ2UKICAgIChDYW5ub3QgYWNjZXNzIGdsb2JhbCBkYXRhIGRlY2xhcmF0aW9ucyBpbiAuYnNzIHVudGlsIGFmZXIgY29kZSByZWxvY2F0aW9uKQoKICAgIEltcHJvdmVkIFNEUkFNIHRlc3RzIHRvIGNhdGNoIHByb2JsZW1zIHdoZXJlIGRhdGEgaXMgbm90IHVuaXF1ZWx5IGFkZHJlc3NhYmxlCiAgICAoZS5nLiBpbmNvcnJlY3RseSBwcm9ncmFtbWVkIFNEUkFNIHJvdyBvciBjb2x1bW5zKQoKICAgIEFkZGVkIENPTkZJR19QUk9HX1NEUkFNX1RMQiB0byBzdXBwb3J0IEJhbWJvbyBTSU1NL0RJTU0gbW9kdWxlcwogICAgRml4ZWQgQU0yOUxWMzIwRFQgKE9wQ29kZSBGbGFzaCkgc2VjdG9yIG1hcAoKICAgIFNpZ25lZC1vZmYtYnk6IEV1Z2VuZSBPQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYTlmNmJjZTM4M2NjOWZiY2RlZTI4YjU4MzYxMDliMWE2ZGJhNTc0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDMxIDA4OjM3OjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NDBFUHggbHdtb241IGJvYXJkIHN1cHBvcnQKCiAgICAtIENsZWFyIEVDQyBzdGF0dXMgcmVncyBhZnRlciBFQ0MgUE9TVCB0ZXN0CiAgICAtIFNldCBkY2J6IGZvciBFQ0MgZ2VuZXJhdGlvbiB3aXRoIGNhY2hlcyBlbmFibGVkIGFzIGRlZmF1bHQKICAgIC0gQ29kZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI3YTUyOGZiNDE0MzNjNGMxZTJiNWQ2YmQzZmQ4ZDc4NjA2ZmM3MjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMzAgMTE6MDQ6NTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogT25seSBwcmludCBFQ0MgcmVsYXRlZCBpbmZvIHdoZW4gdGhlIGVycm9yIGJpcyBhcmUgc2V0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUzNjIyMGE0YmFmMWYxODhiYTYwZjE3ZTlkMGYwNDMwNjliMTM2MmEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAxNjo0NDozMSAyMDA3ICswMjAwCgogICAgbmV3IEZQR0EgaW1hZ2UgZm9yIFBMVTQwNSBib2FyZAoKICAgIG5ldyBGUEdBIGltYWdlIGZvciBQTFU0MDUgYm9hcmQgd2l0aCBpbXByb3ZlZCBDb21wYWN0Rmxhc2ggdGltaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgODk5M2U1NGI2ZjM5Nzk3Mzc5NGYzZDZmNDdkM2IzYzBjOThkZDRmNgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMTQ6NDM6NTkgMjAwNyArMDIwMAoKICAgIFtBRFM1MTIxXSBTdXBwb3J0IGZvciB0aGUgQURTNTEyMSBib2FyZAoKICAgIFRoZSBmb2xsb3dpbmcgTVBDNTEyMWUgc3Vic3lzdGVtcyBhcmUgc3VwcG9ydGVkOgoKICAgIC0gbG93LWxldmVsIENQVSBpbml0CiAgICAtIE5PUiBCb290IEZsYXNoIChjb21tb24gQ0ZJIGRyaXZlcikKICAgIC0gRERSIFNEUkFNCiAgICAtIEZFQwogICAgLSBJMkMKICAgIC0gV2F0Y2hkb2cKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gV3JvYmVsIDx3cnJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDE4NjNjZmI3YjEwMGJhMGVlMzQwMTc5OTQ1N2EwMWRjMDU4NzQ1ZjgKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVsIDI3IDE0OjIyOjA0IDIwMDcgKzAyMDAKCiAgICBbUFBDXSBSZW1vdmUgdW51c2VkIE1TUl9VU0VSIGRlZmluaXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQ0MDI0YmI3MmRkODE2OTVlYzA5OWIyMTk5ZWRhMGQyN2M2MjNlNjIKQXV0aG9yOiBKb2huIE90a2VuIDxqb2huQHNvZnRhZHZhbmNlcy5jb20+CkRhdGU6CVRodSBKdWwgMjYgMTc6NDk6MTEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHN1cHBvcnQgZm9yIEFNQ0MgNDA1RVAgVGFpaHUgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIE90a2VuIDxqb2huQHNvZnRhZHZhbmNlcy5jb20+Cgpjb21taXQgYjY2MDkxZGU2YzczOTA2MjAzMTJjMjUwMWRiMjNkODM5MWU3Y2FiYgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAyNiAxNTowODowMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IFVwZGF0ZSBMaW1lIGluaXRpYWxpemF0aW9uCgogICAgQ2hhbmdlIExpbWUgU0RSQU0gaW5pdGlhbGl6YXRpb24gdG8gbm93IHN1cHBvcnQgMTAwTUh6IGFuZAogICAgMTMzTUh6IChpZiBlbmFibGVkKS4gQWxzbyB0aGUgZnJhbWVidWZmZXIgaXMgaW5pdGlhbGl6ZWQgdG8KICAgIGRpc3BsYXkgYSBibHVlIHJlY3RhbmdsZSB3aXRoIGEgd2hpdGUgYm9yZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZjI0YTgwOGYxN2ZjMGYzN2I3ZmI0ODA1ZjczNDc0MTMzNWNhZWNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDI0IDA5OjUyOjUyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogU3VwcG9ydCBmb3IgMTI4IE1CeXRlIE5PUiBGTEFTSCBhZGRlZAoKICAgIFRoZSB1c2VkIEludGVsIE5PUiBGTEFTSCBjaGlwcyBoYXZlIGludGVybmFsbHkgdHdvIGRpZXMsIGFuZCBhcmUgbm93CiAgICB0cmVhdGVkIGFzIHR3byBzZXBlcmF0ZSBjaGlwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWVkZjViZGUxNzllY2ZiZDBhOTYxMzBkMTg5OTZhOTY1MThiNzg1ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAyNCAwNzoyMDowOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggbHdtb241IGludGVycnVwdCBjb250cm9sbGVyIHNldHVwIChwb2xhcml0eSwgdHJpZ2dlci4uLikKCiAgICBBcyBzdWdnZXN0ZWQgYnkgSGFrYW4gRXJ5aWdpdCwgaGVyZSBhbiB1cGRhdGVkIHNldHVwIGZvciB0aGUgbHdtb241CiAgICBpbnRlcnJ1cHQgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTcxZDk2ZWFjODEzMGI1M2E5MWY5M2NkMTBjNzBmY2EwZGIxOGQ1MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAyMCAxNTowMzo0NCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggYnVnIHdpdGggZGVmYXVsdCBHUElPIG91dHB1dCB2YWx1ZQoKICAgIEFzIHNwb3R0ZWQgYnkgTWF0dGhpYXMgRnVjaHMsIHRoZSBkZWZhdWx0IG91dHB1dCB2YWx1ZXMgZm9yIGFsbCBHUElPMQogICAgb3V0cHV0cyB3ZXJlIG5vdCBzZXR1cCBjb3JyZWN0bHkuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTMxZTNlOGI4MzFmMzU3MDU2NDQ4ZmE1NzMxMzdkNWZiMzcwMDBmZApBdXRob3I6IFBhdmVsIEtvbGVzbmlrb3YgPGNvbmNvcmRAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBKdWwgMjAgMTU6MDM6MDMgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCBFQ0MgUE9TVCBmb3IgdGhlIGx3bW9uNSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBFQ0MgUG9zdCB0ZXN0IGZvciB0aGUgTHdtb241IGJvYXJkIGJhc2VkCiAgICBvbiBQUEM0NDBFUHggdG8gVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdmVsIEtvbGVzbmlrb3YgPGNvbmNvcmRAZW1jcmFmdC5jb20+CiAgICBBY2tlZC1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYzMwMjNiOWY5NWQ3YWM5NTlhNzY0NDcxYTY1MDAxMDYyYWVjZjQxCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEp1bCAxOSAxNzoxMjoyOCAyMDA3ICswMjAwCgogICAgRml4IGJyZWFrYWdlIG9mIDh4eCBib2FyZHMgZnJvbSByZWNlbnQgY29tbWl0LgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIG5lZ2F0aXZlIGNvbnNlcXVlbmNlcyBmb3IgOHh4IG9mIHRoZSByZWNlbnQKICAgICJwcGM0eHg6IENsZWFuIHVwIDQ0MCBleGNlcHRpb25zIGhhbmRsaW5nIiBjb21taXQuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjODgzZjZlYTMyZGNlOTFmMDc2NzBiM2FhZmVjZjZjOTliMWU1MzQxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDEzOjExOjEyIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ODQ4ZWM4NThmNzRlZDZkYWIwNmZiNmQ1ZGRjOTMzZTBhMTMyOGJmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDEwOjAyOjEyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvZGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyYTQ5ZmMxN2QwOTAyMGU3ZWJkOTUzNjY5NGQ5OWQyMGU0MTlmY2I4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE2IDEwOjAxOjM4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFNQ0MgTHVhbiB1c2VzIHRoZSBuZXcgYm9hcmRzcGVjaWZpYyBERFIyIGNvbnRyb2xsZXIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGYzZjE3NDIyYWViMDNmYjgxYTdhYzhjNzhkMmIwNWQwNWFhNGNmOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAxMDowMDo0MyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBTdXBwb3J0IGZvciBZdWNjYSBib2FyZCB3aXRoIDQ0MFNQZSBSZXYgQSBhZGRlZCB0byA0NHhfc3BkX2RkcjIuYwoKICAgIFRoZSBuZXcgYm9hcmRzcGVjaWZpYyBERFIyIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBpcyB1c2VkIGZvciB0aGUgWXVjY2EKICAgIGJvYXJkLiBOb3cgdGhlIFl1Y2NhIGJvYXJkIHdpdGggNDQwU1BlIFJldi4gQSBjaGlwcyBpcyBhbHNvIHN1cHBvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmVkMTRhZGRmOTdjOGNkOGY1MzFlOWFlN2IyZDNlMjIyZmZmZDUzZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAwOTo1NzowMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgbmV3IHdlYWsgZnVuY3Rpb25zIHRvIHN1cHBvcnQgYm9hcmRzcGVjaWZpYyBERFIyIGNvbmZpZ3VyYXRpb24KCiAgICBUaGUgbmV3ICJ3ZWFrIiBmdW5jdGlvbnMgZGRyX3dyZHRyKCkgYW5kIGRkcl9jbGt0cigpIGFyZSBhZGRlZCB0byBiZXR0ZXIKICAgIHN1cHBvcnQgbm9uIGRlZmF1bHQsIGJvYXJkc3BlY2lmaWMgRERSKDIpIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTc0M2E5MjA3YTM3MGI5MGYwOWIyMGViZDYxMTY3YzgwNmI5MzdmMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAwODo1Mzo1MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcmVtb3ZlX3RsYigpIGZ1bmN0aW9uIHRvIHJlbW92ZSBhIG1lbSBhcmVhIGZyb20gVExCIHNldHVwCgogICAgVGhlIG5ldyBmdW5jdGlvbiByZW1vdmVfdGxiKCkgY2FuIGJlIHVzZWQgdG8gcmVtb3ZlIHRoZSBUTEIncyB1c2VkIHRvCiAgICBtYXAgYSBzcGVjaWZpYyBtZW1vcnkgcmVnaW9uLiBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsIGZvciB0aGUgRERSKDIpCiAgICBzZXR1cCByb3V0aW5lcyB3aGljaCBjb25maWd1cmUgdGhlIFNEUkFNIGFyZWEgdGVtcG9yYXJpbHkgYXMgYSBjYWNoZWQKICAgIGFyZWEgKGZvciBzcGVlZHVwIG9uIGF1dG8tY2FsaWJyYXRpb24gYW5kIEVDQyBnZW5lcmF0aW9uKSBhbmQgbGF0ZXIKICAgIG5lZWQgdGhpcyBhcmVhIHVuY2FjaGVkIGZvciBub3JtYWwgdXNhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBjMGE5Y2RhMWJkZTM3MTA2NTIwNDc2ZWQ0ODZiZDY3ZWI4ZDMwYWUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBKdWwgMTYgMDA6MzE6MDcgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gU3VwcG9ydCBmb3IgWGlsaW54IEVtYWNMaXRlIGNvbnRyb2xsZXIKCmNvbW1pdCAzYTZjYWI4NDRjZjc0Zjc2NjM5ZDc5NWUwYmU4NzE3ZTAyYzg2YWY3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEp1bCAxNCAyMjo1MTowMiAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTI4MGYzNTJjOGRhMzNiMWQ3ZmJmNDQ4NzY4NzE3ZDllMTZmZjlhMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEp1bCAxNCAxMzoxMToyOCAyMDA3ICswMjAwCgogICAgW0ZJWF0gc3VwcG9ydCBmb3Igc2ltcGx5IG1lYXN1cmluZyB0aW1lCgpjb21taXQgOTFiYjRjYTY2NWQyZTBjZjdmNjBjNGI1YjM3MDk5MDI1MGVjMGM0MwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEp1bCAxNCAxMjo0MToyMyAyMDA3ICswMjAwCgogICAgW0ZTXSBBZGRlZCBzdXBwb3J0IGZvciBST01GUwoKY29tbWl0IDAxMTU5NTMwNzczMWE3YTY3YTc0NDVkMTA3YzI3OWQwMzFlOGFiOTcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBKdWwgMTQgMDE6MDY6NTggMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JLSBmaXggY29tcGlsZSBlcnJvciwgaWYgQlVJTERfRElSIGlzIHVzZWQKCmNvbW1pdCA1YTJmMTA5OGQ4MWFkNThiMzA5ZTVlNTU4ZDA0OTI2NDMxNjZhNzk5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgSnVsIDE0IDAwOjE4OjQ4IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFN1cHBvcnQgdGltZSB3aXRob3V0IHRpbWVyCgpjb21taXQgYTQ3NmNhMmFjMjIxN2RkZDA1YTJiZjBjNTE0MDc1ODE0YjEwYTNjMApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIEp1bCAxMyAyMTo0Mzo1NSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBSZW1vdmUgcHJvYmxlbSB3aXRoIGRpc2FibGVkIEJBUlJFTCBTSElGVEVSCgpjb21taXQgNTVlMjZhZDYyMTA3ZDJmMTRmNzU3ZGUzYWUwYjE0YjlhYTdhZWQ5NApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIEp1bCAxMyAyMTo0MTo0NCAyMDA3ICswMjAwCgogICAgW0ZJWF0gY29ycmVjdCBoZWxwIGZvciByc3ByCgpjb21taXQgZmFkNjM0MDcxNTRmNDYyNDZjZTgwZDUzYTljNjY5YTQ0MzYyYWM2NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMyAwOTo1NDoxNyAyMDA3ICswMjAwCgogICAgbWFrZSBzaG93X2Jvb3RfcHJvZ3Jlc3MgKCkgd2Vhay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA5MDc5MDI0NzIzOTFiNmNhMTg3NmVjMzAwNjg3NTYyZWNhZjQ1OWIxCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSnVsIDEzIDA4OjI2OjA1IDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCS0gVGhlIERJQUcgTEVEcyBhcmUgbm93IGJsaW5raW5nLCBpZiBhbiBlcnJvciBvY2N1cgoJCS0gZml4IGNvbXBpbGUgZXJyb3IsIGlmIEJVSUxEX0RJUiBpcyB1c2VkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYTJlMWM3MDk4Y2Y5NTc0Mzg2YjBjOTY4NDFkZmM4ZWE1Y2M5MzU3OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMiAxNjozMjowOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgcmVjZWl2ZSBidWZmZXIgaGFuZGxpbmcgaW4gdGhlIDR4eCBlbWFjIGRyaXZlcgoKICAgIFRoaXMgY2hhbmdlIGZpeGVzIGEgYnVnIGluIHRoZSByZWNlaXZlIGJ1ZmZlciBoYW5kbGluZywgdGhhdAogICAgY291bGQgbGVhZCB0byBwcm9ibGVtcyB1cG9uIGhpZ2ggbmV0d29yayB0cmFmZmljIChicm9hZGNhc3RzLi4uKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjM5ZjA1ZWU0ZGQ0Y2ZlMGI1MGYyNTFiNTMzZGNlYmU5ZTY3YzM2MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTIgMDE6NDU6MzQgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0csIG1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWE1NmFmM2I1MjJiYTQ3ZmIzM2EzZmVlODRkMjNiZjFlNTQyOTY1NApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1biA4IDE2OjQxOjE4IDIwMDcgLTA1MDAKCiAgICBSZW1vdmUgZXJyb25lb3VzIGVycmF0YSBjb2RlIGZyb20gTWFydmVsIDg4RTExMTFTIGRyaXZlcgoKICAgIFRoZSBNYXJ2ZWwgODhFMTExMVMgZHJpdmVyIGZvciB0aGUgVFNFQyB3YXMgY29waWVkIGZyb20gdGhlCiAgICA4OEUxMTAxIGRyaXZlciwgYW5kIGluY2x1ZGVkIGEgZml4IGZvciBhbiBlcnJhdHVtIHdoaWNoIGRvZXMgbm90CiAgICBleGlzdCBvbiB0aGF0IHBhcnQuICBOb3cgaXQgaXMgcmVtb3ZlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ODJlZmNmMjNmZDAzNjQ3ZTAxZTJmYmUyOGE3YTM2MjM5MTU2Y2MwCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDUgMTY6Mzg6NDQgMjAwNyAtMDUwMAoKICAgIEZyb206IGVyYW4gbGliZXJ0eSA8ZXJhbi5saWJlcnR5QGdtYWlsLmNvbT4KCiAgICBhZGRzIHRoZSByZXNldCByZWdpc3RlciB0byA4NXh4IGltbWFwCgogICAgU2lnbmVkLW9mZi1ieTogRXJhbiBMaWJlcnR5IDxlcmFuLmxpYmVydHlAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzZWMwZDk0M2EwNDViZGI5OWUxNTllN2JiYzc3NDMwZTA5ZjExZDcKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXkgMTAgMTc6NTA6MDEgMjAwNyAtMDUwMAoKICAgIFBvbGlzaGVkIHRoZSA4NXh4IEFEUyBjb25maWcgZmlsZXMKCiAgICBNYWRlIHRoZSBib290IGNvbW1hbmRzIHVzZSBkZXZpY2UgdHJlZXMgYnkgZGVmYXVsdC4KICAgIEFsc28gbW92ZWQgdGhlIHJhbWRpc2sgdG8gMTAwMDAwMCAoSSB0aGluayB0aGUgcHJldmlvdXMgYWRkcmVzcwogICAgd2FzIGdldHRpbmcgb3ZlcnJpZGRlbiBkdXJpbmcgYm9vdCkuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmYjM3YjMyZDFiMGIwM2YxODA3N2RiYTQ5Y2M2NmE2ZTc2ZmEwMzgKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6MDM6MzIgMjAwNyAtMDUwMAoKICAgIDg1NDRkczogRml4IE1ha2VmaWxlIGFmdGVyIG1vdmluZyBwaXhpcyB0byBib2FyZC9mcmVlc2NhbGUuCgogICAgVGhlIE9CSlRSRUUgIT0gU1JDVFJFRSBidWlsZCBzY2VuYXJpbyB3YXMgYnJva2VuLgogICAgVGhpcyBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYTNjZWU0M2MzYjcxZmE1YjhkOTFkYjE5ZjA1MDY3ODY1MjkwZjNlCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDkgMDA6NTQ6MjAgMjAwNyAtMDUwMAoKICAgIHRzZWM6IEZpeCBQSFkgY29kZSB0byBtYXRjaCBmaXJzdCBkcml2ZXIKCiAgICBKYXJyb2xkIFdlbiBub3RpY2VkIHRoYXQgdGhlIGdlbmVyaWMgUEhZIGNvZGUgYWx3YXlzIG1hdGNoZXMKICAgIHVuZGVyIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLiAgQ2hhbmdlIGl0IHNvIHRoZSBmaXJzdCBtYXRjaAogICAgd2lucywgYW5kICpvbmx5KiB1bmtub3duIFBIWXMgdHJpZ2dlciB0aGUgZ2VuZXJpYyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2NjMDkxYWFjNjFhMzhjZDk5OGQ1NzVkOTJmNzIzMmUyNTZkNjMxMgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA4IDE3OjI3OjQzIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQ1BNIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb24gdG8gODU2MCBBRFMKCiAgICAqIEFkZHMgY29kZSB0byBtb2RpZnkgQ1BNIGZyZXF1ZW5jaWVzCiAgICAqIENsZWFucyB1cCB0aGUgY29uZmlnIGZpbGUgdG8gI2RlZmluZSBUU0VDIGFuZCAoZm9yIG5vdykgI3VuZGVmIEZDQwogICAgKiBBZGRzIHRoZSBNSUkgY29tbWFuZCBmb3IgYWxsIDg1NjAgQURTIGNvbmZpZ3VyYXRpb25zCiAgICAqIFVwZGF0ZXMgY29uZmlnIGZpbGUgdG8gcHJvdmlkZSBjb252ZW5pZW5jZSBjb21tYW5kcyBmb3IgYm9vdGluZwogICAgICB3aXRoIGEgZGV2aWNlIHRyZWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBWaXRhbHkgQm9yZHVnIDx2Ym9yZHVnQHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzUwN2Q1NmNjYWY3YWFlMWM0NzQzNDJhOWE1NTQwMTY1Y2Q3ZTlkOQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA4IDE3OjIzOjAyIDIwMDcgLTA1MDAKCiAgICBGaXggTWFydmVsbCA4OGUxMTQ1IFBIWSBpbml0IGNvZGUKCiAgICBGaXggYSBidWcgaW4gdGhlIE1hcnZlbGwgODhlMTE0NSBQSFkgaW5pdCBjb2RlIGluIHRoZSBUU0VDIGRyaXZlcgogICAgd2hlcmUgdGhlIHJlc2V0IHdhcyBiZWluZyBkb25lIGFmdGVyIHRoZSBlcnJhdGEgY29kZSBpbnN0ZWFkIG9mCiAgICBiZWZvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZGMyMTBkZWM1YmFjZTk4YTUwYjZiYTkwNTM0Nzg5MDA5MWE5YmIwCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MjoxNiAyMDA3IC0wNTAwCgogICAgQWRkIHNpbXBsZSBhZ2VudC9lbmQtcG9pbnQgY29uZmlndXJhdGlvbiBpbiBQQ0kgQXV0b0NvbmZpZyBmb3IgUENJX0NMQVNTX1BST0NFU1NPUl9QT1dFUlBDLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZThiODVmM2JhNGNkODkzMGUwYTJmZWEyMTAwYzgxNWQ2NDIwMTc2NQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTI6MDggMjAwNyAtMDUwMAoKICAgIHBjaWF1dG8gc2V0dXAgYnJpZGdlCgogICAgVGhlIFAyUCBicmlkZ2UgYnVzIG51bWJlcnMgcHJvZ3JhbW1lZCBpbnRvIHRoZSBkZXZpY2UgYXJlIHJlbGF0aXZlIHRvCiAgICBob3NlLT5maXJzdF9idXNuby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU3MWY0OWZhNzE3MDA0Y2E0MjY4YjRlMjQwNTdlZmM3YmY5Zjk4N2IKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUyOjAxIDIwMDcgLTA1MDAKCiAgICBTdXBwb3J0IFBDSWUgZXh0ZW5kZWQgY29uZmlnIHJlZ2lzdGVycwoKICAgIEZTTCBQQ0llIGJsb2NrIGhhcyBleHRlbmRlZCBjZmcgcmVnaXN0ZXJzIGluIHRoZSAxMDAgYW5kIDQwMCByYW5nZS4KICAgIEZvciBleGFtcGxlLCB0byByZWFkIHRoZSBMVFNTTSByZWdpc3RlcjogcGNpIGRpc3BsYXkgPGJ1c24+LjAgNDA0IDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhNWZlYjEyNTgxYmIyOTEyY2UzMDFlNDg2NmI3MWY4NDZlOWZjMDcKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUxOjQ4IDIwMDcgLTA1MDAKCiAgICBNaW5vciBpbXByb3ZlbWVudHMgdG8gZHJpdmVycy9wY2lfYXV0by5jCgogICAgLSBNYWtlIHBjaWF1dG9fe3ByZSxwb3N0fXNjYW5fc2V0dXBfYnJpZGdlIG5vbi1zdGF0aWMKICAgIC0gQWRkZWQgcGh5c2ljYWwgYWRkcmVzcyBkaXNwbGF5IGluIGRlYnVnIG1lc3NhZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBlODFhZGRhYjdiYjc0ZDIwZGRmNjgxY2U5YmFiYzg4MGE4MjhlZQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTE6MzUgMjAwNyAtMDUwMAoKICAgIFN0YXJ0IHBjaSBob3NlIHNjYW4gZnJvbSBob3NlLT5jdXJyZW50X2J1c25vLgoKICAgIEVuc3VyZSBob3NlLT5jdXJyZW50X2J1c25vIGlzIG5vdCBsZXNzIHRoYW4gZmlyc3RfYnVzbm8uICBUaGlzIGZpeGVzCiAgICBicm9rZW4gYm9hcmQgY29kZSB3aGljaCBsZWF2ZXMgY3VycmVudF9idXNubz0wIHdoZW4gZmlyc3RfYnVzbm8gaXMKICAgIGdyZWF0ZXIgdGhhbiAwIGZvciB0aGUgY2FzZXMgd2l0aCBtdWx0aXBsZSBjb250cm9sbGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4NjViMWZiNzg0M2EwOGFkNDlhNjMxOWEzNjQxNTc1MjI3NmZmNDgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMTEgMTI6MTM6NTMgMjAwNyArMDIwMAoKICAgIEZpeCBzb21lIGNvbXBpbGUgcHJvYmxlbXMgaW50cm9kdWNlZCBieSB0aGUgbGF0ZXN0IENGR19DTURfeHh4IGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmExZGYzMDg5MjZhNmY3MGUzNTA0YzU3NTE0ZWYyN2FjMzFmZDEzYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMjA6MTE6MDcgMjAwNyArMDIwMAoKICAgIENNMS5RUDE6IFN1cHBvcnQgZm9yIHRoZSBTY2hpbmRsZXIgQ00xLlFQMSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5NmUxZDc1YmU4MTkzY2E3OWU0MjE1YTM2OGJmOWQ3ZjIzNjI0NTBmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSnVsIDExIDE4OjM5OjExIDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCS0gU2hvdyBvbiB0aGUgRElBRyBMRURzLCBpZiB0aGUgU0hBMSBjaGVjayBmYWlsZWQKCQktIG5vdyB0aGUgRmxhc2ggU1QgTTI5VzA0MEIgaXMgc3VwcG9ydGVkIChub3QgdGVzdGVkKQoJCS0gZml4IHRoZSAibGVkIiBjb21tYW5kCgkJLSBmaXggY29tcGlsZSBlcnJvciwgaWYgQlVJTERfRElSIGlzIHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBlOTUxNDc1MWNmYTVjY2U2MWVhNjk5ZmEwZDNlYjM3ODk4YTVlZWI1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gSnVsIDggMTM6NDQ6MjcgMjAwNyArMDIwMAoKICAgIEZpeCBtYWxsb2MgcHJvYmxlbSBpbnRyb2R1Y2VkIHdpdGggdGhlIHJlbG9jYXRpb24gZml4dXAgZm9yIHRoZSBQUEMgcGxhdGZvcm0KCiAgICBUaGUgcmVsb2NhdGlvbiBmaXh1cCBkaWRuJ3QgaGFuZGxlIHRoZSBtYWxsb2MgcG9pbnRlciBpbml0aWFsaXphdGlvbgogICAgY29ycmVjdGx5LiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgcHJvYmxlbS4gVGVzdGVkIHN1Y2Nlc3NmdWxseSBvbiA0eHguCiAgICBUaGUgcmVsb2NhdGlvbiBmaXh1cCBwYXRjaGVzIGZvciA0eHggd2lsbCBmb2xsb3cgc29vbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGRjYTg3NGRiNjI3MThlNDEyNTM2NTllNjBmM2ExZGU3ZWI0MThjZQpBdXRob3I6IFRzaUNodW5nIDx0Y2xpZXdAR29rdS4obm9uZSk+CkRhdGU6CVR1ZSBKdWwgMTAgMTU6NDU6NDMgMjAwNyAtMDUwMAoKICAgIENhY2hlIHVwZGF0ZSBhbmQgYWRkZWQgQ0ZHX1VOSUZZX0NBQ0hFCgogICAgRW5hYmxlZCBjYWNoZSBpbiBjcHVfaW5pdF9mKCkgZm9yIGZhc3RlciBmbGFzaCB0byBtZW0gYWxsb2NhdGlvbi4gVXBkYXRlZCBjYWNoZSBoYW5kbGluZyBpbiBzdGFydC5TLiBBcHBsaWVkIGNhY2hlIGludmFsaWRhdGUgaW4gZmVjX3NlbmQoKSBhbmQgZmVjX3JlY3YoKS4gQWRkZWQgQ0ZHX1VOSUZZX0NBQ0hFIGZvciBDRiBWMyBvbmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIDx0Y2xpZXdAR29rdS4obm9uZSk+Cgpjb21taXQgNTJiMDE3NjA0YThmNGQ0YTc5NTg4MGVmNmU3ODYxZDdmMmYxYjAwNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjM2OjE2IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUuIEluY2x1ZGUgZHRpbWVyX2ludHJfc2V0dXAoKS4gQ2hhbmdlZCB0aW1lciBkaXZpZGVyIHRvIGdsb2JhbCBkZWZpbmUuCgogICAgSW5jbHVkZSBpbW1hcC5oIGFuZCB0aW1lci5oLiBNb3ZlZCBkdGltZXIgaW50ZXJydXB0IHNldHVwIHRvIGR0aW1lcl9pbnRyX3NldHVwKCkgZnJvbSBjcHUvbWNmNTMyeC9pbnRlcnJ1cHRzLmMuIENoYW5nZWQgKENGR19DTEsgLzEwMDAwMDApIC0xIDw8IDggdG8gQ0ZHX1RJTUVSX1BSRVNDQUxFUgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1Y2RjMDdjN2VmOGYwOGVhNTVkM2M0N2VkOTIyMWQ5MWFhNmQ1ZmFjCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MzE6MjUgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZXMKCiAgICBJbmNsdWRlIGltbWFwLmggYW5kIHJlbmFtZWQgbWNmcnRjLmggdG8gcnRjLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjg3MGU5OGFjOGU1NTUzZTkxODdiMTJhNDdlNWY0NmJhYmI1Mzk5MApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjI5OjIxIDIwMDcgLTA1MDAKCiAgICBBZGQgbWNmZmVjX2luaXRpYWxpemUoKQoKICAgIEFkZGVkIG1jZmZlY19pbml0aWFsaXplKCkgaW4gZXRoX2luaXRpYWxpemUoKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NWEyNWJmZDBjNTJmOGEzZmExMzcyMTZiYzk0ZDMyZjkwYmVkYzVkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6Mjc6NDAgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZSBhbmQgY2xlYW4gdXAKCiAgICBJbmNsdWRlIGltbWFwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGNlZTljNjYzMTg2MDJjODU2YTg5OWFlNWZhNzU3OWNjYmE2NDQzYQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjIzOjE1IDIwMDcgLTA1MDAKCiAgICBOZXcgdWFydCBzdHJ1Y3R1cmUgYW5kIGRlZmluZXMKCiAgICBTZXBlcmF0ZWQgZnJvbSBtY2Z1YXJ0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTkwZTc5ZGU4ZDk5ZTljOWQ2OWQ2MGJmZmY5ZjI0YzMzNzE2NTkwMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjIyOjMxIDIwMDcgLTA1MDAKCiAgICBOZXcgdGltZXIgc3RydWN0dXJlIGFuZCBkZWZpbmVzCgogICAgU2VwZXJhdGVkIGZyb20gbWNmdGltZXIuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMDRhY2IyZWJhNDc4MjQ4OTQxNzI0MGVmZjc2ZTIwZTE3NmFlYzEwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MjE6MDkgMjAwNyAtMDUwMAoKICAgIFJlbmFtZSBtY2ZydGMgdG8gcnRjCgogICAgU2luY2UgaXQgaXMgYWxyZWFkeSBpbiBtNjhrIGZvbGRlciwgdW4tbmVjZXNzYXJ5IHRvIHBhZCBtY2YuIFJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB0byBpbW1hcC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJiZDgwNmZlNGZjMjM5NThiOGY3ODc3ODE5OWU3YTZlM2Y4ZjZhZDUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoxNzozNiAyMDA3IC0wNTAwCgogICAgUmVuYW1lIG1jZnNlcmlhbC5jLiBVcGRhdGUgaW5jbHVkZSBoZWFkZXIKCiAgICBSZW5hbWVkIG1jZnNlcmlhbC5jIHRvIG1jZnVhcnQuYy4gTW9kaWZpZWQgTWFrZWZpbGUgZm9yIG1jZnVhcnQubyBmcm9tIG1jZnNlcmlhbC5vLiBSZXBsYWNlIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB0byBpbW1hcC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYyMjA4ZmJjMmViOWRlM2Y0Mjg1YmZhYTAyMWM2ZWJhZTE2YzliMGUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoxMzo1OCAyMDA3IC0wNTAwCgogICAgSGVhZGVyIGZpbGUgdXBkYXRlLCBjbGVhbiB1cCBhbmQgY2FjaGUgaGFuZGxpbmcKCiAgICBSZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLiBJbmNsdWRlZCBjYWNoZV9pbnZhbGlkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZTNmMjVhZTkwODJkYWE5ZjVkMTgxZGI0NWRmYmMyZTUyY2UwZjk3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MTA6NDAgMjAwNyAtMDUwMAoKICAgIENyZWF0ZSBpbnRlcnJ1cHRzLmMgYW5kIG1vZGlmeSBNYWtlZmlsZQoKICAgIGludGVycnVwdF9pbml0KCkgYW5kIGR0aW1lcl9pbnRyX3NldHVwKCkgYXJlIHBsYWNlZCBpbiBpbnRlcnJ1cHRzLmMuIEFkZGVkIGludGVycnVwdHMubyB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGQxMDRmMWVkNjU1ZWRhNTBjMDZiYTYzNjIzN2E4M2VkOTQzZjM0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MDY6NTUgMjAwNyAtMDUwMAoKICAgIEVuYWJsZSBJY2FjaGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjliZjNkZTM3N2IyYmFlNzBjOTgzYzliOTdmZWFlOTE0OTk5ZTczNQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjA1OjMxIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUgYW5kIHNvbWUgY2xlYW4gdXAKCiAgICBSZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLiBSZW1vdmVkIHdoaXRlc3BhY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NGEwMTViNTJlYzgyMGE1YWUxNzM3MTdkNzg1MTZkZTczMWM4OWMyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MDM6MjggMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBoZWFkZXIgZmlsZSBhbmQgZW5hYmxlIGljYWNoZQoKICAgIFJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguIEVuYWJsZWQgaWNhY2hlX2VuYWJsZSgpIGluIGNwdV9pbml0X3IoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ExN2U3NTljN2E4YjU4ZTkxMGRhZjU0ZGY2MTFlOTRmYzhjYTA3NApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjAxOjIyIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUgYW5kIHJlbW92ZWQgaW50ZXJydXB0X2luaXQoKQoKICAgIFJlcGxhY2UgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4gUmVtb3ZlZCBpbnRlcnJ1cHRfaW5pdCgpIGFuZCBwbGFjZWQgaXQgaW4gaW50ZXJydXB0cy5jCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNiNjM1NDkyYzk1YmQwZDZlMDhmOTNmNjk5ODIxY2JhMWY2MDJhNjQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo1Nzo0NiAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGZvciBmbGFzaC5vIGFuZCBtaWkubwoKICAgIFJlbW92ZWQgZmxhc2gubyBhbmQgYWRkZWQgbWlpLm8KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzVkZWQyNzVkODM5ZTRmZjc5ZjQxNzE4ZDUwYTgzNWQ5ODlmNTdiYwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjU2OjE5IDIwMDcgLTA1MDAKCiAgICBNSUkgZnVuY3Rpb25zIGNhbGxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MjdjODE0MTA0NTYwZTI5YmRhMTQ5NTVjNjc3MDMyNDVhYWFhNWI0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NTQ6NDIgMjAwNyAtMDUwMAoKICAgIFJlbW92ZWQgTUlJIGZ1bmN0aW9ucyBhbmQgcmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4KCiAgICBUaGUgcmVtb3ZlZCBNSUkgcm91dGluZXMgd2lsbCBiZSBwbGFjZWQgaW4gbWlpLmMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAxYTc5M2ZkYTA5YzYzZGY1YTQ5NmYwOWRjMWM3Y2IyNmU2NzUxYTIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo1MTowNSAyMDA3IC0wNTAwCgogICAgRHVwbGljYXRlIGNvZGUKCiAgICBUaGVyZSBpcyBhIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgRHJpdmVyIGV4aXN0ZWQuIFRvIHVzZSB0aGUgQ0ZJIGRyaXZlciwgZGVmaW5lIENGR19GTEFTSF9DRkkgaW4gY29uZmlndXJhdGlvbiBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNzQ0MzU0YTg0MzdiOGY3OGRiMTc4ZTMwNjYwMjE1Njg4YmZmNTcwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NDY6MzggMjAwNyAtMDUwMAoKICAgIFNlcGVyYXRlIG9sZCBzdHJ1Y3R1cmUgZGVmaW5lcyBhbmQgbmV3IHN0cnVjdHVyZSBkZWZpbmVzCgogICAgUmVtb3ZlZCBuZXcgdWFydCBzdHJ1Y3R1cmUgYW5kIGRlZmluZXMgdG8gdWFydC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJiZDU4NjA4ZGJjZmY4ODkwY2E5YTBjNTllODYxYWMyNGY4YmIyMzAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo0NTowMSAyMDA3IC0wNTAwCgogICAgU2VwZXJhdGUgb2xkIHN0cnVjdHVyZSBkZWZpbmVzIGFuZCBuZXcgc3RydWN0dXJlIGRlZmluZXMKCiAgICBOZXcgdGltZXIgc3RydWN0dXJlIGFuZCBkZWZpbmVzIHdpbGwgbW92ZSB0byBuZXcgdGltZXIuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4Y2Q1Y2Q2ZGU0ZmY5MmUwMzk3ODMzOGVkN2FlYjNjZTdiN2I5Nzg0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NDI6MjMgMjAwNyAtMDUwMAoKICAgIENsZWFuIHVwCgogICAgUmVtb3ZlZCB3aGl0ZXNwYWNlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUxNDg3MWY1NjVkZDhiZDExMjFlNGEzYWMxNjY1YTc5MGUyMGI4ZjIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo0MToyNCAyMDA3IC0wNTAwCgogICAgQ2xlYW4gdXAKCiAgICBSZXBsYWNlZCB3aGl0ZXNwYWNlIHdpdGggdGFicwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OGRiZmVhYmM3YWZmZmUzMDYwOWE0NDg5ZjEwYzIyY2I2N2VmN2RkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6Mzk6MDcgMjAwNyAtMDUwMAoKICAgIENyZWF0ZSBuZXcgaGVhZGVyIGZpbGUgYW5kIG1vdmUgcGVyaXBoZXJhbHMgYmFzZSBhZGRyZXNzIGZyb20gY29uZmlncyBmaWxlIHRvIG5ldyBoZWFkZXIgZmlsZS4KCiAgICBDcmVhdGUgbmV3IGhlYWRlciBmaWxlIHRvIGluY2x1ZGUgaW1tYXBfNXh4eC5oIGFuZCBtNXh4eC5oIGFuZCB0byBzaGFyZSBhbW9uZyBkcml2ZXJzIHdpdGhvdXQgdXBkYXRlIGluIGRyaXZlciBmaWxlIGVhY2ggcHJvY2Vzc29yIGlzIGFkZGVkLiBNb3ZlZCBwZXJpcGhlcmFscyBiYXNlIGFkZHJlc3MgYW5kIGRlZmluZXMgZnJvbSBjb25maWdzIGZpbGUgdG8gaW1tYXAuaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmUyOTZlMzFjNDQxMWY5NmQ5Y2IzZDJhZmM4ZmNiMDA2ODY3YWJmYQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjI0OjU4IDIwMDcgLTA1MDAKCiAgICBSZXZlcnQgZmlsZSBtb2RlCgogICAgQ2hhbmdlZCBNQUtFQUxMIGZpbGUgbW9kZSB0byBleGVjdXRhYmxlLCByZW1vdmVkIGV4ZWN1dGFibGUgZmlsZSBtb2RlIGZyb20gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjNhZmYwY2I5ZWNmMjM2ZDdlOGM5Mzc2MWRkMWRhZGY2ODM3YTU4MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MTk6NTAgMjAwNyAtMDUwMAoKICAgIGRpc2svIGRvYy8gbGliXyovIGFuZCB0b29scy86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRiNWQ4NmYwMjE1YmNiNmMyOTM1MTBjNTBlYjA1MGU5Mjg4M2I3YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MTM6MjEgMjAwNyAtMDUwMAoKICAgIGRyaXZlcnMvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY0MGE3ZjNlMzg4OGI0MmE0MzY3NGIwOTllNTQ3MDAyMmM4YzU0NGMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjA3OjU2IDIwMDcgLTA1MDAKCiAgICBmcy86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjEwZjJlOWMyOGE5YzEwMWUwOWZhMWI3ODE0M2NmNWYwMGVkMTU5MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MDU6MDIgMjAwNyAtMDUwMAoKICAgIG5ldC86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTAyNTMxNzg4Mzc2MDQ2ZGEyMTJhZmQxNjYxY2ZmYjYyZjNkYWExYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTE6MDI6NDQgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDM5YjU3NDE1ODM4YzczZmIwYTM3ZWNhODRkZTNjNjhiYTk5MDU4NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTA6NDg6MjIgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tqLXpdKjogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3N2EzMTg1NDVkNTdhZWZhODQ0NzUyNDY1Yjk0YzdlMDlhM2YyNmQwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMDozOToxMCAyMDA3IC0wNTAwCgogICAgYm9hcmQvW0EtWmEtaV0qOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA2OGI2MGEwZWI3ZTczYjI0M2NhNTUzOTlmMmE3ZGY3NmUyYzNmM2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDEwOjI3OjM5IDIwMDcgLTA1MDAKCiAgICBjcHUvIHJ0Yy8gaW5jbHVkZS86IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA3OWExMzZjMzU4ODgxNDc4NDU2MWQ2ZTQ4NTY5NzBlZTgyZDZlMmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDEwOjEyOjEwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW3Atel0qICsgbWlzYzogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZjVjMDE1Nzc0MDBjNzRjYzViYWM3NGY0MWRkMGQzYzc5ZGY2MjNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOTozODowMiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tnLW9dKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MGZmNGY5OWI4NGI2NGVkY2EzZmQxMGRhMzY1ZWMxNDkzYmUxYzk1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOToyOTowMSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1thLWVdKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMWFhMGJiNTAyZTI1ZmQ1OThiNWUwY2NkZmIyYzE3NDkyMWQ3MTRhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOToyMjoyMyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tQLVpdKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NTllMmY2NzM2MjMyYTA4YWNjYTg3ODVjMjA2ZTJiNGQ5Y2QwN2Q3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOToxMDo0OSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tKLU9dKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMTc5OTQzNGM1ZmYxNWE2MTI1NzdiYjFhZDFmNGVhMWEwNTk1ZTRiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAwOTowMjo1NyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tBLUldKjogQ2xlYW51cCBCT09UUCBhbmQgbGluZ2VyaW5nIENGR19DTURfKi4KCiAgICBFeHBsaWNpdGx5IGFkZCBpbiBkZWZhdWx0IENPTkZJR19CT09UUF8qIG9wdGlvbnMgd2hlcmUgY21kX2NvbmZkZWZzLmgKICAgIHVzZWQgdG8gYmUgaW5jbHVkZWQgYnV0IENPTkZJR19CT09UUF9NQVNLIHdhcyBub3QgZGVmaW5lZC4KCiAgICBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZmU4MGQ3OWM1YzRlNTJkMzQxMGE3YWI0Yjg1MTVkYTA5NWNkYWIzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIyOjA4OjM0IDIwMDcgLTA1MDAKCiAgICBGaW5hbGx5IHJldGlyZSBjbWRfY29uZmRlZnMuaCBhbmQgQ09ORklHX0JPT1RQX01BU0shCgogICAgQWxsIG9mIHRoZSBjaG9pY2VzIGZvciBDT05GSUdfQk9PVFBfIGFyZSBub3cgZG9jdW1lbnRlZCBpbgogICAgdGhlIFJFQURNRSBmaWxlLiAgWW91IG11c3Qgbm93IGluZGl2aWR1YWxseSBzZWxlY3QgZXhhY3RseQogICAgdGhlIHNldCB0aGF0IHlvdSB3YW50IHVzaW5nIGEgc2VyaWVzIG9mCgkjZGVmaW5lIENPTkZJR19CT09UUF88eD4KICAgIHN0YXRlbWVudHMgaW4gdGhlIGJvYXJkIHBvcnQgY29uZmlnIGZpbGVzIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzYjhjMWE3NDNkY2QzMTYyNWM5OWU2YTQ0NTkwZjIwN2ViMDAwMjgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6NTc6MzEgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bbS16XSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmZkOTBjZTU3NWIwMmQxODljYmY0NDNjODUzMDliY2QwMDFhYTM5MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMTo0ODoyNiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1thLW1dKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzN2Q0YmI3MDU4NjY1OWRlZGVmMTY1OGNlMWJlZDA3MWJlMDk4YWVjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjM4OjAyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW1QtWl0qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE4MjI1ZThkZDE5NTBiZDZkYmYzNTAxMWU0MzZkYjdmNDc0YzE4N2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6MzE6MjQgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bUC1TXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2JlMDQ0ZTRlYTY0NGIwZWYxYzQ4NmRhZGMxYTRjMjY2NWI0Mzc0ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMToyNDoxOSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tILU5dKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZDJlYmUxYjNlZjAwNTVjNjYxYmIxYTBkMjUyYmYyNTIzODAwNjlmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjE2OjUzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW0EtR10qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1NWY3ZjhkODNmMzYwMjFhYjFmMGUzZDczOGY1ZDhjODA4M2E3ZTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTk6MTI6MzAgMjAwNyAtMDUwMAoKICAgIFJldGlyZSBDT05GSUdfQ09NTUFORFMgZmluYWxseS4KICAgIFN0cmlwIG9sZCBDRkdfQ01EXyogc3ltYm9scyBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNTUwMWY3ZDcyMGZlZDk5YWIwYjQyYzgzZjVkZWE1Mjg2OGNlMDA3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE5OjEwOjAzIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgUkVBRE1FLiogdG8gcmVmZXJlbmNlIG5ldyBDT05GSUdfQ01EXyogbmFtZXMgbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDQzMTI4M2M3ZTZkNTRhZTE4MGQ0NjZlNTFiZjJkOTc0NzFhMGFkOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxOTowNjowMCAyMDA3IC0wNTAwCgogICAgY3B1L20qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNhMWVkMWUxZjkyMmM0MTliYjcxZjdkZjQ5NDlkNzgzYWRlMzY5ZmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6NTc6MjIgMjAwNyAtMDUwMAoKICAgIGNwdS9bN2EtbG4tel0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFiM2FiY2JhYmQ4NDA5MjhmYjFlYjUxMjIxMThjYTQ2NmI1ZTUwMTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6NDU6MTYgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1txLXpdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZmUwMDEwOWE1ZjEyZGU1NWI2ZTI1YjFmOThkZmMyNGJjOTA5MGM5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjM4OjM5IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bbS1wXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzUwOGE0Y2VmZDhhOTUzZmM2NDk1NzY1MDUwNmEwMzVlNmUzZDlkMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODozMToyOCAyMDA3IC0wNTAwCgogICAgYm9hcmQvW2YtbF0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5MzA3MjYyZjhhOWYzYjVjOWUxNWE2MDY3ZWFkYzE3NDA3MTQ2ZjYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MjQ6NTUgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tkLWVdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmY2VjMmViOTNlMTI2NDAwMDA5NzI5MzI4ZTc5N2YxMmJjOTRmMWZkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjE5OjA5IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bQS1aYS1jXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTU5MzgxNGYyYmUwYzljZGMzMTMzY2Q1NTBiMTY3YjhhOTg4MzI4ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODoxMDo1MCAyMDA3IC0wNTAwCgogICAgcnRjLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NzM1MDU2OGY5ZDQ2ZTY2YzIxODI5ZjM1MTNiM2RiMGNhZWI5NDhiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjA1OjM4IDIwMDcgLTA1MDAKCiAgICBsaWJfe2FybSxhdnIzMixibGFja2ZpbixnZW5lcmljLGkzODZ9LzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZGVmNmIzNGY5MTBmMDhkN2VmMGExNDY0NmRhMDY3NzE5MjM3Y2EyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjAyOjExIDIwMDcgLTA1MDAKCiAgICBsaWJfe202OGssbWljcm9ibGF6ZSxtaXBzLHBwY30vOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkNjBkMTIyM2I5OWE4OGE3MjE2ZjNlMDQxZmU0MDYzNGFkNGMyYmIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6NTY6NTAgMjAwNyAtMDUwMAoKICAgIGZzLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOTE4OThiYmM1MDVhZmYzZTEyYTgwN2FmODhlNzZkYTE4ZWZiN2VlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjQ2OjA5IDIwMDcgLTA1MDAKCiAgICB0b29scy86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjQzZDFhYjIzOTYwOTUwYjUyZTBhMjgwM2MyZDNlYTRjNTU4ZmEwMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzo0NToxNCAyMDA3IC0wNTAwCgogICAgbmV0LzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYjUxYzBiZjg4Zjk1YTFiY2E2ODMyNGIwMTI2ZjhlZWQ4YjQzMjczCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjM5OjQyIDIwMDcgLTA1MDAKCiAgICBkcml2ZXJzL1tuLXpdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwN2QzOGExN2U5NjRhZWM0Yzc4MjdmMGVlOWE1ODNiYzhjYzFhZDZiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjMwOjAxIDIwMDcgLTA1MDAKCiAgICBkcml2ZXJzL1thLW1dKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZGU1YzY0ZDE3Y2Y0ODM0YWE3YjVjMzczZjI4OGJjN2RhZDI3YjI5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjIyOjM3IDIwMDcgLTA1MDAKCiAgICBkaXNrLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MzkyMjFjNzZjODgyMTViZDU1YWY4M2FkMTc0ZmMzMGQxOTQwZjhmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjE1OjQ5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlLzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCiAgICBNb3N0bHkgcmVtb3ZlZCBmcm9tIGNvbW1lbnRzIGhlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZWYyMThmNmZkZjhkNzQ3ZjQ1ODlkYTUyNTJiMDA0ZTdkMmMyODc2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAxMCAwMDowMToyOCAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjODYwM2NmYmQ0NTczMzc5YTYwNzZjOWMyMDg1NDViYTJiYmYwMTlhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDkgMTE6MDA6MjQgMjAwNyArMDIwMAoKICAgIFNtYWxsIGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBmOTJjN2U3YzlhNjI3NTViMTQ1N2QzYzQ2ZjkzYzhjMWY2YzE5ZmMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDEwOjEwOjA4IDIwMDcgKzAyMDAKCiAgICBNaWdyYXRlIGVzZCA0MDVFUCBib2FyZHMgdG8gbmV3IE5BTkQgc3Vic3lzdGVtCgogICAgUmVtb3ZlIHVudXNlZCBDRkdfTkFORF9MRUdBQ1kgZGVmaW5lCgogICAgVGhlc2UgYm9hcmRzIHRvIG5vdCBoYXZlIE5BTkQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYmQ4NGVlNGMyMDIwYzNhNjg2MWY0YmIyZTdlYTBmYjQ5ZjgyZTgwMwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gSnVsIDkgMTA6MTA6MDYgMjAwNyArMDIwMAoKICAgIE1pZ3JhdGUgZXNkIDQwNUVQIGJvYXJkcyB0byBuZXcgTkFORCBzdWJzeXN0ZW0KCiAgICBNaWdyYXRlIGVzZCA0MDVFUCBib2FyZHMgdG8gbmV3IE5BTkQgc3Vic3lzdGVtCgogICAgLWNsZWFudXAKICAgIC11c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgKGluL291dF9iZTMyKCkpCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZTA5ZjdhYjU3NDljMzQ1ZjkyNGRhMjcyYmVhMDUyMWE3M2FmNWIxMQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gSnVsIDkgMTA6MTA6MDQgMjAwNyArMDIwMAoKICAgIE1pZ3JhdGUgZXNkIDQwNUVQIGJvYXJkcyB0byBuZXcgTkFORCBzdWJzeXN0ZW0KCiAgICBUaGlzIHBhdGNoIHByZXBhcmVzIHRoZSBtaWdyYXRpb24gZnJvbSB0aGUgbGVnYWN5IE5BTkQgZHJpdmVyCiAgICB0byBVLUJvb3QncyBuZXcgTkFORCBzdWJzeXN0ZW0gZm9yIGVzZCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzM1MTdmOTE5ZDBmNjE2NTBjZjMwMjdmZDRmYWYwZjYzMTE0MmY2YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxODoxMDowOCAyMDA3IC0wNTAwCgogICAgY29tbW9uLyogbm9uLWNtZCo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmQ5YmNhYTM1YmU2NGZlNDFhNDIyM2ZkYjZlY2RiYWQ1MjQ3MGIzOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxODowNTozOSAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9bcC14XSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM3NmZlNDc0MjVhZmM3ZDVkNjcwZmYwNTM5ODIzYzg1ZDY1ZDljNDIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTg6MDI6MjMgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW2ktbl0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYWEyNmRiNDExMzY3OWI4MDk3MGZmNDQ3ZDkxY2MxMDIxNzc0MmE2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE3OjUxOjM5IDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1thZl0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZjA3NWVlOTZlNTJkZGE3YjZiY2E2YzkzNzU4OGFlYWFlYzVmMmNkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE3OjAyOjAxIDIwMDcgLTA1MDAKCiAgICBDbGVhciB1cCBjb25mdXNpb24gb3ZlciB0aGUgQ01EX1BPU1QgYW5kIFBPU1RfRElBRyBtZXNzLgoKICAgIEZvciBzb21lIHJlYXNvbiwgQ09ORklHX1BPU1QgcGVybWVhdGVkIGFzIENPTkZJR19DTURfUE9TVF9ESUFHCiAgICB3aGVuIGl0IHJlYWxseSBtZWFucyBqdXN0IENPTkZJR19DTURfRElBRy4JVGhlcmUgaXMgbm8gQ01EX1BPU1QuCiAgICBDbGVhciB0aGlzIG1lc3MgdXAgc29tZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzNjMxNDg3MTA1YTU3YWI3Y2JhZGZjMjZlZmJhZjk2NzYyNzUwMTgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6NDU6MDggMjAwNyAtMDUwMAoKICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQgY21kX2NvbmZkZWZzLmggaW5jbHVkZSBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTIyZDRkYTk1ZTIwMDQ5YjRkYWExYzJhMDIyZjYxZThhNzJmMmZiNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNTo0Mjo1OSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBDYXRjaCBzb21lIENPTkZJR19DTURfKiBjb252ZXJzaW9uIHN0cmFnZ2xlcnMuCgogICAgVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gbHdtb241LmggYm9hcmQgY29uZmlnIGZpbGUuCiAgICBGaXggQ09ORklHX0NNRF8qIHR5cG8gYnJhaW5kYW1hZ2UgaW4gb21hcDE1MTBpbm4uaAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTU1NjI5MDE2NjFiZDQyOGY3ZTVmZWIzMzNmNzk2MzcyY2I4MTAxOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNTozMTo1NyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFtUVVZXWllaXSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmU3Zjc4MmQ1YjhjNjRhMDE5NWM2OGMzMWEwYTExZDRmNjQxMzU1ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNTowMjo0NCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFMqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5YTBmOGYxNWMxMWYzMzc5NjdhYTA2MDBhZDZlOGFmMzMwMzdmNTAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6MTI6NDAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBSKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMmFhOWZkMjNkNzI0YmQ2YWI4OGUxYmFhMGRiMzUxMzNhMjczMDNmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE0OjU1OjA3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgUSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWNmMDI2OTc3OTQyMmYzZTE0N2QyZGRmYjQ5OWM5ZjZmZjEwYWQ1ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNDo0OTo0NCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFAqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUxOGExMDYxYTg2MzBjYjY3OTk1ZmRmOTlhZmQzZmI1MGQxYjE4N2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTQ6MjE6NDMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBbTk9dKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MzUzZTEzOWJmYWQ5MDU5YzU0ZjViMjQyMWYxYTMwOTBlMTVhMmUyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE0OjE0OjE3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgTSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzQ4ZjI1OGYyNDI1MzQzM2U0YTIzMDJhMGJiY2ViNjc0MGE2NzI0NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxMzo0NjoxOCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFtJSktMXSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmM0ZjRkYTliZmM5Zjk0MDNmNTRmY2U2NzhlZDAzNjRiN2M4NmE2YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxMDowOTozNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEgqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYwYTA4NzZiNTEwNmIzNDIyMGU0NTljMjA4YmJmNjQ4MDczMzA2YzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgSnVsIDcgMjE6MDQ6MjYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBGKiBhbmQgRyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGNhYTcxNTYyODI2YTI0NjZlODk0Yzg2OGQxMzI1MDlkY2RhODQ0NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBKdWwgNyAyMDo1NjowNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEUqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNjMzIyN2YzYzczNzUwMjMxMWIyNWI3MjA4NDU3MzkwMWNiYmYxN2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgSnVsIDcgMjA6NDA6NDMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBEKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OWNmN2U4ZWU3ZWY5NDNmZGZlODY2Y2UyODQxMGIwYmZiZjZhMjZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDE5OjUyOjM1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgQyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGU4YjJhNmUzMzI5OGRjZGIxMGJkZGE0OGRiMjVlNTNjMzA4OWViYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAxOTozMjowNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEIqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5OGZmOWEyMjg0ODViZDRiOWYyM2QwNjZiYWRhMjY4ZjlhZGQxZGQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMTk6MTM6NTIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBBKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2luY2UgQURTODYwLmggaW5jbHVkZXMgImJvYXJkL2ZhZHMvZmFkcy5oIiB3aXRoIHJhbWlmaWNhdGlvbnMKICAgIG9uIHRoZSBDT05GSUdfQ09NTUFORCB0cmVhdG1lbnQsIGl0IHRvbyBoYXMgdG8gYmUgYWRqdXN0ZWQgdG8KICAgIGV4Y2x1ZGUgYWxyZWFkeSBjb25maWd1cmVkIGNvbW1hbmRzIGluIHRoaXMgc2FtZSBjb21taXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMGUwMzg5MzJmMjJlZTgwZWJkNTNkZTMxMjUzMWU3MGU2NTkwYTJmCkF1dGhvcjogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KRGF0ZToJRnJpIEp1bCA2IDE0OjU4OjM5IDIwMDcgKzAyMDAKCiAgICBbTkFORF0gQmFkIGJsb2NrIHNraXBwaW5nIGZvciBjb21tYW5kIG5ib290CgogICAgVGhlIG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBjb21tYW5kIG5ib290IGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyB0aGUgaW1hZ2UgZnJvbQogICAgTkFORCBmbGFzaCB3aXRoIHNraXBwaW5nIG9mIGJhZCBibG9ja3MuIFRoZSBwYXRjaCBpbXBsZW1lbnRzIGEgbmV3IHZlcnNpb24gb2YKICAgIHRoZSBuYm9vdCBjb21tYW5kOiBieSBjYWxsaW5nIG5ib290LmpmZnMyIGZyb20gdGhlIHUtYm9vdCBjb21tYW5kIGxpbmUgdGhlCiAgICBjb21tYW5kIHdpbGwgbG9hZCB0aGUgaW1hZ2UgZnJvbSBOQU5EIGZsYXNoIHdpdGggcmVzcGVjdCB0byBiYWQgYmxvY2tzIChieSB1c2luZwogICAgbmFuZF9yZWFkX29wdHMoKSkuIFRoaXMgaXMgc2ltaWxhciB0byBlLmcuIHRoZSBOQU5EIHJlYWQgY29tbWFuZDogIm5hbmQKICAgIHJlYWQuamZmczIgLi4uIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgS25vYmxvY2ggPGtub2Jsb2NoQHNpZW1lbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMzNDA0M2Y2MDFhOTBhYzUzZTVlY2M4NDZmYmI3M2ExZWYzOGNiMWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNiAxMjoyNjo1MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgbHdtb241IGRlZmF1bHQgZW52aXJvbm1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWQxODc0MzBhMDU1ZDYyZjE3Y2E4NGQ3NWU3MjQ1NDM5ZDFmN2U3NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCA2IDExOjQ4OjI0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBsd21vbjUgYm9hcmQKCiAgICBBZGQgdW5sb2NrPXllcyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBkZWZhdWx0IHZhcmlhYmxlcyB0byB1bmxvY2sKICAgIHRoZSBDRkkgZmxhc2ggYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmIwYTE3NGExZTZmNTVlMWY1YTFmYmIyMjNjZGFkNzY0NWE0NjQ2ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCA2IDA5OjQ1OjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggcHJvYmxlbSB3aXRoIGdldC9zZXRkY3IgY29tbWFuZHMgaW50cm9kdWNlZCBieSBjZmcgcGF0Y2hlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMTE1MmY4YzI4ZGI0YTIyMDg3YzIxYzYxOGEzZjdiYWE0OGU5YTRmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCA2IDAyOjUwOjE5IDIwMDcgKzAyMDAKCiAgICBDb2RlIGNsZWFudXAgYW5kIGRlZmF1bHQgY29uZmlnIHVwZGF0ZSBmb3IgU1RDIEdQMyBTU0EgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlNGRiZTFiMjE1ZjVjNmM0NjJlNzY5MDlkMjQwYmQ5NjQ3MmI4NGRlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCA1IDE3OjU2OjI3IDIwMDcgKzAyMDAKCiAgICBGaXhpbmcgc29tZSB0eXBvcyBldGMuIGludHJvZHVjZWQgbWFpbmx5IGJ5IGNmZyBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjZiNDY4NDU0NjgwOWY4OWM4YmFjNzI4NjNjYTQ5YjVmZDhhYzBjZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgNSAxMToxMjoxNiAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgZGNhM2IzZDZkNjM5NmI2N2U1ZTg0YWY1MzQ1MjE2NDkyM2M3MzQ0MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzo0NiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFt2LXpdKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YzE4ZWI5ODA0YjUyNWYzZTRmM2JiM2QwMTRkZDY5YTIwMGQ5ZmE3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjM4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgdCogYW5kIHUqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ2ZGExZTk2YjdkYjE0ZjRmY2QyYzkyNTQ0ZTdjMDg2MjAyNGJjNzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MzAgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBzKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MGNjM2ViNmQyYmU4NTZkOWRkZDgxNDM2ZGU5Y2YzNDNiYzZiNWM4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjIzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgcSogYW5kIHIqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI2YTM0NTYwZDU2YTlkZjViYzJhZTIzNTI1ZDkyMjk3MzYxMzQ3NTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBwKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNWNiMjMwOTJhN2QzMTQ5MGEzM2Q0ZWM4NzE0NjhiNjNiYWJmYTNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjEzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgbyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTI5YTJiZmQxNDI3MzcwMDNhOGZjMzJlMWI4NmUxZjJjMTg1MDI1NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzowNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIG4qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkYzExYTUxMTk2MGQ0OTBmN2YwMWZmZDc0NmVkZmU2Mjc3Zjk5YjAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MDEgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBtKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YmJiMWMwODIwYzFmYmQzODExYWI2ZWU0YmEwZjZjNmY3NmIyN2U0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjU3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgbCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmMyMzRjMTI5ZmEwNGZiOWZhMzM1MzA5MzBlNWNiYzYwODRjZDQ3YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjo1MSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGoqIGFuZCBrKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZDJjNmJjNDkxOTY5ZjhkOGZiMzRjOGUzMGU4YmVhN2EyYWY5YzMxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjMyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgaSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDhkNWQxMDJhMmYyZTYxOWM5MjA1MGI5YWVkYmI2OTY4OTE4NWJjMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjoyNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGgqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcyZWIwZWZhZWQ3MDQ4YWZjYzYxZmM2ZjAwODVjNDkzOTRiNWRjMzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MTkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBnKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYmVjM2QzMDAyZDNiYmJhZTZmMjQ2OGEwZjczNzZkYjExMjBkMzNlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjEwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgZSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWI5OTliYTFiMzFlYmU3OGRkMTYzNzQzOTRhNTVkN2M2ZTVhYTZlNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjowMyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGQqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM3ZTRmMjRiODdmYTI1NWFlNDU2ZDE5M2I3Y2QyM2MxOGRkMWQ1NmIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6NTYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBjKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTIzNTFmOWQxZTg0MWJkMDBlYTZkYWQxZTNjMTZkMDI1OWFkMjY0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjQ5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgYiogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGIzNjFjOTE2NjE3YWZmNzllNjQ3YjQwZjBlNDMzNjFlMGJiYWNjZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTo0MiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGEqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI3MzBjZGE4MmUzNjJkZjZhMjJmNGM1OWMwYTliOTdlODg1YjEwMTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6MzUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gbXBjNXh4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ3OTRjZmVmZWFkNWZjMTc3Y2Y0ZjQxMTY0ZTgwMzgyZTljOTQ4NGEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6MTUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyA1MjAwIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVmMGRmNTJhYjQ5ZWVhNGEzMGMxNTA4N2ZkMjdkNTRjMWQ5NDZmMmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6MDcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gU1R4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg2NmUzMDg5YmZjODI2YmI0ZGM3NDYzN2Y4YWFkODdhM2JhYjc5ZmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzA6NTggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gc2JjKiBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNjk0NjkwZTI4NWFjYWEzNDkyMmY1NWY0YjVhZTAzMGRhNjBjNTVhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMwOjUwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIFRRTSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxY2M0YzQ1ODMyOTc2NWI1OGU1ODRhMTk4MjFlNzk2YjNjMTBlOTc2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMwOjI4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIDgyeHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGVhNTQ5OWFmZGFiYTBhY2Y2MDkyM2RkOTkwMDFjMzk5ZDRhN2M4ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMDowNiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiA4M3h4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI0NDg5NjIxNWEwOWM2MGZhNDBjYWU5MDZmN2VkMjA3YmJjMmM0OTIKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUaHUgSnVsIDUgMDg6MTc6MzcgMjAwNyArMDIwMAoKICAgIE1lcmdlZCBQT1NUIGZyYW1ld29yayB3aXRoIHRoZSBjdXJyZW50IFRPVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGIyNDYyOWZhMzc3MjE0ZDYzYmI0MGQxMzYwZTM1NGI2ZDNlNGFmNTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDEzIDEzOjIzOjE1IDIwMDcgLTA1MDAKCiAgICBtcGM4Nnh4OiBSZW1vdmUgb2xkIENGR19DTURfKiByZWZlcmVuY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDYxNzVkOTc2NGRhMTI5YmI0ZmQzNDFjZDI1NTRkYzdkNTVmNWIyYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gMTMgMTM6MjI6NTQgMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTY4TURTIHRvIE1BS0VBTEwgODV4eCB0YXJnZXQuCgogICAgSXQgd2FzIG1pc3NpbmcgZnJvbSB0aGUgb3JpZ2luYWwgcG9ydCBzdWJtaXNzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjgzNWU1MThjOTY5ZTUxMjRiYTExNzRlZWYzZTgzNzVlMTJmYTdkNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gMTMgMTM6MjI6MDggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gODV4eCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NmIzMDRhYzIwOTE2ODk1MDYwODhhOWFlNjdmNjNmZDYzMDBjZjE2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biAxMyAxMzoyMTozNyAyMDA3IC0wNTAwCgogICAgRml4ICNpZiB0eXBvIGluIENPTkZJR19DTURfKiBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjc4MGI4MzMxNmQ5YWYxZjYxZDcxY2M4OGIxOTE3YjM4N2I5Yjk5NQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CVdlZCBKdW4gMjcgMTg6MTE6MzggMjAwNyArMDIwMAoKICAgIHJlc3VibWl0OiBwcGM0eHg6IFJlbW92ZSBzZXF1b2lhL3NlcXVpb2EuaC4gQ2xlYW51cCBwcGM0NDAuaCBmb3IgUFBDNDQwRVBYCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgoKY29tbWl0IDA0ZTZjMzhiNzY2ZWFhMmYzMjg3NTYxNTYzYzllMjE1ZTBjM2EwZDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgNCAxMDowNjozMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgbHdtb241IGJvYXJkCgogICAgLSBBZGQgb3B0aW9uYWwgRUNDIGdlbmVyYXRpb24gcm91dGluZSB0byBwcmVzZXJ2ZSBleGlzdGluZwogICAgICBSQU0gdmFsdWVzLiBUaGlzIGlzIG5lZWRlZCBmb3IgdGhlIExpbnV4IGxvZy1idWZmZXIgc3VwcG9ydAogICAgLSBBZGQgb3B0aW9uYWwgRERSMiBzZXR1cCB3aXRoIENMPTQKICAgIC0gR1BJTzUwIG5vdCB1c2VkIGFueW1vcmUKICAgIC0gTGltZSByZWdpc3RlciBzZXR1cCBhZGRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ODEwYTM0Njc3ZGJjNDQ2MzM0ZjVlNDUxZjE2ODI0MjZkZDMzYjQ5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MTc6MjggMjAwNyAtMDYwMAoKICAgIEZpeCBNYWtlZmlsZSB0byB1c2UgJChNS0NPTkZJRykgbWFjcm8gZm9yIGFsbCBib2FyZCBwb3J0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5MGIxYjJkNjliOTM5NmZmMmYwMTE2NWViYzE2YzlhNTk0ZWI1OTI2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MTc6MjggMjAwNyAtMDYwMAoKICAgIEZpeCBNYWtlZmlsZSB0byB1c2UgJChNS0NPTkZJRykgbWFjcm8gZm9yIGFsbCBib2FyZCBwb3J0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwNTcwMDRmNGE0ODYzNTU0ZDU2Y2M1NjI2OGJmYTdjN2Q5NzM4ZTI3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6NDkgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODN4eAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1YWY2MWIyZjRiODM4YTA1Zjc5YmUyNzRmM2U1YTY2ZWRkMmQ5Yzk2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6NDQgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODI2MAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmM2E1MmZlMDU5MjM5MzVkYjg2OTg1ZGFmOTQzOGUyZjcwYWMzOWFhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MzkgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODI0eAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhODVkZDI1NGMwNTc3ZmNhMTM2MjdjNDZlOTNmYzJhZDRjNGYxZjAwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MzQgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODIyMAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2Zjc1NzZiMjBlY2YwZDA0MGMzYWMzYjAzMmI1Y2JjODYwZTM4YTkwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MjkgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgTVBDNXh4eAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAzNjQ5Y2Q5OWJhODE1YjY2MDE4Njg3MzU3NjU2MDJmMDBlZjM2OTJiCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MjQgMjAwNyAtMDYwMAoKICAgIENvcnJlY3QgcmVsb2NhdGlvbiBmaXh1cCBmb3IgbXBjNXh4CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY4MmIzYjYzMDRiNjIwZWY3ZTI4YmZhYTFlYTg4N2EyYWQyZmEzMjUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDoxOSAyMDA3IC0wNjAwCgogICAgRG9uJ3Qgc2V0IGdkLT5yZWxvY19vZmYgaWYgcmVsb2NhdGlvbiBvZiAuZml4dXAgd29ya3MgY29ycmVjdGx5CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGUxYTYxNDRjMzJkYzdkZTczYmNkZDMzOTk1ZGUwMTQ4Y2JkMGJkMjgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDoxNCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgzeHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMTdlMzJmYzM5MDhiZjcwODlkM2YxNmZjODJhMWMzYWU2NzRkZDY1YgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjA5IDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4MjYwIGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGFmN2QzOGIzOTM2OTBkN2VlYWY0MThhYzg1YTFlODMxYTUwZDVmZDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDowNCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjk0YTNhZWNlYmM0MGNhMDkzOWM3ZDY2ZDAxMDAwOWNmNTFiZTllMgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjU5IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cyAoMyBvZiA0KQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhNzFjMDg0ZjNhYzdmZWRmMTQ0NTM3ZGIyYjJkYTQ3MzIzMDY4ODMzCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6NTMgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzICgyIG9mIDQpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY2NzBhMTU0NjhkMTM2NTI0MWQ0MDAyMmI5NDA4ZTEwMDQxODFmNWUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzo0OCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMgKDEgb2YgNCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMDk1NTViZDQ1YTA0YzBlNTRmMTcyNTI4ZDIxYmMxODg5NjU1MGQyOApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjQzIDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODIyMCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1ZWZiOTkyZjA0NmU1MTIyNWM5M2Q1MmY4MGZlY2JlNDMzYWJkNzg5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MzggMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM1eHh4IGxpbmtlciBzY3JpcHRzICgzIG9mIDMpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDA3YzEzZGZlZjY1YjMxNjQ3ZTY5ZDhiNjFkYWExZWVjNTk4YWRkMWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzozMyAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzV4eHggbGlua2VyIHNjcmlwdHMgKDIgb2YgMykKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYjRmNjc1MTNhNjI0Y2U4NTg2NmM2NmM1NzViZDJkOWQ3OTc3ZDdmMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjI4IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjNXh4eCBsaW5rZXIgc2NyaXB0cyAoMSBvZiAzKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiN2Q4ZTA1Zjg2NzUyNDliNWYyMDhhYTczYmFiZWVkMzg0YTQ1MTlkCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MjMgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM1eHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNDE2YTBiNmQ0MGY2ZWJhM2EyZmM1NDcyNTNjMTZiZGEyOGQ5MjJmNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjE4IDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4M3h4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVmYzU5MTc1YjkyODgzZWQ1ZDI2NjZhMDRlNmJjNDllNzBhNGEzNjUKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzoxMyAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODI2MCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3MzdmOWViMDJkNzMzNWRmMmIzZTRkN2E0ZDMzNDg3ODRkMWRhMjA3CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MDggMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOWM3NTdiNzg5YTU5YTg1NWRiNTdiNDQ4ZGQ4MjUzMjljNGU5YzRhMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjAzIDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4MjIwIGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGQxODFjOWExNWNkNDE4NjNmZTI0ODQwZDE3ODQ4NDI5ZjI3ZDNjOGMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMjo1OCAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjNXh4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAyODdhYzkyNGFkYjcyOTFiZWJlNTA4NjY1MmEzNjJhMzBhYjI4YjEzCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzI6NTMgMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzV4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1MmI4NzA0ZDAyNDVlNTg5Zjg2ZDQ2MmU5ZWMyNWFlYjdlY2JiYmRkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCA0IDAwOjQzOjUzIDIwMDcgKzAyMDAKCiAgICBGaXggYSBmZXcgZmlsZSBwZXJtaXNzaW9uIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzhlMGNmMmRlN2JlN2YxZWFlZWI2MjJlYjYxZmQ1MGU0ZDVlMjA1YwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgNCAwMDozODozOCAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuIFJlYnVpbGQgQ0hBTkdFTE9HIGZpbGUuCgpjb21taXQgMmY5YzE5ZTQ5NmFjYjZiYjUwZDkyOTllMWFhYjM3NzYyNWQ0OGMzOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6NDQgMjAwNyAtMDUwMAoKICAgIGNvbmZpZ3MvIG1wYzg2eHg6IFJld3JpdGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgdXNpbmcgbmV3IENPTkZJR19DTUQtKiBzdHlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYwMmFkM2IzM2Q5Y2VlZjgzZGJhYjQ2YmU2ODY0NmQ2NDVkNjM3ZWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjM5IDIwMDcgLTA1MDAKCiAgICBSRUFETUU6IFJld3JpdGUgY29tbWFuZCBsaW5lIGNvbmZpZyB0byB1c2UgQ09ORklHX0NNRF8qIG5hbWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzJhMDc0Y2VjNjhlNWJhZDYwZDYzMjA2YzA1MDk3NGUwOGFmZDgwNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MzQgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvIG5vbi1jb25maWc6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmY2Y1NDNlMGI2NjI4Yzc2ZmY0ODcwNWIxYjA1NjZiZmQxMTUwN2IKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjI4IDIwMDcgLTA1MDAKCiAgICB0b29scy8gOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MTA3ZWJlMGQzNTI0MjA4OTVhYjY5YjcxNTY5N2JkZWJjOGNhZjUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzoyMyAyMDA3IC0wNTAwCgogICAgYm9hcmQvW2stel0qOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZTM3ODAwM2Q1OTJlYTgyOGVjNjlkNmRlZmNkNGRlNzkwOTZkZDVjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzoxOSAyMDA3IC0wNTAwCgogICAgYm9hcmQvW01hLWldKjogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzM3MTg0MTE0ZWM5YzllMGFiOTRkNjcxMzUzNjEyNjA3M2JkMjQ3MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MTUgMjAwNyAtMDUwMAoKICAgIGNwdS8gbm9uLW1wYyo6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY0ODA3MGZlNWZlNDQwZGZiNWVlNTI2OGM5MjBkZTcwZTQ4ZWEzMjcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjA4IDIwMDcgLTA1MDAKCiAgICBjcHUvbXBjKi8gOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwYzUwNWRiMGEwZGMxZjY3MGIxM2NlM2I0ZDNmYmYxZWM1YjNjYmQyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzowMyAyMDA3IC0wNTAwCgogICAgbGliXyovOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3M2YwMzIwMjFlYzVmMTNjZGE4ZmFhNGUzNGI2ZGU4MDk2MGViODZmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjo1OCAyMDA3IC0wNTAwCgogICAgbGliX3BwYy86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk4Yjc5MDAzYzIxYzI1NzgyMDYwMDMyNTZkZTRlNzgxZDZiMzZjYTgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjUzIDIwMDcgLTA1MDAKCiAgICBydGMvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZTIxMTVhY2I2YTg5MmQ1M2E2ODgxYmYyNTNhZTQxZDNkZjM5MTU2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjo0OSAyMDA3IC0wNTAwCgogICAgbmV0LzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDVjZGI5YjcyYzk0NjU1YzczMDhiNDY0YTI2NjYwNTdjMGIyODZlMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6MzQgMjAwNyAtMDUwMAoKICAgIGRpc2svOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZTEwOWFlOTgyOTRhNWNhN2ZmODQ4Yjc2NTJjN2JmZDQwMjNhOTRhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjoyMCAyMDA3IC0wNTAwCgogICAgZnMvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNWJlNDNkZTkzZmY5MDVjNDY1ZTUwOWQ0NWEzMTY0ZWY0OGQyNmU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjoxMCAyMDA3IC0wNTAwCgogICAgZHJpdmVycy86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI0NTM5NjBkNGZkYjg3YjM5NzBkOTYxMTliOTBkZjJlZDAyNGZjNGEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjA1IDIwMDcgLTA1MDAKCiAgICBjb21tb24vIG5vbi1jbWQ6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1YzQ1MGI0N2E2MjY1OWQ1MjJjZmE4ZjRmYTFlNGU1YzYwZGNjZDAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAxOjU0IDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1tpLXpdKiA6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE3NmFkYzgxNDJjMWQ5NTYzODVhMTA5ZTBiNzBmOTMxOWVkZTRkNjYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAxOjQzIDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1thLWZdKiA6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjNjNiMTBiNjFmZDY4MjM4ZDRjMTVjMWNkMDRjMGIzODIyOGUyYzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAxOjM0IDIwMDcgLTA1MDAKCiAgICBJbnRyb2R1Y2UgaW5pdGlhbCB2ZXJzaW9ucyBvZiBuZXcgQ29tbWFuZCBDb25maWcgZmlsZXMuCgogICAgRGVyaXZlIHRocmVlIG5ldyBmaWxlcyBmcm9tIGNtZF9jb25mZGVmcy5oOgoJY29uZmlnX2Jvb3RwLmggLSBIYXMgQk9PVFAgcmVsYXRlZCBjb25maWcgb3B0aW9ucywgbm90IGNvbW1hbmRzCgljb25maWdfY21kX2FsbC5oIC0gSGFzIGEgQ09ORklHX0NNRF8qIGRlZmluaXRpb24gZm9yIGV2ZXJ5IGNvbW1hbmQKCWNvbmZpZ19jbWRfZGVmYXVsdC5oIC0gSGFzIGEgQ09ORklHX0NNRF8qIGRlZmluaXRpb24gZm9yIGRlZmF1bHQgY21kcy4KCiAgICBGb3Igbm93LCBpbmNsdWRlICJjb25maWdfYm9vdHAuaCIgZm9yIGNvbXBhdGFiaWxpdHkgdW50aWwgYWxsCiAgICB1c2VycyBvZiBpdCBkaXJlY3RseSBpbmNsdWRlIGl0IHByb3Blcmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWYyYTA1ODk4NjU4OTAwZGM1NzE3NzYxZTI3YWJmMjA1MmU2N2UxMwpBdXRob3I6IE11c2h0YXEgS2hhbiA8bXVzaHRhcWtfOTIxQHlhaG9vLmNvLmluPgpEYXRlOglTYXQgSnVuIDMwIDE4OjUwOjQ4IDIwMDcgKzAyMDAKCiAgICBGaXggUy1BVEEgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBtdXNodGFxIGtoYW4gPG11c2h0YXFrXzkyMUB5YWhvby5jby5pbj4KCmNvbW1pdCBhNWQ3MWUyOTBmMzY3MzI2OWJlOGVlZmI0ZWM0NGY1MzQxMmY5NDYxCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gSnVuIDI1IDE5OjExOjM3IDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCWdldCByaWQgb2YgQ09ORklHX1BQQzR4eF9VU0VfU1BEX0REUl9JTklUX0hBTkcKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBhMWJkNjIwMGVjY2QzYTAyMDQwYTk1NWQ1ZjQzZDNlZTFmYzlmOTNiCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgpEYXRlOglNb24gSnVuIDI1IDE3OjAzOjEzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFBQQzQ0MEVQeCBFbWl0IEREUjAgcmVnaXN0ZXJzIG9uIG1hY2hpbmUgY2hlY2sgaW50ZXJydXB0CgogICAgVGhpcyBwYXRjaCBwcmludHMgdGhlIEREUiBzdGF0dXMgcmVnaXN0ZXJzIHVwb24gbWFjaGluZSBjaGVjawogICAgaW50ZXJydXB0IG9uIHRoZSA0NDBFUHgvR1J4LiBUaGlzIGNhbiBiZSB1c2VmdWwgZXNwZWNpYWxseSB3aGVuCiAgICBFQ0Mgc3VwcG9ydCBpcyBlbmFibGVkLgoKICAgIEkgYWRkZWQgc29tZSBzbWFsbCBjaGFuZ2VzIHRvIHRoZSBvcmlnaW5hbCBwYXRjaCBmcm9tIE5pa2xhdXMgdG8KICAgIG1ha2UgaXQgY29tcGlsZSBjbGVhbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODA3MDE4ZmI3ZmFjZWI0MjljZTBjYjQ3YmFhMjA3Mzc0NmIzM2E0ZQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxNjo1MDo1NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggTz1idWlsZGlyIGJ1aWxkcwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gdG8gYXNzZW1ibGUgY3B1L3BwYzR4eC9zdGFydC5TCiAgICBleHBlcmllbmNlZCBsYXN0IHdlZWsgd2hlcmUgYnVpbGRpbmcgZmFpbGVkIGhhdmluZyBzcGVjaWZpZWQKICAgIE89Li4vYnVpbGQuc2VxdW9pYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+Cgpjb21taXQgNDY2ZmZmMWE3YmI1ZmU3NjRhMDY0NTA2MjZmNjA5ODIxOWY0NDZiOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyNSAxNTo1NzozOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcGNpX3ByZV9pbml0KCkgZm9yIDQwNSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIENGR19QQ0lfUFJFX0lOSVQgb3B0aW9uIGNvbXBsZXRlbHksIHNpbmNlCiAgICBpdCdzIG5vdCBuZWVkZWQgYW55bW9yZSB3aXRoIHRoZSBwYXRjaCBmcm9tIE1hdHRoaWFzIEZ1Y2hzIHdpdGgKICAgIHRoZSAid2VhayIgcGNpX3ByZV9pbml0KCkgaW1wbGVtZW50YXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmMzVjNTMxNjYyMTNjMjRhNWEwZTIzOTBlZDg2MTEzNmZmNzM4NzAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIEp1biAyNCAxNzo0MToyMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBNYWludGVuYW5jZSBwYXRjaCBmb3IgZXNkJ3MgQ1BDSTQwNSBkZXJpdmF0cwoKICAgIC1hZGQgcGNpX3ByZV9pbml0KCkgZm9yIHBjaSBpbnRlcnJ1cHQgZml4dXAgY29kZQogICAgLWRpc2FibGUgcGh5IHNsZWVwIG1vZGUgdmlhIHJlc2V0X3BoeSgpIGZ1bmN0aW9uCiAgICAtdXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzCiAgICAtY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDVhMWM5ZmYwYzQ0MzA1YjU3Y2I0ZDhmOTM2OWJiYTkwYmNmMGUxZjgKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIEp1biAyNCAxNzoyMzo0MSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcGNpX3ByZV9pbml0KCkgZm9yIDQwNSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgY2FsbGluZyBhIHBsYXR0Zm9ybSBkZXBlbmRhbnQKICAgIHBjaV9wcmVfaW5pdCgpIGZ1bmN0aW9uIGZvciA0MDUgYm9hcmRzLiBUaGlzIGNhbiBiZSB1c2VkIHRvCiAgICBtb3ZlIHRoZSBjdXJyZW50IHBjaV80MDVncF9maXh1cF9pcnEoKSBmdW5jdGlvbiBpbnRvIHRoZQogICAgYm9hcmQgY29kZS4KCiAgICBUaGlzIHBhdGNoIGFsc28gbWFrZXMgdGhlIENGR19QQ0lfUFJFX0lOSVQgZGVmaW5lIG9ic29sZXRlLgogICAgQSBkZWZhdWx0IGZ1bmN0aW9uIHdpdGggJ3dlYWsnIGF0dHJpYnV0ZSBpcyB1c2VkIHdoZW4KICAgIGEgYm9hcmQgc3BlY2lmaWMgcGNpX3ByZV9pbml0KCkgaXMgbm90IGltcGxlbWVudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDE2MzZkMWM4NTI5YzAwNmQxMDYyODdjZmJjMjBjZDBhMjQ2ZmUxY2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDIyIDIzOjU5OjAwIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGtlIGNsZWFudXA7IHJlYnVpbGQgQ0hBTkdFTE9HCgpjb21taXQgMmRjNjQ0NTFiNGMwOGZmZDYxOTM3MmFiZmRjMjUwNmEyZTIzNjNiOQpBdXRob3I6IElnb3IgTGlzaXRzaW4gPGlnb3JAZW1jcmFmdC5jb20+CkRhdGU6CVdlZCBBcHIgMTggMTQ6NTU6MTkgMjAwNyArMDQwMAoKICAgIEFkYXB0IGxvZyBidWZmZXIgY29kZSB0byBzdXBwb3J0IExpbnV4IDIuNgoKICAgIEEgbmV3IGVudmlyb25tZW50IHZhcmlhYmxlLCAibG9ndmVyc2lvbiIsIHNlbGVjdHMgdGhlIGxvZyBidWZmZXIKICAgIGJlaGF2aW91ci4gSWYgaXQgaXMgbm90IHNldCBvciBzZXQgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIDIsIHRoZW4gdGhlCiAgICBvbGQsIExpbnV4IDIuNC40LCBiZWhhdmlvdXIgaXMgc2VsZWN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSWdvciBMaXNpdHNpbiA8aWdvckBlbWNyYWZ0LmNvbT4KICAgIC0tCgpjb21taXQgYTExZTA2OTY1ZWM5MTI3MGM1MTg1MzQwN2ZmMTI2MWQzYzc0MDM4NgpBdXRob3I6IElnb3IgTGlzaXRzaW4gPGlnb3JAZW1jcmFmdC5jb20+CkRhdGU6CVdlZCBNYXIgMjggMTk6MDY6MTkgMjAwNyArMDQwMAoKICAgIEV4dGVuZCBQT1NUIHN1cHBvcnQgZm9yIFBQQzQ0MAoKICAgIEFkZGVkIG1lbW9yeSwgQ1BVLCBVQVJULCBJMkMgYW5kIFNQUiBQT1NUIHRlc3RzIGZvciBQUEM0NDAuCgogICAgU2lnbmVkLW9mZi1ieTogSWdvciBMaXNpdHNpbiA8aWdvckBlbWNyYWZ0LmNvbT4KICAgIC0tCgpjb21taXQgNTY2YTQ5NGY1OTJhZTNiM2MwNzg1ZDkwZDRlMWJhNDU1NzQ4ODBjNApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMiAxOToxMTo1NCAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQkgICAgdXBncmFkZSB0aGUgUENTNDQwRVAgYm9hcmQ6CgkJICAgIC0gU2hvdyBvbiB0aGUgU3RhdHVzIExFRHMsIHNvbWUgU3RhdGVzIG9mIHRoZSBib2FyZC4KCQkgICAgLSBHZXQgdGhlIE1BQyBhZGRyZXNzZXMgZnJvbSB0aGUgRUVQcm9tCgkJICAgIC0gdXNlIFBSRUJPT1QKCQkgICAgLSB1c2UgdGhlIENGIG9uIHRoZSBib2FyZC4KCQkgICAgLSBjaGVjayB0aGUgVS1Cb290IGltYWdlIGluIHRoZSBGbGFzaCB3aXRoIGEgU0hBMQoJCSAgICAgIGNoZWNrc3VtLgoJCSAgICAtIHVzZSBkeW5hbWljIFRMQiBlbnRyaWVzIGdlbmVyYXRpb24gZm9yIHRoZSBTRFJBTQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDNhMWY1YzgxYjBiOTU1NzgxN2E3ODliZWNlODM5OTA1NTgxYzIyMDUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjIgMTY6NTg6NDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gd2l0aCBleHRlbmRlZCBwcm9ncmFtX3RsYigpIGZ1bnRpb24KCiAgICBUaGUgcmVjZW50bHkgZXh0ZW5kZWQgcHJvZ3JhbV90bGIoKSBmdW5jdGlvbiBoYWQgYSBwcm9ibGVtIHdoZW4KICAgIG11bHRpcGxlIFRMQidzIGhhZCB0byBiZSBzZXR1cCAoZm9yIGV4YW1wbGUgd2l0aCA1MTJNQiBvZiBTRFJBTSkuIFRoZQogICAgdmlydHVhbCBhZGRyZXNzIHdhcyBub3QgaW5jcmVtZW50ZWQuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZQogICAgYW5kIGlzIHRlc3RlZCBvbiBLYXRtYWkgd2l0aCA1MTJNQiBTRFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDIwMzJlOGYxNDc1MWExYTc1MWIwOTI0MGE0ZjFjZjlmOGEyMDc3ZgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdW4gMjIgMTQ6NTg6MDQgMjAwNyArMDIwMAoKICAgIFtwcGNdIEZpeCBidWlsZCBicmVha2FnZSBmb3IgYWxsIG5vbi00eHggUG93ZXJQQyB2YXJpYW50cy4KCiAgICAtIGFkYXB0IHRvIHRoZSBtb3JlIGdlbmVyaWMgRVhDRVBUSU9OX1BST0xPRyBhbmQgQ1JJVF9FWENFUFRJT04gbWFjcm9zCiAgICAtIG1pbm9yIDR4eCBjbGVhbnVwCgpjb21taXQgZDY3N2IzMjg1NWY1NzdhZTI2OTBkY2Q2NGExNzJjZGQ3MDZlMGZmYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIEp1biAyMiAxMDozNDoxMiAyMDA3ICswMjAwCgogICAgW3BhdGNoXSBhZGQgbmFuZF9pbml0KCkgcHJvdG90eXBlIHRvIG5hbmQuaAoKICAgIHNpbmNlIG5hbmRfaW5pdCgpIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBieSBvdGhlciBwYXJ0cyBvZiB1LWJvb3QsIHRoZXJlCiAgICBzaG91bGQgYmUgYSBwcm90b3R5cGUgZm9yIGl0IGluIG5hbmQuaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4M2I0Y2ZhM2Q2MjlkZmYwMjY0MzY2MjYzYzVlOTRkOWE1MGFkODBiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1biAyMCAxODoxNDoyNCAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFJlZnJlc2ggQ0hBTkdFTE9HLgoKY29tbWl0IGIzZjllYzg2ZTM4ODIwN2ZkMDNkY2RmN2IxNDViOWVkMDgwYmYwMjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdW4gMTkgMTc6MjI6NDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGJvb3RzdHJhcCBjb21tYW5kIGZvciBBTUNDIFNlcXVvaWEgKDQ0MEVQeCkgZXZhbCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGJvYXJkIGNvbW1hbmQgdG8gY29uZmlndXJlIHRoZSBJMkMgYm9vdHN0cmFwIEVFUFJPTQogICAgdmFsdWVzLiBSaWdodCBub3cgNTMzIGFuZCA2NjdNSHogYXJlIHN1cHBvcnRlZCBmb3IgYm9vdGluZyBlaXRoZXIgdmlhIE5PUgogICAgb3IgTkFORCBGTEFTSC4gSGVyZSB0aGUgdXNhZ2U6CgogICAgPT4gYm9vdHN0cmFwIDUzMyBub3IJO3RvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgZm9yIDUzM01IeiBOT1IgYm9vdGluZwogICAgPT4gYm9vdHN0cmFwIDY2NyBuYW5kCTt0byBjb25maWd1cmUgdGhlIGJvYXJkIGZvciA2NjdNSHogTk5BTkQgYm9vdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjhhMjRjZGQzMDE1MTUwNWNmNTdiYmVlNTI4OWU5MWJmNTNiZDFiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDE5IDE2OjQyOjMxIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBGaXggcHJvYmxlbSB3aXRoIE5BTkQgYm9vdGluZyBvbiBBTUNDIEFjYWRpYQoKICAgIFRoZSBsYXRlc3QgY2hhbmdlcyBzaG93ZWQgYSBwcm9ibGVtIHdpdGggdGhlIGxvY2F0aW9uIG9mIHRoZSBOQU5ELVNQTAogICAgaW1hZ2UgaW4gdGhlIE9DTSBhbmQgdGhlIGluaXQtZGF0YSBhcmVhIChpbmNsLiBjYWNoZSkuIFRoaXMgcGF0Y2gKICAgIGZpeGVzIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODZiYTk5ZTM0MTk0Mzk0MDUyZDI0YzA0ZGM0MGQxMjYzZDI5YTI2ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1biAxOSAxNjo0MDo1OCAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gQ2hhbmdlIGJvYXJkL2FtY2MvYWNhZGlhL2Nwci5jIHRvIHBsbC5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhlNTg1ZjAyZjgyYzE3Y2M2NmNkMjI5ZGJmMGZkMzA2NmJiYmY2NTgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDE4IDEzOjUwOjEzIDIwMDcgLTA1MDAKCiAgICBBZGRlZCBNNTMyOUFGRUUgYW5kIE01MzI5QkZFRSBQbGF0Zm9ybXMKCiAgICBBZGRlZCBib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIsIGNwdS9tY2Y1MzJ4LCBkcml2ZXJzL25ldCwKICAgIGRyaXZlcnMvc2VyaWFsLCAgaW1tYXBfNTMyOS5oLCBtNTMyOS5oLCBtY2ZydGMuaCwKICAgIGluY2x1ZGUvY29uZmlncy9NNTMyOUVWQi5oLCBsaWJfbTY4ay9pbnRlcnJ1cHRzLmMsIGFuZAogICAgcnRjL21jZnJ0Yy5jCgogICAgTW9kaWZpZWQgQ1JFRElUUywgTUFLRUZJTEUsIE1ha2VmaWxlLCBSRUFETUUsIGNvbW1vbi9jbWRfYmRpbmZvLmMsCiAgICBjb21tb24vY21kX21paS5jLCBpbmNsdWRlL2FzbS1tNjhrL2J5dGVvcmRlci5oLCBpbmNsdWRlL2FzbS1tNjhrL2ZlYy5oLAogICAgaW5jbHVkZS9hc20tbTY4ay9pby5oLCBpbmNsdWRlL2FzbS1tNjhrL21jZnRpbWVyLmgsCiAgICBpbmNsdWRlL2FzbS1tNjhrL21jZnVhcnQuaCwgaW5jbHVkZS9hc20tbTY4ay9wdHJhY2UuaCwKICAgIGluY2x1ZGUvYXNtLW02OGsvdS1ib290LmgsIGxpYl9tNjhrL01ha2VmaWxlLCBsaWJfbTY4ay9ib2FyZC5jLAogICAgbGliX202OGsvdGltZS5jLCBuZXQvZXRoLmMgYW5kIHJ0Yy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDkzMTcyZjA4ZDZhZmIzZjM0ZDhhMmYyNmVlMGVlODc0MjYxY2YyNwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEp1biAxNyAxOTowNDoxMSAyMDA3ICswMjAwCgogICAgW2ZpeF0gZW1haWwgcmVwYXJhdGlvbgoKY29tbWl0IDM2NjZhZmZmZTdiYWY4NTljNmFlMGNlMmJlYmJjOGFiN2U1MTJkZGMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBKdW4gMTcgMTk6MDM6MjEgMjAwNyArMDIwMAoKICAgIFtGSVhdIGZpeCBtaWNyb2JsYXplIGZpbGUgcGVybWl0aXNzaW9uCgpjb21taXQgZTczODQ2YjdjZjFlMjlhZTYzNWJmOWJiNTU3MDI2OTY2M2RmMmVlNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxNSAxMTozMzo0MSAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gQ2hhbmdlIGx3bW9uNSBwb3J0IHRvIHdvcmsgd2l0aCByZWNlbnQgNDQwIGV4Y2VwdGlvbiByZXdvcmsKCiAgICBOb3cgQ09ORklHXzQ0MCBoYXMgdG8gYmUgZGVmaW5lZCBpbiBhbGwgUFBDNDQwIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWZhMzVjZjEyZDkxNGQ0Y2FiYTk0MmFjZDVhNmM0NWYyMTdkZTMwMgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVuIDE1IDExOjE5OjI4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENsZWFuIHVwIDQ0MCBleGNlcHRpb25zIGhhbmRsaW5nCgogICAgLSBJbnRyb2R1Y2VkIGRlZGljYXRlZCBzd2l0Y2hlcyBmb3IgYnVpbGRpbmcgNDQwIGFuZCA0MDUgaW1hZ2VzIHJlcXVpcmVkCiAgICAgIGZvciA0NDAtc3BlY2lmaWMgbWFjaGluZSBpbnN0cnVjdGlvbnMgbGlrZSAncmZtY2knIGV0Yy4KCiAgICAtIEV4Y2VwdGlvbiB2ZWN0b3JzIG1vdmVkIHRvIHRoZSBwcm9wZXIgbG9jYXRpb24gKF9zdGFydCBtb3ZlZCBhd2F5IGZyb20KICAgICAgdGhlIGNyaXRpY2FsIGV4Y2VwdGlvbiBoYW5kbGVyIHNwYWNlLCB3aGljaCBpdCBvY2N1cGllZCkKCiAgICAtIENyaXRpY2FsSW5wdXQgbm93IHNlcnZpY2VkICh3aXRoIGRlZmF1bHQgaGFuZGxlcikKCiAgICAtIE1hY2hpbmVDaGVjayBwcm9wZXJseSBzZXJ2aWNlZCAoYWRkZWQgYSBkZWRpY2F0ZWQgaGFuZGxlciBhbmQgcmV0dXJuCiAgICAgIHN1YnJvdXRpbmUpCgogICAgLSBPdmVyYWxsIGNsZWFudXAgb2YgZXhjZXB0aW9ucyBkZWNsYXJlZCB3aXRoIFNURF9FWENFUFRJT04gbWFjcm8gKHVudXNlZCwKICAgICAgdW5oYW5kbGVkIGFuZCB0aG9zZSBub3QgcmVsZXZhbnQgZm9yIDR4eCB3ZXJlIGVsaW1pbmF0ZWQpCgogICAgLSBFbGltaW5hdGVkIExpbnV4IGxlZnRvdmVycywgcmVtb3ZlZCBkZWFkIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjc2NWZmYjc3M2Y1YTNjZDVhYTk0ZWM3NmI2YTA1Mjc2YjhjZDViMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxNSAwODoxODowMSAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gQWRkIGluaXRpYWwgbHdtb241IGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgaW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgTGllYmhlcnIgbHdtb241IGJvYXJkIGV1cWlwcGVkCiAgICB3aXRoIGFuIEFNQ0MgNDQwRVB4IFBvd2VyUEMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg1ZjczNzM3NmQ1ZmYzZDVmMGQ0NWE4YjY1NzY4NjMyNmQxNzUzMDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMTUgMDc6Mzk6NDMgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEV4dGVuZCA0NHggR1BJTyBzZXR1cCB3aXRoIGRlZmF1bHQgb3V0cHV0IHN0YXRlCgogICAgVGhlIGJvYXJkIGNvbmZpZyBhcnJheSBDRkdfNDQwX0dQSU9fVEFCTEUgZm9yIHRoZSBwcGM0NDAgR1BJTyBzZXR1cAogICAgaXMgZXh0ZW5kZWQgd2l0aCB0aGUgZGVmYXVsdCBHUElPIG91dHB1dCBzdGF0ZSAobGV2ZWwpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYmNhMjA4NTE4ZTVlN2YwMWE2NDIwNTg4ZDFjZDZlNjBkYjc0YzJiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVuIDE0IDExOjE0OjMyIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBFeHRlbmQgcHJvZ3JhbV90bGIoKSB3aXRoIHZpcnR1YWwgJiBwaHlzaWNhbCBhZGRyZXNzZXMKCiAgICBOb3cgcHJvZ3JhbV90bGIoKSBhbGxvd3MgdG8gcHJvZ3JhbSBhIFRMQiAob3IgbXVsdGlwbGUpIHdpdGgKICAgIGRpZmZlcmVudCB2aXJ0dWFsIGFuZCBwaHlzaWNhbCBhZGRyZXNzZXMuIFdpdGggdGhpcyBjaGFuZ2UsIG5vdyBvbmUKICAgIHBoeXNpY2FsIHJlZ2lvbiAoZS5nLiBTRFJBTSkgY2FuIGJlIG1hcHBlZCAyIHRpbWVzLCBvbmNlIHdpdGggY2FjaGVzCiAgICBkaWFibGVkIGFuZCBvbmNlIHdpdGggY2FjaGVzIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk5MTIxMjFmN2VkODA0ZWE1OGZkNjJmM2YyMzBiNWRjZmMzNTdkODgKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAyMyAxOTowMjo0MSAyMDA3ICswMjAwCgogICAgQ2hhbmdlICdyZXBlYXRhYmxlJyBhdHRyaWJ1dGUgb2Ygc29tZSBjb21tYW5kcyB0byBzZW5zaWJsZSB2YWx1ZXMuCgogICAgTW9zdCBwcm9taW5lbnRseSB0aGlzIGNoYW5nZXMgJ2VyYXNlJyB0byBiZSBub24tcmVwZWF0YWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA1YWZiMjAyMDkzZjZhMDAxNzk3ZGI5MmNmNjk1YjkzYTcwZWE5YWI0CkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMjMgMTg6NDc6NDggMjAwNyArMDIwMAoKICAgIEZpeCAncnVuJyBub3QgdG8gY29udGludWUgYWZ0ZXIgaW50ZXJydXB0ZWQgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDliNzQ2NGEyYzg4NjE0ZTEwNjFmNTA5YzQ4OTMwYTNkMjQwZDFhMzUKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDExIDE1OjE0OjI0IDIwMDcgKzAyMDAKCiAgICBVU0I6IFRoaXMgcGF0Y2ggZml4IHJlYWRsIGluIG9oY2kgc3dhcCByZWcgYWNjZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGY4NDE2ZmFkYTlmYWY5NGI5YTkyZjIxZmU2MDAwNjQzY2I1MjFkNQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBKdW4gOCAxNDo1MjoyMiAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogQWRkIEZsYXQgRGV2aWNlIFRyZWUgc3VwcG9ydCwgdXBkYXRlIGRlZmF1bHQgZW52LiBhY2NvcmRpbmdseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gV3JvYmVsIDx3cnJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTA0NWYzM2MwMjNmNjk4NjYwYTJlNDVkMWIyMTk0YzA3MTFhYmViYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gOCAxMDoyNDo1OCAyMDA3ICswMjAwCgogICAgRml4IGNvbmZpZyBwcm9ibGVtcyBvbiBTQzMgYm9hcmQ7IG1ha2UgaWRlX3Jlc2V0X3RpbWVvdXQgd29yay4KCmNvbW1pdCBmYmEzZmIwNDQ5YjhhNTQ1NDJhZWQxZTcyOWRlNzZlN2Y1YTJmZjFiCkF1dGhvcjogQmVub8OudCBNb25pbiA8Ym1vbmluQGFkZW5lby5ldT4KRGF0ZToJRnJpIEp1biA4IDA5OjU1OjI0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIGZpeCBncGlvIHNldHRpbmcgd2hlbiB1c2luZyBDRkdfNDQwX0dQSU9fVEFCTEUKCiAgICBTZXQgdGhlIGNvcnJlY3QgdmFsdWUgaW4gR1BJT3hfVENSIHdoZW4gY29uZmlndXJpbmcgdGhlIGdwaW8KICAgIHdpdGggQ0ZHXzQ0MF9HUElPX1RBQkxFLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbm9pdCBNb25pbiA8Ym1vbmluQGFkZW5lby5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNTM5ZWRjMDc2Y2ZlNTJiZmY5MTlkZDUxMmJhOGQ3YWYwZTIyMDkyCkF1dGhvcjogVmFkaW0gQmVuZGVidXJ5IDx2YmVuZGViQGdvb2dsZS5jb20+CkRhdGU6CVRodSBNYXkgMjQgMTU6NTI6MjUgMjAwNyAtMDcwMAoKICAgIGNvc21ldGljIGNoYW5nZXMgdG8gYmNtNTcweCBkcml2ZXIKCiAgICBUaGlzIGlzIGEgY29zbWV0aWMgb25seSBjaGFuZ2VzIHN1Ym1pc3Npb24uCiAgICBJdCBhZmZlY3RzIGZpbGVzIHJlbGV2YW50IHRvIGJjbTU3MHggZHJpdmVyLgogICAgdGhlIGNvbW1hbmRzIHVzZWQgdG8gZ2VuZXJhdGUgdGhpcyBjaGFuZ2Ugd2FzCgogICAgY2QgZHJpdmVycwogICAgTGluZGVudCAtcGNzIC1sODAgIGJjbTU3MHguYyAgIGJjbTU3MHhfbG0uaCAgIGJjbTU3MHhfbW0uaAl0aWdvbjMuYyAgdGlnb24zLmgKCiAgICBUaGUgQk1XIHRhcmdldCAodGhlIG9ubHkgb25lIHVzaW5nIHRoaXMgY2hpcCBzbyBmYXIpIGJ1aWxkcyBjbGVhbmx5LCB0aGUKICAgIGBiZWZvcmUgYW5kIGFmdGVyJyBnZW5lcmF0ZWQgb2JqZWN0IGZpbGVzIGZvciBkcml2ZXJzL2JjbTU3MHguYyBhbmQKICAgIGRyaXZlcnMvdGlnb24zLm8gYXJlIGlkZW50aWNhbCBhcyByZXBvcnRlZCBieSBvYmpkdW1wIC1kCgogICAgU2lnbmVkLW9mZi1ieTogVmFkaW0gQmVuZGVidXJ5IDx2YmVuZGViQGdvb2dsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA3MjU2NzFjY2QyY2QwNGM5ZWJjNTBjOWU1YTk0ZGQ4Y2JhZGU2NmI3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDE2OjI2OjU2IDIwMDcgKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cDsgZ2VuZXJhdGUgbmV3IENIQU5HRUxPRyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTlkNzYzYzM1ZTBiNTU2OGVhZjBiOGFkYmY3YTY4Y2NmZTdmYTI0MwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0OTo0NCAyMDA3ICswMjAwCgogICAgVFJBQiwgVVNCOiB1cGRhdGUgdHJhYiBib2FyZCBjb25maWd1cmF0aW9uIGZvciB1c2Ugb2YgZ2VuZXJpYyBvaGNpIGRyaXZlcgoKY29tbWl0IGRhY2U0NWFjZDFjMTM1N2RhYTkzMjIwOTlkMDdjOWE5ZTA4YjAwMjQKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDk6NDMgMjAwNyArMDIwMAoKICAgIFVTQjogb2hjaSBmaXhlcyBhbmQgY2xlYW51cCBmb3IgcHBjNHh4IGFuZCB5b3NlbWl0ZSBib2FyZC4KCmNvbW1pdCA3MjY1NzU3MGI2MTYzNWM3NGZhMGMzZjBlOWU3ZDA2NzFhOWQwOGRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQ5OjQzIDIwMDcgKzAyMDAKCiAgICBVU0I6IG9oY2kgZml4ZXMgYW5kIGNsZWFudXAgZm9yIG1wYzV4eHggYW5kIEljZUN1YmUgYm9hcmQgY29uZmlnCgpjb21taXQgZmM0M2JlNDc4ZjJhYTM3Y2UzOGFjZDg1MzU1MDM4ODY2ZTQxNjJhZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0OTozNSAyMDA3ICswMjAwCgogICAgVVNCL09IQ0k6IGVuZGlhbm5lc3MgY2xlYW51cCBpbiB0aGUgZ2VuZXJpYyBvaGNpIGRyaXZlcgoKY29tbWl0IGM0NDBiZmU2ZDZkOTJkNjY0NzhhN2U4NDQwMmIzMWY0ODQxMzYxN2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0MjoxMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIEFNQ0MgQWNhZGlhICg0MDVFWikgZXZhbCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQWNhZGlhIGV2YWwgYm9hcmQuCgogICAgUGxlYXNlIG1ha2Ugc3VyZSB0byBjb25maWd1cmUganVtcGVyIEo3IHRvIHBvc2l0aW9uIDItMyB3aGVuIGJvb3RpbmcKICAgIGZyb20gTk9SLCBhbmQgdG8gcG9zaXRpb24gMS0yIHdoZW4gYm9vdGluZyBmb3IgTkFORC4KCiAgICBJIGFsc28gYWRkZWQgYSBib2FyZCBjb21tYW5kIHRvIGNvbmZpZ3VyZSB0aGUgSTJDIGJvb3RzdHJhcCBFRVBST00KICAgIHZhbHVlcy4gUmlnaHQgbm93IG9ubHkgMjY3TUh6IGlzIHN1cHBvcnQgZm9yIGJvb3RpbmcgZWl0aGVyIHZpYSBOT1IKICAgIG9yIE5BTkQgRkxBU0guIEhlcmUgdGhlIHVzYWdlOgoKICAgID0+IGJvb3RzdHJhcCAyNjcgbm9yCTt0byBjb25maWd1cmUgdGhlIGJvYXJkIGZvciAyNjdNSHogTk9SIGJvb3RpbmcKICAgID0+IGJvb3RzdHJhcCAyNjcgbmFuZAk7dG8gY29uZmlndXJlIHRoZSBib2FyZCBmb3IgMjY3TUh6IE5OQU5EIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTgxMzUxMjVmOTA5OTQ4Yjg1ZDFkNjg4MWFiNGFjMGVmYjRhMWM1OApBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTQgMjAwNyArMDIwMAoKICAgIEZpbGVzIGluY2x1ZGUvbGludXgvYnl0ZW9yZGVyL3tiaWcsbGl0dGxlfV9lbmRpYW4uaCBkZWZpbmUKICAgIF9fQklHX0VORElBTiBhbmQgX19MSVRUTEVfRU5ESUFOLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGE4MWQxYzBiODViMTNlOWQ0NWYyZDg3ZGU5NmE1MWE2ZTBlZjBmODIKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTQgMjAwNyArMDIwMAoKICAgIEFkZCBVU0IgUENJLU9IQ0ksIFVTQiBrZXlib2FyZCBhbmQgZXZlbnQgcG9sbCBzdXBwb3J0IHRvIHRoZQogICAgTVBDODY0MUhQQ04gYm9hcmQgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZGFlMTRjZThmYmRmMzgwMDE3ZGM1NGYxNzIyMThlN2QyYWNjODg5CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjE0IDIwMDcgKzAyMDAKCiAgICBVU0IgUENJLU9IQ0ksIGludGVycnVwdCBwaXBlIGFuZCB1c2IgZXZlbnQgcG9sbCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRlZCBVU0IgUENJLU9IQ0kgY2hpcHMgc3VwcG9ydCwgaW50ZXJydXB0IHBpcGUgc3VwcG9ydAogICAgYW5kIHVzYiBldmVudCBwb2xsIHN1cHBvcnQuIEZvciBzdXBwb3J0aW5nIHRoZSBVU0IgaW50ZXJydXB0IHBpcGUsIHRoZQogICAgZ2xvYmUgdXJiX3ByaXYgaXMgbW92ZWQgdG8gcHVyYiBpbiBlZCBzdHJ1Y3QuIE5vdywgd2UgY2FuIHByb2Nlc3MKICAgIHNldmVyYWwgdXJicyBhdCBvbmUgdGltZS4gVGhlIGludGVycnVwdCBwaXBlIHN1cHBvcnQgY29kZXMgYXJlIHBvcnRlZAogICAgZnJvbSBMaW51eCBrZXJuZWwgMi40LgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmRjZmFhMWIwMjI2OGIyODk5ZTM3NGIzNWFkZjkzNmM5MTFhNDdlYgpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxMyAyMDA3ICswMjAwCgogICAgVVNCIGV2ZW50IHBvbGwgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBVU0IgZXZlbnQgcG9sbCBzdXBwb3J0LCB3aGljaCBjb3VsZCBiZSB1c2VkIGluIHVzYmtiZAogICAgYW5kIG90aGVyIHVzYiBkZXZpY2VzIGRyaXZlciB3aGVuIHRoZSBhc3luY2hyb25vdXMgaW50ZXJydXB0CiAgICBwcm9jZXNzaW5nIGlzIHN1cHBvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tCgpjb21taXQgOWExZDAwZmE0N2MxZTA1ZTNmZGI2MGIzMzIxM2FmNGUxOGQ0YzE4ZQpBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTIgMjAwNyArMDIwMAoKICAgIElTUDExNng6IGRlbGF5IGZvciBjcmFwcHkgVVNCIGtleXMKCiAgICBVc2luZyBzb21lICh2ZXJ5KSBzbG93IFVTQiBrZXlzIGNhdXNlIHRoZSBVU0IgaG9zdCBjb250cm9sbGVyIGJ1ZmZlcnMKICAgIGFyZSBub3QgcmVhZHkgdG8gYmUgcmVhZCBieSB0aGUgQ1BVIHNvIHdlIG5lZWQgYW4gZXh0cmEgZGVsYXkgYmVmb3JlCiAgICByZWFkaW5nIHRoZSBVU0Igc3RvcmFnZSBkYXRhLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IDA5NDQ0MTQzNjcwYzljMjI0M2NiN2FiYTlmNzBiMzcxM2QzM2JlZDEKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTIgMjAwNyArMDIwMAoKICAgIENoYW5nZSBkdXBsaWNhdGUgdXNiX2NwdV9pbml0X2ZhaWwgdG8gdXNiX2JvYXJkX2luaXRfZmFpbAoKICAgIFRoYW5rcyB0byBMaWV3IFRzaSBDaHVuZyA8VHNpLWNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4gZm9yIHBvaW50aW5nCiAgICB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDMyOTIyY2RjNDcwZmRmZDM5YmVhMGMxYzRmNTgyZDNmYjM0MDQyMWUKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDUgMTI6MzA6NTIgMjAwNyAtMDUwMAoKICAgIG1wYzg2NDEgaW1hZ2Ugc2l6ZSBjbGVhbnVwCgogICAgZTYwMCBkb2VzIG5vdCBoYXZlIGEgYm9vdHBnIHJlc3RyaWN0aW9uLgogICAgTW92ZSB0aGUgdmVyc2lvbiBzdHJpbmcgdG8gYmVnaW5uaW5nIG9mIGltYWdlIGF0IGZmZjAwMDAwLgogICAgUmVzZXR2ZWMuUyBpcyBub3QgbmVlZGVkLgogICAgVXBkYXRlIGZsYXNoIGNvcHkgaW5zdHJ1Y3Rpb25zLgogICAgQWRkIHRmdHBmbGFzaCBlbnYgdmFyaWFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlM2NiZTFmOTNjNTcyMmY4ZWJiYWQ0NjhlMzBjMDY5YTJiNTExMDk3CkF1dGhvcjogQmVub8OudCBNb25pbiA8Ym1vbmluQGFkZW5lby5ldT4KRGF0ZToJTW9uIEp1biA0IDA4OjM2OjA1IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEZpeCBwcGM0eHggYm9vdHN0cmFwIGxldHRlciBkaXNwbGF5ZWQgb24gc3RhcnR1cAoKICAgIFRoZSBhdHRhY2hlZCBwYXRjaCBpcyBtYWlubHkgY29zbWV0aWMsIGFsbG93aW5nIHUtYm9vdCB0bwogICAgZGlzcGxheSB0aGUgY29ycmVjdCBib290c3RyYXAgb3B0aW9uIGxldHRlciBhY2NvcmRpbmcgdG8gdGhlCiAgICBkYXRhc2hlZXRzLgoKICAgIFRoZSBvcmlnaW5hbCBwYXRjaCB3YXMgZXh0ZW5kZWQgd2l0aCA0MDVFWiBzdXBwb3J0IGJ5IFN0ZWZhbgogICAgUm9lc2UuCgogICAgU2lnbmVkLW9mZi1ieTogQmVub2l0IE1vbmluIDxibW9uaW5AYWRlbmVvLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDViMTMxM2ZiMjc1OGZmY2U4YjYyNDQ1N2Y3NzdkOGNjNjcwOTYwOGQKQXV0aG9yOiBOaWtpdGEgVi4gWW91c2hjaGVua28gPHlvdXNoQGRlYmlhbi5vcmc+CkRhdGU6CVdlZCBNYXkgMjMgMTI6NDU6MTkgMjAwNyArMDQwMAoKICAgIGZpeCBjb21waWxhdGlvbiBwcm9ibGVtIGZvciBtcGM4MzQ5aXR4IENGR19SQU1CT09UCgogICAgQ3VycmVudCBpbmNsdWRlL2NvbmZpZ3MvTVBDODM0OUlUWC5oIGRvZXMgY29udGFpbiBzb21lIHN1cHBvcnQgZm9yIGJ1aWxkaW5nCiAgICBpbWFnZSB0aGF0IHdpbGwgYmUgc3RhcnRlZCBmcm9tIG1lbW9yeSAod2l0aG91dCBwdXR0aW5nIGluIGludG8gZmxhc2gpLgogICAgSXQgY291bGQgYmUgdHJpZ2dlcmVkIGJ5IGJ1aWxkaW5nIHdpdGggVEVYVF9CQVNFIHNldCB0byBhIGxvdyB2YWx1ZS4KCiAgICBIb3dldmVyLCB0aGlzIHN1cHBvcnQgaXMgaW5jb21wbGV0ZTogdXNpbmcgb2YgbG93IFRFWFRfQkFTRSBjYXVzZXMKICAgIGRlZmluaW5nIGNvbmZpZ3VyYXRpb24gbWFjcm9zIGluIGluY29uc2lzdGVudCB3YXksIHdoaWNoIGxhdGVyIGxlYWRzCiAgICB0byBjb21waWxhdGlvbiBlcnJvcnMuIEluIHBhcnRpY3VsYXIuIGZsYXNoIHN1cHBvcnQgaXMgYmVpbmcgZGlzYWJsZWQsCiAgICBidXQgdGhlbiBmbGFzaCBzdHJ1Y3R1cmVzIGdldCByZWZlcmVuY2VkLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcywgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGggbG93IFRFWFRfQkFTRS4KCiAgICBTaWduZWQtT2ZmLUJ5OiBOaWtpdGEgWW91c2hjaGVua28gPHlvdXNoQGRlYmlhbi5vcmc+CgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YTM2NGYwOTcwZGU0OTk0OWQ2MzVlNjBhY2NmNDYzYzY0NDNlZjhjCkF1dGhvcjogTmlraXRhIFYuIFlvdXNoY2hlbmtvIDx5b3VzaEBkZWJpYW4ub3JnPgpEYXRlOglXZWQgTWF5IDIzIDEyOjQ1OjI1IDIwMDcgKzA0MDAKCiAgICBhZGQgbWlzc2luZyAnY29uc29sZScgdmFyIHRvIGRlZmF1bHQgbXBjODM0OWl0eCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE4ZDE1NmViMzdjOTBmYWRjOGVjN2E4MWEzYjg5MTc2MTYxZjg1YjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNjoxODoxNyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgbWlzc2luZyBmaWxlIGZvciBCYW1ib28gTkFORCBib290aW5nIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTU1YTk2NDc4YTA4ODFlNmRhOTZjYmJiY2YzNDk1MmQ2YTNiMWI0YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjU4OjE5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVuZG8gU2VxdW9pYSBwYXRjaCBmb3IgZHluYW1pYyBFQkMgc3BlZWQgc3VwcG9ydCBvZiA4M01IegoKICAgIFRoaXMgcGF0Y2ggdW5kb2VzIHRoZSBwYXRjaCBieSBKZWZmIE1hbm4gd2l0aCBjb21taXQtaWQgYWRhNDY5N2QuIEFzCiAgICBzdWdnZXN0ZWQgYnkgQU1DQyBpdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gZHluYW1pY2FsbHkgY2hhbmdlIHRoZSBFQkMKICAgIHNwZWVkIGFmdGVyIGJvb3R1cC4gU28gd2UgdW5kbyB0aGlzIGNoYW5nZSB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZDkwOTYwNDNlOGY3MTNkNGJmMTc0M2QzMmUxNDU5ZTZhMTE2NDRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6Mjk6MDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIFNlcXVvaWEgTkFORCBib290aW5nIHN1cHBvcnQgd2l0aCBFQ0MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2Y5NTljN2Q2Njg3NTY3YzMwOGUzNjZlOTU4MWUxYTVhZmY1Y2M1YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjI3OjExIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgQU1DQyBCYW1ib28gKDQ0MEVQKSBldmFsIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciB0aGUgQU1DQyBCYW1ib28gZXZhbCBib2FyZC4KICAgIFNpbmNlIHRoZSBOQU5ELVNQTCBib290IGltYWdlIGlzIGxpbWl0ZWQgdG8gNGtieXRlcywgdGhpcyB2ZXJzaW9uCiAgICBvbmx5IHN1cHBvcnRzIHRoZSBvbmJvYXJkIDY0TUJ5dGVzIG9mIEREUi4gVGhlIERJTU0gbW9kdWxlcyBjYW4ndCBiZQogICAgc3VwcG9ydGVkLCBzaW5jZSB0aGUgc2V0dXAgY29kZSBmb3IgSTJDIERJTU0gYXV0b2RldGVjdGlvbiBhbmQKICAgIGNvbmZpZ3VyYXRpb24gaXMgdG9vIGJpZyBmb3IgdGhpcyBOQU5EIGJvb3Rsb2FkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQyYmU1NmY1M2M4YjEwNzg2OGU2MTI1Yzg1MjRhZTg0MjkzZTk1YTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToyMzowNCAyMDA3ICswMjAwCgogICAgTkFORDogQWRkIEVDQyBzdXBwb3J0IHRvIE5BTkQgYm9vdGluZyBzdXBwb3J0IGluIG5hbmRfc3BsL25hbmRfYm9vdC5jCgogICAgVGhlIFUtQm9vdCBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBpcyBub3cgZXh0ZW5kZWQgdG8gc3VwcG9ydCBFQ0MKICAgIHVwb24gbG9hZGluZyBvZiB0aGUgTkFORCBVLUJvb3QgaW1hZ2UuCgogICAgVGVzdGVkIG9uIEFNQ0MgU2VxdW9pYSAoNDQwRVB4KSBhbmQgQmFtYm9vICg0NDBFUCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0NzFkYjA3ZmJiNjVhODQxZmZjOWY0ZjExMjU2MmI5NDUyMzBmOTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToxOToyOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBQcmVwYXJlIEJhbWJvbyBwb3J0IGZvciBOQU5EIGJvb3Rpbmcgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgIm5vcm1hbCIgQmFtYm9vIE5PUiBib290aW5nIHBvcnQsIHNvCiAgICB0aGF0IGl0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgY29taW5nIHNvb24gTkFORCBib290aW5nCiAgICBCYW1ib28gcG9ydC4KCiAgICBJdCBhbHNvIGVuYWJsZXMgdGhlIDJuZCBOQU5EIGZsYXNoIG9uIHRoZSBCYW1ib28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzYWQwMjEwM2ZiOGJlNDEzOGE5OTM3YThhYjkxZmNkZmY3YjQ5ODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToxNjo1OCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgaW5fYmUzMigpIGZ1bmN0aW9ucyBhbmQgZnJpZW5kcyB0byBsYXRlc3QgTGludXggdmVyc2lvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MWRhMDljZmJjZTBjMWRlMDVkNmQ4NGFhODM2M2Q2NjZmYTdlYTNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MTU6MTIgMjAwNyArMDIwMAoKICAgIE5BTkQ6IEFkZCBoYXJkd2FyZSBFQ0Mgc3VwcG9ydCB0byB0aGUgUFBDNHh4IE5BTkQgZHJpdmVyIG5kZmMuYwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBoYXJkd2FyZSBFQ0Mgc3VwcG9ydCB0byB0aGUgTkRGQyBkcml2ZXIuIEl0IGFsc28KICAgIGNoYW5nZXMgdGhlIHJlZ2lzdGVyIGFjY2VzcyBmcm9tIHVzaW5nIHRoZSAic2ltcGxlIiBpbjMyL291dDMyCiAgICBmdW5jdGlvbnMgdG8gdGhlIGluX2JlMzIvb3V0X2JlMzIgZnVuY3Rpb25zLCB3aGljaCBtYWtlIHN1cmUKICAgIHRoYXQgdGhlIGFjY2VzcyBpcyBjb3JyZWN0bHkgc3luY2VkLiBUaGlzIGlzIHRoZSBvbmx5IHJlY29tbWVuZGVkCiAgICBhY2Nlc3MgdG8gU29DIHJlZ2lzdGVycyBpbiB0aGUgY3VycmVudCBMaW51eCBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE3YjVlODYyMjg3Y2NhNzZmMTlkY2Y4Yjc0MWU2MWE3ZDA2NjE3ZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToxMjoxNSAyMDA3ICswMjAwCgogICAgTkFORDogVXBkYXRlIG5hbmRfZWNjLmMgdG8gbGF0ZXN0IExpbnV4IHZlcnNpb24KCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIG5hbmRfZWNjIGNvZGUgdG8gdGhlIGxhdGVzdCBMaW51eCB2ZXJzaW9uLgogICAgVGhlIG1haW4gcmVhc29uIGZvciB0aGlzIGlzIHRoZSBtb3JlIGNvbXBhY3QgY29kZS4gVGhpcyBtYWtlcwogICAgaXQgcG9zc2libGUgdG8gaW5jbHVkZSB0aGUgRUNDIGNvZGUgaW50byB0aGUgTkFORCBib290bG9hZGVyCiAgICBpbWFnZSAoTkFORF9TUEwpIGZvciBQUEM0eHguCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQyZDQzMjc2MGQyMTk5ZDBlODU1OGZkZDlkMTc4OWI4MTMxYWJjZjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNTowOTo1MCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiA0NHggRERSIGRyaXZlciBjb2RlIGNsZWFudXAgYW5kIHNtYWxsIGZpeCBmb3IgQmFtYm9vCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU0YmJlZDI4MDNhMmFkMDUyMWM3MzYyZjVkM2UwNjVmOTlhYmFlZGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxMzo0NToyNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgTHVhbiBjb25maWcgZmlsZSB0byBzdXBwb3J0IEVDQwoKICAgIFdpdGggdGhlIHVwZGF0ZWQgNDR4IEREUjIgZHJpdmVyIHRoZSBMdWFuIGJvYXJkIG5vdyBzdXBwb3J0cwogICAgRUNDIGdlbmVyYXRpb24gYW5kIGNoZWNraW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MTg3ZGI3MzQ5MWM4ZGUwZmI1NmVmYjVlNTEzNGJhNWVjNDQzMDg5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTM6NDU6MDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0eF9zcGRfZGRyMiBjb2RlICg0NDBTUC80NDBTUGUpCgogICAgQWRkIGNvbmZpZyBvcHRpb24gZm9yIDE4MCBkZWdyZWUgYWR2YW5jZSBjbG9jayBjb250cm9sIGFzIG5lZWRlZAogICAgZm9yIHRoZSBBTUNDIEx1YW4gZXZhbCBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWUxNTI5ODM4YWJiZmFhMzVmMTRlM2ZmYmVhYWJhNjkzMTU5NDc1ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMzEgMTc6MjA6MDkgMjAwNyArMDIwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTVFggR1AzU1NBIChzdHhzc2EpIEJvYXJkIHdpdGggNCBNaUIgZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3MDQ5Mjg4ZmIxZjE2ZjFiMzE3MTQwMjI2Y2RlYmQwN2JkNDE2Mzk1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzoyNjo0NiAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQ29kZSBjbGVhbnVwLCBmaXggb2YgYSB0eXBvIGluIE9GX1NURE9VVF9QQVRILgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNDUyMGZkNGQyYzQ1MGRhNDk2MzcyMTZhYTBlNTM3MzliNjFjNjBhYwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MDY6MzYgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBzdXBwb3J0IGZvciByZWR1bmRhbnQgZW52aXJvbm1lbnQuCgogICAgRW5hYmxlIHJlZHVuZGFudCBlbnZpcm9ubWVudCwgYWRkIGEgTVREIHBhcnRpdGlvbiBmb3IgaXQ7IGFsc28gYWRkIGVudi4KICAgIHZhcmlhYmxlIGNvbW1hbmQgZm9yIHBhc3NpbmcgTVREIHBhcnRpdGlvbnMgdG8gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGEyNmVhYmVlYzMxNzQ2ZjA2ZDMwOTEwMzY5MDg5MjgwNTY5NmUzNDQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjA1OjExIDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBDaGFuZ2UgbWF4aW11bSBjb25zb2xlIGJ1ZmZlciBzaXplIGZyb20gMjU2IHRvIDEwMjQgYnl0ZXMuCgogICAgQWxsb3cgcGFzc2luZyBsb25nZXIgY29tbWFuZCBsaW5lIHRvIHRoZSBrZXJuZWwgLSB1c2VmdWwgZXNwZWNpYWxseQogICAgZm9yIHBhc3NpbmcgTVREIHBhcnRpdGlvbiBsYXlvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkxNjBiOTZmNzE0ODNhMTE2ZGU4MWM2ODk4NWU4ZWUzMDZkMzY3NjQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjA0OjE4IDIwMDcgKzAyMDAKCiAgICBGaXg6IEFkZCBtaXNzaW5nIE5VTEwgdGVybWluYXRpb24gaW4gc3RyaW5ncyBleHBhbmRlZCBieSBtYWNyb3MgcGFyc2VyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2MzBlYzg0YWVmNzIyOGZjMWRiZmIzOGRlYzc4NTQxNDAzYTc4NmNkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzowMzozNyAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogVXBkYXRlIEVFUFJPTSdzIHBhZ2Ugd3JpdGUgYml0cyBhbmQgd3JpdGUgZGVsYXkuCgogICAgQ2hhbmdlIEVFUFJPTSBjb25maWd1cmF0aW9uIGFjY29yZGluZyB0byB0aGUgZGF0YXNoZWV0OiAiVGhlIDI0QzAxQSBhbmQgMjRDMDJBCiAgICBoYXZlIGEgcGFnZSB3cml0ZSBjYXBhYmlsaXR5IG9mIHR3byBieXRlcyIsIGFuZCAiVGhpcyBkZXZpY2Ugb2ZmZXJzIGZhc3QgKDFtcykKICAgIGJ5dGUgd3JpdGUiLiBBZGQgM21zIG9mIGV4dHJhIGRlbGF5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjMDAxMjVlMDdjMWViYzEyNWJhYjQwZTFlMThiY2VlZDhiZTBjMTYyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1ODo0NSAyMDA3ICswMjAwCgogICAgTVBDNVhYWCwgTW90aW9uLVBSTzogRml4IFBIWSBpbml0aWFsaXphdGlvbiBwcm9ibGVtLgoKICAgIEFmdGVyIGJlaW5nIHJlc2V0IGluIG1wYzV4eHhfZmVjX2luaXRfcGh5KCksIFBIWSBnb2VzIGludG8gRlggbW9kZSwgaW4gd2hpY2gKICAgIG5ldHdvcmtpbmcgZG9lcyBub3QgZnVuY3Rpb24uIFRoaXMgY29tbWl0IHN3aXRjaGVzIFBIWSB0byBUWCBtb2RlIGJ5IGNsZWFyaW5nCiAgICB0aGUgRlhfU0VMIGJpdCBvZiBNb2RlIENvbnRyb2wgUmVnaXN0ZXIuIEl0IGFsc28gcmV2ZXJzZXMgY29tbWl0CiAgICAwMDg4NjFhMmYzZWYyYzA2Mjc0NGQ3MzM3ODdjN2U1MzBhMWI4NzYxLCBpLmUuLCBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTNiNzhmNTM0YTZlNzA4YjRjZjFhNGZmYjRkODQzOGM2N2EwMDdkYgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTc6MTUgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBzdXBwb3J0IGZvciB0aGUgdGVtcGVyYXR1cmUgc2Vuc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjNzVlNjM5NjMwY2MxMzJkYzE5Y2QxZWNkYTU5MjJjMGRiMGJmYmJhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1NToyMyAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIGRpc3BsYXlpbmcgb2YgQ1BMRCByZXZpc2lvbiBpbmZvcm1hdGlvbiBkdXJpbmcgYm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gV3JvYmVsIDx3cnJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzk5NTEyZDZiZDM5NzNmMDFjYTJmYzQ4OTZkODI5YjQ2ZTY4ZjE1MApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTM6NDMgMjAwNyArMDIwMAoKICAgIE1QQzV4eHg6IENoYW5nZSBuYW1lcyBvZiBkZWZpbmVzIHJlbGF0ZWQgdG8gSVBCIGFuZCBQQ0kgY2xvY2tzLgoKICAgIEJvdGggQ0ZHX1BDSVNQRUVEXzY2IGFuZCBDRkdfSVBCU1BFRURfMTMzIGFyZSBtaXNuYW1lZCwgYXMgZGVmaW5pbmcKICAgIHRoZW0gZG9lcyBub3QgY2F1c2UgUENJIG9yIElQQiBjbG9ja3MgdG8gcnVuIGF0IHRoZSBzcGVjaWZpZWQgc3BlZWQuCiAgICBJbnN0ZWFkLCB0aGV5IGNvbmZpZ3VyZSBkaXZpc29ycyB1c2VkIHRvIGNhbGN1bGF0ZSBzYWlkIGNsb2Nrcy4gVGhpcwogICAgcGF0Y2ggcmVuYW1lcyB0aGUgZGVmaW5lcyBhY2NvcmRpbmcgdG8gdGhlaXIgcmVhbCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGExMWMwYjg1ZGMzNjY0YmIzYzFlNzgxMTM3MTE4NzMwYzhmNjE5YWIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjUxOjQ4IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgTEVEIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFuIFdyb2JlbCA8d3JyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3ZWJiNDQ3OWIwN2ZmMjk0ZWI0ZDc2ZTQyMDc1M2EwMzQ5ZjdjOTNiCkF1dGhvcjogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+CkRhdGU6CVRodSBNYXkgMjQgMTI6MTI6NDcgMjAwNyArMDIwMAoKICAgIFtQQVRDSF1bTkFORF0gRGVmaW5lIHRoZSBWZW5kb3IgSWQgZm9yIE1pY3JvbiBOQU5EIEZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDc1Njg5NDcyMmM4ODhkMDlhOWZhMWRmODMyMzc1Mzc3MmQzZGNjZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSAyNCAwOTo0OTowMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggc21hbGwgNDA1RVogT0NNIGluaXRpbGl6YXRpb24gYnVnIGluIHN0YXJ0LlMKCiAgICBBcyBwb2ludGVkIG91dCBieSBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAYWNtLm9yZz4gdGhpcyBwYXRjaAogICAgZml4ZXMgYSBzbWFsbCBidWcgaW4gdGhlIDQwNUVaIE9DTSBpbml0aWFsaXphdGlvbi4gVGhhbmtzIGZvcgogICAgc3BvdHRpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVkNGExNzkwMTNkNTlhNzY0NDY0NjJlMWViMGE5NjlmYmE2M2ViODEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMjQgMDg6MjI6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgQWNhZGlhIHN1cHBvcnQgZm9yIGJvYXJkIHJldmlzaW9uIDEuMQoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgQWNhZGlhICg0MDVFWikgc3VwcG9ydCBmb3IgdGhlIG5ldyAxLjEgYm9hcmQKICAgIHJldmlzaW9uLiBJdCBhbHNvIGFkZHMgc3VwcG9ydCBmb3IgTkFORCBGTEFTSCB2aWEgdGhlIDR4eCBOREZDLgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhlIGp1bXBlciBKNyBtdXN0IGJlIGluIHBvc2l0aW9uIDItMyBmb3IgdGhpcwogICAgTkFORCBzdXBwb3J0LiBQb3NpdGlvbiAxLTIgaXMgZm9yIE5BTkQgYm9vdGluZyBvbmx5LiBOQU5EIGJvb3RpbmcKICAgIHN1cHBvcnQgd2lsbCBmb2xsb3cgbGF0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgyMmQ1NTM2NWJiNTU3ZTA4NGQwZTMzNjI1YTZkZWRjYzg2NjExMGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDIzIDE0OjA5OjQ2IDIwMDcgLTA1MDAKCiAgICBBZGQgTElTVF84Nnh4IE1BS0VBTEwgdGFyZ2V0IGZvciBQb3dlclBDIGJ1aWxkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlmMDA3N2FiZDY5ZjdhN2M3NTZhOTE1Yjk2MTAzNzMwMmJlM2U2ZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjIgMTI6NDg6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXNlIGRvIHsgLi4uIH0gd2hpbGUgKDApIGZvciBDUFIgJiBTRFIgYWNjZXNzIG1hY3JvcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZjNkZmMxMzlhODM4YjA4NDFjMTUxZWZlMDBhZDQ3ZGIyMzY2ZTc5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIyIDEyOjQ2OjEwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCA0MDUgc3VwcG9ydCB0byA0eHggTkFORCBkcml2ZXIgbmRmYy5jCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIDQwNSBQUEMncyB0byB0aGUgNHh4IE5BTkQgZHJpdmVyCiAgICBuZGZjLmMuIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSBuZXcgQU1DQyA0MDVFWi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTA2MDNkNzY3Njc0MjZiZTgwM2RhZGQ0ZmI2ODhiOTdlYjY5NDgxYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAyMSAwNzo0MToyMiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSBpbiA0MDVFWiBPQ00gaW5pdGlhbGl6YXRpb24KCiAgICBBcyBzcG90dGVkIGJ5IEJydWNlIEFkbGVyIHRoaXMgcGF0Y2ggZml4ZXMgYW4gaW5pdGlhbGl6YXRpb24gcHJvYmxlbQogICAgZm9yIHRoZSA0MDVFWiBPQ00uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNlM2I5NTY5MDZlYmE5ZTRhZDc5MzE1ODFlY2VkYWFkMTBlY2NjZTgKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgTWF5IDE4IDE2OjQ3OjAzIDIwMDcgKzAxMDAKCiAgICBSZWR1Y2UgbGluZSBsZW5ndGhzIHRvIDgwIGNoYXJhY3RlcnMgbWF4LgoKY29tbWl0IDkzZWY0NWM5ZGRmZGQ5ZmMxN2M0ZTc0YmQ4ZTJmMjQ1NjU4MGViNzIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgTWF5IDE4IDE0OjM0OjA3IDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSBwZXJtaXNzaW9ucwoKY29tbWl0IDE0NDNhMzE0NTdkNjhmN2U4ZjBiOTQwM2U5ODMyZWMxZTc5ZGM1OWQKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgTWF5IDE4IDE0OjMzOjExIDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSBwZXJtaXNzaW9ucwoKY29tbWl0IDI1NWEzNTc3Yzg0ODcwNjQ0MWRhZWUwMTc0NTQzZWZlMjA1YTc3ZjgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDE2IDE2OjUyOjE5IDIwMDcgLTA1MDAKCiAgICBSZWR1Y2UgQ09ORklHX01QQzhZWFhfVFNFQ3ggdG8gQ09ORklHX1RTRUN4CgogICAgRm9yIGFsbCBwcmFjdGljYWwgdS1ib290IHB1cnBvc2VzLCBUU0VDcyBkb24ndCBkaWZmZXIgdGhyb3VnaG91dCB0aGUKICAgIG1wYzhbMzU2XXh4IGZhbWlsaWVzOyByZWR1Y2UgQ09ORklHX01QQzhZWFhfVFNFQ3ggdG8gQ09ORklHX1RTRUN4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzAxMjRjMjYwMmFlMmQ0YzVkM2RiYTA1YjQ4MmQ5MTU0ODI0MmRlOApBdXRob3I6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE2IDE0OjQ5OjEyIDIwMDcgKzAyMDAKCiAgICBGaXggY29tcGlsZSBwcm9ibGVtIGNhdXNlIG15IE1pY3JvYmxhemUgbWVyZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCBhZGE0Njk3ZDAyMzBkNmRhNTUyODY3Nzc3Zjk4YTY3ZWMzYmEyNTc5CkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CVdlZCBNYXkgMTYgMTM6MjM6MTAgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gUnVuIG5ldyBzZXF1b2lhIGJvYXJkcyB3aXRoIGFuIEVCQyBzcGVlZCBvZiA4M01IegoKICAgIEJlY2F1c2UgdGhlIFNlcXVvaWEgYm9hcmQgZG9lcyBub3QgYm9vdCB3aXRoIGFuIEVCQyBmYXN0ZXIgdGhhbiA2Nk1IeiwKICAgIHRoZSBjbG9jayBkaXZpZGVyIGFyZSBjaGFuZ2VkIGFmdGVyIHRoZSBpbml0aWFsIGJvb3QgcHJvY2Vzcy4KCiAgICBUaGlzIGFsbG93cyBmb3IgbWF4aW11bSBjbG9ja2luZyBzcGVlZHMgIHRvIGJlIGFjaGlldmVkIG9uIG5ld2VyIGJvYXJkcy4KICAgIFNlcXVvaWEgYm9hcmRzIHdpdGggNjY2LjY2IE1IeiBwcm9jZXNzb3JzIHJlcXVpcmUgdGhhdCB0aGUgRUJDIGRpdmlkZXIKICAgIGJlIHNldCB0byAzIGluIG9yZGVyIHRvIHN0YXJ0IHRoZSBpbml0aWFsIGJvb3QgcHJvY2VzcyBhdCBhIHNsb3dlciBFQkMKICAgIHNwZWVkLiBBZnRlciB0aGUgaW5pdGlhbCBib290IHByb2Nlc3MsIHRoZSBkaXZpZGVyIGNhbiBiZSBzZXQgYmFjayB0byAyLAogICAgd2hpY2ggd2lsbCBjYXVzZSB0aGUgYm9hcmRzIHRvIHJ1biBhdCA4My4zMzNNSHouIFRoaXMgaXMgYmFja3dhcmQKICAgIGNvbXBhdGlibGUgd2l0aCBib2FyZHMgd2l0aCA1MzMuMzMgTUh6IHByb2Nlc3NvcnMsIGFzIHRoZXNlIGJvYXJkcyB3aWxsCiAgICBhbHJlYWR5IGJlIHNldCB3aXRoIGFuIEVCQyBkaXZpZGVyIG9mIDIuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+Cgpjb21taXQgYTc2NzZlYTc3MzJmM2M1OTY4MDUwNzlmZWQ3ZTVjOWZhYzY1MmNmYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTYgMDE6MTY6NTMgMjAwNyArMDIwMAoKICAgIE1pbm9yIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDYyZjY0Y2MyM2E5NDBlYWZlNzEyYzc3NmIzMjQ5ZTQxNjA3NTNkMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTYgMDA6MTM6MzMgMjAwNyArMDIwMAoKICAgIENvZGluZyBTdHlsZSBDbGVhbnVwLCBuZXcgQ0hBTkdFTE9HCgpjb21taXQgMzE2MmViODM2OTAzYzhiMjQ3ZmRjNzQ3MGRkMzliZmE2OTk2ZjQ5NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMTUgMjM6Mzg6MDUgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDY2ZDlkYmVjMWNjMjdkNjM5OGVlNmNmODQ2MzlkYmUxNDk3MTI1MWUKQXV0aG9yOiBtdXNodGFxIGtoYW4gPG11c2h0YXFfa0Bwcm9jc3lzLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDoyMzowMiAyMDA3ICswNTMwCgogICAgQWRkIGRyaXZlciBmb3IgUy1BVEEtY29udHJvbGxlciBvbiBJbnRlbCBwcm9jZXNzb3JzIHdpdGggU291dGgKICAgIEJyaWRnZSwgSUNILTUsIElDSC02IGFuZCBJQ0gtNy4KCiAgICBJbXBsZW1lbnRhdGlvbjoKCiAgICAxLiBDb2RlIGlzIGRpdmlkZWQgaW4gdG8gdHdvIGZpbGVzLiBBbGwgZnVuY3Rpb25zLCB3aGljaCBhcmUKICAgICAgIGNvbnRyb2xsZXIgc3BlY2lmaWMgYXJlIGtlcHQgaW4gImRyaXZlcnMvYXRhX3BpaXguYyIgZmlsZSBhbmQKICAgICAgIGZ1bmN0aW9ucywgd2hpY2ggYXJlIG5vdCBjb250cm9sbGVyIHNwZWNpZmljLCBhcmUga2VwdCBpbgogICAgICAgImNvbW1vbi9jbWRfc2F0YS5jIiBmaWxlLgoKICAgIDIuIFJlYWRpbmcgYW5kIFdyaXRpbmcgZnJvbSB0aGUgUy1BVEEgZHJpdmUgaXMgZG9uZSB1c2luZyBQSU8gbWV0aG9kLgoKICAgIDMuIERyaXZlciBjYW4gYmUgY29uZmlndXJlZCBmb3IgNDgtYml0IGFkZHJlc3NpbmcgYnkgZGVmaW5pbmcgbWFjcm8KICAgICAgIENPTkZJR19MQkE0OCwgaWYgdGhpcyBtYWNybyBpcyBub3QgZGVmaW5lZCBkcml2ZXIgdXNlcyB0aGUgMjgtYml0CiAgICAgICBhZGRyZXNzaW5nLgoKICAgIDQuIFMtQVRBIHJlYWQgZnVuY3Rpb24gaXMgaG9va2VkIHRvIHRoZSBGaWxlIHN5c3RlbSwgY29tbWFuZHMgbGlrZQogICAgICAgZXh0MmxzIGFuZCBleHQybG9hZCBmaWxlIGNhbiBiZSB1c2VkLiBUaGlzIGhhcyBiZWVuIHRlc3RlZC4KCiAgICA1LiBVLUJvb3QgY29tbWFuZCAiU0FUQV9pbml0IiBpcyBhZGRlZCwgd2hpY2ggaW5pdGlhbGl6ZXMgdGhlIFMtQVRBCiAgICAgICBjb250cm9sbGVyIGFuZCBpZGVudGlmaWVzIHRoZSBTLUFUQSBkcml2ZXMgY29ubmVjdGVkIHRvIGl0LgoKICAgIDYuIFUtQm9vdCBjb21tYW5kICJzYXRhIiBpcyBhZGRlZCwgd2hpY2ggaXMgdXNlZCB0byByZWFkL3dyaXRlLCBwcmludAogICAgICAgcGFydGl0aW9uIHRhYmxlIGFuZCBnZXQgaW5mbyBhYm91dCB0aGUgZHJpdmVzIHByZXNlbnQuIFRoaXMgSSBoYXZlCiAgICAgICBpbXBsZW1lbnRlZCBpbiBzYW1lIHdheSBhcyAiaWRlIiBjb21tYW5kIGlzIGltcGxlbWVudGVkIGluIFUtQm9vdC4KCiAgICA3LiBUaGlzIGRyaXZlciBpcyBmb3IgUy1BVEEgaW4gbmF0aXZlIG1vZGUuCgogICAgOC4gVGhpcyBkcml2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgTmF0aXZlIGNvbW1hbmQgcXVldWluZyBhbmQKICAgICAgIEhvdC1wbHVnZ2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNdXNodGFxIEtoYW4gPG11c2h0YXFfa0Bwcm9jc3lzLmNvbT4KCmNvbW1pdCA2NDRlNmZiNGViOGJlOTBlYTA0YmEzNGI2NDNhOGJmMDE5ZDY4MGUwCkF1dGhvcjogbXVzaHRhcSBraGFuIDxtdXNodGFxX2tAcHJvY3N5cy5jb20+CkRhdGU6CU1vbiBBcHIgMzAgMTU6NTc6MjIgMjAwNyArMDUzMAoKICAgIEZpeGVzIGJ1ZyBjbGVhcmluZyB0aGUgYnNzIHNlY3Rpb24gZm9yIGkzODYKCiAgICBIaSwKICAgIFRoZXJlIGlzIGEgYnVnIGluIHRoZSBjb2RlIG9mIGNsZWFyaW5nIHRoZSBic3Mgc2VjdGlvbiBmb3IgcHJvY2Vzc29yCiAgICBpMzg2LihGaWxlOiBjcHUvaTM4Ni9zdGFydC5TKQogICAgSW4gdGhlIGNvZGUsIGJzc19zdGFydCBhZGRyIChzdGFydGluZyBhZGRyIG9mIGJzcyBzZWN0aW9uKSBpcyBwdXQgaW50bwogICAgdGhlIHJlZ2lzdGVyICVlYXgsIGJ1dCB0aGUgY29kZSB3aGljaCBjbGVhcnMgdGhlIGJzcyBzZWN0aW9uIHJlZmVycyB0bwogICAgdGhlIGFkZHIgcG9pbnRlZCBieSAlZWRpLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBidWcgYnkgcHV0dGluZyBic3Nfc3RhcnQgaW50byAlZWRpIHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE11c2h0YXEgS2hhbiA8bXVzaHRhcV9rQHByb2NzeXMuY29tPgoKY29tbWl0IGMzMjQzY2Y3YjQ5MDA1NzI3N2Q2MWFjZmZlNGFkMDk0NmY5ZWI0YTQKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglNb24gQXByIDMwIDE2OjQ3OjI4IDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQkNNNTQ2NCBRdWFkIFBoeQoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIEJyb2FkY29tJ3MgQkNNNTQ2NCBRdWFkIFBoeQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+Cgpjb21taXQgMWIzMDViZGM3NTRjODQ2OGUxZDVkODU4ZjVkY2Y4YTdhMGE0YmI3YQpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgOSAwODoxMDo1NyAyMDA3ICswODAwCgogICAgU2VhcmNoIHRoZSBleGNlcHRpb24gdGFibGUgd2l0aCBsaW5lYXIgYWxnb3JpdGhtCgogICAgU2VhcmNoIHRoZSBleGNlcHRpb24gdGFibGUgd2l0aCBsaW5lYXIgYWxnb3JpdGhtIGluc3RlYWQgb2YKICAgIGJpc2VjdGluZyBhbGdvcml0aG0uCiAgICBCZWNhdXNlIHRoZSBleGNlcHRpb24gdGFibGUgbWlnaHQgYmUgdW5zb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkZmFhNTBlYjgxOTY4NmJmYmExOTI3ZThjNWI4YTcwYTRkNjVmZDMKQXV0aG9yOiBBdWJyZXkuTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWF5IDE0IDExOjQ3OjM1IDIwMDcgKzA4MDAKCiAgICBGaXggY29tcGlsYXRpb24gaXNzdWVzIG9uIE1BQ09TWAoKICAgIFNpbmdlZC1vZmYtYnk6IE1hcmMgSG9mZm1hbiA8TWFyYy5Ib2ZmbWFuQGFuYWxvZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgoKY29tbWl0IDU2ZmQ3MTYyOTg1YzQxMjMxN2JiZjc2M2EyMjVmYmEyM2M2NGZkMzEKQXV0aG9yOiBTdGVwaGVuIFdpbGxpYW1zIDxzdGV2ZUBpY2FydXMuY29tPgpEYXRlOglUdWUgTWF5IDE1IDA3OjU1OjQyIDIwMDcgLTA3MDAKCiAgICBGaXggZm9yIGNvbXBpbGUgb2YgSlNFIHRhcmdldAoKICAgIFRoZSBhdHRhY2hlZCBwYXRjaCBmaXhlcyB0aGUgY29tcGlsZSBvZiB0aGUgSlNFIGJvYXJkIGluIHRoZQogICAgZGVueCBnaXQgYXMgb2YgMTQgbWF5IDIwMDcuIEl0IGlzIGFuIGV4dHJlbWVseSBzaW1wbGUgcGF0Y2gsCiAgICBpdCBqdXN0IGFkZHMgdGhlIG1pc3NpbmcgZGVmaW5lIG9mIENGR19TWVNURU1BQ0VfV0lEVEguCgogICAgIEZpeCB0byBjb21waWxlIEpTRSBhZ2FpbnN0IDIwMDcwNTE0IGdpdCBvZiB1LWJvb3QKCmNvbW1pdCA2MTkzNjY2N2U4NmEyNTBhZTEyZmQyZGMxODlkMzU4OGYwYTU5ZTBiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDExIDEyOjAxOjQ5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBtdGNwci9tZmNwciBhY2Nlc3MgbWFjcm9zCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM0M2M0OGJkODQ2MDZjNDAyNWM4YTdjNzI2M2ZkYTQ2NWQ2ZTI4NGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMTEgMTI6MDE6MDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogU2V0IGJkLT5iaV9wY2lfYnVzZnJlcSBvbiA0NDBFUHgvR1J4IHRvbwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ZDk4YmE3NzBhN2VhZWZhMjljZTkyN2YzMWEwOTU2ZGY4NWJmNjUwCkF1dGhvcjogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1heSAxMCAxNjo1NTo1MiAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIEFkZCBNVEQgYW5kIEpGRlMyIHN1cHBvcnQsIGFsc28gYWRkIGRlZmF1bHQgcGFydGl0aW9uCiAgICBkZWZpbml0aW9uLgoKY29tbWl0IDY1ZmI2YTY3NmU4MjFmOTU3MGEyYTM3NmRjMjA0YmY2MTFjZTVmODEKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDI6NDQgMjAwNyArMDEwMAoKICAgIEFkZCB0aGUgYm9hcmQgZGlyZWN0b3J5IGZvciBTTU40MgoKY29tbWl0IDE2MDEzMWJmOTY1Nzg1NDE5NjI2ZGY2YzM4ODcyOWZlMGI1OTc5OTIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDE6NTggMjAwNyArMDEwMAoKICAgIEFkZCB0aGUgZmlsZXMgZm9yIHRoZSBTTU40MiBib2FyZAoKY29tbWl0IDVjNmQyYjVhNTAwZjhjNDk2NzBkZTg5MTAxNTBiNzhhNDFmNzgxZmMKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTE6NDA6MzQgMjAwNyArMDEwMAoKICAgIFJlbW92ZSB0aGUgZGVsZXRlZCBmaWxlcyBmb3IgdGhlIFNNTjQyIHBhdGNoCgpjb21taXQgYjBkOGY1YmYwZDIxNWFkYzk0MjRjYjIyOGIyNDg0ZGJmMDdmNzc2MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTozNzo1NiAyMDA3ICswMTAwCgogICAgTmV3IGJvYXJkIFNNTjQyIGJyYW5jaAoKY29tbWl0IDI5ZjNiZTBjYWYwNzk5Y2E2Yjg5ZGZkOTgyNGMxNTYxOWE1MDAwMGYKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglXZWQgTWF5IDkgMTA6MjQ6MzggMjAwNyArMDEwMAoKICAgIE1ha2VmaWxlIHBlcm1pc3Npb25zCgpjb21taXQgYjg0Mjg5YjU5NTczMWU4ODUxZGY0NmU4OTM4NDVjYzEzMjJjOWI5YgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxNDoxNzowNyAyMDA3IC0wNTAwCgogICAgODY0MWhwY246IEZpeCBNYWtlZmlsZSBhZnRlciBtb3ZpbmcgcGl4aXMgdG8gYm9hcmQvZnJlZXNjYWxlLgoKICAgIFRoZSBPQkpUUkVFICE9IFNSQ1RSRUUgYnVpbGQgc2NlbmFyaW8gd2FzIGJyb2tlbi4KICAgIFRoaXMgZml4ZXMgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTY5ZjY2YzZlYmU4MmJiYmQxZGE3NjZiYzRlZGE0MGVjN2VlNWFmMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE1OjU3OjQzIDIwMDcgKzAyMDAKCiAgICBhZGQ6IHJlYWRpbmcgc3BlY2lhbCBwdXJwb3NlIHJlZ2lzdGVycwoKY29tbWl0IDFhNTBmMTY0YmViMDY1ZjM2MGZiZGRiNzYwMjk2MDdkNmIwOTk2OTgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBNYXkgOCAxNDo1Mjo1MiAyMDA3ICswMjAwCgogICAgYWRkOiBNaWNyb2JsYXplIFY1IGV4Y2VwdGlvbiBoYW5kbGluZwoKY29tbWl0IGFiODc0ZDUwNDdlNWQzMGRiYzFlNTE3ZmYyNjA4M2VmZmZhOThlY2IKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBNYXkgOCAxNDozOToxMSAyMDA3ICswMjAwCgogICAgYWRkOiBGU0wgY29udHJvbCByZWFkIGFuZCB3cml0ZQoKY29tbWl0IGRlMWRlMDJhN2NiZjA1ZTZiNjNlMGQ4ZmZjNjI0ZjEyNDkzZjZiYTMKQXV0aG9yOiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMTM6MDU6NDQgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBBZGQgc3VwcG9ydCBmb3IgSTJDLCBFRVBST00gYW5kIFJUQy4KCmNvbW1pdCBmYTVjMmJhMTIzYjFiZjg4NDU1YmZjMjFkYjVlNzg2Y2EwNDUwMjlkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDEwOjIzOjU2IDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQWRkIEFUQSBzdXBwb3J0LiBBZGQgQ0YtYm9vdGluZyBjb21tYW5kcyB0byB0aGUgZGVmYXVsdAogICAgZW52aXJvbm1lbnQuCgpjb21taXQgMDYyNDFkNTBhM2FiMWIyMGEwYjA4YmFlZWFmZmNhYTIzYWU0YjgzOQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgOCAwOTozOToxMiAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIENoYW5nZSBJUEIgY2xvY2sgZnJlcXVlbmN5IGZyb20gNTBNSHogdG8gMTAwTUh6LiBUaGlzCiAgICBlbGltaW5hdGVzIG5ldHdvcmtpbmcgcHJvYmxlbXMgaW4gTGludXggKHRpbWVvdXRzKS4KCmNvbW1pdCAxZjEzNjljMzRiNjI5YmU5NDcwMjY4NGQ0MWQzZmRkZjBmNjE5M2U3CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDA5OjIxOjU3IDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gRW5hYmxlIEZsYXQgRGV2aWNlIFRyZWUgc3VwcG9ydCBhbmQgbW9kaWZ5IGRlZmF1bHQgZW52aXJvbm1lbnQKICAgIHRvIGFsbG93IGJvb3Rpbmcgb2YgRkRULWV4cGVjdGluZyBrZXJuZWxzLgoKY29tbWl0IGZiMDVmNmRhMzVlYTFjMTVjNTUzYWJlNmYyM2Y2NTZiZjE4ZGM1ZGIKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAyMzo1ODozMSAyMDA3ICswMjAwCgogICAgbmV3OiBVU0VfTVNSX0lOVFIgc3VwcG9ydAoKY29tbWl0IDAwODg2MWEyZjNlZjJjMDYyNzQ0ZDczMzc4N2M3ZTUzMGExYjg3NjEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gTWF5IDcgMjI6MzY6MTUgMjAwNyArMDIwMAoKICAgIFtNUEM1eHh4XSBUaGVyZSBhcmUgbmV0d29ya2luZyBwcm9ibGVtcyBvbiB0aGUgTW90aW9uLVBSTyBib2FyZCB3aXRoCiAgICBjdXJyZW50IFBIWSBpbml0YWxpemF0aW9uIGNvZGUgKHRmdHAgdGltZW91dHMgYWxsIHRoZSB0aW1lKS4gVGhpcyBjb21taXQKICAgIHRlbXBvcmFyaWx5IGRpc2FibGVzIFBIWSBpbml0YWxpemF0aW9uIHNlcXVlbmNlIHRvIG1ha2UgdGhlIG5ldHdvcmtpbmcKICAgIG9wZXJhdGlvbmFsLCB1bnRpbCBhIGZpeCBpcyBmb3VuZC4KCmNvbW1pdCBhYmNhOTAxODY5YzM3NjBiNmM1ZmVjYjgyNWRiNmMxZDkxYTc4YTkzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1heSA3IDIyOjEwOjM2IDIwMDcgKzAyMDAKCiAgICBHZXQgcmlkIG9mIGR1cGxpY2F0ZWQgZmlsZSAoc2VlIGluY2x1ZGUvY29uZmlncy9zYmM4NTYwLmggaW5zdGVhZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDIwN2I3YjJjOWQ5NzUyZTBmNjQ3OGMzMGMyOWI3MDg3ZjZlNmNiYjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMjI6MDc6MDggMjAwNyArMDIwMAoKICAgIEdldCByaWQgb2YgZHVwbGljYXRlZCBmaWxlIChzZWUgZG9jL1JFQURNRS5TQkM4NTYwIGluc3RlYWQpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhN2JhYzdlOWI1N2JhOTQ4MDUxYmViMTllYzViZTNhNzVjZTc1MzgzCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6NDM6MTAgMjAwNyArMDIwMAoKICAgIGZpeDogcmVhZCBhbmQgd3JpdGUgTVNSIC0gcmVwYWlyIG51bWJlciBvZiBwYXJhbWV0ZXJzCgpjb21taXQgMTkzYjRhM2JiM2FjYWRkZjc5OGRhOGRlMGRhMDVkOTRiYTg3NzRlZQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gTWF5IDcgMTk6NDI6NDkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gcHBjNHh4OiBGaXggQ09ORklHX1NZU19DTEtfRlJFUSBkZWZpbml0aW9uIGluIFNlcXVvaWEgY29uZmlnIGZpbGUKCiAgICBBICczJyBnb3QgY3V0IG9mZiBpbiB0aGUgZm9ybWF0dGluZyBvZiB0aGUgbGFzdCBwYXRjaCB0byBhdXRvbWF0aWNhbGx5CiAgICBjaGFuZ2UgdGhlIGNsb2NrIHNwZWVkIG9mIHRoZSBzeXN0ZW0gY2xvY2sgb24gc2VxdW9pYSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOWJmMWZiYWQ3ZjE5ZDVhMTIwYmU5YjFkYWYxMzZlMDUyZmNhYjM5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MzM6NTEgMjAwNyArMDIwMAoKICAgIG5ldzogZnNsIGludGVycnVwdCBzdXBwb3J0CiAgICBGU0xfSGFzX2RhdGEgaXMgY29ubmVjdGVkIHRvIElOVEMuCgpjb21taXQgNzkyMDMyYmFhN2Q2MjVlMzRjOTgxYWI2ZGY1MjE5MTFiZDhkYzg2MQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjMwOjEyIDIwMDcgKzAyMDAKCiAgICBmaXg6IGludGVycnVwdCBoYW5kbGVyCiAgICByZW1vdmUgYXNtIGNvZGUKCmNvbW1pdCBmM2YwMDFhMzQxZWYxODVkMGYxMzg0MWJlNWI1ZGMzMzk1YWFjYzMxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MjU6MDggMjAwNyArMDIwMAoKICAgIGZpeDogcmVtb3ZlIGFzbSBjb2RlCgpjb21taXQgZmI3YzJkYmVmMDJjOWY2ZjhkN2IwNGVjNGMyYmZiOTE0MThiOWMwMQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE5OjEyOjQzIDIwMDcgKzAyMDAKCiAgICBmaXg6IGNsZWFuIGludGVycnVwdAoKY29tbWl0IDQyZWZlZDYxMzBjOGZjZjdkYTg4MTM4NWI1NDI3MDY1ZDI4MDE3NTcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxNzoyMjoyNSAyMDA3ICswMjAwCgogICAgZml4OiBpbnRlcnJ1cHQgaGFuZGxlciBmb3IgbXVsdGlwbGUgc291cmNlcwoKY29tbWl0IDQ4ZmJkM2E0Y2RhYmJlYmMxZGViZDdlZWQ3M2MwMGMyY2FmOTE0ZjYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxNzoxMTowOSAyMDA3ICswMjAwCgogICAgbmV3OiBhZGQgd3JpdGluZyB0byBtc3IgcmVnaXN0ZXIKCmNvbW1pdCAzYTYxOWRkN2JlZDAzZThiNGQyMmEzOTExZjkwZmQxMmFmNTM3NmMyCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1heSA3IDE2OjQzOjU2IDIwMDcgKzAyMDAKCiAgICBGaXggYW4gYW5jaWVudCBDSEFOR0VMT0cgY29uZmxpY3QKCmNvbW1pdCBhYzRjZDU5ZDU5YzliZjNmODljYjdhMzQ0YWJmODE4NGQ2NzhmNTYyCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjEyOjMwIDIwMDcgKzAyMDAKCiAgICA1eHh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTlkODdlMjcwN2RjYjI0OWY2YmI3ZjdmZjdlMDBhY2Q4Y2RhOWZkMgpBdXRob3I6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MDE6NTQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBNUEM1MjAwQiBmcm9tIE1QQzUyMDAgaW4gYm9vdCBtZXNzYWdlCgogICAgTVBDNTIwMEIgc3lzdGVtcyBhcmUgaW5jb3JyZWN0bHkgcmVwb3J0ZWQgYXMgTVBDNTIwMCBpbiBVLUJvb3Qgc3RhcnQtdXAKICAgIG1lc3NhZ2UuIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdHdvIHZhcmlhbnRzLCBhbmQgcHJpbnQgcHJvcGVyIENQVQogICAgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNGVjNWJkNTVlZDFmZmE5MWE3NzRhZjI5ODc2OTYyMWY0ZmJiMThjMQpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJV2VkIEFwciAyNSAxNjowMToyNiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBzaW1wbGlmeSBzaWxlbnQgY29uc29sZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjc1OThhNDNmMmI0MjFhNzEzZDgxMzVlOThhNDJjMzdkOWViOWRmMApBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTU6MzA6MzkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQXZvaWQgYXNzaWduaW5nIFBDSSByZXNvdXJjZXMgZnJvbSB6ZXJvIGFkZHJlc3MKCiAgICBJZiBhIFBDSSBJREUgY2FyZCBoYXBwZW5zIHRvIGdldCBhIHplcm8gYWRkcmVzcyBhc3NpZ25lZCB0byBpdCwgdGhlIExpbnV4IElERQogICAgY29yZSBjb21wbGFpbnMgYW5kIElERSBkcml2ZXJzIGZhaWxzIHRvIHdvcmsuICBBbHNvLCBhc3NpZ25pbmcgemVybyB0byBhIEJBUgogICAgd2FzIGlsbGVnYWwgYWNjb3JkaW5nIHRvIFBDSSAyLjEgKHRoZSBsYXRlciByZXZpc2lvbnMgc2VlbSB0byBoYXZlIGV4Y2x1ZGVkIHRoZQogICAgc2VudGVuY2UgYWJvdXQgIjAiIGJlaW5nIGNvbnNpZGVyZWQgYW4gaW52YWxpZCBhZGRyZXNzKSAtLSBzbywgdXNlIGEgcmVhc29uYWJsZQogICAgc3RhcnRpbmcgdmFsdWUgb2YgMHgxMDAwICh0aGF0J3Mgd2hhdCB0aGUgbW9zdCBMaW51eCBhcmNocyBhcmUgdXNpbmcpLgoKICAgIEFsdGVybmF0aXZlbHksIG9uZSBtaWdodCBoYXZlIGZpeGVkIHRoZSBjYWxscyB0byBwY2lfc2V0X3JlZ2lvbigpIGluZGl2aWR1YWxseQogICAgKHNvbWUgY29kZSBldmVuIHNlZW1zIHRvIGhhdmUgdGFrZW4gY2FyZSBvZiB0aGlzIGlzc3VlKSBidXQgdGhhdCB3b3VsZCBoYXZlCiAgICBiZWVuIGEgbG90IG1vcmUgd29yay4gOi0pCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWZmZDQ1MWFmZWIwOGU1YmU3ZGRhZTY4MDQ4N2VjOTYyYjJiY2EyNQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gQXByIDIzIDE0OjAwOjExIDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHNldGVudiguLi4pIGNhbiBkZWxldGUgZW52aXJvbm1lbnRhbHZhcmlhYmxlcwoKICAgIHVwZGF0ZSBzZXRlbnYoKSBmdW5jdGlvbiBzbyB0aGF0IGVudGVyaW5nIGEgTlVMTCB2YWx1ZSBmb3IgdGhlCiAgICB2YXJpYWJsZSdzIHZhbHVlIHdpbGwgZGVsZXRlIHRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViZDBhMGFlMDVhNDQ3NjljNGUyNzQ1OGFkNGU5ZjM0MzgyNTA0NDMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBBcHIgMjMgMTM6NTQ6MjQgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gdXNlIHVuc2lnbmVkIGNoYXIgaW4gc21jOTExMTEgZHJpdmVyIGZvciBtYWMKCiAgICB0aGUgdl9tYWMgdmFyaWFibGUgaW4gdGhlIHNtYzkxMTExIGRyaXZlciBpcyBkZWNsYXJlZCBhcyBhIHNpZ25lZCBjaGFyIC4uLgogICAgdGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBvbmUgb2YgdGhlIGJ5dGVzIGluIHRoZSBNQUMgaXMgInNpZ25lZCIgbGlrZSAweEUwCiAgICBiZWNhdXNlIHdoZW4gaXQgZ2V0cyBwcmludGVkIG91dCwgeW91IGdldCBhIGRpc3BsYXkgbGlrZToKICAgIDB4RkZGRkZGRTAgYW5kIHRoYXQncyBubyBnb29kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGZmYzUwZjliYjE5NDM0M2M2MzAzNTE3YTUxNzcwODQ1N2E1ZWI2YjgKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBNYXkgNSAxODo1NDo0MiAyMDA3ICswMjAwCgogICAgbmV3OiBGU0wgYW5kIE1TUiBzdXBwb3J0ICMyCgpjb21taXQgZjdlMmUwZWIwNjY4MTM2MzA1Zjc4YmI5YzIxYmU3OWI0OGEzNDI0NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IE1heSA1IDE4OjI3OjE2IDIwMDcgKzAyMDAKCiAgICBuZXc6IEZTTCBhbmQgTVNSIHN1cHBvcnQKCmNvbW1pdCAyZjE1Mjc4YzJlYjkxMWM2NjhiNGZlNTYyMTMwYjc4Y2Y1NTRkMTM5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE4OjIzOjExIDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGtlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ODVlYzg5YjY0OGE4OTlhMmYzMjM5M2ZkM2ZmZDlmNzIzNGM0NDAyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE4OjA1OjAyIDIwMDcgKzAyMDAKCiAgICBBZGQgU1RYIEdQMyBTU0EgYm9hcmQgdG8gTUFLRUFMTCBzY3JpcHQ7IHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1NDk5NjQ1YjNmZTE3YTU0OGFmOWRmYzQ3OWNhNmUyNDU1ZjE3OWEyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDE3OjE1OjUwIDIwMDcgKzAyMDAKCiAgICBNYWtlICJmaWxlIiBjb21tYW5kIGhhcHB5IHdpdGggc29tZSBjb25maWcubWsgZmlsZXM7IHVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBlM2I4Yzc4YmMyNDg5YzI3YWUwMjA5ODZlZjBlYWNhNjg0ODY2Y2VmCkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CVNhdCBNYXkgNSAwODozMjoxNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBEZXRlY3QgaWYgdGhlIHN5c2NsayBvbiBTZXF1b2lhIGlzIDMzIG9yIDMzLjMzMyBNSHoKCiAgICBUaGUgQU1DQyBTZWNxdW9pYSBib2FyZCBoYXMgYmVlbiBjaGFuZ2VkIGluIGEgbmV3IHJldmlzaW9uIGZyb20gdXNpbmcgYQogICAgMzMuMDAwIE1IeiBjbG9jayB0byBhIDMzLjMzMyBNSHogc3lzdGVtIGNsb2NrLiBBIGJpdCBpbiB0aGUgQ1BMRAogICAgaW5kaWNhdGVzIHRoZSBkaWZmZXJlbmNlLiBUaGlzIHBhdGNoIHJlYWRzIHRoYXQgYml0IGFuZCB1c2VzIHRoZSBjb3JyZWN0CiAgICBjbG9jayBzcGVlZCBmb3IgdGhlIGJvYXJkLiBUaGlzIGNvZGUgaXMgYmFja3dhcmQgY29tcGF0YWJsZSB3aWxsIGFsbAogICAgcHJpb3IgYm9hcmRzLiBBbGwgcHJpb3IgYm9hcmRzIHdpbGwgYmUgcmVhZCBhcyAzMy4wMDAuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjU0NGZmNjY1NmZjYTI2M2VkMWViZTM5ODk5YjZkOTVkYTY3YzhiOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1heSA1IDA4OjI5OjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFNlcXVvaWE6IFJlbW92ZSBjcHUvcHBjNHh4L3NwZWVkLmMgZnJvbSBOQU5EIGJvb3RpbmcKCiAgICBVc2luZyBjcHUvcHBjNHh4L3NwZWVkLmMgdG8gY2FsY3VsYXRlIHRoZSBidXMgZnJlcXVlbmN5IGlzIHRvbyBiaWcKICAgIGZvciB0aGUgNGsgTkFORCBib290IGltYWdlIHNvIGRlZmluZSBidXNfZnJlcXVlbmN5IHRvIDEzM01IeiBoZXJlCiAgICB3aGljaCBpcyBzYXZlIGZvciB0aGUgcmVmcmVzaCBjb3VudGVyIHNldHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZjU1MGFiOTc2NDA1MzAwZjViMDdiZjI4OTA4MDA4NDBkMGFhMDVmCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjEyOjMwIDIwMDcgKzAyMDAKCiAgICA1eHh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTc5ODg2NTkwNTkzYmExZDY2N2M4NDBjYWE0OTQwYzYxNjM5ZjE4ZgpBdXRob3I6IFRob21hcyBLbm9ibG9jaCA8a25vYmxvY2hAc2llbWVucy5jb20+CkRhdGU6CVNhdCBNYXkgNSAwNzowNDo0MiAyMDA3ICswMjAwCgogICAgTkFORDogV3JvbmcgY2FsY3VsYXRpb24gb2YgcGFnZSBudW1iZXIgaW4gbmFuZF9ibG9ja19iYWQoKQoKICAgIEluIGNhc2UgdGhhdCB0aGVyZSBpcyBubyBtZW1vcnkgYmFzZWQgYmFkIGJsb2NrIHRhYmxlIGF2YWlsYWJsZSB0aGUKICAgIGZ1bmN0aW9uIG5hbmRfYmxvY2tfY2hlY2tiYWQoKSBpbiBkcml2ZXJzL210ZC9uYW5kL25hbmRfYmFzZS5jIHdpbGwgY2FsbAogICAgbmFuZF9ibG9ja19iYWQoKSBkaXJlY3RseS4gV2hlbiBwYXJhbWV0ZXIgJ2dldGNoaXAnIGlzIHNldCB0byB6ZXJvLAogICAgbmFuZF9ibG9ja19iYWQoKSB3aWxsIG5vdCByaWdodCBzaGlmdCB0aGUgb2Zmc2V0IHRvIGNhbGN1bGF0ZSB0aGUKICAgIGNvcnJlY3QgcGFnZSBudW1iZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ODc3ZDdkY2QxZWViZTYxYWE1ZDhiOGZmZTljMDQ4ZWE0MjZlNmY2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIE1heSA0IDEwOjAyOjMzIDIwMDcgKzAyMDAKCiAgICBGaXggaW5pdHJkIGxlbmd0aCBjb3JydXB0aW9uIGluIGJvb3RtIGNvbW1hbmQuCgogICAgV2hlbiB1c2luZyBGRFQgSW1hZ2VzLCB0aGUgbGVuZ3RoIG9mIGFuIGluaXRhbCByYW1kaXNrIHdhcwogICAgb3ZlcndyaXR0ZW4gKGJ1ZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4N2E0NDljOCwgMjIgQXVnIDIwMDYpLgoKICAgIFBhdGNoZXMgYnkgVGltdXIgVGFiaSAmIEpvaG5zIERhbmllbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA2OGFhYjY2MGJjMzkxMmI5MzBiZTU1NDBlNmIzZjNmZDZhZDNjOTYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDMgMTk6NDM6NTIgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCB0cml2aWFsIGVycm9yIGluIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2NGE4OWQ2Y2U4NTg0YjlmYzY0ZjRlODVkYTllY2FjM2NmYzJjMmEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDMgMTY6MzQ6NDEgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBib2FyZCBjb25maWd1cmF0aW9uIGZvciBTVFggR1AzU1NBIGJvYXJkOgoKICAgIEVuYWJsZSBodXNoIHNoZWxsLCBlbnZpcm9ubWVudCBpbiBmbGFzaCByYXRoZXIgaW4gRUVQUk9NLAogICAgbW9yZSB1c2VyLWZyaWVuZGx5IGRlZmF1bHQgZW52aXJvbm1lbnQsIGV0Yy4KICAgIFRoZSBzaW1wbGUgRUVQUk9NIGVudmlyb25tZW50IGNhbiBiZSBzZWxlY3RlZCBlYXNpbHkgaW4gdGhlIGJvYXJkCiAgICBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJjNmZiMTk5ZGM1NzU2ZmM3MmY0OWQxZjRkZTEwNWUwODkwNDlkNjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXByIDI0IDE0OjM3OjQ5IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwIFNUWCBHUDNTU0EgY29kZTsgZml4IGJ1aWxkIGFuZCBjb21waWxlIHByb2JsZW1zLgoKY29tbWl0IDM1MTcxZGMwNGUwMjhlY2FjYzIzYWQ5MTZhNjYyOTU0NzI1NTVkYmYKQXV0aG9yOiBEYW4gTWFsZWsgPGRhbkBlbWJlZGRlZGFsbGV5LmNvbT4KRGF0ZToJRnJpIEphbiA1IDA5OjE1OjM0IDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU1RYIEdQM1NTQSAoc3R4c3NhKSBCb2FyZAoKICAgIFNpZ25lZC1vZmYtYnkgRGFuIE1hbGVrLCA8ZGFuQGVtYmVkZGVkYWxsZXkuY29tPgoKY29tbWl0IGYyMTM0ZjhlOWViMDA2YmRjZDcyOWU4OWYzMDljMDdiMmZhNDUxODAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1heSAyIDEzOjMxOjUzIDIwMDcgKzAyMDAKCiAgICBtYWNiOiBEb24ndCByZXN0YXJ0IGF1dG9uZWdvdGlhdGlvbiBpZiB3ZSBhbHJlYWR5IGhhdmUgbGluawoKICAgIFJld29yayBtYWNiX3BoeV9pbml0IHNvIHRoYXQgaXQgZG9lc24ndCBhdHRlbXB0IHRvIHJlLW5lZ290aWF0ZSBpZiB0aGUKICAgIGxpbmsgaXMgYWxyZWFkeSB1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwNGZjYjVkMzhiYzkwNzc5Y2Q5YTcxMGQ2MDcwMjA3NTk4NmYwZTI5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXkgMiAxMzoyMjozOCAyMDA3ICswMjAwCgogICAgbWFjYjogSW50cm9kdWNlIGEgZmV3IGJhcnJpZXJzIHdoZW4gZGVhbGluZyB3aXRoIERNQSBkZXNjcmlwdG9ycwoKICAgIFRoZXJlIHdlcmUgYSBmZXcgdGhlb3JldGljYWwgcG9zc2liaWxpdGllcyB0aGF0IHRoZSBjb21waWxlciBtaWdodAogICAgb3B0aW1pemUgYXdheSBETUEgZGVzY3JpcHRvciByZWFkcyBhbmQvb3Igd3JpdGVzIGFuZCB0aHVzIGNhdXNlCiAgICBzeW5jaHJvbml6YXRpb24gcHJvYmxlbXMgd2l0aCB0aGUgaGFyZHdhcmUuIEluc2VydCBiYXJyaWVycyB3aGVyZQogICAgd2UgZGVwZW5kIG9uIHJlYWRzL3dyaXRlcyBhY3R1YWxseSBoaXR0aW5nIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmZmE2MjFhMGQxMmExY2NkODFjOTM2YzU2N2Y4OTE3YTIxMzc4N2E4CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgRmViIDI0IDAxOjA4OjEzIDIwMDcgLTA2MDAKCiAgICBDbGVhbmVkIHVwIHNvbWUgODV4eCBQQ0kgYnVncwoKICAgICogQ2xlYW5lZCB1cCB0aGUgQ0RTIFBDSSBDb25maWcgVGFibGVzIGFuZCBhZGRlZCBOVUxMIGVudHJpZXMgdG8KICAgICAgdGhlIGVuZAogICAgKiBGaXhlZCBQQ0llIExBV0JBUiBhc3NpZ25lbXQgdG8gdXNlIHRoZSBjcHUtcmVsYXRpdmUgYWRkcmVzcwogICAgKiBGaXhlZCA4NXh4IFBDSSBjb2RlIHRvIGFzc2lnbiBwb3dhciByZWdpb24gc2l6ZXMgYmFzZWQgb24gdGhlCiAgICAgIGNvbmZpZyB2YWx1ZXMgKHJhdGhlciB0aGFuIGhhcmQtY29kaW5nIHRoZW0pCiAgICAqIEZpeGVkIHRoZSA4NTQ4IENEUyBQQ0kyIElPIHRvIG9uY2UgYWdhaW4gaGF2ZSAwIGFzIHRoZSBiYXNlIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjc0MzEwNTk4OGZjNDRkNWIwZDMwMzg4Yzc5MDYwNzgzNWFhZTdhNgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjo1NDoyNSAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSA4NTY4IE1EUyBib2FyZAoKICAgIFRoaXMgaW5jbHVkZWQgc29tZSBjaGFuZ2VzIHRvIGNvbW1vbiBmaWxlczoKICAgICogQWRkIDg1NjggcHJvY2Vzc29yIFNWUiB0byB2YXJpb3VzIHBsYWNlcwogICAgKiBBZGQgc3VwcG9ydCBmb3Igc2V0dGluZyB0aGUgcWUgYnVzLWZyZXF1ZW5jeSB2YWx1ZSBpbiB0aGUgZHRzCiAgICAqIEFkZCB0aGUgODU2OE1EUyB0YXJnZXQgdG8gdGhlIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmMWMyYjg0YmYyN2M4NTY1YmFkZGM4MmQxYWJiOTM3MDBkMTBlMmUKQXV0aG9yOiBEYXZpZCBVcGRlZ3JhZmYgPGRhdmVAY3JheS5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MzQ6NDggMjAwNyAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0cmVhdGluZyB1bmtub3duIFBIWXMgYXMgZ2VuZXJpYyBQSFlzLgoKICAgIFdoZW4gYnJpbmdpbmcgdXAgdS1ib290IG9uIG5ldyBib2FyZHMsIFBIWSBzdXBwb3J0IHNvbWV0aW1lcyBnZXRzCiAgICBuZWdsZWN0ZWQuCU1vc3QgUEhZcyBkb24ndCByZWFsbHkgbmVlZCBhbnkgc3BlY2lhbCBzdXBwb3J0LAogICAgdGhvdWdoLiAgQnkgYWRkaW5nIGEgZ2VuZXJpYyBlbnRyeSB0aGF0IGFsd2F5cyBtYXRjaGVzIGlmIG5vdGhpbmcKICAgIGVsc2UgZG9lcywgd2UgY2FuIHByb3ZpZGUgc3VwcG9ydCBmb3IgInVuc3VwcG9ydGVkIiBQSFlzIGZvciB0aGUKICAgIHRzZWMuCgogICAgVGhlIGdlbmVyaWMgUEhZIGRyaXZlciBzdXBwb3J0cyBtb3N0IFBIWXMsIGluY2x1ZGluZyBnaWdhYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNzVhZjliZmQ4ZmZmMDQ5OWVmZGJiOTA2MDFjZWM1YTJhZmVmMTE3CkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDcgMTU6Mjg6MDQgMjAwNyAtMDYwMAoKICAgIENvbmRpdGlvbmFsaXplIDg2NDEgUmV2MS4wIE1DTSB3b3JrYXJvdW5kcwoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjY0NzAyYjdmYzhmOGRmMzlkMzFhZGQ3NzBkZjZlMzcyZjllOWNlMwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMzAgMTM6NTk6NTAgMjAwNyAtMDUwMAoKICAgIEZpeCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gb24gTVBDODM0OUUtbUlUWAoKICAgIERlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMIGZvciB0aGUgTVBDODM0OUUtbUlUWCBhbmQgTVBDODM0OUUtbUlUWC1HUC4KICAgIFRoaXMgYWxsb3dzIGRkci0+c2RyYW1fY2xrX2NudGwgdG8gYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQuICBUaGlzIGlzIG5lY2Vzc2FyeQogICAgb24gc29tZSBJVFggYm9hcmRzLCBub3RhYmx5IHRob3NlIHdpdGggYSByZXZpc2lvbiAzLjEgQ1BVLgoKICAgIEFsc28gY2hhbmdlIHNwZF9zZHJhbSgpIGluIGNwdS9tcGM4M3h4L3NwZF9zZHJhbS5jIHRvIG5vdCB3cml0ZSBhbnl0aGluZyBpbnRvCiAgICBkZHItPnNkcmFtX2Nsa19jbnRsIGlmIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwgaXMgbm90IGRlZmluZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBNaWNoYWVsIEJlbmVkaWN0IDxNQmVuZWRpY3RAdHdhY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NGIyZDQzNGFlOWQwMTc4NzkzNmYzNGZlMTc1OWNmM2Q3NjI0YWUzCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxNToyNjoyMSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogcmVwbGFjZSBlbGFib3JhdGUgYm9vdHRpbWUgdmVyYm9zaXR5IHdpdGggJ2Nsb2NrcycgY29tbWFuZAoKICAgIGFuZCBmaXggQ1BVOiB0byBhbGlnbiB3aXRoIEJvYXJkOiBkaXNwbGF5IHRleHQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMWFiODI2NjlkOTUyNTk5OGMzNGU4MDJhMTJjYWQ2NjI3MjNmMjJhCkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDE2IDEzOjAyOjUzIDIwMDcgLTA1MDAKCiAgICBSZXdyb3RlIHBpY29zX3RvX2NsaygpIHRvIGF2b2lkIHJvdW5kaW5nIGVycm9ycy4KICAgIENsYXJpZmllZCB0aGF0IGNvbnZlcnNpb24gaXMgdG8gRFJBTSBjbG9ja3MgcmF0aGVyIHRoYW4gcGxhdGZvcm0gY2xvY2tzLgogICAgTWFkZSBmdW5jdGlvbiBzdGF0aWMgdG8gc3BkX3NkcmFtLmMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YjM5NTAxZDI4NzU0ZTcyNzI2Y2U3ZmIwMjMxMGU1NmRiZGYxMTZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gQXByIDI5IDE0OjEzOjAxIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEJhbWJvbzogVXNlIGN1cnJlbnQgTkFORCBkcml2ZXIgYW5kICpub3QqIHRoZSBsZWdhY3kgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg2NGFhNmE2YTQ2NmZjYjkyYmYzMmIxZDdkYmE3OWNkNzA5YjUyYzkKQXV0aG9yOiBHcnplZ29yeiBXaWFuZWNraSA8Z3J6ZWdvcnoud2lhbmVja2lAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDI5IDE0OjAxOjU0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggTVBDNTIwMEIgZnJvbSBNUEM1MjAwIGluIGJvb3QgbWVzc2FnZQoKICAgIE1QQzUyMDBCIHN5c3RlbXMgYXJlIGluY29ycmVjdGx5IHJlcG9ydGVkIGFzIE1QQzUyMDAgaW4gVS1Cb290IHN0YXJ0LXVwCiAgICBtZXNzYWdlLiBVc2UgUFZSIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3byB2YXJpYW50cywgYW5kIHByaW50IHByb3BlciBDUFUKICAgIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDVjNWQzMjQyOTM1Y2YzNTQzYWYwMTE0MjYyNzQ5NDQzNDgzNGNmOTgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDI1IDEyOjM0OjM4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtaW5vciBmaXh1cHMgZm9yIDgzMTNyZGIgaW50cm9kdWN0aW9uCgpjb21taXQgYWRhNGQ0MDA5MWY2ZWQ0YTRmMDA0MGUwOGQyMGRiMjE5NjdlNGE2NwpBdXRob3I6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KRGF0ZToJV2VkIEFwciAyNSAxNjowMToyNiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBzaW1wbGlmeSBzaWxlbnQgY29uc29sZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTQ0ODc2YTM4MGY1NzU2ZjU3NDEyY2FmNzRjMWQ2ZGMyMDFkZDc5NgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIEFwciAyNCAyMzowMTowMiAyMDA3ICswMjAwCgogICAgW1BBVENIXSBNVEQgcGFydGl0aW9uIHN1cHBvcnQsIEpGRlMyIHN1cHBvcnQKCmNvbW1pdCAzN2VkNmNkZDQxNTkxOTViZmFkNjhkOGEyMzdmNmFkZGE4ZjQ4MmNiCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBBcHIgMjQgMTQ6MDM6NDUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogc2V0dXAgNDQwRVB4L0dSeCBaTUlJL1JHTUlJIGJyaWRnZSBkZXBlbmRpbmcgb24gUEZDIHJlZ2lzdGVyIGNvbnRlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNjZlZDZjY2EzZjM0MGY3YThhMDZkOTI3MmFlMmVmOGU5NmYwMjczZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjozNzo0NyAyMDA3IC0wNTAwCgogICAgUmV3b3JrZWQgODV4eCBzcGVlZCBkZXRlY3Rpb24gY29kZQoKICAgIENoYW5nZWQgdGhlIGNvZGUgdG8gcmVhZCB0aGUgcmVnaXN0ZXJzIGFuZCBjYWxjdWxhdGUgdGhlIGNsb2NrCiAgICByYXRlcywgcmF0aGVyIHRoYW4gdXNpbmcgYSAic3dpdGNoIiBzdGF0ZW1lbnQuCgogICAgSWRlYSBmcm9tIEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgxZjQ4MWNhNzA4ZWQ2YTU2YmY5YzQxMGUzMTkxZGJhZDU4MWM1NjUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDI6MjQ6MjggMjAwNyAtMDUwMAoKICAgIEVuYWJsZSA4NTQ0IHN1cHBvcnQKCiAgICAqIEFkZCBzdXBwb3J0IHRvIHRoZSBNYWtlZmlsZQogICAgKiBBZGQgODU0NCBjb25maWd1cmF0aW9uIHN1cHBvcnQgdG8gdGhlIHRzZWMgZHJpdmVyCiAgICAqIEFkZCA4NTQ0IFNWUiBudW1iZXJzIHRvIHByb2Nlc3Nvci5oCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGQ4YzNhMjA5NmVhZmY4ZDdkZTg5ZDQ1ZTlhZjRkNGIwZDQ4NjhmZQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNzoxMjoyNSAyMDA3IC0wNjAwCgogICAgU3VwcG9ydCAxRyBzaXplIG9uIDg1NDgKCiAgICBlNTAwdjIgYW5kIG5ld2VyIGNvcmVzIHN1cHBvcnQgMUcgcGFnZSBzaXplcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1Y2VmNjEyY2M2MDFkMmQxYzg5MGZiYmQ3Y2RjOTYwOWExODlhNDYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjMgMTc6MTE6MTYgMjAwNyAtMDYwMAoKICAgIENoYW5nZWQgQk9PS0VfUEFHRVNaX25HQiB0byBCT09LRV9QQUdFU1pfbkcKCiAgICBUaGUgb3RoZXIgcGFnZXN6IGNvbnN0YW50cyB1c2Ugb25lIGxldHRlciB0byBzcGVjaWZ5IG9yZGVyIG9mCiAgICBtYWduaXR1ZGUuCUFsc28gY2hhbmdlIHRoZSBvbmUgcmVmZXJlbmNlIHRvIGl0IGluIG1wYzg1NDhjZHMvaW5pdC5TCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmOWEzMThjZWExNDI3MmVkZDEwZDYzNzM5ZTJkMzI2YzkwZjQzMGUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBGZWIgMjMgMTY6Mjg6NDYgMjAwNyAtMDYwMAoKICAgIE9ubHkgc2V0IGRkcmlvb3ZjciBmb3IgODU0OCByZXYxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTM0M2RiZjg1YmMwMzAzM2YyMTAyZDhlODU0MzU2N2MyYzFhZDJkMgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEZlYiAyNCAwMToxNjo0NSAyMDA3IC0wNjAwCgogICAgVHdlYWsgRERSIEVDQyBlcnJvciBjb3VudGVyCgogICAgRW5hYmxlIHNpbmdsZS1iaXQgZXJyb3IgY291bnRlciB3aGVuIG1lbW9yeSB3YXMgY2xlYXJlZCBieSBkZHIgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg1ZTdjN2E0NWUzZGQ5YzdjZTNlNzIyMzUyYmE2MGY4ZGYxYTdhNGIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRmViIDEyIDEzOjM0OjU1IDIwMDcgLTA2MDAKCiAgICA4NXh4OiB3cml0ZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MKCiAgICBTb21lIGRldmljZSB0cmVlcyBoYXZlIGEgbWFjLWFkZHJlc3MgcHJvcGVydHksIHNvbWUgaGF2ZSBsb2NhbC1tYWMtYWRkcmVzcywKICAgIGFuZCBzb21lIGhhdmUgYm90aC4gIFRvIHN1cHBvcnQgYWxsIG9mIHRoZXNlIGRldmljZSB0cmVlcywgZnRwX2NwdV9zZXR1cCgpCiAgICBzaG91bGQgd3JpdGUgdGhlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcywgaWYgdGhleQogICAgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwM2I4MWI0OGVlYzBhZDI0OWVjOTdhNGFlMTZjMzZmYTJlMDE0ZmY0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAxOjQ0OjQ0IDIwMDcgLTA1MDAKCiAgICBTb21lIDg1eHggY3B1IGNsZWFudXBzCgogICAgKiBDbGVhbmVkIHVwIHRoZSBUU1JbV0lTXSBjbGVhcmluZwogICAgKiBDbGVhbmVkIHVwIERNQSBpbml0aWFsaXphdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNTFkNWQ5OTJlYWI4YzQ5N2IyNGM4MTZjNzNkYzFhZDhiZmZiNGViCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAxOjMyOjIyIDIwMDcgLTA1MDAKCiAgICBBZGQgY3B1IHN1cHBvcnQgZm9yIHRoZSA4NTQ0CgogICAgUmVjb2duaXplIG5ldyBTVlIgdmFsdWVzLCBhbmQgYWRkIGEgZmV3IHJlZ2lzdGVyIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI1ZDgzZDdmNGFjNjU3MjcxODJkOGRkYWY3YmE0MmZhNzRjZjY1YWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDExIDE2OjUxOjAyIDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU0NERTIGJhc2ljIHBvcnQgYm9hcmQgZmlsZXMuCgogICAgQWRkIGJvYXJkIHBvcnQgdW5kZXIgbmV3IGJvYXJkL2ZyZWVzY2FsZSBkaXJlY3RvcnkKICAgIHN0cnVjdHVyZSBhbmQgcmV1c2UgZXhpc3RpbmcgUElYSVMgRlBHQSBzdXBwb3J0IHRoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBjZGU0YjAwZmM3MzkzYjg5ZjM3OWQ4M2E5ZDQzNmRjYjEzMzRiZmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDExIDE2OjUwOjU3IDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU0NERTIG1haW4gY29uZmlndXJhdGlvbiBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM2MmRkODMwNzdhYzA0YzAyOTZiY2EzZTgyNGVjMmZiM2Q0NGQ5ZDYKQXV0aG9yOiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgpEYXRlOglXZWQgRGVjIDI3IDIyOjA3OjE1IDIwMDYgKzAzMDAKCiAgICBGaXggUENJIEkvTyBzcGFjZSBtYXBwaW5nIG9uIEZyZWVzY2FsZSBNUEM4NXgwQURTCgogICAgVGhlIFBDSSBJL08gc3BhY2UgbWFwcGluZyBmb3IgRnJlZXNjYWxlIE1QQzg1NDBBRFMgYm9hcmQgd2FzIGJyb2tlbiBieSBjb21taXQKICAgIDUyYzdhNjhiOGQ1ODdlYmNmNWE2YjA1MWI1OGIzZDNmZmEzNzdkZGMgd2hpY2ggZmFpbGVkIHRvIHVwZGF0ZSB0aGUgI2RlZmluZSdzCiAgICBkZXNjcmliaW5nIHRoZSBsb2NhbCBhZGRyZXNzIHdpbmRvdyB1c2VkIGZvciB0aGUgUENJIEkvTyBzcGFjZSBhY2Nlc3NlcyAtLSBmaXgKICAgIHRoaXMgYW5kIGNhcnJ5IG92ZXIgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIGludG8gdGhlIE1QQzg1NjBBRFMgY29kZSBzaW5jZSB0aGUKICAgIFBDSSBJL08gc3BhY2UgbWFwcGluZyB3YXMgYWxzbyBicm9rZW4gZm9yIHRoaXMgYm9hcmQgKGJ5IHRoZSBlYXJsaWVyIGNvbW1pdAogICAgMDg3NDU0NjA5ZTQ3Mjk1NDQzYWY3OTNhMjgyY2RkY2Q5MWE1ZjQ5YykuCUFkZCB0aGUgY29tbWVudHMgY2xhcmlmeWluZyBob3cKICAgIHRoZSBQQ0kgSS9PIHNwYWNlIG11c3QgYmUgbWFwcGVkIHRvIGFsbCB0aGUgTVBDODV4eCBib2FyZCBjb25maWcuIGhlYWRlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KCiAgICAgYm9hcmQvbXBjODU0MGFkcy9pbml0LlMJICB8ICAgIDQgKystLQogICAgIGJvYXJkL21wYzg1NjBhZHMvaW5pdC5TCSAgfCAgICA0ICsrLS0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEFEUy5oIHwgICAgNSArKy0tLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTQxQ0RTLmggfCAgICAyICstCiAgICAgaW5jbHVkZS9jb25maWdzL01QQzg1NDhDRFMuaCB8ICAgIDIgKy0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU2MEFEUy5oIHwgICAgOCArKysrLS0tLQogICAgIDYgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpjb21taXQgOTY2MjljYmFiZGI3MjdkNGE1ZTYyNTQyZGVlZmMwMWQ0OThkYjZkYwpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBEZWMgNSAxNjo0MjozMCAyMDA2ICswODAwCgogICAgdS1ib290OiBGaXggZTUwMCB2MiBjb3JlIHJlc2V0IGJ1ZwoKICAgIFRoZSBmb2xsb3dpbmcgcGF0Y2ggZml4ZXMgdGhlIGU1MDAgdjIgY29yZSByZXNldCBidWcuCiAgICBGb3IgZTUwMCB2MiBjb3JlLCBhIG5ldyByZXNldCBjb250cm9sIHJlZ2lzdGVyIGlzIGFkZGVkIHRvIHJlc2V0IHRoZQogICAgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MzI0N2E1YWNkNTgwMzJlNmNmMzNmNTI1YmMzOTIzYjQ2N2JhYzg4CkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAxMTowMTowMCAyMDA2ICswODAwCgogICAgdS1ib290OiB2MjogUmVtb3ZlIHRoZSBmaXhlZCBUTEIgYW5kIExBVyBlbnRyeW51Ym1lcgoKICAgIFJlbW92ZSB0aGUgZml4ZWQgVExCIGFuZCBMQVcgZW50cnkgbnVibWVyLiBVc2UgYWN0dWFsbHkgVExCIGFuZCBMQVcKICAgIGVudHJ5IG51bWJlciB0byBjb250cm9sIHRoZSBsb29wLiAgVGhpcyBjYW4gcmVkdWNlIHRoZSBwb3RlbnRpYWwgcmlzawogICAgZm9yIHRoZSA4NXh4IHByb2Nlc3NvciBpbmNyZWFzaW5nIGl0cyBUTEIgYWRuIExBVyBlbnRyeSBudW1iZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3dhcnRob3V0IEVkd2FyZCA8c3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGIxOTM0YmExMmZkNDA4ZmNjM2I4YmQ5ZjRiMDQ4NjRjNDJhNDJiZgpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgMTggMTc6MDE6MDQgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRml4IHRoZSA4NXh4Y2RzIHRzZWMgYnVnCgogICAgRml4IHRoZSA4NXh4Y2RzIHRzZWMgYnVnLgogICAgV2hlbiBlbmFibGUgUENJLCB0c2VjLm8gc2hvdWxkIGJlIGFkZGVkIHRvIHUtYm9vdC5sZHMgdG8gbWFrZSB0c2VjIHdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDczMzdiMjM3ZmZjNGFhZjFiOTQ2NzAyNGZlNDcyYTg4MGQ4NTI1OTgKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRGVjIDE1IDE0OjQzOjMxIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEZpeCBDUFUyIGVycmF0YSBvbiBNUEM4NTQ4Q0RTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhcHBseSB3b3JrYXJvdW5kIG9mIENQVTIgZXJyYXRhIG9uIE1QQzg1NDhDRFMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTpFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM5YjE4YzRmM2UwYjZkMGRjMDBmNGU2OGJhZDJkYTM3NjZjODVmMDkKQXV0aG9yOiBlYm9ueS56aHVAZnJlZXNjYWxlLmNvbSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgMTggMTY6MjU6MTUgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRGlzYWJsZXMgTVBDODU0OENEUyAyVF9USU1JTkcgZm9yIEREUiBieSBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCBkaXNhYmxlcyBNUEM4NTQ4Q0RTIDJUX1RJTUlORyBmb3IgRERSIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTpFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQxZmI3ZTBmMWVjOWI5MWJkYWUyNTY1YmFiNWYyZTNlZTE1MDM5YzcKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDE0IDE0OjE0OjU1IDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEVuYWJsZSBQQ0kgZnVuY3Rpb24gYW5kIGFkZCBQRVggJiByYXBpZGlvIG1lbW9yeSBtYXAgb24gTVBDODU0OENEUyBib2FyZAoKICAgIEVuYWJsZSBQQ0kgZnVuY3Rpb24gYW5kIGFkZCBQRVggJiByYXBpZGlvIG1lbW9yeSBtYXAgb24gTVBDODU0OENEUwogICAgYm9hcmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTZiOGEwNTQzMmYzNDZmMzY0OTM1MzVjODUzMjBiNzBlYzljN2MxYgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjU0OjE1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgTVBDODMxM0VSREIgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OWVhM2I2ZWFmZTYwNjI4NWFlNGQ1YzM3ODAyNjE1M2RkZTUzMjAwCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MjEgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBnZW5lcmljIFBDSSBzZXR1cCBjb2RlLgoKICAgIEJvYXJkIGNvZGUgY2FuIG5vdyByZXF1ZXN0IHRoZSBnZW5lcmljIHNldHVwIGNvZGUgcmF0aGVyIHRoYW4gaGF2aW5nIHRvCiAgICBjb3B5LWFuZC1wYXN0ZSBpdCBmb3IgdGhlbXNlbHZlcy4gIEJvYXJkcyBzaG91bGQgYmUgY29udmVydGVkIHRvIHVzZSB0aGlzCiAgICBvbmNlIHRoZXkncmUgdGVzdGVkIHdpdGggaXQuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2M5OGU1MTkzZTkzZGY2YjliNjUxODUxZDU0YjYzOGE2MWViYjBlYQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgODMxeCBzdXBwb3J0IHRvIHNwZWVkLmMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGYyNTMyODNhMzJkOTFlMDY4NDRkN2Y4N2Y5YjMzZjRmNGZiY2U4ZgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE4IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgODMxeCBzdXBwb3J0IHRvIGdsb2JhbF9kYXRhLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NWU3ZWY4OTdlNTQ1OTFlNjE1ZmMxYjQ1OGI3NGMyODZmZTFmYjA2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTYgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IENoYW5nZSBQVlJfODN4eCB0byBQVlJfRTMwMEMxLTMsIGFuZCB1cGRhdGUgY2hlY2tjcHUoKS4KCiAgICBSYXRoZXIgdGhhbiBtaXNsZWFkaW5nbHkgZGVmaW5lIFBWUl84M3h4IGFzIHRoZSBzcGVjaWZpYyB0eXBlIG9mIDgzeHgKICAgIGJlaW5nIGJ1aWx0IGZvciwgdGhlIFBWUiBvZiBlYWNoIGNvcmUgcmV2aXNpb24gaXMgZGVmaW5lZC4gY2hlY2tjcHUoKSBub3cKICAgIHByaW50cyB0aGUgY29yZSB0aGF0IGl0IGRldGVjdHMsIHJhdGhlciB0aGFuIGFib3J0aW5nIGlmIGl0IGRvZXNuJ3QgZmluZAogICAgd2hhdCBpdCB0aGlua3MgaXQgd2FudHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTM1YjBjNDk1MGQ4NGNmOWUzYTllMzJiOTE2MTM1OTU2ZDFhYzYzNgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDE2IDE0OjM0OjE1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBSZWNvZ25pemUgU1BSIHZhbHVlcyBmb3IgTVBDODMxMSBhbmQgTVBDODMxMy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkODdjNTdiMjAxYjQ1NzJkMTZmMWI2NDI5OThmYWEwMGM5OTEyYjE2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzE6NTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCByZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgTVBDODMxeC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZmM0YzcxYTE0M2JlODY2NmQ3MDgwM2ZiMjVhZTYwMzc5Yzk1NjIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXByIDIzIDE1OjM5OjU5IDIwMDcgKzAyMDAKCiAgICBGaXggZmlsZSBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM4MjU3OTg4YWJmZTc0ZDQ1OWNhMmFkNzQ4YjEwOWNhMDRlNGVmZTEKQXV0aG9yOiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gQXByIDIzIDE1OjMwOjM5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEF2b2lkIGFzc2lnbmluZyBQQ0kgcmVzb3VyY2VzIGZyb20gemVybyBhZGRyZXNzCgogICAgSWYgYSBQQ0kgSURFIGNhcmQgaGFwcGVucyB0byBnZXQgYSB6ZXJvIGFkZHJlc3MgYXNzaWduZWQgdG8gaXQsIHRoZSBMaW51eCBJREUKICAgIGNvcmUgY29tcGxhaW5zIGFuZCBJREUgZHJpdmVycyBmYWlscyB0byB3b3JrLiAgQWxzbywgYXNzaWduaW5nIHplcm8gdG8gYSBCQVIKICAgIHdhcyBpbGxlZ2FsIGFjY29yZGluZyB0byBQQ0kgMi4xICh0aGUgbGF0ZXIgcmV2aXNpb25zIHNlZW0gdG8gaGF2ZSBleGNsdWRlZCB0aGUKICAgIHNlbnRlbmNlIGFib3V0ICIwIiBiZWluZyBjb25zaWRlcmVkIGFuIGludmFsaWQgYWRkcmVzcykgLS0gc28sIHVzZSBhIHJlYXNvbmFibGUKICAgIHN0YXJ0aW5nIHZhbHVlIG9mIDB4MTAwMCAodGhhdCdzIHdoYXQgdGhlIG1vc3QgTGludXggYXJjaHMgYXJlIHVzaW5nKS4KCiAgICBBbHRlcm5hdGl2ZWx5LCBvbmUgbWlnaHQgaGF2ZSBmaXhlZCB0aGUgY2FsbHMgdG8gcGNpX3NldF9yZWdpb24oKSBpbmRpdmlkdWFsbHkKICAgIChzb21lIGNvZGUgZXZlbiBzZWVtcyB0byBoYXZlIHRha2VuIGNhcmUgb2YgdGhpcyBpc3N1ZSkgYnV0IHRoYXQgd291bGQgaGF2ZQogICAgYmVlbiBhIGxvdCBtb3JlIHdvcmsuIDotKQoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFmYjkwM2EyZWI5NDM2YmFhOTI3MGNjYzBjMjcwODJkODY0OTdkODkKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxNDowMDoxMSAyMDA3ICswMjAwCgogICAgW3BhdGNoXSBzZXRlbnYoLi4uKSBjYW4gZGVsZXRlIGVudmlyb25tZW50YWx2YXJpYWJsZXMKCiAgICB1cGRhdGUgc2V0ZW52KCkgZnVuY3Rpb24gc28gdGhhdCBlbnRlcmluZyBhIE5VTEwgdmFsdWUgZm9yIHRoZQogICAgdmFyaWFibGUncyB2YWx1ZSB3aWxsIGRlbGV0ZSB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmYxMDRlNWNhYTc0N2Q1NjhlZmYyNmIzNjk1NjVhZjU3YzJmZmE2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gQXByIDIzIDEzOjU0OjI0IDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHVzZSB1bnNpZ25lZCBjaGFyIGluIHNtYzkxMTExIGRyaXZlciBmb3IgbWFjCgogICAgdGhlIHZfbWFjIHZhcmlhYmxlIGluIHRoZSBzbWM5MTExMSBkcml2ZXIgaXMgZGVjbGFyZWQgYXMgYSBzaWduZWQgY2hhciAuLi4KICAgIHRoaXMgY2F1c2VzIHByb2JsZW1zIHdoZW4gb25lIG9mIHRoZSBieXRlcyBpbiB0aGUgTUFDIGlzICJzaWduZWQiIGxpa2UgMHhFMAogICAgYmVjYXVzZSB3aGVuIGl0IGdldHMgcHJpbnRlZCBvdXQsIHlvdSBnZXQgYSBkaXNwbGF5IGxpa2U6CiAgICAweEZGRkZGRkUwIGFuZCB0aGF0J3Mgbm8gZ29vZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkOThjMDg4NWFkNjE3ZmNjZjIxZTdjMjZlZjhjYjcyOGZiZmIyNDU5CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglNb24gQXByIDIzIDEzOjEwOjUyIDIwMDcgKzAyMDAKCiAgICBVU0I6IChBbm90aGVyKSBkZWxheSBmb3IgY3JhcHB5IFVTQiBrZXlzLgoKICAgIFNvbWUgVVNCIGtleXMgYXJlIHNsb3cgaW4gZ2l2aW5nIGJhY2sgYW4gYW5zd2VyIHdoZW4gdGhlIFJvb3QgSFVCCiAgICBlbmFibGVzIHBvd2VyIGxpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IDMyM2JmYThmNDM2ZGMzYmM1NzE4N2M5YjE0ODhiYzMxNDZmZjE1MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjMgMTI6MDA6MjIgMjAwNyArMDIwMAoKICAgIFJlbW92ZSBCT0FSRExJQlMgdXNhZ2UgY29tcGxldGVseQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMjU1NjQ0Mzg0MGYxMjcxNzBlNGJhYThiZGQ1YjU2NzAzOWY2YzM2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIxOjA3OjIyIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFN5c3RlbUFDRSBzdXBwb3J0IGZvciBNaWNyb2JsYXplCgpjb21taXQgMDY0MzYzMWFhMTAzNmNkNzQ2YmY1ZDE1ZjVhMzRiYzdiYzAxZWE0ZgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEFwciAyMSAyMTowMjo0MCAyMDA3ICswMjAwCgogICAgMTZiaXQgcmVhZC93cml0ZSBsaXR0bGUgZW5kaWFuCgpjb21taXQgOWQxZDZhMzRkMjZjNTkzM2JjMDk3Y2U3M2M5MzQ4Zjk1NTczY2RkNApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEFwciAyMSAyMDo1MzozMSAyMDA3ICswMjAwCgogICAgQ2hhbmdlIE1MNDAxIHBhcmFtZXRlcnMgLSBYaWxpbnggQlNQCgpjb21taXQgMmUzNDNiOWE1N2YzMmUxYmQwOGMzNWM5OTc2OTEwMzMzZmI0ZTEzZApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjggMDU6Mzc6MjkgMjAwNyAtMDYwMAoKICAgIG1wYzg2NDFocGNuOiBGaXggTEFXIGFuZCBUTEIgc2V0dXAgdG8gdXNlIHRoZSBJT19QSFlTICNkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzljYjQ3MzkxZWViZWY4NWFjYWRiM2Y2OTYxZWY2YzU1Y2FjZTZhYwpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTkgMTA6NDI6MzcgMjAwNyArMDgwMAoKICAgIEVuYWJsZSBMQVdzIGZvciBNUEM4NjQxIFBDSS1FeDIuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmQ3ODUxY2UxZTFmMTQwNjY1YjUyMDAyNmFiZjEwNDI5NjhiMTEwMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MTI6MjYgMjAwNyAtMDUwMAoKICAgIG1wYzg2eHg7IFdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZGJkZjI4YjhiZDg1NWE4NTMwZGMzMjkyZTQ5ODI1NzVhMTk3MDYwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDoxMTozOCAyMDA3IC0wNTAwCgogICAgbXBjODZ4eDogcHJvdGVjdCBtZW1jcHkgdG8gYmFkIGFkZHJlc3MgaWYgYSBtYWMtYWRkcmVzcyBpcyBtaXNzaW5nIGZyb20gZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNGRhNWY3Njc1YmJiNDI3YzQ2OWUzZjQ1MDA2ZTAyN2I2ZTIxZGI5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAyMCAxNzo0MzoyOCAyMDA3ICswMjAwCgogICAgQ2xlYW51cCBjb21waWxlciB3YXJuaW5ncywgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjkyMzU2NWRiMTJhZjM0ZmQ1ZTAyZDM1NGVlNjVhOGM3OGFjNDYwZgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgQXByIDIwIDEyOjAxOjQ3IDIwMDcgKzAyMDAKCiAgICBGaXggYnJlYWthZ2Ugb2YgTkM2NTAgYm9hcmQgd2l0aCByZXNwZWN0IHRvIG5hbmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCAzOWYyM2NkOTA5NDc2MzlhYzI3OGExOGZmMjc3ZWM3ODZiNWFjMTY3CkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTE6MTM6MTYgMjAwNyArMDIwMAoKICAgIFtSRkMgUEFUQ0hdIGljZWN1YmUvbGl0ZTUyMDBiOiBmaXggT0ZfVEJDTEsgKHRpbWViYXNlLWZyZXF1ZW5jeSkgY2FsY3VsYXRpb24KCiAgICBHMiBjb3JlIHJlZmVyZW5jZSBtYW51YWwgc2F5cyBkZWNyZW1lbnRlciBhbmQgdGltZSBiYXNlCiAgICBhcmUgZGVjcmVhc2luZy9pbmNyZWFzaW5nIG9uY2UgZXZlcnkgNCBidXMgY2xvY2sgY3ljbGVzLgogICAgTGV0cyBmaXggaXQsIHNvIHRpbWUgaW4gTGludXggd29uJ3QgcnVuIHR3aWNlIGFzIGZhc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzY1MWY4YmRiYmEwM2JiMGI0ZjI0MWUyZDJjNGNiNjViMjMwYmQ1NgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVRodSBBcHIgMTkgMjM6MTQ6MzkgMjAwNyAtMDQwMAoKICAgIEZpeCBzZXJpb3VzIHBvaW50ZXIgYnVnIHdpdGggYm9vdG0gYW5kIHJlc2VydmUgbWFwLgoKICAgIFdoYXQgd2FzIHN1cHBvc2UgdG8gYmUgYSBzdGFjayB2YXJpYWJsZSB3YXMgZGVjbGFyZWQgYXMgYSBwb2ludGVyLAogICAgICBvdmVyd3JpdGluZyByYW5kb20gbWVtb3J5LgogICAgQWxzbyBtb3ZlZCB0aGUgbGliZmR0LmEgcmVxdWlyZW1lbnQgaW50byB0aGUgbWFpbiBNYWtlZmlsZS4gIFRoYXQgaXMKICAgICAgVGhlIFUtQm9vdCBXYXkuCgpjb21taXQgZDIxNjg2MjYzNTc0ZTk1Y2IzZTllOWIwNDk2Zjk2OGIxYjg5N2ZkYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAxOSAwOTo1Mzo1MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggY2hpcCBzZWxlY3QgdGltaW5nIGZvciBTeXNBQ0UgYWNjZXNzIG9uIEFNQ0MgS2F0bWFpCgogICAgUHJldmlvdXMgdmVyc2lvbnMgdXNlZCBmdWxsIHdhaXQgc3RhdGVzIGZvciB0aGUgY2hpcCBzZWxlY3QgIzEgd2hpY2gKICAgIGlzIGNvbm5lY3RlZCB0byB0aGUgWGlsaW5peCBTeXN0ZW1BQ0UgY29udHJvbGxlciBvbiB0aGUgQU1DQyBLYXRtYWkKICAgIGV2YWx1YXRpb24gYm9hcmQuIFRoaXMgbGVhZHMgdG8gcmVhbGx5IHNsb3cgYWNjZXNzIGFuZCB0aGVyZWZvcmUgbG93CiAgICBwZXJmb3JtYW5jZS4gVGhpcyBwYXRjaCBub3cgc2V0cyB1cCB0aGUgY2hpcCBzZWxlY3QgYSBsb3QgZmFzdGVyCiAgICByZXN1bHRpbmcgaW4gbXVjaCBiZXR0ZXIgcmVhZC93cml0ZSBwZXJmb3JtYW5jZSBvZiB0aGUgTGludXggZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNzgzNzgyOGQ4OTA4NDg3OWJlZTJmMmI4YzdjNjhkNDY5NTk0MGRmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNzo0OToyOSAyMDA3ICswMjAwCgogICAgQ2xlbmF1cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQwOTRjNjM3OWUyZWY4YTRkMGNlYjU2NDBiMjRjYjBjOGQwNDQ0OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTc6MjA6NTggMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJhMjZlYzQ3MzJlZmQ3YTMwOGQwYmJjOTc3MTRjMWQ3NWVmMTE3M2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE3OjA3OjI2IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnZW5kLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1ZjZjNzMyYWZmZWE5NjQ3NzYyZDI3YTQ2MTdhMmFlNjRjNTJkY2ViCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNjoxNzo0NiAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGFkNGViNTU1NjcxZDk3Zjk2ZGM1NmVhYjU1MTAzYjFmODY4NzRiMDEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE0OjMwOjM5IDIwMDcgKzAyMDAKCiAgICBNQ0MyMDAgYm9hcmQ6IHJlbW92ZSB3YXJuaW5nIHdoaWNoIGlzIG9ic29sZXRlIGFmdGVyIFBTb0MgZmlybXdhcmUgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzc0N2EzZjAxMGIyYjE0NDJkZWMzZTg3MWM2OTc4OGI2MDE3YWFhZQpBdXRob3I6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgpEYXRlOglXZWQgQXByIDE4IDEyOjExOjA1IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIGljZWN1YmUvbGl0ZTUyMDBiOiBkb2N1bWVudCB3YWtldXAgZnJvbSBsb3ctcG93ZXIgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgoKY29tbWl0IGU2NzMyMjZmZjlkNmFhOTFiNDdjZWFjNzRiOGMxMzc3MGIwNmJiMzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTI6MDc6NDcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFjYWRpYSB0byBub3Qgc2V0dXAgUExMIHdoZW4gYm9vdGluZyB2aWEgYm9vdHN0cmFwIEVFUFJPTQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MGU2ZjQxY2YwOWZjOThmNmNjYjUxMGUxODNkNTNhYjg1NDZjZjJmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDEyOjA1OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBvdXRwdXQgZm9yIGJvb3Ryb20gbG9jYXRpb24gdG8gNDA1RVogcG9ydHMKCiAgICBOb3cgNDA1RVogcG9ydHMgYWxzbyBzaG93IHVwb24gYm9vdHVwIGZyb20gd2hpY2ggYm9vdCBkZXZpY2UKICAgIHRoZXkgYXJlIGNvbmZpZ3VyZWQgdG8gYm9vdDoKCiAgICBVLUJvb3QgMS4yLjAtZ2QzODMyZThmLWRpcnR5IChBcHIgMTggMjAwNyAtIDA3OjQ3OjA1KQoKICAgIENQVTogICBBTUNDIFBvd2VyUEMgNDA1RVogUmV2LiBBIGF0IDE5OS45OTkgTUh6IChQTEI9MTMzLCBPUEI9NjYsIEVCQz02NiBNSHopCgkgICBCb290c3RyYXAgT3B0aW9uIEUgLSBCb290IFJPTSBMb2NhdGlvbiBFQkMgKDMyIGJpdHMpCgkgICAxNiBrQiBJLUNhY2hlIDE2IGtCIEQtQ2FjaGUKICAgIEJvYXJkOiBBY2FkaWEgLSBBTUNDIFBQQzQwNUVaIEV2YWx1YXRpb24gQm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWMwMGRmYjBiZjg5YzhjMjNlOGFmNWI1YmRmNDljZjY2ZDc2OWY4NQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBcHIgMTcgMTM6MzA6MzMgMjAwNyArMDEwMAoKICAgIE1vdmUgcHBlYXJzZSB0byBBUk0gYm9hcmQgbGlzdAogICAgQWRkIEtvbnN0YW50aW4gS2xldHNjaGtlIGZvciBzY2I5MzI4LgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KCmNvbW1pdCBkMzgzMmU4ZmUxYjIxNGVjNjI0MjRlYWMzNmNmZGE5ZmM1NmQyMWIzCkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MDA6MTMgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IHdha2V1cCBmcm9tIGxvdy1wb3dlciBzdXBwb3J0CgogICAgVS1Cb290IHBhcnQgb2YgTGl0ZTUyMDBiIGxvdyBwb3dlciBtb2RlIHN1cHBvcnQuCiAgICBQdXRzIFNEUkFNIG91dCBvZiBzZWxmLXJlZnJlc2ggYW5kIHRyYW5zZmVycyBjb250cm9sIHRvCiAgICBhZGRyZXNzIHNhdmVkIGF0IHBoeXNpY2FsIDB4MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjM1YTUzZmM3YjBjNzlmY2ZlN2JkYzAxMTYzYzRiMzRhYWJhMTQ2MApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVN1biBBcHIgMTUgMTM6NTQ6MjYgMjAwNyAtMDQwMAoKICAgIEZpeCB0aGUgZnRfY3B1X3NldHVwKCkgcHJvcGVydHkgc2V0dGluZ3MuCgogICAgVXNlICJzZXR0ZXIiIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIGZsYWdzLCBjbGVhbmVyIGFuZCBtb3JlIGZsZXhpYmxlLgogICAgSXQgYWxzbyBmaXhlcyB0aGUgcHJvYmxlbSBub3RlZCBieSBUaW11ciBUYWJpIHRoYXQgdGhlIGV0aGVybmV0IE1BQwogICAgYWRkcmVzc2VzIHdlcmUgYWxsIGJlaW5nIHNldCBpbmNvcnJlY3RseSB0byB0aGUgc2FtZSBNQUMgYWRkcmVzcy4KCmNvbW1pdCBjMjhhYmI5YzYxNGY2NWNlMjA5NmNjNGE2NmZjODg2Yzc3ZDBlNWE0CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEFwciAxNCAyMjo1MToyNCAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSB0aGUgYm9vdG0gY29tbWFuZCBmb3IgQ09ORklHX09GX0xJQkZEVAoKICAgIEluIGJvb3RtLCBjcmVhdGUgdGhlICIvY2hvc2VuIiBub2RlIG9ubHkgaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0CiAgICAgIChiZXR0ZXIgbWF0Y2hlcyB0aGUgcHJldmlvdXMgYmVoYXZpb3IpLgogICAgVXBkYXRlIGZvciBwcm9wZXIgcmVzZXJ2ZWQgbWVtb3J5IG1hcCBoYW5kbGluZyBmb3IgaW5pdHJkLgoKY29tbWl0IDNmOWYwOGNmOTFjOGE2OTQ5YTVkNzhhMThiZDNkOGRmN2I4NmQ4ODgKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgQXByIDE0IDIyOjQ2OjQxIDIwMDcgLTA0MDAKCiAgICBBZGQgc29tZSB1dGlsaXRpZXMgdG8gbWFuaXB1bGF0ZSB0aGUgcmVzZXJ2ZWQgbWVtb3J5IG1hcC4KCmNvbW1pdCA4MDQ4Y2RkNTZmMDRhNzU2ZWVlYTQ5NTFmNDAyYmY1Y2MzMzc4NWRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEFwciAxNCAyMToxNjo1NCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDhlNjg3NTE4M2NkY2E5MWMxMzQ0MDhkMTE5ZDRhYmNkNDhlZjY4NTYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxODo1Njo0NiAyMDA2ICswMTAwCgogICAgQVZSMzI6IEVuYWJsZSBNTUMgc3VwcG9ydAoKICAgIFNldCB1cCB0aGUgcG9ydG11eCBmb3IgdGhlIE1NQyBpbnRlcmZhY2UgYW5kIGVuYWJsZSB0aGUgTU1DIGRyaXZlcgogICAgYWxvbmcgd2l0aCBzdXBwb3J0IGZvciBET1MgcGFydGl0aW9ucywgZXh0MiBhbmQgRkFUIGZpbGVzeXN0ZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZjMjZjOTdiYjZkZjQxYjRhOTU2NjJjMzQwNTRmZTkxMjM4N2JmMzgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEphbiAyMCAxMDowMzo1MyAyMDA2ICswMTAwCgogICAgQXRtZWwgTUNJIGRyaXZlcgoKICAgIERyaXZlciBmb3IgdGhlIEF0bWVsIE1DSSBjb250cm9sbGVyIChNTUMgaW50ZXJmYWNlKSBmb3IgQVQzMkFQIENQVXMuCgogICAgVGhlIEFUOTEgQVJNLWJhc2VkIENQVXMgdXNlIGJhc2ljYWxseSB0aGUgc2FtZSBoYXJkd2FyZSwgc28gaXQgc2hvdWxkCiAgICBiZSBwb3NzaWJsZSB0byBzaGFyZSB0aGlzIGRyaXZlciwgYnV0IG5vIGVmZm9ydCBoYXMgYmVlbiBtYWRlIHNvIGZhci4KCiAgICBIYXJkd2FyZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgQVQzMkFQNzAwMCBkYXRhIHNoZWV0LAogICAgd2hpY2ggY2FuIGJlIGRvd25sb2FkZWQgZnJvbQoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9kYXRhc2hlZXRzLmFzcD9mYW1pbHlfaWQ9NjgyCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDVmZGFiMWVmNmExMGQwNDlhNTAwMjFhODZmMTIyNmY0NDRkOWI5ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjU1OjM3IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQWRkIGNsayBhbmQgZ3BpbyBpbmZyYXN0cnVjdHVyZSBmb3IgbW1jaQoKICAgIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBtbWNpIHBpbnMsIGFzIHdlbGwgYXMKICAgIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgY2xvY2sgcmF0ZSBvZiB0aGUgbW1jaSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDdmYWMzZjY5ZTlmMDVjNWU1MzI2NjgxOTc2YzM1ZDEyOTMyNGM0ZGUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxODo1Mzo1NiAyMDA2ICswMTAwCgogICAgRW5hYmxlIHBhcnRpdGlvbiBzdXBwb3J0IHdpdGggTU1DCgogICAgSW5jbHVkZSBpbXBsZW1lbnRhdGlvbnMgb2YgaW5pdF9wYXJ0KCkgYW5kIGdldF9wYXJ0aXRpb25faW5mbygpIHdoZW4KICAgIENPTkZJR19NTUMgaXMgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDlhMjRmNDc3YTFlZDViYjBmNzQzNzdjOTg1ZDc1NGViYmZhNDQ4NzIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNzoxNDozMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IEVuYWJsZSBuZXR3b3JraW5nCgogICAgSW1wbGVtZW50IE1BQ0IgaW5pdGlhbGl6YXRpb24gZm9yIEFWUjMyIGFuZCBBVFNUSzEwMDAsIGFuZCB0dXJuCiAgICBldmVyeXRoaW5nIG9uLCBpbmNsdWRpbmcgdGhlIE1BQ0IgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDVjMWZlMWZmZmZkMTc1MGE3ZTQ3ZTVhMmUyY2Q2MDBjMDBlNGYwMDkKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEphbiAyMCAxMDowMzozNCAyMDA2ICswMTAwCgogICAgQXRtZWwgTUFDQiBldGhlcm5ldCBkcml2ZXIKCiAgICBEcml2ZXIgZm9yIHRoZSBBdG1lbCBNQUNCIG9uLWNoaXAgZXRoZXJuZXQgY29udHJvbGxlci4KCiAgICBUaGlzIGRyaXZlciBoYXMgYmVlbiB0ZXN0ZWQgb24gdGhlIEFUU1RLMTAwMCBib2FyZCB3aXRoIGEgQVQzMkFQNzAwMAogICAgQ1BVLiBJdCBzaG91bGQgcHJvYmFibHkgd29yayBvbiBBVDkxU0FNOTI2eCBhcyB3ZWxsIHdpdGggc29tZSBtaW5vcgogICAgbW9kaWZpY2F0aW9ucy4KCiAgICBIYXJkd2FyZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgQVQzMkFQNzAwMCBkYXRhIHNoZWV0LAogICAgd2hpY2ggY2FuIGJlIGRvd25sb2FkZWQgZnJvbQoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9kYXRhc2hlZXRzLmFzcD9mYW1pbHlfaWQ9NjgyCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYjRlYzljMmQ0M2Q4OTQ3MjliYjYzM2JmZGJkZmE5NWE5NjJjMTU1NgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE2OjU2OjE0IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQWRkIGNsayBhbmQgZ3BpbyBpbmZyYXN0cnVjdHVyZSBmb3IgbWFjYjAgYW5kIG1hY2IxCgogICAgSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIG1hY2IwIGFuZCBtYWNiMSBwaW5zLCBhcwogICAgd2VsbCBhcyBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIGNsb2NrIHJhdGUgb2YgdGhlIHZhcmlvdXMKICAgIGJ1c3NlcyB0aGUgbWFjYiBldGhlcm5ldCBjb250cm9sbGVycyBhcmUgY29ubmVjdGVkIHRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGQ1YWNiOTViMTZhMGE3NGM2NDM1MjQzNDJjMzQzN2U3NjU0MjZkMDUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNTozOToxNSAyMDA2ICswMTAwCgogICAgQVZSMzI6IEltcGxlbWVudCBzaW1wbGUgRE1BIG1lbW9yeSBhbGxvY2F0b3IKCiAgICBJbXBsZW1lbnQgZG1hX2FsbG9jX2NvaGVyZW50KCkgd2hpY2ggcmV0dXJucyBjYWNoZS1hbGlnbmVkCiAgICB1bmNhY2hlYWJsZSBtZW1vcnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTE5NzViMGZlYTc3M2M5ZTY4MWZlYThjZjMzNDk2NjlmMjc2ODVlZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE1OjQ2OjAyIDIwMDYgKzAxMDAKCiAgICBJbXBvcnQgPGxpbnV4L21paS5oPiBmcm9tIHRoZSBMaW51eCBrZXJuZWwKCiAgICBJbnN0ZWFkIG9mIGNyZWF0aW5nIHlldCBhbm90aGVyIHNldCBvZiBNSUkgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKICAgIGluIHRoZSBtYWNiIGRyaXZlciwgaGVyZSdzIGEgY29tcGxldGUgc2V0IG9mIGRlZmluaXRpb25zIGZvciBldmVyeW9uZQogICAgdG8gdXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDFiODA0YjIyOTU1NmE0ZDg2MmRhOTNjMGVjOTRlNzk0MTkzNjRiMmMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1hciAyMSAxOTo0NzozNiAyMDA3ICswMTAwCgogICAgQVZSMzI6IEluY2x1ZGUgbW9yZSBjb21tYW5kcyBmb3IgQVRTVEsxMDAwCgogICAgSW5jbHVkZSB0aGUgaW1pLCBpbWxzIGFuZCBqZmZzIGNvbW1hbmRzIHNldHMgYnkgZGVmYXVsdCBvbiBBVFNUSzEwMDAuCiAgICBBbHNvIGRlZmluZSBDT05GSUdfQk9PVEFSR1MgdG8gc29tZXRoaW5nIG1vcmUgdXNlZnVsLCBkZWZpbmUKICAgIENPTkZJR19CT09UQ09NTUFORCBhbmQgZW5hYmxlIGF1dG9ib290IGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOWMwZGViNWFlM2VhMDE4OWYyZTA4YWMyOWVmMTMxNmYxZmI4NTQ4ZApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWFyIDIxIDE5OjQ0OjQ4IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogUHJvdmlkZSBhIGRlZmluaXRpb24gb2Ygc3RydWN0IHN0YXQKCiAgICBDb3B5IHRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBzdGF0IGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAxMmYwOTljMDgxNjdhN2E1MWFlZWU2MjNiYzE2ZGFmZDA4NDEyNzFjCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTQ6NDY6MDYgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBVc2UgaW5pdGRyYW0oKSBpbnN0ZWFkIG9mIGJvYXJkX2luaXRfbWVtb3JpZXMoKQoKICAgIENvbmZvcm0gdG8gdGhlICJzdGFuZGFyZCIgaW50ZXJmYWNlIGFuZCB1c2UgaW5pdGRyYW0oKSBpbnN0ZWFkIG9mCiAgICBib2FyZF9pbml0X21lbW9yaWVzKCkgb24gQVZSMzIuIFRoaXMgZW5hYmxlcyB1cyB0byBnZXQgcmlkIG9mIHRoZQogICAgc2RyYW1fc2l6ZSBtZW1iZXIgb2YgdGhlIGdsb2JhbF9kYXRhIHN0cnVjdCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDFmNGYyMTIxYzI2ODUxODJlYjg3ZmE5YTliNzk5ZDE5MTczODdhMWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE5vdiAyMCAxNTo1MzoxMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IFJlbG9jYXRlIHUtYm9vdCB0byBTRFJBTQoKICAgIFJlbG9jYXRlIHRoZSB1LWJvb3QgaW1hZ2UgaW50byBTRFJBTSBsaWtlIGV2ZXJ5b25lIGVsc2UgZG9lcy4gVGhpcwogICAgbWVhbnMgdGhhdCB3ZSBjYW4gaGFuZGxlIG11Y2ggbGFyZ2VyIC5kYXRhIGFuZCAuYnNzIHRoYW4gd2UgdXNlZCB0by4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkZjU0OGQzYzNlMmJiYzQwMjU4NzEzMTY3ODU5ZmZjMmNlOTlhOTAwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBOb3YgMTkgMTg6MDY6NTMgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBSZXNvdXJjZSBtYW5hZ2VtZW50IHJld3JpdGUKCiAgICBSZXdyaXRlIHRoZSByZXNvdXJjZSBtYW5hZ2VtZW50IGNvZGUgKGkuZS4gSS9PIG1lbW9yeSwgY2xvY2sgZ2F0aW5nLAogICAgZ3Bpbykgc28gaXQgZG9lc24ndCBkZXBlbmQgb24gYW55IGdsb2JhbCBzdGF0ZS4gVGhpcyBpcyBuZWNlc3NhcnkKICAgIGJlY2F1c2UgdGhpcyBjb2RlIGlzIGhlYXZpbHkgdXNlZCBiZWZvcmUgcmVsb2NhdGlvbiB0byBSQU0sIHNvIHdlCiAgICBjYW4ndCB3cml0ZSB0byBhbnkgZ2xvYmFsIHZhcmlhYmxlcy4KCiAgICBBcyBhbiBhZGRlZCBib251cywgdGhpcyBtYWtlcyB1LWJvb3QncyBtZW1vcnkgZm9vdHByaW50IGEgYml0IHNtYWxsZXIsCiAgICBhbHRob3VnaCBzb21lIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gbGVmdCBvdXQ7IGFsbCBjbG9ja3MgYXJlIGVuYWJsZWQKICAgIGFsbCB0aGUgdGltZSwgYW5kIHRoZXJlJ3Mgbm8gY2hlY2tpbmcgZm9yIGdwaW8gbGluZSBjb25mbGljdHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDNkMWUxMzY1Nzk2Y2QxNWQxNzI2ZThhNTFmZDhiNWJlNTBiMmZlOQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE4OjAxOjEzIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogQ2xlYW4gdXAgbWVtb3J5LW1hcC5oIGZvciBhdDMyYXA3MDAwCgogICAgQ29udmVydCBzcGFjZXMgdG8gdGFicyAobXVzdCBoYXZlIG1pc3NlZCB0aGlzIG9uZSBsYXN0IHRpbWUgYXJvdW5kKSwKICAgIHNvcnQgdGhlIGVudHJpZXMgYnkgYWRkcmVzcyBhbmQgZ3JvdXAgdGhlbSB0b2dldGhlciBieSBidXMKICAgIGNvbm5lY3Rpdml0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAyOGM2OTllZjY5ZjRiNmNkZjI1MmU0NzQ3YjdiNTkwMDI4YTg4OTgxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMTggMTc6MzI6MzEgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBCdWlsZCBwb3NpdGlvbi1pbmRlcGVuZGVudCB1LWJvb3QKCiAgICBBZGQgLWZQSUMgLW1uby1pbml0LWdvdCB0byB0aGUgYXZyMzItc3BlY2lmaWMgQ0ZMQUdTIHRvIG1ha2UgdS1ib290CiAgICBwb3NpdGlvbiBpbmRlcGVuZGVudC4gVGhpcyB3aWxsIG1ha2UgcmVsb2NhdGlvbiBhIGxvdCBlYXNpZXIuCgogICAgLW1uby1pbml0LWdvdCBtZWFucyB0aGF0IGdjYyBzaG91bGRuJ3QgZW1pdCBjb2RlIHRvIGxvYWQgdGhlIEdPVAogICAgYWRkcmVzcyBpbnRvIHI2IGluIGV2ZXJ5IGZ1bmN0aW9uIHByb2xvZ3VlLiBXZSBkbyBpdCBvbmNlIGFuZCBmb3IKICAgIGFsbCBpbiB0aGUgZWFybHkgc3RhcnR1cCBhc3NlbWJseSBjb2RlLCBzbyBlbmFibGluZyB0aGlzIG9wdGlvbgogICAgbWFrZXMgdS1ib290IGEgYml0IGZhc3RlciBhbmQgc21hbGxlci4KCiAgICBUaGUgYXNzZW1ibHkgcGFydHMgaGF2ZSBhbHdheXMgYmVlbiBwb3NpdGlvbi1pbmRlcGVuZGVudCwgc28gbm8gY29kZQogICAgY2hhbmdlcyBzaG91bGQgYmUgbmVjZXNzYXJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDUzNzRiMzZkZTkxZDAwNmQxZGY5NTM2MjU5ZmE5ZjY2YjAxYWEzYWEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzoyNDozMSAyMDA2ICswMTAwCgogICAgQVZSMzI6IFVzZSBhdnIzMi1saW51eC0gY3Jvc3MtY29tcGlsYXRpb24gcHJlZml4IGJ5IGRlZmF1bHQKCiAgICBJdCBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgd2hpY2ggdG9vbGNoYWluIHlvdSB1c2UgdG8gY29tcGlsZSB1LWJvb3QsCiAgICBidXQgdGhlIGF2cjMyLWxpbnV4IG9uZSBpcyBwcm9iYWJseSB3aGF0IG1vc3QgcGVvcGxlIGhhdmUgaW5zdGFsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGM4NDFiZWVkZGViZWNlMDAzOWU3MjRmYjI3ZjRkMWEzOWVlMWM2YjYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzoxNTozMCAyMDA2ICswMTAwCgogICAgQVZSMzI6IFNwbGl0IHN0YXJ0X3VfYm9vdCBpbnRvIGJvYXJkX2luaXRfZiBhbmQgYm9hcmRfaW5pdF9yCgogICAgU3BsaXQgdGhlIGF2cjMyIGluaXRpYWxpemF0aW9uIGNvZGUgaW50byBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUKICAgIHJlbG9jYXRpb24sIGJvYXJkX2luaXRfZiBhbmQgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgcmVsb2NhdGlvbiwKICAgIGJvYXJkX2luaXRfci4gRm9yIG5vdywgYm9hcmRfaW5pdF9mIHNpbXBseSBjYWxscyBib2FyZF9pbml0X3IKICAgIGF0IHRoZSBlbmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMzc0MDMwMDVjZmU2YmIxMzk2NGQ0NTBmNmE0OGEwYjBmMmY3MDE3ZQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IEFwciAxNCAwNToyNjo0OCAyMDA3ICswMjAwCgogICAgW0ZpeF0JU2V0IHRoZSBMRUQgc3RhdHVzIHJlZ2lzdGVyIG9uIHRoZSBVQzEwMSBmb3IgdGhlIExYVDk3MSBQSFkuCgkgICAgY2xlYXIgdGhlIERpc3BsYXkgYWZ0ZXIgcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNzg4Mjc1MWM3OGI3ZWNhYmZkNDliMGVmZjhkZTI3NjYxYzcxZjE2YwpBdXRob3I6IERlbmlzIFBldGVyIDxkLnBldGVyQG1wbC5jaD4KRGF0ZToJRnJpIEFwciAxMyAwOToxMzozMyAyMDA3ICswMjAwCgogICAgW1BBVENIXSBGaXggYnVncyBpbiBjbWRfaWRlLmMgYW5kIGNtZF9zY3NpLmMKCiAgICBGaXggYnVnIGludHJvZHVjZWQgYnkgIkZpeCBnZXRfcGFydGl0aW9uX2luZm8oKSBwYXJhbWV0ZXIgZXJyb3IgaW4gYWxsCiAgICBvdGhlciBjYWxscyIgZnJvbSAyMDA1LTAzLTA0IGluIGNtZF9pZGUuYyBhbmQgY21kX3Njc2kuYywgd2hpY2ggcHJldmVudGVkCiAgICB0byB1c2UgZGlza2Jvb3Qgb3Igc2NzaWJvb3QgZm9ybSBhbm90aGVyIGRldmljZSB0aGFuIDAuCgogICAgU2lnbmVkLW9mZi1ieTogRGVuaXMgUGV0ZXIgPGQucGV0ZXJAbXBsLmNoPgoKY29tbWl0IDBiOTQ1MDRkMjJlNzBmNTM3YzE3YTBkMzhjODdlZGI2ZTM3MDk3N2QKQXV0aG9yOiBHcmVnIExvcHAgPGxvcHBAcG9ib3guY29tPgpEYXRlOglGcmkgQXByIDEzIDA4OjAyOjI0IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEZpeCB1c2Ugb2YgInZvaWQgKiIgZm9yIGJsb2NrIGRldiByZWFkL3dyaXRlIGJ1ZmZlciBwb2ludGVycwoKICAgIFNpZ25lZC1vZi1ieTogR3JlZyBMb3BwIDxsb3BwQHBvYm94LmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNmZiZjI2MWY4ZGYyOTRlNTg5Y2ZhZGViZWJlNTQ2OGUzYzBmMjllOQpBdXRob3I6IFhpZSBYaWFvYm8gPHI2MzA2MUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDkgMTk6MDg6MjUgMjAwNyArMDgwMAoKICAgIEZpeCB0d28gYnVncyBmb3IgTVBDODN4eCBERFIyIGNvbnRyb2xsZXIgU1BEIEluaXQKCiAgICBUaGVyZSBhcmUgYSBmZXcgYnVncyBpbiB0aGUgY3B1L21wYzgzeHgvc3BkX3NkcmFtLmMKICAgIHRoZSBmaXJzdCBidWcgaXMgdGhhdCB0aGUgcGljb3NfdG9fY2xrIHJvdXRpbmUgaW50cm9kdWNlcyBhIGh1Z2UKICAgIHJvdW5kaW5nIGVycm9yIGluIDgzeHguCiAgICB0aGUgc2Vjb25kIGJ1ZyBpcyB0aGF0IHRoZSBtb2RlIHJlZ2lzdGVyIHdyaXRlIHJlY292ZXJ5IGZpZWxkIGlzCiAgICB0V1ItMSwgbm90IHRXUiA+PiAxLgoKY29tbWl0IDJhZDNhYmEwMWQzN2I3MmU3Yzk1N2IwN2UxMDJmY2NkNjRmZTZkMTMKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJVGh1IEFwciAxMiAxNDoxNTo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggaTJjIGRpdmlzb3IgY2FsY3VsYXJpb24gZm9yIFBQQzR4eAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgY2hhbmdlcyB0aGUgaTJjX2luaXQoLi4uKSBmdW5jdGlvbiB0byB1c2UgdGhlIGZ1bmN0aW9uCiAgICBnZXRfT1BCX2ZyZXEoKSByYXRoZXIgdGhhbiBjYWxjdWxhdGluZyB0aGUgT1BCIHNwZWVkIGJ5CiAgICBzeXNJbmZvLmZyZXFQTEIvc3lzSW5mby5wbGxPcGJEaXYuIFRoZSBnZXRfT1BCX2ZyZXEoKSBmdW5jdGlvbiBpcwogICAgc3BlY2lmaWMgcGVyIHByb2Nlc3Nvci4gVGhlIHByaW9yIG1ldGhvZCB3YXMgbm90IGFuZCBzbyB3YXMgY2FsY3VsYXRpbmcKICAgIHRoZSB3cm9uZyBzcGVlZCBmb3Igc29tZSBQUEM0eHggcHJvY2Vzc29ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2YzliYTkxOTM3NWRiOTc3YWFhZDkxNDZiZjMyMGM3YWZkMDdhZTdhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxMSAxNzoyNTowMSAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTEwNTZkZDk4NjNlNmExYmMzNjNhZmJiZTE3NzVjNThjZDk2NzQxOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTEgMTc6MjI6NTUgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBmb3IgU0MzIGJvYXJkCgogICAgKiBNYWtlIElERSB0aW1lb3V0IGNvbmZpZ3VyYWJsZSB0aHJvdWdoIGlkZV9yZXNldF90aW1lb3V0IHZhcmlhYmxlLgogICAgKiBVc2UgTmV3bGluZSBhcyAicGFzc3dvcmQiIHN0cmluZwogICAgKiBVc2UganVzdCBhIHNpbmdsZSBwYXJ0aXRpb24gaW4gTkFORCBmbGFzaAoKY29tbWl0IDNkOThiODU4MDBjODBkYzY4MjI3YzhmMTBiZjVjOTM0NTZkNmQwNTQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDIyIDEyOjM3OjMwIDIwMDcgLTA2MDAKCiAgICBBZGQgUElYSVMgRlBHQSBzdXBwb3J0IGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBNb3ZlIHRoZSA4NjQxSFBDTidzIFBJWElTIGNvZGUgdG8gdGhlIG5ldyBkaXJlY3RvcnkKICAgIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vIGFzIGl0IHdpbGwgYmUgc2hhcmVkIGJ5CiAgICBmdXR1cmUgYm9hcmRzIG5vdCBpbiB0aGUgc2FtZSBwcm9jZXNzb3IgZmFtaWx5LgoKICAgIFdyaXRlIGEgInBpeGlzX3Jlc2V0IiBjb21tYW5kIHRoYXQgdXRpbGl6ZXMgdGhlIEZQR0EKICAgIHJlc2V0IHNlcXVlbmNlciB0byBzdXBwb3J0IGFsdGVybmF0ZSBzb2Z0LXJlc2V0IG9wdGlvbnMKICAgIHN1Y2ggYXMgdXNpbmcgdGhlICJhbHRlcm5hdGUiIGZsYXNoIGJhbmssIGVuYWJsaW5nCiAgICB0aGUgd2F0Y2ggZG9nLCBvciBjaG9vc2luZyBkaWZmZXJlbnQgQ1BVIGZyZXF1ZW5jaWVzLgoKICAgIEFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgcGl4aXNfcmVzZXQgdG8gUkVBRE1FLm1wYzg2NDFocGNuLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0ZGJiZDQwYzU4MzQ5YjY0ZjQzZmQzM2RiYjVjYTBhZGI2N2Q2NDIKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgQXByIDYgMTQ6MTk6NDMgMjAwNyAtMDQwMAoKICAgIE1vdmVkIGZkdCBjb21tYW5kIHN1cHBvcnQgY29kZSB0byBmZHRfc3VwcG9ydC5jCgogICAgLi4uaW4gcHJlcGFyYXRpb24gZm9yIGltcHJvdmluZyB0aGUgYm9vdG0gY29tbWFuZCdzIGhhbmRsaW5nIG9mIGZkdCBibG9icy4KICAgIEFsc28gY2xlYW5lZCB1cCBzb21lIGNvZGluZyBzbG9wcGluZXNzLgoKY29tbWl0IDY2NzlmOTI5OTUzNGU0ODhhMTcxYTliYjhmOWJiODkxZGUyNDdhYWIKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgQXByIDYgMTQ6MTc6MTQgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogTWFrZSBmZHRfY2hlY2tfaGVhZGVyKCkgcHVibGljCgogICAgQ2hhbmdlZCBfZmR0X2NoZWNrX2hlYWRlcigpIHRvIGZkdF9jaGVja19oZWFkZXIoKSBhbmQgbWFkZSBpdCBwYXJ0IG9mCiAgICB0aGUgaW50ZXJmYWNlIC0gaXQgaXMgYSB1c2VmdWwgcm91dGluZS4KCiAgICBBbHNvIGRpZCBzb21lIGFzdGhldGljcyBjbGVhbnVwIHRvIHRoZSBpbmNsdWRlIGZpbGVzIChoZWFkZXJzKS4KCmNvbW1pdCBjMDcwN2NlNjU2Nzc2NTBiNWNlYWIwNTAwZWU1MGFlNTE2OGFmZWYyCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjM0OjA2IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBLaWxsIG9mZiBhIGJ1bmNoIG9mIGNvbW1vbiBsb2NhbCBwcm90b3R5cGVzCgpjb21taXQgN2I3ZTMwYWE2NGJiNjY1N2ExYmZkMzJmZGJkYmZlYjU2MWU2YTQ4ZApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMzowNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gRml4IGR5bmFtaWMgQ1BMQiBnZW5lcmF0aW9uIGlzc3VlCgpjb21taXQgMDQ0NWUzYTI2NDI1MWQ3NWIxYmU0NWVmNzEzYzcwNzI2YTI5NTJmMApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMTo0NyAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gbWluaW9yIGNsZWFudXAKCmNvbW1pdCAxNTVmZDc2NjU3Mzk4MTA5MGU2MzhiNDkzZDU4NTc1NjIxNTE4NjJlCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMxOjE4IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBGaXggY29weXJpZ2h0IGFuZCB1cGRhdGUgbGljZW5zZQoKY29tbWl0IDlmZDQzN2JiZDc1ZDI4MmY4OTllMWRhNTBiZTIwYTJiZjM4NDUwYmMKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzA6MjUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjUzNyBFTUFDIGRyaXZlciBpbml0aWFsaXphdGlvbgoKY29tbWl0IDg4OTI1NmU4NjA0ZTBjNjhkYjFkODY2ZDcyMDg5NGRmZmVkZTlkZjYKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6Mjk6NTUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIGNhbGwgcmVhbCB0aGUgc3lzdGVtIHN5bmNocm9uaXplIGluc3RydWN0aW9uCgpjb21taXQgZTBkZjFjOTIxYjc4ODI4OTU2NGU0YzFlZTcxMjBhNmE5Y2QzYWIwNQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyOToxNyAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gcmVtb3ZlIGFzbS9wYWdlLmggYXMgd2UgZG8gbm90IGFjdHVhbGx5IHVzZS93YW50IGFueSBvZiB0aGVzZSBkZWZpbml0aW9ucyBub3IgZG9lcyBhbnkgb3RoZXIgYXJjaCBpbmNsdWRlIGl0Cgpjb21taXQgZGZlZWFiMmNkNjgwZGYwNDdlNjhlNzIzYjI0NmFkZjZmMzNiYjU1NgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyODozNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF06IGZpeCBmbGFzaCB1bmFsaWduZWQgY29weSBpc3N1ZQoKY29tbWl0IDQ0M2ZlYjc0MDU4NGU0MDZlZmEyMDNhZjkwOWZlMjkyNjYwOGU4ZDUKQXV0aG9yOiBJZ29yIE1hcm5hdCA8bWFybnlAcmFtYmxlci5ydT4KRGF0ZToJV2VkIE1hciAyMSAwOTo1NTowMSAyMDA3ICswMzAwCgogICAgVXBkYXRlIHVzYWdlIG9mICduYycgaW4gUkVBRE1FLk5ldENvbnNvbGUKCiAgICBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCB1c2FnZSBvZiBOZXRDb25zb2xlIG9uIHN5c3RlbXMgd2hlcmUgdGhlIC1sIGFuZCAtcAogICAgc3dpdGNoZXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJZ29yIE1hcm5hdCA8bWFybnlAcmFtYmxlci5ydT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDMxYzk4YTg4MjI4MDIxYjMxNGM4OWViYjgxMDRmYjY0NzNkYTQ0NzEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDQgMDI6MDk6MzAgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDk0YWJkN2MwNTgzZWJlMDFlNzk5YjI1ZjQ1MTIwMWRlZWFhYjU1MGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDQgMDE6NDk6MTUgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNsZWFudXAuCgpjb21taXQgODIyYWYzNTFhZDJiYWJjN2Q5OTAzMzM2MWE1ZmNhY2QzMGY2YmM3OApBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJVHVlIEFwciAzIDE0OjI3OjE4IDIwMDcgKzAyMDAKCiAgICBTdXBwb3J0IGZvciB0aGUgUGhpbGlwcyBJU1AxMTZ4IEhDRCAoSG9zdCBDb250cm9sbGVyIERyaXZlcikKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+Cgpjb21taXQgZWRmNTg1MWJlNmMxN2MwMzFkNGY3MWRkNWIwYTEyMDQwYjdjNTBjOApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMyAxNDoyNzowOCAyMDA3ICswMjAwCgogICAgVVNCOiBjbGVhbnVwIG1vbmFoYW5zIHVzYiBzdXBwb3J0LiBSZW1vdmUgZGVhZCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgYTY1YzU3NjhlNTUzNzUzMGJkMTc4MGFmM2QzZmRkYzMxMTNhMTYzYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyIDEwOjA5OjMwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBTeXNBQ0UgYWRkcmVzcyBvbiBLYXRtYWkKCiAgICBXaXRoIHRoaXMgbmV3IGJhc2UgYWRkcmVzcyBvZiB0aGUgWGlsaW54IFN5c3RlbUFDRSBjb250cm9sbGVyCiAgICB0aGUgTGludXggZHJpdmVyIHdpbGwgYmUgZWFzaWVyIHRvIGFkYXB0LCBzaW5jZSBpdCBjYW4gbm93IGJlCiAgICBtYXBwZWQgdmlhIHRoZSAibm9ybWFsIiBpb3JlbWFwKCkgY2FsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWVhMDNjNGU4YzNhMjFjZTQzZDNmYWY0OGE2ZTZkNDc0YzhiZGY3MwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTQ6MzA6NTMgMjAwNyAtMDQwMAoKICAgIEZpeCBzb21lIG1pbm9yIHdoaXRlc3BhY2UgdmlvbGF0aW9ucy4KCmNvbW1pdCAyMTNiZjhjODIyZGU4ZWVjYWY2OTg2MDY4NDQ2OWNkYWJhMmU5ZTZhCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoyMzo1MSAyMDA3IC0wNDAwCgogICAgQWRkIGEgZmxhdHRlbmVkIGRldmljZSB0cmVlIChmZHQpIGNvbW1hbmQgKDIgb2YgMikKCiAgICBNb2RpZmljYXRpb25zIHRvIHRoZSBleGlzdGluZyBjb2RlIHRvIHN1cHBvcnQgdGhlIG5ldyBmZHQgY29tbWFuZC4KCmNvbW1pdCA3ODFlMDllZTZlM2UzZTM5MmFiMzYyYzFmMGVmMTA2OGFkYzc2ZTNlCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoyMjoxMCAyMDA3IC0wNDAwCgogICAgQWRkIGEgZmxhdHRlbmVkIGRldmljZSB0cmVlIChmZHQpIGNvbW1hbmQgKDEgb2YgMikKCiAgICBUaGUgZmR0IGNvbW1hbmQgdXNlcyBEYXZpZCBHaWJzb24ncyBsaWJmZHQgbGlicmFyeSB0byBtYW5pcHVsYXRlIGFzIHdlbGwKICAgIGFzIHByaW50IHRoZSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUuICBUaGlzIHBhdGNoIGlzIHRoZSBuZXcgY29tbWFuZCwKICAgIHRoZSBzZWNvbmQgcGFydCBpcyB0aGUgbW9kaWZpY2F0aW9ucyB0byB0aGUgZXhpc3RpbmcgY29kZS4KCmNvbW1pdCAzYWYwZDU4N2Q5M2UwYmU1Zjk2ZTFiMzBmYTQxZTY2MmY4YjA4MDNlCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjoxMzo0MyAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBFbmhhbmNlZCBhbmQgcHVibGlzaGVkIGZkdF9uZXh0X3RhZygpCgogICAgRW5oYW5jZWQgdGhlIGZvcm1lcmx5IHByaXZhdGUgZnVuY3Rpb24gX2ZkdF9uZXh0X3RhZygpIHRvIGFsbG93IHN0ZXBwaW5nCiAgICAgIHRocm91Z2ggdGhlIHRyZWUsIHVzZWQgdG8gcHJvZHVjZSBhIGh1bWFuLXJlYWRhYmxlIGR1bXAsIGFuZCBtYWRlCiAgICAgIGl0IHBhcnQgb2YgdGhlIHB1Ymxpc2hlZCBpbnRlcmZhY2UuCiAgICBBbHNvIGFkZGVkIHNvbWUgY29tbWVudHMuCgpjb21taXQgZmEzYTc0Y2VjNzNkZmQwNmE1YWUzNWE5YTMzNjgyMDAyNzNhYWE3MQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MDU6MzkgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogQ3VzdG9taXphdGlvbnMgZm9yIHVzZSBieSB1LWJvb3QuCgogICAgQ2hhbmdlcyB0byBEYXZpZCBHaWJzb24ncyBvcmlnaW5hbCBzb3VyY2UgdG8gZml0IGludG8gdS1ib290J3MKICAgIGVudmlyb25tZW50LiAgTm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VzLgoKY29tbWl0IDM1NzQ4MTc3YzY0YTRhODNhMDAwNTdlOTNiYjMzZTQwMjc4YTJhOTYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjAwOjU2IDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEltcG9ydCBsaWJmZHQgc291cmNlICgyIG9mIDIpCgogICAgVGhpcyBhZGRzIHRoZSBhcHBsaWNhYmxlIGxpYmZkdCBzb3VyY2UgZmlsZXMgKHVubW9kaWZpZWQpIGFuZCBhIFJFQURNRQogICAgdG8gZXhwbGFpbiB3aGVyZSB0aGUgc291cmNlIGNhbWUgZnJvbS4KCmNvbW1pdCA3Y2Q1ZGEwZmU4NzdlNzE3MWE0Y2RkNDQ4ODBiY2U3ODMxMzI4NzFhCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMTo1OTo1OSAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBJbXBvcnQgbGliZmR0IHNvdXJjZSAoMSBvZiAyKQoKICAgIFRoaXMgYWRkcyB0aGUgYXBwbGljYWJsZSBsaWJmZHQgc291cmNlIGZpbGVzICh1bm1vZGlmaWVkKSBhbmQgYSBSRUFETUUKICAgIHRvIGV4cGxhaW4gd2hlcmUgdGhlIHNvdXJjZSBjYW1lIGZyb20uCgpjb21taXQgZGE2ZWJjMWJjMDgyY2JlM2I2YmJkZTA3OWNhZmUwOWY3ZWJiYWQ0YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAxMzoxNjoyMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgS2F0bWFpIGJvb3RzdHJhcCBjb21tYW5kCgogICAgTm93IHRoZSBERFIyIGZyZXF1ZW5jeSBpcyBhbHNvIDIqUExCIGZyZXF1ZW5jeSB3aGVuIDE2Nk1IeiBQTEIKICAgIGlzIHNlbGVjdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYWJlZTc1NmE2NTMyOTg2NzI5NDc3YzNjYzFlYTE2ZWY4NTE3YWQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDEzOjE1OjA2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NHhfc3BkX2RkcjIgY29kZSAoNDQwU1AvNDQwU1BlKQoKICAgIEFkZGl0aW9uYWwgUkFNIGluZm9ybWF0aW9uIGlzIG5vdyBwcmludGVkIHVwb24gcG93ZXJ1cCwgbGlrZQogICAgRERSMiBmcmVxdWVuY3kgYW5kIENBUyBsYXRlbmN5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MDcyMzgwMzQzMWFjNzVjYWQwODU2OTA3ODllNDMzZDVhYjkxNzRlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ4OjM2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBZdWNjYSBjb25maWcgZmlsZSB0byBzdXBwb3J0IEVDQwoKICAgIFdpdGggdGhlIHVwZGF0ZWQgNDR4IEREUjIgZHJpdmVyIHRoZSBZdWNjYSBib2FyZCBub3cgc3VwcG9ydHMKICAgIEVDQyBnZW5lcmF0aW9uIGFuZCBjaGVja2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDkwZTU3MzBjNjc0YjIwZDcwOGI3ODNhMmM1ZmZkNzIwOGY4Mzg3MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAwODo0NzozNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggImJvb3RzdHJhcCIgY29tbWFuZCBmb3IgS2F0bWFpIGJvYXJkCgogICAgVGhlIGJvYXJkIHNwZWNpZmljICJib290c3RyYXAiIGNvbW1hbmQgaXMgbm93IGZpeGVkIGFuZCBjYW4KICAgIGJlIHVzZWQgZm9yIHRoZSBBTUNDIEthdG1haSBib2FyZCB0byBjb25maWd1cmUgZGlmZmVyZW50CiAgICBDUFUvUExCL09QQiBmcmVxdWVuY2llcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTRmNTQ3MDNjM2E3NzZlYzIzZTQyN2NhMmExNmUwYTc5YTVkNTBjMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAzMSAwODo0NjowOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDR4X3NwZF9kZHIyIGNvZGUgKDQ0MFNQLzQ0MFNQZSkKCiAgICBGaXggYSBidWcgaW4gdGhlIGF1dG8gY2FsaWJyYXRpb24gcm91dGluZS4gVGhpcyBkcml2ZXIgbm93IHJ1bnMKICAgIG1vcmUgcmVsaWFibGUgd2l0aCB0aGUgdGVzdGVkIG1vZHVsZXMuIEl0J3MgYWxzbyB0ZXN0ZWQgd2l0aAogICAgMTY3TUh6IFBMQiBmcmVxdWVuY3kgKDY2N01IeiBERFIyIGZyZXF1ZW5jeSkgb24gdGhlIEthdG1haS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQyY2QwOTdiZTFlN2FmZmU4MmY0MmFiM2RhMjIwOTU5YTY5OWU2NApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAzMCAyMjo1MjowOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBDbGVhbiBpbmNsdWRlIGRlcGVuZGVuY2UKCmNvbW1pdCA2ZjkzNDIxMGZiMjkzZmRlMmNmYjQyNTFjNmQ5NmZkYzU4YjZhOTA2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDMwIDIyOjQyOjQ1IDIwMDcgKzAyMDAKCiAgICBbQ0xFQU5dIFJlbW92ZSBpbmVmZmljaWVudCBTdXpha3UgY29kZQoKY29tbWl0IDQzMGYxYjBmOWE2NzBjMmYxM2VhYTUyZTY2YTEwZGI5NmRkMzY0N2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjggMTU6MDM6MTYgMjAwNyArMDIwMAoKICAgIE1lcmdlIHNvbWUgQU1DQyBtYWtlIHRhcmdldHMgdG8ga2VlcCB0aGUgdG9wLWxldmVsIE1ha2VmaWxlIHNtYWxsZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGM3NWM5ZDg0MzA3YTlmMWNiZTFmZjBjNGQ4OTM3ZWUzYTk2NDc1ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyOCAxNDo1MjoxMiAyMDA3ICswMjAwCgogICAgaTJjOiBFbmFibGUgIm9sZCIgaTJjIGNvbW1hbmRzIGV2ZW4gd2hlbiBDT05GSUdfSTJDX0NNRF9UUkVFIGlzIGRlZmluZWQKCiAgICBUaGUgIm9sZCIgaTJjIGNvbW1hbmRzIChpcHJvYmUsIGltZC4uLikgYXJlIG5vdyBjb21waWxlZCBpbiBhZ2FpbiwKICAgIGV2ZW4gd2hlbiB0aGUgaTJjIGNvbW1hbmQgdHJlZSBpcyBlbmFibGVkIHZpYSB0aGUgQ09ORklHX0kyQ19DTURfVFJFRQogICAgY29uZmlnIG9wdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWRhMDQ4YWRmNDRiZWE1ZTNiOTQwODBkMDI5MDNjMmUzZmU3YWE0YQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1hciAyNyAwMDozMjoxNiAyMDA3ICswMjAwCgogICAgUEFUQ0g6IFJlc29sdmUgR1BMIGxpY2Vuc2UgcHJvYmxlbQoKY29tbWl0IGFlMDBiYjRiMjk0NGRjNjRhNDg1ZWQ3MmExOTc1NGIxMWFmN2MyMjMKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBNYXIgMjYgMTI6MDM6MzYgMjAwNyArMDIwMAoKICAgIFBYQTogcHhhMjd4IFVTQiBPSENJIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBhZTc5ZjYwNjc3YzIwODMyNjUzNTY0N2RjYmQ1YzNlYzQwZGJjYjBiCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAyNiAxMToyMTowNSAyMDA3ICswMjAwCgogICAgVVNCOiByZW1vdmUgdGhlIFMzQzI0WDBfbWVyZ2UgI2RlZmluZSwgd2hpY2ggd2FzIGludHJvZHVjZWQgd2hpbGUKICAgIG1lcmdpbmcgT0hDSSBkcml2ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMTc5ODA0OTUyMmY1OTQwMTNhZWEyOTQ1N2Q0Njc5NDI5OGM2YWUxNQpBdXRob3I6IE1pY2hhbCBTaW1layA8cm9vdEBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXIgMjYgMDE6Mzk6MDcgMjAwNyArMDIwMAoKICAgIFN1cHBvcnQgZm9yIFhVUFYyUCBib2FyZAogICAgUmVzZXQgc3VwcG9ydAogICAgQlNQIGF1dG9jb25maWcgc3VwcG9ydAoKY29tbWl0IDBkOTc0ZDUyOTczNDk1MDRhMmRkZmEwOTMxNGJlNTczYjVkZjMyMGEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMjQgMTU6NTc6MDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIDR4eCBHUElPIGZ1bmN0aW9ucwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzb21lIDR4eCBHUElPIGZ1bmN0aW9ucy4gSXQgYWxzbyBtb3ZlcyBzb21lIG9mIHRoZQogICAgY29tbW9uIGNvZGUgYW5kIGRlZmluZXMgaW50byBhIGNvbW1vbiA0eHggR1BJTyBoZWFkZXIgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmRiNjMzNjU4YmJmMzY2YWIwYzhkYWQ3YTA3MjdlMWZiMmFlNmIxMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo1NTo1OCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTbWFsbCBTZXF1b2lhIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2NiODZmM2U0MGQyYTgwMzU2MTc3NDM0YTk5Zjc1YmM4YmFhOWNhZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo0NTozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhbiB1cCA0MEVaL0FjYWRpYSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgYWxsIHRoZSBvcGVuIGlzc3VlIG9mIHRoZSBwcmVsaW1pbmFyeQogICAgQWNhZGlhIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlYjFkZjgzNTE5MWQ4Y2U0YjgxZDVhZjQwZmE4ZTBmYmU3OGU5OTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRGVjIDEyIDExOjAyOjIwIDIwMDYgLTA2MDAKCiAgICBGaXggODY0MUhQQ04gcHJvYmxlbSB3aXRoIGxkIHZlcnNpb24gMi4xNgoKICAgIChEb3Qgb3V0c2lkZSBzZWN0aW9ucyBwcm9ibGVtKS4KCiAgICBUaGlzIGZpeCBpcyBpbiB0aGUgc3Bpcml0IG9mIDgwN2Q1ZDczMTkzMzBlMzM2YWIzNGE1NjIzYzVlMGQ3M2I4N2Q1NDAuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OTY0YTRkZDBkNGVmNWEwMzdmZWJhZWJmMWFhNDk0YjFhNzI5OTFjCkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjM1OjU1IDIwMDYgLTA2MDAKCiAgICBTZXQgUmV2IDIueCA4Nnh4IFBJQyBpbiBtaXhlZCBtb2RlLgoKICAgIFByZXZlbnQgZmFsc2UgaW50ZXJydXB0IGZyb20gaGFuZ2luZyBMaW51eCBhcyBNU1JbRUVdIGlzIHNldAogICAgdG8gZW5hYmxlIGludGVycnVwdHMgYnkgY2hhbmdpbmcgdGhlIFBJQyBvdXQgb2YgdGhlIGRlZmF1bHQKICAgIHBhc3MgdGhyb3VnaCBtb2RlIGludG8gbWl4ZWQgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YTU4YTczY2ViMGE0MDU5YzQyZWY2NGNlZGJjMWE0NWUwYWFhMDBlCkF1dGhvcjogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjMyOjM1IDIwMDYgLTA2MDAKCiAgICBBZGQgZmxhc2ggY21kIGZ1bmN0aW9uIHRvIDg2NDFIUENOIHJhbWJvb3QKCiAgICBBbHNvIGZpeGVzIHNvbWUgY29tbW1hbmQgZm9yIDg2NDEgSFBDTiByYW1ib290IGNhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmNjY2VhY2MwNGIwMDlkOTIzYWZiN2MyNjE4OWJhMmY4YTJhNWQ0NgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAxMDozNDoxNCAyMDA2IC0wNjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIDg2NDEgUmV2IDIgc2lsaWNvbi4KCiAgICBXaXRob3V0IHRoaXMgcGF0Y2gsIEkgYW0gdW5hYmxlIHRvIGdldCB0byB0aGUgcHJvbXB0IG9uIHJldiAyIHNpbGljb24uCiAgICBPbmx5IHNldCBkZHJpb292Y3IgZm9yIHJldjEuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0PGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NGJhNDY0Yjk5MDAxZjhiZDFjNDU2YTFlOWQ1OTcyNjI1MmY3MDdhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyMiAwMDoxMzoxMiAyMDA3ICswMTAwCgogICAgQ29kZSBjbGVhbnVwIC8gcmUtaW5zZXJ0IHByZXZpb3VzIENvcHlyaWdodCBlbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmE4ZGZlMDgzNTlhMWI2NjM0MThiMmZhYTFkYTFkN2JjZTM0ZDMwMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMjM6MjY6MTUgMjAwNyArMDEwMAoKICAgIENvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGU2NjE1ZWNmNGVhZjRkZDUyNjk2OTM0YWVkOGY1YzY0NzRjZmQyODYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTQ6NTQ6MjkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGZpbGUgbW9kZSBvZiBpbmNsdWRlL2NvbmZpZ3MvYWNhZGlhLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDVmNDYxNGM5MzUwZDkzMzNlNTc1MTAwZmIyNTBhYWI3NzRkMDI1OApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTQ6NDE6NDYgMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGZpeCBzbWFsbCBjbG9jayByb3V0aW5nIGJ1ZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMTZjMGNjMWM4MjA4MWE0OTNhYjg3YzUxOTgwYjI4MzM2Y2UxYmNlOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxMzozOTo1NyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgQU1DQyBBY2FkaWEgKDQwNUVaKSBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG5ldyBBTUNDIEFjYWRpYSBldmFsIGJvYXJkLgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBBY2FkaWEvNDA1RVogc3VwcG9ydCBpcyBzdGlsbCBpbiBhIGJldGEgc3RhZ2UuCiAgICBTdGlsbCBsb3QncyBvZiBjbGVhbnVwIG5lZWRlZCBidXQgd2UgbmVlZCBhIHByZWxpbWluYXJ5IHJlbGVhc2Ugbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMDFiZDIxOGIwMGFmNzM0OTkzMzFhMWE3MDE2MjVhODUyY2QyODZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDEzOjM4OjU5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBBTUNDIFBQQzQwNUVaIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIG5ldyBBTUNDIDQwNUVaIFBQQy4gSXQgaXMgaW4KICAgIHByZXBhcmF0aW9uIGZvciB0aGUgQU1DQyBBY2FkaWEgYm9hcmQgc3VwcG9ydC4KCiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgQWNhZGlhLzQwNUVaIHN1cHBvcnQgaXMgc3RpbGwgaW4gYSBiZXRhIHN0YWdlLgogICAgU3RpbGwgbG90J3Mgb2YgY2xlYW51cCBuZWVkZWQgYnV0IHdlIG5lZWQgYSBwcmVsaW1pbmFyeSByZWxlYXNlIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDdlODJjYjJlMjg0YTg5M2RmNjY5M2YyYTEzMzdhYjJjNDdiZjZhMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAwODo0NToxNyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBUUU04MjcyOiBkb250IGNoYW5nZSB0aGUgYml0cyBnaXZlbiBmcm9tIHRoZSBIUkNXCgkJICAgICBmb3IgdGhlIFNJVU1DUiBhbmQgQkNSIFJlZ2lzdGVyLgoJCSAgICAgRml4IHRoZSBjYWxjdWxhdGlvbiBmb3IgdGhlIEVFcHJvbSBTaXplCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNjU0NTg5ODczZGJhZmNmMTA0ZGZmMTMzY2UwZDAzYTQ1MDZlOWNjMwpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVR1ZSBNYXIgMjAgMTg6MTY6MjQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjU2MSBFWktJVCBib2FyZCBzdXBwb3J0Cgpjb21taXQgYTYxNTRmZDFjZmQwMjBmNmRhODUyN2UwMzY1YjEwMjBhMTFhNzFkMApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMjI6NTU6NTggMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIG1pbm9yIGNsZWFudXAKCmNvbW1pdCAzODliNmJiNTBmNzQ1YmY1MDM4Y2UwMzAzMDBkOGE4NTEyZTk2Zjc5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAxOSAxMzoxMDowOCAyMDA3ICswMTAwCgogICAgUmVtb3ZlIG9ic29sZXRlZCBQT1NUIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGU3MDliYmIyNjM2YjU2NzBhOGYyYjU3NWUxMzhlYjFmNTU3NzNmNgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMDE6MjY6MTEgMjAwNyArMDgwMAoKICAgIFtQQVRDSF0gQWRkIGZsYXNoIGNoaXAgTTI5VzMyMEVUL0Igc3VwcG9ydAoKY29tbWl0IDI2YmY3ZGVjYTM2NGE1YjMzZjM5ZThmMTRkZGQzZjQwODEzNDUwMTUKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDE5IDAxOjI0OjUyIDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBBZGQgQkY1Mzcgc3RhbXAgYm9hcmQgc3VwcG9ydAoKY29tbWl0IDg0MjNlNWUzMWE3MjM1ZDA1YTQ4MjYyNzMxNWZiMTFkNDljMTdiZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMTYgMjE6MTE6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXNlIGR5bmFtaWMgU0RSQU0gVExCIHNldHVwIG9uIEFNQ0MgRWJvbnkgZXZhbCBib2FyZAoKICAgIERlZmluZSBDT05GSUdfUFJPR19TRFJBTV9UTEIgc28gdGhhdCB0aGUgVExCIGVudHJpZXMgZm9yIHRoZQogICAgRERSIG1lbW9yeSBhcmUgZHluYW1pY2FsbHkgcHJvZ3JhbW1lZCBtYXRjaGluZyB0aGUgdG90YWwgc2l6ZQogICAgb2YgdGhlIGVxdWlwcGVkIG1lbW9yeSAoRElNTSBtb2R1bGVzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzZkMTQ2NmY5MThiODgxY2RhMmQyNTkyNTQ3NjFlNzM4ODUwOTNjMgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgTWFyIDEzIDEzOjM4OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIHJlbmFtZWQgZW52aXJvbm1lbnQgdmFyaWFibGUgJ2FkZGNvbicgdG8gJ2FkZGNvbnMnIGZvciBQQ0k0MDUKCSAgICBib2FyZHMgaW4gdGVybXMgb2YgdW5pZmljYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYTcwOTBiOTkzZDNkNGQyMjIxYWMzZjMzZTZjYjFkMWIyY2NjNmJmMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTMgMTY6MDU6NTUgMjAwNyArMDEwMAoKICAgIE1ha2UgU0MzIGJvYXJkIGJ1aWxkIHdpdGggJ21ha2UgTz0nOyB1c2UgJ2FkZGNvbnMnIGNvbnNpc3RlbnRseQogICAgKFNDMyBhbmQgSnVwaXRlciB1c2VkIHRvIHVzZSAnYWRkY29uJyBpbnN0ZWFkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIHdkQGRlbnguZGUKCmNvbW1pdCA4NTAyZTMwYTI4ZTQ5MmM3NTZlYTJkN2RmMGFjZTAyNjM4OGZjZTRiCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDEzIDA5OjQwOjU5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIHVwZGF0ZSBib2FyZCBjb25maWcgZm9yIGp1cGl0ZXIgQm9hcmQ6CgkgICAgYWRkZWQgSHVzaCBTaGVsbCwKCQkgIENPTkZJR19DTURMSU5FX0VESVRJTkcsCgkJICBDRkdfRU5WX0FERFJfUkVEVU5EIGFjdGl2YXRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDBkOTNkZTExNDQ5MzkwYTU5ODRiMDIzNmMzNjEyZTUwZjZkYmI3ZTgKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDEyIDEyOjExOjU1IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBtaW5vciBjbGVhbnVwCgpjb21taXQgYmZhNTc1NGE1ODQ3N2FjOTE3ZDIxNTI3Y2QwZjA3OWQ4N2NmMTg4ZQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTIgMDE6NDI6MDYgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEZpeCBCVUlMRF9ESVIgb3B0aW9uIG9mIE1BS0VBTEwgYnVpbGRpbmcgaXNzdWUKCmNvbW1pdCA4NDQwYmIxNDU4MWEyOTQzNzVjMzRiOTFiNDI1MTJmOTc1M2QxMTMwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMiAwMDoyNToxNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY29kZSBjbGVhbnVwCgpjb21taXQgY2ZjNjcxMTZhNzA2ZmQxOGI4ZjZhOWMxMWExNjc1M2M1NjI2ZDY4OQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE1hciAxMSAxMzo0ODoyNCAyMDA3ICswMTAwCgogICAgW01pY3JvYmxhemVdW1BBVENIXSBwYXJ0IDIKICAgIHRpbWVyIHN1cHBvcnQKICAgIGludGVycnVwdCBjb250cm9sbGVyIHN1cHBvcnQKICAgIGZsYXNoIHN1cHBvcnQKICAgIGV0aGVybmV0IHN1cHBvcnQKICAgIGNhY2hlIHN1cHBvcnQKICAgIGJvYXJkIGluZm9ybWF0aW9uIHN1cHBvcnQKICAgIGVudiBzdXBwb3J0CiAgICBib290aW5nIGltYWdlIHN1cHBvcnQKCiAgICBhZGRpbmcgc3VwcG9ydCBmb3IgWGlsaW54IE1MNDAxCgpjb21taXQgNzYzMTZhMzE4ZGU5MWY2MTg0ZTdjMjJhMTBlMDJkMjc1YWRlMjQ0MQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE1hciAxMSAxMzo0Mjo1OCAyMDA3ICswMTAwCgogICAgW01pY3JvYmxhemVdW1BBVENIXQogICAgdGltZXIgc3VwcG9ydAogICAgaW50ZXJydXB0IGNvbnRyb2xsZXIgc3VwcG9ydAogICAgZmxhc2ggc3VwcG9ydAogICAgZXRoZXJuZXQgc3VwcG9ydAogICAgY2FjaGUgc3VwcG9ydAogICAgYm9hcmQgaW5mb3JtYXRpb24gc3VwcG9ydAogICAgZW52IHN1cHBvcnQKICAgIGJvb3RpbmcgaW1hZ2Ugc3VwcG9ydAoKICAgIGFkZGluZyBzdXBwb3J0IGZvciBYaWxpbnggTUw0MDEKCmNvbW1pdCA4ZGIxM2Q2MzE1NzgxMWM4MzlkMTVhMzEzZDlmMmQyZjVmZDEwYWYzCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJU2F0IE1hciAxMCAyMzo0OToyOSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY29kZSBjbGVhbnVwCgpjb21taXQgZWYyNmEwOGZlZjkyOGI3YmMxMWFlMmMxMDllNjM4ZGMzYTAxNmQ5MQpBdXRob3I6IEF1YnJleS5MaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CUZyaSBNYXIgOSAxMzo0MDo1NiAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSC0yLzJdIENvbW1vbiBmaWxlcyBjaGFuZ2VkIHRvIHN1cHBvcnQgYmY1MzMgcGxhdGZvcm0KCmNvbW1pdCAzZjA2MDZhZDBiNTYzOWY3ZjIyODQ4ZmU1YjQ1NzRlNzU0ZDA0NzBmCkF1dGhvcjogQXVicmV5LkxpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIE1hciA5IDEzOjM4OjQ0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dUEFUQ0gtMS8yXTogUmVtb3ZlIG9ic29sZXRlIGJsYWNrZmluIHBvcnQgYW5kIGFkZCBiZjUzMyBwbGF0Zm9ybSBzdXBwb3J0Cgpjb21taXQgOTkyNDIzYWI0M2MyYmNmNmI3MDQ4NTNiZDAwYWY3NzQ1MDkxNWUyMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIzOjAwOjA4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBmaWxlIG1vZGUgb2Ygc2VxdW9pYS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViOTJmNjEzNTU2ODAwZjc0ODM2NjZkYjA5ZDlhMjM3YWQ5MTFkNGEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIyOjUyOjUxIDIwMDcgKzAxMDAKCiAgICBNaW5vciBjbGVhbnVwLgoKY29tbWl0IDhjZTE2ZjU1YzdiOTc1MmFmM2Q4YmVkODQ1MjFhZWM1MzM3ZTJkZTEKQXV0aG9yOiBKb2huIE90a2VuIGpvaG5Ac29mdGFkdmFuY2VzLmNvbSA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgpEYXRlOglUaHUgTWFyIDggMDk6Mzk6NDggMjAwNyAtMDYwMAoKICAgIHBwYzR4eDogQ2xlYXIgU2VxdW9pYS9SYWluaWVyIHNlY3VyaXR5IGVuZ2luZSByZXNldCBiaXRzCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBPdGtlbiBqb2huQHNvZnRhZHZhbmNlcy5jb20gPGpvaG5Ac29mdGFkdmFuY2VzLmNvbT4KCmNvbW1pdCA2NTBhMzMwZGQyNTM5MTMwYzhjMzI0NzkxZTJmOWY3NWFlZDc5ZDRlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyNjo1MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IGFkZCBzb21lIG1vcmUgU1BEIGVlcHJvbSBkZWNvZGluZyBmb3IgRERSMiBtb2R1bGVzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZDlmYzcwMzI0Njg0MGM0YjI2OGRlYmY0OGMzMzRiYTU1YzU5N2RjMApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgTWFyIDggMTY6MjU6NDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gSTJDOiBkaXNhYmxlIGZsYXQgaTJjIGNvbW1hbmRzIHdoZW4gQ09ORklHX0kyQ19DTURfVFJFRSBpcyBkZWZpbmVkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgY2VkNWI5MDI5MDQzMzk3MzQ4Y2RjODhlMGNmY2Q2YjFmNjI5MjUwYgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgTWFyIDggMTY6MjM6MTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gNHh4OiBhbGxvdyBDT05GSUdfSTJDX0NNRF9UUkVFIHdpdGhvdXQgQ09ORklHX0kyQ19NVUxUSV9CVVMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkOGE4ZWE1YzQ3NmQzNzAwNmZjN2Y4NWI3ZjkwMzE0Mjc5NWM4YjE0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyMDozMiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBtaXNzaW5nIGRlZmF1bHQgQ0ZHX1NQRF9CVVNfTlVNCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZjlmYzZhNTg1MmE2MzM1ODQwODgyZmEyMTExOTI1MDEwZWVhMWFiZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgTWFyIDcgMTU6MzI6MDEgMjAwNyArMDEwMAoKICAgIGZpeGVkIGV0aGVybmV0IHBoeSBjb25maWd1cmF0aW9uIGZvciBwbHU0MDUgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3NjkxMDRjOTM1NjU5NGRlYjIwOTJlMjA0YTM5YzA1YjMzMjAyZDZjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAyMTo0OToyNyAyMDA3ICswMTAwCgogICAgTWlub3IgY2xlYW51cAoKY29tbWl0IDAwY2RiNGNlNWUxYjQyMjQ4ZTdlNjUyMmFkMGRhMzQyMWI5ODhhZmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDoxMzoxNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBMdWFuIDQ0MFNQIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBBTUNDIEx1YW4gbm93IHVzZXMgdGhlIGNvbW1vbiA0NDBTUChlKSBERFIgU1BEIGNvZGUgZm9yIEREUgogICAgaW5pdGl0aWFsaXppdGlvbi4gVGhpcyBpbmNsdWRlcyBERFIgYXV0byBjYWxpYnJhdGlvbiBhbmQgc3VwcG9ydAogICAgZm9yIGRpZmZlcmVudCBESU1NIG1vZHVsZXMsIGluc3RlYWQgb2YgdGhlIGZpeGVkIHNldHVwIHVzZWQgaW4KICAgIHRoZSBlYXJsaWVyIHZlcnNpb24uCgogICAgVGhpcyBwYXRjaCBhbHNvIGVuYWJsZXMgdGhlIGNhY2hlIGluIEZMQVNIIGZvciB0aGUgc3RhcnR1cAogICAgcGhhc2Ugb2YgVS1Cb290ICh3aGlsZSBydW5uaW5nIGZyb20gRkxBU0gpLiBBZnRlciByZWxvY2F0aW5nIHRvCiAgICBTRFJBTSB0aGUgY2FjaGUgaXMgZGlzYWJsZWQgYWdhaW4uIFRoaXMgd2lsbCBzcGVlZCB1cCB0aGUgYm9vdAogICAgcHJvY2VzcywgZXNwZWNpYWxseSB0aGUgU0RSQU0gc2V0dXAsIHNpbmNlIHRoZXJlIGFyZSBzb21lIGxvb3BzCiAgICBmb3IgbWVtb3J5IHRlc3RpbmcgKGF1dG8gY2FsaWJyYXRpb24pLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZjVkZjQ3MzUxOTEwYTI5MzZjNzc0MWNmMTExODU1ODI5MjAwOTQzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MTA6MTggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFNQ0MgWXVjY2EgNDQwU1BlIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBBTUNDIFl1Y2NhIG5vdyB1c2VzIHRoZSBjb21tb24gNDQwU1AoZSkgRERSIFNQRCBjb2RlIGZvciBERFIKICAgIGluaXRpdGlhbGl6aXRpb24uIFRoaXMgaW5jbHVkZXMgRERSIGF1dG8gY2FsaWJyYXRpb24gYW5kIHN1cHBvcnQKICAgIGZvciBkaWZmZXJlbnQgRElNTSBtb2R1bGVzLCBpbnN0ZWFkIG9mIHRoZSBmaXhlZCBzZXR1cCB1c2VkIGluCiAgICB0aGUgZWFybGllciB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNzIxYTY4YTllYTkxZjFlNDk0NjQ5Y2U2OGIyNTc3MjYxZjU3OGUyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MDc6MTggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogU21hbGwgQU1DQyBLYXRtYWkgNDQwU1BlIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjI5NDQ5NzQ3OWIxZGNhNmRkODYzMThiMmE5MTJmNzJmZWRlMGRmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMTA6MDY6MDkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0MFNQLzQ0MFNQZSBERFIgU1BEIHNldHVwIGNvZGUgdG8gc3VwcG9ydCA0NDBTUAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4Mzg1MzE3OGJkMzZiY2E2ZjBmOGYxMzMxNDc2NjIwYzg0YTU4N2ZjCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciA3IDEyOjE0OjUwIDIwMDcgLTA2MDAKCiAgICBuZXQgLSBTdXBwb3J0IHBpbmcgcmVwbHkgd2hlbiBwcm9jZXNzaW5nIG5ldC1sb29wCgogICAgQWRkIElDTVBfRUNIT19SRVFVRVNUIHBhY2tldCBzdXBwb3J0IGJ5IHJlc3BvbmRpbmcgd2l0aCBhIElDTVBfRUNIT19SRVBMWS4KCiAgICBUaGlzIHBlcm1pdHMgdGhlIHBpbmcgY29tbWFuZCB0byB0ZXN0IHRoZSBwaHkgaW50ZXJmYWNlIHdoZW4gdGhlIHBoeQogICAgaXMgcHV0IGluIGxvb3BiYWNrIG1vZGUgKHR5cGljYWxseSBieSBzZXR0aW5nIHJlZ2lzdGVyIDAgYml0IDE0KS4KCiAgICBJdCBhbHNvIGFsbG93cyB0aGUgcG9ydCB0byByZXNwb25kIHRvIGFuIGV4dGVybmFsIHBpbmcgd2hlbiB1LWJvb3QgaXMKICAgIHByb2Nlc3Npbmcgc29tZSBvdGhlciBuZXQgY29tbWFuZCAoc3VjaCBhcyB0ZnRwKS4gIFRoaXMgaXMgdXNlZnVsIHdoZW4KICAgIHRmdHAgYXBwZWFycyB0byBoYW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBmYTFhZWYxNWJjZDQ3NzM2Njg3YmUxYWY1NDQ1MDZlOTBmYmE1NDVkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDcgMTY6NDM6MDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXNlIGR5bmFtaWMgU0RSQU0gVExCIHNldHVwIG9uIEFNQ0MgT2NvdGVhIGV2YWwgYm9hcmQKCiAgICBEZWZpbmUgQ09ORklHX1BST0dfU0RSQU1fVExCIHNvIHRoYXQgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUKICAgIEREUiBtZW1vcnkgYXJlIGR5bmFtaWNhbGx5IHByb2dyYW1tZWQgbWF0Y2hpbmcgdGhlIHRvdGFsIHNpemUKICAgIG9mIHRoZSBlcXVpcHBlZCBtZW1vcnkgKERJTU0gbW9kdWxlcykuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUyZWJlNjk2ODE4OTM5ZTJiOTc0NjI4YmU5YzkyMWVhM2ZlOWRlMTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjozOTozNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXggQU1DQyA0NHggU1BEIFNEUkFNIGluaXQgY29kZSB0byBzdXBwb3J0IDIgRElNTSdzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gdGhhdCBvY2N1cnMgd2hlbiAyIERJTU0ncyBhcmUKICAgIHVzZWQuIFRoaXMgcHJvYmxlbSB3YXMgZmlyc3Qgc3BvdHRlZCBhbmQgZml4ZWQgYnkgR2VyYWxkIEphY2tzb24KICAgIDxnZXJhbGQuamFja3NvbkByZWFvbml4c2VjdXJpdHkuY29tPiBidXQgdGhpcyBwYXRjaCBmaXhlcyB0aGUKICAgIHByb2JsZW0gaW4gYSBsaXR0bGUgbW9yZSBjbGV2ZXIgd2F5LgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHRoZSBuaWNlIGZ1bmN0aW9uYWxpdHkgdG8gZHluYW1pY2FsbHkKICAgIGNyZWF0ZSB0aGUgVExCIGVudHJpZXMgZm9yIHRoZSBTRFJBTSAodGxiLmMpLiBTbyB3ZSBzaG91bGQKICAgIG5ldmVyIHJ1biBpbnRvIHN1Y2ggcHJvYmxlbXMgd2l0aCB3cm9uZyAodG9vIHNob3J0KSBUTEIKICAgIGluaXRpYWxpemF0aW9uIGFnYWluIG9uIHRoZXNlIHBsYXRmb3Jtcy4KCiAgICBBcyB0aGlzIGZlYXR1cmUgaXMgbmV3IHRvIHRoZSAib2xkIiA0NHggU1BEIEREUiBkcml2ZXIsIGl0CiAgICBoYXMgdG8gYmUgZW5hYmxlZCB2aWEgdGhlIENPTkZJR19QUk9HX1NEUkFNX1RMQiBkZWZpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM5MjE4NDMzOTgzNDE3YjlkZjA4Nzk3NmE3OWUzZjgwZGQ1ZTgzZDYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDcgMTY6MzM6NDQgMjAwNyArMDEwMAoKICAgIFVDMTAxOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA4ZDdlMjczMjIyMWJjMmQ2NGRmMTRmNzAwYzY0YzIzZTBhNGMzZGNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjoxOTo0NiAyMDA3ICswMTAwCgogICAgSE1JMTAwMTogZml4IGJ1aWxkIGVycm9yLCBjbGVhbnVwIGNvbXBpbGVyIHdhcm5pbmdzLgoKY29tbWl0IGFkNWJiNDUxYWRlNTUyYzQ0YmVmOTExOWQ5MDc5MjllYmMyYzEyNmYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciA2IDE4OjA4OjQzIDIwMDcgKzAxMDAKCiAgICBSZXN0cnVjdHVyZSBQT1NUIGRpcmVjdG9yeSB0byBzdXBwb3J0IG9mIG90aGVyIENQVXMsIGJvYXJkcywgZXRjLgoKY29tbWl0IGE1Mjg0ZWZkMTI1OTY3Njc1YjJlOWM2ZWY3Yjk1ODMyMjY4YWQzNjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciA2IDE4OjAxOjQ3IDIwMDcgKzAxMDAKCiAgICBGaXggSE9TVEFSQ0ggaGFuZGxpbmcuCiAgICBQYXRjaCBieSBNaWtlIEZyeXNpbmdlciwgTWFyIDA1IDIwMDcKCmNvbW1pdCAwN2I3YjAwMzdhYWM1MTAyOTM5OTE3ZDdjYmU1NjFiNWMwZDVhYTQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMDc6NDc6MDQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gU3BlZWQgb3B0aW1pemF0aW9uIG9mIEFNQ0MgU2VxdW9pYS9SYWluaWVyIEREUjIgc2V0dXAKCiAgICBBcyBwcm92aWRlZCBieSB0aGUgQU1DQyBhcHBsaWNhdGlvbnMgdGVhbSwgdGhpcyBwYXRjaCBvcHRpbWl6ZXMgdGhlCiAgICBERFIyIHNldHVwIGZvciAxNjZNSHogYnVzIHNwZWVkLiBUaGUgdmFsdWVzIHByb3ZpZGVkIGFyZSBhbHNvIHNhdmUKICAgIHRvIHVzZSBvbiBhICJub3JtYWwiIDEzM01IeiBQTEIgYnVzIHN5c3RlbS4gT25seSB0aGUgcmVmcmVzaCBjb3VudGVyCiAgICBzZXR1cCBoYXMgdG8gYmUgYWRqdXN0ZWQgYXMgZG9uZSBpbiB0aGlzIHBhdGNoLgoKICAgIEZvciB0aGlzIHRoZSBOQU5EIGJvb3RpbmcgdmVyc2lvbiBoYWQgdG8gaW5jbHVkZSB0aGUgInNwZWVkLmMiIGZpbGUKICAgIGZyb20gdGhlIGNwdS9wcGM0eHggZGlyZWN0b3J5LiBXaXRoIHRoaXMgYWRkaXRpb24gdGhlIE5BTkQgU1BMIGltYWdlCiAgICB3aWxsIGp1c3QgZml0IGludG8gdGhlIDRrYnl0ZXMgb2YgcHJvZ3JhbSBzcGFjZS4gZ2NjIHZlcnNpb24gNC54IGFzCiAgICBwcm92aWRlZCB3aXRoIEVMREsgNC54IGlzIG5lZWRlZCB0byBnZW5lcmF0ZSB0aGlzIG9wdGltaXplZCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2NDdkM2MzZWVkMGRhMWQxNTA1ZWVjYWJlMGIwZmFiOTZmOTU2ZTY4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBNYXIgNCAwMTozNjowNSAyMDA3ICswMTAwCgogICAgU29tZSBjb2RlIGNsZWFudXAuCgpjb21taXQgNzgxZTAyNmM4YWE2ZjdlOWViNWYwZTcyY2M0ZDIwOTcxMjE5YjE0OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjggMDA6MDI6MDQgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZnRfZ2V0X3Byb3AnIHdhcm5pbmdzCgogICAgKGNoZXJyeSBwaWNrZWQgZnJvbSBjNWJmMTNiMDIyODRjMzIwNGE3MjM1NjZhOWJhYjcwMGU1MDU5NjU5IGNvbW1pdCkKCmNvbW1pdCA0ZmVhYjRkZTdiZmMyY2IyZmVkMzZhZDc2ZjkzYzNhNjk2NTliYmFmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAyNyAyMzo1MTo0MiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRml4IGNvbmZpZyBvZiBBcmJpdGVyLCBTeXN0ZW0gUHJpb3JpdHksIGFuZCBDbG9jayBNb2RlCgogICAgVGhlIGNvbmZpZyB2YWx1ZSBmb3I6CiAgICAqIENGR19BQ1JfUElQRV9ERVAKICAgICogQ0ZHX0FDUl9SUFRDTlQKICAgICogQ0ZHX1NQQ1JfVFNFQzFFUAogICAgKiBDRkdfU1BDUl9UU0VDMkVQCiAgICAqIENGR19TQ0NSX1RTRUMxQ00KICAgICogQ0ZHX1NDQ1JfVFNFQzJDTQoKICAgIFdlcmUgbm90IGJlaW5nIHVzZWQgd2hlbiBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSByZWdpc3RlcgoKICAgIEFkZGVkOgogICAgKiBDRkdfU0NDUl9VU0JNUEhDTQogICAgKiBDRkdfU0NDUl9VU0JEUkNNCiAgICAqIENGR19TQ0NSX1BDSUNNCiAgICAqIENGR19TQ0NSX0VOQ0NNCgogICAgVG8gYWxsb3cgZnVsbCBjb25maWcgb2YgdGhlIFNDQ1IuCgogICAgQWxzbyByZW1vdmVkIHJhbmRvbSBDRkdfU0NDUiBzZXR0aW5ncyBpbiBNUEM4MzQ5RU1EUywgVFFNODM0eCwgYW5kIHNiYzgzNDkKICAgIHRoYXQgd2VyZSBqdXN0IGJvZ3VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZDUxYjNjZjM3MWNkNDQxMDMwNDYwZWYxOWQzNmIyOTI0YzM2MWIxYQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBGZWIgMjIgMjA6MDY6NTcgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHVwZGF0ZSBbbG9jYWwtXW1hYy1hZGRyZXNzIHByb3BlcnRpZXMgb24gVUVDIGJhc2VkIGRldmljZXMKCiAgICA4MzYwIGFuZCA4MzJ4IHdlcmVuJ3QgdXBkYXRpbmcgdGhlaXIgW2xvY2FsLV1tYWMtYWRkcmVzcwogICAgcHJvcGVydGllcy4gVGhpcyBwYXRjaCBmaXhlcyB0aGF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjFmNGY5MTJhY2JlNjA3NzZjNWUwMGRmMWVjOTQwOTRjZTY3Mjk1NwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMTMgMTA6NDE6NDIgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCB0aGlzIHBhdGNoCiAgICB1cGRhdGVzIGZ0cF9jcHVfc2V0dXAoKSB0byB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgaWYgaXQgZXhpc3RzLgogICAgVGhpcyBmdW5jdGlvbiBhbHJlYWR5IHVwZGF0ZXMgbG9jYWwtbWFjLWFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmQ3MWE3MWY1N2ZkNWQzOGIyN2FjMzg0OGU1MGQ3OTAzNjBhNTk4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAxODo0MTowOCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogYWRkIGNvbW1hbmQgbGluZSBlZGl0aW5nIGJ5IGRlZmF1bHQKCmNvbW1pdCAzZmMwYmQxNTkxMDNiNTM2ZTFjNTRjNmY0NDU3YTA5YjNhYmE2NmNhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxOTo1MDo1MyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRGlzYWJsZSBHMVRYQ0xLLCBHMlRYQ0xLIGgvdyBidWZmZXJzCgogICAgRGlzYWJsZSBHMVRYQ0xLLCBHMlRYQ0xLIGgvdyBidWZmZXJzLiBUaGlzIHBhdGNoCiAgICBmaXhlcyBhIG5ldHdvcmtpbmcgdGltZW91dCBpc3N1ZSB3aXRoIE1QQzgzNjBFQSAoUmV2LjIpIFBCcy4KCiAgICBWZXJpZmllZCBvbiBSZXYuIDEuMSwgUmV2LiAxLjIsIGFuZCBSZXYuIDIuMCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEVtaWxpYW4gTWVkdmUgPEVtaWxpYW4uTWVkdmVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNjE4NTNjZjI0NzJlMGI4YmNiZDEzMTQ2MWE5M2QxYzQ5ZmYwYzFmCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6Mjc6MTcgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCBERFIyIGNvbnRyb2xsZXIgZml4ZWQvU1BEIEluaXQgZm9yIE1QQzgzeHgKCiAgICBUaGUgY29kZSBzdXBwbHkgZml4ZWQgYW5kIFNQRCBpbml0aWFsaXphdGlvbiBmb3IgTVBDODN4eCBERFIyIENvbnRyb2xsZXIuCiAgICBpdCBwYXNzIEREUi9ERFIyIGNvbXBsaWFuY2UgdGVzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibyA8WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMTEwZjQwYmQxODBjNmI1NjAyNzY1ODliZWVkZjc1M2U5N2M0NmNlCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6Mjc6MDYgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgY3B1IHNwZWNpZmljIGNvZGUgZm9yIE1QQzgzNjBFIHJldjIuMCBNRFMKCiAgICBNUEM4MzYwRSByZXYyLjAgaGF2ZSBuZXcgc3ByaWRyLGFuZCBQVlIgdmFsdWUsCiAgICBUaGUgTURTIGJvYXJkIGZvciBNUEM4MzYwRSByZXYyLjAgaGFzIDMyTSBieXRlcyBGbGFzaCBhbmQgMjU2TSBERFIyIERJTU0uCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibyA8WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZDE3MmMwZjBkODU5OThhMjU2YTk1Yjc0NTlhNTQwM2EzMDM4MGVkCkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTg6MjY6NDQgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgY3B1IGFuZCBib2FyZCBzcGVjaWZpYyBjb2RlIGZvciBNUEM4MzQ5RSByZXYzLjEgTURTCgogICAgTVBDODM0OUUgcmV2My4xIGhhdmUgbmV3IHNwcmlkcixhbmQgUFZSIHZhbHVlLAogICAgVGhlIE1EUyBib2FyZCBmb3IgTVBDODM0OUUgcmV2My4xIGhhcyAzMk0gYnl0ZXMgRmxhc2ggYW5kIDI1Nk0gRERSMiBESU1NLgoKICAgIFNpZ25lZC1vZmYtYnk6IFhpZSBYaWFvYm88WC5YaWVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNmY1ZjcwOWU1YzhlNDU2NGM0ZGZlZWNmZGYyMjc5MjQ0ZjljODNiCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8am9ha2ltLnRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVdlZCBKYW4gMzEgMTE6MDQ6MTkgMjAwNyArMDEwMAoKICAgIG1wYzgzeHg6IEZpeCBlbXB0eSBpMmMgcmVhZHMvd3JpdGVzIGluIGZzbF9pMmMuYwoKICAgIEZpeCBlbXB0eSBpMmMgcmVhZHMvd3JpdGVzLCBpMmNfd3JpdGUoMHg1MCwgMHgwMCwgMCwgTlVMTCwgMCkKICAgIHdoaWNoIGlzIHVzZWQgdG8gc2UgaWYgYW4gc2xhdmUgd2lsbCBBQ0sgYWZ0ZXIgcmVjZWl2aW5nIGl0cyBhZGRyZXNzLgoKICAgIENvcnJlY3QgaTJjIHByb2JpbmcgdG8gdXNlIHRoaXMgbWV0aG9kIGFzIHRoZSBvbGQgbWV0aG9kIGNvdWxkIHVwc2V0CiAgICBhIHNsYXZlIGFzIGl0IHdyb3RlIGEgZGF0YSBieXRlIHRvIGl0LgoKICAgIEFkZCBhIHNtYWxsIGRlbGF5IGluIGkyY19pbml0KCkgdG8gbGV0IHRoZSBjb250cm9sbGVyCiAgICBzaHV0ZG93biBhbnkgb25nb2luZyBJMkMgYWN0aXZpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+Cgpjb21taXQgN2E3OGYxNDhkNmE3Mjk4ZTRmZmFjZTY4MGRjN2VhY2Q4NzdiMWFiYQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzEgMTU6NTQ6MjkgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWC1HUAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWC1HUCwgYSBzdHJpcHBlZC1kb3duIHZlcnNpb24gb2YgdGhlCiAgICBNUEM4MzQ5RS1tSVRYLiAgQm9udXMgZmVhdHVyZXMgaW5jbHVkZSBzdXBwb3J0IGZvciBsb3ctYm9vdCAoQk1TIGJpdCBpbgogICAgSFJDVyBpcyAwKSBmb3IgdGhlIElUWCBhbmQgYSBSRUFETUUgZm9yIHRoZSBJVFggYW5kIHRoZSBJVFgtR1AuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYWIxNjgwN2FkYWQzNTBmNjE4MDI0MzUwYzY5NTAxNjVjMjQ3YzcyCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMSAxNTo1NDoyMCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRGVsZXRlIHNkcmFtX2luaXQoKSBmb3IgTVBDODM0OUUtbUlUWAoKICAgIFRoZXJlIGlzIG5vIFNEUkFNIG9uIGFueSBvZiB0aGUgODM0OSBJVFggdmFyaWFudHMsIHNvIGZ1bmN0aW9uIHNkcmFtX2luaXQoKQogICAgbmV2ZXIgZG9lcyBhbnl0aGluZy4gIFRoaXMgcGF0Y2ggZGVsZXRlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4N2M4NTZlYjQxMWI5MzY1OTM3ZDBkNGI5YzIxZTQ2YWRiZTFjMTQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDE5IDEwOjQzOjI2IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIExBVzEvMyBidWcKCiAgICBUaGUgcGF0Y2ggc29sdmVzIHRoZSBhbGlnbm1lbnQgcHJvYmxlbSBvZiB0aGUgbG9jYWwgYnVzIGFjY2VzcyB3aW5kb3dzIHRvCiAgICByZW5kZXIgYWNjZXNzaWJsZSB0aGUgbWVtb3J5IGJhbmsgYW5kIFBIWSByZWdpc3RlcnMgb2YgVVBDIDEgKHN0YXJ0aW5nIGF0CiAgICAweGY4MDEgMDAwMCkuIFdoYXQgd2UgYWN0dWFsbHkgZGlkIHdhcyB0byBhZGp1c3QgdGhlIHNpemVzIG9mIHRoZSBidXMKICAgIGFjY2VzcyB3aW5kb3dzIHNvIHRoYXQgdGhlIGJhc2UgYWRkcmVzcyBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgd291bGQgYmUgbWV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IENoZXJlamkgTWFyaWFuIDxtYXJpYW4uY2hlcmVqaUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogR3JpZGlzaCBTaGxvbWkgPGdyaWRpc2hAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTdjNGIzOTdkY2UyMzZhNzMxOGIzMDQ2NjdiZjg5ZTU5ZDA4YjE3YwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTU6MzEgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGRvbid0IGhhbmcgaWYgd2F0Y2hkb2cgY29uZmlndXJlZCBvbiA4MzYwLCA4MzJ4CgogICAgZG9uJ3QgaGFuZyBpZiB3YXRjaGRvZyBjb25maWd1cmVkIG9uIDgzNjAsIDgzMngKCiAgICBUaGUgd2F0Y2hkb2cgcHJvZ3JhbW1pbmcgbW9kZWwgaXMgdGhlIHNhbWUgYWNyb3NzIGFsbCA4M3h4IGRldmljZXM7CiAgICBtYWtlIHRoZSBjb2RlIHJlZmxlY3QgdGhhdC4KCmNvbW1pdCBiNzAwNDc0Nzg1NzBlMzcxY2U3MjIzYmUzNDJjZTk4YWZlYTBmN2Q2CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNToyMSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogcHJvdGVjdCBtZW1jcHkgdG8gYmFkIGFkZHJlc3MgaWYgYSBsb2NhbC1tYWMtYWRkcmVzcyBpcyBtaXNzaW5nIGZyb20gZHQKCiAgICBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIGxvY2FsLW1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKY29tbWl0IDY3NTJlZDA4OGM3NWMyNmE4OWI3MGM0NmI3MzI2YTRjZDYwMTVmMjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDMwIDE2OjE1OjA0IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBtYWtlIDgzNjAgZGVmYXVsdCBlbnZpcm9ubWVudCBmZHQgYmUgODM2MCAobm90IDgzNDkpCgogICAgbWFrZSA4MzYwIGRlZmF1bHQgZW52aXJvbm1lbnQgZmR0IGJlIDgzNjAgKG5vdCA4MzQ5KQoKY29tbWl0IGEyODg5OWM5MTAwMjRhMDIyNjMzMWRmMDcyMDdiMTAzOGMzMDBjOTMKQXV0aG9yOiBFbWlsaWFuIE1lZHZlIDxFbWlsaWFuLk1lZHZlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTQ6NTAgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCBhbHRlcm5hdGluZyB0eCBlcnJvciAvIHR4IGJ1ZmZlciBub3QgcmVhZHkgYnVnIGluIFFFIFVFQwoKICAgIFRoZSBwcm9ibGVtIGlzIG5vdCBnY2M0IGJ1dCB0aGUgY29kZSBpdHNlbGYuIFRoZSBCRF9TVEFUVVMoKSBtYWNybyBjYW4ndAogICAgYmUgdXNlZCBmb3IgYnVzeS13YWl0aW5nIHNpbmNlIGl0IHN0cmlwcyB0aGUgJ3ZvbGF0aWxlJyBwcm9wZXJ0eSBmcm9tCiAgICB0aGUgYmQgdmFyaWFibGUuIGdjYzMgd2FzIHdvcmtpbmcgYnkgcHVyZSBsdWNrLgoKICAgIFRoaXMgaXMgYSBmb2xsb3cgb24gcGF0Y2ggdG8gIkZpeCB0aGUgVUVDIGRyaXZlciBidWcgb2YgUUUiCgpjb21taXQgM2U3OGEzMWNmZTNkMzAyMmY0NmY2N2ViODhlMTI4MWQ1Y2MyZWI4OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBKYW4gMzAgMTQ6MDg6MzAgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IFJlcGxhY2UgQ09ORklHX01QQzgzNDkgYW5kIHVzZSBDT05GSUdfTVBDODM0WCBpbnN0ZWFkCgogICAgVGhlIGNvZGUgdGhhdCBpcyBpZmRlZidkIHdpdGggQ09ORklHX01QQzgzNDkgaXMgYWN0dWFsbHkgYXBwbGljYWJsZSB0byBhbGwKICAgIE1QQzgzNFggY2xhc3MgcHJvY2Vzc29ycy4gIENoYW5nZSB0aGUgcHJvdGVjdGlvbnMgZnJvbSBDT05GSUdfTVBDODM0OSB0bwogICAgQ09ORklHX01QQzgzNFggc28gdGhleSBhcmUgbW9yZSBnZW5lcmljLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWUyNDZkYzZjMTkzN2MyOTEwMTRlYWRkOTBiNmQ0OGM0MzhjN2NiMApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMjUgMTM6NDA6NTUgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBNUEM4MzJYRU1EUyBhbmQgc2JjODM0OSB0byBNQUtFQUxMCgpjb21taXQgNGRlY2Q4NGU4ZjA0Mjc5YzVjZmZmN2Y4ZTkwNzQ2NWVmOGQ4YTNmYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjQgMTc6MTg6MzcgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IHNvcnQgTWFrZWZpbGUgdGFyZ2V0cwoKICAgIHJlb3JkZXJlZCB0YXJnZXRzIGFscGhhYmV0aWNhbGx5Cgpjb21taXQgOTFlMjU3Njk3NzFjMTE2NGVkNjNmZmNhMGFkZDQ5ZjkzNGFlMzM0MwpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUdWUgSmFuIDE2IDExOjM4OjE0IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBVLUJvb3Qgc3VwcG9ydCBmb3IgV2luZCBSaXZlciBTQkM4MzQ5CgogICAgSSd2ZSByZWRvbmUgdGhlIFNCQzgzNDkgc3VwcG9ydCB0byBtYXRjaCBnaXQtY3VycmVudCwgd2hpY2gKICAgIGluY29ycG9yYXRlcyBhbGwgdGhlIE1QQzgzNHggdXBkYXRlcyBmcm9tIEZyZWVzY2FsZSBzaW5jZSB0aGUgMS4xLjYKICAgIHJlbGVhc2UsICBpbmNsdWRpbmcgdGhlIEREUiBjaGFuZ2VzLgoKICAgIEkndmUga2VwdCBhbGwgdGhlIFNCQzgzNDkgZmlsZXMgYXMgcGFyYWxsZWwgYXMgcG9zc2libGUgdG8gdGhlCiAgICBNUEM4MzQ5RU1EUyBvbmVzIGZvciBlYXNlIG9mIG1haW50ZW5hbmNlIGFuZCB0byBhbGxvdyBmb3IgZWFzeQogICAgaW5zcGVjdGlvbiBvZiB3aGF0IHdhcyBjaGFuZ2VkIHRvIHN1cHBvcnQgdGhpcyBib2FyZC4gIEhlbmNlIHRoZSBTQkM4MzQ5CiAgICBVLUJvb3QgaGFzIEZEVCBzdXBwb3J0IGFuZCBldmVyeXRoaW5nIGVsc2UgdGhhdCB0aGUgTVBDODM0OUVNRFMgaGFzLgoKICAgIEZvcnR1bmF0ZWx5IHRoZSBGcmVlc2NhbGUgdXBkYXRlcyBhZGRlZCBzdXBwb3J0IGZvciBib2FyZHMgdXNpbmcgQ1MwLAogICAgYnV0IEkgaGFkIHRvIGNoYW5nZSBzcGRfc2RyYW0uYyB0byBhbGxvdyBmb3IgYm9hcmQgc3BlY2lmaWMgc2V0dGluZ3MgZm9yCiAgICB0aGUgc2RyYW1fY2xrX2NudGwgKGl0IGlzL3dhcyBoYXJkIGNvZGVkIHRvIHplcm8sIGFuZCB0aGF0IHJlbWFpbnMgdGhlCiAgICBkZWZhdWx0IGlmIHRoZSBib2FyZCBkb2Vzbid0IHNwZWNpZnkgYSB2YWx1ZS4pCgogICAgSG9wZWZ1bGx5IHRoaXMgc2hvdWxkIGJlIG1lcmdlYWJsZSBhcy1pcyBhbmQgcmVxdWlyZSBubyB3aGl0ZXNwYWNlCiAgICBjbGVhbnVwcyBvciBzaW1pbGFyLCBidXQgaWYgc29tZXRoaW5nIGRvZXNuJ3QgbWVhc3VyZSB1cCB0aGVuIGxldCBtZQogICAga25vdyBhbmQgSSdsbCBmaXggaXQuCgogICAgVGhhbmtzLAogICAgUGF1bC4KCmNvbW1pdCAwNTAzMWRiNDU2YWIyMjdmM2UzNzUyZjM3YjliODEyYjY1YmI4M2FkCkF1dGhvcjogU2FtIFNvbmcgPHNhbXNvbmdzaHVAeWFob28uY29tLmNuPgpEYXRlOglUaHUgRGVjIDE0IDE5OjAzOjIxIDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmUgYSByZWR1bmRhbnQgc2VtaWNvbG9uIGluIG1wYzgzNDlpdHguYwoKICAgIEEgcmVkdW5kYW50IHNlbWljb2xvbiBleGlzdGVkIGluIG1wYzgzNDlpdHguYwogICAgc2hvdWxkIGJlIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU2FtIFNvbmcgPHNhbXNvbmdzaHVAeWFob28uY29tLmNuPgoKY29tbWl0IGYzNWYzNTgyNDFjNTQ5YmUzZjc1Y2ZlMmVhYTY0MjkxNDI3NWI3YmEKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGdlcmFsZC52YW5iYXJlbkBjb21jYXN0Lm5ldD4KRGF0ZToJV2VkIERlYyA2IDIxOjIzOjU1IDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBQdXQgdGhlIHZlcnNpb24gKGFuZCBtYWdpYykgYWZ0ZXIgdGhlIEhSQ1cuCgogICAgUHV0IHRoZSB2ZXJzaW9uIChhbmQgbWFnaWMpIGFmdGVyIHRoZSBIUkNXLiAgVGhpcyBwdXRzIGl0IGluIGEgZml4ZWQKICAgIGxvY2F0aW9uIGluIGZsYXNoLCBub3QgYXQgdGhlIHN0YXJ0IG9mIGZsYXNoIGJ1dCBhcyBjbG9zZSBhcyB3ZSBjYW4gZ2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEplcnJ5IFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA0OGFlY2Q5NjkxNzFhNmU5OWE1NWZhZTA0OTMzODU3Nzg3ZjlhNWJkCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMjE6MTQ6NTEgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgTVBDODMyWEVNRFMgYm9hcmQgcmVhZG1lCgogICAgQWRkIHRoZSBNUEM4MzJYRU1EUyBib2FyZCByZWFkbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI0YzNhY2EzZjEzNThiMTEzZDMyMTVhZGI1NDMzYjE1NmU5OWY3MmIKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxMzoxNSAyMDA2ICswODAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzJYRU1EUyBib2FyZAoKICAgIFRoaXMgcGF0Y2ggc3VwcG9ydHMgRFVBUlQsIEVUSDMvNCBhbmQgUENJIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUwODAzMTNjMzIzMjJlMTVhYjVhMThlYjg5NmEyNTI4NThjNTcyODQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxMTo1OCAyMDA2ICswODAwCgogICAgbXBjODN4eDogc3RyZWFtbGluZSB0aGUgODN4eCBpbW1yIGhlYWQgZmlsZQoKICAgIEZvciBiZXR0ZXIgZm9ybWF0IGFuZCBzdHlsZSwgSSBzdHJlYW1saW5lZCB0aGUgODN4eCBoZWFkIGZpbGVzLAogICAgaW5jbHVkaW5nIGltbWFwXzgzeHguaCBhbmQgbXBjODN4eC5oLiBJbiB0aGUgb2xkIGhlYWQgZmlsZXMsIDEpCiAgICBkdXBsaWNhdGVkIG1hY3JvIGRlZmluaXRpb24gYXBwZWFyIGluIHRoZSBib3RoIGZpbGVzOyAyKSB0aGUgc3RydWN0dXJlCiAgICBvZiBRRSBpbW1yIGlzIGR1cGxpY2F0ZWQgaW4gdGhlIGltbWFwXzgzeHguaCBhbmQgaW1tYXBfcWUuaDsgMykgVGhlCiAgICBtYWNybyBkZWZpbml0aW9uIHB1dCBpbnNpZGUgdGhlIGVhY2ggc3RydWN0dXJlLiBTbywgSSBjbGVhbmVkIHVwIHRoZQogICAgc3RydWN0dXJlIG9mIFFFIGltbXIgZnJvbSBpbW1hcF84M3h4LmgsIGRlbGV0ZWQgdGhlIGR1cGxpY2F0ZWQgc3R1ZmYgYW5kCiAgICBtb3ZlZCB0aGUgbWFjcm8gZGVmaW5pdGlvbiB0byBtcGM4M3h4LmgsIEp1c3QgbGlrZSBNUEM4MjYwLgoKICAgIENIQU5HRUxPRwoKICAgICpzdHJlYW1saW5lIHRoZSA4M3h4IGltbXIgaGVhZCBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGQwMjQ5MmY0M2RiNTQwOGY1YWI5ZjgyM2IwYmE1Nzk2ZTI4ZWYwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDYgMTE6Mzg6MTcgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgVUVDIGRyaXZlciBidWcgb2YgUUUKCiAgICBUaGUgcGF0Y2ggcHJldmVudHMgdGhlIEdDQyB0b29sIGNoYWluIGZyb20gc3RyaXBpbmcgdXNlZnVsIGNvZGUgZm9yCiAgICBvcHRpbWl6YXRpb24uIEl0IHdpbGwgbWFrZSBVRUMgZXRoZXJuZXQgZHJpdmVyIHdvcmthYmxlLCBPdGhlcndpc2UgdGhlCiAgICBVRUMgd2lsbCBmYWlsIGluIHR4IHdoZW4geW91IGFyZSB1c2luZyBnY2M0LnguIGJ1dCB0aGUgZHJpdmVyIGNhbiB3b3JrCiAgICB3aGVuIHVzaW5nIGdjYzMuNC4zLgoKICAgIENIQU5HRUxPRwoKICAgICpQcmV2ZW50IHRoZSBHQ0MgZnJvbSBzdHJpcGluZyBjb2RlIGZvciBvcHRpbWl6YXRpb24sIE90aGVyd2lzZSB0aGUgVUVDCiAgICB3aWxsIHR4IGZhaWxlZCB3aGVuIHlvdSBhcmUgdXNpbmcgZ2NjNC54LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmE1OGU0YzlhOWE5MTdjZTc5NWRkMTZkNGVjOGQ1MTVmOWY3YWEzNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxIDIxOjExOjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIEthdG1haSA0NDBTUGUgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSByZWNlbnRseSBhZGRlZCBLYXRtYWkgYm9hcmQgc3VwcG9ydC4gVGhlIGJpZ2dlc3QKICAgIGNoYW5nZSBpcyB0aGUgc3VwcG9ydCBvZiBFQ0MgRElNTSBtb2R1bGVzIGluIHRoZSA0NDBTUChlKSBTUEQgRERSMgogICAgZHJpdmVyLgoKICAgIFBsZWFzZSBub3RlLCB0aGF0IHN0aWxsIHNvbWUgcHJvYmxlbXMgYXJlIGxlZnQgd2l0aCBzb21lIG1lbW9yeQogICAgY29uZmlndXJhdGlvbnMuIFNlZSB0aGUgZHJpdmVyIGZvciBtb3JlIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhjMTIwNDVhM2IwNmM1YjY2NzVkM2ZlMDJmYmM5ZjU0NTk4ODEyOWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMSAwNzowMzoyNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBtaXNzaW5nIGRlZmF1bHQgQ0ZHX1JUQ19CVVNfTlVNICYgQ0ZHX0RUVF9CVVNfTlVNCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjYmM3MDM2NjQ4ZTQ2NTY5N2NhMjk4YmE1MWUwZTc2ZGRhMzUyYTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAyOCAwMToyODo1MyAyMDA3ICswMTAwCgogICAgU0MzOiBmaXggdHlwbyBpbiBkZWZhdWx0IGVudmlyb25tZW50Cgpjb21taXQgZTM0NDU2OGIxYjQ2YWY4NWVjMzJkODE1NTg2ZjkxYmMxMTVkNjIyMwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBGZWIgMjcgMjA6MTU6MzAgMjAwNyArMDMwMAoKICAgIE1DQzIwMDogRml4ZXMgZm9yIHVwZGF0ZSBwcm9jZWR1cmUKCiAgICAtIGZpeCBsb2dpYyBlcnJvciBpbiBpbWFnZSB0eXBlIGhhbmRsaW5nCiAgICAtIG1ha2Ugc3VyZSBmaWxlIHN5c3RlbSBpbWFnZXMgKGNyYW1mcyBldGMuKSBnZXQgc3RvcmVkIGluIGZsYXNoCiAgICAgIHdpdGggaW1hZ2UgaGVhZGVyIHN0cmlwcGVkIHNvIHRoZXkgY2FuIGJlIG1vdW50ZWQgdGhyb3VnaCBNVEQKCmNvbW1pdCA3NDM1NzExNDViMzcxODI3NTdkNGU2ODhhNzc4NjBiMzZlZTc3NTczCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjcgMTQ6MjY6MDQgMjAwNyArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCA2MzhkZDE0NThiYmRjMmE1NWQ0YjllMjVjNWM0ZTFmODM4YTVkYzcyCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAxMjo0MDoxNiAyMDA3ICswMzAwCgogICAgTUNDMjAwIHVwZGF0ZSAtIGFkZCBMQ0QgUHJvZ3Jlc3MgSW5kaWNhdG9yCgpjb21taXQgNmM3Y2FjOGM0ZmNlMGVhMmJmOGUxNWVkODY1OGQ4Nzk3NDE1NWI0NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAyMiAwNzo0MzozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBnZXRfZGV2KCkgbm93IHVuY29uZGl0aW9uYWxseSB1c2VzIG1hbnVhbCByZWxvY2F0aW9uCgogICAgU2luY2UgdGhlIHJlbG9jYXRpb24gZml4IGlzIG5vdCBpbmNsdWRlZCB5ZXQgYW5kIHdlJ3JlIG5vdCBzdXJlIGhvdwogICAgaXQgd2lsbCBiZSBhZGRlZCwgdGhpcyBwYXRjaCByZW1vdmVzIGNvZGUgdGhhdCByZXF1aXJlZCByZWxvY2F0aW9uCiAgICB0byBiZSBmaXhlZCBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4Mjc0ZWMwYmQwMWQyZmViMmM3ZjA5NWViYTc4ZDQyZWEwMDk3OThiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRmViIDIyIDA3OjQwOjIzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBzeXN0ZW1hY2UgZHJpdmVyIHRvIHNlbGVjdCA4ICYgMTZiaXQgbW9kZQoKICAgIEFzIHN1Z2dlc3RlZCBieSBHcmFudCBMaWtlbHkgdGhpcyBwYXRjaCBlbmFibGVzIHRoZSBYaWxpbnggU3lzdGVtQUNFCiAgICBkcml2ZXIgdG8gc2VsZWN0IDggb3IgMTZiaXQgbW9kZSB1cG9uIHN0YXJ0dXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNhMTk3YjJmZTQ5ZDZmYTAzOTc4ZTYwYWYyMzk0ZWZlOWM3MGI1MjcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDIxIDE2OjUyOjMxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggdjNdIEFkZCBzeW5jIHRvIGVuc3VyZSBmbGFzaF93cml0ZV9jbWQgaXMgZnVsbHkgZmluaXNoZWQKCiAgICBTb21lIENQVXMgbGlrZSBQUEMsIEJMQUNLRklOIG5lZWQgc3luYygpIHRvIGVuc3VyZSBjZmkgZmxhc2ggd3JpdGUgY29tbWFuZAogICAgaXMgZnVsbHkgZmluaXNoZWQuIFRoZSBzeW5jKCkgaXMgZGVmaW5lZCBpbiBlYWNoIENQVSdzIGlvLmggZmlsZS4gRm9yCiAgICB0aG9zZSBDUFVzIHdoaWNoIGRvIG5vdCBuZWVkIHN5bmMgZm9yIG5vdywgYSBkdW1teSBzeW5jKCkgaXMgZGVmaW5lZCBpbgogICAgdGhlaXIgaW8uaCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGEwNDk5NWM3ZGM2NzcyMDEzYTlhMGRjNWM3NjdmMTkwYzQwMjQ3OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiAyMSAxMzo0NDozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXggcHJvYmxlbSBpbiBzeXN0ZW1hY2UgZHJpdmVyIChhY2Vfd3JpdGV3IGluc3RlYWQgb2YgYWNlX3dyaXRlKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NTFiYjU3MTA3ZDc4OTc4YWUwOGU2OTdjM2RlYmE4MTZmNWJlMDkxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEzOjIxOjU3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCByZWxvY2F0aW9uIHByb2JsZW0gd2l0aCAibmV3IiBnZXRfZGV2KCkgZnVuY3Rpb24KCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlICJuZXciIGdldF9kZXYoKSBmdW5jdGlvbiBmb3IgYmxvY2sgZGV2aWNlcwogICAgaW50cm9kdWNlZCBieSBHcmFudCBMaWtlbHkgdG8gYmUgdXNlZCBvbiBzeXN0ZW1zIHRoYXQgc3RpbGwgc3VmZmVyCiAgICBmcm9tIHRoZSByZWxvY2F0aW9uIHByb2JsZW1zIChtYW51YWwgcmVsb2NhdGlvbiBuZWVkZSBiZWNhdXNlIG9mCiAgICBwcm9ibGVtcyB3aXRoIGxpbmtlciBzY3JpcHQpLgoKICAgIEhvcGVmdWxseSB3ZSBjYW4gcmVzb2x2ZSB0aGlzIHJlbG9jYXRpb24gaXNzdWUgc29vbiBmb3IgYWxsIHBsYXRmb3JtCiAgICBzbyB3ZSBkb24ndCBuZWVkIHRoaXMgYWRkaXRpb25hbCBjb2RlIGFueW1vcmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ5M2UyMjEyZjk2MjY2OGIzZGNlMDkxZmY1ZWRjMzNmMjM0N2ZlMzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MTc6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFN5c3RlbUFDRSBkcml2ZXIgZm9yIDE2Yml0IGFjY2VzcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIHByb2JsZW1zIHdoZW4gdGhlIFhpbGlueCBTeXN0ZW1BQ0UgZHJpdmVyCiAgICBpcyB1c2VkIHdpdGggMTZiaXQgYWNjZXNzIG9uIGFuIGJpZyBlbmRpYW4gcGxhdGZvcm0gKGxpa2UgdGhlCiAgICBBTUNDIEthdG1haSkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg3NGJiN2I4OGZlOWI0NjQ4ZTEyODhhMzg3YWYyZTMxMDE0YTcyZjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MTU6NDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2xlYW4gdXAgS2F0bWFpICg0NDBTUGUpIGxpbmtlciBzY3JpcHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDc0NWFjYWExYTYwM2I2N2Y2YjliNzk3MDM2NWViYWRkN2Q2NTg2ZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDo1NzowOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgS2F0bWFpICg0NDBTUGUpIGV2YWwgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGRjMDE4ZWNlMTNlZmZjNjg5ZTQ3NDc5ZWE5ZWJmMWM5OGE1MDdmNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDo1MToyNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzc2VzIGZvciBSVEMgJiBEVFQKCiAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHRvIHRoZSBkZXNpcmVkIEkyQyBidXMgd2hlbiB0aGUgZGF0ZS9kdHQKICAgIGNvbW1hbmRzIGFyZSBjYWxsZWQuIFRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlCiAgICBDRkdfUlRDX0JVU19OVU0gYW5kL29yIENGR19EVFRfQlVTX05VTSBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MDM3ZWQzYjYzOTIzY2ZjZWMyN2Y3ODRhODkwNTdjM2NiYWJjZWRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjQzOjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogQWRkIDQ0MFNQKGUpIEREUjIgU1BEIERJTU0gc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgRERSMiBjb250cm9sbGVyIHVzZWQgb24gdGhlCiAgICA0NDBTUCBhbmQgNDQwU1BlLiBJdCBpcyB0ZXN0ZWQgb24gdGhlIEthdG1haSAoNDQwU1BlKSBldmFsCiAgICBib2FyZCBhbmQgd29ya3MgZmluZSB3aXRoIHRoZSBmb2xsb3dpbmcgRElNTSBtb2R1bGVzOgoKICAgIC0gQ29yc2FpciBDTTJYNTEyLTU0MDBDNCAoNTEyTUJ5dGUgcGVyIERJTU0pCiAgICAtIEtpbmdzdG9uIFZhbHVlUkFNIEtWUjY2N0QyTjUvNTEyICg1MTJNQnl0ZSBwZXIgRElNTSkKICAgIC0gS2luZ3N0b24gVmFsdWVSQU0gS1ZSNjY3RDJONUsyLzJHICgxR0J5dGUgcGVyIERJTU0pCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgdGhlIG5pY2UgZnVuY3Rpb25hbGl0eSB0byBkeW5hbWljYWxseQogICAgY3JlYXRlIHRoZSBUTEIgZW50cmllcyBmb3IgdGhlIFNEUkFNICh0bGIuYykuIFNvIHdlIHNob3VsZAogICAgbmV2ZXIgcnVuIGludG8gc3VjaCBwcm9ibGVtcyB3aXRoIHdyb25nICh0b28gc2hvcnQpIFRMQgogICAgaW5pdGlhbGl6YXRpb24gYWdhaW4gb24gdGhlc2UgcGxhdGZvcm1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmQ4MzBjOTgzMDM3OTA0NWY1ZGFhOWY1NDJhYzFjOTkwYzcwMDY4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjM1OjQyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogU3BsaXQgNHh4IFNQRCBTRFJBTSBpbml0IHJvdXRpbmVzIGludG8gMiBmaWxlcwoKICAgIFNpbmNlIHRoZSBleGlzdGluZyA0eHggU1BEIFNEUkFNIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzIGZvciB0aGUKICAgIDQwNSBTRFJBTSBjb250cm9sbGVyIGFuZCB0aGUgNDQwIEREUiBjb250cm9sbGVyIGRvbid0IGhhdmUgbXVjaCBpbgogICAgY29tbW9uIHRoaXMgcGF0Y2ggc3BsaXRzIGJvdGggZHJpdmVycyBpbnRvIGRpZmZlcmVudCBmaWxlcy4KCiAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB0aGUgNDQwIEREUjIgY29udHJvbGxlciBzdXBwb3J0ICg0NDBTUC9lKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzliMmQwYmIyZWFlMDk2MDI0NDhmN2E3Y2I1NjUzMGQyZjMxZTZjNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMDoyNzowOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHg6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzc2VzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMgb24gdGhlIFBQQzR4eAogICAgcGxhdGZvcm1zLiBEZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMgaW4gdGhlIGJvYXJkIGNvbmZpZyBmaWxlCiAgICB0byBtYWtlIHVzZSBvZiB0aGlzIGZlYXR1cmUuCgogICAgSXQgYWxzbyBtZXJnZXMgdGhlIDQwNSBhbmQgNDQwIGkyYyBoZWFkZXIgZmlsZXMgaW50byBvbmUgY29tbW9uCiAgICBmaWxlIDR4eF9pMmMuaC4KCiAgICBBbHNvIHRoZSA0eHggaTJjIHJlc2V0IHByb2NlZHVyZSBpcyByZXdvcmtlZCBzaW5jZSBJIGV4cGVyaWVuY2VkCiAgICBzb21lIHByb2JsZW1zIHdpdGggdGhlIGZpcnN0IGFjY2VzcyBvbiB0aGUgNDQwU1BlIEthdG1haSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWI4NjdhNzYyMzhmYjM4ZTk1MmMzNzg3MWIxNmQwZDdmZDYxYzk1ZgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTo0NSAyMDA3ICswMTAwCgogICAgW1BBVENIIDlfOV0gVXNlICJ2b2lkICoiIG5vdCAidW5zaWduZWQgbG9uZyAqIiBmb3IgYmxvY2sgZGV2IHJlYWRfd3JpdGUgYnVmZmVyIHBvaW50ZXJzCgogICAgQmxvY2sgZGV2aWNlIHJlYWQvd3JpdGUgaXMgYW5vbnltb3VzIGRhdGE7IHRoZXJlIGlzIG5vIG5lZWQgdG8gdXNlIGEKICAgIHR5cGVkIHBvaW50ZXIuICB2b2lkICogaXMgZmluZS4gIEFsc28gYWRkIGEgaG9vayBmb3IgYmxvY2tfcmVhZCBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNTM3NThmYTIwZTkzNWNjODdlZWIwNTE5ZWQzNjVkZjc1M2E2ZjI4OQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTozOCAyMDA3ICswMTAwCgogICAgW1BBVENIIDhfOV0gQWRkIGJsb2NrX3dyaXRlIGhvb2sgdG8gYmxvY2tfZGV2X2Rlc2NfdAoKICAgIFByZXBhcmF0aW9uIGZvciBmdXR1cmUgcGF0Y2hlcyB3aGljaCBzdXBwb3J0IGJsb2NrIGRldmljZSB3cml0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY0ODUyZWJlNmNhOTQ2YTUwOTY2N2ViNjhiZTQyMDI2ZjgzN2JlNzYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA3XzldIFJlcGxhY2UgYWNlX3JlYWR3X2FjZV93cml0ZWIgZnVuY3Rpb25zIHdpdGggbWFjcm9zCgogICAgUmVnaXN0ZXIgcmVhZC93cml0ZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHdyYXBwZWQgaW4gYSBmdWxsIGZ1bmN0aW9uLiAgVGhlCiAgICBwYXRjaCByZXBsYWNlcyB0aGVtIHdpdGggbWFjcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAzYThjZTlhZjZmY2I1NzQ0YTc4NTFiNDQ0MGMwNzY4OGFjYzQwODQ0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjIzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggNl85XSBNb3ZlIGNvbW1vbl9jbWRfYWNlLmMgdG8gZHJpdmVyc19zeXN0ZW1hY2UuYwoKICAgIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBub3QgYSBjb21tYW5kOyBpdCBpcyBhIGRldmljZSBkcml2ZXIuICBQdXQgaXQgaW4KICAgIHRoZSBjb3JyZWN0IHBsYWNlLglUaGVyZSBhcmUgemVybyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhpcyBwYXRjaCwgaXQKICAgIG9ubHkgbW92ZXMgdGhlIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk4NDYxOGYzZTc3OTRjNzgzZWM4ZDE1MTFlNzRjNmVlMmQ2OWJmZTQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MTYgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA1XzldIFdoaXRlc3BhY2UgZml4dXAgb24gY29tbW9uX2NtZF9hY2UuYyAodXNpbmcgTGluZGVudCkKCiAgICBUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIG9mIGFkZGl0aW9uYWwgY2hhbmdlcyB0byB0aGUgc3lzYWNlIGRyaXZlci4KICAgIE1heSBhcyB3ZWxsIHRha2UgdGhpcyBvcHBvcnR1bml0eSB0byBmaXh1cCB0aGUgaW5jb25zaXN0ZW50IHdoaXRlc3BhY2Ugc2luY2UKICAgIHRoaXMgZmlsZSBpcyBhYm91dCB0byB1bmRlcmdvIG1ham9yIGNoYW5nZXMgYW55d2F5LgoKICAgIFRoZXJlIGFyZSB6ZXJvIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGlzIHBhdGNoLiAgSXQgb25seSBjbGVhbnMgdXAgdGhlCiAgICB0aGUgd2hpdGVzcGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgODBiYTk4MWQ5NDA0NzFmZTdlNTM5ZTY0ZmEzZDJiZDgwMDAyYmVkYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTowNyAyMDA3ICswMTAwCgogICAgW1BBVENIIDRfNF0gUmVtb3ZlIGxvY2FsIGltcGxlbWVudGF0aW9uIG9mIGlzcHJpbnQoKSBpbiBmdF9idWlsZC5jCgogICAgaXNwcmludCBpcyBhbHJlYWR5IGRlZmluZWQgaW4gY3R5cGUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBjOTVjNDI4MGQ3NTFjYTA3OGMyZmY1ODIyOGQyZjJiNDRjY2YwNjAwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjAwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggM185XSBNb3ZlIGJ1ZmZlciBwcmludCBjb2RlIGZyb20gbWQgY29tbWFuZCB0byBjb21tb24gZnVuY3Rpb24KCiAgICBQcmludGluZyBhIGJ1ZmZlciBpcyBhIGRhcm4gdXNlZnVsIHRoaW5nLiAgTW92ZSB0aGUgYnVmZmVyIHByaW50IGNvZGUKICAgIGludG8gcHJpbnRfYnVmZmVyKCkgaW4gbGliX2dlbmVyaWMvCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk5YjBmMGZkM2ZiZjI1NzJhZTFhNzcyM2RkOTBjZmZjOGU4NTEzMGEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDQ6NTIgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAyXzRdIFVzZSBjb25maWcuaCwgbm90IHhwYXJhbWV0ZXJzLmgsIGZvciB4aWxpbnggdGFyZ2V0cwoKICAgIENoYW5nZSB0aGUgeGlsaW54IGRldmljZSBkcml2ZXJzIGFuZCBib2FyZCBjb2RlIHRvIGluY2x1ZGUgY29uZmlnLmgKICAgIGluc3RlYWQgb2YgeHBhcmFtZXRlcnMuaCBkaXJlY3RseS4JY29uZmlnLmggYWx3YXlzIGluY2x1ZGVzIHRoZQogICAgY29ycmVjdCB4cGFyYW1ldGVycyBmaWxlLiAgVGhpcyBjaGFuZ2UgcmVkdWNlcyB0aGUgcG9zaWJpbGl0eSBvZgogICAgaW5jbHVkaW5nIHRoZSB3cm9uZyBmaWxlIHdoZW4gYWRkaW5nIGEgbmV3IHhpbGlueCBib2FyZCBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDczNWRkOTdiMWIyMGU3NzdkMDU5YzdiMzg5ZmU5ZDcwY2QzZjgwYzcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDQ6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAxXzRdIE1lcmdlIGNvbW1vbiBnZXRfZGV2KCkgcm91dGluZXMgZm9yIGJsb2NrIGRldmljZXMKCiAgICBFYWNoIG9mIHRoZSBmaWxlc3lzdGVtIGRyaXZlcnMgZHVwbGljYXRlIHRoZSBnZXRfZGV2IHJvdXRpbmUuICBUaGlzIGNoYW5nZQogICAgbWVyZ2VzIHRoZW0gaW50byBhIHNpbmdsZSBmdW5jdGlvbiBpbiBwYXJ0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjVmY2MzYzIwYjY1NTU0ZTk4YTE2NTU0MmMzNmVlMGM2MTBhMmQ4MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDE5IDIzOjA5OjUxIDIwMDcgKzAxMDAKCiAgICBNQ0MyMDA6IFNvZnR3YXJlIFVwZGF0ZXI6IGFsbG93IGJvdGggInJhbWRpc2siIGFuZCAiZmlsZXN5c3RlbSIgdHlwZXMKICAgIGFzIHJvb3QgZmlsZSBzeXN0ZW0gaW1hZ2VzLgoKY29tbWl0IDQ4OWM2OTZhZTcyMTEyMTg5NjFkMTU5ZTQzZTcyMmQ3NGMzNmZjYmMKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglXZWQgRmViIDE0IDE0OjMwOjI4IDIwMDcgKzAzMDAKCiAgICBNQ0MyMDA6IEV4dGVuc2lvbnMgdG8gU29mdHdhcmUgVXBkYXRlIE1lY2hhbmlzbQoKICAgIFVwZGF0ZSAvIGV4dGVuZCBTb2Z0d2FyZSBVcGRhdGUgTWVjaGFuaXNtIGZvciBNQ0MyMDAgYm9hcmQ6CgogICAgLSBBZGQgc3VwcG9ydCBmb3Igcm9vdGZzIGltYWdlIGFkZGVkLiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAgICAgICJyb290ZnNfc3QiIGFuZCAicm9vdGZzX25kIiBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdAogICAgICB2YWx1ZXMgb2YgdGhlIGltYWdlIHN0YXJ0IGFuZCBlbmQuCiAgICAtIFJlbW92ZSBleGNlc3NpdmUga2V5IGNoZWNrIGNvZGUuCiAgICAtIENvZGUgY2xlYW51cC4KCmNvbW1pdCA0YmUyM2ExMmYyM2YxMzcyNjM0ZWRjMzIxNTEzN2IwOTc2OGI3OTQ5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gRmViIDE5IDA4OjIzOjE1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhIEVCQyBjb25maWd1cmF0aW9uIChOT1IgRkxBU0gpCgogICAgQXMgc3BvdHRlZCBieSBNYXR0aGlhcyBGdWNocywgdGhlIFJFQURZIGlucHV0IHNob3VsZCBub3QgYmUKICAgIGVuYWJsZWQgZm9yIHRoZSBOT1IgRkxBU0ggb24gdGhlIFNlcXVvaWEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI2MDVlOTBiZjY3NmQ0ODEyM2FmZTU3MTlhODQ2ZDJiNTJiMjRhYWMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMTYgMDc6NTc6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkZWQgc3VwcG9ydCBmb3IgdGhlIGp1cGl0ZXIgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNDk3ZDAxMmU1YmUwMTk0ZTEwODQwNzNkMDA4MWViMWE4NDQ3OTZiMgpBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAxMiAxMzoxMTo1MCAyMDA3ICswMTAwCgogICAgTFBDMjI5MjogcGF0Y2ggZnJvbSBTaWVtZW5zLgoKY29tbWl0IGIwYjFhOTIwYWViZWFkMGQ0NDE0NmU3MzY3NmFlOWQ4MGZmZmM4ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBGZWIgMTAgMDg6NDk6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIG1pc3NpbmcgcDNteC5oIGZpbGUgdG8gcmVwb3NpdG9yeSAodXBzKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1M2Q0YTQ5ODNmYjliM2FlNWY3YjJmMTBjNTk5YWNhMmIxYjQwMzRhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiA5IDEwOjQ1OjQyIDIwMDcgKzAxMDAKCiAgICBbTW90aW9uLVBST10gUHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgdGhlIE1vdGlvbi1QUk8gYm9hcmQuCgpjb21taXQgNWE3NTNmOThjNmEwMWJkMWM2MWE5YTNmOTVlODMyOWEzNWY2Mjk5NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEZlYiA3IDE2OjUxOjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBzb21lIEFNQ0MgNHh4IGJvYXJkIGNvbmZpZyBmaWxlcyAoc2V0IGluaXRyZF9oaWdoKQoKICAgIFNvbWUgYm9hcmRzIHRoYXQgY2FuIGhhdmUgbW9yZSB0aGFuIDc2OE1CeXRlcyBvZiBTRFJBTSBuZWVkIHRvCiAgICBzZXQgImluaXRyZF9oaWdoIiwgc28gdGhhdCB0aGUgaW5pdHJkIGNhbiBiZSBhY2Nlc3NlZCBieSB0aGUKICAgIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzM3MmNhNjgyMjc5MzBkMDNjZmZhNTQ4MzEwNTI0Y2FkNWI5NjczMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAyIDEyOjQ0OjIyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENvcnJlY3RseSBkaXNwbGF5IFBDSSBhcmJpdGVyIGVuLS9kaXNhYmxlZCBvbiBzb21lIDR4eCBib2FyZHMKCiAgICBQcmV2aW91c2x5IHRoZSBzdHJhcHBpbmcgRENSL1NEUiB3YXMgcmVhZCB0byBkZXRlcm1pbmUgaWYgdGhlIGludGVybmFsIFBDSQogICAgYXJiaXRlciBpcyBlbmFibGVkIG9yIG5vdC4gVGhpcyBzdHJhcHBpbmcgYml0IGNhbiBiZSBvdmVycmlkZGVuLCBzbyBub3cKICAgIHRoZSBjdXJyZW50IHN0YXR1cyBpcyByZWFkIGZyb20gdGhlIGNvcnJlY3QgRENSL1NEUiByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmFhNTRmNjUxYTQyZDE5ODY3MzMxOGYwN2EyMGM4OWE0M2U0ZDE5NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAyIDEyOjQyOjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENoYW5nZSBjb25maWd1cmF0aW9uIG91dHB1dCBvZiBTeWNhbW9yZSwgWWVsbG93c3RvbmUgJiBSYWluaWVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIzNzQ0ZDZiNWJmMTc1OTJlYjZhMGVmNGYzMThmNjA4OWY1NTk5M2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMSAxMzoyMjo0MSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBSZW1vdmUgUENJLVBOUCBjb25maWd1cmF0aW9uIGZyb20gU2VxdW9pYS9SYWluaWVyIGNvbmZpZyBmaWxlCgogICAgV2hlbiBQQ0kgUE5QIGlzIGVuYWJsZWQgdGhlIHBjaSBwbnAgY29uZmlndXJhdGlvbiByb3V0aW5lIGlzIGNhbGxlZAogICAgd2hpY2ggc2V0cyB0aGUgUENJX0NBQ0hFX1NJWkVfTElORSB0byA4LiBUaGlzIHNlZW1zIHRvIGdlbmVyYXRlIHNvbWUKICAgIHByb2JsZW1zIHdpdGggc29tZSBQQ0kgY2FyZHMuIEZvciBub3cgZGlzYWJsZSB0aGUgUENJIFBOUCBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyOTAyZmFkYWRlM2JlNzY1OTQ2N2U4ZDA3NDA0OGM2YjcwNjhmNWMwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDE2OjU2OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSA0NDBFUHgvNDQwR1J4IGNwdSBkZXRlY3Rpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDVlYTI4N2IwMmE2OTQ1YzM5Nzc0MTBlMzY0YTg3OWRkMWE1NTVjOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMSAxNjozODowNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgZXNkIGNwY2k1MjAwIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogUmVpbmhhcmQgQXJsdCA8cmVpbmhhcmQuYXJsdEBlc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDhiN2QxZjBhYjdkN2M0ZmUzMTYwYmJmNzRhN2U5NjkwZDlmM2EzYWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTY6Mzc6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIGVzZCBtZWNwNTIwMCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFJlaW5oYXJkIEFybHQgPHJlaW5oYXJkLmFybHRAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3MWE0ZTVmZGE4YjYwMDQ0YWI5ZjQ2MDY5ZmExY2ZhMjZiZGQwN2ZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDEyOjM4OjUwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSB1bm5lY2Nlc3NhcnkgeWVsbG93c3RvbmUgYm9hcmQgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTgwMjU5NGI2ZmExYjE2NjMwODgyMGMyNzZiOTZkYzBkN2NjNzMxYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAxNzowNjoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgU2VxdW9pYSAoNDQwRVB4KSBjb25maWcgZmlsZQoKICAgIFRoZSBjb25maWcgZmlsZSBub3cgaGFuZGxlcyB0aGUgMm5kIHRhcmdldCwgdGhlIFJhaW5pZXIgKDQ0MEdSeCkKICAgIGV2YWx1YXRpb24gYm9hcmQgYmV0dGVyLiBBZGRpdGlvbmFsbHkgdGhlIFBQQyBpbnB1dCBjbG9jayB3YXMKICAgIGFkanVzdGVkIHRvIG1hdGNoIHRoZSBjb3JyZWN0IHZhbHVlIG9mIDMzLjAgTUh6LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MDAyMDBjNjdlNzNiODM3NTE0MThhYmU3ODE1ODQwZGNhOGZkNmNiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE3OjA0OjE5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIE1lcmdlIFlvc2VtaXRlICYgWWVsbG93c3RvbmUgYm9hcmQgcG9ydHMKCiAgICBOb3cgdGhlIEFNQ0MgZXZhbCBib2FyZHMgWW9zZW1pdGUgKDQ0MEVQKSBhbmQgWWVsbG93c3RvbmUgKDQ0MEdSKQogICAgc2hhcmUgb25lIGNvbmZpZyBmaWxlIGFuZCBhbGwgYm9hcmQgc3BlY2lmaWMgZmlsZXMuIFRoaXMgd2F5IHdlCiAgICBkb24ndCBoYXZlIHRvIG1haW50YWluIHR3byBkaWZmZXJlbnQgc2V0cyBvZiBmaWxlcyBmb3IgbmVhcmx5CiAgICBpZGVudGljYWwgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmJmNWVhZTMyMmY1ZjFmNjQyN2VjYzNhYzEzYTBjYjdkYmE4YWQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE1OjAxOjQ5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBTQ1BVIChQRE5CMyB2YXJpYW50KSBib2FyZAoKICAgIFNDUFUgZG9lc24ndCB1c2UgcmVkdW5kYW50IGVudmlyb25tZW50IGluIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MzA0NDMwZWQ2NDJlYThmYTE1YzllNWFmOTY1YWMyZTAzM2VlYzQ1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDEyOjUxOjA3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIGFscHI6IFVwZGF0ZSBhbHByIGJvYXJkIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY4ZGI4NGYxMzJiMWUzMzVmMjBmOTYxMzhhMWYwOWVkOTdiMDg2NjQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEphbiAzMCAwMDo1MDo0MCAyMDA3ICswMTAwCgogICAgTFBDMjI5MiBTT0RJTU0gcG9ydCBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCmNvbW1pdCA2YmQyNDQ3ZWU0N2VlMjNjMThkMmIzYzdjY2Q1YTIwZjc2MjZmNWIzCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDI0IDEyOjE2OjU2IDIwMDcgKzAxMDAKCiAgICBBZGQgcG9ydCBmb3IgdGhlIGxwYzIyOTJzb2RpbW0gZXZhbHVhdGlvbiBib2FyZCBmcm9tIEVtYmVkZGVkQXJ0aXN0cwoKY29tbWl0IDJkYWYwNDZiYTYyN2Y4NWY0NDE5NTgxNTc3ODE0MDAzOTYzNjI0NGUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDIzIDE3OjIyOjA2IDIwMDcgKzAxMDAKCiAgICBbaURNUl0gQWRkIE1URCBhbmQgSkZGUzIgc3VwcG9ydCwgYWxzbyBhZGQgZGVmYXVsdCBwYXJ0aXRpb24gZGVmaW5pdGlvbi4KCmNvbW1pdCBmN2RiMzMxMDFmYmM5YzhmMGExMDczOGNlODcwMzQ4NzVhMTdhZWI5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxNDoyMToxNCAyMDA3ICswMTAwCgogICAgW2lETVJdIEZsYXNoIGRyaXZlciBvbiBpbml0aWFsaXNhdGlvbiB3cml0ZS1wcm90ZWN0cyBzb21lIHNlY3RvcnMsCiAgICBjdXJyZW50bHkgc2VjdG9ycyAwLTMuIFNlY3RvciAzIGRvZXMgbm90IG5lZWQgdG8gYmUgcHJvdGVjdGVkLCB0aG91Z2gKICAgIChVLWJvb3Qgb2NjdXBpZXMgc2VjdG9ycyAwLTEgYW5kIHRoZSBlbnZpcm9ubWVudCBzZWN0b3IgMikuIFRoaXMgY29tbWl0CiAgICBmaXhlcyB0aGlzLCBpLmUuLCBvbmx5IHNlY3RvcnMgMC0yIGFyZSBwcm90ZWN0ZWQuCgpjb21taXQgMGVkNDdiYjExOWNkMmM0YzE2ZWRiMjU0ODc4OTE0OGY5ZTZkYzlkZQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTQ6MTE6MjIgMjAwNyArMDEwMAoKICAgIFtpRE1SXSBVc2luZyBNSUktcmVsYXRlZCBjb21tYW5kcyBvbiBpRFJNIGJvYXJkIGRvZXNuJ3Qgd29yayBub3cgKGUuZy4sCiAgICAibWlpIGRldmljZSIgcmVzdWx0cyBpbiAiVW5leHBlY3RlZCBleGNlcHRpb24iKS4gRml4aW5nIHRoaXMgcHJvcGVybHkKICAgIHJlcXVpcmVzIHNvbWUgY2xlYW4tdXAgaW4gdGhlIEZFQyBkcml2ZXJzIGluZnJhc3RydWN0dXJlIGZvciBDb2xkRmlyZSwgc28KICAgIHRoaXMgY29tbWl0IGRpc2FibGVzIE1JSSBjb21tYWRzIGZvciBub3cuCgpjb21taXQgMzYzZDFkOGY5Yzk5YjYzZGFlZjgxZjU5ODVjYWIzZmMwMGVkZGU1YwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTM6MjU6MjIgMjAwNyArMDEwMAoKICAgIFtDb2xkRmlyZSBNQ0Y1MjcxIGZhbWlseV0gQWRkIENQVSBkZXRlY3Rpb24gYmFzZWQgb24gdGhlIHZhbHVlIG9mIENoaXAKICAgIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyIChDSVIpLgoKY29tbWl0IGZkZWYzODg3NTg1MDY3NjVkNGQ2YTcxNTVjOGYxNTg0YzYzZmY1ODEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMjIgMTM6MTk6MjEgMjAwNyArMDgwMAoKICAgIHVzZSAgQ0ZHX1dSSVRFX1NXQVBQRURfREFUQSBkZWZpbmUgaW5zdGVhZCBvZiBkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9TV0FQCiAgICBUaGUgcGF0Y2ggYnkgSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPiBvbiBKYW4sIDE5LCAyMDA3CiAgICBmaXhlcyBjZmlfZHJpdmVyIGJ1ZyBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQuIFRoZSBkZWZhdWx0IGNmaV9kcml2ZXIgY2FuIHN1cHBvcnQKICAgIG1wYzc0NDhocGMyIGJvYXJkLgoKY29tbWl0IGE0MDEyMzk2NjQ1NTMzYWVmMjE4MzU0ZWViYTc1NGRmZjBkZWFjZTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAyMzowODozOSAyMDA3ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IGY1MzliN2JhN2Q3ZWY2ZGQxODdjODIwOTYwOTAwMWNiMWNkOTVlMzkKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTkgMTk6NTc6MTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gU0MzIGJvYXJkOiBhZGRlZCBDRkdfQ01EX0FVVE9TQ1JJUFQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZDBiNmUxNDA4N2RkZDg3ODlmMjI0YTQ4ZTFkMzNmMmE1ZGY0ZDE2NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAxODowNToyNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDRkk6IGRlZmluZSBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBIGZvciB0aGUgQ0ZJLUZsYXNoIGRyaXZlcgoJCSBpZiB5b3UgbXVzdCBzd2FwIHRoZSBieXRlcyBiZXR3ZWVuIHJlYWRpbmcvd3JpdGluZy4KCQkgKE5lZWRlZCBmb3IgdGhlIFNDMyBib2FyZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA5ZDhkNWE1YmZiNjQ3NjhmMjlhMGNiNDdmYzM3Y2Q2ZjRjNDBlMjc2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDE2OjA1OjQ3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBQcm9kcml2ZSBTQ1BVIChQRE5CMyB2YXJpYW50KSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMDU3ZDc1OGUzZTg3NGNiZTdmMjQ3NDVkMGNjZThjMWNiNmMyMDdlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDExOjU0OjUyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBQM014IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQxNjdhMzZjMjllZTk0NmI3Mjc0NjVkYjVjMDE0NzQ2YTA4ZTk3OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMTo0ODoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgbWlzc2luZyBUYWlzaGFuIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNiNDgyMDcyNWU5ZmM0MDljNWNiYzhlODMwNTRhNmVkNTIyZDIxMTEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTE6Mjg6NTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4OiBDb21waWxlcndhcm5pbmdzIGZvciBTQzMgYm9hcmQuCgkJIFRoZSBFQkMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciBpcyBub3cgYnkgQ0ZHX0VCQ19DRkcgZGVmaW5hYmxlCgkJIEFkZGVkIEpGRlMyIHN1cHBvcnQgZm9yIHRoZSBTQzMgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNWZiNjkyY2FlNTdkMTcxMGM4ZjUyYTQyN2NmN2YzOWEzNzM4M2ZjZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMDoyNTozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgQU1DQyBUYWlzaGFuIFBQQzQ0MEdYIGV2YWwgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmQzZTAxMDcyMzVhYTBlNmE2ZGNiNzdmOTg4NDQ5NzI4MGJmODVhZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDE2IDE4OjMwOjUwIDIwMDcgKzAxMDAKCiAgICBSYW5hbWUgc29saWRjYXJkMyBpbnRvIHNjMzsgYWRkIHJlZHVuZGFudCBlbnYgZm9yIHNjMwoKY29tbWl0IDFiYmJiZGQyMGZjZWM5OTMzNjk3MDAwZGNmNTVmZjc5NzI2MjI1OTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEphbiAxNiAxMjo0NjozNSAyMDA3ICswMTAwCgogICAgVXBkYXRlIGRlZmF1bHQgZW52aXJvbm1lbnQgZm9yIFNvbGlkY2FyZDMKCmNvbW1pdCA1YTVjNTY5ODZhOWNjZjcxNjQyYzhiNjM3NGViMTg0ODdiMTVmZWNkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSmFuIDE1IDA5OjQ2OjI5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCA0NDBTUGUgcmV2IEIgZGV0ZWN0aW9uIGZyb20gcHJldmlvdXMgcGF0Y2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTQ0M2QzMTQxMGM1NzFlZThmOTcwZGE4MTlhNDRkNjk4ZmRkNmIxZgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxNCAxMzozNTozMSAyMDA3ICswMTAwCgoJW0ZJWF0gY29ycmVjdCBJMkMgV3JpdGVzIGZvciB0aGUgTE04MSBTZW5zb3IuCgoJU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMGJiYTU0NTI4MzVmMTlhNjEyMDRlZGNkYTNhNTgxMTJmZDhlMjIwOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDExOjE3OjEwIDIwMDcgKzAxMDAKCiAgICBVbmRvIGNvbW1pdCAzMDMzZWJiMjogcmVzZXQgY29tbWFuZCBkb2VzIG5vdCB0YWtlIGFueSBhcmd1bWVudHMKCiAgICBIYWl5aW5nIFdhbmcncyBtb2RpZmljYXRpb24gdG8gdGhlIHJlc2V0IGNvbW1hbmQgd2FzIGJyb2tlbiwgdW5kbyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk1OTgxNzc4Y2ZmMDAzOGZkOTk0MTA0NGQ2YTNlZGE4MTBlMzMyNTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDg6MDE6MDMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIDQ0MFNQKGUpIGNwdSByZXZpc2lvbnMKCiAgICBBbHNvIGRpc3BsYXkgZW5hYmxlZC9kaXNhYmxlZCBSQUlEIDYgc3VwcG9ydCBmb3IgNDQwU1AvNDQwU1BlIFBQQydzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3N2RkYzViOWFmYjMyNTI2MmZkODg3NTJiYTQzMGExZGRlZDFmMGM3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU5OjU2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBZZWxsb3dzdG9uZSAoNDQwR1IpIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgQWxzbyB0aGUgRUJDIGluaXRpYWxpc2luZyBpcyBub3cgZG9uZSB2aWEgZGVmaW5lcyBpbiB0aGUgYm9hcmQgY29uZmlnCiAgICBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmFkZmYzNjJjMmMwMTQxZmY4YTgxMGQ0MmE3ZTQ3OGY3NzkxMzBmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU5OjE5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBZb3NlbWl0ZSAoNDQwRVApIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgQWxzbyB0aGUgRUJDIGluaXRpYWxpc2luZyBpcyBub3cgZG9uZSB2aWEgZGVmaW5lcyBpbiB0aGUgYm9hcmQgY29uZmlnCiAgICBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMGI5ZWE4YzhhMjk0ZGU2YTUzNTBhZTYzODg3OWQyNGI1YjcwOWQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEzIDA3OjU3OjUxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhICg0NDBFUHgpIHRvIGRpc3BsYXkgYm9hcmQgcmV2IGFuZCBQQ0kgYnVzIHNwZWVkCgogICAgTm93IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdGhlIGN1cnJlbnQgUENJIGJ1cyBzcGVlZCBhcmUgcHJpbnRlZCBhZnRlcgogICAgdGhlIGJvYXJkIG1lc3NhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNhNDNiYTE4ZTkxMDIwNmVmODA2M2U0YjIyZDI4MjYzMGJmZjNmZDIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTEgMTU6NDQ6NDQgMjAwNyArMDEwMAoKCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBTT0xJRENBUkQgSUlJIGJvYXJkIGZyb20gRXVyb2Rlc2lnbgoKCVNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDZhYmFlZTQyNjIxYzA3ZTgxYTJjZDE4OWFkNDM2OGI1ZThjNTAyODAKQXV0aG9yOiBSZWluaGFyZCBUaGllcyA8UmVpbmhhcmQuVGhpZXNAd2ViLmRlPgpEYXRlOglXZWQgSmFuIDEwIDE0OjQxOjE0IDIwMDcgKzAxMDAKCiAgICBBZGp1c3RlZCBkZWZhdWx0IGVudmlyb25tZW50IGZvciBjYW01MjAwIGJvYXJkLgoKY29tbWl0IGJhYjVhOTBkNGNjYzFhNDZhODEyN2I4NjdmYTU5MDI4Y2M2MjNhZDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEphbiAxMCAxNTozNTo1MiAyMDA3ICswMTAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IDc4N2ZhMTU4NjBhNTc4MzNlNTBiZDMwNTU1MDc5YTljZDRlNTE5YjgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEphbiAxMCAwMToyODozOSAyMDA3ICswMTAwCgogICAgRml4IGF1dG9fdXBkYXRlIGZvciBNQ0MyMDAgYm9hcmQuCgogICAgVGhlIGludm9jYXRpb24gb2YgZG9fYXV0b191cGRhdGUoKSBpcyBtb3ZlZCB0byB0aGUgZW5kIG9mIHRoZQogICAgbWlzY19pbml0X3IoKSBmdW5jdGlvbiwgYWZ0ZXIgdGhlIGZsYXNoIG1hcHBpbmdzIGhhdmUgYmVlbgogICAgaW5pdGlhbGl6ZWQuIFBsZWFzZSBmaW5kIGF0dGFjaGVkIGEgcGF0Y2ggdGhhdCBpbXBsZW1lbnRzIHRoYXQKICAgIGNoYW5nZS4KCiAgICBBbHNvIGNvcnJlY3QgdGhlIGRlY29kaW5nIG9mIHRoZSBrZXlwYWQgc3RhdHVzLiBXaXRoIHRoaXMgdXBkYXRlLCB0aGUKICAgIGtleSB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgdXBkYXRlIGlzIENvbHVtbiAyLCBSb3cgMi4KCmNvbW1pdCBkOTM4NGRlMmY1NzEwNDZlNzEwODFiYWUyMmI0OWUzZDVjYTJlM2Q1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEphbiAxMCAwMDoyNjoxNSAyMDA3ICswMTAwCgogICAgQ0FNNTIwMCBmbGFzaCBkcml2ZXIgbW9kaWZpY2F0aW9uczoKICAgIC0gdXNlIENGSSBkcml2ZXIgKHJlcGxhY2VzIGN1c3RvbSBmbGFzaCBkcml2ZXIpIGZvciBtYWluICdjYW01MjAwJyB0YXJnZXQKICAgIC0gYWRkIHNlY29uZCBidWlsZCB0YXJnZXQgJ2NhbTUyMDBfbmlvc2ZsYXNoJyB3aGljaCBzdGlsbCB1c2VzIGN1c3RvbSBkcml2ZXIKCmNvbW1pdCA2N2ZlYTAyMmZhOTU3ZjU5NjUzYjUyMzhjNzQ5NmY4MGE2YjcwNDMyCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE2OjAyOjQ4IDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiBjbGVhbnVwIG1lbW9yeSBjb250b2xsZXIgc2V0dXAKCmNvbW1pdCA4ZmMyMTAyZmFhMjM1OTNjODAzODE0MzdjMDlmNzc0NWExNGRlYjQwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjE0IDIwMDcgKzAxMDAKCiAgICBGaXggdGhlIGNwdSBzcGVlZCBzZXR1cCB0byB3b3JrIHdpdGggYWxsIGJvYXJkcy4KCmNvbW1pdCA5Mjk1YWNiNzc0ODFjZjA5OWVmOWI0MGUxZmEyZDE0NWIzYzc0OTBjCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEzIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiBhZGQgc3VwcG9ydCBmb3IgdGhlIEZNMThMMDggUmFtdHJvbiBGUkFNCgpjb21taXQgMzhjY2QyZmRmMzM2NGE1M2ZlODBlOWIzNjUzMDNlY2RhZmM5ZTIyMwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMyAyMDA3ICswMTAwCgogICAgU1BDMTkyMDogdXBkYXRlIHRoZSBIUEkgcmVnaXN0ZXIgYWRkcmVzc2VzIHRvIHdvcmsgd2l0aCB0aGUgc2Vjb25kCiAgICBnZW5lcmF0aW9uIG9mIGhhcmR3YXJlCgpjb21taXQgNTkyMWU1MzEzZmMzZWFkZDQyNzcwYzJiOTliYWRkN2ZhZTVlY2YxZQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTMgMjAwNyArMDEwMAoKICAgIE1pc2NlbGxhbmlvdXMgc3BjMTkyMCByZWxhdGVkIGNsZWFudXBzCgpjb21taXQgZTRjMmQzN2FkYzhiYjFiZjY5ZGNmNjAwY2JjNmM3NWY5MTZhNjEyMApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMiAyMDA3ICswMTAwCgogICAgU1BDMTkyMCBHTy9OT0dPIGxlZCBzaG91bGQgYmUgc2V0IHRvIGNvbG9yIHJlZCBpbiBVLUJvb3QKCmNvbW1pdCAwYmU2MjcyOGFhYzQ1OWJhMjY4ZDZkNzUyZWQ0OWVjMGUyYmM3MzQ4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMiAyMDA3ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBEUzMyMzEgUlRDCgpjb21taXQgODEzOTU2N2I2MGQ2Nzg1ODRiMDVmMDcxOGE2ODFmMjA0N2M1ZTE0ZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTEgMjAwNyArMDEwMAoKICAgIFNNQzEgdXNlcyBleHRlcm5hbCBDTEs0IGluc3RlYWQgb2YgQlJHIG9uIHNwYzE5MjAKCmNvbW1pdCBkOGQ5ZGUxYTAyZmJkODgwYjYxM2Q2MDcxNDNkMWY1NzM0MmFmZmM3CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMCAyMDA3ICswMTAwCgogICAgVXBkYXRlIHRoZSBTUEMxOTIwIENNQiBQTEQgZHJpdmVyCgpjb21taXQgM2YzNGY4NjkxNjI3NTBlNWU5OTlmZDE0MGY4ODRmNWRlOTUyYmNmZQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTAgMjAwNyArMDEwMAoKICAgIEFkZCAvIGVuYWJsZSBJMkMgc3VwcG9ydCBvbiB0aGUgc3BjMTkyMCBib2FyZAoKY29tbWl0IGQyODcwN2RiY2UxZTlhYzIwMTdhZDA1MWRhNDEzM2JmMjJiNDIwNGYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEwIDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIHRtczMyMDY3MXggaG9zdCBwb3J0IGludGVyZmFjZSAoSFBJKQoKY29tbWl0IGY0ZWI1NDUyOWJiMzY2NGMzYTU2MmU0ODhiNDYwZmUwNzVmNzlkNjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIEphbiA3IDAwOjEzOjExIDIwMDcgKzAxMDAKCiAgICBQcmVwYXJlIGZvciByZWxlYXNlIDEuMi4wCgpjb21taXQgZjA3YWU3YTlkYWVmMjdhM2QwMjEzYTRmM2ZlMzlkNTM0MjE3M2MwMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA2IDE1OjU4OjA5IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIDQ0eDogRml4IHByb2JsZW0gd2l0aCBERFIgY29udHJvbGxlciBzZXR1cCAocmVmcmVzaCByYXRlKQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggYW4gaW5jb3JyZWN0IHNldHVwIGZvciB0aGUgcmVmcmVzaAogICAgdGltZXIgb2YgdGhlIDQ0eCBERFIgY29udHJvbGxlciBpbiB0aGUgZmlsZSBjcHUvcHBjNHh4L3NkcmFtLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjE2YzFkYTk1NzdmMDZjNWZjMDg2NTFhNDA2NTUzNzQwN2RlNDYzNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA2IDE1OjU2OjEzIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTFBSIGJvYXJkIGZpbGVzCgogICAgVGhpcyB1cGRhdGUgYnJpbmdzIHRoZSBBTFBSIGJvYXJkIHN1cHBvcnQgdG8gdGhlIG5ld2VzdCB2ZXJzaW9uLgogICAgSXQgYWxzbyBmaXhlcyBhIHByb2JsZW0gd2l0aCB0aGUgTkFORCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNkMWQ5MzdmOTAyNTBhMzI5ODhjMzdiMmI0YWY4MzY0ZDI1ZGU4ZWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gNSAxMTo0NjowNSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBuYW5kOiBGaXggcHJvYmxlbSB3aXRoIG9vYnNpemUgY2FsY3VsYXRpb24KCiAgICBIZXJlIHRoZSBkZXNjcmlwdGlvbiBmcm9tIEJyaWFuIEJyZWxzZm9yZCA8QnJpYW5fQnJlbHNmb3JkQGRlbGwuY29tPjoKCiAgICBUaGUgSHluaXggcGFydCByZXR1cm5zIGEgMHgxZCBpbiB0aGUgNHRoIElEIGJ5dGUuIFRoZSBTYW1zdW5nIHBhcnQKICAgIHJldHVybnMgYSAweDE1LiBJbiB0aGUgY29kZSBmcmFnbWVudCBiZWxvdyBiaXRzIFsxOjBdIGRldGVybWluZSB0aGUKICAgIHBhZ2Ugc2l6ZSwgaXQgaXMgQU5EZWQgdmlhICIoZXh0aWQgJiAweDMpIiB0aGVuIHNoaWZ0ZWQgb3V0LiBUaGUKICAgIG5leHQgZmllbGQgaXMgYWxzbyBBTkRlZCB3aXRoIDB4My4gSG93ZXZlciB0aGlzIGlzIGEgb25lIGJpdCBmaWVsZAogICAgYXMgZGVmaW5lZCBpbiB0aGUgSHluaXggYW5kIFNhbXN1bmcgcGFydHMgaW4gdGhlIDR0aCBJRCBieXRlIHRoYXQKICAgIGRldGVybWlucyB0aGUgb29ic2l6ZSwgbm90IGEgdHdvIGJpdCBmaWVsZC4gSXQgd29ya3Mgb24gU2Ftc3VuZyBhcwogICAgYml0c1szOjJdIGFyZSAwMS4gSG93ZXZlciBmb3IgdGhlIEh5bml4IHRoZXJlIGlzIGEgMTEgaW4gdGhlc2UgdHdvCiAgICBiaXRzLCBzbyB0aGUgb29iIHNpemUgZ2V0cyBtZXNzZWQgdXAuCgogICAgSSBjaGVja2VkIHRoZSBjb3JyZWN0IGxpbnV4IGNvZGUgYW5kIHRoZSBzdWdnZXN0ZWQgZml4IGZyb20gQnJpYW4gaXMKICAgIGFsc28gYXZhaWxhYmxlIGluIHRoZSBsaW51eCBuYW5kIG10ZCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE3OGJjNDQzYWU1YTRhOGJhODc1OTA1ODdkNWUzNWJmNWE3ODdiMmUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gNSAxMDo0MDozNiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhciBQTEI0QTBfQUNSW1dSUF0gb24gU2VxdW9pYSAoNDQwRVB4KQoKICAgIFRoaXMgZml4IHdpbGwgbWFrZSB0aGUgTUFMIGJ1cnN0IGRpc2FibGluZyBwYXRjaCBmb3IgdGhlIExpbnV4CiAgICBFTUFDIGRyaXZlciBvYnNvbGV0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDIzODg5ODM4MjgyYjYyMzdiNDAxNjY0ZjIyZGQyMmRmYmEyYzA2NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDEwOjM4OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBERFIyIG9wdGltaXphdGlvbiBjb2RlIGZvciBTZXF1b2lhICg0NDBFUHgpIGJvYXJkCgogICAgVGhpcyBjb2RlIHdpbGwgb3B0aW1pemUgdGhlIEREUjIgY29udHJvbGxlciBzZXR1cCBvbiBhIGJvYXJkIHNwZWNpZmljCiAgICBiYXNpcy4KCiAgICBOb3RlOiBUaGlzIGNvZGUgZG9lc24ndCB3b3JrIHJpZ2h0IG5vdyBvbiB0aGUgTkFORCBib290aW5nIGltYWdlIGZvciB0aGUKICAgIFNlcXVvaWEgYm9hcmQsIHNpbmNlIGl0IGRvZXNuJ3QgZml0IGludG8gdGhlIDRrQnl0ZXMgZm9yIHRoZSBTUEwgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjZTRhY2JiNjgzOTg2MzRiOGQwMTFlZDdiYjBkMTIyNjljODQyMzAKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRGVjIDI4IDE5OjA4OjIxIDIwMDYgKzAxMDAKCiAgICBGZXcgVjM4QiBjaGFuZ2VzOgogICAgICAtIGZpeCBhIHR5cG8gaW4gVjM4QiBjb25maWcgZmlsZQogICAgICAtIG1vdmUgd2F0Y2hkb2cgaW5pdGlhbGlzYXRpb24gZWFybGllciBpbiB0aGUgYm9vdCBwcm9jZXNzCiAgICAgIC0gYWRkICJ3ZHQ9b2ZmIiB0byBkZWZhdWx0IGtlcm5lbCBjb21tYW5kIGxpbmUgKGRpc2FibGVzIGtlcm5lbCB3YXRjaGRvZykKCmNvbW1pdCA5MmViNzI5YmFkODc2NzI1YWVlYTkwOGQyYWRkYmEwODAwNjIwODQwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBEZWMgMjcgMDE6MjY6MTMgMjAwNiArMDEwMAoKICAgIEZpeCBidWcgaW4gYWRhcHRpb24gb2YgU3RlZmFubyBCYWJpYydzIENGSSBkcml2ZXIgcGF0Y2guCgpjb21taXQgOWMwZjQyZWNmZTI1ZjdmZmNlOGVjN2E4MTVmMDM4NjRkNzIzZmZlMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gRGVjIDI0IDAxOjQyOjU3IDIwMDYgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuCgpjb21taXQgZDc4NGZkYjA1OTAwYWRhMzY4NmQ1Nzc4NzgzZTFmYjMyOGU5ZmI2NgpBdXRob3I6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgRGVjIDEyIDAwOjIyOjQyIDIwMDYgKzAxMDAKCiAgICBGaXggY2ZpIGZhaWx1cmUgd2l0aCBTcGFuc2lvbiBGbGFzaCAoU3BhbnNpb24gRmxhc2ggRGV2aWNlcyBoYXZlIGEgZGlmZmVyZW50IG9mZnNldCB0byBnbyBpbnRvIENGSSBtb2RlKQoKY29tbWl0IDFiM2MzNjBjMjM1ZGM2ODRlYzA2YzJkNWYxODNmMGEyODJjZTQ1ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjIgMTQ6Mjk6NDAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gRml4IHNlcXVvaWEgZmxhc2ggYXV0b2RldGVjdGlvbiAoZmluYWxseSBjb3JyZWN0KQoKICAgIE5vdyAzMk1CeXRlIGFuZCA2NE1CeXRlIEZMQVNIIGlzIGtub3cgdG8gd29yayBhbmQgb3RoZXIKICAgIGNvbmZpZ3VyYXRpb25zIHNob3VsZCB3b3JrIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODJlNTIzNmE4YjcxOTU0MzY0M2ZkMjZkNTgyNzkzOGFiMmI5NDgxOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgRGVjIDIyIDEwOjMwOjI2IDIwMDYgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cuCgpjb21taXQgZmEyMzA0NDU2NDA5MWYwNWQ5Njk1YmViN2I1YjlhOTMxZTdmNDFhNApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyMSAxNzoxNzowMiAyMDA2ICswMTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdGhlIFRRTTgyNzIgYm9hcmQgZnJvbSBUUQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDZkZWRmM2Q0OWRkMTRjM2JmNTQxYzhlY2VlN2ZmYWFjNWYwZTFkNmMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBEZWMgMjEgMTY6MTQ6NDggMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIHRoZSBVQzEwMSBib2FyZCBmcm9tIE1BTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBjODRiYWQwZWY2MGU3MDU1YWIwYmQ0OWI5MzA2OTUwOWNlY2MzODJhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAwMDoyOTo0MyAyMDA2ICswMTAwCgogICAgRml4IHRvIG1ha2UgdGhlIGJhdWRyYXRlIGNoYW5nZXMgaW1tZWRpYXRlIGZvciB0aGUgTUNGNTJ4MiBmYW1pbHkuCgpjb21taXQgZGFhNmU0MThiY2MwYzcxNzc1MmU4ZGU5MzljMjEzYzc5MDI4NjA5NgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBEZWMgMjAgMDA6Mjc6MzIgMjAwNiArMDEwMAoKICAgIFByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIHRoZSBpRE1SIGJvYXJkIChDb2xkRmlyZSkuCgpjb21taXQgY2RiOTdhNjY3ODgyNmY4NWU3YzY5ZWFlNmExYzExM2QwMzRjOWIxMApBdXRob3I6IEFuZHJlaSBTYWZyb25vdiA8c2Fmcm9ub3ZAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBEZWMgOCAxNjoyMzowOCAyMDA2ICswMTAwCgogICAgYXV0b21hdGljIHVwZGF0ZSBtZWNoYW5pc20KCmNvbW1pdCA5ZDI3YjNhMDY4NWZmOTlmYzQ3Nzk4M2YzMTVjMDRkNDlmNjU3YThhCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTc6NTY6NTkgMjAwNiArMDgwMAoKICAgIFNsaWdodCBjb2RlIGNsZWFuIHVwLgogICAgQWRkIGNvbW1lbnRzLCBkZWxldGUgZHVwbGljYXRlIGRlZmluZSBhbmQgcmVtb3ZlIHNwYWNlcy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZGJjZDY5ZTNlMjc3NmVhMzM0NTkwZDU3NjhlMzY5MmM1ZmFlNWMxCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTc6NTQ6MjEgMjAwNiArMDgwMAoKICAgIEludHJvZHVjZSBQTExfQ0ZHWzA6NF0gdGFibGUgZm9yIHByb2Nlc3NvciA3NDQ4Lzc0NDdBLzc0NTUvNzQ1Ny4gVGhlIG9yaWdpbmFsCiAgICBtdWx0aXBsaWVyIHRhYmxlIGNhbiBub3QgcmVmZWN0IHRoZSByZWFsIFBMTCBjbG9jayBiZWhhdmlvciBvZiB0aGVzZQogICAgcHJvY2Vzc29ycy4gUGxlYXNlIHJlZmVyIHRvIHRoZSBoYXJkd2FyZSBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxlZAogICAgaW5mb3JtYXRpb24gb2YgdGhlIGNvcnJlc3BvbmRpbmcgcHJvY2Vzc29ycy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZWZlMjBjOTU3OTAxMWQ5OTg3ZjYyZWQ3ZDM1ZWU4Y2RjMWNmMGUwCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTQ6NDY6MjMgMjAwNiArMDgwMAoKICAgIFJlbW92ZSB0aGUgc3RhdGljIE1BQyBhZGRyZXNzLCBpcCBhZGRyZXNzLCBzZXJ2ZXIgaXAsIG5ldG1hc2sgYW5kCiAgICBnYXRld2F5IGlwIGZvciBuZXR3b3JrIHNldHRpbmcuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmYxMmM2MWNmMzFlZDczZDcyZGRmY2ZjNzEyYTg1NGEzYTE3N2FhZgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyA0IDE0OjMzOjA4IDIwMDYgKzA4MDAKCiAgICBSZW1vdmUgdGhlIGR1cGxpY2F0ZSBtZW1vcnkgdGVzdCBjb2RlIGZvciBtcGM3NDRpaHBjMiBib2FyZC4KICAgIElmIGEgbWVtb3J5IHRlc3QgaXMgbmVlZGVkLCBwbGVhc2UgdXNlIHRoZSBmdW5jdGlvbnMgaW4KICAgIHBvc3QvbWVtb3J5LmMgb3IgbWVtdGVzdCBjb21tYW5kLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM5YzFlZWVkN2RkMTkzZmE2NWZiMTk0NjU0MTMyMDQwZDQ5ZDRkM2EKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMSAxOTowMToyNSAyMDA2ICswODAwCgogICAgRml4IHRoZSBleGNlcHRpb24gb2NjdXJpbmcgaW4gUkFNIHRhYmxlIHNlYXJjaCBpc3N1ZS4KICAgIFRoZSBvcmlnaW5hbCBzZWFyY2hfb25lX3RhYmxlKCkgZnVuY3Rpb24gY29kZSBjYW4gb25seSBwcm9jZXNzZXMgdGhlIHNlYXJjaAogICAgZm9yIHRoZSBleGNlcHRpb24gb2NjdXJyaW5nIGluIEZMQVNIL1JPTSwgYmVjYXVzZSB0aGUgZXhjZXB0aW9uIGFuZCBmaXh1cAogICAgdGFibGUgdXN1YWxseSBsb2NhdGUgaW4gRkxBU0guIElmIHRoZSBleGNlcHRpb24gYWRkcmVzcyBpcyBhbHNvIGluCiAgICBGTEFTSCwgaXQgd2lsbCBiZSBPSy4KICAgIElmIHRoZSBleGNlcHRpb24gb2NjdXJzIGluIFJBTSwgYWZ0ZXIgdGhlIHUtYm9vdCByZWxvY2F0aW9uLCBhCiAgICByZWxvY2F0aW9uIG9mZnNldCBzaG91bGQgYmUgYWRkZWQuCgogICAgY2xlYW4gdXAgdGhlIGNvZGUgaW4gY3B1Lzc0eHhfN3h4L2NwdS5jCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVlMzExMjE0ZTBkMjE2ZjkwNGZlZWEyNjk1OTlkMDkzNGJmNzFmMjMKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMSAxMTo0NzozNiAyMDA2ICswODAwCgogICAgQ2xlYW4gdXAgdGhlIGNvZGUgYWNjb3JkaW5nIHRvIGNvZGVzdHlsZToKICAgICgxKSByZW1vdmUgc29tZSBDKysgY29tbWVudHMuCiAgICAoMikgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlIHNwYWNlLgogICAgKDMpIHJlbW92ZSB0cmFpbGluZyBlbXB0eSBsaW5lLgogICAgKDQpIEluZGVudGF0aW9uIGJ5IHRhYmxlLgogICAgKDUpIHJlbW92ZSB7fSBpbiBvbmUgbGluZSBjb25kaXRpb24uCiAgICAoNikgYWRkIHNwYWNlIGJlZm9yZSAnKCcgaW4gZnVuY3Rpb24gY2FsbC4KICAgIFJlbW92ZSBzb21lIHdlaXJkIHByaW50ZiAoKSBvdXRwdXQuCiAgICBBZGQgbmVjZXNzYXJ5IGNvbW1lbnRzLgogICAgTW9kaWZpZWQgTWFrZWZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeS4KCmNvbW1pdCBkZDUyMGJmMzE0YzdhZGQ0MTgzYzUxOTE2OTIxODBmNTc2Zjk2YjYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMzAgMTg6MDI6MjAgMjAwNiArMDEwMAoKICAgIENvZGUgY2xlYW51cC4KCmNvbW1pdCA4ZDlhODYxMGI4MjU2MzMxMTMyMjI3ZTllNjU4NWM2YmQ1NzQyNzg3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMzAgMDE6NTQ6MDcgMjAwNiArMDEwMAoKICAgIENvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCA3MjZlOTBhYWNmMGIxZWNiMGU3MDU1YmU1NzQ2MjJmYmUzZTQ1MGJhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglXZWQgTm92IDI5IDE2OjIzOjQyIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFtNUEM1Mnh4XSBVc2UgSVBCIGJ1cyBmcmVxdWVuY3kgZm9yIFNPQyBwZXJpcGhlcmFscwoKICAgIFRoZSBzb2Mgbm9kZSBvZiB0aGUgbXBjNTJ4eCBuZWVkcyB0byBiZSBsb2FkZWQgd2l0aCB0aGUgSVBCIGJ1cyBmcmVxdWVuY3ksCiAgICBub3QgdGhlIFhMQiBmcmVxdWVuY3kuCgogICAgVGhpcyBwYXRjaCBkZXBlbmRzIG9uIHRoZSBwcmV2aW91cyBwYXRjaGVzIGZvciBNUEM1Mnh4IGRldmljZSB0cmVlIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBTaWduZWQtb2ZmLWJ5OiBTeWx2YWluIE11bmF1dCA8dG50QDI0NnROdC5jb20+Cgpjb21taXQgMWVhYzJhNzE0MTdiNjY3NWIxMWFhY2U3MjEwMmEyZTdmZGU4ZjVjNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyOSAxNTo0MjozNyAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgUHJvZHJpdmUgUDNNNzUwICYgUDNNNzQ0OCAoUDNNeCkgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBQcm9kcml2ZSBQM003NTAgKFBQQzc1MCAmIE1WNjQ0NjApCiAgICBhbmQgdGhlIFAzTTc0NDggKE1QQzc0NDggJiBNVjY0NDYwKSBQTUMgbW9kdWxlcy4gQm90aCBtb2R1bGVzIGFyZQogICAgcXVpdGUgc2ltaWxhciBhbmQgc2hhcmUgdGhlIHNhbWUgYm9hcmQgZGlyZWN0b3J5ICJwcm9kcml2ZS9wM214IgogICAgYW5kIHRoZSBzYW1lIGNvbmZpZyBmaWxlICJwM214LmgiLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmRkNDY4MzJhZWI1NjlmNWUwNGIxZjIwZjY0MzE4NTI1YjY1MjVhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDEyOjUzOjE1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIGNvbW1vbi9jbWRfZWxmLmM6IEVuYWJsZSBsb2FkYWRkciBhcyBwYXJhbWV0ZXIgaW4gYm9vdHZ4IGNvbW1hbmQKCiAgICBJbiB0aGUgYm9vdHZ4IGNvbW1hbmQgdGhlIGxvYWQgYWRkcmVzcyB3YXMgb25seSByZWFkIGZyb20gdGhlIGVudgogICAgdmFyaWFibGUgImxvYWRhZGRyIiBhbmQgbm90IG9wdGlvbmFsbHkgcGFzc2VkIGFzIHBhcmFtdGVyIGFzIGRlc2NyaWJlZAogICAgaW4gdGhlIGhlbHAuIFRoaXMgaXMgZml4ZWQgd2l0aCB0aGlzIHBhdGNoLiBUaGUgYmVoYXZpb3VyIGlzIG5vdyB0aGUKICAgIHNhbWUgYXMgaW4gdGhlIGJvb3RlbGYgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGUyNmYxMDc0YzNhYzFiZDhmZDA5NGYwZGM0YTFjNGEwYjE1YTU5MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyOSAxMjowMzo1NyAyMDA2ICswMTAwCgogICAgW1BBVENIXSBpbmNsdWRlL3BwYzQ0MC5oIG1pbm9yIGVycm9yIGFmZmVjdGluZyBpbnRlcnJ1cHRzCgogICAgRml4ZWQgaW5jbHVkZS9wcGM0NDAuYyBmb3IgVUlDIGFkZHJlc3MgQnVnCgogICAgQ29ycmVjdHMgYnVnIGFmZmVjdGluZyB0aGUgYWRkcmVzc2VzIGZvciB0aGUgdW5pdmVyc2FsIGludGVycnVwdAogICAgY29udHJvbGxlciBVSUMyIGFuZCBVSUMzIG9uIHRoZSBQUEM0NDAgRXB4LCBHUngsIGFuZCBTUEUgY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZiBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTkzOWQ5Njk0NDNjY2YzMTZjYWIyYmYzMmFiMTAyN2Q0ZGI1YmExYQpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglUdWUgTm92IDI4IDE2OjE3OjI3IDIwMDYgLTA2MDAKCiAgICBNYWtlIGZzbC1pMmMgbm90IGNvbmZsaWN0IHdpdGggU09GVCBJMkMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE0MTk4YmY3NjhmZGM5NThlM2MxYWZkMjQwNGU1MjYyMjA4ZTk4ZDcKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJVHVlIE5vdiAyOCAxNjoxNzoxOCAyMDA2IC0wNjAwCgogICAgRml4IEkyQyBtYXN0ZXIgYWRkcmVzcyBpbml0aWFsaXphdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmM2QwNDVlNTFjYThkY2M2Y2Y3NTk4MjcxNDA4NjFkNmFjMjVjMDQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDI4IDIzOjMxOjE5IDIwMDYgLTA2MDAKCiAgICBBc3NpZ24gbWFpbnRhaW5lcnMgZm9yIG1wYzgzNDllbWRzIGFuZCBtcGM4MzYwZW1kcwoKICAgIERhdmUgZm9yIG1wYzgzNjBlbWRzLCBhbmQgbWUgZm9yIG1wYzgzNDllbWRzLgoKY29tbWl0IDFhYTkzNGM4MWI3N2YyMDgwZDNjYTRiMjI2ZWFiNjdiMTdhMzM5NjEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDI4IDIzOjI4OjMzIDIwMDYgLTA2MDAKCiAgICBFbGltaW5hdGUgZ2NjIDQgJ3VzZWQgdW5pbml0aWFsaXplZCcgd2FybmluZ3MgaW4gZHJpdmVycy9xZS91Y2NmLmMKCiAgICBnaXZlIGluaXRpYWwgdmFsdWVzIGZvciByZWdfbnVtLCBzaGlmdCwgcF9jbXh1Y3IgaW4gdWNjX3NldF9jbGtfc3JjCiAgICBzaW5jZSB0aGV5IGFyZSBwYXNzZWQgYnkgcmVmZXJlbmNlIHRvIHVjY19nZXRfY214dWNyX3JlZyBhbmQgYXNzaWduZWQuCgpjb21taXQgZTg1N2E1YmRiMzk1NGI4OTZjMDkyMGNiOWQ4ZDJiMWI5YzEwN2NlNQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMTI6MDk6MzUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IE1pc2NlbGxhbmVvdXMgY29kZSBzdHlsZSBmaXhlcwoKICAgIEltcGxlbWVudCB2YXJpb3VzIGNvZGUgc3R5bGUgZml4ZXMgYW5kIHNpbWlsYXIgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1OTU4MWM1NmFiNWQ2ZTAyMDdkZGFjM2IyYzFkNTVjYjM2ZWM3MDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTc6NTU6NDkgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gRW5hYmxlIHRoZSBJY2VDdWJlL2xpdGU1MjAwIHZhcmlhbnRzIHRvIHBhc3MgYSBkZXZpY2UgdHJlZSB0byBMaW51eC4KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvZGUgYW5kIGNvbmZpZ3VyYXRpb24gbmVjZXNzYXJ5IHRvIGJvb3Qgd2l0aCBhbgogICAgYXJjaC9wb3dlcnBjIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNzMyZmFlYzk1YTgzY2I0NjhiNDg1MGFlODA3YzgzMDFkZGU4ZjZhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI4IDE2OjA5OjI0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogNDQwU1AgUmV2LiBDIGRldGVjdGlvbiBhZGRlZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlN2YzZTlmZjAxZmJkN2ZhNzJlYjQyYTk2NzVmYmVkNmJjNDczNmIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDI4IDExOjA0OjQ1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmQ6IEZpeCBwYXRjaCBtZXJnZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU4ZTNiMTRjMThlZDMyODhjZWVmOGQwODY5NDZkYmYzZGY2NGNjZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTE6MDQ6NDUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gbmFuZDogRml4IHBhdGNoIG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGY0YjYwMmVjNzUyNGEwMzJiZGYzYzZkMjhjN2Y1MjVhNGE2N2VhYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDIyOjUzOjUzIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgZjZlNDk1ZjU0Y2RiOGZlMzQwYjljMDNkZWFiNDBhZDc0NmQ1MmZhZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzo0MzoyNSAyMDA2ICswMTAwCgogICAgW1BBVENIXSA0eHhfZW5ldC5jOiBDb3JyZWN0IHRoZSBzZXR0aW5nIG9mIHptaWlmZXIgcmVnaXN0ZXIKCiAgICBQYXRjaCBiZWxvdyBjb3JyZWN0cyB0aGUgc2V0dGluZyBvZiB0aGUgem1paWZlciByZWdpc3RlciwgaXQgd2FzCiAgICBvdmVyd3JpdHRpbmcgdGhlIHJlZ2lzdGVyIHJhdGhlciB0aGFuIE9SaW5nIHRoZSBzZXR0aW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOZWlsIFdpbHNvbiA8TldpbHNvbkBhaXJzcGFuLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkMWE3MjU0NTI5NjgwMGI3ZTIxOWY5MzEwNGFkNTgzNmYwMDAzZDY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjM0OjEwIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFNlbGVjdCBOQU5EIGVtYmVkZGVkIGVudmlyb25tZW50IGZyb20gYm9hcmQgY29uZmlndXJhdGlvbgoKICAgIFRoZSBjdXJyZW50IE5BTkQgQm9vdGxvYWRlciBzZXR1cCBmb3JjZXMgdGhlIGVudmlyb25tZW50CiAgICB2YXJpYWJsZXMgdG8gYmUgaW4gbGluZSB3aXRoIHRoZSBib290bG9hZGVyLiBUaGlzIGNoYW5nZQogICAgZW5hYmxlcyB0aGUgY29uZmlndXJhdGlvbiB0byBiZSBtYWRlIGluIHRoZSBib2FyZCBpbmNsdWRlCiAgICBmaWxlIGluc3RlYWQgc28gdGhhdCBpdCBjYW4gYmUgaW5kaXZpZHVhbGx5IGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTU3ODQ4NjI4NTdjM2MyMjE0NDk4ZGVmY2ZlZDg0ZmYxMzdmYjgxZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzoyMjoxOSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBuYW5kX3dhaXQoKSB0aW1lb3V0IGZpeGVzCgogICAgVHdvIGZpeGVzIGZvciB0aGUgbmFuZF93YWl0KCkgZnVuY3Rpb24gaW4KICAgIGRyaXZlcnMvbmFuZC9uYW5kX2Jhc2UuYzoKCiAgICAxLiBVc2UgY29ycmVjdCB0aW1lb3V0cy4gVGhlIG9yaWdpbmFsIHRpbWVvdXRzIGluIExpbnV4CiAgICBzb3VyY2UgYXJlIDQwMG1zIGFuZCAyMG1zIG5vdCA0MHMgYW5kIDIwcwoKICAgIDIuIFJldHVybiBjb3JyZWN0IGVycm9yIHZhbHVlIGluIGNhc2Ugb2YgdGltZW91dC4gMCBpcwogICAgaW50ZXJwcmV0ZWQgYXMgT0suCgogICAgU2lnbmVkLW9mZi1ieTogUnVpIFNvdXNhIDxydWkuc291c2FAbGFwb3N0ZS5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGE1NTUzYjA5NWJmMDRmNGYxMDlhZDdlNTY1ZGFlM2FiYTQ3YjIzMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNzowNDowNiAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBbGxvdyBDT05GSUdfT0ZfRkxBVF9UUkVFIHRvIGJvb3QgYSBub24tYXJjaC9wb3dlcnBjIGtlcm5lbAoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIGFuIGFyY2gvcHBjIGtlcm5lbCB0byBiZSBib290ZWQgYnkganVzdCBwYXNzaW5nIDEgb3IgMgogICAgYXJndW1lbnRzIHRvIGJvb3RtLiAgSXQgcmVtb3ZlcyB0aGUgZ2V0ZW52KCJkaXNhYmxlX29mIikgdGVzdCB0aGF0IHVzZWQKICAgIHRvIGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhOTM5OGUwMTg1OTM3ODJjNWZhN2QwNzQxOTU1ZmMxMjU2YjM0YzFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTU6MzI6NDIgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCAxNzI5YjkyY2RlNTc1NDc2Njg0YmZmZTgxOWQwYjc3OTFiNTdiZmYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjUyOjA0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eDogRml4IHByb2JsZW0gd2l0aCBib2FyZCBzcGVjaWZpYyByZXNldCBjb2RlIChub3cgZm9yIHJlYWwpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNjNWVlOGE5MmEwZTNjYTZmNzI3YWY3MWI4ZmQyMDY0NjBjN2FmZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NDk6NTEgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gYWxwcjogcmVtb3ZlIHVudXNlZCBib2FyZCBzcGVjaWZpYyBmbGFzaCBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWY5NGQxNjJlMmI1ZjBlZGMyOGQ5ZmIxMTQ4MjUwMmM0NGQyMThlMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDo0ODo0MSAyMDA2ICswMTAwCgogICAgW1BBVENIXSA0eHg6IEZpeCBwcm9ibGVtIHdpdGggYm9hcmQgc3BlY2lmaWMgcmVzZXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYzBjMmVjNzI1YWVjOTUyNGExNzdhNzdjZTc1NTU5ZTY0NGE5MzFhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjQ2OjA2IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSB0ZXN0aW5nIDR4eCBlbmV0IFBIWSBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYzJjZTIyNjIwNjk1MTBmMzFjN2QzZmQ3ZWZkM2Q1OGI4YzBjMTQ4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjEyOjE3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBQcm9kcml2ZSBBTFBSIGJvYXJkIHN1cHBvcnQgKDQ0MEdYKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1OGI0ODU3NzY2OThjM2Q3MWVjNWEyMTVlMzkyMTIzYjRjMTVhZmEzCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo1MToyMSAyMDA2ICswMTAwCgogICAgQWRkIGEgc21hbGwgUkVBRE1FIHdpdGggaW5mb3JtYXRpb24gb24gdGhlIGdlbmVyaWMgb2hjaSBkcml2ZXIuCgpjb21taXQgYWUzYjc3MGU0ZWFlOGU5OGI2ZTllMjk2NjJlMThjNDdmZGYwMTcxZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTE6NDY6NDYgMjAwNiArMDEwMAoKICAgIEZpeCBzb21lIGVuZGlhbm5lc3MgaXNzdWVzIHJlbGF0ZWQgdG8gdGhlIGdlbmVyaWMgb2hjaSBkcml2ZXIKCmNvbW1pdCA3YjU5YjNjN2E4Y2UyZTRiNTY3YWJmOTljMWNkNjY3YmYzNWI5NDE4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0NDo1OCAyMDA2ICswMTAwCgogICAgSW50cm9kdWNlZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gQ09ORklHX1VTQl9PSENJX05FVyBpbiBvcmRlciB0byBiZSBhYmxlCiAgICB0byBjaG9vc2UgYmV0d2VlbiB0aGUgb2xkIGFuZCB0aGUgZ2VuZXJpYyBPSENJIGRyaXZlcnMuCgpjb21taXQgNTNlMzM2ZTlmZmM1MTAzNWJkYzRlNTg2NzYzMWIzMzc4NzYxYjRkZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTE6NDM6MDkgMjAwNiArMDEwMAoKICAgIE1vZGlmaWVkIHRoZSBtcGM1eHh4IGFuZCB0aGUgcHBjNHh4IGNwdSB0byB1c2UgdGhlIGdlbmVyaWMgT0hDSSBkcml2ZXIKICAgIGFuZCBhZGFwdGVkIGJvYXJkIGNvbmZpZ3MgVFFNNTIwMCBhbmQgeW9zZW1pdGUgYWNjb3JkaW5nbHkuIFRoaXMgY29tbWl0CiAgICBhbHNvIG1ha2VzIHRoZSBtYXhpbXVtIG51bWJlciBvZiByb290IGh1YiBwb3J0cyBjb25maWd1cmFibGUKICAgIChDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMpLgoKY29tbWl0IDc4ZDYyMGViYjU4NzFkMjUyMjcwZGVkZmFkNjBjNjU2ODk5M2I3ODAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBhdGxhcy5kZW54LmRlPgpEYXRlOglUaHUgTm92IDIzIDIyOjU4OjU4IDIwMDYgKzAxMDAKCiAgICBVcGRhdGVzIGZvciBUUU01MjAwIG1vZHVsZXM6CiAgICAtIGZpeCBvZmYtYnktb25lIGVycm9yIGluIGJvYXJkL3RxbTUyMDAvY2FtNTIwMF9mbGFzaC5jIGVycm9yIG1lc3NhZ2UKICAgIC0gc2ltcGxpZnkgInVkYXRlIiBkZWZpbml0aW9ucwoKY29tbWl0IDIwNTMyODMzMDRlZWRkZjI1MGQxMDllNjc5MWViNmZhNGNhZDE0ZjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMjIgMTM6MjA6NTAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4IHN0YXJ0LlM6IEZpeCBmb3IgcHJvY2Vzc29yIGVycmF0YQoKICAgIEZpeGVkIGNwdS9wcGM0eHgvc3RhcnQuUyBmb3IgNDQwRVB4IEVycmF0YTogZnVydGhlciBjb3JyZWN0cyBQUEM0NDBFUHgKICAgIGVycmF0YSAxLjEyOiA0NDBfMzMgYnkgbW92aW5nIHBhdGNoIHVwIGluIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZiBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGVmNjI1MTQwM2Y2Mzc4NDEwMDBlMGZlZjllODMyYWEwMTMzOTgyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyMCAyMDozOTo1MiAyMDA2ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBTZXF1b2lhIGNvbmZpZyBmaWxlIHRvIHN1cHBvcnQgNjRNQnl0ZSBOT1IgRkxBU0gKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTRiYmQ4ZGExNjRiOTc2ZDM4NjE2YmQ5YzY5YzVlODZlMTkzY2RmMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDIwIDEwOjI4OjMwIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgMjYwNDIxYTIxZTkzNGE2OGQzMWZiNjEyNWIwZmJkMjYzMWE4Y2EyMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAxMyAxMzo1NToyNCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBDRkkgZHJpdmVyIEFNRCBDb21tYW5kIFNldCBUb3AgYm9vdCBnZW9tZXRyeSByZXZlcnNhbCwgZXRjLiBbVXBkYXRlZF0KCiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgQU1EIGNvbW1hbmQgc2V0IFRvcCBCb290IGZsYXNoIGdlb21ldHJ5IHJldmVyc2FsCiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgcmVhZGluZyBKRURFQyBNYW51ZmFjdHVyZXIgSUQgYW5kIERldmljZSBJRAogICAgICAgKiBBZGRzIHN1cHBvcnQgZm9yIGRpc3BsYXlpbmcgY29tbWFuZCBzZXQsIG1hbnVmYWN0dXJlciBpZCBhbmQKCSBkZXZpY2UgaWRzIChmbGluZm8pCiAgICAgICAqIE1ha2VzIGZsaW5mbyBvdXRwdXQgdG8gYmUgY29uc2lzdGVudCB3aGVuIENGR19GTEFTSF9FTVBUWV9JTkZPIGRlZmluZWQKICAgICAgICogUmVtb3ZlcyBvdXRkYXRlZCBjaGFuZ2UgaGlzdG9yeSAocmVmZXIgdG8gZ2l0IGxvZyBpbnN0ZWFkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbHVuYXkgT3JrdW4gPGxpc3RtZW1iZXJAb3JrdW4udXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjIxYjUxMWQ0YzUwNDA4ZjQ4NTNmNDZmMDZiNjAxMjcyMTk2MjIzZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gTm92IDEyIDIxOjEzOjIzIDIwMDYgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgY2UzZjFhNDBjNTA3YWZiYWIwNmM1ZWI1OGNjZGM2NzEzZWRhMzI0NQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVNhdCBOb3YgMTEgMjI6NDg6MjIgMjAwNiArMDEwMAoKICAgIERpc2FibGUgdGhlIHdhdGNoZG9nIGluIHRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIFYzOEIgYm9hcmQuCgpjb21taXQgNDRhNDdlNmRiMjY5NDg0MTIxMWYxYzhmZGJhZmQzNjk5MmU5Y2QxYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVNhdCBOb3YgMTEgMjI6NDM6MDAgMjAwNiArMDEwMAoKICAgIENoYW5nZSB0aGUgR1BJTyBwaW4gbXVsdGlwbGV4aW5nIGNvbmZpZ3VyYXRpb24gZm9yIFYzOEIuIFRoZSBVU0IgR1BJTyBwaW4KICAgIGdyb3VwIGlzIGVuYWJsZWQgZm9yIFVTQiBlYXJsaWVyIChpbiBjcHVfaW5pdF9mKCkgaW5zdGVhZCBvZgogICAgdXNiX2xvd2xldmVsX2luaXQoKSkuCgpjb21taXQgOTE2NTBiM2U0ZGU2ODgwMzhkNGY3MTI3OWM0NDg1OGUzZTJjNjg3MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gTm92IDYgMTc6MDY6MzYgMjAwNiArMDEwMAoKICAgIFNlcXVlbnRpYWwgYWNjZXNzZXMgdG8gbm9uLWV4aXN0ZW50IG1lbW9yeSBtdXN0IGJlIHN5bmNocm9uaXplZCwKICAgIGF0IGxlYXN0IG9uIEcyIGNvcmVzLgoKICAgIFRoaXMgZml4ZXMgZ2V0X3JhbV9zaXplKCkgcHJvYmxlbXMgb24gTVBDNTIwMCBSZXYuIEIgYm9hcmRzLgoKY29tbWl0IGJlNWU2MTgxNWQ1YTFmYWMyOTBjZTljMGVmMDljYjZhOGU0Mjg4ZmEKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTk6MTU6MDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IFVwZGF0ZSA4M3h4IHRvIHVzZSBmc2xfaTJjLmMKCiAgICBVcGRhdGUgdGhlIDgzeHggdHJlZSB0byB1c2UgSTJDIHN1cHBvcnQgaW4gZHJpdmVycy9mc2xfaTJjLmMuICBEZWxldGUKICAgIGNwdS9tcGM4M3h4L2kyYy5jLCBpbmNsdWRlL2FzbS1wcGMvaTJjLmgsIGFuZCBhbGwgcmVmZXJlbmNlcyB0byB0aG9zZSBmaWxlcy4KICAgIEFkZGVkIG11bHRpcGxlIEkyQyBidXMgc3VwcG9ydCB0byBmc2xfaTJjLmMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMjM5ZDc0YjFjOTM3OTg0YmM1MTkwODNhOGU3ZGUzNzNhMzkwZjA2CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEyOjAwOjI4IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBSZXBsYWNlIENGR19JTU1SQkFSIHdpdGggQ0ZHX0lNTVIKCiAgICBSZXBsYWNlIGFsbCBpbnN0YW5jZXMgb2YgQ0ZHX0lNTVJCQVIgd2l0aCBDRkdfSU1NUiwgc28gdGhhdCB0aGUgODN4eAogICAgdHJlZSBtYXRjaGVzIHRoZSBvdGhlciA4eHh4IHRyZWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjdmYjJlNzAzZWM5Njg4NTQxNDE2OTYyNzI0YWRmZjcwYTczMjJjYgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTo0NzoxMSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogTGluZGVudCBhbmQgY2xlYW4gdXAgY3B1L21wYzgzeHgvc3BlZWQuYwoKY29tbWl0IDkwZjMwYTcxMGEzYzYxOWI1NDA1ODYwYTY4NmM0ZGRmYzQ5NWQ0YjYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6MDU6NTAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uCgogICAgVGhlIDgzNHggcmV2MS54IHNpbGljb24gaGFzIG9uZSBDUFU1IGVycmF0YS4KCiAgICBUaGUgaXNzdWUgaXMgd2hlbiB0aGUgZGF0YSBjYWNoZSBsb2NrZWQgd2l0aAogICAgSElEMFtETE9DS10sIHRoZSBkY2J6IGluc3RydWN0aW9uIGxvb2tzIGxpa2Ugbm8tb3AgaW5zdC4KCiAgICBUaGUgcmlnaHQgYmVoYXZpb3Igb2YgdGhlIGRhdGEgY2FjaGUgaXMgd2hlbiB0aGUgZGF0YSBjYWNoZQogICAgTG9ja2VkIHdpdGggSElEMFtETE9DS10sIHRoZSBkY2J6IGluc3RydWN0aW9uIGFsbG9jYXRlcwogICAgbmV3IHRhZ3MgaW4gY2FjaGUuCgogICAgVGhlIDgzNHggcmV2My4wIGFuZCBsYXRlciBhbmQgODM2MCBoYXZlIG5vdCB0aGlzIGJ1ZyBpbnNpZGUuCgogICAgU28sIHdoZW4gODM0eCByZXYzLjAvODM2MCBhcmUgd29ya2luZyB3aXRoIEVDQywgdGhlIGRjYnoKICAgIGluc3RydWN0aW9uIHdpbGwgY29ycnVwdCB0aGUgc3RhY2sgaW4gY2FjaGUsIHRoZSBwcm9jZXNzb3Igd2lsbAogICAgY2hlY2tzdG9wIHJlc2V0LgoKICAgIEhvd2V2ZXIsIHRoZSA4MzR4IHJldjEueCBjYW4gd29yayB3aXRoIEVDQyB3aXRoIHRoZXNlIGNvZGUsCiAgICBiZWNhdXNlIHRoZSBzaWxsaWNvbiBoYXMgdGhpcyBjYWNoZSBidWcuIFRoZSBkY2J6IHdpbGwgbm90CiAgICBjb3JydXB0IHRoZSBzdGFjayBpbiBjYWNoZS4KICAgIFJlYWxseSwgaXQgaXMgdGhlIGZhdWx0IGNvZGUgcnVubmluZyBvbiBmYXVsdCBzaWxsaWNvbi4KCiAgICBUaGlzIHBhdGNoIGZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uLiBJbnN0ZWFkIG9mCiAgICBDUFUgRlAgd3JpdGluZyB0byBpbml0aWFsaXNlIHRoZSBFQ0MuCgogICAgQ0hBTkdFTE9HOgogICAgKiBGaXggdGhlIGluY29ycmVjdCBkY2J6IG9wZXJhdGlvbiBpbnN0ZWFkIG9mIENQVSBGUAogICAgd3JpdGluZyB0byBpbml0aWFsaXNlIHRoZSBFQ0MgbWVtb3J5LiBPdGhlcndpc2UsIGl0CiAgICB3aWxsIGNvcnJ1cHQgdGhlIHN0YWNrIGluIGNhY2hlLCBUaGUgcHJvY2Vzc29yIHdpbGwgY2hlY2tzdG9wCiAgICByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMGI1NDJkNjc3M2E1YTFjYmNlNzc2OTFmMDA5YjA2ZDlhZWI1N2QKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDEgMDA6MTA6NDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBPRl9GTEFUX1RSRUUgYml0cyB0byA4M3h4IGJvYXJkcwoKICAgIGFkZCBmdF9wY2lfc2V0dXAsIE9GX0NQVSwgT0ZfU09DLCBPRl9UQkNMSywgYW5kCiAgICBTVERPVVRfUEFUSCBjb25maWd1cmF0aW9uIGJpdHMgdG8gbXBjODM0OWVtZHMsCiAgICBtcGM4MzQ5aXR4LCBhbmQgbXBjODM2MGVtZHMgYm9hcmQgY29kZS4KCiAgICByZWRvIGVudmlyb25tZW50IHRvIHVzZSBib290bSB3aXRoIHRoZSBmZHRhZGRyCiAgICBmb3IgYm9vdGluZyBBUkNIPXBvd2VycGMga2VybmVscyBieSBkZWZhdWx0LAogICAgYW5kIHByb3ZpZGUgZGVmYXVsdCBmZHRhZGRyIHZhbHVlcy4KCmNvbW1pdCA0ODA0MTM2NWIzNDIwNTg5YWQ0NjRlYmM3NzUyZTAwNTM1MzhiNzI5CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAwOjA3OjI1IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBjaGFuZ2UgZnQgY29kZSB0byBtb2RpZnkgbG9jYWwtbWFjLWFkZHJlc3MgcHJvcGVydHkKCiAgICBVcGRhdGUgODN4eCBPRiBjb2RlIHRvIHVwZGF0ZSBsb2NhbC1tYWMtYWRkcmVzcyBwcm9wZXJ0aWVzCiAgICBmb3IgZXRoZXJuZXQgaW5zdGVhZCBvZiB0aGUgb2Jzb2xldGUgJ2FkZHJlc3MnIHByb3BlcnR5LgoKY29tbWl0IDljYTg4MGEyNTA4NzBhN2Q1NTc1NDI5MWI1NTkxZDJiNWZlODliNTQKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDIxOjIzOjE2IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggZHVhbCBJMkMgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlJVFgsIE1QQzgzNDlFTURTLCBUUU04MzR4LCBhbmQgTVBDODM2MEVNRFMKCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBhbiBpbXByb3ZlZCBJMkMgc2V0X3NwZWVkKCksIHdoaWNoIGhhbmRsZXMgYWxsIGNsb2NrCiAgICBmcmVxdWVuY2llcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFjNGI1NjIyY2UwNTBiNWVlMWUxNTRiOThkZjYzMGQ3Nzg2NjE2MzIKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjU0OjU5IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgdGhlIFJFQURNRS5tcGM4MzYwZW1kcwoKICAgIGFkZCBkb2MvUkVBRE1FLm1wYzgzNjBlbWRzIHRvIGFjY29tcGFueSB0aGUgbmV3IGJvYXJkIHN1cHBvcnQKCmNvbW1pdCA3NzM3ZDVjNjU4YzYwNmY5OTlkZmJlM2U4NmIwZmVkNDllNWM1MGVmCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEyOjExOjE1IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgUUUgZXRoZXJuZXQgc3VwcG9ydAoKICAgIHRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgUVVJQ0MgRW5naW5lIGJhc2VkIFVDQyBnaWdhYml0IGV0aGVybmV0IGRldmljZS4KCmNvbW1pdCA1ZjgyMDQzOTRlMzliYmU4Y2Q5ZjA4YjhmOGQxNDViNmMwMWY3YzczCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDE5OjMzOjQ0IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgTVBDODM2MEVNRFMgYmFzaWMgYm9hcmQgc3VwcG9ydAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgRnJlZXNjYWxlIE1QQzgzNjBFTURTIGJvYXJkLgogICAgSW5jbHVkZXMgRERSLCBEVUFSVCwgTG9jYWwgQnVzLCBQQ0kuCgpjb21taXQgMjM4OTJlNDkzNTJkZTc0ZjdmYWMzNmZmOTBiYjFiZTE0M2QxOTVlMwpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTk6MzA6NDAgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCB0aGUgUVVJQ0MgRW5naW5lIChRRSkgaW1tYXAgZmlsZQoKICAgIGNvbW1vbiBRRSBpbW1hcCBmaWxlLiAgQWxzbyByZXF1aXJlZCBmb3IgODM2MC4KCmNvbW1pdCBiNzAxNjUyYTQ5OTJiZGNjNjJmYjFhNjAzOGE4NWJlZWY5ZTU1ZGE0CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOToyNTozOCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIDgzNjAgc3BlY2lmaWNzIHRvIDgzeHggaW1tYXAKCiAgICBNYWlubHkgYWRkIFFFIGRldmljZSBkZXBlbmRlbmNpZXMsIHdpdGggYXBwcm9wcmlhdGUgODM2MCBwcm90ZWN0aW9uLgogICAgTGluZGVudCBhbHNvIHJ1bi4KCmNvbW1pdCA5ODg4MzMzMjRhN2ZkYTQ4MmM4YWMzY2EyM2ViNTM5ZjgyMzJlNDA0CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOToxNDo0MSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogRml4IFBDSSwgVVNCLCBib290YXJncyBmb3IgTVBDODM0OUUtbUlUWAoKICAgIFBSRVJFUVVJU0lURSBQQVRDSEVTOgoKICAgICogVGhpcyBwYXRjaCBjYW4gb25seSBiZSBhcHBsaWVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZDoKCiAgICAgIDEpIEROWCMyMDA2MDkyMTQyMDAwMDE1ICJBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzNDlFLW1JVFggIDEvMiIKICAgICAgMikgRE5YIzIwMDYwOTIxNDIwMDAwMjQgIkFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWCAgMi8yIgoKICAgIENIQU5HRUxPRzoKCiAgICAqIEZvciB0aGUgODM0OUUtbUlUWCwgZml4IHNvbWUgc2l6ZSB2YWx1ZXMgaW4gcGNpX2luaXRfYm9hcmQoKSwgZW5hYmxlCiAgICAgIHRoZSBjbG9jayBmb3IgdGhlIDJuZCBVU0IgYm9hcmQgKExpbnV4IGtlcm5lbCB3aWxsIGhhbmcgb3RoZXJ3aXNlKSwKICAgICAgYW5kIGZpeCB0aGUgQ09ORklHX0JPT1RBUkdTIG1hY3JvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmFkNmI1MTNiMzEwNzBiZDBjMDAzNzkyZWQxYzNlN2Y1ZDc0MDM1NwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTg6NDQ6NDIgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWAoKICAgIFBSRVJFUVVJU0lURSBQQVRDSEVTOgoKICAgICogVGhpcyBwYXRjaCBjYW4gb25seSBiZSBhcHBsaWVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZDoKCiAgICAgIDEpIEROWCMyMDA2MDkwNzQyMDAwMDI0ICJBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c2VzIgogICAgICAyKSBETlgjMjAwNjA5MDc0MjAwMDAzMyAiTXVsdGktYnVzIEkyQyBpbXBsZW1lbnRhdGlvbiBvZiBNUEM4MzR4IgogICAgICAzKSBETlgjMjAwNjA5MTI0MjAwMDA0MSAiQWRkaXRpb25hbCBNUEM4MzQ5IHN1cHBvcnQgZm9yIG11bHRpYnVzIGkyYyIKICAgICAgNCkgRE5YIzIwMDYwOTEyNDIwMDAwNzggIkFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBmbGFzaCBtZW1vcnkgc2l6ZXMgb24gODN4eCBzeXN0ZW1zIgogICAgICA1KSBETlgjMjAwNjA5MTI0MjAwMDA2OSAiQWRkIHN1cHBvcnQgZm9yIEVycmF0YSBERFI2IG9uIE1QQyA4MzR4IHN5c3RlbXMiCgogICAgQ0hBTkdFTE9HOgoKICAgICogQWRkIHN1cHBvcnQgZm9yIHRoZSBGcmVlc2NhbGUgTVBDODM0OUUtbUlUWCByZWZlcmVuY2UgZGVzaWduIHBsYXRmb3JtLgogICAgICBUaGUgc2Vjb25kIFRTRUMgKFZpdGVzc2UgNzM4NSBzd2l0Y2gpIGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTgzZGE2ZDliNDQ2Y2MxMjEyMzQ1NTg0NGFkMTE4N2UyMzc1NjI2ZgpBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUdWUgU2VwIDEyIDEwOjE1OjUzIDIwMDYgLTA0MDAKCiAgICBBZGRpdGlvbmFsIE1QQzgzNDkgc3VwcG9ydCBmb3IgbXVsdGlidXMgaTJjCgogICAgSGVsbG8sCgogICAgSGVyZSBpcyBhIHBhdGNoIGZvciBhIGZpbGUgdGhhdCB3YXMgYWNjaWRlbnRhbGx5IGxlZnQgb3V0IG9mIGEgcHJldmlvdXMKICAgIGF0dGVtcHQuCgogICAgSXQgYWNjb21wYW5pZXMgdGhlIHBhdGNoIHdpdGggdGlja2V0IEROWCMyMDA2MDkwNzQyMDAwMDI0CgogICAgQ0hBTkdFTE9HOgoJICAgIENoYW5nZSBQQ0kgaW5pdGlhbGl6YXRpb24gdG8gdXNlIG5ldyBtdWx0aS1idXMgSTJDIEFQSS4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYjI0ZjExOWQ2NzJiNzA5ZDE1M2ZmMmFjMDkxZDRhYTYzZWM2ODc3ZApBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUaHUgU2VwIDcgMTY6NTE6MDQgMjAwNiAtMDQwMAoKICAgIE11bHRpLWJ1cyBJMkMgaW1wbGVtZW50YXRpb24gb2YgTVBDODM0eAoKICAgIEhlbGxvLAoKICAgIEF0dGFjaGVkIGlzIGEgcGF0Y2ggaW1wbGVtZW50aW5nIG11bHRpcGxlIEkyQyBidXNlcyBvbiB0aGUgTVBDODM0eCBDUFUKICAgIGZhbWlseSBhbmQgdGhlIE1QQzgzNDlFTURTIGJvYXJkIGluIHBhcnRpY3VsYXIuCiAgICBUaGlzIHBhdGNoIHJlcXVpcmVzIFBhdGNoIDEgKEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMpLgogICAgVGVzdGluZyB3YXMgcGVyZm9ybWVkIG9uIGEgNTMzTUh6IGJvYXJkLgoKICAgIC8qKiogTm90ZTogVGhpcyBwYXRjaCByZXBsYWNlcyB0aWNrZXQgRE5YIzIwMDYwODMwNDIwMDAwMjcgKioqLwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKICAgIENIQU5HRUxPRzoKCSAgICBJbXBsZW1lbnRlZCBkcml2ZXItbGV2ZWwgY29kZSB0byBzdXBwb3J0IHR3byBJMkMgYnVzZXMgb24gdGhlCiAgICBNUEM4MzR4IENQVSBmYW1pbHkgYW5kIHRoZSBNUEM4MzQ5RU1EUyBib2FyZC4gIEF2YWlsYWJsZSBJMkMgYnVzIHNwZWVkcwogICAgYXJlIDUwa0h6LCAxMDBrSHogYW5kIDQwMGtIeiBvbiBlYWNoIGJ1cy4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYmI5OWFkNmQ4MjU3YmY4MjhmMTUwZDQwZjUwN2IzMGQ4MGE0YTdhZQpBdXRob3I6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgpEYXRlOglUaHUgU2VwIDcgMTY6NTA6NTQgMjAwNiAtMDQwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMKCiAgICBIZWxsbywKCiAgICBBdHRhY2hlZCBpcyBhIHBhdGNoIHByb3ZpZGluZyBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMgYXQgdGhlCiAgICBjb21tYW5kIGxldmVsLiAgVGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBwYXRjaCBpbmNsdWRlcyBhbiBpbXBsZW1lbnRhdGlvbgogICAgZm9yIHRoZSBNUEM4MzR4IENQVSBhbmQgTVBDODM0OUVNRFMgYm9hcmQuCgogICAgLyoqKiBOb3RlOiBUaGlzIHBhdGNoIHJlcGxhY2VzIHRpY2tldCBETlgjMjAwNjA4MzA0MjAwMDAxOCAqKiovCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CgogICAgT3ZlcnZpZXc6CgogICAgMS4gSW5jbHVkZSBuZXcgJ2kyYycgY29tbWFuZCAoYmFzZWQgb24gVVNCIGltcGxlbWVudGF0aW9uKSB1c2luZwogICAgQ09ORklHX0kyQ19DTURfVFJFRS4KCiAgICAyLiBBbGxvdyBtdWx0aXBsZSBidXNlcyBieSBkZWZpbmluZyBDT05GSUdfSTJDX01VTFRJX0JVUy4gIE5vdGUgdGhhdAogICAgdGhlIGNvbW1hbmRzIHRvIGNoYW5nZSBidXMgbnVtYmVyIGFuZCBzcGVlZCBhcmUgb25seSBhdmFpbGFibGUgdW5kZXIgdGhlCiAgICBuZXcgJ2kyYycgY29tbWFuZCBtZW50aW9uZWQgaW4gdGhlIGZpcnN0IGJ1bGxldC4KCiAgICAzLiBUaGUgb3B0aW9uIENGR19JMkNfTk9QUk9CRVMgaGFzIGJlZW4gZXhwYW5kZWQgdG8gd29yayBpbiBtdWx0aS1idXMKICAgIHN5c3RlbXMuICBXaGVuIENPTkZJR19JMkNfTVVMVElfQlVTIGlzIHVzZWQsIHRoaXMgb3B0aW9uIHRha2VzIHRoZSBmb3JtCiAgICBvZiBhbiBhcnJheSBvZiBidXMtZGV2aWNlIHBhaXJzLiAgT3RoZXJ3aXNlLCBpdCBpcyBhbiBhcnJheSBvZiB1Y2hhci4KCiAgICBDSEFOR0VMT0c6CgkgICAgQWRkZWQgbmV3ICdpMmMnIG1hc3RlciBjb21tYW5kIGZvciBhbGwgSTJDIGludGVyYWN0aW9uLiAgVGhpcyBpcwogICAgY29uZGl0aW9uYWxseSBjb21waWxlZCB3aXRoIENPTkZJR19JMkNfQ01EX1RSRUUuICBOZXcgY29tbWFuZHMgYWRkZWQgZm9yCiAgICBzZXR0aW5nIEkyQyBidXMgc3BlZWQgYXMgd2VsbCBhcyBjaGFuZ2luZyB0aGUgYWN0aXZlIGJ1cyBpZiB0aGUgYm9hcmQKICAgIGhhcyBtb3JlIHRoYW4gb25lIChjb25kaXRpb25hbGx5IGNvbXBpbGVkIHdpdGgKICAgIENPTkZJR19JMkNfTVVMVElfQlVTKS4gIFVwZGF0ZWQgTk9QUk9CRSBsb2dpYyB0byBoYW5kbGUgbXVsdGlwbGUgYnVzZXMuCiAgICBVcGRhdGVkIFJFQURNRS4KCiAgICByZWdhcmRzLAogICAgQmVuCgpjb21taXQgYmVkODVjYWY4NzI3MTRlYmY1MzAxMzk2N2E2OTVjOWQ2M2FjZmM2OApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTg6MTM6MzYgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciBFcnJhdGEgRERSNiBvbiBNUEMgODM0eCBzeXN0ZW1zCgogICAgQ0hBTkdFTE9HOgoKICAgICogRXJyYXRhIEREUjYsIHdoaWNoIGFmZmVjdHMgYWxsIGN1cnJlbnQgTVBDIDgzNHggcHJvY2Vzc29ycywgbGlzdHMgY2hhbmdlcwogICAgICByZXF1aXJlZCB0byBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdmFyaW91cyB0eXBlcyBvZiBERFIgbWVtb3J5LiAgVGhpcwogICAgICBwYXRjaCBpbXBsZW1lbnRzIHRob3NlIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZmQ2ZTQ3MGY2Mzk4ODMwMDJjN2M1OWQ1NjI2OTBhNWNiMGY0ODY1CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxODo0NToyMyAyMDA2IC0wNTAwCgogICAgbXBjODN4eDogZml4IFRRTSBidWlsZCBieSBkZWZpbmluZyBhIENGR19GTEFTSF9TSVpFIGZvciBpdAoKY29tbWl0IDMxMDY4YjdjNGFiZWVmY2IyYzhmZDRmYmVjY2M4ZWM2YzZkMDQ3NWEKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE3OjA3OjAwIDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdmFyaWFibGUgZmxhc2ggbWVtb3J5IHNpemVzIG9uIDgzeHggc3lzdGVtcwoKICAgIENIQU5HRUxPRzoKCiAgICAqIE9uIDgzeHggc3lzdGVtcywgdXNlIHRoZSBDRkdfRkxBU0hfU0laRSBtYWNybyB0byBwcm9ncmFtIHRoZSBMQkMgbG9jYWwgYWNjZXNzCiAgICAgICB3aW5kb3cgcmVnaXN0ZXJzLCBpbnN0ZWFkIG9mIHVzaW5nIGEgaGFyZC1jb2RlZCB2YWx1ZSBvZiA4TUIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZmMzNGFlNjZlNzNmYTc4NDFkMWEwMDZkYzFiNWRjYmMxZjc4OTY1CkF1dGhvcjogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxODozODoxMyAyMDA2ICswODAwCgogICAgbXBjODN4eDogVW5pZmllZCBUUU04MzR4IHZhcmlhYmxlIG5hbWVzIHdpdGggODN4eCBhbmQgY29uc29saWRhdGVkIG1hY3JvcwoKICAgIFVuaWZpZWQgVFFNODM0eCB2YXJpYWJsZSBuYW1lcyB3aXRoIDgzeHggYW5kIGNvbnNvbGlkYXRlZCBtYWNybwogICAgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSA4MzYwIGFuZCBvdGhlciB1cGNvbWluZyA4M3h4IGRldmljZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjZlZGE3ZjgwY2NjMTNkNjU4MDIwMjY4YzUwN2Q3MTczY2YyZThhYQpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMjUgMTQ6NDE6MjEgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IENoYW5nZWQgdG8gdW5pZmllZCBtcHg4M3h4IG5hbWVzIGFuZCBhZGRlZCBjb21tb24gODN4eCBjaGFuZ2VzCgogICAgSW5jb3Jwb3JhdGVkIHRoZSBjb21tb24gdW5pZmllZCB2YXJpYWJsZSBuYW1lcyBhbmQgdGhlIGNoYW5nZXMgaW4gcHJlcGFyYXRpb24KICAgIGZvciByZWxlYXNpbmcgbXBjODM2MCBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg5NGM0NmMyN2M2NDg5MWY5M2FjMDRlZGRlODZhOWZhOTc1OGQ5MgpBdXRob3I6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMgMTg6MzY6MDIgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCBtaXNzaW5nIGJ1aWxkIGZvciBtcGM4MzQ5ZW1kcyBwY2kuYwoKICAgIE1ha2UgcGNpIGJ1aWxkIGZvciBtcGM4MzQ5ZW1kcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5YTgxZmY3NDBiMjlkZWVhMWUyYWIwOGEzYzJhYzEzNmMyZTYyMTkKQXV0aG9yOiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE4OjM5OjQ5IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmVkIHVudXNlZCBmaWxlIHJlc2V0dmVjLlMgZm9yIG1wYzgzeHggY3B1CgogICAgUmVtb3ZlZCB1bnVzZWQgZmlsZSByZXNldHZlYy5TIGZvciBtcGM4M3h4IGNwdQoKICAgIFNpZ25lZC1vZmYtYnk6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA0Zjg5OWZjNDY1YzNlNDRmMmI1NWVjYzcwNjE4ZjU2OTZmYzBkZGYKQXV0aG9yOiBOaWNrIFNwZW5jZSA8Tmljay5TcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IFNlcCAzMCAwMDozMjo1OSAyMDA2IC0wNzAwCgogICAgTkFORCBGbGFzaCB2ZXJpZnkgYWNyb3NzIGJsb2NrIGJvdW5kYXJpZXMKCiAgICBUaGlzIHBhdGNoIGFkZHJlc3NlcyBhIHByb2JsZW0gd2hlbiBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzCiAgICBkZWZpbmVkCiAgICBhbmQgdGhlIHdyaXRlIGNyb3NzZXMgYSBibG9jayBib3VuZGFyeS4gVGhlIHBvaW50ZXIgdG8gdGhlIHZlcmlmaWNhdGlvbgogICAgYnVmZmVyIChidWZzdGFydCkgaXMgbm90IGJlaW5nIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgc3RhcnRpbmcgb2YgdGhlCiAgICBuZXcKICAgIGJsb2NrIHNvIHRoZSB2ZXJpZmljYXRpb24gb2YgdGhlIHNlY29uZCBibG9jayBmYWlscy4KCiAgICBDSEFOR0VMT0c6CgogICAgKiBGaXggTkFORCBGTEFTSCBwYWdlIHZlcmlmaWNhdGlvbiBhY3Jvc3MgYmxvY2sgYm91bmRhcmllcwoKY29tbWl0IGY0ODRkYzc5MWEzOTMyNTM3MjEzYzQzYzY1NGNjMTI5NWM2NGI4NGMKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCA3IDA3OjM5OjQ2IDIwMDYgLTA3MDAKCiAgICBBZGRlZCBSR01JSSBzdXBwb3J0IHRvIHRoZSBUU0VDcyBhbmQgTWFydmVsbCA4ODExMTEgUGh5CgogICAgQWRkZWQgYSBwaHkgaW5pdGlhbGl6YXRpb24gdG8gYWRqdXN0IHRoZSBSR01JSSBSWCBhbmQgVFggdGltaW5nCiAgICBBbHdheXMgc2V0IHRoZSBSMTAwIGJpdCBpbiAxMDAgQmFzZVQgbW9kZSByZWdhcmRsZXNzIG9mIHRoZSBUU0VDIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ODMxYzhiOGE5Nzc5OWRhNzc5MjNkNmJiYjRjMjYwYzBkNDU1MjFjCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTM6MTA6MDAgMjAwNiArMDgwMAoKICAgIFJlbW92ZSBzb21lIHVudXNlZCBDRkcgZGVmaW5lLgogICAgdW5kZWYgQ0ZHX0RSQU1fVEVTVAoKY29tbWl0IDk5YzA5YzRkZWMzNGY3N2MyNDNiZjUxYmVhNTMyZTNmMzM5NDEwYWQKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxMzowNzozNiAyMDA2ICswODAwCgogICAgQ2hhbmdlIHRoZSBURVhUX0JBU0UgZnJvbSAweEZGRjAwMDAwIHRvIDB4RkYwMDAwMDAuCiAgICBCb3RoIHdvcmsuIDB4RkYwMDAwMDAgc2VlbXMgbW9yZSByZWFzb25hYmxlLgoKY29tbWl0IGM1OTIwMDQ0MzA3MjM1MzA0NGFhNGJmNzM3YTVhNjBmOWE5YWYyMzEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyIDE1OjE1OjAxIDIwMDYgKzAxMDAKCiAgICBSZWxlYXNlIFUtQm9vdCAxLjEuNgoKY29tbWl0IGMxZmJlNDEwM2EwZDZjODk1N2Y5MTJhZjkwMmQ3MDViYTY3ODM2ZjIKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxNDo0OCAyMDA2ICswODAwCgogICAgVGhpcyBwYXRjaCBjb21lcyBmcm9tIFl1bGkncyBwb3N0ZWQgcGF0Y2ggb24gOC84LzIwMDYKICAgIHRpdGxlZCAiQ0ZJIERyaXZlciBMaXR0bGUtRW5kaWFuIHdyaXRlIElzc3VlIi4KCiAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L21haWxhcmNoaXZlL21lc3NhZ2UucGhwP21zZ19pZD0zNjMxMTk5OQoKICAgIElmIHRoYXQgcGF0Y2ggYXBwbGllZCwgcGxlYXNlIGRpc2NhcmQgdGhpcyBvbmUuCiAgICBVbnRpbCBub3cgLCBJIGRvIG5vdCBzZWUgaGlzIHBhdGNoIGlzIGFwcGxpZWQuIFNvIHBsZWFzZSBhcHBseSB0aGlzIG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdWxpIEJhcmNvaGVuIDx5dWxpQGFyYWJlbGxhc3cuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4MjVmMTU4ZTQ0OWUxZTljZjc0YzA4ZTU3Mjk1NWUxMjIzOTRjOTYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxMjozMSAyMDA2ICswODAwCgogICAgVHNpMTA4IG9uIGNoaXAgaTJjIHN1cHBvcnQuCgogICAgVGhlIGkyYyAgSW50ZXJmYWNlIHByb3ZpZGVzIGEgbWFzdGVyLW9ubHksIHNlcmlhbCBpbnRlcmZhY2UgdGhhdCBjYW4gYmUKICAgIHVzZWQgZm9yIGluaXRpYWxpemluZyBUc2kxMDgvVHNpMTA5IHJlZ2lzdGVycyBmcm9tIGFuIEVFUFJPTSBhZnRlciBhCiAgICBkZXZpY2UgcmVzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MjI2ZTdkNmYwOWI5YTFhYzA3NGNkOTE4YzgxMjI1YTQ2ODliYmE4CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MTE6MDYgMjAwNiArMDgwMAoKICAgIFRzaTEwOCBvbiBjaGlwIHBjaSBjb250cm9sbGVyIHN1cHBvcnQuCgogICAgSWYgdGhlcmUgaXMgbm8gcGNpIGNhcmQsIHRoZSB0c2kxMDgvMTA5IHBjaSBjb25maWd1cmUgcmVhZCB3aWxsCiAgICBjYXVzZSBhIG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9uIHRvIHRoZSBwcm9jZXNzb3IuIFBDSSBlcnJvciBzaG91bGQKICAgIGFsc28gYmUgY2xlYXJlZCBhZnRlciB0aGUgcmVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxOTI3Y2VlOTc3MTI2ZTU0N2NlZWJhMjNlNGY5NzhmMzc3Y2ZiOGYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTowODo1NSAyMDA2ICswODAwCgogICAgVHVuZHJhIHRzaTEwOCBvbiBjaGlwIEV0aGVybmV0IGNvbnRyb2xsZXIgc3VwcG9ydC4KCiAgICBUaGUgZm9sbG93aW5nIGlzIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIEV0aGVybmV0IGNvbnRyb2xsZXI6CiAgICBUaGUgVHNpMTA4LzkgRXRoZXJuZXQgQ29udHJvbGxlciBjb25uZWN0cyBTd2l0Y2ggRmFicmljIHRvIHR3byBpbmRlcGVuZGVudAogICAgR2lnYWJpdCBFdGhlcm5ldCBwb3J0cyxFMCBhbmQgRTEuICBJdCB1c2VzIGEgc2luZ2xlIE1hbmFnZW1lbnQgaW50ZXJmYWNlCiAgICB0byBtYW5hZ2UgdGhlIHR3byBwaHlzaWNhbCBjb25uZWN0aW9uIGRldmljZXMgKFBIWXMpLiAgRWFjaCBFdGhlcm5ldCBwb3J0CiAgICBoYXMgaXRzIG93biBzdGF0aXN0aWNzIG1vbml0b3IgdGhhdCB0cmFja3MgYW5kIHJlcG9ydHMga2V5IGludGVyZmFjZQogICAgc3RhdGlzdGljcy4gIEVhY2ggcG9ydCBzdXBwb3J0cyBhIDI1Ni1lbnRyeSBoYXNoIHRhYmxlIGZvciBhZGRyZXNzCiAgICBmaWx0ZXJpbmcuCUluIGFkZGl0aW9uLCBlYWNoIHBvcnQgaXMgYnJpZGdlZCB0byB0aGUgU3dpdGNoIEZhYnJpYwogICAgdGhyb3VnaCBhIDItS2J5dGUgdHJhbnNtaXQgRklGTyBhbmQgYSA0LUtieXRlIFJlY2VpdmUgRklGTy4KCiAgICBFYWNoIEV0aGVybmV0IHBvcnQgYWxzbyBoYXMgYSBwYWlyIG9mIGludGVybmFsIEV0aGVybmV0IERNQSBjaGFubmVscyB0bwogICAgc3VwcG9ydCB0aGUgdHJhbnNtaXQgYW5kIHJlY2VpdmUgZGF0YSBmbG93cy4gIFRoZSBFdGhlcm5ldCBETUEgY2hhbm5lbHMKICAgIHVzZSBkZXNjcmlwdG9ycyBzZXQgdXAgaW4gbWVtb3J5LCB0aGUgbWVtb3J5IG1hcCBvZiB0aGUgZGV2aWNlLCBhbmQKICAgIGFjY2VzcyB2aWEgdGhlIFN3aXRjaCBGYWJyaWMuICBUaGUgRXRoZXJuZXQgQ29udHJvbGxlcj9zIERNQSBhcmJpdGVyCiAgICBoYW5kbGVzIGFyYml0cmF0aW9uIGZvciB0aGUgU3dpdGNoIEZhYnJpYy4JVGhlIENvbnRyb2xsZXIgYWxzbwogICAgaGFzIGEgcmVnaXN0ZXIgYnVzaW50ZXJmYWNlIGZvciByZWdpc3RlciBhY2Nlc3NlcyBhbmQgc3RhdHVzIG1vbml0b3IKICAgIGNvbnRyb2wuCgogICAgVGhlIFBNRCAoUGh5c2ljYWwgTWVkaWEgRGV2aWNlKSBpbnRlcmZhY2Ugb3BlcmF0ZXMgaW4gTUlJLCBHTUlJLCBvciBUQkkKICAgIG1vZGVzLiAgVGhlIE1JSSBtb2RlIGlzIHVzZWQgZm9yIGNvbm5lY3Rpbmcgd2l0aCAxMCBvciAxMDAgTWJpdC9zIFBNRHMuCiAgICBUaGUgR01JSSBhbmQgVEJJIG1vZGVzIGFyZSB1c2VkIHRvIGNvbm5lY3Qgd2l0aCBHaWdhYml0IFBNRHMuICBJbnRlcm5hbAogICAgZGF0YSBmbG93cyB0byBhbmQgZnJvbSB0aGUgRXRoZXJuZXQgQ29udHJvbGxlciB0aHJvdWdoIHRoZSBTd2l0Y2ggRmFicmljLgoKICAgIEVhY2ggRXRoZXJuZXQgcG9ydCB1c2VzIGl0cyB0cmFuc21pdCBhbmQgcmVjZWl2ZSBETUEgY2hhbm5lbHMgdG8gbWFuYWdlCiAgICBkYXRhIGZsb3dzIHRocm91Z2ggYnVmZmVyIGRlc2NyaXB0b3JzIHRoYXQgYXJlIHByZWRlZmluZWQgYnkgdGhlCiAgICBzeXN0ZW0gKHRoZSBkZXNjcmlwdG9ycyBjYW4gZXhpc3QgYW55d2hlcmUgaW4gdGhlIHN5c3RlbSBtZW1vcnkgbWFwKS4KICAgIFRoZXNlIGRlc2NyaXB0b3JzIGFyZSBkYXRhIHN0cnVjdHVyZXMgdGhhdCBwb2ludCB0byBidWZmZXJzIGZpbGxlZAogICAgd2l0aCBkYXRhIHJlYWR5IHRvIHRyYW5zbWl0IG92ZXIgRXRoZXJuZXQsIG9yIHRoZXkgcG9pbnQgdG8gZW1wdHkKICAgIGJ1ZmZlcnMgcmVhZHkgdG8gcmVjZWl2ZSBkYXRhIGZyb20gRXRoZXJuZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3OGFhMGMzNDI3ZjNlY2RlYjM0YWFiZmJiZTJkZDIzYjZhZDhmNDBlCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTk6MDE6MzMgMjAwNiArMDgwMAoKICAgIFR1bmRyYSB0c2kxMDggaGVhZGVyIGZpbGUuCgogICAgVGhlIFR1bmRyYSBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uIChUdW5kcmEpIFRzaTEwOCBpcyBhIGhvc3QgYnJpZGdlIGZvcgogICAgUG93ZXJQQyBwcm9jZXNzb3JzIHRoYXQgb2ZmZXJzIG51bWVyb3VzIHN5c3RlbSBpbnRlcmNvbm5lY3Qgb3B0aW9ucyBmb3IKICAgIGVtYmVkZGVkIGFwcGxpY2F0aW9uIGRlc2lnbmVycy4gVGhlIFRzaTEwOCBjYW4gaW50ZXJjb25uZWN0IDYweCBvcgogICAgTVBYIHByb2Nlc3NvcnMgdG8gUENJL1ggcGVyaXBoZXJhbHMsIEREUjItNDAwIG1lbW9yeSwgR2lnYWJpdCBFdGhlcm5ldCwKICAgIGFuZCBGbGFzaC4gUHJvdmlkZWQgdGhlIG1hY3JvIGRlZmluZSBmb3IgdHNpMTA4IGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4N2M0ZGIwOTY5OWM2Yjg5MTc2YjMxMDA0YWZjYjgzZWIxNTg1ZDQ3CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTk6MTUgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0IGhpZ2ggbGV2ZWwgY29kZTp0c2kxMDggaW5pdCArIG1wYzc0NDhocGMyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjc4MDFiOGFiMTFjNjFiNTc3ZTQ1NzQyYTUxNWJiM2IyM2I4MDI0MQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjU3OjIxIDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgTWFrZSAsY29uZmlnLm1rIGFuZCBsaW5rIGZpbGUgZm9yIHRoZSBtcGM3NDQ4aHBjMiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2NDExYzBjM2JiYzc5ZjliYThhZWY1ODI5NmE0MmQ4ZjlkOGEwYTYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo1NTowNCAyMDA2ICswODAwCgogICAgQWRkICBtcGM3NDQ4aHBjMiAgKG1wYzc0NDggKyB0c2kxMDgpICBib2FyZCBhc3NvY2lhdGVkIGNvZGUgc3VwcG9ydC4KICAgIFRoZSBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0IGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjI1YmI1ZGRiNTBiMjQzZjkzMTI2MmNhOGM0Njk1NjQwOTQ3MTkxNwpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjUyOjIxIDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgVGhlIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgbG93IGxldmVsIGFzc2VtYmxlIGxhbmd1YWdlIGluaXQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjNTI3ODNiM2QwMjRlMTUzYzQ5NzJiOTczMzJlMzE0YmMzYmRjNDYKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo0OTo1MSAyMDA2ICswODAwCgogICAgR2VuZXJhbCBjb2RlIG1vZGlmaWNhdGlvbiBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQgc3VwcG9ydC4KICAgIDEuIEFkZCA3NDQ3QSBhbmQgNzQ0OCBwcm9jZXNzb3Igc3VwcG9ydC4KICAgIDIuIEFkZCB0aGUgZm9sbG93aW5nIGZsYWdzLgoKICAgIENGR19DT05GSUdfQlVTX0NMSyA6IElmIHRoZSA3NHh4IGJ1cyBmcmVxdWVuY3kgY2FuIGJlIGNvbmZpZ3VyZWQgZHluYW1pY2FsbHkKICAgIChzdWNoIGFzIGJ5IHN3aXRjaCBvbiBib2FyZCksIHRoaXMgZmxhZyBzaG91bGQgYmUgc2V0LgoKICAgIENGR19FWENFUFRJT05fQUZURVJfUkVMT0NBVEU6IElmIGFuIGV4Y2VwdGlvbiBvY2N1cnMgYWZ0ZXIgdGhlIHUtYm9vdAogICAgcmVsb2NhdGVzIHRvIFJBTSwgdGhpcyBmbGFnIHNob3VsZCBiZSBzZXQuCgogICAgQ0ZHX1NFUklBTF9IQU5HX0lOX0VYQ0VQVElPTjogSWYgdGhlIHByaW50IG91dCBmdW5jdGlvbiB3aWxsIGNhdXNlIHRoZQogICAgc3lzdGVtIGhhbmcgaW4gZXhjZXB0aW9uLCB0aGlzIGZsYWcgc2hvdWxkIGJlIHNldC4KCiAgICBUaGVyZSBpcyBhIGRlc2lnbiBpc3N1ZSBmb3IgdHNpMTA4LzEwOSBwY2kgY29uZmlndXJlICByZWFkLiBXaGVuIHBjaSBzY2FuCiAgICB0aGUgc2xvdHMsIGlmIHRoZXJlIGlzIG5vIHBjaSBjYXJkLCB0aGUgdHNpMTA4Lzkgd2lsbCBjYXVzZSBhIG1hY2hpbmUKICAgIGNoZWNrIGV4Y2VwdGlvbiBmb3IgbXBjNzQ0OCBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2OTM2NmJmNDJmMjJkNjdlZmNlOGRhM2Y4YzQwYTQzZDRhM2MyNjk1CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6MzQ6NDcgMjAwNiArMDgwMAoKICAgIEFkZCBSRUFETUUgZmlsZSBmb3IgbXBjNzQ0OGhwYzIgYm9hcmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjU3MjFiNWNlYzJiZTRiY2U3OWNmYWRlMTdlYzhmNmFhMWU2NzUyNgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMjowNDozOCAyMDA2ICswMTAwCgogICAgRmluaXNoIHVwIHN1cHBvcnQgZm9yIE1hcmVsVjM4QiBib2FyZAogICAgIC0gYWRkIHdhdGNoZG9nIHN1cHBvcnQKICAgICAtIGVuYWJsZSBHUElPX1dLVVBfNyBwaW4gZm9yIGlucHV0CiAgICAgLSBjb2RlIGNsZWFudXAKCmNvbW1pdCBmZmExNTBiYzkwYzk0M2NhMjY1MTcwYmQxYmUzZjI5MzY3NGRkNWM3CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAxOjQ1OjQ2IDIwMDYgKzAxMDAKCiAgICAtIEZpeCBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgdXNlIG9mIEVMREsgNCB3aGVuIGNvbXBpbGluZyBmb3IgTWFyZWxWMzhCOgoJICAqIHJlbW92ZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyBldGhhZGRyLmMKCSAgKiBhZGp1c3QgbGlua2VyIHNjcmlwdCAoZml4ZXMgYSBjcmFzaCByZXN1bHRpbmcgZnJvbSBpbmNvcnJlY3QKCSAgZGVmaW5pdGlvbiBvZiBfX3VfYm9vdF9jbWRfc3RhcnQpCiAgICAtIFNvbWUgTWFyZWxWMzhCIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBkYWU4MGYzY2FmOTc1NGE2ZGQzZGRmM2NmOTAzZDBjNDZjYmQ0Mzg1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAxOjM4OjE2IDIwMDYgKzAxMDAKCiAgICAtIEFkZCBNUEM1WFhYIHJlZ2lzdGVyIGRlZmluaXRpb24gTVBDNVhYWF9XVV9HUElPX0RBVEFfSSBhbmQgY2hhbmdlIHRoZQogICAgICBNUEM1WFhYX1dVX0dQSU9fREFUQSBtYWNybyB0byBNUEM1WFhYX1dVX0dQSU9fREFUQV9PIChwZXIgTVBDNTIwMCBVc2VyJ3MKICAgICAgTWFudWFsKS4gUmVwbGFjZSB0aGUgdXNlcyBvZiBNUEM1WFhYX1dVX0dQSU9fREFUQSB3aXRoCiAgICAgIE1QQzVYWFhfV1VfR1BJT19EQVRBX08gZm9yIGFmZmVjdGVkIGJvYXJkcy4KCiAgICAtIEFkZCBkZWZpbnRpb25zIGZvciBzb21lIE1QQzVYWFggR1BJTyBwaW5zLgoKY29tbWl0IDgyZDljOWVjMjlhMWJlYzFiMDNiYTYxNjQyNWViYWVkMjMxMDcyYzgKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6MzQ6MjkgMjAwNiArMDEwMAoKICAgIENoYW5nZWQgTWFyZWxWMzhCIGJvYXJkIG1ha2UgdGFyZ2V0IHRvIGxvd2VyY2FzZS4gQ29uZmlnIGZpbGUgY2xlYW51cC4KCmNvbW1pdCAxOTU0YmU2ZTljOTQyMWI0NWQwYTlkMDViMTAzNTZhY2M3NTYzMTUwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjkgMDE6MDM6NTEgMjAwNiArMDIwMAoKICAgIEF1dG9tYXRpY2FsbHkgYWRqdXN0IEFSRkxBR1Mgc28gIm1ha2UgLXMiIGlzIHJlYWxseSBzaWxlbnQuCgpjb21taXQgZmFlNjg0ZTg5ODQ0ODU2MzgzYmRmMTAxNDQwODg5NTU3ZGYzZTZiMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAxNjo0NTowMCAyMDA2ICswMjAwCgogICAgW1BBVENIXSBvbWFwOTI1LmM6IFJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEyNjU1ODE1MDJhYjhlYThjMDhlOGVkYmU5YmY2NGZiZDYyZmQ3NzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMTc6MTI6NTggMjAwNiArMDIwMAoKICAgIFtQQVRDSF0gQWRkIHNvbWUgbWlzc2luZyBtYWNodHlwZXMgZm9yIG5ldHN0YXIgJiB2b2ljZWJsdWUgYm9hcmRzCgogICAgVXNlIE1BQ0hfVFlQRV9ORVRTVEFSIGFuZCBNQUNIX1RZUEVfVk9JQ0VCTFVFIGRlZmluZXMgaW5zdGVhZCBvZgogICAgbnVtYmVycyBpbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NTZmMDU0NDEwY2VmNTJkODY4ZmViMzMwMTY4YjJhNGM0MDkxMzI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDE1OjU1OjUyIDIwMDYgKzAyMDAKCiAgICBbUEFUQ0hdIE5BTkQ6IFBhcnRpdGlvbiBuYW1lIHN1cHBvcnQgYWRkZWQgdG8gTkFORCBzdWJzeXN0ZW0KCiAgICBjaHBhcnQsIG5ib290IGFuZCBOQU5EIHN1YnN5c3RlbSByZWxhdGVkIGNvbW1hbmRzIG5vdyBhY2NlcHQgYWxzbyBwYXJ0aXRpb24KICAgIG5hbWUgdG8gc3BlY2lmeSBvZmZzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA3YTY5YTE4YzJlY2ZkYTkwNDIzMWZkZjIzZTI1MjNlYTc3OTJlYjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyOTo0NCAyMDA2ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCAyNzUxYTk1YWJkMWI5NjkxMTA4MWMzNTdlOTZhMTJmYTk3YjQwZGVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDI6Mjk6MTQgMjAwNiArMDIwMAoKICAgIEVuYWJsZSBjb21tYW5kbGluZSBlZGl0aW5nIGFuZCBodXNoIHNoZWxsIG9uIGFsbCBUUU0gYm9hcmRzLgoKY29tbWl0IDgwNzhmMWE1ZjYzYTczOWI4NTMzNDc4ZjZjMmI2MmZiMWUyZjc5ZDcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyODowMiAyMDA2ICswMjAwCgogICAgUkVBRE1FIHNheXMgQ0ZHX0FVVE9fQ09NUExFVEUsIGJ1dCBvY2RlIHVzZXMgQ09ORklHX0FVVE9fQ09NUExFVEUKCmNvbW1pdCA0NzFhN2JlN2EwNDJlOTVlNDQwZjVkZTk2OWM5NzY1MjE0YWU4ZDZlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMToxNDozMiAyMDA2ICswMjAwCgogICAgQ2hlY2sgZm9yIGlsbGVnYWwgY2hhcmFjdGVyICc9JyBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lcy4KCiAgICBNYWtlIHN1cmUgdGhlIHN0cmluZyBwYXNzZWQgYXMgdmFyaWFibGUgbmFtZSBkb2VzIG5vdCBjb250YWluIGEgJz0nCiAgICBjaGFyYWN0ZXIuIFRoaXMgbm90IG9ubHkgcHJldmVudHMgdGhlIGNvbW1vbiBlcnJvciBvciB0eXBpbmcKICAgICJzZXRlbnYgZm9vPWJhciIgaW5zdGVhZCBvZiAic2V0ZW52IGZvbyBiYXIiLCBidXQgKG1vcmUgaW1wb3J0YW50bHkpCiAgICBhbHNvIGNsb3NlcyBhIGJhY2tkb29yIHdoaWNoIGFsbG93ZWQgdG8gZGVsZXRlIHdyaXRlLXByb3RlY3RlZAogICAgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBmb3IgZXhhbXBsZSBieSB1c2luZyAic2V0ZW52IGV0aGFkZHI9Ii4KCmNvbW1pdCAxOTk3M2I2YWQ5ODYzYTU2ZjVjNWZiY2ZkOTBlMjBhYjI0OTBhMmMyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMDA6Mzg6MzkgMjAwNiArMDIwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBlMTE4ODdhNzdkODEwNzc0MTZhMmQxYzVlMDM1NDkxNmZlZThjMDM0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTc6NTU6MzEgMjAwNiArMDIwMAoKICAgIERvbid0IHBhc3MgYW55IGRlYnVnIG9wdGlvbnMgZGlyZWN0bHkgdG8gdGhlIGFzc2VtYmxlcgoKICAgIFdoZW4gcGFzc2luZyB0aGUgLWcgb3B0aW9uIHRvIGdjYywgZ2NjIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBhCiAgICBzdWl0YWJsZSAtLWc8Zm9ybWF0PiBvcHRpb24gdG8gcGFzcyBvbiB0byB0aGUgYXNzZW1ibGVyLgogICAgVGh1cywgdGhlcmUncyBubyBwb2ludCBpbiBmb3JjaW5nIGEgc3BlY2lmaWMgZGVidWcgb3B0aW9uIG9uIHRoZQogICAgYXNzZW1ibGVyIHVzaW5nIHRoZSAtV2EgbWVjaGFuaXNtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGVhMDhmZjZlMTRmOWViYjhjMDdjZmE3OWM1MWVmNTQwZWIwODczOTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI3IDA3OjQ3OjIyIDIwMDYgLTA1MDAKCiAgICBNUEM4Nnh4OiBDbGVhbmVkIHVwIHVudXNlZCBhbmQgY29uZGl0aW9uYWxseSB1c2VkIGxvY2FsIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzODkzNmNkYWU0NmJmZDI2MjNmZjgzZjZjZTliNjE2ZDM2YWIwZjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAyNyAxMTo1NToyMSAyMDA2ICswMjAwCgogICAgRml4ICJhciIgZmxhZ3MgaW4gc29tZSBNYWtlZmlsZXMgdG8gYWxsb3cgZm9yIHNpbGVudCAibWFrZSAtcyIKCmNvbW1pdCA0NjUzZjkxYzEzZWQ1MWMyMWNjNGMzODU1NzQ1ZDY5YTNmYjE4MTdmCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTQ6Mzg6MjUgMjAwNiAtMDQwMAoKICAgIEZpeCBUU0VDIGRyaXZlciAobm93IGZvciByZWFsKTogYXZvaWQgY3Jhc2hlcyBpZiBQSFkgaXMgbm90IGF0dGFjaGVkCiAgICB0byBhIFRTRUMgKGUuZy4gYSBzd2l0Y2ggaXMgY29ubmVjdGVkIHZpYSBSTUlJKSBvcgogICAgaWYgdGhlIFBIWSBpcyBkZWZlY3RpdmUvaW5jb3JyZWN0bHkgY29uZmlndXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBiOTg1YjVkNmU0ZmI4OGY1MDhmN2FhMGYxMjZjMmUyN2FkYTJiOTk5CkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBPY3QgMjYgMTQ6Mzg6MjUgMjAwNiAtMDQwMAoKICAgIEZpeCBUU0VDIGRyaXZlcjogYXZvaWQgY3Jhc2hlcyBpZiBQSFkgaXMgbm90IGF0dGFjaGVkCiAgICB0byBhIFRTRUMgKGUuZy4gYSBzd2l0Y2ggaXMgY29ubmVjdGVkIHZpYSBSTUlJKSBvcgogICAgaWYgdGhlIFBIWSBpcyBkZWZlY3RpdmUvaW5jb3JyZWN0bHkgY29uZmlndXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCAyYjJhNDBiZWJiZjE4MjI1MDZlODBlNjMxZDcyNTNlNjBmMGUwZmU2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVRodSBPY3QgMjYgMTY6MjQ6MzEgMjAwNiArMDIwMAoKICAgIENvZGUgY2xlYW51cC4KCmNvbW1pdCA1ZTNiMGJjMTlmMDdlZDI3N2Q4NTMyNGFkMDQyNzY0MmM4OTgxYmFmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBPY3QgMjUgMTU6NDg6NTkgMjAwNiArMDIwMAoKICAgIEZpbmlzaCB1cCBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDAwL0FUU1RLMTAwMiBib2FyZHMKCiAgICBBZGQgYXRzdGsxMDAyX2NvbmZpZyB0YXJnZXQgdG8gTWFrZWZpbGUgYW5kIG1vdmUgdGhlIEFWUjMyIHNlY3Rpb24KICAgIGRvd24gYmVsb3cgQmxhY2tmaW4gc28gdGhhdCBpdCBkb2Vzbid0IGVuZCB1cCBpbiB0aGUgbWlkZGxlIG9mCiAgICBNSVBTLgoKICAgIERyb3AgdGhlIGF1dG9nZW5lcmF0ZWQgbGlua2VyIHNjcmlwdCB0aGluZyBmb3Igbm93LiBXaWxsIGhhdmUgdG8KICAgIHJldmlzaXQgaG93IHRvIGhhbmRsZSBjaGlwcyB3aXRoIGRpZmZlcmVudCBmbGFzaCBhbmQgUkFNIGxheW91dAogICAgbGF0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzc2Zjk1MWE3NDdjZmI4N2JhODI2ZWY0NWI1YWVhODJkNWI1ZGJiNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjQgMjM6NDc6MzcgMjAwNiAtMDUwMAoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIE11bHRpLUltYWdlIGZpbGVzIHRoYXQgY29udGFpbiBhIGRldmljZSB0cmVlCgogICAgSWYgYSBNdWx0aS1JbWFnZSBmaWxlIGNvbnRhaW5zIGEgdGhpcmQgaW1hZ2Ugd2UgdHJ5IHRvIHVzZSBpdCBhcyBhCiAgICBkZXZpY2UgdHJlZS4gIFRoZSBkZXZpY2UgdHJlZSBpbWFnZSBpcyBhc3N1bWVkIHRvIGJlIHVuY29tcHJlc3NlZCBpbiB0aGUKICAgIGltYWdlIGZpbGUuICBXZSBhdXRvbWF0aWNhbGx5IGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgZGV2aWNlIHRyZWUgaW4gbWVtb3J5CiAgICBhbmQgcHJvdmlkZSBhbiA4ayBwYWQgdG8gYWxsb3cgbW9yZSB0aGFuIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgZ3Jvd3RoLgoKICAgIEFkZGl0aW9uYWxseSwgYSBkZXZpY2UgdHJlZSB0aGF0IHdhcyBjb250YWluZWQgaW4gZmxhc2ggd2lsbCBub3cgYXV0b21hdGljYWxseQogICAgZ2V0IGNvcGllZCB0byBzeXN0ZW0gbWVtb3J5IGFzIHBhcnQgb2YgYm9vdC4gIFByZXZpb3VzbHkgYW4gZXJyb3Igd2FzCiAgICByZXBvcnRlZCBpZiBvbmUgdHJpZWQgdG8gYm9vdCBhIGRldmljZSB0cmVlIHRoYXQgd2FzIGluIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgN2M1MmM0Yjk0M2ZmNTJiYmU4Nzk2YTdlMmQzZTQ3NmNlYWYzZjUxMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMjE6MzU6NTUgMjAwNiArMDIwMAoKICAgIFN3aXRjaCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBDSEFOR0VMT0cgZmlsZS4KICAgICh1c2UgIm1ha2UgQ0hBTkdFTE9HIiB0byB1cGRhdGUgaXQgZnJvbSB0aW1lIHRvIHRpbWUpCgpjb21taXQgN2FkZTBjNjM0YTk3OWMzMmZhOTFhNzRlOGY1Nzc1ZjI0NjUxZmJlNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxODowNjo0OCAyMDA2ICswMjAwCgogICAgRml4IGJ1ZyBpbiBQUEM0NDAgTkFORCBkcml2ZXIgY3B1L3BwYzR4eC9uZGZjLmMKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMjQgT2N0IDIwMDYKCmNvbW1pdCA4YWUzYjcxM2IyMjg2ZTBjMzIxM2I3ODAyMDYyZTRjMTU5OTAxMGRlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTc6MjQ6NTUgMjAwNiArMDIwMAoKICAgIE1lcmdlIHdpdGggL2hvbWUvd2QvZ2l0L3UtYm9vdC9tYXN0ZXIKCmNvbW1pdCA0N2E2OTg5YzEwNjg1ZDJhYjNlZmNmOTUyMjhjZTUwZDJhNDk2ZDNlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTU6MzI6NTcgMjAwNiArMDIwMAoKICAgIENvZGUgY2xlYW51cAoKY29tbWl0IDNhNzhlM2U3NWI2MzNlY2I2NDEzMTE0ZmZkMTFlMmYwMDBjNGYxMWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDo1MTozNiAyMDA2ICswMjAwCgogICAgTW92ZSBhdHN0azEwMDAgZmlsZXMgaW50byB2ZW5kb3Igc3BlY2lmaWMgZGlyZWN0b3J5LgogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAxMiBTZXAgMjAwNgoKY29tbWl0IDZjY2VjNDQ5MmU3NzQyOGZkNmVhZmQzZGZlOTRmYmRmMDhlOTFkMzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDo0MjozNyAyMDA2ICswMjAwCgogICAgQWRkIEFUU1RLMTAwMCBhbmQgQVRTVEsxMDAyIGJvYXJkIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMDYgU2VwIDIwMDYKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFUU1RLMTAwMCB3aXRoIHRoZSBBVFNUSzEwMDIgQ1BVCiAgICBkYXVnaHRlcmJvYXJkLgoKICAgIEFUU1RLMTAwMCBpcyBhIGZ1bGwtZmVhdHVyZWQgZGV2ZWxvcG1lbnQgYm9hcmQgZm9yIEFUMzJBUCBDUFVzLiBJdAogICAgaGFzIHR3byBldGhlcm5ldCBwb3J0cywgYSBoaWdoIHF1YWxpdHkgUVZHQSBMQ0QgcGFuZWwsIGEgbG91ZHNwZWFrZXIsCiAgICBhbmQgY29ubmVjdG9ycyBmb3IgVVNBUlQsIFBTLzIsIFZHQSwgVVNCLCBNTUMvU0QgY2FyZHMgYW5kCiAgICBDb21wYWN0Rmxhc2ggY2FyZHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoaXMgcGFnZToKCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcHJvZHVjdHMvdG9vbHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBUaGUgQVRTVEsxMDAyIGlzIGEgZGF1Z2h0ZXJib2FyZCBmb3IgdGhlIEFUU1RLMTAwMCBzdXBwb3J0aW5nIHRoZQogICAgQVQzMkFQNzAwMCBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGY5M2FlNzg4YzM2NDBmY2RlNWRiMzgzNDcxZDQ1NTQ4ZmY0MDYwZDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNDozMToyNCAyMDA2ICswMjAwCgogICAgQWRkIGNvbW1vbiBzZXJpYWwgZHJpdmVyIGZvciBBdG1lbCBBVDMyIGFuZCBBVDkxIGNoaXBzCiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDA2IFNlcCAyMDA2CgogICAgVGhpcyBpcyBhIGZpcnN0IGF0dGVtcHQgYXQgY3JlYXRpbmcgYSBjb21tb24gc2VyaWFsIGRyaXZlciBmb3IgQXRtZWwKICAgIGNoaXBzLiBGb3Igbm93LCBpdCBzdXBwb3J0cyB0aGUgQVQzMkFQNzAwMCBBVlIzMiBjaGlwLCBidXQgaXQgc2hvdWxkCiAgICBiZSBwb3NzaWJsZSB0byBzdXBwb3J0IEFUOTFSTTkyMDAgYW5kIG90aGVyIEFSTS1iYXNlZCBjaGlwcyB3aXRoIHNvbWUKICAgIG1pbm9yIG1vZGlmaWNhdGlvbnMuCgogICAgVGhlcmUncyBub3RoaW5nIGZ1bmRhbWVudGFsbHkgQVZSMzItc3BlY2lmaWMgaW4gdGhpcyBkcml2ZXIsIGJ1dCBpdAogICAgZG9lcyB1c2Ugc29tZSBmZWF0dXJlcyB3aGljaCBhcmUgY3VycmVudGx5IG9ubHkgZGVmaW5lZCBmb3IgdGhlCiAgICBBVDMyQVAgQ1BVIHBvcnQ6CiAgICAgICogcG1fZ2V0X2Nsb2NrX2ZyZXE6IE9idGFpbiB0aGUgY2xvY2sgZnJlcXVlbmN5IG9mIGEgZ2l2ZW4gZG9tYWluCiAgICAgICogZ2QtPmNvbnNvbGVfdWFydDogQSAic3RydWN0IGRldmljZSIgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dAoJcmVnaXN0ZXIgbWFwcGluZ3MsIGdwaW8gcmVzb3VyY2VzIGFuZCBjbG9ja3MgYXNzb2NpYXRlZCB3aXRoIHRoZQoJVUFSVCBkZXZpY2UuCgogICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlc2UgZmVhdHVyZXMsIHBsZWFzZSBzZWUgdGhlICJBVDMyQVAKICAgIENQVSIgcGF0Y2guCgpjb21taXQgNzJhMDg3ZTA0NzA1YzI2Y2FkOTgyODc5ZWJkMDZiNTI4MWJmODI1YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjI3OjM1IDIwMDYgKzAyMDAKCiAgICBBZGQgQVQzMkFQIENQVSBhbmQgQVQzMkFQNzAwMCBTb0Mgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAwNiBTZXAgMjAwNgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQVQzMkFQIENQVSBmYW1pbHkgYW5kIHRoZSBBVDMyQVA3MDAwCiAgICBjaGlwLCB3aGljaCBpcyB0aGUgZmlyc3QgY2hpcCBpbXBsZW1lbnRpbmcgdGhlIEFWUjMyIGFyY2hpdGVjdHVyZS4KCiAgICBUaGUgQVQzMkFQIENQVSBjb3JlIGlzIGEgaGlnaC1wZXJmb3JtYW5jZSBpbXBsZW1lbnRhdGlvbiBmZWF0dXJpbmcgYQogICAgNy1zdGFnZSBwaXBlbGluZSwgc2VwYXJhdGUgaW5zdHJ1Y3Rpb24tIGFuZCBkYXRhIGNhY2hlcywgYW5kIGEgTU1VLgogICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhlICJBVlIzMiBBUCBUZWNobmljYWwgUmVmZXJlbmNlIjoKCiAgICBodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcmVzb3VyY2VzL3Byb2RfZG9jdW1lbnRzL2RvYzMyMDAxLnBkZgoKICAgIEluIGFkZGl0aW9uIHRvIHRoaXMsIHRoZSBBVDMyQVA3MDAwIGNoaXAgY29tZXMgd2l0aCBhIGxhcmdlIHNldCBvZgogICAgaW50ZWdyYXRlZCBwZXJpcGhlcmFscywgbWFueSBvZiB3aGljaCBhcmUgc2hhcmVkIHdpdGggdGhlIEFUOTEgc2VyaWVzCiAgICBvZiBBUk0tYmFzZWQgbWljcm9jb250cm9sbGVycyBmcm9tIEF0bWVsLiBGdWxsIGRhdGEgc2hlZXQgaXMKICAgIGF2YWlsYWJsZSBoZXJlOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9yZXNvdXJjZXMvcHJvZF9kb2N1bWVudHMvZG9jMzIwMDMucGRmCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2I2NGZlZjMzYzY2YmU2NDg4MjZjMGZmOTc1ODI5OGVmMTNkMDYwNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjIxOjE2IDIwMDYgKzAyMDAKCiAgICBBZGQgQVZSMzIgYXJjaGl0ZWN0dXJlIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgNiBTZXAgMjAwNiAxNjoyMzowMiArMDIwMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBjb21tb24gaW5mcmFzdHJ1Y3R1cmUgY29kZSBmb3IgdGhlIEF0bWVsIEFWUjMyCiAgICBhcmNoaXRlY3R1cmUuIFNlZSBkb2MvUkVBRE1FLkFWUjMyIGZvciBkZXRhaWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDJkYTJkOWE0NzY2MDYzYjk4NDhmM2EzNWFkNjAyNTQ5OWNmODcyNjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxMzo1NzozMyAyMDA2ICswMjAwCgogICAgVXNlIC1nIGluc3RlYWQgb2YgLWdzdGFicyBpbiBBRkxBR1NfREVCVUcKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMzAgQXVnIDIwMDYKCiAgICBJbiBjb25maWcubWssIC1XYSwtZ3N0YWJzIGlzIHVuY29uZGl0aW9uYWxseSBhcHBlbmRlZCB0byBBRkxBR1Mgbm8KICAgIG1hdHRlciB3aGF0IHRoZSB0YXJnZXQncyBwcmVmZXJyZWQgZGVidWdnaW5nIGZvcm1hdCBpcy4gVGhpcyBwYXRjaAogICAgc2ltcGx5IHJlcGxhY2VzIC1nc3RhYnMgd2l0aCAtZywgc28gdGhhdCB0aGUgZGVmYXVsdCBkZWJ1Z2dpbmcgZm9ybWF0CiAgICBmb3IgdGhlIGFyY2hpdGVjdHVyZSBpcyB1c2VkLgoKY29tbWl0IDk2NTgyOTg3MjE2OWMyOTk2MDIzODQwZDk4ZTFkODVhZDE0OGQ2MjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxMzo1NToxOCAyMDA2ICswMjAwCgogICAgRml4L3dvcmthcm91bmQgYnJva2VuIGRlcGVuZGVuY3kgaGFuZGxpbmcgd2l0aCBtYWtlIDMuODEKICAgIEJhc2VkIG9uIHBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMjkgQXVnIDIwMDYgMTE6MjA6MzkgKzAyMDAKCmNvbW1pdCA4MzE4ZmJmOGNjMzA0MThiNjIxZWE5ZjM5Yjg0YjRjMWEwOGYwMDNhCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE9jdCAyMyAyMjoxNzowNSAyMDA2ICswMjAwCgogICAgRml4IHNlcXVvaWEgc2VwYXJhdGUgb2JqZWN0IGRpcmVjb3J5IGJ1aWxkaW5nIHByb2JsZW1zLgoKY29tbWl0IDNkZmE5Y2ZkY2VlNzhiMzBkYTM0MzIzMThiMzI4MjFmZmFiZTk3NGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE3OjE2OjM1IDIwMDYgLTA1MDAKCiAgICBVc2UgZ2VuZXJpYyBJMkMgcmVnaXN0ZXIgYmxvY2sgb24gODV4eCBhbmQgODZ4eC4KCiAgICBSZXBsYWNlIHByaXZhdGUgSU1NQVAgSTJDIHN0cnVjdHVyZXMgd2l0aCBnZW5lcmljIHJlZyBibG9jawogICAgYW5kIGFsbG93IDg2eHggdG8gaGF2ZSBtdWx0aXBsZSBJMkMgZGV2aWNlIGJ1c3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY1MDEyODI3ZGYxMWNhMGM5YmUxZGY1ZjhiMTUzZTE4OGRjMmZhN2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE1OjU0OjM0IDIwMDYgLTA1MDAKCiAgICBGaXggY29tcGlsYXRpb24gd2FybmluZ3Mgb24gYSBmZXcgODV4eCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMDQ3NjcyNjg0Y2Y4NWNiNmY5NmExZmJjOTkzMTgwYWFhZjE5YTk5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyMCAxNTo1MDoxNSAyMDA2IC0wNTAwCgogICAgQ29udmVydGVkIGFsbCA4NXh4IGJvYXJkcyB0byB1c2UgYSBjb21tb24gRlNMIEkyQyBkcml2ZXIuCiAgICBJbnRyb2R1Y2VkIENPRklHX0ZTTF9JMkMgdG8gc2VsZWN0IHRoZSBjb21tb24gRlNMIEkyQyBkcml2ZXIuCiAgICBBbmQgcmVtb3ZlZCBoYXJkIGkyYyBwYXRoIGZyb20gYSBmZXcgdS1ib290LmxkcyBzY2lwdHMgdG9vLgogICAgTWlub3Igd2hpdGVzcGFjZSBjbGVhbnVwcyBhbG9uZyB0aGUgd2F5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQ0NWY2OWUzNjJiMDU4OTJjOWU5MmE3OTA3ZTU4MjA5OTU2MTJhYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTI6MDI6MjQgMjAwNiAtMDUwMAoKICAgIFJld3JpdGUgYSBzZXJpZXMgb2YgZ290byBzdGF0ZW1lbnRzIGFzIGEgc2VxdWVuY2VzIG9mCiAgICBjb25kaXRpb25hbCBleHByZXNzaW9ucyBpbnN0ZWFkLgoKICAgIFVzZSBjb25zaXN0ZW50IHJldHVybiBjb2RlIDAvLTEgZm9yIGdvb2QvYmFkIGluZGljYXRvcnMuCgogICAgSW5jbHVkZSBvbmUgZmV3ZXIgZmlsZSBpZiB0aGUgZHJpdmVyIGlzbid0IHVzZWQgYXQgYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzIzN2MwMzNiMDJmZTI5NTg4MDQzNWYxZWI4MDgxOWEwYzk4NzUzMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTE6MDI6MTYgMjAwNiAtMDUwMAoKICAgIE1vdmVkIGkyYyBkcml2ZXIgb3V0IG9mIGNwdS9tcGM4Nnh4L2kyYy5jIGludG8gZHJpdmVycy9mc2xfaTJjLmMKCiAgICBpbiBhbiBlZmZvcnQgdG8gYmVnaW4gdG8gdW5pZnkgdGhlIHVtcHRlZW4gRlNMIEkyQyBkcml2ZXJzIHRoYXQKICAgIGFyZSBhbGwgb3RoZXJ3aXNlIHZlcnkgc2ltaWxhci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEzYTdmY2RmMzdmNmVhOTQyOWFlMDRjOWRmNjdmODkzMzY0Y2ZlNGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDE5IDExOjMzOjUyIDIwMDYgLTA1MDAKCiAgICAqIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzIGZvciBnY2MgNC4wCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZjllMWY1YjllNmY5Y2U4MTBmNWU4YmYyOTYxYzk1NDJhNTg2NWMyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDE3IDA2OjE0OjMxIDIwMDYgKzAyMDAKCiAgICBBZGQgbW9uaXRvciBmdW5jdGlvbnMgZm9yIGluZGlyZWN0IGFjY2VzcyB0byBQUEM0NDAgRENSJ3MKICAgIFBhdGNoIGJ5IExlb25pZCBCYXJ5dWRpbiwgMTIgT2N0IDIwMDYKCmNvbW1pdCA1ZjMyNDlhMGExNjhlNDQ2YTRjYzk2NjliMmJjZTBiYzQ1NmYwYTA5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMyAxNjo0Nzo1MyAyMDA2IC0wNTAwCgogICAgRml4ZWQgbGVhZGluZyB3aGl0ZXNwYWNlIGlzc3Vlcy4KICAgIFJlbW92ZWQgc3B1cmlvdXMgTEFXQVIgdGhpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZWU5MGNiNzdlMDFkNmU4Y2NkMzdlMWJkOTY2Nzg1OTc4NzVjMzkxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxMiAxMDo0MjozNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVlZGVkIGluY2x1ZGUgZmlsZXMgYW5kIGxvY2FsIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWVhZjNhNWZmNDk2MGE0NmYzYTkwNjM1NjhiYTJhZjc4ODNmMDdjNQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIE9jdCAxMCAwMDoyMzozMiAyMDA2IC0wNjAwCgogICAgRml4IHBvc3NpYmxlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZy4KCiAgICBXaGVuIENPTkZJR19PRl9GTEFHX1RSRUUgaXMgc2V0LCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIHRoYXQgJ2xlbicgaW4KICAgIGRvX2Jvb3RtX2xpbnV4KCkgbWF5IGJlIHVuaW5pdGlhbGl6ZWQuICBUaGVyZSBpcyBubyBwb3NzaWJpbGl0eSBpbiB0aGUKICAgIGN1cnJlbnQgY29kZSB0aGF0IGxlbiB3aWxsIGdldCB1c2VkIHVuaW5pdGlhbGl6ZWQsIGJ1dCB0aGlzIGZpeCBmb2xsb3dzCiAgICB0aGUgZXhpc3RpbmcgY29udmVudGlvbiBvZiBzZXR0aW5nIGJvdGggbGVuIGFuZCBkYXRhIHRvIHplcm8gYXQgdGhlIHNhbWUKICAgIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDczNzZlYjg3YWFhNjAxZjcyOGY5YjhlNWU5Y2QyNzExYTY3ZjUyOWUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDExIDE1OjEzOjAxIDIwMDYgLTA1MDAKCiAgICAqIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzIGZvciBnY2MgNC4wCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjY1MWJhYTM2NWU1NDQ3MjQ2YWFkNmE2MzNjY2Q2NjdjZjI0YTM5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAxMSAxMDoxMDo0MyAyMDA2IC0wNTAwCgogICAgTW92ZSAiYXIiIGZsYWdzIHRvIGNvbmZpZy5tayB0byBhbGxvdyBmb3Igc2lsZW50ICJtYWtlIC1zIgoKY29tbWl0IDFmZDU2OTlhNGEyNGY1YzFkYWIxYjMyZjQ4MGJhY2UxZWJiOWZjM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE5OjAzIDIwMDYgLTA1MDAKCiAgICBDb2Rpbmcgc3R5bGUgY2hhbmdlcyB0byByZW1vdmUgbG9jYWwgdmFyaWJsZSBibG9ja3MKICAgIGFuZCByZWZvcm1hdCBhIGJpdCBuaWNlci4KCmNvbW1pdCA4YjI4M2RiYjNhMDhkMWI4ZDQwNmJjMTVmMTE5ZTA4MWIzZTI2MDZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzoxNjowNCAyMDA2IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgaXNzdWVzLgoKY29tbWl0IDdiMzgyYjcxMjVmMjM5N2NjZTYzMjUzZGY2MmYxODNlM2RmYTI3NzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE0OjQ1IDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBpc3N1ZXMuCgpjb21taXQgZTEwMzkwZGRkNzM2YjBkYWQxNTI4ZWVjNGIwZmUzNWMwODI3MTM5YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MDY6NTMgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGlzc3Vlcy4KCmNvbW1pdCA4OTg3NWU5NmJhM2YwMjMxNTdiZjUwZDVmOGUzM2JmMjU0OTY0YTc2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzowMzo0MyAyMDA2IC0wNTAwCgogICAgUmFuIGxpbmRlbnQgYW5kIGNsZWFuZWQgdXAgd2hpdGVzcGFjZSBpc3N1ZXMuCiAgICBGb3JtYXQgZm9yIDgwLWNvbHVtbnMgdG9vLgoKY29tbWl0IDMzMzk2MWFlNzA5NWZjNjZkOGEwNDFmY2UxYWM5ZWU4NzNiMDlkODYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjAyOjIyIDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBhbmQgODAtY29sIGlzc3Vlcy4KCmNvbW1pdCA1YzkxMmNiMWMzMTI2NmM2NmNhNTliMzZmOWI2Zjg3Mjk2NDIxZDc1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzY6NTEgMjAwNiArMDIwMAoKICAgIENGR19OQU5EX1FVSUVUX1RFU1QgYWRkZWQgdG8gbm90IHdhcm4gdXBvbiBtaXNzaW5nIE5BTkQgZGV2aWNlCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgNWJjNTI4ZmE0ZGE3NTFkNDcyMzk3YjMwODEzNzIzOGE2NDY1YWZkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCA3IDExOjM1OjI1IDIwMDYgKzAyMDAKCiAgICBVcGRhdGUgQUxQUiBjb2RlIChOQU5EIHN1cHBvcnQgd29ya2luZyBub3cpCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgNzdkNTAzNDg0N2QzMjg3NTNiODBjNDZiODNmOTYwYTE0YTI2ZjQwZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCA3IDExOjMzOjAzIDIwMDYgKzAyMDAKCiAgICBSZW1vdmUgY29tcGlsZSB3YXJuaW5ncyBpbiBmcGdhIGNvZGUKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCBmMzQ0Mzg2N2U5MGQyOTc5YTdkZDFjNjViMGQ1Mzc3NzdlMWY5ODUwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzA6NTIgMjAwNiArMDIwMAoKICAgIEFkZCBDT05GSUdfQk9BUkRfUkVTRVQgdG8gY29uZmlndXJlIGJvYXJkIHNwZWNpZmljIHJlc2V0IGZ1bmN0aW9uCiAgICBQYXRjaCBieSBTdGVmYW4gUm9lc2UsIDA3IE9jdCAyMDA2Cgpjb21taXQgZjU1ZGYxODE4N2U3YTQ1Y2I3M2ZlYzQzNzBkMTIxMzVlNjY5MWFlMQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgU2VwIDI5IDA4OjIzOjEyIDIwMDYgKzAxMDAKCiAgICBGaXggbWlzc2luZyB0Q3ljbGUvbW9kZnJlcSBjYWxjdWxhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MjcyZGMyZjU4ZjI0NzNkODk5NWZjYzliOTE2NDQwY2ZiYTA4MGYwCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjMzOjM1IDIwMDYgLTA1MDAKCiAgICBVcGRhdGVkIGNvbmZpZyBoZWFkZXJzIHRvIGFkZCBkZWZhdWx0IEZEVC1iYXNlZCBib290aW5nCgpjb21taXQgMDlmM2UwOWU5ZWJjZmE3OTE5Y2E4OTMxYTRiNTUwNGZhZGQxZjFkMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAxMyAxMDozNDoxOCAyMDA2IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGVUU0VDIDMgJiA0IG9uIDg1NDggQ0RTCgogICAgKiBBZGRlZCBzdXBwb3J0IGZvciB1c2luZyBlVFNFQyAzIGFuZCBlVFNFQyA0IG9uIHRoZSA4NTQ4IENEUy4KICAgICAgVGhpcyB3aWxsIG9ubHkgd29yayBvbiByZXYgMS4zIGJvYXJkcyAoYnV0IGRvZXNuJ3QgYnJlYWsgb2xkZXIgYm9hcmRzKQogICAgKiBDbGVhbmVkIHVwIHNvbWUgY29tbWVudHMgdG8gcmVmbGVjdCB0aGUgZXhwYW5kZWQgcm9sZSBvZiB0c2VjCiAgICAgIGluIG90aGVyIHN5c3RlbXMKCmNvbW1pdCAwODRkNjQ4YjEwOWM4OTg0ZjgzNjc0MDQzYzFhN2ZhMzg4NWVmODAxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjMzOjU2IDIwMDYgLTA1MDAKCiAgICBBZGRlZCBjb2RlIHRvIHN1cHBvcnQgMi42LjE4IFBDSSBjaGFuZ2VzIGluIHUtYm9vdAoKICAgICogQWRkZWQgY29kZSB0byBzd2l6emxlIHRoZSBJUlEgbWFwIGZvciB0aGUgUENJCgpjb21taXQgYWZiZGM2NDlmODc1MWU0ZjRmMWE2ZjUyN2VkZmUxMzk3NzNmMmMxNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTkgMDk6MzQ6MTAgMjAwNiAtMDUwMAoKICAgIE1vZGlmaWVkIG1ha2VmaWxlIGZvciBuZXcgYnVpbGQgbWVjaGFuaXNtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDE0YmE2YTc5OGJlYjc1M2U3YTg2NDUwMDQxNGZjYzJkMTk4YjhiYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTQgMDg6NDA6MzYgMjAwNiAtMDUwMAoKICAgIEhhbmRsZSA4Nnh4IFNWUiB2YWx1ZXMgYWNjb3JkaW5nIHRvIHRoZSBuZXcgUmVmZXJlbmNlIE1hbnVhbC4KICAgIEJvdGggODY0MSBhbmQgODY0MUQgaGF2ZSBTVlIgPT0gMHg4MDkwLCBhbmQgYXJlIGRpc3Rpbmd1aXNoZWQKICAgIGJ5IHRoZSBieXRlIGluIGJpdHMgMTYtMjMgaW5zdGVhZC4KICAgIFRoYW5rcyB0byBKYXNvbiBKaW4gZm9yIG5vdGljaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODhjOGY0OTIxZmM0N2ZiMGViMjM4NGIxNjU4NmYxYmQ3ZjI3NWJlNwpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMjggMTQ6MjU6MzEgMjAwNiArMDgwMAoKICAgIEZpeGVkIGFuIE9GLXRyZWUgb2ZmLWJ5LW9uZSBidWcgd2hlbiBhZGRpbmcgYSBuZXcgcHJvcGVydHkgbmFtZS4KICAgIFRoaXMgYnVnIHdpbGwgY2F1c2UgdGhlIGtlcm5lbCBib290aW5nIHRvIHBhdXNlIGEgbG9uZyB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIDJmMTU3NzZjY2M2ZGMzMjM3N2Q4YmE5NjUyYjhmNTgwNTljMjdjNmQgY29tbWl0KQoKY29tbWl0IDliZmY3YTY5YTg4NWFkZWJiZDJiZDQ1OTkwNDk0ZWM0Y2Y5OThhMzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDI5IDExOjA1OjA5IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdHJhaWxpbmcgZW1wdHkgbGluZXMuCgpjb21taXQgY2Q2ZDczZDViODk1YTU5MzVhYzRmZGUwYTM1NjI4ODE0MmE1ODRlMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjkgMDk6NDg6NDkgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBib2d1cyBtc3luYyBhbmQgdXNlIHZvbGF0aWxlIGFzbS4KCmNvbW1pdCA3NzhkNDUwNDljZTU5MjdiNjViM2ZmMWQ4ZTY2OTJiNjU0YmRkNDllCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyOSAwODoxNzoxNCAyMDA2IC0wNTAwCgogICAgQWRkIG15c2VsZiBhcyBtYWludGFpbmVyIGZvciBNUEM4NjQxSFBDTi4KCmNvbW1pdCAyZjE1Nzc2Y2NjNmRjMzIzNzdkOGJhOTY1MmI4ZjU4MDU5YzI3YzZkCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyOCAxNDoyNTozMSAyMDA2ICswODAwCgogICAgRml4ZWQgYW4gT0YtdHJlZSBvZmYtYnktb25lIGJ1ZyB3aGVuIGFkZGluZyBhIG5ldyBwcm9wZXJ0eSBuYW1lLgogICAgVGhpcyBidWcgd2lsbCBjYXVzZSB0aGUga2VybmVsIGJvb3RpbmcgdG8gcGF1c2UgYSBsb25nIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NTY3ODA2YjY3ZDBhZTgzNDkzYWE4ODIzYWQzYjZjOTE0ZjU4MWQ3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAyNSAxNDozODozNCAyMDA2IC0wNDAwCgogICAgQ2hhbmdlIHJhbWRpc2thZGRyIGFuZCBkdGJhZGRyCiAgICBSZW1vdmUgUEVYIGZsdWZmIGNvbW1hbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyYjc4NDIxZDlkYjQ5YzIxYTgyMWFmOGExOWMyMWMxZjdkZmIyOWUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIzIDEzOjMyOjQ1IDIwMDYgLTA1MDAKCiAgICAqIEFub3RoZXIgc21hbGwgZml4IGZvciBib290aW5nIHdpdGggZGlzYWJsZV9vZgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGE3Y2MwZjIxOTE4ZTZlY2YwN2VkNTcwNzVkNjdkZjJjNGExMjk5YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTE6MDQ6NDMgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgYW5kIGxpbmRlbnQgbmV3IEFIQ0kgZHJpdmVyLgoKY29tbWl0IGRhYmY5ZWY4YzEwYjRkZWFkNWVmMjEwNmVmNzQyYjFjMDZiNTQyZGUKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8amFzb25AYnVzLmFwLmZyZWVzY2FsZS5uZXQ+CkRhdGU6CVdlZCBBdWcgMjMgMTk6MTU6MTIgMjAwNiArMDgwMAoKICAgIEFkZCBBSENJIGRlZmluZSBhbmQgc2F0YSBzdXBwb3J0IGZvciBNUEM4NjQxSFBDTiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5Okphc29uIEppbjxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NzgyYWM4MGIwMmYwZDAxYWZkMzA5ZTIyMDBkZDNjNzAzN2YyYmE0CkF1dGhvcjogSmluIFpoZW5neGlvbmcgPGphc29uQGJ1cy5hcC5mcmVlc2NhbGUubmV0PgpEYXRlOglXZWQgQXVnIDIzIDE5OjEwOjQ0IDIwMDYgKzA4MDAKCiAgICBBZGQgQUhDSSBzdXBwb3J0IHRvIHUtYm9vdAoKICAgIEFkZCBBSENJIHN1cHBvcnQgaW4gdS1ib290LCBlbmFibGUgdGhlIHNhdGEgZGlzayBjb250cm9sbGVycyB3aGljaAogICAgZm9sbG93aW5nIHRoZSBBSENJIHByb3RvY29sLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ4ZWEyYWNmNWYxMzdjYWU5OTQxN2RmNGY1NzNkMDM2ZWUzODQ2NjgKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDIzIDE3OjU0OjMyIDIwMDYgKzA4MDAKCiAgICBBZGQgZHRiIGJvb3QtdXAgcGFyYW1ldGVyIHRvIGRlZmF1bHQgYm9vdCBjb21tYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5Mzc3NWMyMDM2Yjk5YmFhMzkwZWE0MjVjNDc3MTg5NWJiYzYzYzQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE4OjI2OjA4IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIGV2ZW4gbW9yZSBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IGFlNjI0MTY4NWNiY2YwYzc5YTM2MzY1MzBkMmNlYWIxZmIyOTFhOTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE4OjA3OjAwIDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIG1vcmUgcG9vcmx5IGludHJvZHVjZWQgd2hpdGVzcGFjZS4KCmNvbW1pdCAyYzMzZThhMWM1MzViM2FlOTFjZjBiMjg0NDgwNjAwYmYzZjU3YzU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxNzo1NDowNSAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IDgwZTk1NWM3ZGQ5OGY0YjRmZDIzYzIxMTNjYWY3NWVkMmI3N2I1YjMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDEyOjI1OjI3IDIwMDYgLTA1MDAKCiAgICBHZW5lcmFsIGluZGVudCBhbmQgd2hpdGVzcGFjZSBjbGVhbnVwcy4KCmNvbW1pdCBmZmZmM2FlNTZmNTg0MmNhMzY3OWU0Y2U3OTIyYjgxOWE4N2FhZDlmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxMjowNjoxOCAyMDA2IC0wNTAwCgogICAgR2VuZXJhbCBpbmRlbnQgYW5kIHdoaXRlc3BhY2UgY2xlYW51cHMuCgpjb21taXQgNDFhMGU4YjMwNGQzZmY1NWZlMjdhMjMwNTA3YWFjNzk2ODQwMTZhYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTA6NDI6MjEgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgY29tcGlsZXIgd2FybmluZ3MuCgpjb21taXQgNWRlNjJjNDdhODYyOGIzZGE0ZDczZjdjMDcwMjdmMzJhMzM0MmQ0MApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMDk6MzE6NTkgMjAwNiAtMDUwMAoKICAgIEZpeCBkaXNhYmxlX29mIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3YTQ0OWM4YWMzOTY0MjBjYjI0MjYwZjcxN2VhOWU2ZmFhODIwNDcKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDA5OjIzOjU1IDIwMDYgLTA1MDAKCiAgICBTdXBwb3J0IGZvciBGRFQgaW4gdUltYWdlIGZvcm1hdCwgZXJyb3Igd2hlbiB1c2luZyBGRFQgZnJvbSBmbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzVjMjk5YzM4MzY5ZDAxYWRkZDVlMDU0YjhhMTYyMTdiNzBmNGE4NgpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTI6NTUgMjAwNiAtMDQwMAoKICAgIFVubG9jayBjYWNoZSBiZWZvcmUga2VybmVsIHN0YXJ0cyB1cCBmb3IgTVBDODZ4eAoKY29tbWl0IDY3MjU2Njc4ZjAwYzA5YjBhN2YxOWU4NjJlNWMxODQ3NTUzZDMxYmMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEzOjE1IDIwMDYgLTA0MDAKCiAgICBDb3B5IEdsb2JhbCBEYXRhIFBvaW50ZXIgdG8gcjI5IGZvciBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUgoKY29tbWl0IDFjOGY2ZDhmYjAyOGYxNTYwOTRkMDVmMmQxNDI5OGU2NDc5MzY0YWMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEyOjU1IDIwMDYgLTA0MDAKCiAgICBVbmxvY2sgY2FjaGUgYmVmb3JlIGtlcm5lbCBzdGFydHMgdXAgZm9yIE1QQzg2eHgKCmNvbW1pdCAwZDljY2M1NWVkZjlhN2YzYzViMmI2MjYzNTgwYTZlYThkNzAyYTA0CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNSAxNToxMzoxNSAyMDA2IC0wNDAwCgogICAgQ29weSBHbG9iYWwgRGF0YSBQb2ludGVyIHRvIHIyOSBmb3IgREVDTEFSRV9HTE9CQUxfREFUQV9QVFIKCmNvbW1pdCA4NmM4ZTE3ZjI1ZTk3MmE3ZTI3Mjk1MGEwNzM1ZmFkODRlMDgyYjg4CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNiAxMzo1OTo0NyAyMDA2IC0wNTAwCgogICAgKiBGaXggZGlzYWJsZV9vZiBib290aW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNWM3NTFlOWFkYzg2ZTIyZmUzYjViNDdjZjI4MDYzNzliNTc1ZGI3CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNiAxMDo1NDowOSAyMDA2IC0wNTAwCgogICAgKiBTdXBwb3J0IGZvciBGRFQgaW4gdUltYWdlIGZvcm1hdCwgZXJyb3Igd2hlbiB1c2luZyBGRFQgZnJvbSBmbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODk5NjIwYzJkNjZkNGVlZjNiMmEwMDM0ZDA2MmU3MWQ0NWQ4ODZjOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNSAxNDoyMjozNSAyMDA2ICswMjAwCgogICAgQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIEFMUFIgYm9hcmQgZnJvbSBQcm9kcml2ZQogICAgTkFORCBuZWVkcyBzb21lIGFkZGl0aW9uYWwgdGVzdGluZwogICAgUGF0Y2ggYnkgSGVpa28gU2Nob2NoZXIsIDE1IEF1ZyAyMDA2Cgpjb21taXQgZjBmZjQ2OTJmZjMzNzJkZWM1NTA3NGE4ZWI0NDQ5NDNhYjA5NWFiYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNSAxNDoxNTo1MSAyMDA2ICswMjAwCgogICAgQWRkIEZQR0EgQWx0ZXJhIEN5Y2xvbmUgMiBzdXBwb3J0CiAgICBQYXRjaCBieSBIZWlrbyBTY2hvY2hlciwgMTUgQXVnIDIwMDYKCmNvbW1pdCBmZWNmMWM3ZTRkZTFiMjc3OWVkYzE4NzQyYjkxYzIyYmRjMzJiNjhiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxNCAxNTozMzozOCAyMDA2IC0wNTAwCgogICAgRml4IEJBVDAgdG8gYWN0dWFsbHkgYmUgY2FjaGVhYmxlLCBub24tZ3VhcmRlZCBhcyBkb2N1bWVudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBiYzgzNTU5ZGI1NzQ1NjgxOTA5ZmQ3MzgyYWU1MDk1NjdlMTE2ZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOSAxNTozMjoxNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlZCBNUEM4NjQxSFBDTiBEVFMgc291cmNlIGZpbGUgZnJvbSBidWlsZC4KICAgIEl0IGlzIG5vIGxvbmdlciBsaW5rZWQgaW50byBVLUJvb3Q7IGl0cyBzb3VyY2VzIGFyZQogICAgbm93IGxvY2F0ZWQgaW4gdGhlIGtlcm5lbCB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzRjM2MwZTAxZGJmMWY4Y2MyYmQwOGRlOTJmMmI4OWJhODQ5MjFlYgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDc6MDMgMjAwNiAtMDUwMAoKICAgICogU3dpdGNoZWQgZGVmYXVsdCBQQ0kgc3BlZWQgZm9yIDg1NDAgQURTIGJhY2sgdG8gMzNNSHoKCiAgICAqIEFkZGVkIGNvbW1lbnRzIGFuZCBhIHByaW50ZiB0byB3YXJuIHRoYXQgUENJLVggd29uJ3QKICAgICAgd29yayBhdCAzM01IegogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjZjNWUxMzczYjZlYTBiYjM3YTE4ZTRhZWVjZWMwMDYxM2QxY2QzOQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MzUgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgYSBidWcgd2hlcmUgODU1NSBQQ0kgY29kZSB1c2VkIHRoZSBvbGQgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG5hbWVzIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjFkZmZmZDhjMjZmOGVjZGQ2MzBhMGFlNGM4MzRlNzUxZTRlNDUyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjoxMyAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBWSUEgY29uZmlndXJhdGlvbiB0YWJsZQoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgUENJMiBvbiBDRFMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM4OGY5ZmU2NmI2NDI0N2U1YjZhMzg0MTBiYTMxNWNhMjU1OTZkMTYKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjQxIDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIFBDSSBtZW1vcnkgZGVmaW5pdGlvbnMgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk3MDc0ZWQ5NjU1MzA5YjY0MjMxYmMyY2VlNjlmZTg1Mzk5ZjgwNTUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjE3IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIGluaXRpYWxpemluZyBzZWNvbmQgUENJIGJ1cyBvbiA4NXh4IFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMGU2ZjU3ZjcxYjNjNGZkZDEzMDI4ZWIwM2MzZjNlOTE5MjZkZGEyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NDo0OSAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBQQ0ktWCAjZGVmaW5lcyBmb3IgUENJLVggaW5pdGlhbGl6YXRpb24gUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE0ZTExNTU4YjgxMGVmMmNkZGZmZGY3YjlkODZiYzExMzA0NDE5NjAKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjIzIDIwMDYgLTA1MDAKCiAgICAqIE1hZGUgc3VyZSB0aGUgY29kZSB3aGljaCBkaXNhYmxlcyBwcmVmZXRjaCBmb3IgUENJIGRldmljZXMgc2V0cyB0aGUgc2l6ZSBvZiB0aGUgcHJlZmV0Y2ggcmVnaW9uIHRvIDAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlMTYzODdkYjFkNGFhY2Q1YmYzNWNiNmQ3YzE5NDI3NjVjMDM0N2IKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjM2IDIwMDYgLTA1MDAKCiAgICAqIEFkZCBGbGF0IERldiBUcmVlIGNvbnN0cnVjdGlvbiBmb3IgTVBDODV4eCBBRFMgYW5kIENEUyBib2FyZHMgUGF0Y2ggYnkgSm9uIExvZWxpZ2VyIDE3LUphbi0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NTVlNmZiMDczZjlkMDRmZTRhN2YwNmMxMDdlY2JhYzYzNDRkZGQ0CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MzowMCAyMDA2IC0wNTAwCgogICAgKiBSZW1vdmVkIHRoZSBvZnRyZWUuZHRzIGZvciBzdHh4dHggaW4gbGlnaHQgb2YgdGhlIGNoYW5nZXMgdG8gdGhlIGZsYXQgZGV2aWNlIHRyZWUgaGFuZGxpbmcgY29kZSBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgNTQ5OGQ5MDMxMmFhZDlmNmJkYmYwNDc5ODYwMjdjMzViMDNjZDE2MwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDI6MjQgMjAwNiAtMDUwMAoKICAgICogUGF0Y2ggdG8gbW9kaWZ5IGZ0X2J1aWxkLmMgdG8gdXBkYXRlIGZsYXQgZGV2aWNlIHRyZWVzIGluIHBsYWNlIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCAwMjY3NzY4ZWRkYzVjYTdiYzE4NjViYzQwYzg2NjgyOWFjNWVmYmZlCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MTozNyAyMDA2IC0wNTAwCgogICAgKiBNb2RpZnkgYm9vdG0gY29tbWFuZCB0byBzdXBwb3J0IGJvb3Rpbmcgd2l0aCBmbGF0IGRldmljZSB0cmVlcyBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgOGZjOGJkMmNjNDc5YjZjZDE4OGZkZWRlNDAxMGUwZTA1Mjk3MGI4YQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDkgMTQ6MzM6NTAgMjAwNiArMDEwMAoKICAgIEFkZCBSYXBpZGlvIHN1cHBvcnQgZm9yIHRoZSBNUEM4NjQxSFBDTgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkxYTQxNGM3ZDFmYjBlYWM5MTI1OTJjZDk5NWIzMGM5ZjIzMDQ1YzkKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyA4IDExOjMyOjQzIDIwMDYgKzAxMDAKCiAgICBGaXggY2FzbGF0IGNhbGN1bGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzA5ZDMwNzNlNzQxNTMyNzhlNzkwNGE3MDgxOWJiZWY3ZGY1MGUxYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxNjoxNzo1NiAyMDA2IC0wNTAwCgogICAgQ29udmVydCB0byBtYWMtYWRkcmVzcyBpbiBldGhlcm5ldCBub2Rlcy4KCmNvbW1pdCA3MTc0OGFmODMzY2ExMDE3ZWRmMTQxNWJlMzc2MzY2ZmYyOTM3ZDE3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAxMjo0MTozNSAyMDA2IC0wNDAwCgogICAgQ29ycmVjdCB0aGUgaXJxIHZhbHVlIG9mIERVQVJUMgoKY29tbWl0IDljYjNlODgxNmFlNGQ4NTRlN2RjMjIxMjhjM2VlYTNkNzBiYjk4MmMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjQxIDIwMDYgLTA0MDAKCiAgICBDaGFuZ2UgdGhlIHNwYWNlIHNpemUgb2YgUEVYIElPIGluIFJFQURNRQoKY29tbWl0IDIzOWRiMzdjOTRmN2E5Mjk0MWM0NDY1ZmVjZWI4NjdjNjA5MjQxYzUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjE4IDIwMDYgLTA0MDAKCiAgICBNb3ZlIGdldF9ib2FyZF9zeXNfY2xrIHRvIGJvYXJkIGRpcmVjdG9yeQoKY29tbWl0IDQ5MjkwMGI5ODU0MzlmYmNlMWExMThhZmRlMWUzNWRlZjg3MGRiMDMKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwOTowMzo1NCAyMDA2ICswMTAwCgogICAgRml4IDg2NDFIUENOIHBvbGx1dGlvbgoKY29tbWl0IDUxNWFiOGE2MmU4NTc0ZTJiYWJjNmU4ZGNjNDM1NDRhZDIyMWM1YjIKQXV0aG9yOiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwODoxNjowNiAyMDA2ICswMTAwCgogICAgRml4IDg2NDFIUENOIHRpbWViYXNlCgpjb21taXQgYzg2MzYwYjgzMGYxZWVjZDdhNzIyMDg1NzVkZGU0ZjU3ODc5ZmFlYQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMDA6MDE6MzQgMjAwNiArMDgwMAoKICAgIEZpeGVkIE9GIGRldmljZSB0cmVlIG9mIG1wYzg2eHhocGNuIGJvYXJkLgoKICAgIFRoZSBjaGFuZ2VzIHdvcmtzIGluIHdpdGgga2VybmVsIGlycSBtYXBwaW5nIHJld29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlYTNmMjhkMjg1OTQyYmYzZjdhYjMzOWNlODUxNzhkZWQ1NDQyMjUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDEyIDEwOjQ4OjA1IDIwMDYgLTA0MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBtYWMgYWRkcmVzc2VzIHRvIG9yIGZyb20gSUQgRUVQUk9NLgoKICAgIEFkZGVkIGNvZGUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgTWFjIGFkZHJlc3NlcyB0by9mcm9tIElEIEVFUFJPTSgweDU3KS4KICAgIFdpdGggYXR0YWNoZWQgcGF0Y2gsIHdlIGNhbiB1c2UgY29tbWFuZCAibWFjL21hYyByZWFkL21hYyBzYXZlLyIKICAgIHRvIHJlYWQgYW5kIHdyaXRlIEVFUFJPTSB1bmRlciB1LWJvb3QgcHJvbXB0LgoKICAgIFUtYm9vdCB3aWxsIGNhbGN1bGF0ZSB0aGUgY2hlY2tzdW0gb2YgRUVQUk9NIHdoaWxlIGJvb3R1cCwKICAgIGlmIGl0IGlzIHJpZ2h0LCB0aGVuIHUtYm9vdCB3aWxsIGNoZWNrIHdoZXRoZXIgdGhlIG1hYyBhZGRyZXNzCiAgICBvZiBlVFNFQzAvMS8yLzMgaXMgYXZhaWxhbGJlIChub24temVybykuCgogICAgSWYgdGhlcmUgaXMgbWFjIGFkZHJlc3MgYXZhaWxhYmUgaW4gRUVQUk9NLCB1LWJvb3Qgd2lsbCB1c2UgaXQsCiAgICBvdGhlcmV3aXNlLCB1LWJvb3Qgd2lsbCB1c2UgdGhlIG1hYyBhZGRyZXNzIGRlZmluZWQgaW4KICAgIE1QQzg2NDFIUENOLmguIFRoaXMgbWF0Y2hlcyB0aGUgcmVxdWlyZW1lbnQgdG8gc2V0IHVuaXF1ZSBtYWMgYWRkcmVzcwogICAgZm9yIGVhY2ggVFNFQyBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZjYjI4ZTc2MzQxNWUwZTRlNjZiMGY0NTg0MmQxNTU3YWUxOThlNWUKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgMTMgMTA6MzU6MTAgMjAwNiAtMDUwMAoKICAgIEZpeGVkIGluaXRyZCBpc3N1ZSBieSBkZWZpbmUgYmlnIFJBTQoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNmNkMmExNzg1ZDc0ZWMzZDMwYTg2ZjFjYjM2MGJlOGRlNDc4MTUxCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCA3IDEwOjAxOjQ1IDIwMDYgLTA1MDAKCiAgICBXZSBtYWRlIGEgdS1ib290IHBhdGNoIHRvIGZpeCB0aGUgaGFuZyB1cCBpc3N1ZQogICAgd2hlbiBib290aW5nIGZpbGVzeXN0ZW0gZnJvbSByYW1kaXNrLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODQzM2NjYzU4NTBlZTcwNTQ5YWYwYjJiYzViOTIwMzU1ZWY1Mzg4CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NzowMyAyMDA2IC0wNTAwCgogICAgKiBTd2l0Y2hlZCBkZWZhdWx0IFBDSSBzcGVlZCBmb3IgODU0MCBBRFMgYmFjayB0byAzM01IegogICAgKiBBZGRlZCBjb21tZW50cyBhbmQgYSBwcmludGYgdG8gd2FybiB0aGF0IFBDSS1YIHdvbid0CiAgICAgIHdvcmsgYXQgMzNNSHoKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU0YzJhMGViMGMzZTNmZmJmODI0ODAwMTg0ZWU0MmJkYzk5ZDViMTkKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ2OjM1IDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIGEgYnVnIHdoZXJlIDg1NTUgUENJIGNvZGUgdXNlZCB0aGUgb2xkIHZhcmlhYmxlIGFuZAogICAgICBmdW5jdGlvbiBuYW1lcwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2JmYzdjZTc1NmI4OGViMjZlNTUzN2JjN2I2MjVjNDQ1YzZkY2ZhYwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MTMgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgVklBIGNvbmZpZ3VyYXRpb24gdGFibGUKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgUENJMiBvbiBDRFMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUyYzdhNjhiOGQ1ODdlYmNmNWE2YjA1MWI1OGIzZDNmZmEzNzdkZGMKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjQxIDIwMDYgLTA1MDAKCiAgICAqIEZpeGVkIFBDSSBtZW1vcnkgZGVmaW5pdGlvbnMKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA4NzQ1NDYwOWU0NzI5NTQ0M2FmNzkzYTI4MmNkZGNkOTFhNWY0OWMKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ1OjE3IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIGluaXRpYWxpemluZyBzZWNvbmQgUENJIGJ1cyBvbiA4NXh4CiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNjM2YWFlYjZmZDUxNmE0NDJmYjYxMWJiZWVkZGYzMDc3YTY4N2ZiCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NDo0OSAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBQQ0ktWCAjZGVmaW5lcyBmb3IgUENJLVggaW5pdGlhbGl6YXRpb24KICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIwYWJiYzZmZmZhMTE1NjkwMTA3Y2M5NDJjN2FiZjg0YmRjMDNhMWIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjIzIDIwMDYgLTA1MDAKCiAgICAqIE1hZGUgc3VyZSB0aGUgY29kZSB3aGljaCBkaXNhYmxlcyBwcmVmZXRjaCBmb3IgUENJIGRldmljZXMKICAgICAgc2V0cyB0aGUgc2l6ZSBvZiB0aGUgcHJlZmV0Y2ggcmVnaW9uIHRvIDAKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIG9uIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQwZDVmYTM1ZDAyZGYyMjU4MDU5M2JmMDAzOWFiMTczMzY3ZThlZjAKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjM2IDIwMDYgLTA1MDAKCiAgICAqIEFkZCBGbGF0IERldiBUcmVlIGNvbnN0cnVjdGlvbiBmb3IgTVBDODV4eCBBRFMgYW5kIENEUyBib2FyZHMKICAgICAgUGF0Y2ggYnkgSm9uIExvZWxpZ2VyIDE3LUphbi0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZTdlOGIwY2I1YTBjNDlkYzE4MDA3NWI5NmRmMjk2YTg5M2JmMTQ2CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MzowMCAyMDA2IC0wNTAwCgogICAgKiBSZW1vdmVkIHRoZSBvZnRyZWUuZHRzIGZvciBzdHh4dHggaW4gbGlnaHQgb2YgdGhlIGNoYW5nZXMKICAgICAgdG8gdGhlIGZsYXQgZGV2aWNlIHRyZWUgaGFuZGxpbmcgY29kZQogICAgICBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgMWIzODBlYzIyNTY2NWU3Mzk1OTY3N2YzODkzZGM2NThjNTkyNWUwNQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDI6MjQgMjAwNiAtMDUwMAoKICAgICogUGF0Y2ggdG8gbW9kaWZ5IGZ0X2J1aWxkLmMgdG8gdXBkYXRlIGZsYXQgZGV2aWNlIHRyZWVzIGluIHBsYWNlCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA5OGE5YzRkNDY4YTk0MmEwOWViZTg5NzliZWM1MDgwMTdmM2U0NDYyCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MTozNyAyMDA2IC0wNTAwCgogICAgKiBNb2RpZnkgYm9vdG0gY29tbWFuZCB0byBzdXBwb3J0IGJvb3Rpbmcgd2l0aCBmbGF0IGRldmljZSB0cmVlcwogICAgICBQYXRjaCBieSBNYXR0aGV3IE1jQ2xpbnRvY2sgMjYtSnVuZS0yMDA2Cgpjb21taXQgZGEwMTJhYjY2MWZkNGFiMTY5ZGQ3YjliMzIyMDFhNGRmNjJjZjM0YQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAwODo0Mzo1NiAyMDA2IC0wNTAwCgogICAgQ2hhbmdlIElkIHRvIHN5bWJvbGljIG5hbWUgZm9yIFJUTDgxMzkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJjMDljZjNjMmJmYjhkNTRjNjU5Y2JiMzMyZjc5ZDA5NTA5ODJmZDAKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjEyOjEwIDIwMDYgKzA4MDAKCiAgICBGaXggUlRMODEzOSBpbiBiaWcgZW5kaWFuCgogICAgc2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIHNpZ25lZC1vZmYtYnk6IFdlaSBaaGFuZyA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmNmYjlhNTc5NDdmYzIwM2I5OWZlODFhYjA1NzhmNzI4NjI2MWY5ZgpBdXRob3I6IEppbiBaaGVuZ3hpb25nLVI2NDE4OCA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjcgMTg6MTI6MjMgMjAwNiArMDgwMAoKICAgIEZpeCBUc2VjIGJ1ZyB3aGVuIG5vIGxpbmsKCiAgICAgV2hlbiB0ZnRwIGEgbm9uLWV4aXN0IGZpbGUgZnJvbSB0aGUgdGZ0cCBzZXJ2ZXIsIHUtYm9vdCB3aWxsIGNoZWNrCiAgICAgdGhlIGxpbmsgb2YgYWxsIGV0aCBwb3J0LiBUaGUgb3JpZ2luYWwgZmlsZSB3aWxsIHJldHVybiB3cm9uZyBsaW5rCiAgICAgc3RhdGUgb24gdGhlIG5vIGxpbmsgcG9ydHMuCgogICAgc2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDIyYzJiOTc1MTRmYmZiMGUwM2JkOWM3MmIzNDQ1ZTRkYmQ1N2UyCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMjowMiAyMDA2ICswODAwCgogICAgRml4IGJ1ZyBmb3IgaW9fYmFyIHNpemUgZHVyaW5nIHBjaSBzY2FuCgogICAgRHVyaW5nIHRoZSBwY2kgc2NhbiBwcm9jZXNzLCBTb21lIGRldmljZXMgcmV0dXJuIGJhcl9yZXBvbnNlIHdpdGggdGhlCiAgICBoaWdoZXN0IGJ5dGVzIDAsIHN1Y2ggYXMgdGhlIHBjaSBicmlkZ2UgaW4gdWxpMTU3NSByZXR1cm4gYmFyX3Jlc3BvbnNlCiAgICB3aXRoIDB4ZmZmZmZmLCBTbyB0aGUgYmFyX3NpemUgc2hvdWxkIGJlIG1hbnVhbGx5IHNldCB1bmRlciA2NEsuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxqYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYTdkYjljMzc3YmMyMzUzYTE3YmYxZDM4MWQ2NWE2YzQxODcyOGYwCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMTo1NCAyMDA2ICswODAwCgogICAgRW5hYmxlIFBDSUUxIGZvciBNUEM4NjQxSFBDTiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTlkNzBlM2E0N2FmZmI5YmFlMDQxYTJjYWVjZTdjZDUxNmUyMTNiMwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gSnVuIDI2IDExOjA2OjAwIDIwMDYgKzAyMDAKCiAgICBNb3JlIGNvZGUgY2xlYW51cAoKY29tbWl0IDY4NDYyM2NlOTJjNWZkMzJlN2RiMmQ2ZTAxNjk0NWE2N2M1ZmZhYmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDIyIDA4OjUxOjQ2IDIwMDYgLTA1MDAKCiAgICBGaXggYnVnIGluIDg2NDFocGNuIHJlc2V0IGNvbW1hbmQgd2l0aCBubyBhcmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YmU0MjlhNWRkYmYwZWJlMmQ5NDE3NGJhNThmY2ZjN2EyNDI4NWRjCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyMCAxNzo0NzoxNSAyMDA2ICswODAwCgogICAgUmV3b3JrZWQgSVJRIG1hcHBpbmcgaW4gT0YtdHJlZS4KCmNvbW1pdCAwZTRjMmExN2NhMzQwMDFlZDM2ZDI1OWYxM2NiODhhZGE0NjExYThjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAxNSAyMTozMzozNyAyMDA2IC0wNTAwCgogICAgRG8gbm90IGVuYWJsZSBhZGRyZXNzIHRyYW5zbGF0aW9uIG9uIHNlY29uZGFyeSBDUFVzLgogICAgRG8gbm90IHNldCB1cCBCQVRzIG9uIHNlY29uZGFyeSBDUFVzLiAgTGV0IExpbnV4IGRvIHRoZSBuYXN0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4NmVkYTAyMjQ3MzM5NGFkOGYzNmI4NmYyYmRjOWI0Y2I4MTYyOTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEp1biAxNCAxODoxNDo1NiAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwCgpjb21taXQgMTZjOGQ1ZTc2YWUwZjc4ZjM5YTYwNjA4NTc0YWRmZTBmZWI5Y2M3MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSnVuIDE0IDE3OjQ1OjUzIDIwMDYgKzAyMDAKCiAgICBWYXJpb3VzIFVTQiByZWxhdGVkIHBhdGNoZXMKICAgIC0gQWRkIHN1cHBvcnQgZm9yIG1wYzh4eCBVU0IgZGV2aWNlLgogICAgLSBBZGQgc3VwcG9ydCBmb3IgQ29tbW9uIERldmljZSBDbGFzcyAtIEFic3RyYWN0IENvbnRyb2wgTW9kZWwgVVNCIGNvbnNvbGUuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBmbG93IGNvbnRyb2wgaW4gVVNCIHNsYXZlIGRldmljZXMuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBnc2VyaWFsIGFuZCBjZGNfYWNtIHVzaW5nIGVudmlyb25tZW50LgogICAgLSBNaW5vciBjaGFuZ2VzIHRvIHVzYmRjb3JlX29tYXAxNTEwLmMgdXNiZGNvcmVfb21hcDE1MTAuaAogICAgLSBVcGRhdGUgdXNiY29yZSBzbGlnaHRseSB0byBlYXNlIGhvc3QgZW51bWVyYXRpb24uCiAgICAtIEZpeCBub24tcG9ydGFibGUgZW5kaWFuIHByb2JsZW1zIGluIHVzYmRjb3JlIGFuZCB1c2JkY29yZV9lcDAuCiAgICAtIEFkZCBBZGRlclVTQl9jb25maWcgYXMgYSBkZWZjb25maWcgdG8gZW5hYmxlIHVzYWdlIG9mIHRoZSBVU0IgY29uc29sZQogICAgICBieSBkZWZhdWx0IHdpdGggdGhlIEFkZGVyODd4IFUtQm9vdCBwb3J0LgogICAgUGF0Y2hlcyBieSBCcnlhbiBPJ0Rvbm9naHVlIDxib2Rvbm9naHVlQGNvZGVoZXJtaXQuaWU+LCAyOSBNYXkgMjAwNgoKY29tbWl0IDhlY2M5NzE2MThmNTYwMjlhZDk5ZDM1MTZmOGIyOTdhNmVkNTg5NzEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDcgMTA6NTM6NTUgMjAwNiAtMDUwMAoKICAgIEZpeCBhIGdldF9ib2FyZF9zeXNfY2xrKCkgdXNlLWJlZm9yZS1kZWYgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IGQ5YmY0ODU4ZmNhNWFhNGQ2NTFiMjgzMjcwZjc3ZGE3MmViYWRmZDUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDcgMTA6NTI6NDkgMjAwNiAtMDUwMAoKICAgIEFsbG93IERUQyBwYXRoIHRvIGJlIHBhc3NlZCBpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IGM4M2FlOWVhNmQ5M2FiYmU3NTFiZjhhMzM5NjIzNmEwODRlNTZmODcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDYgMTY6NTQ6MjkgMjAwNiAtMDQwMAoKICAgIE1vZGlmeSB0aGUgSVJRIG9mIERVQVJUMgoKY29tbWl0IGM5MzRmNjU1ZjlhZWNhNzBhNWM1Zjg4YjQ2NWQ5ZTlkNTdhOGQyMmUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEzOjU1OjM1IDIwMDYgLTA1MDAKCiAgICBSZXZpZXcgY2xlYW51cHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYjU5NjVmYjk1Yjc3YTQ5ZjRlNmFmOTUyNDhlMGM4NDlmNGFmMDNlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMjo0NDo0NCAyMDA2IC0wNTAwCgogICAgV2hpdGUgc3BhY2UgY2xlYW51cC4KICAgIFNvbWUgODAtY29sdW1uIGNsZWFudXBzLgogICAgQ29udmVydCBwcmludGYoKSB0byBwdXRzKCkgd2hlcmUgcG9zc2libGUuCiAgICBVc2UgI2luY2x1ZGUgInNwZF9zZHJhbS5oIiBhcyBuZWVkZWQuCiAgICBFbmhhbmNlZCByZXNldCBjb21tYW5kIHVzYWdlIG1lc3NhZ2UgYSBiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZDVjNWJlNTQ3NDQ1ZGQzYmQyZWI3MzY4ZDgwZGYwM2VhNDM3OTcwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMTozOTozNCAyMDA2IC0wNTAwCgogICAgUmVtb3ZlZCB1bm5lZWRlZCBsb2NhbF9idXNfaW5pdCgpIGZyb20gODY0MUhQQ04gYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDNkNzI5YzE2YzM5MmQyOTgyZDMyNjZiNjU5ZDMzM2M5Mjc2OTdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIE1heSAzMSAxMToyNDoyOCAyMDA2IC0wNTAwCgogICAgTW92ZWQgbXBjODY0MWhwY25fYm9hcmRfcmVzZXQoKSBvdXQgb2YgY3B1LyBpbnRvIGJvYXJkLy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyYTk0MWRlMDYwMzUwYWQxNTg3OGQ4MjE5ODI1ZjQ5NTBlOWJiOGUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEwOjA3OjI4IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgZGVhZCBkZWJ1ZyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgMTI2YWE3MGYxMGJhM2QyMGUwYTZmNGQzMjMyODI1MDUxM2I3Nzc3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgMzAgMTc6NDc6MDAgMjAwNiAtMDUwMAoKICAgIE1vdmUgbXBjODZ4eCBQSVhJUyBjb2RlIHRvIGJvYXJkIGRpcmVjdG9yeQoKICAgIEZpcnN0IGN1dCBhdCBtb3ZpbmcgdGhlIFBJWElTIHBsYXRmb3JtIGNvZGUgb3V0IG9mCiAgICB0aGUgODZ4eCBjcHUgZGlyZWN0b3J5IGFuZCBpbnRvIGJvYXJkL21wYzg2NDFocGNuCiAgICB3aGVyZSBpdCBiZWxvbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRmODNhMmZjZWYxYTY3MGM0NWZjNTg1MTE5ZGNjMWZlMDYyYzRhOQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMzAgMTY6NTY6MTQgMjAwNiArMDIwMAoKICAgIFN1cHBvcnQgZ2VuZXJpYyBPSENJIHN1cHBvcnQgZm9yIHRoZSBzM2MyNHgwIGNwdS4KCmNvbW1pdCAzOGNlZTEyZGNmY2MyNTczNzFjOTAxYzdlMTNlNThlY2FiMGEzNWQ4CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSAzMCAwOToxMDozMiAyMDA2IC0wNTAwCgogICAgSW1wcm92ZSAicmVzZXQiIGNvbW1hbmQncyBpbnRlcmFjdGlvbiB3aXRoIHdhdGNoZG9nLgoKCSJyZXNldCBhbHRiYW5rIiB3aWxsIHJlc2V0IGFub3RoZXIgYmFuayBXSVRIT1VUIHdhdGNoIGRvZyB0aW1lciBlbmFibGVkCgkicmVzZXQgYWx0YmFuayB3ZCIgd2lsbCByZXNldCBhbm90aGVyIGJhbmsgV0lUSCB3YXRjaCBkb2cgZW5hYmxlZAoJImRpc3dkIiB3aWxsIGRpc2FibGUgd2F0Y2ggZG9nIGFmdGVyIHUtYm9vdCBib290cyB1cCBzdWNjZXNzZnVsbHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcwMjA1ZTVhNmRkYzg1MjhiMTFkYjllYjRkM2ZhMDIwOWQ5ZmNlMmEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDMwIDA4OjUxOjE5IDIwMDYgLTA1MDAKCiAgICBGaXggdHdvIFNEUkFNIHNldHVwIGJ1Z3MuCgoJRml4IEVDQyBzZXR1cCBidWcuCglFbmFibGUgMVQvMlQgYmFzZWQgb24gbnVtYmVyIG9mIERJTU1zIHByZXNlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTFmZWM1MDE1MzM0ZGViMjAxMGUzNmNlMDBiYjExOGNjNTQyOWE1CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDoyNDo0OCAyMDA2IC0wNTAwCgogICAgQWRkIGZpcnN0IGRyYWZ0IG9mIHRoZSBNUEM4NjQxSFBDTiBkb2MvUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgZWQ0NWQ2YzkzMGI1OTM5NzE4YTg3ZWUxMmUyNWNmOWEwNTk3OGQ0YQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXkgMjYgMTA6MTM6MDQgMjAwNiAtMDUwMAoKICAgIEFkZGVkIHBjaUA4MDAwIGJsb2NrLgogICAgVXBkYXRlZCBldGhlcm5ldCBpbnRlcnJ1cHQgbWFwcGluZ3MgKG1vdmVkIHVwIDQ4KS4KICAgIENsZWFuZWQgdXAgYSBmZXcgY29tbWVudHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAzMDMzZWJiMjBmZDdjMzcyYzdiY2EzYzk5NTVhNDY5MmJiMjI0MGI3CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDowMToxNiAyMDA2IC0wNTAwCgogICAgQWxsb3cgYXJncyBvbiByZXNldCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgMzAxZjFhYTM4NGQwZWRjYWU2YTIyZmQ5YWRiOTMzYWQ3MTY5NWVjYwpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjMgMTM6Mzg6MzUgMjAwNiArMDIwMAoKICAgIENoYW5nZWQgdGhlIG1wMnVzYiAoYXQ5MXJtOTIwMCkgYm9hcmQgdG8gdXNlIHRoZSBnZW5lcmljIE9IQ0kgZHJpdmVyLiBTb21lCiAgICBmaXhlcyB0byB0aGUgbGF0dGVyLgoKY29tbWl0IDI0ZTM3NjQ1ZTczNzhiMjBmYThmMjBlMjk5NmM4ZmI4ZTkwYzcwYzkKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIzIDEwOjMzOjExIDIwMDYgKzAyMDAKCiAgICBNb3JlIGNsZWFudXAgZm9yIHRoZSBkZWx0YSBib2FyZCBhbmQgdGhlIGdlbmVyaWMgdXNiX29oY2kgZHJpdmVyLiBBZGRlZAogICAgQ0ZHX1VTQl9CT0FSRF9JTklUIGFuZCBDRkdfVVNCX0NQVV9JTklUIGZvciBlbmFibGluZyBib2FyZCBhbmQgY3B1IHNwZWNpZmljCiAgICBpbml0aWFsaXphdGlvbiBhbmQgY2xlYW51cCBob29rcyByZXNwZWN0aXZlbHkuCgpjb21taXQgM2UzMjZlY2U5ZWJhODE4NGY1ZDQ4YWE0ZmI4Nzc2MGE4ZjZmMGYxMApBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMjIgMTY6MzM6NTQgMjAwNiArMDIwMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBVU0Igc3RvcmFnZSBzdXBwb3J0IGZvciB0aGUgZGVsdGEgYm9hcmQuIFRoaXMgaXMgdGhlIGZpcnN0CiAgICBib2FyZCB0byBtYWtlIHVzZSBvZiBhIGdlbmVyaWMgT0hDSSBkcml2ZXIsIHRoYXQgY2FsbHMgaG9va3MgZm9yIGJvYXJkCiAgICBkZXBlbmRhbnQgaW5pdGlhbGl6YXRpb24uCgpjb21taXQgMTRlMzcwODFmZjNjYWM3ZWJlNmU5MzgzNjUyMzQyOTg1M2I2YjI5MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6Mjg6MzkgMjAwNiAtMDUwMAoKICAgIENoYW5nZSBhcmJpdHJhdGlvbiB0byByb3VuZC1yb2JpbiBmb3IgU01QIGxpbnV4LgoKY29tbWl0IDlhNjU1ODc2ZTU5OTViZTgwZjQ5MDU0ZTI1MDk1MDBlODcxZTRkM2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEzOjI2OjM0IDIwMDYgLTA1MDAKCiAgICBFbmFibGUgZHVhbCBERFIgY29udHJvbGxlcnMgYW5kIGludGVybGVhdmluZy4KCmNvbW1pdCA1ODZkMWQ1YWJkM2U1MjVmMWUxZDliODFlNWE2MWE0ZGE2YjJmYTNjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoyMjo0NCAyMDA2IC0wNTAwCgogICAgVXBkYXRlIDg2eHggYWRkcmVzcyBtYXAgYW5kIExBV0JBUnMuCgpjb21taXQgY2NjY2U1ZDA1ODFiYjBiYTQ2MDI3OTlhNGI1MTEyZTU4ZDE1NzljYgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6MTQ6MTUgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBMMiBDYWNoZSBpbnZhbGlkYXRlIHBvbGxpbmcuCgpjb21taXQgZjM1ZWM2OGZiMDY2Y2VjMGUzNjI5NGJmZTA3ZGVjMmQ0ZThhZDNhOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTI6MzM6MDkgMjAwNiAtMDUwMAoKICAgIEVuYWJsZSAybmQgQ1BVIGFuZCBJMkMuCgpjb21taXQgYmY2OTBkY2I1MTJkMzRjNGZjZWVjMGViMWU1YzBlODhhOWRiNWQ1NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXkgMTUgMDc6MjY6NTYgMjAwNiAtMDUwMAoKICAgIFVwZGF0ZSBpbnRlcnJ1cHQgbWFwcGluZy4KCmNvbW1pdCA2Y2ZlYTMzNDc3YjA0YjYzZWQ0NzM4NmVkMTYyOTUyOTQ4NGMzM2JhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxMCAwOTozODowNiAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVlZGVkIElOSVRfUkFNX0xPQ0sgY2FjaGUgdHdpZGRsaW5nLgogICAgQ29ycmVjdGx5IHRyYWNrcyByMjkgYXMgZ2xvYmFsIGRhdGEgcG9pbnRlciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNGRkMzE3YjU4YzEyNmEyYTdlNzNmNDc2NGVjYzFhN2M5N2Y4NzZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxMCAwOTozMzowNyAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGZsYXNoLmMgZmlsZS4KCmNvbW1pdCAxOGI2YzhjZDhhZjZjYzdmMzUxODBjZWRjNGFkYjMyMzZjYzFhMWI4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA5IDA4OjIzOjQ5IDIwMDYgLTA1MDAKCiAgICBHZXQgTVBDODY0MUhQQ04gZmxhc2ggaW1hZ2VzIHdvcmtpbmcuCgoJRW5hYmxlIHRoZSBDRkkgZHJpdmVyLgoJUmVtb3ZlIGJvZ3VzIExBV0JBUjcgY3J1ZnQuCglVc2UgY29ycmVjdCBURVhUX0JBU0UsIEZpeHVwIGxvYWQgc2NyaXB0LgoJRW5hYmxlIFNQRCBFRVBST00gZHVyaW5nIEREUiBzZXR1cC4KCVVzZSBnZW5lcmljIFJGQyAxOTE4IElQIGFkZHJlc3NlcyBieSBkZWZhdWx0LgoKY29tbWl0IDVjOWVmYjM2YTZiNTQzMTQyM2Y1Mjg4OGEwZTNiNGI1MTVmZTdlY2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXByIDI3IDEwOjE1OjE2IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIHdoaXRlc3BhY2VzIGFuZCBzdHlsZSBpc3N1ZXMuCiAgICBSZW1vdmVkIC8vLXN0eWxlIGNvbW1lbnRzLgogICAgVXNlIDgwLWNvbHVtbiBsaW5lcy4KICAgIFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgogICAgUmVtb3ZlIGRlYWQgY29kZSBhbmQgZGVidWcgY3J1ZnQuCgpjb21taXQgYTIzMjBhNmJmODExM2EwOTU0NGM0MmQxNjBkMTBhYzY5ZDA0OWEwMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMjcgMDg6MjI6MzkgMjAwNiAtMDUwMAoKICAgIFJldmVydCBiYWQgUENJIHByZWZldGNoIGxpbWl0IGNoYW5nZS4KCmNvbW1pdCBkZWJiNzM1NGQxZWE0ZjY5NDE1NDgxOGRmNWU1YjUyM2Y1YzFjYzFkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAyNiAxNzo1ODo1NiAyMDA2IC0wNTAwCgogICAgSW5pdGlhbCBzdXBwb3J0IGZvciBNUEM4NjQxIEhQQ04gYm9hcmQuCg==