<?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>236180</bug_id>
          
          <creation_ts>2022-02-05 11:23:41 -0800</creation_ts>
          <short_desc>[WTF] Make Bitmap constexpr friendly</short_desc>
          <delta_ts>2022-02-06 11:25:45 -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>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1837773</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-05 11:23:41 -0800</bug_when>
    <thetext>[WTF] Make Bitmap constexpr friendly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837774</commentid>
    <comment_count>1</comment_count>
      <attachid>450992</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-05 11:27:50 -0800</bug_when>
    <thetext>Created attachment 450992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837775</commentid>
    <comment_count>2</comment_count>
      <attachid>450993</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-05 11:31:04 -0800</bug_when>
    <thetext>Created attachment 450993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837785</commentid>
    <comment_count>3</comment_count>
      <attachid>450993</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-02-05 13:17:52 -0800</bug_when>
    <thetext>Comment on attachment 450993
Patch

Lots of red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837821</commentid>
    <comment_count>4</comment_count>
      <attachid>450993</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-05 16:28:27 -0800</bug_when>
    <thetext>Comment on attachment 450993
Patch

Looks great. I will review after you fix TestWebKitAPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837858</commentid>
    <comment_count>5</comment_count>
      <attachid>451026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-06 00:56:13 -0800</bug_when>
    <thetext>Created attachment 451026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837905</commentid>
    <comment_count>6</comment_count>
      <attachid>451026</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-06 10:45:19 -0800</bug_when>
    <thetext>Comment on attachment 451026
Patch

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

