<?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>80134</bug_id>
          
          <creation_ts>2012-03-02 02:14:14 -0800</creation_ts>
          <short_desc>[CSSRegions]Implement NamedFlow::contentNodes attribute</short_desc>
          <delta_ts>2012-04-13 17:36:41 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>57312</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>beidson</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>569456</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-02 02:14:14 -0800</bug_when>
    <thetext>http://www.w3.org/TR/css3-regions/#the-namedflow-interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572258</commentid>
    <comment_count>1</comment_count>
      <attachid>130467</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-06 16:30:21 -0800</bug_when>
    <thetext>Created attachment 130467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572942</commentid>
    <comment_count>2</comment_count>
      <attachid>130467</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-07 09:10:47 -0800</bug_when>
    <thetext>Comment on attachment 130467
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572948</commentid>
    <comment_count>3</comment_count>
      <attachid>130467</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 09:16:28 -0800</bug_when>
    <thetext>Comment on attachment 130467
Patch

Rejecting attachment 130467 from commit-queue.

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

Last 500 characters of output:
ing file Source/WebCore/dom/Node.cpp
patching file Source/WebCore/dom/Node.h
patching file Source/WebCore/dom/NodeRareData.h
patching file Source/WebCore/dom/RegionNodeList.cpp
patching file Source/WebCore/dom/WebKitNamedFlow.cpp
patching file Source/WebCore/dom/WebKitNamedFlow.h
patching file Source/WebCore/dom/WebKitNamedFlow.idl

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;David Hyatt&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11851155</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580236</commentid>
    <comment_count>4</comment_count>
      <attachid>130467</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-16 00:40:33 -0700</bug_when>
    <thetext>Comment on attachment 130467
Patch

Implementing it using a static node list instead of a dynamic node list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581440</commentid>
    <comment_count>5</comment_count>
      <attachid>132487</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-18 02:48:04 -0700</bug_when>
    <thetext>Created attachment 132487
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581658</commentid>
    <comment_count>6</comment_count>
      <attachid>132487</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-19 00:04:02 -0700</bug_when>
    <thetext>Comment on attachment 132487
Patch 2

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

&gt; LayoutTests/fast/regions/webkit-named-flow-content-nodes-expected.txt:7
&gt; +PASS
&gt; +PASS
&gt; +PASS

Please consider including some information about which test cases are passing. It makes debugging really hard if one of these passes turn into fail on some bots.

&gt; Source/WebCore/dom/Document.cpp:1040
&gt; +PassRefPtr&lt;WebKitNamedFlow&gt; Document::webkitGetFlowByName(const String&amp; flowName, bool checkFlowName)

Please use enum instead of bool.

&gt; Source/WebCore/dom/Document.cpp:1050
&gt; +        CSSParser p(true);

Please don&apos;t use one-letter variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581904</commentid>
    <comment_count>7</comment_count>
      <attachid>132602</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-19 10:20:09 -0700</bug_when>
    <thetext>Created attachment 132602
Patch 3

Addressing comments and simplify the test. The node list is still implemented as a static node list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582080</commentid>
    <comment_count>8</comment_count>
      <attachid>132602</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-19 12:47:42 -0700</bug_when>
    <thetext>Comment on attachment 132602
Patch 3

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582136</commentid>
    <comment_count>9</comment_count>
      <attachid>132602</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 13:24:37 -0700</bug_when>
    <thetext>Comment on attachment 132602
Patch 3

Clearing flags on attachment: 132602

Committed r111229: &lt;http://trac.webkit.org/changeset/111229&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582137</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 13:24:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583273</commentid>
    <comment_count>11</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-03-20 11:25:22 -0700</bug_when>
    <thetext>This caused bug 81679.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583292</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-20 11:37:37 -0700</bug_when>
    <thetext>It also caused &lt;rdar://problem/11078925&gt;, which is not in bugzilla yet (and I won&apos;t bother filing since we&apos;re already rolling it out.

&lt;rdar://problem/11078925&gt; is a crash closing a tab that has Reddit Enhancement Suite installed, in Safari.

The cruz was the computeStyle() in Element::detach, which seems like a very bad idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583294</commentid>
    <comment_count>13</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-03-20 11:38:40 -0700</bug_when>
    <thetext>Reverted in &lt;http://trac.webkit.org/r111419&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583297</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-03-20 11:39:46 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; This caused bug 81679.

Sorry, this should have said bug 81684.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583302</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-20 11:42:24 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; The cruz was the computeStyle() in Element::detach, which seems like a very bad idea!

s/cruz/crux/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583304</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-20 11:43:57 -0700</bug_when>
    <thetext>I&apos;m not sure why it started that layout test failing, but the computeStyle() causing the crash seems like it should be easy to factor out.

Using the style as a way of tracking if the node needs to register/unregister itself from a collection seems extremely fragile.  There almost certainly needs to be a more explicit way of doing that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587531</commentid>
    <comment_count>17</comment_count>
      <attachid>133747</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-26 01:29:49 -0700</bug_when>
    <thetext>Created attachment 133747
Patch 4

New version of the patch without relying on the style() to test whether an element is part of a named flow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595799</commentid>
    <comment_count>18</comment_count>
      <attachid>133747</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-04-04 12:25:31 -0700</bug_when>
    <thetext>Comment on attachment 133747
Patch 4

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

r=me

&gt; Source/WebCore/rendering/RenderFlowThread.h:167
&gt; +    NamedFlowContentNodes m_contentNodes;
&gt; +
&gt;      AtomicString m_flowThread;
&gt;      RenderRegionList m_regionList;

This isn&apos;t really something you should do for this patch, but going forward I think we might want to pull all the flow thread stuff in RenderView into a helper class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600321</commentid>
    <comment_count>19</comment_count>
      <attachid>136677</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-04-11 09:31:46 -0700</bug_when>
    <thetext>Created attachment 136677
Patch 5

Rework the patch after https://bugs.webkit.org/show_bug.cgi?id=83464, by moving data/methods from RenderView into FlowThreadController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602183</commentid>
    <comment_count>20</comment_count>
      <attachid>136677</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-04-13 10:35:47 -0700</bug_when>
    <thetext>Comment on attachment 136677
Patch 5

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602548</commentid>
    <comment_count>21</comment_count>
      <attachid>136677</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-13 17:36:30 -0700</bug_when>
    <thetext>Comment on attachment 136677
Patch 5

Clearing flags on attachment: 136677

Committed r114189: &lt;http://trac.webkit.org/changeset/114189&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602550</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-13 17:36:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130467</attachid>
            <date>2012-03-06 16:30:21 -0800</date>
            <delta_ts>2012-03-18 02:48:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>80134-2.patch</filename>
            <type>text/plain</type>
            <size>30564</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyM2VkZTE3Li5hNjI0ZTkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTItMDMt
MDYgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CiAKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbDog
QWRkZWQuCisKKzIwMTItMDMtMDYgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+
CisKICAgICAgICAgW0NTU1JlZ2lvbnNdW0NTU09NXVJlc3RyaWN0IHBhcnNpbmcgb2YgbmFtZWQg
ZmxvdyBuYW1lCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDM1OQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctY29udGVudC1ub2Rlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctY29udGVudC1ub2Rlcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZjYTIzNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitUZXN0IGZvciA4MDEzNDogW0NTU1JlZ2lv
bnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzCisKK09uIHN1Y2Nlc3MsIHlvdSBz
aG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVsb3cuCisKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKKworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctY29udGVu
dC1ub2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWNvbnRlbnQtbm9kZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40
YTk2ZTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbApAQCAtMCwwICsxLDEwNCBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVnaW9uLXN0eWxlLmNzcyI+CisgICAgICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDogMjUwcHg7
IGhlaWdodDogMTUwcHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHk+CisgICAgICAgIDwhLS0KKyAgICAgICAgMS4gVGhlIGNvbnRlbnQgbm9kZXMgY29sbGVjdGlv
biBmb3IgYSBuYW1lZCBmbG93ICdmbG93JyBjb250YWlucyBvbmx5IHRob3NlIGVsZW1lbnRzIHRo
YXQgaGF2ZQorICAgICAgICB0aGUgc3R5bGUgcHJvcGVydHkgLXdlYmtpdC1mbG93LWludG8gc2V0
IHRvICdmbG93Jy4KKyAgICAgICAgMi4gSWYgYW4gZWxlbWVudCBoYXMgYW4gYW5jZXN0b3Igd2l0
aCAtd2Via2l0LWZsb3ctaW50byA9ICdmbG93JyBidXQgZG9lcyBub3QgaGF2ZSBpdHMgJy13ZWJr
aXQtZmxvdy1pbnRvJworICAgICAgICBzZXQgdG8gJ2Zsb3cnIHdpbGwgbm90IGJlIGxpc3RlZCBh
bW9uZyB0aGUgY29udGVudCBub2RlcyBmb3IgbmFtZWQgZmxvdyAnZmxvdycuCisgICAgICAgIDMu
IEVsZW1lbnRzIHdpdGggJy13ZWJraXQtZmxvdy1pbnRvJyBzZXQgdG8gJ2Zsb3cnIGFuZCAnZGlz
cGxheTpub25lJyBzaG91bGQgYmUgbGlzdGVkIGFtb25nIHRoZSBjb250ZW50IG5vZGVzCisgICAg
ICAgIGZvciBuYW1lZCBmbG93IG9iamVjdCAnZmxvdycuCisgICAgICAgIC0tPgorICAgICAgICA8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODAxMzQiPjgwMTM0OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93Ojpjb250ZW50
Tm9kZXM8L2E+PC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNl
cmllcyBvZiBQQVNTIGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisKKyAgICAgICAgICAgIC8vIEZpcnN0IHRpbWUgYXNrIGZvciBhIG5hbWVkIGZs
b3cgb2JqZWN0LCB0aGUgY29udGVudE5vZGVzIHNob3VsZCBiZSBlbXB0eS4KKyAgICAgICAgICAg
IHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1l
KCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRl
bnROb2RlcyAhPSBudWxsLCAiVGhlIGNvbnRlbnQgbm9kZXMgbGlzdCBmb3IgJ2Zsb3cnIHNob3Vs
ZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRlbnROb2Rl
cy5sZW5ndGggPT0gMCwgIlRoZSBjb250ZW50IG5vZGVzIGxpc3QgZm9yICdmbG93JyBzaG91bGQg
YmUgZW1wdHksIGl0IGhhcyAiICsgbmFtZWRGbG93Q29udGVudE5vZGVzLmxlbmd0aCArICIgZWxl
bWVudHMiKTsKKyAgICAgICAgICAgIGFzc2VydCgobmFtZWRGbG93Q29udGVudE5vZGVzIGluc3Rh
bmNlb2YgTm9kZUxpc3QpLCAiVGhlIGNvbnRlbnQgbm9kZXMgbGlzdCBmb3IgJ2Zsb3cnIHNob3Vs
ZCBiZSBvZiB0eXBlIE5vZGVMaXN0Iik7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbiBlbGVtZW50
IHRoYXQgd291bGQgYmUgY29sbGVjdGVkIGJ5IHRoZSBuYW1lZCBmbG93IGJ1dCBkbyBub3QgYWRk
IGl0IHRvIHRoZSBET00sIHRoZSBjb250ZW50Tm9kZXMgc2hvdWxkIGJlIGVtcHR5LgorICAgICAg
ICAgICAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAg
ICAgICAgIGFydGljbGUuaWQgPSAiYXJ0aWNsZSI7CisgICAgICAgICAgICBhcnRpY2xlLnN0eWxl
LndlYmtpdEZsb3dJbnRvID0gImZsb3ciOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRl
bnROb2RlczIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5v
ZGVzOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRlbnROb2RlczIgPT09IG5hbWVk
Rmxvd0NvbnRlbnROb2RlcywgIlRoZSBjb250ZW50IG5vZGVzIGxpc3QgKDEsMikgZm9yICdmbG93
JyBzaG91bGQgcmVmZXIgdGhlIHNhbWUgTm9kZUxpc3Qgb2JqZWN0Iik7CisgICAgICAgICAgICBh
c3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzMi5sZW5ndGggPT0gMCwgIlRoZSBjb250ZW50IG5v
ZGVzIGxpc3QgKDIpIGZvciAnZmxvdycgc2hvdWxkIGJlIGVtcHR5LCBpdCBoYXMgIiArIG5hbWVk
Rmxvd0NvbnRlbnROb2RlczIubGVuZ3RoICsgIiBlbGVtZW50cyIpOworCisgICAgICAgICAgICAv
LyBBcHBlbmQgdGhlIGFib3ZlIGVsZW1lbnQgdG8gdGhlIERPTS4gSXQgd2lsbCBiZSBjb2xsZWN0
ZWQgYnkgdGhlIGZsb3csIHRoZXJlZm9yZSB0aGUgY29udGVudE5vZGVzIHNob3VsZCBoYXZlIDEg
ZWxlbWVudC4KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYXJ0aWNsZSk7
CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzMyA9IGRvY3VtZW50LndlYmtp
dEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBhc3NlcnQo
bmFtZWRGbG93Q29udGVudE5vZGVzMyA9PT0gbmFtZWRGbG93Q29udGVudE5vZGVzMiwgIlRoZSBj
b250ZW50IG5vZGVzIGxpc3RzICgyLDMpIGZvciAnZmxvdycgc2hvdWxkIHJlZmVyIHRoZSBzYW1l
IE5vZGVMaXN0IG9iamVjdCIpOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRlbnRO
b2RlczMubGVuZ3RoID09IDEsICJUaGUgY29udGVudCBub2RlcyBsaXN0ICgzKSBmb3IgJ2Zsb3cn
IHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaXQgaGFzICIgKyBuYW1lZEZsb3dDb250ZW50Tm9kZXMz
Lmxlbmd0aCk7CisgICAgICAgICAgICBpZiAobmFtZWRGbG93Q29udGVudE5vZGVzMy5sZW5ndGgg
PiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChuYW1lZEZsb3dDb250ZW50Tm9kZXMuaXRlbSgw
KSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLCAiVGhlIGZpcnN0IGNvbnRl
bnQgbm9kZSBmb3IgJ2Zsb3cnIHNob3VsZCBiZSAnYXJ0aWNsZScsIGl0IGlzICIgKyBuYW1lZEZs
b3dDb250ZW50Tm9kZXMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFwcGVuZCBhIGNo
aWxkIGVsZW1lbnQgdG8gdGhlIGFydGljbGUgYWJvdmUgYnV0IGRvIG5vdCBzZXQgaXRzIHN0eWxl
IHRvIGZsb3cgaW50byAnZmxvdycuIAorICAgICAgICAgICAgLy8gVGhlIGNvbnRlbnROb2RlcyBz
aG91bGQgc3RpbGwgaGF2ZSAxIGVsZW1lbnQuCisgICAgICAgICAgICB2YXIgcE5vZGUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgICAgICBwTm9kZS5pZCA9ICJwMSI7Cisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxk
KHBOb2RlKTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXM0ID0gZG9jdW1l
bnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAg
IGFzc2VydChuYW1lZEZsb3dDb250ZW50Tm9kZXM0ID09PSBuYW1lZEZsb3dDb250ZW50Tm9kZXMz
LCAiVGhlIGNvbnRlbnQgbm9kZXMgbGlzdHMgKDMsNCkgZm9yICdmbG93JyBzaG91bGQgcmVmZXIg
dGhlIHNhbWUgTm9kZUxpc3Qgb2JqZWN0Iik7CisgICAgICAgICAgICBhc3NlcnQobmFtZWRGbG93
Q29udGVudE5vZGVzNC5sZW5ndGggPT0gMSwgIlRoZSBjb250ZW50IG5vZGVzIGxpc3QgKDQpIGZv
ciAnZmxvdycgc2hvdWxkIGhhdmUgMSBlbGVtZW50cywgaXQgaGFzICIgKyBuYW1lZEZsb3dDb250
ZW50Tm9kZXM0Lmxlbmd0aCk7CisgICAgICAgICAgICBpZiAobmFtZWRGbG93Q29udGVudE5vZGVz
NC5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChuYW1lZEZsb3dDb250ZW50Tm9k
ZXM0Lml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKSwgIlRoZSBm
aXJzdCBjb250ZW50IG5vZGUgZm9yICdmbG93JyBzaG91bGQgYmUgJ2FydGljbGUnLCBpdCBpcyAi
ICsgbmFtZWRGbG93Q29udGVudE5vZGVzNC5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8g
QWRkIGFub3RoZXIgZWxlbWVudCBkaXJlY3RseSB0byB0aGUgZmxvdyBhbmQgc2V0IGl0cyAnZGlz
cGxheScgcHJvcGVydHkgdG8gJ25vbmUnLCBpdCBzaG91bGQgYmUgcGFydCBvZiB0aGUgZmxvdy4K
KyAgICAgICAgICAgIHZhciBhcnRpY2xlMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworICAgICAgICAgICAgYXJ0aWNsZTIuaWQgPSAiYXJ0aWNsZTIiOworICAgICAgICAgICAgYXJ0
aWNsZTIuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAiZmxvdyI7CisgICAgICAgICAgICAvL2FydGlj
bGUyLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lmlu
c2VydEJlZm9yZShhcnRpY2xlMiwgYXJ0aWNsZSk7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93
Q29udGVudE5vZGVzNSA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250
ZW50Tm9kZXM7CisgICAgICAgICAgICBhc3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzNSA9PT0g
bmFtZWRGbG93Q29udGVudE5vZGVzNCwgIlRoZSBjb250ZW50IG5vZGVzIGxpc3QgKDQsNSkgZm9y
ICdmbG93JyBzaG91bGQgcmVmZXIgdGhlIHNhbWUgTm9kZUxpc3Qgb2JqZWN0Iik7CisgICAgICAg
ICAgICBhc3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzNS5sZW5ndGggPT0gMiwgIlRoZSBjb250
ZW50IG5vZGVzIGxpc3QgKDUpIGZvciAnZmxvdycgc2hvdWxkIGhhdmUgMiBlbGVtZW50cywgaXQg
aGFzICIgKyBuYW1lZEZsb3dDb250ZW50Tm9kZXM1Lmxlbmd0aCk7CisgICAgICAgICAgICBpZiAo
bmFtZWRGbG93Q29udGVudE5vZGVzNS5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2Vy
dChuYW1lZEZsb3dDb250ZW50Tm9kZXM1Lml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFydGljbGUyIiksICJUaGUgZmlyc3QgY29udGVudCBub2RlIGZvciAnZmxvdycgc2hvdWxk
IGJlIGFydGljbGUyLCBpdCBpcyAiICsgbmFtZWRGbG93Q29udGVudE5vZGVzNS5pdGVtKDApLmlk
KTsKKyAgICAgICAgICAgIGlmIChuYW1lZEZsb3dDb250ZW50Tm9kZXM1Lmxlbmd0aCA+IDEpCisg
ICAgICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRlbnROb2RlczUuaXRlbSgxKSA9PSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLCAiVGhlIHNlY29uZCBjb250ZW50IG5v
ZGUgZm9yICdmbG93JyBzaG91bGQgYmUgYXJ0aWNsZSwgaXQgaXMgIiArIG5hbWVkRmxvd0NvbnRl
bnROb2RlczUuaXRlbSgxKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZGluZyBhIHJlZ2lvbiBl
bGVtZW50IHRvIGZsb3cgY29udGVudCBpbnRvIHNob3VsZCBub3QgaW5mbHVlbmNlIHRoZSBjb250
ZW50IG5vZGVzIGNvbGxlY3Rpb24uCisgICAgICAgICAgICB2YXIgcmVnaW9uTm9kZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcmVnaW9uTm9kZS5pZCA9ICJy
ZWdpb24iOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb25Ob2Rl
KTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXM2ID0gZG9jdW1lbnQud2Vi
a2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIGFzc2Vy
dChuYW1lZEZsb3dDb250ZW50Tm9kZXM2ID09PSBuYW1lZEZsb3dDb250ZW50Tm9kZXM1LCAiVGhl
IGNvbnRlbnQgbm9kZXMgbGlzdHMgKDUsNikgZm9yICdmbG93JyBzaG91bGQgcmVmZXIgdGhlIHNh
bWUgTm9kZUxpc3Qgb2JqZWN0Iik7CisgICAgICAgICAgICBhc3NlcnQobmFtZWRGbG93Q29udGVu
dE5vZGVzNi5sZW5ndGggPT0gMiwgIlRoZSBjb250ZW50IG5vZGVzIGxpc3QgKDYpIGZvciAnZmxv
dycgc2hvdWxkIHN0aWxsIGhhdmUgMiBlbGVtZW50cyBhZnRlciBiZWluZyBmbG93ZWQgaW50byBh
IHJlZ2lvbiwgaXQgaGFzICIgKyBuYW1lZEZsb3dDb250ZW50Tm9kZXM2Lmxlbmd0aCk7CisKKyAg
ICAgICAgICAgIC8vIENoYW5nZSBkaXNwbGF5Om5vbmUgZm9yIHRoZSAnYXJ0aWNsZTInIGVsZW1l
bnQsIHRoZSBsaXN0IG9mIGNvbnRlbnROb2RlcyBzaG91bGQgc3RheSB0aGUgc2FtZQorICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUuZGlzcGxheSA9
ICJibG9jayI7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzNyA9IGRvY3Vt
ZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAg
ICBhc3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzNyA9PT0gbmFtZWRGbG93Q29udGVudE5vZGVz
NiwgIlRoZSBjb250ZW50IG5vZGVzIGxpc3RzICg2LDcpIGZvciAnZmxvdycgc2hvdWxkIHJlZmVy
IHRoZSBzYW1lIE5vZGVMaXN0IG9iamVjdCIpOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxv
d0NvbnRlbnROb2RlczcubGVuZ3RoID09IDIsICJUaGUgY29udGVudCBub2RlcyBsaXN0ICg3KSBm
b3IgJ2Zsb3c7IHNob3VsZCBoYXZlIDIgZWxlbWVudHMsIGl0IGhhcyAiICsgbmFtZWRGbG93Q29u
dGVudE5vZGVzNy5sZW5ndGgpOworCisgICAgICAgICAgICAvLyBBZGQgYSBwIGFuZCBhIHNwYW4g
dW5kZXIgcC4gTWFrZSB0aGUgc3BhbiBkaXJlY3RseSBjb2xsZWN0ZWQgYnkgdGhlIGZsb3cuIFRo
ZSBjb250ZW50Tm9kZXMgY29sbGVjdGlvbiBzaG91bGQgaGF2ZSAzIGVsZW1lbnRzLgorICAgICAg
ICAgICAgcE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgICAgICBw
Tm9kZS5pZCA9ICJwMiI7CisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICBzcGFuTm9kZS5pZCA9ICJzcGFuMSI7Cisg
ICAgICAgICAgICBzcGFuTm9kZS5zdHlsZS53ZWJraXRGbG93SW50byA9ICJmbG93IjsKKyAgICAg
ICAgICAgIHBOb2RlLmFwcGVuZENoaWxkKHNwYW5Ob2RlKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHBOb2RlKTsKKworICAgICAg
ICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczggPSBkb2N1bWVudC53ZWJraXRHZXRGbG93
QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxv
d0NvbnRlbnROb2RlczggPT09IG5hbWVkRmxvd0NvbnRlbnROb2RlczcsICJUaGUgY29udGVudCBu
b2RlcyBsaXN0ICg3LDgpIGZvciAnZmxvdycgc2hvdWxkIHJlZmVyIHRoZSBzYW1lIE5vZGVMaXN0
IG9iamVjdCIpOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRlbnROb2RlczgubGVu
Z3RoID09IDMsICJUaGUgY29udGVudCBub2RlcyBsaXN0ICg4KSBmb3IgJ2Zsb3cnIHNob3VsZCBo
YXZlIDMgZWxlbWVudHMsIGl0IGhhcyAiICsgbmFtZWRGbG93Q29udGVudE5vZGVzOC5sZW5ndGgp
OworCisgICAgICAgICAgICByZWdpb25Ob2RlLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsK
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGI0YzQ3NmQuLjZjM2Q0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01OTAs
NiArNTkwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cC5jcHAKICAgICBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5j
cHAKICAgICBkb20vTXV0YXRpb25SZWNvcmQuY3BwCisgICAgZG9tL05hbWVkRmxvd05vZGVMaXN0
LmNwcAogICAgIGRvbS9OYW1lZE5vZGVNYXAuY3BwCiAgICAgZG9tL05hbWVOb2RlTGlzdC5jcHAK
ICAgICBkb20vTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMmUyNTFiLi5jNjQ3M2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTItMDMtMDYgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5l
YUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6
Y29udGVudE5vZGVzIGF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODAxMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctY29udGVu
dC1ub2Rlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vTmFt
ZWRGbG93Tm9kZUxpc3QuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vUmVnaW9u
Tm9kZUxpc3QuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOYW1l
ZEZsb3dOb2RlTGlzdDo6TmFtZWRGbG93Tm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmFt
ZWRGbG93Tm9kZUxpc3Q6On5OYW1lZEZsb3dOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpO
YW1lZEZsb3dOb2RlTGlzdDo6bm9kZU1hdGNoZXMpOgorICAgICAgICAqIGRvbS9OYW1lZEZsb3dO
b2RlTGlzdC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93
LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hbWVkRmxvd05vZGVMaXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hbWVkRmxvd05vZGVMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIGRv
bS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlbW92ZUNhY2hlZE5hbWVkRmxv
d05vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Z2V0TmFt
ZWRGbG93Q29udGVudE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRh
OjppbnZhbGlkYXRlQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRh
Ojppc0VtcHR5KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChOb2RlKToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChO
b2RlTGlzdHNOb2RlRGF0YSk6CisgICAgICAgICogZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlZ2lvbk5vZGVMaXN0OjpSZWdpb25Ob2RlTGlzdCk6CisgICAgICAg
ICogZG9tL1dlYktpdE5hbWVkRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXROYW1l
ZEZsb3c6OmNvbnRlbnROb2Rlcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20v
V2ViS2l0TmFtZWRGbG93Lmg6CisgICAgICAgIChXZWJLaXROYW1lZEZsb3cpOgorICAgICAgICAq
IGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsOgorCiAyMDEyLTAzLTA2ICBSYXltZXMgS2hvdXJ5ICA8
cmF5bWVzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgc3RhdGUgdmFyaWFibGUgYW5kIEFT
U0VSVHMgdG8gRG9jdW1lbnRXcml0ZXIgdG8gaGVscCB0cmFjayBkb3duCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCBkMzU0MjcyLi5mM2NhMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTE3OTQsNiArMTc5NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uUmVjb3JkLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dOb2RlTGlz
dC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dOb2RlTGlzdC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL05h
bWVkTm9kZU1hcC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTmFtZU5vZGVMaXN0LmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQppbmRleCAzMjg0MGY4Li5jNmIwYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTU0OSw2ICs1
NDksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXAuY3BwIFwKICAgICBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgXAogICAg
IGRvbS9NdXRhdGlvblJlY29yZC5jcHAgXAorICAgIGRvbS9OYW1lZEZsb3dOb2RlTGlzdC5jcHAg
XAogICAgIGRvbS9OYW1lZE5vZGVNYXAuY3BwIFwKICAgICBkb20vTmFtZU5vZGVMaXN0LmNwcCBc
CiAgICAgZG9tL05vZGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkZjc4Y2U5Li42NDQ4Yzk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MTEzLDYgKzUxMTMsOCBAQAogICAgICAgICAgICAgJ2Rv
bS9NdXRhdGlvblJlY29yZC5oJywKICAgICAgICAgICAgICdkb20vTmFtZU5vZGVMaXN0LmNwcCcs
CiAgICAgICAgICAgICAnZG9tL05hbWVOb2RlTGlzdC5oJywKKyAgICAgICAgICAgICdkb20vTmFt
ZWRGbG93Tm9kZUxpc3QuY3BwJywKKyAgICAgICAgICAgICdkb20vTmFtZWRGbG93Tm9kZUxpc3Qu
aCcsCiAgICAgICAgICAgICAnZG9tL05hbWVkTm9kZU1hcC5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9Ob2RlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL05vZGVGaWx0ZXIuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMWM1YmZmYi4uNDY3
NTU1NSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTUwNTY2LDYgKzUwNTY2LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxOYW1lZEZsb3dOb2RlTGlzdC5jcHAiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxOYW1lZEZsb3dOb2Rl
TGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
Llxkb21cTmFtZWROb2RlTWFwLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWRlOWNhOS4u
MmE4YzQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNTc1OSw2ICs1NzU5LDggQEAKIAkJRDcwQUQ2NTgxM0UxMzQyQjAwNUI1
MEI0IC8qIFJlbmRlclJlZ2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDcwQUQ2NTYxM0UxMzQyQjAwNUI1MEI0IC8qIFJlbmRlclJlZ2lvbi5oICov
OyB9OwogCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ3NjEzQTRFMTQ3
NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlENzYxM0FDNDE0
NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8q
IEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLzsgfTsKKwkJRDdGMEFBNTUxNTAwQUY2QzAwM0ZCOUMx
IC8qIE5hbWVkRmxvd05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQ3RjBBQTUzMTUwMEFGNkIwMDNGQjlDMSAvKiBOYW1lZEZsb3dOb2Rl
TGlzdC5jcHAgKi87IH07CisJCUQ3RjBBQTU2MTUwMEFGNkMwMDNGQjlDMSAvKiBOYW1lZEZsb3dO
b2RlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDdGMEFBNTQxNTAwQUY2QjAwM0ZCOUMxIC8qIE5hbWVkRmxvd05vZGVMaXN0LmggKi87IH07CiAJ
CUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBD
b29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkwQTUw
OEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIyM0My
Q0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5
RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTEyODE2LDYgKzEyODE4LDgg
QEAKIAkJRDc2MTNBNEUxNDc0RjEzRjAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXROYW1lZEZsb3cuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENzYxM0FDMjE0NzUzRTU2MDBEQjg2MDYgLyog
SlNXZWJLaXROYW1lZEZsb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJLaXROYW1lZEZsb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
NzYxM0FDMzE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDdGMEFBNTMxNTAwQUY2QjAwM0ZCOUMxIC8qIE5hbWVkRmxvd05v
ZGVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hbWVkRmxv
d05vZGVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDdGMEFBNTQxNTAw
QUY2QjAwM0ZCOUMxIC8qIE5hbWVkRmxvd05vZGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5hbWVkRmxvd05vZGVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAy
NDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMDkyNSw2ICsyMDkyOSw4IEBACiAJCQkJQzZGMDhGQjkxNDMwRkU4RjAwNjg1ODQ5
IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLywKIAkJCQlDNkYwOEZCQTE0MzBGRThGMDA2ODU4NDkg
LyogTXV0YXRpb25SZWNvcmQuaCAqLywKIAkJCQlDNkYwOEZCQjE0MzBGRThGMDA2ODU4NDkgLyog
TXV0YXRpb25SZWNvcmQuaWRsICovLAorCQkJCUQ3RjBBQTUzMTUwMEFGNkIwMDNGQjlDMSAvKiBO
YW1lZEZsb3dOb2RlTGlzdC5jcHAgKi8sCisJCQkJRDdGMEFBNTQxNTAwQUY2QjAwM0ZCOUMxIC8q
IE5hbWVkRmxvd05vZGVMaXN0LmggKi8sCiAJCQkJQkNGMzRBMzYxMUEyMzFDRDAwQzcxODA0IC8q
IE5hbWVkTm9kZU1hcC5jcHAgKi8sCiAJCQkJQTgxODcyMTgwOTc3RDNDMDAwNTgyNkQ5IC8qIE5h
bWVkTm9kZU1hcC5oICovLAogCQkJCTg1QUNBOUY5MEE5QjYzMTAwMDY3MUU5MCAvKiBOYW1lZE5v
ZGVNYXAuaWRsICovLApAQCAtMjQ1MzksNiArMjQ1NDUsNyBAQAogCQkJCUUxQkU1MTJFMENGNkM1
MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0Uy
RTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUQ3RjBBQTU2MTUwMEFGNkMwMDNGQjlDMSAvKiBOYW1lZEZsb3dOb2RlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0yNzUxMiw2ICsyNzUxOSw3IEBACiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVB
OTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEy
RjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUz
NzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RDdGMEFBNTUxNTAwQUY2QzAwM0ZCOUMxIC8qIE5hbWVkRmxvd05vZGVMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkRmxvd05vZGVMaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dOb2RlTGlzdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEzODU0YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dOb2RlTGlzdC5jcHAKQEAgLTAsMCArMSw2NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
CisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwK
KyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTmFtZWRGbG93Tm9kZUxpc3QuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiUmVuZGVyRmxvd1RocmVhZC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVk
ZSAiV2ViS2l0TmFtZWRGbG93LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmFtZWRGbG93
Tm9kZUxpc3Q6Ok5hbWVkRmxvd05vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gZG9jdW1lbnROb2Rl
LCBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dOYW1lKQorOiBEeW5hbWljU3VidHJlZU5vZGVMaXN0
KGRvY3VtZW50Tm9kZSkKKywgbV9mbG93TmFtZShmbG93TmFtZSkKK3sKKyAgICBBU1NFUlQocm9v
dE5vZGUoKS0+aXNEb2N1bWVudE5vZGUoKSk7CisgICAgQVNTRVJUKHJvb3ROb2RlKCktPmRvY3Vt
ZW50KCktPmNzc1JlZ2lvbnNFbmFibGVkKCkpOworfQorCitOYW1lZEZsb3dOb2RlTGlzdDo6fk5h
bWVkRmxvd05vZGVMaXN0KCkKK3sKKyAgICByb290Tm9kZSgpLT5yZW1vdmVDYWNoZWROYW1lZEZs
b3dOb2RlTGlzdCh0aGlzLCBtX2Zsb3dOYW1lKTsKK30KKworLy8gRWxlbWVudHMgd2l0aCAtd2Vi
a2l0LWZsb3ctaW50bzogZmxvdyBhbmQgZGlzcGxheTpub25lIGFyZSBwYXJ0IG9mIHRoZSBub2Rl
IGxpc3QuCitib29sIE5hbWVkRmxvd05vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0ZXN0
Tm9kZSkgY29uc3QKK3sKKyAgICBpZiAodGVzdE5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAgIHJl
dHVybiB0ZXN0Tm9kZS0+cmVuZGVyZXIoKS0+aW5SZW5kZXJGbG93VGhyZWFkKCkgJiYgdGVzdE5v
ZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPmZsb3dUaHJlYWQoKSA9PSBtX2Zsb3dOYW1lOworCisg
ICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gdGVzdE5vZGUtPmNvbXB1dGVkU3R5bGUoKTsKKyAgICBy
ZXR1cm4gc3R5bGUgJiYgc3R5bGUtPmZsb3dUaHJlYWQoKSA9PSBtX2Zsb3dOYW1lOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
YW1lZEZsb3dOb2RlTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkRmxvd05vZGVMaXN0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2MzMmM0NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dOb2RlTGlzdC5oCkBAIC0wLDAg
KzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBv
cmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisg
KiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOYW1lZEZsb3dO
b2RlTGlzdF9oCisjZGVmaW5lIE5hbWVkRmxvd05vZGVMaXN0X2gKKworI2luY2x1ZGUgIkR5bmFt
aWNOb2RlTGlzdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisvLyBLZWVwIGEgbGl2ZSBjb2xsZWN0aW9uIG9mIERPTSBub2RlcyBmcm9tIGEgbmFtZWQgZmxv
dy4KK2NsYXNzIE5hbWVkRmxvd05vZGVMaXN0IDogcHVibGljIER5bmFtaWNTdWJ0cmVlTm9kZUxp
c3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5hbWVkRmxvd05vZGVMaXN0PiBj
cmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBkb2N1bWVudE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
Zmxvd05hbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5hbWVkRmxvd05v
ZGVMaXN0KGRvY3VtZW50Tm9kZSwgZmxvd05hbWUpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5O
YW1lZEZsb3dOb2RlTGlzdCgpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBib29sIG5vZGVN
YXRjaGVzKEVsZW1lbnQqKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBOYW1lZEZsb3dOb2RlTGlz
dChQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dOYW1lKTsKKworICAg
IEF0b21pY1N0cmluZyBtX2Zsb3dOYW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDY0ZjgxMDAuLmJkZTc0N2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTcwLDYgKzcwLDcgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiTXV0YXRpb25FdmVudC5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgorI2luY2x1
ZGUgIk5hbWVkRmxvd05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5j
bHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIK
QEAgLTEwNDEsNiArMTA0MiwxNiBAQCB2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZFJlZ2lvbk5vZGVM
aXN0KFJlZ2lvbk5vZGVMaXN0KiBsaXN0LCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgZGF0YS0+
bV9yZWdpb25Ob2RlTGlzdENhY2hlLnJlbW92ZShmbG93TmFtZSk7CiB9CiAKK3ZvaWQgTm9kZTo6
cmVtb3ZlQ2FjaGVkTmFtZWRGbG93Tm9kZUxpc3QoTmFtZWRGbG93Tm9kZUxpc3QqIGxpc3QsIGNv
bnN0IEF0b21pY1N0cmluZyYgZmxvd05hbWUpCit7CisgICAgQVNTRVJUKHJhcmVEYXRhKCkpOwor
ICAgIEFTU0VSVChyYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSk7CisgICAgCisgICAgTm9kZUxpc3Rz
Tm9kZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpLT5ub2RlTGlzdHMoKTsKKyAgICBBU1NFUlRfVU5V
U0VEKGxpc3QsIGxpc3QgPT0gZGF0YS0+bV9uYW1lZEZsb3dOb2RlTGlzdENhY2hlLmdldChmbG93
TmFtZSkpOworICAgIGRhdGEtPm1fbmFtZWRGbG93Tm9kZUxpc3RDYWNoZS5yZW1vdmUoZmxvd05h
bWUpOworfQorCiB2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZE5hbWVOb2RlTGlzdChOYW1lTm9kZUxp
c3QqIGxpc3QsIGNvbnN0IFN0cmluZyYgbm9kZU5hbWUpCiB7CiAgICAgQVNTRVJUKHJhcmVEYXRh
KCkpOwpAQCAtMTY3Myw2ICsxNjg0LDggQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Z2V0
RWxlbWVudHNCeUNsYXNzTmFtZShjb25zdCBTdHJpbmcmIGNsYXNzTmFtZXMpCiAKIFBhc3NSZWZQ
dHI8Tm9kZUxpc3Q+IE5vZGU6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGNvbnN0IEF0b21pY1N0
cmluZyYgZmxvd05hbWUpCiB7CisgICAgQVNTRVJUKGRvY3VtZW50KCktPmNzc1JlZ2lvbnNFbmFi
bGVkKCkpOworCiAgICAgcGFpcjxOb2RlTGlzdHNOb2RlRGF0YTo6UmVnaW9uTm9kZUxpc3RDYWNo
ZTo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdAogICAgID0gZW5zdXJlUmFyZURhdGEoKS0+ZW5zdXJl
Tm9kZUxpc3RzKHRoaXMpLT5tX3JlZ2lvbk5vZGVMaXN0Q2FjaGUuYWRkKGZsb3dOYW1lLCAwKTsK
ICAgICBpZiAoIXJlc3VsdC5zZWNvbmQpCkBAIC0xNjgzLDYgKzE2OTYsMjAgQEAgUGFzc1JlZlB0
cjxOb2RlTGlzdD4gTm9kZTo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUoY29uc3QgQXRvbWljU3Ry
aW5nJiBmbG93TmFtZSkKICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQ
dHI8Tm9kZUxpc3Q+IE5vZGU6OmdldE5hbWVkRmxvd0NvbnRlbnROb2Rlcyhjb25zdCBBdG9taWNT
dHJpbmcmIGZsb3dOYW1lKQoreworICAgIEFTU0VSVChkb2N1bWVudCgpLT5jc3NSZWdpb25zRW5h
YmxlZCgpKTsKKworICAgIHBhaXI8Tm9kZUxpc3RzTm9kZURhdGE6Ok5hbWVkRmxvd05vZGVMaXN0
Q2FjaGU6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQKKyAgICA9IGVuc3VyZVJhcmVEYXRhKCktPmVu
c3VyZU5vZGVMaXN0cyh0aGlzKS0+bV9uYW1lZEZsb3dOb2RlTGlzdENhY2hlLmFkZChmbG93TmFt
ZSwgMCk7CisgICAgaWYgKCFyZXN1bHQuc2Vjb25kKQorICAgICAgICByZXR1cm4gUGFzc1JlZlB0
cjxOb2RlTGlzdD4ocmVzdWx0LmZpcnN0LT5zZWNvbmQpOworICAgIAorICAgIFJlZlB0cjxOYW1l
ZEZsb3dOb2RlTGlzdD4gbGlzdCA9IE5hbWVkRmxvd05vZGVMaXN0OjpjcmVhdGUodGhpcywgZmxv
d05hbWUpOworICAgIHJlc3VsdC5maXJzdC0+c2Vjb25kID0gbGlzdC5nZXQoKTsKKyAgICByZXR1
cm4gbGlzdC5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8RWxlbWVudD4gTm9kZTo6cXVlcnlT
ZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgaWYgKHNlbGVjdG9ycy5pc0VtcHR5KCkpIHsKQEAgLTIzNjEsNiArMjM4OCw5IEBAIHZvaWQg
Tm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXMoKQogICAgIFJlZ2lvbk5vZGVMaXN0
Q2FjaGU6OmNvbnN0X2l0ZXJhdG9yIHJlZ2lvbkxpc3RDYWNoZUVuZCA9IG1fcmVnaW9uTm9kZUxp
c3RDYWNoZS5lbmQoKTsKICAgICBmb3IgKFJlZ2lvbk5vZGVMaXN0Q2FjaGU6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9yZWdpb25Ob2RlTGlzdENhY2hlLmJlZ2luKCk7IGl0ICE9IHJlZ2lvbkxpc3RD
YWNoZUVuZDsgKytpdCkKICAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZUNhY2hlKCk7Cisg
ICAgTmFtZWRGbG93Tm9kZUxpc3RDYWNoZTo6Y29uc3RfaXRlcmF0b3IgbmFtZWRGbG93TGlzdENh
Y2hlRW5kID0gbV9uYW1lZEZsb3dOb2RlTGlzdENhY2hlLmVuZCgpOworICAgIGZvciAoTmFtZWRG
bG93Tm9kZUxpc3RDYWNoZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX25hbWVkRmxvd05vZGVMaXN0
Q2FjaGUuYmVnaW4oKTsgaXQgIT0gbmFtZWRGbG93TGlzdENhY2hlRW5kOyArK2l0KQorICAgICAg
ICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsKICAgICBpbnZhbGlkYXRlQ2FjaGVzVGhh
dERlcGVuZE9uQXR0cmlidXRlcygpOwogfQogCkBAIC0yNDA5LDYgKzI0MzksOCBAQCBib29sIE5v
ZGVMaXN0c05vZGVEYXRhOjppc0VtcHR5KCkgY29uc3QKICNlbmRpZgogICAgIGlmICghbV9yZWdp
b25Ob2RlTGlzdENhY2hlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghbV9uYW1lZEZsb3dOb2RlTGlzdENhY2hlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKG1fbGFiZWxzTm9kZUxpc3RDYWNoZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKaW5kZXggNTYxZTE0My4uZmU5ZGU4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC02
Myw2ICs2Myw3IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xh
c3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5TUmVzb2x2ZXI7CitjbGFzcyBOYW1lZEZsb3dOb2Rl
TGlzdDsKIGNsYXNzIE5hbWVkTm9kZU1hcDsKIGNsYXNzIE5hbWVOb2RlTGlzdDsKIGNsYXNzIE5v
ZGVMaXN0OwpAQCAtNTMyLDcgKzUzMyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJE
eW5hbWljU3VidHJlZU5vZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqKTsKICAgICB2b2lk
IGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJik7CiAgICAgdm9pZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckNoaWxk
cmVuQ2hhbmdlZCgpOwotICAgIHZvaWQgaW52YWxpZGF0ZVJlZ2lvbkxpc3RDYWNoZSgpOwogICAg
IHZvaWQgbm90aWZ5TG9jYWxOb2RlTGlzdHNMYWJlbENoYW5nZWQoKTsKICAgICB2b2lkIHJlbW92
ZUNhY2hlZENsYXNzTm9kZUxpc3QoQ2xhc3NOb2RlTGlzdCosIGNvbnN0IFN0cmluZyYpOwogCkBA
IC01NDEsNiArNTQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkVGFnTm9kZUxp
c3QoVGFnTm9kZUxpc3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdm9pZCByZW1vdmVD
YWNoZWRMYWJlbHNOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0Kik7CiAgICAgdm9pZCBy
ZW1vdmVDYWNoZWRSZWdpb25Ob2RlTGlzdChSZWdpb25Ob2RlTGlzdCosIGNvbnN0IEF0b21pY1N0
cmluZyYpOworICAgIHZvaWQgcmVtb3ZlQ2FjaGVkTmFtZWRGbG93Tm9kZUxpc3QoTmFtZWRGbG93
Tm9kZUxpc3QqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgIHZvaWQgcmVtb3ZlQ2FjaGVk
Q2hpbGROb2RlTGlzdCgpOwogCkBAIC01NDksNiArNTUwLDcgQEAgcHVibGljOgogICAgIFBhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IGdldEVsZW1lbnRzQnlOYW1lKGNvbnN0IFN0cmluZyYgZWxlbWVudE5h
bWUpOwogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoY29u
c3QgU3RyaW5nJiBjbGFzc05hbWVzKTsKICAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXRSZWdp
b25zQnlDb250ZW50Tm9kZShjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dOYW1lKTsKKyAgICBQYXNz
UmVmUHRyPE5vZGVMaXN0PiBnZXROYW1lZEZsb3dDb250ZW50Tm9kZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiBmbG93TmFtZSk7CiAKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHF1ZXJ5U2VsZWN0b3Io
Y29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRy
PE5vZGVMaXN0PiBxdWVyeVNlbGVjdG9yQWxsKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNl
cHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggZDA0Nzc5MS4uMmZj
ZDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0
LmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgorI2luY2x1ZGUg
Ik5hbWVkRmxvd05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVk
ZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlJlZ2lvbk5vZGVMaXN0LmgiCkBAIC03NSw2
ICs3Niw5IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFJl
Z2lvbk5vZGVMaXN0Kj4gUmVnaW9uTm9kZUxpc3RDYWNoZTsKICAgICBSZWdpb25Ob2RlTGlzdENh
Y2hlIG1fcmVnaW9uTm9kZUxpc3RDYWNoZTsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNT
dHJpbmcsIE5hbWVkRmxvd05vZGVMaXN0Kj4gTmFtZWRGbG93Tm9kZUxpc3RDYWNoZTsKKyAgICBO
YW1lZEZsb3dOb2RlTGlzdENhY2hlIG1fbmFtZWRGbG93Tm9kZUxpc3RDYWNoZTsKICAKICAgICBz
dGF0aWMgUGFzc093blB0cjxOb2RlTGlzdHNOb2RlRGF0YT4gY3JlYXRlKCkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmVnaW9uTm9kZUxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcAppbmRleCAyMTE2ZDNiLi42ZGE3OThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmVnaW9uTm9kZUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SZWdpb25Ob2RlTGlzdC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAgUmVnaW9u
Tm9kZUxpc3Q6OlJlZ2lvbk5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBmbG93TmEKICwgbV9jb250ZW50Tm9kZShub2RlKQogLCBtX2Zsb3dOYW1lKGZs
b3dOYW1lKQogeworICAgIEFTU0VSVChtX2NvbnRlbnROb2RlLT5kb2N1bWVudCgpLT5jc3NSZWdp
b25zRW5hYmxlZCgpKTsKIH0KIAogUmVnaW9uTm9kZUxpc3Q6On5SZWdpb25Ob2RlTGlzdCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCmluZGV4IGMzNjI5OTQuLjU4OWRlYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCkBAIC01MSw2ICs1MSwxMiBA
QCBib29sIFdlYktpdE5hbWVkRmxvdzo6b3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiBtX3Bh
cmVudEZsb3dUaHJlYWQtPm92ZXJmbG93KCk7CiB9CiAKK1Bhc3NSZWZQdHI8Tm9kZUxpc3Q+IFdl
YktpdE5hbWVkRmxvdzo6Y29udGVudE5vZGVzKCkgY29uc3QKK3sKKyAgICBtX3BhcmVudEZsb3dU
aHJlYWQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OworICAgIHJldHVybiBtX3BhcmVudEZsb3dUaHJlYWQtPmRvY3VtZW50KCktPmdldE5hbWVkRmxv
d0NvbnRlbnROb2RlcyhtX3BhcmVudEZsb3dUaHJlYWQtPmZsb3dUaHJlYWQoKSk7Cit9CisKIFBh
c3NSZWZQdHI8Tm9kZUxpc3Q+IFdlYktpdE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5v
ZGUoTm9kZSogY29udGVudE5vZGUpCiB7CiAgICAgaWYgKCFjb250ZW50Tm9kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XZWJLaXROYW1lZEZsb3cuaAppbmRleCBiNmY1OGMxLi4wMzkxZmIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB+
V2ViS2l0TmFtZWRGbG93KCk7CiAKICAgICBib29sIG92ZXJmbG93KCkgY29uc3Q7CisgICAgUGFz
c1JlZlB0cjxOb2RlTGlzdD4gY29udGVudE5vZGVzKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxO
b2RlTGlzdD4gZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoTm9kZSopOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbAppbmRleCAxMGE0ZDllLi5jOGQzZjJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbApAQCAtMzIsNiArMzIsNyBAQCBt
b2R1bGUgY29yZSB7CiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiAgICAgXSBXZWJLaXRO
YW1lZEZsb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvdmVyZmxvdzsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGNvbnRlbnROb2RlczsKICAgICAg
ICAgTm9kZUxpc3QgZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoaW4gTm9kZSBjb250ZW50Tm9kZSk7
CiAgICAgfTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132487</attachid>
            <date>2012-03-18 02:48:04 -0700</date>
            <delta_ts>2012-03-19 10:20:09 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>80134-21.patch</filename>
            <type>text/plain</type>
            <size>20272</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMWMyNzEwLi4zMWQ5NDcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDMt
MTggIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbmFtZWQgZmxvdyBj
b250ZW50IG5vZGVzIGNvbGxlY3Rpb24gY29udGFpbnMgdGhvc2Ugbm9kZXMgd2l0aCB3ZWJraXRG
bG93SW50byBwcm9wZXJ0eSBzZXQgdG8gJ2Zsb3cnLgorICAgICAgICBJbiB0aGUgbGlzdCwgdGhl
IG5vZGVzIGFyZSBwbGFjZWQgaW4gZG9jdW1lbnQgb3JkZXIuIE5vZGVzIHdpdGggZGlzcGxheTpu
b25lIGFyZSBhbHNvIHBhcnQgb2YgdGhlIGxpc3QuCisgICAgICAgIFRoZSBsaXN0IG9mIG5vZGVz
IGlzIHJldHVybmVkIGFzIGEgc3RhdGljIG5vZGUgbGlzdC4KKworICAgICAgICAqIGZhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMu
aHRtbDogQWRkZWQuCisKIDIwMTItMDMtMTcgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CiAKICAgICAgICAgRW5hYmxlIGFuaW1WYWwgc3VwcG9ydCBmb3IgU1ZHTnVt
YmVyT3B0aW9uYWxOdW1iZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGExOGFkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRl
bnQtbm9kZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK1Rlc3QgZm9yIDgwMTM0OiBb
Q1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93Ojpjb250ZW50Tm9kZXMKKworT24gc3VjY2Vz
cywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy4KKworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0
LW5hbWVkLWZsb3ctY29udGVudC1ub2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zOTIxYjNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbApAQCAtMCww
ICsxLDEzMCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVnaW9uLXN0eWxlLmNzcyI+
CisgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBm
bG93OyB3aWR0aDogMjUwcHg7IGhlaWdodDogMTUwcHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAg
ICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDwhLS0KKyAgICAgICAgMS4gVGhlIGNvbnRl
bnQgbm9kZXMgY29sbGVjdGlvbiBmb3IgYSBuYW1lZCBmbG93ICdmbG93JyBjb250YWlucyBvbmx5
IHRob3NlIGVsZW1lbnRzIHRoYXQgaGF2ZQorICAgICAgICB0aGUgc3R5bGUgcHJvcGVydHkgLXdl
YmtpdC1mbG93LWludG8gc2V0IHRvICdmbG93Jy4KKyAgICAgICAgMi4gSWYgYW4gZWxlbWVudCBo
YXMgYW4gYW5jZXN0b3Igd2l0aCAtd2Via2l0LWZsb3ctaW50byA9ICdmbG93JyBidXQgZG9lcyBu
b3QgaGF2ZSBpdHMgJy13ZWJraXQtZmxvdy1pbnRvJworICAgICAgICBzZXQgdG8gJ2Zsb3cnIHdp
bGwgbm90IGJlIGxpc3RlZCBhbW9uZyB0aGUgY29udGVudCBub2RlcyBmb3IgbmFtZWQgZmxvdyAn
ZmxvdycuCisgICAgICAgIDMuIEVsZW1lbnRzIHdpdGggJy13ZWJraXQtZmxvdy1pbnRvJyBzZXQg
dG8gJ2Zsb3cnIGFuZCAnZGlzcGxheTpub25lJyBzaG91bGQgYmUgbGlzdGVkIGFtb25nIHRoZSBj
b250ZW50IG5vZGVzCisgICAgICAgIGZvciBuYW1lZCBmbG93IG9iamVjdCAnZmxvdycuCisgICAg
ICAgIDQuIFRoZSBjb2xsZWN0aW9uIG9mIG5vZGVzIGlzIHJldHVybmVkIGluIGRvY3VtZW50IG9y
ZGVyLgorICAgICAgICAtLT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMTM0Ij44MDEzNDogW0NTU1JlZ2lvbnNd
SW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzPC9hPjwvcD4KKyAgICAgICAgPHA+T24g
c3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy48L3A+CisgICAg
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgICAgICAvLyBG
aXJzdCB0aW1lIGFzayBmb3IgYSBuYW1lZCBmbG93IG9iamVjdCwgdGhlIGNvbnRlbnROb2RlcyBz
aG91bGQgYmUgZW1wdHkuCisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzID0g
ZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAg
ICAgICAgIGFzc2VydChuYW1lZEZsb3dDb250ZW50Tm9kZXMgIT0gbnVsbCwgIlRoZSBjb250ZW50
IG5vZGVzIGxpc3QgZm9yICdmbG93JyBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAg
IGFzc2VydChuYW1lZEZsb3dDb250ZW50Tm9kZXMubGVuZ3RoID09IDAsICJUaGUgY29udGVudCBu
b2RlcyBsaXN0IGZvciAnZmxvdycgc2hvdWxkIGJlIGVtcHR5LCBpdCBoYXMgIiArIG5hbWVkRmxv
d0NvbnRlbnROb2Rlcy5sZW5ndGggKyAiIGVsZW1lbnRzIik7CisgICAgICAgICAgICBhc3NlcnQo
KG5hbWVkRmxvd0NvbnRlbnROb2RlcyBpbnN0YW5jZW9mIE5vZGVMaXN0KSwgIlRoZSBjb250ZW50
IG5vZGVzIGxpc3QgZm9yICdmbG93JyBzaG91bGQgYmUgb2YgdHlwZSBOb2RlTGlzdCIpOworCisg
ICAgICAgICAgICAvLyBBZGQgYW4gZWxlbWVudCB0aGF0IHdvdWxkIGJlIGNvbGxlY3RlZCBieSB0
aGUgbmFtZWQgZmxvdyBidXQgZG8gbm90IGFkZCBpdCB0byB0aGUgRE9NLCB0aGUgY29udGVudE5v
ZGVzIHNob3VsZCBiZSBlbXB0eS4KKyAgICAgICAgICAgIHZhciBhcnRpY2xlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICBhcnRpY2xlLmlkID0gImFydGljbGUi
OworICAgICAgICAgICAgYXJ0aWNsZS5zdHlsZS53ZWJraXRGbG93SW50byA9ICJmbG93IjsKKyAg
ICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMyID0gZG9jdW1lbnQud2Via2l0R2V0
Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIGFzc2VydChuYW1l
ZEZsb3dDb250ZW50Tm9kZXMyLmxlbmd0aCA9PSAwLCAiVGhlIGNvbnRlbnQgbm9kZXMgbGlzdCAo
MikgZm9yICdmbG93JyBzaG91bGQgYmUgZW1wdHksIGl0IGhhcyAiICsgbmFtZWRGbG93Q29udGVu
dE5vZGVzMi5sZW5ndGggKyAiIGVsZW1lbnRzIik7CisKKyAgICAgICAgICAgIC8vIEFwcGVuZCB0
aGUgYWJvdmUgZWxlbWVudCB0byB0aGUgRE9NLiBJdCB3aWxsIGJlIGNvbGxlY3RlZCBieSB0aGUg
ZmxvdywgdGhlcmVmb3JlIHRoZSBjb250ZW50Tm9kZXMgc2hvdWxkIGhhdmUgMSBlbGVtZW50Lgor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhcnRpY2xlKTsKKyAgICAgICAg
ICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMzID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5
TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIGFzc2VydChuYW1lZEZsb3dD
b250ZW50Tm9kZXMzLmxlbmd0aCA9PSAxLCAiVGhlIGNvbnRlbnQgbm9kZXMgbGlzdCAoMykgZm9y
ICdmbG93JyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGl0IGhhcyAiICsgbmFtZWRGbG93Q29udGVu
dE5vZGVzMy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKG5hbWVkRmxvd0NvbnRlbnROb2RlczMu
bGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVz
My5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIiksICJUaGUgZmly
c3QgY29udGVudCBub2RlIGZvciAnZmxvdycgc2hvdWxkIGJlICdhcnRpY2xlJywgaXQgaXMgIiAr
IG5hbWVkRmxvd0NvbnRlbnROb2RlczMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFw
cGVuZCBhIGNoaWxkIGVsZW1lbnQgdG8gdGhlIGFydGljbGUgYWJvdmUgYnV0IGRvIG5vdCBzZXQg
aXRzIHN0eWxlIHRvIGZsb3cgaW50byAnZmxvdycuCisgICAgICAgICAgICAvLyBUaGUgY29udGVu
dE5vZGVzIHNob3VsZCBzdGlsbCBoYXZlIDEgZWxlbWVudC4KKyAgICAgICAgICAgIHZhciBwTm9k
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICAgICAgICAgIHBOb2RlLmlkID0g
InAxIjsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBw
ZW5kQ2hpbGQocE5vZGUpOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczQg
PSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAg
ICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRlbnROb2RlczQubGVuZ3RoID09IDEsICJUaGUg
Y29udGVudCBub2RlcyBsaXN0ICg0KSBmb3IgJ2Zsb3cnIHNob3VsZCBoYXZlIDEgZWxlbWVudHMs
IGl0IGhhcyAiICsgbmFtZWRGbG93Q29udGVudE5vZGVzNC5sZW5ndGgpOworICAgICAgICAgICAg
aWYgKG5hbWVkRmxvd0NvbnRlbnROb2RlczQubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBh
c3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzNC5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJhcnRpY2xlIiksICJUaGUgZmlyc3QgY29udGVudCBub2RlIGZvciAnZmxvdycgc2hv
dWxkIGJlICdhcnRpY2xlJywgaXQgaXMgIiArIG5hbWVkRmxvd0NvbnRlbnROb2RlczQuaXRlbSgw
KS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIGVsZW1lbnQgZGlyZWN0bHkgdG8g
dGhlIGZsb3cgYW5kIHNldCBpdHMgJ2Rpc3BsYXknIHByb3BlcnR5IHRvICdub25lJywgaXQgc2hv
dWxkIGJlIHBhcnQgb2YgdGhlIGZsb3cuCisgICAgICAgICAgICB2YXIgYXJ0aWNsZTIgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIGFydGljbGUyLmlkID0gImFy
dGljbGUyIjsKKyAgICAgICAgICAgIGFydGljbGUyLnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZs
b3ciOworICAgICAgICAgICAgYXJ0aWNsZTIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGFydGljbGUyLCBhcnRpY2xlKTsKKwor
ICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczUgPSBkb2N1bWVudC53ZWJraXRH
ZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgYXNzZXJ0KG5h
bWVkRmxvd0NvbnRlbnROb2RlczUubGVuZ3RoID09IDIsICJUaGUgY29udGVudCBub2RlcyBsaXN0
ICg1KSBmb3IgJ2Zsb3cnIHNob3VsZCBoYXZlIDIgZWxlbWVudHMsIGl0IGhhcyAiICsgbmFtZWRG
bG93Q29udGVudE5vZGVzNS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKG5hbWVkRmxvd0NvbnRl
bnROb2RlczUubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQobmFtZWRGbG93Q29u
dGVudE5vZGVzNS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIp
LCAiVGhlIGZpcnN0IGNvbnRlbnQgbm9kZSBmb3IgJ2Zsb3cnIHNob3VsZCBiZSBhcnRpY2xlMiwg
aXQgaXMgIiArIG5hbWVkRmxvd0NvbnRlbnROb2RlczUuaXRlbSgwKS5pZCk7CisgICAgICAgICAg
ICBpZiAobmFtZWRGbG93Q29udGVudE5vZGVzNS5sZW5ndGggPiAxKQorICAgICAgICAgICAgICAg
IGFzc2VydChuYW1lZEZsb3dDb250ZW50Tm9kZXM1Lml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImFydGljbGUiKSwgIlRoZSBzZWNvbmQgY29udGVudCBub2RlIGZvciAnZmxvdycg
c2hvdWxkIGJlIGFydGljbGUsIGl0IGlzICIgKyBuYW1lZEZsb3dDb250ZW50Tm9kZXM1Lml0ZW0o
MSkuaWQpOworCisgICAgICAgICAgICAvLyBBZGRpbmcgYSByZWdpb24gZWxlbWVudCB0byBmbG93
IGNvbnRlbnQgaW50byBzaG91bGQgbm90IGluZmx1ZW5jZSB0aGUgY29udGVudCBub2RlcyBjb2xs
ZWN0aW9uLgorICAgICAgICAgICAgdmFyIHJlZ2lvbk5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbk5vZGUuaWQgPSAicmVnaW9uIjsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uTm9kZSk7CisgICAgICAgICAg
ICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzNiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5h
bWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBhc3NlcnQobmFtZWRGbG93Q29u
dGVudE5vZGVzNi5sZW5ndGggPT0gMiwgIlRoZSBjb250ZW50IG5vZGVzIGxpc3QgKDYpIGZvciAn
Zmxvdycgc2hvdWxkIHN0aWxsIGhhdmUgMiBlbGVtZW50cyBhZnRlciBiZWluZyBmbG93ZWQgaW50
byBhIHJlZ2lvbiwgaXQgaGFzICIgKyBuYW1lZEZsb3dDb250ZW50Tm9kZXM2Lmxlbmd0aCk7CisK
KyAgICAgICAgICAgIC8vIENoYW5nZSBkaXNwbGF5Om5vbmUgZm9yIHRoZSAnYXJ0aWNsZTInIGVs
ZW1lbnQsIHRoZSBsaXN0IG9mIGNvbnRlbnROb2RlcyBzaG91bGQgc3RheSB0aGUgc2FtZQorICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUuZGlzcGxh
eSA9ICJibG9jayI7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzNyA9IGRv
Y3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAg
ICAgICBhc3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzNy5sZW5ndGggPT0gMiwgIlRoZSBjb250
ZW50IG5vZGVzIGxpc3QgKDcpIGZvciAnZmxvdzsgc2hvdWxkIGhhdmUgMiBlbGVtZW50cywgaXQg
aGFzICIgKyBuYW1lZEZsb3dDb250ZW50Tm9kZXM3Lmxlbmd0aCk7CisKKyAgICAgICAgICAgIC8v
IEFkZCBhIHAgYW5kIGEgc3BhbiB1bmRlciBwLiBNYWtlIHRoZSBzcGFuIGRpcmVjdGx5IGNvbGxl
Y3RlZCBieSB0aGUgZmxvdy4gVGhlIGNvbnRlbnROb2RlcyBjb2xsZWN0aW9uIHNob3VsZCBoYXZl
IDMgZWxlbWVudHMuCisgICAgICAgICAgICBwTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InAiKTsKKyAgICAgICAgICAgIHBOb2RlLmlkID0gInAyIjsKKyAgICAgICAgICAgIHZhciBzcGFu
Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAgIHNwYW5O
b2RlLmlkID0gInNwYW4xIjsKKyAgICAgICAgICAgIHNwYW5Ob2RlLnN0eWxlLndlYmtpdEZsb3dJ
bnRvID0gImZsb3ciOworICAgICAgICAgICAgcE5vZGUuYXBwZW5kQ2hpbGQoc3Bhbk5vZGUpOwor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hp
bGQocE5vZGUpOworCisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzOCA9IGRv
Y3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAg
ICAgICBhc3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzOC5sZW5ndGggPT0gMywgIlRoZSBjb250
ZW50IG5vZGVzIGxpc3QgKDgpIGZvciAnZmxvdycgc2hvdWxkIGhhdmUgMyBlbGVtZW50cywgaXQg
aGFzICIgKyBuYW1lZEZsb3dDb250ZW50Tm9kZXM4Lmxlbmd0aCk7CisKKyAgICAgICAgICAgIC8v
IENoYW5nZSBkaXNwbGF5IG9mIGFydGljbGUgbm9kZSB0byBub25lLCB0aGUgY29sbGVjdGlvbiBz
aG91bGQgc3RpbGwgaGF2ZSAzIGVsZW1lbnRzLgorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgICAgICAgICAg
dmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczkgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1l
KCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRl
bnROb2RlczkubGVuZ3RoID09IDMsICJUaGUgY29udGVudCBub2RlcyBsaXN0ICg5KSBmb3IgJ2Zs
b3cnIHNob3VsZCBoYXZlIDMgZWxlbWVudHMsIGl0IGhhcyAiICsgbmFtZWRGbG93Q29udGVudE5v
ZGVzOS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKG5hbWVkRmxvd0NvbnRlbnROb2RlczkubGVu
Z3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzOS5p
dGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLCAiVGhlIGZpcnN0
IGNvbnRlbnQgbm9kZSBmb3IgJ2Zsb3cnIHNob3VsZCBiZSAnYXJ0aWNsZTInLCBpdCBpcyAiICsg
bmFtZWRGbG93Q29udGVudE5vZGVzOS5pdGVtKDApLmlkKTsKKyAgICAgICAgICAgIGlmIChuYW1l
ZEZsb3dDb250ZW50Tm9kZXM5Lmxlbmd0aCA+IDEpCisgICAgICAgICAgICAgICAgYXNzZXJ0KG5h
bWVkRmxvd0NvbnRlbnROb2RlczkuaXRlbSgxKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3BhbjEiKSwgIlRoZSBzZWNvbmQgY29udGVudCBub2RlIGZvciAnZmxvdycgc2hvdWxkIGJlICdz
cGFuMScsIGl0IGlzICIgKyBuYW1lZEZsb3dDb250ZW50Tm9kZXM5Lml0ZW0oMSkuaWQpOworICAg
ICAgICAgICAgaWYgKG5hbWVkRmxvd0NvbnRlbnROb2RlczkubGVuZ3RoID4gMikKKyAgICAgICAg
ICAgICAgICBhc3NlcnQobmFtZWRGbG93Q29udGVudE5vZGVzOS5pdGVtKDIpID09IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIiksICJUaGUgdGhpcmQgY29udGVudCBub2RlIGZvciAn
Zmxvdycgc2hvdWxkIGJlICdhcnRpY2xlJywgaXQgaXMgIiArIG5hbWVkRmxvd0NvbnRlbnROb2Rl
czkuaXRlbSgyKS5pZCk7CisKKyAgICAgICAgICAgIC8vIFRha2UgJ2FydGljbGUnIG5vZGUgZnJv
bSBsYXN0IHBvc2l0aW9uIGFuZCBpbnNlcnQgaXQgYmVmb3JlICdhcnRpY2xlMicKKyAgICAgICAg
ICAgIGFydGljbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpOworICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChhcnRpY2xlKSwgYXJ0aWNsZTIpOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnRO
b2RlczEwID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2Rl
czsKKyAgICAgICAgICAgIGFzc2VydChuYW1lZEZsb3dDb250ZW50Tm9kZXMxMC5sZW5ndGggPT0g
MywgIlRoZSBjb250ZW50IG5vZGVzIGxpc3QgKDEwKSBmb3IgJ2Zsb3cnIHNob3VsZCBoYXZlIDMg
ZWxlbWVudHMsIGl0IGhhcyAiICsgbmFtZWRGbG93Q29udGVudE5vZGVzMTAubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGlmIChuYW1lZEZsb3dDb250ZW50Tm9kZXMxMC5sZW5ndGggPiAwKQorICAgICAg
ICAgICAgICAgIGFzc2VydChuYW1lZEZsb3dDb250ZW50Tm9kZXMxMC5pdGVtKDApID09IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIiksICJUaGUgZmlyc3QgY29udGVudCBub2RlIGZv
ciAnZmxvdycgc2hvdWxkIGJlICdhcnRpY2xlJywgaXQgaXMgIiArIG5hbWVkRmxvd0NvbnRlbnRO
b2RlczEwLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBDbG9uZSAnYXJ0aWNsZTInIGlu
Y2x1ZGluZyBpdHMgY2hpbGRyZW4uCisgICAgICAgICAgICB2YXIgYXJ0aWNsZTJDbG9uZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmNsb25lTm9kZSh0cnVlKTsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYXJ0aWNsZTJDbG9uZSk7CisgICAgICAg
ICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzMTEgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93
QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxv
d0NvbnRlbnROb2RlczExLmxlbmd0aCA9PSA1LCAiVGhlIGNvbnRlbnQgbm9kZXMgbGlzdCAoMTEp
IGZvciAnZmxvdycgc2hvdWxkIGhhdmUgNSBlbGVtZW50cywgaXQgaGFzICIgKyBuYW1lZEZsb3dD
b250ZW50Tm9kZXMxMS5sZW5ndGgpOworICAgICAgICAgICAgLy8gUmVtb3ZlIGFydGljbGUyIG5v
ZGVzIGZyb20gZG9jdW1lbnQsIHRoZXkgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBmbG93LgorICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhcnRpY2xlMik7CisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFydGljbGUyQ2xvbmUpOworICAgICAgICAgICAg
dmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczEyID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFt
ZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIGFzc2VydChuYW1lZEZsb3dDb250
ZW50Tm9kZXMxMi5sZW5ndGggPT0gMSwgIlRoZSBjb250ZW50IG5vZGVzIGxpc3QgKDEyKSBmb3Ig
J2Zsb3c7IHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaXQgaGFzICIgKyBuYW1lZEZsb3dDb250ZW50
Tm9kZXMxMi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKG5hbWVkRmxvd0NvbnRlbnROb2RlczEy
Lmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KG5hbWVkRmxvd0NvbnRlbnROb2Rl
czEyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKSwgIlRoZSBm
aXJzdCBjb250ZW50IG5vZGUgZm9yICdmbG93JyBzaG91bGQgYmUgJ2FydGljbGUnLCBpdCBpcyAi
ICsgbmFtZWRGbG93Q29udGVudE5vZGVzMTIuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRl
biI7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA5MzJkMmMyLi40OWQwMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDMt
MTggIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbmFtZWQgZmxvdyBj
b250ZW50IG5vZGVzIGNvbGxlY3Rpb24gY29udGFpbnMgdGhvc2Ugbm9kZXMgd2l0aCB3ZWJraXRG
bG93SW50byBwcm9wZXJ0eSBzZXQgdG8gJ2Zsb3cnLgorICAgICAgICBJbiB0aGUgbGlzdCwgdGhl
IG5vZGVzIGFyZSBwbGFjZWQgaW4gZG9jdW1lbnQgb3JkZXIuIE5vZGVzIHdpdGggZGlzcGxheTpu
b25lIGFyZSBhbHNvIHBhcnQgb2YgdGhlIGxpc3QuCisgICAgICAgIFRoZSBsaXN0IG9mIG5vZGVz
IGlzIHJldHVybmVkIGFzIGEgc3RhdGljIG5vZGUgbGlzdC4KKworICAgICAgICBUZXN0OiBmYXN0
L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctY29udGVudC1ub2Rlcy5odG1sCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdEdl
dEZsb3dCeU5hbWUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1l
bnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmRldGFjaCk6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0Ojptb3ZlVG9GbG93VGhyZWFkSWZO
ZWVkZWQpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0TmFtZWRGbG93Ojpjb250ZW50Tm9kZXMpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXROYW1lZEZsb3c6OnJlZ2lzdGVyQ29udGVudE5vZGUp
OgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViS2l0TmFtZWRGbG93KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVk
Rmxvdzo6dW5yZWdpc3RlckNvbnRlbnROb2RlKToKKyAgICAgICAgKiBkb20vV2ViS2l0TmFtZWRG
bG93LmlkbDoKKwogMjAxMi0wMy0xNyAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUGxhdGZvcm1Db250ZXh0U2tpYTo6bV9kcmF3aW5n
VG9JbWFnZUJ1ZmZlciBpcyBub3QgY29ycmVjdGx5IHNldCB3aGVuIHVzaW5nIHBlci10aWxlIHBh
aW50aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODFkYjYzNi4uOGZiNzBkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDM3LDE1ICsxMDM3LDIwIEBAIHN0YXRpYyBib29s
IHZhbGlkRmxvd05hbWUoY29uc3QgU3RyaW5nJiBmbG93TmFtZSkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotUGFzc1JlZlB0cjxXZWJLaXROYW1lZEZsb3c+IERvY3VtZW50Ojp3ZWJraXRHZXRGbG93
QnlOYW1lKGNvbnN0IFN0cmluZyYgZmxvd05hbWUpCitQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxv
dz4gRG9jdW1lbnQ6OndlYmtpdEdldEZsb3dCeU5hbWUoY29uc3QgU3RyaW5nJiBmbG93TmFtZSwg
Ym9vbCBjaGVja0Zsb3dOYW1lKQogewotICAgIGlmICghY3NzUmVnaW9uc0VuYWJsZWQoKSB8fCBm
bG93TmFtZS5pc0VtcHR5KCkgfHwgIXZhbGlkRmxvd05hbWUoZmxvd05hbWUpIHx8ICFyZW5kZXJl
cigpKQorICAgIGlmICghY3NzUmVnaW9uc0VuYWJsZWQoKSB8fCAhcmVuZGVyZXIoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICAvLyBNYWtlIGEgc2xvd2VyIGNoZWNrIGZvciBpbnZhbGlkIGZs
b3cgbmFtZQotICAgIENTU1BhcnNlciBwKHRydWUpOwotICAgIGlmICghcC5wYXJzZUZsb3dUaHJl
YWQoZmxvd05hbWUsIHRoaXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoY2hlY2tGbG93
TmFtZSkgeworICAgICAgICBpZiAoZmxvd05hbWUuaXNFbXB0eSgpIHx8ICF2YWxpZEZsb3dOYW1l
KGZsb3dOYW1lKSkKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIC8vIE1ha2UgYSBz
bG93ZXIgY2hlY2sgZm9yIGludmFsaWQgZmxvdyBuYW1lCisgICAgICAgIENTU1BhcnNlciBwKHRy
dWUpOworICAgICAgICBpZiAoIXAucGFyc2VGbG93VGhyZWFkKGZsb3dOYW1lLCB0aGlzKSkKKyAg
ICAgICAgICAgIHJldHVybiAwOworICAgIH0KIAogICAgIGlmIChSZW5kZXJWaWV3KiB2aWV3ID0g
cmVuZGVyZXIoKS0+dmlldygpKQogICAgICAgICByZXR1cm4gdmlldy0+ZW5zdXJlUmVuZGVyRmxv
d1RocmVhZFdpdGhOYW1lKGZsb3dOYW1lKS0+ZW5zdXJlTmFtZWRGbG93KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IGNjODFiMzIuLmJkODM2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0z
NTIsNyArMzUyLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCiAgICAg
Ym9vbCBjc3NSZWdpb25zRW5hYmxlZCgpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8V2ViS2l0TmFt
ZWRGbG93PiB3ZWJraXRHZXRGbG93QnlOYW1lKGNvbnN0IFN0cmluZyYpOworICAgIFBhc3NSZWZQ
dHI8V2ViS2l0TmFtZWRGbG93PiB3ZWJraXRHZXRGbG93QnlOYW1lKGNvbnN0IFN0cmluZyYsIGJv
b2wgY2hlY2tGbG93TmFtZSA9IHRydWUpOwogCiAgICAgYm9vbCByZWdpb25CYXNlZENvbHVtbnNF
bmFibGVkKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxZTZlN2I3Li40NTVj
NGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02Niw4ICs2Niw5IEBACiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QW5pbWF0aW9uTGlzdC5oIgorI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNp
bmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIKICNpbmNsdWRlICJYTUxOU05hbWVzLmgiCiAjaW5j
bHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgpAQCAtOTc5LDYgKzk4
MCwxNSBAQCB2b2lkIEVsZW1lbnQ6OmRldGFjaCgpCiB7CiAgICAgUmVuZGVyV2lkZ2V0OjpzdXNw
ZW5kV2lkZ2V0SGllcmFyY2h5VXBkYXRlcygpOwogCisgICAgaWYgKGRvY3VtZW50KCktPmNzc1Jl
Z2lvbnNFbmFibGVkKCkpIHsKKyAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyZXIo
KSA/IHJlbmRlcmVyKCktPnN0eWxlKCkgOiBjb21wdXRlZFN0eWxlKCk7CisgICAgICAgIGlmIChz
dHlsZSAmJiAhc3R5bGUtPmZsb3dUaHJlYWQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIFJl
ZlB0cjxXZWJLaXROYW1lZEZsb3c+IG5hbWVkRmxvdyA9IGRvY3VtZW50KCktPndlYmtpdEdldEZs
b3dCeU5hbWUoc3R5bGUtPmZsb3dUaHJlYWQoKSwgZmFsc2UgLyogZG9uJ3QgY2hlY2sgZmxvdyBu
YW1lIGZvciB2YWxpZGl0eSAqLyk7CisgICAgICAgICAgICBpZiAobmFtZWRGbG93KQorICAgICAg
ICAgICAgICAgIG5hbWVkRmxvdy0+dW5yZWdpc3RlckNvbnRlbnROb2RlKHRoaXMpOworICAgICAg
ICB9CisgICAgfQorCiAgICAgY2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAgaWYg
KGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPnJlc2V0Q29tcHV0ZWRTdHlsZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggOTNm
MzE2Ni4uNTI1ZTExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCisjaW5jbHVkZSAiV2Vi
S2l0TmFtZWRGbG93LmgiCiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CkBAIC0zMjcsNiArMzI4LDcgQEAgdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bW92ZVRvRmxv
d1RocmVhZElmTmVlZGVkKCkKICAgICBtX2Zsb3dUaHJlYWQgPSBtX3N0eWxlLT5mbG93VGhyZWFk
KCk7CiAgICAgQVNTRVJUKG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKICAgICBt
X3BhcmVudEZsb3dSZW5kZXJlciA9IG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpLT5l
bnN1cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUobV9mbG93VGhyZWFkKTsKKyAgICBtX3BhcmVu
dEZsb3dSZW5kZXJlci0+ZW5zdXJlTmFtZWRGbG93KCktPnJlZ2lzdGVyQ29udGVudE5vZGUobV9u
b2RlKTsKIH0KIAogTm9kZVJlbmRlcmVyRmFjdG9yeTo6Tm9kZVJlbmRlcmVyRmFjdG9yeShOb2Rl
KiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcAppbmRleCAxMjk5Yjdj
Li4zMmE0OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcApAQCAtMzAs
NyArMzAsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZs
b3cuaCIKIAorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1
ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKKyNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDUgKzUyLDM4IEBAIGJvb2wgV2ViS2l0TmFtZWRG
bG93OjpvdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyZW50Rmxvd1RocmVhZC0+b3Zl
cmZsb3coKTsKIH0KIAorUGFzc1JlZlB0cjxOb2RlTGlzdD4gV2ViS2l0TmFtZWRGbG93Ojpjb250
ZW50Tm9kZXMoKSBjb25zdAoreworICAgIG1fcGFyZW50Rmxvd1RocmVhZC0+ZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisKKyAgICBWZWN0b3I8UmVm
UHRyPE5vZGU+ID4gY29udGVudE5vZGVzOworICAgIGZvciAoTmFtZWRGbG93Q29udGVudE5vZGVz
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fY29udGVudE5vZGVzLmJlZ2luKCk7IGl0ICE9IG1fY29u
dGVudE5vZGVzLmVuZCgpOyArK2l0KSB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBjb25zdF9jYXN0
PE5vZGUqPigqaXQpOworICAgICAgICBBU1NFUlQobm9kZS0+Y29tcHV0ZWRTdHlsZSgpLT5mbG93
VGhyZWFkKCkgPT0gbV9wYXJlbnRGbG93VGhyZWFkLT5mbG93VGhyZWFkKCkpOworICAgICAgICBj
b250ZW50Tm9kZXMuYXBwZW5kKG5vZGUpOworICAgIH0KKworICAgIHJldHVybiBTdGF0aWNOb2Rl
TGlzdDo6YWRvcHQoY29udGVudE5vZGVzKTsKK30KKworLy8gVGhlIGNvbnRlbnQgbm9kZXMgbGlz
dCBjb250YWlucyB0aG9zZSBub2RlcyB3aXRoIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93LgorLy8g
QW4gZWxlbWVudCB3aXRoIGRpc3BsYXk6bm9uZSBzaG91bGQgYWxzbyBiZSBsaXN0ZWQgYW1vbmcg
dGhvc2Ugbm9kZXMuCisvLyBUaGUgbGlzdCBvZiBub2RlcyBpcyBvcmRlcmVyLgordm9pZCBXZWJL
aXROYW1lZEZsb3c6OnJlZ2lzdGVyQ29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUpCit7Cisg
ICAgQVNTRVJUKGNvbnRlbnROb2RlICYmIGNvbnRlbnROb2RlLT5pc0VsZW1lbnROb2RlKCkpOwor
CisgICAgLy8gRmluZCB0aGUgZmlyc3QgY29udGVudCBub2RlIGZvbGxvd2luZyB0aGUgbmV3IGNv
bnRlbnQgbm9kZS4KKyAgICBmb3IgKE5hbWVkRmxvd0NvbnRlbnROb2Rlczo6aXRlcmF0b3IgaXQg
PSBtX2NvbnRlbnROb2Rlcy5iZWdpbigpOyBpdCAhPSBtX2NvbnRlbnROb2Rlcy5lbmQoKTsgKytp
dCkgeworICAgICAgICBOb2RlKiBub2RlID0gKml0OworICAgICAgICB1bnNpZ25lZCBzaG9ydCBw
b3NpdGlvbiA9IGNvbnRlbnROb2RlLT5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihub2RlKTsKKyAg
ICAgICAgaWYgKHBvc2l0aW9uICYgTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HKSB7
CisgICAgICAgICAgICBtX2NvbnRlbnROb2Rlcy5pbnNlcnRCZWZvcmUobm9kZSwgY29udGVudE5v
ZGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIG1fY29udGVu
dE5vZGVzLmFkZChjb250ZW50Tm9kZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IGY3NmYxMjAuLmRkMzNiNDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTMwLDExICszMCwxNCBAQAogI2lm
bmRlZiBXZWJLaXROYW1lZEZsb3dfaAogI2RlZmluZSBXZWJLaXROYW1lZEZsb3dfaAogCisjaW5j
bHVkZSA8Tm9kZS5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIE5vZGVMaXN0OwogY2xhc3MgUmVuZGVyRmxvd1RocmVhZDsKIAogY2xh
c3MgV2ViS2l0TmFtZWRGbG93IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0TmFtZWRGbG93PiB7
CkBAIC00NywxMSArNTAsMTggQEAgcHVibGljOgogICAgIH5XZWJLaXROYW1lZEZsb3coKTsKIAog
ICAgIGJvb2wgb3ZlcmZsb3coKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBjb250
ZW50Tm9kZXMoKSBjb25zdDsKKworICAgIHZvaWQgcmVnaXN0ZXJDb250ZW50Tm9kZShOb2RlKiBj
b250ZW50Tm9kZSk7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ29udGVudE5vZGUoTm9kZSogY29udGVu
dE5vZGUpIHsgbV9jb250ZW50Tm9kZXMucmVtb3ZlKGNvbnRlbnROb2RlKTsgfQogCiBwcml2YXRl
OgogICAgIFdlYktpdE5hbWVkRmxvdyhSZW5kZXJGbG93VGhyZWFkKik7CiAKICAgICBSZW5kZXJG
bG93VGhyZWFkKiBtX3BhcmVudEZsb3dUaHJlYWQ7CisKKyAgICB0eXBlZGVmIExpc3RIYXNoU2V0
PE5vZGUqPiBOYW1lZEZsb3dDb250ZW50Tm9kZXM7CisgICAgTmFtZWRGbG93Q29udGVudE5vZGVz
IG1fY29udGVudE5vZGVzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE5hbWVkRmxvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93
LmlkbAppbmRleCAyNjFkNDQ0Li4xN2E0NGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0TmFtZWRGbG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFt
ZWRGbG93LmlkbApAQCAtMzIsNiArMzIsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIEpTR2Vu
ZXJhdGVUb0pTT2JqZWN0CiAgICAgXSBXZWJLaXROYW1lZEZsb3cgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBvdmVyZmxvdzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5vZGVMaXN0IGNvbnRlbnROb2RlczsKICAgICB9OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132602</attachid>
            <date>2012-03-19 10:20:09 -0700</date>
            <delta_ts>2012-03-26 01:29:49 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>80134-3.patch</filename>
            <type>text/plain</type>
            <size>18533</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMTM4MjhkLi4zMzMyMDg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDMt
MTkgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbmFtZWQgZmxvdyBj
b250ZW50IG5vZGVzIGNvbGxlY3Rpb24gY29udGFpbnMgdGhvc2Ugbm9kZXMgd2l0aCB3ZWJraXRG
bG93SW50byBwcm9wZXJ0eSBzZXQgdG8gJ2Zsb3cnLgorICAgICAgICBJbiB0aGUgbGlzdCwgdGhl
IG5vZGVzIGFyZSBwbGFjZWQgaW4gZG9jdW1lbnQgb3JkZXIuIE5vZGVzIHdpdGggZGlzcGxheTpu
b25lIGFyZSBhbHNvIHBhcnQgb2YgdGhlIGxpc3QuCisgICAgICAgIFRoZSBsaXN0IG9mIG5vZGVz
IGlzIHJldHVybmVkIGFzIGEgc3RhdGljIG5vZGUgbGlzdC4KKworICAgICAgICAqIGZhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMu
aHRtbDogQWRkZWQuCisKIDIwMTItMDMtMTkgIMOBZMOhbSBLYWxsYWkgIDxrYWRhbUBpbmYudS1z
emVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkLiBBZGQgbmV3IHBsYXRmb3JtIHNw
ZWNpZmljIGV4cGVjdGF0aW9uIGFmdGVyIHIxMTA2NjcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctY29udGVudC1ub2Rlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctY29udGVudC1u
b2Rlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk3
ZDI0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitU
ZXN0IGZvciA4MDEzNDogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5v
ZGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hbWVkRmxvd0NvbnRl
bnROb2RlcyBpcyBub24tbnVsbC4KK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzLmxlbmd0aCBp
cyAwCitXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cworUEFTUyB0cnVl
IGlzIHRydWUKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMi5sZW5ndGggaXMgMAorUEFTUyBu
YW1lZEZsb3dDb250ZW50Tm9kZXMzLmxlbmd0aCBpcyAxCitQQVNTIG5hbWVkRmxvd0NvbnRlbnRO
b2RlczMuaXRlbSgwKS5pZCBpcyAiYXJ0aWNsZSIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVz
NC5sZW5ndGggaXMgMQorUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXM0Lml0ZW0oMCkuaWQgaXMg
ImFydGljbGUiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczUubGVuZ3RoIGlzIDIKK1BBU1Mg
bmFtZWRGbG93Q29udGVudE5vZGVzNS5pdGVtKDApLmlkIGlzICJhcnRpY2xlMiIKK1BBU1MgbmFt
ZWRGbG93Q29udGVudE5vZGVzNS5pdGVtKDEpLmlkIGlzICJhcnRpY2xlIgorUEFTUyBuYW1lZEZs
b3dDb250ZW50Tm9kZXM2Lmxlbmd0aCBpcyAyCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2Rlczcu
bGVuZ3RoIGlzIDIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzOC5sZW5ndGggaXMgMworUEFT
UyBuYW1lZEZsb3dDb250ZW50Tm9kZXM5Lmxlbmd0aCBpcyAzCitQQVNTIG5hbWVkRmxvd0NvbnRl
bnROb2RlczkuaXRlbSgwKS5pZCBpcyAiYXJ0aWNsZTIiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnRO
b2RlczkuaXRlbSgxKS5pZCBpcyAic3BhbjEiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2Rlczku
aXRlbSgyKS5pZCBpcyAiYXJ0aWNsZSIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTAubGVu
Z3RoIGlzIDMKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTAuaXRlbSgwKS5pZCBpcyAiYXJ0
aWNsZSIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTEubGVuZ3RoIGlzIDUKK1BBU1MgbmFt
ZWRGbG93Q29udGVudE5vZGVzMTIubGVuZ3RoIGlzIDEKK1BBU1MgbmFtZWRGbG93Q29udGVudE5v
ZGVzMTIuaXRlbSgwKS5pZCBpcyAiYXJ0aWNsZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctY29udGVudC1ub2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWViZTllCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMu
aHRtbApAQCAtMCwwICsxLDExOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI3JlZ2lvbiB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDogMjUwcHg7IGhlaWdodDogMTUwcHg7IH0K
KyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDwhLS0K
KyAgICAgICAgMS4gVGhlIGNvbnRlbnQgbm9kZXMgY29sbGVjdGlvbiBmb3IgYSBuYW1lZCBmbG93
ICdmbG93JyBjb250YWlucyBvbmx5IHRob3NlIGVsZW1lbnRzIHRoYXQgaGF2ZQorICAgICAgICB0
aGUgc3R5bGUgcHJvcGVydHkgLXdlYmtpdC1mbG93LWludG8gc2V0IHRvICdmbG93Jy4KKyAgICAg
ICAgMi4gSWYgYW4gZWxlbWVudCBoYXMgYW4gYW5jZXN0b3Igd2l0aCAtd2Via2l0LWZsb3ctaW50
byA9ICdmbG93JyBidXQgZG9lcyBub3QgaGF2ZSBpdHMgJy13ZWJraXQtZmxvdy1pbnRvJworICAg
ICAgICBzZXQgdG8gJ2Zsb3cnIHdpbGwgbm90IGJlIGxpc3RlZCBhbW9uZyB0aGUgY29udGVudCBu
b2RlcyBmb3IgbmFtZWQgZmxvdyAnZmxvdycuCisgICAgICAgIDMuIEVsZW1lbnRzIHdpdGggJy13
ZWJraXQtZmxvdy1pbnRvJyBzZXQgdG8gJ2Zsb3cnIGFuZCAnZGlzcGxheTpub25lJyBzaG91bGQg
YmUgbGlzdGVkIGFtb25nIHRoZSBjb250ZW50IG5vZGVzCisgICAgICAgIGZvciBuYW1lZCBmbG93
IG9iamVjdCAnZmxvdycuCisgICAgICAgIDQuIFRoZSBjb2xsZWN0aW9uIG9mIG5vZGVzIGlzIHJl
dHVybmVkIGluIGRvY3VtZW50IG9yZGVyLgorICAgICAgICAtLT4KKyAgICAgICAgPHNjcmlwdD4K
KyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
ICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciA4MDEzNDogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5h
bWVkRmxvdzo6Y29udGVudE5vZGVzIik7CisKKyAgICAgICAgICAgIC8vIEZpcnN0IHRpbWUgYXNr
IGZvciBhIG5hbWVkIGZsb3cgb2JqZWN0LCB0aGUgY29udGVudE5vZGVzIHNob3VsZCBiZSBlbXB0
eS4KKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMgPSBkb2N1bWVudC53ZWJr
aXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgc2hvdWxk
QmVOb25OdWxsKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMiKTsKKyAgICAgICAgICAgIHNob3VsZEV2
YWx1YXRlVG8oIm5hbWVkRmxvd0NvbnRlbnROb2Rlcy5sZW5ndGgiLCAwKTsKKyAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZShuYW1lZEZsb3dDb250ZW50Tm9kZXMgaW5zdGFuY2VvZiBOb2RlTGlzdCk7
CisKKyAgICAgICAgICAgIC8vIEFkZCBhbiBlbGVtZW50IHRoYXQgd291bGQgYmUgY29sbGVjdGVk
IGJ5IHRoZSBuYW1lZCBmbG93IGJ1dCBkbyBub3QgYWRkIGl0IHRvIHRoZSBET00sIHRoZSBjb250
ZW50Tm9kZXMgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICAgICAgdmFyIGFydGljbGUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIGFydGljbGUuaWQgPSAiYXJ0
aWNsZSI7CisgICAgICAgICAgICBhcnRpY2xlLnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZsb3ci
OworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczIgPSBkb2N1bWVudC53ZWJr
aXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgc2hvdWxk
RXZhbHVhdGVUbygibmFtZWRGbG93Q29udGVudE5vZGVzMi5sZW5ndGgiLCAwKTsKKworICAgICAg
ICAgICAgLy8gQXBwZW5kIHRoZSBhYm92ZSBlbGVtZW50IHRvIHRoZSBET00uIEl0IHdpbGwgYmUg
Y29sbGVjdGVkIGJ5IHRoZSBmbG93LCB0aGVyZWZvcmUgdGhlIGNvbnRlbnROb2RlcyBzaG91bGQg
aGF2ZSAxIGVsZW1lbnQuCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFy
dGljbGUpOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczMgPSBkb2N1bWVu
dC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAg
c2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29udGVudE5vZGVzMy5sZW5ndGgiLCAxKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibmFtZWRGbG93Q29udGVudE5vZGVzMy5p
dGVtKDApLmlkIiwgImFydGljbGUiKTsKKworICAgICAgICAgICAgLy8gQXBwZW5kIGEgY2hpbGQg
ZWxlbWVudCB0byB0aGUgYXJ0aWNsZSBhYm92ZSBidXQgZG8gbm90IHNldCBpdHMgc3R5bGUgdG8g
ZmxvdyBpbnRvICdmbG93Jy4KKyAgICAgICAgICAgIC8vIFRoZSBjb250ZW50Tm9kZXMgc2hvdWxk
IHN0aWxsIGhhdmUgMSBlbGVtZW50LgorICAgICAgICAgICAgdmFyIHBOb2RlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcE5vZGUuaWQgPSAicDEiOworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZChwTm9k
ZSk7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzNCA9IGRvY3VtZW50Lndl
YmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91
bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXM0Lmxlbmd0aCIsIDEpOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dDb250ZW50Tm9kZXM0Lml0ZW0o
MCkuaWQiLCAiYXJ0aWNsZSIpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciBlbGVtZW50
IGRpcmVjdGx5IHRvIHRoZSBmbG93IGFuZCBzZXQgaXRzICdkaXNwbGF5JyBwcm9wZXJ0eSB0byAn
bm9uZScsIGl0IHNob3VsZCBiZSBwYXJ0IG9mIHRoZSBmbG93LgorICAgICAgICAgICAgdmFyIGFy
dGljbGUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICBhcnRp
Y2xlMi5pZCA9ICJhcnRpY2xlMiI7CisgICAgICAgICAgICBhcnRpY2xlMi5zdHlsZS53ZWJraXRG
bG93SW50byA9ICJmbG93IjsKKyAgICAgICAgICAgIGFydGljbGUyLnN0eWxlLmRpc3BsYXkgPSAi
bm9uZSI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShhcnRpY2xlMiwg
YXJ0aWNsZSk7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXM1ID0gZG9j
dW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAg
ICAgIHNob3VsZEV2YWx1YXRlVG8oIm5hbWVkRmxvd0NvbnRlbnROb2RlczUubGVuZ3RoIiwgMik7
CisJCQlzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm5hbWVkRmxvd0NvbnRlbnROb2RlczUuaXRlbSgw
KS5pZCIsICJhcnRpY2xlMiIpOworCQkJc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dD
b250ZW50Tm9kZXM1Lml0ZW0oMSkuaWQiLCAiYXJ0aWNsZSIpOworCisgICAgICAgICAgICAvLyBB
ZGRpbmcgYSByZWdpb24gZWxlbWVudCB0byBmbG93IGNvbnRlbnQgaW50byBzaG91bGQgbm90IGlu
Zmx1ZW5jZSB0aGUgY29udGVudCBub2RlcyBjb2xsZWN0aW9uLgorICAgICAgICAgICAgdmFyIHJl
Z2lvbk5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJl
Z2lvbk5vZGUuaWQgPSAicmVnaW9uIjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQocmVnaW9uTm9kZSk7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVz
NiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7Cisg
ICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXM2Lmxlbmd0
aCIsIDIpOworCisgICAgICAgICAgICAvLyBDaGFuZ2UgZGlzcGxheTpub25lIGZvciB0aGUgJ2Fy
dGljbGUyJyBlbGVtZW50LCB0aGUgbGlzdCBvZiBjb250ZW50Tm9kZXMgc2hvdWxkIHN0YXkgdGhl
IHNhbWUKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLnN0
eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnRO
b2RlczcgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVz
OworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29udGVudE5vZGVzNy5s
ZW5ndGgiLCAyKTsKKworICAgICAgICAgICAgLy8gQWRkIGEgcCBhbmQgYSBzcGFuIHVuZGVyIHAu
IE1ha2UgdGhlIHNwYW4gZGlyZWN0bHkgY29sbGVjdGVkIGJ5IHRoZSBmbG93LiBUaGUgY29udGVu
dE5vZGVzIGNvbGxlY3Rpb24gc2hvdWxkIGhhdmUgMyBlbGVtZW50cy4KKyAgICAgICAgICAgIHBO
b2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcE5vZGUuaWQg
PSAicDIiOworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOworICAgICAgICAgICAgc3Bhbk5vZGUuaWQgPSAic3BhbjEiOworICAgICAgICAg
ICAgc3Bhbk5vZGUuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAiZmxvdyI7CisgICAgICAgICAgICBw
Tm9kZS5hcHBlbmRDaGlsZChzcGFuTm9kZSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwTm9kZSk7CisKKyAgICAgICAgICAgIHZh
ciBuYW1lZEZsb3dDb250ZW50Tm9kZXM4ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgi
ZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oIm5hbWVk
Rmxvd0NvbnRlbnROb2RlczgubGVuZ3RoIiwgMyk7CisKKyAgICAgICAgICAgIC8vIENoYW5nZSBk
aXNwbGF5IG9mIGFydGljbGUgbm9kZSB0byBub25lLCB0aGUgY29sbGVjdGlvbiBzaG91bGQgc3Rp
bGwgaGF2ZSAzIGVsZW1lbnRzLgorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImFydGljbGUiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgICAgICAgICAgdmFyIG5hbWVk
Rmxvd0NvbnRlbnROb2RlczkgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iiku
Y29udGVudE5vZGVzOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29u
dGVudE5vZGVzOS5sZW5ndGgiLCAzKTsKKwkJCXNob3VsZEJlRXF1YWxUb1N0cmluZygibmFtZWRG
bG93Q29udGVudE5vZGVzOS5pdGVtKDApLmlkIiwgImFydGljbGUyIik7CisJCQlzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIm5hbWVkRmxvd0NvbnRlbnROb2RlczkuaXRlbSgxKS5pZCIsICJzcGFuMSIp
OworCQkJc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dDb250ZW50Tm9kZXM5Lml0ZW0o
MikuaWQiLCAiYXJ0aWNsZSIpOworCisgICAgICAgICAgICAvLyBUYWtlICdhcnRpY2xlJyBub2Rl
IGZyb20gbGFzdCBwb3NpdGlvbiBhbmQgaW5zZXJ0IGl0IGJlZm9yZSAnYXJ0aWNsZTInCisgICAg
ICAgICAgICBhcnRpY2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoYXJ0aWNsZSksIGFydGljbGUyKTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250
ZW50Tm9kZXMxMCA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50
Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9k
ZXMxMC5sZW5ndGgiLCAzKTsKKwkJCXNob3VsZEJlRXF1YWxUb1N0cmluZygibmFtZWRGbG93Q29u
dGVudE5vZGVzMTAuaXRlbSgwKS5pZCIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIENs
b25lICdhcnRpY2xlMicgaW5jbHVkaW5nIGl0cyBjaGlsZHJlbi4KKyAgICAgICAgICAgIHZhciBh
cnRpY2xlMkNsb25lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuY2xvbmVO
b2RlKHRydWUpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhcnRpY2xl
MkNsb25lKTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMxMSA9IGRvY3Vt
ZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAg
ICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMS5sZW5ndGgiLCA1KTsK
KyAgICAgICAgICAgIC8vIFJlbW92ZSBhcnRpY2xlMiBub2RlcyBmcm9tIGRvY3VtZW50LCB0aGV5
IHNob3VsZCBiZSByZW1vdmVkIGZyb20gZmxvdy4KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoYXJ0aWNsZTIpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChhcnRpY2xlMkNsb25lKTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9k
ZXMxMiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7
CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMi5s
ZW5ndGgiLCAxKTsKKwkJCXNob3VsZEJlRXF1YWxUb1N0cmluZygibmFtZWRGbG93Q29udGVudE5v
ZGVzMTIuaXRlbSgwKS5pZCIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWdpb24iKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNDJmNjkyOC4uMDRjYzA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisy
MDEyLTAzLTE5ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAg
IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmNvbnRlbnROb2RlcyBhdHRyaWJ1dGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMTM0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIG5hbWVk
IGZsb3cgY29udGVudCBub2RlcyBjb2xsZWN0aW9uIGNvbnRhaW5zIHRob3NlIG5vZGVzIHdpdGgg
d2Via2l0Rmxvd0ludG8gcHJvcGVydHkgc2V0IHRvICdmbG93Jy4KKyAgICAgICAgSW4gdGhlIGxp
c3QsIHRoZSBub2RlcyBhcmUgcGxhY2VkIGluIGRvY3VtZW50IG9yZGVyLiBOb2RlcyB3aXRoIGRp
c3BsYXk6bm9uZSBhcmUgYWxzbyBwYXJ0IG9mIHRoZSBsaXN0LgorICAgICAgICBUaGUgbGlzdCBv
ZiBub2RlcyBpcyByZXR1cm5lZCBhcyBhIHN0YXRpYyBub2RlIGxpc3QuCisKKyAgICAgICAgVGVz
dDogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbAorCisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3
ZWJraXRHZXRGbG93QnlOYW1lKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAg
KiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkZXRhY2gpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6bW92ZVRvRmxvd1RocmVhZElmTmVlZGVkKToKKyAgICAg
ICAgKiBkb20vV2ViS2l0TmFtZWRGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5h
bWVkRmxvdzo6Y29udGVudE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0TmFtZWRGbG93OjpyZWdpc3RlckNvbnRlbnROb2RlKToKKyAgICAgICAgKiBk
b20vV2ViS2l0TmFtZWRGbG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktp
dE5hbWVkRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXROYW1lZEZsb3c6OnVucmVnaXN0
ZXJDb250ZW50Tm9kZSk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5pZGw6CisKIDIw
MTItMDMtMTkgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgogCiAgICAgICAgIGlu
c3BlY3RvciBoaWdobGlnaHQgb2YgU1ZHIHJvb3QgZWxlbWVudCB3aXRoIHZpZXdib3ggZG9lcyBu
b3QgbWF0Y2ggZGltZW5zaW9ucyBvZiBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA4MWRiNjM2Li41ZmJlMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMzksMTQg
KzEwMzksMjQgQEAgc3RhdGljIGJvb2wgdmFsaWRGbG93TmFtZShjb25zdCBTdHJpbmcmIGZsb3dO
YW1lKQogCiBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gRG9jdW1lbnQ6OndlYmtpdEdldEZs
b3dCeU5hbWUoY29uc3QgU3RyaW5nJiBmbG93TmFtZSkKIHsKLSAgICBpZiAoIWNzc1JlZ2lvbnNF
bmFibGVkKCkgfHwgZmxvd05hbWUuaXNFbXB0eSgpIHx8ICF2YWxpZEZsb3dOYW1lKGZsb3dOYW1l
KSB8fCAhcmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHdlYmtpdEdl
dEZsb3dCeU5hbWUoZmxvd05hbWUsIENoZWNrRmxvd05hbWVGb3JJbnZhbGlkVmFsdWVzKTsKK30K
IAotICAgIC8vIE1ha2UgYSBzbG93ZXIgY2hlY2sgZm9yIGludmFsaWQgZmxvdyBuYW1lCi0gICAg
Q1NTUGFyc2VyIHAodHJ1ZSk7Ci0gICAgaWYgKCFwLnBhcnNlRmxvd1RocmVhZChmbG93TmFtZSwg
dGhpcykpCitQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gRG9jdW1lbnQ6OndlYmtpdEdldEZs
b3dCeU5hbWUoY29uc3QgU3RyaW5nJiBmbG93TmFtZSwgRmxvd05hbWVDaGVjayBmbG93TmFtZUNo
ZWNrKQoreworICAgIGlmICghY3NzUmVnaW9uc0VuYWJsZWQoKSB8fCAhcmVuZGVyZXIoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAoZmxvd05hbWVDaGVjayA9PSBDaGVja0Zsb3dOYW1l
Rm9ySW52YWxpZFZhbHVlcykgeworICAgICAgICBpZiAoZmxvd05hbWUuaXNFbXB0eSgpIHx8ICF2
YWxpZEZsb3dOYW1lKGZsb3dOYW1lKSkKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAg
IC8vIE1ha2UgYSBzbG93ZXIgY2hlY2sgZm9yIGludmFsaWQgZmxvdyBuYW1lCisgICAgICAgIENT
U1BhcnNlciBwYXJzZXIodHJ1ZSk7CisgICAgICAgIGlmICghcGFyc2VyLnBhcnNlRmxvd1RocmVh
ZChmbG93TmFtZSwgdGhpcykpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKICAgICBp
ZiAoUmVuZGVyVmlldyogdmlldyA9IHJlbmRlcmVyKCktPnZpZXcoKSkKICAgICAgICAgcmV0dXJu
IHZpZXctPmVuc3VyZVJlbmRlckZsb3dUaHJlYWRXaXRoTmFtZShmbG93TmFtZSktPmVuc3VyZU5h
bWVkRmxvdygpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBjYzgxYjMy
Li43YWM3YmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzUyLDcgKzM1MiwxMiBAQCBwdWJs
aWM6CiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKICAgICBib29sIGNzc1JlZ2lvbnNFbmFi
bGVkKCkgY29uc3Q7CisgICAgZW51bSBGbG93TmFtZUNoZWNrIHsKKyAgICAgICAgQ2hlY2tGbG93
TmFtZUZvckludmFsaWRWYWx1ZXMsCisgICAgICAgIERvTm90Q2hlY2tGbG93TmFtZUZvckludmFs
aWRWYWx1ZXMKKyAgICB9OwogICAgIFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiB3ZWJraXRH
ZXRGbG93QnlOYW1lKGNvbnN0IFN0cmluZyYpOworICAgIFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRG
bG93PiB3ZWJraXRHZXRGbG93QnlOYW1lKGNvbnN0IFN0cmluZyYsIEZsb3dOYW1lQ2hlY2spOwog
CiAgICAgYm9vbCByZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCBmN2I2Njk3Li45MjBkYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC02Niw4ICs2Niw5IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorI2luY2x1ZGUg
IldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIK
ICNpbmNsdWRlICJYTUxOU05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgpAQCAtOTc5LDYgKzk4MCwxNSBAQCB2b2lkIEVsZW1lbnQ6OmRldGFj
aCgpCiB7CiAgICAgUmVuZGVyV2lkZ2V0OjpzdXNwZW5kV2lkZ2V0SGllcmFyY2h5VXBkYXRlcygp
OwogCisgICAgaWYgKGRvY3VtZW50KCktPmNzc1JlZ2lvbnNFbmFibGVkKCkpIHsKKyAgICAgICAg
UmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyZXIoKSA/IHJlbmRlcmVyKCktPnN0eWxlKCkgOiBj
b21wdXRlZFN0eWxlKCk7CisgICAgICAgIGlmIChzdHlsZSAmJiAhc3R5bGUtPmZsb3dUaHJlYWQo
KS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJLaXROYW1lZEZsb3c+IG5hbWVk
RmxvdyA9IGRvY3VtZW50KCktPndlYmtpdEdldEZsb3dCeU5hbWUoc3R5bGUtPmZsb3dUaHJlYWQo
KSwgRG9jdW1lbnQ6OkRvTm90Q2hlY2tGbG93TmFtZUZvckludmFsaWRWYWx1ZXMpOworICAgICAg
ICAgICAgaWYgKG5hbWVkRmxvdykKKyAgICAgICAgICAgICAgICBuYW1lZEZsb3ctPnVucmVnaXN0
ZXJDb250ZW50Tm9kZSh0aGlzKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGNhbmNlbEZvY3Vz
QXBwZWFyYW5jZVVwZGF0ZSgpOwogICAgIGlmIChoYXNSYXJlRGF0YSgpKQogICAgICAgICByYXJl
RGF0YSgpLT5yZXNldENvbXB1dGVkU3R5bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDkzZjMxNjYuLjUyNWUxMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAi
U2hhZG93VHJlZS5oIgorI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvdy5oIgogCiAjaWYgRU5BQkxF
KFNWRykKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtMzI3LDYgKzMyOCw3IEBAIHZvaWQgTm9k
ZVJlbmRlcmluZ0NvbnRleHQ6Om1vdmVUb0Zsb3dUaHJlYWRJZk5lZWRlZCgpCiAgICAgbV9mbG93
VGhyZWFkID0gbV9zdHlsZS0+Zmxvd1RocmVhZCgpOwogICAgIEFTU0VSVChtX25vZGUtPmRvY3Vt
ZW50KCktPnJlbmRlclZpZXcoKSk7CiAgICAgbV9wYXJlbnRGbG93UmVuZGVyZXIgPSBtX25vZGUt
PmRvY3VtZW50KCktPnJlbmRlclZpZXcoKS0+ZW5zdXJlUmVuZGVyRmxvd1RocmVhZFdpdGhOYW1l
KG1fZmxvd1RocmVhZCk7CisgICAgbV9wYXJlbnRGbG93UmVuZGVyZXItPmVuc3VyZU5hbWVkRmxv
dygpLT5yZWdpc3RlckNvbnRlbnROb2RlKG1fbm9kZSk7CiB9CiAKIE5vZGVSZW5kZXJlckZhY3Rv
cnk6Ok5vZGVSZW5kZXJlckZhY3RvcnkoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktp
dE5hbWVkRmxvdy5jcHAKaW5kZXggMTI5OWI3Yy4uMzJhNDk3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE5hbWVkRmxvdy5jcHAKQEAgLTMwLDcgKzMwLDEwIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93LmgiCiAKKyNpbmNsdWRlICJOb2RlLmgiCisj
aW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCisjaW5j
bHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw1
ICs1MiwzOCBAQCBib29sIFdlYktpdE5hbWVkRmxvdzo6b3ZlcmZsb3coKSBjb25zdAogICAgIHJl
dHVybiBtX3BhcmVudEZsb3dUaHJlYWQtPm92ZXJmbG93KCk7CiB9CiAKK1Bhc3NSZWZQdHI8Tm9k
ZUxpc3Q+IFdlYktpdE5hbWVkRmxvdzo6Y29udGVudE5vZGVzKCkgY29uc3QKK3sKKyAgICBtX3Bh
cmVudEZsb3dUaHJlYWQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOworCisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IGNvbnRlbnROb2RlczsKKyAg
ICBmb3IgKE5hbWVkRmxvd0NvbnRlbnROb2Rlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2NvbnRl
bnROb2Rlcy5iZWdpbigpOyBpdCAhPSBtX2NvbnRlbnROb2Rlcy5lbmQoKTsgKytpdCkgeworICAg
ICAgICBOb2RlKiBub2RlID0gY29uc3RfY2FzdDxOb2RlKj4oKml0KTsKKyAgICAgICAgQVNTRVJU
KG5vZGUtPmNvbXB1dGVkU3R5bGUoKS0+Zmxvd1RocmVhZCgpID09IG1fcGFyZW50Rmxvd1RocmVh
ZC0+Zmxvd1RocmVhZCgpKTsKKyAgICAgICAgY29udGVudE5vZGVzLmFwcGVuZChub2RlKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gU3RhdGljTm9kZUxpc3Q6OmFkb3B0KGNvbnRlbnROb2Rlcyk7Cit9
CisKKy8vIFRoZSBjb250ZW50IG5vZGVzIGxpc3QgY29udGFpbnMgdGhvc2Ugbm9kZXMgd2l0aCAt
d2Via2l0LWZsb3ctaW50bzogZmxvdy4KKy8vIEFuIGVsZW1lbnQgd2l0aCBkaXNwbGF5Om5vbmUg
c2hvdWxkIGFsc28gYmUgbGlzdGVkIGFtb25nIHRob3NlIG5vZGVzLgorLy8gVGhlIGxpc3Qgb2Yg
bm9kZXMgaXMgb3JkZXJlci4KK3ZvaWQgV2ViS2l0TmFtZWRGbG93OjpyZWdpc3RlckNvbnRlbnRO
b2RlKE5vZGUqIGNvbnRlbnROb2RlKQoreworICAgIEFTU0VSVChjb250ZW50Tm9kZSAmJiBjb250
ZW50Tm9kZS0+aXNFbGVtZW50Tm9kZSgpKTsKKworICAgIC8vIEZpbmQgdGhlIGZpcnN0IGNvbnRl
bnQgbm9kZSBmb2xsb3dpbmcgdGhlIG5ldyBjb250ZW50IG5vZGUuCisgICAgZm9yIChOYW1lZEZs
b3dDb250ZW50Tm9kZXM6Oml0ZXJhdG9yIGl0ID0gbV9jb250ZW50Tm9kZXMuYmVnaW4oKTsgaXQg
IT0gbV9jb250ZW50Tm9kZXMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9ICpp
dDsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQgcG9zaXRpb24gPSBjb250ZW50Tm9kZS0+Y29tcGFy
ZURvY3VtZW50UG9zaXRpb24obm9kZSk7CisgICAgICAgIGlmIChwb3NpdGlvbiAmIE5vZGU6OkRP
Q1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORykgeworICAgICAgICAgICAgbV9jb250ZW50Tm9kZXMu
aW5zZXJ0QmVmb3JlKG5vZGUsIGNvbnRlbnROb2RlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBtX2NvbnRlbnROb2Rlcy5hZGQoY29udGVudE5vZGUpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJLaXROYW1lZEZsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cu
aAppbmRleCBmNzZmMTIwLi5kZDMzYjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
V2ViS2l0TmFtZWRGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxv
dy5oCkBAIC0zMCwxMSArMzAsMTQgQEAKICNpZm5kZWYgV2ViS2l0TmFtZWRGbG93X2gKICNkZWZp
bmUgV2ViS2l0TmFtZWRGbG93X2gKIAorI2luY2x1ZGUgPE5vZGUuaD4KKyNpbmNsdWRlIDx3dGYv
TGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBOb2RlTGlzdDsKIGNs
YXNzIFJlbmRlckZsb3dUaHJlYWQ7CiAKIGNsYXNzIFdlYktpdE5hbWVkRmxvdyA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYktpdE5hbWVkRmxvdz4gewpAQCAtNDcsMTEgKzUwLDE4IEBAIHB1YmxpYzoK
ICAgICB+V2ViS2l0TmFtZWRGbG93KCk7CiAKICAgICBib29sIG92ZXJmbG93KCkgY29uc3Q7Cisg
ICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gY29udGVudE5vZGVzKCkgY29uc3Q7CisKKyAgICB2b2lk
IHJlZ2lzdGVyQ29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUpOworICAgIHZvaWQgdW5yZWdp
c3RlckNvbnRlbnROb2RlKE5vZGUqIGNvbnRlbnROb2RlKSB7IG1fY29udGVudE5vZGVzLnJlbW92
ZShjb250ZW50Tm9kZSk7IH0KIAogcHJpdmF0ZToKICAgICBXZWJLaXROYW1lZEZsb3coUmVuZGVy
Rmxvd1RocmVhZCopOwogCiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9wYXJlbnRGbG93VGhyZWFk
OworCisgICAgdHlwZWRlZiBMaXN0SGFzaFNldDxOb2RlKj4gTmFtZWRGbG93Q29udGVudE5vZGVz
OworICAgIE5hbWVkRmxvd0NvbnRlbnROb2RlcyBtX2NvbnRlbnROb2RlczsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKaW5kZXggMjYxZDQ0NC4uMTdhNDRjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKQEAgLTMyLDYgKzMyLDcgQEAg
bW9kdWxlIGNvcmUgewogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogICAgIF0gV2ViS2l0
TmFtZWRGbG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3ZlcmZsb3c7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBjb250ZW50Tm9kZXM7CiAgICAg
fTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133747</attachid>
            <date>2012-03-26 01:29:49 -0700</date>
            <delta_ts>2012-04-11 09:31:46 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>80134-4.patch</filename>
            <type>text/plain</type>
            <size>26349</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YjJlMmE3Li45MGMyNjEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMt
MjYgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbDog
QWRkZWQuCisKIDIwMTItMDMtMjUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBTa2lwIG5ldyBmYWlsaW5n
IHRlc3RzLCBkZWNyZWFzZSB0ZXN0IGNvdmVyYWdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9k
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmODQ3
YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctY29udGVudC1ub2Rlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorVGVz
dCBmb3IgODAxMzQ6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmNvbnRlbnROb2Rl
cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBuYW1lZEZsb3dDb250ZW50
Tm9kZXMgaXMgbm9uLW51bGwuCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2Rlcy5sZW5ndGggaXMg
MAorUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXMgaW5zdGFuY2VvZiBOb2RlTGlzdCBpcyB0cnVl
CitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczIubGVuZ3RoIGlzIDAKK1BBU1MgbmFtZWRGbG93
Q29udGVudE5vZGVzMy5sZW5ndGggaXMgMQorUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXMzLml0
ZW0oMCkuaWQgaXMgImFydGljbGUiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczQubGVuZ3Ro
IGlzIDEKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzNC5pdGVtKDApLmlkIGlzICJhcnRpY2xl
IgorUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXM1Lmxlbmd0aCBpcyAyCitQQVNTIG5hbWVkRmxv
d0NvbnRlbnROb2RlczUuaXRlbSgwKS5pZCBpcyAiYXJ0aWNsZTIiCitQQVNTIG5hbWVkRmxvd0Nv
bnRlbnROb2RlczUuaXRlbSgxKS5pZCBpcyAiYXJ0aWNsZSIKK1BBU1MgbmFtZWRGbG93Q29udGVu
dE5vZGVzNi5sZW5ndGggaXMgMgorUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXM3Lmxlbmd0aCBp
cyAyCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczgubGVuZ3RoIGlzIDMKK1BBU1MgbmFtZWRG
bG93Q29udGVudE5vZGVzOS5sZW5ndGggaXMgMworUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXM5
Lml0ZW0oMCkuaWQgaXMgImFydGljbGUyIgorUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXM5Lml0
ZW0oMSkuaWQgaXMgInNwYW4xIgorUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXM5Lml0ZW0oMiku
aWQgaXMgImFydGljbGUiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczEwLmxlbmd0aCBpcyAz
CitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczEwLml0ZW0oMCkuaWQgaXMgImFydGljbGUiCitQ
QVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczExLmxlbmd0aCBpcyA1CitQQVNTIG5hbWVkRmxvd0Nv
bnRlbnROb2RlczEyLmxlbmd0aCBpcyAxCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczEyLml0
ZW0oMCkuaWQgaXMgImFydGljbGUiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczEwLmxlbmd0
aCBpcyAwCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczExLmxlbmd0aCBpcyAwCitQQVNTIG5h
bWVkRmxvd0NvbnRlbnROb2RlczEyLmxlbmd0aCBpcyAxCitQQVNTIG5hbWVkRmxvd0NvbnRlbnRO
b2RlczEyLml0ZW0oMCkuaWQgaXMgImFydGljbGUiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2Rl
czEzLmxlbmd0aCBpcyAwCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczE0Lmxlbmd0aCBpcyAw
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRl
bnQtbm9kZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1jb250ZW50LW5vZGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MWYxNjNmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLmh0bWwKQEAgLTAsMCArMSwxMzggQEAKKzwhZG9j
dHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
dHlsZT4KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgd2lk
dGg6IDI1MHB4OyBoZWlnaHQ6IDE1MHB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFk
PgorICAgIDxib2R5PgorICAgICAgICA8IS0tCisgICAgICAgIDEuIFRoZSBjb250ZW50IG5vZGVz
IGNvbGxlY3Rpb24gZm9yIGEgbmFtZWQgZmxvdyAnZmxvdycgY29udGFpbnMgb25seSB0aG9zZSBl
bGVtZW50cyB0aGF0IGhhdmUKKyAgICAgICAgdGhlIHN0eWxlIHByb3BlcnR5IC13ZWJraXQtZmxv
dy1pbnRvIHNldCB0byAnZmxvdycuCisgICAgICAgIDIuIElmIGFuIGVsZW1lbnQgaGFzIGFuIGFu
Y2VzdG9yIHdpdGggLXdlYmtpdC1mbG93LWludG8gPSAnZmxvdycgYnV0IGRvZXMgbm90IGhhdmUg
aXRzICctd2Via2l0LWZsb3ctaW50bycKKyAgICAgICAgc2V0IHRvICdmbG93JyB3aWxsIG5vdCBi
ZSBsaXN0ZWQgYW1vbmcgdGhlIGNvbnRlbnQgbm9kZXMgZm9yIG5hbWVkIGZsb3cgJ2Zsb3cnLgor
ICAgICAgICAzLiBFbGVtZW50cyB3aXRoICctd2Via2l0LWZsb3ctaW50bycgc2V0IHRvICdmbG93
JyBhbmQgJ2Rpc3BsYXk6bm9uZScgc2hvdWxkIGJlIGxpc3RlZCBhbW9uZyB0aGUgY29udGVudCBu
b2RlcworICAgICAgICBmb3IgbmFtZWQgZmxvdyBvYmplY3QgJ2Zsb3cnLgorICAgICAgICA0LiBU
aGUgY29sbGVjdGlvbiBvZiBub2RlcyBpcyByZXR1cm5lZCBpbiBkb2N1bWVudCBvcmRlci4KKyAg
ICAgICAgLS0+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgODAx
MzQ6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmNvbnRlbnROb2RlcyIpOworCisg
ICAgICAgICAgICAvLyBGaXJzdCB0aW1lIGFzayBmb3IgYSBuYW1lZCBmbG93IG9iamVjdCwgdGhl
IGNvbnRlbnROb2RlcyBzaG91bGQgYmUgZW1wdHkuCisgICAgICAgICAgICB2YXIgbmFtZWRGbG93
Q29udGVudE5vZGVzID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRl
bnROb2RlczsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgibmFtZWRGbG93Q29udGVudE5v
ZGVzIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9k
ZXMubGVuZ3RoIiwgMCk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoIm5hbWVkRmxvd0NvbnRl
bnROb2RlcyBpbnN0YW5jZW9mIE5vZGVMaXN0Iik7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbiBl
bGVtZW50IHRoYXQgd291bGQgYmUgY29sbGVjdGVkIGJ5IHRoZSBuYW1lZCBmbG93IGJ1dCBkbyBu
b3QgYWRkIGl0IHRvIHRoZSBET00sIHRoZSBjb250ZW50Tm9kZXMgc2hvdWxkIGJlIGVtcHR5Lgor
ICAgICAgICAgICAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgICAgIGFydGljbGUuaWQgPSAiYXJ0aWNsZSI7CisgICAgICAgICAgICBhcnRpY2xl
LnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZsb3ciOworICAgICAgICAgICAgdmFyIG5hbWVkRmxv
d0NvbnRlbnROb2RlczIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29u
dGVudE5vZGVzOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29udGVu
dE5vZGVzMi5sZW5ndGgiLCAwKTsKKworICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBhYm92ZSBl
bGVtZW50IHRvIHRoZSBET00uIEl0IHdpbGwgYmUgY29sbGVjdGVkIGJ5IHRoZSBmbG93LCB0aGVy
ZWZvcmUgdGhlIGNvbnRlbnROb2RlcyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQuCisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFydGljbGUpOworICAgICAgICAgICAgdmFyIG5h
bWVkRmxvd0NvbnRlbnROb2RlczMgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93
IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93
Q29udGVudE5vZGVzMy5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibmFtZWRGbG93Q29udGVudE5vZGVzMy5pdGVtKDApLmlkIiwgImFydGljbGUiKTsKKwor
ICAgICAgICAgICAgLy8gQXBwZW5kIGEgY2hpbGQgZWxlbWVudCB0byB0aGUgYXJ0aWNsZSBhYm92
ZSBidXQgZG8gbm90IHNldCBpdHMgc3R5bGUgdG8gZmxvdyBpbnRvICdmbG93Jy4KKyAgICAgICAg
ICAgIC8vIFRoZSBjb250ZW50Tm9kZXMgc2hvdWxkIHN0aWxsIGhhdmUgMSBlbGVtZW50LgorICAg
ICAgICAgICAgdmFyIHBOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAg
ICAgICAgcE5vZGUuaWQgPSAicDEiOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZChwTm9kZSk7CisgICAgICAgICAgICB2YXIgbmFtZWRG
bG93Q29udGVudE5vZGVzNCA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5j
b250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250
ZW50Tm9kZXM0Lmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJuYW1lZEZsb3dDb250ZW50Tm9kZXM0Lml0ZW0oMCkuaWQiLCAiYXJ0aWNsZSIpOworCisgICAg
ICAgICAgICAvLyBBZGQgYW5vdGhlciBlbGVtZW50IGRpcmVjdGx5IHRvIHRoZSBmbG93IGFuZCBz
ZXQgaXRzICdkaXNwbGF5JyBwcm9wZXJ0eSB0byAnbm9uZScsIGl0IHNob3VsZCBiZSBwYXJ0IG9m
IHRoZSBmbG93LgorICAgICAgICAgICAgdmFyIGFydGljbGUyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgICAgICAgICBhcnRpY2xlMi5pZCA9ICJhcnRpY2xlMiI7CisgICAg
ICAgICAgICBhcnRpY2xlMi5zdHlsZS53ZWJraXRGbG93SW50byA9ICJmbG93IjsKKyAgICAgICAg
ICAgIGFydGljbGUyLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5Lmluc2VydEJlZm9yZShhcnRpY2xlMiwgYXJ0aWNsZSk7CisKKyAgICAgICAgICAgIHZh
ciBuYW1lZEZsb3dDb250ZW50Tm9kZXM1ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgi
ZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oIm5hbWVk
Rmxvd0NvbnRlbnROb2RlczUubGVuZ3RoIiwgMik7CisJCQlzaG91bGRCZUVxdWFsVG9TdHJpbmco
Im5hbWVkRmxvd0NvbnRlbnROb2RlczUuaXRlbSgwKS5pZCIsICJhcnRpY2xlMiIpOworCQkJc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dDb250ZW50Tm9kZXM1Lml0ZW0oMSkuaWQiLCAi
YXJ0aWNsZSIpOworCisgICAgICAgICAgICAvLyBBZGRpbmcgYSByZWdpb24gZWxlbWVudCB0byBm
bG93IGNvbnRlbnQgaW50byBzaG91bGQgbm90IGluZmx1ZW5jZSB0aGUgY29udGVudCBub2RlcyBj
b2xsZWN0aW9uLgorICAgICAgICAgICAgdmFyIHJlZ2lvbk5vZGUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbk5vZGUuaWQgPSAicmVnaW9uIjsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uTm9kZSk7CisgICAgICAg
ICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzNiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dC
eU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCJuYW1lZEZsb3dDb250ZW50Tm9kZXM2Lmxlbmd0aCIsIDIpOworCisgICAgICAgICAgICAvLyBD
aGFuZ2UgZGlzcGxheTpub25lIGZvciB0aGUgJ2FydGljbGUyJyBlbGVtZW50LCB0aGUgbGlzdCBv
ZiBjb250ZW50Tm9kZXMgc2hvdWxkIHN0YXkgdGhlIHNhbWUKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAg
ICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczcgPSBkb2N1bWVudC53ZWJraXRHZXRG
bG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgc2hvdWxkRXZhbHVh
dGVUbygibmFtZWRGbG93Q29udGVudE5vZGVzNy5sZW5ndGgiLCAyKTsKKworICAgICAgICAgICAg
Ly8gQWRkIGEgcCBhbmQgYSBzcGFuIHVuZGVyIHAuIE1ha2UgdGhlIHNwYW4gZGlyZWN0bHkgY29s
bGVjdGVkIGJ5IHRoZSBmbG93LiBUaGUgY29udGVudE5vZGVzIGNvbGxlY3Rpb24gc2hvdWxkIGhh
dmUgMyBlbGVtZW50cy4KKyAgICAgICAgICAgIHBOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgicCIpOworICAgICAgICAgICAgcE5vZGUuaWQgPSAicDIiOworICAgICAgICAgICAgdmFyIHNw
YW5Ob2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgc3Bh
bk5vZGUuaWQgPSAic3BhbjEiOworICAgICAgICAgICAgc3Bhbk5vZGUuc3R5bGUud2Via2l0Rmxv
d0ludG8gPSAiZmxvdyI7CisgICAgICAgICAgICBwTm9kZS5hcHBlbmRDaGlsZChzcGFuTm9kZSk7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRD
aGlsZChwTm9kZSk7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXM4ID0g
ZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAg
ICAgICAgIHNob3VsZEV2YWx1YXRlVG8oIm5hbWVkRmxvd0NvbnRlbnROb2RlczgubGVuZ3RoIiwg
Myk7CisKKyAgICAgICAgICAgIC8vIENoYW5nZSBkaXNwbGF5IG9mIGFydGljbGUgbm9kZSB0byBu
b25lLCB0aGUgY29sbGVjdGlvbiBzaG91bGQgc3RpbGwgaGF2ZSAzIGVsZW1lbnRzLgorICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS5kaXNwbGF5ID0g
Im5vbmUiOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczkgPSBkb2N1bWVu
dC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAg
c2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29udGVudE5vZGVzOS5sZW5ndGgiLCAzKTsKKwkJ
CXNob3VsZEJlRXF1YWxUb1N0cmluZygibmFtZWRGbG93Q29udGVudE5vZGVzOS5pdGVtKDApLmlk
IiwgImFydGljbGUyIik7CisJCQlzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm5hbWVkRmxvd0NvbnRl
bnROb2RlczkuaXRlbSgxKS5pZCIsICJzcGFuMSIpOworCQkJc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJuYW1lZEZsb3dDb250ZW50Tm9kZXM5Lml0ZW0oMikuaWQiLCAiYXJ0aWNsZSIpOworCisgICAg
ICAgICAgICAvLyBUYWtlICdhcnRpY2xlJyBub2RlIGZyb20gbGFzdCBwb3NpdGlvbiBhbmQgaW5z
ZXJ0IGl0IGJlZm9yZSAnYXJ0aWNsZTInCisgICAgICAgICAgICBhcnRpY2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImFydGljbGUiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5z
ZXJ0QmVmb3JlKGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYXJ0aWNsZSksIGFydGljbGUyKTsK
KyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMxMCA9IGRvY3VtZW50LndlYmtp
dEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRF
dmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMC5sZW5ndGgiLCAzKTsKKwkJCXNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibmFtZWRGbG93Q29udGVudE5vZGVzMTAuaXRlbSgwKS5pZCIsICJh
cnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIENsb25lICdhcnRpY2xlMicgaW5jbHVkaW5nIGl0
cyBjaGlsZHJlbi4KKyAgICAgICAgICAgIHZhciBhcnRpY2xlMkNsb25lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImFydGljbGUyIikuY2xvbmVOb2RlKHRydWUpOworICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChhcnRpY2xlMkNsb25lKTsKKyAgICAgICAgICAgIHZhciBu
YW1lZEZsb3dDb250ZW50Tm9kZXMxMSA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZs
b3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZs
b3dDb250ZW50Tm9kZXMxMS5sZW5ndGgiLCA1KTsKKyAgICAgICAgICAgIC8vIFJlbW92ZSBhcnRp
Y2xlMiBub2RlcyBmcm9tIGRvY3VtZW50LCB0aGV5IHNob3VsZCBiZSByZW1vdmVkIGZyb20gZmxv
dy4KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYXJ0aWNsZTIpOworICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhcnRpY2xlMkNsb25lKTsKKyAgICAg
ICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMxMiA9IGRvY3VtZW50LndlYmtpdEdldEZs
b3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0
ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMi5sZW5ndGgiLCAxKTsKKwkJCXNob3VsZEJlRXF1
YWxUb1N0cmluZygibmFtZWRGbG93Q29udGVudE5vZGVzMTIuaXRlbSgwKS5pZCIsICJhcnRpY2xl
Iik7CisKKyAgICAgICAgICAgIC8vIEdldCB0aGUgY29udGVudCBub2RlcyBmb3IgYW5vdGhlciBm
bG93LCBmbG93Mi4KKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMxMCA9IGRv
Y3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3cyIikuY29udGVudE5vZGVzOworICAgICAg
ICAgICAgc2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29udGVudE5vZGVzMTAubGVuZ3RoIiwg
IjAiKTsKKworICAgICAgICAgICAgLy8gTW92ZSB0aGUgY29udGVudCBub2RlICdhcnRpY2xlJyBm
cm9tIG5hbWVkIGZsb3cgJ2Zsb3cnIHRvIG5hbWVkIGZsb3cgJ2Zsb3cyJworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS53ZWJraXRGbG93SW50byA9
ICJmbG93MiI7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzMTEgPSBkb2N1
bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAg
ICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczEyID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5
TmFtZSgiZmxvdzIiKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMS5sZW5ndGgiLCAiMCIpOworICAgICAgICAgICAgc2hv
dWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29udGVudE5vZGVzMTIubGVuZ3RoIiwgIjEiKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibmFtZWRGbG93Q29udGVudE5vZGVzMTIu
aXRlbSgwKS5pZCIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgY29u
dGVudCBub2RlIGZyb20gZG9tLCBjb250ZW50IG5vZGVzIGZvciBib3RoICdmbG93JyBhbmQgJ2Zs
b3cyJyBzaG91bGQgYmUgZW1wdHkKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKSk7CisgICAgICAgICAgICB2YXIg
bmFtZWRGbG93Q29udGVudE5vZGVzMTMgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJm
bG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2Rl
czE0ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKS5jb250ZW50Tm9kZXM7
CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMy5s
ZW5ndGgiLCAiMCIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29u
dGVudE5vZGVzMTQubGVuZ3RoIiwgIjAiKTsKKworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAzZmQ1OTM1Li40NWU5NmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTIt
MDMtMjYgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NT
U1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzIGF0dHJpYnV0ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbmFtZWQgZmxv
dyBjb250ZW50IG5vZGVzIGNvbGxlY3Rpb24gY29udGFpbnMgdGhvc2Ugbm9kZXMgd2l0aCB3ZWJr
aXRGbG93SW50byBwcm9wZXJ0eSBzZXQgdG8gJ2Zsb3cnLgorICAgICAgICBJbiB0aGUgbGlzdCwg
dGhlIG5vZGVzIGFyZSBwbGFjZWQgaW4gZG9jdW1lbnQgb3JkZXIuIE5vZGVzIHdpdGggZGlzcGxh
eTpub25lIGFyZSBhbHNvIHBhcnQgb2YgdGhlIGxpc3QuCisgICAgICAgIFRoZSBsaXN0IG9mIG5v
ZGVzIGlzIHJldHVybmVkIGFzIGEgc3RhdGljIG5vZGUgbGlzdC4KKworICAgICAgICBUaGUgY29u
dGVudCBub2RlcyBhcmUgc3RvcmVkIGluIFJlbmRlckZsb3dUaHJlYWQuIFRoZSBjb250ZW50IG5v
ZGVzIGFyZSBhZGRlZCB0byB0aGUgbGlzdCBpbiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bW92ZVRv
Rmxvd1RocmVhZElmTmVlZGVkCisgICAgICAgIGFuZCByZW1vdmVkIGZyb20gdGhlIGxpc3QgaW4g
RWxlbWVudDo6ZGV0YWNoLiBXaGVuIGFuIGVsZW1lbnQgLXdlYmtpdC1mbG93LWludG8gcHJvcGVy
dHkgaXMgY2hhbmdlZCwgdGhlIGVsZW1lbnQgaXMgZGV0YWNoZWQgYW5kIGF0dGFjaGVkLgorICAg
ICAgICBJIGhhdmUgYWxzbyBhZGRlZCBhIGJpdCBpbiBOb2RlRmxhZ3MgdG8gbWFyayB0aGF0IGFu
IGVsZW1lbnQgaXMgcGFydCBvZiBhIG5hbWVkIGZsb3cgKGFuZCB0aGUgY29ycmVzcG9uZGluZyBp
bk5hbWVkRmxvdy9zZXRJbk5hbWVkRmxvdy9jbGVhckluTmFtZWRGbG93IGZ1bmN0aW9ucykuCisK
KyAgICAgICAgVGVzdDogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9k
ZXMuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp3ZWJraXRHZXRGbG93QnlOYW1lKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
Ojppbk5hbWVkRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRJbk5hbWVkRmxvdyk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpjbGVhckluTmFtZWRGbG93KToKKyAgICAgICAgKE5v
ZGUpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6bW92ZVRvRmxvd1RocmVhZElmTmVlZGVkKToK
KyAgICAgICAgKiBkb20vV2ViS2l0TmFtZWRGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdE5hbWVkRmxvdzo6Y29udGVudE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuaDoKKyAgICAgICAgKFdlYktpdE5hbWVkRmxvdyk6Cisg
ICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5pZGw6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGbG93VGhyZWFkOjpyZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50
Tm9kZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZXc6OnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojp1bnJlZ2lzdGVy
TmFtZWRGbG93Q29udGVudE5vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6
CisgICAgICAgIChSZW5kZXJWaWV3KToKKwogMjAxMi0wMy0yNSAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgdXNlIENTU1J1bGVMaXN0IGZvciBjaGls
ZCBydWxlIG93bmVyc2hpcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMWQ4MWQxNS4uMTIw
ZTFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDM4LDE0ICsxMDM4LDI0IEBAIHN0
YXRpYyBib29sIHZhbGlkRmxvd05hbWUoY29uc3QgU3RyaW5nJiBmbG93TmFtZSkKIAogUGFzc1Jl
ZlB0cjxXZWJLaXROYW1lZEZsb3c+IERvY3VtZW50Ojp3ZWJraXRHZXRGbG93QnlOYW1lKGNvbnN0
IFN0cmluZyYgZmxvd05hbWUpCiB7Ci0gICAgaWYgKCFjc3NSZWdpb25zRW5hYmxlZCgpIHx8IGZs
b3dOYW1lLmlzRW1wdHkoKSB8fCAhdmFsaWRGbG93TmFtZShmbG93TmFtZSkgfHwgIXJlbmRlcmVy
KCkpCi0gICAgICAgIHJldHVybiAwOworICAgIHJldHVybiB3ZWJraXRHZXRGbG93QnlOYW1lKGZs
b3dOYW1lLCBDaGVja0Zsb3dOYW1lRm9ySW52YWxpZFZhbHVlcyk7Cit9CiAKLSAgICAvLyBNYWtl
IGEgc2xvd2VyIGNoZWNrIGZvciBpbnZhbGlkIGZsb3cgbmFtZQotICAgIENTU1BhcnNlciBwKHRy
dWUpOwotICAgIGlmICghcC5wYXJzZUZsb3dUaHJlYWQoZmxvd05hbWUsIHRoaXMpKQorUGFzc1Jl
ZlB0cjxXZWJLaXROYW1lZEZsb3c+IERvY3VtZW50Ojp3ZWJraXRHZXRGbG93QnlOYW1lKGNvbnN0
IFN0cmluZyYgZmxvd05hbWUsIEZsb3dOYW1lQ2hlY2sgZmxvd05hbWVDaGVjaykKK3sKKyAgICBp
ZiAoIWNzc1JlZ2lvbnNFbmFibGVkKCkgfHwgIXJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiAw
OwogCisgICAgaWYgKGZsb3dOYW1lQ2hlY2sgPT0gQ2hlY2tGbG93TmFtZUZvckludmFsaWRWYWx1
ZXMpIHsKKyAgICAgICAgaWYgKGZsb3dOYW1lLmlzRW1wdHkoKSB8fCAhdmFsaWRGbG93TmFtZShm
bG93TmFtZSkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICAvLyBNYWtlIGEgc2xv
d2VyIGNoZWNrIGZvciBpbnZhbGlkIGZsb3cgbmFtZQorICAgICAgICBDU1NQYXJzZXIgcGFyc2Vy
KHRydWUpOworICAgICAgICBpZiAoIXBhcnNlci5wYXJzZUZsb3dUaHJlYWQoZmxvd05hbWUsIHRo
aXMpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgaWYgKFJlbmRlclZpZXcq
IHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCkpCiAgICAgICAgIHJldHVybiB2aWV3LT5lbnN1cmVS
ZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUoZmxvd05hbWUpLT5lbnN1cmVOYW1lZEZsb3coKTsKICAg
ICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggY2M4MWIzMi4uN2FjN2JkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTM1Miw3ICszNTIsMTIgQEAgcHVibGljOgogICAgIFBhc3NS
ZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpOwogCiAgICAgYm9vbCBjc3NSZWdpb25zRW5hYmxlZCgpIGNvbnN0Owor
ICAgIGVudW0gRmxvd05hbWVDaGVjayB7CisgICAgICAgIENoZWNrRmxvd05hbWVGb3JJbnZhbGlk
VmFsdWVzLAorICAgICAgICBEb05vdENoZWNrRmxvd05hbWVGb3JJbnZhbGlkVmFsdWVzCisgICAg
fTsKICAgICBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gd2Via2l0R2V0Rmxvd0J5TmFtZShj
b25zdCBTdHJpbmcmKTsKKyAgICBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gd2Via2l0R2V0
Rmxvd0J5TmFtZShjb25zdCBTdHJpbmcmLCBGbG93TmFtZUNoZWNrKTsKIAogICAgIGJvb2wgcmVn
aW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5k
ZXggMDFjZmIwMC4uM2EyMDc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjYsOCArNjYs
OSBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVk
ZSAiVGV4dEl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKKyNpbmNsdWRlICJXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmgiCisjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93LmgiCiAjaW5jbHVkZSAiWE1M
TlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcu
aCIKQEAgLTk3OSw2ICs5ODAsMTEgQEAgdm9pZCBFbGVtZW50OjpkZXRhY2goKQogewogICAgIFJl
bmRlcldpZGdldDo6c3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXMoKTsKIAorICAgIGlmIChk
b2N1bWVudCgpLT5jc3NSZWdpb25zRW5hYmxlZCgpICYmIGluTmFtZWRGbG93KCkpIHsKKyAgICAg
ICAgaWYgKGRvY3VtZW50KCktPnJlbmRlcmVyKCkgJiYgZG9jdW1lbnQoKS0+cmVuZGVyZXIoKS0+
dmlldygpKQorICAgICAgICAgICAgZG9jdW1lbnQoKS0+cmVuZGVyZXIoKS0+dmlldygpLT51bnJl
Z2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUodGhpcyk7CisgICAgfQorCiAgICAgY2FuY2VsRm9j
dXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJh
cmVEYXRhKCktPnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMTk2NjFmNi4u
ZTVjMDFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yMTYsNiArMjE2LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc0NoYXJhY3RlckRhdGFOb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBib29sIGlzRG9jdW1lbnROb2RlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1NoYWRvd1Jvb3Qo
KSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzU2hhZG93Um9vdEZsYWcpOyB9CisgICAgYm9vbCBp
bk5hbWVkRmxvdygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSW5OYW1lZEZsb3dGbGFnKTsgfQog
CiAgICAgTm9kZSogc2hhZG93QW5jZXN0b3JOb2RlKCkgY29uc3Q7CiAgICAgLy8gUmV0dXJucyAw
LCBhIFNoYWRvd1Jvb3QsIG9yIGEgbGVnYWN5IHNoYWRvdyByb290LgpAQCAtMzI1LDYgKzMyNiw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzTGluaygpIHsgc2V0RmxhZyhJc0xpbmtGbGFnKTsg
fQogICAgIHZvaWQgY2xlYXJJc0xpbmsoKSB7IGNsZWFyRmxhZyhJc0xpbmtGbGFnKTsgfQogCisg
ICAgdm9pZCBzZXRJbk5hbWVkRmxvdygpIHsgc2V0RmxhZyhJbk5hbWVkRmxvd0ZsYWcpOyB9Cisg
ICAgdm9pZCBjbGVhckluTmFtZWRGbG93KCkgeyBjbGVhckZsYWcoSW5OYW1lZEZsb3dGbGFnKTsg
fQorCiAgICAgZW51bSBTaG91bGRTZXRBdHRhY2hlZCB7CiAgICAgICAgIFNldEF0dGFjaGVkLAog
ICAgICAgICBEb05vdFNldEF0dGFjaGVkCkBAIC02NjgsOSArNjcyLDEwIEBAIHByaXZhdGU6CiAj
ZWxzZQogICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hl
ZEZsYWcgfCBJc1N0eWxlQXR0cmlidXRlVmFsaWRGbGFnCiAjZW5kaWYKKyAgICAgICAgLCBJbk5h
bWVkRmxvd0ZsYWcgPSAxIDw8IDMwCiAgICAgfTsKIAotICAgIC8vIDMgYml0cyByZW1haW5pbmcK
KyAgICAvLyAyIGJpdHMgcmVtYWluaW5nCiAKICAgICBib29sIGdldEZsYWcoTm9kZUZsYWdzIG1h
c2spIGNvbnN0IHsgcmV0dXJuIG1fbm9kZUZsYWdzICYgbWFzazsgfQogICAgIHZvaWQgc2V0Rmxh
Zyhib29sIGYsIE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IG1fbm9kZUZsYWdzID0gKG1fbm9kZUZs
YWdzICYgfm1hc2spIHwgKC0oaW50MzJfdClmICYgbWFzayk7IH0gCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA5M2YzMTY2Li40MGQzMTAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgog
I2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKKyNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIKIAog
I2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTMyNyw2ICszMjgsNyBA
QCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0Ojptb3ZlVG9GbG93VGhyZWFkSWZOZWVkZWQoKQog
ICAgIG1fZmxvd1RocmVhZCA9IG1fc3R5bGUtPmZsb3dUaHJlYWQoKTsKICAgICBBU1NFUlQobV9u
b2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkpOwogICAgIG1fcGFyZW50Rmxvd1JlbmRlcmVy
ID0gbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCktPmVuc3VyZVJlbmRlckZsb3dUaHJl
YWRXaXRoTmFtZShtX2Zsb3dUaHJlYWQpOworICAgIG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVy
VmlldygpLT5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKG1fbm9kZSwgbV9wYXJlbnRGbG93
UmVuZGVyZXIpOwogfQogCiBOb2RlUmVuZGVyZXJGYWN0b3J5OjpOb2RlUmVuZGVyZXJGYWN0b3J5
KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRG
bG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCmluZGV4IDli
MjI1MTQuLjcxOTI0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1l
ZEZsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCkBA
IC03NCw1ICs3NCwxOSBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBXZWJLaXROYW1lZEZsb3c6Omdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlKE5vZGUqIGNvbnRlbnROb2RlKQogICAgIHJldHVybiBTdGF0
aWNOb2RlTGlzdDo6YWRvcHQocmVnaW9uTm9kZXMpOwogfQogCitQYXNzUmVmUHRyPE5vZGVMaXN0
PiBXZWJLaXROYW1lZEZsb3c6OmNvbnRlbnROb2RlcygpIGNvbnN0Cit7CisgICAgbV9wYXJlbnRG
bG93VGhyZWFkLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBjb250ZW50Tm9kZXM7CisgICAgZm9y
IChOYW1lZEZsb3dDb250ZW50Tm9kZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYXJlbnRGbG93
VGhyZWFkLT5jb250ZW50Tm9kZXMoKS5iZWdpbigpOyBpdCAhPSBtX3BhcmVudEZsb3dUaHJlYWQt
PmNvbnRlbnROb2RlcygpLmVuZCgpOyArK2l0KSB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBjb25z
dF9jYXN0PE5vZGUqPigqaXQpOworICAgICAgICBBU1NFUlQobm9kZS0+Y29tcHV0ZWRTdHlsZSgp
LT5mbG93VGhyZWFkKCkgPT0gbV9wYXJlbnRGbG93VGhyZWFkLT5mbG93VGhyZWFkKCkpOworICAg
ICAgICBjb250ZW50Tm9kZXMuYXBwZW5kKG5vZGUpOworICAgIH0KKworICAgIHJldHVybiBTdGF0
aWNOb2RlTGlzdDo6YWRvcHQoY29udGVudE5vZGVzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKaW5kZXggYjZmNThjMS4uZDlh
MDEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaApAQCAtMzAsMTIgKzMwLDEz
IEBACiAjaWZuZGVmIFdlYktpdE5hbWVkRmxvd19oCiAjZGVmaW5lIFdlYktpdE5hbWVkRmxvd19o
CiAKKyNpbmNsdWRlIDxOb2RlLmg+CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTm9kZTsKIGNsYXNzIE5vZGVMaXN0OwogY2xhc3MgUmVu
ZGVyRmxvd1RocmVhZDsKIApAQCAtNTAsNiArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG92
ZXJmbG93KCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0UmVnaW9uc0J5Q29u
dGVudE5vZGUoTm9kZSopOworICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGNvbnRlbnROb2Rlcygp
IGNvbnN0OwogCiBwcml2YXRlOgogICAgIFdlYktpdE5hbWVkRmxvdyhSZW5kZXJGbG93VGhyZWFk
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsCmluZGV4IDEwYTRkOWUuLjBk
MzI0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsCkBAIC0zMyw2ICsz
Myw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICBdIFdlYktpdE5hbWVkRmxvdyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG92ZXJmbG93OwogICAgICAgICBOb2RlTGlzdCBnZXRS
ZWdpb25zQnlDb250ZW50Tm9kZShpbiBOb2RlIGNvbnRlbnROb2RlKTsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIE5vZGVMaXN0IGNvbnRlbnROb2RlczsKICAgICB9OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggMWM4OTJjOC4u
YzVkZDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmNwcApAQCAtMTAxNyw0ICsxMDE3LDM2IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6b2JqZWN0
SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCisvLyBUaGUgY29udGVudCBub2RlcyBsaXN0IGNvbnRhaW5zIHRo
b3NlIG5vZGVzIHdpdGggLXdlYmtpdC1mbG93LWludG86IGZsb3cuCisvLyBBbiBlbGVtZW50IHdp
dGggZGlzcGxheTpub25lIHNob3VsZCBhbHNvIGJlIGxpc3RlZCBhbW9uZyB0aG9zZSBub2Rlcy4K
Ky8vIFRoZSBsaXN0IG9mIG5vZGVzIGlzIG9yZGVyZWQuCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6
OnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUpCit7CisgICAg
QVNTRVJUKGNvbnRlbnROb2RlICYmIGNvbnRlbnROb2RlLT5pc0VsZW1lbnROb2RlKCkpOworCisg
ICAgY29udGVudE5vZGUtPnNldEluTmFtZWRGbG93KCk7CisKKyAgICAvLyBGaW5kIHRoZSBmaXJz
dCBjb250ZW50IG5vZGUgZm9sbG93aW5nIHRoZSBuZXcgY29udGVudCBub2RlLgorICAgIGZvciAo
TmFtZWRGbG93Q29udGVudE5vZGVzOjppdGVyYXRvciBpdCA9IG1fY29udGVudE5vZGVzLmJlZ2lu
KCk7IGl0ICE9IG1fY29udGVudE5vZGVzLmVuZCgpOyArK2l0KSB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSAqaXQ7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IHBvc2l0aW9uID0gY29udGVudE5vZGUt
PmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG5vZGUpOworICAgICAgICBpZiAocG9zaXRpb24gJiBO
b2RlOjpET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcpIHsKKyAgICAgICAgICAgIG1fY29udGVu
dE5vZGVzLmluc2VydEJlZm9yZShub2RlLCBjb250ZW50Tm9kZSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9CisgICAgbV9jb250ZW50Tm9kZXMuYWRkKGNvbnRlbnROb2Rl
KTsKK30KKwordm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVu
dE5vZGUoTm9kZSogY29udGVudE5vZGUpCit7CisgICAgQVNTRVJUKGNvbnRlbnROb2RlICYmIGNv
bnRlbnROb2RlLT5pc0VsZW1lbnROb2RlKCkpOworICAgIEFTU0VSVChtX2NvbnRlbnROb2Rlcy5j
b250YWlucyhjb250ZW50Tm9kZSkpOworICAgIEFTU0VSVChjb250ZW50Tm9kZS0+aW5OYW1lZEZs
b3coKSk7CisKKyAgICBjb250ZW50Tm9kZS0+Y2xlYXJJbk5hbWVkRmxvdygpOworICAgIG1fY29u
dGVudE5vZGVzLnJlbW92ZShjb250ZW50Tm9kZSk7CisKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXgg
YmQzNmYyMi4uOWQyOTc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oCkBAIC00MCw2ICs0MCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgTm9kZTsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIGNs
YXNzIFJlbmRlclJlZ2lvbjsKQEAgLTQ4LDYgKzQ5LDcgQEAgY2xhc3MgV2ViS2l0TmFtZWRGbG93
OwogdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5kZXJGbG93VGhyZWFkKj4gUmVuZGVyRmxvd1RocmVh
ZExpc3Q7CiB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PFJlbmRlckZsb3dUaHJlYWQqPiBSZW5kZXJG
bG93VGhyZWFkQ291bnRlZFNldDsKIHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVuZGVyUmVnaW9uKj4g
UmVuZGVyUmVnaW9uTGlzdDsKK3R5cGVkZWYgTGlzdEhhc2hTZXQ8Tm9kZSo+IE5hbWVkRmxvd0Nv
bnRlbnROb2RlczsKIAogLy8gUmVuZGVyRmxvd1RocmVhZCBpcyB1c2VkIHRvIGNvbGxlY3QgYWxs
IHRoZSByZW5kZXIgb2JqZWN0cyB0aGF0IHBhcnRpY2lwYXRlIGluIGEKIC8vIGZsb3cgdGhyZWFk
LiBJdCB3aWxsIGFsc28gaGVscCBpbiBkb2luZyB0aGUgbGF5b3V0LiBIb3dldmVyLCBpdCB3aWxs
IG5vdCByZW5kZXIKQEAgLTEzMyw2ICsxMzUsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJSZWdpb24qIG9sZFN0YXJ0UmVnaW9u
ID0gMCwgY29uc3QgUmVuZGVyUmVnaW9uKiBvbGRFbmRSZWdpb24gPSAwLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJSZWdpb24qIG5ld1N0YXJ0UmVn
aW9uID0gMCwgY29uc3QgUmVuZGVyUmVnaW9uKiBuZXdFbmRSZWdpb24gPSAwKTsKICAgICBXZWJL
aXROYW1lZEZsb3cqIGVuc3VyZU5hbWVkRmxvdygpOworICAgIHZvaWQgcmVnaXN0ZXJOYW1lZEZs
b3dDb250ZW50Tm9kZShOb2RlKik7CisgICAgdm9pZCB1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVu
dE5vZGUoTm9kZSopOworICAgIGNvbnN0IE5hbWVkRmxvd0NvbnRlbnROb2RlcyYgY29udGVudE5v
ZGVzKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50Tm9kZXM7IH0KKyAgICBib29sIGhhc0NvbnRl
bnROb2RlKE5vZGUqIGNvbnRlbnROb2RlKSBjb25zdCB7IEFTU0VSVChjb250ZW50Tm9kZSk7IHJl
dHVybiBtX2NvbnRlbnROb2Rlcy5jb250YWlucyhjb250ZW50Tm9kZSk7IH0KICAgICB2b2lkIGNv
bXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRn
ZSk7CiAKICAgICBib29sIG92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdzsgfQpA
QCAtMTU1LDYgKzE2MSw4IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5k
ZXJPYmplY3QqPiBGbG93VGhyZWFkQ2hpbGRMaXN0OwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3Qg
bV9mbG93VGhyZWFkQ2hpbGRMaXN0OwogCisgICAgTmFtZWRGbG93Q29udGVudE5vZGVzIG1fY29u
dGVudE5vZGVzOworCiAgICAgQXRvbWljU3RyaW5nIG1fZmxvd1RocmVhZDsKICAgICBSZW5kZXJS
ZWdpb25MaXN0IG1fcmVnaW9uTGlzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCmluZGV4IGNlYjRjM2EuLmUxM2I1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKQEAgLTk0MSw2ICs5NDEsMjcgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlv
dXRSZW5kZXJGbG93VGhyZWFkcygpCiAgICAgfQogfQogCit2b2lkIFJlbmRlclZpZXc6OnJlZ2lz
dGVyTmFtZWRGbG93Q29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUsIFJlbmRlckZsb3dUaHJl
YWQqIGZsb3cpCit7CisgICAgQVNTRVJUKGNvbnRlbnROb2RlICYmIGNvbnRlbnROb2RlLT5pc0Vs
ZW1lbnROb2RlKCkpOworICAgIEFTU0VSVChmbG93KTsKKyAgICBBU1NFUlQoIW1fbWFwTmFtZWRG
bG93Q29udGVudE5vZGVzLmNvbnRhaW5zKGNvbnRlbnROb2RlKSk7CisgICAgQVNTRVJUKCFmbG93
LT5oYXNDb250ZW50Tm9kZShjb250ZW50Tm9kZSkpOworICAgIG1fbWFwTmFtZWRGbG93Q29udGVu
dE5vZGVzLmFkZChjb250ZW50Tm9kZSwgZmxvdyk7CisgICAgZmxvdy0+cmVnaXN0ZXJOYW1lZEZs
b3dDb250ZW50Tm9kZShjb250ZW50Tm9kZSk7Cit9CisKK3ZvaWQgUmVuZGVyVmlldzo6dW5yZWdp
c3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKE5vZGUqIGNvbnRlbnROb2RlKQoreworICAgIEFTU0VS
VChjb250ZW50Tm9kZSAmJiBjb250ZW50Tm9kZS0+aXNFbGVtZW50Tm9kZSgpKTsKKyAgICBIYXNo
TWFwPE5vZGUqLCBSZW5kZXJGbG93VGhyZWFkKj46Oml0ZXJhdG9yIGl0ID0gbV9tYXBOYW1lZEZs
b3dDb250ZW50Tm9kZXMuZmluZChjb250ZW50Tm9kZSk7CisgICAgQVNTRVJUKGl0ICE9IG1fbWFw
TmFtZWRGbG93Q29udGVudE5vZGVzLmVuZCgpKTsKKyAgICBBU1NFUlQoaXQtPnNlY29uZCk7Cisg
ICAgQVNTRVJUKGl0LT5zZWNvbmQtPmhhc0NvbnRlbnROb2RlKGNvbnRlbnROb2RlKSk7CisgICAg
aXQtPnNlY29uZC0+dW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKGNvbnRlbnROb2RlKTsK
KyAgICBtX21hcE5hbWVkRmxvd0NvbnRlbnROb2Rlcy5yZW1vdmUoY29udGVudE5vZGUpOworfQor
CiBSZW5kZXJCbG9jazo6SW50ZXJ2YWxBcmVuYSogUmVuZGVyVmlldzo6aW50ZXJ2YWxBcmVuYSgp
CiB7CiAgICAgaWYgKCFtX2ludGVydmFsQXJlbmEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuaAppbmRleCA2NjAwMDk0Li44Y2Y3NDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgKQEAgLTE4Myw2ICsxODMsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzZXRO
ZWVkc0xheW91dCh0cnVlKTsKICAgICB9CiAgICAgY29uc3QgUmVuZGVyRmxvd1RocmVhZExpc3Qq
IHJlbmRlckZsb3dUaHJlYWRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJGbG93VGhyZWFk
TGlzdC5nZXQoKTsgfQorICAgIHZvaWQgcmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShOb2Rl
KiwgUmVuZGVyRmxvd1RocmVhZCopOworICAgIHZvaWQgdW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRl
bnROb2RlKE5vZGUqKTsKIAogICAgIFJlbmRlckZsb3dUaHJlYWQqIGN1cnJlbnRSZW5kZXJGbG93
VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UmVuZGVyRmxvd1RocmVhZDsgfQogICAg
IHZvaWQgc2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQoUmVuZGVyRmxvd1RocmVhZCogZmxvd1Ro
cmVhZCkgeyBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFkID0gZmxvd1RocmVhZDsgfQpAQCAtMjc3
LDYgKzI3OSw4IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFJlbmRlckxheWVyQ29tcG9zaXRvcj4g
bV9jb21wb3NpdG9yOwogI2VuZGlmCiAgICAgT3duUHRyPFJlbmRlckZsb3dUaHJlYWRMaXN0PiBt
X3JlbmRlckZsb3dUaHJlYWRMaXN0OworICAgIC8vIG1hcHMgYSBjb250ZW50IG5vZGUgdG8gaXRz
IHJlbmRlciBmbG93IHRocmVhZC4KKyAgICBIYXNoTWFwPE5vZGUqLCBSZW5kZXJGbG93VGhyZWFk
Kj4gbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXM7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9j
dXJyZW50UmVuZGVyRmxvd1RocmVhZDsKICAgICBSZWZQdHI8SW50ZXJ2YWxBcmVuYT4gbV9pbnRl
cnZhbEFyZW5hOwogfTsK
</data>
<flag name="review"
          id="137826"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136677</attachid>
            <date>2012-04-11 09:31:46 -0700</date>
            <delta_ts>2012-04-13 17:36:30 -0700</delta_ts>
            <desc>Patch 5</desc>
            <filename>80134.5</filename>
            <type>text/plain</type>
            <size>26300</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ODFhYzFlLi45NTQ5YmQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDQt
MTEgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5vZGVzIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbDog
QWRkZWQuCisKIDIwMTItMDQtMTEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIEdUSyBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctY29udGVudC1ub2Rlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ct
Y29udGVudC1ub2Rlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNWY4NDdjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDM4IEBACitUZXN0IGZvciA4MDEzNDogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6
Y29udGVudE5vZGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hbWVk
Rmxvd0NvbnRlbnROb2RlcyBpcyBub24tbnVsbC4KK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVz
Lmxlbmd0aCBpcyAwCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlcyBpbnN0YW5jZW9mIE5vZGVM
aXN0IGlzIHRydWUKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMi5sZW5ndGggaXMgMAorUEFT
UyBuYW1lZEZsb3dDb250ZW50Tm9kZXMzLmxlbmd0aCBpcyAxCitQQVNTIG5hbWVkRmxvd0NvbnRl
bnROb2RlczMuaXRlbSgwKS5pZCBpcyAiYXJ0aWNsZSIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5v
ZGVzNC5sZW5ndGggaXMgMQorUEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXM0Lml0ZW0oMCkuaWQg
aXMgImFydGljbGUiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2RlczUubGVuZ3RoIGlzIDIKK1BB
U1MgbmFtZWRGbG93Q29udGVudE5vZGVzNS5pdGVtKDApLmlkIGlzICJhcnRpY2xlMiIKK1BBU1Mg
bmFtZWRGbG93Q29udGVudE5vZGVzNS5pdGVtKDEpLmlkIGlzICJhcnRpY2xlIgorUEFTUyBuYW1l
ZEZsb3dDb250ZW50Tm9kZXM2Lmxlbmd0aCBpcyAyCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2Rl
czcubGVuZ3RoIGlzIDIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzOC5sZW5ndGggaXMgMwor
UEFTUyBuYW1lZEZsb3dDb250ZW50Tm9kZXM5Lmxlbmd0aCBpcyAzCitQQVNTIG5hbWVkRmxvd0Nv
bnRlbnROb2RlczkuaXRlbSgwKS5pZCBpcyAiYXJ0aWNsZTIiCitQQVNTIG5hbWVkRmxvd0NvbnRl
bnROb2RlczkuaXRlbSgxKS5pZCBpcyAic3BhbjEiCitQQVNTIG5hbWVkRmxvd0NvbnRlbnROb2Rl
czkuaXRlbSgyKS5pZCBpcyAiYXJ0aWNsZSIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTAu
bGVuZ3RoIGlzIDMKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTAuaXRlbSgwKS5pZCBpcyAi
YXJ0aWNsZSIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTEubGVuZ3RoIGlzIDUKK1BBU1Mg
bmFtZWRGbG93Q29udGVudE5vZGVzMTIubGVuZ3RoIGlzIDEKK1BBU1MgbmFtZWRGbG93Q29udGVu
dE5vZGVzMTIuaXRlbSgwKS5pZCBpcyAiYXJ0aWNsZSIKK1BBU1MgbmFtZWRGbG93Q29udGVudE5v
ZGVzMTAubGVuZ3RoIGlzIDAKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTEubGVuZ3RoIGlz
IDAKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTIubGVuZ3RoIGlzIDEKK1BBU1MgbmFtZWRG
bG93Q29udGVudE5vZGVzMTIuaXRlbSgwKS5pZCBpcyAiYXJ0aWNsZSIKK1BBU1MgbmFtZWRGbG93
Q29udGVudE5vZGVzMTMubGVuZ3RoIGlzIDAKK1BBU1MgbmFtZWRGbG93Q29udGVudE5vZGVzMTQu
bGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctY29udGVudC1ub2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4xZjE2M2ZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbApAQCAtMCwwICsxLDEz
OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9t
OiBmbG93OyB3aWR0aDogMjUwcHg7IGhlaWdodDogMTUwcHg7IH0KKyAgICAgICAgPC9zdHlsZT4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDwhLS0KKyAgICAgICAgMS4gVGhlIGNv
bnRlbnQgbm9kZXMgY29sbGVjdGlvbiBmb3IgYSBuYW1lZCBmbG93ICdmbG93JyBjb250YWlucyBv
bmx5IHRob3NlIGVsZW1lbnRzIHRoYXQgaGF2ZQorICAgICAgICB0aGUgc3R5bGUgcHJvcGVydHkg
LXdlYmtpdC1mbG93LWludG8gc2V0IHRvICdmbG93Jy4KKyAgICAgICAgMi4gSWYgYW4gZWxlbWVu
dCBoYXMgYW4gYW5jZXN0b3Igd2l0aCAtd2Via2l0LWZsb3ctaW50byA9ICdmbG93JyBidXQgZG9l
cyBub3QgaGF2ZSBpdHMgJy13ZWJraXQtZmxvdy1pbnRvJworICAgICAgICBzZXQgdG8gJ2Zsb3cn
IHdpbGwgbm90IGJlIGxpc3RlZCBhbW9uZyB0aGUgY29udGVudCBub2RlcyBmb3IgbmFtZWQgZmxv
dyAnZmxvdycuCisgICAgICAgIDMuIEVsZW1lbnRzIHdpdGggJy13ZWJraXQtZmxvdy1pbnRvJyBz
ZXQgdG8gJ2Zsb3cnIGFuZCAnZGlzcGxheTpub25lJyBzaG91bGQgYmUgbGlzdGVkIGFtb25nIHRo
ZSBjb250ZW50IG5vZGVzCisgICAgICAgIGZvciBuYW1lZCBmbG93IG9iamVjdCAnZmxvdycuCisg
ICAgICAgIDQuIFRoZSBjb2xsZWN0aW9uIG9mIG5vZGVzIGlzIHJldHVybmVkIGluIGRvY3VtZW50
IG9yZGVyLgorICAgICAgICAtLT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJU
ZXN0IGZvciA4MDEzNDogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Y29udGVudE5v
ZGVzIik7CisKKyAgICAgICAgICAgIC8vIEZpcnN0IHRpbWUgYXNrIGZvciBhIG5hbWVkIGZsb3cg
b2JqZWN0LCB0aGUgY29udGVudE5vZGVzIHNob3VsZCBiZSBlbXB0eS4KKyAgICAgICAgICAgIHZh
ciBuYW1lZEZsb3dDb250ZW50Tm9kZXMgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJm
bG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJuYW1lZEZs
b3dDb250ZW50Tm9kZXMiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oIm5hbWVkRmxv
d0NvbnRlbnROb2Rlcy5sZW5ndGgiLCAwKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgibmFt
ZWRGbG93Q29udGVudE5vZGVzIGluc3RhbmNlb2YgTm9kZUxpc3QiKTsKKworICAgICAgICAgICAg
Ly8gQWRkIGFuIGVsZW1lbnQgdGhhdCB3b3VsZCBiZSBjb2xsZWN0ZWQgYnkgdGhlIG5hbWVkIGZs
b3cgYnV0IGRvIG5vdCBhZGQgaXQgdG8gdGhlIERPTSwgdGhlIGNvbnRlbnROb2RlcyBzaG91bGQg
YmUgZW1wdHkuCisgICAgICAgICAgICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworICAgICAgICAgICAgYXJ0aWNsZS5pZCA9ICJhcnRpY2xlIjsKKyAgICAgICAg
ICAgIGFydGljbGUuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAiZmxvdyI7CisgICAgICAgICAgICB2
YXIgbmFtZWRGbG93Q29udGVudE5vZGVzMiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUo
ImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1l
ZEZsb3dDb250ZW50Tm9kZXMyLmxlbmd0aCIsIDApOworCisgICAgICAgICAgICAvLyBBcHBlbmQg
dGhlIGFib3ZlIGVsZW1lbnQgdG8gdGhlIERPTS4gSXQgd2lsbCBiZSBjb2xsZWN0ZWQgYnkgdGhl
IGZsb3csIHRoZXJlZm9yZSB0aGUgY29udGVudE5vZGVzIHNob3VsZCBoYXZlIDEgZWxlbWVudC4K
KyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYXJ0aWNsZSk7CisgICAgICAg
ICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzMyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dC
eU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCJuYW1lZEZsb3dDb250ZW50Tm9kZXMzLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMzLml0ZW0oMCkuaWQiLCAiYXJ0
aWNsZSIpOworCisgICAgICAgICAgICAvLyBBcHBlbmQgYSBjaGlsZCBlbGVtZW50IHRvIHRoZSBh
cnRpY2xlIGFib3ZlIGJ1dCBkbyBub3Qgc2V0IGl0cyBzdHlsZSB0byBmbG93IGludG8gJ2Zsb3cn
LgorICAgICAgICAgICAgLy8gVGhlIGNvbnRlbnROb2RlcyBzaG91bGQgc3RpbGwgaGF2ZSAxIGVs
ZW1lbnQuCisgICAgICAgICAgICB2YXIgcE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJw
Iik7CisgICAgICAgICAgICBwTm9kZS5pZCA9ICJwMSI7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHBOb2RlKTsKKyAgICAgICAgICAg
IHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXM0ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFt
ZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oIm5h
bWVkRmxvd0NvbnRlbnROb2RlczQubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIm5hbWVkRmxvd0NvbnRlbnROb2RlczQuaXRlbSgwKS5pZCIsICJhcnRpY2xl
Iik7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIGVsZW1lbnQgZGlyZWN0bHkgdG8gdGhl
IGZsb3cgYW5kIHNldCBpdHMgJ2Rpc3BsYXknIHByb3BlcnR5IHRvICdub25lJywgaXQgc2hvdWxk
IGJlIHBhcnQgb2YgdGhlIGZsb3cuCisgICAgICAgICAgICB2YXIgYXJ0aWNsZTIgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIGFydGljbGUyLmlkID0gImFydGlj
bGUyIjsKKyAgICAgICAgICAgIGFydGljbGUyLnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZsb3ci
OworICAgICAgICAgICAgYXJ0aWNsZTIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGFydGljbGUyLCBhcnRpY2xlKTsKKworICAg
ICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczUgPSBkb2N1bWVudC53ZWJraXRHZXRG
bG93QnlOYW1lKCJmbG93IikuY29udGVudE5vZGVzOworICAgICAgICAgICAgc2hvdWxkRXZhbHVh
dGVUbygibmFtZWRGbG93Q29udGVudE5vZGVzNS5sZW5ndGgiLCAyKTsKKwkJCXNob3VsZEJlRXF1
YWxUb1N0cmluZygibmFtZWRGbG93Q29udGVudE5vZGVzNS5pdGVtKDApLmlkIiwgImFydGljbGUy
Iik7CisJCQlzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm5hbWVkRmxvd0NvbnRlbnROb2RlczUuaXRl
bSgxKS5pZCIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIEFkZGluZyBhIHJlZ2lvbiBl
bGVtZW50IHRvIGZsb3cgY29udGVudCBpbnRvIHNob3VsZCBub3QgaW5mbHVlbmNlIHRoZSBjb250
ZW50IG5vZGVzIGNvbGxlY3Rpb24uCisgICAgICAgICAgICB2YXIgcmVnaW9uTm9kZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcmVnaW9uTm9kZS5pZCA9ICJy
ZWdpb24iOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb25Ob2Rl
KTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXM2ID0gZG9jdW1lbnQud2Vi
a2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIHNob3Vs
ZEV2YWx1YXRlVG8oIm5hbWVkRmxvd0NvbnRlbnROb2RlczYubGVuZ3RoIiwgMik7CisKKyAgICAg
ICAgICAgIC8vIENoYW5nZSBkaXNwbGF5Om5vbmUgZm9yIHRoZSAnYXJ0aWNsZTInIGVsZW1lbnQs
IHRoZSBsaXN0IG9mIGNvbnRlbnROb2RlcyBzaG91bGQgc3RheSB0aGUgc2FtZQorICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUuZGlzcGxheSA9ICJi
bG9jayI7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzNyA9IGRvY3VtZW50
LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICBz
aG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXM3Lmxlbmd0aCIsIDIpOworCisg
ICAgICAgICAgICAvLyBBZGQgYSBwIGFuZCBhIHNwYW4gdW5kZXIgcC4gTWFrZSB0aGUgc3BhbiBk
aXJlY3RseSBjb2xsZWN0ZWQgYnkgdGhlIGZsb3cuIFRoZSBjb250ZW50Tm9kZXMgY29sbGVjdGlv
biBzaG91bGQgaGF2ZSAzIGVsZW1lbnRzLgorICAgICAgICAgICAgcE5vZGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgICAgICBwTm9kZS5pZCA9ICJwMiI7CisgICAgICAg
ICAgICB2YXIgc3Bhbk5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAg
ICAgICAgICBzcGFuTm9kZS5pZCA9ICJzcGFuMSI7CisgICAgICAgICAgICBzcGFuTm9kZS5zdHls
ZS53ZWJraXRGbG93SW50byA9ICJmbG93IjsKKyAgICAgICAgICAgIHBOb2RlLmFwcGVuZENoaWxk
KHNwYW5Ob2RlKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
MiIpLmFwcGVuZENoaWxkKHBOb2RlKTsKKworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRl
bnROb2RlczggPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93IikuY29udGVudE5v
ZGVzOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygibmFtZWRGbG93Q29udGVudE5vZGVz
OC5sZW5ndGgiLCAzKTsKKworICAgICAgICAgICAgLy8gQ2hhbmdlIGRpc3BsYXkgb2YgYXJ0aWNs
ZSBub2RlIHRvIG5vbmUsIHRoZSBjb2xsZWN0aW9uIHNob3VsZCBzdGlsbCBoYXZlIDMgZWxlbWVu
dHMuCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxl
LmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVz
OSA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7Cisg
ICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXM5Lmxlbmd0
aCIsIDMpOworCQkJc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dDb250ZW50Tm9kZXM5
Lml0ZW0oMCkuaWQiLCAiYXJ0aWNsZTIiKTsKKwkJCXNob3VsZEJlRXF1YWxUb1N0cmluZygibmFt
ZWRGbG93Q29udGVudE5vZGVzOS5pdGVtKDEpLmlkIiwgInNwYW4xIik7CisJCQlzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIm5hbWVkRmxvd0NvbnRlbnROb2RlczkuaXRlbSgyKS5pZCIsICJhcnRpY2xl
Iik7CisKKyAgICAgICAgICAgIC8vIFRha2UgJ2FydGljbGUnIG5vZGUgZnJvbSBsYXN0IHBvc2l0
aW9uIGFuZCBpbnNlcnQgaXQgYmVmb3JlICdhcnRpY2xlMicKKyAgICAgICAgICAgIGFydGljbGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhcnRpY2xlKSwg
YXJ0aWNsZTIpOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczEwID0gZG9j
dW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAg
ICAgIHNob3VsZEV2YWx1YXRlVG8oIm5hbWVkRmxvd0NvbnRlbnROb2RlczEwLmxlbmd0aCIsIDMp
OworCQkJc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMC5pdGVt
KDApLmlkIiwgImFydGljbGUiKTsKKworICAgICAgICAgICAgLy8gQ2xvbmUgJ2FydGljbGUyJyBp
bmNsdWRpbmcgaXRzIGNoaWxkcmVuLgorICAgICAgICAgICAgdmFyIGFydGljbGUyQ2xvbmUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5jbG9uZU5vZGUodHJ1ZSk7CisgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFydGljbGUyQ2xvbmUpOworICAgICAg
ICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczExID0gZG9jdW1lbnQud2Via2l0R2V0Rmxv
d0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRl
VG8oIm5hbWVkRmxvd0NvbnRlbnROb2RlczExLmxlbmd0aCIsIDUpOworICAgICAgICAgICAgLy8g
UmVtb3ZlIGFydGljbGUyIG5vZGVzIGZyb20gZG9jdW1lbnQsIHRoZXkgc2hvdWxkIGJlIHJlbW92
ZWQgZnJvbSBmbG93LgorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhcnRp
Y2xlMik7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFydGljbGUyQ2xv
bmUpOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnROb2RlczEyID0gZG9jdW1lbnQu
d2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIHNo
b3VsZEV2YWx1YXRlVG8oIm5hbWVkRmxvd0NvbnRlbnROb2RlczEyLmxlbmd0aCIsIDEpOworCQkJ
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMi5pdGVtKDApLmlk
IiwgImFydGljbGUiKTsKKworICAgICAgICAgICAgLy8gR2V0IHRoZSBjb250ZW50IG5vZGVzIGZv
ciBhbm90aGVyIGZsb3csIGZsb3cyLgorICAgICAgICAgICAgdmFyIG5hbWVkRmxvd0NvbnRlbnRO
b2RlczEwID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKS5jb250ZW50Tm9k
ZXM7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMx
MC5sZW5ndGgiLCAiMCIpOworCisgICAgICAgICAgICAvLyBNb3ZlIHRoZSBjb250ZW50IG5vZGUg
J2FydGljbGUnIGZyb20gbmFtZWQgZmxvdyAnZmxvdycgdG8gbmFtZWQgZmxvdyAnZmxvdzInCisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLndlYmtp
dEZsb3dJbnRvID0gImZsb3cyIjsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9k
ZXMxMSA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7
CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93Q29udGVudE5vZGVzMTIgPSBkb2N1bWVudC53ZWJr
aXRHZXRGbG93QnlOYW1lKCJmbG93MiIpLmNvbnRlbnROb2RlczsKKyAgICAgICAgICAgIHNob3Vs
ZEV2YWx1YXRlVG8oIm5hbWVkRmxvd0NvbnRlbnROb2RlczExLmxlbmd0aCIsICIwIik7CisgICAg
ICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJuYW1lZEZsb3dDb250ZW50Tm9kZXMxMi5sZW5ndGgi
LCAiMSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuYW1lZEZsb3dDb250
ZW50Tm9kZXMxMi5pdGVtKDApLmlkIiwgImFydGljbGUiKTsKKworICAgICAgICAgICAgLy8gUmVt
b3ZlIHRoZSBjb250ZW50IG5vZGUgZnJvbSBkb20sIGNvbnRlbnQgbm9kZXMgZm9yIGJvdGggJ2Zs
b3cnIGFuZCAnZmxvdzInIHNob3VsZCBiZSBlbXB0eQorICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpKTsKKyAgICAg
ICAgICAgIHZhciBuYW1lZEZsb3dDb250ZW50Tm9kZXMxMyA9IGRvY3VtZW50LndlYmtpdEdldEZs
b3dCeU5hbWUoImZsb3ciKS5jb250ZW50Tm9kZXM7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93
Q29udGVudE5vZGVzMTQgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIpLmNv
bnRlbnROb2RlczsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oIm5hbWVkRmxvd0NvbnRl
bnROb2RlczEzLmxlbmd0aCIsICIwIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJu
YW1lZEZsb3dDb250ZW50Tm9kZXMxNC5sZW5ndGgiLCAiMCIpOworCisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4i
OworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGQ2NGNiYjUuLjMxM2Y1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
NCBAQAorMjAxMi0wNC0xMSAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KKwor
ICAgICAgICBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93Ojpjb250ZW50Tm9kZXMgYXR0
cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDEzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBuYW1lZCBmbG93IGNvbnRlbnQgbm9kZXMgY29sbGVjdGlvbiBjb250YWlucyB0aG9zZSBub2Rl
cyB3aXRoIHdlYmtpdEZsb3dJbnRvIHByb3BlcnR5IHNldCB0byAnZmxvdycuCisgICAgICAgIElu
IHRoZSBsaXN0LCB0aGUgbm9kZXMgYXJlIHBsYWNlZCBpbiBkb2N1bWVudCBvcmRlci4gTm9kZXMg
d2l0aCBkaXNwbGF5Om5vbmUgYXJlIGFsc28gcGFydCBvZiB0aGUgbGlzdC4KKyAgICAgICAgVGhl
IGxpc3Qgb2Ygbm9kZXMgaXMgcmV0dXJuZWQgYXMgYSBzdGF0aWMgbm9kZSBsaXN0LgorCisgICAg
ICAgIFRoZSBjb250ZW50IG5vZGVzIGFyZSBzdG9yZWQgaW4gUmVuZGVyTmFtZWRGbG93VGhyZWFk
LiBUaGUgY29udGVudCBub2RlcyBhcmUgYWRkZWQgdG8gdGhlIGxpc3QgaW4gTm9kZVJlbmRlcmlu
Z0NvbnRleHQ6Om1vdmVUb0Zsb3dUaHJlYWRJZk5lZWRlZAorICAgICAgICBhbmQgcmVtb3ZlZCBm
cm9tIHRoZSBsaXN0IGluIEVsZW1lbnQ6OmRldGFjaC4gV2hlbiBhbiBlbGVtZW50IC13ZWJraXQt
Zmxvdy1pbnRvIHByb3BlcnR5IGlzIGNoYW5nZWQsIHRoZSBlbGVtZW50IGlzIGRldGFjaGVkIGFu
ZCBhdHRhY2hlZC4KKyAgICAgICAgSSBoYXZlIGFsc28gYWRkZWQgYSBiaXQgaW4gTm9kZUZsYWdz
IHRvIG1hcmsgdGhhdCBhbiBlbGVtZW50IGlzIHBhcnQgb2YgYSBuYW1lZCBmbG93IChhbmQgdGhl
IGNvcnJlc3BvbmRpbmcgaW5OYW1lZEZsb3cvc2V0SW5OYW1lZEZsb3cvY2xlYXJJbk5hbWVkRmxv
dyBmdW5jdGlvbnMpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQt
Zmxvdy1jb250ZW50LW5vZGVzLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0R2V0Rmxvd0J5TmFtZSk6CisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6aW5OYW1lZEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
c2V0SW5OYW1lZEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y2xlYXJJbk5hbWVkRmxv
dyk6CisgICAgICAgIChOb2RlKToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Om1vdmVUb0Zsb3dU
aHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXROYW1lZEZsb3c6OmNvbnRlbnROb2Rlcyk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBkb20vV2ViS2l0TmFtZWRGbG93Lmg6CisgICAgICAgIChXZWJL
aXROYW1lZEZsb3cpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsOgorICAgICAg
ICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGbG93VGhyZWFkQ29udHJvbGxlcjo6cmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVy
Ojp1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9G
bG93VGhyZWFkQ29udHJvbGxlci5oOgorICAgICAgICAoRmxvd1RocmVhZENvbnRyb2xsZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lz
dGVyTmFtZWRGbG93Q29udGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRG
bG93VGhyZWFkOjp1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUmVuZGVyTmFtZWRGbG93VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5h
bWVkRmxvd1RocmVhZDo6Y29udGVudE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5h
bWVkRmxvd1RocmVhZDo6aGFzQ29udGVudE5vZGUpOgorCiAyMDEyLTA0LTExICBBbmRyYXMgQmVj
c2kgIDxhbmRyYXMuYmVjc2lAbm9raWEuY29tPgogCiAgICAgICAgIEZpeCB0aGUgYnVpbGQgd2l0
aCBnY2MgNC43LjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGJiZTk0NDMuLjEzMTllNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA3NSwxNCArMTA3NSwyNCBAQCBzdGF0aWMg
Ym9vbCB2YWxpZEZsb3dOYW1lKGNvbnN0IFN0cmluZyYgZmxvd05hbWUpCiAKIFBhc3NSZWZQdHI8
V2ViS2l0TmFtZWRGbG93PiBEb2N1bWVudDo6d2Via2l0R2V0Rmxvd0J5TmFtZShjb25zdCBTdHJp
bmcmIGZsb3dOYW1lKQogewotICAgIGlmICghY3NzUmVnaW9uc0VuYWJsZWQoKSB8fCBmbG93TmFt
ZS5pc0VtcHR5KCkgfHwgIXZhbGlkRmxvd05hbWUoZmxvd05hbWUpIHx8ICFyZW5kZXJlcigpKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gd2Via2l0R2V0Rmxvd0J5TmFtZShmbG93TmFt
ZSwgQ2hlY2tGbG93TmFtZUZvckludmFsaWRWYWx1ZXMpOworfQogCi0gICAgLy8gTWFrZSBhIHNs
b3dlciBjaGVjayBmb3IgaW52YWxpZCBmbG93IG5hbWUKLSAgICBDU1NQYXJzZXIgcGFyc2VyKENT
U1N0cmljdE1vZGUpOwotICAgIGlmICghcGFyc2VyLnBhcnNlRmxvd1RocmVhZChmbG93TmFtZSwg
dGhpcykpCitQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gRG9jdW1lbnQ6OndlYmtpdEdldEZs
b3dCeU5hbWUoY29uc3QgU3RyaW5nJiBmbG93TmFtZSwgRmxvd05hbWVDaGVjayBmbG93TmFtZUNo
ZWNrKQoreworICAgIGlmICghY3NzUmVnaW9uc0VuYWJsZWQoKSB8fCAhcmVuZGVyZXIoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAoZmxvd05hbWVDaGVjayA9PSBDaGVja0Zsb3dOYW1l
Rm9ySW52YWxpZFZhbHVlcykgeworICAgICAgICBpZiAoZmxvd05hbWUuaXNFbXB0eSgpIHx8ICF2
YWxpZEZsb3dOYW1lKGZsb3dOYW1lKSkKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAg
IC8vIE1ha2UgYSBzbG93ZXIgY2hlY2sgZm9yIGludmFsaWQgZmxvdyBuYW1lLgorICAgICAgICBD
U1NQYXJzZXIgcGFyc2VyKENTU1N0cmljdE1vZGUpOworICAgICAgICBpZiAoIXBhcnNlci5wYXJz
ZUZsb3dUaHJlYWQoZmxvd05hbWUsIHRoaXMpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorCiAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCkpCiAgICAg
ICAgIHJldHVybiB2aWV3LT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5lbnN1cmVSZW5kZXJGbG93
VGhyZWFkV2l0aE5hbWUoZmxvd05hbWUpLT5lbnN1cmVOYW1lZEZsb3coKTsKICAgICByZXR1cm4g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZDY2MjQxYi4uM2FhNjIwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTM1MSw3ICszNTEsMTIgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpOwogCiAgICAgYm9vbCBjc3NSZWdpb25zRW5hYmxlZCgpIGNvbnN0OworICAgIGVudW0g
Rmxvd05hbWVDaGVjayB7CisgICAgICAgIENoZWNrRmxvd05hbWVGb3JJbnZhbGlkVmFsdWVzLAor
ICAgICAgICBEb05vdENoZWNrRmxvd05hbWVGb3JJbnZhbGlkVmFsdWVzCisgICAgfTsKICAgICBQ
YXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gd2Via2l0R2V0Rmxvd0J5TmFtZShjb25zdCBTdHJp
bmcmKTsKKyAgICBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gd2Via2l0R2V0Rmxvd0J5TmFt
ZShjb25zdCBTdHJpbmcmLCBGbG93TmFtZUNoZWNrKTsKIAogICAgIGJvb2wgcmVnaW9uQmFzZWRD
b2x1bW5zRW5hYmxlZCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggOWQ2NmMw
MS4uN2JhNTcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmxvd1RocmVhZENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtOTgxLDYgKzk4MiwxMSBAQCB2b2lkIEVsZW1lbnQ6
OmRldGFjaCgpCiB7CiAgICAgUmVuZGVyV2lkZ2V0OjpzdXNwZW5kV2lkZ2V0SGllcmFyY2h5VXBk
YXRlcygpOwogCisgICAgaWYgKGRvY3VtZW50KCktPmNzc1JlZ2lvbnNFbmFibGVkKCkgJiYgaW5O
YW1lZEZsb3coKSkgeworICAgICAgICBpZiAoZG9jdW1lbnQoKS0+cmVuZGVyZXIoKSAmJiBkb2N1
bWVudCgpLT5yZW5kZXJlcigpLT52aWV3KCkpCisgICAgICAgICAgICBkb2N1bWVudCgpLT5yZW5k
ZXJlcigpLT52aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPnVucmVnaXN0ZXJOYW1lZEZs
b3dDb250ZW50Tm9kZSh0aGlzKTsKKyAgICB9CisKICAgICBjYW5jZWxGb2N1c0FwcGVhcmFuY2VV
cGRhdGUoKTsKICAgICBpZiAoaGFzUmFyZURhdGEoKSkKICAgICAgICAgcmFyZURhdGEoKS0+cmVz
ZXRDb21wdXRlZFN0eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBkOGNlMmJlLi5hYjI2YmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
Q2hhcmFjdGVyRGF0YU5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNE
b2N1bWVudE5vZGUoKSBjb25zdDsKICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0
dXJuIGdldEZsYWcoSXNTaGFkb3dSb290RmxhZyk7IH0KKyAgICBib29sIGluTmFtZWRGbG93KCkg
Y29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJbk5hbWVkRmxvd0ZsYWcpOyB9CiAKICAgICBOb2RlKiBz
aGFkb3dBbmNlc3Rvck5vZGUoKSBjb25zdDsKICAgICAvLyBSZXR1cm5zIDAsIGEgU2hhZG93Um9v
dCwgb3IgYSBsZWdhY3kgc2hhZG93IHJvb3QuCkBAIC0zMjQsNiArMzI1LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0SXNMaW5rKCkgeyBzZXRGbGFnKElzTGlua0ZsYWcpOyB9CiAgICAgdm9pZCBj
bGVhcklzTGluaygpIHsgY2xlYXJGbGFnKElzTGlua0ZsYWcpOyB9CiAKKyAgICB2b2lkIHNldElu
TmFtZWRGbG93KCkgeyBzZXRGbGFnKEluTmFtZWRGbG93RmxhZyk7IH0KKyAgICB2b2lkIGNsZWFy
SW5OYW1lZEZsb3coKSB7IGNsZWFyRmxhZyhJbk5hbWVkRmxvd0ZsYWcpOyB9CisKICAgICBlbnVt
IFNob3VsZFNldEF0dGFjaGVkIHsKICAgICAgICAgU2V0QXR0YWNoZWQsCiAgICAgICAgIERvTm90
U2V0QXR0YWNoZWQKQEAgLTY2NSwxMCArNjY5LDExIEBAIHByaXZhdGU6CiAgICAgICAgIEF0dHJp
YnV0ZVN0eWxlRGlydHlGbGFnID0gMSA8PCAyNywKIAogI2lmIEVOQUJMRShTVkcpCi0gICAgICAg
IERlZmF1bHROb2RlRmxhZ3MgPSBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZyB8IElzU3R5
bGVBdHRyaWJ1dGVWYWxpZEZsYWcgfCBBcmVTVkdBdHRyaWJ1dGVzVmFsaWRGbGFnCisgICAgICAg
IERlZmF1bHROb2RlRmxhZ3MgPSBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZyB8IElzU3R5
bGVBdHRyaWJ1dGVWYWxpZEZsYWcgfCBBcmVTVkdBdHRyaWJ1dGVzVmFsaWRGbGFnLAogI2Vsc2UK
LSAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFn
IHwgSXNTdHlsZUF0dHJpYnV0ZVZhbGlkRmxhZworICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0g
SXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgfCBJc1N0eWxlQXR0cmlidXRlVmFsaWRGbGFn
LAogI2VuZGlmCisgICAgICAgIEluTmFtZWRGbG93RmxhZyA9IDEgPDwgMjkKICAgICB9OwogCiAg
ICAgLy8gMyBiaXRzIHJlbWFpbmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5n
Q29udGV4dC5jcHAKaW5kZXggMTUzN2RlNy4uNDFjNzdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zMjcsNyArMzI3LDkgQEAgdm9pZCBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6bW92ZVRvRmxvd1RocmVhZElmTmVlZGVkKCkKIAogICAgIG1fZmxv
d1RocmVhZCA9IG1fc3R5bGUtPmZsb3dUaHJlYWQoKTsKICAgICBBU1NFUlQobV9ub2RlLT5kb2N1
bWVudCgpLT5yZW5kZXJWaWV3KCkpOwotICAgIG1fcGFyZW50Rmxvd1JlbmRlcmVyID0gbV9ub2Rl
LT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmVuc3Vy
ZVJlbmRlckZsb3dUaHJlYWRXaXRoTmFtZShtX2Zsb3dUaHJlYWQpOworICAgIEZsb3dUaHJlYWRD
b250cm9sbGVyKiBmbG93VGhyZWFkQ29udHJvbGxlciA9IG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVu
ZGVyVmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpOworICAgIG1fcGFyZW50Rmxvd1JlbmRl
cmVyID0gZmxvd1RocmVhZENvbnRyb2xsZXItPmVuc3VyZVJlbmRlckZsb3dUaHJlYWRXaXRoTmFt
ZShtX2Zsb3dUaHJlYWQpOworICAgIGZsb3dUaHJlYWRDb250cm9sbGVyLT5yZWdpc3Rlck5hbWVk
Rmxvd0NvbnRlbnROb2RlKG1fbm9kZSwgbV9wYXJlbnRGbG93UmVuZGVyZXIpOwogfQogCiBOb2Rl
UmVuZGVyZXJGYWN0b3J5OjpOb2RlUmVuZGVyZXJGYWN0b3J5KE5vZGUqIG5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCmluZGV4IDg1Nzc2ODEuLjRjZmJiNGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCkBAIC03NCw1ICs3NCwxOSBAQCBQYXNz
UmVmUHRyPE5vZGVMaXN0PiBXZWJLaXROYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KE5vZGUqIGNvbnRlbnROb2RlKQogICAgIHJldHVybiBTdGF0aWNOb2RlTGlzdDo6YWRvcHQocmVn
aW9uTm9kZXMpOwogfQogCitQYXNzUmVmUHRyPE5vZGVMaXN0PiBXZWJLaXROYW1lZEZsb3c6OmNv
bnRlbnROb2RlcygpIGNvbnN0Cit7CisgICAgbV9wYXJlbnRGbG93VGhyZWFkLT5kb2N1bWVudCgp
LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKworICAgIFZlY3RvcjxS
ZWZQdHI8Tm9kZT4gPiBjb250ZW50Tm9kZXM7CisgICAgZm9yIChOYW1lZEZsb3dDb250ZW50Tm9k
ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYXJlbnRGbG93VGhyZWFkLT5jb250ZW50Tm9kZXMo
KS5iZWdpbigpOyBpdCAhPSBtX3BhcmVudEZsb3dUaHJlYWQtPmNvbnRlbnROb2RlcygpLmVuZCgp
OyArK2l0KSB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBjb25zdF9jYXN0PE5vZGUqPigqaXQpOwor
ICAgICAgICBBU1NFUlQobm9kZS0+Y29tcHV0ZWRTdHlsZSgpLT5mbG93VGhyZWFkKCkgPT0gbV9w
YXJlbnRGbG93VGhyZWFkLT5mbG93VGhyZWFkTmFtZSgpKTsKKyAgICAgICAgY29udGVudE5vZGVz
LmFwcGVuZChub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4gU3RhdGljTm9kZUxpc3Q6OmFkb3B0
KGNvbnRlbnROb2Rlcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IGUyNjNmNmYuLjBjNWQ1ZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTMwLDEyICszMCwxMyBAQAogI2lmbmRlZiBXZWJL
aXROYW1lZEZsb3dfaAogI2RlZmluZSBXZWJLaXROYW1lZEZsb3dfaAogCisjaW5jbHVkZSA8Tm9k
ZS5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIE5vZGU7CiBjbGFzcyBOb2RlTGlzdDsKIGNsYXNzIFJlbmRlck5hbWVkRmxvd1RocmVh
ZDsKIApAQCAtNTAsNiArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG92ZXJmbG93KCkgY29u
c3Q7CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoTm9k
ZSopOworICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGNvbnRlbnROb2RlcygpIGNvbnN0OwogCiBw
cml2YXRlOgogICAgIFdlYktpdE5hbWVkRmxvdyhSZW5kZXJOYW1lZEZsb3dUaHJlYWQqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKaW5kZXggMTBhNGQ5ZS4uMGQzMjRhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKQEAgLTMzLDYgKzMzLDcgQEAg
bW9kdWxlIGNvcmUgewogICAgIF0gV2ViS2l0TmFtZWRGbG93IHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gb3ZlcmZsb3c7CiAgICAgICAgIE5vZGVMaXN0IGdldFJlZ2lvbnNC
eUNvbnRlbnROb2RlKGluIE5vZGUgY29udGVudE5vZGUpOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgTm9kZUxpc3QgY29udGVudE5vZGVzOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCmluZGV4IDg4MDMwYTcu
LmNmMjIwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFk
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRD
b250cm9sbGVyLmNwcApAQCAtMTAxLDQgKzEwMSwyNSBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9s
bGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkKICAgICB9CiB9CiAKK3ZvaWQgRmxv
d1RocmVhZENvbnRyb2xsZXI6OnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUoTm9kZSogY29u
dGVudE5vZGUsIFJlbmRlck5hbWVkRmxvd1RocmVhZCogbmFtZWRGbG93KQoreworICAgIEFTU0VS
VChjb250ZW50Tm9kZSAmJiBjb250ZW50Tm9kZS0+aXNFbGVtZW50Tm9kZSgpKTsKKyAgICBBU1NF
UlQobmFtZWRGbG93KTsKKyAgICBBU1NFUlQoIW1fbWFwTmFtZWRGbG93Q29udGVudE5vZGVzLmNv
bnRhaW5zKGNvbnRlbnROb2RlKSk7CisgICAgQVNTRVJUKCFuYW1lZEZsb3ctPmhhc0NvbnRlbnRO
b2RlKGNvbnRlbnROb2RlKSk7CisgICAgbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXMuYWRkKGNv
bnRlbnROb2RlLCBuYW1lZEZsb3cpOworICAgIG5hbWVkRmxvdy0+cmVnaXN0ZXJOYW1lZEZsb3dD
b250ZW50Tm9kZShjb250ZW50Tm9kZSk7Cit9CisKK3ZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6
OnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9kZSkKK3sKKyAg
ICBBU1NFUlQoY29udGVudE5vZGUgJiYgY29udGVudE5vZGUtPmlzRWxlbWVudE5vZGUoKSk7Cisg
ICAgSGFzaE1hcDxOb2RlKiwgUmVuZGVyTmFtZWRGbG93VGhyZWFkKj46Oml0ZXJhdG9yIGl0ID0g
bV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXMuZmluZChjb250ZW50Tm9kZSk7CisgICAgQVNTRVJU
KGl0ICE9IG1fbWFwTmFtZWRGbG93Q29udGVudE5vZGVzLmVuZCgpKTsKKyAgICBBU1NFUlQoaXQt
PnNlY29uZCk7CisgICAgQVNTRVJUKGl0LT5zZWNvbmQtPmhhc0NvbnRlbnROb2RlKGNvbnRlbnRO
b2RlKSk7CisgICAgaXQtPnNlY29uZC0+dW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKGNv
bnRlbnROb2RlKTsKKyAgICBtX21hcE5hbWVkRmxvd0NvbnRlbnROb2Rlcy5yZW1vdmUoY29udGVu
dE5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCmluZGV4IGUzNzUwY2EuLjBjMzE3Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5o
CkBAIC02Miw2ICs2Miw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1JlbmRlck5hbWVkRmxvd1Ro
cmVhZHMoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QgJiYgIW1f
cmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+aXNFbXB0eSgpOyB9CiAgICAgdm9pZCBsYXlvdXRS
ZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCk7CiAKKyAgICB2b2lkIHJlZ2lzdGVyTmFtZWRGbG93Q29u
dGVudE5vZGUoTm9kZSosIFJlbmRlck5hbWVkRmxvd1RocmVhZCopOworICAgIHZvaWQgdW5yZWdp
c3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKE5vZGUqKTsKKwogcHJvdGVjdGVkOgogICAgIEZsb3dU
aHJlYWRDb250cm9sbGVyKFJlbmRlclZpZXcqKTsKIApAQCAtNzAsNiArNzMsOCBAQCBwcml2YXRl
OgogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fY3VycmVudFJlbmRlckZsb3dUaHJlYWQ7CiAgICAg
Ym9vbCBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eTsKICAgICBPd25QdHI8UmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdD4gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OworICAg
IC8vIG1hcHMgYSBjb250ZW50IG5vZGUgdG8gaXRzIHJlbmRlciBmbG93IHRocmVhZC4KKyAgICBI
YXNoTWFwPE5vZGUqLCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqPiBtX21hcE5hbWVkRmxvd0NvbnRl
bnROb2RlczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5jcHAKaW5kZXggOTQ4ZGViMC4uMDg4Yjg3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKQEAgLTI1
Myw0ICsyNTMsMzYgQEAgV2ViS2l0TmFtZWRGbG93KiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmVu
c3VyZU5hbWVkRmxvdygpCiAgICAgcmV0dXJuIG1fbmFtZWRGbG93LmdldCgpOwogfQogCisvLyBU
aGUgY29udGVudCBub2RlcyBsaXN0IGNvbnRhaW5zIHRob3NlIG5vZGVzIHdpdGggLXdlYmtpdC1m
bG93LWludG86IGZsb3cuCisvLyBBbiBlbGVtZW50IHdpdGggZGlzcGxheTpub25lIHNob3VsZCBh
bHNvIGJlIGxpc3RlZCBhbW9uZyB0aG9zZSBub2Rlcy4KKy8vIFRoZSBsaXN0IG9mIG5vZGVzIGlz
IG9yZGVyZWQuCit2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaXN0ZXJOYW1lZEZsb3dD
b250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9kZSkKK3sKKyAgICBBU1NFUlQoY29udGVudE5vZGUg
JiYgY29udGVudE5vZGUtPmlzRWxlbWVudE5vZGUoKSk7CisKKyAgICBjb250ZW50Tm9kZS0+c2V0
SW5OYW1lZEZsb3coKTsKKworICAgIC8vIEZpbmQgdGhlIGZpcnN0IGNvbnRlbnQgbm9kZSBmb2xs
b3dpbmcgdGhlIG5ldyBjb250ZW50IG5vZGUuCisgICAgZm9yIChOYW1lZEZsb3dDb250ZW50Tm9k
ZXM6Oml0ZXJhdG9yIGl0ID0gbV9jb250ZW50Tm9kZXMuYmVnaW4oKTsgaXQgIT0gbV9jb250ZW50
Tm9kZXMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9ICppdDsKKyAgICAgICAg
dW5zaWduZWQgc2hvcnQgcG9zaXRpb24gPSBjb250ZW50Tm9kZS0+Y29tcGFyZURvY3VtZW50UG9z
aXRpb24obm9kZSk7CisgICAgICAgIGlmIChwb3NpdGlvbiAmIE5vZGU6OkRPQ1VNRU5UX1BPU0lU
SU9OX0ZPTExPV0lORykgeworICAgICAgICAgICAgbV9jb250ZW50Tm9kZXMuaW5zZXJ0QmVmb3Jl
KG5vZGUsIGNvbnRlbnROb2RlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKyAgICBtX2NvbnRlbnROb2Rlcy5hZGQoY29udGVudE5vZGUpOworfQorCit2b2lkIFJlbmRl
ck5hbWVkRmxvd1RocmVhZDo6dW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKE5vZGUqIGNv
bnRlbnROb2RlKQoreworICAgIEFTU0VSVChjb250ZW50Tm9kZSAmJiBjb250ZW50Tm9kZS0+aXNF
bGVtZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQobV9jb250ZW50Tm9kZXMuY29udGFpbnMoY29udGVu
dE5vZGUpKTsKKyAgICBBU1NFUlQoY29udGVudE5vZGUtPmluTmFtZWRGbG93KCkpOworCisgICAg
Y29udGVudE5vZGUtPmNsZWFySW5OYW1lZEZsb3coKTsKKyAgICBtX2NvbnRlbnROb2Rlcy5yZW1v
dmUoY29udGVudE5vZGUpOworCit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAppbmRleCAzZGE5ZDQxLi5kMGM4Y2EwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCkBAIC0z
NCwxMSArMzQsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBOb2RlOwogY2xh
c3MgUmVuZGVyTmFtZWRGbG93VGhyZWFkOwogY2xhc3MgV2ViS2l0TmFtZWRGbG93OwogCiB0eXBl
ZGVmIExpc3RIYXNoU2V0PFJlbmRlck5hbWVkRmxvd1RocmVhZCo+IFJlbmRlck5hbWVkRmxvd1Ro
cmVhZExpc3Q7CiB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PFJlbmRlck5hbWVkRmxvd1RocmVhZCo+
IFJlbmRlck5hbWVkRmxvd1RocmVhZENvdW50ZWRTZXQ7Cit0eXBlZGVmIExpc3RIYXNoU2V0PE5v
ZGUqPiBOYW1lZEZsb3dDb250ZW50Tm9kZXM7CiAKIGNsYXNzIFJlbmRlck5hbWVkRmxvd1RocmVh
ZCA6IHB1YmxpYyBSZW5kZXJGbG93VGhyZWFkIHsKIHB1YmxpYzoKQEAgLTYyLDYgKzY0LDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVnaW9uRnJvbVRocmVhZChSZW5kZXJS
ZWdpb24qKSBPVkVSUklERTsKIAogICAgIFdlYktpdE5hbWVkRmxvdyogZW5zdXJlTmFtZWRGbG93
KCk7CisgICAgdm9pZCByZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKE5vZGUqKTsKKyAgICB2
b2lkIHVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShOb2RlKik7CisgICAgY29uc3QgTmFt
ZWRGbG93Q29udGVudE5vZGVzJiBjb250ZW50Tm9kZXMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRl
bnROb2RlczsgfQorICAgIGJvb2wgaGFzQ29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUpIGNv
bnN0IHsgQVNTRVJUKGNvbnRlbnROb2RlKTsgcmV0dXJuIG1fY29udGVudE5vZGVzLmNvbnRhaW5z
KGNvbnRlbnROb2RlKTsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVu
ZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFOwpAQCAtOTAsNiArOTYsOCBAQCBwcml2YXRlOgogICAg
IHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVuZGVyT2JqZWN0Kj4gRmxvd1RocmVhZENoaWxkTGlzdDsK
ICAgICBGbG93VGhyZWFkQ2hpbGRMaXN0IG1fZmxvd1RocmVhZENoaWxkTGlzdDsKIAorICAgIE5h
bWVkRmxvd0NvbnRlbnROb2RlcyBtX2NvbnRlbnROb2RlczsKKwogICAgIC8vIFRoZSBET00gT2Jq
ZWN0IHRoYXQgcmVwcmVzZW50cyBhIG5hbWVkIGZsb3cuCiAgICAgUmVmUHRyPFdlYktpdE5hbWVk
Rmxvdz4gbV9uYW1lZEZsb3c7CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>