<?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>192901</bug_id>
          
          <creation_ts>2018-12-19 16:52:25 -0800</creation_ts>
          <short_desc>Adding runtime-enabled attribute to Element prevents inlining property access</short_desc>
          <delta_ts>2019-01-09 14:02:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Michaud">justin_michaud</reporter>
          <assigned_to name="Justin Michaud">justin_michaud</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1489597</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2018-12-19 16:52:25 -0800</bug_when>
    <thetext>This test &lt;https://trac.webkit.org/browser/trunk/LayoutTests/js/dom/domjit-function-get-element-by-id.html&gt; started failing after this patch &lt;&gt;.
See https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=js%2Fdom%2Fdomjit-function-get-element-by-id.html

Saam suggested calling flattenDictionaryObject should fix this, and it seems to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489613</commentid>
    <comment_count>1</comment_count>
      <attachid>357761</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2018-12-19 17:06:59 -0800</bug_when>
    <thetext>Created attachment 357761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489718</commentid>
    <comment_count>2</comment_count>
      <attachid>357778</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2018-12-19 21:35:49 -0800</bug_when>
    <thetext>Created attachment 357778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489761</commentid>
    <comment_count>3</comment_count>
      <attachid>357778</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-19 23:21:06 -0800</bug_when>
    <thetext>Comment on attachment 357778
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Adding runtime-enabled attribute to Element prevents inlining

I’d saying “inlining property access” here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489880</commentid>
    <comment_count>4</comment_count>
      <attachid>357822</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2018-12-20 09:43:36 -0800</bug_when>
    <thetext>Created attachment 357822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490218</commentid>
    <comment_count>5</comment_count>
      <attachid>357822</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-20 17:33:22 -0800</bug_when>
    <thetext>Comment on attachment 357822
Patch

Clearing flags on attachment: 357822

Committed r239483: &lt;https://trac.webkit.org/changeset/239483&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490219</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-20 17:33:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490221</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-20 17:34:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/46888953&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492683</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-01-08 11:46:44 -0800</bug_when>
    <thetext>This was also a 7% progression on the &quot;Dromaeo CSS Selector&quot; test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493076</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-09 14:02:50 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #8)
&gt; This was also a 7% progression on the &quot;Dromaeo CSS Selector&quot; test.

Nice!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357761</attachid>
            <date>2018-12-19 17:06:59 -0800</date>
            <delta_ts>2018-12-19 21:35:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192901-20181219170644.patch</filename>
            <type>text/plain</type>
            <size>18343</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5MDc2MDViNjZlMWVk
