amd-mixture-of-experts · submission 28609
KernelBot user 395 · python · License unknown
Use it
Vendorable · source mirrored · license unknownView source →
No package. Vendor the mirrored source: 1 lines, June 9 Researcher Reciprocity License v1.0.
v2.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-mixture-of-experts-28609?include=source"interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp16
Benchmark evidence
2 measurements across 1 GPU, fastest first.
Operation / workload
Hardware
Latency
Rank
Observed
Reported · How evidence levels are derived →
Source and license
sourceavailable
revision digestsha256:e27816a3d5b60cf495cfeba700cb7b459a7fac477439cc16519a50167eb6948b
license declaredunknown
license concludedunknown
imported2026-08-15
Kernel source
v2.py1 lines
aW1wb3J0IG9zDQoNCm9zLmVudmlyb25bIkFNREdDTl9VU0VfQlVGRkVSX09QUyJdID0gIjEiDQpvcy5lbnZpcm9uWyJUUklUT05fSElQX0dMT0JBTF9QUkVGRVRDSCJdID0gIjMiDQoNCmltcG9ydCBtYXRoDQppbXBvcnQgc3lzDQppbXBvcnQgb3MNCmZyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBUdXBsZQ0KDQppbXBvcnQgdHJpdG9uDQppbXBvcnQgdHJpdG9uLmxhbmd1YWdlIGFzIHRsDQppbXBvcnQgdG9yY2gNCmltcG9ydCB0b3JjaC5ubiBhcyBubg0KDQpmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQ0KaW1wb3J0IHB5dHoNCg0KDQojIC0tLSBHbG9iYWwgVGltZXpvbmUgLS0tDQpJU1QgPSBweXR6LnRpbWV6b25lKCJBc2lhL0tvbGthdGEiKQ0KDQojIC0tLSBNSTMwMFggVHVuZWQgUGFyYW1ldGVycyAtLS0NCiMgS2VybmVsIDE6IF9jb21wdXRlX2Z1c2VkX3NjYXR0ZXJfbWkzMDB4X2tlcm5lbA0KSzFfQkxPQ0tfRF9FWFBfT1VUX1RVTkVEID0gNjQNCksxX0JMT0NLX0hfU0xJQ0lOR19UVU5FRCA9IDY0DQpLMV9OVU1fV0FSUFNfVFVORUQgPSA0DQpLMV9OVU1fU1RBR0VTX1RVTkVEID0gNCAgIyBGb3Iga2VybmVsIGxhdW5jaCBgbnVtX3N0YWdlc2AgKGUuZy4sIGRvdCBwaXBlbGluaW5nKQ0KSzFfTE9PUF9OVU1fU1RBR0VTX1RVTkVEID0gKA0KICAgIDEgICMgTU9ESUZJRUQ6IEZvciB0bC5yYW5nZSguLi4sIG51bV9zdGFnZXM9Li4uKSBpbiBLZXJuZWwgMSAoYmFzZWQgb24gYmVuY2htYXJrcykNCikNCksxX0xPT1BfVU5ST0xMX0ZBQ1RPUl9UVU5FRCA9IDggICMgTkVXOiBGb3IgdGwucmFuZ2UoLi4uLCBsb29wX3Vucm9sbF9mYWN0b3I9Li4uKSBpbiBLZXJuZWwgMQ0KDQojIEtlcm5lbCAyOiBfcHJvamVjdF9hbmRfYWNjdW11bGF0ZV9taTMwMHhfa2VybmVsDQpLMl9CTE9DS19IX09VVF9UVU5FRCA9IDMyDQpLMl9CTE9DS19EX1NUUkVBTV9UVU5FRCA9IDY0DQpLMl9OVU1fV0FSUFNfVFVORUQgPSA0DQpLMl9OVU1fU1RBR0VTX1RVTkVEID0gNCAgIyBGb3Iga2VybmVsIGxhdW5jaCBgbnVtX3N0YWdlc2ANCksyX0xPT1BfTlVNX1NUQUdFU19UVU5FRCA9ICgNCiAgICAxICAjIE1PRElGSUVEOiBGb3IgdGwucmFuZ2UoLi4uLCBudW1fc3RhZ2VzPS4uLikgaW4gS2VybmVsIDIgKGJhc2VkIG9uIGJlbmNobWFya3MpDQopDQpLMl9MT09QX1VOUk9MTF9GQUNUT1JfVFVORUQgPSAxICAjIE5FVzogRm9yIHRsLnJhbmdlKC4uLiwgbG9vcF91bnJvbGxfZmFjdG9yPS4uLikgaW4gS2VybmVsIDINCg0KDQojIC0tLSBQcm9maWxpbmcgVXRpbGl0eSAtLS0NCmRlZiBfbWF5YmVfcHJvZmlsZShtc2c6IHN0cik6DQogICAgaWYgb3MuZ2V0ZW52KCJNSVhUVVJFX09GX0VYUEVSVFNfUFJPRklMRSIpOg0KICAgICAgICBpZiB0b3JjaC5jdWRhLmlzX2F2YWlsYWJsZSgpOg0KICAgICAgICAgICAgdG9yY2guY3VkYS5zeW5jaHJvbml6ZSgpDQogICAgICAgIGlzdF90aW1lID0gZGF0ZXRpbWUubm93KElTVCkuc3RyZnRpbWUoIiVZLSVtLSVkICVIOiVNOiVTIikNCiAgICAgICAgcHJpbnQoZiJbe2lzdF90aW1lfV0ge21zZ30iLCBmaWxlPXN5cy5zdGRlcnIpDQoNCg0KIyAtLS0gU3RhbmRhcmQgRXhwZXJ0IE1vZHVsZSAoVW5jaGFuZ2VkKSAtLS0NCmNsYXNzIEV4cGVydChubi5Nb2R1bGUpOg0KICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWc6IERpY3QsIGRfZXhwZXJ0OiBpbnQgPSBOb25lLCBkZXZpY2U9Tm9uZSwgZHR5cGU9Tm9uZSk6DQogICAgICAgIHN1cGVyKCkuX19pbml0X18oKQ0KICAgICAgICBzZWxmLmRfaGlkZGVuX2V4cGVydF9pbiA9IGNvbmZpZ1siZF9oaWRkZW4iXQ0KICAgICAgICBzZWxmLmRfZXhwZXJ0X291dCA9IGNvbmZpZ1siZF9leHBlcnQiXSBpZiBkX2V4cGVydCBpcyBOb25lIGVsc2UgZF9leHBlcnQNCiAgICAgICAgc2VsZi5hY3QgPSBubi5TaUxVKCkNCiAgICAgICAga3dhcmdzID0ge30NCiAgICAgICAgaWYgZGV2aWNlIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAga3dhcmdzWyJkZXZpY2UiXSA9IGRldmljZQ0KICAgICAgICBpZiBkdHlwZSBpcyBub3QgTm9uZToNCiAgICAgICAgICAgIGt3YXJnc1siZHR5cGUiXSA9IGR0eXBlDQogICAgICAgIHNlbGYuV19nYXRlID0gbm4uTGluZWFyKHNlbGYuZF9oaWRkZW5fZXhwZXJ0X2luLCBzZWxmLmRfZXhwZXJ0X291dCwgYmlhcz1GYWxzZSwgKiprd2FyZ3MpDQogICAgICAgIHNlbGYuV191cCA9IG5uLkxpbmVhcihzZWxmLmRfaGlkZGVuX2V4cGVydF9pbiwgc2VsZi5kX2V4cGVydF9vdXQsIGJpYXM9RmFsc2UsICoqa3dhcmdzKQ0KICAgICAgICBzZWxmLldfZG93biA9IG5uLkxpbmVhcihzZWxmLmRfZXhwZXJ0X291dCwgc2VsZi5kX2hpZGRlbl9leHBlcnRfaW4sIGJpYXM9RmFsc2UsICoqa3dhcmdzKQ0KDQogICAgZGVmIGZvcndhcmQoc2VsZiwgeDogdG9yY2guVGVuc29yKSAtPiB0b3JjaC5UZW5zb3I6DQogICAgICAgIGdhdGUgPSBzZWxmLmFjdChzZWxmLldfZ2F0ZSh4KSkNCiAgICAgICAgdXAgPSBzZWxmLldfdXAoeCkNCiAgICAgICAgcmV0dXJuIHNlbGYuV19kb3duKGdhdGUgKiB1cCkNCg0KDQojIC0tLSBLZXJuZWwgMTogUmV3cml0dGVuIGZvciBNSTMwMFggd2l0aCB0bC5yYW5nZSAtLS0NCkB0cml0b24uaml0DQpkZWYgX2NvbXB1dGVfZnVzZWRfc2NhdHRlcl9taTMwMHhfa2VybmVsKA0KICAgIHhfZmxhdF9wdHIsDQogICAgaW5kaWNlc190b19nYXRoZXJfeF9wdHIsDQogICAgc29ydGVkX2V4cGVydF9pZHNfcHRyLA0KICAgIHdfZ2F0ZV9wdHIsDQogICAgd191cF9wdHIsDQogICAgc29ydF9vcmRlcl9pbmRpY2VzX3B0ciwNCiAgICBmdXNlZF9vdXRfb3JpZ2luYWxfb3JkZXJfcHRyLA0KICAgIFBfdG90YWxfcGFpcnM6IHRsLmNvbnN0ZXhwciwNCiAgICBIX0RJTTogdGwuY29uc3RleHByLA0KICAgIERfRVhQOiB0bC5jb25zdGV4cHIsDQogICAgQkxPQ0tfRF9FWFBfT1VUOiB0bC5jb25zdGV4cHIsDQogICAgQkxPQ0tfSF9TTElDSU5HOiB0bC5jb25zdGV4cHIsDQogICAgTE9PUF9OVU1fU1RBR0VTX0sxOiB0bC5jb25zdGV4cHIsDQogICAgTE9PUF9VTlJPTExfRkFDVE9SX0sxOiB0bC5jb25zdGV4cHIsICAjIE5ldyBwYXJhbWV0ZXIgZm9yIHVucm9sbCBmYWN0b3INCikgLT4gTm9uZToNCiAgICBwaWRfcGFpcl9zb3J0ZWQgPSB0bC5wcm9ncmFtX2lkKDApDQogICAgcGlkX2RfZXhwX3RpbGVfaWR4ID0gdGwucHJvZ3JhbV9pZCgxKQ0KDQogICAgaWYgcGlkX3BhaXJfc29ydGVkID49IFBfdG90YWxfcGFpcnM6DQogICAgICAgIHJldHVybg0KDQogICAgZXhwZXJ0X2lkID0gdGwubG9hZChzb3J0ZWRfZXhwZXJ0X2lkc19wdHIgKyBwaWRfcGFpcl9zb3J0ZWQpDQogICAgb3JpZ2luYWxfdG9rZW5faWR4X2Zvcl94ID0gdGwubG9hZChpbmRpY2VzX3RvX2dhdGhlcl94X3B0ciArIHBpZF9wYWlyX3NvcnRlZCkNCiAgICBvcmlnaW5hbF9wYWlyX2lkeF9mb3Jfb3V0cHV0ID0gdGwubG9hZChzb3J0X29yZGVyX2luZGljZXNfcHRyICsgcGlkX3BhaXJfc29ydGVkKQ0KDQogICAgcHRyX3hfdG9rZW5fYmFzZSA9IHhfZmxhdF9wdHIgKyBvcmlnaW5hbF90b2tlbl9pZHhfZm9yX3ggKiBIX0RJTQ0KDQogICAgZF9leHBfc3RhcnRfb2Zmc2V0ID0gcGlkX2RfZXhwX3RpbGVfaWR4ICogQkxPQ0tfRF9FWFBfT1VUDQogICAgb2Zmc19kX2V4cF9wcm9nID0gZF9leHBfc3RhcnRfb2Zmc2V0ICsgdGwuYXJhbmdlKDAsIEJMT0NLX0RfRVhQX09VVCkNCiAgICBtYXNrX2RfZXhwX3Byb2dfdmFsaWQgPSBvZmZzX2RfZXhwX3Byb2cgPCBEX0VYUA0KDQogICAgZXhwZXJ0X29mZnNldF9pbl93ZWlnaHRzID0gZXhwZXJ0X2lkICogRF9FWFAgKiBIX0RJTQ0KICAgIHJvd19vZmZzZXRzX2luX2V4cGVydF9tYXRyaXggPSBvZmZzX2RfZXhwX3Byb2dbOiwgTm9uZV0gKiBIX0RJTQ0KDQogICAgYmFzZV93X2dhdGVfZXhwZXJ0X3RpbGVfcm93cyA9ICgNCiAgICAgICAgd19nYXRlX3B0ciArIGV4cGVydF9vZmZzZXRfaW5fd2VpZ2h0cyArIHJvd19vZmZzZXRzX2luX2V4cGVydF9tYXRyaXgNCiAgICApDQogICAgYmFzZV93X3VwX2V4cGVydF90aWxlX3Jvd3MgPSB3X3VwX3B0ciArIGV4cGVydF9vZmZzZXRfaW5fd2VpZ2h0cyArIHJvd19vZmZzZXRzX2luX2V4cGVydF9tYXRyaXgNCg0KICAgIGdhdGVfYWNjID0gdGwuemVyb3MoKEJMT0NLX0RfRVhQX09VVCwpLCBkdHlwZT10bC5mbG9hdDMyKQ0KICAgIHVwX2FjYyA9IHRsLnplcm9zKChCTE9DS19EX0VYUF9PVVQsKSwgZHR5cGU9dGwuZmxvYXQzMikNCg0KICAgIG9mZnNfaF9zdHJlYW1fZWxlbWVudHMgPSB0bC5hcmFuZ2UoMCwgQkxPQ0tfSF9TTElDSU5HKQ0KICAgICMgTU9ESUZJRUQ6IFVzZSB0bC5yYW5nZSB3aXRoIGxvb3BfdW5yb2xsX2ZhY3Rvcg0KICAgIGZvciBoX3N0YXJ0IGluIHRsLnJhbmdlKA0KICAgICAgICAwLA0KICAgICAgICBIX0RJTSwNCiAgICAgICAgc3RlcD1CTE9DS19IX1NMSUNJTkcsDQogICAgICAgIG51bV9zdGFnZXM9TE9PUF9OVU1fU1RBR0VTX0sxLA0KICAgICAgICBsb29wX3Vucm9sbF9mYWN0b3I9TE9PUF9VTlJPTExfRkFDVE9SX0sxLA0KICAgICk6DQogICAgICAgIGN1cnJlbnRfaF9vZmZzID0gaF9zdGFydCArIG9mZnNfaF9zdHJlYW1fZWxlbWVudHMNCiAgICAgICAgbWFza19oX3NsaWNlX3ZhbGlkID0gY3VycmVudF9oX29mZnMgPCBIX0RJTQ0KDQogICAgICAgIHhfc2xpY2UgPSB0bC5sb2FkKA0KICAgICAgICAgICAgcHRyX3hfdG9rZW5fYmFzZSArIGN1cnJlbnRfaF9vZmZzLA0KICAgICAgICAgICAgbWFzaz1tYXNrX2hfc2xpY2VfdmFsaWQsDQogICAgICAgICAgICBvdGhlcj0wLjAsDQogICAgICAgICAgICBldmljdGlvbl9wb2xpY3k9ImV2aWN0X2xhc3QiLA0KICAgICAgICApDQoNCiAgICAgICAgcHRyX3dfZ2F0ZV90aWxlID0gYmFzZV93X2dhdGVfZXhwZXJ0X3RpbGVfcm93cyArIGN1cnJlbnRfaF9vZmZzW05vbmUsIDpdDQogICAgICAgIG1hc2tfd190aWxlX3ZhbGlkID0gbWFza19kX2V4cF9wcm9nX3ZhbGlkWzosIE5vbmVdICYgbWFza19oX3NsaWNlX3ZhbGlkW05vbmUsIDpdDQogICAgICAgIHdfZ2F0ZV90aWxlID0gdGwubG9hZCgNCiAgICAgICAgICAgIHB0cl93X2dhdGVfdGlsZSwgbWFzaz1tYXNrX3dfdGlsZV92YWxpZCwgb3RoZXI9MC4wLCBldmljdGlvbl9wb2xpY3k9ImV2aWN0X2ZpcnN0Ig0KICAgICAgICApDQoNCiAgICAgICAgcHRyX3dfdXBfdGlsZSA9IGJhc2Vfd191cF9leHBlcnRfdGlsZV9yb3dzICsgY3VycmVudF9oX29mZnNbTm9uZSwgOl0NCiAgICAgICAgd191cF90aWxlID0gdGwubG9hZCgNCiAgICAgICAgICAgIHB0cl93X3VwX3RpbGUsIG1hc2s9bWFza193X3RpbGVfdmFsaWQsIG90aGVyPTAuMCwgZXZpY3Rpb25fcG9saWN5PSJldmljdF9maXJzdCINCiAgICAgICAgKQ0KDQogICAgICAgIHhfc2xpY2VfY2FzdGVkID0geF9zbGljZS50byh3X2dhdGVfdGlsZS5kdHlwZSkNCiAgICAgICAgZ2F0ZV9hY2MgKz0gdGwuc3VtKHdfZ2F0ZV90aWxlICogeF9zbGljZV9jYXN0ZWRbTm9uZSwgOl0sIGF4aXM9MSkNCiAgICAgICAgdXBfYWNjICs9IHRsLnN1bSh3X3VwX3RpbGUgKiB4X3NsaWNlX2Nhc3RlZFtOb25lLCA6XSwgYXhpcz0xKQ0KDQogICAgZ2F0ZV9hY3RpdmF0ZWRfZjMyID0gZ2F0ZV9hY2MgKiB0bC5zaWdtb2lkKGdhdGVfYWNjKQ0KICAgIGZ1c2VkX3Jlc3VsdF9mMzIgPSBnYXRlX2FjdGl2YXRlZF9mMzIgKiB1cF9hY2MNCiAgICBmdXNlZF9yZXN1bHRfZjE2ID0gZnVzZWRfcmVzdWx0X2YzMi50byhmdXNlZF9vdXRfb3JpZ2luYWxfb3JkZXJfcHRyLmR0eXBlLmVsZW1lbnRfdHkpDQoNCiAgICBvdXRfcHRyX2Zvcl90aWxlID0gKA0KICAgICAgICBmdXNlZF9vdXRfb3JpZ2luYWxfb3JkZXJfcHRyICsgb3JpZ2luYWxfcGFpcl9pZHhfZm9yX291dHB1dCAqIERfRVhQICsgb2Zmc19kX2V4cF9wcm9nDQogICAgKQ0KICAgIHRsLnN0b3JlKG91dF9wdHJfZm9yX3RpbGUsIGZ1c2VkX3Jlc3VsdF9mMTYsIG1hc2s9bWFza19kX2V4cF9wcm9nX3ZhbGlkKQ0KDQoNCiMgLS0tIEtlcm5lbCAyOiBBZGFwdGVkIGZvciBNSTMwMFggd2l0aCBDYWNoZSBIaW50cyBhbmQgdGwucmFuZ2UgLS0tDQpAdHJpdG9uLmppdA0KZGVmIF9wcm9qZWN0X2FuZF9hY2N1bXVsYXRlX21pMzAweF9rZXJuZWwoDQogICAgZnVzZWRfaW5fcHRyLA0KICAgIG9yaWdpbmFsX2V4cGVydF9pZHNfcHRyLA0KICAgIG9yaWdpbmFsX3JvdXRpbmdfd19wdHIsDQogICAgd19kb3duX3B0ciwNCiAgICBvdXRfcHRyLA0KICAgIE5VTV9UT0tFTlM6IHRsLmNvbnN0ZXhwciwNCiAgICBIX0RJTTogdGwuY29uc3RleHByLA0KICAgIERfRVhQOiB0bC5jb25zdGV4cHIsDQogICAgVE9QX0s6IHRsLmNvbnN0ZXhwciwNCiAgICBCTE9DS19IX09VVDogdGwuY29uc3RleHByLA0KICAgIEJMT0NLX0RfU1RSRUFNOiB0bC5jb25zdGV4cHIsDQogICAgTE9PUF9OVU1fU1RBR0VTX0syOiB0bC5jb25zdGV4cHIsDQogICAgTE9PUF9VTlJPTExfRkFDVE9SX0syOiB0bC5jb25zdGV4cHIsICAjIE5ldyBwYXJhbWV0ZXIgZm9yIHVucm9sbCBmYWN0b3INCikgLT4gTm9uZToNCiAgICBwaWRfdG9rID0gdGwucHJvZ3JhbV9pZCgwKQ0KICAgIHBpZF9oX291dF90aWxlX2lkeCA9IHRsLnByb2dyYW1faWQoMSkNCg0KICAgIGlmIHBpZF90b2sgPj0gTlVNX1RPS0VOUzoNCiAgICAgICAgcmV0dXJuDQoNCiAgICBoX291dF9zdGFydF9vZmZzZXQgPSBwaWRfaF9vdXRfdGlsZV9pZHggKiBCTE9DS19IX09VVA0KICAgIG9mZnNfaF9vdXRfcHJvZyA9IGhfb3V0X3N0YXJ0X29mZnNldCArIHRsLmFyYW5nZSgwLCBCTE9DS19IX09VVCkNCiAgICBtYXNrX2hfb3V0X3Byb2dfdmFsaWQgPSBvZmZzX2hfb3V0X3Byb2cgPCBIX0RJTQ0KDQogICAgb3V0X2FjY19oX3NsaWNlID0gdGwuemVyb3MoKEJMT0NLX0hfT1VULCksIGR0eXBlPXRsLmZsb2F0MzIpDQoNCiAgICBmb3Iga19pZHggaW4gcmFuZ2UoVE9QX0spOg0KICAgICAgICBvcmlnaW5hbF9wYWlyX2lkID0gcGlkX3RvayAqIFRPUF9LICsga19pZHgNCg0KICAgICAgICBleHBlcnRfaWRfZm9yX3dfZG93biA9IHRsLmxvYWQob3JpZ2luYWxfZXhwZXJ0X2lkc19wdHIgKyBvcmlnaW5hbF9wYWlyX2lkKQ0KICAgICAgICByb3V0aW5nX3dlaWdodF9mcDE2ID0gdGwubG9hZChvcmlnaW5hbF9yb3V0aW5nX3dfcHRyICsgb3JpZ2luYWxfcGFpcl9pZCkNCiAgICAgICAgcm91dGluZ193ZWlnaHRfZjMyID0gcm91dGluZ193ZWlnaHRfZnAxNi50byh0bC5mbG9hdDMyKQ0KDQogICAgICAgIGZ1c2VkX2RhdGFfYmFzZV9mb3JfcGFpciA9IGZ1c2VkX2luX3B0ciArIG9yaWdpbmFsX3BhaXJfaWQgKiBEX0VYUA0KDQogICAgICAgIGV4cGVydF9vZmZzZXRfaW5fd19kb3duID0gZXhwZXJ0X2lkX2Zvcl93X2Rvd24gKiBIX0RJTSAqIERfRVhQDQogICAgICAgIHJvd19vZmZzZXRzX2luX2V4cGVydF93X2Rvd24gPSBvZmZzX2hfb3V0X3Byb2dbOiwgTm9uZV0gKiBEX0VYUA0KICAgICAgICBiYXNlX3dfZG93bl9leHBlcnRfdGlsZV9yb3dzID0gKA0KICAgICAgICAgICAgd19kb3duX3B0ciArIGV4cGVydF9vZmZzZXRfaW5fd19kb3duICsgcm93X29mZnNldHNfaW5fZXhwZXJ0X3dfZG93bg0KICAgICAgICApDQoNCiAgICAgICAgY3VycmVudF9leHBlcnRfYWNjX2hfc2xpY2UgPSB0bC56ZXJvcygoQkxPQ0tfSF9PVVQsKSwgZHR5cGU9dGwuZmxvYXQzMikNCg0KICAgICAgICBvZmZzX2Rfc3RyZWFtX2VsZW1lbnRzID0gdGwuYXJhbmdlKDAsIEJMT0NLX0RfU1RSRUFNKQ0KICAgICAgICAjIE1PRElGSUVEOiBVc2UgdGwucmFuZ2Ugd2l0aCBsb29wX3Vucm9sbF9mYWN0b3INCiAgICAgICAgZm9yIGRfc3RhcnQgaW4gdGwucmFuZ2UoDQogICAgICAgICAgICAwLA0KICAgICAgICAgICAgRF9FWFAsDQogICAgICAgICAgICBzdGVwPUJMT0NLX0RfU1RSRUFNLA0KICAgICAgICAgICAgbnVtX3N0YWdlcz1MT09QX05VTV9TVEFHRVNfSzIsDQogICAgICAgICAgICBsb29wX3Vucm9sbF9mYWN0b3I9TE9PUF9VTlJPTExfRkFDVE9SX0syLA0KICAgICAgICApOg0KICAgICAgICAgICAgY3VycmVudF9kX29mZnMgPSBkX3N0YXJ0ICsgb2Zmc19kX3N0cmVhbV9lbGVtZW50cw0KICAgICAgICAgICAgbWFza19kX3N0cmVhbV92YWxpZCA9IGN1cnJlbnRfZF9vZmZzIDwgRF9FWFANCg0KICAgICAgICAgICAgZl9zbGljZSA9IHRsLmxvYWQoDQogICAgICAgICAgICAgICAgZnVzZWRfZGF0YV9iYXNlX2Zvcl9wYWlyICsgY3VycmVudF9kX29mZnMsDQogICAgICAgICAgICAgICAgbWFzaz1tYXNrX2Rfc3RyZWFtX3ZhbGlkLA0KICAgICAgICAgICAgICAgIG90aGVyPTAuMCwNCiAgICAgICAgICAgICAgICBldmljdGlvbl9wb2xpY3k9ImV2aWN0X2ZpcnN0IiwNCiAgICAgICAgICAgICkNCg0KICAgICAgICAgICAgcHRyX3dfZG93bl90aWxlID0gYmFzZV93X2Rvd25fZXhwZXJ0X3RpbGVfcm93cyArIGN1cnJlbnRfZF9vZmZzW05vbmUsIDpdDQogICAgICAgICAgICBtYXNrX3dfdGlsZV92YWxpZCA9IG1hc2tfaF9vdXRfcHJvZ192YWxpZFs6LCBOb25lXSAmIG1hc2tfZF9zdHJlYW1fdmFsaWRbTm9uZSwgOl0NCiAgICAgICAgICAgIHdfZG93bl90aWxlID0gdGwubG9hZCgNCiAgICAgICAgICAgICAgICBwdHJfd19kb3duX3RpbGUsIG1hc2s9bWFza193X3RpbGVfdmFsaWQsIG90aGVyPTAuMCwgZXZpY3Rpb25fcG9saWN5PSJldmljdF9maXJzdCINCiAgICAgICAgICAgICkNCg0KICAgICAgICAgICAgZl9zbGljZV9jYXN0ZWQgPSBmX3NsaWNlLnRvKHdfZG93bl90aWxlLmR0eXBlKQ0KICAgICAgICAgICAgY3VycmVudF9leHBlcnRfYWNjX2hfc2xpY2UgKz0gdGwuc3VtKHdfZG93bl90aWxlICogZl9zbGljZV9jYXN0ZWRbTm9uZSwgOl0sIGF4aXM9MSkNCg0KICAgICAgICBvdXRfYWNjX2hfc2xpY2UgKz0gY3VycmVudF9leHBlcnRfYWNjX2hfc2xpY2UgKiByb3V0aW5nX3dlaWdodF9mMzINCg0KICAgIG91dHB1dF9wdHJfZm9yX3RpbGUgPSBvdXRfcHRyICsgcGlkX3RvayAqIEhfRElNICsgb2Zmc19oX291dF9wcm9nDQogICAgdGwuc3RvcmUoDQogICAgICAgIG91dHB1dF9wdHJfZm9yX3RpbGUsDQogICAgICAgIG91dF9hY2NfaF9zbGljZS50byhvdXRfcHRyLmR0eXBlLmVsZW1lbnRfdHkpLA0KICAgICAgICBtYXNrPW1hc2tfaF9vdXRfcHJvZ192YWxpZCwNCiAgICApDQoNCg0KIyAtLS0gVHJpdG9uTW9FIE1vZHVsZSAtLS0NCmNsYXNzIFRyaXRvbk1vRShubi5Nb2R1bGUpOg0KICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWc6IERpY3QsIGRldmljZTogdG9yY2guZGV2aWNlKToNCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpDQogICAgICAgIHNlbGYuRSA9IGNvbmZpZ1sibl9yb3V0ZWRfZXhwZXJ0cyJdDQogICAgICAgIHNlbGYuSyA9IGNvbmZpZ1sibl9leHBlcnRzX3Blcl90b2tlbiJdDQogICAgICAgIHNlbGYuSF9kaW0gPSBjb25maWdbImRfaGlkZGVuIl0NCiAgICAgICAgc2VsZi5EX2V4cCA9IGNvbmZpZ1siZF9leHBlcnQiXQ0KICAgICAgICBzZWxmLmRldmljZSA9IGRldmljZQ0KICAgICAgICBleHBlcnRfZHR5cGVfYXJnID0gdG9yY2guZmxvYXQxNg0KDQogICAgICAgIHNlbGYuV19nID0gbm4uTGluZWFyKHNlbGYuSF9kaW0sIHNlbGYuRSwgYmlhcz1GYWxzZSwgZGV2aWNlPWRldmljZSwgZHR5cGU9ZXhwZXJ0X2R0eXBlX2FyZykNCiAgICAgICAgc2VsZi5XX2dhdGUgPSBubi5QYXJhbWV0ZXIoDQogICAgICAgICAgICB0b3JjaC5lbXB0eShzZWxmLkUsIHNlbGYuRF9leHAsIHNlbGYuSF9kaW0sIGRldmljZT1kZXZpY2UsIGR0eXBlPWV4cGVydF9kdHlwZV9hcmcpDQogICAgICAgICkNCiAgICAgICAgc2VsZi5XX3VwID0gbm4uUGFyYW1ldGVyKA0KICAgICAgICAgICAgdG9yY2guZW1wdHkoc2VsZi5FLCBzZWxmLkRfZXhwLCBzZWxmLkhfZGltLCBkZXZpY2U9ZGV2aWNlLCBkdHlwZT1leHBlcnRfZHR5cGVfYXJnKQ0KICAgICAgICApDQogICAgICAgIHNlbGYuV19kb3duID0gbm4uUGFyYW1ldGVyKA0KICAgICAgICAgICAgdG9yY2guZW1wdHkoc2VsZi5FLCBzZWxmLkhfZGltLCBzZWxmLkRfZXhwLCBkZXZpY2U9ZGV2aWNlLCBkdHlwZT1leHBlcnRfZHR5cGVfYXJnKQ0KICAgICAgICApDQogICAgICAgIHNoYXJlZF9leHBlcnRfb3V0cHV0X2RpbSA9IHNlbGYuRF9leHAgKiBjb25maWdbIm5fc2hhcmVkX2V4cGVydHMiXQ0KICAgICAgICBzZWxmLnNoYXJlZF9leHBlcnQgPSBFeHBlcnQoDQogICAgICAgICAgICBjb25maWcsIGRfZXhwZXJ0PXNoYXJlZF9leHBlcnRfb3V0cHV0X2RpbSwgZGV2aWNlPWRldmljZSwgZHR5cGU9ZXhwZXJ0X2R0eXBlX2FyZw0KICAgICAgICApDQoNCiAgICBkZWYgbG9hZF93ZWlnaHRzX2Zhc3Qoc2VsZiwgd2VpZ2h0czogRGljdFtzdHIsIHRvcmNoLlRlbnNvcl0pOg0KICAgICAgICBkZXYgPSBzZWxmLmRldmljZQ0KICAgICAgICB0ZCA9IHRvcmNoLmZsb2F0MTYNCiAgICAgICAgc2VsZi5XX2cud2VpZ2h0LmRhdGEuY29weV8od2VpZ2h0c1sicm91dGVyLndlaWdodCJdLnRvKGRldiwgdGQpKQ0KICAgICAgICBzZWxmLldfZ2F0ZS5kYXRhLmNvcHlfKA0KICAgICAgICAgICAgX3N0YWNrX3Qod2VpZ2h0cywgImV4cGVydHMue30uMC53ZWlnaHQiLCBzZWxmLkUsIChzZWxmLkUsIHNlbGYuRF9leHAsIHNlbGYuSF9kaW0pKS50bygNCiAgICAgICAgICAgICAgICBkZXYsIHRkDQogICAgICAgICAgICApDQogICAgICAgICkNCiAgICAgICAgc2VsZi5XX3VwLmRhdGEuY29weV8oDQogICAgICAgICAgICBfc3RhY2tfdCh3ZWlnaHRzLCAiZXhwZXJ0cy57fS4xLndlaWdodCIsIHNlbGYuRSwgKHNlbGYuRSwgc2VsZi5EX2V4cCwgc2VsZi5IX2RpbSkpLnRvKA0KICAgICAgICAgICAgICAgIGRldiwgdGQNCiAgICAgICAgICAgICkNCiAgICAgICAgKQ0KICAgICAgICBzZWxmLldfZG93bi5kYXRhLmNvcHlfKA0KICAgICAgICAgICAgX3N0YWNrX3Qod2VpZ2h0cywgImV4cGVydHMue30uMi53ZWlnaHQiLCBzZWxmLkUsIChzZWxmLkUsIHNlbGYuSF9kaW0sIHNlbGYuRF9leHApKS50bygNCiAgICAgICAgICAgICAgICBkZXYsIHRkDQogICAgICAgICAgICApDQogICAgICAgICkNCg0KICAgICAgICBzZWxmLnNoYXJlZF9leHBlcnQuV19nYXRlLndlaWdodC5kYXRhLmNvcHlfKA0KICAgICAgICAgICAgd2VpZ2h0c1sic2hhcmVkX2V4cGVydHMuMC53ZWlnaHQiXS50KCkudG8oZGV2LCB0ZCkNCiAgICAgICAgKQ0KICAgICAgICBzZWxmLnNoYXJlZF9leHBlcnQuV191cC53ZWlnaHQuZGF0YS5jb3B5XygNCiAgICAgICAgICAgIHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjEud2VpZ2h0Il0udCgpLnRvKGRldiwgdGQpDQogICAgICAgICkNCiAgICAgICAgc2VsZi5zaGFyZWRfZXhwZXJ0LldfZG93bi53ZWlnaHQuZGF0YS5jb3B5XygNCiAgICAgICAgICAgIHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjIud2VpZ2h0Il0udCgpLnRvKGRldiwgdGQpDQogICAgICAgICkNCg0KICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOg0KICAgICAgICBCLCBULCBIID0geC5zaGFwZQ0KICAgICAgICBhc3NlcnQgSCA9PSBzZWxmLkhfZGltLCAiSW5wdXQgSF9kaW0gbWlzbWF0Y2giDQogICAgICAgIFBfdG90YWxfcGFpcnMgPSBCICogVCAqIHNlbGYuSw0KICAgICAgICBOVU1fVE9LRU5TID0gQiAqIFQNCg0KICAgICAgICBjdXJyZW50X2R0eXBlID0geC5kdHlwZQ0KICAgICAgICBpZiBoYXNhdHRyKHNlbGYuV19nLndlaWdodCwgImR0eXBlIikgYW5kIHNlbGYuV19nLndlaWdodC5kdHlwZSA9PSB0b3JjaC5mbG9hdDE2Og0KICAgICAgICAgICAgY3VycmVudF9kdHlwZSA9IHRvcmNoLmZsb2F0MTYNCiAgICAgICAgeF9jb21wdXRlX2R0eXBlID0geC50byhjdXJyZW50X2R0eXBlKQ0KDQogICAgICAgIF9tYXliZV9wcm9maWxlKCJzdGFydCByb3V0aW5nIOKGmCIpDQogICAgICAgIGxvZ2l0cyA9IHNlbGYuV19nKHhfY29tcHV0ZV9kdHlwZSkNCiAgICAgICAgc2NvcmVzID0gbG9naXRzLnNvZnRtYXgoZGltPS0xKQ0KICAgICAgICB0b3BrX3Njb3JlcywgdG9wa19pZHggPSB0b3JjaC50b3BrKHNjb3Jlcywgc2VsZi5LLCBkaW09LTEsIHNvcnRlZD1GYWxzZSkNCg0KICAgICAgICBvcmlnaW5hbF9leHBlcnRfZmxhdCA9IHRvcGtfaWR4LnJlc2hhcGUoLTEpLmludCgpDQogICAgICAgIG9yaWdpbmFsX3JvdXRfZmxhdCA9IHRvcGtfc2NvcmVzLnJlc2hhcGUoLTEpLnRvKGN1cnJlbnRfZHR5cGUpDQogICAgICAgIHhfZmxhdCA9IHhfY29tcHV0ZV9kdHlwZS5yZXNoYXBlKE5VTV9UT0tFTlMsIEgpLmNvbnRpZ3VvdXMoKQ0KICAgICAgICBfbWF5YmVfcHJvZmlsZSgicm91dGluZyBkb25lIOKGlyIpDQoNCiAgICAgICAgX21heWJlX3Byb2ZpbGUoInN0YXJ0IHBlcm11dGF0aW9uIG9wcyAoYXJnc29ydCBvbmx5KSDihpgiKQ0KICAgICAgICB0b2tlbl9pbmRpY2VzX2Zvcl9mbGF0X3BhaXJzID0gKA0KICAgICAgICAgICAgdG9yY2guYXJhbmdlKE5VTV9UT0tFTlMsIGRldmljZT14LmRldmljZSwgZHR5cGU9dG9yY2gubG9uZykNCiAgICAgICAgICAgIC51bnNxdWVlemUoMSkNCiAgICAgICAgICAgIC5leHBhbmQoLTEsIHNlbGYuSykNCiAgICAgICAgICAgIC5yZXNoYXBlKC0xKQ0KICAgICAgICApDQogICAgICAgIHBlcm1faW5kaWNlcyA9IHRvcmNoLmFyZ3NvcnQob3JpZ2luYWxfZXhwZXJ0X2ZsYXQsIHN0YWJsZT1UcnVlKS5pbnQoKQ0KICAgICAgICBzb3J0ZWRfZXhwZXJ0X2lkcyA9IG9yaWdpbmFsX2V4cGVydF9mbGF0W3Blcm1faW5kaWNlc10uaW50KCkNCiAgICAgICAgaW5kaWNlc190b19nYXRoZXJfeCA9IHRva2VuX2luZGljZXNfZm9yX2ZsYXRfcGFpcnNbcGVybV9pbmRpY2VzXS5pbnQoKQ0KICAgICAgICBfbWF5YmVfcHJvZmlsZSgicGVybXV0YXRpb24gb3BzIChhcmdzb3J0IG9ubHkpIGRvbmUg4oaXIikNCg0KICAgICAgICBmYnVmX29yaWdpbmFsX29yZGVyID0gdG9yY2guZW1wdHkoDQogICAgICAgICAgICAoUF90b3RhbF9wYWlycywgc2VsZi5EX2V4cCksIGRldmljZT1zZWxmLmRldmljZSwgZHR5cGU9Y3VycmVudF9kdHlwZQ0KICAgICAgICApDQogICAgICAgIG9idWYgPSB0b3JjaC5lbXB0eSgoTlVNX1RPS0VOUywgSCksIGRldmljZT1zZWxmLmRldmljZSwgZHR5cGU9Y3VycmVudF9kdHlwZSkNCg0KICAgICAgICAjIC0tLSBLZXJuZWwgMSBMYXVuY2ggLS0tDQogICAgICAgIGsxX2dyaWRfZGltMCA9IFBfdG90YWxfcGFpcnMNCiAgICAgICAgazFfZ3JpZF9kaW0xID0gKHNlbGYuRF9leHAgKyBLMV9CTE9DS19EX0VYUF9PVVRfVFVORUQgLSAxKSAvLyBLMV9CTE9DS19EX0VYUF9PVVRfVFVORUQNCiAgICAgICAgazFfZ3JpZCA9IChrMV9ncmlkX2RpbTAsIGsxX2dyaWRfZGltMSwgMSkNCg0KICAgICAgICBfbWF5YmVfcHJvZmlsZSgNCiAgICAgICAgICAgIGYibGF1bmNoIEtlcm5lbCAxIChNSTMwMFgpIGdyaWQ9e2sxX2dyaWR9ICINCiAgICAgICAgICAgIGYiQkxPQ0tfRF9FWFBfT1VUPXtLMV9CTE9DS19EX0VYUF9PVVRfVFVORUR9LCBCTE9DS19IX1NMSUNJTkc9e0sxX0JMT0NLX0hfU0xJQ0lOR19UVU5FRH0gIg0KICAgICAgICAgICAgZiJOVz17SzFfTlVNX1dBUlBTX1RVTkVEfSwgTlNfa2VybmVsPXtLMV9OVU1fU1RBR0VTX1RVTkVEfSwgIg0KICAgICAgICAgICAgZiJOU19sb29wPXtLMV9MT09QX05VTV9TVEFHRVNfVFVORUR9LCBVTlJPTExfbG9vcD17SzFfTE9PUF9VTlJPTExfRkFDVE9SX1RVTkVEfeKGmCINCiAgICAgICAgKQ0KICAgICAgICBfY29tcHV0ZV9mdXNlZF9zY2F0dGVyX21pMzAweF9rZXJuZWxbazFfZ3JpZF0oDQogICAgICAgICAgICB4X2ZsYXQsDQogICAgICAgICAgICBpbmRpY2VzX3RvX2dhdGhlcl94LA0KICAgICAgICAgICAgc29ydGVkX2V4cGVydF9pZHMsDQogICAgICAgICAgICBzZWxmLldfZ2F0ZSwNCiAgICAgICAgICAgIHNlbGYuV191cCwNCiAgICAgICAgICAgIHBlcm1faW5kaWNlcywNCiAgICAgICAgICAgIGZidWZfb3JpZ2luYWxfb3JkZXIsDQogICAgICAgICAgICBQX3RvdGFsX3BhaXJzPVBfdG90YWxfcGFpcnMsDQogICAgICAgICAgICBIX0RJTT1ILA0KICAgICAgICAgICAgRF9FWFA9c2VsZi5EX2V4cCwNCiAgICAgICAgICAgIEJMT0NLX0RfRVhQX09VVD1LMV9CTE9DS19EX0VYUF9PVVRfVFVORUQsDQogICAgICAgICAgICBCTE9DS19IX1NMSUNJTkc9SzFfQkxPQ0tfSF9TTElDSU5HX1RVTkVELA0KICAgICAgICAgICAgTE9PUF9OVU1fU1RBR0VTX0sxPUsxX0xPT1BfTlVNX1NUQUdFU19UVU5FRCwNCiAgICAgICAgICAgIExPT1BfVU5ST0xMX0ZBQ1RPUl9LMT1LMV9MT09QX1VOUk9MTF9GQUNUT1JfVFVORUQsICAjIFBhc3MgdW5yb2xsIGZhY3Rvcg0KICAgICAgICAgICAgbnVtX3dhcnBzPUsxX05VTV9XQVJQU19UVU5FRCwNCiAgICAgICAgICAgIG51bV9zdGFnZXM9SzFfTlVNX1NUQUdFU19UVU5FRCwNCiAgICAgICAgKQ0KICAgICAgICBfbWF5YmVfcHJvZmlsZSgiS2VybmVsIDEgKE1JMzAwWCkgZG9uZSDihpciKQ0KDQogICAgICAgICMgLS0tIEtlcm5lbCAyIExhdW5jaCAtLS0NCiAgICAgICAgazJfZ3JpZF9kaW0wID0gTlVNX1RPS0VOUw0KICAgICAgICBrMl9ncmlkX2RpbTEgPSAoSCArIEsyX0JMT0NLX0hfT1VUX1RVTkVEIC0gMSkgLy8gSzJfQkxPQ0tfSF9PVVRfVFVORUQNCiAgICAgICAgazJfZ3JpZCA9IChrMl9ncmlkX2RpbTAsIGsyX2dyaWRfZGltMSwgMSkNCg0KICAgICAgICBfbWF5YmVfcHJvZmlsZSgNCiAgICAgICAgICAgIGYibGF1bmNoIEtlcm5lbCAyIChNSTMwMFgpIGdyaWQ9e2syX2dyaWR9ICINCiAgICAgICAgICAgIGYiQkxPQ0tfSF9PVVQ9e0syX0JMT0NLX0hfT1VUX1RVTkVEfSwgQkxPQ0tfRF9TVFJFQU09e0syX0JMT0NLX0RfU1RSRUFNX1RVTkVEfSAiDQogICAgICAgICAgICBmIk5XPXtLMl9OVU1fV0FSUFNfVFVORUR9LCBOU19rZXJuZWw9e0syX05VTV9TVEFHRVNfVFVORUR9LCAiDQogICAgICAgICAgICBmIk5TX2xvb3A9e0syX0xPT1BfTlVNX1NUQUdFU19UVU5FRH0sIFVOUk9MTF9sb29wPXtLMl9MT09QX1VOUk9MTF9GQUNUT1JfVFVORUR94oaYIg0KICAgICAgICApDQogICAgICAgIF9wcm9qZWN0X2FuZF9hY2N1bXVsYXRlX21pMzAweF9rZXJuZWxbazJfZ3JpZF0oDQogICAgICAgICAgICBmYnVmX29yaWdpbmFsX29yZGVyLA0KICAgICAgICAgICAgb3JpZ2luYWxfZXhwZXJ0X2ZsYXQsDQogICAgICAgICAgICBvcmlnaW5hbF9yb3V0X2ZsYXQsDQogICAgICAgICAgICBzZWxmLldfZG93biwNCiAgICAgICAgICAgIG9idWYsDQogICAgICAgICAgICBOVU1fVE9LRU5TPU5VTV9UT0tFTlMsDQogICAgICAgICAgICBIX0RJTT1ILA0KICAgICAgICAgICAgRF9FWFA9c2VsZi5EX2V4cCwNCiAgICAgICAgICAgIFRPUF9LPXNlbGYuSywNCiAgICAgICAgICAgIEJMT0NLX0hfT1VUPUsyX0JMT0NLX0hfT1VUX1RVTkVELA0KICAgICAgICAgICAgQkxPQ0tfRF9TVFJFQU09SzJfQkxPQ0tfRF9TVFJFQU1fVFVORUQsDQogICAgICAgICAgICBMT09QX05VTV9TVEFHRVNfSzI9SzJfTE9PUF9OVU1fU1RBR0VTX1RVTkVELA0KICAgICAgICAgICAgTE9PUF9VTlJPTExfRkFDVE9SX0syPUsyX0xPT1BfVU5ST0xMX0ZBQ1RPUl9UVU5FRCwgICMgUGFzcyB1bnJvbGwgZmFjdG9yDQogICAgICAgICAgICBudW1fd2FycHM9SzJfTlVNX1dBUlBTX1RVTkVELA0KICAgICAgICAgICAgbnVtX3N0YWdlcz1LMl9OVU1fU1RBR0VTX1RVTkVELA0KICAgICAgICApDQogICAgICAgIF9tYXliZV9wcm9maWxlKCJLZXJuZWwgMiAoTUkzMDBYKSBkb25lIOKGlyIpDQoNCiAgICAgICAgcm91dGVkX291dHB1dCA9IG9idWYucmVzaGFwZShCLCBULCBIKQ0KICAgICAgICBzaGFyZWRfb3V0cHV0ID0gc2VsZi5zaGFyZWRfZXhwZXJ0KHhfY29tcHV0ZV9kdHlwZSkNCiAgICAgICAgcmV0dXJuIHJvdXRlZF9vdXRwdXQgKyBzaGFyZWRfb3V0cHV0DQoNCg0KZGVmIF9zdGFja190KHdlaWdodHMsIGtleV90bXBsOiBzdHIsIG4sIG91dF9zaGFwZSk6DQogICAgbWF0cyA9IFt3ZWlnaHRzW2tleV90bXBsLmZvcm1hdChpKV0udCgpIGZvciBpIGluIHJhbmdlKG4pXQ0KICAgIHJldHVybiB0b3JjaC5zdGFjayhtYXRzLCBkaW09MCkucmVzaGFwZShvdXRfc2hhcGUpLmNvbnRpZ3VvdXMoKQ0KDQoNCmRlZiBjdXN0b21fa2VybmVsKGRhdGEpOg0KICAgIHgsIHdlaWdodHMsIGNvbmZpZyA9IGRhdGENCiAgICBkZXZpY2UgPSB4LmRldmljZQ0KICAgIF9tYXliZV9wcm9maWxlKCJjb25zdHJ1Y3QgbW9kdWxlIikNCiAgICBtb2UgPSBUcml0b25Nb0UoY29uZmlnLCBkZXZpY2U9ZGV2aWNlKQ0KICAgIF9tYXliZV9wcm9maWxlKCJtb2R1bGUgaW5pdGlhbGl6ZWQiKQ0KICAgIG1vZS5sb2FkX3dlaWdodHNfZmFzdCh3ZWlnaHRzKQ0KICAgIF9tYXliZV9wcm9maWxlKCJ3ZWlnaHRzIGxvYWRlZCIpDQogICAgd2l0aCB0b3JjaC5ub19ncmFkKCk6DQogICAgICAgIG91dCA9IG1vZSh4KQ0KICAgIF9tYXliZV9wcm9maWxlKCJmb3J3YXJkIGRvbmUiKQ0KICAgIHJldHVybiBvdXQ=Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0
Best evidence level for this revision: reported
JSON