<?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>186102</bug_id>
          
          <creation_ts>2018-05-30 10:51:06 -0700</creation_ts>
          <short_desc>[JSC] Remove WeakReferenceHarvester</short_desc>
          <delta_ts>2018-06-02 16:03:00 -0700</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>
          
          <blocked>180248</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1428501</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-30 10:51:06 -0700</bug_when>
    <thetext>[JSC] Remove WeakReferenceHaverster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428502</commentid>
    <comment_count>1</comment_count>
      <attachid>341582</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-30 10:56:41 -0700</bug_when>
    <thetext>Created attachment 341582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428503</commentid>
    <comment_count>2</comment_count>
      <attachid>341582</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-30 10:59:16 -0700</bug_when>
    <thetext>Comment on attachment 341582
Patch

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

&gt; Source/JavaScriptCore/heap/Heap.cpp:2719
&gt; +            vm.weakMapSpace.forEachMarkedCell(

It is ok to be invoked concurrently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428512</commentid>
    <comment_count>3</comment_count>
      <attachid>341583</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-30 11:06:05 -0700</bug_when>
    <thetext>Created attachment 341583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429543</commentid>
    <comment_count>4</comment_count>
      <attachid>341842</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-06-02 04:40:18 -0700</bug_when>
    <thetext>Created attachment 341842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429546</commentid>
    <comment_count>5</comment_count>
      <attachid>341844</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-06-02 05:27:41 -0700</bug_when>
    <thetext>Created attachment 341844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429580</commentid>
    <comment_count>6</comment_count>
      <attachid>341844</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-06-02 12:57:33 -0700</bug_when>
    <thetext>Comment on attachment 341844
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429591</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-06-02 14:11:24 -0700</bug_when>
    <thetext>Committed r232443: &lt;https://trac.webkit.org/changeset/232443&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429592</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-02 14:12:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/40750438&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341582</attachid>
            <date>2018-05-30 10:56:41 -0700</date>
            <delta_ts>2018-05-30 11:06:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186102-20180531025640.patch</filename>
            <type>text/plain</type>
            <size>20212</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NzE0ZmVlZjVhNTkyNjNlM2M2MzU5ZDU5YzNlZWMxMWJiOGUwNDI0Li5hNTAzNDhmM2VkNWQ0ZWYy
ZTE4ZjMwOGQ4ZjJiYjVmNmUzZTc4OGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOC0wNS0zMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgV2Vha1JlZmVyZW5jZUhhcnZlc3RlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTAyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgc2V2ZXJh
bCBjbGVhbnVwcywgbm93IEpTV2Vha01hcCBiZWNvbWVzIHRoZSBsYXN0IHVzZXIgb2YgV2Vha1Jl
ZmVyZW5jZUhhcnZlc3Rlci4KKyAgICAgICAgU2luY2UgSlNXZWFrTWFwIGlzIGFscmVhZHkgbWFu
YWdlZCBpbiBJc29TdWJzcGFjZSwgd2UgY2FuIGl0ZXJhdGUgbWFya2VkIEpTV2Vha01hcAorICAg
ICAgICBieSB1c2luZyBJc29TdWJzcGFjZTo6Zm9yRWFjaE1hcmtlZENlbGwuCisKKyAgICAgICAg
VGhpcyBwYXRjaCByZW1vdmVzIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuIEluc3RlYWQgb2YgbWFu
YWdpbmcgdGhpcyBsaW5rZWQtbGlzdCwgb3VyCisgICAgICAgIFdlYWsgUmVmZXJlbmNlIEhhcnZl
c3RlciBjb25zdHJhaW50IHNldCBpdGVyYXRlcyBtYXJrZWQgSlNXZWFrTWFwIGJ5IHVzaW5nIFN1
YnNwYWNlLgorCisgICAgICAgIEF0dGFjaGVkIG1pY3JvYmVuY2htYXJrIGRvZXMgbm90IHNob3cg
YW55IHJlZ3Jlc3Npb24uCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lmg6Cisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAo
SlNDOjpIZWFwOjplbmRNYXJraW5nKToKKyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNvbnN0
cmFpbnRzKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFkZFdlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAg
KiBoZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50
aW1lL1dlYWtNYXBJbXBsLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha01hcEltcGw8V2Vha01hcEJ1
Y2tldD46OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDxXZWFrTWFw
QnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5Pj46OnZpc2l0V2Vha1JlZmVyZW5jZXMpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNr
ZXREYXRhS2V5VmFsdWU+Pjo6dmlzaXRXZWFrUmVmZXJlbmNlcyk6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9XZWFrTWFwSW1wbC5oOgorICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDo6RGVh
ZEtleUNsZWFuZXI6OnRhcmdldCk6IERlbGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvV2Vha01hcEltcGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OldlYWtN
YXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXk+Pjo6dmlzaXRXZWFrUmVm
ZXJlbmNlcyk6CisgICAgICAgIChKU0M6OldlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01h
cEJ1Y2tldERhdGFLZXlWYWx1ZT4+Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKToKKwogMjAxOC0wNS0z
MCAgRG9taW5payBJbmZ1ZWhyICA8ZGluZnVlaHJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTUlQ
U10gRml4IGJ1aWxkIG9uIE1JUFMzMnIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0FQSVdyYXBwZXJPYmplY3QuaAppbmRleCBhYWU1ZDQxOGE3YTMyOTE1Y2E0M2VjOTcyOGY2ZTgw
YzJhN2U3YmJlLi4zMDVmY2E0Y2UwYjhmZTIxZDZiODM4NGY5NjI3YjM2NzkwNTU0MmQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0LmgKQEAgLTI5
LDcgKzI5LDYgQEAKICNpbmNsdWRlICJKU0Jhc2UuaCIKICNpbmNsdWRlICJKU0NQb2lzb24uaCIK
ICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgotI2luY2x1ZGUgIldlYWtSZWZlcmVu
Y2VIYXJ2ZXN0ZXIuaCIKICNpbmNsdWRlIDx3dGYvUG9pc29uZWQuaD4KIAogI2lmIEpTQ19PQkpD
X0FQSV9FTkFCTEVEIHx8IGRlZmluZWQoSlNDX0dMSUJfQVBJX0VOQUJMRUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDdjYmU1YzkyZDMxMmIwMjRkYWFkZWMxNmVlOWQ5
ZWZhYzYxMWRlMi4uYjdiNjE3YjI1ZWQ2MWM2MzJiOWY5NDZjYmFlM2IxMzE5ZDI2ODRlNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTY3LDcgKzU2Nyw2IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaGVhcC9XZWFrSGFu
ZGxlT3duZXIuaAogICAgIGhlYXAvV2Vha0ltcGwuaAogICAgIGhlYXAvV2Vha0lubGluZXMuaAot
ICAgIGhlYXAvV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oCiAgICAgaGVhcC9XZWFrU2V0LmgKICAg
ICBoZWFwL1dlYWtTZXRJbmxpbmVzLmgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyOWNiYWI0ZDNiMDRiODg4ZTBlYjVlMTg0MDU1ZDhkM2JiZDU2MGRiLi4zZjRhMmY0Yjg4MDU2
M2E4ZGY4NDdhZGZmYTNiYmQ5NTVhYjk3MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTUwLDcgKzE1MCw2IEBACiAJCTBGMjM1QkUyMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExU
aHVua3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MjM1QkNDMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjIzNUJFQzE3MTc4RTczMDA2OTBDN0Yg
LyogREZHT1NSRXhpdEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMjM1QkU4MTcxNzhFNzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0QmFzZS5oICov
OyB9OwogCQkwRjIzNUJFRTE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdFByZXBhcmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIzNUJF
QTE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdFByZXBhcmF0aW9uLmggKi87IH07Ci0JCTBG
MjQyREE3MTNGM0IxRTgwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0MkRBNTEzRjNCMUJC
MDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMjRFNTQxMTdFQTlGNTkwMEFCQjIxNyAv
KiBBc3NlbWJseUhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMjRFNTNDMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjI0RTU0
MjE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0RTUzRDE3RUE5RjU5MDBBQkIyMTcgLyogQ0Nh
bGxIZWxwZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEYyNEU1NDMxN0VBOUY1OTAwQUJCMjE3IC8qIEZQUkluZm8uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTNFMTdFQTlGNTkwMEFCQjIx
NyAvKiBGUFJJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTIwNjEsNyArMjA2MCw2IEBACiAJCTBGMjM1QkU4MTcxNzhFNzMwMDY5MEM3RiAv
KiBERkdPU1JFeGl0QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdP
U1JFeGl0QmFzZS5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRCYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMjM1QkU5MTcxNzhFNzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0UHJl
cGFyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHT1NS
RXhpdFByZXBhcmF0aW9uLmNwcDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0UHJlcGFyYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIzNUJFQTE3MTc4RTczMDA2OTBDN0Yg
LyogREZHT1NSRXhpdFByZXBhcmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERGR09TUkV4aXRQcmVwYXJhdGlvbi5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRQcmVwYXJh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjI0MkRBNTEzRjNCMUJCMDA3
QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGMjRFNTNCMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXNzZW1ibHlIZWxwZXJzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1M0MxN0VBOUY1OTAwQUJCMjE3
IC8qIEFzc2VtYmx5SGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
c3NlbWJseUhlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1M0Qx
N0VBOUY1OTAwQUJCMjE3IC8qIENDYWxsSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDQ2FsbEhlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQ5MTIsOSArNDkxMCw5IEBACiAJCQkJMTRCRDU5QkYwQTNFOEY5MDAwQkFGNTlDIC8qIHRlc3Rh
cGkgKi8sCiAJCQkJMEZFQzg1QUQxQkRCNUNGMTAwODBGRjc0IC8qIHRlc3RiMyAqLywKIAkJCQlG
RTUzM0NBQzFGMjE3REI0MDAxNkExRkUgLyogdGVzdG1hc20gKi8sCisJCQkJNzkyODFCREMyMEI2
MkIzRTAwMkUyQTYwIC8qIHRlc3RtZW0gKi8sCiAJCQkJNjUxMTIzMDUxNDA0NkE0QzAwMkIxMDFE
IC8qIHRlc3RSZWdFeHAgKi8sCiAJCQkJOTMyRjVCRDkwODIyQTFDNzAwNzM2OTc1IC8qIEphdmFT
Y3JpcHRDb3JlLmZyYW1ld29yayAqLywKLQkJCQk3OTI4MUJEQzIwQjYyQjNFMDAyRTJBNjAgLyog
dGVzdG1lbSAqLywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtNTgxNSw3ICs1ODEzLDYgQEAKIAkJCQkxNEY3MjU2NDE0RUUyNjVFMDBC
MTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmggKi8sCiAJCQkJMTRFODRGOUQxNEVFMUFDQzAwRDZE
NUQ0IC8qIFdlYWtJbXBsLmggKi8sCiAJCQkJMTRCRTdEMzIxNzEzNUNGNDAwRDE4MDdBIC8qIFdl
YWtJbmxpbmVzLmggKi8sCi0JCQkJMEYyNDJEQTUxM0YzQjFCQjAwN0FERDRDIC8qIFdlYWtSZWZl
cmVuY2VIYXJ2ZXN0ZXIuaCAqLywKIAkJCQkxNEU4NEY5QjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vh
a1NldC5jcHAgKi8sCiAJCQkJMTRFODRGOUMxNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtTZXQuaCAq
LywKIAkJCQkxNDE1MDEzMjE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCAqLywK
QEAgLTYyODYsOCArNjI4Myw4IEBACiAJCTc5QUJDQzU1MjBCNzgxMjYwMDMyM0Q1RiAvKiB0ZXN0
bWVtMiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNzlB
QkNDNTYyMEI3ODEyNjAwMzIzRDVGIC8qIHRlc3RtZW0yLm0gKi8sCiAJCQkJNzlBQkNDNTgyMEI3
ODEyNjAwMzIzRDVGIC8qIHRlc3RtZW0yLjEgKi8sCisJCQkJNzlBQkNDNTYyMEI3ODEyNjAwMzIz
RDVGIC8qIHRlc3RtZW0yLm0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRlc3RtZW0yOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTgzNjUsNyArODM2Miw2IEBACiAJCQkJMEY0QzkxNjYx
QzI5RjRGMjAwNDM0MUE2IC8qIEIzT3JpZ2luRHVtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
Qzg1MjYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFNwZWNpYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRUM4NTI4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BhdGNocG9pbnRWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEZEMkZEOTUyMEI1MkJFMjAwRjA5NDQxIC8qIElzb1N1YnNw
YWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0
IC8qIEIzUENUb09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MkExQkRBQ0RB
QzAwODBGRjc0IC8qIEIzUGhhc2VTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzNzMwOEQx
QzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCBpbiBIZWFkZXJzICovLApAQCAtODQ5
Myw2ICs4NDg5LDcgQEAKIAkJCQlBN0U1QTNBODE3OTc0MzJEMDBFODkzQzAgLyogQ29tcGlsYXRp
b25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEYxMUU4MjA5QkNEQUIwMDcwOTY1NCAv
KiBDb21waWxlclRpbWluZ1Njb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRDRTEyQTFGQUZB
ODVGMDA2RjM5MDEgLyogQ29tcGxldGVTdWJzcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZE
MkZEOTQyMEI1MkJERTAwRjA5NDQxIC8qIENvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzE4QzNGNDBFMTZGNUNEMDBCMzQ0NjAgLyogQ29tcGxldGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY2RkM3NTExOTYxMTBBODAwRTFEMDJEIC8qIENvbXBsZXhHZXRT
dGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREIyQ0VBMTc0ODk2QzcwMDdCM0MxQiAvKiBD
b25jdXJyZW50SlNMb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTg5OTAsNiArODk4Nyw3IEBACiAJ
CQkJMEZCNDY3ODAxRkREQTZGMTAwM0ZDQjA5IC8qIElzb0NlbGxTZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQjQ2NzgxMUZEREE2RjcwMDNGQ0IwOSAvKiBJc29DZWxsU2V0SW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZEQ0UxMkQxRkFGQjRFNTAwNkYzOTAxIC8qIElzb1N1YnNwYWNl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQyRkQ5NTIwQjUyQkUyMDBGMDk0NDEgLyogSXNvU3Vi
c3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFMEZFNzIwODZBRDQ4MDA5N0Yw
REUgLyogSXNvU3Vic3BhY2VQZXJWTS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEI5RjZENTYxRDU5
MTJGQTAwMUM3MzlGIC8qIEl0ZXJhdGlvbktpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNEQ1
NUI4MUFFNzE2Q0EwMDUyRTQ1OSAvKiBJdGVyYXRpb25TdGF0dXMuaCBpbiBIZWFkZXJzICovLApA
QCAtOTAwMCw3ICs4OTk4LDYgQEAKIAkJCQlCQzE4QzQxNDBFMTZGNUNEMDBCMzQ0NjAgLyogSmF2
YVNjcmlwdENvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE1MEUxNkY1Q0QwMEIzNDQ2
MCAvKiBKYXZhU2NyaXB0Q29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyOUQ5MzAw
RUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZEMkZEOTQyMEI1
MkJERTAwRjA5NDQxIC8qIENvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRTEyMjAyNzFCRTdGNThDMDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjc1QTA2NjIwMTNFNEYxMDAzOEUyQ0YgLyogSklUQWxsb2NhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTNBMDZCMjFDMTBDQjg5MDAzOTBGREQgLyogSklUQml0QW5k
R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTk2MTcsNyArOTYxNCw2IEBACiAJCQkJRTNB
MzJCQzcxRkM4MzE0NzAwN0Q3RTc2IC8qIFdlYWtNYXBJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMzkzQUREODFGRTcwMkQwMDAyMkQ2ODEgLyogV2Vha01hcEltcGxJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBN0NBM0FFNjE3REE0MUFFMDA2NTM4QUYgLyogV2Vha01hcFByb3RvdHlw
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FERDRDIC8qIFdlYWtS
ZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0RkExMTRFRTFBQ0Mw
MEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDlGQjg2QTFBRTMzNUM2
MDAzOUQwNjkgLyogV2Vha1NldENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA5YTdjYTYwY2M4NTZlN2RkMjBlODE4
N2IyNjdlMTA2NjM2MWZlNjllLi4wMmZiYTY2MjhhNzExNWYyN2M3NTZkOWEwYjkxOWNiZWViZGRk
YzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtNzgxLDcgKzc4MSw2IEBA
IHZvaWQgSGVhcDo6ZW5kTWFya2luZygpCiAgICAgICAgIH0pOwogCiAgICAgYXNzZXJ0TWFya1N0
YWNrc0VtcHR5KCk7Ci0gICAgbV93ZWFrUmVmZXJlbmNlSGFydmVzdGVycy5yZW1vdmVBbGwoKTsK
IAogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmFjZU1hcmtTdGFjay0+aXNFbXB0eSgpKTsKICAgICAK
QEAgLTI3MTYsOCArMjcxNSwxMSBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAg
ICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJXcmgiLCAiV2VhayBSZWZlcmVuY2Ug
SGFydmVzdGVycyIsCiAgICAgICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7
Ci0gICAgICAgICAgICBmb3IgKFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIqIGN1cnJlbnQgPSBtX3dl
YWtSZWZlcmVuY2VIYXJ2ZXN0ZXJzLmhlYWQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQt
Pm5leHQoKSkKLSAgICAgICAgICAgICAgICBjdXJyZW50LT52aXNpdFdlYWtSZWZlcmVuY2VzKHNs
b3RWaXNpdG9yKTsKKyAgICAgICAgICAgIFZNJiB2bSA9IHNsb3RWaXNpdG9yLnZtKCk7CisgICAg
ICAgICAgICB2bS53ZWFrTWFwU3BhY2UuZm9yRWFjaE1hcmtlZENlbGwoCisgICAgICAgICAgICAg
ICAgWyZdIChIZWFwQ2VsbCogY2VsbCwgSGVhcENlbGw6OktpbmQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8SlNXZWFrTWFwKj4oY2VsbCktPnZpc2l0V2Vha1JlZmVyZW5jZXMo
c2xvdFZpc2l0b3IpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9LAogICAgICAgICBD
b25zdHJhaW50Vm9sYXRpbGl0eTo6R3JleWVkQnlNYXJraW5nKTsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuaAppbmRleCBjOGE2ZjBkNjRmMzIyYTMxZWJiMTAyYzZjYzM5OGU1MGYxYzI1
M2I4Li5jZmZlZGI3NjI3MjczODJiOTM3Y2FkNTNhMzUzOWM3MDgzZTlkMzBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5oCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiU3RydWN0dXJl
SURUYWJsZS5oIgogI2luY2x1ZGUgIlN5bmNocm9ub3VzbmVzcy5oIgogI2luY2x1ZGUgIldlYWtI
YW5kbGVPd25lci5oIgotI2luY2x1ZGUgIldlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCIKICNpbmNs
dWRlIDx3dGYvQXV0b21hdGljVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmN1cnJlbnRQdHJI
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CkBAIC02NzEsOCArNjcwLDYgQEAgY2xh
c3MgSGVhcCB7CiAKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNfYmxvY2tGcmFnbWVudExlbmd0
aCA9IDMyOwogCi0gICAgTGlzdGFibGVIYW5kbGVyPFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXI+OjpM
aXN0IG1fd2Vha1JlZmVyZW5jZUhhcnZlc3RlcnM7Ci0KICAgICBQYXJhbGxlbEhlbHBlckNsaWVu
dCBtX2hlbHBlckNsaWVudDsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkKFNsb3RWaXNpdG9y
Jik+PiBtX2JvbnVzVmlzaXRvclRhc2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcAppbmRleCA1YjA5MjRhODQ2ZDJjYTEyMzQ0ZmM1MzdhMjdmZWMyMDU5MDU0
OWQ0Li5iODk2ODZlNTQ1YThlNzBiMjg5ZDFiNDIxODY4ZTlhODJkZmQ3MDYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwCkBAIC03NTMsMTEgKzc1Myw2IEBA
IHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0ZUFuZERyYWluKE1vbm90b25pY1RpbWUgdGltZW91dCkK
ICAgICBkcmFpbih0aW1lb3V0KTsKIH0KIAotdm9pZCBTbG90VmlzaXRvcjo6YWRkV2Vha1JlZmVy
ZW5jZUhhcnZlc3RlcihXZWFrUmVmZXJlbmNlSGFydmVzdGVyKiB3ZWFrUmVmZXJlbmNlSGFydmVz
dGVyKQotewotICAgIG1faGVhcC5tX3dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXJzLmFkZFRocmVhZFNh
ZmUod2Vha1JlZmVyZW5jZUhhcnZlc3Rlcik7Ci19Ci0KIHZvaWQgU2xvdFZpc2l0b3I6OmRpZFJh
Y2UoY29uc3QgVmlzaXRSYWNlS2V5JiByYWNlKQogewogICAgIGlmIChPcHRpb25zOjp2ZXJib3Nl
VmlzaXRSYWNlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAppbmRl
eCAyOWZiZmFjYjU2MjM0MjA5MzMxYmRiZjYwNmRmZDE1YzI3NmNjMzAzLi5lOGEyNzc0M2E2YzYz
YjEyYWQ5OTc3M2FiZDI2MGQ4MzlhZDMxNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1Nsb3RWaXNpdG9yLmgKQEAgLTQ1LDcgKzQ1LDYgQEAgY2xhc3MgTWFya2VkQmxvY2s7CiBjbGFz
cyBNYXJraW5nQ29uc3RyYWludDsKIGNsYXNzIE1hcmtpbmdDb25zdHJhaW50U29sdmVyOwogdGVt
cGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2VhazsKLWNsYXNzIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0
ZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFy
cmllckJhc2U7CiAKIHR5cGVkZWYgdWludDMyX3QgSGVhcFZlcnNpb247CkBAIC0xNDAsOCArMTM5
LDYgQEAgY2xhc3MgU2xvdFZpc2l0b3IgewogICAgIHZvaWQgcmVwb3J0RXh0ZXJuYWxNZW1vcnlW
aXNpdGVkKHNpemVfdCk7CiAjZW5kaWYKICAgICAKLSAgICB2b2lkIGFkZFdlYWtSZWZlcmVuY2VI
YXJ2ZXN0ZXIoV2Vha1JlZmVyZW5jZUhhcnZlc3RlciopOwotCiAgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7CiAKICAgICBib29sIGlzQnVpbGRpbmdIZWFwU25hcHNob3QoKSBjb25z
dCB7IHJldHVybiAhIW1faGVhcFNuYXBzaG90QnVpbGRlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0ODA3ZTA2NzkxZWE3YTg3YTZjOTZlOTIwOWI2NWYwMDMxN2E3ZTA1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICoKLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkxpc3RhYmxlSGFuZGxlci5oIgotCi1uYW1lc3Bh
Y2UgSlNDIHsKLQotY2xhc3MgU2xvdFZpc2l0b3I7Ci0KLWNsYXNzIFdlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXIgOiBwdWJsaWMgTGlzdGFibGVIYW5kbGVyPFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXI+IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgdmlzaXRXZWFrUmVmZXJlbmNlcyhTbG90VmlzaXRv
ciYpID0gMDsKLSAgICAKLXByb3RlY3RlZDoKLSAgICBXZWFrUmVmZXJlbmNlSGFydmVzdGVyKCkK
LSAgICB7Ci0gICAgfQotICAgIAotICAgIHZpcnR1YWwgfldlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIo
KSB7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2Vha01hcEltcGwuY3BwCmluZGV4IGZjNWViZGNjNGZhMDI2OTIyM2Q2NjQ0Nzhi
NzEyMjMyZTZjMjFhYjQuLjBlMzVhMDgyNzEwYmY0YjhiNWZjYWQ5NGYzZGUwNDkwNTEyZWM2MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbC5jcHAKQEAg
LTQ1LDkgKzQ1LDYgQEAgdm9pZCBXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0Pjo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG8KICAgICBXZWFrTWFwSW1wbCog
dGhpc09iamVjdCA9IGpzQ2FzdDxXZWFrTWFwSW1wbCo+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKICAgICBCYXNlOjp2aXNpdENoaWxk
cmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwotCi0gICAgaWYgKGlzV2Vha01hcCgpKQotICAgICAg
ICB2aXNpdG9yLmFkZFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIoJnRoaXNPYmplY3QtPm1fZGVhZEtl
eUNsZWFuZXIpOwogICAgIHZpc2l0b3IucmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkKHRoaXNPYmpl
Y3QtPm1fY2FwYWNpdHkgKiBzaXplb2YoV2Vha01hcEJ1Y2tldCkpOwogfQogCkBAIC01OCwyNiAr
NTUsNiBAQCBzaXplX3QgV2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldD46OmVzdGltYXRlZFNpemUo
SlNDZWxsKiBjZWxsKQogICAgIHJldHVybiBCYXNlOjplc3RpbWF0ZWRTaXplKHRoaXNPYmplY3Qp
ICsgKHNpemVvZihXZWFrTWFwSW1wbCkgLSBzaXplb2YoQmFzZSkpICsgdGhpc09iamVjdC0+bV9j
YXBhY2l0eSAqIHNpemVvZihXZWFrTWFwQnVja2V0KTsKIH0KIAotdGVtcGxhdGUgPD4KLXZvaWQg
V2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleT4+Ojp2aXNpdFdl
YWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJikKLXsKLSAgICAvLyBPbmx5IEpTV2Vha01hcCBuZWVk
cyB0byBoYXJ2ZXN0IHZhbHVlIHJlZmVyZW5jZXMKLX0KLQotdGVtcGxhdGUgPD4KLXZvaWQgV2Vh
a01hcEltcGw8V2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleVZhbHVlPj46OnZpc2l0
V2Vha1JlZmVyZW5jZXMoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgYXV0byogYnVmZmVy
ID0gdGhpcy0+YnVmZmVyKCk7Ci0gICAgZm9yICh1aW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwg
bV9jYXBhY2l0eTsgKytpbmRleCkgewotICAgICAgICBhdXRvKiBidWNrZXQgPSBidWZmZXIgKyBp
bmRleDsKLSAgICAgICAgaWYgKGJ1Y2tldC0+aXNFbXB0eSgpIHx8IGJ1Y2tldC0+aXNEZWxldGVk
KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFIZWFwOjppc01hcmtlZChi
dWNrZXQtPmtleSgpKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBidWNrZXQtPnZp
c2l0QWdncmVnYXRlKHZpc2l0b3IpOwotICAgIH0KLX0KLQogdGVtcGxhdGUgPHR5cGVuYW1lIFdl
YWtNYXBCdWNrZXQ+CiB0ZW1wbGF0ZTx0eXBlbmFtZSBBcHBlbmRlcj4KIHZvaWQgV2Vha01hcElt
cGw8V2Vha01hcEJ1Y2tldD46OnRha2VTbmFwc2hvdEludGVybmFsKHVuc2lnbmVkIGxpbWl0LCBB
cHBlbmRlciBhcHBlbmRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtNYXBJbXBsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFw
SW1wbC5oCmluZGV4IDFiZjYzNTBiMDhjZGQxMDZjN2E4YjZhZWUxOTY1OGU1M2U4Nzk2NjMuLmVk
NDlmODAyZDM0ZDJkZDA5ZjgzZDhhY2NlOTgzM2ZmY2MwMzcyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuaApAQCAtMzA5LDYgKzMwOSw3IEBAIGNsYXNz
IFdlYWtNYXBJbXBsIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICAgICAgcmV0
dXJuICZ2bS53ZWFrU2V0U3BhY2U7CiAgICAgfQogCisgICAgdm9pZCB2aXNpdFdlYWtSZWZlcmVu
Y2VzKFNsb3RWaXNpdG9yJik7CiAgICAgdm9pZCBmaW5hbGl6ZVVuY29uZGl0aW9uYWxseShWTSYp
OwogCiBwcml2YXRlOgpAQCAtNDY5LDI3ICs0NzAsMTAgQEAgY2xhc3MgV2Vha01hcEltcGwgOiBw
dWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFwcGVu
ZGVyPgogICAgIHZvaWQgdGFrZVNuYXBzaG90SW50ZXJuYWwodW5zaWduZWQgbGltaXQsIEFwcGVu
ZGVyKTsKIAotICAgIGNsYXNzIERlYWRLZXlDbGVhbmVyIDogcHVibGljIFdlYWtSZWZlcmVuY2VI
YXJ2ZXN0ZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgV2Vha01hcEltcGwqIHRhcmdldCgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8V2Vha01hcEltcGwqPihi
aXR3aXNlX2Nhc3Q8Y2hhcio+KHRoaXMpIC0gT0JKRUNUX09GRlNFVE9GKFdlYWtNYXBJbXBsLCBt
X2RlYWRLZXlDbGVhbmVyKSk7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZv
aWQgdmlzaXRXZWFrUmVmZXJlbmNlcyhTbG90VmlzaXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKLSAg
ICAgICAgewotICAgICAgICAgICAgdGFyZ2V0KCktPnZpc2l0V2Vha1JlZmVyZW5jZXModmlzaXRv
cik7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgdm9pZCB2aXNpdFdlYWtSZWZlcmVuY2VzKFNs
b3RWaXNpdG9yJik7Ci0KICAgICBNYWxsb2NQdHI8V2Vha01hcEJ1ZmZlclR5cGUsIEpTVmFsdWVN
YWxsb2M+IG1fYnVmZmVyOwogICAgIHVpbnQzMl90IG1fa2V5Q291bnQ7CiAgICAgdWludDMyX3Qg
bV9kZWxldGVDb3VudDsKICAgICB1aW50MzJfdCBtX2NhcGFjaXR5OwotICAgIERlYWRLZXlDbGVh
bmVyIG1fZGVhZEtleUNsZWFuZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsSW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGxJbmxpbmVzLmgKaW5kZXgg
YTdiOGI5OTViMWJjYTZmZGVhZTMzNTYxYjgxNTU0YWYxZmJlMTM2ZS4uNTMwOTc3OTMyYTlhNDc4
ZGNlYjk2YzE5YTU3OTA4NzIyM2Q0ZDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2Vha01hcEltcGxJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2Vha01hcEltcGxJbmxpbmVzLmgKQEAgLTUyLDQgKzUyLDI0IEBAIHZvaWQg
V2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldD46OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJikK
ICAgICAgICAgcmVoYXNoKFJlaGFzaE1vZGU6OlJlbW92ZUJhdGNoaW5nKTsKIH0KIAordGVtcGxh
dGUgPD4KK2lubGluZSB2b2lkIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tl
dERhdGFLZXk+Pjo6dmlzaXRXZWFrUmVmZXJlbmNlcyhTbG90VmlzaXRvciYpCit7CisgICAgLy8g
T25seSBKU1dlYWtNYXAgbmVlZHMgdG8gaGFydmVzdCB2YWx1ZSByZWZlcmVuY2VzCit9CisKK3Rl
bXBsYXRlIDw+CitpbmxpbmUgdm9pZCBXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0PFdlYWtNYXBC
dWNrZXREYXRhS2V5VmFsdWU+Pjo6dmlzaXRXZWFrUmVmZXJlbmNlcyhTbG90VmlzaXRvciYgdmlz
aXRvcikKK3sKKyAgICBhdXRvKiBidWZmZXIgPSB0aGlzLT5idWZmZXIoKTsKKyAgICBmb3IgKHVp
bnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBtX2NhcGFjaXR5OyArK2luZGV4KSB7CisgICAgICAg
IGF1dG8qIGJ1Y2tldCA9IGJ1ZmZlciArIGluZGV4OworICAgICAgICBpZiAoYnVja2V0LT5pc0Vt
cHR5KCkgfHwgYnVja2V0LT5pc0RlbGV0ZWQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBpZiAoIUhlYXA6OmlzTWFya2VkKGJ1Y2tldC0+a2V5KCkpKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIGJ1Y2tldC0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CisgICAgfQor
fQorCiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGE2OGZkMjk5OTJmOWM2OTI4YzcwNmY4ZmRhZmU3Nzc4ZjllM2E3OGIuLjcyNmFmMGY2
NjdlN2EzM2E5MTFkZmFiZWZiOTE1NzkzNTRjNTJlZmQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDUt
MzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pT
Q10gUmVtb3ZlIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjEwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2NyZWF0ZS1tYW55LXdl
YWstbWFwLmpzOiBBZGRlZC4KKwogMjAxOC0wNS0yOSAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtKU1Rlc3RzXSB1cGRhdGUgdGVzdDI2MiBleHBlY3RhdGlv
bnMgYWZ0ZXIgcjIzMjI2MQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3Jl
YXRlLW1hbnktd2Vhay1tYXAuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jcmVhdGUtbWFu
eS13ZWFrLW1hcC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDMwZDEyM2I0MWI2ZjY3NjAwZWMzYjE3ZTI3ODIx
YzQyZjNkYzk2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3Jl
YXRlLW1hbnktd2Vhay1tYXAuanMKQEAgLTAsMCArMSwyMCBAQAordmFyIHJvb3QgPSBbXTsKKwor
ZnVuY3Rpb24gY3JlYXRlKCkKK3sKKyAgICB2YXIgd2Vha01hcCA9IG5ldyBXZWFrTWFwKCk7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTI7ICsraSkgeworICAgICAgICB2YXIga2V5ID0ge307
CisgICAgICAgIHZhciB2YWx1ZSA9IHt9OworICAgICAgICB3ZWFrTWFwLnNldChrZXksIHZhbHVl
KTsKKyAgICAgICAgaWYgKGkgJSAxMCA9PT0gMCkKKyAgICAgICAgICAgIHJvb3QucHVzaChrZXkp
OworICAgIH0KK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTI7ICsraSkgeworICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgMWUyOyArK2opIHsKKyAgICAgICAgdmFyIG1hcCA9IGNyZWF0ZSgpOwor
ICAgICAgICByb290LnB1c2gobWFwKTsKKyAgICB9Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341583</attachid>
            <date>2018-05-30 11:06:05 -0700</date>
            <delta_ts>2018-06-02 04:40:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186102-20180531030604.patch</filename>
            <type>text/plain</type>
            <size>20259</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NzE0ZmVlZjVhNTkyNjNlM2M2MzU5ZDU5YzNlZWMxMWJiOGUwNDI0Li5hNTAzNDhmM2VkNWQ0ZWYy
ZTE4ZjMwOGQ4ZjJiYjVmNmUzZTc4OGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOC0wNS0zMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgV2Vha1JlZmVyZW5jZUhhcnZlc3RlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTAyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgc2V2ZXJh
bCBjbGVhbnVwcywgbm93IEpTV2Vha01hcCBiZWNvbWVzIHRoZSBsYXN0IHVzZXIgb2YgV2Vha1Jl
ZmVyZW5jZUhhcnZlc3Rlci4KKyAgICAgICAgU2luY2UgSlNXZWFrTWFwIGlzIGFscmVhZHkgbWFu
YWdlZCBpbiBJc29TdWJzcGFjZSwgd2UgY2FuIGl0ZXJhdGUgbWFya2VkIEpTV2Vha01hcAorICAg
ICAgICBieSB1c2luZyBJc29TdWJzcGFjZTo6Zm9yRWFjaE1hcmtlZENlbGwuCisKKyAgICAgICAg
VGhpcyBwYXRjaCByZW1vdmVzIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuIEluc3RlYWQgb2YgbWFu
YWdpbmcgdGhpcyBsaW5rZWQtbGlzdCwgb3VyCisgICAgICAgIFdlYWsgUmVmZXJlbmNlIEhhcnZl
c3RlciBjb25zdHJhaW50IHNldCBpdGVyYXRlcyBtYXJrZWQgSlNXZWFrTWFwIGJ5IHVzaW5nIFN1
YnNwYWNlLgorCisgICAgICAgIEF0dGFjaGVkIG1pY3JvYmVuY2htYXJrIGRvZXMgbm90IHNob3cg
YW55IHJlZ3Jlc3Npb24uCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lmg6Cisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAo
SlNDOjpIZWFwOjplbmRNYXJraW5nKToKKyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNvbnN0
cmFpbnRzKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFkZFdlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAg
KiBoZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50
aW1lL1dlYWtNYXBJbXBsLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha01hcEltcGw8V2Vha01hcEJ1
Y2tldD46OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDxXZWFrTWFw
QnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5Pj46OnZpc2l0V2Vha1JlZmVyZW5jZXMpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNr
ZXREYXRhS2V5VmFsdWU+Pjo6dmlzaXRXZWFrUmVmZXJlbmNlcyk6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9XZWFrTWFwSW1wbC5oOgorICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDo6RGVh
ZEtleUNsZWFuZXI6OnRhcmdldCk6IERlbGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvV2Vha01hcEltcGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OldlYWtN
YXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXk+Pjo6dmlzaXRXZWFrUmVm
ZXJlbmNlcyk6CisgICAgICAgIChKU0M6OldlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01h
cEJ1Y2tldERhdGFLZXlWYWx1ZT4+Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKToKKwogMjAxOC0wNS0z
MCAgRG9taW5payBJbmZ1ZWhyICA8ZGluZnVlaHJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTUlQ
U10gRml4IGJ1aWxkIG9uIE1JUFMzMnIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0FQSVdyYXBwZXJPYmplY3QuaAppbmRleCBhYWU1ZDQxOGE3YTMyOTE1Y2E0M2VjOTcyOGY2ZTgw
YzJhN2U3YmJlLi4zMDVmY2E0Y2UwYjhmZTIxZDZiODM4NGY5NjI3YjM2NzkwNTU0MmQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0LmgKQEAgLTI5
LDcgKzI5LDYgQEAKICNpbmNsdWRlICJKU0Jhc2UuaCIKICNpbmNsdWRlICJKU0NQb2lzb24uaCIK
ICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgotI2luY2x1ZGUgIldlYWtSZWZlcmVu
Y2VIYXJ2ZXN0ZXIuaCIKICNpbmNsdWRlIDx3dGYvUG9pc29uZWQuaD4KIAogI2lmIEpTQ19PQkpD
X0FQSV9FTkFCTEVEIHx8IGRlZmluZWQoSlNDX0dMSUJfQVBJX0VOQUJMRUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDdjYmU1YzkyZDMxMmIwMjRkYWFkZWMxNmVlOWQ5
ZWZhYzYxMWRlMi4uYjdiNjE3YjI1ZWQ2MWM2MzJiOWY5NDZjYmFlM2IxMzE5ZDI2ODRlNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTY3LDcgKzU2Nyw2IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaGVhcC9XZWFrSGFu
ZGxlT3duZXIuaAogICAgIGhlYXAvV2Vha0ltcGwuaAogICAgIGhlYXAvV2Vha0lubGluZXMuaAot
ICAgIGhlYXAvV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oCiAgICAgaGVhcC9XZWFrU2V0LmgKICAg
ICBoZWFwL1dlYWtTZXRJbmxpbmVzLmgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyOWNiYWI0ZDNiMDRiODg4ZTBlYjVlMTg0MDU1ZDhkM2JiZDU2MGRiLi4zZjRhMmY0Yjg4MDU2
M2E4ZGY4NDdhZGZmYTNiYmQ5NTVhYjk3MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTUwLDcgKzE1MCw2IEBACiAJCTBGMjM1QkUyMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExU
aHVua3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MjM1QkNDMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjIzNUJFQzE3MTc4RTczMDA2OTBDN0Yg
LyogREZHT1NSRXhpdEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMjM1QkU4MTcxNzhFNzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0QmFzZS5oICov
OyB9OwogCQkwRjIzNUJFRTE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdFByZXBhcmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIzNUJF
QTE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdFByZXBhcmF0aW9uLmggKi87IH07Ci0JCTBG
MjQyREE3MTNGM0IxRTgwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0MkRBNTEzRjNCMUJC
MDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMjRFNTQxMTdFQTlGNTkwMEFCQjIxNyAv
KiBBc3NlbWJseUhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMjRFNTNDMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjI0RTU0
MjE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0RTUzRDE3RUE5RjU5MDBBQkIyMTcgLyogQ0Nh
bGxIZWxwZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEYyNEU1NDMxN0VBOUY1OTAwQUJCMjE3IC8qIEZQUkluZm8uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTNFMTdFQTlGNTkwMEFCQjIx
NyAvKiBGUFJJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTIwNjEsNyArMjA2MCw2IEBACiAJCTBGMjM1QkU4MTcxNzhFNzMwMDY5MEM3RiAv
KiBERkdPU1JFeGl0QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdP
U1JFeGl0QmFzZS5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRCYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMjM1QkU5MTcxNzhFNzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0UHJl
cGFyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHT1NS
RXhpdFByZXBhcmF0aW9uLmNwcDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0UHJlcGFyYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIzNUJFQTE3MTc4RTczMDA2OTBDN0Yg
LyogREZHT1NSRXhpdFByZXBhcmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERGR09TUkV4aXRQcmVwYXJhdGlvbi5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRQcmVwYXJh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjI0MkRBNTEzRjNCMUJCMDA3
QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGMjRFNTNCMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXNzZW1ibHlIZWxwZXJzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1M0MxN0VBOUY1OTAwQUJCMjE3
IC8qIEFzc2VtYmx5SGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
c3NlbWJseUhlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1M0Qx
N0VBOUY1OTAwQUJCMjE3IC8qIENDYWxsSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDQ2FsbEhlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQ5MTIsOSArNDkxMCw5IEBACiAJCQkJMTRCRDU5QkYwQTNFOEY5MDAwQkFGNTlDIC8qIHRlc3Rh
cGkgKi8sCiAJCQkJMEZFQzg1QUQxQkRCNUNGMTAwODBGRjc0IC8qIHRlc3RiMyAqLywKIAkJCQlG
RTUzM0NBQzFGMjE3REI0MDAxNkExRkUgLyogdGVzdG1hc20gKi8sCisJCQkJNzkyODFCREMyMEI2
MkIzRTAwMkUyQTYwIC8qIHRlc3RtZW0gKi8sCiAJCQkJNjUxMTIzMDUxNDA0NkE0QzAwMkIxMDFE
IC8qIHRlc3RSZWdFeHAgKi8sCiAJCQkJOTMyRjVCRDkwODIyQTFDNzAwNzM2OTc1IC8qIEphdmFT
Y3JpcHRDb3JlLmZyYW1ld29yayAqLywKLQkJCQk3OTI4MUJEQzIwQjYyQjNFMDAyRTJBNjAgLyog
dGVzdG1lbSAqLywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtNTgxNSw3ICs1ODEzLDYgQEAKIAkJCQkxNEY3MjU2NDE0RUUyNjVFMDBC
MTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmggKi8sCiAJCQkJMTRFODRGOUQxNEVFMUFDQzAwRDZE
NUQ0IC8qIFdlYWtJbXBsLmggKi8sCiAJCQkJMTRCRTdEMzIxNzEzNUNGNDAwRDE4MDdBIC8qIFdl
YWtJbmxpbmVzLmggKi8sCi0JCQkJMEYyNDJEQTUxM0YzQjFCQjAwN0FERDRDIC8qIFdlYWtSZWZl
cmVuY2VIYXJ2ZXN0ZXIuaCAqLywKIAkJCQkxNEU4NEY5QjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vh
a1NldC5jcHAgKi8sCiAJCQkJMTRFODRGOUMxNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtTZXQuaCAq
LywKIAkJCQkxNDE1MDEzMjE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCAqLywK
QEAgLTYyODYsOCArNjI4Myw4IEBACiAJCTc5QUJDQzU1MjBCNzgxMjYwMDMyM0Q1RiAvKiB0ZXN0
bWVtMiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNzlB
QkNDNTYyMEI3ODEyNjAwMzIzRDVGIC8qIHRlc3RtZW0yLm0gKi8sCiAJCQkJNzlBQkNDNTgyMEI3
ODEyNjAwMzIzRDVGIC8qIHRlc3RtZW0yLjEgKi8sCisJCQkJNzlBQkNDNTYyMEI3ODEyNjAwMzIz
RDVGIC8qIHRlc3RtZW0yLm0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRlc3RtZW0yOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTgzNjUsNyArODM2Miw2IEBACiAJCQkJMEY0QzkxNjYx
QzI5RjRGMjAwNDM0MUE2IC8qIEIzT3JpZ2luRHVtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
Qzg1MjYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFNwZWNpYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRUM4NTI4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BhdGNocG9pbnRWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEZEMkZEOTUyMEI1MkJFMjAwRjA5NDQxIC8qIElzb1N1YnNw
YWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0
IC8qIEIzUENUb09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MkExQkRBQ0RB
QzAwODBGRjc0IC8qIEIzUGhhc2VTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzNzMwOEQx
QzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCBpbiBIZWFkZXJzICovLApAQCAtODQ5
Myw2ICs4NDg5LDcgQEAKIAkJCQlBN0U1QTNBODE3OTc0MzJEMDBFODkzQzAgLyogQ29tcGlsYXRp
b25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEYxMUU4MjA5QkNEQUIwMDcwOTY1NCAv
KiBDb21waWxlclRpbWluZ1Njb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRDRTEyQTFGQUZB
ODVGMDA2RjM5MDEgLyogQ29tcGxldGVTdWJzcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZE
MkZEOTQyMEI1MkJERTAwRjA5NDQxIC8qIENvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzE4QzNGNDBFMTZGNUNEMDBCMzQ0NjAgLyogQ29tcGxldGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY2RkM3NTExOTYxMTBBODAwRTFEMDJEIC8qIENvbXBsZXhHZXRT
dGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREIyQ0VBMTc0ODk2QzcwMDdCM0MxQiAvKiBD
b25jdXJyZW50SlNMb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTg5OTAsNiArODk4Nyw3IEBACiAJ
CQkJMEZCNDY3ODAxRkREQTZGMTAwM0ZDQjA5IC8qIElzb0NlbGxTZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQjQ2NzgxMUZEREE2RjcwMDNGQ0IwOSAvKiBJc29DZWxsU2V0SW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZEQ0UxMkQxRkFGQjRFNTAwNkYzOTAxIC8qIElzb1N1YnNwYWNl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQyRkQ5NTIwQjUyQkUyMDBGMDk0NDEgLyogSXNvU3Vi
c3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFMEZFNzIwODZBRDQ4MDA5N0Yw
REUgLyogSXNvU3Vic3BhY2VQZXJWTS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEI5RjZENTYxRDU5
MTJGQTAwMUM3MzlGIC8qIEl0ZXJhdGlvbktpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNEQ1
NUI4MUFFNzE2Q0EwMDUyRTQ1OSAvKiBJdGVyYXRpb25TdGF0dXMuaCBpbiBIZWFkZXJzICovLApA
QCAtOTAwMCw3ICs4OTk4LDYgQEAKIAkJCQlCQzE4QzQxNDBFMTZGNUNEMDBCMzQ0NjAgLyogSmF2
YVNjcmlwdENvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE1MEUxNkY1Q0QwMEIzNDQ2
MCAvKiBKYXZhU2NyaXB0Q29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyOUQ5MzAw
RUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZEMkZEOTQyMEI1
MkJERTAwRjA5NDQxIC8qIENvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRTEyMjAyNzFCRTdGNThDMDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjc1QTA2NjIwMTNFNEYxMDAzOEUyQ0YgLyogSklUQWxsb2NhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTNBMDZCMjFDMTBDQjg5MDAzOTBGREQgLyogSklUQml0QW5k
R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTk2MTcsNyArOTYxNCw2IEBACiAJCQkJRTNB
MzJCQzcxRkM4MzE0NzAwN0Q3RTc2IC8qIFdlYWtNYXBJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMzkzQUREODFGRTcwMkQwMDAyMkQ2ODEgLyogV2Vha01hcEltcGxJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBN0NBM0FFNjE3REE0MUFFMDA2NTM4QUYgLyogV2Vha01hcFByb3RvdHlw
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FERDRDIC8qIFdlYWtS
ZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0RkExMTRFRTFBQ0Mw
MEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDlGQjg2QTFBRTMzNUM2
MDAzOUQwNjkgLyogV2Vha1NldENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA5YTdjYTYwY2M4NTZlN2RkMjBlODE4
N2IyNjdlMTA2NjM2MWZlNjllLi43NTYwN2U3YjNiNTYyMmRiYTQzZWZiMTBmOWEyZjlkN2Q5ZWQ0
NjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtNzgxLDcgKzc4MSw2IEBA
IHZvaWQgSGVhcDo6ZW5kTWFya2luZygpCiAgICAgICAgIH0pOwogCiAgICAgYXNzZXJ0TWFya1N0
YWNrc0VtcHR5KCk7Ci0gICAgbV93ZWFrUmVmZXJlbmNlSGFydmVzdGVycy5yZW1vdmVBbGwoKTsK
IAogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmFjZU1hcmtTdGFjay0+aXNFbXB0eSgpKTsKICAgICAK
QEAgLTI3MTUsOSArMjcxNCwxMiBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAg
ICAgCiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJXcmgiLCAiV2VhayBSZWZl
cmVuY2UgSGFydmVzdGVycyIsCi0gICAgICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNp
dG9yKSB7Ci0gICAgICAgICAgICBmb3IgKFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIqIGN1cnJlbnQg
PSBtX3dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXJzLmhlYWQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1
cnJlbnQtPm5leHQoKSkKLSAgICAgICAgICAgICAgICBjdXJyZW50LT52aXNpdFdlYWtSZWZlcmVu
Y2VzKHNsb3RWaXNpdG9yKTsKKyAgICAgICAgW10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikg
eworICAgICAgICAgICAgVk0mIHZtID0gc2xvdFZpc2l0b3Iudm0oKTsKKyAgICAgICAgICAgIHZt
LndlYWtNYXBTcGFjZS5mb3JFYWNoTWFya2VkQ2VsbCgKKyAgICAgICAgICAgICAgICBbJl0gKEhl
YXBDZWxsKiBjZWxsLCBIZWFwQ2VsbDo6S2luZCkgeworICAgICAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxKU1dlYWtNYXAqPihjZWxsKS0+dmlzaXRXZWFrUmVmZXJlbmNlcyhzbG90VmlzaXRv
cik7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCiAgICAgICAgIENvbnN0cmFpbnRW
b2xhdGlsaXR5OjpHcmV5ZWRCeU1hcmtpbmcpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5oCmluZGV4IGM4YTZmMGQ2NGYzMjJhMzFlYmIxMDJjNmNjMzk4ZTUwZjFjMjUzYjguLmNmZmVk
Yjc2MjcyNzM4MmI5MzdjYWQ1M2EzNTM5YzcwODNlOWQzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmgKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVJRFRhYmxlLmgi
CiAjaW5jbHVkZSAiU3luY2hyb25vdXNuZXNzLmgiCiAjaW5jbHVkZSAiV2Vha0hhbmRsZU93bmVy
LmgiCi0jaW5jbHVkZSAiV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oIgogI2luY2x1ZGUgPHd0Zi9B
dXRvbWF0aWNUaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvQ29uY3VycmVudFB0ckhhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTY3MSw4ICs2NzAsNiBAQCBjbGFzcyBIZWFwIHsK
IAogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc19ibG9ja0ZyYWdtZW50TGVuZ3RoID0gMzI7CiAK
LSAgICBMaXN0YWJsZUhhbmRsZXI8V2Vha1JlZmVyZW5jZUhhcnZlc3Rlcj46Okxpc3QgbV93ZWFr
UmVmZXJlbmNlSGFydmVzdGVyczsKLQogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50IG1faGVscGVy
Q2xpZW50OwogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+IG1fYm9u
dXNWaXNpdG9yVGFzazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
U2xvdFZpc2l0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3Iu
Y3BwCmluZGV4IDViMDkyNGE4NDZkMmNhMTIzNDRmYzUzN2EyN2ZlYzIwNTkwNTQ5ZDQuLmI4OTY4
NmU1NDVhOGU3MGIyODlkMWI0MjE4NjhlOWE4MmRmZDcwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKQEAgLTc1MywxMSArNzUzLDYgQEAgdm9pZCBTbG90
VmlzaXRvcjo6ZG9uYXRlQW5kRHJhaW4oTW9ub3RvbmljVGltZSB0aW1lb3V0KQogICAgIGRyYWlu
KHRpbWVvdXQpOwogfQogCi12b2lkIFNsb3RWaXNpdG9yOjphZGRXZWFrUmVmZXJlbmNlSGFydmVz
dGVyKFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIqIHdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIpCi17Ci0g
ICAgbV9oZWFwLm1fd2Vha1JlZmVyZW5jZUhhcnZlc3RlcnMuYWRkVGhyZWFkU2FmZSh3ZWFrUmVm
ZXJlbmNlSGFydmVzdGVyKTsKLX0KLQogdm9pZCBTbG90VmlzaXRvcjo6ZGlkUmFjZShjb25zdCBW
aXNpdFJhY2VLZXkmIHJhY2UpCiB7CiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VWaXNpdFJhY2Uo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCmluZGV4IDI5ZmJmYWNi
NTYyMzQyMDkzMzFiZGJmNjA2ZGZkMTVjMjc2Y2MzMDMuLmU4YTI3NzQzYTZjNjNiMTJhZDk5Nzcz
YWJkMjYwZDgzOWFkMzE3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1Nsb3RWaXNpdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuaApAQCAtNDUsNyArNDUsNiBAQCBjbGFzcyBNYXJrZWRCbG9jazsKIGNsYXNzIE1hcmtpbmdD
b25zdHJhaW50OwogY2xhc3MgTWFya2luZ0NvbnN0cmFpbnRTb2x2ZXI7CiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjbGFzcyBXZWFrOwotY2xhc3MgV2Vha1JlZmVyZW5jZUhhcnZlc3RlcjsKIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZTsK
IAogdHlwZWRlZiB1aW50MzJfdCBIZWFwVmVyc2lvbjsKQEAgLTE0MCw4ICsxMzksNiBAQCBjbGFz
cyBTbG90VmlzaXRvciB7CiAgICAgdm9pZCByZXBvcnRFeHRlcm5hbE1lbW9yeVZpc2l0ZWQoc2l6
ZV90KTsKICNlbmRpZgogICAgIAotICAgIHZvaWQgYWRkV2Vha1JlZmVyZW5jZUhhcnZlc3RlcihX
ZWFrUmVmZXJlbmNlSGFydmVzdGVyKik7Ci0KICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBj
b25zdDsKIAogICAgIGJvb2wgaXNCdWlsZGluZ0hlYXBTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJu
ICEhbV9oZWFwU25hcHNob3RCdWlsZGVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9XZWFrUmVmZXJlbmNlSGFydmVzdGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9XZWFrUmVmZXJlbmNlSGFydmVzdGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQ4MDdlMDY3OTFlYTdhODdhNmM5NmU5MjA5YjY1ZjAwMzE3YTdlMDUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDAg
KzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSAiTGlzdGFibGVIYW5kbGVyLmgiCi0KLW5hbWVzcGFjZSBKU0Mgewot
Ci1jbGFzcyBTbG90VmlzaXRvcjsKLQotY2xhc3MgV2Vha1JlZmVyZW5jZUhhcnZlc3RlciA6IHB1
YmxpYyBMaXN0YWJsZUhhbmRsZXI8V2Vha1JlZmVyZW5jZUhhcnZlc3Rlcj4gewotcHVibGljOgot
ICAgIHZpcnR1YWwgdm9pZCB2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJikgPSAwOwot
ICAgIAotcHJvdGVjdGVkOgotICAgIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIoKQotICAgIHsKLSAg
ICB9Ci0gICAgCi0gICAgdmlydHVhbCB+V2Vha1JlZmVyZW5jZUhhcnZlc3RlcigpIHsgfQotfTsK
LQotfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrTWFwSW1wbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrTWFwSW1wbC5jcHAKaW5kZXggZmM1ZWJkY2M0ZmEwMjY5MjIzZDY2NDQ3OGI3MTIyMzJlNmMy
MWFiNC4uMGUzNWEwODI3MTBiZjRiOGI1ZmNhZDk0ZjNkZTA0OTA1MTJlYzYwNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmNwcApAQCAtNDUsOSArNDUs
NiBAQCB2b2lkIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ+Ojp2aXNpdENoaWxkcmVuKEpTQ2Vs
bCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0bwogICAgIFdlYWtNYXBJbXBsKiB0aGlzT2JqZWN0
ID0ganNDYXN0PFdlYWtNYXBJbXBsKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09i
amVjdCwgdmlzaXRvcik7Ci0KLSAgICBpZiAoaXNXZWFrTWFwKCkpCi0gICAgICAgIHZpc2l0b3Iu
YWRkV2Vha1JlZmVyZW5jZUhhcnZlc3RlcigmdGhpc09iamVjdC0+bV9kZWFkS2V5Q2xlYW5lcik7
CiAgICAgdmlzaXRvci5yZXBvcnRFeHRyYU1lbW9yeVZpc2l0ZWQodGhpc09iamVjdC0+bV9jYXBh
Y2l0eSAqIHNpemVvZihXZWFrTWFwQnVja2V0KSk7CiB9CiAKQEAgLTU4LDI2ICs1NSw2IEBAIHNp
emVfdCBXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0Pjo6ZXN0aW1hdGVkU2l6ZShKU0NlbGwqIGNl
bGwpCiAgICAgcmV0dXJuIEJhc2U6OmVzdGltYXRlZFNpemUodGhpc09iamVjdCkgKyAoc2l6ZW9m
KFdlYWtNYXBJbXBsKSAtIHNpemVvZihCYXNlKSkgKyB0aGlzT2JqZWN0LT5tX2NhcGFjaXR5ICog
c2l6ZW9mKFdlYWtNYXBCdWNrZXQpOwogfQogCi10ZW1wbGF0ZSA8Pgotdm9pZCBXZWFrTWFwSW1w
bDxXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5Pj46OnZpc2l0V2Vha1JlZmVyZW5j
ZXMoU2xvdFZpc2l0b3ImKQotewotICAgIC8vIE9ubHkgSlNXZWFrTWFwIG5lZWRzIHRvIGhhcnZl
c3QgdmFsdWUgcmVmZXJlbmNlcwotfQotCi10ZW1wbGF0ZSA8Pgotdm9pZCBXZWFrTWFwSW1wbDxX
ZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5VmFsdWU+Pjo6dmlzaXRXZWFrUmVmZXJl
bmNlcyhTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBhdXRvKiBidWZmZXIgPSB0aGlzLT5i
dWZmZXIoKTsKLSAgICBmb3IgKHVpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBtX2NhcGFjaXR5
OyArK2luZGV4KSB7Ci0gICAgICAgIGF1dG8qIGJ1Y2tldCA9IGJ1ZmZlciArIGluZGV4OwotICAg
ICAgICBpZiAoYnVja2V0LT5pc0VtcHR5KCkgfHwgYnVja2V0LT5pc0RlbGV0ZWQoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoIUhlYXA6OmlzTWFya2VkKGJ1Y2tldC0+a2V5
KCkpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGJ1Y2tldC0+dmlzaXRBZ2dyZWdh
dGUodmlzaXRvcik7Ci0gICAgfQotfQotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgV2Vha01hcEJ1Y2tl
dD4KIHRlbXBsYXRlPHR5cGVuYW1lIEFwcGVuZGVyPgogdm9pZCBXZWFrTWFwSW1wbDxXZWFrTWFw
QnVja2V0Pjo6dGFrZVNuYXBzaG90SW50ZXJuYWwodW5zaWduZWQgbGltaXQsIEFwcGVuZGVyIGFw
cGVuZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01h
cEltcGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmgKaW5k
ZXggMWJmNjM1MGIwOGNkZDEwNmM3YThiNmFlZTE5NjU4ZTUzZTg3OTY2My4uZWQ0OWY4MDJkMzRk
MmRkMDlmODNkOGFjY2U5ODMzZmZjYzAzNzI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrTWFwSW1wbC5oCkBAIC0zMDksNiArMzA5LDcgQEAgY2xhc3MgV2Vha01hcElt
cGwgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgICAgICByZXR1cm4gJnZtLndl
YWtTZXRTcGFjZTsKICAgICB9CiAKKyAgICB2b2lkIHZpc2l0V2Vha1JlZmVyZW5jZXMoU2xvdFZp
c2l0b3ImKTsKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJik7CiAKIHByaXZh
dGU6CkBAIC00NjksMjcgKzQ3MCwxMCBAQCBjbGFzcyBXZWFrTWFwSW1wbCA6IHB1YmxpYyBKU0Rl
c3RydWN0aWJsZU9iamVjdCB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXBwZW5kZXI+CiAgICAg
dm9pZCB0YWtlU25hcHNob3RJbnRlcm5hbCh1bnNpZ25lZCBsaW1pdCwgQXBwZW5kZXIpOwogCi0g
ICAgY2xhc3MgRGVhZEtleUNsZWFuZXIgOiBwdWJsaWMgV2Vha1JlZmVyZW5jZUhhcnZlc3RlciB7
Ci0gICAgcHVibGljOgotICAgICAgICBXZWFrTWFwSW1wbCogdGFyZ2V0KCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxXZWFrTWFwSW1wbCo+KGJpdHdpc2VfY2Fz
dDxjaGFyKj4odGhpcykgLSBPQkpFQ1RfT0ZGU0VUT0YoV2Vha01hcEltcGwsIG1fZGVhZEtleUNs
ZWFuZXIpKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCB2aXNpdFdl
YWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJiB2aXNpdG9yKSBvdmVycmlkZQotICAgICAgICB7Ci0g
ICAgICAgICAgICB0YXJnZXQoKS0+dmlzaXRXZWFrUmVmZXJlbmNlcyh2aXNpdG9yKTsKLSAgICAg
ICAgfQotICAgIH07Ci0KLSAgICB2b2lkIHZpc2l0V2Vha1JlZmVyZW5jZXMoU2xvdFZpc2l0b3Im
KTsKLQogICAgIE1hbGxvY1B0cjxXZWFrTWFwQnVmZmVyVHlwZSwgSlNWYWx1ZU1hbGxvYz4gbV9i
dWZmZXI7CiAgICAgdWludDMyX3QgbV9rZXlDb3VudDsKICAgICB1aW50MzJfdCBtX2RlbGV0ZUNv
dW50OwogICAgIHVpbnQzMl90IG1fY2FwYWNpdHk7Ci0gICAgRGVhZEtleUNsZWFuZXIgbV9kZWFk
S2V5Q2xlYW5lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGxJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbElubGluZXMuaAppbmRleCBhN2I4Yjk5NWIx
YmNhNmZkZWFlMzM1NjFiODE1NTRhZjFmYmUxMzZlLi41MzA5Nzc5MzJhOWE0NzhkY2ViOTZjMTlh
NTc5MDg3MjIzZDRkNjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwSW1wbElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwSW1wbElubGluZXMuaApAQCAtNTIsNCArNTIsMjQgQEAgdm9pZCBXZWFrTWFwSW1w
bDxXZWFrTWFwQnVja2V0Pjo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoVk0mKQogICAgICAgICBy
ZWhhc2goUmVoYXNoTW9kZTo6UmVtb3ZlQmF0Y2hpbmcpOwogfQogCit0ZW1wbGF0ZSA8PgoraW5s
aW5lIHZvaWQgV2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleT4+
Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJikKK3sKKyAgICAvLyBPbmx5IEpTV2Vh
a01hcCBuZWVkcyB0byBoYXJ2ZXN0IHZhbHVlIHJlZmVyZW5jZXMKK30KKwordGVtcGxhdGUgPD4K
K2lubGluZSB2b2lkIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFL
ZXlWYWx1ZT4+Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorewor
ICAgIGF1dG8qIGJ1ZmZlciA9IHRoaXMtPmJ1ZmZlcigpOworICAgIGZvciAodWludDMyX3QgaW5k
ZXggPSAwOyBpbmRleCA8IG1fY2FwYWNpdHk7ICsraW5kZXgpIHsKKyAgICAgICAgYXV0byogYnVj
a2V0ID0gYnVmZmVyICsgaW5kZXg7CisgICAgICAgIGlmIChidWNrZXQtPmlzRW1wdHkoKSB8fCBi
dWNrZXQtPmlzRGVsZXRlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICgh
SGVhcDo6aXNNYXJrZWQoYnVja2V0LT5rZXkoKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgYnVja2V0LT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKKyAgICB9Cit9CisKIH0KZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTY4
ZmQyOTk5MmY5YzY5MjhjNzA2ZjhmZGFmZTc3NzhmOWUzYTc4Yi4uNzI2YWYwZjY2N2U3YTMzYTkx
MWRmYWJlZmI5MTU3OTM1NGM1MmVmZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0wNS0zMCAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUg
V2Vha1JlZmVyZW5jZUhhcnZlc3RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg2MTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvY3JlYXRlLW1hbnktd2Vhay1tYXAuanM6
IEFkZGVkLgorCiAyMDE4LTA1LTI5ICBDYWl0bGluIFBvdHRlciAgPGNhaXRwQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0pTVGVzdHNdIHVwZGF0ZSB0ZXN0MjYyIGV4cGVjdGF0aW9ucyBhZnRlciBy
MjMyMjYxCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jcmVhdGUtbWFueS13
ZWFrLW1hcC5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2NyZWF0ZS1tYW55LXdlYWstbWFw
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFkMzBkMTIzYjQxYjZmNjc2MDBlYzNiMTdlMjc4MjFjNDJmM2RjOTYK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jcmVhdGUtbWFueS13
ZWFrLW1hcC5qcwpAQCAtMCwwICsxLDIwIEBACit2YXIgcm9vdCA9IFtdOworCitmdW5jdGlvbiBj
cmVhdGUoKQoreworICAgIHZhciB3ZWFrTWFwID0gbmV3IFdlYWtNYXAoKTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDFlMjsgKytpKSB7CisgICAgICAgIHZhciBrZXkgPSB7fTsKKyAgICAgICAg
dmFyIHZhbHVlID0ge307CisgICAgICAgIHdlYWtNYXAuc2V0KGtleSwgdmFsdWUpOworICAgICAg
ICBpZiAoaSAlIDEwID09PSAwKQorICAgICAgICAgICAgcm9vdC5wdXNoKGtleSk7CisgICAgfQor
fQorCitmb3IgKHZhciBpID0gMDsgaSA8IDFlMjsgKytpKSB7CisgICAgZm9yICh2YXIgaiA9IDA7
IGogPCAxZTI7ICsraikgeworICAgICAgICB2YXIgbWFwID0gY3JlYXRlKCk7CisgICAgICAgIHJv
b3QucHVzaChtYXApOworICAgIH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341842</attachid>
            <date>2018-06-02 04:40:18 -0700</date>
            <delta_ts>2018-06-02 05:27:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186102-20180602204017.patch</filename>
            <type>text/plain</type>
            <size>16614</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MjE4NWM4NWRjMDA0ODU3MGQ1MzlhNjc0YjJjYzMxZGJlOGUzM2FjLi44ZTRkZTEzNTY1ZTE0NjBj
NzdkYTI0ZWRlZGMyZDY5ZjJkOTFiZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxOC0wNi0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgV2Vha1JlZmVyZW5jZUhhcnZlc3RlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTAyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgc2V2ZXJh
bCBjbGVhbnVwcywgbm93IEpTV2Vha01hcCBiZWNvbWVzIHRoZSBsYXN0IHVzZXIgb2YgV2Vha1Jl
ZmVyZW5jZUhhcnZlc3Rlci4KKyAgICAgICAgU2luY2UgSlNXZWFrTWFwIGlzIGFscmVhZHkgbWFu
YWdlZCBpbiBJc29TdWJzcGFjZSwgd2UgY2FuIGl0ZXJhdGUgbWFya2VkIEpTV2Vha01hcAorICAg
ICAgICBieSB1c2luZyBJc29TdWJzcGFjZTo6Zm9yRWFjaE1hcmtlZENlbGwuCisKKyAgICAgICAg
VGhpcyBwYXRjaCByZW1vdmVzIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuIEluc3RlYWQgb2YgbWFu
YWdpbmcgdGhpcyBsaW5rZWQtbGlzdCwgb3VyCisgICAgICAgIFdlYWsgUmVmZXJlbmNlIEhhcnZl
c3RlciBjb25zdHJhaW50IHNldCBpdGVyYXRlcyBtYXJrZWQgSlNXZWFrTWFwIGJ5IHVzaW5nIFN1
YnNwYWNlLgorCisgICAgICAgIEF0dGFjaGVkIG1pY3JvYmVuY2htYXJrIGRvZXMgbm90IHNob3cg
YW55IHJlZ3Jlc3Npb24uCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lmg6Cisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAo
SlNDOjpIZWFwOjplbmRNYXJraW5nKToKKyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNvbnN0
cmFpbnRzKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFkZFdlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAg
KiBoZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50
aW1lL1dlYWtNYXBJbXBsLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha01hcEltcGw8V2Vha01hcEJ1
Y2tldD46OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDxXZWFrTWFw
QnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5Pj46OnZpc2l0T3V0cHV0Q29uc3RyYWludHMpOgor
ICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRh
S2V5VmFsdWU+Pjo6dmlzaXRPdXRwdXRDb25zdHJhaW50cyk6CisgICAgICAgIChKU0M6OldlYWtN
YXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXk+Pjo6dmlzaXRXZWFrUmVm
ZXJlbmNlcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYWtNYXBJbXBsPFdlYWtNYXBCdWNr
ZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZT4+Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBJbXBsLmg6CisgICAgICAgIChKU0M6Oldl
YWtNYXBJbXBsOjpEZWFkS2V5Q2xlYW5lcjo6dGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKCk6
IERlbGV0ZWQuCisKIDIwMTgtMDYtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3YXRjaE9TIGJ1aWxkIGFmdGVyIHIyMzIzODUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5oCmluZGV4IGFh
ZTVkNDE4YTdhMzI5MTVjYTQzZWM5NzI4ZjZlODBjMmE3ZTdiYmUuLjMwNWZjYTRjZTBiOGZlMjFk
NmI4Mzg0Zjk2MjdiMzY3OTA1NTQyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0FQSVdyYXBwZXJPYmplY3QuaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkpTQmFz
ZS5oIgogI2luY2x1ZGUgIkpTQ1BvaXNvbi5oIgogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oIgogI2luY2x1ZGUgPHd0
Zi9Qb2lzb25lZC5oPgogCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQgfHwgZGVmaW5lZChKU0Nf
R0xJQl9BUElfRU5BQkxFRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBk
ODdiYjAzMDkwODhjMjJhMjhmYjQ5Mzk2NjA3MDkzMDVjMGE3NDcxLi5jZGVjYWJkMWQ2YjI1YmE2
ZWM3M2FiODJhMjA0M2UwZmMyNjBlNTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC01NjcsNyArNTY3LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBoZWFwL1dlYWtIYW5kbGVPd25lci5oCiAgICAgaGVhcC9XZWFrSW1w
bC5oCiAgICAgaGVhcC9XZWFrSW5saW5lcy5oCi0gICAgaGVhcC9XZWFrUmVmZXJlbmNlSGFydmVz
dGVyLmgKICAgICBoZWFwL1dlYWtTZXQuaAogICAgIGhlYXAvV2Vha1NldElubGluZXMuaAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEzZGFmYmJkMWJlNWM0NWZkNWVhYTExYmM0
MTM5YmY4MTc4YjQwZmQuLjYzZTVhMTRmNmEzNThlODMxZGRlMDIwODc4YWRhYWIwYzk4NzIyYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTAsNyArMTUwLDYgQEAKIAkJMEYy
MzVCRTIxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFRodW5rcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyMzVCQ0MxNzE3OEUxQzAwNjkwQzdGIC8qIEZU
TFRodW5rcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMjM1QkVDMTcxNzhFNzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0QmFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyMzVCRTgxNzE3OEU3MzAw
NjkwQzdGIC8qIERGR09TUkV4aXRCYXNlLmggKi87IH07CiAJCTBGMjM1QkVFMTcxNzhFNzMwMDY5
MEM3RiAvKiBERkdPU1JFeGl0UHJlcGFyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjM1QkVBMTcxNzhFNzMwMDY5MEM3RiAvKiBERkdPU1JF
eGl0UHJlcGFyYXRpb24uaCAqLzsgfTsKLQkJMEYyNDJEQTcxM0YzQjFFODAwN0FERDRDIC8qIFdl
YWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMjQyREE1MTNGM0IxQkIwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFy
dmVzdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEYyNEU1NDExN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVscGVycy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyNEU1M0MxN0VBOUY1OTAw
QUJCMjE3IC8qIEFzc2VtYmx5SGVscGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGMjRFNTQyMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhl
bHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MjRFNTNEMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhlbHBlcnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjI0RTU0MzE3RUE5RjU5MDBBQkIy
MTcgLyogRlBSSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyNEU1M0UxN0VBOUY1OTAwQUJCMjE3IC8qIEZQUkluZm8uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjA2Myw3ICsyMDYyLDYgQEAK
IAkJMEYyMzVCRTgxNzE3OEU3MzAwNjkwQzdGIC8qIERGR09TUkV4aXRCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR09TUkV4aXRCYXNlLmg7IHBhdGggPSBkZmcvREZH
T1NSRXhpdEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyMzVCRTkxNzE3
OEU3MzAwNjkwQzdGIC8qIERGR09TUkV4aXRQcmVwYXJhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdPU1JFeGl0UHJlcGFyYXRpb24uY3BwOyBwYXRoID0g
ZGZnL0RGR09TUkV4aXRQcmVwYXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGMjM1QkVBMTcxNzhFNzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0UHJlcGFyYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NSRXhpdFByZXBhcmF0aW9uLmg7
IHBhdGggPSBkZmcvREZHT1NSRXhpdFByZXBhcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGMjQyREE1MTNGM0IxQkIwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVz
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1M0IxN0VBOUY1OTAw
QUJCMjE3IC8qIEFzc2VtYmx5SGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBc3NlbWJseUhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjI0RTUzQzE3RUE5RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxwZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzc2VtYmx5SGVscGVycy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjI0RTUzRDE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxw
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENDYWxsSGVscGVycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTgyMSw3ICs1ODE5LDYgQEAKIAkJCQkxNEY3
MjU2NDE0RUUyNjVFMDBCMTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmggKi8sCiAJCQkJMTRFODRG
OUQxNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtJbXBsLmggKi8sCiAJCQkJMTRCRTdEMzIxNzEzNUNG
NDAwRDE4MDdBIC8qIFdlYWtJbmxpbmVzLmggKi8sCi0JCQkJMEYyNDJEQTUxM0YzQjFCQjAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCAqLywKIAkJCQkxNEU4NEY5QjE0RUUxQUND
MDBENkQ1RDQgLyogV2Vha1NldC5jcHAgKi8sCiAJCQkJMTRFODRGOUMxNEVFMUFDQzAwRDZENUQ0
IC8qIFdlYWtTZXQuaCAqLywKIAkJCQkxNDE1MDEzMjE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1Nl
dElubGluZXMuaCAqLywKQEAgLTk2MjcsNyArOTYyNCw2IEBACiAJCQkJRTNBMzJCQzcxRkM4MzE0
NzAwN0Q3RTc2IC8qIFdlYWtNYXBJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzkzQUREODFG
RTcwMkQwMDAyMkQ2ODEgLyogV2Vha01hcEltcGxJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBN0NBM0FFNjE3REE0MUFFMDA2NTM4QUYgLyogV2Vha01hcFByb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FERDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBX
ZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDlGQjg2QTFBRTMzNUM2MDAzOUQwNjkgLyog
V2Vha1NldENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1MDEzMzE1NEJCMTNG
MDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCAzYjFhYWNmYzNlYWE2YTZhNzVhNTIxYzU4MTBkOWRkOTRj
NWM0MWNiLi45YzY2YmJjMDUzZTczYmQ2NmY0NTIxNTc0NzRmYzAzNjU5YmE5YThmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtNzgyLDcgKzc4Miw2IEBAIHZvaWQgSGVhcDo6
ZW5kTWFya2luZygpCiAgICAgICAgIH0pOwogCiAgICAgYXNzZXJ0TWFya1N0YWNrc0VtcHR5KCk7
Ci0gICAgbV93ZWFrUmVmZXJlbmNlSGFydmVzdGVycy5yZW1vdmVBbGwoKTsKIAogICAgIFJFTEVB
U0VfQVNTRVJUKG1fcmFjZU1hcmtTdGFjay0+aXNFbXB0eSgpKTsKICAgICAKQEAgLTI3MTYsMTQg
KzI3MTUsNiBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgICAgIH0sCiAg
ICAgICAgIENvbnN0cmFpbnRWb2xhdGlsaXR5OjpHcmV5ZWRCeU1hcmtpbmcpOwogICAgIAotICAg
IG1fY29uc3RyYWludFNldC0+YWRkKAotICAgICAgICAiV3JoIiwgIldlYWsgUmVmZXJlbmNlIEhh
cnZlc3RlcnMiLAotICAgICAgICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgewot
ICAgICAgICAgICAgZm9yIChXZWFrUmVmZXJlbmNlSGFydmVzdGVyKiBjdXJyZW50ID0gbV93ZWFr
UmVmZXJlbmNlSGFydmVzdGVycy5oZWFkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5u
ZXh0KCkpCi0gICAgICAgICAgICAgICAgY3VycmVudC0+dmlzaXRXZWFrUmVmZXJlbmNlcyhzbG90
VmlzaXRvcik7Ci0gICAgICAgIH0sCi0gICAgICAgIENvbnN0cmFpbnRWb2xhdGlsaXR5OjpHcmV5
ZWRCeU1hcmtpbmcpOwotICAgIAogICAgIG1fY29uc3RyYWludFNldC0+YWRkKAogICAgICAgICAi
TyIsICJPdXRwdXQiLAogICAgICAgICBbXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7CkBA
IC0yNzQwLDYgKzI3MzEsNyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAg
ICAgICAgICB9OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBhZGQodm0uZXhlY3V0YWJsZVRv
Q29kZUJsb2NrRWRnZXNXaXRoQ29uc3RyYWludHMpOworICAgICAgICAgICAgYWRkKHZtLndlYWtN
YXBTcGFjZSk7CiAgICAgICAgIH0sCiAgICAgICAgIENvbnN0cmFpbnRWb2xhdGlsaXR5OjpHcmV5
ZWRCeU1hcmtpbmcsCiAgICAgICAgIENvbnN0cmFpbnRQYXJhbGxlbGlzbTo6UGFyYWxsZWwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCmluZGV4IGU3ZDk5ZmIyYjc4MTdmZmIwM2I2OTJjNDll
M2VhYzEyZGYzMzgxYmIuLjNlZmQyMDE4NzEzNTFiZjVkMWZhZmNhYmRhMTEyYmY4ZDI3NDY5ODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRl
ICJTdHJ1Y3R1cmVJRFRhYmxlLmgiCiAjaW5jbHVkZSAiU3luY2hyb25vdXNuZXNzLmgiCiAjaW5j
bHVkZSAiV2Vha0hhbmRsZU93bmVyLmgiCi0jaW5jbHVkZSAiV2Vha1JlZmVyZW5jZUhhcnZlc3Rl
ci5oIgogI2luY2x1ZGUgPHd0Zi9BdXRvbWF0aWNUaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvQ29u
Y3VycmVudFB0ckhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTY3NCw4ICs2
NzMsNiBAQCBjbGFzcyBIZWFwIHsKIAogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc19ibG9ja0Zy
YWdtZW50TGVuZ3RoID0gMzI7CiAKLSAgICBMaXN0YWJsZUhhbmRsZXI8V2Vha1JlZmVyZW5jZUhh
cnZlc3Rlcj46Okxpc3QgbV93ZWFrUmVmZXJlbmNlSGFydmVzdGVyczsKLQogICAgIFBhcmFsbGVs
SGVscGVyQ2xpZW50IG1faGVscGVyQ2xpZW50OwogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQo
U2xvdFZpc2l0b3ImKT4+IG1fYm9udXNWaXNpdG9yVGFzazsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwCmluZGV4IDViMDkyNGE4NDZkMmNhMTIzNDRmYzUzN2Ey
N2ZlYzIwNTkwNTQ5ZDQuLmI4OTY4NmU1NDVhOGU3MGIyODlkMWI0MjE4NjhlOWE4MmRmZDcwNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKQEAgLTc1Mywx
MSArNzUzLDYgQEAgdm9pZCBTbG90VmlzaXRvcjo6ZG9uYXRlQW5kRHJhaW4oTW9ub3RvbmljVGlt
ZSB0aW1lb3V0KQogICAgIGRyYWluKHRpbWVvdXQpOwogfQogCi12b2lkIFNsb3RWaXNpdG9yOjph
ZGRXZWFrUmVmZXJlbmNlSGFydmVzdGVyKFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIqIHdlYWtSZWZl
cmVuY2VIYXJ2ZXN0ZXIpCi17Ci0gICAgbV9oZWFwLm1fd2Vha1JlZmVyZW5jZUhhcnZlc3RlcnMu
YWRkVGhyZWFkU2FmZSh3ZWFrUmVmZXJlbmNlSGFydmVzdGVyKTsKLX0KLQogdm9pZCBTbG90Vmlz
aXRvcjo6ZGlkUmFjZShjb25zdCBWaXNpdFJhY2VLZXkmIHJhY2UpCiB7CiAgICAgaWYgKE9wdGlv
bnM6OnZlcmJvc2VWaXNpdFJhY2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1Nsb3RWaXNpdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90Vmlz
aXRvci5oCmluZGV4IDI5ZmJmYWNiNTYyMzQyMDkzMzFiZGJmNjA2ZGZkMTVjMjc2Y2MzMDMuLmU4
YTI3NzQzYTZjNjNiMTJhZDk5NzczYWJkMjYwZDgzOWFkMzE3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaApAQCAtNDUsNyArNDUsNiBAQCBjbGFzcyBNYXJrZWRC
bG9jazsKIGNsYXNzIE1hcmtpbmdDb25zdHJhaW50OwogY2xhc3MgTWFya2luZ0NvbnN0cmFpbnRT
b2x2ZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXZWFrOwotY2xhc3MgV2Vha1JlZmVy
ZW5jZUhhcnZlc3RlcjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gY2xh
c3MgV3JpdGVCYXJyaWVyQmFzZTsKIAogdHlwZWRlZiB1aW50MzJfdCBIZWFwVmVyc2lvbjsKQEAg
LTE0MCw4ICsxMzksNiBAQCBjbGFzcyBTbG90VmlzaXRvciB7CiAgICAgdm9pZCByZXBvcnRFeHRl
cm5hbE1lbW9yeVZpc2l0ZWQoc2l6ZV90KTsKICNlbmRpZgogICAgIAotICAgIHZvaWQgYWRkV2Vh
a1JlZmVyZW5jZUhhcnZlc3RlcihXZWFrUmVmZXJlbmNlSGFydmVzdGVyKik7Ci0KICAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKIAogICAgIGJvb2wgaXNCdWlsZGluZ0hlYXBTbmFw
c2hvdCgpIGNvbnN0IHsgcmV0dXJuICEhbV9oZWFwU25hcHNob3RCdWlsZGVyOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrUmVmZXJlbmNlSGFydmVzdGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrUmVmZXJlbmNlSGFydmVzdGVyLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4MDdlMDY3OTFlYTdhODdhNmM5NmU5MjA5YjY1
ZjAwMzE3YTdlMDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oCisr
KyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
Ci0gKgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGlzdGFibGVIYW5kbGVyLmgi
Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBTbG90VmlzaXRvcjsKLQotY2xhc3MgV2Vha1Jl
ZmVyZW5jZUhhcnZlc3RlciA6IHB1YmxpYyBMaXN0YWJsZUhhbmRsZXI8V2Vha1JlZmVyZW5jZUhh
cnZlc3Rlcj4gewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCB2aXNpdFdlYWtSZWZlcmVuY2Vz
KFNsb3RWaXNpdG9yJikgPSAwOwotICAgIAotcHJvdGVjdGVkOgotICAgIFdlYWtSZWZlcmVuY2VI
YXJ2ZXN0ZXIoKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgdmlydHVhbCB+V2Vha1JlZmVyZW5j
ZUhhcnZlc3RlcigpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbC5jcHAKaW5kZXggZmM1ZWJkY2M0ZmEwMjY5
MjIzZDY2NDQ3OGI3MTIyMzJlNmMyMWFiNC4uYzRhMzYwZmViZmNlYzA0NzRhMDcyYmJiNjg4NDFj
Nzc0M2NkZDg1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vh
a01hcEltcGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJ
bXBsLmNwcApAQCAtNDUsOSArNDUsNiBAQCB2b2lkIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ+
Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0bwogICAgIFdl
YWtNYXBJbXBsKiB0aGlzT2JqZWN0ID0ganNDYXN0PFdlYWtNYXBJbXBsKj4oY2VsbCk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6
OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0KLSAgICBpZiAoaXNXZWFrTWFw
KCkpCi0gICAgICAgIHZpc2l0b3IuYWRkV2Vha1JlZmVyZW5jZUhhcnZlc3RlcigmdGhpc09iamVj
dC0+bV9kZWFkS2V5Q2xlYW5lcik7CiAgICAgdmlzaXRvci5yZXBvcnRFeHRyYU1lbW9yeVZpc2l0
ZWQodGhpc09iamVjdC0+bV9jYXBhY2l0eSAqIHNpemVvZihXZWFrTWFwQnVja2V0KSk7CiB9CiAK
QEAgLTU5LDE2ICs1NiwxNyBAQCBzaXplX3QgV2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldD46OmVz
dGltYXRlZFNpemUoSlNDZWxsKiBjZWxsKQogfQogCiB0ZW1wbGF0ZSA8Pgotdm9pZCBXZWFrTWFw
SW1wbDxXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5Pj46OnZpc2l0V2Vha1JlZmVy
ZW5jZXMoU2xvdFZpc2l0b3ImKQordm9pZCBXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0PFdlYWtN
YXBCdWNrZXREYXRhS2V5Pj46OnZpc2l0T3V0cHV0Q29uc3RyYWludHMoSlNDZWxsKiwgU2xvdFZp
c2l0b3ImKQogewogICAgIC8vIE9ubHkgSlNXZWFrTWFwIG5lZWRzIHRvIGhhcnZlc3QgdmFsdWUg
cmVmZXJlbmNlcwogfQogCiB0ZW1wbGF0ZSA8Pgotdm9pZCBXZWFrTWFwSW1wbDxXZWFrTWFwQnVj
a2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5VmFsdWU+Pjo6dmlzaXRXZWFrUmVmZXJlbmNlcyhTbG90
VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgV2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldDxXZWFrTWFw
QnVja2V0RGF0YUtleVZhbHVlPj46OnZpc2l0T3V0cHV0Q29uc3RyYWludHMoSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBhdXRvKiBidWZmZXIgPSB0aGlzLT5idWZm
ZXIoKTsKLSAgICBmb3IgKHVpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBtX2NhcGFjaXR5OyAr
K2luZGV4KSB7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxXZWFrTWFwSW1wbCo+KGNl
bGwpOworICAgIGF1dG8qIGJ1ZmZlciA9IHRoaXNPYmplY3QtPmJ1ZmZlcigpOworICAgIGZvciAo
dWludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IHRoaXNPYmplY3QtPm1fY2FwYWNpdHk7ICsraW5k
ZXgpIHsKICAgICAgICAgYXV0byogYnVja2V0ID0gYnVmZmVyICsgaW5kZXg7CiAgICAgICAgIGlm
IChidWNrZXQtPmlzRW1wdHkoKSB8fCBidWNrZXQtPmlzRGVsZXRlZCgpKQogICAgICAgICAgICAg
Y29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFr
TWFwSW1wbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuaApp
bmRleCAxYmY2MzUwYjA4Y2RkMTA2YzdhOGI2YWVlMTk2NThlNTNlODc5NjYzLi5lMjliMzI5ZjY3
YzNkZGJiNmYzOTc5ODUxYzBhZmExMWJjZmRiOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dlYWtNYXBJbXBsLmgKQEAgLTMwOSw2ICszMDksNyBAQCBjbGFzcyBXZWFrTWFw
SW1wbCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgICAgIHJldHVybiAmdm0u
d2Vha1NldFNwYWNlOwogICAgIH0KIAorICAgIHN0YXRpYyB2b2lkIHZpc2l0T3V0cHV0Q29uc3Ry
YWludHMoSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRp
b25hbGx5KFZNJik7CiAKIHByaXZhdGU6CkBAIC00NjksMjcgKzQ3MCwxMCBAQCBjbGFzcyBXZWFr
TWFwSW1wbCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQXBwZW5kZXI+CiAgICAgdm9pZCB0YWtlU25hcHNob3RJbnRlcm5hbCh1bnNpZ25lZCBs
aW1pdCwgQXBwZW5kZXIpOwogCi0gICAgY2xhc3MgRGVhZEtleUNsZWFuZXIgOiBwdWJsaWMgV2Vh
a1JlZmVyZW5jZUhhcnZlc3RlciB7Ci0gICAgcHVibGljOgotICAgICAgICBXZWFrTWFwSW1wbCog
dGFyZ2V0KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxXZWFr
TWFwSW1wbCo+KGJpdHdpc2VfY2FzdDxjaGFyKj4odGhpcykgLSBPQkpFQ1RfT0ZGU0VUT0YoV2Vh
a01hcEltcGwsIG1fZGVhZEtleUNsZWFuZXIpKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToK
LSAgICAgICAgdm9pZCB2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJiB2aXNpdG9yKSBv
dmVycmlkZQotICAgICAgICB7Ci0gICAgICAgICAgICB0YXJnZXQoKS0+dmlzaXRXZWFrUmVmZXJl
bmNlcyh2aXNpdG9yKTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICB2b2lkIHZpc2l0V2Vha1Jl
ZmVyZW5jZXMoU2xvdFZpc2l0b3ImKTsKLQogICAgIE1hbGxvY1B0cjxXZWFrTWFwQnVmZmVyVHlw
ZSwgSlNWYWx1ZU1hbGxvYz4gbV9idWZmZXI7CiAgICAgdWludDMyX3QgbV9rZXlDb3VudDsKICAg
ICB1aW50MzJfdCBtX2RlbGV0ZUNvdW50OwogICAgIHVpbnQzMl90IG1fY2FwYWNpdHk7Ci0gICAg
RGVhZEtleUNsZWFuZXIgbV9kZWFkS2V5Q2xlYW5lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCBlMzdmOGRiZGUxOGE2OWEwNTlhYThjOTM3ZmEyOTU4OWVjZmQ5MmU0Li41ZDdlZDk5NzI4OTM3
NmRhOWYwMjc5YTJlOGY2NGQ4OWM2OWM5MzlkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTA2LTAxICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIFJl
bW92ZSBXZWFrUmVmZXJlbmNlSGFydmVzdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODYxMDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9jcmVhdGUtbWFueS13ZWFrLW1h
cC5qczogQWRkZWQuCisKIDIwMTgtMDUtMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIFN5bWJvbC5wcm90b3R5cGUuZGVzY3JpcHRp
b24gZ2V0dGVyCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jcmVhdGUtbWFu
eS13ZWFrLW1hcC5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2NyZWF0ZS1tYW55LXdlYWst
bWFwLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFkMzBkMTIzYjQxYjZmNjc2MDBlYzNiMTdlMjc4MjFjNDJmM2Rj
OTYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jcmVhdGUtbWFu
eS13ZWFrLW1hcC5qcwpAQCAtMCwwICsxLDIwIEBACit2YXIgcm9vdCA9IFtdOworCitmdW5jdGlv
biBjcmVhdGUoKQoreworICAgIHZhciB3ZWFrTWFwID0gbmV3IFdlYWtNYXAoKTsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDFlMjsgKytpKSB7CisgICAgICAgIHZhciBrZXkgPSB7fTsKKyAgICAg
ICAgdmFyIHZhbHVlID0ge307CisgICAgICAgIHdlYWtNYXAuc2V0KGtleSwgdmFsdWUpOworICAg
ICAgICBpZiAoaSAlIDEwID09PSAwKQorICAgICAgICAgICAgcm9vdC5wdXNoKGtleSk7CisgICAg
fQorfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDFlMjsgKytpKSB7CisgICAgZm9yICh2YXIgaiA9
IDA7IGogPCAxZTI7ICsraikgeworICAgICAgICB2YXIgbWFwID0gY3JlYXRlKCk7CisgICAgICAg
IHJvb3QucHVzaChtYXApOworICAgIH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341844</attachid>
            <date>2018-06-02 05:27:41 -0700</date>
            <delta_ts>2018-06-02 14:08:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186102-20180602212740.patch</filename>
            <type>text/plain</type>
            <size>19414</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MjE4NWM4NWRjMDA0ODU3MGQ1MzlhNjc0YjJjYzMxZGJlOGUzM2FjLi5iN2NkOWI5ZDAwZWNmZTFl
YmJkMTlkNGI2YmQyZTgyZGNiMmEyNzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxOC0wNi0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgV2Vha1JlZmVyZW5jZUhhcnZlc3RlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTAyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgc2V2ZXJh
bCBjbGVhbnVwcywgbm93IEpTV2Vha01hcCBiZWNvbWVzIHRoZSBsYXN0IHVzZXIgb2YgV2Vha1Jl
ZmVyZW5jZUhhcnZlc3Rlci4KKyAgICAgICAgU2luY2UgSlNXZWFrTWFwIGlzIGFscmVhZHkgbWFu
YWdlZCBpbiBJc29TdWJzcGFjZSwgd2UgY2FuIGl0ZXJhdGUgbWFya2VkIEpTV2Vha01hcAorICAg
ICAgICBieSB1c2luZyBJc29TdWJzcGFjZTo6Zm9yRWFjaE1hcmtlZENlbGwuCisKKyAgICAgICAg
VGhpcyBwYXRjaCByZW1vdmVzIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuIEluc3RlYWQgb2YgbWFu
YWdpbmcgdGhpcyBsaW5rZWQtbGlzdCwgb3VyCisgICAgICAgIFdlYWsgUmVmZXJlbmNlIEhhcnZl
c3RlciBjb25zdHJhaW50IHNldCBpdGVyYXRlcyBtYXJrZWQgSlNXZWFrTWFwIGJ5IHVzaW5nIFN1
YnNwYWNlLgorCisgICAgICAgIEF0dGFjaGVkIG1pY3JvYmVuY2htYXJrIGRvZXMgbm90IHNob3cg
YW55IHJlZ3Jlc3Npb24uCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lmg6Cisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAo
SlNDOjpIZWFwOjplbmRNYXJraW5nKToKKyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNvbnN0
cmFpbnRzKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFkZFdlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAg
KiBoZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50
aW1lL1dlYWtNYXBJbXBsLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha01hcEltcGw8V2Vha01hcEJ1
Y2tldD46OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDxXZWFrTWFw
QnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5Pj46OnZpc2l0T3V0cHV0Q29uc3RyYWludHMpOgor
ICAgICAgICAoSlNDOjpXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRh
S2V5VmFsdWU+Pjo6dmlzaXRPdXRwdXRDb25zdHJhaW50cyk6CisgICAgICAgIChKU0M6OldlYWtN
YXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXk+Pjo6dmlzaXRXZWFrUmVm
ZXJlbmNlcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYWtNYXBJbXBsPFdlYWtNYXBCdWNr
ZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZT4+Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBJbXBsLmg6CisgICAgICAgIChKU0M6Oldl
YWtNYXBJbXBsOjpXZWFrTWFwSW1wbCk6CisgICAgICAgIChKU0M6OldlYWtNYXBJbXBsOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OldlYWtNYXBJbXBsOjpyZWhhc2gpOgorICAgICAg
ICAoSlNDOjpXZWFrTWFwSW1wbDo6bWFrZUFuZFNldE5ld0J1ZmZlcik6CisgICAgICAgIChKU0M6
OldlYWtNYXBJbXBsOjpEZWFkS2V5Q2xlYW5lcjo6dGFyZ2V0KTogRGVsZXRlZC4KKwogMjAxOC0w
Ni0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggdGhlIHdhdGNoT1MgYnVpbGQgYWZ0ZXIgcjIzMjM4NQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0LmgKaW5kZXggYWFlNWQ0MThhN2EzMjkxNWNhNDNl
Yzk3MjhmNmU4MGMyYTdlN2JiZS4uMzA1ZmNhNGNlMGI4ZmUyMWQ2YjgzODRmOTYyN2IzNjc5MDU1
NDJkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVj
dC5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSlNCYXNlLmgiCiAjaW5jbHVkZSAiSlND
UG9pc29uLmgiCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKLSNpbmNsdWRlICJX
ZWFrUmVmZXJlbmNlSGFydmVzdGVyLmgiCiAjaW5jbHVkZSA8d3RmL1BvaXNvbmVkLmg+CiAKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRCB8fCBkZWZpbmVkKEpTQ19HTElCX0FQSV9FTkFCTEVEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ4N2JiMDMwOTA4OGMyMmEyOGZi
NDkzOTY2MDcwOTMwNWMwYTc0NzEuLmNkZWNhYmQxZDZiMjViYTZlYzczYWI4MmEyMDQzZTBmYzI2
MGU1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU2Nyw3ICs1Njcs
NiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGhl
YXAvV2Vha0hhbmRsZU93bmVyLmgKICAgICBoZWFwL1dlYWtJbXBsLmgKICAgICBoZWFwL1dlYWtJ
bmxpbmVzLmgKLSAgICBoZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaAogICAgIGhlYXAvV2Vh
a1NldC5oCiAgICAgaGVhcC9XZWFrU2V0SW5saW5lcy5oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMTNkYWZiYmQxYmU1YzQ1ZmQ1ZWFhMTFiYzQxMzliZjgxNzhiNDBmZC4uNjNl
NWExNGY2YTM1OGU4MzFkZGUwMjA4NzhhZGFhYjBjOTg3MjJiZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE1MCw3ICsxNTAsNiBAQAogCQkwRjIzNUJFMjE3MTc4RTFDMDA2OTBD
N0YgLyogRlRMVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjIzNUJDQzE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVGh1bmtzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYyMzVCRUMxNzE3OEU3
MzAwNjkwQzdGIC8qIERGR09TUkV4aXRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIzNUJFODE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhp
dEJhc2UuaCAqLzsgfTsKIAkJMEYyMzVCRUUxNzE3OEU3MzAwNjkwQzdGIC8qIERGR09TUkV4aXRQ
cmVwYXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYyMzVCRUExNzE3OEU3MzAwNjkwQzdGIC8qIERGR09TUkV4aXRQcmVwYXJhdGlvbi5oICov
OyB9OwotCQkwRjI0MkRBNzEzRjNCMUU4MDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyNDJE
QTUxM0YzQjFCQjAwN0FERDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjI0RTU0MTE3RUE5RjU5
MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0RTUzQzE3RUE5RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlI
ZWxwZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEYyNEU1NDIxN0VBOUY1OTAwQUJCMjE3IC8qIENDYWxsSGVscGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyNEU1M0QxN0VBOUY1OTAwQUJC
MjE3IC8qIENDYWxsSGVscGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGMjRFNTQzMTdFQTlGNTkwMEFCQjIxNyAvKiBGUFJJbmZvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0RTUzRTE3RUE5
RjU5MDBBQkIyMTcgLyogRlBSSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yMDYzLDcgKzIwNjIsNiBAQAogCQkwRjIzNUJFODE3MTc4RTcz
MDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHT1NSRXhpdEJhc2UuaDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0QmFzZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIzNUJFOTE3MTc4RTczMDA2OTBDN0YgLyogREZH
T1NSRXhpdFByZXBhcmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IERGR09TUkV4aXRQcmVwYXJhdGlvbi5jcHA7IHBhdGggPSBkZmcvREZHT1NSRXhpdFByZXBh
cmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyMzVCRUExNzE3OEU3
MzAwNjkwQzdGIC8qIERGR09TUkV4aXRQcmVwYXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdPU1JFeGl0UHJlcGFyYXRpb24uaDsgcGF0aCA9IGRmZy9ERkdPU1JF
eGl0UHJlcGFyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYyNDJEQTUx
M0YzQjFCQjAwN0FERDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjI0RTUzQjE3RUE5RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlI
ZWxwZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzc2VtYmx5
SGVscGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjRFNTNDMTdFQTlG
NTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXNzZW1ibHlIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGMjRFNTNEMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ0NhbGxIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01ODIxLDcgKzU4MTksNiBAQAogCQkJCTE0RjcyNTY0MTRFRTI2NUUwMEIxNjUy
QiAvKiBXZWFrSGFuZGxlT3duZXIuaCAqLywKIAkJCQkxNEU4NEY5RDE0RUUxQUNDMDBENkQ1RDQg
LyogV2Vha0ltcGwuaCAqLywKIAkJCQkxNEJFN0QzMjE3MTM1Q0Y0MDBEMTgwN0EgLyogV2Vha0lu
bGluZXMuaCAqLywKLQkJCQkwRjI0MkRBNTEzRjNCMUJCMDA3QURENEMgLyogV2Vha1JlZmVyZW5j
ZUhhcnZlc3Rlci5oICovLAogCQkJCTE0RTg0RjlCMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0
LmNwcCAqLywKIAkJCQkxNEU4NEY5QzE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha1NldC5oICovLAog
CQkJCTE0MTUwMTMyMTU0QkIxM0YwMDVEOEM5OCAvKiBXZWFrU2V0SW5saW5lcy5oICovLApAQCAt
OTYyNyw3ICs5NjI0LDYgQEAKIAkJCQlFM0EzMkJDNzFGQzgzMTQ3MDA3RDdFNzYgLyogV2Vha01h
cEltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTNBREQ4MUZFNzAyRDAwMDIyRDY4MSAvKiBX
ZWFrTWFwSW1wbElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Q0EzQUU2MTdEQTQxQUUw
MDY1MzhBRiAvKiBXZWFrTWFwUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjI0MkRB
NzEzRjNCMUU4MDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTRFODRGQTExNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtTZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTcwOUZCODZBMUFFMzM1QzYwMDM5RDA2OSAvKiBXZWFrU2V0Q29uc3RydWN0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTUwMTMzMTU0QkIxM0YwMDVEOEM5OCAvKiBXZWFrU2V0
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmlu
ZGV4IDNiMWFhY2ZjM2VhYTZhNmE3NWE1MjFjNTgxMGQ5ZGQ5NGM1YzQxY2IuLjljNjZiYmMwNTNl
NzNiZDY2ZjQ1MjE1NzQ3NGZjMDM2NTliYTlhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuY3BwCkBAIC03ODIsNyArNzgyLDYgQEAgdm9pZCBIZWFwOjplbmRNYXJraW5nKCkKICAgICAg
ICAgfSk7CiAKICAgICBhc3NlcnRNYXJrU3RhY2tzRW1wdHkoKTsKLSAgICBtX3dlYWtSZWZlcmVu
Y2VIYXJ2ZXN0ZXJzLnJlbW92ZUFsbCgpOwogCiAgICAgUkVMRUFTRV9BU1NFUlQobV9yYWNlTWFy
a1N0YWNrLT5pc0VtcHR5KCkpOwogICAgIApAQCAtMjcxNiwxNCArMjcxNSw2IEBAIHZvaWQgSGVh
cDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICAgICAgfSwKICAgICAgICAgQ29uc3RyYWludFZv
bGF0aWxpdHk6OkdyZXllZEJ5TWFya2luZyk7CiAgICAgCi0gICAgbV9jb25zdHJhaW50U2V0LT5h
ZGQoCi0gICAgICAgICJXcmgiLCAiV2VhayBSZWZlcmVuY2UgSGFydmVzdGVycyIsCi0gICAgICAg
IFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7Ci0gICAgICAgICAgICBmb3IgKFdl
YWtSZWZlcmVuY2VIYXJ2ZXN0ZXIqIGN1cnJlbnQgPSBtX3dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXJz
LmhlYWQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHQoKSkKLSAgICAgICAgICAg
ICAgICBjdXJyZW50LT52aXNpdFdlYWtSZWZlcmVuY2VzKHNsb3RWaXNpdG9yKTsKLSAgICAgICAg
fSwKLSAgICAgICAgQ29uc3RyYWludFZvbGF0aWxpdHk6OkdyZXllZEJ5TWFya2luZyk7Ci0gICAg
CiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJPIiwgIk91dHB1dCIsCiAgICAg
ICAgIFtdIChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpIHsKQEAgLTI3NDAsNiArMjczMSw3IEBA
IHZvaWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICAgICAgICAgIH07CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGFkZCh2bS5leGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdlc1dpdGhD
b25zdHJhaW50cyk7CisgICAgICAgICAgICBhZGQodm0ud2Vha01hcFNwYWNlKTsKICAgICAgICAg
fSwKICAgICAgICAgQ29uc3RyYWludFZvbGF0aWxpdHk6OkdyZXllZEJ5TWFya2luZywKICAgICAg
ICAgQ29uc3RyYWludFBhcmFsbGVsaXNtOjpQYXJhbGxlbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmgKaW5kZXggZTdkOTlmYjJiNzgxN2ZmYjAzYjY5MmM0OWUzZWFjMTJkZjMzODFiYi4uM2Vm
ZDIwMTg3MTM1MWJmNWQxZmFmY2FiZGExMTJiZjhkMjc0Njk4OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZUlEVGFibGUu
aCIKICNpbmNsdWRlICJTeW5jaHJvbm91c25lc3MuaCIKICNpbmNsdWRlICJXZWFrSGFuZGxlT3du
ZXIuaCIKLSNpbmNsdWRlICJXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0F1dG9tYXRpY1RocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9Db25jdXJyZW50UHRySGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgpAQCAtNjc0LDggKzY3Myw2IEBAIGNsYXNzIEhlYXAg
ewogCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzX2Jsb2NrRnJhZ21lbnRMZW5ndGggPSAzMjsK
IAotICAgIExpc3RhYmxlSGFuZGxlcjxXZWFrUmVmZXJlbmNlSGFydmVzdGVyPjo6TGlzdCBtX3dl
YWtSZWZlcmVuY2VIYXJ2ZXN0ZXJzOwotCiAgICAgUGFyYWxsZWxIZWxwZXJDbGllbnQgbV9oZWxw
ZXJDbGllbnQ7CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPj4gbV9i
b251c1Zpc2l0b3JUYXNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TbG90VmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRv
ci5jcHAKaW5kZXggNWIwOTI0YTg0NmQyY2ExMjM0NGZjNTM3YTI3ZmVjMjA1OTA1NDlkNC4uYjg5
Njg2ZTU0NWE4ZTcwYjI4OWQxYjQyMTg2OGU5YTgyZGZkNzA2MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcApAQCAtNzUzLDExICs3NTMsNiBAQCB2b2lkIFNs
b3RWaXNpdG9yOjpkb25hdGVBbmREcmFpbihNb25vdG9uaWNUaW1lIHRpbWVvdXQpCiAgICAgZHJh
aW4odGltZW91dCk7CiB9CiAKLXZvaWQgU2xvdFZpc2l0b3I6OmFkZFdlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXIoV2Vha1JlZmVyZW5jZUhhcnZlc3Rlciogd2Vha1JlZmVyZW5jZUhhcnZlc3RlcikKLXsK
LSAgICBtX2hlYXAubV93ZWFrUmVmZXJlbmNlSGFydmVzdGVycy5hZGRUaHJlYWRTYWZlKHdlYWtS
ZWZlcmVuY2VIYXJ2ZXN0ZXIpOwotfQotCiB2b2lkIFNsb3RWaXNpdG9yOjpkaWRSYWNlKGNvbnN0
IFZpc2l0UmFjZUtleSYgcmFjZSkKIHsKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZVZpc2l0UmFj
ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKaW5kZXggMjlmYmZh
Y2I1NjIzNDIwOTMzMWJkYmY2MDZkZmQxNWMyNzZjYzMwMy4uZThhMjc3NDNhNmM2M2IxMmFkOTk3
NzNhYmQyNjBkODM5YWQzMTczMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90Vmlz
aXRvci5oCkBAIC00NSw3ICs0NSw2IEBAIGNsYXNzIE1hcmtlZEJsb2NrOwogY2xhc3MgTWFya2lu
Z0NvbnN0cmFpbnQ7CiBjbGFzcyBNYXJraW5nQ29uc3RyYWludFNvbHZlcjsKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGNsYXNzIFdlYWs7Ci1jbGFzcyBXZWFrUmVmZXJlbmNlSGFydmVzdGVyOwogdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiBjbGFzcyBXcml0ZUJhcnJpZXJCYXNl
OwogCiB0eXBlZGVmIHVpbnQzMl90IEhlYXBWZXJzaW9uOwpAQCAtMTQwLDggKzEzOSw2IEBAIGNs
YXNzIFNsb3RWaXNpdG9yIHsKICAgICB2b2lkIHJlcG9ydEV4dGVybmFsTWVtb3J5VmlzaXRlZChz
aXplX3QpOwogI2VuZGlmCiAgICAgCi0gICAgdm9pZCBhZGRXZWFrUmVmZXJlbmNlSGFydmVzdGVy
KFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIqKTsKLQogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYp
IGNvbnN0OwogCiAgICAgYm9vbCBpc0J1aWxkaW5nSGVhcFNuYXBzaG90KCkgY29uc3QgeyByZXR1
cm4gISFtX2hlYXBTbmFwc2hvdEJ1aWxkZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDgwN2UwNjc5MWVhN2E4N2E2Yzk2ZTkyMDliNjVmMDAzMTdhN2UwNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9XZWFrUmVmZXJlbmNlSGFydmVzdGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0
MCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbmNsdWRlICJMaXN0YWJsZUhhbmRsZXIuaCIKLQotbmFtZXNwYWNlIEpTQyB7
Ci0KLWNsYXNzIFNsb3RWaXNpdG9yOwotCi1jbGFzcyBXZWFrUmVmZXJlbmNlSGFydmVzdGVyIDog
cHVibGljIExpc3RhYmxlSGFuZGxlcjxXZWFrUmVmZXJlbmNlSGFydmVzdGVyPiB7Ci1wdWJsaWM6
Ci0gICAgdmlydHVhbCB2b2lkIHZpc2l0V2Vha1JlZmVyZW5jZXMoU2xvdFZpc2l0b3ImKSA9IDA7
Ci0gICAgCi1wcm90ZWN0ZWQ6Ci0gICAgV2Vha1JlZmVyZW5jZUhhcnZlc3RlcigpCi0gICAgewot
ICAgIH0KLSAgICAKLSAgICB2aXJ0dWFsIH5XZWFrUmVmZXJlbmNlSGFydmVzdGVyKCkgeyB9Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dlYWtNYXBJbXBsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dlYWtNYXBJbXBsLmNwcAppbmRleCBmYzVlYmRjYzRmYTAyNjkyMjNkNjY0NDc4YjcxMjIzMmU2
YzIxYWI0Li4wZTMxYmQ2ODNkNmI3OWM2NzllNDg0OWY4OGZkMWJmNGMwMjVkNzA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuY3BwCkBAIC00NSw5ICs0
NSw2IEBAIHZvaWQgV2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldD46OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvCiAgICAgV2Vha01hcEltcGwqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8V2Vha01hcEltcGwqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlz
T2JqZWN0LCB2aXNpdG9yKTsKLQotICAgIGlmIChpc1dlYWtNYXAoKSkKLSAgICAgICAgdmlzaXRv
ci5hZGRXZWFrUmVmZXJlbmNlSGFydmVzdGVyKCZ0aGlzT2JqZWN0LT5tX2RlYWRLZXlDbGVhbmVy
KTsKICAgICB2aXNpdG9yLnJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZCh0aGlzT2JqZWN0LT5tX2Nh
cGFjaXR5ICogc2l6ZW9mKFdlYWtNYXBCdWNrZXQpKTsKIH0KIApAQCAtNTksMTYgKzU2LDE4IEBA
IHNpemVfdCBXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0Pjo6ZXN0aW1hdGVkU2l6ZShKU0NlbGwq
IGNlbGwpCiB9CiAKIHRlbXBsYXRlIDw+Ci12b2lkIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ8
V2Vha01hcEJ1Y2tldERhdGFLZXk+Pjo6dmlzaXRXZWFrUmVmZXJlbmNlcyhTbG90VmlzaXRvciYp
Cit2b2lkIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXk+Pjo6
dmlzaXRPdXRwdXRDb25zdHJhaW50cyhKU0NlbGwqLCBTbG90VmlzaXRvciYpCiB7CiAgICAgLy8g
T25seSBKU1dlYWtNYXAgbmVlZHMgdG8gaGFydmVzdCB2YWx1ZSByZWZlcmVuY2VzCiB9CiAKIHRl
bXBsYXRlIDw+Ci12b2lkIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERh
dGFLZXlWYWx1ZT4+Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQor
dm9pZCBXZWFrTWFwSW1wbDxXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5VmFsdWU+
Pjo6dmlzaXRPdXRwdXRDb25zdHJhaW50cyhKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogewotICAgIGF1dG8qIGJ1ZmZlciA9IHRoaXMtPmJ1ZmZlcigpOwotICAgIGZvciAodWlu
dDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IG1fY2FwYWNpdHk7ICsraW5kZXgpIHsKKyAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PFdlYWtNYXBJbXBsKj4oY2VsbCk7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0LT5jZWxsTG9jaygpKTsKKyAgICBhdXRvKiBidWZmZXIg
PSB0aGlzT2JqZWN0LT5idWZmZXIoKTsKKyAgICBmb3IgKHVpbnQzMl90IGluZGV4ID0gMDsgaW5k
ZXggPCB0aGlzT2JqZWN0LT5tX2NhcGFjaXR5OyArK2luZGV4KSB7CiAgICAgICAgIGF1dG8qIGJ1
Y2tldCA9IGJ1ZmZlciArIGluZGV4OwogICAgICAgICBpZiAoYnVja2V0LT5pc0VtcHR5KCkgfHwg
YnVja2V0LT5pc0RlbGV0ZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmgKaW5kZXggMWJmNjM1MGIwOGNkZDEwNmM3
YThiNmFlZTE5NjU4ZTUzZTg3OTY2My4uMDg4YmFjNWZjZjYxNjkwMWVmZDM1NzkxNTc1YzdjNDYy
ZGRhMzExNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01h
cEltcGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbC5o
CkBAIC0yMDcsMTggKzIwNywxOSBAQCBjbGFzcyBXZWFrTWFwSW1wbCA6IHB1YmxpYyBKU0Rlc3Ry
dWN0aWJsZU9iamVjdCB7CiAKICAgICBXZWFrTWFwSW1wbChWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICAgICAgLCBtX2tleUNv
dW50KDApCi0gICAgICAgICwgbV9kZWxldGVDb3VudCgwKQotICAgICAgICAsIG1fY2FwYWNpdHko
NCkKICAgICB7CiAgICAgfQogCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBpbml0aWFs
Q2FwYWNpdHkgPSA0OworCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgewog
ICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERh
dGFLZXk+OjpvZmZzZXRPZktleSgpID09IFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFL
ZXlWYWx1ZT46Om9mZnNldE9mS2V5KCksICJXZSBhc3N1bWUgdGhpcyB0byBiZSB0cnVlIGluIHRo
ZSBERkcgYW5kIEZUTCBKSVQuIik7CiAKICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwotICAgICAgICBtYWtlQW5kU2V0TmV3QnVmZmVyKCk7CisKKyAgICAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhjZWxsTG9jaygpKTsKKyAgICAgICAgbWFrZUFuZFNldE5ld0J1ZmZlcihsb2Nr
ZXIsIGluaXRpYWxDYXBhY2l0eSk7CiAgICAgfQogCiAgICAgLy8gV2Vha01hcCBvcGVyYXRpb25z
IG11c3Qgbm90IGNhdXNlIEdDLiBXZSBtb2RlbCBvcGVyYXRpb25zIGluIERGRyBiYXNlZCBvbiB0
aGlzIGd1YXJhbnRlZS4KQEAgLTMwOSw2ICszMTAsNyBAQCBjbGFzcyBXZWFrTWFwSW1wbCA6IHB1
YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgICAgIHJldHVybiAmdm0ud2Vha1NldFNw
YWNlOwogICAgIH0KIAorICAgIHN0YXRpYyB2b2lkIHZpc2l0T3V0cHV0Q29uc3RyYWludHMoSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZN
Jik7CiAKIHByaXZhdGU6CkBAIC00MDMsMTUgKzQwNSwyMCBAQCBjbGFzcyBXZWFrTWFwSW1wbCA6
IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgICAgIC8vIGZ1bmN0aW9uIG11c3Qg
bm90IHRvdWNoIGFueSBHQyByZWxhdGVkIGZlYXR1cmVzLiBUaGlzIGlzIHdoeSB3ZSBkbyBub3Qg
YWxsb2NhdGUgV2Vha01hcEJ1ZmZlcgogICAgICAgICAvLyBpbiBhdXhpbGlhcnkgYnVmZmVyLgog
CisgICAgICAgIC8vIFRoaXMgcmVoYXNoIG1vZGlmaWVzIG1fYnVmZmVyIHdoaWNoIGlzIG5vdCBH
Qy1tYW5hZ2VkIGJ1ZmZlci4gQnV0IG1fYnVmZmVyIGNhbiBiZSB0b3VjaGVkIGluCisgICAgICAg
IC8vIHZpc2l0T3V0cHV0Q29uc3RyYWludHMuIFRodXMsIHdlIHNob3VsZCBndWFyZCBpdCB3aXRo
IGNlbGxMb2NrLgorICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGNlbGxMb2NrKCkpOwor
CiAgICAgICAgIHVpbnQzMl90IG9sZENhcGFjaXR5ID0gbV9jYXBhY2l0eTsKICAgICAgICAgTWFs
bG9jUHRyPFdlYWtNYXBCdWZmZXJUeXBlLCBKU1ZhbHVlTWFsbG9jPiBvbGRCdWZmZXIgPSBXVEZN
b3ZlKG1fYnVmZmVyKTsKIAorICAgICAgICB1aW50MzJfdCBjYXBhY2l0eSA9IG1fY2FwYWNpdHk7
CiAgICAgICAgIGlmIChtb2RlID09IFJlaGFzaE1vZGU6OlJlbW92ZUJhdGNoaW5nKSB7CiAgICAg
ICAgICAgICBBU1NFUlQoc2hvdWxkU2hyaW5rKCkpOwotICAgICAgICAgICAgbV9jYXBhY2l0eSA9
IG5leHRDYXBhY2l0eUFmdGVyQmF0Y2hSZW1vdmFsKG1fY2FwYWNpdHksIG1fa2V5Q291bnQpOwor
ICAgICAgICAgICAgY2FwYWNpdHkgPSBuZXh0Q2FwYWNpdHlBZnRlckJhdGNoUmVtb3ZhbChjYXBh
Y2l0eSwgbV9rZXlDb3VudCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9jYXBhY2l0
eSA9IG5leHRDYXBhY2l0eShtX2NhcGFjaXR5LCBtX2tleUNvdW50KTsKLSAgICAgICAgbWFrZUFu
ZFNldE5ld0J1ZmZlcigpOworICAgICAgICAgICAgY2FwYWNpdHkgPSBuZXh0Q2FwYWNpdHkoY2Fw
YWNpdHksIG1fa2V5Q291bnQpOworICAgICAgICBtYWtlQW5kU2V0TmV3QnVmZmVyKGxvY2tlciwg
Y2FwYWNpdHkpOwogCiAgICAgICAgIGF1dG8qIGJ1ZmZlciA9IHRoaXMtPmJ1ZmZlcigpOwogICAg
ICAgICBjb25zdCB1aW50MzJfdCBtYXNrID0gbV9jYXBhY2l0eSAtIDE7CkBAIC00NDksMTEgKzQ1
NiwxMiBAQCBjbGFzcyBXZWFrTWFwSW1wbCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIG1ha2VBbmRTZXROZXdCdWZmZXIoKQorICAg
IHZvaWQgbWFrZUFuZFNldE5ld0J1ZmZlcihjb25zdCBBYnN0cmFjdExvY2tlciYsIHVpbnQzMl90
IGNhcGFjaXR5KQogICAgIHsKLSAgICAgICAgQVNTRVJUKCEobV9jYXBhY2l0eSAmIChtX2NhcGFj
aXR5IC0gMSkpKTsKKyAgICAgICAgQVNTRVJUKCEoY2FwYWNpdHkgJiAoY2FwYWNpdHkgLSAxKSkp
OwogCi0gICAgICAgIG1fYnVmZmVyID0gV2Vha01hcEJ1ZmZlclR5cGU6OmNyZWF0ZShtX2NhcGFj
aXR5KTsKKyAgICAgICAgbV9idWZmZXIgPSBXZWFrTWFwQnVmZmVyVHlwZTo6Y3JlYXRlKGNhcGFj
aXR5KTsKKyAgICAgICAgbV9jYXBhY2l0eSA9IGNhcGFjaXR5OwogICAgICAgICBBU1NFUlQobV9i
dWZmZXIpOwogICAgICAgICBhc3NlcnRCdWZmZXJJc0VtcHR5KCk7CiAgICAgfQpAQCAtNDY5LDI3
ICs0NzcsMTAgQEAgY2xhc3MgV2Vha01hcEltcGwgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmpl
Y3QgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFwcGVuZGVyPgogICAgIHZvaWQgdGFrZVNuYXBz
aG90SW50ZXJuYWwodW5zaWduZWQgbGltaXQsIEFwcGVuZGVyKTsKIAotICAgIGNsYXNzIERlYWRL
ZXlDbGVhbmVyIDogcHVibGljIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIgewotICAgIHB1YmxpYzoK
LSAgICAgICAgV2Vha01hcEltcGwqIHRhcmdldCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBiaXR3aXNlX2Nhc3Q8V2Vha01hcEltcGwqPihiaXR3aXNlX2Nhc3Q8Y2hhcio+KHRoaXMp
IC0gT0JKRUNUX09GRlNFVE9GKFdlYWtNYXBJbXBsLCBtX2RlYWRLZXlDbGVhbmVyKSk7Ci0gICAg
ICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgdmlzaXRXZWFrUmVmZXJlbmNlcyhT
bG90VmlzaXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKLSAgICAgICAgewotICAgICAgICAgICAgdGFy
Z2V0KCktPnZpc2l0V2Vha1JlZmVyZW5jZXModmlzaXRvcik7Ci0gICAgICAgIH0KLSAgICB9Owot
Ci0gICAgdm9pZCB2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJik7Ci0KICAgICBNYWxs
b2NQdHI8V2Vha01hcEJ1ZmZlclR5cGUsIEpTVmFsdWVNYWxsb2M+IG1fYnVmZmVyOwotICAgIHVp
bnQzMl90IG1fa2V5Q291bnQ7Ci0gICAgdWludDMyX3QgbV9kZWxldGVDb3VudDsKLSAgICB1aW50
MzJfdCBtX2NhcGFjaXR5OwotICAgIERlYWRLZXlDbGVhbmVyIG1fZGVhZEtleUNsZWFuZXI7Cisg
ICAgdWludDMyX3QgbV9jYXBhY2l0eSB7IDAgfTsKKyAgICB1aW50MzJfdCBtX2tleUNvdW50IHsg
MCB9OworICAgIHVpbnQzMl90IG1fZGVsZXRlQ291bnQgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZTM3ZjhkYmRlMThhNjlhMDU5YWE4YzkzN2ZhMjk1ODllY2ZkOTJlNC4uMjY3ZDkw
NDAyNGQ3ZjhhNDMxZTVmZjRlNDNiOWM5Y2M0NzA2MDBhMSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0w
Ni0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBb
SlNDXSBSZW1vdmUgV2Vha1JlZmVyZW5jZUhhcnZlc3RlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvY3JlYXRlLW1hbnkt
d2Vhay1tYXAuanM6IEFkZGVkLgorCiAyMDE4LTA1LTI5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBTeW1ib2wucHJvdG90eXBlLmRl
c2NyaXB0aW9uIGdldHRlcgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3Jl
YXRlLW1hbnktd2Vhay1tYXAuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jcmVhdGUtbWFu
eS13ZWFrLW1hcC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDMwZDEyM2I0MWI2ZjY3NjAwZWMzYjE3ZTI3ODIx
YzQyZjNkYzk2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvY3Jl
YXRlLW1hbnktd2Vhay1tYXAuanMKQEAgLTAsMCArMSwyMCBAQAordmFyIHJvb3QgPSBbXTsKKwor
ZnVuY3Rpb24gY3JlYXRlKCkKK3sKKyAgICB2YXIgd2Vha01hcCA9IG5ldyBXZWFrTWFwKCk7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTI7ICsraSkgeworICAgICAgICB2YXIga2V5ID0ge307
CisgICAgICAgIHZhciB2YWx1ZSA9IHt9OworICAgICAgICB3ZWFrTWFwLnNldChrZXksIHZhbHVl
KTsKKyAgICAgICAgaWYgKGkgJSAxMCA9PT0gMCkKKyAgICAgICAgICAgIHJvb3QucHVzaChrZXkp
OworICAgIH0KK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTI7ICsraSkgeworICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgMWUyOyArK2opIHsKKyAgICAgICAgdmFyIG1hcCA9IGNyZWF0ZSgpOwor
ICAgICAgICByb290LnB1c2gobWFwKTsKKyAgICB9Cit9Cg==
</data>
<flag name="review"
          id="360001"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>