MGNlYTc0ZDk4ODFiZWNiNzc0YjBhNmI0Yi4uZmFiNTVjODBlNTE5ZWU3MDhiY2UxYWFjNWJhNDcw
YTM4YzAzMjMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTEyLTE5ICBKdXN0
aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRpbmcg
cnVudGltZS1lbmFibGVkIGF0dHJpYnV0ZSB0byBFbGVtZW50IHByZXZlbnRzIGlubGluaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI5MDEKKwor
ICAgICAgICBBZGQgYSBjYWxsIHRvIGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0IGFmdGVyIGRpc2Fi
bGluZyBydW50aW1lLWVuYWJsZWQgYXR0cmlidXRlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROb2RlUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKToKKwogMjAxOC0xMi0xOCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5f
bWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIENTUyBQcm9wZXJ0aWVzIGFuZCBW
YWx1ZXMgQVBJIHRvIHVzZSBuZXcgY3ljbGUgZmFsbGJhY2sgYmVoYXZpb3VyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGNl
MjRlZTRkZTM1MzY5NGRlZDFkZTQ1YmUxMTAwYjkyZDExNjdlOTYuLmFkMWNiZGU0ZDU0NmE3MTFl
NTE3MmI2YTU3MjM5Nzk5NzMyYzcyMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MTkxLDEyICs0MTkxLDE4IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgbXkgQHJ1bnRpbWVFbmFibGVkUHJv
cGVydGllcyA9IEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnM7CiAgICAgICAgIHB1c2goQHJ1bnRp
bWVFbmFibGVkUHJvcGVydGllcywgQHJ1bnRpbWVFbmFibGVkQXR0cmlidXRlcyk7CisKKyAgICAg
ICAgaWYgKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IGZhbHNl
O1xuIik7CisgICAgICAgIH0KKwogICAgICAgICBmb3JlYWNoIG15ICRvcGVyYXRpb25PckF0dHJp
YnV0ZSAoQHJ1bnRpbWVFbmFibGVkUHJvcGVydGllcykgewogICAgICAgICAgICAgbXkgJGNvbmRp
dGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JG9wZXJhdGlvbk9yQXR0cmlidXRlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
I2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAg
ICAgICAgICBteSAkcnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVSdW50
aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSwgJG9wZXJhdGlvbk9yQXR0cmli
dXRlKTsKICAgICAgICAgICAgIG15ICRuYW1lID0gJG9wZXJhdGlvbk9yQXR0cmlidXRlLT5uYW1l
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCEke3J1bnRpbWVFbmFi
bGVDb25kaXRpb25hbFN0cmluZ30pIHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlO1xuIik7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRuYW1lXCIpKTtcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29w
ZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTtcbiIpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUp
O1xuIik7CkBAIC00MjA0LDYgKzQyMTAsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9u
YWxTdHJpbmc7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoQHJ1bnRpbWVFbmFibGVkUHJvcGVy
dGllcykgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGhhc0Rpc2Fi
bGVkUnVudGltZVByb3BlcnRpZXMgJiYgdGhpcy0+c3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgp
KVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhpcy0+Zmxh
dHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pO1xuIik7CisgICAgICAgIH0KKwogICAgICAgICBmb3Jl
YWNoIG15ICRvcGVyYXRpb24gKEB7JGludGVyZmFjZS0+b3BlcmF0aW9uc30pIHsKICAgICAgICAg
ICAgIG5leHQgdW5sZXNzICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQcml2YXRl
SWRlbnRpZmllcn0pOwogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIldlYkNvcmVKU0Ns
aWVudERhdGEuaCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCmluZGV4IDEy
N2ZhYTk2N2QyYWM1MzZlNDZhYjkzZGJmNTZmZDUyNTRmZTE5MTEuLjU0OWU0OWMzZmM4MGQwOTAw
N2MyYzdhMWUyMGU5MmRjYjUxZTkzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Zy5jcHAKQEAgLTEyOSw4ICsxMjksMTAgQEAgdm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZzo6aW5mbygpLCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlVGFibGVWYWx1ZXMs
ICp0aGlzKTsKKyAgICBib29sIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSBmYWxzZTsK
ICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0dGluZ0VuYWJsZWQoKSkgeworICAgICAgICBo
YXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJlbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIiksIHN0cmxlbigiZW5hYmxlZEJ5
U2V0dGluZ09wZXJhdGlvbiIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3Bl
IHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwog
ICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmds
b2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKQEAgLTEzOCwxMSArMTQwLDE0IEBAIHZvaWQgSlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogI2Vu
ZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50
Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmdFbmFibGVkKCkpIHsKKyAgICAg
ICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJs
ZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgp
LT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCisgICAgaWYgKGhh
c0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYgdGhpcy0+c3RydWN0dXJlKCktPmlzRGljdGlv
bmFyeSgpKQorICAgICAgICB0aGlzLT5mbGF0dGVuRGljdGlvbmFyeU9iamVjdCh2bSk7CiB9CiAK
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpzX2luZm8gPSB7ICJUZXN0
RW5hYmxlZEJ5U2V0dGluZyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEJ5U2V0dGluZykgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCBhYzJiZWJiMmQ5MzI0YTFhMmMyYWRkNmEx
NjBkMzdjNzc1YzIzYjhmLi40MzYwN2Q3OGY5ZDdiZjMzMzQwYjNjMDE0MmQwMzkxN2U1NjA2MGRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCkBAIC0xMDEsMTEg
KzEwMSwxNSBAQCB2b2lkIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAg
cmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjppbmZv
KCksIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMp
OworICAgIGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IGZhbHNlOwogICAgIGlm
ICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVk
UnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImFTZWNyZXRBdHRyaWJ1dGUiKSwgc3RybGVuKCJhU2VjcmV0QXR0cmlidXRlIikpOwogICAgICAg
ICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9w
ZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwog
ICAgIH0KKyAgICBpZiAoaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyAmJiB0aGlzLT5zdHJ1
Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCisgICAgICAgIHRoaXMtPmZsYXR0ZW5EaWN0aW9uYXJ5
T2JqZWN0KHZtKTsKIH0KIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGU6OnNfaW5mbyA9IHsgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IDJiMmRlZDRjMmM2ODhhZjQ0M2Y0YTk3YzBmZDQ5
YjEyNjAwMDY1YWQuLjhiYjhiMjdlZjM5OWJjY2FlYTU3ZDBkNDIwODA0YmRjZWFiODA2OTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5jcHAKQEAgLTE0Nyw0MyArMTQ3LDUzIEBAIHZvaWQgSlNUZXN0Tm9kZVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE5vZGU6OmluZm8oKSwgSlNU
ZXN0Tm9kZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CisgICAgYm9vbCBoYXNEaXNhYmxl
ZFJ1bnRpbWVQcm9wZXJ0aWVzID0gZmFsc2U7CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1
cmVDb250ZXh0KCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRy
dWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0
IiksIHN0cmxlbigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0IikpOwogICAgICAgICBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9y
ZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBp
ZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBoYXNEaXNhYmxl
ZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJnZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigiZ2V0U2VjcmV0Qm9vbGVhbiIpKTsKICAgICAg
ICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsK
ICAgICB9CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIShqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNTZWN1cmVDb250ZXh0KCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1l
UHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigidGVzdEZl
YXR1cmVHZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29s
ZWFuIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2Jq
ZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBw
cm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkgeworICAgICAgICBo
YXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJlbnRyaWVzIiksIHN0cmxlbigiZW50cmllcyIpKTsKICAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhp
cywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAg
ICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJh
dG9yRW5hYmxlZCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0
cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImtleXMiKSwgc3RybGVuKCJrZXlz
IikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9w
ZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRS
dW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
dmFsdWVzIiksIHN0cmxlbigidmFsdWVzIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIVJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkp
IHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZm9yRWFjaCIpLCBzdHJsZW4oImZvckVhY2giKSk7CiAg
ICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFt
ZSk7CiAgICAgfQorICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzICYmIHRoaXMt
PnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKKyAgICAgICAgdGhpcy0+ZmxhdHRlbkRpY3Rp
b25hcnlPYmplY3Qodm0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRl
cmF0b3JTeW1ib2wsIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZW50cmllc1B1YmxpY05hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGUyZjQ4MzY3ZWFl
Yzk1ZGFiYTFlNmUxZGEwYmFkMjA5NTFmNjkwMjkuLjUwYmE2MGJkOTVhY2VkYTI0NTI1ZDUyMTkw
NzE1ZDc4MjU4N2Q1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0yMzI0LDY3ICsyMzI0LDgxIEBAIHZvaWQg
SlNUZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0
T2JqOjppbmZvKCksIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CisgICAg
Ym9vbCBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gZmFsc2U7CiAjaWYgRU5BQkxFKFRF
U1RfRkVBVFVSRSkKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1l
UHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxl
ZEF0UnVudGltZU9wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24i
KSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6
OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3Bl
cnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCEod29ybGRGb3JET01PYmplY3QoKnRo
aXMpLnNvbWVXb3JsZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkudGVzdEZlYXR1cmVFbmFibGVkKCkpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVBy
b3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRJ
blNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIiksIHN0cmxlbigiZW5hYmxl
ZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiKSk7CiAgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAg
fQogICAgIGlmICghd29ybGRGb3JET01PYmplY3QoKnRoaXMpLnNvbWVXb3JsZCgpKSB7CisgICAg
ICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIndvcmxkU3BlY2lmaWNNZXRob2QiKSwgc3RybGVuKCJ3b3JsZFNwZWNp
ZmljTWV0aG9kIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUo
dm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAg
IEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhl
YygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3Vy
ZUNvbnRleHQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1
ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQi
KSwgc3RybGVuKCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQ
cm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3Jl
Q29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlm
ICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVk
UnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJnZXRTZWNyZXRCb29sZWFuIikpOwogICAgICAg
ICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9w
ZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwog
ICAgIH0KICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghKGpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5p
c1NlY3VyZUNvbnRleHQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQ
cm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ0ZXN0RmVh
dHVyZUdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xl
YW4iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06
OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHBy
b3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1
bWVudCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwog
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dGdW5jdGlvbiIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlv
biIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6
RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJv
cGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihn
bG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3JrZXJHbG9iYWxT
Y29wZSgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwog
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3Jr
ZXJGdW5jdGlvbiIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlv
biIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6
RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJv
cGVydHlOYW1lKTsKICAgICB9CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIShS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxl
ZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1
cmUxRW5hYmxlZCgpKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0g
dHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lQXR0
cmlidXRlIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpKTsKICAgICAgICAg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAg
ICB9CiAjZW5kaWYKICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkpIHsKKyAgICAg
ICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSIpLCBz
dHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiKSk7CiAgICAgICAg
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAg
ICAgfQogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzV29ya2VyR2xvYmFsU2NvcGUoKSkgeworICAg
ICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlIiks
IHN0cmxlbigiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSIpKTsKICAgICAg
ICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsK
ICAgICB9CisgICAgaWYgKGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYgdGhpcy0+c3Ry
dWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKQorICAgICAgICB0aGlzLT5mbGF0dGVuRGljdGlvbmFy
eU9iamVjdCh2bSk7CiAgICAgcHV0RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0
YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5wcml2YXRlTWV0aG9kUHJpdmF0ZU5h
bWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QoKSwgMCwgU3RyaW5nKCks
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHJpdmF0ZU1ldGhvZCksIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwog
ICAgIHB1dERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnRE
YXRhKS0+YnVpbHRpbk5hbWVzKCkucHVibGljQW5kUHJpdmF0ZU1ldGhvZFByaXZhdGVOYW1lKCks
IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KCksIDAsIFN0cmluZygpLCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2QpLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBn
bG9iYWxPYmplY3QoKS0+YXJyYXlQcm90b3R5cGUoKS0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS52YWx1ZXNQcml2YXRlTmFtZSgpKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357778</attachid>
            <date>2018-12-19 21:35:49 -0800</date>
            <delta_ts>2018-12-20 09:43:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192901-20181219213541.patch</filename>
            <type>text/plain</type>
            <size>18283</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5MDc2MDViNjZlMWVk
