<?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>233415</bug_id>
          
          <creation_ts>2021-11-21 23:21:45 -0800</creation_ts>
          <short_desc>[JSC] Move m_incomingPolymorphicCalls out of CodeBlock::JITData</short_desc>
          <delta_ts>2021-11-29 11:52:01 -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>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1817241</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-21 23:21:45 -0800</bug_when>
    <thetext>[JSC] Move m_incomingPolymorphicCalls out of CodeBlock::JITData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817242</commentid>
    <comment_count>1</comment_count>
      <attachid>444946</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-21 23:23:28 -0800</bug_when>
    <thetext>Created attachment 444946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817243</commentid>
    <comment_count>2</comment_count>
      <attachid>444947</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-21 23:28:06 -0800</bug_when>
    <thetext>Created attachment 444947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817245</commentid>
    <comment_count>3</comment_count>
      <attachid>444949</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-21 23:53:26 -0800</bug_when>
    <thetext>Created attachment 444949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818134</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-28 23:22:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/85801379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818264</commentid>
    <comment_count>5</comment_count>
      <attachid>444949</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-11-29 10:01:18 -0800</bug_when>
    <thetext>Comment on attachment 444949
Patch

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

Nice.  r=me

&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:96
&gt; +

Can you add the following here?
    EXPECT_TRUE(!first-&gt;isOnList());
    EXPECT_TRUE(!second-&gt;isOnList());
    EXPECT_TRUE(!third-&gt;isOnList());
    EXPECT_TRUE(!fourth-&gt;isOnList());

&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:100
&gt; +TEST(WTF_SentinelLinkedList, RemoveAll)

I think `Remove` is a better name for this test (instead of `RemoveAll`) since it&apos;s testing the `remove` method.

&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:115
&gt; +}

Can you add an `EXPECT_TRUE(i == 10);` here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818268</commentid>
    <comment_count>6</comment_count>
      <attachid>444949</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-29 10:03:53 -0800</bug_when>
    <thetext>Comment on attachment 444949
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:115
&gt;&gt; +}
&gt; 
&gt; Can you add an `EXPECT_TRUE(i == 10);` here?

Or more idiomatically:

    EXPECT_EQ(10, i);

&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:132
&gt; +    EXPECT_EQ(list.begin()-&gt;value(), 0);

These are all backward. The macro writes out error messages assuming that the expected value is first and the expression is second. You’ll notice this in failing tests, so it’s slightly more elegant to do it in the order the macro exprects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818341</commentid>
    <comment_count>7</comment_count>
      <attachid>444949</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-29 11:29:03 -0800</bug_when>
    <thetext>Comment on attachment 444949
Patch

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

Thank you!

&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:96
&gt;&gt; +
&gt; 
&gt; Can you add the following here?
&gt;     EXPECT_TRUE(!first-&gt;isOnList());
&gt;     EXPECT_TRUE(!second-&gt;isOnList());
&gt;     EXPECT_TRUE(!third-&gt;isOnList());
&gt;     EXPECT_TRUE(!fourth-&gt;isOnList());

Nice. Added.

&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:100
&gt;&gt; +TEST(WTF_SentinelLinkedList, RemoveAll)
&gt; 
&gt; I think `Remove` is a better name for this test (instead of `RemoveAll`) since it&apos;s testing the `remove` method.

Make sense. Changed.

&gt;&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:115
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; Can you add an `EXPECT_TRUE(i == 10);` here?
&gt; 
&gt; Or more idiomatically:
&gt; 
&gt;     EXPECT_EQ(10, i);

Sounds good. Added.

&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:132
&gt;&gt; +    EXPECT_EQ(list.begin()-&gt;value(), 0);
&gt; 
&gt; These are all backward. The macro writes out error messages assuming that the expected value is first and the expression is second. You’ll notice this in failing tests, so it’s slightly more elegant to do it in the order the macro exprects.

Good catch! Changed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818368</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-29 11:52:01 -0800</bug_when>
    <thetext>Committed r286248 (244611@main): &lt;https://commits.webkit.org/244611@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444946</attachid>
            <date>2021-11-21 23:23:28 -0800</date>
            <delta_ts>2021-11-21 23:28:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233415-20211122022327.patch</filename>
            <type>text/plain</type>
            <size>18723</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NjZjM2JhMzBlNTNjOTNkMzgwNzcwOGE0ZTk3YTdkMjMwODZiZDUxLi4yOGVmNzRjYjAzMWQ4Nzc2
