<?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>123830</bug_id>
          
          <creation_ts>2013-11-05 14:32:17 -0800</creation_ts>
          <short_desc>window.atob() does not remove space characters from input</short_desc>
          <delta_ts>2014-09-09 09:45:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#dom-windowbase64-atob</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>947361</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-11-05 14:32:17 -0800</bug_when>
    <thetext>window.atob() does not remove space characters from input as mandated by the specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#dom-windowbase64-atob (Step 3)

As a result, base64 decoding will fail if the input string contains HTML space characters [1].

This is covered by the following test suite:
http://www.w3c-test.org/html/tests/submission/AryehGregor/base64.html

Our behavior is consistent with other browsers (Tested Blink, latest Firefox and IE10) so I initially tried to get the specification changed:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=22731

However, the feedback on that bug is that we &quot;should improve the implementation in browser as this change was made on purpose and it&apos;s common to have white space in base64 data&quot;.

[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#space-character

I am pushing the same change to Blink:
https://codereview.chromium.org/58143002/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947372</commentid>
    <comment_count>1</comment_count>
      <attachid>216084</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-11-05 14:53:24 -0800</bug_when>
    <thetext>Created attachment 216084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947768</commentid>
    <comment_count>2</comment_count>
      <attachid>216084</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-06 10:21:53 -0800</bug_when>
    <thetext>Comment on attachment 216084
Patch

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

&gt; Source/WTF/ChangeLog:14
&gt; +        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#space-character

I posted some pushback to &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=22731&gt; that you filed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947770</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-11-06 10:23:52 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 216084 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216084&amp;action=review
&gt; 
&gt; &gt; Source/WTF/ChangeLog:14
&gt; &gt; +        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#space-character
&gt; 
&gt; I posted some pushback to &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=22731&gt; that you filed.

I saw, thanks. Let&apos;s see how it goes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022035</commentid>
    <comment_count>4</comment_count>
      <attachid>216084</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-12 17:19:50 -0700</bug_when>
    <thetext>Comment on attachment 216084
Patch

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

&gt;&gt;&gt; Source/WTF/ChangeLog:14
&gt;&gt;&gt; +        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#space-character
&gt;&gt; 
&gt;&gt; I posted some pushback to &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=22731&gt; that you filed.
&gt; 
&gt; I saw, thanks. Let&apos;s see how it goes.

Alexey, do you think this is resolved yet? I’d like to land or review- this patch!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216084</attachid>
            <date>2013-11-05 14:53:24 -0800</date>
            <delta_ts>2014-09-09 09:44:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123830-20131105175309.patch</filename>
            <type>text/plain</type>
            <size>25443</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4Njg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRlMmFlYWRkMWM0YmM1ZTk0NDBkYjMw
OWJjYWMyMDE5MTJkMzBkZDQuLjNmNDBlMmQ4MWYyOWIwYjE5NTJmODAxM2RiZjQ0ZWMxZGYwNjNl
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTMtMTEtMDUgIENocmlzdG9waGUgRHVtZXogIDxj
aC5kdW1lekBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aW5kb3cuYXRvYigpIGRvZXMgbm90IHJl
bW92ZSBzcGFjZSBjaGFyYWN0ZXJzIGZyb20gaW5wdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzgzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZCB0aGUgYmFzZTY0RGVjb2RlKCkgQVBJIHRv
IG1hdGNoIHRoZSBuZWVkcyBvZiB3aW5kb3cuYXRvYigpLgorICAgICAgICBiYXNlNjREZWNvZGUo
KSAvIGJhc2U2NFVSTEVuY29kZSgpIG5vdyB0YWtlcyBhIHNob3VsZElnbm9yZUNoYXJhY3Rlcgor
ICAgICAgICBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50LiBJZiBzcGVjaWZpZWQsIHRoaXMgd2ls
bCBiZSBjYWxsZWQgdG8gY2hlY2sKKyAgICAgICAgaW4gYW4gaW52YWxpZCBpbnB1dCBjaGFyYWN0
ZXIgc2hvdWxkIGJlIGlnbm9yZWQgb3Igbm90LiBUaGlzIGFsbG93cworICAgICAgICBmb3IgbW9y
ZSBmbGV4aWJpbGl0eSBhbmQgd2luZG93LmF0b2IoKSBjYW4gbm93IGlnbm9yZSBIVE1MIHNwYWNl
cworICAgICAgICBhcyBkZWZpbmVkIGJ5OgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9jb21tb24tbWljcm9zeW50YXhl
cy5odG1sI3NwYWNlLWNoYXJhY3RlcgorCisgICAgICAgIFRoZSBCYXNlNjREZWNvZGVQb2xpY3kg
ZW51bWVyYXRpb24gd2FzIGFsc28gdXBkYXRlZCB0byBjb250YWluIG9ubHkKKyAgICAgICAgcGFk
ZGluZyB2YWxpZGF0aW9uIHBvbGljeSB2YWx1ZXMgc2luY2UgdGhlIG90aGVycyBjYW4gYmUgaGFu
ZGxlZCBieQorICAgICAgICBwcm92aWRpbmcgYW4gYWRlcXVhdGUgc2hvdWxkSWdub3JlQ2hhcmFj
dGVyIGZ1bmN0aW9uIHBvaW50ZXIgKG9yCisgICAgICAgIG51bGwgdG8gZmFpbCBvbiBpbnZhbGlk
IGNoYXJhY3RlcnMpLgorCisgICAgICAgICogd3RmL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAg
KFdURjo6YmFzZTY0RGVjb2RlSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjpiYXNlNjREZWNvZGUp
OgorICAgICAgICAoV1RGOjpiYXNlNjRVUkxEZWNvZGUpOgorICAgICAgICAqIHd0Zi90ZXh0L0Jh
c2U2NC5oOgorCiAyMDEzLTExLTA0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgogCiAgICAgICAgIEltcGxlbWVudCBiYXNlNjR1cmwgZW5jb2RpbmcgZnJvbSBSRkMgNDY0OApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGVmMGYxYzY0ZDY5YmYyODZlNzY5Y2Y5NGJmZGUwNmVkZjkxNDM3NTYuLmZl
OTUyYjFkYzE3NmRjOWM3ZTE3MWUzYjg1NTg2ZDg3NGUwY2ZhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxMy0xMS0wNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNhbXN1
bmcuY29tPgorCisgICAgICAgIHdpbmRvdy5hdG9iKCkgZG9lcyBub3QgcmVtb3ZlIHNwYWNlIGNo
YXJhY3RlcnMgZnJvbSBpbnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIzODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBuZXcgY2hlY2tzIGFkZGVkIHRvIGZhc3QvZG9tL1dp
bmRvdy9hdG9iLWJ0b2EuaHRtbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YXRvYik6CisgICAgICAgIFVwZGF0ZSBjYWxsIHRv
IFdURjo6YmFzZTY0RGVjb2RlKCkgZHVlIHRvIHRoZSBBUEkgY2hhbmdlIGFuZCB0bworICAgICAg
ICBpZ25vcmUgSFRNTCBzcGFjZXMgaW4gdGhlIGVuY29kZWQgaW5wdXQgc3RyaW5nLCBhcyBwZXIg
c3RlcCAzCisgICAgICAgIGluIHRoZSBzcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vd3d3
LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS93ZWJhcHBh
cGlzLmh0bWwjZG9tLXdpbmRvd2Jhc2U2NC1hdG9iCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ugd2Fz
IGRpc2N1c3NlZCBvbjoKKyAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3No
b3dfYnVnLmNnaT9pZD0yMjczMQorCisgICAgICAgIFdlIG5vdyBoYXZlIDEwMCUgcGFzcyByYXRl
IG9uIHRoZSBmb2xsb3dpbmcgdGVzdDoKKyAgICAgICAgaHR0cDovL3d3dy53M2MtdGVzdC5vcmcv
aHRtbC90ZXN0cy9zdWJtaXNzaW9uL0FyeWVoR3JlZ29yL2Jhc2U2NC5odG1sCisKKyAgICAgICAg
KiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRM
b2NhdGlvbkNoYW5nZWQpOgorICAgICAgICBVcGRhdGUgY2FsbCB0byBXVEY6OmJhc2U2NERlY29k
ZSgpIGR1ZSB0byB0aGUgQVBJIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
RGF0YVVSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVEYXRhVVJMKToKKyAgICAgICAg
VXBkYXRlIGNhbGwgdG8gV1RGOjpiYXNlNjREZWNvZGUoKSBkdWUgdG8gdGhlIEFQSSBjaGFuZ2Uu
CisKIDIwMTMtMTEtMDUgIFJlbmF0YSBIb2RvdmFuICA8cmVuaUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFTU0VSVElPTiBGQUlMRUQ6IGlzSFRNTFRpdGxlRWxlbWVudChtX3RpdGxlRWxlbWVudC5n
ZXQoKSkgaW4gV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFRpdGxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
ZjA3NTA0M2IyNWY4N2ZiOTI4N2I0YjRhM2IwMDk2MTY1OWYzYzc1Ni4uOWFjNjkzOWQ2NWMzOTg0
YTFlNTVjYjg3NTk5YjA0MTIwNzI2NjQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEzLTExLTA1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgd2luZG93LmF0b2IoKSBkb2VzIG5vdCByZW1vdmUgc3BhY2UgY2hhcmFjdGVy
cyBmcm9tIGlucHV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjM4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgY2FsbCB0byBXVEY6OmJhc2U2NERlY29kZSgpIGR1ZSB0byB0aGUgQVBJIGNo
YW5nZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToK
KyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzYXZlKToKKwogMjAxMy0xMS0w
NCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEdW1wUmVu
ZGVyVHJlZSBzaG91bGQgcmVzZXQgaXRzIHByZWZlcmVuY2VzIGZpbGUgb24gbGF1bmNoCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZjU5NjljOTY5Mzk4ZGYwZjE2MDBmNDhkZjJiMzMzMzJkN2IxODgyZC4uMWMyYWE4
NzZiZTBhM2ZmMTZhZjA2Y2E1Y2UzY2JlYWFhMWE2ZDEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEzLTExLTA1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgd2luZG93LmF0b2IoKSBkb2VzIG5vdCByZW1vdmUgc3BhY2UgY2hhcmFj
dGVycyBmcm9tIGlucHV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjM4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGUgY2FsbCB0byBXVEY6OmJhc2U2NERlY29kZSgpIGR1ZSB0byB0aGUgQVBJ
IGNoYW5nZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUpOgor
CiAyMDEzLTExLTA1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgRW5jb2RlIHRoZSBjbGFzcyBuYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0Jhc2U2NC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jhc2U2NC5jcHAKaW5kZXggNmZl
MjM5ZjIyZTdmMGNjNDRmZDk2NDZmZDAzN2Y3YTk5NThhZWZiMi4uZDM1ZjIwN2ViNjI1NmYxN2Zk
NzEyY2M5MDQ2YzQzNjBiNTFiZmRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9C
YXNlNjQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQmFzZTY0LmNwcApAQCAtMTc2LDcg
KzE3Niw3IEBAIHZvaWQgYmFzZTY0VVJMRW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVk
IGxlbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NEVuCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+Ci1zdGF0aWMgaW5saW5lIGJvb2wgYmFzZTY0RGVjb2RlSW50ZXJuYWwoY29uc3QgVCogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5
IHBvbGljeSwgY29uc3QgY2hhciogZGVjb2RlTWFwKQorc3RhdGljIGlubGluZSBib29sIGJhc2U2
NERlY29kZUludGVybmFsKGNvbnN0IFQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgVmVjdG9yPGNo
YXI+JiBvdXQsIENoYXJhY3Rlck1hdGNoRnVuY3Rpb25QdHIgc2hvdWxkSWdub3JlQ2hhcmFjdGVy
LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5LCBjb25zdCBjaGFyKiBkZWNvZGVNYXApCiB7CiAg
ICAgb3V0LmNsZWFyKCk7CiAgICAgaWYgKCFsZW5ndGgpCkBAIC0xOTAsMjIgKzE5MCwyNSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgYmFzZTY0RGVjb2RlSW50ZXJuYWwoY29uc3QgVCogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoLCBWZWN0b3I8YwogICAgICAgICB1bnNpZ25lZCBjaCA9IGRhdGFbaWR4XTsK
ICAgICAgICAgaWYgKGNoID09ICc9JykgewogICAgICAgICAgICAgKytlcXVhbHNTaWduQ291bnQ7
Ci0gICAgICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gcGFkZGluZyBpZiBsZW5ndGggaXMg
YSBtdWx0aXBsZSBvZiA0LCBhbmQgdGhlcmUKLSAgICAgICAgICAgIC8vIHNob3VsZCBuZXZlciBi
ZSBtb3JlIHRoYW4gMiBwYWRkaW5nIGNoYXJhY3RlcnMuCi0gICAgICAgICAgICBpZiAocG9saWN5
ID09IEJhc2U2NEZhaWxPbkludmFsaWRDaGFyYWN0ZXJPckV4Y2Vzc1BhZGRpbmcgJiYgKGxlbmd0
aCAlIDQgfHwgZXF1YWxzU2lnbkNvdW50ID4gMikpCisgICAgICAgICAgICAvLyBUaGVyZSBzaG91
bGQgbmV2ZXIgYmUgbW9yZSB0aGFuIDIgcGFkZGluZyBjaGFyYWN0ZXJzLgorICAgICAgICAgICAg
aWYgKHBvbGljeSA9PSBCYXNlNjRWYWxpZGF0ZVBhZGRpbmcgJiYgZXF1YWxzU2lnbkNvdW50ID4g
MikKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0gZWxzZSBpZiAoKCcw
JyA8PSBjaCAmJiBjaCA8PSAnOScpIHx8ICgnQScgPD0gY2ggJiYgY2ggPD0gJ1onKSB8fCAoJ2En
IDw9IGNoICYmIGNoIDw9ICd6JykgfHwgY2ggPT0gJysnIHx8IGNoID09ICcvJykgewogICAgICAg
ICAgICAgaWYgKGVxdWFsc1NpZ25Db3VudCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICBvdXRbb3V0TGVuZ3RoXSA9IGRlY29kZU1hcFtjaF07Ci0gICAgICAgICAg
ICArK291dExlbmd0aDsKLSAgICAgICAgfSBlbHNlIGlmIChwb2xpY3kgPT0gQmFzZTY0RmFpbE9u
SW52YWxpZENoYXJhY3Rlck9yRXhjZXNzUGFkZGluZyB8fCBwb2xpY3kgPT0gQmFzZTY0RmFpbE9u
SW52YWxpZENoYXJhY3RlciB8fCAocG9saWN5ID09IEJhc2U2NElnbm9yZVdoaXRlc3BhY2UgJiYg
IWlzU3BhY2VPck5ld2xpbmUoY2gpKSkKKyAgICAgICAgICAgIG91dFtvdXRMZW5ndGgrK10gPSBk
ZWNvZGVNYXBbY2hdOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRJZ25vcmVDaGFyYWN0ZXIg
fHwgIXNob3VsZElnbm9yZUNoYXJhY3RlcihjaCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCiAgICAgaWYgKCFvdXRMZW5ndGgpCiAgICAgICAgIHJldHVybiAhZXF1YWxzU2ln
bkNvdW50OwogCisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIHBhZGRpbmcgaWYgbGVuZ3RoIGlz
IGEgbXVsdGlwbGUgb2YgNC4KKyAgICAvLyBXZSB1c2UgKG91dExlbmd0aCArIGVxdWFsc1NpZ25D
b3VudCkgaW5zdGVhZCBvZiBsZW5ndGggYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIGFjY291bnQg
Zm9yIGlnbm9yZWQgY2hhcmFjdGVycy4KKyAgICBpZiAocG9saWN5ID09IEJhc2U2NFZhbGlkYXRl
UGFkZGluZyAmJiBlcXVhbHNTaWduQ291bnQgJiYgKG91dExlbmd0aCArIGVxdWFsc1NpZ25Db3Vu
dCkgJSA0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAvLyBWYWxpZCBkYXRhIGlzIChu
ICogNCArIFswLDIsM10pIGNoYXJhY3RlcnMgbG9uZy4KICAgICBpZiAoKG91dExlbmd0aCAlIDQp
ID09IDEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIzOSwxMiArMjQyLDEyIEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbChjb25zdCBUKiBkYXRhLCB1bnNpZ25l
ZCBsZW5ndGgsIFZlY3RvcjxjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgYmFzZTY0RGVj
b2RlKGNvbnN0IFN0cmluZyYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xp
Y3kgcG9saWN5KQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5nJiBpbiwgVmVjdG9yPGNo
YXI+JiBvdXQsIENoYXJhY3Rlck1hdGNoRnVuY3Rpb25QdHIgc2hvdWxkSWdub3JlQ2hhcmFjdGVy
LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQogewotICAgIHJldHVybiBiYXNlNjREZWNvZGVJ
bnRlcm5hbDxVQ2hhcj4oaW4uY2hhcmFjdGVycygpLCBpbi5sZW5ndGgoKSwgb3V0LCBwb2xpY3ks
IGJhc2U2NERlY01hcCk7CisgICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPFVDaGFyPihp
bi5jaGFyYWN0ZXJzKCksIGluLmxlbmd0aCgpLCBvdXQsIHNob3VsZElnbm9yZUNoYXJhY3Rlciwg
cG9saWN5LCBiYXNlNjREZWNNYXApOwogfQogCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0
b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGlj
eSkKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFy
PiYgb3V0LCBDaGFyYWN0ZXJNYXRjaEZ1bmN0aW9uUHRyIHNob3VsZElnbm9yZUNoYXJhY3Rlciwg
QmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKIHsKICAgICBvdXQuY2xlYXIoKTsKIApAQCAtMjUy
LDIwICsyNTUsMjAgQEAgYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwg
VmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeQogICAgIGlmIChpbi5zaXplKCkg
PiBVSU5UX01BWCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGJhc2U2NERl
Y29kZUludGVybmFsPGNoYXI+KGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQsIHBvbGljeSwgYmFz
ZTY0RGVjTWFwKTsKKyAgICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJuYWw8Y2hhcj4oaW4uZGF0
YSgpLCBpbi5zaXplKCksIG91dCwgc2hvdWxkSWdub3JlQ2hhcmFjdGVyLCBwb2xpY3ksIGJhc2U2
NERlY01hcCk7CiB9CiAKLWJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2ln
bmVkIGxlbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCiti
b29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3Rvcjxj
aGFyPiYgb3V0LCBDaGFyYWN0ZXJNYXRjaEZ1bmN0aW9uUHRyIHNob3VsZElnbm9yZUNoYXJhY3Rl
ciwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKIHsKLSAgICByZXR1cm4gYmFzZTY0RGVjb2Rl
SW50ZXJuYWw8Y2hhcj4oZGF0YSwgbGVuLCBvdXQsIHBvbGljeSwgYmFzZTY0RGVjTWFwKTsKKyAg
ICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJuYWw8Y2hhcj4oZGF0YSwgbGVuLCBvdXQsIHNob3Vs
ZElnbm9yZUNoYXJhY3RlciwgcG9saWN5LCBiYXNlNjREZWNNYXApOwogfQogCi1ib29sIGJhc2U2
NFVSTERlY29kZShjb25zdCBTdHJpbmcmIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVj
b2RlUG9saWN5IHBvbGljeSkKK2Jvb2wgYmFzZTY0VVJMRGVjb2RlKGNvbnN0IFN0cmluZyYgaW4s
IFZlY3RvcjxjaGFyPiYgb3V0LCBDaGFyYWN0ZXJNYXRjaEZ1bmN0aW9uUHRyIHNob3VsZElnbm9y
ZUNoYXJhY3RlciwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKIHsKLSAgICByZXR1cm4gYmFz
ZTY0RGVjb2RlSW50ZXJuYWw8VUNoYXI+KGluLmNoYXJhY3RlcnMoKSwgaW4ubGVuZ3RoKCksIG91
dCwgcG9saWN5LCBiYXNlNjRVUkxEZWNNYXApOworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRl
cm5hbDxVQ2hhcj4oaW4uY2hhcmFjdGVycygpLCBpbi5sZW5ndGgoKSwgb3V0LCBzaG91bGRJZ25v
cmVDaGFyYWN0ZXIsIHBvbGljeSwgYmFzZTY0VVJMRGVjTWFwKTsKIH0KIAotYm9vbCBiYXNlNjRV
UkxEZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2
NERlY29kZVBvbGljeSBwb2xpY3kpCitib29sIGJhc2U2NFVSTERlY29kZShjb25zdCBWZWN0b3I8
Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgQ2hhcmFjdGVyTWF0Y2hGdW5jdGlvblB0ciBz
aG91bGRJZ25vcmVDaGFyYWN0ZXIsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCiB7CiAgICAg
b3V0LmNsZWFyKCk7CiAKQEAgLTI3MywxMiArMjc2LDEyIEBAIGJvb2wgYmFzZTY0VVJMRGVjb2Rl
KGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQ
b2xpCiAgICAgaWYgKGluLnNpemUoKSA+IFVJTlRfTUFYKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJuYWw8Y2hhcj4oaW4uZGF0YSgpLCBpbi5z
aXplKCksIG91dCwgcG9saWN5LCBiYXNlNjRVUkxEZWNNYXApOworICAgIHJldHVybiBiYXNlNjRE
ZWNvZGVJbnRlcm5hbDxjaGFyPihpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0LCBzaG91bGRJZ25v
cmVDaGFyYWN0ZXIsIHBvbGljeSwgYmFzZTY0VVJMRGVjTWFwKTsKIH0KIAotYm9vbCBiYXNlNjRV
UkxEZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8Y2hhcj4mIG91
dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKK2Jvb2wgYmFzZTY0VVJMRGVjb2RlKGNvbnN0
IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbiwgVmVjdG9yPGNoYXI+JiBvdXQsIENoYXJhY3Rlck1h
dGNoRnVuY3Rpb25QdHIgc2hvdWxkSWdub3JlQ2hhcmFjdGVyLCBCYXNlNjREZWNvZGVQb2xpY3kg
cG9saWN5KQogewotICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxjaGFyPihkYXRhLCBs
ZW4sIG91dCwgcG9saWN5LCBiYXNlNjRVUkxEZWNNYXApOworICAgIHJldHVybiBiYXNlNjREZWNv
ZGVJbnRlcm5hbDxjaGFyPihkYXRhLCBsZW4sIG91dCwgc2hvdWxkSWdub3JlQ2hhcmFjdGVyLCBw
b2xpY3ksIGJhc2U2NFVSTERlY01hcCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CYXNlNjQuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QmFzZTY0LmgKaW5kZXggNmNmNDFmZDY4MDJhNGNkOTMwNDJjOGVmZTFlYWI4Y2JhYjk2Y2FjOS4u
YTcxMWZiZWVlNzdmMjdlNmU5OWUyZjhhYWJiODYyMzg4YTFiODc0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9CYXNlNjQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jhc2U2
NC5oCkBAIC0zOSwxMCArMzksOCBAQCBlbnVtIEJhc2U2NEVuY29kZVBvbGljeSB7CiB9OwogCiBl
bnVtIEJhc2U2NERlY29kZVBvbGljeSB7Ci0gICAgQmFzZTY0RmFpbE9uSW52YWxpZENoYXJhY3Rl
ck9yRXhjZXNzUGFkZGluZywKLSAgICBCYXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyLAotICAg
IEJhc2U2NElnbm9yZVdoaXRlc3BhY2UsCi0gICAgQmFzZTY0SWdub3JlSW52YWxpZENoYXJhY3Rl
cnMKKyAgICBCYXNlNjREb05vdFZhbGlkYXRlUGFkZGluZywKKyAgICBCYXNlNjRWYWxpZGF0ZVBh
ZGRpbmcKIH07CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBj
aGFyKiwgdW5zaWduZWQsIFZlY3RvcjxjaGFyPiYsIEJhc2U2NEVuY29kZVBvbGljeSA9IEJhc2U2
NERvTm90SW5zZXJ0TEZzKTsKQEAgLTUyLDkgKzUwLDkgQEAgV1RGX0VYUE9SVF9QUklWQVRFIFN0
cmluZyBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBCYXNlNjRFbmNvZGVQb2xp
Y3kKIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgYmFzZTY0RW5jb2RlKGNvbnN0IFZlY3Rvcjxj
aGFyPiYsIEJhc2U2NEVuY29kZVBvbGljeSA9IEJhc2U2NERvTm90SW5zZXJ0TEZzKTsKIFdURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcgYmFzZTY0RW5jb2RlKGNvbnN0IENTdHJpbmcmLCBCYXNlNjRF
bmNvZGVQb2xpY3kgPSBCYXNlNjREb05vdEluc2VydExGcyk7CiAKLVdURl9FWFBPUlRfUFJJVkFU
RSBib29sIGJhc2U2NERlY29kZShjb25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjRE
ZWNvZGVQb2xpY3kgPSBCYXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKLVdURl9FWFBPUlRf
UFJJVkFURSBib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hh
cj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBCYXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsK
LVdURl9FWFBPUlRfUFJJVkFURSBib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiwgdW5zaWdu
ZWQsIFZlY3RvcjxjaGFyPiYsIEJhc2U2NERlY29kZVBvbGljeSA9IEJhc2U2NEZhaWxPbkludmFs
aWRDaGFyYWN0ZXIpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0
IFN0cmluZyYsIFZlY3RvcjxjaGFyPiYsIENoYXJhY3Rlck1hdGNoRnVuY3Rpb25QdHIgc2hvdWxk
SWdub3JlQ2hhcmFjdGVyID0gMCwgQmFzZTY0RGVjb2RlUG9saWN5ID0gQmFzZTY0RG9Ob3RWYWxp
ZGF0ZVBhZGRpbmcpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0
IFZlY3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIENoYXJhY3Rlck1hdGNoRnVuY3Rpb25QdHIg
c2hvdWxkSWdub3JlQ2hhcmFjdGVyID0gMCwgQmFzZTY0RGVjb2RlUG9saWN5ID0gQmFzZTY0RG9O
b3RWYWxpZGF0ZVBhZGRpbmcpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYmFzZTY0RGVjb2Rl
KGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+JiwgQ2hhcmFjdGVyTWF0Y2hGdW5j
dGlvblB0ciBzaG91bGRJZ25vcmVDaGFyYWN0ZXIgPSAwLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBC
YXNlNjREb05vdFZhbGlkYXRlUGFkZGluZyk7CiAKIGlubGluZSB2b2lkIGJhc2U2NEVuY29kZShj
b25zdCBWZWN0b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RW5jb2RlUG9s
aWN5IHBvbGljeSkKIHsKQEAgLTg4LDkgKzg2LDkgQEAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmlu
ZyBiYXNlNjRVUkxFbmNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBCYXNlNjRFbmNvZGVQb2wK
IFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgYmFzZTY0VVJMRW5jb2RlKGNvbnN0IFZlY3Rvcjxj
aGFyPiYsIEJhc2U2NEVuY29kZVBvbGljeSA9IEJhc2U2NERvTm90SW5zZXJ0TEZzKTsKIFdURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcgYmFzZTY0VVJMRW5jb2RlKGNvbnN0IENTdHJpbmcmLCBCYXNl
NjRFbmNvZGVQb2xpY3kgPSBCYXNlNjREb05vdEluc2VydExGcyk7CiAKLVdURl9FWFBPUlRfUFJJ
VkFURSBib29sIGJhc2U2NFVSTERlY29kZShjb25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4mLCBC
YXNlNjREZWNvZGVQb2xpY3kgPSBCYXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKLVdURl9F
WFBPUlRfUFJJVkFURSBib29sIGJhc2U2NFVSTERlY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mLCBW
ZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBCYXNlNjRGYWlsT25JbnZhbGlkQ2hh
cmFjdGVyKTsKLVdURl9FWFBPUlRfUFJJVkFURSBib29sIGJhc2U2NFVSTERlY29kZShjb25zdCBj
aGFyKiwgdW5zaWduZWQsIFZlY3RvcjxjaGFyPiYsIEJhc2U2NERlY29kZVBvbGljeSA9IEJhc2U2
NEZhaWxPbkludmFsaWRDaGFyYWN0ZXIpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYmFzZTY0
VVJMRGVjb2RlKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxjaGFyPiYsIENoYXJhY3Rlck1hdGNoRnVu
Y3Rpb25QdHIgc2hvdWxkSWdub3JlQ2hhcmFjdGVyID0gMCwgQmFzZTY0RGVjb2RlUG9saWN5ID0g
QmFzZTY0RG9Ob3RWYWxpZGF0ZVBhZGRpbmcpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYmFz
ZTY0VVJMRGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIENoYXJhY3Rl
ck1hdGNoRnVuY3Rpb25QdHIgc2hvdWxkSWdub3JlQ2hhcmFjdGVyID0gMCwgQmFzZTY0RGVjb2Rl
UG9saWN5ID0gQmFzZTY0RG9Ob3RWYWxpZGF0ZVBhZGRpbmcpOworV1RGX0VYUE9SVF9QUklWQVRF
IGJvb2wgYmFzZTY0VVJMRGVjb2RlKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+
JiwgQ2hhcmFjdGVyTWF0Y2hGdW5jdGlvblB0ciBzaG91bGRJZ25vcmVDaGFyYWN0ZXIgPSAwLCBC
YXNlNjREZWNvZGVQb2xpY3kgPSBCYXNlNjREb05vdFZhbGlkYXRlUGFkZGluZyk7CiAKIGlubGlu
ZSB2b2lkIGJhc2U2NFVSTEVuY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hh
cj4mIG91dCwgQmFzZTY0RW5jb2RlUG9saWN5IHBvbGljeSkKIHsKQEAgLTExOCwxMCArMTE2LDgg
QEAgdXNpbmcgV1RGOjpCYXNlNjRFbmNvZGVQb2xpY3k7CiB1c2luZyBXVEY6OkJhc2U2NERvTm90
SW5zZXJ0TEZzOwogdXNpbmcgV1RGOjpCYXNlNjRJbnNlcnRMRnM7CiB1c2luZyBXVEY6OkJhc2U2
NERlY29kZVBvbGljeTsKLXVzaW5nIFdURjo6QmFzZTY0RmFpbE9uSW52YWxpZENoYXJhY3Rlck9y
RXhjZXNzUGFkZGluZzsKLXVzaW5nIFdURjo6QmFzZTY0RmFpbE9uSW52YWxpZENoYXJhY3RlcjsK
LXVzaW5nIFdURjo6QmFzZTY0SWdub3JlV2hpdGVzcGFjZTsKLXVzaW5nIFdURjo6QmFzZTY0SWdu
b3JlSW52YWxpZENoYXJhY3RlcnM7Cit1c2luZyBXVEY6OkJhc2U2NERvTm90VmFsaWRhdGVQYWRk
aW5nOwordXNpbmcgV1RGOjpCYXNlNjRWYWxpZGF0ZVBhZGRpbmc7CiB1c2luZyBXVEY6OmJhc2U2
NEVuY29kZTsKIHVzaW5nIFdURjo6YmFzZTY0RGVjb2RlOwogdXNpbmcgV1RGOjpiYXNlNjRVUkxE
ZWNvZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggMDY0ZDJhNGVmNjllYWViNDhh
MzFhNzM3ZWMzMmZjMTg1YjQ0ZDRiZC4uZWVhNmMwZGRjNDI0NGU4M2M0ODhlZmY1ZmNjN2Y1ZjJl
ZmZiODFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNjcsNiArNjcsNyBAQAog
I2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUg
IkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiVVJMLmgiCkBAIC0xMDgzLDcgKzEwODQsNyBAQCBTdHJpbmcgRE9NV2lu
ZG93OjphdG9iKGNvbnN0IFN0cmluZyYgZW5jb2RlZFN0cmluZywgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgfQogCiAgICAgVmVjdG9yPGNoYXI+IG91dDsKLSAgICBpZiAoIWJhc2U2NERlY29kZShl
bmNvZGVkU3RyaW5nLCBvdXQsIEJhc2U2NEZhaWxPbkludmFsaWRDaGFyYWN0ZXJPckV4Y2Vzc1Bh
ZGRpbmcpKSB7CisgICAgaWYgKCFiYXNlNjREZWNvZGUoZW5jb2RlZFN0cmluZywgb3V0LCBpc0hU
TUxTcGFjZSwgQmFzZTY0VmFsaWRhdGVQYWRkaW5nKSkgewogICAgICAgICBlYyA9IElOVkFMSURf
Q0hBUkFDVEVSX0VSUjsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IDhkOTI5OTdkMTFiYjJkYmVhMzY5ODA3ODg0ZjgzMmNkYWE2ODMxOTYuLjcx
OWUzOGVjZDk5OTVlZTNjZTFhYmE0N2NjZDI2YTcwNTMzM2E3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtOTM3LDcgKzkzNyw3IEBAIHZvaWQgUGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNo
YW5nZWQoKQogICAgICAgICBtX2RpZExvYWRVc2VyU3R5bGVTaGVldCA9IHRydWU7CiAKICAgICAg
ICAgVmVjdG9yPGNoYXI+IHN0eWxlU2hlZXRBc1VURjg7Ci0gICAgICAgIGlmIChiYXNlNjREZWNv
ZGUoZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5zdHJpbmcoKS5zdWJzdHJpbmcoMzUpKSwg
c3R5bGVTaGVldEFzVVRGOCwgQmFzZTY0SWdub3JlV2hpdGVzcGFjZSkpCisgICAgICAgIGlmIChi
YXNlNjREZWNvZGUoZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5zdHJpbmcoKS5zdWJzdHJp
bmcoMzUpKSwgc3R5bGVTaGVldEFzVVRGOCwgaXNTcGFjZU9yTmV3bGluZSkpCiAgICAgICAgICAg
ICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nOjpmcm9tVVRGOChzdHlsZVNoZWV0QXNVVEY4LmRh
dGEoKSwgc3R5bGVTaGVldEFzVVRGOC5zaXplKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTC5jcHAKaW5kZXggNzc2N2ZlMjY0NWYxNmVlNjEwZGQx
N2U1NzBhYTM4YWMyZjI0MTE3Ni4uYzhkNDU1NTBhYmZhNTFmNzU4Yzk1ZDUyMThiMTA3NDhjMzQx
ZTRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJM
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkwuY3BwCkBA
IC03NSw3ICs3NSw3IEBAIHZvaWQgaGFuZGxlRGF0YVVSTChSZXNvdXJjZUhhbmRsZSogaGFuZGxl
KQogICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLCBy
ZXNwb25zZSk7CiAKICAgICAgICAgVmVjdG9yPGNoYXI+IG91dDsKLSAgICAgICAgaWYgKGJhc2U2
NERlY29kZShkYXRhLCBvdXQsIEJhc2U2NElnbm9yZVdoaXRlc3BhY2UpICYmIG91dC5zaXplKCkg
PiAwKSB7CisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGF0YSwgb3V0LCBpc1NwYWNlT3JOZXds
aW5lKSAmJiBvdXQuc2l6ZSgpID4gMCkgewogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0RXhwZWN0
ZWRDb250ZW50TGVuZ3RoKG91dC5zaXplKCkpOwogICAgICAgICAgICAgaGFuZGxlLT5jbGllbnQo
KS0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBvdXQuZGF0YSgpLCBvdXQuc2l6ZSgpLCAwKTsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IGQyMDRhZWFlYmNkYTJmNDkwZWQxOTlmMGI3ZGNiZGFh
ZjkwYTUzYzEuLjFiZGQzYmRlNDE1NmJiZDgzYjY1MWI2YjA0YjcxZTA1ZDBiZWRhYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQubW0KQEAgLTQwOCw3ICs0MDgsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpzYXZlKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBTdHJpbmcmCiAKICAg
ICAgICAgaWYgKGJhc2U2NEVuY29kZWQpIHsKICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiBvdXQ7
Ci0gICAgICAgICAgICBpZiAoIWJhc2U2NERlY29kZShjb250ZW50Q29weSwgb3V0LCBCYXNlNjRG
YWlsT25JbnZhbGlkQ2hhcmFjdGVyT3JFeGNlc3NQYWRkaW5nKSkKKyAgICAgICAgICAgIGlmICgh
YmFzZTY0RGVjb2RlKGNvbnRlbnRDb3B5LCBvdXQsIDAsIEJhc2U2NFZhbGlkYXRlUGFkZGluZykp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4g
ZGF0YUNvbnRlbnQgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOm91dC5k
YXRhKCkgbGVuZ3RoOm91dC5zaXplKCldKTsKICAgICAgICAgICAgIFtkYXRhQ29udGVudCB3cml0
ZVRvVVJMOmFjdHVhbFVSTCBhdG9taWNhbGx5OllFU107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCAzMTg3NzI1ZGU1
ZWMwMDFlNTY3NGFiNGM3ZjhiNjYyMmY3ODViZTZhLi5mNTdkZjVmMWZjODhhNDQxYjBmYTYwYWQ5
MjEwNjdiNDU2ODBjMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTU1Myw3ICs1NTMsNyBAQCB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNv
bnN0IFN0cmluZyYgYwogCiAgICAgICAgIGlmIChiYXNlNjRFbmNvZGVkKSB7CiAgICAgICAgICAg
ICBWZWN0b3I8Y2hhcj4gb3V0OwotICAgICAgICAgICAgaWYgKCFiYXNlNjREZWNvZGUoY29udGVu
dENvcHksIG91dCwgQmFzZTY0RmFpbE9uSW52YWxpZENoYXJhY3Rlck9yRXhjZXNzUGFkZGluZykp
CisgICAgICAgICAgICBpZiAoIWJhc2U2NERlY29kZShjb250ZW50Q29weSwgb3V0LCAwLCBCYXNl
NjRWYWxpZGF0ZVBhZGRpbmcpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IFJldGFpblB0cjxOU0RhdGE+IGRhdGFDb250ZW50ID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10g
aW5pdFdpdGhCeXRlczpvdXQuZGF0YSgpIGxlbmd0aDpvdXQuc2l6ZSgpXSk7CiAgICAgICAgICAg
ICBbZGF0YUNvbnRlbnQgd3JpdGVUb1VSTDphY3R1YWxVUkwgYXRvbWljYWxseTpZRVNdOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDVjYTYxOTZiMGZmODkxNTkzNTcwNjdjNzQwNTFlZWMyZWZiNGM3ZTAuLjUyOTRmNzhmZGFi
NDUwY2E0ZmU2NWVmMDNmNGZmYzM0OTcxMzQwZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
My0xMS0wNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNhbXN1bmcuY29tPgorCisgICAg
ICAgIHdpbmRvdy5hdG9iKCkgZG9lcyBub3QgcmVtb3ZlIHNwYWNlIGNoYXJhY3RlcnMgZnJvbSBp
bnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIz
ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbCB0byB0ZXN0IGNhc2VzIHdoZXJlIHRo
ZSBlbmNvZGVkIGlucHV0CisgICAgICAgIHN0cmluZyBjb250YWlucyBIVE1MIHNwYWNlcy4KKwor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbDoKKwogMjAxMy0xMS0wNSAgUmVuYXRh
IEhvZG92YW4gIDxyZW5pQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDog
aXNIVE1MVGl0bGVFbGVtZW50KG1fdGl0bGVFbGVtZW50LmdldCgpKSBpbiBXZWJDb3JlOjpEb2N1
bWVudDo6c2V0VGl0bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9h
dG9iLWJ0b2EtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2It
YnRvYS1leHBlY3RlZC50eHQKaW5kZXggNDM4MGEyNWQ2OWU4ZTE2OGMyMzZiY2I3MmE4YjJkOTk0
ZGU5NGY0MS4uY2NkZjg2ODY2NWVlYjc1Y2Y3NDY2MDdhNDc3MjhlYjAxYzBhNDQ4MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQK
QEAgLTI2LDggKzI2LDE2IEBAIFBBU1Mgd2luZG93LmF0b2IoKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1Mgd2luZG93LmF0b2IoIiIpIGlzICIi
CiBQQVNTIHdpbmRvdy5hdG9iKG51bGwpIGlzICLCnsOpZSIKIFBBU1Mgd2luZG93LmF0b2IodW5k
ZWZpbmVkKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRDaGFyYWN0ZXJFcnJvcjogRE9N
IEV4Y2VwdGlvbiA1LgotUEFTUyB3aW5kb3cuYXRvYigiIFlRPT0iKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IEludmFsaWRDaGFyYWN0ZXJFcnJvcjogRE9NIEV4Y2VwdGlvbiA1LgotUEFTUyB3aW5k
b3cuYXRvYigiWVE9PVx1MDAwYSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZENoYXJh
Y3RlckVycm9yOiBET00gRXhjZXB0aW9uIDUuCitQQVNTIHdpbmRvdy5hdG9iKCIgWVE9PSIpIGlz
ICJhIgorUEFTUyB3aW5kb3cuYXRvYigiWVE9PSAiKSBpcyAiYSIKK1BBU1Mgd2luZG93LmF0b2Io
IllRPT0gICAgIikgaXMgImEiCitQQVNTIHdpbmRvdy5hdG9iKCJZUT09XHUwMDBhIikgaXMgImEi
CitQQVNTIHdpbmRvdy5hdG9iKCJZUSA9PSIpIGlzICJhIgorUEFTUyB3aW5kb3cuYXRvYigiWVFc
dD09IikgaXMgImEiCitQQVNTIHdpbmRvdy5hdG9iKCJZUVxuPT0iKSBpcyAiYSIKK1BBU1Mgd2lu
ZG93LmF0b2IoIllRXGY9PSIpIGlzICJhIgorUEFTUyB3aW5kb3cuYXRvYigiWVFccj09IikgaXMg
ImEiCitQQVNTIHdpbmRvdy5hdG9iKCJZUVx0XG5cZlxyID09IikgaXMgImEiCiBQQVNTIHdpbmRv
dy5hdG9iKCI2ZWs9IikgaXMgIsOpw6kiCiBQQVNTIHdpbmRvdy5hdG9iKCI2ZWsiKSBpcyAiw6nD
qSIKIFBBU1Mgd2luZG93LmF0b2IoImdJRT0iKSBpcyAiwoDCgSIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAppbmRleCA0MTQ0ZTFkMDZlM2NlN2NlOWFmYWNkMmYx
ZTUzYzY0ZWE5MTFmYjkyLi5hM2E1MWU1ZmMwYjg3NTE5OWJkYjNjYWRmZGMwYjlkMGI5MzdkNjBm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sCkBAIC01LDUy
ICs1LDY0IEBACiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+Ci1zaG91bGRCZSgnd2luZG93LmF0
b2IoIllRPT0iKScsICciYSInKTsKLXNob3VsZEJlKCd3aW5kb3cuYXRvYigiWVdJPSIpJywgJyJh
YiInKTsKLXNob3VsZEJlKCd3aW5kb3cuYXRvYigiWVdKaiIpJywgJyJhYmMiJyk7Ci1zaG91bGRC
ZSgnd2luZG93LmF0b2IoIllXSmpaQT09IiknLCAnImFiY2QiJyk7Ci1zaG91bGRCZSgnd2luZG93
LmF0b2IoIllXSmpaR1U9IiknLCAnImFiY2RlIicpOwotc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJZ
V0pqWkdWbSIpJywgJyJhYmNkZWYiJyk7Ci1zaG91bGRCZSgnd2luZG93LmJ0b2EoImEiKScsICci
WVE9PSInKTsKLXNob3VsZEJlKCd3aW5kb3cuYnRvYSgiYWIiKScsICciWVdJPSInKTsKLXNob3Vs
ZEJlKCd3aW5kb3cuYnRvYSgiYWJjIiknLCAnIllXSmoiJyk7Ci1zaG91bGRCZSgnd2luZG93LmJ0
b2EoImFiY2QiKScsICciWVdKalpBPT0iJyk7Ci1zaG91bGRCZSgnd2luZG93LmJ0b2EoImFiY2Rl
IiknLCAnIllXSmpaR1U9IicpOwotc2hvdWxkQmUoJ3dpbmRvdy5idG9hKCJhYmNkZWYiKScsICci
WVdKalpHVm0iJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5hdG9iKCJZUT09Iikn
LCAnYScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuYXRvYigiWVdJPSIpJywgJ2Fi
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5hdG9iKCJZV0pqIiknLCAnYWJjJyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5hdG9iKCJZV0pqWkE9PSIpJywgJ2FiY2Qn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmF0b2IoIllXSmpaR1U9IiknLCAnYWJj
ZGUnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmF0b2IoIllXSmpaR1ZtIiknLCAn
YWJjZGVmJyk7CiAKLXNob3VsZEJlKCd0eXBlb2Ygd2luZG93LmJ0b2EnLCAnImZ1bmN0aW9uIicp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuYnRvYSgiYSIpJywgJ1lRPT0nKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmJ0b2EoImFiIiknLCAnWVdJPScpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuYnRvYSgiYWJjIiknLCAnWVdKaicpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd3aW5kb3cuYnRvYSgiYWJjZCIpJywgJ1lXSmpaQT09Jyk7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5idG9hKCJhYmNkZSIpJywgJ1lXSmpaR1U9Jyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5idG9hKCJhYmNkZWYiKScsICdZV0pqWkdWbScpOwor
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiB3aW5kb3cuYnRvYScsICdmdW5jdGlvbicp
Owogc2hvdWxkVGhyb3coJ3dpbmRvdy5idG9hKCknLCAnIlR5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMiJyk7Ci1zaG91bGRCZSgnd2luZG93LmJ0b2EoIiIpJywgJyIiJyk7Ci1zaG91bGRC
ZSgnd2luZG93LmJ0b2EobnVsbCknLCAnImJuVnNiQT09IicpOyAvLyBHZXRzIGNvbnZlcnRlZCB0
byAibnVsbCIgc3RyaW5nLgotc2hvdWxkQmUoJ3dpbmRvdy5idG9hKHVuZGVmaW5lZCknLCAnImRX
NWtaV1pwYm1WayInKTsKLXNob3VsZEJlKCd3aW5kb3cuYnRvYSh3aW5kb3cpJywgJyJXMjlpYW1W
amRDQlhhVzVrYjNkZCInKTsgLy8gIltvYmplY3QgV2luZG93XSIKLXNob3VsZEJlKCd3aW5kb3cu
YnRvYSgiw6nDqSIpJywgJyI2ZWs9IicpOwotc2hvdWxkQmUoJ3dpbmRvdy5idG9hKCJcXHUwMDgw
XFx1MDA4MSIpJywgJyJnSUU9IicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuYnRv
YSgiIiknLCAnJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5idG9hKG51bGwpJywg
J2JuVnNiQT09Jyk7IC8vIEdldHMgY29udmVydGVkIHRvICJudWxsIiBzdHJpbmcuCitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5idG9hKHVuZGVmaW5lZCknLCAnZFc1a1pXWnBibVZrJyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5idG9hKHdpbmRvdyknLCAnVzI5aWFtVmpk
Q0JYYVc1a2IzZGQnKTsgLy8gIltvYmplY3QgV2luZG93XSIKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygnd2luZG93LmJ0b2EoIsOpw6kiKScsICc2ZWs9Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3dpbmRvdy5idG9hKCJcXHUwMDgwXFx1MDA4MSIpJywgJ2dJRT0nKTsKIHNob3VsZFRocm93KCd3
aW5kb3cuYnRvYSgi0YLQtdGB0YIiKScpOwogd2luZG93LmJ0b2EgPSAwOwogc2hvdWxkQmUoJ3dp
bmRvdy5idG9hJywgJzAnKTsKLXNob3VsZEJlKCd0eXBlb2Ygd2luZG93LmJ0b2EnLCAnIm51bWJl
ciInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIHdpbmRvdy5idG9hJywgJ251bWJl
cicpOwogCi1zaG91bGRCZSgndHlwZW9mIHdpbmRvdy5hdG9iJywgJyJmdW5jdGlvbiInKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIHdpbmRvdy5hdG9iJywgJ2Z1bmN0aW9uJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoKScsICciVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cyInKTsKLXNob3VsZEJlKCd3aW5kb3cuYXRvYigiIiknLCAnIiInKTsKLXNob3VsZEJlKCd3
aW5kb3cuYXRvYihudWxsKScsICciXHg5RcOpZSInKTsgLy8gR2V0cyBjb252ZXJ0ZWQgdG8gIm51
bGwiIHN0cmluZy4KK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmF0b2IoIiIpJywgJycp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuYXRvYihudWxsKScsICdceDlFw6llJyk7
IC8vIEdldHMgY29udmVydGVkIHRvICJudWxsIiBzdHJpbmcuCiBzaG91bGRUaHJvdygnd2luZG93
LmF0b2IodW5kZWZpbmVkKScpOwotc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCIgWVE9PSIpJyk7
Ci1zaG91bGRUaHJvdygnd2luZG93LmF0b2IoIllRPT1cXHUwMDBhIiknKTsKLXNob3VsZEJlKCd3
aW5kb3cuYXRvYigiNmVrPSIpJywgJyLDqcOpIicpOwotc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCI2
ZWsiKScsICciw6nDqSInKTsKLXNob3VsZEJlKCd3aW5kb3cuYXRvYigiZ0lFPSIpJywgJyJcdTAw
ODBcdTAwODEiJyk7CisKKy8vIEhUTUwgc3BhY2UgY2hhcmFjdGVycyBpbiBpbnB1dC4KK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmF0b2IoIiBZUT09IiknLCAnYScpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd3aW5kb3cuYXRvYigiWVE9PSAiKScsICdhJyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3dpbmRvdy5hdG9iKCJZUT09ICAgICIpJywgJ2EnKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnd2luZG93LmF0b2IoIllRPT1cXHUwMDBhIiknLCAnYScpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd3aW5kb3cuYXRvYigiWVEgPT0iKScsICdhJyk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3dpbmRvdy5hdG9iKCJZUVxcdD09IiknLCAnYScpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd3aW5kb3cuYXRvYigiWVFcXG49PSIpJywgJ2EnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygnd2luZG93LmF0b2IoIllRXFxmPT0iKScsICdhJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3dpbmRvdy5hdG9iKCJZUVxccj09IiknLCAnYScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3
aW5kb3cuYXRvYigiWVFcXHRcXG5cXGZcXHIgPT0iKScsICdhJyk7CisKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnd2luZG93LmF0b2IoIjZlaz0iKScsICfDqcOpJyk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3dpbmRvdy5hdG9iKCI2ZWsiKScsICfDqcOpJyk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3dpbmRvdy5hdG9iKCJnSUU9IiknLCAnXHUwMDgwXHUwMDgxJyk7CiBzaG91bGRUaHJvdygn
d2luZG93LmF0b2IoItGC0LXRgdGCIiknKTsKIHNob3VsZFRocm93KCd3aW5kb3cuYXRvYigieiIp
Jyk7Ci1zaG91bGRCZSgnd2luZG93LmF0b2IoInp6IiknLCAnIsOPIicpOwotc2hvdWxkQmUoJ3dp
bmRvdy5hdG9iKCJ6enoiKScsICciw49cdTAwM0MiJyk7Ci1zaG91bGRCZSgnd2luZG93LmF0b2Io
Inp6ej0iKScsICciw49cdTAwM0MiJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5h
dG9iKCJ6eiIpJywgJ8OPJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5hdG9iKCJ6
enoiKScsICfDj1x1MDAzQycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuYXRvYigi
enp6PSIpJywgJ8OPXHUwMDNDJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoInp6ej09Iikn
KTsgLy8gZXhjZXNzIHBhZCBjaGFyYWN0ZXJzLgogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCJ6
eno9PT0iKScpOyAvLyBleGNlc3MgcGFkIGNoYXJhY3RlcnMuCiBzaG91bGRUaHJvdygnd2luZG93
LmF0b2IoInp6ej09PT0iKScpOyAvLyBleGNlc3MgcGFkIGNoYXJhY3RlcnMuCiBzaG91bGRUaHJv
dygnd2luZG93LmF0b2IoInp6ej09PT09IiknKTsgLy8gZXhjZXNzIHBhZCBjaGFyYWN0ZXJzLgot
c2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6enp6IiknLCAnIsOPXHUwMDNDw7MiJyk7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5hdG9iKCJ6enp6IiknLCAnw49cdTAwM0PDsycpOwogc2hv
dWxkVGhyb3coJ3dpbmRvdy5hdG9iKCJ6enp6eiIpJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0
b2IoIno9enoiKScpOwogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI9IiknKTsKQEAgLTYwLDcg
KzcyLDcgQEAgc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI9PT09IiknKTsKIHNob3VsZFRocm93
KCd3aW5kb3cuYXRvYigiPT09PT0iKScpOwogd2luZG93LmF0b2IgPSAwOwogc2hvdWxkQmUoJ3dp
bmRvdy5hdG9iJywgJzAnKTsKLXNob3VsZEJlKCd0eXBlb2Ygd2luZG93LmF0b2InLCAnIm51bWJl
ciInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIHdpbmRvdy5hdG9iJywgJ251bWJl
cicpOwogCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>