<?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>187165</bug_id>
          
          <creation_ts>2018-06-28 18:33:34 -0700</creation_ts>
          <short_desc>Stop using lambdas for WebResourceLoadStatisticsStore to interact with its WebsiteDataStore</short_desc>
          <delta_ts>2018-06-29 12:14:10 -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>WebKit2</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>
          <dependson>187189</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1437663</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-28 18:33:34 -0700</bug_when>
    <thetext>Stop using lambdas for WebResourceLoadStatisticsStore to interact with its WebsiteDataStore. Instead, WebResourceLoadStatisticsStore now holds a weak pointer to its WebsiteDataStore and is able to call methods on it directly. Reducing the indirection makes the code less complex and more understandable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437665</commentid>
    <comment_count>1</comment_count>
      <attachid>343880</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-28 18:39:05 -0700</bug_when>
    <thetext>Created attachment 343880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437668</commentid>
    <comment_count>2</comment_count>
      <attachid>343881</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-28 18:52:22 -0700</bug_when>
    <thetext>Created attachment 343881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437669</commentid>
    <comment_count>3</comment_count>
      <attachid>343882</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-28 18:57:35 -0700</bug_when>
    <thetext>Created attachment 343882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437803</commentid>
    <comment_count>4</comment_count>
      <attachid>343882</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-06-29 09:26:53 -0700</bug_when>
    <thetext>Comment on attachment 343882
Patch

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

r=me

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:1480
&gt; +    m_resourceLoadStatistics-&gt;setStatisticsTestingCallback(WTFMove(callback));

Yes, I like this much better. We only worry about the testing callback in the one case where we need it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437804</commentid>
    <comment_count>5</comment_count>
      <attachid>343882</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-06-29 09:27:10 -0700</bug_when>
    <thetext>Comment on attachment 343882
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437806</commentid>
    <comment_count>6</comment_count>
      <attachid>343882</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-06-29 09:27:40 -0700</bug_when>
    <thetext>Comment on attachment 343882
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437811</commentid>
    <comment_count>7</comment_count>
      <attachid>343882</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-29 09:54:12 -0700</bug_when>
    <thetext>Comment on attachment 343882
Patch

Clearing flags on attachment: 343882

Committed r233359: &lt;https://trac.webkit.org/changeset/233359&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437812</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-29 09:54:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437813</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-29 09:55:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/41639643&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343880</attachid>
            <date>2018-06-28 18:39:05 -0700</date>
            <delta_ts>2018-06-28 18:52:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187165-20180628183929.patch</filename>
            <type>text/plain</type>
            <size>16229</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVjYmY2MmZiYzEwZDZiYTI0
