<?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>194293</bug_id>
          
          <creation_ts>2019-02-05 10:38:31 -0800</creation_ts>
          <short_desc>Web Inspector: DOM: don&apos;t send the entire function string with each event listener</short_desc>
          <delta_ts>2019-02-06 16:32:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1502418</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-05 10:38:31 -0800</bug_when>
    <thetext>There&apos;s no reason to send the entire function body when all we really care about is the function name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502420</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-05 10:38:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/47822809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502499</commentid>
    <comment_count>2</comment_count>
      <attachid>361218</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-05 13:59:10 -0800</bug_when>
    <thetext>Created attachment 361218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502502</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-05 14:01:51 -0800</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502574</commentid>
    <comment_count>4</comment_count>
      <attachid>361218</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-02-05 16:12:19 -0800</bug_when>
    <thetext>Comment on attachment 361218
Patch

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

r- because I want to see an updated patch RE: the object case.

&gt; Source/JavaScriptCore/inspector/protocol/DOM.json:84
&gt; +                { &quot;name&quot;: &quot;handlerName&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Event handler function name.&quot; },
&gt; +                { &quot;name&quot;: &quot;handlerObject&quot;, &quot;$ref&quot;: &quot;Runtime.RemoteObject&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Event handler function value.&quot; },

Reminder: Email ITML folks regarding the DOM change.

I like the name `handlerObject` since I think this can be an actual object in the case where we have:

    elem.addEventListener(&quot;eventname&quot;, this);

In that case:

    (1) what is the handlerName
    (2) if we have a `handlerObject` we should update the protocol &quot;description&quot; to not say &quot;function value&quot;.

&gt; Source/WebCore/inspector/agents/InspectorDOMAgent.cpp:1676
&gt; +        handlerObject = scriptListener.jsFunction(node-&gt;document());

Maybe this doesn&apos;t work in the object listener case.

&gt; Source/WebCore/inspector/agents/InspectorDOMAgent.cpp:1679
&gt; +                handlerName = function-&gt;calculatedDisplayName(state-&gt;vm());

I wonder if this requires a JSLock or not, I believe this might cause allocations. You could discuss this with Saam or Mark Lam.

&gt; Source/WebInspectorUI/UserInterface/Views/EventListenerSectionGroup.js:91
&gt; +            if (match) {
&gt; +                functionName = match[1];
&gt; +            }

Style: No braces

&gt; LayoutTests/inspector/dom/getEventListenersForNode.html:77
&gt; +        document.addEventListener(&quot;alpha&quot;, function documentAlpha(event) { }, {passive: true});
&gt; +        document.addEventListener(&quot;beta&quot;, (event) =&gt; {}, {passive: true});

Please add tests for the object listener case, which just means some object that has a `handleEvent` function:
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503378</commentid>
    <comment_count>5</comment_count>
      <attachid>361218</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-06 10:31:35 -0800</bug_when>
    <thetext>Comment on attachment 361218
Patch

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

&gt;&gt; Source/WebCore/inspector/agents/InspectorDOMAgent.cpp:1679
&gt;&gt; +                handlerName = function-&gt;calculatedDisplayName(state-&gt;vm());
&gt; 
&gt; I wonder if this requires a JSLock or not, I believe this might cause allocations. You could discuss this with Saam or Mark Lam.

We already have acquired a lock above.

&gt;&gt; LayoutTests/inspector/dom/getEventListenersForNode.html:77
&gt;&gt; +        document.addEventListener(&quot;beta&quot;, (event) =&gt; {}, {passive: true});
&gt; 
&gt; Please add tests for the object listener case, which just means some object that has a `handleEvent` function:
&gt; https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

Right!  I completely forgot about that functionality :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503389</commentid>
    <comment_count>6</comment_count>
      <attachid>361307</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-06 11:18:35 -0800</bug_when>
    <thetext>Created attachment 361307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503401</commentid>
    <comment_count>7</comment_count>
      <attachid>361307</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-02-06 11:28:12 -0800</bug_when>
    <thetext>Comment on attachment 361307
Patch

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

r=me

&gt; Source/WebCore/inspector/agents/InspectorDOMAgent.cpp:1684
&gt; +                if (auto handleEventValue = handlerObject-&gt;get(exec, JSC::Identifier::fromString(exec, &quot;handleEvent&quot;)))

This can cause an exception which may need to handled... that said this is all in Web Inspector code which would just ignore the exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503471</commentid>
    <comment_count>8</comment_count>
      <attachid>361327</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-06 14:12:12 -0800</bug_when>
    <thetext>Created attachment 361327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503498</commentid>
    <comment_count>9</comment_count>
      <attachid>361335</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-06 15:10:08 -0800</bug_when>
    <thetext>Created attachment 361335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503528</commentid>
    <comment_count>10</comment_count>
      <attachid>361335</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-06 16:32:02 -0800</bug_when>
    <thetext>Comment on attachment 361335
Patch

Clearing flags on attachment: 361335

Committed r241110: &lt;https://trac.webkit.org/changeset/241110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503529</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-06 16:32:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361218</attachid>
            <date>2019-02-05 13:59:10 -0800</date>
            <delta_ts>2019-02-06 11:18:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194293-20190205135909.patch</filename>
            <type>text/plain</type>
            <size>14265</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE3ZmM0ZWZjMGUyYjEyNDU1NDMyZjRmODgxODc2
