<?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>219416</bug_id>
          
          <creation_ts>2020-12-01 17:09:09 -0800</creation_ts>
          <short_desc>Simplify some callsites of WheelEventTestMonitor</short_desc>
          <delta_ts>2020-12-01 19:29:20 -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>Scrolling</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1711223</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-01 17:09:09 -0800</bug_when>
    <thetext>Simplify some callsites of WheelEventTestMonitor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711224</commentid>
    <comment_count>1</comment_count>
      <attachid>415179</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-01 17:12:31 -0800</bug_when>
    <thetext>Created attachment 415179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711242</commentid>
    <comment_count>2</comment_count>
      <attachid>415186</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-01 18:46:45 -0800</bug_when>
    <thetext>Created attachment 415186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711245</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-12-01 19:00:04 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=415179&amp;action=review

&gt; Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp:161
&gt; +    auto makeDeferrer = [&amp;]() -&gt; WheelEventTestMonitorCompletionDeferrer {

Consider just using a local and moving it because this function is unconditionally invoked (so not avoiding computing it sometimes) and its body is branchless.  Oh, the repeated reinterpret_casts i now see. Could extract this lambda into a real function that does the cast.

&gt; Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm:101
&gt; +    auto makeDeferrer = [&amp;]() -&gt; WheelEventTestMonitorCompletionDeferrer {

Same as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711247</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-01 19:28:44 -0800</bug_when>
    <thetext>https://trac.webkit.org/r270338</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711248</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-01 19:29:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/71878326&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415179</attachid>
            <date>2020-12-01 17:12:31 -0800</date>
            <delta_ts>2020-12-01 18:46:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219416-20201201171231.patch</filename>
            <type>text/plain</type>
            <size>23039</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgwOGQ3NTJlZTk1MzYw
MTM0Y2Y2YzliMzE1N2JlMmI5ZWVhNzIwOS4uYTFjNDg4ZGEzNjNmOTRiOWFhMmQzNThmYTY3MzJm
YzBkYzdiZWM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTEyLTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHNv
bWUgY2FsbHNpdGVzIG9mIFdoZWVsRXZlbnRUZXN0TW9uaXRvcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlncmF0ZSB0b3dhcmRzIG1vcmUgdXNhZ2Ug
b2YgV2hlZWxFdmVudFRlc3RNb25pdG9yQ29tcGxldGlvbkRlZmVycmVyLCB1c2luZyBhIHBhdHRl
cm4KKyAgICAgICAgd2hlcmUgd2UgV1RGTW92ZSgpIG9uZSBpbnRvIGEgY29tcGxldGlvbiBoYW5k
bGVyIHRvIHBhaXIgdGhlIGRlZmVyL3VuZGVmZXIgcGFpcnMsCisgICAgICAgIHJhdGhlciB0aGFu
IGhhdmluZyBtYW51YWwgZGVmZXJyYWwvdW5kZWZlcnJhbC4KKworICAgICAgICBUbyBtYWtlIHRo
aXMgd29yaywgV2hlZWxFdmVudFRlc3RNb25pdG9yQ29tcGxldGlvbkRlZmVycmVyIGdhaW5zIGEg
bW92ZSBjb25zdHJ1Y3RvciwKKyAgICAgICAgdGhhdCBudWxsaWZpZXMgdGhlIG1fbW9uaXRvciBp
biB0aGUgc291cmNlIHRvIHByZXZlbnQgZG91YmxlIGZpcmluZy4KKyAgICAgICAgCisgICAgICAg
IFJlbW92ZSB0aGUgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
biBkZWZlcnJhbCwgc2luY2UgdGhhdCBjb2RlIHBhdGgKKyAgICAgICAgaXMgbm93IHN5bmNocm9u
b3VzLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwpOgorICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsT2Zm
c2V0Q2hhbmdlZFZpYVBsYXRmb3JtV2lkZ2V0SW1wbCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2
ZW50VGVzdE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudFRlc3RNb25p
dG9yOjpyZW1vdmVEZWZlcnJhbEZvclJlYXNvbik6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50
VGVzdE1vbml0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnRUZXN0TW9uaXRvckNv
bXBsZXRpb25EZWZlcnJlcjo6V2hlZWxFdmVudFRlc3RNb25pdG9yQ29tcGxldGlvbkRlZmVycmVy
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzeW5jaHJvbml6ZVN0YXRlRnJvbVNjcm9sbGluZ1RyZWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6YXBwbHlQZW5kaW5nU2Nyb2xsVXBk
YXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjphcHBs
eVNjcm9sbFVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6bm90ZVNjcm9sbGluZ1RocmVhZFN5bmND
b21wbGV0ZUZvck5vZGUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjp3aGVlbEV2ZW50VGVz
dE1vbml0b3IpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6c2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorCiAy
MDIwLTExLTMwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXSzFdIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQg
YmUgY2FuY2VsYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDUxYWRi
MDBiZmFjNWEwZGVlNDlkNmQzMjVmMzhmOWQzMzBjNjM1NzMuLmI4NTRiY2Q2NzA2NzVmMzI5MDI2
NjEyNGMzOTdhOGNmNzI3YmM2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
QEAgLTI4OTksMTAgKzI4OTksMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZl
bnRJbnRlcm5hbChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBPcHQKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAi
RXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50ICIgPDwgZXZlbnQgPDwgIiBwcm9jZXNzaW5n
IHN0ZXBzICIgPDwgcHJvY2Vzc2luZ1N0ZXBzKTsKLSAgICBpZiAoYXV0byBtb25pdG9yID0gbV9m
cmFtZS5wYWdlKCktPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKQorICAgIGF1dG8gbW9uaXRvciA9
IG1fZnJhbWUucGFnZSgpLT53aGVlbEV2ZW50VGVzdE1vbml0b3IoKTsKKyAgICBpZiAobW9uaXRv
cikKICAgICAgICAgbW9uaXRvci0+cmVjZWl2ZWRXaGVlbEV2ZW50KGV2ZW50KTsKIAotICAgIFdo
ZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJlciBkZWZlcnJlcihtX2ZyYW1lLnBh
Z2UoKS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkuZ2V0KCksIHRoaXMsIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6RGVmZXJSZWFzb246OkhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZCk7Cisg
ICAgYXV0byBkZWZlcnJlciA9IFdoZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJl
ciB7IG1vbml0b3IuZ2V0KCksIHRoaXMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFz
b246OkhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZCB9OwogI2VuZGlmCiAKICAgICBtX2lz
SGFuZGxpbmdXaGVlbEV2ZW50ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCA3NGYzMGVhYjcwYzE0YzM1NTUyOWE3N2MxZmNkYzE4MzBhMTNjNmE1Li4zOTU5OWM5ZWVjMWJi
NWIwMjk3NGNjMjQyMGUxNmMyOWQwM2MyZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CkBAIC0yNDg0LDcgKzI0ODQsNyBAQCB2b2lkIEZyYW1lVmlldzo6ZGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0KCkKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRDaGFuZ2VkVmlhUGxhdGZvcm1XaWRn
ZXRJbXBsKGNvbnN0IFNjcm9sbE9mZnNldCYgb2xkT2Zmc2V0LCBjb25zdCBTY3JvbGxPZmZzZXQm
IG5ld09mZnNldCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXaGVlbEV2ZW50VGVzdE1v
bml0b3JDb21wbGV0aW9uRGVmZXJyZXIgZGVmZXJyZXIoZnJhbWUoKS5wYWdlKCktPndoZWVsRXZl
bnRUZXN0TW9uaXRvcigpLmdldCgpLCB0aGlzLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVy
UmVhc29uOjpDb250ZW50U2Nyb2xsSW5Qcm9ncmVzcyk7CisgICAgYXV0byBkZWZlcnJlciA9IFdo
ZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJlciB7IGZyYW1lKCkucGFnZSgpLT53
aGVlbEV2ZW50VGVzdE1vbml0b3IoKS5nZXQoKSwgdGhpcywgV2hlZWxFdmVudFRlc3RNb25pdG9y
OjpEZWZlclJlYXNvbjo6Q29udGVudFNjcm9sbEluUHJvZ3Jlc3MgfTsKICNlbmRpZgogCiAgICAg
dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCmluZGV4IDYzNzcyMDI4NjYxODFmMGM2ZGRi
ZGUyYTczZWM3ODNmODQ4N2M3MGIuLmY2NTI1MGU5ZjZjYjE1YWMyODEwY2RkN2ZmMWFjNDRiNGVi
Njg5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25p
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5j
cHAKQEAgLTk1LDggKzk1LDEwIEBAIHZvaWQgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpyZW1vdmVE
ZWZlcnJhbEZvclJlYXNvbihTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIgaWRlCiAgICAgTG9ja0hv
bGRlciBsb2NrKG1fbXV0ZXgpOwogCiAgICAgYXV0byBpdCA9IG1fZGVmZXJDb21wbGV0aW9uUmVh
c29ucy5maW5kKGlkZW50aWZpZXIpOwotICAgIGlmIChpdCA9PSBtX2RlZmVyQ29tcGxldGlvblJl
YXNvbnMuZW5kKCkpCisgICAgaWYgKGl0ID09IG1fZGVmZXJDb21wbGV0aW9uUmVhc29ucy5lbmQo
KSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJl
YW0gPDwgIiAgICAgICg9KSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OnJlbW92ZURlZmVycmFsRm9y
UmVhc29uOiBmYWlsZWQgdG8gZmluZCBkZWZlciBmb3IgaWQ9IiA8PCBpZGVudGlmaWVyIDw8ICIs
IHJlYXNvbj0iIDw8IHJlYXNvbik7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBMT0df
V0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0gPDwgIiAgICAgICg9KSBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OnJlbW92ZURlZmVycmFsRm9yUmVhc29uOiBpZD0iIDw8IGlk
ZW50aWZpZXIgPDwgIiwgcmVhc29uPSIgPDwgcmVhc29uKTsKICAgICBpdC0+dmFsdWUucmVtb3Zl
KHJlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0
TW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaApp
bmRleCA5MjA3N2U5ZDVmYWIwZWY5ZmUyNmYwNTUyNTczNzI4YzFjNzY3NWNkLi5mZjhkNzdjNDQ0
MWM0ZjAyNzM4YTIzNWMxMmFjYTMxYzg5YTQ1YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2hlZWxFdmVudFRlc3RNb25pdG9yLmgKQEAgLTkzLDYgKzkzLDEzIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIG1fbW9uaXRvci0+ZGVmZXJGb3JSZWFzb24obV9pZGVudGlmaWVyLCBtX3JlYXNvbik7
CiAgICAgfQogICAgIAorICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJl
cihXaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0aW9uRGVmZXJyZXImJiBvdGhlcikKKyAgICAg
ICAgOiBtX21vbml0b3IoV1RGTW92ZShvdGhlci5tX21vbml0b3IpKQorICAgICAgICAsIG1faWRl
bnRpZmllcihvdGhlci5tX2lkZW50aWZpZXIpCisgICAgICAgICwgbV9yZWFzb24ob3RoZXIubV9y
ZWFzb24pCisgICAgeworICAgIH0KKwogICAgIH5XaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0
aW9uRGVmZXJyZXIoKQogICAgIHsKICAgICAgICAgaWYgKG1fbW9uaXRvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggYTk2MDI5NjJkMjhhNTNmNjhlNjhmOWJiZTE3ZTM3NDg2YTgwNjljYi4u
ZGU1NDA1ZTI2NGNhY2FlYzBiMzVhNTI0ODc0NzAwZjQ3NDFmN2I0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKQEAgLTI3MCw3ICsyNzAsNyBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogICAg
IGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCkt
PmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2Fj
aGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFibGVBcmVhLmN1cnJl
bnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwogICAgIGlmIChpblBy
b2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGUpCi0gICAgICAgIGFwcGx5U2Ny
b2xsVXBkYXRlKHNjcm9sbGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xsVHlw
ZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQsIEluZm9y
bVdoZWVsRXZlbnRNb25pdG9yOjpObyk7CisgICAgICAgIGFwcGx5U2Nyb2xsVXBkYXRlKHNjcm9s
bGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogCiAgICAgQVNTRVJUKGluUHJv
Z3JhbW1hdGljU2Nyb2xsID09IChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRp
YykpOwogCkBAIC0yODMsMTMgKzI4Myw2IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAg
aWYgKCFzdGF0ZU5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkg
ewotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0g
PDwgIiAgICAoISkgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlOiBBZGRpbmcgZGVmZXJyYWwgb24gIiA8PCBzY3JvbGxpbmdOb2RlSUQgPDwgIiBm
b3IgcmVhc29uICIgPDwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbik7Ci0gICAgICAgIG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCktPmRlZmVyRm9y
UmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwotICAgIH0KLSNlbmRpZgotCiAgICAgc3RhdGVOb2Rl
LT5zZXRSZXF1ZXN0ZWRTY3JvbGxEYXRhKHsgc2Nyb2xsUG9zaXRpb24sIHNjcm9sbFR5cGUsIGNs
YW1waW5nIH0pOwogICAgIGNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHRy
dWU7CkBAIC0zMDgsMjMgKzMwMSwxMSBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSgpCiAgICAgbV9zY3JvbGxpbmdUcmVl
LT50cmF2ZXJzZVNjcm9sbGluZ1RyZWUoWyZdKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIFNjcm9s
bGluZ05vZGVUeXBlLCBPcHRpb25hbDxGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgT3B0aW9u
YWw8RmxvYXRQb2ludD4gbGF5b3V0Vmlld3BvcnRPcmlnaW4sIGJvb2wgc2Nyb2xsZWRTaW5jZUxh
c3RDb21taXQpIHsKICAgICAgICAgaWYgKHNjcm9sbFBvc2l0aW9uICYmIHNjcm9sbGVkU2luY2VM
YXN0Q29tbWl0KSB7CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJl
YW0gPDwgIkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9uaXplU3RhdGVGcm9tU2Ny
b2xsaW5nVHJlZSAtIG5vZGUgIiA8PCBub2RlSUQgPDwgIiBzY3JvbGwgcG9zaXRpb24gIiA8PCBz
Y3JvbGxQb3NpdGlvbik7Ci0gICAgICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5
bmNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbi52YWx1ZSgpLCBsYXlvdXRWaWV3cG9ydE9y
aWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0
LCBJbmZvcm1XaGVlbEV2ZW50TW9uaXRvcjo6Tm8pOworICAgICAgICAgICAgdXBkYXRlU2Nyb2xs
UG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24udmFsdWUoKSwg
bGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb246OlNldCk7CiAgICAgICAgIH0KICAgICB9KTsKIH0KIAotdm9pZCBBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RlU2Nyb2xsaW5nVGhyZWFkU3luY0NvbXBsZXRlRm9yTm9k
ZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQotewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAo
bV9wYWdlICYmIG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewotICAgICAgICBM
T0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0gPDwgIiAgICAoISkg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6bm90ZVNjcm9sbGluZ1RocmVhZFN5bmNDb21wbGV0
ZUZvck5vZGU6IFJlbW92aW5nIGRlZmVycmFsIG9uICIgPDwgbm9kZUlEIDw8ICIgZm9yIHJlYXNv
biAiIDw8IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7
Ci0gICAgICAgIG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCktPnJlbW92ZURlZmVycmFs
Rm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxh
YmxlQXJlYUlkZW50aWZpZXI+KG5vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
aW5nVGhyZWFkU3luY05lZWRlZCk7Ci0gICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obm9k
ZUlEKTsKLSNlbmRpZgotfQotCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFwcGx5
UGVuZGluZ1Njcm9sbFVwZGF0ZXMoKQogewogICAgIGlmICghbV9zY3JvbGxpbmdUcmVlKQpAQCAt
MzMzLDcgKzMxNCw3IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6YXBwbHlQZW5k
aW5nU2Nyb2xsVXBkYXRlcygpCiAgICAgYXV0byBzY3JvbGxVcGRhdGVzID0gbV9zY3JvbGxpbmdU
cmVlLT50YWtlUGVuZGluZ1Njcm9sbFVwZGF0ZXMoKTsKICAgICBmb3IgKGF1dG8mIHVwZGF0ZSA6
IHNjcm9sbFVwZGF0ZXMpIHsKICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjphcHBseVBlbmRpbmdTY3JvbGxVcGRh
dGVzIC0gbm9kZSAiIDw8IHVwZGF0ZS5ub2RlSUQgPDwgIiBzY3JvbGwgcG9zaXRpb24gIiA8PCB1
cGRhdGUuc2Nyb2xsUG9zaXRpb24pOwotICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVy
QXN5bmNTY3JvbGwodXBkYXRlLm5vZGVJRCwgdXBkYXRlLnNjcm9sbFBvc2l0aW9uLCB1cGRhdGUu
bGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVzZXIsIHVwZGF0ZS51cGRhdGVMYXll
clBvc2l0aW9uQWN0aW9uLCBJbmZvcm1XaGVlbEV2ZW50TW9uaXRvcjo6WWVzKTsKKyAgICAgICAg
dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKHVwZGF0ZS5ub2RlSUQsIHVwZGF0
ZS5zY3JvbGxQb3NpdGlvbiwgdXBkYXRlLmxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxUeXBl
OjpVc2VyLCB1cGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiAgICAgfQogfQogCkBA
IC0zNjksMTkgKzM1MCwxNiBAQCBGcmFtZVZpZXcqIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nTm9kZUlECiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLXZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6YXBwbHlTY3JvbGxV
cGRhdGUoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgSW5mb3JtV2hlZWxFdmVudE1vbml0b3IgaW5mb3Jt
V2hlZWxFdmVudE1vbml0b3IpCit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFwcGx5
U2Nyb2xsVXBkYXRlKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCiB7CiAgICAgYXBwbHlQZW5kaW5nU2Ny
b2xsVXBkYXRlcygpOwotICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChz
Y3JvbGxpbmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Ny
b2xsVHlwZSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgaW5mb3JtV2hlZWxFdmVudE1v
bml0b3IpOworICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxp
bmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsVHlw
ZSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiB9CiAKLXZvaWQgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlw
ZSBzY3JvbGxUeXBlLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24sIEluZm9ybVdoZWVsRXZlbnRNb25pdG9yIGluZm9ybVdoZWVsRXZlbnRN
b25pdG9yKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3Np
dGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgY29u
c3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91
dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKGluZm9ybVdoZWVsRXZlbnRNb25pdG9yID09IElu
Zm9ybVdoZWVsRXZlbnRNb25pdG9yOjpZZXMpCi0gICAgICAgIG5vdGVTY3JvbGxpbmdUaHJlYWRT
eW5jQ29tcGxldGVGb3JOb2RlKHNjcm9sbGluZ05vZGVJRCk7Ci0KICAgICBpZiAoIW1fcGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMDAyN2RmODM3NTJmNTdm
ZWRhYzBjNDY2YjUxNDNjNWI4ODZlNDBjZi4uOWUxMjEwYmU4ZGFjNDE2ZmM3NGVhNmY3N2IzYWJj
YzU3YmY5MjE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTMsOCArNTMsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGFwcGx5UGVuZGluZ1Njcm9sbFVwZGF0ZXMoKTsKIAotICAgIGVudW0gY2xh
c3MgSW5mb3JtV2hlZWxFdmVudE1vbml0b3IgeyBZZXMsIE5vIH07Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBhcHBseVNjcm9sbFVwZGF0ZShTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9p
bnQmLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgSW5mb3JtV2hlZWxFdmVudE1vbml0b3Ig
PSBJbmZvcm1XaGVlbEV2ZW50TW9uaXRvcjo6WWVzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGFwcGx5U2Nyb2xsVXBkYXRlKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIE9w
dGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxUeXBlLCBTY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFNjcm9sbGluZ05vZGVJRCwg
UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIGZpbmFsOwpAQCAtMTU5LDkgKzE1OCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRFdmVudFRyYWNraW5nUmVnaW9uc0RpcnR5KCk7CiAgICAgdm9pZCB1
cGRhdGVFdmVudFRyYWNraW5nUmVnaW9ucygpOwogICAgIAotICAgIHZvaWQgbm90ZVNjcm9sbGlu
Z1RocmVhZFN5bmNDb21wbGV0ZUZvck5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKLQotICAgIHZvaWQg
dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29u
c3QgRmxvYXRQb2ludCYsIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBTY3JvbGxUeXBlLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBJbmZvcm1XaGVlbEV2
ZW50TW9uaXRvcik7CisgICAgdm9pZCB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3Jv
bGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiwgT3B0aW9uYWw8RmxvYXRQb2lu
dD4gbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGUsIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pOwogICAgIAogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9k
ZShTY3JvbGxpbmdOb2RlSUQpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggODVmZjQ0NjhjZGZmODcyM2UyMTgxNTFmMzYxOTg5
ZmFmNzYwZmQ2ZC4uOTU5NjFkOTg4YThkNzFjZDhjNjE3ODdlZDA1MTdjZGZiNjFjZWJmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTUw
LDYgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25h
cEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250YWxJbmRleCovLCB1
bnNpZ25lZCAvKnZlcnRpY2FsSW5kZXgqLykgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0V2hl
ZWxFdmVudFRlc3RNb25pdG9yKFJlZlB0cjxXaGVlbEV2ZW50VGVzdE1vbml0b3I+JiYpIHsgfQor
ICAgIHZpcnR1YWwgV2hlZWxFdmVudFRlc3RNb25pdG9yKiB3aGVlbEV2ZW50VGVzdE1vbml0b3Io
KSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmZXJXaGVlbEV2ZW50
VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZv
clJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwg
V2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRl
eCBkODU0MDFjNTZlOWI3MDYxNzNlN2Q3YjgzNDY0ODliMzJmMzI1MmVhLi43MDhjMGEwMzU4ODU5
NTc2NjdjMTNkODgxZGFmYTNhOGNhYzQwNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTE0OCwxMSAr
MTQ4LDYgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2QKICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2lu
ID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkubGF5b3V0
Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChpc01v
bml0b3JpbmdXaGVlbEV2ZW50cygpKQotICAgICAgICBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxl
dGlvbkZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Ny
b2xsYWJsZUFyZWFJZGVudGlmaWVyPihub2RlLnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkKTsKLSNlbmRpZgotCiAgICAg
aWYgKFJ1bkxvb3A6OmlzTWFpbigpKSB7CiAgICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PmFwcGx5U2Nyb2xsVXBkYXRlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9u
LCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbik7CiAgICAgICAgIHJldHVybjsKQEAgLTE2Myw3ICsxNTgsMTEgQEAgdm9p
ZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2QKICAgICBhdXRvIHNjcm9sbFVwZGF0ZSA9IFNjcm9sbFVwZGF0
ZSB7IG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiB9OwogICAgIGFkZFBlbmRpbmdT
Y3JvbGxVcGRhdGUoV1RGTW92ZShzY3JvbGxVcGRhdGUpKTsKIAotICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbc3Ryb25nVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgYXV0byBtYWtl
RGVmZXJyZXIgPSBbJl0oKSAtPiBXaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0aW9uRGVmZXJy
ZXIgeworICAgICAgICByZXR1cm4geyB3aGVlbEV2ZW50VGVzdE1vbml0b3IoKSwgcmVpbnRlcnBy
ZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4o
bm9kZS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5n
VGhyZWFkU3luY05lZWRlZCB9OworICAgIH07CisKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW3N0cm9uZ1RoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZGVmZXJyZXIgPSBtYWtlRGVmZXJyZXIo
KV0gewogICAgICAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBzdHJvbmdUaGlz
LT5tX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLmdldCgpKQogICAgICAgICAgICAgc2Nyb2xsaW5nQ29v
cmRpbmF0b3ItPmFwcGx5UGVuZGluZ1Njcm9sbFVwZGF0ZXMoKTsKICAgICB9KTsKQEAgLTIxNSwx
MSArMjE0LDYgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNldEFjdGl2ZVNjcm9sbFNu
YXBJbmRpY2VzKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIHUKICAgICAgICAgc2Nyb2xsaW5nQ29v
cmRpbmF0b3ItPnNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKG5vZGVJRCwgaG9yaXpvbnRhbElu
ZGV4LCB2ZXJ0aWNhbEluZGV4KTsKICAgICB9KTsKIH0KLQotdm9pZCBUaHJlYWRlZFNjcm9sbGlu
Z1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQb3NpdGlvbiovLCBTY3JvbGxUeXBlLCBT
Y3JvbGxDbGFtcGluZykKLXsKLSAgICByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZl
cnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Ny
b2xsYWJsZUFyZWFJZGVudGlmaWVyPihub2RlSUQpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKTsKLX0KICNlbmRpZgogCiB2b2lkIFRocmVhZGVkU2Nyb2xs
aW5nVHJlZTo6d2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggNWE3MGNh
NWViNmQyNmRmMmM1MTk4MmQ5N2U2MjQzMzU0MDViZDlhOC4uZWYxMTM5OWRmNjI0MDgwYzg5Y2Rh
NmU0YjkyNDRiNTFkODBhYTY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTY4LDcgKzY4LDYgQEAgcHJvdGVj
dGVkOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShT
Y3JvbGxpbmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSBvdmVycmlkZTsKICAgICB2
b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQg
aG9yaXpvbnRhbEluZGV4LCB1bnNpZ25lZCB2ZXJ0aWNhbEluZGV4KSBvdmVycmlkZTsKLSAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nKSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWMubW0KaW5kZXggMjIwMDFlZDQ3NjNkZmMwNTkxODUwNjE4MjQxNTQzNmZiNGNiYzkx
Yy4uYzRkZGIzZGQ1OGE3OThjN2JjYzRmMjdiZjlmNGFiMzc4MThmM2Q1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5tbQpAQCAtOTgsMTggKzk4LDEyIEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0RGVm
ZXJJZGVudGlmaWVyKCkKIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVu
dFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmcpCiB7Ci0gICAg
dWludDY0X3QgZGVmZXJJZGVudGlmaWVyID0gMDsKLSAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+
aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewotICAgICAgICBkZWZlcklkZW50aWZpZXIgPSBu
ZXh0RGVmZXJJZGVudGlmaWVyKCk7Ci0gICAgICAgIG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25p
dG9yKCktPmRlZmVyRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25p
dG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciksIFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7Ci0gICAgfQotCisgICAgYXV0
byBtYWtlRGVmZXJyZXIgPSBbJl0oKSAtPiBXaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0aW9u
RGVmZXJyZXIgeworICAgICAgICByZXR1cm4geyBtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRv
cigpLmdldCgpLCByZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyPihuZXh0RGVmZXJJZGVudGlmaWVyKCkpLCBXaGVlbEV2ZW50VGVz
dE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcgfTsKKyAgICB9OwogICAgIFJlZlB0cjxU
aHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0PFRo
cmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKLSAgICBTY3JvbGxpbmdUaHJl
YWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIGRlZmF1bHRI
YW5kbGluZywgZGVmZXJJZGVudGlmaWVyXSB7CisgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRj
aChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcsIGRl
ZmVycmVyID0gbWFrZURlZmVycmVyKCldIHsKICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVl
LT53aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZlbnQsIGRlZmF1bHRI
YW5kbGluZyk7Ci0KLSAgICAgICAgaWYgKHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+aXNNb25pdG9y
aW5nV2hlZWxFdmVudHMoKSkKLSAgICAgICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+cmVt
b3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24ocmVpbnRlcnByZXRf
Y2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oZGVm
ZXJJZGVudGlmaWVyKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSZXBvcnRET01FdmVudEhhbmRs
aW5nKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKaW5kZXggNGM0ZjE3Yzc5NTIxMWIxZWY2ZjM5MjZm
MTE4NmE4YzdkMjIzZjhkOS4uYjQyYmY0MTE0NTRmYTAzNGE3ZGFhODZjMzE1M2FhMWQ2NmE5ODNj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU1hYy5oCkBAIC00OCw2ICs0OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZv
aWQgc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKFJlZlB0cjxXaGVlbEV2ZW50VGVzdE1vbml0b3I+
JiYpIGZpbmFsOworICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvciogd2hlZWxFdmVudFRlc3RNb25p
dG9yKCkgZmluYWwgeyByZXR1cm4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3IuZ2V0KCk7IH0KIAog
ICAgIHZvaWQgcmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZp
bmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
CmluZGV4IDU2ZmU5YzMyNGFjZTIzMDYxNWVjYWE4ZDk5OWUzZjJiMjM4YjhkMWYuLjhmZGMzZTVl
OTNjMDUwNDdkMGEyNTZkNjFmZjIwMzI4OGI2MWUwODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCkBAIC0xMzUsOCArMTM1LDcgQEAgYm9vbCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWwKICAgICB9CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8
fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgaWYgKHNjcm9sbGluZ1RyZWUoKS5pc01vbml0
b3JpbmdXaGVlbEV2ZW50cygpKQotICAgICAgICBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlv
bkZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsaW5nTm9kZUlEKCkpLCBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudCk7CisgICAgYXV0byBkZWZl
cnJlciA9IFdoZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJlciB7IHNjcm9sbGlu
Z1RyZWUoKS53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSwgcmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2
ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZSgp
LnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpIYW5kbGluZ1doZWVs
RXZlbnQgfTsKICNlbmRpZgogCiAgICAgYm9vbCB3YXNJblVzZXJTY3JvbGwgPSBtX3Njcm9sbENv
bnRyb2xsZXIuaXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcygpOwpAQCAtMTUwLDE0ICsxNDksNyBAQCBi
b29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbAogICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2U6Ok1heUJlZ2luKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIGF1dG8gaGFuZGxlZCA9IG1fc2Nyb2xsQ29udHJvbGxlci5oYW5kbGVXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQpOwotCi0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKQotICAgIGlmIChzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5nV2hlZWxFdmVu
dHMoKSkKLSAgICAgICAgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JS
ZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVB
cmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxF
dmVudFRlc3RNb25pdG9yOjpIYW5kbGluZ1doZWVsRXZlbnQpOwotI2VuZGlmCi0KLSAgICByZXR1
cm4gaGFuZGxlZDsKKyAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLmhhbmRsZVdoZWVsRXZl
bnQod2hlZWxFdmVudCk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdl
dFBvc2l0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415186</attachid>
            <date>2020-12-01 18:46:45 -0800</date>
            <delta_ts>2020-12-01 19:00:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219416-20201201184644.patch</filename>
            <type>text/plain</type>
            <size>22865</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgwOGQ3NTJlZTk1MzYw
MTM0Y2Y2YzliMzE1N2JlMmI5ZWVhNzIwOS4uYTFjNDg4ZGEzNjNmOTRiOWFhMmQzNThmYTY3MzJm
YzBkYzdiZWM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTEyLTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHNv
bWUgY2FsbHNpdGVzIG9mIFdoZWVsRXZlbnRUZXN0TW9uaXRvcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlncmF0ZSB0b3dhcmRzIG1vcmUgdXNhZ2Ug
b2YgV2hlZWxFdmVudFRlc3RNb25pdG9yQ29tcGxldGlvbkRlZmVycmVyLCB1c2luZyBhIHBhdHRl
cm4KKyAgICAgICAgd2hlcmUgd2UgV1RGTW92ZSgpIG9uZSBpbnRvIGEgY29tcGxldGlvbiBoYW5k
bGVyIHRvIHBhaXIgdGhlIGRlZmVyL3VuZGVmZXIgcGFpcnMsCisgICAgICAgIHJhdGhlciB0aGFu
IGhhdmluZyBtYW51YWwgZGVmZXJyYWwvdW5kZWZlcnJhbC4KKworICAgICAgICBUbyBtYWtlIHRo
aXMgd29yaywgV2hlZWxFdmVudFRlc3RNb25pdG9yQ29tcGxldGlvbkRlZmVycmVyIGdhaW5zIGEg
bW92ZSBjb25zdHJ1Y3RvciwKKyAgICAgICAgdGhhdCBudWxsaWZpZXMgdGhlIG1fbW9uaXRvciBp
biB0aGUgc291cmNlIHRvIHByZXZlbnQgZG91YmxlIGZpcmluZy4KKyAgICAgICAgCisgICAgICAg
IFJlbW92ZSB0aGUgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
biBkZWZlcnJhbCwgc2luY2UgdGhhdCBjb2RlIHBhdGgKKyAgICAgICAgaXMgbm93IHN5bmNocm9u
b3VzLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwpOgorICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsT2Zm
c2V0Q2hhbmdlZFZpYVBsYXRmb3JtV2lkZ2V0SW1wbCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2
ZW50VGVzdE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudFRlc3RNb25p
dG9yOjpyZW1vdmVEZWZlcnJhbEZvclJlYXNvbik6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50
VGVzdE1vbml0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnRUZXN0TW9uaXRvckNv
bXBsZXRpb25EZWZlcnJlcjo6V2hlZWxFdmVudFRlc3RNb25pdG9yQ29tcGxldGlvbkRlZmVycmVy
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzeW5jaHJvbml6ZVN0YXRlRnJvbVNjcm9sbGluZ1RyZWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6YXBwbHlQZW5kaW5nU2Nyb2xsVXBk
YXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjphcHBs
eVNjcm9sbFVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6bm90ZVNjcm9sbGluZ1RocmVhZFN5bmND
b21wbGV0ZUZvck5vZGUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjp3aGVlbEV2ZW50VGVz
dE1vbml0b3IpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6c2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorCiAy
MDIwLTExLTMwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXSzFdIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQg
YmUgY2FuY2VsYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDUxYWRi
MDBiZmFjNWEwZGVlNDlkNmQzMjVmMzhmOWQzMzBjNjM1NzMuLmI4NTRiY2Q2NzA2NzVmMzI5MDI2
NjEyNGMzOTdhOGNmNzI3YmM2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
QEAgLTI4OTksMTAgKzI4OTksMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZl
bnRJbnRlcm5hbChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBPcHQKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAi
RXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50ICIgPDwgZXZlbnQgPDwgIiBwcm9jZXNzaW5n
IHN0ZXBzICIgPDwgcHJvY2Vzc2luZ1N0ZXBzKTsKLSAgICBpZiAoYXV0byBtb25pdG9yID0gbV9m
cmFtZS5wYWdlKCktPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKQorICAgIGF1dG8gbW9uaXRvciA9
IG1fZnJhbWUucGFnZSgpLT53aGVlbEV2ZW50VGVzdE1vbml0b3IoKTsKKyAgICBpZiAobW9uaXRv
cikKICAgICAgICAgbW9uaXRvci0+cmVjZWl2ZWRXaGVlbEV2ZW50KGV2ZW50KTsKIAotICAgIFdo
ZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJlciBkZWZlcnJlcihtX2ZyYW1lLnBh
Z2UoKS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkuZ2V0KCksIHRoaXMsIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6RGVmZXJSZWFzb246OkhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZCk7Cisg
ICAgYXV0byBkZWZlcnJlciA9IFdoZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJl
ciB7IG1vbml0b3IuZ2V0KCksIHRoaXMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFz
b246OkhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZCB9OwogI2VuZGlmCiAKICAgICBtX2lz
SGFuZGxpbmdXaGVlbEV2ZW50ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCA3NGYzMGVhYjcwYzE0YzM1NTUyOWE3N2MxZmNkYzE4MzBhMTNjNmE1Li4zOTU5OWM5ZWVjMWJi
NWIwMjk3NGNjMjQyMGUxNmMyOWQwM2MyZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CkBAIC0yNDg0LDcgKzI0ODQsNyBAQCB2b2lkIEZyYW1lVmlldzo6ZGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0KCkKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRDaGFuZ2VkVmlhUGxhdGZvcm1XaWRn
ZXRJbXBsKGNvbnN0IFNjcm9sbE9mZnNldCYgb2xkT2Zmc2V0LCBjb25zdCBTY3JvbGxPZmZzZXQm
IG5ld09mZnNldCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXaGVlbEV2ZW50VGVzdE1v
bml0b3JDb21wbGV0aW9uRGVmZXJyZXIgZGVmZXJyZXIoZnJhbWUoKS5wYWdlKCktPndoZWVsRXZl
bnRUZXN0TW9uaXRvcigpLmdldCgpLCB0aGlzLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVy
UmVhc29uOjpDb250ZW50U2Nyb2xsSW5Qcm9ncmVzcyk7CisgICAgYXV0byBkZWZlcnJlciA9IFdo
ZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJlciB7IGZyYW1lKCkucGFnZSgpLT53
aGVlbEV2ZW50VGVzdE1vbml0b3IoKS5nZXQoKSwgdGhpcywgV2hlZWxFdmVudFRlc3RNb25pdG9y
OjpEZWZlclJlYXNvbjo6Q29udGVudFNjcm9sbEluUHJvZ3Jlc3MgfTsKICNlbmRpZgogCiAgICAg
dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCmluZGV4IDYzNzcyMDI4NjYxODFmMGM2ZGRi
ZGUyYTczZWM3ODNmODQ4N2M3MGIuLmY2NTI1MGU5ZjZjYjE1YWMyODEwY2RkN2ZmMWFjNDRiNGVi
Njg5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25p
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5j
cHAKQEAgLTk1LDggKzk1LDEwIEBAIHZvaWQgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpyZW1vdmVE
ZWZlcnJhbEZvclJlYXNvbihTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIgaWRlCiAgICAgTG9ja0hv
bGRlciBsb2NrKG1fbXV0ZXgpOwogCiAgICAgYXV0byBpdCA9IG1fZGVmZXJDb21wbGV0aW9uUmVh
c29ucy5maW5kKGlkZW50aWZpZXIpOwotICAgIGlmIChpdCA9PSBtX2RlZmVyQ29tcGxldGlvblJl
YXNvbnMuZW5kKCkpCisgICAgaWYgKGl0ID09IG1fZGVmZXJDb21wbGV0aW9uUmVhc29ucy5lbmQo
KSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJl
YW0gPDwgIiAgICAgICg9KSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OnJlbW92ZURlZmVycmFsRm9y
UmVhc29uOiBmYWlsZWQgdG8gZmluZCBkZWZlciBmb3IgaWQ9IiA8PCBpZGVudGlmaWVyIDw8ICIs
IHJlYXNvbj0iIDw8IHJlYXNvbik7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBMT0df
V0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0gPDwgIiAgICAgICg9KSBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OnJlbW92ZURlZmVycmFsRm9yUmVhc29uOiBpZD0iIDw8IGlk
ZW50aWZpZXIgPDwgIiwgcmVhc29uPSIgPDwgcmVhc29uKTsKICAgICBpdC0+dmFsdWUucmVtb3Zl
KHJlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0
TW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaApp
bmRleCA5MjA3N2U5ZDVmYWIwZWY5ZmUyNmYwNTUyNTczNzI4YzFjNzY3NWNkLi5mZjhkNzdjNDQ0
MWM0ZjAyNzM4YTIzNWMxMmFjYTMxYzg5YTQ1YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2hlZWxFdmVudFRlc3RNb25pdG9yLmgKQEAgLTkzLDYgKzkzLDEzIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIG1fbW9uaXRvci0+ZGVmZXJGb3JSZWFzb24obV9pZGVudGlmaWVyLCBtX3JlYXNvbik7
CiAgICAgfQogICAgIAorICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJl
cihXaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0aW9uRGVmZXJyZXImJiBvdGhlcikKKyAgICAg
ICAgOiBtX21vbml0b3IoV1RGTW92ZShvdGhlci5tX21vbml0b3IpKQorICAgICAgICAsIG1faWRl
bnRpZmllcihvdGhlci5tX2lkZW50aWZpZXIpCisgICAgICAgICwgbV9yZWFzb24ob3RoZXIubV9y
ZWFzb24pCisgICAgeworICAgIH0KKwogICAgIH5XaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0
aW9uRGVmZXJyZXIoKQogICAgIHsKICAgICAgICAgaWYgKG1fbW9uaXRvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggYTk2MDI5NjJkMjhhNTNmNjhlNjhmOWJiZTE3ZTM3NDg2YTgwNjljYi4u
ZGU1NDA1ZTI2NGNhY2FlYzBiMzVhNTI0ODc0NzAwZjQ3NDFmN2I0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKQEAgLTI3MCw3ICsyNzAsNyBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogICAg
IGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCkt
PmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2Fj
aGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFibGVBcmVhLmN1cnJl
bnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwogICAgIGlmIChpblBy
b2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGUpCi0gICAgICAgIGFwcGx5U2Ny
b2xsVXBkYXRlKHNjcm9sbGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xsVHlw
ZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQsIEluZm9y
bVdoZWVsRXZlbnRNb25pdG9yOjpObyk7CisgICAgICAgIGFwcGx5U2Nyb2xsVXBkYXRlKHNjcm9s
bGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogCiAgICAgQVNTRVJUKGluUHJv
Z3JhbW1hdGljU2Nyb2xsID09IChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRp
YykpOwogCkBAIC0yODMsMTMgKzI4Myw2IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAg
aWYgKCFzdGF0ZU5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkg
ewotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0g
PDwgIiAgICAoISkgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlOiBBZGRpbmcgZGVmZXJyYWwgb24gIiA8PCBzY3JvbGxpbmdOb2RlSUQgPDwgIiBm
b3IgcmVhc29uICIgPDwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbik7Ci0gICAgICAgIG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCktPmRlZmVyRm9y
UmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwotICAgIH0KLSNlbmRpZgotCiAgICAgc3RhdGVOb2Rl
LT5zZXRSZXF1ZXN0ZWRTY3JvbGxEYXRhKHsgc2Nyb2xsUG9zaXRpb24sIHNjcm9sbFR5cGUsIGNs
YW1waW5nIH0pOwogICAgIGNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHRy
dWU7CkBAIC0zMDgsMjMgKzMwMSwxMSBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSgpCiAgICAgbV9zY3JvbGxpbmdUcmVl
LT50cmF2ZXJzZVNjcm9sbGluZ1RyZWUoWyZdKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIFNjcm9s
bGluZ05vZGVUeXBlLCBPcHRpb25hbDxGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgT3B0aW9u
YWw8RmxvYXRQb2ludD4gbGF5b3V0Vmlld3BvcnRPcmlnaW4sIGJvb2wgc2Nyb2xsZWRTaW5jZUxh
c3RDb21taXQpIHsKICAgICAgICAgaWYgKHNjcm9sbFBvc2l0aW9uICYmIHNjcm9sbGVkU2luY2VM
YXN0Q29tbWl0KSB7CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJl
YW0gPDwgIkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9uaXplU3RhdGVGcm9tU2Ny
b2xsaW5nVHJlZSAtIG5vZGUgIiA8PCBub2RlSUQgPDwgIiBzY3JvbGwgcG9zaXRpb24gIiA8PCBz
Y3JvbGxQb3NpdGlvbik7Ci0gICAgICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5
bmNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbi52YWx1ZSgpLCBsYXlvdXRWaWV3cG9ydE9y
aWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0
LCBJbmZvcm1XaGVlbEV2ZW50TW9uaXRvcjo6Tm8pOworICAgICAgICAgICAgdXBkYXRlU2Nyb2xs
UG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24udmFsdWUoKSwg
bGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb246OlNldCk7CiAgICAgICAgIH0KICAgICB9KTsKIH0KIAotdm9pZCBBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RlU2Nyb2xsaW5nVGhyZWFkU3luY0NvbXBsZXRlRm9yTm9k
ZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQotewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAo
bV9wYWdlICYmIG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewotICAgICAgICBM
T0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0gPDwgIiAgICAoISkg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6bm90ZVNjcm9sbGluZ1RocmVhZFN5bmNDb21wbGV0
ZUZvck5vZGU6IFJlbW92aW5nIGRlZmVycmFsIG9uICIgPDwgbm9kZUlEIDw8ICIgZm9yIHJlYXNv
biAiIDw8IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7
Ci0gICAgICAgIG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCktPnJlbW92ZURlZmVycmFs
Rm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxh
YmxlQXJlYUlkZW50aWZpZXI+KG5vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
aW5nVGhyZWFkU3luY05lZWRlZCk7Ci0gICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obm9k
ZUlEKTsKLSNlbmRpZgotfQotCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFwcGx5
UGVuZGluZ1Njcm9sbFVwZGF0ZXMoKQogewogICAgIGlmICghbV9zY3JvbGxpbmdUcmVlKQpAQCAt
MzMzLDcgKzMxNCw3IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6YXBwbHlQZW5k
aW5nU2Nyb2xsVXBkYXRlcygpCiAgICAgYXV0byBzY3JvbGxVcGRhdGVzID0gbV9zY3JvbGxpbmdU
cmVlLT50YWtlUGVuZGluZ1Njcm9sbFVwZGF0ZXMoKTsKICAgICBmb3IgKGF1dG8mIHVwZGF0ZSA6
IHNjcm9sbFVwZGF0ZXMpIHsKICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjphcHBseVBlbmRpbmdTY3JvbGxVcGRh
dGVzIC0gbm9kZSAiIDw8IHVwZGF0ZS5ub2RlSUQgPDwgIiBzY3JvbGwgcG9zaXRpb24gIiA8PCB1
cGRhdGUuc2Nyb2xsUG9zaXRpb24pOwotICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVy
QXN5bmNTY3JvbGwodXBkYXRlLm5vZGVJRCwgdXBkYXRlLnNjcm9sbFBvc2l0aW9uLCB1cGRhdGUu
bGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVzZXIsIHVwZGF0ZS51cGRhdGVMYXll
clBvc2l0aW9uQWN0aW9uLCBJbmZvcm1XaGVlbEV2ZW50TW9uaXRvcjo6WWVzKTsKKyAgICAgICAg
dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKHVwZGF0ZS5ub2RlSUQsIHVwZGF0
ZS5zY3JvbGxQb3NpdGlvbiwgdXBkYXRlLmxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxUeXBl
OjpVc2VyLCB1cGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiAgICAgfQogfQogCkBA
IC0zNjksMTkgKzM1MCwxNiBAQCBGcmFtZVZpZXcqIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nTm9kZUlECiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLXZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6YXBwbHlTY3JvbGxV
cGRhdGUoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgSW5mb3JtV2hlZWxFdmVudE1vbml0b3IgaW5mb3Jt
V2hlZWxFdmVudE1vbml0b3IpCit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFwcGx5
U2Nyb2xsVXBkYXRlKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCiB7CiAgICAgYXBwbHlQZW5kaW5nU2Ny
b2xsVXBkYXRlcygpOwotICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChz
Y3JvbGxpbmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Ny
b2xsVHlwZSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgaW5mb3JtV2hlZWxFdmVudE1v
bml0b3IpOworICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxp
bmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsVHlw
ZSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiB9CiAKLXZvaWQgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlw
ZSBzY3JvbGxUeXBlLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24sIEluZm9ybVdoZWVsRXZlbnRNb25pdG9yIGluZm9ybVdoZWVsRXZlbnRN
b25pdG9yKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3Np
dGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgY29u
c3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91
dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKGluZm9ybVdoZWVsRXZlbnRNb25pdG9yID09IElu
Zm9ybVdoZWVsRXZlbnRNb25pdG9yOjpZZXMpCi0gICAgICAgIG5vdGVTY3JvbGxpbmdUaHJlYWRT
eW5jQ29tcGxldGVGb3JOb2RlKHNjcm9sbGluZ05vZGVJRCk7Ci0KICAgICBpZiAoIW1fcGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMDAyN2RmODM3NTJmNTdm
ZWRhYzBjNDY2YjUxNDNjNWI4ODZlNDBjZi4uOWUxMjEwYmU4ZGFjNDE2ZmM3NGVhNmY3N2IzYWJj
YzU3YmY5MjE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTMsOCArNTMsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGFwcGx5UGVuZGluZ1Njcm9sbFVwZGF0ZXMoKTsKIAotICAgIGVudW0gY2xh
c3MgSW5mb3JtV2hlZWxFdmVudE1vbml0b3IgeyBZZXMsIE5vIH07Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBhcHBseVNjcm9sbFVwZGF0ZShTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9p
bnQmLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgSW5mb3JtV2hlZWxFdmVudE1vbml0b3Ig
PSBJbmZvcm1XaGVlbEV2ZW50TW9uaXRvcjo6WWVzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGFwcGx5U2Nyb2xsVXBkYXRlKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIE9w
dGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxUeXBlLCBTY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFNjcm9sbGluZ05vZGVJRCwg
UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIGZpbmFsOwpAQCAtMTU5LDkgKzE1OCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRFdmVudFRyYWNraW5nUmVnaW9uc0RpcnR5KCk7CiAgICAgdm9pZCB1
cGRhdGVFdmVudFRyYWNraW5nUmVnaW9ucygpOwogICAgIAotICAgIHZvaWQgbm90ZVNjcm9sbGlu
Z1RocmVhZFN5bmNDb21wbGV0ZUZvck5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKLQotICAgIHZvaWQg
dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29u
c3QgRmxvYXRQb2ludCYsIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBTY3JvbGxUeXBlLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBJbmZvcm1XaGVlbEV2
ZW50TW9uaXRvcik7CisgICAgdm9pZCB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3Jv
bGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiwgT3B0aW9uYWw8RmxvYXRQb2lu
dD4gbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGUsIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pOwogICAgIAogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9k
ZShTY3JvbGxpbmdOb2RlSUQpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggODVmZjQ0NjhjZGZmODcyM2UyMTgxNTFmMzYxOTg5
ZmFmNzYwZmQ2ZC4uYjFlODE0NzYwMDU2ZWMyMWQ1YWM2NzBkOWE3YjBlNmJlYzI4MDhjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTQ1
LDYgKzE0NSw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBl
dmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgSW50
UG9pbnQpOwogCisgICAgdmlydHVhbCBXaGVlbEV2ZW50VGVzdE1vbml0b3IqIHdoZWVsRXZlbnRU
ZXN0TW9uaXRvcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KKwogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFNjcm9sbGluZ05vZGVJRCwgUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlU2Ny
b2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250YWxJbmRl
eCovLCB1bnNpZ25lZCAvKnZlcnRpY2FsSW5kZXgqLykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRleCBk
ODU0MDFjNTZlOWI3MDYxNzNlN2Q3YjgzNDY0ODliMzJmMzI1MmVhLi43MDhjMGEwMzU4ODU5NTc2
NjdjMTNkODgxZGFmYTNhOGNhYzQwNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTE0OCwxMSArMTQ4
LDYgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2QKICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0g
ZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkubGF5b3V0Vmll
d3BvcnQoKS5sb2NhdGlvbigpOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChpc01vbml0
b3JpbmdXaGVlbEV2ZW50cygpKQotICAgICAgICBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlv
bkZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyPihub2RlLnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxFdmVudFRl
c3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkKTsKLSNlbmRpZgotCiAgICAgaWYg
KFJ1bkxvb3A6OmlzTWFpbigpKSB7CiAgICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmFw
cGx5U2Nyb2xsVXBkYXRlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9uLCBs
YXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgc2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbik7CiAgICAgICAgIHJldHVybjsKQEAgLTE2Myw3ICsxNTgsMTEgQEAgdm9pZCBU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2QKICAgICBhdXRvIHNjcm9sbFVwZGF0ZSA9IFNjcm9sbFVwZGF0ZSB7
IG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9y
aWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiB9OwogICAgIGFkZFBlbmRpbmdTY3Jv
bGxVcGRhdGUoV1RGTW92ZShzY3JvbGxVcGRhdGUpKTsKIAotICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbc3Ryb25nVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgYXV0byBtYWtlRGVm
ZXJyZXIgPSBbJl0oKSAtPiBXaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0aW9uRGVmZXJyZXIg
eworICAgICAgICByZXR1cm4geyB3aGVlbEV2ZW50VGVzdE1vbml0b3IoKSwgcmVpbnRlcnByZXRf
Y2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4obm9k
ZS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhy
ZWFkU3luY05lZWRlZCB9OworICAgIH07CisKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3N0cm9uZ1RoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZGVmZXJyZXIgPSBtYWtlRGVmZXJyZXIoKV0g
ewogICAgICAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBzdHJvbmdUaGlzLT5t
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yLmdldCgpKQogICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRp
bmF0b3ItPmFwcGx5UGVuZGluZ1Njcm9sbFVwZGF0ZXMoKTsKICAgICB9KTsKQEAgLTIxNSwxMSAr
MjE0LDYgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNldEFjdGl2ZVNjcm9sbFNuYXBJ
bmRpY2VzKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIHUKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRp
bmF0b3ItPnNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKG5vZGVJRCwgaG9yaXpvbnRhbEluZGV4
LCB2ZXJ0aWNhbEluZGV4KTsKICAgICB9KTsKIH0KLQotdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQb3NpdGlvbiovLCBTY3JvbGxUeXBlLCBTY3Jv
bGxDbGFtcGluZykKLXsKLSAgICByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJh
bEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyPihub2RlSUQpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uKTsKLX0KICNlbmRpZgogCiB2b2lkIFRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6d2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggNWE3MGNhNWVi
NmQyNmRmMmM1MTk4MmQ5N2U2MjQzMzU0MDViZDlhOC4uZWYxMTM5OWRmNjI0MDgwYzg5Y2RhNmU0
YjkyNDRiNTFkODBhYTY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTY4LDcgKzY4LDYgQEAgcHJvdGVjdGVk
OgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShTY3Jv
bGxpbmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSBvdmVycmlkZTsKICAgICB2b2lk
IHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9y
aXpvbnRhbEluZGV4LCB1bnNpZ25lZCB2ZXJ0aWNhbEluZGV4KSBvdmVycmlkZTsKLSAgICB2b2lk
IHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5n
KSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMubW0KaW5kZXggMjIwMDFlZDQ3NjNkZmMwNTkxODUwNjE4MjQxNTQzNmZiNGNiYzkxYy4u
YzRkZGIzZGQ1OGE3OThjN2JjYzRmMjdiZjlmNGFiMzc4MThmM2Q1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQpAQCAtOTgsMTggKzk4LDEyIEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0RGVmZXJJ
ZGVudGlmaWVyKCkKIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmcpCiB7Ci0gICAgdWlu
dDY0X3QgZGVmZXJJZGVudGlmaWVyID0gMDsKLSAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+aXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewotICAgICAgICBkZWZlcklkZW50aWZpZXIgPSBuZXh0
RGVmZXJJZGVudGlmaWVyKCk7Ci0gICAgICAgIG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9y
KCktPmRlZmVyRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9y
OjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciksIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7Ci0gICAgfQotCisgICAgYXV0byBt
YWtlRGVmZXJyZXIgPSBbJl0oKSAtPiBXaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0aW9uRGVm
ZXJyZXIgeworICAgICAgICByZXR1cm4geyBtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigp
LmdldCgpLCByZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJs
ZUFyZWFJZGVudGlmaWVyPihuZXh0RGVmZXJJZGVudGlmaWVyKCkpLCBXaGVlbEV2ZW50VGVzdE1v
bml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcgfTsKKyAgICB9OwogICAgIFJlZlB0cjxUaHJl
YWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6
OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIGRlZmF1bHRIYW5k
bGluZywgZGVmZXJJZGVudGlmaWVyXSB7CisgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChb
dGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcsIGRlZmVy
cmVyID0gbWFrZURlZmVycmVyKCldIHsKICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT53
aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZlbnQsIGRlZmF1bHRIYW5k
bGluZyk7Ci0KLSAgICAgICAgaWYgKHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+aXNNb25pdG9yaW5n
V2hlZWxFdmVudHMoKSkKLSAgICAgICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+cmVtb3Zl
V2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24ocmVpbnRlcnByZXRfY2Fz
dDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oZGVmZXJJ
ZGVudGlmaWVyKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSZXBvcnRET01FdmVudEhhbmRsaW5n
KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKaW5kZXggNGM0ZjE3Yzc5NTIxMWIxZWY2ZjM5MjZmMTE4
NmE4YzdkMjIzZjhkOS4uYjQyYmY0MTE0NTRmYTAzNGE3ZGFhODZjMzE1M2FhMWQ2NmE5ODNjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oCkBAIC00OCw2ICs0OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZvaWQg
c2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKFJlZlB0cjxXaGVlbEV2ZW50VGVzdE1vbml0b3I+JiYp
IGZpbmFsOworICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvciogd2hlZWxFdmVudFRlc3RNb25pdG9y
KCkgZmluYWwgeyByZXR1cm4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3IuZ2V0KCk7IH0KIAogICAg
IHZvaWQgcmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFs
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmlu
ZGV4IDU2ZmU5YzMyNGFjZTIzMDYxNWVjYWE4ZDk5OWUzZjJiMjM4YjhkMWYuLjhmZGMzZTVlOTNj
MDUwNDdkMGEyNTZkNjFmZjIwMzI4OGI2MWUwODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCkBAIC0xMzUsOCArMTM1LDcgQEAgYm9vbCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWwKICAgICB9CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBF
TkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgaWYgKHNjcm9sbGluZ1RyZWUoKS5pc01vbml0b3Jp
bmdXaGVlbEV2ZW50cygpKQotICAgICAgICBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZv
clJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJs
ZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudCk7CisgICAgYXV0byBkZWZlcnJl
ciA9IFdoZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJlciB7IHNjcm9sbGluZ1Ry
ZWUoKS53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSwgcmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZSgpLnNj
cm9sbGluZ05vZGVJRCgpKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpIYW5kbGluZ1doZWVsRXZl
bnQgfTsKICNlbmRpZgogCiAgICAgYm9vbCB3YXNJblVzZXJTY3JvbGwgPSBtX3Njcm9sbENvbnRy
b2xsZXIuaXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcygpOwpAQCAtMTUwLDE0ICsxNDksNyBAQCBib29s
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbAogICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2U6Ok1heUJlZ2luKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGF1dG8gaGFuZGxlZCA9IG1fc2Nyb2xsQ29udHJvbGxlci5oYW5kbGVXaGVlbEV2ZW50KHdoZWVs
RXZlbnQpOwotCi0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQotICAgIGlmIChzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMo
KSkKLSAgICAgICAgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFz
b24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVh
SWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpIYW5kbGluZ1doZWVsRXZlbnQpOwotI2VuZGlmCi0KLSAgICByZXR1cm4g
aGFuZGxlZDsKKyAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLmhhbmRsZVdoZWVsRXZlbnQo
d2hlZWxFdmVudCk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBv
c2l0aW9uKQo=
</data>
<flag name="review"
          id="432331"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>