<?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>135215</bug_id>
          
          <creation_ts>2014-07-23 14:47:13 -0700</creation_ts>
          <short_desc>Turn x/y to presentation attributes</short_desc>
          <delta_ts>2019-09-21 09:04:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>135045</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1024345</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-07-23 14:47:13 -0700</bug_when>
    <thetext>Turn x/y to presentation attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024553</commentid>
    <comment_count>1</comment_count>
      <attachid>235444</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-07-24 12:24:14 -0700</bug_when>
    <thetext>Created attachment 235444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024630</commentid>
    <comment_count>2</comment_count>
      <attachid>235444</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-07-24 15:15:54 -0700</bug_when>
    <thetext>Comment on attachment 235444
Patch

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

&gt; LayoutTests/svg/css/parse-length-expected.txt:7
&gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute width=&quot;  100&quot;
&gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute width=&quot;100   &quot;
&gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute x=&quot;  100&quot;
&gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute x=&quot;100   &quot;
&gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute y=&quot;  100&quot;
&gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute y=&quot;100   &quot;

Why are these invalid?

&gt; LayoutTests/svg/css/parse-length.html:12
&gt; +description(&quot;Test that &apos;with&apos; presentation attribute is parsed with CSS presentation rules.&quot;);

width not with

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2902
&gt; +        // New positioning and sizing properties for SVG

Nit: missing .