MzVjZjIyZTRiODEuLmQ2MDg0Y2QzMjY2NjU5ZGY1OGVjZGQxYzk3MWU4OGVhY2Q4OGQ4ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAyLTA1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
T006IGRvbid0IHNlbmQgdGhlIGVudGlyZSBmdW5jdGlvbiBzdHJpbmcgd2l0aCBlYWNoIGV2ZW50
IGxpc3RlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3ODIyODA5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29s
L0RPTS5qc29uOgorCisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgIEV4
cG9ydCBgY2FsY3VsYXRlZERpc3BsYXlOYW1lYC4KKwogMjAxOS0wMi0wNCAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGFkZCBtaXNzaW5n
IGV4Y2VwdGlvbiBjaGVja3MgYWZ0ZXIgcjI0MDYzNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRjNzQ0OTNiYWY2
ZThlNDY0YjVlYzJkYWU3YjBmNTE0Y2YyNzQ3YTYuLjRhMTU2MDBlODZlMTMwNTk5YTA3N2NiY2E5
ODllODQwM2E5ZTVhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wMi0wNSAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogRE9NOiBkb24ndCBzZW5kIHRoZSBlbnRpcmUgZnVuY3Rpb24gc3RyaW5nIHdpdGggZWFjaCBl
dmVudCBsaXN0ZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk0MjkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzgyMjgwOT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3Iv
ZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIpOgorCiAyMDE5LTAyLTA0ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gU2hyaW5r
IHNpemUgb2YgVk0gYnkgbGF6aWx5IGFsbG9jYXRpbmcgSXNvU3Vic3BhY2VzIGZvciBub24tY29t
bW9uIHR5cGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA2MzBiZWM0ZGZiNmMxZWJhNTkw
OWJmZmI1MDljMTMzZTZiYTViNzAxLi45OTI2OTQyNWYxZWY1MWVmNzI0NmM4ZDkxMDM1NzgxNmMy
NzgwYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0w
Mi0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogRE9NOiBkb24ndCBzZW5kIHRoZSBlbnRpcmUgZnVuY3Rpb24gc3RyaW5nIHdpdGgg
ZWFjaCBldmVudCBsaXN0ZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk0MjkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzgyMjgwOT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91cC5qczoKKyAgICAgICAgKFdJLkV2
ZW50TGlzdGVuZXJTZWN0aW9uR3JvdXAucHJvdG90eXBlLl9mdW5jdGlvblRleHRPckxpbmspOgor
CiAyMDE5LTAyLTA0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBSZXNvdXJjZXM6IG1pc3NpbmcgcmVzb3VyY2UgZGF0YSBmb3IgZG9j
dW1lbnQgb24gcmVsb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3Byb3RvY29sL0RPTS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9w
cm90b2NvbC9ET00uanNvbgppbmRleCA3ODE2MDlkMWRlOTZiMDZmNDVjYWZiNmUzNDE2NDdiNTYz
MzkyMjgzLi4wMTNjMmJiMmUzMWI0MDY5OTgyNzcwN2VkYWEyMzdmMTZjOGUzZWE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RPTS5qc29uCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KQEAg
LTc5LDEwICs3OSw5IEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1c2VDYXB0dXJlIiwg
InR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICI8Y29kZT5FdmVudExpc3RlbmVyPC9j
b2RlPidzIHVzZUNhcHR1cmUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNBdHRy
aWJ1dGUiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIjxjb2RlPkV2ZW50TGlz
dGVuZXI8L2NvZGU+J3MgaXNBdHRyaWJ1dGUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibm9kZUlkIiwgIiRyZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRhcmdldCA8Y29k
ZT5ET01Ob2RlPC9jb2RlPiBpZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5k
bGVyQm9keSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJFdmVudCBoYW5kbGVy
IGZ1bmN0aW9uIGJvZHkuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9jYXRpb24i
LCAiJHJlZiI6ICJEZWJ1Z2dlci5Mb2NhdGlvbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJIYW5kbGVyIGNvZGUgbG9jYXRpb24uIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAic291cmNlTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJTb3VyY2Ugc2NyaXB0IFVSTC4iIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJoYW5kbGVyIiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3QiLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXZlbnQgaGFuZGxlciBmdW5jdGlvbiB2YWx1ZS4i
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGVyTmFtZSIsICJ0eXBlIjogInN0
cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFdmVudCBoYW5kbGVyIGZ1
bmN0aW9uIG5hbWUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlck9iamVj
dCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIkV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gdmFsdWUuIiB9LAogICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicGFzc2l2ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+RXZlbnRMaXN0ZW5lcjwvY29kZT4ncyBwYXNz
aXZlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9uY2UiLCAidHlwZSI6ICJib29s
ZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIjxjb2RlPkV2ZW50TGlzdGVu
ZXI8L2NvZGU+J3Mgb25jZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkaXNhYmxl
ZCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggM2JmMDY3NjU4YzNhZjM4ZTc1OTc4
NGUwNmE3YjRkZGU0MzgyM2Y3ZS4uMjQyYzhkNmJjYjRiZGRmMGE5MmQwZTY3YWVlNDRiZDIzYWVk
Mzg2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAt
ODgsNyArODgsNyBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgbmFt
ZShWTSYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkaXNwbGF5TmFtZShWTSYpOwot
ICAgIGNvbnN0IFN0cmluZyBjYWxjdWxhdGVkRGlzcGxheU5hbWUoVk0mKTsKKyAgICBKU19FWFBP
UlRfUFJJVkFURSBjb25zdCBTdHJpbmcgY2FsY3VsYXRlZERpc3BsYXlOYW1lKFZNJik7CiAKICAg
ICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXhlY3V0YWJs
ZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDg3OTc2NjFmMjM0MTgxZjZhNDE0YmNiOTNiY2Ix
ODc2NjI1MjVhNzkuLjIzY2E4YjViODg0MmQ2YTk1NTk4NTQwZDA2Njg2NjNkMDQ3Nzk0N2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCkBAIC0xNjY0LDI2ICsxNjY0LDI0IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29s
OjpET006OkV2ZW50TGlzdGVuZXI+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2
CiAgICAgUmVmPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIgPSByZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lci5jYWxsYmFjaygpOwogCiAgICAgSlNDOjpFeGVjU3RhdGUqIHN0YXRlID0gbnVsbHB0
cjsKLSAgICBKU0M6OkpTT2JqZWN0KiBoYW5kbGVyID0gbnVsbHB0cjsKLSAgICBTdHJpbmcgYm9k
eTsKKyAgICBKU0M6OkpTT2JqZWN0KiBoYW5kbGVyT2JqZWN0ID0gbnVsbHB0cjsKKyAgICBTdHJp
bmcgaGFuZGxlck5hbWU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1bW5O
dW1iZXIgPSAwOwogICAgIFN0cmluZyBzY3JpcHRJRDsKLSAgICBTdHJpbmcgc291cmNlTmFtZTsK
ICAgICBpZiAoaXM8SlNFdmVudExpc3RlbmVyPihldmVudExpc3RlbmVyLmdldCgpKSkgewogICAg
ICAgICBhdXRvJiBzY3JpcHRMaXN0ZW5lciA9IGRvd25jYXN0PEpTRXZlbnRMaXN0ZW5lcj4oZXZl
bnRMaXN0ZW5lci5nZXQoKSk7CiAgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soc2NyaXB0
TGlzdGVuZXIuaXNvbGF0ZWRXb3JsZCgpLnZtKCkpOwogICAgICAgICBzdGF0ZSA9IGV4ZWNTdGF0
ZUZyb21Ob2RlKHNjcmlwdExpc3RlbmVyLmlzb2xhdGVkV29ybGQoKSwgJm5vZGUtPmRvY3VtZW50
KCkpOwotICAgICAgICBoYW5kbGVyID0gc2NyaXB0TGlzdGVuZXIuanNGdW5jdGlvbihub2RlLT5k
b2N1bWVudCgpKTsKLSAgICAgICAgaWYgKGhhbmRsZXIgJiYgc3RhdGUpIHsKLSAgICAgICAgICAg
IGJvZHkgPSBoYW5kbGVyLT50b1N0cmluZyhzdGF0ZSktPnZhbHVlKHN0YXRlKTsKLSAgICAgICAg
ICAgIGlmIChhdXRvIGZ1bmN0aW9uID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNGdW5jdGlv
bio+KHN0YXRlLT52bSgpLCBoYW5kbGVyKSkgeworICAgICAgICBoYW5kbGVyT2JqZWN0ID0gc2Ny
aXB0TGlzdGVuZXIuanNGdW5jdGlvbihub2RlLT5kb2N1bWVudCgpKTsKKyAgICAgICAgaWYgKGhh
bmRsZXJPYmplY3QgJiYgc3RhdGUpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGZ1bmN0aW9uID0g
SlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNGdW5jdGlvbio+KHN0YXRlLT52bSgpLCBoYW5kbGVy
T2JqZWN0KSkgeworICAgICAgICAgICAgICAgIGhhbmRsZXJOYW1lID0gZnVuY3Rpb24tPmNhbGN1
bGF0ZWREaXNwbGF5TmFtZShzdGF0ZS0+dm0oKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFmdW5j
dGlvbi0+aXNIb3N0T3JCdWlsdGluRnVuY3Rpb24oKSkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoYXV0byBleGVjdXRhYmxlID0gZnVuY3Rpb24tPmpzRXhlY3V0YWJsZSgpKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID0gZXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCkgLSAx
OwogICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyID0gZXhlY3V0YWJsZS0+c3Rh
cnRDb2x1bW4oKSAtIDE7CiAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRJRCA9IGV4ZWN1
dGFibGUtPnNvdXJjZUlEKCkgPT0gSlNDOjpTb3VyY2VQcm92aWRlcjo6bnVsbElEID8gZW1wdHlT
dHJpbmcoKSA6IFN0cmluZzo6bnVtYmVyKGV4ZWN1dGFibGUtPnNvdXJjZUlEKCkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgc291cmNlTmFtZSA9IGV4ZWN1dGFibGUtPnNvdXJjZVVSTCgpOwog
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpA
QCAtMTY5NiwxMiArMTY5NCwxMSBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVu
dExpc3RlbmVyPiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdgogICAgICAgICAu
c2V0VXNlQ2FwdHVyZShyZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci51c2VDYXB0dXJlKCkpCiAgICAg
ICAgIC5zZXRJc0F0dHJpYnV0ZShldmVudExpc3RlbmVyLT5pc0F0dHJpYnV0ZSgpKQogICAgICAg
ICAuc2V0Tm9kZUlkKHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSkpCi0gICAgICAgIC5zZXRI
YW5kbGVyQm9keShib2R5KQogICAgICAgICAucmVsZWFzZSgpOwotICAgIGlmIChvYmplY3RHcm91
cElkICYmIGhhbmRsZXIgJiYgc3RhdGUpIHsKKyAgICBpZiAob2JqZWN0R3JvdXBJZCAmJiBoYW5k
bGVyT2JqZWN0ICYmIHN0YXRlKSB7CiAgICAgICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2Ny
aXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5qZWN0ZWRTY3JpcHRGb3Ioc3RhdGUpOwog
ICAgICAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkKLSAgICAgICAgICAgIHZh
bHVlLT5zZXRIYW5kbGVyKGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoaGFuZGxlciwgKm9iamVj
dEdyb3VwSWQpKTsKKyAgICAgICAgICAgIHZhbHVlLT5zZXRIYW5kbGVyT2JqZWN0KGluamVjdGVk
U2NyaXB0LndyYXBPYmplY3QoaGFuZGxlck9iamVjdCwgKm9iamVjdEdyb3VwSWQpKTsKICAgICB9
CiAgICAgaWYgKCFzY3JpcHRJRC5pc051bGwoKSkgewogICAgICAgICBhdXRvIGxvY2F0aW9uID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6RGVidWdnZXI6OkxvY2F0aW9uOjpjcmVhdGUoKQpAQCAtMTcx
MCw5ICsxNzA3LDkgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5l
cj4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXYKICAgICAgICAgICAgIC5yZWxl
YXNlKCk7CiAgICAgICAgIGxvY2F0aW9uLT5zZXRDb2x1bW5OdW1iZXIoY29sdW1uTnVtYmVyKTsK
ICAgICAgICAgdmFsdWUtPnNldExvY2F0aW9uKFdURk1vdmUobG9jYXRpb24pKTsKLSAgICAgICAg
aWYgKCFzb3VyY2VOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHZhbHVlLT5zZXRTb3VyY2VO
YW1lKHNvdXJjZU5hbWUpOwogICAgIH0KKyAgICBpZiAoIWhhbmRsZXJOYW1lLmlzRW1wdHkoKSkK
KyAgICAgICAgdmFsdWUtPnNldEhhbmRsZXJOYW1lKGhhbmRsZXJOYW1lKTsKICAgICBpZiAocmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXIuaXNQYXNzaXZlKCkpCiAgICAgICAgIHZhbHVlLT5zZXRQYXNz
aXZlKHRydWUpOwogICAgIGlmIChyZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5pc09uY2UoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0V2ZW50
TGlzdGVuZXJTZWN0aW9uR3JvdXAuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzCmluZGV4IDE4MWQwNTlkZmQ0
YTJiODA4NDNhNzM3MTU0NTNmNzA1ZjgyMWE4NmMuLmFhN2E0NDYxODlmYjViMmQzYTRiNjE0OWQy
NTk0MTc5NzM0NmI1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0V2ZW50TGlzdGVuZXJTZWN0aW9uR3JvdXAuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91
cC5qcwpAQCAtODAsMTMgKzgwLDIwIEBAIFdJLkV2ZW50TGlzdGVuZXJTZWN0aW9uR3JvdXAgPSBj
bGFzcyBFdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwIGV4dGVuZHMgV0kuRGV0YWlsCiAKICAgICBf
ZnVuY3Rpb25UZXh0T3JMaW5rKCkKICAgICB7Ci0gICAgICAgIHZhciBtYXRjaCA9IHRoaXMuX2V2
ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkubWF0Y2goL2Z1bmN0aW9uIChbXlwoXSs/KVwoLyk7Ci0g
ICAgICAgIGlmIChtYXRjaCkgewotICAgICAgICAgICAgdmFyIGFub255bW91cyA9IGZhbHNlOwot
ICAgICAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IG1hdGNoWzFdOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgdmFyIGFub255bW91cyA9IHRydWU7Ci0gICAgICAgICAgICB2YXIgZnVu
Y3Rpb25OYW1lID0gV0kuVUlTdHJpbmcoIihhbm9ueW1vdXMgZnVuY3Rpb24pIik7CisgICAgICAg
IGxldCBhbm9ueW1vdXMgPSBmYWxzZTsKKyAgICAgICAgbGV0IGZ1bmN0aW9uTmFtZSA9IHRoaXMu
X2V2ZW50TGlzdGVuZXIuaGFuZGxlck5hbWU7CisKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAo
aU9TIDEyLjIpOiBET00uRXZlbnRMaXN0ZW5lci5oYW5kbGVyQm9keSB3YXMgcmVwbGFjZWQgYnkg
RE9NLkV2ZW50TGlzdGVuZXIuaGFuZGxlck5hbWUuCisgICAgICAgIGlmICghZnVuY3Rpb25OYW1l
ICYmIHRoaXMuX2V2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkpIHsKKyAgICAgICAgICAgIGxldCBt
YXRjaCA9IHRoaXMuX2V2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkubWF0Y2goL2Z1bmN0aW9uIChb
XlwoXSs/KVwoLyk7CisgICAgICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBm
dW5jdGlvbk5hbWUgPSBtYXRjaFsxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmICghZnVuY3Rpb25OYW1lKSB7CisgICAgICAgICAgICBhbm9ueW1vdXMgPSB0cnVlOwor
ICAgICAgICAgICAgZnVuY3Rpb25OYW1lID0gV0kuVUlTdHJpbmcoIihhbm9ueW1vdXMgZnVuY3Rp
b24pIik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXIubG9j
YXRpb24pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZGQwNmIwMDRmYzMyMmFkZDdjODI4MjUzMjU0YzNjZmI1MTI0ZGZiOC4u
OTUwYzBiYjU1YTJmMzFmYTExZmMwZTJjNTMxYzRlMDI0NjNiOWJhMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDE5LTAyLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBET006IGRvbid0IHNlbmQgdGhlIGVudGlyZSBmdW5jdGlv
biBzdHJpbmcgd2l0aCBlYWNoIGV2ZW50IGxpc3RlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ3ODIyODA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2RvbS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS1leHBlY3RlZC50eHQ6
CisKIDIwMTktMDItMDQgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpUGFkXSBJbml0aWFsIHRlc3QgZ2FyZGVuaW5nIChQYXJ0IDEpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9y
Tm9kZS1leHBlY3RlZC50eHQKaW5kZXggMjZiMTIyNTYyNjhhMmY3NmZiNjRmNDcxODQ5ZmFiMWFi
N2YyYzQ2OS4uNGMwMDhmNDk3MDQ4NmM3ZTUzZjMzNjk3ODYwNzMxNDE3ZDE5ODEyYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0
ZW5lcnNGb3JOb2RlLWV4cGVjdGVkLnR4dApAQCAtNywzMCArNyw0OSBAQCBFdmVudDogYWxwaGEK
IE5vZGU6IGJvZHkKIENhcHR1cmU6IHRydWUKIEF0dHJpYnV0ZTogZmFsc2UKK0hhbmRsZXIgTmFt
ZTogYm9keUFscGhhCitQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0
aW9uLgorCitFdmVudDogYmV0YQorTm9kZTogYm9keQorQ2FwdHVyZTogdHJ1ZQorQXR0cmlidXRl
OiBmYWxzZQorUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIHNvdXJjZSBsb2NhdGlvbi4K
KworRXZlbnQ6IGdhbW1hCitOb2RlOiBkaXYjeAorQ2FwdHVyZTogZmFsc2UKK0F0dHJpYnV0ZTog
ZmFsc2UKIFBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCi1Q
QVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgZnVuY3Rpb24uCiAKIEV2ZW50OiBiZXRhCiBO
b2RlOiBkaXYjeAogQ2FwdHVyZTogZmFsc2UKIEF0dHJpYnV0ZTogZmFsc2UKK0hhbmRsZXIgTmFt
ZTogeEJldGEKIE9uY2U6IHRydWUKIFBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3Vy
Y2UgbG9jYXRpb24uCi1QQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgZnVuY3Rpb24uCiAK
IEV2ZW50OiBhbHBoYQogTm9kZTogZGl2I3gKIENhcHR1cmU6IGZhbHNlCiBBdHRyaWJ1dGU6IGZh
bHNlCitIYW5kbGVyIE5hbWU6IHhBbHBoYQogUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBh
IHNvdXJjZSBsb2NhdGlvbi4KLVBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBmdW5jdGlv
bi4KIAotRXZlbnQ6IGFscGhhCitFdmVudDogYmV0YQogTm9kZTogI2RvY3VtZW50CiBDYXB0dXJl
OiBmYWxzZQogQXR0cmlidXRlOiBmYWxzZQogUGFzc2l2ZTogdHJ1ZQogUEFTUzogVGhlIEV2ZW50
IExpc3RlbmVyIGhhcyBhIHNvdXJjZSBsb2NhdGlvbi4KLVBBU1M6IFRoZSBFdmVudCBMaXN0ZW5l
ciBoYXMgYSBmdW5jdGlvbi4KKworRXZlbnQ6IGFscGhhCitOb2RlOiAjZG9jdW1lbnQKK0NhcHR1
cmU6IGZhbHNlCitBdHRyaWJ1dGU6IGZhbHNlCitIYW5kbGVyIE5hbWU6IGRvY3VtZW50QWxwaGEK
K1Bhc3NpdmU6IHRydWUKK1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9j
YXRpb24uCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRFdmVu
dExpc3RlbmVyc0Zvck5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZl
bnRMaXN0ZW5lcnNGb3JOb2RlLmh0bWwKaW5kZXggNjk3ZTUzMjZmZGQ2M2Q5NmM4YTg4ZGYzZWIz
YzZlZjY4YmYwZjhhYS4uNTRjZDI3MDc2NDczN2U4NTg5NmVlNmI5ZWZkMzk4ZGFlOTg1MzkwYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRFdmVudExpc3RlbmVyc0Zv
ck5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVu
ZXJzRm9yTm9kZS5odG1sCkBAIC0yNywxMyArMjcsMTQgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYENhcHR1cmU6ICR7ZXZlbnRMaXN0
ZW5lci51c2VDYXB0dXJlfWApOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZyhgQXR0cmlidXRlOiAke2V2ZW50TGlzdGVuZXIuaXNBdHRyaWJ1dGV9YCk7CiAKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50TGlzdGVuZXIuaGFuZGxlck5hbWUpCisgICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgSGFuZGxlciBOYW1lOiAke2V2ZW50TGlzdGVu
ZXIuaGFuZGxlck5hbWV9YCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudExpc3RlbmVy
LnBhc3NpdmUpCiAgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgUGFz
c2l2ZTogJHtldmVudExpc3RlbmVyLnBhc3NpdmV9YCk7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChldmVudExpc3RlbmVyLm9uY2UpCiAgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhgT25jZTogJHtldmVudExpc3RlbmVyLm9uY2V9YCk7CiAKICAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2ZW50TGlzdGVuZXIubG9jYXRpb24sICJU
aGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0aW9uLiIpOwotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXZlbnRMaXN0ZW5lci5oYW5kbGVyQm9k
eSwgIlRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBmdW5jdGlvbi4iKTsKIAogICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAgICAgICAgICAgICAgICAgfQpAQCAtNjUs
MTIgKzY2LDE1IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgPGRpdiBpZD0ieCI+PC9kaXY+CiAg
ICAgPHNjcmlwdD4KICAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgieCIpOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImFscGhhIiwgKGV2ZW50
KSA9PiB7fSk7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmV0YSIsIChldmVu
dCkgPT4ge30sIHtvbmNlOiB0cnVlfSk7CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiYWxwaGEiLCBmdW5jdGlvbiB4QWxwaGEoZXZlbnQpIHsgfSk7CisgICAgICAgIGVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiYmV0YSIsIGZ1bmN0aW9uIHhCZXRhKGV2ZW50KSB7IH0sIHtvbmNl
OiB0cnVlfSk7CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ2FtbWEiLCAoZXZl
bnQpID0+IHsgfSk7CiAKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJh
bHBoYSIsIChldmVudCkgPT4ge30sIHRydWUpOworICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2
ZW50TGlzdGVuZXIoImFscGhhIiwgZnVuY3Rpb24gYm9keUFscGhhKGV2ZW50KSB7IH0sIHRydWUp
OworICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImJldGEiLCAoZXZlbnQp
ID0+IHt9LCB0cnVlKTsKIAotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJhbHBo
YSIsIChldmVudCkgPT4ge30sIHtwYXNzaXZlOiB0cnVlfSk7CisgICAgICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImFscGhhIiwgZnVuY3Rpb24gZG9jdW1lbnRBbHBoYShldmVudCkgeyB9
LCB7cGFzc2l2ZTogdHJ1ZX0pOworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJi
ZXRhIiwgKGV2ZW50KSA9PiB7fSwge3Bhc3NpdmU6IHRydWV9KTsKICAgICA8L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361307</attachid>
            <date>2019-02-06 11:18:35 -0800</date>
            <delta_ts>2019-02-06 14:12:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194293-20190206111834.patch</filename>
            <type>text/plain</type>
            <size>16718</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZiODM4OWQzOGQ5ODBlODZkNjc5MmYzYjgxMDNj
