<?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>73272</bug_id>
          
          <creation_ts>2011-11-28 17:37:11 -0800</creation_ts>
          <short_desc>CSS Grid Layout: Add support for parsing multiple grid-columns or grid-rows</short_desc>
          <delta_ts>2011-12-06 15:11:23 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>60731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>macpherson</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510365</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-11-28 17:37:11 -0800</bug_when>
    <thetext>Currently we support only a subset of grid-columns and grid-rows. Let&apos;s extend it to better match the specification.

My goal is to add support for the following syntax as part of this bug:

&lt;track-list&gt; := [ &lt;track-breadth&gt; ]+ | &apos;none&apos;
&lt;track-breadth&gt; := &lt;length&gt; | &lt;percentage&gt; | &apos;auto&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510396</commentid>
    <comment_count>1</comment_count>
      <attachid>116867</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-11-28 18:47:53 -0800</bug_when>
    <thetext>Created attachment 116867
Proposed change 1: implement the new syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510397</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-28 18:51:33 -0800</bug_when>
    <thetext>Attachment 116867 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/WebCore/css/CSSStyleSelector.cpp:2522:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 10 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>510867</commentid>
    <comment_count>3</comment_count>
      <attachid>116867</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-29 09:48:36 -0800</bug_when>
    <thetext>Comment on attachment 116867
Proposed change 1: implement the new syntax.

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

&gt; Source/WebCore/css/CSSStyleSelector.cpp:2520
&gt; +    if (type == CSSPrimitiveValue::CSS_PERCENTAGE)
&gt; +        length = Length(primitiveValue-&gt;getDoubleValue(), Percent);
&gt; +        return true;
&gt; +    }

Missing { here.  I think that confused the style checker.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:2544
&gt; +        // Handle the special property &apos;none&apos;.

Nit: You might want the comment to say how you &apos;none&apos; is different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511372</commentid>
    <comment_count>4</comment_count>
      <attachid>116867</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-11-29 21:40:38 -0800</bug_when>
    <thetext>Comment on attachment 116867
Proposed change 1: implement the new syntax.

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

&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:2520
&gt;&gt; +    }
&gt; 
&gt; Missing { here.  I think that confused the style checker.

Good catch, I missed it and thought style checker was confused.

&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:2544
&gt;&gt; +        // Handle the special property &apos;none&apos;.
&gt; 
&gt; Nit: You might want the comment to say how you &apos;none&apos; is different.

I am not sure I follow your nit here. Do you mind clarifying?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511868</commentid>
    <comment_count>5</comment_count>
      <attachid>116867</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-30 10:32:44 -0800</bug_when>
    <thetext>Comment on attachment 116867
Proposed change 1: implement the new syntax.

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

&gt;&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:2544
&gt;&gt;&gt; +        // Handle the special property &apos;none&apos;.
&gt;&gt; 
&gt;&gt; Nit: You might want the comment to say how you &apos;none&apos; is different.
&gt; 
&gt; I am not sure I follow your nit here. Do you mind clarifying?

Something like, &quot;We use a single undefined length to specify a track-list of &apos;none&apos;.&quot;  Or maybe just remove the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512091</commentid>
    <comment_count>6</comment_count>
      <attachid>116867</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-11-30 13:45:47 -0800</bug_when>
    <thetext>Comment on attachment 116867
Proposed change 1: implement the new syntax.

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

&gt;&gt;&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:2544
&gt;&gt;&gt;&gt; +        // Handle the special property &apos;none&apos;.
&gt;&gt;&gt; 
&gt;&gt;&gt; Nit: You might want the comment to say how you &apos;none&apos; is different.
&gt;&gt; 
&gt;&gt; I am not sure I follow your nit here. Do you mind clarifying?
&gt; 
&gt; Something like, &quot;We use a single undefined length to specify a track-list of &apos;none&apos;.&quot;  Or maybe just remove the comment.

Fine enough, I will remove it in the patch to land. I have seen a couple of missing of return in the implementation. I don&apos;t understand why it was not caught by the cases but I need to investigate before landing this patch as it may mean that our current test coverage is not good enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515611</commentid>
    <comment_count>7</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-05 20:10:45 -0800</bug_when>
    <thetext>&gt; I have seen a couple of missing of return in the implementation. I don&apos;t understand why it was not caught by the cases but I need to investigate before landing this patch as it may mean that our current test coverage is not good enough.

I found out the issue: some code was unneeded (basically I was trying to handle several values on a CSSPrimitiveValue which was never reached). I have extended the testing a bit and removed this dead code in the to-be-landed-soon patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515612</commentid>
    <comment_count>8</comment_count>
      <attachid>117982</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-05 20:12:06 -0800</bug_when>
    <thetext>Created attachment 117982
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515614</commentid>
    <comment_count>9</comment_count>
      <attachid>117982</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-05 20:13:17 -0800</bug_when>
    <thetext>Comment on attachment 117982
Patch for landing

Something is fishy on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515624</commentid>
    <comment_count>10</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-05 20:57:40 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 117982 [details])
&gt; Something is fishy on this patch.

Actually it was fine, I just needed to double-check the logic. My comment #7 was half true: some code was unneeded and it is not because it would try to parse several values for a CSSPrimitiveValue but because the parser consider most of our input as a CSSValueList (even for 1 item).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515625</commentid>
    <comment_count>11</comment_count>
      <attachid>117987</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-05 20:59:25 -0800</bug_when>
    <thetext>Created attachment 117987
Patch for landing for tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516239</commentid>
    <comment_count>12</comment_count>
      <attachid>117987</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-06 14:10:27 -0800</bug_when>
    <thetext>Comment on attachment 117987
Patch for landing for tomorrow.

Rejecting attachment 117987 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
112974 --non-interactive --force --accept theirs-conflict --ignore-externals returned non-zero exit status 1 in /mnt/git/webkit-commit-queue/Source/WebKit/chromium
Error: &apos;depot_tools/gclient sync --force --reset --delete_unversioned_trees&apos; failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 109.
Re-trying &apos;depot_tools/gclient sync --force --reset --delete_unversioned_trees&apos;
No such file or directory at /mnt/git/webkit-commit-queue/Tools/Scripts/webkitdirs.pm line 2078.

Full output: http://queues.webkit.org/results/10736846</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516283</commentid>
    <comment_count>13</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-06 15:11:23 -0800</bug_when>
    <thetext>Committed r102183: &lt;http://trac.webkit.org/changeset/102183&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116867</attachid>
            <date>2011-11-28 18:47:53 -0800</date>
            <delta_ts>2011-12-05 20:12:01 -0800</delta_ts>
            <desc>Proposed change 1: implement the new syntax.</desc>
            <filename>bug-73272-20111128184752.patch</filename>
            <type>text/plain</type>
            <size>28079</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZjNTdiOWVkMzNjMTYz
NTA5MDFjZTdkNDI4OTVjZTNjMTI0ZWNkYS4uZjRkNWIyZjkxZWZjYTNkNzc5MDY0NmE0Yzc4Y2Rl
NTljOGE5ZmRjOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTExLTI4ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBHcmlk
IExheW91dDogQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgbXVsdGlwbGUgZ3JpZC1jb2x1bW5zIG9y
IGdyaWQtcm93cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMyNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11
bHRpcGxlLmh0bWwKKworICAgICAgICBVcGRhdGVkIG91ciBzdXBwb3J0ZWQgc3ludGF4IHRvIG1h
dGNoIHRoZSBmb2xsb3dpbmc6CisgICAgICAgIDx0cmFjay1saXN0PiA6PSBbIDx0cmFjay1icmVh
ZHRoPiBdKyB8ICdub25lJworICAgICAgICA8dHJhY2stYnJlYWR0aD4gOj0gPGxlbmd0aD4gfCA8
cGVyY2VudGFnZT4gfCAnYXV0bycKKyAgICAgICAgKHRoZSBuYW1pbmcgbG9vc2VseSBtYXRjaGVz
IHRoZSBzcGVjaWZpY2F0aW9uKQorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgp
OiBBZGRlZCBmdW5jdGlvbiB0byBoYW5kbGUgYSBicmVhZHRoCisgICAgICAgIChleHRlbmRlZCB3
aXRoICdhdXRvJyB0aGF0IHRoZSBzcGVjIHB1dHMgaW4gPHRyYWNrLW1pbm1heD4pLgorCisgICAg
ICAgIChXZWJDb3JlOjp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOiBDcmVhdGUgYSBzcGFjZSBzZXBl
cmF0ZWQgbGlzdCBvZgorICAgICAgICB0cmFjayBicmVhZHRoIG9yIG5vbmUuCisKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1
ZSk6IFVwZGF0ZWQKKyAgICAgICAgdG8gdXNlIHRoZSBuZXcgZnVuY3Rpb25zLgorCisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
R3JpZFRyYWNrTGlzdCk6IEV4dGVuZGVkIHRoZSBmdW5jdGlvbiB0bworICAgICAgICBtYXRjaCB0
aGUgbmV3IHN5bnRheC4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5OjpDU1NTdHlsZUFwcGx5
UHJvcGVydHkpOiBSZW1vdmVkIG91cgorICAgICAgICBzaW1wbGUgaW1wbGVtZW50YXRpb24uIFJl
cGxhY2VkIGJ5IHRoZSBDU1NTdHlsZVNlbGVjdG9yIGZ1bmN0aW9ucy4KKworICAgICAgICAqIGNz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdyaWRUcmFj
a0JyZWFkdGgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisgICAg
ICAgIEFkZGVkIHRob3NlIDIgZnVuY3Rpb25zIHRvIGNvbnZlcnQgdGhlIENTU1ByaW1pdGl2ZVZh
bHVlIHRvIGEgVmVjdG9yCisgICAgICAgIGFzIGV4cGVjdGVkIGJ5IFJlbmRlclN0eWxlLgorCisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KTogQWRkZWQg
b3VyIDIgcHJvcGVydGllcworICAgICAgICBub3cgdGhhdCBpdCBpcyBub3QgaGFuZGxlZCBieSBD
U1NTdHlsZUFwcGx5UHJvcGVydHkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpncmlkQ29sdW1ucyk6
CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6Z3JpZFJvd3MpOgorICAgICAgICAo
V2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldEdyaWRDb2x1bW5zKToKKyAgICAgICAgKFdlYkNv
cmU6OkluaGVyaXRlZEZsYWdzOjpzZXRHcmlkUm93cyk6CisgICAgICAgIChXZWJDb3JlOjpJbmhl
cml0ZWRGbGFnczo6aW5pdGlhbEdyaWRDb2x1bW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVy
aXRlZEZsYWdzOjppbml0aWFsR3JpZFJvd3MpOgorICAgICAgICBVcGRhdGVkIHRoZSBwcmV2aW91
cyBtZXRob2RzIHRvIHRha2UgYSBWZWN0b3Igb2YgTGVuZ3RoLgorCisgICAgICAgIChXZWJDb3Jl
OjpJbmhlcml0ZWRGbGFnczo6aW5pdGlhbEdyaWRUcmFja1ZhbHVlKToKKyAgICAgICAgTmVlZGVk
IGZ1bmN0aW9uIHRvIHJldHVybiBhIFZlY3RvciB3aXRoIG9uZSAnbm9uZScgTGVuZ3RoICh0aGUg
aW5pdGlhbAorICAgICAgICB2YWx1ZSBwZXIgdGhlIHNwZWNpZmljYXRpb24pLgorCisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaDogVXBkYXRlZCB0byB1c2UgYSBWZWN0
b3IuCisKIDIwMTEtMTEtMjggIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDEyMDIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDE5YWI4Y2Jk
N2U2YTI4OGVjNjYzMDU3OWNiZGMwYjM5MTBjNjAzY2MuLjRmMmE3ZmVkMTJjNzM4MWE1ODY2NTBi
MzZhYWQ0ZDM2ZjFlNDZiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC03OTQsMTYgKzc5NCwyOSBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnZhbHVlRm9yRmlsdGVyKFJl
bmRlclN0eWxlKiBzdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQotc3Rh
dGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChjb25zdCBMZW5n
dGgmIHRyYWNrTGVuZ3RoLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIENTU1ByaW1pdGl2ZVZh
bHVlQ2FjaGUqIHByaW1pdGl2ZVZhbHVlQ2FjaGUpCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gdmFsdWVGb3JHcmlkVHJhY2tCcmVhZHRoKGNvbnN0IExlbmd0aCYgdHJhY2tMZW5ndGgsIGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgQ1NTUHJpbWl0aXZlVmFsdWVDYWNoZSogcHJpbWl0aXZl
VmFsdWVDYWNoZSkKIHsKICAgICBpZiAodHJhY2tMZW5ndGguaXNQZXJjZW50KCkpCiAgICAgICAg
IHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVWYWx1ZSh0cmFja0xlbmd0aCk7CiAg
ICAgaWYgKHRyYWNrTGVuZ3RoLmlzQXV0bygpKQogICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFs
dWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7Ci0gICAgaWYgKHRy
YWNrTGVuZ3RoLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNh
Y2hlLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKICAgICByZXR1cm4gem9v
bUFkanVzdGVkUGl4ZWxWYWx1ZSh0cmFja0xlbmd0aC52YWx1ZSgpLCBzdHlsZSwgcHJpbWl0aXZl
VmFsdWVDYWNoZSk7CiB9CisKK3N0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdy
aWRUcmFja0xpc3QoY29uc3QgVmVjdG9yPExlbmd0aD4mIHRyYWNrTGVuZ3RocywgY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBDU1NQcmltaXRpdmVWYWx1ZUNhY2hlKiBwcmltaXRpdmVWYWx1ZUNh
Y2hlKQoreworICAgIC8vIFdlIHNob3VsZCBoYXZlIGF0IGxlYXN0IGFuIGVsZW1lbnQhCisgICAg
QVNTRVJUKHRyYWNrTGVuZ3Rocy5zaXplKCkpOworCisgICAgLy8gSGFuZGxlIHRoZSAnbm9uZScg
Y2FzZSBoZXJlLgorICAgIGlmICh0cmFja0xlbmd0aHMuc2l6ZSgpID09IDEgJiYgdHJhY2tMZW5n
dGhzWzBdLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hl
LT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKKworICAgIFJlZlB0cjxDU1NW
YWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFja0xlbmd0aHMuc2l6ZSgpOyArK2kpCisgICAg
ICAgIGxpc3QtPmFwcGVuZCh2YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgodHJhY2tMZW5ndGhzW2ld
LCBzdHlsZSwgcHJpbWl0aXZlVmFsdWVDYWNoZSkpOworICAgIHJldHVybiBsaXN0LnJlbGVhc2Uo
KTsKK30KICNlbmRpZgogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0RGVsYXlWYWx1
ZShjb25zdCBBbmltYXRpb25MaXN0KiBhbmltTGlzdCwgQ1NTUHJpbWl0aXZlVmFsdWVDYWNoZSog
cHJpbWl0aXZlVmFsdWVDYWNoZSkKQEAgLTE1MTUsMTIgKzE1MjgsMTAgQEAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVl
KGludCBwcm9wZXIKICAgICAgICAgfQogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uczogewotICAgICAgICAgICAgTGVu
Z3RoIGdyaWRDb2x1bW5zID0gc3R5bGUtPmdyaWRDb2x1bW5zKCk7Ci0gICAgICAgICAgICByZXR1
cm4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KGdyaWRDb2x1bW5zLCBzdHlsZS5nZXQoKSwgcHJpbWl0
aXZlVmFsdWVDYWNoZSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0
KHN0eWxlLT5ncmlkQ29sdW1ucygpLCBzdHlsZS5nZXQoKSwgcHJpbWl0aXZlVmFsdWVDYWNoZSk7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOiB7Ci0g
ICAgICAgICAgICBMZW5ndGggZ3JpZFJvd3MgPSBzdHlsZS0+Z3JpZFJvd3MoKTsKLSAgICAgICAg
ICAgIHJldHVybiB2YWx1ZUZvckdyaWRUcmFja0xpc3QoZ3JpZFJvd3MsIHN0eWxlLmdldCgpLCBw
cmltaXRpdmVWYWx1ZUNhY2hlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRUcmFj
a0xpc3Qoc3R5bGUtPmdyaWRSb3dzKCksIHN0eWxlLmdldCgpLCBwcmltaXRpdmVWYWx1ZUNhY2hl
KTsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGM5Njk5YWJmOGVkMDJhMzU5ZmEyMDRlZWJkOWRh
MGExZDUyNTJjZDMuLmEyNDI4NDQ2NjM2MzYzZmM0YWE2ZDMwZmM3YjFlMWZjZjJhMjAzMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0zNTI1LDE2ICszNTI1LDI2IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KGludCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1
ZT4mIHJlc3VsdCkKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja0xpc3QoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1
ZUxpc3QtPmN1cnJlbnQoKTsKLSAgICBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlTm9uZSB8fCB2
YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBdXRvKSB7CisgICAgaWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1
ZU5vbmUpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVMaXN0LT5uZXh0KCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKICAgICAgICAgYWRkUHJvcGVydHkocHJvcElkLCBwcmltaXRpdmVWYWx1
ZUNhY2hlKCktPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS0+aWQpLCBpbXBvcnRhbnQpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAodmFsaWRVbml0KHZhbHVlLCBG
TGVuZ3RoIHwgRlBlcmNlbnQsIG1fc3RyaWN0KSkgewotICAgICAgICBhZGRQcm9wZXJ0eShwcm9w
SWQsIGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSksIGltcG9ydGFudCk7Ci0gICAg
ICAgIHJldHVybiB0cnVlOworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHZhbHVlcyA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKyAgICB3aGlsZSAodmFsdWUpIHsKKyAg
ICAgICAgYm9vbCB2YWxpZCA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50LCBt
X3N0cmljdCkgfHwgdmFsdWUtPmlkID09IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgaWYgKCF2YWxp
ZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0
aXZlVmFsdWU+IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUtPmlkID09IENTU1ZhbHVlQXV0byA/IHBy
aW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0bykg
OiBjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUodmFsdWUpOworICAgICAgICB2YWx1ZXMtPmFw
cGVuZChwcmltaXRpdmVWYWx1ZS5yZWxlYXNlKCkpOworICAgICAgICB2YWx1ZSA9IG1fdmFsdWVM
aXN0LT5uZXh0KCk7CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICBhZGRQcm9wZXJ0eShw
cm9wSWQsIHZhbHVlcy5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAgcmV0dXJuIHRydWU7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQ
cm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNw
cAppbmRleCA2MDc3OGE3MzIyMDUyZDhhOTE5ZGNmNWY3MDg1OWY5ZDUxMzBmZGJjLi43YTc3MjYx
YWViZGIyNTVlNzg1ZTZjN2ZjMWVhYTU4ODQ2MDY1NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcApAQCAtMTEzNiwxMSArMTEzNiw2IEBAIENTU1N0
eWxlQXBwbHlQcm9wZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KCkKICAgICBzZXRQcm9wZXJ0
eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3R0b20sIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0
eWxlOjpib3R0b20sICZSZW5kZXJTdHlsZTo6c2V0Qm90dG9tLCAmUmVuZGVyU3R5bGU6OmluaXRp
YWxPZmZzZXQsIEF1dG9FbmFibGVkPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0
eUhhbmRsZXIoQ1NTUHJvcGVydHlMZWZ0LCBBcHBseVByb3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHls
ZTo6bGVmdCwgJlJlbmRlclN0eWxlOjpzZXRMZWZ0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxPZmZz
ZXQsIEF1dG9FbmFibGVkPjo6Y3JlYXRlSGFuZGxlcigpKTsKIAotI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCi0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0R3JpZENv
bHVtbnMsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjpncmlkQ29sdW1ucywgJlJl
bmRlclN0eWxlOjpzZXRHcmlkQ29sdW1ucywgJlJlbmRlclN0eWxlOjppbml0aWFsR3JpZENvbHVt
bnMsIEF1dG9FbmFibGVkLCBJbnRyaW5zaWNEaXNhYmxlZCwgTWluSW50cmluc2ljRGlzYWJsZWQs
IE5vbmVFbmFibGVkLCBVbmRlZmluZWRFbmFibGVkPjo6Y3JlYXRlSGFuZGxlcigpKTsKLSAgICBz
ZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93cywgQXBwbHlQcm9wZXJ0
eUxlbmd0aDwmUmVuZGVyU3R5bGU6OmdyaWRSb3dzLCAmUmVuZGVyU3R5bGU6OnNldEdyaWRSb3dz
LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkUm93cywgQXV0b0VuYWJsZWQsIEludHJpbnNpY0Rp
c2FibGVkLCBNaW5JbnRyaW5zaWNEaXNhYmxlZCwgTm9uZUVuYWJsZWQsIFVuZGVmaW5lZEVuYWJs
ZWQ+OjpjcmVhdGVIYW5kbGVyKCkpOwotI2VuZGlmCi0KICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXaWR0aCwgQXBwbHlQcm9wZXJ0eUxlbmd0aDwmUmVuZGVyU3R5bGU6OndpZHRo
LCAmUmVuZGVyU3R5bGU6OnNldFdpZHRoLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxTaXplLCBBdXRv
RW5hYmxlZCwgSW50cmluc2ljRW5hYmxlZCwgTWluSW50cmluc2ljRW5hYmxlZCwgTm9uZURpc2Fi
bGVkLCBVbmRlZmluZWREaXNhYmxlZCwgRmxleFdpZHRoPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAg
ICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlIZWlnaHQsIEFwcGx5UHJvcGVydHlMZW5n
dGg8JlJlbmRlclN0eWxlOjpoZWlnaHQsICZSZW5kZXJTdHlsZTo6c2V0SGVpZ2h0LCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxTaXplLCBBdXRvRW5hYmxlZCwgSW50cmluc2ljRW5hYmxlZCwgTWluSW50
cmluc2ljRW5hYmxlZCwgTm9uZURpc2FibGVkLCBVbmRlZmluZWREaXNhYmxlZCwgRmxleEhlaWdo
dD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCA5NWRiMWQ4YzRmODUyOWIxNjkwNTM4OThiYjE2ZmE5NWE1YTMzNmQ1Li41OGMx
MGVmYWVmYTkxNjQwOTU0MzdjZTJiYmJjZDEwYWJkZjkwYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0yNDk4LDYgKzI0OTgsNjUgQEAgYm9vbCBDU1NTdHls
ZVNlbGVjdG9yOjp1c2VTVkdab29tUnVsZXMoKQogICAgIHJldHVybiBtX2VsZW1lbnQgJiYgbV9l
bGVtZW50LT5pc1NWR0VsZW1lbnQoKTsKIH0KIAorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQp
CisKK3N0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0JyZWFkdGgoQ1NTUHJpbWl0aXZlVmFsdWUq
IHByaW1pdGl2ZVZhbHVlLCBDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgTGVuZ3RoJiBsZW5n
dGgpCit7CisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQXV0
bykgeworICAgICAgICBsZW5ndGggPSBMZW5ndGgoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwor
ICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0VHlwZUxlbmd0aCh0eXBlKSkgeworICAg
ICAgICBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHNlbGVj
dG9yLT5zdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzZWxlY3Rvci0+c3R5
bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgbGVuZ3RoLnNldFF1aXJrKHByaW1pdGl2
ZVZhbHVlLT5pc1F1aXJrVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKKyAgICAg
ICAgbGVuZ3RoID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJj
ZW50KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tMaXN0KENTU1ZhbHVlKiB2YWx1ZSwgVmVj
dG9yPExlbmd0aD4mIGxlbmd0aHMsIENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yKQoreworICAg
IGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkgeworICAgICAgICBmb3IgKENTU1ZhbHVlTGlzdEl0
ZXJhdG9yIGkgPSB2YWx1ZTsgaS5oYXNNb3JlKCk7IGkuYWR2YW5jZSgpKSB7CisgICAgICAgICAg
ICBDU1NWYWx1ZSogY3VyclZhbHVlID0gaS52YWx1ZSgpOworICAgICAgICAgICAgaWYgKCFjdXJy
VmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgICAgIExlbmd0aCBsZW5ndGg7CisgICAgICAgICAgICBpZiAoIWNyZWF0ZUdy
aWRUcmFja0JyZWFkdGgoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihjdXJyVmFsdWUp
LCBzZWxlY3RvciwgbGVuZ3RoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgICAgIGxlbmd0aHMuYXBwZW5kKGxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgp
KSB7CisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOworICAgICAgICAvLyBIYW5kbGUgdGhlIHNw
ZWNpYWwgcHJvcGVydHkgJ25vbmUnLgorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAgbGVuZ3Rocy5hcHBlbmQoTGVuZ3Ro
KFVuZGVmaW5lZCkpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIExlbmd0aCBsZW5ndGg7
CisgICAgICAgICAgICBpZiAoIWNyZWF0ZUdyaWRUcmFja0JyZWFkdGgocHJpbWl0aXZlVmFsdWUs
IHNlbGVjdG9yLCBsZW5ndGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICAgICAgbGVuZ3Rocy5hcHBlbmQobGVuZ3RoKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiB7CiAgICAgYm9vbCBpc0luaGVyaXQg
PSBtX3BhcmVudE5vZGUgJiYgdmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKTsKQEAgLTM3ODMsNiAr
Mzg0MiwyMiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBD
U1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKKyNpZiBFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1u
czogeworICAgICAgICBWZWN0b3I8TGVuZ3RoPiBsZW5ndGhzOworICAgICAgICBpZiAoIWNyZWF0
ZUdyaWRUcmFja0xpc3QodmFsdWUsIGxlbmd0aHMsIHRoaXMpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBtX3N0eWxlLT5zZXRHcmlkQ29sdW1ucyhsZW5ndGhzKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6IHsKKyAgICAg
ICAgVmVjdG9yPExlbmd0aD4gbGVuZ3RoczsKKyAgICAgICAgaWYgKCFjcmVhdGVHcmlkVHJhY2tM
aXN0KHZhbHVlLCBsZW5ndGhzLCB0aGlzKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
bV9zdHlsZS0+c2V0R3JpZFJvd3MobGVuZ3Rocyk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisj
ZW5kaWYKIAogICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGltcGxlbWVudGVkIGluIHRoZSBD
U1NTdHlsZUFwcGx5UHJvcGVydHkgbG9va3VwIHRhYmxlLgogICAgIGNhc2UgQ1NTUHJvcGVydHlD
b2xvcjoKQEAgLTM4NDYsMTAgKzM5MjEsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEZsZXhGbG93OgogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eUZvbnRWYXJpYW50OgotI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCi0gICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5zOgotICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkUm93czoKLSNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0UmVuZGVyaW5n
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0T3JpZW50YXRpb246CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGEzNDhjNDE5ODU2OTU2ZDAyYTA0YjcyZjc1ZTVl
OGE2NWM3NDFiZDIuLmQ3MDBkMmE0NGRlZDY4ZGRjOTM1ZTViMGMzNzczMTIyNzdjMDU5NjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03Mjgs
OCArNzI4LDggQEAgcHVibGljOgogICAgIEVGbGV4RmxvdyBmbGV4RmxvdygpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEVGbGV4Rmxvdz4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmxleGli
bGVCb3gtPm1fZmxleEZsb3cpOyB9CiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQotICAg
IExlbmd0aCBncmlkQ29sdW1ucygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX2dyaWQtPm1fZ3JpZENvbHVtbnM7IH0KLSAgICBMZW5ndGggZ3JpZFJvd3MoKSBjb25zdCB7
IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRSb3dzOyB9CisgICAg
Y29uc3QgVmVjdG9yPExlbmd0aD4mIGdyaWRDb2x1bW5zKCkgY29uc3QgeyByZXR1cm4gcmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkQ29sdW1uczsgfQorICAgIGNvbnN0IFZlY3Rv
cjxMZW5ndGg+JiBncmlkUm93cygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX2dyaWQtPm1fZ3JpZFJvd3M7IH0KICNlbmRpZgogCiAgICAgY29uc3QgU2hhZG93RGF0YSog
Ym94U2hhZG93KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYm94U2hh
ZG93LmdldCgpOyB9CkBAIC0xMTQ1LDggKzExNDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRG
bGV4QWxpZ24oRUZsZXhBbGlnbiBhKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fZmxleGlibGVCb3gsIG1fZmxleEFsaWduLCBhKTsgfQogICAgIHZvaWQgc2V0Rmxl
eEZsb3coRUZsZXhGbG93IGZsb3cpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV9mbGV4aWJsZUJveCwgbV9mbGV4RmxvdywgZmxvdyk7IH0KICNpZiBFTkFCTEUoQ1NT
X0dSSURfTEFZT1VUKQotICAgIHZvaWQgc2V0R3JpZENvbHVtbnMoTGVuZ3RoIGxlbmd0aCkgeyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZENvbHVt
bnMsIGxlbmd0aCk7IH0KLSAgICB2b2lkIHNldEdyaWRSb3dzKExlbmd0aCBsZW5ndGgpIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRSb3dzLCBs
ZW5ndGgpOyB9CisgICAgdm9pZCBzZXRHcmlkQ29sdW1ucyhjb25zdCBWZWN0b3I8TGVuZ3RoPiYg
bGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQs
IG1fZ3JpZENvbHVtbnMsIGxlbmd0aHMpOyB9CisgICAgdm9pZCBzZXRHcmlkUm93cyhjb25zdCBW
ZWN0b3I8TGVuZ3RoPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJvd3MsIGxlbmd0aHMpOyB9CiAjZW5kaWYKIAogICAgIHZv
aWQgc2V0TWFycXVlZUluY3JlbWVudChjb25zdCBMZW5ndGgmIGYpIHsgU0VUX1ZBUihyYXJlTm9u
SW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBpbmNyZW1lbnQsIGYpOyB9CkBAIC0x
NTIzLDggKzE1MjMsMTcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQcmludENvbG9yQWRqdXN0IGlu
aXRpYWxQcmludENvbG9yQWRqdXN0KCkgeyByZXR1cm4gUHJpbnRDb2xvckFkanVzdEVjb25vbXk7
IH0KIAogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCi0gICAgc3RhdGljIExlbmd0aCBpbml0
aWFsR3JpZENvbHVtbnMoKSB7IHJldHVybiBMZW5ndGgoVW5kZWZpbmVkKTsgfQotICAgIHN0YXRp
YyBMZW5ndGggaW5pdGlhbEdyaWRSb3dzKCkgeyByZXR1cm4gTGVuZ3RoKFVuZGVmaW5lZCk7IH0K
KyAgICAvLyBUaGUgaW5pdGlhbCB2YWx1ZSBpcyAnbm9uZScgZm9yIGdyaWQgdHJhY2tzLgorICAg
IHN0YXRpYyBWZWN0b3I8TGVuZ3RoPiBpbml0aWFsR3JpZFRyYWNrVmFsdWUoKQorICAgIHsKKyAg
ICAgICAgc3RhdGljIFZlY3RvcjxMZW5ndGg+IGRlZmF1bHRMZW5ndGg7CisgICAgICAgIC8vIFdl
IG5lZWQgdG8gbWFudWFsbHkgYWRkIHRoZSBMZW5ndGggaGVyZSBhcyB0aGUgTGVuZ3RoKDApIGlz
ICdhdXRvJy4KKyAgICAgICAgaWYgKCFkZWZhdWx0TGVuZ3RoLnNpemUoKSkKKyAgICAgICAgICAg
IGRlZmF1bHRMZW5ndGguYXBwZW5kKExlbmd0aChVbmRlZmluZWQpKTsKKyAgICAgICAgcmV0dXJu
IGRlZmF1bHRMZW5ndGg7CisgICAgfQorICAgIHN0YXRpYyBWZWN0b3I8TGVuZ3RoPiBpbml0aWFs
R3JpZENvbHVtbnMoKSB7IHJldHVybiBpbml0aWFsR3JpZFRyYWNrVmFsdWUoKTsgfQorICAgIHN0
YXRpYyBWZWN0b3I8TGVuZ3RoPiBpbml0aWFsR3JpZFJvd3MoKSB7IHJldHVybiBpbml0aWFsR3Jp
ZFRyYWNrVmFsdWUoKTsgfQogI2VuZGlmCiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5n
JiBpbml0aWFsTGluZUdyaWQoKSB7IHJldHVybiBudWxsQXRvbTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmgKaW5kZXggMzM3MTA0MTRlYzc1Y2Rk
NjdiZGI4NDA2NGVhNTQ5NGY4OGZhOTlkMi4uNTU4NDQ0M2IyNDAzNGFlYzVjYzliNGRiZmEyZWMw
MDAyNjYwOWU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlR3JpZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
cmlkRGF0YS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTGVuZ3RoLmgiCiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw4ICs1Miw4
IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBGb3IgdGhlIG1vbWVudCwgd2Ugb25seSBzdXBw
b3J0IGEgc3Vic2V0IG9mIHRoZSBncmFtbWFyIHdoaWNoIGNvcnJlc3BvbmQgdG86CiAgICAgLy8g
J2F1dG8nIHwgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCAnbm9uZScKLSAgICBMZW5ndGggbV9n
cmlkQ29sdW1uczsKLSAgICBMZW5ndGggbV9ncmlkUm93czsKKyAgICBWZWN0b3I8TGVuZ3RoPiBt
X2dyaWRDb2x1bW5zOworICAgIFZlY3RvcjxMZW5ndGg+IG1fZ3JpZFJvd3M7CiAKIHByaXZhdGU6
CiAgICAgU3R5bGVHcmlkRGF0YSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRhMDk4NmJhNjU3NjFjZWU1MDQ2NWYzY2Nk
ZmY0ZGQ1Mzk0M2QwNDQuLjNmM2U3ZmJjYzA5Mjk1YWFmOThjYzE0YWQ2OWZjZDdkNWY3NTA0MmQg
MTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMS0yOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpj
aGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgR3JpZCBMYXlvdXQ6IEFkZCBzdXBw
b3J0IGZvciBwYXJzaW5nIG11bHRpcGxlIGdyaWQtY29sdW1ucyBvciBncmlkLXJvd3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3Mt
Z2V0LXNldC1tdWx0aXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxh
eW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5qczogQWRk
ZWQuCisKIDIwMTEtMTEtMjggIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDEyMDIuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11
bHRpcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdhY2ZkNWYwNzEwOTE2YmM4Nzg5NzVmYTIyZGJmYjhlNWUxZjVmYjUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1n
ZXQtc2V0LW11bHRpcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ4IEBACitUZXN0IHRoYXQg
c2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWNvbHVtbnMgYW5kIGdyaWQtcm93cyB3b3JrcyBhcyBl
eHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBnZXR0aW5nIHxk
aXNwbGF5fCBzZXQgdGhyb3VnaCBDU1MKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEZp
eGVkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykg
aXMgJzdweCAxMXB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoRml4ZWRFbGVtZW50
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnMTdweCAycHgn
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJjZW50RWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJzUzJSA5OSUnCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJjZW50RWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzI3JSA1MiUnCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZ3JpZFdpdGhBdXRvRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3Jp
ZC1jb2x1bW5zJykgaXMgJ2F1dG8gYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0
aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBp
cyAnYXV0byBhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoRU1FbGVtZW50LCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnMTAwcHggMTIw
cHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhFTUVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICcxNTBweCAxNzBweCcKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShncmlkV2l0aFRocmVlSXRlbXMsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtY29sdW1ucycpIGlzICcxNXB4IGF1dG8gMTAwcHgnCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZ3JpZFdpdGhUaHJlZUl0ZW1zLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLXJvd3MnKSBpcyAnMTIwcHggMThweCBhdXRvJworCitUZXN0IHRoZSBpbml0aWFsIHZh
bHVlCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ25vbmUnCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJ25v
bmUnCisKK1Rlc3QgZ2V0dGluZyBhbmQgc2V0dGluZyBkaXNwbGF5IHRocm91Z2ggSlMKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWNvbHVtbnMnKSBpcyAnMThweCAyMnB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1l
bnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICc2NnB4IDcw
cHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJzU1JSA4MCUnCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMg
JzQwJSA2MyUnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ2F1dG8gYXV0bycKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJv
d3MnKSBpcyAnYXV0byBhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdhdXRvIDE2MHB4IDIy
cHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzU2JSAxMDBweCBhdXRvJworCitUZXN0IGdldHRpbmcg
d3JvbmcgdmFsdWVzIHNldCBmcm9tIENTUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRo
Tm9uZUFuZEF1dG8sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycp
IGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoTm9uZUFuZEF1dG8sICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoTm9uZUFuZEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnbm9uZScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShncmlkV2l0aE5vbmVBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3Jp
ZC1yb3dzJykgaXMgJ25vbmUnCisKK1Rlc3Qgc2V0dGluZyBhbmQgZ2V0dGluZyB3cm9uZyB2YWx1
ZXMgZnJvbSBKUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycp
IGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycp
IGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycp
IGlzICdub25lJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
Y29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xOTYyYjAyN2MwY2I3ZmQyMTExY2RhMGZmYmE3OGVmNGU3MzM4NTkzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5z
LXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CisuZ3JpZFdpdGhGaXhlZCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ncmlkOworICAgIC13
ZWJraXQtZ3JpZC1jb2x1bW5zOiA3cHggMTFweDsKKyAgICAtd2Via2l0LWdyaWQtcm93czogMTdw
eCAycHg7Cit9CisKKy5ncmlkV2l0aFBlcmNlbnQgeworICAgIGRpc3BsYXk6IC13ZWJraXQtZ3Jp
ZDsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogNTMlIDk5JTsKKyAgICAtd2Via2l0LWdyaWQt
cm93czogMjclIDUyJTsKK30KKy5ncmlkV2l0aEF1dG8geworICAgIGRpc3BsYXk6IC13ZWJraXQt
Z3JpZDsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogYXV0byBhdXRvOworICAgIC13ZWJraXQt
Z3JpZC1yb3dzOiBhdXRvIGF1dG87Cit9CisuZ3JpZFdpdGhFTSB7CisgICAgZGlzcGxheTogLXdl
YmtpdC1ncmlkOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiAxMGVtIDEyZW07CisgICAgLXdl
YmtpdC1ncmlkLXJvd3M6IDE1ZW0gMTdlbTsKKyAgICBmb250OiAxMHB4IEFoZW07Cit9CisuZ3Jp
ZFdpdGhOb25lQW5kQXV0byB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ncmlkOworICAgIC13ZWJr
aXQtZ3JpZC1jb2x1bW5zOiBub25lIGF1dG87CisgICAgLXdlYmtpdC1ncmlkLXJvd3M6IG5vbmUg
YXV0bzsKK30KKy5ncmlkTm9uZVdpdGhBbmRGaXhlZCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1n
cmlkOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiBub25lIDE1cHg7CisgICAgLXdlYmtpdC1n
cmlkLXJvd3M6IG5vbmUgMjJweDsKK30KKy5ncmlkV2l0aFRocmVlSXRlbXMgeworICAgIGRpc3Bs
YXk6IC13ZWJraXQtZ3JpZDsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogMTVweCBhdXRvIDEw
ZW07CisgICAgLXdlYmtpdC1ncmlkLXJvd3M6IDEyZW0gMThweCBhdXRvOworICAgIGZvbnQ6IDEw
cHggQWhlbTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZ3JpZFdp
dGhGaXhlZCIgaWQ9ImdyaWRXaXRoRml4ZWRFbGVtZW50Ij48L2Rpdj4KKzxkaXYgY2xhc3M9Imdy
aWRXaXRoUGVyY2VudCIgaWQ9ImdyaWRXaXRoUGVyY2VudEVsZW1lbnQiPjwvZGl2PgorPGRpdiBj
bGFzcz0iZ3JpZFdpdGhBdXRvIiBpZD0iZ3JpZFdpdGhBdXRvRWxlbWVudCI+PC9kaXY+Cis8ZGl2
IGNsYXNzPSJncmlkV2l0aEVNIiBpZD0iZ3JpZFdpdGhFTUVsZW1lbnQiPjwvZGl2PgorPGRpdiBj
bGFzcz0iZ3JpZFdpdGhOb25lQW5kQXV0byIgaWQ9ImdyaWRXaXRoTm9uZUFuZEF1dG8iPjwvZGl2
PgorPGRpdiBjbGFzcz0iZ3JpZFdpdGhOb25lQW5kRml4ZWQiIGlkPSJncmlkV2l0aE5vbmVBbmRG
aXhlZCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkV2l0aFRocmVlSXRlbXMiIGlkPSJncmlkV2l0
aFRocmVlSXRlbXMiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ncmlkLWNvbHVtbnMt
cm93cy1nZXQtc2V0LW11bHRpcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlk
LWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDM3ZjM5MDJmZDliNzhlMjEwN2YxMzUzMjYzN2Q3MmY1MTFjZDg0Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291
cmNlcy9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmpzCkBAIC0wLDAgKzEsOTEg
QEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWNvbHVt
bnMgYW5kIGdyaWQtcm93cyB3b3JrcyBhcyBleHBlY3RlZCcpOworCitkZWJ1ZygiVGVzdCBnZXR0
aW5nIHxkaXNwbGF5fCBzZXQgdGhyb3VnaCBDU1MiKTsKK3ZhciBncmlkV2l0aEZpeGVkRWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkV2l0aEZpeGVkRWxlbWVudCIpOworc2hv
dWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhGaXhlZEVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIic3cHggMTFweCciKTsKK3Nob3Vs
ZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoRml4ZWRFbGVtZW50LCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInMTdweCAycHgnIik7CisKK3ZhciBncmlk
V2l0aFBlcmNlbnRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRoUGVy
Y2VudEVsZW1lbnQiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoUGVyY2Vu
dEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwg
Iic1MyUgOTklJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJjZW50
RWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJzI3
JSA1MiUnIik7CisKK3ZhciBncmlkV2l0aEF1dG9FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImdyaWRXaXRoQXV0b0VsZW1lbnQiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGdyaWRXaXRoQXV0b0VsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
Y29sdW1ucycpIiwgIidhdXRvIGF1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShn
cmlkV2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJv
d3MnKSIsICInYXV0byBhdXRvJyIpOworCit2YXIgZ3JpZFdpdGhFTUVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhFTUVsZW1lbnQiKTsKK3Nob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKGdyaWRXaXRoRU1FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLWNvbHVtbnMnKSIsICInMTAwcHggMTIwcHgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0
ZWRTdHlsZShncmlkV2l0aEVNRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1yb3dzJykiLCAiJzE1MHB4IDE3MHB4JyIpOworCit2YXIgZ3JpZFdpdGhUaHJlZUl0ZW1z
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRoVGhyZWVJdGVtcyIpOworc2hvdWxk
QmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhUaHJlZUl0ZW1zLCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInMTVweCBhdXRvIDEwMHB4JyIpOworc2hv
dWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhUaHJlZUl0ZW1zLCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInMTIwcHggMThweCBhdXRvJyIpOworCitk
ZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0aGUgaW5pdGlhbCB2YWx1ZSIpOwordmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWxlbWVudCk7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3Vs
ZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtcm93cycpIiwgIidub25lJyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBn
ZXR0aW5nIGFuZCBzZXR0aW5nIGRpc3BsYXkgdGhyb3VnaCBKUyIpOworZWxlbWVudC5zdHlsZS53
ZWJraXRHcmlkQ29sdW1ucyA9ICIxOHB4IDIycHgiOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlk
Um93cyA9ICI2NnB4IDcwcHgiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJzE4cHggMjJw
eCciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIic2NnB4IDcwcHgnIik7CisKK2VsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIjU1JSA4MCUi
OworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93cyA9ICI0MCUgNjMlIjsKK3Nob3VsZEJlKCJn
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtY29sdW1ucycpIiwgIic1NSUgODAlJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJzQw
JSA2MyUnIik7CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2Rv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdy
aWRDb2x1bW5zID0gImF1dG8gYXV0byI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0g
ImF1dG8gYXV0byI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInYXV0byBhdXRvJyIpOwor
c2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJ2F1dG8gYXV0byciKTsKKworZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKK2VsZW1lbnQuc3R5bGUuZm9udCA9ICIxMHB4IEFoZW0iOworZWxlbWVudC5zdHlsZS53
ZWJraXRHcmlkQ29sdW1ucyA9ICJhdXRvIDE2ZW0gMjJweCI7CitlbGVtZW50LnN0eWxlLndlYmtp
dEdyaWRSb3dzID0gIjU2JSAxMGVtIGF1dG8iOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAi
J2F1dG8gMTYwcHggMjJweCciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIic1NiUgMTAwcHgg
YXV0byciKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgZ2V0dGluZyB3cm9uZyB2YWx1ZXMg
c2V0IGZyb20gQ1NTIik7Cit2YXIgZ3JpZFdpdGhOb25lQW5kQXV0byA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJncmlkV2l0aE5vbmVBbmRBdXRvIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRT
dHlsZShncmlkV2l0aE5vbmVBbmRBdXRvLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdy
aWRXaXRoTm9uZUFuZEF1dG8sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIiwgIidub25lJyIpOworCit2YXIgZ3JpZFdpdGhOb25lQW5kRml4ZWQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhOb25lQW5kRml4ZWQiKTsKK3Nob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKGdyaWRXaXRoTm9uZUFuZEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0
eWxlKGdyaWRXaXRoTm9uZUFuZEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLXJvd3MnKSIsICInbm9uZSciKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Qgc2V0dGlu
ZyBhbmQgZ2V0dGluZyB3cm9uZyB2YWx1ZXMgZnJvbSBKUyIpOworZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50
KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAibm9uZSBhdXRvIjsKK2VsZW1l
bnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAibm9uZSBhdXRvIjsKK3Nob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29s
dW1ucycpIiwgIidub25lJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJ25vbmUnIik7CisK
K2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5zID0g
Im5vbmUgMTZlbSI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm5vbmUgNTYlIjsK
K3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIidub25lJyIpOworc2hvdWxkQmUoImdldENvbXB1
dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dz
JykiLCAiJ25vbmUnIik7CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndl
YmtpdEdyaWRDb2x1bW5zID0gIm5vbmUgbm9uZSI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRS
b3dzID0gIm5vbmUgbm9uZSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsK
K3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93cycpIiwgIidub25lJyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117982</attachid>
            <date>2011-12-05 20:12:06 -0800</date>
            <delta_ts>2011-12-05 20:59:23 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-73272-20111205201205.patch</filename>
            <type>text/plain</type>
            <size>28815</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2ZTk4NjllZmI1MThm
