<?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>199611</bug_id>
          
          <creation_ts>2019-07-09 01:43:06 -0700</creation_ts>
          <short_desc>Web Inspector: Canvas: replace WTF::Vector with std::initializer_list in CallTracer to avoid dynamic allocations</short_desc>
          <delta_ts>2019-07-09 14:08:45 -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 Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1551172</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-09 01:43:06 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551173</commentid>
    <comment_count>1</comment_count>
      <attachid>373702</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-09 01:58:20 -0700</bug_when>
    <thetext>Created attachment 373702
Patch

Test on bots :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551239</commentid>
    <comment_count>2</comment_count>
      <attachid>373720</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-09 08:42:33 -0700</bug_when>
    <thetext>Created attachment 373720
Patch

Oops.  Forgot to update bindings test :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551381</commentid>
    <comment_count>3</comment_count>
      <attachid>373720</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-07-09 13:26:15 -0700</bug_when>
    <thetext>Comment on attachment 373720
Patch

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

rs=me

&gt; Source/WebCore/ChangeLog:41
&gt; +                  would otherwise be treated as an array of numbers.

Weird whitespace in these ChangeLogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551393</commentid>
    <comment_count>4</comment_count>
      <attachid>373720</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-09 13:37:00 -0700</bug_when>
    <thetext>Comment on attachment 373720
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:41
&gt;&gt; +                  would otherwise be treated as an array of numbers.
&gt; 
&gt; Weird whitespace in these ChangeLogs.

I prefer this, as the &quot;prefix&quot; (e.g. &quot;Drive-by&quot;) is much easier to see/identify/read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551422</commentid>
    <comment_count>5</comment_count>
      <attachid>373720</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-09 14:07:59 -0700</bug_when>
    <thetext>Comment on attachment 373720
Patch

Clearing flags on attachment: 373720

Committed r247278: &lt;https://trac.webkit.org/changeset/247278&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551423</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-09 14:08:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551424</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-09 14:08:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/52852082&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373702</attachid>
            <date>2019-07-09 01:58:20 -0700</date>
            <delta_ts>2019-07-09 08:42:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199611-20190709015819.patch</filename>
            <type>text/plain</type>
            <size>36646</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MmEyMWNkY2FkMGNiMDk1MWI1NGJkZjRmZDg3NTM2NjNjZjA2ZTExLi45