MzI4NDM2YWE3OWRkMWQ3N2NiNTcyZWUuLjU5MDkyZWQyZDAwN2M0NTljZDlhYzJiMmZjYWRiYzJm
YTY4YjE2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTgtMDYtMjggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGxhbWJkYXMgZm9y
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB0byBpbnRlcmFjdCB3aXRoIGl0cyBXZWJz
aXRlRGF0YVN0b3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdG9wIHVzaW5nIGxhbWJkYXMgZm9yIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZSB0byBpbnRlcmFjdCB3aXRoIGl0cyBXZWJzaXRlRGF0YVN0b3JlLiBJbnN0ZWFkLAorICAgICAg
ICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgbm93IGhvbGRzIGEgd2VhayBwb2ludGVy
IHRvIGl0cyBXZWJzaXRlRGF0YVN0b3JlIGFuZCBpcyBhYmxlIHRvIGNhbGwKKyAgICAgICAgbWV0
aG9kcyBvbiBpdCBkaXJlY3RseS4gUmVkdWNpbmcgdGhlIGluZGlyZWN0aW9uIG1ha2VzIHRoZSBj
b2RlIGxlc3MgY29tcGxleCBhbmQgbW9yZSB1bmRlcnN0YW5kYWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nl
c3NIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0
aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NBbmRTZXRU
ZXN0aW5nQ2FsbGJhY2spOgorCiAyMDE4LTA2LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUgZ2V0cyBkZXN0cm95ZWQgb24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAppbmRleCA2Zjk4ZTc1MWU1OTQzMWMwNGU5OTk4NzExOGIxOWMwMDU2OTZjNzBlLi42YTI1YTBk
OTZmNzQ4OWNlNGM1NWUxMTc0ZWQ3NmFmZGVmNWIyOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
QEAgLTExMSwyMSArMTExLDE2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzZXRTaG91bGRTdWJtaXRUZWxlbWV0cnkoYm9vbCB2YWx1ZSkKICAgICB9KTsKIH0KIAotV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBGdW5jdGlv
bjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJh
bCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVy
JiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVy
LCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyJiYgaGFzU3RvcmFnZUFjY2Vzc0ZvckZy
YW1lSGFuZGxlciwgR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vz
c0hhbmRsZXIsIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyJiYgcmVtb3ZlQWxsU3RvcmFn
ZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZVByZXZhbGVudERvbWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9t
YWluc0hhbmRsZXIpCi0gICAgOiBtX3N0YXRpc3RpY3NRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIsIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCi0gICAgLCBtX3Vw
ZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlcihXVEZN
b3ZlKHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxl
cikpCi0gICAgLCBtX2hhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoV1RGTW92ZShoYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKSkKLSAgICAsIG1fZ3JhbnRTdG9yYWdlQWNjZXNz
SGFuZGxlcihXVEZNb3ZlKGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpKQotICAgICwgbV9yZW1v
dmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlcihXVEZNb3ZlKHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NI
YW5kbGVyKSkKLSAgICAsIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXIoV1RGTW92ZShyZW1vdmVEb21h
aW5zSGFuZGxlcikpCitXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZShXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQor
ICAgIDogbV93ZWJzaXRlRGF0YVN0b3JlKG1ha2VXZWFrUHRyKHdlYnNpdGVEYXRhU3RvcmUpKQor
ICAgICwgbV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNl
cmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQogICAgICwgbV9kYWlseVRhc2tzVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpw
ZXJmb3JtRGFpbHlUYXNrcykKLSAgICAsIG1fc3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjayhXVEZN
b3ZlKHRlc3RpbmdDYWxsYmFjaykpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
IAotICAgIG1fc3RhdGlzdGljc1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBpc0VwaGVtZXJhbCwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCldIHsK
KyAgICBtX3N0YXRpc3RpY3NRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgaXNQZXJzaXN0ZW50ID0gd2Vic2l0ZURhdGFTdG9yZS5pc1BlcnNpc3Rl
bnQoKSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUu
cmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCld
IHsKICAgICAgICAgbV9tZW1vcnlTdG9yZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUpOwotICAgICAg
ICBtX3BlcnNpc3RlbnRTdG9yYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+KCptX21lbW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NRdWV1
ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgaXNFcGhlbWVyYWwgPyBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OklzUmVhZE9ubHk6OlllcyA6IFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6SXNSZWFkT25seTo6Tm8pOworICAg
ICAgICBtX3BlcnNpc3RlbnRTdG9yYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+KCptX21lbW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NR
dWV1ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgaXNQZXJzaXN0ZW50ID8gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOjpJc1JlYWRPbmx5OjpObyA6IFJl
c291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6SXNSZWFkT25seTo6WWVzKTsK
ICAgICB9KTsKIAogICAgIG1fc3RhdGlzdGljc1F1ZXVlLT5kaXNwYXRjaEFmdGVyKDVfcywgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewpAQCAtMjI3LDcgKzIyMiwxMCBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nl
c3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAKLSAgICBtX2hhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIocmVzb3VyY2VEb21h
aW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9y
ZS0+aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihyZXNvdXJjZURvbWFpbiwgZmlyc3RQ
YXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgZWxz
ZQorICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3Qs
IFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlE
LCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vz
c1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0yOTQsMTQgKzI5MiwxOCBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hh
bmRsZXIoY29uc3QgU3RyaW5nJgogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
LSAgICBtX2dyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoc3ViRnJhbWVQcmltYXJ5RG9tYWluLCB0
b3BGcmFtZVByaW1hcnlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9y
ZS0+Z3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihzdWJGcmFtZVByaW1hcnlEb21haW4sIHRvcEZy
YW1lUHJpbWFyeURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cisg
ICAgZWxzZQorICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgbV9yZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFu
ZGxlcigpOworICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIG1fd2Vic2l0ZURh
dGFTdG9yZS0+cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoKTsKIH0KIAogCkBAIC04MDQs
MTQgKzgwNiwxOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0R3Jh
bmRmYXRoZXJpbmdUaW1lKFNlY29uZHMgc2Vjb25kcykKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9j
a0Nvb2tpZXNIYW5kbGVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9QYXJ0aXRpb24s
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xlYXJGaXJzdCBz
aG91bGRDbGVhckZpcnN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX3VwZGF0ZVBy
ZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlcihkb21haW5zVG9Q
YXJ0aXRpb24sIGRvbWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxv
Y2ssIHNob3VsZENsZWFyRmlyc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBp
ZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnVwZGF0
ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzKGRvbWFpbnNUb1BhcnRp
dGlvbiwgZG9tYWluc1RvQmxvY2ssIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywg
c2hvdWxkQ2xlYXJGaXJzdCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmNhbGxSZW1vdmVEb21haW5zSGFuZGxlcihjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZG9tYWlucykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
bV9yZW1vdmVEb21haW5zSGFuZGxlcihkb21haW5zKTsKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0
b3JlKQorICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlbW92ZVByZXZhbGVudERvbWFpbnMo
ZG9tYWlucyk7CiB9CiAgICAgCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
c2V0TWF4U3RhdGlzdGljc0VudHJpZXMoc2l6ZV90IG1heGltdW1FbnRyeUNvdW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAppbmRleCBhNGMwMmNiMzdlZTU2YmYwMmZjOWJjZWI3YTc0NWMxMzQzZGNhNTEwLi4x
NDdjNDY2OWIxZTgzN2U5MDQwNGM4ZDlkZjMzNWFkN2FhNDk0NjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV1RGIHsKQEAgLTUwLDYgKzUxLDcgQEAgY2xhc3MgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOwogY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3Rl
bnRTdG9yYWdlOwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsK
K2NsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CiAKIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJGaXJzdDsK
IGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyB7CkBAIC02MCwxNCArNjIsOSBAQCBlbnVt
IGNsYXNzIFN0b3JhZ2VBY2Nlc3NTdGF0dXMgewogCiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgVXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyID0gV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFdURjo6VmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwg
Y29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIGNvbnN0IFdURjo6VmVj
dG9yPFN0cmluZz4mIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xl
YXJGaXJzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKT47Ci0gICAgdXNpbmcgSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJp
bmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgaGFz
QWNjZXNzKT4mJiBjYWxsYmFjayk+OwotICAgIHVzaW5nIEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRs
ZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6RnVuY3Rpb248dm9pZChib29sIHdhc0dyYW50ZWQp
PiYmIGNhbGxiYWNrKT47Ci0gICAgdXNpbmcgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIg
PSBXVEY6OkZ1bmN0aW9uPHZvaWQoKT47Ci0gICAgdXNpbmcgUmVtb3ZlUHJldmFsZW50RG9tYWlu
c0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYp
PjsKLSAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVt
ZXJhbCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5k
bGVyJiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5k
bGVyID0gW10oY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFN0
cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxTdHJpbmc+JiwgU2hvdWxkQ2xlYXJGaXJzdCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKCk7IH0sIEhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXImJiBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5k
bGVyID0gW10oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QsIHVpbnQ2NF90
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYpIHsgfSwgR3JhbnRTdG9yYWdlQWNjZXNzSGFu
ZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIgPSBbXShjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiwgdWludDY0X3QsIFdURjo6RnVuY3Rp
b248dm9pZChib29sKT4mJikgeyB9LCBSZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlciYmIHJl
bW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyID0gW10oKSB7IH0sIFJlbW92ZVByZXZhbGVudERv
bWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9tYWluc0hhbmRsZXIgPSBbXSAoY29uc3QgV1RGOjpWZWN0
b3I8U3RyaW5nPiYpIHsgfSkKKyAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZT4gY3JlYXRlKFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGTW92ZSh0ZXN0aW5nQ2Fs
bGJhY2spLCBpc0VwaGVtZXJhbCwgV1RGTW92ZSh1cGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0
aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIpLCBXVEZNb3ZlKGhhc1N0b3JhZ2VBY2Nlc3NGb3JG
cmFtZUhhbmRsZXIpLCBXVEZNb3ZlKGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpLCBXVEZNb3Zl
KHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKSwgV1RGTW92ZShyZW1vdmVEb21haW5zSGFu
ZGxlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlKHdlYnNpdGVEYXRhU3RvcmUpKTsKICAgICB9CiAKICAgICB+V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CkBAIC0xNDYsNyArMTQzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJik7CiAK
IHByaXZhdGU6Ci0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKGNvbnN0IFN0cmlu
ZyYsIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4mJiB0ZXN0aW5nQ2FsbGJhY2ss
IGJvb2wgaXNFcGhlbWVyYWwsIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxv
Y2tDb29raWVzSGFuZGxlciYmLCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyJiYsIEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXImJiwgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIm
JiwgUmVtb3ZlUHJldmFsZW50RG9tYWluc0hhbmRsZXImJik7CisgICAgZXhwbGljaXQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKFdlYnNpdGVEYXRhU3RvcmUmKTsKIAogICAgIC8vIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC0xNjEsMTYgKzE1OCwxMSBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBmbHVzaEFuZERlc3Ryb3lQZXJzaXN0ZW50U3RvcmUoKTsKIAor
ICAgIFdlYWtQdHI8V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOwogICAgIFJl
ZjxXb3JrUXVldWU+IG1fc3RhdGlzdGljc1F1ZXVlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+IG1fbWVtb3J5U3RvcmU7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4gbV9wZXJz
aXN0ZW50U3RvcmFnZTsKIAotICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9y
QmxvY2tDb29raWVzSGFuZGxlciBtX3VwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9y
QmxvY2tDb29raWVzSGFuZGxlcjsKLSAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVy
IG1faGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcjsKLSAgICBHcmFudFN0b3JhZ2VBY2Nl
c3NIYW5kbGVyIG1fZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcjsKLSAgICBSZW1vdmVBbGxTdG9y
YWdlQWNjZXNzSGFuZGxlciBtX3JlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyOwotICAgIFJl
bW92ZVByZXZhbGVudERvbWFpbnNIYW5kbGVyIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXI7Ci0KICAg
ICBSdW5Mb29wOjpUaW1lcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IG1fZGFpbHlU
YXNrc1RpbWVyOwogCiAgICAgYm9vbCBtX2hhc1NjaGVkdWxlZFByb2Nlc3NTdGF0cyB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDdkMTgxYjljZTY5MjYzOGYzNTZiOGUxZmFiOTBlYTk1
NWRhOTkwMjcuLjEwODI2MGEwYWU3YWQxMGNlNzM4YzBkNmY0ZmMxZjk2NTA5OWUyZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0xNDc2LDI2ICsxNDc2LDggQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQW5kU2V0VGVzdGluZ0NhbGxiYWNrKEZ1bmN0
aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0Vf
UEFSVElUSU9OSU5HKQotICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKGNhbGxiYWNrKSwgbV9zZXNzaW9uSUQuaXNFcGhl
bWVyYWwoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNU
b0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5v
ckJsb2NrLCBTaG91bGRDbGVhckZpcnN0IHNob3VsZENsZWFyRmlyc3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICBpZiAod2Vha1RoaXMp
Ci0gICAgICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9u
T3JCbG9ja0Nvb2tpZXMoZG9tYWluc1RvUGFydGl0aW9uLCBkb21haW5zVG9CbG9jaywgZG9tYWlu
c1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBzaG91bGRDbGVhckZpcnN0LCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
XSAoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7Ci0gICAgICAg
IGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5oYXNTdG9yYWdlQWNjZXNzRm9y
RnJhbWVIYW5kbGVyKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBw
YWdlSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyldIChjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBT
dHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgd2FzR3Jh
bnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgaWYgKHdlYWtUaGlzKQotICAg
ICAgICAgICAgd2Vha1RoaXMtPmdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIocmVzb3VyY2VEb21h
aW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwotICAgIH0sIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKCkgewot
ICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+cmVtb3ZlQWxsU3Rv
cmFnZUFjY2Vzc0hhbmRsZXIoKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvUmVtb3ZlKSB7Ci0gICAgICAgIGlm
ICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5yZW1vdmVQcmV2YWxlbnREb21haW5z
KGRvbWFpbnNUb1JlbW92ZSk7Ci0gICAgfSk7Ci0jZWxzZQotICAgIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKG1fY29uZmln
dXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKGNhbGxiYWNr
KSwgbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7Ci0jZW5kaWYKKyAgICBtX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZSgqdGhp
cywgbV9jb25maWd1cmF0aW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOworICAg
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0U3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjayhX
VEZNb3ZlKGNhbGxiYWNrKSk7CiAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vz
c1Bvb2xzKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCksIGZhbHNlKSkKICAgICAg
ICAgcHJvY2Vzc1Bvb2wtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCmluZGV4IDFhNTZhMDE4Njk4NTUxZWVjM2E2MDhkNDZjNDY4MjJjZTQ2NTJiOWIu
LmI5MDY2YWU0ZTFiMDhlYjQ1NjY4MTlkNjA5NzVjZTFhOGFhZGMxOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
QEAgLTE1MCw2ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZENv
b2tpZVN0b3JhZ2VGaWxlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24u
Y29va2llU3RvcmFnZUZpbGU7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkSW5kZXhlZERh
dGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24u
aW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVk
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk7IH0K
KyAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLnJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3Rvcnk7IH0KIAogICAgIFN0b3JhZ2VNYW5hZ2VyKiBzdG9yYWdlTWFuYWdl
cigpIHsgcmV0dXJuIG1fc3RvcmFnZU1hbmFnZXIuZ2V0KCk7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343881</attachid>
            <date>2018-06-28 18:52:22 -0700</date>
            <delta_ts>2018-06-28 18:57:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187165-20180628185245.patch</filename>
            <type>text/plain</type>
            <size>16180</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVjYmY2MmZiYzEwZDZiYTI0