YTkwMmFkNmY1ZTIuLjhhMjkzNDBkYWJmNTI5OWQ0M2QyOWM5NGE0MDU1ODJmYWQyNjNlNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAyLTA2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
T006IGRvbid0IHNlbmQgdGhlIGVudGlyZSBmdW5jdGlvbiBzdHJpbmcgd2l0aCBlYWNoIGV2ZW50
IGxpc3RlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3ODIyODA5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29s
L0RPTS5qc29uOgorCisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgIEV4
cG9ydCBgY2FsY3VsYXRlZERpc3BsYXlOYW1lYC4KKwogMjAxOS0wMi0wNSAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IERGRydzIGRvZXNHQygpIGZvciBhIGZl
dyBtb3JlIG5vZGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM4OTY2MjBjN2MzYThmMmJjMzE5ZjM3MjZlMmJl
MTIwODkyOTYyOWUuLmYyZTFjNDU1OGVkZGViOTEyYmRhM2NhMGJmODQ4NTAyZmM0NTMzZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wMi0wNiAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRE9NOiBkb24ndCBzZW5k
IHRoZSBlbnRpcmUgZnVuY3Rpb24gc3RyaW5nIHdpdGggZWFjaCBldmVudCBsaXN0ZW5lcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MjkzCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzgyMjgwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVu
ZXJzRm9yTm9kZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRP
TUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9i
amVjdEZvckV2ZW50TGlzdGVuZXIpOgorCiAyMDE5LTAyLTA1ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3RvcCB1c2luZyBibG9iUmVnaXN0
cnkgaW4gTmV0d29ya1Byb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDFjNDMzOGFj
ZWFmZTUzOTY2YmViYzIzYjBmMDRjYzQ1NWI1MmZlMzIuLmI5N2NkMzMzZjUwMGE2YmNhMTNiZjk1
YmU2ODM1YTAxMWExNjZjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE5LTAyLTA2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBET006IGRvbid0IHNlbmQgdGhlIGVudGlyZSBmdW5jdGlvbiBz
dHJpbmcgd2l0aCBlYWNoIGV2ZW50IGxpc3RlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3
ODIyODA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzOgorICAg
ICAgICAoV0kuRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91cC5wcm90b3R5cGUuX2Z1bmN0aW9uVGV4
dE9yTGluayk6CisKIDIwMTktMDItMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IExvdHMgb2YgdGltZSBzcGVudCB1cGRhdGluZyBy
ZWxhdGVkIHJlc291cmNlcyBpbiBSZXNvdXJjZURldGFpbHNTaWRlYmFyIHdoZW4gbG9hZGluZyBh
IHBhZ2Ugd2l0aCBsb3RzIG9mIHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KaW5kZXggNzgxNjA5ZDFkZTk2YjA2ZjQ1Y2Fm
YjZlMzQxNjQ3YjU2MzM5MjI4My4uMDEzYzJiYjJlMzFiNDA2OTk4Mjc3MDdlZGFhMjM3ZjE2Yzhl
M2VhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9ET00uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0RPTS5qc29uCkBAIC03OSwxMCArNzksOSBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
dXNlQ2FwdHVyZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+RXZl
bnRMaXN0ZW5lcjwvY29kZT4ncyB1c2VDYXB0dXJlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImlzQXR0cmlidXRlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICI8
Y29kZT5FdmVudExpc3RlbmVyPC9jb2RlPidzIGlzQXR0cmlidXRlLiIgfSwKICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6
ICJUYXJnZXQgPGNvZGU+RE9NTm9kZTwvY29kZT4gaWQuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaGFuZGxlckJvZHkiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
RXZlbnQgaGFuZGxlciBmdW5jdGlvbiBib2R5LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImxvY2F0aW9uIiwgIiRyZWYiOiAiRGVidWdnZXIuTG9jYXRpb24iLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiSGFuZGxlciBjb2RlIGxvY2F0aW9uLiIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInNvdXJjZU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIHNjcmlwdCBVUkwuIiB9LAotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlciIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2Jq
ZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkV2ZW50IGhhbmRsZXIgZnVu
Y3Rpb24gdmFsdWUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlck5hbWUi
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXZl
bnQgaGFuZGxlciBmdW5jdGlvbiBuYW1lLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImhhbmRsZXJPYmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFdmVudCBoYW5kbGVyIGZ1bmN0aW9uIHZhbHVlLiIg
fSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhc3NpdmUiLCAidHlwZSI6ICJib29sZWFu
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIjxjb2RlPkV2ZW50TGlzdGVuZXI8
L2NvZGU+J3MgcGFzc2l2ZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvbmNlIiwg
InR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICI8Y29k
ZT5FdmVudExpc3RlbmVyPC9jb2RlPidzIG9uY2UuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZGlzYWJsZWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDNiZjA2NzY1
OGMzYWYzOGU3NTk3ODRlMDZhN2I0ZGRlNDM4MjNmN2UuLjI0MmM4ZDZiY2I0YmRkZjBhOTJkMGU2
N2FlZTQ0YmQyM2FlZDM4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgU3RyaW5nIG5hbWUoVk0mKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGlzcGxh
eU5hbWUoVk0mKTsKLSAgICBjb25zdCBTdHJpbmcgY2FsY3VsYXRlZERpc3BsYXlOYW1lKFZNJik7
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgU3RyaW5nIGNhbGN1bGF0ZWREaXNwbGF5TmFt
ZShWTSYpOwogCiAgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUoKSBjb25zdCB7IHJldHVy
biBtX2V4ZWN1dGFibGUuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA4Nzk3NjYxZjIzNDE4MWY2
YTQxNGJjYjkzYmNiMTg3NjYyNTI1YTc5Li45NzhiNjg3MWFhMmQwMWY5NGE0ODU5YTYxOTIzODNl
Y2VjNzM5OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMTY2MywyOSArMTY2Myw0MSBAQCBSZWY8SW5zcGVj
dG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExpc3RlbmVyPiBJbnNwZWN0b3JET01BZ2VudDo6YnVp
bGRPYmplY3RGb3JFdgogewogICAgIFJlZjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyID0g
cmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY2FsbGJhY2soKTsKIAotICAgIEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSA9IG51bGxwdHI7Ci0gICAgSlNDOjpKU09iamVjdCogaGFuZGxlciA9IG51bGxwdHI7
Ci0gICAgU3RyaW5nIGJvZHk7CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBudWxscHRyOwor
ICAgIEpTQzo6SlNPYmplY3QqIGhhbmRsZXJPYmplY3QgPSBudWxscHRyOworICAgIEpTQzo6SlNG
dW5jdGlvbiogaGFuZGxlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICBTdHJpbmcgaGFuZGxlck5h
bWU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOwog
ICAgIFN0cmluZyBzY3JpcHRJRDsKLSAgICBTdHJpbmcgc291cmNlTmFtZTsKICAgICBpZiAoaXM8
SlNFdmVudExpc3RlbmVyPihldmVudExpc3RlbmVyLmdldCgpKSkgewogICAgICAgICBhdXRvJiBz
Y3JpcHRMaXN0ZW5lciA9IGRvd25jYXN0PEpTRXZlbnRMaXN0ZW5lcj4oZXZlbnRMaXN0ZW5lci5n
ZXQoKSk7CisKICAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhzY3JpcHRMaXN0ZW5lci5p
c29sYXRlZFdvcmxkKCkudm0oKSk7Ci0gICAgICAgIHN0YXRlID0gZXhlY1N0YXRlRnJvbU5vZGUo
c2NyaXB0TGlzdGVuZXIuaXNvbGF0ZWRXb3JsZCgpLCAmbm9kZS0+ZG9jdW1lbnQoKSk7Ci0gICAg
ICAgIGhhbmRsZXIgPSBzY3JpcHRMaXN0ZW5lci5qc0Z1bmN0aW9uKG5vZGUtPmRvY3VtZW50KCkp
OwotICAgICAgICBpZiAoaGFuZGxlciAmJiBzdGF0ZSkgewotICAgICAgICAgICAgYm9keSA9IGhh
bmRsZXItPnRvU3RyaW5nKHN0YXRlKS0+dmFsdWUoc3RhdGUpOwotICAgICAgICAgICAgaWYgKGF1
dG8gZnVuY3Rpb24gPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU0Z1bmN0aW9uKj4oc3RhdGUt
PnZtKCksIGhhbmRsZXIpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFmdW5jdGlvbi0+aXNIb3N0
T3JCdWlsdGluRnVuY3Rpb24oKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBleGVj
dXRhYmxlID0gZnVuY3Rpb24tPmpzRXhlY3V0YWJsZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lTnVtYmVyID0gZXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCkgLSAxOwotICAgICAgICAg
ICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyID0gZXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKSAt
IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRJRCA9IGV4ZWN1dGFibGUtPnNvdXJj
ZUlEKCkgPT0gSlNDOjpTb3VyY2VQcm92aWRlcjo6bnVsbElEID8gZW1wdHlTdHJpbmcoKSA6IFN0
cmluZzo6bnVtYmVyKGV4ZWN1dGFibGUtPnNvdXJjZUlEKCkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgc291cmNlTmFtZSA9IGV4ZWN1dGFibGUtPnNvdXJjZVVSTCgpOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQorCisgICAgICAgIGV4ZWMgPSBleGVjU3RhdGVG
cm9tTm9kZShzY3JpcHRMaXN0ZW5lci5pc29sYXRlZFdvcmxkKCksICZub2RlLT5kb2N1bWVudCgp
KTsKKyAgICAgICAgaGFuZGxlck9iamVjdCA9IHNjcmlwdExpc3RlbmVyLmpzRnVuY3Rpb24obm9k
ZS0+ZG9jdW1lbnQoKSk7CisgICAgICAgIGlmIChoYW5kbGVyT2JqZWN0ICYmIGV4ZWMpIHsKKyAg
ICAgICAgICAgIGhhbmRsZXJGdW5jdGlvbiA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTRnVu
Y3Rpb24qPihleGVjLT52bSgpLCBoYW5kbGVyT2JqZWN0KTsKKyAgICAgICAgICAgIGlmICghaGFu
ZGxlckZ1bmN0aW9uKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGhhbmRsZXIgaXMgbm90
IGFjdHVhbGx5IGEgZnVuY3Rpb24sIHNlZSBpZiBpdCBpbXBsZW1lbnRzIHRoZSBFdmVudExpc3Rl
bmVyIGludGVyZmFjZSBhbmQgdXNlIHRoYXQuCisgICAgICAgICAgICAgICAgaWYgKGF1dG8gaGFu
ZGxlRXZlbnRWYWx1ZSA9IGhhbmRsZXJPYmplY3QtPmdldChleGVjLCBKU0M6OklkZW50aWZpZXI6
OmZyb21TdHJpbmcoZXhlYywgImhhbmRsZUV2ZW50IikpKQorICAgICAgICAgICAgICAgICAgICBo
YW5kbGVyRnVuY3Rpb24gPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU0Z1bmN0aW9uKj4oZXhl
Yy0+dm0oKSwgaGFuZGxlRXZlbnRWYWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoaGFuZGxlckZ1bmN0aW9uICYmICFoYW5kbGVyRnVuY3Rpb24tPmlzSG9zdE9y
QnVpbHRpbkZ1bmN0aW9uKCkpIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBsaXN0ZW5lciBpbXBs
ZW1lbnRzIHRoZSBFdmVudExpc3RlbmVyIGludGVyZmFjZSwgdXNlIHRoZSBjbGFzcyBuYW1lIGlu
c3RlYWQgb2YKKyAgICAgICAgICAgIC8vICJoYW5kbGVFdmVudCIsIHVubGVzcyBpdCBpcyBhIHBs
YWluIG9iamVjdC4KKyAgICAgICAgICAgIGlmIChoYW5kbGVyRnVuY3Rpb24gIT0gaGFuZGxlck9i
amVjdCkKKyAgICAgICAgICAgICAgICBoYW5kbGVyTmFtZSA9IEpTQzo6SlNPYmplY3Q6OmNhbGN1
bGF0ZWRDbGFzc05hbWUoaGFuZGxlck9iamVjdCk7CisgICAgICAgICAgICBpZiAoaGFuZGxlck5h
bWUuaXNFbXB0eSgpIHx8IGhhbmRsZXJOYW1lID09ICJPYmplY3QiX3MpCisgICAgICAgICAgICAg
ICAgaGFuZGxlck5hbWUgPSBoYW5kbGVyRnVuY3Rpb24tPmNhbGN1bGF0ZWREaXNwbGF5TmFtZShl
eGVjLT52bSgpKTsKKworICAgICAgICAgICAgaWYgKGF1dG8gZXhlY3V0YWJsZSA9IGhhbmRsZXJG
dW5jdGlvbi0+anNFeGVjdXRhYmxlKCkpIHsKKyAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID0g
ZXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCkgLSAxOworICAgICAgICAgICAgICAgIGNvbHVtbk51bWJl
ciA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCkgLSAxOworICAgICAgICAgICAgICAgIHNjcmlw
dElEID0gZXhlY3V0YWJsZS0+c291cmNlSUQoKSA9PSBKU0M6OlNvdXJjZVByb3ZpZGVyOjpudWxs
SUQgPyBlbXB0eVN0cmluZygpIDogU3RyaW5nOjpudW1iZXIoZXhlY3V0YWJsZS0+c291cmNlSUQo
KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xNjk2LDEyICsxNzA4LDEx
IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkV2ZW50TGlzdGVuZXI+IEluc3BlY3Rv
ckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2CiAgICAgICAgIC5zZXRVc2VDYXB0dXJlKHJlZ2lz
dGVyZWRFdmVudExpc3RlbmVyLnVzZUNhcHR1cmUoKSkKICAgICAgICAgLnNldElzQXR0cmlidXRl
KGV2ZW50TGlzdGVuZXItPmlzQXR0cmlidXRlKCkpCiAgICAgICAgIC5zZXROb2RlSWQocHVzaE5v
ZGVQYXRoVG9Gcm9udGVuZChub2RlKSkKLSAgICAgICAgLnNldEhhbmRsZXJCb2R5KGJvZHkpCiAg
ICAgICAgIC5yZWxlYXNlKCk7Ci0gICAgaWYgKG9iamVjdEdyb3VwSWQgJiYgaGFuZGxlciAmJiBz
dGF0ZSkgewotICAgICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmluamVjdGVkU2NyaXB0Rm9yKHN0YXRlKTsKKyAgICBpZiAob2JqZWN0
R3JvdXBJZCAmJiBoYW5kbGVyT2JqZWN0ICYmIGV4ZWMpIHsKKyAgICAgICAgSW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbmplY3RlZFNjcmlw
dEZvcihleGVjKTsKICAgICAgICAgaWYgKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCi0g
ICAgICAgICAgICB2YWx1ZS0+c2V0SGFuZGxlcihpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KGhh
bmRsZXIsICpvYmplY3RHcm91cElkKSk7CisgICAgICAgICAgICB2YWx1ZS0+c2V0SGFuZGxlck9i
amVjdChpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KGhhbmRsZXJPYmplY3QsICpvYmplY3RHcm91
cElkKSk7CiAgICAgfQogICAgIGlmICghc2NyaXB0SUQuaXNOdWxsKCkpIHsKICAgICAgICAgYXV0
byBsb2NhdGlvbiA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRlYnVnZ2VyOjpMb2NhdGlvbjo6Y3Jl
YXRlKCkKQEAgLTE3MTAsOSArMTcyMSw5IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006
OkV2ZW50TGlzdGVuZXI+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2CiAgICAg
ICAgICAgICAucmVsZWFzZSgpOwogICAgICAgICBsb2NhdGlvbi0+c2V0Q29sdW1uTnVtYmVyKGNv
bHVtbk51bWJlcik7CiAgICAgICAgIHZhbHVlLT5zZXRMb2NhdGlvbihXVEZNb3ZlKGxvY2F0aW9u
KSk7Ci0gICAgICAgIGlmICghc291cmNlTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICB2YWx1
ZS0+c2V0U291cmNlTmFtZShzb3VyY2VOYW1lKTsKICAgICB9CisgICAgaWYgKCFoYW5kbGVyTmFt
ZS5pc0VtcHR5KCkpCisgICAgICAgIHZhbHVlLT5zZXRIYW5kbGVyTmFtZShoYW5kbGVyTmFtZSk7
CiAgICAgaWYgKHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmlzUGFzc2l2ZSgpKQogICAgICAgICB2
YWx1ZS0+c2V0UGFzc2l2ZSh0cnVlKTsKICAgICBpZiAocmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIu
aXNPbmNlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91cC5qcwppbmRl
eCAxODFkMDU5ZGZkNGEyYjgwODQzYTczNzE1NDUzZjcwNWY4MjFhODZjLi44OTRmZWQxMGZmNWNh
YTA1NTY4NGVhMmZmNzg5MmUxMThmOGE3MDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0V2ZW50TGlzdGVu
ZXJTZWN0aW9uR3JvdXAuanMKQEAgLTgwLDEzICs4MCwxOSBAQCBXSS5FdmVudExpc3RlbmVyU2Vj
dGlvbkdyb3VwID0gY2xhc3MgRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91cCBleHRlbmRzIFdJLkRl
dGFpbAogCiAgICAgX2Z1bmN0aW9uVGV4dE9yTGluaygpCiAgICAgewotICAgICAgICB2YXIgbWF0
Y2ggPSB0aGlzLl9ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNoKC9mdW5jdGlvbiAoW15c
KF0rPylcKC8pOwotICAgICAgICBpZiAobWF0Y2gpIHsKLSAgICAgICAgICAgIHZhciBhbm9ueW1v
dXMgPSBmYWxzZTsKLSAgICAgICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSBtYXRjaFsxXTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHZhciBhbm9ueW1vdXMgPSB0cnVlOwotICAgICAg
ICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IFdJLlVJU3RyaW5nKCIoYW5vbnltb3VzIGZ1bmN0aW9u
KSIpOworICAgICAgICBsZXQgYW5vbnltb3VzID0gZmFsc2U7CisgICAgICAgIGxldCBmdW5jdGlv
bk5hbWUgPSB0aGlzLl9ldmVudExpc3RlbmVyLmhhbmRsZXJOYW1lOworCisgICAgICAgIC8vIENP
TVBBVElCSUxJVFkgKGlPUyAxMi4yKTogRE9NLkV2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkgd2Fz
IHJlcGxhY2VkIGJ5IERPTS5FdmVudExpc3RlbmVyLmhhbmRsZXJOYW1lLgorICAgICAgICBpZiAo
IWZ1bmN0aW9uTmFtZSAmJiB0aGlzLl9ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5KSB7CisgICAg
ICAgICAgICBsZXQgbWF0Y2ggPSB0aGlzLl9ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNo
KC9mdW5jdGlvbiAoW15cKF0rPylcKC8pOworICAgICAgICAgICAgaWYgKG1hdGNoKQorICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uTmFtZSA9IG1hdGNoWzFdOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKCFmdW5jdGlvbk5hbWUpIHsKKyAgICAgICAgICAgIGFub255bW91cyA9IHRydWU7CisgICAg
ICAgICAgICBmdW5jdGlvbk5hbWUgPSBXSS5VSVN0cmluZygiKGFub255bW91cyBmdW5jdGlvbiki
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghdGhpcy5fZXZlbnRMaXN0ZW5lci5sb2NhdGlv
bikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBiNTFhZGFkZDEyMjRiMmE4ZjMyYTI0YmYwNmFmY2UyODNmYTA1NTVlLi4wMGRm
ZWFkN2U2YzRhYzkzMzZhNmM4MGY3NDA3NGZkOWQ3NmFjODU3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTktMDItMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IERPTTogZG9uJ3Qgc2VuZCB0aGUgZW50aXJlIGZ1bmN0aW9uIHN0
cmluZyB3aXRoIGVhY2ggZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDI5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc4
MjI4MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLWV4cGVjdGVkLnR4dDoKKwog
MjAxOS0wMi0wNSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIExheW91dCB0ZXN0cyBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUt
MDA3Lmh0bWwgYW5kIGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDguaHRtbCBhcmUg
ZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRFdmVudExp
c3RlbmVyc0Zvck5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9n
ZXRFdmVudExpc3RlbmVyc0Zvck5vZGUtZXhwZWN0ZWQudHh0CmluZGV4IDI2YjEyMjU2MjY4YTJm
NzZmYjY0ZjQ3MTg0OWZhYjFhYjdmMmM0NjkuLjkxMTk0ZWI5NmNmNjFiZGNhYWU3YmNlZTUwN2Nh
NGIzOWUxMzUwZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZl
bnRMaXN0ZW5lcnNGb3JOb2RlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS1leHBlY3RlZC50eHQKQEAgLTMsMzQgKzMs
NzQgQEAgVGVzdGluZyBET01BZ2VudC5nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuCiAKID09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogRE9NLmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZQogLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IERPTS5nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuQmFzaWMKLUV2ZW50OiBh
bHBoYQorRXZlbnQ6IEEKK05vZGU6IGJvZHkKK0NhcHR1cmU6IHRydWUKK0F0dHJpYnV0ZTogZmFs
c2UKK0hhbmRsZXIgTmFtZTogYm9keUEKK1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBz
b3VyY2UgbG9jYXRpb24uCisKK0V2ZW50OiBCCiBOb2RlOiBib2R5CiBDYXB0dXJlOiB0cnVlCiBB
dHRyaWJ1dGU6IGZhbHNlCiBQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxv
Y2F0aW9uLgotUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIGZ1bmN0aW9uLgogCi1FdmVu
dDogYmV0YQorRXZlbnQ6IEUKIE5vZGU6IGRpdiN4CiBDYXB0dXJlOiBmYWxzZQogQXR0cmlidXRl
OiBmYWxzZQorSGFuZGxlciBOYW1lOiBPYmplY3RFdmVudEhhbmRsZXIKK1BBU1M6IFRoZSBFdmVu
dCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCisKK0V2ZW50OiBECitOb2RlOiBkaXYj
eAorQ2FwdHVyZTogZmFsc2UKK0F0dHJpYnV0ZTogZmFsc2UKK0hhbmRsZXIgTmFtZTogaGFuZGxl
RXZlbnQKK1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCisK
K0V2ZW50OiBDCitOb2RlOiBkaXYjeAorQ2FwdHVyZTogZmFsc2UKK0F0dHJpYnV0ZTogZmFsc2UK
K1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCisKK0V2ZW50
OiBCCitOb2RlOiBkaXYjeAorQ2FwdHVyZTogZmFsc2UKK0F0dHJpYnV0ZTogZmFsc2UKK0hhbmRs
ZXIgTmFtZTogeEIKIE9uY2U6IHRydWUKIFBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBz
b3VyY2UgbG9jYXRpb24uCi1QQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgZnVuY3Rpb24u
CiAKLUV2ZW50OiBhbHBoYQorRXZlbnQ6IEEKIE5vZGU6IGRpdiN4CiBDYXB0dXJlOiBmYWxzZQog
QXR0cmlidXRlOiBmYWxzZQorSGFuZGxlciBOYW1lOiB4QQogUEFTUzogVGhlIEV2ZW50IExpc3Rl
bmVyIGhhcyBhIHNvdXJjZSBsb2NhdGlvbi4KLVBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMg
YSBmdW5jdGlvbi4KIAotRXZlbnQ6IGFscGhhCitFdmVudDogY2xpY2sKK05vZGU6IGRpdiN4CitD
YXB0dXJlOiBmYWxzZQorQXR0cmlidXRlOiB0cnVlCitIYW5kbGVyIE5hbWU6IG9uY2xpY2sKK1BB
U1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCisKK0V2ZW50OiBC
CiBOb2RlOiAjZG9jdW1lbnQKIENhcHR1cmU6IGZhbHNlCiBBdHRyaWJ1dGU6IGZhbHNlCiBQYXNz
aXZlOiB0cnVlCiBQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0aW9u
LgotUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIGZ1bmN0aW9uLgorCitFdmVudDogQQor
Tm9kZTogI2RvY3VtZW50CitDYXB0dXJlOiBmYWxzZQorQXR0cmlidXRlOiBmYWxzZQorSGFuZGxl
ciBOYW1lOiBkb2N1bWVudEEKK1Bhc3NpdmU6IHRydWUKK1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5l
ciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RvbS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLmh0bWwKaW5kZXggNjk3ZTUzMjZm
ZGQ2M2Q5NmM4YTg4ZGYzZWIzYzZlZjY4YmYwZjhhYS4uMGQzZTY2N2FjOTVlYjkyYjljMzE5NDlj
MTBkMzI2ODBmNzA2MzdhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9n
ZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS5odG1sCkBAIC0yNywxMyArMjcsMTQgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYENh
cHR1cmU6ICR7ZXZlbnRMaXN0ZW5lci51c2VDYXB0dXJlfWApOwogICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZyhgQXR0cmlidXRlOiAke2V2ZW50TGlzdGVuZXIuaXNBdHRyaWJ1
dGV9YCk7CiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50TGlzdGVuZXIuaGFuZGxlck5h
bWUpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgSGFuZGxlciBO
YW1lOiAke2V2ZW50TGlzdGVuZXIuaGFuZGxlck5hbWV9YCk7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChldmVudExpc3RlbmVyLnBhc3NpdmUpCiAgICAgICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZyhgUGFzc2l2ZTogJHtldmVudExpc3RlbmVyLnBhc3NpdmV9YCk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChldmVudExpc3RlbmVyLm9uY2UpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgT25jZTogJHtldmVudExpc3RlbmVyLm9uY2V9YCk7
CiAKICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2ZW50TGlz
dGVuZXIubG9jYXRpb24sICJUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0aW9u
LiIpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXZlbnRM
aXN0ZW5lci5oYW5kbGVyQm9keSwgIlRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBmdW5jdGlvbi4i
KTsKIAogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAgICAgICAg
ICAgICAgICAgfQpAQCAtNjIsMTUgKzYzLDI0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiA8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+CiAgICAgPHA+VGVzdGluZyBET01BZ2VudC5nZXRFdmVudExpc3Rl
bmVyc0Zvck5vZGUuPC9wPgogCi0gICAgPGRpdiBpZD0ieCI+PC9kaXY+CisgICAgPGRpdiBpZD0i
eCIgb25jbGljaz0iKGZ1bmN0aW9uIHhDbGljayhldmVudCkgeyB9KSgpIj48L2Rpdj4KICAgICA8
c2NyaXB0PgorICAgICAgICBjbGFzcyBPYmplY3RFdmVudEhhbmRsZXIgeworICAgICAgICAgICAg
aGFuZGxlRXZlbnQoZXZlbnQpIHsgfQorICAgICAgICB9CisKICAgICAgICAgbGV0IGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieCIpOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImFscGhhIiwgKGV2ZW50KSA9PiB7fSk7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiYmV0YSIsIChldmVudCkgPT4ge30sIHtvbmNlOiB0cnVlfSk7CisgICAgICAg
IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiQSIsIGZ1bmN0aW9uIHhBKGV2ZW50KSB7IH0pOwor
ICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkIiLCBmdW5jdGlvbiB4QihldmVudCkg
eyB9LCB7b25jZTogdHJ1ZX0pOworICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkMi
LCAoZXZlbnQpID0+IHsgfSk7CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRCIs
IHsgaGFuZGxlRXZlbnQoZXZlbnQpIHsgfSB9KTsKKyAgICAgICAgZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJFIiwgbmV3IE9iamVjdEV2ZW50SGFuZGxlcik7CiAKLSAgICAgICAgZG9jdW1lbnQu
Ym9keS5hZGRFdmVudExpc3RlbmVyKCJhbHBoYSIsIChldmVudCkgPT4ge30sIHRydWUpOworICAg
ICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoIkEiLCBmdW5jdGlvbiBib2R5QShl
dmVudCkgeyB9LCB0cnVlKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVy
KCJCIiwgKGV2ZW50KSA9PiB7fSwgdHJ1ZSk7CiAKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiYWxwaGEiLCAoZXZlbnQpID0+IHt9LCB7cGFzc2l2ZTogdHJ1ZX0pOworICAgICAg
ICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJBIiwgZnVuY3Rpb24gZG9jdW1lbnRBKGV2ZW50
KSB7IH0sIHtwYXNzaXZlOiB0cnVlfSk7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIkIiLCAoZXZlbnQpID0+IHt9LCB7cGFzc2l2ZTogdHJ1ZX0pOwogICAgIDwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361327</attachid>
            <date>2019-02-06 14:12:12 -0800</date>
            <delta_ts>2019-02-06 15:10:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194293-20190206141211.patch</filename>
            <type>text/plain</type>
            <size>16941</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZiODM4OWQzOGQ5ODBlODZkNjc5MmYzYjgxMDNj