MDA3OTg0MmYyOWQwYWQ3OTIzOGViZTgzMGI5NGU5ZjkyZDc1N2Q0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDQgQEAKKzIwMTktMDctMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogcmVwbGFjZSBXVEY6OlZlY3RvciB3
aXRoIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdCBpbiBDYWxsVHJhY2VyIHRvIGF2b2lkIGR5bmFtaWMg
YWxsb2NhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5OTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBlYWNoIG1lbWJlciBmdW5jdGlvbiBpcyBr
bm93biBhdCBidWlsZCB0aW1lLCBzbyB0aGVyZSdzIG5vIG5lZWQKKyAgICAgICAgdG8gZHluYW1p
Y2FsbHkgYWxsb2NhdGUgYSBgV1RGOjpWZWN0b3JgIHdoZW4gY2FwdHVyaW5nIHRoZSBhcmd1bWVu
dHMuIE9uZSBkb3duc2lkZSB0byB1c2luZworICAgICAgICBhIGBzdGQ6OmluaXRpYWxpemVyX2xp
c3RgIGlzIHRoYXQgd2UgY2FuIG5vIGxvbmdlciAiZmxhdHRlbiIgYFdURjo6VmFyaWFudGAgYXJn
dW1lbnRzIGludG8KKyAgICAgICAgYSBgUmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudGAsIGJ1dCB0
aGlzIGlzIGFjY2VwdGFibGUgYmVjYXVzZSBgV1RGOjpWYXJpYW50YCBzdXBwb3J0cyBoYXZpbmcK
KyAgICAgICAgeWV0IGFub3RoZXIgYFdURjo6VmFyaWFudGAgYXMgb25lIG9mIGl0J3MgdHlwZXMs
IHdoaWNoIHRoZSBgSW5zcGVjdG9yQ2FudmFzYCBjYW4gdGhlbiBmaWd1cmUKKyAgICAgICAgb3V0
IHdoZW4gaXQgZmluYWxseSBnZXRzIHRoZSBkYXRhLiBUaGUgc2FtZSBhcHBsaWVzIHRvIGBudWxs
cHRyYC9gT3B0aW9uYWxgIGNoZWNrcyBhcyB3ZWxsLgorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRl
ckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlv
bkNhbGwpOgorICAgICAgICAoR2VuZXJhdGVDYWxsVHJhY2VyKToKKyAgICAgICAgKEdlbmVyYXRl
Q2FsbFRyYWNlclBhcmFtZXRlcik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9D
YWxsVHJhY2VyVHlwZXMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWxsVHJhY2VyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvQ2FsbFRyYWNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWxsVHJhY2VyOjpyZWNvcmRDYW52YXNBY3Rpb24pOgorCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpyZWNvcmRDYW52YXNBY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpyZWNvcmRDYW52YXNBY3Rpb25JbXBsKToKKworICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNhbnZhc0FnZW50OjpyZWNvcmRDYW52YXNBY3Rpb24pOgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckNhbnZhcy5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
YW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzOjpyZWNvcmRBY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzOjpidWlsZEFjdGlvbik6Cisg
ICAgICAgIERyaXZlLWJ5OiBoYW5kbGUgdGhlIHNpdHVhdGlvbiB3aGVyZSBhIHBhcmFtZXRlciBp
cyBhbiBhcnJheSBvZiBkZWR1cGxpY2F0ZWQgc3RyaW5ncywgd2hpY2gKKyAgICAgICAgICAgICAg
ICAgIHdvdWxkIG90aGVyd2lzZSBiZSB0cmVhdGVkIGFzIGFuIGFycmF5IG9mIG51bWJlcnMuCisK
IDIwMTktMDctMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBN
YWtlIERvY3VtZW50Ojpwb3N0VGFzaygpIHNhZmUgdG8gY2FsbCBmcm9tIGEgYmFja2dyb3VuZCB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDU2NDFiMTgyNTRmZDAzMDg2NzhjODlh
NWVlMWQ1YTk4NDcwYzAyZmUuLmVjM2E4OWI2OTg0OTQ5ODUyZDczNmE0MmM3NzAzYTM5MzNjMDc1
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA3LTA5
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBDYW52YXM6IHJlcGxhY2UgV1RGOjpWZWN0b3Igd2l0aCBzdGQ6OmluaXRpYWxpemVyX2xp
c3QgaW4gQ2FsbFRyYWNlciB0byBhdm9pZCBkeW5hbWljIGFsbG9jYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk2MTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5wcm90b3R5cGUuYXN5bmMg
c3dpenpsZSk6CisgICAgICAgIERyaXZlLWJ5OiBoYW5kbGUgdGhlIHNpdHVhdGlvbiB3aGVyZSBh
IHBhcmFtZXRlciBpcyBhbiBhcnJheSBvZiBkZWR1cGxpY2F0ZWQgc3RyaW5ncywgd2hpY2gKKyAg
ICAgICAgICAgICAgICAgIHdvdWxkIG90aGVyd2lzZSBiZSB0cmVhdGVkIGFzIGFuIGFycmF5IG9m
IG51bWJlcnMuCisKIDIwMTktMDctMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERlYnVnZ2VyOiBzcGVjaWFsIGJyZWFrcG9pbnRz
IGFuZCBldmVudCB0YXJnZXRzIHNob3VsZCBiZSBzb3J0ZWQgaW50byBzZXBhcmF0ZSAiYXJlYXMi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJhY2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhbGxUcmFjZXIuY3BwCmluZGV4IDgwNzExNmQ1
YjkxOTRiZWEwMGI4MzI4MWJmNjQwYTM3YTg5NjlkMDYuLjliMDVjMzlkNTI0NjZmZGFiY2Q3MzBk
MzgwYjJkMzM2YTM4YWNjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0NhbGxUcmFjZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhbGxUcmFj
ZXIuY3BwCkBAIC0zMiwxMyArMzIsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lk
IENhbGxUcmFjZXI6OnJlY29yZENhbnZhc0FjdGlvbihjb25zdCBIVE1MQ2FudmFzRWxlbWVudCYg
Y2FudmFzRWxlbWVudCwgY29uc3QgU3RyaW5nJiBuYW1lLCBWZWN0b3I8UmVjb3JkQ2FudmFzQWN0
aW9uVmFyaWFudD4mJiBwYXJhbWV0ZXJzKQordm9pZCBDYWxsVHJhY2VyOjpyZWNvcmRDYW52YXNB
Y3Rpb24oY29uc3QgSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+
JiYgcGFyYW1ldGVycykKIHsKICAgICBpZiAoYXV0byogY2FudmFzUmVuZGVyaW5nQ29udGV4dCA9
IGNhbnZhc0VsZW1lbnQucmVuZGVyaW5nQ29udGV4dCgpKQogICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnJlY29yZENhbnZhc0FjdGlvbigqY2FudmFzUmVuZGVyaW5nQ29udGV4dCwg
bmFtZSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgQ2FsbFRyYWNlcjo6cmVjb3Jk
Q2FudmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmIGNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgVmVjdG9yPFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+
JiYgcGFyYW1ldGVycykKK3ZvaWQgQ2FsbFRyYWNlcjo6cmVjb3JkQ2FudmFzQWN0aW9uKENhbnZh
c1JlbmRlcmluZ0NvbnRleHQmIGNhbnZhc1JlbmRlcmluZ0NvbnRleHQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYg
cGFyYW1ldGVycykKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlY29yZENhbnZh
c0FjdGlvbihjYW52YXNSZW5kZXJpbmdDb250ZXh0LCBuYW1lLCBXVEZNb3ZlKHBhcmFtZXRlcnMp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhbGxUcmFjZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhbGxUcmFjZXIuaAppbmRleCBkYjI2NGYz
MzMyOWJlMmM2OTM0Nzc4Y2Q0MjFiMTc0ODAyNDdkNGFiLi5mZDU3MWY5YjJkNTE2NzQyNTg5NTkw
YTBlOTY0YzcxYTNhNjI5MjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWxsVHJhY2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FsbFRyYWNl
ci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNhbGxUcmFj
ZXJUeXBlcy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDxpbml0aWFsaXpl
cl9saXN0PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zNiw4ICszNiw4IEBAIGNsYXNzIEhUTUxDYW52YXNFbGVtZW50OwogCiBjbGFz
cyBDYWxsVHJhY2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCByZWNvcmRDYW52YXNBY3Rp
b24oY29uc3QgSFRNTENhbnZhc0VsZW1lbnQmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8UmVjb3Jk
Q2FudmFzQWN0aW9uVmFyaWFudD4mJiA9IHsgfSk7Ci0gICAgc3RhdGljIHZvaWQgcmVjb3JkQ2Fu
dmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8
UmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudD4mJiA9IHsgfSk7CisgICAgc3RhdGljIHZvaWQgcmVj
b3JkQ2FudmFzQWN0aW9uKGNvbnN0IEhUTUxDYW52YXNFbGVtZW50JiwgY29uc3QgU3RyaW5nJiwg
c3RkOjppbml0aWFsaXplcl9saXN0PFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYgPSB7IH0p
OworICAgIHN0YXRpYyB2b2lkIHJlY29yZENhbnZhc0FjdGlvbihDYW52YXNSZW5kZXJpbmdDb250
ZXh0JiwgY29uc3QgU3RyaW5nJiwgc3RkOjppbml0aWFsaXplcl9saXN0PFJlY29yZENhbnZhc0Fj
dGlvblZhcmlhbnQ+JiYgPSB7IH0pOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FsbFRyYWNlclR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJhY2VyVHlwZXMuaAppbmRleCA3YmM1NDA2
ZTg3ZTJjZjFhMTYzYzk2YWYxY2Y2MjhkZWI0ZTYwN2FlLi5lNzMwYTc2MWI4OWZiNWZjMGVjMDM3
OTAzZWRjZTQ0MjlhMWFhZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWxsVHJhY2VyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxs
VHJhY2VyVHlwZXMuaApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0Zsb2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ludDMyQXJyYXkuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmFyaWFu
dC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUzLDYgKzU0LDcgQEAKICNpbmNsdWRl
ICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFF1ZXJ5LmgiCiAjaW5jbHVkZSAiV2Vi
R0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgi
CiAjaW5jbHVkZSAiV2ViR0xTYW1wbGVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKICNp
bmNsdWRlICJXZWJHTFN5bmMuaCIKQEAgLTYyLDIxICs2NCwzMCBAQAogI2luY2x1ZGUgIldlYkdM
VmVydGV4QXJyYXlPYmplY3QuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQkdMMikKKyNpbmNs
dWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB1c2luZyBSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50ID0gVmFyaWFudDwKKyAgICAv
LyBlbnVtCiAgICAgQ2FudmFzRGlyZWN0aW9uLAogICAgIENhbnZhc0ZpbGxSdWxlLAogICAgIENh
bnZhc0xpbmVDYXAsCiAgICAgQ2FudmFzTGluZUpvaW4sCiAgICAgQ2FudmFzVGV4dEFsaWduLAog
ICAgIENhbnZhc1RleHRCYXNlbGluZSwKKyAgICBJbWFnZVNtb290aGluZ1F1YWxpdHksCisKKyAg
ICAvLyBzdHJ1Y3QKICAgICBET01NYXRyaXgyREluaXQsCisKKyAgICAvLyBwb2ludGVyCiAgICAg
RWxlbWVudCosCiAgICAgSFRNTEltYWdlRWxlbWVudCosCiAgICAgSW1hZ2VCaXRtYXAqLAogICAg
IEltYWdlRGF0YSosCi0gICAgSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LAogICAgIFBhdGgyRCosCiAj
aWYgRU5BQkxFKFdFQkdMKQogICAgIFdlYkdMQnVmZmVyKiwKQEAgLTEwOSwxMyArMTIwLDM1IEBA
IHVzaW5nIFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQgPSBWYXJpYW50PAogICAgIFJlZlB0cjxJ
bWFnZURhdGE+LAogICAgIFJlZlB0cjxJbnQzMkFycmF5PiwKICAgICBSZWZQdHI8VWludDMyQXJy
YXk+LAorCisgICAgLy8gdmFyaWFudAorICAgIENhbnZhc0ltYWdlU291cmNlLAorICAgIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OlN0eWxlLAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpCdWZmZXJEYXRhU291cmNlLAorICAgIE9wdGlvbmFs
PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OkJ1ZmZlckRhdGFTb3VyY2U+LAorICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OlRleEltYWdlU291cmNlLAorICAgIE9wdGlvbmFsPFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OlRleEltYWdlU291cmNlPiwKKyNlbmRpZgorCisgICAgLy8g
YXJyYXkKICAgICBWZWN0b3I8U3RyaW5nPiwKICAgICBWZWN0b3I8ZmxvYXQ+LAogICAgIFZlY3Rv
cjx1aW50MzJfdD4sCiAgICAgVmVjdG9yPGludDMyX3Q+LAorI2lmIEVOQUJMRShXRUJHTCkKKyAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpGbG9hdDMyTGlzdDo6VmFyaWFudFR5cGUsCisg
ICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6SW50MzJMaXN0OjpWYXJpYW50VHlwZSwKKyNl
bmRpZgorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6VWlu
dDMyTGlzdDo6VmFyaWFudFR5cGUsCisjZW5kaWYKKworICAgIC8vIGJhc2ljCiAgICAgU3RyaW5n
LAogICAgIGRvdWJsZSwKICAgICBmbG9hdCwKKyAgICBPcHRpb25hbDxmbG9hdD4sCiAgICAgdWlu
dDY0X3QsCiAgICAgaW50NjRfdCwKICAgICB1aW50MzJfdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZDA5ODJkZWI1MzEw
MDc2MzU2YTljZDFhMzY2ODZlMzhiMWI4YzRhNy4uMGI2MzMyYjU4MGYyNzQ4YjI1ZmFkNTUxNDRi
NmMzMjRmNTQ2NDIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTUwNjMsOCArNTA2Myw3IEBAIHN1YiBHZW5lcmF0ZUF0
dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW9uCiAgICAgICAgIG15ICRjYWxsVHJhY2luZ0NhbGxi
YWNrID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbFRyYWNpbmdDYWxsYmFj
a30gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbFRyYWNpbmdDYWxsYmFj
a307CiAgICAgICAgIGlmICgkY2FsbFRyYWNpbmdDYWxsYmFjaykgewogICAgICAgICAgICAgbXkg
JGluZGVudCA9ICIgICAgIjsKLSAgICAgICAgICAgIG15IEBjYWxsVHJhY2VyQXJndW1lbnRzID0g
KCk7Ci0gICAgICAgICAgICBwdXNoKEBjYWxsVHJhY2VyQXJndW1lbnRzLCBHZW5lcmF0ZUNhbGxU
cmFjZXJQYXJhbWV0ZXIoIm5hdGl2ZVZhbHVlIiwgJGF0dHJpYnV0ZS0+dHlwZSwgMCwgJGluZGVu
dCkpOworICAgICAgICAgICAgbXkgQGNhbGxUcmFjZXJBcmd1bWVudHMgPSAoIm5hdGl2ZVZhbHVl
Iik7CiAgICAgICAgICAgICBHZW5lcmF0ZUNhbGxUcmFjZXIoJG91dHB1dEFycmF5LCAkY2FsbFRy
YWNpbmdDYWxsYmFjaywgJGF0dHJpYnV0ZS0+bmFtZSwgXEBjYWxsVHJhY2VyQXJndW1lbnRzLCAk
aW5kZW50KTsKICAgICAgICAgfQogCkBAIC02MjYyLDEwICs2MjYxLDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwKIAogICAgIG15ICRjYWxsVHJhY2luZ0NhbGxiYWNr
ID0gJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbFRyYWNpbmdDYWxsYmFja30g
fHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbFRyYWNpbmdDYWxsYmFja307
CiAgICAgaWYgKCRjYWxsVHJhY2luZ0NhbGxiYWNrKSB7Ci0gICAgICAgIG15IEBjYWxsVHJhY2Vy
QXJndW1lbnRzID0gKCk7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGFyZ3VtZW50IChAeyRvcGVyYXRp
b24tPmFyZ3VtZW50c30pIHsKLSAgICAgICAgICAgIHB1c2goQGNhbGxUcmFjZXJBcmd1bWVudHMs
IEdlbmVyYXRlQ2FsbFRyYWNlclBhcmFtZXRlcigkYXJndW1lbnQtPm5hbWUsICRhcmd1bWVudC0+
dHlwZSwgJGFyZ3VtZW50LT5pc09wdGlvbmFsICYmICFkZWZpbmVkKCRhcmd1bWVudC0+ZGVmYXVs
dCksICRpbmRlbnQpKTsKLSAgICAgICAgfQorICAgICAgICBteSBAY2FsbFRyYWNlckFyZ3VtZW50
cyA9IG1hcCB7ICRfLT5uYW1lIH0gQHskb3BlcmF0aW9uLT5hcmd1bWVudHN9OwogICAgICAgICBH
ZW5lcmF0ZUNhbGxUcmFjZXIoJG91dHB1dEFycmF5LCAkY2FsbFRyYWNpbmdDYWxsYmFjaywgJG9w
ZXJhdGlvbi0+bmFtZSwgXEBjYWxsVHJhY2VyQXJndW1lbnRzLCAkaW5kZW50KTsKICAgICB9CiAK
QEAgLTc1MDUsNTcgKzc1MDEsMTggQEAgc3ViIEFkZEpTQnVpbHRpbkluY2x1ZGVzSWZOZWVkZWQo
KQogICAgIH0KIH0KIAotc3ViIEdlbmVyYXRlQ2FsbFRyYWNlclBhcmFtZXRlcigpCi17Ci0gICAg
bXkgKCRuYW1lLCAkdHlwZSwgJG9wdGlvbmFsLCAkaW5kZW50KSA9IEBfOwotCi0gICAgbXkgJHJl
c3VsdCA9ICIiOwotCi0gICAgaWYgKCRvcHRpb25hbCB8fCAkdHlwZS0+aXNOdWxsYWJsZSkgewot
ICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiICAgIGlmICgiIC4gJG5hbWUgLiAiKVxuIjsK
LSAgICAgICAgJHJlc3VsdCAuPSAiICAgICI7Ci0gICAgfQotCi0gICAgJHJlc3VsdCAuPSAkaW5k
ZW50IC4gIiAgICAiOwotCi0gICAgaWYgKCR0eXBlLT5pc1VuaW9uKSB7Ci0gICAgICAgICRyZXN1
bHQgLj0gIldURjo6dmlzaXQoWyZdIChhdXRvJiB2YWx1ZSkgeyBjYWxsVHJhY2VyUGFyYW1ldGVy
cy5hcHBlbmQodmFsdWUpOyB9LCAiOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICRyZXN1bHQgLj0g
ImNhbGxUcmFjZXJQYXJhbWV0ZXJzLmFwcGVuZCgiOwotICAgIH0KLQotICAgIGlmICgkb3B0aW9u
YWwgfHwgKCR0eXBlLT5pc1VuaW9uICYmICR0eXBlLT5pc051bGxhYmxlKSkgewotICAgICAgICAk
cmVzdWx0IC49ICIqIjsKLSAgICB9Ci0KLSAgICAkcmVzdWx0IC49ICRuYW1lIC4gIik7IjsKLQot
ICAgIHJldHVybiAkcmVzdWx0OwotfQotCiBzdWIgR2VuZXJhdGVDYWxsVHJhY2VyKCkKIHsKICAg
ICBteSAoJG91dHB1dEFycmF5LCAkY2FsbFRyYWNpbmdDYWxsYmFjaywgJG5hbWUsICRhcmd1bWVu
dHMsICRpbmRlbnQpID0gQF87CiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ2FsbFRyYWNlci5o
Iik7CiAKLSAgICBteSAkY291bnQgPSBzY2FsYXIoQCRhcmd1bWVudHMpOwotCi0gICAgcHVzaChA
JG91dHB1dEFycmF5LCAkaW5kZW50IC4gImlmIChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0
aXZlKCkpKSIpOwotICAgIGlmICgkY291bnQpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiIHtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIFZl
Y3RvcjwiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNhbGxUcmFjaW5nQ2FsbGJhY2sp
IC4gIlZhcmlhbnQ+IGNhbGxUcmFjZXJQYXJhbWV0ZXJzO1xuIik7Ci0gICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgam9pbigiXG4iLCBAJGFyZ3VtZW50cykpOwotICAgIH0KLSAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJp
ZiAoVU5MSUtFTFkoaW1wbC5jYWxsVHJhY2luZ0FjdGl2ZSgpKSlcbiIpOwogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgJGluZGVudCAuICIgICAgQ2FsbFRyYWNlcjo6IiAuICRjYWxsVHJhY2luZ0Nh
bGxiYWNrIC4gIihpbXBsLCBcIiIgLiAkbmFtZSAuICJcIl9zIik7Ci0gICAgaWYgKCRjb3VudCkg
ewotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIsIFdURk1vdmUoY2FsbFRyYWNlclBhcmFt
ZXRlcnMpIik7CisgICAgaWYgKHNjYWxhcihAJGFyZ3VtZW50cykpIHsKKyAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiLCB7ICIgLiBqb2luKCIsICIsIEAkYXJndW1lbnRzKSAuICIgfSIpOwog
ICAgIH0KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIpO1xuIik7Ci0gICAgaWYgKCRjb3VudCkg
ewotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAifVxuIikKLSAgICB9CiB9
CiAKIHN1YiBHZW5lcmF0ZUN1c3RvbUVsZW1lbnRSZWFjdGlvbnNTdGFja0lmTmVlZGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwCmluZGV4IDRiMjJkNWQy
Nzk2ZTk4NTZmNTVkNjlmMDBjMTVmMDIxZWFlMzI3OGYuLjI5YmUyYTBlNjkxMDc5ZWI2NWU0NWU4
ZjI4YmMyMzdjZjY5YmUwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDYW52YXMuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjZW5kaWYKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9T
Y3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTU4LDcgKzE1OSw3IEBAIHN0YXRpYyBib29sIHNob3Vs
ZFNuYXBzaG90V2ViR0wyQWN0aW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIH0KICNlbmRpZgogCi12
b2lkIEluc3BlY3RvckNhbnZhczo6cmVjb3JkQWN0aW9uKGNvbnN0IFN0cmluZyYgbmFtZSwgVmVj
dG9yPFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYgcGFyYW1ldGVycykKK3ZvaWQgSW5zcGVj
dG9yQ2FudmFzOjpyZWNvcmRBY3Rpb24oY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6OmluaXRpYWxp
emVyX2xpc3Q8UmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudD4mJiBwYXJhbWV0ZXJzKQogewogICAg
IGlmICghbV9pbml0aWFsU3RhdGUpIHsKICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgY29uc3Ry
dWN0IHRoZSBpbml0aWFsIHN0YXRlIGZvciB0aGUgZmlyc3QgYWN0aW9uIG9mIHRoZSByZWNvcmRp
bmcuCkBAIC02NTUsNyArNjU2LDcgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlY29yZGlu
Zzo6SW5pdGlhbFN0YXRlPiBJbnNwZWN0b3JDYW52YXM6OmJ1aWxkSW5pdGlhbFMKICAgICByZXR1
cm4gaW5pdGlhbFN0YXRlUGF5bG9hZDsKIH0KIAotUmVmPEpTT046OkFycmF5T2Y8SlNPTjo6VmFs
dWU+PiBJbnNwZWN0b3JDYW52YXM6OmJ1aWxkQWN0aW9uKGNvbnN0IFN0cmluZyYgbmFtZSwgVmVj
dG9yPFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYgcGFyYW1ldGVycykKK1JlZjxKU09OOjpB
cnJheU9mPEpTT046OlZhbHVlPj4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEFjdGlvbihjb25zdCBT
dHJpbmcmIG5hbWUsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJp
YW50PiYmIHBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBhY3Rpb24gPSBKU09OOjpBcnJheU9mPEpT
T046OlZhbHVlPjo6Y3JlYXRlKCk7CiAgICAgYWN0aW9uLT5hZGRJdGVtKGluZGV4Rm9yRGF0YShu
YW1lKSk7CkBAIC02NjgsMTQgKzY2OSwxNyBAQCBSZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1
ZT4+IEluc3BlY3RvckNhbnZhczo6YnVpbGRBY3Rpb24oY29uc3QgU3RyaW5nJiBuYW1lLAogICAg
ICAgICBzd2l6emxlVHlwZXMtPmFkZEl0ZW0oc3RhdGljX2Nhc3Q8aW50Pihzd2l6emxlVHlwZSkp
OwogICAgIH07CiAKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBwYXJhbWV0ZXJzKSB7Ci0gICAgICAg
IFdURjo6c3dpdGNoT24oaXRlbSwKKyAgICAvLyBEZWNsYXJlZCBiZWZvcmUgaXQncyBpbml0aWFs
aXplZCBzbyBpdCBjYW4gYmUgdXNlZCByZWN1cnNpdmVseS4KKyAgICBGdW5jdGlvbjx2b2lkKGNv
bnN0IFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQmKT4gcGFyc2VQYXJhbWV0ZXI7CisgICAgcGFy
c2VQYXJhbWV0ZXIgPSBbJl0gKGNvbnN0IGF1dG8mIHBhcmFtZXRlcikgeworICAgICAgICBXVEY6
OnN3aXRjaE9uKHBhcmFtZXRlciwKICAgICAgICAgICAgIFsmXSAoQ2FudmFzRGlyZWN0aW9uIHZh
bHVlKSB7IGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEoY29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcodmFsdWUpKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpTdHJpbmcpOyB9LAogICAgICAgICAg
ICAgWyZdIChDYW52YXNGaWxsUnVsZSB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRh
KGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHZhbHVlKSksIFJlY29yZGluZ1N3aXp6bGVUeXBl
czo6U3RyaW5nKTsgfSwKICAgICAgICAgICAgIFsmXSAoQ2FudmFzTGluZUNhcCB2YWx1ZSkgeyBh
ZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHZhbHVl
KSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6U3RyaW5nKTsgfSwKICAgICAgICAgICAgIFsmXSAo
Q2FudmFzTGluZUpvaW4gdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YShjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZSkpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlN0cmlu
Zyk7IH0sCiAgICAgICAgICAgICBbJl0gKENhbnZhc1RleHRBbGlnbiB2YWx1ZSkgeyBhZGRQYXJh
bWV0ZXIoaW5kZXhGb3JEYXRhKGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHZhbHVlKSksIFJl
Y29yZGluZ1N3aXp6bGVUeXBlczo6U3RyaW5nKTsgfSwKICAgICAgICAgICAgIFsmXSAoQ2FudmFz
VGV4dEJhc2VsaW5lIHZhbHVlKSB7IGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEoY29udmVydEVu
dW1lcmF0aW9uVG9TdHJpbmcodmFsdWUpKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpTdHJpbmcp
OyB9LAorICAgICAgICAgICAgWyZdIChJbWFnZVNtb290aGluZ1F1YWxpdHkgdmFsdWUpIHsgYWRk
UGFyYW1ldGVyKGluZGV4Rm9yRGF0YShjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZSkp
LCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlN0cmluZyk7IH0sCiAgICAgICAgICAgICBbJl0gKGNv
bnN0IERPTU1hdHJpeDJESW5pdCYgdmFsdWUpIHsKICAgICAgICAgICAgICAgICBhdXRvIGFycmF5
ID0gSlNPTjo6QXJyYXlPZjxkb3VibGU+OjpjcmVhdGUoKTsKICAgICAgICAgICAgICAgICBhcnJh
eS0+YWRkSXRlbSh2YWx1ZS5hLnZhbHVlT3IoMSkpOwpAQCAtNjg2LDUzICs2OTAsMTU5IEBAIFJl
ZjxKU09OOjpBcnJheU9mPEpTT046OlZhbHVlPj4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEFjdGlv
bihjb25zdCBTdHJpbmcmIG5hbWUsCiAgICAgICAgICAgICAgICAgYXJyYXktPmFkZEl0ZW0odmFs
dWUuZi52YWx1ZU9yKDApKTsKICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoYXJyYXkucHRy
KCksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6RE9NTWF0cml4KTsKICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICBbJl0gKGNvbnN0IEVsZW1lbnQqKSB7Ci0gICAgICAgICAgICAgICAgLy8gRWxl
bWVudHMgYXJlIG5vdCBzZXJpYWxpemFibGUsIHNvIGFkZCBhIHN0cmluZyBhcyBhIHBsYWNlaG9s
ZGVyIHNpbmNlIHRoZSBhY3R1YWwKLSAgICAgICAgICAgICAgICAvLyBlbGVtZW50IGNhbm5vdCBi
ZSByZWNvbnN0cnVjdGVkIGluIHRoZSBmcm9udGVuZC4KLSAgICAgICAgICAgICAgICBhZGRQYXJh
bWV0ZXIoaW5kZXhGb3JEYXRhKCJFbGVtZW50IiksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6Tm9u
ZSk7CisgICAgICAgICAgICBbJl0gKGNvbnN0IEVsZW1lbnQqIHZhbHVlKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEVsZW1lbnRzIGFyZSBu
b3Qgc2VyaWFsaXphYmxlLCBzbyBhZGQgYSBzdHJpbmcgYXMgYSBwbGFjZWhvbGRlciBzaW5jZSB0
aGUgYWN0dWFsCisgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQgY2Fubm90IGJlIHJlY29u
c3RydWN0ZWQgaW4gdGhlIGZyb250ZW5kLgorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0
ZXIoaW5kZXhGb3JEYXRhKCJFbGVtZW50IiksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6Tm9uZSk7
CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIFsmXSAoSFRN
TEltYWdlRWxlbWVudCogdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSks
IFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2UpOyB9LAotICAgICAgICAgICAgWyZdIChJbWFn
ZUJpdG1hcCogdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29y
ZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2VCaXRtYXApOyB9LAotICAgICAgICAgICAgWyZdIChJbWFn
ZURhdGEqIHZhbHVlKSB7IGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRp
bmdTd2l6emxlVHlwZXM6OkltYWdlRGF0YSk7IH0sCi0gICAgICAgICAgICBbJl0gKEltYWdlU21v
b3RoaW5nUXVhbGl0eSB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKGNvbnZlcnRF
bnVtZXJhdGlvblRvU3RyaW5nKHZhbHVlKSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6U3RyaW5n
KTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgUGF0aDJEKiB2YWx1ZSkgeyBhZGRQYXJhbWV0
ZXIoaW5kZXhGb3JEYXRhKGJ1aWxkU3RyaW5nRnJvbVBhdGgodmFsdWUtPnBhdGgoKSkpLCBSZWNv
cmRpbmdTd2l6emxlVHlwZXM6OlBhdGgyRCk7IH0sCisgICAgICAgICAgICBbJl0gKEhUTUxJbWFn
ZUVsZW1lbnQqIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAg
ICAgICAgICAgICBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dp
enpsZVR5cGVzOjpJbWFnZSk7IH0sCisgICAgICAgICAgICBbJl0gKEltYWdlQml0bWFwKiB2YWx1
ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRk
UGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1h
Z2VCaXRtYXApOyB9LAorICAgICAgICAgICAgWyZdIChJbWFnZURhdGEqIHZhbHVlKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIo
aW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJbWFnZURhdGEpOyB9
LAorICAgICAgICAgICAgWyZdIChjb25zdCBQYXRoMkQqIHZhbHVlKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JE
YXRhKGJ1aWxkU3RyaW5nRnJvbVBhdGgodmFsdWUtPnBhdGgoKSkpLCBSZWNvcmRpbmdTd2l6emxl
VHlwZXM6OlBhdGgyRCk7IH0sCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgICAgICAgICAgLy8gRklY
TUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzYwMDk+IFdlYiBJbnNwZWN0b3I6IHNlbmQgZGF0
YSBmb3IgV2ViR0wgb2JqZWN0cyBkdXJpbmcgYSByZWNvcmRpbmcgaW5zdGVhZCBvZiBhIHBsYWNl
aG9sZGVyIHN0cmluZwotICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTEJ1ZmZlciopIHsgYWRk
UGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xCdWZmZXIpOyB9LAotICAg
ICAgICAgICAgWyZdIChjb25zdCBXZWJHTEZyYW1lYnVmZmVyKikgeyBhZGRQYXJhbWV0ZXIoMCwg
UmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTEZyYW1lYnVmZmVyKTsgfSwKLSAgICAgICAgICAg
IFsmXSAoY29uc3QgV2ViR0xQcm9ncmFtKikgeyBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dp
enpsZVR5cGVzOjpXZWJHTFByb2dyYW0pOyB9LAotICAgICAgICAgICAgWyZdIChjb25zdCBXZWJH
TFF1ZXJ5KikgeyBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTFF1
ZXJ5KTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xSZW5kZXJidWZmZXIqKSB7IGFk
ZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMUmVuZGVyYnVmZmVyKTsg
fSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xTYW1wbGVyKikgeyBhZGRQYXJhbWV0ZXIo
MCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTFNhbXBsZXIpOyB9LAotICAgICAgICAgICAg
WyZdIChjb25zdCBXZWJHTFNoYWRlciopIHsgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6
bGVUeXBlczo6V2ViR0xTaGFkZXIpOyB9LAotICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTFN5
bmMqKSB7IGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMU3luYyk7
IH0sCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFdlYkdMVGV4dHVyZSopIHsgYWRkUGFyYW1ldGVy
KDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xUZXh0dXJlKTsgfSwKLSAgICAgICAgICAg
IFsmXSAoY29uc3QgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayopIHsgYWRkUGFyYW1ldGVyKDAsIFJl
Y29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjayk7IH0sCi0gICAgICAg
ICAgICBbJl0gKGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKikgeyBhZGRQYXJhbWV0ZXIoMCwg
UmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTFVuaWZvcm1Mb2NhdGlvbik7IH0sCi0gICAgICAg
ICAgICBbJl0gKGNvbnN0IFdlYkdMVmVydGV4QXJyYXlPYmplY3QqKSB7IGFkZFBhcmFtZXRlcigw
LCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMVmVydGV4QXJyYXlPYmplY3QpOyB9LAorICAg
ICAgICAgICAgWyZdIChjb25zdCBXZWJHTEJ1ZmZlciogdmFsdWUpIHsKKyAgICAgICAgICAgICAg
ICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigwLCBSZWNvcmRp
bmdTd2l6emxlVHlwZXM6OldlYkdMQnVmZmVyKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBbJl0gKGNvbnN0IFdlYkdMRnJhbWVidWZmZXIqIHZhbHVlKSB7CisgICAgICAgICAgICAgICAg
aWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5n
U3dpenpsZVR5cGVzOjpXZWJHTEZyYW1lYnVmZmVyKTsKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICBbJl0gKGNvbnN0IFdlYkdMUHJvZ3JhbSogdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBp
ZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdT
d2l6emxlVHlwZXM6OldlYkdMUHJvZ3JhbSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
WyZdIChjb25zdCBXZWJHTFF1ZXJ5KiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1
ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVU
eXBlczo6V2ViR0xRdWVyeSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25z
dCBXZWJHTFJlbmRlcmJ1ZmZlciogdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUp
CisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlw
ZXM6OldlYkdMUmVuZGVyYnVmZmVyKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0g
KGNvbnN0IFdlYkdMU2FtcGxlciogdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUp
CisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlw
ZXM6OldlYkdMU2FtcGxlcik7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25z
dCBXZWJHTFNoYWRlciogdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUpCisgICAg
ICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6Oldl
YkdMU2hhZGVyKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0IFdlYkdM
U3luYyogdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAg
ICAgICAgIGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMU3luYyk7
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTFRleHR1cmUqIHZh
bHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBh
ZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTFRleHR1cmUpOworICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
ayogdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAg
ICAgIGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMVHJhbnNmb3Jt
RmVlZGJhY2spOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xV
bmlmb3JtTG9jYXRpb24qIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAg
ICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpX
ZWJHTFVuaWZvcm1Mb2NhdGlvbik7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChj
b25zdCBXZWJHTFZlcnRleEFycmF5T2JqZWN0KiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlm
ICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3
aXp6bGVUeXBlczo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk7CisgICAgICAgICAgICB9LAogI2Vu
ZGlmCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxBcnJheUJ1ZmZlcj4mKSB7IGFkZFBh
cmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlR5cGVkQXJyYXkpOyB9LAotICAgICAg
ICAgICAgWyZdIChjb25zdCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYpIHsgYWRkUGFyYW1ldGVy
KDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6VHlwZWRBcnJheSk7IH0sCi0gICAgICAgICAgICBb
Jl0gKGNvbnN0IFJlZlB0cjxDYW52YXNHcmFkaWVudD4mIHZhbHVlKSB7IGFkZFBhcmFtZXRlcihp
bmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkNhbnZhc0dyYWRpZW50
KTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPENhbnZhc1BhdHRlcm4+JiB2YWx1
ZSkgeyBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5
cGVzOjpDYW52YXNQYXR0ZXJuKTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEZs
b2F0MzJBcnJheT4mKSB7IGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlR5
cGVkQXJyYXkpOyB9LAotICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8SFRNTENhbnZhc0Vs
ZW1lbnQ+JiB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3Jk
aW5nU3dpenpsZVR5cGVzOjpJbWFnZSk7IH0sCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0
cjxIVE1MSW1hZ2VFbGVtZW50PiYgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2
YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2UpOyB9LAorICAgICAgICAgICAgWyZd
IChjb25zdCBSZWZQdHI8QXJyYXlCdWZmZXI+JiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlm
ICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3
aXp6bGVUeXBlczo6VHlwZWRBcnJheSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZd
IChjb25zdCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAg
ICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigwLCBSZWNvcmRp
bmdTd2l6emxlVHlwZXM6OlR5cGVkQXJyYXkpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IFsmXSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgdmFsdWUpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcihpbmRleEZv
ckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkNhbnZhc0dyYWRpZW50KTsKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxDYW52YXNQYXR0ZXJu
PiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAg
ICAgIGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlw
ZXM6OkNhbnZhc1BhdHRlcm4pOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29u
c3QgUmVmUHRyPEZsb2F0MzJBcnJheT4mIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZh
bHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenps
ZVR5cGVzOjpUeXBlZEFycmF5KTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKGNv
bnN0IFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4mIHZhbHVlKSB7CisgICAgICAgICAgICAgICAg
aWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRh
KHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJbWFnZSk7CisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4mIHZhbHVlKSB7
CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJh
bWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJbWFnZSk7
CisgICAgICAgICAgICB9LAogI2lmIEVOQUJMRShWSURFTykKLSAgICAgICAgICAgIFsmXSAoY29u
c3QgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+JiB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoaW5kZXhG
b3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJbWFnZSk7IH0sCisgICAgICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiYgdmFsdWUpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcihp
bmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkltYWdlKTsKKyAgICAg
ICAgICAgIH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQotICAgICAgICAgICAg
WyZdIChjb25zdCBSZWZQdHI8VHlwZWRPTUNTU0ltYWdlVmFsdWU+JiB2YWx1ZSkgeyBhZGRQYXJh
bWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJbWFnZSk7
IH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxUeXBlZE9NQ1NTSW1hZ2VWYWx1ZT4m
IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAg
ICBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVz
OjpJbWFnZSk7CisgICAgICAgICAgICB9LAorI2VuZGlmCisgICAgICAgICAgICBbJl0gKGNvbnN0
IFJlZlB0cjxJbWFnZUJpdG1hcD4mIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVl
KQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwg
UmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJbWFnZUJpdG1hcCk7CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgdmFsdWUpIHsKKyAgICAgICAg
ICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcihpbmRl
eEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkltYWdlRGF0YSk7CisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8SW50MzJBcnJheT4mIHZh
bHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBh
ZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpUeXBlZEFycmF5KTsKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50MzJBcnJheT4mIHZh
bHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBh
ZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpUeXBlZEFycmF5KTsKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0IENhbnZhc0ltYWdlU291cmNlJiB2YWx1
ZSkgeworICAgICAgICAgICAgICAgIFdURjo6dmlzaXQocGFyc2VQYXJhbWV0ZXIsIHZhbHVlKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREJhc2U6OlN0eWxlJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIFdURjo6dmlzaXQo
cGFyc2VQYXJhbWV0ZXIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0sCisjaWYgRU5BQkxFKFdFQkdM
KQorICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpCdWZm
ZXJEYXRhU291cmNlJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIFdURjo6dmlzaXQocGFyc2VQ
YXJhbWV0ZXIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0
IE9wdGlvbmFsPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OkJ1ZmZlckRhdGFTb3VyY2U+JiB2
YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAg
cGFyc2VQYXJhbWV0ZXIodmFsdWUudmFsdWUoKSk7CisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgWyZdIChjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpUZXhJbWFnZVNvdXJjZSYg
dmFsdWUpIHsKKyAgICAgICAgICAgICAgICBXVEY6OnZpc2l0KHBhcnNlUGFyYW1ldGVyLCB2YWx1
ZSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBPcHRpb25hbDxXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpUZXhJbWFnZVNvdXJjZT4mIHZhbHVlKSB7CisgICAgICAg
ICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRlcih2
YWx1ZS52YWx1ZSgpKTsKKyAgICAgICAgICAgIH0sCiAjZW5kaWYKLSAgICAgICAgICAgIFsmXSAo
Y29uc3QgUmVmUHRyPEltYWdlQml0bWFwPiYgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9y
RGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2VCaXRtYXApOyB9LAotICAg
ICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgdmFsdWUpIHsgYWRkUGFyYW1l
dGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2VEYXRh
KTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEludDMyQXJyYXk+JikgeyBhZGRQ
YXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpUeXBlZEFycmF5KTsgfSwKLSAgICAg
ICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFVpbnQzMkFycmF5PiYpIHsgYWRkUGFyYW1ldGVyKDAs
IFJlY29yZGluZ1N3aXp6bGVUeXBlczo6VHlwZWRBcnJheSk7IH0sCiAgICAgICAgICAgICBbJl0g
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2YWx1ZSkgewogICAgICAgICAgICAgICAgIGF1dG8gZGVk
dXBsaWNhdGVkID0gdmFsdWUubWFwKFsmXSAoY29uc3QgU3RyaW5nJiBpdGVtKSB7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBpbmRleEZvckRhdGEoaXRlbSk7CiAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKGJ1aWxkQXJyYXlGb3JWZWN0b3IoZGVk
dXBsaWNhdGVkKS5wdHIoKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpBcnJheSk7CisgICAgICAg
ICAgICAgICAgYWRkUGFyYW1ldGVyKGJ1aWxkQXJyYXlGb3JWZWN0b3IoZGVkdXBsaWNhdGVkKS5w
dHIoKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpTdHJpbmcpOwogICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpIHsgYWRkUGFyYW1ldGVy
KGJ1aWxkQXJyYXlGb3JWZWN0b3IodmFsdWUpLnB0cigpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6
OkFycmF5KTsgfSwKICAgICAgICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPHVpbnQzMl90PiYgdmFs
dWUpIHsKQEAgLTc0Miw5ICs4NTIsMjYgQEAgUmVmPEpTT046OkFycmF5T2Y8SlNPTjo6VmFsdWU+
PiBJbnNwZWN0b3JDYW52YXM6OmJ1aWxkQWN0aW9uKGNvbnN0IFN0cmluZyYgbmFtZSwKICAgICAg
ICAgICAgICAgICBhZGRQYXJhbWV0ZXIoYnVpbGRBcnJheUZvclZlY3RvcihtYXBwZWQpLnB0cigp
LCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkFycmF5KTsKICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICBbJl0gKGNvbnN0IFZlY3RvcjxpbnQzMl90PiYgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGJ1
aWxkQXJyYXlGb3JWZWN0b3IodmFsdWUpLnB0cigpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkFy
cmF5KTsgfSwKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgICAgICAgICBbJl0gKGNvbnN0IFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OkZsb2F0MzJMaXN0OjpWYXJpYW50VHlwZSYgdmFsdWUpIHsK
KyAgICAgICAgICAgICAgICBXVEY6OnZpc2l0KHBhcnNlUGFyYW1ldGVyLCB2YWx1ZSk7CisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpJbnQzMkxpc3Q6OlZhcmlhbnRUeXBlJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIFdU
Rjo6dmlzaXQocGFyc2VQYXJhbWV0ZXIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0sCisjZW5kaWYK
KyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpVaW50MzJMaXN0OjpWYXJpYW50VHlwZSYgdmFsdWUpIHsKKyAgICAgICAgICAg
ICAgICBXVEY6OnZpc2l0KHBhcnNlUGFyYW1ldGVyLCB2YWx1ZSk7CisgICAgICAgICAgICB9LAor
I2VuZGlmCiAgICAgICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgYWRkUGFyYW1l
dGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6U3RyaW5nKTsg
fSwKICAgICAgICAgICAgIFsmXSAoZG91YmxlIHZhbHVlKSB7IGFkZFBhcmFtZXRlcih2YWx1ZSwg
UmVjb3JkaW5nU3dpenpsZVR5cGVzOjpOdW1iZXIpOyB9LAogICAgICAgICAgICAgWyZdIChmbG9h
dCB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIodmFsdWUsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6TnVt
YmVyKTsgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgT3B0aW9uYWw8ZmxvYXQ+JiB2YWx1ZSkg
eworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VQ
YXJhbWV0ZXIodmFsdWUudmFsdWUoKSk7CisgICAgICAgICAgICB9LAogICAgICAgICAgICAgWyZd
ICh1aW50NjRfdCB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1
ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6TnVtYmVyKTsgfSwKICAgICAgICAgICAgIFsmXSAo
aW50NjRfdCB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSks
IFJlY29yZGluZ1N3aXp6bGVUeXBlczo6TnVtYmVyKTsgfSwKICAgICAgICAgICAgIFsmXSAodWlu
dDMyX3QgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpLCBS
ZWNvcmRpbmdTd2l6emxlVHlwZXM6Ok51bWJlcik7IH0sCkBAIC03NTIsNyArODc5LDkgQEAgUmVm
PEpTT046OkFycmF5T2Y8SlNPTjo6VmFsdWU+PiBJbnNwZWN0b3JDYW52YXM6OmJ1aWxkQWN0aW9u
KGNvbnN0IFN0cmluZyYgbmFtZSwKICAgICAgICAgICAgIFsmXSAodWludDhfdCB2YWx1ZSkgeyBh
ZGRQYXJhbWV0ZXIoc3RhdGljX2Nhc3Q8aW50Pih2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBl
czo6TnVtYmVyKTsgfSwKICAgICAgICAgICAgIFsmXSAoYm9vbCB2YWx1ZSkgeyBhZGRQYXJhbWV0
ZXIodmFsdWUsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6Qm9vbGVhbik7IH0KICAgICAgICAgKTsK
LSAgICB9CisgICAgfTsKKyAgICBmb3IgKGF1dG8mIHBhcmFtZXRlciA6IHBhcmFtZXRlcnMpCisg
ICAgICAgIHBhcnNlUGFyYW1ldGVyKHBhcmFtZXRlcik7CiAKICAgICBhY3Rpb24tPmFkZEl0ZW0o
V1RGTW92ZShwYXJhbWV0ZXJzRGF0YSkpOwogICAgIGFjdGlvbi0+YWRkSXRlbShXVEZNb3ZlKHN3
aXp6bGVUeXBlcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5o
CmluZGV4IDY4ODZlNjI2YzY3ZmVmOGM4OTE3ZjE1ZTA5MTI5NmFmNjM0ZWQ4NTMuLjM4NTQyZmI1
NzZiZTYyMWUyMWQ2ZTZlYWZjNzZjOWQxYWY3ZjI2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TY3JpcHRDYWxsRnJhbWUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3Jp
cHRDYWxsU3RhY2suaD4KKyNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgogI2luY2x1ZGUgPHd0
Zi9WYXJpYW50Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNjMsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFJl
Y29yZGluZ0RhdGEoKTsKICAgICBib29sIGhhc1JlY29yZGluZ0RhdGEoKSBjb25zdDsKICAgICBi
b29sIGN1cnJlbnRGcmFtZUhhc0RhdGEoKSBjb25zdDsKLSAgICB2b2lkIHJlY29yZEFjdGlvbihj
b25zdCBTdHJpbmcmLCBWZWN0b3I8UmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudD4mJiA9IHsgfSk7
CisgICAgdm9pZCByZWNvcmRBY3Rpb24oY29uc3QgU3RyaW5nJiwgc3RkOjppbml0aWFsaXplcl9s
aXN0PFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYgPSB7IH0pOwogCiAgICAgUmVmPEpTT046
OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6UmVjb3JkaW5nOjpGcmFtZT4+IHJlbGVhc2VG
cmFtZXMoKSB7IHJldHVybiBtX2ZyYW1lcy5yZWxlYXNlTm9uTnVsbCgpOyB9CiAKQEAgLTEwOSw3
ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIGludCBpbmRleEZvckRhdGEoRHVwbGljYXRlRGF0YVZh
cmlhbnQpOwogICAgIFN0cmluZyBzdHJpbmdJbmRleEZvcktleShjb25zdCBTdHJpbmcmKTsKICAg
ICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6UmVjb3JkaW5nOjpJbml0aWFsU3RhdGU+IGJ1aWxk
SW5pdGlhbFN0YXRlKCk7Ci0gICAgUmVmPEpTT046OkFycmF5T2Y8SlNPTjo6VmFsdWU+PiBidWls
ZEFjdGlvbihjb25zdCBTdHJpbmcmLCBWZWN0b3I8UmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudD4m
JiA9IHsgfSk7CisgICAgUmVmPEpTT046OkFycmF5T2Y8SlNPTjo6VmFsdWU+PiBidWlsZEFjdGlv
bihjb25zdCBTdHJpbmcmLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8UmVjb3JkQ2FudmFzQWN0aW9u
VmFyaWFudD4mJiA9IHsgfSk7CiAgICAgUmVmPEpTT046OkFycmF5T2Y8SlNPTjo6VmFsdWU+PiBi
dWlsZEFycmF5Rm9yQ2FudmFzR3JhZGllbnQoY29uc3QgQ2FudmFzR3JhZGllbnQmKTsKICAgICBS
ZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1ZT4+IGJ1aWxkQXJyYXlGb3JDYW52YXNQYXR0ZXJu
KGNvbnN0IENhbnZhc1BhdHRlcm4mKTsKICAgICBSZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1
ZT4+IGJ1aWxkQXJyYXlGb3JJbWFnZURhdGEoY29uc3QgSW1hZ2VEYXRhJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmlu
ZGV4IGZiYjhhZjRhODJlYTBmZGY3OTJlNGExZmQzMTBmNzljOWQ2MDQ1MGQuLmE5MDRjMDNkYjk4
OTNiNGU4MGE1NDYzYmQ5NGE0ZWNjOTk1MzJiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0xMDM2LDcgKzEw
MzYsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlQ2FudmFzTWVt
b3J5SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbgogICAgICAgICBjYW52YXNBZ2VudC0+ZGlk
Q2hhbmdlQ2FudmFzTWVtb3J5KGNvbnRleHQpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6cmVjb3JkQ2FudmFzQWN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBDYW52YXNSZW5kZXJpbmdDb250ZXh0JiBjYW52YXNSZW5kZXJpbmdD
b250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIFZlY3RvcjxSZWNvcmRDYW52YXNBY3Rpb25WYXJp
YW50PiYmIHBhcmFtZXRlcnMpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cmVjb3Jk
Q2FudmFzQWN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBDYW52YXNSZW5kZXJpbmdDb250ZXh0JiBjYW52YXNSZW5kZXJpbmdDb250ZXh0LCBjb25zdCBT
dHJpbmcmIG5hbWUsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJp
YW50PiYmIHBhcmFtZXRlcnMpCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52
YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKICAg
ICAgICAgY2FudmFzQWdlbnQtPnJlY29yZENhbnZhc0FjdGlvbihjYW52YXNSZW5kZXJpbmdDb250
ZXh0LCBuYW1lLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA5NzkxYTg2NTBiNDk5
ZjRiMGJmNWZiYWQzY2I4YWE2ZDM2MGVlMjczLi45Y2FkZmIxZThjMWY2ZjkzOGI0ZDA1NjBiNDMy
YmYxNDZmMzcxMmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiV29ya2Vy
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1ZGUgPGluaXRpYWxp
emVyX2xpc3Q+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAtMjY5LDcgKzI3MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCBkaWRDaGFuZ2VDU1NDYW52YXNDbGllbnROb2RlcyhDYW52YXNCYXNlJik7CiAgICAg
c3RhdGljIHZvaWQgZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dChDYW52YXNSZW5kZXJp
bmdDb250ZXh0Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlQ2FudmFzTWVtb3J5KENhbnZh
c1JlbmRlcmluZ0NvbnRleHQmKTsKLSAgICBzdGF0aWMgdm9pZCByZWNvcmRDYW52YXNBY3Rpb24o
Q2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxSZWNvcmRDYW52
YXNBY3Rpb25WYXJpYW50PiYmID0geyB9KTsKKyAgICBzdGF0aWMgdm9pZCByZWNvcmRDYW52YXNB
Y3Rpb24oQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGNvbnN0IFN0cmluZyYsIHN0ZDo6aW5pdGlh
bGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmID0geyB9KTsKICAgICBzdGF0
aWMgdm9pZCBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZShDYW52YXNSZW5kZXJpbmdDb250
ZXh0JiwgYm9vbCBmb3JjZURpc3BhdGNoID0gZmFsc2UpOwogI2lmIEVOQUJMRShXRUJHTCkKICAg
ICBzdGF0aWMgdm9pZCBkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYsIGNvbnN0IFN0cmluZyYpOwpAQCAtNDUyLDcgKzQ1Myw3IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgZGlkQ2hhbmdlQ1NTQ2FudmFzQ2xpZW50Tm9kZXNJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBDYW52YXNCYXNlJik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VDYW52YXNNZW1vcnlJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBDYW52YXNSZW5kZXJpbmdDb250ZXh0Jik7Ci0gICAgc3RhdGljIHZv
aWQgcmVjb3JkQ2FudmFzQWN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxSZWNvcmRDYW52YXNBY3Rpb25W
YXJpYW50PiYmID0geyB9KTsKKyAgICBzdGF0aWMgdm9pZCByZWNvcmRDYW52YXNBY3Rpb25JbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBDYW52YXNSZW5kZXJpbmdDb250ZXh0JiwgY29uc3QgU3Ry
aW5nJiwgc3RkOjppbml0aWFsaXplcl9saXN0PFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYg
PSB7IH0pOwogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1lSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGJvb2wgZm9y
Y2VEaXNwYXRjaCA9IGZhbHNlKTsKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgc3RhdGljIHZvaWQg
ZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYsIGNvbnN0IFN0cmluZyYpOwpAQCAtMTMxMSw3ICsxMzEyLDcgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VDYW52YXNNZW1vcnko
Q2FudmFzUmVuZGVyaW5nQ29udGUKICAgICAgICAgZGlkQ2hhbmdlQ2FudmFzTWVtb3J5SW1wbCgq
aW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dCk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6cmVjb3JkQ2FudmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgVmVjdG9yPFJlY29yZENhbnZhc0FjdGlv
blZhcmlhbnQ+JiYgcGFyYW1ldGVycykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6cmVjb3JkQ2FudmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PFJlY29yZENhbnZhc0Fj
dGlvblZhcmlhbnQ+JiYgcGFyYW1ldGVycykKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHQuY2FudmFzQmFz
ZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmluZGV4IGEzM2I2
MDMyYjdmYjkyZGU3OWYwZDJiMzE1NWNlNDNlNmY0YzAxMDMuLjliZTA2MTE5ZmIzMjE5NzAwNzI5
NzIyZDgzNmE4MTZiMjVmMWMwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC00MjAsNyArNDIwLDcg
QEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ2hhbmdlQ2FudmFzTWVtb3J5KENhbnZh
c1JlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQKICAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIt
PmNhbnZhc01lbW9yeUNoYW5nZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIG5vZGUt
Pm1lbW9yeUNvc3QoKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlY29yZENh
bnZhc0FjdGlvbihDYW52YXNSZW5kZXJpbmdDb250ZXh0JiBjYW52YXNSZW5kZXJpbmdDb250ZXh0
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFZlY3RvcjxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYm
IHBhcmFtZXRlcnMpCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpyZWNvcmRDYW52YXNBY3Rp
b24oQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYgY2FudmFzUmVuZGVyaW5nQ29udGV4dCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8UmVjb3JkQ2FudmFzQWN0aW9uVmFy
aWFudD4mJiBwYXJhbWV0ZXJzKQogewogICAgIGF1dG8gaW5zcGVjdG9yQ2FudmFzID0gZmluZElu
c3BlY3RvckNhbnZhcyhjYW52YXNSZW5kZXJpbmdDb250ZXh0KTsKICAgICBBU1NFUlQoaW5zcGVj
dG9yQ2FudmFzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCA1OWEyMjUwZDczNDgzMTcxMThmM2Q5ZGQ0NzEy
NDE3YWRmZjgwNjgxLi5mYTBmNmNjMjNiMGU0NTE5YWUxOTAzNTIyN2JmOTg4MWJlMWYxMjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZh
c0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
YW52YXNBZ2VudC5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CisjaW5j
bHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04Nyw3ICs4OCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQoQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCYpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lDYW52YXNSZW5kZXJp
bmdDb250ZXh0KENhbnZhc1JlbmRlcmluZ0NvbnRleHQmKTsKICAgICB2b2lkIGRpZENoYW5nZUNh
bnZhc01lbW9yeShDYW52YXNSZW5kZXJpbmdDb250ZXh0Jik7Ci0gICAgdm9pZCByZWNvcmRDYW52
YXNBY3Rpb24oQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxS
ZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmID0geyB9KTsKKyAgICB2b2lkIHJlY29yZENhbnZh
c0FjdGlvbihDYW52YXNSZW5kZXJpbmdDb250ZXh0JiwgY29uc3QgU3RyaW5nJiwgc3RkOjppbml0
aWFsaXplcl9saXN0PFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYgPSB7IH0pOwogICAgIHZv
aWQgZGlkRmluaXNoUmVjb3JkaW5nQ2FudmFzRnJhbWUoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYs
IGJvb2wgZm9yY2VEaXNwYXRjaCA9IGZhbHNlKTsKICAgICB2b2lkIGNvbnNvbGVTdGFydFJlY29y
ZGluZ0NhbnZhcyhDYW52YXNSZW5kZXJpbmdDb250ZXh0JiwgSlNDOjpFeGVjU3RhdGUmLCBKU0M6
OkpTT2JqZWN0KiBvcHRpb25zKTsKICNpZiBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcwppbmRl
eCBjOWI3NDM0NTljODg2OTIwYmZiNDA0ZDc2MDAxM2Y3MDEwZDM4ZmNiLi4zODQ3Y2U2OWZlNTkz
YzIwZGM1NTQ3NGUwMzgzMmFjMjNmMzBkMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKQEAgLTM1Miw3ICsz
NTIsMTAgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgY2FzZSBXSS5S
ZWNvcmRpbmcuU3dpenpsZS5TdHJpbmc6Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N3aXp6
bGVbaW5kZXhdW3R5cGVdID0gU3RyaW5nKGRhdGEpOworICAgICAgICAgICAgICAgICAgICBpZiAo
QXJyYXkuaXNBcnJheShkYXRhKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N3aXp6
bGVbaW5kZXhdW3R5cGVdID0gYXdhaXQgUHJvbWlzZS5hbGwoZGF0YS5tYXAoKGl0ZW0pID0+IHRo
aXMuc3dpenpsZShpdGVtLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpKSk7CisgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N3aXp6bGVb
aW5kZXhdW3R5cGVdID0gU3RyaW5nKGRhdGEpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICAgICAgICAgIGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuSW1hZ2U6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373720</attachid>
            <date>2019-07-09 08:42:33 -0700</date>
            <delta_ts>2019-07-09 14:07:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199611-20190709084232.patch</filename>
            <type>text/plain</type>
            <size>45836</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZWZiOTFmYTUyMWYwM2FiMTMyYjUxMjJiNzFjM2E5MzFmMTkwMTFkLi5i