YWI2M2FkYWM0ZTc3MmUwZTgzZmRlMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMS0xMS0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1vdmUgbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMgb3V0IG9m
IENvZGVCbG9jazo6SklURGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtX2luY29taW5nUG9seW1vcnBoaWNDYWxscyBm
cm9tIENvZGVCbG9jazo6SklURGF0YSB0byBDb2RlQmxvY2sgc2luY2UgaXQgaXMgbm93IHVzZWQK
KyAgICAgICAgaW4gTExJbnQgdG9vIGlmIEpJVCBpcyBlbmFibGVkLiBUbyBrZWVwIENvZGVCbG9j
ayBzbWFsbCwgdGhpcyBwYXRjaCBzaHJpbmtzIHNpemVvZihTZW50aW5lbExpbmtlZExpc3QpLgor
CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjpsaW5rSW5jb21pbmdQb2x5bW9ycGhpY0NhbGwpOgorICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OnVubGlua0luY29taW5nQ2FsbHMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5o
OgorCiAyMDIxLTExLTIwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gTW92ZSBSZXBhdGNoWFhYIGZyb20gaml0IHRvIGJ5dGVjb2RlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVh
YjNiMjBkYTVmNDFhMjYwMTM4NDhjOTViMmViNTZmMzFjZDE3ODEuLmI2N2Q2N2QwODhiMzgxMzIx
YWZhNTI5OGMwZjIxZTNhNmQ0OTA4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTEtMjEg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBNb3Zl
IG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzIG91dCBvZiBDb2RlQmxvY2s6OkpJVERhdGEKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQxNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc2l6ZW9m
KFNlbnRpbmVsTGlua2VkTGlzdCkgc21hbGwuIFdlIGRvIG5vdCBuZWVkIHRvIGhhdmUgdHdvIHNl
bnRpbmVsIGZvciB0aGUgbGlzdC4KKworICAgICAgICAqIHd0Zi9TZW50aW5lbExpbmtlZExpc3Qu
aDoKKyAgICAgICAgKFdURjo6UmF3Tm9kZT46OlNlbnRpbmVsTGlua2VkTGlzdCk6CisgICAgICAg
IChXVEY6OlJhd05vZGU+OjpiZWdpbik6CisgICAgICAgIChXVEY6OlJhd05vZGU+OjplbmQpOgor
ICAgICAgICAoV1RGOjpSYXdOb2RlPjo6cHVzaCk6CisgICAgICAgIChXVEY6OlJhd05vZGU+Ojph
cHBlbmQpOgorICAgICAgICAoV1RGOjpSYXdOb2RlPjo6dGFrZUZyb20pOgorCiAyMDIxLTExLTE5
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtNb2RlbF0g
YWRkIGF1ZGlvIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAKaW5kZXggYmZlMTg2NzhlNzVkNDEzMzM1MDkyODViMDQ4MDRjY2I2MmZmMDQ0Zi4u
YWQyNTMyMzQyNGNjNWQ4NzVjNDg1MmZjNzFiNDY2MzU1NmJlYWMyZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTIxMzQsMTAgKzIxMzQsNyBA
QCB2b2lkIENvZGVCbG9jazo6c2hyaW5rVG9GaXQoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwg
U2hyaW5rTW9kZSBzaHJpbmtNb2RlKQogdm9pZCBDb2RlQmxvY2s6OmxpbmtJbmNvbWluZ1BvbHlt
b3JwaGljQ2FsbChDYWxsRnJhbWUqIGNhbGxlckZyYW1lLCBQb2x5bW9ycGhpY0NhbGxOb2RlKiBp
bmNvbWluZykKIHsKICAgICBub3RpY2VJbmNvbWluZ0NhbGwoY2FsbGVyRnJhbWUpOwotICAgIHsK
LSAgICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICBlbnN1
cmVKSVREYXRhKGxvY2tlcikubV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMucHVzaChpbmNvbWlu
Zyk7Ci0gICAgfQorICAgIG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzLnB1c2goaW5jb21pbmcp
OwogfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKQEAgLTIxNDksMTkgKzIxNDYsMTIgQEAgdm9p
ZCBDb2RlQmxvY2s6OmxpbmtJbmNvbWluZ0NhbGwoQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSwgQ2Fs
bExpbmtJbmZvKiBpbmNvbWluZykKIAogdm9pZCBDb2RlQmxvY2s6OnVubGlua0luY29taW5nQ2Fs
bHMoKQogewotICAgIHdoaWxlIChtX2luY29taW5nQ2FsbHMuYmVnaW4oKSAhPSBtX2luY29taW5n
Q2FsbHMuZW5kKCkpCisgICAgd2hpbGUgKCFtX2luY29taW5nQ2FsbHMuaXNFbXB0eSgpKQogICAg
ICAgICBtX2luY29taW5nQ2FsbHMuYmVnaW4oKS0+dW5saW5rKHZtKCkpOwogI2lmIEVOQUJMRShK
SVQpCi0gICAgSklURGF0YSogaml0RGF0YSA9IG51bGxwdHI7Ci0gICAgewotICAgICAgICBDb25j
dXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIGppdERhdGEgPSBtX2ppdERh
dGEuZ2V0KCk7Ci0gICAgfQotICAgIGlmIChqaXREYXRhKSB7Ci0gICAgICAgIHdoaWxlIChqaXRE
YXRhLT5tX2luY29taW5nUG9seW1vcnBoaWNDYWxscy5iZWdpbigpICE9IGppdERhdGEtPm1faW5j
b21pbmdQb2x5bW9ycGhpY0NhbGxzLmVuZCgpKQotICAgICAgICAgICAgaml0RGF0YS0+bV9pbmNv
bWluZ1BvbHltb3JwaGljQ2FsbHMuYmVnaW4oKS0+dW5saW5rKHZtKCkpOwotICAgIH0KLSNlbmRp
ZiAvLyBFTkFCTEUoSklUKQorICAgIHdoaWxlICghbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMu
aXNFbXB0eSgpKQorICAgICAgICBtX2luY29taW5nUG9seW1vcnBoaWNDYWxscy5iZWdpbigpLT51
bmxpbmsodm0oKSk7CisjZW5kaWYKIH0KIAogQ29kZUJsb2NrKiBDb2RlQmxvY2s6Om5ld1JlcGxh
Y2VtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRl
eCBiN2FlYTI2NzdmNWU5NDkwOGFiMzU1Zjk2YjBkMjNjMzc4MjQyMDEyLi5mMjY2YmI0MGFkMDli
YjdmMmMxOGE3ZmQ1MGVmOTdmODM0MTE5MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0yNjAsNyArMjYwLDYgQEAgY2xhc3MgQ29kZUJsb2NrIDog
cHVibGljIEpTQ2VsbCB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0
b3I7CiAKICAgICAgICAgRml4ZWRWZWN0b3I8U3RydWN0dXJlU3R1YkluZm8+IG1fc3R1YkluZm9z
OwotICAgICAgICBTZW50aW5lbExpbmtlZExpc3Q8UG9seW1vcnBoaWNDYWxsTm9kZSwgUGFja2Vk
UmF3U2VudGluZWxOb2RlPFBvbHltb3JwaGljQ2FsbE5vZGU+PiBtX2luY29taW5nUG9seW1vcnBo
aWNDYWxsczsKICAgICAgICAgYm9vbCBtX2hhc0NhbGxlZVNhdmVSZWdpc3RlcnMgeyBmYWxzZSB9
OwogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAK
QEAgLTk1NCw2ICs5NTMsOSBAQCBjbGFzcyBDb2RlQmxvY2sgOiBwdWJsaWMgSlNDZWxsIHsKIAog
ICAgIGNvbnN0IHZvaWQqIG1faW5zdHJ1Y3Rpb25zUmF3UG9pbnRlciB7IG51bGxwdHIgfTsKICAg
ICBTZW50aW5lbExpbmtlZExpc3Q8Q2FsbExpbmtJbmZvLCBQYWNrZWRSYXdTZW50aW5lbE5vZGU8
Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOworI2lmIEVOQUJMRShKSVQpCisgICAgU2Vu
dGluZWxMaW5rZWRMaXN0PFBvbHltb3JwaGljQ2FsbE5vZGUsIFBhY2tlZFJhd1NlbnRpbmVsTm9k
ZTxQb2x5bW9ycGhpY0NhbGxOb2RlPj4gbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHM7CisjZW5k
aWYKICAgICBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1h
cDsKICAgICBSZWZQdHI8SklUQ29kZT4gbV9qaXRDb2RlOwogI2lmIEVOQUJMRShKSVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaCBiL1NvdXJjZS9XVEYv
d3RmL1NlbnRpbmVsTGlua2VkTGlzdC5oCmluZGV4IDRmNDBmMGVjMDdhN2ZiNmM3NWVkY2YzMmNj
ZGE4N2MwYzk5ZDc1ZjkuLjQwYTg0NmEzYzYzYjFjMmM5ZDFiOWJmYWQ0MzMxOGRiMGVjZDRiOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1NlbnRpbmVsTGlua2VkTGlzdC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1NlbnRpbmVsTGlua2VkTGlzdC5oCkBAIC0xMTIsOCArMTEyLDcgQEAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJhd05vZGUgPSBUPiBjbGFzcyBTZW50aW5lbExp
bmtlZExpc3QgewogICAgIHZvaWQgdGFrZUZyb20oU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05v
ZGU+Jik7CiAgICAgCiBwcml2YXRlOgotICAgIFJhd05vZGUgbV9oZWFkU2VudGluZWw7Ci0gICAg
UmF3Tm9kZSBtX3RhaWxTZW50aW5lbDsKKyAgICBSYXdOb2RlIG1fc2VudGluZWw7CiB9OwogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHJhaXRzPiB2b2lkIEJhc2ljUmF3U2Vu
dGluZWxOb2RlPFQsIFB0clRyYWl0cz46OnJlbW92ZSgpCkBAIC0xMzQsMjQgKzEzMywyMCBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHJhaXRzPiB2b2lkIEJhc2ljUmF3U2Vu
dGluZWxOb2RlPFQsIFB0clRyYWl0cwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgUmF3Tm9kZT4gaW5saW5lIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6U2VudGlu
ZWxMaW5rZWRMaXN0KCkKLSAgICA6IG1faGVhZFNlbnRpbmVsKFNlbnRpbmVsKQotICAgICwgbV90
YWlsU2VudGluZWwoU2VudGluZWwpCisgICAgOiBtX3NlbnRpbmVsKFNlbnRpbmVsKQogewotICAg
IG1faGVhZFNlbnRpbmVsLnNldE5leHQoJm1fdGFpbFNlbnRpbmVsKTsKLSAgICBtX2hlYWRTZW50
aW5lbC5zZXRQcmV2KG51bGxwdHIpOwotCi0gICAgbV90YWlsU2VudGluZWwuc2V0UHJldigmbV9o
ZWFkU2VudGluZWwpOwotICAgIG1fdGFpbFNlbnRpbmVsLnNldE5leHQobnVsbHB0cik7CisgICAg
bV9zZW50aW5lbC5zZXRQcmV2KCZtX3NlbnRpbmVsKTsKKyAgICBtX3NlbnRpbmVsLnNldE5leHQo
Jm1fc2VudGluZWwpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9k
ZT4gaW5saW5lIHR5cGVuYW1lIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6aXRlcmF0
b3IgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+OjpiZWdpbigpCiB7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFQqPihtX2hlYWRTZW50aW5lbC5uZXh0KCkpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxUKj4obV9zZW50aW5lbC5uZXh0KCkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgUmF3Tm9kZT4gaW5saW5lIHR5cGVuYW1lIFNlbnRpbmVsTGlua2VkTGlzdDxU
LCBSYXdOb2RlPjo6aXRlcmF0b3IgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+OjplbmQo
KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4oJm1fdGFpbFNlbnRpbmVsKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KCZtX3NlbnRpbmVsKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFJhd05vZGU+IGlubGluZSB2b2lkIFNlbnRpbmVsTGlua2VkTGlzdDxU
LCBSYXdOb2RlPjo6cHVzaChUKiBub2RlKQpAQCAtMTYwLDggKzE1NSw4IEBAIHRlbXBsYXRlIDx0
eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUgdm9pZCBTZW50aW5lbExpbmtlZExp
c3Q8VCwgUmF3Tm9kCiAgICAgQVNTRVJUKCFub2RlLT5wcmV2KCkpOwogICAgIEFTU0VSVCghbm9k
ZS0+bmV4dCgpKTsKICAgICAKLSAgICBSYXdOb2RlKiBwcmV2ID0gJm1faGVhZFNlbnRpbmVsOwot
ICAgIFJhd05vZGUqIG5leHQgPSBtX2hlYWRTZW50aW5lbC5uZXh0KCk7CisgICAgUmF3Tm9kZSog
cHJldiA9ICZtX3NlbnRpbmVsOworICAgIFJhd05vZGUqIG5leHQgPSBtX3NlbnRpbmVsLm5leHQo
KTsKIAogICAgIG5vZGUtPnNldFByZXYocHJldik7CiAgICAgbm9kZS0+c2V0TmV4dChuZXh0KTsK
QEAgLTE3Niw4ICsxNzEsOCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9k
ZT4gaW5saW5lIHZvaWQgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZAogICAgIEFTU0VSVCgh
bm9kZS0+cHJldigpKTsKICAgICBBU1NFUlQoIW5vZGUtPm5leHQoKSk7CiAgICAgCi0gICAgUmF3
Tm9kZSogcHJldiA9IG1fdGFpbFNlbnRpbmVsLnByZXYoKTsKLSAgICBSYXdOb2RlKiBuZXh0ID0g
Jm1fdGFpbFNlbnRpbmVsOworICAgIFJhd05vZGUqIHByZXYgPSBtX3NlbnRpbmVsLnByZXYoKTsK
KyAgICBSYXdOb2RlKiBuZXh0ID0gJm1fc2VudGluZWw7CiAKICAgICBub2RlLT5zZXRQcmV2KHBy
ZXYpOwogICAgIG5vZGUtPnNldE5leHQobmV4dCk7CkBAIC0yNTgsMTUgKzI1MywxNSBAQCBpbmxp
bmUgdm9pZCBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46OnRha2VGcm9tKFNlbnRpbmVs
TGlua2VkTGlzdDxULCBSYXdObwogewogICAgIGlmIChvdGhlci5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAKLSAgICBtX3RhaWxTZW50aW5lbC5wcmV2KCktPnNldE5leHQob3RoZXIu
bV9oZWFkU2VudGluZWwubmV4dCgpKTsKLSAgICBvdGhlci5tX2hlYWRTZW50aW5lbC5uZXh0KCkt
PnNldFByZXYobV90YWlsU2VudGluZWwucHJldigpKTsKLSAgICAKLSAgICBtX3RhaWxTZW50aW5l
bC5zZXRQcmV2KG90aGVyLm1fdGFpbFNlbnRpbmVsLnByZXYoKSk7Ci0gICAgbV90YWlsU2VudGlu
ZWwucHJldigpLT5zZXROZXh0KCZtX3RhaWxTZW50aW5lbCk7CiAKLSAgICBvdGhlci5tX2hlYWRT
ZW50aW5lbC5zZXROZXh0KCZvdGhlci5tX3RhaWxTZW50aW5lbCk7Ci0gICAgb3RoZXIubV90YWls
U2VudGluZWwuc2V0UHJldigmb3RoZXIubV9oZWFkU2VudGluZWwpOworICAgIG1fc2VudGluZWwu
cHJldigpLT5zZXROZXh0KG90aGVyLm1fc2VudGluZWwubmV4dCgpKTsKKyAgICBvdGhlci5tX3Nl
bnRpbmVsLm5leHQoKS0+c2V0UHJldihtX3NlbnRpbmVsLnByZXYoKSk7CisKKyAgICBtX3NlbnRp
bmVsLnNldFByZXYob3RoZXIubV9zZW50aW5lbC5wcmV2KCkpOworICAgIG1fc2VudGluZWwucHJl
digpLT5zZXROZXh0KCZtX3NlbnRpbmVsKTsKKworICAgIG90aGVyLm1fc2VudGluZWwuc2V0TmV4
dCgmb3RoZXIubV9zZW50aW5lbCk7CisgICAgb3RoZXIubV9zZW50aW5lbC5zZXRQcmV2KCZvdGhl
ci5tX3NlbnRpbmVsKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0ODNlZmMyOGFhZDM1NTQzNmZh
YmUxNDFkNzY1ODcwOGEwM2Y0YTQzLi5lNTg1MzdkNDQ2ZjVhYmU4OTNmNzdmN2VkNTUwZjE3NDhm
MWY2YTA3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTEtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxz
IG91dCBvZiBDb2RlQmxvY2s6OkpJVERhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMzQxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgU2VudGluZWxMaW5rZWRMaXN0LgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtlZExpc3QuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRlc3ROb2RlOjpUZXN0Tm9kZSk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpUZXN0Tm9kZTo6dmFsdWUgY29uc3QpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisKIDIwMjEtMTEtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW2ExMXldIEFkZCBpbXBsZW1lbnRhdGlvbiBv
ZiBpbWFnZSBpbnRlcmZhY2Ugd2hlbiBidWlsZGluZyB3aXRoIEFUU1BJCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
TWFrZUxpc3RzLnR4dAppbmRleCBlOWQyZDFkMWVkNGJhZGZkOTFjMjkxMjY0NTU2MTViYzZmNDI4
NThmLi5mY2M5ZmZjNjEyZjZmOTAxN2Q2NDhkNjVmNTMwZTVmNjYzODg1NmU2IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTg1LDYgKzg1LDcgQEAgc2V0KFRlc3RXVEZfU09VUkNF
UwogICAgIFRlc3RzL1dURi9TYXR1cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAKICAgICBU
ZXN0cy9XVEYvU2NvcGUuY3BwCiAgICAgVGVzdHMvV1RGL1Njb3BlZExhbWJkYS5jcHAKKyAgICBU
ZXN0cy9XVEYvU2VudGluZWxMaW5rZWRMaXN0LmNwcAogICAgIFRlc3RzL1dURi9TZXRGb3JTY29w
ZS5jcHAKICAgICBUZXN0cy9XVEYvU3Bhbi5jcHAKICAgICBUZXN0cy9XVEYvU3RkTGliRXh0cmFz
LmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NjVjN2U3Y2FlYTA4OGU2NWRjYTg2N2M5
NDA1YWQ4NDk4MzdkNDY1Li5jNDllMGQyYTEwMGUyMGRhMDE5OWE1ZmU2ODZkMzBmZjY4YTM0YmUw
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTg0LDYgKzk4NCw3IEBACiAJCUUzREVBODEx
MUYwQTU4OTAwMENCQzJFOCAvKiBUaHJlYWRHcm91cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0RFQTgxMDFGMEE1ODgwMDBDQkMyRTggLyogVGhy
ZWFkR3JvdXAuY3BwICovOyB9OwogCQlFM0VGQjAyRjI1NTA2NTAzMDAzQzJGOTYgLyogU3lzdGVt
QmVlcC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
RUZCMDJFMjU1MDY1MDMwMDNDMkY5NiAvKiBTeXN0ZW1CZWVwLm1tICovOyB9OwogCQlFM0Y4QUI5
MjI0MUFCOUNFMDAzRTJBN0UgLyogQWNjZXNzaWJpbGl0eVJlbW90ZVVJQXBwLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGOEFCOTEyNDFBQjlDRTAw
M0UyQTdFIC8qIEFjY2Vzc2liaWxpdHlSZW1vdGVVSUFwcC5tbSAqLzsgfTsKKwkJRTNGQ0ZCN0Yy
NzRCNzBENTAwMEU2QjY5IC8qIFNlbnRpbmVsTGlua2VkTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZDRkI3RTI3NEI3MEQ1MDAwRTZCNjkg
LyogU2VudGluZWxMaW5rZWRMaXN0LmNwcCAqLzsgfTsKIAkJRTUwMzZGNzgyMTFCQzI1NDAwQkZE
QkUyIC8qIGNvbG9yLWRyb3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTAzNkY3NzIxMUJDMjI4MDBCRkRCRTIgLyogY29sb3ItZHJv
cC5odG1sICovOyB9OwogCQlFNTIwQTM2QjI1QUZCNzZDMDA1MjZDQjkgLyogV0tXZWJWaWV3VGl0
bGViYXJTZXBhcmF0b3JUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1MjBBMzZBMjVBRkI3NkMwMDUyNkNCOSAvKiBXS1dlYlZpZXdUaXRsZWJh
clNlcGFyYXRvclRlc3RzLm1tICovOyB9OwogCQlFNTg5MTgzQzI1MkJDOTBBMDA0MURFRDUgLyog
RGF0ZVRpbWVJbnB1dHNBY2Nlc3NvcnlWaWV3VGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTg5MTgzQjI1MkJDOTBBMDA0MURFRDUgLyogRGF0
ZVRpbWVJbnB1dHNBY2Nlc3NvcnlWaWV3VGVzdHMubW0gKi87IH07CkBAIC0yODk1LDYgKzI4OTYs
NyBAQAogCQlFM0RFQTgxMDFGMEE1ODgwMDBDQkMyRTggLyogVGhyZWFkR3JvdXAuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkR3JvdXAuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGQjAyRTI1NTA2NTAzMDAzQzJGOTYgLyogU3lzdGVt
QmVlcC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN5c3RlbUJlZXAubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzRjhBQjkxMjQxQUI5Q0UwMDNFMkE3RSAvKiBBY2Nlc3NpYmls
aXR5UmVtb3RlVUlBcHAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5UmVt
b3RlVUlBcHAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkNGQjdFMjc0Qjcw
RDUwMDBFNkI2OSAvKiBTZW50aW5lbExpbmtlZExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2VudGluZWxMaW5rZWRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwMDE5MzAxQUNFOUI1QzAwMUIwQTJBIC8qIEJsb29tRmlsdGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb29tRmlsdGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5MDI5NjcxNEUyRTNBNDAwMkJFREQxIC8q
IFR5cGluZ1N0eWxlQ3Jhc2gubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBUeXBpbmdTdHlsZUNyYXNoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NEE3NTdEMzE3OEFFQTVCMDBCNUQ3QTQgLyogRGVxdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGVxdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDUwNCw2ICs0NTA2LDcg
QEAKIAkJCQkxNEYzQjExMjE1RTQ1RUFCMDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpY09w
ZXJhdGlvbnMuY3BwICovLAogCQkJCTFBMzUyNEFDMUQ2M0E0RkIwMDMxNzI5QiAvKiBTY29wZS5j
cHAgKi8sCiAJCQkJREM2OUFBNjIxQ0Y3N0M2NTAwQzYyNzJGIC8qIFNjb3BlZExhbWJkYS5jcHAg
Ki8sCisJCQkJRTNGQ0ZCN0UyNzRCNzBENTAwMEU2QjY5IC8qIFNlbnRpbmVsTGlua2VkTGlzdC5j
cHAgKi8sCiAJCQkJMEJDRDg1NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFNldEZvclNjb3BlLmNwcCAq
LywKIAkJCQlDRDUzOTNDOTE3NTdCQUM0MDBDMDcxMjMgLyogU0hBMS5jcHAgKi8sCiAJCQkJRTM5
NTNGOTUxRjJDRjMyMTAwQTc2QTJFIC8qIFNpZ25hbHMuY3BwICovLApAQCAtNTI4Myw2ICs1Mjg2
LDcgQEAKIAkJCQk3QzgzREYyNjFEMEE1OTBDMDBGRUJDRjMgLyogU2F0dXJhdGVkQXJpdGhtZXRp
Y09wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzNTI0QUUxRDYzQTRGQjAwMzE3
MjlCIC8qIFNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERjEyMUQwQTU5MEMwMEZF
QkNGMyAvKiBTY29wZWRMYW1iZGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTNGQ0ZCN0YyNzRC
NzBENTAwMEU2QjY5IC8qIFNlbnRpbmVsTGlua2VkTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzREYzRDFEMEE1OTBDMDBGRUJDRjMgLyogU2V0Rm9yU2NvcGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0M4M0RGMkExRDBBNTkwQzAwRkVCQ0YzIC8qIFNIQTEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTM3M0Q3OTExRjJDRjM1MjAwQzZGQUFGIC8qIFNpZ25hbHMuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5l
bExpbmtlZExpc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2VudGluZWxM
aW5rZWRMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGI1ZWFkOTQwNjE3ZThhOTAyZmE4NzRjNmFkY2E3
N2UxZGQ0MzFjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU2VudGluZWxMaW5rZWRMaXN0LmNwcApAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlIDx3dGYvU2VudGluZWxMaW5rZWRMaXN0Lmg+CisKKyNpbmNsdWRlIDx3dGYvQmFnLmg+
CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY2xhc3MgVGVzdE5vZGUgOiBwdWJsaWMg
QmFzaWNSYXdTZW50aW5lbE5vZGU8VGVzdE5vZGU+IHsKK3B1YmxpYzoKKyAgICBUZXN0Tm9kZShp
bnQgdmFsdWUpCisgICAgICAgIDogbV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgfQorCisgICAg
aW50IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIGlu
dCBtX3ZhbHVlIHsgMCB9OworfTsKKworVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBCYXNp
YykKK3sKKyAgICBCYWc8VGVzdE5vZGU+IGJhZzsKKyAgICBTZW50aW5lbExpbmtlZExpc3Q8VGVz
dE5vZGU+IGxpc3Q7CisgICAgRVhQRUNUX1RSVUUobGlzdC5pc0VtcHR5KCkpOworCisgICAgYXV0
byogZmlyc3QgPSBiYWcuYWRkKDApOworICAgIGxpc3QucHVzaChmaXJzdCk7CisgICAgRVhQRUNU
X0VRKGxpc3QuYmVnaW4oKSwgZmlyc3QpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPnZh
bHVlKCksIDApOworCisgICAgYXV0byogc2Vjb25kID0gYmFnLmFkZCgxKTsKKyAgICBsaXN0LnB1
c2goc2Vjb25kKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLCBzZWNvbmQpOworICAgIEVY
UEVDVF9FUShsaXN0LmJlZ2luKCktPnZhbHVlKCksIDEpOworICAgIEVYUEVDVF9FUShsaXN0LmJl
Z2luKCktPm5leHQoKSwgZmlyc3QpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQo
KS0+dmFsdWUoKSwgMCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0
KCksIGxpc3QuZW5kKCkpOworCisgICAgYXV0byogdGhpcmQgPSBiYWcuYWRkKDIpOworICAgIGZp
cnN0LT5wcmVwZW5kKHRoaXJkKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLCBzZWNvbmQp
OworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPnZhbHVlKCksIDEpOworICAgIEVYUEVDVF9F
UShsaXN0LmJlZ2luKCktPm5leHQoKSwgdGhpcmQpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2lu
KCktPm5leHQoKS0+dmFsdWUoKSwgMik7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4
dCgpLT5uZXh0KCksIGZpcnN0KTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCkt
Pm5leHQoKS0+dmFsdWUoKSwgMCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgp
LT5uZXh0KCktPm5leHQoKSwgbGlzdC5lbmQoKSk7CisKKyAgICBhdXRvKiBmb3VydGggPSBiYWcu
YWRkKDMpOworICAgIGZpcnN0LT5hcHBlbmQoZm91cnRoKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5i
ZWdpbigpLCBzZWNvbmQpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPnZhbHVlKCksIDEp
OworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKSwgdGhpcmQpOworICAgIEVYUEVD
VF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+dmFsdWUoKSwgMik7CisgICAgRVhQRUNUX0VRKGxp
c3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0KCksIGZpcnN0KTsKKyAgICBFWFBFQ1RfRVEobGlzdC5i
ZWdpbigpLT5uZXh0KCktPm5leHQoKS0+dmFsdWUoKSwgMCk7CisgICAgRVhQRUNUX0VRKGxpc3Qu
YmVnaW4oKS0+bmV4dCgpLT5uZXh0KCktPm5leHQoKSwgZm91cnRoKTsKKyAgICBFWFBFQ1RfRVEo
bGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKS0+bmV4dCgpLT52YWx1ZSgpLCAzKTsKKyAgICBF
WFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKS0+bmV4dCgpLT5uZXh0KCksIGxp
c3QuZW5kKCkpOworCisgICAgRVhQRUNUX1RSVUUoZmlyc3QtPmlzT25MaXN0KCkpOworICAgIEVY
UEVDVF9UUlVFKHNlY29uZC0+aXNPbkxpc3QoKSk7CisgICAgRVhQRUNUX1RSVUUodGhpcmQtPmlz
T25MaXN0KCkpOworICAgIEVYUEVDVF9UUlVFKGZvdXJ0aC0+aXNPbkxpc3QoKSk7CisKKyAgICBm
aXJzdC0+cmVtb3ZlKCk7CisgICAgc2Vjb25kLT5yZW1vdmUoKTsKKyAgICB0aGlyZC0+cmVtb3Zl
KCk7CisgICAgZm91cnRoLT5yZW1vdmUoKTsKKworICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0
eSgpKTsKK30KKworVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBSZW1vdmVBbGwpCit7Cisg
ICAgQmFnPFRlc3ROb2RlPiBiYWc7CisgICAgU2VudGluZWxMaW5rZWRMaXN0PFRlc3ROb2RlPiBs
aXN0OworICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKKworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCAxMDsgKytpKQorICAgICAgICBsaXN0LmFwcGVuZChiYWcuYWRkKGkpKTsK
KworICAgIHVuc2lnbmVkIGkgPSAwOworICAgIHdoaWxlICghbGlzdC5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgYXV0byogbm9kZSA9IGxpc3QuYmVnaW4oKTsKKyAgICAgICAgRVhQRUNUX0VRKG5vZGUt
PnZhbHVlKCksIGkrKyk7CisgICAgICAgIG5vZGUtPnJlbW92ZSgpOworICAgIH0KK30KKworVEVT
VChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBUYWtlRnJvbSkKK3sKKyAgICBCYWc8VGVzdE5vZGU+
IGJhZzsKKyAgICBTZW50aW5lbExpbmtlZExpc3Q8VGVzdE5vZGU+IGxpc3Q7CisgICAgU2VudGlu
ZWxMaW5rZWRMaXN0PFRlc3ROb2RlPiBmcm9tOworICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0
eSgpKTsKKyAgICBFWFBFQ1RfVFJVRShmcm9tLmlzRW1wdHkoKSk7CisKKyAgICBsaXN0LnRha2VG
cm9tKGZyb20pOworICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1Rf
VFJVRShmcm9tLmlzRW1wdHkoKSk7CisKKyAgICBsaXN0LmFwcGVuZChiYWcuYWRkKDApKTsKKyAg
ICBsaXN0LnRha2VGcm9tKGZyb20pOworICAgIEVYUEVDVF9UUlVFKCFsaXN0LmlzRW1wdHkoKSk7
CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+dmFsdWUoKSwgMCk7CisgICAgRVhQRUNUX1RS
VUUoZnJvbS5pc0VtcHR5KCkpOworCisgICAgZnJvbS5hcHBlbmQoYmFnLmFkZCgxKSk7CisgICAg
ZnJvbS5hcHBlbmQoYmFnLmFkZCgyKSk7CisgICAgRVhQRUNUX1RSVUUoIWxpc3QuaXNFbXB0eSgp
KTsKKyAgICBFWFBFQ1RfVFJVRSghZnJvbS5pc0VtcHR5KCkpOworICAgIGxpc3QudGFrZUZyb20o
ZnJvbSk7CisgICAgRVhQRUNUX1RSVUUoZnJvbS5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9FUShs
aXN0LmJlZ2luKCktPnZhbHVlKCksIDApOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5l
eHQoKS0+dmFsdWUoKSwgMSk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5u
ZXh0KCktPnZhbHVlKCksIDIpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+
bmV4dCgpLT5uZXh0KCksIGxpc3QuZW5kKCkpOworfQorCitURVNUKFdURl9TZW50aW5lbExpbmtl
ZExpc3QsIEZvckVhY2gpCit7CisgICAgQmFnPFRlc3ROb2RlPiBiYWc7CisgICAgU2VudGluZWxM
aW5rZWRMaXN0PFRlc3ROb2RlPiBsaXN0OworICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgp
KTsKKworICAgIGJvb2wgZXhlY3V0ZWQgPSBmYWxzZTsKKyAgICBsaXN0LmZvckVhY2goWyZdKGF1
dG8qKSB7CisgICAgICAgIGV4ZWN1dGVkID0gdHJ1ZTsKKyAgICB9KTsKKyAgICBFWFBFQ1RfRkFM
U0UoZXhlY3V0ZWQpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwOyArK2kpCisg
ICAgICAgIGxpc3QuYXBwZW5kKGJhZy5hZGQoaSkpOworCisgICAgdW5zaWduZWQgaSA9IDA7Cisg
ICAgbGlzdC5mb3JFYWNoKFsmXShhdXRvKiBub2RlKSB7CisgICAgICAgIEVYUEVDVF9FUShub2Rl
LT52YWx1ZSgpLCBpKyspOworICAgIH0pOworICAgIEVYUEVDVF9FUShpLCAxMCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444947</attachid>
            <date>2021-11-21 23:28:06 -0800</date>
            <delta_ts>2021-11-21 23:57:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233415-20211122022805.patch</filename>
            <type>text/plain</type>
            <size>19386</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NjZjM2JhMzBlNTNjOTNkMzgwNzcwOGE0ZTk3YTdkMjMwODZiZDUxLi4yOGVmNzRjYjAzMWQ4Nzc2
