VGhpcyBmaWxlIGNvbnRhaW5zIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGFyZSByZXNwb25zaWJsZSBmb3IgY2VydGFpbiBwYXJ0cyBvZgp0aGUgSEFQcm94eSBwcm9qZWN0IGFuZCB3aG8gaGF2ZSBhdXRob3JpdHkgb24gdGhlbS4gVGhpcyBtZWFucyB0aGF0IHRoZXNlCnBlb3BsZSBoYXZlIHRvIGJlIGNvbnN1bHRlZCBiZWZvcmUgZG9pbmcgYW55IGNoYW5nZSBpbiB0aGUgcGFydHMgdGhleSBtYWludGFpbiwKaW5jbHVkaW5nIHdoZW4gZml4aW5nIGJ1Z3MuIFRoZXNlIHBlcnNvbnMgYXJlIGFsbG93ZWQgdG8gcmVqZWN0IGFueSBjaGFuZ2Ugb24KdGhlIHBhcnRzIHRoZXkgbWFpbnRhaW4sIGFuZCBpbiBwYXJhbGxlbCB0aGV5IHRyeSB0aGVpciBiZXN0IHRvIGVuc3VyZSB0aGVzZQpwYXJ0cyB3b3JrIHdlbGwuIFNpbWlsYXJseSwgYW55IGNoYW5nZSB0byB0aGVzZSBwYXJ0cyBub3QgYmVpbmcgdmFsaWRhdGVkIGJ5CnRoZW0gd2lsbCBiZSByZWplY3RlZC4KClRoZSBiZXN0IHdheSB0byBkZWFsIHdpdGggc3VjaCBzdWJzeXN0ZW1zIHdoZW4gc2VuZGluZyBwYXRjaGVzIGlzIHRvIHNlbmQgdGhlCnBhdGNoZXMgdG8gdGhlIG1haWxpbmcgbGlzdCBhbmQgdG8gQ0MgdGhlc2UgcGVvcGxlLiBXaGVuIG5vIG1haW50YWluZXIgaXMKbGlzdGVkIGZvciBhIHN1YnN5c3RlbSwgeW91IGNhbiBzaW1wbHkgc2VuZCB5b3VyIGNoYW5nZXMgdGhlIHVzdWFsIHdheSwgYW5kIGl0CmlzIGFsc28gYSBzaWduIHRoYXQgaWYgeW91IHdhbnQgdG8gc3RyZW5ndGhlbiB5b3VyIHNraWxscyBvbiBjZXJ0YWluIHBhcnRzIHlvdQpjYW4gYmVjb21lIHlvdXJzZWxmIGEgbWFpbnRhaW5lciBvZiB0aGUgcGFydHMgeW91IGNhcmUgYSBsb3QgYWJvdXQuCgpQbGVhc2UgZG8gbm90IGFzayB0aGVtIHRvIHRyb3VibGVzaG9vdCB5b3VyIGJ1Z3MsIGl0J3Mgbm90IHRoZWlyIGpvYiBldmVudGhvdWdoCnRoZXkgbWF5IG9jY2FzaW9uYWxseSBoZWxwIGFzIHRpbWUgcGVybWl0cy4KCkxpc3Qgb2YgbWFpbnRhaW5lcnMKLS0tLS0tLS0tLS0tLS0tLS0tLQoKNTFEZWdyZWVzIGRldmljZSBpZGVudGlmaWNhdGlvbgpNYWludGFpbmVyOiBCZW4gU2hpbGxpdG8gPGJlbkA1MWRlZ3JlZXMuY29tPgpGaWxlczogc3JjLzUxZC5jLCBjb250cmliLzUxZCwgZG9jLzUxRGVncmVlcy1kZXZpY2UtZGV0ZWN0aW9uLnR4dAoKQ2FjaGUKTWFpbnRhaW5lcjogV2lsbGlhbSBMYWxsZW1hbmQgPHdsYWxsZW1hbmRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvY2FjaGUuYywgaW5jbHVkZS9oYXByb3h5L2NhY2hlKi5oCgpEZXZpY2VBdGxhcyBkZXZpY2UgaWRlbnRpZmljYXRpb24KTWFpbnRhaW5lcjogRGF2aWQgQ2FybGllciA8ZGNhcmxpZXJAZGV2aWNlYXRsYXMuY29tPgpGaWxlczogc3JjL2RhLmMsIGNvbnRyaWIvZGV2aWNlYXRsYXMsIGRvYy9EZXZpY2VBdGxhcy1kZXZpY2UtZGV0ZWN0aW9uLnR4dAoKRE5TIGFuZCBSZXNvbHZlcnMKTWFpbnRhaW5lcjogRW1lcmljIEJydW4gPGVicnVuQGhhcHJveHkuY29tPgpNYWludGFpbmVyOiBCYXB0aXN0ZSBBc3NtYW5uIDxiZWRpczlAZ21haWwuY29tPgpGaWxlczogc3JjL2Rucy5jLCBpbmNsdWRlL2hhcHJveHkvZG5zKi5oCkZpbGVzOiBzcmMvcmVzb2x2ZXJzLmMsIGluY2x1ZGUvaGFwcm94eS9yZXNvbHZlcnMqLmgKCkRvYyB0byBIVE1MIGNvbnZlcnRlciAoZGNvbnYpCk1haW50YWluZXI6IEN5cmlsIEJvbnTpIDxjeXJpbC5ib250ZUBmcmVlLmZyPgpGaWxlczogZG9jLyoudHh0Ck5vdGU6IGFzayBDeXJpbCBiZWZvcmUgY2hhbmdpbmcgYW55IGRvYydzIGZvcm1hdCBvciBzdHJ1Y3R1cmUuCgpFQlRyZWUKTWFpbnRhaW5lcjogV2lsbHkgVGFycmVhdSA8d0Axd3QuZXU+CkZpbGVzOiBzcmMvZWIqLmMsIGluY2x1ZGUvaW1wb3J0L2ViKi5oCgpGQ0dJOgpNYWludGFpbmVyOiBDaHJpc3RvcGhlciBGYXVsZXQgPGNmYXVsZXRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvbXV4X2ZjZ2kuYywgc3JjL2ZjZ2kqLmMsIGluY2x1ZGUvaGFwcm94eS9mY2dpKi5oCgpGaWx0ZXJzOgpNYWludGFpbmVyOiBDaHJpc3RvcGhlciBGYXVsZXQgPGNmYXVsZXRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvZmlsdGVycy5jLCBzcmMvZmx0XyouYywgaW5jbHVkZS9oYXByb3h5L2ZpbHRlcnMqLmgKRmlsZXM6IGRvYy9pbnRlcm5hbHMvZmlsdGVycy50eHQKCkgxIGFuZCBIVFgKTWFpbnRhaW5lcjogQ2hyaXN0b3BoZXIgRmF1bGV0IDxjZmF1bGV0QGhhcHJveHkuY29tPgpGaWxlczogc3JjL211eF9oMS5jIHNyYy9oMV9odHguYywgaW5jbHVkZS9oYXByb3h5L2gxX2h0eC5oCgpIMiBhbmQgSFBBQ0sKTWFpbnRhaW5lcjogV2lsbHkgVGFycmVhdSA8d0Axd3QuZXU+CkZpbGVzOiBzcmMvbXV4X2gyLmMgc3JjL2gyLmMgc3JjL2hwYWNrKi5jCkZpbGVzOiBpbmNsdWRlL2hhcHJveHkvaDIuaCwgaW5jbHVkZS9oYXByb3h5L2hwYWNrKi5oCgpIZWFsdGggY2hlY2tzCk1haW50YWluZXI6IENocmlzdG9waGVyIEZhdWxldCA8Y2ZhdWxldEBoYXByb3h5LmNvbT4KRmlsZXM6IHNyYy9jaGVja3MuYywgaW5jbHVkZS9oYXByb3h5L2NoZWNrKi5oCkZpbGVzOiBzcmMvdGNwY2hlY2suYywgaW5jbHVkZS9oYXByb3h5L3RjcGNoZWNrKi5oCk5vdGU6IGhlYWx0aCBjaGVja3MgYXJlIGZyYWdpbGUgYW5kIGhhdmUgYmVlbiBicm9rZW4gbWFueSB0aW1lcywgc28gcGxlYXNlCiAgICAgIGNvbnN1bHQgdGhlIHJlbGV2YW50IG1haW50YWluZXJzIGlmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGVzZSBzcGVjaWZpYwogICAgICBwYXJ0cy4KCkhUVFAKTWFpbnRhaW5lcjogV2lsbHkgVGFycmVhdSA8d0Axd3QuZXU+Ck1haW50YWluZXI6IENocmlzdG9waGVyIEZhdWxldCA8Y2ZhdWxldEBoYXByb3h5LmNvbT4KRmlsZXM6IHNyYy9odHRwKi5oLCBpbmNsdWRlL2hhcHJveHkvaHR0cCouaAoKSFRYCk1haW50YWluZXI6IENocmlzdG9waGVyIEZhdWxldCA8Y2ZhdWxldEBoYXByb3h5LmNvbT4KRmlsZXM6IHNyYy9odHguYywgaW5jbHVkZS9oYXByb3h5L2h0eCouYywgZG9jL2ludGVybmFscy9odHgtYXBpLnR4dAoKTHVhCk1haW50YWluZXI6IFRoaWVycnkgRm91cm5pZXIgPHRmb3VybmllckBhcnBhbGVydC5vcmc+CkZpbGVzOiBzcmMvaGx1YS5jLCBpbmNsdWRlL2hhcHJveHkvaGx1YSouaAoKTWFpbGVycwpNYWludGFpbmVyOiBTaW1vbiBIb3JtYW4gPGhvcm1zQHZlcmdlLm5ldC5hdT4KRmlsZXM6IHNyYy9tYWlsZXJzLmMsIGluY2x1ZGUvaGFwcm94eS9tYWlsZXJzKi5oCgpNYXBzIGFuZCBwYXR0ZXJuIG1hdGNoaW5nCk1haW50YWluZXI6IFRoaWVycnkgRm91cm5pZXIgPHRmb3VybmllckBhcnBhbGVydC5vcmc+CkZpbGVzOiBzcmMvbWFwLmMsIGluY2x1ZGUvaGFwcm94eS9tYXAqLmgKRmlsZXM6IHNyYy9wYXR0ZXJuLmMsIGluY2x1ZGUvaGFwcm94eS9wYXR0ZXJuKi5oCgpNYXN0ZXItd29ya2VyCk1haW50YWluZXI6IFdpbGxpYW0gTGFsbGVtYW5kIDx3bGFsbGVtYW5kQGhhcHJveHkuY29tPgpOb3RlOiBQbGVhc2UgQ0MgV2lsbGlhbSB3aGVuIHRvdWNoaW5nIHNyYy9oYXByb3h5LmMgYW5kIGNvbnRyaWIvc3lzdGVtZAoKTXVsdGktdGhyZWFkaW5nCk1haW50YWluZXI6IENocmlzdG9waGVyIEZhdWxldCA8Y2ZhdWxldEBoYXByb3h5LmNvbT4KTWFpbnRhaW5lcjogRW1lcmljIEJydW4gPGVicnVuQGhhcHJveHkuY29tPgpGaWxlczogc3JjL3RocmVhZC5jLCBpbmNsdWRlL2hhcHJveHkvdGhyZWFkKi5oCk5vdGU6IGV2ZXJ5IGNoYW5nZSBhcm91bmQgdGhlIGxvY2tpbmcgb3Igc3luY2hyb25pemF0aW9uIHBvaW50IHdpbGwgcmVxdWlyZQogICAgICBhcHByb3ZhbCBmcm9tIG9uZSBvZiB0aGVzZSBtYWludGFpbmVycy4gUHJvYmxlbXMgd2hpY2ggb25seSBhcHBlYXIgd2hlbgogICAgICBuYnRocmVhZCBpcyBncmVhdGVyIHRoYW4gMSBhbmQgd2hpY2ggZGlzYXBwZWFyIG90aGVyd2lzZSBhcmUgYWxzbwogICAgICByZWxldmFudC4KCk11bHRpLXRocmVhZGVkIHRhc2sgc2NoZWR1bGVyCk1haW50YWluZXI6IFdpbGx5IFRhcnJlYXUgPHdAMXd0LmV1PgpNYWludGFpbmVyOiBPbGl2aWVyIEhvdWNoYXJkIDxjb2duZXRAY2kwLm9yZz4KRmlsZXM6IGluY2x1ZGUvaGFwcm94eS90YXNrKi5oIHNyYy90YXNrLmMKClBlZXJzCk1haW50YWluZXI6IEVtZXJpYyBCcnVuIDxlYnJ1bkBoYXByb3h5LmNvbT4KRnLpZOlyaWMgTOljYWlsbGUgPGZsZWNhaWxsZUBoYXByb3h5LmNvbT4KRmlsZXM6IHNyYy9wZWVycy5jLCBpbmNsdWRlL2hhcHJveHkvcGVlcnMqLmgKClByb21ldGhldXMgRXhwb3J0ZXIKTWFpbnRhaW5lcjogQ2hyaXN0b3BoZXIgRmF1bGV0IDxjZmF1bGV0QGhhcHJveHkuY29tPgpNYWludGFpbmVyOiBXaWxsaWFtIERhdWNoeSA8d2RhdWNoeUBnbWFpbC5jb20+CkZpbGVzOiBjb250cmliL3Byb21ldGhldXMtZXhwb3J0ZXIKTm90ZTogV2lsbGlhbSBpcyB0aGUgcmVmZXJlbnQgcmVnYXJkaW5nIFByb21ldGhldXMuIEhlIHNob3VsZCBiZSBjb25zdWx0ZWQgZm9yCiAgICAgIGFsbCBhZGRpdGlvbnMgYW5kIG1vZGlmaWNhdGlvbnMgb2YgZmVhdHVyZXMuIENocmlzdG9waGVyIGlzIHRoZSByZWZlcmVudAogICAgICBmb3IgdGhlIGNvZGUgaXRzZWxmLiBIZSBzaG91bGQgYmUgY29uc3VsdGVkIGZvciBxdWVzdGlvbnMgcmVnYXJkaW5nIHRoZQogICAgICBleHBvcnRlciBpbnRlZ3JhdGlvbiBpbnRvIEhBUHJveHksIGFzIHdlbGwgYXMgZm9yIHRoZSBidWdzLgoKU2NpZW50aWFNb2JpbGUgV1VSRkwgRGV2aWNlIERldGVjdGlvbgpNYWludGFpbmVyOiBQYXVsIEJvcmlsZSwgTWFzc2ltaWxpYW5vIEJlbGxvbWkgPHd1cmZsLWhhcHJveHktc3VwcG9ydEBzY2llbnRpYW1vYmlsZS5jb20+CkZpbGVzOiBzcmMvd3VyZmwuYywgY29udHJpYi93dXJmbCwgZG9jL1dVUkZMLWRldmljZS1kZXRlY3Rpb24udHh0CgpTUE9FCk1haW50YWluZXI6IENocmlzdG9waGVyIEZhdWxldCA8Y2ZhdWxldEBoYXByb3h5LmNvbT4KRmlsZXM6IHNyYy9mbHRfc3BvZS5jLCBpbmNsdWRlL2hhcHJveHkvc3BvZSouaApGaWxlczogY29udHJpYi9zcG9hX2V4YW1wbGUsIGRvYy9TUE9FLnR4dAoKU1NMCk1haW50YWluZXI6IEVtZXJpYyBCcnVuIDxlYnJ1bkBoYXByb3h5LmNvbT4KTWFpbnRhaW5lcjogV2lsbGlhbSBMYWxsZW1hbmQgPHdsYWxsZW1hbmRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvY2ZncGFyc2Utc3NsLmMsIHNyYy9zc2xfKi5jLCBpbmNsdWRlL2hhcHJveHkvc3NsXyouaAoKVGhyZWFkLXNhZmUgbGlzdHMKTWFpbnRhaW5lcjogT2xpdmllciBIb3VjaGFyZCA8Y29nbmV0QGNpMC5vcmc+CkZpbGVzOiBpbmNsdWRlL2hhcHJveHkvbGlzdCouaAo=