&gt; Source/WebCore/rendering/style/SVGRenderStyleDefs.h:294
&gt; +    // Positioning and sizing properties.
&gt; +    class StyleLayoutData : public RefCounted&lt;StyleLayoutData&gt; {

It&apos;s just positioning.

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:6
&gt; + * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved.

There were no other changes in this file.

&gt; Source/WebCore/svg/SVGFilterElement.cpp:7
&gt; + * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved.

Or this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024644</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-07-24 15:54:28 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 235444 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235444&amp;action=review
&gt; 
&gt; &gt; LayoutTests/svg/css/parse-length-expected.txt:7
&gt; &gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute width=&quot;  100&quot;
&gt; &gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute width=&quot;100   &quot;
&gt; &gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute x=&quot;  100&quot;
&gt; &gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute x=&quot;100   &quot;
&gt; &gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute y=&quot;  100&quot;
&gt; &gt; +CONSOLE MESSAGE: Error: Invalid value for &lt;rect&gt; attribute y=&quot;100   &quot;
&gt; 
&gt; Why are these invalid?

The problem is that SVGLength parsing does not accept new parsing rules. Cleaning this up is one of the next patches.

&gt; 
&gt; &gt; LayoutTests/svg/css/parse-length.html:12
&gt; &gt; +description(&quot;Test that &apos;with&apos; presentation attribute is parsed with CSS presentation rules.&quot;);
&gt; 
&gt; width not with
&gt; 
&gt; &gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2902
&gt; &gt; +        // New positioning and sizing properties for SVG
&gt; 
&gt; Nit: missing .

Will fix both. Thanks!

&gt; 
&gt; &gt; Source/WebCore/rendering/style/SVGRenderStyleDefs.h:294
&gt; &gt; +    // Positioning and sizing properties.
&gt; &gt; +    class StyleLayoutData : public RefCounted&lt;StyleLayoutData&gt; {
&gt; 
&gt; It&apos;s just positioning.

For now. It will have more information in the next patch. Just fear that I could forget to update the comment.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimateElement.cpp:6
&gt; &gt; + * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved.
&gt; 
&gt; There were no other changes in this file.

These were missing from the last patch. Did add a comment to the change log.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGFilterElement.cpp:7
&gt; &gt; + * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved.
&gt; 
&gt; Or this one.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024806</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-07-25 02:52:53 -0700</bug_when>
    <thetext>Committed r171591: &lt;http://trac.webkit.org/changeset/171591&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235444</attachid>
            <date>2014-07-24 12:24:14 -0700</date>
            <delta_ts>2019-09-21 09:04:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>x-y-pres-attr.patch</filename>
            <type>text/plain</type>
            <size>46496</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkOGMwODQ4Li5lZDZmMjFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTQtMDct
MjQgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBUdXJuIHgveSB0
byBwcmVzZW50YXRpb24gYXR0cmlidXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MjE1CisKKyAgICAgICAgVGVzdCBwYXJzaW5nIG9mIHggYW5k
IHkgYXR0cmlidXRlcy4gUmVuZGVyaW5nIGFuZCBTVkcgYW5pbWF0aW9uCisgICAgICAgIGNvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisgICAgICAgIENTUyBUcmFuc2l0aW9uIHRlc3QsIHRlc3Qg
dHJhbnNpdGlvbiBmcm9tIHNwZWNpZmllZCBhdHRyaWJ1dGUgdmFsdWUKKyAgICAgICAgdG8gbmV3
IHByb3BlcnR5IHZhbHVlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3ZnL2Nzcy9wYXJzZS1sZW5ndGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvY3NzL3BhcnNlLWxlbmd0aC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvc3ZnL2Nzcy9wYXJzZS13aWR0aC5odG1sLgorICAgICAgICAqIHN2Zy9jc3MvcGFyc2Utd2lk
dGgtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3N2Zy1sYXlv
dXQtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25z
L3N2Zy1sYXlvdXQtdHJhbnNpdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxNC0wNy0yMyAgQnJpYW4g
Si4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogSW5zcGVjdG9yQmFja2VuZCdzIHByb21pc2UtYmFzZWQgYWdlbnQgQVBJIGRvZXMgbm90IHN1
cHBvcnQgbXVsdGlwbGUgcmV0dXJuIHZhbHVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Zn
L2Nzcy9wYXJzZS1sZW5ndGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJz
ZS1sZW5ndGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjMzNDZiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcnNlLWxl
bmd0aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2NyBAQAorQ09OU09MRSBNRVNTQUdFOiBFcnJv
cjogSW52YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB3aWR0aD0iYXV0byIKK0NPTlNP
TEUgTUVTU0FHRTogRXJyb3I6IEludmFsaWQgdmFsdWUgZm9yIDxyZWN0PiBhdHRyaWJ1dGUgd2lk
dGg9IiAgMTAwIgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxpZCB2YWx1ZSBmb3IgPHJl
Y3Q+IGF0dHJpYnV0ZSB3aWR0aD0iMTAwICAgIgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52
YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB4PSIgIDEwMCIKK0NPTlNPTEUgTUVTU0FH
RTogRXJyb3I6IEludmFsaWQgdmFsdWUgZm9yIDxyZWN0PiBhdHRyaWJ1dGUgeD0iMTAwICAgIgor
Q09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0
ZSB5PSIgIDEwMCIKK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IEludmFsaWQgdmFsdWUgZm9yIDxy
ZWN0PiBhdHRyaWJ1dGUgeT0iMTAwICAgIgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxp
ZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB3aWR0aD0iMTAwICAgcHgiCitDT05TT0xFIE1F
U1NBR0U6IEVycm9yOiBJbnZhbGlkIHZhbHVlIGZvciA8cmVjdD4gYXR0cmlidXRlIHdpZHRoPSIx
MDBweDsiCitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBJbnZhbGlkIHZhbHVlIGZvciA8cmVjdD4g
YXR0cmlidXRlIHdpZHRoPSIxMDBweCAhaW1wb3J0YW50IgorQ09OU09MRSBNRVNTQUdFOiBFcnJv
cjogSW52YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB3aWR0aD0ieyAxMDBweCB9Igor
Q09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxpZCBuZWdhdGl2ZSB2YWx1ZSBmb3IgPHJlY3Q+
IGF0dHJpYnV0ZSB3aWR0aD0iLTEwMHB4IgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxp
ZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB4PSJhdXRvIgorQ09OU09MRSBNRVNTQUdFOiBF
cnJvcjogSW52YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB4PSIxMDAgICBweCIKK0NP
TlNPTEUgTUVTU0FHRTogRXJyb3I6IEludmFsaWQgdmFsdWUgZm9yIDxyZWN0PiBhdHRyaWJ1dGUg
eD0iMTAwcHg7IgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxpZCB2YWx1ZSBmb3IgPHJl
Y3Q+IGF0dHJpYnV0ZSB4PSIxMDBweCAhaW1wb3J0YW50IgorQ09OU09MRSBNRVNTQUdFOiBFcnJv
cjogSW52YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB4PSJ7IDEwMHB4IH0iCitDT05T
T0xFIE1FU1NBR0U6IEVycm9yOiBJbnZhbGlkIHZhbHVlIGZvciA8cmVjdD4gYXR0cmlidXRlIHk9
ImF1dG8iCitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBJbnZhbGlkIHZhbHVlIGZvciA8cmVjdD4g
YXR0cmlidXRlIHk9IjEwMCAgIHB4IgorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxpZCB2
YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB5PSIxMDBweDsiCitDT05TT0xFIE1FU1NBR0U6IEVy
cm9yOiBJbnZhbGlkIHZhbHVlIGZvciA8cmVjdD4gYXR0cmlidXRlIHk9IjEwMHB4ICFpbXBvcnRh
bnQiCitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBJbnZhbGlkIHZhbHVlIGZvciA8cmVjdD4gYXR0
cmlidXRlIHk9InsgMTAwcHggfSIKK1Rlc3QgdGhhdCAnd2l0aCcgcHJlc2VudGF0aW9uIGF0dHJp
YnV0ZSBpcyBwYXJzZWQgd2l0aCBDU1MgcHJlc2VudGF0aW9uIHJ1bGVzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjb21wdXRlZFN0eWxlKCJ3aWR0aCIsICJhdXRvIikg
aXMgImF1dG8iCitQQVNTIGNvbXB1dGVkU3R5bGUoIndpZHRoIiwgIiAgMTAwIikgaXMgIjEwMHB4
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJ3aWR0aCIsICIxMDAgICAiKSBpcyAiMTAwcHgiCitQQVNT
IGNvbXB1dGVkU3R5bGUoIndpZHRoIiwgIjEwMHB4IikgaXMgIjEwMHB4IgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJ3aWR0aCIsICIxZW0iKSBpcyAiMTZweCIKK1BBU1MgY29tcHV0ZWRTdHlsZSgid2lk
dGgiLCAiMWV4IikgaXMgIjEyLjgwMDAwMDE5MDczNDg2M3B4IgorUEFTUyBjb21wdXRlZFN0eWxl
KCJ3aWR0aCIsICIyMCUiKSBpcyAiMjAlIgorUEFTUyBjb21wdXRlZFN0eWxlKCJ4IiwgIiAgMTAw
IikgaXMgIjEwMHB4IgorUEFTUyBjb21wdXRlZFN0eWxlKCJ4IiwgIjEwMCAgICIpIGlzICIxMDBw
eCIKK1BBU1MgY29tcHV0ZWRTdHlsZSgieCIsICIxMDBweCIpIGlzICIxMDBweCIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgieCIsICIxZW0iKSBpcyAiMTZweCIKK1BBU1MgY29tcHV0ZWRTdHlsZSgieCIs
ICIxZXgiKSBpcyAiMTIuODAwMDAwMTkwNzM0ODYzcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUoIngi
LCAiMjAlIikgaXMgIjIwJSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgieCIsICItMjAwcHgiKSBpcyAi
LTIwMHB4IgorUEFTUyBjb21wdXRlZFN0eWxlKCJ5IiwgIiAgMTAwIikgaXMgIjEwMHB4IgorUEFT
UyBjb21wdXRlZFN0eWxlKCJ5IiwgIjEwMCAgICIpIGlzICIxMDBweCIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgieSIsICIxMDBweCIpIGlzICIxMDBweCIKK1BBU1MgY29tcHV0ZWRTdHlsZSgieSIsICIx
ZW0iKSBpcyAiMTZweCIKK1BBU1MgY29tcHV0ZWRTdHlsZSgieSIsICIxZXgiKSBpcyAiMTIuODAw
MDAwMTkwNzM0ODYzcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUoInkiLCAiMjAlIikgaXMgIjIwJSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgieSIsICItMjAwcHgiKSBpcyAiLTIwMHB4IgorUEFTUyBjb21w
dXRlZFN0eWxlKCJ3aWR0aCIsICIxMDAgICBweCIpIGlzICJhdXRvIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJ3aWR0aCIsICIxMDBweDsiKSBpcyAiYXV0byIKK1BBU1MgY29tcHV0ZWRTdHlsZSgid2lk
dGgiLCAiMTAwcHggIWltcG9ydGFudCIpIGlzICJhdXRvIgorUEFTUyBjb21wdXRlZFN0eWxlKCJ3
aWR0aCIsICJ7IDEwMHB4IH0iKSBpcyAiYXV0byIKK1BBU1MgY29tcHV0ZWRTdHlsZSgid2lkdGgi
LCAiLTEwMHB4IikgaXMgImF1dG8iCitQQVNTIGNvbXB1dGVkU3R5bGUoIngiLCAiYXV0byIpIGlz
ICIwcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUoIngiLCAiMTAwICAgcHgiKSBpcyAiMHB4IgorUEFT
UyBjb21wdXRlZFN0eWxlKCJ4IiwgIjEwMHB4OyIpIGlzICIwcHgiCitQQVNTIGNvbXB1dGVkU3R5
bGUoIngiLCAiMTAwcHggIWltcG9ydGFudCIpIGlzICIwcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUo
IngiLCAieyAxMDBweCB9IikgaXMgIjBweCIKK1BBU1MgY29tcHV0ZWRTdHlsZSgieSIsICJhdXRv
IikgaXMgIjBweCIKK1BBU1MgY29tcHV0ZWRTdHlsZSgieSIsICIxMDAgICBweCIpIGlzICIwcHgi
CitQQVNTIGNvbXB1dGVkU3R5bGUoInkiLCAiMTAwcHg7IikgaXMgIjBweCIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgieSIsICIxMDBweCAhaW1wb3J0YW50IikgaXMgIjBweCIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgieSIsICJ7IDEwMHB4IH0iKSBpcyAiMHB4IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9j
c3MvcGFyc2UtbGVuZ3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcnNlLWxlbmd0aC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1MTA3MWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcnNlLWxlbmd0aC5odG1sCkBAIC0wLDAg
KzEsODggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGU+CisqIHsgZm9udC1zaXpl
OiAxNnB4OyB9CitzdmcsIHJlY3QgeyBmb250LWZhbWlseTogJ0FoZW0nOyB9CitkaXYgeyBmb250
LXNpemU6IDhweDsgfSAKKzwvc3R5bGU+Cis8aHRtbD4KKzxzdmcgaWQ9InN2ZyIgd2lkdGg9IjAi
IGhlaWdodD0iMCI+PC9zdmc+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0ICd3aXRo
JyBwcmVzZW50YXRpb24gYXR0cmlidXRlIGlzIHBhcnNlZCB3aXRoIENTUyBwcmVzZW50YXRpb24g
cnVsZXMuIik7CisKK2Z1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKSB7Cisg
ICAgdmFyIHJlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnJywgJ3JlY3QnKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ZnJyku
YXBwZW5kQ2hpbGQocmVjdCk7CisgICAgcmVjdC5zZXRBdHRyaWJ1dGUocHJvcGVydHksIHZhbHVl
KTsKKyAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUocmVjdCkuZ2V0UHJv
cGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N2Zycp
LnJlbW92ZUNoaWxkKHJlY3QpOworICAgIHJldHVybiBjb21wdXRlZFZhbHVlOworfQorCitmdW5j
dGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkgeworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsg
dmFsdWUgKyAnIiknLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIG5lZ2F0aXZlVGVzdChwcm9w
ZXJ0eSwgdmFsdWUpIHsKKyAgICB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCAiYXV0byIp
OworfQorCitmdW5jdGlvbiBuZWdhdGl2ZVRlc3RaZXJvKHByb3BlcnR5LCB2YWx1ZSkgeworICAg
IHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsICIwcHgiKTsKK30KKworLy8gVGVzdCAnd2lk
dGgnLgordGVzdENvbXB1dGVkKCJ3aWR0aCIsICJhdXRvIiwgImF1dG8iKTsKK3Rlc3RDb21wdXRl
ZCgid2lkdGgiLCAiICAxMDAiLCAiMTAwcHgiKTsKK3Rlc3RDb21wdXRlZCgid2lkdGgiLCAiMTAw
ICAgIiwgIjEwMHB4Iik7Cit0ZXN0Q29tcHV0ZWQoIndpZHRoIiwgIjEwMHB4IiwgIjEwMHB4Iik7
Cit0ZXN0Q29tcHV0ZWQoIndpZHRoIiwgIjFlbSIsICIxNnB4Iik7Cit0ZXN0Q29tcHV0ZWQoIndp
ZHRoIiwgIjFleCIsICIxMi44MDAwMDAxOTA3MzQ4NjNweCIpOwordGVzdENvbXB1dGVkKCJ3aWR0
aCIsICIyMCUiLCAiMjAlIik7CisvLyBGSVhNRTogVmllcG9ydCB1bml0cyBub3QgaW1wbGVtZW50
ZWQgZm9yIFNWRyBhdCB0aGUgbW9tZW50LgorLy8gdGVzdENvbXB1dGVkKCJ3aWR0aCIsICIxdmgi
LCAiNy44Njk5OTk4ODU1NTkwODJweCIpOworLy8gdGVzdENvbXB1dGVkKCJ3aWR0aCIsICIxdnci
LCAiMTQuMDI5OTk5NzMyOTcxMTkxcHgiKTsKKworLy8gVGVzdCAneCcuCit0ZXN0Q29tcHV0ZWQo
IngiLCAiICAxMDAiLCAiMTAwcHgiKTsKK3Rlc3RDb21wdXRlZCgieCIsICIxMDAgICAiLCAiMTAw
cHgiKTsKK3Rlc3RDb21wdXRlZCgieCIsICIxMDBweCIsICIxMDBweCIpOwordGVzdENvbXB1dGVk
KCJ4IiwgIjFlbSIsICIxNnB4Iik7Cit0ZXN0Q29tcHV0ZWQoIngiLCAiMWV4IiwgIjEyLjgwMDAw
MDE5MDczNDg2M3B4Iik7Cit0ZXN0Q29tcHV0ZWQoIngiLCAiMjAlIiwgIjIwJSIpOwordGVzdENv
bXB1dGVkKCJ4IiwgIi0yMDBweCIsICItMjAwcHgiKTsKKworLy8gVGVzdCAneScuCit0ZXN0Q29t
cHV0ZWQoInkiLCAiICAxMDAiLCAiMTAwcHgiKTsKK3Rlc3RDb21wdXRlZCgieSIsICIxMDAgICAi
LCAiMTAwcHgiKTsKK3Rlc3RDb21wdXRlZCgieSIsICIxMDBweCIsICIxMDBweCIpOwordGVzdENv
bXB1dGVkKCJ5IiwgIjFlbSIsICIxNnB4Iik7Cit0ZXN0Q29tcHV0ZWQoInkiLCAiMWV4IiwgIjEy
LjgwMDAwMDE5MDczNDg2M3B4Iik7Cit0ZXN0Q29tcHV0ZWQoInkiLCAiMjAlIiwgIjIwJSIpOwor
dGVzdENvbXB1dGVkKCJ5IiwgIi0yMDBweCIsICItMjAwcHgiKTsKKworLy8gTmVnYXRpdmUgdGVz
dHMgZm9yICd3aWR0aCcuCituZWdhdGl2ZVRlc3QoIndpZHRoIiwgIjEwMCAgIHB4Iik7CituZWdh
dGl2ZVRlc3QoIndpZHRoIiwgIjEwMHB4OyIpOworbmVnYXRpdmVUZXN0KCJ3aWR0aCIsICIxMDBw
eCAhaW1wb3J0YW50Iik7CituZWdhdGl2ZVRlc3QoIndpZHRoIiwgInsgMTAwcHggfSIpOworbmVn
YXRpdmVUZXN0KCJ3aWR0aCIsICItMTAwcHgiKTsKKworLy8gTmVnYXRpdmUgdGVzdHMgZm9yICd4
Jy4KK25lZ2F0aXZlVGVzdFplcm8oIngiLCAiYXV0byIsICJhdXRvIik7CituZWdhdGl2ZVRlc3Ra
ZXJvKCJ4IiwgIjEwMCAgIHB4Iik7CituZWdhdGl2ZVRlc3RaZXJvKCJ4IiwgIjEwMHB4OyIpOwor
bmVnYXRpdmVUZXN0WmVybygieCIsICIxMDBweCAhaW1wb3J0YW50Iik7CituZWdhdGl2ZVRlc3Ra
ZXJvKCJ4IiwgInsgMTAwcHggfSIpOworCisvLyBOZWdhdGl2ZSB0ZXN0cyBmb3IgJ3knLgorbmVn
YXRpdmVUZXN0WmVybygieSIsICJhdXRvIik7CituZWdhdGl2ZVRlc3RaZXJvKCJ5IiwgIjEwMCAg
IHB4Iik7CituZWdhdGl2ZVRlc3RaZXJvKCJ5IiwgIjEwMHB4OyIpOworbmVnYXRpdmVUZXN0WmVy
bygieSIsICIxMDBweCAhaW1wb3J0YW50Iik7CituZWdhdGl2ZVRlc3RaZXJvKCJ5IiwgInsgMTAw
cHggfSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdmcvY3NzL3BhcnNlLXdpZHRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9j
c3MvcGFyc2Utd2lkdGgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlYWQ4NzE0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyc2Utd2lkdGgt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBFcnJvcjogSW52YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB3aWR0aD0iYXV0
byIKLUNPTlNPTEUgTUVTU0FHRTogRXJyb3I6IEludmFsaWQgdmFsdWUgZm9yIDxyZWN0PiBhdHRy
aWJ1dGUgd2lkdGg9IiAgMTAwIgotQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxpZCB2YWx1
ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB3aWR0aD0iMTAwICAgIgotQ09OU09MRSBNRVNTQUdFOiBF
cnJvcjogSW52YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB3aWR0aD0iMTAwICAgcHgi
Ci1DT05TT0xFIE1FU1NBR0U6IEVycm9yOiBJbnZhbGlkIHZhbHVlIGZvciA8cmVjdD4gYXR0cmli
dXRlIHdpZHRoPSIxMDBweDsiCi1DT05TT0xFIE1FU1NBR0U6IEVycm9yOiBJbnZhbGlkIHZhbHVl
IGZvciA8cmVjdD4gYXR0cmlidXRlIHdpZHRoPSIxMDBweCAhaW1wb3J0YW50IgotQ09OU09MRSBN
RVNTQUdFOiBFcnJvcjogSW52YWxpZCB2YWx1ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB3aWR0aD0i
eyAxMDBweCB9IgotQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogSW52YWxpZCBuZWdhdGl2ZSB2YWx1
ZSBmb3IgPHJlY3Q+IGF0dHJpYnV0ZSB3aWR0aD0iLTEwMHB4IgotVGVzdCB0aGF0ICd3aXRoJyBw
cmVzZW50YXRpb24gYXR0cmlidXRlIGlzIHBhcnNlZCB3aXRoIENTUyBwcmVzZW50YXRpb24gcnVs
ZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNvbXB1dGVkU3R5bGUo
IndpZHRoIiwgImF1dG8iKSBpcyAiYXV0byIKLVBBU1MgY29tcHV0ZWRTdHlsZSgid2lkdGgiLCAi
ICAxMDAiKSBpcyAiMTAwcHgiCi1QQVNTIGNvbXB1dGVkU3R5bGUoIndpZHRoIiwgIjEwMCAgICIp
IGlzICIxMDBweCIKLVBBU1MgY29tcHV0ZWRTdHlsZSgid2lkdGgiLCAiMTAwcHgiKSBpcyAiMTAw
cHgiCi1QQVNTIGNvbXB1dGVkU3R5bGUoIndpZHRoIiwgIjFlbSIpIGlzICIxNnB4IgotUEFTUyBj
b21wdXRlZFN0eWxlKCJ3aWR0aCIsICIxZXgiKSBpcyAiMTIuODAwMDAwMTkwNzM0ODYzcHgiCi1Q
QVNTIGNvbXB1dGVkU3R5bGUoIndpZHRoIiwgIjIwJSIpIGlzICIyMCUiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoIndpZHRoIiwgIjEwMCAgIHB4IikgaXMgImF1dG8iCi1QQVNTIGNvbXB1dGVkU3R5bGUo
IndpZHRoIiwgIjEwMHB4OyIpIGlzICJhdXRvIgotUEFTUyBjb21wdXRlZFN0eWxlKCJ3aWR0aCIs
ICIxMDBweCAhaW1wb3J0YW50IikgaXMgImF1dG8iCi1QQVNTIGNvbXB1dGVkU3R5bGUoIndpZHRo
IiwgInsgMTAwcHggfSIpIGlzICJhdXRvIgotUEFTUyBjb21wdXRlZFN0eWxlKCJ3aWR0aCIsICIt
MTAwcHgiKSBpcyAiYXV0byIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcnNlLXdpZHRo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcnNlLXdpZHRoLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDhhZmIyNWYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3Zn
L2Nzcy9wYXJzZS13aWR0aC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxzdHlsZT4KLSogeyBmb250LXNpemU6IDE2cHg7IH0KLXN2
ZywgcmVjdCB7IGZvbnQtZmFtaWx5OiAnQWhlbSc7IH0KLWRpdiB7IGZvbnQtc2l6ZTogOHB4OyB9
IAotPC9zdHlsZT4KLTxodG1sPgotPHN2ZyBpZD0ic3ZnIiB3aWR0aD0iMCIgaGVpZ2h0PSIwIj48
L3N2Zz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgJ3dpdGgnIHByZXNlbnRhdGlv
biBhdHRyaWJ1dGUgaXMgcGFyc2VkIHdpdGggQ1NTIHByZXNlbnRhdGlvbiBydWxlcy4iKTsKLQot
ZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpIHsKLSAgICB2YXIgcmVjdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAn
cmVjdCcpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdmcnKS5hcHBlbmRDaGlsZChy
ZWN0KTsKLSAgICByZWN0LnNldEF0dHJpYnV0ZShwcm9wZXJ0eSwgdmFsdWUpOwotICAgIHZhciBj
b21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShyZWN0KS5nZXRQcm9wZXJ0eVZhbHVlKHBy
b3BlcnR5KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ZnJykucmVtb3ZlQ2hpbGQo
cmVjdCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkVmFsdWU7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb21w
dXRlZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdjb21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScs
IGV4cGVjdGVkKTsKLX0KLQotZnVuY3Rpb24gbmVnYXRpdmVUZXN0KHByb3BlcnR5LCB2YWx1ZSkg
ewotICAgIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsICJhdXRvIik7Ci19Ci0KLS8vIHRl
c3QgbWFzay1pbWFnZQotdGVzdENvbXB1dGVkKCJ3aWR0aCIsICJhdXRvIiwgImF1dG8iKTsKLXRl
c3RDb21wdXRlZCgid2lkdGgiLCAiICAxMDAiLCAiMTAwcHgiKTsKLXRlc3RDb21wdXRlZCgid2lk
dGgiLCAiMTAwICAgIiwgIjEwMHB4Iik7Ci10ZXN0Q29tcHV0ZWQoIndpZHRoIiwgIjEwMHB4Iiwg
IjEwMHB4Iik7Ci10ZXN0Q29tcHV0ZWQoIndpZHRoIiwgIjFlbSIsICIxNnB4Iik7Ci10ZXN0Q29t
cHV0ZWQoIndpZHRoIiwgIjFleCIsICIxMi44MDAwMDAxOTA3MzQ4NjNweCIpOwotdGVzdENvbXB1
dGVkKCJ3aWR0aCIsICIyMCUiLCAiMjAlIik7Ci0vLyBGSVhNRTogVmllcG9ydCB1bml0cyBub3Qg
aW1wbGVtZW50ZWQgZm9yIFNWRyBhdCB0aGUgbW9tZW50LgotLy8gdGVzdENvbXB1dGVkKCJ3aWR0
aCIsICIxdmgiLCAiNy44Njk5OTk4ODU1NTkwODJweCIpOwotLy8gdGVzdENvbXB1dGVkKCJ3aWR0
aCIsICIxdnciLCAiMTQuMDI5OTk5NzMyOTcxMTkxcHgiKTsKLQotLy8gbmVnYXRpdmUgdGVzdHMK
LW5lZ2F0aXZlVGVzdCgid2lkdGgiLCAiMTAwICAgcHgiKTsKLW5lZ2F0aXZlVGVzdCgid2lkdGgi
LCAiMTAwcHg7Iik7Ci1uZWdhdGl2ZVRlc3QoIndpZHRoIiwgIjEwMHB4ICFpbXBvcnRhbnQiKTsK
LW5lZ2F0aXZlVGVzdCgid2lkdGgiLCAieyAxMDBweCB9Iik7Ci1uZWdhdGl2ZVRlc3QoIndpZHRo
IiwgIi0xMDBweCIpOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3N2Zy1sYXlvdXQtdHJhbnNpdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9zdmctbGF5b3V0LXRyYW5zaXRpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkODk4ZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9zdmctbGF5b3V0LXRyYW5zaXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyAtICJ4IiBwcm9wZXJ0eSBmb3Ig
IngiIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxNTAKK1BBU1MgLSAi
eSIgcHJvcGVydHkgZm9yICJ5IiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0
bzogMTUwCitQQVNTIC0gIndpZHRoIiBwcm9wZXJ0eSBmb3IgIndpZHRoIiBlbGVtZW50IGF0IDAu
NXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTUwCitQQVNTIC0gImhlaWdodCIgcHJvcGVydHkg
Zm9yICJoZWlnaHQiIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxNTAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvc3ZnLWxheW91dC10cmFuc2l0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9zdmctbGF5b3V0LXRyYW5zaXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzkyYjg2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvc3ZnLWxheW91dC10cmFuc2l0aW9u
Lmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFPgorCis8aHRtbD4KKzxoZWFkPgorICA8
c3R5bGU+CisgICAgLmluaXQgeworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAx
czsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAg
ICB9CisgICAgCisgICAgI3ggeworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB4
OworICAgIH0KKyAgICAjeC5maW5hbCB7CisgICAgICB4OiAyMDBweDsKKyAgICB9CisKKyAgICAj
eSB7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHk7CisgICAgfQorICAgICN5
LmZpbmFsIHsKKyAgICAgIHk6IDIwMHB4OworICAgIH0KKworICAgICN3aWR0aCB7CisgICAgICAt
d2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoOworICAgIH0KKyAgICAjd2lkdGguZmlu
YWwgeworICAgICAgd2lkdGg6IDIwMHB4OworICAgIH0KKworICAgICNoZWlnaHQgeworICAgICAg
LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQ7CisgICAgfQorICAgICNoZWlnaHQu
ZmluYWwgeworICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB9CisgICAgCisgIDwvc3R5bGU+Cisg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdHJhbnNpdGlvbi10ZXN0LWhlbHBlcnMuanMiPjwvc2Ny
aXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKKyAgICBjb25zdCBleHBl
Y3RlZFZhbHVlcyA9IFsKKyAgICAgIC8vIFt0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhw
ZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFswLjUsICd4JywgJ3gnLCAxNTAsIDIwXSwK
KyAgICAgIFswLjUsICd5JywgJ3knLCAxNTAsIDIwXSwKKyAgICAgIFswLjUsICd3aWR0aCcsICd3
aWR0aCcsIDE1MCwgMjBdLAorICAgICAgWzAuNSwgJ2hlaWdodCcsICdoZWlnaHQnLCAxNTAsIDIw
XSwKKyAgICBdOworICAKKyAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKQorICAgIHsKKyAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd4Jykuc2V0QXR0cmlidXRlKCdjbGFzcycsICdpbml0IGZp
bmFsJyk7CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneScpLnNldEF0dHJpYnV0ZSgn
Y2xhc3MnLCAnaW5pdCBmaW5hbCcpOworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dp
ZHRoJykuc2V0QXR0cmlidXRlKCdjbGFzcycsICdpbml0IGZpbmFsJyk7CisgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaGVpZ2h0Jykuc2V0QXR0cmlidXRlKCdjbGFzcycsICdpbml0IGZp
bmFsJyk7CisgICAgfQorICAKKyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZFZhbHVlcywg
c2V0dXBUZXN0LCB1c2VQYXVzZUFQSSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
IDxzdmc+CisgICAgPHJlY3QgeD0iMTAwIiB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAw
IiBjbGFzcz0iaW5pdCIgaWQ9IngiLz4KKyAgICA8cmVjdCB4PSIxMDAiIHk9IjEwMCIgd2lkdGg9
IjEwMCIgaGVpZ2h0PSIxMDAiIGNsYXNzPSJpbml0IiBpZD0ieSIvPgorICAgIDxyZWN0IHg9IjEw
MCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgY2xhc3M9ImluaXQiIGlkPSJ3aWR0
aCIvPgorICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIg
Y2xhc3M9ImluaXQiIGlkPSJoZWlnaHQiLz4KKyAgPC9zdmc+CisKKyAgPGRpdiBpZD0icmVzdWx0
Ij4KKyAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlN2FiZTAzLi4w
MWM4NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTQtMDctMjQgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBUdXJuIHgveSB0byBwcmVzZW50YXRp
b24gYXR0cmlidXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM1MjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBmb2xsb3dzIHRoZSBwYXRjaCBmb3Igd2lkdGggYW5kIGhlaWdodCBwcmVzZW50
YXRpb24gYXR0cmlidXRlcyBhbmQKKyAgICAgICAgdHVybnMgeCBhbmQgeSB0byBwcmVzZW50YXRp
b24gYXR0cmlidXRlcyBhcyB3ZWxsOgorCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzE3MTM0MQorCisgICAgICAgIFRlc3RzOiBzdmcvY3NzL3BhcnNlLWxlbmd0aC5o
dG1sCisgICAgICAgICAgICAgICB0cmFuc2l0aW9ucy9zdmctbGF5b3V0LXRyYW5zaXRpb24uaHRt
bAorCisgICAgICAgIEFkZGVkIGNvcHlyaWdodCB3aGVyZSBJIGZvcmdvdCBpdCBpbiBwcmV2aW91
cyBwYXRjaC4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OiBDb21wdXRlZCBzdHlsZSBvZiB4IGFuZCB5LgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRT
dHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppc1NpbXBsZUxlbmd0aFByb3BlcnR5SUQpOiBBZGQgeCBh
bmQgeSB0byBsaXN0LgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXI6OkRlcHJlY2F0ZWRTdHls
ZUJ1aWxkZXIpOiBSZXNvbHZlIHggYW5kIHkuCisgICAgICAgICogY3NzL1NWR0NTU1BhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUpOiBQYXJzZSB4
IGFuZCB5IHByb3BlcnR5LgorICAgICAgICAqIGNzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluOiBB
ZGQgeCBhbmQgeSB0byBsaXN0IG9mIG5hbWVzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVy
Lmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwOiBB
bmltYXRlIHggYW5kIHkgYXMgTGVuZ3RoLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlB
bmltYXRpb25XcmFwcGVyTWFwOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXApOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBBZGQgeCBhbmQgeSBzZXR0ZXJz
IGFuZCBnZXR0ZXJzLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5j
cHA6IEFkZCB4IGFuZCB5IHNldHRlcnMgZm9yIFN0eWxlTGF5b3V0RGF0YS4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR1JlbmRlclN0eWxlOjpTVkdSZW5kZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdSZW5kZXJTdHlsZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5k
ZXJTdHlsZTo6Y29weU5vbkluaGVyaXRlZEZyb20pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVu
ZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHls
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OnNldFgpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OnNldFkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVu
ZGVyU3R5bGU6OngpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OnkpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuY3BwOiBBZGQgU3R5bGVM
YXlvdXREYXRhIGZvciBzdHlsZSBzdG9yaW5nLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVMYXlv
dXREYXRhOjpTdHlsZUxheW91dERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVMYXlvdXRE
YXRhOjpjb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTGF5b3V0RGF0YTo6b3BlcmF0b3I9
PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVMYXlvdXREYXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVMYXlvdXREYXRhOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1JlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVjdDo6dXBk
YXRlU2hhcGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0
YS5jcHA6IFVzZSBSZW5kZXJTdHlsZSB2YWx1ZXMgcmF0aGVyIHRoYW4gYXR0cmlidXRlIHZhbHVl
cy4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVBhdGhGcm9tUmVjdEVsZW1lbnQpOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGlvbkVsZW1lbnQ6OmlzVGFyZ2V0QXR0cmlidXRlQ1NTUHJvcGVydHkpOiBGaXggdGV4dCBk
ZXRlY3Rpb24uCisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOiBBZGQgeCBhbmQgeSB0byB0
aGUgcmVsZXZhbnQgcHJvcGVydHkgbGlzdHMuCisgICAgICAgIChXZWJDb3JlOjpwb3B1bGF0ZUF0
dHJpYnV0ZU5hbWVUb0NTU1Byb3BlcnR5SURNYXApOgorICAgICAgICAoV2ViQ29yZTo6cG9wdWxh
dGVDU1NQcm9wZXJ0eVdpdGhTVkdET01OYW1lVG9BbmltYXRlZFByb3BlcnR5VHlwZU1hcCk6Cisg
ICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwOiBTdHlsZSB1cGRhdGUgb24gY2hhbmdl
IG9mIHggYW5kIHkuCisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToK
KyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBzdmcvU1ZHUmVjdEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jl
Y3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudC5jcHA6IEV4Y2x1ZGUgeCBhbmQgeSBvZiB0ZXh0IGVsZW1lbnRzIHNp
bmNlIHRoZXkKKyAgICAgICAgICAgIGFyZSBsaXN0cyBpbnN0ZWFkIG9mIGluZGl2aWR1YWwgdmFs
dWVzLiBTb2x1dGlvbiBhYm91dCB0byBiZSBkaXNjdXNzZWQKKyAgICAgICAgICAgIGluIHRoZSBX
Ry4gS2VlcCBjdXJyZW50IGJlaGF2aW9yIGZvciBub3cuCisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXh0UG9zaXRpb25pbmdFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6aXNQcmVz
ZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVt
ZW50Lmg6CisKIDIwMTQtMDctMjMgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgog
CiAgICAgICAgIFRyYW5zcGFyZW50IGZ1bGxzY3JlZW4gYmFja2dyb3VuZCB3aGVuIHZpZGVvIGlz
IG5vdCBwcmVzZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAppbmRleCBkNDQwMzZlLi41MTAxMjlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNDI4LDcg
KzQyOCw5IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1td
ID0gewogICAgIENTU1Byb3BlcnR5R2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwsCiAgICAgQ1NT
UHJvcGVydHlHbHlwaE9yaWVudGF0aW9uVmVydGljYWwsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRT
dmdTaGFkb3csCi0gICAgQ1NTUHJvcGVydHlWZWN0b3JFZmZlY3QKKyAgICBDU1NQcm9wZXJ0eVZl
Y3RvckVmZmVjdCwKKyAgICBDU1NQcm9wZXJ0eVgsCisgICAgQ1NTUHJvcGVydHlZCiB9OwogCiBj
b25zdCB1bnNpZ25lZCBudW1Db21wdXRlZFByb3BlcnRpZXMgPSBXVEZfQVJSQVlfTEVOR1RIKGNv
bXB1dGVkUHJvcGVydGllcyk7CkBAIC0yODk3LDYgKzI4OTksMTIgQEAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnQKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRZOgogICAg
ICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgLy8gTmV3IHBvc2l0aW9uaW5nIGFuZCBzaXppbmcg
cHJvcGVydGllcyBmb3IgU1ZHCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlYOgorICAgICAgICAg
ICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5bGUtPnN2Z1N0eWxl
KCkueCgpLCBzdHlsZS5nZXQoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlZOgorICAgICAg
ICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5bGUtPnN2Z1N0
eWxlKCkueSgpLCBzdHlsZS5nZXQoKSk7CisKICAgICAgICAgLyogVW5pbXBsZW1lbnRlZCBDU1Mg
MyBwcm9wZXJ0aWVzIChpbmNsdWRpbmcgQ1NTMyBzaG9ydGhhbmQgcHJvcGVydGllcykgKi8KICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpczoKICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVRleHRMaW5lVGhyb3VnaDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXgg
MTI1MjY3ZS4uNzVjOWJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTU2OSw2ICs1
NjksOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJZCwgYm9vbCYgYWNjZQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRNYXJnaW5CZWZvcmU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkVuZDoKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luU3RhcnQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVk6CiAgICAgICAgIGFjY2VwdHNOZWdhdGl2ZU51bWJl
cnMgPSB0cnVlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCmluZGV4IGU0NjMwOTkuLmVk
YWY3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWls
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5j
cHAKQEAgLTI1OTMsNiArMjU5MywxMCBAQCBEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNh
dGVkU3R5bGVCdWlsZGVyKCkKIAogICAgIC8vIFVBcyBtdXN0IHRyZWF0ICd3b3JkLXdyYXAnIGFz
IGFuIGFsdGVybmF0ZSBuYW1lIGZvciB0aGUgJ292ZXJmbG93LXdyYXAnIHByb3BlcnR5LiBTbyB1
c2luZyB0aGUgc2FtZSBoYW5kbGVycy4KICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlXb3JkV3JhcCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RU92ZXJmbG93V3JhcCwgJlJlbmRlclN0
eWxlOjpvdmVyZmxvd1dyYXAsIEVPdmVyZmxvd1dyYXAsICZSZW5kZXJTdHlsZTo6c2V0T3ZlcmZs
b3dXcmFwLCBFT3ZlcmZsb3dXcmFwLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyZmxvd1dyYXA+
OjpjcmVhdGVIYW5kbGVyKCkpOworCisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
WCwgQXBwbHlQcm9wZXJ0eUxlbmd0aDwmUmVuZGVyU3R5bGU6OngsICZSZW5kZXJTdHlsZTo6c2V0
WCwgJlJlbmRlclN0eWxlOjppbml0aWFsWmVyb0xlbmd0aD46OmNyZWF0ZUhhbmRsZXIoKSk7Cisg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5WSwgQXBwbHlQcm9wZXJ0eUxlbmd0aDwm
UmVuZGVyU3R5bGU6OnksICZSZW5kZXJTdHlsZTo6c2V0WSwgJlJlbmRlclN0eWxlOjppbml0aWFs
WmVyb0xlbmd0aD46OmNyZWF0ZUhhbmRsZXIoKSk7CisKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlaSW5kZXgsIEFwcGx5UHJvcGVydHlBdXRvPGludCwgJlJlbmRlclN0eWxlOjp6
SW5kZXgsICZSZW5kZXJTdHlsZTo6c2V0WkluZGV4LCAmUmVuZGVyU3R5bGU6Omhhc0F1dG9aSW5k
ZXgsICZSZW5kZXJTdHlsZTo6c2V0SGFzQXV0b1pJbmRleD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Wm9vbSwgQXBwbHlQcm9wZXJ0eVpvb206
OmNyZWF0ZUhhbmRsZXIoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZH
Q1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCmluZGV4
IGM4NzQ4NmQuLmY1YmQ0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCkBAIC0y
OTksNiArMjk5LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9
IGZhbHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVk6CisgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICgh
aWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKTsKKyAgICAgICAgYnJl
YWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gSWYgeW91IGNyYXNoIGhlcmUsIGl0J3MgYmVj
YXVzZSB5b3UgYWRkZWQgYSBjc3MgcHJvcGVydHkgYW5kIGFyZSBub3QgaGFuZGxpbmcgaXQKICAg
ICAgICAgLy8gaW4gZWl0aGVyIHRoaXMgc3dpdGNoIHN0YXRlbWVudCBvciB0aGUgb25lIGluIENT
U1BhcnNlcjo6cGFyc2VWYWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NT
U1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1l
cy5pbgppbmRleCA4YzNmOWIwLi5hODE3ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NT
UHJvcGVydHlOYW1lcy5pbgpAQCAtNTEsMyArNTEsNyBAQCB2ZWN0b3ItZWZmZWN0CiB3cml0aW5n
LW1vZGUgW0luaGVyaXRlZF0KIAogLXdlYmtpdC1zdmctc2hhZG93CisKK3gKK3kKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggM2ExY2M0OS4uOWUxNzM2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oCkBAIC04OCw2ICs4OCw3IEBAIGNsYXNzIFN0eWxlUnVsZVJlZ2lv
bjsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0TGlzdDsKIGNsYXNzIFN0eWxl
ZEVsZW1lbnQ7CitjbGFzcyBTVkdTVkdFbGVtZW50OwogY2xhc3MgVmlld3BvcnRTdHlsZVJlc29s
dmVyOwogY2xhc3MgV2ViS2l0Q1NTRmlsdGVyVmFsdWU7CiBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJv
cGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJv
cGVydHlBbmltYXRpb24uY3BwCmluZGV4IDVlNmVmMmEuLjI3MTcwNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAK
QEAgLTEyNTYsNiArMTI1Niw5IEBAIENTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NT
UHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKCkKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBl
cjxTVkdMZW5ndGg+KENTU1Byb3BlcnR5U3Ryb2tlRGFzaG9mZnNldCwgJlJlbmRlclN0eWxlOjpz
dHJva2VEYXNoT2Zmc2V0LCAmUmVuZGVyU3R5bGU6OnNldFN0cm9rZURhc2hPZmZzZXQpLAogICAg
ICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eVN0cm9rZU1pdGVybGlt
aXQsICZSZW5kZXJTdHlsZTo6c3Ryb2tlTWl0ZXJMaW1pdCwgJlJlbmRlclN0eWxlOjpzZXRTdHJv
a2VNaXRlckxpbWl0KSwKIAorICAgICAgICBuZXcgTGVuZ3RoUHJvcGVydHlXcmFwcGVyPExlbmd0
aD4oQ1NTUHJvcGVydHlYLCAmUmVuZGVyU3R5bGU6OngsICZSZW5kZXJTdHlsZTo6c2V0WCksCisg
ICAgICAgIG5ldyBMZW5ndGhQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPihDU1NQcm9wZXJ0eVksICZS
ZW5kZXJTdHlsZTo6eSwgJlJlbmRlclN0eWxlOjpzZXRZKSwKKwogICAgICAgICBuZXcgUHJvcGVy
dHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eUZsb29kT3BhY2l0eSwgJlJlbmRlclN0eWxlOjpm
bG9vZE9wYWNpdHksICZSZW5kZXJTdHlsZTo6c2V0Rmxvb2RPcGFjaXR5KSwKICAgICAgICAgbmV3
IFByb3BlcnR5V3JhcHBlck1heWJlSW52YWxpZENvbG9yKENTU1Byb3BlcnR5Rmxvb2RDb2xvciwg
JlJlbmRlclN0eWxlOjpmbG9vZENvbG9yLCAmUmVuZGVyU3R5bGU6OnNldEZsb29kQ29sb3IpLAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGFj
MjdmNWIuLmE2NjRmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCkBAIC0xNjMxLDYgKzE2MzEsMTEgQEAgcHVibGljOgogICAgIGZsb2F0IHN0cm9r
ZU1pdGVyTGltaXQoKSBjb25zdCB7IHJldHVybiBzdmdTdHlsZSgpLnN0cm9rZU1pdGVyTGltaXQo
KTsgfQogICAgIHZvaWQgc2V0U3Ryb2tlTWl0ZXJMaW1pdChmbG9hdCBmKSB7IGFjY2Vzc1NWR1N0
eWxlKCkuc2V0U3Ryb2tlTWl0ZXJMaW1pdChmKTsgfQogCisgICAgY29uc3QgTGVuZ3RoJiB4KCkg
Y29uc3QgeyByZXR1cm4gc3ZnU3R5bGUoKS54KCk7IH0KKyAgICB2b2lkIHNldFgoTGVuZ3RoIHgp
IHsgYWNjZXNzU1ZHU3R5bGUoKS5zZXRYKHgpOyB9CisgICAgY29uc3QgTGVuZ3RoJiB5KCkgY29u
c3QgeyByZXR1cm4gc3ZnU3R5bGUoKS55KCk7IH0KKyAgICB2b2lkIHNldFkoTGVuZ3RoIHkpIHsg
YWNjZXNzU1ZHU3R5bGUoKS5zZXRZKHkpOyB9CisKICAgICBmbG9hdCBmbG9vZE9wYWNpdHkoKSBj
b25zdCB7IHJldHVybiBzdmdTdHlsZSgpLmZsb29kT3BhY2l0eSgpOyB9CiAgICAgdm9pZCBzZXRG
bG9vZE9wYWNpdHkoZmxvYXQgZikgeyBhY2Nlc3NTVkdTdHlsZSgpLnNldEZsb29kT3BhY2l0eShm
KTsgfQogCkBAIC0xNzg2LDYgKzE3OTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIExlbmd0aCBp
bml0aWFsTWFyZ2luKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0YXRpYyBMZW5n
dGggaW5pdGlhbFBhZGRpbmcoKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CiAgICAgc3RhdGlj
IExlbmd0aCBpbml0aWFsVGV4dEluZGVudCgpIHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0KKyAg
ICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxaZXJvTGVuZ3RoKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVk
KTsgfQogI2lmIEVOQUJMRShDU1MzX1RFWFQpCiAgICAgc3RhdGljIFRleHRJbmRlbnRMaW5lIGlu
aXRpYWxUZXh0SW5kZW50TGluZSgpIHsgcmV0dXJuIFRleHRJbmRlbnRGaXJzdExpbmU7IH0KICAg
ICBzdGF0aWMgVGV4dEluZGVudFR5cGUgaW5pdGlhbFRleHRJbmRlbnRUeXBlKCkgeyByZXR1cm4g
VGV4dEluZGVudE5vcm1hbDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TVkdSZW5kZXJTdHlsZS5jcHAKaW5kZXggNzU3Y2Y1MS4uN2QyOWNhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCkBAIC01Niw2
ICs1Niw3IEBAIFNWR1JlbmRlclN0eWxlOjpTVkdSZW5kZXJTdHlsZSgpCiAgICAgLCBzdG9wcyhk
ZWZhdWx0U1ZHU3R5bGUoKS5zdG9wcykKICAgICAsIG1pc2MoZGVmYXVsdFNWR1N0eWxlKCkubWlz
YykKICAgICAsIHNoYWRvd1NWRyhkZWZhdWx0U1ZHU3R5bGUoKS5zaGFkb3dTVkcpCisgICAgLCBs
YXlvdXQoZGVmYXVsdFNWR1N0eWxlKCkubGF5b3V0KQogICAgICwgcmVzb3VyY2VzKGRlZmF1bHRT
VkdTdHlsZSgpLnJlc291cmNlcykKIHsKICAgICBzZXRCaXREZWZhdWx0cygpOwpAQCAtNjksNiAr
NzAsNyBAQCBTVkdSZW5kZXJTdHlsZTo6U1ZHUmVuZGVyU3R5bGUoQ3JlYXRlRGVmYXVsdFR5cGUp
CiAgICAgLCBzdG9wcyhTdHlsZVN0b3BEYXRhOjpjcmVhdGUoKSkKICAgICAsIG1pc2MoU3R5bGVN
aXNjRGF0YTo6Y3JlYXRlKCkpCiAgICAgLCBzaGFkb3dTVkcoU3R5bGVTaGFkb3dTVkdEYXRhOjpj
cmVhdGUoKSkKKyAgICAsIGxheW91dChTdHlsZUxheW91dERhdGE6OmNyZWF0ZSgpKQogICAgICwg
cmVzb3VyY2VzKFN0eWxlUmVzb3VyY2VEYXRhOjpjcmVhdGUoKSkKIHsKICAgICBzZXRCaXREZWZh
dWx0cygpOwpAQCAtODUsNiArODcsNyBAQCBpbmxpbmUgU1ZHUmVuZGVyU3R5bGU6OlNWR1JlbmRl
clN0eWxlKGNvbnN0IFNWR1JlbmRlclN0eWxlJiBvdGhlcikKICAgICAsIHN0b3BzKG90aGVyLnN0
b3BzKQogICAgICwgbWlzYyhvdGhlci5taXNjKQogICAgICwgc2hhZG93U1ZHKG90aGVyLnNoYWRv
d1NWRykKKyAgICAsIGxheW91dChvdGhlci5sYXlvdXQpCiAgICAgLCByZXNvdXJjZXMob3RoZXIu
cmVzb3VyY2VzKQogewogfQpAQCAtMTA2LDYgKzEwOSw3IEBAIGJvb2wgU1ZHUmVuZGVyU3R5bGU6
Om9wZXJhdG9yPT0oY29uc3QgU1ZHUmVuZGVyU3R5bGUmIG90aGVyKSBjb25zdAogICAgICAgICAm
JiBzdG9wcyA9PSBvdGhlci5zdG9wcwogICAgICAgICAmJiBtaXNjID09IG90aGVyLm1pc2MKICAg
ICAgICAgJiYgc2hhZG93U1ZHID09IG90aGVyLnNoYWRvd1NWRworICAgICAgICAmJiBsYXlvdXQg
PT0gb3RoZXIubGF5b3V0CiAgICAgICAgICYmIGluaGVyaXRlZFJlc291cmNlcyA9PSBvdGhlci5p
bmhlcml0ZWRSZXNvdXJjZXMKICAgICAgICAgJiYgcmVzb3VyY2VzID09IG90aGVyLnJlc291cmNl
cwogICAgICAgICAmJiBzdmdfaW5oZXJpdGVkX2ZsYWdzID09IG90aGVyLnN2Z19pbmhlcml0ZWRf
ZmxhZ3MKQEAgLTE0MCw2ICsxNDQsNyBAQCB2b2lkIFNWR1JlbmRlclN0eWxlOjpjb3B5Tm9uSW5o
ZXJpdGVkRnJvbShjb25zdCBTVkdSZW5kZXJTdHlsZSogb3RoZXIpCiAgICAgc3RvcHMgPSBvdGhl
ci0+c3RvcHM7CiAgICAgbWlzYyA9IG90aGVyLT5taXNjOwogICAgIHNoYWRvd1NWRyA9IG90aGVy
LT5zaGFkb3dTVkc7CisgICAgbGF5b3V0ID0gb3RoZXItPmxheW91dDsKICAgICByZXNvdXJjZXMg
PSBvdGhlci0+cmVzb3VyY2VzOwogfQogCkBAIC0yMjMsNiArMjI4LDEwIEBAIFN0eWxlRGlmZmVy
ZW5jZSBTVkdSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBTVkdSZW5kZXJTdHlsZSogb3RoZXIpIGNv
bnN0CiAgICAgaWYgKHNoYWRvd1NWRyAhPSBvdGhlci0+c2hhZG93U1ZHKQogICAgICAgICByZXR1
cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OwogCisgICAgLy8gVGhlIHggb3IgeSBwcm9wZXJ0aWVz
IHJlcXVpcmUgcmVsYXlvdXQuCisgICAgaWYgKGxheW91dCAhPSBvdGhlci0+bGF5b3V0KQorICAg
ICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OyAKKwogICAgIC8vIFNvbWUgc3Ryb2tl
IHByb3BlcnRpZXMsIHJlcXVpcmVzIHJlbGF5b3V0cywgYXMgdGhlIGNhY2hlZCBzdHJva2UgYm91
bmRhcmllcyBuZWVkIHRvIGJlIHJlY2FsY3VsYXRlZC4KICAgICBpZiAoc3Ryb2tlICE9IG90aGVy
LT5zdHJva2UpIHsKICAgICAgICAgaWYgKHN0cm9rZS0+d2lkdGggIT0gb3RoZXItPnN0cm9rZS0+
d2lkdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5k
ZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxl
LmgKaW5kZXggYjQwYmQyNy4uMmIxM2VjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKQEAgLTMsNiArMyw3IEBACiAgICAgICAgICAgICAg
ICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgICAgQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA2IEFwcGxlIEluYy4KICAgICBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICAgQ29weXJpZ2h0IChD
KSAyMDE0IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
CiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNDUsNiArMTQ2LDE2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEdseXBoT3JpZW50YXRpb25WZXJ0aWNhbChFR2x5cGhPcmllbnRhdGlvbiB2YWwpIHsgc3Zn
X2luaGVyaXRlZF9mbGFncy5fZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsID0gdmFsOyB9CiAgICAg
dm9pZCBzZXRNYXNrVHlwZShFTWFza1R5cGUgdmFsKSB7IHN2Z19ub25pbmhlcml0ZWRfZmxhZ3Mu
Zi5tYXNrVHlwZSA9IHZhbDsgfQogICAgIHZvaWQgc2V0UGFpbnRPcmRlcihQYWludE9yZGVyIHZh
bCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLnBhaW50T3JkZXIgPSB2YWw7IH0KKyAgICB2b2lkIHNl
dFgoY29uc3QgTGVuZ3RoJiBvYmopCisgICAgeworICAgICAgICBpZiAoIShsYXlvdXQtPnggPT0g
b2JqKSkKKyAgICAgICAgICAgIGxheW91dC5hY2Nlc3MoKS0+eCA9IG9iajsKKyAgICB9CisgICAg
dm9pZCBzZXRZKGNvbnN0IExlbmd0aCYgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKCEobGF5b3V0
LT55ID09IG9iaikpCisgICAgICAgICAgICBsYXlvdXQuYWNjZXNzKCktPnkgPSBvYmo7CisgICAg
fQogCiAgICAgdm9pZCBzZXRGaWxsT3BhY2l0eShmbG9hdCBvYmopCiAgICAgewpAQCAtMzQyLDYg
KzM1Myw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBDb2xvciYgbGlnaHRpbmdDb2xvcigpIGNvbnN0
IHsgcmV0dXJuIG1pc2MtPmxpZ2h0aW5nQ29sb3I7IH0KICAgICBTVkdMZW5ndGggYmFzZWxpbmVT
aGlmdFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbWlzYy0+YmFzZWxpbmVTaGlmdFZhbHVlOyB9CiAg
ICAgU2hhZG93RGF0YSogc2hhZG93KCkgY29uc3QgeyByZXR1cm4gc2hhZG93U1ZHLT5zaGFkb3cu
Z2V0KCk7IH0KKyAgICBjb25zdCBMZW5ndGgmIHgoKSBjb25zdCB7IHJldHVybiBsYXlvdXQtPng7
IH0KKyAgICBjb25zdCBMZW5ndGgmIHkoKSBjb25zdCB7IHJldHVybiBsYXlvdXQtPnk7IH0KICAg
ICBTdHJpbmcgY2xpcHBlclJlc291cmNlKCkgY29uc3QgeyByZXR1cm4gcmVzb3VyY2VzLT5jbGlw
cGVyOyB9CiAgICAgU3RyaW5nIGZpbHRlclJlc291cmNlKCkgY29uc3QgeyByZXR1cm4gcmVzb3Vy
Y2VzLT5maWx0ZXI7IH0KICAgICBTdHJpbmcgbWFza2VyUmVzb3VyY2UoKSBjb25zdCB7IHJldHVy
biByZXNvdXJjZXMtPm1hc2tlcjsgfQpAQCAtNDQwLDYgKzQ1Myw3IEBAIHByb3RlY3RlZDoKICAg
ICBEYXRhUmVmPFN0eWxlU3RvcERhdGE+IHN0b3BzOwogICAgIERhdGFSZWY8U3R5bGVNaXNjRGF0
YT4gbWlzYzsKICAgICBEYXRhUmVmPFN0eWxlU2hhZG93U1ZHRGF0YT4gc2hhZG93U1ZHOworICAg
IERhdGFSZWY8U3R5bGVMYXlvdXREYXRhPiBsYXlvdXQ7CiAgICAgRGF0YVJlZjxTdHlsZVJlc291
cmNlRGF0YT4gcmVzb3VyY2VzOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcAppbmRleCA3N2ExYTMwLi5j
MjJjY2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVu
ZGVyU3R5bGVEZWZzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZH
UmVuZGVyU3R5bGVEZWZzLmNwcApAQCAtMiw2ICsyLDcgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CiAgICAgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICAgIENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0ZW1zIElu
Y29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogICAgIEJhc2VkIG9uIGtodG1sIGNv
ZGUgYnk6CiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQpAQCAtMjc2LDQgKzI3NywyOCBAQCBib29sIFN0eWxlSW5oZXJpdGVkUmVzb3VyY2VE
YXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlSW5oZXJpdGVkUmVzb3VyY2VEYXRhJiBvdAogICAg
ICAgICAmJiBtYXJrZXJFbmQgPT0gb3RoZXIubWFya2VyRW5kOwogfQogCitTdHlsZUxheW91dERh
dGE6OlN0eWxlTGF5b3V0RGF0YSgpCisgICAgOiB4KFJlbmRlclN0eWxlOjppbml0aWFsWmVyb0xl
bmd0aCgpKQorICAgICwgeShSZW5kZXJTdHlsZTo6aW5pdGlhbFplcm9MZW5ndGgoKSkKK3sKK30K
KworaW5saW5lIFN0eWxlTGF5b3V0RGF0YTo6U3R5bGVMYXlvdXREYXRhKGNvbnN0IFN0eWxlTGF5
b3V0RGF0YSYgb3RoZXIpCisgICAgOiBSZWZDb3VudGVkPFN0eWxlTGF5b3V0RGF0YT4oKQorICAg
ICwgeChvdGhlci54KQorICAgICwgeShvdGhlci55KQoreworfQorCitQYXNzUmVmPFN0eWxlTGF5
b3V0RGF0YT4gU3R5bGVMYXlvdXREYXRhOjpjb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTdHlsZUxheW91dERhdGEoKnRoaXMpKTsKK30KKworYm9vbCBTdHlsZUxheW91
dERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVMYXlvdXREYXRhJiBvdGhlcikgY29uc3QKK3sK
KyAgICByZXR1cm4geCA9PSBvdGhlci54CisgICAgICAgICYmIHkgPT0gb3RoZXIueTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0
eWxlRGVmcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxl
RGVmcy5oCmluZGV4IDZkYzY2NzguLjYzMjU5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKQEAgLTIsNiArMiw3IEBACiAg
ICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emlt
bWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgogICAgIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTQgQWRv
YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKICAgICBCYXNl
ZCBvbiBraHRtbCBjb2RlIGJ5OgogICAgIENvcHlyaWdodCAoQykgMjAwMC0yMDAzIExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCkBAIC0yOCw2ICsyOSw3IEBACiAjaWZuZGVmIFNWR1JlbmRlclN0
eWxlRGVmc19oCiAjZGVmaW5lIFNWR1JlbmRlclN0eWxlRGVmc19oCiAKKyNpbmNsdWRlICJMZW5n
dGguaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKICNpbmNsdWRlICJTVkdQYWludC5oIgogI2lu
Y2x1ZGUgIlNoYWRvd0RhdGEuaCIKQEAgLTI4OCw2ICsyOTAsMjYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBTdHlsZUluaGVyaXRlZFJlc291cmNlRGF0YShjb25zdCBTdHlsZUluaGVy
aXRlZFJlc291cmNlRGF0YSYpOwogICAgIH07CiAKKyAgICAvLyBQb3NpdGlvbmluZyBhbmQgc2l6
aW5nIHByb3BlcnRpZXMuCisgICAgY2xhc3MgU3R5bGVMYXlvdXREYXRhIDogcHVibGljIFJlZkNv
dW50ZWQ8U3R5bGVMYXlvdXREYXRhPiB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFz
c1JlZjxTdHlsZUxheW91dERhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5
bGVMYXlvdXREYXRhKTsgfQorICAgICAgICBQYXNzUmVmPFN0eWxlTGF5b3V0RGF0YT4gY29weSgp
IGNvbnN0OworCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZUxheW91dERhdGEm
KSBjb25zdDsKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0eWxlTGF5b3V0RGF0YSYg
b3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90
aGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIExlbmd0aCB4OworICAgICAgICBMZW5ndGggeTsK
KworICAgIHByaXZhdGU6ICAgICAgICAKKyAgICAgICAgU3R5bGVMYXlvdXREYXRhKCk7CisgICAg
ICAgIFN0eWxlTGF5b3V0RGF0YShjb25zdCBTdHlsZUxheW91dERhdGEmKTsKKyAgICB9OworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdSZW5kZXJTdHlsZURlZnNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5jcHAKaW5kZXgg
ZjUyODUxOS4uZWE3NzBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1JlY3QuY3BwCkBAIC03Myw3ICs3Myw5IEBAIHZvaWQgUmVuZGVyU1ZHUmVjdDo6dXBk
YXRlU2hhcGVGcm9tRWxlbWVudCgpCiAgICAgICAgIG1fdXNlUGF0aEZhbGxiYWNrID0gZmFsc2U7
CiAgICAgfQogCi0gICAgbV9maWxsQm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoRmxvYXRQb2ludChy
ZWN0RWxlbWVudCgpLngoKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgcmVjdEVsZW1lbnQoKS55KCku
dmFsdWUobGVuZ3RoQ29udGV4dCkpLCBib3VuZGluZ0JveFNpemUpOworICAgIG1fZmlsbEJvdW5k
aW5nQm94ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQobGVuZ3RoQ29udGV4dC52YWx1ZUZvckxlbmd0
aChzdHlsZSgpLnN2Z1N0eWxlKCkueCgpLCBMZW5ndGhNb2RlV2lkdGgpLAorICAgICAgICBsZW5n
dGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkuc3ZnU3R5bGUoKS55KCksIExlbmd0aE1v
ZGVIZWlnaHQpKSwKKyAgICAgICAgYm91bmRpbmdCb3hTaXplKTsKIAogICAgIC8vIFRvIGRlY2lk
ZSBpZiB0aGUgc3Ryb2tlIGNvbnRhaW5zIGEgcG9pbnQgd2UgY3JlYXRlIHR3byByZWN0cyB3aGlj
aCByZXByZXNlbnQgdGhlIGlubmVyIGFuZAogICAgIC8vIHRoZSBvdXRlciBzdHJva2UgYm9yZGVy
cy4gQSBzdHJva2UgY29udGFpbnMgdGhlIHBvaW50LCBpZiB0aGUgcG9pbnQgaXMgYmV0d2VlbiB0
aGVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAppbmRl
eCA4ZGM2NjQxLi43ZTViMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1BhdGhEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1BhdGhEYXRhLmNwcApAQCAtMTE5LDggKzExOSw4IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVBhdGhG
cm9tUmVjdEVsZW1lbnQoU1ZHRWxlbWVudCogZWxlbWVudCwgUGF0aCYgcGF0aCkKICAgICBmbG9h
dCBoZWlnaHQgPSBsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlLmhlaWdodCgpLCBM
ZW5ndGhNb2RlSGVpZ2h0KTsKICAgICBpZiAoaGVpZ2h0IDw9IDApCiAgICAgICAgIHJldHVybjsK
LSAgICBmbG9hdCB4ID0gcmVjdC0+eCgpLnZhbHVlKGxlbmd0aENvbnRleHQpOwotICAgIGZsb2F0
IHkgPSByZWN0LT55KCkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgZmxvYXQgeCA9IGxlbmd0
aENvbnRleHQudmFsdWVGb3JMZW5ndGgoc3R5bGUuc3ZnU3R5bGUoKS54KCksIExlbmd0aE1vZGVX
aWR0aCk7CisgICAgZmxvYXQgeSA9IGxlbmd0aENvbnRleHQudmFsdWVGb3JMZW5ndGgoc3R5bGUu
c3ZnU3R5bGUoKS55KCksIExlbmd0aE1vZGVIZWlnaHQpOwogICAgIGZsb2F0IHJ4ID0gcmVjdC0+
cngoKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBmbG9hdCByeSA9IHJlY3QtPnJ5KCkudmFs
dWUobGVuZ3RoQ29udGV4dCk7CiAgICAgYm9vbCBoYXNSeCA9IHJ4ID4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCmluZGV4IGZkYTE0MDcuLjBmNzc4NDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcApAQCAtMyw2ICszLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgog
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0ZW1zIEluY29ycG9y
YXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCmluZGV4IGQ5NTg1YWYuLjJiYTc2OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKQEAgLTUsNiAr
NSw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlk
LmF1PgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFkb2JlIFN5c3RlbXMg
SW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0zNTUsOCArMzU2LDcgQEAgYm9vbCBTVkdBbmltYXRpb25FbGVtZW50Ojppc0FjY3VtdWxhdGVk
KCkgY29uc3QKIAogYm9vbCBTVkdBbmltYXRpb25FbGVtZW50Ojppc1RhcmdldEF0dHJpYnV0ZUNT
U1Byb3BlcnR5KFNWR0VsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUpCiB7Ci0gICAgLy8gRklYTUU6IE11c3QgYmUgaXNTVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50KGVsZW1lbnQpIGluc3RlYWQuCi0gICAgaWYgKGlzU1ZHVGV4dEVsZW1lbnQoZWxlbWVu
dCkKKyAgICBpZiAoZWxlbWVudC0+aXNUZXh0Q29udGVudCgpCiAgICAgICAgICYmIChhdHRyaWJ1
dGVOYW1lID09IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRyaWJ1dGVOYW1lID09IFNWR05hbWVzOjp5
QXR0cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3Bw
CmluZGV4IDJkMjY2ZjIuLmNlZTMzZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKQEAg
LTE0NCw2ICsxNDQsOCBAQCBzdGF0aWMgTkVWRVJfSU5MSU5FIHZvaWQgcG9wdWxhdGVBdHRyaWJ1
dGVOYW1lVG9DU1NQcm9wZXJ0eUlETWFwKEhhc2hNYXA8QXRvbWljUwogICAgICAgICAmU1ZHTmFt
ZXM6OndpZHRoQXR0ciwKICAgICAgICAgJndvcmRfc3BhY2luZ0F0dHIsCiAgICAgICAgICZ3cml0
aW5nX21vZGVBdHRyLAorICAgICAgICAmeEF0dHIsCisgICAgICAgICZ5QXR0ciwKICAgICB9Owog
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoYXR0cmlidXRl
TmFtZXMpOyArK2kpIHsKQEAgLTI0NCw2ICsyNDYsOCBAQCBzdGF0aWMgTkVWRVJfSU5MSU5FIHZv
aWQgcG9wdWxhdGVDU1NQcm9wZXJ0eVdpdGhTVkdET01OYW1lVG9BbmltYXRlZFByb3BlcnR5VHlw
ZQogICAgIHN0YXRpYyBjb25zdCBUYWJsZUVudHJ5IHRhYmxlW10gPSB7CiAgICAgICAgIHsgU1ZH
TmFtZXM6OmhlaWdodEF0dHIsIEFuaW1hdGVkTGVuZ3RoIH0sCiAgICAgICAgIHsgU1ZHTmFtZXM6
OndpZHRoQXR0ciwgQW5pbWF0ZWRMZW5ndGggfSwKKyAgICAgICAgeyB4QXR0ciwgQW5pbWF0ZWRM
ZW5ndGggfSwKKyAgICAgICAgeyB5QXR0ciwgQW5pbWF0ZWRMZW5ndGggfSwKICAgICB9OwogCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgodGFibGUpOyArK2kp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKaW5kZXggZDMyODk1MS4uOGFi
NzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtNCw2ICs0
LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdt
YWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0ZW1z
IEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMTY4LDE2ICsxNjksMTQgQEAgdm9pZCBTVkdGaWx0ZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogCiAgICAgU1ZHRWxlbWVudElu
c3RhbmNlOjpJbnZhbGlkYXRpb25HdWFyZCBpbnZhbGlkYXRpb25HdWFyZCh0aGlzKTsKIAotICAg
IGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6d2lkdGhBdHRyCisgICAgaWYgKGF0dHJOYW1lID09
IFNWR05hbWVzOjp4QXR0cgorICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6eUF0dHIK
KyAgICAgICAgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0cgogICAgICAgICB8fCBh
dHRyTmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikgewogICAgICAgICBpbnZhbGlkYXRlU1ZH
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIKLSAgICAgICAgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OnlBdHRyKQotICAgICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1h
dGlvbigpOwotCiAgICAgaWYgKFJlbmRlck9iamVjdCogb2JqZWN0ID0gcmVuZGVyZXIoKSkKICAg
ICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNWY3YmIzMC4uYmFmODJiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC0x
LDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQWRvYmUgU3lzdGVtcyBJ
bmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggMzZmY2Q3My4uNTc0ODc2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTIsNiArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5u
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDkgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAo
QykgMjAwNiBBbGV4YW5kZXIgS2VsbGV0dCA8bHlwYW5vdkBrZGUub3JnPgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4dC5j
cHAKaW5kZXggMGFmZWRhMC4uNjlhODYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhD
b250ZXh0LmNwcApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgUmVzZWFy
Y2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNCBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5j
cHAKaW5kZXggYTRmZjhkMi4uNDMxZjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuY3BwCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA1IEFsZXhhbmRlciBL
ZWxsZXR0IDxseXBhbm92QGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1
bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkIDIwMDktMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTM1LDE2ICsxMzYsMTQgQEAgdm9pZCBTVkdNYXNrRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
IAogICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6SW52YWxpZGF0aW9uR3VhcmQgaW52YWxpZGF0aW9u
R3VhcmQodGhpcyk7CiAKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0cgor
ICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIKKyAgICAgICAgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OnlBdHRyCisgICAgICAgIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp3aWR0
aEF0dHIKICAgICAgICAgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpIHsKICAg
ICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyCi0g
ICAgICAgIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp5QXR0cikKLSAgICAgICAgdXBkYXRlUmVs
YXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLQogICAgIGlmIChSZW5kZXJPYmplY3QqIG9iamVj
dCA9IHJlbmRlcmVyKCkpCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCmluZGV4IDQ3NTRkNjYuLmI1YTZk
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcApAQCAtMiw2ICsy
LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBOaWtv
bGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0
IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNjAsMTYgKzE2MSwxNCBA
QCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogCiAgICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnZhbGlkYXRp
b25HdWFyZCBpbnZhbGlkYXRpb25HdWFyZCh0aGlzKTsKIAotICAgIGlmIChhdHRyTmFtZSA9PSBT
VkdOYW1lczo6d2lkdGhBdHRyCisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp4QXR0cgor
ICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6eUF0dHIKKyAgICAgICAgfHwgYXR0ck5h
bWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0cgogICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1l
czo6aGVpZ2h0QXR0cikgewogICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmli
dXRlU3R5bGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6eEF0dHIKLSAgICAgICAgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRy
KQotICAgICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1hdGlvbigpOwotCiAgICAgaWYg
KFJlbmRlck9iamVjdCogb2JqZWN0ID0gcmVuZGVyZXIoKSkKICAgICAgICAgb2JqZWN0LT5zZXRO
ZWVkc0xheW91dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKaW5kZXgg
Yjg2Yjc5My4uYWE4ZDQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAw
OCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMjEsMTUgKzEyMiwxNSBAQCB2b2lkIFNW
R1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogCiAgICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnZhbGlkYXRpb25HdWFyZCBpbnZh
bGlkYXRpb25HdWFyZCh0aGlzKTsKIAotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6d2lk
dGhBdHRyCisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp4QXR0cgorICAgICAgICB8fCBh
dHRyTmFtZSA9PSBTVkdOYW1lczo6eUF0dHIKKyAgICAgICAgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OndpZHRoQXR0cgogICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0
cikgewogICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGJvb2wgaXNMZW5ndGhBdHRyaWJ1dGUgPSBh
dHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRyCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHx8
IGF0dHJOYW1lID09IFNWR05hbWVzOjpyeEF0dHIKKyAgICBib29sIGlzTGVuZ3RoQXR0cmlidXRl
ID0gYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnJ4QXR0cgogICAgICAgICAgICAgICAgICAgICAgICAg
ICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6cnlBdHRyOwogCiAgICAgaWYgKGlzTGVuZ3RoQXR0
cmlidXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IGIwMjQyNjUuLmMx
MzRkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTIsNiArMiw3IEBA
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMTAgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmNwcAppbmRleCA3M2NlNDM1Li42OTAzNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCkBAIC0xLDYgKzEsNyBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0xMTcsNiArMTE4LDIwIEBAIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAordm9pZCBTVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYgc3R5bGUpCit7CisgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyIHx8IG5h
bWUgPT0gU1ZHTmFtZXM6OnlBdHRyKQorICAgICAgICByZXR1cm47CisgICAgU1ZHVGV4dENvbnRl
bnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFs
dWUsIHN0eWxlKTsKK30KKworYm9vbCBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojppc1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAoreworICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjp4QXR0ciB8fCBuYW1lID09IFNWR05hbWVzOjp5QXR0cikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6
OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworfQorCiB2b2lkIFNWR1RleHRQb3NpdGlv
bmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiB7CiAgICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCmluZGV4IGZi
ZDI5ZTIuLmI5ZDllNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlv
bmluZ0VsZW1lbnQuaApAQCAtMzQsNiArMzQsOCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAg
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlIGZpbmFs
OwogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwo=
</data>
<flag name="review"
          id="260008"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>