<?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>188881</bug_id>
          
          <creation_ts>2018-08-23 00:21:49 -0700</creation_ts>
          <short_desc>[CoordGraphics] Remove the remaining CoordinatedGraphicsLayerState cruft</short_desc>
          <delta_ts>2018-08-23 23:23:34 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=188916</see_also>
          <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>187385</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1453014</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-23 00:21:49 -0700</bug_when>
    <thetext>[CoordGraphics] Remove the remaining CoordinatedGraphicsLayerState cruft</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453015</commentid>
    <comment_count>1</comment_count>
      <attachid>347915</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-23 00:33:11 -0700</bug_when>
    <thetext>Created attachment 347915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453016</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-23 00:34:52 -0700</bug_when>
    <thetext>Attachment 347915 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:114:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453017</commentid>
    <comment_count>3</comment_count>
      <attachid>347916</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-23 00:39:09 -0700</bug_when>
    <thetext>Created attachment 347916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453018</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-23 00:40:44 -0700</bug_when>
    <thetext>Attachment 347916 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:114:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453040</commentid>
    <comment_count>5</comment_count>
      <attachid>347916</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-23 05:34:39 -0700</bug_when>
    <thetext>Comment on attachment 347916
Patch

Clearing flags on attachment: 347916

Committed r235221: &lt;https://trac.webkit.org/changeset/235221&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453041</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-23 05:34:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453042</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-23 05:35:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/43640432&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453051</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-23 07:52:34 -0700</bug_when>
    <thetext>I think you need to fix this:

(In reply to Build Bot from comment #4) 
&gt; ERROR:
&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.
&gt; h:114:  Inline functions should not be in classes annotated with
&gt; WEBCORE_EXPORT. Remove the macro from the class and apply it to each
&gt; appropriate method, or move the inline function definition out-of-line. 
&gt; [build/webcore_export] [4]
&gt; Total errors found: 1 in 9 files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453402</commentid>
    <comment_count>9</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-23 23:23:34 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #8)
&gt; I think you need to fix this:
&gt; 
&gt; (In reply to Build Bot from comment #4) 
&gt; &gt; ERROR:
&gt; &gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.
&gt; &gt; h:114:  Inline functions should not be in classes annotated with
&gt; &gt; WEBCORE_EXPORT. Remove the macro from the class and apply it to each
&gt; &gt; appropriate method, or move the inline function definition out-of-line. 
&gt; &gt; [build/webcore_export] [4]
&gt; &gt; Total errors found: 1 in 9 files

Bug #188916.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347915</attachid>
            <date>2018-08-23 00:33:11 -0700</date>
            <delta_ts>2018-08-23 00:39:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188881-20180823093310.patch</filename>
            <type>text/plain</type>
            <size>37941</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkxMDk0ZTQ5M2YwMWVl
OTc2OTI5NzczNzc1ZDZiNDNiNzRmNzlmNy4uYTc1NDMwZmQ3ZjZmMTY5MTQ0ZTQ0NzU2NmI3NzVi
NGNhYjMyYjE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE4LTA4LTIzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ29vcmRHcmFwaGlj
c10gUmVtb3ZlIHRoZSByZW1haW5pbmcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgY3J1
ZnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODg4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSB3aGF0J3MgbGVmdCBvZiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB1c2FnZSBpbiB0
aGUKKyAgICAgICAgQ29vcmRpbmF0ZWRHcmFwaGljcyBzdWJzeXN0ZW0uIEluIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllciwgdGhpcyBtZWFucworICAgICAgICBkcm9wcGluZyB0aGUgbV9sYXllclN0
YXRlIG1lbWJlciB2YXJpYWJsZSBzaW5jZSBhdCB0aGlzIHBvaW50IGl0IGlzIG5vdAorICAgICAg
ICB1c2VkIGFueW1vcmUgaW4gYW55IGNhcGFjaXR5LiBBZmZlY3RlZCBoZWxwZXIgbWV0aG9kcyBh
bmQgbWVtYmVyCisgICAgICAgIHZhcmlhYmxlcyBhcmUgYWxzbyByZW1vdmVkIHdoZXJlIHBvc3Np
YmxlLgorCisgICAgICAgIFRoZSBzeW5jTGF5ZXJTdGF0ZSgpIG1ldGhvZCBvbiB0aGUgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50CisgICAgICAgIGludGVyZmFjZSBpcyBhZGp1c3RlZCB0
byBub3QgYWNjZXB0IGFueSBwYXJhbWV0ZXJzLiBDbGllbnQgc2hvdWxkIGp1c3QKKyAgICAgICAg
bWFyayBmcmFtZSBzeW5jaHJvbml6YXRpb24gYXMgcmVxdWlyZWQgd2hpbGUgdGhlIGxheWVyIHN0
YXRlIGlzIG5vdworICAgICAgICBtYW5hZ2VkIGRpZmZlcmVudGx5LgorCisgICAgICAgIEluc3Rl
YWQgb2YgdGhlIENvb3JkaW5hdGVkTGF5ZXJJRCAod2hpY2ggaXMgcmVtb3ZlZCkgdGhlCisgICAg
ICAgIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXI6OkxheWVySUQgYWxpYXMgaXMgaW50cm9kdWNlZCBh
cyBhIGxheWVyIElEIHR5cGUsCisgICAgICAgIGFsaWFzZWQgdG8gdGhlIHVpbnQ2NF90IHR5cGUu
CisKKyAgICAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmggZmlsZSBpcyByaWQgb2YgYWxs
IHN0cnVjdHMgZXhjZXB0IHRoZQorICAgICAgICBiYXNpYyBDb29yZGluYXRlZEdyYXBoaWNzU3Rh
dGUgc3RydWN0IHRoYXQgYXQgdGhpcyBwb2ludCBjb250YWlucyBvbmx5CisgICAgICAgIGEgcmVm
ZXJlbmNlIHRvIHRoZSBOaWNvc2lhOjpTY2VuZSBvYmplY3QuIFRoaXMgd2lsbCBiZSBmdXJ0aGVy
CisgICAgICAgIHNpbXBsaWZpZWQgaW4gdGhlIHBhdGNoZXMgdGhhdCBmb2xsb3cuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmg6Cisg
ICAgICAgIChOaWNvc2lhOjpQbGF0Zm9ybUxheWVyOjppZCBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENo
YW5nZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpkaWRDaGFuZ2VDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OmRpZENoYW5nZUZpbHRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpkaWRVcGRhdGVUaWxlQnVmZmVycyk6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUdlb21ldHJ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRBbmNob3JQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRDaGlsZHJlblRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnNldFByZXNlcnZlczNEKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0TWFza3NUb0JvdW5kcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldERyYXdzQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVmlzaWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzT3Bh
cXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0QmFj
a2ZhY2VWaXNpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0T3BhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2hvd0Rl
YnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c2V0TWFza0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1Z0JvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jUGVuZGluZ1N0YXRlQ2hhbmdlc0luY2x1ZGluZ1N1Ykxh
eWVycyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnB1cmdl
QmFja2luZ1N0b3Jlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldENvb3JkaW5hdG9ySW5jbHVkaW5nU3ViTGF5ZXJzSWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6dG9Db29yZGluYXRlZExheWVySUQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VMYXllclN0YXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NoaWxk
cmVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c3luY0ZpbHRlcnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVzZXRMYXllclN0YXRl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oOgorICAgICAg
ICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
clN0YXRlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6aGFzUGVuZGluZ0NoYW5n
ZXMgY29uc3QpOiBEZWxldGVkLgorCiAyMDE4LTA4LTIyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ29vcmRHcmFwaGljc10gRHJvcCBvbGQtc2Nob29s
IFBsYXRmb3JtTGF5ZXIgbWFuYWdlbWVudCBpbiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYzhlNDVkM2JiZDQwYmJhMDIzODI5ZDFmNmJjZGYwNDdhZGQ3ZGM0OC4uOTVkMGU1
ZDE3M2ZlZTk5Yzg0MWFhZDZjZDI3Zjg3M2JkOTUxM2RkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MSBAQAorMjAxOC0wOC0yMyAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0Nvb3JkR3JhcGhpY3NdIFJlbW92ZSB0aGUgcmVtYWluaW5nIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlIGNydWZ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODg4ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvciBjbGFzcyBvZiBjb2Rl
IHRoYXQgbWFuYWdlcyBub3ctZGVsZXRlZCBzdGF0ZQorICAgICAgICB0cmFja2luZyBvZiBsYXll
ciBjcmVhdGlvbiwgdXBkYXRlIGFuZCByZW1vdmFsIG9uIHRoZQorICAgICAgICBDb29yZGluYXRl
ZEdyYXBoaWNzU3RhdGUgY2xhc3MuIFRoZSBzeW5jTGF5ZXJTdGF0ZSgpIG1ldGhvZCBpcyBjaGFu
Z2VkCisgICAgICAgIGFjY29yZGluZ2x5LCBub3cgb25seSBlbmZvcmNpbmcgYSBmcmFtZSBzeW5j
aHJvbml6YXRpb24gd2hlbiBjYWxsZWQuCisKKyAgICAgICAgVXNlIG9mIE5pY29zaWE6OlBsYXRm
b3JtTGF5ZXI6OkxheWVySUQgaXMgYWRvcHRlZCBzaW5jZSB0aGUKKyAgICAgICAgQ29vcmRpbmF0
ZWRMYXllcklEIHR5cGUgaGFzIGJlZW4gcmVtb3ZlZC4KKworICAgICAgICAqIFNoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cHVyZ2VHTFJlc291cmNlcyk6CisgICAg
ICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OkNv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OmluaXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0xheWVy
U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6
ZGV0YWNoTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjph
dHRhY2hMYXllcik6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNs
ZWFyUGVuZGluZ1N0YXRlQ2hhbmdlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oOgorCiAy
MDE4LTA4LTIyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbQ29vcmRHcmFwaGljc10gUmVtb3ZlIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nIGFuZCByZWxh
dGVkIGZ1bmN0aW9uYWxpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaAppbmRleCA0OWYy
MmRiNGQxZDdiOWQ3MjEyNmZkM2I4NmQ2YmFjYjEyM2E5NzFkLi5iZTNhNTI1N2E0YjI1YWVhNTIx
Y2M1OGI0ODAzMDRmODAyYmQ4MDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5oCkBA
IC01MCw3ICs1MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDb21wb3NpdGlvbkxh
eWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZW50
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdWludDY0X3QgaWQoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9CisgICAgdXNpbmcgTGF5ZXJJRCA9IHVpbnQ2NF90OworICAgIExh
eWVySUQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBQbGF0Zm9ybUxheWVyKHVpbnQ2NF90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggN2YzOGZkOWE3MGZhNWJj
MWVlZDNlOTFjNzBjYzRkZGQwZTBlNjJlYS4uZGQ1MjM4YTM3N2FmMDFkN2FmMWMxM2I2NzE5YmYz
Mzc0YzY1MzM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTU0LDExICs1NCw2IEBAIHN0ZDo6dW5pcXVlX3B0cjxH
cmFwaGljc0xheWVyPiBHcmFwaGljc0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckZhY3Rvcnkq
IGZhY3RvCiAgICAgcmV0dXJuIGZhY3RvcnktPmNyZWF0ZUdyYXBoaWNzTGF5ZXIobGF5ZXJUeXBl
LCBjbGllbnQpOwogfQogCi1zdGF0aWMgQ29vcmRpbmF0ZWRMYXllcklEIHRvQ29vcmRpbmF0ZWRM
YXllcklEKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQotewotICAgIHJldHVybiBpczxDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI+KGxheWVyKSA/IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cj4oKmxheWVyKS5pZCgpIDogMDsKLX0KLQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
Om5vdGlmeUZsdXNoUmVxdWlyZWQoKQogewogICAgIGlmICghbV9jb29yZGluYXRvcikKQEAgLTcw
LDI3ICs2NSwyMSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6bm90aWZ5Rmx1c2hS
ZXF1aXJlZCgpCiAgICAgY2xpZW50KCkubm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAot
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUxheWVyU3RhdGUoKQotewot
ICAgIG1fc2hvdWxkU3luY0xheWVyU3RhdGUgPSB0cnVlOwotICAgIG5vdGlmeUZsdXNoUmVxdWly
ZWQoKTsKLX0KLQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUFuaW1h
dGlvbnMoKQogewotICAgIG1fc2hvdWxkU3luY0FuaW1hdGlvbnMgPSB0cnVlOworICAgIG1fbmlj
b3NpYS5kZWx0YS5hbmltYXRpb25zQ2hhbmdlZCA9IHRydWU7CiAgICAgbm90aWZ5Rmx1c2hSZXF1
aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlQ2hp
bGRyZW4oKQogewotICAgIG1fc2hvdWxkU3luY0NoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX25pY29z
aWEuZGVsdGEuY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsKICAgICBub3RpZnlGbHVzaFJlcXVpcmVk
KCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VGaWx0ZXJz
KCkKIHsKLSAgICBtX3Nob3VsZFN5bmNGaWx0ZXJzID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVs
dGEuZmlsdGVyc0NoYW5nZWQgPSB0cnVlOwogICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0K
IApAQCAtMTAwLDggKzg5LDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZFVw
ZGF0ZVRpbGVCdWZmZXJzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZXBhaW50Q291
bnQgPSBpbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKLSAgICBtX2xheWVyU3RhdGUucmVwYWludENv
dW50LmNvdW50ID0gcmVwYWludENvdW50OwotICAgIG1fbGF5ZXJTdGF0ZS5yZXBhaW50Q291bnRD
aGFuZ2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEucmVwYWludENvdW50ZXIuY291bnQgPSByZXBh
aW50Q291bnQ7CiAgICAgbV9uaWNvc2lhLmRlbHRhLnJlcGFpbnRDb3VudGVyQ2hhbmdlZCA9IHRy
dWU7CiB9CkBAIC0xMTcsNyArMTA0LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0KCkKIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OmRpZENoYW5nZUdlb21ldHJ5KCkKIHsKLSAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7
CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogICAgIHNldFNob3VsZFVwZGF0ZVZpc2libGVS
ZWN0KCk7CiB9CiAKQEAgLTEyNywyNSArMTE0LDIyIEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKFR5cGUgbGF5ZXJUeXBlLCBHcmFwaGljc0xheWVy
CiAgICAgLCBtX2lzUHVyZ2luZyhmYWxzZSkKICNlbmRpZgogICAgICwgbV9zaG91bGRVcGRhdGVW
aXNpYmxlUmVjdCh0cnVlKQotICAgICwgbV9zaG91bGRTeW5jTGF5ZXJTdGF0ZSh0cnVlKQotICAg
ICwgbV9zaG91bGRTeW5jQ2hpbGRyZW4odHJ1ZSkKLSAgICAsIG1fc2hvdWxkU3luY0ZpbHRlcnMo
dHJ1ZSkKLSAgICAsIG1fc2hvdWxkU3luY0FuaW1hdGlvbnModHJ1ZSkKICAgICAsIG1fbW92aW5n
VmlzaWJsZVJlY3QoZmFsc2UpCiAgICAgLCBtX3BlbmRpbmdDb250ZW50c1NjYWxlQWRqdXN0bWVu
dChmYWxzZSkKICAgICAsIG1fcGVuZGluZ1Zpc2libGVSZWN0QWRqdXN0bWVudChmYWxzZSkKLSNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCiAgICAgLCBtX3Nob3VsZFVwZGF0
ZVBsYXRmb3JtTGF5ZXIoZmFsc2UpCi0jZW5kaWYKICAgICAsIG1fY29vcmRpbmF0b3IoMCkKICAg
ICAsIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyKDApCiAgICAgLCBtX2FuaW1hdGlvblN0YXJ0
ZWRUaW1lcigqdGhpcywgJkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uU3RhcnRl
ZFRpbWVyRmlyZWQpCiB7Ci0gICAgc3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCBuZXh0TGF5ZXJJ
RCA9IDE7CisgICAgc3RhdGljIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXI6OkxheWVySUQgbmV4dExh
eWVySUQgPSAxOwogICAgIG1faWQgPSBuZXh0TGF5ZXJJRCsrOwogCiAgICAgbV9uaWNvc2lhLmxh
eWVyID0gTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6Y3JlYXRlKG1faWQsCiAgICAgICAgIE5p
Y29zaWE6OkNvbXBvc2l0aW9uTGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgp
KTsKKworICAgIC8vIFNtYXJ0IGNvbW1lbnQgaGVyZS4KKyAgICBtX25pY29zaWEuZGVsdGEudmFs
dWUgPSBVSU5UX01BWDsKIH0KIAogQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp+Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKCkKQEAgLTIxOSw3ICsyMDMsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c2V0UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0UG9zaXRpb24ocCk7Ci0gICAgbV9sYXllclN0
YXRlLnBvc2l0aW9uQ2hhbmdlZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRlbHRhLnBvc2l0aW9u
Q2hhbmdlZCA9IHRydWU7CiAgICAgZGlkQ2hhbmdlR2VvbWV0cnkoKTsKIH0KQEAgLTIzMCw3ICsy
MTMsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0QW5jaG9yUG9pbnQoY29u
c3QgRmxvYXRQb2ludDNEJiBwKQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVy
OjpzZXRBbmNob3JQb2ludChwKTsKLSAgICBtX2xheWVyU3RhdGUuYW5jaG9yUG9pbnRDaGFuZ2Vk
ID0gdHJ1ZTsKICAgICBtX25pY29zaWEuZGVsdGEuYW5jaG9yUG9pbnRDaGFuZ2VkID0gdHJ1ZTsK
ICAgICBkaWRDaGFuZ2VHZW9tZXRyeSgpOwogfQpAQCAtMjQxLDcgKzIyMyw2IEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0U2l6ZShzaXplKTsKLSAgICBt
X2xheWVyU3RhdGUuc2l6ZUNoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5kZWx0YS5zaXpl
Q2hhbmdlZCA9IHRydWU7CiAKICAgICBpZiAobWFza0xheWVyKCkpCkBAIC0yNTUsNyArMjM2LDYg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFRyYW5zZm9ybShjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXll
cjo6c2V0VHJhbnNmb3JtKHQpOwotICAgIG1fbGF5ZXJTdGF0ZS50cmFuc2Zvcm1DaGFuZ2VkID0g
dHJ1ZTsKICAgICBtX25pY29zaWEuZGVsdGEudHJhbnNmb3JtQ2hhbmdlZCA9IHRydWU7CiAKICAg
ICBkaWRDaGFuZ2VHZW9tZXRyeSgpOwpAQCAtMjY3LDcgKzI0Nyw2IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlblRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q2hpbGRy
ZW5UcmFuc2Zvcm0odCk7Ci0gICAgbV9sYXllclN0YXRlLmNoaWxkcmVuVHJhbnNmb3JtQ2hhbmdl
ZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRlbHRhLmNoaWxkcmVuVHJhbnNmb3JtQ2hhbmdlZCA9
IHRydWU7CiAKICAgICBkaWRDaGFuZ2VHZW9tZXRyeSgpOwpAQCAtMjc5LDggKzI1OCw2IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRQcmVzZXJ2ZXMzRChib29sIGIpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldFByZXNlcnZlczNEKGIpOwotICAg
IG1fbGF5ZXJTdGF0ZS5wcmVzZXJ2ZXMzRCA9IGI7Ci0gICAgbV9sYXllclN0YXRlLmZsYWdzQ2hh
bmdlZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRlbHRhLmZsYWdzQ2hhbmdlZCA9IHRydWU7CiAK
ICAgICBkaWRDaGFuZ2VHZW9tZXRyeSgpOwpAQCAtMjkxLDggKzI2OCw2IEBAIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRNYXNrc1RvQm91bmRzKGJvb2wgYikKICAgICBpZiAobWFz
a3NUb0JvdW5kcygpID09IGIpCiAgICAgICAgIHJldHVybjsKICAgICBHcmFwaGljc0xheWVyOjpz
ZXRNYXNrc1RvQm91bmRzKGIpOwotICAgIG1fbGF5ZXJTdGF0ZS5tYXNrc1RvQm91bmRzID0gYjsK
LSAgICBtX2xheWVyU3RhdGUuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEuZGVs
dGEuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGRpZENoYW5nZUdlb21ldHJ5KCk7CkBAIC0z
MDMsMTEgKzI3OCw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXREcmF3c0Nv
bnRlbnQoYm9vbCBiKQogICAgIGlmIChkcmF3c0NvbnRlbnQoKSA9PSBiKQogICAgICAgICByZXR1
cm47CiAgICAgR3JhcGhpY3NMYXllcjo6c2V0RHJhd3NDb250ZW50KGIpOwotICAgIG1fbGF5ZXJT
dGF0ZS5kcmF3c0NvbnRlbnQgPSBiOwotICAgIG1fbGF5ZXJTdGF0ZS5mbGFnc0NoYW5nZWQgPSB0
cnVlOwogICAgIG1fbmljb3NpYS5kZWx0YS5mbGFnc0NoYW5nZWQgPSB0cnVlOwogCi0gICAgZGlk
Q2hhbmdlTGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVmlzaWJsZShib29sIGIpCkBA
IC0zMTUsMTQgKzI4OCwxMiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29u
dGVudHNWaXNpYmxlKGJvb2wgYikKICAgICBpZiAoY29udGVudHNBcmVWaXNpYmxlKCkgPT0gYikK
ICAgICAgICAgcmV0dXJuOwogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVmlzaWJsZShi
KTsKLSAgICBtX2xheWVyU3RhdGUuY29udGVudHNWaXNpYmxlID0gYjsKLSAgICBtX2xheWVyU3Rh
dGUuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEuZGVsdGEuZmxhZ3NDaGFuZ2Vk
ID0gdHJ1ZTsKIAogICAgIGlmIChtYXNrTGF5ZXIoKSkKICAgICAgICAgbWFza0xheWVyKCktPnNl
dENvbnRlbnRzVmlzaWJsZShiKTsKIAotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKKyAgICBu
b3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRDb250ZW50c09wYXF1ZShib29sIGIpCkBAIC0zMzEsOCArMzAyLDYgQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzT3BhcXVlKGJvb2wgYikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNPcGFxdWUoYik7Ci0gICAg
bV9sYXllclN0YXRlLmNvbnRlbnRzT3BhcXVlID0gYjsKLSAgICBtX2xheWVyU3RhdGUuZmxhZ3ND
aGFuZ2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEuZGVsdGEuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsK
IAogICAgIC8vIERlbWFuZCBhIHJlcGFpbnQgb2YgdGhlIHdob2xlIGxheWVyLgpAQCAtMzQzLDcg
KzMxMiw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c09wYXF1
ZShib29sIGIpCiAgICAgICAgIGFkZFJlcGFpbnRSZWN0KHsgeyB9LCBtX3NpemUgfSk7CiAgICAg
fQogCi0gICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQo
KTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldEJhY2tmYWNlVmlzaWJp
bGl0eShib29sIGIpCkBAIC0zNTIsMTEgKzMyMSw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRCYWNrZmFjZVZpc2liaWxpdHkoYm9vbCBiKQogICAgICAgICByZXR1cm47CiAK
ICAgICBHcmFwaGljc0xheWVyOjpzZXRCYWNrZmFjZVZpc2liaWxpdHkoYik7Ci0gICAgbV9sYXll
clN0YXRlLmJhY2tmYWNlVmlzaWJsZSA9IGI7Ci0gICAgbV9sYXllclN0YXRlLmZsYWdzQ2hhbmdl
ZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRlbHRhLmZsYWdzQ2hhbmdlZCA9IHRydWU7CiAKLSAg
ICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQog
CiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0T3BhY2l0eShmbG9hdCBvcGFjaXR5
KQpAQCAtMzY1LDExICszMzIsOSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
T3BhY2l0eShmbG9hdCBvcGFjaXR5KQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xh
eWVyOjpzZXRPcGFjaXR5KG9wYWNpdHkpOwotICAgIG1fbGF5ZXJTdGF0ZS5vcGFjaXR5ID0gb3Bh
Y2l0eTsKLSAgICBtX2xheWVyU3RhdGUub3BhY2l0eUNoYW5nZWQgPSB0cnVlOwogICAgIG1fbmlj
b3NpYS5kZWx0YS5vcGFjaXR5Q2hhbmdlZCA9IHRydWU7CiAKLSAgICBkaWRDaGFuZ2VMYXllclN0
YXRlKCk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKQEAgLTM3
OCwxMSArMzQzLDkgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRz
UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzUmVjdChyKTsKLSAgICBtX2xheWVyU3RhdGUuY29udGVudHNSZWN0
ID0gcjsKLSAgICBtX2xheWVyU3RhdGUuY29udGVudHNSZWN0Q2hhbmdlZCA9IHRydWU7CiAgICAg
bV9uaWNvc2lhLmRlbHRhLmNvbnRlbnRzUmVjdENoYW5nZWQgPSB0cnVlOwogCi0gICAgZGlkQ2hh
bmdlTGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVNpemUoY29uc3QgRmxvYXRT
aXplJiBzKQpAQCAtMzkxLDEwICszNTQsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBGbG9hdFNpemUmIHMpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVNpemUocyk7Ci0gICAgbV9s
YXllclN0YXRlLmNvbnRlbnRzVGlsZVNpemUgPSBzOwotICAgIG1fbGF5ZXJTdGF0ZS5jb250ZW50
c1RpbGluZ0NoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5kZWx0YS5jb250ZW50c1RpbGlu
Z0NoYW5nZWQgPSB0cnVlOwotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKKyAgICBub3RpZnlG
bHVzaFJlcXVpcmVkKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRD
b250ZW50c1RpbGVQaGFzZShjb25zdCBGbG9hdFNpemUmIHApCkBAIC00MDMsMTAgKzM2NCw4IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZShjb25z
dCBGbG9hdFNpemUmIHApCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dENvbnRlbnRzVGlsZVBoYXNlKHApOwotICAgIG1fbGF5ZXJTdGF0ZS5jb250ZW50c1RpbGVQaGFz
ZSA9IHA7Ci0gICAgbV9sYXllclN0YXRlLmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCA9IHRydWU7CiAg
ICAgbV9uaWNvc2lhLmRlbHRhLmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCA9IHRydWU7Ci0gICAgZGlk
Q2hhbmdlTGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogYm9v
bCBHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRlbnRzVGlsaW5nKCkKQEAgLTQ3NiwxMSArNDM1
LDkgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9Tb2xpZENv
bG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zb2xpZENv
bG9yID0gY29sb3I7Ci0gICAgbV9sYXllclN0YXRlLnNvbGlkQ29sb3IgPSBjb2xvcjsKLSAgICBt
X2xheWVyU3RhdGUuc29saWRDb2xvckNoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5kZWx0
YS5zb2xpZENvbG9yQ2hhbmdlZCA9IHRydWU7CiAKLSAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7
CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wgc2hvdykKQEAgLTQ4OSwxMiArNDQ2LDEz
IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIoYm9v
bCBzaG93KQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRTaG93RGVi
dWdCb3JkZXIoc2hvdyk7Ci0gICAgbV9sYXllclN0YXRlLmRlYnVnVmlzdWFscy5zaG93RGVidWdC
b3JkZXJzID0gc2hvdzsKLSAgICBtX2xheWVyU3RhdGUuZGVidWdWaXN1YWxzQ2hhbmdlZCA9IHRy
dWU7CiAgICAgbV9uaWNvc2lhLmRlYnVnQm9yZGVyLnZpc2libGUgPSBzaG93OwogICAgIG1fbmlj
b3NpYS5kZWx0YS5kZWJ1Z0JvcmRlckNoYW5nZWQgPSB0cnVlOwogCi0gICAgZGlkQ2hhbmdlTGF5
ZXJTdGF0ZSgpOworICAgIGlmIChtX25pY29zaWEuZGVidWdCb3JkZXIudmlzaWJsZSkKKyAgICAg
ICAgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CisKKyAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7
CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93UmVwYWludENvdW50
ZXIoYm9vbCBzaG93KQpAQCAtNTAzLDEyICs0NjEsMTAgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcihib29sIHNob3cpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcihzaG93KTsKLSAg
ICBtX2xheWVyU3RhdGUucmVwYWludENvdW50LnNob3dSZXBhaW50Q291bnRlciA9IHNob3c7Ci0g
ICAgbV9sYXllclN0YXRlLnJlcGFpbnRDb3VudENoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3Np
YS5yZXBhaW50Q291bnRlci52aXNpYmxlID0gc2hvdzsKICAgICBtX25pY29zaWEuZGVsdGEucmVw
YWludENvdW50ZXJDaGFuZ2VkID0gdHJ1ZTsKIAotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsK
KyAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQpAQCAtNTM2LDE0ICs0OTIs
MTAgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE1hc2tMYXllcihHcmFwaGlj
c0xheWVyKiBsYXllcikKIAogICAgIGxheWVyLT5zZXRTaXplKHNpemUoKSk7CiAgICAgbGF5ZXIt
PnNldENvbnRlbnRzVmlzaWJsZShjb250ZW50c0FyZVZpc2libGUoKSk7Ci0gICAgYXV0byYgY29v
cmRpbmF0ZWRMYXllciA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKmxheWVy
KTsKLSAgICBjb29yZGluYXRlZExheWVyLmRpZENoYW5nZUxheWVyU3RhdGUoKTsKIAotICAgIG1f
bGF5ZXJTdGF0ZS5tYXNrID0gY29vcmRpbmF0ZWRMYXllci5pZCgpOwotICAgIG1fbGF5ZXJTdGF0
ZS5tYXNrQ2hhbmdlZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRlbHRhLm1hc2tDaGFuZ2VkID0g
dHJ1ZTsKIAotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKKyAgICBub3RpZnlGbHVzaFJlcXVp
cmVkKCk7CiB9CiAKIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzaG91bGREaXJlY3Rs
eUNvbXBvc2l0ZUltYWdlKEltYWdlKiBpbWFnZSkgY29uc3QKQEAgLTU2NCwxMCArNTE2LDggQEAg
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFJlcGxpY2F0ZWRCeUxheWVyKEdyYXBo
aWNzTGF5ZXIqIGxheWVyKQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpz
ZXRSZXBsaWNhdGVkQnlMYXllcihsYXllcik7Ci0gICAgbV9sYXllclN0YXRlLnJlcGxpY2EgPSB0
b0Nvb3JkaW5hdGVkTGF5ZXJJRChsYXllcik7Ci0gICAgbV9sYXllclN0YXRlLnJlcGxpY2FDaGFu
Z2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEuZGVsdGEucmVwbGljYUNoYW5nZWQgPSB0cnVlOwot
ICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKKyAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9
CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXkoKQpAQCAt
NTc4LDcgKzUyOCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rp
c3BsYXkoKQogICAgIG1fbmVlZHNEaXNwbGF5LmNvbXBsZXRlTGF5ZXIgPSB0cnVlOwogICAgIG1f
bmVlZHNEaXNwbGF5LnJlY3RzLmNsZWFyKCk7CiAKLSAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7
CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogICAgIGFkZFJlcGFpbnRSZWN0KHsgeyB9LCBt
X3NpemUgfSk7CiB9CiAKQEAgLTYwNSw3ICs1NTUsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbFJl
YwogICAgIGVsc2UKICAgICAgICAgcmVjdHNbMF0udW5pdGUocmVjdCk7CiAKLSAgICBkaWRDaGFu
Z2VMYXllclN0YXRlKCk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogICAgIGFkZFJlcGFp
bnRSZWN0KHJlY3QpOwogfQogCkBAIC02MjMsOTQgKzU3MywyMCBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKICAgICAgICAgY2hpbGQtPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShyZWN0KTsKIH0KIAotdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbigpCi17Ci0gICAgaWYgKCFt
X3Nob3VsZFN5bmNDaGlsZHJlbikKLSAgICAgICAgcmV0dXJuOwotICAgIG1fc2hvdWxkU3luY0No
aWxkcmVuID0gZmFsc2U7Ci0gICAgbV9sYXllclN0YXRlLmNoaWxkcmVuQ2hhbmdlZCA9IHRydWU7
Ci0gICAgbV9uaWNvc2lhLmRlbHRhLmNoaWxkcmVuQ2hhbmdlZCA9IHRydWU7Ci0KLSAgICBtX2xh
eWVyU3RhdGUuY2hpbGRyZW4uY2xlYXIoKTsKLSAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRy
ZW4oKSkKLSAgICAgICAgbV9sYXllclN0YXRlLmNoaWxkcmVuLmFwcGVuZCh0b0Nvb3JkaW5hdGVk
TGF5ZXJJRChjaGlsZCkpOwotfQotCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3lu
Y0ZpbHRlcnMoKQotewotICAgIGlmICghbV9zaG91bGRTeW5jRmlsdGVycykKLSAgICAgICAgcmV0
dXJuOwotICAgIG1fc2hvdWxkU3luY0ZpbHRlcnMgPSBmYWxzZTsKLQotICAgIG1fbGF5ZXJTdGF0
ZS5maWx0ZXJzID0gR3JhcGhpY3NMYXllcjo6ZmlsdGVycygpOwotICAgIG1fbGF5ZXJTdGF0ZS5m
aWx0ZXJzQ2hhbmdlZCA9IHRydWU7Ci0gICAgbV9uaWNvc2lhLmRlbHRhLmZpbHRlcnNDaGFuZ2Vk
ID0gdHJ1ZTsKLX0KLQotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNMYXllclN0
YXRlKCkKLXsKLSAgICBpZiAoIW1fc2hvdWxkU3luY0xheWVyU3RhdGUpCi0gICAgICAgIHJldHVy
bjsKLSAgICBtX3Nob3VsZFN5bmNMYXllclN0YXRlID0gZmFsc2U7Ci0KLSAgICBtX2xheWVyU3Rh
dGUuY2hpbGRyZW5UcmFuc2Zvcm0gPSBjaGlsZHJlblRyYW5zZm9ybSgpOwotICAgIG1fbGF5ZXJT
dGF0ZS5jb250ZW50c1JlY3QgPSBjb250ZW50c1JlY3QoKTsKLSAgICBtX2xheWVyU3RhdGUubWFz
ayA9IHRvQ29vcmRpbmF0ZWRMYXllcklEKG1hc2tMYXllcigpKTsKLSAgICBtX2xheWVyU3RhdGUu
b3BhY2l0eSA9IG9wYWNpdHkoKTsKLSAgICBtX2xheWVyU3RhdGUucmVwbGljYSA9IHRvQ29vcmRp
bmF0ZWRMYXllcklEKHJlcGxpY2FMYXllcigpKTsKLSAgICBtX2xheWVyU3RhdGUudHJhbnNmb3Jt
ID0gdHJhbnNmb3JtKCk7Ci0KLSAgICBtX2xheWVyU3RhdGUuYW5jaG9yUG9pbnQgPSBtX2FkanVz
dGVkQW5jaG9yUG9pbnQ7Ci0gICAgbV9sYXllclN0YXRlLnBvcyA9IG1fYWRqdXN0ZWRQb3NpdGlv
bjsKLSAgICBtX2xheWVyU3RhdGUuc2l6ZSA9IG1fYWRqdXN0ZWRTaXplOwotCi0gICAgaWYgKG1f
bGF5ZXJTdGF0ZS5mbGFnc0NoYW5nZWQpIHsKLSAgICAgICAgbV9sYXllclN0YXRlLmNvbnRlbnRz
T3BhcXVlID0gY29udGVudHNPcGFxdWUoKTsKLSAgICAgICAgbV9sYXllclN0YXRlLmRyYXdzQ29u
dGVudCA9IGRyYXdzQ29udGVudCgpOwotICAgICAgICBtX2xheWVyU3RhdGUuY29udGVudHNWaXNp
YmxlID0gY29udGVudHNBcmVWaXNpYmxlKCk7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5iYWNrZmFj
ZVZpc2libGUgPSBiYWNrZmFjZVZpc2liaWxpdHkoKTsKLSAgICAgICAgbV9sYXllclN0YXRlLm1h
c2tzVG9Cb3VuZHMgPSBtYXNrc1RvQm91bmRzKCk7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5wcmVz
ZXJ2ZXMzRCA9IHByZXNlcnZlczNEKCk7Ci0gICAgfQotCi0gICAgaWYgKG1fbGF5ZXJTdGF0ZS5k
ZWJ1Z1Zpc3VhbHNDaGFuZ2VkKSB7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5kZWJ1Z1Zpc3VhbHMu
c2hvd0RlYnVnQm9yZGVycyA9IGlzU2hvd2luZ0RlYnVnQm9yZGVyKCk7Ci0gICAgICAgIGlmICht
X2xheWVyU3RhdGUuZGVidWdWaXN1YWxzLnNob3dEZWJ1Z0JvcmRlcnMpCi0gICAgICAgICAgICB1
cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKLSAgICB9Ci0gICAgaWYgKG1fbGF5ZXJTdGF0ZS5yZXBh
aW50Q291bnRDaGFuZ2VkKQotICAgICAgICBtX2xheWVyU3RhdGUucmVwYWludENvdW50LnNob3dS
ZXBhaW50Q291bnRlciA9IGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0KIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3Is
IGZsb2F0IHdpZHRoKQogewotICAgIEFTU0VSVChtX2xheWVyU3RhdGUuZGVidWdWaXN1YWxzLnNo
b3dEZWJ1Z0JvcmRlcnMpOwotICAgIGlmIChtX2xheWVyU3RhdGUuZGVidWdWaXN1YWxzLmRlYnVn
Qm9yZGVyQ29sb3IgIT0gY29sb3IpIHsKLSAgICAgICAgbV9sYXllclN0YXRlLmRlYnVnVmlzdWFs
cy5kZWJ1Z0JvcmRlckNvbG9yID0gY29sb3I7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5kZWJ1Z1Zp
c3VhbHNDaGFuZ2VkID0gdHJ1ZTsKKyAgICBBU1NFUlQobV9uaWNvc2lhLmRlYnVnQm9yZGVyLnZp
c2libGUpOworICAgIGlmIChtX25pY29zaWEuZGVidWdCb3JkZXIuY29sb3IgIT0gY29sb3IpIHsK
ICAgICAgICAgbV9uaWNvc2lhLmRlYnVnQm9yZGVyLmNvbG9yID0gY29sb3I7CiAgICAgICAgIG1f
bmljb3NpYS5kZWx0YS5kZWJ1Z0JvcmRlckNoYW5nZWQgPSB0cnVlOwogICAgIH0KIAotICAgIGlm
IChtX2xheWVyU3RhdGUuZGVidWdWaXN1YWxzLmRlYnVnQm9yZGVyV2lkdGggIT0gd2lkdGgpIHsK
LSAgICAgICAgbV9sYXllclN0YXRlLmRlYnVnVmlzdWFscy5kZWJ1Z0JvcmRlcldpZHRoID0gd2lk
dGg7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5kZWJ1Z1Zpc3VhbHNDaGFuZ2VkID0gdHJ1ZTsKKyAg
ICBpZiAobV9uaWNvc2lhLmRlYnVnQm9yZGVyLndpZHRoICE9IHdpZHRoKSB7CiAgICAgICAgIG1f
bmljb3NpYS5kZWJ1Z0JvcmRlci53aWR0aCA9IHdpZHRoOwogICAgICAgICBtX25pY29zaWEuZGVs
dGEuZGVidWdCb3JkZXJDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiB9CiAKLXZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzeW5jQW5pbWF0aW9ucygpCi17Ci0gICAgaWYgKCFtX3Nob3VsZFN5
bmNBbmltYXRpb25zKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Nob3VsZFN5bmNBbmltYXRp
b25zID0gZmFsc2U7Ci0gICAgbV9sYXllclN0YXRlLmFuaW1hdGlvbnMgPSBtX2FuaW1hdGlvbnMu
Z2V0QWN0aXZlQW5pbWF0aW9ucygpOwotICAgIG1fbGF5ZXJTdGF0ZS5hbmltYXRpb25zQ2hhbmdl
ZCA9IHRydWU7Ci0gICAgbV9uaWNvc2lhLmRlbHRhLmFuaW1hdGlvbnNDaGFuZ2VkID0gdHJ1ZTsK
LX0KLQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZVBsYXRmb3JtTGF5ZXIo
KQogewogICAgIGlmICghbV9zaG91bGRVcGRhdGVQbGF0Zm9ybUxheWVyKQpAQCAtNzMzLDE1ICs2
MDksNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0
YXRlRm9yVGhpc0xheWVyT25seSgpCiAgICAgLy8gU2V0cyB0aGUgdmFsdWVzLgogICAgIGNvbXB1
dGVQaXhlbEFsaWdubWVudChtX2FkanVzdGVkUG9zaXRpb24sIG1fYWRqdXN0ZWRTaXplLCBtX2Fk
anVzdGVkQW5jaG9yUG9pbnQsIG1fcGl4ZWxBbGlnbm1lbnRPZmZzZXQpOwogCi0gICAgLy8gRklY
TUU6IHRoaXMgaXMgY29tbWVudGVkIG91dCB0byBpbW1lZGlhdGVseSBkaXNhYmxlIGFueSBvbGQt
d2F5IGltYWdlIHVwZGF0ZXMuCi0gICAgLy8gSXQgd2lsbCBzb29uIGJlIHJlbW92ZWQgaW4gYSBs
YXJnZXIgY2xlYW51cC4KLSAgICAvLyBzeW5jSW1hZ2VCYWNraW5nKCk7Ci0KLSAgICBzeW5jTGF5
ZXJTdGF0ZSgpOwotICAgIHN5bmNBbmltYXRpb25zKCk7CiAgICAgY29tcHV0ZVRyYW5zZm9ybWVk
VmlzaWJsZVJlY3QoKTsKLSAgICBzeW5jQ2hpbGRyZW4oKTsKLSAgICBzeW5jRmlsdGVycygpOwog
ICAgIHVwZGF0ZVBsYXRmb3JtTGF5ZXIoKTsKIAogICAgIC8vIE9ubHkgdW5zZXQgbV9tb3ZpbmdW
aXNpYmxlUmVjdCBhZnRlciB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHZpc2libGUgcmVjdCBhZnRlciB0
aGUgYW5pbWF0aW9uIHN0b3BwZWQuCkBAIC04OTMsMTMgKzc2MSw4IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkK
IAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2Vz
SW5jbHVkaW5nU3ViTGF5ZXJzKCkKIHsKLSAgICAvLyBGSVhNRTogRm9yIG5vdyB0aGUgYmVzdCB3
YXkgZm9yIGxheWVyIHN0YXRlIGNoYW5nZXMgdG8gdHJpZ2dlciBhbiB1cGRhdGUgaXMgdG8gdXNl
Ci0gICAgLy8gdGhlIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudDo6c3luY0xheWVyU3Rh
dGUoKSBtZXRob2QuIFRoaXMgc2hvdWxkIGJlIHNpbXBsaWZpZWQKLSAgICAvLyBvbmNlIHRoZSBt
X2xheWVyU3RhdGUgbWVtYmVyIG9iamVjdCBpcyByZW1vdmVkLgotICAgIGlmIChtX25pY29zaWEu
cGVyZm9ybUxheWVyU3luYyB8fCBtX2xheWVyU3RhdGUuaGFzUGVuZGluZ0NoYW5nZXMoKSkgewot
ICAgICAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jTGF5ZXJTdGF0ZShtX2lkLCBtX2xheWVyU3RhdGUp
OwotICAgICAgICByZXNldExheWVyU3RhdGUoKTsKLSAgICB9CisgICAgaWYgKG1fbmljb3NpYS5w
ZXJmb3JtTGF5ZXJTeW5jKQorICAgICAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jTGF5ZXJTdGF0ZSgp
OwogICAgIG1fbmljb3NpYS5wZXJmb3JtTGF5ZXJTeW5jID0gZmFsc2U7CiAKICAgICBpZiAobWFz
a0xheWVyKCkpCkBAIC05MDksMTEgKzc3Miw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzeW5jUGVuZGluZ1N0YXRlQ2hhbmdlc0luY2x1ZGluZ1N1YkxheWVycygpCiAgICAgICAg
IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oKmNoaWxkKS5zeW5jUGVuZGluZ1N0
YXRlQ2hhbmdlc0luY2x1ZGluZ1N1YkxheWVycygpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6cmVzZXRMYXllclN0YXRlKCkKLXsKLSAgICBtX2xheWVyU3RhdGUuY2hhbmdl
TWFzayA9IDA7Ci19Ci0KIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkZXZpY2VPclBh
Z2VTY2FsZUZhY3RvckNoYW5nZWQoKQogewogICAgIGlmIChzaG91bGRIYXZlQmFja2luZ1N0b3Jl
KCkpCkBAIC0xMDkzLDcgKzk1MSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpw
dXJnZUJhY2tpbmdTdG9yZXMoKQogICAgICAgICBtX25pY29zaWEuYmFja2luZ1N0b3JlID0gbnVs
bHB0cjsKICAgICB9CiAKLSAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CisgICAgbm90aWZ5Rmx1
c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29v
cmRpbmF0b3IoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KiBjb29yZGluYXRvcikKQEAg
LTExMjEsNyArOTc5LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvb3Jk
aW5hdG9ySW5jbHVkaW5nU3ViTGF5ZXJzSWZOZWVkZWQoQ29vcmRpbmEKICAgICAvLyBmbGFnIHZh
bHVlLCBzbyB0aGUgc2NlbmUgd29uJ3QgdXBkYXRlIGl0IGFuZCB0aGUgbGF5ZXIgd29uJ3QgYmUg
cmVuZGVyZWQuCiAgICAgLy8KICAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSBoZXJlIHRoZSBsYXll
ciBjaGFuZ2VNYXNrIHNvIHRoZSBzY2VuZSBnZXRzIGFsbCB0aGUgY3VycmVudCB2YWx1ZXMuCi0g
ICAgbV9sYXllclN0YXRlLmNoYW5nZU1hc2sgPSBVSU5UX01BWDsKKyAgICBtX25pY29zaWEuZGVs
dGEudmFsdWUgPSBVSU5UX01BWDsKIAogICAgIGNvb3JkaW5hdG9yLT5hdHRhY2hMYXllcih0aGlz
KTsKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCBjMDczM2FlNTA1
YmUwMjQ1Y2QyOGNmNDU2OGNlODQyY2Q1MTAwODc3Li4zYjVlZTlmNTcxMWQyMTIzY2EwY2U2OGFh
Y2RhMTAyNGMxY2M3NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC01MCw4ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBhdHRhY2hMYXllcihDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKSA9IDA7
CiAgICAgdmlydHVhbCBOaWNvc2lhOjpQYWludGluZ0VuZ2luZSYgcGFpbnRpbmdFbmdpbmUoKSA9
IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklE
LCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c3luY0xheWVyU3RhdGUoKSA9IDA7CiB9OwogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIgOiBwdWJsaWMgR3JhcGhpY3NMYXllciB7CkBAIC0xMTIsNyArMTEx
LDcgQEAgcHVibGljOgogICAgIEZsb2F0UG9pbnQgY29tcHV0ZVBvc2l0aW9uUmVsYXRpdmVUb0Jh
c2UoKTsKICAgICB2b2lkIGNvbXB1dGVQaXhlbEFsaWdubWVudChGbG9hdFBvaW50JiBwb3NpdGlv
biwgRmxvYXRTaXplJiwgRmxvYXRQb2ludDNEJiBhbmNob3JQb2ludCwgRmxvYXRTaXplJiBhbGln
bm1lbnRPZmZzZXQpOwogCi0gICAgQ29vcmRpbmF0ZWRMYXllcklEIGlkKCkgY29uc3QgeyByZXR1
cm4gbV9pZDsgfQorICAgIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXI6OkxheWVySUQgaWQoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9CiAKICAgICBJbnRSZWN0IHRyYW5zZm9ybWVkVmlzaWJsZVJlY3Qo
KTsKIApAQCAtMTMxLDIzICsxMzAsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0RGVidWdC
b3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCB3aWR0aCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRp
ZENoYW5nZUxheWVyU3RhdGUoKTsKICAgICB2b2lkIGRpZENoYW5nZUFuaW1hdGlvbnMoKTsKICAg
ICB2b2lkIGRpZENoYW5nZUdlb21ldHJ5KCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VDaGlsZHJlbigp
OwogICAgIHZvaWQgZGlkQ2hhbmdlRmlsdGVycygpOwogICAgIHZvaWQgZGlkVXBkYXRlVGlsZUJ1
ZmZlcnMoKTsKIAotICAgIHZvaWQgcmVzZXRMYXllclN0YXRlKCk7Ci0gICAgdm9pZCBzeW5jTGF5
ZXJTdGF0ZSgpOwotICAgIHZvaWQgc3luY0FuaW1hdGlvbnMoKTsKLSAgICB2b2lkIHN5bmNDaGls
ZHJlbigpOwotICAgIHZvaWQgc3luY0ZpbHRlcnMoKTsKICAgICB2b2lkIGNvbXB1dGVUcmFuc2Zv
cm1lZFZpc2libGVSZWN0KCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50QnVmZmVycygpOwogCi0g
ICAgdm9pZCByZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQoKTsKLQogICAgIHZvaWQgbm90aWZ5
Rmx1c2hSZXF1aXJlZCgpOwogCiAgICAgYm9vbCBzaG91bGRIYXZlQmFja2luZ1N0b3JlKCkgY29u
c3Q7CkBAIC0xNjEsOCArMTUyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZmlsdGVyc0NhbkJl
Q29tcG9zaXRlZChjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikgY29uc3Q7CiAKLSAgICBDb29yZGlu
YXRlZExheWVySUQgbV9pZDsKLSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSBtX2xh
eWVyU3RhdGU7CisgICAgTmljb3NpYTo6UGxhdGZvcm1MYXllcjo6TGF5ZXJJRCBtX2lkOwogICAg
IEdyYXBoaWNzTGF5ZXJUcmFuc2Zvcm0gbV9sYXllclRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBtX2NhY2hlZEludmVyc2VUcmFuc2Zvcm07CiAgICAgRmxvYXRTaXplIG1fcGl4
ZWxBbGlnbm1lbnRPZmZzZXQ7CkBAIC0xNzcsMTUgKzE2NywxMCBAQCBwcml2YXRlOgogI2VuZGlm
CiAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVZpc2libGVSZWN0OiAxOwogICAgIGJvb2wgbV9zaG91
bGRTeW5jTGF5ZXJTdGF0ZTogMTsKLSAgICBib29sIG1fc2hvdWxkU3luY0NoaWxkcmVuOiAxOwot
ICAgIGJvb2wgbV9zaG91bGRTeW5jRmlsdGVyczogMTsKLSAgICBib29sIG1fc2hvdWxkU3luY0Fu
aW1hdGlvbnM6IDE7CiAgICAgYm9vbCBtX21vdmluZ1Zpc2libGVSZWN0IDogMTsKICAgICBib29s
IG1fcGVuZGluZ0NvbnRlbnRzU2NhbGVBZGp1c3RtZW50IDogMTsKICAgICBib29sIG1fcGVuZGlu
Z1Zpc2libGVSZWN0QWRqdXN0bWVudCA6IDE7Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X1RIUkVBREVEKQogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVQbGF0Zm9ybUxheWVyIDogMTsKLSNl
bmRpZgogCiAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KiBtX2Nvb3JkaW5hdG9y
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0
YXRlLmgKaW5kZXggNjI0NGE2MWRhZjhjOTYwYWYyNTE3ZDk0YjZjMzJmZGE4OWJjYmFmOS4uYmI5
ZTc5ZDY3YTIzZDBkYTAxNWQ5YmYxNjI2NTFhNzQxNGEwMzc2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaApAQCAtMzAsMTIxICsz
MCwxNCBAQAogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCi0jaW5jbHVkZSAiQ29s
b3IuaCIKLSNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCi0jaW5jbHVkZSAiRmxvYXRTaXplLmgiCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1
ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlICJOaWNvc2lhQnVmZmVyLmgiCi0jaW5jbHVkZSAiTmlj
b3NpYVBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJOaWNvc2lhU2NlbmUuaCIKLSNpbmNsdWRl
ICJTdXJmYWNlVXBkYXRlSW5mby5oIgotI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJBbmltYXRpb24u
aCIKLSNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXR5cGVkZWYgdWludDMyX3QgQ29vcmRpbmF0ZWRMYXllcklEOwotZW51bSB7IEludmFs
aWRDb29yZGluYXRlZExheWVySUQgPSAwIH07Ci0KLXN0cnVjdCBEZWJ1Z1Zpc3VhbHMgewotICAg
IENvbG9yIGRlYnVnQm9yZGVyQ29sb3I7Ci0gICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aCB7IDAg
fTsKLSAgICBib29sIHNob3dEZWJ1Z0JvcmRlcnMgeyBmYWxzZSB9OwotfTsKLQotc3RydWN0IFJl
cGFpbnRDb3VudCB7Ci0gICAgdW5zaWduZWQgY291bnQgeyAwIH07Ci0gICAgYm9vbCBzaG93UmVw
YWludENvdW50ZXIgeyBmYWxzZSB9OwotfTsKLQotc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllclN0YXRlIHsKLSAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICBi
b29sIHBvc2l0aW9uQ2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgYW5jaG9yUG9pbnRDaGFu
Z2VkOiAxOwotICAgICAgICAgICAgYm9vbCBzaXplQ2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJv
b2wgdHJhbnNmb3JtQ2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgY2hpbGRyZW5UcmFuc2Zv
cm1DaGFuZ2VkOiAxOwotICAgICAgICAgICAgYm9vbCBjb250ZW50c1JlY3RDaGFuZ2VkOiAxOwot
ICAgICAgICAgICAgYm9vbCBvcGFjaXR5Q2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgc29s
aWRDb2xvckNoYW5nZWQ6IDE7Ci0gICAgICAgICAgICBib29sIGRlYnVnVmlzdWFsc0NoYW5nZWQ6
IDE7Ci0gICAgICAgICAgICBib29sIHJlcGxpY2FDaGFuZ2VkOiAxOwotICAgICAgICAgICAgYm9v
bCBtYXNrQ2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgZmxhZ3NDaGFuZ2VkOiAxOwotICAg
ICAgICAgICAgYm9vbCBhbmltYXRpb25zQ2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgZmls
dGVyc0NoYW5nZWQ6IDE7Ci0gICAgICAgICAgICBib29sIGNoaWxkcmVuQ2hhbmdlZDogMTsKLSAg
ICAgICAgICAgIGJvb2wgcmVwYWludENvdW50Q2hhbmdlZCA6IDE7Ci0gICAgICAgICAgICBib29s
IGlzU2Nyb2xsYWJsZUNoYW5nZWQ6IDE7Ci0gICAgICAgICAgICBib29sIGNvbnRlbnRzVGlsaW5n
Q2hhbmdlZDogMTsKLSAgICAgICAgfTsKLSAgICAgICAgdW5zaWduZWQgY2hhbmdlTWFzazsKLSAg
ICB9OwotICAgIHVuaW9uIHsKLSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIGJvb2wgY29u
dGVudHNPcGFxdWUgOiAxOwotICAgICAgICAgICAgYm9vbCBkcmF3c0NvbnRlbnQgOiAxOwotICAg
ICAgICAgICAgYm9vbCBjb250ZW50c1Zpc2libGUgOiAxOwotICAgICAgICAgICAgYm9vbCBiYWNr
ZmFjZVZpc2libGUgOiAxOwotICAgICAgICAgICAgYm9vbCBtYXNrc1RvQm91bmRzIDogMTsKLSAg
ICAgICAgICAgIGJvb2wgcHJlc2VydmVzM0QgOiAxOwotICAgICAgICAgICAgYm9vbCBpc1Njcm9s
bGFibGU6IDE7Ci0gICAgICAgIH07Ci0gICAgICAgIHVuc2lnbmVkIGZsYWdzOwotICAgIH07Ci0K
LSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSgpCi0gICAgICAgIDogY2hhbmdlTWFz
aygwKQotICAgICAgICAsIGNvbnRlbnRzT3BhcXVlKGZhbHNlKQotICAgICAgICAsIGRyYXdzQ29u
dGVudChmYWxzZSkKLSAgICAgICAgLCBjb250ZW50c1Zpc2libGUodHJ1ZSkKLSAgICAgICAgLCBi
YWNrZmFjZVZpc2libGUodHJ1ZSkKLSAgICAgICAgLCBtYXNrc1RvQm91bmRzKGZhbHNlKQotICAg
ICAgICAsIHByZXNlcnZlczNEKGZhbHNlKQotICAgICAgICAsIGlzU2Nyb2xsYWJsZShmYWxzZSkK
LSAgICAgICAgLCBvcGFjaXR5KDApCi0gICAgICAgICwgcmVwbGljYShJbnZhbGlkQ29vcmRpbmF0
ZWRMYXllcklEKQotICAgICAgICAsIG1hc2soSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKLSAg
ICB7Ci0gICAgfQotCi0gICAgRmxvYXRQb2ludCBwb3M7Ci0gICAgRmxvYXRQb2ludDNEIGFuY2hv
clBvaW50OwotICAgIEZsb2F0U2l6ZSBzaXplOwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRy
YW5zZm9ybTsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjaGlsZHJlblRyYW5zZm9ybTsKLSAg
ICBGbG9hdFJlY3QgY29udGVudHNSZWN0OwotICAgIEZsb2F0U2l6ZSBjb250ZW50c1RpbGVQaGFz
ZTsKLSAgICBGbG9hdFNpemUgY29udGVudHNUaWxlU2l6ZTsKLSAgICBmbG9hdCBvcGFjaXR5Owot
ICAgIENvbG9yIHNvbGlkQ29sb3I7Ci0gICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXJzOwotICAg
IFRleHR1cmVNYXBwZXJBbmltYXRpb25zIGFuaW1hdGlvbnM7Ci0gICAgVmVjdG9yPHVpbnQzMl90
PiBjaGlsZHJlbjsKLSAgICBDb29yZGluYXRlZExheWVySUQgcmVwbGljYTsKLSAgICBDb29yZGlu
YXRlZExheWVySUQgbWFzazsKLSAgICBEZWJ1Z1Zpc3VhbHMgZGVidWdWaXN1YWxzOwotICAgIFJl
cGFpbnRDb3VudCByZXBhaW50Q291bnQ7Ci0KLSAgICBib29sIGhhc1BlbmRpbmdDaGFuZ2VzKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBjaGFuZ2VNYXNrOwotICAgIH0KLX07Ci0KIHN0
cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUgewogICAgIHN0cnVjdCBOaWNvc2lhU3RhdGUg
ewogICAgICAgICBSZWZQdHI8Tmljb3NpYTo6U2NlbmU+IHNjZW5lOwogICAgIH0gbmljb3NpYTsK
LQotICAgIHVpbnQzMl90IHJvb3RDb21wb3NpdGluZ0xheWVyOwotCi0gICAgVmVjdG9yPENvb3Jk
aW5hdGVkTGF5ZXJJRD4gbGF5ZXJzVG9DcmVhdGU7Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjxDb29y
ZGluYXRlZExheWVySUQsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPj4gbGF5ZXJzVG9V
cGRhdGU7Ci0gICAgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4gbGF5ZXJzVG9SZW1vdmU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAKaW5kZXggNTY5MjZhMmY0YjY5Y2Q4ODk0M2JiOGUxY2I4YjA5YzBkYTc4MmE4
Mi4uMmZlNjZhZWI3YzI3N2Y2YWZhZTVlMGY2MjVjYjIxMzc3NTc0MjEyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApAQCAtNDQ5LDcgKzQ0OSw3IEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwdXJnZUdMUmVzb3VyY2VzKCkKICAgICB9CiAKICAg
ICBtX3Jvb3RMYXllciA9IG51bGxwdHI7Ci0gICAgbV9yb290TGF5ZXJJRCA9IEludmFsaWRDb29y
ZGluYXRlZExheWVySUQ7CisgICAgbV9yb290TGF5ZXJJRCA9IDA7CiAgICAgbV90ZXh0dXJlTWFw
cGVyID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgK
aW5kZXggNDBiOGI2MzExMGU5OWZiMjRlMzA3NDliY2VhYTAyOWNmMGYzYjk4ZS4uZDRiYjU4MjY4
ZmU3NTIyMTYxMzhkNTY0MTE3YjRiNzZlYzhhOWY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFw
aGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OaWNvc2lhUGxhdGZvcm1MYXllci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dHVyZU1hcHBlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dHVyZU1h
cHBlckZQU0NvdW50ZXIuaD4KQEAgLTExMSw3ICsxMTIsNyBAQCBwcml2YXRlOgogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcj4gbV9yb290TGF5ZXI7CiAK
LSAgICBXZWJDb3JlOjpDb29yZGluYXRlZExheWVySUQgbV9yb290TGF5ZXJJRCB7IFdlYkNvcmU6
OkludmFsaWRDb29yZGluYXRlZExheWVySUQgfTsKKyAgICBOaWNvc2lhOjpQbGF0Zm9ybUxheWVy
OjpMYXllcklEIG1fcm9vdExheWVySUQgeyAwIH07CiAgICAgV2ViQ29yZTo6Q29sb3IgbV92aWV3
QmFja2dyb3VuZENvbG9yIHsgV2ViQ29yZTo6Q29sb3I6OndoaXRlIH07CiAKICAgICBXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyRlBTQ291bnRlciBtX2Zwc0NvdW50ZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBlYjBhMGUx
ZjM4ZTZjMzY4ZDdkY2JjMzUxMWVjZWIxYzUzMzkyOTE2Li4zNmQ1MmI2MWI4Y2M5MmFhYmNiNTc2
M2I3YWIzOTIxYzMzZDhkZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAgLTE2MSw4ICsxNjEsNiBAQCBib29sIENvbXBv
c2l0aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICBtX2NsaWVudC5jb21taXRTY2VuZVN0YXRlKG1fc3RhdGUpOwotCi0g
ICAgICAgIGNsZWFyUGVuZGluZ1N0YXRlQ2hhbmdlcygpOwogICAgICAgICBtX3Nob3VsZFN5bmNG
cmFtZSA9IGZhbHNlOwogICAgIH0KIApAQCAtMTg5LDEzICsxODcsNiBAQCBkb3VibGUgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6bmV4dEFuaW1hdGlvblNlcnZpY2VUaW1lKCkgY29uc3QKICAgICBy
ZXR1cm4gc3RkOjptYXg8ZG91YmxlPigwLiwgTWluaW1hbFRpbWVvdXRGb3JBbmltYXRpb25zIC0g
dGltZXN0YW1wKCkgKyBtX2xhc3RBbmltYXRpb25TZXJ2aWNlVGltZSk7CiB9CiAKLXZvaWQgQ29t
cG9zaXRpbmdDb29yZGluYXRvcjo6Y2xlYXJQZW5kaW5nU3RhdGVDaGFuZ2VzKCkKLXsKLSAgICBt
X3N0YXRlLmxheWVyc1RvQ3JlYXRlLmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5sYXllcnNUb1VwZGF0
ZS5jbGVhcigpOwotICAgIG1fc3RhdGUubGF5ZXJzVG9SZW1vdmUuY2xlYXIoKTsKLX0KLQogdm9p
ZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjppbml0aWFsaXplUm9vdENvbXBvc2l0aW5nTGF5ZXJJ
Zk5lZWRlZCgpCiB7CiAgICAgaWYgKG1fZGlkSW5pdGlhbGl6ZVJvb3RDb21wb3NpdGluZ0xheWVy
KQpAQCAtMjAzLDcgKzE5NCw2IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6aW5pdGlh
bGl6ZVJvb3RDb21wb3NpdGluZ0xheWVySWZOZWVkZWQoKQogCiAgICAgYXV0byYgcm9vdExheWVy
ID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPigqbV9yb290TGF5ZXIpOwogICAg
IG1fbmljb3NpYS5zdGF0ZS5yb290TGF5ZXIgPSByb290TGF5ZXIuY29tcG9zaXRpb25MYXllcigp
OwotICAgIG1fc3RhdGUucm9vdENvbXBvc2l0aW5nTGF5ZXIgPSByb290TGF5ZXIuaWQoKTsKICAg
ICBtX2RpZEluaXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllciA9IHRydWU7CiAgICAgbV9zaG91
bGRTeW5jRnJhbWUgPSB0cnVlOwogfQpAQCAtMjIwLDEwICsyMTAsOSBAQCB2b2lkIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OmNyZWF0ZVJvb3RMYXllcihjb25zdCBJbnRTaXplJiBzaXplKQogICAg
IG1fcm9vdExheWVyLT5zZXRTaXplKHNpemUpOwogfQogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OnN5bmNMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQordm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpz
eW5jTGF5ZXJTdGF0ZSgpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwotICAgIG1f
c3RhdGUubGF5ZXJzVG9VcGRhdGUuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGlkLCBzdGF0ZSkpOwog
fQogCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXllciopCkBAIC0yNDgsNyArMjM3LDYgQEAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIo
R3JhcGgKICAgICBsYXllci0+c2V0Q29vcmRpbmF0b3IodGhpcyk7CiAgICAgbV9uaWNvc2lhLnN0
YXRlLmxheWVycy5hZGQobGF5ZXItPmNvbXBvc2l0aW9uTGF5ZXIoKSk7CiAgICAgbV9yZWdpc3Rl
cmVkTGF5ZXJzLmFkZChsYXllci0+aWQoKSwgbGF5ZXIpOwotICAgIG1fc3RhdGUubGF5ZXJzVG9D
cmVhdGUuYXBwZW5kKGxheWVyLT5pZCgpKTsKICAgICBsYXllci0+c2V0TmVlZHNWaXNpYmxlUmVj
dEFkanVzdG1lbnQoKTsKICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKGxheWVyKTsKICAgICByZXR1
cm4gc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+KGxheWVyKTsKQEAgLTI4OSwxNCArMjc3
LDYgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hMYXllcihDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogCiAgICAgbV9uaWNvc2lhLnN0YXRlLmxheWVycy5yZW1v
dmUobGF5ZXItPmNvbXBvc2l0aW9uTGF5ZXIoKSk7CiAgICAgbV9yZWdpc3RlcmVkTGF5ZXJzLnJl
bW92ZShsYXllci0+aWQoKSk7Ci0KLSAgICBzaXplX3QgaW5kZXggPSBtX3N0YXRlLmxheWVyc1Rv
Q3JlYXRlLmZpbmQobGF5ZXItPmlkKCkpOwotICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkgewot
ICAgICAgICBtX3N0YXRlLmxheWVyc1RvQ3JlYXRlLnJlbW92ZShpbmRleCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBtX3N0YXRlLmxheWVyc1RvUmVtb3ZlLmFwcGVuZChsYXllci0+
aWQoKSk7CiAgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZChsYXllcik7CiB9CiAKQEAgLTMwNSw3ICsy
ODUsNiBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmF0dGFjaExheWVyKENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgbGF5ZXItPnNldENvb3JkaW5hdG9yKHRoaXMp
OwogICAgIG1fbmljb3NpYS5zdGF0ZS5sYXllcnMuYWRkKGxheWVyLT5jb21wb3NpdGlvbkxheWVy
KCkpOwogICAgIG1fcmVnaXN0ZXJlZExheWVycy5hZGQobGF5ZXItPmlkKCksIGxheWVyKTsKLSAg
ICBtX3N0YXRlLmxheWVyc1RvQ3JlYXRlLmFwcGVuZChsYXllci0+aWQoKSk7CiAgICAgbGF5ZXIt
PnNldE5lZWRzVmlzaWJsZVJlY3RBZGp1c3RtZW50KCk7CiAgICAgbm90aWZ5Rmx1c2hSZXF1aXJl
ZChsYXllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdD
b29yZGluYXRvci5oCmluZGV4IDk4N2E5MTIzM2YwMDY5OTQ3OWNjOWUxMzlkMzIyZjY2M2JhMjYz
YTQuLjZiYTg1ZjFlNGYzYjQ1OGVmMTc0OTZlYTc1YmRiOGM3MjY1MjRmMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyRmFjdG9yeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmljb3NpYUJ1ZmZl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaD4KIAogbmFtZXNw
YWNlIE5pY29zaWEgewogY2xhc3MgUGFpbnRpbmdFbmdpbmU7CkBAIC05OSwxMyArMTAwLDEyIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIGF0dGFjaExheWVyKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIE5pY29zaWE6OlBhaW50aW5nRW5n
aW5lJiBwYWludGluZ0VuZ2luZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgc3luY0xheWVyU3RhdGUo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgc3luY0xheWVyU3RhdGUoKSBvdmVycmlk
ZTsKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJGYWN0b3J5CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6VHlwZSwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCYpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBpbml0aWFsaXplUm9vdENvbXBvc2l0aW5nTGF5ZXJJZk5lZWRlZCgpOwotICAg
IHZvaWQgY2xlYXJQZW5kaW5nU3RhdGVDaGFuZ2VzKCk7CiAKICAgICB2b2lkIHB1cmdlQmFja2lu
Z1N0b3JlcygpOwogCkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0ZToKICAgICB9IG1fbmljb3Np
YTsKICAgICBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUgbV9zdGF0ZTsKIAotICAg
IEhhc2hNYXA8V2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIqPiBtX3JlZ2lzdGVyZWRMYXllcnM7CisgICAgSGFzaE1hcDxOaWNvc2lh
OjpQbGF0Zm9ybUxheWVyOjpMYXllcklELCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqPiBtX3JlZ2lzdGVyZWRMYXllcnM7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Tmljb3NpYTo6
UGFpbnRpbmdFbmdpbmU+IG1fcGFpbnRpbmdFbmdpbmU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347916</attachid>
            <date>2018-08-23 00:39:09 -0700</date>
            <delta_ts>2018-08-23 05:34:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188881-20180823093908.patch</filename>
            <type>text/plain</type>
            <size>37969</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkxMDk0ZTQ5M2YwMWVl
OTc2OTI5NzczNzc1ZDZiNDNiNzRmNzlmNy4uYTc1NDMwZmQ3ZjZmMTY5MTQ0ZTQ0NzU2NmI3NzVi
NGNhYjMyYjE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE4LTA4LTIzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ29vcmRHcmFwaGlj
c10gUmVtb3ZlIHRoZSByZW1haW5pbmcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgY3J1
ZnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODg4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSB3aGF0J3MgbGVmdCBvZiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB1c2FnZSBpbiB0
aGUKKyAgICAgICAgQ29vcmRpbmF0ZWRHcmFwaGljcyBzdWJzeXN0ZW0uIEluIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllciwgdGhpcyBtZWFucworICAgICAgICBkcm9wcGluZyB0aGUgbV9sYXllclN0
YXRlIG1lbWJlciB2YXJpYWJsZSBzaW5jZSBhdCB0aGlzIHBvaW50IGl0IGlzIG5vdAorICAgICAg
ICB1c2VkIGFueW1vcmUgaW4gYW55IGNhcGFjaXR5LiBBZmZlY3RlZCBoZWxwZXIgbWV0aG9kcyBh
bmQgbWVtYmVyCisgICAgICAgIHZhcmlhYmxlcyBhcmUgYWxzbyByZW1vdmVkIHdoZXJlIHBvc3Np
YmxlLgorCisgICAgICAgIFRoZSBzeW5jTGF5ZXJTdGF0ZSgpIG1ldGhvZCBvbiB0aGUgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50CisgICAgICAgIGludGVyZmFjZSBpcyBhZGp1c3RlZCB0
byBub3QgYWNjZXB0IGFueSBwYXJhbWV0ZXJzLiBDbGllbnQgc2hvdWxkIGp1c3QKKyAgICAgICAg
bWFyayBmcmFtZSBzeW5jaHJvbml6YXRpb24gYXMgcmVxdWlyZWQgd2hpbGUgdGhlIGxheWVyIHN0
YXRlIGlzIG5vdworICAgICAgICBtYW5hZ2VkIGRpZmZlcmVudGx5LgorCisgICAgICAgIEluc3Rl
YWQgb2YgdGhlIENvb3JkaW5hdGVkTGF5ZXJJRCAod2hpY2ggaXMgcmVtb3ZlZCkgdGhlCisgICAg
ICAgIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXI6OkxheWVySUQgYWxpYXMgaXMgaW50cm9kdWNlZCBh
cyBhIGxheWVyIElEIHR5cGUsCisgICAgICAgIGFsaWFzZWQgdG8gdGhlIHVpbnQ2NF90IHR5cGUu
CisKKyAgICAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmggZmlsZSBpcyByaWQgb2YgYWxs
IHN0cnVjdHMgZXhjZXB0IHRoZQorICAgICAgICBiYXNpYyBDb29yZGluYXRlZEdyYXBoaWNzU3Rh
dGUgc3RydWN0IHRoYXQgYXQgdGhpcyBwb2ludCBjb250YWlucyBvbmx5CisgICAgICAgIGEgcmVm
ZXJlbmNlIHRvIHRoZSBOaWNvc2lhOjpTY2VuZSBvYmplY3QuIFRoaXMgd2lsbCBiZSBmdXJ0aGVy
CisgICAgICAgIHNpbXBsaWZpZWQgaW4gdGhlIHBhdGNoZXMgdGhhdCBmb2xsb3cuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmg6Cisg
ICAgICAgIChOaWNvc2lhOjpQbGF0Zm9ybUxheWVyOjppZCBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENo
YW5nZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpkaWRDaGFuZ2VDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OmRpZENoYW5nZUZpbHRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpkaWRVcGRhdGVUaWxlQnVmZmVycyk6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUdlb21ldHJ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRBbmNob3JQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRDaGlsZHJlblRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnNldFByZXNlcnZlczNEKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0TWFza3NUb0JvdW5kcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldERyYXdzQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVmlzaWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzT3Bh
cXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0QmFj
a2ZhY2VWaXNpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0T3BhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2hvd0Rl
YnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c2V0TWFza0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1Z0JvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jUGVuZGluZ1N0YXRlQ2hhbmdlc0luY2x1ZGluZ1N1Ykxh
eWVycyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnB1cmdl
QmFja2luZ1N0b3Jlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldENvb3JkaW5hdG9ySW5jbHVkaW5nU3ViTGF5ZXJzSWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6dG9Db29yZGluYXRlZExheWVySUQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VMYXllclN0YXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NoaWxk
cmVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c3luY0ZpbHRlcnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVzZXRMYXllclN0YXRl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oOgorICAgICAg
ICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
clN0YXRlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6aGFzUGVuZGluZ0NoYW5n
ZXMgY29uc3QpOiBEZWxldGVkLgorCiAyMDE4LTA4LTIyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ29vcmRHcmFwaGljc10gRHJvcCBvbGQtc2Nob29s
IFBsYXRmb3JtTGF5ZXIgbWFuYWdlbWVudCBpbiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYzhlNDVkM2JiZDQwYmJhMDIzODI5ZDFmNmJjZGYwNDdhZGQ3ZGM0OC4uOTVkMGU1
ZDE3M2ZlZTk5Yzg0MWFhZDZjZDI3Zjg3M2JkOTUxM2RkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MSBAQAorMjAxOC0wOC0yMyAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0Nvb3JkR3JhcGhpY3NdIFJlbW92ZSB0aGUgcmVtYWluaW5nIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlIGNydWZ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODg4ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvciBjbGFzcyBvZiBjb2Rl
IHRoYXQgbWFuYWdlcyBub3ctZGVsZXRlZCBzdGF0ZQorICAgICAgICB0cmFja2luZyBvZiBsYXll
ciBjcmVhdGlvbiwgdXBkYXRlIGFuZCByZW1vdmFsIG9uIHRoZQorICAgICAgICBDb29yZGluYXRl
ZEdyYXBoaWNzU3RhdGUgY2xhc3MuIFRoZSBzeW5jTGF5ZXJTdGF0ZSgpIG1ldGhvZCBpcyBjaGFu
Z2VkCisgICAgICAgIGFjY29yZGluZ2x5LCBub3cgb25seSBlbmZvcmNpbmcgYSBmcmFtZSBzeW5j
aHJvbml6YXRpb24gd2hlbiBjYWxsZWQuCisKKyAgICAgICAgVXNlIG9mIE5pY29zaWE6OlBsYXRm
b3JtTGF5ZXI6OkxheWVySUQgaXMgYWRvcHRlZCBzaW5jZSB0aGUKKyAgICAgICAgQ29vcmRpbmF0
ZWRMYXllcklEIHR5cGUgaGFzIGJlZW4gcmVtb3ZlZC4KKworICAgICAgICAqIFNoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cHVyZ2VHTFJlc291cmNlcyk6CisgICAg
ICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OkNv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OmluaXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0xheWVy
U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6
ZGV0YWNoTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjph
dHRhY2hMYXllcik6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNs
ZWFyUGVuZGluZ1N0YXRlQ2hhbmdlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oOgorCiAy
MDE4LTA4LTIyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbQ29vcmRHcmFwaGljc10gUmVtb3ZlIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nIGFuZCByZWxh
dGVkIGZ1bmN0aW9uYWxpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaAppbmRleCA0OWYy
MmRiNGQxZDdiOWQ3MjEyNmZkM2I4NmQ2YmFjYjEyM2E5NzFkLi5iZTNhNTI1N2E0YjI1YWVhNTIx
Y2M1OGI0ODAzMDRmODAyYmQ4MDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5oCkBA
IC01MCw3ICs1MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDb21wb3NpdGlvbkxh
eWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZW50
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdWludDY0X3QgaWQoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9CisgICAgdXNpbmcgTGF5ZXJJRCA9IHVpbnQ2NF90OworICAgIExh
eWVySUQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBQbGF0Zm9ybUxheWVyKHVpbnQ2NF90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggN2YzOGZkOWE3MGZhNWJj
MWVlZDNlOTFjNzBjYzRkZGQwZTBlNjJlYS4uNmFmZjBmZDRjMzk3YmJmMzg3MjJlM2JhMmJiNThj
NDg0YWE1YzU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTU0LDExICs1NCw2IEBAIHN0ZDo6dW5pcXVlX3B0cjxH
cmFwaGljc0xheWVyPiBHcmFwaGljc0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckZhY3Rvcnkq
IGZhY3RvCiAgICAgcmV0dXJuIGZhY3RvcnktPmNyZWF0ZUdyYXBoaWNzTGF5ZXIobGF5ZXJUeXBl
LCBjbGllbnQpOwogfQogCi1zdGF0aWMgQ29vcmRpbmF0ZWRMYXllcklEIHRvQ29vcmRpbmF0ZWRM
YXllcklEKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQotewotICAgIHJldHVybiBpczxDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI+KGxheWVyKSA/IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cj4oKmxheWVyKS5pZCgpIDogMDsKLX0KLQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
Om5vdGlmeUZsdXNoUmVxdWlyZWQoKQogewogICAgIGlmICghbV9jb29yZGluYXRvcikKQEAgLTcw
LDI3ICs2NSwyMSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6bm90aWZ5Rmx1c2hS
ZXF1aXJlZCgpCiAgICAgY2xpZW50KCkubm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAot
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUxheWVyU3RhdGUoKQotewot
ICAgIG1fc2hvdWxkU3luY0xheWVyU3RhdGUgPSB0cnVlOwotICAgIG5vdGlmeUZsdXNoUmVxdWly
ZWQoKTsKLX0KLQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUFuaW1h
dGlvbnMoKQogewotICAgIG1fc2hvdWxkU3luY0FuaW1hdGlvbnMgPSB0cnVlOworICAgIG1fbmlj
b3NpYS5kZWx0YS5hbmltYXRpb25zQ2hhbmdlZCA9IHRydWU7CiAgICAgbm90aWZ5Rmx1c2hSZXF1
aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlQ2hp
bGRyZW4oKQogewotICAgIG1fc2hvdWxkU3luY0NoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX25pY29z
aWEuZGVsdGEuY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsKICAgICBub3RpZnlGbHVzaFJlcXVpcmVk
KCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VGaWx0ZXJz
KCkKIHsKLSAgICBtX3Nob3VsZFN5bmNGaWx0ZXJzID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVs
dGEuZmlsdGVyc0NoYW5nZWQgPSB0cnVlOwogICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0K
IApAQCAtMTAwLDggKzg5LDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZFVw
ZGF0ZVRpbGVCdWZmZXJzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZXBhaW50Q291
bnQgPSBpbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKLSAgICBtX2xheWVyU3RhdGUucmVwYWludENv
dW50LmNvdW50ID0gcmVwYWludENvdW50OwotICAgIG1fbGF5ZXJTdGF0ZS5yZXBhaW50Q291bnRD
aGFuZ2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEucmVwYWludENvdW50ZXIuY291bnQgPSByZXBh
aW50Q291bnQ7CiAgICAgbV9uaWNvc2lhLmRlbHRhLnJlcGFpbnRDb3VudGVyQ2hhbmdlZCA9IHRy
dWU7CiB9CkBAIC0xMTcsNyArMTA0LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0KCkKIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OmRpZENoYW5nZUdlb21ldHJ5KCkKIHsKLSAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7
CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogICAgIHNldFNob3VsZFVwZGF0ZVZpc2libGVS
ZWN0KCk7CiB9CiAKQEAgLTEyNywyNSArMTE0LDIyIEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKFR5cGUgbGF5ZXJUeXBlLCBHcmFwaGljc0xheWVy
CiAgICAgLCBtX2lzUHVyZ2luZyhmYWxzZSkKICNlbmRpZgogICAgICwgbV9zaG91bGRVcGRhdGVW
aXNpYmxlUmVjdCh0cnVlKQotICAgICwgbV9zaG91bGRTeW5jTGF5ZXJTdGF0ZSh0cnVlKQotICAg
ICwgbV9zaG91bGRTeW5jQ2hpbGRyZW4odHJ1ZSkKLSAgICAsIG1fc2hvdWxkU3luY0ZpbHRlcnMo
dHJ1ZSkKLSAgICAsIG1fc2hvdWxkU3luY0FuaW1hdGlvbnModHJ1ZSkKICAgICAsIG1fbW92aW5n
VmlzaWJsZVJlY3QoZmFsc2UpCiAgICAgLCBtX3BlbmRpbmdDb250ZW50c1NjYWxlQWRqdXN0bWVu
dChmYWxzZSkKICAgICAsIG1fcGVuZGluZ1Zpc2libGVSZWN0QWRqdXN0bWVudChmYWxzZSkKLSNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCiAgICAgLCBtX3Nob3VsZFVwZGF0
ZVBsYXRmb3JtTGF5ZXIoZmFsc2UpCi0jZW5kaWYKICAgICAsIG1fY29vcmRpbmF0b3IoMCkKICAg
ICAsIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyKDApCiAgICAgLCBtX2FuaW1hdGlvblN0YXJ0
ZWRUaW1lcigqdGhpcywgJkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uU3RhcnRl
ZFRpbWVyRmlyZWQpCiB7Ci0gICAgc3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCBuZXh0TGF5ZXJJ
RCA9IDE7CisgICAgc3RhdGljIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXI6OkxheWVySUQgbmV4dExh
eWVySUQgPSAxOwogICAgIG1faWQgPSBuZXh0TGF5ZXJJRCsrOwogCiAgICAgbV9uaWNvc2lhLmxh
eWVyID0gTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6Y3JlYXRlKG1faWQsCiAgICAgICAgIE5p
Y29zaWE6OkNvbXBvc2l0aW9uTGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgp
KTsKKworICAgIC8vIEVuZm9yY2UgYSBjb21wbGV0ZSBmbHVzaCBvbiB0aGUgZmlyc3Qgb2NjYXNp
b24uCisgICAgbV9uaWNvc2lhLmRlbHRhLnZhbHVlID0gVUlOVF9NQVg7CiB9CiAKIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6fkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcigpCkBAIC0yMTksNyAr
MjAzLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmIHApCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dFBvc2l0aW9uKHApOwotICAgIG1fbGF5ZXJTdGF0ZS5wb3NpdGlvbkNoYW5nZWQgPSB0cnVlOwog
ICAgIG1fbmljb3NpYS5kZWx0YS5wb3NpdGlvbkNoYW5nZWQgPSB0cnVlOwogICAgIGRpZENoYW5n
ZUdlb21ldHJ5KCk7CiB9CkBAIC0yMzAsNyArMjEzLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnNldEFuY2hvclBvaW50KGNvbnN0IEZsb2F0UG9pbnQzRCYgcCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0QW5jaG9yUG9pbnQocCk7Ci0gICAgbV9s
YXllclN0YXRlLmFuY2hvclBvaW50Q2hhbmdlZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRlbHRh
LmFuY2hvclBvaW50Q2hhbmdlZCA9IHRydWU7CiAgICAgZGlkQ2hhbmdlR2VvbWV0cnkoKTsKIH0K
QEAgLTI0MSw3ICsyMjMsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2l6
ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNz
TGF5ZXI6OnNldFNpemUoc2l6ZSk7Ci0gICAgbV9sYXllclN0YXRlLnNpemVDaGFuZ2VkID0gdHJ1
ZTsKICAgICBtX25pY29zaWEuZGVsdGEuc2l6ZUNoYW5nZWQgPSB0cnVlOwogCiAgICAgaWYgKG1h
c2tMYXllcigpKQpAQCAtMjU1LDcgKzIzNiw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldFRyYW5zZm9ybSh0KTsKLSAgICBtX2xh
eWVyU3RhdGUudHJhbnNmb3JtQ2hhbmdlZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRlbHRhLnRy
YW5zZm9ybUNoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlR2VvbWV0cnkoKTsKQEAgLTI2
Nyw3ICsyNDcsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q2hpbGRyZW5U
cmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmCiAgICAgICAgIHJldHVybjsKIAog
ICAgIEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVuVHJhbnNmb3JtKHQpOwotICAgIG1fbGF5ZXJT
dGF0ZS5jaGlsZHJlblRyYW5zZm9ybUNoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5kZWx0
YS5jaGlsZHJlblRyYW5zZm9ybUNoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlR2VvbWV0
cnkoKTsKQEAgLTI3OSw4ICsyNTgsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0UHJlc2VydmVzM0QoYm9vbCBiKQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xh
eWVyOjpzZXRQcmVzZXJ2ZXMzRChiKTsKLSAgICBtX2xheWVyU3RhdGUucHJlc2VydmVzM0QgPSBi
OwotICAgIG1fbGF5ZXJTdGF0ZS5mbGFnc0NoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5k
ZWx0YS5mbGFnc0NoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlR2VvbWV0cnkoKTsKQEAg
LTI5MSw4ICsyNjgsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0TWFza3NU
b0JvdW5kcyhib29sIGIpCiAgICAgaWYgKG1hc2tzVG9Cb3VuZHMoKSA9PSBiKQogICAgICAgICBy
ZXR1cm47CiAgICAgR3JhcGhpY3NMYXllcjo6c2V0TWFza3NUb0JvdW5kcyhiKTsKLSAgICBtX2xh
eWVyU3RhdGUubWFza3NUb0JvdW5kcyA9IGI7Ci0gICAgbV9sYXllclN0YXRlLmZsYWdzQ2hhbmdl
ZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRlbHRhLmZsYWdzQ2hhbmdlZCA9IHRydWU7CiAKICAg
ICBkaWRDaGFuZ2VHZW9tZXRyeSgpOwpAQCAtMzAzLDExICsyNzgsOSBAQCB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0RHJhd3NDb250ZW50KGJvb2wgYikKICAgICBpZiAoZHJhd3ND
b250ZW50KCkgPT0gYikKICAgICAgICAgcmV0dXJuOwogICAgIEdyYXBoaWNzTGF5ZXI6OnNldERy
YXdzQ29udGVudChiKTsKLSAgICBtX2xheWVyU3RhdGUuZHJhd3NDb250ZW50ID0gYjsKLSAgICBt
X2xheWVyU3RhdGUuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEuZGVsdGEuZmxh
Z3NDaGFuZ2VkID0gdHJ1ZTsKIAotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKKyAgICBub3Rp
ZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRDb250ZW50c1Zpc2libGUoYm9vbCBiKQpAQCAtMzE1LDE0ICsyODgsMTIgQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVmlzaWJsZShib29sIGIpCiAgICAgaWYg
KGNvbnRlbnRzQXJlVmlzaWJsZSgpID09IGIpCiAgICAgICAgIHJldHVybjsKICAgICBHcmFwaGlj
c0xheWVyOjpzZXRDb250ZW50c1Zpc2libGUoYik7Ci0gICAgbV9sYXllclN0YXRlLmNvbnRlbnRz
VmlzaWJsZSA9IGI7Ci0gICAgbV9sYXllclN0YXRlLmZsYWdzQ2hhbmdlZCA9IHRydWU7CiAgICAg
bV9uaWNvc2lhLmRlbHRhLmZsYWdzQ2hhbmdlZCA9IHRydWU7CiAKICAgICBpZiAobWFza0xheWVy
KCkpCiAgICAgICAgIG1hc2tMYXllcigpLT5zZXRDb250ZW50c1Zpc2libGUoYik7CiAKLSAgICBk
aWRDaGFuZ2VMYXllclN0YXRlKCk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNPcGFxdWUoYm9vbCBiKQpA
QCAtMzMxLDggKzMwMiw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250
ZW50c09wYXF1ZShib29sIGIpCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzT3BhcXVlKGIpOwotICAgIG1fbGF5ZXJTdGF0ZS5jb250ZW50c09wYXF1ZSA9
IGI7Ci0gICAgbV9sYXllclN0YXRlLmZsYWdzQ2hhbmdlZCA9IHRydWU7CiAgICAgbV9uaWNvc2lh
LmRlbHRhLmZsYWdzQ2hhbmdlZCA9IHRydWU7CiAKICAgICAvLyBEZW1hbmQgYSByZXBhaW50IG9m
IHRoZSB3aG9sZSBsYXllci4KQEAgLTM0Myw3ICszMTIsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c2V0Q29udGVudHNPcGFxdWUoYm9vbCBiKQogICAgICAgICBhZGRSZXBhaW50
UmVjdCh7IHsgfSwgbV9zaXplIH0pOwogICAgIH0KIAotICAgIGRpZENoYW5nZUxheWVyU3RhdGUo
KTsKKyAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRCYWNrZmFjZVZpc2liaWxpdHkoYm9vbCBiKQpAQCAtMzUyLDExICszMjEs
OSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0QmFja2ZhY2VWaXNpYmlsaXR5
KGJvb2wgYikKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0QmFja2Zh
Y2VWaXNpYmlsaXR5KGIpOwotICAgIG1fbGF5ZXJTdGF0ZS5iYWNrZmFjZVZpc2libGUgPSBiOwot
ICAgIG1fbGF5ZXJTdGF0ZS5mbGFnc0NoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5kZWx0
YS5mbGFnc0NoYW5nZWQgPSB0cnVlOwogCi0gICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworICAg
IG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkKQEAgLTM2NSwxMSArMzMyLDkgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0T3BhY2l0eShvcGFjaXR5KTsKLSAg
ICBtX2xheWVyU3RhdGUub3BhY2l0eSA9IG9wYWNpdHk7Ci0gICAgbV9sYXllclN0YXRlLm9wYWNp
dHlDaGFuZ2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEuZGVsdGEub3BhY2l0eUNoYW5nZWQgPSB0
cnVlOwogCi0gICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZsdXNoUmVxdWly
ZWQoKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzUmVj
dChjb25zdCBGbG9hdFJlY3QmIHIpCkBAIC0zNzgsMTEgKzM0Myw5IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiByKQogICAg
ICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1JlY3Qocik7Ci0g
ICAgbV9sYXllclN0YXRlLmNvbnRlbnRzUmVjdCA9IHI7Ci0gICAgbV9sYXllclN0YXRlLmNvbnRl
bnRzUmVjdENoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5kZWx0YS5jb250ZW50c1JlY3RD
aGFuZ2VkID0gdHJ1ZTsKIAotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKKyAgICBub3RpZnlG
bHVzaFJlcXVpcmVkKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRD
b250ZW50c1RpbGVTaXplKGNvbnN0IEZsb2F0U2l6ZSYgcykKQEAgLTM5MSwxMCArMzU0LDggQEAg
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGlsZVNpemUoY29uc3Qg
RmxvYXRTaXplJiBzKQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRD
b250ZW50c1RpbGVTaXplKHMpOwotICAgIG1fbGF5ZXJTdGF0ZS5jb250ZW50c1RpbGVTaXplID0g
czsKLSAgICBtX2xheWVyU3RhdGUuY29udGVudHNUaWxpbmdDaGFuZ2VkID0gdHJ1ZTsKICAgICBt
X25pY29zaWEuZGVsdGEuY29udGVudHNUaWxpbmdDaGFuZ2VkID0gdHJ1ZTsKLSAgICBkaWRDaGFu
Z2VMYXllclN0YXRlKCk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgRmxvYXRT
aXplJiBwKQpAQCAtNDAzLDEwICszNjQsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgRmxvYXRTaXplJiBwKQogICAgICAgICByZXR1
cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZShwKTsKLSAgICBt
X2xheWVyU3RhdGUuY29udGVudHNUaWxlUGhhc2UgPSBwOwotICAgIG1fbGF5ZXJTdGF0ZS5jb250
ZW50c1RpbGluZ0NoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5kZWx0YS5jb250ZW50c1Rp
bGluZ0NoYW5nZWQgPSB0cnVlOwotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKKyAgICBub3Rp
ZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAKIGJvb2wgR3JhcGhpY3NMYXllcjo6c3VwcG9ydHNDb250
ZW50c1RpbGluZygpCkBAIC00NzYsMTEgKzQzNSw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fc29saWRDb2xvciA9IGNvbG9yOwotICAgIG1fbGF5ZXJTdGF0
ZS5zb2xpZENvbG9yID0gY29sb3I7Ci0gICAgbV9sYXllclN0YXRlLnNvbGlkQ29sb3JDaGFuZ2Vk
ID0gdHJ1ZTsKICAgICBtX25pY29zaWEuZGVsdGEuc29saWRDb2xvckNoYW5nZWQgPSB0cnVlOwog
Ci0gICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsK
IH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0JvcmRlcihi
b29sIHNob3cpCkBAIC00ODksMTIgKzQ0NiwxMyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wgc2hvdykKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgR3JhcGhpY3NMYXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKHNob3cpOwotICAgIG1fbGF5ZXJT
dGF0ZS5kZWJ1Z1Zpc3VhbHMuc2hvd0RlYnVnQm9yZGVycyA9IHNob3c7Ci0gICAgbV9sYXllclN0
YXRlLmRlYnVnVmlzdWFsc0NoYW5nZWQgPSB0cnVlOwogICAgIG1fbmljb3NpYS5kZWJ1Z0JvcmRl
ci52aXNpYmxlID0gc2hvdzsKICAgICBtX25pY29zaWEuZGVsdGEuZGVidWdCb3JkZXJDaGFuZ2Vk
ID0gdHJ1ZTsKIAotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKKyAgICBpZiAobV9uaWNvc2lh
LmRlYnVnQm9yZGVyLnZpc2libGUpCisgICAgICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwor
CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wgc2hvdykKQEAgLTUwMywxMiArNDYx
LDEwIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93UmVwYWludENvdW50
ZXIoYm9vbCBzaG93KQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRT
aG93UmVwYWludENvdW50ZXIoc2hvdyk7Ci0gICAgbV9sYXllclN0YXRlLnJlcGFpbnRDb3VudC5z
aG93UmVwYWludENvdW50ZXIgPSBzaG93OwotICAgIG1fbGF5ZXJTdGF0ZS5yZXBhaW50Q291bnRD
aGFuZ2VkID0gdHJ1ZTsKICAgICBtX25pY29zaWEucmVwYWludENvdW50ZXIudmlzaWJsZSA9IHNo
b3c7CiAgICAgbV9uaWNvc2lhLmRlbHRhLnJlcGFpbnRDb3VudGVyQ2hhbmdlZCA9IHRydWU7CiAK
LSAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwog
fQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdlKElt
YWdlKiBpbWFnZSkKQEAgLTUzNiwxNCArNDkyLDEwIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAKICAgICBsYXllci0+
c2V0U2l6ZShzaXplKCkpOwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zpc2libGUoY29udGVudHNB
cmVWaXNpYmxlKCkpOwotICAgIGF1dG8mIGNvb3JkaW5hdGVkTGF5ZXIgPSBkb3duY2FzdDxDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI+KCpsYXllcik7Ci0gICAgY29vcmRpbmF0ZWRMYXllci5kaWRD
aGFuZ2VMYXllclN0YXRlKCk7CiAKLSAgICBtX2xheWVyU3RhdGUubWFzayA9IGNvb3JkaW5hdGVk
TGF5ZXIuaWQoKTsKLSAgICBtX2xheWVyU3RhdGUubWFza0NoYW5nZWQgPSB0cnVlOwogICAgIG1f
bmljb3NpYS5kZWx0YS5tYXNrQ2hhbmdlZCA9IHRydWU7CiAKLSAgICBkaWRDaGFuZ2VMYXllclN0
YXRlKCk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiBib29sIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c2hvdWxkRGlyZWN0bHlDb21wb3NpdGVJbWFnZShJbWFnZSogaW1hZ2Up
IGNvbnN0CkBAIC01NjQsMTAgKzUxNiw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICAgICAgcmV0
dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIobGF5ZXIpOwot
ICAgIG1fbGF5ZXJTdGF0ZS5yZXBsaWNhID0gdG9Db29yZGluYXRlZExheWVySUQobGF5ZXIpOwot
ICAgIG1fbGF5ZXJTdGF0ZS5yZXBsaWNhQ2hhbmdlZCA9IHRydWU7CiAgICAgbV9uaWNvc2lhLmRl
bHRhLnJlcGxpY2FDaGFuZ2VkID0gdHJ1ZTsKLSAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cisg
ICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0TmVlZHNEaXNwbGF5KCkKQEAgLTU3OCw3ICs1MjgsNyBAQCB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0TmVlZHNEaXNwbGF5KCkKICAgICBtX25lZWRzRGlzcGxheS5j
b21wbGV0ZUxheWVyID0gdHJ1ZTsKICAgICBtX25lZWRzRGlzcGxheS5yZWN0cy5jbGVhcigpOwog
Ci0gICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsK
ICAgICBhZGRSZXBhaW50UmVjdCh7IHsgfSwgbV9zaXplIH0pOwogfQogCkBAIC02MDUsNyArNTU1
LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE5lZWRzRGlzcGxheUluUmVj
dChjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxSZWMKICAgICBlbHNlCiAgICAgICAgIHJlY3RzWzBd
LnVuaXRlKHJlY3QpOwogCi0gICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZs
dXNoUmVxdWlyZWQoKTsKICAgICBhZGRSZXBhaW50UmVjdChyZWN0KTsKIH0KIApAQCAtNjIzLDk0
ICs1NzMsMjAgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgICAgIGNoaWxkLT5mbHVzaENvbXBv
c2l0aW5nU3RhdGUocmVjdCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
eW5jQ2hpbGRyZW4oKQotewotICAgIGlmICghbV9zaG91bGRTeW5jQ2hpbGRyZW4pCi0gICAgICAg
IHJldHVybjsKLSAgICBtX3Nob3VsZFN5bmNDaGlsZHJlbiA9IGZhbHNlOwotICAgIG1fbGF5ZXJT
dGF0ZS5jaGlsZHJlbkNoYW5nZWQgPSB0cnVlOwotICAgIG1fbmljb3NpYS5kZWx0YS5jaGlsZHJl
bkNoYW5nZWQgPSB0cnVlOwotCi0gICAgbV9sYXllclN0YXRlLmNoaWxkcmVuLmNsZWFyKCk7Ci0g
ICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKCkpCi0gICAgICAgIG1fbGF5ZXJTdGF0ZS5j
aGlsZHJlbi5hcHBlbmQodG9Db29yZGluYXRlZExheWVySUQoY2hpbGQpKTsKLX0KLQotdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNGaWx0ZXJzKCkKLXsKLSAgICBpZiAoIW1fc2hv
dWxkU3luY0ZpbHRlcnMpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3Nob3VsZFN5bmNGaWx0ZXJz
ID0gZmFsc2U7Ci0KLSAgICBtX2xheWVyU3RhdGUuZmlsdGVycyA9IEdyYXBoaWNzTGF5ZXI6OmZp
bHRlcnMoKTsKLSAgICBtX2xheWVyU3RhdGUuZmlsdGVyc0NoYW5nZWQgPSB0cnVlOwotICAgIG1f
bmljb3NpYS5kZWx0YS5maWx0ZXJzQ2hhbmdlZCA9IHRydWU7Ci19Ci0KLXZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCi17Ci0gICAgaWYgKCFtX3Nob3VsZFN5
bmNMYXllclN0YXRlKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zaG91bGRTeW5jTGF5ZXJTdGF0
ZSA9IGZhbHNlOwotCi0gICAgbV9sYXllclN0YXRlLmNoaWxkcmVuVHJhbnNmb3JtID0gY2hpbGRy
ZW5UcmFuc2Zvcm0oKTsKLSAgICBtX2xheWVyU3RhdGUuY29udGVudHNSZWN0ID0gY29udGVudHNS
ZWN0KCk7Ci0gICAgbV9sYXllclN0YXRlLm1hc2sgPSB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChtYXNr
TGF5ZXIoKSk7Ci0gICAgbV9sYXllclN0YXRlLm9wYWNpdHkgPSBvcGFjaXR5KCk7Ci0gICAgbV9s
YXllclN0YXRlLnJlcGxpY2EgPSB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChyZXBsaWNhTGF5ZXIoKSk7
Ci0gICAgbV9sYXllclN0YXRlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybSgpOwotCi0gICAgbV9sYXll
clN0YXRlLmFuY2hvclBvaW50ID0gbV9hZGp1c3RlZEFuY2hvclBvaW50OwotICAgIG1fbGF5ZXJT
dGF0ZS5wb3MgPSBtX2FkanVzdGVkUG9zaXRpb247Ci0gICAgbV9sYXllclN0YXRlLnNpemUgPSBt
X2FkanVzdGVkU2l6ZTsKLQotICAgIGlmIChtX2xheWVyU3RhdGUuZmxhZ3NDaGFuZ2VkKSB7Ci0g
ICAgICAgIG1fbGF5ZXJTdGF0ZS5jb250ZW50c09wYXF1ZSA9IGNvbnRlbnRzT3BhcXVlKCk7Ci0g
ICAgICAgIG1fbGF5ZXJTdGF0ZS5kcmF3c0NvbnRlbnQgPSBkcmF3c0NvbnRlbnQoKTsKLSAgICAg
ICAgbV9sYXllclN0YXRlLmNvbnRlbnRzVmlzaWJsZSA9IGNvbnRlbnRzQXJlVmlzaWJsZSgpOwot
ICAgICAgICBtX2xheWVyU3RhdGUuYmFja2ZhY2VWaXNpYmxlID0gYmFja2ZhY2VWaXNpYmlsaXR5
KCk7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5tYXNrc1RvQm91bmRzID0gbWFza3NUb0JvdW5kcygp
OwotICAgICAgICBtX2xheWVyU3RhdGUucHJlc2VydmVzM0QgPSBwcmVzZXJ2ZXMzRCgpOwotICAg
IH0KLQotICAgIGlmIChtX2xheWVyU3RhdGUuZGVidWdWaXN1YWxzQ2hhbmdlZCkgewotICAgICAg
ICBtX2xheWVyU3RhdGUuZGVidWdWaXN1YWxzLnNob3dEZWJ1Z0JvcmRlcnMgPSBpc1Nob3dpbmdE
ZWJ1Z0JvcmRlcigpOwotICAgICAgICBpZiAobV9sYXllclN0YXRlLmRlYnVnVmlzdWFscy5zaG93
RGVidWdCb3JkZXJzKQotICAgICAgICAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7Ci0gICAg
fQotICAgIGlmIChtX2xheWVyU3RhdGUucmVwYWludENvdW50Q2hhbmdlZCkKLSAgICAgICAgbV9s
YXllclN0YXRlLnJlcGFpbnRDb3VudC5zaG93UmVwYWludENvdW50ZXIgPSBpc1Nob3dpbmdSZXBh
aW50Q291bnRlcigpOwotfQotCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0RGVi
dWdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCB3aWR0aCkKIHsKLSAgICBBU1NFUlQo
bV9sYXllclN0YXRlLmRlYnVnVmlzdWFscy5zaG93RGVidWdCb3JkZXJzKTsKLSAgICBpZiAobV9s
YXllclN0YXRlLmRlYnVnVmlzdWFscy5kZWJ1Z0JvcmRlckNvbG9yICE9IGNvbG9yKSB7Ci0gICAg
ICAgIG1fbGF5ZXJTdGF0ZS5kZWJ1Z1Zpc3VhbHMuZGVidWdCb3JkZXJDb2xvciA9IGNvbG9yOwot
ICAgICAgICBtX2xheWVyU3RhdGUuZGVidWdWaXN1YWxzQ2hhbmdlZCA9IHRydWU7CisgICAgQVNT
RVJUKG1fbmljb3NpYS5kZWJ1Z0JvcmRlci52aXNpYmxlKTsKKyAgICBpZiAobV9uaWNvc2lhLmRl
YnVnQm9yZGVyLmNvbG9yICE9IGNvbG9yKSB7CiAgICAgICAgIG1fbmljb3NpYS5kZWJ1Z0JvcmRl
ci5jb2xvciA9IGNvbG9yOwogICAgICAgICBtX25pY29zaWEuZGVsdGEuZGVidWdCb3JkZXJDaGFu
Z2VkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAobV9sYXllclN0YXRlLmRlYnVnVmlzdWFscy5k
ZWJ1Z0JvcmRlcldpZHRoICE9IHdpZHRoKSB7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5kZWJ1Z1Zp
c3VhbHMuZGVidWdCb3JkZXJXaWR0aCA9IHdpZHRoOwotICAgICAgICBtX2xheWVyU3RhdGUuZGVi
dWdWaXN1YWxzQ2hhbmdlZCA9IHRydWU7CisgICAgaWYgKG1fbmljb3NpYS5kZWJ1Z0JvcmRlci53
aWR0aCAhPSB3aWR0aCkgewogICAgICAgICBtX25pY29zaWEuZGVidWdCb3JkZXIud2lkdGggPSB3
aWR0aDsKICAgICAgICAgbV9uaWNvc2lhLmRlbHRhLmRlYnVnQm9yZGVyQ2hhbmdlZCA9IHRydWU7
CiAgICAgfQogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0FuaW1hdGlv
bnMoKQotewotICAgIGlmICghbV9zaG91bGRTeW5jQW5pbWF0aW9ucykKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV9zaG91bGRTeW5jQW5pbWF0aW9ucyA9IGZhbHNlOwotICAgIG1fbGF5ZXJTdGF0
ZS5hbmltYXRpb25zID0gbV9hbmltYXRpb25zLmdldEFjdGl2ZUFuaW1hdGlvbnMoKTsKLSAgICBt
X2xheWVyU3RhdGUuYW5pbWF0aW9uc0NoYW5nZWQgPSB0cnVlOwotICAgIG1fbmljb3NpYS5kZWx0
YS5hbmltYXRpb25zQ2hhbmdlZCA9IHRydWU7Ci19Ci0KIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjp1cGRhdGVQbGF0Zm9ybUxheWVyKCkKIHsKICAgICBpZiAoIW1fc2hvdWxkVXBkYXRl
UGxhdGZvcm1MYXllcikKQEAgLTczMywxNSArNjA5LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogICAgIC8v
IFNldHMgdGhlIHZhbHVlcy4KICAgICBjb21wdXRlUGl4ZWxBbGlnbm1lbnQobV9hZGp1c3RlZFBv
c2l0aW9uLCBtX2FkanVzdGVkU2l6ZSwgbV9hZGp1c3RlZEFuY2hvclBvaW50LCBtX3BpeGVsQWxp
Z25tZW50T2Zmc2V0KTsKIAotICAgIC8vIEZJWE1FOiB0aGlzIGlzIGNvbW1lbnRlZCBvdXQgdG8g
aW1tZWRpYXRlbHkgZGlzYWJsZSBhbnkgb2xkLXdheSBpbWFnZSB1cGRhdGVzLgotICAgIC8vIEl0
IHdpbGwgc29vbiBiZSByZW1vdmVkIGluIGEgbGFyZ2VyIGNsZWFudXAuCi0gICAgLy8gc3luY0lt
YWdlQmFja2luZygpOwotCi0gICAgc3luY0xheWVyU3RhdGUoKTsKLSAgICBzeW5jQW5pbWF0aW9u
cygpOwogICAgIGNvbXB1dGVUcmFuc2Zvcm1lZFZpc2libGVSZWN0KCk7Ci0gICAgc3luY0NoaWxk
cmVuKCk7Ci0gICAgc3luY0ZpbHRlcnMoKTsKICAgICB1cGRhdGVQbGF0Zm9ybUxheWVyKCk7CiAK
ICAgICAvLyBPbmx5IHVuc2V0IG1fbW92aW5nVmlzaWJsZVJlY3QgYWZ0ZXIgd2UgaGF2ZSB1cGRh
dGVkIHRoZSB2aXNpYmxlIHJlY3QgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBzdG9wcGVkLgpAQCAtODkz
LDEzICs3NjEsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzeW5jUGVuZGluZ1N0YXRlQ2hhbmdlc0luY2x1ZGluZ1N1YkxheWVycygpCiB7Ci0gICAg
Ly8gRklYTUU6IEZvciBub3cgdGhlIGJlc3Qgd2F5IGZvciBsYXllciBzdGF0ZSBjaGFuZ2VzIHRv
IHRyaWdnZXIgYW4gdXBkYXRlIGlzIHRvIHVzZQotICAgIC8vIHRoZSBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJDbGllbnQ6OnN5bmNMYXllclN0YXRlKCkgbWV0aG9kLiBUaGlzIHNob3VsZCBiZSBz
aW1wbGlmaWVkCi0gICAgLy8gb25jZSB0aGUgbV9sYXllclN0YXRlIG1lbWJlciBvYmplY3QgaXMg
cmVtb3ZlZC4KLSAgICBpZiAobV9uaWNvc2lhLnBlcmZvcm1MYXllclN5bmMgfHwgbV9sYXllclN0
YXRlLmhhc1BlbmRpbmdDaGFuZ2VzKCkpIHsKLSAgICAgICAgbV9jb29yZGluYXRvci0+c3luY0xh
eWVyU3RhdGUobV9pZCwgbV9sYXllclN0YXRlKTsKLSAgICAgICAgcmVzZXRMYXllclN0YXRlKCk7
Ci0gICAgfQorICAgIGlmIChtX25pY29zaWEucGVyZm9ybUxheWVyU3luYykKKyAgICAgICAgbV9j
b29yZGluYXRvci0+c3luY0xheWVyU3RhdGUoKTsKICAgICBtX25pY29zaWEucGVyZm9ybUxheWVy
U3luYyA9IGZhbHNlOwogCiAgICAgaWYgKG1hc2tMYXllcigpKQpAQCAtOTA5LDExICs3NzIsNiBA
QCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJ
bmNsdWRpbmdTdWJMYXllcnMoKQogICAgICAgICBkb3duY2FzdDxDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI+KCpjaGlsZCkuc3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXllcnMo
KTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlc2V0TGF5ZXJTdGF0ZSgp
Ci17Ci0gICAgbV9sYXllclN0YXRlLmNoYW5nZU1hc2sgPSAwOwotfQotCiB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKIHsKICAg
ICBpZiAoc2hvdWxkSGF2ZUJhY2tpbmdTdG9yZSgpKQpAQCAtMTA5Myw3ICs5NTEsNyBAQCB2b2lk
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKICAgICAgICAg
bV9uaWNvc2lhLmJhY2tpbmdTdG9yZSA9IG51bGxwdHI7CiAgICAgfQogCi0gICAgZGlkQ2hhbmdl
TGF5ZXJTdGF0ZSgpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvb3JkaW5hdG9yKENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudCogY29vcmRpbmF0b3IpCkBAIC0xMTIxLDcgKzk3OSw3IEBAIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb29yZGluYXRvckluY2x1ZGluZ1N1YkxheWVyc0lmTmVl
ZGVkKENvb3JkaW5hCiAgICAgLy8gZmxhZyB2YWx1ZSwgc28gdGhlIHNjZW5lIHdvbid0IHVwZGF0
ZSBpdCBhbmQgdGhlIGxheWVyIHdvbid0IGJlIHJlbmRlcmVkLgogICAgIC8vCiAgICAgLy8gV2Ug
bmVlZCB0byB1cGRhdGUgaGVyZSB0aGUgbGF5ZXIgY2hhbmdlTWFzayBzbyB0aGUgc2NlbmUgZ2V0
cyBhbGwgdGhlIGN1cnJlbnQgdmFsdWVzLgotICAgIG1fbGF5ZXJTdGF0ZS5jaGFuZ2VNYXNrID0g
VUlOVF9NQVg7CisgICAgbV9uaWNvc2lhLmRlbHRhLnZhbHVlID0gVUlOVF9NQVg7CiAKICAgICBj
b29yZGluYXRvci0+YXR0YWNoTGF5ZXIodGhpcyk7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNo
aWxkcmVuKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKaW5kZXggYzA3MzNhZTUwNWJlMDI0NWNkMjhjZjQ1NjhjZTg0MmNkNTEwMDg3
Ny4uM2I1ZWU5ZjU3MTFkMjEyM2NhMGNlNjhhYWNkYTEwMjRjMWNjNzU5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtNTAs
OCArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoTGF5ZXIoQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgTmljb3NpYTo6UGFpbnRp
bmdFbmdpbmUmIHBhaW50aW5nRW5naW5lKCkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHN5bmNM
YXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3Rh
dGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllclN0YXRlKCkgPSAwOwogfTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIDogcHVibGljIEdy
YXBoaWNzTGF5ZXIgewpAQCAtMTEyLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFBvaW50
IGNvbXB1dGVQb3NpdGlvblJlbGF0aXZlVG9CYXNlKCk7CiAgICAgdm9pZCBjb21wdXRlUGl4ZWxB
bGlnbm1lbnQoRmxvYXRQb2ludCYgcG9zaXRpb24sIEZsb2F0U2l6ZSYsIEZsb2F0UG9pbnQzRCYg
YW5jaG9yUG9pbnQsIEZsb2F0U2l6ZSYgYWxpZ25tZW50T2Zmc2V0KTsKIAotICAgIENvb3JkaW5h
dGVkTGF5ZXJJRCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBOaWNvc2lhOjpQbGF0
Zm9ybUxheWVyOjpMYXllcklEIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCiAgICAgSW50
UmVjdCB0cmFuc2Zvcm1lZFZpc2libGVSZWN0KCk7CiAKQEAgLTEzMSwyMyArMTMwLDE1IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgd2lk
dGgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VBbmltYXRpb25zKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VHZW9tZXRyeSgpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlQ2hpbGRyZW4oKTsKICAgICB2b2lkIGRpZENoYW5nZUZpbHRlcnMo
KTsKICAgICB2b2lkIGRpZFVwZGF0ZVRpbGVCdWZmZXJzKCk7CiAKLSAgICB2b2lkIHJlc2V0TGF5
ZXJTdGF0ZSgpOwotICAgIHZvaWQgc3luY0xheWVyU3RhdGUoKTsKLSAgICB2b2lkIHN5bmNBbmlt
YXRpb25zKCk7Ci0gICAgdm9pZCBzeW5jQ2hpbGRyZW4oKTsKLSAgICB2b2lkIHN5bmNGaWx0ZXJz
KCk7CiAgICAgdm9pZCBjb21wdXRlVHJhbnNmb3JtZWRWaXNpYmxlUmVjdCgpOwogICAgIHZvaWQg
dXBkYXRlQ29udGVudEJ1ZmZlcnMoKTsKIAotICAgIHZvaWQgcmVsZWFzZUltYWdlQmFja2luZ0lm
TmVlZGVkKCk7Ci0KICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIAogICAgIGJvb2wg
c2hvdWxkSGF2ZUJhY2tpbmdTdG9yZSgpIGNvbnN0OwpAQCAtMTYxLDggKzE1Miw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIGZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoY29uc3QgRmlsdGVyT3BlcmF0
aW9ucyYpIGNvbnN0OwogCi0gICAgQ29vcmRpbmF0ZWRMYXllcklEIG1faWQ7Ci0gICAgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgbV9sYXllclN0YXRlOworICAgIE5pY29zaWE6OlBsYXRm
b3JtTGF5ZXI6OkxheWVySUQgbV9pZDsKICAgICBHcmFwaGljc0xheWVyVHJhbnNmb3JtIG1fbGF5
ZXJUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9jYWNoZWRJbnZlcnNlVHJh
bnNmb3JtOwogICAgIEZsb2F0U2l6ZSBtX3BpeGVsQWxpZ25tZW50T2Zmc2V0OwpAQCAtMTc3LDE1
ICsxNjcsMTAgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVWaXNp
YmxlUmVjdDogMTsKICAgICBib29sIG1fc2hvdWxkU3luY0xheWVyU3RhdGU6IDE7Ci0gICAgYm9v
bCBtX3Nob3VsZFN5bmNDaGlsZHJlbjogMTsKLSAgICBib29sIG1fc2hvdWxkU3luY0ZpbHRlcnM6
IDE7Ci0gICAgYm9vbCBtX3Nob3VsZFN5bmNBbmltYXRpb25zOiAxOwogICAgIGJvb2wgbV9tb3Zp
bmdWaXNpYmxlUmVjdCA6IDE7CiAgICAgYm9vbCBtX3BlbmRpbmdDb250ZW50c1NjYWxlQWRqdXN0
bWVudCA6IDE7CiAgICAgYm9vbCBtX3BlbmRpbmdWaXNpYmxlUmVjdEFkanVzdG1lbnQgOiAxOwot
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKICAgICBib29sIG1fc2hvdWxk
VXBkYXRlUGxhdGZvcm1MYXllciA6IDE7Ci0jZW5kaWYKIAogICAgIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllckNsaWVudCogbV9jb29yZGluYXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCmluZGV4IDYyNDRhNjFkYWY4Yzk2MGFm
MjUxN2Q5NGI2YzMyZmRhODliY2JhZjkuLmJiOWU3OWQ2N2EyM2QwZGEwMTVkOWJmMTYyNjUxYTc0
MTRhMDM3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc1N0YXRlLmgKQEAgLTMwLDEyMSArMzAsMTQgQEAKIAogI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKIAotI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSAiRmlsdGVyT3BlcmF0
aW9ucy5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgot
I2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiTmlj
b3NpYUJ1ZmZlci5oIgotI2luY2x1ZGUgIk5pY29zaWFQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVk
ZSAiTmljb3NpYVNjZW5lLmgiCi0jaW5jbHVkZSAiU3VyZmFjZVVwZGF0ZUluZm8uaCIKLSNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmgiCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10eXBlZGVmIHVpbnQzMl90IENvb3Jk
aW5hdGVkTGF5ZXJJRDsKLWVudW0geyBJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEID0gMCB9Owot
Ci1zdHJ1Y3QgRGVidWdWaXN1YWxzIHsKLSAgICBDb2xvciBkZWJ1Z0JvcmRlckNvbG9yOwotICAg
IGZsb2F0IGRlYnVnQm9yZGVyV2lkdGggeyAwIH07Ci0gICAgYm9vbCBzaG93RGVidWdCb3JkZXJz
IHsgZmFsc2UgfTsKLX07Ci0KLXN0cnVjdCBSZXBhaW50Q291bnQgewotICAgIHVuc2lnbmVkIGNv
dW50IHsgMCB9OwotICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyIHsgZmFsc2UgfTsKLX07Ci0K
LXN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7Ci0gICAgdW5pb24gewotICAg
ICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgYm9vbCBwb3NpdGlvbkNoYW5nZWQ6IDE7Ci0gICAg
ICAgICAgICBib29sIGFuY2hvclBvaW50Q2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgc2l6
ZUNoYW5nZWQ6IDE7Ci0gICAgICAgICAgICBib29sIHRyYW5zZm9ybUNoYW5nZWQ6IDE7Ci0gICAg
ICAgICAgICBib29sIGNoaWxkcmVuVHJhbnNmb3JtQ2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJv
b2wgY29udGVudHNSZWN0Q2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgb3BhY2l0eUNoYW5n
ZWQ6IDE7Ci0gICAgICAgICAgICBib29sIHNvbGlkQ29sb3JDaGFuZ2VkOiAxOwotICAgICAgICAg
ICAgYm9vbCBkZWJ1Z1Zpc3VhbHNDaGFuZ2VkOiAxOwotICAgICAgICAgICAgYm9vbCByZXBsaWNh
Q2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgbWFza0NoYW5nZWQ6IDE7Ci0gICAgICAgICAg
ICBib29sIGZsYWdzQ2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgYW5pbWF0aW9uc0NoYW5n
ZWQ6IDE7Ci0gICAgICAgICAgICBib29sIGZpbHRlcnNDaGFuZ2VkOiAxOwotICAgICAgICAgICAg
Ym9vbCBjaGlsZHJlbkNoYW5nZWQ6IDE7Ci0gICAgICAgICAgICBib29sIHJlcGFpbnRDb3VudENo
YW5nZWQgOiAxOwotICAgICAgICAgICAgYm9vbCBpc1Njcm9sbGFibGVDaGFuZ2VkOiAxOwotICAg
ICAgICAgICAgYm9vbCBjb250ZW50c1RpbGluZ0NoYW5nZWQ6IDE7Ci0gICAgICAgIH07Ci0gICAg
ICAgIHVuc2lnbmVkIGNoYW5nZU1hc2s7Ci0gICAgfTsKLSAgICB1bmlvbiB7Ci0gICAgICAgIHN0
cnVjdCB7Ci0gICAgICAgICAgICBib29sIGNvbnRlbnRzT3BhcXVlIDogMTsKLSAgICAgICAgICAg
IGJvb2wgZHJhd3NDb250ZW50IDogMTsKLSAgICAgICAgICAgIGJvb2wgY29udGVudHNWaXNpYmxl
IDogMTsKLSAgICAgICAgICAgIGJvb2wgYmFja2ZhY2VWaXNpYmxlIDogMTsKLSAgICAgICAgICAg
IGJvb2wgbWFza3NUb0JvdW5kcyA6IDE7Ci0gICAgICAgICAgICBib29sIHByZXNlcnZlczNEIDog
MTsKLSAgICAgICAgICAgIGJvb2wgaXNTY3JvbGxhYmxlOiAxOwotICAgICAgICB9OwotICAgICAg
ICB1bnNpZ25lZCBmbGFnczsKLSAgICB9OwotCi0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
U3RhdGUoKQotICAgICAgICA6IGNoYW5nZU1hc2soMCkKLSAgICAgICAgLCBjb250ZW50c09wYXF1
ZShmYWxzZSkKLSAgICAgICAgLCBkcmF3c0NvbnRlbnQoZmFsc2UpCi0gICAgICAgICwgY29udGVu
dHNWaXNpYmxlKHRydWUpCi0gICAgICAgICwgYmFja2ZhY2VWaXNpYmxlKHRydWUpCi0gICAgICAg
ICwgbWFza3NUb0JvdW5kcyhmYWxzZSkKLSAgICAgICAgLCBwcmVzZXJ2ZXMzRChmYWxzZSkKLSAg
ICAgICAgLCBpc1Njcm9sbGFibGUoZmFsc2UpCi0gICAgICAgICwgb3BhY2l0eSgwKQotICAgICAg
ICAsIHJlcGxpY2EoSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKLSAgICAgICAgLCBtYXNrKElu
dmFsaWRDb29yZGluYXRlZExheWVySUQpCi0gICAgewotICAgIH0KLQotICAgIEZsb2F0UG9pbnQg
cG9zOwotICAgIEZsb2F0UG9pbnQzRCBhbmNob3JQb2ludDsKLSAgICBGbG9hdFNpemUgc2l6ZTsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07Ci0gICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggY2hpbGRyZW5UcmFuc2Zvcm07Ci0gICAgRmxvYXRSZWN0IGNvbnRlbnRzUmVjdDsKLSAg
ICBGbG9hdFNpemUgY29udGVudHNUaWxlUGhhc2U7Ci0gICAgRmxvYXRTaXplIGNvbnRlbnRzVGls
ZVNpemU7Ci0gICAgZmxvYXQgb3BhY2l0eTsKLSAgICBDb2xvciBzb2xpZENvbG9yOwotICAgIEZp
bHRlck9wZXJhdGlvbnMgZmlsdGVyczsKLSAgICBUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyBhbmlt
YXRpb25zOwotICAgIFZlY3Rvcjx1aW50MzJfdD4gY2hpbGRyZW47Ci0gICAgQ29vcmRpbmF0ZWRM
YXllcklEIHJlcGxpY2E7Ci0gICAgQ29vcmRpbmF0ZWRMYXllcklEIG1hc2s7Ci0gICAgRGVidWdW
aXN1YWxzIGRlYnVnVmlzdWFsczsKLSAgICBSZXBhaW50Q291bnQgcmVwYWludENvdW50OwotCi0g
ICAgYm9vbCBoYXNQZW5kaW5nQ2hhbmdlcygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
Y2hhbmdlTWFzazsKLSAgICB9Ci19OwotCiBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRl
IHsKICAgICBzdHJ1Y3QgTmljb3NpYVN0YXRlIHsKICAgICAgICAgUmVmUHRyPE5pY29zaWE6OlNj
ZW5lPiBzY2VuZTsKICAgICB9IG5pY29zaWE7Ci0KLSAgICB1aW50MzJfdCByb290Q29tcG9zaXRp
bmdMYXllcjsKLQotICAgIFZlY3RvcjxDb29yZGluYXRlZExheWVySUQ+IGxheWVyc1RvQ3JlYXRl
OwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q29vcmRpbmF0ZWRMYXllcklELCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZT4+IGxheWVyc1RvVXBkYXRlOwotICAgIFZlY3RvcjxDb29yZGluYXRl
ZExheWVySUQ+IGxheWVyc1RvUmVtb3ZlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCmluZGV4IDU2OTI2YTJmNGI2
OWNkODg5NDNiYjhlMWNiOGIwOWMwZGE3ODJhODIuLjJmZTY2YWViN2MyNzdmNmFmYWU1ZTBmNjI1
Y2IyMTM3NzU3NDIxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5j
cHAKQEAgLTQ0OSw3ICs0NDksNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cHVy
Z2VHTFJlc291cmNlcygpCiAgICAgfQogCiAgICAgbV9yb290TGF5ZXIgPSBudWxscHRyOwotICAg
IG1fcm9vdExheWVySUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEOworICAgIG1fcm9vdExh
eWVySUQgPSAwOwogICAgIG1fdGV4dHVyZU1hcHBlciA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4IDQwYjhiNjMxMTBlOTlmYjI0ZTMwNzQ5
YmNlYWEwMjljZjBmM2I5OGUuLmQ0YmI1ODI2OGZlNzUyMjE2MTM4ZDU2NDExN2I0Yjc2ZWM4YTlm
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVN
YXBwZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmg+CkBAIC0xMTEsNyAr
MTEyLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyTGF5ZXI+IG1fcm9vdExheWVyOwogCi0gICAgV2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXll
cklEIG1fcm9vdExheWVySUQgeyBXZWJDb3JlOjpJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEIH07
CisgICAgTmljb3NpYTo6UGxhdGZvcm1MYXllcjo6TGF5ZXJJRCBtX3Jvb3RMYXllcklEIHsgMCB9
OwogICAgIFdlYkNvcmU6OkNvbG9yIG1fdmlld0JhY2tncm91bmRDb2xvciB7IFdlYkNvcmU6OkNv
bG9yOjp3aGl0ZSB9OwogCiAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckZQU0NvdW50ZXIgbV9m
cHNDb3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdD
b29yZGluYXRvci5jcHAKaW5kZXggZWIwYTBlMWYzOGU2YzM2OGQ3ZGNiYzM1MTFlY2ViMWM1MzM5
MjkxNi4uMzZkNTJiNjFiOGNjOTJhYWJjYjU3NjNiN2FiMzkyMWMzM2Q4ZGQzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC0xNjEsOCArMTYxLDYgQEAgYm9vbCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpmbHVzaFBlbmRp
bmdMYXllckNoYW5nZXMoKQogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgbV9jbGllbnQuY29t
bWl0U2NlbmVTdGF0ZShtX3N0YXRlKTsKLQotICAgICAgICBjbGVhclBlbmRpbmdTdGF0ZUNoYW5n
ZXMoKTsKICAgICAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSBmYWxzZTsKICAgICB9CiAKQEAgLTE4
OSwxMyArMTg3LDYgQEAgZG91YmxlIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5leHRBbmltYXRp
b25TZXJ2aWNlVGltZSgpIGNvbnN0CiAgICAgcmV0dXJuIHN0ZDo6bWF4PGRvdWJsZT4oMC4sIE1p
bmltYWxUaW1lb3V0Rm9yQW5pbWF0aW9ucyAtIHRpbWVzdGFtcCgpICsgbV9sYXN0QW5pbWF0aW9u
U2VydmljZVRpbWUpOwogfQogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNsZWFyUGVu
ZGluZ1N0YXRlQ2hhbmdlcygpCi17Ci0gICAgbV9zdGF0ZS5sYXllcnNUb0NyZWF0ZS5jbGVhcigp
OwotICAgIG1fc3RhdGUubGF5ZXJzVG9VcGRhdGUuY2xlYXIoKTsKLSAgICBtX3N0YXRlLmxheWVy
c1RvUmVtb3ZlLmNsZWFyKCk7Ci19Ci0KIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6aW5p
dGlhbGl6ZVJvb3RDb21wb3NpdGluZ0xheWVySWZOZWVkZWQoKQogewogICAgIGlmIChtX2RpZElu
aXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcikKQEAgLTIwMyw3ICsxOTQsNiBAQCB2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OmluaXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcklmTmVl
ZGVkKCkKIAogICAgIGF1dG8mIHJvb3RMYXllciA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcj4oKm1fcm9vdExheWVyKTsKICAgICBtX25pY29zaWEuc3RhdGUucm9vdExheWVyID0g
cm9vdExheWVyLmNvbXBvc2l0aW9uTGF5ZXIoKTsKLSAgICBtX3N0YXRlLnJvb3RDb21wb3NpdGlu
Z0xheWVyID0gcm9vdExheWVyLmlkKCk7CiAgICAgbV9kaWRJbml0aWFsaXplUm9vdENvbXBvc2l0
aW5nTGF5ZXIgPSB0cnVlOwogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKIH0KQEAgLTIy
MCwxMCArMjEwLDkgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVSb290TGF5
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZShzaXplKTsK
IH0KIAotdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZShDb29yZGlu
YXRlZExheWVySUQgaWQsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3Zv
aWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUoKQogewogICAgIG1fc2hv
dWxkU3luY0ZyYW1lID0gdHJ1ZTsKLSAgICBtX3N0YXRlLmxheWVyc1RvVXBkYXRlLmFwcGVuZChz
dGQ6Om1ha2VfcGFpcihpZCwgc3RhdGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQpAQCAtMjQ4LDcg
KzIzNyw2IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3Jk
aW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoCiAgICAgbGF5ZXItPnNldENvb3JkaW5h
dG9yKHRoaXMpOwogICAgIG1fbmljb3NpYS5zdGF0ZS5sYXllcnMuYWRkKGxheWVyLT5jb21wb3Np
dGlvbkxheWVyKCkpOwogICAgIG1fcmVnaXN0ZXJlZExheWVycy5hZGQobGF5ZXItPmlkKCksIGxh
eWVyKTsKLSAgICBtX3N0YXRlLmxheWVyc1RvQ3JlYXRlLmFwcGVuZChsYXllci0+aWQoKSk7CiAg
ICAgbGF5ZXItPnNldE5lZWRzVmlzaWJsZVJlY3RBZGp1c3RtZW50KCk7CiAgICAgbm90aWZ5Rmx1
c2hSZXF1aXJlZChsYXllcik7CiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPihsYXllcik7CkBAIC0yODksMTQgKzI3Nyw2IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGlu
YXRvcjo6ZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllcikKIAogICAg
IG1fbmljb3NpYS5zdGF0ZS5sYXllcnMucmVtb3ZlKGxheWVyLT5jb21wb3NpdGlvbkxheWVyKCkp
OwogICAgIG1fcmVnaXN0ZXJlZExheWVycy5yZW1vdmUobGF5ZXItPmlkKCkpOwotCi0gICAgc2l6
ZV90IGluZGV4ID0gbV9zdGF0ZS5sYXllcnNUb0NyZWF0ZS5maW5kKGxheWVyLT5pZCgpKTsKLSAg
ICBpZiAoaW5kZXggIT0gbm90Rm91bmQpIHsKLSAgICAgICAgbV9zdGF0ZS5sYXllcnNUb0NyZWF0
ZS5yZW1vdmUoaW5kZXgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9zdGF0ZS5s
YXllcnNUb1JlbW92ZS5hcHBlbmQobGF5ZXItPmlkKCkpOwogICAgIG5vdGlmeUZsdXNoUmVxdWly
ZWQobGF5ZXIpOwogfQogCkBAIC0zMDUsNyArMjg1LDYgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3Jk
aW5hdG9yOjphdHRhY2hMYXllcihDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAg
IGxheWVyLT5zZXRDb29yZGluYXRvcih0aGlzKTsKICAgICBtX25pY29zaWEuc3RhdGUubGF5ZXJz
LmFkZChsYXllci0+Y29tcG9zaXRpb25MYXllcigpKTsKICAgICBtX3JlZ2lzdGVyZWRMYXllcnMu
YWRkKGxheWVyLT5pZCgpLCBsYXllcik7Ci0gICAgbV9zdGF0ZS5sYXllcnNUb0NyZWF0ZS5hcHBl
bmQobGF5ZXItPmlkKCkpOwogICAgIGxheWVyLT5zZXROZWVkc1Zpc2libGVSZWN0QWRqdXN0bWVu
dCgpOwogICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQobGF5ZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3Np
dGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaAppbmRleCA5ODdhOTEyMzNm
MDA2OTk0NzljYzllMTM5ZDMyMmY2NjNiYTI2M2E0Li42YmE4NWYxZTRmM2I0NThlZjE3NDk2ZWE3
NWJkYjhjNzI2NTI0ZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBv
c2l0aW5nQ29vcmRpbmF0b3IuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NMYXllckZhY3RvcnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05pY29zaWFCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05pY29z
aWFQbGF0Zm9ybUxheWVyLmg+CiAKIG5hbWVzcGFjZSBOaWNvc2lhIHsKIGNsYXNzIFBhaW50aW5n
RW5naW5lOwpAQCAtOTksMTMgKzEwMCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGV0YWNoTGF5
ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBhdHRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlk
ZTsKICAgICBOaWNvc2lhOjpQYWludGluZ0VuZ2luZSYgcGFpbnRpbmdFbmdpbmUoKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHN5bmNMYXllclN0YXRlKFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCwg
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHN5bmNMYXllclN0YXRlKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBHcmFwaGljc0xheWVyRmFj
dG9yeQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVH
cmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlR5cGUsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDbGllbnQmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVJvb3RDb21w
b3NpdGluZ0xheWVySWZOZWVkZWQoKTsKLSAgICB2b2lkIGNsZWFyUGVuZGluZ1N0YXRlQ2hhbmdl
cygpOwogCiAgICAgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKIApAQCAtMTI0LDcgKzEyNCw3
IEBAIHByaXZhdGU6CiAgICAgfSBtX25pY29zaWE7CiAgICAgV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc1N0YXRlIG1fc3RhdGU7CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OkNvb3JkaW5hdGVk
TGF5ZXJJRCwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4gbV9yZWdpc3RlcmVk
TGF5ZXJzOworICAgIEhhc2hNYXA8Tmljb3NpYTo6UGxhdGZvcm1MYXllcjo6TGF5ZXJJRCwgV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4gbV9yZWdpc3RlcmVkTGF5ZXJzOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPE5pY29zaWE6OlBhaW50aW5nRW5naW5lPiBtX3BhaW50aW5nRW5n
aW5lOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>