<?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>110277</bug_id>
          
          <creation_ts>2013-02-19 16:07:06 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Implement the auto-placement algorithm without grid growth</short_desc>
          <delta_ts>2013-02-21 20:21:38 -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>Layout and Rendering</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>103316</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>836909</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-19 16:07:06 -0800</bug_when>
    <thetext>Following bug 110244, we have implemented the 2 first steps of the placement algorithm: http://dev.w3.org/csswg/css3-grid-layout/#auto-placement-algo

The missing steps are the core of the auto-placement algorithm that may end up extending the grid. In order to limit the size of the change, this bug will implement part of this algorithm including the adequate testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836949</commentid>
    <comment_count>1</comment_count>
      <attachid>189200</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-19 16:29:28 -0800</bug_when>
    <thetext>Created attachment 189200
Proposed patch: Change is big due to testing and scaffolding code. Splittable on demand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837777</commentid>
    <comment_count>2</comment_count>
      <attachid>189200</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-20 14:40:19 -0800</bug_when>
    <thetext>Comment on attachment 189200
Proposed patch: Change is big due to testing and scaffolding code. Splittable on demand.

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

This is pretty straightforward.

&gt; Source/WebCore/ChangeLog:16
&gt; +        are no empty grid area. If we don&apos;t find any empty grid area, we just insert in the first

Nit: area -&gt; areas (both uses).

&gt; Source/WebCore/rendering/RenderGrid.cpp:100
&gt; +    PassOwnPtr&lt;GridCoordinate&gt; firstEmptyGridArea()

Nit: I think nextEmptyGridArea would be more clear.  first sounds like you&apos;re resetting the value.

&gt; Source/WebCore/rendering/RenderGrid.cpp:102
&gt; +        if (!m_grid.size())

Nit: m_grid.isEmpty()

&gt; Source/WebCore/rendering/RenderGrid.cpp:534
&gt; +    placeDefinedMajorAxisItemsOnGrid(autoGridItems);
&gt; +    placeAutoMajorAxisItemsOnGrid(autoGridItems);

It&apos;s a bit unfortunate that we have to loop through autoGridItems twice.  Maybe we should have 2 vectors, one for defined and one for auto?

&gt; LayoutTests/fast/css-grid-layout/grid-item-addition-auto-placement-update-expected.txt:14
&gt; +FAIL:
&gt; +Expected 30 for height, but got 50. 

Can you add some comments next to the test cases that fail (in the .html file) explaining the failures?  These don&apos;t have to show up in the expected file.

&gt; LayoutTests/fast/css-grid-layout/grid-item-removal-auto-placement-update-expected.txt:5
&gt; +FAIL:
&gt; +Expected 170 for width, but got 50. 

Comments for these failures too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837812</commentid>
    <comment_count>3</comment_count>
      <attachid>189200</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-20 15:06:51 -0800</bug_when>
    <thetext>Comment on attachment 189200
Proposed patch: Change is big due to testing and scaffolding code. Splittable on demand.

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

&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:100
&gt;&gt; +    PassOwnPtr&lt;GridCoordinate&gt; firstEmptyGridArea()
&gt; 
&gt; Nit: I think nextEmptyGridArea would be more clear.  first sounds like you&apos;re resetting the value.

There is one issue with this renaming: as written, you can&apos;t call nextEmptyGridArea in a loop or else you would loop indefinitely. That&apos;s because we don&apos;t advance the iterator when we find an empty grid area and will always return the first grid area if called repeatedly.

I thought firstEmptyGridArea would match better the intent that it shouldn&apos;t to be called in a loop. I am fine with fixing the function to be more loop friendly and do the renaming if that&apos;s something you prefer. However I don&apos;t know of a use for such a function in the current specification (note that the column / row span is completely omitted in the specification which I raised http://lists.w3.org/Archives/Public/www-style/2013Feb/0468.html so there *may* be a use sometimes in the future).

&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:534
&gt;&gt; +    placeAutoMajorAxisItemsOnGrid(autoGridItems);
&gt; 
&gt; It&apos;s a bit unfortunate that we have to loop through autoGridItems twice.  Maybe we should have 2 vectors, one for defined and one for auto?

That should be possible to do :)

&gt; Source/WebCore/rendering/RenderGrid.cpp:537
&gt; +void RenderGrid::placeDefinedMajorAxisItemsOnGrid(Vector&lt;RenderBox*&gt; autoGridItems)

I reread the specification and they use explicitly specified - sometimes just specified - to refer to what I called &apos;defined&apos;. We are probably better matching them here.

&gt;&gt; LayoutTests/fast/css-grid-layout/grid-item-addition-auto-placement-update-expected.txt:14
&gt;&gt; +Expected 30 for height, but got 50. 
&gt; 
&gt; Can you add some comments next to the test cases that fail (in the .html file) explaining the failures?  These don&apos;t have to show up in the expected file.

I could but then my next patch is to implement the missing piece: handle growing the grid. This will fix all tests and make them pass (they fail due to our bad fallback to inserting the grid item in (1, 1)).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837820</commentid>
    <comment_count>4</comment_count>
      <attachid>189200</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-20 15:14:08 -0800</bug_when>
    <thetext>Comment on attachment 189200