YTkwMmFkNmY1ZTIuLjJhMjEwNzAwNWNlNmNlYWY4ZWFjZTY5N2FhODBlMTZiZTA3NzIzMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAyLTA2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
T006IGRvbid0IHNlbmQgdGhlIGVudGlyZSBmdW5jdGlvbiBzdHJpbmcgd2l0aCBlYWNoIGV2ZW50
IGxpc3RlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3ODIyODA5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2Nv
bC9ET00uanNvbjoKKworICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICBF
eHBvcnQgYGNhbGN1bGF0ZWREaXNwbGF5TmFtZWAuCisKIDIwMTktMDItMDUgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBERkcncyBkb2VzR0MoKSBmb3IgYSBm
ZXcgbW9yZSBub2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzODk2NjIwYzdjM2E4ZjJiYzMxOWYzNzI2ZTJi
ZTEyMDg5Mjk2MjllLi5hMDE4YzViMWJmZjMyMjQ5NzYzZmIwNjkyMWIwYWQzMzY2M2VmNzMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDItMDYgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTTogZG9uJ3Qgc2Vu
ZCB0aGUgZW50aXJlIGZ1bmN0aW9uIHN0cmluZyB3aXRoIGVhY2ggZXZlbnQgbGlzdGVuZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDI5MworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDc4MjI4MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9z
ZXBoIFBlY29yYXJvLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0
ZW5lcnNGb3JOb2RlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcik6CisKIDIwMTktMDItMDUgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTdG9wIHVzaW5nIGJsb2JSZWdp
c3RyeSBpbiBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMWM0MzM4
YWNlYWZlNTM5NjZiZWJjMjNiMGYwNGNjNDU1YjUyZmUzMi4uODY1MDVhNGU2YjAzYzgwNjQzMzc4
MGM1YWYwZDI2Njc2NDY5ZDA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTktMDItMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTTogZG9uJ3Qgc2VuZCB0aGUgZW50aXJlIGZ1bmN0aW9u
IHN0cmluZyB3aXRoIGVhY2ggZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDI5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NDc4MjI4MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzOgor
ICAgICAgICAoV0kuRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91cC5wcm90b3R5cGUuX2Z1bmN0aW9u
VGV4dE9yTGluayk6CisKIDIwMTktMDItMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IExvdHMgb2YgdGltZSBzcGVudCB1cGRhdGlu
ZyByZWxhdGVkIHJlc291cmNlcyBpbiBSZXNvdXJjZURldGFpbHNTaWRlYmFyIHdoZW4gbG9hZGlu
ZyBhIHBhZ2Ugd2l0aCBsb3RzIG9mIHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KaW5kZXggNzgxNjA5ZDFkZTk2YjA2ZjQ1
Y2FmYjZlMzQxNjQ3YjU2MzM5MjI4My4uMDEzYzJiYjJlMzFiNDA2OTk4Mjc3MDdlZGFhMjM3ZjE2
YzhlM2VhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9ET00uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0RPTS5qc29uCkBAIC03OSwxMCArNzksOSBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidXNlQ2FwdHVyZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+
RXZlbnRMaXN0ZW5lcjwvY29kZT4ncyB1c2VDYXB0dXJlLiIgfSwKICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImlzQXR0cmlidXRlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6
ICI8Y29kZT5FdmVudExpc3RlbmVyPC9jb2RlPidzIGlzQXR0cmlidXRlLiIgfSwKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlv
biI6ICJUYXJnZXQgPGNvZGU+RE9NTm9kZTwvY29kZT4gaWQuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGFuZGxlckJvZHkiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiRXZlbnQgaGFuZGxlciBmdW5jdGlvbiBib2R5LiIgfSwKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImxvY2F0aW9uIiwgIiRyZWYiOiAiRGVidWdnZXIuTG9jYXRpb24iLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSGFuZGxlciBjb2RlIGxvY2F0aW9uLiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIHNjcmlwdCBVUkwuIiB9LAotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlciIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3Rl
T2JqZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkV2ZW50IGhhbmRsZXIg
ZnVuY3Rpb24gdmFsdWUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlck5h
bWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
RXZlbnQgaGFuZGxlciBmdW5jdGlvbiBuYW1lLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhhbmRsZXJPYmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFdmVudCBoYW5kbGVyIGZ1bmN0aW9uIHZhbHVl
LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhc3NpdmUiLCAidHlwZSI6ICJib29s
ZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIjxjb2RlPkV2ZW50TGlzdGVu
ZXI8L2NvZGU+J3MgcGFzc2l2ZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvbmNl
IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICI8
Y29kZT5FdmVudExpc3RlbmVyPC9jb2RlPidzIG9uY2UuIiB9LAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZGlzYWJsZWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSB9
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDNiZjA2
NzY1OGMzYWYzOGU3NTk3ODRlMDZhN2I0ZGRlNDM4MjNmN2UuLjI0MmM4ZDZiY2I0YmRkZjBhOTJk
MGU2N2FlZTQ0YmQyM2FlZDM4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgU3RyaW5nIG5hbWUoVk0mKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGlz
cGxheU5hbWUoVk0mKTsKLSAgICBjb25zdCBTdHJpbmcgY2FsY3VsYXRlZERpc3BsYXlOYW1lKFZN
Jik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgU3RyaW5nIGNhbGN1bGF0ZWREaXNwbGF5
TmFtZShWTSYpOwogCiAgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUoKSBjb25zdCB7IHJl
dHVybiBtX2V4ZWN1dGFibGUuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA4Nzk3NjYxZjIzNDE4
MWY2YTQxNGJjYjkzYmNiMTg3NjYyNTI1YTc5Li4zOTRiZDVmZTE5MjFjMzE5MzhmNGIxMDI1MTBj
OTBjYzE0N2ZmODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMTY2MywyOCArMTY2Myw0OCBAQCBSZWY8SW5z
cGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExpc3RlbmVyPiBJbnNwZWN0b3JET01BZ2VudDo6
YnVpbGRPYmplY3RGb3JFdgogewogICAgIFJlZjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVy
ID0gcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY2FsbGJhY2soKTsKIAotICAgIEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSA9IG51bGxwdHI7Ci0gICAgSlNDOjpKU09iamVjdCogaGFuZGxlciA9IG51bGxw
dHI7Ci0gICAgU3RyaW5nIGJvZHk7CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBudWxscHRy
OworICAgIEpTQzo6SlNPYmplY3QqIGhhbmRsZXJPYmplY3QgPSBudWxscHRyOworICAgIEpTQzo6
SlNGdW5jdGlvbiogaGFuZGxlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICBTdHJpbmcgaGFuZGxl
ck5hbWU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1bW5OdW1iZXIgPSAw
OwogICAgIFN0cmluZyBzY3JpcHRJRDsKLSAgICBTdHJpbmcgc291cmNlTmFtZTsKICAgICBpZiAo
aXM8SlNFdmVudExpc3RlbmVyPihldmVudExpc3RlbmVyLmdldCgpKSkgewogICAgICAgICBhdXRv
JiBzY3JpcHRMaXN0ZW5lciA9IGRvd25jYXN0PEpTRXZlbnRMaXN0ZW5lcj4oZXZlbnRMaXN0ZW5l
ci5nZXQoKSk7CisKICAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhzY3JpcHRMaXN0ZW5l
ci5pc29sYXRlZFdvcmxkKCkudm0oKSk7Ci0gICAgICAgIHN0YXRlID0gZXhlY1N0YXRlRnJvbU5v
ZGUoc2NyaXB0TGlzdGVuZXIuaXNvbGF0ZWRXb3JsZCgpLCAmbm9kZS0+ZG9jdW1lbnQoKSk7Ci0g
ICAgICAgIGhhbmRsZXIgPSBzY3JpcHRMaXN0ZW5lci5qc0Z1bmN0aW9uKG5vZGUtPmRvY3VtZW50
KCkpOwotICAgICAgICBpZiAoaGFuZGxlciAmJiBzdGF0ZSkgewotICAgICAgICAgICAgYm9keSA9
IGhhbmRsZXItPnRvU3RyaW5nKHN0YXRlKS0+dmFsdWUoc3RhdGUpOwotICAgICAgICAgICAgaWYg
KGF1dG8gZnVuY3Rpb24gPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU0Z1bmN0aW9uKj4oc3Rh
dGUtPnZtKCksIGhhbmRsZXIpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFmdW5jdGlvbi0+aXNI
b3N0T3JCdWlsdGluRnVuY3Rpb24oKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBl
eGVjdXRhYmxlID0gZnVuY3Rpb24tPmpzRXhlY3V0YWJsZSgpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBsaW5lTnVtYmVyID0gZXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCkgLSAxOwotICAgICAg
ICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyID0gZXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4o
KSAtIDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRJRCA9IGV4ZWN1dGFibGUtPnNv
dXJjZUlEKCkgPT0gSlNDOjpTb3VyY2VQcm92aWRlcjo6bnVsbElEID8gZW1wdHlTdHJpbmcoKSA6
IFN0cmluZzo6bnVtYmVyKGV4ZWN1dGFibGUtPnNvdXJjZUlEKCkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgc291cmNlTmFtZSA9IGV4ZWN1dGFibGUtPnNvdXJjZVVSTCgpOwotICAgICAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgZXhlYyA9IGV4ZWNTdGF0ZUZyb21Ob2RlKHNjcmlwdExp
c3RlbmVyLmlzb2xhdGVkV29ybGQoKSwgJm5vZGUtPmRvY3VtZW50KCkpOworICAgICAgICBoYW5k
bGVyT2JqZWN0ID0gc2NyaXB0TGlzdGVuZXIuanNGdW5jdGlvbihub2RlLT5kb2N1bWVudCgpKTsK
KyAgICAgICAgaWYgKGhhbmRsZXJPYmplY3QgJiYgZXhlYykgeworICAgICAgICAgICAgaGFuZGxl
ckZ1bmN0aW9uID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNGdW5jdGlvbio+KGV4ZWMtPnZt
KCksIGhhbmRsZXJPYmplY3QpOworCisgICAgICAgICAgICBpZiAoIWhhbmRsZXJGdW5jdGlvbikg
eworICAgICAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsK
KworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBoYW5kbGVyIGlzIG5vdCBhY3R1YWxseSBhIGZ1
bmN0aW9uLCBzZWUgaWYgaXQgaW1wbGVtZW50cyB0aGUgRXZlbnRMaXN0ZW5lciBpbnRlcmZhY2Ug
YW5kIHVzZSB0aGF0LgorICAgICAgICAgICAgICAgIGF1dG8gaGFuZGxlRXZlbnRWYWx1ZSA9IGhh
bmRsZXJPYmplY3QtPmdldChleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywg
ImhhbmRsZUV2ZW50IikpOworCisgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4
Y2VwdGlvbigpKSkKKyAgICAgICAgICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsK
KworICAgICAgICAgICAgICAgIGlmIChoYW5kbGVFdmVudFZhbHVlKQorICAgICAgICAgICAgICAg
ICAgICBoYW5kbGVyRnVuY3Rpb24gPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU0Z1bmN0aW9u
Kj4oZXhlYy0+dm0oKSwgaGFuZGxlRXZlbnRWYWx1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmIChoYW5kbGVyRnVuY3Rpb24gJiYgIWhhbmRsZXJGdW5jdGlvbi0+aXNIb3N0T3JC
dWlsdGluRnVuY3Rpb24oKSkgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsaXN0ZW5lciBp
bXBsZW1lbnRzIHRoZSBFdmVudExpc3RlbmVyIGludGVyZmFjZSwgdXNlIHRoZSBjbGFzcyBuYW1l
IGluc3RlYWQgb2YKKyAgICAgICAgICAgICAgICAvLyAiaGFuZGxlRXZlbnQiLCB1bmxlc3MgaXQg
aXMgYSBwbGFpbiBvYmplY3QuCisgICAgICAgICAgICAgICAgaWYgKGhhbmRsZXJGdW5jdGlvbiAh
PSBoYW5kbGVyT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICBoYW5kbGVyTmFtZSA9IEpTQzo6
SlNPYmplY3Q6OmNhbGN1bGF0ZWRDbGFzc05hbWUoaGFuZGxlck9iamVjdCk7CisgICAgICAgICAg
ICAgICAgaWYgKGhhbmRsZXJOYW1lLmlzRW1wdHkoKSB8fCBoYW5kbGVyTmFtZSA9PSAiT2JqZWN0
Il9zKQorICAgICAgICAgICAgICAgICAgICBoYW5kbGVyTmFtZSA9IGhhbmRsZXJGdW5jdGlvbi0+
Y2FsY3VsYXRlZERpc3BsYXlOYW1lKGV4ZWMtPnZtKCkpOworCisgICAgICAgICAgICAgICAgaWYg
KGF1dG8gZXhlY3V0YWJsZSA9IGhhbmRsZXJGdW5jdGlvbi0+anNFeGVjdXRhYmxlKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgbGluZU51bWJlciA9IGV4ZWN1dGFibGUtPmZpcnN0TGluZSgpIC0g
MTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyID0gZXhlY3V0YWJsZS0+c3RhcnRD
b2x1bW4oKSAtIDE7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdElEID0gZXhlY3V0YWJsZS0+
c291cmNlSUQoKSA9PSBKU0M6OlNvdXJjZVByb3ZpZGVyOjpudWxsSUQgPyBlbXB0eVN0cmluZygp
IDogU3RyaW5nOjpudW1iZXIoZXhlY3V0YWJsZS0+c291cmNlSUQoKSk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjk2LDEyICsxNzE2LDExIEBAIFJl
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkV2ZW50TGlzdGVuZXI+IEluc3BlY3RvckRPTUFn
ZW50OjpidWlsZE9iamVjdEZvckV2CiAgICAgICAgIC5zZXRVc2VDYXB0dXJlKHJlZ2lzdGVyZWRF
dmVudExpc3RlbmVyLnVzZUNhcHR1cmUoKSkKICAgICAgICAgLnNldElzQXR0cmlidXRlKGV2ZW50
TGlzdGVuZXItPmlzQXR0cmlidXRlKCkpCiAgICAgICAgIC5zZXROb2RlSWQocHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChub2RlKSkKLSAgICAgICAgLnNldEhhbmRsZXJCb2R5KGJvZHkpCiAgICAgICAg
IC5yZWxlYXNlKCk7Ci0gICAgaWYgKG9iamVjdEdyb3VwSWQgJiYgaGFuZGxlciAmJiBzdGF0ZSkg
ewotICAgICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmluamVjdGVkU2NyaXB0Rm9yKHN0YXRlKTsKKyAgICBpZiAob2JqZWN0R3JvdXBJ
ZCAmJiBoYW5kbGVyT2JqZWN0ICYmIGV4ZWMpIHsKKyAgICAgICAgSW5qZWN0ZWRTY3JpcHQgaW5q
ZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbmplY3RlZFNjcmlwdEZvcihl
eGVjKTsKICAgICAgICAgaWYgKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCi0gICAgICAg
ICAgICB2YWx1ZS0+c2V0SGFuZGxlcihpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KGhhbmRsZXIs
ICpvYmplY3RHcm91cElkKSk7CisgICAgICAgICAgICB2YWx1ZS0+c2V0SGFuZGxlck9iamVjdChp
bmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KGhhbmRsZXJPYmplY3QsICpvYmplY3RHcm91cElkKSk7
CiAgICAgfQogICAgIGlmICghc2NyaXB0SUQuaXNOdWxsKCkpIHsKICAgICAgICAgYXV0byBsb2Nh
dGlvbiA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRlYnVnZ2VyOjpMb2NhdGlvbjo6Y3JlYXRlKCkK
QEAgLTE3MTAsOSArMTcyOSw5IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkV2ZW50
TGlzdGVuZXI+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2CiAgICAgICAgICAg
ICAucmVsZWFzZSgpOwogICAgICAgICBsb2NhdGlvbi0+c2V0Q29sdW1uTnVtYmVyKGNvbHVtbk51
bWJlcik7CiAgICAgICAgIHZhbHVlLT5zZXRMb2NhdGlvbihXVEZNb3ZlKGxvY2F0aW9uKSk7Ci0g
ICAgICAgIGlmICghc291cmNlTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICB2YWx1ZS0+c2V0
U291cmNlTmFtZShzb3VyY2VOYW1lKTsKICAgICB9CisgICAgaWYgKCFoYW5kbGVyTmFtZS5pc0Vt
cHR5KCkpCisgICAgICAgIHZhbHVlLT5zZXRIYW5kbGVyTmFtZShoYW5kbGVyTmFtZSk7CiAgICAg
aWYgKHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmlzUGFzc2l2ZSgpKQogICAgICAgICB2YWx1ZS0+
c2V0UGFzc2l2ZSh0cnVlKTsKICAgICBpZiAocmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaXNPbmNl
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91cC5qcwppbmRleCAxODFk
MDU5ZGZkNGEyYjgwODQzYTczNzE1NDUzZjcwNWY4MjFhODZjLi44OTRmZWQxMGZmNWNhYTA1NTY4
NGVhMmZmNzg5MmUxMThmOGE3MDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0V2ZW50TGlzdGVuZXJTZWN0
aW9uR3JvdXAuanMKQEAgLTgwLDEzICs4MCwxOSBAQCBXSS5FdmVudExpc3RlbmVyU2VjdGlvbkdy
b3VwID0gY2xhc3MgRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91cCBleHRlbmRzIFdJLkRldGFpbAog
CiAgICAgX2Z1bmN0aW9uVGV4dE9yTGluaygpCiAgICAgewotICAgICAgICB2YXIgbWF0Y2ggPSB0
aGlzLl9ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNoKC9mdW5jdGlvbiAoW15cKF0rPylc
KC8pOwotICAgICAgICBpZiAobWF0Y2gpIHsKLSAgICAgICAgICAgIHZhciBhbm9ueW1vdXMgPSBm
YWxzZTsKLSAgICAgICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSBtYXRjaFsxXTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHZhciBhbm9ueW1vdXMgPSB0cnVlOwotICAgICAgICAgICAg
dmFyIGZ1bmN0aW9uTmFtZSA9IFdJLlVJU3RyaW5nKCIoYW5vbnltb3VzIGZ1bmN0aW9uKSIpOwor
ICAgICAgICBsZXQgYW5vbnltb3VzID0gZmFsc2U7CisgICAgICAgIGxldCBmdW5jdGlvbk5hbWUg
PSB0aGlzLl9ldmVudExpc3RlbmVyLmhhbmRsZXJOYW1lOworCisgICAgICAgIC8vIENPTVBBVElC
SUxJVFkgKGlPUyAxMi4yKTogRE9NLkV2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkgd2FzIHJlcGxh
Y2VkIGJ5IERPTS5FdmVudExpc3RlbmVyLmhhbmRsZXJOYW1lLgorICAgICAgICBpZiAoIWZ1bmN0
aW9uTmFtZSAmJiB0aGlzLl9ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5KSB7CisgICAgICAgICAg
ICBsZXQgbWF0Y2ggPSB0aGlzLl9ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNoKC9mdW5j
dGlvbiAoW15cKF0rPylcKC8pOworICAgICAgICAgICAgaWYgKG1hdGNoKQorICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uTmFtZSA9IG1hdGNoWzFdOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFm
dW5jdGlvbk5hbWUpIHsKKyAgICAgICAgICAgIGFub255bW91cyA9IHRydWU7CisgICAgICAgICAg
ICBmdW5jdGlvbk5hbWUgPSBXSS5VSVN0cmluZygiKGFub255bW91cyBmdW5jdGlvbikiKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGlmICghdGhpcy5fZXZlbnRMaXN0ZW5lci5sb2NhdGlvbikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiNTFhZGFkZDEyMjRiMmE4ZjMyYTI0YmYwNmFmY2UyODNmYTA1NTVlLi41NzRiOGIzMDhm
NTU3ZjA3MWRjOTcxNDk1OTU0MmY5MmE0NTZiYjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTktMDItMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IERPTTogZG9uJ3Qgc2VuZCB0aGUgZW50aXJlIGZ1bmN0aW9uIHN0cmluZyB3
aXRoIGVhY2ggZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NDI5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc4MjI4MDk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICogaW5z
cGVjdG9yL2RvbS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS1leHBlY3RlZC50eHQ6CisKIDIwMTkt
MDItMDUgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBMYXlvdXQgdGVzdHMgZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNy5o
dG1sIGFuZCBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA4Lmh0bWwgYXJlIGZhaWxp
bmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0ZW5l
cnNGb3JOb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZl
bnRMaXN0ZW5lcnNGb3JOb2RlLWV4cGVjdGVkLnR4dAppbmRleCAyNmIxMjI1NjI2OGEyZjc2ZmI2
NGY0NzE4NDlmYWIxYWI3ZjJjNDY5Li45MTE5NGViOTZjZjYxYmRjYWFlN2JjZWU1MDdjYTRiMzll
MTM1MGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlz
dGVuZXJzRm9yTm9kZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUtZXhwZWN0ZWQudHh0CkBAIC0zLDM0ICszLDc0IEBA
IFRlc3RpbmcgRE9NQWdlbnQuZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLgogCiA9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IERPTS5nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUKIC0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBET00uZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLkJhc2ljCi1FdmVudDogYWxwaGEK
K0V2ZW50OiBBCitOb2RlOiBib2R5CitDYXB0dXJlOiB0cnVlCitBdHRyaWJ1dGU6IGZhbHNlCitI
YW5kbGVyIE5hbWU6IGJvZHlBCitQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNl
IGxvY2F0aW9uLgorCitFdmVudDogQgogTm9kZTogYm9keQogQ2FwdHVyZTogdHJ1ZQogQXR0cmli
dXRlOiBmYWxzZQogUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIHNvdXJjZSBsb2NhdGlv
bi4KLVBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBmdW5jdGlvbi4KIAotRXZlbnQ6IGJl
dGEKK0V2ZW50OiBFCiBOb2RlOiBkaXYjeAogQ2FwdHVyZTogZmFsc2UKIEF0dHJpYnV0ZTogZmFs
c2UKK0hhbmRsZXIgTmFtZTogT2JqZWN0RXZlbnRIYW5kbGVyCitQQVNTOiBUaGUgRXZlbnQgTGlz
dGVuZXIgaGFzIGEgc291cmNlIGxvY2F0aW9uLgorCitFdmVudDogRAorTm9kZTogZGl2I3gKK0Nh
cHR1cmU6IGZhbHNlCitBdHRyaWJ1dGU6IGZhbHNlCitIYW5kbGVyIE5hbWU6IGhhbmRsZUV2ZW50
CitQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0aW9uLgorCitFdmVu
dDogQworTm9kZTogZGl2I3gKK0NhcHR1cmU6IGZhbHNlCitBdHRyaWJ1dGU6IGZhbHNlCitQQVNT
OiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0aW9uLgorCitFdmVudDogQgor
Tm9kZTogZGl2I3gKK0NhcHR1cmU6IGZhbHNlCitBdHRyaWJ1dGU6IGZhbHNlCitIYW5kbGVyIE5h
bWU6IHhCCiBPbmNlOiB0cnVlCiBQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNl
IGxvY2F0aW9uLgotUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIGZ1bmN0aW9uLgogCi1F
dmVudDogYWxwaGEKK0V2ZW50OiBBCiBOb2RlOiBkaXYjeAogQ2FwdHVyZTogZmFsc2UKIEF0dHJp
YnV0ZTogZmFsc2UKK0hhbmRsZXIgTmFtZTogeEEKIFBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBo
YXMgYSBzb3VyY2UgbG9jYXRpb24uCi1QQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgZnVu
Y3Rpb24uCiAKLUV2ZW50OiBhbHBoYQorRXZlbnQ6IGNsaWNrCitOb2RlOiBkaXYjeAorQ2FwdHVy
ZTogZmFsc2UKK0F0dHJpYnV0ZTogdHJ1ZQorSGFuZGxlciBOYW1lOiBvbmNsaWNrCitQQVNTOiBU
aGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0aW9uLgorCitFdmVudDogQgogTm9k
ZTogI2RvY3VtZW50CiBDYXB0dXJlOiBmYWxzZQogQXR0cmlidXRlOiBmYWxzZQogUGFzc2l2ZTog
dHJ1ZQogUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIHNvdXJjZSBsb2NhdGlvbi4KLVBB
U1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBmdW5jdGlvbi4KKworRXZlbnQ6IEEKK05vZGU6
ICNkb2N1bWVudAorQ2FwdHVyZTogZmFsc2UKK0F0dHJpYnV0ZTogZmFsc2UKK0hhbmRsZXIgTmFt
ZTogZG9jdW1lbnRBCitQYXNzaXZlOiB0cnVlCitQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFz
IGEgc291cmNlIGxvY2F0aW9uLgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20vZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS5odG1sCmluZGV4IDY5N2U1MzI2ZmRkNjNk
OTZjOGE4OGRmM2ViM2M2ZWY2OGJmMGY4YWEuLjBkM2U2NjdhYzk1ZWI5MmI5YzMxOTQ5YzEwZDMy
NjgwZjcwNjM3YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZl
bnRMaXN0ZW5lcnNGb3JOb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9n
ZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuaHRtbApAQCAtMjcsMTMgKzI3LDE0IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDYXB0dXJl
OiAke2V2ZW50TGlzdGVuZXIudXNlQ2FwdHVyZX1gKTsKICAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coYEF0dHJpYnV0ZTogJHtldmVudExpc3RlbmVyLmlzQXR0cmlidXRlfWAp
OwogCisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudExpc3RlbmVyLmhhbmRsZXJOYW1lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYEhhbmRsZXIgTmFtZTog
JHtldmVudExpc3RlbmVyLmhhbmRsZXJOYW1lfWApOwogICAgICAgICAgICAgICAgICAgICBpZiAo
ZXZlbnRMaXN0ZW5lci5wYXNzaXZlKQogICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coYFBhc3NpdmU6ICR7ZXZlbnRMaXN0ZW5lci5wYXNzaXZlfWApOwogICAgICAgICAg
ICAgICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lci5vbmNlKQogICAgICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coYE9uY2U6ICR7ZXZlbnRMaXN0ZW5lci5vbmNlfWApOwogCiAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChldmVudExpc3RlbmVy
LmxvY2F0aW9uLCAiVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIHNvdXJjZSBsb2NhdGlvbi4iKTsK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2ZW50TGlzdGVu
ZXIuaGFuZGxlckJvZHksICJUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgZnVuY3Rpb24uIik7CiAK
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOwogICAgICAgICAgICAg
ICAgIH0KQEAgLTYyLDE1ICs2MywyNCBAQCBmdW5jdGlvbiB0ZXN0KCkgewogPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgogICAgIDxwPlRlc3RpbmcgRE9NQWdlbnQuZ2V0RXZlbnRMaXN0ZW5lcnNG
b3JOb2RlLjwvcD4KIAotICAgIDxkaXYgaWQ9IngiPjwvZGl2PgorICAgIDxkaXYgaWQ9IngiIG9u
Y2xpY2s9IihmdW5jdGlvbiB4Q2xpY2soZXZlbnQpIHsgfSkoKSI+PC9kaXY+CiAgICAgPHNjcmlw
dD4KKyAgICAgICAgY2xhc3MgT2JqZWN0RXZlbnRIYW5kbGVyIHsKKyAgICAgICAgICAgIGhhbmRs
ZUV2ZW50KGV2ZW50KSB7IH0KKyAgICAgICAgfQorCiAgICAgICAgIGxldCBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngiKTsKLSAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJhbHBoYSIsIChldmVudCkgPT4ge30pOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImJldGEiLCAoZXZlbnQpID0+IHt9LCB7b25jZTogdHJ1ZX0pOworICAgICAgICBlbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIkEiLCBmdW5jdGlvbiB4QShldmVudCkgeyB9KTsKKyAgICAg
ICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJCIiwgZnVuY3Rpb24geEIoZXZlbnQpIHsgfSwg
e29uY2U6IHRydWV9KTsKKyAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJDIiwgKGV2
ZW50KSA9PiB7IH0pOworICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkQiLCB7IGhh
bmRsZUV2ZW50KGV2ZW50KSB7IH0gfSk7CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiRSIsIG5ldyBPYmplY3RFdmVudEhhbmRsZXIpOwogCi0gICAgICAgIGRvY3VtZW50LmJvZHku
YWRkRXZlbnRMaXN0ZW5lcigiYWxwaGEiLCAoZXZlbnQpID0+IHt9LCB0cnVlKTsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJBIiwgZnVuY3Rpb24gYm9keUEoZXZlbnQp
IHsgfSwgdHJ1ZSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiQiIs
IChldmVudCkgPT4ge30sIHRydWUpOwogCi0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImFscGhhIiwgKGV2ZW50KSA9PiB7fSwge3Bhc3NpdmU6IHRydWV9KTsKKyAgICAgICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiQSIsIGZ1bmN0aW9uIGRvY3VtZW50QShldmVudCkgeyB9
LCB7cGFzc2l2ZTogdHJ1ZX0pOworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJC
IiwgKGV2ZW50KSA9PiB7fSwge3Bhc3NpdmU6IHRydWV9KTsKICAgICA8L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361335</attachid>
            <date>2019-02-06 15:10:08 -0800</date>
            <delta_ts>2019-02-06 16:32:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>194293.patch</filename>
            <type>text/plain</type>
            <size>16949</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZiODM4OWQzOGQ5ODBlODZkNjc5MmYzYjgxMDNj