&gt; Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp:547
&gt; +    static constexpr Bitmap&lt;256&gt; doNotUnescapeWhenDecodingURI = makeCharacterBitmap(

I would have written auto in these places instead of repeating the type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837914</commentid>
    <comment_count>7</comment_count>
      <attachid>451026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-06 11:15:43 -0800</bug_when>
    <thetext>Comment on attachment 451026
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp:547
&gt;&gt; +    static constexpr Bitmap&lt;256&gt; doNotUnescapeWhenDecodingURI = makeCharacterBitmap(
&gt; 
&gt; I would have written auto in these places instead of repeating the type.

Changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837915</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-06 11:17:36 -0800</bug_when>
    <thetext>Committed r289172 (246868@trunk): &lt;https://commits.webkit.org/246868@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837916</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-06 11:18:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88546704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837918</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-06 11:25:45 -0800</bug_when>
    <thetext>Committed r289173 (246869@trunk): &lt;https://commits.webkit.org/246869@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450992</attachid>
            <date>2022-02-05 11:27:50 -0800</date>
            <delta_ts>2022-02-05 11:31:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236180-20220205112749.patch</filename>
            <type>text/plain</type>
            <size>15173</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YjJlNTI2M2Q3ODYwM2VhYjEyYTlmNDJmNDE4ZWMzZGYxNGIyODg4Li45ODBmOTQyMDI2NDgxNDhk
OTc0NDM5MWIxY2JlOTViN2QyMWM0YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMi0wMi0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtXVEZdIE1ha2UgQml0bWFwIGNvbnN0ZXhwciBmcmllbmRseQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTgwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtl
cyBCaXRtYXAgbW9yZSBjb25zdGV4cHIgZnJpZW5kbHkgc28gdGhhdCBKU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucydzCisgICAgICAgIGZ1bmN0aW9ucyBjYW4gY29tcGlsZSBCaXRtYXAgYXMgY29uc3Rl
eHByLCB3aGljaCBhdm9pZHMgcG9zc2libGUgcmFjZSBjb25kaXRpb24uCisKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6bWFrZUNo
YXJhY3RlckJpdG1hcCk6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisKIDIwMjItMDItMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBUaHJlYWQgc3VzcGVuZCBhbmQgcmVzdW1lIHNob3VsZCB0YWtlIGEgZ2xvYmFsIGxvY2sg
dG8gYXZvaWQgZGVhZGxvY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMGRjYjdkNDEzZDgzZjFlNThlMGJlNmQ2MWIyMDMwOTk5
MDQ0MjhhMi4uMjE4YWVkNjZhYTI2ODQ2OTBmNjc1YjY0ZDQ5Mjg5YTdhMTNmYjYyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAyMi0wMi0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXVEZdIE1ha2UgQml0bWFwIGNvbnN0ZXhwciBmcmllbmRseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTgwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXR0YWNoIGNvbnN0
ZXhwciB0byBjb25zdHJ1Y3RvciBhbmQgbWV0aG9kcyBpZiBpdCBpcyBwb3NzaWJsZS4KKworICAg
ICAgICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAgICAgKFdURjo6V29yZFR5cGU+OjpzZXQpOgorICAg
ICAgICAoV1RGOjpXb3JkVHlwZT46OmNsZWFyKToKKyAgICAgICAgKFdURjo6V29yZFR5cGU+Ojpp
bnZlcnQpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OmlzRW1wdHkgY29uc3QpOgorICAgICAg
ICAoV1RGOjpXb3JkVHlwZT46OmlzRnVsbCBjb25zdCk6CisgICAgICAgIChXVEY6OldvcmRUeXBl
Pjo6Qml0bWFwKTogRGVsZXRlZC4KKwogMjAyMi0wMi0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFRocmVhZCBzdXNwZW5kIGFuZCByZXN1bWUgc2hvdWxk
IHRha2UgYSBnbG9iYWwgbG9jayB0byBhdm9pZCBkZWFkbG9jawpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmlu
ZGV4IGFkMTkzNzVkZTQxZjI4NTkzNTUwN2YwNDhiYTE3MDNhY2M0MTU4ZDQuLjhmMGZkZDhlMjRh
MDg2ZGNhMTgyNTMzMmJkNWZlM2EzNTM5ZGQ0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTUy
LDcgKzUyLDcgQEAgY29uc3QgQVNDSUlMaXRlcmFsIE9iamVjdFByb3RvQ2FsbGVkT25OdWxsT3JV
bmRlZmluZWRFcnJvciB7ICJPYmplY3QucHJvdG90eXBlLl8KIGNvbnN0IEFTQ0lJTGl0ZXJhbCBS
ZXN0cmljdGVkUHJvcGVydHlBY2Nlc3NFcnJvciB7ICInYXJndW1lbnRzJywgJ2NhbGxlZScsIGFu
ZCAnY2FsbGVyJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gdGhpcyBjb250ZXh0LiJfcyB9OwogCiB0
ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJzQ291bnQ+Ci1zdGF0aWMgQml0bWFwPDI1Nj4gbWFr
ZUNoYXJhY3RlckJpdG1hcChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyc0NvdW50
XSkKK3N0YXRpYyBjb25zdGV4cHIgQml0bWFwPDI1Nj4gbWFrZUNoYXJhY3RlckJpdG1hcChjb25z
dCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyc0NvdW50XSkKIHsKICAgICBzdGF0aWNfYXNz
ZXJ0KGNoYXJhY3RlcnNDb3VudCA+IDAsICJTaW5jZSBzdHJpbmcgbGl0ZXJhbCBpcyBudWxsIHRl
cm1pbmF0ZWQsIGNoYXJhY3RlckNvdW50IGlzIGFsd2F5cyBsYXJnZXIgdGhhbiAwIik7CiAgICAg
Qml0bWFwPDI1Nj4gYml0bWFwOwpAQCAtNTQ0LDcgKzU0NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jUGFyc2VGbG9hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhCiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2RlVVJJLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHN0YXRpYyBjb25zdCBCaXRtYXA8MjU2PiBkb05vdFVuZXNjYXBlV2hlbkRlY29kaW5nVVJJ
ID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKKyAgICBzdGF0aWMgY29uc3RleHByIEJpdG1hcDwyNTY+
IGRvTm90VW5lc2NhcGVXaGVuRGVjb2RpbmdVUkkgPSBtYWtlQ2hhcmFjdGVyQml0bWFwKAogICAg
ICAgICAiIyQmKywvOjs9P0AiCiAgICAgKTsKIApAQCAtNTUzLDEzICs1NTMsMTMgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNEZWNvZGVVUkksIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWwKIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNE
ZWNvZGVVUklDb21wb25lbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgc3RhdGljIGNvbnN0IEJpdG1hcDwyNTY+IGVtcHR5Qml0
bWFwOworICAgIHN0YXRpYyBjb25zdGV4cHIgQml0bWFwPDI1Nj4gZW1wdHlCaXRtYXA7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShkZWNvZGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFy
Z3VtZW50KDApLCBlbXB0eUJpdG1hcCwgdHJ1ZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY0VuY29kZVVSSSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBzdGF0aWMgY29uc3QgQml0bWFwPDI1Nj4g
ZG9Ob3RFc2NhcGVXaGVuRW5jb2RpbmdVUkkgPSBtYWtlQ2hhcmFjdGVyQml0bWFwKAorICAgIHN0
YXRpYyBjb25zdGV4cHIgQml0bWFwPDI1Nj4gZG9Ob3RFc2NhcGVXaGVuRW5jb2RpbmdVUkkgPSBt
YWtlQ2hhcmFjdGVyQml0bWFwKAogICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoi
CiAgICAgICAgICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIKICAgICAgICAgIjAxMjM0NTY3
ODkiCkBAIC01NzAsNyArNTcwLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1
bmNFbmNvZGVVUkksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKIAogSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNFbmNvZGVVUklDb21wb25lbnQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgc3Rh
dGljIGNvbnN0IEJpdG1hcDwyNTY+IGRvTm90RXNjYXBlV2hlbkVuY29kaW5nVVJJQ29tcG9uZW50
ID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKKyAgICBzdGF0aWMgY29uc3RleHByIEJpdG1hcDwyNTY+
IGRvTm90RXNjYXBlV2hlbkVuY29kaW5nVVJJQ29tcG9uZW50ID0gbWFrZUNoYXJhY3RlckJpdG1h
cCgKICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgogICAgICAgICAiYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiCiAgICAgICAgICIwMTIzNDU2Nzg5IgpAQCAtNTgyLDcgKzU4
Miw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9u
ZW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Z2xvYmFsRnVuY0VzY2FwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvU3RyaW5nVmll
dyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIFsmXSAoU3RyaW5nVmlldyB2
aWV3KSAtPiBKU1N0cmluZyogewotICAgICAgICBzdGF0aWMgY29uc3QgQml0bWFwPDI1Nj4gZG9O
b3RFc2NhcGUgPSBtYWtlQ2hhcmFjdGVyQml0bWFwKAorICAgICAgICBzdGF0aWMgY29uc3RleHBy
IEJpdG1hcDwyNTY+IGRvTm90RXNjYXBlID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKICAgICAgICAg
ICAgICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKICAgICAgICAgICAgICJhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIKICAgICAgICAgICAgICIwMTIzNDU2Nzg5IgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQml0bWFwLmggYi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAppbmRleCA0
MWNhNjZhYTk5ZDg3N2NjYTY3NDhmMTIxYjUxYzdlMmQ0ZDQ5YWM3Li5iOGY2NjFhNjZlZTkzZTU5
MDcxYTU2NjE2Y2Q0NDNmYmQ5YTIyNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CaXRt
YXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFz
cyBCaXRtYXAgZmluYWwgewogICAgIHVzaW5nIFdvcmRUeXBlID0gUGFzc2VkV29yZFR5cGU7CiAK
ICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihXb3JkVHlwZSkgPD0gc2l6ZW9mKFVDUFVSZWdpc3Rl
ciksICJXb3JkVHlwZSBtdXN0IG5vdCBiZSBiaWdnZXIgdGhhbiB0aGUgQ1BVIGF0b21pYyB3b3Jk
IHNpemUiKTsKLSAgICBjb25zdGV4cHIgQml0bWFwKCk7CisgICAgY29uc3RleHByIEJpdG1hcCgp
ID0gZGVmYXVsdDsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHNpemUoKQogICAgIHsK
QEAgLTUwLDI4ICs1MCwyOCBAQCBjbGFzcyBCaXRtYXAgZmluYWwgewogICAgIH0KIAogICAgIGJv
b2wgZ2V0KHNpemVfdCwgRGVwZW5kZW5jeSA9IERlcGVuZGVuY3koKSkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXQoc2l6ZV90KTsKLSAgICB2b2lkIHNldChzaXplX3QsIGJvb2wpOwotICAgIGJvb2wgdGVz
dEFuZFNldChzaXplX3QpOwotICAgIGJvb2wgdGVzdEFuZENsZWFyKHNpemVfdCk7CisgICAgY29u
c3RleHByIHZvaWQgc2V0KHNpemVfdCk7CisgICAgY29uc3RleHByIHZvaWQgc2V0KHNpemVfdCwg
Ym9vbCk7CisgICAgY29uc3RleHByIGJvb2wgdGVzdEFuZFNldChzaXplX3QpOworICAgIGNvbnN0
ZXhwciBib29sIHRlc3RBbmRDbGVhcihzaXplX3QpOwogICAgIGJvb2wgY29uY3VycmVudFRlc3RB
bmRTZXQoc2l6ZV90LCBEZXBlbmRlbmN5ID0gRGVwZW5kZW5jeSgpKTsKICAgICBib29sIGNvbmN1
cnJlbnRUZXN0QW5kQ2xlYXIoc2l6ZV90LCBEZXBlbmRlbmN5ID0gRGVwZW5kZW5jeSgpKTsKLSAg
ICBzaXplX3QgbmV4dFBvc3NpYmx5VW5zZXQoc2l6ZV90KSBjb25zdDsKLSAgICB2b2lkIGNsZWFy
KHNpemVfdCk7CisgICAgY29uc3RleHByIHNpemVfdCBuZXh0UG9zc2libHlVbnNldChzaXplX3Qp
IGNvbnN0OworICAgIGNvbnN0ZXhwciB2b2lkIGNsZWFyKHNpemVfdCk7CiAgICAgdm9pZCBjbGVh
ckFsbCgpOwotICAgIHZvaWQgaW52ZXJ0KCk7CisgICAgY29uc3RleHByIHZvaWQgaW52ZXJ0KCk7
CiAgICAgaW50NjRfdCBmaW5kUnVuT2ZaZXJvcyhzaXplX3QgcnVuTGVuZ3RoKSBjb25zdDsKICAg
ICBzaXplX3QgY291bnQoc2l6ZV90IHN0YXJ0ID0gMCkgY29uc3Q7Ci0gICAgYm9vbCBpc0VtcHR5
KCkgY29uc3Q7Ci0gICAgYm9vbCBpc0Z1bGwoKSBjb25zdDsKKyAgICBjb25zdGV4cHIgYm9vbCBp
c0VtcHR5KCkgY29uc3Q7CisgICAgY29uc3RleHByIGJvb2wgaXNGdWxsKCkgY29uc3Q7CiAgICAg
Ci0gICAgdm9pZCBtZXJnZShjb25zdCBCaXRtYXAmKTsKLSAgICB2b2lkIGZpbHRlcihjb25zdCBC
aXRtYXAmKTsKLSAgICB2b2lkIGV4Y2x1ZGUoY29uc3QgQml0bWFwJik7CisgICAgY29uc3RleHBy
IHZvaWQgbWVyZ2UoY29uc3QgQml0bWFwJik7CisgICAgY29uc3RleHByIHZvaWQgZmlsdGVyKGNv
bnN0IEJpdG1hcCYpOworICAgIGNvbnN0ZXhwciB2b2lkIGV4Y2x1ZGUoY29uc3QgQml0bWFwJik7
CiAKICAgICB2b2lkIGNvbmN1cnJlbnRGaWx0ZXIoY29uc3QgQml0bWFwJik7CiAgICAgCi0gICAg
Ym9vbCBzdWJzdW1lcyhjb25zdCBCaXRtYXAmKSBjb25zdDsKKyAgICBjb25zdGV4cHIgYm9vbCBz
dWJzdW1lcyhjb25zdCBCaXRtYXAmKSBjb25zdDsKICAgICAKICAgICAvLyBJZiB0aGUgbGFtYmRh
IHJldHVybnMgYW4gSXRlcmF0aW9uU3RhdHVzLCB3ZSB1c2UgaXQuIFRoZSBsYW1iZGEgY2FuIGFs
c28gcmV0dXJuCiAgICAgLy8gdm9pZCwgaW4gd2hpY2ggY2FzZSwgd2UnbGwgaXRlcmF0ZSBldmVy
eSBzZXQgYml0LgpAQCAtMTIyLDE3ICsxMjIsMTcgQEAgY2xhc3MgQml0bWFwIGZpbmFsIHsKICAg
ICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBmaW5kQml0
KDAsIHRydWUpKTsgfQogICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9y
KCp0aGlzLCBiaXRtYXBTaXplKTsgfQogICAgIAotICAgIHZvaWQgbWVyZ2VBbmRDbGVhcihCaXRt
YXAmKTsKLSAgICB2b2lkIHNldEFuZENsZWFyKEJpdG1hcCYpOworICAgIGNvbnN0ZXhwciB2b2lk
IG1lcmdlQW5kQ2xlYXIoQml0bWFwJik7CisgICAgY29uc3RleHByIHZvaWQgc2V0QW5kQ2xlYXIo
Qml0bWFwJik7CiAKICAgICB2b2lkIHNldEVhY2hOdGhCaXQoc2l6ZV90IG4sIHNpemVfdCBzdGFy
dCA9IDAsIHNpemVfdCBlbmQgPSBiaXRtYXBTaXplKTsKIAotICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBCaXRtYXAmKSBjb25zdDsKLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQml0bWFwJikg
Y29uc3Q7CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBCaXRtYXAmKSBjb25z
dDsKKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEJpdG1hcCYpIGNvbnN0Owog
Ci0gICAgdm9pZCBvcGVyYXRvcnw9KGNvbnN0IEJpdG1hcCYpOwotICAgIHZvaWQgb3BlcmF0b3Im
PShjb25zdCBCaXRtYXAmKTsKLSAgICB2b2lkIG9wZXJhdG9yXj0oY29uc3QgQml0bWFwJik7Cisg
ICAgY29uc3RleHByIHZvaWQgb3BlcmF0b3J8PShjb25zdCBCaXRtYXAmKTsKKyAgICBjb25zdGV4
cHIgdm9pZCBvcGVyYXRvciY9KGNvbnN0IEJpdG1hcCYpOworICAgIGNvbnN0ZXhwciB2b2lkIG9w
ZXJhdG9yXj0oY29uc3QgQml0bWFwJik7CiAKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7CiAK
QEAgLTE1MiwxNSArMTUyLDkgQEAgY2xhc3MgQml0bWFwIGZpbmFsIHsKICAgICAvLyBhIDY0IGJp
dCB1bnNpZ25lZCBpbnQgd291bGQgZ2l2ZSAweGZmZmY4MDAwCiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBXb3JkVHlwZSBvbmUgPSAxOwogCi0gICAgc3RkOjphcnJheTxXb3JkVHlwZSwgd29yZHM+IGJp
dHM7CisgICAgc3RkOjphcnJheTxXb3JkVHlwZSwgd29yZHM+IGJpdHMgeyB9OwogfTsKIAotdGVt
cGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotY29uc3RleHByIEJp
dG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OkJpdG1hcCgpCi17Ci0gICAgY2xlYXJBbGwoKTsK
LX0KLQogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgogaW5s
aW5lIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Z2V0KHNpemVfdCBuLCBEZXBl
bmRlbmN5IGRlcGVuZGVuY3kpIGNvbnN0CiB7CkBAIC0xNjgsMTMgKzE2MiwxMyBAQCBpbmxpbmUg
Ym9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpnZXQoc2l6ZV90IG4sIERlcGVuZGVu
Y3kgZGVwZW5kZW5jeSkgYwogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5h
bWUgV29yZFR5cGU+Ci1BTFdBWVNfSU5MSU5FIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRU
eXBlPjo6c2V0KHNpemVfdCBuKQorQUxXQVlTX0lOTElORSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8
Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpzZXQoc2l6ZV90IG4pCiB7CiAgICAgYml0c1tuIC8gd29y
ZFNpemVdIHw9IChvbmUgPDwgKG4gJSB3b3JkU2l6ZSkpOwogfQogCiB0ZW1wbGF0ZTxzaXplX3Qg
Yml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1BTFdBWVNfSU5MSU5FIHZvaWQgQml0bWFw
PGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0KHNpemVfdCBuLCBib29sIHZhbHVlKQorQUxXQVlT
X0lOTElORSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpzZXQo
c2l6ZV90IG4sIGJvb2wgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlKQogICAgICAgICBzZXQobik7
CkBAIC0xODMsNyArMTc3LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEJpdG1hcDxiaXRtYXBTaXpl
LCBXb3JkVHlwZT46OnNldChzaXplX3QgbiwgYm9vbCB2YWx1ZSkKIH0KIAogdGVtcGxhdGU8c2l6
ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIGJvb2wgQml0bWFwPGJp
dG1hcFNpemUsIFdvcmRUeXBlPjo6dGVzdEFuZFNldChzaXplX3QgbikKK2lubGluZSBjb25zdGV4
cHIgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojp0ZXN0QW5kU2V0KHNpemVfdCBu
KQogewogICAgIFdvcmRUeXBlIG1hc2sgPSBvbmUgPDwgKG4gJSB3b3JkU2l6ZSk7CiAgICAgc2l6
ZV90IGluZGV4ID0gbiAvIHdvcmRTaXplOwpAQCAtMTkzLDcgKzE4Nyw3IEBAIGlubGluZSBib29s
IEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnRlc3RBbmRTZXQoc2l6ZV90IG4pCiB9CiAK
IHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSBi
b29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnRlc3RBbmRDbGVhcihzaXplX3QgbikK
K2lubGluZSBjb25zdGV4cHIgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojp0ZXN0
QW5kQ2xlYXIoc2l6ZV90IG4pCiB7CiAgICAgV29yZFR5cGUgbWFzayA9IG9uZSA8PCAobiAlIHdv
cmRTaXplKTsKICAgICBzaXplX3QgaW5kZXggPSBuIC8gd29yZFNpemU7CkBAIC0yMzUsNyArMjI5
LDcgQEAgQUxXQVlTX0lOTElORSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmNv
bmN1cnJlbnRUZXN0QW5kQ2xlYXIoc2l6ZV90IG4KIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1h
cFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUs
IFdvcmRUeXBlPjo6Y2xlYXIoc2l6ZV90IG4pCitpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFw
PGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Y2xlYXIoc2l6ZV90IG4pCiB7CiAgICAgYml0c1tuIC8g
d29yZFNpemVdICY9IH4ob25lIDw8IChuICUgd29yZFNpemUpKTsKIH0KQEAgLTI0Nyw3ICsyNDEs
NyBAQCBpbmxpbmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpjbGVhckFsbCgp
CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlu
bGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmludmVydCgpCitpbmxpbmUg
Y29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6aW52ZXJ0KCkKIHsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0g
PSB+Yml0c1tpXTsKQEAgLTI1OSw3ICsyNTMsNyBAQCBpbmxpbmUgdm9pZCBCaXRtYXA8Yml0bWFw
U2l6ZSwgV29yZFR5cGU+OjppbnZlcnQoKQogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6
ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgc2l6ZV90IEJpdG1hcDxiaXRtYXBTaXplLCBX
b3JkVHlwZT46Om5leHRQb3NzaWJseVVuc2V0KHNpemVfdCBzdGFydCkgY29uc3QKK2lubGluZSBj
b25zdGV4cHIgc2l6ZV90IEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46Om5leHRQb3NzaWJs
eVVuc2V0KHNpemVfdCBzdGFydCkgY29uc3QKIHsKICAgICBpZiAoIX5iaXRzW3N0YXJ0IC8gd29y
ZFNpemVdKQogICAgICAgICByZXR1cm4gKChzdGFydCAvIHdvcmRTaXplKSArIDEpICogd29yZFNp
emU7CkBAIC0zMDMsNyArMjk3LDcgQEAgaW5saW5lIHNpemVfdCBCaXRtYXA8Yml0bWFwU2l6ZSwg
V29yZFR5cGU+Ojpjb3VudChzaXplX3Qgc3RhcnQpIGNvbnN0CiB9CiAKIHRlbXBsYXRlPHNpemVf
dCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSBib29sIEJpdG1hcDxiaXRt
YXBTaXplLCBXb3JkVHlwZT46OmlzRW1wdHkoKSBjb25zdAoraW5saW5lIGNvbnN0ZXhwciBib29s
IEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmlzRW1wdHkoKSBjb25zdAogewogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkKICAgICAgICAgaWYgKGJpdHNbaV0pCkBA
IC0zMTIsNyArMzA2LDcgQEAgaW5saW5lIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBl
Pjo6aXNFbXB0eSgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBl
bmFtZSBXb3JkVHlwZT4KLWlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46
OmlzRnVsbCgpIGNvbnN0CitpbmxpbmUgY29uc3RleHByIGJvb2wgQml0bWFwPGJpdG1hcFNpemUs
IFdvcmRUeXBlPjo6aXNGdWxsKCkgY29uc3QKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHdvcmRzOyArK2kpCiAgICAgICAgIGlmICh+Yml0c1tpXSkgewpAQCAtMzMwLDIxICszMjQsMjEg
QEAgaW5saW5lIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6aXNGdWxsKCkgY29u
c3QKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgot
aW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6bWVyZ2UoY29uc3QgQml0
bWFwJiBvdGhlcikKK2lubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29y
ZFR5cGU+OjptZXJnZShjb25zdCBCaXRtYXAmIG90aGVyKQogewogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgd29yZHM7ICsraSkKICAgICAgICAgYml0c1tpXSB8PSBvdGhlci5iaXRzW2ldOwog
fQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxp
bmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpmaWx0ZXIoY29uc3QgQml0bWFw
JiBvdGhlcikKK2lubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5
cGU+OjpmaWx0ZXIoY29uc3QgQml0bWFwJiBvdGhlcikKIHsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0gJj0gb3RoZXIuYml0c1tpXTsKIH0K
IAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5l
IHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6ZXhjbHVkZShjb25zdCBCaXRtYXAm
IG90aGVyKQoraW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlw
ZT46OmV4Y2x1ZGUoY29uc3QgQml0bWFwJiBvdGhlcikKIHsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0gJj0gfm90aGVyLmJpdHNbaV07CkBA
IC0zNzEsNyArMzY1LDcgQEAgaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBl
Pjo6Y29uY3VycmVudEZpbHRlcihjb25zdCBCaXRtYXAmIG90aGVyKQogfQogCiB0ZW1wbGF0ZTxz
aXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRtYXA8
Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpzdWJzdW1lcyhjb25zdCBCaXRtYXAmIG90aGVyKSBjb25z
dAoraW5saW5lIGNvbnN0ZXhwciBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnN1
YnN1bWVzKGNvbnN0IEJpdG1hcCYgb3RoZXIpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB3b3JkczsgKytpKSB7CiAgICAgICAgIFdvcmRUeXBlIG15Qml0cyA9IGJpdHNbaV07
CkBAIC00MjcsNyArNDIxLDcgQEAgaW5saW5lIHNpemVfdCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29y
ZFR5cGU+OjpmaW5kQml0KHNpemVfdCBzdGFydEluZGV4LCBib29sIHZhbHUKIH0KIAogdGVtcGxh
dGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIHZvaWQgQml0
bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6bWVyZ2VBbmRDbGVhcihCaXRtYXAmIG90aGVyKQor
aW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46Om1lcmdl
QW5kQ2xlYXIoQml0bWFwJiBvdGhlcikKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdv
cmRzOyArK2kpIHsKICAgICAgICAgYml0c1tpXSB8PSBvdGhlci5iaXRzW2ldOwpAQCAtNDM2LDcg
KzQzMCw3IEBAIGlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46Om1lcmdl
QW5kQ2xlYXIoQml0bWFwJiBvdGhlcikKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUs
IHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRU
eXBlPjo6c2V0QW5kQ2xlYXIoQml0bWFwJiBvdGhlcikKK2lubGluZSBjb25zdGV4cHIgdm9pZCBC
aXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpzZXRBbmRDbGVhcihCaXRtYXAmIG90aGVyKQog
ewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkgewogICAgICAgICBiaXRz
W2ldID0gb3RoZXIuYml0c1tpXTsKQEAgLTQ3Niw3ICs0NzAsNyBAQCBpbmxpbmUgdm9pZCBCaXRt
YXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpzZXRFYWNoTnRoQml0KHNpemVfdCBuLCBzaXplX3Qg
c3RhcnQsCiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlw
ZT4KLWlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46Om9wZXJhdG9yPT0o
Y29uc3QgQml0bWFwJiBvdGhlcikgY29uc3QKK2lubGluZSBjb25zdGV4cHIgYm9vbCBCaXRtYXA8
Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpvcGVyYXRvcj09KGNvbnN0IEJpdG1hcCYgb3RoZXIpIGNv
bnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3b3JkczsgKytpKSB7CiAgICAgICAg
IGlmIChiaXRzW2ldICE9IG90aGVyLmJpdHNbaV0pCkBAIC00ODYsMjcgKzQ4MCwyNyBAQCBpbmxp
bmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpvcGVyYXRvcj09KGNvbnN0IEJp
dG1hcCYgb3RoZXIpIGNvbnN0CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBl
bmFtZSBXb3JkVHlwZT4KLWlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46
Om9wZXJhdG9yIT0oY29uc3QgQml0bWFwJiBvdGhlcikgY29uc3QKK2lubGluZSBjb25zdGV4cHIg
Ym9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpvcGVyYXRvciE9KGNvbnN0IEJpdG1h
cCYgb3RoZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogfQogCiB0
ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgdm9p
ZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpvcGVyYXRvcnw9KGNvbnN0IEJpdG1hcCYg
b3RoZXIpCitpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBl
Pjo6b3BlcmF0b3J8PShjb25zdCBCaXRtYXAmIG90aGVyKQogewogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgd29yZHM7ICsraSkKICAgICAgICAgYml0c1tpXSB8PSBvdGhlci5iaXRzW2ldOwog
fQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxp
bmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpvcGVyYXRvciY9KGNvbnN0IEJp
dG1hcCYgb3RoZXIpCitpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdv
cmRUeXBlPjo6b3BlcmF0b3ImPShjb25zdCBCaXRtYXAmIG90aGVyKQogewogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkKICAgICAgICAgYml0c1tpXSAmPSBvdGhlci5iaXRz
W2ldOwogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+
Ci1pbmxpbmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpvcGVyYXRvcl49KGNv
bnN0IEJpdG1hcCYgb3RoZXIpCitpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNp
emUsIFdvcmRUeXBlPjo6b3BlcmF0b3JePShjb25zdCBCaXRtYXAmIG90aGVyKQogewogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkKICAgICAgICAgYml0c1tpXSBePSBvdGhl
ci5iaXRzW2ldOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450993</attachid>
            <date>2022-02-05 11:31:04 -0800</date>
            <delta_ts>2022-02-06 00:56:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236180-20220205113103.patch</filename>
            <type>text/plain</type>
            <size>15579</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YjJlNTI2M2Q3ODYwM2VhYjEyYTlmNDJmNDE4ZWMzZGYxNGIyODg4Li45ODBmOTQyMDI2NDgxNDhk
OTc0NDM5MWIxY2JlOTViN2QyMWM0YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMi0wMi0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtXVEZdIE1ha2UgQml0bWFwIGNvbnN0ZXhwciBmcmllbmRseQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTgwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtl
cyBCaXRtYXAgbW9yZSBjb25zdGV4cHIgZnJpZW5kbHkgc28gdGhhdCBKU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucydzCisgICAgICAgIGZ1bmN0aW9ucyBjYW4gY29tcGlsZSBCaXRtYXAgYXMgY29uc3Rl
eHByLCB3aGljaCBhdm9pZHMgcG9zc2libGUgcmFjZSBjb25kaXRpb24uCisKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6bWFrZUNo
YXJhY3RlckJpdG1hcCk6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisKIDIwMjItMDItMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBUaHJlYWQgc3VzcGVuZCBhbmQgcmVzdW1lIHNob3VsZCB0YWtlIGEgZ2xvYmFsIGxvY2sg
dG8gYXZvaWQgZGVhZGxvY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMGRjYjdkNDEzZDgzZjFlNThlMGJlNmQ2MWIyMDMwOTk5
MDQ0MjhhMi4uMmY0OTk4MTA1OTI3NmQ1OGU2Yjg3ZjNmNTI0OTRkNjU1ZjhmNDgwMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMSBAQAorMjAyMi0wMi0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXVEZdIE1ha2UgQml0bWFwIGNvbnN0ZXhwciBmcmllbmRseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTgwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXR0YWNoIGNvbnN0
ZXhwciB0byBjb25zdHJ1Y3RvciBhbmQgbWV0aG9kcyBpZiBpdCBpcyBwb3NzaWJsZS4KKworICAg
ICAgICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAgICAgKFdURjo6V29yZFR5cGU+OjpzZXQpOgorICAg
ICAgICAoV1RGOjpXb3JkVHlwZT46OnRlc3RBbmRTZXQpOgorICAgICAgICAoV1RGOjpXb3JkVHlw
ZT46OnRlc3RBbmRDbGVhcik6CisgICAgICAgIChXVEY6OldvcmRUeXBlPjo6Y2xlYXIpOgorICAg
ICAgICAoV1RGOjpXb3JkVHlwZT46OmludmVydCk6CisgICAgICAgIChXVEY6OldvcmRUeXBlPjo6
bmV4dFBvc3NpYmx5VW5zZXQgY29uc3QpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OmlzRW1w
dHkgY29uc3QpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OmlzRnVsbCBjb25zdCk6CisgICAg
ICAgIChXVEY6OldvcmRUeXBlPjo6bWVyZ2UpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OmZp
bHRlcik6CisgICAgICAgIChXVEY6OldvcmRUeXBlPjo6ZXhjbHVkZSk6CisgICAgICAgIChXVEY6
OldvcmRUeXBlPjo6c3Vic3VtZXMgY29uc3QpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46Om1l
cmdlQW5kQ2xlYXIpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OnNldEFuZENsZWFyKToKKyAg
ICAgICAgKFdURjo6PSBjb25zdCk6CisgICAgICAgIChXVEY6Oj0pOgorICAgICAgICAoV1RGOjpX
b3JkVHlwZT46OkJpdG1hcCk6IERlbGV0ZWQuCisKIDIwMjItMDItMDUgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBUaHJlYWQgc3VzcGVuZCBhbmQgcmVzdW1l
IHNob3VsZCB0YWtlIGEgZ2xvYmFsIGxvY2sgdG8gYXZvaWQgZGVhZGxvY2sKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcAppbmRleCBhZDE5Mzc1ZGU0MWYyODU5MzU1MDdmMDQ4YmExNzAzYWNjNDE1OGQ0Li44ZjBm
ZGQ4ZTI0YTA4NmRjYTE4MjUzMzJiZDVmZTNhMzUzOWRkNDNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
CkBAIC01Miw3ICs1Miw3IEBAIGNvbnN0IEFTQ0lJTGl0ZXJhbCBPYmplY3RQcm90b0NhbGxlZE9u
TnVsbE9yVW5kZWZpbmVkRXJyb3IgeyAiT2JqZWN0LnByb3RvdHlwZS5fCiBjb25zdCBBU0NJSUxp
dGVyYWwgUmVzdHJpY3RlZFByb3BlcnR5QWNjZXNzRXJyb3IgeyAiJ2FyZ3VtZW50cycsICdjYWxs
ZWUnLCBhbmQgJ2NhbGxlcicgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHRoaXMgY29udGV4dC4iX3Mg
fTsKIAogdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50Pgotc3RhdGljIEJpdG1hcDwy
NTY+IG1ha2VDaGFyYWN0ZXJCaXRtYXAoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3Rl
cnNDb3VudF0pCitzdGF0aWMgY29uc3RleHByIEJpdG1hcDwyNTY+IG1ha2VDaGFyYWN0ZXJCaXRt
YXAoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlcnNDb3VudF0pCiB7CiAgICAgc3Rh
dGljX2Fzc2VydChjaGFyYWN0ZXJzQ291bnQgPiAwLCAiU2luY2Ugc3RyaW5nIGxpdGVyYWwgaXMg
bnVsbCB0ZXJtaW5hdGVkLCBjaGFyYWN0ZXJDb3VudCBpcyBhbHdheXMgbGFyZ2VyIHRoYW4gMCIp
OwogICAgIEJpdG1hcDwyNTY+IGJpdG1hcDsKQEAgLTU0NCw3ICs1NDQsNyBAQCBKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1BhcnNlRmxvYXQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0RlY29k
ZVVSSSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICBzdGF0aWMgY29uc3QgQml0bWFwPDI1Nj4gZG9Ob3RVbmVzY2FwZVdoZW5EZWNv
ZGluZ1VSSSA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCisgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRt
YXA8MjU2PiBkb05vdFVuZXNjYXBlV2hlbkRlY29kaW5nVVJJID0gbWFrZUNoYXJhY3RlckJpdG1h
cCgKICAgICAgICAgIiMkJissLzo7PT9AIgogICAgICk7CiAKQEAgLTU1MywxMyArNTUzLDEzIEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2RlVVJJLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9i
YWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHN0YXRpYyBjb25zdCBCaXRtYXA8MjU2PiBl
bXB0eUJpdG1hcDsKKyAgICBzdGF0aWMgY29uc3RleHByIEJpdG1hcDwyNTY+IGVtcHR5Qml0bWFw
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGVjb2RlKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSwgZW1wdHlCaXRtYXAsIHRydWUpKTsKIH0KIAogSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNFbmNvZGVVUkksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgc3RhdGljIGNvbnN0IEJpdG1h
cDwyNTY+IGRvTm90RXNjYXBlV2hlbkVuY29kaW5nVVJJID0gbWFrZUNoYXJhY3RlckJpdG1hcCgK
KyAgICBzdGF0aWMgY29uc3RleHByIEJpdG1hcDwyNTY+IGRvTm90RXNjYXBlV2hlbkVuY29kaW5n
VVJJID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNU
VVZXWFlaIgogICAgICAgICAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiCiAgICAgICAgICIw
MTIzNDU2Nzg5IgpAQCAtNTcwLDcgKzU3MCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihn
bG9iYWxGdW5jRW5jb2RlVVJJLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAK
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHN0YXRpYyBjb25zdCBCaXRtYXA8MjU2PiBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSUNv
bXBvbmVudCA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCisgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRt
YXA8MjU2PiBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSUNvbXBvbmVudCA9IG1ha2VDaGFyYWN0
ZXJCaXRtYXAoCiAgICAgICAgICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKICAgICAgICAg
ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgogICAgICAgICAiMDEyMzQ1Njc4OSIKQEAgLTU4
Miw3ICs1ODIsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0VuY29kZVVS
SUNvbXBvbmVudCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGdsb2JhbEZ1bmNFc2NhcGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b1N0
cmluZ1ZpZXcoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBbJl0gKFN0cmlu
Z1ZpZXcgdmlldykgLT4gSlNTdHJpbmcqIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IEJpdG1hcDwy
NTY+IGRvTm90RXNjYXBlID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciBCaXRtYXA8MjU2PiBkb05vdEVzY2FwZSA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCiAg
ICAgICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiCiAgICAgICAgICAgICAiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiCiAgICAgICAgICAgICAiMDEyMzQ1Njc4OSIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JpdG1hcC5oIGIvU291cmNlL1dURi93dGYvQml0bWFwLmgK
aW5kZXggNDFjYTY2YWE5OWQ4NzdjY2E2NzQ4ZjEyMWI1MWM3ZTJkNGQ0OWFjNy4uYjhmNjYxYTY2
ZWU5M2U1OTA3MWE1NjYxNmNkNDQzZmJkOWEyMjcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvQml0bWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvQml0bWFwLmgKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgQml0bWFwIGZpbmFsIHsKICAgICB1c2luZyBXb3JkVHlwZSA9IFBhc3NlZFdvcmRU
eXBlOwogCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoV29yZFR5cGUpIDw9IHNpemVvZihVQ1BV
UmVnaXN0ZXIpLCAiV29yZFR5cGUgbXVzdCBub3QgYmUgYmlnZ2VyIHRoYW4gdGhlIENQVSBhdG9t
aWMgd29yZCBzaXplIik7Ci0gICAgY29uc3RleHByIEJpdG1hcCgpOworICAgIGNvbnN0ZXhwciBC
aXRtYXAoKSA9IGRlZmF1bHQ7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBzaXplKCkK
ICAgICB7CkBAIC01MCwyOCArNTAsMjggQEAgY2xhc3MgQml0bWFwIGZpbmFsIHsKICAgICB9CiAK
ICAgICBib29sIGdldChzaXplX3QsIERlcGVuZGVuY3kgPSBEZXBlbmRlbmN5KCkpIGNvbnN0Owot
ICAgIHZvaWQgc2V0KHNpemVfdCk7Ci0gICAgdm9pZCBzZXQoc2l6ZV90LCBib29sKTsKLSAgICBi
b29sIHRlc3RBbmRTZXQoc2l6ZV90KTsKLSAgICBib29sIHRlc3RBbmRDbGVhcihzaXplX3QpOwor
ICAgIGNvbnN0ZXhwciB2b2lkIHNldChzaXplX3QpOworICAgIGNvbnN0ZXhwciB2b2lkIHNldChz
aXplX3QsIGJvb2wpOworICAgIGNvbnN0ZXhwciBib29sIHRlc3RBbmRTZXQoc2l6ZV90KTsKKyAg
ICBjb25zdGV4cHIgYm9vbCB0ZXN0QW5kQ2xlYXIoc2l6ZV90KTsKICAgICBib29sIGNvbmN1cnJl
bnRUZXN0QW5kU2V0KHNpemVfdCwgRGVwZW5kZW5jeSA9IERlcGVuZGVuY3koKSk7CiAgICAgYm9v
bCBjb25jdXJyZW50VGVzdEFuZENsZWFyKHNpemVfdCwgRGVwZW5kZW5jeSA9IERlcGVuZGVuY3ko
KSk7Ci0gICAgc2l6ZV90IG5leHRQb3NzaWJseVVuc2V0KHNpemVfdCkgY29uc3Q7Ci0gICAgdm9p
ZCBjbGVhcihzaXplX3QpOworICAgIGNvbnN0ZXhwciBzaXplX3QgbmV4dFBvc3NpYmx5VW5zZXQo
c2l6ZV90KSBjb25zdDsKKyAgICBjb25zdGV4cHIgdm9pZCBjbGVhcihzaXplX3QpOwogICAgIHZv
aWQgY2xlYXJBbGwoKTsKLSAgICB2b2lkIGludmVydCgpOworICAgIGNvbnN0ZXhwciB2b2lkIGlu
dmVydCgpOwogICAgIGludDY0X3QgZmluZFJ1bk9mWmVyb3Moc2l6ZV90IHJ1bkxlbmd0aCkgY29u
c3Q7CiAgICAgc2l6ZV90IGNvdW50KHNpemVfdCBzdGFydCA9IDApIGNvbnN0OwotICAgIGJvb2wg
aXNFbXB0eSgpIGNvbnN0OwotICAgIGJvb2wgaXNGdWxsKCkgY29uc3Q7CisgICAgY29uc3RleHBy
IGJvb2wgaXNFbXB0eSgpIGNvbnN0OworICAgIGNvbnN0ZXhwciBib29sIGlzRnVsbCgpIGNvbnN0
OwogICAgIAotICAgIHZvaWQgbWVyZ2UoY29uc3QgQml0bWFwJik7Ci0gICAgdm9pZCBmaWx0ZXIo
Y29uc3QgQml0bWFwJik7Ci0gICAgdm9pZCBleGNsdWRlKGNvbnN0IEJpdG1hcCYpOworICAgIGNv
bnN0ZXhwciB2b2lkIG1lcmdlKGNvbnN0IEJpdG1hcCYpOworICAgIGNvbnN0ZXhwciB2b2lkIGZp
bHRlcihjb25zdCBCaXRtYXAmKTsKKyAgICBjb25zdGV4cHIgdm9pZCBleGNsdWRlKGNvbnN0IEJp
dG1hcCYpOwogCiAgICAgdm9pZCBjb25jdXJyZW50RmlsdGVyKGNvbnN0IEJpdG1hcCYpOwogICAg
IAotICAgIGJvb2wgc3Vic3VtZXMoY29uc3QgQml0bWFwJikgY29uc3Q7CisgICAgY29uc3RleHBy
IGJvb2wgc3Vic3VtZXMoY29uc3QgQml0bWFwJikgY29uc3Q7CiAgICAgCiAgICAgLy8gSWYgdGhl
IGxhbWJkYSByZXR1cm5zIGFuIEl0ZXJhdGlvblN0YXR1cywgd2UgdXNlIGl0LiBUaGUgbGFtYmRh
IGNhbiBhbHNvIHJldHVybgogICAgIC8vIHZvaWQsIGluIHdoaWNoIGNhc2UsIHdlJ2xsIGl0ZXJh
dGUgZXZlcnkgc2V0IGJpdC4KQEAgLTEyMiwxNyArMTIyLDE3IEBAIGNsYXNzIEJpdG1hcCBmaW5h
bCB7CiAgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywg
ZmluZEJpdCgwLCB0cnVlKSk7IH0KICAgICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBp
dGVyYXRvcigqdGhpcywgYml0bWFwU2l6ZSk7IH0KICAgICAKLSAgICB2b2lkIG1lcmdlQW5kQ2xl
YXIoQml0bWFwJik7Ci0gICAgdm9pZCBzZXRBbmRDbGVhcihCaXRtYXAmKTsKKyAgICBjb25zdGV4
cHIgdm9pZCBtZXJnZUFuZENsZWFyKEJpdG1hcCYpOworICAgIGNvbnN0ZXhwciB2b2lkIHNldEFu
ZENsZWFyKEJpdG1hcCYpOwogCiAgICAgdm9pZCBzZXRFYWNoTnRoQml0KHNpemVfdCBuLCBzaXpl
X3Qgc3RhcnQgPSAwLCBzaXplX3QgZW5kID0gYml0bWFwU2l6ZSk7CiAKLSAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgQml0bWFwJikgY29uc3Q7Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEJp
dG1hcCYpIGNvbnN0OworICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgQml0bWFw
JikgY29uc3Q7CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShjb25zdCBCaXRtYXAmKSBj
b25zdDsKIAotICAgIHZvaWQgb3BlcmF0b3J8PShjb25zdCBCaXRtYXAmKTsKLSAgICB2b2lkIG9w
ZXJhdG9yJj0oY29uc3QgQml0bWFwJik7Ci0gICAgdm9pZCBvcGVyYXRvcl49KGNvbnN0IEJpdG1h
cCYpOworICAgIGNvbnN0ZXhwciB2b2lkIG9wZXJhdG9yfD0oY29uc3QgQml0bWFwJik7CisgICAg
Y29uc3RleHByIHZvaWQgb3BlcmF0b3ImPShjb25zdCBCaXRtYXAmKTsKKyAgICBjb25zdGV4cHIg
dm9pZCBvcGVyYXRvcl49KGNvbnN0IEJpdG1hcCYpOwogCiAgICAgdW5zaWduZWQgaGFzaCgpIGNv
bnN0OwogCkBAIC0xNTIsMTUgKzE1Miw5IEBAIGNsYXNzIEJpdG1hcCBmaW5hbCB7CiAgICAgLy8g
YSA2NCBiaXQgdW5zaWduZWQgaW50IHdvdWxkIGdpdmUgMHhmZmZmODAwMAogICAgIHN0YXRpYyBj
b25zdGV4cHIgV29yZFR5cGUgb25lID0gMTsKIAotICAgIHN0ZDo6YXJyYXk8V29yZFR5cGUsIHdv
cmRzPiBiaXRzOworICAgIHN0ZDo6YXJyYXk8V29yZFR5cGUsIHdvcmRzPiBiaXRzIHsgfTsKIH07
CiAKLXRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWNvbnN0
ZXhwciBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpCaXRtYXAoKQotewotICAgIGNsZWFy
QWxsKCk7Ci19Ci0KIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlw
ZT4KIGlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmdldChzaXplX3Qg
biwgRGVwZW5kZW5jeSBkZXBlbmRlbmN5KSBjb25zdAogewpAQCAtMTY4LDEzICsxNjIsMTMgQEAg
aW5saW5lIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Z2V0KHNpemVfdCBuLCBE
ZXBlbmRlbmN5IGRlcGVuZGVuY3kpIGMKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUs
IHR5cGVuYW1lIFdvcmRUeXBlPgotQUxXQVlTX0lOTElORSB2b2lkIEJpdG1hcDxiaXRtYXBTaXpl
LCBXb3JkVHlwZT46OnNldChzaXplX3QgbikKK0FMV0FZU19JTkxJTkUgY29uc3RleHByIHZvaWQg
Qml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0KHNpemVfdCBuKQogewogICAgIGJpdHNb
biAvIHdvcmRTaXplXSB8PSAob25lIDw8IChuICUgd29yZFNpemUpKTsKIH0KIAogdGVtcGxhdGU8
c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotQUxXQVlTX0lOTElORSB2b2lk
IEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnNldChzaXplX3QgbiwgYm9vbCB2YWx1ZSkK
K0FMV0FZU19JTkxJTkUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBl
Pjo6c2V0KHNpemVfdCBuLCBib29sIHZhbHVlKQogewogICAgIGlmICh2YWx1ZSkKICAgICAgICAg
c2V0KG4pOwpAQCAtMTgzLDcgKzE3Nyw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBCaXRtYXA8Yml0
bWFwU2l6ZSwgV29yZFR5cGU+OjpzZXQoc2l6ZV90IG4sIGJvb2wgdmFsdWUpCiB9CiAKIHRlbXBs
YXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSBib29sIEJp
dG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnRlc3RBbmRTZXQoc2l6ZV90IG4pCitpbmxpbmUg
Y29uc3RleHByIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6dGVzdEFuZFNldChz
aXplX3QgbikKIHsKICAgICBXb3JkVHlwZSBtYXNrID0gb25lIDw8IChuICUgd29yZFNpemUpOwog
ICAgIHNpemVfdCBpbmRleCA9IG4gLyB3b3JkU2l6ZTsKQEAgLTE5Myw3ICsxODcsNyBAQCBpbmxp
bmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojp0ZXN0QW5kU2V0KHNpemVfdCBu
KQogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1p
bmxpbmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojp0ZXN0QW5kQ2xlYXIoc2l6
ZV90IG4pCitpbmxpbmUgY29uc3RleHByIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBl
Pjo6dGVzdEFuZENsZWFyKHNpemVfdCBuKQogewogICAgIFdvcmRUeXBlIG1hc2sgPSBvbmUgPDwg
KG4gJSB3b3JkU2l6ZSk7CiAgICAgc2l6ZV90IGluZGV4ID0gbiAvIHdvcmRTaXplOwpAQCAtMjM1
LDcgKzIyOSw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5
cGU+Ojpjb25jdXJyZW50VGVzdEFuZENsZWFyKHNpemVfdCBuCiB9CiAKIHRlbXBsYXRlPHNpemVf
dCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSB2b2lkIEJpdG1hcDxiaXRt
YXBTaXplLCBXb3JkVHlwZT46OmNsZWFyKHNpemVfdCBuKQoraW5saW5lIGNvbnN0ZXhwciB2b2lk
IEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmNsZWFyKHNpemVfdCBuKQogewogICAgIGJp
dHNbbiAvIHdvcmRTaXplXSAmPSB+KG9uZSA8PCAobiAlIHdvcmRTaXplKSk7CiB9CkBAIC0yNDcs
NyArMjQxLDcgQEAgaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Y2xl
YXJBbGwoKQogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5
cGU+Ci1pbmxpbmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjppbnZlcnQoKQor
aW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmludmVy
dCgpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBi
aXRzW2ldID0gfmJpdHNbaV07CkBAIC0yNTksNyArMjUzLDcgQEAgaW5saW5lIHZvaWQgQml0bWFw
PGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6aW52ZXJ0KCkKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJp
dG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIHNpemVfdCBCaXRtYXA8Yml0bWFw
U2l6ZSwgV29yZFR5cGU+OjpuZXh0UG9zc2libHlVbnNldChzaXplX3Qgc3RhcnQpIGNvbnN0Citp
bmxpbmUgY29uc3RleHByIHNpemVfdCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpuZXh0
UG9zc2libHlVbnNldChzaXplX3Qgc3RhcnQpIGNvbnN0CiB7CiAgICAgaWYgKCF+Yml0c1tzdGFy
dCAvIHdvcmRTaXplXSkKICAgICAgICAgcmV0dXJuICgoc3RhcnQgLyB3b3JkU2l6ZSkgKyAxKSAq
IHdvcmRTaXplOwpAQCAtMzAzLDcgKzI5Nyw3IEBAIGlubGluZSBzaXplX3QgQml0bWFwPGJpdG1h
cFNpemUsIFdvcmRUeXBlPjo6Y291bnQoc2l6ZV90IHN0YXJ0KSBjb25zdAogfQogCiB0ZW1wbGF0
ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRt
YXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojppc0VtcHR5KCkgY29uc3QKK2lubGluZSBjb25zdGV4
cHIgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojppc0VtcHR5KCkgY29uc3QKIHsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGlmIChiaXRz
W2ldKQpAQCAtMzEyLDcgKzMwNiw3IEBAIGlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBX
b3JkVHlwZT46OmlzRW1wdHkoKSBjb25zdAogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6
ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29y
ZFR5cGU+Ojppc0Z1bGwoKSBjb25zdAoraW5saW5lIGNvbnN0ZXhwciBib29sIEJpdG1hcDxiaXRt
YXBTaXplLCBXb3JkVHlwZT46OmlzRnVsbCgpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBpZiAofmJpdHNbaV0pIHsKQEAgLTMzMCwyMSAr
MzI0LDIxIEBAIGlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmlzRnVs
bCgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3Jk
VHlwZT4KLWlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46Om1lcmdlKGNv
bnN0IEJpdG1hcCYgb3RoZXIpCitpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNp
emUsIFdvcmRUeXBlPjo6bWVyZ2UoY29uc3QgQml0bWFwJiBvdGhlcikKIHsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0gfD0gb3RoZXIuYml0
c1tpXTsKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBl
PgotaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6ZmlsdGVyKGNvbnN0
IEJpdG1hcCYgb3RoZXIpCitpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNpemUs
IFdvcmRUeXBlPjo6ZmlsdGVyKGNvbnN0IEJpdG1hcCYgb3RoZXIpCiB7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBiaXRzW2ldICY9IG90aGVyLmJpdHNb
aV07CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4K
LWlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmV4Y2x1ZGUoY29uc3Qg
Qml0bWFwJiBvdGhlcikKK2lubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwg
V29yZFR5cGU+OjpleGNsdWRlKGNvbnN0IEJpdG1hcCYgb3RoZXIpCiB7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBiaXRzW2ldICY9IH5vdGhlci5iaXRz
W2ldOwpAQCAtMzcxLDcgKzM2NSw3IEBAIGlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBX
b3JkVHlwZT46OmNvbmN1cnJlbnRGaWx0ZXIoY29uc3QgQml0bWFwJiBvdGhlcikKIH0KIAogdGVt
cGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIGJvb2wg
Qml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c3Vic3VtZXMoY29uc3QgQml0bWFwJiBvdGhl
cikgY29uc3QKK2lubGluZSBjb25zdGV4cHIgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5
cGU+OjpzdWJzdW1lcyhjb25zdCBCaXRtYXAmIG90aGVyKSBjb25zdAogewogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkgewogICAgICAgICBXb3JkVHlwZSBteUJpdHMgPSBi
aXRzW2ldOwpAQCAtNDI3LDcgKzQyMSw3IEBAIGlubGluZSBzaXplX3QgQml0bWFwPGJpdG1hcFNp
emUsIFdvcmRUeXBlPjo6ZmluZEJpdChzaXplX3Qgc3RhcnRJbmRleCwgYm9vbCB2YWx1CiB9CiAK
IHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSB2
b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46Om1lcmdlQW5kQ2xlYXIoQml0bWFwJiBv
dGhlcikKK2lubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+
OjptZXJnZUFuZENsZWFyKEJpdG1hcCYgb3RoZXIpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB3b3JkczsgKytpKSB7CiAgICAgICAgIGJpdHNbaV0gfD0gb3RoZXIuYml0c1tpXTsKQEAg
LTQzNiw3ICs0MzAsNyBAQCBpbmxpbmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+
OjptZXJnZUFuZENsZWFyKEJpdG1hcCYgb3RoZXIpCiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRt
YXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXpl
LCBXb3JkVHlwZT46OnNldEFuZENsZWFyKEJpdG1hcCYgb3RoZXIpCitpbmxpbmUgY29uc3RleHBy
IHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0QW5kQ2xlYXIoQml0bWFwJiBv
dGhlcikKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpIHsKICAgICAg
ICAgYml0c1tpXSA9IG90aGVyLmJpdHNbaV07CkBAIC00NzYsNyArNDcwLDcgQEAgaW5saW5lIHZv
aWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0RWFjaE50aEJpdChzaXplX3Qgbiwg
c2l6ZV90IHN0YXJ0LAogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUg
V29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpvcGVy
YXRvcj09KGNvbnN0IEJpdG1hcCYgb3RoZXIpIGNvbnN0CitpbmxpbmUgY29uc3RleHByIGJvb2wg
Qml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3I9PShjb25zdCBCaXRtYXAmIG90
aGVyKSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkgewog
ICAgICAgICBpZiAoYml0c1tpXSAhPSBvdGhlci5iaXRzW2ldKQpAQCAtNDg2LDI3ICs0ODAsMjcg
QEAgaW5saW5lIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3I9PShj
b25zdCBCaXRtYXAmIG90aGVyKSBjb25zdAogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6
ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29y
ZFR5cGU+OjpvcGVyYXRvciE9KGNvbnN0IEJpdG1hcCYgb3RoZXIpIGNvbnN0CitpbmxpbmUgY29u
c3RleHByIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3IhPShjb25z
dCBCaXRtYXAmIG90aGVyKSBjb25zdAogewogICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsK
IH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5s
aW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3J8PShjb25zdCBC
aXRtYXAmIG90aGVyKQoraW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBX
b3JkVHlwZT46Om9wZXJhdG9yfD0oY29uc3QgQml0bWFwJiBvdGhlcikKIHsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0gfD0gb3RoZXIuYml0
c1tpXTsKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBl
PgotaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3ImPShj
b25zdCBCaXRtYXAmIG90aGVyKQoraW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBT
aXplLCBXb3JkVHlwZT46Om9wZXJhdG9yJj0oY29uc3QgQml0bWFwJiBvdGhlcikKIHsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0gJj0gb3Ro
ZXIuYml0c1tpXTsKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdv
cmRUeXBlPgotaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0
b3JePShjb25zdCBCaXRtYXAmIG90aGVyKQoraW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxi
aXRtYXBTaXplLCBXb3JkVHlwZT46Om9wZXJhdG9yXj0oY29uc3QgQml0bWFwJiBvdGhlcikKIHsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0g
Xj0gb3RoZXIuYml0c1tpXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451026</attachid>
            <date>2022-02-06 00:56:13 -0800</date>
            <delta_ts>2022-02-06 10:45:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236180-20220206005612.patch</filename>
            <type>text/plain</type>
            <size>17219</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YjJlNTI2M2Q3ODYwM2VhYjEyYTlmNDJmNDE4ZWMzZGYxNGIyODg4Li4wMmRlMjk5MTQwMDMxODQz
ZDkzYjNhYmU4ZDNkMzk4MmY4YTc0OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMi0wMi0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtXVEZdIE1ha2UgQml0bWFwIGNvbnN0ZXhwciBmcmllbmRseQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTgwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtl
cyBCaXRtYXAgbW9yZSBjb25zdGV4cHIgZnJpZW5kbHkgc28gdGhhdCBKU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucydzCisgICAgICAgIGZ1bmN0aW9ucyBjYW4gY29tcGlsZSBCaXRtYXAgYXMgY29uc3Rl
eHByLCB3aGljaCBhdm9pZHMgcG9zc2libGUgcmFjZSBjb25kaXRpb24uCisKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6bWFrZUNo
YXJhY3RlckJpdG1hcCk6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisKIDIwMjItMDItMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBUaHJlYWQgc3VzcGVuZCBhbmQgcmVzdW1lIHNob3VsZCB0YWtlIGEgZ2xvYmFsIGxvY2sg
dG8gYXZvaWQgZGVhZGxvY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMGRjYjdkNDEzZDgzZjFlNThlMGJlNmQ2MWIyMDMwOTk5
MDQ0MjhhMi4uZTYyZDRhYTU2Yzc0OGI1ZTRhOTMzN2ZjZjIyYzk0OWUwODFkNTlkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMSBAQAorMjAyMi0wMi0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXVEZdIE1ha2UgQml0bWFwIGNvbnN0ZXhwciBmcmllbmRseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTgwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXR0YWNoIGNvbnN0
ZXhwciB0byBjb25zdHJ1Y3RvciBhbmQgbWV0aG9kcyBpZiBpdCBpcyBwb3NzaWJsZS4KKworICAg
ICAgICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAgICAgKFdURjo6V29yZFR5cGU+OjpzZXQpOgorICAg
ICAgICAoV1RGOjpXb3JkVHlwZT46OnRlc3RBbmRTZXQpOgorICAgICAgICAoV1RGOjpXb3JkVHlw
ZT46OnRlc3RBbmRDbGVhcik6CisgICAgICAgIChXVEY6OldvcmRUeXBlPjo6Y2xlYXIpOgorICAg
ICAgICAoV1RGOjpXb3JkVHlwZT46OmludmVydCk6CisgICAgICAgIChXVEY6OldvcmRUeXBlPjo6
bmV4dFBvc3NpYmx5VW5zZXQgY29uc3QpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OmlzRW1w
dHkgY29uc3QpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OmlzRnVsbCBjb25zdCk6CisgICAg
ICAgIChXVEY6OldvcmRUeXBlPjo6bWVyZ2UpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OmZp
bHRlcik6CisgICAgICAgIChXVEY6OldvcmRUeXBlPjo6ZXhjbHVkZSk6CisgICAgICAgIChXVEY6
OldvcmRUeXBlPjo6c3Vic3VtZXMgY29uc3QpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46Om1l
cmdlQW5kQ2xlYXIpOgorICAgICAgICAoV1RGOjpXb3JkVHlwZT46OnNldEFuZENsZWFyKToKKyAg
ICAgICAgKFdURjo6PSBjb25zdCk6CisgICAgICAgIChXVEY6Oj0pOgorICAgICAgICAoV1RGOjpX
b3JkVHlwZT46OkJpdG1hcCk6IERlbGV0ZWQuCisKIDIwMjItMDItMDUgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBUaHJlYWQgc3VzcGVuZCBhbmQgcmVzdW1l
IHNob3VsZCB0YWtlIGEgZ2xvYmFsIGxvY2sgdG8gYXZvaWQgZGVhZGxvY2sKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcAppbmRleCBhZDE5Mzc1ZGU0MWYyODU5MzU1MDdmMDQ4YmExNzAzYWNjNDE1OGQ0Li44ZjBm
ZGQ4ZTI0YTA4NmRjYTE4MjUzMzJiZDVmZTNhMzUzOWRkNDNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
CkBAIC01Miw3ICs1Miw3IEBAIGNvbnN0IEFTQ0lJTGl0ZXJhbCBPYmplY3RQcm90b0NhbGxlZE9u
TnVsbE9yVW5kZWZpbmVkRXJyb3IgeyAiT2JqZWN0LnByb3RvdHlwZS5fCiBjb25zdCBBU0NJSUxp
dGVyYWwgUmVzdHJpY3RlZFByb3BlcnR5QWNjZXNzRXJyb3IgeyAiJ2FyZ3VtZW50cycsICdjYWxs
ZWUnLCBhbmQgJ2NhbGxlcicgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHRoaXMgY29udGV4dC4iX3Mg
fTsKIAogdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50Pgotc3RhdGljIEJpdG1hcDwy
NTY+IG1ha2VDaGFyYWN0ZXJCaXRtYXAoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3Rl
cnNDb3VudF0pCitzdGF0aWMgY29uc3RleHByIEJpdG1hcDwyNTY+IG1ha2VDaGFyYWN0ZXJCaXRt
YXAoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlcnNDb3VudF0pCiB7CiAgICAgc3Rh
dGljX2Fzc2VydChjaGFyYWN0ZXJzQ291bnQgPiAwLCAiU2luY2Ugc3RyaW5nIGxpdGVyYWwgaXMg
bnVsbCB0ZXJtaW5hdGVkLCBjaGFyYWN0ZXJDb3VudCBpcyBhbHdheXMgbGFyZ2VyIHRoYW4gMCIp
OwogICAgIEJpdG1hcDwyNTY+IGJpdG1hcDsKQEAgLTU0NCw3ICs1NDQsNyBAQCBKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1BhcnNlRmxvYXQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0RlY29k
ZVVSSSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICBzdGF0aWMgY29uc3QgQml0bWFwPDI1Nj4gZG9Ob3RVbmVzY2FwZVdoZW5EZWNv
ZGluZ1VSSSA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCisgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRt
YXA8MjU2PiBkb05vdFVuZXNjYXBlV2hlbkRlY29kaW5nVVJJID0gbWFrZUNoYXJhY3RlckJpdG1h
cCgKICAgICAgICAgIiMkJissLzo7PT9AIgogICAgICk7CiAKQEAgLTU1MywxMyArNTUzLDEzIEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2RlVVJJLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9i
YWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHN0YXRpYyBjb25zdCBCaXRtYXA8MjU2PiBl
bXB0eUJpdG1hcDsKKyAgICBzdGF0aWMgY29uc3RleHByIEJpdG1hcDwyNTY+IGVtcHR5Qml0bWFw
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGVjb2RlKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSwgZW1wdHlCaXRtYXAsIHRydWUpKTsKIH0KIAogSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNFbmNvZGVVUkksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgc3RhdGljIGNvbnN0IEJpdG1h
cDwyNTY+IGRvTm90RXNjYXBlV2hlbkVuY29kaW5nVVJJID0gbWFrZUNoYXJhY3RlckJpdG1hcCgK
KyAgICBzdGF0aWMgY29uc3RleHByIEJpdG1hcDwyNTY+IGRvTm90RXNjYXBlV2hlbkVuY29kaW5n
VVJJID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNU
VVZXWFlaIgogICAgICAgICAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiCiAgICAgICAgICIw
MTIzNDU2Nzg5IgpAQCAtNTcwLDcgKzU3MCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihn
bG9iYWxGdW5jRW5jb2RlVVJJLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAK
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHN0YXRpYyBjb25zdCBCaXRtYXA8MjU2PiBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSUNv
bXBvbmVudCA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCisgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRt
YXA8MjU2PiBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSUNvbXBvbmVudCA9IG1ha2VDaGFyYWN0
ZXJCaXRtYXAoCiAgICAgICAgICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKICAgICAgICAg
ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgogICAgICAgICAiMDEyMzQ1Njc4OSIKQEAgLTU4
Miw3ICs1ODIsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0VuY29kZVVS
SUNvbXBvbmVudCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGdsb2JhbEZ1bmNFc2NhcGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b1N0
cmluZ1ZpZXcoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBbJl0gKFN0cmlu
Z1ZpZXcgdmlldykgLT4gSlNTdHJpbmcqIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IEJpdG1hcDwy
NTY+IGRvTm90RXNjYXBlID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciBCaXRtYXA8MjU2PiBkb05vdEVzY2FwZSA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCiAg
ICAgICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiCiAgICAgICAgICAgICAiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiCiAgICAgICAgICAgICAiMDEyMzQ1Njc4OSIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JpdG1hcC5oIGIvU291cmNlL1dURi93dGYvQml0bWFwLmgK
aW5kZXggNDFjYTY2YWE5OWQ4NzdjY2E2NzQ4ZjEyMWI1MWM3ZTJkNGQ0OWFjNy4uYjhmNjYxYTY2
ZWU5M2U1OTA3MWE1NjYxNmNkNDQzZmJkOWEyMjcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvQml0bWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvQml0bWFwLmgKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgQml0bWFwIGZpbmFsIHsKICAgICB1c2luZyBXb3JkVHlwZSA9IFBhc3NlZFdvcmRU
eXBlOwogCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoV29yZFR5cGUpIDw9IHNpemVvZihVQ1BV
UmVnaXN0ZXIpLCAiV29yZFR5cGUgbXVzdCBub3QgYmUgYmlnZ2VyIHRoYW4gdGhlIENQVSBhdG9t
aWMgd29yZCBzaXplIik7Ci0gICAgY29uc3RleHByIEJpdG1hcCgpOworICAgIGNvbnN0ZXhwciBC
aXRtYXAoKSA9IGRlZmF1bHQ7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBzaXplKCkK
ICAgICB7CkBAIC01MCwyOCArNTAsMjggQEAgY2xhc3MgQml0bWFwIGZpbmFsIHsKICAgICB9CiAK
ICAgICBib29sIGdldChzaXplX3QsIERlcGVuZGVuY3kgPSBEZXBlbmRlbmN5KCkpIGNvbnN0Owot
ICAgIHZvaWQgc2V0KHNpemVfdCk7Ci0gICAgdm9pZCBzZXQoc2l6ZV90LCBib29sKTsKLSAgICBi
b29sIHRlc3RBbmRTZXQoc2l6ZV90KTsKLSAgICBib29sIHRlc3RBbmRDbGVhcihzaXplX3QpOwor
ICAgIGNvbnN0ZXhwciB2b2lkIHNldChzaXplX3QpOworICAgIGNvbnN0ZXhwciB2b2lkIHNldChz
aXplX3QsIGJvb2wpOworICAgIGNvbnN0ZXhwciBib29sIHRlc3RBbmRTZXQoc2l6ZV90KTsKKyAg
ICBjb25zdGV4cHIgYm9vbCB0ZXN0QW5kQ2xlYXIoc2l6ZV90KTsKICAgICBib29sIGNvbmN1cnJl
bnRUZXN0QW5kU2V0KHNpemVfdCwgRGVwZW5kZW5jeSA9IERlcGVuZGVuY3koKSk7CiAgICAgYm9v
bCBjb25jdXJyZW50VGVzdEFuZENsZWFyKHNpemVfdCwgRGVwZW5kZW5jeSA9IERlcGVuZGVuY3ko
KSk7Ci0gICAgc2l6ZV90IG5leHRQb3NzaWJseVVuc2V0KHNpemVfdCkgY29uc3Q7Ci0gICAgdm9p
ZCBjbGVhcihzaXplX3QpOworICAgIGNvbnN0ZXhwciBzaXplX3QgbmV4dFBvc3NpYmx5VW5zZXQo
c2l6ZV90KSBjb25zdDsKKyAgICBjb25zdGV4cHIgdm9pZCBjbGVhcihzaXplX3QpOwogICAgIHZv
aWQgY2xlYXJBbGwoKTsKLSAgICB2b2lkIGludmVydCgpOworICAgIGNvbnN0ZXhwciB2b2lkIGlu
dmVydCgpOwogICAgIGludDY0X3QgZmluZFJ1bk9mWmVyb3Moc2l6ZV90IHJ1bkxlbmd0aCkgY29u
c3Q7CiAgICAgc2l6ZV90IGNvdW50KHNpemVfdCBzdGFydCA9IDApIGNvbnN0OwotICAgIGJvb2wg
aXNFbXB0eSgpIGNvbnN0OwotICAgIGJvb2wgaXNGdWxsKCkgY29uc3Q7CisgICAgY29uc3RleHBy
IGJvb2wgaXNFbXB0eSgpIGNvbnN0OworICAgIGNvbnN0ZXhwciBib29sIGlzRnVsbCgpIGNvbnN0
OwogICAgIAotICAgIHZvaWQgbWVyZ2UoY29uc3QgQml0bWFwJik7Ci0gICAgdm9pZCBmaWx0ZXIo
Y29uc3QgQml0bWFwJik7Ci0gICAgdm9pZCBleGNsdWRlKGNvbnN0IEJpdG1hcCYpOworICAgIGNv
bnN0ZXhwciB2b2lkIG1lcmdlKGNvbnN0IEJpdG1hcCYpOworICAgIGNvbnN0ZXhwciB2b2lkIGZp
bHRlcihjb25zdCBCaXRtYXAmKTsKKyAgICBjb25zdGV4cHIgdm9pZCBleGNsdWRlKGNvbnN0IEJp
dG1hcCYpOwogCiAgICAgdm9pZCBjb25jdXJyZW50RmlsdGVyKGNvbnN0IEJpdG1hcCYpOwogICAg
IAotICAgIGJvb2wgc3Vic3VtZXMoY29uc3QgQml0bWFwJikgY29uc3Q7CisgICAgY29uc3RleHBy
IGJvb2wgc3Vic3VtZXMoY29uc3QgQml0bWFwJikgY29uc3Q7CiAgICAgCiAgICAgLy8gSWYgdGhl
IGxhbWJkYSByZXR1cm5zIGFuIEl0ZXJhdGlvblN0YXR1cywgd2UgdXNlIGl0LiBUaGUgbGFtYmRh
IGNhbiBhbHNvIHJldHVybgogICAgIC8vIHZvaWQsIGluIHdoaWNoIGNhc2UsIHdlJ2xsIGl0ZXJh
dGUgZXZlcnkgc2V0IGJpdC4KQEAgLTEyMiwxNyArMTIyLDE3IEBAIGNsYXNzIEJpdG1hcCBmaW5h
bCB7CiAgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywg
ZmluZEJpdCgwLCB0cnVlKSk7IH0KICAgICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBp
dGVyYXRvcigqdGhpcywgYml0bWFwU2l6ZSk7IH0KICAgICAKLSAgICB2b2lkIG1lcmdlQW5kQ2xl
YXIoQml0bWFwJik7Ci0gICAgdm9pZCBzZXRBbmRDbGVhcihCaXRtYXAmKTsKKyAgICBjb25zdGV4
cHIgdm9pZCBtZXJnZUFuZENsZWFyKEJpdG1hcCYpOworICAgIGNvbnN0ZXhwciB2b2lkIHNldEFu
ZENsZWFyKEJpdG1hcCYpOwogCiAgICAgdm9pZCBzZXRFYWNoTnRoQml0KHNpemVfdCBuLCBzaXpl
X3Qgc3RhcnQgPSAwLCBzaXplX3QgZW5kID0gYml0bWFwU2l6ZSk7CiAKLSAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgQml0bWFwJikgY29uc3Q7Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEJp
dG1hcCYpIGNvbnN0OworICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgQml0bWFw
JikgY29uc3Q7CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShjb25zdCBCaXRtYXAmKSBj
b25zdDsKIAotICAgIHZvaWQgb3BlcmF0b3J8PShjb25zdCBCaXRtYXAmKTsKLSAgICB2b2lkIG9w
ZXJhdG9yJj0oY29uc3QgQml0bWFwJik7Ci0gICAgdm9pZCBvcGVyYXRvcl49KGNvbnN0IEJpdG1h
cCYpOworICAgIGNvbnN0ZXhwciB2b2lkIG9wZXJhdG9yfD0oY29uc3QgQml0bWFwJik7CisgICAg
Y29uc3RleHByIHZvaWQgb3BlcmF0b3ImPShjb25zdCBCaXRtYXAmKTsKKyAgICBjb25zdGV4cHIg
dm9pZCBvcGVyYXRvcl49KGNvbnN0IEJpdG1hcCYpOwogCiAgICAgdW5zaWduZWQgaGFzaCgpIGNv
bnN0OwogCkBAIC0xNTIsMTUgKzE1Miw5IEBAIGNsYXNzIEJpdG1hcCBmaW5hbCB7CiAgICAgLy8g
YSA2NCBiaXQgdW5zaWduZWQgaW50IHdvdWxkIGdpdmUgMHhmZmZmODAwMAogICAgIHN0YXRpYyBj
b25zdGV4cHIgV29yZFR5cGUgb25lID0gMTsKIAotICAgIHN0ZDo6YXJyYXk8V29yZFR5cGUsIHdv
cmRzPiBiaXRzOworICAgIHN0ZDo6YXJyYXk8V29yZFR5cGUsIHdvcmRzPiBiaXRzIHsgfTsKIH07
CiAKLXRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWNvbnN0
ZXhwciBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpCaXRtYXAoKQotewotICAgIGNsZWFy
QWxsKCk7Ci19Ci0KIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlw
ZT4KIGlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmdldChzaXplX3Qg
biwgRGVwZW5kZW5jeSBkZXBlbmRlbmN5KSBjb25zdAogewpAQCAtMTY4LDEzICsxNjIsMTMgQEAg
aW5saW5lIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Z2V0KHNpemVfdCBuLCBE
ZXBlbmRlbmN5IGRlcGVuZGVuY3kpIGMKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUs
IHR5cGVuYW1lIFdvcmRUeXBlPgotQUxXQVlTX0lOTElORSB2b2lkIEJpdG1hcDxiaXRtYXBTaXpl
LCBXb3JkVHlwZT46OnNldChzaXplX3QgbikKK0FMV0FZU19JTkxJTkUgY29uc3RleHByIHZvaWQg
Qml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0KHNpemVfdCBuKQogewogICAgIGJpdHNb
biAvIHdvcmRTaXplXSB8PSAob25lIDw8IChuICUgd29yZFNpemUpKTsKIH0KIAogdGVtcGxhdGU8
c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotQUxXQVlTX0lOTElORSB2b2lk
IEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnNldChzaXplX3QgbiwgYm9vbCB2YWx1ZSkK
K0FMV0FZU19JTkxJTkUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBl
Pjo6c2V0KHNpemVfdCBuLCBib29sIHZhbHVlKQogewogICAgIGlmICh2YWx1ZSkKICAgICAgICAg
c2V0KG4pOwpAQCAtMTgzLDcgKzE3Nyw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBCaXRtYXA8Yml0
bWFwU2l6ZSwgV29yZFR5cGU+OjpzZXQoc2l6ZV90IG4sIGJvb2wgdmFsdWUpCiB9CiAKIHRlbXBs
YXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSBib29sIEJp
dG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnRlc3RBbmRTZXQoc2l6ZV90IG4pCitpbmxpbmUg
Y29uc3RleHByIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6dGVzdEFuZFNldChz
aXplX3QgbikKIHsKICAgICBXb3JkVHlwZSBtYXNrID0gb25lIDw8IChuICUgd29yZFNpemUpOwog
ICAgIHNpemVfdCBpbmRleCA9IG4gLyB3b3JkU2l6ZTsKQEAgLTE5Myw3ICsxODcsNyBAQCBpbmxp
bmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojp0ZXN0QW5kU2V0KHNpemVfdCBu
KQogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1p
bmxpbmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojp0ZXN0QW5kQ2xlYXIoc2l6
ZV90IG4pCitpbmxpbmUgY29uc3RleHByIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBl
Pjo6dGVzdEFuZENsZWFyKHNpemVfdCBuKQogewogICAgIFdvcmRUeXBlIG1hc2sgPSBvbmUgPDwg
KG4gJSB3b3JkU2l6ZSk7CiAgICAgc2l6ZV90IGluZGV4ID0gbiAvIHdvcmRTaXplOwpAQCAtMjM1
LDcgKzIyOSw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5
cGU+Ojpjb25jdXJyZW50VGVzdEFuZENsZWFyKHNpemVfdCBuCiB9CiAKIHRlbXBsYXRlPHNpemVf
dCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSB2b2lkIEJpdG1hcDxiaXRt
YXBTaXplLCBXb3JkVHlwZT46OmNsZWFyKHNpemVfdCBuKQoraW5saW5lIGNvbnN0ZXhwciB2b2lk
IEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmNsZWFyKHNpemVfdCBuKQogewogICAgIGJp
dHNbbiAvIHdvcmRTaXplXSAmPSB+KG9uZSA8PCAobiAlIHdvcmRTaXplKSk7CiB9CkBAIC0yNDcs
NyArMjQxLDcgQEAgaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Y2xl
YXJBbGwoKQogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5
cGU+Ci1pbmxpbmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjppbnZlcnQoKQor
aW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmludmVy
dCgpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBi
aXRzW2ldID0gfmJpdHNbaV07CkBAIC0yNTksNyArMjUzLDcgQEAgaW5saW5lIHZvaWQgQml0bWFw
PGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6aW52ZXJ0KCkKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJp
dG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIHNpemVfdCBCaXRtYXA8Yml0bWFw
U2l6ZSwgV29yZFR5cGU+OjpuZXh0UG9zc2libHlVbnNldChzaXplX3Qgc3RhcnQpIGNvbnN0Citp
bmxpbmUgY29uc3RleHByIHNpemVfdCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpuZXh0
UG9zc2libHlVbnNldChzaXplX3Qgc3RhcnQpIGNvbnN0CiB7CiAgICAgaWYgKCF+Yml0c1tzdGFy
dCAvIHdvcmRTaXplXSkKICAgICAgICAgcmV0dXJuICgoc3RhcnQgLyB3b3JkU2l6ZSkgKyAxKSAq
IHdvcmRTaXplOwpAQCAtMzAzLDcgKzI5Nyw3IEBAIGlubGluZSBzaXplX3QgQml0bWFwPGJpdG1h
cFNpemUsIFdvcmRUeXBlPjo6Y291bnQoc2l6ZV90IHN0YXJ0KSBjb25zdAogfQogCiB0ZW1wbGF0
ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRt
YXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojppc0VtcHR5KCkgY29uc3QKK2lubGluZSBjb25zdGV4
cHIgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojppc0VtcHR5KCkgY29uc3QKIHsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGlmIChiaXRz
W2ldKQpAQCAtMzEyLDcgKzMwNiw3IEBAIGlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBX
b3JkVHlwZT46OmlzRW1wdHkoKSBjb25zdAogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6
ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29y
ZFR5cGU+Ojppc0Z1bGwoKSBjb25zdAoraW5saW5lIGNvbnN0ZXhwciBib29sIEJpdG1hcDxiaXRt
YXBTaXplLCBXb3JkVHlwZT46OmlzRnVsbCgpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBpZiAofmJpdHNbaV0pIHsKQEAgLTMzMCwyMSAr
MzI0LDIxIEBAIGlubGluZSBib29sIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmlzRnVs
bCgpIGNvbnN0CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3Jk
VHlwZT4KLWlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46Om1lcmdlKGNv
bnN0IEJpdG1hcCYgb3RoZXIpCitpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNp
emUsIFdvcmRUeXBlPjo6bWVyZ2UoY29uc3QgQml0bWFwJiBvdGhlcikKIHsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0gfD0gb3RoZXIuYml0
c1tpXTsKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBl
PgotaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6ZmlsdGVyKGNvbnN0
IEJpdG1hcCYgb3RoZXIpCitpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNpemUs
IFdvcmRUeXBlPjo6ZmlsdGVyKGNvbnN0IEJpdG1hcCYgb3RoZXIpCiB7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBiaXRzW2ldICY9IG90aGVyLmJpdHNb
aV07CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4K
LWlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmV4Y2x1ZGUoY29uc3Qg
Qml0bWFwJiBvdGhlcikKK2lubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwg
V29yZFR5cGU+OjpleGNsdWRlKGNvbnN0IEJpdG1hcCYgb3RoZXIpCiB7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBiaXRzW2ldICY9IH5vdGhlci5iaXRz
W2ldOwpAQCAtMzcxLDcgKzM2NSw3IEBAIGlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBX
b3JkVHlwZT46OmNvbmN1cnJlbnRGaWx0ZXIoY29uc3QgQml0bWFwJiBvdGhlcikKIH0KIAogdGVt
cGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIGJvb2wg
Qml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c3Vic3VtZXMoY29uc3QgQml0bWFwJiBvdGhl
cikgY29uc3QKK2lubGluZSBjb25zdGV4cHIgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5
cGU+OjpzdWJzdW1lcyhjb25zdCBCaXRtYXAmIG90aGVyKSBjb25zdAogewogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkgewogICAgICAgICBXb3JkVHlwZSBteUJpdHMgPSBi
aXRzW2ldOwpAQCAtNDI3LDcgKzQyMSw3IEBAIGlubGluZSBzaXplX3QgQml0bWFwPGJpdG1hcFNp
emUsIFdvcmRUeXBlPjo6ZmluZEJpdChzaXplX3Qgc3RhcnRJbmRleCwgYm9vbCB2YWx1CiB9CiAK
IHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSB2
b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46Om1lcmdlQW5kQ2xlYXIoQml0bWFwJiBv
dGhlcikKK2lubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+
OjptZXJnZUFuZENsZWFyKEJpdG1hcCYgb3RoZXIpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB3b3JkczsgKytpKSB7CiAgICAgICAgIGJpdHNbaV0gfD0gb3RoZXIuYml0c1tpXTsKQEAg
LTQzNiw3ICs0MzAsNyBAQCBpbmxpbmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+
OjptZXJnZUFuZENsZWFyKEJpdG1hcCYgb3RoZXIpCiB9CiAKIHRlbXBsYXRlPHNpemVfdCBiaXRt
YXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KLWlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXpl
LCBXb3JkVHlwZT46OnNldEFuZENsZWFyKEJpdG1hcCYgb3RoZXIpCitpbmxpbmUgY29uc3RleHBy
IHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0QW5kQ2xlYXIoQml0bWFwJiBv
dGhlcikKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpIHsKICAgICAg
ICAgYml0c1tpXSA9IG90aGVyLmJpdHNbaV07CkBAIC00NzYsNyArNDcwLDcgQEAgaW5saW5lIHZv
aWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0RWFjaE50aEJpdChzaXplX3Qgbiwg
c2l6ZV90IHN0YXJ0LAogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUg
V29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpvcGVy
YXRvcj09KGNvbnN0IEJpdG1hcCYgb3RoZXIpIGNvbnN0CitpbmxpbmUgY29uc3RleHByIGJvb2wg
Qml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3I9PShjb25zdCBCaXRtYXAmIG90
aGVyKSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkgewog
ICAgICAgICBpZiAoYml0c1tpXSAhPSBvdGhlci5iaXRzW2ldKQpAQCAtNDg2LDI3ICs0ODAsMjcg
QEAgaW5saW5lIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3I9PShj
b25zdCBCaXRtYXAmIG90aGVyKSBjb25zdAogfQogCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6
ZSwgdHlwZW5hbWUgV29yZFR5cGU+Ci1pbmxpbmUgYm9vbCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29y
ZFR5cGU+OjpvcGVyYXRvciE9KGNvbnN0IEJpdG1hcCYgb3RoZXIpIGNvbnN0CitpbmxpbmUgY29u
c3RleHByIGJvb2wgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3IhPShjb25z
dCBCaXRtYXAmIG90aGVyKSBjb25zdAogewogICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsK
IH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5s
aW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3J8PShjb25zdCBC
aXRtYXAmIG90aGVyKQoraW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBX
b3JkVHlwZT46Om9wZXJhdG9yfD0oY29uc3QgQml0bWFwJiBvdGhlcikKIHsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0gfD0gb3RoZXIuYml0
c1tpXTsKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBl
PgotaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0b3ImPShj
b25zdCBCaXRtYXAmIG90aGVyKQoraW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBT
aXplLCBXb3JkVHlwZT46Om9wZXJhdG9yJj0oY29uc3QgQml0bWFwJiBvdGhlcikKIHsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0gJj0gb3Ro
ZXIuYml0c1tpXTsKIH0KIAogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdv
cmRUeXBlPgotaW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6b3BlcmF0
b3JePShjb25zdCBCaXRtYXAmIG90aGVyKQoraW5saW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxi
aXRtYXBTaXplLCBXb3JkVHlwZT46Om9wZXJhdG9yXj0oY29uc3QgQml0bWFwJiBvdGhlcikKIHsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kpCiAgICAgICAgIGJpdHNbaV0g
Xj0gb3RoZXIuYml0c1tpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA5NTlhYzY1MTk5OWM5MjQyMDlmOWY3YTFjOTY3Y2U2NDZmYjdkZjJhLi42
ZGZmOTBmODY3NzFjMzYzODAzMGYwZDM0NDE5MmFlZmQyYjEwNzZmIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjIt
MDItMDYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbV1RG
XSBNYWtlIEJpdG1hcCBjb25zdGV4cHIgZnJpZW5kbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQml0bWFw
LmNwcDoKKwogMjAyMi0wMi0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFRocmVhZCBzdXNwZW5kIGFuZCByZXN1bWUgc2hvdWxkIHRha2UgYSBnbG9iYWwg
bG9jayB0byBhdm9pZCBkZWFkbG9jawpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvQml0bWFwLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0JpdG1h
cC5jcHAKaW5kZXggMzgxNTNiMjY2MDVkNjJlMTNkZjIxZTVhMDVlZTIwOTQzYzIxZWJiYS4uMmEz
ZWU4OGU5ZDY2ZTU1NGQ1ZTZjZTg5OWY0ODU1ZTI0Mzc3OGY3OSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQml0bWFwLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9CaXRtYXAuY3BwCkBAIC0xMDMsNiArMTAzLDE1IEBAIGNvbnN0ZXhwciBz
aXplX3QgZXhwZWN0ZWROdW1iZXJPZlNldEJpdHMyID0gY291bnRCaXRzKGV4cGVjdGVkQml0czIs
IHNpemUpOwogICAgIEJpdG1hcDxzbWFsbFNpemUsIFdvcmRUeXBlPiBzbWFsbEJpdG1hcE9uZXM7
IFwKICAgICBCaXRtYXA8c21hbGxTaXplLCBXb3JkVHlwZT4gc21hbGxCaXRtYXAxOyAvKiBXaWxs
IGhvbGQgdmFsdWVzIHNwZWNpZmllZCBpbiBleHBlY3RlZFNtYWxsQml0czEuICovIFwKICAgICBC
aXRtYXA8c21hbGxTaXplLCBXb3JkVHlwZT4gc21hbGxCaXRtYXAyOyAvKiBXaWxsIGhvbGQgdmFs
dWVzIHNwZWNpZmllZCBpbiBleHBlY3RlZFNtYWxsQml0czIuICovIFwKKyAgICBVTlVTRURfVkFS
SUFCTEUoYml0bWFwWmVyb2VzKTsgXAorICAgIFVOVVNFRF9WQVJJQUJMRShiaXRtYXAxKTsgXAor
ICAgIFVOVVNFRF9WQVJJQUJMRShiaXRtYXAyKTsgXAorICAgIFVOVVNFRF9WQVJJQUJMRShiaXRt
YXAyQ2xvbmUpOyBcCisgICAgVU5VU0VEX1ZBUklBQkxFKGJpdG1hcE9uZXMpOyBcCisgICAgVU5V
U0VEX1ZBUklBQkxFKHNtYWxsQml0bWFwWmVyb2VzKTsgXAorICAgIFVOVVNFRF9WQVJJQUJMRShz
bWFsbEJpdG1hcE9uZXMpOyBcCisgICAgVU5VU0VEX1ZBUklBQkxFKHNtYWxsQml0bWFwMSk7IFwK
KyAgICBVTlVTRURfVkFSSUFCTEUoc21hbGxCaXRtYXAyKTsKIAogI2RlZmluZSBERUNMQVJFX0FO
RF9JTklUX0JJVE1BUFNfRk9SX1RFU1QoKSBcCiAgICAgREVDTEFSRV9CSVRNQVBTX0ZPUl9URVNU
KCkgXAo=
</data>
<flag name="review"
          id="477613"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>