YWI2M2FkYWM0ZTc3MmUwZTgzZmRlMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMS0xMS0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1vdmUgbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMgb3V0IG9m
IENvZGVCbG9jazo6SklURGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtX2luY29taW5nUG9seW1vcnBoaWNDYWxscyBm
cm9tIENvZGVCbG9jazo6SklURGF0YSB0byBDb2RlQmxvY2sgc2luY2UgaXQgaXMgbm93IHVzZWQK
KyAgICAgICAgaW4gTExJbnQgdG9vIGlmIEpJVCBpcyBlbmFibGVkLiBUbyBrZWVwIENvZGVCbG9j
ayBzbWFsbCwgdGhpcyBwYXRjaCBzaHJpbmtzIHNpemVvZihTZW50aW5lbExpbmtlZExpc3QpLgor
CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjpsaW5rSW5jb21pbmdQb2x5bW9ycGhpY0NhbGwpOgorICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OnVubGlua0luY29taW5nQ2FsbHMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5o
OgorCiAyMDIxLTExLTIwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gTW92ZSBSZXBhdGNoWFhYIGZyb20gaml0IHRvIGJ5dGVjb2RlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVh
YjNiMjBkYTVmNDFhMjYwMTM4NDhjOTViMmViNTZmMzFjZDE3ODEuLjhjM2VmNjhkMTFlNWVhNDVm
NTM0NzdmZTE2MTkyMWUwMDE4Mzg5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMTEtMjEg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBNb3Zl
IG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzIG91dCBvZiBDb2RlQmxvY2s6OkpJVERhdGEKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQxNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc2l6ZW9m
KFNlbnRpbmVsTGlua2VkTGlzdCkgc21hbGwuIFdlIGRvIG5vdCBuZWVkIHRvIGhhdmUgdHdvIHNl
bnRpbmVsIGZvciB0aGUgbGlzdC4KKworICAgICAgICAqIHd0Zi9TZW50aW5lbExpbmtlZExpc3Qu
aDoKKyAgICAgICAgKFdURjo6QmFzaWNSYXdTZW50aW5lbE5vZGU6OkJhc2ljUmF3U2VudGluZWxO
b2RlKToKKyAgICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0OjpTZW50aW5lbExpbmtlZExp
c3QpOgorICAgICAgICAoV1RGOjpSYXdOb2RlPjo6YmVnaW4pOgorICAgICAgICAoV1RGOjpSYXdO
b2RlPjo6ZW5kKToKKyAgICAgICAgKFdURjo6UmF3Tm9kZT46OnB1c2gpOgorICAgICAgICAoV1RG
OjpSYXdOb2RlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6UmF3Tm9kZT46OnRha2VGcm9tKToK
KyAgICAgICAgKFdURjo6UmF3Tm9kZT46OlNlbnRpbmVsTGlua2VkTGlzdCk6IERlbGV0ZWQuCisK
IDIwMjEtMTEtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW01vZGVsXSBhZGQgYXVkaW8gc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCBiZmUxODY3OGU3NWQ0MTMzMzUwOTI4NWIwNDgwNGNj
YjYyZmYwNDRmLi5hZDI1MzIzNDI0Y2M1ZDg3NWM0ODUyZmM3MWI0NjYzNTU2YmVhYzJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMjEzNCwx
MCArMjEzNCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpzaHJpbmtUb0ZpdChjb25zdCBDb25jdXJyZW50
SlNMb2NrZXImLCBTaHJpbmtNb2RlIHNocmlua01vZGUpCiB2b2lkIENvZGVCbG9jazo6bGlua0lu
Y29taW5nUG9seW1vcnBoaWNDYWxsKENhbGxGcmFtZSogY2FsbGVyRnJhbWUsIFBvbHltb3JwaGlj
Q2FsbE5vZGUqIGluY29taW5nKQogewogICAgIG5vdGljZUluY29taW5nQ2FsbChjYWxsZXJGcmFt
ZSk7Ci0gICAgewotICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0g
ICAgICAgIGVuc3VyZUpJVERhdGEobG9ja2VyKS5tX2luY29taW5nUG9seW1vcnBoaWNDYWxscy5w
dXNoKGluY29taW5nKTsKLSAgICB9CisgICAgbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMucHVz
aChpbmNvbWluZyk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIApAQCAtMjE0OSwxOSArMjE0
NiwxMiBAQCB2b2lkIENvZGVCbG9jazo6bGlua0luY29taW5nQ2FsbChDYWxsRnJhbWUqIGNhbGxl
ckZyYW1lLCBDYWxsTGlua0luZm8qIGluY29taW5nKQogCiB2b2lkIENvZGVCbG9jazo6dW5saW5r
SW5jb21pbmdDYWxscygpCiB7Ci0gICAgd2hpbGUgKG1faW5jb21pbmdDYWxscy5iZWdpbigpICE9
IG1faW5jb21pbmdDYWxscy5lbmQoKSkKKyAgICB3aGlsZSAoIW1faW5jb21pbmdDYWxscy5pc0Vt
cHR5KCkpCiAgICAgICAgIG1faW5jb21pbmdDYWxscy5iZWdpbigpLT51bmxpbmsodm0oKSk7CiAj
aWYgRU5BQkxFKEpJVCkKLSAgICBKSVREYXRhKiBqaXREYXRhID0gbnVsbHB0cjsKLSAgICB7Ci0g
ICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgaml0RGF0
YSA9IG1faml0RGF0YS5nZXQoKTsKLSAgICB9Ci0gICAgaWYgKGppdERhdGEpIHsKLSAgICAgICAg
d2hpbGUgKGppdERhdGEtPm1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzLmJlZ2luKCkgIT0gaml0
RGF0YS0+bV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMuZW5kKCkpCi0gICAgICAgICAgICBqaXRE
YXRhLT5tX2luY29taW5nUG9seW1vcnBoaWNDYWxscy5iZWdpbigpLT51bmxpbmsodm0oKSk7Ci0g
ICAgfQotI2VuZGlmIC8vIEVOQUJMRShKSVQpCisgICAgd2hpbGUgKCFtX2luY29taW5nUG9seW1v
cnBoaWNDYWxscy5pc0VtcHR5KCkpCisgICAgICAgIG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxz
LmJlZ2luKCktPnVubGluayh2bSgpKTsKKyNlbmRpZgogfQogCiBDb2RlQmxvY2sqIENvZGVCbG9j
azo6bmV3UmVwbGFjZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oCmluZGV4IGI3YWVhMjY3N2Y1ZTk0OTA4YWIzNTVmOTZiMGQyM2MzNzgyNDIwMTIuLmYy
NjZiYjQwYWQwOWJiN2YyYzE4YTdmZDUwZWY5N2Y4MzQxMTkzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTI2MCw3ICsyNjAsNiBAQCBjbGFzcyBD
b2RlQmxvY2sgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zm
c2V0c0V4dHJhY3RvcjsKIAogICAgICAgICBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4g
bV9zdHViSW5mb3M7Ci0gICAgICAgIFNlbnRpbmVsTGlua2VkTGlzdDxQb2x5bW9ycGhpY0NhbGxO
b2RlLCBQYWNrZWRSYXdTZW50aW5lbE5vZGU8UG9seW1vcnBoaWNDYWxsTm9kZT4+IG1faW5jb21p
bmdQb2x5bW9ycGhpY0NhbGxzOwogICAgICAgICBib29sIG1faGFzQ2FsbGVlU2F2ZVJlZ2lzdGVy
cyB7IGZhbHNlIH07CiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IG1fY2FsbGVlU2F2ZVJl
Z2lzdGVyczsKIApAQCAtOTU0LDYgKzk1Myw5IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBK
U0NlbGwgewogCiAgICAgY29uc3Qgdm9pZCogbV9pbnN0cnVjdGlvbnNSYXdQb2ludGVyIHsgbnVs
bHB0ciB9OwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxDYWxsTGlua0luZm8sIFBhY2tlZFJhd1Nl
bnRpbmVsTm9kZTxDYWxsTGlua0luZm8+PiBtX2luY29taW5nQ2FsbHM7CisjaWYgRU5BQkxFKEpJ
VCkKKyAgICBTZW50aW5lbExpbmtlZExpc3Q8UG9seW1vcnBoaWNDYWxsTm9kZSwgUGFja2VkUmF3
U2VudGluZWxOb2RlPFBvbHltb3JwaGljQ2FsbE5vZGU+PiBtX2luY29taW5nUG9seW1vcnBoaWND
YWxsczsKKyNlbmRpZgogICAgIFN0cnVjdHVyZVdhdGNocG9pbnRNYXAgbV9sbGludEdldEJ5SWRX
YXRjaHBvaW50TWFwOwogICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENvZGU7CiAjaWYgRU5BQkxF
KEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NlbnRpbmVsTGlua2VkTGlzdC5oIGIv
U291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmgKaW5kZXggNGY0MGYwZWMwN2E3ZmI2
Yzc1ZWRjZjMyY2NkYTg3YzBjOTlkNzVmOS4uZWViOTJjOGEwZTllNTVjY2RkNGM5YjVlMjQ4Njk0
Yjc3ZWNkNjNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0
LmgKKysrIGIvU291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmgKQEAgLTQ5LDYgKzQ5
LDggQEAgY2xhc3MgQmFzaWNSYXdTZW50aW5lbE5vZGUgewogICAgIHVzaW5nIFB0clRyYWl0cyA9
IHR5cGVuYW1lIFBhc3NlZFB0clRyYWl0czo6dGVtcGxhdGUgUmViaW5kVHJhaXRzPEJhc2ljUmF3
U2VudGluZWxOb2RlPjsKIAogICAgIEJhc2ljUmF3U2VudGluZWxOb2RlKFNlbnRpbmVsVGFnKQor
ICAgICAgICA6IG1fbmV4dCh0aGlzKQorICAgICAgICAsIG1fcHJldih0aGlzKQogICAgIHsKICAg
ICB9CiAgICAgCkBAIC04MCw3ICs4MiwxMCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgUmF3Tm9kZSA9IFQ+IGNsYXNzIFNlbnRpbmVsTGlua2VkTGlzdCB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBUKiBpdGVyYXRvcjsKIAotICAgIFNlbnRpbmVsTGlua2VkTGlzdCgpOworICAgIFNl
bnRpbmVsTGlua2VkTGlzdCgpCisgICAgICAgIDogbV9zZW50aW5lbChTZW50aW5lbCkKKyAgICB7
CisgICAgfQogCiAgICAgLy8gUHVzaGVzIHRvIHRoZSBmcm9udCBvZiB0aGUgbGlzdC4gSXQncyB0
b3RhbGx5IGJhY2t3YXJkcyBmcm9tIHdoYXQgeW91J2QgZXhwZWN0LgogICAgIHZvaWQgcHVzaChU
Kik7CkBAIC0xMTIsOCArMTE3LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJh
d05vZGUgPSBUPiBjbGFzcyBTZW50aW5lbExpbmtlZExpc3QgewogICAgIHZvaWQgdGFrZUZyb20o
U2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+Jik7CiAgICAgCiBwcml2YXRlOgotICAgIFJh
d05vZGUgbV9oZWFkU2VudGluZWw7Ci0gICAgUmF3Tm9kZSBtX3RhaWxTZW50aW5lbDsKKyAgICBS
YXdOb2RlIG1fc2VudGluZWw7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UHRyVHJhaXRzPiB2b2lkIEJhc2ljUmF3U2VudGluZWxOb2RlPFQsIFB0clRyYWl0cz46OnJlbW92
ZSgpCkBAIC0xMzMsMjUgKzEzNywxNCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UHRyVHJhaXRzPiB2b2lkIEJhc2ljUmF3U2VudGluZWxOb2RlPFQsIFB0clRyYWl0cwogICAgICAg
ICBzdGF0aWNfY2FzdDxUKj4odGhpcyksIHN0YXRpY19jYXN0PFQqPihub2RlKSk7CiB9CiAKLXRl
bXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUgU2VudGluZWxMaW5r
ZWRMaXN0PFQsIFJhd05vZGU+OjpTZW50aW5lbExpbmtlZExpc3QoKQotICAgIDogbV9oZWFkU2Vu
dGluZWwoU2VudGluZWwpCi0gICAgLCBtX3RhaWxTZW50aW5lbChTZW50aW5lbCkKLXsKLSAgICBt
X2hlYWRTZW50aW5lbC5zZXROZXh0KCZtX3RhaWxTZW50aW5lbCk7Ci0gICAgbV9oZWFkU2VudGlu
ZWwuc2V0UHJldihudWxscHRyKTsKLQotICAgIG1fdGFpbFNlbnRpbmVsLnNldFByZXYoJm1faGVh
ZFNlbnRpbmVsKTsKLSAgICBtX3RhaWxTZW50aW5lbC5zZXROZXh0KG51bGxwdHIpOwotfQotCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZT4gaW5saW5lIHR5cGVuYW1lIFNl
bnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6aXRlcmF0b3IgU2VudGluZWxMaW5rZWRMaXN0
PFQsIFJhd05vZGU+OjpiZWdpbigpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihtX2hl
YWRTZW50aW5lbC5uZXh0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9zZW50aW5l
bC5uZXh0KCkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZT4g
aW5saW5lIHR5cGVuYW1lIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6aXRlcmF0b3Ig
U2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+OjplbmQoKQogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxUKj4oJm1fdGFpbFNlbnRpbmVsKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+
KCZtX3NlbnRpbmVsKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJhd05v
ZGU+IGlubGluZSB2b2lkIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6cHVzaChUKiBu
b2RlKQpAQCAtMTYwLDggKzE1Myw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBS
YXdOb2RlPiBpbmxpbmUgdm9pZCBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kCiAgICAgQVNT
RVJUKCFub2RlLT5wcmV2KCkpOwogICAgIEFTU0VSVCghbm9kZS0+bmV4dCgpKTsKICAgICAKLSAg
ICBSYXdOb2RlKiBwcmV2ID0gJm1faGVhZFNlbnRpbmVsOwotICAgIFJhd05vZGUqIG5leHQgPSBt
X2hlYWRTZW50aW5lbC5uZXh0KCk7CisgICAgUmF3Tm9kZSogcHJldiA9ICZtX3NlbnRpbmVsOwor
ICAgIFJhd05vZGUqIG5leHQgPSBtX3NlbnRpbmVsLm5leHQoKTsKIAogICAgIG5vZGUtPnNldFBy
ZXYocHJldik7CiAgICAgbm9kZS0+c2V0TmV4dChuZXh0KTsKQEAgLTE3Niw4ICsxNjksOCBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZT4gaW5saW5lIHZvaWQgU2VudGlu
ZWxMaW5rZWRMaXN0PFQsIFJhd05vZAogICAgIEFTU0VSVCghbm9kZS0+cHJldigpKTsKICAgICBB
U1NFUlQoIW5vZGUtPm5leHQoKSk7CiAgICAgCi0gICAgUmF3Tm9kZSogcHJldiA9IG1fdGFpbFNl
bnRpbmVsLnByZXYoKTsKLSAgICBSYXdOb2RlKiBuZXh0ID0gJm1fdGFpbFNlbnRpbmVsOworICAg
IFJhd05vZGUqIHByZXYgPSBtX3NlbnRpbmVsLnByZXYoKTsKKyAgICBSYXdOb2RlKiBuZXh0ID0g
Jm1fc2VudGluZWw7CiAKICAgICBub2RlLT5zZXRQcmV2KHByZXYpOwogICAgIG5vZGUtPnNldE5l
eHQobmV4dCk7CkBAIC0yNTgsMTUgKzI1MSwxNSBAQCBpbmxpbmUgdm9pZCBTZW50aW5lbExpbmtl
ZExpc3Q8VCwgUmF3Tm9kZT46OnRha2VGcm9tKFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdObwog
ewogICAgIGlmIChvdGhlci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBt
X3RhaWxTZW50aW5lbC5wcmV2KCktPnNldE5leHQob3RoZXIubV9oZWFkU2VudGluZWwubmV4dCgp
KTsKLSAgICBvdGhlci5tX2hlYWRTZW50aW5lbC5uZXh0KCktPnNldFByZXYobV90YWlsU2VudGlu
ZWwucHJldigpKTsKLSAgICAKLSAgICBtX3RhaWxTZW50aW5lbC5zZXRQcmV2KG90aGVyLm1fdGFp
bFNlbnRpbmVsLnByZXYoKSk7Ci0gICAgbV90YWlsU2VudGluZWwucHJldigpLT5zZXROZXh0KCZt
X3RhaWxTZW50aW5lbCk7CiAKLSAgICBvdGhlci5tX2hlYWRTZW50aW5lbC5zZXROZXh0KCZvdGhl
ci5tX3RhaWxTZW50aW5lbCk7Ci0gICAgb3RoZXIubV90YWlsU2VudGluZWwuc2V0UHJldigmb3Ro
ZXIubV9oZWFkU2VudGluZWwpOworICAgIG1fc2VudGluZWwucHJldigpLT5zZXROZXh0KG90aGVy
Lm1fc2VudGluZWwubmV4dCgpKTsKKyAgICBvdGhlci5tX3NlbnRpbmVsLm5leHQoKS0+c2V0UHJl
dihtX3NlbnRpbmVsLnByZXYoKSk7CisKKyAgICBtX3NlbnRpbmVsLnNldFByZXYob3RoZXIubV9z
ZW50aW5lbC5wcmV2KCkpOworICAgIG1fc2VudGluZWwucHJldigpLT5zZXROZXh0KCZtX3NlbnRp
bmVsKTsKKworICAgIG90aGVyLm1fc2VudGluZWwuc2V0TmV4dCgmb3RoZXIubV9zZW50aW5lbCk7
CisgICAgb3RoZXIubV9zZW50aW5lbC5zZXRQcmV2KCZvdGhlci5tX3NlbnRpbmVsKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA0ODNlZmMyOGFhZDM1NTQzNmZhYmUxNDFkNzY1ODcwOGEwM2Y0YTQz
Li5lNTg1MzdkNDQ2ZjVhYmU4OTNmNzdmN2VkNTUwZjE3NDhmMWY2YTA3IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MjEtMTEtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBb
SlNDXSBNb3ZlIG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzIG91dCBvZiBDb2RlQmxvY2s6OkpJ
VERhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MzQxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCB0ZXN0cyBmb3IgU2VudGluZWxMaW5rZWRMaXN0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TZW50aW5lbExpbmtlZExpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRlc3ROb2RlOjpUZXN0Tm9kZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpUZXN0Tm9k
ZTo6dmFsdWUgY29uc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEt
MTEtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdW2ExMXldIEFkZCBpbXBsZW1lbnRhdGlvbiBvZiBpbWFnZSBpbnRlcmZhY2Ugd2hl
biBidWlsZGluZyB3aXRoIEFUU1BJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAppbmRleCBl
OWQyZDFkMWVkNGJhZGZkOTFjMjkxMjY0NTU2MTViYzZmNDI4NThmLi5mY2M5ZmZjNjEyZjZmOTAx
N2Q2NDhkNjVmNTMwZTVmNjYzODg1NmU2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQK
QEAgLTg1LDYgKzg1LDcgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwogICAgIFRlc3RzL1dURi9TYXR1
cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAKICAgICBUZXN0cy9XVEYvU2NvcGUuY3BwCiAg
ICAgVGVzdHMvV1RGL1Njb3BlZExhbWJkYS5jcHAKKyAgICBUZXN0cy9XVEYvU2VudGluZWxMaW5r
ZWRMaXN0LmNwcAogICAgIFRlc3RzL1dURi9TZXRGb3JTY29wZS5jcHAKICAgICBUZXN0cy9XVEYv
U3Bhbi5jcHAKICAgICBUZXN0cy9XVEYvU3RkTGliRXh0cmFzLmNwcApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA5NjVjN2U3Y2FlYTA4OGU2NWRjYTg2N2M5NDA1YWQ4NDk4MzdkNDY1Li5jNDll
MGQyYTEwMGUyMGRhMDE5OWE1ZmU2ODZkMzBmZjY4YTM0YmUwIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtOTg0LDYgKzk4NCw3IEBACiAJCUUzREVBODExMUYwQTU4OTAwMENCQzJFOCAvKiBU
aHJlYWRHcm91cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFM0RFQTgxMDFGMEE1ODgwMDBDQkMyRTggLyogVGhyZWFkR3JvdXAuY3BwICovOyB9Owog
CQlFM0VGQjAyRjI1NTA2NTAzMDAzQzJGOTYgLyogU3lzdGVtQmVlcC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRUZCMDJFMjU1MDY1MDMwMDNDMkY5
NiAvKiBTeXN0ZW1CZWVwLm1tICovOyB9OwogCQlFM0Y4QUI5MjI0MUFCOUNFMDAzRTJBN0UgLyog
QWNjZXNzaWJpbGl0eVJlbW90ZVVJQXBwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNGOEFCOTEyNDFBQjlDRTAwM0UyQTdFIC8qIEFjY2Vzc2liaWxp
dHlSZW1vdGVVSUFwcC5tbSAqLzsgfTsKKwkJRTNGQ0ZCN0YyNzRCNzBENTAwMEU2QjY5IC8qIFNl
bnRpbmVsTGlua2VkTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFM0ZDRkI3RTI3NEI3MEQ1MDAwRTZCNjkgLyogU2VudGluZWxMaW5rZWRMaXN0
LmNwcCAqLzsgfTsKIAkJRTUwMzZGNzgyMTFCQzI1NDAwQkZEQkUyIC8qIGNvbG9yLWRyb3AuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NTAzNkY3NzIxMUJDMjI4MDBCRkRCRTIgLyogY29sb3ItZHJvcC5odG1sICovOyB9OwogCQlFNTIw
QTM2QjI1QUZCNzZDMDA1MjZDQjkgLyogV0tXZWJWaWV3VGl0bGViYXJTZXBhcmF0b3JUZXN0cy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MjBBMzZB
MjVBRkI3NkMwMDUyNkNCOSAvKiBXS1dlYlZpZXdUaXRsZWJhclNlcGFyYXRvclRlc3RzLm1tICov
OyB9OwogCQlFNTg5MTgzQzI1MkJDOTBBMDA0MURFRDUgLyogRGF0ZVRpbWVJbnB1dHNBY2Nlc3Nv
cnlWaWV3VGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNTg5MTgzQjI1MkJDOTBBMDA0MURFRDUgLyogRGF0ZVRpbWVJbnB1dHNBY2Nlc3NvcnlW
aWV3VGVzdHMubW0gKi87IH07CkBAIC0yODk1LDYgKzI4OTYsNyBAQAogCQlFM0RFQTgxMDFGMEE1
ODgwMDBDQkMyRTggLyogVGhyZWFkR3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGhyZWFkR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFM0VGQjAyRTI1NTA2NTAzMDAzQzJGOTYgLyogU3lzdGVtQmVlcC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFN5c3RlbUJlZXAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
RjhBQjkxMjQxQUI5Q0UwMDNFMkE3RSAvKiBBY2Nlc3NpYmlsaXR5UmVtb3RlVUlBcHAubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5UmVtb3RlVUlBcHAubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkNGQjdFMjc0QjcwRDUwMDBFNkI2OSAvKiBTZW50aW5l
bExpbmtlZExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vu
dGluZWxMaW5rZWRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwMDE5
MzAxQUNFOUI1QzAwMUIwQTJBIC8qIEJsb29tRmlsdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEJsb29tRmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQ5MDI5NjcxNEUyRTNBNDAwMkJFREQxIC8qIFR5cGluZ1N0eWxlQ3Jhc2gubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUeXBpbmdTdHlsZUNyYXNo
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEE3NTdEMzE3OEFFQTVCMDBCNUQ3
QTQgLyogRGVxdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVxdWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDUwNCw2ICs0NTA2LDcgQEAKIAkJCQkxNEYzQjExMjE1RTQ1
RUFCMDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovLAogCQkJ
CTFBMzUyNEFDMUQ2M0E0RkIwMDMxNzI5QiAvKiBTY29wZS5jcHAgKi8sCiAJCQkJREM2OUFBNjIx
Q0Y3N0M2NTAwQzYyNzJGIC8qIFNjb3BlZExhbWJkYS5jcHAgKi8sCisJCQkJRTNGQ0ZCN0UyNzRC
NzBENTAwMEU2QjY5IC8qIFNlbnRpbmVsTGlua2VkTGlzdC5jcHAgKi8sCiAJCQkJMEJDRDg1Njkx
NDg1Qzk4QjAwRUEyMDAzIC8qIFNldEZvclNjb3BlLmNwcCAqLywKIAkJCQlDRDUzOTNDOTE3NTdC
QUM0MDBDMDcxMjMgLyogU0hBMS5jcHAgKi8sCiAJCQkJRTM5NTNGOTUxRjJDRjMyMTAwQTc2QTJF
IC8qIFNpZ25hbHMuY3BwICovLApAQCAtNTI4Myw2ICs1Mjg2LDcgQEAKIAkJCQk3QzgzREYyNjFE
MEE1OTBDMDBGRUJDRjMgLyogU2F0dXJhdGVkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEzNTI0QUUxRDYzQTRGQjAwMzE3MjlCIC8qIFNjb3BlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDODNERjEyMUQwQTU5MEMwMEZFQkNGMyAvKiBTY29wZWRMYW1iZGEu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTNGQ0ZCN0YyNzRCNzBENTAwMEU2QjY5IC8qIFNlbnRp
bmVsTGlua2VkTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREYzRDFEMEE1OTBDMDBG
RUJDRjMgLyogU2V0Rm9yU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGMkExRDBB
NTkwQzAwRkVCQ0YzIC8qIFNIQTEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM3M0Q3OTExRjJD
RjM1MjAwQzZGQUFGIC8qIFNpZ25hbHMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtlZExpc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2VudGluZWxMaW5rZWRMaXN0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41OGI1ZWFkOTQwNjE3ZThhOTAyZmE4NzRjNmFkY2E3N2UxZGQ0MzFjCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2VudGluZWxMaW5rZWRMaXN0
LmNwcApAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlIDx3dGYvU2VudGluZWxM
aW5rZWRMaXN0Lmg+CisKKyNpbmNsdWRlIDx3dGYvQmFnLmg+CisKK25hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKKworY2xhc3MgVGVzdE5vZGUgOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8
VGVzdE5vZGU+IHsKK3B1YmxpYzoKKyAgICBUZXN0Tm9kZShpbnQgdmFsdWUpCisgICAgICAgIDog
bV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgfQorCisgICAgaW50IHZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIGludCBtX3ZhbHVlIHsgMCB9OworfTsK
KworVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBCYXNpYykKK3sKKyAgICBCYWc8VGVzdE5v
ZGU+IGJhZzsKKyAgICBTZW50aW5lbExpbmtlZExpc3Q8VGVzdE5vZGU+IGxpc3Q7CisgICAgRVhQ
RUNUX1RSVUUobGlzdC5pc0VtcHR5KCkpOworCisgICAgYXV0byogZmlyc3QgPSBiYWcuYWRkKDAp
OworICAgIGxpc3QucHVzaChmaXJzdCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKSwgZmly
c3QpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPnZhbHVlKCksIDApOworCisgICAgYXV0
byogc2Vjb25kID0gYmFnLmFkZCgxKTsKKyAgICBsaXN0LnB1c2goc2Vjb25kKTsKKyAgICBFWFBF
Q1RfRVEobGlzdC5iZWdpbigpLCBzZWNvbmQpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCkt
PnZhbHVlKCksIDEpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKSwgZmlyc3Qp
OworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+dmFsdWUoKSwgMCk7CisgICAg
RVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0KCksIGxpc3QuZW5kKCkpOworCisg
ICAgYXV0byogdGhpcmQgPSBiYWcuYWRkKDIpOworICAgIGZpcnN0LT5wcmVwZW5kKHRoaXJkKTsK
KyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLCBzZWNvbmQpOworICAgIEVYUEVDVF9FUShsaXN0
LmJlZ2luKCktPnZhbHVlKCksIDEpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQo
KSwgdGhpcmQpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+dmFsdWUoKSwg
Mik7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0KCksIGZpcnN0KTsK
KyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKS0+dmFsdWUoKSwgMCk7
CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0KCktPm5leHQoKSwgbGlz
dC5lbmQoKSk7CisKKyAgICBhdXRvKiBmb3VydGggPSBiYWcuYWRkKDMpOworICAgIGZpcnN0LT5h
cHBlbmQoZm91cnRoKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLCBzZWNvbmQpOworICAg
IEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPnZhbHVlKCksIDEpOworICAgIEVYUEVDVF9FUShsaXN0
LmJlZ2luKCktPm5leHQoKSwgdGhpcmQpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5l
eHQoKS0+dmFsdWUoKSwgMik7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5u
ZXh0KCksIGZpcnN0KTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQo
KS0+dmFsdWUoKSwgMCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0
KCktPm5leHQoKSwgZm91cnRoKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCkt
Pm5leHQoKS0+bmV4dCgpLT52YWx1ZSgpLCAzKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigp
LT5uZXh0KCktPm5leHQoKS0+bmV4dCgpLT5uZXh0KCksIGxpc3QuZW5kKCkpOworCisgICAgRVhQ
RUNUX1RSVUUoZmlyc3QtPmlzT25MaXN0KCkpOworICAgIEVYUEVDVF9UUlVFKHNlY29uZC0+aXNP
bkxpc3QoKSk7CisgICAgRVhQRUNUX1RSVUUodGhpcmQtPmlzT25MaXN0KCkpOworICAgIEVYUEVD
VF9UUlVFKGZvdXJ0aC0+aXNPbkxpc3QoKSk7CisKKyAgICBmaXJzdC0+cmVtb3ZlKCk7CisgICAg
c2Vjb25kLT5yZW1vdmUoKTsKKyAgICB0aGlyZC0+cmVtb3ZlKCk7CisgICAgZm91cnRoLT5yZW1v
dmUoKTsKKworICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKK30KKworVEVTVChXVEZf
U2VudGluZWxMaW5rZWRMaXN0LCBSZW1vdmVBbGwpCit7CisgICAgQmFnPFRlc3ROb2RlPiBiYWc7
CisgICAgU2VudGluZWxMaW5rZWRMaXN0PFRlc3ROb2RlPiBsaXN0OworICAgIEVYUEVDVF9UUlVF
KGxpc3QuaXNFbXB0eSgpKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDsgKytp
KQorICAgICAgICBsaXN0LmFwcGVuZChiYWcuYWRkKGkpKTsKKworICAgIHVuc2lnbmVkIGkgPSAw
OworICAgIHdoaWxlICghbGlzdC5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byogbm9kZSA9IGxp
c3QuYmVnaW4oKTsKKyAgICAgICAgRVhQRUNUX0VRKG5vZGUtPnZhbHVlKCksIGkrKyk7CisgICAg
ICAgIG5vZGUtPnJlbW92ZSgpOworICAgIH0KK30KKworVEVTVChXVEZfU2VudGluZWxMaW5rZWRM
aXN0LCBUYWtlRnJvbSkKK3sKKyAgICBCYWc8VGVzdE5vZGU+IGJhZzsKKyAgICBTZW50aW5lbExp
bmtlZExpc3Q8VGVzdE5vZGU+IGxpc3Q7CisgICAgU2VudGluZWxMaW5rZWRMaXN0PFRlc3ROb2Rl
PiBmcm9tOworICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfVFJV
RShmcm9tLmlzRW1wdHkoKSk7CisKKyAgICBsaXN0LnRha2VGcm9tKGZyb20pOworICAgIEVYUEVD
VF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfVFJVRShmcm9tLmlzRW1wdHkoKSk7
CisKKyAgICBsaXN0LmFwcGVuZChiYWcuYWRkKDApKTsKKyAgICBsaXN0LnRha2VGcm9tKGZyb20p
OworICAgIEVYUEVDVF9UUlVFKCFsaXN0LmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0VRKGxpc3Qu
YmVnaW4oKS0+dmFsdWUoKSwgMCk7CisgICAgRVhQRUNUX1RSVUUoZnJvbS5pc0VtcHR5KCkpOwor
CisgICAgZnJvbS5hcHBlbmQoYmFnLmFkZCgxKSk7CisgICAgZnJvbS5hcHBlbmQoYmFnLmFkZCgy
KSk7CisgICAgRVhQRUNUX1RSVUUoIWxpc3QuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfVFJVRSgh
ZnJvbS5pc0VtcHR5KCkpOworICAgIGxpc3QudGFrZUZyb20oZnJvbSk7CisgICAgRVhQRUNUX1RS
VUUoZnJvbS5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPnZhbHVlKCks
IDApOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+dmFsdWUoKSwgMSk7Cisg
ICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0KCktPnZhbHVlKCksIDIpOwor
ICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+bmV4dCgpLT5uZXh0KCksIGxpc3Qu
ZW5kKCkpOworfQorCitURVNUKFdURl9TZW50aW5lbExpbmtlZExpc3QsIEZvckVhY2gpCit7Cisg
ICAgQmFnPFRlc3ROb2RlPiBiYWc7CisgICAgU2VudGluZWxMaW5rZWRMaXN0PFRlc3ROb2RlPiBs
aXN0OworICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKKworICAgIGJvb2wgZXhlY3V0
ZWQgPSBmYWxzZTsKKyAgICBsaXN0LmZvckVhY2goWyZdKGF1dG8qKSB7CisgICAgICAgIGV4ZWN1
dGVkID0gdHJ1ZTsKKyAgICB9KTsKKyAgICBFWFBFQ1RfRkFMU0UoZXhlY3V0ZWQpOworCisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwOyArK2kpCisgICAgICAgIGxpc3QuYXBwZW5kKGJh
Zy5hZGQoaSkpOworCisgICAgdW5zaWduZWQgaSA9IDA7CisgICAgbGlzdC5mb3JFYWNoKFsmXShh
dXRvKiBub2RlKSB7CisgICAgICAgIEVYUEVDVF9FUShub2RlLT52YWx1ZSgpLCBpKyspOworICAg
IH0pOworICAgIEVYUEVDVF9FUShpLCAxMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkK
</data>
<flag name="commit-queue"
          id="470076"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444949</attachid>
            <date>2021-11-21 23:53:26 -0800</date>
            <delta_ts>2021-11-29 10:01:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233415-20211122025324.patch</filename>
            <type>text/plain</type>
            <size>19140</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NjZjM2JhMzBlNTNjOTNkMzgwNzcwOGE0ZTk3YTdkMjMwODZiZDUxLi4yOGVmNzRjYjAzMWQ4Nzc2