Y2IyMWVmNzhkNjBhN2Q5OTVkMjU0ODIxOS4uMTk5OGE4YmNmOWNiZmFlYmRkYzM0YzU0M2ZmNzlm
ZjUxMGY2Y2I0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTEyLTA1ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBHcmlk
IExheW91dDogQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgbXVsdGlwbGUgZ3JpZC1jb2x1bW5zIG9y
IGdyaWQtcm93cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMyNzIKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisgICAgICAgIFRl
c3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlw
bGUuaHRtbAorCisgICAgICAgIFVwZGF0ZWQgb3VyIHN1cHBvcnRlZCBzeW50YXggdG8gbWF0Y2gg
dGhlIGZvbGxvd2luZzoKKyAgICAgICAgPHRyYWNrLWxpc3Q+IDo9IFsgPHRyYWNrLWJyZWFkdGg+
IF0rIHwgJ25vbmUnCisgICAgICAgIDx0cmFjay1icmVhZHRoPiA6PSA8bGVuZ3RoPiB8IDxwZXJj
ZW50YWdlPiB8ICdhdXRvJworICAgICAgICAodGhlIG5hbWluZyBsb29zZWx5IG1hdGNoZXMgdGhl
IHNwZWNpZmljYXRpb24pCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0aCk6IEFk
ZGVkIGZ1bmN0aW9uIHRvIGhhbmRsZSBhIGJyZWFkdGgKKyAgICAgICAgKGV4dGVuZGVkIHdpdGgg
J2F1dG8nIHRoYXQgdGhlIHNwZWMgcHV0cyBpbiA8dHJhY2stbWlubWF4PikuCisKKyAgICAgICAg
KFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrTGlzdCk6IENyZWF0ZSBhIHNwYWNlIHNlcGVyYXRl
ZCBsaXN0IG9mCisgICAgICAgIHRyYWNrIGJyZWFkdGggb3Igbm9uZS4KKworICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTog
VXBkYXRlZAorICAgICAgICB0byB1c2UgdGhlIG5ldyBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBj
c3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlk
VHJhY2tMaXN0KTogRXh0ZW5kZWQgdGhlIGZ1bmN0aW9uIHRvCisgICAgICAgIG1hdGNoIHRoZSBu
ZXcgc3ludGF4LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9w
ZXJ0eSk6IFJlbW92ZWQgb3VyCisgICAgICAgIHNpbXBsZSBpbXBsZW1lbnRhdGlvbi4gUmVwbGFj
ZWQgYnkgdGhlIENTU1N0eWxlU2VsZWN0b3IgZnVuY3Rpb25zLgorCisgICAgICAgICogY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR3JpZFRyYWNrQnJl
YWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkVHJhY2tMaXN0KToKKyAgICAgICAg
QWRkZWQgdGhvc2UgMiBmdW5jdGlvbnMgdG8gY29udmVydCB0aGUgQ1NTUHJpbWl0aXZlVmFsdWUg
dG8gYSBWZWN0b3IKKyAgICAgICAgYXMgZXhwZWN0ZWQgYnkgUmVuZGVyU3R5bGUuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOiBBZGRlZCBvdXIg
MiBwcm9wZXJ0aWVzCisgICAgICAgIG5vdyB0aGF0IGl0IGlzIG5vdCBoYW5kbGVkIGJ5IENTU1N0
eWxlQXBwbHlQcm9wZXJ0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmdyaWRDb2x1bW5zKToKKyAg
ICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpncmlkUm93cyk6CisgICAgICAgIChXZWJD
b3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0R3JpZENvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SW5oZXJpdGVkRmxhZ3M6OnNldEdyaWRSb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRl
ZEZsYWdzOjppbml0aWFsR3JpZENvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVk
RmxhZ3M6OmluaXRpYWxHcmlkUm93cyk6CisgICAgICAgIFVwZGF0ZWQgdGhlIHByZXZpb3VzIG1l
dGhvZHMgdG8gdGFrZSBhIFZlY3RvciBvZiBMZW5ndGguCisKKyAgICAgICAgKFdlYkNvcmU6Oklu
aGVyaXRlZEZsYWdzOjppbml0aWFsR3JpZFRyYWNrVmFsdWUpOgorICAgICAgICBOZWVkZWQgZnVu
Y3Rpb24gdG8gcmV0dXJuIGEgVmVjdG9yIHdpdGggb25lICdub25lJyBMZW5ndGggKHRoZSBpbml0
aWFsCisgICAgICAgIHZhbHVlIHBlciB0aGUgc3BlY2lmaWNhdGlvbikuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oOiBVcGRhdGVkIHRvIHVzZSBhIFZlY3Rvci4K
KwogMjAxMS0xMi0wNSAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGJjNTFhZTk0NjgzNzM2OWY3
NmZkNmE1ODU3NDExMTM1NWMwNWQ0NWYuLmUxY2VjZTQxMGY2NmQyMmQ2NjY1Nzk1YzcwMzdlZjEx
NjUyMWFiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC03OTQsMTYgKzc5NCwyOSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnZhbHVlRm9yRmlsdGVyKFJlbmRlclN0eWxl
KiBzdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQotc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChjb25zdCBMZW5ndGgmIHRyYWNr
TGVuZ3RoLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIENTU1ZhbHVlUG9vbCogY3NzVmFsdWVQ
b29sKQorc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0
aChjb25zdCBMZW5ndGgmIHRyYWNrTGVuZ3RoLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIENT
U1ZhbHVlUG9vbCogY3NzVmFsdWVQb29sKQogewogICAgIGlmICh0cmFja0xlbmd0aC5pc1BlcmNl
bnQoKSkKICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUodHJhY2tMZW5n
dGgpOwogICAgIGlmICh0cmFja0xlbmd0aC5pc0F1dG8oKSkKICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7Ci0gICAgaWYgKHRy
YWNrTGVuZ3RoLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwogICAgIHJldHVybiB6b29tQWRqdXN0
ZWRQaXhlbFZhbHVlKHRyYWNrTGVuZ3RoLnZhbHVlKCksIHN0eWxlLCBjc3NWYWx1ZVBvb2wpOwog
fQorCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KGNv
bnN0IFZlY3RvcjxMZW5ndGg+JiB0cmFja0xlbmd0aHMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSwgQ1NTVmFsdWVQb29sKiBjc3NWYWx1ZVBvb2wpCit7CisgICAgLy8gV2Ugc2hvdWxkIGhhdmUg
YXQgbGVhc3QgYW4gZWxlbWVudCEKKyAgICBBU1NFUlQodHJhY2tMZW5ndGhzLnNpemUoKSk7CisK
KyAgICAvLyBIYW5kbGUgdGhlICdub25lJyBjYXNlIGhlcmUuCisgICAgaWYgKHRyYWNrTGVuZ3Ro
cy5zaXplKCkgPT0gMSAmJiB0cmFja0xlbmd0aHNbMF0uaXNVbmRlZmluZWQoKSkKKyAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7
CisKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVT
cGFjZVNlcGFyYXRlZCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHJhY2tMZW5ndGhz
LnNpemUoKTsgKytpKQorICAgICAgICBsaXN0LT5hcHBlbmQodmFsdWVGb3JHcmlkVHJhY2tCcmVh
ZHRoKHRyYWNrTGVuZ3Roc1tpXSwgc3R5bGUsIGNzc1ZhbHVlUG9vbCkpOworICAgIHJldHVybiBs
aXN0LnJlbGVhc2UoKTsKK30KICNlbmRpZgogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Z2V0RGVsYXlWYWx1ZShjb25zdCBBbmltYXRpb25MaXN0KiBhbmltTGlzdCwgQ1NTVmFsdWVQb29s
KiBjc3NWYWx1ZVBvb2wpCkBAIC0xNTE1LDEyICsxNTI4LDEwIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQg
cHJvcGVyCiAgICAgICAgIH0KICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnM6IHsKLSAgICAgICAgICAgIExlbmd0aCBn
cmlkQ29sdW1ucyA9IHN0eWxlLT5ncmlkQ29sdW1ucygpOwotICAgICAgICAgICAgcmV0dXJuIHZh
bHVlRm9yR3JpZFRyYWNrTGlzdChncmlkQ29sdW1ucywgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9v
bCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KHN0eWxlLT5ncmlk
Q29sdW1ucygpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6IHsKLSAgICAgICAgICAgIExlbmd0aCBn
cmlkUm93cyA9IHN0eWxlLT5ncmlkUm93cygpOwotICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9y
R3JpZFRyYWNrTGlzdChncmlkUm93cywgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CisgICAg
ICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KHN0eWxlLT5ncmlkUm93cygpLCBz
dHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlIZWlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDEwY2Iy
ZGM5MTA4YmViZThjZGE5M2Q3YTkxMDRiMDU1NDVhNGZmMDguLjFlZWRlNzFlMmZkMzZlZTVkZjlm
MTIzMzg4YTdlZjRmMzI0Y2I5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0zNTI2
LDE2ICszNTI2LDI2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KGlu
dCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mIHJlc3VsdCkKIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZUdyaWRUcmFja0xpc3QoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgQ1NTUGFy
c2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKLSAgICBpZiAodmFsdWUt
PmlkID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBdXRvKSB7CisgICAg
aWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVMaXN0
LT5uZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgYWRkUHJvcGVy
dHkocHJvcElkLCBjc3NWYWx1ZVBvb2woKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5p
ZCksIGltcG9ydGFudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmICh2
YWxpZFVuaXQodmFsdWUsIEZMZW5ndGggfCBGUGVyY2VudCwgbV9zdHJpY3QpKSB7Ci0gICAgICAg
IGFkZFByb3BlcnR5KHByb3BJZCwgY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSwg
aW1wb3J0YW50KTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworICAgIHdo
aWxlICh2YWx1ZSkgeworICAgICAgICBib29sIHZhbGlkID0gdmFsaWRVbml0KHZhbHVlLCBGTGVu
Z3RoIHwgRlBlcmNlbnQsIG1fc3RyaWN0KSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBdXRvOwor
ICAgICAgICBpZiAoIXZhbGlkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS0+aWQgPT0g
Q1NTVmFsdWVBdXRvID8gY3NzVmFsdWVQb29sKCktPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NW
YWx1ZUF1dG8pIDogY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKTsKKyAgICAgICAg
dmFsdWVzLT5hcHBlbmQocHJpbWl0aXZlVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgdmFsdWUg
PSBtX3ZhbHVlTGlzdC0+bmV4dCgpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgYWRk
UHJvcGVydHkocHJvcElkLCB2YWx1ZXMucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgIHJldHVy
biB0cnVlOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZUFwcGx5UHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQ
cm9wZXJ0eS5jcHAKaW5kZXggZTcxOWM0MGQ4YWZmYzk4ZTg0NDZmZGE1OThiOTJkYzQyY2NkNjhl
YS4uMDlmZTk0M2ViODM1YmI5YTY0ODUzMjZjOGRjMTk5NWI4ZGQxZTI2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKQEAgLTEzMzEsMTEgKzEzMzEs
NiBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eSgpCiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm90dG9tLCBBcHBseVByb3BlcnR5TGVuZ3Ro
PCZSZW5kZXJTdHlsZTo6Ym90dG9tLCAmUmVuZGVyU3R5bGU6OnNldEJvdHRvbSwgJlJlbmRlclN0
eWxlOjppbml0aWFsT2Zmc2V0LCBBdXRvRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5TGVmdCwgQXBwbHlQcm9wZXJ0eUxlbmd0aDwm
UmVuZGVyU3R5bGU6OmxlZnQsICZSZW5kZXJTdHlsZTo6c2V0TGVmdCwgJlJlbmRlclN0eWxlOjpp
bml0aWFsT2Zmc2V0LCBBdXRvRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAKLSNpZiBFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKQotICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdl
YmtpdEdyaWRDb2x1bW5zLCBBcHBseVByb3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6Z3JpZENv
bHVtbnMsICZSZW5kZXJTdHlsZTo6c2V0R3JpZENvbHVtbnMsICZSZW5kZXJTdHlsZTo6aW5pdGlh
bEdyaWRDb2x1bW5zLCBBdXRvRW5hYmxlZCwgSW50cmluc2ljRGlzYWJsZWQsIE1pbkludHJpbnNp
Y0Rpc2FibGVkLCBOb25lRW5hYmxlZCwgVW5kZWZpbmVkRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIo
KSk7Ci0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3MsIEFw
cGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjpncmlkUm93cywgJlJlbmRlclN0eWxlOjpz
ZXRHcmlkUm93cywgJlJlbmRlclN0eWxlOjppbml0aWFsR3JpZFJvd3MsIEF1dG9FbmFibGVkLCBJ
bnRyaW5zaWNEaXNhYmxlZCwgTWluSW50cmluc2ljRGlzYWJsZWQsIE5vbmVFbmFibGVkLCBVbmRl
ZmluZWRFbmFibGVkPjo6Y3JlYXRlSGFuZGxlcigpKTsKLSNlbmRpZgotCiAgICAgc2V0UHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5V2lkdGgsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0
eWxlOjp3aWR0aCwgJlJlbmRlclN0eWxlOjpzZXRXaWR0aCwgJlJlbmRlclN0eWxlOjppbml0aWFs
U2l6ZSwgQXV0b0VuYWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJpbnNpY0VuYWJsZWQs
IE5vbmVEaXNhYmxlZCwgVW5kZWZpbmVkRGlzYWJsZWQsIEZsZXhXaWR0aD46OmNyZWF0ZUhhbmRs
ZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5SGVpZ2h0LCBBcHBseVBy
b3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6aGVpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldEhlaWdo
dCwgJlJlbmRlclN0eWxlOjppbml0aWFsU2l6ZSwgQXV0b0VuYWJsZWQsIEludHJpbnNpY0VuYWJs
ZWQsIE1pbkludHJpbnNpY0VuYWJsZWQsIE5vbmVEaXNhYmxlZCwgVW5kZWZpbmVkRGlzYWJsZWQs
IEZsZXhIZWlnaHQ+OjpjcmVhdGVIYW5kbGVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKaW5kZXggNWU4MzhmNjU5NTZkNzc1NjViZTljMzJmZTJlZDZlNmYxNDk0
ZWVkYS4uODc0ZmY2NmFjY2ZiZDI2Y2EyMzdkNjZjOWIyMDY3ZmU5MjQxYmY0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMjUyMCw2ICsyNTIwLDU5IEBAIGJv
b2wgQ1NTU3R5bGVTZWxlY3Rvcjo6dXNlU1ZHWm9vbVJ1bGVzKCkKICAgICByZXR1cm4gbV9lbGVt
ZW50ICYmIG1fZWxlbWVudC0+aXNTVkdFbGVtZW50KCk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0dS
SURfTEFZT1VUKQorCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tCcmVhZHRoKENTU1ByaW1p
dGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSwgQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIExl
bmd0aCYgbGVuZ3RoKQoreworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZUF1dG8pIHsKKyAgICAgICAgbGVuZ3RoID0gTGVuZ3RoKCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIGludCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2
ZVR5cGUoKTsKKyAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgodHlw
ZSkpIHsKKyAgICAgICAgbGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8TGVu
Z3RoPihzZWxlY3Rvci0+c3R5bGUoKSwgc2VsZWN0b3ItPnJvb3RFbGVtZW50U3R5bGUoKSwgc2Vs
ZWN0b3ItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGxlbmd0aC5zZXRRdWly
ayhwcmltaXRpdmVWYWx1ZS0+aXNRdWlya1ZhbHVlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRB
R0UpIHsKKyAgICAgICAgbGVuZ3RoID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVW
YWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0
dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tMaXN0KENTU1ZhbHVl
KiB2YWx1ZSwgVmVjdG9yPExlbmd0aD4mIGxlbmd0aHMsIENTU1N0eWxlU2VsZWN0b3IqIHNlbGVj
dG9yKQoreworICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkgeworICAgICAgICBmb3IgKENT
U1ZhbHVlTGlzdEl0ZXJhdG9yIGkgPSB2YWx1ZTsgaS5oYXNNb3JlKCk7IGkuYWR2YW5jZSgpKSB7
CisgICAgICAgICAgICBDU1NWYWx1ZSogY3VyclZhbHVlID0gaS52YWx1ZSgpOworICAgICAgICAg
ICAgaWYgKCFjdXJyVmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIExlbmd0aCBsZW5ndGg7CisgICAgICAgICAgICBp
ZiAoIWNyZWF0ZUdyaWRUcmFja0JyZWFkdGgoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
PihjdXJyVmFsdWUpLCBzZWxlY3RvciwgbGVuZ3RoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgICAgIGxlbmd0aHMuYXBwZW5kKGxlbmd0aCk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkpIHsKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CisgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgICAgIGxl
bmd0aHMuYXBwZW5kKExlbmd0aChVbmRlZmluZWQpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1
ZSkKIHsKICAgICBib29sIGlzSW5oZXJpdCA9IG1fcGFyZW50Tm9kZSAmJiB2YWx1ZS0+aXNJbmhl
cml0ZWRWYWx1ZSgpOwpAQCAtMzc3NSw2ICszODI4LDIyIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5zOiB7CisgICAgICAgIFZlY3RvcjxMZW5ndGg+IGxl
bmd0aHM7CisgICAgICAgIGlmICghY3JlYXRlR3JpZFRyYWNrTGlzdCh2YWx1ZSwgbGVuZ3Rocywg
dGhpcykpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3R5bGUtPnNldEdyaWRDb2x1
bW5zKGxlbmd0aHMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRHcmlkUm93czogeworICAgICAgICBWZWN0b3I8TGVuZ3RoPiBsZW5ndGhzOworICAg
ICAgICBpZiAoIWNyZWF0ZUdyaWRUcmFja0xpc3QodmFsdWUsIGxlbmd0aHMsIHRoaXMpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3N0eWxlLT5zZXRHcmlkUm93cyhsZW5ndGhzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogCiAgICAgLy8gVGhlc2UgcHJvcGVydGll
cyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIENTU1N0eWxlQXBwbHlQcm9wZXJ0eSBsb29rdXAgdGFi
bGUuCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbG9yOgpAQCAtMzgzOCwxMCArMzkwNyw2IEBAIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1
ZSkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleEZsb3c6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUZvbnRTdHlsZToKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlhbnQ6Ci0jaWYgRU5B
QkxFKENTU19HUklEX0xBWU9VVCkKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVt
bnM6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgotI2VuZGlmCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmc6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRl
eHRPcmllbnRhdGlvbjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGluZzoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMTkz
MDIzMTg1MDliY2Q2Nzc4MTY5OGZiNDNkYjgwNjFmY2UyZTBiMC4uOTk5YWNiZmVjM2ViOTMzZTky
NmJhMDIzMmZjNmY1Nzc3NzI4NThlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKQEAgLTcyOSw4ICs3MjksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0NvbHVtbkZsZXhGbG93KCkgY29uc3QgeyByZXR1cm4gZmxleEZsb3coKSA9PSBGbG93Q29sdW1u
IHx8IGZsZXhGbG93KCkgPT0gRmxvd0NvbHVtblJldmVyc2U7IH0KIAogI2lmIEVOQUJMRShDU1Nf
R1JJRF9MQVlPVVQpCi0gICAgTGVuZ3RoIGdyaWRDb2x1bW5zKCkgY29uc3QgeyByZXR1cm4gcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkQ29sdW1uczsgfQotICAgIExlbmd0aCBn
cmlkUm93cygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1f
Z3JpZFJvd3M7IH0KKyAgICBjb25zdCBWZWN0b3I8TGVuZ3RoPiYgZ3JpZENvbHVtbnMoKSBjb25z
dCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRDb2x1bW5zOyB9
CisgICAgY29uc3QgVmVjdG9yPExlbmd0aD4mIGdyaWRSb3dzKCkgY29uc3QgeyByZXR1cm4gcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkUm93czsgfQogI2VuZGlmCiAKICAgICBj
b25zdCBTaGFkb3dEYXRhKiBib3hTaGFkb3coKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9ib3hTaGFkb3cuZ2V0KCk7IH0KQEAgLTExNDYsOCArMTE0Niw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEZsZXhBbGlnbihFRmxleEFsaWduIGEpIHsgU0VUX1ZBUihyYXJlTm9u
SW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9mbGV4aWJsZUJveCwgbV9mbGV4QWxpZ24sIGEpOyB9
CiAgICAgdm9pZCBzZXRGbGV4RmxvdyhFRmxleEZsb3cgZmxvdykgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX2ZsZXhGbG93LCBmbG93KTsg
fQogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCi0gICAgdm9pZCBzZXRHcmlkQ29sdW1ucyhM
ZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1f
Z3JpZCwgbV9ncmlkQ29sdW1ucywgbGVuZ3RoKTsgfQotICAgIHZvaWQgc2V0R3JpZFJvd3MoTGVu
Z3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dy
aWQsIG1fZ3JpZFJvd3MsIGxlbmd0aCk7IH0KKyAgICB2b2lkIHNldEdyaWRDb2x1bW5zKGNvbnN0
IFZlY3RvcjxMZW5ndGg+JiBsZW5ndGhzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fZ3JpZCwgbV9ncmlkQ29sdW1ucywgbGVuZ3Rocyk7IH0KKyAgICB2b2lkIHNl
dEdyaWRSb3dzKGNvbnN0IFZlY3RvcjxMZW5ndGg+JiBsZW5ndGhzKSB7IFNFVF9WQVIocmFyZU5v
bkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZCwgbV9ncmlkUm93cywgbGVuZ3Rocyk7IH0K
ICNlbmRpZgogCiAgICAgdm9pZCBzZXRNYXJxdWVlSW5jcmVtZW50KGNvbnN0IExlbmd0aCYgZikg
eyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1ZWUsIGluY3Jl
bWVudCwgZik7IH0KQEAgLTE1MjUsOCArMTUyNSwxNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBy
aW50Q29sb3JBZGp1c3QgaW5pdGlhbFByaW50Q29sb3JBZGp1c3QoKSB7IHJldHVybiBQcmludENv
bG9yQWRqdXN0RWNvbm9teTsgfQogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKLSAgICBz
dGF0aWMgTGVuZ3RoIGluaXRpYWxHcmlkQ29sdW1ucygpIHsgcmV0dXJuIExlbmd0aChVbmRlZmlu
ZWQpOyB9Ci0gICAgc3RhdGljIExlbmd0aCBpbml0aWFsR3JpZFJvd3MoKSB7IHJldHVybiBMZW5n
dGgoVW5kZWZpbmVkKTsgfQorICAgIC8vIFRoZSBpbml0aWFsIHZhbHVlIGlzICdub25lJyBmb3Ig
Z3JpZCB0cmFja3MuCisgICAgc3RhdGljIFZlY3RvcjxMZW5ndGg+IGluaXRpYWxHcmlkVHJhY2tW
YWx1ZSgpCisgICAgeworICAgICAgICBzdGF0aWMgVmVjdG9yPExlbmd0aD4gZGVmYXVsdExlbmd0
aDsKKyAgICAgICAgLy8gV2UgbmVlZCB0byBtYW51YWxseSBhZGQgdGhlIExlbmd0aCBoZXJlIGFz
IHRoZSBMZW5ndGgoMCkgaXMgJ2F1dG8nLgorICAgICAgICBpZiAoIWRlZmF1bHRMZW5ndGguc2l6
ZSgpKQorICAgICAgICAgICAgZGVmYXVsdExlbmd0aC5hcHBlbmQoTGVuZ3RoKFVuZGVmaW5lZCkp
OworICAgICAgICByZXR1cm4gZGVmYXVsdExlbmd0aDsKKyAgICB9CisgICAgc3RhdGljIFZlY3Rv
cjxMZW5ndGg+IGluaXRpYWxHcmlkQ29sdW1ucygpIHsgcmV0dXJuIGluaXRpYWxHcmlkVHJhY2tW
YWx1ZSgpOyB9CisgICAgc3RhdGljIFZlY3RvcjxMZW5ndGg+IGluaXRpYWxHcmlkUm93cygpIHsg
cmV0dXJuIGluaXRpYWxHcmlkVHJhY2tWYWx1ZSgpOyB9CiAjZW5kaWYKIAogICAgIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIGluaXRpYWxMaW5lR3JpZCgpIHsgcmV0dXJuIG51bGxBdG9tOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaAppbmRl
eCAzMzcxMDQxNGVjNzVjZGQ2N2JkYjg0MDY0ZWE1NDk0Zjg4ZmE5OWQyLi41NTg0NDQzYjI0MDM0
YWVjNWNjOWI0ZGJmYTJlYzAwMDI2NjA5ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJM
ZW5ndGguaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTUxLDggKzUyLDggQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IEZvciB0aGUgbW9t
ZW50LCB3ZSBvbmx5IHN1cHBvcnQgYSBzdWJzZXQgb2YgdGhlIGdyYW1tYXIgd2hpY2ggY29ycmVz
cG9uZCB0bzoKICAgICAvLyAnYXV0bycgfCA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8ICdub25l
JwotICAgIExlbmd0aCBtX2dyaWRDb2x1bW5zOwotICAgIExlbmd0aCBtX2dyaWRSb3dzOworICAg
IFZlY3RvcjxMZW5ndGg+IG1fZ3JpZENvbHVtbnM7CisgICAgVmVjdG9yPExlbmd0aD4gbV9ncmlk
Um93czsKIAogcHJpdmF0ZToKICAgICBTdHlsZUdyaWREYXRhKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTVkMzMwYThi
NzIyMTM2YmY2MzM5NDQ4Y2ZkNzdiNzk3YjI4MTY2ZC4uZjRlZjhiMTk1Y2EzOTU5ZDRjOTA4MTBl
OTI2OTBiOGFhOTBhODk5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTEyLTA1ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBHcmlk
IExheW91dDogQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgbXVsdGlwbGUgZ3JpZC1jb2x1bW5zIG9y
IGdyaWQtcm93cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMyNzIKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisgICAgICAgICog
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
Y29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVs
dGlwbGUuanM6IEFkZGVkLgorCiAyMDExLTEyLTA1ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFA
YWRvYmUuY29tPgogCiAgICAgICAgIFtyZWdpb25zXSBOZWVkIHRvIHZlcmlmeSB0aGUgY29ycmVj
dG5lc3Mgb2YgV2luL0xpbnV4IG9uIG92ZXJmbG93IGJyZWFrIHRlc3RzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0
LW11bHRpcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYxOTAxNjRhZmU1NWY3NzRjNWY3YmE1ZTlkMDViNzk4OTQ0YzIzMWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93
cy1nZXQtc2V0LW11bHRpcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUyIEBACitUZXN0IHRo
YXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWNvbHVtbnMgYW5kIGdyaWQtcm93cyB3b3JrcyBh
cyBleHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBnZXR0aW5n
IHxkaXNwbGF5fCBzZXQgdGhyb3VnaCBDU1MKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0
aEZpeGVkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5z
JykgaXMgJzdweCAxMXB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoRml4ZWRFbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnMTdweCAy
cHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJjZW50RWxlbWVudCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJzUzJSA5OSUnCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJjZW50RWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzI3JSA1MiUnCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZ3JpZFdpdGhBdXRvRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1jb2x1bW5zJykgaXMgJ2F1dG8gYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlk
V2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3Mn
KSBpcyAnYXV0byBhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoRU1FbGVtZW50
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnMTAwcHgg
MTIwcHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhFTUVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICcxNTBweCAxNzBweCcKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aFRocmVlSXRlbXMsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICcxNXB4IGF1dG8gMTAwcHgnCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZ3JpZFdpdGhUaHJlZUl0ZW1zLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLXJvd3MnKSBpcyAnMTIwcHggMThweCBhdXRvJworCitUZXN0IHRoZSBpbml0aWFs
IHZhbHVlCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ25vbmUnCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMg
J25vbmUnCisKK1Rlc3QgZ2V0dGluZyBhbmQgc2V0dGluZyBkaXNwbGF5IHRocm91Z2ggSlMKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLWNvbHVtbnMnKSBpcyAnMThweCAyMnB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICc2NnB4
IDcwcHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJzU1JSA4MCUnCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykg
aXMgJzQwJSA2MyUnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ2F1dG8gYXV0bycKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LXJvd3MnKSBpcyAnYXV0byBhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdhdXRvIDE2MHB4
IDIycHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzU2JSAxMDBweCBhdXRvJworCitUZXN0IGdldHRp
bmcgd3JvbmcgdmFsdWVzIHNldCBmcm9tIENTUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRX
aXRoTm9uZUFuZEF1dG8sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1u
cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoTm9uZUFuZEF1dG8s
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoTm9uZUFuZEZpeGVkLCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnbm9uZScKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShncmlkV2l0aE5vbmVBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1yb3dzJykgaXMgJ25vbmUnCisKK1Rlc3Qgc2V0dGluZyBhbmQgZ2V0dGluZyB3cm9uZyB2
YWx1ZXMgZnJvbSBKUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIGlzICdub25lJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xOTYyYjAyN2MwY2I3ZmQyMTExY2RhMGZmYmE3OGVmNGU3MzM4NTkzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1
bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+CisuZ3JpZFdpdGhGaXhlZCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ncmlkOworICAg
IC13ZWJraXQtZ3JpZC1jb2x1bW5zOiA3cHggMTFweDsKKyAgICAtd2Via2l0LWdyaWQtcm93czog
MTdweCAycHg7Cit9CisKKy5ncmlkV2l0aFBlcmNlbnQgeworICAgIGRpc3BsYXk6IC13ZWJraXQt
Z3JpZDsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogNTMlIDk5JTsKKyAgICAtd2Via2l0LWdy
aWQtcm93czogMjclIDUyJTsKK30KKy5ncmlkV2l0aEF1dG8geworICAgIGRpc3BsYXk6IC13ZWJr
aXQtZ3JpZDsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogYXV0byBhdXRvOworICAgIC13ZWJr
aXQtZ3JpZC1yb3dzOiBhdXRvIGF1dG87Cit9CisuZ3JpZFdpdGhFTSB7CisgICAgZGlzcGxheTog
LXdlYmtpdC1ncmlkOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiAxMGVtIDEyZW07CisgICAg
LXdlYmtpdC1ncmlkLXJvd3M6IDE1ZW0gMTdlbTsKKyAgICBmb250OiAxMHB4IEFoZW07Cit9Cisu
Z3JpZFdpdGhOb25lQW5kQXV0byB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ncmlkOworICAgIC13
ZWJraXQtZ3JpZC1jb2x1bW5zOiBub25lIGF1dG87CisgICAgLXdlYmtpdC1ncmlkLXJvd3M6IG5v
bmUgYXV0bzsKK30KKy5ncmlkTm9uZVdpdGhBbmRGaXhlZCB7CisgICAgZGlzcGxheTogLXdlYmtp
dC1ncmlkOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiBub25lIDE1cHg7CisgICAgLXdlYmtp
dC1ncmlkLXJvd3M6IG5vbmUgMjJweDsKK30KKy5ncmlkV2l0aFRocmVlSXRlbXMgeworICAgIGRp
c3BsYXk6IC13ZWJraXQtZ3JpZDsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogMTVweCBhdXRv
IDEwZW07CisgICAgLXdlYmtpdC1ncmlkLXJvd3M6IDEyZW0gMThweCBhdXRvOworICAgIGZvbnQ6
IDEwcHggQWhlbTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZ3Jp
ZFdpdGhGaXhlZCIgaWQ9ImdyaWRXaXRoRml4ZWRFbGVtZW50Ij48L2Rpdj4KKzxkaXYgY2xhc3M9
ImdyaWRXaXRoUGVyY2VudCIgaWQ9ImdyaWRXaXRoUGVyY2VudEVsZW1lbnQiPjwvZGl2PgorPGRp
diBjbGFzcz0iZ3JpZFdpdGhBdXRvIiBpZD0iZ3JpZFdpdGhBdXRvRWxlbWVudCI+PC9kaXY+Cis8
ZGl2IGNsYXNzPSJncmlkV2l0aEVNIiBpZD0iZ3JpZFdpdGhFTUVsZW1lbnQiPjwvZGl2PgorPGRp
diBjbGFzcz0iZ3JpZFdpdGhOb25lQW5kQXV0byIgaWQ9ImdyaWRXaXRoTm9uZUFuZEF1dG8iPjwv
ZGl2PgorPGRpdiBjbGFzcz0iZ3JpZFdpdGhOb25lQW5kRml4ZWQiIGlkPSJncmlkV2l0aE5vbmVB
bmRGaXhlZCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkV2l0aFRocmVlSXRlbXMiIGlkPSJncmlk
V2l0aFRocmVlSXRlbXMiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ncmlkLWNvbHVt
bnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9n
cmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlw
bGUuanMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTgxMDhlODcyYzYwYzY4ZGM4YWM3YzllNDU4MTA3MWFmMWQ0MmMx
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jl
c291cmNlcy9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmpzCkBAIC0wLDAgKzEs
MTA1IEBACitkZXNjcmlwdGlvbignVGVzdCB0aGF0IHNldHRpbmcgYW5kIGdldHRpbmcgZ3JpZC1j
b2x1bW5zIGFuZCBncmlkLXJvd3Mgd29ya3MgYXMgZXhwZWN0ZWQnKTsKKworZGVidWcoIlRlc3Qg
Z2V0dGluZyB8ZGlzcGxheXwgc2V0IHRocm91Z2ggQ1NTIik7Cit2YXIgZ3JpZFdpdGhGaXhlZEVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhGaXhlZEVsZW1lbnQiKTsK
K3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoRml4ZWRFbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInN3B4IDExcHgnIik7Citz
aG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEZpeGVkRWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJzE3cHggMnB4JyIpOworCit2YXIg
Z3JpZFdpdGhQZXJjZW50RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkV2l0
aFBlcmNlbnRFbGVtZW50Iik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aFBl
cmNlbnRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMn
KSIsICInNTMlIDk5JSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoUGVy
Y2VudEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwg
IicyNyUgNTIlJyIpOworCit2YXIgZ3JpZFdpdGhBdXRvRWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJncmlkV2l0aEF1dG9FbGVtZW50Iik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRT
dHlsZShncmlkV2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWNvbHVtbnMnKSIsICInYXV0byBhdXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5
bGUoZ3JpZFdpdGhBdXRvRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3Jp
ZC1yb3dzJykiLCAiJ2F1dG8gYXV0byciKTsKKwordmFyIGdyaWRXaXRoRU1FbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRoRU1FbGVtZW50Iik7CitzaG91bGRCZSgiZ2V0
Q29tcHV0ZWRTdHlsZShncmlkV2l0aEVNRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJzEwMHB4IDEyMHB4JyIpOworc2hvdWxkQmUoImdldENv
bXB1dGVkU3R5bGUoZ3JpZFdpdGhFTUVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtcm93cycpIiwgIicxNTBweCAxNzBweCciKTsKKwordmFyIGdyaWRXaXRoVGhyZWVJ
dGVtcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkV2l0aFRocmVlSXRlbXMiKTsKK3No
b3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoVGhyZWVJdGVtcywgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJzE1cHggYXV0byAxMDBweCciKTsK
K3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoVGhyZWVJdGVtcywgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJzEyMHB4IDE4cHggYXV0byciKTsK
KworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdGhlIGluaXRpYWwgdmFsdWUiKTsKK3ZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVsZW1lbnQpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUnIik7Citz
aG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvd3MnKSIsICInbm9uZSciKTsKKworZGVidWcoIiIpOworZGVidWcoIlRl
c3QgZ2V0dGluZyBhbmQgc2V0dGluZyBkaXNwbGF5IHRocm91Z2ggSlMiKTsKK2VsZW1lbnQuc3R5
bGUud2Via2l0R3JpZENvbHVtbnMgPSAiMThweCAyMnB4IjsKK2VsZW1lbnQuc3R5bGUud2Via2l0
R3JpZFJvd3MgPSAiNjZweCA3MHB4IjsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1l
bnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIicxOHB4
IDIycHgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInNjZweCA3MHB4JyIpOworCitlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVsZW1lbnQpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1ucyA9ICI1NSUg
ODAlIjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAiNDAlIDYzJSI7CitzaG91bGRC
ZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLWNvbHVtbnMnKSIsICInNTUlIDgwJSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0
eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwg
Iic0MCUgNjMlJyIpOworCitlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworZWxlbWVudC5zdHlsZS53ZWJr
aXRHcmlkQ29sdW1ucyA9ICJhdXRvIGF1dG8iOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93
cyA9ICJhdXRvIGF1dG8iOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ2F1dG8gYXV0byci
KTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidhdXRvIGF1dG8nIik7CisKK2VsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLmZvbnQgPSAiMTBweCBBaGVtIjsKK2VsZW1lbnQuc3R5
bGUud2Via2l0R3JpZENvbHVtbnMgPSAiYXV0byAxNmVtIDIycHgiOworZWxlbWVudC5zdHlsZS53
ZWJraXRHcmlkUm93cyA9ICI1NiUgMTBlbSBhdXRvIjsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0
eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycp
IiwgIidhdXRvIDE2MHB4IDIycHgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInNTYlIDEw
MHB4IGF1dG8nIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IGdldHRpbmcgd3JvbmcgdmFs
dWVzIHNldCBmcm9tIENTUyIpOwordmFyIGdyaWRXaXRoTm9uZUFuZEF1dG8gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhOb25lQW5kQXV0byIpOworc2hvdWxkQmUoImdldENvbXB1
dGVkU3R5bGUoZ3JpZFdpdGhOb25lQW5kQXV0bywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHls
ZShncmlkV2l0aE5vbmVBbmRBdXRvLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LXJvd3MnKSIsICInbm9uZSciKTsKKwordmFyIGdyaWRXaXRoTm9uZUFuZEZpeGVkID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRoTm9uZUFuZEZpeGVkIik7CitzaG91bGRCZSgiZ2V0
Q29tcHV0ZWRTdHlsZShncmlkV2l0aE5vbmVBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0
ZWRTdHlsZShncmlkV2l0aE5vbmVBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1yb3dzJykiLCAiJ25vbmUnIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHNl
dHRpbmcgYW5kIGdldHRpbmcgd3JvbmcgdmFsdWVzIGZyb20gSlMiKTsKK2VsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIm5vbmUgYXV0byI7Citl
bGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm5vbmUgYXV0byI7CitzaG91bGRCZSgiZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1l
bnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidub25lJyIp
OworCitlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1u
cyA9ICJub25lIDE2ZW0iOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93cyA9ICJub25lIDU2
JSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
cm93cycpIiwgIidub25lJyIpOworCitlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworZWxlbWVudC5zdHls
ZS53ZWJraXRHcmlkQ29sdW1ucyA9ICJub25lIG5vbmUiOworZWxlbWVudC5zdHlsZS53ZWJraXRH
cmlkUm93cyA9ICJub25lIG5vbmUiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUn
Iik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInbm9uZSciKTsKKworZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiYXV0byBub25lIjsKK2Vs
ZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAiYXV0byBub25lIjsKK3Nob3VsZEJlKCJnZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
Y29sdW1ucycpIiwgIidub25lJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJ25vbmUnIik7
CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5z
ID0gImF1dG8gbm9uZSAxNmVtIjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAiYXV0
byAxOGVtIG5vbmUiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUnIik7CitzaG91
bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLXJvd3MnKSIsICInbm9uZSciKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117987</attachid>
            <date>2011-12-05 20:59:25 -0800</date>
            <delta_ts>2011-12-06 14:10:26 -0800</delta_ts>
            <desc>Patch for landing for tomorrow.</desc>
            <filename>bug-73272-20111205205924.patch</filename>
            <type>text/plain</type>
            <size>31386</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2ZTk4NjllZmI1MThm
