<?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>41150</bug_id>
          
          <creation_ts>2010-06-24 04:30:04 -0700</creation_ts>
          <short_desc>Improve default value handling of page format properties</short_desc>
          <delta_ts>2010-06-27 19:00:11 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuzo Fujishima">yuzo</reporter>
          <assigned_to name="Yuzo Fujishima">yuzo</assigned_to>
          <cc>hamaji</cc>
    
    <cc>hayato</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>242436</commentid>
    <comment_count>0</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-24 04:30:04 -0700</bug_when>
    <thetext>Programming interface to page format properties was added by
https://bugs.webkit.org/show_bug.cgi?id=37538

But the default values (page size and orientation) were hard-coded.
Also, margins should be returned instead of page rect.
These need to be improved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242444</commentid>
    <comment_count>1</comment_count>
      <attachid>59639</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-24 04:43:29 -0700</bug_when>
    <thetext>Created attachment 59639
Improve default value handling for page format properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242835</commentid>
    <comment_count>2</comment_count>
      <attachid>59639</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-24 22:28:56 -0700</bug_when>
    <thetext>Comment on attachment 59639
Improve default value handling for page format properties.

WebCore/ChangeLog:7
 +          Also, margins should be returned instead of page area rect.
I think you should also mention we need the default paper size to calculate % .

WebCore/css/CSSStyleSelector.h:98
 +          void setDefaultPageSizeInPixels(IntSize s) { m_defaultPageSize = s; }
Maybe we might want to set this value to m_parentElement or m_rootElement (not sure which is more appropriate). Or, could you write a brief comment how we will use m_defaultPageSize?

WebCore/dom/Document.h:487
 +      void pageSizeAndMarginsInPixels(int pageIndex, IntSize&amp; pageSize, int&amp; marginTop, int&amp; marginRight, int&amp; marginBottom, int&amp; marginLeft);
We need a comment here. Copy &amp; paste from WebFrame.h would be sufficient.

WebKit/chromium/public/WebFrame.h:415
 +  
Unnecessary blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242873</commentid>
    <comment_count>3</comment_count>
      <attachid>59739</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-25 00:35:51 -0700</bug_when>
    <thetext>Created attachment 59739
Addressed review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242874</commentid>
    <comment_count>4</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-25 00:39:14 -0700</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #2)
&gt; (From update of attachment 59639 [details])
&gt; WebCore/ChangeLog:7
&gt;  +          Also, margins should be returned instead of page area rect.
&gt; I think you should also mention we need the default paper size to calculate % .

Done.

&gt; 
&gt; WebCore/css/CSSStyleSelector.h:98
&gt;  +          void setDefaultPageSizeInPixels(IntSize s) { m_defaultPageSize = s; }
&gt; Maybe we might want to set this value to m_parentElement or m_rootElement (not sure which is more appropriate). Or, could you write a brief comment how we will use m_defaultPageSize?

On second thought, I should not have tried to resolve auto size in CSSStyleSelector.
I changed the code such that auto page size is resolved in Document just as auto margins are.

&gt; 
&gt; WebCore/dom/Document.h:487
&gt;  +      void pageSizeAndMarginsInPixels(int pageIndex, IntSize&amp; pageSize, int&amp; marginTop, int&amp; marginRight, int&amp; marginBottom, int&amp; marginLeft);
&gt; We need a comment here. Copy &amp; paste from WebFrame.h would be sufficient.
&gt; 

Done.

&gt; WebKit/chromium/public/WebFrame.h:415
&gt;  +  
&gt; Unnecessary blank line.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242880</commentid>
    <comment_count>5</comment_count>
      <attachid>59739</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-25 00:54:16 -0700</bug_when>
    <thetext>Comment on attachment 59739
Addressed review comments.

Looks good. A few nitpicks:

WebCore/css/CSSStyleSelector.cpp:5517
 +      m_style-&gt;setPageSizeType(PAGE_SIZE_UNDEFINED);
The standard way would be to define RenderStyle::resetPageSizeType

WebCore/dom/Document.cpp:1518
 +      case PAGE_SIZE_UNDEFINED:
Can this happen? If not, we might want ASSERT_NOT_REACHED. Otherwise, we might not need PAGE_SIZE_UNDEFINED and we can just use PAGE_SIZE_AUTO as the initial value of pageSizeType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242894</commentid>
    <comment_count>6</comment_count>
      <attachid>59743</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-25 02:05:16 -0700</bug_when>
    <thetext>Created attachment 59743
Addressed second set of review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242895</commentid>
    <comment_count>7</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-25 02:07:12 -0700</bug_when>
    <thetext>Thank you again for the review.