MGNlYTc0ZDk4ODFiZWNiNzc0YjBhNmI0Yi4uZmFiNTVjODBlNTE5ZWU3MDhiY2UxYWFjNWJhNDcw
YTM4YzAzMjMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTEyLTE5ICBKdXN0
aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRpbmcg
cnVudGltZS1lbmFibGVkIGF0dHJpYnV0ZSB0byBFbGVtZW50IHByZXZlbnRzIGlubGluaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI5MDEKKwor
ICAgICAgICBBZGQgYSBjYWxsIHRvIGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0IGFmdGVyIGRpc2Fi
bGluZyBydW50aW1lLWVuYWJsZWQgYXR0cmlidXRlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROb2RlUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKToKKwogMjAxOC0xMi0xOCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5f
bWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIENTUyBQcm9wZXJ0aWVzIGFuZCBW
YWx1ZXMgQVBJIHRvIHVzZSBuZXcgY3ljbGUgZmFsbGJhY2sgYmVoYXZpb3VyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGNl
MjRlZTRkZTM1MzY5NGRlZDFkZTQ1YmUxMTAwYjkyZDExNjdlOTYuLjgzOTg1NDhjMGI0ZDZlNmQ5
ZDA2ZWQ3Nzg4NWYxMGViZGI1ZjM0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MTkxLDEyICs0MTkxLDE4IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgbXkgQHJ1bnRpbWVFbmFibGVkUHJv
cGVydGllcyA9IEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnM7CiAgICAgICAgIHB1c2goQHJ1bnRp
bWVFbmFibGVkUHJvcGVydGllcywgQHJ1bnRpbWVFbmFibGVkQXR0cmlidXRlcyk7CisKKyAgICAg
ICAgaWYgKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IGZhbHNl
O1xuIik7CisgICAgICAgIH0KKwogICAgICAgICBmb3JlYWNoIG15ICRvcGVyYXRpb25PckF0dHJp
YnV0ZSAoQHJ1bnRpbWVFbmFibGVkUHJvcGVydGllcykgewogICAgICAgICAgICAgbXkgJGNvbmRp
dGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JG9wZXJhdGlvbk9yQXR0cmlidXRlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
I2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAg
ICAgICAgICBteSAkcnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVSdW50
aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSwgJG9wZXJhdGlvbk9yQXR0cmli
dXRlKTsKICAgICAgICAgICAgIG15ICRuYW1lID0gJG9wZXJhdGlvbk9yQXR0cmlidXRlLT5uYW1l
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCEke3J1bnRpbWVFbmFi
bGVDb25kaXRpb25hbFN0cmluZ30pIHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlO1xuIik7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRuYW1lXCIpKTtcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29w
ZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTtcbiIpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUp
O1xuIik7CkBAIC00MjA0LDYgKzQyMTAsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9u
YWxTdHJpbmc7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoQHJ1bnRpbWVFbmFibGVkUHJvcGVy
dGllcykgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGhhc0Rpc2Fi
bGVkUnVudGltZVByb3BlcnRpZXMgJiYgc3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKVxuIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgZmxhdHRlbkRpY3Rpb25h
cnlPYmplY3Qodm0pO1xuIik7CisgICAgICAgIH0KKwogICAgICAgICBmb3JlYWNoIG15ICRvcGVy
YXRpb24gKEB7JGludGVyZmFjZS0+b3BlcmF0aW9uc30pIHsKICAgICAgICAgICAgIG5leHQgdW5s
ZXNzICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQcml2YXRlSWRlbnRpZmllcn0p
OwogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIldlYkNvcmVKU0NsaWVudERhdGEuaCIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCmluZGV4IDEyN2ZhYTk2N2QyYWM1
MzZlNDZhYjkzZGJmNTZmZDUyNTRmZTE5MTEuLjY2MGI5Nzc1YmNmZDRhMjE1MTVmODBjMmZiZTU1
NjQ5OGI4ZDZiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKQEAgLTEy
OSw4ICsxMjksMTAgQEAgdm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6aW5mbygp
LCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKKyAg
ICBib29sIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSBmYWxzZTsKICNpZiBFTkFCTEUo
VEVTVF9GRUFUVVJFKQogICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+
c2V0dGluZ3MoKS50ZXN0U2V0dGluZ0VuYWJsZWQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1
bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJl
bmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIiksIHN0cmxlbigiZW5hYmxlZEJ5U2V0dGluZ09wZXJh
dGlvbiIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09i
amVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwg
cHJvcGVydHlOYW1lKTsKQEAgLTEzOCwxMSArMTQwLDE0IEBAIHZvaWQgSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogI2VuZGlmCiAjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pihqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSktPnNldHRpbmdzKCkudGVzdFNldHRpbmdFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJs
ZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJsZWRCeVNldHRpbmdB
dHRyaWJ1dGUiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2
bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVj
KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCisgICAgaWYgKGhhc0Rpc2FibGVkUnVu
dGltZVByb3BlcnRpZXMgJiYgc3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKQorICAgICAgICBm
bGF0dGVuRGljdGlvbmFyeU9iamVjdCh2bSk7CiB9CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nOjpzX2luZm8gPSB7ICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZykgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNw
cAppbmRleCBhYzJiZWJiMmQ5MzI0YTFhMmMyYWRkNmExNjBkMzdjNzc1YzIzYjhmLi5iMGQ5ZDQ5
ZmM5MjY4M2Y1ZTFkNmZiOGZkNjg1ZGY1ZDMzYjI0YmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuY3BwCkBAIC0xMDEsMTEgKzEwMSwxNSBAQCB2b2lkIEpTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZt
LCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjppbmZvKCksIEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOworICAgIGJvb2wgaGFzRGlzYWJsZWRS
dW50aW1lUHJvcGVydGllcyA9IGZhbHNlOwogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJl
Q29udGV4dCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVl
OwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImFTZWNyZXRBdHRyaWJ1dGUiKSwgc3Ry
bGVuKCJhU2VjcmV0QXR0cmlidXRlIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
U2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJs
ZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3Qo
KS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KKyAgICBpZiAoaGFzRGlzYWJs
ZWRSdW50aW1lUHJvcGVydGllcyAmJiBzdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCisgICAg
ICAgIGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0KHZtKTsKIH0KIAogY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OnNfaW5mbyA9IHsgIlRlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IDJiMmRlZDRj
MmM2ODhhZjQ0M2Y0YTk3YzBmZDQ5YjEyNjAwMDY1YWQuLjM1YTJkNjIzZjg5Y2YwNDJlYjAyYjU1
YzU2ZTg5OTU5MzBlZWUyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAgLTE0Nyw0MyArMTQ3LDUzIEBAIHZv
aWQgSlNUZXN0Tm9kZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewogICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpT
VGVzdE5vZGU6OmluZm8oKSwgSlNUZXN0Tm9kZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7
CisgICAgYm9vbCBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gZmFsc2U7CiAgICAgaWYg
KCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRS
dW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
Y2FsY3VsYXRlU2VjcmV0UmVzdWx0IiksIHN0cmxlbigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Iikp
OwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0
eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkg
eworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJnZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigiZ2V0U2Vj
cmV0Qm9vbGVhbiIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAg
ICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4
ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAg
ICBpZiAoIShqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkgJiYgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkpIHsKKyAgICAg
ICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigidGVz
dEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIGlm
ICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVu
YWJsZWQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsK
ICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbnRyaWVzIiksIHN0cmxlbigiZW50cmll
cyIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6
RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJv
cGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVk
UnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImtleXMiKSwgc3RybGVuKCJrZXlzIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
U2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJs
ZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3Qo
KS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIVJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsK
KyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1
dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigidmFsdWVzIiksIHN0cmxlbigidmFsdWVzIikpOwogICAgICAg
ICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9w
ZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwog
ICAgIH0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
ZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVy
dGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZm9yRWFjaCIpLCBz
dHJsZW4oImZvckVhY2giKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBz
Y29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9i
YWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQorICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRp
bWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKKyAgICAgICAgZmxh
dHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGUy
ZjQ4MzY3ZWFlYzk1ZGFiYTFlNmUxZGEwYmFkMjA5NTFmNjkwMjkuLmE2MDJjMTc0ZTU3ZTE4OTY1
ZDEzODVhYjhlN2RjN2U0NjMzODNiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0yMzI0LDY3ICsyMzI0LDgx
IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2
bSwgSlNUZXN0T2JqOjppbmZvKCksIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhp
cyk7CisgICAgYm9vbCBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gZmFsc2U7CiAjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJs
ZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVP
cGVyYXRpb24iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2
bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVj
KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCEod29ybGRGb3JET01P
YmplY3QoKnRoaXMpLnNvbWVXb3JsZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpKSB7CisgICAgICAgIGhhc0Rpc2FibGVk
UnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIiksIHN0cmxl
bigiZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiKSk7CiAg
ICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFt
ZSk7CiAgICAgfQogICAgIGlmICghd29ybGRGb3JET01PYmplY3QoKnRoaXMpLnNvbWVXb3JsZCgp
KSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIndvcmxkU3BlY2lmaWNNZXRob2QiKSwgc3RybGVuKCJ3
b3JsZFNwZWNpZmljTWV0aG9kIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2Nv
cGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7
CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+
Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0
aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjYWxjdWxhdGVTZWNy
ZXRSZXN1bHQiKSwgc3RybGVuKCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSk7CiAgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAg
fQogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIGhh
c0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oImdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJnZXRTZWNyZXRCb29sZWFuIikp
OwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0
eU5hbWUpOwogICAgIH0KICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghKGpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSkgeworICAgICAgICBoYXNEaXNhYmxl
ZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJ0ZXN0RmVhdHVyZUdldFNl
Y3JldEJvb2xlYW4iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29w
ZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAg
ICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxF
eGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCFqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMg
PSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsbHlFeHBv
c2VkVG9XaW5kb3dGdW5jdGlvbiIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dGdW5jdGlvbiIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAg
ICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4
ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3Jr
ZXJHbG9iYWxTY29wZSgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMg
PSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsbHlFeHBv
c2VkVG9Xb3JrZXJGdW5jdGlvbiIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3Jr
ZXJGdW5jdGlvbiIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAg
ICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4
ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAg
ICBpZiAoIShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0
dXJlRW5hYmxlZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
dGVzdEZlYXR1cmUxRW5hYmxlZCgpKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9w
ZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRS
dW50aW1lQXR0cmlidXRlIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpKTsK
ICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlO
YW1lKTsKICAgICB9CiAjZW5kaWYKICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkp
IHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJp
YnV0ZSIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiKSk7
CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5
TmFtZSk7CiAgICAgfQogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzV29ya2VyR2xvYmFsU2NvcGUo
KSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAg
ICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0
cmlidXRlIiksIHN0cmxlbigiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSIp
KTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVs
ZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6
ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVy
dHlOYW1lKTsKICAgICB9CisgICAgaWYgKGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYg
c3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKQorICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9i
amVjdCh2bSk7CiAgICAgcHV0RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+
KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5wcml2YXRlTWV0aG9kUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QoKSwgMCwgU3RyaW5nKCksIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHJpdmF0ZU1ldGhvZCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogICAg
IHB1dERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRh
KS0+YnVpbHRpbk5hbWVzKCkucHVibGljQW5kUHJpdmF0ZU1ldGhvZFByaXZhdGVOYW1lKCksIEpT
RnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KCksIDAsIFN0cmluZygpLCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2QpLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
ICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnbG9i
YWxPYmplY3QoKS0+YXJyYXlQcm90b3R5cGUoKS0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS52YWx1ZXNQcml2YXRlTmFtZSgpKSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357822</attachid>
            <date>2018-12-20 09:43:36 -0800</date>
            <delta_ts>2018-12-20 17:33:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192901-20181220094330.patch</filename>
            <type>text/plain</type>
            <size>18299</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5MDc2MDViNjZlMWVk