MzI4NDM2YWE3OWRkMWQ3N2NiNTcyZWUuLjU5MDkyZWQyZDAwN2M0NTljZDlhYzJiMmZjYWRiYzJm
YTY4YjE2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTgtMDYtMjggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGxhbWJkYXMgZm9y
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB0byBpbnRlcmFjdCB3aXRoIGl0cyBXZWJz
aXRlRGF0YVN0b3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdG9wIHVzaW5nIGxhbWJkYXMgZm9yIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZSB0byBpbnRlcmFjdCB3aXRoIGl0cyBXZWJzaXRlRGF0YVN0b3JlLiBJbnN0ZWFkLAorICAgICAg
ICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgbm93IGhvbGRzIGEgd2VhayBwb2ludGVy
IHRvIGl0cyBXZWJzaXRlRGF0YVN0b3JlIGFuZCBpcyBhYmxlIHRvIGNhbGwKKyAgICAgICAgbWV0
aG9kcyBvbiBpdCBkaXJlY3RseS4gUmVkdWNpbmcgdGhlIGluZGlyZWN0aW9uIG1ha2VzIHRoZSBj
b2RlIGxlc3MgY29tcGxleCBhbmQgbW9yZSB1bmRlcnN0YW5kYWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nl
c3NIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0
aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NBbmRTZXRU
ZXN0aW5nQ2FsbGJhY2spOgorCiAyMDE4LTA2LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUgZ2V0cyBkZXN0cm95ZWQgb24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAppbmRleCA2Zjk4ZTc1MWU1OTQzMWMwNGU5OTk4NzExOGIxOWMwMDU2OTZjNzBlLi42YTI1YTBk
OTZmNzQ4OWNlNGM1NWUxMTc0ZWQ3NmFmZGVmNWIyOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
QEAgLTExMSwyMSArMTExLDE2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzZXRTaG91bGRTdWJtaXRUZWxlbWV0cnkoYm9vbCB2YWx1ZSkKICAgICB9KTsKIH0KIAotV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBGdW5jdGlv
bjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJh
bCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVy
JiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVy
LCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyJiYgaGFzU3RvcmFnZUFjY2Vzc0ZvckZy
YW1lSGFuZGxlciwgR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vz
c0hhbmRsZXIsIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyJiYgcmVtb3ZlQWxsU3RvcmFn
ZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZVByZXZhbGVudERvbWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9t
YWluc0hhbmRsZXIpCi0gICAgOiBtX3N0YXRpc3RpY3NRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIsIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCi0gICAgLCBtX3Vw
ZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlcihXVEZN
b3ZlKHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxl
cikpCi0gICAgLCBtX2hhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoV1RGTW92ZShoYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKSkKLSAgICAsIG1fZ3JhbnRTdG9yYWdlQWNjZXNz
SGFuZGxlcihXVEZNb3ZlKGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpKQotICAgICwgbV9yZW1v
dmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlcihXVEZNb3ZlKHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NI
YW5kbGVyKSkKLSAgICAsIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXIoV1RGTW92ZShyZW1vdmVEb21h
aW5zSGFuZGxlcikpCitXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZShXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQor
ICAgIDogbV93ZWJzaXRlRGF0YVN0b3JlKG1ha2VXZWFrUHRyKHdlYnNpdGVEYXRhU3RvcmUpKQor
ICAgICwgbV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNl
cmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQogICAgICwgbV9kYWlseVRhc2tzVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpw
ZXJmb3JtRGFpbHlUYXNrcykKLSAgICAsIG1fc3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjayhXVEZN
b3ZlKHRlc3RpbmdDYWxsYmFjaykpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
IAotICAgIG1fc3RhdGlzdGljc1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBpc0VwaGVtZXJhbCwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCldIHsK
KyAgICBtX3N0YXRpc3RpY3NRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgaXNQZXJzaXN0ZW50ID0gd2Vic2l0ZURhdGFTdG9yZS5pc1BlcnNpc3Rl
bnQoKSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUu
cmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCld
IHsKICAgICAgICAgbV9tZW1vcnlTdG9yZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUpOwotICAgICAg
ICBtX3BlcnNpc3RlbnRTdG9yYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+KCptX21lbW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NRdWV1
ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgaXNFcGhlbWVyYWwgPyBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OklzUmVhZE9ubHk6OlllcyA6IFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6SXNSZWFkT25seTo6Tm8pOworICAg
ICAgICBtX3BlcnNpc3RlbnRTdG9yYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+KCptX21lbW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NR
dWV1ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgaXNQZXJzaXN0ZW50ID8gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOjpJc1JlYWRPbmx5OjpObyA6IFJl
c291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6SXNSZWFkT25seTo6WWVzKTsK
ICAgICB9KTsKIAogICAgIG1fc3RhdGlzdGljc1F1ZXVlLT5kaXNwYXRjaEFmdGVyKDVfcywgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewpAQCAtMjI3LDcgKzIyMiwxMCBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nl
c3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAKLSAgICBtX2hhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIocmVzb3VyY2VEb21h
aW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9y
ZS0+aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihyZXNvdXJjZURvbWFpbiwgZmlyc3RQ
YXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgZWxz
ZQorICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3Qs
IFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlE
LCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vz
c1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0yOTQsMTQgKzI5MiwxOCBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hh
bmRsZXIoY29uc3QgU3RyaW5nJgogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
LSAgICBtX2dyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoc3ViRnJhbWVQcmltYXJ5RG9tYWluLCB0
b3BGcmFtZVByaW1hcnlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9y
ZS0+Z3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihzdWJGcmFtZVByaW1hcnlEb21haW4sIHRvcEZy
YW1lUHJpbWFyeURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cisg
ICAgZWxzZQorICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgbV9yZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFu
ZGxlcigpOworICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIG1fd2Vic2l0ZURh
dGFTdG9yZS0+cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoKTsKIH0KIAogCkBAIC04MDQs
MTQgKzgwNiwxOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0R3Jh
bmRmYXRoZXJpbmdUaW1lKFNlY29uZHMgc2Vjb25kcykKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9j
a0Nvb2tpZXNIYW5kbGVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9QYXJ0aXRpb24s
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xlYXJGaXJzdCBz
aG91bGRDbGVhckZpcnN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX3VwZGF0ZVBy
ZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlcihkb21haW5zVG9Q
YXJ0aXRpb24sIGRvbWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxv
Y2ssIHNob3VsZENsZWFyRmlyc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBp
ZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnVwZGF0
ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzKGRvbWFpbnNUb1BhcnRp
dGlvbiwgZG9tYWluc1RvQmxvY2ssIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywg
c2hvdWxkQ2xlYXJGaXJzdCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmNhbGxSZW1vdmVEb21haW5zSGFuZGxlcihjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZG9tYWlucykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
bV9yZW1vdmVEb21haW5zSGFuZGxlcihkb21haW5zKTsKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0
b3JlKQorICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlbW92ZVByZXZhbGVudERvbWFpbnMo
ZG9tYWlucyk7CiB9CiAgICAgCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
c2V0TWF4U3RhdGlzdGljc0VudHJpZXMoc2l6ZV90IG1heGltdW1FbnRyeUNvdW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAppbmRleCBhNGMwMmNiMzdlZTU2YmYwMmZjOWJjZWI3YTc0NWMxMzQzZGNhNTEwLi4x
NDdjNDY2OWIxZTgzN2U5MDQwNGM4ZDlkZjMzNWFkN2FhNDk0NjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV1RGIHsKQEAgLTUwLDYgKzUxLDcgQEAgY2xhc3MgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOwogY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3Rl
bnRTdG9yYWdlOwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsK
K2NsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CiAKIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJGaXJzdDsK
IGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyB7CkBAIC02MCwxNCArNjIsOSBAQCBlbnVt
IGNsYXNzIFN0b3JhZ2VBY2Nlc3NTdGF0dXMgewogCiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgVXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyID0gV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFdURjo6VmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwg
Y29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIGNvbnN0IFdURjo6VmVj
dG9yPFN0cmluZz4mIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xl
YXJGaXJzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKT47Ci0gICAgdXNpbmcgSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJp
bmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgaGFz
QWNjZXNzKT4mJiBjYWxsYmFjayk+OwotICAgIHVzaW5nIEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRs
ZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6RnVuY3Rpb248dm9pZChib29sIHdhc0dyYW50ZWQp
PiYmIGNhbGxiYWNrKT47Ci0gICAgdXNpbmcgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIg
PSBXVEY6OkZ1bmN0aW9uPHZvaWQoKT47Ci0gICAgdXNpbmcgUmVtb3ZlUHJldmFsZW50RG9tYWlu
c0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYp
PjsKLSAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVt
ZXJhbCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5k
bGVyJiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5k
bGVyID0gW10oY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFN0
cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxTdHJpbmc+JiwgU2hvdWxkQ2xlYXJGaXJzdCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKCk7IH0sIEhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXImJiBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5k
bGVyID0gW10oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QsIHVpbnQ2NF90
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYpIHsgfSwgR3JhbnRTdG9yYWdlQWNjZXNzSGFu
ZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIgPSBbXShjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiwgdWludDY0X3QsIFdURjo6RnVuY3Rp
b248dm9pZChib29sKT4mJikgeyB9LCBSZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlciYmIHJl
bW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyID0gW10oKSB7IH0sIFJlbW92ZVByZXZhbGVudERv
bWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9tYWluc0hhbmRsZXIgPSBbXSAoY29uc3QgV1RGOjpWZWN0
b3I8U3RyaW5nPiYpIHsgfSkKKyAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZT4gY3JlYXRlKFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGTW92ZSh0ZXN0aW5nQ2Fs
bGJhY2spLCBpc0VwaGVtZXJhbCwgV1RGTW92ZSh1cGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0
aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIpLCBXVEZNb3ZlKGhhc1N0b3JhZ2VBY2Nlc3NGb3JG
cmFtZUhhbmRsZXIpLCBXVEZNb3ZlKGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpLCBXVEZNb3Zl
KHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKSwgV1RGTW92ZShyZW1vdmVEb21haW5zSGFu
ZGxlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlKHdlYnNpdGVEYXRhU3RvcmUpKTsKICAgICB9CiAKICAgICB+V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CkBAIC0xNDYsNyArMTQzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJik7CiAK
IHByaXZhdGU6Ci0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKGNvbnN0IFN0cmlu
ZyYsIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4mJiB0ZXN0aW5nQ2FsbGJhY2ss
IGJvb2wgaXNFcGhlbWVyYWwsIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxv
Y2tDb29raWVzSGFuZGxlciYmLCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyJiYsIEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXImJiwgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIm
JiwgUmVtb3ZlUHJldmFsZW50RG9tYWluc0hhbmRsZXImJik7CisgICAgZXhwbGljaXQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKFdlYnNpdGVEYXRhU3RvcmUmKTsKIAogICAgIC8vIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC0xNjEsMTYgKzE1OCwxMSBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBmbHVzaEFuZERlc3Ryb3lQZXJzaXN0ZW50U3RvcmUoKTsKIAor
ICAgIFdlYWtQdHI8V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOwogICAgIFJl
ZjxXb3JrUXVldWU+IG1fc3RhdGlzdGljc1F1ZXVlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+IG1fbWVtb3J5U3RvcmU7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4gbV9wZXJz
aXN0ZW50U3RvcmFnZTsKIAotICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9y
QmxvY2tDb29raWVzSGFuZGxlciBtX3VwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9y
QmxvY2tDb29raWVzSGFuZGxlcjsKLSAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVy
IG1faGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcjsKLSAgICBHcmFudFN0b3JhZ2VBY2Nl
c3NIYW5kbGVyIG1fZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcjsKLSAgICBSZW1vdmVBbGxTdG9y
YWdlQWNjZXNzSGFuZGxlciBtX3JlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyOwotICAgIFJl
bW92ZVByZXZhbGVudERvbWFpbnNIYW5kbGVyIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXI7Ci0KICAg
ICBSdW5Mb29wOjpUaW1lcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IG1fZGFpbHlU
YXNrc1RpbWVyOwogCiAgICAgYm9vbCBtX2hhc1NjaGVkdWxlZFByb2Nlc3NTdGF0cyB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDdkMTgxYjljZTY5MjYzOGYzNTZiOGUxZmFiOTBlYTk1
NWRhOTkwMjcuLjFmYmRmNTYyNTFkZDE0Y2Y4ZDlmM2RlY2E2ZTAxYTRkNzc4ZTViMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0xNDc2LDI2ICsxNDc2LDggQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQW5kU2V0VGVzdGluZ0NhbGxiYWNrKEZ1bmN0
aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0Vf
UEFSVElUSU9OSU5HKQotICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKGNhbGxiYWNrKSwgbV9zZXNzaW9uSUQuaXNFcGhl
bWVyYWwoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNU
b0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5v
ckJsb2NrLCBTaG91bGRDbGVhckZpcnN0IHNob3VsZENsZWFyRmlyc3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICBpZiAod2Vha1RoaXMp
Ci0gICAgICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9u
T3JCbG9ja0Nvb2tpZXMoZG9tYWluc1RvUGFydGl0aW9uLCBkb21haW5zVG9CbG9jaywgZG9tYWlu
c1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBzaG91bGRDbGVhckZpcnN0LCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
XSAoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7Ci0gICAgICAg
IGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5oYXNTdG9yYWdlQWNjZXNzRm9y
RnJhbWVIYW5kbGVyKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBw
YWdlSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyldIChjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBT
dHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgd2FzR3Jh
bnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgaWYgKHdlYWtUaGlzKQotICAg
ICAgICAgICAgd2Vha1RoaXMtPmdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIocmVzb3VyY2VEb21h
aW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwotICAgIH0sIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKCkgewot
ICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+cmVtb3ZlQWxsU3Rv
cmFnZUFjY2Vzc0hhbmRsZXIoKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvUmVtb3ZlKSB7Ci0gICAgICAgIGlm
ICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5yZW1vdmVQcmV2YWxlbnREb21haW5z
KGRvbWFpbnNUb1JlbW92ZSk7Ci0gICAgfSk7Ci0jZWxzZQotICAgIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKG1fY29uZmln
dXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKGNhbGxiYWNr
KSwgbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7Ci0jZW5kaWYKKyAgICBtX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZSgqdGhp
cyk7CisgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRTdGF0aXN0aWNzVGVzdGluZ0Nh
bGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKTsKIAogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wg
OiBwcm9jZXNzUG9vbHMoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSwgZmFsc2Up
KQogICAgICAgICBwcm9jZXNzUG9vbC0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMWE1NmEwMTg2OTg1NTFlZWMzYTYwOGQ0NmM0NjgyMmNl
NDY1MmI5Yi4uYjkwNjZhZTRlMWIwOGViNDU2NjgxOWQ2MDk3NWNlMWE4YWFkYzE4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaApAQCAtMTUwLDYgKzE1MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHJl
c29sdmVkQ29va2llU3RvcmFnZUZpbGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi5jb29raWVTdG9yYWdlRmlsZTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRJ
bmRleGVkRGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi5pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsgfQogICAgIGNvbnN0IFN0cmluZyYg
cmVzb2x2ZWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeTsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24ucmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsgfQogCiAgICAgU3RvcmFnZU1hbmFnZXIqIHN0b3Jh
Z2VNYW5hZ2VyKCkgeyByZXR1cm4gbV9zdG9yYWdlTWFuYWdlci5nZXQoKTsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343882</attachid>
            <date>2018-06-28 18:57:35 -0700</date>
            <delta_ts>2018-06-29 09:54:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187165-20180628185759.patch</filename>
            <type>text/plain</type>
            <size>16468</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVjYmY2MmZiYzEwZDZiYTI0