Proposed patch: Change is big due to testing and scaffolding code. Splittable on demand.

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:100
&gt;&gt;&gt; +    PassOwnPtr&lt;GridCoordinate&gt; firstEmptyGridArea()
&gt;&gt; 
&gt;&gt; Nit: I think nextEmptyGridArea would be more clear.  first sounds like you&apos;re resetting the value.
&gt; 
&gt; There is one issue with this renaming: as written, you can&apos;t call nextEmptyGridArea in a loop or else you would loop indefinitely. That&apos;s because we don&apos;t advance the iterator when we find an empty grid area and will always return the first grid area if called repeatedly.
&gt; 
&gt; I thought firstEmptyGridArea would match better the intent that it shouldn&apos;t to be called in a loop. I am fine with fixing the function to be more loop friendly and do the renaming if that&apos;s something you prefer. However I don&apos;t know of a use for such a function in the current specification (note that the column / row span is completely omitted in the specification which I raised http://lists.w3.org/Archives/Public/www-style/2013Feb/0468.html so there *may* be a use sometimes in the future).

I see.  Maybe call it findNextEmptyGridArea?

&gt;&gt;&gt; LayoutTests/fast/css-grid-layout/grid-item-addition-auto-placement-update-expected.txt:14
&gt;&gt;&gt; +Expected 30 for height, but got 50. 
&gt;&gt; 
&gt;&gt; Can you add some comments next to the test cases that fail (in the .html file) explaining the failures?  These don&apos;t have to show up in the expected file.
&gt; 
&gt; I could but then my next patch is to implement the missing piece: handle growing the grid. This will fix all tests and make them pass (they fail due to our bad fallback to inserting the grid item in (1, 1)).

Ok, please include a note of this in LayoutTests/ChangeLog.  I now see the note in WebCore/ChangeLog but I had forgotten about it by the time I got to reviewing the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837842</commentid>
    <comment_count>5</comment_count>
      <attachid>189200</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-20 15:39:13 -0800</bug_when>
    <thetext>Comment on attachment 189200
Proposed patch: Change is big due to testing and scaffolding code. Splittable on demand.

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:100
&gt;&gt;&gt;&gt; +    PassOwnPtr&lt;GridCoordinate&gt; firstEmptyGridArea()
&gt;&gt;&gt; 
&gt;&gt;&gt; Nit: I think nextEmptyGridArea would be more clear.  first sounds like you&apos;re resetting the value.
&gt;&gt; 
&gt;&gt; There is one issue with this renaming: as written, you can&apos;t call nextEmptyGridArea in a loop or else you would loop indefinitely. That&apos;s because we don&apos;t advance the iterator when we find an empty grid area and will always return the first grid area if called repeatedly.
&gt;&gt; 
&gt;&gt; I thought firstEmptyGridArea would match better the intent that it shouldn&apos;t to be called in a loop. I am fine with fixing the function to be more loop friendly and do the renaming if that&apos;s something you prefer. However I don&apos;t know of a use for such a function in the current specification (note that the column / row span is completely omitted in the specification which I raised http://lists.w3.org/Archives/Public/www-style/2013Feb/0468.html so there *may* be a use sometimes in the future).
&gt; 
&gt; I see.  Maybe call it findNextEmptyGridArea?

If we are going down that route, I prefer nextEmptyGridArea as it&apos;s shorter. I will just fix the function.

&gt;&gt;&gt;&gt; LayoutTests/fast/css-grid-layout/grid-item-addition-auto-placement-update-expected.txt:14
&gt;&gt;&gt;&gt; +Expected 30 for height, but got 50. 
&gt;&gt;&gt; 
&gt;&gt;&gt; Can you add some comments next to the test cases that fail (in the .html file) explaining the failures?  These don&apos;t have to show up in the expected file.
&gt;&gt; 
&gt;&gt; I could but then my next patch is to implement the missing piece: handle growing the grid. This will fix all tests and make them pass (they fail due to our bad fallback to inserting the grid item in (1, 1)).
&gt; 
&gt; Ok, please include a note of this in LayoutTests/ChangeLog.  I now see the note in WebCore/ChangeLog but I had forgotten about it by the time I got to reviewing the tests.

Good catch, I will do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837872</commentid>
    <comment_count>6</comment_count>
      <attachid>189400</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-20 16:02:44 -0800</bug_when>
    <thetext>Created attachment 189400
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837877</commentid>
    <comment_count>7</comment_count>
      <attachid>189400</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 16:06:35 -0800</bug_when>
    <thetext>Comment on attachment 189400
Patch for landing

Rejecting attachment 189400 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;--bot-id=gce-cq-01&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
cs -fvisibility-inlines-hidden -Wsign-compare  -c ../../Source/WebCore/rendering/RenderGrid.cpp -o obj/Source/WebCore/rendering/webcore_rendering.RenderGrid.o
cc1plus: warnings being treated as errors
../../Source/WebCore/rendering/RenderGrid.cpp: In member function &apos;void WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid(WTF::Vector&lt;WebCore::RenderBox*, 0ul&gt;)&apos;:
../../Source/WebCore/rendering/RenderGrid.cpp:571: error: unused variable &apos;majorAxisPosition&apos;
ninja: build stopped: subcommand failed.

Full output: http://queues.webkit.org/results/16658570</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837892</commentid>
    <comment_count>8</comment_count>
      <attachid>189405</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-20 16:20:37 -0800</bug_when>
    <thetext>Created attachment 189405
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837916</commentid>
    <comment_count>9</comment_count>
      <attachid>189405</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 16:35:33 -0800</bug_when>
    <thetext>Comment on attachment 189405
Patch for landing

Clearing flags on attachment: 189405

Committed r143535: &lt;http://trac.webkit.org/changeset/143535&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837917</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 16:35:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838941</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 15:44:49 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 110523</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839174</commentid>
    <comment_count>12</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-21 20:21:38 -0800</bug_when>
    <thetext>Tool epic fail! It reopened / blocked this bug on an unrelated rollout.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189200</attachid>
            <date>2013-02-19 16:29:28 -0800</date>
            <delta_ts>2013-02-20 16:02:40 -0800</delta_ts>
            <desc>Proposed patch: Change is big due to testing and scaffolding code. Splittable on demand.</desc>
            <filename>bug-110277-20130219162551.patch</filename>
            <type>text/plain</type>
            <size>30933</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQ0YmVlYjJmMDkxN2E5
ZmFjNWI4ZmMyOGFjNTk4ZjViNjQ5MjZlOS4uMWFkYjYxMzY2ZWNmNjRiMDE5NzE5ODFjYTFiYzU0
YmZmODVjNTM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTAyLTE5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEltcGxlbWVudCB0aGUgYXV0by1wbGFjZW1lbnQgYWxnb3JpdGhtIHdpdGhvdXQg
Z3JpZCBncm93dGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDI3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tYWRkaXRpb24tYXV0by1w
bGFjZW1lbnQtdXBkYXRlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtaXRlbS1yZW1vdmFsLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWwg
KGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgY2FzZXMpCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW1w
bGVtZW50cyBtb3N0IG9mIHRoZSBhdXRvLXBsYWNlbWVudCBhbGdvcml0aG0gcGVyCisgICAgICAg
IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtZ3JpZC1sYXlvdXQvI2F1dG8tcGxhY2VtZW50
LWFsZ28KKworICAgICAgICBUbyBsaW1pdCB0aGUgc2l6ZSBvZiB0aGUgY29kZSBjaGFuZ2UsIGl0
IGRvZXNuJ3QgaW1wbGVtZW50IGdyb3dpbmcgdGhlIGdyaWQgaWYgdGhlcmUKKyAgICAgICAgYXJl
IG5vIGVtcHR5IGdyaWQgYXJlYS4gSWYgd2UgZG9uJ3QgZmluZCBhbnkgZW1wdHkgZ3JpZCBhcmVh
LCB3ZSBqdXN0IGluc2VydCBpbiB0aGUgZmlyc3QKKyAgICAgICAgb25lLCBsaWtlIHdoYXQgZ3Jp
ZC1hdXRvLWZsb3c6IG5vbmUgd291bGQgZG8gKHdoaWNoIGV4cGxhaW5zIHRoZSB0ZXN0IGZhaWx1
cmVzKS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OkdyaWRJdGVyYXRvcjo6Zmlyc3RFbXB0eUdyaWRBcmVhKToKKyAg
ICAgICAgQWRkZWQgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIEdyaWRDb29yZGluYXRlIG9m
IHRoZSBmaXJzdCBlbXB0eSBncmlkIGFyZWEuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OnBsYWNlSXRlbXNPbkdyaWQpOgorICAgICAgICBTcGxpdCB0aGlzIGZ1bmN0aW9uIGludG8g
dGhlIGRpZmZlcmVudCBzdGVwcyBiZWxvdy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6cGxhY2VEZWZpbmVkTWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAgICAgICBBZGRlZCB0aGlz
IGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBwYXJ0IG9mIHN0ZXAgMSBvZiB0aGUgYWxnb3JpdGht
ICh0aGUgZ3JpZCBpdGVtcyB3aXRob3V0CisgICAgICAgIGF1dG8gcm93IC8gY29sdW1uIGFyZSBh
bHJlYWR5IGhhbmRsZWQgaW4gcGxhY2VJdGVtc09uR3JpZCkuCisKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1zT25HcmlkKToKKyAgICAgICAgQWRk
ZWQgdGhpcyBmdW5jdGlvbiB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhlIGF1dG8gZ3JpZCBpdGVtcyBh
bmQgY2FsbCBwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkLgorCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkKToKKyAgICAgICAgQWRk
ZWQgdGhpcyBtZXRob2QgdG8gaGFuZGxlIHRoZSBzdGVwIDQgb2YgdGhlIGFsZ29yaXRobS4gQmFz
ZWQgb24gdGhlIG1pbm9yIGF4aXMncyBwb3NpdGlvbiwKKyAgICAgICAgaXQgZWl0aGVyIHdhbGtz
IGFsb25nIHRoZSBtYWpvciBheGlzIG9uY2Ugb3Igc2V2ZXJhbCB0aW1lcyB1bnRpbCBpdCBmaW5k
cyBhbiBlbXB0eSBncmlkIGFyZWEKKyAgICAgICAgZm9yIHRoZSBncmlkIGl0ZW0uCisKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNYWpvckF4aXNQb3NpdGlvbkZv
ckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5v
ckF4aXNQb3NpdGlvbkZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1
dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
R3JpZDo6YXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbik6CisgICAgICAgIEFkZGVkIHRo
ZXNlIGhlbHBlciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gbWlub3IgLyBtYWpvciBheGlzIHBvc2l0
aW9ucyAmIGRpcmVjdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6Cisg
ICAgICAgIEFkZGVkIHRoZSBwcmV2aW91cyBuZXcgUmVuZGVyR3JpZCBmdW5jdGlvbnMuCisKIDIw
MTMtMDItMTkgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb252
ZXJ0IDMgc2V0dGluZ3MgdG8gdXNlIFNldHRpbmdzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5jcHAKaW5kZXggMGQ3ZTliNTA3N2U4ODZiOGU5ZjZhZDc1MzIxMDdkYjZjNmZk
ZDIzNS4uYTM5MGFmYzIxZmJlZmJmZmNkNjA5ODQzMGEzZDVhZTYyYTk5NTM4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtOTYsNiArOTYsMjIgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KKworICAgIFBhc3NPd25QdHI8
R3JpZENvb3JkaW5hdGU+IGZpcnN0RW1wdHlHcmlkQXJlYSgpCisgICAgeworICAgICAgICBpZiAo
IW1fZ3JpZC5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBz
aXplX3QmIHZhcnlpbmdUcmFja0luZGV4ID0gKG1fZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8g
bV9yb3dJbmRleCA6IG1fY29sdW1uSW5kZXg7CisgICAgICAgIGNvbnN0IHNpemVfdCBlbmRPZlZh
cnlpbmdUcmFja0luZGV4ID0gKG1fZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gbV9ncmlkLnNp
emUoKSA6IG1fZ3JpZFswXS5zaXplKCk7CisgICAgICAgIGZvciAoOyB2YXJ5aW5nVHJhY2tJbmRl
eCA8IGVuZE9mVmFyeWluZ1RyYWNrSW5kZXg7ICsrdmFyeWluZ1RyYWNrSW5kZXgpIHsKKyAgICAg
ICAgICAgIGNvbnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYgY2hpbGRyZW4gPSBtX2dyaWRbbV9yb3dJ
bmRleF1bbV9jb2x1bW5JbmRleF07CisgICAgICAgICAgICBpZiAoY2hpbGRyZW4uaXNFbXB0eSgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3JpZENvb3JkaW5hdGUobV9y
b3dJbmRleCwgbV9jb2x1bW5JbmRleCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKwogcHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8VmVjdG9yPFZlY3RvcjxS
ZW5kZXJCb3gqLCAxPiA+ID4mIG1fZ3JpZDsKICAgICBUcmFja1NpemluZ0RpcmVjdGlvbiBtX2Rp
cmVjdGlvbjsKQEAgLTUxNCw5ICs1MzAsMjQgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1z
T25HcmlkKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBpbXBsZW1lbnQgdGhlIGF1dG8gZmxvdyBhbGdvcml0aG0gKGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL2IvMTAzMzE2KS4KLSAgICAvLyBUbyBrZWVwIG91ciB0ZXN0cyBwYXNzaW5nLCB3ZSBq
dXN0IGluc2VydCB0aGVtIGluIHRoZSBncmlkIGFzIGlmIGdyaWQtYXV0by1mbG93IHdhcyBub25l
LgorICAgIHBsYWNlRGVmaW5lZE1ham9yQXhpc0l0ZW1zT25HcmlkKGF1dG9HcmlkSXRlbXMpOwor
ICAgIHBsYWNlQXV0b01ham9yQXhpc0l0ZW1zT25HcmlkKGF1dG9HcmlkSXRlbXMpOworfQorCit2
b2lkIFJlbmRlckdyaWQ6OnBsYWNlRGVmaW5lZE1ham9yQXhpc0l0ZW1zT25HcmlkKFZlY3RvcjxS
ZW5kZXJCb3gqPiBhdXRvR3JpZEl0ZW1zKQorewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
YXV0b0dyaWRJdGVtcy5zaXplKCk7ICsraSkgeworICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24m
IG1ham9yQXhpc1Bvc2l0aW9uID0gYXV0b1BsYWNlbWVudE1ham9yQXhpc1Bvc2l0aW9uRm9yQ2hp
bGQoYXV0b0dyaWRJdGVtc1tpXSk7CisgICAgICAgIGlmIChtYWpvckF4aXNQb3NpdGlvbi5pc0F1
dG8oKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEdyaWRJdGVyYXRvciBpdGVy
YXRvcihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgcmVzb2x2ZUdy
aWRQb3NpdGlvbkZyb21TdHlsZShtYWpvckF4aXNQb3NpdGlvbikpOworICAgICAgICBpZiAoT3du
UHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0b3IuZmlyc3RFbXB0eUdy
aWRBcmVhKCkpIHsKKyAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW1z
W2ldLCBlbXB0eUdyaWRBcmVhLT5yb3dJbmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1uSW5kZXgp
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTog
SGFuZGxlIGdyb3dpbmcgdGhlIGdyaWQgaW4gdGhlIG1pbm9yIGF4aXMgaW5zdGVhZCBvZiBkZWZh
dWx0aW5nIHRvIHRoZSBmaXJzdCByb3cgLyBjb2x1bW4uCiAgICAgICAgIGNvbnN0IEdyaWRQb3Np
dGlvbiYgY29sdW1uUG9zaXRpb24gPSBhdXRvR3JpZEl0ZW1zW2ldLT5zdHlsZSgpLT5ncmlkSXRl
bUNvbHVtbigpOwogICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIHJvd1Bvc2l0aW9uID0gYXV0
b0dyaWRJdGVtc1tpXS0+c3R5bGUoKS0+Z3JpZEl0ZW1Sb3coKTsKICAgICAgICAgc2l6ZV90IGNv
bHVtblRyYWNrID0gY29sdW1uUG9zaXRpb24uaXNBdXRvKCkgPyAwIDogcmVzb2x2ZUdyaWRQb3Np
dGlvbkZyb21TdHlsZShjb2x1bW5Qb3NpdGlvbik7CkBAIC01MjYsNiArNTU3LDc2IEBAIHZvaWQg
UmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCgpCiAgICAgfQogfQogCit2b2lkIFJlbmRlckdy
aWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1zT25HcmlkKFZlY3RvcjxSZW5kZXJCb3gqPiBhdXRv
R3JpZEl0ZW1zKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXV0b0dyaWRJdGVtcy5z
aXplKCk7ICsraSkgeworICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIG1ham9yQXhpc1Bvc2l0
aW9uID0gYXV0b1BsYWNlbWVudE1ham9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQoYXV0b0dyaWRJdGVt
c1tpXSk7CisgICAgICAgIGlmICghbWFqb3JBeGlzUG9zaXRpb24uaXNBdXRvKCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkKGF1
dG9HcmlkSXRlbXNbaV0pOworICAgIH0KK30KKwordm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9N
YWpvckF4aXNJdGVtT25HcmlkKFJlbmRlckJveCogZ3JpZEl0ZW0pCit7CisgICAgQVNTRVJUKGF1
dG9QbGFjZW1lbnRNYWpvckF4aXNQb3NpdGlvbkZvckNoaWxkKGdyaWRJdGVtKS5pc0F1dG8oKSk7
CisgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBtaW5vckF4aXNQb3NpdGlvbiA9IGF1dG9QbGFjZW1l
bnRNaW5vckF4aXNQb3NpdGlvbkZvckNoaWxkKGdyaWRJdGVtKTsKKyAgICBpZiAoIW1pbm9yQXhp
c1Bvc2l0aW9uLmlzQXV0bygpKSB7CisgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dy
aWQsIGF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSwgcmVzb2x2ZUdyaWRQb3NpdGlv
bkZyb21TdHlsZShtaW5vckF4aXNQb3NpdGlvbikpOworICAgICAgICBpZiAoT3duUHRyPEdyaWRD
b29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0b3IuZmlyc3RFbXB0eUdyaWRBcmVhKCkp
IHsKKyAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChncmlkSXRlbSwgZW1wdHlHcmlkQXJl
YS0+cm93SW5kZXgsIGVtcHR5R3JpZEFyZWEtPmNvbHVtbkluZGV4KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IHNpemVfdCBlbmRP
Zk1ham9yQXhpcyA9IChhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkgPT0gRm9yQ29s
dW1ucykgPyBncmlkQ29sdW1uQ291bnQoKSA6IGdyaWRSb3dDb3VudCgpOworICAgICAgICBmb3Ig
KHNpemVfdCBtYWpvckF4aXNJbmRleCA9IDA7IG1ham9yQXhpc0luZGV4IDwgZW5kT2ZNYWpvckF4
aXM7ICsrbWFqb3JBeGlzSW5kZXgpIHsKKyAgICAgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRv
cihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzSW5k
ZXgpOworICAgICAgICAgICAgaWYgKE93blB0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJl
YSA9IGl0ZXJhdG9yLmZpcnN0RW1wdHlHcmlkQXJlYSgpKSB7CisgICAgICAgICAgICAgICAgaW5z
ZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dJbmRleCwgZW1wdHlH
cmlkQXJlYS0+Y29sdW1uSW5kZXgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgLy8gRklYTUU6IEhhbmRsZSBleHRlbmRp
bmcgdGhlIGdyaWQgaW4gdGhlIG1ham9yIGRpcmVjdGlvbiBpbnN0ZWFkIG9mIGRlZmF1bHRpbmcg
dG8gdGhlIGZpcnN0IHJvdyAvIGNvbHVtbi4KKyAgICBjb25zdCBHcmlkUG9zaXRpb24mIGNvbHVt
blBvc2l0aW9uID0gZ3JpZEl0ZW0tPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1uKCk7CisgICAgY29u
c3QgR3JpZFBvc2l0aW9uJiByb3dQb3NpdGlvbiA9IGdyaWRJdGVtLT5zdHlsZSgpLT5ncmlkSXRl
bVJvdygpOworICAgIHNpemVfdCBjb2x1bW5UcmFjayA9IGNvbHVtblBvc2l0aW9uLmlzQXV0bygp
ID8gMCA6IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29sdW1uUG9zaXRpb24pOworICAg
IHNpemVfdCByb3dUcmFjayA9IHJvd1Bvc2l0aW9uLmlzQXV0bygpID8gMCA6IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUocm93UG9zaXRpb24pOworCisgICAgaW5zZXJ0SXRlbUludG9Hcmlk
KGdyaWRJdGVtLCByb3dUcmFjaywgY29sdW1uVHJhY2spOworfQorCitjb25zdCBHcmlkUG9zaXRp
b24mIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNYWpvckF4aXNQb3NpdGlvbkZvckNoaWxkKGNv
bnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0Cit7CisgICAgR3JpZEF1dG9GbG93IGZsb3cg
PSBzdHlsZSgpLT5ncmlkQXV0b0Zsb3coKTsKKyAgICBBU1NFUlQoZmxvdyAhPSBBdXRvRmxvd05v
bmUpOworICAgIHJldHVybiAoZmxvdyA9PSBBdXRvRmxvd0NvbHVtbikgPyBncmlkSXRlbS0+c3R5
bGUoKS0+Z3JpZEl0ZW1Db2x1bW4oKSA6IGdyaWRJdGVtLT5zdHlsZSgpLT5ncmlkSXRlbVJvdygp
OworfQorCitjb25zdCBHcmlkUG9zaXRpb24mIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5v
ckF4aXNQb3NpdGlvbkZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0Cit7
CisgICAgR3JpZEF1dG9GbG93IGZsb3cgPSBzdHlsZSgpLT5ncmlkQXV0b0Zsb3coKTsKKyAgICBB
U1NFUlQoZmxvdyAhPSBBdXRvRmxvd05vbmUpOworICAgIHJldHVybiAoZmxvdyA9PSBBdXRvRmxv
d0NvbHVtbikgPyBncmlkSXRlbS0+c3R5bGUoKS0+Z3JpZEl0ZW1Sb3coKSA6IGdyaWRJdGVtLT5z
dHlsZSgpLT5ncmlkSXRlbUNvbHVtbigpOworfQorCitSZW5kZXJHcmlkOjpUcmFja1NpemluZ0Rp
cmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkgY29u
c3QKK3sKKyAgICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0eWxlKCktPmdyaWRBdXRvRmxvdygpOwor
ICAgIEFTU0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7CisgICAgcmV0dXJuIChmbG93ID09IEF1
dG9GbG93Q29sdW1uKSA/IEZvckNvbHVtbnMgOiBGb3JSb3dzOworfQorCitSZW5kZXJHcmlkOjpU
cmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGly
ZWN0aW9uKCkgY29uc3QKK3sKKyAgICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0eWxlKCktPmdyaWRB
dXRvRmxvdygpOworICAgIEFTU0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7CisgICAgcmV0dXJu
IChmbG93ID09IEF1dG9GbG93Q29sdW1uKSA/IEZvclJvd3MgOiBGb3JDb2x1bW5zOworfQorCiB2
b2lkIFJlbmRlckdyaWQ6OmNsZWFyR3JpZCgpCiB7CiAgICAgbV9ncmlkLmNsZWFyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCBjYmViNDU5M2UxYTQ3Y2UwYTczYzQ5
NDk1NTAxMWVlZDYyZjgzZjU3Li5jNDM4ZTI1NzlkYzIwZDQ4YTAzMDdlNjM0MTA0MjdjZmRmNDhh
MzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTc1LDggKzc1LDE3
IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlVXNlZEJyZWFkdGhPZk1heExlbmd0
aChUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgTGVuZ3RoJikgY29uc3Q7CiAgICAgTGF5b3V0
VW5pdCBjb21wdXRlVXNlZEJyZWFkdGhPZlNwZWNpZmllZExlbmd0aChUcmFja1NpemluZ0RpcmVj
dGlvbiwgY29uc3QgTGVuZ3RoJikgY29uc3Q7CiAgICAgdm9pZCByZXNvbHZlQ29udGVudEJhc2Vk
VHJhY2tTaXppbmdGdW5jdGlvbnMoVHJhY2tTaXppbmdEaXJlY3Rpb24sIFZlY3RvcjxHcmlkVHJh
Y2s+JiBjb2x1bW5UcmFja3MsIFZlY3RvcjxHcmlkVHJhY2s+JiByb3dUcmFja3MsIExheW91dFVu
aXQmIGF2YWlsYWJsZUxvZ2ljYWxTcGFjZSk7CisKICAgICB2b2lkIGluc2VydEl0ZW1JbnRvR3Jp
ZChSZW5kZXJCb3gqLCBzaXplX3Qgcm93VHJhY2ssIHNpemVfdCBjb2x1bW5UcmFjayk7CiAgICAg
dm9pZCBwbGFjZUl0ZW1zT25HcmlkKCk7CisgICAgdm9pZCBwbGFjZURlZmluZWRNYWpvckF4aXNJ
dGVtc09uR3JpZChWZWN0b3I8UmVuZGVyQm94Kj4pOworICAgIHZvaWQgcGxhY2VBdXRvTWFqb3JB
eGlzSXRlbXNPbkdyaWQoVmVjdG9yPFJlbmRlckJveCo+KTsKKyAgICB2b2lkIHBsYWNlQXV0b01h
am9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94Kik7CisgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBh
dXRvUGxhY2VtZW50TWFqb3JBeGlzUG9zaXRpb25Gb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqKSBj
b25zdDsKKyAgICBjb25zdCBHcmlkUG9zaXRpb24mIGF1dG9QbGFjZW1lbnRNaW5vckF4aXNQb3Np
dGlvbkZvckNoaWxkKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OworICAgIFRyYWNrU2l6aW5nRGly
ZWN0aW9uIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSBjb25zdDsKKyAgICBUcmFj
a1NpemluZ0RpcmVjdGlvbiBhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCkgY29uc3Q7
CisKICAgICB2b2lkIGxheW91dEdyaWRJdGVtcygpOwogICAgIHZvaWQgY2xlYXJHcmlkKCk7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YThiM2M2ZWYwNGQxOGExMWRhZDMwZTUyNjMzNDRkZjA0MTdlYzY3Li44NGJhMTYz
NmVlZDgyZmI1YjhkZjA2MzYxNThiY2RhZjRmMGM4ZGU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAK
IDIwMTMtMDItMTkgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAK
KyAgICAgICAgW0NTUyBHcmlkIExheW91dF0gSW1wbGVtZW50IHRoZSBhdXRvLXBsYWNlbWVudCBh
bGdvcml0aG0gd2l0aG91dCBncmlkIGdyb3d0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxv
dy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1pdGVtLWFkZGl0aW9uLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1h
ZGRpdGlvbi1hdXRvLXBsYWNlbWVudC11cGRhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1pdGVtLXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRlLmh0bWw6IEFkZGVkLgorCisyMDEz
LTAyLTE5ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCiAgICAg
ICAgIFtDU1MgR3JpZCBMYXlvdXRdIFJlZmFjdG9yIHRoZSBjb2RlIGluIHByZXBhcmF0aW9uIG9m
IGF1dG8gcGxhY2VtZW50IHN1cHBvcnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMDI0NAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24t
ZXhwZWN0ZWQudHh0CmluZGV4IDI2ZTI3ZmU1YTE1YWRlNjMzYWZhOTcwNGFkZjdiNzBhOTJlZGQ5
YTMuLjQ4N2RmOTUwZGY4ZGUxMjYxMDY2MzRmMTA3YzZjMjFjYjQyODIyMTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MnIGF1dG8gcG9zaXRpb24gYXJlIHByb3Blcmx5
IHJlc29sdmVkIG9uIGEgc3RhdGljIGdyaWQuCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRy
YWNrcycgYXV0byBwb3NpdGlvbnMgYXJlIHByb3Blcmx5IHJlc29sdmVkIG9uIGEgc3RhdGljIGdy
aWQuCiAKIFhYWFhYIFhYWFhYIFhYWFhYCiBYWFhYWCBYWFhYWCBYWFhYWApAQCAtNywzICs3LDI3
IEBAIFhYWFhYIFhYWFhYIFhYWFhYCiBYWFhYWCBYWFhYWCBYWFhYWAogWFhYWFggWFhYWFggWFhY
WFgKIFBBU1MKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhY
WFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorUEFTUworWFhY
WFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhY
WFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitQQVNTCitYWFhYWCBYWFhYWCBYWFhY
WAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhY
WAorWFhYWFggWFhYWFggWFhYWFgKK1BBU1MKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhY
WCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhY
WCBYWFhYWAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1sCmluZGV4IGU5NjkzZTg4
YmE5NzkzZTRlMmJlNmZkZmNkN2JhOTRmZGY3NDQ1ZTYuLmM2NGQxZmQ2NmIyMDM3MWIzNjg2MmZl
MWU0OWJlZjFmNWNlZjg1ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWwKQEAgLTEx
LDYgKzExLDExIEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAtd2Via2l0LWdyaWQtcm93
czogNTBweCAxMDBweDsKIH0KIAorLmJpZ0dyaWQgeworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5z
OiA1MHB4IDEwMHB4IDE1MHB4IDIwMHB4OworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiA1MHB4IDEw
MHB4IDE1MHB4IDIwMHB4OworfQorCiAudW5jb25zdHJhaW5lZENvbnRhaW5lciB7CiAgICAgLyog
Rm9yIGFjY3VyYXRlIHggLyB5IG9mZnNldC4gKi8KICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CkBA
IC0xOSw3ICsyNCw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0iY2hl
Y2tMYXlvdXQoJy5ncmlkJykiPgogCi08cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNr
cycgYXV0byBwb3NpdGlvbiBhcmUgcHJvcGVybHkgcmVzb2x2ZWQgb24gYSBzdGF0aWMgZ3JpZC48
L3A+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbnMg
YXJlIHByb3Blcmx5IHJlc29sdmVkIG9uIGEgc3RhdGljIGdyaWQuPC9wPgogCiA8ZGl2IGNsYXNz
PSJ1bmNvbnN0cmFpbmVkQ29udGFpbmVyIj4KICAgICA8ZGl2IGNsYXNzPSJncmlkIHNtYWxsR3Jp
ZCBncmlkQXV0b0Zsb3dOb25lIiBpZD0iZ3JpZEF1dG9GbG93Tm9uZSI+CkBAIC0zMiw1ICszNyw0
NSBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgPC9kaXY+CiA8L2Rpdj4KIAorPGRpdiBj
bGFzcz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBiaWdH
cmlkIGdyaWRBdXRvRmxvd0NvbHVtbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9Hcmlk
QXJlYSBzZWNvbmRSb3dTZWNvbmRDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNl
dC15PSI1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0i
MTAwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRv
R3JpZEFyZWEgZmlyc3RSb3dTZWNvbmRDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9m
ZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0
PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRU
b0dyaWRBcmVhIHNlY29uZFJvd0ZpcnN0Q29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9m
ZnNldC15PSI1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0
PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVk
VG9HcmlkQXJlYSBmaXJzdFJvd0ZpcnN0Q29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9m
ZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRv
R3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0
LXk9IjE1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIx
NTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBj
bGFzcz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBiaWdH
cmlkIGdyaWRBdXRvRmxvd1JvdyI+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJl
YSBmaXJzdFJvd0ZpcnN0Q29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIw
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
Zmlyc3RSb3dTZWNvbmRDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIw
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhY
WFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVh
IHNlY29uZFJvd1NlY29uZENvbHVtbiIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9
IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAi
PlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9Hcmlk
QXJlYSBzZWNvbmRSb3dGaXJzdENvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQt
eT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAw
Ij5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3Jp
ZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQt
eT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAi
PlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFz
cz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBiaWdHcmlk
IGdyaWRBdXRvRmxvd0NvbHVtbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJl
YSBhdXRvUm93Rmlyc3RDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhY
IFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBh
dXRvUm93U2Vjb25kQ29sdW1uIiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIg
ZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhY
IFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBz
ZWNvbmRSb3dBdXRvQ29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIg
ZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhY
IFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBm
aXJzdFJvd0F1dG9Db2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iMCIg
ZGF0YS1leHBlY3RlZC13aWR0aD0iMTUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhY
IFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBh
dXRvUm93QXV0b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMTUwIiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjE1MCI+WFhYWFgg
WFhYWFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJ1bmNv
bnN0cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGJpZ0dyaWQgZ3JpZEF1
dG9GbG93Um93Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dG
aXJzdENvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjE1MCI+WFhYWFggWFhYWFgg
WFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93
U2Vjb25kQ29sdW1uIiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1l
eHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhY
IFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRS
b3dBdXRvQ29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1l
eHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhY
IFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJv
d0F1dG9Db2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhY
WFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0
b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iMTUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVj
dGVkLXdpZHRoPSIxNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhY
WFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tYWRkaXRpb24t
YXV0by1wbGFjZW1lbnQtdXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1hZGRpdGlvbi1hdXRvLXBsYWNlbWVudC11cGRhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZmVmZDk5NTdmM2YxMjk5NWJiZGQyNmFkZjcyZDAxZGNm
NmFhODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWl0ZW0tYWRkaXRpb24tYXV0by1wbGFjZW1lbnQtdXBkYXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDM1IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBw
b3NpdGlvbnMgYXJlIHJlY29tcHV0ZWQgYWZ0ZXIgYWRkaW5nIGEgZ3JpZCBpdGVtLgorCitYWFhY
WCBYWFhYWCBYWFhYWAorRkFJTDoKK0V4cGVjdGVkIDE3MCBmb3Igd2lkdGgsIGJ1dCBnb3QgNTAu
IAorCis8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlkPSJh
dXRvRmxvd0NvbHVtbkVsZW1lbnQiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjE3MCIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUworUEFTUworUEFT
UworUEFTUworWFhYWFggWFhYWFggWFhYWFgKK0ZBSUw6CitFeHBlY3RlZCAzMCBmb3IgaGVpZ2h0
LCBidXQgZ290IDUwLiAKKworPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRv
Q29sdW1uIiBpZD0iYXV0b0Zsb3dSb3dFbGVtZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjMwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUwor
UEFTUworUEFTUworUEFTUworWFhYWFggWFhYWFggWFhYWFgKK0ZBSUw6CitFeHBlY3RlZCAxNzAg
Zm9yIHdpZHRoLCBidXQgZ290IDUwLiAKKworPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1
dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dDb2x1bW5FbGVtZW50V2l0aEF1dG8iIGRhdGEt
ZXhwZWN0ZWQtd2lkdGg9IjE3MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhY
WCBYWFhYWDwvZGl2PgorUEFTUworUEFTUworUEFTUworUEFTUworWFhYWFggWFhYWFggWFhYWFgK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1hZGRpdGlvbi1hdXRvLXBsYWNlbWVudC11cGRh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1hZGRp
dGlvbi1hdXRvLXBsYWNlbWVudC11cGRhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTk4MWViNDZiY2M1
ZTk5MzRmZGNmYWExNTk5Mzc0ZjgzMzkxMzM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWFkZGl0aW9uLWF1dG8tcGxhY2VtZW50
LXVwZGF0ZS5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQ
cmVmZXJlbmNlKCJXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZCIsIDEpOworPC9zY3JpcHQ+Cis8
bGluayBocmVmPSJyZXNvdXJjZXMvZ3JpZC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8c3R5bGU+
CisuZ3JpZCB7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbnM6IDUwcHggMTAwcHg7CisgICAgLXdl
YmtpdC1ncmlkLXJvd3M6IDUwcHggMTAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3RBZGRpdGlvbihncmlkRWxlbWVudElELCBwb3NpdGlvbiwgYXV0b0Zsb3dFbGVtZW50
SUQsIHNpemUpCit7CisgICAgdmFyIGdyaWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZ3JpZEVsZW1lbnRJRCk7CisKKyAgICB2YXIgZ3JpZEl0ZW0gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICBncmlkSXRlbS5zdHlsZS53ZWJraXRHcmlkUm93ID0gcG9zaXRp
b24ucm93OworICAgIGdyaWRJdGVtLnN0eWxlLndlYmtpdEdyaWRDb2x1bW4gPSBwb3NpdGlvbi5j
b2x1bW47CisgICAgZ3JpZEVsZW1lbnQuYXBwZW5kQ2hpbGQoZ3JpZEl0ZW0pOworCisgICAgdmFy
IGF1dG9GbG93RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGF1dG9GbG93RWxlbWVu
dElEKTsKKyAgICBhdXRvRmxvd0VsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdp
ZHRoIiwgc2l6ZS53aWR0aCk7CisgICAgYXV0b0Zsb3dFbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0
YS1leHBlY3RlZC1oZWlnaHQiLCBzaXplLmhlaWdodCk7CisgICAgY2hlY2tMYXlvdXQoIiMiICsg
YXV0b0Zsb3dFbGVtZW50SUQpOworfQorCitmdW5jdGlvbiB0ZXN0QWRkaXRpb25zKCkKK3sKKyAg
ICBjaGVja0xheW91dCgiI2F1dG9GbG93Q29sdW1uRWxlbWVudCIpOworICAgIHRlc3RBZGRpdGlv
bigiZ3JpZEF1dG9GbG93Q29sdW1uIiwgeyAncm93JzogJzEnLCAnY29sdW1uJzogJzEnIH0sICJh
dXRvRmxvd0NvbHVtbkVsZW1lbnQiLCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnMTAwJyB9
KTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd0NvbHVtbiIsIHsgJ3Jvdyc6ICcxJywg
J2NvbHVtbic6ICcyJyB9LCAiYXV0b0Zsb3dDb2x1bW5FbGVtZW50IiwgeyAnd2lkdGgnOiAnNTAn
LCAnaGVpZ2h0JzogJzEwMCcgfSk7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dDb2x1
bW4iLCB7ICdyb3cnOiAnMicsICdjb2x1bW4nOiAnMicgfSwgImF1dG9GbG93Q29sdW1uRWxlbWVu
dCIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICcxMDAnIH0pOworICAgIHRlc3RBZGRpdGlv
bigiZ3JpZEF1dG9GbG93Q29sdW1uIiwgeyAncm93JzogJzInLCAnY29sdW1uJzogJzEnIH0sICJh
dXRvRmxvd0NvbHVtbkVsZW1lbnQiLCB7ICd3aWR0aCc6ICcxNzAnLCAnaGVpZ2h0JzogJzUwJyB9
KTsKKworICAgIGNoZWNrTGF5b3V0KCIjYXV0b0Zsb3dSb3dFbGVtZW50Iik7CisgICAgdGVzdEFk
ZGl0aW9uKCJncmlkQXV0b0Zsb3dSb3ciLCB7ICdyb3cnOiAnMScsICdjb2x1bW4nOiAnMScgfSwg
ImF1dG9GbG93Um93RWxlbWVudCIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0p
OworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Um93IiwgeyAncm93JzogJzInLCAnY29s
dW1uJzogJzEnIH0sICJhdXRvRmxvd1Jvd0VsZW1lbnQiLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVp
Z2h0JzogJzUwJyB9KTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd1JvdyIsIHsgJ3Jv
dyc6ICcyJywgJ2NvbHVtbic6ICcyJyB9LCAiYXV0b0Zsb3dSb3dFbGVtZW50IiwgeyAnd2lkdGgn
OiAnMTAwJywgJ2hlaWdodCc6ICc1MCcgfSk7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zs
b3dSb3ciLCB7ICdyb3cnOiAnMScsICdjb2x1bW4nOiAnMicgfSwgImF1dG9GbG93Um93RWxlbWVu
dCIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICczMCcgfSk7CisKKyAgICBjaGVja0xheW91
dCgiI2dyaWRBdXRvRmxvd0NvbHVtbldpdGhBdXRvIik7CisgICAgdGVzdEFkZGl0aW9uKCJncmlk
QXV0b0Zsb3dDb2x1bW5XaXRoQXV0byIsIHsgJ3Jvdyc6ICdhdXRvJywgJ2NvbHVtbic6ICcxJyB9
LCAiYXV0b0Zsb3dDb2x1bW5FbGVtZW50V2l0aEF1dG8iLCB7ICd3aWR0aCc6ICc1MCcsICdoZWln
aHQnOiAnMTAwJyB9KTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd0NvbHVtbldpdGhB
dXRvIiwgeyAncm93JzogJzEnLCAnY29sdW1uJzogJzEnIH0sICJhdXRvRmxvd0NvbHVtbkVsZW1l
bnRXaXRoQXV0byIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRl
c3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG8iLCB7ICdyb3cnOiAnYXV0bycs
ICdjb2x1bW4nOiAnMicgfSwgImF1dG9GbG93Q29sdW1uRWxlbWVudFdpdGhBdXRvIiwgeyAnd2lk
dGgnOiAnMTAwJywgJ2hlaWdodCc6ICcxMDAnIH0pOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1
dG9GbG93Q29sdW1uV2l0aEF1dG8iLCB7ICdyb3cnOiAnMicsICdjb2x1bW4nOiAnMicgfSwgImF1
dG9GbG93Q29sdW1uRWxlbWVudFdpdGhBdXRvIiwgeyAnd2lkdGgnOiAnMTcwJywgJ2hlaWdodCc6
ICc1MCcgfSk7CisKKyAgICBjaGVja0xheW91dCgiI2dyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvIik7
CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dSb3dXaXRoQXV0byIsIHsgJ3Jvdyc6ICcx
JywgJ2NvbHVtbic6ICdhdXRvJyB9LCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG8iLCB7ICd3
aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzUwJyB9KTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRB
dXRvRmxvd1Jvd1dpdGhBdXRvIiwgeyAncm93JzogJ2F1dG8nLCAnY29sdW1uJzogJzEnIH0sICJh
dXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0byIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAn
NTAnIH0pOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Um93V2l0aEF1dG8iLCB7ICdy
b3cnOiAnMScsICdjb2x1bW4nOiAnMicgfSwgImF1dG9GbG93Um93RWxlbWVudFdpdGhBdXRvIiwg
eyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzEwMCcgfSk7CisgICAgdGVzdEFkZGl0aW9uKCJn
cmlkQXV0b0Zsb3dSb3dXaXRoQXV0byIsIHsgJ3Jvdyc6ICcxJywgJ2NvbHVtbic6ICcxJyB9LCAi
YXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG8iLCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAn
MTAwJyB9KTsKK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGVzdEFkZGl0aW9u
cywgZmFsc2UpOworPC9zY3JpcHQ+Cis8Ym9keT4KKworPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IHRoZSB0cmFja3MnIGF1dG8gcG9zaXRpb25zIGFyZSByZWNvbXB1dGVkIGFmdGVyIGFkZGluZyBh
IGdyaWQgaXRlbS48L3A+CisKKzxkaXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250YWluZXIiPgor
ICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Q29sdW1uIiBpZD0iZ3JpZEF1dG9GbG93
Q29sdW1uIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRv
Q29sdW1uIiBpZD0iYXV0b0Zsb3dDb2x1bW5FbGVtZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1
MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAg
IDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250YWluZXIiPgor
ICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Um93IiBpZD0iZ3JpZEF1dG9GbG93Um93
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1u
IiBpZD0iYXV0b0Zsb3dSb3dFbGVtZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1l
eHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgIDwvZGl2Pgor
PC9kaXY+CisKKzxkaXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250YWluZXIiPgorICAgIDxkaXYg
Y2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Q29sdW1uIiBpZD0iZ3JpZEF1dG9GbG93Q29sdW1uV2l0
aEF1dG8iPgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9D
b2x1bW4iIGlkPSJhdXRvRmxvd0NvbHVtbkVsZW1lbnRXaXRoQXV0byIgZGF0YS1leHBlY3RlZC13
aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJ1bmNvbnN0cmFpbmVkQ29udGFp
bmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd1JvdyIgaWQ9ImdyaWRBdXRv
Rmxvd1Jvd1dpdGhBdXRvIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1
dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG8iIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhY
WFhYPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXJlbW92YWwt
YXV0by1wbGFjZW1lbnQtdXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1yZW1vdmFsLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJjZWM1NjUwZTQ0ZDZhOGQ2OWRlZWEwYTNkZmEyYmJmZTlm
ZTQ5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtaXRlbS1yZW1vdmFsLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzMiBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MnIGF1dG8gcG9z
aXRpb25zIGFyZSByZWNvbXB1dGVkIGFmdGVyIHJlbW92aW5nIGEgZ3JpZCBpdGVtLgorCitYWFhY
WCBYWFhYWCBYWFhYWAorRkFJTDoKK0V4cGVjdGVkIDE3MCBmb3Igd2lkdGgsIGJ1dCBnb3QgNTAu
IAorCis8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlkPSJh
dXRvRmxvd0NvbHVtbkVsZW1lbnQiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjE3MCIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUworUEFTUworUEFT
UworUEFTUworWFhYWFggWFhYWFggWFhYWFgKK0ZBSUw6CitFeHBlY3RlZCAzMCBmb3IgaGVpZ2h0
LCBidXQgZ290IDUwLiAKKworPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRv
Q29sdW1uIiBpZD0iYXV0b0Zsb3dSb3dFbGVtZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjMwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUwor
UEFTUworUEFTUworUEFTUworWFhYWFggWFhYWFggWFhYWFgKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1hYWFhYIFhYWFhYIFhYWFhYCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0t
cmVtb3ZhbC1hdXRvLXBsYWNlbWVudC11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1yZW1vdmFsLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM2Y2JlMWRlMjVhZTI4N2EyMmJlYzU3Y2VlMzc2ZjEzMjBlYTZmZTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0
ZW0tcmVtb3ZhbC1hdXRvLXBsYWNlbWVudC11cGRhdGUuaHRtbApAQCAtMCwwICsxLDEwMyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRF
bmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIg
cmVsPSJzdHlsZXNoZWV0Ij4KKzxzdHlsZT4KKy5ncmlkIHsKKyAgICAtd2Via2l0LWdyaWQtY29s
dW1uczogNTBweCAxMDBweDsKKyAgICAtd2Via2l0LWdyaWQtcm93czogNTBweCAxMDBweDsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdFJlbW92YWwoZ3JpZEVsZW1lbnRJRCwg
YXV0b0Zsb3dFbGVtZW50SUQsIHNpemUpCit7CisgICAgdmFyIGdyaWRFbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZ3JpZEVsZW1lbnRJRCk7CisgICAgdmFyIGF1dG9GbG93RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGF1dG9GbG93RWxlbWVudElEKTsKKworICAgIC8v
IFJlbW92ZSB0aGUgd2hpdGUgc3BhY2UgYW5kIHRoZSBmaXJzdCBncmlkIGl0ZW0uCisgICAgZ3Jp
ZEVsZW1lbnQucmVtb3ZlQ2hpbGQoZ3JpZEVsZW1lbnQuZmlyc3RDaGlsZCk7CisgICAgZ3JpZEVs
ZW1lbnQucmVtb3ZlQ2hpbGQoZ3JpZEVsZW1lbnQuZmlyc3RDaGlsZCk7CisKKyAgICBhdXRvRmxv
d0VsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdpZHRoIiwgc2l6ZS53aWR0aCk7
CisgICAgYXV0b0Zsb3dFbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQi
LCBzaXplLmhlaWdodCk7CisgICAgY2hlY2tMYXlvdXQoIiMiICsgZ3JpZEVsZW1lbnRJRCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RSZW1vdmFscygpCit7CisgICAgY2hlY2tMYXlvdXQoIiNhdXRvRmxv
d0NvbHVtbkVsZW1lbnQiKTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Q29sdW1uIiwg
ImF1dG9GbG93Q29sdW1uRWxlbWVudCIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnMTAw
JyB9KTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Q29sdW1uIiwgImF1dG9GbG93Q29s
dW1uRWxlbWVudCIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRl
c3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dDb2x1bW4iLCAiYXV0b0Zsb3dDb2x1bW5FbGVtZW50Iiwg
eyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzEwMCcgfSk7CisgICAgdGVzdFJlbW92YWwoImdy
aWRBdXRvRmxvd0NvbHVtbiIsICJhdXRvRmxvd0NvbHVtbkVsZW1lbnQiLCB7ICd3aWR0aCc6ICc1
MCcsICdoZWlnaHQnOiAnNTAnIH0pOworCisgICAgY2hlY2tMYXlvdXQoIiNhdXRvRmxvd1Jvd0Vs
ZW1lbnQiKTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Um93IiwgImF1dG9GbG93Um93
RWxlbWVudCIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnMTAwJyB9KTsKKyAgICB0ZXN0
UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Um93IiwgImF1dG9GbG93Um93RWxlbWVudCIsIHsgJ3dpZHRo
JzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zs
b3dSb3ciLCAiYXV0b0Zsb3dSb3dFbGVtZW50IiwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0Jzog
JzUwJyB9KTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Um93IiwgImF1dG9GbG93Um93
RWxlbWVudCIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICc1MCcgfSk7CisKKyAgICBjaGVj
a0xheW91dCgiI2dyaWRBdXRvRmxvd0NvbHVtbldpdGhBdXRvSXRlbXMiKTsKKyAgICB0ZXN0UmVt
b3ZhbCgiZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG9JdGVtcyIsICJhdXRvRmxvd1Jvd0VsZW1l
bnRXaXRoQXV0b0l0ZW1zIiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICcxMDAnIH0pOwor
ICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dDb2x1bW5XaXRoQXV0b0l0ZW1zIiwgImF1dG9G
bG93Um93RWxlbWVudFdpdGhBdXRvSXRlbXMiLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0Jzog
JzUwJyB9KTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG9JdGVt
cyIsICJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0b0l0ZW1zIiwgeyAnd2lkdGgnOiAnNTAnLCAn
aGVpZ2h0JzogJzEwMCcgfSk7CisgICAgdGVzdFJlbW92YWwoImdyaWRBdXRvRmxvd0NvbHVtbldp
dGhBdXRvSXRlbXMiLCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG9JdGVtcyIsIHsgJ3dpZHRo
JzogJzUwJywgJ2hlaWdodCc6ICc1MCcgfSk7CisKKyAgICBjaGVja0xheW91dCgiI2dyaWRBdXRv
Rmxvd1Jvd1dpdGhBdXRvQW5kRml4ZWRJdGVtcyIpOworICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0
b0Zsb3dSb3dXaXRoQXV0b0FuZEZpeGVkSXRlbXMiLCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1
dG9BbmRGaXhlZEl0ZW1zIiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICcxMDAnIH0pOwor
ICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dSb3dXaXRoQXV0b0FuZEZpeGVkSXRlbXMiLCAi
YXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG9BbmRGaXhlZEl0ZW1zIiwgeyAnd2lkdGgnOiAnMTAw
JywgJ2hlaWdodCc6ICc1MCcgfSk7CisgICAgdGVzdFJlbW92YWwoImdyaWRBdXRvRmxvd1Jvd1dp
dGhBdXRvQW5kRml4ZWRJdGVtcyIsICJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0b0FuZEZpeGVk
SXRlbXMiLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzUwJyB9KTsKKyAgICB0ZXN0UmVt
b3ZhbCgiZ3JpZEF1dG9GbG93Um93V2l0aEF1dG9BbmRGaXhlZEl0ZW1zIiwgImF1dG9GbG93Um93
RWxlbWVudFdpdGhBdXRvQW5kRml4ZWRJdGVtcyIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6
ICc1MCcgfSk7Cit9Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRlc3RSZW1vdmFs
cywgZmFsc2UpOworPC9zY3JpcHQ+Cis8Ym9keT4KKworPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IHRoZSB0cmFja3MnIGF1dG8gcG9zaXRpb25zIGFyZSByZWNvbXB1dGVkIGFmdGVyIHJlbW92aW5n
IGEgZ3JpZCBpdGVtLjwvcD4KKworPGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+
CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXV0b0Zsb3dDb2x1bW4iIGlkPSJncmlkQXV0b0Zs
b3dDb2x1bW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93
U2Vjb25kQ29sdW1uIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNz
PSJzaXplZFRvR3JpZEFyZWEgZmlyc3RSb3dTZWNvbmRDb2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhY
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dGaXJz
dENvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6
ZWRUb0dyaWRBcmVhIGZpcnN0Um93Rmlyc3RDb2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+
CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIg
aWQ9ImF1dG9GbG93Q29sdW1uRWxlbWVudCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTcwIiBkYXRh
LWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgPC9kaXY+
Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRp
diBjbGFzcz0iZ3JpZCBncmlkQXV0b0Zsb3dSb3ciIGlkPSJncmlkQXV0b0Zsb3dSb3ciPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93U2Vjb25kQ29sdW1uIj5Y
WFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFy
ZWEgZmlyc3RSb3dTZWNvbmRDb2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0ZpcnN0Q29sdW1uIj5YWFhYWCBY
WFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vj
b25kUm93Rmlyc3RDb2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9ImF1dG9GbG93Um93
RWxlbWVudCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIz
MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNs
YXNzPSJ1bmNvbnN0cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRB
dXRvRmxvd0NvbHVtbiIgaWQ9ImdyaWRBdXRvRmxvd0NvbHVtbldpdGhBdXRvSXRlbXMiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0ZpcnN0Q29sdW1uIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
YXV0b1Jvd1NlY29uZENvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRp
diBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd0F1dG9Db2x1bW4iPlhYWFhYIFhYWFhY
IFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJv
d0F1dG9Db2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9
InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9ImF1dG9GbG93Um93RWxlbWVu
dFdpdGhBdXRvSXRlbXMiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1o
ZWlnaHQ9IjEwMCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2Pgor
Cis8ZGl2IGNsYXNzPSJ1bmNvbnN0cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJn
cmlkIGdyaWRBdXRvRmxvd1JvdyIgaWQ9ImdyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvQW5kRml4ZWRJ
dGVtcyI+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93Rmlyc3RD
b2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVk
VG9HcmlkQXJlYSBmaXJzdFJvd1NlY29uZENvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd0F1dG9Db2x1bW4i
PlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9Hcmlk
QXJlYSBmaXJzdFJvd0F1dG9Db2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9ImF1dG9G
bG93Um93RWxlbWVudFdpdGhBdXRvQW5kRml4ZWRJdGVtcyIgZGF0YS1leHBlY3RlZC13aWR0aD0i
MTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2Pgor
ICAgIDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189400</attachid>
            <date>2013-02-20 16:02:44 -0800</date>
            <delta_ts>2013-02-20 16:20:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-110277-20130220155904.patch</filename>
            <type>text/plain</type>
            <size>32804</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBhNTNmMzg3NjRjOGY1
ZWNjZGNmZWJkNjUxMjE2NDI5YjQzMjFmZi4uODFjMTY3NGUzZmNmYTU1NDEzOTc2YWExMjAyYjFk
YTkwOWE5MGIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAyLTIwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEltcGxlbWVudCB0aGUgYXV0by1wbGFjZW1lbnQgYWxnb3JpdGhtIHdpdGhvdXQg
Z3JpZCBncm93dGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDI3NworCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1hZGRpdGlvbi1hdXRvLXBsYWNl
bWVudC11cGRhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1pdGVtLXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRlLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24uaHRtbCAoZXh0
ZW5kZWQgdG8gY292ZXIgbW9yZSBjYXNlcykKKworICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1l
bnRzIG1vc3Qgb2YgdGhlIGF1dG8tcGxhY2VtZW50IGFsZ29yaXRobSBwZXIKKyAgICAgICAgaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy1ncmlkLWxheW91dC8jYXV0by1wbGFjZW1lbnQtYWxn
bworCisgICAgICAgIFRvIGxpbWl0IHRoZSBzaXplIG9mIHRoZSBjb2RlIGNoYW5nZSwgaXQgZG9l
c24ndCBpbXBsZW1lbnQgZ3Jvd2luZyB0aGUgZ3JpZCBpZiB0aGVyZQorICAgICAgICBhcmUgbm8g
ZW1wdHkgZ3JpZCBhcmVhcy4gSWYgd2UgZG9uJ3QgZmluZCBhbnkgZW1wdHkgZ3JpZCBhcmVhcywg
d2UganVzdCBpbnNlcnQgaW4gdGhlIGZpcnN0CisgICAgICAgIG9uZSwgbGlrZSB3aGF0IGdyaWQt
YXV0by1mbG93OiBub25lIHdvdWxkIGRvICh3aGljaCBleHBsYWlucyB0aGUgdGVzdCBmYWlsdXJl
cykuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJHcmlkOjpHcmlkSXRlcmF0b3I6Om5leHRFbXB0eUdyaWRBcmVhKToKKyAgICAg
ICAgQWRkZWQgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIEdyaWRDb29yZGluYXRlIG9mIHRo
ZSBuZXh0IGVtcHR5IGdyaWQgYXJlYSBhbG9uZworICAgICAgICB0aGUgaXRlcmF0b3IncyBkaXJl
Y3Rpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQp
OgorICAgICAgICBTcGxpdCB0aGlzIGZ1bmN0aW9uIGludG8gdGhlIGRpZmZlcmVudCBzdGVwcyBi
ZWxvdy4gRm9yIGVmZmljaWVuY3ksIGNvbGxlY3QgdGhlIGF1dG8gdnMgc3BlY2lmaWVkCisgICAg
ICAgIG1ham9yIGF4aXMgZ3JpZCBpdGVtcyBpbiBkaWZmZXJlbnQgVmVjdG9ycy4KKworICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3Jp
ZCk6CisgICAgICAgIEFkZGVkIHRoaXMgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHBhcnQgb2Yg
c3RlcCAxIG9mIHRoZSBhbGdvcml0aG0gKHRoZSBncmlkIGl0ZW1zIHdpdGhvdXQKKyAgICAgICAg
YXV0byByb3cgLyBjb2x1bW4gYXJlIGFscmVhZHkgaGFuZGxlZCBpbiBwbGFjZUl0ZW1zT25Hcmlk
KS4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRl
bXNPbkdyaWQpOgorICAgICAgICBBZGRlZCB0aGlzIGZ1bmN0aW9uIHRoYXQgaXRlcmF0ZXMgb3Zl
ciB0aGUgYXV0byBncmlkIGl0ZW1zIGFuZCBjYWxsIHBsYWNlQXV0b01ham9yQXhpc0l0ZW1Pbkdy
aWQuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0
ZW1PbkdyaWQpOgorICAgICAgICBBZGRlZCB0aGlzIG1ldGhvZCB0byBoYW5kbGUgdGhlIHN0ZXAg
NCBvZiB0aGUgYWxnb3JpdGhtLiBCYXNlZCBvbiB0aGUgbWlub3IgYXhpcydzIHBvc2l0aW9uLAor
ICAgICAgICBpdCBlaXRoZXIgd2Fsa3MgYWxvbmcgdGhlIG1ham9yIGF4aXMgb25jZSBvciBzZXZl
cmFsIHRpbWVzIHVudGlsIGl0IGZpbmRzIGFuIGVtcHR5IGdyaWQgYXJlYQorICAgICAgICBmb3Ig
dGhlIGdyaWQgaXRlbS4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6YXV0b1BsYWNl
bWVudE1ham9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
R3JpZDo6YXV0b1BsYWNlbWVudE1pbm9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0
aW9uKToKKyAgICAgICAgQWRkZWQgdGhlc2UgaGVscGVyIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBt
aW5vciAvIG1ham9yIGF4aXMgcG9zaXRpb25zICYgZGlyZWN0aW9uLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgQWRkZWQgdGhlIHByZXZpb3VzIG5ldyBSZW5k
ZXJHcmlkIGZ1bmN0aW9ucy4KKwogMjAxMy0wMi0yMCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENyYXNoIGluIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVj
a0NvbXBsZXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXgg
MGQ3ZTliNTA3N2U4ODZiOGU5ZjZhZDc1MzIxMDdkYjZjNmZkZDIzNS4uNjFmYTZlNWQwYWZlN2M5
OTg3OGNhNDdmYjFjMTAzMTFlNWFkNzA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcApAQCAtOTYsNiArOTYsMjYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KKworICAgIFBhc3NPd25QdHI8R3JpZENvb3JkaW5hdGU+IG5leHRF
bXB0eUdyaWRBcmVhKCkKKyAgICB7CisgICAgICAgIGlmIChtX2dyaWQuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgc2l6ZV90JiB2YXJ5aW5nVHJhY2tJ
bmRleCA9IChtX2RpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IG1fcm93SW5kZXggOiBtX2NvbHVt
bkluZGV4OworICAgICAgICBjb25zdCBzaXplX3QgZW5kT2ZWYXJ5aW5nVHJhY2tJbmRleCA9ICht
X2RpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IG1fZ3JpZC5zaXplKCkgOiBtX2dyaWRbMF0uc2l6
ZSgpOworICAgICAgICBmb3IgKDsgdmFyeWluZ1RyYWNrSW5kZXggPCBlbmRPZlZhcnlpbmdUcmFj
a0luZGV4OyArK3ZhcnlpbmdUcmFja0luZGV4KSB7CisgICAgICAgICAgICBjb25zdCBWZWN0b3I8
UmVuZGVyQm94Kj4mIGNoaWxkcmVuID0gbV9ncmlkW21fcm93SW5kZXhdW21fY29sdW1uSW5kZXhd
OworICAgICAgICAgICAgaWYgKGNoaWxkcmVuLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAg
IFBhc3NPd25QdHI8R3JpZENvb3JkaW5hdGU+IHJlc3VsdCA9ICBhZG9wdFB0cihuZXcgR3JpZENv
b3JkaW5hdGUobV9yb3dJbmRleCwgbV9jb2x1bW5JbmRleCkpOworICAgICAgICAgICAgICAgIC8v
IEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3Agd2hlcmUgd2Ug
d291bGQgcmV0dXJuIHRoZSBzYW1lIGdyaWQgYXJlYSBvdmVyIGFuZCBvdmVyLgorICAgICAgICAg
ICAgICAgICsrdmFyeWluZ1RyYWNrSW5kZXg7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisKIHByaXZhdGU6CiAgICAgY29uc3QgVmVjdG9yPFZlY3RvcjxWZWN0b3I8UmVuZGVyQm94
KiwgMT4gPiA+JiBtX2dyaWQ7CiAgICAgVHJhY2tTaXppbmdEaXJlY3Rpb24gbV9kaXJlY3Rpb247
CkBAIC00OTEsMTMgKzUxMSwxOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQo
KQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ncmlkLnNpemUoKTsgKytpKQogICAgICAg
ICBtX2dyaWRbaV0uZ3JvdyhtYXhpbXVtQ29sdW1uSW5kZXgpOwogCi0gICAgVmVjdG9yPFJlbmRl
ckJveCo+IGF1dG9HcmlkSXRlbXM7CisgICAgVmVjdG9yPFJlbmRlckJveCo+IGF1dG9NYWpvckF4
aXNBdXRvR3JpZEl0ZW1zOworICAgIFZlY3RvcjxSZW5kZXJCb3gqPiBzcGVjaWZpZWRNYWpvckF4
aXNBdXRvR3JpZEl0ZW1zOwogICAgIEdyaWRBdXRvRmxvdyBhdXRvRmxvdyA9IHN0eWxlKCktPmdy
aWRBdXRvRmxvdygpOwogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3go
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nQm94KCkpIHsKICAgICAgICAgY29u
c3QgR3JpZFBvc2l0aW9uJiBjb2x1bW5Qb3NpdGlvbiA9IGNoaWxkLT5zdHlsZSgpLT5ncmlkSXRl
bUNvbHVtbigpOwogICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIHJvd1Bvc2l0aW9uID0gY2hp
bGQtPnN0eWxlKCktPmdyaWRJdGVtUm93KCk7CiAgICAgICAgIGlmIChhdXRvRmxvdyAhPSBBdXRv
Rmxvd05vbmUgJiYgKGNvbHVtblBvc2l0aW9uLmlzQXV0bygpIHx8IHJvd1Bvc2l0aW9uLmlzQXV0
bygpKSkgewotICAgICAgICAgICAgYXV0b0dyaWRJdGVtcy5hcHBlbmQoY2hpbGQpOworICAgICAg
ICAgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBtYWpvckF4aXNQb3NpdGlvbiA9IGF1dG9QbGFjZW1l
bnRNYWpvckF4aXNQb3NpdGlvbkZvckNoaWxkKGNoaWxkKTsKKyAgICAgICAgICAgIGlmIChtYWpv
ckF4aXNQb3NpdGlvbi5pc0F1dG8oKSkKKyAgICAgICAgICAgICAgICBhdXRvTWFqb3JBeGlzQXV0
b0dyaWRJdGVtcy5hcHBlbmQoY2hpbGQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHNwZWNpZmllZE1ham9yQXhpc0F1dG9HcmlkSXRlbXMuYXBwZW5kKGNoaWxkKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIHNpemVfdCBjb2x1bW5UcmFjayA9
IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29sdW1uUG9zaXRpb24pOwpAQCAtNTEwLDEz
ICs1MzUsMjcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIAogICAgIGlm
IChhdXRvRmxvdyA9PSBBdXRvRmxvd05vbmUpIHsKICAgICAgICAgLy8gSWYgd2UgZGlkIGNvbGxl
Y3Qgc29tZSBncmlkIGl0ZW1zLCB0aGV5IHdvbid0IGJlIHBsYWNlZCB0aHVzIG5ldmVyIGxhaWQg
b3V0LgotICAgICAgICBBU1NFUlQoIWF1dG9HcmlkSXRlbXMuc2l6ZSgpKTsKKyAgICAgICAgQVNT
RVJUKCFhdXRvTWFqb3JBeGlzQXV0b0dyaWRJdGVtcy5zaXplKCkpOworICAgICAgICBBU1NFUlQo
IXNwZWNpZmllZE1ham9yQXhpc0F1dG9HcmlkSXRlbXMuc2l6ZSgpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBpbXBsZW1lbnQgdGhlIGF1dG8g
ZmxvdyBhbGdvcml0aG0gKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2IvMTAzMzE2KS4KLSAgICAv
LyBUbyBrZWVwIG91ciB0ZXN0cyBwYXNzaW5nLCB3ZSBqdXN0IGluc2VydCB0aGVtIGluIHRoZSBn
cmlkIGFzIGlmIGdyaWQtYXV0by1mbG93IHdhcyBub25lLgorICAgIHBsYWNlU3BlY2lmaWVkTWFq
b3JBeGlzSXRlbXNPbkdyaWQoc3BlY2lmaWVkTWFqb3JBeGlzQXV0b0dyaWRJdGVtcyk7CisgICAg
cGxhY2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQoYXV0b01ham9yQXhpc0F1dG9HcmlkSXRlbXMp
OworfQorCit2b2lkIFJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdy
aWQoVmVjdG9yPFJlbmRlckJveCo+IGF1dG9HcmlkSXRlbXMpCit7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBhdXRvR3JpZEl0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEdy
aWRQb3NpdGlvbiYgbWFqb3JBeGlzUG9zaXRpb24gPSBhdXRvUGxhY2VtZW50TWFqb3JBeGlzUG9z
aXRpb25Gb3JDaGlsZChhdXRvR3JpZEl0ZW1zW2ldKTsKKyAgICAgICAgQVNTRVJUKCFtYWpvckF4
aXNQb3NpdGlvbi5pc0F1dG8oKSk7CisgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dy
aWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgcmVzb2x2ZUdyaWRQb3NpdGlv
bkZyb21TdHlsZShtYWpvckF4aXNQb3NpdGlvbikpOworICAgICAgICBpZiAoT3duUHRyPEdyaWRD
b29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKSkg
eworICAgICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbXNbaV0sIGVtcHR5
R3JpZEFyZWEtPnJvd0luZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5JbmRleCk7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZ3Jv
d2luZyB0aGUgZ3JpZCBpbiB0aGUgbWlub3IgYXhpcyBpbnN0ZWFkIG9mIGRlZmF1bHRpbmcgdG8g
dGhlIGZpcnN0IHJvdyAvIGNvbHVtbi4KICAgICAgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBjb2x1
bW5Qb3NpdGlvbiA9IGF1dG9HcmlkSXRlbXNbaV0tPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1uKCk7
CiAgICAgICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgcm93UG9zaXRpb24gPSBhdXRvR3JpZEl0ZW1z
W2ldLT5zdHlsZSgpLT5ncmlkSXRlbVJvdygpOwogICAgICAgICBzaXplX3QgY29sdW1uVHJhY2sg
PSBjb2x1bW5Qb3NpdGlvbi5pc0F1dG8oKSA/IDAgOiByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0
eWxlKGNvbHVtblBvc2l0aW9uKTsKQEAgLTUyNiw2ICs1NjUsNzQgQEAgdm9pZCBSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKCkKICAgICB9CiB9CiAKK3ZvaWQgUmVuZGVyR3JpZDo6cGxhY2VB
dXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQoVmVjdG9yPFJlbmRlckJveCo+IGF1dG9HcmlkSXRlbXMp
Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdXRvR3JpZEl0ZW1zLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgbWFqb3JBeGlzUG9zaXRpb24gPSBhdXRv
UGxhY2VtZW50TWFqb3JBeGlzUG9zaXRpb25Gb3JDaGlsZChhdXRvR3JpZEl0ZW1zW2ldKTsKKyAg
ICAgICAgQVNTRVJUKG1ham9yQXhpc1Bvc2l0aW9uLmlzQXV0bygpKTsKKyAgICAgICAgcGxhY2VB
dXRvTWFqb3JBeGlzSXRlbU9uR3JpZChhdXRvR3JpZEl0ZW1zW2ldKTsKKyAgICB9Cit9CisKK3Zv
aWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gqIGdy
aWRJdGVtKQoreworICAgIEFTU0VSVChhdXRvUGxhY2VtZW50TWFqb3JBeGlzUG9zaXRpb25Gb3JD
aGlsZChncmlkSXRlbSkuaXNBdXRvKCkpOworICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgbWlub3JB
eGlzUG9zaXRpb24gPSBhdXRvUGxhY2VtZW50TWlub3JBeGlzUG9zaXRpb25Gb3JDaGlsZChncmlk
SXRlbSk7CisgICAgaWYgKCFtaW5vckF4aXNQb3NpdGlvbi5pc0F1dG8oKSkgeworICAgICAgICBH
cmlkSXRlcmF0b3IgaXRlcmF0b3IobV9ncmlkLCBhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0
aW9uKCksIHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUobWlub3JBeGlzUG9zaXRpb24pKTsK
KyAgICAgICAgaWYgKE93blB0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJh
dG9yLm5leHRFbXB0eUdyaWRBcmVhKCkpIHsKKyAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3Jp
ZChncmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93SW5kZXgsIGVtcHR5R3JpZEFyZWEtPmNvbHVt
bkluZGV4KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7Cisg
ICAgICAgIGNvbnN0IHNpemVfdCBlbmRPZk1ham9yQXhpcyA9IChhdXRvUGxhY2VtZW50TWFqb3JB
eGlzRGlyZWN0aW9uKCkgPT0gRm9yQ29sdW1ucykgPyBncmlkQ29sdW1uQ291bnQoKSA6IGdyaWRS
b3dDb3VudCgpOworICAgICAgICBmb3IgKHNpemVfdCBtYWpvckF4aXNJbmRleCA9IDA7IG1ham9y
QXhpc0luZGV4IDwgZW5kT2ZNYWpvckF4aXM7ICsrbWFqb3JBeGlzSW5kZXgpIHsKKyAgICAgICAg
ICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNE
aXJlY3Rpb24oKSwgbWFqb3JBeGlzSW5kZXgpOworICAgICAgICAgICAgaWYgKE93blB0cjxHcmlk
Q29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5leHRFbXB0eUdyaWRBcmVhKCkp
IHsKKyAgICAgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0sIGVtcHR5R3Jp
ZEFyZWEtPnJvd0luZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5JbmRleCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICAv
LyBGSVhNRTogSGFuZGxlIGV4dGVuZGluZyB0aGUgZ3JpZCBpbiB0aGUgbWFqb3IgZGlyZWN0aW9u
IGluc3RlYWQgb2YgZGVmYXVsdGluZyB0byB0aGUgZmlyc3Qgcm93IC8gY29sdW1uLgorICAgIGNv
bnN0IEdyaWRQb3NpdGlvbiYgY29sdW1uUG9zaXRpb24gPSBncmlkSXRlbS0+c3R5bGUoKS0+Z3Jp
ZEl0ZW1Db2x1bW4oKTsKKyAgICBjb25zdCBHcmlkUG9zaXRpb24mIHJvd1Bvc2l0aW9uID0gZ3Jp
ZEl0ZW0tPnN0eWxlKCktPmdyaWRJdGVtUm93KCk7CisgICAgc2l6ZV90IGNvbHVtblRyYWNrID0g
Y29sdW1uUG9zaXRpb24uaXNBdXRvKCkgPyAwIDogcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHls
ZShjb2x1bW5Qb3NpdGlvbik7CisgICAgc2l6ZV90IHJvd1RyYWNrID0gcm93UG9zaXRpb24uaXNB
dXRvKCkgPyAwIDogcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShyb3dQb3NpdGlvbik7CisK
KyAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0sIHJvd1RyYWNrLCBjb2x1bW5UcmFjayk7
Cit9CisKK2NvbnN0IEdyaWRQb3NpdGlvbiYgUmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9y
QXhpc1Bvc2l0aW9uRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBncmlkSXRlbSkgY29uc3QKK3sK
KyAgICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0eWxlKCktPmdyaWRBdXRvRmxvdygpOworICAgIEFT
U0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7CisgICAgcmV0dXJuIChmbG93ID09IEF1dG9GbG93
Q29sdW1uKSA/IGdyaWRJdGVtLT5zdHlsZSgpLT5ncmlkSXRlbUNvbHVtbigpIDogZ3JpZEl0ZW0t
PnN0eWxlKCktPmdyaWRJdGVtUm93KCk7Cit9CisKK2NvbnN0IEdyaWRQb3NpdGlvbiYgUmVuZGVy
R3JpZDo6YXV0b1BsYWNlbWVudE1pbm9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQoY29uc3QgUmVuZGVy
Qm94KiBncmlkSXRlbSkgY29uc3QKK3sKKyAgICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0eWxlKCkt
PmdyaWRBdXRvRmxvdygpOworICAgIEFTU0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7CisgICAg
cmV0dXJuIChmbG93ID09IEF1dG9GbG93Q29sdW1uKSA/IGdyaWRJdGVtLT5zdHlsZSgpLT5ncmlk
SXRlbVJvdygpIDogZ3JpZEl0ZW0tPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1uKCk7Cit9CisKK1Jl
bmRlckdyaWQ6OlRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRN
YWpvckF4aXNEaXJlY3Rpb24oKSBjb25zdAoreworICAgIEdyaWRBdXRvRmxvdyBmbG93ID0gc3R5
bGUoKS0+Z3JpZEF1dG9GbG93KCk7CisgICAgQVNTRVJUKGZsb3cgIT0gQXV0b0Zsb3dOb25lKTsK
KyAgICByZXR1cm4gKGZsb3cgPT0gQXV0b0Zsb3dDb2x1bW4pID8gRm9yQ29sdW1ucyA6IEZvclJv
d3M7Cit9CisKK1JlbmRlckdyaWQ6OlRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1
dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSBjb25zdAoreworICAgIEdyaWRBdXRvRmxv
dyBmbG93ID0gc3R5bGUoKS0+Z3JpZEF1dG9GbG93KCk7CisgICAgQVNTRVJUKGZsb3cgIT0gQXV0
b0Zsb3dOb25lKTsKKyAgICByZXR1cm4gKGZsb3cgPT0gQXV0b0Zsb3dDb2x1bW4pID8gRm9yUm93
cyA6IEZvckNvbHVtbnM7Cit9CisKIHZvaWQgUmVuZGVyR3JpZDo6Y2xlYXJHcmlkKCkKIHsKICAg
ICBtX2dyaWQuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4
IGNiZWI0NTkzZTFhNDdjZTBhNzNjNDk0OTU1MDExZWVkNjJmODNmNTcuLjhhYmQxNzQ1NTBmMDNj
MDEyYjkwMWJjZGYyZGE3MTFmNTdlOTI1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuaApAQCAtNzUsOCArNzUsMTcgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1
dGVVc2VkQnJlYWR0aE9mTWF4TGVuZ3RoKFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBMZW5n
dGgmKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVVc2VkQnJlYWR0aE9mU3BlY2lmaWVk
TGVuZ3RoKFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBMZW5ndGgmKSBjb25zdDsKICAgICB2
b2lkIHJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9ucyhUcmFja1NpemluZ0Rp
cmVjdGlvbiwgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVtblRyYWNrcywgVmVjdG9yPEdyaWRUcmFj
az4mIHJvd1RyYWNrcywgTGF5b3V0VW5pdCYgYXZhaWxhYmxlTG9naWNhbFNwYWNlKTsKKwogICAg
IHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCosIHNpemVfdCByb3dUcmFjaywgc2l6
ZV90IGNvbHVtblRyYWNrKTsKICAgICB2b2lkIHBsYWNlSXRlbXNPbkdyaWQoKTsKKyAgICB2b2lk
IHBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoVmVjdG9yPFJlbmRlckJveCo+KTsK
KyAgICB2b2lkIHBsYWNlQXV0b01ham9yQXhpc0l0ZW1zT25HcmlkKFZlY3RvcjxSZW5kZXJCb3gq
Pik7CisgICAgdm9pZCBwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkKFJlbmRlckJveCopOwor
ICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgYXV0b1BsYWNlbWVudE1ham9yQXhpc1Bvc2l0aW9uRm9y
Q2hpbGQoY29uc3QgUmVuZGVyQm94KikgY29uc3Q7CisgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBh
dXRvUGxhY2VtZW50TWlub3JBeGlzUG9zaXRpb25Gb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqKSBj
b25zdDsKKyAgICBUcmFja1NpemluZ0RpcmVjdGlvbiBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGly
ZWN0aW9uKCkgY29uc3Q7CisgICAgVHJhY2tTaXppbmdEaXJlY3Rpb24gYXV0b1BsYWNlbWVudE1p
bm9yQXhpc0RpcmVjdGlvbigpIGNvbnN0OworCiAgICAgdm9pZCBsYXlvdXRHcmlkSXRlbXMoKTsK
ICAgICB2b2lkIGNsZWFyR3JpZCgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmRlNmVkZjE1NWQ3MDQ0ODQ0YmYzZGYx
MTkwMWViM2YyNDBjYzc0OS4uYjIzMjdiODRlMzI2ZjM4ZjNiMjhjODI1MzY5MDY4NmFjZGUyYmQ2
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTIwICBKdWxpZW4gQ2hhZmZyYWl4ICA8
amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIEltcGxl
bWVudCB0aGUgYXV0by1wbGFjZW1lbnQgYWxnb3JpdGhtIHdpdGhvdXQgZ3JpZCBncm93dGgKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDI3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWw6CisK
KyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tYWRkaXRpb24tYXV0by1w
bGFjZW1lbnQtdXBkYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWFkZGl0aW9uLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcmVtb3Zh
bC1hdXRvLXBsYWNlbWVudC11cGRhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcmVtb3ZhbC1hdXRvLXBsYWNlbWVudC11cGRh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgIFRoZSBjdXJyZW50IGFsZ29yaXRobSBkb2Vzbid0IGdy
b3cgdGhlIGdyaWQgYnV0IGZhbGxzIGJhY2sgdG8gaW5zZXJ0aW5nIHRoZSBlbGVtZW50IGF0Cisg
ICAgICAgIHBvc2l0aW9uICgxLCAxKS4gVGhlIGZhaWx1cmVzIGluIHRoZXNlIHRlc3RzIGFyZSBk
dWUgdG8gdGhhdC4KKwogMjAxMy0wMi0yMCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTAyMzcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQKaW5kZXggMjZlMjdmZTVhMTVhZGU2MzNhZmE5NzA0YWRmN2I3MGE5MmVkZDlhMy4uNDg3ZGY5
NTBkZjhkZTEyNjEwNjYzNGYxMDdjNmMyMWNiNDI4MjIxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZs
b3ctcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UaGlzIHRlc3QgY2hl
Y2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbiBhcmUgcHJvcGVybHkgcmVzb2x2ZWQg
b24gYSBzdGF0aWMgZ3JpZC4KK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzJyBhdXRv
IHBvc2l0aW9ucyBhcmUgcHJvcGVybHkgcmVzb2x2ZWQgb24gYSBzdGF0aWMgZ3JpZC4KIAogWFhY
WFggWFhYWFggWFhYWFgKIFhYWFhYIFhYWFhYIFhYWFhYCkBAIC03LDMgKzcsMjcgQEAgWFhYWFgg
WFhYWFggWFhYWFgKIFhYWFhYIFhYWFhYIFhYWFhYCiBYWFhYWCBYWFhYWCBYWFhYWAogUEFTUwor
WFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAor
WFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitQQVNTCitYWFhYWCBYWFhYWCBY
WFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBY
WFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1BBU1MKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBY
WFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBY
WFhYWCBYWFhYWAorUEFTUworWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitY
WFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1
dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWwKaW5kZXggZTk2OTNlODhiYTk3OTNlNGUy
YmU2ZmRmY2Q3YmE5NGZkZjc0NDVlNi4uYzY0ZDFmZDY2YjIwMzcxYjM2ODYyZmUxZTQ5YmVmMWY1
Y2VmODU4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdy
aWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24uaHRtbApAQCAtMTEsNiArMTEsMTEg
QEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIC13ZWJraXQtZ3JpZC1yb3dzOiA1MHB4IDEw
MHB4OwogfQogCisuYmlnR3JpZCB7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbnM6IDUwcHggMTAw
cHggMTUwcHggMjAwcHg7CisgICAgLXdlYmtpdC1ncmlkLXJvd3M6IDUwcHggMTAwcHggMTUwcHgg
MjAwcHg7Cit9CisKIC51bmNvbnN0cmFpbmVkQ29udGFpbmVyIHsKICAgICAvKiBGb3IgYWNjdXJh
dGUgeCAvIHkgb2Zmc2V0LiAqLwogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKQEAgLTE5LDcgKzI0
LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0PgogPGJvZHkgb25sb2FkPSJjaGVja0xheW91dCgn
LmdyaWQnKSI+CiAKLTxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzJyBhdXRvIHBv
c2l0aW9uIGFyZSBwcm9wZXJseSByZXNvbHZlZCBvbiBhIHN0YXRpYyBncmlkLjwvcD4KKzxwPlRo
aXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzJyBhdXRvIHBvc2l0aW9ucyBhcmUgcHJvcGVy
bHkgcmVzb2x2ZWQgb24gYSBzdGF0aWMgZ3JpZC48L3A+CiAKIDxkaXYgY2xhc3M9InVuY29uc3Ry
YWluZWRDb250YWluZXIiPgogICAgIDxkaXYgY2xhc3M9ImdyaWQgc21hbGxHcmlkIGdyaWRBdXRv
Rmxvd05vbmUiIGlkPSJncmlkQXV0b0Zsb3dOb25lIj4KQEAgLTMyLDUgKzM3LDQ1IEBAIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKICAgICA8L2Rpdj4KIDwvZGl2PgogCis8ZGl2IGNsYXNzPSJ1bmNv
bnN0cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGJpZ0dyaWQgZ3JpZEF1
dG9GbG93Q29sdW1uIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29u
ZFJvd1NlY29uZENvbHVtbiIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhY
IFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBm
aXJzdFJvd1NlY29uZENvbHVtbiIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
c2Vjb25kUm93Rmlyc3RDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUw
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+WFhY
WFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVh
IGZpcnN0Um93Rmlyc3RDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhY
IFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBh
dXRvUm93QXV0b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMTUwIiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjE1MCI+WFhYWFgg
WFhYWFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJ1bmNv
bnN0cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGJpZ0dyaWQgZ3JpZEF1
dG9GbG93Um93Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93
Rmlyc3RDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhY
WFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd1Nl
Y29uZENvbHVtbiIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBY
WFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93
U2Vjb25kQ29sdW1uIiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEt
ZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+WFhYWFggWFhY
WFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29u
ZFJvd0ZpcnN0Q29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0
YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhY
WFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRv
Um93QXV0b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iMTUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRh
LWV4cGVjdGVkLXdpZHRoPSIxNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhY
WFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJ1bmNvbnN0
cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGJpZ0dyaWQgZ3JpZEF1dG9G
bG93Q29sdW1uIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dG
aXJzdENvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhY
WFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dTZWNv
bmRDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVj
dGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhY
WFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd0F1
dG9Db2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVj
dGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+WFhYWFggWFhYWFggWFhY
WFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93QXV0
b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iMTUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVj
dGVkLXdpZHRoPSIxNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhY
WFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRv
Q29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTUwIj5YWFhYWCBYWFhYWCBYWFhY
WDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9InVuY29uc3RyYWluZWRD
b250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQgYmlnR3JpZCBncmlkQXV0b0Zsb3dSb3ci
PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0ZpcnN0Q29sdW1u
IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgZmlyc3RSb3dTZWNvbmRDb2x1
bW4iIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd0F1dG9Db2x1
bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+WFhYWFggWFhYWFggWFhYWFg8L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93QXV0b0NvbHVt
biIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0
aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBk
YXRhLW9mZnNldC14PSIxNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjE1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2Pgor
ICAgIDwvZGl2PgorPC9kaXY+CisKIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1hZGRpdGlvbi1hdXRvLXBsYWNl
bWVudC11cGRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLWFkZGl0aW9uLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjhmZWZkOTk1N2YzZjEyOTk1YmJkZDI2YWRmNzJkMDFkY2Y2YWE4OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1hZGRpdGlvbi1hdXRvLXBsYWNlbWVudC11cGRhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzJyBhdXRvIHBvc2l0aW9ucyBh
cmUgcmVjb21wdXRlZCBhZnRlciBhZGRpbmcgYSBncmlkIGl0ZW0uCisKK1hYWFhYIFhYWFhYIFhY
WFhYCitGQUlMOgorRXhwZWN0ZWQgMTcwIGZvciB3aWR0aCwgYnV0IGdvdCA1MC4gCisKKzxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9ImF1dG9GbG93Q29s
dW1uRWxlbWVudCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTcwIiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitY
WFhYWCBYWFhYWCBYWFhYWAorRkFJTDoKK0V4cGVjdGVkIDMwIGZvciBoZWlnaHQsIGJ1dCBnb3Qg
NTAuIAorCis8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlk
PSJhdXRvRmxvd1Jvd0VsZW1lbnQiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iMzAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitYWFhYWCBYWFhYWCBYWFhYWAorRkFJTDoKK0V4cGVjdGVkIDE3MCBmb3Igd2lkdGgs
IGJ1dCBnb3QgNTAuIAorCis8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9D
b2x1bW4iIGlkPSJhdXRvRmxvd0NvbHVtbkVsZW1lbnRXaXRoQXV0byIgZGF0YS1leHBlY3RlZC13
aWR0aD0iMTcwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9k
aXY+CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitYWFhYWCBYWFhYWCBYWFhYWAorUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1pdGVtLWFkZGl0aW9uLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWFkZGl0aW9uLWF1dG8t
cGxhY2VtZW50LXVwZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxOTgxZWI0NmJjYzVlOTkzNGZkY2Zh
YTE1OTkzNzRmODMzOTEzMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tYWRkaXRpb24tYXV0by1wbGFjZW1lbnQtdXBkYXRlLmh0
bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2Uo
IldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9
InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzdHlsZT4KKy5ncmlkIHsK
KyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogNTBweCAxMDBweDsKKyAgICAtd2Via2l0LWdyaWQt
cm93czogNTBweCAxMDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2NoZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdEFk
ZGl0aW9uKGdyaWRFbGVtZW50SUQsIHBvc2l0aW9uLCBhdXRvRmxvd0VsZW1lbnRJRCwgc2l6ZSkK
K3sKKyAgICB2YXIgZ3JpZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChncmlkRWxl
bWVudElEKTsKKworICAgIHZhciBncmlkSXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworICAgIGdyaWRJdGVtLnN0eWxlLndlYmtpdEdyaWRSb3cgPSBwb3NpdGlvbi5yb3c7Cisg
ICAgZ3JpZEl0ZW0uc3R5bGUud2Via2l0R3JpZENvbHVtbiA9IHBvc2l0aW9uLmNvbHVtbjsKKyAg
ICBncmlkRWxlbWVudC5hcHBlbmRDaGlsZChncmlkSXRlbSk7CisKKyAgICB2YXIgYXV0b0Zsb3dF
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYXV0b0Zsb3dFbGVtZW50SUQpOworICAg
IGF1dG9GbG93RWxlbWVudC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBzaXpl
LndpZHRoKTsKKyAgICBhdXRvRmxvd0VsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVk
LWhlaWdodCIsIHNpemUuaGVpZ2h0KTsKKyAgICBjaGVja0xheW91dCgiIyIgKyBhdXRvRmxvd0Vs
ZW1lbnRJRCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBZGRpdGlvbnMoKQoreworICAgIGNoZWNrTGF5
b3V0KCIjYXV0b0Zsb3dDb2x1bW5FbGVtZW50Iik7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0
b0Zsb3dDb2x1bW4iLCB7ICdyb3cnOiAnMScsICdjb2x1bW4nOiAnMScgfSwgImF1dG9GbG93Q29s
dW1uRWxlbWVudCIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICcxMDAnIH0pOworICAgIHRl
c3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Q29sdW1uIiwgeyAncm93JzogJzEnLCAnY29sdW1uJzog
JzInIH0sICJhdXRvRmxvd0NvbHVtbkVsZW1lbnQiLCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQn
OiAnMTAwJyB9KTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd0NvbHVtbiIsIHsgJ3Jv
dyc6ICcyJywgJ2NvbHVtbic6ICcyJyB9LCAiYXV0b0Zsb3dDb2x1bW5FbGVtZW50IiwgeyAnd2lk
dGgnOiAnNTAnLCAnaGVpZ2h0JzogJzEwMCcgfSk7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0
b0Zsb3dDb2x1bW4iLCB7ICdyb3cnOiAnMicsICdjb2x1bW4nOiAnMScgfSwgImF1dG9GbG93Q29s
dW1uRWxlbWVudCIsIHsgJ3dpZHRoJzogJzE3MCcsICdoZWlnaHQnOiAnNTAnIH0pOworCisgICAg
Y2hlY2tMYXlvdXQoIiNhdXRvRmxvd1Jvd0VsZW1lbnQiKTsKKyAgICB0ZXN0QWRkaXRpb24oImdy
aWRBdXRvRmxvd1JvdyIsIHsgJ3Jvdyc6ICcxJywgJ2NvbHVtbic6ICcxJyB9LCAiYXV0b0Zsb3dS
b3dFbGVtZW50IiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICc1MCcgfSk7CisgICAgdGVz
dEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dSb3ciLCB7ICdyb3cnOiAnMicsICdjb2x1bW4nOiAnMScg
fSwgImF1dG9GbG93Um93RWxlbWVudCIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNTAn
IH0pOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Um93IiwgeyAncm93JzogJzInLCAn
Y29sdW1uJzogJzInIH0sICJhdXRvRmxvd1Jvd0VsZW1lbnQiLCB7ICd3aWR0aCc6ICcxMDAnLCAn
aGVpZ2h0JzogJzUwJyB9KTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd1JvdyIsIHsg
J3Jvdyc6ICcxJywgJ2NvbHVtbic6ICcyJyB9LCAiYXV0b0Zsb3dSb3dFbGVtZW50IiwgeyAnd2lk
dGgnOiAnNTAnLCAnaGVpZ2h0JzogJzMwJyB9KTsKKworICAgIGNoZWNrTGF5b3V0KCIjZ3JpZEF1
dG9GbG93Q29sdW1uV2l0aEF1dG8iKTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd0Nv
bHVtbldpdGhBdXRvIiwgeyAncm93JzogJ2F1dG8nLCAnY29sdW1uJzogJzEnIH0sICJhdXRvRmxv
d0NvbHVtbkVsZW1lbnRXaXRoQXV0byIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICcxMDAn
IH0pOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG8iLCB7ICdy
b3cnOiAnMScsICdjb2x1bW4nOiAnMScgfSwgImF1dG9GbG93Q29sdW1uRWxlbWVudFdpdGhBdXRv
IiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICc1MCcgfSk7CisgICAgdGVzdEFkZGl0aW9u
KCJncmlkQXV0b0Zsb3dDb2x1bW5XaXRoQXV0byIsIHsgJ3Jvdyc6ICdhdXRvJywgJ2NvbHVtbic6
ICcyJyB9LCAiYXV0b0Zsb3dDb2x1bW5FbGVtZW50V2l0aEF1dG8iLCB7ICd3aWR0aCc6ICcxMDAn
LCAnaGVpZ2h0JzogJzEwMCcgfSk7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dDb2x1
bW5XaXRoQXV0byIsIHsgJ3Jvdyc6ICcyJywgJ2NvbHVtbic6ICcyJyB9LCAiYXV0b0Zsb3dDb2x1
bW5FbGVtZW50V2l0aEF1dG8iLCB7ICd3aWR0aCc6ICcxNzAnLCAnaGVpZ2h0JzogJzUwJyB9KTsK
KworICAgIGNoZWNrTGF5b3V0KCIjZ3JpZEF1dG9GbG93Um93V2l0aEF1dG8iKTsKKyAgICB0ZXN0
QWRkaXRpb24oImdyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvIiwgeyAncm93JzogJzEnLCAnY29sdW1u
JzogJ2F1dG8nIH0sICJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0byIsIHsgJ3dpZHRoJzogJzEw
MCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Um93
V2l0aEF1dG8iLCB7ICdyb3cnOiAnYXV0bycsICdjb2x1bW4nOiAnMScgfSwgImF1dG9GbG93Um93
RWxlbWVudFdpdGhBdXRvIiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICc1MCcgfSk7Cisg
ICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dSb3dXaXRoQXV0byIsIHsgJ3Jvdyc6ICcxJywg
J2NvbHVtbic6ICcyJyB9LCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG8iLCB7ICd3aWR0aCc6
ICc1MCcsICdoZWlnaHQnOiAnMTAwJyB9KTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxv
d1Jvd1dpdGhBdXRvIiwgeyAncm93JzogJzEnLCAnY29sdW1uJzogJzEnIH0sICJhdXRvRmxvd1Jv
d0VsZW1lbnRXaXRoQXV0byIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICcxMDAnIH0pOwor
fQord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0ZXN0QWRkaXRpb25zLCBmYWxzZSk7
Cis8L3NjcmlwdD4KKzxib2R5PgorCis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNr
cycgYXV0byBwb3NpdGlvbnMgYXJlIHJlY29tcHV0ZWQgYWZ0ZXIgYWRkaW5nIGEgZ3JpZCBpdGVt
LjwvcD4KKworPGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBj
bGFzcz0iZ3JpZCBncmlkQXV0b0Zsb3dDb2x1bW4iIGlkPSJncmlkQXV0b0Zsb3dDb2x1bW4iPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlk
PSJhdXRvRmxvd0NvbHVtbkVsZW1lbnQiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgPC9kaXY+Cis8
L2Rpdj4KKworPGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBj
bGFzcz0iZ3JpZCBncmlkQXV0b0Zsb3dSb3ciIGlkPSJncmlkQXV0b0Zsb3dSb3ciPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlkPSJhdXRv
Rmxvd1Jvd0VsZW1lbnQiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhl
aWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKwor
PGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3Jp
ZCBncmlkQXV0b0Zsb3dDb2x1bW4iIGlkPSJncmlkQXV0b0Zsb3dDb2x1bW5XaXRoQXV0byI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9
ImF1dG9GbG93Q29sdW1uRWxlbWVudFdpdGhBdXRvIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgIDwv
ZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250YWluZXIiPgorICAg
IDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Um93IiBpZD0iZ3JpZEF1dG9GbG93Um93V2l0
aEF1dG8iPgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9D
b2x1bW4iIGlkPSJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0byIgZGF0YS1leHBlY3RlZC13aWR0
aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4K
KyAgICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcmVtb3ZhbC1hdXRvLXBsYWNl
bWVudC11cGRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MmNlYzU2NTBlNDRkNmE4ZDY5ZGVlYTBhM2RmYTJiYmZlOWZlNDkzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVt
LXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMy
IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbnMgYXJl
IHJlY29tcHV0ZWQgYWZ0ZXIgcmVtb3ZpbmcgYSBncmlkIGl0ZW0uCisKK1hYWFhYIFhYWFhYIFhY
WFhYCitGQUlMOgorRXhwZWN0ZWQgMTcwIGZvciB3aWR0aCwgYnV0IGdvdCA1MC4gCisKKzxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9ImF1dG9GbG93Q29s
dW1uRWxlbWVudCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTcwIiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitY
WFhYWCBYWFhYWCBYWFhYWAorRkFJTDoKK0V4cGVjdGVkIDMwIGZvciBoZWlnaHQsIGJ1dCBnb3Qg
NTAuIAorCis8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlk
PSJhdXRvRmxvd1Jvd0VsZW1lbnQiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iMzAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitYWFhYWCBYWFhYWCBYWFhYWAorUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwor
WFhYWFggWFhYWFggWFhYWFgKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1yZW1vdmFsLWF1
dG8tcGxhY2VtZW50LXVwZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzZjYmUxZGUyNWFlMjg3YTIyYmVjNTdjZWUzNzZmMTMyMGVhNmZlNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1yZW1vdmFs
LWF1dG8tcGxhY2VtZW50LXVwZGF0ZS5odG1sCkBAIC0wLDAgKzEsMTAzIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWQiLCAx
KTsKKzwvc2NyaXB0PgorPGxpbmsgaHJlZj0icmVzb3VyY2VzL2dyaWQuY3NzIiByZWw9InN0eWxl
c2hlZXQiPgorPHN0eWxlPgorLmdyaWQgeworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiA1MHB4
IDEwMHB4OworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiA1MHB4IDEwMHB4OworfQorPC9zdHlsZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0UmVtb3ZhbChncmlkRWxlbWVudElELCBhdXRvRmxvd0Vs
ZW1lbnRJRCwgc2l6ZSkKK3sKKyAgICB2YXIgZ3JpZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChncmlkRWxlbWVudElEKTsKKyAgICB2YXIgYXV0b0Zsb3dFbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoYXV0b0Zsb3dFbGVtZW50SUQpOworCisgICAgLy8gUmVtb3ZlIHRo
ZSB3aGl0ZSBzcGFjZSBhbmQgdGhlIGZpcnN0IGdyaWQgaXRlbS4KKyAgICBncmlkRWxlbWVudC5y
ZW1vdmVDaGlsZChncmlkRWxlbWVudC5maXJzdENoaWxkKTsKKyAgICBncmlkRWxlbWVudC5yZW1v
dmVDaGlsZChncmlkRWxlbWVudC5maXJzdENoaWxkKTsKKworICAgIGF1dG9GbG93RWxlbWVudC5z
ZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBzaXplLndpZHRoKTsKKyAgICBhdXRv
Rmxvd0VsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIHNpemUuaGVp
Z2h0KTsKKyAgICBjaGVja0xheW91dCgiIyIgKyBncmlkRWxlbWVudElEKTsKK30KKworZnVuY3Rp
b24gdGVzdFJlbW92YWxzKCkKK3sKKyAgICBjaGVja0xheW91dCgiI2F1dG9GbG93Q29sdW1uRWxl
bWVudCIpOworICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dDb2x1bW4iLCAiYXV0b0Zsb3dD
b2x1bW5FbGVtZW50IiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICcxMDAnIH0pOworICAg
IHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dDb2x1bW4iLCAiYXV0b0Zsb3dDb2x1bW5FbGVtZW50
IiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICc1MCcgfSk7CisgICAgdGVzdFJlbW92YWwo
ImdyaWRBdXRvRmxvd0NvbHVtbiIsICJhdXRvRmxvd0NvbHVtbkVsZW1lbnQiLCB7ICd3aWR0aCc6
ICc1MCcsICdoZWlnaHQnOiAnMTAwJyB9KTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93
Q29sdW1uIiwgImF1dG9GbG93Q29sdW1uRWxlbWVudCIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdo
dCc6ICc1MCcgfSk7CisKKyAgICBjaGVja0xheW91dCgiI2F1dG9GbG93Um93RWxlbWVudCIpOwor
ICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dSb3ciLCAiYXV0b0Zsb3dSb3dFbGVtZW50Iiwg
eyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICcxMDAnIH0pOworICAgIHRlc3RSZW1vdmFsKCJn
cmlkQXV0b0Zsb3dSb3ciLCAiYXV0b0Zsb3dSb3dFbGVtZW50IiwgeyAnd2lkdGgnOiAnMTAwJywg
J2hlaWdodCc6ICc1MCcgfSk7CisgICAgdGVzdFJlbW92YWwoImdyaWRBdXRvRmxvd1JvdyIsICJh
dXRvRmxvd1Jvd0VsZW1lbnQiLCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnNTAnIH0pOwor
ICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dSb3ciLCAiYXV0b0Zsb3dSb3dFbGVtZW50Iiwg
eyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzUwJyB9KTsKKworICAgIGNoZWNrTGF5b3V0KCIj
Z3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG9JdGVtcyIpOworICAgIHRlc3RSZW1vdmFsKCJncmlk
QXV0b0Zsb3dDb2x1bW5XaXRoQXV0b0l0ZW1zIiwgImF1dG9GbG93Um93RWxlbWVudFdpdGhBdXRv
SXRlbXMiLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzEwMCcgfSk7CisgICAgdGVzdFJl
bW92YWwoImdyaWRBdXRvRmxvd0NvbHVtbldpdGhBdXRvSXRlbXMiLCAiYXV0b0Zsb3dSb3dFbGVt
ZW50V2l0aEF1dG9JdGVtcyIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOwor
ICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dDb2x1bW5XaXRoQXV0b0l0ZW1zIiwgImF1dG9G
bG93Um93RWxlbWVudFdpdGhBdXRvSXRlbXMiLCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAn
MTAwJyB9KTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG9JdGVt
cyIsICJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0b0l0ZW1zIiwgeyAnd2lkdGgnOiAnNTAnLCAn
aGVpZ2h0JzogJzUwJyB9KTsKKworICAgIGNoZWNrTGF5b3V0KCIjZ3JpZEF1dG9GbG93Um93V2l0
aEF1dG9BbmRGaXhlZEl0ZW1zIik7CisgICAgdGVzdFJlbW92YWwoImdyaWRBdXRvRmxvd1Jvd1dp
dGhBdXRvQW5kRml4ZWRJdGVtcyIsICJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0b0FuZEZpeGVk
SXRlbXMiLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzEwMCcgfSk7CisgICAgdGVzdFJl
bW92YWwoImdyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvQW5kRml4ZWRJdGVtcyIsICJhdXRvRmxvd1Jv
d0VsZW1lbnRXaXRoQXV0b0FuZEZpeGVkSXRlbXMiLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0
JzogJzUwJyB9KTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Um93V2l0aEF1dG9BbmRG
aXhlZEl0ZW1zIiwgImF1dG9GbG93Um93RWxlbWVudFdpdGhBdXRvQW5kRml4ZWRJdGVtcyIsIHsg
J3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRlc3RSZW1vdmFsKCJncmlk
QXV0b0Zsb3dSb3dXaXRoQXV0b0FuZEZpeGVkSXRlbXMiLCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0
aEF1dG9BbmRGaXhlZEl0ZW1zIiwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzUwJyB9KTsK
K30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGVzdFJlbW92YWxzLCBmYWxzZSk7
Cis8L3NjcmlwdD4KKzxib2R5PgorCis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNr
cycgYXV0byBwb3NpdGlvbnMgYXJlIHJlY29tcHV0ZWQgYWZ0ZXIgcmVtb3ZpbmcgYSBncmlkIGl0
ZW0uPC9wPgorCis8ZGl2IGNsYXNzPSJ1bmNvbnN0cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2
IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd0NvbHVtbiIgaWQ9ImdyaWRBdXRvRmxvd0NvbHVtbiI+
CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dTZWNvbmRDb2x1
bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9H
cmlkQXJlYSBmaXJzdFJvd1NlY29uZENvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd0ZpcnN0Q29sdW1uIj5Y
WFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFy
ZWEgZmlyc3RSb3dGaXJzdENvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zs
b3dDb2x1bW5FbGVtZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxNzAiIGRhdGEtZXhwZWN0ZWQt
aGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2Pgor
Cis8ZGl2IGNsYXNzPSJ1bmNvbnN0cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJn
cmlkIGdyaWRBdXRvRmxvd1JvdyIgaWQ9ImdyaWRBdXRvRmxvd1JvdyI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dTZWNvbmRDb2x1bW4iPlhYWFhYIFhYWFhY
IFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJv
d1NlY29uZENvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93Rmlyc3RDb2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhY
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dGaXJz
dENvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6
ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dSb3dFbGVtZW50IiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjMwIj5YWFhYWCBY
WFhYWCBYWFhYWDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9InVuY29u
c3RyYWluZWRDb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Q29s
dW1uIiBpZD0iZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG9JdGVtcyI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93Rmlyc3RDb2x1bW4iPlhYWFhYIFhYWFhYIFhY
WFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93U2Vj
b25kQ29sdW1uIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJz
aXplZFRvR3JpZEFyZWEgc2Vjb25kUm93QXV0b0NvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93QXV0b0NvbHVt
biI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dy
aWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG9J
dGVtcyIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAw
Ij5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xh
c3M9InVuY29uc3RyYWluZWRDb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1
dG9GbG93Um93IiBpZD0iZ3JpZEF1dG9GbG93Um93V2l0aEF1dG9BbmRGaXhlZEl0ZW1zIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dGaXJzdENvbHVtbiI+WFhY
WFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVh
IGZpcnN0Um93U2Vjb25kQ29sdW1uIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8
ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93QXV0b0NvbHVtbiI+WFhYWFggWFhY
WFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0
Um93QXV0b0NvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dSb3dFbGVt
ZW50V2l0aEF1dG9BbmRGaXhlZEl0ZW1zIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgPC9kaXY+
Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189405</attachid>
            <date>2013-02-20 16:20:37 -0800</date>
            <delta_ts>2013-02-20 16:35:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-110277-20130220161658.patch</filename>
            <type>text/plain</type>
            <size>32736</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBhNTNmMzg3NjRjOGY1
ZWNjZGNmZWJkNjUxMjE2NDI5YjQzMjFmZi4uODFjMTY3NGUzZmNmYTU1NDEzOTc2YWExMjAyYjFk
YTkwOWE5MGIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAyLTIwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEltcGxlbWVudCB0aGUgYXV0by1wbGFjZW1lbnQgYWxnb3JpdGhtIHdpdGhvdXQg
Z3JpZCBncm93dGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDI3NworCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1hZGRpdGlvbi1hdXRvLXBsYWNl
bWVudC11cGRhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1pdGVtLXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRlLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24uaHRtbCAoZXh0
ZW5kZWQgdG8gY292ZXIgbW9yZSBjYXNlcykKKworICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1l
bnRzIG1vc3Qgb2YgdGhlIGF1dG8tcGxhY2VtZW50IGFsZ29yaXRobSBwZXIKKyAgICAgICAgaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy1ncmlkLWxheW91dC8jYXV0by1wbGFjZW1lbnQtYWxn
bworCisgICAgICAgIFRvIGxpbWl0IHRoZSBzaXplIG9mIHRoZSBjb2RlIGNoYW5nZSwgaXQgZG9l
c24ndCBpbXBsZW1lbnQgZ3Jvd2luZyB0aGUgZ3JpZCBpZiB0aGVyZQorICAgICAgICBhcmUgbm8g
ZW1wdHkgZ3JpZCBhcmVhcy4gSWYgd2UgZG9uJ3QgZmluZCBhbnkgZW1wdHkgZ3JpZCBhcmVhcywg
d2UganVzdCBpbnNlcnQgaW4gdGhlIGZpcnN0CisgICAgICAgIG9uZSwgbGlrZSB3aGF0IGdyaWQt
YXV0by1mbG93OiBub25lIHdvdWxkIGRvICh3aGljaCBleHBsYWlucyB0aGUgdGVzdCBmYWlsdXJl
cykuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJHcmlkOjpHcmlkSXRlcmF0b3I6Om5leHRFbXB0eUdyaWRBcmVhKToKKyAgICAg
ICAgQWRkZWQgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIEdyaWRDb29yZGluYXRlIG9mIHRo
ZSBuZXh0IGVtcHR5IGdyaWQgYXJlYSBhbG9uZworICAgICAgICB0aGUgaXRlcmF0b3IncyBkaXJl
Y3Rpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQp
OgorICAgICAgICBTcGxpdCB0aGlzIGZ1bmN0aW9uIGludG8gdGhlIGRpZmZlcmVudCBzdGVwcyBi
ZWxvdy4gRm9yIGVmZmljaWVuY3ksIGNvbGxlY3QgdGhlIGF1dG8gdnMgc3BlY2lmaWVkCisgICAg
ICAgIG1ham9yIGF4aXMgZ3JpZCBpdGVtcyBpbiBkaWZmZXJlbnQgVmVjdG9ycy4KKworICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3Jp
ZCk6CisgICAgICAgIEFkZGVkIHRoaXMgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHBhcnQgb2Yg
c3RlcCAxIG9mIHRoZSBhbGdvcml0aG0gKHRoZSBncmlkIGl0ZW1zIHdpdGhvdXQKKyAgICAgICAg
YXV0byByb3cgLyBjb2x1bW4gYXJlIGFscmVhZHkgaGFuZGxlZCBpbiBwbGFjZUl0ZW1zT25Hcmlk
KS4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRl
bXNPbkdyaWQpOgorICAgICAgICBBZGRlZCB0aGlzIGZ1bmN0aW9uIHRoYXQgaXRlcmF0ZXMgb3Zl
ciB0aGUgYXV0byBncmlkIGl0ZW1zIGFuZCBjYWxsIHBsYWNlQXV0b01ham9yQXhpc0l0ZW1Pbkdy
aWQuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0
ZW1PbkdyaWQpOgorICAgICAgICBBZGRlZCB0aGlzIG1ldGhvZCB0byBoYW5kbGUgdGhlIHN0ZXAg
NCBvZiB0aGUgYWxnb3JpdGhtLiBCYXNlZCBvbiB0aGUgbWlub3IgYXhpcydzIHBvc2l0aW9uLAor
ICAgICAgICBpdCBlaXRoZXIgd2Fsa3MgYWxvbmcgdGhlIG1ham9yIGF4aXMgb25jZSBvciBzZXZl
cmFsIHRpbWVzIHVudGlsIGl0IGZpbmRzIGFuIGVtcHR5IGdyaWQgYXJlYQorICAgICAgICBmb3Ig
dGhlIGdyaWQgaXRlbS4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6YXV0b1BsYWNl
bWVudE1ham9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
R3JpZDo6YXV0b1BsYWNlbWVudE1pbm9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0
aW9uKToKKyAgICAgICAgQWRkZWQgdGhlc2UgaGVscGVyIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBt
aW5vciAvIG1ham9yIGF4aXMgcG9zaXRpb25zICYgZGlyZWN0aW9uLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgQWRkZWQgdGhlIHByZXZpb3VzIG5ldyBSZW5k
ZXJHcmlkIGZ1bmN0aW9ucy4KKwogMjAxMy0wMi0yMCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENyYXNoIGluIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVj
a0NvbXBsZXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXgg
MGQ3ZTliNTA3N2U4ODZiOGU5ZjZhZDc1MzIxMDdkYjZjNmZkZDIzNS4uYzFiYmZlNDlkNjM2MjI1
NjQxZDk0ODNiZjU1YjFiNzgxYzVmZDMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcApAQCAtOTYsNiArOTYsMjYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KKworICAgIFBhc3NPd25QdHI8R3JpZENvb3JkaW5hdGU+IG5leHRF
bXB0eUdyaWRBcmVhKCkKKyAgICB7CisgICAgICAgIGlmIChtX2dyaWQuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgc2l6ZV90JiB2YXJ5aW5nVHJhY2tJ
bmRleCA9IChtX2RpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IG1fcm93SW5kZXggOiBtX2NvbHVt
bkluZGV4OworICAgICAgICBjb25zdCBzaXplX3QgZW5kT2ZWYXJ5aW5nVHJhY2tJbmRleCA9ICht
X2RpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IG1fZ3JpZC5zaXplKCkgOiBtX2dyaWRbMF0uc2l6
ZSgpOworICAgICAgICBmb3IgKDsgdmFyeWluZ1RyYWNrSW5kZXggPCBlbmRPZlZhcnlpbmdUcmFj
a0luZGV4OyArK3ZhcnlpbmdUcmFja0luZGV4KSB7CisgICAgICAgICAgICBjb25zdCBWZWN0b3I8
UmVuZGVyQm94Kj4mIGNoaWxkcmVuID0gbV9ncmlkW21fcm93SW5kZXhdW21fY29sdW1uSW5kZXhd
OworICAgICAgICAgICAgaWYgKGNoaWxkcmVuLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAg
IFBhc3NPd25QdHI8R3JpZENvb3JkaW5hdGU+IHJlc3VsdCA9ICBhZG9wdFB0cihuZXcgR3JpZENv
b3JkaW5hdGUobV9yb3dJbmRleCwgbV9jb2x1bW5JbmRleCkpOworICAgICAgICAgICAgICAgIC8v
IEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3Agd2hlcmUgd2Ug
d291bGQgcmV0dXJuIHRoZSBzYW1lIGdyaWQgYXJlYSBvdmVyIGFuZCBvdmVyLgorICAgICAgICAg
ICAgICAgICsrdmFyeWluZ1RyYWNrSW5kZXg7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisKIHByaXZhdGU6CiAgICAgY29uc3QgVmVjdG9yPFZlY3RvcjxWZWN0b3I8UmVuZGVyQm94
KiwgMT4gPiA+JiBtX2dyaWQ7CiAgICAgVHJhY2tTaXppbmdEaXJlY3Rpb24gbV9kaXJlY3Rpb247
CkBAIC00OTEsMTMgKzUxMSwxOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQo
KQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ncmlkLnNpemUoKTsgKytpKQogICAgICAg
ICBtX2dyaWRbaV0uZ3JvdyhtYXhpbXVtQ29sdW1uSW5kZXgpOwogCi0gICAgVmVjdG9yPFJlbmRl
ckJveCo+IGF1dG9HcmlkSXRlbXM7CisgICAgVmVjdG9yPFJlbmRlckJveCo+IGF1dG9NYWpvckF4
aXNBdXRvR3JpZEl0ZW1zOworICAgIFZlY3RvcjxSZW5kZXJCb3gqPiBzcGVjaWZpZWRNYWpvckF4
aXNBdXRvR3JpZEl0ZW1zOwogICAgIEdyaWRBdXRvRmxvdyBhdXRvRmxvdyA9IHN0eWxlKCktPmdy
aWRBdXRvRmxvdygpOwogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3go
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nQm94KCkpIHsKICAgICAgICAgY29u
c3QgR3JpZFBvc2l0aW9uJiBjb2x1bW5Qb3NpdGlvbiA9IGNoaWxkLT5zdHlsZSgpLT5ncmlkSXRl
bUNvbHVtbigpOwogICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIHJvd1Bvc2l0aW9uID0gY2hp
bGQtPnN0eWxlKCktPmdyaWRJdGVtUm93KCk7CiAgICAgICAgIGlmIChhdXRvRmxvdyAhPSBBdXRv
Rmxvd05vbmUgJiYgKGNvbHVtblBvc2l0aW9uLmlzQXV0bygpIHx8IHJvd1Bvc2l0aW9uLmlzQXV0
bygpKSkgewotICAgICAgICAgICAgYXV0b0dyaWRJdGVtcy5hcHBlbmQoY2hpbGQpOworICAgICAg
ICAgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBtYWpvckF4aXNQb3NpdGlvbiA9IGF1dG9QbGFjZW1l
bnRNYWpvckF4aXNQb3NpdGlvbkZvckNoaWxkKGNoaWxkKTsKKyAgICAgICAgICAgIGlmIChtYWpv
ckF4aXNQb3NpdGlvbi5pc0F1dG8oKSkKKyAgICAgICAgICAgICAgICBhdXRvTWFqb3JBeGlzQXV0
b0dyaWRJdGVtcy5hcHBlbmQoY2hpbGQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHNwZWNpZmllZE1ham9yQXhpc0F1dG9HcmlkSXRlbXMuYXBwZW5kKGNoaWxkKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIHNpemVfdCBjb2x1bW5UcmFjayA9
IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29sdW1uUG9zaXRpb24pOwpAQCAtNTEwLDEz
ICs1MzUsMjcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIAogICAgIGlm
IChhdXRvRmxvdyA9PSBBdXRvRmxvd05vbmUpIHsKICAgICAgICAgLy8gSWYgd2UgZGlkIGNvbGxl
Y3Qgc29tZSBncmlkIGl0ZW1zLCB0aGV5IHdvbid0IGJlIHBsYWNlZCB0aHVzIG5ldmVyIGxhaWQg
b3V0LgotICAgICAgICBBU1NFUlQoIWF1dG9HcmlkSXRlbXMuc2l6ZSgpKTsKKyAgICAgICAgQVNT
RVJUKCFhdXRvTWFqb3JBeGlzQXV0b0dyaWRJdGVtcy5zaXplKCkpOworICAgICAgICBBU1NFUlQo
IXNwZWNpZmllZE1ham9yQXhpc0F1dG9HcmlkSXRlbXMuc2l6ZSgpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBpbXBsZW1lbnQgdGhlIGF1dG8g
ZmxvdyBhbGdvcml0aG0gKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2IvMTAzMzE2KS4KLSAgICAv
LyBUbyBrZWVwIG91ciB0ZXN0cyBwYXNzaW5nLCB3ZSBqdXN0IGluc2VydCB0aGVtIGluIHRoZSBn
cmlkIGFzIGlmIGdyaWQtYXV0by1mbG93IHdhcyBub25lLgorICAgIHBsYWNlU3BlY2lmaWVkTWFq
b3JBeGlzSXRlbXNPbkdyaWQoc3BlY2lmaWVkTWFqb3JBeGlzQXV0b0dyaWRJdGVtcyk7CisgICAg
cGxhY2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQoYXV0b01ham9yQXhpc0F1dG9HcmlkSXRlbXMp
OworfQorCit2b2lkIFJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdy
aWQoVmVjdG9yPFJlbmRlckJveCo+IGF1dG9HcmlkSXRlbXMpCit7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBhdXRvR3JpZEl0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEdy
aWRQb3NpdGlvbiYgbWFqb3JBeGlzUG9zaXRpb24gPSBhdXRvUGxhY2VtZW50TWFqb3JBeGlzUG9z
aXRpb25Gb3JDaGlsZChhdXRvR3JpZEl0ZW1zW2ldKTsKKyAgICAgICAgQVNTRVJUKCFtYWpvckF4
aXNQb3NpdGlvbi5pc0F1dG8oKSk7CisgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dy
aWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgcmVzb2x2ZUdyaWRQb3NpdGlv
bkZyb21TdHlsZShtYWpvckF4aXNQb3NpdGlvbikpOworICAgICAgICBpZiAoT3duUHRyPEdyaWRD
b29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKSkg
eworICAgICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbXNbaV0sIGVtcHR5
R3JpZEFyZWEtPnJvd0luZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5JbmRleCk7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZ3Jv
d2luZyB0aGUgZ3JpZCBpbiB0aGUgbWlub3IgYXhpcyBpbnN0ZWFkIG9mIGRlZmF1bHRpbmcgdG8g
dGhlIGZpcnN0IHJvdyAvIGNvbHVtbi4KICAgICAgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBjb2x1
bW5Qb3NpdGlvbiA9IGF1dG9HcmlkSXRlbXNbaV0tPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1uKCk7
CiAgICAgICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgcm93UG9zaXRpb24gPSBhdXRvR3JpZEl0ZW1z
W2ldLT5zdHlsZSgpLT5ncmlkSXRlbVJvdygpOwogICAgICAgICBzaXplX3QgY29sdW1uVHJhY2sg
PSBjb2x1bW5Qb3NpdGlvbi5pc0F1dG8oKSA/IDAgOiByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0
eWxlKGNvbHVtblBvc2l0aW9uKTsKQEAgLTUyNiw2ICs1NjUsNzMgQEAgdm9pZCBSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKCkKICAgICB9CiB9CiAKK3ZvaWQgUmVuZGVyR3JpZDo6cGxhY2VB
dXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQoVmVjdG9yPFJlbmRlckJveCo+IGF1dG9HcmlkSXRlbXMp
Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdXRvR3JpZEl0ZW1zLnNpemUoKTsgKytp
KSB7CisgICAgICAgIEFTU0VSVChhdXRvUGxhY2VtZW50TWFqb3JBeGlzUG9zaXRpb25Gb3JDaGls
ZChhdXRvR3JpZEl0ZW1zW2ldKS5pc0F1dG8oKSk7CisgICAgICAgIHBsYWNlQXV0b01ham9yQXhp
c0l0ZW1PbkdyaWQoYXV0b0dyaWRJdGVtc1tpXSk7CisgICAgfQorfQorCit2b2lkIFJlbmRlckdy
aWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94KiBncmlkSXRlbSkKK3sK
KyAgICBBU1NFUlQoYXV0b1BsYWNlbWVudE1ham9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQoZ3JpZEl0
ZW0pLmlzQXV0bygpKTsKKyAgICBjb25zdCBHcmlkUG9zaXRpb24mIG1pbm9yQXhpc1Bvc2l0aW9u
ID0gYXV0b1BsYWNlbWVudE1pbm9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQoZ3JpZEl0ZW0pOworICAg
IGlmICghbWlub3JBeGlzUG9zaXRpb24uaXNBdXRvKCkpIHsKKyAgICAgICAgR3JpZEl0ZXJhdG9y
IGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpLCByZXNv
bHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKG1pbm9yQXhpc1Bvc2l0aW9uKSk7CisgICAgICAgIGlm
IChPd25QdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0RW1w
dHlHcmlkQXJlYSgpKSB7CisgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0s
IGVtcHR5R3JpZEFyZWEtPnJvd0luZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5JbmRleCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBjb25z
dCBzaXplX3QgZW5kT2ZNYWpvckF4aXMgPSAoYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlv
bigpID09IEZvckNvbHVtbnMpID8gZ3JpZENvbHVtbkNvdW50KCkgOiBncmlkUm93Q291bnQoKTsK
KyAgICAgICAgZm9yIChzaXplX3QgbWFqb3JBeGlzSW5kZXggPSAwOyBtYWpvckF4aXNJbmRleCA8
IGVuZE9mTWFqb3JBeGlzOyArK21ham9yQXhpc0luZGV4KSB7CisgICAgICAgICAgICBHcmlkSXRl
cmF0b3IgaXRlcmF0b3IobV9ncmlkLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCks
IG1ham9yQXhpc0luZGV4KTsKKyAgICAgICAgICAgIGlmIChPd25QdHI8R3JpZENvb3JkaW5hdGU+
IGVtcHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0RW1wdHlHcmlkQXJlYSgpKSB7CisgICAgICAg
ICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dJ
bmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1uSW5kZXgpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgLy8gRklYTUU6IEhh
bmRsZSBleHRlbmRpbmcgdGhlIGdyaWQgaW4gdGhlIG1ham9yIGRpcmVjdGlvbiBpbnN0ZWFkIG9m
IGRlZmF1bHRpbmcgdG8gdGhlIGZpcnN0IHJvdyAvIGNvbHVtbi4KKyAgICBjb25zdCBHcmlkUG9z
aXRpb24mIGNvbHVtblBvc2l0aW9uID0gZ3JpZEl0ZW0tPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1u
KCk7CisgICAgY29uc3QgR3JpZFBvc2l0aW9uJiByb3dQb3NpdGlvbiA9IGdyaWRJdGVtLT5zdHls
ZSgpLT5ncmlkSXRlbVJvdygpOworICAgIHNpemVfdCBjb2x1bW5UcmFjayA9IGNvbHVtblBvc2l0
aW9uLmlzQXV0bygpID8gMCA6IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29sdW1uUG9z
aXRpb24pOworICAgIHNpemVfdCByb3dUcmFjayA9IHJvd1Bvc2l0aW9uLmlzQXV0bygpID8gMCA6
IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUocm93UG9zaXRpb24pOworCisgICAgaW5zZXJ0
SXRlbUludG9HcmlkKGdyaWRJdGVtLCByb3dUcmFjaywgY29sdW1uVHJhY2spOworfQorCitjb25z
dCBHcmlkUG9zaXRpb24mIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNYWpvckF4aXNQb3NpdGlv
bkZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0Cit7CisgICAgR3JpZEF1
dG9GbG93IGZsb3cgPSBzdHlsZSgpLT5ncmlkQXV0b0Zsb3coKTsKKyAgICBBU1NFUlQoZmxvdyAh
PSBBdXRvRmxvd05vbmUpOworICAgIHJldHVybiAoZmxvdyA9PSBBdXRvRmxvd0NvbHVtbikgPyBn
cmlkSXRlbS0+c3R5bGUoKS0+Z3JpZEl0ZW1Db2x1bW4oKSA6IGdyaWRJdGVtLT5zdHlsZSgpLT5n
cmlkSXRlbVJvdygpOworfQorCitjb25zdCBHcmlkUG9zaXRpb24mIFJlbmRlckdyaWQ6OmF1dG9Q
bGFjZW1lbnRNaW5vckF4aXNQb3NpdGlvbkZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0
ZW0pIGNvbnN0Cit7CisgICAgR3JpZEF1dG9GbG93IGZsb3cgPSBzdHlsZSgpLT5ncmlkQXV0b0Zs
b3coKTsKKyAgICBBU1NFUlQoZmxvdyAhPSBBdXRvRmxvd05vbmUpOworICAgIHJldHVybiAoZmxv
dyA9PSBBdXRvRmxvd0NvbHVtbikgPyBncmlkSXRlbS0+c3R5bGUoKS0+Z3JpZEl0ZW1Sb3coKSA6
IGdyaWRJdGVtLT5zdHlsZSgpLT5ncmlkSXRlbUNvbHVtbigpOworfQorCitSZW5kZXJHcmlkOjpU
cmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGly
ZWN0aW9uKCkgY29uc3QKK3sKKyAgICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0eWxlKCktPmdyaWRB
dXRvRmxvdygpOworICAgIEFTU0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7CisgICAgcmV0dXJu
IChmbG93ID09IEF1dG9GbG93Q29sdW1uKSA/IEZvckNvbHVtbnMgOiBGb3JSb3dzOworfQorCitS
ZW5kZXJHcmlkOjpUcmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50
TWlub3JBeGlzRGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0
eWxlKCktPmdyaWRBdXRvRmxvdygpOworICAgIEFTU0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7
CisgICAgcmV0dXJuIChmbG93ID09IEF1dG9GbG93Q29sdW1uKSA/IEZvclJvd3MgOiBGb3JDb2x1
bW5zOworfQorCiB2b2lkIFJlbmRlckdyaWQ6OmNsZWFyR3JpZCgpCiB7CiAgICAgbV9ncmlkLmNs
ZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCBjYmViNDU5M2Ux
YTQ3Y2UwYTczYzQ5NDk1NTAxMWVlZDYyZjgzZjU3Li44YWJkMTc0NTUwZjAzYzAxMmI5MDFiY2Rm
MmRhNzExZjU3ZTkyNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAg
LTc1LDggKzc1LDE3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlVXNlZEJyZWFk
dGhPZk1heExlbmd0aChUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgTGVuZ3RoJikgY29uc3Q7
CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlVXNlZEJyZWFkdGhPZlNwZWNpZmllZExlbmd0aChUcmFj
a1NpemluZ0RpcmVjdGlvbiwgY29uc3QgTGVuZ3RoJikgY29uc3Q7CiAgICAgdm9pZCByZXNvbHZl
Q29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoVHJhY2tTaXppbmdEaXJlY3Rpb24sIFZl
Y3RvcjxHcmlkVHJhY2s+JiBjb2x1bW5UcmFja3MsIFZlY3RvcjxHcmlkVHJhY2s+JiByb3dUcmFj
a3MsIExheW91dFVuaXQmIGF2YWlsYWJsZUxvZ2ljYWxTcGFjZSk7CisKICAgICB2b2lkIGluc2Vy
dEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqLCBzaXplX3Qgcm93VHJhY2ssIHNpemVfdCBjb2x1bW5U
cmFjayk7CiAgICAgdm9pZCBwbGFjZUl0ZW1zT25HcmlkKCk7CisgICAgdm9pZCBwbGFjZVNwZWNp
ZmllZE1ham9yQXhpc0l0ZW1zT25HcmlkKFZlY3RvcjxSZW5kZXJCb3gqPik7CisgICAgdm9pZCBw
bGFjZUF1dG9NYWpvckF4aXNJdGVtc09uR3JpZChWZWN0b3I8UmVuZGVyQm94Kj4pOworICAgIHZv
aWQgcGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gqKTsKKyAgICBjb25zdCBH
cmlkUG9zaXRpb24mIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNQb3NpdGlvbkZvckNoaWxkKGNvbnN0
IFJlbmRlckJveCopIGNvbnN0OworICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgYXV0b1BsYWNlbWVu
dE1pbm9yQXhpc1Bvc2l0aW9uRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KikgY29uc3Q7CisgICAg
VHJhY2tTaXppbmdEaXJlY3Rpb24gYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpIGNv
bnN0OworICAgIFRyYWNrU2l6aW5nRGlyZWN0aW9uIGF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJl
Y3Rpb24oKSBjb25zdDsKKwogICAgIHZvaWQgbGF5b3V0R3JpZEl0ZW1zKCk7CiAgICAgdm9pZCBj
bGVhckdyaWQoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZkZTZlZGYxNTVkNzA0NDg0NGJmM2RmMTE5MDFlYjNmMjQw
Y2M3NDkuLmIyMzI3Yjg0ZTMyNmYzOGYzYjI4YzgyNTM2OTA2ODZhY2RlMmJkNmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMy0wMi0yMCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhA
d2Via2l0Lm9yZz4KKworICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBJbXBsZW1lbnQgdGhlIGF1
dG8tcGxhY2VtZW50IGFsZ29yaXRobSB3aXRob3V0IGdyaWQgZ3Jvd3RoCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyNzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBUb255IENoYW5nLgorCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1sOgorCisgICAgICAgICog
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWFkZGl0aW9uLWF1dG8tcGxhY2VtZW50LXVw
ZGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtaXRlbS1hZGRpdGlvbi1hdXRvLXBsYWNlbWVudC11cGRhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXJlbW92YWwtYXV0by1wbGFj
ZW1lbnQtdXBkYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1pdGVtLXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRlLmh0bWw6IEFk
ZGVkLgorICAgICAgICBUaGUgY3VycmVudCBhbGdvcml0aG0gZG9lc24ndCBncm93IHRoZSBncmlk
IGJ1dCBmYWxscyBiYWNrIHRvIGluc2VydGluZyB0aGUgZWxlbWVudCBhdAorICAgICAgICBwb3Np
dGlvbiAoMSwgMSkuIFRoZSBmYWlsdXJlcyBpbiB0aGVzZSB0ZXN0cyBhcmUgZHVlIHRvIHRoYXQu
CisKIDIwMTMtMDItMjAgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBUZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
MjM3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1
dG8tZmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdy
aWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDI2
ZTI3ZmU1YTE1YWRlNjMzYWZhOTcwNGFkZjdiNzBhOTJlZGQ5YTMuLjQ4N2RmOTUwZGY4ZGUxMjYx
MDY2MzRmMTA3YzZjMjFjYjQyODIyMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRo
ZSB0cmFja3MnIGF1dG8gcG9zaXRpb24gYXJlIHByb3Blcmx5IHJlc29sdmVkIG9uIGEgc3RhdGlj
IGdyaWQuCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbnMg
YXJlIHByb3Blcmx5IHJlc29sdmVkIG9uIGEgc3RhdGljIGdyaWQuCiAKIFhYWFhYIFhYWFhYIFhY
WFhYCiBYWFhYWCBYWFhYWCBYWFhYWApAQCAtNywzICs3LDI3IEBAIFhYWFhYIFhYWFhYIFhYWFhY
CiBYWFhYWCBYWFhYWCBYWFhYWAogWFhYWFggWFhYWFggWFhYWFgKIFBBU1MKK1hYWFhYIFhYWFhY
IFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhY
IFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorUEFTUworWFhYWFggWFhYWFggWFhYWFgKK1hYWFhY
IFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhY
IFhYWFhYIFhYWFhYCitQQVNTCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgK
K1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgK
K1BBU1MKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFgg
WFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorUEFTUwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVz
b2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRv
LWZsb3ctcmVzb2x1dGlvbi5odG1sCmluZGV4IGU5NjkzZTg4YmE5NzkzZTRlMmJlNmZkZmNkN2Jh
OTRmZGY3NDQ1ZTYuLmM2NGQxZmQ2NmIyMDM3MWIzNjg2MmZlMWU0OWJlZjFmNWNlZjg1ODAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93
LXJlc29sdXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9n
cmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWwKQEAgLTExLDYgKzExLDExIEBAIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKICAgICAtd2Via2l0LWdyaWQtcm93czogNTBweCAxMDBweDsKIH0KIAor
LmJpZ0dyaWQgeworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiA1MHB4IDEwMHB4IDE1MHB4IDIw
MHB4OworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiA1MHB4IDEwMHB4IDE1MHB4IDIwMHB4OworfQor
CiAudW5jb25zdHJhaW5lZENvbnRhaW5lciB7CiAgICAgLyogRm9yIGFjY3VyYXRlIHggLyB5IG9m
ZnNldC4gKi8KICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CkBAIC0xOSw3ICsyNCw3IEBAIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5
b3V0LmpzIj48L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0iY2hlY2tMYXlvdXQoJy5ncmlkJykiPgog
Ci08cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbiBhcmUg
cHJvcGVybHkgcmVzb2x2ZWQgb24gYSBzdGF0aWMgZ3JpZC48L3A+Cis8cD5UaGlzIHRlc3QgY2hl
Y2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbnMgYXJlIHByb3Blcmx5IHJlc29sdmVk
IG9uIGEgc3RhdGljIGdyaWQuPC9wPgogCiA8ZGl2IGNsYXNzPSJ1bmNvbnN0cmFpbmVkQ29udGFp
bmVyIj4KICAgICA8ZGl2IGNsYXNzPSJncmlkIHNtYWxsR3JpZCBncmlkQXV0b0Zsb3dOb25lIiBp
ZD0iZ3JpZEF1dG9GbG93Tm9uZSI+CkBAIC0zMiw1ICszNyw0NSBAQCBpZiAod2luZG93LnRlc3RS
dW5uZXIpCiAgICAgPC9kaXY+CiA8L2Rpdj4KIAorPGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENv
bnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBiaWdHcmlkIGdyaWRBdXRvRmxvd0NvbHVt
biI+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dTZWNvbmRD
b2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBlY3Rl
ZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj5YWFhYWCBYWFhYWCBYWFhY
WDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgZmlyc3RSb3dTZWNv
bmRDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVj
dGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhY
WFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd0Zp
cnN0Q29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhY
WFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0Zp
cnN0Q29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVj
dGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhY
WDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9D
b2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjE1MCIgZGF0YS1leHBlY3Rl
ZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxNTAiPlhYWFhYIFhYWFhYIFhYWFhY
PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENv
bnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBiaWdHcmlkIGdyaWRBdXRvRmxvd1JvdyI+
CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0ZpcnN0Q29sdW1u
IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRo
PSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2Pgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgZmlyc3RSb3dTZWNvbmRDb2x1bW4i
IGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRo
PSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd1NlY29uZENvbHVt
biIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dGaXJzdENv
bHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQt
d2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj5YWFhYWCBYWFhYWCBYWFhYWDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1
bW4iIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13
aWR0aD0iMTUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9k
aXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENvbnRh
aW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBiaWdHcmlkIGdyaWRBdXRvRmxvd0NvbHVtbiI+
CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93Rmlyc3RDb2x1bW4i
IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93U2Vjb25kQ29sdW1uIiBk
YXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
MTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dBdXRvQ29sdW1uIiBk
YXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
NTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0F1dG9Db2x1bW4iIGRh
dGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
MTUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgZGF0
YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1
MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjE1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJ1bmNvbnN0cmFpbmVkQ29udGFpbmVyIj4K
KyAgICA8ZGl2IGNsYXNzPSJncmlkIGJpZ0dyaWQgZ3JpZEF1dG9GbG93Um93Ij4KKyAgICAgICAg
PGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dGaXJzdENvbHVtbiIgZGF0YS1vZmZz
ZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjE1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93U2Vjb25kQ29sdW1uIiBkYXRhLW9m
ZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBk
YXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dBdXRvQ29sdW1uIiBkYXRhLW9m
ZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0F1dG9Db2x1bW4iIGRhdGEtb2Zm
c2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRh
LWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxk
aXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgZGF0YS1vZmZzZXQt
eD0iMTUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxNTAiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4K
KzwvZGl2PgorCiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tYWRkaXRpb24tYXV0by1wbGFjZW1lbnQtdXBkYXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1hZGRpdGlvbi1hdXRvLXBsYWNlbWVudC11cGRhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI4ZmVmZDk5NTdmM2YxMjk5NWJiZGQyNmFkZjcyZDAxZGNmNmFhODgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tYWRkaXRpb24t
YXV0by1wbGFjZW1lbnQtdXBkYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitUaGlz
IHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbnMgYXJlIHJlY29tcHV0
ZWQgYWZ0ZXIgYWRkaW5nIGEgZ3JpZCBpdGVtLgorCitYWFhYWCBYWFhYWCBYWFhYWAorRkFJTDoK
K0V4cGVjdGVkIDE3MCBmb3Igd2lkdGgsIGJ1dCBnb3QgNTAuIAorCis8ZGl2IGNsYXNzPSJzaXpl
ZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlkPSJhdXRvRmxvd0NvbHVtbkVsZW1lbnQi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjE3MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUworUEFTUworUEFTUworUEFTUworWFhYWFggWFhYWFgg
WFhYWFgKK0ZBSUw6CitFeHBlY3RlZCAzMCBmb3IgaGVpZ2h0LCBidXQgZ290IDUwLiAKKworPGRp
diBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dS
b3dFbGVtZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjMwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUworUEFTUworUEFTUworUEFTUworWFhY
WFggWFhYWFggWFhYWFgKK0ZBSUw6CitFeHBlY3RlZCAxNzAgZm9yIHdpZHRoLCBidXQgZ290IDUw
LiAKKworPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0i
YXV0b0Zsb3dDb2x1bW5FbGVtZW50V2l0aEF1dG8iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjE3MCIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUwor
UEFTUworUEFTUworUEFTUworWFhYWFggWFhYWFggWFhYWFgKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtaXRlbS1hZGRpdGlvbi1hdXRvLXBsYWNlbWVudC11cGRhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1hZGRpdGlvbi1hdXRvLXBsYWNlbWVudC11
cGRhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTk4MWViNDZiY2M1ZTk5MzRmZGNmYWExNTk5Mzc0Zjgz
MzkxMzM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLWFkZGl0aW9uLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS5odG1sCkBAIC0wLDAg
KzEsODggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NH
cmlkTGF5b3V0RW5hYmxlZCIsIDEpOworPC9zY3JpcHQ+Cis8bGluayBocmVmPSJyZXNvdXJjZXMv
Z3JpZC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8c3R5bGU+CisuZ3JpZCB7CisgICAgLXdlYmtp
dC1ncmlkLWNvbHVtbnM6IDUwcHggMTAwcHg7CisgICAgLXdlYmtpdC1ncmlkLXJvd3M6IDUwcHgg
MTAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1s
YXlvdXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RBZGRpdGlvbihncmlk
RWxlbWVudElELCBwb3NpdGlvbiwgYXV0b0Zsb3dFbGVtZW50SUQsIHNpemUpCit7CisgICAgdmFy
IGdyaWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ3JpZEVsZW1lbnRJRCk7CisK
KyAgICB2YXIgZ3JpZEl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBn
cmlkSXRlbS5zdHlsZS53ZWJraXRHcmlkUm93ID0gcG9zaXRpb24ucm93OworICAgIGdyaWRJdGVt
LnN0eWxlLndlYmtpdEdyaWRDb2x1bW4gPSBwb3NpdGlvbi5jb2x1bW47CisgICAgZ3JpZEVsZW1l
bnQuYXBwZW5kQ2hpbGQoZ3JpZEl0ZW0pOworCisgICAgdmFyIGF1dG9GbG93RWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGF1dG9GbG93RWxlbWVudElEKTsKKyAgICBhdXRvRmxvd0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdpZHRoIiwgc2l6ZS53aWR0aCk7Cisg
ICAgYXV0b0Zsb3dFbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBz
aXplLmhlaWdodCk7CisgICAgY2hlY2tMYXlvdXQoIiMiICsgYXV0b0Zsb3dFbGVtZW50SUQpOwor
fQorCitmdW5jdGlvbiB0ZXN0QWRkaXRpb25zKCkKK3sKKyAgICBjaGVja0xheW91dCgiI2F1dG9G
bG93Q29sdW1uRWxlbWVudCIpOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Q29sdW1u
IiwgeyAncm93JzogJzEnLCAnY29sdW1uJzogJzEnIH0sICJhdXRvRmxvd0NvbHVtbkVsZW1lbnQi
LCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnMTAwJyB9KTsKKyAgICB0ZXN0QWRkaXRpb24o
ImdyaWRBdXRvRmxvd0NvbHVtbiIsIHsgJ3Jvdyc6ICcxJywgJ2NvbHVtbic6ICcyJyB9LCAiYXV0
b0Zsb3dDb2x1bW5FbGVtZW50IiwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzEwMCcgfSk7
CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dDb2x1bW4iLCB7ICdyb3cnOiAnMicsICdj
b2x1bW4nOiAnMicgfSwgImF1dG9GbG93Q29sdW1uRWxlbWVudCIsIHsgJ3dpZHRoJzogJzUwJywg
J2hlaWdodCc6ICcxMDAnIH0pOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Q29sdW1u
IiwgeyAncm93JzogJzInLCAnY29sdW1uJzogJzEnIH0sICJhdXRvRmxvd0NvbHVtbkVsZW1lbnQi
LCB7ICd3aWR0aCc6ICcxNzAnLCAnaGVpZ2h0JzogJzUwJyB9KTsKKworICAgIGNoZWNrTGF5b3V0
KCIjYXV0b0Zsb3dSb3dFbGVtZW50Iik7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dS
b3ciLCB7ICdyb3cnOiAnMScsICdjb2x1bW4nOiAnMScgfSwgImF1dG9GbG93Um93RWxlbWVudCIs
IHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRlc3RBZGRpdGlvbigi
Z3JpZEF1dG9GbG93Um93IiwgeyAncm93JzogJzInLCAnY29sdW1uJzogJzEnIH0sICJhdXRvRmxv
d1Jvd0VsZW1lbnQiLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzUwJyB9KTsKKyAgICB0
ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd1JvdyIsIHsgJ3Jvdyc6ICcyJywgJ2NvbHVtbic6ICcy
JyB9LCAiYXV0b0Zsb3dSb3dFbGVtZW50IiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICc1
MCcgfSk7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dSb3ciLCB7ICdyb3cnOiAnMScs
ICdjb2x1bW4nOiAnMicgfSwgImF1dG9GbG93Um93RWxlbWVudCIsIHsgJ3dpZHRoJzogJzUwJywg
J2hlaWdodCc6ICczMCcgfSk7CisKKyAgICBjaGVja0xheW91dCgiI2dyaWRBdXRvRmxvd0NvbHVt
bldpdGhBdXRvIik7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dDb2x1bW5XaXRoQXV0
byIsIHsgJ3Jvdyc6ICdhdXRvJywgJ2NvbHVtbic6ICcxJyB9LCAiYXV0b0Zsb3dDb2x1bW5FbGVt
ZW50V2l0aEF1dG8iLCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnMTAwJyB9KTsKKyAgICB0
ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd0NvbHVtbldpdGhBdXRvIiwgeyAncm93JzogJzEnLCAn
Y29sdW1uJzogJzEnIH0sICJhdXRvRmxvd0NvbHVtbkVsZW1lbnRXaXRoQXV0byIsIHsgJ3dpZHRo
JzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9G
bG93Q29sdW1uV2l0aEF1dG8iLCB7ICdyb3cnOiAnYXV0bycsICdjb2x1bW4nOiAnMicgfSwgImF1
dG9GbG93Q29sdW1uRWxlbWVudFdpdGhBdXRvIiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6
ICcxMDAnIH0pOworICAgIHRlc3RBZGRpdGlvbigiZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG8i
LCB7ICdyb3cnOiAnMicsICdjb2x1bW4nOiAnMicgfSwgImF1dG9GbG93Q29sdW1uRWxlbWVudFdp
dGhBdXRvIiwgeyAnd2lkdGgnOiAnMTcwJywgJ2hlaWdodCc6ICc1MCcgfSk7CisKKyAgICBjaGVj
a0xheW91dCgiI2dyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvIik7CisgICAgdGVzdEFkZGl0aW9uKCJn
cmlkQXV0b0Zsb3dSb3dXaXRoQXV0byIsIHsgJ3Jvdyc6ICcxJywgJ2NvbHVtbic6ICdhdXRvJyB9
LCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG8iLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0
JzogJzUwJyB9KTsKKyAgICB0ZXN0QWRkaXRpb24oImdyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvIiwg
eyAncm93JzogJ2F1dG8nLCAnY29sdW1uJzogJzEnIH0sICJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRo
QXV0byIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRlc3RBZGRp
dGlvbigiZ3JpZEF1dG9GbG93Um93V2l0aEF1dG8iLCB7ICdyb3cnOiAnMScsICdjb2x1bW4nOiAn
MicgfSwgImF1dG9GbG93Um93RWxlbWVudFdpdGhBdXRvIiwgeyAnd2lkdGgnOiAnNTAnLCAnaGVp
Z2h0JzogJzEwMCcgfSk7CisgICAgdGVzdEFkZGl0aW9uKCJncmlkQXV0b0Zsb3dSb3dXaXRoQXV0
byIsIHsgJ3Jvdyc6ICcxJywgJ2NvbHVtbic6ICcxJyB9LCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0
aEF1dG8iLCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnMTAwJyB9KTsKK30KK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGVzdEFkZGl0aW9ucywgZmFsc2UpOworPC9zY3JpcHQ+
Cis8Ym9keT4KKworPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MnIGF1dG8gcG9z
aXRpb25zIGFyZSByZWNvbXB1dGVkIGFmdGVyIGFkZGluZyBhIGdyaWQgaXRlbS48L3A+CisKKzxk
aXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQg
Z3JpZEF1dG9GbG93Q29sdW1uIiBpZD0iZ3JpZEF1dG9GbG93Q29sdW1uIj4KKyAgICAgICAgPGRp
diBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dD
b2x1bW5FbGVtZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWln
aHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxk
aXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQg
Z3JpZEF1dG9GbG93Um93IiBpZD0iZ3JpZEF1dG9GbG93Um93Ij4KKyAgICAgICAgPGRpdiBjbGFz
cz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dSb3dFbGVt
ZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5Y
WFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9
InVuY29uc3RyYWluZWRDb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9G
bG93Q29sdW1uIiBpZD0iZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG8iPgorICAgICAgICA8ZGl2
IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlkPSJhdXRvRmxvd0Nv
bHVtbkVsZW1lbnRXaXRoQXV0byIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0
ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2
PgorCis8ZGl2IGNsYXNzPSJ1bmNvbnN0cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNz
PSJncmlkIGdyaWRBdXRvRmxvd1JvdyIgaWQ9ImdyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0i
YXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG8iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRh
LWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgPC9kaXY+
Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXJlbW92YWwtYXV0by1wbGFjZW1lbnQtdXBkYXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1yZW1vdmFsLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDJjZWM1NjUwZTQ0ZDZhOGQ2OWRlZWEwYTNkZmEyYmJmZTlmZTQ5MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1yZW1vdmFsLWF1
dG8tcGxhY2VtZW50LXVwZGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MnIGF1dG8gcG9zaXRpb25zIGFyZSByZWNvbXB1dGVk
IGFmdGVyIHJlbW92aW5nIGEgZ3JpZCBpdGVtLgorCitYWFhYWCBYWFhYWCBYWFhYWAorRkFJTDoK
K0V4cGVjdGVkIDE3MCBmb3Igd2lkdGgsIGJ1dCBnb3QgNTAuIAorCis8ZGl2IGNsYXNzPSJzaXpl
ZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4iIGlkPSJhdXRvRmxvd0NvbHVtbkVsZW1lbnQi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjE3MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUworUEFTUworUEFTUworUEFTUworWFhYWFggWFhYWFgg
WFhYWFgKK0ZBSUw6CitFeHBlY3RlZCAzMCBmb3IgaGVpZ2h0LCBidXQgZ290IDUwLiAKKworPGRp
diBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBpZD0iYXV0b0Zsb3dS
b3dFbGVtZW50IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjMwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorUEFTUworUEFTUworUEFTUworUEFTUworWFhY
WFggWFhYWFggWFhYWFgKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1hYWFhYIFhYWFhY
IFhYWFhYCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcmVtb3ZhbC1hdXRvLXBsYWNlbWVu
dC11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1yZW1vdmFsLWF1dG8tcGxhY2VtZW50LXVwZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2Y2JlMWRl
MjVhZTI4N2EyMmJlYzU3Y2VlMzc2ZjEzMjBlYTZmZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcmVtb3ZhbC1hdXRvLXBsYWNl
bWVudC11cGRhdGUuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3Njcmlw
dD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxz
dHlsZT4KKy5ncmlkIHsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogNTBweCAxMDBweDsKKyAg
ICAtd2Via2l0LWdyaWQtcm93czogNTBweCAxMDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdGVzdFJlbW92YWwoZ3JpZEVsZW1lbnRJRCwgYXV0b0Zsb3dFbGVtZW50SUQsIHNp
emUpCit7CisgICAgdmFyIGdyaWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ3Jp
ZEVsZW1lbnRJRCk7CisgICAgdmFyIGF1dG9GbG93RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGF1dG9GbG93RWxlbWVudElEKTsKKworICAgIC8vIFJlbW92ZSB0aGUgd2hpdGUgc3Bh
Y2UgYW5kIHRoZSBmaXJzdCBncmlkIGl0ZW0uCisgICAgZ3JpZEVsZW1lbnQucmVtb3ZlQ2hpbGQo
Z3JpZEVsZW1lbnQuZmlyc3RDaGlsZCk7CisgICAgZ3JpZEVsZW1lbnQucmVtb3ZlQ2hpbGQoZ3Jp
ZEVsZW1lbnQuZmlyc3RDaGlsZCk7CisKKyAgICBhdXRvRmxvd0VsZW1lbnQuc2V0QXR0cmlidXRl
KCJkYXRhLWV4cGVjdGVkLXdpZHRoIiwgc2l6ZS53aWR0aCk7CisgICAgYXV0b0Zsb3dFbGVtZW50
LnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBzaXplLmhlaWdodCk7CisgICAg
Y2hlY2tMYXlvdXQoIiMiICsgZ3JpZEVsZW1lbnRJRCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZW1v
dmFscygpCit7CisgICAgY2hlY2tMYXlvdXQoIiNhdXRvRmxvd0NvbHVtbkVsZW1lbnQiKTsKKyAg
ICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Q29sdW1uIiwgImF1dG9GbG93Q29sdW1uRWxlbWVu
dCIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnMTAwJyB9KTsKKyAgICB0ZXN0UmVtb3Zh
bCgiZ3JpZEF1dG9GbG93Q29sdW1uIiwgImF1dG9GbG93Q29sdW1uRWxlbWVudCIsIHsgJ3dpZHRo
JzogJzEwMCcsICdoZWlnaHQnOiAnNTAnIH0pOworICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zs
b3dDb2x1bW4iLCAiYXV0b0Zsb3dDb2x1bW5FbGVtZW50IiwgeyAnd2lkdGgnOiAnNTAnLCAnaGVp
Z2h0JzogJzEwMCcgfSk7CisgICAgdGVzdFJlbW92YWwoImdyaWRBdXRvRmxvd0NvbHVtbiIsICJh
dXRvRmxvd0NvbHVtbkVsZW1lbnQiLCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnNTAnIH0p
OworCisgICAgY2hlY2tMYXlvdXQoIiNhdXRvRmxvd1Jvd0VsZW1lbnQiKTsKKyAgICB0ZXN0UmVt
b3ZhbCgiZ3JpZEF1dG9GbG93Um93IiwgImF1dG9GbG93Um93RWxlbWVudCIsIHsgJ3dpZHRoJzog
JzEwMCcsICdoZWlnaHQnOiAnMTAwJyB9KTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93
Um93IiwgImF1dG9GbG93Um93RWxlbWVudCIsIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAn
NTAnIH0pOworICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dSb3ciLCAiYXV0b0Zsb3dSb3dF
bGVtZW50IiwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzUwJyB9KTsKKyAgICB0ZXN0UmVt
b3ZhbCgiZ3JpZEF1dG9GbG93Um93IiwgImF1dG9GbG93Um93RWxlbWVudCIsIHsgJ3dpZHRoJzog
JzUwJywgJ2hlaWdodCc6ICc1MCcgfSk7CisKKyAgICBjaGVja0xheW91dCgiI2dyaWRBdXRvRmxv
d0NvbHVtbldpdGhBdXRvSXRlbXMiKTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Q29s
dW1uV2l0aEF1dG9JdGVtcyIsICJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0b0l0ZW1zIiwgeyAn
d2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICcxMDAnIH0pOworICAgIHRlc3RSZW1vdmFsKCJncmlk
QXV0b0Zsb3dDb2x1bW5XaXRoQXV0b0l0ZW1zIiwgImF1dG9GbG93Um93RWxlbWVudFdpdGhBdXRv
SXRlbXMiLCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzUwJyB9KTsKKyAgICB0ZXN0UmVt
b3ZhbCgiZ3JpZEF1dG9GbG93Q29sdW1uV2l0aEF1dG9JdGVtcyIsICJhdXRvRmxvd1Jvd0VsZW1l
bnRXaXRoQXV0b0l0ZW1zIiwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzEwMCcgfSk7Cisg
ICAgdGVzdFJlbW92YWwoImdyaWRBdXRvRmxvd0NvbHVtbldpdGhBdXRvSXRlbXMiLCAiYXV0b0Zs
b3dSb3dFbGVtZW50V2l0aEF1dG9JdGVtcyIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICc1
MCcgfSk7CisKKyAgICBjaGVja0xheW91dCgiI2dyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvQW5kRml4
ZWRJdGVtcyIpOworICAgIHRlc3RSZW1vdmFsKCJncmlkQXV0b0Zsb3dSb3dXaXRoQXV0b0FuZEZp
eGVkSXRlbXMiLCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0aEF1dG9BbmRGaXhlZEl0ZW1zIiwgeyAn
d2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICcxMDAnIH0pOworICAgIHRlc3RSZW1vdmFsKCJncmlk
QXV0b0Zsb3dSb3dXaXRoQXV0b0FuZEZpeGVkSXRlbXMiLCAiYXV0b0Zsb3dSb3dFbGVtZW50V2l0
aEF1dG9BbmRGaXhlZEl0ZW1zIiwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICc1MCcgfSk7
CisgICAgdGVzdFJlbW92YWwoImdyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvQW5kRml4ZWRJdGVtcyIs
ICJhdXRvRmxvd1Jvd0VsZW1lbnRXaXRoQXV0b0FuZEZpeGVkSXRlbXMiLCB7ICd3aWR0aCc6ICcx
MDAnLCAnaGVpZ2h0JzogJzUwJyB9KTsKKyAgICB0ZXN0UmVtb3ZhbCgiZ3JpZEF1dG9GbG93Um93
V2l0aEF1dG9BbmRGaXhlZEl0ZW1zIiwgImF1dG9GbG93Um93RWxlbWVudFdpdGhBdXRvQW5kRml4
ZWRJdGVtcyIsIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICc1MCcgfSk7Cit9Cit3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRlc3RSZW1vdmFscywgZmFsc2UpOworPC9zY3JpcHQ+
Cis8Ym9keT4KKworPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MnIGF1dG8gcG9z
aXRpb25zIGFyZSByZWNvbXB1dGVkIGFmdGVyIHJlbW92aW5nIGEgZ3JpZCBpdGVtLjwvcD4KKwor
PGRpdiBjbGFzcz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3Jp
ZCBncmlkQXV0b0Zsb3dDb2x1bW4iIGlkPSJncmlkQXV0b0Zsb3dDb2x1bW4iPgorICAgICAgICA8
ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93U2Vjb25kQ29sdW1uIj5YWFhYWCBY
WFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgZmly
c3RSb3dTZWNvbmRDb2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dGaXJzdENvbHVtbiI+WFhYWFggWFhYWFgg
WFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93
Rmlyc3RDb2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9
InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9ImF1dG9GbG93Q29sdW1uRWxl
bWVudCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTcwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAi
PlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFz
cz0idW5jb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXV0
b0Zsb3dSb3ciIGlkPSJncmlkQXV0b0Zsb3dSb3ciPgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXpl
ZFRvR3JpZEFyZWEgc2Vjb25kUm93U2Vjb25kQ29sdW1uIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgZmlyc3RSb3dTZWNvbmRDb2x1
bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9H
cmlkQXJlYSBmaXJzdFJvd0ZpcnN0Q29sdW1uIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93Rmlyc3RDb2x1bW4iPlhY
WFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJl
YSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9ImF1dG9GbG93Um93RWxlbWVudCIgZGF0YS1leHBlY3Rl
ZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIzMCI+WFhYWFggWFhYWFggWFhYWFg8
L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJ1bmNvbnN0cmFpbmVkQ29u
dGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd0NvbHVtbiIgaWQ9Imdy
aWRBdXRvRmxvd0NvbHVtbldpdGhBdXRvSXRlbXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXpl
ZFRvR3JpZEFyZWEgYXV0b1Jvd0ZpcnN0Q29sdW1uIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2Pgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd1NlY29uZENvbHVtbiI+
WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRB
cmVhIHNlY29uZFJvd0F1dG9Db2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0F1dG9Db2x1bW4iPlhYWFhYIFhY
WFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRv
Um93QXV0b0NvbHVtbiIgaWQ9ImF1dG9GbG93Um93RWxlbWVudFdpdGhBdXRvSXRlbXMiIGRhdGEt
ZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+WFhYWFggWFhY
WFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJ1bmNvbnN0
cmFpbmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd1JvdyIg
aWQ9ImdyaWRBdXRvRmxvd1Jvd1dpdGhBdXRvQW5kRml4ZWRJdGVtcyI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93Rmlyc3RDb2x1bW4iPlhYWFhYIFhYWFhYIFhY
WFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd1Nl
Y29uZENvbHVtbiI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
c2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd0F1dG9Db2x1bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0F1dG9Db2x1
bW4iPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9H
cmlkQXJlYSBhdXRvUm93QXV0b0NvbHVtbiIgaWQ9ImF1dG9GbG93Um93RWxlbWVudFdpdGhBdXRv
QW5kRml4ZWRJdGVtcyIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhl
aWdodD0iMTAwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisK
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>