MGNlYTc0ZDk4ODFiZWNiNzc0YjBhNmI0Yi4uMGVkMGI5NTQ3YTUwMzQ3MGM0MmE0MjkxYTIwYjVi
NmEzZWFiZjFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTEyLTIwICBKdXN0
aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRpbmcg
cnVudGltZS1lbmFibGVkIGF0dHJpYnV0ZSB0byBFbGVtZW50IHByZXZlbnRzIGlubGluaW5nIHBy
b3BlcnR5IGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkyOTAxCisKKyAgICAgICAgQWRkIGEgY2FsbCB0byBmbGF0dGVuRGljdGlvbmFyeU9i
amVjdCBhZnRlciBkaXNhYmxpbmcgcnVudGltZS1lbmFibGVkIGF0dHJpYnV0ZXMuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24p
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0Tm9kZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisKIDIwMTgtMTItMTggIEp1c3RpbiBN
aWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBDU1Mg
UHJvcGVydGllcyBhbmQgVmFsdWVzIEFQSSB0byB1c2UgbmV3IGN5Y2xlIGZhbGxiYWNrIGJlaGF2
aW91cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCBjZTI0ZWU0ZGUzNTM2OTRkZWQxZGU0NWJlMTEwMGI5MmQxMTY3ZTk2Li44
Mzk4NTQ4YzBiNGQ2ZTZkOWQwNmVkNzc4ODVmMTBlYmRiNWYzNDdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNDE5MSwx
MiArNDE5MSwxOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgIG15IEBy
dW50aW1lRW5hYmxlZFByb3BlcnRpZXMgPSBAcnVudGltZUVuYWJsZWRPcGVyYXRpb25zOwogICAg
ICAgICBwdXNoKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMsIEBydW50aW1lRW5hYmxlZEF0dHJp
YnV0ZXMpOworCisgICAgICAgIGlmIChAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVzKSB7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIGhhc0Rpc2FibGVkUnVudGltZVBy
b3BlcnRpZXMgPSBmYWxzZTtcbiIpOworICAgICAgICB9CisKICAgICAgICAgZm9yZWFjaCBteSAk
b3BlcmF0aW9uT3JBdHRyaWJ1dGUgKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMpIHsKICAgICAg
ICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNv
bmRpdGlvbmFsU3RyaW5nKCRvcGVyYXRpb25PckF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlv
bmFsU3RyaW5nOwogICAgICAgICAgICAgbXkgJHJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmlu
ZyA9IEdlbmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UsICRv
cGVyYXRpb25PckF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBteSAkbmFtZSA9ICRvcGVyYXRpb25P
ckF0dHJpYnV0ZS0+bmFtZTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghJHtydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmd9KSB7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVz
ID0gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGF1
dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPihcIiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFtZVwiKSk7XG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZp
Z3VyYWJsZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBK
U09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMo
KSwgcHJvcGVydHlOYW1lKTtcbiIpOwpAQCAtNDIwNCw2ICs0MjEwLDExIEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxu
IikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKEBydW50
aW1lRW5hYmxlZFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0Rp
Y3Rpb25hcnkoKSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0KHZtKTtcbiIpOworICAgICAgICB9CisKICAgICAgICAg
Zm9yZWFjaCBteSAkb3BlcmF0aW9uIChAeyRpbnRlcmZhY2UtPm9wZXJhdGlvbnN9KSB7CiAgICAg
ICAgICAgICBuZXh0IHVubGVzcyAoJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UHJp
dmF0ZUlkZW50aWZpZXJ9KTsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJXZWJDb3Jl
SlNDbGllbnREYXRhLmgiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAppbmRl
eCAxMjdmYWE5NjdkMmFjNTM2ZTQ2YWI5M2RiZjU2ZmQ1MjU0ZmUxOTExLi42NjBiOTc3NWJjZmQ0
YTIxNTE1ZjgwYzJmYmU1NTY0OThiOGQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNl
dHRpbmcuY3BwCkBAIC0xMjksOCArMTI5LDEwIEBAIHZvaWQgSlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEVuYWJsZWRC
eVNldHRpbmc6OmluZm8oKSwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZVRhYmxlVmFs
dWVzLCAqdGhpcyk7CisgICAgYm9vbCBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gZmFs
c2U7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50
Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmdFbmFibGVkKCkpIHsKKyAgICAg
ICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJs
ZWRCeVNldHRpbmdPcGVyYXRpb24iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgp
LT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CkBAIC0xMzgsMTEgKzE0MCwxNCBAQCB2b2lk
IEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
ICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCFkb3duY2FzdDxEb2N1
bWVudD4oanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpLT5zZXR0aW5ncygpLnRlc3RTZXR0aW5nRW5hYmxlZCgpKSB7Cisg
ICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRv
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSwgc3RybGVuKCJl
bmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgorICAgIGlm
IChoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25h
cnkoKSkKKyAgICAgICAgZmxhdHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pOwogfQogCiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRC
eVNldHRpbmciLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdEVuYWJsZWRCeVNldHRpbmcpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggYWMyYmViYjJkOTMyNGExYTJjMmFkZDZhMTYwZDM3Yzc3
NWMyM2I4Zi4uYjBkOWQ0OWZjOTI2ODNmNWUxZDZmYjhmZDY4NWRmNWQzM2IyNGJlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApAQCAtMTAxLDExICsxMDEsMTUg
QEAgdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3Rh
dGljUHJvcGVydGllcyh2bSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6aW5mbygpLCBKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKKyAgICBi
b29sIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSBmYWxzZTsKICAgICBpZiAoIWpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQ
cm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJhU2VjcmV0
QXR0cmlidXRlIiksIHN0cmxlbigiYVNlY3JldEF0dHJpYnV0ZSIpKTsKICAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhp
cywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9Cisg
ICAgaWYgKGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYgc3RydWN0dXJlKCktPmlzRGlj
dGlvbmFyeSgpKQorICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9iamVjdCh2bSk7CiB9CiAKIGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpzX2luZm8gPSB7ICJUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSkgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNw
cAppbmRleCAyYjJkZWQ0YzJjNjg4YWY0NDNmNGE5N2MwZmQ0OWIxMjYwMDA2NWFkLi4zNWEyZDYy
M2Y4OWNmMDQyZWIwMmI1NWM1NmU4OTk1OTMwZWVlMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCkBAIC0xNDcs
NDMgKzE0Nyw1MyBAQCB2b2lkIEpTVGVzdE5vZGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgcmVpZnlTdGF0aWNQ
cm9wZXJ0aWVzKHZtLCBKU1Rlc3ROb2RlOjppbmZvKCksIEpTVGVzdE5vZGVQcm90b3R5cGVUYWJs
ZVZhbHVlcywgKnRoaXMpOworICAgIGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9
IGZhbHNlOwogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0
KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAg
ICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIpLCBzdHJsZW4oImNhbGN1bGF0
ZVNlY3JldFJlc3VsdCIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNj
b3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAg
ICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2Jh
bEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNT
ZWN1cmVDb250ZXh0KCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9
IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZ2V0U2VjcmV0Qm9vbGVhbiIp
LCBzdHJsZW4oImdldFNlY3JldEJvb2xlYW4iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9i
amVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCiAgICAgaWYgKCEoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpICYm
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFi
bGVkKCkpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwog
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVh
biIpLCBzdHJsZW4oInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpKTsKICAgICAgICAgVk06
OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
OjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9
CiAjZW5kaWYKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJv
cGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW50cmllcyIp
LCBzdHJsZW4oImVudHJpZXMiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29w
ZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsK
ICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5n
bG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkgeworICAg
ICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJrZXlzIiksIHN0cmxlbigia2V5cyIpKTsKICAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhp
cywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAg
ICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJh
dG9yRW5hYmxlZCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0
cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInZhbHVlcyIpLCBzdHJsZW4oInZh
bHVlcyIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09i
amVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwg
cHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7CisgICAgICAgIGhhc0Rpc2Fi
bGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oImZvckVhY2giKSwgc3RybGVuKCJmb3JFYWNoIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJv
cGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNv
bmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9i
YWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KKyAgICBpZiAo
aGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyAmJiBzdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5
KCkpCisgICAgICAgIGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0KHZtKTsKICAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnZXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAppbmRleCBlMmY0ODM2N2VhZWM5NWRhYmExZTZlMWRhMGJhZDIwOTUxZjY5MDI5Li5h
NjAyYzE3NGU1N2UxODk2NWQxMzg1YWI4ZTdkYzdlNDYzMzgzYmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAt
MjMyNCw2NyArMjMyNCw4MSBAQCB2b2lkIEpTVGVzdE9ialByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICByZWlmeVN0
YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE9iajo6aW5mbygpLCBKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZVZhbHVlcywgKnRoaXMpOworICAgIGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGll
cyA9IGZhbHNlOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSB7Cisg
ICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRv
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKSwgc3RybGVuKCJl
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIGlm
ICghKHdvcmxkRm9yRE9NT2JqZWN0KCp0aGlzKS5zb21lV29ybGQoKSAmJiBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSkgeworICAg
ICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJl
RW5hYmxlZCIpLCBzdHJsZW4oImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1
cmVFbmFibGVkIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUo
dm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAg
IEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhl
YygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIXdvcmxkRm9yRE9NT2JqZWN0KCp0
aGlzKS5zb21lV29ybGQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVz
ID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ3b3JsZFNwZWNpZmljTWV0
aG9kIiksIHN0cmxlbigid29ybGRTcGVjaWZpY01ldGhvZCIpKTsKICAgICAgICAgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25v
cmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAg
aWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkpIHsKKyAgICAgICAgaGFzRGlzYWJs
ZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0IiksIHN0cmxlbigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0
IikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9w
ZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQo
KSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAg
ICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJnZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigiZ2V0
U2VjcmV0Qm9vbGVhbiIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNj
b3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAg
ICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2Jh
bEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkK
ICAgICBpZiAoIShqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkgJiYgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkpIHsKKyAg
ICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8g
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigi
dGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZp
Z3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxP
YmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAg
IGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1
bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJj
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24iKSwgc3RybGVuKCJjb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9i
amVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzV29ya2VyR2xvYmFsU2NvcGUoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1
bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJj
b25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24iKSwgc3RybGVuKCJjb25kaXRpb25h
bGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9i
amVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCiAgICAgaWYgKCEoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlMUVuYWJsZWQoKSkpIHsKKyAgICAgICAgaGFzRGlz
YWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1l
ID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRp
bWVBdHRyaWJ1dGUiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29w
ZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAg
ICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxF
eGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCFqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMg
PSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsbHlFeHBv
c2VkVG9XaW5kb3dBdHRyaWJ1dGUiKSwgc3RybGVuKCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QXR0cmlidXRlIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2Nv
cGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAg
ICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFs
RXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dv
cmtlckdsb2JhbFNjb3BlKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGll
cyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxseUV4
cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9X
b3JrZXJBdHRyaWJ1dGUiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBz
Y29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9i
YWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQorICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRp
bWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKKyAgICAgICAgZmxh
dHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pOwogICAgIHB1dERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucHJpdmF0ZU1l
dGhvZFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KCks
IDAsIFN0cmluZygpLCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblByaXZhdGVNZXRob2QpLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRh
Kj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnB1YmxpY0FuZFByaXZhdGVNZXRob2RQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCgpLCAwLCBT
dHJpbmcoKSwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRlTWV0aG9k
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVy
YXRvclN5bWJvbCwgZ2xvYmFsT2JqZWN0KCktPmFycmF5UHJvdG90eXBlKCktPmdldERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudmFsdWVzUHJpdmF0ZU5hbWUoKSks
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>