<?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>156227</bug_id>
          
          <creation_ts>2016-04-04 21:49:57 -0700</creation_ts>
          <short_desc>MessageEvent.source window is incorrect once window has been reified</short_desc>
          <delta_ts>2016-07-01 13:17:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>159364</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1180692</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-04 21:49:57 -0700</bug_when>
    <thetext>MessageEvent.source window is incorrect once window has been reified.

If the Window has not been reified, we keep constructing new postMessage() functions when calling window.postMessage(). We pass activeDOMWindow(execState) as source Window to DOMWindow::postMessage(). activeDOMWindow() uses exec-&gt;lexicalGlobalObject() which does the right thing because we construct a new postMessage() function in the caller&apos;s context.

However, after reification, due to the way JSDOMWindow::getOwnPropertySlot() is implemented, we stop constructing new postMessage() functions when calling window.postMessage(). As a result, the source window becomes incorrect because exec-&gt;lexicalGlobalObject() returns the target Window instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180704</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-04 22:02:37 -0700</bug_when>
    <thetext>rdar://problem/25545831</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180707</commentid>
    <comment_count>2</comment_count>
      <attachid>275640</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-04 22:12:54 -0700</bug_when>
    <thetext>Created attachment 275640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180722</commentid>
    <comment_count>3</comment_count>
      <attachid>275645</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-04 22:53:18 -0700</bug_when>
    <thetext>Created attachment 275645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180723</commentid>
    <comment_count>4</comment_count>
      <attachid>275645</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-04 22:54:34 -0700</bug_when>
    <thetext>Comment on attachment 275645
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:592
&gt; +    if (!callerWindow) {

This is covered by fast/dom/Window/post-message-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180900</commentid>
    <comment_count>5</comment_count>
      <attachid>275681</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 11:47:03 -0700</bug_when>
    <thetext>Created attachment 275681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180912</commentid>
    <comment_count>6</comment_count>
      <attachid>275681</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-05 12:14:52 -0700</bug_when>
    <thetext>Comment on attachment 275681
Patch

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

LGTM otherwise.

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:588
&gt; +    return codeBlock ? &amp;asJSDOMWindow(codeBlock-&gt;globalObject())-&gt;wrapped() : nullptr;

Is there ever a case where you would expect codeBlock to be null?  If not, should we have an assertion here instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180940</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 13:21:45 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 275681 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=275681&amp;action=review
&gt; 
&gt; LGTM otherwise.
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:588
&gt; &gt; +    return codeBlock ? &amp;asJSDOMWindow(codeBlock-&gt;globalObject())-&gt;wrapped() : nullptr;
&gt; 
&gt; Is there ever a case where you would expect codeBlock to be null?  If not,
&gt; should we have an assertion here instead?

Yes, this is covered by fast/dom/Window/post-message-crash.html as mentioned earlier.
Basically, it is null when postMessage gets called from native code, e.g.:
setTimeout(postMessage, 0) or requestAnimationFrame(postMessage)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180942</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 13:23:44 -0700</bug_when>
    <thetext>Here is that the spec says regarding what the &apos;source&apos; window should be:
1. https://html.spec.whatwg.org/multipage/comms.html#dom-messageevent-source
&quot;The source attribute must be initialised to the WindowProxy object corresponding to the global object (a Window object) specified by incumbentSettings&quot;

incumbentSettings is defined at:
https://html.spec.whatwg.org/multipage/webappapis.html#incumbent-settings-object

which says to use JavaScript&apos;s GetActiveScriptOrModule(), which is defined at:
https://tc39.github.io/ecma262/#sec-getactivescriptormodule

I am not 100% sure how to interpret this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180967</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 14:03:25 -0700</bug_when>
    <thetext>Will update the patch as per Mark Lam&apos;s feedback offline and add an extra layout test for a corner case that Gavin mentioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181027</commentid>
    <comment_count>10</comment_count>
      <attachid>275709</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 16:15:00 -0700</bug_when>
    <thetext>Created attachment 275709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181032</commentid>
    <comment_count>11</comment_count>
      <attachid>275709</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-05 16:18:14 -0700</bug_when>
    <thetext>Comment on attachment 275709
Patch

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

r=me

&gt; LayoutTests/fast/dom/Window/post-message-crash2.html:17
&gt; +var b = window.postMessage.bind(window, &quot;msg&quot;, &quot;*&quot;);
&gt; +setTimeout(b, 0);

nit: I&apos;d prefer that you rename &quot;b&quot; to &quot;boundPostMessage&quot;, but I won&apos;t insist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181034</commentid>
    <comment_count>12</comment_count>
      <attachid>275711</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 16:21:32 -0700</bug_when>
    <thetext>Created attachment 275711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181035</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 16:22:12 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 275709 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=275709&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; LayoutTests/fast/dom/Window/post-message-crash2.html:17
&gt; &gt; +var b = window.postMessage.bind(window, &quot;msg&quot;, &quot;*&quot;);
&gt; &gt; +setTimeout(b, 0);
&gt; 
&gt; nit: I&apos;d prefer that you rename &quot;b&quot; to &quot;boundPostMessage&quot;, but I won&apos;t
&gt; insist.

Done. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181071</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 17:00:37 -0700</bug_when>
    <thetext>I am trying to figure out why my patch does not build anymore :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181075</commentid>
    <comment_count>15</comment_count>
      <attachid>275722</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 17:09:24 -0700</bug_when>
    <thetext>Created attachment 275722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181076</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 17:10:03 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I am trying to figure out why my patch does not build anymore :/

It was because Phil landed an extra &apos;const&apos; in the mean time:
http://trac.webkit.org/changeset/199076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181110</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-05 18:18:08 -0700</bug_when>
    <thetext>Committed r199087: &lt;http://trac.webkit.org/changeset/199087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183759</commentid>
    <comment_count>18</comment_count>
      <attachid>275722</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-14 11:03:38 -0700</bug_when>
    <thetext>Comment on attachment 275722
Patch

Removing flag since this landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275640</attachid>
            <date>2016-04-04 22:12:54 -0700</date>
            <delta_ts>2016-04-04 22:53:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156227-20160404221254.patch</filename>
            <type>text/plain</type>
            <size>15544</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM3YmQ4NDI2YWU3YzIx
MTU1NTE1MzliNGU5ZDE3YmZmNTYzMzc5ZS4uYWRlYjRmOTkzODJjZmRlZTAxNDQwZWVkNzMxMDc0
NzlhMWMxOTc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE2LTA0LTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJj
ZSB3aW5kb3cgaXMgaW5jb3JyZWN0IG9uY2Ugd2luZG93IGhhcyBiZWVuIHJlaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjIyNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjU1NDU4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJjZSB3aW5kb3cgd2FzIGluY29y
cmVjdCBvbmNlIHdpbmRvdyBoYWQgYmVlbiByZWlmaWVkLgorCisgICAgICAgIElmIHRoZSBXaW5k
b3cgaGFkIG5vdCBiZWVuIHJlaWZpZWQsIHdlIGtlcHQgY29uc3RydWN0aW5nIG5ldworICAgICAg
ICBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9ucyB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdl
KCkuIFdlIHVzZWQgdG8KKyAgICAgICAgcGFzcyBhY3RpdmVET01XaW5kb3coZXhlY1N0YXRlKSBh
cyBzb3VyY2UgV2luZG93IHRvCisgICAgICAgIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoKS4gYWN0
aXZlRE9NV2luZG93KCkgdXNlcworICAgICAgICBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkg
d2hpY2ggZGlkIHRoZSByaWdodCB0aGluZyBiZWNhdXNlIHdlCisgICAgICAgIHVzZWQgdG8gY29u
c3RydWN0IGEgbmV3IHBvc3RNZXNzYWdlKCkgZnVuY3Rpb24gaW4gdGhlIGNhbGxlcidzIGNvbnRl
eHQuCisKKyAgICAgICAgSG93ZXZlciwgYWZ0ZXIgcmVpZmljYXRpb24sIGR1ZSB0byB0aGUgd2F5
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoKQorICAgICAgICB3YXMgaW1wbGVtZW50
ZWQsIHdlIHdvdWxkIHN0b3AgY29uc3RydWN0aW5nIG5ldyBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9u
cworICAgICAgICB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdlKCkuIEFzIGEgcmVzdWx0
LCB0aGUgc291cmNlIHdpbmRvdyB3b3VsZAorICAgICAgICBiZWNvbWUgaW5jb3JyZWN0IGJlY2F1
c2UgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIHdvdWxkIHJldHVybiB0aGUKKyAgICAgICAg
dGFyZ2V0IFdpbmRvdyBpbnN0ZWFkLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHRoZSBmb2xs
b3dpbmcgaXMgZG9uZToKKyAgICAgICAgMS4gU3RvcCBjb25zdHJ1Y3RpbmcgYSBuZXcgZnVuY3Rp
b24gZXZlcnkgdGltZSBpbiB0aGUgc2FtZSBvcmlnaW4gY2FzZQorICAgICAgICAgICBmb3IgcG9z
dE1lc3NhZ2UsIGJsdXIsIGZvY3VzIGFuZCBjbG9zZS4gVGhpcyB3YXMgaW5lZmZpY2llbnQgYW5k
IGxlYWQKKyAgICAgICAgICAgdG8gaW5jb3JyZWN0IGJlaGF2aW9yLgorICAgICAgICAyLiBVc2Ug
Y2FsbGVyRE9NV2luZG93KGV4ZWNTdGF0ZSkgaW5zdGVhZCBvZiBhY3RpdmVET01XaW5kb3coZXhl
Y1N0YXRlKQorICAgICAgICAgICBhcyBzb3VyY2UgV2luZG93IGluIEpTRE9NV2luZG93OjpoYW5k
bGVQb3N0TWVzc2FnZSgpLiBjYWxsZXJET01XaW5kb3coKQorICAgICAgICAgICBpcyBhIG5ldyB1
dGlsaXR5IGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgY2FsbGVyJ3MgV2luZG93IG9iamVjdC4K
KworICAgICAgICBUZXN0czogZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9z
dG1lc3NhZ2UtcmVpZmllZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9XaW5kb3cvbWVz
c2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWZyYW1lcy5odG1sCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2V0Q2Fs
bGVyQ29kZUJsb2NrRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChXZWJDb3JlOjpHZXRD
YWxsZXJDb2RlQmxvY2tGdW5jdG9yOjpjb2RlQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6Y2Fs
bGVyRE9NV2luZG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpoYW5kbGVQb3N0TWVzc2FnZSk6CisKIDIwMTYtMDQtMDQgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9wZXJseSBnZW5lcmF0ZSBzdGF0aWMg
ZnVuY3Rpb25zIHRoYXQgcmV0dXJuIFByb21pc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcAppbmRleCAyMGI5ZmY1MDc0OTJjNmI5NDJmNmRkYjQwOWMzM2Fk
NDAzMjNmOGE0Li4xZGMxZTZlY2UwOTFmZDZlM2JlZTQ4NzFjOGRhMjhiNzM5YmJjZjNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTRXhjZXB0
aW9uQmFzZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8Ynl0ZWNv
ZGUvQ29kZUJsb2NrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaD4KQEAgLTU1Nyw2ICs1NTgsMzUgQEAgdWludDY0X3Qg
dG9VSW50NjQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lv
bkNvbmZpZ3VyYXRpb24KICAgICByZXR1cm4gbjsKIH0KIAorY2xhc3MgR2V0Q2FsbGVyQ29kZUJs
b2NrRnVuY3RvciB7CitwdWJsaWM6CisgICAgR2V0Q2FsbGVyQ29kZUJsb2NrRnVuY3RvcigpID0g
ZGVmYXVsdDsKKworICAgIFN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tWaXNp
dG9yJiB2aXNpdG9yKQorICAgIHsKKyAgICAgICAgKyttX2l0ZXJhdGlvbnM7CisgICAgICAgIGlm
IChtX2l0ZXJhdGlvbnMgPCAyKQorICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29u
dGludWU7CisKKyAgICAgICAgbV9jb2RlQmxvY2sgPSB2aXNpdG9yLT5jb2RlQmxvY2soKTsKKyAg
ICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6RG9uZTsKKyAgICB9CisKKyAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jaygpIGNvbnN0IHsgcmV0dXJuIG1fY29kZUJsb2NrOyB9CisKK3ByaXZhdGU6Cisg
ICAgaW50IG1faXRlcmF0aW9ucyB7IDAgfTsKKyAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrIHsg
bnVsbHB0ciB9OworfTsKKworRE9NV2luZG93KiBjYWxsZXJET01XaW5kb3coRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIEdldENhbGxlckNvZGVCbG9ja0Z1bmN0b3IgaXRlcjsKKyAgICBleGVjLT5p
dGVyYXRlKGl0ZXIpOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gaXRlci5jb2RlQmxvY2so
KTsKKyAgICByZXR1cm4gY29kZUJsb2NrID8gJmFzSlNET01XaW5kb3coY29kZUJsb2NrLT5nbG9i
YWxPYmplY3QoKSktPndyYXBwZWQoKSA6IG51bGxwdHI7Cit9CisKIERPTVdpbmRvdyYgYWN0aXZl
RE9NV2luZG93KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gYXNKU0RPTVdpbmRvdyhl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT53cmFwcGVkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IGM4OTAyZTY5YmU3MDdmNmQ4NjkyOTNiZTFl
NzViMTRlZjg2OGVhY2YuLjdhNTdiYzY3ZDUwNjNkOTdiZWU4OWRkN2Y0NzI2YzRlZThiODUwNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC03OCw2ICs3
OCw3IEBAIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzIHsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKIAorRE9NV2luZG93KiBjYWxsZXJET01XaW5kb3coSlNDOjpFeGVjU3RhdGUqKTsKIERP
TVdpbmRvdyYgYWN0aXZlRE9NV2luZG93KEpTQzo6RXhlY1N0YXRlKik7CiBET01XaW5kb3cmIGZp
cnN0RE9NV2luZG93KEpTQzo6RXhlY1N0YXRlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAyMmVhMWRmZGMzMTA1ZDU0NWIy
NTE2NzQ3NjdmZDlkNmI3YzM5ZDQ3Li42NDA4YThlZTBiYjI4OGJlYmNmZmNiOTVkMzdhOWEzM2Zi
MTliY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCkBAIC0yNTIsMzAgKzI1Miw2IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blBy
b3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5CiAg
ICAgLy8gKFBhcnRpY3VsYXJseSwgaXMgaXQgY29ycmVjdCB0aGF0IHRoaXMgZXhpc3RzIGhlcmUg
YnV0IG5vdCBpbiBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4PykKICAgICBzbG90LnNldFdhdGNo
cG9pbnRTZXQodGhpc09iamVjdC0+bV93aW5kb3dDbG9zZVdhdGNocG9pbnRzKTsKIAotICAgIC8v
IEZJWE1FOiBUaGVzZSBhcmUgYWxsIGJvZ3VzLiBLZWVwaW5nIHRoZXNlIGhlcmUgbWFrZSBzb21l
IHRlc3RzIHBhc3MgdGhhdCBjaGVjayB0aGVzZSBwcm9wZXJ0aWVzCi0gICAgLy8gYXJlIG93biBw
cm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3csIGJ1dCBpbnRyb2R1Y2VzIG90aGVyIHByb2JsZW1zIGlu
c3RlYWQgKGUuZy4gaWYgeW91IG92ZXJ3cml0ZQotICAgIC8vICYgZGVsZXRlIHRoZW4gdGhlIG9y
aWdpbmFsIHZhbHVlIGlzIHJlc3RvcmVkISkgU2hvdWxkIGJlIHJlbW92ZWQuCi0gICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYmx1cikgewotICAgICAgICBpZiAo
IUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgUmVhZE9ubHkg
fCBEb250RGVsZXRlIHwgRG9udEVudW0sIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxq
c0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25CbHVyLCAwPik7Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5j
bG9zZSkgewotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpc09iamVjdCwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0sIG5vbkNhY2hpbmdT
dGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25DbG9zZSwgMD4p
OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuZm9jdXMpIHsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAg
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8
IERvbnRFbnVtLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dJbnN0
YW5jZUZ1bmN0aW9uRm9jdXMsIDA+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAg
IGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnBvc3RNZXNzYWdlKSB7
Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2Jq
ZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1
bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvblBvc3RNZXNzYWdlLCAyPik7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnNob3dNb2RhbERpYWxvZykgewogICAgICAgICBpZiAoQmFz
ZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTYxMiw4ICs1ODgsMTQgQEAgc3RhdGlj
IEpTVmFsdWUgaGFuZGxlUG9zdE1lc3NhZ2UoRE9NV2luZG93JiBpbXBsLCBFeGVjU3RhdGUmIHN0
YXRlKQogICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAKKyAgICBET01XaW5kb3cqIGNhbGxlcldpbmRvdyA9IGNhbGxlckRPTVdpbmRv
dygmc3RhdGUpOworICAgIGlmICghY2FsbGVyV2luZG93KSB7CisgICAgICAgIHNldERPTUV4Y2Vw
dGlvbigmc3RhdGUsIFR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwucG9zdE1lc3NhZ2Uo
bWVzc2FnZS5yZWxlYXNlKCksICZtZXNzYWdlUG9ydHMsIHRhcmdldE9yaWdpbiwgYWN0aXZlRE9N
V2luZG93KCZzdGF0ZSksIGVjKTsKKyAgICBpbXBsLnBvc3RNZXNzYWdlKG1lc3NhZ2UucmVsZWFz
ZSgpLCAmbWVzc2FnZVBvcnRzLCB0YXJnZXRPcmlnaW4sICpjYWxsZXJXaW5kb3csIGVjKTsKICAg
ICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CiAKICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA5ZGMxZGYwZGRmMzIxYTQ0ZjFlZjUwNDJiNWM3MzVmNTI3ODA2ZDZkLi5mOTM0
OTFiMGNjZGRkZjgzNDgyYWU1YzExMGYyYzRiOWFkZTAzYTY3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTYtMDQtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBNZXNzYWdlRXZlbnQuc291cmNlIHdpbmRvdyBpcyBpbmNvcnJlY3Qgb25jZSB3aW5kb3cgaGFz
IGJlZW4gcmVpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU2MjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTU0NTgzMT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdGhhdCBj
b3ZlciB1c2luZyBNZXNzYWdlRXZlbnQuc291cmNlIFdpbmRvdyBmb3IgbWVzc2FnaW5nCisgICAg
ICAgIHVzaW5nIHBvc3RNZXNzYWdlKCkuIFRoZXJlIGFyZSAyIHZlcnNpb25zIG9mIHRoZSB0ZXN0
LCBvbmUgd2hlcmUgdGhlCisgICAgICAgIG1haW4gd2luZG93IGlzIHJlaWZpZWQgYW5kIG9uZSB3
aGVyZSBpdCBpcyBub3QuIFRoZSB0ZXN0IHRoYXQgaGFzIGEKKyAgICAgICAgcmVpZmllZCBtYWlu
IHdpbmRvdyB3YXMgZmFpbGluZyBiZWNhdXNlIHRoaXMgZml4LgorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0
bWVzc2FnZS1yZWlmaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
V2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVz
c2FnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL21l
c3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTYt
MDQtMDQgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFy
a2luZyBwbHVnaW5zL2ZvY3VzLmh0bWwgYXMgZmxha3kgb24gbWFjCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNv
dXJjZS1wb3N0bWVzc2FnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZkYjY3MDgyMmYxNTll
N2U5Y2QwYWRiYzVmMmU3NGJhYjEzZmE0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDM1IEBACitUZXN0cyB0aGF0IE1lc3NhZ2VFdmVudC5zb3VyY2UgaXMg
Y29ycmVjdCBhbmQgY2FuIGJlIHVzZWQgZm9yIG1lc3NhZ2luZy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKKyogU2VuZGluZyBtZXNzYWdlIDEgdG8gY2hpbGQKKyogUGFyZW50IHJl
Y2VpdmVkIG1lc3NhZ2UgMiBmcm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMg
ZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50ZXIgKyAxCisqIFNlbmRp
bmcgbWVzc2FnZSAzIHRvIGNoaWxkCisqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlIDQgZnJvbSBj
aGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdl
RXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQorKiBTZW5kaW5nIG1lc3NhZ2UgNSB0byBjaGlsZAor
KiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA2IGZyb20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50
LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVzc2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciAr
IDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0t
LS0tLS0KKyogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAxIGZyb20gcGFyZW50CitQQVNTIG1lc3Nh
Z2VFdmVudC5zb3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSAyIHRvIHBhcmVudAor
KiBDaGlsZCByZWNlaXZlZCBtZXNzYWdlIDMgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50
LnNvdXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDQgdG8gcGFyZW50CisqIENoaWxk
IHJlY2VpdmVkIG1lc3NhZ2UgNSBmcm9tIHBhcmVudAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNl
IGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgNiB0byBwYXJlbnQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3Nh
Z2UtcmVpZmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVz
c2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iN2JiY2ZkOTQzNmIxYTAzMGY5ZGNkZTM2ZDEyN2Q5M2EzYzVmNDZjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2Ut
cG9zdG1lc3NhZ2UtcmVpZmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMg
dGhhdCBNZXNzYWdlRXZlbnQuc291cmNlIGlzIGNvcnJlY3QgYW5kIGNhbiBiZSB1c2VkIGZvciBt
ZXNzYWdpbmcgKHJlaWZpZWQgV2luZG93IGNhc2UpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworKiBTZW5kaW5nIG1lc3NhZ2UgMSB0byBjaGlsZAorKiBQYXJlbnQgcmVjZWl2ZWQg
bWVzc2FnZSAyIGZyb20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBmcmFtZXNb
MF0KK1BBU1MgbWVzc2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciArIDEKKyogU2VuZGluZyBtZXNz
YWdlIDMgdG8gY2hpbGQKKyogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgNCBmcm9tIGNoaWxkCitQ
QVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5k
YXRhIGlzIGNvdW50ZXIgKyAxCisqIFNlbmRpbmcgbWVzc2FnZSA1IHRvIGNoaWxkCisqIFBhcmVu
dCByZWNlaXZlZCBtZXNzYWdlIDYgZnJvbSBjaGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNl
IGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdlRXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQor
KiBDaGlsZCByZWNlaXZlZCBtZXNzYWdlIDEgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50
LnNvdXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDIgdG8gcGFyZW50CisqIENoaWxk
IHJlY2VpdmVkIG1lc3NhZ2UgMyBmcm9tIHBhcmVudAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNl
IGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgNCB0byBwYXJlbnQKKyogQ2hpbGQgcmVjZWl2
ZWQgbWVzc2FnZSA1IGZyb20gcGFyZW50CitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgcGFy
ZW50CisqIFNlbmRpbmcgbWVzc2FnZSA2IHRvIHBhcmVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlm
aWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJj
ZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc4OTExMzRmNTAyNGMxNDc1
NjA0NWM5M2RmMjA4ZWNkN2I5Mjc0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLXJlaWZpZWQuaHRt
bApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgTWVzc2Fn
ZUV2ZW50LnNvdXJjZSBpcyBjb3JyZWN0IGFuZCBjYW4gYmUgdXNlZCBmb3IgbWVzc2FnaW5nIChy
ZWlmaWVkIFdpbmRvdyBjYXNlKS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisvLyBSZWlm
eSB0aGUgd2luZG93Lgord2luZG93LnRlc3QgPSAxOworZGVsZXRlIHdpbmRvdy50ZXN0OworCitp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKKworY291bnRlciA9IDE7CisKK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7
CisgICAgZGVidWcoIiogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgIiArIGUuZGF0YSArICIgZnJv
bSBjaGlsZCIpOworICAgIG1lc3NhZ2VFdmVudCA9IGU7CisgICAgc2hvdWxkQmUoIm1lc3NhZ2VF
dmVudC5zb3VyY2UiLCAiZnJhbWVzWzBdIik7CisgICAgc2hvdWxkQmUoIm1lc3NhZ2VFdmVudC5k
YXRhIiwgImNvdW50ZXIgKyAxIik7CisgICAgaWYgKG1lc3NhZ2VFdmVudC5kYXRhID4gNSkgewor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb3Vu
dGVyID0gbWVzc2FnZUV2ZW50LmRhdGEgKyAxOworICAgIGRlYnVnKCIqIFNlbmRpbmcgbWVzc2Fn
ZSAiICsgY291bnRlciArICIgdG8gY2hpbGQiKTsKKyAgICBtZXNzYWdlRXZlbnQuc291cmNlLnBv
c3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAg
IGRlYnVnKCIqIFNlbmRpbmcgbWVzc2FnZSAiICsgY291bnRlciArICIgdG8gY2hpbGQiKTsKKyAg
ICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoY291bnRlciwgIioiKTsKK30KKworPC9zY3JpcHQ+Cis8
aWZyYW1lIHNyYz0icmVzb3VyY2VzL21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJh
bWUuaHRtbCI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9z
dG1lc3NhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODY3MzEwZjQ1ZjA4MjE1ZGU5NjQwOGI0OWYzZjk3
YWI1NzdjNzZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UuaHRtbApAQCAtMCwwICsxLDM4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgTWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBjb3Jy
ZWN0IGFuZCBjYW4gYmUgdXNlZCBmb3IgbWVzc2FnaW5nLiIpOworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworCitjb3VudGVyID0gMTsKKword2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGUpIHsKKyAgICBkZWJ1ZygiKiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSAiICsgZS5kYXRh
ICsgIiBmcm9tIGNoaWxkIik7CisgICAgbWVzc2FnZUV2ZW50ID0gZTsKKyAgICBzaG91bGRCZSgi
bWVzc2FnZUV2ZW50LnNvdXJjZSIsICJmcmFtZXNbMF0iKTsKKyAgICBzaG91bGRCZSgibWVzc2Fn
ZUV2ZW50LmRhdGEiLCAiY291bnRlciArIDEiKTsKKyAgICBpZiAobWVzc2FnZUV2ZW50LmRhdGEg
PiA1KSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGNvdW50ZXIgPSBtZXNzYWdlRXZlbnQuZGF0YSArIDE7CisgICAgZGVidWcoIiogU2VuZGlu
ZyBtZXNzYWdlICIgKyBjb3VudGVyICsgIiB0byBjaGlsZCIpOworICAgIG1lc3NhZ2VFdmVudC5z
b3VyY2UucG9zdE1lc3NhZ2UoY291bnRlciwgIioiKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgZGVidWcoIiogU2VuZGluZyBtZXNzYWdlICIgKyBjb3VudGVyICsgIiB0byBjaGls
ZCIpOworICAgIGZyYW1lc1swXS5wb3N0TWVzc2FnZShjb3VudGVyLCAiKiIpOworfQorCis8L3Nj
cmlwdD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVz
c2FnZS1mcmFtZS5odG1sIj48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvbWVzc2FnZWV2ZW50LXNv
dXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3Jlc291cmNlcy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLWZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjQ2ZGMzZGYzMDI0MjM1YjcxNTBmNWNkMzY4YzNjOTcwODc1OGNjZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvbWVzc2Fn
ZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKword2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICBkZWJ1ZygiKiBDaGls
ZCByZWNlaXZlZCBtZXNzYWdlICIgKyBlLmRhdGEgKyAiIGZyb20gcGFyZW50Iik7CisgICAgbWVz
c2FnZUV2ZW50ID0gZTsKKyAgICBzaG91bGRCZSgibWVzc2FnZUV2ZW50LnNvdXJjZSIsICJwYXJl
bnQiKTsKKyAgICBkZWJ1ZygiKiBTZW5kaW5nIG1lc3NhZ2UgIiArIChlLmRhdGEgKyAxKSArICIg
dG8gcGFyZW50Iik7CisgICAgbWVzc2FnZUV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShlLmRhdGEg
KyAxLCAiKiIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275645</attachid>
            <date>2016-04-04 22:53:18 -0700</date>
            <delta_ts>2016-04-05 11:46:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156227-20160404225317.patch</filename>
            <type>text/plain</type>
            <size>19655</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM3YmQ4NDI2YWU3YzIx
MTU1NTE1MzliNGU5ZDE3YmZmNTYzMzc5ZS4uYzY2ZWQxZmViM2M1YTQwNjNlOWZjZDJjNzMzZDcw
ODZjYTIwNDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA0LTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJj
ZSB3aW5kb3cgaXMgaW5jb3JyZWN0IG9uY2Ugd2luZG93IGhhcyBiZWVuIHJlaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjIyNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjU1NDU4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJjZSB3aW5kb3cgd2FzIGluY29y
cmVjdCBvbmNlIHdpbmRvdyBoYWQgYmVlbiByZWlmaWVkLgorCisgICAgICAgIElmIHRoZSBXaW5k
b3cgaGFkIG5vdCBiZWVuIHJlaWZpZWQsIHdlIGtlcHQgY29uc3RydWN0aW5nIG5ldworICAgICAg
ICBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9ucyB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdl
KCkuIFdlIHVzZWQgdG8KKyAgICAgICAgcGFzcyBhY3RpdmVET01XaW5kb3coZXhlY1N0YXRlKSBh
cyBzb3VyY2UgV2luZG93IHRvCisgICAgICAgIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoKS4gYWN0
aXZlRE9NV2luZG93KCkgdXNlcworICAgICAgICBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkg
d2hpY2ggZGlkIHRoZSByaWdodCB0aGluZyBiZWNhdXNlIHdlCisgICAgICAgIHVzZWQgdG8gY29u
c3RydWN0IGEgbmV3IHBvc3RNZXNzYWdlKCkgZnVuY3Rpb24gaW4gdGhlIGNhbGxlcidzIGNvbnRl
eHQuCisKKyAgICAgICAgSG93ZXZlciwgYWZ0ZXIgcmVpZmljYXRpb24sIGR1ZSB0byB0aGUgd2F5
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoKQorICAgICAgICB3YXMgaW1wbGVtZW50
ZWQsIHdlIHdvdWxkIHN0b3AgY29uc3RydWN0aW5nIG5ldyBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9u
cworICAgICAgICB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdlKCkuIEFzIGEgcmVzdWx0
LCB0aGUgc291cmNlIHdpbmRvdyB3b3VsZAorICAgICAgICBiZWNvbWUgaW5jb3JyZWN0IGJlY2F1
c2UgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIHdvdWxkIHJldHVybiB0aGUKKyAgICAgICAg
dGFyZ2V0IFdpbmRvdyBpbnN0ZWFkLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHRoZSBmb2xs
b3dpbmcgaXMgZG9uZToKKyAgICAgICAgMS4gU3RvcCBjb25zdHJ1Y3RpbmcgYSBuZXcgZnVuY3Rp
b24gZXZlcnkgdGltZSBpbiB0aGUgc2FtZSBvcmlnaW4gY2FzZQorICAgICAgICAgICBmb3IgcG9z
dE1lc3NhZ2UsIGJsdXIsIGZvY3VzIGFuZCBjbG9zZS4gVGhpcyB3YXMgaW5lZmZpY2llbnQgYW5k
IGxlYWQKKyAgICAgICAgICAgdG8gaW5jb3JyZWN0IGJlaGF2aW9yOgorICAgICAgICAgICAtIFRo
ZSBiZWhhdmlvciB3b3VsZCBkaWZmZXIgZGVwZW5kaW5nIGlmIHRoZSBXaW5kb3cgaXMgcmVpZmll
ZCBvciBub3QKKyAgICAgICAgICAgLSBJdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGRlbGV0ZSB0
aG9zZSBvcGVyYXRpb25zLCB3aGljaCBpcworICAgICAgICAgICAgIGluY29tcGF0aWJsZSB3aXRo
IHRoZSBzcGVjaWZpY2F0aW9uIGFuZCBvdGhlciBicm93c2VycyAodGVzdGVkCisgICAgICAgICAg
ICAgRmlyZWZveCBhbmQgQ2hyb21lKS4KKyAgICAgICAgMi4gVXNlIGNhbGxlckRPTVdpbmRvdyhl
eGVjU3RhdGUpIGluc3RlYWQgb2YgYWN0aXZlRE9NV2luZG93KGV4ZWNTdGF0ZSkKKyAgICAgICAg
ICAgYXMgc291cmNlIFdpbmRvdyBpbiBKU0RPTVdpbmRvdzo6aGFuZGxlUG9zdE1lc3NhZ2UoKS4g
Y2FsbGVyRE9NV2luZG93KCkKKyAgICAgICAgICAgaXMgYSBuZXcgdXRpbGl0eSBmdW5jdGlvbiB0
aGF0IHJldHVybnMgdGhlIGNhbGxlcidzIFdpbmRvdyBvYmplY3QuCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBv
c3RtZXNzYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUtZnJhbWVzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZXRDYWxsZXJDb2RlQmxvY2tGdW5jdG9y
OjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdlYkNvcmU6OkdldENhbGxlckNvZGVCbG9ja0Z1bmN0
b3I6OmNvZGVCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpjYWxsZXJET01XaW5kb3cpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNz
YWdlKToKKwogMjAxNi0wNC0wNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIFByb3Blcmx5IGdlbmVyYXRlIHN0YXRpYyBmdW5jdGlvbnMgdGhhdCByZXR1
cm4gUHJvbWlzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
CmluZGV4IDIwYjlmZjUwNzQ5MmM2Yjk0MmY2ZGRiNDA5YzMzYWQ0MDMyM2Y4YTQuLjFkYzFlNmVj
ZTA5MWZkNmUzYmVlNDg3MWM4ZGEyOGI3MzliYmNmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkpT
RE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNFeGNlcHRpb25CYXNlLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDxieXRlY29kZS9Db2RlQmxvY2suaD4KICNp
bmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9y
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5oPgpAQCAtNTU3LDYgKzU1OCwzNSBAQCB1aW50NjRfdCB0b1VJbnQ2NChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbgogICAg
IHJldHVybiBuOwogfQogCitjbGFzcyBHZXRDYWxsZXJDb2RlQmxvY2tGdW5jdG9yIHsKK3B1Ymxp
YzoKKyAgICBHZXRDYWxsZXJDb2RlQmxvY2tGdW5jdG9yKCkgPSBkZWZhdWx0OworCisgICAgU3Rh
Y2tWaXNpdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja1Zpc2l0b3ImIHZpc2l0b3IpCisgICAg
eworICAgICAgICArK21faXRlcmF0aW9uczsKKyAgICAgICAgaWYgKG1faXRlcmF0aW9ucyA8IDIp
CisgICAgICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKKworICAgICAgICBt
X2NvZGVCbG9jayA9IHZpc2l0b3ItPmNvZGVCbG9jaygpOworICAgICAgICByZXR1cm4gU3RhY2tW
aXNpdG9yOjpEb25lOworICAgIH0KKworICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2RlQmxvY2s7IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV9pdGVyYXRpb25z
IHsgMCB9OworICAgIENvZGVCbG9jayogbV9jb2RlQmxvY2sgeyBudWxscHRyIH07Cit9OworCitE
T01XaW5kb3cqIGNhbGxlckRPTVdpbmRvdyhFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgR2V0Q2Fs
bGVyQ29kZUJsb2NrRnVuY3RvciBpdGVyOworICAgIGV4ZWMtPml0ZXJhdGUoaXRlcik7CisgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBpdGVyLmNvZGVCbG9jaygpOworICAgIHJldHVybiBjb2Rl
QmxvY2sgPyAmYXNKU0RPTVdpbmRvdyhjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKS0+d3JhcHBl
ZCgpIDogbnVsbHB0cjsKK30KKwogRE9NV2luZG93JiBhY3RpdmVET01XaW5kb3coRXhlY1N0YXRl
KiBleGVjKQogewogICAgIHJldHVybiBhc0pTRE9NV2luZG93KGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSktPndyYXBwZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgKaW5kZXggYzg5MDJlNjliZTcwN2Y2ZDg2OTI5M2JlMWU3NWIxNGVmODY4ZWFjZi4uN2E1
N2JjNjdkNTA2M2Q5N2JlZTg5ZGQ3ZjQ3MjZjNGVlOGI4NTA1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTc4LDYgKzc4LDcgQEAgc3RydWN0IEV4Y2Vw
dGlvbkRldGFpbHMgewogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCitET01XaW5kb3cq
IGNhbGxlckRPTVdpbmRvdyhKU0M6OkV4ZWNTdGF0ZSopOwogRE9NV2luZG93JiBhY3RpdmVET01X
aW5kb3coSlNDOjpFeGVjU3RhdGUqKTsKIERPTVdpbmRvdyYgZmlyc3RET01XaW5kb3coSlNDOjpF
eGVjU3RhdGUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCmluZGV4IDIyZWExZGZkYzMxMDVkNTQ1YjI1MTY3NDc2N2ZkOWQ2YjdjMzlk
NDcuLjY0MDhhOGVlMGJiMjg4YmViY2ZmY2I5NWQzN2E5YTMzZmIxOWJjZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTI1Miwz
MCArMjUyLDYgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHkKICAgICAvLyAoUGFydGljdWxhcmx5
LCBpcyBpdCBjb3JyZWN0IHRoYXQgdGhpcyBleGlzdHMgaGVyZSBidXQgbm90IGluIGdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXg/KQogICAgIHNsb3Quc2V0V2F0Y2hwb2ludFNldCh0aGlzT2JqZWN0
LT5tX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHMpOwogCi0gICAgLy8gRklYTUU6IFRoZXNlIGFyZSBh
bGwgYm9ndXMuIEtlZXBpbmcgdGhlc2UgaGVyZSBtYWtlIHNvbWUgdGVzdHMgcGFzcyB0aGF0IGNo
ZWNrIHRoZXNlIHByb3BlcnRpZXMKLSAgICAvLyBhcmUgb3duIHByb3BlcnRpZXMgb2YgdGhlIHdp
bmRvdywgYnV0IGludHJvZHVjZXMgb3RoZXIgcHJvYmxlbXMgaW5zdGVhZCAoZS5nLiBpZiB5b3Ug
b3ZlcndyaXRlCi0gICAgLy8gJiBkZWxldGUgdGhlbiB0aGUgb3JpZ2luYWwgdmFsdWUgaXMgcmVz
dG9yZWQhKSBTaG91bGQgYmUgcmVtb3ZlZC4KLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5ibHVyKSB7Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250
RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93SW5zdGFuY2VG
dW5jdGlvbkJsdXIsIDA+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNsb3NlKSB7Ci0gICAgICAgIGlm
ICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpCi0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25s
eSB8IERvbnREZWxldGUgfCBEb250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVy
PGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkNsb3NlLCAwPik7Ci0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5mb2N1cykgewotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAgICAgc2xvdC5zZXRDdXN0
b20odGhpc09iamVjdCwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0sIG5vbkNhY2hp
bmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Gb2N1cywg
MD4pOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKHByb3BlcnR5TmFtZSA9
PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucG9zdE1lc3NhZ2UpIHsKLSAgICAgICAgaWYgKCFCYXNl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KSkKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIFJlYWRPbmx5IHwgRG9u
dERlbGV0ZSB8IERvbnRFbnVtLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01X
aW5kb3dJbnN0YW5jZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIDI+KTsKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgfQotCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuc2hvd01vZGFsRGlhbG9nKSB7CiAgICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtNjEyLDggKzU4OCwxNCBAQCBzdGF0aWMgSlNWYWx1ZSBoYW5kbGVQb3N0
TWVzc2FnZShET01XaW5kb3cmIGltcGwsIEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAorICAgIERP
TVdpbmRvdyogY2FsbGVyV2luZG93ID0gY2FsbGVyRE9NV2luZG93KCZzdGF0ZSk7CisgICAgaWYg
KCFjYWxsZXJXaW5kb3cpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgVHlwZUVy
cm9yKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC5wb3N0TWVzc2FnZShtZXNzYWdlLnJlbGVhc2UoKSwg
Jm1lc3NhZ2VQb3J0cywgdGFyZ2V0T3JpZ2luLCBhY3RpdmVET01XaW5kb3coJnN0YXRlKSwgZWMp
OworICAgIGltcGwucG9zdE1lc3NhZ2UobWVzc2FnZS5yZWxlYXNlKCksICZtZXNzYWdlUG9ydHMs
IHRhcmdldE9yaWdpbiwgKmNhbGxlcldpbmRvdywgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbigm
c3RhdGUsIGVjKTsKIAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlkYzFkZjBk
ZGYzMjFhNDRmMWVmNTA0MmI1YzczNWY1Mjc4MDZkNmQuLmYwNGI0NjExOWEwMjQyNjBkYWE1ZjZm
M2IyZjgzNThkZWM2MjExNDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNi0wNC0wNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1lc3NhZ2VFdmVudC5zb3Vy
Y2Ugd2luZG93IGlzIGluY29ycmVjdCBvbmNlIHdpbmRvdyBoYXMgYmVlbiByZWlmaWVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYyMjcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI1NTQ1ODMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0aGF0IGNvdmVyIHVzaW5nIE1lc3NhZ2VF
dmVudC5zb3VyY2UgV2luZG93IGZvciBtZXNzYWdpbmcKKyAgICAgICAgdXNpbmcgcG9zdE1lc3Nh
Z2UoKS4gVGhlcmUgYXJlIDIgdmVyc2lvbnMgb2YgdGhlIHRlc3QsIG9uZSB3aGVyZSB0aGUKKyAg
ICAgICAgbWFpbiB3aW5kb3cgaXMgcmVpZmllZCBhbmQgb25lIHdoZXJlIGl0IGlzIG5vdC4gVGhl
IHRlc3QgdGhhdCBoYXMgYQorICAgICAgICByZWlmaWVkIG1haW4gd2luZG93IHdhcyBmYWlsaW5n
IGJlY2F1c2UgdGhpcyBmaXguCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvZGVsZXRlLW9w
ZXJhdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cv
ZGVsZXRlLW9wZXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IG9w
ZXJhdGlvbnMgb24gV2luZG93IGFyZSBpbmRlZWQgZGVsZXRhYmxlLiBQcmV2aW91c2x5LAorICAg
ICAgICBpdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGRlbGV0ZSBwb3N0TWVzc2FnZSwgYmx1ciwg
Zm9jdXMgYW5kIGNsb3NlLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVu
dC1zb3VyY2UtcG9zdG1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1z
b3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL21lc3NhZ2VldmVudC1zb3VyY2UtcG9z
dG1lc3NhZ2UtZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTYtMDQtMDQgIFJ5YW4gSGFkZGFkICA8
cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFya2luZyBwbHVnaW5zL2ZvY3VzLmh0
bWwgYXMgZmxha3kgb24gbWFjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvZGVsZXRlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L2RlbGV0ZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDM1ZjA4
OWQ3ZTVmN2IwOTMwYmU0Mzg2OTYzMzYyYjk5ZjdlMDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RlbGV0ZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDc1IEBACitUZXN0cyBkZWxldGluZyB3aW5kb3cgb3BlcmF0aW9ucyB3b3JrcyBh
cyBleHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cu
cG9zdE1lc3NhZ2UgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5wb3N0TWVzc2Fn
ZSA9IDEKK1BBU1Mgd2luZG93LnBvc3RNZXNzYWdlIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5w
b3N0TWVzc2FnZSBpcyB0cnVlCitQQVNTIHdpbmRvdy5wb3N0TWVzc2FnZSBpcyB1bmRlZmluZWQu
CisKK1BBU1Mgd2luZG93LmZvY3VzIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cu
Zm9jdXMgPSAxCitQQVNTIHdpbmRvdy5mb2N1cyBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuZm9j
dXMgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZm9jdXMgaXMgdW5kZWZpbmVkLgorCitQQVNTIHdpbmRv
dy5ibHVyIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuYmx1ciA9IDEKK1BBU1Mg
d2luZG93LmJsdXIgaXMgMQorUEFTUyBkZWxldGUgd2luZG93LmJsdXIgaXMgdHJ1ZQorUEFTUyB3
aW5kb3cuYmx1ciBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LmNsb3NlIGlzIGFuIGluc3Rh
bmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuY2xvc2UgPSAxCitQQVNTIHdpbmRvdy5jbG9zZSBpcyAx
CitQQVNTIGRlbGV0ZSB3aW5kb3cuY2xvc2UgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuY2xvc2UgaXMg
dW5kZWZpbmVkLgorCitQQVNTIHdpbmRvdy5vcGVuIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9u
Cit3aW5kb3cub3BlbiA9IDEKK1BBU1Mgd2luZG93Lm9wZW4gaXMgMQorUEFTUyBkZWxldGUgd2lu
ZG93Lm9wZW4gaXMgdHJ1ZQorUEFTUyB3aW5kb3cub3BlbiBpcyB1bmRlZmluZWQuCisKK1BBU1Mg
d2luZG93LnNob3dNb2RhbERpYWxvZyBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgord2luZG93
LnNob3dNb2RhbERpYWxvZyA9IDEKK1BBU1Mgd2luZG93LnNob3dNb2RhbERpYWxvZyBpcyAxCitQ
QVNTIGRlbGV0ZSB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIHRydWUKK1BBU1Mgd2luZG93LnNo
b3dNb2RhbERpYWxvZyBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LmFsZXJ0IGlzIGFuIGlu
c3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuYWxlcnQgPSAxCitQQVNTIHdpbmRvdy5hbGVydCBp
cyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuYWxlcnQgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuYWxlcnQg
aXMgdW5kZWZpbmVkLgorCitQQVNTIHdpbmRvdy5jb25maXJtIGlzIGFuIGluc3RhbmNlIG9mIEZ1
bmN0aW9uCit3aW5kb3cuY29uZmlybSA9IDEKK1BBU1Mgd2luZG93LmNvbmZpcm0gaXMgMQorUEFT
UyBkZWxldGUgd2luZG93LmNvbmZpcm0gaXMgdHJ1ZQorUEFTUyB3aW5kb3cuY29uZmlybSBpcyB1
bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LnByb21wdCBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlv
bgord2luZG93LnByb21wdCA9IDEKK1BBU1Mgd2luZG93LnByb21wdCBpcyAxCitQQVNTIGRlbGV0
ZSB3aW5kb3cucHJvbXB0IGlzIHRydWUKK1BBU1Mgd2luZG93LnByb21wdCBpcyB1bmRlZmluZWQu
CisKK1BBU1Mgd2luZG93LnN0b3AgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5z
dG9wID0gMQorUEFTUyB3aW5kb3cuc3RvcCBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuc3RvcCBp
cyB0cnVlCitQQVNTIHdpbmRvdy5zdG9wIGlzIHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cuc2Ny
b2xsIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuc2Nyb2xsID0gMQorUEFTUyB3
aW5kb3cuc2Nyb2xsIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5zY3JvbGwgaXMgdHJ1ZQorUEFT
UyB3aW5kb3cuc2Nyb2xsIGlzIHVuZGVmaW5lZC4KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L2RlbGV0ZS1vcGVyYXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E3NTdlMDU2NThmYjBl
ZWQ1NTM4NDM0MDgwM2IxYTMyMDgyN2I0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCkBAIC0wLDAgKzEsMzEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMg
ZGVsZXRpbmcgd2luZG93IG9wZXJhdGlvbnMgd29ya3MgYXMgZXhwZWN0ZWQiKTsKKworZnVuY3Rp
b24gdGVzdEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSkKK3sKKyAgICBzaG91bGRCZVR5cGUoIndpbmRv
dy4iICsgZnVuY3Rpb25OYW1lLCAiRnVuY3Rpb24iKTsKKyAgICBldmFsQW5kTG9nKCJ3aW5kb3cu
IiArIGZ1bmN0aW9uTmFtZSArICIgPSAxIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy4iICsgZnVu
Y3Rpb25OYW1lLCAiMSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZGVsZXRlIHdpbmRvdy4iICsgZnVu
Y3Rpb25OYW1lKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgid2luZG93LiIgKyBmdW5jdGlvbk5h
bWUpOworICAgIGRlYnVnKCIiKTsKK30KKwordGVzdEZ1bmN0aW9uKCJwb3N0TWVzc2FnZSIpOwor
dGVzdEZ1bmN0aW9uKCJmb2N1cyIpOwordGVzdEZ1bmN0aW9uKCJibHVyIik7Cit0ZXN0RnVuY3Rp
b24oImNsb3NlIik7Cit0ZXN0RnVuY3Rpb24oIm9wZW4iKTsKK3Rlc3RGdW5jdGlvbigic2hvd01v
ZGFsRGlhbG9nIik7Cit0ZXN0RnVuY3Rpb24oImFsZXJ0Iik7Cit0ZXN0RnVuY3Rpb24oImNvbmZp
cm0iKTsKK3Rlc3RGdW5jdGlvbigicHJvbXB0Iik7Cit0ZXN0RnVuY3Rpb24oInN0b3AiKTsKK3Rl
c3RGdW5jdGlvbigic2Nyb2xsIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1l
c3NhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2Vl
dmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZGI2NzA4
MjJmMTU5ZTdlOWNkMGFkYmM1ZjJlNzRiYWIxM2ZhNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgdGhhdCBNZXNzYWdlRXZlbnQuc291
cmNlIGlzIGNvcnJlY3QgYW5kIGNhbiBiZSB1c2VkIGZvciBtZXNzYWdpbmcuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCisqIFNlbmRpbmcgbWVzc2FnZSAxIHRvIGNoaWxkCisqIFBh
cmVudCByZWNlaXZlZCBtZXNzYWdlIDIgZnJvbSBjaGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291
cmNlIGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdlRXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQor
KiBTZW5kaW5nIG1lc3NhZ2UgMyB0byBjaGlsZAorKiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA0
IGZyb20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1Mg
bWVzc2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciArIDEKKyogU2VuZGluZyBtZXNzYWdlIDUgdG8g
Y2hpbGQKKyogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgNiBmcm9tIGNoaWxkCitQQVNTIG1lc3Nh
Z2VFdmVudC5zb3VyY2UgaXMgZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNv
dW50ZXIgKyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0t
PicKKy0tLS0tLS0tCisqIENoaWxkIHJlY2VpdmVkIG1lc3NhZ2UgMSBmcm9tIHBhcmVudAorUEFT
UyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgMiB0byBw
YXJlbnQKKyogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAzIGZyb20gcGFyZW50CitQQVNTIG1lc3Nh
Z2VFdmVudC5zb3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSA0IHRvIHBhcmVudAor
KiBDaGlsZCByZWNlaXZlZCBtZXNzYWdlIDUgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50
LnNvdXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDYgdG8gcGFyZW50CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBv
c3RtZXNzYWdlLXJlaWZpZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjdiYmNmZDk0MzZiMWEwMzBmOWRjZGUzNmQxMjdkOTNhM2M1ZjQ2YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQt
c291cmNlLXBvc3RtZXNzYWdlLXJlaWZpZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAK
K1Rlc3RzIHRoYXQgTWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBjb3JyZWN0IGFuZCBjYW4gYmUgdXNl
ZCBmb3IgbWVzc2FnaW5nIChyZWlmaWVkIFdpbmRvdyBjYXNlKS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKKyogU2VuZGluZyBtZXNzYWdlIDEgdG8gY2hpbGQKKyogUGFyZW50IHJl
Y2VpdmVkIG1lc3NhZ2UgMiBmcm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMg
ZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50ZXIgKyAxCisqIFNlbmRp
bmcgbWVzc2FnZSAzIHRvIGNoaWxkCisqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlIDQgZnJvbSBj
aGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdl
RXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQorKiBTZW5kaW5nIG1lc3NhZ2UgNSB0byBjaGlsZAor
KiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA2IGZyb20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50
LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVzc2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciAr
IDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0t
LS0tLS0KKyogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAxIGZyb20gcGFyZW50CitQQVNTIG1lc3Nh
Z2VFdmVudC5zb3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSAyIHRvIHBhcmVudAor
KiBDaGlsZCByZWNlaXZlZCBtZXNzYWdlIDMgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50
LnNvdXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDQgdG8gcGFyZW50CisqIENoaWxk
IHJlY2VpdmVkIG1lc3NhZ2UgNSBmcm9tIHBhcmVudAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNl
IGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgNiB0byBwYXJlbnQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3Nh
Z2UtcmVpZmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVu
dC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ODkxMTM0ZjUw
MjRjMTQ3NTYwNDVjOTNkZjIwOGVjZDdiOTI3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlm
aWVkLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IE1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgY29ycmVjdCBhbmQgY2FuIGJlIHVzZWQgZm9yIG1lc3Nh
Z2luZyAocmVpZmllZCBXaW5kb3cgY2FzZSkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
Ly8gUmVpZnkgdGhlIHdpbmRvdy4KK3dpbmRvdy50ZXN0ID0gMTsKK2RlbGV0ZSB3aW5kb3cudGVz
dDsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJh
bWVzQXNUZXh0KCk7CisKK2NvdW50ZXIgPSAxOworCit3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rp
b24oZSkgeworICAgIGRlYnVnKCIqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlICIgKyBlLmRhdGEg
KyAiIGZyb20gY2hpbGQiKTsKKyAgICBtZXNzYWdlRXZlbnQgPSBlOworICAgIHNob3VsZEJlKCJt
ZXNzYWdlRXZlbnQuc291cmNlIiwgImZyYW1lc1swXSIpOworICAgIHNob3VsZEJlKCJtZXNzYWdl
RXZlbnQuZGF0YSIsICJjb3VudGVyICsgMSIpOworICAgIGlmIChtZXNzYWdlRXZlbnQuZGF0YSA+
IDUpIHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgY291bnRlciA9IG1lc3NhZ2VFdmVudC5kYXRhICsgMTsKKyAgICBkZWJ1ZygiKiBTZW5kaW5n
IG1lc3NhZ2UgIiArIGNvdW50ZXIgKyAiIHRvIGNoaWxkIik7CisgICAgbWVzc2FnZUV2ZW50LnNv
dXJjZS5wb3N0TWVzc2FnZShjb3VudGVyLCAiKiIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkK
K3sKKyAgICBkZWJ1ZygiKiBTZW5kaW5nIG1lc3NhZ2UgIiArIGNvdW50ZXIgKyAiIHRvIGNoaWxk
Iik7CisgICAgZnJhbWVzWzBdLnBvc3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9CisKKzwvc2Ny
aXB0PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNz
YWdlLWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1l
c3NhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291
cmNlLXBvc3RtZXNzYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg2NzMxMGY0NWYwODIxNWRlOTY0MDhi
NDlmM2Y5N2FiNTc3Yzc2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLmh0bWwKQEAgLTAsMCArMSwz
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IE1lc3NhZ2VFdmVudC5zb3VyY2Ug
aXMgY29ycmVjdCBhbmQgY2FuIGJlIHVzZWQgZm9yIG1lc3NhZ2luZy4iKTsKK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKTsKKworY291bnRlciA9IDE7CisKK3dpbmRvdy5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihlKSB7CisgICAgZGVidWcoIiogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgIiAr
IGUuZGF0YSArICIgZnJvbSBjaGlsZCIpOworICAgIG1lc3NhZ2VFdmVudCA9IGU7CisgICAgc2hv
dWxkQmUoIm1lc3NhZ2VFdmVudC5zb3VyY2UiLCAiZnJhbWVzWzBdIik7CisgICAgc2hvdWxkQmUo
Im1lc3NhZ2VFdmVudC5kYXRhIiwgImNvdW50ZXIgKyAxIik7CisgICAgaWYgKG1lc3NhZ2VFdmVu
dC5kYXRhID4gNSkgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBjb3VudGVyID0gbWVzc2FnZUV2ZW50LmRhdGEgKyAxOworICAgIGRlYnVnKCIq
IFNlbmRpbmcgbWVzc2FnZSAiICsgY291bnRlciArICIgdG8gY2hpbGQiKTsKKyAgICBtZXNzYWdl
RXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKQoreworICAgIGRlYnVnKCIqIFNlbmRpbmcgbWVzc2FnZSAiICsgY291bnRlciArICIg
dG8gY2hpbGQiKTsKKyAgICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoY291bnRlciwgIioiKTsKK30K
KworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL21lc3NhZ2VldmVudC1zb3VyY2Ut
cG9zdG1lc3NhZ2UtZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL21lc3NhZ2Vl
dmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9yZXNvdXJjZXMvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI0NmRjM2RmMzAyNDIzNWI3MTUwZjVjZDM2OGMzYzk3MDg3NThjY2YK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2Vz
L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDE2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgZGVidWco
IiogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAiICsgZS5kYXRhICsgIiBmcm9tIHBhcmVudCIpOwor
ICAgIG1lc3NhZ2VFdmVudCA9IGU7CisgICAgc2hvdWxkQmUoIm1lc3NhZ2VFdmVudC5zb3VyY2Ui
LCAicGFyZW50Iik7CisgICAgZGVidWcoIiogU2VuZGluZyBtZXNzYWdlICIgKyAoZS5kYXRhICsg
MSkgKyAiIHRvIHBhcmVudCIpOworICAgIG1lc3NhZ2VFdmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uo
ZS5kYXRhICsgMSwgIioiKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275681</attachid>
            <date>2016-04-05 11:47:03 -0700</date>
            <delta_ts>2016-04-05 16:14:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156227-20160405114703.patch</filename>
            <type>text/plain</type>
            <size>19709</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM3YmQ4NDI2YWU3YzIx
MTU1NTE1MzliNGU5ZDE3YmZmNTYzMzc5ZS4uYzY2ZWQxZmViM2M1YTQwNjNlOWZjZDJjNzMzZDcw
ODZjYTIwNDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA0LTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJj
ZSB3aW5kb3cgaXMgaW5jb3JyZWN0IG9uY2Ugd2luZG93IGhhcyBiZWVuIHJlaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjIyNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjU1NDU4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJjZSB3aW5kb3cgd2FzIGluY29y
cmVjdCBvbmNlIHdpbmRvdyBoYWQgYmVlbiByZWlmaWVkLgorCisgICAgICAgIElmIHRoZSBXaW5k
b3cgaGFkIG5vdCBiZWVuIHJlaWZpZWQsIHdlIGtlcHQgY29uc3RydWN0aW5nIG5ldworICAgICAg
ICBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9ucyB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdl
KCkuIFdlIHVzZWQgdG8KKyAgICAgICAgcGFzcyBhY3RpdmVET01XaW5kb3coZXhlY1N0YXRlKSBh
cyBzb3VyY2UgV2luZG93IHRvCisgICAgICAgIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoKS4gYWN0
aXZlRE9NV2luZG93KCkgdXNlcworICAgICAgICBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkg
d2hpY2ggZGlkIHRoZSByaWdodCB0aGluZyBiZWNhdXNlIHdlCisgICAgICAgIHVzZWQgdG8gY29u
c3RydWN0IGEgbmV3IHBvc3RNZXNzYWdlKCkgZnVuY3Rpb24gaW4gdGhlIGNhbGxlcidzIGNvbnRl
eHQuCisKKyAgICAgICAgSG93ZXZlciwgYWZ0ZXIgcmVpZmljYXRpb24sIGR1ZSB0byB0aGUgd2F5
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoKQorICAgICAgICB3YXMgaW1wbGVtZW50
ZWQsIHdlIHdvdWxkIHN0b3AgY29uc3RydWN0aW5nIG5ldyBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9u
cworICAgICAgICB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdlKCkuIEFzIGEgcmVzdWx0
LCB0aGUgc291cmNlIHdpbmRvdyB3b3VsZAorICAgICAgICBiZWNvbWUgaW5jb3JyZWN0IGJlY2F1
c2UgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIHdvdWxkIHJldHVybiB0aGUKKyAgICAgICAg
dGFyZ2V0IFdpbmRvdyBpbnN0ZWFkLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHRoZSBmb2xs
b3dpbmcgaXMgZG9uZToKKyAgICAgICAgMS4gU3RvcCBjb25zdHJ1Y3RpbmcgYSBuZXcgZnVuY3Rp
b24gZXZlcnkgdGltZSBpbiB0aGUgc2FtZSBvcmlnaW4gY2FzZQorICAgICAgICAgICBmb3IgcG9z
dE1lc3NhZ2UsIGJsdXIsIGZvY3VzIGFuZCBjbG9zZS4gVGhpcyB3YXMgaW5lZmZpY2llbnQgYW5k
IGxlYWQKKyAgICAgICAgICAgdG8gaW5jb3JyZWN0IGJlaGF2aW9yOgorICAgICAgICAgICAtIFRo
ZSBiZWhhdmlvciB3b3VsZCBkaWZmZXIgZGVwZW5kaW5nIGlmIHRoZSBXaW5kb3cgaXMgcmVpZmll
ZCBvciBub3QKKyAgICAgICAgICAgLSBJdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGRlbGV0ZSB0
aG9zZSBvcGVyYXRpb25zLCB3aGljaCBpcworICAgICAgICAgICAgIGluY29tcGF0aWJsZSB3aXRo
IHRoZSBzcGVjaWZpY2F0aW9uIGFuZCBvdGhlciBicm93c2VycyAodGVzdGVkCisgICAgICAgICAg
ICAgRmlyZWZveCBhbmQgQ2hyb21lKS4KKyAgICAgICAgMi4gVXNlIGNhbGxlckRPTVdpbmRvdyhl
eGVjU3RhdGUpIGluc3RlYWQgb2YgYWN0aXZlRE9NV2luZG93KGV4ZWNTdGF0ZSkKKyAgICAgICAg
ICAgYXMgc291cmNlIFdpbmRvdyBpbiBKU0RPTVdpbmRvdzo6aGFuZGxlUG9zdE1lc3NhZ2UoKS4g
Y2FsbGVyRE9NV2luZG93KCkKKyAgICAgICAgICAgaXMgYSBuZXcgdXRpbGl0eSBmdW5jdGlvbiB0
aGF0IHJldHVybnMgdGhlIGNhbGxlcidzIFdpbmRvdyBvYmplY3QuCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBv
c3RtZXNzYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUtZnJhbWVzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZXRDYWxsZXJDb2RlQmxvY2tGdW5jdG9y
OjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdlYkNvcmU6OkdldENhbGxlckNvZGVCbG9ja0Z1bmN0
b3I6OmNvZGVCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpjYWxsZXJET01XaW5kb3cpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNz
YWdlKToKKwogMjAxNi0wNC0wNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIFByb3Blcmx5IGdlbmVyYXRlIHN0YXRpYyBmdW5jdGlvbnMgdGhhdCByZXR1
cm4gUHJvbWlzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
CmluZGV4IDIwYjlmZjUwNzQ5MmM2Yjk0MmY2ZGRiNDA5YzMzYWQ0MDMyM2Y4YTQuLmQyNmJjNjY5
MDZkYjExZWJlNGI5ODdkNDhkZjFjMzE4YTVmNWNjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkpT
RE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNFeGNlcHRpb25CYXNlLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDxieXRlY29kZS9Db2RlQmxvY2suaD4KICNp
bmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9y
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5oPgpAQCAtNTU3LDYgKzU1OCwzNiBAQCB1aW50NjRfdCB0b1VJbnQ2NChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbgogICAg
IHJldHVybiBuOwogfQogCitjbGFzcyBHZXRDYWxsZXJDb2RlQmxvY2tGdW5jdG9yIHsKK3B1Ymxp
YzoKKyAgICBHZXRDYWxsZXJDb2RlQmxvY2tGdW5jdG9yKCkgPSBkZWZhdWx0OworCisgICAgU3Rh
Y2tWaXNpdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja1Zpc2l0b3ImIHZpc2l0b3IpCisgICAg
eworICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAgICAgIG1f
aGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlz
aXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBtX2NvZGVCbG9jayA9IHZpc2l0
b3ItPmNvZGVCbG9jaygpOworICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpEb25lOworICAg
IH0KKworICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlQmxv
Y2s7IH0KKworcHJpdmF0ZToKKyAgICBib29sIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgeyBmYWxz
ZSB9OworICAgIENvZGVCbG9jayogbV9jb2RlQmxvY2sgeyBudWxscHRyIH07Cit9OworCitET01X
aW5kb3cqIGNhbGxlckRPTVdpbmRvdyhFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgR2V0Q2FsbGVy
Q29kZUJsb2NrRnVuY3RvciBpdGVyOworICAgIGV4ZWMtPml0ZXJhdGUoaXRlcik7CisgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBpdGVyLmNvZGVCbG9jaygpOworICAgIHJldHVybiBjb2RlQmxv
Y2sgPyAmYXNKU0RPTVdpbmRvdyhjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKS0+d3JhcHBlZCgp
IDogbnVsbHB0cjsKK30KKwogRE9NV2luZG93JiBhY3RpdmVET01XaW5kb3coRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIHJldHVybiBhc0pTRE9NV2luZG93KGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSktPndyYXBwZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmgKaW5kZXggYzg5MDJlNjliZTcwN2Y2ZDg2OTI5M2JlMWU3NWIxNGVmODY4ZWFjZi4uN2E1N2Jj
NjdkNTA2M2Q5N2JlZTg5ZGQ3ZjQ3MjZjNGVlOGI4NTA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTc4LDYgKzc4LDcgQEAgc3RydWN0IEV4Y2VwdGlv
bkRldGFpbHMgewogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCitET01XaW5kb3cqIGNh
bGxlckRPTVdpbmRvdyhKU0M6OkV4ZWNTdGF0ZSopOwogRE9NV2luZG93JiBhY3RpdmVET01XaW5k
b3coSlNDOjpFeGVjU3RhdGUqKTsKIERPTVdpbmRvdyYgZmlyc3RET01XaW5kb3coSlNDOjpFeGVj
U3RhdGUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCmluZGV4IDIyZWExZGZkYzMxMDVkNTQ1YjI1MTY3NDc2N2ZkOWQ2YjdjMzlkNDcu
LjY0MDhhOGVlMGJiMjg4YmViY2ZmY2I5NWQzN2E5YTMzZmIxOWJjZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTI1MiwzMCAr
MjUyLDYgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHkKICAgICAvLyAoUGFydGljdWxhcmx5LCBp
cyBpdCBjb3JyZWN0IHRoYXQgdGhpcyBleGlzdHMgaGVyZSBidXQgbm90IGluIGdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXg/KQogICAgIHNsb3Quc2V0V2F0Y2hwb2ludFNldCh0aGlzT2JqZWN0LT5t
X3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHMpOwogCi0gICAgLy8gRklYTUU6IFRoZXNlIGFyZSBhbGwg
Ym9ndXMuIEtlZXBpbmcgdGhlc2UgaGVyZSBtYWtlIHNvbWUgdGVzdHMgcGFzcyB0aGF0IGNoZWNr
IHRoZXNlIHByb3BlcnRpZXMKLSAgICAvLyBhcmUgb3duIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRv
dywgYnV0IGludHJvZHVjZXMgb3RoZXIgcHJvYmxlbXMgaW5zdGVhZCAoZS5nLiBpZiB5b3Ugb3Zl
cndyaXRlCi0gICAgLy8gJiBkZWxldGUgdGhlbiB0aGUgb3JpZ2luYWwgdmFsdWUgaXMgcmVzdG9y
ZWQhKSBTaG91bGQgYmUgcmVtb3ZlZC4KLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5ibHVyKSB7Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVydHlT
bG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAgICBz
bG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51
bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93SW5zdGFuY2VGdW5j
dGlvbkJsdXIsIDA+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChwcm9w
ZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNsb3NlKSB7Ci0gICAgICAgIGlmICgh
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCkpCi0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8
IERvbnREZWxldGUgfCBEb250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpz
RE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkNsb3NlLCAwPik7Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5m
b2N1cykgewotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpc09iamVjdCwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0sIG5vbkNhY2hpbmdT
dGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Gb2N1cywgMD4p
OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkucG9zdE1lc3NhZ2UpIHsKLSAgICAgICAgaWYgKCFCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkK
LSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIFJlYWRPbmx5IHwgRG9udERl
bGV0ZSB8IERvbnRFbnVtLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5k
b3dJbnN0YW5jZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIDI+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
c2hvd01vZGFsRGlhbG9nKSB7CiAgICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtNjEyLDggKzU4OCwxNCBAQCBzdGF0aWMgSlNWYWx1ZSBoYW5kbGVQb3N0TWVz
c2FnZShET01XaW5kb3cmIGltcGwsIEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKHN0YXRlLmhh
ZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAorICAgIERPTVdp
bmRvdyogY2FsbGVyV2luZG93ID0gY2FsbGVyRE9NV2luZG93KCZzdGF0ZSk7CisgICAgaWYgKCFj
YWxsZXJXaW5kb3cpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgVHlwZUVycm9y
KTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgaW1wbC5wb3N0TWVzc2FnZShtZXNzYWdlLnJlbGVhc2UoKSwgJm1l
c3NhZ2VQb3J0cywgdGFyZ2V0T3JpZ2luLCBhY3RpdmVET01XaW5kb3coJnN0YXRlKSwgZWMpOwor
ICAgIGltcGwucG9zdE1lc3NhZ2UobWVzc2FnZS5yZWxlYXNlKCksICZtZXNzYWdlUG9ydHMsIHRh
cmdldE9yaWdpbiwgKmNhbGxlcldpbmRvdywgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbigmc3Rh
dGUsIGVjKTsKIAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlkYzFkZjBkZGYz
MjFhNDRmMWVmNTA0MmI1YzczNWY1Mjc4MDZkNmQuLmYwNGI0NjExOWEwMjQyNjBkYWE1ZjZmM2Iy
ZjgzNThkZWM2MjExNDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNi0wNC0wNCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1lc3NhZ2VFdmVudC5zb3VyY2Ug
d2luZG93IGlzIGluY29ycmVjdCBvbmNlIHdpbmRvdyBoYXMgYmVlbiByZWlmaWVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYyMjcKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI1NTQ1ODMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0aGF0IGNvdmVyIHVzaW5nIE1lc3NhZ2VFdmVu
dC5zb3VyY2UgV2luZG93IGZvciBtZXNzYWdpbmcKKyAgICAgICAgdXNpbmcgcG9zdE1lc3NhZ2Uo
KS4gVGhlcmUgYXJlIDIgdmVyc2lvbnMgb2YgdGhlIHRlc3QsIG9uZSB3aGVyZSB0aGUKKyAgICAg
ICAgbWFpbiB3aW5kb3cgaXMgcmVpZmllZCBhbmQgb25lIHdoZXJlIGl0IGlzIG5vdC4gVGhlIHRl
c3QgdGhhdCBoYXMgYQorICAgICAgICByZWlmaWVkIG1haW4gd2luZG93IHdhcyBmYWlsaW5nIGJl
Y2F1c2UgdGhpcyBmaXguCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvZGVsZXRlLW9wZXJh
dGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvZGVs
ZXRlLW9wZXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IG9wZXJh
dGlvbnMgb24gV2luZG93IGFyZSBpbmRlZWQgZGVsZXRhYmxlLiBQcmV2aW91c2x5LAorICAgICAg
ICBpdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGRlbGV0ZSBwb3N0TWVzc2FnZSwgYmx1ciwgZm9j
dXMgYW5kIGNsb3NlLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1z
b3VyY2UtcG9zdG1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3Vy
Y2UtcG9zdG1lc3NhZ2UtcmVpZmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1l
c3NhZ2UtZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTYtMDQtMDQgIFJ5YW4gSGFkZGFkICA8cnlh
bmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFya2luZyBwbHVnaW5zL2ZvY3VzLmh0bWwg
YXMgZmxha3kgb24gbWFjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
ZGVsZXRlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2RlbGV0ZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDM1ZjA4OWQ3
ZTVmN2IwOTMwYmU0Mzg2OTYzMzYyYjk5ZjdlMDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L2RlbGV0ZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDc1IEBACitUZXN0cyBkZWxldGluZyB3aW5kb3cgb3BlcmF0aW9ucyB3b3JrcyBhcyBl
eHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cucG9z
dE1lc3NhZ2UgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5wb3N0TWVzc2FnZSA9
IDEKK1BBU1Mgd2luZG93LnBvc3RNZXNzYWdlIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5wb3N0
TWVzc2FnZSBpcyB0cnVlCitQQVNTIHdpbmRvdy5wb3N0TWVzc2FnZSBpcyB1bmRlZmluZWQuCisK
K1BBU1Mgd2luZG93LmZvY3VzIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuZm9j
dXMgPSAxCitQQVNTIHdpbmRvdy5mb2N1cyBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuZm9jdXMg
aXMgdHJ1ZQorUEFTUyB3aW5kb3cuZm9jdXMgaXMgdW5kZWZpbmVkLgorCitQQVNTIHdpbmRvdy5i
bHVyIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuYmx1ciA9IDEKK1BBU1Mgd2lu
ZG93LmJsdXIgaXMgMQorUEFTUyBkZWxldGUgd2luZG93LmJsdXIgaXMgdHJ1ZQorUEFTUyB3aW5k
b3cuYmx1ciBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LmNsb3NlIGlzIGFuIGluc3RhbmNl
IG9mIEZ1bmN0aW9uCit3aW5kb3cuY2xvc2UgPSAxCitQQVNTIHdpbmRvdy5jbG9zZSBpcyAxCitQ
QVNTIGRlbGV0ZSB3aW5kb3cuY2xvc2UgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuY2xvc2UgaXMgdW5k
ZWZpbmVkLgorCitQQVNTIHdpbmRvdy5vcGVuIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3
aW5kb3cub3BlbiA9IDEKK1BBU1Mgd2luZG93Lm9wZW4gaXMgMQorUEFTUyBkZWxldGUgd2luZG93
Lm9wZW4gaXMgdHJ1ZQorUEFTUyB3aW5kb3cub3BlbiBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2lu
ZG93LnNob3dNb2RhbERpYWxvZyBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgord2luZG93LnNo
b3dNb2RhbERpYWxvZyA9IDEKK1BBU1Mgd2luZG93LnNob3dNb2RhbERpYWxvZyBpcyAxCitQQVNT
IGRlbGV0ZSB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIHRydWUKK1BBU1Mgd2luZG93LnNob3dN
b2RhbERpYWxvZyBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LmFsZXJ0IGlzIGFuIGluc3Rh
bmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuYWxlcnQgPSAxCitQQVNTIHdpbmRvdy5hbGVydCBpcyAx
CitQQVNTIGRlbGV0ZSB3aW5kb3cuYWxlcnQgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuYWxlcnQgaXMg
dW5kZWZpbmVkLgorCitQQVNTIHdpbmRvdy5jb25maXJtIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0
aW9uCit3aW5kb3cuY29uZmlybSA9IDEKK1BBU1Mgd2luZG93LmNvbmZpcm0gaXMgMQorUEFTUyBk
ZWxldGUgd2luZG93LmNvbmZpcm0gaXMgdHJ1ZQorUEFTUyB3aW5kb3cuY29uZmlybSBpcyB1bmRl
ZmluZWQuCisKK1BBU1Mgd2luZG93LnByb21wdCBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgor
d2luZG93LnByb21wdCA9IDEKK1BBU1Mgd2luZG93LnByb21wdCBpcyAxCitQQVNTIGRlbGV0ZSB3
aW5kb3cucHJvbXB0IGlzIHRydWUKK1BBU1Mgd2luZG93LnByb21wdCBpcyB1bmRlZmluZWQuCisK
K1BBU1Mgd2luZG93LnN0b3AgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5zdG9w
ID0gMQorUEFTUyB3aW5kb3cuc3RvcCBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuc3RvcCBpcyB0
cnVlCitQQVNTIHdpbmRvdy5zdG9wIGlzIHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cuc2Nyb2xs
IGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuc2Nyb2xsID0gMQorUEFTUyB3aW5k
b3cuc2Nyb2xsIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5zY3JvbGwgaXMgdHJ1ZQorUEFTUyB3
aW5kb3cuc2Nyb2xsIGlzIHVuZGVmaW5lZC4KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2RlbGV0ZS1vcGVyYXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E3NTdlMDU2NThmYjBlZWQ1
NTM4NDM0MDgwM2IxYTMyMDgyN2I0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgZGVs
ZXRpbmcgd2luZG93IG9wZXJhdGlvbnMgd29ya3MgYXMgZXhwZWN0ZWQiKTsKKworZnVuY3Rpb24g
dGVzdEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSkKK3sKKyAgICBzaG91bGRCZVR5cGUoIndpbmRvdy4i
ICsgZnVuY3Rpb25OYW1lLCAiRnVuY3Rpb24iKTsKKyAgICBldmFsQW5kTG9nKCJ3aW5kb3cuIiAr
IGZ1bmN0aW9uTmFtZSArICIgPSAxIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy4iICsgZnVuY3Rp
b25OYW1lLCAiMSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZGVsZXRlIHdpbmRvdy4iICsgZnVuY3Rp
b25OYW1lKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgid2luZG93LiIgKyBmdW5jdGlvbk5hbWUp
OworICAgIGRlYnVnKCIiKTsKK30KKwordGVzdEZ1bmN0aW9uKCJwb3N0TWVzc2FnZSIpOwordGVz
dEZ1bmN0aW9uKCJmb2N1cyIpOwordGVzdEZ1bmN0aW9uKCJibHVyIik7Cit0ZXN0RnVuY3Rpb24o
ImNsb3NlIik7Cit0ZXN0RnVuY3Rpb24oIm9wZW4iKTsKK3Rlc3RGdW5jdGlvbigic2hvd01vZGFs
RGlhbG9nIik7Cit0ZXN0RnVuY3Rpb24oImFsZXJ0Iik7Cit0ZXN0RnVuY3Rpb24oImNvbmZpcm0i
KTsKK3Rlc3RGdW5jdGlvbigicHJvbXB0Iik7Cit0ZXN0RnVuY3Rpb24oInN0b3AiKTsKK3Rlc3RG
dW5jdGlvbigic2Nyb2xsIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3Nh
Z2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVu
dC1zb3VyY2UtcG9zdG1lc3NhZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZGI2NzA4MjJm
MTU5ZTdlOWNkMGFkYmM1ZjJlNzRiYWIxM2ZhNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgdGhhdCBNZXNzYWdlRXZlbnQuc291cmNl
IGlzIGNvcnJlY3QgYW5kIGNhbiBiZSB1c2VkIGZvciBtZXNzYWdpbmcuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCisqIFNlbmRpbmcgbWVzc2FnZSAxIHRvIGNoaWxkCisqIFBhcmVu
dCByZWNlaXZlZCBtZXNzYWdlIDIgZnJvbSBjaGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNl
IGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdlRXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQorKiBT
ZW5kaW5nIG1lc3NhZ2UgMyB0byBjaGlsZAorKiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA0IGZy
b20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVz
c2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciArIDEKKyogU2VuZGluZyBtZXNzYWdlIDUgdG8gY2hp
bGQKKyogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgNiBmcm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VF
dmVudC5zb3VyY2UgaXMgZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50
ZXIgKyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicK
Ky0tLS0tLS0tCisqIENoaWxkIHJlY2VpdmVkIG1lc3NhZ2UgMSBmcm9tIHBhcmVudAorUEFTUyBt
ZXNzYWdlRXZlbnQuc291cmNlIGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgMiB0byBwYXJl
bnQKKyogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAzIGZyb20gcGFyZW50CitQQVNTIG1lc3NhZ2VF
dmVudC5zb3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSA0IHRvIHBhcmVudAorKiBD
aGlsZCByZWNlaXZlZCBtZXNzYWdlIDUgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50LnNv
dXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDYgdG8gcGFyZW50CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3Rt
ZXNzYWdlLXJlaWZpZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjdiYmNmZDk0MzZiMWEwMzBmOWRjZGUzNmQxMjdkOTNhM2M1ZjQ2YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291
cmNlLXBvc3RtZXNzYWdlLXJlaWZpZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rl
c3RzIHRoYXQgTWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBjb3JyZWN0IGFuZCBjYW4gYmUgdXNlZCBm
b3IgbWVzc2FnaW5nIChyZWlmaWVkIFdpbmRvdyBjYXNlKS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKKyogU2VuZGluZyBtZXNzYWdlIDEgdG8gY2hpbGQKKyogUGFyZW50IHJlY2Vp
dmVkIG1lc3NhZ2UgMiBmcm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgZnJh
bWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50ZXIgKyAxCisqIFNlbmRpbmcg
bWVzc2FnZSAzIHRvIGNoaWxkCisqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlIDQgZnJvbSBjaGls
ZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdlRXZl
bnQuZGF0YSBpcyBjb3VudGVyICsgMQorKiBTZW5kaW5nIG1lc3NhZ2UgNSB0byBjaGlsZAorKiBQ
YXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA2IGZyb20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNv
dXJjZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVzc2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciArIDEK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0t
LS0KKyogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAxIGZyb20gcGFyZW50CitQQVNTIG1lc3NhZ2VF
dmVudC5zb3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSAyIHRvIHBhcmVudAorKiBD
aGlsZCByZWNlaXZlZCBtZXNzYWdlIDMgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50LnNv
dXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDQgdG8gcGFyZW50CisqIENoaWxkIHJl
Y2VpdmVkIG1lc3NhZ2UgNSBmcm9tIHBhcmVudAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlz
IHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgNiB0byBwYXJlbnQKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2Ut
cmVpZmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1z
b3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ODkxMTM0ZjUwMjRj
MTQ3NTYwNDVjOTNkZjIwOGVjZDdiOTI3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVk
Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IE1l
c3NhZ2VFdmVudC5zb3VyY2UgaXMgY29ycmVjdCBhbmQgY2FuIGJlIHVzZWQgZm9yIG1lc3NhZ2lu
ZyAocmVpZmllZCBXaW5kb3cgY2FzZSkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8g
UmVpZnkgdGhlIHdpbmRvdy4KK3dpbmRvdy50ZXN0ID0gMTsKK2RlbGV0ZSB3aW5kb3cudGVzdDsK
KworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVz
QXNUZXh0KCk7CisKK2NvdW50ZXIgPSAxOworCit3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24o
ZSkgeworICAgIGRlYnVnKCIqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlICIgKyBlLmRhdGEgKyAi
IGZyb20gY2hpbGQiKTsKKyAgICBtZXNzYWdlRXZlbnQgPSBlOworICAgIHNob3VsZEJlKCJtZXNz
YWdlRXZlbnQuc291cmNlIiwgImZyYW1lc1swXSIpOworICAgIHNob3VsZEJlKCJtZXNzYWdlRXZl
bnQuZGF0YSIsICJjb3VudGVyICsgMSIpOworICAgIGlmIChtZXNzYWdlRXZlbnQuZGF0YSA+IDUp
IHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y291bnRlciA9IG1lc3NhZ2VFdmVudC5kYXRhICsgMTsKKyAgICBkZWJ1ZygiKiBTZW5kaW5nIG1l
c3NhZ2UgIiArIGNvdW50ZXIgKyAiIHRvIGNoaWxkIik7CisgICAgbWVzc2FnZUV2ZW50LnNvdXJj
ZS5wb3N0TWVzc2FnZShjb3VudGVyLCAiKiIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sK
KyAgICBkZWJ1ZygiKiBTZW5kaW5nIG1lc3NhZ2UgIiArIGNvdW50ZXIgKyAiIHRvIGNoaWxkIik7
CisgICAgZnJhbWVzWzBdLnBvc3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9CisKKzwvc2NyaXB0
PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdl
LWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3Nh
Z2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNl
LXBvc3RtZXNzYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg2NzMxMGY0NWYwODIxNWRlOTY0MDhiNDlm
M2Y5N2FiNTc3Yzc2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLmh0bWwKQEAgLTAsMCArMSwzOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IE1lc3NhZ2VFdmVudC5zb3VyY2UgaXMg
Y29ycmVjdCBhbmQgY2FuIGJlIHVzZWQgZm9yIG1lc3NhZ2luZy4iKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQ2hp
bGRGcmFtZXNBc1RleHQoKTsKKworY291bnRlciA9IDE7CisKK3dpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihlKSB7CisgICAgZGVidWcoIiogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgIiArIGUu
ZGF0YSArICIgZnJvbSBjaGlsZCIpOworICAgIG1lc3NhZ2VFdmVudCA9IGU7CisgICAgc2hvdWxk
QmUoIm1lc3NhZ2VFdmVudC5zb3VyY2UiLCAiZnJhbWVzWzBdIik7CisgICAgc2hvdWxkQmUoIm1l
c3NhZ2VFdmVudC5kYXRhIiwgImNvdW50ZXIgKyAxIik7CisgICAgaWYgKG1lc3NhZ2VFdmVudC5k
YXRhID4gNSkgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjb3VudGVyID0gbWVzc2FnZUV2ZW50LmRhdGEgKyAxOworICAgIGRlYnVnKCIqIFNl
bmRpbmcgbWVzc2FnZSAiICsgY291bnRlciArICIgdG8gY2hpbGQiKTsKKyAgICBtZXNzYWdlRXZl
bnQuc291cmNlLnBvc3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9CisKK2Z1bmN0aW9uIHJ1blRl
c3QoKQoreworICAgIGRlYnVnKCIqIFNlbmRpbmcgbWVzc2FnZSAiICsgY291bnRlciArICIgdG8g
Y2hpbGQiKTsKKyAgICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoY291bnRlciwgIioiKTsKK30KKwor
PC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL21lc3NhZ2VldmVudC1zb3VyY2UtcG9z
dG1lc3NhZ2UtZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL21lc3NhZ2VldmVu
dC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9yZXNvdXJjZXMvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI0NmRjM2RmMzAyNDIzNWI3MTUwZjVjZDM2OGMzYzk3MDg3NThjY2YKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL21l
c3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDE2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9
IHRydWU7CisKK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgZGVidWcoIiog
Q2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAiICsgZS5kYXRhICsgIiBmcm9tIHBhcmVudCIpOworICAg
IG1lc3NhZ2VFdmVudCA9IGU7CisgICAgc2hvdWxkQmUoIm1lc3NhZ2VFdmVudC5zb3VyY2UiLCAi
cGFyZW50Iik7CisgICAgZGVidWcoIiogU2VuZGluZyBtZXNzYWdlICIgKyAoZS5kYXRhICsgMSkg
KyAiIHRvIHBhcmVudCIpOworICAgIG1lc3NhZ2VFdmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoZS5k
YXRhICsgMSwgIioiKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275709</attachid>
            <date>2016-04-05 16:15:00 -0700</date>
            <delta_ts>2016-04-05 16:21:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156227-20160405161501.patch</filename>
            <type>text/plain</type>
            <size>23014</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUxNGRjYWExYmQzZjNm
ZjAwNjFlZDUwYTI0MzQxMzQ5OTNhZWZkNC4uMmU0YTNhZjA0NGE3ZWMzOWZiODAzMmQxMjZhYzY4
OGJhZjAwMzEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA0LTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJj
ZSB3aW5kb3cgaXMgaW5jb3JyZWN0IG9uY2Ugd2luZG93IGhhcyBiZWVuIHJlaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjIyNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjU1NDU4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJjZSB3aW5kb3cgd2FzIGluY29y
cmVjdCBvbmNlIHdpbmRvdyBoYWQgYmVlbiByZWlmaWVkLgorCisgICAgICAgIElmIHRoZSBXaW5k
b3cgaGFkIG5vdCBiZWVuIHJlaWZpZWQsIHdlIGtlcHQgY29uc3RydWN0aW5nIG5ldworICAgICAg
ICBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9ucyB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdl
KCkuIFdlIHVzZWQgdG8KKyAgICAgICAgcGFzcyBhY3RpdmVET01XaW5kb3coZXhlY1N0YXRlKSBh
cyBzb3VyY2UgV2luZG93IHRvCisgICAgICAgIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoKS4gYWN0
aXZlRE9NV2luZG93KCkgdXNlcworICAgICAgICBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkg
d2hpY2ggZGlkIHRoZSByaWdodCB0aGluZyBiZWNhdXNlIHdlCisgICAgICAgIHVzZWQgdG8gY29u
c3RydWN0IGEgbmV3IHBvc3RNZXNzYWdlKCkgZnVuY3Rpb24gaW4gdGhlIGNhbGxlcidzIGNvbnRl
eHQuCisKKyAgICAgICAgSG93ZXZlciwgYWZ0ZXIgcmVpZmljYXRpb24sIGR1ZSB0byB0aGUgd2F5
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoKQorICAgICAgICB3YXMgaW1wbGVtZW50
ZWQsIHdlIHdvdWxkIHN0b3AgY29uc3RydWN0aW5nIG5ldyBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9u
cworICAgICAgICB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdlKCkuIEFzIGEgcmVzdWx0
LCB0aGUgc291cmNlIHdpbmRvdyB3b3VsZAorICAgICAgICBiZWNvbWUgaW5jb3JyZWN0IGJlY2F1
c2UgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIHdvdWxkIHJldHVybiB0aGUKKyAgICAgICAg
dGFyZ2V0IFdpbmRvdyBpbnN0ZWFkLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHRoZSBmb2xs
b3dpbmcgaXMgZG9uZToKKyAgICAgICAgMS4gU3RvcCBjb25zdHJ1Y3RpbmcgYSBuZXcgZnVuY3Rp
b24gZXZlcnkgdGltZSBpbiB0aGUgc2FtZSBvcmlnaW4gY2FzZQorICAgICAgICAgICBmb3IgcG9z
dE1lc3NhZ2UsIGJsdXIsIGZvY3VzIGFuZCBjbG9zZS4gVGhpcyB3YXMgaW5lZmZpY2llbnQgYW5k
IGxlYWQKKyAgICAgICAgICAgdG8gaW5jb3JyZWN0IGJlaGF2aW9yOgorICAgICAgICAgICAtIFRo
ZSBiZWhhdmlvciB3b3VsZCBkaWZmZXIgZGVwZW5kaW5nIGlmIHRoZSBXaW5kb3cgaXMgcmVpZmll
ZCBvciBub3QKKyAgICAgICAgICAgLSBJdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGRlbGV0ZSB0
aG9zZSBvcGVyYXRpb25zLCB3aGljaCBpcworICAgICAgICAgICAgIGluY29tcGF0aWJsZSB3aXRo
IHRoZSBzcGVjaWZpY2F0aW9uIGFuZCBvdGhlciBicm93c2VycyAodGVzdGVkCisgICAgICAgICAg
ICAgRmlyZWZveCBhbmQgQ2hyb21lKS4KKyAgICAgICAgMi4gVXNlIGNhbGxlckRPTVdpbmRvdyhl
eGVjU3RhdGUpIGluc3RlYWQgb2YgYWN0aXZlRE9NV2luZG93KGV4ZWNTdGF0ZSkKKyAgICAgICAg
ICAgYXMgc291cmNlIFdpbmRvdyBpbiBKU0RPTVdpbmRvdzo6aGFuZGxlUG9zdE1lc3NhZ2UoKS4g
Y2FsbGVyRE9NV2luZG93KCkKKyAgICAgICAgICAgaXMgYSBuZXcgdXRpbGl0eSBmdW5jdGlvbiB0
aGF0IHJldHVybnMgdGhlIGNhbGxlcidzIFdpbmRvdyBvYmplY3QuCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBv
c3RtZXNzYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUtZnJhbWVzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZXRDYWxsZXJDb2RlQmxvY2tGdW5jdG9y
OjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdlYkNvcmU6OkdldENhbGxlckNvZGVCbG9ja0Z1bmN0
b3I6OmNvZGVCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpjYWxsZXJET01XaW5kb3cpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNz
YWdlKToKKwogMjAxNi0wNC0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBw
bGUuY29tPgogCiAgICAgICAgIEF2b2lkIGNvbnRleHQgc2F2ZS9yZXN0b3JlIGluIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHAKaW5kZXggMjBiOWZmNTA3NDkyYzZiOTQyZjZkZGI0MDljMzNhZDQwMzIz
ZjhhNC4uNmY2MTAxNTkyMmM3ZDQzYjlhMzUxYTVjMjk3YmQyZTlhZDg4NjVkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0V4Y2VwdGlvbkJh
c2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNs
dWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPGludGVy
cHJldGVyL0ludGVycHJldGVyLmg+CkBAIC01NTcsNiArNTU4LDQwIEBAIHVpbnQ2NF90IHRvVUlu
dDY0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25m
aWd1cmF0aW9uCiAgICAgcmV0dXJuIG47CiB9CiAKK2NsYXNzIEdldENhbGxlckdsb2JhbE9iamVj
dEZ1bmN0b3IgeworcHVibGljOgorICAgIEdldENhbGxlckdsb2JhbE9iamVjdEZ1bmN0b3IoKSA9
IGRlZmF1bHQ7CisKKyAgICBTdGFja1Zpc2l0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrVmlz
aXRvciYgdmlzaXRvcikKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNTa2lwcGVkRmlyc3RGcmFt
ZSkgeworICAgICAgICAgICAgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSA9IHRydWU7CisgICAgICAg
ICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChhdXRvKiBjb2RlQmxvY2sgPSB2aXNpdG9yLT5jb2RlQmxvY2soKSkKKyAgICAgICAgICAg
IG1fZ2xvYmFsT2JqZWN0ID0gY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKTsKKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQodmlzaXRvci0+Y2FsbGVlKCkpOworICAgICAgICAgICAg
bV9nbG9iYWxPYmplY3QgPSB2aXNpdG9yLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6RG9uZTsKKyAgICB9CisKKyAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxPYmpl
Y3Q7IH0KKworcHJpdmF0ZToKKyAgICBib29sIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgeyBmYWxz
ZSB9OworICAgIEpTR2xvYmFsT2JqZWN0KiBtX2dsb2JhbE9iamVjdCB7IG51bGxwdHIgfTsKK307
CisKK0RPTVdpbmRvdyYgY2FsbGVyRE9NV2luZG93KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBH
ZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5jdG9yIGl0ZXI7CisgICAgZXhlYy0+aXRlcmF0ZShpdGVy
KTsKKyAgICByZXR1cm4gaXRlci5nbG9iYWxPYmplY3QoKSA/IGFzSlNET01XaW5kb3coaXRlci5n
bG9iYWxPYmplY3QoKSktPndyYXBwZWQoKSA6IGZpcnN0RE9NV2luZG93KGV4ZWMpOworfQorCiBE
T01XaW5kb3cmIGFjdGl2ZURPTVdpbmRvdyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJu
IGFzSlNET01XaW5kb3coZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+d3JhcHBlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCBjODkwMmU2OWJl
NzA3ZjZkODY5MjkzYmUxZTc1YjE0ZWY4NjhlYWNmLi43NTg3NDFmMGFhZDEwYTUwYTIzOWIzZWNm
OGM1MmQ1MjIzN2FmMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaApAQCAtNzgsNiArNzgsNyBAQCBzdHJ1Y3QgRXhjZXB0aW9uRGV0YWlscyB7CiAKIHR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKK0RPTVdpbmRvdyYgY2FsbGVyRE9NV2luZG93KEpTQzo6
RXhlY1N0YXRlKik7CiBET01XaW5kb3cmIGFjdGl2ZURPTVdpbmRvdyhKU0M6OkV4ZWNTdGF0ZSop
OwogRE9NV2luZG93JiBmaXJzdERPTVdpbmRvdyhKU0M6OkV4ZWNTdGF0ZSopOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggNWI1
ZGE5NWNkNDA5YmIwMTc4NTk1NjVjMmM0YTgzNGZkYWZkNTc5NS4uM2IyNmRmZGQxYmZlNzI4OTgw
ZDNhZTgxNTcwMzI5NDFmY2E2NGRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMjM3LDMwICsyMzcsNiBAQCBib29sIEpTRE9N
V2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eQogICAgIC8vIChQYXJ0aWN1bGFybHksIGlzIGl0IGNvcnJlY3QgdGhhdCB0
aGlzIGV4aXN0cyBoZXJlIGJ1dCBub3QgaW4gZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleD8pCiAg
ICAgc2xvdC5zZXRXYXRjaHBvaW50U2V0KHRoaXNPYmplY3QtPm1fd2luZG93Q2xvc2VXYXRjaHBv
aW50cyk7CiAKLSAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGFsbCBib2d1cy4gS2VlcGluZyB0aGVz
ZSBoZXJlIG1ha2Ugc29tZSB0ZXN0cyBwYXNzIHRoYXQgY2hlY2sgdGhlc2UgcHJvcGVydGllcwot
ICAgIC8vIGFyZSBvd24gcHJvcGVydGllcyBvZiB0aGUgd2luZG93LCBidXQgaW50cm9kdWNlcyBv
dGhlciBwcm9ibGVtcyBpbnN0ZWFkIChlLmcuIGlmIHlvdSBvdmVyd3JpdGUKLSAgICAvLyAmIGRl
bGV0ZSB0aGVuIHRoZSBvcmlnaW5hbCB2YWx1ZSBpcyByZXN0b3JlZCEpIFNob3VsZCBiZSByZW1v
dmVkLgotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmJsdXIp
IHsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNP
YmplY3QsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtLCBub25DYWNoaW5nU3RhdGlj
RnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uQmx1ciwgMD4pOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuY2xvc2UpIHsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgICAg
IHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRF
bnVtLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dJbnN0YW5jZUZ1
bmN0aW9uQ2xvc2UsIDA+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmZvY3VzKSB7Ci0gICAgICAgIGlm
ICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpCi0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25s
eSB8IERvbnREZWxldGUgfCBEb250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVy
PGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkZvY3VzLCAwPik7Ci0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5wb3N0TWVzc2FnZSkgewotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAgICAgc2xvdC5z
ZXRDdXN0b20odGhpc09iamVjdCwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0sIG5v
bkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Q
b3N0TWVzc2FnZSwgMj4pOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KICAgICBpZiAo
cHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxEaWFsb2cpIHsK
ICAgICAgICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC01ODgsNyAr
NTY0LDcgQEAgc3RhdGljIEpTVmFsdWUgaGFuZGxlUG9zdE1lc3NhZ2UoRE9NV2luZG93JiBpbXBs
LCBFeGVjU3RhdGUmIHN0YXRlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwucG9zdE1lc3NhZ2UobWVzc2FnZS5yZWxl
YXNlKCksICZtZXNzYWdlUG9ydHMsIHRhcmdldE9yaWdpbiwgYWN0aXZlRE9NV2luZG93KCZzdGF0
ZSksIGVjKTsKKyAgICBpbXBsLnBvc3RNZXNzYWdlKG1lc3NhZ2UucmVsZWFzZSgpLCAmbWVzc2Fn
ZVBvcnRzLCB0YXJnZXRPcmlnaW4sIGNhbGxlckRPTVdpbmRvdygmc3RhdGUpLCBlYyk7CiAgICAg
c2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwogCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggODg5MzZhZmZlOGI4NDc4ZWYxZGFhZmQ3YWM2N2UzNWZhMTdjZmJkYS4uYTA4OTg5
MjQwNWQyMmYwMWQyYTdkMmNjMWI5ZjUzZjU5OTg4MmQwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBA
CisyMDE2LTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
TWVzc2FnZUV2ZW50LnNvdXJjZSB3aW5kb3cgaXMgaW5jb3JyZWN0IG9uY2Ugd2luZG93IGhhcyBi
ZWVuIHJlaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NjIyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU1NDU4MzE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIHRoYXQgY292
ZXIgdXNpbmcgTWVzc2FnZUV2ZW50LnNvdXJjZSBXaW5kb3cgZm9yIG1lc3NhZ2luZworICAgICAg
ICB1c2luZyBwb3N0TWVzc2FnZSgpLiBUaGVyZSBhcmUgMiB2ZXJzaW9ucyBvZiB0aGUgdGVzdCwg
b25lIHdoZXJlIHRoZQorICAgICAgICBtYWluIHdpbmRvdyBpcyByZWlmaWVkIGFuZCBvbmUgd2hl
cmUgaXQgaXMgbm90LiBUaGUgdGVzdCB0aGF0IGhhcyBhCisgICAgICAgIHJlaWZpZWQgbWFpbiB3
aW5kb3cgd2FzIGZhaWxpbmcgYmVjYXVzZSB0aGlzIGZpeC4KKworICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAg
TWFrZSBzdXJlIHRoYXQgb3BlcmF0aW9ucyBvbiBXaW5kb3cgYXJlIGluZGVlZCBkZWxldGFibGUu
IFByZXZpb3VzbHksCisgICAgICAgIGl0IHdvdWxkIGJlIGltcG9zc2libGUgdG8gZGVsZXRlIHBv
c3RNZXNzYWdlLCBibHVyLCBmb2N1cyBhbmQgY2xvc2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNz
YWdlLXJlaWZpZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvbWVzc2Fn
ZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5odG1sOiBBZGRlZC4KKwogMjAxNi0wNC0w
NCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFBvbHltb3JwaGlj
QWNjZXNzIHNob3VsZCBoYXZlIGEgTWVnYW1vcnBoaWNMb2FkIGNhc2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZGVsZXRlLW9wZXJhdGlvbnMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhkMzVmMDg5ZDdlNWY3YjA5MzBiZTQzODY5NjMzNjJiOTlmN2UwMzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZGVsZXRlLW9w
ZXJhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzUgQEAKK1Rlc3RzIGRlbGV0aW5nIHdp
bmRvdyBvcGVyYXRpb25zIHdvcmtzIGFzIGV4cGVjdGVkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHdpbmRvdy5wb3N0TWVzc2FnZSBpcyBhbiBpbnN0YW5jZSBvZiBGdW5j
dGlvbgord2luZG93LnBvc3RNZXNzYWdlID0gMQorUEFTUyB3aW5kb3cucG9zdE1lc3NhZ2UgaXMg
MQorUEFTUyBkZWxldGUgd2luZG93LnBvc3RNZXNzYWdlIGlzIHRydWUKK1BBU1Mgd2luZG93LnBv
c3RNZXNzYWdlIGlzIHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cuZm9jdXMgaXMgYW4gaW5zdGFu
Y2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5mb2N1cyA9IDEKK1BBU1Mgd2luZG93LmZvY3VzIGlzIDEK
K1BBU1MgZGVsZXRlIHdpbmRvdy5mb2N1cyBpcyB0cnVlCitQQVNTIHdpbmRvdy5mb2N1cyBpcyB1
bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LmJsdXIgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24K
K3dpbmRvdy5ibHVyID0gMQorUEFTUyB3aW5kb3cuYmx1ciBpcyAxCitQQVNTIGRlbGV0ZSB3aW5k
b3cuYmx1ciBpcyB0cnVlCitQQVNTIHdpbmRvdy5ibHVyIGlzIHVuZGVmaW5lZC4KKworUEFTUyB3
aW5kb3cuY2xvc2UgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5jbG9zZSA9IDEK
K1BBU1Mgd2luZG93LmNsb3NlIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5jbG9zZSBpcyB0cnVl
CitQQVNTIHdpbmRvdy5jbG9zZSBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93Lm9wZW4gaXMg
YW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5vcGVuID0gMQorUEFTUyB3aW5kb3cub3Bl
biBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cub3BlbiBpcyB0cnVlCitQQVNTIHdpbmRvdy5vcGVu
IGlzIHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIGFuIGluc3Rh
bmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuc2hvd01vZGFsRGlhbG9nID0gMQorUEFTUyB3aW5kb3cu
c2hvd01vZGFsRGlhbG9nIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5zaG93TW9kYWxEaWFsb2cg
aXMgdHJ1ZQorUEFTUyB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIHVuZGVmaW5lZC4KKworUEFT
UyB3aW5kb3cuYWxlcnQgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5hbGVydCA9
IDEKK1BBU1Mgd2luZG93LmFsZXJ0IGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5hbGVydCBpcyB0
cnVlCitQQVNTIHdpbmRvdy5hbGVydCBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LmNvbmZp
cm0gaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5jb25maXJtID0gMQorUEFTUyB3
aW5kb3cuY29uZmlybSBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuY29uZmlybSBpcyB0cnVlCitQ
QVNTIHdpbmRvdy5jb25maXJtIGlzIHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cucHJvbXB0IGlz
IGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cucHJvbXB0ID0gMQorUEFTUyB3aW5kb3cu
cHJvbXB0IGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5wcm9tcHQgaXMgdHJ1ZQorUEFTUyB3aW5k
b3cucHJvbXB0IGlzIHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cuc3RvcCBpcyBhbiBpbnN0YW5j
ZSBvZiBGdW5jdGlvbgord2luZG93LnN0b3AgPSAxCitQQVNTIHdpbmRvdy5zdG9wIGlzIDEKK1BB
U1MgZGVsZXRlIHdpbmRvdy5zdG9wIGlzIHRydWUKK1BBU1Mgd2luZG93LnN0b3AgaXMgdW5kZWZp
bmVkLgorCitQQVNTIHdpbmRvdy5zY3JvbGwgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dp
bmRvdy5zY3JvbGwgPSAxCitQQVNTIHdpbmRvdy5zY3JvbGwgaXMgMQorUEFTUyBkZWxldGUgd2lu
ZG93LnNjcm9sbCBpcyB0cnVlCitQQVNTIHdpbmRvdy5zY3JvbGwgaXMgdW5kZWZpbmVkLgorCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RlbGV0ZS1vcGVyYXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZGVsZXRlLW9wZXJhdGlvbnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYTc1N2UwNTY1OGZiMGVlZDU1Mzg0MzQwODAzYjFhMzIwODI3YjQxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RlbGV0ZS1vcGVyYXRpb25z
Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBkZWxldGluZyB3aW5kb3cgb3BlcmF0aW9ucyB3b3JrcyBh
cyBleHBlY3RlZCIpOworCitmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZnVuY3Rpb25OYW1lKQorewor
ICAgIHNob3VsZEJlVHlwZSgid2luZG93LiIgKyBmdW5jdGlvbk5hbWUsICJGdW5jdGlvbiIpOwor
ICAgIGV2YWxBbmRMb2coIndpbmRvdy4iICsgZnVuY3Rpb25OYW1lICsgIiA9IDEiKTsKKyAgICBz
aG91bGRCZSgid2luZG93LiIgKyBmdW5jdGlvbk5hbWUsICIxIik7CisgICAgc2hvdWxkQmVUcnVl
KCJkZWxldGUgd2luZG93LiIgKyBmdW5jdGlvbk5hbWUpOworICAgIHNob3VsZEJlVW5kZWZpbmVk
KCJ3aW5kb3cuIiArIGZ1bmN0aW9uTmFtZSk7CisgICAgZGVidWcoIiIpOworfQorCit0ZXN0RnVu
Y3Rpb24oInBvc3RNZXNzYWdlIik7Cit0ZXN0RnVuY3Rpb24oImZvY3VzIik7Cit0ZXN0RnVuY3Rp
b24oImJsdXIiKTsKK3Rlc3RGdW5jdGlvbigiY2xvc2UiKTsKK3Rlc3RGdW5jdGlvbigib3BlbiIp
OwordGVzdEZ1bmN0aW9uKCJzaG93TW9kYWxEaWFsb2ciKTsKK3Rlc3RGdW5jdGlvbigiYWxlcnQi
KTsKK3Rlc3RGdW5jdGlvbigiY29uZmlybSIpOwordGVzdEZ1bmN0aW9uKCJwcm9tcHQiKTsKK3Rl
c3RGdW5jdGlvbigic3RvcCIpOwordGVzdEZ1bmN0aW9uKCJzY3JvbGwiKTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVz
c2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTZkYjY3MDgyMmYxNTllN2U5Y2QwYWRiYzVmMmU3NGJhYjEzZmE0OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZl
bnQtc291cmNlLXBvc3RtZXNzYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitUZXN0
cyB0aGF0IE1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgY29ycmVjdCBhbmQgY2FuIGJlIHVzZWQgZm9y
IG1lc3NhZ2luZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyogU2VuZGluZyBt
ZXNzYWdlIDEgdG8gY2hpbGQKKyogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgMiBmcm9tIGNoaWxk
CitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVu
dC5kYXRhIGlzIGNvdW50ZXIgKyAxCisqIFNlbmRpbmcgbWVzc2FnZSAzIHRvIGNoaWxkCisqIFBh
cmVudCByZWNlaXZlZCBtZXNzYWdlIDQgZnJvbSBjaGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291
cmNlIGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdlRXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQor
KiBTZW5kaW5nIG1lc3NhZ2UgNSB0byBjaGlsZAorKiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA2
IGZyb20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1Mg
bWVzc2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciArIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KKyogQ2hpbGQgcmVjZWl2ZWQgbWVz
c2FnZSAxIGZyb20gcGFyZW50CitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgcGFyZW50Cisq
IFNlbmRpbmcgbWVzc2FnZSAyIHRvIHBhcmVudAorKiBDaGlsZCByZWNlaXZlZCBtZXNzYWdlIDMg
ZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBwYXJlbnQKKyogU2VuZGlu
ZyBtZXNzYWdlIDQgdG8gcGFyZW50CisqIENoaWxkIHJlY2VpdmVkIG1lc3NhZ2UgNSBmcm9tIHBh
cmVudAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3Nh
Z2UgNiB0byBwYXJlbnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2Fn
ZS1yZWlmaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iN2JiY2ZkOTQzNmIxYTAzMGY5ZGNk
ZTM2ZDEyN2Q5M2EzYzVmNDZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgdGhhdCBNZXNzYWdlRXZlbnQuc291cmNlIGlz
IGNvcnJlY3QgYW5kIGNhbiBiZSB1c2VkIGZvciBtZXNzYWdpbmcgKHJlaWZpZWQgV2luZG93IGNh
c2UpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworKiBTZW5kaW5nIG1lc3NhZ2Ug
MSB0byBjaGlsZAorKiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSAyIGZyb20gY2hpbGQKK1BBU1Mg
bWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVzc2FnZUV2ZW50LmRhdGEg
aXMgY291bnRlciArIDEKKyogU2VuZGluZyBtZXNzYWdlIDMgdG8gY2hpbGQKKyogUGFyZW50IHJl
Y2VpdmVkIG1lc3NhZ2UgNCBmcm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMg
ZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50ZXIgKyAxCisqIFNlbmRp
bmcgbWVzc2FnZSA1IHRvIGNoaWxkCisqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlIDYgZnJvbSBj
aGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdl
RXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAv
LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorKiBDaGlsZCByZWNlaXZlZCBtZXNzYWdlIDEg
ZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBwYXJlbnQKKyogU2VuZGlu
ZyBtZXNzYWdlIDIgdG8gcGFyZW50CisqIENoaWxkIHJlY2VpdmVkIG1lc3NhZ2UgMyBmcm9tIHBh
cmVudAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3Nh
Z2UgNCB0byBwYXJlbnQKKyogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSA1IGZyb20gcGFyZW50CitQ
QVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSA2IHRv
IHBhcmVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2Fn
ZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTc4OTExMzRmNTAyNGMxNDc1NjA0NWM5M2RmMjA4ZWNkN2I5Mjc0MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQt
c291cmNlLXBvc3RtZXNzYWdlLXJlaWZpZWQuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgTWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBjb3JyZWN0IGFu
ZCBjYW4gYmUgdXNlZCBmb3IgbWVzc2FnaW5nIChyZWlmaWVkIFdpbmRvdyBjYXNlKS4iKTsKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCisvLyBSZWlmeSB0aGUgd2luZG93Lgord2luZG93LnRlc3Qg
PSAxOworZGVsZXRlIHdpbmRvdy50ZXN0OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKworY291bnRlciA9IDE7CisKK3dp
bmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgZGVidWcoIiogUGFyZW50IHJlY2Vp
dmVkIG1lc3NhZ2UgIiArIGUuZGF0YSArICIgZnJvbSBjaGlsZCIpOworICAgIG1lc3NhZ2VFdmVu
dCA9IGU7CisgICAgc2hvdWxkQmUoIm1lc3NhZ2VFdmVudC5zb3VyY2UiLCAiZnJhbWVzWzBdIik7
CisgICAgc2hvdWxkQmUoIm1lc3NhZ2VFdmVudC5kYXRhIiwgImNvdW50ZXIgKyAxIik7CisgICAg
aWYgKG1lc3NhZ2VFdmVudC5kYXRhID4gNSkgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb3VudGVyID0gbWVzc2FnZUV2ZW50LmRhdGEgKyAx
OworICAgIGRlYnVnKCIqIFNlbmRpbmcgbWVzc2FnZSAiICsgY291bnRlciArICIgdG8gY2hpbGQi
KTsKKyAgICBtZXNzYWdlRXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9
CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGRlYnVnKCIqIFNlbmRpbmcgbWVzc2FnZSAi
ICsgY291bnRlciArICIgdG8gY2hpbGQiKTsKKyAgICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoY291
bnRlciwgIioiKTsKK30KKworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL21lc3Nh
Z2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVz
c2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ODY3MzEwZjQ1ZjA4MjE1ZGU5NjQwOGI0OWYzZjk3YWI1NzdjNzZiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1l
c3NhZ2UuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgTWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBjb3JyZWN0IGFuZCBjYW4gYmUgdXNlZCBmb3IgbWVz
c2FnaW5nLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworCitjb3VudGVyID0g
MTsKKword2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICBkZWJ1ZygiKiBQYXJl
bnQgcmVjZWl2ZWQgbWVzc2FnZSAiICsgZS5kYXRhICsgIiBmcm9tIGNoaWxkIik7CisgICAgbWVz
c2FnZUV2ZW50ID0gZTsKKyAgICBzaG91bGRCZSgibWVzc2FnZUV2ZW50LnNvdXJjZSIsICJmcmFt
ZXNbMF0iKTsKKyAgICBzaG91bGRCZSgibWVzc2FnZUV2ZW50LmRhdGEiLCAiY291bnRlciArIDEi
KTsKKyAgICBpZiAobWVzc2FnZUV2ZW50LmRhdGEgPiA1KSB7CisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvdW50ZXIgPSBtZXNzYWdlRXZlbnQu
ZGF0YSArIDE7CisgICAgZGVidWcoIiogU2VuZGluZyBtZXNzYWdlICIgKyBjb3VudGVyICsgIiB0
byBjaGlsZCIpOworICAgIG1lc3NhZ2VFdmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoY291bnRlciwg
IioiKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZGVidWcoIiogU2VuZGluZyBt
ZXNzYWdlICIgKyBjb3VudGVyICsgIiB0byBjaGlsZCIpOworICAgIGZyYW1lc1swXS5wb3N0TWVz
c2FnZShjb3VudGVyLCAiKiIpOworfQorCis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJj
ZXMvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5odG1sIj48L2lmcmFtZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZTIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlZmFiMWM1ZWY1ZjM5NTgzYTkxMzEzMDRjNDRmOWQ0
MmQxZjI3OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
bWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTEgQEAKK0NoZWNrcyB0aGF0IE1lc3NhZ2VFdmVudC5zb3VyY2Ugd2luZG93IGlzIGNvcnJlY3Qg
d2hlbiBwb3N0TWVzc2FnZSgpIGlzIGNhbGxlZCBjcm9zcy1mcmFtZSB2aWEgYSBmdW5jdGlvbiBp
biB0aGUgb3RoZXIgZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IG1lc3NhZ2VFdmVudC5kYXRhIGlzICJtc2ciCitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMg
ZnJhbWVzWzBdCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVu
dC1zb3VyY2UtcG9zdG1lc3NhZ2UyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
bWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTFlY2Jk
ZWI5OWYzNGM2M2Y1N2ExNGIwYzQ5ZTJlYWNkYTRjNDFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2Uy
Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBNZXNzYWdlRXZlbnQuc291cmNlIHdpbmRvdyBp
cyBjb3JyZWN0IHdoZW4gcG9zdE1lc3NhZ2UoKSBpcyBjYWxsZWQgY3Jvc3MtZnJhbWUgdmlhIGEg
ZnVuY3Rpb24gaW4gdGhlIG90aGVyIGZyYW1lLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgbWVzc2FnZUV2ZW50ID0gZTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1lc3NhZ2VFdmVudC5kYXRhIiwgIm1zZyIpOwor
ICAgIHNob3VsZEJlKCJtZXNzYWdlRXZlbnQuc291cmNlIiwgImZyYW1lc1swXSIpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorCitvbmxvYWQgPSBmdW5jdGlvbigpCit7CisgICAgZnJhbWVzWzBd
LnNlbmRNZXNzYWdlKCk7Cit9Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjZG9jPSI8c2NyaXB0PmZ1
bmN0aW9uIHNlbmRNZXNzYWdlKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoJ21zZycsICcqJyk7IH08
L3NjcmlwdD4iPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaDItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNlMjhhOTAwNDQwOTg3YzEwZWZlZmRkYjE4MGE1OTYyMDBmZWRmOWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNy
YXNoMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhpcyBlbnN1cmVzIHRoYXQgcG9z
dE1lc3NhZ2UgY2FsbGVkIGluIGEgY2FsbGJhY2sgZG9lcyBub3QgY3Jhc2guCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzICJtc2ciCitQ
QVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgd2luZG93CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2gyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE5MWM0NGEy
ZmY1NmE1YjkzNzUxMTg2OGUyZWZhNTY0YzAxZDg0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2gyLmh0bWwKQEAgLTAsMCAr
MSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRoaXMgZW5zdXJlcyB0aGF0IHBvc3RNZXNzYWdlIGNhbGxlZCBpbiBhIGNhbGxi
YWNrIGRvZXMgbm90IGNyYXNoLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICBtZXNzYWdlRXZlbnQgPSBlOworICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJtZXNzYWdlRXZlbnQuZGF0YSIsICJtc2ciKTsKKyAgIHNob3VsZEJl
KCJtZXNzYWdlRXZlbnQuc291cmNlIiwgIndpbmRvdyIpOworICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3ZhciBiID0gd2luZG93LnBvc3RNZXNzYWdlLmJpbmQod2luZG93LCAibXNnIiwgIioiKTsK
K3NldFRpbWVvdXQoYiwgMCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvbWVzc2FnZWV2ZW50
LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3Jlc291cmNlcy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLWZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjQ2ZGMzZGYzMDI0MjM1YjcxNTBmNWNkMzY4YzNjOTcwODc1OGNjZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvbWVz
c2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKword2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICBkZWJ1ZygiKiBD
aGlsZCByZWNlaXZlZCBtZXNzYWdlICIgKyBlLmRhdGEgKyAiIGZyb20gcGFyZW50Iik7CisgICAg
bWVzc2FnZUV2ZW50ID0gZTsKKyAgICBzaG91bGRCZSgibWVzc2FnZUV2ZW50LnNvdXJjZSIsICJw
YXJlbnQiKTsKKyAgICBkZWJ1ZygiKiBTZW5kaW5nIG1lc3NhZ2UgIiArIChlLmRhdGEgKyAxKSAr
ICIgdG8gcGFyZW50Iik7CisgICAgbWVzc2FnZUV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShlLmRh
dGEgKyAxLCAiKiIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275711</attachid>
            <date>2016-04-05 16:21:32 -0700</date>
            <delta_ts>2016-04-05 17:09:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156227-20160405162132.patch</filename>
            <type>text/plain</type>
            <size>23360</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUxNGRjYWExYmQzZjNm
ZjAwNjFlZDUwYTI0MzQxMzQ5OTNhZWZkNC4uOThkMDk0YjAzYjhhNTQxZGU1NWQ0M2U2MjVhYzFl
ZTFhYjQ1Mzk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE2LTA0LTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJj
ZSB3aW5kb3cgaXMgaW5jb3JyZWN0IG9uY2Ugd2luZG93IGhhcyBiZWVuIHJlaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjIyNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjU1NDU4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBM
YW0uCisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJjZSB3aW5kb3cgd2FzIGluY29ycmVjdCBv
bmNlIHdpbmRvdyBoYWQgYmVlbiByZWlmaWVkLgorCisgICAgICAgIElmIHRoZSBXaW5kb3cgaGFk
IG5vdCBiZWVuIHJlaWZpZWQsIHdlIGtlcHQgY29uc3RydWN0aW5nIG5ldworICAgICAgICBwb3N0
TWVzc2FnZSgpIGZ1bmN0aW9ucyB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdlKCkuIFdl
IHVzZWQgdG8KKyAgICAgICAgcGFzcyBhY3RpdmVET01XaW5kb3coZXhlY1N0YXRlKSBhcyBzb3Vy
Y2UgV2luZG93IHRvCisgICAgICAgIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoKS4gYWN0aXZlRE9N
V2luZG93KCkgdXNlcworICAgICAgICBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkgd2hpY2gg
ZGlkIHRoZSByaWdodCB0aGluZyBiZWNhdXNlIHdlCisgICAgICAgIHVzZWQgdG8gY29uc3RydWN0
IGEgbmV3IHBvc3RNZXNzYWdlKCkgZnVuY3Rpb24gaW4gdGhlIGNhbGxlcidzIGNvbnRleHQuCisK
KyAgICAgICAgSG93ZXZlciwgYWZ0ZXIgcmVpZmljYXRpb24sIGR1ZSB0byB0aGUgd2F5IEpTRE9N
V2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoKQorICAgICAgICB3YXMgaW1wbGVtZW50ZWQsIHdl
IHdvdWxkIHN0b3AgY29uc3RydWN0aW5nIG5ldyBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9ucworICAg
ICAgICB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdlKCkuIEFzIGEgcmVzdWx0LCB0aGUg
c291cmNlIHdpbmRvdyB3b3VsZAorICAgICAgICBiZWNvbWUgaW5jb3JyZWN0IGJlY2F1c2UgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIHdvdWxkIHJldHVybiB0aGUKKyAgICAgICAgdGFyZ2V0
IFdpbmRvdyBpbnN0ZWFkLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHRoZSBmb2xsb3dpbmcg
aXMgZG9uZToKKyAgICAgICAgMS4gU3RvcCBjb25zdHJ1Y3RpbmcgYSBuZXcgZnVuY3Rpb24gZXZl
cnkgdGltZSBpbiB0aGUgc2FtZSBvcmlnaW4gY2FzZQorICAgICAgICAgICBmb3IgcG9zdE1lc3Nh
Z2UsIGJsdXIsIGZvY3VzIGFuZCBjbG9zZS4gVGhpcyB3YXMgaW5lZmZpY2llbnQgYW5kIGxlYWQK
KyAgICAgICAgICAgdG8gaW5jb3JyZWN0IGJlaGF2aW9yOgorICAgICAgICAgICAtIFRoZSBiZWhh
dmlvciB3b3VsZCBkaWZmZXIgZGVwZW5kaW5nIGlmIHRoZSBXaW5kb3cgaXMgcmVpZmllZCBvciBu
b3QKKyAgICAgICAgICAgLSBJdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGRlbGV0ZSB0aG9zZSBv
cGVyYXRpb25zLCB3aGljaCBpcworICAgICAgICAgICAgIGluY29tcGF0aWJsZSB3aXRoIHRoZSBz
cGVjaWZpY2F0aW9uIGFuZCBvdGhlciBicm93c2VycyAodGVzdGVkCisgICAgICAgICAgICAgRmly
ZWZveCBhbmQgQ2hyb21lKS4KKyAgICAgICAgMi4gVXNlIGNhbGxlckRPTVdpbmRvdyhleGVjU3Rh
dGUpIGluc3RlYWQgb2YgYWN0aXZlRE9NV2luZG93KGV4ZWNTdGF0ZSkKKyAgICAgICAgICAgYXMg
c291cmNlIFdpbmRvdyBpbiBKU0RPTVdpbmRvdzo6aGFuZGxlUG9zdE1lc3NhZ2UoKS4gY2FsbGVy
RE9NV2luZG93KCkKKyAgICAgICAgICAgaXMgYSBuZXcgdXRpbGl0eSBmdW5jdGlvbiB0aGF0IHJl
dHVybnMgdGhlIGNhbGxlcidzIFdpbmRvdyBvYmplY3QuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
ZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNz
YWdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291
cmNlLXBvc3RtZXNzYWdlMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWZyYW1lcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoMi5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2V0Q2FsbGVyQ29kZUJsb2Nr
RnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChXZWJDb3JlOjpHZXRDYWxsZXJDb2RlQmxv
Y2tGdW5jdG9yOjpjb2RlQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6Y2FsbGVyRE9NV2luZG93
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVQ
b3N0TWVzc2FnZSk6CisKIDIwMTYtMDQtMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBjb250ZXh0IHNhdmUvcmVzdG9yZSBpbiBH
cmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IDIwYjlmZjUwNzQ5MmM2Yjk0MmY2ZGRiNDA5YzMz
YWQ0MDMyM2Y4YTQuLjZmNjEwMTU5MjJjN2Q0M2I5YTM1MWE1YzI5N2JkMmU5YWQ4ODY1ZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNFeGNl
cHRpb25CYXNlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDxieXRl
Y29kZS9Db2RlQmxvY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+
CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRl
IDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5oPgpAQCAtNTU3LDYgKzU1OCw0MCBAQCB1aW50NjRf
dCB0b1VJbnQ2NChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEludGVnZXJDb252ZXJz
aW9uQ29uZmlndXJhdGlvbgogICAgIHJldHVybiBuOwogfQogCitjbGFzcyBHZXRDYWxsZXJHbG9i
YWxPYmplY3RGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBHZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5j
dG9yKCkgPSBkZWZhdWx0OworCisgICAgU3RhY2tWaXNpdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShT
dGFja1Zpc2l0b3ImIHZpc2l0b3IpCisgICAgeworICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZp
cnN0RnJhbWUpIHsKKyAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOwor
ICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoYXV0byogY29kZUJsb2NrID0gdmlzaXRvci0+Y29kZUJsb2NrKCkpCisgICAg
ICAgICAgICBtX2dsb2JhbE9iamVjdCA9IGNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKHZpc2l0b3ItPmNhbGxlZSgpKTsKKyAgICAg
ICAgICAgIG1fZ2xvYmFsT2JqZWN0ID0gdmlzaXRvci0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkRvbmU7CisgICAgfQor
CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xv
YmFsT2JqZWN0OyB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2hhc1NraXBwZWRGaXJzdEZyYW1l
IHsgZmFsc2UgfTsKKyAgICBKU0dsb2JhbE9iamVjdCogbV9nbG9iYWxPYmplY3QgeyBudWxscHRy
IH07Cit9OworCitET01XaW5kb3cmIGNhbGxlckRPTVdpbmRvdyhFeGVjU3RhdGUqIGV4ZWMpCit7
CisgICAgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciBpdGVyOworICAgIGV4ZWMtPml0ZXJh
dGUoaXRlcik7CisgICAgcmV0dXJuIGl0ZXIuZ2xvYmFsT2JqZWN0KCkgPyBhc0pTRE9NV2luZG93
KGl0ZXIuZ2xvYmFsT2JqZWN0KCkpLT53cmFwcGVkKCkgOiBmaXJzdERPTVdpbmRvdyhleGVjKTsK
K30KKwogRE9NV2luZG93JiBhY3RpdmVET01XaW5kb3coRXhlY1N0YXRlKiBleGVjKQogewogICAg
IHJldHVybiBhc0pTRE9NV2luZG93KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPndyYXBw
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggYzg5
MDJlNjliZTcwN2Y2ZDg2OTI5M2JlMWU3NWIxNGVmODY4ZWFjZi4uNzU4NzQxZjBhYWQxMGE1MGEy
MzliM2VjZjhjNTJkNTIyMzdhZjI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmgKQEAgLTc4LDYgKzc4LDcgQEAgc3RydWN0IEV4Y2VwdGlvbkRldGFpbHMgewog
CiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCitET01XaW5kb3cmIGNhbGxlckRPTVdpbmRv
dyhKU0M6OkV4ZWNTdGF0ZSopOwogRE9NV2luZG93JiBhY3RpdmVET01XaW5kb3coSlNDOjpFeGVj
U3RhdGUqKTsKIERPTVdpbmRvdyYgZmlyc3RET01XaW5kb3coSlNDOjpFeGVjU3RhdGUqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmlu
ZGV4IDViNWRhOTVjZDQwOWJiMDE3ODU5NTY1YzJjNGE4MzRmZGFmZDU3OTUuLjNiMjZkZmRkMWJm
ZTcyODk4MGQzYWU4MTU3MDMyOTQxZmNhNjRkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTIzNywzMCArMjM3LDYgQEAgYm9v
bCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHkKICAgICAvLyAoUGFydGljdWxhcmx5LCBpcyBpdCBjb3JyZWN0
IHRoYXQgdGhpcyBleGlzdHMgaGVyZSBidXQgbm90IGluIGdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXg/KQogICAgIHNsb3Quc2V0V2F0Y2hwb2ludFNldCh0aGlzT2JqZWN0LT5tX3dpbmRvd0Nsb3Nl
V2F0Y2hwb2ludHMpOwogCi0gICAgLy8gRklYTUU6IFRoZXNlIGFyZSBhbGwgYm9ndXMuIEtlZXBp
bmcgdGhlc2UgaGVyZSBtYWtlIHNvbWUgdGVzdHMgcGFzcyB0aGF0IGNoZWNrIHRoZXNlIHByb3Bl
cnRpZXMKLSAgICAvLyBhcmUgb3duIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdywgYnV0IGludHJv
ZHVjZXMgb3RoZXIgcHJvYmxlbXMgaW5zdGVhZCAoZS5nLiBpZiB5b3Ugb3ZlcndyaXRlCi0gICAg
Ly8gJiBkZWxldGUgdGhlbiB0aGUgb3JpZ2luYWwgdmFsdWUgaXMgcmVzdG9yZWQhKSBTaG91bGQg
YmUgcmVtb3ZlZC4KLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5ibHVyKSB7Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAgICBzbG90LnNldEN1c3Rv
bSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwgbm9uQ2FjaGlu
Z1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkJsdXIsIDA+
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmNsb3NlKSB7Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAg
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUg
fCBEb250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93SW5z
dGFuY2VGdW5jdGlvbkNsb3NlLCAwPik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAg
ICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5mb2N1cykgewotICAg
ICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwg
UmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0sIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlv
bkdldHRlcjxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Gb2N1cywgMD4pOwotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkucG9zdE1lc3NhZ2UpIHsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgICAg
IHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRF
bnVtLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dJbnN0YW5jZUZ1
bmN0aW9uUG9zdE1lc3NhZ2UsIDI+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCiAg
ICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuc2hvd01vZGFsRGlh
bG9nKSB7CiAgICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
NTg4LDcgKzU2NCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGhhbmRsZVBvc3RNZXNzYWdlKERPTVdpbmRv
dyYgaW1wbCwgRXhlY1N0YXRlJiBzdGF0ZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsLnBvc3RNZXNzYWdlKG1lc3Nh
Z2UucmVsZWFzZSgpLCAmbWVzc2FnZVBvcnRzLCB0YXJnZXRPcmlnaW4sIGFjdGl2ZURPTVdpbmRv
dygmc3RhdGUpLCBlYyk7CisgICAgaW1wbC5wb3N0TWVzc2FnZShtZXNzYWdlLnJlbGVhc2UoKSwg
Jm1lc3NhZ2VQb3J0cywgdGFyZ2V0T3JpZ2luLCBjYWxsZXJET01XaW5kb3coJnN0YXRlKSwgZWMp
OwogICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKIAogICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDg4OTM2YWZmZThiODQ3OGVmMWRhYWZkN2FjNjdlMzVmYTE3Y2ZiZGEu
Ljc5NjdhYjYxMTNhOWMzY2NjOTI2ZTZkM2UxOTdjNmQxOGVkMjQ1YjcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMCBAQAorMjAxNi0wNC0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIE1lc3NhZ2VFdmVudC5zb3VyY2Ugd2luZG93IGlzIGluY29ycmVjdCBvbmNlIHdpbmRv
dyBoYXMgYmVlbiByZWlmaWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTYyMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1NTQ1ODMxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgIEFkZCB0ZXN0cyB0aGF0IGNv
dmVyIHVzaW5nIE1lc3NhZ2VFdmVudC5zb3VyY2UgV2luZG93IGZvciBtZXNzYWdpbmcKKyAgICAg
ICAgdXNpbmcgcG9zdE1lc3NhZ2UoKS4gVGhlcmUgYXJlIDIgdmVyc2lvbnMgb2YgdGhlIHRlc3Qs
IG9uZSB3aGVyZSB0aGUKKyAgICAgICAgbWFpbiB3aW5kb3cgaXMgcmVpZmllZCBhbmQgb25lIHdo
ZXJlIGl0IGlzIG5vdC4gVGhlIHRlc3QgdGhhdCBoYXMgYQorICAgICAgICByZWlmaWVkIG1haW4g
d2luZG93IHdhcyBmYWlsaW5nIGJlY2F1c2UgdGhpcyBmaXguCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvZGVsZXRlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvZGVsZXRlLW9wZXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAg
IE1ha2Ugc3VyZSB0aGF0IG9wZXJhdGlvbnMgb24gV2luZG93IGFyZSBpbmRlZWQgZGVsZXRhYmxl
LiBQcmV2aW91c2x5LAorICAgICAgICBpdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGRlbGV0ZSBw
b3N0TWVzc2FnZSwgYmx1ciwgZm9jdXMgYW5kIGNsb3NlLgorCisgICAgICAgICogZmFzdC9kb20v
V2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVz
c2FnZS1yZWlmaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2lu
ZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2Fn
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNv
dXJjZS1wb3N0bWVzc2FnZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L3Jlc291cmNlcy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLWZyYW1lLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2gyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1j
cmFzaDIuaHRtbDogQWRkZWQuCisKIDIwMTYtMDQtMDQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBQb2x5bW9ycGhpY0FjY2VzcyBzaG91bGQgaGF2ZSBhIE1lZ2Ft
b3JwaGljTG9hZCBjYXNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
ZGVsZXRlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2RlbGV0ZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDM1ZjA4OWQ3
ZTVmN2IwOTMwYmU0Mzg2OTYzMzYyYjk5ZjdlMDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L2RlbGV0ZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDc1IEBACitUZXN0cyBkZWxldGluZyB3aW5kb3cgb3BlcmF0aW9ucyB3b3JrcyBhcyBl
eHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cucG9z
dE1lc3NhZ2UgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5wb3N0TWVzc2FnZSA9
IDEKK1BBU1Mgd2luZG93LnBvc3RNZXNzYWdlIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5wb3N0
TWVzc2FnZSBpcyB0cnVlCitQQVNTIHdpbmRvdy5wb3N0TWVzc2FnZSBpcyB1bmRlZmluZWQuCisK
K1BBU1Mgd2luZG93LmZvY3VzIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuZm9j
dXMgPSAxCitQQVNTIHdpbmRvdy5mb2N1cyBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuZm9jdXMg
aXMgdHJ1ZQorUEFTUyB3aW5kb3cuZm9jdXMgaXMgdW5kZWZpbmVkLgorCitQQVNTIHdpbmRvdy5i
bHVyIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuYmx1ciA9IDEKK1BBU1Mgd2lu
ZG93LmJsdXIgaXMgMQorUEFTUyBkZWxldGUgd2luZG93LmJsdXIgaXMgdHJ1ZQorUEFTUyB3aW5k
b3cuYmx1ciBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LmNsb3NlIGlzIGFuIGluc3RhbmNl
IG9mIEZ1bmN0aW9uCit3aW5kb3cuY2xvc2UgPSAxCitQQVNTIHdpbmRvdy5jbG9zZSBpcyAxCitQ
QVNTIGRlbGV0ZSB3aW5kb3cuY2xvc2UgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuY2xvc2UgaXMgdW5k
ZWZpbmVkLgorCitQQVNTIHdpbmRvdy5vcGVuIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3
aW5kb3cub3BlbiA9IDEKK1BBU1Mgd2luZG93Lm9wZW4gaXMgMQorUEFTUyBkZWxldGUgd2luZG93
Lm9wZW4gaXMgdHJ1ZQorUEFTUyB3aW5kb3cub3BlbiBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2lu
ZG93LnNob3dNb2RhbERpYWxvZyBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgord2luZG93LnNo
b3dNb2RhbERpYWxvZyA9IDEKK1BBU1Mgd2luZG93LnNob3dNb2RhbERpYWxvZyBpcyAxCitQQVNT
IGRlbGV0ZSB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIHRydWUKK1BBU1Mgd2luZG93LnNob3dN
b2RhbERpYWxvZyBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LmFsZXJ0IGlzIGFuIGluc3Rh
bmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuYWxlcnQgPSAxCitQQVNTIHdpbmRvdy5hbGVydCBpcyAx
CitQQVNTIGRlbGV0ZSB3aW5kb3cuYWxlcnQgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuYWxlcnQgaXMg
dW5kZWZpbmVkLgorCitQQVNTIHdpbmRvdy5jb25maXJtIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0
aW9uCit3aW5kb3cuY29uZmlybSA9IDEKK1BBU1Mgd2luZG93LmNvbmZpcm0gaXMgMQorUEFTUyBk
ZWxldGUgd2luZG93LmNvbmZpcm0gaXMgdHJ1ZQorUEFTUyB3aW5kb3cuY29uZmlybSBpcyB1bmRl
ZmluZWQuCisKK1BBU1Mgd2luZG93LnByb21wdCBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgor
d2luZG93LnByb21wdCA9IDEKK1BBU1Mgd2luZG93LnByb21wdCBpcyAxCitQQVNTIGRlbGV0ZSB3
aW5kb3cucHJvbXB0IGlzIHRydWUKK1BBU1Mgd2luZG93LnByb21wdCBpcyB1bmRlZmluZWQuCisK
K1BBU1Mgd2luZG93LnN0b3AgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5zdG9w
ID0gMQorUEFTUyB3aW5kb3cuc3RvcCBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuc3RvcCBpcyB0
cnVlCitQQVNTIHdpbmRvdy5zdG9wIGlzIHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cuc2Nyb2xs
IGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuc2Nyb2xsID0gMQorUEFTUyB3aW5k
b3cuc2Nyb2xsIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5zY3JvbGwgaXMgdHJ1ZQorUEFTUyB3
aW5kb3cuc2Nyb2xsIGlzIHVuZGVmaW5lZC4KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2RlbGV0ZS1vcGVyYXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E3NTdlMDU2NThmYjBlZWQ1
NTM4NDM0MDgwM2IxYTMyMDgyN2I0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgZGVs
ZXRpbmcgd2luZG93IG9wZXJhdGlvbnMgd29ya3MgYXMgZXhwZWN0ZWQiKTsKKworZnVuY3Rpb24g
dGVzdEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSkKK3sKKyAgICBzaG91bGRCZVR5cGUoIndpbmRvdy4i
ICsgZnVuY3Rpb25OYW1lLCAiRnVuY3Rpb24iKTsKKyAgICBldmFsQW5kTG9nKCJ3aW5kb3cuIiAr
IGZ1bmN0aW9uTmFtZSArICIgPSAxIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy4iICsgZnVuY3Rp
b25OYW1lLCAiMSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZGVsZXRlIHdpbmRvdy4iICsgZnVuY3Rp
b25OYW1lKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgid2luZG93LiIgKyBmdW5jdGlvbk5hbWUp
OworICAgIGRlYnVnKCIiKTsKK30KKwordGVzdEZ1bmN0aW9uKCJwb3N0TWVzc2FnZSIpOwordGVz
dEZ1bmN0aW9uKCJmb2N1cyIpOwordGVzdEZ1bmN0aW9uKCJibHVyIik7Cit0ZXN0RnVuY3Rpb24o
ImNsb3NlIik7Cit0ZXN0RnVuY3Rpb24oIm9wZW4iKTsKK3Rlc3RGdW5jdGlvbigic2hvd01vZGFs
RGlhbG9nIik7Cit0ZXN0RnVuY3Rpb24oImFsZXJ0Iik7Cit0ZXN0RnVuY3Rpb24oImNvbmZpcm0i
KTsKK3Rlc3RGdW5jdGlvbigicHJvbXB0Iik7Cit0ZXN0RnVuY3Rpb24oInN0b3AiKTsKK3Rlc3RG
dW5jdGlvbigic2Nyb2xsIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3Nh
Z2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVu
dC1zb3VyY2UtcG9zdG1lc3NhZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZGI2NzA4MjJm
MTU5ZTdlOWNkMGFkYmM1ZjJlNzRiYWIxM2ZhNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgdGhhdCBNZXNzYWdlRXZlbnQuc291cmNl
IGlzIGNvcnJlY3QgYW5kIGNhbiBiZSB1c2VkIGZvciBtZXNzYWdpbmcuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCisqIFNlbmRpbmcgbWVzc2FnZSAxIHRvIGNoaWxkCisqIFBhcmVu
dCByZWNlaXZlZCBtZXNzYWdlIDIgZnJvbSBjaGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNl
IGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdlRXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQorKiBT
ZW5kaW5nIG1lc3NhZ2UgMyB0byBjaGlsZAorKiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA0IGZy
b20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVz
c2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciArIDEKKyogU2VuZGluZyBtZXNzYWdlIDUgdG8gY2hp
bGQKKyogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgNiBmcm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VF
dmVudC5zb3VyY2UgaXMgZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50
ZXIgKyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicK
Ky0tLS0tLS0tCisqIENoaWxkIHJlY2VpdmVkIG1lc3NhZ2UgMSBmcm9tIHBhcmVudAorUEFTUyBt
ZXNzYWdlRXZlbnQuc291cmNlIGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgMiB0byBwYXJl
bnQKKyogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAzIGZyb20gcGFyZW50CitQQVNTIG1lc3NhZ2VF
dmVudC5zb3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSA0IHRvIHBhcmVudAorKiBD
aGlsZCByZWNlaXZlZCBtZXNzYWdlIDUgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50LnNv
dXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDYgdG8gcGFyZW50CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3Rt
ZXNzYWdlLXJlaWZpZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjdiYmNmZDk0MzZiMWEwMzBmOWRjZGUzNmQxMjdkOTNhM2M1ZjQ2YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291
cmNlLXBvc3RtZXNzYWdlLXJlaWZpZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rl
c3RzIHRoYXQgTWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBjb3JyZWN0IGFuZCBjYW4gYmUgdXNlZCBm
b3IgbWVzc2FnaW5nIChyZWlmaWVkIFdpbmRvdyBjYXNlKS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKKyogU2VuZGluZyBtZXNzYWdlIDEgdG8gY2hpbGQKKyogUGFyZW50IHJlY2Vp
dmVkIG1lc3NhZ2UgMiBmcm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgZnJh
bWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50ZXIgKyAxCisqIFNlbmRpbmcg
bWVzc2FnZSAzIHRvIGNoaWxkCisqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlIDQgZnJvbSBjaGls
ZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdlRXZl
bnQuZGF0YSBpcyBjb3VudGVyICsgMQorKiBTZW5kaW5nIG1lc3NhZ2UgNSB0byBjaGlsZAorKiBQ
YXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA2IGZyb20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNv
dXJjZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVzc2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciArIDEK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0t
LS0KKyogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAxIGZyb20gcGFyZW50CitQQVNTIG1lc3NhZ2VF
dmVudC5zb3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSAyIHRvIHBhcmVudAorKiBD
aGlsZCByZWNlaXZlZCBtZXNzYWdlIDMgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50LnNv
dXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDQgdG8gcGFyZW50CisqIENoaWxkIHJl
Y2VpdmVkIG1lc3NhZ2UgNSBmcm9tIHBhcmVudAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlz
IHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgNiB0byBwYXJlbnQKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2Ut
cmVpZmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1z
b3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ODkxMTM0ZjUwMjRj
MTQ3NTYwNDVjOTNkZjIwOGVjZDdiOTI3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVk
Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IE1l
c3NhZ2VFdmVudC5zb3VyY2UgaXMgY29ycmVjdCBhbmQgY2FuIGJlIHVzZWQgZm9yIG1lc3NhZ2lu
ZyAocmVpZmllZCBXaW5kb3cgY2FzZSkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8g
UmVpZnkgdGhlIHdpbmRvdy4KK3dpbmRvdy50ZXN0ID0gMTsKK2RlbGV0ZSB3aW5kb3cudGVzdDsK
KworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVz
QXNUZXh0KCk7CisKK2NvdW50ZXIgPSAxOworCit3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24o
ZSkgeworICAgIGRlYnVnKCIqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlICIgKyBlLmRhdGEgKyAi
IGZyb20gY2hpbGQiKTsKKyAgICBtZXNzYWdlRXZlbnQgPSBlOworICAgIHNob3VsZEJlKCJtZXNz
YWdlRXZlbnQuc291cmNlIiwgImZyYW1lc1swXSIpOworICAgIHNob3VsZEJlKCJtZXNzYWdlRXZl
bnQuZGF0YSIsICJjb3VudGVyICsgMSIpOworICAgIGlmIChtZXNzYWdlRXZlbnQuZGF0YSA+IDUp
IHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y291bnRlciA9IG1lc3NhZ2VFdmVudC5kYXRhICsgMTsKKyAgICBkZWJ1ZygiKiBTZW5kaW5nIG1l
c3NhZ2UgIiArIGNvdW50ZXIgKyAiIHRvIGNoaWxkIik7CisgICAgbWVzc2FnZUV2ZW50LnNvdXJj
ZS5wb3N0TWVzc2FnZShjb3VudGVyLCAiKiIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sK
KyAgICBkZWJ1ZygiKiBTZW5kaW5nIG1lc3NhZ2UgIiArIGNvdW50ZXIgKyAiIHRvIGNoaWxkIik7
CisgICAgZnJhbWVzWzBdLnBvc3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9CisKKzwvc2NyaXB0
PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdl
LWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3Nh
Z2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNl
LXBvc3RtZXNzYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg2NzMxMGY0NWYwODIxNWRlOTY0MDhiNDlm
M2Y5N2FiNTc3Yzc2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLmh0bWwKQEAgLTAsMCArMSwzOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IE1lc3NhZ2VFdmVudC5zb3VyY2UgaXMg
Y29ycmVjdCBhbmQgY2FuIGJlIHVzZWQgZm9yIG1lc3NhZ2luZy4iKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQ2hp
bGRGcmFtZXNBc1RleHQoKTsKKworY291bnRlciA9IDE7CisKK3dpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihlKSB7CisgICAgZGVidWcoIiogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgIiArIGUu
ZGF0YSArICIgZnJvbSBjaGlsZCIpOworICAgIG1lc3NhZ2VFdmVudCA9IGU7CisgICAgc2hvdWxk
QmUoIm1lc3NhZ2VFdmVudC5zb3VyY2UiLCAiZnJhbWVzWzBdIik7CisgICAgc2hvdWxkQmUoIm1l
c3NhZ2VFdmVudC5kYXRhIiwgImNvdW50ZXIgKyAxIik7CisgICAgaWYgKG1lc3NhZ2VFdmVudC5k
YXRhID4gNSkgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjb3VudGVyID0gbWVzc2FnZUV2ZW50LmRhdGEgKyAxOworICAgIGRlYnVnKCIqIFNl
bmRpbmcgbWVzc2FnZSAiICsgY291bnRlciArICIgdG8gY2hpbGQiKTsKKyAgICBtZXNzYWdlRXZl
bnQuc291cmNlLnBvc3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9CisKK2Z1bmN0aW9uIHJ1blRl
c3QoKQoreworICAgIGRlYnVnKCIqIFNlbmRpbmcgbWVzc2FnZSAiICsgY291bnRlciArICIgdG8g
Y2hpbGQiKTsKKyAgICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoY291bnRlciwgIioiKTsKK30KKwor
PC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL21lc3NhZ2VldmVudC1zb3VyY2UtcG9z
dG1lc3NhZ2UtZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1w
b3N0bWVzc2FnZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21l
c3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZWZhYjFjNWVmNWYzOTU4M2E5MTMxMzA0YzQ0ZjlkNDJkMWYyNzhkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1l
c3NhZ2UyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVja3MgdGhhdCBNZXNzYWdl
RXZlbnQuc291cmNlIHdpbmRvdyBpcyBjb3JyZWN0IHdoZW4gcG9zdE1lc3NhZ2UoKSBpcyBjYWxs
ZWQgY3Jvc3MtZnJhbWUgdmlhIGEgZnVuY3Rpb24gaW4gdGhlIG90aGVyIGZyYW1lLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtZXNzYWdlRXZlbnQuZGF0YSBpcyAibXNn
IgorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIGZyYW1lc1swXQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlMi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1l
c3NhZ2UyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmUxZWNiZGViOTlmMzRjNjNmNTdhMTRiMGM0OWUyZWFj
ZGE0YzQxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9t
ZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlMi5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQ2hlY2tzIHRo
YXQgTWVzc2FnZUV2ZW50LnNvdXJjZSB3aW5kb3cgaXMgY29ycmVjdCB3aGVuIHBvc3RNZXNzYWdl
KCkgaXMgY2FsbGVkIGNyb3NzLWZyYW1lIHZpYSBhIGZ1bmN0aW9uIGluIHRoZSBvdGhlciBmcmFt
ZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rp
b24oZSkgeworICAgIG1lc3NhZ2VFdmVudCA9IGU7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJtZXNzYWdlRXZlbnQuZGF0YSIsICJtc2ciKTsKKyAgICBzaG91bGRCZSgibWVzc2FnZUV2ZW50
LnNvdXJjZSIsICJmcmFtZXNbMF0iKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworb25sb2Fk
ID0gZnVuY3Rpb24oKQoreworICAgIGZyYW1lc1swXS5zZW5kTWVzc2FnZSgpOworfQorPC9zY3Jp
cHQ+Cis8aWZyYW1lIHNyY2RvYz0iPHNjcmlwdD5mdW5jdGlvbiBzZW5kTWVzc2FnZSgpIHsgcGFy
ZW50LnBvc3RNZXNzYWdlKCdtc2cnLCAnKicpOyB9PC9zY3JpcHQ+Ij48L2lmcmFtZT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3Nh
Z2UtY3Jhc2gyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0
LW1lc3NhZ2UtY3Jhc2gyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTI4YTkwMDQ0MDk4N2Mx
MGVmZWZkZGIxODBhNTk2MjAwZmVkZjllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaDItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEgQEAKK1RoaXMgZW5zdXJlcyB0aGF0IHBvc3RNZXNzYWdlIGNhbGxlZCBpbiBhIGNhbGxi
YWNrIGRvZXMgbm90IGNyYXNoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBtZXNzYWdlRXZlbnQuZGF0YSBpcyAibXNnIgorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlz
IHdpbmRvdworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2Ut
Y3Jhc2gyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNy
YXNoMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhZDViMjQ3ZjA4ZTcwOGFmMTUyZThlZTk4YmYzODVkOTg5
NDhlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9z
dC1tZXNzYWdlLWNyYXNoMi5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIGVuc3VyZXMgdGhh
dCBwb3N0TWVzc2FnZSBjYWxsZWQgaW4gYSBjYWxsYmFjayBkb2VzIG5vdCBjcmFzaC4iKTsKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewor
ICAgbWVzc2FnZUV2ZW50ID0gZTsKKyAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVzc2FnZUV2
ZW50LmRhdGEiLCAibXNnIik7CisgICBzaG91bGRCZSgibWVzc2FnZUV2ZW50LnNvdXJjZSIsICJ3
aW5kb3ciKTsKKyAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgYm91bmRQb3N0TWVzc2FnZSA9
IHdpbmRvdy5wb3N0TWVzc2FnZS5iaW5kKHdpbmRvdywgIm1zZyIsICIqIik7CitzZXRUaW1lb3V0
KGJvdW5kUG9zdE1lc3NhZ2UsIDApOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL21lc3NhZ2Vl
dmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9yZXNvdXJjZXMvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI0NmRjM2RmMzAyNDIzNWI3MTUwZjVjZDM2OGMzYzk3MDg3NThjY2YK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2Vz
L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDE2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgZGVidWco
IiogQ2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAiICsgZS5kYXRhICsgIiBmcm9tIHBhcmVudCIpOwor
ICAgIG1lc3NhZ2VFdmVudCA9IGU7CisgICAgc2hvdWxkQmUoIm1lc3NhZ2VFdmVudC5zb3VyY2Ui
LCAicGFyZW50Iik7CisgICAgZGVidWcoIiogU2VuZGluZyBtZXNzYWdlICIgKyAoZS5kYXRhICsg
MSkgKyAiIHRvIHBhcmVudCIpOworICAgIG1lc3NhZ2VFdmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uo
ZS5kYXRhICsgMSwgIioiKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275722</attachid>
            <date>2016-04-05 17:09:24 -0700</date>
            <delta_ts>2016-04-14 11:03:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156227-20160405170924.patch</filename>
            <type>text/plain</type>
            <size>23361</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZkOWExYzlmMmMyZGI4
M2ZmYjNkMzE4MjExOWYzYTkyZTkxMmFiYS4uMzE3Y2M3MjIxY2NiYTJkNzg4NWNhYTBjNjZiOGNj
YzNiN2Q0ZGNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE2LTA0LTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJj
ZSB3aW5kb3cgaXMgaW5jb3JyZWN0IG9uY2Ugd2luZG93IGhhcyBiZWVuIHJlaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjIyNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjU1NDU4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBM
YW0uCisKKyAgICAgICAgTWVzc2FnZUV2ZW50LnNvdXJjZSB3aW5kb3cgd2FzIGluY29ycmVjdCBv
bmNlIHdpbmRvdyBoYWQgYmVlbiByZWlmaWVkLgorCisgICAgICAgIElmIHRoZSBXaW5kb3cgaGFk
IG5vdCBiZWVuIHJlaWZpZWQsIHdlIGtlcHQgY29uc3RydWN0aW5nIG5ldworICAgICAgICBwb3N0
TWVzc2FnZSgpIGZ1bmN0aW9ucyB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdlKCkuIFdl
IHVzZWQgdG8KKyAgICAgICAgcGFzcyBhY3RpdmVET01XaW5kb3coZXhlY1N0YXRlKSBhcyBzb3Vy
Y2UgV2luZG93IHRvCisgICAgICAgIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoKS4gYWN0aXZlRE9N
V2luZG93KCkgdXNlcworICAgICAgICBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkgd2hpY2gg
ZGlkIHRoZSByaWdodCB0aGluZyBiZWNhdXNlIHdlCisgICAgICAgIHVzZWQgdG8gY29uc3RydWN0
IGEgbmV3IHBvc3RNZXNzYWdlKCkgZnVuY3Rpb24gaW4gdGhlIGNhbGxlcidzIGNvbnRleHQuCisK
KyAgICAgICAgSG93ZXZlciwgYWZ0ZXIgcmVpZmljYXRpb24sIGR1ZSB0byB0aGUgd2F5IEpTRE9N
V2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoKQorICAgICAgICB3YXMgaW1wbGVtZW50ZWQsIHdl
IHdvdWxkIHN0b3AgY29uc3RydWN0aW5nIG5ldyBwb3N0TWVzc2FnZSgpIGZ1bmN0aW9ucworICAg
ICAgICB3aGVuIGNhbGxpbmcgd2luZG93LnBvc3RNZXNzYWdlKCkuIEFzIGEgcmVzdWx0LCB0aGUg
c291cmNlIHdpbmRvdyB3b3VsZAorICAgICAgICBiZWNvbWUgaW5jb3JyZWN0IGJlY2F1c2UgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIHdvdWxkIHJldHVybiB0aGUKKyAgICAgICAgdGFyZ2V0
IFdpbmRvdyBpbnN0ZWFkLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHRoZSBmb2xsb3dpbmcg
aXMgZG9uZToKKyAgICAgICAgMS4gU3RvcCBjb25zdHJ1Y3RpbmcgYSBuZXcgZnVuY3Rpb24gZXZl
cnkgdGltZSBpbiB0aGUgc2FtZSBvcmlnaW4gY2FzZQorICAgICAgICAgICBmb3IgcG9zdE1lc3Nh
Z2UsIGJsdXIsIGZvY3VzIGFuZCBjbG9zZS4gVGhpcyB3YXMgaW5lZmZpY2llbnQgYW5kIGxlYWQK
KyAgICAgICAgICAgdG8gaW5jb3JyZWN0IGJlaGF2aW9yOgorICAgICAgICAgICAtIFRoZSBiZWhh
dmlvciB3b3VsZCBkaWZmZXIgZGVwZW5kaW5nIGlmIHRoZSBXaW5kb3cgaXMgcmVpZmllZCBvciBu
b3QKKyAgICAgICAgICAgLSBJdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGRlbGV0ZSB0aG9zZSBv
cGVyYXRpb25zLCB3aGljaCBpcworICAgICAgICAgICAgIGluY29tcGF0aWJsZSB3aXRoIHRoZSBz
cGVjaWZpY2F0aW9uIGFuZCBvdGhlciBicm93c2VycyAodGVzdGVkCisgICAgICAgICAgICAgRmly
ZWZveCBhbmQgQ2hyb21lKS4KKyAgICAgICAgMi4gVXNlIGNhbGxlckRPTVdpbmRvdyhleGVjU3Rh
dGUpIGluc3RlYWQgb2YgYWN0aXZlRE9NV2luZG93KGV4ZWNTdGF0ZSkKKyAgICAgICAgICAgYXMg
c291cmNlIFdpbmRvdyBpbiBKU0RPTVdpbmRvdzo6aGFuZGxlUG9zdE1lc3NhZ2UoKS4gY2FsbGVy
RE9NV2luZG93KCkKKyAgICAgICAgICAgaXMgYSBuZXcgdXRpbGl0eSBmdW5jdGlvbiB0aGF0IHJl
dHVybnMgdGhlIGNhbGxlcidzIFdpbmRvdyBvYmplY3QuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
ZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNz
YWdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291
cmNlLXBvc3RtZXNzYWdlMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWZyYW1lcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoMi5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2V0Q2FsbGVyQ29kZUJsb2Nr
RnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChXZWJDb3JlOjpHZXRDYWxsZXJDb2RlQmxv
Y2tGdW5jdG9yOjpjb2RlQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6Y2FsbGVyRE9NV2luZG93
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVQ
b3N0TWVzc2FnZSk6CisKIDIwMTYtMDQtMDUgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1ha2UgcmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24gYXZhaWxhYmxl
IG9uIGFueSBFZGl0b3JDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuY3BwCmluZGV4IDIwYjlmZjUwNzQ5MmM2Yjk0MmY2ZGRiNDA5YzMzYWQ0MDMyM2Y4YTQu
LjNjYjJhNTUyODAyYTRkZGNhMTRmZTg0NWZiOWMxOTdhY2MyZjYzZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNFeGNlcHRpb25CYXNlLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDxieXRlY29kZS9Db2RlQmxv
Y2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRl
ci9JbnRlcnByZXRlci5oPgpAQCAtNTU3LDYgKzU1OCw0MCBAQCB1aW50NjRfdCB0b1VJbnQ2NChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJh
dGlvbgogICAgIHJldHVybiBuOwogfQogCitjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5j
dG9yIHsKK3B1YmxpYzoKKyAgICBHZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5jdG9yKCkgPSBkZWZh
dWx0OworCisgICAgU3RhY2tWaXNpdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja1Zpc2l0b3Im
IHZpc2l0b3IpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZpcnN0RnJh
bWUpIHsKKyAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOworICAgICAg
ICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoYXV0byogY29kZUJsb2NrID0gdmlzaXRvci0+Y29kZUJsb2NrKCkpCisgICAgICAgICAg
ICBtX2dsb2JhbE9iamVjdCA9IGNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCk7CisgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgQVNTRVJUKHZpc2l0b3ItPmNhbGxlZSgpKTsKKyAgICAgICAgICAg
IG1fZ2xvYmFsT2JqZWN0ID0gdmlzaXRvci0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkRvbmU7CisgICAgfQorCisgICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsT2Jq
ZWN0OyB9CisKK3ByaXZhdGU6CisgICAgbXV0YWJsZSBib29sIG1faGFzU2tpcHBlZEZpcnN0RnJh
bWUgeyBmYWxzZSB9OworICAgIG11dGFibGUgSlNHbG9iYWxPYmplY3QqIG1fZ2xvYmFsT2JqZWN0
IHsgbnVsbHB0ciB9OworfTsKKworRE9NV2luZG93JiBjYWxsZXJET01XaW5kb3coRXhlY1N0YXRl
KiBleGVjKQoreworICAgIEdldENhbGxlckdsb2JhbE9iamVjdEZ1bmN0b3IgaXRlcjsKKyAgICBl
eGVjLT5pdGVyYXRlKGl0ZXIpOworICAgIHJldHVybiBpdGVyLmdsb2JhbE9iamVjdCgpID8gYXNK
U0RPTVdpbmRvdyhpdGVyLmdsb2JhbE9iamVjdCgpKS0+d3JhcHBlZCgpIDogZmlyc3RET01XaW5k
b3coZXhlYyk7Cit9CisKIERPTVdpbmRvdyYgYWN0aXZlRE9NV2luZG93KEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICByZXR1cm4gYXNKU0RPTVdpbmRvdyhleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpLT53cmFwcGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CmluZGV4IGM4OTAyZTY5YmU3MDdmNmQ4NjkyOTNiZTFlNzViMTRlZjg2OGVhY2YuLjc1ODc0MWYw
YWFkMTBhNTBhMjM5YjNlY2Y4YzUyZDUyMjM3YWYyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC03OCw2ICs3OCw3IEBAIHN0cnVjdCBFeGNlcHRpb25E
ZXRhaWxzIHsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAorRE9NV2luZG93JiBjYWxs
ZXJET01XaW5kb3coSlNDOjpFeGVjU3RhdGUqKTsKIERPTVdpbmRvdyYgYWN0aXZlRE9NV2luZG93
KEpTQzo6RXhlY1N0YXRlKik7CiBET01XaW5kb3cmIGZpcnN0RE9NV2luZG93KEpTQzo6RXhlY1N0
YXRlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcAppbmRleCA1YjVkYTk1Y2Q0MDliYjAxNzg1OTU2NWMyYzRhODM0ZmRhZmQ1Nzk1Li4z
YjI2ZGZkZDFiZmU3Mjg5ODBkM2FlODE1NzAzMjk0MWZjYTY0ZGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0yMzcsMzAgKzIz
Nyw2IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5CiAgICAgLy8gKFBhcnRpY3VsYXJseSwgaXMg
aXQgY29ycmVjdCB0aGF0IHRoaXMgZXhpc3RzIGhlcmUgYnV0IG5vdCBpbiBnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4PykKICAgICBzbG90LnNldFdhdGNocG9pbnRTZXQodGhpc09iamVjdC0+bV93
aW5kb3dDbG9zZVdhdGNocG9pbnRzKTsKIAotICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgYWxsIGJv
Z3VzLiBLZWVwaW5nIHRoZXNlIGhlcmUgbWFrZSBzb21lIHRlc3RzIHBhc3MgdGhhdCBjaGVjayB0
aGVzZSBwcm9wZXJ0aWVzCi0gICAgLy8gYXJlIG93biBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cs
IGJ1dCBpbnRyb2R1Y2VzIG90aGVyIHByb2JsZW1zIGluc3RlYWQgKGUuZy4gaWYgeW91IG92ZXJ3
cml0ZQotICAgIC8vICYgZGVsZXRlIHRoZW4gdGhlIG9yaWdpbmFsIHZhbHVlIGlzIHJlc3RvcmVk
ISkgU2hvdWxkIGJlIHJlbW92ZWQuCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuYmx1cikgewotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xv
dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAgICAgc2xv
dC5zZXRDdXN0b20odGhpc09iamVjdCwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0s
IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rp
b25CbHVyLCAwPik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAocHJvcGVy
dHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jbG9zZSkgewotICAgICAgICBpZiAoIUJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKQotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgUmVhZE9ubHkgfCBE
b250RGVsZXRlIHwgRG9udEVudW0sIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RP
TVdpbmRvd0luc3RhbmNlRnVuY3Rpb25DbG9zZSwgMD4pOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZm9j
dXMpIHsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRo
aXNPYmplY3QsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtLCBub25DYWNoaW5nU3Rh
dGljRnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uRm9jdXMsIDA+KTsK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnBvc3RNZXNzYWdlKSB7Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0
T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0g
ICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxl
dGUgfCBEb250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93
SW5zdGFuY2VGdW5jdGlvblBvc3RNZXNzYWdlLCAyPik7Ci0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0KLQogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnNo
b3dNb2RhbERpYWxvZykgewogICAgICAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTU4OCw3ICs1NjQsNyBAQCBzdGF0aWMgSlNWYWx1ZSBoYW5kbGVQb3N0TWVzc2Fn
ZShET01XaW5kb3cmIGltcGwsIEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC5wb3N0TWVz
c2FnZShtZXNzYWdlLnJlbGVhc2UoKSwgJm1lc3NhZ2VQb3J0cywgdGFyZ2V0T3JpZ2luLCBhY3Rp
dmVET01XaW5kb3coJnN0YXRlKSwgZWMpOworICAgIGltcGwucG9zdE1lc3NhZ2UobWVzc2FnZS5y
ZWxlYXNlKCksICZtZXNzYWdlUG9ydHMsIHRhcmdldE9yaWdpbiwgY2FsbGVyRE9NV2luZG93KCZz
dGF0ZSksIGVjKTsKICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CiAKICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOWNlOTg0M2IyZWI1NDJmZjQ0M2RkMjAxNDkxMGRi
OTFmMGNlOGNiLi5mZmM2MmU5YTc5NTExZmM2MWQ1MDEwOThjODY4NmE3ODZhOWY0NWNjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzAgQEAKKzIwMTYtMDQtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBNZXNzYWdlRXZlbnQuc291cmNlIHdpbmRvdyBpcyBpbmNvcnJlY3Qg
b25jZSB3aW5kb3cgaGFzIGJlZW4gcmVpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTU0
NTgzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBBZGQgdGVz
dHMgdGhhdCBjb3ZlciB1c2luZyBNZXNzYWdlRXZlbnQuc291cmNlIFdpbmRvdyBmb3IgbWVzc2Fn
aW5nCisgICAgICAgIHVzaW5nIHBvc3RNZXNzYWdlKCkuIFRoZXJlIGFyZSAyIHZlcnNpb25zIG9m
IHRoZSB0ZXN0LCBvbmUgd2hlcmUgdGhlCisgICAgICAgIG1haW4gd2luZG93IGlzIHJlaWZpZWQg
YW5kIG9uZSB3aGVyZSBpdCBpcyBub3QuIFRoZSB0ZXN0IHRoYXQgaGFzIGEKKyAgICAgICAgcmVp
ZmllZCBtYWluIHdpbmRvdyB3YXMgZmFpbGluZyBiZWNhdXNlIHRoaXMgZml4LgorCisgICAgICAg
ICogZmFzdC9kb20vV2luZG93L2RlbGV0ZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L2RlbGV0ZS1vcGVyYXRpb25zLmh0bWw6IEFkZGVk
LgorICAgICAgICBNYWtlIHN1cmUgdGhhdCBvcGVyYXRpb25zIG9uIFdpbmRvdyBhcmUgaW5kZWVk
IGRlbGV0YWJsZS4gUHJldmlvdXNseSwKKyAgICAgICAgaXQgd291bGQgYmUgaW1wb3NzaWJsZSB0
byBkZWxldGUgcG9zdE1lc3NhZ2UsIGJsdXIsIGZvY3VzIGFuZCBjbG9zZS4KKworICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3Vy
Y2UtcG9zdG1lc3NhZ2UtcmVpZmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLXJlaWZpZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2Ut
cG9zdG1lc3NhZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L21lc3Nh
Z2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL1dpbmRvdy9yZXNvdXJjZXMvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS1mcmFt
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNy
YXNoMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9wb3N0
LW1lc3NhZ2UtY3Jhc2gyLmh0bWw6IEFkZGVkLgorCiAyMDE2LTAzLTE5ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIGFuZCBGVEwgc2hvdWxkIGNvbnN0YW50
LWZvbGQgUmVnRXhwRXhlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L2RlbGV0ZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9kZWxldGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzNWYwODlk
N2U1ZjdiMDkzMGJlNDM4Njk2MzM2MmI5OWY3ZTAzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kZWxldGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3NSBAQAorVGVzdHMgZGVsZXRpbmcgd2luZG93IG9wZXJhdGlvbnMgd29ya3MgYXMg
ZXhwZWN0ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LnBv
c3RNZXNzYWdlIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cucG9zdE1lc3NhZ2Ug
PSAxCitQQVNTIHdpbmRvdy5wb3N0TWVzc2FnZSBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cucG9z
dE1lc3NhZ2UgaXMgdHJ1ZQorUEFTUyB3aW5kb3cucG9zdE1lc3NhZ2UgaXMgdW5kZWZpbmVkLgor
CitQQVNTIHdpbmRvdy5mb2N1cyBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgord2luZG93LmZv
Y3VzID0gMQorUEFTUyB3aW5kb3cuZm9jdXMgaXMgMQorUEFTUyBkZWxldGUgd2luZG93LmZvY3Vz
IGlzIHRydWUKK1BBU1Mgd2luZG93LmZvY3VzIGlzIHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cu
Ymx1ciBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgord2luZG93LmJsdXIgPSAxCitQQVNTIHdp
bmRvdy5ibHVyIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRvdy5ibHVyIGlzIHRydWUKK1BBU1Mgd2lu
ZG93LmJsdXIgaXMgdW5kZWZpbmVkLgorCitQQVNTIHdpbmRvdy5jbG9zZSBpcyBhbiBpbnN0YW5j
ZSBvZiBGdW5jdGlvbgord2luZG93LmNsb3NlID0gMQorUEFTUyB3aW5kb3cuY2xvc2UgaXMgMQor
UEFTUyBkZWxldGUgd2luZG93LmNsb3NlIGlzIHRydWUKK1BBU1Mgd2luZG93LmNsb3NlIGlzIHVu
ZGVmaW5lZC4KKworUEFTUyB3aW5kb3cub3BlbiBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgor
d2luZG93Lm9wZW4gPSAxCitQQVNTIHdpbmRvdy5vcGVuIGlzIDEKK1BBU1MgZGVsZXRlIHdpbmRv
dy5vcGVuIGlzIHRydWUKK1BBU1Mgd2luZG93Lm9wZW4gaXMgdW5kZWZpbmVkLgorCitQQVNTIHdp
bmRvdy5zaG93TW9kYWxEaWFsb2cgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24KK3dpbmRvdy5z
aG93TW9kYWxEaWFsb2cgPSAxCitQQVNTIHdpbmRvdy5zaG93TW9kYWxEaWFsb2cgaXMgMQorUEFT
UyBkZWxldGUgd2luZG93LnNob3dNb2RhbERpYWxvZyBpcyB0cnVlCitQQVNTIHdpbmRvdy5zaG93
TW9kYWxEaWFsb2cgaXMgdW5kZWZpbmVkLgorCitQQVNTIHdpbmRvdy5hbGVydCBpcyBhbiBpbnN0
YW5jZSBvZiBGdW5jdGlvbgord2luZG93LmFsZXJ0ID0gMQorUEFTUyB3aW5kb3cuYWxlcnQgaXMg
MQorUEFTUyBkZWxldGUgd2luZG93LmFsZXJ0IGlzIHRydWUKK1BBU1Mgd2luZG93LmFsZXJ0IGlz
IHVuZGVmaW5lZC4KKworUEFTUyB3aW5kb3cuY29uZmlybSBpcyBhbiBpbnN0YW5jZSBvZiBGdW5j
dGlvbgord2luZG93LmNvbmZpcm0gPSAxCitQQVNTIHdpbmRvdy5jb25maXJtIGlzIDEKK1BBU1Mg
ZGVsZXRlIHdpbmRvdy5jb25maXJtIGlzIHRydWUKK1BBU1Mgd2luZG93LmNvbmZpcm0gaXMgdW5k
ZWZpbmVkLgorCitQQVNTIHdpbmRvdy5wcm9tcHQgaXMgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb24K
K3dpbmRvdy5wcm9tcHQgPSAxCitQQVNTIHdpbmRvdy5wcm9tcHQgaXMgMQorUEFTUyBkZWxldGUg
d2luZG93LnByb21wdCBpcyB0cnVlCitQQVNTIHdpbmRvdy5wcm9tcHQgaXMgdW5kZWZpbmVkLgor
CitQQVNTIHdpbmRvdy5zdG9wIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCit3aW5kb3cuc3Rv
cCA9IDEKK1BBU1Mgd2luZG93LnN0b3AgaXMgMQorUEFTUyBkZWxldGUgd2luZG93LnN0b3AgaXMg
dHJ1ZQorUEFTUyB3aW5kb3cuc3RvcCBpcyB1bmRlZmluZWQuCisKK1BBU1Mgd2luZG93LnNjcm9s
bCBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbgord2luZG93LnNjcm9sbCA9IDEKK1BBU1Mgd2lu
ZG93LnNjcm9sbCBpcyAxCitQQVNTIGRlbGV0ZSB3aW5kb3cuc2Nyb2xsIGlzIHRydWUKK1BBU1Mg
d2luZG93LnNjcm9sbCBpcyB1bmRlZmluZWQuCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvZGVsZXRlLW9wZXJhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9kZWxldGUtb3BlcmF0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhNzU3ZTA1NjU4ZmIwZWVk
NTUzODQzNDA4MDNiMWEzMjA4MjdiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvZGVsZXRlLW9wZXJhdGlvbnMuaHRtbApAQCAtMCwwICsxLDMxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIGRl
bGV0aW5nIHdpbmRvdyBvcGVyYXRpb25zIHdvcmtzIGFzIGV4cGVjdGVkIik7CisKK2Z1bmN0aW9u
IHRlc3RGdW5jdGlvbihmdW5jdGlvbk5hbWUpCit7CisgICAgc2hvdWxkQmVUeXBlKCJ3aW5kb3cu
IiArIGZ1bmN0aW9uTmFtZSwgIkZ1bmN0aW9uIik7CisgICAgZXZhbEFuZExvZygid2luZG93LiIg
KyBmdW5jdGlvbk5hbWUgKyAiID0gMSIpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuIiArIGZ1bmN0
aW9uTmFtZSwgIjEiKTsKKyAgICBzaG91bGRCZVRydWUoImRlbGV0ZSB3aW5kb3cuIiArIGZ1bmN0
aW9uTmFtZSk7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoIndpbmRvdy4iICsgZnVuY3Rpb25OYW1l
KTsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3Rlc3RGdW5jdGlvbigicG9zdE1lc3NhZ2UiKTsKK3Rl
c3RGdW5jdGlvbigiZm9jdXMiKTsKK3Rlc3RGdW5jdGlvbigiYmx1ciIpOwordGVzdEZ1bmN0aW9u
KCJjbG9zZSIpOwordGVzdEZ1bmN0aW9uKCJvcGVuIik7Cit0ZXN0RnVuY3Rpb24oInNob3dNb2Rh
bERpYWxvZyIpOwordGVzdEZ1bmN0aW9uKCJhbGVydCIpOwordGVzdEZ1bmN0aW9uKCJjb25maXJt
Iik7Cit0ZXN0RnVuY3Rpb24oInByb21wdCIpOwordGVzdEZ1bmN0aW9uKCJzdG9wIik7Cit0ZXN0
RnVuY3Rpb24oInNjcm9sbCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNz
YWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZl
bnQtc291cmNlLXBvc3RtZXNzYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmRiNjcwODIy
ZjE1OWU3ZTljZDBhZGJjNWYyZTc0YmFiMTNmYTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3RzIHRoYXQgTWVzc2FnZUV2ZW50LnNvdXJj
ZSBpcyBjb3JyZWN0IGFuZCBjYW4gYmUgdXNlZCBmb3IgbWVzc2FnaW5nLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworKiBTZW5kaW5nIG1lc3NhZ2UgMSB0byBjaGlsZAorKiBQYXJl
bnQgcmVjZWl2ZWQgbWVzc2FnZSAyIGZyb20gY2hpbGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJj
ZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVzc2FnZUV2ZW50LmRhdGEgaXMgY291bnRlciArIDEKKyog
U2VuZGluZyBtZXNzYWdlIDMgdG8gY2hpbGQKKyogUGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgNCBm
cm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgZnJhbWVzWzBdCitQQVNTIG1l
c3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50ZXIgKyAxCisqIFNlbmRpbmcgbWVzc2FnZSA1IHRvIGNo
aWxkCisqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlIDYgZnJvbSBjaGlsZAorUEFTUyBtZXNzYWdl
RXZlbnQuc291cmNlIGlzIGZyYW1lc1swXQorUEFTUyBtZXNzYWdlRXZlbnQuZGF0YSBpcyBjb3Vu
dGVyICsgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4n
CistLS0tLS0tLQorKiBDaGlsZCByZWNlaXZlZCBtZXNzYWdlIDEgZnJvbSBwYXJlbnQKK1BBU1Mg
bWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDIgdG8gcGFy
ZW50CisqIENoaWxkIHJlY2VpdmVkIG1lc3NhZ2UgMyBmcm9tIHBhcmVudAorUEFTUyBtZXNzYWdl
RXZlbnQuc291cmNlIGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgNCB0byBwYXJlbnQKKyog
Q2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSA1IGZyb20gcGFyZW50CitQQVNTIG1lc3NhZ2VFdmVudC5z
b3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSA2IHRvIHBhcmVudAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0
bWVzc2FnZS1yZWlmaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLXJlaWZpZWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI3YmJjZmQ5NDM2YjFhMDMwZjlkY2RlMzZkMTI3ZDkzYTNjNWY0NmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNv
dXJjZS1wb3N0bWVzc2FnZS1yZWlmaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitU
ZXN0cyB0aGF0IE1lc3NhZ2VFdmVudC5zb3VyY2UgaXMgY29ycmVjdCBhbmQgY2FuIGJlIHVzZWQg
Zm9yIG1lc3NhZ2luZyAocmVpZmllZCBXaW5kb3cgY2FzZSkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCisqIFNlbmRpbmcgbWVzc2FnZSAxIHRvIGNoaWxkCisqIFBhcmVudCByZWNl
aXZlZCBtZXNzYWdlIDIgZnJvbSBjaGlsZAorUEFTUyBtZXNzYWdlRXZlbnQuc291cmNlIGlzIGZy
YW1lc1swXQorUEFTUyBtZXNzYWdlRXZlbnQuZGF0YSBpcyBjb3VudGVyICsgMQorKiBTZW5kaW5n
IG1lc3NhZ2UgMyB0byBjaGlsZAorKiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSA0IGZyb20gY2hp
bGQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1MgbWVzc2FnZUV2
ZW50LmRhdGEgaXMgY291bnRlciArIDEKKyogU2VuZGluZyBtZXNzYWdlIDUgdG8gY2hpbGQKKyog
UGFyZW50IHJlY2VpdmVkIG1lc3NhZ2UgNiBmcm9tIGNoaWxkCitQQVNTIG1lc3NhZ2VFdmVudC5z
b3VyY2UgaXMgZnJhbWVzWzBdCitQQVNTIG1lc3NhZ2VFdmVudC5kYXRhIGlzIGNvdW50ZXIgKyAx
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCist
LS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0t
LS0tCisqIENoaWxkIHJlY2VpdmVkIG1lc3NhZ2UgMSBmcm9tIHBhcmVudAorUEFTUyBtZXNzYWdl
RXZlbnQuc291cmNlIGlzIHBhcmVudAorKiBTZW5kaW5nIG1lc3NhZ2UgMiB0byBwYXJlbnQKKyog
Q2hpbGQgcmVjZWl2ZWQgbWVzc2FnZSAzIGZyb20gcGFyZW50CitQQVNTIG1lc3NhZ2VFdmVudC5z
b3VyY2UgaXMgcGFyZW50CisqIFNlbmRpbmcgbWVzc2FnZSA0IHRvIHBhcmVudAorKiBDaGlsZCBy
ZWNlaXZlZCBtZXNzYWdlIDUgZnJvbSBwYXJlbnQKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBp
cyBwYXJlbnQKKyogU2VuZGluZyBtZXNzYWdlIDYgdG8gcGFyZW50CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdl
LXJlaWZpZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQt
c291cmNlLXBvc3RtZXNzYWdlLXJlaWZpZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzg5MTEzNGY1MDI0
YzE0NzU2MDQ1YzkzZGYyMDhlY2Q3YjkyNzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtcmVpZmll
ZC5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBN
ZXNzYWdlRXZlbnQuc291cmNlIGlzIGNvcnJlY3QgYW5kIGNhbiBiZSB1c2VkIGZvciBtZXNzYWdp
bmcgKHJlaWZpZWQgV2luZG93IGNhc2UpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8v
IFJlaWZ5IHRoZSB3aW5kb3cuCit3aW5kb3cudGVzdCA9IDE7CitkZWxldGUgd2luZG93LnRlc3Q7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOworCitjb3VudGVyID0gMTsKKword2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGUpIHsKKyAgICBkZWJ1ZygiKiBQYXJlbnQgcmVjZWl2ZWQgbWVzc2FnZSAiICsgZS5kYXRhICsg
IiBmcm9tIGNoaWxkIik7CisgICAgbWVzc2FnZUV2ZW50ID0gZTsKKyAgICBzaG91bGRCZSgibWVz
c2FnZUV2ZW50LnNvdXJjZSIsICJmcmFtZXNbMF0iKTsKKyAgICBzaG91bGRCZSgibWVzc2FnZUV2
ZW50LmRhdGEiLCAiY291bnRlciArIDEiKTsKKyAgICBpZiAobWVzc2FnZUV2ZW50LmRhdGEgPiA1
KSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGNvdW50ZXIgPSBtZXNzYWdlRXZlbnQuZGF0YSArIDE7CisgICAgZGVidWcoIiogU2VuZGluZyBt
ZXNzYWdlICIgKyBjb3VudGVyICsgIiB0byBjaGlsZCIpOworICAgIG1lc3NhZ2VFdmVudC5zb3Vy
Y2UucG9zdE1lc3NhZ2UoY291bnRlciwgIioiKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgZGVidWcoIiogU2VuZGluZyBtZXNzYWdlICIgKyBjb3VudGVyICsgIiB0byBjaGlsZCIp
OworICAgIGZyYW1lc1swXS5wb3N0TWVzc2FnZShjb3VudGVyLCAiKiIpOworfQorCis8L3Njcmlw
dD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2Fn
ZS1mcmFtZS5odG1sIj48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNz
YWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJj
ZS1wb3N0bWVzc2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4NjczMTBmNDVmMDgyMTVkZTk2NDA4YjQ5
ZjNmOTdhYjU3N2M3NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZS5odG1sCkBAIC0wLDAgKzEsMzgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBNZXNzYWdlRXZlbnQuc291cmNlIGlz
IGNvcnJlY3QgYW5kIGNhbiBiZSB1c2VkIGZvciBtZXNzYWdpbmcuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisKK2NvdW50ZXIgPSAxOworCit3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZSkgeworICAgIGRlYnVnKCIqIFBhcmVudCByZWNlaXZlZCBtZXNzYWdlICIgKyBl
LmRhdGEgKyAiIGZyb20gY2hpbGQiKTsKKyAgICBtZXNzYWdlRXZlbnQgPSBlOworICAgIHNob3Vs
ZEJlKCJtZXNzYWdlRXZlbnQuc291cmNlIiwgImZyYW1lc1swXSIpOworICAgIHNob3VsZEJlKCJt
ZXNzYWdlRXZlbnQuZGF0YSIsICJjb3VudGVyICsgMSIpOworICAgIGlmIChtZXNzYWdlRXZlbnQu
ZGF0YSA+IDUpIHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgY291bnRlciA9IG1lc3NhZ2VFdmVudC5kYXRhICsgMTsKKyAgICBkZWJ1ZygiKiBT
ZW5kaW5nIG1lc3NhZ2UgIiArIGNvdW50ZXIgKyAiIHRvIGNoaWxkIik7CisgICAgbWVzc2FnZUV2
ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShjb3VudGVyLCAiKiIpOworfQorCitmdW5jdGlvbiBydW5U
ZXN0KCkKK3sKKyAgICBkZWJ1ZygiKiBTZW5kaW5nIG1lc3NhZ2UgIiArIGNvdW50ZXIgKyAiIHRv
IGNoaWxkIik7CisgICAgZnJhbWVzWzBdLnBvc3RNZXNzYWdlKGNvdW50ZXIsICIqIik7Cit9CisK
Kzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9tZXNzYWdlZXZlbnQtc291cmNlLXBv
c3RtZXNzYWdlLWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L21lc3NhZ2VldmVudC1zb3VyY2Ut
cG9zdG1lc3NhZ2UyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9t
ZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWVmYWIxYzVlZjVmMzk1ODNhOTEzMTMwNGM0NGY5ZDQyZDFmMjc4ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3Rt
ZXNzYWdlMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2tzIHRoYXQgTWVzc2Fn
ZUV2ZW50LnNvdXJjZSB3aW5kb3cgaXMgY29ycmVjdCB3aGVuIHBvc3RNZXNzYWdlKCkgaXMgY2Fs
bGVkIGNyb3NzLWZyYW1lIHZpYSBhIGZ1bmN0aW9uIGluIHRoZSBvdGhlciBmcmFtZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbWVzc2FnZUV2ZW50LmRhdGEgaXMgIm1z
ZyIKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBpcyBmcmFtZXNbMF0KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvbWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZTIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3Rt
ZXNzYWdlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMWVjYmRlYjk5ZjM0YzYzZjU3YTE0YjBjNDllMmVh
Y2RhNGM0MWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
bWVzc2FnZWV2ZW50LXNvdXJjZS1wb3N0bWVzc2FnZTIuaHRtbApAQCAtMCwwICsxLDIyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkNoZWNrcyB0
aGF0IE1lc3NhZ2VFdmVudC5zb3VyY2Ugd2luZG93IGlzIGNvcnJlY3Qgd2hlbiBwb3N0TWVzc2Fn
ZSgpIGlzIGNhbGxlZCBjcm9zcy1mcmFtZSB2aWEgYSBmdW5jdGlvbiBpbiB0aGUgb3RoZXIgZnJh
bWUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGUpIHsKKyAgICBtZXNzYWdlRXZlbnQgPSBlOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibWVzc2FnZUV2ZW50LmRhdGEiLCAibXNnIik7CisgICAgc2hvdWxkQmUoIm1lc3NhZ2VFdmVu
dC5zb3VyY2UiLCAiZnJhbWVzWzBdIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK29ubG9h
ZCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBmcmFtZXNbMF0uc2VuZE1lc3NhZ2UoKTsKK30KKzwvc2Ny
aXB0PgorPGlmcmFtZSBzcmNkb2M9IjxzY3JpcHQ+ZnVuY3Rpb24gc2VuZE1lc3NhZ2UoKSB7IHBh
cmVudC5wb3N0TWVzc2FnZSgnbXNnJywgJyonKTsgfTwvc2NyaXB0PiI+PC9pZnJhbWU+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNz
YWdlLWNyYXNoMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9z
dC1tZXNzYWdlLWNyYXNoMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyOGE5MDA0NDA5ODdj
MTBlZmVmZGRiMTgwYTU5NjIwMGZlZGY5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2gyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitUaGlzIGVuc3VyZXMgdGhhdCBwb3N0TWVzc2FnZSBjYWxsZWQgaW4gYSBjYWxs
YmFjayBkb2VzIG5vdCBjcmFzaC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgbWVzc2FnZUV2ZW50LmRhdGEgaXMgIm1zZyIKK1BBU1MgbWVzc2FnZUV2ZW50LnNvdXJjZSBp
cyB3aW5kb3cKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdl
LWNyYXNoMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1j
cmFzaDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWQ1YjI0N2YwOGU3MDhhZjE1MmU4ZWU5OGJmMzg1ZDk4
OTQ4ZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Bv
c3QtbWVzc2FnZS1jcmFzaDIuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyBlbnN1cmVzIHRo
YXQgcG9zdE1lc3NhZ2UgY2FsbGVkIGluIGEgY2FsbGJhY2sgZG9lcyBub3QgY3Jhc2guIik7Citq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsK
KyAgIG1lc3NhZ2VFdmVudCA9IGU7CisgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1lc3NhZ2VF
dmVudC5kYXRhIiwgIm1zZyIpOworICAgc2hvdWxkQmUoIm1lc3NhZ2VFdmVudC5zb3VyY2UiLCAi
d2luZG93Iik7CisgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIGJvdW5kUG9zdE1lc3NhZ2Ug
PSB3aW5kb3cucG9zdE1lc3NhZ2UuYmluZCh3aW5kb3csICJtc2ciLCAiKiIpOworc2V0VGltZW91
dChib3VuZFBvc3RNZXNzYWdlLCAwKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9tZXNzYWdl
ZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL21lc3NhZ2VldmVudC1zb3VyY2UtcG9zdG1lc3NhZ2UtZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNDZkYzNkZjMwMjQyMzViNzE1MGY1Y2QzNjhjM2M5NzA4NzU4Y2Nm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNl
cy9tZXNzYWdlZXZlbnQtc291cmNlLXBvc3RtZXNzYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwx
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworCit3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgIGRlYnVn
KCIqIENoaWxkIHJlY2VpdmVkIG1lc3NhZ2UgIiArIGUuZGF0YSArICIgZnJvbSBwYXJlbnQiKTsK
KyAgICBtZXNzYWdlRXZlbnQgPSBlOworICAgIHNob3VsZEJlKCJtZXNzYWdlRXZlbnQuc291cmNl
IiwgInBhcmVudCIpOworICAgIGRlYnVnKCIqIFNlbmRpbmcgbWVzc2FnZSAiICsgKGUuZGF0YSAr
IDEpICsgIiB0byBwYXJlbnQiKTsKKyAgICBtZXNzYWdlRXZlbnQuc291cmNlLnBvc3RNZXNzYWdl
KGUuZGF0YSArIDEsICIqIik7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>