ZGNjYjM0Y2RhZjYxMDUxZmJiMTVhMmU5OTU2ODI1YTM5ODQ5YzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDUgQEAKKzIwMTktMDctMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogcmVwbGFjZSBXVEY6OlZlY3RvciB3
aXRoIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdCBpbiBDYWxsVHJhY2VyIHRvIGF2b2lkIGR5bmFtaWMg
YWxsb2NhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5OTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBlYWNoIG1lbWJlciBmdW5jdGlvbiBpcyBr
bm93biBhdCBidWlsZCB0aW1lLCBzbyB0aGVyZSdzIG5vIG5lZWQKKyAgICAgICAgdG8gZHluYW1p
Y2FsbHkgYWxsb2NhdGUgYSBgV1RGOjpWZWN0b3JgIHdoZW4gY2FwdHVyaW5nIHRoZSBhcmd1bWVu
dHMuIE9uZSBkb3duc2lkZSB0byB1c2luZworICAgICAgICBhIGBzdGQ6OmluaXRpYWxpemVyX2xp
c3RgIGlzIHRoYXQgd2UgY2FuIG5vIGxvbmdlciAiZmxhdHRlbiIgYFdURjo6VmFyaWFudGAgYXJn
dW1lbnRzIGludG8KKyAgICAgICAgYSBgUmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudGAsIGJ1dCB0
aGlzIGlzIGFjY2VwdGFibGUgYmVjYXVzZSBgV1RGOjpWYXJpYW50YCBzdXBwb3J0cyBoYXZpbmcK
KyAgICAgICAgeWV0IGFub3RoZXIgYFdURjo6VmFyaWFudGAgYXMgb25lIG9mIGl0J3MgdHlwZXMs
IHdoaWNoIHRoZSBgSW5zcGVjdG9yQ2FudmFzYCBjYW4gdGhlbiBmaWd1cmUKKyAgICAgICAgb3V0
IHdoZW4gaXQgZmluYWxseSBnZXRzIHRoZSBkYXRhLiBUaGUgc2FtZSBhcHBsaWVzIHRvIGBudWxs
cHRyYC9gT3B0aW9uYWxgIGNoZWNrcyBhcyB3ZWxsLgorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRl
ckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlv
bkNhbGwpOgorICAgICAgICAoR2VuZXJhdGVDYWxsVHJhY2VyKToKKyAgICAgICAgKEdlbmVyYXRl
Q2FsbFRyYWNlclBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwOgorCisgICAgICAgICogYmluZGluZ3MvanMv
Q2FsbFRyYWNlclR5cGVzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvQ2FsbFRyYWNlci5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0NhbGxUcmFjZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FsbFRyYWNlcjo6cmVjb3JkQ2FudmFzQWN0aW9uKToKKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6cmVjb3JkQ2FudmFzQWN0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6cmVjb3JkQ2FudmFzQWN0aW9uSW1wbCk6CisKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uKToKKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhczo6cmVjb3JkQWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhczo6YnVpbGRBY3Rpb24pOgor
ICAgICAgICBEcml2ZS1ieTogaGFuZGxlIHRoZSBzaXR1YXRpb24gd2hlcmUgYSBwYXJhbWV0ZXIg
aXMgYW4gYXJyYXkgb2YgZGVkdXBsaWNhdGVkIHN0cmluZ3MsIHdoaWNoCisgICAgICAgICAgICAg
ICAgICB3b3VsZCBvdGhlcndpc2UgYmUgdHJlYXRlZCBhcyBhbiBhcnJheSBvZiBudW1iZXJzLgor
CiAyMDE5LTA3LTA4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXSExTTCBJbXBvcnQgMjMgbmV3IEpTIHJlZmVyZW5jZSBzcGVjIHRlc3RzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZwppbmRleCA1NjQxYjE4MjU0ZmQwMzA4Njc4Yzg5YTVlZTFkNWE5ODQ3MGMwMmZl
Li5lYzNhODliNjk4NDk0OTg1MmQ3MzZhNDJjNzcwM2EzOTMzYzA3NWEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNy0wOSAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ2FudmFzOiByZXBs
YWNlIFdURjo6VmVjdG9yIHdpdGggc3RkOjppbml0aWFsaXplcl9saXN0IGluIENhbGxUcmFjZXIg
dG8gYXZvaWQgZHluYW1pYyBhbGxvY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5NjExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanM6
CisgICAgICAgIChXSS5SZWNvcmRpbmcucHJvdG90eXBlLmFzeW5jIHN3aXp6bGUpOgorICAgICAg
ICBEcml2ZS1ieTogaGFuZGxlIHRoZSBzaXR1YXRpb24gd2hlcmUgYSBwYXJhbWV0ZXIgaXMgYW4g
YXJyYXkgb2YgZGVkdXBsaWNhdGVkIHN0cmluZ3MsIHdoaWNoCisgICAgICAgICAgICAgICAgICB3
b3VsZCBvdGhlcndpc2UgYmUgdHJlYXRlZCBhcyBhbiBhcnJheSBvZiBudW1iZXJzLgorCiAyMDE5
LTA3LTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBEZWJ1Z2dlcjogc3BlY2lhbCBicmVha3BvaW50cyBhbmQgZXZlbnQgdGFyZ2V0
cyBzaG91bGQgYmUgc29ydGVkIGludG8gc2VwYXJhdGUgImFyZWFzIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FsbFRyYWNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9DYWxsVHJhY2VyLmNwcAppbmRleCA4MDcxMTZkNWI5MTk0YmVhMDBiODMyODFi
ZjY0MGEzN2E4OTY5ZDA2Li45YjA1YzM5ZDUyNDY2ZmRhYmNkNzMwZDM4MGIyZDMzNmEzOGFjYzQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJhY2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJhY2VyLmNwcApAQCAtMzIsMTMg
KzMyLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBDYWxsVHJhY2VyOjpyZWNv
cmRDYW52YXNBY3Rpb24oY29uc3QgSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgVmVjdG9yPFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYgcGFy
YW1ldGVycykKK3ZvaWQgQ2FsbFRyYWNlcjo6cmVjb3JkQ2FudmFzQWN0aW9uKGNvbnN0IEhUTUxD
YW52YXNFbGVtZW50JiBjYW52YXNFbGVtZW50LCBjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6aW5p
dGlhbGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmIHBhcmFtZXRlcnMpCiB7
CiAgICAgaWYgKGF1dG8qIGNhbnZhc1JlbmRlcmluZ0NvbnRleHQgPSBjYW52YXNFbGVtZW50LnJl
bmRlcmluZ0NvbnRleHQoKSkKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZWNv
cmRDYW52YXNBY3Rpb24oKmNhbnZhc1JlbmRlcmluZ0NvbnRleHQsIG5hbWUsIFdURk1vdmUocGFy
YW1ldGVycykpOwogfQogCi12b2lkIENhbGxUcmFjZXI6OnJlY29yZENhbnZhc0FjdGlvbihDYW52
YXNSZW5kZXJpbmdDb250ZXh0JiBjYW52YXNSZW5kZXJpbmdDb250ZXh0LCBjb25zdCBTdHJpbmcm
IG5hbWUsIFZlY3RvcjxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmIHBhcmFtZXRlcnMpCit2
b2lkIENhbGxUcmFjZXI6OnJlY29yZENhbnZhc0FjdGlvbihDYW52YXNSZW5kZXJpbmdDb250ZXh0
JiBjYW52YXNSZW5kZXJpbmdDb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6aW5pdGlh
bGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmIHBhcmFtZXRlcnMpCiB7CiAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZWNvcmRDYW52YXNBY3Rpb24oY2FudmFzUmVu
ZGVyaW5nQ29udGV4dCwgbmFtZSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJhY2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9DYWxsVHJhY2VyLmgKaW5kZXggZGIyNjRmMzMzMjliZTJjNjkzNDc3OGNk
NDIxYjE3NDgwMjQ3ZDRhYi4uZmQ1NzFmOWIyZDUxNjc0MjU4OTU5MGEwZTk2NGM3MWEzYTYyOTI1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FsbFRyYWNlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhbGxUcmFjZXIuaApAQCAtMjYsNyArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDYWxsVHJhY2VyVHlwZXMuaCIKLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzYsOCAr
MzYsOCBAQCBjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKIAogY2xhc3MgQ2FsbFRyYWNlciB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgcmVjb3JkQ2FudmFzQWN0aW9uKGNvbnN0IEhUTUxDYW52
YXNFbGVtZW50JiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFJlY29yZENhbnZhc0FjdGlvblZhcmlh
bnQ+JiYgPSB7IH0pOwotICAgIHN0YXRpYyB2b2lkIHJlY29yZENhbnZhc0FjdGlvbihDYW52YXNS
ZW5kZXJpbmdDb250ZXh0JiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFJlY29yZENhbnZhc0FjdGlv
blZhcmlhbnQ+JiYgPSB7IH0pOworICAgIHN0YXRpYyB2b2lkIHJlY29yZENhbnZhc0FjdGlvbihj
b25zdCBIVE1MQ2FudmFzRWxlbWVudCYsIGNvbnN0IFN0cmluZyYsIHN0ZDo6aW5pdGlhbGl6ZXJf
bGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmID0geyB9KTsKKyAgICBzdGF0aWMgdm9p
ZCByZWNvcmRDYW52YXNBY3Rpb24oQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGNvbnN0IFN0cmlu
ZyYsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmID0g
eyB9KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0NhbGxUcmFjZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FsbFRyYWNlclR5cGVzLmgKaW5kZXggN2JjNTQwNmU4N2UyY2YxYTE2M2M5NmFm
MWNmNjI4ZGViNGU2MDdhZS4uZTczMGE3NjFiODlmYjVmYzBlYzAzNzkwM2VkY2U0NDI5YTFhYWQx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FsbFRyYWNlclR5cGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FsbFRyYWNlclR5cGVzLmgKQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvVWludDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CkBAIC01Myw2ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgi
CiAjaW5jbHVkZSAiV2ViR0xRdWVyeS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgi
CisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1ZGUgIldlYkdM
U2FtcGxlci5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTeW5j
LmgiCkBAIC02MiwyMSArNjQsMzAgQEAKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0
LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJHTDIpCisjaW5jbHVkZSAiV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgUmVj
b3JkQ2FudmFzQWN0aW9uVmFyaWFudCA9IFZhcmlhbnQ8CisgICAgLy8gZW51bQogICAgIENhbnZh
c0RpcmVjdGlvbiwKICAgICBDYW52YXNGaWxsUnVsZSwKICAgICBDYW52YXNMaW5lQ2FwLAogICAg
IENhbnZhc0xpbmVKb2luLAogICAgIENhbnZhc1RleHRBbGlnbiwKICAgICBDYW52YXNUZXh0QmFz
ZWxpbmUsCisgICAgSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LAorCisgICAgLy8gc3RydWN0CiAgICAg
RE9NTWF0cml4MkRJbml0LAorCisgICAgLy8gcG9pbnRlcgogICAgIEVsZW1lbnQqLAogICAgIEhU
TUxJbWFnZUVsZW1lbnQqLAogICAgIEltYWdlQml0bWFwKiwKICAgICBJbWFnZURhdGEqLAotICAg
IEltYWdlU21vb3RoaW5nUXVhbGl0eSwKICAgICBQYXRoMkQqLAogI2lmIEVOQUJMRShXRUJHTCkK
ICAgICBXZWJHTEJ1ZmZlciosCkBAIC0xMDksMTMgKzEyMCwzNSBAQCB1c2luZyBSZWNvcmRDYW52
YXNBY3Rpb25WYXJpYW50ID0gVmFyaWFudDwKICAgICBSZWZQdHI8SW1hZ2VEYXRhPiwKICAgICBS
ZWZQdHI8SW50MzJBcnJheT4sCiAgICAgUmVmUHRyPFVpbnQzMkFycmF5PiwKKworICAgIC8vIHZh
cmlhbnQKKyAgICBDYW52YXNJbWFnZVNvdXJjZSwKKyAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlOjpTdHlsZSwKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6QnVmZmVyRGF0YVNvdXJjZSwKKyAgICBPcHRpb25hbDxXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpCdWZmZXJEYXRhU291cmNlPiwKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpUZXhJbWFnZVNvdXJjZSwKKyAgICBPcHRpb25hbDxXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpUZXhJbWFnZVNvdXJjZT4sCisjZW5kaWYKKworICAgIC8vIGFycmF5CiAgICAgVmVjdG9y
PFN0cmluZz4sCiAgICAgVmVjdG9yPGZsb2F0PiwKICAgICBWZWN0b3I8dWludDMyX3Q+LAogICAg
IFZlY3RvcjxpbnQzMl90PiwKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6RmxvYXQzMkxpc3Q6OlZhcmlhbnRUeXBlLAorICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OkludDMyTGlzdDo6VmFyaWFudFR5cGUsCisjZW5kaWYKKyNpZiBFTkFCTEUo
V0VCR0wyKQorICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OlVpbnQzMkxpc3Q6OlZhcmlhbnRU
eXBlLAorI2VuZGlmCisKKyAgICAvLyBiYXNpYwogICAgIFN0cmluZywKICAgICBkb3VibGUsCiAg
ICAgZmxvYXQsCisgICAgT3B0aW9uYWw8ZmxvYXQ+LAogICAgIHVpbnQ2NF90LAogICAgIGludDY0
X3QsCiAgICAgdWludDMyX3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGQwOTgyZGViNTMxMDA3NjM1NmE5Y2QxYTM2Njg2
ZTM4YjFiOGM0YTcuLjBiNjMzMmI1ODBmMjc0OGIyNWZhZDU1MTQ0YjZjMzI0ZjU0NjQyMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC01MDYzLDggKzUwNjMsNyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0ZXJCb2R5
RGVmaW5pdGlvbgogICAgICAgICBteSAkY2FsbFRyYWNpbmdDYWxsYmFjayA9ICRhdHRyaWJ1dGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxUcmFjaW5nQ2FsbGJhY2t9IHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxUcmFjaW5nQ2FsbGJhY2t9OwogICAgICAgICBpZiAo
JGNhbGxUcmFjaW5nQ2FsbGJhY2spIHsKICAgICAgICAgICAgIG15ICRpbmRlbnQgPSAiICAgICI7
Ci0gICAgICAgICAgICBteSBAY2FsbFRyYWNlckFyZ3VtZW50cyA9ICgpOwotICAgICAgICAgICAg
cHVzaChAY2FsbFRyYWNlckFyZ3VtZW50cywgR2VuZXJhdGVDYWxsVHJhY2VyUGFyYW1ldGVyKCJu
YXRpdmVWYWx1ZSIsICRhdHRyaWJ1dGUtPnR5cGUsIDAsICRpbmRlbnQpKTsKKyAgICAgICAgICAg
IG15IEBjYWxsVHJhY2VyQXJndW1lbnRzID0gKCJuYXRpdmVWYWx1ZSIpOwogICAgICAgICAgICAg
R2VuZXJhdGVDYWxsVHJhY2VyKCRvdXRwdXRBcnJheSwgJGNhbGxUcmFjaW5nQ2FsbGJhY2ssICRh
dHRyaWJ1dGUtPm5hbWUsIFxAY2FsbFRyYWNlckFyZ3VtZW50cywgJGluZGVudCk7CiAgICAgICAg
IH0KIApAQCAtNjI2MiwxMCArNjI2MSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVu
Y3Rpb25DYWxsCiAKICAgICBteSAkY2FsbFRyYWNpbmdDYWxsYmFjayA9ICRvcGVyYXRpb24tPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxUcmFjaW5nQ2FsbGJhY2t9IHx8ICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxUcmFjaW5nQ2FsbGJhY2t9OwogICAgIGlmICgkY2FsbFRy
YWNpbmdDYWxsYmFjaykgewotICAgICAgICBteSBAY2FsbFRyYWNlckFyZ3VtZW50cyA9ICgpOwot
ICAgICAgICBmb3JlYWNoIG15ICRhcmd1bWVudCAoQHskb3BlcmF0aW9uLT5hcmd1bWVudHN9KSB7
Ci0gICAgICAgICAgICBwdXNoKEBjYWxsVHJhY2VyQXJndW1lbnRzLCBHZW5lcmF0ZUNhbGxUcmFj
ZXJQYXJhbWV0ZXIoJGFyZ3VtZW50LT5uYW1lLCAkYXJndW1lbnQtPnR5cGUsICRhcmd1bWVudC0+
aXNPcHRpb25hbCAmJiAhZGVmaW5lZCgkYXJndW1lbnQtPmRlZmF1bHQpLCAkaW5kZW50KSk7Ci0g
ICAgICAgIH0KKyAgICAgICAgbXkgQGNhbGxUcmFjZXJBcmd1bWVudHMgPSBtYXAgeyAkXy0+bmFt
ZSB9IEB7JG9wZXJhdGlvbi0+YXJndW1lbnRzfTsKICAgICAgICAgR2VuZXJhdGVDYWxsVHJhY2Vy
KCRvdXRwdXRBcnJheSwgJGNhbGxUcmFjaW5nQ2FsbGJhY2ssICRvcGVyYXRpb24tPm5hbWUsIFxA
Y2FsbFRyYWNlckFyZ3VtZW50cywgJGluZGVudCk7CiAgICAgfQogCkBAIC03NTA1LDU3ICs3NTAx
LDE4IEBAIHN1YiBBZGRKU0J1aWx0aW5JbmNsdWRlc0lmTmVlZGVkKCkKICAgICB9CiB9CiAKLXN1
YiBHZW5lcmF0ZUNhbGxUcmFjZXJQYXJhbWV0ZXIoKQotewotICAgIG15ICgkbmFtZSwgJHR5cGUs
ICRvcHRpb25hbCwgJGluZGVudCkgPSBAXzsKLQotICAgIG15ICRyZXN1bHQgPSAiIjsKLQotICAg
IGlmICgkb3B0aW9uYWwgfHwgJHR5cGUtPmlzTnVsbGFibGUpIHsKLSAgICAgICAgJHJlc3VsdCAu
PSAkaW5kZW50IC4gIiAgICBpZiAoIiAuICRuYW1lIC4gIilcbiI7Ci0gICAgICAgICRyZXN1bHQg
Lj0gIiAgICAiOwotICAgIH0KLQotICAgICRyZXN1bHQgLj0gJGluZGVudCAuICIgICAgIjsKLQot
ICAgIGlmICgkdHlwZS0+aXNVbmlvbikgewotICAgICAgICAkcmVzdWx0IC49ICJXVEY6OnZpc2l0
KFsmXSAoYXV0byYgdmFsdWUpIHsgY2FsbFRyYWNlclBhcmFtZXRlcnMuYXBwZW5kKHZhbHVlKTsg
fSwgIjsKLSAgICB9IGVsc2UgewotICAgICAgICAkcmVzdWx0IC49ICJjYWxsVHJhY2VyUGFyYW1l
dGVycy5hcHBlbmQoIjsKLSAgICB9Ci0KLSAgICBpZiAoJG9wdGlvbmFsIHx8ICgkdHlwZS0+aXNV
bmlvbiAmJiAkdHlwZS0+aXNOdWxsYWJsZSkpIHsKLSAgICAgICAgJHJlc3VsdCAuPSAiKiI7Ci0g
ICAgfQotCi0gICAgJHJlc3VsdCAuPSAkbmFtZSAuICIpOyI7Ci0KLSAgICByZXR1cm4gJHJlc3Vs
dDsKLX0KLQogc3ViIEdlbmVyYXRlQ2FsbFRyYWNlcigpCiB7CiAgICAgbXkgKCRvdXRwdXRBcnJh
eSwgJGNhbGxUcmFjaW5nQ2FsbGJhY2ssICRuYW1lLCAkYXJndW1lbnRzLCAkaW5kZW50KSA9IEBf
OwogCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkNhbGxUcmFjZXIuaCIpOwogCi0gICAgbXkgJGNv
dW50ID0gc2NhbGFyKEAkYXJndW1lbnRzKTsKLQotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGlu
ZGVudCAuICJpZiAoVU5MSUtFTFkoaW1wbC5jYWxsVHJhY2luZ0FjdGl2ZSgpKSkiKTsKLSAgICBp
ZiAoJGNvdW50KSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiB7XG4iKTsKLSAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICBWZWN0b3I8IiAuICRjb2RlR2Vu
ZXJhdG9yLT5XS191Y2ZpcnN0KCRjYWxsVHJhY2luZ0NhbGxiYWNrKSAuICJWYXJpYW50PiBjYWxs
VHJhY2VyUGFyYW1ldGVycztcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksIGpvaW4o
IlxuIiwgQCRhcmd1bWVudHMpKTsKLSAgICB9Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiXG4i
KTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKFVOTElLRUxZKGltcGwu
Y2FsbFRyYWNpbmdBY3RpdmUoKSkpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRl
bnQgLiAiICAgIENhbGxUcmFjZXI6OiIgLiAkY2FsbFRyYWNpbmdDYWxsYmFjayAuICIoaW1wbCwg
XCIiIC4gJG5hbWUgLiAiXCJfcyIpOwotICAgIGlmICgkY291bnQpIHsKLSAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiLCBXVEZNb3ZlKGNhbGxUcmFjZXJQYXJhbWV0ZXJzKSIpOworICAgIGlm
IChzY2FsYXIoQCRhcmd1bWVudHMpKSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiwg
eyAiIC4gam9pbigiLCAiLCBAJGFyZ3VtZW50cykgLiAiIH0iKTsKICAgICB9CiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiKTtcbiIpOwotICAgIGlmICgkY291bnQpIHsKLSAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAkaW5kZW50IC4gIn1cbiIpCi0gICAgfQogfQogCiBzdWIgR2VuZXJhdGVD
dXN0b21FbGVtZW50UmVhY3Rpb25zU3RhY2tJZk5lZWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3Bw
CmluZGV4IDZiODFiZmZlNDk1ZTUwMGJjYmEzNDUxYzdmZDdiNmJlZTc3NTQyNTAuLjFiMjY2YWY4
ODRiNzkwM2E2MTI4M2Y4Y2FjNmU5ODE5NjI1NjU2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5j
cHAKQEAgLTI0MiwxMSArMjQyLDggQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENhbGxU
cmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlU2V0dGVyKEV4ZWNTdGF0ZSYgc3QKICAgICBhdXRv
JiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CiAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNv
bnZlcnQ8SURMQm9vbGVhbj4oc3RhdGUsIHZhbHVlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIGZhbHNlKTsKLSAgICBpZiAoVU5MSUtFTFkoaW1wbC5jYWxsVHJhY2luZ0Fj
dGl2ZSgpKSkgewotICAgICAgICBWZWN0b3I8VGVzdENhbGxUcmFjZXJJbnRlcmZhY2VWYXJpYW50
PiBjYWxsVHJhY2VyUGFyYW1ldGVyczsKLSAgICAgICAgY2FsbFRyYWNlclBhcmFtZXRlcnMuYXBw
ZW5kKG5hdGl2ZVZhbHVlKTsKLSAgICAgICAgQ2FsbFRyYWNlcjo6dGVzdENhbGxUcmFjZXJJbnRl
cmZhY2UoaW1wbCwgInRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UiX3MsIFdURk1vdmUoY2FsbFRyYWNl
clBhcmFtZXRlcnMpKTsKLSAgICB9CisgICAgaWYgKFVOTElLRUxZKGltcGwuY2FsbFRyYWNpbmdB
Y3RpdmUoKSkpCisgICAgICAgIENhbGxUcmFjZXI6OnRlc3RDYWxsVHJhY2VySW50ZXJmYWNlKGlt
cGwsICJ0ZXN0QXR0cmlidXRlSW50ZXJmYWNlIl9zLCB7IG5hdGl2ZVZhbHVlIH0pOwogICAgIEF0
dHJpYnV0ZVNldHRlcjo6Y2FsbChzdGF0ZSwgdGhyb3dTY29wZSwgWyZdIHsKICAgICAgICAgcmV0
dXJuIGltcGwuc2V0VGVzdEF0dHJpYnV0ZUludGVyZmFjZShXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7
CiAgICAgfSk7CkBAIC0yODAsMTEgKzI3Nyw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZFNldHRlcihFeGVjU3RhdGUmIHN0CiAg
ICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwogICAgIGF1dG8gbmF0aXZlVmFs
dWUgPSBjb252ZXJ0PElETEJvb2xlYW4+KHN0YXRlLCB2YWx1ZSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7Ci0gICAgaWYgKFVOTElLRUxZKGltcGwuY2FsbFRy
YWNpbmdBY3RpdmUoKSkpIHsKLSAgICAgICAgVmVjdG9yPFRlc3RDYWxsVHJhY2VyQXR0cmlidXRl
VmFyaWFudD4gY2FsbFRyYWNlclBhcmFtZXRlcnM7Ci0gICAgICAgIGNhbGxUcmFjZXJQYXJhbWV0
ZXJzLmFwcGVuZChuYXRpdmVWYWx1ZSk7Ci0gICAgICAgIENhbGxUcmFjZXI6OnRlc3RDYWxsVHJh
Y2VyQXR0cmlidXRlKGltcGwsICJ0ZXN0QXR0cmlidXRlU3BlY2lmaWVkIl9zLCBXVEZNb3ZlKGNh
bGxUcmFjZXJQYXJhbWV0ZXJzKSk7Ci0gICAgfQorICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxU
cmFjaW5nQWN0aXZlKCkpKQorICAgICAgICBDYWxsVHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckF0dHJp
YnV0ZShpbXBsLCAidGVzdEF0dHJpYnV0ZVNwZWNpZmllZCJfcywgeyBuYXRpdmVWYWx1ZSB9KTsK
ICAgICBBdHRyaWJ1dGVTZXR0ZXI6OmNhbGwoc3RhdGUsIHRocm93U2NvcGUsIFsmXSB7CiAgICAg
ICAgIHJldHVybiBpbXBsLnNldFRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoV1RGTW92ZShuYXRpdmVW
YWx1ZSkpOwogICAgIH0pOwpAQCAtMzE4LDExICszMTIsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudFNldHRlcihFeGVjU3Rh
dGUmCiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwogICAgIGF1dG8gbmF0
aXZlVmFsdWUgPSBjb252ZXJ0PElETFVuaW9uPElETEJvb2xlYW4sIElETEZsb2F0LCBJRExET01T
dHJpbmc+PihzdGF0ZSwgdmFsdWUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgZmFsc2UpOwotICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0aXZlKCkpKSB7
Ci0gICAgICAgIFZlY3RvcjxUZXN0Q2FsbFRyYWNlckludGVyZmFjZVZhcmlhbnQ+IGNhbGxUcmFj
ZXJQYXJhbWV0ZXJzOwotICAgICAgICBXVEY6OnZpc2l0KFsmXSAoYXV0byYgdmFsdWUpIHsgY2Fs
bFRyYWNlclBhcmFtZXRlcnMuYXBwZW5kKHZhbHVlKTsgfSwgbmF0aXZlVmFsdWUpOwotICAgICAg
ICBDYWxsVHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVzdEF0dHJpYnV0
ZVdpdGhWYXJpYW50Il9zLCBXVEZNb3ZlKGNhbGxUcmFjZXJQYXJhbWV0ZXJzKSk7Ci0gICAgfQor
ICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0aXZlKCkpKQorICAgICAgICBDYWxs
VHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVzdEF0dHJpYnV0ZVdpdGhW
YXJpYW50Il9zLCB7IG5hdGl2ZVZhbHVlIH0pOwogICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChz
dGF0ZSwgdGhyb3dTY29wZSwgWyZdIHsKICAgICAgICAgcmV0dXJuIGltcGwuc2V0VGVzdEF0dHJp
YnV0ZVdpdGhWYXJpYW50KFdURk1vdmUobmF0aXZlVmFsdWUpKTsKICAgICB9KTsKQEAgLTM5Mywx
MyArMzg0LDggQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxU
cmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb24KICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIGF1dG8gYyA9IGNvbnZlcnQ8
SURMRE9NU3RyaW5nPigqc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBp
ZiAoVU5MSUtFTFkoaW1wbC5jYWxsVHJhY2luZ0FjdGl2ZSgpKSkgewotICAgICAgICBWZWN0b3I8
VGVzdENhbGxUcmFjZXJJbnRlcmZhY2VWYXJpYW50PiBjYWxsVHJhY2VyUGFyYW1ldGVyczsKLSAg
ICAgICAgY2FsbFRyYWNlclBhcmFtZXRlcnMuYXBwZW5kKGEpOwotICAgICAgICBjYWxsVHJhY2Vy
UGFyYW1ldGVycy5hcHBlbmQoYik7Ci0gICAgICAgIGNhbGxUcmFjZXJQYXJhbWV0ZXJzLmFwcGVu
ZChjKTsKLSAgICAgICAgQ2FsbFRyYWNlcjo6dGVzdENhbGxUcmFjZXJJbnRlcmZhY2UoaW1wbCwg
InRlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzIl9zLCBXVEZNb3ZlKGNhbGxUcmFjZXJQYXJhbWV0
ZXJzKSk7Ci0gICAgfQorICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0aXZlKCkp
KQorICAgICAgICBDYWxsVHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVz
dE9wZXJhdGlvbldpdGhBcmd1bWVudHMiX3MsIHsgYSwgYiwgYyB9KTsKICAgICBpbXBsLnRlc3RP
cGVyYXRpb25XaXRoQXJndW1lbnRzKFdURk1vdmUoYSksIFdURk1vdmUoYiksIFdURk1vdmUoYykp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CkBAIC00MTgs
MTIgKzQwNCw4IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KHN0YXRlKSk7CiAgICAgYXV0byBub2RlTnVsbGFibGVBcmcgPSBjb252ZXJ0PElETE51bGxhYmxl
PElETEludGVyZmFjZTxOb2RlPj4+KCpzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
LCBbXShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUpIHsgdGhy
b3dBcmd1bWVudFR5cGVFcnJvcihzdGF0ZSwgc2NvcGUsIDAsICJub2RlTnVsbGFibGVBcmciLCAi
VGVzdENhbGxUcmFjZXIiLCAidGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50IiwgIk5v
ZGUiKTsgfSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKLSAgICBpZiAoVU5MSUtFTFkoaW1wbC5jYWxsVHJhY2luZ0FjdGl2ZSgpKSkgewot
ICAgICAgICBWZWN0b3I8VGVzdENhbGxUcmFjZXJJbnRlcmZhY2VWYXJpYW50PiBjYWxsVHJhY2Vy
UGFyYW1ldGVyczsKLSAgICAgICAgaWYgKG5vZGVOdWxsYWJsZUFyZykKLSAgICAgICAgICAgIGNh
bGxUcmFjZXJQYXJhbWV0ZXJzLmFwcGVuZChub2RlTnVsbGFibGVBcmcpOwotICAgICAgICBDYWxs
VHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVzdE9wZXJhdGlvbldpdGhO
dWxsYWJsZUFyZ3VtZW50Il9zLCBXVEZNb3ZlKGNhbGxUcmFjZXJQYXJhbWV0ZXJzKSk7Ci0gICAg
fQorICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0aXZlKCkpKQorICAgICAgICBD
YWxsVHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVzdE9wZXJhdGlvbldp
dGhOdWxsYWJsZUFyZ3VtZW50Il9zLCB7IG5vZGVOdWxsYWJsZUFyZyB9KTsKICAgICBpbXBsLnRl
c3RPcGVyYXRpb25XaXRoTnVsbGFibGVBcmd1bWVudChXVEZNb3ZlKG5vZGVOdWxsYWJsZUFyZykp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CkBAIC00NDIs
MTEgKzQyNCw4IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KHN0YXRlKSk7CiAgICAgYXV0byB2YXJpYW50QXJnID0gY29udmVydDxJRExVbmlvbjxJRExCb29s
ZWFuLCBJRExGbG9hdCwgSURMRE9NU3RyaW5nPj4oKnN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJn
dW1lbnQoMCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7Ci0gICAgaWYgKFVOTElLRUxZKGltcGwuY2FsbFRyYWNpbmdBY3RpdmUoKSkpIHsK
LSAgICAgICAgVmVjdG9yPFRlc3RDYWxsVHJhY2VySW50ZXJmYWNlVmFyaWFudD4gY2FsbFRyYWNl
clBhcmFtZXRlcnM7Ci0gICAgICAgIFdURjo6dmlzaXQoWyZdIChhdXRvJiB2YWx1ZSkgeyBjYWxs
VHJhY2VyUGFyYW1ldGVycy5hcHBlbmQodmFsdWUpOyB9LCB2YXJpYW50QXJnKTsKLSAgICAgICAg
Q2FsbFRyYWNlcjo6dGVzdENhbGxUcmFjZXJJbnRlcmZhY2UoaW1wbCwgInRlc3RPcGVyYXRpb25X
aXRoVmFyaWFudEFyZ3VtZW50Il9zLCBXVEZNb3ZlKGNhbGxUcmFjZXJQYXJhbWV0ZXJzKSk7Ci0g
ICAgfQorICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0aXZlKCkpKQorICAgICAg
ICBDYWxsVHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVzdE9wZXJhdGlv
bldpdGhWYXJpYW50QXJndW1lbnQiX3MsIHsgdmFyaWFudEFyZyB9KTsKICAgICBpbXBsLnRlc3RP
cGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50KFdURk1vdmUodmFyaWFudEFyZykpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CkBAIC00NjUsMTIgKzQ0NCw4
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJv
dG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7
CiAgICAgYXV0byB2YXJpYW50TnVsbGFibGVBcmcgPSBjb252ZXJ0PElETE51bGxhYmxlPElETFVu
aW9uPElETEJvb2xlYW4sIElETEZsb2F0LCBJRExET01TdHJpbmc+Pj4oKnN0YXRlLCBzdGF0ZS0+
dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgaWYgKFVOTElLRUxZKGltcGwuY2FsbFRyYWNpbmdB
Y3RpdmUoKSkpIHsKLSAgICAgICAgVmVjdG9yPFRlc3RDYWxsVHJhY2VySW50ZXJmYWNlVmFyaWFu
dD4gY2FsbFRyYWNlclBhcmFtZXRlcnM7Ci0gICAgICAgIGlmICh2YXJpYW50TnVsbGFibGVBcmcp
Ci0gICAgICAgICAgICBXVEY6OnZpc2l0KFsmXSAoYXV0byYgdmFsdWUpIHsgY2FsbFRyYWNlclBh
cmFtZXRlcnMuYXBwZW5kKHZhbHVlKTsgfSwgKnZhcmlhbnROdWxsYWJsZUFyZyk7Ci0gICAgICAg
IENhbGxUcmFjZXI6OnRlc3RDYWxsVHJhY2VySW50ZXJmYWNlKGltcGwsICJ0ZXN0T3BlcmF0aW9u
V2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50Il9zLCBXVEZNb3ZlKGNhbGxUcmFjZXJQYXJhbWV0
ZXJzKSk7Ci0gICAgfQorICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0aXZlKCkp
KQorICAgICAgICBDYWxsVHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVz
dE9wZXJhdGlvbldpdGhOdWxsYWJsZVZhcmlhbnRBcmd1bWVudCJfcywgeyB2YXJpYW50TnVsbGFi
bGVBcmcgfSk7CiAgICAgaW1wbC50ZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3Vt
ZW50KFdURk1vdmUodmFyaWFudE51bGxhYmxlQXJnKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KQEAgLTQ4NywxMiArNDYyLDggQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRl
c3RPcGVyYXRpb24KICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwogICAg
IGF1dG8gdmFyaWFudE9wdGlvbmFsQXJnID0gc3RhdGUtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVk
KCkgPyBPcHRpb25hbDxDb252ZXJ0ZXI8SURMVW5pb248SURMQm9vbGVhbiwgSURMRmxvYXQsIElE
TERPTVN0cmluZz4+OjpSZXR1cm5UeXBlPigpIDogT3B0aW9uYWw8Q29udmVydGVyPElETFVuaW9u
PElETEJvb2xlYW4sIElETEZsb2F0LCBJRExET01TdHJpbmc+Pjo6UmV0dXJuVHlwZT4oY29udmVy
dDxJRExVbmlvbjxJRExCb29sZWFuLCBJRExGbG9hdCwgSURMRE9NU3RyaW5nPj4oKnN0YXRlLCBz
dGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxU
cmFjaW5nQWN0aXZlKCkpKSB7Ci0gICAgICAgIFZlY3RvcjxUZXN0Q2FsbFRyYWNlckludGVyZmFj
ZVZhcmlhbnQ+IGNhbGxUcmFjZXJQYXJhbWV0ZXJzOwotICAgICAgICBpZiAodmFyaWFudE9wdGlv
bmFsQXJnKQotICAgICAgICAgICAgV1RGOjp2aXNpdChbJl0gKGF1dG8mIHZhbHVlKSB7IGNhbGxU
cmFjZXJQYXJhbWV0ZXJzLmFwcGVuZCh2YWx1ZSk7IH0sICp2YXJpYW50T3B0aW9uYWxBcmcpOwot
ICAgICAgICBDYWxsVHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVzdE9w
ZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudCJfcywgV1RGTW92ZShjYWxsVHJhY2Vy
UGFyYW1ldGVycykpOwotICAgIH0KKyAgICBpZiAoVU5MSUtFTFkoaW1wbC5jYWxsVHJhY2luZ0Fj
dGl2ZSgpKSkKKyAgICAgICAgQ2FsbFRyYWNlcjo6dGVzdENhbGxUcmFjZXJJbnRlcmZhY2UoaW1w
bCwgInRlc3RPcGVyYXRpb25XaXRoT3B0aW9uYWxWYXJpYW50QXJndW1lbnQiX3MsIHsgdmFyaWFu
dE9wdGlvbmFsQXJnIH0pOwogICAgIGltcGwudGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlh
bnRBcmd1bWVudChXVEZNb3ZlKHZhcmlhbnRPcHRpb25hbEFyZykpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CkBAIC01MDksMTEgKzQ4MCw4IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVu
Y3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQo
KTsKICAgICBhdXRvIHZhcmlhbnREZWZhdWx0QXJnID0gc3RhdGUtPmFyZ3VtZW50KDApLmlzVW5k
ZWZpbmVkKCkgPyAiIiA6IGNvbnZlcnQ8SURMVW5pb248SURMQm9vbGVhbiwgSURMRmxvYXQsIElE
TERPTVN0cmluZz4+KCpzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGlm
IChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0aXZlKCkpKSB7Ci0gICAgICAgIFZlY3RvcjxU
ZXN0Q2FsbFRyYWNlckludGVyZmFjZVZhcmlhbnQ+IGNhbGxUcmFjZXJQYXJhbWV0ZXJzOwotICAg
ICAgICBXVEY6OnZpc2l0KFsmXSAoYXV0byYgdmFsdWUpIHsgY2FsbFRyYWNlclBhcmFtZXRlcnMu
YXBwZW5kKHZhbHVlKTsgfSwgdmFyaWFudERlZmF1bHRBcmcpOwotICAgICAgICBDYWxsVHJhY2Vy
Ojp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0
VmFyaWFudEFyZ3VtZW50Il9zLCBXVEZNb3ZlKGNhbGxUcmFjZXJQYXJhbWV0ZXJzKSk7Ci0gICAg
fQorICAgIGlmIChVTkxJS0VMWShpbXBsLmNhbGxUcmFjaW5nQWN0aXZlKCkpKQorICAgICAgICBD
YWxsVHJhY2VyOjp0ZXN0Q2FsbFRyYWNlckludGVyZmFjZShpbXBsLCAidGVzdE9wZXJhdGlvbldp
dGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50Il9zLCB7IHZhcmlhbnREZWZhdWx0QXJnIH0pOwogICAg
IGltcGwudGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50KFdURk1vdmUodmFy
aWFudERlZmF1bHRBcmcpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNh
bnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcApp
bmRleCA0YjIyZDVkMjc5NmU5ODU2ZjU1ZDY5ZjAwYzE1ZjAyMWVhZTMyNzhmLi4yOWJlMmEwZTY5
MTA3OWViNjVlNDVlOGYyOGJjMjM3Y2Y2OWJlMDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2VuZGlmCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgorI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE1OCw3ICsxNTksNyBAQCBzdGF0
aWMgYm9vbCBzaG91bGRTbmFwc2hvdFdlYkdMMkFjdGlvbihjb25zdCBTdHJpbmcmIG5hbWUpCiB9
CiAjZW5kaWYKIAotdm9pZCBJbnNwZWN0b3JDYW52YXM6OnJlY29yZEFjdGlvbihjb25zdCBTdHJp
bmcmIG5hbWUsIFZlY3RvcjxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmIHBhcmFtZXRlcnMp
Cit2b2lkIEluc3BlY3RvckNhbnZhczo6cmVjb3JkQWN0aW9uKGNvbnN0IFN0cmluZyYgbmFtZSwg
c3RkOjppbml0aWFsaXplcl9saXN0PFJlY29yZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYgcGFyYW1l
dGVycykKIHsKICAgICBpZiAoIW1faW5pdGlhbFN0YXRlKSB7CiAgICAgICAgIC8vIFdlIHNob3Vs
ZCBvbmx5IGNvbnN0cnVjdCB0aGUgaW5pdGlhbCBzdGF0ZSBmb3IgdGhlIGZpcnN0IGFjdGlvbiBv
ZiB0aGUgcmVjb3JkaW5nLgpAQCAtNjU1LDcgKzY1Niw3IEBAIFJlZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpSZWNvcmRpbmc6OkluaXRpYWxTdGF0ZT4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEluaXRp
YWxTCiAgICAgcmV0dXJuIGluaXRpYWxTdGF0ZVBheWxvYWQ7CiB9CiAKLVJlZjxKU09OOjpBcnJh
eU9mPEpTT046OlZhbHVlPj4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEFjdGlvbihjb25zdCBTdHJp
bmcmIG5hbWUsIFZlY3RvcjxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmIHBhcmFtZXRlcnMp
CitSZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1ZT4+IEluc3BlY3RvckNhbnZhczo6YnVpbGRB
Y3Rpb24oY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8UmVjb3JkQ2Fu
dmFzQWN0aW9uVmFyaWFudD4mJiBwYXJhbWV0ZXJzKQogewogICAgIGF1dG8gYWN0aW9uID0gSlNP
Tjo6QXJyYXlPZjxKU09OOjpWYWx1ZT46OmNyZWF0ZSgpOwogICAgIGFjdGlvbi0+YWRkSXRlbShp
bmRleEZvckRhdGEobmFtZSkpOwpAQCAtNjY4LDE0ICs2NjksMTcgQEAgUmVmPEpTT046OkFycmF5
T2Y8SlNPTjo6VmFsdWU+PiBJbnNwZWN0b3JDYW52YXM6OmJ1aWxkQWN0aW9uKGNvbnN0IFN0cmlu
ZyYgbmFtZSwKICAgICAgICAgc3dpenpsZVR5cGVzLT5hZGRJdGVtKHN0YXRpY19jYXN0PGludD4o
c3dpenpsZVR5cGUpKTsKICAgICB9OwogCi0gICAgZm9yIChhdXRvJiBpdGVtIDogcGFyYW1ldGVy
cykgewotICAgICAgICBXVEY6OnN3aXRjaE9uKGl0ZW0sCisgICAgLy8gRGVjbGFyZWQgYmVmb3Jl
IGl0J3MgaW5pdGlhbGl6ZWQgc28gaXQgY2FuIGJlIHVzZWQgcmVjdXJzaXZlbHkuCisgICAgRnVu
Y3Rpb248dm9pZChjb25zdCBSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50Jik+IHBhcnNlUGFyYW1l
dGVyOworICAgIHBhcnNlUGFyYW1ldGVyID0gWyZdIChjb25zdCBhdXRvJiBwYXJhbWV0ZXIpIHsK
KyAgICAgICAgV1RGOjpzd2l0Y2hPbihwYXJhbWV0ZXIsCiAgICAgICAgICAgICBbJl0gKENhbnZh
c0RpcmVjdGlvbiB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKHZhbHVlKSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6U3RyaW5nKTsg
fSwKICAgICAgICAgICAgIFsmXSAoQ2FudmFzRmlsbFJ1bGUgdmFsdWUpIHsgYWRkUGFyYW1ldGVy
KGluZGV4Rm9yRGF0YShjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZSkpLCBSZWNvcmRp
bmdTd2l6emxlVHlwZXM6OlN0cmluZyk7IH0sCiAgICAgICAgICAgICBbJl0gKENhbnZhc0xpbmVD
YXAgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YShjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyh2YWx1ZSkpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlN0cmluZyk7IH0sCiAgICAg
ICAgICAgICBbJl0gKENhbnZhc0xpbmVKb2luIHZhbHVlKSB7IGFkZFBhcmFtZXRlcihpbmRleEZv
ckRhdGEoY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcodmFsdWUpKSwgUmVjb3JkaW5nU3dpenps
ZVR5cGVzOjpTdHJpbmcpOyB9LAogICAgICAgICAgICAgWyZdIChDYW52YXNUZXh0QWxpZ24gdmFs
dWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YShjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmlu
Zyh2YWx1ZSkpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlN0cmluZyk7IH0sCiAgICAgICAgICAg
ICBbJl0gKENhbnZhc1RleHRCYXNlbGluZSB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JE
YXRhKGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHZhbHVlKSksIFJlY29yZGluZ1N3aXp6bGVU
eXBlczo6U3RyaW5nKTsgfSwKKyAgICAgICAgICAgIFsmXSAoSW1hZ2VTbW9vdGhpbmdRdWFsaXR5
IHZhbHVlKSB7IGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEoY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcodmFsdWUpKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpTdHJpbmcpOyB9LAogICAgICAg
ICAgICAgWyZdIChjb25zdCBET01NYXRyaXgyREluaXQmIHZhbHVlKSB7CiAgICAgICAgICAgICAg
ICAgYXV0byBhcnJheSA9IEpTT046OkFycmF5T2Y8ZG91YmxlPjo6Y3JlYXRlKCk7CiAgICAgICAg
ICAgICAgICAgYXJyYXktPmFkZEl0ZW0odmFsdWUuYS52YWx1ZU9yKDEpKTsKQEAgLTY4Niw1MyAr
NjkwLDE1OSBAQCBSZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1ZT4+IEluc3BlY3RvckNhbnZh
czo6YnVpbGRBY3Rpb24oY29uc3QgU3RyaW5nJiBuYW1lLAogICAgICAgICAgICAgICAgIGFycmF5
LT5hZGRJdGVtKHZhbHVlLmYudmFsdWVPcigwKSk7CiAgICAgICAgICAgICAgICAgYWRkUGFyYW1l
dGVyKGFycmF5LnB0cigpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkRPTU1hdHJpeCk7CiAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgWyZdIChjb25zdCBFbGVtZW50KikgewotICAgICAgICAg
ICAgICAgIC8vIEVsZW1lbnRzIGFyZSBub3Qgc2VyaWFsaXphYmxlLCBzbyBhZGQgYSBzdHJpbmcg
YXMgYSBwbGFjZWhvbGRlciBzaW5jZSB0aGUgYWN0dWFsCi0gICAgICAgICAgICAgICAgLy8gZWxl
bWVudCBjYW5ub3QgYmUgcmVjb25zdHJ1Y3RlZCBpbiB0aGUgZnJvbnRlbmQuCi0gICAgICAgICAg
ICAgICAgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSgiRWxlbWVudCIpLCBSZWNvcmRpbmdTd2l6
emxlVHlwZXM6Ok5vbmUpOworICAgICAgICAgICAgWyZdIChjb25zdCBFbGVtZW50KiB2YWx1ZSkg
eworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBF
bGVtZW50cyBhcmUgbm90IHNlcmlhbGl6YWJsZSwgc28gYWRkIGEgc3RyaW5nIGFzIGEgcGxhY2Vo
b2xkZXIgc2luY2UgdGhlIGFjdHVhbAorICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50IGNh
bm5vdCBiZSByZWNvbnN0cnVjdGVkIGluIHRoZSBmcm9udGVuZC4KKyAgICAgICAgICAgICAgICAg
ICAgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSgiRWxlbWVudCIpLCBSZWNvcmRpbmdTd2l6emxl
VHlwZXM6Ok5vbmUpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICBbJl0gKEhUTUxJbWFnZUVsZW1lbnQqIHZhbHVlKSB7IGFkZFBhcmFtZXRlcihpbmRleEZv
ckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkltYWdlKTsgfSwKLSAgICAgICAg
ICAgIFsmXSAoSW1hZ2VCaXRtYXAqIHZhbHVlKSB7IGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEo
dmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkltYWdlQml0bWFwKTsgfSwKLSAgICAgICAg
ICAgIFsmXSAoSW1hZ2VEYXRhKiB2YWx1ZSkgeyBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZh
bHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJbWFnZURhdGEpOyB9LAotICAgICAgICAgICAg
WyZdIChJbWFnZVNtb290aGluZ1F1YWxpdHkgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9y
RGF0YShjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZSkpLCBSZWNvcmRpbmdTd2l6emxl
VHlwZXM6OlN0cmluZyk7IH0sCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFBhdGgyRCogdmFsdWUp
IHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YShidWlsZFN0cmluZ0Zyb21QYXRoKHZhbHVlLT5w
YXRoKCkpKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpQYXRoMkQpOyB9LAorICAgICAgICAgICAg
WyZdIChIVE1MSW1hZ2VFbGVtZW50KiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1
ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSks
IFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2UpOyB9LAorICAgICAgICAgICAgWyZdIChJbWFn
ZUJpdG1hcCogdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAg
ICAgICAgICAgIGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6
emxlVHlwZXM6OkltYWdlQml0bWFwKTsgfSwKKyAgICAgICAgICAgIFsmXSAoSW1hZ2VEYXRhKiB2
YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAg
YWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6
SW1hZ2VEYXRhKTsgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgUGF0aDJEKiB2YWx1ZSkgewor
ICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1l
dGVyKGluZGV4Rm9yRGF0YShidWlsZFN0cmluZ0Zyb21QYXRoKHZhbHVlLT5wYXRoKCkpKSwgUmVj
b3JkaW5nU3dpenpsZVR5cGVzOjpQYXRoMkQpOyB9LAogI2lmIEVOQUJMRShXRUJHTCkKICAgICAg
ICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc2MDA5PiBXZWIgSW5zcGVj
dG9yOiBzZW5kIGRhdGEgZm9yIFdlYkdMIG9iamVjdHMgZHVyaW5nIGEgcmVjb3JkaW5nIGluc3Rl
YWQgb2YgYSBwbGFjZWhvbGRlciBzdHJpbmcKLSAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xC
dWZmZXIqKSB7IGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMQnVm
ZmVyKTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xGcmFtZWJ1ZmZlciopIHsgYWRk
UGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xGcmFtZWJ1ZmZlcik7IH0s
Ci0gICAgICAgICAgICBbJl0gKGNvbnN0IFdlYkdMUHJvZ3JhbSopIHsgYWRkUGFyYW1ldGVyKDAs
IFJlY29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xQcm9ncmFtKTsgfSwKLSAgICAgICAgICAgIFsm
XSAoY29uc3QgV2ViR0xRdWVyeSopIHsgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVU
eXBlczo6V2ViR0xRdWVyeSk7IH0sCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFdlYkdMUmVuZGVy
YnVmZmVyKikgeyBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTFJl
bmRlcmJ1ZmZlcik7IH0sCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFdlYkdMU2FtcGxlciopIHsg
YWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xTYW1wbGVyKTsgfSwK
LSAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xTaGFkZXIqKSB7IGFkZFBhcmFtZXRlcigwLCBS
ZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMU2hhZGVyKTsgfSwKLSAgICAgICAgICAgIFsmXSAo
Y29uc3QgV2ViR0xTeW5jKikgeyBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVz
OjpXZWJHTFN5bmMpOyB9LAotICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTFRleHR1cmUqKSB7
IGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMVGV4dHVyZSk7IH0s
Ci0gICAgICAgICAgICBbJl0gKGNvbnN0IFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sqKSB7IGFkZFBh
cmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2sp
OyB9LAotICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiopIHsgYWRk
UGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xVbmlmb3JtTG9jYXRpb24p
OyB9LAotICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTFZlcnRleEFycmF5T2JqZWN0KikgeyBh
ZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0KTsgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xCdWZmZXIqIHZhbHVlKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0
ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTEJ1ZmZlcik7CisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTEZyYW1lYnVmZmVyKiB2YWx1ZSkgeworICAg
ICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVy
KDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xGcmFtZWJ1ZmZlcik7CisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBXZWJHTFByb2dyYW0qIHZhbHVlKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIo
MCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpXZWJHTFByb2dyYW0pOworICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xRdWVyeSogdmFsdWUpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigwLCBSZWNv
cmRpbmdTd2l6emxlVHlwZXM6OldlYkdMUXVlcnkpOworICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIFsmXSAoY29uc3QgV2ViR0xSZW5kZXJidWZmZXIqIHZhbHVlKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoMCwgUmVjb3Jk
aW5nU3dpenpsZVR5cGVzOjpXZWJHTFJlbmRlcmJ1ZmZlcik7CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgWyZdIChjb25zdCBXZWJHTFNhbXBsZXIqIHZhbHVlKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoMCwgUmVjb3Jk
aW5nU3dpenpsZVR5cGVzOjpXZWJHTFNhbXBsZXIpOworICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIFsmXSAoY29uc3QgV2ViR0xTaGFkZXIqIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYg
KHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dp
enpsZVR5cGVzOjpXZWJHTFNoYWRlcik7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZd
IChjb25zdCBXZWJHTFN5bmMqIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQor
ICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVz
OjpXZWJHTFN5bmMpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgV2Vi
R0xUZXh0dXJlKiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAg
ICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6V2ViR0xU
ZXh0dXJlKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0IFdlYkdMVHJh
bnNmb3JtRmVlZGJhY2sqIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAg
ICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpX
ZWJHTFRyYW5zZm9ybUZlZWRiYWNrKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0g
KGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlm
ICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3
aXp6bGVUeXBlczo6V2ViR0xVbmlmb3JtTG9jYXRpb24pOworICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIFsmXSAoY29uc3QgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogdmFsdWUpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigw
LCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OldlYkdMVmVydGV4QXJyYXlPYmplY3QpOworICAgICAg
ICAgICAgfSwKICNlbmRpZgotICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8QXJyYXlCdWZm
ZXI+JikgeyBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpUeXBlZEFycmF5
KTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4mKSB7
IGFkZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlR5cGVkQXJyYXkpOyB9LAot
ICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8Q2FudmFzR3JhZGllbnQ+JiB2YWx1ZSkgeyBh
ZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpD
YW52YXNHcmFkaWVudCk7IH0sCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxDYW52YXNQ
YXR0ZXJuPiYgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29y
ZGluZ1N3aXp6bGVUeXBlczo6Q2FudmFzUGF0dGVybik7IH0sCi0gICAgICAgICAgICBbJl0gKGNv
bnN0IFJlZlB0cjxGbG9hdDMyQXJyYXk+JikgeyBhZGRQYXJhbWV0ZXIoMCwgUmVjb3JkaW5nU3dp
enpsZVR5cGVzOjpUeXBlZEFycmF5KTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRy
PEhUTUxDYW52YXNFbGVtZW50PiYgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2
YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2UpOyB9LAotICAgICAgICAgICAgWyZd
IChjb25zdCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4mIHZhbHVlKSB7IGFkZFBhcmFtZXRlcihp
bmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkltYWdlKTsgfSwKKyAg
ICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEFycmF5QnVmZmVyPiYgdmFsdWUpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcigw
LCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlR5cGVkQXJyYXkpOworICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4mIHZhbHVlKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0
ZXIoMCwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpUeXBlZEFycmF5KTsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxDYW52YXNHcmFkaWVudD4mIHZhbHVlKSB7
CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQYXJh
bWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpDYW52YXNH
cmFkaWVudCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8
Q2FudmFzUGF0dGVybj4mIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAg
ICAgICAgICAgICAgICAgICBhZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3Jk
aW5nU3dpenpsZVR5cGVzOjpDYW52YXNQYXR0ZXJuKTsKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxGbG9hdDMyQXJyYXk+JiB2YWx1ZSkgeworICAgICAgICAg
ICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJl
Y29yZGluZ1N3aXp6bGVUeXBlczo6VHlwZWRBcnJheSk7CisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgWyZdIChjb25zdCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiB2YWx1ZSkgeworICAg
ICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVy
KGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2UpOworICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEhUTUxJbWFnZUVsZW1l
bnQ+JiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAg
ICAgICAgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVU
eXBlczo6SW1hZ2UpOworICAgICAgICAgICAgfSwKICNpZiBFTkFCTEUoVklERU8pCi0gICAgICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiYgdmFsdWUpIHsgYWRkUGFy
YW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2Up
OyB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4mIHZh
bHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBh
ZGRQYXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJ
bWFnZSk7CisgICAgICAgICAgICB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkK
LSAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFR5cGVkT01DU1NJbWFnZVZhbHVlPiYgdmFs
dWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVU
eXBlczo6SW1hZ2UpOyB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8VHlwZWRPTUNT
U0ltYWdlVmFsdWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAg
ICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGlu
Z1N3aXp6bGVUeXBlczo6SW1hZ2UpOworICAgICAgICAgICAgfSwKKyNlbmRpZgorICAgICAgICAg
ICAgWyZdIChjb25zdCBSZWZQdHI8SW1hZ2VCaXRtYXA+JiB2YWx1ZSkgeworICAgICAgICAgICAg
ICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKGluZGV4Rm9y
RGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2VCaXRtYXApOworICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEltYWdlRGF0YT4mIHZhbHVl
KSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBhZGRQ
YXJhbWV0ZXIoaW5kZXhGb3JEYXRhKHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpJbWFn
ZURhdGEpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPElu
dDMyQXJyYXk+JiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAg
ICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6VHlwZWRB
cnJheSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8VWlu
dDMyQXJyYXk+JiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAg
ICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6VHlwZWRB
cnJheSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBDYW52YXNJbWFn
ZVNvdXJjZSYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBXVEY6OnZpc2l0KHBhcnNlUGFyYW1l
dGVyLCB2YWx1ZSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpTdHlsZSYgdmFsdWUpIHsKKyAgICAgICAgICAgICAg
ICBXVEY6OnZpc2l0KHBhcnNlUGFyYW1ldGVyLCB2YWx1ZSk7CisgICAgICAgICAgICB9LAorI2lm
IEVOQUJMRShXRUJHTCkKKyAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6QnVmZmVyRGF0YVNvdXJjZSYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBXVEY6
OnZpc2l0KHBhcnNlUGFyYW1ldGVyLCB2YWx1ZSk7CisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgWyZdIChjb25zdCBPcHRpb25hbDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpCdWZmZXJE
YXRhU291cmNlPiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAg
ICAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVyKHZhbHVlLnZhbHVlKCkpOworICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6VGV4
SW1hZ2VTb3VyY2UmIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgV1RGOjp2aXNpdChwYXJzZVBh
cmFtZXRlciwgdmFsdWUpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3Qg
T3B0aW9uYWw8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6VGV4SW1hZ2VTb3VyY2U+JiB2YWx1
ZSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgcGFy
c2VQYXJhbWV0ZXIodmFsdWUudmFsdWUoKSk7CisgICAgICAgICAgICB9LAogI2VuZGlmCi0gICAg
ICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxJbWFnZUJpdG1hcD4mIHZhbHVlKSB7IGFkZFBhcmFt
ZXRlcihpbmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkltYWdlQml0
bWFwKTsgfSwKLSAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEltYWdlRGF0YT4mIHZhbHVl
KSB7IGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlw
ZXM6OkltYWdlRGF0YSk7IH0sCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxJbnQzMkFy
cmF5PiYpIHsgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6VHlwZWRBcnJh
eSk7IH0sCi0gICAgICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50MzJBcnJheT4mKSB7IGFk
ZFBhcmFtZXRlcigwLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OlR5cGVkQXJyYXkpOyB9LAogICAg
ICAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmFsdWUpIHsKICAgICAgICAgICAg
ICAgICBhdXRvIGRlZHVwbGljYXRlZCA9IHZhbHVlLm1hcChbJl0gKGNvbnN0IFN0cmluZyYgaXRl
bSkgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhGb3JEYXRhKGl0ZW0pOwogICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcihidWlsZEFycmF5
Rm9yVmVjdG9yKGRlZHVwbGljYXRlZCkucHRyKCksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6QXJy
YXkpOworICAgICAgICAgICAgICAgIGFkZFBhcmFtZXRlcihidWlsZEFycmF5Rm9yVmVjdG9yKGRl
ZHVwbGljYXRlZCkucHRyKCksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6U3RyaW5nKTsKICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICBbJl0gKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKSB7
IGFkZFBhcmFtZXRlcihidWlsZEFycmF5Rm9yVmVjdG9yKHZhbHVlKS5wdHIoKSwgUmVjb3JkaW5n
U3dpenpsZVR5cGVzOjpBcnJheSk7IH0sCiAgICAgICAgICAgICBbJl0gKGNvbnN0IFZlY3Rvcjx1
aW50MzJfdD4mIHZhbHVlKSB7CkBAIC03NDIsOSArODUyLDI2IEBAIFJlZjxKU09OOjpBcnJheU9m
PEpTT046OlZhbHVlPj4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEFjdGlvbihjb25zdCBTdHJpbmcm
IG5hbWUsCiAgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKGJ1aWxkQXJyYXlGb3JWZWN0b3Io
bWFwcGVkKS5wdHIoKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpBcnJheSk7CiAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8aW50MzJfdD4mIHZhbHVlKSB7IGFk
ZFBhcmFtZXRlcihidWlsZEFycmF5Rm9yVmVjdG9yKHZhbHVlKS5wdHIoKSwgUmVjb3JkaW5nU3dp
enpsZVR5cGVzOjpBcnJheSk7IH0sCisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICAgICAgWyZd
IChjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpGbG9hdDMyTGlzdDo6VmFyaWFudFR5
cGUmIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgV1RGOjp2aXNpdChwYXJzZVBhcmFtZXRlciwg
dmFsdWUpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6SW50MzJMaXN0OjpWYXJpYW50VHlwZSYgdmFsdWUpIHsKKyAgICAg
ICAgICAgICAgICBXVEY6OnZpc2l0KHBhcnNlUGFyYW1ldGVyLCB2YWx1ZSk7CisgICAgICAgICAg
ICB9LAorI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgICAgIFsmXSAoY29uc3Qg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6VWludDMyTGlzdDo6VmFyaWFudFR5cGUmIHZhbHVlKSB7
CisgICAgICAgICAgICAgICAgV1RGOjp2aXNpdChwYXJzZVBhcmFtZXRlciwgdmFsdWUpOworICAg
ICAgICAgICAgfSwKKyNlbmRpZgogICAgICAgICAgICAgWyZdIChjb25zdCBTdHJpbmcmIHZhbHVl
KSB7IGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlw
ZXM6OlN0cmluZyk7IH0sCiAgICAgICAgICAgICBbJl0gKGRvdWJsZSB2YWx1ZSkgeyBhZGRQYXJh
bWV0ZXIodmFsdWUsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6TnVtYmVyKTsgfSwKICAgICAgICAg
ICAgIFsmXSAoZmxvYXQgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKHZhbHVlLCBSZWNvcmRpbmdTd2l6
emxlVHlwZXM6Ok51bWJlcik7IH0sCisgICAgICAgICAgICBbJl0gKGNvbnN0IE9wdGlvbmFsPGZs
b2F0PiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAg
ICAgICAgIHBhcnNlUGFyYW1ldGVyKHZhbHVlLnZhbHVlKCkpOworICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgIFsmXSAodWludDY0X3QgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKHN0YXRpY19jYXN0
PGRvdWJsZT4odmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6Ok51bWJlcik7IH0sCiAgICAg
ICAgICAgICBbJl0gKGludDY0X3QgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKHN0YXRpY19jYXN0PGRv
dWJsZT4odmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6Ok51bWJlcik7IH0sCiAgICAgICAg
ICAgICBbJl0gKHVpbnQzMl90IHZhbHVlKSB7IGFkZFBhcmFtZXRlcihzdGF0aWNfY2FzdDxkb3Vi
bGU+KHZhbHVlKSwgUmVjb3JkaW5nU3dpenpsZVR5cGVzOjpOdW1iZXIpOyB9LApAQCAtNzUyLDcg
Kzg3OSw5IEBAIFJlZjxKU09OOjpBcnJheU9mPEpTT046OlZhbHVlPj4gSW5zcGVjdG9yQ2FudmFz
OjpidWlsZEFjdGlvbihjb25zdCBTdHJpbmcmIG5hbWUsCiAgICAgICAgICAgICBbJl0gKHVpbnQ4
X3QgdmFsdWUpIHsgYWRkUGFyYW1ldGVyKHN0YXRpY19jYXN0PGludD4odmFsdWUpLCBSZWNvcmRp
bmdTd2l6emxlVHlwZXM6Ok51bWJlcik7IH0sCiAgICAgICAgICAgICBbJl0gKGJvb2wgdmFsdWUp
IHsgYWRkUGFyYW1ldGVyKHZhbHVlLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkJvb2xlYW4pOyB9
CiAgICAgICAgICk7Ci0gICAgfQorICAgIH07CisgICAgZm9yIChhdXRvJiBwYXJhbWV0ZXIgOiBw
YXJhbWV0ZXJzKQorICAgICAgICBwYXJzZVBhcmFtZXRlcihwYXJhbWV0ZXIpOwogCiAgICAgYWN0
aW9uLT5hZGRJdGVtKFdURk1vdmUocGFyYW1ldGVyc0RhdGEpKTsKICAgICBhY3Rpb24tPmFkZEl0
ZW0oV1RGTW92ZShzd2l6emxlVHlwZXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDYW52YXMuaAppbmRleCA2ODg2ZTYyNmM2N2ZlZjhjODkxN2YxNWUwOTEyOTZhZjYzNGVk
ODUzLi4zODU0MmZiNTc2YmU2MjFlMjFkNmU2ZWFmYzc2YzlkMWFmN2YyNjMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5oCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbEZyYW1lLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CisjaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4K
ICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTYzLDcgKzY0LDcgQEAgcHVibGljOgogICAg
IHZvaWQgcmVzZXRSZWNvcmRpbmdEYXRhKCk7CiAgICAgYm9vbCBoYXNSZWNvcmRpbmdEYXRhKCkg
Y29uc3Q7CiAgICAgYm9vbCBjdXJyZW50RnJhbWVIYXNEYXRhKCkgY29uc3Q7Ci0gICAgdm9pZCBy
ZWNvcmRBY3Rpb24oY29uc3QgU3RyaW5nJiwgVmVjdG9yPFJlY29yZENhbnZhc0FjdGlvblZhcmlh
bnQ+JiYgPSB7IH0pOworICAgIHZvaWQgcmVjb3JkQWN0aW9uKGNvbnN0IFN0cmluZyYsIHN0ZDo6
aW5pdGlhbGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmID0geyB9KTsKIAog
ICAgIFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlY29yZGluZzo6RnJh
bWU+PiByZWxlYXNlRnJhbWVzKCkgeyByZXR1cm4gbV9mcmFtZXMucmVsZWFzZU5vbk51bGwoKTsg
fQogCkBAIC0xMDksNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICBpbnQgaW5kZXhGb3JEYXRhKER1
cGxpY2F0ZURhdGFWYXJpYW50KTsKICAgICBTdHJpbmcgc3RyaW5nSW5kZXhGb3JLZXkoY29uc3Qg
U3RyaW5nJik7CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlY29yZGluZzo6SW5pdGlh
bFN0YXRlPiBidWlsZEluaXRpYWxTdGF0ZSgpOwotICAgIFJlZjxKU09OOjpBcnJheU9mPEpTT046
OlZhbHVlPj4gYnVpbGRBY3Rpb24oY29uc3QgU3RyaW5nJiwgVmVjdG9yPFJlY29yZENhbnZhc0Fj
dGlvblZhcmlhbnQ+JiYgPSB7IH0pOworICAgIFJlZjxKU09OOjpBcnJheU9mPEpTT046OlZhbHVl
Pj4gYnVpbGRBY3Rpb24oY29uc3QgU3RyaW5nJiwgc3RkOjppbml0aWFsaXplcl9saXN0PFJlY29y
ZENhbnZhc0FjdGlvblZhcmlhbnQ+JiYgPSB7IH0pOwogICAgIFJlZjxKU09OOjpBcnJheU9mPEpT
T046OlZhbHVlPj4gYnVpbGRBcnJheUZvckNhbnZhc0dyYWRpZW50KGNvbnN0IENhbnZhc0dyYWRp
ZW50Jik7CiAgICAgUmVmPEpTT046OkFycmF5T2Y8SlNPTjo6VmFsdWU+PiBidWlsZEFycmF5Rm9y
Q2FudmFzUGF0dGVybihjb25zdCBDYW52YXNQYXR0ZXJuJik7CiAgICAgUmVmPEpTT046OkFycmF5
T2Y8SlNPTjo6VmFsdWU+PiBidWlsZEFycmF5Rm9ySW1hZ2VEYXRhKGNvbnN0IEltYWdlRGF0YSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAppbmRleCBmYmI4YWY0YTgyZWEwZmRmNzkyZTRhMWZkMzEwZjc5YzlkNjA0NTBk
Li5hOTA0YzAzZGI5ODkzYjRlODBhNTQ2M2JkOTRhNGVjYzk5NTMyYjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApA
QCAtMTAzNiw3ICsxMDM2LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENo
YW5nZUNhbnZhc01lbW9yeUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW4KICAgICAgICAgY2Fu
dmFzQWdlbnQtPmRpZENoYW5nZUNhbnZhc01lbW9yeShjb250ZXh0KTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnJlY29yZENhbnZhc0FjdGlvbkltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYgY2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBWZWN0b3I8UmVjb3JkQ2Fu
dmFzQWN0aW9uVmFyaWFudD4mJiBwYXJhbWV0ZXJzKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OnJlY29yZENhbnZhc0FjdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYgY2FudmFzUmVuZGVyaW5nQ29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8UmVjb3JkQ2Fu
dmFzQWN0aW9uVmFyaWFudD4mJiBwYXJhbWV0ZXJzKQogewogICAgIGlmIChJbnNwZWN0b3JDYW52
YXNBZ2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZh
c0FnZW50KCkpCiAgICAgICAgIGNhbnZhc0FnZW50LT5yZWNvcmRDYW52YXNBY3Rpb24oY2FudmFz
UmVuZGVyaW5nQ29udGV4dCwgbmFtZSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXgg
OTc5MWE4NjUwYjQ5OWY0YjBiZjVmYmFkM2NiOGFhNmQzNjBlZTI3My4uOWNhZGZiMWU4YzFmNmY5
MzhiNGQwNTYwYjQzMmJmMTQ2ZjM3MTJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtNTAsNiArNTAsNyBAQAogI2lu
Y2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNs
dWRlIDxpbml0aWFsaXplcl9saXN0PgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTI2OSw3ICsyNzAsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlQ1NTQ2FudmFzQ2xpZW50Tm9kZXMoQ2FudmFz
QmFzZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQo
Q2FudmFzUmVuZGVyaW5nQ29udGV4dCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZUNhbnZh
c01lbW9yeShDYW52YXNSZW5kZXJpbmdDb250ZXh0Jik7Ci0gICAgc3RhdGljIHZvaWQgcmVjb3Jk
Q2FudmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBjb25zdCBTdHJpbmcmLCBWZWN0
b3I8UmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudD4mJiA9IHsgfSk7CisgICAgc3RhdGljIHZvaWQg
cmVjb3JkQ2FudmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBjb25zdCBTdHJpbmcm
LCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8UmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudD4mJiA9IHsg
fSk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoUmVjb3JkaW5nQ2FudmFzRnJhbWUoQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCYsIGJvb2wgZm9yY2VEaXNwYXRjaCA9IGZhbHNlKTsKICNpZiBFTkFC
TEUoV0VCR0wpCiAgICAgc3RhdGljIHZvaWQgZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmLCBjb25zdCBTdHJpbmcmKTsKQEAgLTQ1Miw3ICs0NTMsNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZUNTU0NhbnZhc0NsaWVudE5vZGVzSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgQ2FudmFzQmFzZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENy
ZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlQ2FudmFzTWVt
b3J5SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYpOwot
ICAgIHN0YXRpYyB2b2lkIHJlY29yZENhbnZhc0FjdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8UmVjb3Jk
Q2FudmFzQWN0aW9uVmFyaWFudD4mJiA9IHsgfSk7CisgICAgc3RhdGljIHZvaWQgcmVjb3JkQ2Fu
dmFzQWN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCYsIGNvbnN0IFN0cmluZyYsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rp
b25WYXJpYW50PiYmID0geyB9KTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hSZWNvcmRpbmdD
YW52YXNGcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQmLCBib29sIGZvcmNlRGlzcGF0Y2ggPSBmYWxzZSk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAg
IHN0YXRpYyB2b2lkIGRpZEVuYWJsZUV4dGVuc2lvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBjb25zdCBTdHJpbmcmKTsKQEAgLTEzMTEsNyAr
MTMxMiw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdl
Q2FudmFzTWVtb3J5KENhbnZhc1JlbmRlcmluZ0NvbnRlCiAgICAgICAgIGRpZENoYW5nZUNhbnZh
c01lbW9yeUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHQpOwogfQogCi1pbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlY29yZENhbnZhc0FjdGlvbihDYW52YXNS
ZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIFZlY3RvcjxSZWNv
cmRDYW52YXNBY3Rpb25WYXJpYW50PiYmIHBhcmFtZXRlcnMpCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnJlY29yZENhbnZhc0FjdGlvbihDYW52YXNSZW5kZXJpbmdDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxS
ZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmIHBhcmFtZXRlcnMpCiB7CiAgICAgRkFTVF9SRVRV
Uk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250
ZXh0LmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNw
cAppbmRleCBhMzNiNjAzMmI3ZmI5MmRlNzlmMGQyYjMxNTVjZTQzZTZmNGMwMTAzLi45YmUwNjEx
OWZiMzIxOTcwMDcyOTcyMmQ4MzZhODE2YjI1ZjFjMDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAt
NDIwLDcgKzQyMCw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENoYW5nZUNhbnZh
c01lbW9yeShDYW52YXNSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0CiAgICAgICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5jYW52YXNNZW1vcnlDaGFuZ2VkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRp
ZmllcigpLCBub2RlLT5tZW1vcnlDb3N0KCkpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0Fn
ZW50OjpyZWNvcmRDYW52YXNBY3Rpb24oQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYgY2FudmFzUmVu
ZGVyaW5nQ29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBWZWN0b3I8UmVjb3JkQ2FudmFzQWN0
aW9uVmFyaWFudD4mJiBwYXJhbWV0ZXJzKQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVj
b3JkQ2FudmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmIGNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PFJlY29yZENh
bnZhc0FjdGlvblZhcmlhbnQ+JiYgcGFyYW1ldGVycykKIHsKICAgICBhdXRvIGluc3BlY3RvckNh
bnZhcyA9IGZpbmRJbnNwZWN0b3JDYW52YXMoY2FudmFzUmVuZGVyaW5nQ29udGV4dCk7CiAgICAg
QVNTRVJUKGluc3BlY3RvckNhbnZhcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXggNTlhMjI1MGQ3MzQ4MzE3
MTE4ZjNkOWRkNDcxMjQxN2FkZmY4MDY4MS4uZmEwZjZjYzIzYjBlNDUxOWFlMTkwMzUyMjdiZjk4
ODFiZTFmMTIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRj
aGVycy5oPgorI2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpA
QCAtODcsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDcmVhdGVDYW52YXNSZW5kZXJp
bmdDb250ZXh0KENhbnZhc1JlbmRlcmluZ0NvbnRleHQmKTsKICAgICB2b2lkIHdpbGxEZXN0cm95
Q2FudmFzUmVuZGVyaW5nQ29udGV4dChDYW52YXNSZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VDYW52YXNNZW1vcnkoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYpOwotICAgIHZv
aWQgcmVjb3JkQ2FudmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBjb25zdCBTdHJp
bmcmLCBWZWN0b3I8UmVjb3JkQ2FudmFzQWN0aW9uVmFyaWFudD4mJiA9IHsgfSk7CisgICAgdm9p
ZCByZWNvcmRDYW52YXNBY3Rpb24oQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGNvbnN0IFN0cmlu
ZyYsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWNvcmRDYW52YXNBY3Rpb25WYXJpYW50PiYmID0g
eyB9KTsKICAgICB2b2lkIGRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1lKENhbnZhc1JlbmRl
cmluZ0NvbnRleHQmLCBib29sIGZvcmNlRGlzcGF0Y2ggPSBmYWxzZSk7CiAgICAgdm9pZCBjb25z
b2xlU3RhcnRSZWNvcmRpbmdDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIEpTQzo6RXhl
Y1N0YXRlJiwgSlNDOjpKU09iamVjdCogb3B0aW9ucyk7CiAjaWYgRU5BQkxFKFdFQkdMKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29y
ZGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNv
cmRpbmcuanMKaW5kZXggYzliNzQzNDU5Yzg4NjkyMGJmYjQwNGQ3NjAwMTNmNzAxMGQzOGZjYi4u
Mzg0N2NlNjlmZTU5M2MyMGRjNTU0NzRlMDM4MzJhYzIzZjMwZDA0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpz
CkBAIC0zNTIsNyArMzUyLDEwIEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29yZGluZyBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAg
ICAgIGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5nOgotICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9zd2l6emxlW2luZGV4XVt0eXBlXSA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9zd2l6emxlW2luZGV4XVt0eXBlXSA9IGF3YWl0IFByb21pc2UuYWxsKGRhdGEubWFw
KChpdGVtKSA9PiB0aGlzLnN3aXp6bGUoaXRlbSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5n
KSkpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLl9zd2l6emxlW2luZGV4XVt0eXBlXSA9IFN0cmluZyhkYXRhKTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgICAgICBjYXNlIFdJLlJlY29yZGluZy5Td2l6emxl
LkltYWdlOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>