<?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>164980</bug_id>
          
          <creation_ts>2016-11-18 18:56:02 -0800</creation_ts>
          <short_desc>[iOS WK2] Eliminate a source of flakiness in layout tests by forcing WebPage into &quot;responsive&quot; mode for all tests, with an internals override</short_desc>
          <delta_ts>2016-11-18 23:35:58 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></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>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1253008</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 18:56:02 -0800</bug_when>
    <thetext>[iOS WK2] Eliminate a source of flakiness in layout tests by forcing WebPage into &quot;responsive&quot; mode for all tests, with an internals override</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253009</commentid>
    <comment_count>1</comment_count>
      <attachid>295243</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 18:59:31 -0800</bug_when>
    <thetext>Created attachment 295243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253010</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 18:59:55 -0800</bug_when>
    <thetext>Depends on the patch in bug 164967.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253019</commentid>
    <comment_count>3</comment_count>
      <attachid>295246</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 20:32:47 -0800</bug_when>
    <thetext>Created attachment 295246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253021</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-18 20:34:34 -0800</bug_when>
    <thetext>Attachment 295246 did not pass style-queue:


ERROR: Source/WebCore/testing/Internals.cpp:858:  EVENT_THROTTLING_BEHAVIOR_RESPONSIVE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/testing/Internals.cpp:859:  EVENT_THROTTLING_BEHAVIOR_UNRESPONSIVE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253024</commentid>
    <comment_count>5</comment_count>
      <attachid>295246</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-18 21:04:11 -0800</bug_when>
    <thetext>Comment on attachment 295246
Patch

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

r=me with suggestion

&gt; Source/WebCore/testing/Internals.idl:333
&gt; +    attribute unsigned short? eventThrottlingBehaviorOverride;

The modern way of doing this would be to use a string enumeration in IDL.

enum EventThrottlingBehavior { &quot;responsive&quot;, &quot;unresponsive&quot; };
attribute EventThrottlingBehavior? eventThrottlingBehaviorOverride;

Also, is there really a need for this to be nullable? It seems we could just return &quot;responsive&quot; by default.

Finally, given your comment, shouldn&apos;t this be in a #if PLATFORM(IOS) block?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253025</commentid>
    <comment_count>6</comment_count>
      <attachid>295246</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-18 21:05:15 -0800</bug_when>
    <thetext>Comment on attachment 295246
Patch

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

&gt; LayoutTests/fast/scrolling/ios/scroll-events-default-expected.txt:1
&gt; +PASS receivedScrollEvent is true

