From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 545006EBDE for ; Thu, 27 Feb 2020 00:09:26 +0000 (UTC) From: Akeem G Abodunrin Date: Thu, 27 Feb 2020 00:09:25 +0000 Message-Id: <20200227000925.16988-2-akeem.g.abodunrin@intel.com> In-Reply-To: <20200227000925.16988-1-akeem.g.abodunrin@intel.com> References: <20200227000925.16988-1-akeem.g.abodunrin@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v6 1/1] tools/generate_cb_kernel: Add script to assemble CB kernel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: akeem.g.abodunrin@intel.com, igt-dev@lists.freedesktop.org, tony.luck@intel.com, jon.bloomfield@intel.com, sudeep.dutt@intel.com, daniel.vetter@intel.com, joonas.lahtinen@linux.intel.com, jani.nikula@intel.com, chris.p.wilson@intel.com, prathap.kumar.valsan@intel.com, mika.kuoppala@intel.com, francesco.balestrieri@intel.com, ville.syrjala@linux.intel.com, petri.latvala@intel.com List-ID: VGhpcyBwYXRjaCBhZGRzIHNjcmlwdCBhbmQgYXBwbGljYWJsZSBhc3NlbWJseSBzb3VyY2VzLCBz byB0aGF0IHdlIGNhbiB1c2UKaWd0IHRvIGFzc2VtYmxlIENsZWFyIEJhdGNoIEJ1ZmZlciBrZXJu ZWwgZm9yIGdlbjcgYW5kIGdlbjcuNSBkZXZpY2VzIC0KUmVzdWx0YW50IGhlYWRlciBmaWxlcyB3 b3VsZCBiZSBpbXBvcnRlZCB0byBpOTE1LCBhbmQgdXNlZCBhcyB0aGV5IGFyZS4uLgoKV2l0aCB0 aGlzIHBhdGNoLCB1c2VyIG5lZWQgdG8gaGF2ZSBtZXNhIGNvbmZpZ3VyZWQgb24gdGhlaXIgcGxh dGZvcm0sCmJlZm9yZSBpZ3QgY291bGQgYmUgdXNlZCB0byBhY2hpZXZlIHRoZSBwdXJwb3NlIG9m IGFzc2VtYmxpbmcgdGhlIGtlcm5lbApmcm9tIHNvdXJjZS4KClRoaXMgaXMgbmVlZGVkIGZvciAi U2VjdXJpdHkgbWl0aWdhdGlvbiBmb3IgSW50ZWwgR2VuNy83LjUgSFdzIgpJbnRlbCBJRDogUFNJ UlQtVEEtMjAxOTEwLTAwMS9DVkVJRDogQ1ZFLTIwMTktMTQ2MTUKCnYyOiBBZGRyZXNzZWQgZm9y bWF0dGluZywgLWcgb3B0aW9uIGFuZCBvdGhlciBtaW5vciBpc3N1ZXMgKFBldHJpKQp2MzogVXBk YXRlIHNjcmlwdCBkdWUgdG8gc3VnZ2VzdGVkIGNoYW5nZXMgaW4gaTkxNSwgYW5kIE1lc2EgdG9v bAp2NDogVXBkYXRlIGhlbHAgY29tbWVudCB3aXRoIE1lc2EgYnVpbGQgb3B0aW9uIHdpdGggbWVz b24gKFBldHJpKQp2NTogTW9kaWZ5IGhvdyB1c2VyIHNwZWNpZnkgaTk2NV9hc20gLSBzY3JpcHQg bm93IHRha2VzIGJpbmFyeSwgaW5zdGVhZApvZiBNZXNhIHRvb2wgc291cmNlIGRpcmVjdG9yeSAo VmlsbGUpLgp2NjogVXBkYXRlIHNjcmlwdCB0byByZWZsZWN0IE1lc2EgdG9vbCBmaW5hbCBjaGFu Z2VzIHRvIGFzc2VtYmxlIENCCmtlcm5lbCAtIGFuZCByZW5hbWVkIGZpbGVzIGJhc2VkIG9uIFBl dHJpJ3Mgc3VnZ2VzdGlvbi4uLgoKQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgpD YzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzog UGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+CkNjOiBCbG9vbWZpZWxkIEpv biA8am9uLmJsb29tZmllbGRAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBa2VlbSBHIEFib2R1 bnJpbiA8YWtlZW0uZy5hYm9kdW5yaW5AaW50ZWwuY29tPgotLS0KIGxpYi9pOTE1L3NoYWRlcnMv Y2xlYXJfa2VybmVsL2hzdy5hc20gfCAxNDEgKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIv aTkxNS9zaGFkZXJzL2NsZWFyX2tlcm5lbC9pdmIuYXNtIHwgMTM5ICsrKysrKysrKysrKysrKysr KysrKysrKwogc2NyaXB0cy9nZW5lcmF0ZV9jbGVhcl9rZXJuZWwuc2ggICAgICB8IDE1MSArKysr KysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA0MzEgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1L3NoYWRlcnMvY2xlYXJfa2VybmVsL2hzdy5h c20KIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvaTkxNS9zaGFkZXJzL2NsZWFyX2tlcm5lbC9pdmIu YXNtCiBjcmVhdGUgbW9kZSAxMDA3NTUgc2NyaXB0cy9nZW5lcmF0ZV9jbGVhcl9rZXJuZWwuc2gK CmRpZmYgLS1naXQgYS9saWIvaTkxNS9zaGFkZXJzL2NsZWFyX2tlcm5lbC9oc3cuYXNtIGIvbGli L2k5MTUvc2hhZGVycy9jbGVhcl9rZXJuZWwvaHN3LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMC4uYmMyOWJhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvaTkxNS9zaGFk ZXJzL2NsZWFyX2tlcm5lbC9oc3cuYXNtCkBAIC0wLDAgKzEsMTQxIEBACisvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMjAgSW50ZWwgQ29y cG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAq IHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisg KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP TERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF LCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisg KgorICovCisKKy8qKgorICogS2VybmVsIG5hbWU6IGhzd19jbGVhcl9idWYuYXNtCisgKgorICog S2VybmVsIGZvciBQQVZQIGJ1ZmZlciBjbGVhci4KKyAqCisgKgkxLiBDbGVhciBhbGwgNjQgR1JG IHJlZ2lzdGVycyBhc3NpZ25lZCB0byB0aGUga2VybmVsIHdpdGggZGVzaWduYXRlZCB2YWx1ZTsK KyAqCTIuIFdyaXRlIDMyeDE2IGJsb2NrIG9mIGFsbCAiMCIgdG8gcmVuZGVyIHRhcmdldCBidWZm ZXIgd2hpY2ggaW5kaXJlY3RseSBjbGVhcnMKKyAqCSAgIDUxMiBieXRlcyBvZiBSZW5kZXIgQ2Fj aGUuCisgKi8KKworLyogU3RvcmUgZGVzaWduYXRlZCAiY2xlYXIgR1JGIiB2YWx1ZSAqLworbW92 KDEpICAgICAgICAgIGYwLjE8MT5VVyAgICAgICBnMS4yPDAsMSwwPlVXICAgICAgICAgICAgICAg ICAgIHsgYWxpZ24xIDFOIH07CisKKy8qKgorICogQ3VyYmUgRm9ybWF0CisgKgorICogRFcgMS4w IC0gQmxvY2sgT2Zmc2V0IHRvIHdyaXRlIFJlbmRlciBDYWNoZQorICogRFcgMS4xIFsxNTowXSAt IENsZWFyIFdvcmQKKyAqIERXIDEuMiAtIERlbGF5IGl0ZXJhdGlvbnMKKyAqIERXIDEuMyAtIEVu YWJsZSBJbnN0cnVtZW50YXRpb24gKG9ubHkgZm9yIGRlYnVnKQorICogRFcgMS40IC0gUnN2ZCAo aW50ZW5kZWQgZm9yIGNvbnRleHQgSUQpCisgKiBEVyAxLjUgLSBbMzE6MTZdOlNsaWNlQ291bnQs IFsxNTowXTpTdWJTbGljZVBlclNsaWNlQ291bnQKKyAqIERXIDEuNiAtIFJzdmQgTUJaIChpbnRl bmRlZCBmb3IgRW5hYmxlIFdhaXQgb24gVG90YWwgVGhyZWFkIENvdW50KQorICogRFcgMS43IC0g UnN2ZCBNQlogKGludGVkZWQgZm9yIFRvdGFsIFRocmVhZCBDb3VudCkKKyAqCisgKiBCaW5kaW5n IFRhYmxlCisgKgorICogQlRJIDA6IDJEIFN1cmZhY2UgdG8gaGVscCBjbGVhciBMMyAoUmVuZGVy L0RhdGEgQ2FjaGUpCisgKiBCVEkgMTogV2FpdC9JbnN0cnVtZW50YXRpb24gQnVmZmVyCisgKiAg U2l6ZSA6IChTbGljZUNvdW50ICogU3ViU2xpY2VDb3VudCAgKiAxNiBFVXMvU3ViU2xpY2UpIHJv d3MgKiAoMTYgdGhyZWFkcy9FVSkgY29scyAoRm9ybWF0IFIzMl9VSU5UKQorICogICAgICAgICBF eHBlY3RlZCB0byBiZSBpbml0aWFsaXplZCB0byAwIGJ5IGRyaXZlci9hbm90aGVyIGtlcm5lbAor ICogIExheW91dDoKKyAqICAgICAgICAgIFJvd046IEhpc3RvZ3JhbSBmb3IgRVUtTjogKFNsaWNl SUQqU3ViU2xpY2VQZXJTbGljZUNvdW50ICsgU1NJRCkqMTYgKyBFVUlEIFthc3N1bWUgbWF4IDE2 IEVVcyAvIFNTXQorICogICAgICAgICAgQ29sLWtbRFcta106IFRocmVhZHMgRXhlY3V0ZWQgb24g VGhyZWFkSUQtayBmb3IgRVUtTgorICovCithZGQoMSkgICAgICAgICAgZzEuMjwxPlVEICAgICAg IGcxLjI8MCwxLDA+VUQgICAweDAwMDAwMDAxVUQgICAgeyBhbGlnbjEgMU4gfTsgLyogTG9vcCBj b3VudCB0byBkZWxheSBrZXJuZWw6IEluaXQgdG8gKGcxLjIgKyAxKSAqLworY21wLnouZjAuMCgx KSAgIG51bGw8MT5VRCAgICAgICBnMS4zPDAsMSwwPlVEICAgMHgwMDAwMDAwMFVEICAgIHsgYWxp Z24xIDFOIH07CisoK2YwLjApIGptcGkoMSkgMzUyRCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeyBhbGlnbjEgV0VfYWxsIDFOIH07CisKKy8qKgorICogU3RhdGUg UmVnaXN0ZXIgaGFzIGluZm8gb24gd2hlcmUgdGhpcyB0aHJlYWQgaXMgcnVubmluZworICoJSVZC OiBzcjAuMCA6OiBbMTU6MTNdOiBNQlosIDEyOiBIU0lEIChIYWxmLVNsaWNlIElEKSwgWzExOjhd RVVJRCwgWzI6MF0gVGhyZWFkU2xvdElECisgKglIU1c6IHNyMC4wIDo6IDE1OiBNQlosIFsxNDox M106IFNsaWNlSUQsIDEyOiBIU0lEIChIYWxmLVNsaWNlIElEKSwgWzExOjhdRVVJRCwgWzI6MF0g VGhyZWFkU2xvdElECisgKi8KK21vdig4KSAgICAgICAgICBnMzwxPlVEICAgICAgICAgMHgwMDAw MDAwMFVEICAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAxUSB9Oworc2hyKDEpICAgICAgICAg IGczPDE+RCAgICAgICAgICBzcjA8MCwxLDA+RCAgICAgMTJEICAgICAgICAgICAgIHsgYWxpZ24x IDFOIH07CithbmQoMSkgICAgICAgICAgZzM8MT5EICAgICAgICAgIGczPDAsMSwwPkQgICAgICAx RCAgICAgICAgICAgICAgeyBhbGlnbjEgMU4gfTsgLyogZzMgaGFzIEhTSUQgKi8KK3NocigxKSAg ICAgICAgICBnMy4xPDE+RCAgICAgICAgc3IwPDAsMSwwPkQgICAgIDEzRCAgICAgICAgICAgICB7 IGFsaWduMSAxTiB9OworYW5kKDEpICAgICAgICAgIGczLjE8MT5EICAgICAgICBnMy4xPDAsMSww PkQgICAgM0QgICAgICAgICAgICAgIHsgYWxpZ24xIDFOIH07IC8qIGczLjEgaGFzIHNsaWNlSUQg Ki8KK211bCgxKSAgICAgICAgICBnMy41PDE+RCAgICAgICAgZzMuMTwwLDEsMD5EICAgIGcxLjEw PDAsMSwwPlVXICB7IGFsaWduMSAxTiB9OworYWRkKDEpICAgICAgICAgIGczPDE+RCAgICAgICAg ICBnMzwwLDEsMD5EICAgICAgZzMuNTwwLDEsMD5EICAgIHsgYWxpZ24xIDFOIH07IC8qIGczID0g c2xpY2VJRCAqIFN1YlNsaWNlUGVyU2xpY2VDb3VudCArIEhTSUQgKi8KK3NocigxKSAgICAgICAg ICBnMy4yPDE+RCAgICAgICAgc3IwPDAsMSwwPkQgICAgIDhEICAgICAgICAgICAgICB7IGFsaWdu MSAxTiB9OworYW5kKDEpICAgICAgICAgIGczLjI8MT5EICAgICAgICBnMy4yPDAsMSwwPkQgICAg MTVEICAgICAgICAgICAgIHsgYWxpZ24xIDFOIH07IC8qIGczLjIgPSBFVUlEICovCittdWwoMSkg ICAgICAgICAgZzMuNDwxPkQgICAgICAgIGczPDAsMSwwPkQgICAgICAxNkQgICAgICAgICAgICAg eyBhbGlnbjEgMU4gfTsKK2FkZCgxKSAgICAgICAgICBnMy4yPDE+RCAgICAgICAgZzMuMjwwLDEs MD5EICAgIGczLjQ8MCwxLDA+RCAgICB7IGFsaWduMSAxTiB9OyAvKiBnMy4yIG5vdyBwb2ludHMg dG8gRVUgcm93IG51bWJlciAoWS1waXhlbCA9IFYgYWRkcmVzcyApICBpbiBpbnN0cnVtZW50YXRp b24gc3VyZiAqLworCittb3YoOCkgICAgICAgICAgZzU8MT5VRCAgICAgICAgIDB4MDAwMDAwMDBV RCAgICAgICAgICAgICAgICAgICAgeyBhbGlnbjEgMVEgfTsKK2FuZCgxKSAgICAgICAgICBnMy4z PDE+RCAgICAgICAgc3IwPDAsMSwwPkQgICAgIDdEICAgICAgICAgICAgICB7IGFsaWduMSAxTiB9 OworbXVsKDEpICAgICAgICAgIGczLjM8MT5EICAgICAgICBnMy4zPDAsMSwwPkQgICAgNEQgICAg ICAgICAgICAgIHsgYWxpZ24xIDFOIH07CisKK21vdig4KSAgICAgICAgICBnNDwxPlVEICAgICAg ICAgZzA8OCw4LDE+VUQgICAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAxUSB9OyAvKiBJbml0 aWFsaXplIG1lc3NhZ2UgaGVhZGVyIHdpdGggZzAgKi8KK21vdigxKSAgICAgICAgICBnNDwxPlVE ICAgICAgICAgZzMuMzwwLDEsMD5VRCAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAxTiB9OyAv KiBCbG9jayBvZmZzZXQgKi8KK21vdigxKSAgICAgICAgICBnNC4xPDE+VUQgICAgICAgZzMuMjww LDEsMD5VRCAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAxTiB9OyAvKiBCbG9jayBvZmZzZXQg Ki8KK21vdigxKSAgICAgICAgICBnNC4yPDE+VUQgICAgICAgMHgwMDAwMDAwM1VEICAgICAgICAg ICAgICAgICAgICB7IGFsaWduMSAxTiB9OyAvKiBCbG9jayBzaXplICgxIHJvdyB4IDQgYnl0ZXMp ICovCithbmQoMSkgICAgICAgICAgZzQuMzwxPlVEICAgICAgIGc0LjM8MCwxLDA+VVcgICAweGZm ZmZmZmZmVUQgICAgeyBhbGlnbjEgMU4gfTsKKworLyogTWVkaWEgYmxvY2sgcmVhZCB0byBmZXRj aCBjdXJyZW50IHZhbHVlIGF0IHNwZWNpZmllZCBsb2NhdGlvbiBpbiBpbnN0cnVtZW50YXRpb24g YnVmZmVyICovCitzZW5kYyg4KSAgICAgICAgZzU8MT5VRCAgICAgICAgIGc0PDgsOCwxPkYgICAg ICAweDAyMTkwMDAxCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXIgTXNnRGVz YzogbWVkaWEgYmxvY2sgcmVhZCBNc2dDdHJsID0gMHgwIFN1cmZhY2UgPSAxIG1sZW4gMSBybGVu IDEgeyBhbGlnbjEgMVEgfTsKK2FkZCgxKSAgICAgICAgICBnNTwxPkQgICAgICAgICAgZzU8MCwx LDA+RCAgICAgIDFEICAgICAgICAgICAgICB7IGFsaWduMSAxTiB9OworCisvKiBNZWRpYSBibG9j ayB3cml0ZSBmb3IgdXBkYXRlZCB2YWx1ZSBhdCBzcGVjaWZpZWQgbG9jYXRpb24gaW4gaW5zdHJ1 bWVudGF0aW9uIGJ1ZmZlciAqLworc2VuZGMoOCkgICAgICAgIGc1PDE+VUQgICAgICAgICBnNDw4 LDgsMT5GICAgICAgMHgwNDBhODAwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRl ciBNc2dEZXNjOiBtZWRpYSBibG9jayB3cml0ZSBNc2dDdHJsID0gMHgwIFN1cmZhY2UgPSAxIG1s ZW4gMiBybGVuIDAgeyBhbGlnbjEgMVEgfTsKKworLyogRGVsYXkgdGhyZWFkIGZvciBzcGVjaWZp ZWQgcGFyYW1ldGVyICovCithZGQubnouZjAuMCgxKSAgZzEuMjwxPlVEICAgICAgIGcxLjI8MCwx LDA+VUQgICAtMUQgICAgICAgICAgICAgeyBhbGlnbjEgMU4gfTsKKygrZjAuMCkgam1waSgxKSAt MzJEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGFsaWduMSBX RV9hbGwgMU4gfTsKKworLyogU3RvcmUgZGVzaWduYXRlZCAiY2xlYXIgR1JGIiB2YWx1ZSAqLwor bW92KDEpICAgICAgICAgIGYwLjE8MT5VVyAgICAgICBnMS4yPDAsMSwwPlVXICAgICAgICAgICAg ICAgICAgIHsgYWxpZ24xIDFOIH07CisKKy8qIEluaXRpYWxpemUgbG9vcGluZyBwYXJhbWV0ZXJz ICovCittb3YoMSkgICAgICAgICAgYTA8MT5EICAgICAgICAgIDBEICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeyBhbGlnbjEgMU4gfTsgLyogSW5pdGlhbGl6ZSBhMC4wOnc9MCAqLworbW92 KDEpICAgICAgICAgIGEwLjQ8MT5XICAgICAgICAxMjdXICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsgYWxpZ24xIDFOIH07IC8qIExvb3AgY291bnQuIEVhY2ggbG9vcCBjb250YWlucyAxNiBH UkYncyAqLworCisvKiBXcml0ZSAzMngxNiBhbGwgIjAiIGJsb2NrICovCittb3YoOCkgICAgICAg ICAgZzI8MT5VRCAgICAgICAgIGcwPDgsOCwxPlVEICAgICAgICAgICAgICAgICAgICAgeyBhbGln bjEgMVEgfTsKK21vdig4KSAgICAgICAgICBnMTI3PDE+VUQgICAgICAgZzA8OCw4LDE+VUQgICAg ICAgICAgICAgICAgICAgICB7IGFsaWduMSAxUSB9OworbW92KDIpICAgICAgICAgIGcyPDE+VUQg ICAgICAgICBnMTwyLDIsMT5VVyAgICAgICAgICAgICAgICAgICAgIHsgYWxpZ24xIDFOIH07Citt b3YoMSkgICAgICAgICAgZzIuMjwxPlVEICAgICAgIDB4MDAwZjAwMGZVRCAgICAgICAgICAgICAg ICAgICAgeyBhbGlnbjEgMU4gfTsgLyogQmxvY2sgc2l6ZSAoMTZ4MTYpICovCithbmQoMSkgICAg ICAgICAgZzIuMzwxPlVEICAgICAgIGcyLjM8MCwxLDA+VVcgICAweGZmZmZmZmVmVUQgICAgeyBh bGlnbjEgMU4gfTsKK21vdigxNikgICAgICAgICBnMzwxPlVEICAgICAgICAgMHgwMDAwMDAwMFVE ICAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAxSCB9OworbW92KDE2KSAgICAgICAgIGc0PDE+ VUQgICAgICAgICAweDAwMDAwMDAwVUQgICAgICAgICAgICAgICAgICAgIHsgYWxpZ24xIDFIIH07 Cittb3YoMTYpICAgICAgICAgZzU8MT5VRCAgICAgICAgIDB4MDAwMDAwMDBVRCAgICAgICAgICAg ICAgICAgICAgeyBhbGlnbjEgMUggfTsKK21vdigxNikgICAgICAgICBnNjwxPlVEICAgICAgICAg MHgwMDAwMDAwMFVEICAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAxSCB9OworbW92KDE2KSAg ICAgICAgIGc3PDE+VUQgICAgICAgICAweDAwMDAwMDAwVUQgICAgICAgICAgICAgICAgICAgIHsg YWxpZ24xIDFIIH07Cittb3YoMTYpICAgICAgICAgZzg8MT5VRCAgICAgICAgIDB4MDAwMDAwMDBV RCAgICAgICAgICAgICAgICAgICAgeyBhbGlnbjEgMUggfTsKK21vdigxNikgICAgICAgICBnOTwx PlVEICAgICAgICAgMHgwMDAwMDAwMFVEICAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAxSCB9 OworbW92KDE2KSAgICAgICAgIGcxMDwxPlVEICAgICAgICAweDAwMDAwMDAwVUQgICAgICAgICAg ICAgICAgICAgIHsgYWxpZ24xIDFIIH07CitzZW5kYyg4KSAgICAgICAgbnVsbDwxPlVEICAgICAg IGcyPDgsOCwxPkYgICAgICAweDEyMGE4MDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVuZGVyIE1zZ0Rlc2M6IG1lZGlhIGJsb2NrIHdyaXRlIE1zZ0N0cmwgPSAweDAgU3VyZmFjZSA9 IDAgbWxlbiA5IHJsZW4gMCB7IGFsaWduMSAxUSB9OworYWRkKDEpICAgICAgICAgIGcyPDE+VUQg ICAgICAgICBnMTwwLDEsMD5VVyAgICAgMHgwMDEwVVcgICAgICAgIHsgYWxpZ24xIDFOIH07Citz ZW5kYyg4KSAgICAgICAgbnVsbDwxPlVEICAgICAgIGcyPDgsOCwxPkYgICAgICAweDEyMGE4MDAw CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyIE1zZ0Rlc2M6IG1lZGlhIGJsb2Nr IHdyaXRlIE1zZ0N0cmwgPSAweDAgU3VyZmFjZSA9IDAgbWxlbiA5IHJsZW4gMCB7IGFsaWduMSAx USB9OworCisvKiBOb3csIGNsZWFyIGFsbCBHUkYgcmVnaXN0ZXJzICovCithZGQubnouZjAuMCgx KSAgYTAuNDwxPlcgICAgICAgIGEwLjQ8MCwxLDA+VyAgICAtMVcgICAgICAgICAgICAgeyBhbGln bjEgMU4gfTsKK21vdigxNikgICAgICAgICBnW2EwXTwxPlVXICAgICAgZjAuMTwwLDEsMD5VVyAg ICAgICAgICAgICAgICAgICB7IGFsaWduMSAxSCB9OworYWRkKDEpICAgICAgICAgIGEwPDE+RCAg ICAgICAgICBhMDwwLDEsMD5EICAgICAgMzJEICAgICAgICAgICAgIHsgYWxpZ24xIDFOIH07Ciso K2YwLjApIGptcGkoMSkgLTY0RCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeyBhbGlnbjEgV0VfYWxsIDFOIH07CisKKy8qIFRlcm1pbmFudGUgdGhlIHRocmVhZCAq Lworc2VuZGMoOCkgICAgICAgIG51bGw8MT5VRCAgICAgICBnMTI3PDgsOCwxPkYgICAgMHg4MjAw MDAxMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZF9zcGF3bmVyIE1zZ0Rlc2M6 IG1sZW4gMSBybGVuIDAgICAgICAgICAgIHsgYWxpZ24xIDFRIEVPVCB9OwpkaWZmIC0tZ2l0IGEv bGliL2k5MTUvc2hhZGVycy9jbGVhcl9rZXJuZWwvaXZiLmFzbSBiL2xpYi9pOTE1L3NoYWRlcnMv Y2xlYXJfa2VybmVsL2l2Yi5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAu LmIyMWJjOTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliL2k5MTUvc2hhZGVycy9jbGVhcl9rZXJu ZWwvaXZiLmFzbQpAQCAtMCwwICsxLDEzOSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCisgKgor ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK KyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2Fy ZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8g RVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICog RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisvKioK KyAqIEtlcm5lbCBuYW1lOiBpdmJfY2xlYXJfYnVmLmFzbQorICoKKyAqIEtlcm5lbCBmb3IgUEFW UCBidWZmZXIgY2xlYXIuCisgKgorICoJMS4gQ2xlYXIgYWxsIDY0IEdSRiByZWdpc3RlcnMgYXNz aWduZWQgdG8gdGhlIGtlcm5lbCB3aXRoIGRlc2lnbmF0ZWQgdmFsdWU7CisgKgkyLiBXcml0ZSAz MngxNiBibG9jayBvZiBhbGwgIjAiIHRvIHJlbmRlciB0YXJnZXQgYnVmZmVyIHdoaWNoIGluZGly ZWN0bHkgY2xlYXJzCisgKgkgICA1MTIgYnl0ZXMgb2YgUmVuZGVyIENhY2hlLgorICovCisKKy8q IFN0b3JlIGRlc2lnbmF0ZWQgImNsZWFyIEdSRiIgdmFsdWUgKi8KK21vdigxKSAgICAgICAgICBm MC4xPDE+VVcgICAgICAgZzEuMjwwLDEsMD5VVyAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAx TiB9OworCisvKioKKyAqIEN1cmJlIEZvcm1hdAorICoKKyAqIERXIDEuMCAtIEJsb2NrIE9mZnNl dCB0byB3cml0ZSBSZW5kZXIgQ2FjaGUKKyAqIERXIDEuMSBbMTU6MF0gLSBDbGVhciBXb3JkCisg KiBEVyAxLjIgLSBEZWxheSBpdGVyYXRpb25zCisgKiBEVyAxLjMgLSBFbmFibGUgSW5zdHJ1bWVu dGF0aW9uIChvbmx5IGZvciBkZWJ1ZykKKyAqIERXIDEuNCAtIFJzdmQgKGludGVuZGVkIGZvciBj b250ZXh0IElEKQorICogRFcgMS41IC0gWzMxOjE2XTpTbGljZUNvdW50LCBbMTU6MF06U3ViU2xp Y2VQZXJTbGljZUNvdW50CisgKiBEVyAxLjYgLSBSc3ZkIE1CWiAoaW50ZW5kZWQgZm9yIEVuYWJs ZSBXYWl0IG9uIFRvdGFsIFRocmVhZCBDb3VudCkKKyAqIERXIDEuNyAtIFJzdmQgTUJaIChpbnRl ZGVkIGZvciBUb3RhbCBUaHJlYWQgQ291bnQpCisgKgorICogQmluZGluZyBUYWJsZQorICoKKyAq IEJUSSAwOiAyRCBTdXJmYWNlIHRvIGhlbHAgY2xlYXIgTDMgKFJlbmRlci9EYXRhIENhY2hlKQor ICogQlRJIDE6IFdhaXQvSW5zdHJ1bWVudGF0aW9uIEJ1ZmZlcgorICogIFNpemUgOiAoU2xpY2VD b3VudCAqIFN1YlNsaWNlQ291bnQgICogMTYgRVVzL1N1YlNsaWNlKSByb3dzICogKDE2IHRocmVh ZHMvRVUpIGNvbHMgKEZvcm1hdCBSMzJfVUlOVCkKKyAqICAgICAgICAgRXhwZWN0ZWQgdG8gYmUg aW5pdGlhbGl6ZWQgdG8gMCBieSBkcml2ZXIvYW5vdGhlciBrZXJuZWwKKyAqICBMYXlvdXQgOgor ICogICAgICAgICAgIFJvd046IEhpc3RvZ3JhbSBmb3IgRVUtTjogKFNsaWNlSUQqU3ViU2xpY2VQ ZXJTbGljZUNvdW50ICsgU1NJRCkqMTYgKyBFVUlEIFthc3N1bWUgbWF4IDE2IEVVcyAvIFNTXQor ICogICAgICAgICAgIENvbC1rW0RXLWtdOiBUaHJlYWRzIEV4ZWN1dGVkIG9uIFRocmVhZElELWsg Zm9yIEVVLU4KKyAqLworYWRkKDEpICAgICAgICAgIGcxLjI8MT5VRCAgICAgICBnMS4yPDAsMSww PlVEICAgMHgwMDAwMDAwMVVEICAgIHsgYWxpZ24xIDFOIH07IC8qIExvb3AgY291bnQgdG8gZGVs YXkga2VybmVsOiBJbml0IHRvIChnMS4yICsgMSkgKi8KK2NtcC56LmYwLjAoMSkgICBudWxsPDE+ VUQgICAgICAgZzEuMzwwLDEsMD5VRCAgIDB4MDAwMDAwMDBVRCAgICB7IGFsaWduMSAxTiB9Owor KCtmMC4wKSBqbXBpKDEpIDQ0RCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgYWxpZ24xIFdFX2FsbCAxTiB9OworCisvKioKKyAqIFN0YXRlIFJlZ2lzdGVyIGhh cyBpbmZvIG9uIHdoZXJlIHRoaXMgdGhyZWFkIGlzIHJ1bm5pbmcKKyAqCUlWQjogc3IwLjAgOjog WzE1OjEzXTogTUJaLCAxMjogSFNJRCAoSGFsZi1TbGljZSBJRCksIFsxMTo4XUVVSUQsIFsyOjBd IFRocmVhZFNsb3RJRAorICoJSFNXOiBzcjAuMCA6OiAxNTogTUJaLCBbMTQ6MTNdOiBTbGljZUlE LCAxMjogSFNJRCAoSGFsZi1TbGljZSBJRCksIFsxMTo4XUVVSUQsIFsyOjBdIFRocmVhZFNsb3RJ RAorICovCittb3YoOCkgICAgICAgICAgZzM8MT5VRCAgICAgICAgIDB4MDAwMDAwMDBVRCAgICAg ICAgICAgICAgICAgICAgeyBhbGlnbjEgMVEgfTsKK3NocigxKSAgICAgICAgICBnMzwxPkQgICAg ICAgICAgc3IwPDAsMSwwPkQgICAgIDEyRCAgICAgICAgICAgICB7IGFsaWduMSAxTiB9OworYW5k KDEpICAgICAgICAgIGczPDE+RCAgICAgICAgICBnMzwwLDEsMD5EICAgICAgMUQgICAgICAgICAg ICAgIHsgYWxpZ24xIDFOIH07IC8qIGczIGhhcyBIU0lEICovCitzaHIoMSkgICAgICAgICAgZzMu MTwxPkQgICAgICAgIHNyMDwwLDEsMD5EICAgICAxM0QgICAgICAgICAgICAgeyBhbGlnbjEgMU4g fTsKK2FuZCgxKSAgICAgICAgICBnMy4xPDE+RCAgICAgICAgZzMuMTwwLDEsMD5EICAgIDNEICAg ICAgICAgICAgICB7IGFsaWduMSAxTiB9OyAvKiBnMy4xIGhhcyBzbGljZUlEICovCittdWwoMSkg ICAgICAgICAgZzMuNTwxPkQgICAgICAgIGczLjE8MCwxLDA+RCAgICBnMS4xMDwwLDEsMD5VVyAg eyBhbGlnbjEgMU4gfTsKK2FkZCgxKSAgICAgICAgICBnMzwxPkQgICAgICAgICAgZzM8MCwxLDA+ RCAgICAgIGczLjU8MCwxLDA+RCAgICB7IGFsaWduMSAxTiB9OyAvKiBnMyA9IHNsaWNlSUQgKiBT dWJTbGljZVBlclNsaWNlQ291bnQgKyBIU0lEICovCitzaHIoMSkgICAgICAgICAgZzMuMjwxPkQg ICAgICAgIHNyMDwwLDEsMD5EICAgICA4RCAgICAgICAgICAgICAgeyBhbGlnbjEgMU4gfTsKK2Fu ZCgxKSAgICAgICAgICBnMy4yPDE+RCAgICAgICAgZzMuMjwwLDEsMD5EICAgIDE1RCAgICAgICAg ICAgICB7IGFsaWduMSAxTiB9OyAvKiBnMy4yID0gRVVJRCAqLworbXVsKDEpICAgICAgICAgIGcz LjQ8MT5EICAgICAgICBnMzwwLDEsMD5EICAgICAgMTZEICAgICAgICAgICAgIHsgYWxpZ24xIDFO IH07CithZGQoMSkgICAgICAgICAgZzMuMjwxPkQgICAgICAgIGczLjI8MCwxLDA+RCAgICBnMy40 PDAsMSwwPkQgICAgeyBhbGlnbjEgMU4gfTsgLyogZzMuMiBub3cgcG9pbnRzIHRvIEVVIHJvdyBu dW1iZXIgKFktcGl4ZWwgPSBWIGFkZHJlc3MgKSAgaW4gaW5zdHJ1bWVudGF0aW9uIHN1cmYgKi8K KworbW92KDgpICAgICAgICAgIGc1PDE+VUQgICAgICAgICAweDAwMDAwMDAwVUQgICAgICAgICAg ICAgICAgICAgIHsgYWxpZ24xIDFRIH07CithbmQoMSkgICAgICAgICAgZzMuMzwxPkQgICAgICAg IHNyMDwwLDEsMD5EICAgICA3RCAgICAgICAgICAgICAgeyBhbGlnbjEgMU4gfTsKK211bCgxKSAg ICAgICAgICBnMy4zPDE+RCAgICAgICAgZzMuMzwwLDEsMD5EICAgIDREICAgICAgICAgICAgICB7 IGFsaWduMSAxTiB9OworCittb3YoOCkgICAgICAgICAgZzQ8MT5VRCAgICAgICAgIGcwPDgsOCwx PlVEICAgICAgICAgICAgICAgICAgICAgeyBhbGlnbjEgMVEgfTsgLyogSW5pdGlhbGl6ZSBtZXNz YWdlIGhlYWRlciB3aXRoIGcwICovCittb3YoMSkgICAgICAgICAgZzQ8MT5VRCAgICAgICAgIGcz LjM8MCwxLDA+VUQgICAgICAgICAgICAgICAgICAgeyBhbGlnbjEgMU4gfTsgLyogQmxvY2sgb2Zm c2V0ICovCittb3YoMSkgICAgICAgICAgZzQuMTwxPlVEICAgICAgIGczLjI8MCwxLDA+VUQgICAg ICAgICAgICAgICAgICAgeyBhbGlnbjEgMU4gfTsgLyogQmxvY2sgb2Zmc2V0ICovCittb3YoMSkg ICAgICAgICAgZzQuMjwxPlVEICAgICAgIDB4MDAwMDAwMDNVRCAgICAgICAgICAgICAgICAgICAg eyBhbGlnbjEgMU4gfTsgLyogQmxvY2sgc2l6ZSAoMSByb3cgeCA0IGJ5dGVzKSAqLworYW5kKDEp ICAgICAgICAgIGc0LjM8MT5VRCAgICAgICBnNC4zPDAsMSwwPlVXICAgMHhmZmZmZmZmZlVEICAg IHsgYWxpZ24xIDFOIH07CisKKy8qIE1lZGlhIGJsb2NrIHJlYWQgdG8gZmV0Y2ggY3VycmVudCB2 YWx1ZSBhdCBzcGVjaWZpZWQgbG9jYXRpb24gaW4gaW5zdHJ1bWVudGF0aW9uIGJ1ZmZlciAqLwor c2VuZGMoOCkgICAgICAgIGc1PDE+VUQgICAgICAgICBnNDw4LDgsMT5GICAgICAgMHgwMjE5MDAw MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlciBNc2dEZXNjOiBtZWRpYSBibG9j ayByZWFkIE1zZ0N0cmwgPSAweDAgU3VyZmFjZSA9IDEgbWxlbiAxIHJsZW4gMSB7IGFsaWduMSAx USB9OworYWRkKDEpICAgICAgICAgIGc1PDE+RCAgICAgICAgICBnNTwwLDEsMD5EICAgICAgMUQg ICAgICAgICAgICAgIHsgYWxpZ24xIDFOIH07CisKKy8qIE1lZGlhIGJsb2NrIHdyaXRlIGZvciB1 cGRhdGVkIHZhbHVlIGF0IHNwZWNpZmllZCBsb2NhdGlvbiBpbiBpbnN0cnVtZW50YXRpb24gYnVm ZmVyICovCitzZW5kYyg4KSAgICAgICAgZzU8MT5VRCAgICAgICAgIGc0PDgsOCwxPkYgICAgICAw eDA0MGE4MDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyIE1zZ0Rlc2M6IG1l ZGlhIGJsb2NrIHdyaXRlIE1zZ0N0cmwgPSAweDAgU3VyZmFjZSA9IDEgbWxlbiAyIHJsZW4gMCB7 IGFsaWduMSAxUSB9OworLyogRGVsYXkgdGhyZWFkIGZvciBzcGVjaWZpZWQgcGFyYW1ldGVyICov CithZGQubnouZjAuMCgxKSAgZzEuMjwxPlVEICAgICAgIGcxLjI8MCwxLDA+VUQgICAtMUQgICAg ICAgICAgICAgeyBhbGlnbjEgMU4gfTsKKygrZjAuMCkgam1waSgxKSAtNEQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGFsaWduMSBXRV9hbGwgMU4gfTsKKwor LyogU3RvcmUgZGVzaWduYXRlZCAiY2xlYXIgR1JGIiB2YWx1ZSAqLworbW92KDEpICAgICAgICAg IGYwLjE8MT5VVyAgICAgICBnMS4yPDAsMSwwPlVXICAgICAgICAgICAgICAgICAgIHsgYWxpZ24x IDFOIH07CisKKy8qIEluaXRpYWxpemUgbG9vcGluZyBwYXJhbWV0ZXJzICovCittb3YoMSkgICAg ICAgICAgYTA8MT5EICAgICAgICAgIDBEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBh bGlnbjEgMU4gfTsgLyogSW5pdGlhbGl6ZSBhMC4wOnc9MCAqLworbW92KDEpICAgICAgICAgIGEw LjQ8MT5XICAgICAgICAxMjdXICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgYWxpZ24xIDFO IH07IC8qIExvb3AgY291bnQuIEVhY2ggbG9vcCBjb250YWlucyAxNiBHUkYncyAqLworCisvKiBX cml0ZSAzMngxNiBhbGwgIjAiIGJsb2NrICovCittb3YoOCkgICAgICAgICAgZzI8MT5VRCAgICAg ICAgIGcwPDgsOCwxPlVEICAgICAgICAgICAgICAgICAgICAgeyBhbGlnbjEgMVEgfTsKK21vdig4 KSAgICAgICAgICBnMTI3PDE+VUQgICAgICAgZzA8OCw4LDE+VUQgICAgICAgICAgICAgICAgICAg ICB7IGFsaWduMSAxUSB9OworbW92KDIpICAgICAgICAgIGcyPDE+VUQgICAgICAgICBnMTwyLDIs MT5VVyAgICAgICAgICAgICAgICAgICAgIHsgYWxpZ24xIDFOIH07Cittb3YoMSkgICAgICAgICAg ZzIuMjwxPlVEICAgICAgIDB4MDAwZjAwMGZVRCAgICAgICAgICAgICAgICAgICAgeyBhbGlnbjEg MU4gfTsgLyogQmxvY2sgc2l6ZSAoMTZ4MTYpICovCithbmQoMSkgICAgICAgICAgZzIuMzwxPlVE ICAgICAgIGcyLjM8MCwxLDA+VVcgICAweGZmZmZmZmVmVUQgICAgeyBhbGlnbjEgMU4gfTsKK21v digxNikgICAgICAgICBnMzwxPlVEICAgICAgICAgMHgwMDAwMDAwMFVEICAgICAgICAgICAgICAg ICAgICB7IGFsaWduMSAxSCB9OworbW92KDE2KSAgICAgICAgIGc0PDE+VUQgICAgICAgICAweDAw MDAwMDAwVUQgICAgICAgICAgICAgICAgICAgIHsgYWxpZ24xIDFIIH07Cittb3YoMTYpICAgICAg ICAgZzU8MT5VRCAgICAgICAgIDB4MDAwMDAwMDBVRCAgICAgICAgICAgICAgICAgICAgeyBhbGln bjEgMUggfTsKK21vdigxNikgICAgICAgICBnNjwxPlVEICAgICAgICAgMHgwMDAwMDAwMFVEICAg ICAgICAgICAgICAgICAgICB7IGFsaWduMSAxSCB9OworbW92KDE2KSAgICAgICAgIGc3PDE+VUQg ICAgICAgICAweDAwMDAwMDAwVUQgICAgICAgICAgICAgICAgICAgIHsgYWxpZ24xIDFIIH07Citt b3YoMTYpICAgICAgICAgZzg8MT5VRCAgICAgICAgIDB4MDAwMDAwMDBVRCAgICAgICAgICAgICAg ICAgICAgeyBhbGlnbjEgMUggfTsKK21vdigxNikgICAgICAgICBnOTwxPlVEICAgICAgICAgMHgw MDAwMDAwMFVEICAgICAgICAgICAgICAgICAgICB7IGFsaWduMSAxSCB9OworbW92KDE2KSAgICAg ICAgIGcxMDwxPlVEICAgICAgICAweDAwMDAwMDAwVUQgICAgICAgICAgICAgICAgICAgIHsgYWxp Z24xIDFIIH07CitzZW5kYyg4KSAgICAgICAgbnVsbDwxPlVEICAgICAgIGcyPDgsOCwxPkYgICAg ICAweDEyMGE4MDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyIE1zZ0Rlc2M6 IG1lZGlhIGJsb2NrIHdyaXRlIE1zZ0N0cmwgPSAweDAgU3VyZmFjZSA9IDAgbWxlbiA5IHJsZW4g MCB7IGFsaWduMSAxUSB9OworYWRkKDEpICAgICAgICAgIGcyPDE+VUQgICAgICAgICBnMTwwLDEs MD5VVyAgICAgMHgwMDEwVVcgICAgICAgIHsgYWxpZ24xIDFOIH07CitzZW5kYyg4KSAgICAgICAg bnVsbDwxPlVEICAgICAgIGcyPDgsOCwxPkYgICAgICAweDEyMGE4MDAwCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVuZGVyIE1zZ0Rlc2M6IG1lZGlhIGJsb2NrIHdyaXRlIE1zZ0N0cmwg PSAweDAgU3VyZmFjZSA9IDAgbWxlbiA5IHJsZW4gMCB7IGFsaWduMSAxUSB9OworCisvKiBOb3cs IGNsZWFyIGFsbCBHUkYgcmVnaXN0ZXJzICovCithZGQubnouZjAuMCgxKSAgYTAuNDwxPlcgICAg ICAgIGEwLjQ8MCwxLDA+VyAgICAtMVcgICAgICAgICAgICAgeyBhbGlnbjEgMU4gfTsKK21vdigx NikgICAgICAgICBnW2EwXTwxPlVXICAgICAgZjAuMTwwLDEsMD5VVyAgICAgICAgICAgICAgICAg ICB7IGFsaWduMSAxSCB9OworYWRkKDEpICAgICAgICAgIGEwPDE+RCAgICAgICAgICBhMDwwLDEs MD5EICAgICAgMzJEICAgICAgICAgICAgIHsgYWxpZ24xIDFOIH07CisoK2YwLjApIGptcGkoMSkg LThEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBhbGlnbjEg V0VfYWxsIDFOIH07CisKKy8qIFRlcm1pbmFudGUgdGhlIHRocmVhZCAqLworc2VuZGMoOCkgICAg ICAgIG51bGw8MT5VRCAgICAgICBnMTI3PDgsOCwxPkYgICAgMHg4MjAwMDAxMAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRocmVhZF9zcGF3bmVyIE1zZ0Rlc2M6IG1sZW4gMSBybGVuIDAg ICAgICAgICAgIHsgYWxpZ24xIDFRIEVPVCB9OwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nZW5lcmF0 ZV9jbGVhcl9rZXJuZWwuc2ggYi9zY3JpcHRzL2dlbmVyYXRlX2NsZWFyX2tlcm5lbC5zaApuZXcg ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uYWY2MjhhODYKLS0tIC9kZXYvbnVsbAor KysgYi9zY3JpcHRzL2dlbmVyYXRlX2NsZWFyX2tlcm5lbC5zaApAQCAtMCwwICsxLDE1MSBAQAor IyEvYmluL2Jhc2gKKyMKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorIworIyBDb3B5 cmlnaHQgwqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgorIworIyBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorIyBj b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLAorIyB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisjIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAor IyBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUKKyMgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyMKKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorIyBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlCisjIFNvZnR3YXJlLgorIworIyBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorIyBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKKyMgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisjIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisj IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCisjIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyMgSU4gVEhFIFNPRlRXQVJF LgorCitleHBvcnQgQVNTRU1CTFlfU09VUkNFPS4vbGliL2k5MTUvc2hhZGVycy9jbGVhcl9rZXJu ZWwKKworZnVuY3Rpb24gZ2V0X2hlbHAgeworICAgICAgICBlY2hvICJVc2FnZTogICAgYXNtX2V1 X2tlcm5lbC5zaCBbb3B0aW9uc10iCisgICAgICAgIGVjaG8gIk5vdGU6IGhzd19jbGVhcl9rZXJu ZWwuYy9pdmJfY2xlYXJfa2VybmVsLmMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhpcyBz Y3JpcHQgc2hvdWxkIG5ldmVyIGJlIG1vZGlmaWVkIC0gaXQgd291bGQgYmUgaW1wb3J0ZWQgdG8g aTkxNSwgdG8gdXNlIGFzIGl0IGlzLi4uIgorICAgICAgICBlY2hvICIgIgorICAgICAgICBlY2hv ICJQbGVhc2UgbWFrZSBzdXJlIHlvdXIgTWVzYSB0b29sIGlzIGNvbXBpbGVkIHdpdGggIi1EdG9v bHM9aW50ZWwiIGFuZCAiLURkcmktZHJpdmVycz1pOTY1IiwgYW5kIHJ1biB0aGlzIHNjcmlwdCBm cm9tIElHVCBzb3VyY2Ugcm9vdCBkaXJlY3RvcnkiCisgICAgICAgIGVjaG8gIiAiCisgICAgICAg IGVjaG8gIk9wdGlvbnMgYXJlOiIKKyAgICAgICAgZWNobyAiIC1oICAgICAgICAgICAgICAgICAg ICAgICBkaXNwbGF5IHRoaXMgaGVscCBtZXNzYWdlLCBhbmQgZXhpdCIKKyAgICAgICAgZWNobyAi IC1nPXBsYXRmb3JtICAgICAgICAgICAgICBnZW5lcmF0aW9uIG9mIGRldmljZTogdXNlICJoc3ci IGZvciBnZW43LjUsIGFuZCAiaXZiIiBmb3IgZ2VuNyBkZXZpY2VzIgorICAgICAgICBlY2hvICIg LW89bmFtZV9vZl9maWxlICAgICAgICAgIG91dHB1dCBmaWxlIHRvIHN0b3JlIE1lc2EgYXNzZW1i bGVkIGMtbGl0ZXJhbCBmb3IgdGhlIGRldmljZSAtIElmIG5vbmUgc3BlY2lmaWVkLCBkZWZhdWx0 IGZpbGUgd2lsbCBiZSB1c2VkIC0gaXZiL2hzdy1jYl9hc3NlbWJsZWQiCisgICAgICAgIGVjaG8g IiAtbT1tZXNhICAgICAgICAgICAgICAgICAgUGF0aCB0byBNZXNhIGk5NjVfYXNtIGJpbmFyeSIK KyAgICAgICAgZWNobyAiICIKKyAgICAgICAgZWNobyAiIFVzYWdlIGV4YW1wbGU6IFwic2NyaXB0 cy9nZW5lcmF0ZV9jbGVhcl9rZXJuZWwuc2ggLWcgaHN3IC1vIGhzd19jbGVhcl9idWZmZXIuaCAt bSAvcGF0aC90by9NZXNhL2k5NjVfYXNtL2JpbmFyeVwiIgorfQorCitmdW5jdGlvbiBpbmNsdWRl X2FycmF5ICMgJDE9YXJyYXlfbmFtZSAtIHVwZGF0ZSBNZXNhIG91dHB1dCB3aXRoIGRlc2lyZWQg Zm9ybWF0Cit7CisgICAgICAgIGFycmF5X2RlY2xhcmF0aW9uPSJzdGF0aWMgY29uc3QgdTMyICQo YmFzZW5hbWUgJDEpX2NsZWFyX2tlcm5lbFtdID0geyIKKyAgICAgICAgY2xvc2VfYXJyYXk9Ijsi CisgICAgICAgIHNlZCAtaSAiMXMvLiovJGFycmF5X2RlY2xhcmF0aW9uLyIgJG91dHB1dF9maWxl CisgICAgICAgIHNlZCAtaSAiJCBzLyQvJGNsb3NlX2FycmF5LyIgJG91dHB1dF9maWxlCit9Citm dW5jdGlvbiBwcmVmaXhfaGVhZGVyICMgJDE9ZmlsZW5hbWUgJDI9Y29tbWVudAoreworCWNhdCA8 PEVPRgorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDC qSAyMDIwIEludGVsIENvcnBvcmF0aW9uCisgKgorICogR2VuZXJhdGVkIGJ5OiBJR1QgR3B1IFRv b2xzIG9uICQoZGF0ZSkKKyAqLworCitFT0YKK30KKworZnVuY3Rpb24gY2hlY2tfb3V0cHV0X2Zp bGUgI2NoZWNrIG91dHB1dCBmaWxlCit7CisgICAgICAgIGlmIFsgIngkb3V0cHV0X2ZpbGUiICE9 ICJ4IiBdOyB0aGVuCisgICAgICAgICAgICAgICAgaWYgWyAtZiAiJG91dHB1dF9maWxlIiBdOyB0 aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIC1lICJXYXJuaW5nOiBUaGUgXCIkb3V0 cHV0X2ZpbGVcIiBmaWxlIGFscmVhZHkgZXhpc3QgLSBjaG9vc2UgYW5vdGhlciBmaWxlXG4iCisg ICAgICAgICAgICAgICAgICAgICAgICBnZXRfaGVscAorICAgICAgICAgICAgICAgICAgICAgICAg ZXhpdCAxCisgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg ICMgSXQgaXMgb2theSB0byBvdmVyd3JpdGUgZGVmYXVsdCBmaWxlIGNyZWF0ZWQKKyAgICAgICAg ICAgICAgICBlY2hvIC1lICJPdXRwdXQgZmlsZSBub3Qgc3BlY2lmaWVkIC0gdXNpbmcgZGVmYXVs dCBmaWxlIFwiJGdlbl9kZXZpY2UtY2JfYXNzZW1ibGVkXCJcbiIKKyAgICAgICAgICAgICAgICBv dXRwdXRfZmlsZT0iJGdlbl9kZXZpY2UtY2JfYXNzZW1ibGVkIgorICAgICAgICBmaQorfQorZnVu Y3Rpb24gYXNtX2NiX2tlcm5lbCAjIGFzLXJvb3QgPGFyZ3M+Cit7CisgICAgICAgIGNoZWNrX291 dHB1dF9maWxlCisKKyAgICAgICAgIyBVc2luZyBpOTY1X2FzbSB0b29sIHRvIGFzc2VtYmxlIGhl eCBmaWxlIGZyb20gYXNzZW1ibHkgc291cmNlCisgICAgICAgICRtZXNhX2k5NjVfYXNtIC1nICRn ZW5fZGV2aWNlIC10IGNfbGl0ZXJhbCAgJGlucHV0X2FzbV9zb3VyY2UgLW8gJG91dHB1dF9maWxl CisKKyAgICAgICAgaWYgWyAhIC1mICR7b3V0cHV0X2ZpbGV9IF07IHRoZW4KKyAgICAgICAgICAg ICAgICBlY2hvIC1lICJGYWlsZWQgdG8gYXNzZW1ibGUgQ0IgS2VybmVsIHdpdGggTWVzYSB0b29s XG4iCisgICAgICAgICAgICAgICAgZ2V0X2hlbHAKKyAgICAgICAgICAgICAgICBleGl0IDEKKyAg ICAgICAgZmkKKworICAgICAgICAjIEdlbmVyYXRlIGhlYWRlciBmaWxlCisgICAgICAgIGlmIFsg IiRnZW5fZGV2aWNlIiA9PSAiaHN3IiBdOyB0aGVuCisgICAgICAgICAgICAgICAgZWNobyAiR2Vu ZXJhdGluZyBnZW43LjUgQ0IgS2VybmVsIGFzc2VtYmxlZCBmaWxlIFwiaHN3X2NsZWFyX2tlcm5l bC5jXCIgZm9yIGk5MTUgZHJpdmVyLi4uIgorCisgICAgICAgICAgICAgICAgaTkxNV9maWxlbmFt ZT1oc3dfY2xlYXJfa2VybmVsLmMKKyAgICAgICAgICAgICAgICBpbmNsdWRlX2FycmF5ICRnZW5f ZGV2aWNlCisgICAgICAgICAgICAgICAgcHJlZml4X2hlYWRlciA+ICRpOTE1X2ZpbGVuYW1lCisg ICAgICAgICAgICAgICAgY2F0ICRvdXRwdXRfZmlsZSA+PiAkaTkxNV9maWxlbmFtZQorCisgICAg ICAgIGVsaWYgWyAiJGdlbl9kZXZpY2UiID09ICJpdmIiIF07IHRoZW4KKyAgICAgICAgICAgICAg ICBlY2hvICJHZW5lcmF0aW5nIGdlbjcgQ0IgS2VybmVsIGFzc2VtYmxlZCBmaWxlIFwiaXZiX2Ns ZWFyX2tlcm5lbC5jXCIgZm9yIGk5MTUgZHJpdmVyLi4uIgorCisgICAgICAgICAgICAgICAgaTkx NV9maWxlbmFtZT1pdmJfY2xlYXJfa2VybmVsLmMKKyAgICAgICAgICAgICAgICBpbmNsdWRlX2Fy cmF5ICRnZW5fZGV2aWNlCisgICAgICAgICAgICAgICAgcHJlZml4X2hlYWRlciAkZ2VuX2Rldmlj ZSA+ICRpOTE1X2ZpbGVuYW1lCisgICAgICAgICAgICAgICAgY2F0ICRvdXRwdXRfZmlsZSA+PiAk aTkxNV9maWxlbmFtZQorICAgICAgICBmaQorfQorCit3aGlsZSBnZXRvcHRzICJoZzpvOm06IiBv cHQ7IGRvCisJY2FzZSAkb3B0IGluCisJCWgpIGdldF9oZWxwOyBleGl0IDA7OworCQlnKSBnZW5f ZGV2aWNlPSIkT1BUQVJHIiA7OworCQlvKSBvdXRwdXRfZmlsZT0iJE9QVEFSRyIgOzsKKyAgICAg ICAgICAgICAgICBtKSBtZXNhX2k5NjVfYXNtPSIkT1BUQVJHIiA7OworCQlcPykKKwkJCWVjaG8g LWUgIlVua25vd24gb3B0aW9uOiAtJE9QVEFSR1xuIgorCQkJZ2V0X2hlbHAKKwkJCWV4aXQgMQor CQkJOzsKKwllc2FjCitkb25lCitzaGlmdCAkKCgkT1BUSU5ELTEpKQorCitpZiBbICJ4JDEiICE9 ICJ4IiBdOyB0aGVuCisJZWNobyAtZSAiVW5rbm93biBvcHRpb246ICQxXG4iCisJZ2V0X2hlbHAK KwlleGl0IDEKK2ZpCisKK2lmIFsgIngkbWVzYV9pOTY1X2FzbSIgPT0gIngiIF07IHRoZW4KKyAg ICAgICAgZWNobyAtZSAiaTk2NV9hc20gYmluYXJ5IG5vdCBmb3VuZFxuIgorICAgICAgICBnZXRf aGVscAorICAgICAgICBleGl0IDEKK2ZpCisKK2lmIFsgIngkZ2VuX2RldmljZSIgIT0gIngiIF07 IHRoZW4KKyAgICAgICAgaWYgWyAiJGdlbl9kZXZpY2UiID09ICJoc3ciIF07IHRoZW4KKyAgICAg ICAgICAgICAgICBpbnB1dF9hc21fc291cmNlPSIke0FTU0VNQkxZX1NPVVJDRX0vaHN3LmFzbSIK KyAgICAgICAgZWxpZiBbICIkZ2VuX2RldmljZSIgPT0gIml2YiIgXTsgdGhlbgorICAgICAgICAg ICAgICAgIGlucHV0X2FzbV9zb3VyY2U9IiR7QVNTRU1CTFlfU09VUkNFfS9pdmIuYXNtIgorICAg ICAgICBlbHNlCisgICAgICAgICAgICAgICAgZWNobyAtZSAiVW5rbm93biBwbGF0Zm9ybSBzcGVj aWZpZWRcbiIKKyAgICAgICAgICAgICAgICBnZXRfaGVscAorICAgICAgICAgICAgICAgIGV4aXQg MQorICAgICAgICBmaQorCWFzbV9jYl9rZXJuZWwKK2Vsc2UKKyAgICAgICAgZWNobyAtZSAiUGxh dGZvcm0gZ2VuZXJhdGlvbiBub3Qgc3BlY2lmaWVkXG4iCisgICAgICAgIGdldF9oZWxwCisgICAg ICAgIGV4aXQgMQorZmkKLS0gCjIuMjQuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pZ3QtZGV2Cg==