<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>16276</bug_id>
          
          <creation_ts>2026-05-01 12:06:12 +0000</creation_ts>
          <short_desc>Crate fetcher hardcodes URLs</short_desc>
          <delta_ts>2026-06-02 22:43:34 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>BitBake</product>
          <component>bitbake</component>
          <version>6.0</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>6.1</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Burton">ross.burton</reporter>
          <assigned_to name="Minsung Cho">ms98.cho</assigned_to>
          <cc>ms98.cho</cc>
    
    <cc>paul</cc>
    
    <cc>poky.bs.watcher</cc>
    
    <cc>poky.watcher</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>sundeep.kokkonda</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Yes (doc changes required)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>105338</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2026-05-01 12:06:12 +0000</bug_when>
    <thetext>The crate fetcher hardcodes behaviour: if the host is crates.io then it hits the CDN directly, otherwise it uses the API URLs to download and list versions.

This is suboptimal, as different crate registries may have different URL structures.

As per https://doc.rust-lang.org/cargo/reference/registry-index.html, the root of a registry should contain config.json that will give us the URLs to use:

$ curl https://index.crates.io/config.json
{
  &quot;dl&quot;: &quot;https://static.crates.io/crates&quot;,
  &quot;api&quot;: &quot;https://crates.io&quot;
}

I suspect we don&apos;t want to look up this file on every hit, but we might need to have a way of expressing this information in a configuration variable of some sort so that the crate://host/ URLs can map from the abstract hostname to concrete URLs without having to hardcode.

Whether this is academic or not remains to be seen, we need to find a non-crates.io registry to compare URLs on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105369</commentid>
    <comment_count>1</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2026-05-07 14:35:26 +0000</bug_when>
    <thetext>As an example to compare to, for crates published on my Forgejo instance, https://forge.betafive.net/api/packages/pub/cargo/config.json contains:

{
  &quot;dl&quot;: &quot;https://forge.betafive.net/api/packages/pub/cargo/api/v1/crates&quot;,
  &quot;api&quot;: &quot;https://forge.betafive.net/api/packages/pub/cargo&quot;,
  &quot;auth-required&quot;: false
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105372</commentid>
    <comment_count>2</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2026-05-07 14:38:12 +0000</bug_when>
    <thetext>A nice improvement but not urgent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105428</commentid>
    <comment_count>3</comment_count>
      <attachid>5215</attachid>
    <who name="Minsung Cho">ms98.cho</who>
    <bug_when>2026-05-14 05:24:22 +0000</bug_when>
    <thetext>Created attachment 5215
fetch2/crate: support configurable registry and index URLs

This adds CRATE_REGISTRY_URL[host] and CRATE_INDEX_URL[host] support with {crate}, {version}, and {index_path} placeholders. The default crates.io behavior is preserved, while API-style custom registries and custom sparse registries are supported. Sparse registries are tracked explicitly so latest-version checks use the Cargo sparse index parser.

Verification:
- BB_SKIP_NETTESTS=yes python3 -m unittest bb.tests.fetch.CrateTest
  - Ran 12 tests, OK (5 skipped)
- crates.io regression tests passed
- python3 -m py_compile lib/bb/fetch2/crate.py lib/bb/tests/fetch.py
- git diff --check HEAD

Also added a dummy local sparse registry test that serves a generated crate archive and sparse index via HTTPService, then verifies latest-version lookup, checksum validation, download, and unpack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105432</commentid>
    <comment_count>4</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2026-05-14 14:41:36 +0000</bug_when>
    <thetext>Hi Minsung Cho,

Thanks for taking a look at this and attaching a patch! Are you able to send this to the bitbake-devel@lists.openembedded.org mailing list via `git send-email` or `b4 send` (https://b4.docs.kernel.org/en/latest/contributor/send.html, does not need a working SMTP server)?

Can we namespace the variables with BB_ prefixes? i.e. BB_CRATE_REGISTRY_URL and BB_CRATE_INDEX_URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105450</commentid>
    <comment_count>5</comment_count>
    <who name="Minsung Cho">ms98.cho</who>
    <bug_when>2026-05-14 20:11:43 +0000</bug_when>
    <thetext>Thanks for reviewing it so quick!
I sent the new patch to the mailing list.

Changes from the original submission:
- Renamed the new variables to use the requested BB_ namespace.
- BB_CRATE_REGISTRY_URL[host]
- BB_CRATE_INDEX_URL[host]</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5215</attachid>
            <date>2026-05-14 05:24:22 +0000</date>
            <delta_ts>2026-05-14 05:24:22 +0000</delta_ts>
            <desc>fetch2/crate: support configurable registry and index URLs</desc>
            <filename>0001-fetch2-crate-support-configurable-registry-and-index.patch</filename>
            <type>text/plain</type>
            <size>11420</size>
            <attacher name="Minsung Cho">ms98.cho</attacher>
            
              <data encoding="base64">RnJvbSBjM2JmOTM0ZWVhYTk2N2EyYWE1ZTk5ZWNkMTA4NDA2NGJiMTNkNDlhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAibWluc3VuZy5jaG8iIDxtczk4LmNob0BnbWFpbC5jb20+CkRh
dGU6IFdlZCwgMTMgTWF5IDIwMjYgMTI6MDg6NDAgLTA3MDAKU3ViamVjdDogW1BBVENIXSBmZXRj
aDIvY3JhdGU6IHN1cHBvcnQgY29uZmlndXJhYmxlIHJlZ2lzdHJ5IGFuZCBpbmRleCBVUkxzCgpU
aGUgY3JhdGUgZmV0Y2hlciBwcmV2aW91c2x5IGhhcmRjb2RlZCB0aGUgY3JhdGVzLmlvIGRvd25s
b2FkIFVSTCBhbmQKb25seSBzdXBwb3J0ZWQgYSBmaXhlZCAvY3JhdGUvdmVyc2lvbnMgQVBJIHNo
YXBlIGZvciBjdXN0b20gcmVnaXN0cmllcy4KVGhpcyBwcmV2ZW50ZWQgcmVjaXBlcyBmcm9tIHVz
aW5nIHByaXZhdGUgcmVnaXN0cmllcyBvciBtaXJyb3JzIHdpdGgKZGlmZmVyZW50IGRvd25sb2Fk
IHBhdGhzIG9yIENhcmdvIHNwYXJzZSBpbmRleGVzLgoKQWRkIENSQVRFX1JFR0lTVFJZX1VSTFto
b3N0XSBhbmQgQ1JBVEVfSU5ERVhfVVJMW2hvc3RdIHRlbXBsYXRlcyB3aXRoCntjcmF0ZX0sIHt2
ZXJzaW9ufSwgYW5kIHtpbmRleF9wYXRofSBwbGFjZWhvbGRlcnMuIEtlZXAgdGhlIGV4aXN0aW5n
CmNyYXRlcy5pbyBkZWZhdWx0cywgYWxsb3cgY3VzdG9tIEFQSS1zdHlsZSB2ZXJzaW9uIGVuZHBv
aW50cywgYW5kIG1hcmsKc3BhcnNlIGluZGV4ZXMgZXhwbGljaXRseSBzbyBsYXRlc3QtdmVyc2lv
biBjaGVja3MgcGFyc2UgQ2FyZ28gaW5kZXgKTkRKU09OIGluc3RlYWQgb2YgSlNPTiBBUEkgcmVz
cG9uc2VzLgoKQWRkIG5vbi1uZXR3b3JrIHRlc3RzIGZvciBkZWZhdWx0IGNyYXRlcy5pbyBVUkxz
LCBjdXN0b20gcmVnaXN0cnkKdGVtcGxhdGVzLCBzcGFyc2UgaW5kZXggcGF0aHMsIHRyYWlsaW5n
IHNsYXNoIGhhbmRsaW5nLCBhbmQgYm90aApsYXRlc3QtdmVyc2lvbiBwYXJzZXIgcGF0aHMuIEFs
c28gbWFrZSB0aGUgZmV0Y2ggdGVzdCBjbGVhbnVwIGNobW9kCmludm9jYXRpb24gcG9ydGFibGUg
YnkgcGxhY2luZyAtUiBiZWZvcmUgdGhlIG1vZGUuCgpbWU9DVE8gIzE2Mjc2XQoKU2lnbmVkLW9m
Zi1ieTogbWluc3VuZy5jaG8gPG1zOTguY2hvQGdtYWlsLmNvbT4KLS0tCiBsaWIvYmIvZmV0Y2gy
L2NyYXRlLnB5IHwgIDM5ICsrKysrKysrKysrLS0KIGxpYi9iYi90ZXN0cy9mZXRjaC5weSAgfCAx
MjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDIgZmlsZXMgY2hh
bmdlZCwgMTU2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGli
L2JiL2ZldGNoMi9jcmF0ZS5weSBiL2xpYi9iYi9mZXRjaDIvY3JhdGUucHkKaW5kZXggYmIxMmY0
ZS4uZTgyZjcxYSAxMDA2NDQKLS0tIGEvbGliL2JiL2ZldGNoMi9jcmF0ZS5weQorKysgYi9saWIv
YmIvZmV0Y2gyL2NyYXRlLnB5CkBAIC03NywxMiArNzcsNDMgQEAgY2xhc3MgQ3JhdGUoV2dldCk6
CiAgICAgICAgICMgaG9zdCAodGhpcyBpcyB0byBhbGxvdyBjdXN0b20gY3JhdGUgcmVnaXN0cmll
cyB0byBiZSBzcGVjaWZpZWQKICAgICAgICAgaG9zdCA9ICcvJy5qb2luKHBhcnRzWzI6LTJdKQog
Ci0gICAgICAgICMgSWYgdXNpbmcgY3JhdGVzLmlvIHVzZSB0aGUgQ0ROIGRpcmVjdGx5IGFzIHBl
ciBodHRwczovL2NyYXRlcy5pby9kYXRhLWFjY2VzcworICAgICAgICAjIEFsbG93IG92ZXJyaWRp
bmcgdGhlIHJlZ2lzdHJ5IGFuZCBpbmRleCBVUkxzIHZpYSBiaXRiYWtlIHZhcmlhYmxlcy4KKyAg
ICAgICAgIyBFeGFtcGxlOgorICAgICAgICAjIENSQVRFX1JFR0lTVFJZX1VSTFtteS1ob3N0XSA9
ICJodHRwczovL215LWhvc3QuY29tL2NyYXRlcy97Y3JhdGV9L3t2ZXJzaW9ufS9kb3dubG9hZCIK
KyAgICAgICAgIyAgICAgICAgICBDUkFURV9JTkRFWF9VUkxbbXktaG9zdF0gPSAiaHR0cHM6Ly9t
eS1ob3N0LmNvbS9pbmRleC97aW5kZXhfcGF0aH0iCisgICAgICAgIGRsX3VybCA9IGQuZ2V0VmFy
RmxhZygnQ1JBVEVfUkVHSVNUUllfVVJMJywgaG9zdCkKKyAgICAgICAgaW5kZXhfdXJsID0gZC5n
ZXRWYXJGbGFnKCdDUkFURV9JTkRFWF9VUkwnLCBob3N0KQorCiAgICAgICAgIGlmIGhvc3QgPT0g
J2NyYXRlcy5pbyc6Ci0gICAgICAgICAgICB1ZC51cmwgPSAiaHR0cHM6Ly9zdGF0aWMuY3JhdGVz
LmlvL2NyYXRlcy8lcy8lcy9kb3dubG9hZCIgJSAobmFtZSwgdmVyc2lvbikKLSAgICAgICAgICAg
IHVkLnZlcnNpb25zdXJsID0gJ2h0dHBzOi8vaW5kZXguY3JhdGVzLmlvLycgKyBzZWxmLl9nZW5l
cmF0ZV9pbmRleF9wYXRoKG5hbWUpCisgICAgICAgICAgICBpZiBub3QgZGxfdXJsOgorICAgICAg
ICAgICAgICAgIGRsX3VybCA9ICJodHRwczovL3N0YXRpYy5jcmF0ZXMuaW8vY3JhdGVzL3tjcmF0
ZX0ve3ZlcnNpb259L2Rvd25sb2FkIgorICAgICAgICAgICAgaWYgbm90IGluZGV4X3VybDoKKyAg
ICAgICAgICAgICAgICBpbmRleF91cmwgPSAiaHR0cHM6Ly9pbmRleC5jcmF0ZXMuaW8vIgorCisg
ICAgICAgIGlmIGRsX3VybDoKKyAgICAgICAgICAgIHVkLnVybCA9IGRsX3VybC5yZXBsYWNlKCd7
Y3JhdGV9JywgbmFtZSkucmVwbGFjZSgne3ZlcnNpb259JywgdmVyc2lvbikKICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgIHVkLnVybCA9ICJodHRwczovLyVzLyVzLyVzL2Rvd25sb2FkIiAlICho
b3N0LCBuYW1lLCB2ZXJzaW9uKQorCisgICAgICAgIHVkLmNyYXRlX2luZGV4X2Zvcm1hdCA9ICdh
cGknCisgICAgICAgIGlmIGluZGV4X3VybDoKKyAgICAgICAgICAgIGluZGV4X3BhdGggPSBzZWxm
Ll9nZW5lcmF0ZV9pbmRleF9wYXRoKG5hbWUpCisgICAgICAgICAgICAjIFN1cHBvcnQge2luZGV4
X3BhdGh9IGZvciBzcGFyc2UgaW5kZXggcmVnaXN0cmllcy4gSWYgbm90IHByZXNlbnQKKyAgICAg
ICAgICAgICMgYW5kIGl0J3MgY3JhdGVzLmlvLCBhcHBlbmQgaXQgZm9yIGJhY2t3YXJkIGNvbXBh
dGliaWxpdHkuCisgICAgICAgICAgICBpZiAne2luZGV4X3BhdGh9JyBpbiBpbmRleF91cmw6Cisg
ICAgICAgICAgICAgICAgdWQudmVyc2lvbnN1cmwgPSBpbmRleF91cmwucmVwbGFjZSgne2luZGV4
X3BhdGh9JywgaW5kZXhfcGF0aCkKKyAgICAgICAgICAgICAgICB1ZC5jcmF0ZV9pbmRleF9mb3Jt
YXQgPSAnc3BhcnNlJworICAgICAgICAgICAgZWxpZiBob3N0ID09ICdjcmF0ZXMuaW8nIG9yIGlu
ZGV4X3VybC5zdGFydHN3aXRoKCdodHRwczovL2luZGV4LmNyYXRlcy5pby8nKToKKyAgICAgICAg
ICAgICAgICBpZiBub3QgaW5kZXhfdXJsLmVuZHN3aXRoKCcvJyk6CisgICAgICAgICAgICAgICAg
ICAgIGluZGV4X3VybCArPSAnLycKKyAgICAgICAgICAgICAgICB1ZC52ZXJzaW9uc3VybCA9IGlu
ZGV4X3VybCArIGluZGV4X3BhdGgKKyAgICAgICAgICAgICAgICB1ZC5jcmF0ZV9pbmRleF9mb3Jt
YXQgPSAnc3BhcnNlJworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB1ZC52ZXJz
aW9uc3VybCA9IGluZGV4X3VybAorCisgICAgICAgICAgICAjIEFwcGx5IG90aGVyIHBsYWNlaG9s
ZGVycworICAgICAgICAgICAgdWQudmVyc2lvbnN1cmwgPSB1ZC52ZXJzaW9uc3VybC5yZXBsYWNl
KCd7Y3JhdGV9JywgbmFtZSkucmVwbGFjZSgne3ZlcnNpb259JywgdmVyc2lvbikKKyAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIHVkLnZlcnNpb25zdXJsID0gImh0dHBzOi8vJXMvJXMvdmVyc2lv
bnMiICUgKGhvc3QsIG5hbWUpCiAKICAgICAgICAgdWQucGFybVsnZG93bmxvYWRmaWxlbmFtZSdd
ID0gIiVzLSVzLmNyYXRlIiAlIChuYW1lLCB2ZXJzaW9uKQpAQCAtMTYwLDcgKzE5MSw3IEBAIGNs
YXNzIENyYXRlKFdnZXQpOgogICAgICAgICBSZXR1cm4gdGhlIGxhdGVzdCB1cHN0cmVhbSB2ZXJz
aW9uLCBkaXNwYXRjaGluZyB0byB0aGUgYXBwcm9wcmlhdGUKICAgICAgICAgcGFyc2VyIGJhc2Vk
IG9uIHRoZSB2ZXJzaW9uc3VybCBmb3JtYXQuCiAgICAgICAgICIiIgotICAgICAgICBpZiB1ZC52
ZXJzaW9uc3VybC5zdGFydHN3aXRoKCdodHRwczovL2luZGV4LmNyYXRlcy5pby8nKToKKyAgICAg
ICAgaWYgZ2V0YXR0cih1ZCwgJ2NyYXRlX2luZGV4X2Zvcm1hdCcsIE5vbmUpID09ICdzcGFyc2Un
OgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xhdGVzdF92ZXJzaW9uc3RyaW5nX2Zyb21faW5k
ZXgodWQsIGQpCiAgICAgICAgIHJldHVybiBzZWxmLl9sYXRlc3RfdmVyc2lvbnN0cmluZ19mcm9t
X2FwaSh1ZCwgZCkKIApkaWZmIC0tZ2l0IGEvbGliL2JiL3Rlc3RzL2ZldGNoLnB5IGIvbGliL2Ji
L3Rlc3RzL2ZldGNoLnB5CmluZGV4IDg2ZGQ5MjkuLmUzYmVjYTYgMTAwNjQ0Ci0tLSBhL2xpYi9i
Yi90ZXN0cy9mZXRjaC5weQorKysgYi9saWIvYmIvdGVzdHMvZmV0Y2gucHkKQEAgLTQyNCw3ICs0
MjQsNyBAQCBjbGFzcyBGZXRjaGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGlm
IG9zLmVudmlyb24uZ2V0KCJCQl9UTVBESVJfTk9DTEVBTiIpID09ICJ5ZXMiOgogICAgICAgICAg
ICAgcHJpbnQoIk5vdCBjbGVhbmluZyB1cCAlcy4gUGxlYXNlIHJlbW92ZSBtYW51YWxseS4iICUg
c2VsZi50ZW1wZGlyKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgYmIucHJvY2Vzcy5ydW4o
J2NobW9kIHUrcncgLVIgJXMnICUgc2VsZi50ZW1wZGlyKQorICAgICAgICAgICAgYmIucHJvY2Vz
cy5ydW4oJ2NobW9kIC1SIHUrcncgJXMnICUgc2VsZi50ZW1wZGlyKQogICAgICAgICAgICAgYmIu
dXRpbHMucHJ1bmVkaXIoc2VsZi50ZW1wZGlyKQogCiAgICAgZGVmIGdpdChzZWxmLCBjbWQsIGN3
ZD1Ob25lKToKQEAgLTI1OTAsNiArMjU5MCwxMjYgQEAgY2xhc3MgRmV0Y2hMb2NhbGx5TWlzc2lu
Z1RhZ0Zyb21SZW1vdGUoRmV0Y2hlclRlc3QpOgogCiAKIGNsYXNzIENyYXRlVGVzdChGZXRjaGVy
VGVzdCk6CisgICAgZGVmIHRlc3RfY3JhdGVfdXJsX3VzZXNfY3JhdGVzX2lvX2RlZmF1bHRzKHNl
bGYpOgorICAgICAgICB1ZCA9IGJiLmZldGNoMi5GZXRjaERhdGEoImNyYXRlOi8vY3JhdGVzLmlv
L2dsb2IvMC4yLjExIiwgc2VsZi5kKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodWQudXJs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL3N0YXRpYy5jcmF0ZXMuaW8vY3Jh
dGVzL2dsb2IvMC4yLjExL2Rvd25sb2FkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1ZC52
ZXJzaW9uc3VybCwgImh0dHBzOi8vaW5kZXguY3JhdGVzLmlvL2dsL29iL2dsb2IiKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHVkLmNyYXRlX2luZGV4X2Zvcm1hdCwgInNwYXJzZSIpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodWQucGFybVsiZG93bmxvYWRmaWxlbmFtZSJdLCAiZ2xvYi0w
LjIuMTEuY3JhdGUiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVkLnBhcm1bIm5hbWUiXSwg
Imdsb2ItMC4yLjExIikKKworICAgIGRlZiB0ZXN0X2NyYXRlX3VybF9zdXBwb3J0c19jdXN0b21f
cmVnaXN0cnlfdGVtcGxhdGVzKHNlbGYpOgorICAgICAgICBzZWxmLmQuc2V0VmFyRmxhZygiQ1JB
VEVfUkVHSVNUUllfVVJMIiwgInJlZ2lzdHJ5LmV4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgImh0dHBzOi8vcmVnaXN0cnkuZXhhbXBsZS5jb20vYXBpL3YxL2NyYXRlcy97
Y3JhdGV9L3t2ZXJzaW9ufS9kb3dubG9hZCIpCisgICAgICAgIHNlbGYuZC5zZXRWYXJGbGFnKCJD
UkFURV9JTkRFWF9VUkwiLCAicmVnaXN0cnkuZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaHR0cHM6Ly9yZWdpc3RyeS5leGFtcGxlLmNvbS9hcGkvdjEvY3JhdGVzL3tj
cmF0ZX0vdmVyc2lvbnMiKQorCisgICAgICAgIHVkID0gYmIuZmV0Y2gyLkZldGNoRGF0YSgiY3Jh
dGU6Ly9yZWdpc3RyeS5leGFtcGxlLmNvbS9nbG9iLzAuMi4xMSIsIHNlbGYuZCkKKworICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHVkLnVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0
cHM6Ly9yZWdpc3RyeS5leGFtcGxlLmNvbS9hcGkvdjEvY3JhdGVzL2dsb2IvMC4yLjExL2Rvd25s
b2FkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1ZC52ZXJzaW9uc3VybCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9yZWdpc3RyeS5leGFtcGxlLmNvbS9hcGkvdjEvY3Jh
dGVzL2dsb2IvdmVyc2lvbnMiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVkLmNyYXRlX2lu
ZGV4X2Zvcm1hdCwgImFwaSIpCisKKyAgICBkZWYgdGVzdF9jcmF0ZV91cmxfc3VwcG9ydHNfY3Vz
dG9tX3NwYXJzZV9pbmRleF90ZW1wbGF0ZXMoc2VsZik6CisgICAgICAgIHNlbGYuZC5zZXRWYXJG
bGFnKCJDUkFURV9SRUdJU1RSWV9VUkwiLCAicmVnaXN0cnkuZXhhbXBsZS5jb20iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9yZWdpc3RyeS5leGFtcGxlLmNvbS9jcmF0ZXMv
e2NyYXRlfS97dmVyc2lvbn0vZG93bmxvYWQiKQorICAgICAgICBzZWxmLmQuc2V0VmFyRmxhZygi
Q1JBVEVfSU5ERVhfVVJMIiwgInJlZ2lzdHJ5LmV4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgImh0dHBzOi8vcmVnaXN0cnkuZXhhbXBsZS5jb20vaW5kZXgve2luZGV4X3Bh
dGh9IikKKworICAgICAgICB1ZCA9IGJiLmZldGNoMi5GZXRjaERhdGEoImNyYXRlOi8vcmVnaXN0
cnkuZXhhbXBsZS5jb20vYWhvLWNvcmFzaWNrLzAuNy4yMCIsIHNlbGYuZCkKKworICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHVkLnVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6
Ly9yZWdpc3RyeS5leGFtcGxlLmNvbS9jcmF0ZXMvYWhvLWNvcmFzaWNrLzAuNy4yMC9kb3dubG9h
ZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodWQudmVyc2lvbnN1cmwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgImh0dHBzOi8vcmVnaXN0cnkuZXhhbXBsZS5jb20vaW5kZXgvYWgvby0v
YWhvLWNvcmFzaWNrIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1ZC5jcmF0ZV9pbmRleF9m
b3JtYXQsICJzcGFyc2UiKQorCisgICAgZGVmIHRlc3RfY3JhdGVfdXJsX2FkZHNfc3BhcnNlX2lu
ZGV4X3BhdGhfd2l0aF9taXNzaW5nX3RyYWlsaW5nX3NsYXNoKHNlbGYpOgorICAgICAgICBzZWxm
LmQuc2V0VmFyRmxhZygiQ1JBVEVfSU5ERVhfVVJMIiwgImNyYXRlcy5pbyIsICJodHRwczovL2lu
ZGV4LmNyYXRlcy5pbyIpCisKKyAgICAgICAgdWQgPSBiYi5mZXRjaDIuRmV0Y2hEYXRhKCJjcmF0
ZTovL2NyYXRlcy5pby9nbG9iLzAuMi4xMSIsIHNlbGYuZCkKKworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHVkLnZlcnNpb25zdXJsLCAiaHR0cHM6Ly9pbmRleC5jcmF0ZXMuaW8vZ2wvb2IvZ2xv
YiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodWQuY3JhdGVfaW5kZXhfZm9ybWF0LCAic3Bh
cnNlIikKKworICAgIGRlZiB0ZXN0X2NyYXRlX2xhdGVzdF92ZXJzaW9uc3RyaW5nX3N1cHBvcnRz
X2N1c3RvbV9zcGFyc2VfaW5kZXgoc2VsZik6CisgICAgICAgIHNlbGYuZC5zZXRWYXJGbGFnKCJD
UkFURV9JTkRFWF9VUkwiLCAicmVnaXN0cnkuZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaHR0cHM6Ly9yZWdpc3RyeS5leGFtcGxlLmNvbS9pbmRleC97aW5kZXhfcGF0
aH0iKQorICAgICAgICB1ZCA9IGJiLmZldGNoMi5GZXRjaERhdGEoImNyYXRlOi8vcmVnaXN0cnku
ZXhhbXBsZS5jb20vZ2xvYi8wLjIuMTEiLCBzZWxmLmQpCisgICAgICAgIGluZGV4ID0gJ1xuJy5q
b2luKFsKKyAgICAgICAgICAgICd7InZlcnMiOiIwLjIuMTAiLCJ5YW5rZWQiOmZhbHNlfScsCisg
ICAgICAgICAgICAneyJ2ZXJzIjoiMC4yLjExIiwieWFua2VkIjp0cnVlfScsCisgICAgICAgICAg
ICAneyJ2ZXJzIjoiMC4yLjEyIiwieWFua2VkIjpmYWxzZX0nLAorICAgICAgICBdKQorCisgICAg
ICAgIHdpdGggdW5pdHRlc3QubW9jay5wYXRjaCgiYmIuZmV0Y2gyLmNyYXRlLkNyYXRlLl9mZXRj
aF9pbmRleCIsIHJldHVybl92YWx1ZT1pbmRleCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHVkLm1ldGhvZC5sYXRlc3RfdmVyc2lvbnN0cmluZyh1ZCwgc2VsZi5kKSwgKCIwLjIuMTIi
LCAiIikpCisKKyAgICBkZWYgdGVzdF9jcmF0ZV9sYXRlc3RfdmVyc2lvbnN0cmluZ19zdXBwb3J0
c19jdXN0b21fYXBpX2luZGV4KHNlbGYpOgorICAgICAgICBzZWxmLmQuc2V0VmFyRmxhZygiQ1JB
VEVfSU5ERVhfVVJMIiwgInJlZ2lzdHJ5LmV4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgImh0dHBzOi8vcmVnaXN0cnkuZXhhbXBsZS5jb20vYXBpL3YxL2NyYXRlcy97Y3Jh
dGV9L3ZlcnNpb25zIikKKyAgICAgICAgdWQgPSBiYi5mZXRjaDIuRmV0Y2hEYXRhKCJjcmF0ZTov
L3JlZ2lzdHJ5LmV4YW1wbGUuY29tL2dsb2IvMC4yLjExIiwgc2VsZi5kKQorICAgICAgICBpbmRl
eCA9ICd7InZlcnNpb25zIjpbeyJudW0iOiIwLjIuMTAifSx7Im51bSI6IjAuMi4xMiJ9XX0nCisK
KyAgICAgICAgd2l0aCB1bml0dGVzdC5tb2NrLnBhdGNoKCJiYi5mZXRjaDIuY3JhdGUuQ3JhdGUu
X2ZldGNoX2luZGV4IiwgcmV0dXJuX3ZhbHVlPWluZGV4KToKKyAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodWQubWV0aG9kLmxhdGVzdF92ZXJzaW9uc3RyaW5nKHVkLCBzZWxmLmQpLCAoIjAu
Mi4xMiIsICIiKSkKKworICAgIGRlZiB0ZXN0X2NyYXRlX2ZldGNoZXNfZnJvbV9sb2NhbF9zcGFy
c2VfcmVnaXN0cnkoc2VsZik6CisgICAgICAgIHJlZ2lzdHJ5ID0gb3MucGF0aC5qb2luKHNlbGYu
dGVtcGRpciwgInJlZ2lzdHJ5IikKKyAgICAgICAgY3JhdGVfbmFtZSA9ICJkdW1teWNyYXRlIgor
ICAgICAgICBjcmF0ZV92ZXJzaW9uID0gIjEuMC4wIgorICAgICAgICBjcmF0ZV9iYXNlbmFtZSA9
ICIlcy0lcyIgJSAoY3JhdGVfbmFtZSwgY3JhdGVfdmVyc2lvbikKKyAgICAgICAgY3JhdGVfcGF0
aCA9IG9zLnBhdGguam9pbihyZWdpc3RyeSwgImNyYXRlcyIsIGNyYXRlX25hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGVfdmVyc2lvbiwgImRvd25sb2FkIikKKyAg
ICAgICAgaW5kZXhfcGF0aCA9IG9zLnBhdGguam9pbihyZWdpc3RyeSwgImluZGV4IiwgImR1Iiwg
Im1tIiwgY3JhdGVfbmFtZSkKKyAgICAgICAgc291cmNlX2RpciA9IG9zLnBhdGguam9pbihzZWxm
LnRlbXBkaXIsICJjcmF0ZS1zb3VyY2UiLCBjcmF0ZV9iYXNlbmFtZSkKKyAgICAgICAgYmIudXRp
bHMubWtkaXJoaWVyKG9zLnBhdGguam9pbihzb3VyY2VfZGlyLCAic3JjIikpCisgICAgICAgIGJi
LnV0aWxzLm1rZGlyaGllcihvcy5wYXRoLmRpcm5hbWUoY3JhdGVfcGF0aCkpCisgICAgICAgIGJi
LnV0aWxzLm1rZGlyaGllcihvcy5wYXRoLmRpcm5hbWUoaW5kZXhfcGF0aCkpCisKKyAgICAgICAg
d2l0aCBvcGVuKG9zLnBhdGguam9pbihzb3VyY2VfZGlyLCAiQ2FyZ28udG9tbCIpLCAidyIpIGFz
IGY6CisgICAgICAgICAgICBmLndyaXRlKCdbcGFja2FnZV1cbm5hbWUgPSAiJXMiXG52ZXJzaW9u
ID0gIiVzIlxuJyAlCisgICAgICAgICAgICAgICAgICAgIChjcmF0ZV9uYW1lLCBjcmF0ZV92ZXJz
aW9uKSkKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihzb3VyY2VfZGlyLCAic3JjIiwg
ImxpYi5ycyIpLCAidyIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKCJwdWIgZm4gYW5zd2Vy
KCkgLT4gdTMyIHsgNDIgfVxuIikKKyAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oY3JhdGVfcGF0
aCwgInc6Z3oiKSBhcyB0YXI6CisgICAgICAgICAgICB0YXIuYWRkKHNvdXJjZV9kaXIsIGFyY25h
bWU9Y3JhdGVfYmFzZW5hbWUpCisgICAgICAgIHdpdGggb3BlbihjcmF0ZV9wYXRoLCAicmIiKSBh
cyBmOgorICAgICAgICAgICAgY3JhdGVfY2hlY2tzdW0gPSBoYXNobGliLnNoYTI1NihmLnJlYWQo
KSkuaGV4ZGlnZXN0KCkKKyAgICAgICAgd2l0aCBvcGVuKGluZGV4X3BhdGgsICJ3IikgYXMgZjoK
KyAgICAgICAgICAgIGYud3JpdGUoJ3sibmFtZSI6IiVzIiwidmVycyI6IiVzIiwieWFua2VkIjpm
YWxzZX1cbicgJQorICAgICAgICAgICAgICAgICAgICAoY3JhdGVfbmFtZSwgY3JhdGVfdmVyc2lv
bikpCisKKyAgICAgICAgc2VydmVyID0gSFRUUFNlcnZpY2UocmVnaXN0cnksIGhvc3Q9IjEyNy4w
LjAuMSIpCisgICAgICAgIHNlcnZlci5zdGFydCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGhvc3QgPSAiMTI3LjAuMC4xOiVzIiAlIHNlcnZlci5wb3J0CisgICAgICAgICAgICBzZWxmLmQu
c2V0VmFyRmxhZygiQ1JBVEVfUkVHSVNUUllfVVJMIiwgaG9zdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJodHRwOi8vJXMvY3JhdGVzL3tjcmF0ZX0ve3ZlcnNpb259L2Rvd25sb2Fk
IiAlIGhvc3QpCisgICAgICAgICAgICBzZWxmLmQuc2V0VmFyRmxhZygiQ1JBVEVfSU5ERVhfVVJM
IiwgaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vJXMvaW5kZXgv
e2luZGV4X3BhdGh9IiAlIGhvc3QpCisgICAgICAgICAgICBzZWxmLmQuc2V0VmFyRmxhZygiU1JD
X1VSSSIsICIlcy5zaGEyNTZzdW0iICUgY3JhdGVfYmFzZW5hbWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmF0ZV9jaGVja3N1bSkKKyAgICAgICAgICAgIHVyaSA9ICJjcmF0ZTov
LyVzLyVzLyVzIiAlIChob3N0LCBjcmF0ZV9uYW1lLCBjcmF0ZV92ZXJzaW9uKQorCisgICAgICAg
ICAgICBmZXRjaGVyID0gYmIuZmV0Y2gyLkZldGNoKFt1cmldLCBzZWxmLmQpCisgICAgICAgICAg
ICB1ZCA9IGZldGNoZXIudWRbZmV0Y2hlci51cmxzWzBdXQorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh1ZC5jcmF0ZV9pbmRleF9mb3JtYXQsICJzcGFyc2UiKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh1ZC5tZXRob2QubGF0ZXN0X3ZlcnNpb25zdHJpbmcodWQsIHNlbGYuZCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcmF0ZV92ZXJzaW9uLCAiIikpCisKKyAg
ICAgICAgICAgIGZldGNoZXIuZG93bmxvYWQoKQorICAgICAgICAgICAgZmV0Y2hlci51bnBhY2so
c2VsZi50ZW1wZGlyKQorICAgICAgICAgICAgdW5wYWNrZWRfZmlsZSA9IG9zLnBhdGguam9pbihz
ZWxmLnRlbXBkaXIsICJjYXJnb19ob21lIiwgImJpdGJha2UiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZV9iYXNlbmFtZSwgInNyYyIsICJsaWIucnMiKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKHVucGFja2VkX2ZpbGUp
KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VydmVyLnN0b3AoKQorCiAgICAgQHNr
aXBJZk5vTmV0d29yaygpCiAgICAgZGVmIHRlc3RfY3JhdGVfdXJsKHNlbGYpOgogCi0tIAoyLjUw
LjEgKEFwcGxlIEdpdC0xNTUpCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>