nit: It&apos;d be nice for those tests to have a description(&quot;...&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253028</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 21:15:15 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 295246 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=295246&amp;action=review
&gt; 
&gt; r=me with suggestion
&gt; 
&gt; &gt; Source/WebCore/testing/Internals.idl:333
&gt; &gt; +    attribute unsigned short? eventThrottlingBehaviorOverride;
&gt; 
&gt; The modern way of doing this would be to use a string enumeration in IDL.
&gt; 
&gt; enum EventThrottlingBehavior { &quot;responsive&quot;, &quot;unresponsive&quot; };
&gt; attribute EventThrottlingBehavior? eventThrottlingBehaviorOverride;

Nice, will do that.

&gt; Also, is there really a need for this to be nullable? It seems we could just
&gt; return &quot;responsive&quot; by default.

I made it nullable to remove the override entirely.

&gt; Finally, given your comment, shouldn&apos;t this be in a #if PLATFORM(IOS) block?

It only impacts iOS, but I&apos;d prefer to not conditionalize the internals API because it makes cross-platform tests harder to write.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253042</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 23:35:58 -0800</bug_when>
    <thetext>Committed r208921: &lt;http://trac.webkit.org/changeset/208921&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295243</attachid>
            <date>2016-11-18 18:59:31 -0800</date>
            <delta_ts>2016-11-18 20:32:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164980-20161118185924.patch</filename>
            <type>text/plain</type>
            <size>20901</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4ODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmExMDg2YjVmODQ2OTg3
OTkxMWU0ODk2ZDcwODExYjMyZTFjNjQyZC4uMjViODA3YWEwOGY0YWEzZmI1OTg5MGRjMzcxMTZi
ZDgzZjAxZGU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE2LTExLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1MgV0syXSBF
bGltaW5hdGUgYSBzb3VyY2Ugb2YgZmxha2luZXNzIGluIGxheW91dCB0ZXN0cyBieSBmb3JjaW5n
IFdlYlBhZ2UgaW50byAicmVzcG9uc2l2ZSIgbW9kZSBmb3IgYWxsIHRlc3RzLCB3aXRoIGFuIGlu
dGVybmFscyBvdmVycmlkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY0OTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViUGFnZTo6ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSB1c2VzIGEgbGF0ZW5jeSBl
c3RpbWF0ZSBiYXNlZCBvbiB0aGUgcm91bmQtdHJpcCB0aW1lIGZyb20gdGhlIFVJIHByb2Nlc3MK
KyAgICAgICAgdG8gYWZmZWN0IGJlaGF2aW9yLCBpbmNsdWRpbmcgd2hldGhlciBzY3JvbGwgZXZl
bnRzIGFyZSBmaXJlZC4gVGhpcyBhbHNvIGFmZmVjdHMgdGhlIEZyYW1lVmlldyAic2Nyb2xsZWRC
eVVzZXIiCisgICAgICAgIGZsYWcgdGhhdCBpbXBhY3RzIHRpbGUgY292ZXJhZ2UuCisKKyAgICAg
ICAgRHVyaW5nIHRlc3RpbmcsIGxhdGVuY3kgZmFsbGluZyBhYm92ZSBvciBiZWxvdyB0aGUgMTZt
cyB0aHJlc2hvbGQgY291bGQgYWZmZWN0IGJlaGF2aW9yLiBGaXggYnkgZm9yY2luZworICAgICAg
ICBXZWJQYWdlIGludG8gInJlc3BvbnNpdmUiIG1vZGUgd2hpbGUgcnVubmluZyB0ZXN0cywgdmlh
IEluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFyZSgpLgorCisgICAgICAgIEFkZCBhIG51bGxhYmxl
IGludGVybmFscyBwcm9wZXJ0eSBzbyB0aGF0IGEgdGVzdCBjYW4gc3BlY2lmeSByZXNwb25zaXZl
LCB1bnJlc3BvbnNpdmUgb3IgZGVmYXVsdCBiZWhhdmlvci4KKworICAgICAgICBUZXN0czogZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtZGVmYXVsdC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1yZXNwb25zaXZlLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLXVucmVzcG9uc2l2ZS5o
dG1sCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmV2
ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZSk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRFdmVudFRocm90
dGxpbmdCZWhhdmlvck92ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZXZl
bnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKKzIwMTYtMTEtMTggIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgUmVtb3ZlIHVz
ZSBvZiBzdGQ6OmNocm9ubyBpbiBXZWJQYWdlIGFuZCBlbnRyYWluZWQgY29kZQogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0OTY3CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA2ZjRjOTZlYjFmNDhlMDAyMzQ3NDVjZTBkMjgzNDdiN2ZjNmY3MWY2Li5iNDgxM2FhMGZj
YTIyMjM5NmNjMmQyNGYzMDJhZjA3ZGQ4NTM0MTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcg
QEAKIDIwMTYtMTEtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
KyAgICAgICAgW2lPUyBXSzJdIEVsaW1pbmF0ZSBhIHNvdXJjZSBvZiBmbGFraW5lc3MgaW4gbGF5
b3V0IHRlc3RzIGJ5IGZvcmNpbmcgV2ViUGFnZSBpbnRvICJyZXNwb25zaXZlIiBtb2RlIGZvciBh
bGwgdGVzdHMsIHdpdGggYW4gaW50ZXJuYWxzIG92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ5ODAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJQYWdlOjpldmVudFRocm90dGxpbmdEZWxh
eSgpIHVzZXMgYSBsYXRlbmN5IGVzdGltYXRlIGJhc2VkIG9uIHRoZSByb3VuZC10cmlwIHRpbWUg
ZnJvbSB0aGUgVUkgcHJvY2VzcworICAgICAgICB0byBhZmZlY3QgYmVoYXZpb3IsIGluY2x1ZGlu
ZyB3aGV0aGVyIHNjcm9sbCBldmVudHMgYXJlIGZpcmVkLiBUaGlzIGFsc28gYWZmZWN0cyB0aGUg
RnJhbWVWaWV3ICJzY3JvbGxlZEJ5VXNlciIKKyAgICAgICAgZmxhZyB0aGF0IGltcGFjdHMgdGls
ZSBjb3ZlcmFnZS4KKworICAgICAgICBEdXJpbmcgdGVzdGluZywgbGF0ZW5jeSBmYWxsaW5nIGFi
b3ZlIG9yIGJlbG93IHRoZSAxNm1zIHRocmVzaG9sZCBjb3VsZCBhZmZlY3QgYmVoYXZpb3IuIEZp
eCBieSBmb3JjaW5nCisgICAgICAgIFdlYlBhZ2UgaW50byAicmVzcG9uc2l2ZSIgbW9kZSB3aGls
ZSBydW5uaW5nIHRlc3RzLCB2aWEgSW5qZWN0ZWRCdW5kbGVQYWdlOjpwcmVwYXJlKCkuCisKKyAg
ICAgICAgQWRkIGEgbnVsbGFibGUgaW50ZXJuYWxzIHByb3BlcnR5IHNvIHRoYXQgYSB0ZXN0IGNh
biBzcGVjaWZ5IHJlc3BvbnNpdmUsIHVucmVzcG9uc2l2ZSBvciBkZWZhdWx0IGJlaGF2aW9yLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
Y3BwOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2V0RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVy
cmlkZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpldmVudFRocm90dGxpbmdEZWxheSk6
CisKKzIwMTYtMTEtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisK
ICAgICAgICAgUmVtb3ZlIHVzZSBvZiBzdGQ6OmNocm9ubyBpbiBXZWJQYWdlIGFuZCBlbnRyYWlu
ZWQgY29kZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0OTY3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMjNhMzU5ZTUzMTY0MWFmOTFlYzljMGEzMWM4NzNl
MDJjNDE5NDBjYi4uNTc1ZDhjZjc3MmI3NWM3NjE1YmFiNmU3MTg1NWZiMDY1ZTBjMWZjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTEzMCw3ICsxMzAsMTUgQEAgY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsK
IAogdHlwZWRlZiB1aW50NjRfdCBMaW5rSGFzaDsKIAotZW51bSBGaW5kRGlyZWN0aW9uIHsgRmlu
ZERpcmVjdGlvbkZvcndhcmQsIEZpbmREaXJlY3Rpb25CYWNrd2FyZCB9OworZW51bSBGaW5kRGly
ZWN0aW9uIHsKKyAgICBGaW5kRGlyZWN0aW9uRm9yd2FyZCwKKyAgICBGaW5kRGlyZWN0aW9uQmFj
a3dhcmQKK307CisKK2VudW0gY2xhc3MgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgeworICAgIFJl
c3BvbnNpdmUsCisgICAgVW5yZXNwb25zaXZlCit9OwogCiBjbGFzcyBQYWdlIDogcHVibGljIFN1
cHBsZW1lbnRhYmxlPFBhZ2U+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlKTsKQEAg
LTUzMSw2ICs1MzksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Jlc291cmNlQ2FjaGluZ0Rpc2Fi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZDsgfQogICAgIHZv
aWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkgeyBtX3Jlc291cmNl
Q2FjaGluZ0Rpc2FibGVkID0gZGlzYWJsZWQ7IH0KIAorICAgIE9wdGlvbmFsPEV2ZW50VGhyb3R0
bGluZ0JlaGF2aW9yPiBldmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9ldmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlOyB9CisgICAgdm9pZCBzZXRF
dmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKE9wdGlvbmFsPEV2ZW50VGhyb3R0bGluZ0Jl
aGF2aW9yPiB0aHJvdHRsaW5nKSB7IG1fZXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZSA9
IHRocm90dGxpbmc7IH0KKwogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluaXRH
cm91cCgpOwogCkBAIC03MjIsNiArNzMzLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29udHJv
bGxlZEJ5QXV0b21hdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Jlc291cmNlQ2FjaGluZ0Rp
c2FibGVkIHsgZmFsc2UgfTsKICAgICBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIG1fdXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbiB7IFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246
OkxUUiB9OworICAgIAorICAgIC8vIEZvciB0ZXN0aW5nLgorICAgIE9wdGlvbmFsPEV2ZW50VGhy
b3R0bGluZ0JlaGF2aW9yPiBtX2V2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGU7CiB9Owog
CiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpncm91cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggZWM1NmYyZWJmYzc0ODE3MmE0NDYzMDU2ZTQ2Yzk5NTJhMmI4ZWYyMy4u
NjhiNjU3NTA5Nzk4Y2Q5MTIyZTIyOTc2ZjlkODUzOGJjZjdjYTUwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtODU0LDYgKzg1NCw1MSBAQCBib29sIEludGVybmFsczo6
YXJlVGltZXJzVGhyb3R0bGVkKCkgY29uc3QKICAgICByZXR1cm4gY29udGV4dERvY3VtZW50KCkt
PmlzVGltZXJUaHJvdHRsaW5nRW5hYmxlZCgpOwogfQogCisvLyBUaGVzZSBzaG91bGQgbWF0Y2gg
dGhlIElETC4KK2NvbnN0IHVuc2lnbmVkIHNob3J0IEVWRU5UX1RIUk9UVExJTkdfQkVIQVZJT1Jf
UkVTUE9OU0lWRSA9IDA7Citjb25zdCB1bnNpZ25lZCBzaG9ydCBFVkVOVF9USFJPVFRMSU5HX0JF
SEFWSU9SX1VOUkVTUE9OU0lWRSA9IDE7CisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRFdmVudFRocm90
dGxpbmdCZWhhdmlvck92ZXJyaWRlKE9wdGlvbmFsPHVuc2lnbmVkIHNob3J0PiB2YWx1ZSkKK3sK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IXZhbHVlKSB7CisgICAgICAgIGRvY3VtZW50LT5wYWdlKCktPnNldEV2ZW50VGhyb3R0bGluZ0Jl
aGF2aW9yT3ZlcnJpZGUoTnVsbG9wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
d2l0Y2ggKHZhbHVlLnZhbHVlKCkpIHsKKyAgICBjYXNlIEVWRU5UX1RIUk9UVExJTkdfQkVIQVZJ
T1JfUkVTUE9OU0lWRToKKyAgICAgICAgZG9jdW1lbnQtPnBhZ2UoKS0+c2V0RXZlbnRUaHJvdHRs
aW5nQmVoYXZpb3JPdmVycmlkZShFdmVudFRocm90dGxpbmdCZWhhdmlvcjo6UmVzcG9uc2l2ZSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRVZFTlRfVEhST1RUTElOR19CRUhBVklPUl9VTlJF
U1BPTlNJVkU6CisgICAgICAgIGRvY3VtZW50LT5wYWdlKCktPnNldEV2ZW50VGhyb3R0bGluZ0Jl
aGF2aW9yT3ZlcnJpZGUoRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I6OlVucmVzcG9uc2l2ZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KK30KKworT3B0aW9uYWw8dW5zaWduZWQgc2hvcnQ+IEludGVy
bmFsczo6ZXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZSgpIGNvbnN0Cit7CisgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8
fCAhZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CisKKyAgICBhdXRv
IGJlaGF2aW9yID0gZG9jdW1lbnQtPnBhZ2UoKS0+ZXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVy
cmlkZSgpOworICAgIGlmICghYmVoYXZpb3IpCisgICAgICAgIHJldHVybiBOdWxsb3B0OworICAg
IAorICAgIHN3aXRjaCAoYmVoYXZpb3IudmFsdWUoKSkgeworICAgIGNhc2UgRXZlbnRUaHJvdHRs
aW5nQmVoYXZpb3I6OlJlc3BvbnNpdmU6CisgICAgICAgIHJldHVybiBFVkVOVF9USFJPVFRMSU5H
X0JFSEFWSU9SX1JFU1BPTlNJVkU7CisgICAgY2FzZSBFdmVudFRocm90dGxpbmdCZWhhdmlvcjo6
VW5yZXNwb25zaXZlOgorICAgICAgICByZXR1cm4gRVZFTlRfVEhST1RUTElOR19CRUhBVklPUl9V
TlJFU1BPTlNJVkU7CisgICAgfQorCisgICAgcmV0dXJuIE51bGxvcHQ7Cit9CisKIFN0cmluZyBJ
bnRlcm5hbHM6OnZpc2libGVQbGFjZWhvbGRlcihFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlm
IChpczxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IDk0MjFjZDQyMDU5YWZiMjI0OWQ2YzcxY2FmYWY3Njc3ZmZj
ZjUzMDUuLjBmYTZmZWVjOWM2YTIyNjAxNGQ2N2NkNmEwMDIxZTAzZjc3MjMwZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTIxLDYgKzEyMSw5IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzUmVxdWVzdEFuaW1hdGlvbkZyYW1lVGhyb3R0bGVkKCkgY29uc3Q7CiAgICAgYm9vbCBh
cmVUaW1lcnNUaHJvdHRsZWQoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0RXZlbnRUaHJvdHRsaW5n
QmVoYXZpb3JPdmVycmlkZShPcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4pOworICAgIE9wdGlvbmFs
PHVuc2lnbmVkIHNob3J0PiBldmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKCkgY29uc3Q7
CisKICAgICAvLyBTcGF0aWFsIE5hdmlnYXRpb24gdGVzdGluZy4KICAgICBFeGNlcHRpb25Pcjx1
bnNpZ25lZD4gbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDI2NmI5MWU2M2FlNzBiNTFkZmEx
NGY5NDBhNzMwYWQ1OGI0ZTFhZmQuLjYwNDUxNDJlYWVhMDkzNGYyZGVjMGEwNmQ0YWYyYjhhY2Y1
YzYwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTMyNyw2ICszMjcs
MTEgQEAgZW51bSBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHsKICAgICBib29sZWFuIGlz
UmVxdWVzdEFuaW1hdGlvbkZyYW1lVGhyb3R0bGVkKCk7CiAgICAgYm9vbGVhbiBhcmVUaW1lcnNU
aHJvdHRsZWQoKTsKIAorICAgIC8vIE92ZXJyaWRlIHRoZSBiZWhhdmlvciBvZiBXZWJQYWdlOjpl
dmVudFRocm90dGxpbmdEZWxheSgpLCB3aGljaCBvbmx5IGFmZmVjdHMgaU9TLgorICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IEVWRU5UX1RIUk9UVExJTkdfQkVIQVZJT1JfUkVTUE9OU0lWRSA9IDA7
CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRVZFTlRfVEhST1RUTElOR19CRUhBVklPUl9VTlJF
U1BPTlNJVkUgPSAxOworICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8gZXZlbnRUaHJvdHRs
aW5nQmVoYXZpb3JPdmVycmlkZTsKKwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzdGFy
dFRyYWNraW5nU3R5bGVSZWNhbGNzKCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB1bnNpZ25l
ZCBsb25nIHN0eWxlUmVjYWxjQ291bnQoKTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsYXN0U3R5bGVVcGRhdGVTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3Bw
CmluZGV4IDljOGNkNWQ4MWVhNDUxNzMxMTc5MzdhOWZlZTZkMTI1MzlhZjNmNDguLmQzMmRhZDZl
N2I4ZWZhMGQ2MTc1ODRmYjE4OWEwZGFmZGQxZmM1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKQEAgLTY5MSwzICs2OTEsMjAgQEAgV0tBcnJheVJlZiBXS0J1bmRsZVBhZ2VDb3B5
T3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiAgICAg
cmV0dXJuIHRvQVBJKCZBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShvcmlnaW5JZGVudGlmaWVy
cykpLmxlYWtSZWYoKSk7CiB9CisKK3ZvaWQgV0tCdW5kbGVQYWdlU2V0RXZlbnRUaHJvdHRsaW5n
QmVoYXZpb3JPdmVycmlkZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgRXZlbnRUaHJvdHRsaW5nQmVo
YXZpb3IqIGJlaGF2aW9yKQoreworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkV2ZW50VGhyb3R0bGlu
Z0JlaGF2aW9yPiBiZWhhdmlvclZhbHVlOworICAgIGlmIChiZWhhdmlvcikgeworICAgICAgICBz
d2l0Y2ggKCpiZWhhdmlvcikgeworICAgICAgICBjYXNlIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9y
UmVzcG9uc2l2ZToKKyAgICAgICAgICAgIGJlaGF2aW9yVmFsdWUgPSBXZWJDb3JlOjpFdmVudFRo
cm90dGxpbmdCZWhhdmlvcjo6UmVzcG9uc2l2ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yVW5yZXNwb25zaXZlOgorICAgICAgICAgICAg
YmVoYXZpb3JWYWx1ZSA9IFdlYkNvcmU6OkV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yOjpVbnJlc3Bv
bnNpdmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRvSW1w
bChwYWdlKS0+Y29yZVBhZ2UoKS0+c2V0RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZShi
ZWhhdmlvclZhbHVlKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmgK
aW5kZXggYWY1ZmY0MGM4MGU1OGFiZmIxNDVmZmMzN2RkYjE1Y2Y1ZmQ4Yjg4NS4uNDcwNGI1MmY3
OTIzNGU0MWM5NzU2ZTcyYzBhYjM3ZGViODk1YmYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2VQcml2YXRlLmgKQEAgLTExMSw2ICsxMTEsMTMgQEAgV0tfRVhQT1JUIHZvaWQgV0tC
dW5kbGVQYWdlU2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlUmVzZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG9yaWdpbik7CiBXS19F
WFBPUlQgV0tBcnJheVJlZiBXS0J1bmRsZVBhZ2VDb3B5T3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNh
Y2hlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIAorZW51bSBFdmVudFRocm90dGxpbmdCZWhhdmlv
ciB7CisgICAgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JSZXNwb25zaXZlLAorICAgIEV2ZW50VGhy
b3R0bGluZ0JlaGF2aW9yVW5yZXNwb25zaXZlCit9OworCitXS19FWFBPUlQgdm9pZCBXS0J1bmRs
ZVBhZ2VTZXRFdmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKFdLQnVuZGxlUGFnZVJlZiwg
RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IqKTsKKwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIFdLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldFVzZVRlc3RpbmdWaWV3cG9ydENvbmZpZ3VyYXRpb24o
V0tCdW5kbGVQYWdlUmVmLCBib29sKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGJlNzhhNWZiZDk0NjBj
MWJmN2Q1NjkwZTI5ODIxZjJhMzc1NjgzNzEuLmE2OTNmYjQyMWRkZjg5MGEzMzAwNzc5YTA2M2E5
ZDU0ZWIyODRkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTIxMjQsNiArMjEyNCwxNiBAQCB2b2lkIFdlYlBhZ2U6
OmV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjayhjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1l
LCB1aW50NjRfdAogCiBTZWNvbmRzIFdlYlBhZ2U6OmV2ZW50VGhyb3R0bGluZ0RlbGF5KCkgY29u
c3QKIHsKKyAgICBhdXRvIGJlaGF2aW9yT3ZlcnJpZGUgPSBtX3BhZ2UtPmV2ZW50VGhyb3R0bGlu
Z0JlaGF2aW9yT3ZlcnJpZGUoKTsKKyAgICBpZiAoYmVoYXZpb3JPdmVycmlkZSkgeworICAgICAg
ICBzd2l0Y2ggKGJlaGF2aW9yT3ZlcnJpZGUudmFsdWUoKSkgeworICAgICAgICBjYXNlIEV2ZW50
VGhyb3R0bGluZ0JlaGF2aW9yOjpSZXNwb25zaXZlOgorICAgICAgICAgICAgcmV0dXJuIFNlY29u
ZHMoMCk7CisgICAgICAgIGNhc2UgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I6OlVucmVzcG9uc2l2
ZToKKyAgICAgICAgICAgIHJldHVybiBTZWNvbmRzKDEpOworICAgICAgICB9CisgICAgfQorCiAg
ICAgaWYgKG1faXNJblN0YWJsZVN0YXRlIHx8IG1fZXN0aW1hdGVkTGF0ZW5jeSA8PSBTZWNvbmRz
KDEuMCAvIDYwKSkKICAgICAgICAgcmV0dXJuIFNlY29uZHMoMCk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmOGRmZDAzNzkzNzE0NWQ2ZGE3
NDUyOTU4ZWE0MTRkYmRmNDE5M2I4Li5lMTVhNDU5NTg5ZTU4ZDJmOTY0NjllYmQ0ZDI0NjhiMDM4
Zjg3ZTA2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTEtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXSzJdIEVsaW1pbmF0ZSBhIHNvdXJjZSBvZiBm
bGFraW5lc3MgaW4gbGF5b3V0IHRlc3RzIGJ5IGZvcmNpbmcgV2ViUGFnZSBpbnRvICJyZXNwb25z
aXZlIiBtb2RlIGZvciBhbGwgdGVzdHMsIHdpdGggYW4gaW50ZXJuYWxzIG92ZXJyaWRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ5ODAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpwcmVwYXJlKToKKwogMjAxNi0xMS0xNiAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXJkIHRvIHdyaXRlIHJl
bGlhYmxlIFVJU2NyaXB0Q29udHJvbGxlciBzY3JvbGxpbmdUcmVlQXNUZXh0IHRlc3RzCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMTg5OWE4YjNhM2Y0ZDdjMmJjYjRmN2Y1OTgxNWRmYTgy
YTY0MGY2Zi4uM2UxYzc3ODA4OTJlYzdkZjZjYjZlZWUxODUxNzZlNzkxY2M2NmNmZCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtNDE0LDYgKzQxNCwxMCBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZTo6cHJlcGFyZSgpCiAgICAgV0tCdW5kbGVGcmFtZUNsZWFyT3BlbmVyKFdLQnVuZGxl
UGFnZUdldE1haW5GcmFtZShtX3BhZ2UpKTsKICAgICAKICAgICBXS0J1bmRsZVBhZ2VTZXRUcmFj
a3NSZXBhaW50cyhtX3BhZ2UsIGZhbHNlKTsKKyAgICAKKyAgICAvLyBGb3JjZSBjb25zaXN0ZW50
ICJyZXNwb25zaXZlIiBiZWhhdmlvciBmb3IgV2ViUGFnZTo6ZXZlbnRUaHJvdHRsaW5nRGVsYXko
KSBmb3IgdGVzdGluZy4gVGVzdHMgY2FuIG92ZXJyaWRlIHZpYSBpbnRlcm5hbHMuCisgICAgRXZl
bnRUaHJvdHRsaW5nQmVoYXZpb3IgYmVoYXZpb3IgPSBFdmVudFRocm90dGxpbmdCZWhhdmlvclJl
c3BvbnNpdmU7CisgICAgV0tCdW5kbGVQYWdlU2V0RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVy
cmlkZShtX3BhZ2UsICZiZWhhdmlvcik7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpy
ZXNldEFmdGVyVGVzdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDliYjYyZWIxYjhiOWFlNjI1MTFiMjUwOWJlYjIzODMy
NDYyYTNkYS4uMjk3ODYwOWEyY2M0NjkyYTAzMTdlNDIwNjhiOTUxMjRjZTZkODMyNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE2LTExLTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBFbGltaW5hdGUgYSBzb3VyY2Ugb2YgZmxh
a2luZXNzIGluIGxheW91dCB0ZXN0cyBieSBmb3JjaW5nIFdlYlBhZ2UgaW50byAicmVzcG9uc2l2
ZSIgbW9kZSBmb3IgYWxsIHRlc3RzLCB3aXRoIGFuIGludGVybmFscyBvdmVycmlkZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0OTgwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWV2ZW50cy1kZWZhdWx0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtZGVmYXVsdC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1yZXNwb25zaXZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1l
dmVudHMtcmVzcG9uc2l2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWV2ZW50cy11bnJlc3BvbnNpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy11bnJlc3BvbnNpdmUuaHRtbDog
QWRkZWQuCisKIDIwMTYtMTEtMTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgc2xvdGNoYW5nZSBldmVudCBzaG91bGQgYnViYmxlIGFuZCBkaXNwYXRjaGVkIG9u
Y2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZl
bnRzLWRlZmF1bHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1ldmVudHMtZGVmYXVsdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJjYTFjZTFj
NGQ3MWU2YmI5ZGVjOTkxMWIxY2VkNDI3ZmI3NmE1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWRlZmF1bHQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyByZWNlaXZlZFNjcm9sbEV2ZW50IGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1kZWZhdWx0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1kZWZh
dWx0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI3MTNmYTM2NTE0NGYxYTIyYTliMDgwNGFhYTU2NjY4ZmRk
MmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtZXZlbnRzLWRlZmF1bHQuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRt
bD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAg
ICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAg
ICBmdW5jdGlvbiBnZXRVSVNjcmlwdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBg
CisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LmRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5zY3JvbGxUb09mZnNldCgwLCA1MDApOworICAg
ICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICB2YXIgcmVjZWl2ZWRTY3JvbGxF
dmVudCA9IGZhbHNlOworICAgICAgICBmdW5jdGlvbiBzY3JvbGxlZCgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJlY2VpdmVkU2Nyb2xsRXZlbnQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IC8vIFRlc3QgZGVmYXVsdCBiZWhhdmlvciAocmVzcG9uc2l2ZSkuCisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoZ2V0VUlTY3JpcHQoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlKCdyZWNlaXZlZFNjcm9sbEV2ZW50JywgJ3RydWUnKTsKKyAgICAgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5U
ZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbnNjcm9sbD0ic2Ny
b2xsZWQoKSI+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1yZXNwb25zaXZlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLXJlc3Bv
bnNpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyY2ExY2UxYzRkNzFlNmJiOWRlYzk5MTFi
MWNlZDQyN2ZiNzZhNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1yZXNwb25zaXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK1BBU1MgcmVjZWl2ZWRTY3JvbGxFdmVudCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtcmVzcG9uc2l2ZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtcmVzcG9uc2l2ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE4ODk4MjI1Y2JmYWRmOTM4MTNlMjQwZTdkZGE5M2UwYTY4Y2EyNGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2
ZW50cy1yZXNwb25zaXZlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+CisK
KzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAg
IGhlaWdodDogMjAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuZXZlbnRUaHJvdHRsaW5n
QmVoYXZpb3JPdmVycmlkZSA9IGludGVybmFscy5FVkVOVF9USFJPVFRMSU5HX0JFSEFWSU9SX1JF
U1BPTlNJVkU7CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoKQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci5kaWRFbmRTY3JvbGxpbmdDYWxsYmFjayA9IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2Nyb2xsVG9P
ZmZzZXQoMCwgNTAwKTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAg
dmFyIHJlY2VpdmVkU2Nyb2xsRXZlbnQgPSBmYWxzZTsKKyAgICAgICAgZnVuY3Rpb24gc2Nyb2xs
ZWQoKQorICAgICAgICB7CisgICAgICAgICAgICByZWNlaXZlZFNjcm9sbEV2ZW50ID0gdHJ1ZTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICAvLyBUZXN0IGRlZmF1bHQgYmVoYXZpb3IgKHJlc3BvbnNpdmUp
LgorICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KCksIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgncmVjZWl2ZWRTY3JvbGxFdmVudCcsICd0cnVl
Jyk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25zY3JvbGw9InNjcm9sbGVkKCkiPgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMt
dW5yZXNwb25zaXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtZXZlbnRzLXVucmVzcG9uc2l2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWMy
N2JhMmQ2Yzk5MjZiMjM1ZWI4MmExY2M1OGM0NWMwMjk1MmI5ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLXVucmVzcG9uc2l2
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHJlY2VpdmVkU2Nyb2xsRXZlbnQg
aXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2
ZW50cy11bnJlc3BvbnNpdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtZXZlbnRzLXVucmVzcG9uc2l2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzNjA5MDJlNTFjMTMx
NjU5MWYwZjczNGM1OGQzMGM2ZThhNTY4MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy11bnJlc3BvbnNpdmUuaHRtbApAQCAt
MCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5
bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAg
IH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgICAgIGludGVybmFscy5ldmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlID0gaW50ZXJu
YWxzLkVWRU5UX1RIUk9UVExJTkdfQkVIQVZJT1JfVU5SRVNQT05TSVZFOworCisgICAgICAgIGZ1
bmN0aW9uIGdldFVJU2NyaXB0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAg
ICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlk
RW5kU2Nyb2xsaW5nQ2FsbGJhY2sgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
dWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnNjcm9sbFRvT2Zmc2V0KDAsIDUwMCk7CisgICAgICAg
ICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIHZhciByZWNlaXZlZFNjcm9sbEV2ZW50
ID0gZmFsc2U7CisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbGVkKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmVjZWl2ZWRTY3JvbGxFdmVudCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGdldFVJU2NyaXB0KCksIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgncmVjZWl2ZWRTY3JvbGxFdmVudCcsICdmYWxzZScpOworICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1
blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9uc2Nyb2xsPSJz
Y3JvbGxlZCgpIj4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295246</attachid>
            <date>2016-11-18 20:32:47 -0800</date>
            <delta_ts>2016-11-18 21:04:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164980-20161118203238.patch</filename>
            <type>text/plain</type>
            <size>20806</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU2NmQ5N2Y1ZDdiZGE2
ZDg4OWI3YjhmMjgyNWY4ZTQ3MWQ4MTA4ZS4uOTE0YmY0ODZjZjM2MGI4MjMzYzM1ZjFiYjFhYTdh
MzAwYjI0YzBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE2LTExLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBF
bGltaW5hdGUgYSBzb3VyY2Ugb2YgZmxha2luZXNzIGluIGxheW91dCB0ZXN0cyBieSBmb3JjaW5n
IFdlYlBhZ2UgaW50byAicmVzcG9uc2l2ZSIgbW9kZSBmb3IgYWxsIHRlc3RzLCB3aXRoIGFuIGlu
dGVybmFscyBvdmVycmlkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY0OTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViUGFnZTo6ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSB1c2VzIGEgbGF0ZW5jeSBl
c3RpbWF0ZSBiYXNlZCBvbiB0aGUgcm91bmQtdHJpcCB0aW1lIGZyb20gdGhlIFVJIHByb2Nlc3MK
KyAgICAgICAgdG8gYWZmZWN0IGJlaGF2aW9yLCBpbmNsdWRpbmcgd2hldGhlciBzY3JvbGwgZXZl
bnRzIGFyZSBmaXJlZC4gVGhpcyBhbHNvIGFmZmVjdHMgdGhlIEZyYW1lVmlldyAic2Nyb2xsZWRC
eVVzZXIiCisgICAgICAgIGZsYWcgdGhhdCBpbXBhY3RzIHRpbGUgY292ZXJhZ2UuCisKKyAgICAg
ICAgRHVyaW5nIHRlc3RpbmcsIGxhdGVuY3kgZmFsbGluZyBhYm92ZSBvciBiZWxvdyB0aGUgMTZt
cyB0aHJlc2hvbGQgY291bGQgYWZmZWN0IGJlaGF2aW9yLiBGaXggYnkgZm9yY2luZworICAgICAg
ICBXZWJQYWdlIGludG8gInJlc3BvbnNpdmUiIG1vZGUgd2hpbGUgcnVubmluZyB0ZXN0cywgdmlh
IEluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFyZSgpLgorCisgICAgICAgIEFkZCBhIG51bGxhYmxl
IGludGVybmFscyBwcm9wZXJ0eSBzbyB0aGF0IGEgdGVzdCBjYW4gc3BlY2lmeSByZXNwb25zaXZl
LCB1bnJlc3BvbnNpdmUgb3IgZGVmYXVsdCBiZWhhdmlvci4KKworICAgICAgICBUZXN0czogZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtZGVmYXVsdC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1yZXNwb25zaXZlLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLXVucmVzcG9uc2l2ZS5o
dG1sCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmV2
ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZSk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRFdmVudFRocm90
dGxpbmdCZWhhdmlvck92ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZXZl
bnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTYtMTEtMTggIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMjA4ODM3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdhZTJiM2ZlMjAyYmJhNzZjMWI4ZmJkYmY1
ODI4ZTljZTVjNWUzOTEuLjRjMDA5ODJlZjBkMjI4NGUyMzhiMDE4ZDRjZGM0N2RiZWIwYmNkYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxNi0xMS0xOCAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBbaU9TIFdLMl0gRWxpbWluYXRlIGEg
c291cmNlIG9mIGZsYWtpbmVzcyBpbiBsYXlvdXQgdGVzdHMgYnkgZm9yY2luZyBXZWJQYWdlIGlu
dG8gInJlc3BvbnNpdmUiIG1vZGUgZm9yIGFsbCB0ZXN0cywgd2l0aCBhbiBpbnRlcm5hbHMgb3Zl
cnJpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NDk4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YlBhZ2U6OmV2ZW50VGhyb3R0bGluZ0RlbGF5KCkgdXNlcyBhIGxhdGVuY3kgZXN0aW1hdGUgYmFz
ZWQgb24gdGhlIHJvdW5kLXRyaXAgdGltZSBmcm9tIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIHRv
IGFmZmVjdCBiZWhhdmlvciwgaW5jbHVkaW5nIHdoZXRoZXIgc2Nyb2xsIGV2ZW50cyBhcmUgZmly
ZWQuIFRoaXMgYWxzbyBhZmZlY3RzIHRoZSBGcmFtZVZpZXcgInNjcm9sbGVkQnlVc2VyIgorICAg
ICAgICBmbGFnIHRoYXQgaW1wYWN0cyB0aWxlIGNvdmVyYWdlLgorCisgICAgICAgIER1cmluZyB0
ZXN0aW5nLCBsYXRlbmN5IGZhbGxpbmcgYWJvdmUgb3IgYmVsb3cgdGhlIDE2bXMgdGhyZXNob2xk
IGNvdWxkIGFmZmVjdCBiZWhhdmlvci4gRml4IGJ5IGZvcmNpbmcKKyAgICAgICAgV2ViUGFnZSBp
bnRvICJyZXNwb25zaXZlIiBtb2RlIHdoaWxlIHJ1bm5pbmcgdGVzdHMsIHZpYSBJbmplY3RlZEJ1
bmRsZVBhZ2U6OnByZXBhcmUoKS4KKworICAgICAgICBBZGQgYSBudWxsYWJsZSBpbnRlcm5hbHMg
cHJvcGVydHkgc28gdGhhdCBhIHRlc3QgY2FuIHNwZWNpZnkgcmVzcG9uc2l2ZSwgdW5yZXNwb25z
aXZlIG9yIGRlZmF1bHQgYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTZXRF
dmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmV2ZW50VGhyb3R0bGluZ0RlbGF5KToKKworMjAxNi0xMS0xOCAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW1vdmUgdXNlIG9mIHN0ZDo6Y2hy
b25vIGluIFdlYlBhZ2UgYW5kIGVudHJhaW5lZCBjb2RlCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ5NjcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA0MGYz
Y2JmMTBhYzI0ZTMzN2Q5YzliOTc3YWVjOTFkNTc2YjVhYTE5Li4yMDBhYjM5NmUzN2Y3OTY4NjRk
MGU0NjAyNGFjMWU4NWZiZjk4MGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTMwLDcgKzEzMCwxNSBA
QCBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogCiB0eXBlZGVmIHVpbnQ2NF90IExpbmtIYXNoOwog
Ci1lbnVtIEZpbmREaXJlY3Rpb24geyBGaW5kRGlyZWN0aW9uRm9yd2FyZCwgRmluZERpcmVjdGlv
bkJhY2t3YXJkIH07CitlbnVtIEZpbmREaXJlY3Rpb24geworICAgIEZpbmREaXJlY3Rpb25Gb3J3
YXJkLAorICAgIEZpbmREaXJlY3Rpb25CYWNrd2FyZAorfTsKKworZW51bSBjbGFzcyBFdmVudFRo
cm90dGxpbmdCZWhhdmlvciB7CisgICAgUmVzcG9uc2l2ZSwKKyAgICBVbnJlc3BvbnNpdmUKK307
CiAKIGNsYXNzIFBhZ2UgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8UGFnZT4gewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFBhZ2UpOwpAQCAtNTMzLDYgKzU0MSw5IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNl
Q2FjaGluZ0Rpc2FibGVkOyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChi
b29sIGRpc2FibGVkKSB7IG1fcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgPSBkaXNhYmxlZDsgfQog
CisgICAgT3B0aW9uYWw8RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I+IGV2ZW50VGhyb3R0bGluZ0Jl
aGF2aW9yT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50VGhyb3R0bGluZ0JlaGF2aW9y
T3ZlcnJpZGU7IH0KKyAgICB2b2lkIHNldEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUo
T3B0aW9uYWw8RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I+IHRocm90dGxpbmcpIHsgbV9ldmVudFRo
cm90dGxpbmdCZWhhdmlvck92ZXJyaWRlID0gdGhyb3R0bGluZzsgfQorCiBwcml2YXRlOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5pdEdyb3VwKCk7CiAKQEAgLTcyNCw2ICs3MzUsOSBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9jb250cm9sbGVkQnlBdXRvbWF0aW9uIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIFVzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24gbV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHsgVXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSIH07CisgICAgCisgICAgLy8gRm9yIHRlc3Rp
bmcuCisgICAgT3B0aW9uYWw8RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I+IG1fZXZlbnRUaHJvdHRs
aW5nQmVoYXZpb3JPdmVycmlkZTsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3Vw
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBlYzU2ZjJlYmZjNzQ4MTcy
YTQ0NjMwNTZlNDZjOTk1MmEyYjhlZjIzLi42OGI2NTc1MDk3OThjZDkxMjJlMjI5NzZmOWQ4NTM4
YmNmN2NhNTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC04NTQsNiAr
ODU0LDUxIEBAIGJvb2wgSW50ZXJuYWxzOjphcmVUaW1lcnNUaHJvdHRsZWQoKSBjb25zdAogICAg
IHJldHVybiBjb250ZXh0RG9jdW1lbnQoKS0+aXNUaW1lclRocm90dGxpbmdFbmFibGVkKCk7CiB9
CiAKKy8vIFRoZXNlIHNob3VsZCBtYXRjaCB0aGUgSURMLgorY29uc3QgdW5zaWduZWQgc2hvcnQg
RVZFTlRfVEhST1RUTElOR19CRUhBVklPUl9SRVNQT05TSVZFID0gMDsKK2NvbnN0IHVuc2lnbmVk
IHNob3J0IEVWRU5UX1RIUk9UVExJTkdfQkVIQVZJT1JfVU5SRVNQT05TSVZFID0gMTsKKwordm9p
ZCBJbnRlcm5hbHM6OnNldEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUoT3B0aW9uYWw8
dW5zaWduZWQgc2hvcnQ+IHZhbHVlKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRl
eHREb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgZG9jdW1lbnQtPnBh
Z2UoKS0+c2V0RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZShOdWxsb3B0KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHN3aXRjaCAodmFsdWUudmFsdWUoKSkgeworICAgIGNh
c2UgRVZFTlRfVEhST1RUTElOR19CRUhBVklPUl9SRVNQT05TSVZFOgorICAgICAgICBkb2N1bWVu
dC0+cGFnZSgpLT5zZXRFdmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKEV2ZW50VGhyb3R0
bGluZ0JlaGF2aW9yOjpSZXNwb25zaXZlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFVkVO
VF9USFJPVFRMSU5HX0JFSEFWSU9SX1VOUkVTUE9OU0lWRToKKyAgICAgICAgZG9jdW1lbnQtPnBh
Z2UoKS0+c2V0RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZShFdmVudFRocm90dGxpbmdC
ZWhhdmlvcjo6VW5yZXNwb25zaXZlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitPcHRp
b25hbDx1bnNpZ25lZCBzaG9ydD4gSW50ZXJuYWxzOjpldmVudFRocm90dGxpbmdCZWhhdmlvck92
ZXJyaWRlKCkgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1l
bnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQorICAgICAgICBy
ZXR1cm4gTnVsbG9wdDsKKworICAgIGF1dG8gYmVoYXZpb3IgPSBkb2N1bWVudC0+cGFnZSgpLT5l
dmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKCk7CisgICAgaWYgKCFiZWhhdmlvcikKKyAg
ICAgICAgcmV0dXJuIE51bGxvcHQ7CisgICAgCisgICAgc3dpdGNoIChiZWhhdmlvci52YWx1ZSgp
KSB7CisgICAgY2FzZSBFdmVudFRocm90dGxpbmdCZWhhdmlvcjo6UmVzcG9uc2l2ZToKKyAgICAg
ICAgcmV0dXJuIEVWRU5UX1RIUk9UVExJTkdfQkVIQVZJT1JfUkVTUE9OU0lWRTsKKyAgICBjYXNl
IEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yOjpVbnJlc3BvbnNpdmU6CisgICAgICAgIHJldHVybiBF
VkVOVF9USFJPVFRMSU5HX0JFSEFWSU9SX1VOUkVTUE9OU0lWRTsKKyAgICB9CisKKyAgICByZXR1
cm4gTnVsbG9wdDsKK30KKwogU3RyaW5nIEludGVybmFsczo6dmlzaWJsZVBsYWNlaG9sZGVyKEVs
ZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKGlzPEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
PihlbGVtZW50KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggOTQyMWNkNDIw
NTlhZmIyMjQ5ZDZjNzFjYWZhZjc2NzdmZmNmNTMwNS4uMGZhNmZlZWM5YzZhMjI2MDE0ZDY3Y2Q2
YTAwMjFlMDNmNzcyMzBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMjEs
NiArMTIxLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVUaHJv
dHRsZWQoKSBjb25zdDsKICAgICBib29sIGFyZVRpbWVyc1Rocm90dGxlZCgpIGNvbnN0OwogCisg
ICAgdm9pZCBzZXRFdmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKE9wdGlvbmFsPHVuc2ln
bmVkIHNob3J0Pik7CisgICAgT3B0aW9uYWw8dW5zaWduZWQgc2hvcnQ+IGV2ZW50VGhyb3R0bGlu
Z0JlaGF2aW9yT3ZlcnJpZGUoKSBjb25zdDsKKwogICAgIC8vIFNwYXRpYWwgTmF2aWdhdGlvbiB0
ZXN0aW5nLgogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiBsYXN0U3BhdGlhbE5hdmlnYXRpb25D
YW5kaWRhdGVDb3VudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggMjY2YjkxZTYzYWU3MGI1MWRmYTE0Zjk0MGE3MzBhZDU4YjRlMWFmZC4uNjA0NTE0MmVh
ZWEwOTM0ZjJkZWMwYTA2ZDRhZjJiOGFjZjVjNjBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtMzI3LDYgKzMyNywxMSBAQCBlbnVtIFVzZXJJbnRlcmZhY2VMYXlvdXRE
aXJlY3Rpb24gewogICAgIGJvb2xlYW4gaXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVUaHJvdHRsZWQo
KTsKICAgICBib29sZWFuIGFyZVRpbWVyc1Rocm90dGxlZCgpOwogCisgICAgLy8gT3ZlcnJpZGUg
dGhlIGJlaGF2aW9yIG9mIFdlYlBhZ2U6OmV2ZW50VGhyb3R0bGluZ0RlbGF5KCksIHdoaWNoIG9u
bHkgYWZmZWN0cyBpT1MuCisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRVZFTlRfVEhST1RUTElO
R19CRUhBVklPUl9SRVNQT05TSVZFID0gMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBFVkVO
VF9USFJPVFRMSU5HX0JFSEFWSU9SX1VOUkVTUE9OU0lWRSA9IDE7CisgICAgYXR0cmlidXRlIHVu
c2lnbmVkIHNob3J0PyBldmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlOworCiAgICAgW01h
eVRocm93RXhjZXB0aW9uXSB2b2lkIHN0YXJ0VHJhY2tpbmdTdHlsZVJlY2FsY3MoKTsKICAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgc3R5bGVSZWNhbGNDb3VudCgpOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxhc3RTdHlsZVVwZGF0ZVNpemU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXggOWM4Y2Q1ZDgxZWE0NTE3MzExNzkzN2E5
ZmVlNmQxMjUzOWFmM2Y0OC4uZDMyZGFkNmU3YjhlZmEwZDYxNzU4NGZiMTg5YTBkYWZkZDFmYzU5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNjkxLDMgKzY5MSwyMCBAQCBX
S0FycmF5UmVmIFdLQnVuZGxlUGFnZUNvcHlPcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UpCiAKICAgICByZXR1cm4gdG9BUEkoJkFQSTo6QXJyYXk6OmNyZWF0
ZShXVEZNb3ZlKG9yaWdpbklkZW50aWZpZXJzKSkubGVha1JlZigpKTsKIH0KKwordm9pZCBXS0J1
bmRsZVBhZ2VTZXRFdmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBFdmVudFRocm90dGxpbmdCZWhhdmlvciogYmVoYXZpb3IpCit7CisgICAgT3B0aW9u
YWw8V2ViQ29yZTo6RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I+IGJlaGF2aW9yVmFsdWU7CisgICAg
aWYgKGJlaGF2aW9yKSB7CisgICAgICAgIHN3aXRjaCAoKmJlaGF2aW9yKSB7CisgICAgICAgIGNh
c2UgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JSZXNwb25zaXZlOgorICAgICAgICAgICAgYmVoYXZp
b3JWYWx1ZSA9IFdlYkNvcmU6OkV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yOjpSZXNwb25zaXZlOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JV
bnJlc3BvbnNpdmU6CisgICAgICAgICAgICBiZWhhdmlvclZhbHVlID0gV2ViQ29yZTo6RXZlbnRU
aHJvdHRsaW5nQmVoYXZpb3I6OlVucmVzcG9uc2l2ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorCisgICAgdG9JbXBsKHBhZ2UpLT5jb3JlUGFnZSgpLT5zZXRFdmVudFRo
cm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKGJlaGF2aW9yVmFsdWUpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaAppbmRleCBhZjVmZjQwYzgwZTU4YWJmYjE0NWZmYzM3
ZGRiMTVjZjVmZDhiODg1Li40NzA0YjUyZjc5MjM0ZTQxYzk3NTZlNzJjMGFiMzdkZWI4OTViZjE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaApAQCAtMTExLDYgKzEx
MSwxMyBAQCBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBh
Z2VSZXNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdSZWYgb3JpZ2luKTsKIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxlUGFnZUNv
cHlPcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCitl
bnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKKyAgICBFdmVudFRocm90dGxpbmdCZWhhdmlv
clJlc3BvbnNpdmUsCisgICAgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JVbnJlc3BvbnNpdmUKK307
CisKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9y
T3ZlcnJpZGUoV0tCdW5kbGVQYWdlUmVmLCBFdmVudFRocm90dGxpbmdCZWhhdmlvciopOworCiAj
aWYgVEFSR0VUX09TX0lQSE9ORQogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0VXNlVGVz
dGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbihXS0J1bmRsZVBhZ2VSZWYsIGJvb2wpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KaW5kZXggNDA2YzBjZDlhMzcwYmNiNzQ1OTNhNjkyNzkwYzYyYTY4MDZjNDlkNS4uZjIy
ZDRlYTU4YjNjNDY5MDFjODhlNzU5MzI5NDFlODQ4OTNkZmFhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjEyNCw2
ICsyMTI0LDE2IEBAIHZvaWQgV2ViUGFnZTo6ZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNr
KGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIHVpbnQ2NF90CiAKIFNlY29uZHMgV2ViUGFnZTo6
ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSBjb25zdAogeworICAgIGF1dG8gYmVoYXZpb3JPdmVycmlk
ZSA9IG1fcGFnZS0+ZXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZSgpOworICAgIGlmIChi
ZWhhdmlvck92ZXJyaWRlKSB7CisgICAgICAgIHN3aXRjaCAoYmVoYXZpb3JPdmVycmlkZS52YWx1
ZSgpKSB7CisgICAgICAgIGNhc2UgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I6OlJlc3BvbnNpdmU6
CisgICAgICAgICAgICByZXR1cm4gU2Vjb25kcygwKTsKKyAgICAgICAgY2FzZSBFdmVudFRocm90
dGxpbmdCZWhhdmlvcjo6VW5yZXNwb25zaXZlOgorICAgICAgICAgICAgcmV0dXJuIFNlY29uZHMo
MSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAobV9pc0luU3RhYmxlU3RhdGUgfHwgbV9l
c3RpbWF0ZWRMYXRlbmN5IDw9IFNlY29uZHMoMS4wIC8gNjApKQogICAgICAgICByZXR1cm4gU2Vj
b25kcygwKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGZmNzE0YWZhNTU0YjE5MTI5OWU3YWI4NTVkYjQ2NjcyZGNhYmU1ZTguLjg4YWRlNzJm
NDU0YmJmNDE1YWU5MmE1YmY1NTQ0NmRkYjczNWM0ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0xMS0xOCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIFdL
Ml0gRWxpbWluYXRlIGEgc291cmNlIG9mIGZsYWtpbmVzcyBpbiBsYXlvdXQgdGVzdHMgYnkgZm9y
Y2luZyBXZWJQYWdlIGludG8gInJlc3BvbnNpdmUiIG1vZGUgZm9yIGFsbCB0ZXN0cywgd2l0aCBh
biBpbnRlcm5hbHMgb3ZlcnJpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NDk4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnByZXBhcmUp
OgorCiAyMDE2LTExLTE4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBWDogIihpbnZlcnRlZC1jb2xvcnMpIiBtZWRpYSBxdWVyeSBvbmx5IG1hdGNoZXMgb24gcGFn
ZSByZWxvYWQ7IHNob3VsZCBtYXRjaCBvbiBjaGFuZ2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApp
bmRleCAxODk5YThiM2EzZjRkN2MyYmNiNGY3ZjU5ODE1ZGZhODJhNjQwZjZmLi4zZTFjNzc4MDg5
MmVjN2RmNmNiNmVlZTE4NTE3NmU3OTFjYzY2Y2ZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
CkBAIC00MTQsNiArNDE0LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpwcmVwYXJlKCkK
ICAgICBXS0J1bmRsZUZyYW1lQ2xlYXJPcGVuZXIoV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKG1f
cGFnZSkpOwogICAgIAogICAgIFdLQnVuZGxlUGFnZVNldFRyYWNrc1JlcGFpbnRzKG1fcGFnZSwg
ZmFsc2UpOworICAgIAorICAgIC8vIEZvcmNlIGNvbnNpc3RlbnQgInJlc3BvbnNpdmUiIGJlaGF2
aW9yIGZvciBXZWJQYWdlOjpldmVudFRocm90dGxpbmdEZWxheSgpIGZvciB0ZXN0aW5nLiBUZXN0
cyBjYW4gb3ZlcnJpZGUgdmlhIGludGVybmFscy4KKyAgICBFdmVudFRocm90dGxpbmdCZWhhdmlv
ciBiZWhhdmlvciA9IEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yUmVzcG9uc2l2ZTsKKyAgICBXS0J1
bmRsZVBhZ2VTZXRFdmVudFRocm90dGxpbmdCZWhhdmlvck92ZXJyaWRlKG1fcGFnZSwgJmJlaGF2
aW9yKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnJlc2V0QWZ0ZXJUZXN0KCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmY2ZhYTA2ODE2NDYxZjU1OTIwNDJkYmYxOGM5NTdlMGM5MzFjYTZjLi42MmM1Y2NlMjM0
OTIwYjFkNmJmMDliODYxMTIwNGI5MDM2YTJjMDgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTYtMTEtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2lPUyBXSzJdIEVsaW1pbmF0ZSBhIHNvdXJjZSBvZiBmbGFraW5lc3MgaW4gbGF5b3V0IHRl
c3RzIGJ5IGZvcmNpbmcgV2ViUGFnZSBpbnRvICJyZXNwb25zaXZlIiBtb2RlIGZvciBhbGwgdGVz
dHMsIHdpdGggYW4gaW50ZXJuYWxzIG92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ5ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRz
LWRlZmF1bHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWV2ZW50cy1kZWZhdWx0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLXJlc3BvbnNpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1yZXNwb25zaXZlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLXVu
cmVzcG9uc2l2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtZXZlbnRzLXVucmVzcG9uc2l2ZS5odG1sOiBBZGRlZC4KKwogMjAxNi0xMS0x
OCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyMDg4MzcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1kZWZhdWx0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWRlZmF1bHQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMyY2ExY2UxYzRkNzFlNmJiOWRlYzk5MTFiMWNlZDQyN2ZiNzZhNWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50
cy1kZWZhdWx0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1MgcmVjZWl2ZWRTY3Jv
bGxFdmVudCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1ldmVudHMtZGVmYXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1ldmVudHMtZGVmYXVsdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNzEzZmEzNjUxNDRmMWEy
MmE5YjA4MDRhYWE1NjY2OGZkZDJkODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1kZWZhdWx0Lmh0bWwKQEAgLTAsMCArMSw1
MSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAg
ICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogMjAwMHB4OworICAgICAgICB9CisgICAg
PC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoKQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci5kaWRFbmRTY3JvbGxpbmdDYWxsYmFjayA9IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2Nyb2xsVG9P
ZmZzZXQoMCwgNTAwKTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAg
dmFyIHJlY2VpdmVkU2Nyb2xsRXZlbnQgPSBmYWxzZTsKKyAgICAgICAgZnVuY3Rpb24gc2Nyb2xs
ZWQoKQorICAgICAgICB7CisgICAgICAgICAgICByZWNlaXZlZFNjcm9sbEV2ZW50ID0gdHJ1ZTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICAvLyBUZXN0IGRlZmF1bHQgYmVoYXZpb3IgKHJlc3BvbnNpdmUp
LgorICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KCksIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgncmVjZWl2ZWRTY3JvbGxFdmVudCcsICd0cnVl
Jyk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25zY3JvbGw9InNjcm9sbGVkKCkiPgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMt
cmVzcG9uc2l2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWV2ZW50cy1yZXNwb25zaXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmNhMWNl
MWM0ZDcxZTZiYjlkZWM5OTExYjFjZWQ0MjdmYjc2YTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtcmVzcG9uc2l2ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHJlY2VpdmVkU2Nyb2xsRXZlbnQgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLXJl
c3BvbnNpdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZl
bnRzLXJlc3BvbnNpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODg5ODIyNWNiZmFkZjkzODEzZTI0MGU3
ZGRhOTNlMGE2OGNhMjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtcmVzcG9uc2l2ZS5odG1sCkBAIC0wLDAgKzEsNTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAg
Ym9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJu
YWxzLmV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUgPSBpbnRlcm5hbHMuRVZFTlRfVEhS
T1RUTElOR19CRUhBVklPUl9SRVNQT05TSVZFOworCisgICAgICAgIGZ1bmN0aW9uIGdldFVJU2Ny
aXB0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkRW5kU2Nyb2xsaW5nQ2Fs
bGJhY2sgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVp
U2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdWlD
b250cm9sbGVyLnNjcm9sbFRvT2Zmc2V0KDAsIDUwMCk7CisgICAgICAgICAgICB9KSgpO2AKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciByZWNlaXZlZFNjcm9sbEV2ZW50ID0gZmFsc2U7CisgICAg
ICAgIGZ1bmN0aW9uIHNjcm9sbGVkKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVjZWl2ZWRT
Y3JvbGxFdmVudCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8gVGVzdCBkZWZhdWx0IGJl
aGF2aW9yIChyZXNwb25zaXZlKS4KKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlw
dCgpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3JlY2VpdmVk
U2Nyb2xsRXZlbnQnLCAndHJ1ZScpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9uc2Nyb2xsPSJzY3JvbGxlZCgpIj4KKworICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtZXZlbnRzLXVucmVzcG9uc2l2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy11bnJlc3BvbnNpdmUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVjMjdiYTJkNmM5OTI2YjIzNWViODJhMWNjNThjNDVjMDI5NTJiOWQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWV2ZW50cy11bnJlc3BvbnNpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBy
ZWNlaXZlZFNjcm9sbEV2ZW50IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtdW5yZXNwb25zaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy11bnJlc3BvbnNpdmUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMzYwOTAyZTUxYzEzMTY1OTFmMGY3MzRjNThkMzBjNmU4YTU2ODFjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtdW5y
ZXNwb25zaXZlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1s
PgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdo
dDogMjAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0Pgor
ICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuZXZlbnRUaHJvdHRsaW5nQmVoYXZp
b3JPdmVycmlkZSA9IGludGVybmFscy5FVkVOVF9USFJPVFRMSU5HX0JFSEFWSU9SX1VOUkVTUE9O
U0lWRTsKKworICAgICAgICBmdW5jdGlvbiBnZXRVSVNjcmlwdCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdWlDb250cm9sbGVyLmRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5zY3JvbGxUb09mZnNl
dCgwLCA1MDApOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICB2YXIg
cmVjZWl2ZWRTY3JvbGxFdmVudCA9IGZhbHNlOworICAgICAgICBmdW5jdGlvbiBzY3JvbGxlZCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJlY2VpdmVkU2Nyb2xsRXZlbnQgPSB0cnVlOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KSB7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgpLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3JlY2VpdmVkU2Nyb2xsRXZlbnQnLCAnZmFs
c2UnKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbnNjcm9sbD0ic2Nyb2xsZWQoKSI+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>
<flag name="review"
          id="317861"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>