LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpSZWFkbWUgZm9yIExpbnV4IGRldmljZSBkcml2ZXIgZm9yIHRoZSBPbW5pVmlzaW9uIE9WNTExIFVTQiB0byBjYW1lcmEgYnJpZGdlIElDCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkF1dGhvcjogTWFyayBNY0NsZWxsYW5kCkhvbWVwYWdlOiBodHRwOi8vYWxwaGEuZHluZG5zLm9yZy9vdjUxMQoKSU5UUk9EVUNUSU9OOgoKVGhpcyBpcyBhIGRyaXZlciBmb3IgdGhlIE9WNTExLCBhIFVTQi1vbmx5IGNoaXAgdXNlZCBpbiBtYW55ICJ3ZWJjYW0iIGRldmljZXMuCkFueSBjYW1lcmEgdXNpbmcgdGhlIE9WNTExL09WNTExKyBhbmQgdGhlIE9WNjYyMC9PVjc2MTAvMjAvMjBBRSBzaG91bGQgd29yay4KVmlkZW8gY2FwdHVyZSBkZXZpY2VzIHRoYXQgdXNlIHRoZSBQaGlsaXBzIFNBQTcxMTFBIGRlY29kZXIgYWxzbyB3b3JrLiBJdCAKc3VwcG9ydHMgc3RyZWFtaW5nIGFuZCBjYXB0dXJlIG9mIGNvbG9yIG9yIG1vbm9jaHJvbWUgdmlkZW8gdmlhIHRoZSBWaWRlbzRMaW51eApBUEkuIE1vc3QgVjRMIGFwcHMgYXJlIGNvbXBhdGlibGUgd2l0aCBpdC4gTW9zdCByZXNvbHV0aW9ucyB3aXRoIGEgd2lkdGggYW5kCmhlaWdodCB0aGF0IGFyZSBhIG11bHRpcGxlIG9mIDggYXJlIHN1cHBvcnRlZC4KCklmIHlvdSBuZWVkIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCB0aGUgT1Y1MTEgaG9tZXBhZ2UgYXQgdGhlIGFib3ZlIFVSTC4KCldIQVQgWU9VIE5FRUQ6CgotIElmIHlvdSB3YW50IHRvIGhlbHAgd2l0aCB0aGUgZGV2ZWxvcG1lbnQsIGdldCB0aGUgY2hpcCdzIHNwZWNpZmljYXRpb24gZG9jcyBhdAogIGh0dHA6Ly93d3cub3Z0LmNvbS9vbW5pdXNicC5odG1sCgotIEEgVmlkZW80TGludXggY29tcGF0aWJsZSBmcmFtZSBncmFiYmVyIHByb2dyYW0gKEkgcmVjb21tZW5kIHZpZGNhdCBhbmQgeGF3dHYpCiAgICB2aWRjYXQgaXMgcGFydCBvZiB0aGUgdzNjYW0gcGFja2FnZTogIGh0dHA6Ly9tcHguZnJlZXNoZWxsLm5ldC8KICAgIHhhd3R2IGlzIGF2YWlsYWJsZSBhdDogIGh0dHA6Ly9saW51eC5ieXRlc2V4Lm9yZy94YXd0di8KCkhPVyBUTyBVU0UgSVQ6CgpOb3RlOiBUaGVzZSBhcmUgc2ltcGxpZmllZCBpbnN0cnVjdGlvbnMuIEZvciBjb21wbGV0ZSBpbnN0cnVjdGlvbnMgc2VlOgoJaHR0cDovL2FscGhhLmR5bmRucy5vcmcvb3Y1MTEvaW5zdGFsbC5odG1sCgpZb3UgbXVzdCBoYXZlIGZpcnN0IGNvbXBpbGVkIFVTQiBzdXBwb3J0LCBzdXBwb3J0IGZvciB5b3VyIHNwZWNpZmljIFVTQiBob3N0CmNvbnRyb2xsZXIgKFVIQ0kgb3IgT0hDSSksIGFuZCBWaWRlbzRMaW51eCBzdXBwb3J0IGZvciB5b3VyIGtlcm5lbCAoSSByZWNvbW1lbmQKbWFraW5nIHRoZW0gbW9kdWxlcy4pIE1ha2Ugc3VyZSAiRW5mb3JjZSBiYW5kd2lkdGggYWxsb2NhdGlvbiIgaXMgTk9UIGVuYWJsZWQuCgpOZXh0LCAoYXMgcm9vdCk6CgoJbW9kcHJvYmUgdXNiY29yZQoJbW9kcHJvYmUgdXNiLXVoY2kgIDxPUj4gIG1vZHByb2JlIHVzYi1vaGNpCgltb2Rwcm9iZSB2aWRlb2RldgoJbW9kcHJvYmUgb3Y1MTEKCklmIGl0IGlzIG5vdCBhbHJlYWR5IHRoZXJlIChpdCB1c3VhbGx5IGlzKSwgY3JlYXRlIHRoZSB2aWRlbyBkZXZpY2U6CgoJbWtub2QgL2Rldi92aWRlbzAgYyA4MSAwCgpPcHRpb25hbGx5LCBzeW1saW5rIC9kZXYvdmlkZW8gdG8gL2Rldi92aWRlbzAKCllvdSB3aWxsIGhhdmUgdG8gc2V0IHBlcm1pc3Npb25zIG9uIHRoaXMgZGV2aWNlIHRvIGFsbG93IHlvdSB0byByZWFkL3dyaXRlCmZyb20gaXQ6CgoJY2htb2QgNjY2IC9kZXYvdmlkZW8KCWNobW9kIDY2NiAvZGV2L3ZpZGVvMCAoaWYgbmVjZXNzYXJ5KQoJCk5vdyB5b3UgYXJlIHJlYWR5IHRvIHJ1biBhIHZpZGVvIGFwcCEgQm90aCB2aWRjYXQgYW5kIHhhd3R2IHdvcmsgd2VsbCBmb3IgbWUKYXQgNjQweDQ4MC4KCQpbVXNpbmcgdmlkY2F0Ol0KCgl2aWRjYXQgLXMgNjQweDQ4MCAtcCBjID4gdGVzdC5qcGcKCXh2aWV3IHRlc3QuanBnCgkKW1VzaW5nIHhhd3R2Ol0KCkZyb20gdGhlIG1haW4geGF3dHYgZGlyZWN0b3J5OgoKCW1ha2UgY2xlYW4KCS4vY29uZmlndXJlCgltYWtlCgltYWtlIGluc3RhbGwKCk5vdyB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gcnVuIHhhd3R2LiBSaWdodCBjbGljayBmb3IgdGhlIG9wdGlvbnMgZGlhbG9nLiAKCk1PRFVMRSBQQVJBTUVURVJTOgoKICBZb3UgY2FuIHNldCB0aGVzZSB3aXRoOiAgaW5zbW9kIG92NTExIE5BTUU9VkFMVUUKICBUaGVyZSBpcyBjdXJyZW50bHkgbm8gd2F5IHRvIHNldCB0aGVzZSBvbiBhIHBlci1jYW1lcmEgYmFzaXMuCgogIE5BTUU6IGF1dG9icmlnaHQKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDEKICBERVNDOiBCcmlnaHRuZXNzIGlzIG5vcm1hbGx5IHVuZGVyIGF1dG9tYXRpYyBjb250cm9sIGFuZCBjYW4ndCBiZSBzZXQKICAgICAgICBtYW51YWxseSBieSB0aGUgdmlkZW8gYXBwLiBTZXQgdG8gMCBmb3IgbWFudWFsIGNvbnRyb2wuCgogIE5BTUU6IGF1dG9nYWluCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAxCiAgREVTQzogQXV0byBHYWluIENvbnRyb2wgZW5hYmxlLiBUaGlzIGZlYXR1cmUgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KCiAgTkFNRTogYXV0b2V4cAogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMQogIERFU0M6IEF1dG8gRXhwb3N1cmUgQ29udHJvbCBlbmFibGUuIFRoaXMgZmVhdHVyZSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgoKICBOQU1FOiBkZWJ1ZwogIFRZUEU6IGludGVnZXIgKDAtNikKICBERUZBVUxUOiAzCiAgREVTQzogU2V0cyB0aGUgdGhyZXNob2xkIGZvciBwcmludGluZyBkZWJ1ZyBtZXNzYWdlcy4gVGhlIGhpZ2hlciB0aGUgdmFsdWUsCiAgICAgICAgdGhlIG1vcmUgaXMgcHJpbnRlZC4gVGhlIGxldmVscyBhcmUgY3VtdWxhdGl2ZSwgYW5kIGFyZSBhcyBmb2xsb3dzOgogICAgICAgICAgMD1ubyBkZWJ1ZyBtZXNzYWdlcwogICAgICAgICAgMT1pbml0L2RldGVjdGlvbi91bmxvYWQgYW5kIG90aGVyIHNpZ25pZmljYW50IG1lc3NhZ2VzCiAgICAgICAgICAyPXNvbWUgd2FybmluZyBtZXNzYWdlcwogICAgICAgICAgMz1jb25maWcvY29udHJvbCBmdW5jdGlvbiBjYWxscwogICAgICAgICAgND1tb3N0IGZ1bmN0aW9uIGNhbGxzIGFuZCBkYXRhIHBhcnNpbmcgbWVzc2FnZXMKICAgICAgICAgIDU9aGlnaGx5IHJlcGV0aXRpdmUgbWVzZ3MKCiAgTkFNRTogc25hcHNob3QKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAKICBERVNDOiBTZXQgdG8gMSB0byBlbmFibGUgc25hcHNob3QgbW9kZS4gcmVhZCgpL1ZJRElPQ1NZTkMgd2lsbCBibG9jayB1bnRpbAoJdGhlIHNuYXBzaG90IGJ1dHRvbiBpcyBwcmVzc2VkLiBOb3RlOiBlbmFibGluZyB0aGlzIG1vZGUgZGlzYWJsZXMKCS9wcm9jL3ZpZGVvL292NTExLzxtaW5vciM+L2J1dHRvbgoKICBOQU1FOiBjYW1zCiAgVFlQRTogaW50ZWdlciAoMS00IGZvciBPVjUxMSwgMS0zMSBmb3IgT1Y1MTErKQogIERFRkFVTFQ6IDEKICBERVNDOiBOdW1iZXIgb2YgY2FtZXJhcyBhbGxvd2VkIHRvIHN0cmVhbSBzaW11bHRhbmVvdXNseSBvbiBhIHNpbmdsZSBidXMuCiAgICAgICAgVmFsdWVzIGhpZ2hlciB0aGFuIDEgcmVkdWNlIHRoZSBkYXRhIHJhdGUgb2YgZWFjaCBjYW1lcmEsIGFsbG93aW5nIHR3bwogICAgICAgIG9yIG1vcmUgdG8gYmUgdXNlZCBhdCBvbmNlLiBJZiB5b3UgaGF2ZSBhIGNvbXBsaWNhdGVkIHNldHVwIGludm9sdmluZwogICAgICAgIGJvdGggT1Y1MTEgYW5kIE9WNTExKyBjYW1lcmFzLCB0cmlhbC1hbmQtZXJyb3IgbWF5IGJlIG5lY2Vzc2FyeSBmb3IKICAgICAgICBmaW5kaW5nIHRoZSBvcHRpbXVtIHNldHRpbmcuCgogIE5BTUU6IGNvbXByZXNzCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwCiAgREVTQzogU2V0IHRoaXMgdG8gMSB0byB0dXJuIG9uIHRoZSBjYW1lcmEncyBjb21wcmVzc2lvbiBlbmdpbmUuIFRoaXMgY2FuCiAgICAgICAgcG90ZW50aWFsbHkgaW5jcmVhc2UgdGhlIGZyYW1lIHJhdGUgYXQgdGhlIGV4cGVuc2Ugb2YgcXVhbGl0eSwgaWYgeW91CiAgICAgICAgaGF2ZSBhIGZhc3QgQ1BVLiBZb3UgbXVzdCBsb2FkIHRoZSBwcm9wZXIgY29tcHJlc3Npb24gbW9kdWxlIGZvciB5b3VyCiAgICAgICAgY2FtZXJhIGJlZm9yZSBzdGFydGluZyB5b3VyIGFwcGxpY2F0aW9uIChvdjUxMV9kZWNvbXAgb3Igb3Y1MThfZGVjb21wKS4KCiAgTkFNRTogdGVzdHBhdAogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMAogIERFU0M6IFRoaXMgY29uZmlndXJlcyB0aGUgY2FtZXJhJ3Mgc2Vuc29yIHRvIHRyYW5zbWl0IGEgY29sb3JlZCB0ZXN0LXBhdHRlcm4KICAgICAgICBpbnN0ZWFkIG9mIGFuIGltYWdlLiBUaGlzIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5IHlldC4KCiAgTkFNRTogZHVtcHBpeAogIFRZUEU6IGludGVnZXIgKDAtMikKICBERUZBVUxUOiAwCiAgREVTQzogRHVtcHMgcmF3IHBpeGVsIGRhdGEgYW5kIHNraXBzIHBvc3QtcHJvY2Vzc2luZyBhbmQgZm9ybWF0IGNvbnZlcnNpb24uCglJdCBpcyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIG9ubHkuIE9wdGlvbnMgYXJlOgoJCTA6IERpc2FibGUgKGRlZmF1bHQpCgkJMTogRHVtcCByYXcgZGF0YSBmcm9tIGNhbWVyYSwgZXhjbHVkaW5nIGhlYWRlcnMgYW5kIHRyYWlsZXJzCgkJMjogRHVtcHMgZGF0YSBleGFjdGx5IGFzIHJlY2VpdmVkIGZyb20gY2FtZXJhCgogIE5BTUU6IGxlZAogIFRZUEU6IGludGVnZXIgKDAtMikKICBERUZBVUxUOiAxIChBbHdheXMgb24pCiAgREVTQzogQ29udHJvbHMgd2hldGhlciB0aGUgTEVEICh0aGUgbGl0dGxlIGxpZ2h0KSBvbiB0aGUgZnJvbnQgb2YgdGhlIGNhbWVyYQoJaXMgYWx3YXlzIG9mZiAoMCksIGFsd2F5cyBvbiAoMSksIG9yIG9ubHkgb24gd2hlbiBkcml2ZXIgaXMgb3BlbiAoMikuCglUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGUgT1Y1MTEsIGFuZCBtaWdodCBvbmx5IHdvcmsgd2l0aCBjZXJ0YWluCgljYW1lcmFzIChvbmVzIHRoYXQgYWN0dWFsbHkgaGF2ZSB0aGUgTEVEIHdpcmVkIHRvIHRoZSBjb250cm9sIHBpbiwgYW5kCglub3QganVzdCBoYXJkLXdpcmVkIHRvIGJlIG9uIGFsbCB0aGUgdGltZSkuCgogIE5BTUU6IGR1bXBfYnJpZGdlCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwCiAgREVTQzogRHVtcHMgdGhlIGJyaWRnZSAoT1Y1MTFbK10gb3IgT1Y1MThbK10pIHJlZ2lzdGVyIHZhbHVlcyB0byB0aGUgc3lzdGVtCglsb2cuIE9ubHkgdXNlZnVsIGZvciBzZXJpb3VzIGRlYnVnZ2luZy9kZXZlbG9wbWVudCBwdXJwb3Nlcy4KCiAgTkFNRTogZHVtcF9zZW5zb3IKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAKICBERVNDOiBEdW1wcyB0aGUgc2Vuc29yIHJlZ2lzdGVyIHZhbHVlcyB0byB0aGUgc3lzdGVtIGxvZy4gT25seSB1c2VmdWwgZm9yCglzZXJpb3VzIGRlYnVnZ2luZy9kZXZlbG9wbWVudCBwdXJwb3Nlcy4KCiAgTkFNRTogcHJpbnRwaAogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMAogIERFU0M6IFNldHRpbmcgdGhpcyB0byAxIHdpbGwgZHVtcCB0aGUgZmlyc3QgMTIgYnl0ZXMgb2YgZWFjaCBpc29jIGZyYW1lLiBUaGlzCglpcyBvbmx5IHVzZWZ1bCBpZiB5b3UgYXJlIHRyeWluZyB0byBkZWJ1ZyBwcm9ibGVtcyB3aXRoIHRoZSBpc29jIGRhdGEKCXN0cmVhbSAoaS5lLjogY2FtZXJhIGluaXRpYWxpemVzLCBidXQgdmlkY2F0IGhhbmdzIHVudGlsIEN0cmwtQykuIEJlCgl3YXJuZWQgdGhhdCB0aGlzIGR1bXBzIGEgbGFyZ2UgbnVtYmVyIG9mIG1lc3NhZ2VzIHRvIHlvdXIga2VybmVsIGxvZy4KCiAgTkFNRTogcGh5LCBwaHV2LCBwdnksIHB2dXYsIHFoeSwgcWh1diwgcXZ5LCBxdnV2CiAgVFlQRTogaW50ZWdlciAoMC02MyBmb3IgcGh5IGFuZCBwaHV2LCAwLTI1NSBmb3IgcmVzdCkKICBERUZBVUxUOiBPVjUxMSBkZWZhdWx0IHZhbHVlcwogIERFU0M6IFRoZXNlIGFyZSByZWdpc3RlcnMgNzBoIC0gNzdoIG9mIHRoZSBPVjUxMSwgd2hpY2ggY29udHJvbCB0aGUKCXByZWRpY3Rpb24gcmFuZ2VzIGFuZCBxdWFudGl6YXRpb24gdGhyZXNob2xkcyBvZiB0aGUgY29tcHJlc3NvciwgZm9yCgl0aGUgWSBhbmQgVVYgY2hhbm5lbHMgaW4gdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIGRpcmVjdGlvbnMuIFNlZQoJdGhlIE9WNTExIG9yIE9WNTExKyBkYXRhIHNoZWV0IGZvciBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9ucy4gVGhlc2UKCW5vcm1hbGx5IGRvIG5vdCBuZWVkIHRvIGJlIGNoYW5nZWQuCgogIE5BTUU6IGxpZ2h0ZnJlcQogIFRZUEU6IGludGVnZXIgKDAsIDUwLCBvciA2MCkKICBERUZBVUxUOiAwICh1c2Ugc2Vuc29yIGRlZmF1bHQpCiAgREVTQzogU2V0cyB0aGUgc2Vuc29yIHRvIG1hdGNoIHlvdXIgbGlnaHRpbmcgZnJlcXVlbmN5LiBUaGlzIGNhbiByZWR1Y2UgdGhlCglhcHBlYXJhbmNlIG9mICJiYW5kaW5nIiwgaS5lLiBob3Jpem9udGFsIGxpbmVzIG9yIHdhdmVzIG9mIGxpZ2h0IGFuZAoJZGFyayB0aGF0IGFyZSBvZnRlbiBjYXVzZWQgYnkgYXJ0aWZpY2lhbCBsaWdodGluZy4gVmFsaWQgdmFsdWVzIGFyZToKCQkwIC0gVXNlIGRlZmF1bHQgKGRlcGVuZHMgb24gc2Vuc29yLCBtb3N0IGxpa2VseSA2MCBIeikKCQk1MCAtIEZvciBFdXJvcGVhbiBhbmQgQXNpYW4gNTAgSHogcG93ZXIKCQk2MCAtIEZvciBBbWVyaWNhbiA2MCBIeiBwb3dlcgoKICBOQU1FOiBiYW5kaW5nZmlsdGVyCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwIChvZmYpCiAgREVTQzogRW5hYmxlcyB0aGUgc2Vuc29ytHMgYmFuZGluZyBmaWx0ZXIgZXhwb3N1cmUgYWxnb3JpdGhtLiBUaGlzIHJlZHVjZXMKCW9yIHN0YWJpbGl6ZXMgdGhlICJiYW5kaW5nIiBjYXVzZWQgYnkgc29tZSBhcnRpZmljaWFsIGxpZ2h0IHNvdXJjZXMKCShlc3BlY2lhbGx5IGZsdW9yZXNjZW50KS4gWW91IG1pZ2h0IGhhdmUgdG8gc2V0IGxpZ2h0ZnJlcSBjb3JyZWN0bHkgZm9yCgl0aGlzIHRvIHdvcmsgcmlnaHQuIEFzIGFuIGFkZGVkIGJvbnVzLCB0aGlzIHNvbWV0aW1lcyBtYWtlcyBpdAoJcG9zc2libGUgdG8gY2FwdHVyZSB5b3VyIG1vbml0b3K0cyBvdXRwdXQuCgogIE5BTUU6IGZhc3RzZXQKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAgKG9mZikKICBERVNDOiBBbGxvd3MgcGljdHVyZSBzZXR0aW5ncyAoYnJpZ2h0bmVzcywgY29udHJhc3QsIGNvbG9yLCBhbmQgaHVlKSB0byB0YWtlCgllZmZlY3QgaW1tZWRpYXRlbHksIGV2ZW4gaW4gdGhlIG1pZGRsZSBvZiBhIGZyYW1lLiBUaGlzIHJlZHVjZXMgdGhlCgl0aW1lIHRvIGNoYW5nZSBzZXR0aW5ncywgYnV0IGNhbiBydWluIGZyYW1lcyBkdXJpbmcgdGhlIGNoYW5nZS4gT25seQoJYWZmZWN0cyBPbW5pVmlzaW9uIHNlbnNvcnMuCgogIE5BTUU6IGZvcmNlX3BhbGV0dGUKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAgKG9mZikKICBERVNDOiBGb3JjZXMgdGhlIHBhbGV0dGUgKGNvbG9yIGZvcm1hdCkgdG8gYSBzcGVjaWZpYyB2YWx1ZS4gSWYgYW4KCWFwcGxpY2F0aW9uIHJlcXVlc3RzIGEgZGlmZmVyZW50IHBhbGV0dGUsIGl0IHdpbGwgYmUgcmVqZWN0ZWQsIHRoZXJlYnkKCWZvcmNpbmcgaXQgdG8gdHJ5IG90aGVycyB1bnRpbCBpdCBzdWNjZWVkcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGZvcmNpbmcKCWdyZXlzY2FsZSBtb2RlIHdpdGggYSBjb2xvciBjYW1lcmEsIGZvciBleGFtcGxlLiBTdXBwb3J0ZWQgbW9kZXMgYXJlOgoJCTAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWxsb3dzIGFsbCB0aGUgZm9sbG93aW5nIGZvcm1hdHMpCgkJMSAgIFZJREVPX1BBTEVUVEVfR1JFWSAgICAgIChMaW5lYXIgZ3JleXNjYWxlKQoJCTEwICBWSURFT19QQUxFVFRFX1lVVjQyMCAgICAoWVVWIDQ6MjowIFBsYW5hcikKCQkxNSAgVklERU9fUEFMRVRURV9ZVVY0MjBQICAgKFlVViA0OjI6MCBQbGFuYXIsIHNhbWUgYXMgMTApCgogIE5BTUU6IGJhY2tsaWdodAogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMCAob2ZmKQogIERFU0M6IFNldHRpbmcgdGhpcyBmbGFnIGNoYW5nZXMgdGhlIGV4cG9zdXJlIGFsZ29yaXRobSBmb3IgT21uaVZpc2lvbiBzZW5zb3JzCglzdWNoIHRoYXQgb2JqZWN0cyBpbiB0aGUgY2FtZXJhJ3MgdmlldyAoaS5lLiB5b3VyIGhlYWQpIGNhbiBiZSBjbGVhcmx5CglzZWVuIHdoZW4gdGhleSBhcmUgaWxsdW1pbmF0ZWQgZnJvbSBiZWhpbmQuIEl0IHJlZHVjZXMgb3IgZWxpbWluYXRlcwoJdGhlIHNlbnNvcidzIGF1dG8tZXhwb3N1cmUgZnVuY3Rpb24sIHNvIGl0IHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbgoJbmVlZGVkLiBBZGRpdGlvbmFsbHksIGl0IGlzIG9ubHkgc3VwcG9ydGVkIHdpdGggdGhlIE9WNjYyMCBhbmQgT1Y3NjIwLgoKICBOQU1FOiB1bml0X3ZpZGVvCiAgVFlQRTogVXAgdG8gMTYgY29tbWEtc2VwYXJhdGVkIGludGVnZXJzCiAgREVGQVVMVDogMCwwLDAuLi4gKGF1dG9tYXRpY2FsbHkgYXNzaWduIHRoZSBuZXh0IGF2YWlsYWJsZSBtaW5vcihzKSkKICBERVNDOiBZb3UgY2FuIHNwZWNpZnkgdXAgdG8gMTYgbWlub3IgbnVtYmVycyB0byBiZSBhc3NpZ25lZCB0byBvdjUxMSBkZXZpY2VzLgoJRm9yIGV4YW1wbGUsICJ1bml0X3ZpZGVvPTEsMyIgd2lsbCBtYWtlIHRoZSBkcml2ZXIgdXNlIC9kZXYvdmlkZW8xIGFuZAoJL2Rldi92aWRlbzMgZm9yIHRoZSBmaXJzdCB0d28gZGV2aWNlcyBpdCBkZXRlY3RzLiBBZGRpdGlvbmFsIGRldmljZXMKCXdpbGwgYmUgYXNzaWduZWQgYXV0b21hdGljYWxseSBzdGFydGluZyBhdCB0aGUgZmlyc3QgYXZhaWxhYmxlIGRldmljZQoJbm9kZSAoL2Rldi92aWRlbzAgaW4gdGhpcyBjYXNlKS4gTm90ZSB0aGF0IHlvdSBjYW5ub3Qgc3BlY2lmeSAwIGFzIGEKCW1pbm9yIG51bWJlci4gVGhpcyBmZWF0dXJlIHJlcXVpcmVzIGtlcm5lbCB2ZXJzaW9uIDIuNC41IG9yIGhpZ2hlci4KCiAgTkFNRTogcmVtb3ZlX3plcm9zCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwIChkbyBub3Qgc2tpcCBhbnkgaW5jb21pbmcgZGF0YSkKICBERVNDOiBTZXR0aW5nIHRoaXMgdG8gMSB3aWxsIHJlbW92ZSB6ZXJvLXBhZGRpbmcgZnJvbSBpbmNvbWluZyBkYXRhLiBUaGlzCgl3aWxsIGNvbXBlbnNhdGUgZm9yIHRoZSBibG9ja3Mgb2YgY29ycnVwdGlvbiB0aGF0IGNhbiBhcHBlYXIgd2hlbiB0aGUKCWNhbWVyYSBjYW5ub3Qga2VlcCB1cCB3aXRoIHRoZSBzcGVlZCBvZiB0aGUgVVNCIGJ1cyAoZWcuIGF0IGxvdyBmcmFtZQoJcmVzb2x1dGlvbnMpLiBUaGlzIGZlYXR1cmUgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBjb21wcmVzc2lvbiBpcyBvbi4KCiAgTkFNRTogbWlycm9yCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwIChvZmYpCiAgREVTQzogU2V0dGluZyB0aGlzIHRvIDEgd2lsbCByZXZlcnNlICgibWlycm9yIikgdGhlIGltYWdlIGhvcml6b250YWxseS4gVGhpcwoJbWlnaHQgYmUgbmVjZXNzYXJ5IGlmIHlvdXIgY2FtZXJhIGhhcyBhIGN1c3RvbSBsZW5zIGFzc2VtYmx5LiBUaGlzIGhhcwoJbm8gZWZmZWN0IHdpdGggdmlkZW8gY2FwdHVyZSBkZXZpY2VzLgoKICBOQU1FOiBvdjUxOF9jb2xvcgogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMCAob2ZmKQogIERFU0M6IEVuYWJsZSBPVjUxOCBjb2xvciBzdXBwb3J0LiBUaGlzIGlzIG9mZiBieSBkZWZhdWx0IHNpbmNlIGl0IGRvZXNuJ3QKCXdvcmsgbW9zdCBvZiB0aGUgdGltZS4gSWYgeW91IHdhbnQgdG8gdHJ5IGl0LCB5b3UgbXVzdCBhbHNvIGxvYWQKCW92NTE4X2RlY29tcCB3aXRoIHRoZSAibm91dj0wIiBwYXJhbWV0ZXIuIElmIHlvdSBnZXQgaW1wcm9wZXIgY29sb3JzIG9yCglkaWFnb25hbCBsaW5lcyB0aHJvdWdoIHRoZSBpbWFnZSwgcmVzdGFydCB5b3VyIHZpZGVvIGFwcCBhbmQgdHJ5IGFnYWluLgoJUmVwZWF0IGFzIG5lY2Vzc2FyeS4KCldPUktJTkcgRkVBVFVSRVM6CiBvIENvbG9yIHN0cmVhbWluZy9jYXB0dXJlIGF0IG1vc3Qgd2lkdGhzIGFuZCBoZWlnaHRzIHRoYXQgYXJlIG11bHRpcGxlcyBvZiA4LgogbyBNb25vY2hyb21lICh1c2UgZm9yY2VfcGFsZXR0ZT0xIHRvIGVuYWJsZSkKIG8gU2V0dGluZy9nZXR0aW5nIG9mIHNhdHVyYXRpb24sIGNvbnRyYXN0LCBicmlnaHRuZXNzLCBhbmQgaHVlIChvbmx5IHNvbWUgb2YKICAgdGhlbSB3b3JrIHRoZSBPVjc2MjAgYW5kIE9WNzYyMEFFKQogbyAvcHJvYyBzdGF0dXMgcmVwb3J0aW5nCiBvIFNBQTcxMTFBIHZpZGVvIGNhcHR1cmUgc3VwcG9ydCBhdCAzMjB4MjQwIGFuZCA2NDB4NDgwCiBvIENvbXByZXNzaW9uIHN1cHBvcnQKIG8gU01QIGNvbXBhdGliaWxpdHkKCkhPVyBUTyBDT05UQUNUIE1FOgoKWW91IGNhbiBlbWFpbCBtZSBhdCBtYXJrQGFscGhhLmR5bmRucy5vcmcgLiBQbGVhc2UgcHJlZml4IHRoZSBzdWJqZWN0IGxpbmUKd2l0aCAiT1Y1MTE6ICIgc28gdGhhdCBJIGFtIGNlcnRhaW4gdG8gbm90aWNlIHlvdXIgbWVzc2FnZS4KCkNSRURJVFM6CgpUaGUgY29kZSBpcyBiYXNlZCBpbiBubyBzbWFsbCBwYXJ0IG9uIHRoZSBDUGlBIGRyaXZlciBieSBKb2hhbm5lcyBFcmRmZWx0LApSYW5keSBEdW5sYXAsIGFuZCBvdGhlcnMuIEJpZyB0aGFua3MgdG8gdGhlbSBmb3IgdGhlaXIgcGlvbmVlcmluZyB3b3JrIG9uIHRoYXQKYW5kIHRoZSBVU0Igc3RhY2suIFRoYW5rcyB0byBCcmV0IFdhbGxhY2ggZm9yIGdldHRpbmcgY2FtZXJhIHJlZyBJTywgSVNPQywgYW5kCmltYWdlIGNhcHR1cmUgd29ya2luZy4gVGhhbmtzIHRvIE9yaW9uIFNreSBMYXdsb3IsIEtldmluIE1vb3JlLCBhbmQgQ2xhdWRpbwpNYXRzdW9rYSBmb3IgdGhlaXIgd29yayBhcyB3ZWxsLgoK