Y2IyMWVmNzhkNjBhN2Q5OTVkMjU0ODIxOS4uMTk5OGE4YmNmOWNiZmFlYmRkYzM0YzU0M2ZmNzlm
ZjUxMGY2Y2I0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTEyLTA1ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBHcmlk
IExheW91dDogQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgbXVsdGlwbGUgZ3JpZC1jb2x1bW5zIG9y
IGdyaWQtcm93cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMyNzIKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisgICAgICAgIFRl
c3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlw
bGUuaHRtbAorCisgICAgICAgIFVwZGF0ZWQgb3VyIHN1cHBvcnRlZCBzeW50YXggdG8gbWF0Y2gg
dGhlIGZvbGxvd2luZzoKKyAgICAgICAgPHRyYWNrLWxpc3Q+IDo9IFsgPHRyYWNrLWJyZWFkdGg+
IF0rIHwgJ25vbmUnCisgICAgICAgIDx0cmFjay1icmVhZHRoPiA6PSA8bGVuZ3RoPiB8IDxwZXJj
ZW50YWdlPiB8ICdhdXRvJworICAgICAgICAodGhlIG5hbWluZyBsb29zZWx5IG1hdGNoZXMgdGhl
IHNwZWNpZmljYXRpb24pCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0aCk6IEFk
ZGVkIGZ1bmN0aW9uIHRvIGhhbmRsZSBhIGJyZWFkdGgKKyAgICAgICAgKGV4dGVuZGVkIHdpdGgg
J2F1dG8nIHRoYXQgdGhlIHNwZWMgcHV0cyBpbiA8dHJhY2stbWlubWF4PikuCisKKyAgICAgICAg
KFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrTGlzdCk6IENyZWF0ZSBhIHNwYWNlIHNlcGVyYXRl
ZCBsaXN0IG9mCisgICAgICAgIHRyYWNrIGJyZWFkdGggb3Igbm9uZS4KKworICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTog
VXBkYXRlZAorICAgICAgICB0byB1c2UgdGhlIG5ldyBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBj
c3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlk
VHJhY2tMaXN0KTogRXh0ZW5kZWQgdGhlIGZ1bmN0aW9uIHRvCisgICAgICAgIG1hdGNoIHRoZSBu
ZXcgc3ludGF4LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9w
ZXJ0eSk6IFJlbW92ZWQgb3VyCisgICAgICAgIHNpbXBsZSBpbXBsZW1lbnRhdGlvbi4gUmVwbGFj
ZWQgYnkgdGhlIENTU1N0eWxlU2VsZWN0b3IgZnVuY3Rpb25zLgorCisgICAgICAgICogY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR3JpZFRyYWNrQnJl
YWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkVHJhY2tMaXN0KToKKyAgICAgICAg
QWRkZWQgdGhvc2UgMiBmdW5jdGlvbnMgdG8gY29udmVydCB0aGUgQ1NTUHJpbWl0aXZlVmFsdWUg
dG8gYSBWZWN0b3IKKyAgICAgICAgYXMgZXhwZWN0ZWQgYnkgUmVuZGVyU3R5bGUuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOiBBZGRlZCBvdXIg
MiBwcm9wZXJ0aWVzCisgICAgICAgIG5vdyB0aGF0IGl0IGlzIG5vdCBoYW5kbGVkIGJ5IENTU1N0
eWxlQXBwbHlQcm9wZXJ0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmdyaWRDb2x1bW5zKToKKyAg
ICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpncmlkUm93cyk6CisgICAgICAgIChXZWJD
b3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0R3JpZENvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SW5oZXJpdGVkRmxhZ3M6OnNldEdyaWRSb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRl
ZEZsYWdzOjppbml0aWFsR3JpZENvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVk
RmxhZ3M6OmluaXRpYWxHcmlkUm93cyk6CisgICAgICAgIFVwZGF0ZWQgdGhlIHByZXZpb3VzIG1l
dGhvZHMgdG8gdGFrZSBhIFZlY3RvciBvZiBMZW5ndGguCisKKyAgICAgICAgKFdlYkNvcmU6Oklu
aGVyaXRlZEZsYWdzOjppbml0aWFsR3JpZFRyYWNrVmFsdWUpOgorICAgICAgICBOZWVkZWQgZnVu
Y3Rpb24gdG8gcmV0dXJuIGEgVmVjdG9yIHdpdGggb25lICdub25lJyBMZW5ndGggKHRoZSBpbml0
aWFsCisgICAgICAgIHZhbHVlIHBlciB0aGUgc3BlY2lmaWNhdGlvbikuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oOiBVcGRhdGVkIHRvIHVzZSBhIFZlY3Rvci4K
KwogMjAxMS0xMi0wNSAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGJjNTFhZTk0NjgzNzM2OWY3
NmZkNmE1ODU3NDExMTM1NWMwNWQ0NWYuLmUxY2VjZTQxMGY2NmQyMmQ2NjY1Nzk1YzcwMzdlZjEx
NjUyMWFiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC03OTQsMTYgKzc5NCwyOSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnZhbHVlRm9yRmlsdGVyKFJlbmRlclN0eWxl
KiBzdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQotc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChjb25zdCBMZW5ndGgmIHRyYWNr
TGVuZ3RoLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIENTU1ZhbHVlUG9vbCogY3NzVmFsdWVQ
b29sKQorc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0
aChjb25zdCBMZW5ndGgmIHRyYWNrTGVuZ3RoLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIENT
U1ZhbHVlUG9vbCogY3NzVmFsdWVQb29sKQogewogICAgIGlmICh0cmFja0xlbmd0aC5pc1BlcmNl
bnQoKSkKICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUodHJhY2tMZW5n
dGgpOwogICAgIGlmICh0cmFja0xlbmd0aC5pc0F1dG8oKSkKICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7Ci0gICAgaWYgKHRy
YWNrTGVuZ3RoLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwogICAgIHJldHVybiB6b29tQWRqdXN0
ZWRQaXhlbFZhbHVlKHRyYWNrTGVuZ3RoLnZhbHVlKCksIHN0eWxlLCBjc3NWYWx1ZVBvb2wpOwog
fQorCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KGNv
bnN0IFZlY3RvcjxMZW5ndGg+JiB0cmFja0xlbmd0aHMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSwgQ1NTVmFsdWVQb29sKiBjc3NWYWx1ZVBvb2wpCit7CisgICAgLy8gV2Ugc2hvdWxkIGhhdmUg
YXQgbGVhc3QgYW4gZWxlbWVudCEKKyAgICBBU1NFUlQodHJhY2tMZW5ndGhzLnNpemUoKSk7CisK
KyAgICAvLyBIYW5kbGUgdGhlICdub25lJyBjYXNlIGhlcmUuCisgICAgaWYgKHRyYWNrTGVuZ3Ro
cy5zaXplKCkgPT0gMSAmJiB0cmFja0xlbmd0aHNbMF0uaXNVbmRlZmluZWQoKSkKKyAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7
CisKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVT
cGFjZVNlcGFyYXRlZCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHJhY2tMZW5ndGhz
LnNpemUoKTsgKytpKQorICAgICAgICBsaXN0LT5hcHBlbmQodmFsdWVGb3JHcmlkVHJhY2tCcmVh
ZHRoKHRyYWNrTGVuZ3Roc1tpXSwgc3R5bGUsIGNzc1ZhbHVlUG9vbCkpOworICAgIHJldHVybiBs
aXN0LnJlbGVhc2UoKTsKK30KICNlbmRpZgogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Z2V0RGVsYXlWYWx1ZShjb25zdCBBbmltYXRpb25MaXN0KiBhbmltTGlzdCwgQ1NTVmFsdWVQb29s
KiBjc3NWYWx1ZVBvb2wpCkBAIC0xNTE1LDEyICsxNTI4LDEwIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQg
cHJvcGVyCiAgICAgICAgIH0KICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnM6IHsKLSAgICAgICAgICAgIExlbmd0aCBn
cmlkQ29sdW1ucyA9IHN0eWxlLT5ncmlkQ29sdW1ucygpOwotICAgICAgICAgICAgcmV0dXJuIHZh
bHVlRm9yR3JpZFRyYWNrTGlzdChncmlkQ29sdW1ucywgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9v
bCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KHN0eWxlLT5ncmlk
Q29sdW1ucygpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6IHsKLSAgICAgICAgICAgIExlbmd0aCBn
cmlkUm93cyA9IHN0eWxlLT5ncmlkUm93cygpOwotICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9y
R3JpZFRyYWNrTGlzdChncmlkUm93cywgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CisgICAg
ICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KHN0eWxlLT5ncmlkUm93cygpLCBz
dHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlIZWlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDEwY2Iy
ZGM5MTA4YmViZThjZGE5M2Q3YTkxMDRiMDU1NDVhNGZmMDguLjFlZWRlNzFlMmZkMzZlZTVkZjlm
MTIzMzg4YTdlZjRmMzI0Y2I5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0zNTI2
LDE2ICszNTI2LDI2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KGlu
dCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mIHJlc3VsdCkKIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZUdyaWRUcmFja0xpc3QoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgQ1NTUGFy
c2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKLSAgICBpZiAodmFsdWUt
PmlkID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBdXRvKSB7CisgICAg
aWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVMaXN0
LT5uZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgYWRkUHJvcGVy
dHkocHJvcElkLCBjc3NWYWx1ZVBvb2woKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5p
ZCksIGltcG9ydGFudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmICh2
YWxpZFVuaXQodmFsdWUsIEZMZW5ndGggfCBGUGVyY2VudCwgbV9zdHJpY3QpKSB7Ci0gICAgICAg
IGFkZFByb3BlcnR5KHByb3BJZCwgY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSwg
aW1wb3J0YW50KTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworICAgIHdo
aWxlICh2YWx1ZSkgeworICAgICAgICBib29sIHZhbGlkID0gdmFsaWRVbml0KHZhbHVlLCBGTGVu
Z3RoIHwgRlBlcmNlbnQsIG1fc3RyaWN0KSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBdXRvOwor
ICAgICAgICBpZiAoIXZhbGlkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS0+aWQgPT0g
Q1NTVmFsdWVBdXRvID8gY3NzVmFsdWVQb29sKCktPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NW
YWx1ZUF1dG8pIDogY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKTsKKyAgICAgICAg
dmFsdWVzLT5hcHBlbmQocHJpbWl0aXZlVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgdmFsdWUg
PSBtX3ZhbHVlTGlzdC0+bmV4dCgpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgYWRk
UHJvcGVydHkocHJvcElkLCB2YWx1ZXMucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgIHJldHVy
biB0cnVlOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZUFwcGx5UHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQ
cm9wZXJ0eS5jcHAKaW5kZXggZTcxOWM0MGQ4YWZmYzk4ZTg0NDZmZGE1OThiOTJkYzQyY2NkNjhl
YS4uMDlmZTk0M2ViODM1YmI5YTY0ODUzMjZjOGRjMTk5NWI4ZGQxZTI2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKQEAgLTEzMzEsMTEgKzEzMzEs
NiBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eSgpCiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm90dG9tLCBBcHBseVByb3BlcnR5TGVuZ3Ro
PCZSZW5kZXJTdHlsZTo6Ym90dG9tLCAmUmVuZGVyU3R5bGU6OnNldEJvdHRvbSwgJlJlbmRlclN0
eWxlOjppbml0aWFsT2Zmc2V0LCBBdXRvRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5TGVmdCwgQXBwbHlQcm9wZXJ0eUxlbmd0aDwm
UmVuZGVyU3R5bGU6OmxlZnQsICZSZW5kZXJTdHlsZTo6c2V0TGVmdCwgJlJlbmRlclN0eWxlOjpp
bml0aWFsT2Zmc2V0LCBBdXRvRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAKLSNpZiBFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKQotICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdl
YmtpdEdyaWRDb2x1bW5zLCBBcHBseVByb3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6Z3JpZENv
bHVtbnMsICZSZW5kZXJTdHlsZTo6c2V0R3JpZENvbHVtbnMsICZSZW5kZXJTdHlsZTo6aW5pdGlh
bEdyaWRDb2x1bW5zLCBBdXRvRW5hYmxlZCwgSW50cmluc2ljRGlzYWJsZWQsIE1pbkludHJpbnNp
Y0Rpc2FibGVkLCBOb25lRW5hYmxlZCwgVW5kZWZpbmVkRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIo
KSk7Ci0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3MsIEFw
cGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjpncmlkUm93cywgJlJlbmRlclN0eWxlOjpz
ZXRHcmlkUm93cywgJlJlbmRlclN0eWxlOjppbml0aWFsR3JpZFJvd3MsIEF1dG9FbmFibGVkLCBJ
bnRyaW5zaWNEaXNhYmxlZCwgTWluSW50cmluc2ljRGlzYWJsZWQsIE5vbmVFbmFibGVkLCBVbmRl
ZmluZWRFbmFibGVkPjo6Y3JlYXRlSGFuZGxlcigpKTsKLSNlbmRpZgotCiAgICAgc2V0UHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5V2lkdGgsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0
eWxlOjp3aWR0aCwgJlJlbmRlclN0eWxlOjpzZXRXaWR0aCwgJlJlbmRlclN0eWxlOjppbml0aWFs
U2l6ZSwgQXV0b0VuYWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJpbnNpY0VuYWJsZWQs
IE5vbmVEaXNhYmxlZCwgVW5kZWZpbmVkRGlzYWJsZWQsIEZsZXhXaWR0aD46OmNyZWF0ZUhhbmRs
ZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5SGVpZ2h0LCBBcHBseVBy
b3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6aGVpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldEhlaWdo
dCwgJlJlbmRlclN0eWxlOjppbml0aWFsU2l6ZSwgQXV0b0VuYWJsZWQsIEludHJpbnNpY0VuYWJs
ZWQsIE1pbkludHJpbnNpY0VuYWJsZWQsIE5vbmVEaXNhYmxlZCwgVW5kZWZpbmVkRGlzYWJsZWQs
IEZsZXhIZWlnaHQ+OjpjcmVhdGVIYW5kbGVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKaW5kZXggNWU4MzhmNjU5NTZkNzc1NjViZTljMzJmZTJlZDZlNmYxNDk0
ZWVkYS4uMmNiMjI4MGIyYjczZTQzODhjNzAzOWQzN2VhYTc0MTMzMTgwNGRkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMjUyMCw2ICsyNTIwLDYxIEBAIGJv
b2wgQ1NTU3R5bGVTZWxlY3Rvcjo6dXNlU1ZHWm9vbVJ1bGVzKCkKICAgICByZXR1cm4gbV9lbGVt
ZW50ICYmIG1fZWxlbWVudC0+aXNTVkdFbGVtZW50KCk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0dS
SURfTEFZT1VUKQorCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tCcmVhZHRoKENTU1ByaW1p
dGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSwgQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIExl
bmd0aCYgbGVuZ3RoKQoreworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZUF1dG8pIHsKKyAgICAgICAgbGVuZ3RoID0gTGVuZ3RoKCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIGludCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2
ZVR5cGUoKTsKKyAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgodHlw
ZSkpIHsKKyAgICAgICAgbGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8TGVu
Z3RoPihzZWxlY3Rvci0+c3R5bGUoKSwgc2VsZWN0b3ItPnJvb3RFbGVtZW50U3R5bGUoKSwgc2Vs
ZWN0b3ItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGxlbmd0aC5zZXRRdWly
ayhwcmltaXRpdmVWYWx1ZS0+aXNRdWlya1ZhbHVlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRB
R0UpIHsKKyAgICAgICAgbGVuZ3RoID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVW
YWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0
dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tMaXN0KENTU1ZhbHVl
KiB2YWx1ZSwgVmVjdG9yPExlbmd0aD4mIGxlbmd0aHMsIENTU1N0eWxlU2VsZWN0b3IqIHNlbGVj
dG9yKQoreworICAgIC8vIEhhbmRsZSAnbm9uZScuCisgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkpIHsKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CisgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgICAgIGxl
bmd0aHMuYXBwZW5kKExlbmd0aChVbmRlZmluZWQpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAodmFs
dWUtPmlzVmFsdWVMaXN0KCkpIHsKKyAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBp
ID0gdmFsdWU7IGkuaGFzTW9yZSgpOyBpLmFkdmFuY2UoKSkgeworICAgICAgICAgICAgQ1NTVmFs
dWUqIGN1cnJWYWx1ZSA9IGkudmFsdWUoKTsKKyAgICAgICAgICAgIGlmICghY3VyclZhbHVlLT5p
c1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgICAgICBMZW5ndGggbGVuZ3RoOworICAgICAgICAgICAgaWYgKCFjcmVhdGVHcmlkVHJhY2tC
cmVhZHRoKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oY3VyclZhbHVlKSwgc2VsZWN0
b3IsIGxlbmd0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAg
ICBsZW5ndGhzLmFwcGVuZChsZW5ndGgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiB7CiAgICAg
Ym9vbCBpc0luaGVyaXQgPSBtX3BhcmVudE5vZGUgJiYgdmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUo
KTsKQEAgLTM3NzUsNiArMzgzMCwyMiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJv
cGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkQ29sdW1uczogeworICAgICAgICBWZWN0b3I8TGVuZ3RoPiBsZW5ndGhzOworICAg
ICAgICBpZiAoIWNyZWF0ZUdyaWRUcmFja0xpc3QodmFsdWUsIGxlbmd0aHMsIHRoaXMpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3N0eWxlLT5zZXRHcmlkQ29sdW1ucyhsZW5ndGhz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3Jp
ZFJvd3M6IHsKKyAgICAgICAgVmVjdG9yPExlbmd0aD4gbGVuZ3RoczsKKyAgICAgICAgaWYgKCFj
cmVhdGVHcmlkVHJhY2tMaXN0KHZhbHVlLCBsZW5ndGhzLCB0aGlzKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgbV9zdHlsZS0+c2V0R3JpZFJvd3MobGVuZ3Rocyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisjZW5kaWYKIAogICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGltcGxl
bWVudGVkIGluIHRoZSBDU1NTdHlsZUFwcGx5UHJvcGVydHkgbG9va3VwIHRhYmxlLgogICAgIGNh
c2UgQ1NTUHJvcGVydHlDb2xvcjoKQEAgLTM4MzgsMTAgKzM5MDksNiBAQCB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhGbG93OgogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5
bGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50OgotI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCi0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5zOgotICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93czoKLSNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlUZXh0UmVuZGVyaW5nOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0T3JpZW50YXRp
b246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmc6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDE5MzAyMzE4NTA5YmNk
Njc3ODE2OThmYjQzZGI4MDYxZmNlMmUwYjAuLjk5OWFjYmZlYzNlYjkzM2U5MjZiYTAyMzJmYzZm
NTc3NzcyODU4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCkBAIC03MjksOCArNzI5LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNDb2x1bW5GbGV4
RmxvdygpIGNvbnN0IHsgcmV0dXJuIGZsZXhGbG93KCkgPT0gRmxvd0NvbHVtbiB8fCBmbGV4Rmxv
dygpID09IEZsb3dDb2x1bW5SZXZlcnNlOyB9CiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VU
KQotICAgIExlbmd0aCBncmlkQ29sdW1ucygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX2dyaWQtPm1fZ3JpZENvbHVtbnM7IH0KLSAgICBMZW5ndGggZ3JpZFJvd3MoKSBj
b25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRSb3dzOyB9
CisgICAgY29uc3QgVmVjdG9yPExlbmd0aD4mIGdyaWRDb2x1bW5zKCkgY29uc3QgeyByZXR1cm4g
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkQ29sdW1uczsgfQorICAgIGNvbnN0
IFZlY3RvcjxMZW5ndGg+JiBncmlkUm93cygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX2dyaWQtPm1fZ3JpZFJvd3M7IH0KICNlbmRpZgogCiAgICAgY29uc3QgU2hhZG93
RGF0YSogYm94U2hhZG93KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
Ym94U2hhZG93LmdldCgpOyB9CkBAIC0xMTQ2LDggKzExNDYsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRGbGV4QWxpZ24oRUZsZXhBbGlnbiBhKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERh
dGEuYWNjZXNzKCktPm1fZmxleGlibGVCb3gsIG1fZmxleEFsaWduLCBhKTsgfQogICAgIHZvaWQg
c2V0RmxleEZsb3coRUZsZXhGbG93IGZsb3cpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV9mbGV4aWJsZUJveCwgbV9mbGV4RmxvdywgZmxvdyk7IH0KICNpZiBFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKQotICAgIHZvaWQgc2V0R3JpZENvbHVtbnMoTGVuZ3RoIGxlbmd0
aCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3Jp
ZENvbHVtbnMsIGxlbmd0aCk7IH0KLSAgICB2b2lkIHNldEdyaWRSb3dzKExlbmd0aCBsZW5ndGgp
IHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRS
b3dzLCBsZW5ndGgpOyB9CisgICAgdm9pZCBzZXRHcmlkQ29sdW1ucyhjb25zdCBWZWN0b3I8TGVu
Z3RoPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5t
X2dyaWQsIG1fZ3JpZENvbHVtbnMsIGxlbmd0aHMpOyB9CisgICAgdm9pZCBzZXRHcmlkUm93cyhj
b25zdCBWZWN0b3I8TGVuZ3RoPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJvd3MsIGxlbmd0aHMpOyB9CiAjZW5kaWYKIAog
ICAgIHZvaWQgc2V0TWFycXVlZUluY3JlbWVudChjb25zdCBMZW5ndGgmIGYpIHsgU0VUX1ZBUihy
YXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBpbmNyZW1lbnQsIGYpOyB9
CkBAIC0xNTI1LDggKzE1MjUsMTcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQcmludENvbG9yQWRq
dXN0IGluaXRpYWxQcmludENvbG9yQWRqdXN0KCkgeyByZXR1cm4gUHJpbnRDb2xvckFkanVzdEVj
b25vbXk7IH0KIAogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCi0gICAgc3RhdGljIExlbmd0
aCBpbml0aWFsR3JpZENvbHVtbnMoKSB7IHJldHVybiBMZW5ndGgoVW5kZWZpbmVkKTsgfQotICAg
IHN0YXRpYyBMZW5ndGggaW5pdGlhbEdyaWRSb3dzKCkgeyByZXR1cm4gTGVuZ3RoKFVuZGVmaW5l
ZCk7IH0KKyAgICAvLyBUaGUgaW5pdGlhbCB2YWx1ZSBpcyAnbm9uZScgZm9yIGdyaWQgdHJhY2tz
LgorICAgIHN0YXRpYyBWZWN0b3I8TGVuZ3RoPiBpbml0aWFsR3JpZFRyYWNrVmFsdWUoKQorICAg
IHsKKyAgICAgICAgc3RhdGljIFZlY3RvcjxMZW5ndGg+IGRlZmF1bHRMZW5ndGg7CisgICAgICAg
IC8vIFdlIG5lZWQgdG8gbWFudWFsbHkgYWRkIHRoZSBMZW5ndGggaGVyZSBhcyB0aGUgTGVuZ3Ro
KDApIGlzICdhdXRvJy4KKyAgICAgICAgaWYgKCFkZWZhdWx0TGVuZ3RoLnNpemUoKSkKKyAgICAg
ICAgICAgIGRlZmF1bHRMZW5ndGguYXBwZW5kKExlbmd0aChVbmRlZmluZWQpKTsKKyAgICAgICAg
cmV0dXJuIGRlZmF1bHRMZW5ndGg7CisgICAgfQorICAgIHN0YXRpYyBWZWN0b3I8TGVuZ3RoPiBp
bml0aWFsR3JpZENvbHVtbnMoKSB7IHJldHVybiBpbml0aWFsR3JpZFRyYWNrVmFsdWUoKTsgfQor
ICAgIHN0YXRpYyBWZWN0b3I8TGVuZ3RoPiBpbml0aWFsR3JpZFJvd3MoKSB7IHJldHVybiBpbml0
aWFsR3JpZFRyYWNrVmFsdWUoKTsgfQogI2VuZGlmCiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBpbml0aWFsTGluZUdyaWQoKSB7IHJldHVybiBudWxsQXRvbTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmgKaW5kZXggMzM3MTA0MTRl
Yzc1Y2RkNjdiZGI4NDA2NGVhNTQ5NGY4OGZhOTlkMi4uNTU4NDQ0M2IyNDAzNGFlYzVjYzliNGRi
ZmEyZWMwMDAyNjYwOWU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVHcmlkRGF0YS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTGVuZ3RoLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw4
ICs1Miw4IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBGb3IgdGhlIG1vbWVudCwgd2Ugb25s
eSBzdXBwb3J0IGEgc3Vic2V0IG9mIHRoZSBncmFtbWFyIHdoaWNoIGNvcnJlc3BvbmQgdG86CiAg
ICAgLy8gJ2F1dG8nIHwgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCAnbm9uZScKLSAgICBMZW5n
dGggbV9ncmlkQ29sdW1uczsKLSAgICBMZW5ndGggbV9ncmlkUm93czsKKyAgICBWZWN0b3I8TGVu
Z3RoPiBtX2dyaWRDb2x1bW5zOworICAgIFZlY3RvcjxMZW5ndGg+IG1fZ3JpZFJvd3M7CiAKIHBy
aXZhdGU6CiAgICAgU3R5bGVHcmlkRGF0YSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE1ZDMzMGE4YjcyMjEzNmJmNjMz
OTQ0OGNmZDc3Yjc5N2IyODE2NmQuLmY0ZWY4YjE5NWNhMzk1OWQ0YzkwODEwZTkyNjkwYjhhYTkw
YTg5OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMi0wNSAgSnVsaWVuIENoYWZmcmFp
eCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgR3JpZCBMYXlvdXQ6IEFk
ZCBzdXBwb3J0IGZvciBwYXJzaW5nIG11bHRpcGxlIGdyaWQtY29sdW1ucyBvciBncmlkLXJvd3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjcyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICAqIGZhc3QvY3NzLWdy
aWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93
cy1nZXQtc2V0LW11bHRpcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQt
bGF5b3V0L3Jlc291cmNlcy9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmpzOiBB
ZGRlZC4KKwogMjAxMS0xMi0wNSAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4K
IAogICAgICAgICBbcmVnaW9uc10gTmVlZCB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIFdp
bi9MaW51eCBvbiBvdmVyZmxvdyBicmVhayB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1n
ZXQtc2V0LWV4cGVjdGVkLnR4dAppbmRleCBlZGFmZjU2ZmZmMTdjYjIwMzgzZmYyNDliOGEyMjFh
Y2YxYmRjZDBmLi43ZTliY2JlMDZkMjZjMWYxOWNlMTMwODUyOTEwMDVkNmZkMjI4OTJmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93
cy1nZXQtc2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LWV4cGVjdGVkLnR4dApAQCAtMjYsNiArMjYs
MTIgQEAgUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICcKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnNDAlJwog
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtY29sdW1ucycpIGlzICdhdXRvJwogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1l
bnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICdhdXRvJwor
CitUZXN0IHNldHRpbmcgZ3JpZC1jb2x1bW5zIGFuZCBncmlkLXJvd3MgYmFjayB0byAnbm9uZScg
dGhyb3VnaCBKUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICcxOHB4JworUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycp
IGlzICc2NnB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycp
IGlzICdub25lJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNv
bHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxOTAxNjRhZmU1NWY3NzRjNWY3YmE1ZTlkMDViNzk4OTQ0
YzIzMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUyIEBACitUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWNvbHVtbnMgYW5k
IGdyaWQtcm93cyB3b3JrcyBhcyBleHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworVGVzdCBnZXR0aW5nIHxkaXNwbGF5fCBzZXQgdGhyb3VnaCBDU1MKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShncmlkV2l0aEZpeGVkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJzdweCAxMXB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGdyaWRXaXRoRml4ZWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LXJvd3MnKSBpcyAnMTdweCAycHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJj
ZW50RWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykg
aXMgJzUzJSA5OSUnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJjZW50RWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzI3JSA1MiUn
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhBdXRvRWxlbWVudCwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ2F1dG8gYXV0bycKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShncmlkV2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnYXV0byBhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGdyaWRXaXRoRU1FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNv
bHVtbnMnKSBpcyAnMTAwcHggMTIwcHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhF
TUVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICcx
NTBweCAxNzBweCcKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aFRocmVlSXRlbXMsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICcxNXB4IGF1dG8g
MTAwcHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhUaHJlZUl0ZW1zLCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnMTIwcHggMThweCBhdXRvJwor
CitUZXN0IHRoZSBpbml0aWFsIHZhbHVlCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ25vbmUnCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1yb3dzJykgaXMgJ25vbmUnCisKK1Rlc3QgZ2V0dGluZyBhbmQgc2V0dGluZyBkaXNw
bGF5IHRocm91Z2ggSlMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnMThweCAyMnB4JworUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtcm93cycpIGlzICc2NnB4IDcwcHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJzU1JSA4MCUn
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzQwJSA2MyUnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxl
bWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ2F1
dG8gYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnYXV0byBhdXRvJworUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1u
cycpIGlzICdhdXRvIDE2MHB4IDIycHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzU2JSAxMDBweCBh
dXRvJworCitUZXN0IGdldHRpbmcgd3JvbmcgdmFsdWVzIHNldCBmcm9tIENTUworUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGdyaWRXaXRoTm9uZUFuZEF1dG8sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdy
aWRXaXRoTm9uZUFuZEF1dG8sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoTm9uZUFuZEZpeGVk
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnbm9uZScK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aE5vbmVBbmRGaXhlZCwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJ25vbmUnCisKK1Rlc3Qgc2V0dGluZyBh
bmQgZ2V0dGluZyB3cm9uZyB2YWx1ZXMgZnJvbSBKUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdu
b25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdu
b25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdu
b25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdu
b25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdu
b25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1z
ZXQtbXVsdGlwbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWI0ZGRlZWVmYjNkNzA5NGRjMjJjZmQ2NTQz
MjI0ZmQ0NDQ5NGE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5odG1sCkBAIC0wLDAg
KzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5ncmlk
V2l0aEZpeGVkIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWdyaWQ7CisgICAgLXdlYmtpdC1ncmlk
LWNvbHVtbnM6IDdweCAxMXB4OworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiAxN3B4IDJweDsKK30K
KworLmdyaWRXaXRoUGVyY2VudCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ncmlkOworICAgIC13
ZWJraXQtZ3JpZC1jb2x1bW5zOiA1MyUgOTklOworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiAyNyUg
NTIlOworfQorLmdyaWRXaXRoQXV0byB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ncmlkOworICAg
IC13ZWJraXQtZ3JpZC1jb2x1bW5zOiBhdXRvIGF1dG87CisgICAgLXdlYmtpdC1ncmlkLXJvd3M6
IGF1dG8gYXV0bzsKK30KKy5ncmlkV2l0aEVNIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWdyaWQ7
CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbnM6IDEwZW0gMTJlbTsKKyAgICAtd2Via2l0LWdyaWQt
cm93czogMTVlbSAxN2VtOworICAgIGZvbnQ6IDEwcHggQWhlbTsKK30KKy5ncmlkV2l0aE5vbmVB
bmRBdXRvIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWdyaWQ7CisgICAgLXdlYmtpdC1ncmlkLWNv
bHVtbnM6IG5vbmUgYXV0bzsKKyAgICAtd2Via2l0LWdyaWQtcm93czogbm9uZSBhdXRvOworfQor
LmdyaWROb25lV2l0aEFuZEZpeGVkIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWdyaWQ7CisgICAg
LXdlYmtpdC1ncmlkLWNvbHVtbnM6IG5vbmUgMTVweDsKKyAgICAtd2Via2l0LWdyaWQtcm93czog
bm9uZSAyMnB4OworfQorLmdyaWRXaXRoVGhyZWVJdGVtcyB7CisgICAgZGlzcGxheTogLXdlYmtp
dC1ncmlkOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiAxNXB4IGF1dG8gMTBlbTsKKyAgICAt
d2Via2l0LWdyaWQtcm93czogMTJlbSAxOHB4IGF1dG87CisgICAgZm9udDogMTBweCBBaGVtOwor
fQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJncmlkV2l0aEZpeGVkIiBp
ZD0iZ3JpZFdpdGhGaXhlZEVsZW1lbnQiPjwvZGl2PgorPGRpdiBjbGFzcz0iZ3JpZFdpdGhQZXJj
ZW50IiBpZD0iZ3JpZFdpdGhQZXJjZW50RWxlbWVudCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlk
V2l0aEF1dG8iIGlkPSJncmlkV2l0aEF1dG9FbGVtZW50Ij48L2Rpdj4KKzxkaXYgY2xhc3M9Imdy
aWRXaXRoRU0iIGlkPSJncmlkV2l0aEVNRWxlbWVudCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlk
V2l0aE5vbmVBbmRBdXRvIiBpZD0iZ3JpZFdpdGhOb25lQW5kQXV0byI+PC9kaXY+Cis8ZGl2IGNs
YXNzPSJncmlkV2l0aE5vbmVBbmRGaXhlZCIgaWQ9ImdyaWRXaXRoTm9uZUFuZEZpeGVkIj48L2Rp
dj4KKzxkaXYgY2xhc3M9ImdyaWRXaXRoVGhyZWVJdGVtcyIgaWQ9ImdyaWRXaXRoVGhyZWVJdGVt
cyI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1z
ZXQtbXVsdGlwbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1y
b3dzLWdldC1zZXQtbXVsdGlwbGUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91
dC9yZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hODEwOGU4NzJjNjBjNjhkYzhhYzdjOWU0NTgxMDcxYWYxZDQyYzE1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQt
Y29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuanMKQEAgLTAsMCArMSwxMDUgQEAKK2Rlc2Ny
aXB0aW9uKCdUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWNvbHVtbnMgYW5kIGdy
aWQtcm93cyB3b3JrcyBhcyBleHBlY3RlZCcpOworCitkZWJ1ZygiVGVzdCBnZXR0aW5nIHxkaXNw
bGF5fCBzZXQgdGhyb3VnaCBDU1MiKTsKK3ZhciBncmlkV2l0aEZpeGVkRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJncmlkV2l0aEZpeGVkRWxlbWVudCIpOworc2hvdWxkQmUoImdl
dENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhGaXhlZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIic3cHggMTFweCciKTsKK3Nob3VsZEJlKCJnZXRD
b21wdXRlZFN0eWxlKGdyaWRXaXRoRml4ZWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvd3MnKSIsICInMTdweCAycHgnIik7CisKK3ZhciBncmlkV2l0aFBlcmNl
bnRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRoUGVyY2VudEVsZW1l
bnQiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoUGVyY2VudEVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIic1MyUgOTkl
JyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJjZW50RWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJzI3JSA1MiUnIik7
CisKK3ZhciBncmlkV2l0aEF1dG9FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdy
aWRXaXRoQXV0b0VsZW1lbnQiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRo
QXV0b0VsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycp
IiwgIidhdXRvIGF1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEF1
dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICIn
YXV0byBhdXRvJyIpOworCit2YXIgZ3JpZFdpdGhFTUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZ3JpZFdpdGhFTUVsZW1lbnQiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGdyaWRXaXRoRU1FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNv
bHVtbnMnKSIsICInMTAwcHggMTIwcHgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShn
cmlkV2l0aEVNRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dz
JykiLCAiJzE1MHB4IDE3MHB4JyIpOworCit2YXIgZ3JpZFdpdGhUaHJlZUl0ZW1zID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRoVGhyZWVJdGVtcyIpOworc2hvdWxkQmUoImdldENv
bXB1dGVkU3R5bGUoZ3JpZFdpdGhUaHJlZUl0ZW1zLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLWNvbHVtbnMnKSIsICInMTVweCBhdXRvIDEwMHB4JyIpOworc2hvdWxkQmUoImdl
dENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhUaHJlZUl0ZW1zLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvd3MnKSIsICInMTIwcHggMThweCBhdXRvJyIpOworCitkZWJ1ZygiIik7
CitkZWJ1ZygiVGVzdCB0aGUgaW5pdGlhbCB2YWx1ZSIpOwordmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVu
dCk7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
cm93cycpIiwgIidub25lJyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBnZXR0aW5nIGFu
ZCBzZXR0aW5nIGRpc3BsYXkgdGhyb3VnaCBKUyIpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlk
Q29sdW1ucyA9ICIxOHB4IDIycHgiOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93cyA9ICI2
NnB4IDcwcHgiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJzE4cHggMjJweCciKTsKK3No
b3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtcm93cycpIiwgIic2NnB4IDcwcHgnIik7CisKK2VsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVu
dCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIjU1JSA4MCUiOworZWxlbWVu
dC5zdHlsZS53ZWJraXRHcmlkUm93cyA9ICI0MCUgNjMlIjsKK3Nob3VsZEJlKCJnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1u
cycpIiwgIic1NSUgODAlJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJzQwJSA2MyUnIik7
CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5z
ID0gImF1dG8gYXV0byI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gImF1dG8gYXV0
byI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInYXV0byBhdXRvJyIpOworc2hvdWxkQmUo
ImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1yb3dzJykiLCAiJ2F1dG8gYXV0byciKTsKKworZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK2Vs
ZW1lbnQuc3R5bGUuZm9udCA9ICIxMHB4IEFoZW0iOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlk
Q29sdW1ucyA9ICJhdXRvIDE2ZW0gMjJweCI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dz
ID0gIjU2JSAxMGVtIGF1dG8iOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ2F1dG8gMTYw
cHggMjJweCciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIic1NiUgMTAwcHggYXV0byciKTsK
KworZGVidWcoIiIpOworZGVidWcoIlRlc3QgZ2V0dGluZyB3cm9uZyB2YWx1ZXMgc2V0IGZyb20g
Q1NTIik7Cit2YXIgZ3JpZFdpdGhOb25lQW5kQXV0byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJncmlkV2l0aE5vbmVBbmRBdXRvIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlk
V2l0aE5vbmVBbmRBdXRvLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVt
bnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoTm9u
ZUFuZEF1dG8sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidu
b25lJyIpOworCit2YXIgZ3JpZFdpdGhOb25lQW5kRml4ZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZ3JpZFdpdGhOb25lQW5kRml4ZWQiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGdyaWRXaXRoTm9uZUFuZEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRX
aXRoTm9uZUFuZEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3Mn
KSIsICInbm9uZSciKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Qgc2V0dGluZyBhbmQgZ2V0
dGluZyB3cm9uZyB2YWx1ZXMgZnJvbSBKUyIpOworZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK2VsZW1l
bnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAibm9uZSBhdXRvIjsKK2VsZW1lbnQuc3R5bGUu
d2Via2l0R3JpZFJvd3MgPSAibm9uZSBhdXRvIjsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwg
Iidub25lJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJ25vbmUnIik7CisKK2VsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIm5vbmUgMTZl
bSI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm5vbmUgNTYlIjsKK3Nob3VsZEJl
KCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtY29sdW1ucycpIiwgIidub25lJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJ25v
bmUnIik7CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRD
b2x1bW5zID0gIm5vbmUgbm9uZSI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm5v
bmUgbm9uZSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJl
KCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtcm93cycpIiwgIidub25lJyIpOworCitlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworZWxlbWVu
dC5zdHlsZS53ZWJraXRHcmlkQ29sdW1ucyA9ICJhdXRvIG5vbmUiOworZWxlbWVudC5zdHlsZS53
ZWJraXRHcmlkUm93cyA9ICJhdXRvIG5vbmUiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAi
J25vbmUnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInbm9uZSciKTsKKworZWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiYXV0byBub25l
IDE2ZW0iOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93cyA9ICJhdXRvIDE4ZW0gbm9uZSI7
CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIiwgIidub25lJyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNl
dC5qcwppbmRleCA5YTQ3MGYzYTk4N2YzODA0MmI5MjFiNTg2MjBkM2Y1ZWIwZWRiZmRmLi4xZDFh
ZTM3ZTM3YjVkMDExMzJjOTE4YWM3MDhmNDE0ODlhZmVlODllIDEwMDc1NQotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0
LXNldC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMv
Z3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC5qcwpAQCAtNDgsMyArNDgsMTQgQEAgZWxlbWVudC5z
dHlsZS53ZWJraXRHcmlkQ29sdW1ucyA9ICJhdXRvIjsKIGVsZW1lbnQuc3R5bGUud2Via2l0R3Jp
ZFJvd3MgPSAiYXV0byI7CiBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJyku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInYXV0byciKTsKIHNo
b3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtcm93cycpIiwgIidhdXRvJyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVz
dCBzZXR0aW5nIGdyaWQtY29sdW1ucyBhbmQgZ3JpZC1yb3dzIGJhY2sgdG8gJ25vbmUnIHRocm91
Z2ggSlMiKTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiMThweCI7CitlbGVt
ZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIjY2cHgiOworc2hvdWxkQmUoImdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5z
JykiLCAiJzE4cHgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJyku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInNjZweCciKTsKK2VsZW1l
bnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAibm9uZSI7CitlbGVtZW50LnN0eWxlLndlYmtp
dEdyaWRSb3dzID0gIm5vbmUiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUnIik7
CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInbm9uZSciKTsK
</data>
<flag name="commit-queue"
          id="117750"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>