(In reply to comment #5)
&gt; (From update of attachment 59739 [details])
&gt; Looks good. A few nitpicks:
&gt; 
&gt; WebCore/css/CSSStyleSelector.cpp:5517
&gt;  +      m_style-&gt;setPageSizeType(PAGE_SIZE_UNDEFINED);
&gt; The standard way would be to define RenderStyle::resetPageSizeType

Done.

&gt; 
&gt; WebCore/dom/Document.cpp:1518
&gt;  +      case PAGE_SIZE_UNDEFINED:
&gt; Can this happen? If not, we might want ASSERT_NOT_REACHED. Otherwise, we might not need PAGE_SIZE_UNDEFINED and we can just use PAGE_SIZE_AUTO as the initial value of pageSizeType.

Removed PAGE_SIZE_UNDEFINED and used PAGE_SIZE_AUTO.

Also updated LayoutTests/printing/page-rule-selection{.html,-expected.txt} to be consistent
with the new default page size value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242943</commentid>
    <comment_count>8</comment_count>
      <attachid>59743</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-25 04:15:09 -0700</bug_when>
    <thetext>Comment on attachment 59743
Addressed second set of review comments.

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243532</commentid>
    <comment_count>9</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-27 19:00:11 -0700</bug_when>
    <thetext>Committed r61975: &lt;http://trac.webkit.org/changeset/61975&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59639</attachid>
            <date>2010-06-24 04:43:29 -0700</date>
            <delta_ts>2010-06-25 00:35:46 -0700</delta_ts>
            <desc>Improve default value handling for page format properties.</desc>
            <filename>bug-41150-20100624044327.patch</filename>
            <type>text/plain</type>
            <size>53585</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNGU5MWQyMjZkYzQ2OTU4ZDcyN2Q4Y2U1Y2MyYjBmMTk5M2I1ZmM0Li41MzQ2OTVk
YjUxOTU3NDNhYmQ0ZjYzMjQ0ZmYwNjZhODMyN2VkYzY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDYtMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZGVmYXVsdCB2
YWx1ZSBoYW5kbGluZyBmb3IgcGFnZSBmb3JtYXQgcHJvcGVydGllcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTUwCisKKyAgICAgICAgKiBwcmlu
dGluZy9wYWdlLWZvcm1hdC1kYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwcmludGluZy9w
YWdlLWZvcm1hdC1kYXRhLmh0bWw6CisKIDIwMTAtMDYtMjMgIE9saXZlciBIdW50ICA8b2xpdmVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS1leHBlY3RlZC50eHQK
aW5kZXggYmQxY2E1NGY3ZTlmYmVlZmU3ZTJjYTc3OGVkNTg3ODcyYjk1MjU1My4uZDY2MmJkOThj
OTVkMWIxNGQyYTMxYjFkNDM1MzI0ZjMxMzI3M2MzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS1leHBlY3RlZC50eHQKQEAgLTE1LDU4ICsxNSw2OCBA
QCBUZXN0IHZpc2liaWxpdHk6IHZpc2libGUKIFBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuaXNQ
YWdlQm94VmlzaWJsZSgwKSBpcyB0cnVlCiAKIFRlc3QgZGVmYXVsdCBwYWdlIHNpemUKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBpbmNo
U2l6ZSg4LjUsIDExKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAsIDIwMCknICsgcHhN
YXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGF1dG8gcGFnZSBzaXplCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgaW5jaFNpemUoOC41LCAx
MSkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAy
LCAzLCA0KQogVGVzdCBsYW5kc2NhcGUKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVy
cmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBpbmNoU2l6ZSgxMSwgOC41KQorUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkgaXMgJygyMDAsIDEwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDIwMCwgMTAw
LCAxLCAyLCAzLCA0KSBpcyAnKDIwMCwgMTAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRl
c3QgcG9ydHJhaXQKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJ
blBpeGVscygwKSBpcyBpbmNoU2l6ZSg4LjUsIDExKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMg
JygxMDAsIDIwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDIwMCwgMTAwLCAxLCAyLCAzLCA0
KSBpcyAnKDEwMCwgMjAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgYTUKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNp
emUoMTQ4LCAyMTApCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMTQ4LCAyMTApICsg
cHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGE1IGxhbmRzY2FwZQotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIG1tU2l6ZSgyMTAsIDE0
OCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgyMTAsIDE0OCkgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkKIFRlc3QgcG9ydHJhaXQgYTQKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNpemUoMjEwLCAyOTcpCitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAw
LCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMjEwLCAyOTcpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQp
CiBUZXN0IGEzCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5Q
aXhlbHMoMCkgaXMgbW1TaXplKDI5NywgNDIwKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5w
YWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1T
aXplKDI5NywgNDIwKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBiNQotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIG1tU2l6ZSgx
NzYsIDI1MCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5Q
aXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgxNzYsIDI1MCkgKyBweE1h
cmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgYjQKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJl
ZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNpemUoMjUwLCAzNTMpCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSBpcyBtbVNpemUoMjUwLCAzNTMpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBU
ZXN0IGxldHRlcgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUlu
UGl4ZWxzKDApIGlzIGluY2hTaXplKDguNSwgMTEpCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBp
bmNoU2l6ZSg4LjUsIDExKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBsZWdhbAotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIGlu
Y2hTaXplKDguNSwgMTQpCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFy
Z2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBpbmNoU2l6ZSg4LjUsIDE0
KSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBsZWRnZXIKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBpbmNoU2l6ZSgxMSwgMTcp
CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAs
IDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBpbmNoU2l6ZSgxMSwgMTcpICsgcHhNYXJnaW5zKDEs
IDIsIDMsIDQpCiBUZXN0IDEwY20KLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVk
UGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNpemUoMTAwLCAxMDApCitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAz
LCA0KSBpcyBtbVNpemUoMTAwLCAxMDApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IDIw
Y20geCAzMGNtCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5Q
aXhlbHMoMCkgaXMgbW1TaXplKDIwMCwgMzAwKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5w
YWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1T
aXplKDIwMCwgMzAwKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCAxMDAwMHB4IDIwMDAw
cHgKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygw
KSBpcyAnKDEwMDAwLDIwMDAwKScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIw
MDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgaW52YWxpZCBwYWdlIHNpemU6IC0x
MGNtCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMo
MCkgaXMgJygxMDAwMCwyMDAwMCknCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXpl
QW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAy
MDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGludmFsaWQgcGFnZSBzaXplOiBh
NCBhNAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxz
KDApIGlzICcoMTAwMDAsMjAwMDApJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6
ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwg
MjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTog
bGFuZHNjYXBlIHBvcnRyYWl0Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBh
Z2VTaXplSW5QaXhlbHMoMCkgaXMgJygxMDAwMCwyMDAwMCknCitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0
KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGludmFs
aWQgcGFnZSBzaXplOiAxMGNtIGxldHRlcgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVm
ZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzICcoMTAwMDAsMjAwMDApJworUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVz
dCBpbnZhbGlkIHBhZ2Ugc2l6ZTogMTBjbSAxMGNtIDEwY20KLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyAnKDEwMDAwLDIwMDAwKScKK1BB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAw
LCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwg
MywgNCkKIFRlc3QgaW52YWxpZCBwYWdlIHNpemU6IGVtcHR5Ci1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgJygxMDAwMCwyMDAwMCknCitQ
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEw
MCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIs
IDMsIDQpCiAKLVRlc3QgcGFnZSBhcmVhIHdoZW4gbWFyZ2luLCBwYWRkaW5nLCBhbmQgYm9yZGVy
IGFyZSAwcHgKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZUFyZWFSZWN0SW5QaXhlbHMo
MCkgaXMgJygwLDAsMTAwMDAsMjAwMDApJwotVGVzdCBub24temVybyBtYXJnaW4sIHBhZGRpbmcs
IGFuZCBib3JkZXIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZUFyZWFSZWN0SW5QaXhl
bHMoMCkgaXMgJygyMTg0LDI3Myw3MjcwLDE4NjM1KScKLVRlc3QgcGVyY2VudGFnZSBtYXJnaW4g
YW5kIHBhZGRpbmcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZUFyZWFSZWN0SW5QaXhl
bHMoMCkgaXMgJygxNTAwLDI1MDAsNzAwMCwxNTAwMCknCitUZXN0IDBweCBtYXJnaW5zCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwg
MjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDAsIDAsIDAs
IDApCitUZXN0IG5vbi16ZXJvIG1hcmdpbnMKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFn
ZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAw
MDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMTAsIDIwLCA0MCwgODApCitUZXN0IHBlcmNlbnRhZ2Ug
bWFyZ2luCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJn
aW5zKDgwMCwgNDAwLCAyMDAsIDEwMCkKK1Rlc3QgbWFyZ2luOiBhdXRvIDQlIDIlIDElCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwg
MjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDQwMCwg
MjAwLCAxMDApCitUZXN0IG1hcmdpbjogOCUgYXV0byAyJSAxJQorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywg
NCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDIsIDIwMCwgMTAwKQorVGVz
dCBtYXJnaW46IDglIDQlIGF1dG8gMSUKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAs
IDIwMDAwKScgKyBweE1hcmdpbnMoODAwLCA0MDAsIDMsIDEwMCkKK1Rlc3QgbWFyZ2luOiA4JSA0
JSAyJSBhdXRvCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhN
YXJnaW5zKDgwMCwgNDAwLCAyMDAsIDQpCiBUZXN0IHZpc2liaWxpdHk6IGhpZGRlbgotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5wYWdlQXJlYVJlY3RJblBpeGVscygwKSBpcyAnKDE1MDAsMjUw
MCw3MDAwLDE1MDAwKScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJn
aW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScg
KyBweE1hcmdpbnMoODAwLCA0MDAsIDIwMCwgNCkKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWZvcm1hdC1k
YXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWZvcm1hdC1kYXRhLmh0bWwKaW5k
ZXggZDEzZGNkYjY4NmU4YzAxMjcxYjE5ZTgyODE5Yzg4YzhlOWZkNmVlZC4uZjMwNWMyOGQ1MTAw
OGM0OWVhYTBjY2JkNzRiYWQzMWE1N2FmYzJhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJp
bnRpbmcvcGFnZS1mb3JtYXQtZGF0YS5odG1sCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3Bh
Z2UtZm9ybWF0LWRhdGEuaHRtbApAQCAtMjEsMTIgKzIxLDE3IEBACiAKICAgICBmdW5jdGlvbiBp
bmNoU2l6ZSh3aWR0aCwgaGVpZ2h0KQogICAgIHsKLSAgICAgICAgcmV0dXJuICIoIiArIE1hdGgu
Zmxvb3Iod2lkdGggKiA5NikgKyAiLCIgKyBNYXRoLmZsb29yKGhlaWdodCAqIDk2KSArICIpIjsK
KyAgICAgICAgcmV0dXJuICIoIiArIE1hdGguZmxvb3Iod2lkdGggKiA5NikgKyAiLCAiICsgTWF0
aC5mbG9vcihoZWlnaHQgKiA5NikgKyAiKSI7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gbW1TaXpl
KHdpZHRoLCBoZWlnaHQpCiAgICAgewotICAgICAgICByZXR1cm4gIigiICsgTWF0aC5mbG9vcih3
aWR0aCAqIDk2IC8gMjUuNCkgKyAiLCIgKyBNYXRoLmZsb29yKGhlaWdodCAqIDk2IC8gMjUuNCkg
KyAiKSI7CisgICAgICAgIHJldHVybiAiKCIgKyBNYXRoLmZsb29yKHdpZHRoICogOTYgLyAyNS40
KSArICIsICIgKyBNYXRoLmZsb29yKGhlaWdodCAqIDk2IC8gMjUuNCkgKyAiKSI7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcHhNYXJnaW5zKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCkKKyAgICB7
CisgICAgICAgIHJldHVybiAiICIgKyB0b3AgKyAiICIgKyByaWdodCArICIgIiArIGJvdHRvbSAr
ICIgIiArIGxlZnQ7CiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewpAQCAtNTgsMTExICs2MywxMjkgQEAKICAgICAgICAgLy8gUGFnZSBzaXplIHRlc3RzCiAK
ICAgICAgICAgZGVidWcoIlRlc3QgZGVmYXVsdCBwYWdlIHNpemUiKTsKLSAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAi
aW5jaFNpemUoOC41LCAxMSkiKTsgLy8gTGV0dGVyCisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkiLCAiJygxMDAsIDIwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAg
ICAgICAgZGVidWcoIlRlc3QgYXV0byBwYWdlIHNpemUiKTsKICAgICAgICAgYXBwZW5kU3R5bGUo
IkBwYWdlIHtzaXplOmF1dG87fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSIsICJpbmNoU2l6ZSg4LjUsIDExKSIp
OworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJn
aW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwLCAyMDApJyArIHB4
TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGxhbmRzY2FwZSIp
OwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6bGFuZHNjYXBlO30iKTsKLSAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhl
bHMoMCkiLCAiaW5jaFNpemUoMTEsIDguNSkiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAy
LCAzLCA0KSIsICInKDIwMCwgMTAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDIwMCwgMTAwLCAxLCAyLCAzLCA0KSIsICInKDIwMCwgMTAwKScgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBwb3J0cmFpdCIpOwogICAgICAg
ICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6cG9ydHJhaXQ7fSIpOwotICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSIsICJp
bmNoU2l6ZSg4LjUsIDExKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwg
IicoMTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOworICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMjAw
LCAxMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0
KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGE1Iik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJA
cGFnZSB7c2l6ZTphNTt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIm1tU2l6ZSgxNDgsIDIxMCkiKTsKKyAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUoMTQ4LCAyMTApICsgcHhN
YXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgYTUgbGFuZHNjYXBl
Iik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTphNSBsYW5kc2NhcGU7fSIpOwot
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJ
blBpeGVscygwKSIsICJtbVNpemUoMjEwLCAxNDgpIik7CisgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwg
MSwgMiwgMywgNCkiLCAibW1TaXplKDIxMCwgMTQ4KSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIp
OwogCiAgICAgICAgIGRlYnVnKCJUZXN0IHBvcnRyYWl0IGE0Iik7CiAgICAgICAgIGFwcGVuZFN0
eWxlKCJAcGFnZSB7c2l6ZTpwb3J0cmFpdCBhNDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIm1tU2l6ZSgy
MTAsIDI5NykiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUo
MjEwLCAyOTcpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRl
c3QgYTMiKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOmEzO30iKTsKLSAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhl
bHMoMCkiLCAibW1TaXplKDI5NywgNDIwKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIs
IDMsIDQpIiwgIm1tU2l6ZSgyOTcsIDQyMCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAog
ICAgICAgICBkZWJ1ZygiVGVzdCBiNSIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3Np
emU6YjU7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVy
cmVkUGFnZVNpemVJblBpeGVscygwKSIsICJtbVNpemUoMTc2LCAyNTApIik7CisgICAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygw
LCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAibW1TaXplKDE3NiwgMjUwKSArIHB4TWFyZ2lucygx
LCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGI0Iik7CiAgICAgICAgIGFwcGVu
ZFN0eWxlKCJAcGFnZSB7c2l6ZTpiNDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIm1tU2l6ZSgyNTAsIDM1
MykiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUoMjUwLCAz
NTMpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgbGV0
dGVyIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTpsZXR0ZXI7fSIpOwotICAg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBp
eGVscygwKSIsICJpbmNoU2l6ZSg4LjUsIDExKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEs
IDIsIDMsIDQpIiwgImluY2hTaXplKDguNSwgMTEpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7
CiAKICAgICAgICAgZGVidWcoIlRlc3QgbGVnYWwiKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBw
YWdlIHtzaXplOmxlZ2FsO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiaW5jaFNpemUoOC41LCAxNCkiKTsK
KyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJpbmNoU2l6ZSg4LjUsIDE0KSAr
IHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGxlZGdlciIp
OwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6bGVkZ2VyO30iKTsKLSAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMo
MCkiLCAiaW5jaFNpemUoMTEsIDE3KSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMs
IDQpIiwgImluY2hTaXplKDExLCAxNykgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAg
ICAgICBkZWJ1ZygiVGVzdCAxMGNtIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6
ZToxMGNtO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZl
cnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAibW1TaXplKDEwMCwgMTAwKSIpOworICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIm1tU2l6ZSgxMDAsIDEwMCkgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCAyMGNtIHggMzBjbSIpOwogICAg
ICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6MjBjbSAzMGNtO30iKTsKLSAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCki
LCAibW1TaXplKDIwMCwgMzAwKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQp
IiwgIm1tU2l6ZSgyMDAsIDMwMCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAg
ICBkZWJ1ZygiVGVzdCAxMDAwMHB4IDIwMDAwcHgiKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBw
YWdlIHtzaXplOjEwMDAwcHggMjAwMDBweDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIicoMTAwMDAsMjAw
MDApJyIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIw
MDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBp
bnZhbGlkIHBhZ2Ugc2l6ZTogLTEwY20iKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtz
aXplOi0xMGNtO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBy
ZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiJygxMDAwMCwyMDAwMCknIik7CisgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lu
cygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGludmFsaWQgcGFnZSBzaXpl
OiBhNCBhNCIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6YTQgYTQ7fSIpOwot
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJ
blBpeGVscygwKSIsICInKDEwMDAwLDIwMDAwKSciKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7
CiAKICAgICAgICAgZGVidWcoIlRlc3QgaW52YWxpZCBwYWdlIHNpemU6IGxhbmRzY2FwZSBwb3J0
cmFpdCIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6bGFuZHNjYXBlIHBvcnRy
YWl0O30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJl
ZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiJygxMDAwMCwyMDAwMCknIik7CisgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAy
LCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGludmFsaWQgcGFnZSBzaXplOiAxMGNt
IGxldHRlciIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6MTBjbSBsZXR0ZXI7
fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFn
ZVNpemVJblBpeGVscygwKSIsICInKDEwMDAwLDIwMDAwKSciKTsKKyAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwg
MjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMs
IDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgaW52YWxpZCBwYWdlIHNpemU6IDEwY20gMTBj
bSAxMGNtIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZToxMGNtIDEwY20gMTBj
bTt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQ
YWdlU2l6ZUluUGl4ZWxzKDApIiwgIicoMTAwMDAsMjAwMDApJyIpOworICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAw
LCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwg
MywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTogZW1wdHki
KTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOjt9Iik7Ci0gICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwg
IicoMTAwMDAsMjAwMDApJyIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwg
IicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAgICBk
ZWJ1ZygiIik7CiAKLSAgICAgICAgLy8gUGFnZSBhcmVhIHRlc3RzCisgICAgICAgIC8vIE1hcmdp
biB0ZXN0cworCisgICAgICAgIGRlYnVnKCJUZXN0IDBweCBtYXJnaW5zIik7CisgICAgICAgIGFw
cGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2luOjBweDt9Iik7CisgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwg
MSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygwLCAwLCAwLCAwKSIp
OworCisgICAgICAgIGRlYnVnKCJUZXN0IG5vbi16ZXJvIG1hcmdpbnMiKTsKKyAgICAgICAgYXBw
ZW5kU3R5bGUoIkBwYWdlIHttYXJnaW46MTBweCAyMHB4IDQwcHggODBweDt9Iik7CisgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lu
cygxMCwgMjAsIDQwLCA4MCkiKTsKKworICAgICAgICBkZWJ1ZygiVGVzdCBwZXJjZW50YWdlIG1h
cmdpbiIpOworICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge21hcmdpbjogOCUgNCUgMiUgMSU7
fSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRN
YXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAw
KScgKyBweE1hcmdpbnMoODAwLCA0MDAsIDIwMCwgMTAwKSIpOworCisgICAgICAgIGRlYnVnKCJU
ZXN0IG1hcmdpbjogYXV0byA0JSAyJSAxJSIpOworICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Ug
e21hcmdpbjogYXV0byA0JSAyJSAxJTt9Iik7CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCA0MDAsIDIwMCwgMTAwKSIp
OwogCi0gICAgICAgIGRlYnVnKCJUZXN0IHBhZ2UgYXJlYSB3aGVuIG1hcmdpbiwgcGFkZGluZywg
YW5kIGJvcmRlciBhcmUgMHB4Iik7Ci0gICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2lu
OjBweDtwYWRkaW5nOjBweDtib3JkZXI6MHB4O30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VBcmVhUmVjdEluUGl4ZWxzKDApIiwgIicoMCwwLDEwMDAwLDIw
MDAwKSciKTsKKyAgICAgICAgZGVidWcoIlRlc3QgbWFyZ2luOiA4JSBhdXRvIDIlIDElIik7Cisg
ICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2luOiA4JSBhdXRvIDIlIDElO30iKTsKKyAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhN
YXJnaW5zKDgwMCwgMiwgMjAwLCAxMDApIik7CiAKLSAgICAgICAgZGVidWcoIlRlc3Qgbm9uLXpl
cm8gbWFyZ2luLCBwYWRkaW5nLCBhbmQgYm9yZGVyIik7Ci0gICAgICAgIGFwcGVuZFN0eWxlKCJA
cGFnZSB7bWFyZ2luOjFweCAycHggNHB4IDhweDsgcGFkZGluZzoxNnB4IDMycHggNjRweCAxMjhw
eDsgYm9yZGVyLXdpZHRoOjI1NnB4IDUxMnB4IDEwMjRweCAyMDQ4cHg7fSIpOyAvLyB0b3AsIHJp
Z2h0LCBib3R0b20sIGxlZnQKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LnBhZ2VBcmVhUmVjdEluUGl4ZWxzKDApIiwgIicoMjE4NCwyNzMsNzI3MCwxODYzNSknIik7Cisg
ICAgICAgIGRlYnVnKCJUZXN0IG1hcmdpbjogOCUgNCUgYXV0byAxJSIpOworICAgICAgICBhcHBl
bmRTdHlsZSgiQHBhZ2Uge21hcmdpbjogOCUgNCUgYXV0byAxJTt9Iik7CisgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAs
IDQwMCwgMywgMTAwKSIpOwogCi0gICAgICAgIGRlYnVnKCJUZXN0IHBlcmNlbnRhZ2UgbWFyZ2lu
IGFuZCBwYWRkaW5nIik7Ci0gICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2luOjIwJSAx
MCU7IHBhZGRpbmc6NSU7IGJvcmRlci13aWR0aDowcHg7fSIpOwotICAgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZUFyZWFSZWN0SW5QaXhlbHMoMCkiLCAiJygxNTAwLDI1
MDAsNzAwMCwxNTAwMCknIik7CisgICAgICAgIGRlYnVnKCJUZXN0IG1hcmdpbjogOCUgNCUgMiUg
YXV0byIpOworICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge21hcmdpbjogOCUgNCUgMiUgYXV0
bzt9Iik7CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAw
MDApJyArIHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAwLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJU
ZXN0IHZpc2liaWxpdHk6IGhpZGRlbiIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3Zp
c2liaWxpdHk6aGlkZGVufSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZUFyZWFSZWN0SW5QaXhlbHMoMCkiLCAiJygxNTAwLDI1MDAsNzAwMCwxNTAwMCknIik7
CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyAr
IHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAwLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCIiKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZTBmZjlhNWIwOTJkMWY1YmU3NWYxMTM5NGRhMjM4YWEzYjBjNTEzLi45MGU0ZGI3NGRiZDQ1MGUx
OTUxZGNmYWY2MjlhMjU0OTkwZTdlOWRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEwLTA2LTI0ICBZdXpv
IEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIGRlZmF1bHQgdmFsdWUgaGFuZGxpbmcgZm9y
IHBhZ2UgZm9ybWF0IHByb3BlcnRpZXMuCisgICAgICAgIERlZmF1bHQgcGFnZSBzaXplIGFuZCBv
cmllbnRhdGlvbiBoYXZlIGJlZW4gaGFyZC1jb2RlZC4KKyAgICAgICAgQWxzbywgbWFyZ2lucyBz
aG91bGQgYmUgcmV0dXJuZWQgaW5zdGVhZCBvZiBwYWdlIGFyZWEgcmVjdC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTUwCisKKyAgICAgICAgKiBX
ZWJDb3JlLmJhc2UuZXhwOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UGFnZVNpemVQcm9wZXJ0eSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpwYWdlU2l6ZUZyb21OYW1lKToK
KyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVTZWxlY3Rvcjo6c2V0RGVmYXVsdFBhZ2VTaXplSW5QaXhlbHMpOgorICAgICAgICAqIGNz
cy9odG1sLmNzczoKKyAgICAgICAgKEBwYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL1ByaW50Q29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKToKKyAgICAgICAgKiBwYWdlL1ByaW50Q29udGV4dC5oOgorCiAyMDEwLTA2LTIy
ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIv
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IDI3NDRmZThiOWQwMzYxMTc4ZjVmOWNiODMy
OWU3MjRmNTYxMjRhMjEuLmI5YTE0NzRlMjk2MzE4MDNlZmE1ZmJmMjYyZWFhY2E1Y2JkZjdjYzIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNv
cmUuYmFzZS5leHAKQEAgLTI1MSw5ICsyNTEsOCBAQCBfX1pON1dlYkNvcmUxMlBsdWdpbldpZGdl
dDE0aW52YWxpZGF0ZVJlY3RFUktOU183SW50UmVjdEUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250
ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBfX1pON1dlYkNvcmUxMlByaW50Q29u
dGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2Vi
Q29yZTEyUHJpbnRDb250ZXh0MTZpc1BhZ2VCb3hWaXNpYmxlRVBOU181RnJhbWVFaQotX19aTjdX
ZWJDb3JlMTJQcmludENvbnRleHQyMHBhZ2VBcmVhUmVjdEluUGl4ZWxzRVBOU181RnJhbWVFaQog
X19aTjdXZWJDb3JlMTJQcmludENvbnRleHQyMHBhZ2VOdW1iZXJGb3JFbGVtZW50RVBOU183RWxl
bWVudEVSS05TXzlGbG9hdFNpemVFCi1fX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDI1cHJlZmVy
cmVkUGFnZVNpemVJblBpeGVsc0VQTlNfNUZyYW1lRWkKK19fWk43V2ViQ29yZTEyUHJpbnRDb250
ZXh0MjZwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0VQTlNfNUZyYW1lRWlpaWlpaWkKIF9fWk43
V2ViQ29yZTEyUHJpbnRDb250ZXh0Mjhjb21wdXRlUGFnZVJlY3RzV2l0aFBhZ2VTaXplRVJLTlNf
OUZsb2F0U2l6ZUViCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dEMxRVBOU181RnJhbWVFCiBf
X1pON1dlYkNvcmUxMlByaW50Q29udGV4dEQxRXYKQEAgLTYyOCwxMSArNjI3LDEwIEBAIF9fWk43
V2ViQ29yZThEb2N1bWVudDE0c2V0Rm9jdXNlZE5vZGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5v
ZGVFRUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDE2aXNQYWdlQm94VmlzaWJsZUVpCiBfX1pON1dl
YkNvcmU4RG9jdW1lbnQxN2dldEZvY3VzYWJsZU5vZGVzRVJOM1dURjZWZWN0b3JJTlMxXzZSZWZQ
dHJJTlNfNE5vZGVFRUVMbTBFRUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDE5YWNjZXNzU1ZHRXh0
ZW5zaW9uc0V2Ci1fX1pON1dlYkNvcmU4RG9jdW1lbnQyMHBhZ2VBcmVhUmVjdEluUGl4ZWxzRWkK
IF9fWk43V2ViQ29yZThEb2N1bWVudDIyY3JlYXRlRG9jdW1lbnRGcmFnbWVudEV2CiBfX1pON1dl
YkNvcmU4RG9jdW1lbnQyM3JlbmRlcmVkUmVjdHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJr
ZXIxME1hcmtlclR5cGVFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyNHNldFNob3VsZENyZWF0ZVJl
bmRlcmVyc0ViCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQyNXByZWZlcnJlZFBhZ2VTaXplSW5QaXhl
bHNFaQorX19aTjdXZWJDb3JlOERvY3VtZW50MjZwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0Vp
Uk5TXzdJbnRTaXplRVJpUzNfUzNfUzNfCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQzNnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0V2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ0aGVh
ZEV2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGFEMUV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmlu
ZGV4IGFhMDEwZmQ3ZTk3Y2U1ZjFjMTM0MmVkNzBmYzExMjFhZTczNTZmNDIuLjQyMjZlMDk1MjU2
MzVjZDE0MWQxZjE1MTEzNjY1ODMwMWQ1MDBhMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQ1NTQm9yZGVySW1hZ2VWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkNTU0N1cnNvckltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUu
aCIKLSNpbmNsdWRlICJDU1NIZWxwZXIuaCIKICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCiAj
aW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKQEAgLTU1
MTgsOCArNTUxNyw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQYWdlU2l6ZVByb3Bl
cnR5KENTU1ZhbHVlKiB2YWx1ZSkKICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQogICAg
ICAgICByZXR1cm47CiAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxD
U1NWYWx1ZUxpc3QqPih2YWx1ZSk7Ci0gICAgTGVuZ3RoIHdpZHRoOwotICAgIExlbmd0aCBoZWln
aHQ7CisgICAgTGVuZ3RoIHdpZHRoKG1fZGVmYXVsdFBhZ2VTaXplLndpZHRoKCksIEZpeGVkKTsK
KyAgICBMZW5ndGggaGVpZ2h0KG1fZGVmYXVsdFBhZ2VTaXplLmhlaWdodCgpLCBGaXhlZCk7CiAg
ICAgc3dpdGNoICh2YWx1ZUxpc3QtPmxlbmd0aCgpKSB7CiAgICAgY2FzZSAyOiB7CiAgICAgICAg
IC8vIDxsZW5ndGg+ezJ9IHwgPHBhZ2Utc2l6ZT4gPG9yaWVudGF0aW9uPgpAQCAtNTU5Myw2OCAr
NTU5Miw2NCBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OnBhZ2VTaXplRnJvbU5hbWUoQ1NTUHJp
bWl0aXZlVmFsdWUqIHBhZ2VTaXplTmFtZSwgQ1NTUHJpbQogICAgIHN0YXRpYyBjb25zdCBMZW5n
dGggbGVnYWxXaWR0aCA9IGluY2hMZW5ndGgoOC41KSwgbGVnYWxIZWlnaHQgPSBpbmNoTGVuZ3Ro
KDE0KTsKICAgICBzdGF0aWMgY29uc3QgTGVuZ3RoIGxlZGdlcldpZHRoID0gaW5jaExlbmd0aCgx
MSksIGxlZGdlckhlaWdodCA9IGluY2hMZW5ndGgoMTcpOwogCi0gICAgLy8gRklYTUU6IERlZmlu
ZSBVQSBkZWZhdWx0IHBhZ2Ugc2l6ZS4gQXNzdW1lIGxldHRlciBmb3Igbm93LgotICAgIGludCBp
ZGVudCA9IENTU1ZhbHVlTGV0dGVyOwogICAgIGlmIChwYWdlU2l6ZU5hbWUpIHsKICAgICAgICAg
aWYgKHBhZ2VTaXplTmFtZS0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfSURFTlQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlkZW50ID0gcGFn
ZVNpemVOYW1lLT5nZXRJZGVudCgpOworICAgICAgICBzd2l0Y2ggKHBhZ2VTaXplTmFtZS0+Z2V0
SWRlbnQoKSkgeworICAgICAgICBjYXNlIENTU1ZhbHVlQTU6CisgICAgICAgICAgICB3aWR0aCA9
IGE1V2lkdGg7CisgICAgICAgICAgICBoZWlnaHQgPSBhNUhlaWdodDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlQTQ6CisgICAgICAgICAgICB3aWR0aCA9IGE0V2lk
dGg7CisgICAgICAgICAgICBoZWlnaHQgPSBhNEhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIENTU1ZhbHVlQTM6CisgICAgICAgICAgICB3aWR0aCA9IGEzV2lkdGg7Cisg
ICAgICAgICAgICBoZWlnaHQgPSBhM0hlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIENTU1ZhbHVlQjU6CisgICAgICAgICAgICB3aWR0aCA9IGI1V2lkdGg7CisgICAgICAg
ICAgICBoZWlnaHQgPSBiNUhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1ZhbHVlQjQ6CisgICAgICAgICAgICB3aWR0aCA9IGI0V2lkdGg7CisgICAgICAgICAgICBo
ZWlnaHQgPSBiNEhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Zh
bHVlTGV0dGVyOgorICAgICAgICAgICAgd2lkdGggPSBsZXR0ZXJXaWR0aDsKKyAgICAgICAgICAg
IGhlaWdodCA9IGxldHRlckhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1ZhbHVlTGVnYWw6CisgICAgICAgICAgICB3aWR0aCA9IGxlZ2FsV2lkdGg7CisgICAgICAg
ICAgICBoZWlnaHQgPSBsZWdhbEhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1ZhbHVlTGVkZ2VyOgorICAgICAgICAgICAgd2lkdGggPSBsZWRnZXJXaWR0aDsKKyAg
ICAgICAgICAgIGhlaWdodCA9IGxlZGdlckhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAg
fQogCi0gICAgLy8gRklYTUU6IERlZmluZSBVQSBkZWZhdWx0IHBhZ2Ugb3JpZW50YXRpb24uIEFz
c3VtZSBwb3J0cmFpdCBmb3Igbm93LgotICAgIGJvb2wgcG9ydHJhaXQgPSB0cnVlOwogICAgIGlm
IChwYWdlT3JpZW50YXRpb24pIHsKICAgICAgICAgaWYgKHBhZ2VPcmllbnRhdGlvbi0+cHJpbWl0
aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIHN3aXRjaCAocGFnZU9yaWVudGF0aW9uLT5nZXRJZGVudCgp
KSB7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVMYW5kc2NhcGU6Ci0gICAgICAgICAgICBwb3J0cmFp
dCA9IGZhbHNlOworICAgICAgICAgICAgLy8gVUEgbWF5IHNwZWNpZnkgZGVmYXVsdCBwYWdlIHNp
emUgd2hlcmUgd2lkdGggPiBoZWlnaHQuIERvbid0IHJvdGF0ZSBpbiB0aGF0IGNhc2UuCisgICAg
ICAgICAgICBpZiAod2lkdGguY2FsY1ZhbHVlKDApIDwgaGVpZ2h0LmNhbGNWYWx1ZSgwKSkKKyAg
ICAgICAgICAgICAgICBzd2FwKHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVQb3J0cmFpdDoKLSAgICAgICAgICAgIHBvcnRyYWl0ID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmICh3aWR0aC5jYWxjVmFsdWUoMCkgPiBoZWlnaHQuY2FsY1ZhbHVl
KDApKQorICAgICAgICAgICAgICAgIHN3YXAod2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQogICAgIH0KLSAgICBzd2l0Y2ggKGlkZW50KSB7Ci0gICAgY2FzZSBDU1NWYWx1ZUE1Ogot
ICAgICAgICB3aWR0aCA9IGE1V2lkdGg7Ci0gICAgICAgIGhlaWdodCA9IGE1SGVpZ2h0OwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIENTU1ZhbHVlQTQ6Ci0gICAgICAgIHdpZHRoID0gYTRXaWR0
aDsKLSAgICAgICAgaGVpZ2h0ID0gYTRIZWlnaHQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
Q1NTVmFsdWVBMzoKLSAgICAgICAgd2lkdGggPSBhM1dpZHRoOwotICAgICAgICBoZWlnaHQgPSBh
M0hlaWdodDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NWYWx1ZUI1OgotICAgICAgICB3
aWR0aCA9IGI1V2lkdGg7Ci0gICAgICAgIGhlaWdodCA9IGI1SGVpZ2h0OwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIENTU1ZhbHVlQjQ6Ci0gICAgICAgIHdpZHRoID0gYjRXaWR0aDsKLSAgICAg
ICAgaGVpZ2h0ID0gYjRIZWlnaHQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTVmFsdWVM
ZXR0ZXI6Ci0gICAgICAgIHdpZHRoID0gbGV0dGVyV2lkdGg7Ci0gICAgICAgIGhlaWdodCA9IGxl
dHRlckhlaWdodDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NWYWx1ZUxlZ2FsOgotICAg
ICAgICB3aWR0aCA9IGxlZ2FsV2lkdGg7Ci0gICAgICAgIGhlaWdodCA9IGxlZ2FsSGVpZ2h0Owot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1ZhbHVlTGVkZ2VyOgotICAgICAgICB3aWR0aCA9
IGxlZGdlcldpZHRoOwotICAgICAgICBoZWlnaHQgPSBsZWRnZXJIZWlnaHQ7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYg
KCFwb3J0cmFpdCkKLSAgICAgICAgc3dhcCh3aWR0aCwgaGVpZ2h0KTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oIGIvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCmluZGV4IGYwZGU4M2JlNjE1NDg5ZjFlNmRlZTk5
Y2RmNDUwOWNlOTQ1MzYwNmEuLjY2YzViZmY3YTUxODFkY2ZiNDg4NzU2ODY3NTU5N2E1NzFhMGY2
MWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAorKysgYi9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKQEAgLTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgQ1NT
U3R5bGVTZWxlY3Rvcl9oCiAKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKKyNpbmNsdWRl
ICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTGlua0hhc2guaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5
RXhwLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKQEAgLTk0LDYgKzk1LDcgQEAgcHVibGlj
OgogICAgICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZUZvckVsZW1lbnQo
UHNldWRvSWQgcHNldWRvLCBFbGVtZW50KiBlLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSAw
LCBib29sIG1hdGNoVmlzaXRlZFBzZXVkb0NsYXNzID0gZmFsc2UpOwogCiAgICAgICAgIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KTsKKyAgICAgICAg
dm9pZCBzZXREZWZhdWx0UGFnZVNpemVJblBpeGVscyhJbnRTaXplIHMpIHsgbV9kZWZhdWx0UGFn
ZVNpemUgPSBzOyB9CiAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0
eWxlRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKIApAQCAtMzA3LDYgKzMwOSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgCiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBDU1NWYXJpYWJsZXNSdWxlKj4gbV92
YXJpYWJsZXNNYXA7CiAgICAgICAgIEhhc2hNYXA8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24q
LCBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+ID4gbV9yZXNvbHZlZFZhcmlhYmxl
c0RlY2xhcmF0aW9uczsKKworICAgICAgICBJbnRTaXplIG1fZGVmYXVsdFBhZ2VTaXplOwogICAg
IH07CiAKICAgICBjbGFzcyBDU1NSdWxlRGF0YSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmluZGV4
IDEwNTE2NTkyYTRiMDk4ZTIxZGE1NjE3YjM2Mzc1MTEzZGU1OGUzMmMuLjVhMjA1NjU2MDBkMTQ4
MDBmNGQzMTM1MGU2YjZmZjM2Y2YzOWNjM2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL2h0bWwu
Y3NzCisrKyBiL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC03MjgsNyArNzI4LDkgQEAgaWZyYW1l
IHsKIEBwYWdlIHsKICAgICAvKiBGSVhNRTogRGVmaW5lIHRoZSByaWdodCBkZWZhdWx0IHZhbHVl
cyBmb3IgcGFnZSBwcm9wZXJ0aWVzLiAqLwogICAgIHNpemU6IGF1dG87Ci0gICAgbWFyZ2luOiAx
aW47CisgICAgbWFyZ2luOiBhdXRvOworICAgIHBhZGRpbmc6IDBweDsKKyAgICBib3JkZXItd2lk
dGg6IDBweDsKIH0KIAogLyogbm9zY3JpcHQgaXMgaGFuZGxlZCBpbnRlcm5hbGx5LCBhcyBpdCBk
ZXBlbmRzIG9uIHNldHRpbmdzICovCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYzAxMDY3ODYwN2E0MDA3YTU0OGIy
OTAwZDQ2ZmE3M2U2NzAzODA4Yi4uNWYzZDVlNzYyYjQ3MGVhYzUyZjJiYTQyZmVmZjk0M2JjYzUz
MDM0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMTUwOCwyOSArMTUwOCwyMyBAQCBib29sIERvY3VtZW50Ojpp
c1BhZ2VCb3hWaXNpYmxlKGludCBwYWdlSW5kZXgpCiAgICAgcmV0dXJuIHN0eWxlLT52aXNpYmls
aXR5KCkgIT0gSElEREVOOyAvLyBkaXNwbGF5IHByb3BlcnR5IGRvZXNuJ3QgYXBwbHkgdG8gQHBh
Z2UuCiB9CiAKLUludFJlY3QgRG9jdW1lbnQ6OnBhZ2VBcmVhUmVjdEluUGl4ZWxzKGludCBwYWdl
SW5kZXgpCit2b2lkIERvY3VtZW50OjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhpbnQgcGFn
ZUluZGV4LCBJbnRTaXplJiBwYWdlU2l6ZSwgaW50JiBtYXJnaW5Ub3AsIGludCYgbWFyZ2luUmln
aHQsIGludCYgbWFyZ2luQm90dG9tLCBpbnQmIG1hcmdpbkxlZnQpCiB7CisgICAgc3R5bGVTZWxl
Y3RvcigpLT5zZXREZWZhdWx0UGFnZVNpemVJblBpeGVscyhwYWdlU2l6ZSk7CiAgICAgUmVmUHRy
PFJlbmRlclN0eWxlPiBzdHlsZSA9IHN0eWxlRm9yUGFnZShwYWdlSW5kZXgpOwotICAgIEludFNp
emUgcGFnZVNpemUgPSBwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKHBhZ2VJbmRleCk7Ci0gICAg
Ly8gMTAwJSB2YWx1ZSBmb3IgbWFyZ2luLXtsZWZ0LHJpZ2h0LHRvcCxib3R0b219LiBUaGlzIGlz
IHVzZWQgYWxzbyBmb3IgdG9wIGFuZCBib3R0b20uIGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIv
Ym94Lmh0bWwjdmFsdWUtZGVmLW1hcmdpbi13aWR0aAotICAgIGludCBtYXhWYWx1ZSA9IHBhZ2VT
aXplLndpZHRoKCk7Ci0gICAgaW50IHN1cnJvdW5kTGVmdCA9IHN0eWxlLT5tYXJnaW5MZWZ0KCku
Y2FsY1ZhbHVlKG1heFZhbHVlKSArIHN0eWxlLT5ib3JkZXJMZWZ0KCkud2lkdGgoKSArIHN0eWxl
LT5wYWRkaW5nTGVmdCgpLmNhbGNWYWx1ZShtYXhWYWx1ZSk7Ci0gICAgaW50IHN1cnJvdW5kUmln
aHQgPSBzdHlsZS0+bWFyZ2luUmlnaHQoKS5jYWxjVmFsdWUobWF4VmFsdWUpICsgc3R5bGUtPmJv
cmRlclJpZ2h0KCkud2lkdGgoKSArIHN0eWxlLT5wYWRkaW5nUmlnaHQoKS5jYWxjVmFsdWUobWF4
VmFsdWUpOwotICAgIGludCBzdXJyb3VuZFRvcCA9IHN0eWxlLT5tYXJnaW5Ub3AoKS5jYWxjVmFs
dWUobWF4VmFsdWUpICsgc3R5bGUtPmJvcmRlclRvcCgpLndpZHRoKCkgKyBzdHlsZS0+cGFkZGlu
Z1RvcCgpLmNhbGNWYWx1ZShtYXhWYWx1ZSk7Ci0gICAgaW50IHN1cnJvdW5kQm90dG9tID0gc3R5
bGUtPm1hcmdpbkJvdHRvbSgpLmNhbGNWYWx1ZShtYXhWYWx1ZSkgKyBzdHlsZS0+Ym9yZGVyQm90
dG9tKCkud2lkdGgoKSArIHN0eWxlLT5wYWRkaW5nQm90dG9tKCkuY2FsY1ZhbHVlKG1heFZhbHVl
KTsKLSAgICBpbnQgd2lkdGggPSBwYWdlU2l6ZS53aWR0aCgpIC0gc3Vycm91bmRMZWZ0IC0gc3Vy
cm91bmRSaWdodDsKLSAgICBpbnQgaGVpZ2h0ID0gcGFnZVNpemUuaGVpZ2h0KCkgLSBzdXJyb3Vu
ZFRvcCAtIHN1cnJvdW5kQm90dG9tOwogCi0gICAgcmV0dXJuIEludFJlY3Qoc3Vycm91bmRMZWZ0
LCBzdXJyb3VuZFRvcCwgd2lkdGgsIGhlaWdodCk7Ci19Ci0KLUludFNpemUgRG9jdW1lbnQ6OnBy
ZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoaW50IHBhZ2VJbmRleCkKLXsKLSAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVGb3JQYWdlKHBhZ2VJbmRleCk7CiAgICAgTGVuZ3RoU2l6
ZSBzaXplID0gc3R5bGUtPnBhZ2VTaXplKCk7CiAgICAgQVNTRVJUKHNpemUud2lkdGgoKS5pc0Zp
eGVkKCkpOwogICAgIEFTU0VSVChzaXplLmhlaWdodCgpLmlzRml4ZWQoKSk7Ci0gICAgcmV0dXJu
IEludFNpemUoc2l6ZS53aWR0aCgpLmNhbGNWYWx1ZSgwKSwgc2l6ZS5oZWlnaHQoKS5jYWxjVmFs
dWUoMCkpOworICAgIHBhZ2VTaXplID0gSW50U2l6ZShzaXplLndpZHRoKCkuY2FsY1ZhbHVlKDAp
LCBzaXplLmhlaWdodCgpLmNhbGNWYWx1ZSgwKSk7CisKKyAgICAvLyAxMDAlIHZhbHVlIGZvciBt
YXJnaW4te2xlZnQscmlnaHQsdG9wLGJvdHRvbX0uIFRoaXMgaXMgdXNlZCBhbHNvIGZvciB0b3Ag
YW5kIGJvdHRvbS4gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMi9ib3guaHRtbCN2YWx1ZS1kZWYt
bWFyZ2luLXdpZHRoCisgICAgaW50IG1heFZhbHVlID0gcGFnZVNpemUud2lkdGgoKTsKKworICAg
IG1hcmdpblRvcCA9IHN0eWxlLT5tYXJnaW5Ub3AoKS5pc0F1dG8oKSA/IG1hcmdpblRvcCA6IHN0
eWxlLT5tYXJnaW5Ub3AoKS5jYWxjVmFsdWUobWF4VmFsdWUpOworICAgIG1hcmdpblJpZ2h0ID0g
c3R5bGUtPm1hcmdpblJpZ2h0KCkuaXNBdXRvKCkgPyBtYXJnaW5SaWdodCA6IHN0eWxlLT5tYXJn
aW5SaWdodCgpLmNhbGNWYWx1ZShtYXhWYWx1ZSk7CisgICAgbWFyZ2luQm90dG9tID0gc3R5bGUt
Pm1hcmdpbkJvdHRvbSgpLmlzQXV0bygpID8gbWFyZ2luQm90dG9tIDogc3R5bGUtPm1hcmdpbkJv
dHRvbSgpLmNhbGNWYWx1ZShtYXhWYWx1ZSk7CisgICAgbWFyZ2luTGVmdCA9IHN0eWxlLT5tYXJn
aW5MZWZ0KCkuaXNBdXRvKCkgPyBtYXJnaW5MZWZ0IDogc3R5bGUtPm1hcmdpbkxlZnQoKS5jYWxj
VmFsdWUobWF4VmFsdWUpOwogfQogCiB2b2lkIERvY3VtZW50OjpjcmVhdGVTdHlsZVNlbGVjdG9y
KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDMxN2ZiYjc2N2Y4Y2VkNjc0ZGQ0ZTIxNzQyOWQ0OGIwOTM3M2FlNGMuLjI5
NDRjZTZiNzA2YzljNTgyZDM2NTEwNjIyZWFjZjJhZDVkYmRlZWYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNDg0LDgg
KzQ4NCw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvckVs
ZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyhFbGVtZW50Kik7CiAgICAgUGFzc1JlZlB0
cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOwogICAgIGJvb2wgaXNQ
YWdlQm94VmlzaWJsZShpbnQgcGFnZUluZGV4KTsKLSAgICBJbnRSZWN0IHBhZ2VBcmVhUmVjdElu
UGl4ZWxzKGludCBwYWdlSW5kZXgpOwotICAgIEludFNpemUgcHJlZmVycmVkUGFnZVNpemVJblBp
eGVscyhpbnQgcGFnZUluZGV4KTsKKyAgICB2b2lkIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KGludCBwYWdlSW5kZXgsIEludFNpemUmIHBhZ2VTaXplLCBpbnQmIG1hcmdpblRvcCwgaW50JiBt
YXJnaW5SaWdodCwgaW50JiBtYXJnaW5Cb3R0b20sIGludCYgbWFyZ2luTGVmdCk7CiAgICAgc3Rh
dGljIHZvaWQgdXBkYXRlU3R5bGVGb3JBbGxEb2N1bWVudHMoKTsgLy8gRklYTUU6IFRyeSB0byBy
ZWR1Y2UgdGhlICMgb2YgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbi4KICAgICBEb2NMb2FkZXIqIGRv
Y0xvYWRlcigpIHsgcmV0dXJuIG1fZG9jTG9hZGVyLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwIGIvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5j
cHAKaW5kZXggNGFiNzM2N2M0ZDc5YTE4MjNlN2JkNzE3ZTk2NDk3N2Y5ZGFjZDA0OC4uZGRhOTJi
NGQ3MmU5ZThhNDRlNjFjNTQ1NWQ2NzZhMDg0Yzg4ODk4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAK
QEAgLTIyMywxNiArMjIzLDExIEBAIGJvb2wgUHJpbnRDb250ZXh0Ojppc1BhZ2VCb3hWaXNpYmxl
KEZyYW1lKiBmcmFtZSwgaW50IHBhZ2VOdW1iZXIpCiAgICAgcmV0dXJuIGZyYW1lLT5kb2N1bWVu
dCgpLT5pc1BhZ2VCb3hWaXNpYmxlKHBhZ2VOdW1iZXIpOwogfQogCi1TdHJpbmcgUHJpbnRDb250
ZXh0OjpwYWdlQXJlYVJlY3RJblBpeGVscyhGcmFtZSogZnJhbWUsIGludCBwYWdlTnVtYmVyKQor
U3RyaW5nIFByaW50Q29udGV4dDo6cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoRnJhbWUqIGZy
YW1lLCBpbnQgcGFnZU51bWJlciwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWFyZ2luVG9w
LCBpbnQgbWFyZ2luUmlnaHQsIGludCBtYXJnaW5Cb3R0b20sIGludCBtYXJnaW5MZWZ0KQogewot
ICAgIEludFJlY3QgcGFnZUFyZWEgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+cGFnZUFyZWFSZWN0SW5Q
aXhlbHMocGFnZU51bWJlcik7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIoJWQsJWQsJWQs
JWQpIiwgcGFnZUFyZWEueCgpLCBwYWdlQXJlYS55KCksIHBhZ2VBcmVhLndpZHRoKCksIHBhZ2VB
cmVhLmhlaWdodCgpKTsKLX0KLQotU3RyaW5nIFByaW50Q29udGV4dDo6cHJlZmVycmVkUGFnZVNp
emVJblBpeGVscyhGcmFtZSogZnJhbWUsIGludCBwYWdlTnVtYmVyKQotewotICAgIEludFNpemUg
cGFnZVNpemUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+cHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhw
YWdlTnVtYmVyKTsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiglZCwlZCkiLCBwYWdlU2l6
ZS53aWR0aCgpLCBwYWdlU2l6ZS5oZWlnaHQoKSk7CisgICAgSW50U2l6ZSBwYWdlU2l6ZSh3aWR0
aCwgaGVpZ2h0KTsKKyAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+cGFnZVNpemVBbmRNYXJnaW5zSW5Q
aXhlbHMocGFnZU51bWJlciwgcGFnZVNpemUsIG1hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdp
bkJvdHRvbSwgbWFyZ2luTGVmdCk7CisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIoJWQsICVk
KSAlZCAlZCAlZCAlZCIsIHBhZ2VTaXplLndpZHRoKCksIHBhZ2VTaXplLmhlaWdodCgpLCBtYXJn
aW5Ub3AsIG1hcmdpblJpZ2h0LCBtYXJnaW5Cb3R0b20sIG1hcmdpbkxlZnQpOwogfQogCiBpbnQg
UHJpbnRDb250ZXh0OjpudW1iZXJPZlBhZ2VzKEZyYW1lKiBmcmFtZSwgY29uc3QgRmxvYXRTaXpl
JiBwYWdlU2l6ZUluUGl4ZWxzKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4
dC5oIGIvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5oCmluZGV4IDgxYTliNzY0ZDEyODE5YjFl
NDg3YzMzNDNlN2NlMTc1OGY0M2E0NDQuLjEwODBjMjlmODI2MTY1MTdhN2JjYzdhZjVkMzFlNzU0
OWU1MzkwMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmgKQEAgLTU3LDggKzU3LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBpbnQgcGFnZU51bWJlckZvckVsZW1lbnQoRWxlbWVudCosIGNvbnN0IEZsb2F0U2l6
ZSYgcGFnZVNpemVJblBpeGVscyk7CiAgICAgc3RhdGljIFN0cmluZyBwYWdlUHJvcGVydHkoRnJh
bWUqIGZyYW1lLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIGludCBwYWdlTnVtYmVyKTsKICAg
ICBzdGF0aWMgYm9vbCBpc1BhZ2VCb3hWaXNpYmxlKEZyYW1lKiBmcmFtZSwgaW50IHBhZ2VOdW1i
ZXIpOwotICAgIHN0YXRpYyBTdHJpbmcgcGFnZUFyZWFSZWN0SW5QaXhlbHMoRnJhbWUqIGZyYW1l
LCBpbnQgcGFnZU51bWJlcik7Ci0gICAgc3RhdGljIFN0cmluZyBwcmVmZXJyZWRQYWdlU2l6ZUlu
UGl4ZWxzKEZyYW1lKiBmcmFtZSwgaW50IHBhZ2VOdW1iZXIpOworICAgIHN0YXRpYyBTdHJpbmcg
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoRnJhbWUqIGZyYW1lLCBpbnQgcGFnZU51bWJlciwg
aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWFyZ2luVG9wLCBpbnQgbWFyZ2luUmlnaHQsIGlu
dCBtYXJnaW5Cb3R0b20sIGludCBtYXJnaW5MZWZ0KTsKICAgICBzdGF0aWMgaW50IG51bWJlck9m
UGFnZXMoRnJhbWUqLCBjb25zdCBGbG9hdFNpemUmIHBhZ2VTaXplSW5QaXhlbHMpOwogCiBwcm90
ZWN0ZWQ6CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBkYTkyMTNmNWNiNjQ2ZDYxOGEyYzg0MGUzM2FmNTFhMjZm
Nzk3Mzc2Li5jNmE4NDgzYjEwZWVjYTRmZTEzOWI3YjgwYjA4NmM4M2FmZWE2MzY2IDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNi0yNCAgWXV6byBGdWppc2hpbWEgIDx5dXpv
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wcm92ZSBkZWZhdWx0IHZhbHVlIGhhbmRsaW5nIGZvciBwYWdlIGZvcm1hdCBwcm9w
ZXJ0aWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDExNTAKKworICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZS5oOgorICAgICAgICAqIHNyYy9XZWJG
cmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6CisKIDIwMTAt
MDYtMjMgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkZyYW1lLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKaW5kZXggMzE5Y2Uz
ODk3Nzk5ODRmODNlZjdiNWJhODAyNmQzODIxOTkyODU2ZC4uMWNiNGRkY2E2YmYyNDY2YzczZjYx
MGJkNDQxNzAxMjAyMTgyZDUwMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtNDA4
LDEyICs0MDgsMTcgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBwYWdlIGJveCAo
bWFyZ2luIGJveGVzIGFuZCBwYWdlIGJvcmRlcnMpIGlzIHZpc2libGUuCiAgICAgdmlydHVhbCBi
b29sIGlzUGFnZUJveFZpc2libGUoaW50IHBhZ2VJbmRleCkgPSAwOwogCi0gICAgLy8gUmV0dXJu
cyB0aGUgcGFnZSBhcmVhIHJlY3RhbmdsZSBpbiBwaXhlbHMsIGFzc3VtaW5nIDk2IHBpeGVscyBw
ZXIgaW5jaC4KLSAgICB2aXJ0dWFsIFdlYlJlY3QgcGFnZUFyZWFSZWN0SW5QaXhlbHMoaW50IHBh
Z2VJbmRleCkgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0aGUgcHJlZmVycmVkIHBhZ2Ugc2l6ZSBp
biBwaXhlbHMsIGFzc3VtaW5nIDk2IHBpeGVscyBwZXIgaW5jaC4KLSAgICB2aXJ0dWFsIFdlYlNp
emUgcHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhpbnQgcGFnZUluZGV4KSA9IDA7Ci0KKyAgICAv
LyBSZXR1cm5zIHRoZSBwcmVmZXJyZWQgcGFnZSBzaXplIGFuZCBtYXJnaW5zIGluIHBpeGVscywg
YXNzdW1pbmcgOTYKKyAgICAvLyBwaXhlbHMgcGVyIGluY2guIHBhZ2VTaXplLCBtYXJnaW5Ub3As
IG1hcmdpblJpZ2h0LCBtYXJnaW5Cb3R0b20sCisgICAgLy8gbWFyZ2luTGVmdCBtdXN0IGJlIGlu
aXRpYWxpemVkIHRvIHRoZSBkZWZhdWx0IHZhbHVlcyB0aGF0IGFyZSB1c2VkIGlmCisgICAgLy8g
YXV0byBpcyBzcGVjaWZpZWQuCisKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZVNpemVBbmRNYXJnaW5z
SW5QaXhlbHMoaW50IHBhZ2VJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViU2l6ZSYgcGFnZVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luVG9wLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdpblJpZ2h0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdpbkJvdHRvbSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5MZWZ0KSA9IDA7
CiAKICAgICAvLyBGaW5kLWluLXBhZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CmluZGV4IDNmOTM2MGM4MjBjY2M0MTQ0NzQ2YzFjODYyM2Q5ZjYxYTY4ZDlkMWUuLjZkOGZmNDEz
ODFiMDIyNjEzOGJiZWZhODUyOGQ4MjUzYWQ0OTBkYWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAKQEAgLTEyODQsMTQgKzEyODQsMjEgQEAgYm9vbCBXZWJGcmFtZUltcGw6Omlz
UGFnZUJveFZpc2libGUoaW50IHBhZ2VJbmRleCkKICAgICByZXR1cm4gZnJhbWUoKS0+ZG9jdW1l
bnQoKS0+aXNQYWdlQm94VmlzaWJsZShwYWdlSW5kZXgpOwogfQogCi1XZWJSZWN0IFdlYkZyYW1l
SW1wbDo6cGFnZUFyZWFSZWN0SW5QaXhlbHMoaW50IHBhZ2VJbmRleCkKLXsKLSAgICByZXR1cm4g
ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+cGFnZUFyZWFSZWN0SW5QaXhlbHMocGFnZUluZGV4KTsKLX0K
LQotV2ViU2l6ZSBXZWJGcmFtZUltcGw6OnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoaW50IHBh
Z2VJbmRleCkKLXsKLSAgICByZXR1cm4gZnJhbWUoKS0+ZG9jdW1lbnQoKS0+cHJlZmVycmVkUGFn
ZVNpemVJblBpeGVscyhwYWdlSW5kZXgpOwordm9pZCBXZWJGcmFtZUltcGw6OnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKGludCBwYWdlSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViU2l6ZSYgcGFnZVNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5Ub3AsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5SaWdodCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdpbkJv
dHRvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQm
IG1hcmdpbkxlZnQpCit7CisgICAgSW50U2l6ZSBzaXplKHBhZ2VTaXplLndpZHRoLCBwYWdlU2l6
ZS5oZWlnaHQpOworICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKHBhZ2VJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hcmdpblRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b20sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdCk7Cisg
ICAgcGFnZVNpemUgPSBzaXplOwogfQogCiBib29sIFdlYkZyYW1lSW1wbDo6ZmluZChpbnQgaWRl
bnRpZmllciwKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IGMxNGFkOWI3MmM5MmMx
MzU3NTI3YjdlMTMyNDk4MjY5Yzc2M2M1MTcuLjMwZTQ2OTlkNzg4Njg0YTJhZmE1MWJjNGM3MGM2
NWZkMTY0NWM5Y2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApAQCAtMTUwLDggKzE1
MCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBnZXRQcmludFBhZ2VTaHJpbmsoaW50
IHBhZ2UpOwogICAgIHZpcnR1YWwgdm9pZCBwcmludEVuZCgpOwogICAgIHZpcnR1YWwgYm9vbCBp
c1BhZ2VCb3hWaXNpYmxlKGludCBwYWdlSW5kZXgpOwotICAgIHZpcnR1YWwgV2ViUmVjdCBwYWdl
QXJlYVJlY3RJblBpeGVscyhpbnQgcGFnZUluZGV4KTsKLSAgICB2aXJ0dWFsIFdlYlNpemUgcHJl
ZmVycmVkUGFnZVNpemVJblBpeGVscyhpbnQgcGFnZUluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQg
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoaW50IHBhZ2VJbmRleCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViU2l6ZSYgcGFnZVNpemUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luVG9wLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdpblJpZ2h0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdp
bkJvdHRvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
JiBtYXJnaW5MZWZ0KTsKICAgICB2aXJ0dWFsIGJvb2wgZmluZCgKICAgICAgICAgaW50IGlkZW50
aWZpZXIsIGNvbnN0IFdlYlN0cmluZyYgc2VhcmNoVGV4dCwgY29uc3QgV2ViRmluZE9wdGlvbnMm
LAogICAgICAgICBib29sIHdyYXBXaXRoaW5GcmFtZSwgV2ViUmVjdCogc2VsZWN0aW9uUmVjdCk7
CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IGRjM2Y0M2M2NTRmNDQ3MjE0Nzc3NzdjNDk1NGIwMTY1OTU5MTU1NjguLjU1NDI2NjQx
MDZmNmI2YzFkNzc3MzVmMjgxZWUwM2U4MTVmYTM1NDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTAtMDYtMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZGVmYXVsdCB2YWx1
ZSBoYW5kbGluZyBmb3IgcGFnZSBmb3JtYXQgcHJvcGVydGllcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTUwCisKKyAgICAgICAgKiBNaXNjL1dl
YkNvcmVTdGF0aXN0aWNzLmg6CisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbToK
KyAgICAgICAgKC1bV2ViRnJhbWUgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHM6cGFnZU51bWJl
cjp3aWR0aDpoZWlnaHQ6bWFyZ2luVG9wOm1hcmdpblJpZ2h0Om1hcmdpbkJvdHRvbTpdKToKKwog
MjAxMC0wNi0yMyAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgU2hpbmljaGlybyBIYW1hamkuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01p
c2MvV2ViQ29yZVN0YXRpc3RpY3MuaCBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGlj
cy5oCmluZGV4IGUzNTdiNzJjMWYwZGEyNjk5MWY1ZTFjODIyYjRjM2Q0ODQ2MTYwMDkuLjMzZTNl
MGY4NjU4MWIwZWZiYTk0MmJiOTFhYTdhNzNlNzMwYzdlZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oCisrKyBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3Jl
U3RhdGlzdGljcy5oCkBAIC04OSw2ICs4OSw1IEBACiAtIChpbnQpbnVtYmVyT2ZQYWdlczooZmxv
YXQpcGFnZVdpZHRoSW5QaXhlbHM6KGZsb2F0KXBhZ2VIZWlnaHRJblBpeGVsczsKIC0gKE5TU3Ry
aW5nICopcGFnZVByb3BlcnR5Oihjb25zdCBjaGFyKilwcm9wZXJ0eU5hbWU6KGludClwYWdlTnVt
YmVyOwogLSAoYm9vbClpc1BhZ2VCb3hWaXNpYmxlOihpbnQpcGFnZU51bWJlcjsKLS0gKE5TU3Ry
aW5nICopcGFnZUFyZWFSZWN0SW5QaXhlbHM6KGludClwYWdlTnVtYmVyOwotLSAoTlNTdHJpbmcg
KilwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzOihpbnQpcGFnZU51bWJlcjsKKy0gKE5TU3RyaW5n
ICopcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHM6KGludClwYWdlTnVtYmVyOihpbnQpd2lkdGg6
KGludCloZWlnaHQ6KGludCltYXJnaW5Ub3A6KGludCltYXJnaW5SaWdodDooaW50KW1hcmdpbkJv
dHRvbTooaW50KW1hcmdpbkxlZnQ7CiBAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pc2Mv
V2ViQ29yZVN0YXRpc3RpY3MubW0gYi9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3Mu
bW0KaW5kZXggOTExMmQyMWEyYmEyMjJiM2Y5ODFjYTJlNjVlZDI5ZGViNDI1Y2NkMS4uYmJlMDdk
NTI3NDg3MGFkMDJiZjc4MzYxNjUyNTlkYWRlNzNhOGUyNyAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCisrKyBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3Jl
U3RhdGlzdGljcy5tbQpAQCAtMjg1LDEzICsyODUsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKICAgICByZXR1cm4gUHJpbnRDb250ZXh0Ojppc1BhZ2VCb3hWaXNpYmxlKF9wcml2YXRlLT5j
b3JlRnJhbWUsIHBhZ2VOdW1iZXIpOwogfQogCi0tIChOU1N0cmluZyAqKXBhZ2VBcmVhUmVjdElu
UGl4ZWxzOihpbnQpcGFnZU51bWJlcgorLSAoTlNTdHJpbmcgKilwYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVsczooaW50KXBhZ2VOdW1iZXI6KGludCl3aWR0aDooaW50KWhlaWdodDooaW50KW1hcmdp
blRvcDooaW50KW1hcmdpblJpZ2h0OihpbnQpbWFyZ2luQm90dG9tOihpbnQpbWFyZ2luTGVmdAog
ewotICAgIHJldHVybiBQcmludENvbnRleHQ6OnBhZ2VBcmVhUmVjdEluUGl4ZWxzKF9wcml2YXRl
LT5jb3JlRnJhbWUsIHBhZ2VOdW1iZXIpOwotfQotCi0tIChOU1N0cmluZyAqKXByZWZlcnJlZFBh
Z2VTaXplSW5QaXhlbHM6KGludClwYWdlTnVtYmVyOwotewotICAgIHJldHVybiBQcmludENvbnRl
eHQ6OnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoX3ByaXZhdGUtPmNvcmVGcmFtZSwgcGFnZU51
bWJlcik7CisgICAgcmV0dXJuIFByaW50Q29udGV4dDo6cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhl
bHMoX3ByaXZhdGUtPmNvcmVGcmFtZSwgcGFnZU51bWJlciwgd2lkdGgsIGhlaWdodCwgbWFyZ2lu
VG9wLCBtYXJnaW5SaWdodCwgbWFyZ2luQm90dG9tLCBtYXJnaW5MZWZ0KTsKIH0KIEBlbmQKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpp
bmRleCAzMjUwZTVmM2ZkNjc5NzBmNzBjODZhNmYzNWZkYTE3MzcyMGY4YzM0Li42N2FjMTQ0ZjI2
NjhlNzMwNWU4ZDBkOWUwNWFlZWYxNWJkZjYzMTk0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MTAtMDYtMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZGVmYXVsdCB2YWx1
ZSBoYW5kbGluZyBmb3IgcGFnZSBmb3JtYXQgcHJvcGVydGllcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTUwCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChwYXJzZVBhZ2VOdW1i
ZXIpOgorICAgICAgICAocGFyc2VQYWdlTnVtYmVyU2l6ZU1hcmluZ3MpOgorICAgICAgICAocGFn
ZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGFn
ZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
d2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyk6CisKIDIwMTAtMDYtMjMgIEtldmlu
IE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgW3d4XSBCdWls
ZCBmaXgsIGFkZGluZyBuZXcgTGF5b3V0VGVzdENvbnRyb2xsZXIgbWV0aG9kcyBhbmQgZW5hYmxp
bmcgU1ZHX0ZPUkVJR05fT0JKRUNULgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDAyYzc3YTQyNzU3YWY1MTgwZDU1ZTMw
ODJlNjk0Y2M0OWFiOTdiMDkuLmEzNWVkMmIwOTcwMzhkYzI0ZmI3YjFjZDBmNzJiNzE2M2UzOTEy
MzAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKQEAgLTU1NSwxMCArNTU1LDY1IEBAIHN0YXRpYyBib29sIHBhcnNlUGFnZVBy
b3BlcnR5UGFyYW1ldGVycyhKU0NvbnRleHRSZWYgY29udGV4dCwgaW50IGFyZ3VtZW50Q291bnQs
CiBzdGF0aWMgYm9vbCBwYXJzZVBhZ2VOdW1iZXIoSlNDb250ZXh0UmVmIGNvbnRleHQsIGludCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmKiBhcmd1bWVudHMsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbiwgaW50JiBwYWdlTnVtYmVyKQogewogICAgIHBhZ2VOdW1iZXIgPSAwOwotICAgIGlm
IChhcmd1bWVudENvdW50ICE9IDEpCisgICAgc3dpdGNoIChhcmd1bWVudENvdW50KSB7CisgICAg
Y2FzZSAxOgorICAgICAgICBwYWdlTnVtYmVyID0gc3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9O
dW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAgICAgICAgaWYgKCpl
eGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIEZhbGwgdGhy
b3VnaC4KKyAgICBjYXNlIDA6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sIHBhcnNlUGFnZU51
bWJlclNpemVNYXJpbmdzKEpTQ29udGV4dFJlZiBjb250ZXh0LCBpbnQgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiogYXJndW1lbnRzLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24sIGludCYg
cGFnZU51bWJlciwgaW50JiB3aWR0aCwgaW50JiBoZWlnaHQsIGludCYgbWFyZ2luVG9wLCBpbnQm
IG1hcmdpblJpZ2h0LCBpbnQmIG1hcmdpbkJvdHRvbSwgaW50JiBtYXJnaW5MZWZ0KQoreworICAg
IHBhZ2VOdW1iZXIgPSAwOworICAgIHdpZHRoID0gaGVpZ2h0ID0gMDsKKyAgICBtYXJnaW5Ub3Ag
PSBtYXJnaW5SaWdodCA9IG1hcmdpbkJvdHRvbSA9IG1hcmdpbkxlZnQgPSAwOworCisgICAgc3dp
dGNoIChhcmd1bWVudENvdW50KSB7CisgICAgY2FzZSA3OgorICAgICAgICBtYXJnaW5MZWZ0ID0g
c3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzZdLCBl
eGNlcHRpb24pKTsKKyAgICAgICAgaWYgKCpleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KKyAgICBjYXNlIDY6CisgICAgICAgIG1h
cmdpbkJvdHRvbSA9IHN0YXRpY19jYXN0PGludD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFy
Z3VtZW50c1s1XSwgZXhjZXB0aW9uKSk7CisgICAgICAgIGlmICgqZXhjZXB0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBGYWxsIHRocm91Z2guCisgICAgY2FzZSA1
OgorICAgICAgICBtYXJnaW5SaWdodCA9IHN0YXRpY19jYXN0PGludD4oSlNWYWx1ZVRvTnVtYmVy
KGNvbnRleHQsIGFyZ3VtZW50c1s0XSwgZXhjZXB0aW9uKSk7CisgICAgICAgIGlmICgqZXhjZXB0
aW9uKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBGYWxsIHRocm91Z2gu
CisgICAgY2FzZSA0OgorICAgICAgICBtYXJnaW5Ub3AgPSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFs
dWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbM10sIGV4Y2VwdGlvbikpOworICAgICAgICBp
ZiAoKmV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gRmFs
bCB0aHJvdWdoLgorICAgIGNhc2UgMzoKKyAgICAgICAgaGVpZ2h0ID0gc3RhdGljX2Nhc3Q8aW50
PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKKyAg
ICAgICAgaWYgKCpleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IC8vIEZhbGwgdGhyb3VnaC4KKyAgICBjYXNlIDI6CisgICAgICAgIHdpZHRoID0gc3RhdGljX2Nh
c3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24p
KTsKKyAgICAgICAgaWYgKCpleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KKyAgICBjYXNlIDE6CisgICAgICAgIHBhZ2VOdW1iZXIg
PSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0s
IGV4Y2VwdGlvbikpOworICAgICAgICBpZiAoKmV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFnZU51bWJlciA9IHN0
YXRpY19jYXN0PGludD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhj
ZXB0aW9uKSk7Ci0gICAgcmV0dXJuICEqZXhjZXB0aW9uOworICAgIH0KIH0KIAogc3RhdGljIEpT
VmFsdWVSZWYgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQpAQCAtNjEyLDI0ICs2NjcsMTYgQEAgc3RhdGljIEpTVmFsdWVSZWYgaXNQ
YWdlQm94VmlzaWJsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW4KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGNvbnRyb2xsZXItPmlz
UGFnZUJveFZpc2libGUocGFnZU51bWJlcikpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBwYWdl
QXJlYVJlY3RJblBpeGVsc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsK
LSAgICBpbnQgcGFnZU51bWJlciA9IDA7Ci0gICAgaWYgKCFwYXJzZVBhZ2VOdW1iZXIoY29udGV4
dCwgYXJndW1lbnRDb3VudCwgYXJndW1lbnRzLCBleGNlcHRpb24sIHBhZ2VOdW1iZXIpKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBMYXlvdXRU
ZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9s
bGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICByZXR1cm4gSlNWYWx1
ZU1ha2VTdHJpbmcoY29udGV4dCwgY29udHJvbGxlci0+cGFnZUFyZWFSZWN0SW5QaXhlbHMocGFn
ZU51bWJlcikuZ2V0KCkpOwotfQotCi1zdGF0aWMgSlNWYWx1ZVJlZiBwcmVmZXJyZWRQYWdlU2l6
ZUluUGl4ZWxzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0
aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorc3RhdGljIEpT
VmFsdWVSZWYgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50IHBhZ2VOdW1iZXIgPSAwOwotICAgIGlmICghcGFy
c2VQYWdlTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50cywgZXhjZXB0aW9u
LCBwYWdlTnVtYmVyKSkKKyAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOworICAgIGludCBt
YXJnaW5Ub3AgPSAwLCBtYXJnaW5SaWdodCA9IDAsIG1hcmdpbkJvdHRvbSA9IDAsIG1hcmdpbkxl
ZnQgPSAwOworICAgIGlmICghcGFyc2VQYWdlTnVtYmVyU2l6ZU1hcmluZ3MoY29udGV4dCwgYXJn
dW1lbnRDb3VudCwgYXJndW1lbnRzLCBleGNlcHRpb24sIHBhZ2VOdW1iZXIsIHdpZHRoLCBoZWln
aHQsIG1hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwgbWFyZ2luTGVmdCkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIAogICAgIExheW91
dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRy
b2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIHJldHVybiBKU1Zh
bHVlTWFrZVN0cmluZyhjb250ZXh0LCBjb250cm9sbGVyLT5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4
ZWxzKHBhZ2VOdW1iZXIpLmdldCgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29u
dGV4dCwgY29udHJvbGxlci0+cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMocGFnZU51bWJlciwg
d2lkdGgsIGhlaWdodCwgbWFyZ2luVG9wLCBtYXJnaW5SaWdodCwgbWFyZ2luQm90dG9tLCBtYXJn
aW5MZWZ0KS5nZXQoKSk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlUmVmIHF1ZXVlQmFja05hdmlnYXRp
b25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC0xNjk5LDEyICsxNzQ2
LDExIEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5j
dGlvbnMoKQogICAgICAgICB7ICJudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMiLCBudW1iZXJPZkFj
dGl2ZUFuaW1hdGlvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJvdmVycmlkZVByZWZl
cmVuY2UiLCBvdmVycmlkZVByZWZlcmVuY2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJw
YWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQiLCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAotICAgICAgICB7ICJwYWdlQXJlYVJlY3RJblBpeGVscyIsIHBhZ2VBcmVhUmVj
dEluUGl4ZWxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAicGFnZVNpemVBbmRNYXJnaW5z
SW5QaXhlbHMiLCBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0NhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInBhZ2VQcm9wZXJ0eSIsIHBhZ2VQcm9wZXJ0eUNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInBhdGhUb0xvY2FsUmVzb3VyY2UiLCBwYXRoVG9Mb2NhbFJlc291cmNlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAicGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRo
SWQiLCBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZENhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCIsIHBhdXNl
VHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAg
IHsgInByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMiLCBwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxz
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVu
dEF0VGltZSIsIHNhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWVDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJwcmludFRvUERGIiwgZHVtcEFzUERGQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAicXVldWVCYWNrTmF2aWdhdGlvbiIsIHF1ZXVlQmFja05hdmlnYXRpb25DYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKaW5kZXggNmFmMmM1NzFhODZjMjFiNjZjMmIzODZjMjg3ZjM2NGM2MzAz
MzkxMC4uY2JhZWZjZjEzMmY0MWJhZmMzNjBlYTIyZjhiYWI1YWY2Mjg1MTc4ZiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC02
NCw5ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIG92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmlu
Z1JlZiBrZXksIEpTU3RyaW5nUmVmIHZhbHVlKTsKICAgICBpbnQgcGFnZU51bWJlckZvckVsZW1l
bnRCeUlkKEpTU3RyaW5nUmVmIGlkLCBmbG9hdCBwYWdlV2lkdGhJblBpeGVscywgZmxvYXQgcGFn
ZUhlaWdodEluUGl4ZWxzKTsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGFnZVByb3Bl
cnR5KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgaW50IHBhZ2VOdW1iZXIpIGNvbnN0OworICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhpbnQg
cGFnZU51bWJlciwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWFyZ2luVG9wLCBpbnQgbWFy
Z2luUmlnaHQsIGludCBtYXJnaW5Cb3R0b20sIGludCBtYXJnaW5MZWZ0KSBjb25zdDsKICAgICBi
b29sIGlzUGFnZUJveFZpc2libGUoaW50IHBhZ2VOdW1iZXIpIGNvbnN0OwotICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBwYWdlQXJlYVJlY3RJblBpeGVscyhpbnQgcGFnZU51bWJlcikgY29u
c3Q7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHByZWZlcnJlZFBhZ2VTaXplSW5QaXhl
bHMoaW50IHBhZ2VOdW1iZXIpIGNvbnN0OwogICAgIEpTU3RyaW5nUmVmIHBhdGhUb0xvY2FsUmVz
b3VyY2UoSlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZiB1cmwpOwogICAgIHZvaWQgcXVldWVCYWNr
TmF2aWdhdGlvbihpbnQgaG93RmFyQmFja3dhcmQpOwogICAgIHZvaWQgcXVldWVGb3J3YXJkTmF2
aWdhdGlvbihpbnQgaG93RmFyRm9yd2FyZCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCA2Zjhl
NjM3MWJmMWJmNTk5MGQwMWE5Mzg0Y2UwZDVkYTRhZGQyNGEzLi5kMzQ2ZjRhZDViYjlkN2FkNWVl
YTE2NzQ0ZjI5N2NkYmNhYjU4NmM3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTE4MywxMyAr
MTgzLDcgQEAgYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6aXNQYWdlQm94VmlzaWJsZShpbnQg
cGFnZU51bWJlcikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGFnZUFyZWFSZWN0SW5QaXhlbHMoaW50
IHBhZ2VOdW1iZXIpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJldHVy
biBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oKTsKLX0KLQotSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKGludCBw
YWdlTnVtYmVyKSBjb25zdAorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250
cm9sbGVyOjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhpbnQgcGFnZU51bWJlciwgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWFyZ2luVG9wLCBpbnQgbWFyZ2luUmlnaHQsIGludCBtYXJn
aW5Cb3R0b20sIGludCBtYXJnaW5MZWZ0KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQKICAgICByZXR1cm4gSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+KCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0g
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMu
bW0KaW5kZXggZDA1OTllMGYxZTBiYzBhOGNmODhjZDM0NGNiZjYzNGI5NmVmNDMzZi4uOWIwNDRj
Mzg1NDI3YjY3NWFiZTUxOWRhOWNhMjZlNWFhMTMxMDUxMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpA
QCAtMjIzLDE1ICsyMjMsOSBAQCBib29sIExheW91dFRlc3RDb250cm9sbGVyOjppc1BhZ2VCb3hW
aXNpYmxlKGludCBwYWdlTnVtYmVyKSBjb25zdAogICAgIHJldHVybiBbbWFpbkZyYW1lIGlzUGFn
ZUJveFZpc2libGU6cGFnZU51bWJlcl07CiB9CiAKLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6cGFnZUFyZWFSZWN0SW5QaXhlbHMoaW50IHBhZ2VOdW1iZXIp
IGNvbnN0CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBh
Z2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYWdlTnVtYmVyLCBpbnQgd2lkdGgsIGludCBo
ZWlnaHQsIGludCBtYXJnaW5Ub3AsIGludCBtYXJnaW5SaWdodCwgaW50IG1hcmdpbkJvdHRvbSwg
aW50IG1hcmdpbkxlZnQpIGNvbnN0CiB7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBy
b3BlcnR5VmFsdWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1Jl
ZilbbWFpbkZyYW1lIHBhZ2VBcmVhUmVjdEluUGl4ZWxzOnBhZ2VOdW1iZXJdKSk7Ci0gICAgcmV0
dXJuIHByb3BlcnR5VmFsdWU7Ci19Ci0KLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6cHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhpbnQgcGFnZU51bWJlcikg
Y29uc3QKLXsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcHJvcGVydHlWYWx1ZShBZG9w
dCwgSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVmKVttYWluRnJhbWUgcHJl
ZmVycmVkUGFnZVNpemVJblBpeGVsczpwYWdlTnVtYmVyXSkpOworICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBwcm9wZXJ0eVZhbHVlKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmlu
ZygoQ0ZTdHJpbmdSZWYpW21haW5GcmFtZSBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsczpwYWdl
TnVtYmVyOndpZHRoOmhlaWdodDptYXJnaW5Ub3A6bWFyZ2luUmlnaHQ6bWFyZ2luQm90dG9tOm1h
cmdpbkxlZnRdKSk7CiAgICAgcmV0dXJuIHByb3BlcnR5VmFsdWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwCmluZGV4IGUwZDU3MzEzMTc5ZWQwNDRjMDZkNTMxNzhjYWRmNzA0NWUwZWJlZTcuLjdm
NzU3ZTY0ODhiOGExMGU0Y2UxMmE0Y2QwNWE5ZWEyNmE2NzE1ZDcgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcApAQCAtMTI1NCwxMyArMTI1NCw3IEBAIGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omlz
UGFnZUJveFZpc2libGUoaW50IHBhZ2VOdW1iZXIpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VB
cmVhUmVjdEluUGl4ZWxzKGludCBwYWdlTnVtYmVyKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKLSAgICByZXR1cm4gSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+KCk7Ci19Ci0KLUpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cHJlZmVycmVkUGFn
ZVNpemVJblBpeGVscyhpbnQgcGFnZU51bWJlcikgY29uc3QKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoaW50
IHBhZ2VOdW1iZXIsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IG1hcmdpblRvcCwgaW50IG1h
cmdpblJpZ2h0LCBpbnQgbWFyZ2luQm90dG9tLCBpbnQgbWFyZ2luTGVmdCkgY29uc3QKIHsKICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CiAgICAgcmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59739</attachid>
            <date>2010-06-25 00:35:51 -0700</date>
            <delta_ts>2010-06-25 02:05:10 -0700</delta_ts>
            <desc>Addressed review comments.</desc>
            <filename>bug-41150-20100625003549.patch</filename>
            <type>text/plain</type>
            <size>58357</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNGU5MWQyMjZkYzQ2OTU4ZDcyN2Q4Y2U1Y2MyYjBmMTk5M2I1ZmM0Li42MzlhMzg5
ODk5NGE1Y2U1YzkyNTZiZDZhMzExYzI3YzgzNzA3Mzg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDYtMjUgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZGVmYXVsdCB2
YWx1ZSBoYW5kbGluZyBmb3IgcGFnZSBmb3JtYXQgcHJvcGVydGllcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTUwCisKKyAgICAgICAgKiBwcmlu
dGluZy9wYWdlLWZvcm1hdC1kYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwcmludGluZy9w
YWdlLWZvcm1hdC1kYXRhLmh0bWw6CisKIDIwMTAtMDYtMjMgIE9saXZlciBIdW50ICA8b2xpdmVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS1leHBlY3RlZC50eHQK
aW5kZXggYmQxY2E1NGY3ZTlmYmVlZmU3ZTJjYTc3OGVkNTg3ODcyYjk1MjU1My4uZDY2MmJkOThj
OTVkMWIxNGQyYTMxYjFkNDM1MzI0ZjMxMzI3M2MzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS1leHBlY3RlZC50eHQKQEAgLTE1LDU4ICsxNSw2OCBA
QCBUZXN0IHZpc2liaWxpdHk6IHZpc2libGUKIFBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuaXNQ
YWdlQm94VmlzaWJsZSgwKSBpcyB0cnVlCiAKIFRlc3QgZGVmYXVsdCBwYWdlIHNpemUKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBpbmNo
U2l6ZSg4LjUsIDExKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAsIDIwMCknICsgcHhN
YXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGF1dG8gcGFnZSBzaXplCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgaW5jaFNpemUoOC41LCAx
MSkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAy
LCAzLCA0KQogVGVzdCBsYW5kc2NhcGUKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVy
cmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBpbmNoU2l6ZSgxMSwgOC41KQorUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkgaXMgJygyMDAsIDEwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDIwMCwgMTAw
LCAxLCAyLCAzLCA0KSBpcyAnKDIwMCwgMTAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRl
c3QgcG9ydHJhaXQKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJ
blBpeGVscygwKSBpcyBpbmNoU2l6ZSg4LjUsIDExKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMg
JygxMDAsIDIwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDIwMCwgMTAwLCAxLCAyLCAzLCA0
KSBpcyAnKDEwMCwgMjAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgYTUKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNp
emUoMTQ4LCAyMTApCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMTQ4LCAyMTApICsg
cHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGE1IGxhbmRzY2FwZQotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIG1tU2l6ZSgyMTAsIDE0
OCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgyMTAsIDE0OCkgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkKIFRlc3QgcG9ydHJhaXQgYTQKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNpemUoMjEwLCAyOTcpCitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAw
LCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMjEwLCAyOTcpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQp
CiBUZXN0IGEzCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5Q
aXhlbHMoMCkgaXMgbW1TaXplKDI5NywgNDIwKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5w
YWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1T
aXplKDI5NywgNDIwKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBiNQotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIG1tU2l6ZSgx
NzYsIDI1MCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5Q
aXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgxNzYsIDI1MCkgKyBweE1h
cmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgYjQKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJl
ZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNpemUoMjUwLCAzNTMpCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSBpcyBtbVNpemUoMjUwLCAzNTMpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBU
ZXN0IGxldHRlcgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUlu
UGl4ZWxzKDApIGlzIGluY2hTaXplKDguNSwgMTEpCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBp
bmNoU2l6ZSg4LjUsIDExKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBsZWdhbAotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIGlu
Y2hTaXplKDguNSwgMTQpCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFy
Z2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBpbmNoU2l6ZSg4LjUsIDE0
KSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBsZWRnZXIKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBpbmNoU2l6ZSgxMSwgMTcp
CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAs
IDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBpbmNoU2l6ZSgxMSwgMTcpICsgcHhNYXJnaW5zKDEs
IDIsIDMsIDQpCiBUZXN0IDEwY20KLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVk
UGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNpemUoMTAwLCAxMDApCitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAz
LCA0KSBpcyBtbVNpemUoMTAwLCAxMDApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IDIw
Y20geCAzMGNtCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5Q
aXhlbHMoMCkgaXMgbW1TaXplKDIwMCwgMzAwKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5w
YWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1T
aXplKDIwMCwgMzAwKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCAxMDAwMHB4IDIwMDAw
cHgKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygw
KSBpcyAnKDEwMDAwLDIwMDAwKScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIw
MDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgaW52YWxpZCBwYWdlIHNpemU6IC0x
MGNtCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMo
MCkgaXMgJygxMDAwMCwyMDAwMCknCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXpl
QW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAy
MDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGludmFsaWQgcGFnZSBzaXplOiBh
NCBhNAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxz
KDApIGlzICcoMTAwMDAsMjAwMDApJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6
ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwg
MjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTog
bGFuZHNjYXBlIHBvcnRyYWl0Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBh
Z2VTaXplSW5QaXhlbHMoMCkgaXMgJygxMDAwMCwyMDAwMCknCitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0
KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGludmFs
aWQgcGFnZSBzaXplOiAxMGNtIGxldHRlcgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVm
ZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzICcoMTAwMDAsMjAwMDApJworUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVz
dCBpbnZhbGlkIHBhZ2Ugc2l6ZTogMTBjbSAxMGNtIDEwY20KLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyAnKDEwMDAwLDIwMDAwKScKK1BB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAw
LCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwg
MywgNCkKIFRlc3QgaW52YWxpZCBwYWdlIHNpemU6IGVtcHR5Ci1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgJygxMDAwMCwyMDAwMCknCitQ
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEw
MCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIs
IDMsIDQpCiAKLVRlc3QgcGFnZSBhcmVhIHdoZW4gbWFyZ2luLCBwYWRkaW5nLCBhbmQgYm9yZGVy
IGFyZSAwcHgKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZUFyZWFSZWN0SW5QaXhlbHMo
MCkgaXMgJygwLDAsMTAwMDAsMjAwMDApJwotVGVzdCBub24temVybyBtYXJnaW4sIHBhZGRpbmcs
IGFuZCBib3JkZXIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZUFyZWFSZWN0SW5QaXhl
bHMoMCkgaXMgJygyMTg0LDI3Myw3MjcwLDE4NjM1KScKLVRlc3QgcGVyY2VudGFnZSBtYXJnaW4g
YW5kIHBhZGRpbmcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZUFyZWFSZWN0SW5QaXhl
bHMoMCkgaXMgJygxNTAwLDI1MDAsNzAwMCwxNTAwMCknCitUZXN0IDBweCBtYXJnaW5zCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwg
MjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDAsIDAsIDAs
IDApCitUZXN0IG5vbi16ZXJvIG1hcmdpbnMKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFn
ZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAw
MDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMTAsIDIwLCA0MCwgODApCitUZXN0IHBlcmNlbnRhZ2Ug
bWFyZ2luCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJn
aW5zKDgwMCwgNDAwLCAyMDAsIDEwMCkKK1Rlc3QgbWFyZ2luOiBhdXRvIDQlIDIlIDElCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwg
MjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDQwMCwg
MjAwLCAxMDApCitUZXN0IG1hcmdpbjogOCUgYXV0byAyJSAxJQorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywg
NCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDIsIDIwMCwgMTAwKQorVGVz
dCBtYXJnaW46IDglIDQlIGF1dG8gMSUKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAs
IDIwMDAwKScgKyBweE1hcmdpbnMoODAwLCA0MDAsIDMsIDEwMCkKK1Rlc3QgbWFyZ2luOiA4JSA0
JSAyJSBhdXRvCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhN
YXJnaW5zKDgwMCwgNDAwLCAyMDAsIDQpCiBUZXN0IHZpc2liaWxpdHk6IGhpZGRlbgotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5wYWdlQXJlYVJlY3RJblBpeGVscygwKSBpcyAnKDE1MDAsMjUw
MCw3MDAwLDE1MDAwKScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJn
aW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScg
KyBweE1hcmdpbnMoODAwLCA0MDAsIDIwMCwgNCkKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWZvcm1hdC1k
YXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWZvcm1hdC1kYXRhLmh0bWwKaW5k
ZXggZDEzZGNkYjY4NmU4YzAxMjcxYjE5ZTgyODE5Yzg4YzhlOWZkNmVlZC4uZjMwNWMyOGQ1MTAw
OGM0OWVhYTBjY2JkNzRiYWQzMWE1N2FmYzJhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJp
bnRpbmcvcGFnZS1mb3JtYXQtZGF0YS5odG1sCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3Bh
Z2UtZm9ybWF0LWRhdGEuaHRtbApAQCAtMjEsMTIgKzIxLDE3IEBACiAKICAgICBmdW5jdGlvbiBp
bmNoU2l6ZSh3aWR0aCwgaGVpZ2h0KQogICAgIHsKLSAgICAgICAgcmV0dXJuICIoIiArIE1hdGgu
Zmxvb3Iod2lkdGggKiA5NikgKyAiLCIgKyBNYXRoLmZsb29yKGhlaWdodCAqIDk2KSArICIpIjsK
KyAgICAgICAgcmV0dXJuICIoIiArIE1hdGguZmxvb3Iod2lkdGggKiA5NikgKyAiLCAiICsgTWF0
aC5mbG9vcihoZWlnaHQgKiA5NikgKyAiKSI7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gbW1TaXpl
KHdpZHRoLCBoZWlnaHQpCiAgICAgewotICAgICAgICByZXR1cm4gIigiICsgTWF0aC5mbG9vcih3
aWR0aCAqIDk2IC8gMjUuNCkgKyAiLCIgKyBNYXRoLmZsb29yKGhlaWdodCAqIDk2IC8gMjUuNCkg
KyAiKSI7CisgICAgICAgIHJldHVybiAiKCIgKyBNYXRoLmZsb29yKHdpZHRoICogOTYgLyAyNS40
KSArICIsICIgKyBNYXRoLmZsb29yKGhlaWdodCAqIDk2IC8gMjUuNCkgKyAiKSI7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcHhNYXJnaW5zKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCkKKyAgICB7
CisgICAgICAgIHJldHVybiAiICIgKyB0b3AgKyAiICIgKyByaWdodCArICIgIiArIGJvdHRvbSAr
ICIgIiArIGxlZnQ7CiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewpAQCAtNTgsMTExICs2MywxMjkgQEAKICAgICAgICAgLy8gUGFnZSBzaXplIHRlc3RzCiAK
ICAgICAgICAgZGVidWcoIlRlc3QgZGVmYXVsdCBwYWdlIHNpemUiKTsKLSAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAi
aW5jaFNpemUoOC41LCAxMSkiKTsgLy8gTGV0dGVyCisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkiLCAiJygxMDAsIDIwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAg
ICAgICAgZGVidWcoIlRlc3QgYXV0byBwYWdlIHNpemUiKTsKICAgICAgICAgYXBwZW5kU3R5bGUo
IkBwYWdlIHtzaXplOmF1dG87fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSIsICJpbmNoU2l6ZSg4LjUsIDExKSIp
OworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJn
aW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwLCAyMDApJyArIHB4
TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGxhbmRzY2FwZSIp
OwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6bGFuZHNjYXBlO30iKTsKLSAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhl
bHMoMCkiLCAiaW5jaFNpemUoMTEsIDguNSkiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAy
LCAzLCA0KSIsICInKDIwMCwgMTAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDIwMCwgMTAwLCAxLCAyLCAzLCA0KSIsICInKDIwMCwgMTAwKScgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBwb3J0cmFpdCIpOwogICAgICAg
ICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6cG9ydHJhaXQ7fSIpOwotICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSIsICJp
bmNoU2l6ZSg4LjUsIDExKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwg
IicoMTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOworICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMjAw
LCAxMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0
KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGE1Iik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJA
cGFnZSB7c2l6ZTphNTt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIm1tU2l6ZSgxNDgsIDIxMCkiKTsKKyAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUoMTQ4LCAyMTApICsgcHhN
YXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgYTUgbGFuZHNjYXBl
Iik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTphNSBsYW5kc2NhcGU7fSIpOwot
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJ
blBpeGVscygwKSIsICJtbVNpemUoMjEwLCAxNDgpIik7CisgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwg
MSwgMiwgMywgNCkiLCAibW1TaXplKDIxMCwgMTQ4KSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIp
OwogCiAgICAgICAgIGRlYnVnKCJUZXN0IHBvcnRyYWl0IGE0Iik7CiAgICAgICAgIGFwcGVuZFN0
eWxlKCJAcGFnZSB7c2l6ZTpwb3J0cmFpdCBhNDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIm1tU2l6ZSgy
MTAsIDI5NykiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUo
MjEwLCAyOTcpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRl
c3QgYTMiKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOmEzO30iKTsKLSAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhl
bHMoMCkiLCAibW1TaXplKDI5NywgNDIwKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIs
IDMsIDQpIiwgIm1tU2l6ZSgyOTcsIDQyMCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAog
ICAgICAgICBkZWJ1ZygiVGVzdCBiNSIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3Np
emU6YjU7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVy
cmVkUGFnZVNpemVJblBpeGVscygwKSIsICJtbVNpemUoMTc2LCAyNTApIik7CisgICAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygw
LCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAibW1TaXplKDE3NiwgMjUwKSArIHB4TWFyZ2lucygx
LCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGI0Iik7CiAgICAgICAgIGFwcGVu
ZFN0eWxlKCJAcGFnZSB7c2l6ZTpiNDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIm1tU2l6ZSgyNTAsIDM1
MykiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUoMjUwLCAz
NTMpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgbGV0
dGVyIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTpsZXR0ZXI7fSIpOwotICAg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBp
eGVscygwKSIsICJpbmNoU2l6ZSg4LjUsIDExKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEs
IDIsIDMsIDQpIiwgImluY2hTaXplKDguNSwgMTEpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7
CiAKICAgICAgICAgZGVidWcoIlRlc3QgbGVnYWwiKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBw
YWdlIHtzaXplOmxlZ2FsO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiaW5jaFNpemUoOC41LCAxNCkiKTsK
KyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJpbmNoU2l6ZSg4LjUsIDE0KSAr
IHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGxlZGdlciIp
OwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6bGVkZ2VyO30iKTsKLSAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMo
MCkiLCAiaW5jaFNpemUoMTEsIDE3KSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMs
IDQpIiwgImluY2hTaXplKDExLCAxNykgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAg
ICAgICBkZWJ1ZygiVGVzdCAxMGNtIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6
ZToxMGNtO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZl
cnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAibW1TaXplKDEwMCwgMTAwKSIpOworICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIm1tU2l6ZSgxMDAsIDEwMCkgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCAyMGNtIHggMzBjbSIpOwogICAg
ICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6MjBjbSAzMGNtO30iKTsKLSAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCki
LCAibW1TaXplKDIwMCwgMzAwKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQp
IiwgIm1tU2l6ZSgyMDAsIDMwMCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAg
ICBkZWJ1ZygiVGVzdCAxMDAwMHB4IDIwMDAwcHgiKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBw
YWdlIHtzaXplOjEwMDAwcHggMjAwMDBweDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIicoMTAwMDAsMjAw
MDApJyIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIw
MDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBp
bnZhbGlkIHBhZ2Ugc2l6ZTogLTEwY20iKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtz
aXplOi0xMGNtO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBy
ZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiJygxMDAwMCwyMDAwMCknIik7CisgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lu
cygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGludmFsaWQgcGFnZSBzaXpl
OiBhNCBhNCIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6YTQgYTQ7fSIpOwot
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJ
blBpeGVscygwKSIsICInKDEwMDAwLDIwMDAwKSciKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7
CiAKICAgICAgICAgZGVidWcoIlRlc3QgaW52YWxpZCBwYWdlIHNpemU6IGxhbmRzY2FwZSBwb3J0
cmFpdCIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6bGFuZHNjYXBlIHBvcnRy
YWl0O30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJl
ZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiJygxMDAwMCwyMDAwMCknIik7CisgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAy
LCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGludmFsaWQgcGFnZSBzaXplOiAxMGNt
IGxldHRlciIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6MTBjbSBsZXR0ZXI7
fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFn
ZVNpemVJblBpeGVscygwKSIsICInKDEwMDAwLDIwMDAwKSciKTsKKyAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwg
MjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMs
IDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgaW52YWxpZCBwYWdlIHNpemU6IDEwY20gMTBj
bSAxMGNtIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZToxMGNtIDEwY20gMTBj
bTt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQ
YWdlU2l6ZUluUGl4ZWxzKDApIiwgIicoMTAwMDAsMjAwMDApJyIpOworICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAw
LCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwg
MywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTogZW1wdHki
KTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOjt9Iik7Ci0gICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwg
IicoMTAwMDAsMjAwMDApJyIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwg
IicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAgICBk
ZWJ1ZygiIik7CiAKLSAgICAgICAgLy8gUGFnZSBhcmVhIHRlc3RzCisgICAgICAgIC8vIE1hcmdp
biB0ZXN0cworCisgICAgICAgIGRlYnVnKCJUZXN0IDBweCBtYXJnaW5zIik7CisgICAgICAgIGFw
cGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2luOjBweDt9Iik7CisgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwg
MSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygwLCAwLCAwLCAwKSIp
OworCisgICAgICAgIGRlYnVnKCJUZXN0IG5vbi16ZXJvIG1hcmdpbnMiKTsKKyAgICAgICAgYXBw
ZW5kU3R5bGUoIkBwYWdlIHttYXJnaW46MTBweCAyMHB4IDQwcHggODBweDt9Iik7CisgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lu
cygxMCwgMjAsIDQwLCA4MCkiKTsKKworICAgICAgICBkZWJ1ZygiVGVzdCBwZXJjZW50YWdlIG1h
cmdpbiIpOworICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge21hcmdpbjogOCUgNCUgMiUgMSU7
fSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRN
YXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAw
KScgKyBweE1hcmdpbnMoODAwLCA0MDAsIDIwMCwgMTAwKSIpOworCisgICAgICAgIGRlYnVnKCJU
ZXN0IG1hcmdpbjogYXV0byA0JSAyJSAxJSIpOworICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Ug
e21hcmdpbjogYXV0byA0JSAyJSAxJTt9Iik7CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCA0MDAsIDIwMCwgMTAwKSIp
OwogCi0gICAgICAgIGRlYnVnKCJUZXN0IHBhZ2UgYXJlYSB3aGVuIG1hcmdpbiwgcGFkZGluZywg
YW5kIGJvcmRlciBhcmUgMHB4Iik7Ci0gICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2lu
OjBweDtwYWRkaW5nOjBweDtib3JkZXI6MHB4O30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VBcmVhUmVjdEluUGl4ZWxzKDApIiwgIicoMCwwLDEwMDAwLDIw
MDAwKSciKTsKKyAgICAgICAgZGVidWcoIlRlc3QgbWFyZ2luOiA4JSBhdXRvIDIlIDElIik7Cisg
ICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2luOiA4JSBhdXRvIDIlIDElO30iKTsKKyAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhN
YXJnaW5zKDgwMCwgMiwgMjAwLCAxMDApIik7CiAKLSAgICAgICAgZGVidWcoIlRlc3Qgbm9uLXpl
cm8gbWFyZ2luLCBwYWRkaW5nLCBhbmQgYm9yZGVyIik7Ci0gICAgICAgIGFwcGVuZFN0eWxlKCJA
cGFnZSB7bWFyZ2luOjFweCAycHggNHB4IDhweDsgcGFkZGluZzoxNnB4IDMycHggNjRweCAxMjhw
eDsgYm9yZGVyLXdpZHRoOjI1NnB4IDUxMnB4IDEwMjRweCAyMDQ4cHg7fSIpOyAvLyB0b3AsIHJp
Z2h0LCBib3R0b20sIGxlZnQKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LnBhZ2VBcmVhUmVjdEluUGl4ZWxzKDApIiwgIicoMjE4NCwyNzMsNzI3MCwxODYzNSknIik7Cisg
ICAgICAgIGRlYnVnKCJUZXN0IG1hcmdpbjogOCUgNCUgYXV0byAxJSIpOworICAgICAgICBhcHBl
bmRTdHlsZSgiQHBhZ2Uge21hcmdpbjogOCUgNCUgYXV0byAxJTt9Iik7CisgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAs
IDQwMCwgMywgMTAwKSIpOwogCi0gICAgICAgIGRlYnVnKCJUZXN0IHBlcmNlbnRhZ2UgbWFyZ2lu
IGFuZCBwYWRkaW5nIik7Ci0gICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2luOjIwJSAx
MCU7IHBhZGRpbmc6NSU7IGJvcmRlci13aWR0aDowcHg7fSIpOwotICAgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZUFyZWFSZWN0SW5QaXhlbHMoMCkiLCAiJygxNTAwLDI1
MDAsNzAwMCwxNTAwMCknIik7CisgICAgICAgIGRlYnVnKCJUZXN0IG1hcmdpbjogOCUgNCUgMiUg
YXV0byIpOworICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge21hcmdpbjogOCUgNCUgMiUgYXV0
bzt9Iik7CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAw
MDApJyArIHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAwLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJU
ZXN0IHZpc2liaWxpdHk6IGhpZGRlbiIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3Zp
c2liaWxpdHk6aGlkZGVufSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZUFyZWFSZWN0SW5QaXhlbHMoMCkiLCAiJygxNTAwLDI1MDAsNzAwMCwxNTAwMCknIik7
CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyAr
IHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAwLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCIiKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZTBmZjlhNWIwOTJkMWY1YmU3NWYxMTM5NGRhMjM4YWEzYjBjNTEzLi4wM2YzNGIzYjc0Zjg5NjQz
ZDNmYWU2MGVlZTZmNzMwMTIzNTZiYzIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEwLTA2LTI1ICBZdXpv
IEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIGRlZmF1bHQgdmFsdWUgaGFuZGxpbmcgZm9y
IHBhZ2UgZm9ybWF0IHByb3BlcnRpZXMuCisKKyAgICAgICAgRGVmYXVsdCBwYWdlIHNpemUgYW5k
IG9yaWVudGF0aW9uIGhhdmUgYmVlbiBoYXJkLWNvZGVkLgorICAgICAgICBJbnN0ZWFkLCBwYXNz
IGRlZmF1bHQgcGFnZSBzaXplIGFuZCBtYXJnaW5zIHRvCisgICAgICAgIFdlYkNvcmU6OkRvY3Vt
ZW50OjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyB0byBoYW5kbGUgYXV0byBwYWdlIHNpemUK
KyAgICAgICAgYW5kIG1hcmdpbnMgc3BlY2lmaWVkIGFzIHBlcmNlbnRhZ2VzLgorICAgICAgICBS
ZXR1cm4gbWFyZ2lucyBpbnN0ZWFkIG9mIHBhZ2UgcmVjdC4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDExNTAKKworICAgICAgICAqIFdlYkNvcmUu
YmFzZS5leHA6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQYWdlU2l6ZVByb3BlcnR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnBhZ2VTaXplRnJvbU5hbWUpOgorICAgICAg
ICAqIGNzcy9odG1sLmNzczoKKyAgICAgICAgKEBwYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL1ByaW50
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKToKKyAgICAgICAgKiBwYWdlL1ByaW50Q29udGV4dC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5o
ZXJpdGVkRmxhZ3M6OnBhZ2VTaXplVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRG
bGFnczo6c2V0UGFnZVNpemVUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChXZWJD
b3JlOjopOgorCiAyMDEwLTA2LTIyICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IDI3NDRm
ZThiOWQwMzYxMTc4ZjVmOWNiODMyOWU3MjRmNTYxMjRhMjEuLmI5YTE0NzRlMjk2MzE4MDNlZmE1
ZmJmMjYyZWFhY2E1Y2JkZjdjYzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4
cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAgLTI1MSw5ICsyNTEsOCBAQCBfX1pO
N1dlYkNvcmUxMlBsdWdpbldpZGdldDE0aW52YWxpZGF0ZVJlY3RFUktOU183SW50UmVjdEUKIF9f
Wk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBf
X1pON1dlYkNvcmUxMlByaW50Q29udGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNf
OUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTZpc1BhZ2VCb3hWaXNpYmxl
RVBOU181RnJhbWVFaQotX19aTjdXZWJDb3JlMTJQcmludENvbnRleHQyMHBhZ2VBcmVhUmVjdElu
UGl4ZWxzRVBOU181RnJhbWVFaQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHQyMHBhZ2VOdW1i
ZXJGb3JFbGVtZW50RVBOU183RWxlbWVudEVSS05TXzlGbG9hdFNpemVFCi1fX1pON1dlYkNvcmUx
MlByaW50Q29udGV4dDI1cHJlZmVycmVkUGFnZVNpemVJblBpeGVsc0VQTlNfNUZyYW1lRWkKK19f
Wk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MjZwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0VQTlNf
NUZyYW1lRWlpaWlpaWkKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0Mjhjb21wdXRlUGFnZVJl
Y3RzV2l0aFBhZ2VTaXplRVJLTlNfOUZsb2F0U2l6ZUViCiBfX1pON1dlYkNvcmUxMlByaW50Q29u
dGV4dEMxRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dEQxRXYKQEAgLTYy
OCwxMSArNjI3LDEwIEBAIF9fWk43V2ViQ29yZThEb2N1bWVudDE0c2V0Rm9jdXNlZE5vZGVFTjNX
VEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDE2aXNQYWdl
Qm94VmlzaWJsZUVpCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxN2dldEZvY3VzYWJsZU5vZGVzRVJO
M1dURjZWZWN0b3JJTlMxXzZSZWZQdHJJTlNfNE5vZGVFRUVMbTBFRUUKIF9fWk43V2ViQ29yZThE
b2N1bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9uc0V2Ci1fX1pON1dlYkNvcmU4RG9jdW1lbnQyMHBh
Z2VBcmVhUmVjdEluUGl4ZWxzRWkKIF9fWk43V2ViQ29yZThEb2N1bWVudDIyY3JlYXRlRG9jdW1l
bnRGcmFnbWVudEV2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyM3JlbmRlcmVkUmVjdHNGb3JNYXJr
ZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCiBfX1pON1dlYkNvcmU4RG9jdW1l
bnQyNHNldFNob3VsZENyZWF0ZVJlbmRlcmVyc0ViCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQyNXBy
ZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHNFaQorX19aTjdXZWJDb3JlOERvY3VtZW50MjZwYWdlU2l6
ZUFuZE1hcmdpbnNJblBpeGVsc0VpUk5TXzdJbnRTaXplRVJpUzNfUzNfUzNfCiBfX1pON1dlYkNv
cmU4RG9jdW1lbnQzNnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0V2CiBfX1pO
N1dlYkNvcmU4RG9jdW1lbnQ0aGVhZEV2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGFEMUV2CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IGFhMDEwZmQ3ZTk3Y2U1ZjFjMTM0MmVkNzBmYzExMjFh
ZTczNTZmNDIuLjExM2FjYTllZWViMGZlNWU3ZmMxYTdjN2Q3ZjJmNTBlNTYzOWNmNTkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQ1NTQm9y
ZGVySW1hZ2VWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0N1cnNvckltYWdlVmFsdWUuaCIKICNpbmNs
dWRlICJDU1NGb250RmFjZVJ1bGUuaCIKLSNpbmNsdWRlICJDU1NIZWxwZXIuaCIKICNpbmNsdWRl
ICJDU1NJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCiAjaW5jbHVkZSAi
Q1NTUGFnZVJ1bGUuaCIKQEAgLTU1MTUsMTQgKzU1MTQsMTcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogCiB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5UGFnZVNpemVQcm9wZXJ0eShDU1NWYWx1ZSogdmFsdWUpCiB7Cisg
ICAgbV9zdHlsZS0+c2V0UGFnZVNpemVUeXBlKFBBR0VfU0laRV9VTkRFRklORUQpOwogICAgIGlm
ICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCiAgICAgICAgIHJldHVybjsKICAgICBDU1NWYWx1ZUxp
c3QqIHZhbHVlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKICAgICBM
ZW5ndGggd2lkdGg7CiAgICAgTGVuZ3RoIGhlaWdodDsKKyAgICBQYWdlU2l6ZVR5cGUgcGFnZVNp
emVUeXBlID0gUEFHRV9TSVpFX1VOREVGSU5FRDsKICAgICBzd2l0Y2ggKHZhbHVlTGlzdC0+bGVu
Z3RoKCkpIHsKICAgICBjYXNlIDI6IHsKICAgICAgICAgLy8gPGxlbmd0aD57Mn0gfCA8cGFnZS1z
aXplPiA8b3JpZW50YXRpb24+CisgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9SRVNP
TFZFRDsKICAgICAgICAgaWYgKCF2YWx1ZUxpc3QtPml0ZW0oMCktPmlzUHJpbWl0aXZlVmFsdWUo
KSB8fCAhdmFsdWVMaXN0LT5pdGVtKDEpLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZTAgPSBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlTGlzdC0+aXRlbSgwKSk7CkBAIC01
NTUxLDI0ICs1NTUzLDI0IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQYWdlU2l6ZVBy
b3BlcnR5KENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1
ZS0+cHJpbWl0aXZlVHlwZSgpOwogICAgICAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5p
dFR5cGVMZW5ndGgodHlwZSkpIHsKICAgICAgICAgICAgIC8vIDxsZW5ndGg+CisgICAgICAgICAg
ICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfUkVTT0xWRUQ7CiAgICAgICAgICAgICB3aWR0aCA9
IGhlaWdodCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aEludEZvckxlbmd0
aChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUpLCBGaXhlZCk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBpZiAodHlwZSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkpIHsKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAg
ICAgICAgICAgIC8vIGF1dG8KLSAgICAgICAgICAgICAgICBpZiAoIXBhZ2VTaXplRnJvbU5hbWUo
MCwgMCwgd2lkdGgsIGhlaWdodCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfQVVUTzsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVQb3J0cmFpdDoKKyAgICAgICAgICAg
ICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfQVVUT19QT1JUUkFJVDsKKyAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVMYW5kc2NhcGU6Ci0gICAgICAg
ICAgICAgICAgLy8gPHBhZ2Utc2l6ZT4KLSAgICAgICAgICAgICAgICBpZiAoIXBhZ2VTaXplRnJv
bU5hbWUoMCwgcHJpbWl0aXZlVmFsdWUsIHdpZHRoLCBoZWlnaHQpKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgcGFnZVNpemVUeXBlID0gUEFHRV9TSVpFX0FV
VE9fTEFORFNDQVBFOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgICAgICAvLyBbIHBvcnRyYWl0IHwgbGFuZHNjYXBlXQorICAgICAgICAg
ICAgICAgIC8vIDxwYWdlLXNpemU+CisgICAgICAgICAgICAgICAgcGFnZVNpemVUeXBlID0gUEFH
RV9TSVpFX1JFU09MVkVEOwogICAgICAgICAgICAgICAgIGlmICghcGFnZVNpemVGcm9tTmFtZShw
cmltaXRpdmVWYWx1ZSwgMCwgd2lkdGgsIGhlaWdodCkpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KQEAgLTU1NzgsNiArNTU4MCw3IEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6YXBwbHlQYWdlU2l6ZVByb3BlcnR5KENTU1ZhbHVlKiB2YWx1ZSkKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIG1fc3R5bGUtPnNldFBhZ2VTaXplVHlw
ZShwYWdlU2l6ZVR5cGUpOwogICAgIG1fc3R5bGUtPnNldFBhZ2VTaXplKExlbmd0aFNpemUod2lk
dGgsIGhlaWdodCkpOwogICAgIHJldHVybjsKIH0KQEAgLTU1OTMsMzEgKzU1OTYsMTAgQEAgYm9v
bCBDU1NTdHlsZVNlbGVjdG9yOjpwYWdlU2l6ZUZyb21OYW1lKENTU1ByaW1pdGl2ZVZhbHVlKiBw
YWdlU2l6ZU5hbWUsIENTU1ByaW0KICAgICBzdGF0aWMgY29uc3QgTGVuZ3RoIGxlZ2FsV2lkdGgg
PSBpbmNoTGVuZ3RoKDguNSksIGxlZ2FsSGVpZ2h0ID0gaW5jaExlbmd0aCgxNCk7CiAgICAgc3Rh
dGljIGNvbnN0IExlbmd0aCBsZWRnZXJXaWR0aCA9IGluY2hMZW5ndGgoMTEpLCBsZWRnZXJIZWln
aHQgPSBpbmNoTGVuZ3RoKDE3KTsKIAotICAgIC8vIEZJWE1FOiBEZWZpbmUgVUEgZGVmYXVsdCBw
YWdlIHNpemUuIEFzc3VtZSBsZXR0ZXIgZm9yIG5vdy4KLSAgICBpbnQgaWRlbnQgPSBDU1NWYWx1
ZUxldHRlcjsKLSAgICBpZiAocGFnZVNpemVOYW1lKSB7Ci0gICAgICAgIGlmIChwYWdlU2l6ZU5h
bWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZGVudCA9IHBhZ2VTaXplTmFtZS0+Z2V0
SWRlbnQoKTsKLSAgICB9CisgICAgaWYgKCFwYWdlU2l6ZU5hbWUgfHwgcGFnZVNpemVOYW1lLT5w
cmltaXRpdmVUeXBlKCkgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRklYTUU6IERlZmluZSBVQSBkZWZhdWx0IHBhZ2Ugb3Jp
ZW50YXRpb24uIEFzc3VtZSBwb3J0cmFpdCBmb3Igbm93LgotICAgIGJvb2wgcG9ydHJhaXQgPSB0
cnVlOwotICAgIGlmIChwYWdlT3JpZW50YXRpb24pIHsKLSAgICAgICAgaWYgKHBhZ2VPcmllbnRh
dGlvbi0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHN3aXRjaCAocGFnZU9yaWVudGF0aW9u
LT5nZXRJZGVudCgpKSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVMYW5kc2NhcGU6Ci0gICAgICAg
ICAgICBwb3J0cmFpdCA9IGZhbHNlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVQb3J0cmFpdDoKLSAgICAgICAgICAgIHBvcnRyYWl0ID0gdHJ1ZTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB9Ci0gICAgfQotICAgIHN3aXRjaCAoaWRlbnQpIHsKKyAgICBzd2l0Y2ggKHBhZ2VT
aXplTmFtZS0+Z2V0SWRlbnQoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBNToKICAgICAgICAgd2lk
dGggPSBhNVdpZHRoOwogICAgICAgICBoZWlnaHQgPSBhNUhlaWdodDsKQEAgLTU2NTMsOCArNTYz
NSwyMSBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OnBhZ2VTaXplRnJvbU5hbWUoQ1NTUHJpbWl0
aXZlVmFsdWUqIHBhZ2VTaXplTmFtZSwgQ1NTUHJpbQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9Ci0gICAgaWYgKCFwb3J0cmFpdCkKLSAgICAgICAgc3dhcCh3aWR0
aCwgaGVpZ2h0KTsKKworICAgIGlmIChwYWdlT3JpZW50YXRpb24pIHsKKyAgICAgICAgaWYgKHBh
Z2VPcmllbnRhdGlvbi0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
SURFTlQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHN3aXRjaCAocGFnZU9y
aWVudGF0aW9uLT5nZXRJZGVudCgpKSB7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVMYW5kc2NhcGU6
CisgICAgICAgICAgICBzdGQ6OnN3YXAod2lkdGgsIGhlaWdodCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZVBvcnRyYWl0OgorICAgICAgICAgICAgLy8gTm90aGlu
ZyB0byBkby4KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1dlYkNvcmUvY3NzL2h0bWwuY3Nz
CmluZGV4IDEwNTE2NTkyYTRiMDk4ZTIxZGE1NjE3YjM2Mzc1MTEzZGU1OGUzMmMuLjVhMjA1NjU2
MDBkMTQ4MDBmNGQzMTM1MGU2YjZmZjM2Y2YzOWNjM2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L2h0bWwuY3NzCisrKyBiL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC03MjgsNyArNzI4LDkgQEAg
aWZyYW1lIHsKIEBwYWdlIHsKICAgICAvKiBGSVhNRTogRGVmaW5lIHRoZSByaWdodCBkZWZhdWx0
IHZhbHVlcyBmb3IgcGFnZSBwcm9wZXJ0aWVzLiAqLwogICAgIHNpemU6IGF1dG87Ci0gICAgbWFy
Z2luOiAxaW47CisgICAgbWFyZ2luOiBhdXRvOworICAgIHBhZGRpbmc6IDBweDsKKyAgICBib3Jk
ZXItd2lkdGg6IDBweDsKIH0KIAogLyogbm9zY3JpcHQgaXMgaGFuZGxlZCBpbnRlcm5hbGx5LCBh
cyBpdCBkZXBlbmRzIG9uIHNldHRpbmdzICovCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYzAxMDY3ODYwN2E0MDA3
YTU0OGIyOTAwZDQ2ZmE3M2U2NzAzODA4Yi4uZTU0YWQ3MDkxZDE4MTY3ZjIwZWFkZDEzOGMzOTA0
NWE1YWI0MjE4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTUwOCwyOSArMTUwOCw0MyBAQCBib29sIERvY3Vt
ZW50Ojppc1BhZ2VCb3hWaXNpYmxlKGludCBwYWdlSW5kZXgpCiAgICAgcmV0dXJuIHN0eWxlLT52
aXNpYmlsaXR5KCkgIT0gSElEREVOOyAvLyBkaXNwbGF5IHByb3BlcnR5IGRvZXNuJ3QgYXBwbHkg
dG8gQHBhZ2UuCiB9CiAKLUludFJlY3QgRG9jdW1lbnQ6OnBhZ2VBcmVhUmVjdEluUGl4ZWxzKGlu
dCBwYWdlSW5kZXgpCit2b2lkIERvY3VtZW50OjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhp
bnQgcGFnZUluZGV4LCBJbnRTaXplJiBwYWdlU2l6ZSwgaW50JiBtYXJnaW5Ub3AsIGludCYgbWFy
Z2luUmlnaHQsIGludCYgbWFyZ2luQm90dG9tLCBpbnQmIG1hcmdpbkxlZnQpCiB7CiAgICAgUmVm
UHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IHN0eWxlRm9yUGFnZShwYWdlSW5kZXgpOwotICAgIElu
dFNpemUgcGFnZVNpemUgPSBwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKHBhZ2VJbmRleCk7Ci0g
ICAgLy8gMTAwJSB2YWx1ZSBmb3IgbWFyZ2luLXtsZWZ0LHJpZ2h0LHRvcCxib3R0b219LiBUaGlz
IGlzIHVzZWQgYWxzbyBmb3IgdG9wIGFuZCBib3R0b20uIGh0dHA6Ly93d3cudzMub3JnL1RSL0NT
UzIvYm94Lmh0bWwjdmFsdWUtZGVmLW1hcmdpbi13aWR0aAotICAgIGludCBtYXhWYWx1ZSA9IHBh
Z2VTaXplLndpZHRoKCk7Ci0gICAgaW50IHN1cnJvdW5kTGVmdCA9IHN0eWxlLT5tYXJnaW5MZWZ0
KCkuY2FsY1ZhbHVlKG1heFZhbHVlKSArIHN0eWxlLT5ib3JkZXJMZWZ0KCkud2lkdGgoKSArIHN0
eWxlLT5wYWRkaW5nTGVmdCgpLmNhbGNWYWx1ZShtYXhWYWx1ZSk7Ci0gICAgaW50IHN1cnJvdW5k
UmlnaHQgPSBzdHlsZS0+bWFyZ2luUmlnaHQoKS5jYWxjVmFsdWUobWF4VmFsdWUpICsgc3R5bGUt
PmJvcmRlclJpZ2h0KCkud2lkdGgoKSArIHN0eWxlLT5wYWRkaW5nUmlnaHQoKS5jYWxjVmFsdWUo
bWF4VmFsdWUpOwotICAgIGludCBzdXJyb3VuZFRvcCA9IHN0eWxlLT5tYXJnaW5Ub3AoKS5jYWxj
VmFsdWUobWF4VmFsdWUpICsgc3R5bGUtPmJvcmRlclRvcCgpLndpZHRoKCkgKyBzdHlsZS0+cGFk
ZGluZ1RvcCgpLmNhbGNWYWx1ZShtYXhWYWx1ZSk7Ci0gICAgaW50IHN1cnJvdW5kQm90dG9tID0g
c3R5bGUtPm1hcmdpbkJvdHRvbSgpLmNhbGNWYWx1ZShtYXhWYWx1ZSkgKyBzdHlsZS0+Ym9yZGVy
Qm90dG9tKCkud2lkdGgoKSArIHN0eWxlLT5wYWRkaW5nQm90dG9tKCkuY2FsY1ZhbHVlKG1heFZh
bHVlKTsKLSAgICBpbnQgd2lkdGggPSBwYWdlU2l6ZS53aWR0aCgpIC0gc3Vycm91bmRMZWZ0IC0g
c3Vycm91bmRSaWdodDsKLSAgICBpbnQgaGVpZ2h0ID0gcGFnZVNpemUuaGVpZ2h0KCkgLSBzdXJy
b3VuZFRvcCAtIHN1cnJvdW5kQm90dG9tOwogCi0gICAgcmV0dXJuIEludFJlY3Qoc3Vycm91bmRM
ZWZ0LCBzdXJyb3VuZFRvcCwgd2lkdGgsIGhlaWdodCk7Ci19CisgICAgaW50IHdpZHRoID0gcGFn
ZVNpemUud2lkdGgoKTsKKyAgICBpbnQgaGVpZ2h0ID0gcGFnZVNpemUuaGVpZ2h0KCk7CisgICAg
c3dpdGNoIChzdHlsZS0+cGFnZVNpemVUeXBlKCkpIHsKKyAgICBjYXNlIFBBR0VfU0laRV9VTkRF
RklORUQ6CisgICAgY2FzZSBQQUdFX1NJWkVfQVVUTzoKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQQUdFX1NJWkVfQVVUT19MQU5EU0NBUEU6CisgICAgICAgIGlmICh3aWR0aCA8IGhlaWdodCkK
KyAgICAgICAgICAgIHN0ZDo6c3dhcCh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQQUdFX1NJWkVfQVVUT19QT1JUUkFJVDoKKyAgICAgICAgaWYgKHdpZHRoID4gaGVp
Z2h0KQorICAgICAgICAgICAgc3RkOjpzd2FwKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFBBR0VfU0laRV9SRVNPTFZFRDogeworICAgICAgICBMZW5ndGhTaXplIHNp
emUgPSBzdHlsZS0+cGFnZVNpemUoKTsKKyAgICAgICAgQVNTRVJUKHNpemUud2lkdGgoKS5pc0Zp
eGVkKCkpOworICAgICAgICBBU1NFUlQoc2l6ZS5oZWlnaHQoKS5pc0ZpeGVkKCkpOworICAgICAg
ICB3aWR0aCA9IHNpemUud2lkdGgoKS5jYWxjVmFsdWUoMCk7CisgICAgICAgIGhlaWdodCA9IHNp
emUuaGVpZ2h0KCkuY2FsY1ZhbHVlKDApOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHBhZ2VTaXpl
ID0gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKIAotSW50U2l6ZSBEb2N1bWVudDo6cHJlZmVycmVk
UGFnZVNpemVJblBpeGVscyhpbnQgcGFnZUluZGV4KQotewotICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gc3R5bGUgPSBzdHlsZUZvclBhZ2UocGFnZUluZGV4KTsKLSAgICBMZW5ndGhTaXplIHNpemUg
PSBzdHlsZS0+cGFnZVNpemUoKTsKLSAgICBBU1NFUlQoc2l6ZS53aWR0aCgpLmlzRml4ZWQoKSk7
Ci0gICAgQVNTRVJUKHNpemUuaGVpZ2h0KCkuaXNGaXhlZCgpKTsKLSAgICByZXR1cm4gSW50U2l6
ZShzaXplLndpZHRoKCkuY2FsY1ZhbHVlKDApLCBzaXplLmhlaWdodCgpLmNhbGNWYWx1ZSgwKSk7
CisgICAgLy8gVGhlIHBlcmNlbnRhZ2UgaXMgY2FsY3VsYXRlZCB3aXRoIHJlc3BlY3QgdG8gdGhl
IHdpZHRoIGV2ZW4gZm9yIG1hcmdpbiB0b3AgYW5kIGJvdHRvbS4KKyAgICAvLyBodHRwOi8vd3d3
LnczLm9yZy9UUi9DU1MyL2JveC5odG1sI21hcmdpbi1wcm9wZXJ0aWVzCisgICAgbWFyZ2luVG9w
ID0gc3R5bGUtPm1hcmdpblRvcCgpLmlzQXV0bygpID8gbWFyZ2luVG9wIDogc3R5bGUtPm1hcmdp
blRvcCgpLmNhbGNWYWx1ZSh3aWR0aCk7CisgICAgbWFyZ2luUmlnaHQgPSBzdHlsZS0+bWFyZ2lu
UmlnaHQoKS5pc0F1dG8oKSA/IG1hcmdpblJpZ2h0IDogc3R5bGUtPm1hcmdpblJpZ2h0KCkuY2Fs
Y1ZhbHVlKHdpZHRoKTsKKyAgICBtYXJnaW5Cb3R0b20gPSBzdHlsZS0+bWFyZ2luQm90dG9tKCku
aXNBdXRvKCkgPyBtYXJnaW5Cb3R0b20gOiBzdHlsZS0+bWFyZ2luQm90dG9tKCkuY2FsY1ZhbHVl
KHdpZHRoKTsKKyAgICBtYXJnaW5MZWZ0ID0gc3R5bGUtPm1hcmdpbkxlZnQoKS5pc0F1dG8oKSA/
IG1hcmdpbkxlZnQgOiBzdHlsZS0+bWFyZ2luTGVmdCgpLmNhbGNWYWx1ZSh3aWR0aCk7CiB9CiAK
IHZvaWQgRG9jdW1lbnQ6OmNyZWF0ZVN0eWxlU2VsZWN0b3IoKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzE3ZmJiNzY3
ZjhjZWQ2NzRkZDRlMjE3NDI5ZDQ4YjA5MzczYWU0Yy4uMjI3ZjQzNTE2Y2I4NjNiZjhmOTYzYjRj
YWUyOGU4YTRkZjlkNDM2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00ODMsOSArNDgzLDE2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudElnbm9yaW5nUGVuZGluZ1N0eWxlc2hl
ZXRzKEVsZW1lbnQqKTsKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclBhZ2Uo
aW50IHBhZ2VJbmRleCk7CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgcGFnZSBib3ggKG1hcmdp
biBib3hlcyBhbmQgcGFnZSBib3JkZXJzKSBpcyB2aXNpYmxlLgogICAgIGJvb2wgaXNQYWdlQm94
VmlzaWJsZShpbnQgcGFnZUluZGV4KTsKLSAgICBJbnRSZWN0IHBhZ2VBcmVhUmVjdEluUGl4ZWxz
KGludCBwYWdlSW5kZXgpOwotICAgIEludFNpemUgcHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhp
bnQgcGFnZUluZGV4KTsKKworICAgIC8vIFJldHVybnMgdGhlIHByZWZlcnJlZCBwYWdlIHNpemUg
YW5kIG1hcmdpbnMgaW4gcGl4ZWxzLCBhc3N1bWluZyA5NgorICAgIC8vIHBpeGVscyBwZXIgaW5j
aC4gcGFnZVNpemUsIG1hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwKKyAgICAv
LyBtYXJnaW5MZWZ0IG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gdGhlIGRlZmF1bHQgdmFsdWVzIHRo
YXQgYXJlIHVzZWQgaWYKKyAgICAvLyBhdXRvIGlzIHNwZWNpZmllZC4KKyAgICB2b2lkIHBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYWdlSW5kZXgsIEludFNpemUmIHBhZ2VTaXplLCBp
bnQmIG1hcmdpblRvcCwgaW50JiBtYXJnaW5SaWdodCwgaW50JiBtYXJnaW5Cb3R0b20sIGludCYg
bWFyZ2luTGVmdCk7CisKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVTdHlsZUZvckFsbERvY3VtZW50
cygpOyAvLyBGSVhNRTogVHJ5IHRvIHJlZHVjZSB0aGUgIyBvZiBjYWxscyB0byB0aGlzIGZ1bmN0
aW9uLgogICAgIERvY0xvYWRlciogZG9jTG9hZGVyKCkgeyByZXR1cm4gbV9kb2NMb2FkZXIuZ2V0
KCk7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAgYi9XZWJD
b3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAppbmRleCA0YWI3MzY3YzRkNzlhMTgyM2U3YmQ3MTdl
OTY0OTc3ZjlkYWNkMDQ4Li5kZGE5MmI0ZDcyZTllOGE0NGU2MWM1NDU1ZDY3NmEwODRjODg4OThh
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAorKysgYi9XZWJDb3Jl
L3BhZ2UvUHJpbnRDb250ZXh0LmNwcApAQCAtMjIzLDE2ICsyMjMsMTEgQEAgYm9vbCBQcmludENv
bnRleHQ6OmlzUGFnZUJveFZpc2libGUoRnJhbWUqIGZyYW1lLCBpbnQgcGFnZU51bWJlcikKICAg
ICByZXR1cm4gZnJhbWUtPmRvY3VtZW50KCktPmlzUGFnZUJveFZpc2libGUocGFnZU51bWJlcik7
CiB9CiAKLVN0cmluZyBQcmludENvbnRleHQ6OnBhZ2VBcmVhUmVjdEluUGl4ZWxzKEZyYW1lKiBm
cmFtZSwgaW50IHBhZ2VOdW1iZXIpCitTdHJpbmcgUHJpbnRDb250ZXh0OjpwYWdlU2l6ZUFuZE1h
cmdpbnNJblBpeGVscyhGcmFtZSogZnJhbWUsIGludCBwYWdlTnVtYmVyLCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQsIGludCBtYXJnaW5Ub3AsIGludCBtYXJnaW5SaWdodCwgaW50IG1hcmdpbkJvdHRv
bSwgaW50IG1hcmdpbkxlZnQpCiB7Ci0gICAgSW50UmVjdCBwYWdlQXJlYSA9IGZyYW1lLT5kb2N1
bWVudCgpLT5wYWdlQXJlYVJlY3RJblBpeGVscyhwYWdlTnVtYmVyKTsKLSAgICByZXR1cm4gU3Ry
aW5nOjpmb3JtYXQoIiglZCwlZCwlZCwlZCkiLCBwYWdlQXJlYS54KCksIHBhZ2VBcmVhLnkoKSwg
cGFnZUFyZWEud2lkdGgoKSwgcGFnZUFyZWEuaGVpZ2h0KCkpOwotfQotCi1TdHJpbmcgUHJpbnRD
b250ZXh0OjpwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKEZyYW1lKiBmcmFtZSwgaW50IHBhZ2VO
dW1iZXIpCi17Ci0gICAgSW50U2l6ZSBwYWdlU2l6ZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5wcmVm
ZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKHBhZ2VOdW1iZXIpOwotICAgIHJldHVybiBTdHJpbmc6OmZv
cm1hdCgiKCVkLCVkKSIsIHBhZ2VTaXplLndpZHRoKCksIHBhZ2VTaXplLmhlaWdodCgpKTsKKyAg
ICBJbnRTaXplIHBhZ2VTaXplKHdpZHRoLCBoZWlnaHQpOworICAgIGZyYW1lLT5kb2N1bWVudCgp
LT5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhwYWdlTnVtYmVyLCBwYWdlU2l6ZSwgbWFyZ2lu
VG9wLCBtYXJnaW5SaWdodCwgbWFyZ2luQm90dG9tLCBtYXJnaW5MZWZ0KTsKKyAgICByZXR1cm4g
U3RyaW5nOjpmb3JtYXQoIiglZCwgJWQpICVkICVkICVkICVkIiwgcGFnZVNpemUud2lkdGgoKSwg
cGFnZVNpemUuaGVpZ2h0KCksIG1hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwg
bWFyZ2luTGVmdCk7CiB9CiAKIGludCBQcmludENvbnRleHQ6Om51bWJlck9mUGFnZXMoRnJhbWUq
IGZyYW1lLCBjb25zdCBGbG9hdFNpemUmIHBhZ2VTaXplSW5QaXhlbHMpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmggYi9XZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmgK
aW5kZXggODFhOWI3NjRkMTI4MTliMWU0ODdjMzM0M2U3Y2UxNzU4ZjQzYTQ0NC4uMTA4MGMyOWY4
MjYxNjUxN2E3YmNjN2FmNWQzMWU3NTQ5ZTUzOTAyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L1ByaW50Q29udGV4dC5oCisrKyBiL1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuaApAQCAtNTcs
OCArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGludCBwYWdlTnVtYmVyRm9yRWxlbWVudChF
bGVtZW50KiwgY29uc3QgRmxvYXRTaXplJiBwYWdlU2l6ZUluUGl4ZWxzKTsKICAgICBzdGF0aWMg
U3RyaW5nIHBhZ2VQcm9wZXJ0eShGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFt
ZSwgaW50IHBhZ2VOdW1iZXIpOwogICAgIHN0YXRpYyBib29sIGlzUGFnZUJveFZpc2libGUoRnJh
bWUqIGZyYW1lLCBpbnQgcGFnZU51bWJlcik7Ci0gICAgc3RhdGljIFN0cmluZyBwYWdlQXJlYVJl
Y3RJblBpeGVscyhGcmFtZSogZnJhbWUsIGludCBwYWdlTnVtYmVyKTsKLSAgICBzdGF0aWMgU3Ry
aW5nIHByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoRnJhbWUqIGZyYW1lLCBpbnQgcGFnZU51bWJl
cik7CisgICAgc3RhdGljIFN0cmluZyBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhGcmFtZSog
ZnJhbWUsIGludCBwYWdlTnVtYmVyLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBtYXJnaW5U
b3AsIGludCBtYXJnaW5SaWdodCwgaW50IG1hcmdpbkJvdHRvbSwgaW50IG1hcmdpbkxlZnQpOwog
ICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZQYWdlcyhGcmFtZSosIGNvbnN0IEZsb2F0U2l6ZSYgcGFn
ZVNpemVJblBpeGVscyk7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCmluZGV4IDQ5ZmQ5NGRjNmYwY2Q1NGJhMTI3OTE1Y2I5NmM5NDBlOWUwY2U5NjIuLmNm
MWEwYmExZDQxZTIwZGE3NWU4YjlhZDAyNDM0MTU0Mjc0MTExYTMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzA0LDYgKzcwNCw3IEBAIHB1YmxpYzoKICAgICBMZW5n
dGggcGVyc3BlY3RpdmVPcmlnaW5YKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fcGVyc3BlY3RpdmVPcmlnaW5YOyB9CiAgICAgTGVuZ3RoIHBlcnNwZWN0aXZlT3JpZ2lu
WSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3Jp
Z2luWTsgfQogICAgIExlbmd0aFNpemUgcGFnZVNpemUoKSBjb25zdCB7IHJldHVybiByYXJlTm9u
SW5oZXJpdGVkRGF0YS0+bV9wYWdlU2l6ZTsgfQorICAgIFBhZ2VTaXplVHlwZSBwYWdlU2l6ZVR5
cGUoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wYWdlU2l6ZVR5cGU7
IH0KICAgICAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gV2hlbiBz
ZXQsIHRoaXMgZW5zdXJlcyB0aGF0IHN0eWxlcyBjb21wYXJlIGFzIGRpZmZlcmVudC4gVXNlZCBk
dXJpbmcgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucy4KQEAgLTEwMzEsNiArMTAzMiw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFBlcnNwZWN0aXZlT3JpZ2luWChMZW5ndGggbCkgeyBTRVRfVkFSKHJh
cmVOb25Jbmhlcml0ZWREYXRhLCBtX3BlcnNwZWN0aXZlT3JpZ2luWCwgbCk7IH0KICAgICB2b2lk
IHNldFBlcnNwZWN0aXZlT3JpZ2luWShMZW5ndGggbCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0
ZWREYXRhLCBtX3BlcnNwZWN0aXZlT3JpZ2luWSwgbCk7IH0KICAgICB2b2lkIHNldFBhZ2VTaXpl
KExlbmd0aFNpemUgcykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3BhZ2VTaXpl
LCBzKTsgfQorICAgIHZvaWQgc2V0UGFnZVNpemVUeXBlKFBhZ2VTaXplVHlwZSB0KSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcGFnZVNpemVUeXBlLCB0KTsgfQogCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgc2V0SXNSdW5uaW5nQWNjZWxlcmF0
ZWRBbmltYXRpb24oYm9vbCBiID0gdHJ1ZSkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LCBtX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbiwgYik7IH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggZTMz
NjdkMTA4ZGM1ZDcyYTkxNmY3NjdiMzBiYjUyMjUxZmJlZDFjNS4uYmRiYTcyNjQ5NjJhNDBhYjI0
YzFhMTNkODU0MDA2NWE2ODA2OThlZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTU5LDYgKzU5LDggQEAgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAjaWYg
RU5BQkxFKFhCTCkKICAgICAsIGJpbmRpbmdVUkkoMCkKICNlbmRpZgorICAgICwgbV9wYWdlU2l6
ZSgpCisgICAgLCBtX3BhZ2VTaXplVHlwZShQQUdFX1NJWkVfVU5ERUZJTkVEKQogewogfQogCkBA
IC05OCw2ICsxMDAsOCBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogI2lmIEVOQUJMRShYQkwp
CiAgICAgLCBiaW5kaW5nVVJJKG8uYmluZGluZ1VSSSA/IG8uYmluZGluZ1VSSS0+Y29weSgpIDog
MCkKICNlbmRpZgorICAgICwgbV9wYWdlU2l6ZShvLm1fcGFnZVNpemUpCisgICAgLCBtX3BhZ2VT
aXplVHlwZShvLm1fcGFnZVNpemVUeXBlKQogewogfQogCkBAIC0xNTYsNiArMTYwLDggQEAgYm9v
bCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgKG1fcGVyc3BlY3RpdmUgPT0gby5tX3Bl
cnNwZWN0aXZlKQogICAgICAgICAmJiAobV9wZXJzcGVjdGl2ZU9yaWdpblggPT0gby5tX3BlcnNw
ZWN0aXZlT3JpZ2luWCkKICAgICAgICAgJiYgKG1fcGVyc3BlY3RpdmVPcmlnaW5ZID09IG8ubV9w
ZXJzcGVjdGl2ZU9yaWdpblkpCisgICAgICAgICYmIChtX3BhZ2VTaXplID09IG8ubV9wYWdlU2l6
ZSkKKyAgICAgICAgJiYgKG1fcGFnZVNpemVUeXBlID09IG8ubV9wYWdlU2l6ZVR5cGUpCiAgICAg
ICAgIDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5oCmluZGV4IDc0ZTczNmNmMmE1Y2QzY2MzODcyYWMxMDMwN2ExMWM4YzY2
N2ZlY2QuLjYwNDk3MTA4NGExZjhhNzUwMTVlMGFiOWEyNTg0ZTYwNWI0ODdhNTUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgK
QEAgLTU4LDYgKzU4LDE3IEBAIHN0cnVjdCBTdHlsZURhc2hib2FyZFJlZ2lvbjsKIGNsYXNzIEJp
bmRpbmdVUkk7CiAjZW5kaWYKIAorLy8gUGFnZSBzaXplIHR5cGUuCisvLyBTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhOjptX3BhZ2VTaXplIGlzIG1lYW5pbmdmdWwgb25seSB3aGVuIAorLy8gU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6bV9wYWdlU2l6ZVR5cGUgaXMgUEFHRV9TSVpFX1JFU09M
VkVELgorZW51bSBQYWdlU2l6ZVR5cGUgeworICAgIFBBR0VfU0laRV9VTkRFRklORUQsCisgICAg
UEFHRV9TSVpFX0FVVE8sIC8vIHNpemU6IGF1dG8KKyAgICBQQUdFX1NJWkVfQVVUT19MQU5EU0NB
UEUsIC8vIHNpemU6IGxhbmRzY2FwZQorICAgIFBBR0VfU0laRV9BVVRPX1BPUlRSQUlULCAvLyBz
aXplOiBwb3J0cmFpdAorICAgIFBBR0VfU0laRV9SRVNPTFZFRCAvLyBTaXplIGlzIGZ1bGx5IHJl
c29sdmVkLgorfTsKKwogLy8gVGhpcyBzdHJ1Y3QgaXMgZm9yIHJhcmVseSB1c2VkIG5vbi1pbmhl
cml0ZWQgQ1NTMywgQ1NTMiwgYW5kIFdlYktpdC1zcGVjaWZpYyBwcm9wZXJ0aWVzLgogLy8gQnkg
Z3JvdXBpbmcgdGhlbSB0b2dldGhlciwgd2Ugc2F2ZSBzcGFjZSwgYW5kIG9ubHkgYWxsb2NhdGUg
dGhpcyBvYmplY3Qgd2hlbiBzb21lb25lCiAvLyBhY3R1YWxseSB1c2VzIG9uZSBvZiB0aGVzZSBw
cm9wZXJ0aWVzLgpAQCAtMTI1LDYgKzEzNiw3IEBAIHB1YmxpYzoKICAgICBMZW5ndGggbV9wZXJz
cGVjdGl2ZU9yaWdpblk7CiAKICAgICBMZW5ndGhTaXplIG1fcGFnZVNpemU7CisgICAgUGFnZVNp
emVUeXBlIG1fcGFnZVNpemVUeXBlOwogCiAjaWYgRU5BQkxFKFhCTCkKICAgICBPd25QdHI8Qmlu
ZGluZ1VSST4gYmluZGluZ1VSSTsgLy8gVGhlIFhCTCBiaW5kaW5nIFVSSSBsaXN0LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggZGE5MjEzZjVjYjY0NmQ2MThhMmM4NDBlMzNhZjUxYTI2Zjc5NzM3Ni4uNDFmNjQ1
ZjU2MzBkMjVkMTA5NDk5ODU5ZDg5NmQ4ZTNjZDY1MDk4NSAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTAtMDYtMjUgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUg
ZGVmYXVsdCB2YWx1ZSBoYW5kbGluZyBmb3IgcGFnZSBmb3JtYXQgcHJvcGVydGllcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTUwCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cyk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5oOgorCiAyMDEwLTA2LTIzICBUb255IENo
YW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlz
aGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCmluZGV4IDMxOWNlMzg5Nzc5OTg0ZjgzZWY3
YjViYTgwMjZkMzgyMTk5Mjg1NmQuLjMxYjQ0M2I2MWM2YTZjNzEzZDQ3ZjBmMGM0OWQ4NWQzMWFj
NDlhZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTQwOCwxMiArNDA4LDE2IEBA
IHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgcGFnZSBib3ggKG1hcmdpbiBib3hlcyBh
bmQgcGFnZSBib3JkZXJzKSBpcyB2aXNpYmxlLgogICAgIHZpcnR1YWwgYm9vbCBpc1BhZ2VCb3hW
aXNpYmxlKGludCBwYWdlSW5kZXgpID0gMDsKIAotICAgIC8vIFJldHVybnMgdGhlIHBhZ2UgYXJl
YSByZWN0YW5nbGUgaW4gcGl4ZWxzLCBhc3N1bWluZyA5NiBwaXhlbHMgcGVyIGluY2guCi0gICAg
dmlydHVhbCBXZWJSZWN0IHBhZ2VBcmVhUmVjdEluUGl4ZWxzKGludCBwYWdlSW5kZXgpID0gMDsK
LQotICAgIC8vIFJldHVybnMgdGhlIHByZWZlcnJlZCBwYWdlIHNpemUgaW4gcGl4ZWxzLCBhc3N1
bWluZyA5NiBwaXhlbHMgcGVyIGluY2guCi0gICAgdmlydHVhbCBXZWJTaXplIHByZWZlcnJlZFBh
Z2VTaXplSW5QaXhlbHMoaW50IHBhZ2VJbmRleCkgPSAwOwotCisgICAgLy8gUmV0dXJucyB0aGUg
cHJlZmVycmVkIHBhZ2Ugc2l6ZSBhbmQgbWFyZ2lucyBpbiBwaXhlbHMsIGFzc3VtaW5nIDk2Cisg
ICAgLy8gcGl4ZWxzIHBlciBpbmNoLiBwYWdlU2l6ZSwgbWFyZ2luVG9wLCBtYXJnaW5SaWdodCwg
bWFyZ2luQm90dG9tLAorICAgIC8vIG1hcmdpbkxlZnQgbXVzdCBiZSBpbml0aWFsaXplZCB0byB0
aGUgZGVmYXVsdCB2YWx1ZXMgdGhhdCBhcmUgdXNlZCBpZgorICAgIC8vIGF1dG8gaXMgc3BlY2lm
aWVkLgorICAgIHZpcnR1YWwgdm9pZCBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhpbnQgcGFn
ZUluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJT
aXplJiBwYWdlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50JiBtYXJnaW5Ub3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCYgbWFyZ2luUmlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCYgbWFyZ2luQm90dG9tLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdpbkxlZnQpID0gMDsKIAogICAgIC8vIEZpbmQt
aW4tcGFnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggM2Y5MzYwYzgy
MGNjYzQxNDQ3NDZjMWM4NjIzZDlmNjFhNjhkOWQxZS4uNmQ4ZmY0MTM4MWIwMjI2MTM4YmJlZmE4
NTI4ZDgyNTNhZDQ5MGRhYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAt
MTI4NCwxNCArMTI4NCwyMSBAQCBib29sIFdlYkZyYW1lSW1wbDo6aXNQYWdlQm94VmlzaWJsZShp
bnQgcGFnZUluZGV4KQogICAgIHJldHVybiBmcmFtZSgpLT5kb2N1bWVudCgpLT5pc1BhZ2VCb3hW
aXNpYmxlKHBhZ2VJbmRleCk7CiB9CiAKLVdlYlJlY3QgV2ViRnJhbWVJbXBsOjpwYWdlQXJlYVJl
Y3RJblBpeGVscyhpbnQgcGFnZUluZGV4KQotewotICAgIHJldHVybiBmcmFtZSgpLT5kb2N1bWVu
dCgpLT5wYWdlQXJlYVJlY3RJblBpeGVscyhwYWdlSW5kZXgpOwotfQotCi1XZWJTaXplIFdlYkZy
YW1lSW1wbDo6cHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhpbnQgcGFnZUluZGV4KQotewotICAg
IHJldHVybiBmcmFtZSgpLT5kb2N1bWVudCgpLT5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKHBh
Z2VJbmRleCk7Cit2b2lkIFdlYkZyYW1lSW1wbDo6cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
aW50IHBhZ2VJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnQmIG1hcmdpblRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdpblJpZ2h0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luQm90dG9tLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luTGVmdCkKK3sK
KyAgICBJbnRTaXplIHNpemUocGFnZVNpemUud2lkdGgsIHBhZ2VTaXplLmhlaWdodCk7CisgICAg
ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMocGFnZUluZGV4
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWFyZ2luVG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hcmdpblJpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0KTsKKyAgICBwYWdlU2l6ZSA9IHNp
emU7CiB9CiAKIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggYzE0YWQ5YjcyYzkyYzEzNTc1MjdiN2UxMzI0OTgy
NjljNzYzYzUxNy4uMzBlNDY5OWQ3ODg2ODRhMmFmYTUxYmM0YzcwYzY1ZmQxNjQ1YzljYiAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC0xNTAsOCArMTUwLDEyIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGZsb2F0IGdldFByaW50UGFnZVNocmluayhpbnQgcGFnZSk7CiAgICAgdmly
dHVhbCB2b2lkIHByaW50RW5kKCk7CiAgICAgdmlydHVhbCBib29sIGlzUGFnZUJveFZpc2libGUo
aW50IHBhZ2VJbmRleCk7Ci0gICAgdmlydHVhbCBXZWJSZWN0IHBhZ2VBcmVhUmVjdEluUGl4ZWxz
KGludCBwYWdlSW5kZXgpOwotICAgIHZpcnR1YWwgV2ViU2l6ZSBwcmVmZXJyZWRQYWdlU2l6ZUlu
UGl4ZWxzKGludCBwYWdlSW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBwYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVscyhpbnQgcGFnZUluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5Ub3AsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luUmlnaHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luQm90dG9tLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdpbkxlZnQpOwog
ICAgIHZpcnR1YWwgYm9vbCBmaW5kKAogICAgICAgICBpbnQgaWRlbnRpZmllciwgY29uc3QgV2Vi
U3RyaW5nJiBzZWFyY2hUZXh0LCBjb25zdCBXZWJGaW5kT3B0aW9ucyYsCiAgICAgICAgIGJvb2wg
d3JhcFdpdGhpbkZyYW1lLCBXZWJSZWN0KiBzZWxlY3Rpb25SZWN0KTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZGMzZjQzYzY1
NGY0NDcyMTQ3Nzc3N2M0OTU0YjAxNjU5NTkxNTU2OC4uOWE4NzVmMDFhYTFiZTVhYWJkNDRiZjY4
NjdkY2FiODlmZDRhMzE3ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNi0yNSAgWXV6byBG
dWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wcm92ZSBkZWZhdWx0IHZhbHVlIGhhbmRsaW5nIGZvciBw
YWdlIGZvcm1hdCBwcm9wZXJ0aWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDExNTAKKworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3Mu
aDoKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAgICAgICAoLVtXZWJG
cmFtZSBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsczpwYWdlTnVtYmVyOndpZHRoOmhlaWdodDpt
YXJnaW5Ub3A6bWFyZ2luUmlnaHQ6bWFyZ2luQm90dG9tOl0pOgorCiAyMDEwLTA2LTIzICBZdXpv
IEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGlu
aWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlz
dGljcy5oIGIvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmgKaW5kZXggZTM1N2I3
MmMxZjBkYTI2OTkxZjVlMWM4MjJiNGMzZDQ4NDYxNjAwOS4uMzNlM2UwZjg2NTgxYjBlZmJhOTQy
YmI5MWFhN2E3M2U3MzBjN2VmMSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLmgKKysrIGIvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmgKQEAg
LTg5LDYgKzg5LDUgQEAKIC0gKGludCludW1iZXJPZlBhZ2VzOihmbG9hdClwYWdlV2lkdGhJblBp
eGVsczooZmxvYXQpcGFnZUhlaWdodEluUGl4ZWxzOwogLSAoTlNTdHJpbmcgKilwYWdlUHJvcGVy
dHk6KGNvbnN0IGNoYXIqKXByb3BlcnR5TmFtZTooaW50KXBhZ2VOdW1iZXI7CiAtIChib29sKWlz
UGFnZUJveFZpc2libGU6KGludClwYWdlTnVtYmVyOwotLSAoTlNTdHJpbmcgKilwYWdlQXJlYVJl
Y3RJblBpeGVsczooaW50KXBhZ2VOdW1iZXI7Ci0tIChOU1N0cmluZyAqKXByZWZlcnJlZFBhZ2VT
aXplSW5QaXhlbHM6KGludClwYWdlTnVtYmVyOworLSAoTlNTdHJpbmcgKilwYWdlU2l6ZUFuZE1h
cmdpbnNJblBpeGVsczooaW50KXBhZ2VOdW1iZXI6KGludCl3aWR0aDooaW50KWhlaWdodDooaW50
KW1hcmdpblRvcDooaW50KW1hcmdpblJpZ2h0OihpbnQpbWFyZ2luQm90dG9tOihpbnQpbWFyZ2lu
TGVmdDsKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGlj
cy5tbSBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQppbmRleCA5MTEyZDIx
YTJiYTIyMmIzZjk4MWNhMmU2NWVkMjlkZWI0MjVjY2QxLi5iYmUwN2Q1Mjc0ODcwYWQwMmJmNzgz
NjE2NTI1OWRhZGU3M2E4ZTI3IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0
YXRpc3RpY3MubW0KKysrIGIvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCkBA
IC0yODUsMTMgKzI4NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIHJldHVybiBQ
cmludENvbnRleHQ6OmlzUGFnZUJveFZpc2libGUoX3ByaXZhdGUtPmNvcmVGcmFtZSwgcGFnZU51
bWJlcik7CiB9CiAKLS0gKE5TU3RyaW5nICopcGFnZUFyZWFSZWN0SW5QaXhlbHM6KGludClwYWdl
TnVtYmVyCistIChOU1N0cmluZyAqKXBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzOihpbnQpcGFn
ZU51bWJlcjooaW50KXdpZHRoOihpbnQpaGVpZ2h0OihpbnQpbWFyZ2luVG9wOihpbnQpbWFyZ2lu
UmlnaHQ6KGludCltYXJnaW5Cb3R0b206KGludCltYXJnaW5MZWZ0CiB7Ci0gICAgcmV0dXJuIFBy
aW50Q29udGV4dDo6cGFnZUFyZWFSZWN0SW5QaXhlbHMoX3ByaXZhdGUtPmNvcmVGcmFtZSwgcGFn
ZU51bWJlcik7Ci19Ci0KLS0gKE5TU3RyaW5nICopcHJlZmVycmVkUGFnZVNpemVJblBpeGVsczoo
aW50KXBhZ2VOdW1iZXI7Ci17Ci0gICAgcmV0dXJuIFByaW50Q29udGV4dDo6cHJlZmVycmVkUGFn
ZVNpemVJblBpeGVscyhfcHJpdmF0ZS0+Y29yZUZyYW1lLCBwYWdlTnVtYmVyKTsKKyAgICByZXR1
cm4gUHJpbnRDb250ZXh0OjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhfcHJpdmF0ZS0+Y29y
ZUZyYW1lLCBwYWdlTnVtYmVyLCB3aWR0aCwgaGVpZ2h0LCBtYXJnaW5Ub3AsIG1hcmdpblJpZ2h0
LCBtYXJnaW5Cb3R0b20sIG1hcmdpbkxlZnQpOwogfQogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDMyNTBlNWYzZmQ2
Nzk3MGY3MGM4NmE2ZjM1ZmRhMTczNzIwZjhjMzQuLmM3NDAxOTVjZmQ3ZTE5MzBjZTI0NWJiYWIx
Y2NmMzVmN2E3YWE5ZjUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNi0yNSAgWXV6byBG
dWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wcm92ZSBkZWZhdWx0IHZhbHVlIGhhbmRsaW5nIGZvciBw
YWdlIGZvcm1hdCBwcm9wZXJ0aWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDExNTAKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHBhcnNlUGFnZU51bWJlcik6CisgICAgICAgIChw
YXJzZVBhZ2VOdW1iZXJTaXplTWFyaW5ncyk6CisgICAgICAgIChwYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVsc0NhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNG
dW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpwYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVscyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VTaXplQW5kTWFy
Z2luc0luUGl4ZWxzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENv
bnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VTaXpl
QW5kTWFyZ2luc0luUGl4ZWxzKToKKwogMjAxMC0wNi0yMyAgS2V2aW4gT2xsaXZpZXIgIDxrZXZp
bm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBbd3hdIEJ1aWxkIGZpeCwgYWRkaW5nIG5l
dyBMYXlvdXRUZXN0Q29udHJvbGxlciBtZXRob2RzIGFuZCBlbmFibGluZyBTVkdfRk9SRUlHTl9P
QkpFQ1QuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggMDJjNzdhNDI3NTdhZjUxODBkNTVlMzA4MmU2OTRjYzQ5YWI5N2Iw
OS4uYTM1ZWQyYjA5NzAzOGRjMjRmYjdiMWNkMGY3MmI3MTYzZTM5MTIzMCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAt
NTU1LDEwICs1NTUsNjUgQEAgc3RhdGljIGJvb2wgcGFyc2VQYWdlUHJvcGVydHlQYXJhbWV0ZXJz
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBpbnQgYXJndW1lbnRDb3VudCwKIHN0YXRpYyBib29sIHBh
cnNlUGFnZU51bWJlcihKU0NvbnRleHRSZWYgY29udGV4dCwgaW50IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYqIGFyZ3VtZW50cywgSlNWYWx1ZVJlZiogZXhjZXB0aW9uLCBpbnQmIHBh
Z2VOdW1iZXIpCiB7CiAgICAgcGFnZU51bWJlciA9IDA7Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQg
IT0gMSkKKyAgICBzd2l0Y2ggKGFyZ3VtZW50Q291bnQpIHsKKyAgICBjYXNlIDE6CisgICAgICAg
IHBhZ2VOdW1iZXIgPSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBh
cmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgICAgICBpZiAoKmV4Y2VwdGlvbikKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgorICAgIGNhc2Ug
MDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KK30KKworc3RhdGljIGJvb2wgcGFyc2VQYWdlTnVtYmVyU2l6ZU1hcmluZ3Mo
SlNDb250ZXh0UmVmIGNvbnRleHQsIGludCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
KiBhcmd1bWVudHMsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbiwgaW50JiBwYWdlTnVtYmVyLCBpbnQm
IHdpZHRoLCBpbnQmIGhlaWdodCwgaW50JiBtYXJnaW5Ub3AsIGludCYgbWFyZ2luUmlnaHQsIGlu
dCYgbWFyZ2luQm90dG9tLCBpbnQmIG1hcmdpbkxlZnQpCit7CisgICAgcGFnZU51bWJlciA9IDA7
CisgICAgd2lkdGggPSBoZWlnaHQgPSAwOworICAgIG1hcmdpblRvcCA9IG1hcmdpblJpZ2h0ID0g
bWFyZ2luQm90dG9tID0gbWFyZ2luTGVmdCA9IDA7CisKKyAgICBzd2l0Y2ggKGFyZ3VtZW50Q291
bnQpIHsKKyAgICBjYXNlIDc6CisgICAgICAgIG1hcmdpbkxlZnQgPSBzdGF0aWNfY2FzdDxpbnQ+
KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbNl0sIGV4Y2VwdGlvbikpOworICAg
ICAgICBpZiAoKmV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
Ly8gRmFsbCB0aHJvdWdoLgorICAgIGNhc2UgNjoKKyAgICAgICAgbWFyZ2luQm90dG9tID0gc3Rh
dGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzVdLCBleGNl
cHRpb24pKTsKKyAgICAgICAgaWYgKCpleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KKyAgICBjYXNlIDU6CisgICAgICAgIG1hcmdp
blJpZ2h0ID0gc3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1l
bnRzWzRdLCBleGNlcHRpb24pKTsKKyAgICAgICAgaWYgKCpleGNlcHRpb24pCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KKyAgICBjYXNlIDQ6Cisg
ICAgICAgIG1hcmdpblRvcCA9IHN0YXRpY19jYXN0PGludD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRl
eHQsIGFyZ3VtZW50c1szXSwgZXhjZXB0aW9uKSk7CisgICAgICAgIGlmICgqZXhjZXB0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBGYWxsIHRocm91Z2guCisgICAg
Y2FzZSAzOgorICAgICAgICBoZWlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFsdWVUb051bWJl
cihjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikpOworICAgICAgICBpZiAoKmV4Y2Vw
dGlvbikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gRmFsbCB0aHJvdWdo
LgorICAgIGNhc2UgMjoKKyAgICAgICAgd2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFsdWVU
b051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbikpOworICAgICAgICBpZiAo
KmV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gRmFsbCB0
aHJvdWdoLgorICAgIGNhc2UgMToKKyAgICAgICAgcGFnZU51bWJlciA9IHN0YXRpY19jYXN0PGlu
dD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7Cisg
ICAgICAgIGlmICgqZXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAvLyBGYWxsIHRocm91Z2guCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYWdlTnVtYmVyID0gc3RhdGljX2Nhc3Q8aW50PihK
U1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKLSAgICBy
ZXR1cm4gISpleGNlcHRpb247CisgICAgfQogfQogCiBzdGF0aWMgSlNWYWx1ZVJlZiBwYWdlTnVt
YmVyRm9yRWxlbWVudEJ5SWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBA
IC02MTIsMjQgKzY2NywxNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBpc1BhZ2VCb3hWaXNpYmxlQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bgogICAgIHJldHVybiBK
U1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgY29udHJvbGxlci0+aXNQYWdlQm94VmlzaWJsZShw
YWdlTnVtYmVyKSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHBhZ2VBcmVhUmVjdEluUGl4ZWxz
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGludCBwYWdlTnVt
YmVyID0gMDsKLSAgICBpZiAoIXBhcnNlUGFnZU51bWJlcihjb250ZXh0LCBhcmd1bWVudENvdW50
LCBhcmd1bWVudHMsIGV4Y2VwdGlvbiwgcGFnZU51bWJlcikpCi0gICAgICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIExheW91dFRlc3RDb250cm9sbGVyKiBj
b250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdl
dFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250
ZXh0LCBjb250cm9sbGVyLT5wYWdlQXJlYVJlY3RJblBpeGVscyhwYWdlTnVtYmVyKS5nZXQoKSk7
Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVmIHByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHNDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiBwYWdlU2l6
ZUFuZE1hcmdpbnNJblBpeGVsc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICBpbnQgcGFnZU51bWJlciA9IDA7Ci0gICAgaWYgKCFwYXJzZVBhZ2VOdW1iZXIoY29u
dGV4dCwgYXJndW1lbnRDb3VudCwgYXJndW1lbnRzLCBleGNlcHRpb24sIHBhZ2VOdW1iZXIpKQor
ICAgIGludCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CisgICAgaW50IG1hcmdpblRvcCA9IDAsIG1h
cmdpblJpZ2h0ID0gMCwgbWFyZ2luQm90dG9tID0gMCwgbWFyZ2luTGVmdCA9IDA7CisgICAgaWYg
KCFwYXJzZVBhZ2VOdW1iZXJTaXplTWFyaW5ncyhjb250ZXh0LCBhcmd1bWVudENvdW50LCBhcmd1
bWVudHMsIGV4Y2VwdGlvbiwgcGFnZU51bWJlciwgd2lkdGgsIGhlaWdodCwgbWFyZ2luVG9wLCBt
YXJnaW5SaWdodCwgbWFyZ2luQm90dG9tLCBtYXJnaW5MZWZ0KSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0
R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNv
bnRleHQsIGNvbnRyb2xsZXItPnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMocGFnZU51bWJlciku
Z2V0KCkpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBjb250cm9sbGVy
LT5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhwYWdlTnVtYmVyLCB3aWR0aCwgaGVpZ2h0LCBt
YXJnaW5Ub3AsIG1hcmdpblJpZ2h0LCBtYXJnaW5Cb3R0b20sIG1hcmdpbkxlZnQpLmdldCgpKTsK
IH0KIAogc3RhdGljIEpTVmFsdWVSZWYgcXVldWVCYWNrTmF2aWdhdGlvbkNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKQEAgLTE2OTksMTIgKzE3NDYsMTEgQEAgSlNTdGF0aWNG
dW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAg
IHsgIm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyIsIG51bWJlck9mQWN0aXZlQW5pbWF0aW9uc0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIm92ZXJyaWRlUHJlZmVyZW5jZSIsIG92ZXJyaWRl
UHJlZmVyZW5jZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInBhZ2VOdW1iZXJGb3JFbGVt
ZW50QnlJZCIsIHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAg
ICAgIHsgInBhZ2VBcmVhUmVjdEluUGl4ZWxzIiwgcGFnZUFyZWFSZWN0SW5QaXhlbHNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyIsIHBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicGFnZVBy
b3BlcnR5IiwgcGFnZVByb3BlcnR5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicGF0aFRv
TG9jYWxSZXNvdXJjZSIsIHBhdGhUb0xvY2FsUmVzb3VyY2VDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCIsIHBhdXNlQW5pbWF0
aW9uQXRUaW1lT25FbGVtZW50V2l0aElkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicGF1
c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkIiwgcGF1c2VUcmFuc2l0aW9uQXRUaW1l
T25FbGVtZW50V2l0aElkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAicHJlZmVycmVkUGFn
ZVNpemVJblBpeGVscyIsIHByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHNDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJzYW1wbGVTVkdBbmltYXRpb25Gb3JFbGVtZW50QXRUaW1lIiwgc2FtcGxl
U1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0VGltZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InByaW50VG9QREYiLCBkdW1wQXNQREZDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJxdWV1
ZUJhY2tOYXZpZ2F0aW9uIiwgcXVldWVCYWNrTmF2aWdhdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApp
bmRleCA2YWYyYzU3MWE4NmMyMWI2NmMyYjM4NmMyODdmMzY0YzYzMDMzOTEwLi5jYmFlZmNmMTMy
ZjQxYmFmYzM2MGVhMjJmOGJhYjVhZjYyODUxNzhmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTY0LDkgKzY0LDggQEAgcHVi
bGljOgogICAgIHZvaWQgb3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVmIGtleSwgSlNTdHJp
bmdSZWYgdmFsdWUpOwogICAgIGludCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoSlNTdHJpbmdS
ZWYgaWQsIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLCBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMp
OwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwYWdlUHJvcGVydHkoY29uc3QgY2hhciog
cHJvcGVydHlOYW1lLCBpbnQgcGFnZU51bWJlcikgY29uc3Q7CisgICAgSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYWdlTnVtYmVyLCBpbnQg
d2lkdGgsIGludCBoZWlnaHQsIGludCBtYXJnaW5Ub3AsIGludCBtYXJnaW5SaWdodCwgaW50IG1h
cmdpbkJvdHRvbSwgaW50IG1hcmdpbkxlZnQpIGNvbnN0OwogICAgIGJvb2wgaXNQYWdlQm94Vmlz
aWJsZShpbnQgcGFnZU51bWJlcikgY29uc3Q7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IHBhZ2VBcmVhUmVjdEluUGl4ZWxzKGludCBwYWdlTnVtYmVyKSBjb25zdDsKLSAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gcHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhpbnQgcGFnZU51bWJl
cikgY29uc3Q7CiAgICAgSlNTdHJpbmdSZWYgcGF0aFRvTG9jYWxSZXNvdXJjZShKU0NvbnRleHRS
ZWYsIEpTU3RyaW5nUmVmIHVybCk7CiAgICAgdm9pZCBxdWV1ZUJhY2tOYXZpZ2F0aW9uKGludCBo
b3dGYXJCYWNrd2FyZCk7CiAgICAgdm9pZCBxdWV1ZUZvcndhcmROYXZpZ2F0aW9uKGludCBob3dG
YXJGb3J3YXJkKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9M
YXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDZmOGU2MzcxYmYxYmY1OTkwZDAx
YTkzODRjZTBkNWRhNGFkZDI0YTMuLmQzNDZmNGFkNWJiOWQ3YWQ1ZWVhMTY3NDRmMjk3Y2RiY2Fi
NTg2YzcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMTgzLDEzICsxODMsNyBAQCBib29sIExh
eW91dFRlc3RDb250cm9sbGVyOjppc1BhZ2VCb3hWaXNpYmxlKGludCBwYWdlTnVtYmVyKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91
dFRlc3RDb250cm9sbGVyOjpwYWdlQXJlYVJlY3RJblBpeGVscyhpbnQgcGFnZU51bWJlcikgY29u
c3QKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPigpOwotfQotCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoaW50IHBhZ2VOdW1iZXIpIGNvbnN0
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VTaXpl
QW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYWdlTnVtYmVyLCBpbnQgd2lkdGgsIGludCBoZWlnaHQs
IGludCBtYXJnaW5Ub3AsIGludCBtYXJnaW5SaWdodCwgaW50IG1hcmdpbkJvdHRvbSwgaW50IG1h
cmdpbkxlZnQpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogICAgIHJldHVybiBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4oKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBkMDU5OWUw
ZjFlMGJjMGE4Y2Y4OGNkMzQ0Y2JmNjM0Yjk2ZWY0MzNmLi45YjA0NGMzODU0MjdiNjc1YWJlNTE5
ZGE5Y2EyNmU1YWExMzEwNTExIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC0yMjMsMTUgKzIyMyw5
IEBAIGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmlzUGFnZUJveFZpc2libGUoaW50IHBhZ2VO
dW1iZXIpIGNvbnN0CiAgICAgcmV0dXJuIFttYWluRnJhbWUgaXNQYWdlQm94VmlzaWJsZTpwYWdl
TnVtYmVyXTsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9s
bGVyOjpwYWdlQXJlYVJlY3RJblBpeGVscyhpbnQgcGFnZU51bWJlcikgY29uc3QKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGFnZVNpemVBbmRNYXJnaW5z
SW5QaXhlbHMoaW50IHBhZ2VOdW1iZXIsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IG1hcmdp
blRvcCwgaW50IG1hcmdpblJpZ2h0LCBpbnQgbWFyZ2luQm90dG9tLCBpbnQgbWFyZ2luTGVmdCkg
Y29uc3QKIHsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcHJvcGVydHlWYWx1ZShBZG9w
dCwgSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVmKVttYWluRnJhbWUgcGFn
ZUFyZWFSZWN0SW5QaXhlbHM6cGFnZU51bWJlcl0pKTsKLSAgICByZXR1cm4gcHJvcGVydHlWYWx1
ZTsKLX0KLQotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpw
cmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKGludCBwYWdlTnVtYmVyKSBjb25zdAotewotICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9wZXJ0eVZhbHVlKEFkb3B0LCBKU1N0cmluZ0NyZWF0
ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW21haW5GcmFtZSBwcmVmZXJyZWRQYWdlU2l6ZUlu
UGl4ZWxzOnBhZ2VOdW1iZXJdKSk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHByb3Bl
cnR5VmFsdWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilb
bWFpbkZyYW1lIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzOnBhZ2VOdW1iZXI6d2lkdGg6aGVp
Z2h0Om1hcmdpblRvcDptYXJnaW5SaWdodDptYXJnaW5Cb3R0b206bWFyZ2luTGVmdF0pKTsKICAg
ICByZXR1cm4gcHJvcGVydHlWYWx1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggZTBk
NTczMTMxNzllZDA0NGMwNmQ1MzE3OGNhZGY3MDQ1ZTBlYmVlNy4uN2Y3NTdlNjQ4OGI4YTEwZTRj
ZTEyYTRjZDA1YTllYTI2YTY3MTVkNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xMjU0LDEz
ICsxMjU0LDcgQEAgYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6aXNQYWdlQm94VmlzaWJsZShp
bnQgcGFnZU51bWJlcikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGFnZUFyZWFSZWN0SW5QaXhlbHMo
aW50IHBhZ2VOdW1iZXIpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJl
dHVybiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oKTsKLX0KLQotSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKGlu
dCBwYWdlTnVtYmVyKSBjb25zdAorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RD
b250cm9sbGVyOjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhpbnQgcGFnZU51bWJlciwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWFyZ2luVG9wLCBpbnQgbWFyZ2luUmlnaHQsIGludCBt
YXJnaW5Cb3R0b20sIGludCBtYXJnaW5MZWZ0KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKICAgICByZXR1cm4gSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59743</attachid>
            <date>2010-06-25 02:05:16 -0700</date>
            <delta_ts>2010-06-25 04:15:09 -0700</delta_ts>
            <desc>Addressed second set of review comments.</desc>
            <filename>bug-41150-20100625020514.patch</filename>
            <type>text/plain</type>
            <size>62184</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNGU5MWQyMjZkYzQ2OTU4ZDcyN2Q4Y2U1Y2MyYjBmMTk5M2I1ZmM0Li45MzRjMGNl
Mzk4YWQ4MzQ1N2IwMGQzYjFiMjBjYTM2NTBiZmRjYjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDYtMjUgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZGVmYXVsdCB2
YWx1ZSBoYW5kbGluZyBmb3IgcGFnZSBmb3JtYXQgcHJvcGVydGllcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTUwCisKKyAgICAgICAgKiBwcmlu
dGluZy9wYWdlLWZvcm1hdC1kYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwcmludGluZy9w
YWdlLWZvcm1hdC1kYXRhLmh0bWw6CisgICAgICAgICogcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVj
dGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlv
bi5odG1sOgorCiAyMDEwLTA2LTIzICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wcmludGluZy9wYWdlLWZvcm1hdC1kYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3ByaW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEtZXhwZWN0ZWQudHh0CmluZGV4IGJkMWNhNTRm
N2U5ZmJlZWZlN2UyY2E3NzhlZDU4Nzg3MmI5NTI1NTMuLmQ2NjJiZDk4Yzk1ZDFiMTRkMmEzMWIx
ZDQzNTMyNGYzMTMyNzNjMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2Ut
Zm9ybWF0LWRhdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2Ut
Zm9ybWF0LWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0xNSw1OCArMTUsNjggQEAgVGVzdCB2aXNpYmls
aXR5OiB2aXNpYmxlCiBQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmlzUGFnZUJveFZpc2libGUo
MCkgaXMgdHJ1ZQogCiBUZXN0IGRlZmF1bHQgcGFnZSBzaXplCi1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgaW5jaFNpemUoOC41LCAxMSkK
K1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwg
MTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAyLCAz
LCA0KQogVGVzdCBhdXRvIHBhZ2Ugc2l6ZQotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVm
ZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIGluY2hTaXplKDguNSwgMTEpCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSBpcyAnKDEwMCwgMjAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3Qg
bGFuZHNjYXBlCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5Q
aXhlbHMoMCkgaXMgaW5jaFNpemUoMTEsIDguNSkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICco
MjAwLCAxMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAyMDAsIDEwMCwgMSwgMiwgMywgNCkg
aXMgJygyMDAsIDEwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IHBvcnRyYWl0Ci1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMg
aW5jaFNpemUoOC41LCAxMSkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRN
YXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwLCAyMDApJyAr
IHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6
ZUFuZE1hcmdpbnNJblBpeGVscygwLCAyMDAsIDEwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAsIDIw
MCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGE1Ci1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgbW1TaXplKDE0OCwgMjEwKQor
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1TaXplKDE0OCwgMjEwKSArIHB4TWFyZ2lucygxLCAy
LCAzLCA0KQogVGVzdCBhNSBsYW5kc2NhcGUKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJl
ZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNpemUoMjEwLCAxNDgpCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSBpcyBtbVNpemUoMjEwLCAxNDgpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBU
ZXN0IHBvcnRyYWl0IGE0Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VT
aXplSW5QaXhlbHMoMCkgaXMgbW1TaXplKDIxMCwgMjk3KQorUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkg
aXMgbW1TaXplKDIxMCwgMjk3KSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBhMwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIG1t
U2l6ZSgyOTcsIDQyMCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJn
aW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgyOTcsIDQyMCkg
KyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgYjUKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBtbVNpemUoMTc2LCAyNTApCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwg
MjAwLCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMTc2LCAyNTApICsgcHhNYXJnaW5zKDEsIDIsIDMs
IDQpCiBUZXN0IGI0Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXpl
SW5QaXhlbHMoMCkgaXMgbW1TaXplKDI1MCwgMzUzKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMg
bW1TaXplKDI1MCwgMzUzKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBsZXR0ZXIKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBp
bmNoU2l6ZSg4LjUsIDExKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1h
cmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgaW5jaFNpemUoOC41LCAx
MSkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgbGVnYWwKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyBpbmNoU2l6ZSg4LjUsIDE0
KQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygw
LCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgaW5jaFNpemUoOC41LCAxNCkgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkKIFRlc3QgbGVkZ2VyCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZl
cnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgaW5jaFNpemUoMTEsIDE3KQorUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkgaXMgaW5jaFNpemUoMTEsIDE3KSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVz
dCAxMGNtCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhl
bHMoMCkgaXMgbW1TaXplKDEwMCwgMTAwKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdl
U2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1TaXpl
KDEwMCwgMTAwKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCAyMGNtIHggMzBjbQotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzIG1t
U2l6ZSgyMDAsIDMwMCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJn
aW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgyMDAsIDMwMCkg
KyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgMTAwMDBweCAyMDAwMHB4Ci1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgJygxMDAwMCwy
MDAwMCknCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJn
aW5zKDEsIDIsIDMsIDQpCiBUZXN0IGludmFsaWQgcGFnZSBzaXplOiAtMTBjbQotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzICcoMTAwMDAs
MjAwMDApJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBp
eGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFy
Z2lucygxLCAyLCAzLCA0KQogVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTogYTQgYTQKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSBpcyAnKDEwMDAw
LDIwMDAwKScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5Q
aXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBweE1h
cmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgaW52YWxpZCBwYWdlIHNpemU6IGxhbmRzY2FwZSBwb3J0
cmFpdAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxz
KDApIGlzICcoMTAwMDAsMjAwMDApJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6
ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwg
MjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTog
MTBjbSBsZXR0ZXIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJ
blBpeGVscygwKSBpcyAnKDEwMDAwLDIwMDAwKScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICco
MTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgaW52YWxpZCBwYWdl
IHNpemU6IDEwY20gMTBjbSAxMGNtCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJl
ZFBhZ2VTaXplSW5QaXhlbHMoMCkgaXMgJygxMDAwMCwyMDAwMCknCitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAz
LCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGlu
dmFsaWQgcGFnZSBzaXplOiBlbXB0eQotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJy
ZWRQYWdlU2l6ZUluUGl4ZWxzKDApIGlzICcoMTAwMDAsMjAwMDApJworUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogCi1UZXN0
IHBhZ2UgYXJlYSB3aGVuIG1hcmdpbiwgcGFkZGluZywgYW5kIGJvcmRlciBhcmUgMHB4Ci1QQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VBcmVhUmVjdEluUGl4ZWxzKDApIGlzICcoMCwwLDEw
MDAwLDIwMDAwKScKLVRlc3Qgbm9uLXplcm8gbWFyZ2luLCBwYWRkaW5nLCBhbmQgYm9yZGVyCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VBcmVhUmVjdEluUGl4ZWxzKDApIGlzICcoMjE4
NCwyNzMsNzI3MCwxODYzNSknCi1UZXN0IHBlcmNlbnRhZ2UgbWFyZ2luIGFuZCBwYWRkaW5nCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VBcmVhUmVjdEluUGl4ZWxzKDApIGlzICcoMTUw
MCwyNTAwLDcwMDAsMTUwMDApJworVGVzdCAwcHggbWFyZ2lucworUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywg
NCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygwLCAwLCAwLCAwKQorVGVzdCBub24t
emVybyBtYXJnaW5zCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsg
cHhNYXJnaW5zKDEwLCAyMCwgNDAsIDgwKQorVGVzdCBwZXJjZW50YWdlIG1hcmdpbgorUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIw
MCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDQwMCwg
MjAwLCAxMDApCitUZXN0IG1hcmdpbjogYXV0byA0JSAyJSAxJQorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywg
NCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCA0MDAsIDIwMCwgMTAwKQorVGVz
dCBtYXJnaW46IDglIGF1dG8gMiUgMSUKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAs
IDIwMDAwKScgKyBweE1hcmdpbnMoODAwLCAyLCAyMDAsIDEwMCkKK1Rlc3QgbWFyZ2luOiA4JSA0
JSBhdXRvIDElCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhN
YXJnaW5zKDgwMCwgNDAwLCAzLCAxMDApCitUZXN0IG1hcmdpbjogOCUgNCUgMiUgYXV0bworUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAs
IDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDQw
MCwgMjAwLCA0KQogVGVzdCB2aXNpYmlsaXR5OiBoaWRkZW4KLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIucGFnZUFyZWFSZWN0SW5QaXhlbHMoMCkgaXMgJygxNTAwLDI1MDAsNzAwMCwxNTAwMCkn
CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAs
IDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDgw
MCwgNDAwLCAyMDAsIDQpCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS5odG1sIGIvTGF5
b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS5odG1sCmluZGV4IGQxM2RjZGI2ODZl
OGMwMTI3MWIxOWU4MjgxOWM4OGM4ZTlmZDZlZWQuLmYzMDVjMjhkNTEwMDhjNDllYWEwY2NiZDc0
YmFkMzFhNTdhZmMyYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtZm9y
bWF0LWRhdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWZvcm1hdC1kYXRh
Lmh0bWwKQEAgLTIxLDEyICsyMSwxNyBAQAogCiAgICAgZnVuY3Rpb24gaW5jaFNpemUod2lkdGgs
IGhlaWdodCkKICAgICB7Ci0gICAgICAgIHJldHVybiAiKCIgKyBNYXRoLmZsb29yKHdpZHRoICog
OTYpICsgIiwiICsgTWF0aC5mbG9vcihoZWlnaHQgKiA5NikgKyAiKSI7CisgICAgICAgIHJldHVy
biAiKCIgKyBNYXRoLmZsb29yKHdpZHRoICogOTYpICsgIiwgIiArIE1hdGguZmxvb3IoaGVpZ2h0
ICogOTYpICsgIikiOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIG1tU2l6ZSh3aWR0aCwgaGVpZ2h0
KQogICAgIHsKLSAgICAgICAgcmV0dXJuICIoIiArIE1hdGguZmxvb3Iod2lkdGggKiA5NiAvIDI1
LjQpICsgIiwiICsgTWF0aC5mbG9vcihoZWlnaHQgKiA5NiAvIDI1LjQpICsgIikiOworICAgICAg
ICByZXR1cm4gIigiICsgTWF0aC5mbG9vcih3aWR0aCAqIDk2IC8gMjUuNCkgKyAiLCAiICsgTWF0
aC5mbG9vcihoZWlnaHQgKiA5NiAvIDI1LjQpICsgIikiOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHB4TWFyZ2lucyh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpCisgICAgeworICAgICAgICByZXR1
cm4gIiAiICsgdG9wICsgIiAiICsgcmlnaHQgKyAiICIgKyBib3R0b20gKyAiICIgKyBsZWZ0Owog
ICAgIH0KIAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKQEAgLTU4LDEx
MSArNjMsMTI5IEBACiAgICAgICAgIC8vIFBhZ2Ugc2l6ZSB0ZXN0cwogCiAgICAgICAgIGRlYnVn
KCJUZXN0IGRlZmF1bHQgcGFnZSBzaXplIik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgImluY2hTaXplKDguNSwg
MTEpIik7IC8vIExldHRlcgorICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIico
MTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJU
ZXN0IGF1dG8gcGFnZSBzaXplIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTph
dXRvO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJl
ZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiaW5jaFNpemUoOC41LCAxMSkiKTsKKyAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAs
IDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMCwgMjAwKScgKyBweE1hcmdpbnMoMSwgMiwg
MywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBsYW5kc2NhcGUiKTsKICAgICAgICAgYXBw
ZW5kU3R5bGUoIkBwYWdlIHtzaXplOmxhbmRzY2FwZTt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgImluY2hT
aXplKDExLCA4LjUpIik7CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5w
YWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygy
MDAsIDEwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CisgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAyMDAsIDEw
MCwgMSwgMiwgMywgNCkiLCAiJygyMDAsIDEwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7
CiAKICAgICAgICAgZGVidWcoIlRlc3QgcG9ydHJhaXQiKTsKICAgICAgICAgYXBwZW5kU3R5bGUo
IkBwYWdlIHtzaXplOnBvcnRyYWl0O30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiaW5jaFNpemUoOC41LCAx
MSkiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMCwgMjAwKScg
KyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDIwMCwgMTAwLCAxLCAyLCAz
LCA0KSIsICInKDEwMCwgMjAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAg
ICBkZWJ1ZygiVGVzdCBhNSIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6YTU7
fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFn
ZVNpemVJblBpeGVscygwKSIsICJtbVNpemUoMTQ4LCAyMTApIik7CisgICAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAs
IDIwMCwgMSwgMiwgMywgNCkiLCAibW1TaXplKDE0OCwgMjEwKSArIHB4TWFyZ2lucygxLCAyLCAz
LCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGE1IGxhbmRzY2FwZSIpOwogICAgICAgICBh
cHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6YTUgbGFuZHNjYXBlO30iKTsKLSAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAi
bW1TaXplKDIxMCwgMTQ4KSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwg
Im1tU2l6ZSgyMTAsIDE0OCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAgICBk
ZWJ1ZygiVGVzdCBwb3J0cmFpdCBhNCIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3Np
emU6cG9ydHJhaXQgYTQ7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSIsICJtbVNpemUoMjEwLCAyOTcpIik7Cisg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAibW1TaXplKDIxMCwgMjk3KSArIHB4
TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGEzIik7CiAgICAg
ICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTphMzt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIm1tU2l6
ZSgyOTcsIDQyMCkiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBh
Z2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNp
emUoMjk3LCA0MjApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWco
IlRlc3QgYjUiKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOmI1O30iKTsKLSAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5Q
aXhlbHMoMCkiLCAibW1TaXplKDE3NiwgMjUwKSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEs
IDIsIDMsIDQpIiwgIm1tU2l6ZSgxNzYsIDI1MCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsK
IAogICAgICAgICBkZWJ1ZygiVGVzdCBiNCIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Ug
e3NpemU6YjQ7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJl
ZmVycmVkUGFnZVNpemVJblBpeGVscygwKSIsICJtbVNpemUoMjUwLCAzNTMpIik7CisgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAibW1TaXplKDI1MCwgMzUzKSArIHB4TWFyZ2lu
cygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGxldHRlciIpOwogICAgICAg
ICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6bGV0dGVyO30iKTsKLSAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAiaW5j
aFNpemUoOC41LCAxMSkiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJp
bmNoU2l6ZSg4LjUsIDExKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRl
YnVnKCJUZXN0IGxlZ2FsIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTpsZWdh
bDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQ
YWdlU2l6ZUluUGl4ZWxzKDApIiwgImluY2hTaXplKDguNSwgMTQpIik7CisgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiaW5jaFNpemUoOC41LCAxNCkgKyBweE1hcmdpbnMoMSwg
MiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBsZWRnZXIiKTsKICAgICAgICAgYXBw
ZW5kU3R5bGUoIkBwYWdlIHtzaXplOmxlZGdlcjt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgImluY2hTaXpl
KDExLCAxNykiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJpbmNoU2l6
ZSgxMSwgMTcpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRl
c3QgMTBjbSIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6MTBjbTt9Iik7Ci0g
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUlu
UGl4ZWxzKDApIiwgIm1tU2l6ZSgxMDAsIDEwMCkiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSIsICJtbVNpemUoMTAwLCAxMDApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7
CiAKICAgICAgICAgZGVidWcoIlRlc3QgMjBjbSB4IDMwY20iKTsKICAgICAgICAgYXBwZW5kU3R5
bGUoIkBwYWdlIHtzaXplOjIwY20gMzBjbTt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKDApIiwgIm1tU2l6ZSgyMDAs
IDMwMCkiKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXpl
QW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUoMjAw
LCAzMDApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3Qg
MTAwMDBweCAyMDAwMHB4Iik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZToxMDAw
MHB4IDIwMDAwcHg7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
cHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSIsICInKDEwMDAwLDIwMDAwKSciKTsKKyAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJn
aW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgaW52YWxpZCBwYWdlIHNp
emU6IC0xMGNtIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTotMTBjbTt9Iik7
Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6
ZUluUGl4ZWxzKDApIiwgIicoMTAwMDAsMjAwMDApJyIpOworICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAs
IDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCki
KTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTogYTQgYTQiKTsKICAg
ICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOmE0IGE0O30iKTsKLSAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoMCkiLCAi
JygxMDAwMCwyMDAwMCknIik7CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAi
JygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRl
YnVnKCJUZXN0IGludmFsaWQgcGFnZSBzaXplOiBsYW5kc2NhcGUgcG9ydHJhaXQiKTsKICAgICAg
ICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOmxhbmRzY2FwZSBwb3J0cmFpdDt9Iik7Ci0gICAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wcmVmZXJyZWRQYWdlU2l6ZUluUGl4
ZWxzKDApIiwgIicoMTAwMDAsMjAwMDApJyIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIs
IDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAog
ICAgICAgICBkZWJ1ZygiVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTogMTBjbSBsZXR0ZXIiKTsKICAg
ICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOjEwY20gbGV0dGVyO30iKTsKLSAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMo
MCkiLCAiJygxMDAwMCwyMDAwMCknIik7CisgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywg
NCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAg
ICAgIGRlYnVnKCJUZXN0IGludmFsaWQgcGFnZSBzaXplOiAxMGNtIDEwY20gMTBjbSIpOwogICAg
ICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6MTBjbSAxMGNtIDEwY207fSIpOwotICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVs
cygwKSIsICInKDEwMDAwLDIwMDAwKSciKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAz
LCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAg
ICAgICAgZGVidWcoIlRlc3QgaW52YWxpZCBwYWdlIHNpemU6IGVtcHR5Iik7CiAgICAgICAgIGFw
cGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTo7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIucHJlZmVycmVkUGFnZVNpemVJblBpeGVscygwKSIsICInKDEwMDAwLDIwMDAw
KSciKTsKKyAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAw
MCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIiIpOwogCi0g
ICAgICAgIC8vIFBhZ2UgYXJlYSB0ZXN0cworICAgICAgICAvLyBNYXJnaW4gdGVzdHMKKworICAg
ICAgICBkZWJ1ZygiVGVzdCAwcHggbWFyZ2lucyIpOworICAgICAgICBhcHBlbmRTdHlsZSgiQHBh
Z2Uge21hcmdpbjowcHg7fSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwg
IicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMCwgMCwgMCwgMCkiKTsKKworICAgICAgICBk
ZWJ1ZygiVGVzdCBub24temVybyBtYXJnaW5zIik7CisgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFn
ZSB7bWFyZ2luOjEwcHggMjBweCA0MHB4IDgwcHg7fSIpOworICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAs
IDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMTAsIDIwLCA0MCwg
ODApIik7CisKKyAgICAgICAgZGVidWcoIlRlc3QgcGVyY2VudGFnZSBtYXJnaW4iKTsKKyAgICAg
ICAgYXBwZW5kU3R5bGUoIkBwYWdlIHttYXJnaW46IDglIDQlIDIlIDElO30iKTsKKyAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5z
KDgwMCwgNDAwLCAyMDAsIDEwMCkiKTsKKworICAgICAgICBkZWJ1ZygiVGVzdCBtYXJnaW46IGF1
dG8gNCUgMiUgMSUiKTsKKyAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHttYXJnaW46IGF1dG8g
NCUgMiUgMSU7fSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFn
ZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAw
MDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgNDAwLCAyMDAsIDEwMCkiKTsKIAotICAgICAgICBk
ZWJ1ZygiVGVzdCBwYWdlIGFyZWEgd2hlbiBtYXJnaW4sIHBhZGRpbmcsIGFuZCBib3JkZXIgYXJl
IDBweCIpOwotICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge21hcmdpbjowcHg7cGFkZGluZzow
cHg7Ym9yZGVyOjBweDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYWdlQXJlYVJlY3RJblBpeGVscygwKSIsICInKDAsMCwxMDAwMCwyMDAwMCknIik7CisgICAg
ICAgIGRlYnVnKCJUZXN0IG1hcmdpbjogOCUgYXV0byAyJSAxJSIpOworICAgICAgICBhcHBlbmRT
dHlsZSgiQHBhZ2Uge21hcmdpbjogOCUgYXV0byAyJSAxJTt9Iik7CisgICAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAs
IDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDIs
IDIwMCwgMTAwKSIpOwogCi0gICAgICAgIGRlYnVnKCJUZXN0IG5vbi16ZXJvIG1hcmdpbiwgcGFk
ZGluZywgYW5kIGJvcmRlciIpOwotICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge21hcmdpbjox
cHggMnB4IDRweCA4cHg7IHBhZGRpbmc6MTZweCAzMnB4IDY0cHggMTI4cHg7IGJvcmRlci13aWR0
aDoyNTZweCA1MTJweCAxMDI0cHggMjA0OHB4O30iKTsgLy8gdG9wLCByaWdodCwgYm90dG9tLCBs
ZWZ0Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlQXJlYVJlY3RJ
blBpeGVscygwKSIsICInKDIxODQsMjczLDcyNzAsMTg2MzUpJyIpOworICAgICAgICBkZWJ1Zygi
VGVzdCBtYXJnaW46IDglIDQlIGF1dG8gMSUiKTsKKyAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdl
IHttYXJnaW46IDglIDQlIGF1dG8gMSU7fSIpOworICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIs
IDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoODAwLCA0MDAsIDMsIDEwMCki
KTsKIAotICAgICAgICBkZWJ1ZygiVGVzdCBwZXJjZW50YWdlIG1hcmdpbiBhbmQgcGFkZGluZyIp
OwotICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge21hcmdpbjoyMCUgMTAlOyBwYWRkaW5nOjUl
OyBib3JkZXItd2lkdGg6MHB4O30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLnBhZ2VBcmVhUmVjdEluUGl4ZWxzKDApIiwgIicoMTUwMCwyNTAwLDcwMDAsMTUwMDAp
JyIpOworICAgICAgICBkZWJ1ZygiVGVzdCBtYXJnaW46IDglIDQlIDIlIGF1dG8iKTsKKyAgICAg
ICAgYXBwZW5kU3R5bGUoIkBwYWdlIHttYXJnaW46IDglIDQlIDIlIGF1dG87fSIpOworICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhl
bHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdp
bnMoODAwLCA0MDAsIDIwMCwgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCB2aXNpYmlsaXR5
OiBoaWRkZW4iKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHt2aXNpYmlsaXR5OmhpZGRl
bn0iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VBcmVhUmVj
dEluUGl4ZWxzKDApIiwgIicoMTUwMCwyNTAwLDcwMDAsMTUwMDApJyIpOworICAgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwg
MTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoODAw
LCA0MDAsIDIwMCwgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiIik7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtcnVsZS1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKaW5kZXgg
YzZmMmFiZGMzZjFlYmY0ODVmZTRiMGViODY5ODc4MzQ5ZDAwZmU2ZS4uZDE3NTk0ZmZhYjYxYTU4
YmE4ZmZkYWVlNjk0NTA0NWQ4ZDQ3MGYwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRp
bmcvcGFnZS1ydWxlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcHJp
bnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTMsMTIgKzMsMTIgQEAg
VGhpcyB0ZXN0cyBwYWdlIHN0eWxlIHNlbGVjdGlvbi4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIAogCi1EZWZhdWx0IG1hcmdpbiBpcyAxaW4gPSA5NnB4LgotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMCkgaXMgIjk2IgotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMSkgaXMgIjk2Igot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMikg
aXMgIjk2IgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1s
ZWZ0JywgMykgaXMgIjk2IgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHko
J21hcmdpbi1sZWZ0JywgNCkgaXMgIjk2IgorRGVmYXVsdCBtYXJnaW4gaXMgYXV0by4KK1BBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIGlzICJh
dXRvIgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0
JywgMSkgaXMgImF1dG8iCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgn
bWFyZ2luLWxlZnQnLCAyKSBpcyAiYXV0byIKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIGlzICJhdXRvIgorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgNCkgaXMgImF1dG8iCiBTZXQgbWFy
Z2luIHRvIDIwMHB4IHZpYSB1c2VyIHN0eWxlIHNoZWV0LgogUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMCkgaXMgIjIwMCIKIFBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIGlzICIyMDAiCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0bWwKaW5kZXggMGI1
YWFhMDhkMmY1MDRjZmI2ZTY1MWJlOGI5MTIzMzI2YzNhODM5NS4uNDZlN2I2NmVhYWQ0MTU5ODYz
YWRjZjQ0ZmVhM2E5MTNlNDUyNTA3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcv
cGFnZS1ydWxlLXNlbGVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2Ut
cnVsZS1zZWxlY3Rpb24uaHRtbApAQCAtMjAsMTIgKzIwLDEyIEBACiAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CiAKLSAgICAgICAgZGVidWcoIkRlZmF1bHQgbWFyZ2luIGlzIDFpbiA9IDk2cHgu
Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIiwgIjk2Iik7Ci0gICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4t
bGVmdCcsIDEpIiwgIjk2Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIpIiwgIjk2Iik7Ci0g
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVBy
b3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIiwgIjk2Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcs
IDQpIiwgIjk2Iik7CisgICAgICAgIGRlYnVnKCJEZWZhdWx0IG1hcmdpbiBpcyBhdXRvLiIpOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQ
cm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAwKSIsICJhdXRvIik7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVm
dCcsIDEpIiwgImF1dG8iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMikiLCAiYXV0byIpOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQ
cm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSIsICJhdXRvIik7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVm
dCcsIDQpIiwgImF1dG8iKTsKIAogICAgICAgICBkZWJ1ZygiU2V0IG1hcmdpbiB0byAyMDBweCB2
aWEgdXNlciBzdHlsZSBzaGVldC4iKTsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRk
VXNlclN0eWxlU2hlZXQoIkBwYWdlIHsgbWFyZ2luOjIwMHB4OyB9Iik7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZlMGZmOWE1YjA5MmQx
ZjViZTc1ZjExMzk0ZGEyMzhhYTNiMGM1MTMuLjkwZjExNGFiYTE4Yzg5MTUxZjIyZjNiMjM0MjY2
ODhkNjY3MGY3ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTAtMDYtMjUgIFl1em8gRnVqaXNoaW1hICA8
eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcHJvdmUgZGVmYXVsdCB2YWx1ZSBoYW5kbGluZyBmb3IgcGFnZSBmb3JtYXQg
cHJvcGVydGllcy4KKworICAgICAgICBEZWZhdWx0IHBhZ2Ugc2l6ZSBhbmQgb3JpZW50YXRpb24g
aGF2ZSBiZWVuIGhhcmQtY29kZWQuCisgICAgICAgIEluc3RlYWQsIHBhc3MgZGVmYXVsdCBwYWdl
IHNpemUgYW5kIG1hcmdpbnMgdG8KKyAgICAgICAgV2ViQ29yZTo6RG9jdW1lbnQ6OnBhZ2VTaXpl
QW5kTWFyZ2luc0luUGl4ZWxzIHRvIGhhbmRsZSBhdXRvIHBhZ2Ugc2l6ZQorICAgICAgICBhbmQg
bWFyZ2lucyBzcGVjaWZpZWQgYXMgcGVyY2VudGFnZXMuCisgICAgICAgIFJldHVybiBtYXJnaW5z
IGluc3RlYWQgb2YgcGFnZSByZWN0LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MTE1MAorCisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDoKKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVBhZ2VTaXplUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3R5bGVTZWxlY3Rvcjo6cGFnZVNpemVGcm9tTmFtZSk6CisgICAgICAgICogY3NzL2h0bWwu
Y3NzOgorICAgICAgICAoQHBhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6OlByaW50Q29udGV4dDo6cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMpOgorICAg
ICAgICAqIHBhZ2UvUHJpbnRDb250ZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6cGFnZVNpemVU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRQYWdlU2l6ZVR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnJlc2V0UGFnZVNpemVUeXBlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA2LTIyICBN
YWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2Vi
Q29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IDI3NDRmZThiOWQwMzYxMTc4ZjVmOWNiODMyOWU3
MjRmNTYxMjRhMjEuLmI5YTE0NzRlMjk2MzE4MDNlZmE1ZmJmMjYyZWFhY2E1Y2JkZjdjYzIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUu
YmFzZS5leHAKQEAgLTI1MSw5ICsyNTEsOCBAQCBfX1pON1dlYkNvcmUxMlBsdWdpbldpZGdldDE0
aW52YWxpZGF0ZVJlY3RFUktOU183SW50UmVjdEUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0
MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4
dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29y
ZTEyUHJpbnRDb250ZXh0MTZpc1BhZ2VCb3hWaXNpYmxlRVBOU181RnJhbWVFaQotX19aTjdXZWJD
b3JlMTJQcmludENvbnRleHQyMHBhZ2VBcmVhUmVjdEluUGl4ZWxzRVBOU181RnJhbWVFaQogX19a
TjdXZWJDb3JlMTJQcmludENvbnRleHQyMHBhZ2VOdW1iZXJGb3JFbGVtZW50RVBOU183RWxlbWVu
dEVSS05TXzlGbG9hdFNpemVFCi1fX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDI1cHJlZmVycmVk
UGFnZVNpemVJblBpeGVsc0VQTlNfNUZyYW1lRWkKK19fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0
MjZwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0VQTlNfNUZyYW1lRWlpaWlpaWkKIF9fWk43V2Vi
Q29yZTEyUHJpbnRDb250ZXh0Mjhjb21wdXRlUGFnZVJlY3RzV2l0aFBhZ2VTaXplRVJLTlNfOUZs
b2F0U2l6ZUViCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dEMxRVBOU181RnJhbWVFCiBfX1pO
N1dlYkNvcmUxMlByaW50Q29udGV4dEQxRXYKQEAgLTYyOCwxMSArNjI3LDEwIEBAIF9fWk43V2Vi
Q29yZThEb2N1bWVudDE0c2V0Rm9jdXNlZE5vZGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVF
RUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDE2aXNQYWdlQm94VmlzaWJsZUVpCiBfX1pON1dlYkNv
cmU4RG9jdW1lbnQxN2dldEZvY3VzYWJsZU5vZGVzRVJOM1dURjZWZWN0b3JJTlMxXzZSZWZQdHJJ
TlNfNE5vZGVFRUVMbTBFRUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDE5YWNjZXNzU1ZHRXh0ZW5z
aW9uc0V2Ci1fX1pON1dlYkNvcmU4RG9jdW1lbnQyMHBhZ2VBcmVhUmVjdEluUGl4ZWxzRWkKIF9f
Wk43V2ViQ29yZThEb2N1bWVudDIyY3JlYXRlRG9jdW1lbnRGcmFnbWVudEV2CiBfX1pON1dlYkNv
cmU4RG9jdW1lbnQyM3JlbmRlcmVkUmVjdHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIx
ME1hcmtlclR5cGVFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyNHNldFNob3VsZENyZWF0ZVJlbmRl
cmVyc0ViCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQyNXByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHNF
aQorX19aTjdXZWJDb3JlOERvY3VtZW50MjZwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0VpUk5T
XzdJbnRTaXplRVJpUzNfUzNfUzNfCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQzNnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0V2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ0aGVhZEV2
CiBfX1pON1dlYkNvcmU4Rm9ybURhdGFEMUV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4
IGFhMDEwZmQ3ZTk3Y2U1ZjFjMTM0MmVkNzBmYzExMjFhZTczNTZmNDIuLjY1Y2M0YjY0MzBhMDNj
ZWQ1YjA1YTEwZmI3ZTU5MDU5ZmRkN2UyODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBA
IC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQ1NTQm9yZGVySW1hZ2VWYWx1ZS5oIgogI2luY2x1
ZGUgIkNTU0N1cnNvckltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIK
LSNpbmNsdWRlICJDU1NIZWxwZXIuaCIKICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCiAjaW5j
bHVkZSAiQ1NTTWVkaWFSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKQEAgLTU1MTUs
MTQgKzU1MTQsMTcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBp
ZCwgQ1NTVmFsdWUgKnZhbHVlKQogCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UGFnZVNp
emVQcm9wZXJ0eShDU1NWYWx1ZSogdmFsdWUpCiB7CisgICAgbV9zdHlsZS0+cmVzZXRQYWdlU2l6
ZVR5cGUoKTsKICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQogICAgICAgICByZXR1cm47
CiAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3Qq
Pih2YWx1ZSk7CiAgICAgTGVuZ3RoIHdpZHRoOwogICAgIExlbmd0aCBoZWlnaHQ7CisgICAgUGFn
ZVNpemVUeXBlIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9BVVRPOwogICAgIHN3aXRjaCAodmFs
dWVMaXN0LT5sZW5ndGgoKSkgewogICAgIGNhc2UgMjogewogICAgICAgICAvLyA8bGVuZ3RoPnsy
fSB8IDxwYWdlLXNpemU+IDxvcmllbnRhdGlvbj4KKyAgICAgICAgcGFnZVNpemVUeXBlID0gUEFH
RV9TSVpFX1JFU09MVkVEOwogICAgICAgICBpZiAoIXZhbHVlTGlzdC0+aXRlbSgwKS0+aXNQcmlt
aXRpdmVWYWx1ZSgpIHx8ICF2YWx1ZUxpc3QtPml0ZW0oMSktPmlzUHJpbWl0aXZlVmFsdWUoKSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2
ZVZhbHVlMCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWVMaXN0LT5pdGVt
KDApKTsKQEAgLTU1NTEsMjQgKzU1NTMsMjQgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBs
eVBhZ2VTaXplUHJvcGVydHkoQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBpbnQgdHlwZSA9IHBy
aW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7CiAgICAgICAgIGlmIChDU1NQcmltaXRpdmVW
YWx1ZTo6aXNVbml0VHlwZUxlbmd0aCh0eXBlKSkgewogICAgICAgICAgICAgLy8gPGxlbmd0aD4K
KyAgICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9SRVNPTFZFRDsKICAgICAgICAg
ICAgIHdpZHRoID0gaGVpZ2h0ID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3Ro
SW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSksIEZpeGVkKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICh0eXBlICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfSURFTlQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgc3dpdGNoIChw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgewogICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUF1
dG86Ci0gICAgICAgICAgICAgICAgLy8gYXV0bwotICAgICAgICAgICAgICAgIGlmICghcGFnZVNp
emVGcm9tTmFtZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9BVVRPOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVBvcnRyYWl0Ogor
ICAgICAgICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9BVVRPX1BPUlRSQUlUOwor
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhbmRzY2Fw
ZToKLSAgICAgICAgICAgICAgICAvLyA8cGFnZS1zaXplPgotICAgICAgICAgICAgICAgIGlmICgh
cGFnZVNpemVGcm9tTmFtZSgwLCBwcmltaXRpdmVWYWx1ZSwgd2lkdGgsIGhlaWdodCkpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQ
QUdFX1NJWkVfQVVUT19MQU5EU0NBUEU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIC8vIFsgcG9ydHJhaXQgfCBsYW5kc2NhcGVd
CisgICAgICAgICAgICAgICAgLy8gPHBhZ2Utc2l6ZT4KKyAgICAgICAgICAgICAgICBwYWdlU2l6
ZVR5cGUgPSBQQUdFX1NJWkVfUkVTT0xWRUQ7CiAgICAgICAgICAgICAgICAgaWYgKCFwYWdlU2l6
ZUZyb21OYW1lKHByaW1pdGl2ZVZhbHVlLCAwLCB3aWR0aCwgaGVpZ2h0KSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNTU3OCw2ICs1NTgwLDcgQEAgdm9p
ZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBhZ2VTaXplUHJvcGVydHkoQ1NTVmFsdWUqIHZhbHVl
KQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgbV9zdHlsZS0+c2V0
UGFnZVNpemVUeXBlKHBhZ2VTaXplVHlwZSk7CiAgICAgbV9zdHlsZS0+c2V0UGFnZVNpemUoTGVu
Z3RoU2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CiAgICAgcmV0dXJuOwogfQpAQCAtNTU5MywzMSArNTU5
NiwxMCBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OnBhZ2VTaXplRnJvbU5hbWUoQ1NTUHJpbWl0
aXZlVmFsdWUqIHBhZ2VTaXplTmFtZSwgQ1NTUHJpbQogICAgIHN0YXRpYyBjb25zdCBMZW5ndGgg
bGVnYWxXaWR0aCA9IGluY2hMZW5ndGgoOC41KSwgbGVnYWxIZWlnaHQgPSBpbmNoTGVuZ3RoKDE0
KTsKICAgICBzdGF0aWMgY29uc3QgTGVuZ3RoIGxlZGdlcldpZHRoID0gaW5jaExlbmd0aCgxMSks
IGxlZGdlckhlaWdodCA9IGluY2hMZW5ndGgoMTcpOwogCi0gICAgLy8gRklYTUU6IERlZmluZSBV
QSBkZWZhdWx0IHBhZ2Ugc2l6ZS4gQXNzdW1lIGxldHRlciBmb3Igbm93LgotICAgIGludCBpZGVu
dCA9IENTU1ZhbHVlTGV0dGVyOwotICAgIGlmIChwYWdlU2l6ZU5hbWUpIHsKLSAgICAgICAgaWYg
KHBhZ2VTaXplTmFtZS0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
SURFTlQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlkZW50ID0gcGFnZVNp
emVOYW1lLT5nZXRJZGVudCgpOwotICAgIH0KKyAgICBpZiAoIXBhZ2VTaXplTmFtZSB8fCBwYWdl
U2l6ZU5hbWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5U
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBGSVhNRTogRGVmaW5lIFVBIGRlZmF1
bHQgcGFnZSBvcmllbnRhdGlvbi4gQXNzdW1lIHBvcnRyYWl0IGZvciBub3cuCi0gICAgYm9vbCBw
b3J0cmFpdCA9IHRydWU7Ci0gICAgaWYgKHBhZ2VPcmllbnRhdGlvbikgewotICAgICAgICBpZiAo
cGFnZU9yaWVudGF0aW9uLT5wcmltaXRpdmVUeXBlKCkgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19JREVOVCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgc3dpdGNoIChwYWdl
T3JpZW50YXRpb24tPmdldElkZW50KCkpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUxhbmRzY2Fw
ZToKLSAgICAgICAgICAgIHBvcnRyYWl0ID0gZmFsc2U7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZVBvcnRyYWl0OgotICAgICAgICAgICAgcG9ydHJhaXQgPSB0cnVl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgc3dpdGNoIChpZGVudCkgeworICAgIHN3
aXRjaCAocGFnZVNpemVOYW1lLT5nZXRJZGVudCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUE1Ogog
ICAgICAgICB3aWR0aCA9IGE1V2lkdGg7CiAgICAgICAgIGhlaWdodCA9IGE1SGVpZ2h0OwpAQCAt
NTY1Myw4ICs1NjM1LDIxIEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6cGFnZVNpemVGcm9tTmFt
ZShDU1NQcmltaXRpdmVWYWx1ZSogcGFnZVNpemVOYW1lLCBDU1NQcmltCiAgICAgZGVmYXVsdDoK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBpZiAoIXBvcnRyYWl0KQotICAgICAg
ICBzd2FwKHdpZHRoLCBoZWlnaHQpOworCisgICAgaWYgKHBhZ2VPcmllbnRhdGlvbikgeworICAg
ICAgICBpZiAocGFnZU9yaWVudGF0aW9uLT5wcmltaXRpdmVUeXBlKCkgIT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19JREVOVCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc3dp
dGNoIChwYWdlT3JpZW50YXRpb24tPmdldElkZW50KCkpIHsKKyAgICAgICAgY2FzZSBDU1NWYWx1
ZUxhbmRzY2FwZToKKyAgICAgICAgICAgIHN0ZDo6c3dhcCh3aWR0aCwgaGVpZ2h0KTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlUG9ydHJhaXQ6CisgICAgICAgICAg
ICAvLyBOb3RoaW5nIHRvIGRvLgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvV2ViQ29yZS9j
c3MvaHRtbC5jc3MKaW5kZXggMTA1MTY1OTJhNGIwOThlMjFkYTU2MTdiMzYzNzUxMTNkZTU4ZTMy
Yy4uNWEyMDU2NTYwMGQxNDgwMGY0ZDMxMzUwZTZiNmZmMzZjZjM5Y2MzYSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTcyOCw3
ICs3MjgsOSBAQCBpZnJhbWUgewogQHBhZ2UgewogICAgIC8qIEZJWE1FOiBEZWZpbmUgdGhlIHJp
Z2h0IGRlZmF1bHQgdmFsdWVzIGZvciBwYWdlIHByb3BlcnRpZXMuICovCiAgICAgc2l6ZTogYXV0
bzsKLSAgICBtYXJnaW46IDFpbjsKKyAgICBtYXJnaW46IGF1dG87CisgICAgcGFkZGluZzogMHB4
OworICAgIGJvcmRlci13aWR0aDogMHB4OwogfQogCiAvKiBub3NjcmlwdCBpcyBoYW5kbGVkIGlu
dGVybmFsbHksIGFzIGl0IGRlcGVuZHMgb24gc2V0dGluZ3MgKi8KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjMDEw
Njc4NjA3YTQwMDdhNTQ4YjI5MDBkNDZmYTczZTY3MDM4MDhiLi4zZDdiMmM4OGU5ZGFiOTEwMjI3
OWRmYTcyMDI2ZWYyMDQ3YTZkZDk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNTA4LDI5ICsxNTA4LDQyIEBA
IGJvb2wgRG9jdW1lbnQ6OmlzUGFnZUJveFZpc2libGUoaW50IHBhZ2VJbmRleCkKICAgICByZXR1
cm4gc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBISURERU47IC8vIGRpc3BsYXkgcHJvcGVydHkgZG9l
c24ndCBhcHBseSB0byBAcGFnZS4KIH0KIAotSW50UmVjdCBEb2N1bWVudDo6cGFnZUFyZWFSZWN0
SW5QaXhlbHMoaW50IHBhZ2VJbmRleCkKK3ZvaWQgRG9jdW1lbnQ6OnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKGludCBwYWdlSW5kZXgsIEludFNpemUmIHBhZ2VTaXplLCBpbnQmIG1hcmdpblRv
cCwgaW50JiBtYXJnaW5SaWdodCwgaW50JiBtYXJnaW5Cb3R0b20sIGludCYgbWFyZ2luTGVmdCkK
IHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVGb3JQYWdlKHBhZ2VJbmRl
eCk7Ci0gICAgSW50U2l6ZSBwYWdlU2l6ZSA9IHByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMocGFn
ZUluZGV4KTsKLSAgICAvLyAxMDAlIHZhbHVlIGZvciBtYXJnaW4te2xlZnQscmlnaHQsdG9wLGJv
dHRvbX0uIFRoaXMgaXMgdXNlZCBhbHNvIGZvciB0b3AgYW5kIGJvdHRvbS4gaHR0cDovL3d3dy53
My5vcmcvVFIvQ1NTMi9ib3guaHRtbCN2YWx1ZS1kZWYtbWFyZ2luLXdpZHRoCi0gICAgaW50IG1h
eFZhbHVlID0gcGFnZVNpemUud2lkdGgoKTsKLSAgICBpbnQgc3Vycm91bmRMZWZ0ID0gc3R5bGUt
Pm1hcmdpbkxlZnQoKS5jYWxjVmFsdWUobWF4VmFsdWUpICsgc3R5bGUtPmJvcmRlckxlZnQoKS53
aWR0aCgpICsgc3R5bGUtPnBhZGRpbmdMZWZ0KCkuY2FsY1ZhbHVlKG1heFZhbHVlKTsKLSAgICBp
bnQgc3Vycm91bmRSaWdodCA9IHN0eWxlLT5tYXJnaW5SaWdodCgpLmNhbGNWYWx1ZShtYXhWYWx1
ZSkgKyBzdHlsZS0+Ym9yZGVyUmlnaHQoKS53aWR0aCgpICsgc3R5bGUtPnBhZGRpbmdSaWdodCgp
LmNhbGNWYWx1ZShtYXhWYWx1ZSk7Ci0gICAgaW50IHN1cnJvdW5kVG9wID0gc3R5bGUtPm1hcmdp
blRvcCgpLmNhbGNWYWx1ZShtYXhWYWx1ZSkgKyBzdHlsZS0+Ym9yZGVyVG9wKCkud2lkdGgoKSAr
IHN0eWxlLT5wYWRkaW5nVG9wKCkuY2FsY1ZhbHVlKG1heFZhbHVlKTsKLSAgICBpbnQgc3Vycm91
bmRCb3R0b20gPSBzdHlsZS0+bWFyZ2luQm90dG9tKCkuY2FsY1ZhbHVlKG1heFZhbHVlKSArIHN0
eWxlLT5ib3JkZXJCb3R0b20oKS53aWR0aCgpICsgc3R5bGUtPnBhZGRpbmdCb3R0b20oKS5jYWxj
VmFsdWUobWF4VmFsdWUpOwotICAgIGludCB3aWR0aCA9IHBhZ2VTaXplLndpZHRoKCkgLSBzdXJy
b3VuZExlZnQgLSBzdXJyb3VuZFJpZ2h0OwotICAgIGludCBoZWlnaHQgPSBwYWdlU2l6ZS5oZWln
aHQoKSAtIHN1cnJvdW5kVG9wIC0gc3Vycm91bmRCb3R0b207CiAKLSAgICByZXR1cm4gSW50UmVj
dChzdXJyb3VuZExlZnQsIHN1cnJvdW5kVG9wLCB3aWR0aCwgaGVpZ2h0KTsKLX0KKyAgICBpbnQg
d2lkdGggPSBwYWdlU2l6ZS53aWR0aCgpOworICAgIGludCBoZWlnaHQgPSBwYWdlU2l6ZS5oZWln
aHQoKTsKKyAgICBzd2l0Y2ggKHN0eWxlLT5wYWdlU2l6ZVR5cGUoKSkgeworICAgIGNhc2UgUEFH
RV9TSVpFX0FVVE86CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEFHRV9TSVpFX0FVVE9fTEFO
RFNDQVBFOgorICAgICAgICBpZiAod2lkdGggPCBoZWlnaHQpCisgICAgICAgICAgICBzdGQ6OnN3
YXAod2lkdGgsIGhlaWdodCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEFHRV9TSVpFX0FV
VE9fUE9SVFJBSVQ6CisgICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkKKyAgICAgICAgICAgIHN0
ZDo6c3dhcCh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQQUdFX1NJ
WkVfUkVTT0xWRUQ6IHsKKyAgICAgICAgTGVuZ3RoU2l6ZSBzaXplID0gc3R5bGUtPnBhZ2VTaXpl
KCk7CisgICAgICAgIEFTU0VSVChzaXplLndpZHRoKCkuaXNGaXhlZCgpKTsKKyAgICAgICAgQVNT
RVJUKHNpemUuaGVpZ2h0KCkuaXNGaXhlZCgpKTsKKyAgICAgICAgd2lkdGggPSBzaXplLndpZHRo
KCkuY2FsY1ZhbHVlKDApOworICAgICAgICBoZWlnaHQgPSBzaXplLmhlaWdodCgpLmNhbGNWYWx1
ZSgwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICBwYWdlU2l6ZSA9IEludFNpemUod2lkdGgsIGhl
aWdodCk7CiAKLUludFNpemUgRG9jdW1lbnQ6OnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoaW50
IHBhZ2VJbmRleCkKLXsKLSAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVGb3JQ
YWdlKHBhZ2VJbmRleCk7Ci0gICAgTGVuZ3RoU2l6ZSBzaXplID0gc3R5bGUtPnBhZ2VTaXplKCk7
Ci0gICAgQVNTRVJUKHNpemUud2lkdGgoKS5pc0ZpeGVkKCkpOwotICAgIEFTU0VSVChzaXplLmhl
aWdodCgpLmlzRml4ZWQoKSk7Ci0gICAgcmV0dXJuIEludFNpemUoc2l6ZS53aWR0aCgpLmNhbGNW
YWx1ZSgwKSwgc2l6ZS5oZWlnaHQoKS5jYWxjVmFsdWUoMCkpOworICAgIC8vIFRoZSBwZXJjZW50
YWdlIGlzIGNhbGN1bGF0ZWQgd2l0aCByZXNwZWN0IHRvIHRoZSB3aWR0aCBldmVuIGZvciBtYXJn
aW4gdG9wIGFuZCBib3R0b20uCisgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMi9ib3gu
aHRtbCNtYXJnaW4tcHJvcGVydGllcworICAgIG1hcmdpblRvcCA9IHN0eWxlLT5tYXJnaW5Ub3Ao
KS5pc0F1dG8oKSA/IG1hcmdpblRvcCA6IHN0eWxlLT5tYXJnaW5Ub3AoKS5jYWxjVmFsdWUod2lk
dGgpOworICAgIG1hcmdpblJpZ2h0ID0gc3R5bGUtPm1hcmdpblJpZ2h0KCkuaXNBdXRvKCkgPyBt
YXJnaW5SaWdodCA6IHN0eWxlLT5tYXJnaW5SaWdodCgpLmNhbGNWYWx1ZSh3aWR0aCk7CisgICAg
bWFyZ2luQm90dG9tID0gc3R5bGUtPm1hcmdpbkJvdHRvbSgpLmlzQXV0bygpID8gbWFyZ2luQm90
dG9tIDogc3R5bGUtPm1hcmdpbkJvdHRvbSgpLmNhbGNWYWx1ZSh3aWR0aCk7CisgICAgbWFyZ2lu
TGVmdCA9IHN0eWxlLT5tYXJnaW5MZWZ0KCkuaXNBdXRvKCkgPyBtYXJnaW5MZWZ0IDogc3R5bGUt
Pm1hcmdpbkxlZnQoKS5jYWxjVmFsdWUod2lkdGgpOwogfQogCiB2b2lkIERvY3VtZW50OjpjcmVh
dGVTdHlsZVNlbGVjdG9yKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDMxN2ZiYjc2N2Y4Y2VkNjc0ZGQ0ZTIxNzQyOWQ0
OGIwOTM3M2FlNGMuLjIyN2Y0MzUxNmNiODYzYmY4Zjk2M2I0Y2FlMjhlOGE0ZGY5ZDQzNjMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaApAQCAtNDgzLDkgKzQ4MywxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBz
dHlsZUZvckVsZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyhFbGVtZW50Kik7CiAgICAg
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOworCisg
ICAgLy8gUmV0dXJucyB0cnVlIGlmIHBhZ2UgYm94IChtYXJnaW4gYm94ZXMgYW5kIHBhZ2UgYm9y
ZGVycykgaXMgdmlzaWJsZS4KICAgICBib29sIGlzUGFnZUJveFZpc2libGUoaW50IHBhZ2VJbmRl
eCk7Ci0gICAgSW50UmVjdCBwYWdlQXJlYVJlY3RJblBpeGVscyhpbnQgcGFnZUluZGV4KTsKLSAg
ICBJbnRTaXplIHByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoaW50IHBhZ2VJbmRleCk7CisKKyAg
ICAvLyBSZXR1cm5zIHRoZSBwcmVmZXJyZWQgcGFnZSBzaXplIGFuZCBtYXJnaW5zIGluIHBpeGVs
cywgYXNzdW1pbmcgOTYKKyAgICAvLyBwaXhlbHMgcGVyIGluY2guIHBhZ2VTaXplLCBtYXJnaW5U
b3AsIG1hcmdpblJpZ2h0LCBtYXJnaW5Cb3R0b20sCisgICAgLy8gbWFyZ2luTGVmdCBtdXN0IGJl
IGluaXRpYWxpemVkIHRvIHRoZSBkZWZhdWx0IHZhbHVlcyB0aGF0IGFyZSB1c2VkIGlmCisgICAg
Ly8gYXV0byBpcyBzcGVjaWZpZWQuCisgICAgdm9pZCBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cyhpbnQgcGFnZUluZGV4LCBJbnRTaXplJiBwYWdlU2l6ZSwgaW50JiBtYXJnaW5Ub3AsIGludCYg
bWFyZ2luUmlnaHQsIGludCYgbWFyZ2luQm90dG9tLCBpbnQmIG1hcmdpbkxlZnQpOworCiAgICAg
c3RhdGljIHZvaWQgdXBkYXRlU3R5bGVGb3JBbGxEb2N1bWVudHMoKTsgLy8gRklYTUU6IFRyeSB0
byByZWR1Y2UgdGhlICMgb2YgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbi4KICAgICBEb2NMb2FkZXIq
IGRvY0xvYWRlcigpIHsgcmV0dXJuIG1fZG9jTG9hZGVyLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwIGIvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4
dC5jcHAKaW5kZXggNGFiNzM2N2M0ZDc5YTE4MjNlN2JkNzE3ZTk2NDk3N2Y5ZGFjZDA0OC4uN2Ux
ZTM1ZDI2ZjY3YThkODkyMmYxMjVjNTQ0NGIyODQyNTM1MWZiNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL1ByaW50Q29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5j
cHAKQEAgLTIwNiw4ICsyMDYsMTEgQEAgU3RyaW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5
KEZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBpbnQgcGEKICAgICBSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gZG9jdW1lbnQtPnN0eWxlRm9yUGFnZShwYWdlTnVtYmVy
KTsKIAogICAgIC8vIEltcGxlbWVudCBmb3JtYXR0ZXJzIGZvciBwcm9wZXJ0aWVzIHdlIGNhcmUg
YWJvdXQuCi0gICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibWFyZ2luLWxlZnQiKSkKKyAg
ICBpZiAoIXN0cmNtcChwcm9wZXJ0eU5hbWUsICJtYXJnaW4tbGVmdCIpKSB7CisgICAgICAgIGlm
IChzdHlsZS0+bWFyZ2luTGVmdCgpLmlzQXV0bygpKQorICAgICAgICAgICAgcmV0dXJuIFN0cmlu
ZygiYXV0byIpOwogICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVkIiwgc3R5bGUtPm1h
cmdpbkxlZnQoKS5yYXdWYWx1ZSgpKTsKKyAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlO
YW1lLCAibGluZS1oZWlnaHQiKSkKICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlZCIs
IHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3VmFsdWUoKSk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVy
dHlOYW1lLCAiZm9udC1zaXplIikpCkBAIC0yMjMsMTYgKzIyNiwxMSBAQCBib29sIFByaW50Q29u
dGV4dDo6aXNQYWdlQm94VmlzaWJsZShGcmFtZSogZnJhbWUsIGludCBwYWdlTnVtYmVyKQogICAg
IHJldHVybiBmcmFtZS0+ZG9jdW1lbnQoKS0+aXNQYWdlQm94VmlzaWJsZShwYWdlTnVtYmVyKTsK
IH0KIAotU3RyaW5nIFByaW50Q29udGV4dDo6cGFnZUFyZWFSZWN0SW5QaXhlbHMoRnJhbWUqIGZy
YW1lLCBpbnQgcGFnZU51bWJlcikKLXsKLSAgICBJbnRSZWN0IHBhZ2VBcmVhID0gZnJhbWUtPmRv
Y3VtZW50KCktPnBhZ2VBcmVhUmVjdEluUGl4ZWxzKHBhZ2VOdW1iZXIpOwotICAgIHJldHVybiBT
dHJpbmc6OmZvcm1hdCgiKCVkLCVkLCVkLCVkKSIsIHBhZ2VBcmVhLngoKSwgcGFnZUFyZWEueSgp
LCBwYWdlQXJlYS53aWR0aCgpLCBwYWdlQXJlYS5oZWlnaHQoKSk7Ci19Ci0KLVN0cmluZyBQcmlu
dENvbnRleHQ6OnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoRnJhbWUqIGZyYW1lLCBpbnQgcGFn
ZU51bWJlcikKK1N0cmluZyBQcmludENvbnRleHQ6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KEZyYW1lKiBmcmFtZSwgaW50IHBhZ2VOdW1iZXIsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50
IG1hcmdpblRvcCwgaW50IG1hcmdpblJpZ2h0LCBpbnQgbWFyZ2luQm90dG9tLCBpbnQgbWFyZ2lu
TGVmdCkKIHsKLSAgICBJbnRTaXplIHBhZ2VTaXplID0gZnJhbWUtPmRvY3VtZW50KCktPnByZWZl
cnJlZFBhZ2VTaXplSW5QaXhlbHMocGFnZU51bWJlcik7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9y
bWF0KCIoJWQsJWQpIiwgcGFnZVNpemUud2lkdGgoKSwgcGFnZVNpemUuaGVpZ2h0KCkpOworICAg
IEludFNpemUgcGFnZVNpemUod2lkdGgsIGhlaWdodCk7CisgICAgZnJhbWUtPmRvY3VtZW50KCkt
PnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKHBhZ2VOdW1iZXIsIHBhZ2VTaXplLCBtYXJnaW5U
b3AsIG1hcmdpblJpZ2h0LCBtYXJnaW5Cb3R0b20sIG1hcmdpbkxlZnQpOworICAgIHJldHVybiBT
dHJpbmc6OmZvcm1hdCgiKCVkLCAlZCkgJWQgJWQgJWQgJWQiLCBwYWdlU2l6ZS53aWR0aCgpLCBw
YWdlU2l6ZS5oZWlnaHQoKSwgbWFyZ2luVG9wLCBtYXJnaW5SaWdodCwgbWFyZ2luQm90dG9tLCBt
YXJnaW5MZWZ0KTsKIH0KIAogaW50IFByaW50Q29udGV4dDo6bnVtYmVyT2ZQYWdlcyhGcmFtZSog
ZnJhbWUsIGNvbnN0IEZsb2F0U2l6ZSYgcGFnZVNpemVJblBpeGVscykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9QcmludENvbnRleHQuaCBiL1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuaApp
bmRleCA4MWE5Yjc2NGQxMjgxOWIxZTQ4N2MzMzQzZTdjZTE3NThmNDNhNDQ0Li4xMDgwYzI5Zjgy
NjE2NTE3YTdiY2M3YWY1ZDMxZTc1NDllNTM5MDI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5oCkBAIC01Nyw4
ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50KEVs
ZW1lbnQqLCBjb25zdCBGbG9hdFNpemUmIHBhZ2VTaXplSW5QaXhlbHMpOwogICAgIHN0YXRpYyBT
dHJpbmcgcGFnZVByb3BlcnR5KEZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogcHJvcGVydHlOYW1l
LCBpbnQgcGFnZU51bWJlcik7CiAgICAgc3RhdGljIGJvb2wgaXNQYWdlQm94VmlzaWJsZShGcmFt
ZSogZnJhbWUsIGludCBwYWdlTnVtYmVyKTsKLSAgICBzdGF0aWMgU3RyaW5nIHBhZ2VBcmVhUmVj
dEluUGl4ZWxzKEZyYW1lKiBmcmFtZSwgaW50IHBhZ2VOdW1iZXIpOwotICAgIHN0YXRpYyBTdHJp
bmcgcHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhGcmFtZSogZnJhbWUsIGludCBwYWdlTnVtYmVy
KTsKKyAgICBzdGF0aWMgU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKEZyYW1lKiBm
cmFtZSwgaW50IHBhZ2VOdW1iZXIsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IG1hcmdpblRv
cCwgaW50IG1hcmdpblJpZ2h0LCBpbnQgbWFyZ2luQm90dG9tLCBpbnQgbWFyZ2luTGVmdCk7CiAg
ICAgc3RhdGljIGludCBudW1iZXJPZlBhZ2VzKEZyYW1lKiwgY29uc3QgRmxvYXRTaXplJiBwYWdl
U2l6ZUluUGl4ZWxzKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgKaW5kZXggNDlmZDk0ZGM2ZjBjZDU0YmExMjc5MTVjYjk2Yzk0MGU5ZTBjZTk2Mi4uZjJi
MjUxYzdmZDM2YzBkNmZjODdjNmIzZTA4ZmM3N2I5NWVmZWE2MCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03MDQsNiArNzA0LDcgQEAgcHVibGljOgogICAgIExlbmd0
aCBwZXJzcGVjdGl2ZU9yaWdpblgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblg7IH0KICAgICBMZW5ndGggcGVyc3BlY3RpdmVPcmlnaW5Z
KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmVPcmln
aW5ZOyB9CiAgICAgTGVuZ3RoU2l6ZSBwYWdlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX3BhZ2VTaXplOyB9CisgICAgUGFnZVNpemVUeXBlIHBhZ2VTaXplVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BhZ2VTaXplVHlwZTsg
fQogICAgIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBXaGVuIHNl
dCwgdGhpcyBlbnN1cmVzIHRoYXQgc3R5bGVzIGNvbXBhcmUgYXMgZGlmZmVyZW50LiBVc2VkIGR1
cmluZyBhY2NlbGVyYXRlZCBhbmltYXRpb25zLgpAQCAtMTAzMSw2ICsxMDMyLDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0UGVyc3BlY3RpdmVPcmlnaW5YKExlbmd0aCBsKSB7IFNFVF9WQVIocmFy
ZU5vbkluaGVyaXRlZERhdGEsIG1fcGVyc3BlY3RpdmVPcmlnaW5YLCBsKTsgfQogICAgIHZvaWQg
c2V0UGVyc3BlY3RpdmVPcmlnaW5ZKExlbmd0aCBsKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRl
ZERhdGEsIG1fcGVyc3BlY3RpdmVPcmlnaW5ZLCBsKTsgfQogICAgIHZvaWQgc2V0UGFnZVNpemUo
TGVuZ3RoU2l6ZSBzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcGFnZVNpemUs
IHMpOyB9CisgICAgdm9pZCBzZXRQYWdlU2l6ZVR5cGUoUGFnZVNpemVUeXBlIHQpIHsgU0VUX1ZB
UihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9wYWdlU2l6ZVR5cGUsIHQpOyB9CisgICAgdm9pZCBy
ZXNldFBhZ2VTaXplVHlwZSgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9wYWdl
U2l6ZVR5cGUsIFBBR0VfU0laRV9BVVRPKTsgfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIHZvaWQgc2V0SXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24oYm9vbCBi
ID0gdHJ1ZSkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3J1bm5pbmdBY2NlbGVy
YXRlZEFuaW1hdGlvbiwgYik7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggZTMzNjdkMTA4ZGM1ZDcyYTkxNmY3
NjdiMzBiYjUyMjUxZmJlZDFjNS4uZDVjOTUzNjVkYWEyZjM2ZGIwNjAxNjc2MzNjYTA5NTAxZWFi
Nzg4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHAKQEAgLTU5LDYgKzU5LDggQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAjaWYgRU5BQkxFKFhCTCkKICAgICAs
IGJpbmRpbmdVUkkoMCkKICNlbmRpZgorICAgICwgbV9wYWdlU2l6ZSgpCisgICAgLCBtX3BhZ2VT
aXplVHlwZShQQUdFX1NJWkVfQVVUTykKIHsKIH0KIApAQCAtOTgsNiArMTAwLDggQEAgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWQKICNpZiBFTkFCTEUoWEJMKQogICAgICwgYmluZGluZ1VSSShvLmJp
bmRpbmdVUkkgPyBvLmJpbmRpbmdVUkktPmNvcHkoKSA6IDApCiAjZW5kaWYKKyAgICAsIG1fcGFn
ZVNpemUoby5tX3BhZ2VTaXplKQorICAgICwgbV9wYWdlU2l6ZVR5cGUoby5tX3BhZ2VTaXplVHlw
ZSkKIHsKIH0KIApAQCAtMTU2LDYgKzE2MCw4IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAg
ICAgICAgICYmIChtX3BlcnNwZWN0aXZlID09IG8ubV9wZXJzcGVjdGl2ZSkKICAgICAgICAgJiYg
KG1fcGVyc3BlY3RpdmVPcmlnaW5YID09IG8ubV9wZXJzcGVjdGl2ZU9yaWdpblgpCiAgICAgICAg
ICYmIChtX3BlcnNwZWN0aXZlT3JpZ2luWSA9PSBvLm1fcGVyc3BlY3RpdmVPcmlnaW5ZKQorICAg
ICAgICAmJiAobV9wYWdlU2l6ZSA9PSBvLm1fcGFnZVNpemUpCisgICAgICAgICYmIChtX3BhZ2VT
aXplVHlwZSA9PSBvLm1fcGFnZVNpemVUeXBlKQogICAgICAgICA7CiB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCA3
NGU3MzZjZjJhNWNkM2NjMzg3MmFjMTAzMDdhMTFjOGM2NjdmZWNkLi41MGJjYzllYzQ5YmM0ZDk5
N2QzOGY0YWJhY2E0MWFlYWVhODhkMzA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC01OCw2ICs1OCwxNiBAQCBzdHJ1
Y3QgU3R5bGVEYXNoYm9hcmRSZWdpb247CiBjbGFzcyBCaW5kaW5nVVJJOwogI2VuZGlmCiAKKy8v
IFBhZ2Ugc2l6ZSB0eXBlLgorLy8gU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6bV9wYWdlU2l6
ZSBpcyBtZWFuaW5nZnVsIG9ubHkgd2hlbiAKKy8vIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6
Om1fcGFnZVNpemVUeXBlIGlzIFBBR0VfU0laRV9SRVNPTFZFRC4KK2VudW0gUGFnZVNpemVUeXBl
IHsKKyAgICBQQUdFX1NJWkVfQVVUTywgLy8gc2l6ZTogYXV0bworICAgIFBBR0VfU0laRV9BVVRP
X0xBTkRTQ0FQRSwgLy8gc2l6ZTogbGFuZHNjYXBlCisgICAgUEFHRV9TSVpFX0FVVE9fUE9SVFJB
SVQsIC8vIHNpemU6IHBvcnRyYWl0CisgICAgUEFHRV9TSVpFX1JFU09MVkVEIC8vIFNpemUgaXMg
ZnVsbHkgcmVzb2x2ZWQuCit9OworCiAvLyBUaGlzIHN0cnVjdCBpcyBmb3IgcmFyZWx5IHVzZWQg
bm9uLWluaGVyaXRlZCBDU1MzLCBDU1MyLCBhbmQgV2ViS2l0LXNwZWNpZmljIHByb3BlcnRpZXMu
CiAvLyBCeSBncm91cGluZyB0aGVtIHRvZ2V0aGVyLCB3ZSBzYXZlIHNwYWNlLCBhbmQgb25seSBh
bGxvY2F0ZSB0aGlzIG9iamVjdCB3aGVuIHNvbWVvbmUKIC8vIGFjdHVhbGx5IHVzZXMgb25lIG9m
IHRoZXNlIHByb3BlcnRpZXMuCkBAIC0xMjUsNiArMTM1LDcgQEAgcHVibGljOgogICAgIExlbmd0
aCBtX3BlcnNwZWN0aXZlT3JpZ2luWTsKIAogICAgIExlbmd0aFNpemUgbV9wYWdlU2l6ZTsKKyAg
ICBQYWdlU2l6ZVR5cGUgbV9wYWdlU2l6ZVR5cGU7CiAKICNpZiBFTkFCTEUoWEJMKQogICAgIE93
blB0cjxCaW5kaW5nVVJJPiBiaW5kaW5nVVJJOyAvLyBUaGUgWEJMIGJpbmRpbmcgVVJJIGxpc3Qu
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBkYTkyMTNmNWNiNjQ2ZDYxOGEyYzg0MGUzM2FmNTFhMjZmNzk3Mzc2
Li40MWY2NDVmNTYzMGQyNWQxMDk0OTk4NTlkODk2ZDhlM2NkNjUwOTg1IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNi0yNSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wcm92ZSBkZWZhdWx0IHZhbHVlIGhhbmRsaW5nIGZvciBwYWdlIGZvcm1hdCBwcm9wZXJ0aWVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDExNTAK
KworICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZS5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUlt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6CisKIDIwMTAtMDYtMjMg
IFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1l
LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKaW5kZXggMzE5Y2UzODk3Nzk5
ODRmODNlZjdiNWJhODAyNmQzODIxOTkyODU2ZC4uMzFiNDQzYjYxYzZhNmM3MTNkNDdmMGYwYzQ5
ZDg1ZDMxYWM0OWFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFt
ZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtNDA4LDEyICs0
MDgsMTYgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBwYWdlIGJveCAobWFyZ2lu
IGJveGVzIGFuZCBwYWdlIGJvcmRlcnMpIGlzIHZpc2libGUuCiAgICAgdmlydHVhbCBib29sIGlz
UGFnZUJveFZpc2libGUoaW50IHBhZ2VJbmRleCkgPSAwOwogCi0gICAgLy8gUmV0dXJucyB0aGUg
cGFnZSBhcmVhIHJlY3RhbmdsZSBpbiBwaXhlbHMsIGFzc3VtaW5nIDk2IHBpeGVscyBwZXIgaW5j
aC4KLSAgICB2aXJ0dWFsIFdlYlJlY3QgcGFnZUFyZWFSZWN0SW5QaXhlbHMoaW50IHBhZ2VJbmRl
eCkgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0aGUgcHJlZmVycmVkIHBhZ2Ugc2l6ZSBpbiBwaXhl
bHMsIGFzc3VtaW5nIDk2IHBpeGVscyBwZXIgaW5jaC4KLSAgICB2aXJ0dWFsIFdlYlNpemUgcHJl
ZmVycmVkUGFnZVNpemVJblBpeGVscyhpbnQgcGFnZUluZGV4KSA9IDA7Ci0KKyAgICAvLyBSZXR1
cm5zIHRoZSBwcmVmZXJyZWQgcGFnZSBzaXplIGFuZCBtYXJnaW5zIGluIHBpeGVscywgYXNzdW1p
bmcgOTYKKyAgICAvLyBwaXhlbHMgcGVyIGluY2guIHBhZ2VTaXplLCBtYXJnaW5Ub3AsIG1hcmdp
blJpZ2h0LCBtYXJnaW5Cb3R0b20sCisgICAgLy8gbWFyZ2luTGVmdCBtdXN0IGJlIGluaXRpYWxp
emVkIHRvIHRoZSBkZWZhdWx0IHZhbHVlcyB0aGF0IGFyZSB1c2VkIGlmCisgICAgLy8gYXV0byBp
cyBzcGVjaWZpZWQuCisgICAgdmlydHVhbCB2b2lkIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KGludCBwYWdlSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYlNpemUmIHBhZ2VTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQmIG1hcmdpblRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50JiBtYXJnaW5SaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5Cb3R0b20sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luTGVmdCkgPSAwOwogCiAgICAg
Ly8gRmluZC1pbi1wYWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJh
bWVJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAz
ZjkzNjBjODIwY2NjNDE0NDc0NmMxYzg2MjNkOWY2MWE2OGQ5ZDFlLi42ZDhmZjQxMzgxYjAyMjYx
MzhiYmVmYTg1MjhkODI1M2FkNDkwZGFjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCkBAIC0xMjg0LDE0ICsxMjg0LDIxIEBAIGJvb2wgV2ViRnJhbWVJbXBsOjppc1BhZ2VCb3hW
aXNpYmxlKGludCBwYWdlSW5kZXgpCiAgICAgcmV0dXJuIGZyYW1lKCktPmRvY3VtZW50KCktPmlz
UGFnZUJveFZpc2libGUocGFnZUluZGV4KTsKIH0KIAotV2ViUmVjdCBXZWJGcmFtZUltcGw6OnBh
Z2VBcmVhUmVjdEluUGl4ZWxzKGludCBwYWdlSW5kZXgpCi17Ci0gICAgcmV0dXJuIGZyYW1lKCkt
PmRvY3VtZW50KCktPnBhZ2VBcmVhUmVjdEluUGl4ZWxzKHBhZ2VJbmRleCk7Ci19Ci0KLVdlYlNp
emUgV2ViRnJhbWVJbXBsOjpwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKGludCBwYWdlSW5kZXgp
Ci17Ci0gICAgcmV0dXJuIGZyYW1lKCktPmRvY3VtZW50KCktPnByZWZlcnJlZFBhZ2VTaXplSW5Q
aXhlbHMocGFnZUluZGV4KTsKK3ZvaWQgV2ViRnJhbWVJbXBsOjpwYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVscyhpbnQgcGFnZUluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYlNpemUmIHBhZ2VTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luVG9wLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2luUmlnaHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5Cb3R0b20sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5M
ZWZ0KQoreworICAgIEludFNpemUgc2l6ZShwYWdlU2l6ZS53aWR0aCwgcGFnZVNpemUuaGVpZ2h0
KTsKKyAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhw
YWdlSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXJnaW5Ub3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQpOworICAgIHBhZ2VT
aXplID0gc2l6ZTsKIH0KIAogYm9vbCBXZWJGcmFtZUltcGw6OmZpbmQoaW50IGlkZW50aWZpZXIs
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCBjMTRhZDliNzJjOTJjMTM1NzUyN2I3
ZTEzMjQ5ODI2OWM3NjNjNTE3Li4zMGU0Njk5ZDc4ODY4NGEyYWZhNTFiYzRjNzBjNjVmZDE2NDVj
OWNiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTE1MCw4ICsxNTAsMTIgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgZ2V0UHJpbnRQYWdlU2hyaW5rKGludCBwYWdlKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcHJpbnRFbmQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYWdlQm94
VmlzaWJsZShpbnQgcGFnZUluZGV4KTsKLSAgICB2aXJ0dWFsIFdlYlJlY3QgcGFnZUFyZWFSZWN0
SW5QaXhlbHMoaW50IHBhZ2VJbmRleCk7Ci0gICAgdmlydHVhbCBXZWJTaXplIHByZWZlcnJlZFBh
Z2VTaXplSW5QaXhlbHMoaW50IHBhZ2VJbmRleCk7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VTaXpl
QW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYWdlSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYlNpemUmIHBhZ2VTaXplLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIG1hcmdpblRvcCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5SaWdodCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXJnaW5Cb3R0b20s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWFyZ2lu
TGVmdCk7CiAgICAgdmlydHVhbCBib29sIGZpbmQoCiAgICAgICAgIGludCBpZGVudGlmaWVyLCBj
b25zdCBXZWJTdHJpbmcmIHNlYXJjaFRleHQsIGNvbnN0IFdlYkZpbmRPcHRpb25zJiwKICAgICAg
ICAgYm9vbCB3cmFwV2l0aGluRnJhbWUsIFdlYlJlY3QqIHNlbGVjdGlvblJlY3QpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBk
YzNmNDNjNjU0ZjQ0NzIxNDc3Nzc3YzQ5NTRiMDE2NTk1OTE1NTY4Li45YTg3NWYwMWFhMWJlNWFh
YmQ0NGJmNjg2N2RjYWI4OWZkNGEzMTdmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA2LTI1
ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIGRlZmF1bHQgdmFsdWUgaGFuZGxp
bmcgZm9yIHBhZ2UgZm9ybWF0IHByb3BlcnRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTE1MAorCisgICAgICAgICogTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5oOgorICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAg
ICgtW1dlYkZyYW1lIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzOnBhZ2VOdW1iZXI6d2lkdGg6
aGVpZ2h0Om1hcmdpblRvcDptYXJnaW5SaWdodDptYXJnaW5Cb3R0b206XSk6CisKIDIwMTAtMDYt
MjMgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNoaW5pY2hpcm8gSGFtYWppLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNv
cmVTdGF0aXN0aWNzLmggYi9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAppbmRl
eCBlMzU3YjcyYzFmMGRhMjY5OTFmNWUxYzgyMmI0YzNkNDg0NjE2MDA5Li4zM2UzZTBmODY1ODFi
MGVmYmE5NDJiYjkxYWE3YTczZTczMGM3ZWYxIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL01pc2Mv
V2ViQ29yZVN0YXRpc3RpY3MuaAorKysgYi9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3Rp
Y3MuaApAQCAtODksNiArODksNSBAQAogLSAoaW50KW51bWJlck9mUGFnZXM6KGZsb2F0KXBhZ2VX
aWR0aEluUGl4ZWxzOihmbG9hdClwYWdlSGVpZ2h0SW5QaXhlbHM7CiAtIChOU1N0cmluZyAqKXBh
Z2VQcm9wZXJ0eTooY29uc3QgY2hhciopcHJvcGVydHlOYW1lOihpbnQpcGFnZU51bWJlcjsKIC0g
KGJvb2wpaXNQYWdlQm94VmlzaWJsZTooaW50KXBhZ2VOdW1iZXI7Ci0tIChOU1N0cmluZyAqKXBh
Z2VBcmVhUmVjdEluUGl4ZWxzOihpbnQpcGFnZU51bWJlcjsKLS0gKE5TU3RyaW5nICopcHJlZmVy
cmVkUGFnZVNpemVJblBpeGVsczooaW50KXBhZ2VOdW1iZXI7CistIChOU1N0cmluZyAqKXBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzOihpbnQpcGFnZU51bWJlcjooaW50KXdpZHRoOihpbnQpaGVp
Z2h0OihpbnQpbWFyZ2luVG9wOihpbnQpbWFyZ2luUmlnaHQ6KGludCltYXJnaW5Cb3R0b206KGlu
dCltYXJnaW5MZWZ0OwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLm1tIGIvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmluZGV4
IDkxMTJkMjFhMmJhMjIyYjNmOTgxY2EyZTY1ZWQyOWRlYjQyNWNjZDEuLmJiZTA3ZDUyNzQ4NzBh
ZDAyYmY3ODM2MTY1MjU5ZGFkZTczYThlMjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9X
ZWJDb3JlU3RhdGlzdGljcy5tbQorKysgYi9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3Rp
Y3MubW0KQEAgLTI4NSwxMyArMjg1LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAg
cmV0dXJuIFByaW50Q29udGV4dDo6aXNQYWdlQm94VmlzaWJsZShfcHJpdmF0ZS0+Y29yZUZyYW1l
LCBwYWdlTnVtYmVyKTsKIH0KIAotLSAoTlNTdHJpbmcgKilwYWdlQXJlYVJlY3RJblBpeGVsczoo
aW50KXBhZ2VOdW1iZXIKKy0gKE5TU3RyaW5nICopcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHM6
KGludClwYWdlTnVtYmVyOihpbnQpd2lkdGg6KGludCloZWlnaHQ6KGludCltYXJnaW5Ub3A6KGlu
dCltYXJnaW5SaWdodDooaW50KW1hcmdpbkJvdHRvbTooaW50KW1hcmdpbkxlZnQKIHsKLSAgICBy
ZXR1cm4gUHJpbnRDb250ZXh0OjpwYWdlQXJlYVJlY3RJblBpeGVscyhfcHJpdmF0ZS0+Y29yZUZy
YW1lLCBwYWdlTnVtYmVyKTsKLX0KLQotLSAoTlNTdHJpbmcgKilwcmVmZXJyZWRQYWdlU2l6ZUlu
UGl4ZWxzOihpbnQpcGFnZU51bWJlcjsKLXsKLSAgICByZXR1cm4gUHJpbnRDb250ZXh0OjpwcmVm
ZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKF9wcml2YXRlLT5jb3JlRnJhbWUsIHBhZ2VOdW1iZXIpOwor
ICAgIHJldHVybiBQcmludENvbnRleHQ6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKF9wcml2
YXRlLT5jb3JlRnJhbWUsIHBhZ2VOdW1iZXIsIHdpZHRoLCBoZWlnaHQsIG1hcmdpblRvcCwgbWFy
Z2luUmlnaHQsIG1hcmdpbkJvdHRvbSwgbWFyZ2luTGVmdCk7CiB9CiBAZW5kCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggMzI1
MGU1ZjNmZDY3OTcwZjcwYzg2YTZmMzVmZGExNzM3MjBmOGMzNC4uYzc0MDE5NWNmZDdlMTkzMGNl
MjQ1YmJhYjFjY2YzNWY3YTdhYTlmNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA2LTI1
ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIGRlZmF1bHQgdmFsdWUgaGFuZGxp
bmcgZm9yIHBhZ2UgZm9ybWF0IHByb3BlcnRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTE1MAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAocGFyc2VQYWdlTnVtYmVyKToKKyAg
ICAgICAgKHBhcnNlUGFnZU51bWJlclNpemVNYXJpbmdzKToKKyAgICAgICAgKHBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVz
dENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlv
dXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMpOgorCiAyMDEwLTA2LTIzICBLZXZpbiBPbGxpdmll
ciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFt3eF0gQnVpbGQgZml4LCBh
ZGRpbmcgbmV3IExheW91dFRlc3RDb250cm9sbGVyIG1ldGhvZHMgYW5kIGVuYWJsaW5nIFNWR19G
T1JFSUdOX09CSkVDVC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAwMmM3N2E0Mjc1N2FmNTE4MGQ1NWUzMDgyZTY5NGNj
NDlhYjk3YjA5Li5hMzVlZDJiMDk3MDM4ZGMyNGZiN2IxY2QwZjcyYjcxNjNlMzkxMjMwIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC01NTUsMTAgKzU1NSw2NSBAQCBzdGF0aWMgYm9vbCBwYXJzZVBhZ2VQcm9wZXJ0eVBh
cmFtZXRlcnMoSlNDb250ZXh0UmVmIGNvbnRleHQsIGludCBhcmd1bWVudENvdW50LAogc3RhdGlj
IGJvb2wgcGFyc2VQYWdlTnVtYmVyKEpTQ29udGV4dFJlZiBjb250ZXh0LCBpbnQgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiogYXJndW1lbnRzLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24s
IGludCYgcGFnZU51bWJlcikKIHsKICAgICBwYWdlTnVtYmVyID0gMDsKLSAgICBpZiAoYXJndW1l
bnRDb3VudCAhPSAxKQorICAgIHN3aXRjaCAoYXJndW1lbnRDb3VudCkgeworICAgIGNhc2UgMToK
KyAgICAgICAgcGFnZU51bWJlciA9IHN0YXRpY19jYXN0PGludD4oSlNWYWx1ZVRvTnVtYmVyKGNv
bnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CisgICAgICAgIGlmICgqZXhjZXB0aW9u
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBGYWxsIHRocm91Z2guCisg
ICAgY2FzZSAwOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitzdGF0aWMgYm9vbCBwYXJzZVBhZ2VOdW1iZXJTaXpl
TWFyaW5ncyhKU0NvbnRleHRSZWYgY29udGV4dCwgaW50IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpT
VmFsdWVSZWYqIGFyZ3VtZW50cywgSlNWYWx1ZVJlZiogZXhjZXB0aW9uLCBpbnQmIHBhZ2VOdW1i
ZXIsIGludCYgd2lkdGgsIGludCYgaGVpZ2h0LCBpbnQmIG1hcmdpblRvcCwgaW50JiBtYXJnaW5S
aWdodCwgaW50JiBtYXJnaW5Cb3R0b20sIGludCYgbWFyZ2luTGVmdCkKK3sKKyAgICBwYWdlTnVt
YmVyID0gMDsKKyAgICB3aWR0aCA9IGhlaWdodCA9IDA7CisgICAgbWFyZ2luVG9wID0gbWFyZ2lu
UmlnaHQgPSBtYXJnaW5Cb3R0b20gPSBtYXJnaW5MZWZ0ID0gMDsKKworICAgIHN3aXRjaCAoYXJn
dW1lbnRDb3VudCkgeworICAgIGNhc2UgNzoKKyAgICAgICAgbWFyZ2luTGVmdCA9IHN0YXRpY19j
YXN0PGludD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1s2XSwgZXhjZXB0aW9u
KSk7CisgICAgICAgIGlmICgqZXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAvLyBGYWxsIHRocm91Z2guCisgICAgY2FzZSA2OgorICAgICAgICBtYXJnaW5Cb3R0
b20gPSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNb
NV0sIGV4Y2VwdGlvbikpOworICAgICAgICBpZiAoKmV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgorICAgIGNhc2UgNToKKyAgICAg
ICAgbWFyZ2luUmlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0
LCBhcmd1bWVudHNbNF0sIGV4Y2VwdGlvbikpOworICAgICAgICBpZiAoKmV4Y2VwdGlvbikKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgorICAgIGNh
c2UgNDoKKyAgICAgICAgbWFyZ2luVG9wID0gc3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1i
ZXIoY29udGV4dCwgYXJndW1lbnRzWzNdLCBleGNlcHRpb24pKTsKKyAgICAgICAgaWYgKCpleGNl
cHRpb24pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIEZhbGwgdGhyb3Vn
aC4KKyAgICBjYXNlIDM6CisgICAgICAgIGhlaWdodCA9IHN0YXRpY19jYXN0PGludD4oSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1syXSwgZXhjZXB0aW9uKSk7CisgICAgICAgIGlm
ICgqZXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBGYWxs
IHRocm91Z2guCisgICAgY2FzZSAyOgorICAgICAgICB3aWR0aCA9IHN0YXRpY19jYXN0PGludD4o
SlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9uKSk7CisgICAg
ICAgIGlmICgqZXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAv
LyBGYWxsIHRocm91Z2guCisgICAgY2FzZSAxOgorICAgICAgICBwYWdlTnVtYmVyID0gc3RhdGlj
X2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRp
b24pKTsKKyAgICAgICAgaWYgKCpleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhZ2VOdW1iZXIgPSBzdGF0aWNfY2Fz
dDxpbnQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikp
OwotICAgIHJldHVybiAhKmV4Y2VwdGlvbjsKKyAgICB9CiB9CiAKIHN0YXRpYyBKU1ZhbHVlUmVm
IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKQEAgLTYxMiwyNCArNjY3LDE2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGlzUGFnZUJveFZp
c2libGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuCiAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBjb250cm9sbGVyLT5pc1BhZ2VCb3hW
aXNpYmxlKHBhZ2VOdW1iZXIpKTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgcGFnZUFyZWFSZWN0
SW5QaXhlbHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaW50
IHBhZ2VOdW1iZXIgPSAwOwotICAgIGlmICghcGFyc2VQYWdlTnVtYmVyKGNvbnRleHQsIGFyZ3Vt
ZW50Q291bnQsIGFyZ3VtZW50cywgZXhjZXB0aW9uLCBwYWdlTnVtYmVyKSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgTGF5b3V0VGVzdENvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpT
T2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlU3Ry
aW5nKGNvbnRleHQsIGNvbnRyb2xsZXItPnBhZ2VBcmVhUmVjdEluUGl4ZWxzKHBhZ2VOdW1iZXIp
LmdldCgpKTsKLX0KLQotc3RhdGljIEpTVmFsdWVSZWYgcHJlZmVycmVkUGFnZVNpemVJblBpeGVs
c0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVlUmVm
IHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQogewogICAgIGludCBwYWdlTnVtYmVyID0gMDsKLSAgICBpZiAoIXBhcnNlUGFnZU51
bWJlcihjb250ZXh0LCBhcmd1bWVudENvdW50LCBhcmd1bWVudHMsIGV4Y2VwdGlvbiwgcGFnZU51
bWJlcikpCisgICAgaW50IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKKyAgICBpbnQgbWFyZ2luVG9w
ID0gMCwgbWFyZ2luUmlnaHQgPSAwLCBtYXJnaW5Cb3R0b20gPSAwLCBtYXJnaW5MZWZ0ID0gMDsK
KyAgICBpZiAoIXBhcnNlUGFnZU51bWJlclNpemVNYXJpbmdzKGNvbnRleHQsIGFyZ3VtZW50Q291
bnQsIGFyZ3VtZW50cywgZXhjZXB0aW9uLCBwYWdlTnVtYmVyLCB3aWR0aCwgaGVpZ2h0LCBtYXJn
aW5Ub3AsIG1hcmdpblJpZ2h0LCBtYXJnaW5Cb3R0b20sIG1hcmdpbkxlZnQpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKICAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwgY29udHJvbGxlci0+cHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhwYWdl
TnVtYmVyKS5nZXQoKSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGNv
bnRyb2xsZXItPnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKHBhZ2VOdW1iZXIsIHdpZHRoLCBo
ZWlnaHQsIG1hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwgbWFyZ2luTGVmdCku
Z2V0KCkpOwogfQogCiBzdGF0aWMgSlNWYWx1ZVJlZiBxdWV1ZUJhY2tOYXZpZ2F0aW9uQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAtMTY5OSwxMiArMTc0NiwxMSBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkK
ICAgICAgICAgeyAibnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zIiwgbnVtYmVyT2ZBY3RpdmVBbmlt
YXRpb25zQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAib3ZlcnJpZGVQcmVmZXJlbmNlIiwg
b3ZlcnJpZGVQcmVmZXJlbmNlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicGFnZU51bWJl
ckZvckVsZW1lbnRCeUlkIiwgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKLSAgICAgICAgeyAicGFnZUFyZWFSZWN0SW5QaXhlbHMiLCBwYWdlQXJlYVJlY3RJblBpeGVs
c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
IiwgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJwYWdlUHJvcGVydHkiLCBwYWdlUHJvcGVydHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJwYXRoVG9Mb2NhbFJlc291cmNlIiwgcGF0aFRvTG9jYWxSZXNvdXJjZUNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkIiwgcGF1
c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQiLCBwYXVzZVRyYW5zaXRp
b25BdFRpbWVPbkVsZW1lbnRXaXRoSWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJwcmVm
ZXJyZWRQYWdlU2l6ZUluUGl4ZWxzIiwgcHJlZmVycmVkUGFnZVNpemVJblBpeGVsc0NhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUi
LCBzYW1wbGVTVkdBbmltYXRpb25Gb3JFbGVtZW50QXRUaW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAicHJpbnRUb1BERiIsIGR1bXBBc1BERkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInF1ZXVlQmFja05hdmlnYXRpb24iLCBxdWV1ZUJhY2tOYXZpZ2F0aW9uQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCmluZGV4IDZhZjJjNTcxYTg2YzIxYjY2YzJiMzg2YzI4N2YzNjRjNjMwMzM5MTAuLmNi
YWVmY2YxMzJmNDFiYWZjMzYwZWEyMmY4YmFiNWFmNjI4NTE3OGYgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtNjQsOSArNjQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYga2V5
LCBKU1N0cmluZ1JlZiB2YWx1ZSk7CiAgICAgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChK
U1N0cmluZ1JlZiBpZCwgZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsIGZsb2F0IHBhZ2VIZWlnaHRJ
blBpeGVscyk7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBhZ2VQcm9wZXJ0eShjb25z
dCBjaGFyKiBwcm9wZXJ0eU5hbWUsIGludCBwYWdlTnVtYmVyKSBjb25zdDsKKyAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoaW50IHBhZ2VOdW1i
ZXIsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IG1hcmdpblRvcCwgaW50IG1hcmdpblJpZ2h0
LCBpbnQgbWFyZ2luQm90dG9tLCBpbnQgbWFyZ2luTGVmdCkgY29uc3Q7CiAgICAgYm9vbCBpc1Bh
Z2VCb3hWaXNpYmxlKGludCBwYWdlTnVtYmVyKSBjb25zdDsKLSAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gcGFnZUFyZWFSZWN0SW5QaXhlbHMoaW50IHBhZ2VOdW1iZXIpIGNvbnN0OwotICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcmVmZXJyZWRQYWdlU2l6ZUluUGl4ZWxzKGludCBw
YWdlTnVtYmVyKSBjb25zdDsKICAgICBKU1N0cmluZ1JlZiBwYXRoVG9Mb2NhbFJlc291cmNlKEpT
Q29udGV4dFJlZiwgSlNTdHJpbmdSZWYgdXJsKTsKICAgICB2b2lkIHF1ZXVlQmFja05hdmlnYXRp
b24oaW50IGhvd0ZhckJhY2t3YXJkKTsKICAgICB2b2lkIHF1ZXVlRm9yd2FyZE5hdmlnYXRpb24o
aW50IGhvd0ZhckZvcndhcmQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggNmY4ZTYzNzFiZjFi
ZjU5OTBkMDFhOTM4NGNlMGQ1ZGE0YWRkMjRhMy4uZDM0NmY0YWQ1YmI5ZDdhZDVlZWExNjc0NGYy
OTdjZGJjYWI1ODZjNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0xODMsMTMgKzE4Myw3IEBA
IGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmlzUGFnZUJveFZpc2libGUoaW50IHBhZ2VOdW1i
ZXIpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VBcmVhUmVjdEluUGl4ZWxzKGludCBwYWdlTnVt
YmVyKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+KCk7Ci19Ci0KLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6cHJlZmVycmVkUGFnZVNpemVJblBpeGVscyhpbnQgcGFnZU51bWJl
cikgY29uc3QKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoaW50IHBhZ2VOdW1iZXIsIGludCB3aWR0aCwgaW50
IGhlaWdodCwgaW50IG1hcmdpblRvcCwgaW50IG1hcmdpblJpZ2h0LCBpbnQgbWFyZ2luQm90dG9t
LCBpbnQgbWFyZ2luTGVmdCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiAgICAg
cmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPigpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4
IGQwNTk5ZTBmMWUwYmMwYThjZjg4Y2QzNDRjYmY2MzRiOTZlZjQzM2YuLjliMDQ0YzM4NTQyN2I2
NzVhYmU1MTlkYTljYTI2ZTVhYTEzMTA1MTEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTIyMywx
NSArMjIzLDkgQEAgYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6aXNQYWdlQm94VmlzaWJsZShp
bnQgcGFnZU51bWJlcikgY29uc3QKICAgICByZXR1cm4gW21haW5GcmFtZSBpc1BhZ2VCb3hWaXNp
YmxlOnBhZ2VOdW1iZXJdOwogfQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnBhZ2VBcmVhUmVjdEluUGl4ZWxzKGludCBwYWdlTnVtYmVyKSBjb25zdAor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpwYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVscyhpbnQgcGFnZU51bWJlciwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBp
bnQgbWFyZ2luVG9wLCBpbnQgbWFyZ2luUmlnaHQsIGludCBtYXJnaW5Cb3R0b20sIGludCBtYXJn
aW5MZWZ0KSBjb25zdAogewotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9wZXJ0eVZh
bHVlKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW21haW5G
cmFtZSBwYWdlQXJlYVJlY3RJblBpeGVsczpwYWdlTnVtYmVyXSkpOwotICAgIHJldHVybiBwcm9w
ZXJ0eVZhbHVlOwotfQotCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnByZWZlcnJlZFBhZ2VTaXplSW5QaXhlbHMoaW50IHBhZ2VOdW1iZXIpIGNvbnN0Ci17
Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHByb3BlcnR5VmFsdWUoQWRvcHQsIEpTU3Ry
aW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbbWFpbkZyYW1lIHByZWZlcnJlZFBh
Z2VTaXplSW5QaXhlbHM6cGFnZU51bWJlcl0pKTsKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gcHJvcGVydHlWYWx1ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3Ry
aW5nUmVmKVttYWluRnJhbWUgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHM6cGFnZU51bWJlcjp3
aWR0aDpoZWlnaHQ6bWFyZ2luVG9wOm1hcmdpblJpZ2h0Om1hcmdpbkJvdHRvbTptYXJnaW5MZWZ0
XSkpOwogICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApp
bmRleCBlMGQ1NzMxMzE3OWVkMDQ0YzA2ZDUzMTc4Y2FkZjcwNDVlMGViZWU3Li43Zjc1N2U2NDg4
YjhhMTBlNGNlMTJhNGNkMDVhOWVhMjZhNjcxNWQ3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAg
LTEyNTQsMTMgKzEyNTQsNyBAQCBib29sIExheW91dFRlc3RDb250cm9sbGVyOjppc1BhZ2VCb3hW
aXNpYmxlKGludCBwYWdlTnVtYmVyKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpwYWdlQXJlYVJlY3RJ
blBpeGVscyhpbnQgcGFnZU51bWJlcikgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50
Ci0gICAgcmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPigpOwotfQotCi1KU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnByZWZlcnJlZFBhZ2VTaXplSW5Q
aXhlbHMoaW50IHBhZ2VOdW1iZXIpIGNvbnN0CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYWdlTnVt
YmVyLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBtYXJnaW5Ub3AsIGludCBtYXJnaW5SaWdo
dCwgaW50IG1hcmdpbkJvdHRvbSwgaW50IG1hcmdpbkxlZnQpIGNvbnN0CiB7CiAgICAgLy8gRklY
TUU6IGltcGxlbWVudAogICAgIHJldHVybiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oKTsK
</data>
<flag name="review"
          id="46800"
          type_id="1"
          status="+"
          setter="hamaji"
    />
          </attachment>
      

    </bug>

</bugzilla>