YTkwMmFkNmY1ZTIuLjJhMjEwNzAwNWNlNmNlYWY4ZWFjZTY5N2FhODBlMTZiZTA3NzIzMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAyLTA2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
T006IGRvbid0IHNlbmQgdGhlIGVudGlyZSBmdW5jdGlvbiBzdHJpbmcgd2l0aCBlYWNoIGV2ZW50
IGxpc3RlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQyOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3ODIyODA5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2Nv
bC9ET00uanNvbjoKKworICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICBF
eHBvcnQgYGNhbGN1bGF0ZWREaXNwbGF5TmFtZWAuCisKIDIwMTktMDItMDUgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBERkcncyBkb2VzR0MoKSBmb3IgYSBm
ZXcgbW9yZSBub2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzODk2NjIwYzdjM2E4ZjJiYzMxOWYzNzI2ZTJi
ZTEyMDg5Mjk2MjllLi5hMDE4YzViMWJmZjMyMjQ5NzYzZmIwNjkyMWIwYWQzMzY2M2VmNzMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDItMDYgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTTogZG9uJ3Qgc2Vu
ZCB0aGUgZW50aXJlIGZ1bmN0aW9uIHN0cmluZyB3aXRoIGVhY2ggZXZlbnQgbGlzdGVuZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDI5MworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDc4MjI4MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9z
ZXBoIFBlY29yYXJvLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0
ZW5lcnNGb3JOb2RlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcik6CisKIDIwMTktMDItMDUgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTdG9wIHVzaW5nIGJsb2JSZWdp
c3RyeSBpbiBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMWM0MzM4
YWNlYWZlNTM5NjZiZWJjMjNiMGYwNGNjNDU1YjUyZmUzMi4uODY1MDVhNGU2YjAzYzgwNjQzMzc4
MGM1YWYwZDI2Njc2NDY5ZDA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTktMDItMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTTogZG9uJ3Qgc2VuZCB0aGUgZW50aXJlIGZ1bmN0aW9u
IHN0cmluZyB3aXRoIGVhY2ggZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDI5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NDc4MjI4MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzOgor
ICAgICAgICAoV0kuRXZlbnRMaXN0ZW5lclNlY3Rpb25Hcm91cC5wcm90b3R5cGUuX2Z1bmN0aW9u
VGV4dE9yTGluayk6CisKIDIwMTktMDItMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IExvdHMgb2YgdGltZSBzcGVudCB1cGRhdGlu
ZyByZWxhdGVkIHJlc291cmNlcyBpbiBSZXNvdXJjZURldGFpbHNTaWRlYmFyIHdoZW4gbG9hZGlu
ZyBhIHBhZ2Ugd2l0aCBsb3RzIG9mIHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KaW5kZXggNzgxNjA5ZDFkZTk2YjA2ZjQ1
Y2FmYjZlMzQxNjQ3YjU2MzM5MjI4My4uMDEzYzJiYjJlMzFiNDA2OTk4Mjc3MDdlZGFhMjM3ZjE2
YzhlM2VhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9ET00uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0RPTS5qc29uCkBAIC03OSwxMCArNzksOSBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidXNlQ2FwdHVyZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+
RXZlbnRMaXN0ZW5lcjwvY29kZT4ncyB1c2VDYXB0dXJlLiIgfSwKICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImlzQXR0cmlidXRlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6
ICI8Y29kZT5FdmVudExpc3RlbmVyPC9jb2RlPidzIGlzQXR0cmlidXRlLiIgfSwKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlv
biI6ICJUYXJnZXQgPGNvZGU+RE9NTm9kZTwvY29kZT4gaWQuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGFuZGxlckJvZHkiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiRXZlbnQgaGFuZGxlciBmdW5jdGlvbiBib2R5LiIgfSwKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImxvY2F0aW9uIiwgIiRyZWYiOiAiRGVidWdnZXIuTG9jYXRpb24iLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSGFuZGxlciBjb2RlIGxvY2F0aW9uLiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIHNjcmlwdCBVUkwuIiB9LAotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlciIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3Rl
T2JqZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkV2ZW50IGhhbmRsZXIg
ZnVuY3Rpb24gdmFsdWUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlck5h
bWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
RXZlbnQgaGFuZGxlciBmdW5jdGlvbiBuYW1lLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhhbmRsZXJPYmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFdmVudCBoYW5kbGVyIGZ1bmN0aW9uIHZhbHVl
LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhc3NpdmUiLCAidHlwZSI6ICJib29s
ZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIjxjb2RlPkV2ZW50TGlzdGVu
ZXI8L2NvZGU+J3MgcGFzc2l2ZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvbmNl
IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICI8
Y29kZT5FdmVudExpc3RlbmVyPC9jb2RlPidzIG9uY2UuIiB9LAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZGlzYWJsZWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSB9
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDNiZjA2
NzY1OGMzYWYzOGU3NTk3ODRlMDZhN2I0ZGRlNDM4MjNmN2UuLjI0MmM4ZDZiY2I0YmRkZjBhOTJk
MGU2N2FlZTQ0YmQyM2FlZDM4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgU3RyaW5nIG5hbWUoVk0mKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGlz
cGxheU5hbWUoVk0mKTsKLSAgICBjb25zdCBTdHJpbmcgY2FsY3VsYXRlZERpc3BsYXlOYW1lKFZN
Jik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgU3RyaW5nIGNhbGN1bGF0ZWREaXNwbGF5
TmFtZShWTSYpOwogCiAgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUoKSBjb25zdCB7IHJl
dHVybiBtX2V4ZWN1dGFibGUuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA4Nzk3NjYxZjIzNDE4
MWY2YTQxNGJjYjkzYmNiMTg3NjYyNTI1YTc5Li4zOTRiZDVmZTE5MjFjMzE5MzhmNGIxMDI1MTBj
OTBjYzE0N2ZmODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMTY2MywyOCArMTY2Myw0OCBAQCBSZWY8SW5z
cGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExpc3RlbmVyPiBJbnNwZWN0b3JET01BZ2VudDo6
YnVpbGRPYmplY3RGb3JFdgogewogICAgIFJlZjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVy
ID0gcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY2FsbGJhY2soKTsKIAotICAgIEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSA9IG51bGxwdHI7Ci0gICAgSlNDOjpKU09iamVjdCogaGFuZGxlciA9IG51bGxw
dHI7Ci0gICAgU3RyaW5nIGJvZHk7CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBudWxscHRy
OworICAgIEpTQzo6SlNPYmplY3QqIGhhbmRsZXJPYmplY3QgPSBudWxscHRyOworICAgIEpTQzo6
SlNGdW5jdGlvbiogaGFuZGxlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICBTdHJpbmcgaGFuZGxl
ck5hbWU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1bW5OdW1iZXIgPSAw
OwogICAgIFN0cmluZyBzY3JpcHRJRDsKLSAgICBTdHJpbmcgc291cmNlTmFtZTsKICAgICBpZiAo
aXM8SlNFdmVudExpc3RlbmVyPihldmVudExpc3RlbmVyLmdldCgpKSkgewogICAgICAgICBhdXRv
JiBzY3JpcHRMaXN0ZW5lciA9IGRvd25jYXN0PEpTRXZlbnRMaXN0ZW5lcj4oZXZlbnRMaXN0ZW5l
ci5nZXQoKSk7CisKICAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhzY3JpcHRMaXN0ZW5l
ci5pc29sYXRlZFdvcmxkKCkudm0oKSk7Ci0gICAgICAgIHN0YXRlID0gZXhlY1N0YXRlRnJvbU5v
ZGUoc2NyaXB0TGlzdGVuZXIuaXNvbGF0ZWRXb3JsZCgpLCAmbm9kZS0+ZG9jdW1lbnQoKSk7Ci0g
ICAgICAgIGhhbmRsZXIgPSBzY3JpcHRMaXN0ZW5lci5qc0Z1bmN0aW9uKG5vZGUtPmRvY3VtZW50
KCkpOwotICAgICAgICBpZiAoaGFuZGxlciAmJiBzdGF0ZSkgewotICAgICAgICAgICAgYm9keSA9
IGhhbmRsZXItPnRvU3RyaW5nKHN0YXRlKS0+dmFsdWUoc3RhdGUpOwotICAgICAgICAgICAgaWYg
KGF1dG8gZnVuY3Rpb24gPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU0Z1bmN0aW9uKj4oc3Rh
dGUtPnZtKCksIGhhbmRsZXIpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFmdW5jdGlvbi0+aXNI
b3N0T3JCdWlsdGluRnVuY3Rpb24oKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBl
eGVjdXRhYmxlID0gZnVuY3Rpb24tPmpzRXhlY3V0YWJsZSgpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBsaW5lTnVtYmVyID0gZXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCkgLSAxOwotICAgICAg
ICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyID0gZXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4o
KSAtIDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRJRCA9IGV4ZWN1dGFibGUtPnNv
dXJjZUlEKCkgPT0gSlNDOjpTb3VyY2VQcm92aWRlcjo6bnVsbElEID8gZW1wdHlTdHJpbmcoKSA6
IFN0cmluZzo6bnVtYmVyKGV4ZWN1dGFibGUtPnNvdXJjZUlEKCkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgc291cmNlTmFtZSA9IGV4ZWN1dGFibGUtPnNvdXJjZVVSTCgpOwotICAgICAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgZXhlYyA9IGV4ZWNTdGF0ZUZyb21Ob2RlKHNjcmlwdExp
c3RlbmVyLmlzb2xhdGVkV29ybGQoKSwgJm5vZGUtPmRvY3VtZW50KCkpOworICAgICAgICBoYW5k
bGVyT2JqZWN0ID0gc2NyaXB0TGlzdGVuZXIuanNGdW5jdGlvbihub2RlLT5kb2N1bWVudCgpKTsK
KyAgICAgICAgaWYgKGhhbmRsZXJPYmplY3QgJiYgZXhlYykgeworICAgICAgICAgICAgaGFuZGxl
ckZ1bmN0aW9uID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNGdW5jdGlvbio+KGV4ZWMtPnZt
KCksIGhhbmRsZXJPYmplY3QpOworCisgICAgICAgICAgICBpZiAoIWhhbmRsZXJGdW5jdGlvbikg
eworICAgICAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKGV4ZWMt
PnZtKCkpOworCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGhhbmRsZXIgaXMgbm90IGFjdHVh
bGx5IGEgZnVuY3Rpb24sIHNlZSBpZiBpdCBpbXBsZW1lbnRzIHRoZSBFdmVudExpc3RlbmVyIGlu
dGVyZmFjZSBhbmQgdXNlIHRoYXQuCisgICAgICAgICAgICAgICAgYXV0byBoYW5kbGVFdmVudFZh
bHVlID0gaGFuZGxlck9iamVjdC0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhleGVjLCAiaGFuZGxlRXZlbnQiKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFko
c2NvcGUuZXhjZXB0aW9uKCkpKQorICAgICAgICAgICAgICAgICAgICBzY29wZS5jbGVhckV4Y2Vw
dGlvbigpOworCisgICAgICAgICAgICAgICAgaWYgKGhhbmRsZUV2ZW50VmFsdWUpCisgICAgICAg
ICAgICAgICAgICAgIGhhbmRsZXJGdW5jdGlvbiA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpT
RnVuY3Rpb24qPihleGVjLT52bSgpLCBoYW5kbGVFdmVudFZhbHVlKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKGhhbmRsZXJGdW5jdGlvbiAmJiAhaGFuZGxlckZ1bmN0aW9uLT5p
c0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGxp
c3RlbmVyIGltcGxlbWVudHMgdGhlIEV2ZW50TGlzdGVuZXIgaW50ZXJmYWNlLCB1c2UgdGhlIGNs
YXNzIG5hbWUgaW5zdGVhZCBvZgorICAgICAgICAgICAgICAgIC8vICJoYW5kbGVFdmVudCIsIHVu
bGVzcyBpdCBpcyBhIHBsYWluIG9iamVjdC4KKyAgICAgICAgICAgICAgICBpZiAoaGFuZGxlckZ1
bmN0aW9uICE9IGhhbmRsZXJPYmplY3QpCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJOYW1l
ID0gSlNDOjpKU09iamVjdDo6Y2FsY3VsYXRlZENsYXNzTmFtZShoYW5kbGVyT2JqZWN0KTsKKyAg
ICAgICAgICAgICAgICBpZiAoaGFuZGxlck5hbWUuaXNFbXB0eSgpIHx8IGhhbmRsZXJOYW1lID09
ICJPYmplY3QiX3MpCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJOYW1lID0gaGFuZGxlckZ1
bmN0aW9uLT5jYWxjdWxhdGVkRGlzcGxheU5hbWUoZXhlYy0+dm0oKSk7CisKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBleGVjdXRhYmxlID0gaGFuZGxlckZ1bmN0aW9uLT5qc0V4ZWN1dGFibGUo
KSkgeworICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID0gZXhlY3V0YWJsZS0+Zmlyc3RM
aW5lKCkgLSAxOworICAgICAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXIgPSBleGVjdXRhYmxl
LT5zdGFydENvbHVtbigpIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0SUQgPSBleGVj
dXRhYmxlLT5zb3VyY2VJRCgpID09IEpTQzo6U291cmNlUHJvdmlkZXI6Om51bGxJRCA/IGVtcHR5
U3RyaW5nKCkgOiBTdHJpbmc6Om51bWJlcihleGVjdXRhYmxlLT5zb3VyY2VJRCgpKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE2OTYsMTIgKzE3MTYs
MTEgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gSW5zcGVj
dG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXYKICAgICAgICAgLnNldFVzZUNhcHR1cmUocmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXIudXNlQ2FwdHVyZSgpKQogICAgICAgICAuc2V0SXNBdHRyaWJ1
dGUoZXZlbnRMaXN0ZW5lci0+aXNBdHRyaWJ1dGUoKSkKICAgICAgICAgLnNldE5vZGVJZChwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpKQotICAgICAgICAuc2V0SGFuZGxlckJvZHkoYm9keSkK
ICAgICAgICAgLnJlbGVhc2UoKTsKLSAgICBpZiAob2JqZWN0R3JvdXBJZCAmJiBoYW5kbGVyICYm
IHN0YXRlKSB7Ci0gICAgICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaW5qZWN0ZWRTY3JpcHRGb3Ioc3RhdGUpOworICAgIGlmIChvYmpl
Y3RHcm91cElkICYmIGhhbmRsZXJPYmplY3QgJiYgZXhlYykgeworICAgICAgICBJbmplY3RlZFNj
cmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluamVjdGVkU2Ny
aXB0Rm9yKGV4ZWMpOwogICAgICAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkK
LSAgICAgICAgICAgIHZhbHVlLT5zZXRIYW5kbGVyKGluamVjdGVkU2NyaXB0LndyYXBPYmplY3Qo
aGFuZGxlciwgKm9iamVjdEdyb3VwSWQpKTsKKyAgICAgICAgICAgIHZhbHVlLT5zZXRIYW5kbGVy
T2JqZWN0KGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoaGFuZGxlck9iamVjdCwgKm9iamVjdEdy
b3VwSWQpKTsKICAgICB9CiAgICAgaWYgKCFzY3JpcHRJRC5pc051bGwoKSkgewogICAgICAgICBh
dXRvIGxvY2F0aW9uID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6RGVidWdnZXI6OkxvY2F0aW9uOjpj
cmVhdGUoKQpAQCAtMTcxMCw5ICsxNzI5LDkgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRP
TTo6RXZlbnRMaXN0ZW5lcj4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXYKICAg
ICAgICAgICAgIC5yZWxlYXNlKCk7CiAgICAgICAgIGxvY2F0aW9uLT5zZXRDb2x1bW5OdW1iZXIo
Y29sdW1uTnVtYmVyKTsKICAgICAgICAgdmFsdWUtPnNldExvY2F0aW9uKFdURk1vdmUobG9jYXRp
b24pKTsKLSAgICAgICAgaWYgKCFzb3VyY2VOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHZh
bHVlLT5zZXRTb3VyY2VOYW1lKHNvdXJjZU5hbWUpOwogICAgIH0KKyAgICBpZiAoIWhhbmRsZXJO
YW1lLmlzRW1wdHkoKSkKKyAgICAgICAgdmFsdWUtPnNldEhhbmRsZXJOYW1lKGhhbmRsZXJOYW1l
KTsKICAgICBpZiAocmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaXNQYXNzaXZlKCkpCiAgICAgICAg
IHZhbHVlLT5zZXRQYXNzaXZlKHRydWUpOwogICAgIGlmIChyZWdpc3RlcmVkRXZlbnRMaXN0ZW5l
ci5pc09uY2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0V2ZW50TGlzdGVuZXJTZWN0aW9uR3JvdXAuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9FdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwLmpzCmlu
ZGV4IDE4MWQwNTlkZmQ0YTJiODA4NDNhNzM3MTU0NTNmNzA1ZjgyMWE4NmMuLjg5NGZlZDEwZmY1
Y2FhMDU1Njg0ZWEyZmY3ODkyZTExOGY4YTcwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0V2ZW50TGlzdGVuZXJTZWN0aW9uR3JvdXAuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRMaXN0
ZW5lclNlY3Rpb25Hcm91cC5qcwpAQCAtODAsMTMgKzgwLDE5IEBAIFdJLkV2ZW50TGlzdGVuZXJT
ZWN0aW9uR3JvdXAgPSBjbGFzcyBFdmVudExpc3RlbmVyU2VjdGlvbkdyb3VwIGV4dGVuZHMgV0ku
RGV0YWlsCiAKICAgICBfZnVuY3Rpb25UZXh0T3JMaW5rKCkKICAgICB7Ci0gICAgICAgIHZhciBt
YXRjaCA9IHRoaXMuX2V2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkubWF0Y2goL2Z1bmN0aW9uIChb
XlwoXSs/KVwoLyk7Ci0gICAgICAgIGlmIChtYXRjaCkgewotICAgICAgICAgICAgdmFyIGFub255
bW91cyA9IGZhbHNlOwotICAgICAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IG1hdGNoWzFdOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIGFub255bW91cyA9IHRydWU7Ci0gICAg
ICAgICAgICB2YXIgZnVuY3Rpb25OYW1lID0gV0kuVUlTdHJpbmcoIihhbm9ueW1vdXMgZnVuY3Rp
b24pIik7CisgICAgICAgIGxldCBhbm9ueW1vdXMgPSBmYWxzZTsKKyAgICAgICAgbGV0IGZ1bmN0
aW9uTmFtZSA9IHRoaXMuX2V2ZW50TGlzdGVuZXIuaGFuZGxlck5hbWU7CisKKyAgICAgICAgLy8g
Q09NUEFUSUJJTElUWSAoaU9TIDEyLjIpOiBET00uRXZlbnRMaXN0ZW5lci5oYW5kbGVyQm9keSB3
YXMgcmVwbGFjZWQgYnkgRE9NLkV2ZW50TGlzdGVuZXIuaGFuZGxlck5hbWUuCisgICAgICAgIGlm
ICghZnVuY3Rpb25OYW1lICYmIHRoaXMuX2V2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkpIHsKKyAg
ICAgICAgICAgIGxldCBtYXRjaCA9IHRoaXMuX2V2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkubWF0
Y2goL2Z1bmN0aW9uIChbXlwoXSs/KVwoLyk7CisgICAgICAgICAgICBpZiAobWF0Y2gpCisgICAg
ICAgICAgICAgICAgZnVuY3Rpb25OYW1lID0gbWF0Y2hbMV07CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoIWZ1bmN0aW9uTmFtZSkgeworICAgICAgICAgICAgYW5vbnltb3VzID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGZ1bmN0aW9uTmFtZSA9IFdJLlVJU3RyaW5nKCIoYW5vbnltb3VzIGZ1bmN0aW9u
KSIpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCF0aGlzLl9ldmVudExpc3RlbmVyLmxvY2F0
aW9uKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGI1MWFkYWRkMTIyNGIyYThmMzJhMjRiZjA2YWZjZTI4M2ZhMDU1NWUuLjU3
NGI4YjMwOGY1NTdmMDcxZGM5NzE0OTU5NTQyZjkyYTQ1NmJiNzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxOS0wMi0wNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogRE9NOiBkb24ndCBzZW5kIHRoZSBlbnRpcmUgZnVuY3Rpb24g
c3RyaW5nIHdpdGggZWFjaCBldmVudCBsaXN0ZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MjkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
NzgyMjgwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLWV4cGVjdGVkLnR4dDoK
KwogMjAxOS0wMi0wNSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1NdIExheW91dCB0ZXN0cyBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFz
dGUtMDA3Lmh0bWwgYW5kIGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDguaHRtbCBh
cmUgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRFdmVu
dExpc3RlbmVyc0Zvck5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUtZXhwZWN0ZWQudHh0CmluZGV4IDI2YjEyMjU2MjY4
YTJmNzZmYjY0ZjQ3MTg0OWZhYjFhYjdmMmM0NjkuLjkxMTk0ZWI5NmNmNjFiZGNhYWU3YmNlZTUw
N2NhNGIzOWUxMzUwZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0
RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS1leHBlY3RlZC50eHQKQEAgLTMsMzQg
KzMsNzQgQEAgVGVzdGluZyBET01BZ2VudC5nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuCiAKID09
IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRE9NLmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZQogLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IERPTS5nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuQmFzaWMKLUV2ZW50
OiBhbHBoYQorRXZlbnQ6IEEKK05vZGU6IGJvZHkKK0NhcHR1cmU6IHRydWUKK0F0dHJpYnV0ZTog
ZmFsc2UKK0hhbmRsZXIgTmFtZTogYm9keUEKK1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMg
YSBzb3VyY2UgbG9jYXRpb24uCisKK0V2ZW50OiBCCiBOb2RlOiBib2R5CiBDYXB0dXJlOiB0cnVl
CiBBdHRyaWJ1dGU6IGZhbHNlCiBQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNl
IGxvY2F0aW9uLgotUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIGZ1bmN0aW9uLgogCi1F
dmVudDogYmV0YQorRXZlbnQ6IEUKIE5vZGU6IGRpdiN4CiBDYXB0dXJlOiBmYWxzZQogQXR0cmli
dXRlOiBmYWxzZQorSGFuZGxlciBOYW1lOiBPYmplY3RFdmVudEhhbmRsZXIKK1BBU1M6IFRoZSBF
dmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCisKK0V2ZW50OiBECitOb2RlOiBk
aXYjeAorQ2FwdHVyZTogZmFsc2UKK0F0dHJpYnV0ZTogZmFsc2UKK0hhbmRsZXIgTmFtZTogaGFu
ZGxlRXZlbnQKK1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24u
CisKK0V2ZW50OiBDCitOb2RlOiBkaXYjeAorQ2FwdHVyZTogZmFsc2UKK0F0dHJpYnV0ZTogZmFs
c2UKK1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCisKK0V2
ZW50OiBCCitOb2RlOiBkaXYjeAorQ2FwdHVyZTogZmFsc2UKK0F0dHJpYnV0ZTogZmFsc2UKK0hh
bmRsZXIgTmFtZTogeEIKIE9uY2U6IHRydWUKIFBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMg
YSBzb3VyY2UgbG9jYXRpb24uCi1QQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgZnVuY3Rp
b24uCiAKLUV2ZW50OiBhbHBoYQorRXZlbnQ6IEEKIE5vZGU6IGRpdiN4CiBDYXB0dXJlOiBmYWxz
ZQogQXR0cmlidXRlOiBmYWxzZQorSGFuZGxlciBOYW1lOiB4QQogUEFTUzogVGhlIEV2ZW50IExp
c3RlbmVyIGhhcyBhIHNvdXJjZSBsb2NhdGlvbi4KLVBBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBo
YXMgYSBmdW5jdGlvbi4KIAotRXZlbnQ6IGFscGhhCitFdmVudDogY2xpY2sKK05vZGU6IGRpdiN4
CitDYXB0dXJlOiBmYWxzZQorQXR0cmlidXRlOiB0cnVlCitIYW5kbGVyIE5hbWU6IG9uY2xpY2sK
K1BBU1M6IFRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCisKK0V2ZW50
OiBCCiBOb2RlOiAjZG9jdW1lbnQKIENhcHR1cmU6IGZhbHNlCiBBdHRyaWJ1dGU6IGZhbHNlCiBQ
YXNzaXZlOiB0cnVlCiBQQVNTOiBUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0
aW9uLgotUEFTUzogVGhlIEV2ZW50IExpc3RlbmVyIGhhcyBhIGZ1bmN0aW9uLgorCitFdmVudDog
QQorTm9kZTogI2RvY3VtZW50CitDYXB0dXJlOiBmYWxzZQorQXR0cmlidXRlOiBmYWxzZQorSGFu
ZGxlciBOYW1lOiBkb2N1bWVudEEKK1Bhc3NpdmU6IHRydWUKK1BBU1M6IFRoZSBFdmVudCBMaXN0
ZW5lciBoYXMgYSBzb3VyY2UgbG9jYXRpb24uCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLmh0bWwKaW5kZXggNjk3ZTUz
MjZmZGQ2M2Q5NmM4YTg4ZGYzZWIzYzZlZjY4YmYwZjhhYS4uMGQzZTY2N2FjOTVlYjkyYjljMzE5
NDljMTBkMzI2ODBmNzA2MzdhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS5odG1sCkBAIC0yNywxMyArMjcsMTQgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
YENhcHR1cmU6ICR7ZXZlbnRMaXN0ZW5lci51c2VDYXB0dXJlfWApOwogICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgQXR0cmlidXRlOiAke2V2ZW50TGlzdGVuZXIuaXNBdHRy
aWJ1dGV9YCk7CiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50TGlzdGVuZXIuaGFuZGxl
ck5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgSGFuZGxl
ciBOYW1lOiAke2V2ZW50TGlzdGVuZXIuaGFuZGxlck5hbWV9YCk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChldmVudExpc3RlbmVyLnBhc3NpdmUpCiAgICAgICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhgUGFzc2l2ZTogJHtldmVudExpc3RlbmVyLnBhc3NpdmV9YCk7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChldmVudExpc3RlbmVyLm9uY2UpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgT25jZTogJHtldmVudExpc3RlbmVyLm9uY2V9
YCk7CiAKICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2ZW50
TGlzdGVuZXIubG9jYXRpb24sICJUaGUgRXZlbnQgTGlzdGVuZXIgaGFzIGEgc291cmNlIGxvY2F0
aW9uLiIpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXZl
bnRMaXN0ZW5lci5oYW5kbGVyQm9keSwgIlRoZSBFdmVudCBMaXN0ZW5lciBoYXMgYSBmdW5jdGlv
bi4iKTsKIAogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtNjIsMTUgKzYzLDI0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiA8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CiAgICAgPHA+VGVzdGluZyBET01BZ2VudC5nZXRFdmVudExp
c3RlbmVyc0Zvck5vZGUuPC9wPgogCi0gICAgPGRpdiBpZD0ieCI+PC9kaXY+CisgICAgPGRpdiBp
ZD0ieCIgb25jbGljaz0iKGZ1bmN0aW9uIHhDbGljayhldmVudCkgeyB9KSgpIj48L2Rpdj4KICAg
ICA8c2NyaXB0PgorICAgICAgICBjbGFzcyBPYmplY3RFdmVudEhhbmRsZXIgeworICAgICAgICAg
ICAgaGFuZGxlRXZlbnQoZXZlbnQpIHsgfQorICAgICAgICB9CisKICAgICAgICAgbGV0IGVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieCIpOwotICAgICAgICBlbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImFscGhhIiwgKGV2ZW50KSA9PiB7fSk7Ci0gICAgICAgIGVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiYmV0YSIsIChldmVudCkgPT4ge30sIHtvbmNlOiB0cnVlfSk7CisgICAg
ICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiQSIsIGZ1bmN0aW9uIHhBKGV2ZW50KSB7IH0p
OworICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkIiLCBmdW5jdGlvbiB4QihldmVu
dCkgeyB9LCB7b25jZTogdHJ1ZX0pOworICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
IkMiLCAoZXZlbnQpID0+IHsgfSk7CisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
RCIsIHsgaGFuZGxlRXZlbnQoZXZlbnQpIHsgfSB9KTsKKyAgICAgICAgZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJFIiwgbmV3IE9iamVjdEV2ZW50SGFuZGxlcik7CiAKLSAgICAgICAgZG9jdW1l
bnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJhbHBoYSIsIChldmVudCkgPT4ge30sIHRydWUpOwor
ICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoIkEiLCBmdW5jdGlvbiBib2R5
QShldmVudCkgeyB9LCB0cnVlKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3Rl
bmVyKCJCIiwgKGV2ZW50KSA9PiB7fSwgdHJ1ZSk7CiAKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiYWxwaGEiLCAoZXZlbnQpID0+IHt9LCB7cGFzc2l2ZTogdHJ1ZX0pOworICAg
ICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJBIiwgZnVuY3Rpb24gZG9jdW1lbnRBKGV2
ZW50KSB7IH0sIHtwYXNzaXZlOiB0cnVlfSk7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIkIiLCAoZXZlbnQpID0+IHt9LCB7cGFzc2l2ZTogdHJ1ZX0pOwogICAgIDwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>