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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>232723</bug_id>
          
          <creation_ts>2021-11-04 13:24:46 -0700</creation_ts>
          <short_desc>Array.prototype.toLocaleString does not respect deletion of Object.prototype.toLocaleString</short_desc>
          <delta_ts>2022-01-03 21:58:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Richard Gibson">richard.gibson</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811948</commentid>
    <comment_count>0</comment_count>
    <who name="Richard Gibson">richard.gibson</who>
    <bug_when>2021-11-04 13:24:46 -0700</bug_when>
    <thetext>The algorithm at https://tc39.es/ecma402/#sup-array.prototype.tolocalestring requires looking up a &quot;toLocaleString&quot; property on each non-undefined non-null element of the receiver array, invoking it as a method, and (absent an exception) passing the result through ToString. However, JSC appears to have a hidden but always-present default method.

The following statement list should throw an exception, but does not:
  delete Object.prototype.toLocaleString;
  [{}].toLocaleString();

Also reported to test262 for coverage: https://github.com/tc39/test262/issues/3298</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812194</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-05 11:39:57 -0700</bug_when>
    <thetext>Instead of this, we will implement Intl.ListFormat based new implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814159</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-11 12:25:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/85310560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827720</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 07:19:01 -0800</bug_when>
    <thetext>*** Bug 232724 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827723</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 07:30:54 -0800</bug_when>
    <thetext>Intl.ListFormat-based implementation is deferred. For now, let&apos;s implement the current Array.prototype.toLocaleString in ECMA 402.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827724</commentid>
    <comment_count>5</comment_count>
      <attachid>448233</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 07:34:16 -0800</bug_when>
    <thetext>Created attachment 448233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827725</commentid>
    <comment_count>6</comment_count>
      <attachid>448234</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 07:36:05 -0800</bug_when>
    <thetext>Created attachment 448234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827728</commentid>
    <comment_count>7</comment_count>
      <attachid>448236</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 07:39:19 -0800</bug_when>
    <thetext>Created attachment 448236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827756</commentid>
    <comment_count>8</comment_count>
      <attachid>448243</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 08:39:43 -0800</bug_when>
    <thetext>Created attachment 448243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827807</commentid>
    <comment_count>9</comment_count>
      <attachid>448243</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-03 13:18:32 -0800</bug_when>
    <thetext>Comment on attachment 448243
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=448243&amp;action=review

Sweet, r=me with nits.

