<?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>195554</bug_id>
          
          <creation_ts>2019-03-11 07:36:15 -0700</creation_ts>
          <short_desc>Add web audio release logging</short_desc>
          <delta_ts>2019-03-11 13:19:57 -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>Web Audio</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1514761</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-03-11 07:36:15 -0700</bug_when>
    <thetext>Add some web audio release logging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514769</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-11 08:04:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/48767211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514837</commentid>
    <comment_count>2</comment_count>
      <attachid>364265</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-03-11 10:13:36 -0700</bug_when>
    <thetext>Created attachment 364265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514840</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-11 10:16:12 -0700</bug_when>
    <thetext>Attachment 364265 did not pass style-queue:


ERROR: Source/WebCore/Modules/webaudio/AudioNode.cpp:69:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 28 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>1514964</commentid>
    <comment_count>4</comment_count>
      <attachid>364265</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-11 13:19:55 -0700</bug_when>
    <thetext>Comment on attachment 364265
Patch

Clearing flags on attachment: 364265

Committed r242734: &lt;https://trac.webkit.org/changeset/242734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514965</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-11 13:19:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364265</attachid>
            <date>2019-03-11 10:13:36 -0700</date>
            <delta_ts>2019-03-11 13:19:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195554-20190311101335.patch</filename>
            <type>text/plain</type>
            <size>54248</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhhMWMyMjUwMzBjNmIx
YWRhM2E4YTU5YzNhNDA2YTUyNWRlODg3MC4uZjkzMmMxOTAxOGQ1ZTM2OTlmM2Y3ZGRkNjRkNTNm
ZGZmYTgyY2VmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAxOS0wMy0xMSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgd2ViIGF1
ZGlvIHJlbGVhc2UgbG9nZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk1NTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODc2NzIxMT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIG5vIGZ1bmN0aW9uYWwgY2hhbmdlLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Jhc2lj
SW5zcGVjdG9yTm9kZTo6QXVkaW9CYXNpY0luc3BlY3Rvck5vZGUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRQbGF5aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0TG9nSWRlbnRp
Zmllcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OnVuaW5pdGlhbGl6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0NvbnRleHQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250
ZXh0OjpjcmVhdGVCdWZmZXJTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpjcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250
ZXh0OjpjcmVhdGVNZWRpYVN0cmVhbVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Nv
bnRleHQ6OmNyZWF0ZVNjcmlwdFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Nv
bnRleHQ6OmNyZWF0ZUJpcXVhZEZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRl
eHQ6OmNyZWF0ZVdhdmVTaGFwZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0Ojpj
cmVhdGVQYW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpjcmVhdGVDb252
b2x2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpjcmVhdGVEeW5hbWljc0Nv
bXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpjcmVhdGVBbmFseXNl
cik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNyZWF0ZUdhaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpjcmVhdGVEZWxheSk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0NvbnRleHQ6OmNyZWF0ZUNoYW5uZWxTcGxpdHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0NvbnRleHQ6OmNyZWF0ZUNoYW5uZWxNZXJnZXIpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Db250ZXh0OjpjcmVhdGVPc2NpbGxhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29u
dGV4dDo6d2lsbEJlZ2luUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpzdGFydFJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmZpcmVD
b21wbGV0aW9uRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0Ojpsb2dDaGFu
bmVsIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpuZXh0QXVkaW9Ob2RlTG9nSWRlbnRpZmll
cik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6Om5leHRBdWRpb1BhcmFtZXRlckxv
Z0lkZW50aWZpZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk5vZGU6OkF1ZGlv
RGVzdGluYXRpb25Ob2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OkF1ZGlvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb05vZGU6On5BdWRpb05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpzZXRO
b2RlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmFkZElucHV0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6YWRkT3V0cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvTm9kZTo6Y29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmRpc2Nvbm5l
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvTm9kZTo6c2V0Q2hhbm5lbEludGVycHJldGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvTm9kZTo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29y
ZTo6QXVkaW9Ob2RlOjpOb2RlVHlwZT46OnRvU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6QXVk
aW9QYXJhbSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpzZXRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvUGFyYW06OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6bG9n
Q2hhbm5lbCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0b3ApOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCaXF1YWRGaWx0ZXJOb2RlOjpCaXF1YWRGaWx0ZXJOb2RlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0NoYW5uZWxNZXJnZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
YW5uZWxNZXJnZXJOb2RlOjpDaGFubmVsTWVyZ2VyTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9DaGFubmVsU3BsaXR0ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5u
ZWxTcGxpdHRlck5vZGU6OkNoYW5uZWxTcGxpdHRlck5vZGUpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJO
b2RlOjpDb252b2x2ZXJOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlOjp1bmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJbnB1dCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnNldENoYW5uZWxDb3VudCk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9EZWxheU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVs
YXlOb2RlOjpEZWxheU5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3ND
b21wcmVzc29yTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljc0NvbXByZXNzb3JO
b2RlOjpEeW5hbWljc0NvbXByZXNzb3JOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0dhaW5Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhaW5Ob2RlOjpHYWluTm9kZSk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok9zY2lsbGF0b3JOb2RlOjpzZXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok9z
Y2lsbGF0b3JOb2RlOjpzZXRQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vT3NjaWxsYXRvck5vZGUuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29yZTo6
T3NjaWxsYXRvck5vZGU6OlR5cGU+Ojp0b1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9QYW5uZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OlBhbm5l
ck5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9jZXNzb3JOb2RlOjpTY3JpcHRQcm9jZXNz
b3JOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldhdmVTaGFwZXJOb2RlOjpXYXZlU2hhcGVyTm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyTm9kZTo6c2V0Q3VydmUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2F2ZVNoYXBlck5vZGU6OnNldE92ZXJzYW1wbGUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vV2F2ZVNoYXBlck5vZGUuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29y
ZTo6V2F2ZVNoYXBlck5vZGU6Ok92ZXJTYW1wbGVUeXBlPjo6dG9TdHJpbmcpOgorCiAyMDE5LTAz
LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNo
YXJlIG1vcmUgY29kZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBmcmFtZSBzY3JvbGxpbmcgbm9kZXMs
IGZpeGluZyBvdmVyZmxvdyBzY3JvbGxiYXIgZGlzcGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcApp
bmRleCAwNTViZmY1ZjFlYmFhMWIyYmU1YTdjNDQwZWUwOWYzYjE3OGI5YzFmLi43Njg2NDRiMWE4
ZjU1NzM1M2YxMjRjM2NmMGU0MDQxMWExMjUwNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcApA
QCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBBdWRpb0Jhc2ljSW5zcGVjdG9y
Tm9kZTo6QXVkaW9CYXNpY0luc3BlY3Rvck5vZGUoQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9h
dCBzYW1wbGVSYXRlLCB1bnNpZ25lZCBvdXRwdXRDaGFubmVsQ291bnQpCiAgICAgOiBBdWRpb05v
ZGUoY29udGV4dCwgc2FtcGxlUmF0ZSkKIHsKKyAgICBzZXROb2RlVHlwZShOb2RlVHlwZUJhc2lj
SW5zcGVjdG9yKTsKICAgICBhZGRJbnB1dChzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvTm9kZUlucHV0
Pih0aGlzKSk7CiAgICAgYWRkT3V0cHV0KHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9Ob2RlT3V0cHV0
Pih0aGlzLCBvdXRwdXRDaGFubmVsQ291bnQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRleCBi
OGE3NDAxNWViNWQzYzA4ZGZmNDU2ZWQzYjlhYzc2ZjNkYTk2ZWUwLi4xZDIxNGI5Njg1ZjEyMTk5
ZTQyMzdlNzM2YWEyM2NjZDYwMTlkMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC00MDcsNyAr
NDA3LDggQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnJlc2V0KCkKIHZvaWQgQXVkaW9C
dWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIoUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIGJ1ZmZlcikK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIAorICAgIERFQlVHX0xPRyhMT0dJ
REVOVElGSUVSKTsKKwogICAgIC8vIFRoZSBjb250ZXh0IG11c3QgYmUgbG9ja2VkIHNpbmNlIGNo
YW5naW5nIHRoZSBidWZmZXIgY2FuIHJlLWNvbmZpZ3VyZSB0aGUgbnVtYmVyIG9mIGNoYW5uZWxz
IHRoYXQgYXJlIG91dHB1dC4KICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExv
Y2tlcihjb250ZXh0KCkpOwogICAgIApAQCAtNDUxLDYgKzQ1Miw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFp
bk9mZnNldCwKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRQ
bGF5aW5nKEJ1ZmZlclBsYXliYWNrTW9kZSBwbGF5YmFja01vZGUsIGRvdWJsZSB3aGVuLCBkb3Vi
bGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAid2hlbiA9ICIsIHdo
ZW4sICIsIG9mZnNldCA9ICIsIGdyYWluT2Zmc2V0LCAiLCBkdXJhdGlvbiA9ICIsIGdyYWluRHVy
YXRpb24pOwogCiAgICAgY29udGV4dCgpLm5vZGVXaWxsQmVnaW5QbGF5YmFjaygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXgg
NDFlMjUxMTVhOWM0OTZkZDM5MjBlY2M3Yjc4YWYwYWUzNzEyZjRkOS4uZDg3NGVjMmY0ZjhhZGM2
NmM1NDZiYzJlYjAxYWIxZTg4NTUxZmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMTA2LDYgKzEwNiwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikg
UkVMRUFTRV9MT0dfSUYoZG9jdW1lbnQoKS0+cGFnZSgpICYmIGRvY3VtZW50KCktPnBhZ2UoKS0+
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE1lZGlhLCAiJXAgLSBBdWRpb0NvbnRleHQ6OiIg
Zm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQogICAgIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAorc3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJZGVudGlmaWVyKCkKK3sKKyAgICBzdGF0aWMg
dWludDY0X3QgbG9nSWRlbnRpZmllciA9IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyKCk7
CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KCsrbG9nSWRlbnRpZmll
cik7Cit9CisjZW5kaWYKKwogYm9vbCBBdWRpb0NvbnRleHQ6OmlzU2FtcGxlUmF0ZVJhbmdlR29v
ZChmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIGlm
IHRoZSBtaW5pbXVtIHNhbXBsZS1yYXRlIGNvdWxkIGJlIGxlc3MgdGhhbiA0NC4xS0h6LApAQCAt
MTMxLDYgKzEzOSwxMCBAQCBSZWZQdHI8QXVkaW9Db250ZXh0PiBBdWRpb0NvbnRleHQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAvLyBDb25zdHJ1Y3RvciBmb3IgcmVuZGVyaW5nIHRvIHRo
ZSBhdWRpbyBoYXJkd2FyZS4KIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50JiBk
b2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKKyNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKGRvY3VtZW50LmxvZ2dlcigpKQorICAgICwgbV9s
b2dJZGVudGlmaWVyKG5leHRMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKICAgICAsIG1fbWVkaWFT
ZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9ldmVu
dFF1ZXVlKHN0ZDo6bWFrZV91bmlxdWU8R2VuZXJpY0V2ZW50UXVldWU+KCp0aGlzKSkKIHsKQEAg
LTE0NSw2ICsxNTcsMTAgQEAgQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRv
Y3VtZW50KQogLy8gQ29uc3RydWN0b3IgZm9yIG9mZmxpbmUgKG5vbi1yZWFsdGltZSkgcmVuZGVy
aW5nLgogQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNp
Z25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBs
ZVJhdGUpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCisjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKKyAgICAsIG1fbG9n
SWRlbnRpZmllcihuZXh0TG9nSWRlbnRpZmllcigpKQorI2VuZGlmCiAgICAgLCBtX2lzT2ZmbGlu
ZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9ldmVudFF1ZXVlKHN0ZDo6bWFrZV91bmlxdWU8R2Vu
ZXJpY0V2ZW50UXVldWU+KCp0aGlzKSkKQEAgLTI0MCw2ICsyNTYsOCBAQCB2b2lkIEF1ZGlvQ29u
dGV4dDo6Y2xlYXIoKQogCiB2b2lkIEF1ZGlvQ29udGV4dDo6dW5pbml0aWFsaXplKCkKIHsKKyAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIAogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKICAgICBpZiAoIW1faXNJbml0aWFsaXplZCkKQEAgLTMwMyw2ICszMjEsOCBAQCB2
b2lkIEF1ZGlvQ29udGV4dDo6c2V0U3RhdGUoU3RhdGUgc3RhdGUpCiAKIHZvaWQgQXVkaW9Db250
ZXh0OjpzdG9wKCkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIAogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICAvLyBVc3VhbGx5IFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQgY2FsbHMgc3RvcCB0d2ljZS4KQEAgLTQxMyw2ICs0MzMsOCBAQCB2b2lkIEF1ZGlv
Q29udGV4dDo6ZGVjb2RlQXVkaW9EYXRhKFJlZjxBcnJheUJ1ZmZlcj4mJiBhdWRpb0RhdGEsIFJl
ZlB0cjxBdWRpb0J1ZgogCiBSZWY8QXVkaW9CdWZmZXJTb3VyY2VOb2RlPiBBdWRpb0NvbnRleHQ6
OmNyZWF0ZUJ1ZmZlclNvdXJjZSgpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsK
KyAgICAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGxhenlJbml0aWFsaXplKCk7
CiAgICAgUmVmPEF1ZGlvQnVmZmVyU291cmNlTm9kZT4gbm9kZSA9IEF1ZGlvQnVmZmVyU291cmNl
Tm9kZTo6Y3JlYXRlKCp0aGlzLCBtX2Rlc3RpbmF0aW9uTm9kZS0+c2FtcGxlUmF0ZSgpKTsKQEAg
LTQyOCw2ICs0NTAsOCBAQCBSZWY8QXVkaW9CdWZmZXJTb3VyY2VOb2RlPiBBdWRpb0NvbnRleHQ6
OmNyZWF0ZUJ1ZmZlclNvdXJjZSgpCiAKIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGU+PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZShIVE1M
TWVkaWFFbGVtZW50JiBtZWRpYUVsZW1lbnQpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKKyAgICAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGxhenlJbml0aWFs
aXplKCk7CiAgICAgCkBAIC00NDgsNiArNDcyLDggQEAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhRWxl
bWVudEF1ZGlvU291cmNlTm9kZT4+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlTWVkaWFFbGVtZW50U28K
IAogRXhjZXB0aW9uT3I8UmVmPE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlPj4gQXVkaW9Db250
ZXh0OjpjcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShNZWRpYVN0cmVhbSYgbWVkaWFTdHJlYW0pCiB7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCiAgICAgYXV0byBhdWRpb1RyYWNrcyA9IG1lZGlhU3RyZWFtLmdldEF1ZGlv
VHJhY2tzKCk7CkBAIC00ODQsNiArNTEwLDggQEAgUmVmPE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5h
dGlvbk5vZGU+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlvbigKIAog
RXhjZXB0aW9uT3I8UmVmPFNjcmlwdFByb2Nlc3Nvck5vZGU+PiBBdWRpb0NvbnRleHQ6OmNyZWF0
ZVNjcmlwdFByb2Nlc3NvcihzaXplX3QgYnVmZmVyU2l6ZSwgc2l6ZV90IG51bWJlck9mSW5wdXRD
aGFubmVscywgc2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCiB7CisgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKKyAgICAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IGxhenlJbml0aWFsaXplKCk7CiAKQEAgLTU0Miw2ICs1NzAsOCBAQCBFeGNlcHRpb25PcjxSZWY8
U2NyaXB0UHJvY2Vzc29yTm9kZT4+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlU2NyaXB0UHJvY2Vzc29y
KHNpemVfdAogCiBSZWY8QmlxdWFkRmlsdGVyTm9kZT4gQXVkaW9Db250ZXh0OjpjcmVhdGVCaXF1
YWRGaWx0ZXIoKQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgCiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBsYXp5SW5pdGlhbGl6ZSgpOwogICAgIHJldHVy
biBCaXF1YWRGaWx0ZXJOb2RlOjpjcmVhdGUoKnRoaXMsIG1fZGVzdGluYXRpb25Ob2RlLT5zYW1w
bGVSYXRlKCkpOwpAQCAtNTQ5LDYgKzU3OSw4IEBAIFJlZjxCaXF1YWRGaWx0ZXJOb2RlPiBBdWRp
b0NvbnRleHQ6OmNyZWF0ZUJpcXVhZEZpbHRlcigpCiAKIFJlZjxXYXZlU2hhcGVyTm9kZT4gQXVk
aW9Db250ZXh0OjpjcmVhdGVXYXZlU2hhcGVyKCkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworICAgIAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbGF6eUluaXRp
YWxpemUoKTsKICAgICByZXR1cm4gV2F2ZVNoYXBlck5vZGU6OmNyZWF0ZSgqdGhpcyk7CkBAIC01
NTYsNiArNTg4LDggQEAgUmVmPFdhdmVTaGFwZXJOb2RlPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZVdh
dmVTaGFwZXIoKQogCiBSZWY8UGFubmVyTm9kZT4gQXVkaW9Db250ZXh0OjpjcmVhdGVQYW5uZXIo
KQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgCiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKICAgICBsYXp5SW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBQYW5uZXJO
b2RlOjpjcmVhdGUoKnRoaXMsIG1fZGVzdGluYXRpb25Ob2RlLT5zYW1wbGVSYXRlKCkpOwpAQCAt
NTYzLDYgKzU5Nyw4IEBAIFJlZjxQYW5uZXJOb2RlPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZVBhbm5l
cigpCiAKIFJlZjxDb252b2x2ZXJOb2RlPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUNvbnZvbHZlcigp
CiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogICAgIGxhenlJbml0aWFsaXplKCk7CiAgICAgcmV0dXJuIENvbnZvbHZl
ck5vZGU6OmNyZWF0ZSgqdGhpcywgbV9kZXN0aW5hdGlvbk5vZGUtPnNhbXBsZVJhdGUoKSk7CkBA
IC01NzAsNiArNjA2LDggQEAgUmVmPENvbnZvbHZlck5vZGU+IEF1ZGlvQ29udGV4dDo6Y3JlYXRl
Q29udm9sdmVyKCkKIAogUmVmPER5bmFtaWNzQ29tcHJlc3Nvck5vZGU+IEF1ZGlvQ29udGV4dDo6
Y3JlYXRlRHluYW1pY3NDb21wcmVzc29yKCkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOworICAgIAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbGF6eUluaXRpYWxp
emUoKTsKICAgICByZXR1cm4gRHluYW1pY3NDb21wcmVzc29yTm9kZTo6Y3JlYXRlKCp0aGlzLCBt
X2Rlc3RpbmF0aW9uTm9kZS0+c2FtcGxlUmF0ZSgpKTsKQEAgLTU3Nyw2ICs2MTUsOCBAQCBSZWY8
RHluYW1pY3NDb21wcmVzc29yTm9kZT4gQXVkaW9Db250ZXh0OjpjcmVhdGVEeW5hbWljc0NvbXBy
ZXNzb3IoKQogCiBSZWY8QW5hbHlzZXJOb2RlPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUFuYWx5c2Vy
KCkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIAogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgbGF6eUluaXRpYWxpemUoKTsKICAgICByZXR1cm4gQW5hbHlz
ZXJOb2RlOjpjcmVhdGUoKnRoaXMsIG1fZGVzdGluYXRpb25Ob2RlLT5zYW1wbGVSYXRlKCkpOwpA
QCAtNTg0LDYgKzYyNCw4IEBAIFJlZjxBbmFseXNlck5vZGU+IEF1ZGlvQ29udGV4dDo6Y3JlYXRl
QW5hbHlzZXIoKQogCiBSZWY8R2Fpbk5vZGU+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlR2FpbigpCiB7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIGxhenlJbml0aWFsaXplKCk7CiAgICAgcmV0dXJuIEdhaW5Ob2RlOjpj
cmVhdGUoKnRoaXMsIG1fZGVzdGluYXRpb25Ob2RlLT5zYW1wbGVSYXRlKCkpOwpAQCAtNTkxLDYg
KzYzMyw4IEBAIFJlZjxHYWluTm9kZT4gQXVkaW9Db250ZXh0OjpjcmVhdGVHYWluKCkKIAogRXhj
ZXB0aW9uT3I8UmVmPERlbGF5Tm9kZT4+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlRGVsYXkoZG91Ymxl
IG1heERlbGF5VGltZSkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIAog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbGF6eUluaXRpYWxpemUoKTsKICAgICBy
ZXR1cm4gRGVsYXlOb2RlOjpjcmVhdGUoKnRoaXMsIG1fZGVzdGluYXRpb25Ob2RlLT5zYW1wbGVS
YXRlKCksIG1heERlbGF5VGltZSk7CkBAIC01OTgsNiArNjQyLDggQEAgRXhjZXB0aW9uT3I8UmVm
PERlbGF5Tm9kZT4+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlRGVsYXkoZG91YmxlIG1heERlbGF5VGlt
ZSkKIAogRXhjZXB0aW9uT3I8UmVmPENoYW5uZWxTcGxpdHRlck5vZGU+PiBBdWRpb0NvbnRleHQ6
OmNyZWF0ZUNoYW5uZWxTcGxpdHRlcihzaXplX3QgbnVtYmVyT2ZPdXRwdXRzKQogeworICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICBsYXp5SW5pdGlhbGl6ZSgpOwogICAgIGF1dG8gbm9kZSA9IENoYW5uZWxTcGxpdHRl
ck5vZGU6OmNyZWF0ZSgqdGhpcywgbV9kZXN0aW5hdGlvbk5vZGUtPnNhbXBsZVJhdGUoKSwgbnVt
YmVyT2ZPdXRwdXRzKTsKQEAgLTYwOCw2ICs2NTQsOCBAQCBFeGNlcHRpb25PcjxSZWY8Q2hhbm5l
bFNwbGl0dGVyTm9kZT4+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlQ2hhbm5lbFNwbGl0dGVyKHNpemVf
dAogCiBFeGNlcHRpb25PcjxSZWY8Q2hhbm5lbE1lcmdlck5vZGU+PiBBdWRpb0NvbnRleHQ6OmNy
ZWF0ZUNoYW5uZWxNZXJnZXIoc2l6ZV90IG51bWJlck9mSW5wdXRzKQogeworICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUik7CisgICAgCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICBsYXp5SW5pdGlhbGl6ZSgpOwogICAgIGF1dG8gbm9kZSA9IENoYW5uZWxNZXJnZXJOb2RlOjpj
cmVhdGUoKnRoaXMsIG1fZGVzdGluYXRpb25Ob2RlLT5zYW1wbGVSYXRlKCksIG51bWJlck9mSW5w
dXRzKTsKQEAgLTYxOCw2ICs2NjYsOCBAQCBFeGNlcHRpb25PcjxSZWY8Q2hhbm5lbE1lcmdlck5v
ZGU+PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUNoYW5uZWxNZXJnZXIoc2l6ZV90IG51bQogCiBSZWY8
T3NjaWxsYXRvck5vZGU+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlT3NjaWxsYXRvcigpCiB7CisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIGxhenlJbml0aWFsaXplKCk7CiAKQEAgLTYzMiw2ICs2ODIsOCBAQCBSZWY8T3Nj
aWxsYXRvck5vZGU+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlT3NjaWxsYXRvcigpCiAKIEV4Y2VwdGlv
bk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZShG
bG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1hZ2luYXJ5KQogeworICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CisgICAgCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBpZiAocmVhbC5sZW5ndGgoKSAhPSBpbWFnaW5hcnkubGVuZ3RoKCkgfHwgKHJlYWwubGVu
Z3RoKCkgPiBNYXhQZXJpb2RpY1dhdmVMZW5ndGgpIHx8ICFyZWFsLmxlbmd0aCgpKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKQEAgLTk4MSw4ICsxMDMzLDEw
IEBAIHZvaWQgQXVkaW9Db250ZXh0Ojpub2RlV2lsbEJlZ2luUGxheWJhY2soKQogYm9vbCBBdWRp
b0NvbnRleHQ6OndpbGxCZWdpblBsYXliYWNrKCkKIHsKICAgICBpZiAodXNlckdlc3R1cmVSZXF1
aXJlZEZvckF1ZGlvU3RhcnQoKSkgewotICAgICAgICBpZiAoIXByb2Nlc3NpbmdVc2VyR2VzdHVy
ZUZvck1lZGlhKCkgJiYgIWRvY3VtZW50KCktPmlzQ2FwdHVyaW5nKCkpCisgICAgICAgIGlmICgh
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSAmJiAhZG9jdW1lbnQoKS0+aXNDYXB0dXJp
bmcoKSkgeworICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5n
IGZhbHNlLCBub3QgcHJvY2Vzc2luZyB1c2VyIGdlc3R1cmUgb3IgY2FwdHVyaW5nIik7CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICAgICAgcmVtb3ZlQmVoYXZpb3JS
ZXN0cmljdGlvbihBdWRpb0NvbnRleHQ6OlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvU3RhcnRS
ZXN0cmljdGlvbik7CiAgICAgfQogCkBAIC05OTAsMTIgKzEwNDQsMTYgQEAgYm9vbCBBdWRpb0Nv
bnRleHQ6OndpbGxCZWdpblBsYXliYWNrKCkKICAgICAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50
KCktPnBhZ2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmNhblN0YXJ0TWVkaWEoKSkg
ewogICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKCp0aGlz
KTsKKyAgICAgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInJldHVybmluZyBmYWxz
ZSwgcGFnZSBkb2Vzbid0IGFsbG93IG1lZGlhIHRvIHN0YXJ0Iik7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihB
dWRpb0NvbnRleHQ6OlJlcXVpcmVQYWdlQ29uc2VudEZvckF1ZGlvU3RhcnRSZXN0cmljdGlvbik7
CiAgICAgfQotCi0gICAgcmV0dXJuIG1fbWVkaWFTZXNzaW9uLT5jbGllbnRXaWxsQmVnaW5QbGF5
YmFjaygpOworICAgIAorICAgIGF1dG8gd2lsbEJlZ2luID0gbV9tZWRpYVNlc3Npb24tPmNsaWVu
dFdpbGxCZWdpblBsYXliYWNrKCk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAicmV0
dXJuaW5nICIsIHdpbGxCZWdpbik7CisgICAgCisgICAgcmV0dXJuIHdpbGxCZWdpbjsKIH0KIAog
Ym9vbCBBdWRpb0NvbnRleHQ6OndpbGxQYXVzZVBsYXliYWNrKCkKQEAgLTEwMjAsNiArMTA3OCw3
IEBAIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxsUGF1c2VQbGF5YmFjaygpCiAKIHZvaWQgQXVkaW9D
b250ZXh0OjpzdGFydFJlbmRlcmluZygpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
KTsKICAgICBpZiAoIXdpbGxCZWdpblBsYXliYWNrKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTA2Myw3ICsxMTIyLDkgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OmZpcmVDb21wbGV0aW9uRXZlbnQo
KQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkK
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
Uik7CisgICAgCiAgICAgQXVkaW9CdWZmZXIqIHJlbmRlcmVkQnVmZmVyID0gbV9yZW5kZXJUYXJn
ZXQuZ2V0KCk7CiAgICAgc2V0U3RhdGUoU3RhdGU6OkNsb3NlZCk7CiAKQEAgLTEyMDgsNiArMTI2
OSwxMiBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6bWF5UmVzdW1lUGxheWJhY2soYm9vbCBzaG91bGRS
ZXN1bWUpCiAgICAgfSk7CiB9CiAKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK1dURkxvZ0No
YW5uZWwmIEF1ZGlvQ29udGV4dDo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExv
Z01lZGlhOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggNDlkMzU2NjEx
ODhhMmQ0Y2ZiMzUwNWViOGRiYzFjZmVkMjU5MjYwMS4uNzdmMDU5NjNiODdhNzY1MjY2MmFhODNm
YzAxMTQ0MTk5MzFhYWYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zs
b2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPGF0b21pYz4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KQEAgLTc2LDcgKzc3LDE4IEBAIGNsYXNzIFdhdmVTaGFwZXJOb2RlOwogLy8g
QXVkaW9Db250ZXh0IGlzIHRoZSBjb3JuZXJzdG9uZSBvZiB0aGUgd2ViIGF1ZGlvIEFQSSBhbmQg
YWxsIEF1ZGlvTm9kZXMgYXJlIGNyZWF0ZWQgZnJvbSBpdC4KIC8vIEZvciB0aHJlYWQgc2FmZXR5
IGJldHdlZW4gdGhlIGF1ZGlvIHRocmVhZCBhbmQgdGhlIG1haW4gdGhyZWFkLCBpdCBoYXMgYSBy
ZW5kZXJpbmcgZ3JhcGggbG9ja2luZyBtZWNoYW5pc20uIAogCi1jbGFzcyBBdWRpb0NvbnRleHQg
OiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVk
aW9Db250ZXh0PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBNZWRp
YUNhblN0YXJ0TGlzdGVuZXIsIHB1YmxpYyBNZWRpYVByb2R1Y2VyLCBwcml2YXRlIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ2xpZW50LCBwcml2YXRlIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQgeworY2xh
c3MgQXVkaW9Db250ZXh0CisgICAgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CisgICAgLCBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Db250ZXh0PgorICAgICwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEKKyAgICAsIHB1YmxpYyBNZWRpYUNhblN0YXJ0TGlzdGVuZXIK
KyAgICAsIHB1YmxpYyBNZWRpYVByb2R1Y2VyCisgICAgLCBwcml2YXRlIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ2xpZW50CisgICAgLCBwcml2YXRlIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQKKyNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCisjZW5kaWYK
K3sKIHB1YmxpYzoKICAgICAvLyBDcmVhdGUgYW4gQXVkaW9Db250ZXh0IGZvciByZW5kZXJpbmcg
dG8gdGhlIGF1ZGlvIGhhcmR3YXJlLgogICAgIHN0YXRpYyBSZWZQdHI8QXVkaW9Db250ZXh0PiBj
cmVhdGUoRG9jdW1lbnQmKTsKQEAgLTI2Myw2ICsyNzUsMTQgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBub2RlV2lsbEJlZ2luUGxheWJhY2soKTsKIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
ICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIu
Z2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHZvaWQqIG5leHRBdWRpb05vZGVMb2dJZGVudGlmaWVy
KCkgeyByZXR1cm4gY2hpbGRMb2dJZGVudGlmaWVyKCsrbV9uZXh0QXVkaW9Ob2RlSWRlbnRpZmll
cik7IH0KKyAgICBjb25zdCB2b2lkKiBuZXh0QXVkaW9QYXJhbWV0ZXJMb2dJZGVudGlmaWVyKCkg
eyByZXR1cm4gY2hpbGRMb2dJZGVudGlmaWVyKCsrbV9uZXh0QXVkaW9QYXJhbWV0ZXJJZGVudGlm
aWVyKTsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBdWRpb0NvbnRleHQo
RG9jdW1lbnQmKTsKICAgICBBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCB1bnNpZ25lZCBudW1iZXJP
ZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOwpAQCAt
MzM2LDYgKzM1NiwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUmVhY3Rpb24oU3RhdGUsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIHVwZGF0ZUF1dG9tYXRpY1B1bGxO
b2RlcygpOwogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3QgY2hhciogbG9n
Q2xhc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkF1ZGlvQ29udGV4dCI7IH0KKworICAg
IFJlZjxMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
KyAgICB1aW50NjRfdCBtX25leHRBdWRpb05vZGVJZGVudGlmaWVyIHsgMCB9OworICAgIHVpbnQ2
NF90IG1fbmV4dEF1ZGlvUGFyYW1ldGVySWRlbnRpZmllciB7IDAgfTsKKyNlbmRpZgorCiAgICAg
Ly8gT25seSBhY2Nlc3NlZCBpbiB0aGUgYXVkaW8gdGhyZWFkLgogICAgIFZlY3RvcjxBdWRpb05v
ZGUqPiBtX2ZpbmlzaGVkTm9kZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNjI5NzY2YzNiOGU3
NWNhZTAxMTFhMzdhMzNjOGZmYmUyOGYxYjk3Ni4uM2Q2OWU5MTFiY2FkZDI5ZjdjZjM4Mzg0MjAx
MzE2YzlmNmZiYmEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTQzLDkgKzQzLDggQEAgQXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OkF1ZGlvRGVzdGluYXRpb25Ob2RlKEF1ZGlvQ29udGV4dCYgY29udGV4
dCwgZmxvYXQgc2FtcGxlUmEKICAgICAsIG1faXNFZmZlY3RpdmVseVBsYXlpbmdBdWRpbyhmYWxz
ZSkKICAgICAsIG1fbXV0ZWQoZmFsc2UpCiB7Ci0gICAgYWRkSW5wdXQoc3RkOjptYWtlX3VuaXF1
ZTxBdWRpb05vZGVJbnB1dD4odGhpcykpOwotICAgIAogICAgIHNldE5vZGVUeXBlKE5vZGVUeXBl
RGVzdGluYXRpb24pOworICAgIGFkZElucHV0KHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9Ob2RlSW5w
dXQ+KHRoaXMpKTsKIH0KIAogQXVkaW9EZXN0aW5hdGlvbk5vZGU6On5BdWRpb0Rlc3RpbmF0aW9u
Tm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAK
aW5kZXggNjEzOWZkZDg1YjE2N2EzNzAyYTE2MWUwZmYyNDBmNmMyYTAxZDg5Yi4uZDJjYTkyOWM2
ZTZlM2YwNmNkNWU2YzQ5MzYyZWM2YTQzMTdjZjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkF1ZGlvTm9kZUlucHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0cHV0LmgiCiAjaW5jbHVk
ZSAiQXVkaW9QYXJhbS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvQXRv
bWljcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTQxLDYgKzQyLDU2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKEF1ZGlvTm9kZTo6Tm9kZVR5cGUgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMg
Y29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIk5vZGVUeXBlVW5rbm93biIpLAorICAgICAgICBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiTm9kZVR5cGVEZXN0aW5hdGlvbiIpLAorICAgICAgICBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiTm9kZVR5cGVPc2NpbGxhdG9yIiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJOb2RlVHlwZUF1ZGlvQnVmZmVyU291cmNlIiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJOb2RlVHlwZU1lZGlhRWxlbWVudEF1ZGlvU291cmNlIiksCisg
ICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJOb2RlVHlwZU1lZGlhU3RyZWFtQXVkaW9E
ZXN0aW5hdGlvbiIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9kZVR5cGVN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJOb2RlVHlwZUphdmFTY3JpcHQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
Ik5vZGVUeXBlQmlxdWFkRmlsdGVyIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJOb2RlVHlwZVBhbm5lciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9k
ZVR5cGVDb252b2x2ZXIiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vZGVU
eXBlRGVsYXkiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vZGVUeXBlR2Fp
biIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9kZVR5cGVDaGFubmVsU3Bs
aXR0ZXIiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vZGVUeXBlQ2hhbm5l
bE1lcmdlciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9kZVR5cGVBbmFs
eXNlciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9kZVR5cGVEeW5hbWlj
c0NvbXByZXNzb3IiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vZGVUeXBl
V2F2ZVNoYXBlciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9kZVR5cGVC
YXNpY0luc3BlY3RvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9kZVR5
cGVFbmQiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihB
dWRpb05vZGU6Ok5vZGVUeXBlVW5rbm93bikgPT0gMCwgIkF1ZGlvTm9kZTo6Tm9kZVR5cGVVbmtu
b3duIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2Fz
dDxzaXplX3Q+KEF1ZGlvTm9kZTo6Tm9kZVR5cGVEZXN0aW5hdGlvbikgPT0gMSwgIkF1ZGlvTm9k
ZTo6Tm9kZVR5cGVEZXN0aW5hdGlvbiBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb05vZGU6Ok5vZGVUeXBlT3NjaWxsYXRv
cikgPT0gMiwgIkF1ZGlvTm9kZTo6Tm9kZVR5cGVPc2NpbGxhdG9yIGlzIG5vdCAyIGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvTm9kZTo6
Tm9kZVR5cGVBdWRpb0J1ZmZlclNvdXJjZSkgPT0gMywgIkF1ZGlvTm9kZTo6Tm9kZVR5cGVBdWRp
b0J1ZmZlclNvdXJjZSBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb05vZGU6Ok5vZGVUeXBlTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2UpID09IDQsICJBdWRpb05vZGU6Ok5vZGVUeXBlTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2Ug
aXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oQXVkaW9Ob2RlOjpOb2RlVHlwZU1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbikgPT0g
NSwgIkF1ZGlvTm9kZTo6Tm9kZVR5cGVNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb24gaXMgbm90
IDUgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
QXVkaW9Ob2RlOjpOb2RlVHlwZU1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UpID09IDYsICJBdWRpb05v
ZGU6Ok5vZGVUeXBlTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSBpcyBub3QgNiBhcyBleHBlY3RlZCIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb05vZGU6Ok5vZGVU
eXBlSmF2YVNjcmlwdCkgPT0gNywgIkF1ZGlvTm9kZTo6Tm9kZVR5cGVKYXZhU2NyaXB0IGlzIG5v
dCA3IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KEF1ZGlvTm9kZTo6Tm9kZVR5cGVCaXF1YWRGaWx0ZXIpID09IDgsICJBdWRpb05vZGU6Ok5vZGVU
eXBlQmlxdWFkRmlsdGVyIGlzIG5vdCA4IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvTm9kZTo6Tm9kZVR5cGVQYW5uZXIpID09IDksICJB
dWRpb05vZGU6Ok5vZGVUeXBlUGFubmVyIGlzIG5vdCA5IGFzIGV4cGVjdGVkIik7CisgICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvTm9kZTo6Tm9kZVR5cGVDb252b2x2
ZXIpID09IDEwLCAiQXVkaW9Ob2RlOjpOb2RlVHlwZUNvbnZvbHZlciBpcyBub3QgMTAgYXMgZXhw
ZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9Ob2Rl
OjpOb2RlVHlwZURlbGF5KSA9PSAxMSwgIkF1ZGlvTm9kZTo6Tm9kZVR5cGVEZWxheSBpcyBub3Qg
MTEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
QXVkaW9Ob2RlOjpOb2RlVHlwZUdhaW4pID09IDEyLCAiQXVkaW9Ob2RlOjpOb2RlVHlwZUdhaW4g
aXMgbm90IDEyIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KEF1ZGlvTm9kZTo6Tm9kZVR5cGVDaGFubmVsU3BsaXR0ZXIpID09IDEzLCAiQXVkaW9O
b2RlOjpOb2RlVHlwZUNoYW5uZWxTcGxpdHRlciBpcyBub3QgMTMgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9Ob2RlOjpOb2RlVHlwZUNo
YW5uZWxNZXJnZXIpID09IDE0LCAiQXVkaW9Ob2RlOjpOb2RlVHlwZUNoYW5uZWxNZXJnZXIgaXMg
bm90IDE0IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KEF1ZGlvTm9kZTo6Tm9kZVR5cGVBbmFseXNlcikgPT0gMTUsICJBdWRpb05vZGU6Ok5vZGVU
eXBlQW5hbHlzZXIgaXMgbm90IDE1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvTm9kZTo6Tm9kZVR5cGVEeW5hbWljc0NvbXByZXNzb3Ip
ID09IDE2LCAiQXVkaW9Ob2RlOjpOb2RlVHlwZUR5bmFtaWNzQ29tcHJlc3NvciBpcyBub3QgMTYg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVk
aW9Ob2RlOjpOb2RlVHlwZVdhdmVTaGFwZXIpID09IDE3LCAiQXVkaW9Ob2RlOjpOb2RlVHlwZVdh
dmVTaGFwZXIgaXMgbm90IDE3IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDxzaXplX3Q+KEF1ZGlvTm9kZTo6Tm9kZVR5cGVCYXNpY0luc3BlY3RvcikgPT0gMTgs
ICJBdWRpb05vZGU6Ok5vZGVUeXBlQmFzaWNJbnNwZWN0b3IgaXMgbm90IDE4IGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvTm9kZTo6Tm9k
ZVR5cGVFbmQpID09IDE5LCAiQXVkaW9Ob2RlOjpOb2RlVHlwZUVuZCBpcyBub3QgMTkgYXMgZXhw
ZWN0ZWQiKTsKKworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFs
dWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICAKKyAgICByZXR1cm4gdmFsdWVz
W3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCiBBdWRpb05vZGU6
OkF1ZGlvTm9kZShBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAg
OiBtX2lzSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX25vZGVUeXBlKE5vZGVUeXBlVW5rbm93
bikKQEAgLTUyLDEwICsxMDMsMTYgQEAgQXVkaW9Ob2RlOjpBdWRpb05vZGUoQXVkaW9Db250ZXh0
JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQogICAgICwgbV9jb25uZWN0aW9uUmVmQ291bnQo
MCkKICAgICAsIG1faXNNYXJrZWRGb3JEZWxldGlvbihmYWxzZSkKICAgICAsIG1faXNEaXNhYmxl
ZChmYWxzZSkKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKGNvbnRl
eHQubG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIoY29udGV4dC5uZXh0QXVkaW9Ob2Rl
TG9nSWRlbnRpZmllcigpKQorI2VuZGlmCiAgICAgLCBtX2NoYW5uZWxDb3VudCgyKQogICAgICwg
bV9jaGFubmVsQ291bnRNb2RlKE1heCkKICAgICAsIG1fY2hhbm5lbEludGVycHJldGF0aW9uKEF1
ZGlvQnVzOjpTcGVha2VycykKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAg
IAogI2lmIERFQlVHX0FVRElPTk9ERV9SRUZFUkVOQ0VTCiAgICAgaWYgKCFzX2lzTm9kZUNvdW50
SW5pdGlhbGl6ZWQpIHsKICAgICAgICAgc19pc05vZGVDb3VudEluaXRpYWxpemVkID0gdHJ1ZTsK
QEAgLTY2LDYgKzEyMyw4IEBAIEF1ZGlvTm9kZTo6QXVkaW9Ob2RlKEF1ZGlvQ29udGV4dCYgY29u
dGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKIAogQXVkaW9Ob2RlOjp+QXVkaW9Ob2RlKCkKIHsKKyAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICNpZiBERUJVR19BVURJT05PREVfUkVGRVJFTkNFUwogICAgIC0tc19ub2RlQ291bnRbbm9k
ZVR5cGUoKV07CkBAIC04NSw2ICsxNDQsOSBAQCB2b2lkIEF1ZGlvTm9kZTo6dW5pbml0aWFsaXpl
KCkKIAogdm9pZCBBdWRpb05vZGU6OnNldE5vZGVUeXBlKE5vZGVUeXBlIHR5cGUpCiB7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHR5
cGUpOworCiAgICAgbV9ub2RlVHlwZSA9IHR5cGU7CiAKICNpZiBERUJVR19BVURJT05PREVfUkVG
RVJFTkNFUwpAQCAtMTAwLDExICsxNjIsMTUgQEAgdm9pZCBBdWRpb05vZGU6OmxhenlJbml0aWFs
aXplKCkKIAogdm9pZCBBdWRpb05vZGU6OmFkZElucHV0KHN0ZDo6dW5pcXVlX3B0cjxBdWRpb05v
ZGVJbnB1dD4gaW5wdXQpCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBERUJV
R19MT0coTE9HSURFTlRJRklFUiwgaW5wdXQtPm5vZGUoKS0+bm9kZVR5cGUoKSk7CiAgICAgbV9p
bnB1dHMuYXBwZW5kKFdURk1vdmUoaW5wdXQpKTsKIH0KIAogdm9pZCBBdWRpb05vZGU6OmFkZE91
dHB1dChzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9Ob2RlT3V0cHV0PiBvdXRwdXQpCiB7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgb3V0cHV0
LT5ub2RlKCktPm5vZGVUeXBlKCkpOwogICAgIG1fb3V0cHV0cy5hcHBlbmQoV1RGTW92ZShvdXRw
dXQpKTsKIH0KIApAQCAtMTI0LDkgKzE5MCwxMSBAQCBBdWRpb05vZGVPdXRwdXQqIEF1ZGlvTm9k
ZTo6b3V0cHV0KHVuc2lnbmVkIGkpCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6Y29u
bmVjdChBdWRpb05vZGUmIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBvdXRwdXRJbmRleCwgdW5zaWdu
ZWQgaW5wdXRJbmRleCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyAKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBsb2NrZXIo
Y29udGV4dCgpKTsKIAorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZGVzdGluYXRpb24u
bm9kZVR5cGUoKSwgIiwgb3V0cHV0ID0gIiwgb3V0cHV0SW5kZXgsICIsIGlucHV0ID0gIiwgaW5w
dXRJbmRleCk7CisgICAgCiAgICAgLy8gU2FuaXR5IGNoZWNrIGlucHV0IGFuZCBvdXRwdXQgaW5k
aWNlcy4KICAgICBpZiAob3V0cHV0SW5kZXggPj0gbnVtYmVyT2ZPdXRwdXRzKCkpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwpAQCAtMTQ5LDkgKzIxNywxMiBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OmNvbm5lY3QoQXVkaW9Ob2RlJiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgb3V0cHV0SW5kZQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6
OmNvbm5lY3QoQXVkaW9QYXJhbSYgcGFyYW0sIHVuc2lnbmVkIG91dHB1dEluZGV4KQogewotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxv
Y2tlcihjb250ZXh0KCkpOwogCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIERF
QlVHX0xPRyhMT0dJREVOVElGSUVSLCBwYXJhbS5uYW1lKCksICIsIG91dHB1dCA9ICIsIG91dHB1
dEluZGV4KTsKKwogICAgIGlmIChvdXRwdXRJbmRleCA+PSBudW1iZXJPZk91dHB1dHMoKSkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKQEAgLTE3NCw2ICsy
NDUsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OmRpc2Nvbm5lY3QodW5zaWduZWQg
b3V0cHV0SW5kZXgpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9
OwogCiAgICAgYXV0byogb3V0cHV0ID0gdGhpcy0+b3V0cHV0KG91dHB1dEluZGV4KTsKKyAgICBE
RUJVR19MT0coTE9HSURFTlRJRklFUiwgb3V0cHV0LT5ub2RlKCktPm5vZGVUeXBlKCkpOworCiAg
ICAgb3V0cHV0LT5kaXNjb25uZWN0QWxsKCk7CiAKICAgICByZXR1cm4geyB9OwpAQCAtMTg5LDYg
KzI2Miw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50KHVu
c2lnbmVkIGNoYW5uZWxDb3VudCkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEF1
ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBsb2NrZXIoY29udGV4dCgpKTsKIAorICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgY2hhbm5lbENvdW50KTsKKyAgICAKICAgICBpZiAoIShjaGFubmVs
Q291bnQgPiAwICYmIGNoYW5uZWxDb3VudCA8PSBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hh
bm5lbHMoKSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
OwogCkBAIC0yMjAsNiArMjk1LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRD
aGFubmVsQ291bnRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIEF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBsb2NrZXIoY29udGV4dCgpKTsK
IAorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbW9kZSk7CisgICAgCiAgICAgQ2hhbm5l
bENvdW50TW9kZSBvbGRNb2RlID0gbV9jaGFubmVsQ291bnRNb2RlOwogCiAgICAgaWYgKG1vZGUg
PT0gIm1heCIpCkBAIC0yNTQsNiArMzMxLDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2Rl
OjpzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24oY29uc3QgU3RyaW5nJiBpbnRlcnByZXRhdGkKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBs
b2NrZXIoY29udGV4dCgpKTsKIAorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgaW50ZXJw
cmV0YXRpb24pOworICAgIAogICAgIGlmIChpbnRlcnByZXRhdGlvbiA9PSAic3BlYWtlcnMiKQog
ICAgICAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpTcGVha2VyczsKICAg
ICBlbHNlIGlmIChpbnRlcnByZXRhdGlvbiA9PSAiZGlzY3JldGUiKQpAQCAtNTA1LDYgKzU4NCwx
MyBAQCB2b2lkIEF1ZGlvTm9kZTo6cHJpbnROb2RlQ291bnRzKCkKIAogI2VuZGlmIC8vIERFQlVH
X0FVRElPTk9ERV9SRUZFUkVOQ0VTCiAKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK1dURkxv
Z0NoYW5uZWwmIEF1ZGlvTm9kZTo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExv
Z01lZGlhOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b05vZGUuaAppbmRleCAzMGE1ZjgxNDQ1MmI5YTM5ZTg2NTJmN2YyMTRmNTFjMzM4OTljZTFmLi40
ZDk0MjEyMThhOTc5M2E4YzE5MTgyYWJmZjY3MTgzZGRjN2NhZDQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKICNkZWZpbmUg
REVCVUdfQVVESU9OT0RFX1JFRkVSRU5DRVMgMAogCkBAIC00NCw3ICs0NSwxMiBAQCBjbGFzcyBB
dWRpb1BhcmFtOwogLy8gQW4gQXVkaW9EZXN0aW5hdGlvbk5vZGUgaGFzIG9uZSBpbnB1dCBhbmQg
bm8gb3V0cHV0cyBhbmQgcmVwcmVzZW50cyB0aGUgZmluYWwgZGVzdGluYXRpb24gdG8gdGhlIGF1
ZGlvIGhhcmR3YXJlLgogLy8gTW9zdCBwcm9jZXNzaW5nIG5vZGVzIHN1Y2ggYXMgZmlsdGVycyB3
aWxsIGhhdmUgb25lIGlucHV0IGFuZCBvbmUgb3V0cHV0LCBhbHRob3VnaCBtdWx0aXBsZSBpbnB1
dHMgYW5kIG91dHB1dHMgYXJlIHBvc3NpYmxlLgogCi1jbGFzcyBBdWRpb05vZGUgOiBwdWJsaWMg
RXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBBdWRpb05vZGUKKyAgICA6IHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisg
ICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgorI2VuZGlmCit7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQXVkaW9Ob2RlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
QEAgLTc1LDYgKzgxLDcgQEAgcHVibGljOgogICAgICAgICBOb2RlVHlwZUFuYWx5c2VyLAogICAg
ICAgICBOb2RlVHlwZUR5bmFtaWNzQ29tcHJlc3NvciwKICAgICAgICAgTm9kZVR5cGVXYXZlU2hh
cGVyLAorICAgICAgICBOb2RlVHlwZUJhc2ljSW5zcGVjdG9yLAogICAgICAgICBOb2RlVHlwZUVu
ZAogICAgIH07CiAKQEAgLTE5MSw2ICsxOTgsMTMgQEAgcHJvdGVjdGVkOgogICAgIC8vIEZvcmNl
IGFsbCBpbnB1dHMgdG8gdGFrZSBhbnkgY2hhbm5lbCBpbnRlcnByZXRhdGlvbiBjaGFuZ2VzIGlu
dG8gYWNjb3VudC4KICAgICB2b2lkIHVwZGF0ZUNoYW5uZWxzRm9ySW5wdXRzKCk7CiAKKyNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRp
ZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIGNvbnN0
IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJBdWRpb05vZGUiOyB9
CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOworI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgdm9sYXRpbGUgYm9vbCBtX2lzSW5pdGlhbGl6ZWQ7CiAgICAgTm9kZVR5
cGUgbV9ub2RlVHlwZTsKQEAgLTIxNywxMCArMjMxLDI1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBy
ZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRU
YXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAorICAgIG11dGFibGUgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9p
ZCogbV9sb2dJZGVudGlmaWVyOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBt
X2NoYW5uZWxDb3VudDsKICAgICBDaGFubmVsQ291bnRNb2RlIG1fY2hhbm5lbENvdW50TW9kZTsK
ICAgICBBdWRpb0J1czo6Q2hhbm5lbEludGVycHJldGF0aW9uIG1fY2hhbm5lbEludGVycHJldGF0
aW9uOwogfTsKIAorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvTm9kZTo6
Tm9kZVR5cGUpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewor
ICAgIAordGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9Ob2RlOjpO
b2RlVHlwZT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoV2ViQ29yZTo6QXVkaW9Ob2Rl
OjpOb2RlVHlwZSB0eXBlKSB7IHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh0eXBl
KTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAppbmRleCA3NTA2OGUxOTBhMTlhNDQ5NDA2NTlkYmRk
Mzc0ZGYyNzg0ZDliYjhjLi43ZTQzZDhjN2ZjNzNiZTUyMWI4ZDRjOWQ1Yjk2MWRlY2JkMWM5ZWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRl
ICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC00MCw2ICs0MSwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBk
b3VibGUgQXVkaW9QYXJhbTo6RGVmYXVsdFNtb290aGluZ0NvbnN0YW50ID0gMC4wNTsKIGNvbnN0
IGRvdWJsZSBBdWRpb1BhcmFtOjpTbmFwVGhyZXNob2xkID0gMC4wMDE7CiAKK0F1ZGlvUGFyYW06
OkF1ZGlvUGFyYW0oQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGRv
dWJsZSBkZWZhdWx0VmFsdWUsIGRvdWJsZSBtaW5WYWx1ZSwgZG91YmxlIG1heFZhbHVlLCB1bnNp
Z25lZCB1bml0cykKKyAgICA6IEF1ZGlvU3VtbWluZ0p1bmN0aW9uKGNvbnRleHQpCisgICAgLCBt
X25hbWUobmFtZSkKKyAgICAsIG1fdmFsdWUoZGVmYXVsdFZhbHVlKQorICAgICwgbV9kZWZhdWx0
VmFsdWUoZGVmYXVsdFZhbHVlKQorICAgICwgbV9taW5WYWx1ZShtaW5WYWx1ZSkKKyAgICAsIG1f
bWF4VmFsdWUobWF4VmFsdWUpCisgICAgLCBtX3VuaXRzKHVuaXRzKQorICAgICwgbV9zbW9vdGhl
ZFZhbHVlKGRlZmF1bHRWYWx1ZSkKKyAgICAsIG1fc21vb3RoaW5nQ29uc3RhbnQoRGVmYXVsdFNt
b290aGluZ0NvbnN0YW50KQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgbV9sb2dn
ZXIoY29udGV4dC5sb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihjb250ZXh0Lm5leHRB
dWRpb1BhcmFtZXRlckxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgoreworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIm5hbWUgPSAiLCBtX25hbWUsICIsIHZhbHVlID0gIiwgbV92YWx1ZSwg
IiwgZGVmYXVsdCA9ICIsIG1fZGVmYXVsdFZhbHVlLCAiLCBtaW4gPSAiLCBtX21pblZhbHVlLCAi
LCBtYXggPSAiLCBtX21heFZhbHVlLCAiLCB1bml0cyA9ICIsIG1fdW5pdHMpOworfQorCiBmbG9h
dCBBdWRpb1BhcmFtOjp2YWx1ZSgpCiB7CiAgICAgLy8gVXBkYXRlIHZhbHVlIGZvciB0aW1lbGlu
ZS4KQEAgLTU2LDYgKzc1LDggQEAgZmxvYXQgQXVkaW9QYXJhbTo6dmFsdWUoKQogCiB2b2lkIEF1
ZGlvUGFyYW06OnNldFZhbHVlKGZsb2F0IHZhbHVlKQogeworICAgIERFQlVHX0xPRyhMT0dJREVO
VElGSUVSLCB2YWx1ZSk7CisKICAgICAvLyBDaGVjayBhZ2FpbnN0IEphdmFTY3JpcHQgZ2l2aW5n
IHVzIGJvZ3VzIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KICAgICAvLyBEb24ndCBBU1NFUlQsIHNp
bmNlIHRoaXMgY2FuIGhhcHBlbiBpZiBzb21lYm9keSB3cml0ZXMgYmFkIEpTLgogICAgIGlmICgh
c3RkOjppc25hbih2YWx1ZSkgJiYgIXN0ZDo6aXNpbmYodmFsdWUpKQpAQCAtMTczLDYgKzE5NCw4
IEBAIHZvaWQgQXVkaW9QYXJhbTo6Y29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKICAg
ICBpZiAoIW1fb3V0cHV0cy5hZGQob3V0cHV0KS5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47
CiAKKyAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgb3V0cHV0LT5ub2RlKCktPm5vZGVUeXBl
KCkpOworCiAgICAgb3V0cHV0LT5hZGRQYXJhbSh0aGlzKTsKICAgICBjaGFuZ2VkT3V0cHV0cygp
OwogfQpAQCAtMTg1LDEyICsyMDgsMjIgQEAgdm9pZCBBdWRpb1BhcmFtOjpkaXNjb25uZWN0KEF1
ZGlvTm9kZU91dHB1dCogb3V0cHV0KQogICAgIGlmICghb3V0cHV0KQogICAgICAgICByZXR1cm47
CiAKKyAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgb3V0cHV0LT5ub2RlKCktPm5vZGVUeXBl
KCkpOworCiAgICAgaWYgKG1fb3V0cHV0cy5yZW1vdmUob3V0cHV0KSkgewogICAgICAgICBjaGFu
Z2VkT3V0cHV0cygpOwogICAgICAgICBvdXRwdXQtPnJlbW92ZVBhcmFtKHRoaXMpOwogICAgIH0K
IH0KIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorV1RGTG9nQ2hhbm5lbCYgQXVkaW9QYXJh
bTo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01lZGlhOworfQorI2VuZGlm
CisgICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCmlu
ZGV4IDZiNWVjN2EzZGUwMzEzMjlmZGZhZTZiNjY1NDVmMGI2ZjgzNTdjNzAuLjIyNmM5NTdlNzA2
ZmU2MWQyZjIzM2MwZDViZjk2ZjIwNjg3MzFjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQXVk
aW9TdW1taW5nSnVuY3Rpb24uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJy
YXkuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtNDAsNyArNDEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBBdWRpb05vZGVPdXRwdXQ7CiAKLWNsYXNzIEF1ZGlvUGFyYW0gZmluYWwgOiBwdWJsaWMgQXVk
aW9TdW1taW5nSnVuY3Rpb24sIHB1YmxpYyBSZWZDb3VudGVkPEF1ZGlvUGFyYW0+IHsKK2NsYXNz
IEF1ZGlvUGFyYW0gZmluYWwKKyAgICA6IHB1YmxpYyBBdWRpb1N1bW1pbmdKdW5jdGlvbgorICAg
ICwgcHVibGljIFJlZkNvdW50ZWQ8QXVkaW9QYXJhbT4KKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKyAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCisjZW5kaWYKK3sKIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3QgZG91YmxlIERlZmF1bHRTbW9vdGhpbmdDb25zdGFudDsKICAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIFNuYXBUaHJlc2hvbGQ7CkBAIC0xMDEsMjQgKzEwOCwyMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaXNjb25uZWN0KEF1ZGlvTm9kZU91dHB1dCopOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgQXVkaW9QYXJhbShBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
ZG91YmxlIGRlZmF1bHRWYWx1ZSwgZG91YmxlIG1pblZhbHVlLCBkb3VibGUgbWF4VmFsdWUsIHVu
c2lnbmVkIHVuaXRzID0gMCkKLSAgICAgICAgOiBBdWRpb1N1bW1pbmdKdW5jdGlvbihjb250ZXh0
KQotICAgICAgICAsIG1fbmFtZShuYW1lKQotICAgICAgICAsIG1fdmFsdWUoZGVmYXVsdFZhbHVl
KQotICAgICAgICAsIG1fZGVmYXVsdFZhbHVlKGRlZmF1bHRWYWx1ZSkKLSAgICAgICAgLCBtX21p
blZhbHVlKG1pblZhbHVlKQotICAgICAgICAsIG1fbWF4VmFsdWUobWF4VmFsdWUpCi0gICAgICAg
ICwgbV91bml0cyh1bml0cykKLSAgICAgICAgLCBtX3Ntb290aGVkVmFsdWUoZGVmYXVsdFZhbHVl
KQotICAgICAgICAsIG1fc21vb3RoaW5nQ29uc3RhbnQoRGVmYXVsdFNtb290aGluZ0NvbnN0YW50
KQotICAgIHsKLSAgICB9CisgICAgQXVkaW9QYXJhbShBdWRpb0NvbnRleHQmLCBjb25zdCBTdHJp
bmcmLCBkb3VibGUgZGVmYXVsdFZhbHVlLCBkb3VibGUgbWluVmFsdWUsIGRvdWJsZSBtYXhWYWx1
ZSwgdW5zaWduZWQgdW5pdHMgPSAwKTsKIAogcHJpdmF0ZToKICAgICAvLyBzYW1wbGVBY2N1cmF0
ZSBjb3JyZXNwb25kcyB0byBhLXJhdGUgKGF1ZGlvIHJhdGUpIHZzLiBrLXJhdGUgaW4gdGhlIFdl
YiBBdWRpbyBzcGVjaWZpY2F0aW9uLgogICAgIHZvaWQgY2FsY3VsYXRlRmluYWxWYWx1ZXMoZmxv
YXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGJvb2wgc2FtcGxlQWNjdXJhdGUp
OwogICAgIHZvaWQgY2FsY3VsYXRlVGltZWxpbmVWYWx1ZXMoZmxvYXQqIHZhbHVlcywgdW5zaWdu
ZWQgbnVtYmVyT2ZWYWx1ZXMpOwogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29u
c3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsg
fQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2xvZ0lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiQXVkaW9QYXJhbSI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFu
bmVsKCkgY29uc3QgZmluYWw7CisjZW5kaWYKKyAgICAKICAgICBTdHJpbmcgbV9uYW1lOwogICAg
IGRvdWJsZSBtX3ZhbHVlOwogICAgIGRvdWJsZSBtX2RlZmF1bHRWYWx1ZTsKQEAgLTEzMSw2ICsx
MzQsMTEgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9zbW9vdGhpbmdDb25zdGFudDsKICAgICAK
ICAgICBBdWRpb1BhcmFtVGltZWxpbmUgbV90aW1lbGluZTsKKworI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorICAgIG11dGFibGUgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29u
c3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
U2NoZWR1bGVkU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKaW5kZXggMjhlMzY4MjdlYTAyMjE2N2Q5MTJi
ODFhOTI5Mjk5ZmQ4MGY0Zjk3Mi4uNWJlZmZkZDNlZTlhMzI5ZWFhZWY3YmU5MzE2MDBiOGEyYzc5
ODA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Nj
aGVkdWxlZFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcApAQCAtMTMyLDYgKzEzMiw3IEBAIHZvaWQg
QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjp1cGRhdGVTY2hlZHVsaW5nSW5mbyhzaXplX3QgcXVh
bnR1bUZyYW1lU2l6ZSwgQXVkCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB3aGVuKTsKIAogICAgIGNvbnRleHQoKS5u
b2RlV2lsbEJlZ2luUGxheWJhY2soKTsKIApAQCAtMTQ5LDYgKzE1MCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4pCiBFeGNl
cHRpb25Pcjx2b2lkPiBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0b3AoZG91YmxlIHdoZW4p
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIHdoZW4pOwogCiAgICAgaWYgKG1fcGxheWJhY2tTdGF0ZSA9PSBVTlNDSEVEVUxFRF9T
VEFURSB8fCBtX2VuZFRpbWUgIT0gVW5rbm93blRpbWUpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKaW5kZXggYzVlYWFiMDA0ZmM2N2EwMzEz
MzBlMDA3MGRlMzQzNWI2ZDY2ZmYyMS4uZGYzNjRiNDBmZmUzY2FlYjU4ZGE2NjFmZDA4ZGRlNTIw
OTJmYzA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1
YWRGaWx0ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZEZpbHRlck5vZGUuY3BwCkBAIC0zMyw5ICszMywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBCaXF1YWRGaWx0ZXJOb2RlOjpCaXF1YWRGaWx0ZXJOb2RlKEF1ZGlvQ29udGV4dCYgY29udGV4
dCwgZmxvYXQgc2FtcGxlUmF0ZSkKICAgICA6IEF1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlKGNvbnRl
eHQsIHNhbXBsZVJhdGUpCiB7CisgICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVCaXF1YWRGaWx0ZXIp
OworCiAgICAgLy8gSW5pdGlhbGx5IHNldHVwIGFzIGxvd3Bhc3MgZmlsdGVyLgogICAgIG1fcHJv
Y2Vzc29yID0gc3RkOjptYWtlX3VuaXF1ZTxCaXF1YWRQcm9jZXNzb3I+KGNvbnRleHQsIHNhbXBs
ZVJhdGUsIDEsIGZhbHNlKTsKLSAgICBzZXROb2RlVHlwZShOb2RlVHlwZUJpcXVhZEZpbHRlcik7
CiB9CiAKIEJpcXVhZEZpbHRlclR5cGUgQmlxdWFkRmlsdGVyTm9kZTo6dHlwZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxNZXJnZXJO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbE1lcmdlck5v
ZGUuY3BwCmluZGV4IGI4M2M2Njc2OTA4ZWYyNjFjZjgwMWMxZDc2MGU2MDg4YzkzNmEzZjMuLmUz
NjRiY2FmYmMyODcyZDViNTEwYTYyNzkwNGQxNzc3ZjBiNWMwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbE1lcmdlck5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbE1lcmdlck5vZGUuY3BwCkBAIC01
MiwxNCArNTIsMTQgQEAgQ2hhbm5lbE1lcmdlck5vZGU6OkNoYW5uZWxNZXJnZXJOb2RlKEF1ZGlv
Q29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgdW4KICAgICA6IEF1ZGlvTm9kZShj
b250ZXh0LCBzYW1wbGVSYXRlKQogICAgICwgbV9kZXNpcmVkTnVtYmVyT2ZPdXRwdXRDaGFubmVs
cyhEZWZhdWx0TnVtYmVyT2ZPdXRwdXRDaGFubmVscykKIHsKKyAgICBzZXROb2RlVHlwZShOb2Rl
VHlwZUNoYW5uZWxNZXJnZXIpOworCiAgICAgLy8gQ3JlYXRlIHRoZSByZXF1ZXN0ZWQgbnVtYmVy
IG9mIGlucHV0cy4KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZJbnB1dHM7
ICsraSkKICAgICAgICAgYWRkSW5wdXQoc3RkOjptYWtlX3VuaXF1ZTxBdWRpb05vZGVJbnB1dD4o
dGhpcykpOwogCiAgICAgYWRkT3V0cHV0KHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9Ob2RlT3V0cHV0
Pih0aGlzLCAxKSk7CiAgICAgCi0gICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVDaGFubmVsTWVyZ2Vy
KTsKLSAgICAKICAgICBpbml0aWFsaXplKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxTcGxpdHRlck5vZGUuY3BwCmluZGV4IDc0ZWZm
MWQ3OGZkNDhiNDQ2NzUyZGZjZTRjNDA5YmY0YjMzMmE0NzMuLmQyMTk5ZmY0YjdhYTIxMzlhYzc0
M2Q0NzcyMjcxM2Y4NjczN2UxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9DaGFubmVsU3BsaXR0ZXJOb2RlLmNwcApAQCAtNDUsMTQgKzQ1LDE0IEBA
IFJlZlB0cjxDaGFubmVsU3BsaXR0ZXJOb2RlPiBDaGFubmVsU3BsaXR0ZXJOb2RlOjpjcmVhdGUo
QXVkaW9Db250ZXh0JiBjb250ZXh0LCBmCiBDaGFubmVsU3BsaXR0ZXJOb2RlOjpDaGFubmVsU3Bs
aXR0ZXJOb2RlKEF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgdW5zaWdu
ZWQgbnVtYmVyT2ZPdXRwdXRzKQogICAgIDogQXVkaW9Ob2RlKGNvbnRleHQsIHNhbXBsZVJhdGUp
CiB7CisgICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVDaGFubmVsU3BsaXR0ZXIpOworCiAgICAgYWRk
SW5wdXQoc3RkOjptYWtlX3VuaXF1ZTxBdWRpb05vZGVJbnB1dD4odGhpcykpOwogCiAgICAgLy8g
Q3JlYXRlIGEgZml4ZWQgbnVtYmVyIG9mIG91dHB1dHMgKGFibGUgdG8gaGFuZGxlIHRoZSBtYXhp
bXVtIG51bWJlciBvZiBjaGFubmVscyBmZWQgdG8gYW4gaW5wdXQpLgogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1iZXJPZk91dHB1dHM7ICsraSkKICAgICAgICAgYWRkT3V0cHV0KHN0
ZDo6bWFrZV91bmlxdWU8QXVkaW9Ob2RlT3V0cHV0Pih0aGlzLCAxKSk7CiAgICAgCi0gICAgc2V0
Tm9kZVR5cGUoTm9kZVR5cGVDaGFubmVsU3BsaXR0ZXIpOwotICAgIAogICAgIGluaXRpYWxpemUo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252
b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVy
Tm9kZS5jcHAKaW5kZXggYzI0MGViOGE4YjczY2I2Y2E4N2ZkNzdjYmUyZWYxMWQ0MjBmYjhmNC4u
MTJhMDk0ODQ2NjA3ZDYyZjJhNjBhNWFlZTE0ZjAzOTZlMzllMjMxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBAIC00Nyw2ICs0
Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIENvbnZvbHZlck5vZGU6OkNvbnZvbHZlck5vZGUo
QXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIDogQXVkaW9Ob2Rl
KGNvbnRleHQsIHNhbXBsZVJhdGUpCiB7CisgICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVDb252b2x2
ZXIpOworCiAgICAgYWRkSW5wdXQoc3RkOjptYWtlX3VuaXF1ZTxBdWRpb05vZGVJbnB1dD4odGhp
cykpOwogICAgIGFkZE91dHB1dChzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvTm9kZU91dHB1dD4odGhp
cywgMikpOwogCkBAIC01NCw4ICs1Niw2IEBAIENvbnZvbHZlck5vZGU6OkNvbnZvbHZlck5vZGUo
QXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIG1fY2hhbm5lbENv
dW50ID0gMjsKICAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDbGFtcGVkTWF4OwogICAgIG1fY2hh
bm5lbEludGVycHJldGF0aW9uID0gQXVkaW9CdXM6OlNwZWFrZXJzOwotCi0gICAgc2V0Tm9kZVR5
cGUoTm9kZVR5cGVDb252b2x2ZXIpOwogICAgIAogICAgIGluaXRpYWxpemUoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA3YWNlN2U3MzYxODQxM2YwM2I0MmJmNTZjMDY0
N2NmMjA0MDgyZDA4Li5hNmQxMzRmZGNmNWIzODc4YzIyOGJjM2YwNjVmNjhlZWJiYTI1OTc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9E
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC01Nyw2ICs1Nyw3IEBAIHZvaWQgRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjppbml0aWFsaXplKCkKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOyAKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKQogICAgICAgICByZXR1cm47Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAogICAgIGNyZWF0ZURlc3RpbmF0aW9uKCk7
CiAgICAgQXVkaW9Ob2RlOjppbml0aWFsaXplKCk7CkBAIC02OCw2ICs2OSw3IEBAIHZvaWQgRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjp1bmluaXRpYWxpemUoKQogICAgIGlmICghaXNJbml0
aWFsaXplZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOwogICAgIG1fZGVzdGluYXRpb24tPnN0b3AoKTsKICAgICBtX2Rlc3RpbmF0aW9uID0gbnVs
bHB0cjsKICAgICBtX251bWJlck9mSW5wdXRDaGFubmVscyA9IDA7CkBAIC04NSw2ICs4Nyw4IEBA
IHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVhdGVEZXN0aW5hdGlvbigpCiAK
IHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJbnB1dChjb25zdCBTdHJp
bmcmIGlucHV0RGV2aWNlSWQpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKwog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKG1fbnVtYmVyT2ZJbnB1dENoYW5u
ZWxzICE9IEVuYWJsZWRJbnB1dENoYW5uZWxzKSB7CiAgICAgICAgIG1fbnVtYmVyT2ZJbnB1dENo
YW5uZWxzID0gRW5hYmxlZElucHV0Q2hhbm5lbHM7CkBAIC0xNDQsNiArMTQ4LDcgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzZXRDaGFubmVsQ291bnQo
dW5zaWduZWQgY2hhbm5lbEMKICAgICAvLyBjaGFubmVscyBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3
YXJlLgogCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsIGNoYW5uZWxDb3VudCk7CiAKICAgICBpZiAoIW1heENoYW5uZWxDb3VudCgpIHx8
IGNoYW5uZWxDb3VudCA+IG1heENoYW5uZWxDb3VudCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vRGVsYXlOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vRGVsYXlOb2RlLmNwcAppbmRleCBkNDRjMzIyODRhMDc5MGE4ZTM5ZDc3OTMwNmYxOWYy
ZjIxMDg3ZTdmLi4zODljZDA2NzcwOGMzMTBiYjQwOWI0ZjI0MzY4MDlkZGFiOGQwMzQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5Tm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheU5vZGUuY3BwCkBAIC0zNyw4
ICszNyw4IEBAIGNvbnN0IGRvdWJsZSBtYXhpbXVtQWxsb3dlZERlbGF5VGltZSA9IDE4MDsKIGlu
bGluZSBEZWxheU5vZGU6OkRlbGF5Tm9kZShBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNh
bXBsZVJhdGUsIGRvdWJsZSBtYXhEZWxheVRpbWUpCiAgICAgOiBBdWRpb0Jhc2ljUHJvY2Vzc29y
Tm9kZShjb250ZXh0LCBzYW1wbGVSYXRlKQogewotICAgIG1fcHJvY2Vzc29yID0gc3RkOjptYWtl
X3VuaXF1ZTxEZWxheVByb2Nlc3Nvcj4oY29udGV4dCwgc2FtcGxlUmF0ZSwgMSwgbWF4RGVsYXlU
aW1lKTsKICAgICBzZXROb2RlVHlwZShOb2RlVHlwZURlbGF5KTsKKyAgICBtX3Byb2Nlc3NvciA9
IHN0ZDo6bWFrZV91bmlxdWU8RGVsYXlQcm9jZXNzb3I+KGNvbnRleHQsIHNhbXBsZVJhdGUsIDEs
IG1heERlbGF5VGltZSk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxEZWxheU5vZGU+PiBEZWxheU5v
ZGU6OmNyZWF0ZShBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIGRvdWJs
ZSBtYXhEZWxheVRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcAppbmRleCBhMWFlNjZhMjgxZjU4NTE2
ZDNlZGMxMjk4MTI1MGNkNWNmZjY0MzZkLi5kYmViNDFmZmY0Y2MyNTlkOTdiZjM2NmQ1ZGIyNmQ1
ZTlmZDQ5NmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAKQEAgLTQxLDExICs0MSwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBEeW5hbWljc0NvbXByZXNzb3JOb2RlOjpEeW5hbWljc0NvbXByZXNz
b3JOb2RlKEF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKICAgICA6IEF1
ZGlvTm9kZShjb250ZXh0LCBzYW1wbGVSYXRlKQogeworICAgIHNldE5vZGVUeXBlKE5vZGVUeXBl
RHluYW1pY3NDb21wcmVzc29yKTsKKwogICAgIGFkZElucHV0KHN0ZDo6bWFrZV91bmlxdWU8QXVk
aW9Ob2RlSW5wdXQ+KHRoaXMpKTsKICAgICBhZGRPdXRwdXQoc3RkOjptYWtlX3VuaXF1ZTxBdWRp
b05vZGVPdXRwdXQ+KHRoaXMsIGRlZmF1bHROdW1iZXJPZk91dHB1dENoYW5uZWxzKSk7CiAKLSAg
ICBzZXROb2RlVHlwZShOb2RlVHlwZUR5bmFtaWNzQ29tcHJlc3Nvcik7Ci0KICAgICBtX3RocmVz
aG9sZCA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidGhyZXNob2xkIiwgLTI0LCAtMTAw
LCAwKTsKICAgICBtX2tuZWUgPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImtuZWUiLCAz
MCwgMCwgNDApOwogICAgIG1fcmF0aW8gPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInJh
dGlvIiwgMTIsIDEsIDIwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vR2Fpbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9HYWlu
Tm9kZS5jcHAKaW5kZXggZDQ4YzNhMTY1MjZlOWFlYTZkZDI2ZDM5MjRlZTc2ZTk5OWJkYjU3ZS4u
MDg5OTMxM2FkYWVkMTBlMWU4YTk0ZWEwMThhYjdiYzVmNmNlZjhmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5jcHAKQEAgLTM5LDEzICszOSwxMyBAQCBH
YWluTm9kZTo6R2Fpbk5vZGUoQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRl
KQogICAgICwgbV9sYXN0R2FpbigxLjApCiAgICAgLCBtX3NhbXBsZUFjY3VyYXRlR2FpblZhbHVl
cyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpIC8vIEZJWE1FOiBjYW4gcHJvYmFi
bHkgc2hhcmUgdGVtcCBidWZmZXIgaW4gY29udGV4dAogeworICAgIHNldE5vZGVUeXBlKE5vZGVU
eXBlR2Fpbik7CisKICAgICBtX2dhaW4gPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImdh
aW4iLCAxLjAsIDAuMCwgMS4wKTsKIAogICAgIGFkZElucHV0KHN0ZDo6bWFrZV91bmlxdWU8QXVk
aW9Ob2RlSW5wdXQ+KHRoaXMpKTsKICAgICBhZGRPdXRwdXQoc3RkOjptYWtlX3VuaXF1ZTxBdWRp
b05vZGVPdXRwdXQ+KHRoaXMsIDEpKTsKIAotICAgIHNldE5vZGVUeXBlKE5vZGVUeXBlR2Fpbik7
Ci0KICAgICBpbml0aWFsaXplKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcApp
bmRleCA1NzY1NTRkYTY3NDMyMTllNzAwOGQ5MDk2NTU2MmE1NzMxMWY2NDM0Li42ZmExODUxODQw
MzE3YmY4MWM3NTFiZTk5MTdmMDllMDM1OGU5NGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGUuY3BwCkBAIC01MSwxMSArNTEsMTEgQEAgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpN
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUoQXVkaW9Db250ZXh0JiBjb250ZXh0LAogICAgICwg
bV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzKDApCiAgICAgLCBtX3NvdXJjZVNhbXBsZVJhdGUoMCkK
IHsKKyAgICBzZXROb2RlVHlwZShOb2RlVHlwZU1lZGlhRWxlbWVudEF1ZGlvU291cmNlKTsKKwog
ICAgIC8vIERlZmF1bHQgdG8gc3RlcmVvLiBUaGlzIGNvdWxkIGNoYW5nZSBkZXBlbmRpbmcgb24g
d2hhdCB0aGUgbWVkaWEgZWxlbWVudCAuc3JjIGlzIHNldCB0by4KICAgICBhZGRPdXRwdXQoc3Rk
OjptYWtlX3VuaXF1ZTxBdWRpb05vZGVPdXRwdXQ+KHRoaXMsIDIpKTsKIAotICAgIHNldE5vZGVU
eXBlKE5vZGVUeXBlTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2UpOwotCiAgICAgaW5pdGlhbGl6ZSgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCmluZGV4IGZlMDYxNDdhMGNiMmE1ZDE4
N2EyNGE0MDkzM2YwODE4NjUzNzgzMzEuLmFmNWQ4YzkwYzljMWM4YTU5MDA5YWY1YWY1NjVlMjI0
NjY3ZTQ4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC00NSw2ICs0NSw4IEBA
IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZShB
dWRpb0NvbnRleHQmIGNvbnRleHQsIE1lCiAgICAgLCBtX21lZGlhU3RyZWFtKG1lZGlhU3RyZWFt
KQogICAgICwgbV9hdWRpb1RyYWNrKGF1ZGlvVHJhY2spCiB7CisgICAgc2V0Tm9kZVR5cGUoTm9k
ZVR5cGVNZWRpYVN0cmVhbUF1ZGlvU291cmNlKTsKKyAgICAKICAgICBBdWRpb1NvdXJjZVByb3Zp
ZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyID0gbV9hdWRpb1RyYWNrLT5hdWRpb1NvdXJjZVByb3Zp
ZGVyKCk7CiAgICAgQVNTRVJUKGF1ZGlvU291cmNlUHJvdmlkZXIpOwogCkBAIC01Myw4ICs1NSw2
IEBAIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9k
ZShBdWRpb0NvbnRleHQmIGNvbnRleHQsIE1lCiAgICAgLy8gRGVmYXVsdCB0byBzdGVyZW8uIFRo
aXMgY291bGQgY2hhbmdlIGRlcGVuZGluZyBvbiB0aGUgZm9ybWF0IG9mIHRoZSBNZWRpYVN0cmVh
bSdzIGF1ZGlvIHRyYWNrLgogICAgIGFkZE91dHB1dChzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvTm9k
ZU91dHB1dD4odGhpcywgMikpOwogCi0gICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVNZWRpYVN0cmVh
bUF1ZGlvU291cmNlKTsKLQogICAgIGluaXRpYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwCmluZGV4IGU5OTViMDg2NTg3MDY3OWY3YTZiZjlhMjFhYzI4ZTFkZjNlMzE0
MzQuLmFjY2IxZDJjNmMzNjRiODdmNjc3NTBiZTI1Y2NhZjBhZWZiYjc0MTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTc0LDYgKzc0LDggQEAgdm9pZCBPZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OnVuaW5pdGlhbGl6ZSgpCiAKIHZvaWQgT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpzdGFydFJlbmRlcmluZygpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKKwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fcmVuZGVy
VGFyZ2V0LmdldCgpKTsKICAgICBpZiAoIW1fcmVuZGVyVGFyZ2V0LmdldCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAppbmRleCAw
NWEwMTNmMGQ1NmQ0YjQ0MDU5NTQ2ODVmYjBiZDQxNGQ2ZTI0YjI0Li5jMjA4YTVmM2E4MjA4YmM3
MzM3MDRmNTNiYjNkNzUwNmNlYTAzY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcApAQCAtNzksNiArNzksOCBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBPc2NpbGxhdG9yTm9kZTo6c2V0VHlwZShUeXBlIHR5cGUpCiB7CiAgICAgUGVy
aW9kaWNXYXZlKiBwZXJpb2RpY1dhdmUgPSBudWxscHRyOwogCisgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCB0eXBlKTsKKwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgVHlwZTo6
U2luZToKICAgICAgICAgaWYgKCFzX3BlcmlvZGljV2F2ZVNpbmUpCkBAIC0yOTcsOCArMjk5LDkg
QEAgdm9pZCBPc2NpbGxhdG9yTm9kZTo6cmVzZXQoKQogCiB2b2lkIE9zY2lsbGF0b3JOb2RlOjpz
ZXRQZXJpb2RpY1dhdmUoUGVyaW9kaWNXYXZlKiBwZXJpb2RpY1dhdmUpCiB7CisgICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCAic2FtcGxlIHJhdGUgPSAiLCBwZXJpb2RpY1dhdmUgPyBwZXJp
b2RpY1dhdmUtPnNhbXBsZVJhdGUoKSA6IDAsICIsIHdhdmUgc2l6ZSA9ICIsIHBlcmlvZGljV2F2
ZSA/IHBlcmlvZGljV2F2ZS0+cGVyaW9kaWNXYXZlU2l6ZSgpIDogMCwgIiwgcmF0ZSBzY2FsZSA9
ICIsIHBlcmlvZGljV2F2ZSA/IHBlcmlvZGljV2F2ZS0+cmF0ZVNjYWxlKCkgOiAwKTsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCisgICAgCiAgICAgLy8gVGhpcyBzeW5jaHJvbml6ZXMg
d2l0aCBwcm9jZXNzKCkuCiAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9wcm9jZXNz
TXV0ZXgpOwogICAgIG1fcGVyaW9kaWNXYXZlID0gcGVyaW9kaWNXYXZlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5oCmluZGV4IDc5MGYwMTUw
NzYzYjNlMjIyYzQwMDRmZDYxZTBjY2I1Mjc3ZDcwZDIuLmNmOGRlZDcyZTg4OWU0NTdmNDgzNWM1
MWMyYWQxYTM3NDM1MTQ1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09zY2lsbGF0b3JOb2RlLmgKQEAgLTEwMSw0ICsxMDEsMTQgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgUGVyaW9kaWNXYXZlKiBzX3BlcmlvZGljV2F2ZVRyaWFuZ2xlOwogfTsKIAorU3RyaW5n
IGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE9zY2lsbGF0b3JOb2RlOjpUeXBlKTsgLy8gSW4g
SlNPc2NpbGxhdG9yTm9kZS5jcHAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3Bh
Y2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6T3NjaWxs
YXRvck5vZGU6OlR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok9z
Y2lsbGF0b3JOb2RlOjpUeXBlIHR5cGUpIHsgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKHR5cGUpOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IGQ3ZjkyY2FiY2I5OWMzMWI3
YWY4MTRhY2M2OGFlMDQ1OGU5YWVhY2YuLjc1YTIzZTRmM2I1MjVmMGExYjgyZDU4N2FhZWUwM2Qx
YWVmMWI5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFu
bmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJO
b2RlLmNwcApAQCAtNTAsNiArNTAsOCBAQCBQYW5uZXJOb2RlOjpQYW5uZXJOb2RlKEF1ZGlvQ29u
dGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKICAgICAsIG1fbGFzdEdhaW4oLTEuMCkK
ICAgICAsIG1fY29ubmVjdGlvbkNvdW50KDApCiB7CisgICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVQ
YW5uZXIpOworICAgIAogICAgIC8vIExvYWQgdGhlIEhSVEYgZGF0YWJhc2UgYXN5bmNocm9ub3Vz
bHkgc28gd2UgZG9uJ3QgYmxvY2sgdGhlIEphdmFzY3JpcHQgdGhyZWFkIHdoaWxlIGNyZWF0aW5n
IHRoZSBIUlRGIGRhdGFiYXNlLgogICAgIG1faHJ0ZkRhdGFiYXNlTG9hZGVyID0gSFJURkRhdGFi
YXNlTG9hZGVyOjpjcmVhdGVBbmRMb2FkQXN5bmNocm9ub3VzbHlJZk5lY2Vzc2FyeShjb250ZXh0
LnNhbXBsZVJhdGUoKSk7CiAKQEAgLTY4LDggKzcwLDYgQEAgUGFubmVyTm9kZTo6UGFubmVyTm9k
ZShBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgbV9vcmllbnRh
dGlvbiA9IEZsb2F0UG9pbnQzRCgxLCAwLCAwKTsKICAgICBtX3ZlbG9jaXR5ID0gRmxvYXRQb2lu
dDNEKDAsIDAsIDApOwogCi0gICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVQYW5uZXIpOwotCiAgICAg
aW5pdGlhbGl6ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCBiOWNjMjBjZDJlNWFmYzc2MTFi
MzcwMzA2ZTEwNDEyODQ3YjIwOGQ2Li5hNWZjYTI3ZmMwNDk2ZjFmNTEzZDQ2MzhhODBiOTVhYzZk
YjY4YzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Njcmlw
dFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
U2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTY0LDExICs2NCwxMCBAQCBTY3JpcHRQcm9jZXNz
b3JOb2RlOjpTY3JpcHRQcm9jZXNzb3JOb2RlKEF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQg
c2FtcGxlUmF0ZQogCiAgICAgQVNTRVJUKG51bWJlck9mSW5wdXRDaGFubmVscyA8PSBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSk7CiAKKyAgICBzZXROb2RlVHlwZShOb2RlVHlw
ZUphdmFTY3JpcHQpOwogICAgIGFkZElucHV0KHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9Ob2RlSW5w
dXQ+KHRoaXMpKTsKICAgICBhZGRPdXRwdXQoc3RkOjptYWtlX3VuaXF1ZTxBdWRpb05vZGVPdXRw
dXQ+KHRoaXMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMpKTsKIAotICAgIHNldE5vZGVUeXBlKE5v
ZGVUeXBlSmF2YVNjcmlwdCk7Ci0KICAgICBpbml0aWFsaXplKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKaW5kZXggNTBj
ZjA2MzBjODc0ZmVkOGM0MjViMzA4ZDY2NGNmYmNkZjFjNmRiNC4uOTE5NzI0ZjBiNjJiNDgxOTE1
MTAzZTFiYmJmNjkxYzNmNjBlMjE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKQEAgLTMyLDExICszMiwxMiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKKwogV2F2ZVNoYXBlck5vZGU6OldhdmVTaGFwZXJOb2RlKEF1ZGlv
Q29udGV4dCYgY29udGV4dCkKICAgICA6IEF1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlKGNvbnRleHQs
IGNvbnRleHQuc2FtcGxlUmF0ZSgpKQogewotICAgIG1fcHJvY2Vzc29yID0gc3RkOjptYWtlX3Vu
aXF1ZTxXYXZlU2hhcGVyUHJvY2Vzc29yPihjb250ZXh0LnNhbXBsZVJhdGUoKSwgMSk7CiAgICAg
c2V0Tm9kZVR5cGUoTm9kZVR5cGVXYXZlU2hhcGVyKTsKKyAgICBtX3Byb2Nlc3NvciA9IHN0ZDo6
bWFrZV91bmlxdWU8V2F2ZVNoYXBlclByb2Nlc3Nvcj4oY29udGV4dC5zYW1wbGVSYXRlKCksIDEp
OwogCiAgICAgaW5pdGlhbGl6ZSgpOwogfQpAQCAtNDQsNiArNDUsNyBAQCBXYXZlU2hhcGVyTm9k
ZTo6V2F2ZVNoYXBlck5vZGUoQXVkaW9Db250ZXh0JiBjb250ZXh0KQogdm9pZCBXYXZlU2hhcGVy
Tm9kZTo6c2V0Q3VydmUoRmxvYXQzMkFycmF5JiBjdXJ2ZSkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOyAKKyAgICBERUJVR19MT0coTE9HSURFTlRJRklFUik7CiAgICAgd2F2ZVNoYXBl
clByb2Nlc3NvcigpLT5zZXRDdXJ2ZSgmY3VydmUpOwogfQogCkBAIC02OSw2ICs3MSw3IEBAIHN0
YXRpYyBpbmxpbmUgV2F2ZVNoYXBlclByb2Nlc3Nvcjo6T3ZlclNhbXBsZVR5cGUgcHJvY2Vzc29y
VHlwZShXYXZlU2hhcGVyTm9kZTo6CiB2b2lkIFdhdmVTaGFwZXJOb2RlOjpzZXRPdmVyc2FtcGxl
KE92ZXJTYW1wbGVUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgdHlwZSk7CiAKICAgICAvLyBTeW5jaHJvbml6ZSB3
aXRoIGFueSBncmFwaCBjaGFuZ2VzIG9yIGNoYW5nZXMgdG8gY2hhbm5lbCBjb25maWd1cmF0aW9u
LgogICAgIEF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBjb250ZXh0TG9ja2VyKGNvbnRleHQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJO
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmgK
aW5kZXggNzczYzA0ZmMwMWZlM2NhZDE3MDk0ZDYyYTlmNGJhN2Q4NmY5ZmJmOS4uY2QxNDZiZjA4
OTBiNzY1ZDBjNTZkYWU3OTdlNjc1MTA3YmNkYWI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaApAQCAtNTMsNCArNTMsMTQgQEAgcHJp
dmF0ZToKICAgICBXYXZlU2hhcGVyUHJvY2Vzc29yKiB3YXZlU2hhcGVyUHJvY2Vzc29yKCkgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V2F2ZVNoYXBlclByb2Nlc3Nvcio+KHByb2Nlc3NvcigpKTsgfQog
fTsKIAorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFdlYkNvcmU6OldhdmVTaGFw
ZXJOb2RlOjpPdmVyU2FtcGxlVHlwZSk7IC8vIGluIEpTV2F2ZVNoYXBlck5vZGUuY3BwCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisgICAgCit0ZW1wbGF0ZTw+
IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpXYXZlU2hhcGVyTm9kZTo6T3ZlclNhbXBsZVR5
cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6OldhdmVTaGFwZXJOb2Rl
OjpPdmVyU2FtcGxlVHlwZSB0eXBlKSB7IHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmlu
Zyh0eXBlKTsgfQorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>