MzI4NDM2YWE3OWRkMWQ3N2NiNTcyZWUuLjU5MDkyZWQyZDAwN2M0NTljZDlhYzJiMmZjYWRiYzJm
YTY4YjE2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTgtMDYtMjggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGxhbWJkYXMgZm9y
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB0byBpbnRlcmFjdCB3aXRoIGl0cyBXZWJz
aXRlRGF0YVN0b3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdG9wIHVzaW5nIGxhbWJkYXMgZm9yIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZSB0byBpbnRlcmFjdCB3aXRoIGl0cyBXZWJzaXRlRGF0YVN0b3JlLiBJbnN0ZWFkLAorICAgICAg
ICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgbm93IGhvbGRzIGEgd2VhayBwb2ludGVy
IHRvIGl0cyBXZWJzaXRlRGF0YVN0b3JlIGFuZCBpcyBhYmxlIHRvIGNhbGwKKyAgICAgICAgbWV0
aG9kcyBvbiBpdCBkaXJlY3RseS4gUmVkdWNpbmcgdGhlIGluZGlyZWN0aW9uIG1ha2VzIHRoZSBj
b2RlIGxlc3MgY29tcGxleCBhbmQgbW9yZSB1bmRlcnN0YW5kYWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nl
c3NIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0
aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NBbmRTZXRU
ZXN0aW5nQ2FsbGJhY2spOgorCiAyMDE4LTA2LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUgZ2V0cyBkZXN0cm95ZWQgb24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAppbmRleCA2Zjk4ZTc1MWU1OTQzMWMwNGU5OTk4NzExOGIxOWMwMDU2OTZjNzBlLi5jN2IxOGQ1
NzBlYmM1YjZmNjI1ZDcwMDZlOTc3MGJiMDZhYWY0NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
QEAgLTExMSwyMSArMTExLDE2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzZXRTaG91bGRTdWJtaXRUZWxlbWV0cnkoYm9vbCB2YWx1ZSkKICAgICB9KTsKIH0KIAotV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBGdW5jdGlv
bjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJh
bCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVy
JiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVy
LCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyJiYgaGFzU3RvcmFnZUFjY2Vzc0ZvckZy
YW1lSGFuZGxlciwgR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vz
c0hhbmRsZXIsIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyJiYgcmVtb3ZlQWxsU3RvcmFn
ZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZVByZXZhbGVudERvbWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9t
YWluc0hhbmRsZXIpCi0gICAgOiBtX3N0YXRpc3RpY3NRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIsIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCi0gICAgLCBtX3Vw
ZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlcihXVEZN
b3ZlKHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxl
cikpCi0gICAgLCBtX2hhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoV1RGTW92ZShoYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKSkKLSAgICAsIG1fZ3JhbnRTdG9yYWdlQWNjZXNz
SGFuZGxlcihXVEZNb3ZlKGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpKQotICAgICwgbV9yZW1v
dmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlcihXVEZNb3ZlKHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NI
YW5kbGVyKSkKLSAgICAsIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXIoV1RGTW92ZShyZW1vdmVEb21h
aW5zSGFuZGxlcikpCitXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZShXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQor
ICAgIDogbV93ZWJzaXRlRGF0YVN0b3JlKG1ha2VXZWFrUHRyKHdlYnNpdGVEYXRhU3RvcmUpKQor
ICAgICwgbV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNl
cmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQogICAgICwgbV9kYWlseVRhc2tzVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpw
ZXJmb3JtRGFpbHlUYXNrcykKLSAgICAsIG1fc3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjayhXVEZN
b3ZlKHRlc3RpbmdDYWxsYmFjaykpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
IAotICAgIG1fc3RhdGlzdGljc1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBpc0VwaGVtZXJhbCwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCldIHsK
KyAgICBtX3N0YXRpc3RpY3NRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgaXNQZXJzaXN0ZW50ID0gd2Vic2l0ZURhdGFTdG9yZS5pc1BlcnNpc3Rl
bnQoKSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUu
cmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCld
IHsKICAgICAgICAgbV9tZW1vcnlTdG9yZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUpOwotICAgICAg
ICBtX3BlcnNpc3RlbnRTdG9yYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+KCptX21lbW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NRdWV1
ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgaXNFcGhlbWVyYWwgPyBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OklzUmVhZE9ubHk6OlllcyA6IFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6SXNSZWFkT25seTo6Tm8pOworICAg
ICAgICBtX3BlcnNpc3RlbnRTdG9yYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+KCptX21lbW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NR
dWV1ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgaXNQZXJzaXN0ZW50ID8gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOjpJc1JlYWRPbmx5OjpObyA6IFJl
c291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6SXNSZWFkT25seTo6WWVzKTsK
ICAgICB9KTsKIAogICAgIG1fc3RhdGlzdGljc1F1ZXVlLT5kaXNwYXRjaEFmdGVyKDVfcywgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewpAQCAtMjI3LDcgKzIyMiwxMyBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nl
c3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAKLSAgICBtX2hhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIocmVzb3VyY2VEb21h
aW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorICAgIGlmIChtX3dl
YnNpdGVEYXRhU3RvcmUpIHsKKyAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5oYXNTdG9yYWdl
QWNjZXNzRm9yRnJhbWVIYW5kbGVyKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBm
cmFtZUlELCBwYWdlSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgorICAgIGNhbGxiYWNrKGZhbHNlKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1l
SG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTI5NCwxNCArMjk1LDIzIEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcihjb25zdCBTdHJpbmcmCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIAotICAgIG1fZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihzdWJGcmFtZVByaW1hcnlEb21h
aW4sIHRvcEZyYW1lUHJpbWFyeURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisgICAgaWYg
KG1fd2Vic2l0ZURhdGFTdG9yZSkgeworICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmdyYW50
U3RvcmFnZUFjY2Vzc0hhbmRsZXIoc3ViRnJhbWVQcmltYXJ5RG9tYWluLCB0b3BGcmFtZVByaW1h
cnlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorI2VuZGlmCisgICAgY2FsbGJhY2soZmFsc2UpOwogfQogCiB2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIG1fcmVtb3ZlQWxsU3RvcmFn
ZUFjY2Vzc0hhbmRsZXIoKTsKKyNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklO
RykKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICBtX3dlYnNpdGVEYXRhU3Rv
cmUtPnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKCk7CisjZW5kaWYKIH0KIAogCkBAIC04
MDQsMTQgKzgxNCwyNCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0
R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMgc2Vjb25kcykKIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JC
bG9ja0Nvb2tpZXNIYW5kbGVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9QYXJ0aXRp
b24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xlYXJGaXJz
dCBzaG91bGRDbGVhckZpcnN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX3VwZGF0
ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlcihkb21haW5z
VG9QYXJ0aXRpb24sIGRvbWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9y
QmxvY2ssIHNob3VsZENsZWFyRmlyc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKwor
I2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorICAgIGlmIChtX3dlYnNp
dGVEYXRhU3RvcmUpIHsKKyAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT51cGRhdGVQcmV2YWxl
bnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhkb21haW5zVG9QYXJ0aXRpb24sIGRv
bWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ssIHNob3VsZENs
ZWFyRmlyc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyNlbmRpZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIAotICAgIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXIoZG9tYWlucyk7CisjaWYgSEFWRShDRk5F
VFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkK
KyAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5yZW1vdmVQcmV2YWxlbnREb21haW5zKGRvbWFp
bnMpOworI2VuZGlmCiB9CiAgICAgCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6c2V0TWF4U3RhdGlzdGljc0VudHJpZXMoc2l6ZV90IG1heGltdW1FbnRyeUNvdW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaAppbmRleCBhNGMwMmNiMzdlZTU2YmYwMmZjOWJjZWI3YTc0NWMxMzQzZGNhNTEw
Li4xNDdjNDY2OWIxZTgzN2U5MDQwNGM4ZDlkZjMzNWFkN2FhNDk0NjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTUwLDYgKzUxLDcgQEAgY2xhc3MgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlOwogY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNp
c3RlbnRTdG9yYWdlOwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQcm94
eTsKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CiAKIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJGaXJz
dDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyB7CkBAIC02MCwxNCArNjIsOSBAQCBl
bnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NTdGF0dXMgewogCiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwg
cHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgVXBkYXRl
UHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyID0gV1RGOjpG
dW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6VmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlv
biwgY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIGNvbnN0IFdURjo6
VmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxk
Q2xlYXJGaXJzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKT47Ci0gICAgdXNpbmcgSGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBT
dHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wg
aGFzQWNjZXNzKT4mJiBjYWxsYmFjayk+OwotICAgIHVzaW5nIEdyYW50U3RvcmFnZUFjY2Vzc0hh
bmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwg
Y29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6RnVuY3Rpb248dm9pZChib29sIHdhc0dyYW50
ZWQpPiYmIGNhbGxiYWNrKT47Ci0gICAgdXNpbmcgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRs
ZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoKT47Ci0gICAgdXNpbmcgUmVtb3ZlUHJldmFsZW50RG9t
YWluc0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5n
PiYpPjsKLSAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGOjpG
dW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0Vw
aGVtZXJhbCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNI
YW5kbGVyJiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNI
YW5kbGVyID0gW10oY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9y
PFN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxTdHJpbmc+JiwgU2hvdWxkQ2xlYXJGaXJzdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKCk7IH0sIEhh
c1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXImJiBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVI
YW5kbGVyID0gW10oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QsIHVpbnQ2
NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYpIHsgfSwgR3JhbnRTdG9yYWdlQWNjZXNz
SGFuZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIgPSBbXShjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiwgdWludDY0X3QsIFdURjo6RnVu
Y3Rpb248dm9pZChib29sKT4mJikgeyB9LCBSZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlciYm
IHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyID0gW10oKSB7IH0sIFJlbW92ZVByZXZhbGVu
dERvbWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9tYWluc0hhbmRsZXIgPSBbXSAoY29uc3QgV1RGOjpW
ZWN0b3I8U3RyaW5nPiYpIHsgfSkKKyAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZT4gY3JlYXRlKFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGTW92ZSh0ZXN0aW5n
Q2FsbGJhY2spLCBpc0VwaGVtZXJhbCwgV1RGTW92ZSh1cGRhdGVQcmV2YWxlbnREb21haW5zVG9Q
YXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIpLCBXVEZNb3ZlKGhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZUhhbmRsZXIpLCBXVEZNb3ZlKGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpLCBXVEZN
b3ZlKHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKSwgV1RGTW92ZShyZW1vdmVEb21haW5z
SGFuZGxlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlKHdlYnNpdGVEYXRhU3RvcmUpKTsKICAgICB9CiAKICAgICB+V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CkBAIC0xNDYsNyArMTQzLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3RyaW5n
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJik7
CiAKIHByaXZhdGU6Ci0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKGNvbnN0IFN0
cmluZyYsIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4mJiB0ZXN0aW5nQ2FsbGJh
Y2ssIGJvb2wgaXNFcGhlbWVyYWwsIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9y
QmxvY2tDb29raWVzSGFuZGxlciYmLCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyJiYs
IEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXImJiwgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRs
ZXImJiwgUmVtb3ZlUHJldmFsZW50RG9tYWluc0hhbmRsZXImJik7CisgICAgZXhwbGljaXQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKFdlYnNpdGVEYXRhU3RvcmUmKTsKIAogICAgIC8v
IElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC0xNjEsMTYgKzE1OCwxMSBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBmbHVzaEFuZERlc3Ryb3lQZXJzaXN0ZW50U3RvcmUoKTsK
IAorICAgIFdlYWtQdHI8V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOwogICAg
IFJlZjxXb3JrUXVldWU+IG1fc3RhdGlzdGljc1F1ZXVlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+IG1fbWVtb3J5U3RvcmU7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4gbV9w
ZXJzaXN0ZW50U3RvcmFnZTsKIAotICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlv
bk9yQmxvY2tDb29raWVzSGFuZGxlciBtX3VwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlv
bk9yQmxvY2tDb29raWVzSGFuZGxlcjsKLSAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5k
bGVyIG1faGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcjsKLSAgICBHcmFudFN0b3JhZ2VB
Y2Nlc3NIYW5kbGVyIG1fZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcjsKLSAgICBSZW1vdmVBbGxT
dG9yYWdlQWNjZXNzSGFuZGxlciBtX3JlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyOwotICAg
IFJlbW92ZVByZXZhbGVudERvbWFpbnNIYW5kbGVyIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXI7Ci0K
ICAgICBSdW5Mb29wOjpUaW1lcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IG1fZGFp
bHlUYXNrc1RpbWVyOwogCiAgICAgYm9vbCBtX2hhc1NjaGVkdWxlZFByb2Nlc3NTdGF0cyB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDdkMTgxYjljZTY5MjYzOGYzNTZiOGUxZmFiOTBl
YTk1NWRhOTkwMjcuLjFmYmRmNTYyNTFkZDE0Y2Y4ZDlmM2RlY2E2ZTAxYTRkNzc4ZTViMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCkBAIC0xNDc2LDI2ICsxNDc2LDggQEAgdm9pZCBXZWJzaXRlRGF0YVN0
b3JlOjplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQW5kU2V0VGVzdGluZ0NhbGxiYWNrKEZ1
bmN0aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JB
R0VfUEFSVElUSU9OSU5HKQotICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKGNhbGxiYWNrKSwgbV9zZXNzaW9uSUQuaXNF
cGhlbWVyYWwoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFp
bnNUb0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlv
bk5vckJsb2NrLCBTaG91bGRDbGVhckZpcnN0IHNob3VsZENsZWFyRmlyc3QsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICBpZiAod2Vha1Ro
aXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0
aW9uT3JCbG9ja0Nvb2tpZXMoZG9tYWluc1RvUGFydGl0aW9uLCBkb21haW5zVG9CbG9jaywgZG9t
YWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBzaG91bGRDbGVhckZpcnN0LCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpXSAoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBh
cnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7Ci0gICAg
ICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5oYXNTdG9yYWdlQWNjZXNz
Rm9yRnJhbWVIYW5kbGVyKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlE
LCBwYWdlSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICB9LCBbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyldIChjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25z
dCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgd2Fz
R3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgaWYgKHdlYWtUaGlzKQot
ICAgICAgICAgICAgd2Vha1RoaXMtPmdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIocmVzb3VyY2VE
b21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwotICAgIH0sIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKCkg
ewotICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+cmVtb3ZlQWxs
U3RvcmFnZUFjY2Vzc0hhbmRsZXIoKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyldIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvUmVtb3ZlKSB7Ci0gICAgICAg
IGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5yZW1vdmVQcmV2YWxlbnREb21h
aW5zKGRvbWFpbnNUb1JlbW92ZSk7Ci0gICAgfSk7Ci0jZWxzZQotICAgIG1fcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKG1fY29u
ZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKGNhbGxi
YWNrKSwgbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7Ci0jZW5kaWYKKyAgICBtX3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZSgq
dGhpcyk7CisgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRTdGF0aXN0aWNzVGVzdGlu
Z0NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKTsKIAogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bv
b2wgOiBwcm9jZXNzUG9vbHMoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSwgZmFs
c2UpKQogICAgICAgICBwcm9jZXNzUG9vbC0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMWE1NmEwMTg2OTg1NTFlZWMzYTYwOGQ0NmM0Njgy
MmNlNDY1MmI5Yi4uYjkwNjZhZTRlMWIwOGViNDU2NjgxOWQ2MDk3NWNlMWE4YWFkYzE4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaApAQCAtMTUwLDYgKzE1MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcm
IHJlc29sdmVkQ29va2llU3RvcmFnZUZpbGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi5jb29raWVTdG9yYWdlRmlsZTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2
ZWRJbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi5pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsgfQogICAgIGNvbnN0IFN0cmlu
ZyYgcmVzb2x2ZWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeTsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24ucmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsgfQogCiAgICAgU3RvcmFnZU1hbmFnZXIqIHN0
b3JhZ2VNYW5hZ2VyKCkgeyByZXR1cm4gbV9zdG9yYWdlTWFuYWdlci5nZXQoKTsgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>