&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:696
&gt; +    if (UNLIKELY(arguments.hasOverflowed())) {

Given the default inline capacity of 8, can this be simplified to `ASSERT(!arguments.hasOverflowed())`?

&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:760
&gt; +        JSValue element = thisObject-&gt;get(globalObject, k);

I appreciate following the spec 1:1, but since we are already a bit off with handling of 0th element, maybe we could do `thisObject-&gt;getIndex(globalObject, k)` here?
Also, getIndex() is currently used in trunk.

&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:809
&gt; +        JSValue element = thisObject-&gt;get(globalObject, k);

Since we are changing this line, maybe we could do `thisObject-&gt;getIndex(globalObject, k)`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827859</commentid>
    <comment_count>10</comment_count>
      <attachid>448243</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 20:45:38 -0800</bug_when>
    <thetext>Comment on attachment 448243
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=448243&amp;action=review

&gt;&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:696
&gt;&gt; +    if (UNLIKELY(arguments.hasOverflowed())) {
&gt; 
&gt; Given the default inline capacity of 8, can this be simplified to `ASSERT(!arguments.hasOverflowed())`?

Sounds good!

&gt;&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:760
&gt;&gt; +        JSValue element = thisObject-&gt;get(globalObject, k);
&gt; 
&gt; I appreciate following the spec 1:1, but since we are already a bit off with handling of 0th element, maybe we could do `thisObject-&gt;getIndex(globalObject, k)` here?
&gt; Also, getIndex() is currently used in trunk.

Nice, fixed.

&gt;&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:809
&gt;&gt; +        JSValue element = thisObject-&gt;get(globalObject, k);
&gt; 
&gt; Since we are changing this line, maybe we could do `thisObject-&gt;getIndex(globalObject, k)`?

Nice, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827861</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 21:12:25 -0800</bug_when>
    <thetext>Committed r287560 (245695@trunk): &lt;https://commits.webkit.org/245695@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827867</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-03 21:58:38 -0800</bug_when>
    <thetext>Committed r287561 (245696@trunk): &lt;https://commits.webkit.org/245696@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448233</attachid>
            <date>2022-01-03 07:34:16 -0800</date>
            <delta_ts>2022-01-03 07:36:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232723-20220103073415.patch</filename>
            <type>text/plain</type>
            <size>11434</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4zZWI3ZGM4NTc0MGNhZjBk
ZTc1MjE5YzE3NDg3YjcxZWVmMzljNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMi0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBkb2VzIG5vdCByZXNw
ZWN0IGRlbGV0aW9uIG9mIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjcyMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVt
ZW50cyBFQ01BNDAyIEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZ1sxXS4gVGhlIG5ldyBp
bXBsZW1lbnRhdGlvbiBpbnZva2VzICJ0b0xvY2FsZVN0cmluZyIKKyAgICAgICAgbWV0aG9kIGZv
ciBlYWNoIGVsZW1lbnRzLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIv
I3N1cC1hcnJheS5wcm90b3R5cGUudG9sb2NhbGVzdHJpbmcKKworICAgICAgICAqIHJ1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjp0b0xvY2FsZVN0cmluZyk6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OnNsb3dK
b2luKToKKwogMjAyMi0wMS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIFVzZSBlbWl0UHV0UHJvcGVydHkgLyBlbWl0R2V0UHJvcGVydHlWYWx1
ZSBjb25zaXN0ZW50bHkgdG8gaGFuZGxlIHByaXZhdGUgbmFtZXMgaW4gZWRnZSBjYXNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4
IDNmYmVhNDU0NDQ2ODllYjQzMzQ0NzYzZjNiOGQyM2ExOTJjMjM1ZWQuLmRjMjNmOWNiYTUyMGQ0
OTMzOWE3NmI0ZDI5YTE1OTAzZTRmMDRlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTY3Niw0OSArNjc2LDEwNyBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoam9pbmVyLmpvaW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCitzdGF0aWMgSlNTdHJp
bmcqIHRvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
dmFsdWUsIEpTVmFsdWUgbG9jYWxlcywgSlNWYWx1ZSBvcHRpb25zKQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisKKyAgICBKU1ZhbHVlIHRvTG9jYWxlU3RyaW5nTWV0aG9kID0gdmFsdWUuZ2V0KGds
b2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+dG9Mb2NhbGVTdHJpbmcpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBhdXRvIGNhbGxEYXRhID0gZ2V0Q2Fs
bERhdGEodm0sIHRvTG9jYWxlU3RyaW5nTWV0aG9kKTsKKyAgICBpZiAoY2FsbERhdGEudHlwZSA9
PSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAidG9Mb2NhbGVTdHJpbmcgaXMgbm90IGNhbGxhYmxlIl9zKTsKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVu
dHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChsb2NhbGVzKTsKKyAgICBhcmd1bWVudHMuYXBwZW5k
KG9wdGlvbnMpOworICAgIGlmIChVTkxJS0VMWShhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKSkg
eworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Cisg
ICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGds
b2JhbE9iamVjdCwgdG9Mb2NhbGVTdHJpbmdNZXRob2QsIGNhbGxEYXRhLCB2YWx1ZSwgYXJndW1l
bnRzKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCByZXN1bHQudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KSk7Cit9CisK
Ky8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzdXAtYXJyYXkucHJvdG90eXBlLnRvbG9jYWxl
c3RyaW5nCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZy
YW1lLT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
OwogCisgICAgSlNWYWx1ZSBsb2NhbGVzID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBK
U1ZhbHVlIG9wdGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOworCisgICAgLy8gMS4gTGV0
IGFycmF5IGJlID8gVG9PYmplY3QodGhpcyB2YWx1ZSkuCiAgICAgSlNPYmplY3QqIHRoaXNPYmpl
Y3QgPSB0aGlzVmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB1aW50NjRfdCBsZW5ndGggPSBz
dGF0aWNfY2FzdDx1aW50NjRfdD4odG9MZW5ndGgoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
aWYgKGxlbmd0aCA+IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgewotICAg
ICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAg
IHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOwotICAgIH0KKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwogCiAgICAgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlciBjaGVja2VyKGdsb2Jh
bE9iamVjdCwgdGhpc09iamVjdCk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0
aW9uKCkgfHwgY2hlY2tlci5lYXJseVJldHVyblZhbHVlKCkpOwogICAgIGlmIChKU1ZhbHVlIGVh
cmx5UmV0dXJuVmFsdWUgPSBjaGVja2VyLmVhcmx5UmV0dXJuVmFsdWUoKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShlYXJseVJldHVyblZhbHVlKTsKIAotICAgIEpTU3RyaW5nSm9p
bmVyIHN0cmluZ0pvaW5lcihnbG9iYWxPYmplY3QsICcsJywgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGxlbmd0aCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOworICAgIC8vIDIuIExldCBsZW4gYmUgPyBUb0xlbmd0aCg/IEdldChhcnJheSwgImxlbmd0
aCIpKS4KKyAgICB1aW50NjRfdCBsZW5ndGggPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4odG9MZW5n
dGgoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKIAotICAgIEFyZ0xpc3QgYXJndW1lbnRzKGNhbGxGcmFtZSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIEpTVmFsdWUgZWxl
bWVudCA9IHRoaXNPYmplY3QtPmdldEluZGV4KGdsb2JhbE9iamVjdCwgaSk7Ci0gICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIC8vIDMuIExl
dCBzZXBhcmF0b3IgYmUgdGhlIFN0cmluZyB2YWx1ZSBmb3IgdGhlIGxpc3Qtc2VwYXJhdG9yIFN0
cmluZyBhcHByb3ByaWF0ZSBmb3IKKyAgICAvLyB0aGUgaG9zdCBlbnZpcm9ubWVudCdzIGN1cnJl
bnQgbG9jYWxlICh0aGlzIGlzIGRlcml2ZWQgaW4gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB3
YXkpLgorICAgIGNvbnN0IExDaGFyIGNvbW1hID0gJywnOworICAgIEpTU3RyaW5nKiBzZXBhcmF0
b3IgPSBqc1NpbmdsZUNoYXJhY3RlclN0cmluZyh2bSwgY29tbWEpOworCisgICAgLy8gNC4gTGV0
IFIgYmUgdGhlIGVtcHR5IFN0cmluZy4KKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0VtcHR5U3RyaW5nKHZtKSk7CisKKyAgICAvLyA1LiBMZXQgayBi
ZSAwLgorICAgIEpTVmFsdWUgZWxlbWVudDAgPSB0aGlzT2JqZWN0LT5nZXRJbmRleChnbG9iYWxP
YmplY3QsIDApOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICAv
LyA2LiBSZXBlYXQsIHdoaWxlIGsgPCBsZW4sCisgICAgLy8gNi5hLiBJZiBrID4gMCwgdGhlbgor
ICAgIC8vIDYuYS5pLiBTZXQgUiB0byB0aGUgc3RyaW5nLWNvbmNhdGVuYXRpb24gb2YgUiBhbmQg
c2VwYXJhdG9yLgorCisgICAgSlNTdHJpbmcqIHIgPSBudWxscHRyOworICAgIGlmIChlbGVtZW50
MC5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICByID0ganNFbXB0eVN0cmluZyh2bSk7Cisg
ICAgZWxzZQorICAgICAgICByID0gdG9Mb2NhbGVTdHJpbmcoZ2xvYmFsT2JqZWN0LCBlbGVtZW50
MCwgbG9jYWxlcywgb3B0aW9ucyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKKworICAgIC8vIDguIExldCBrIGJlIDEuCisgICAgLy8gOS4gUmVwZWF0LCB3aGlsZSBrIDwg
bGVuCisgICAgLy8gOS5lIEluY3JlYXNlIGsgYnkgMS4uCisgICAgZm9yICh1aW50NjRfdCBrID0g
MTsgayA8IGxlbmd0aDsgKytrKSB7CisgICAgICAgIC8vIDYuYi4gTGV0IG5leHRFbGVtZW50IGJl
ID8gR2V0KGFycmF5LCAhIFRvU3RyaW5nKGspKS4KKyAgICAgICAgSlNWYWx1ZSBlbGVtZW50ID0g
dGhpc09iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgayk7CisgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICAgICAgLy8gYy4gSWYgbmV4dEVsZW1lbnQgaXMgbm90
IHVuZGVmaW5lZCBvciBudWxsLCB0aGVuCisgICAgICAgIEpTU3RyaW5nKiBuZXh0ID0gbnVsbHB0
cjsKICAgICAgICAgaWYgKGVsZW1lbnQuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAg
IGVsZW1lbnQgPSBqc0VtcHR5U3RyaW5nKHZtKTsKKyAgICAgICAgICAgIG5leHQgPSBqc0VtcHR5
U3RyaW5nKHZtKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIGNvbnZlcnNp
b25GdW5jdGlvbiA9IGVsZW1lbnQuZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+
dG9Mb2NhbGVTdHJpbmcpOwotICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgICAgICAgICBhdXRvIGNhbGxEYXRhID0gZ2V0Q2FsbERh
dGEodm0sIGNvbnZlcnNpb25GdW5jdGlvbik7Ci0gICAgICAgICAgICBpZiAoY2FsbERhdGEudHlw
ZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSkgewotICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBj
YWxsKGdsb2JhbE9iamVjdCwgY29udmVyc2lvbkZ1bmN0aW9uLCBjYWxsRGF0YSwgZWxlbWVudCwg
YXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGkuIExldCBT
IGJlID8gVG9TdHJpbmcoPyBJbnZva2UobmV4dEVsZW1lbnQsICJ0b0xvY2FsZVN0cmluZyIsIMKr
IGxvY2FsZXMsIG9wdGlvbnMgwrspKS4KKyAgICAgICAgICAgIC8vIGlpLiBTZXQgUiB0byB0aGUg
c3RyaW5nLWNvbmNhdGVuYXRpb24gb2YgUiBhbmQgUy4KKyAgICAgICAgICAgIG5leHQgPSB0b0xv
Y2FsZVN0cmluZyhnbG9iYWxPYmplY3QsIGVsZW1lbnQsIGxvY2FsZXMsIG9wdGlvbnMpOwogICAg
ICAgICB9Ci0gICAgICAgIHN0cmluZ0pvaW5lci5hcHBlbmQoZ2xvYmFsT2JqZWN0LCBlbGVtZW50
KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7
CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICAgICAgLy8g
ZC4gSW5jcmVhc2UgayBieSAxLgorICAgICAgICByID0ganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCBy
LCBzZXBhcmF0b3IsIG5leHQpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogICAgIH0KIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHN0cmluZ0pvaW5lci5qb2luKGdsb2JhbE9iamVjdCkpKTsKKyAgICAvLyA3LiBSZXR1cm4g
Ui4KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHIpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBz
bG93Sm9pbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGhpc09iamVj
dCwgSlNTdHJpbmcqIHNlcGFyYXRvciwgdWludDY0X3QgbGVuZ3RoKQpAQCAtNzQ3LDcgKzgwNSw3
IEBAIHN0YXRpYyBKU1ZhbHVlIHNsb3dKb2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1N0CiAgICAgLy8gOS5lIEluY3JlYXNlIGsgYnkgMS4u
CiAgICAgZm9yICh1aW50NjRfdCBrID0gMTsgayA8IGxlbmd0aDsgKytrKSB7CiAgICAgICAgIC8v
IGIuIExldCBlbGVtZW50IGJlID8gR2V0KE8sICEgVG9TdHJpbmcoaykpLgotICAgICAgICBKU1Zh
bHVlIGVsZW1lbnQgPSB0aGlzT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCBBdG9tU3RyaW5nOjpudW1iZXIoaykpKTsKKyAgICAgICAgSlNWYWx1ZSBl
bGVtZW50ID0gdGhpc09iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgayk7CiAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICAgICAgLy8gYy4gSWYgZWxlbWVudCBp
cyB1bmRlZmluZWQgb3IgbnVsbCwgbGV0IG5leHQgYmUgdGhlIGVtcHR5IFN0cmluZzsgb3RoZXJ3
aXNlLCBsZXQgbmV4dCBiZSA/IFRvU3RyaW5nKGVsZW1lbnQpLgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0MDVhZDk1NzFjMTc4N2UyYTE2
NzFkOTlmNWQ5NGU5ZGY1MDllNmZmLi5iNGY1ZDE4NjEyZDBiODdjOGFiZTE3NDIwZGVmNmFkZjIz
OGNjNGYxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTAxLTAzICBZdXN1a2UgU3V6dWtpICA8eXN1enVr
aUBhcHBsZS5jb20+CisKKyAgICAgICAgQXJyYXkucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nIGRv
ZXMgbm90IHJlc3BlY3QgZGVsZXRpb24gb2YgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJl
c3MvYXJyYXktdG9sb2NhbGVzdHJpbmctZGVsZXRlLXRvbG9jYWxlc3RyaW5nLmpzOiBBZGRlZC4K
KyAgICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAgKiBzdHJlc3MvYXJyYXktdG9sb2NhbGVz
dHJpbmctb3B0aW9ucy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICog
c3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLXVuZGVmaW5lZC1udWxsLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZEJlLnRvTG9jYWxlU3RyaW5nKToKKwog
MjAyMi0wMS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAg
IFtKU0NdIFVzZSBlbWl0UHV0UHJvcGVydHkgLyBlbWl0R2V0UHJvcGVydHlWYWx1ZSBjb25zaXN0
ZW50bHkgdG8gaGFuZGxlIHByaXZhdGUgbmFtZXMgaW4gZWRnZSBjYXNlcwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvYXJyYXktdG9sb2NhbGVzdHJpbmctZGVsZXRlLXRvbG9jYWxlc3RyaW5n
LmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktdG9sb2NhbGVzdHJpbmctZGVsZXRlLXRvbG9jYWxl
c3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0YjFiOTdmOTM0YjMxYmJkNzBhZWE4M2RjMGEwZTRmOGEz
YTQzOTQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0
cmluZy1kZWxldGUtdG9sb2NhbGVzdHJpbmcuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24g
c2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNzYWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0g
ZmFsc2U7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvclRocm93biA9IHRydWU7CisgICAgICAg
IGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdub3QgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9y
TWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKGVy
cm9yKX1gKTsKK30KKworZGVsZXRlIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc7Citz
aG91bGRUaHJvdygoKSA9PiB7CisgICAgW3t9XS50b0xvY2FsZVN0cmluZygpOworfSwgYFR5cGVF
cnJvcjogdG9Mb2NhbGVTdHJpbmcgaXMgbm90IGNhbGxhYmxlYCk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1lbXB0eS1zZXBhcmF0b3IuanMgYi9KU1Rl
c3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1lbXB0eS1zZXBhcmF0b3IuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDQ3Njk4MDBkMjQ4ZmJkMWEwOTc0NGE3ZjlhMzQ5ZmQzYjQ0ZjljOAotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLWVtcHR5LXNlcGFy
YXRvci5qcwpAQCAtMCwwICsxLDcgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitzaG91bGRCZShbXS50b0xvY2FsZVN0
cmluZygpLCBgYCk7CitzaG91bGRCZShbNDJdLnRvTG9jYWxlU3RyaW5nKCdlbicsIHsgbnVtYmVy
aW5nU3lzdGVtOiAnaGFuaWRlYycgfSksIGDlm5vkuoxgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLWVtcHR5LmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJy
YXktdG9sb2NhbGVzdHJpbmctZW1wdHkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3
YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2FycmF5LXRvbG9jYWxlc3RyaW5nLWVtcHR5LmpzCkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktdG9sb2NhbGVzdHJpbmctb3B0aW9ucy5qcyBiL0pTVGVz
dHMvc3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLW9wdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVk
Y2Q2MDU4OTI4NTA5ZjBjZjg0ZjA5ZTFkY2E2NTA0NjQ3MTJiMgotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLW9wdGlvbnMuanMKQEAgLTAsMCAr
MSw3IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAn
ICsgYWN0dWFsKTsKK30KKworc2hvdWxkQmUoWzAsIDEsIDIsIDMsIDRdLnRvTG9jYWxlU3RyaW5n
KCdqYS1KUCcsIHsgbnVtYmVyaW5nU3lzdGVtOiAnaGFuaWRlYycgfSksIGDjgIcs5LiALOS6jCzk
uIks5ZubYCk7CitzaG91bGRCZShbMCwgMSwgMiwgMywgbmV3IERhdGUoMCldLnRvTG9jYWxlU3Ry
aW5nKCdlbicsIHsgdGltZVpvbmU6ICdVVEMnLCBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJzIt
ZGlnaXQnLCBudW1iZXJpbmdTeXN0ZW06ICdoYW5pZGVjJyB9KSwgYOOAhyzkuIAs5LqMLOS4iSzk
uIDkuow644CH44CHIEFNYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xv
Y2FsZXN0cmluZy11bmRlZmluZWQtbnVsbC5qcyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXRvbG9j
YWxlc3RyaW5nLXVuZGVmaW5lZC1udWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMGIwODNmNDJlZGFlM2I5
N2JhOTAxNzQ0NGYwMmQ0NzllNmMwYTkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9hcnJheS10b2xvY2FsZXN0cmluZy11bmRlZmluZWQtbnVsbC5qcwpAQCAtMCwwICsxLDcgQEAK
K2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1
YWwpOworfQorCitzaG91bGRCZShbe3RvTG9jYWxlU3RyaW5nKCl7fX1dLnRvTG9jYWxlU3RyaW5n
KCksIGB1bmRlZmluZWRgKTsKK3Nob3VsZEJlKFt7dG9Mb2NhbGVTdHJpbmcoKXsgcmV0dXJuIG51
bGwgfX1dLnRvTG9jYWxlU3RyaW5nKCksIGBudWxsYCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448234</attachid>
            <date>2022-01-03 07:36:05 -0800</date>
            <delta_ts>2022-01-03 07:39:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232723-20220103073605.patch</filename>
            <type>text/plain</type>
            <size>11594</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4zZWI3ZGM4NTc0MGNhZjBk
ZTc1MjE5YzE3NDg3YjcxZWVmMzljNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMi0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBkb2VzIG5vdCByZXNw
ZWN0IGRlbGV0aW9uIG9mIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjcyMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVt
ZW50cyBFQ01BNDAyIEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZ1sxXS4gVGhlIG5ldyBp
bXBsZW1lbnRhdGlvbiBpbnZva2VzICJ0b0xvY2FsZVN0cmluZyIKKyAgICAgICAgbWV0aG9kIGZv
ciBlYWNoIGVsZW1lbnRzLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIv
I3N1cC1hcnJheS5wcm90b3R5cGUudG9sb2NhbGVzdHJpbmcKKworICAgICAgICAqIHJ1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjp0b0xvY2FsZVN0cmluZyk6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OnNsb3dK
b2luKToKKwogMjAyMi0wMS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIFVzZSBlbWl0UHV0UHJvcGVydHkgLyBlbWl0R2V0UHJvcGVydHlWYWx1
ZSBjb25zaXN0ZW50bHkgdG8gaGFuZGxlIHByaXZhdGUgbmFtZXMgaW4gZWRnZSBjYXNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4
IDNmYmVhNDU0NDQ2ODllYjQzMzQ0NzYzZjNiOGQyM2ExOTJjMjM1ZWQuLjc3MTNiZmE1NGIwZjhj
ZGM4ZTI2MzQ1ZTY2NmU2NGVhNmM0NmFiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTY3Niw0OSArNjc2LDEwOCBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoam9pbmVyLmpvaW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCitzdGF0aWMgSlNTdHJp
bmcqIHRvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
dmFsdWUsIEpTVmFsdWUgbG9jYWxlcywgSlNWYWx1ZSBvcHRpb25zKQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisKKyAgICBKU1ZhbHVlIHRvTG9jYWxlU3RyaW5nTWV0aG9kID0gdmFsdWUuZ2V0KGds
b2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+dG9Mb2NhbGVTdHJpbmcpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBhdXRvIGNhbGxEYXRhID0gZ2V0Q2Fs
bERhdGEodm0sIHRvTG9jYWxlU3RyaW5nTWV0aG9kKTsKKyAgICBpZiAoY2FsbERhdGEudHlwZSA9
PSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAidG9Mb2NhbGVTdHJpbmcgaXMgbm90IGNhbGxhYmxlIl9zKTsKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVu
dHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChsb2NhbGVzKTsKKyAgICBhcmd1bWVudHMuYXBwZW5k
KG9wdGlvbnMpOworICAgIGlmIChVTkxJS0VMWShhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKSkg
eworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Cisg
ICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGds
b2JhbE9iamVjdCwgdG9Mb2NhbGVTdHJpbmdNZXRob2QsIGNhbGxEYXRhLCB2YWx1ZSwgYXJndW1l
bnRzKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCByZXN1bHQudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KSk7Cit9CisK
Ky8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzdXAtYXJyYXkucHJvdG90eXBlLnRvbG9jYWxl
c3RyaW5nCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZy
YW1lLT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
OwogCisgICAgSlNWYWx1ZSBsb2NhbGVzID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBK
U1ZhbHVlIG9wdGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOworCisgICAgLy8gMS4gTGV0
IGFycmF5IGJlID8gVG9PYmplY3QodGhpcyB2YWx1ZSkuCiAgICAgSlNPYmplY3QqIHRoaXNPYmpl
Y3QgPSB0aGlzVmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB1aW50NjRfdCBsZW5ndGggPSBz
dGF0aWNfY2FzdDx1aW50NjRfdD4odG9MZW5ndGgoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
aWYgKGxlbmd0aCA+IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgewotICAg
ICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAg
IHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOwotICAgIH0KKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwogCiAgICAgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlciBjaGVja2VyKGdsb2Jh
bE9iamVjdCwgdGhpc09iamVjdCk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0
aW9uKCkgfHwgY2hlY2tlci5lYXJseVJldHVyblZhbHVlKCkpOwogICAgIGlmIChKU1ZhbHVlIGVh
cmx5UmV0dXJuVmFsdWUgPSBjaGVja2VyLmVhcmx5UmV0dXJuVmFsdWUoKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShlYXJseVJldHVyblZhbHVlKTsKIAotICAgIEpTU3RyaW5nSm9p
bmVyIHN0cmluZ0pvaW5lcihnbG9iYWxPYmplY3QsICcsJywgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGxlbmd0aCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOworICAgIC8vIDIuIExldCBsZW4gYmUgPyBUb0xlbmd0aCg/IEdldChhcnJheSwgImxlbmd0
aCIpKS4KKyAgICB1aW50NjRfdCBsZW5ndGggPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4odG9MZW5n
dGgoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKIAotICAgIEFyZ0xpc3QgYXJndW1lbnRzKGNhbGxGcmFtZSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIEpTVmFsdWUgZWxl
bWVudCA9IHRoaXNPYmplY3QtPmdldEluZGV4KGdsb2JhbE9iamVjdCwgaSk7Ci0gICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIC8vIDMuIExl
dCBzZXBhcmF0b3IgYmUgdGhlIFN0cmluZyB2YWx1ZSBmb3IgdGhlIGxpc3Qtc2VwYXJhdG9yIFN0
cmluZyBhcHByb3ByaWF0ZSBmb3IKKyAgICAvLyB0aGUgaG9zdCBlbnZpcm9ubWVudCdzIGN1cnJl
bnQgbG9jYWxlICh0aGlzIGlzIGRlcml2ZWQgaW4gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB3
YXkpLgorICAgIGNvbnN0IExDaGFyIGNvbW1hID0gJywnOworICAgIEpTU3RyaW5nKiBzZXBhcmF0
b3IgPSBqc1NpbmdsZUNoYXJhY3RlclN0cmluZyh2bSwgY29tbWEpOworCisgICAgLy8gNC4gTGV0
IFIgYmUgdGhlIGVtcHR5IFN0cmluZy4KKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0VtcHR5U3RyaW5nKHZtKSk7CisKKyAgICAvLyA1LiBMZXQgayBi
ZSAwLgorICAgIEpTVmFsdWUgZWxlbWVudDAgPSB0aGlzT2JqZWN0LT5nZXRJbmRleChnbG9iYWxP
YmplY3QsIDApOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICAv
LyA2LiBSZXBlYXQsIHdoaWxlIGsgPCBsZW4sCisgICAgLy8gNi5hLiBJZiBrID4gMCwgdGhlbgor
ICAgIC8vIDYuYS5pLiBTZXQgUiB0byB0aGUgc3RyaW5nLWNvbmNhdGVuYXRpb24gb2YgUiBhbmQg
c2VwYXJhdG9yLgorCisgICAgSlNTdHJpbmcqIHIgPSBudWxscHRyOworICAgIGlmIChlbGVtZW50
MC5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICByID0ganNFbXB0eVN0cmluZyh2bSk7Cisg
ICAgZWxzZSB7CisgICAgICAgIHIgPSB0b0xvY2FsZVN0cmluZyhnbG9iYWxPYmplY3QsIGVsZW1l
bnQwLCBsb2NhbGVzLCBvcHRpb25zKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKKyAgICB9CisKKyAgICAvLyA4LiBMZXQgayBiZSAxLgorICAgIC8vIDkuIFJlcGVh
dCwgd2hpbGUgayA8IGxlbgorICAgIC8vIDkuZSBJbmNyZWFzZSBrIGJ5IDEuLgorICAgIGZvciAo
dWludDY0X3QgayA9IDE7IGsgPCBsZW5ndGg7ICsraykgeworICAgICAgICAvLyA2LmIuIExldCBu
ZXh0RWxlbWVudCBiZSA/IEdldChhcnJheSwgISBUb1N0cmluZyhrKSkuCisgICAgICAgIEpTVmFs
dWUgZWxlbWVudCA9IHRoaXNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIGspOworICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgICAgIC8vIGMuIElmIG5leHRF
bGVtZW50IGlzIG5vdCB1bmRlZmluZWQgb3IgbnVsbCwgdGhlbgorICAgICAgICBKU1N0cmluZyog
bmV4dCA9IG51bGxwdHI7CiAgICAgICAgIGlmIChlbGVtZW50LmlzVW5kZWZpbmVkT3JOdWxsKCkp
Ci0gICAgICAgICAgICBlbGVtZW50ID0ganNFbXB0eVN0cmluZyh2bSk7CisgICAgICAgICAgICBu
ZXh0ID0ganNFbXB0eVN0cmluZyh2bSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgSlNW
YWx1ZSBjb252ZXJzaW9uRnVuY3Rpb24gPSBlbGVtZW50LmdldChnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPnRvTG9jYWxlU3RyaW5nKTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgICAgICAgICAgYXV0byBjYWxsRGF0
YSA9IGdldENhbGxEYXRhKHZtLCBjb252ZXJzaW9uRnVuY3Rpb24pOwotICAgICAgICAgICAgaWYg
KGNhbGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgICAg
ICBlbGVtZW50ID0gY2FsbChnbG9iYWxPYmplY3QsIGNvbnZlcnNpb25GdW5jdGlvbiwgY2FsbERh
dGEsIGVsZW1lbnQsIGFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICAvLyBpLiBMZXQgUyBiZSA/IFRvU3RyaW5nKD8gSW52b2tlKG5leHRFbGVtZW50LCAidG9Mb2Nh
bGVTdHJpbmciLCDCqyBsb2NhbGVzLCBvcHRpb25zIMK7KSkuCisgICAgICAgICAgICAvLyBpaS4g
U2V0IFIgdG8gdGhlIHN0cmluZy1jb25jYXRlbmF0aW9uIG9mIFIgYW5kIFMuCisgICAgICAgICAg
ICBuZXh0ID0gdG9Mb2NhbGVTdHJpbmcoZ2xvYmFsT2JqZWN0LCBlbGVtZW50LCBsb2NhbGVzLCBv
cHRpb25zKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAg
ICAgICAgIH0KLSAgICAgICAgc3RyaW5nSm9pbmVyLmFwcGVuZChnbG9iYWxPYmplY3QsIGVsZW1l
bnQpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKKworICAgICAgICAvLyBkLiBJbmNyZWFzZSBrIGJ5IDEuCisgICAgICAgIHIgPSBqc1N0cmlu
ZyhnbG9iYWxPYmplY3QsIHIsIHNlcGFyYXRvciwgbmV4dCk7CisgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgfQogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoc3RyaW5nSm9pbmVyLmpvaW4oZ2xvYmFsT2JqZWN0KSkpOwor
ICAgIC8vIDcuIFJldHVybiBSLgorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocik7CiB9CiAK
IHN0YXRpYyBKU1ZhbHVlIHNsb3dKb2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiB0aGlzT2JqZWN0LCBKU1N0cmluZyogc2VwYXJhdG9yLCB1aW50NjRfdCBsZW5ndGgp
CkBAIC03NDcsNyArODA2LDcgQEAgc3RhdGljIEpTVmFsdWUgc2xvd0pvaW4oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTU3QKICAgICAvLyA5LmUg
SW5jcmVhc2UgayBieSAxLi4KICAgICBmb3IgKHVpbnQ2NF90IGsgPSAxOyBrIDwgbGVuZ3RoOyAr
K2spIHsKICAgICAgICAgLy8gYi4gTGV0IGVsZW1lbnQgYmUgPyBHZXQoTywgISBUb1N0cmluZyhr
KSkuCi0gICAgICAgIEpTVmFsdWUgZWxlbWVudCA9IHRoaXNPYmplY3QtPmdldChnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIEF0b21TdHJpbmc6Om51bWJlcihrKSkpOwor
ICAgICAgICBKU1ZhbHVlIGVsZW1lbnQgPSB0aGlzT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBr
KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgICAgICAv
LyBjLiBJZiBlbGVtZW50IGlzIHVuZGVmaW5lZCBvciBudWxsLCBsZXQgbmV4dCBiZSB0aGUgZW1w
dHkgU3RyaW5nOyBvdGhlcndpc2UsIGxldCBuZXh0IGJlID8gVG9TdHJpbmcoZWxlbWVudCkuCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQw
NWFkOTU3MWMxNzg3ZTJhMTY3MWQ5OWY1ZDk0ZTlkZjUwOWU2ZmYuLmU3M2Y5ZDJjNGE4MzAyMzNj
YWQwMDQ4OWY2MDY3ODFkMDM2MDdkYzkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjItMDEtMDMgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBBcnJheS5wcm90b3R5cGUu
dG9Mb2NhbGVTdHJpbmcgZG9lcyBub3QgcmVzcGVjdCBkZWxldGlvbiBvZiBPYmplY3QucHJvdG90
eXBlLnRvTG9jYWxlU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzI3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1kZWxldGUtdG9sb2NhbGVz
dHJpbmcuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAqIHN0cmVz
cy9hcnJheS10b2xvY2FsZXN0cmluZy1lbXB0eS1zZXBhcmF0b3IuanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAqIHN0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1lbXB0
eS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLW9wdGlv
bnMuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAqIHN0cmVzcy9hcnJh
eS10b2xvY2FsZXN0cmluZy11bmRlZmluZWQtbnVsbC5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgIChzaG91bGRCZS50b0xvY2FsZVN0cmluZyk6CisKIDIwMjItMDEtMDIg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVc2Ug
ZW1pdFB1dFByb3BlcnR5IC8gZW1pdEdldFByb3BlcnR5VmFsdWUgY29uc2lzdGVudGx5IHRvIGhh
bmRsZSBwcml2YXRlIG5hbWVzIGluIGVkZ2UgY2FzZXMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLWRlbGV0ZS10b2xvY2FsZXN0cmluZy5qcyBiL0pTVGVz
dHMvc3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLWRlbGV0ZS10b2xvY2FsZXN0cmluZy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yNGIxYjk3ZjkzNGIzMWJiZDcwYWVhODNkYzBhMGU0ZjhhM2E0Mzk0Ci0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktdG9sb2NhbGVzdHJpbmctZGVsZXRl
LXRvbG9jYWxlc3RyaW5nLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZFRocm93
KGZ1bmMsIGVycm9yTWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAg
IHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7
CisgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcign
bm90IHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9
CisKK2RlbGV0ZSBPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nOworc2hvdWxkVGhyb3co
KCkgPT4geworICAgIFt7fV0udG9Mb2NhbGVTdHJpbmcoKTsKK30sIGBUeXBlRXJyb3I6IHRvTG9j
YWxlU3RyaW5nIGlzIG5vdCBjYWxsYWJsZWApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
YXJyYXktdG9sb2NhbGVzdHJpbmctZW1wdHktc2VwYXJhdG9yLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
YXJyYXktdG9sb2NhbGVzdHJpbmctZW1wdHktc2VwYXJhdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0NzY5
ODAwZDI0OGZiZDFhMDk3NDRhN2Y5YTM0OWZkM2I0NGY5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1lbXB0eS1zZXBhcmF0b3IuanMKQEAg
LTAsMCArMSw3IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZh
bHVlOiAnICsgYWN0dWFsKTsKK30KKworc2hvdWxkQmUoW10udG9Mb2NhbGVTdHJpbmcoKSwgYGAp
Oworc2hvdWxkQmUoWzQyXS50b0xvY2FsZVN0cmluZygnZW4nLCB7IG51bWJlcmluZ1N5c3RlbTog
J2hhbmlkZWMnIH0pLCBg5Zub5LqMYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hcnJh
eS10b2xvY2FsZXN0cmluZy1lbXB0eS5qcyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXRvbG9jYWxl
c3RyaW5nLWVtcHR5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFh
ZDdiZGVkMDhiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xv
Y2FsZXN0cmluZy1lbXB0eS5qcwpAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLW9wdGlvbnMuanMgYi9KU1Rlc3RzL3N0cmVzcy9h
cnJheS10b2xvY2FsZXN0cmluZy1vcHRpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZGNkNjA1ODkyODUw
OWYwY2Y4NGYwOWUxZGNhNjUwNDY0NzEyYjIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1vcHRpb25zLmpzCkBAIC0wLDAgKzEsNyBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK3Nob3VsZEJlKFswLCAxLCAyLCAzLCA0XS50b0xvY2FsZVN0cmluZygnamEtSlAnLCB7
IG51bWJlcmluZ1N5c3RlbTogJ2hhbmlkZWMnIH0pLCBg44CHLOS4gCzkuows5LiJLOWbm2ApOwor
c2hvdWxkQmUoWzAsIDEsIDIsIDMsIG5ldyBEYXRlKDApXS50b0xvY2FsZVN0cmluZygnZW4nLCB7
IHRpbWVab25lOiAnVVRDJywgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICcyLWRpZ2l0JywgbnVt
YmVyaW5nU3lzdGVtOiAnaGFuaWRlYycgfSksIGDjgIcs5LiALOS6jCzkuIks5LiA5LqMOuOAh+OA
hyBBTWApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktdG9sb2NhbGVzdHJpbmct
dW5kZWZpbmVkLW51bGwuanMgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy11
bmRlZmluZWQtbnVsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTBiMDgzZjQyZWRhZTNiOTdiYTkwMTc0NDRm
MDJkNDc5ZTZjMGE5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktdG9s
b2NhbGVzdHJpbmctdW5kZWZpbmVkLW51bGwuanMKQEAgLTAsMCArMSw3IEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwor
c2hvdWxkQmUoW3t0b0xvY2FsZVN0cmluZygpe319XS50b0xvY2FsZVN0cmluZygpLCBgdW5kZWZp
bmVkYCk7CitzaG91bGRCZShbe3RvTG9jYWxlU3RyaW5nKCl7IHJldHVybiBudWxsIH19XS50b0xv
Y2FsZVN0cmluZygpLCBgbnVsbGApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448236</attachid>
            <date>2022-01-03 07:39:19 -0800</date>
            <delta_ts>2022-01-03 08:39:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232723-20220103073919.patch</filename>
            <type>text/plain</type>
            <size>11242</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4zZWI3ZGM4NTc0MGNhZjBk
ZTc1MjE5YzE3NDg3YjcxZWVmMzljNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMi0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBkb2VzIG5vdCByZXNw
ZWN0IGRlbGV0aW9uIG9mIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjcyMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVt
ZW50cyBFQ01BNDAyIEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZ1sxXS4gVGhlIG5ldyBp
bXBsZW1lbnRhdGlvbiBpbnZva2VzICJ0b0xvY2FsZVN0cmluZyIKKyAgICAgICAgbWV0aG9kIGZv
ciBlYWNoIGVsZW1lbnRzLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIv
I3N1cC1hcnJheS5wcm90b3R5cGUudG9sb2NhbGVzdHJpbmcKKworICAgICAgICAqIHJ1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjp0b0xvY2FsZVN0cmluZyk6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OnNsb3dK
b2luKToKKwogMjAyMi0wMS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIFVzZSBlbWl0UHV0UHJvcGVydHkgLyBlbWl0R2V0UHJvcGVydHlWYWx1
ZSBjb25zaXN0ZW50bHkgdG8gaGFuZGxlIHByaXZhdGUgbmFtZXMgaW4gZWRnZSBjYXNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4
IDNmYmVhNDU0NDQ2ODllYjQzMzQ0NzYzZjNiOGQyM2ExOTJjMjM1ZWQuLjc3MTNiZmE1NGIwZjhj
ZGM4ZTI2MzQ1ZTY2NmU2NGVhNmM0NmFiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTY3Niw0OSArNjc2LDEwOCBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoam9pbmVyLmpvaW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCitzdGF0aWMgSlNTdHJp
bmcqIHRvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
dmFsdWUsIEpTVmFsdWUgbG9jYWxlcywgSlNWYWx1ZSBvcHRpb25zKQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisKKyAgICBKU1ZhbHVlIHRvTG9jYWxlU3RyaW5nTWV0aG9kID0gdmFsdWUuZ2V0KGds
b2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+dG9Mb2NhbGVTdHJpbmcpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBhdXRvIGNhbGxEYXRhID0gZ2V0Q2Fs
bERhdGEodm0sIHRvTG9jYWxlU3RyaW5nTWV0aG9kKTsKKyAgICBpZiAoY2FsbERhdGEudHlwZSA9
PSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAidG9Mb2NhbGVTdHJpbmcgaXMgbm90IGNhbGxhYmxlIl9zKTsKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVu
dHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChsb2NhbGVzKTsKKyAgICBhcmd1bWVudHMuYXBwZW5k
KG9wdGlvbnMpOworICAgIGlmIChVTkxJS0VMWShhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKSkg
eworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Cisg
ICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGds
b2JhbE9iamVjdCwgdG9Mb2NhbGVTdHJpbmdNZXRob2QsIGNhbGxEYXRhLCB2YWx1ZSwgYXJndW1l
bnRzKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCByZXN1bHQudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KSk7Cit9CisK
Ky8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzdXAtYXJyYXkucHJvdG90eXBlLnRvbG9jYWxl
c3RyaW5nCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZy
YW1lLT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
OwogCisgICAgSlNWYWx1ZSBsb2NhbGVzID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBK
U1ZhbHVlIG9wdGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOworCisgICAgLy8gMS4gTGV0
IGFycmF5IGJlID8gVG9PYmplY3QodGhpcyB2YWx1ZSkuCiAgICAgSlNPYmplY3QqIHRoaXNPYmpl
Y3QgPSB0aGlzVmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB1aW50NjRfdCBsZW5ndGggPSBz
dGF0aWNfY2FzdDx1aW50NjRfdD4odG9MZW5ndGgoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
aWYgKGxlbmd0aCA+IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgewotICAg
ICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAg
IHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOwotICAgIH0KKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwogCiAgICAgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlciBjaGVja2VyKGdsb2Jh
bE9iamVjdCwgdGhpc09iamVjdCk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0
aW9uKCkgfHwgY2hlY2tlci5lYXJseVJldHVyblZhbHVlKCkpOwogICAgIGlmIChKU1ZhbHVlIGVh
cmx5UmV0dXJuVmFsdWUgPSBjaGVja2VyLmVhcmx5UmV0dXJuVmFsdWUoKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShlYXJseVJldHVyblZhbHVlKTsKIAotICAgIEpTU3RyaW5nSm9p
bmVyIHN0cmluZ0pvaW5lcihnbG9iYWxPYmplY3QsICcsJywgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGxlbmd0aCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOworICAgIC8vIDIuIExldCBsZW4gYmUgPyBUb0xlbmd0aCg/IEdldChhcnJheSwgImxlbmd0
aCIpKS4KKyAgICB1aW50NjRfdCBsZW5ndGggPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4odG9MZW5n
dGgoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKIAotICAgIEFyZ0xpc3QgYXJndW1lbnRzKGNhbGxGcmFtZSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIEpTVmFsdWUgZWxl
bWVudCA9IHRoaXNPYmplY3QtPmdldEluZGV4KGdsb2JhbE9iamVjdCwgaSk7Ci0gICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIC8vIDMuIExl
dCBzZXBhcmF0b3IgYmUgdGhlIFN0cmluZyB2YWx1ZSBmb3IgdGhlIGxpc3Qtc2VwYXJhdG9yIFN0
cmluZyBhcHByb3ByaWF0ZSBmb3IKKyAgICAvLyB0aGUgaG9zdCBlbnZpcm9ubWVudCdzIGN1cnJl
bnQgbG9jYWxlICh0aGlzIGlzIGRlcml2ZWQgaW4gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB3
YXkpLgorICAgIGNvbnN0IExDaGFyIGNvbW1hID0gJywnOworICAgIEpTU3RyaW5nKiBzZXBhcmF0
b3IgPSBqc1NpbmdsZUNoYXJhY3RlclN0cmluZyh2bSwgY29tbWEpOworCisgICAgLy8gNC4gTGV0
IFIgYmUgdGhlIGVtcHR5IFN0cmluZy4KKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0VtcHR5U3RyaW5nKHZtKSk7CisKKyAgICAvLyA1LiBMZXQgayBi
ZSAwLgorICAgIEpTVmFsdWUgZWxlbWVudDAgPSB0aGlzT2JqZWN0LT5nZXRJbmRleChnbG9iYWxP
YmplY3QsIDApOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICAv
LyA2LiBSZXBlYXQsIHdoaWxlIGsgPCBsZW4sCisgICAgLy8gNi5hLiBJZiBrID4gMCwgdGhlbgor
ICAgIC8vIDYuYS5pLiBTZXQgUiB0byB0aGUgc3RyaW5nLWNvbmNhdGVuYXRpb24gb2YgUiBhbmQg
c2VwYXJhdG9yLgorCisgICAgSlNTdHJpbmcqIHIgPSBudWxscHRyOworICAgIGlmIChlbGVtZW50
MC5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICByID0ganNFbXB0eVN0cmluZyh2bSk7Cisg
ICAgZWxzZSB7CisgICAgICAgIHIgPSB0b0xvY2FsZVN0cmluZyhnbG9iYWxPYmplY3QsIGVsZW1l
bnQwLCBsb2NhbGVzLCBvcHRpb25zKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKKyAgICB9CisKKyAgICAvLyA4LiBMZXQgayBiZSAxLgorICAgIC8vIDkuIFJlcGVh
dCwgd2hpbGUgayA8IGxlbgorICAgIC8vIDkuZSBJbmNyZWFzZSBrIGJ5IDEuLgorICAgIGZvciAo
dWludDY0X3QgayA9IDE7IGsgPCBsZW5ndGg7ICsraykgeworICAgICAgICAvLyA2LmIuIExldCBu
ZXh0RWxlbWVudCBiZSA/IEdldChhcnJheSwgISBUb1N0cmluZyhrKSkuCisgICAgICAgIEpTVmFs
dWUgZWxlbWVudCA9IHRoaXNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIGspOworICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgICAgIC8vIGMuIElmIG5leHRF
bGVtZW50IGlzIG5vdCB1bmRlZmluZWQgb3IgbnVsbCwgdGhlbgorICAgICAgICBKU1N0cmluZyog
bmV4dCA9IG51bGxwdHI7CiAgICAgICAgIGlmIChlbGVtZW50LmlzVW5kZWZpbmVkT3JOdWxsKCkp
Ci0gICAgICAgICAgICBlbGVtZW50ID0ganNFbXB0eVN0cmluZyh2bSk7CisgICAgICAgICAgICBu
ZXh0ID0ganNFbXB0eVN0cmluZyh2bSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgSlNW
YWx1ZSBjb252ZXJzaW9uRnVuY3Rpb24gPSBlbGVtZW50LmdldChnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPnRvTG9jYWxlU3RyaW5nKTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgICAgICAgICAgYXV0byBjYWxsRGF0
YSA9IGdldENhbGxEYXRhKHZtLCBjb252ZXJzaW9uRnVuY3Rpb24pOwotICAgICAgICAgICAgaWYg
KGNhbGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgICAg
ICBlbGVtZW50ID0gY2FsbChnbG9iYWxPYmplY3QsIGNvbnZlcnNpb25GdW5jdGlvbiwgY2FsbERh
dGEsIGVsZW1lbnQsIGFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICAvLyBpLiBMZXQgUyBiZSA/IFRvU3RyaW5nKD8gSW52b2tlKG5leHRFbGVtZW50LCAidG9Mb2Nh
bGVTdHJpbmciLCDCqyBsb2NhbGVzLCBvcHRpb25zIMK7KSkuCisgICAgICAgICAgICAvLyBpaS4g
U2V0IFIgdG8gdGhlIHN0cmluZy1jb25jYXRlbmF0aW9uIG9mIFIgYW5kIFMuCisgICAgICAgICAg
ICBuZXh0ID0gdG9Mb2NhbGVTdHJpbmcoZ2xvYmFsT2JqZWN0LCBlbGVtZW50LCBsb2NhbGVzLCBv
cHRpb25zKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAg
ICAgICAgIH0KLSAgICAgICAgc3RyaW5nSm9pbmVyLmFwcGVuZChnbG9iYWxPYmplY3QsIGVsZW1l
bnQpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKKworICAgICAgICAvLyBkLiBJbmNyZWFzZSBrIGJ5IDEuCisgICAgICAgIHIgPSBqc1N0cmlu
ZyhnbG9iYWxPYmplY3QsIHIsIHNlcGFyYXRvciwgbmV4dCk7CisgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgfQogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoc3RyaW5nSm9pbmVyLmpvaW4oZ2xvYmFsT2JqZWN0KSkpOwor
ICAgIC8vIDcuIFJldHVybiBSLgorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocik7CiB9CiAK
IHN0YXRpYyBKU1ZhbHVlIHNsb3dKb2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiB0aGlzT2JqZWN0LCBKU1N0cmluZyogc2VwYXJhdG9yLCB1aW50NjRfdCBsZW5ndGgp
CkBAIC03NDcsNyArODA2LDcgQEAgc3RhdGljIEpTVmFsdWUgc2xvd0pvaW4oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTU3QKICAgICAvLyA5LmUg
SW5jcmVhc2UgayBieSAxLi4KICAgICBmb3IgKHVpbnQ2NF90IGsgPSAxOyBrIDwgbGVuZ3RoOyAr
K2spIHsKICAgICAgICAgLy8gYi4gTGV0IGVsZW1lbnQgYmUgPyBHZXQoTywgISBUb1N0cmluZyhr
KSkuCi0gICAgICAgIEpTVmFsdWUgZWxlbWVudCA9IHRoaXNPYmplY3QtPmdldChnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIEF0b21TdHJpbmc6Om51bWJlcihrKSkpOwor
ICAgICAgICBKU1ZhbHVlIGVsZW1lbnQgPSB0aGlzT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBr
KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgICAgICAv
LyBjLiBJZiBlbGVtZW50IGlzIHVuZGVmaW5lZCBvciBudWxsLCBsZXQgbmV4dCBiZSB0aGUgZW1w
dHkgU3RyaW5nOyBvdGhlcndpc2UsIGxldCBuZXh0IGJlID8gVG9TdHJpbmcoZWxlbWVudCkuCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQw
NWFkOTU3MWMxNzg3ZTJhMTY3MWQ5OWY1ZDk0ZTlkZjUwOWU2ZmYuLjE3MzRjNjQwNGFlNWZiYmQ1
NDkwZjliNmJhZjg4YzY5OWI4N2MxNmIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDEtMDMgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBBcnJheS5wcm90b3R5cGUu
dG9Mb2NhbGVTdHJpbmcgZG9lcyBub3QgcmVzcGVjdCBkZWxldGlvbiBvZiBPYmplY3QucHJvdG90
eXBlLnRvTG9jYWxlU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzI3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1kZWxldGUtdG9sb2NhbGVz
dHJpbmcuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAqIHN0cmVz
cy9hcnJheS10b2xvY2FsZXN0cmluZy1lbXB0eS1zZXBhcmF0b3IuanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAqIHN0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1vcHRp
b25zLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKiBzdHJlc3MvYXJy
YXktdG9sb2NhbGVzdHJpbmctdW5kZWZpbmVkLW51bGwuanM6IEFkZGVkLgorICAgICAgICAoc2hv
dWxkQmUpOgorICAgICAgICAoc2hvdWxkQmUudG9Mb2NhbGVTdHJpbmcpOgorCiAyMDIyLTAxLTAy
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNl
IGVtaXRQdXRQcm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBo
YW5kbGUgcHJpdmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1kZWxldGUtdG9sb2NhbGVzdHJpbmcuanMgYi9KU1Rl
c3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1kZWxldGUtdG9sb2NhbGVzdHJpbmcuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjRiMWI5N2Y5MzRiMzFiYmQ3MGFlYTgzZGMwYTBlNGY4YTNhNDM5NAotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLWRlbGV0
ZS10b2xvY2FsZXN0cmluZy5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRUaHJv
dyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAg
ICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBl
OworICAgIH0KKyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
J25vdCB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOwor
fQorCitkZWxldGUgT2JqZWN0LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZzsKK3Nob3VsZFRocm93
KCgpID0+IHsKKyAgICBbe31dLnRvTG9jYWxlU3RyaW5nKCk7Cit9LCBgVHlwZUVycm9yOiB0b0xv
Y2FsZVN0cmluZyBpcyBub3QgY2FsbGFibGVgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2FycmF5LXRvbG9jYWxlc3RyaW5nLWVtcHR5LXNlcGFyYXRvci5qcyBiL0pTVGVzdHMvc3RyZXNz
L2FycmF5LXRvbG9jYWxlc3RyaW5nLWVtcHR5LXNlcGFyYXRvci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDc2
OTgwMGQyNDhmYmQxYTA5NzQ0YTdmOWEzNDlmZDNiNDRmOWM4Ci0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy9zdHJlc3MvYXJyYXktdG9sb2NhbGVzdHJpbmctZW1wdHktc2VwYXJhdG9yLmpzCkBA
IC0wLDAgKzEsNyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3Nob3VsZEJlKFtdLnRvTG9jYWxlU3RyaW5nKCksIGBg
KTsKK3Nob3VsZEJlKFs0Ml0udG9Mb2NhbGVTdHJpbmcoJ2VuJywgeyBudW1iZXJpbmdTeXN0ZW06
ICdoYW5pZGVjJyB9KSwgYOWbm+S6jGApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJy
YXktdG9sb2NhbGVzdHJpbmctb3B0aW9ucy5qcyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXRvbG9j
YWxlc3RyaW5nLW9wdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkY2Q2MDU4OTI4NTA5ZjBjZjg0ZjA5
ZTFkY2E2NTA0NjQ3MTJiMgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5
LXRvbG9jYWxlc3RyaW5nLW9wdGlvbnMuanMKQEAgLTAsMCArMSw3IEBACitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworc2hv
dWxkQmUoWzAsIDEsIDIsIDMsIDRdLnRvTG9jYWxlU3RyaW5nKCdqYS1KUCcsIHsgbnVtYmVyaW5n
U3lzdGVtOiAnaGFuaWRlYycgfSksIGDjgIcs5LiALOS6jCzkuIks5ZubYCk7CitzaG91bGRCZShb
MCwgMSwgMiwgMywgbmV3IERhdGUoMCldLnRvTG9jYWxlU3RyaW5nKCdlbicsIHsgdGltZVpvbmU6
ICdVVEMnLCBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJzItZGlnaXQnLCBudW1iZXJpbmdTeXN0
ZW06ICdoYW5pZGVjJyB9KSwgYOOAhyzkuIAs5LqMLOS4iSzkuIDkuow644CH44CHIEFNYCk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy11bmRlZmluZWQt
bnVsbC5qcyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5nLXVuZGVmaW5lZC1u
dWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFlMGIwODNmNDJlZGFlM2I5N2JhOTAxNzQ0NGYwMmQ0NzllNmMw
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmlu
Zy11bmRlZmluZWQtbnVsbC5qcwpAQCAtMCwwICsxLDcgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitzaG91bGRCZShb
e3RvTG9jYWxlU3RyaW5nKCl7fX1dLnRvTG9jYWxlU3RyaW5nKCksIGB1bmRlZmluZWRgKTsKK3No
b3VsZEJlKFt7dG9Mb2NhbGVTdHJpbmcoKXsgcmV0dXJuIG51bGwgfX1dLnRvTG9jYWxlU3RyaW5n
KCksIGBudWxsYCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448243</attachid>
            <date>2022-01-03 08:39:43 -0800</date>
            <delta_ts>2022-01-03 13:18:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232723-20220103083942.patch</filename>
            <type>text/plain</type>
            <size>12023</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZWQzYTc3MjkyM2FhYmMxYTQ2ODE4Mzg0ZjdhNzQ0MGI4ZmE4OGEwLi5kZDliOTAxM2MyMmY4NTg1
Nzg2ZWU5OWEzNWM2ZTAyNzM5MzVmNzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMi0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyBkb2VzIG5vdCByZXNw
ZWN0IGRlbGV0aW9uIG9mIE9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjcyMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVt
ZW50cyBFQ01BNDAyIEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZ1sxXS4gVGhlIG5ldyBp
bXBsZW1lbnRhdGlvbiBpbnZva2VzICJ0b0xvY2FsZVN0cmluZyIKKyAgICAgICAgbWV0aG9kIGZv
ciBlYWNoIGVsZW1lbnRzLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIv
I3N1cC1hcnJheS5wcm90b3R5cGUudG9sb2NhbGVzdHJpbmcKKworICAgICAgICAqIHJ1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjp0b0xvY2FsZVN0cmluZyk6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OnNsb3dK
b2luKToKKwogMjAyMi0wMS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIEZpeCBsZW5ndGggb2YgSW50bC5OdW1iZXJGb3JtYXQuZm9ybWF0UmFu
Z2UgYW5kIEludGwuUGx1cmFsUnVsZXMuc2VsZWN0UmFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCAzZmJlYTQ1NDQ0Njg5ZWI0
MzM0NDc2M2YzYjhkMjNhMTkyYzIzNWVkLi43NzEzYmZhNTRiMGY4Y2RjOGUyNjM0NWU2NjZlNjRl
YTZjNDZhYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwCkBAIC02NzYsNDkgKzY3NiwxMDggQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGFycmF5UHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpvaW5lci5q
b2luKGdsb2JhbE9iamVjdCkpKTsKIH0KIAorc3RhdGljIEpTU3RyaW5nKiB0b0xvY2FsZVN0cmlu
ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIGxv
Y2FsZXMsIEpTVmFsdWUgb3B0aW9ucykKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNW
YWx1ZSB0b0xvY2FsZVN0cmluZ01ldGhvZCA9IHZhbHVlLmdldChnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPnRvTG9jYWxlU3RyaW5nKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworCisgICAgYXV0byBjYWxsRGF0YSA9IGdldENhbGxEYXRhKHZtLCB0b0xvY2Fs
ZVN0cmluZ01ldGhvZCk7CisgICAgaWYgKGNhbGxEYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6
Ok5vbmUpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgInRv
TG9jYWxlU3RyaW5nIGlzIG5vdCBjYWxsYWJsZSJfcyk7CisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgfQorCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50
cy5hcHBlbmQobG9jYWxlcyk7CisgICAgYXJndW1lbnRzLmFwcGVuZChvcHRpb25zKTsKKyAgICBp
ZiAoVU5MSUtFTFkoYXJndW1lbnRzLmhhc092ZXJmbG93ZWQoKSkpIHsKKyAgICAgICAgdGhyb3dP
dXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4geyB9
OworICAgIH0KKworICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChnbG9iYWxPYmplY3QsIHRvTG9j
YWxlU3RyaW5nTWV0aG9kLCBjYWxsRGF0YSwgdmFsdWUsIGFyZ3VtZW50cyk7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgcmVzdWx0LnRvU3RyaW5nKGdsb2JhbE9iamVjdCkpOworfQorCisvLyBodHRwczovL3RjMzku
ZXMvZWNtYTQwMi8jc3VwLWFycmF5LnByb3RvdHlwZS50b2xvY2FsZXN0cmluZwogSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCku
dG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKIAorICAgIEpTVmFsdWUg
bG9jYWxlcyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgSlNWYWx1ZSBvcHRpb25zID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKKworICAgIC8vIDEuIExldCBhcnJheSBiZSA/IFRvT2Jq
ZWN0KHRoaXMgdmFsdWUpLgogICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gdGhpc1ZhbHVlLnRv
T2JqZWN0KGdsb2JhbE9iamVjdCk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7Ci0gICAgdWludDY0X3QgbGVuZ3RoID0gc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KHRvTGVuZ3RoKGdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGlmIChsZW5ndGggPiBzdGQ6
Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpIHsKLSAgICAgICAgdGhyb3dPdXRPZk1l
bW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAgICAgICByZXR1cm4gZW5jb2RlZEpT
VmFsdWUoKTsKLSAgICB9CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAog
ICAgIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIgY2hlY2tlcihnbG9iYWxPYmplY3QsIHRoaXNPYmpl
Y3QpOwogICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8IGNoZWNrZXIu
ZWFybHlSZXR1cm5WYWx1ZSgpKTsKICAgICBpZiAoSlNWYWx1ZSBlYXJseVJldHVyblZhbHVlID0g
Y2hlY2tlci5lYXJseVJldHVyblZhbHVlKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoZWFybHlSZXR1cm5WYWx1ZSk7CiAKLSAgICBKU1N0cmluZ0pvaW5lciBzdHJpbmdKb2luZXIo
Z2xvYmFsT2JqZWN0LCAnLCcsIHN0YXRpY19jYXN0PHVpbnQzMl90PihsZW5ndGgpKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAvLyAyLiBM
ZXQgbGVuIGJlID8gVG9MZW5ndGgoPyBHZXQoYXJyYXksICJsZW5ndGgiKSkuCisgICAgdWludDY0
X3QgbGVuZ3RoID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHRvTGVuZ3RoKGdsb2JhbE9iamVjdCwg
dGhpc09iamVjdCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAg
ICBBcmdMaXN0IGFyZ3VtZW50cyhjYWxsRnJhbWUpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBKU1ZhbHVlIGVsZW1lbnQgPSB0aGlzT2JqZWN0
LT5nZXRJbmRleChnbG9iYWxPYmplY3QsIGkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAvLyAzLiBMZXQgc2VwYXJhdG9yIGJlIHRo
ZSBTdHJpbmcgdmFsdWUgZm9yIHRoZSBsaXN0LXNlcGFyYXRvciBTdHJpbmcgYXBwcm9wcmlhdGUg
Zm9yCisgICAgLy8gdGhlIGhvc3QgZW52aXJvbm1lbnQncyBjdXJyZW50IGxvY2FsZSAodGhpcyBp
cyBkZXJpdmVkIGluIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgd2F5KS4KKyAgICBjb25zdCBM
Q2hhciBjb21tYSA9ICcsJzsKKyAgICBKU1N0cmluZyogc2VwYXJhdG9yID0ganNTaW5nbGVDaGFy
YWN0ZXJTdHJpbmcodm0sIGNvbW1hKTsKKworICAgIC8vIDQuIExldCBSIGJlIHRoZSBlbXB0eSBT
dHJpbmcuCisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNFbXB0eVN0cmluZyh2bSkpOworCisgICAgLy8gNS4gTGV0IGsgYmUgMC4KKyAgICBKU1ZhbHVl
IGVsZW1lbnQwID0gdGhpc09iamVjdC0+Z2V0SW5kZXgoZ2xvYmFsT2JqZWN0LCAwKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgLy8gNi4gUmVwZWF0LCB3aGls
ZSBrIDwgbGVuLAorICAgIC8vIDYuYS4gSWYgayA+IDAsIHRoZW4KKyAgICAvLyA2LmEuaS4gU2V0
IFIgdG8gdGhlIHN0cmluZy1jb25jYXRlbmF0aW9uIG9mIFIgYW5kIHNlcGFyYXRvci4KKworICAg
IEpTU3RyaW5nKiByID0gbnVsbHB0cjsKKyAgICBpZiAoZWxlbWVudDAuaXNVbmRlZmluZWRPck51
bGwoKSkKKyAgICAgICAgciA9IGpzRW1wdHlTdHJpbmcodm0pOworICAgIGVsc2UgeworICAgICAg
ICByID0gdG9Mb2NhbGVTdHJpbmcoZ2xvYmFsT2JqZWN0LCBlbGVtZW50MCwgbG9jYWxlcywgb3B0
aW9ucyk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQor
CisgICAgLy8gOC4gTGV0IGsgYmUgMS4KKyAgICAvLyA5LiBSZXBlYXQsIHdoaWxlIGsgPCBsZW4K
KyAgICAvLyA5LmUgSW5jcmVhc2UgayBieSAxLi4KKyAgICBmb3IgKHVpbnQ2NF90IGsgPSAxOyBr
IDwgbGVuZ3RoOyArK2spIHsKKyAgICAgICAgLy8gNi5iLiBMZXQgbmV4dEVsZW1lbnQgYmUgPyBH
ZXQoYXJyYXksICEgVG9TdHJpbmcoaykpLgorICAgICAgICBKU1ZhbHVlIGVsZW1lbnQgPSB0aGlz
T2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBrKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKworICAgICAgICAvLyBjLiBJZiBuZXh0RWxlbWVudCBpcyBub3QgdW5k
ZWZpbmVkIG9yIG51bGwsIHRoZW4KKyAgICAgICAgSlNTdHJpbmcqIG5leHQgPSBudWxscHRyOwog
ICAgICAgICBpZiAoZWxlbWVudC5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICAgICAgZWxl
bWVudCA9IGpzRW1wdHlTdHJpbmcodm0pOworICAgICAgICAgICAgbmV4dCA9IGpzRW1wdHlTdHJp
bmcodm0pOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEpTVmFsdWUgY29udmVyc2lvbkZ1
bmN0aW9uID0gZWxlbWVudC5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT50b0xv
Y2FsZVN0cmluZyk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKLSAgICAgICAgICAgIGF1dG8gY2FsbERhdGEgPSBnZXRDYWxsRGF0YSh2
bSwgY29udmVyc2lvbkZ1bmN0aW9uKTsKLSAgICAgICAgICAgIGlmIChjYWxsRGF0YS50eXBlICE9
IENhbGxEYXRhOjpUeXBlOjpOb25lKSB7Ci0gICAgICAgICAgICAgICAgZWxlbWVudCA9IGNhbGwo
Z2xvYmFsT2JqZWN0LCBjb252ZXJzaW9uRnVuY3Rpb24sIGNhbGxEYXRhLCBlbGVtZW50LCBhcmd1
bWVudHMpOwotICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaS4gTGV0IFMgYmUg
PyBUb1N0cmluZyg/IEludm9rZShuZXh0RWxlbWVudCwgInRvTG9jYWxlU3RyaW5nIiwgwqsgbG9j
YWxlcywgb3B0aW9ucyDCuykpLgorICAgICAgICAgICAgLy8gaWkuIFNldCBSIHRvIHRoZSBzdHJp
bmctY29uY2F0ZW5hdGlvbiBvZiBSIGFuZCBTLgorICAgICAgICAgICAgbmV4dCA9IHRvTG9jYWxl
U3RyaW5nKGdsb2JhbE9iamVjdCwgZWxlbWVudCwgbG9jYWxlcywgb3B0aW9ucyk7CisgICAgICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICB9Ci0gICAgICAg
IHN0cmluZ0pvaW5lci5hcHBlbmQoZ2xvYmFsT2JqZWN0LCBlbGVtZW50KTsKLSAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisKKyAgICAgICAgLy8g
ZC4gSW5jcmVhc2UgayBieSAxLgorICAgICAgICByID0ganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCBy
LCBzZXBhcmF0b3IsIG5leHQpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogICAgIH0KIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHN0cmluZ0pvaW5lci5qb2luKGdsb2JhbE9iamVjdCkpKTsKKyAgICAvLyA3LiBSZXR1cm4g
Ui4KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHIpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBz
bG93Sm9pbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGhpc09iamVj
dCwgSlNTdHJpbmcqIHNlcGFyYXRvciwgdWludDY0X3QgbGVuZ3RoKQpAQCAtNzQ3LDcgKzgwNiw3
IEBAIHN0YXRpYyBKU1ZhbHVlIHNsb3dKb2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1N0CiAgICAgLy8gOS5lIEluY3JlYXNlIGsgYnkgMS4u
CiAgICAgZm9yICh1aW50NjRfdCBrID0gMTsgayA8IGxlbmd0aDsgKytrKSB7CiAgICAgICAgIC8v
IGIuIExldCBlbGVtZW50IGJlID8gR2V0KE8sICEgVG9TdHJpbmcoaykpLgotICAgICAgICBKU1Zh
bHVlIGVsZW1lbnQgPSB0aGlzT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCBBdG9tU3RyaW5nOjpudW1iZXIoaykpKTsKKyAgICAgICAgSlNWYWx1ZSBl
bGVtZW50ID0gdGhpc09iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgayk7CiAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICAgICAgLy8gYy4gSWYgZWxlbWVudCBp
cyB1bmRlZmluZWQgb3IgbnVsbCwgbGV0IG5leHQgYmUgdGhlIGVtcHR5IFN0cmluZzsgb3RoZXJ3
aXNlLCBsZXQgbmV4dCBiZSA/IFRvU3RyaW5nKGVsZW1lbnQpLgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFrcmFDb3JlL3Rlc3QvQXJyYXkvdG9Mb2NhbGVTdHJpbmcuYmFzZWxpbmUtanNjIGIvSlNU
ZXN0cy9DaGFrcmFDb3JlL3Rlc3QvQXJyYXkvdG9Mb2NhbGVTdHJpbmcuYmFzZWxpbmUtanNjCmlu
ZGV4IGQ3MTA5MDM5OGQ0NDk4YjA5MDgzOGMzNTBmMTM2ODU4ZmJkMmNlMTYuLmRiZGEyNGQxYzAw
M2YyNjRiMDUyOWRmZDY0MzViZTc0ODJmNzRiMTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hha3Jh
Q29yZS90ZXN0L0FycmF5L3RvTG9jYWxlU3RyaW5nLmJhc2VsaW5lLWpzYworKysgYi9KU1Rlc3Rz
L0NoYWtyYUNvcmUvdGVzdC9BcnJheS90b0xvY2FsZVN0cmluZy5iYXNlbGluZS1qc2MKQEAgLTE4
LDcgKzE4LDcgQEAgbGVuZ3RoOiBbb2JqZWN0IE9iamVjdF0gLS0+CiAKIAogMy4gQXJyYXk6IGVs
ZW1lbnQgdG9Mb2NhbGVTdHJpbmcgbm90IGNhbGxhYmxlCi0wLFtvYmplY3QgT2JqZWN0XQorVHlw
ZUVycm9yIDogdG9Mb2NhbGVTdHJpbmcgaXMgbm90IGNhbGxhYmxlCiAKIAogNC4gQXJyYXk6IGVs
ZW1lbnQgdG9Mb2NhbGVTdHJpbmcKQEAgLTMwLDcgKzMwLDcgQEAgbGVuZ3RoOiBbb2JqZWN0IE9i
amVjdF0gLS0+CiAKIAogNi4gT2JqZWN0OiBlbGVtZW50IHRvTG9jYWxlU3RyaW5nIG5vdCBjYWxs
YWJsZQotMCxbb2JqZWN0IE9iamVjdF0KK1R5cGVFcnJvciA6IHRvTG9jYWxlU3RyaW5nIGlzIG5v
dCBjYWxsYWJsZQogCiAKIDcuIE9iamVjdDogZWxlbWVudCB0b0xvY2FsZVN0cmluZwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA2NGMzMGZi
NzhjYmNjNWVlM2Y3NmYyOWI4NDVmYWJiZmRhOWY1NDJhLi43MTk0NGYwZDBhNzhmNjk0OTBkZWFj
NDQ4N2NjMmE4YzFkZTgwOWIwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9K
U1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTAxLTAzICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgQXJyYXkucHJvdG90eXBlLnRvTG9j
YWxlU3RyaW5nIGRvZXMgbm90IHJlc3BlY3QgZGVsZXRpb24gb2YgT2JqZWN0LnByb3RvdHlwZS50
b0xvY2FsZVN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMyNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDaGFrcmFDb3JlL3Rlc3QvQXJyYXkvdG9Mb2NhbGVTdHJpbmcuYmFzZWxpbmUtanNj
OgorICAgICAgICAqIHN0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1kZWxldGUtdG9sb2NhbGVz
dHJpbmcuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAqIHN0cmVz
cy9hcnJheS10b2xvY2FsZXN0cmluZy1lbXB0eS1zZXBhcmF0b3IuanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAqIHN0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1vcHRp
b25zLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKiBzdHJlc3MvYXJy
YXktdG9sb2NhbGVzdHJpbmctdW5kZWZpbmVkLW51bGwuanM6IEFkZGVkLgorICAgICAgICAoc2hv
dWxkQmUpOgorICAgICAgICAoc2hvdWxkQmUudG9Mb2NhbGVTdHJpbmcpOgorCiAyMDIyLTAxLTAz
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRml4
IGxlbmd0aCBvZiBJbnRsLk51bWJlckZvcm1hdC5mb3JtYXRSYW5nZSBhbmQgSW50bC5QbHVyYWxS
dWxlcy5zZWxlY3RSYW5nZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktdG9sb2Nh
bGVzdHJpbmctZGVsZXRlLXRvbG9jYWxlc3RyaW5nLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXkt
dG9sb2NhbGVzdHJpbmctZGVsZXRlLXRvbG9jYWxlc3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0YjFi
OTdmOTM0YjMxYmJkNzBhZWE4M2RjMGEwZTRmOGEzYTQzOTQKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1kZWxldGUtdG9sb2NhbGVzdHJpbmcu
anMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNz
YWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAgdmFyIGVycm9yID0gbnVs
bDsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICBlcnJvclRocm93biA9IHRydWU7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYg
KCFlcnJvclRocm93bikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3QgdGhyb3duJyk7Cisg
ICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9yTWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKGVycm9yKX1gKTsKK30KKworZGVsZXRlIE9iamVj
dC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc7CitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgW3t9
XS50b0xvY2FsZVN0cmluZygpOworfSwgYFR5cGVFcnJvcjogdG9Mb2NhbGVTdHJpbmcgaXMgbm90
IGNhbGxhYmxlYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0
cmluZy1lbXB0eS1zZXBhcmF0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0
cmluZy1lbXB0eS1zZXBhcmF0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ3Njk4MDBkMjQ4ZmJkMWEwOTc0
NGE3ZjlhMzQ5ZmQzYjQ0ZjljOAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Fy
cmF5LXRvbG9jYWxlc3RyaW5nLWVtcHR5LXNlcGFyYXRvci5qcwpAQCAtMCwwICsxLDcgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwp
OworfQorCitzaG91bGRCZShbXS50b0xvY2FsZVN0cmluZygpLCBgYCk7CitzaG91bGRCZShbNDJd
LnRvTG9jYWxlU3RyaW5nKCdlbicsIHsgbnVtYmVyaW5nU3lzdGVtOiAnaGFuaWRlYycgfSksIGDl
m5vkuoxgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FycmF5LXRvbG9jYWxlc3RyaW5n
LW9wdGlvbnMuanMgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1vcHRpb25z
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1ZGNkNjA1ODkyODUwOWYwY2Y4NGYwOWUxZGNhNjUwNDY0NzEyYjIK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy1v
cHRpb25zLmpzCkBAIC0wLDAgKzEsNyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBl
Y3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3Nob3VsZEJlKFswLCAxLCAyLCAz
LCA0XS50b0xvY2FsZVN0cmluZygnamEtSlAnLCB7IG51bWJlcmluZ1N5c3RlbTogJ2hhbmlkZWMn
IH0pLCBg44CHLOS4gCzkuows5LiJLOWbm2ApOworc2hvdWxkQmUoWzAsIDEsIDIsIDMsIG5ldyBE
YXRlKDApXS50b0xvY2FsZVN0cmluZygnZW4nLCB7IHRpbWVab25lOiAnVVRDJywgaG91cjogJ251
bWVyaWMnLCBtaW51dGU6ICcyLWRpZ2l0JywgbnVtYmVyaW5nU3lzdGVtOiAnaGFuaWRlYycgfSks
IGDjgIcs5LiALOS6jCzkuIks5LiA5LqMOuOAh+OAhyBBTWApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvYXJyYXktdG9sb2NhbGVzdHJpbmctdW5kZWZpbmVkLW51bGwuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9hcnJheS10b2xvY2FsZXN0cmluZy11bmRlZmluZWQtbnVsbC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZTBiMDgzZjQyZWRhZTNiOTdiYTkwMTc0NDRmMDJkNDc5ZTZjMGE5Ci0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktdG9sb2NhbGVzdHJpbmctdW5kZWZpbmVkLW51bGwu
anMKQEAgLTAsMCArMSw3IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcign
YmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworc2hvdWxkQmUoW3t0b0xvY2FsZVN0cmluZygp
e319XS50b0xvY2FsZVN0cmluZygpLCBgdW5kZWZpbmVkYCk7CitzaG91bGRCZShbe3RvTG9jYWxl
U3RyaW5nKCl7IHJldHVybiBudWxsIH19XS50b0xvY2FsZVN0cmluZygpLCBgbnVsbGApOwo=
</data>
<flag name="review"
          id="474079"
          type_id="1"
          status="+"
          setter="ashvayka"
    />
    <flag name="commit-queue"
          id="474084"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>