YWI2M2FkYWM0ZTc3MmUwZTgzZmRlMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMS0xMS0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1vdmUgbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMgb3V0IG9m
IENvZGVCbG9jazo6SklURGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtX2luY29taW5nUG9seW1vcnBoaWNDYWxscyBm
cm9tIENvZGVCbG9jazo6SklURGF0YSB0byBDb2RlQmxvY2sgc2luY2UgaXQgaXMgbm93IHVzZWQK
KyAgICAgICAgaW4gTExJbnQgdG9vIGlmIEpJVCBpcyBlbmFibGVkLiBUbyBrZWVwIENvZGVCbG9j
ayBzbWFsbCwgdGhpcyBwYXRjaCBzaHJpbmtzIHNpemVvZihTZW50aW5lbExpbmtlZExpc3QpLgor
CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjpsaW5rSW5jb21pbmdQb2x5bW9ycGhpY0NhbGwpOgorICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OnVubGlua0luY29taW5nQ2FsbHMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5o
OgorCiAyMDIxLTExLTIwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gTW92ZSBSZXBhdGNoWFhYIGZyb20gaml0IHRvIGJ5dGVjb2RlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVh
YjNiMjBkYTVmNDFhMjYwMTM4NDhjOTViMmViNTZmMzFjZDE3ODEuLjk2YjczNjI1MTEzNWI3ZDM0
NDk4MThjYjNiNDJmNGU5MTUxMGZkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTEtMjEg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBNb3Zl
IG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzIG91dCBvZiBDb2RlQmxvY2s6OkpJVERhdGEKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQxNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc2l6ZW9m
KFNlbnRpbmVsTGlua2VkTGlzdCkgc21hbGwuIFdlIGRvIG5vdCBuZWVkIHRvIGhhdmUgdHdvIHNl
bnRpbmVsIGZvciB0aGUgbGlzdC4KKworICAgICAgICAqIHd0Zi9TZW50aW5lbExpbmtlZExpc3Qu
aDoKKyAgICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0OjpTZW50aW5lbExpbmtlZExpc3Qp
OgorICAgICAgICAoV1RGOjpSYXdOb2RlPjo6YmVnaW4pOgorICAgICAgICAoV1RGOjpSYXdOb2Rl
Pjo6ZW5kKToKKyAgICAgICAgKFdURjo6UmF3Tm9kZT46OnB1c2gpOgorICAgICAgICAoV1RGOjpS
YXdOb2RlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6UmF3Tm9kZT46OnRha2VGcm9tKToKKyAg
ICAgICAgKFdURjo6UmF3Tm9kZT46OlNlbnRpbmVsTGlua2VkTGlzdCk6IERlbGV0ZWQuCisKIDIw
MjEtMTEtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W01vZGVsXSBhZGQgYXVkaW8gc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAppbmRleCBiZmUxODY3OGU3NWQ0MTMzMzUwOTI4NWIwNDgwNGNjYjYy
ZmYwNDRmLi5hZDI1MzIzNDI0Y2M1ZDg3NWM0ODUyZmM3MWI0NjYzNTU2YmVhYzJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMjEzNCwxMCAr
MjEzNCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpzaHJpbmtUb0ZpdChjb25zdCBDb25jdXJyZW50SlNM
b2NrZXImLCBTaHJpbmtNb2RlIHNocmlua01vZGUpCiB2b2lkIENvZGVCbG9jazo6bGlua0luY29t
aW5nUG9seW1vcnBoaWNDYWxsKENhbGxGcmFtZSogY2FsbGVyRnJhbWUsIFBvbHltb3JwaGljQ2Fs
bE5vZGUqIGluY29taW5nKQogewogICAgIG5vdGljZUluY29taW5nQ2FsbChjYWxsZXJGcmFtZSk7
Ci0gICAgewotICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAg
ICAgIGVuc3VyZUpJVERhdGEobG9ja2VyKS5tX2luY29taW5nUG9seW1vcnBoaWNDYWxscy5wdXNo
KGluY29taW5nKTsKLSAgICB9CisgICAgbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMucHVzaChp
bmNvbWluZyk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIApAQCAtMjE0OSwxOSArMjE0Niwx
MiBAQCB2b2lkIENvZGVCbG9jazo6bGlua0luY29taW5nQ2FsbChDYWxsRnJhbWUqIGNhbGxlckZy
YW1lLCBDYWxsTGlua0luZm8qIGluY29taW5nKQogCiB2b2lkIENvZGVCbG9jazo6dW5saW5rSW5j
b21pbmdDYWxscygpCiB7Ci0gICAgd2hpbGUgKG1faW5jb21pbmdDYWxscy5iZWdpbigpICE9IG1f
aW5jb21pbmdDYWxscy5lbmQoKSkKKyAgICB3aGlsZSAoIW1faW5jb21pbmdDYWxscy5pc0VtcHR5
KCkpCiAgICAgICAgIG1faW5jb21pbmdDYWxscy5iZWdpbigpLT51bmxpbmsodm0oKSk7CiAjaWYg
RU5BQkxFKEpJVCkKLSAgICBKSVREYXRhKiBqaXREYXRhID0gbnVsbHB0cjsKLSAgICB7Ci0gICAg
ICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgaml0RGF0YSA9
IG1faml0RGF0YS5nZXQoKTsKLSAgICB9Ci0gICAgaWYgKGppdERhdGEpIHsKLSAgICAgICAgd2hp
bGUgKGppdERhdGEtPm1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzLmJlZ2luKCkgIT0gaml0RGF0
YS0+bV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMuZW5kKCkpCi0gICAgICAgICAgICBqaXREYXRh
LT5tX2luY29taW5nUG9seW1vcnBoaWNDYWxscy5iZWdpbigpLT51bmxpbmsodm0oKSk7Ci0gICAg
fQotI2VuZGlmIC8vIEVOQUJMRShKSVQpCisgICAgd2hpbGUgKCFtX2luY29taW5nUG9seW1vcnBo
aWNDYWxscy5pc0VtcHR5KCkpCisgICAgICAgIG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzLmJl
Z2luKCktPnVubGluayh2bSgpKTsKKyNlbmRpZgogfQogCiBDb2RlQmxvY2sqIENvZGVCbG9jazo6
bmV3UmVwbGFjZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCmluZGV4IGI3YWVhMjY3N2Y1ZTk0OTA4YWIzNTVmOTZiMGQyM2MzNzgyNDIwMTIuLmYyNjZi
YjQwYWQwOWJiN2YyYzE4YTdmZDUwZWY5N2Y4MzQxMTkzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTI2MCw3ICsyNjAsNiBAQCBjbGFzcyBDb2Rl
QmxvY2sgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0
c0V4dHJhY3RvcjsKIAogICAgICAgICBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9z
dHViSW5mb3M7Ci0gICAgICAgIFNlbnRpbmVsTGlua2VkTGlzdDxQb2x5bW9ycGhpY0NhbGxOb2Rl
LCBQYWNrZWRSYXdTZW50aW5lbE5vZGU8UG9seW1vcnBoaWNDYWxsTm9kZT4+IG1faW5jb21pbmdQ
b2x5bW9ycGhpY0NhbGxzOwogICAgICAgICBib29sIG1faGFzQ2FsbGVlU2F2ZVJlZ2lzdGVycyB7
IGZhbHNlIH07CiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IG1fY2FsbGVlU2F2ZVJlZ2lz
dGVyczsKIApAQCAtOTU0LDYgKzk1Myw5IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBKU0Nl
bGwgewogCiAgICAgY29uc3Qgdm9pZCogbV9pbnN0cnVjdGlvbnNSYXdQb2ludGVyIHsgbnVsbHB0
ciB9OwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxDYWxsTGlua0luZm8sIFBhY2tlZFJhd1NlbnRp
bmVsTm9kZTxDYWxsTGlua0luZm8+PiBtX2luY29taW5nQ2FsbHM7CisjaWYgRU5BQkxFKEpJVCkK
KyAgICBTZW50aW5lbExpbmtlZExpc3Q8UG9seW1vcnBoaWNDYWxsTm9kZSwgUGFja2VkUmF3U2Vu
dGluZWxOb2RlPFBvbHltb3JwaGljQ2FsbE5vZGU+PiBtX2luY29taW5nUG9seW1vcnBoaWNDYWxs
czsKKyNlbmRpZgogICAgIFN0cnVjdHVyZVdhdGNocG9pbnRNYXAgbV9sbGludEdldEJ5SWRXYXRj
aHBvaW50TWFwOwogICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENvZGU7CiAjaWYgRU5BQkxFKEpJ
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NlbnRpbmVsTGlua2VkTGlzdC5oIGIvU291
cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmgKaW5kZXggNGY0MGYwZWMwN2E3ZmI2Yzc1
ZWRjZjMyY2NkYTg3YzBjOTlkNzVmOS4uMmViZDhjOGJjOTRjZDJjYTI2ZmNlOTg0ZGVjYWFiNmRh
MTE2MjEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmgK
KysrIGIvU291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmgKQEAgLTgwLDcgKzgwLDEy
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlID0gVD4gY2xhc3MgU2Vu
dGluZWxMaW5rZWRMaXN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFQqIGl0ZXJhdG9yOwogCi0g
ICAgU2VudGluZWxMaW5rZWRMaXN0KCk7CisgICAgU2VudGluZWxMaW5rZWRMaXN0KCkKKyAgICAg
ICAgOiBtX3NlbnRpbmVsKFNlbnRpbmVsKQorICAgIHsKKyAgICAgICAgbV9zZW50aW5lbC5zZXRQ
cmV2KCZtX3NlbnRpbmVsKTsKKyAgICAgICAgbV9zZW50aW5lbC5zZXROZXh0KCZtX3NlbnRpbmVs
KTsKKyAgICB9CiAKICAgICAvLyBQdXNoZXMgdG8gdGhlIGZyb250IG9mIHRoZSBsaXN0LiBJdCdz
IHRvdGFsbHkgYmFja3dhcmRzIGZyb20gd2hhdCB5b3UnZCBleHBlY3QuCiAgICAgdm9pZCBwdXNo
KFQqKTsKQEAgLTExMiw4ICsxMTcsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UmF3Tm9kZSA9IFQ+IGNsYXNzIFNlbnRpbmVsTGlua2VkTGlzdCB7CiAgICAgdm9pZCB0YWtlRnJv
bShTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT4mKTsKICAgICAKIHByaXZhdGU6Ci0gICAg
UmF3Tm9kZSBtX2hlYWRTZW50aW5lbDsKLSAgICBSYXdOb2RlIG1fdGFpbFNlbnRpbmVsOworICAg
IFJhd05vZGUgbV9zZW50aW5lbDsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBQdHJUcmFpdHM+IHZvaWQgQmFzaWNSYXdTZW50aW5lbE5vZGU8VCwgUHRyVHJhaXRzPjo6cmVt
b3ZlKCkKQEAgLTEzMywyNSArMTM3LDE0IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBQdHJUcmFpdHM+IHZvaWQgQmFzaWNSYXdTZW50aW5lbE5vZGU8VCwgUHRyVHJhaXRzCiAgICAg
ICAgIHN0YXRpY19jYXN0PFQqPih0aGlzKSwgc3RhdGljX2Nhc3Q8VCo+KG5vZGUpKTsKIH0KIAot
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJhd05vZGU+IGlubGluZSBTZW50aW5lbExp
bmtlZExpc3Q8VCwgUmF3Tm9kZT46OlNlbnRpbmVsTGlua2VkTGlzdCgpCi0gICAgOiBtX2hlYWRT
ZW50aW5lbChTZW50aW5lbCkKLSAgICAsIG1fdGFpbFNlbnRpbmVsKFNlbnRpbmVsKQotewotICAg
IG1faGVhZFNlbnRpbmVsLnNldE5leHQoJm1fdGFpbFNlbnRpbmVsKTsKLSAgICBtX2hlYWRTZW50
aW5lbC5zZXRQcmV2KG51bGxwdHIpOwotCi0gICAgbV90YWlsU2VudGluZWwuc2V0UHJldigmbV9o
ZWFkU2VudGluZWwpOwotICAgIG1fdGFpbFNlbnRpbmVsLnNldE5leHQobnVsbHB0cik7Ci19Ci0K
IHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUgdHlwZW5hbWUg
U2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+OjppdGVyYXRvciBTZW50aW5lbExpbmtlZExp
c3Q8VCwgUmF3Tm9kZT46OmJlZ2luKCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1f
aGVhZFNlbnRpbmVsLm5leHQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihtX3NlbnRp
bmVsLm5leHQoKSk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2Rl
PiBpbmxpbmUgdHlwZW5hbWUgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+OjppdGVyYXRv
ciBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46OmVuZCgpCiB7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PFQqPigmbV90YWlsU2VudGluZWwpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxU
Kj4oJm1fc2VudGluZWwpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3
Tm9kZT4gaW5saW5lIHZvaWQgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+OjpwdXNoKFQq
IG5vZGUpCkBAIC0xNjAsOCArMTUzLDggQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFJhd05vZGU+IGlubGluZSB2b2lkIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2QKICAgICBB
U1NFUlQoIW5vZGUtPnByZXYoKSk7CiAgICAgQVNTRVJUKCFub2RlLT5uZXh0KCkpOwogICAgIAot
ICAgIFJhd05vZGUqIHByZXYgPSAmbV9oZWFkU2VudGluZWw7Ci0gICAgUmF3Tm9kZSogbmV4dCA9
IG1faGVhZFNlbnRpbmVsLm5leHQoKTsKKyAgICBSYXdOb2RlKiBwcmV2ID0gJm1fc2VudGluZWw7
CisgICAgUmF3Tm9kZSogbmV4dCA9IG1fc2VudGluZWwubmV4dCgpOwogCiAgICAgbm9kZS0+c2V0
UHJldihwcmV2KTsKICAgICBub2RlLT5zZXROZXh0KG5leHQpOwpAQCAtMTc2LDggKzE2OSw4IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUgdm9pZCBTZW50
aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kCiAgICAgQVNTRVJUKCFub2RlLT5wcmV2KCkpOwogICAg
IEFTU0VSVCghbm9kZS0+bmV4dCgpKTsKICAgICAKLSAgICBSYXdOb2RlKiBwcmV2ID0gbV90YWls
U2VudGluZWwucHJldigpOwotICAgIFJhd05vZGUqIG5leHQgPSAmbV90YWlsU2VudGluZWw7Cisg
ICAgUmF3Tm9kZSogcHJldiA9IG1fc2VudGluZWwucHJldigpOworICAgIFJhd05vZGUqIG5leHQg
PSAmbV9zZW50aW5lbDsKIAogICAgIG5vZGUtPnNldFByZXYocHJldik7CiAgICAgbm9kZS0+c2V0
TmV4dChuZXh0KTsKQEAgLTI1OCwxNSArMjUxLDE1IEBAIGlubGluZSB2b2lkIFNlbnRpbmVsTGlu
a2VkTGlzdDxULCBSYXdOb2RlPjo6dGFrZUZyb20oU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05v
CiB7CiAgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAg
IG1fdGFpbFNlbnRpbmVsLnByZXYoKS0+c2V0TmV4dChvdGhlci5tX2hlYWRTZW50aW5lbC5uZXh0
KCkpOwotICAgIG90aGVyLm1faGVhZFNlbnRpbmVsLm5leHQoKS0+c2V0UHJldihtX3RhaWxTZW50
aW5lbC5wcmV2KCkpOwotICAgIAotICAgIG1fdGFpbFNlbnRpbmVsLnNldFByZXYob3RoZXIubV90
YWlsU2VudGluZWwucHJldigpKTsKLSAgICBtX3RhaWxTZW50aW5lbC5wcmV2KCktPnNldE5leHQo
Jm1fdGFpbFNlbnRpbmVsKTsKIAotICAgIG90aGVyLm1faGVhZFNlbnRpbmVsLnNldE5leHQoJm90
aGVyLm1fdGFpbFNlbnRpbmVsKTsKLSAgICBvdGhlci5tX3RhaWxTZW50aW5lbC5zZXRQcmV2KCZv
dGhlci5tX2hlYWRTZW50aW5lbCk7CisgICAgbV9zZW50aW5lbC5wcmV2KCktPnNldE5leHQob3Ro
ZXIubV9zZW50aW5lbC5uZXh0KCkpOworICAgIG90aGVyLm1fc2VudGluZWwubmV4dCgpLT5zZXRQ
cmV2KG1fc2VudGluZWwucHJldigpKTsKKworICAgIG1fc2VudGluZWwuc2V0UHJldihvdGhlci5t
X3NlbnRpbmVsLnByZXYoKSk7CisgICAgbV9zZW50aW5lbC5wcmV2KCktPnNldE5leHQoJm1fc2Vu
dGluZWwpOworCisgICAgb3RoZXIubV9zZW50aW5lbC5zZXROZXh0KCZvdGhlci5tX3NlbnRpbmVs
KTsKKyAgICBvdGhlci5tX3NlbnRpbmVsLnNldFByZXYoJm90aGVyLm1fc2VudGluZWwpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDQ4M2VmYzI4YWFkMzU1NDM2ZmFiZTE0MWQ3NjU4NzA4YTAzZjRh
NDMuLmU1ODUzN2Q0NDZmNWFiZTg5M2Y3N2Y3ZWQ1NTBmMTc0OGYxZjZhMDcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAyMS0xMS0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIE1vdmUgbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHMgb3V0IG9mIENvZGVCbG9jazo6
SklURGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMzNDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHRlc3RzIGZvciBTZW50aW5lbExpbmtlZExpc3QuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1NlbnRpbmVsTGlua2VkTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VGVzdE5vZGU6OlRlc3ROb2RlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRlc3RO
b2RlOjp2YWx1ZSBjb25zdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAy
MS0xMS0xOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS11bYTExeV0gQWRkIGltcGxlbWVudGF0aW9uIG9mIGltYWdlIGludGVyZmFjZSB3
aGVuIGJ1aWxkaW5nIHdpdGggQVRTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Q01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CmluZGV4
IGU5ZDJkMWQxZWQ0YmFkZmQ5MWMyOTEyNjQ1NTYxNWJjNmY0Mjg1OGYuLmZjYzlmZmM2MTJmNmY5
MDE3ZDY0OGQ2NWY1MzBlNWY2NjM4ODU2ZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4
dApAQCAtODUsNiArODUsNyBAQCBzZXQoVGVzdFdURl9TT1VSQ0VTCiAgICAgVGVzdHMvV1RGL1Nh
dHVyYXRlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcAogICAgIFRlc3RzL1dURi9TY29wZS5jcHAK
ICAgICBUZXN0cy9XVEYvU2NvcGVkTGFtYmRhLmNwcAorICAgIFRlc3RzL1dURi9TZW50aW5lbExp
bmtlZExpc3QuY3BwCiAgICAgVGVzdHMvV1RGL1NldEZvclNjb3BlLmNwcAogICAgIFRlc3RzL1dU
Ri9TcGFuLmNwcAogICAgIFRlc3RzL1dURi9TdGRMaWJFeHRyYXMuY3BwCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDk2NWM3ZTdjYWVhMDg4ZTY1ZGNhODY3Yzk0MDVhZDg0OTgzN2Q0NjUuLmM0
OWUwZDJhMTAwZTIwZGEwMTk5YTVmZTY4NmQzMGZmNjhhMzRiZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC05ODQsNiArOTg0LDcgQEAKIAkJRTNERUE4MTExRjBBNTg5MDAwQ0JDMkU4IC8q
IFRocmVhZEdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzREVBODEwMUYwQTU4ODAwMENCQzJFOCAvKiBUaHJlYWRHcm91cC5jcHAgKi87IH07
CiAJCUUzRUZCMDJGMjU1MDY1MDMwMDNDMkY5NiAvKiBTeXN0ZW1CZWVwLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFRkIwMkUyNTUwNjUwMzAwM0My
Rjk2IC8qIFN5c3RlbUJlZXAubW0gKi87IH07CiAJCUUzRjhBQjkyMjQxQUI5Q0UwMDNFMkE3RSAv
KiBBY2Nlc3NpYmlsaXR5UmVtb3RlVUlBcHAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFM0Y4QUI5MTI0MUFCOUNFMDAzRTJBN0UgLyogQWNjZXNzaWJp
bGl0eVJlbW90ZVVJQXBwLm1tICovOyB9OworCQlFM0ZDRkI3RjI3NEI3MEQ1MDAwRTZCNjkgLyog
U2VudGluZWxMaW5rZWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzRkNGQjdFMjc0QjcwRDUwMDBFNkI2OSAvKiBTZW50aW5lbExpbmtlZExp
c3QuY3BwICovOyB9OwogCQlFNTAzNkY3ODIxMUJDMjU0MDBCRkRCRTIgLyogY29sb3ItZHJvcC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU1MDM2Rjc3MjExQkMyMjgwMEJGREJFMiAvKiBjb2xvci1kcm9wLmh0bWwgKi87IH07CiAJCUU1
MjBBMzZCMjVBRkI3NkMwMDUyNkNCOSAvKiBXS1dlYlZpZXdUaXRsZWJhclNlcGFyYXRvclRlc3Rz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyMEEz
NkEyNUFGQjc2QzAwNTI2Q0I5IC8qIFdLV2ViVmlld1RpdGxlYmFyU2VwYXJhdG9yVGVzdHMubW0g
Ki87IH07CiAJCUU1ODkxODNDMjUyQkM5MEEwMDQxREVENSAvKiBEYXRlVGltZUlucHV0c0FjY2Vz
c29yeVZpZXdUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU1ODkxODNCMjUyQkM5MEEwMDQxREVENSAvKiBEYXRlVGltZUlucHV0c0FjY2Vzc29y
eVZpZXdUZXN0cy5tbSAqLzsgfTsKQEAgLTI4OTUsNiArMjg5Niw3IEBACiAJCUUzREVBODEwMUYw
QTU4ODAwMENCQzJFOCAvKiBUaHJlYWRHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUaHJlYWRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzRUZCMDJFMjU1MDY1MDMwMDNDMkY5NiAvKiBTeXN0ZW1CZWVwLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU3lzdGVtQmVlcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNGOEFCOTEyNDFBQjlDRTAwM0UyQTdFIC8qIEFjY2Vzc2liaWxpdHlSZW1vdGVVSUFwcC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlSZW1vdGVVSUFwcC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGQ0ZCN0UyNzRCNzBENTAwMEU2QjY5IC8qIFNlbnRp
bmVsTGlua2VkTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
ZW50aW5lbExpbmtlZExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDAw
MTkzMDFBQ0U5QjVDMDAxQjBBMkEgLyogQmxvb21GaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQmxvb21GaWx0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDkwMjk2NzE0RTJFM0E0MDAyQkVERDEgLyogVHlwaW5nU3R5bGVDcmFzaC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFR5cGluZ1N0eWxlQ3Jh
c2gubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QTc1N0QzMTc4QUVBNUIwMEI1
RDdBNCAvKiBEZXF1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXF1ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NTA0LDYgKzQ1MDYsNyBAQAogCQkJCTE0RjNCMTEyMTVF
NDVFQUIwMDIxMDA2OSAvKiBTYXR1cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgKi8sCiAJ
CQkJMUEzNTI0QUMxRDYzQTRGQjAwMzE3MjlCIC8qIFNjb3BlLmNwcCAqLywKIAkJCQlEQzY5QUE2
MjFDRjc3QzY1MDBDNjI3MkYgLyogU2NvcGVkTGFtYmRhLmNwcCAqLywKKwkJCQlFM0ZDRkI3RTI3
NEI3MEQ1MDAwRTZCNjkgLyogU2VudGluZWxMaW5rZWRMaXN0LmNwcCAqLywKIAkJCQkwQkNEODU2
OTE0ODVDOThCMDBFQTIwMDMgLyogU2V0Rm9yU2NvcGUuY3BwICovLAogCQkJCUNENTM5M0M5MTc1
N0JBQzQwMEMwNzEyMyAvKiBTSEExLmNwcCAqLywKIAkJCQlFMzk1M0Y5NTFGMkNGMzIxMDBBNzZB
MkUgLyogU2lnbmFscy5jcHAgKi8sCkBAIC01MjgzLDYgKzUyODYsNyBAQAogCQkJCTdDODNERjI2
MUQwQTU5MEMwMEZFQkNGMyAvKiBTYXR1cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTM1MjRBRTFENjNBNEZCMDAzMTcyOUIgLyogU2NvcGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGMTIxRDBBNTkwQzAwRkVCQ0YzIC8qIFNjb3BlZExhbWJk
YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0ZDRkI3RjI3NEI3MEQ1MDAwRTZCNjkgLyogU2Vu
dGluZWxMaW5rZWRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERjNEMUQwQTU5MEMw
MEZFQkNGMyAvKiBTZXRGb3JTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREYyQTFE
MEE1OTBDMDBGRUJDRjMgLyogU0hBMS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzczRDc5MTFG
MkNGMzUyMDBDNkZBQUYgLyogU2lnbmFscy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NlbnRpbmVsTGlua2VkTGlzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtlZExpc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM2NzJmNmQ2NzZhNDIzZGMzMDZhOTFhZmEwZDIyNDliMmExMzI5OWUKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtlZExp
c3QuY3BwCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9TZW50aW5l
bExpbmtlZExpc3QuaD4KKworI2luY2x1ZGUgPHd0Zi9CYWcuaD4KKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCitjbGFzcyBUZXN0Tm9kZSA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9k
ZTxUZXN0Tm9kZT4geworcHVibGljOgorICAgIFRlc3ROb2RlKGludCB2YWx1ZSkKKyAgICAgICAg
OiBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICBpbnQgdmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWUgeyAwIH07Cit9
OworCitURVNUKFdURl9TZW50aW5lbExpbmtlZExpc3QsIEJhc2ljKQoreworICAgIEJhZzxUZXN0
Tm9kZT4gYmFnOworICAgIFNlbnRpbmVsTGlua2VkTGlzdDxUZXN0Tm9kZT4gbGlzdDsKKyAgICBF
WFBFQ1RfVFJVRShsaXN0LmlzRW1wdHkoKSk7CisKKyAgICBhdXRvKiBmaXJzdCA9IGJhZy5hZGQo
MCk7CisgICAgbGlzdC5wdXNoKGZpcnN0KTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLCBm
aXJzdCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+dmFsdWUoKSwgMCk7CisKKyAgICBh
dXRvKiBzZWNvbmQgPSBiYWcuYWRkKDEpOworICAgIGxpc3QucHVzaChzZWNvbmQpOworICAgIEVY
UEVDVF9FUShsaXN0LmJlZ2luKCksIHNlY29uZCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4o
KS0+dmFsdWUoKSwgMSk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLCBmaXJz
dCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT52YWx1ZSgpLCAwKTsKKyAg
ICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKSwgbGlzdC5lbmQoKSk7CisK
KyAgICBhdXRvKiB0aGlyZCA9IGJhZy5hZGQoMik7CisgICAgZmlyc3QtPnByZXBlbmQodGhpcmQp
OworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCksIHNlY29uZCk7CisgICAgRVhQRUNUX0VRKGxp
c3QuYmVnaW4oKS0+dmFsdWUoKSwgMSk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4
dCgpLCB0aGlyZCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+bmV4dCgpLT52YWx1ZSgp
LCAyKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKSwgZmlyc3Qp
OworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+bmV4dCgpLT52YWx1ZSgpLCAw
KTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKS0+bmV4dCgpLCBs
aXN0LmVuZCgpKTsKKworICAgIGF1dG8qIGZvdXJ0aCA9IGJhZy5hZGQoMyk7CisgICAgZmlyc3Qt
PmFwcGVuZChmb3VydGgpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCksIHNlY29uZCk7Cisg
ICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+dmFsdWUoKSwgMSk7CisgICAgRVhQRUNUX0VRKGxp
c3QuYmVnaW4oKS0+bmV4dCgpLCB0aGlyZCk7CisgICAgRVhQRUNUX0VRKGxpc3QuYmVnaW4oKS0+
bmV4dCgpLT52YWx1ZSgpLCAyKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCkt
Pm5leHQoKSwgZmlyc3QpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+bmV4
dCgpLT52YWx1ZSgpLCAwKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPm5l
eHQoKS0+bmV4dCgpLCBmb3VydGgpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCktPm5leHQo
KS0+bmV4dCgpLT5uZXh0KCktPnZhbHVlKCksIDMpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2lu
KCktPm5leHQoKS0+bmV4dCgpLT5uZXh0KCktPm5leHQoKSwgbGlzdC5lbmQoKSk7CisKKyAgICBF
WFBFQ1RfVFJVRShmaXJzdC0+aXNPbkxpc3QoKSk7CisgICAgRVhQRUNUX1RSVUUoc2Vjb25kLT5p
c09uTGlzdCgpKTsKKyAgICBFWFBFQ1RfVFJVRSh0aGlyZC0+aXNPbkxpc3QoKSk7CisgICAgRVhQ
RUNUX1RSVUUoZm91cnRoLT5pc09uTGlzdCgpKTsKKworICAgIGZpcnN0LT5yZW1vdmUoKTsKKyAg
ICBzZWNvbmQtPnJlbW92ZSgpOworICAgIHRoaXJkLT5yZW1vdmUoKTsKKyAgICBmb3VydGgtPnJl
bW92ZSgpOworCisgICAgRVhQRUNUX1RSVUUobGlzdC5pc0VtcHR5KCkpOworfQorCitURVNUKFdU
Rl9TZW50aW5lbExpbmtlZExpc3QsIFJlbW92ZUFsbCkKK3sKKyAgICBCYWc8VGVzdE5vZGU+IGJh
ZzsKKyAgICBTZW50aW5lbExpbmtlZExpc3Q8VGVzdE5vZGU+IGxpc3Q7CisgICAgRVhQRUNUX1RS
VUUobGlzdC5pc0VtcHR5KCkpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKQor
ICAgICAgICBsaXN0LmFwcGVuZChiYWcuYWRkKGkpKTsKKworICAgIGludCBpID0gMDsKKyAgICB3
aGlsZSAoIWxpc3QuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8qIG5vZGUgPSBsaXN0LmJlZ2lu
KCk7CisgICAgICAgIEVYUEVDVF9FUShub2RlLT52YWx1ZSgpLCBpKyspOworICAgICAgICBub2Rl
LT5yZW1vdmUoKTsKKyAgICB9Cit9CisKK1RFU1QoV1RGX1NlbnRpbmVsTGlua2VkTGlzdCwgVGFr
ZUZyb20pCit7CisgICAgQmFnPFRlc3ROb2RlPiBiYWc7CisgICAgU2VudGluZWxMaW5rZWRMaXN0
PFRlc3ROb2RlPiBsaXN0OworICAgIFNlbnRpbmVsTGlua2VkTGlzdDxUZXN0Tm9kZT4gZnJvbTsK
KyAgICBFWFBFQ1RfVFJVRShsaXN0LmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX1RSVUUoZnJvbS5p
c0VtcHR5KCkpOworCisgICAgbGlzdC50YWtlRnJvbShmcm9tKTsKKyAgICBFWFBFQ1RfVFJVRShs
aXN0LmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX1RSVUUoZnJvbS5pc0VtcHR5KCkpOworCisgICAg
bGlzdC5hcHBlbmQoYmFnLmFkZCgwKSk7CisgICAgbGlzdC50YWtlRnJvbShmcm9tKTsKKyAgICBF
WFBFQ1RfVFJVRSghbGlzdC5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9FUShsaXN0LmJlZ2luKCkt
PnZhbHVlKCksIDApOworICAgIEVYUEVDVF9UUlVFKGZyb20uaXNFbXB0eSgpKTsKKworICAgIGZy
b20uYXBwZW5kKGJhZy5hZGQoMSkpOworICAgIGZyb20uYXBwZW5kKGJhZy5hZGQoMikpOworICAg
IEVYUEVDVF9UUlVFKCFsaXN0LmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX1RSVUUoIWZyb20uaXNF
bXB0eSgpKTsKKyAgICBsaXN0LnRha2VGcm9tKGZyb20pOworICAgIEVYUEVDVF9UUlVFKGZyb20u
aXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT52YWx1ZSgpLCAwKTsKKyAg
ICBFWFBFQ1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPnZhbHVlKCksIDEpOworICAgIEVYUEVD
VF9FUShsaXN0LmJlZ2luKCktPm5leHQoKS0+bmV4dCgpLT52YWx1ZSgpLCAyKTsKKyAgICBFWFBF
Q1RfRVEobGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKS0+bmV4dCgpLCBsaXN0LmVuZCgpKTsK
K30KKworVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBGb3JFYWNoKQoreworICAgIEJhZzxU
ZXN0Tm9kZT4gYmFnOworICAgIFNlbnRpbmVsTGlua2VkTGlzdDxUZXN0Tm9kZT4gbGlzdDsKKyAg
ICBFWFBFQ1RfVFJVRShsaXN0LmlzRW1wdHkoKSk7CisKKyAgICBib29sIGV4ZWN1dGVkID0gZmFs
c2U7CisgICAgbGlzdC5mb3JFYWNoKFsmXShhdXRvKikgeworICAgICAgICBleGVjdXRlZCA9IHRy
dWU7CisgICAgfSk7CisgICAgRVhQRUNUX0ZBTFNFKGV4ZWN1dGVkKTsKKworICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgMTA7ICsraSkKKyAgICAgICAgbGlzdC5hcHBlbmQoYmFnLmFkZChpKSk7CisK
KyAgICBpbnQgaSA9IDA7CisgICAgbGlzdC5mb3JFYWNoKFsmXShhdXRvKiBub2RlKSB7CisgICAg
ICAgIEVYUEVDVF9FUShub2RlLT52YWx1ZSgpLCBpKyspOworICAgIH0pOworICAgIEVYUEVDVF9F
UShpLCAxMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="review"
          id="470075"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>