<?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>147742</bug_id>
          
          <creation_ts>2015-08-06 13:02:08 -0700</creation_ts>
          <short_desc>[ES6] Implement ES6 arrow function syntax. Prototype of arrow function should be undefined</short_desc>
          <delta_ts>2015-09-04 22:20:57 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>140855</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="GSkachkov">gskachkov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>basile_clement</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115415</commentid>
    <comment_count>0</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-08-06 13:02:08 -0700</bug_when>
    <thetext>Arrow function should support following condition:
var af = ()=&gt;{}; 
typeof af.prototype === &apos;undefined&apos;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118904</commentid>
    <comment_count>1</comment_count>
      <attachid>259371</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-08-19 08:43:07 -0700</bug_when>
    <thetext>Created attachment 259371
Patch

Implemented feature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118907</commentid>
    <comment_count>2</comment_count>
      <attachid>259372</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-08-19 08:59:25 -0700</bug_when>
    <thetext>Created attachment 259372
Patch

Upload after rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119218</commentid>
    <comment_count>3</comment_count>
      <attachid>259456</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-08-20 01:03:28 -0700</bug_when>
    <thetext>Created attachment 259456
Patch

Fix build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120709</commentid>
    <comment_count>4</comment_count>
      <attachid>259456</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-25 14:13:13 -0700</bug_when>
    <thetext>Comment on attachment 259456
Patch

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

&gt; Source/JavaScriptCore/runtime/JSArrowFunction.cpp:70
&gt; +    removeDirect(vm, vm.propertyNames-&gt;prototype);

This is not necessary, and it&apos;s also quite wrong.  It&apos;s quite bad to remove properties; it puts the object into a conservative (i.e. slow) mode.  Also, there is no way for the object to have a &quot;prototype&quot; property at this point, since it&apos;s added lazily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120914</commentid>
    <comment_count>5</comment_count>
      <attachid>259943</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-08-26 03:58:13 -0700</bug_when>
    <thetext>Created attachment 259943
Patch

Fix comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120925</commentid>
    <comment_count>6</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-08-26 06:39:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 259456 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259456&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSArrowFunction.cpp:70
&gt; &gt; +    removeDirect(vm, vm.propertyNames-&gt;prototype);
&gt; 
&gt; This is not necessary, and it&apos;s also quite wrong.  It&apos;s quite bad to remove
&gt; properties; it puts the object into a conservative (i.e. slow) mode.  Also,
&gt; there is no way for the object to have a &quot;prototype&quot; property at this point,
&gt; since it&apos;s added lazily.

Hmm, it is really unnecessary. I&apos;ve removed this code. Could you please make review one more time? 

Also something wrong with tests during build, because tests don&apos;t pass without my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122694</commentid>
    <comment_count>7</comment_count>
      <attachid>259943</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-01 16:49:38 -0700</bug_when>
    <thetext>Comment on attachment 259943
Patch

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

&gt; Source/JavaScriptCore/runtime/JSFunction.cpp:481
&gt; +            || (propertyName == exec-&gt;propertyNames().prototype &amp;&amp; !executable-&gt;isArrowFunction())

Why the isArrowFunction check here?
If we&apos;re an arrow function, don&apos;t we want to prevent deletion here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122801</commentid>
    <comment_count>8</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-09-02 02:51:03 -0700</bug_when>
    <thetext>How I understand this rule:
If an arrow function doesn&apos;t have own prototype so it can be initialized by custom js code. And if it possible to init this property so there has to be way to delete it. 
Does it make sense? 
Possible I need add this to task description or ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123069</commentid>
    <comment_count>9</comment_count>
      <attachid>259943</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-02 22:39:01 -0700</bug_when>
    <thetext>Comment on attachment 259943
Patch

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

r=me with comment.
If you upload again I&apos;ll cq+

&gt; Source/JavaScriptCore/runtime/JSFunction.cpp:361
&gt;      if (propertyName == exec-&gt;propertyNames().prototype) {

I think this code is more clear if we just check !executable-&gt;isArrowFunction()
here instead of doing it twice below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123070</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-02 22:40:18 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; How I understand this rule:
&gt; If an arrow function doesn&apos;t have own prototype so it can be initialized by
&gt; custom js code. And if it possible to init this property so there has to be
&gt; way to delete it. 
&gt; Does it make sense? 
&gt; Possible I need add this to task description or ChangeLog

Okay. I see. So for normal functions, we&apos;re definitely
not allowed to delete &quot;prototype&quot;, but for arrow functions,
we start with no prototype, but we&apos;re allowed to define
one and delete one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123191</commentid>
    <comment_count>11</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-09-03 15:36:43 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; How I understand this rule:
&gt; &gt; If an arrow function doesn&apos;t have own prototype so it can be initialized by
&gt; &gt; custom js code. And if it possible to init this property so there has to be
&gt; &gt; way to delete it. 
&gt; &gt; Does it make sense? 
&gt; &gt; Possible I need add this to task description or ChangeLog
&gt; 
&gt; Okay. I see. So for normal functions, we&apos;re definitely
&gt; not allowed to delete &quot;prototype&quot;, but for arrow functions,
&gt; we start with no prototype, but we&apos;re allowed to define
&gt; one and delete one?

Yes, that is correct.
I&apos;ve double checked the es6 spec, and did not find any mention that related to &apos;prototype&apos; property in arrow function section(14.2), only in &quot;usual&quot; function section(14.1.20 Note 2) http://people.mozilla.org/~jorendorff/es6-draft.html#sec-function-definitions-runtime-semantics-evaluation, so I expect that &apos;prototype&apos; property of arrow function should behave as ordinary property, in contrast with &apos;prototype&apos; property of &quot;usual&quot; function that automatically created, can be changed, but can&apos;t be deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123192</commentid>
    <comment_count>12</comment_count>
      <attachid>260532</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-09-03 15:38:36 -0700</bug_when>
    <thetext>Created attachment 260532
Patch

Increate code readability</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123356</commentid>
    <comment_count>13</comment_count>
      <attachid>260532</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-03 23:12:27 -0700</bug_when>
    <thetext>Comment on attachment 260532
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123365</commentid>
    <comment_count>14</comment_count>
      <attachid>260532</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-03 23:58:46 -0700</bug_when>
    <thetext>Comment on attachment 260532
Patch

Clearing flags on attachment: 260532

Committed r189341: &lt;http://trac.webkit.org/changeset/189341&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123366</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-03 23:58:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123382</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-04 02:32:03 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 260532 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 260532
&gt; 
&gt; Committed r189341: &lt;http://trac.webkit.org/changeset/189341&gt;

es6.yaml/es6/arrow_functions_no_prototype_property.js.default 
fails on all JSC tester bot, please check what happened.

Don&apos;t you run JSC tests before commiting a patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123446</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-04 09:09:37 -0700</bug_when>
    <thetext>Is anyone available to fix this soon? If not, I&apos;m going to roll out the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123456</commentid>
    <comment_count>18</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-09-04 09:33:33 -0700</bug_when>
    <thetext>This patch actually made the test pass, but it is marked as &quot;must fail&quot; in the harness. r189350 &lt;http://trac.webkit.org/changeset/189350&gt; marks the test as &quot;must succeed&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123475</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-04 10:18:47 -0700</bug_when>
    <thetext>Thank you Basile!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123863</commentid>
    <comment_count>20</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2015-09-04 22:20:57 -0700</bug_when>
    <thetext>Basile Clemen Thank you for the fix. I&apos;ll try to avoid such think in future!(Run all tests on the lastest jsc version)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259371</attachid>
            <date>2015-08-19 08:43:07 -0700</date>
            <delta_ts>2015-08-19 08:59:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147742-20150819184304.patch</filename>
            <type>text/plain</type>
            <size>11503</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OTg3MjQ0ZGMzMDgzOTE3YWE1MTI4YzQyNmE3MGM4MTAzYmM0ZjIwLi5hNWNmNmFmMmY5ZDY5MGYz
MWU2MTdmZTE3NmVmYzMyODVjYzVmYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNS0wOC0yMCBBbGVrc2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IGFycm93IGZ1bmN0aW9uIHN5
bnRheC4gUHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uIHNob3VsZCBiZSB1bmRlZmluZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc0MgorCisg
ICAgICAgIEFkZGVkIGNvcnJlY3Qgc3VwcG9ydCBvZiBwcm90b3R5cGUgcHJvcGVydHkgZm9yIGFy
cm93IGZ1bmN0aW9uLiBBcnJvdyBmdW5jdGlvbiBkb2VzbuKAmXQgaGF2ZSBvd24gcHJvdG90eXBl
IHByb3BlcnR5LCAKKyAgICAgICAgc28gKCgpID0+IHt9KS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90
eXBlJykgPT09IGZhbHNlIAorCisKKyAgICAgICAgKiBydW50aW1lL0pTQXJyb3dGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OkpTQXJyb3dGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLW90aGVycy5qczoKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanM6IEFkZGVkLgorCiAyMDE1LTA4LTE5IEFs
ZWtzYW5kciBTa2FjaGtvdiAgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZd
IEFycm93IGZ1bmN0aW9uIHN5bnRheC4gQXJyb3cgZnVuY3Rpb24gc3BlY2lmaWMgZmVhdHVyZXMu
IEltcGxlbWVudCBjb3JyZWN0IHRvU3RyaW5nIG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyb3dGdW5jdGlvbi5jcHAKaW5kZXggZTc2MDIzMDdkYWQ5YmEz
MWVmZGI4YzU5NWNkMTEzMjVkMGYwZDRmOC4uNjY4OWY1ZDY0MDZlMzM4MjA4Y2I3YzA4ZmE2ZGYx
Y2E1YmMzZDM5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJvd0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cm93RnVuY3Rpb24uY3BwCkBAIC02NCw2ICs2NCwxMiBAQCBKU0Fycm93RnVuY3Rpb24qIEpTQXJy
b3dGdW5jdGlvbjo6Y3JlYXRlV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludChW
TQogICAgIEFTU0VSVChleGVjdXRhYmxlLT5zaW5nbGV0b25GdW5jdGlvbigpLT5oYXNCZWVuSW52
YWxpZGF0ZWQoKSk7CiAgICAgcmV0dXJuIGNyZWF0ZSh2bSwgZXhlY3V0YWJsZSwgc2NvcGUsIGJv
dW5kVGhpcywgYm91bmRBcmdzKTsKIH0KKyAgICAKK3ZvaWQgSlNBcnJvd0Z1bmN0aW9uOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAg
IHJlbW92ZURpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsKK30KIAogdm9p
ZCBKU0Fycm93RnVuY3Rpb246OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyb3dGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJv
d0Z1bmN0aW9uLmgKaW5kZXggOTNkNjc3Yzk0NWZlMDIxZTFmYjQyZDI3YTI2NGFlYWEwM2UxNTNk
OS4uYWE2NWZjNmYyOGFmNzdhNWRmODgzOTkzMWU3MDY5NTZhMjkxZjA4YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmgKQEAgLTk0LDYgKzk0
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAKIHByaXZhdGU6CiAgICAgSlNBcnJvd0Z1bmN0aW9u
KFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgSlNTY29wZSosIEpTVmFsdWUsIEpTVmFsdWUpOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKICAgICAKICAgICBmcmllbmQgY2xhc3MgTExJ
bnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwZjczNTRlZDdhNmJkMWUzZTY0YjE4NTg1OWMxNGYxNTAz
MjZkNDU4Li43ZTQyOTQ3YjgxMDAxMjk4NWJlMmFkNGVlMDJjYWE2MjMyNTM3YzU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzU5LDEwICsz
NTksMTIgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU4KICAgICAgICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
KSB7CisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IHRoaXNPYmplY3Qt
PmpzRXhlY3V0YWJsZSgpOwogICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgICAgICB1
bnNpZ25lZCBhdHRyaWJ1dGVzOwogICAgICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSB0aGlz
T2JqZWN0LT5nZXREaXJlY3RPZmZzZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7Ci0g
ICAgICAgIGlmICghaXNWYWxpZE9mZnNldChvZmZzZXQpKSB7CisgICAgICAgIGJvb2wgbmVlZFJl
Y3JlYXRlUHJvdG90eXBlID0gIWlzVmFsaWRPZmZzZXQob2Zmc2V0KTsKKyAgICAgICAgaWYgKG5l
ZWRSZWNyZWF0ZVByb3RvdHlwZSAmJiAhZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkpIHsK
ICAgICAgICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChl
eGVjKTsKICAgICAgICAgICAgIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuY29uc3RydWN0b3IsIHRoaXNPYmplY3QsIERvbnRFbnVtKTsKICAgICAgICAgICAg
IHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlw
ZSwgcHJvdG90eXBlLCBEb250RGVsZXRlIHwgRG9udEVudW0pOwpAQCAtMzcwLDcgKzM3Miw4IEBA
IGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiAgICAgICAgICAgICBBU1NFUlQoaXNWYWxpZE9mZnNl
dChvZmZzZXQpKTsKICAgICAgICAgfQogCi0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgYXR0cmlidXRlcywgdGhpc09iamVjdC0+Z2V0RGlyZWN0KG9mZnNldCksIG9mZnNldCk7Cisg
ICAgICAgIGlmICghZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkgfHwgKG5lZWRSZWNyZWF0
ZVByb3RvdHlwZSAmJiAhZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkpKQorICAgICAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBhdHRyaWJ1dGVzLCB0aGlzT2JqZWN0LT5nZXRE
aXJlY3Qob2Zmc2V0KSwgb2Zmc2V0KTsKICAgICB9CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKQEAgLTQ2OCwxNCArNDcxLDE4IEBA
IHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKCiBib29sIEpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGNl
bGwpOworICAgIAogICAgIC8vIEZvciBub24taG9zdCBmdW5jdGlvbnMsIGRvbid0IGxldCB0aGVz
ZSBwcm9wZXJ0aWVzIGJ5IGRlbGV0ZWQgLSBleGNlcHQgYnkgRGVmaW5lT3duUHJvcGVydHkuCi0g
ICAgaWYgKCF0aGlzT2JqZWN0LT5pc0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpICYmICFleGVjLT52
bSgpLmlzSW5EZWZpbmVPd25Qcm9wZXJ0eSgpCi0gICAgICAgICYmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cworICAgIGlmICghdGhpc09iamVjdC0+aXNI
b3N0T3JCdWlsdGluRnVuY3Rpb24oKSAmJiAhZXhlYy0+dm0oKS5pc0luRGVmaW5lT3duUHJvcGVy
dHkoKSkgeworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSB0aGlzT2Jq
ZWN0LT5qc0V4ZWN1dGFibGUoKTsKKyAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzCiAgICAgICAgICAgICB8fCBwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aAogICAgICAgICAgICAgfHwgcHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lCi0gICAgICAgICAgICB8fCBwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZQotICAgICAgICAgICAgfHwgcHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIpKQorICAgICAgICAgICAg
fHwgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlICYmICFl
eGVjdXRhYmxlLT5pc0Fycm93RnVuY3Rpb24oKSkKKyAgICAgICAgICAgIHx8IHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIAogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tb3RoZXJzLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLW90aGVycy5qcwppbmRleCAxNGNl
MGM2NThkM2EyZjc5MjI5ZGY0Zjg5MmNjZGExNTEzYzk0ZTU5Li44NjhjOTA5NjhmM2ZkNzU2OWVk
NDFiNzUwOTQzNDE0ZDE3N2VhMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tb3RoZXJzLmpzCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1vdGhlcnMuanMKQEAgLTE1LDMgKzE1
LDkgQEAgZm9yICh2YXIgaT0wO2k8MTAwMDA7aSsrKSB7CiAKICAgIHRlc3RDYXNlKHNpbXBsZUFy
cm93RnVuY3Rpb24uY29uc3RydWN0b3IgPT0gRnVuY3Rpb24sIHRydWUsICJFcnJvcjogTm90IGNv
cnJlY3QgcmVzdWx0IGZvciBjb25zdHJ1Y3RvciBtZXRob2Qgb2YgYXJyb3cgZnVuY3RpbyAgIG4i
KTsKIH0KKwordmFyIHJlc3VsdCAgPSAoKCkgPT4geworICB0cnkgeyBGdW5jdGlvbigiMCB8fCAo
KSA9PiAyIikoKTsgfSBjYXRjaChlKSB7IHJldHVybiB0cnVlOyB9Cit9KSgpOworCit0ZXN0Q2Fz
ZShyZXN1bHQsIHRydWUsICdFcnJybzogTm90IGNvcnJlY3QgcHJlY2VkZW5jZScpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLXBy
b3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5j
dGlvbi1wcm90b3R5cGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU2NDM3ZTMzY2JhNTBjOGU0OTFlMTBmN2Vl
NTc2YTdlNTJiM2E2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMKQEAgLTAsMCArMSwyMiBAQAor
dmFyIHRlc3RDYXNlID0gZnVuY3Rpb24gKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpIHsKKyAgICB0aHJvdyBtZXNzYWdlICsgIi4gRXhwZWN0
ZWQgJyIgKyBleHBlY3RlZCArICInLCBidXQgd2FzICciICsgYWN0dWFsICsgIiciOworICB9Cit9
OworCit2YXIgYWYxID0gKCkgPT4gIHt9OwordmFyIGFmMiA9IChhKSA9PiB7YSArIDF9OwordmFy
IGFmMyA9ICh4KSA9PiAgeCArIDE7CisKK25vSW5saW5lKGFmMSk7Citub0lubGluZShhZjIpOwor
bm9JbmxpbmUoYWYzKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgIHRl
c3RDYXNlKHR5cGVvZiBhZjEucHJvdG90eXBlLCAndW5kZWZpbmVkJywgIkVycm9yOiBOb3QgY29y
cmVjdCByZXN1bHQgZm9yIHByb3RvdHlwZSBvZiBhcnJvdyBmdW5jdGlvbiAjMSIpOworICB0ZXN0
Q2FzZSh0eXBlb2YgYWYyLnByb3RvdHlwZSwgJ3VuZGVmaW5lZCcsICJFcnJvcjogTm90IGNvcnJl
Y3QgcmVzdWx0IGZvciBwcm90b3R5cGUgb2YgYXJyb3cgZnVuY3Rpb24gIzIiKTsKKyAgdGVzdENh
c2UodHlwZW9mIGFmMy5wcm90b3R5cGUsICd1bmRlZmluZWQnLCAiRXJyb3I6IE5vdCBjb3JyZWN0
IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM1Iik7CisgIHRlc3RDYXNl
KGFmMS5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBjb3Jy
ZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICMzIik7CisgIHRlc3RD
YXNlKGFmMi5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBj
b3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM0Iik7CisgIHRl
c3RDYXNlKGFmMy5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5v
dCBjb3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM2Iik7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNTJhZjczNGQ0NGFiZjdkZDA4ODYzYmIwZGQ3ODkwZDg0MTA0Y2VmZi4uYTY4Njcw
ZWI5NzQxYmU5ZWU0ZWFhMzZjOTFjZmQ5NTUyMGVhMDc1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE1LTA4LTIwICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgor
CisgICAgICAgIFtFUzZdIEltcGxlbWVudCBFUzYgYXJyb3cgZnVuY3Rpb24gc3ludGF4LiBQcm90
b3R5cGUgb2YgYXJyb3cgZnVuY3Rpb24gc2hvdWxkIGJlIHVuZGVmaW5lZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzQyCisKKyAgICAgICAgQWRk
ZWQgdGVzdHMgb2YgcHJvdG90eXBlIHByb3BlcnR5IGZvciBhcnJvdyBmdW5jdGlvbgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvYXJyb3dmdW5j
dGlvbi1wcm90b3R5cGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9hcnJvd2Z1
bmN0aW9uLXByb3RvdHlwZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMv
YXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanM6IEFkZGVkLgorCiAyMDE1LTA4LTE5ICBTa2FjaGtv
diBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAgIEZ1bmN0aW9uLnBy
b3RvdHlwZS50b1N0cmluZyBpcyBpbmNvcnJlY3QgZm9yIEFycm93RnVuY3Rpb24KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMWY2ZDE3Yzk4ZjNmMmM4NWRkZWQyNzM5N2I2MDQzZWYwYTY2M2NiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3RzIGZvciBFUzYgYXJyb3cgZnVuY3Rpb24gcHJv
dG90eXBlIHByb3BlcnR5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisoKSA9PiAg
e30KK1BBU1MgdHlwZW9mIGFmMS5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYxLmhh
c093blByb3BlcnR5KCdwcm90b3R5cGUnKSBpcyBmYWxzZQorKGEpID0+IHthICsgMX0KK1BBU1Mg
dHlwZW9mIGFmMi5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYyLmhhc093blByb3Bl
cnR5KCdwcm90b3R5cGUnKSBpcyBmYWxzZQorKHgpID0+ICB4ICsgMQorUEFTUyB0eXBlb2YgYWYz
LnByb3RvdHlwZSBpcyAndW5kZWZpbmVkJworUEFTUyBhZjMuaGFzT3duUHJvcGVydHkoJ3Byb3Rv
dHlwZScpIGlzIGZhbHNlCithZjEucHJvdG90eXBlID0gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHgg
KyAxO30KK1BBU1MgdHlwZW9mIGFmMS5wcm90b3R5cGUgaXMgJ2Z1bmN0aW9uJworUEFTUyBhZjEu
cHJvdG90eXBlLnRvU3RyaW5nKCkgaXMgJ2Z1bmN0aW9uICh4KSB7IHJldHVybiB4ICsgMTt9Jwor
UEFTUyBhZjEuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIGlzIHRydWUKK2RlbGV0ZSBhZjEu
cHJvdG90eXBlCitQQVNTIHR5cGVvZiBhZjEucHJvdG90eXBlIGlzICd1bmRlZmluZWQnCitQQVNT
IGFmMS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvYXJy
b3dmdW5jdGlvbi1wcm90b3R5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWU1YmVkNmE1OTI5OTc4YmU2
ZjU4NGNmOTJiMDQzOWE5NGM0OTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
YXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5
cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzIGIvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0
MmE0MjY0MWEwOWQyYWZmNmYwMDhjMTdlZDhiNzI2ZWE4NzRiOTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMK
QEAgLTAsMCArMSwzNiBAQAorLy8gSW5zcGlyZWQgYnkgbW96aWxsYSB0ZXN0cworZGVzY3JpcHRp
b24oJ1Rlc3RzIGZvciBFUzYgYXJyb3cgZnVuY3Rpb24gcHJvdG90eXBlIHByb3BlcnR5Jyk7CisK
K3ZhciBhZjEgPSAoKSA9PiAge307CisKK2RlYnVnKCcoKSA9PiAge30nKTsKK3Nob3VsZEJlKCJ0
eXBlb2YgYWYxLnByb3RvdHlwZSIsICIndW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMS5oYXNP
d25Qcm9wZXJ0eSgncHJvdG90eXBlJykiLCAiZmFsc2UiKTsKKwordmFyIGFmMiA9IChhKSA9PiB7
YSArIDF9OworCitkZWJ1ZygnKGEpID0+IHthICsgMX0nKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYy
LnByb3RvdHlwZSIsICIndW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMi5oYXNPd25Qcm9wZXJ0
eSgncHJvdG90eXBlJykiLCAiZmFsc2UiKTsKKwordmFyIGFmMyA9ICh4KSA9PiAgeCArIDE7CisK
K2RlYnVnKCcoeCkgPT4gIHggKyAxJyk7CitzaG91bGRCZSgidHlwZW9mIGFmMy5wcm90b3R5cGUi
LCAiJ3VuZGVmaW5lZCciKTsKK3Nob3VsZEJlKCJhZjMuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlw
ZScpIiwgImZhbHNlIik7CisKKworYWYxLnByb3RvdHlwZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVy
biB4ICsgMTt9OworCitkZWJ1ZygnYWYxLnByb3RvdHlwZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVy
biB4ICsgMTt9Jyk7CitzaG91bGRCZSgidHlwZW9mIGFmMS5wcm90b3R5cGUiLCAiJ2Z1bmN0aW9u
JyIpOworc2hvdWxkQmUoImFmMS5wcm90b3R5cGUudG9TdHJpbmcoKSIsICInZnVuY3Rpb24gKHgp
IHsgcmV0dXJuIHggKyAxO30nIik7CitzaG91bGRCZSgiYWYxLmhhc093blByb3BlcnR5KCdwcm90
b3R5cGUnKSIsICJ0cnVlIik7CisKK2RlbGV0ZSBhZjEucHJvdG90eXBlOworCitkZWJ1ZygnZGVs
ZXRlIGFmMS5wcm90b3R5cGUnKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYxLnByb3RvdHlwZSIsICIn
dW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJyki
LCAiZmFsc2UiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259372</attachid>
            <date>2015-08-19 08:59:25 -0700</date>
            <delta_ts>2015-08-20 01:03:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147742-20150819185922.patch</filename>
            <type>text/plain</type>
            <size>11503</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZTBmZGQzZjQ3NTUyNDMyZTI4NDUwMWYzZWJlZTEyMGQ3MTA4NTAxLi45OWJjMDA1M2M1M2YyZWMy
MmY5OTc0OTU0MTlhNTI3MTI4NGU3YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNS0wOC0yMCBBbGVrc2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IGFycm93IGZ1bmN0aW9uIHN5
bnRheC4gUHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uIHNob3VsZCBiZSB1bmRlZmluZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc0MgorCisg
ICAgICAgIEFkZGVkIGNvcnJlY3Qgc3VwcG9ydCBvZiBwcm90b3R5cGUgcHJvcGVydHkgZm9yIGFy
cm93IGZ1bmN0aW9uLiBBcnJvdyBmdW5jdGlvbiBkb2VzbuKAmXQgaGF2ZSBvd24gcHJvdG90eXBl
IHByb3BlcnR5LCAKKyAgICAgICAgc28gKCgpID0+IHt9KS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90
eXBlJykgPT09IGZhbHNlIAorCisKKyAgICAgICAgKiBydW50aW1lL0pTQXJyb3dGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OkpTQXJyb3dGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLW90aGVycy5qczoKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanM6IEFkZGVkLgorCiAyMDE1LTA4LTE5IEFs
ZWtzYW5kciBTa2FjaGtvdiAgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZd
IEFycm93IGZ1bmN0aW9uIHN5bnRheC4gQXJyb3cgZnVuY3Rpb24gc3BlY2lmaWMgZmVhdHVyZXMu
IEltcGxlbWVudCBjb3JyZWN0IHRvU3RyaW5nIG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyb3dGdW5jdGlvbi5jcHAKaW5kZXggZTc2MDIzMDdkYWQ5YmEz
MWVmZGI4YzU5NWNkMTEzMjVkMGYwZDRmOC4uNjY4OWY1ZDY0MDZlMzM4MjA4Y2I3YzA4ZmE2ZGYx
Y2E1YmMzZDM5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJvd0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cm93RnVuY3Rpb24uY3BwCkBAIC02NCw2ICs2NCwxMiBAQCBKU0Fycm93RnVuY3Rpb24qIEpTQXJy
b3dGdW5jdGlvbjo6Y3JlYXRlV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludChW
TQogICAgIEFTU0VSVChleGVjdXRhYmxlLT5zaW5nbGV0b25GdW5jdGlvbigpLT5oYXNCZWVuSW52
YWxpZGF0ZWQoKSk7CiAgICAgcmV0dXJuIGNyZWF0ZSh2bSwgZXhlY3V0YWJsZSwgc2NvcGUsIGJv
dW5kVGhpcywgYm91bmRBcmdzKTsKIH0KKyAgICAKK3ZvaWQgSlNBcnJvd0Z1bmN0aW9uOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAg
IHJlbW92ZURpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsKK30KIAogdm9p
ZCBKU0Fycm93RnVuY3Rpb246OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyb3dGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJv
d0Z1bmN0aW9uLmgKaW5kZXggOTNkNjc3Yzk0NWZlMDIxZTFmYjQyZDI3YTI2NGFlYWEwM2UxNTNk
OS4uYWE2NWZjNmYyOGFmNzdhNWRmODgzOTkzMWU3MDY5NTZhMjkxZjA4YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmgKQEAgLTk0LDYgKzk0
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAKIHByaXZhdGU6CiAgICAgSlNBcnJvd0Z1bmN0aW9u
KFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgSlNTY29wZSosIEpTVmFsdWUsIEpTVmFsdWUpOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKICAgICAKICAgICBmcmllbmQgY2xhc3MgTExJ
bnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwZjczNTRlZDdhNmJkMWUzZTY0YjE4NTg1OWMxNGYxNTAz
MjZkNDU4Li43ZTQyOTQ3YjgxMDAxMjk4NWJlMmFkNGVlMDJjYWE2MjMyNTM3YzU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzU5LDEwICsz
NTksMTIgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU4KICAgICAgICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
KSB7CisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IHRoaXNPYmplY3Qt
PmpzRXhlY3V0YWJsZSgpOwogICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgICAgICB1
bnNpZ25lZCBhdHRyaWJ1dGVzOwogICAgICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSB0aGlz
T2JqZWN0LT5nZXREaXJlY3RPZmZzZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7Ci0g
ICAgICAgIGlmICghaXNWYWxpZE9mZnNldChvZmZzZXQpKSB7CisgICAgICAgIGJvb2wgbmVlZFJl
Y3JlYXRlUHJvdG90eXBlID0gIWlzVmFsaWRPZmZzZXQob2Zmc2V0KTsKKyAgICAgICAgaWYgKG5l
ZWRSZWNyZWF0ZVByb3RvdHlwZSAmJiAhZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkpIHsK
ICAgICAgICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChl
eGVjKTsKICAgICAgICAgICAgIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuY29uc3RydWN0b3IsIHRoaXNPYmplY3QsIERvbnRFbnVtKTsKICAgICAgICAgICAg
IHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlw
ZSwgcHJvdG90eXBlLCBEb250RGVsZXRlIHwgRG9udEVudW0pOwpAQCAtMzcwLDcgKzM3Miw4IEBA
IGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiAgICAgICAgICAgICBBU1NFUlQoaXNWYWxpZE9mZnNl
dChvZmZzZXQpKTsKICAgICAgICAgfQogCi0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgYXR0cmlidXRlcywgdGhpc09iamVjdC0+Z2V0RGlyZWN0KG9mZnNldCksIG9mZnNldCk7Cisg
ICAgICAgIGlmICghZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkgfHwgKG5lZWRSZWNyZWF0
ZVByb3RvdHlwZSAmJiAhZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkpKQorICAgICAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBhdHRyaWJ1dGVzLCB0aGlzT2JqZWN0LT5nZXRE
aXJlY3Qob2Zmc2V0KSwgb2Zmc2V0KTsKICAgICB9CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKQEAgLTQ2OCwxNCArNDcxLDE4IEBA
IHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKCiBib29sIEpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGNl
bGwpOworICAgIAogICAgIC8vIEZvciBub24taG9zdCBmdW5jdGlvbnMsIGRvbid0IGxldCB0aGVz
ZSBwcm9wZXJ0aWVzIGJ5IGRlbGV0ZWQgLSBleGNlcHQgYnkgRGVmaW5lT3duUHJvcGVydHkuCi0g
ICAgaWYgKCF0aGlzT2JqZWN0LT5pc0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpICYmICFleGVjLT52
bSgpLmlzSW5EZWZpbmVPd25Qcm9wZXJ0eSgpCi0gICAgICAgICYmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cworICAgIGlmICghdGhpc09iamVjdC0+aXNI
b3N0T3JCdWlsdGluRnVuY3Rpb24oKSAmJiAhZXhlYy0+dm0oKS5pc0luRGVmaW5lT3duUHJvcGVy
dHkoKSkgeworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSB0aGlzT2Jq
ZWN0LT5qc0V4ZWN1dGFibGUoKTsKKyAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzCiAgICAgICAgICAgICB8fCBwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aAogICAgICAgICAgICAgfHwgcHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lCi0gICAgICAgICAgICB8fCBwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZQotICAgICAgICAgICAgfHwgcHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIpKQorICAgICAgICAgICAg
fHwgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlICYmICFl
eGVjdXRhYmxlLT5pc0Fycm93RnVuY3Rpb24oKSkKKyAgICAgICAgICAgIHx8IHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIAogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tb3RoZXJzLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLW90aGVycy5qcwppbmRleCAxNGNl
MGM2NThkM2EyZjc5MjI5ZGY0Zjg5MmNjZGExNTEzYzk0ZTU5Li44NjhjOTA5NjhmM2ZkNzU2OWVk
NDFiNzUwOTQzNDE0ZDE3N2VhMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tb3RoZXJzLmpzCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1vdGhlcnMuanMKQEAgLTE1LDMgKzE1
LDkgQEAgZm9yICh2YXIgaT0wO2k8MTAwMDA7aSsrKSB7CiAKICAgIHRlc3RDYXNlKHNpbXBsZUFy
cm93RnVuY3Rpb24uY29uc3RydWN0b3IgPT0gRnVuY3Rpb24sIHRydWUsICJFcnJvcjogTm90IGNv
cnJlY3QgcmVzdWx0IGZvciBjb25zdHJ1Y3RvciBtZXRob2Qgb2YgYXJyb3cgZnVuY3RpbyAgIG4i
KTsKIH0KKwordmFyIHJlc3VsdCAgPSAoKCkgPT4geworICB0cnkgeyBGdW5jdGlvbigiMCB8fCAo
KSA9PiAyIikoKTsgfSBjYXRjaChlKSB7IHJldHVybiB0cnVlOyB9Cit9KSgpOworCit0ZXN0Q2Fz
ZShyZXN1bHQsIHRydWUsICdFcnJybzogTm90IGNvcnJlY3QgcHJlY2VkZW5jZScpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLXBy
b3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5j
dGlvbi1wcm90b3R5cGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU2NDM3ZTMzY2JhNTBjOGU0OTFlMTBmN2Vl
NTc2YTdlNTJiM2E2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMKQEAgLTAsMCArMSwyMiBAQAor
dmFyIHRlc3RDYXNlID0gZnVuY3Rpb24gKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpIHsKKyAgICB0aHJvdyBtZXNzYWdlICsgIi4gRXhwZWN0
ZWQgJyIgKyBleHBlY3RlZCArICInLCBidXQgd2FzICciICsgYWN0dWFsICsgIiciOworICB9Cit9
OworCit2YXIgYWYxID0gKCkgPT4gIHt9OwordmFyIGFmMiA9IChhKSA9PiB7YSArIDF9OwordmFy
IGFmMyA9ICh4KSA9PiAgeCArIDE7CisKK25vSW5saW5lKGFmMSk7Citub0lubGluZShhZjIpOwor
bm9JbmxpbmUoYWYzKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgIHRl
c3RDYXNlKHR5cGVvZiBhZjEucHJvdG90eXBlLCAndW5kZWZpbmVkJywgIkVycm9yOiBOb3QgY29y
cmVjdCByZXN1bHQgZm9yIHByb3RvdHlwZSBvZiBhcnJvdyBmdW5jdGlvbiAjMSIpOworICB0ZXN0
Q2FzZSh0eXBlb2YgYWYyLnByb3RvdHlwZSwgJ3VuZGVmaW5lZCcsICJFcnJvcjogTm90IGNvcnJl
Y3QgcmVzdWx0IGZvciBwcm90b3R5cGUgb2YgYXJyb3cgZnVuY3Rpb24gIzIiKTsKKyAgdGVzdENh
c2UodHlwZW9mIGFmMy5wcm90b3R5cGUsICd1bmRlZmluZWQnLCAiRXJyb3I6IE5vdCBjb3JyZWN0
IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM1Iik7CisgIHRlc3RDYXNl
KGFmMS5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBjb3Jy
ZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICMzIik7CisgIHRlc3RD
YXNlKGFmMi5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBj
b3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM0Iik7CisgIHRl
c3RDYXNlKGFmMy5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5v
dCBjb3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM2Iik7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZmI3MjZkOTdiZWJhMjcxYTYwY2E3MjgyNDdjMTE5NmNhZjM2MDBmMy4uMmI0NTky
MDI4MmUxZTM4ZWRlYWUxNTdhZjdhNGE1YjZlYWM0NTFlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE1LTA4LTIwICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgor
CisgICAgICAgIFtFUzZdIEltcGxlbWVudCBFUzYgYXJyb3cgZnVuY3Rpb24gc3ludGF4LiBQcm90
b3R5cGUgb2YgYXJyb3cgZnVuY3Rpb24gc2hvdWxkIGJlIHVuZGVmaW5lZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzQyCisKKyAgICAgICAgQWRk
ZWQgdGVzdHMgb2YgcHJvdG90eXBlIHByb3BlcnR5IGZvciBhcnJvdyBmdW5jdGlvbgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvYXJyb3dmdW5j
dGlvbi1wcm90b3R5cGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9hcnJvd2Z1
bmN0aW9uLXByb3RvdHlwZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMv
YXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanM6IEFkZGVkLgorCiAyMDE1LTA4LTE5ICBTa2FjaGtv
diBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAgIEZ1bmN0aW9uLnBy
b3RvdHlwZS50b1N0cmluZyBpcyBpbmNvcnJlY3QgZm9yIEFycm93RnVuY3Rpb24KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMWY2ZDE3Yzk4ZjNmMmM4NWRkZWQyNzM5N2I2MDQzZWYwYTY2M2NiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3RzIGZvciBFUzYgYXJyb3cgZnVuY3Rpb24gcHJv
dG90eXBlIHByb3BlcnR5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisoKSA9PiAg
e30KK1BBU1MgdHlwZW9mIGFmMS5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYxLmhh
c093blByb3BlcnR5KCdwcm90b3R5cGUnKSBpcyBmYWxzZQorKGEpID0+IHthICsgMX0KK1BBU1Mg
dHlwZW9mIGFmMi5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYyLmhhc093blByb3Bl
cnR5KCdwcm90b3R5cGUnKSBpcyBmYWxzZQorKHgpID0+ICB4ICsgMQorUEFTUyB0eXBlb2YgYWYz
LnByb3RvdHlwZSBpcyAndW5kZWZpbmVkJworUEFTUyBhZjMuaGFzT3duUHJvcGVydHkoJ3Byb3Rv
dHlwZScpIGlzIGZhbHNlCithZjEucHJvdG90eXBlID0gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHgg
KyAxO30KK1BBU1MgdHlwZW9mIGFmMS5wcm90b3R5cGUgaXMgJ2Z1bmN0aW9uJworUEFTUyBhZjEu
cHJvdG90eXBlLnRvU3RyaW5nKCkgaXMgJ2Z1bmN0aW9uICh4KSB7IHJldHVybiB4ICsgMTt9Jwor
UEFTUyBhZjEuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIGlzIHRydWUKK2RlbGV0ZSBhZjEu
cHJvdG90eXBlCitQQVNTIHR5cGVvZiBhZjEucHJvdG90eXBlIGlzICd1bmRlZmluZWQnCitQQVNT
IGFmMS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvYXJy
b3dmdW5jdGlvbi1wcm90b3R5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWU1YmVkNmE1OTI5OTc4YmU2
ZjU4NGNmOTJiMDQzOWE5NGM0OTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
YXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5
cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzIGIvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0
MmE0MjY0MWEwOWQyYWZmNmYwMDhjMTdlZDhiNzI2ZWE4NzRiOTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMK
QEAgLTAsMCArMSwzNiBAQAorLy8gSW5zcGlyZWQgYnkgbW96aWxsYSB0ZXN0cworZGVzY3JpcHRp
b24oJ1Rlc3RzIGZvciBFUzYgYXJyb3cgZnVuY3Rpb24gcHJvdG90eXBlIHByb3BlcnR5Jyk7CisK
K3ZhciBhZjEgPSAoKSA9PiAge307CisKK2RlYnVnKCcoKSA9PiAge30nKTsKK3Nob3VsZEJlKCJ0
eXBlb2YgYWYxLnByb3RvdHlwZSIsICIndW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMS5oYXNP
d25Qcm9wZXJ0eSgncHJvdG90eXBlJykiLCAiZmFsc2UiKTsKKwordmFyIGFmMiA9IChhKSA9PiB7
YSArIDF9OworCitkZWJ1ZygnKGEpID0+IHthICsgMX0nKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYy
LnByb3RvdHlwZSIsICIndW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMi5oYXNPd25Qcm9wZXJ0
eSgncHJvdG90eXBlJykiLCAiZmFsc2UiKTsKKwordmFyIGFmMyA9ICh4KSA9PiAgeCArIDE7CisK
K2RlYnVnKCcoeCkgPT4gIHggKyAxJyk7CitzaG91bGRCZSgidHlwZW9mIGFmMy5wcm90b3R5cGUi
LCAiJ3VuZGVmaW5lZCciKTsKK3Nob3VsZEJlKCJhZjMuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlw
ZScpIiwgImZhbHNlIik7CisKKworYWYxLnByb3RvdHlwZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVy
biB4ICsgMTt9OworCitkZWJ1ZygnYWYxLnByb3RvdHlwZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVy
biB4ICsgMTt9Jyk7CitzaG91bGRCZSgidHlwZW9mIGFmMS5wcm90b3R5cGUiLCAiJ2Z1bmN0aW9u
JyIpOworc2hvdWxkQmUoImFmMS5wcm90b3R5cGUudG9TdHJpbmcoKSIsICInZnVuY3Rpb24gKHgp
IHsgcmV0dXJuIHggKyAxO30nIik7CitzaG91bGRCZSgiYWYxLmhhc093blByb3BlcnR5KCdwcm90
b3R5cGUnKSIsICJ0cnVlIik7CisKK2RlbGV0ZSBhZjEucHJvdG90eXBlOworCitkZWJ1ZygnZGVs
ZXRlIGFmMS5wcm90b3R5cGUnKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYxLnByb3RvdHlwZSIsICIn
dW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJyki
LCAiZmFsc2UiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259456</attachid>
            <date>2015-08-20 01:03:28 -0700</date>
            <delta_ts>2015-08-26 03:58:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147742-20150820110323.patch</filename>
            <type>text/plain</type>
            <size>11551</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZTc2MTQ5MWYyMjA4NWQ0NDI1ZjIwMDFhODFiZmYzYTgzODUyYjBjLi45ZmZmNzczMjc5ODYyMjlm
ODZkMGZlY2YwNzRiMjZjNTc1MzI5NGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNS0wOC0yMCBBbGVrc2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IGFycm93IGZ1bmN0aW9uIHN5
bnRheC4gUHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uIHNob3VsZCBiZSB1bmRlZmluZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGNvcnJl
Y3Qgc3VwcG9ydCBvZiBwcm90b3R5cGUgcHJvcGVydHkgZm9yIGFycm93IGZ1bmN0aW9uLiBBcnJv
dyBmdW5jdGlvbiBkb2VzbuKAmXQgaGF2ZSBvd24gcHJvdG90eXBlIHByb3BlcnR5LCAKKyAgICAg
ICAgc28gKCgpID0+IHt9KS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykgPT09IGZhbHNlIAor
CisKKyAgICAgICAgKiBydW50aW1lL0pTQXJyb3dGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6
OkpTQXJyb3dGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNB
cnJvd0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6
SlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hcnJv
d2Z1bmN0aW9uLW90aGVycy5qczoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlv
bi1wcm90b3R5cGUuanM6IEFkZGVkLgorCiAyMDE1LTA4LTE4ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTGlua3MgZm9yIHJ1
bGVzIGluIDxzdHlsZT4gYXJlIGluY29ycmVjdCwgZG8gbm90IGFjY291bnQgZm9yIDxzdHlsZT4g
b2Zmc2V0IGluIHRoZSBkb2N1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJvd0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyb3dGdW5jdGlvbi5jcHAKaW5kZXggOTUxYzI2MGUxNmEyMGUyYjg0MDlhZWJiOWEy
ZTU5ZGI5YjNkZjQ4Ni4uNTBhMDZjNDRjMDAwOTM1NWFkOTVjMmYyZTllNTk5OWY3YTk5YzkyNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJvd0Z1bmN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fycm93RnVuY3Rpb24u
Y3BwCkBAIC02Myw2ICs2MywxMiBAQCBKU0Fycm93RnVuY3Rpb24qIEpTQXJyb3dGdW5jdGlvbjo6
Y3JlYXRlV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludChWTQogICAgIEFTU0VS
VChleGVjdXRhYmxlLT5zaW5nbGV0b25GdW5jdGlvbigpLT5oYXNCZWVuSW52YWxpZGF0ZWQoKSk7
CiAgICAgcmV0dXJuIGNyZWF0ZSh2bSwgZXhlY3V0YWJsZSwgc2NvcGUsIGJvdW5kVGhpcyk7CiB9
CisgICAgCit2b2lkIEpTQXJyb3dGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQorewor
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICByZW1vdmVEaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSk7Cit9CiAKIHZvaWQgSlNBcnJvd0Z1bmN0aW9uOjp2aXNp
dENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fycm93RnVuY3Rpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyb3dGdW5jdGlvbi5oCmluZGV4IDdmNTZm
NjhlZmVlZGQ4MjMxYTM1YjJmYzI0OWZkODFhYzk3ZjViMjMuLjI5MGQ4ZjVhZDNjMTVjYmNlNmM1
NTNjNWMzZDkxZDIyMzJhYmIyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyb3dGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyb3dGdW5jdGlvbi5oCkBAIC04OCw2ICs4OCw4IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgCiBwcml2YXRlOgogICAgIEpTQXJyb3dGdW5jdGlvbihWTSYsIEZ1bmN0aW9uRXhlY3V0YWJs
ZSosIEpTU2NvcGUqLCBKU1ZhbHVlKTsKKworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsK
ICAgICAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwZjczNTRl
ZDdhNmJkMWUzZTY0YjE4NTg1OWMxNGYxNTAzMjZkNDU4Li43ZTQyOTQ3YjgxMDAxMjk4NWJlMmFk
NGVlMDJjYWE2MjMyNTM3YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcApAQCAtMzU5LDEwICszNTksMTIgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU4KICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlKSB7CisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJs
ZSogZXhlY3V0YWJsZSA9IHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpOwogICAgICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwogICAgICAgICBQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQgPSB0aGlzT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQodm0sIHBy
b3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7Ci0gICAgICAgIGlmICghaXNWYWxpZE9mZnNldChvZmZz
ZXQpKSB7CisgICAgICAgIGJvb2wgbmVlZFJlY3JlYXRlUHJvdG90eXBlID0gIWlzVmFsaWRPZmZz
ZXQob2Zmc2V0KTsKKyAgICAgICAgaWYgKG5lZWRSZWNyZWF0ZVByb3RvdHlwZSAmJiAhZXhlY3V0
YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkpIHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBwcm90b3R5
cGUgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKICAgICAgICAgICAgIHByb3RvdHlwZS0+
cHV0RGlyZWN0KHZtLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0b3IsIHRoaXNPYmpl
Y3QsIERvbnRFbnVtKTsKICAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RGVsZXRlIHwgRG9u
dEVudW0pOwpAQCAtMzcwLDcgKzM3Miw4IEBAIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiAgICAg
ICAgICAgICBBU1NFUlQoaXNWYWxpZE9mZnNldChvZmZzZXQpKTsKICAgICAgICAgfQogCi0gICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgYXR0cmlidXRlcywgdGhpc09iamVjdC0+Z2V0
RGlyZWN0KG9mZnNldCksIG9mZnNldCk7CisgICAgICAgIGlmICghZXhlY3V0YWJsZS0+aXNBcnJv
d0Z1bmN0aW9uKCkgfHwgKG5lZWRSZWNyZWF0ZVByb3RvdHlwZSAmJiAhZXhlY3V0YWJsZS0+aXNB
cnJvd0Z1bmN0aW9uKCkpKQorICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBh
dHRyaWJ1dGVzLCB0aGlzT2JqZWN0LT5nZXREaXJlY3Qob2Zmc2V0KSwgb2Zmc2V0KTsKICAgICB9
CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVu
dHMpIHsKQEAgLTQ2OCwxNCArNDcxLDE4IEBAIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKCiBib29s
IEpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGNlbGwpOworICAgIAogICAgIC8vIEZvciBub24taG9z
dCBmdW5jdGlvbnMsIGRvbid0IGxldCB0aGVzZSBwcm9wZXJ0aWVzIGJ5IGRlbGV0ZWQgLSBleGNl
cHQgYnkgRGVmaW5lT3duUHJvcGVydHkuCi0gICAgaWYgKCF0aGlzT2JqZWN0LT5pc0hvc3RPckJ1
aWx0aW5GdW5jdGlvbigpICYmICFleGVjLT52bSgpLmlzSW5EZWZpbmVPd25Qcm9wZXJ0eSgpCi0g
ICAgICAgICYmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50
cworICAgIGlmICghdGhpc09iamVjdC0+aXNIb3N0T3JCdWlsdGluRnVuY3Rpb24oKSAmJiAhZXhl
Yy0+dm0oKS5pc0luRGVmaW5lT3duUHJvcGVydHkoKSkgeworICAgICAgICBGdW5jdGlvbkV4ZWN1
dGFibGUqIGV4ZWN1dGFibGUgPSB0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKTsKKyAgICAgICAg
aWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzCiAgICAg
ICAgICAgICB8fCBwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aAog
ICAgICAgICAgICAgfHwgcHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1l
Ci0gICAgICAgICAgICB8fCBwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZQotICAgICAgICAgICAgfHwgcHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5jYWxsZXIpKQorICAgICAgICAgICAgfHwgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkucHJvdG90eXBlICYmICFleGVjdXRhYmxlLT5pc0Fycm93RnVuY3Rpb24oKSkK
KyAgICAgICAgICAgIHx8IHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2Fs
bGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAogICAgIHJldHVybiBCYXNl
OjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rp
b24tb3RoZXJzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1
bmN0aW9uLW90aGVycy5qcwppbmRleCAxNGNlMGM2NThkM2EyZjc5MjI5ZGY0Zjg5MmNjZGExNTEz
Yzk0ZTU5Li44NjhjOTA5NjhmM2ZkNzU2OWVkNDFiNzUwOTQzNDE0ZDE3N2VhMjkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tb3Ro
ZXJzLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5j
dGlvbi1vdGhlcnMuanMKQEAgLTE1LDMgKzE1LDkgQEAgZm9yICh2YXIgaT0wO2k8MTAwMDA7aSsr
KSB7CiAKICAgIHRlc3RDYXNlKHNpbXBsZUFycm93RnVuY3Rpb24uY29uc3RydWN0b3IgPT0gRnVu
Y3Rpb24sIHRydWUsICJFcnJvcjogTm90IGNvcnJlY3QgcmVzdWx0IGZvciBjb25zdHJ1Y3RvciBt
ZXRob2Qgb2YgYXJyb3cgZnVuY3RpbyAgIG4iKTsKIH0KKwordmFyIHJlc3VsdCAgPSAoKCkgPT4g
eworICB0cnkgeyBGdW5jdGlvbigiMCB8fCAoKSA9PiAyIikoKTsgfSBjYXRjaChlKSB7IHJldHVy
biB0cnVlOyB9Cit9KSgpOworCit0ZXN0Q2FzZShyZXN1bHQsIHRydWUsICdFcnJybzogTm90IGNv
cnJlY3QgcHJlY2VkZW5jZScpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDU2NDM3ZTMzY2JhNTBjOGU0OTFlMTBmN2VlNTc2YTdlNTJiM2E2NQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1wcm90
b3R5cGUuanMKQEAgLTAsMCArMSwyMiBAQAordmFyIHRlc3RDYXNlID0gZnVuY3Rpb24gKGFjdHVh
bCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpIHsKKyAg
ICB0aHJvdyBtZXNzYWdlICsgIi4gRXhwZWN0ZWQgJyIgKyBleHBlY3RlZCArICInLCBidXQgd2Fz
ICciICsgYWN0dWFsICsgIiciOworICB9Cit9OworCit2YXIgYWYxID0gKCkgPT4gIHt9OwordmFy
IGFmMiA9IChhKSA9PiB7YSArIDF9OwordmFyIGFmMyA9ICh4KSA9PiAgeCArIDE7CisKK25vSW5s
aW5lKGFmMSk7Citub0lubGluZShhZjIpOworbm9JbmxpbmUoYWYzKTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgIHRlc3RDYXNlKHR5cGVvZiBhZjEucHJvdG90eXBlLCAn
dW5kZWZpbmVkJywgIkVycm9yOiBOb3QgY29ycmVjdCByZXN1bHQgZm9yIHByb3RvdHlwZSBvZiBh
cnJvdyBmdW5jdGlvbiAjMSIpOworICB0ZXN0Q2FzZSh0eXBlb2YgYWYyLnByb3RvdHlwZSwgJ3Vu
ZGVmaW5lZCcsICJFcnJvcjogTm90IGNvcnJlY3QgcmVzdWx0IGZvciBwcm90b3R5cGUgb2YgYXJy
b3cgZnVuY3Rpb24gIzIiKTsKKyAgdGVzdENhc2UodHlwZW9mIGFmMy5wcm90b3R5cGUsICd1bmRl
ZmluZWQnLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFycm93
IGZ1bmN0aW9uICM1Iik7CisgIHRlc3RDYXNlKGFmMS5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBl
IiksIGZhbHNlLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9mIGFy
cm93IGZ1bmN0aW9uICMzIik7CisgIHRlc3RDYXNlKGFmMi5oYXNPd25Qcm9wZXJ0eSgicHJvdG90
eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBlIG9m
IGFycm93IGZ1bmN0aW9uICM0Iik7CisgIHRlc3RDYXNlKGFmMy5oYXNPd25Qcm9wZXJ0eSgicHJv
dG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBl
IG9mIGFycm93IGZ1bmN0aW9uICM2Iik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTVkY2I4NzQ2MDAwZWZiMTUzMjQ3
M2VkOTQ3MTMwYjIxMDg3YzA2Zi4uNjU0MzMxMTYyMWFiMmY2NGM0ZDRjMjg0YjZmYWMyN2FiMDVj
N2RjZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTIwICBTa2FjaGtvdiBPbGVrc2Fu
ZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEltcGxlbWVudCBFUzYg
YXJyb3cgZnVuY3Rpb24gc3ludGF4LiBQcm90b3R5cGUgb2YgYXJyb3cgZnVuY3Rpb24gc2hvdWxk
IGJlIHVuZGVmaW5lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgdGVzdHMgb2YgcHJvdG90eXBlIHByb3BlcnR5IGZvciBhcnJvdyBmdW5jdGlv
bi4KKworICAgICAgICAqIGpzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzOiBB
ZGRlZC4KKwogMjAxNS0wOC0xOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDb2NvYV0gUHVuY3R1YXRpb24gbmVhciBIaW5kaSB0ZXh0IGlzIGdh
cmJsZWQgd2hlbiBzdHlsZWQgd2l0aCB0aGUgc3lzdGVtIGZvbnQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MWY2ZDE3Yzk4ZjNmMmM4NWRkZWQyNzM5N2I2MDQzZWYwYTY2M2NiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjUgQEAKK1Rlc3RzIGZvciBFUzYgYXJyb3cgZnVuY3Rpb24gcHJvdG90eXBlIHBy
b3BlcnR5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisoKSA9PiAge30KK1BBU1Mg
dHlwZW9mIGFmMS5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYxLmhhc093blByb3Bl
cnR5KCdwcm90b3R5cGUnKSBpcyBmYWxzZQorKGEpID0+IHthICsgMX0KK1BBU1MgdHlwZW9mIGFm
Mi5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYyLmhhc093blByb3BlcnR5KCdwcm90
b3R5cGUnKSBpcyBmYWxzZQorKHgpID0+ICB4ICsgMQorUEFTUyB0eXBlb2YgYWYzLnByb3RvdHlw
ZSBpcyAndW5kZWZpbmVkJworUEFTUyBhZjMuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIGlz
IGZhbHNlCithZjEucHJvdG90eXBlID0gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHggKyAxO30KK1BB
U1MgdHlwZW9mIGFmMS5wcm90b3R5cGUgaXMgJ2Z1bmN0aW9uJworUEFTUyBhZjEucHJvdG90eXBl
LnRvU3RyaW5nKCkgaXMgJ2Z1bmN0aW9uICh4KSB7IHJldHVybiB4ICsgMTt9JworUEFTUyBhZjEu
aGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIGlzIHRydWUKK2RlbGV0ZSBhZjEucHJvdG90eXBl
CitQQVNTIHR5cGVvZiBhZjEucHJvdG90eXBlIGlzICd1bmRlZmluZWQnCitQQVNTIGFmMS5oYXNP
d25Qcm9wZXJ0eSgncHJvdG90eXBlJykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9h
cnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvYXJyb3dmdW5jdGlv
bi1wcm90b3R5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWU1YmVkNmE1OTI5OTc4YmU2ZjU4NGNmOTJi
MDQzOWE5NGM0OTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJyb3dmdW5j
dGlvbi1wcm90b3R5cGUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0MmE0MjY0MWEw
OWQyYWZmNmYwMDhjMTdlZDhiNzI2ZWE4NzRiOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMKQEAgLTAsMCAr
MSwzNiBAQAorLy8gSW5zcGlyZWQgYnkgbW96aWxsYSB0ZXN0cworZGVzY3JpcHRpb24oJ1Rlc3Rz
IGZvciBFUzYgYXJyb3cgZnVuY3Rpb24gcHJvdG90eXBlIHByb3BlcnR5Jyk7CisKK3ZhciBhZjEg
PSAoKSA9PiAge307CisKK2RlYnVnKCcoKSA9PiAge30nKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYx
LnByb3RvdHlwZSIsICIndW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMS5oYXNPd25Qcm9wZXJ0
eSgncHJvdG90eXBlJykiLCAiZmFsc2UiKTsKKwordmFyIGFmMiA9IChhKSA9PiB7YSArIDF9Owor
CitkZWJ1ZygnKGEpID0+IHthICsgMX0nKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYyLnByb3RvdHlw
ZSIsICIndW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMi5oYXNPd25Qcm9wZXJ0eSgncHJvdG90
eXBlJykiLCAiZmFsc2UiKTsKKwordmFyIGFmMyA9ICh4KSA9PiAgeCArIDE7CisKK2RlYnVnKCco
eCkgPT4gIHggKyAxJyk7CitzaG91bGRCZSgidHlwZW9mIGFmMy5wcm90b3R5cGUiLCAiJ3VuZGVm
aW5lZCciKTsKK3Nob3VsZEJlKCJhZjMuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIiwgImZh
bHNlIik7CisKKworYWYxLnByb3RvdHlwZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICsgMTt9
OworCitkZWJ1ZygnYWYxLnByb3RvdHlwZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICsgMTt9
Jyk7CitzaG91bGRCZSgidHlwZW9mIGFmMS5wcm90b3R5cGUiLCAiJ2Z1bmN0aW9uJyIpOworc2hv
dWxkQmUoImFmMS5wcm90b3R5cGUudG9TdHJpbmcoKSIsICInZnVuY3Rpb24gKHgpIHsgcmV0dXJu
IHggKyAxO30nIik7CitzaG91bGRCZSgiYWYxLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSIs
ICJ0cnVlIik7CisKK2RlbGV0ZSBhZjEucHJvdG90eXBlOworCitkZWJ1ZygnZGVsZXRlIGFmMS5w
cm90b3R5cGUnKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYxLnByb3RvdHlwZSIsICIndW5kZWZpbmVk
JyIpOworc2hvdWxkQmUoImFmMS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykiLCAiZmFsc2Ui
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259943</attachid>
            <date>2015-08-26 03:58:13 -0700</date>
            <delta_ts>2015-09-03 15:38:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147742-20150826135801.patch</filename>
            <type>text/plain</type>
            <size>9559</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZTc2MTQ5MWYyMjA4NWQ0NDI1ZjIwMDFhODFiZmYzYTgzODUyYjBjLi4zZjg0MjNlYWUwY2NiMzlk
YWY4YWM4NGVjNDI4YjRhZjI2Mjc2YjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNS0wOC0yNiBBbGVrc2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IGFycm93IGZ1bmN0aW9uIHN5
bnRheC4gUHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uIHNob3VsZCBiZSB1bmRlZmluZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGNvcnJl
Y3Qgc3VwcG9ydCBvZiBwcm90b3R5cGUgcHJvcGVydHkgZm9yIGFycm93IGZ1bmN0aW9uLiBBcnJv
dyBmdW5jdGlvbiBkb2VzbuKAmXQgaGF2ZSBvd24gcHJvdG90eXBlIHByb3BlcnR5LCAKKyAgICAg
ICAgc28gKCgpID0+IHt9KS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykgPT09IGZhbHNlLgor
ICAgICAgICBDaGFuZ2VzIGFyZSBwcmV2ZW50IGluaXQgJ3Byb3BlcnR5JyBmb3IgYXJyb3cgZnVu
Y3Rpb24gYW5kIGFsbG93IHJlbW92ZSAncHJvdG90eXBlJyBwcm9wZXJ0eSBmb3IgYXJyb3cgZnVu
Y3Rpb24uIAorCisKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpKU0Z1
bmN0aW9uOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Fycm93ZnVu
Y3Rpb24tcHJvdG90eXBlLmpzOiBBZGRlZC4KKwogMjAxNS0wOC0xOCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IExpbmtzIGZv
ciBydWxlcyBpbiA8c3R5bGU+IGFyZSBpbmNvcnJlY3QsIGRvIG5vdCBhY2NvdW50IGZvciA8c3R5
bGU+IG9mZnNldCBpbiB0aGUgZG9jdW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggMGY3MzU0ZWQ3YTZiZDFlM2U2NGIxODU4NTljMTRmMTUw
MzI2ZDQ1OC4uOWY2YTI1MWRmN2U0ZTI3MzYyMDdiNmRhMWJjZGRlNDU4M2M2Y2ZhMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTM1OSwxMCAr
MzU5LDEyIEBAIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiAgICAgICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlw
ZSkgeworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSB0aGlzT2JqZWN0
LT5qc0V4ZWN1dGFibGUoKTsKICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICAgICAg
dW5zaWduZWQgYXR0cmlidXRlczsKICAgICAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gdGhp
c09iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KHZtLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOwot
ICAgICAgICBpZiAoIWlzVmFsaWRPZmZzZXQob2Zmc2V0KSkgeworICAgICAgICBib29sIG5lZWRS
ZWNyZWF0ZVByb3RvdHlwZSA9ICFpc1ZhbGlkT2Zmc2V0KG9mZnNldCk7CisgICAgICAgIGlmIChu
ZWVkUmVjcmVhdGVQcm90b3R5cGUgJiYgIWV4ZWN1dGFibGUtPmlzQXJyb3dGdW5jdGlvbigpKSB7
CiAgICAgICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gY29uc3RydWN0RW1wdHlPYmplY3Qo
ZXhlYyk7CiAgICAgICAgICAgICBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmNvbnN0cnVjdG9yLCB0aGlzT2JqZWN0LCBEb250RW51bSk7CiAgICAgICAgICAg
ICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qodm0sIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5
cGUsIHByb3RvdHlwZSwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKQEAgLTM3MCw3ICszNzIsOCBA
QCBib29sIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TgogICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRPZmZz
ZXQob2Zmc2V0KSk7CiAgICAgICAgIH0KIAotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIGF0dHJpYnV0ZXMsIHRoaXNPYmplY3QtPmdldERpcmVjdChvZmZzZXQpLCBvZmZzZXQpOwor
ICAgICAgICBpZiAoIWV4ZWN1dGFibGUtPmlzQXJyb3dGdW5jdGlvbigpKQorICAgICAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBhdHRyaWJ1dGVzLCB0aGlzT2JqZWN0LT5nZXREaXJl
Y3Qob2Zmc2V0KSwgb2Zmc2V0KTsKICAgICB9CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKQEAgLTQ2OCwxNCArNDcxLDE4IEBAIHZv
aWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKCiBib29sIEpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQog
ewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGNlbGwp
OworICAgIAogICAgIC8vIEZvciBub24taG9zdCBmdW5jdGlvbnMsIGRvbid0IGxldCB0aGVzZSBw
cm9wZXJ0aWVzIGJ5IGRlbGV0ZWQgLSBleGNlcHQgYnkgRGVmaW5lT3duUHJvcGVydHkuCi0gICAg
aWYgKCF0aGlzT2JqZWN0LT5pc0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpICYmICFleGVjLT52bSgp
LmlzSW5EZWZpbmVPd25Qcm9wZXJ0eSgpCi0gICAgICAgICYmIChwcm9wZXJ0eU5hbWUgPT0gZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cworICAgIGlmICghdGhpc09iamVjdC0+aXNIb3N0
T3JCdWlsdGluRnVuY3Rpb24oKSAmJiAhZXhlYy0+dm0oKS5pc0luRGVmaW5lT3duUHJvcGVydHko
KSkgeworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSB0aGlzT2JqZWN0
LT5qc0V4ZWN1dGFibGUoKTsKKyAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuYXJndW1lbnRzCiAgICAgICAgICAgICB8fCBwcm9wZXJ0eU5hbWUgPT0gZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aAogICAgICAgICAgICAgfHwgcHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lCi0gICAgICAgICAgICB8fCBwcm9wZXJ0eU5hbWUg
PT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZQotICAgICAgICAgICAgfHwgcHJvcGVy
dHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIpKQorICAgICAgICAgICAgfHwg
KHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlICYmICFleGVj
dXRhYmxlLT5pc0Fycm93RnVuY3Rpb24oKSkKKyAgICAgICAgICAgIHx8IHByb3BlcnR5TmFtZSA9
PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIAogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNTY0MzdlMzNjYmE1MGM4ZTQ5MWUxMGY3ZWU1NzZhN2U1MmIzYTY1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9u
LXByb3RvdHlwZS5qcwpAQCAtMCwwICsxLDIyIEBACit2YXIgdGVzdENhc2UgPSBmdW5jdGlvbiAo
YWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkgeworICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkg
eworICAgIHRocm93IG1lc3NhZ2UgKyAiLiBFeHBlY3RlZCAnIiArIGV4cGVjdGVkICsgIicsIGJ1
dCB3YXMgJyIgKyBhY3R1YWwgKyAiJyI7CisgIH0KK307CisKK3ZhciBhZjEgPSAoKSA9PiAge307
Cit2YXIgYWYyID0gKGEpID0+IHthICsgMX07Cit2YXIgYWYzID0gKHgpID0+ICB4ICsgMTsKKwor
bm9JbmxpbmUoYWYxKTsKK25vSW5saW5lKGFmMik7Citub0lubGluZShhZjMpOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgdGVzdENhc2UodHlwZW9mIGFmMS5wcm90b3R5
cGUsICd1bmRlZmluZWQnLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3VsdCBmb3IgcHJvdG90eXBl
IG9mIGFycm93IGZ1bmN0aW9uICMxIik7CisgIHRlc3RDYXNlKHR5cGVvZiBhZjIucHJvdG90eXBl
LCAndW5kZWZpbmVkJywgIkVycm9yOiBOb3QgY29ycmVjdCByZXN1bHQgZm9yIHByb3RvdHlwZSBv
ZiBhcnJvdyBmdW5jdGlvbiAjMiIpOworICB0ZXN0Q2FzZSh0eXBlb2YgYWYzLnByb3RvdHlwZSwg
J3VuZGVmaW5lZCcsICJFcnJvcjogTm90IGNvcnJlY3QgcmVzdWx0IGZvciBwcm90b3R5cGUgb2Yg
YXJyb3cgZnVuY3Rpb24gIzUiKTsKKyAgdGVzdENhc2UoYWYxLmhhc093blByb3BlcnR5KCJwcm90
b3R5cGUiKSwgZmFsc2UsICJFcnJvcjogTm90IGNvcnJlY3QgcmVzdWx0IGZvciBwcm90b3R5cGUg
b2YgYXJyb3cgZnVuY3Rpb24gIzMiKTsKKyAgdGVzdENhc2UoYWYyLmhhc093blByb3BlcnR5KCJw
cm90b3R5cGUiKSwgZmFsc2UsICJFcnJvcjogTm90IGNvcnJlY3QgcmVzdWx0IGZvciBwcm90b3R5
cGUgb2YgYXJyb3cgZnVuY3Rpb24gIzQiKTsKKyAgdGVzdENhc2UoYWYzLmhhc093blByb3BlcnR5
KCJwcm90b3R5cGUiKSwgZmFsc2UsICJFcnJvcjogTm90IGNvcnJlY3QgcmVzdWx0IGZvciBwcm90
b3R5cGUgb2YgYXJyb3cgZnVuY3Rpb24gIzYiKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNWRjYjg3NDYwMDBlZmIx
NTMyNDczZWQ5NDcxMzBiMjEwODdjMDZmLi4zZmQ3ZTRiOGY0NjYyOTllM2ZiYzdkZDFhOTYxYmQ0
N2ExNzQxZWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDgtMjYgIEFsZWtzYW5kciBT
a2FjaGtvdiAgPGdza2FjaGtvdkBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50
IEVTNiBhcnJvdyBmdW5jdGlvbiBzeW50YXguIFByb3RvdHlwZSBvZiBhcnJvdyBmdW5jdGlvbiBz
aG91bGQgYmUgdW5kZWZpbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDc3NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB0ZXN0cyBvZiBwcm90b3R5cGUgcHJvcGVydHkgZm9yIGFycm93IGZ1
bmN0aW9uLiBDaGVja3MgdGhhdCBhcnJvdyBmdW5jdGlvbiBkb2VzIG5vdCBoYXZlIAorICAgICAg
ICBwcm90b3R5cGUgcHJvcGVydHkgYW5kIGFsc28gaXQgaXMgcG9zc2libGUgdG8gYWRkL3JlbW92
ZSBpdC4KKworICAgICAgICAqIGpzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpz
OiBBZGRlZC4KKwogMjAxNS0wOC0xOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gUHVuY3R1YXRpb24gbmVhciBIaW5kaSB0ZXh0IGlz
IGdhcmJsZWQgd2hlbiBzdHlsZWQgd2l0aCB0aGUgc3lzdGVtIGZvbnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMWY2ZDE3Yzk4ZjNmMmM4NWRkZWQyNzM5N2I2MDQzZWYwYTY2M2NiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3RzIGZvciBFUzYgYXJyb3cgZnVuY3Rpb24gcHJvdG90eXBl
IHByb3BlcnR5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisoKSA9PiAge30KK1BB
U1MgdHlwZW9mIGFmMS5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYxLmhhc093blBy
b3BlcnR5KCdwcm90b3R5cGUnKSBpcyBmYWxzZQorKGEpID0+IHthICsgMX0KK1BBU1MgdHlwZW9m
IGFmMi5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYyLmhhc093blByb3BlcnR5KCdw
cm90b3R5cGUnKSBpcyBmYWxzZQorKHgpID0+ICB4ICsgMQorUEFTUyB0eXBlb2YgYWYzLnByb3Rv
dHlwZSBpcyAndW5kZWZpbmVkJworUEFTUyBhZjMuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScp
IGlzIGZhbHNlCithZjEucHJvdG90eXBlID0gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHggKyAxO30K
K1BBU1MgdHlwZW9mIGFmMS5wcm90b3R5cGUgaXMgJ2Z1bmN0aW9uJworUEFTUyBhZjEucHJvdG90
eXBlLnRvU3RyaW5nKCkgaXMgJ2Z1bmN0aW9uICh4KSB7IHJldHVybiB4ICsgMTt9JworUEFTUyBh
ZjEuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIGlzIHRydWUKK2RlbGV0ZSBhZjEucHJvdG90
eXBlCitQQVNTIHR5cGVvZiBhZjEucHJvdG90eXBlIGlzICd1bmRlZmluZWQnCitQQVNTIGFmMS5o
YXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvYXJyb3dmdW5j
dGlvbi1wcm90b3R5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWU1YmVkNmE1OTI5OTc4YmU2ZjU4NGNm
OTJiMDQzOWE5NGM0OTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJyb3dm
dW5jdGlvbi1wcm90b3R5cGUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tcHJvdG90eXBlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0MmE0MjY0
MWEwOWQyYWZmNmYwMDhjMTdlZDhiNzI2ZWE4NzRiOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanMKQEAgLTAs
MCArMSwzNiBAQAorLy8gSW5zcGlyZWQgYnkgbW96aWxsYSB0ZXN0cworZGVzY3JpcHRpb24oJ1Rl
c3RzIGZvciBFUzYgYXJyb3cgZnVuY3Rpb24gcHJvdG90eXBlIHByb3BlcnR5Jyk7CisKK3ZhciBh
ZjEgPSAoKSA9PiAge307CisKK2RlYnVnKCcoKSA9PiAge30nKTsKK3Nob3VsZEJlKCJ0eXBlb2Yg
YWYxLnByb3RvdHlwZSIsICIndW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMS5oYXNPd25Qcm9w
ZXJ0eSgncHJvdG90eXBlJykiLCAiZmFsc2UiKTsKKwordmFyIGFmMiA9IChhKSA9PiB7YSArIDF9
OworCitkZWJ1ZygnKGEpID0+IHthICsgMX0nKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYyLnByb3Rv
dHlwZSIsICIndW5kZWZpbmVkJyIpOworc2hvdWxkQmUoImFmMi5oYXNPd25Qcm9wZXJ0eSgncHJv
dG90eXBlJykiLCAiZmFsc2UiKTsKKwordmFyIGFmMyA9ICh4KSA9PiAgeCArIDE7CisKK2RlYnVn
KCcoeCkgPT4gIHggKyAxJyk7CitzaG91bGRCZSgidHlwZW9mIGFmMy5wcm90b3R5cGUiLCAiJ3Vu
ZGVmaW5lZCciKTsKK3Nob3VsZEJlKCJhZjMuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIiwg
ImZhbHNlIik7CisKKworYWYxLnByb3RvdHlwZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICsg
MTt9OworCitkZWJ1ZygnYWYxLnByb3RvdHlwZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICsg
MTt9Jyk7CitzaG91bGRCZSgidHlwZW9mIGFmMS5wcm90b3R5cGUiLCAiJ2Z1bmN0aW9uJyIpOwor
c2hvdWxkQmUoImFmMS5wcm90b3R5cGUudG9TdHJpbmcoKSIsICInZnVuY3Rpb24gKHgpIHsgcmV0
dXJuIHggKyAxO30nIik7CitzaG91bGRCZSgiYWYxLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUn
KSIsICJ0cnVlIik7CisKK2RlbGV0ZSBhZjEucHJvdG90eXBlOworCitkZWJ1ZygnZGVsZXRlIGFm
MS5wcm90b3R5cGUnKTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYxLnByb3RvdHlwZSIsICIndW5kZWZp
bmVkJyIpOworc2hvdWxkQmUoImFmMS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykiLCAiZmFs
c2UiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260532</attachid>
            <date>2015-09-03 15:38:36 -0700</date>
            <delta_ts>2015-09-03 23:58:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147742-20150904013840.patch</filename>
            <type>text/plain</type>
            <size>8745</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZTc2MTQ5MWYyMjA4NWQ0NDI1ZjIwMDFhODFiZmYzYTgzODUyYjBjLi4yNzBkNmNlMGM2MzMwNzk1
NzQ4ZmYyMjhmODBlZTBhMDk4M2Q3MzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNS0wOS0wMyBBbGVrc2FuZHIgU2thY2hrb3YgICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IGFycm93IGZ1bmN0aW9uIHN5
bnRheC4gUHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uIHNob3VsZCBiZSB1bmRlZmluZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGNvcnJl
Y3Qgc3VwcG9ydCBvZiBwcm90b3R5cGUgcHJvcGVydHkgZm9yIGFycm93IGZ1bmN0aW9uLiBBcnJv
dyBmdW5jdGlvbiAKKyAgICAgICAgZG9lc27igJl0IGhhdmUgb3duIHByb3RvdHlwZSBwcm9wZXJ0
eSwgc28gKCgpID0+IHt9KS5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykgPT09IGZhbHNlLgor
ICAgICAgICBDaGFuZ2VzIHByZXZlbnQgZnJvbSBjcmVhdGlvbiBvZiAncHJvdG90eXBlJyBwcm9w
ZXJ0eSBhdXRvbWF0aWNhbGx5IGR1cmluZyBpbml0aWFsaXphdGlvbiAKKyAgICAgICAgb2YgYXJy
b3cgZnVuY3Rpb24gYW5kIGFsbG93IHRvIGFzc2lnbiAmIGRlbGV0ZSBpdCBsYXRlciBpbiBqcyBj
b2RlLiAKKworCisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNGdW5j
dGlvbjo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0
aW9uLXByb3RvdHlwZS5qczogQWRkZWQuCisKIDIwMTUtMDgtMTggIEpvc2VwaCBQZWNvcmFybyAg
PHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBMaW5rcyBmb3Ig
cnVsZXMgaW4gPHN0eWxlPiBhcmUgaW5jb3JyZWN0LCBkbyBub3QgYWNjb3VudCBmb3IgPHN0eWxl
PiBvZmZzZXQgaW4gdGhlIGRvY3VtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uY3BwCmluZGV4IDBmNzM1NGVkN2E2YmQxZTNlNjRiMTg1ODU5YzE0ZjE1MDMy
NmQ0NTguLmYxOTJjMGQzODAyNDA3MDE4NGJjNGM3ZjkzMDgzZTVhZWZlMzJlYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zNTgsNyArMzU4
LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU4KICAgICBpZiAodGhpc09iamVjdC0+aXNIb3N0
T3JCdWlsdGluRnVuY3Rpb24oKSkKICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogCi0gICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlKSB7CisgICAgaWYg
KHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlICYmICF0aGlz
T2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNBcnJvd0Z1bmN0aW9uKCkpIHsKICAgICAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlczsKICAgICAgICAg
UHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gdGhpc09iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KHZtLCBw
cm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOwpAQCAtNDY5LDEzICs0NjksMTYgQEAgYm9vbCBKU0Z1
bmN0aW9uOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOYW1lIHByb3AKIHsKICAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
RnVuY3Rpb24qPihjZWxsKTsKICAgICAvLyBGb3Igbm9uLWhvc3QgZnVuY3Rpb25zLCBkb24ndCBs
ZXQgdGhlc2UgcHJvcGVydGllcyBieSBkZWxldGVkIC0gZXhjZXB0IGJ5IERlZmluZU93blByb3Bl
cnR5LgotICAgIGlmICghdGhpc09iamVjdC0+aXNIb3N0T3JCdWlsdGluRnVuY3Rpb24oKSAmJiAh
ZXhlYy0+dm0oKS5pc0luRGVmaW5lT3duUHJvcGVydHkoKQotICAgICAgICAmJiAocHJvcGVydHlO
YW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMKKyAgICBpZiAoIXRoaXNPYmpl
Y3QtPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9uKCkgJiYgIWV4ZWMtPnZtKCkuaXNJbkRlZmluZU93
blByb3BlcnR5KCkpIHsKKyAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0g
dGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCk7CisgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cwogICAgICAgICAgICAgfHwgcHJvcGVydHlO
YW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgKICAgICAgICAgICAgIHx8IHByb3Bl
cnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFtZQotICAgICAgICAgICAgfHwgcHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUKLSAgICAgICAgICAg
IHx8IHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKSkKKyAgICAg
ICAgICAgIHx8IChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlw
ZSAmJiAhZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkpCisgICAgICAgICAgICB8fCBwcm9w
ZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlcikKICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICAKICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkodGhp
c09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDU2NDM3ZTMzY2JhNTBjOGU0OTFlMTBmN2VlNTc2YTdlNTJiM2E2NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJy
b3dmdW5jdGlvbi1wcm90b3R5cGUuanMKQEAgLTAsMCArMSwyMiBAQAordmFyIHRlc3RDYXNlID0g
ZnVuY3Rpb24gKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpIHsKKyAgICB0aHJvdyBtZXNzYWdlICsgIi4gRXhwZWN0ZWQgJyIgKyBleHBlY3Rl
ZCArICInLCBidXQgd2FzICciICsgYWN0dWFsICsgIiciOworICB9Cit9OworCit2YXIgYWYxID0g
KCkgPT4gIHt9OwordmFyIGFmMiA9IChhKSA9PiB7YSArIDF9OwordmFyIGFmMyA9ICh4KSA9PiAg
eCArIDE7CisKK25vSW5saW5lKGFmMSk7Citub0lubGluZShhZjIpOworbm9JbmxpbmUoYWYzKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgIHRlc3RDYXNlKHR5cGVvZiBh
ZjEucHJvdG90eXBlLCAndW5kZWZpbmVkJywgIkVycm9yOiBOb3QgY29ycmVjdCByZXN1bHQgZm9y
IHByb3RvdHlwZSBvZiBhcnJvdyBmdW5jdGlvbiAjMSIpOworICB0ZXN0Q2FzZSh0eXBlb2YgYWYy
LnByb3RvdHlwZSwgJ3VuZGVmaW5lZCcsICJFcnJvcjogTm90IGNvcnJlY3QgcmVzdWx0IGZvciBw
cm90b3R5cGUgb2YgYXJyb3cgZnVuY3Rpb24gIzIiKTsKKyAgdGVzdENhc2UodHlwZW9mIGFmMy5w
cm90b3R5cGUsICd1bmRlZmluZWQnLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3VsdCBmb3IgcHJv
dG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM1Iik7CisgIHRlc3RDYXNlKGFmMS5oYXNPd25Qcm9w
ZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3VsdCBmb3Ig
cHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICMzIik7CisgIHRlc3RDYXNlKGFmMi5oYXNPd25Q
cm9wZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3VsdCBm
b3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM0Iik7CisgIHRlc3RDYXNlKGFmMy5oYXNP
d25Qcm9wZXJ0eSgicHJvdG90eXBlIiksIGZhbHNlLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHJlc3Vs
dCBmb3IgcHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uICM2Iik7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTVkY2I4
NzQ2MDAwZWZiMTUzMjQ3M2VkOTQ3MTMwYjIxMDg3YzA2Zi4uZjdiNmFlYWUxMWJjYjBiOTBiZDYx
MjYxNDEwNTllZmEzYTJmNDQwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA5LTAzICBB
bGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZd
IEltcGxlbWVudCBFUzYgYXJyb3cgZnVuY3Rpb24gc3ludGF4LiBQcm90b3R5cGUgb2YgYXJyb3cg
ZnVuY3Rpb24gc2hvdWxkIGJlIHVuZGVmaW5lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgb2YgcHJvdG90eXBlIHByb3BlcnR5IGZv
ciBhcnJvdyBmdW5jdGlvbi4gQ2hlY2tzIHRoYXQgYXJyb3cgZnVuY3Rpb24gZG9lcyBub3QgaGF2
ZSAKKyAgICAgICAgcHJvdG90eXBlIHByb3BlcnR5IGFmdGVyIGNyZWF0aW5nIG9mIGl0IGFuZCBj
aGVjayBpZiBpdCBpcyBwb3NzaWJsZSB0byBhZGQvcmVtb3ZlIGl0IGxhdGVyLgorCisgICAgICAg
ICoganMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9zY3JpcHQtdGVzdHMvYXJyb3dmdW5jdGlvbi1wcm90b3R5cGUuanM6IEFkZGVkLgorCiAyMDE1
LTA4LTE4ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvY29hXSBQdW5jdHVhdGlvbiBuZWFyIEhpbmRpIHRleHQgaXMgZ2FyYmxlZCB3aGVuIHN0
eWxlZCB3aXRoIHRoZSBzeXN0ZW0gZm9udApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJy
b3dmdW5jdGlvbi1wcm90b3R5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvYXJyb3dm
dW5jdGlvbi1wcm90b3R5cGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxZjZkMTdjOThmM2Yy
Yzg1ZGRlZDI3Mzk3YjYwNDNlZjBhNjYzY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBA
QAorVGVzdHMgZm9yIEVTNiBhcnJvdyBmdW5jdGlvbiBwcm90b3R5cGUgcHJvcGVydHkKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKygpID0+ICB7fQorUEFTUyB0eXBlb2YgYWYxLnBy
b3RvdHlwZSBpcyAndW5kZWZpbmVkJworUEFTUyBhZjEuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlw
ZScpIGlzIGZhbHNlCisoYSkgPT4ge2EgKyAxfQorUEFTUyB0eXBlb2YgYWYyLnByb3RvdHlwZSBp
cyAndW5kZWZpbmVkJworUEFTUyBhZjIuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIGlzIGZh
bHNlCisoeCkgPT4gIHggKyAxCitQQVNTIHR5cGVvZiBhZjMucHJvdG90eXBlIGlzICd1bmRlZmlu
ZWQnCitQQVNTIGFmMy5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykgaXMgZmFsc2UKK2FmMS5w
cm90b3R5cGUgPSBmdW5jdGlvbiAoeCkgeyByZXR1cm4geCArIDE7fQorUEFTUyB0eXBlb2YgYWYx
LnByb3RvdHlwZSBpcyAnZnVuY3Rpb24nCitQQVNTIGFmMS5wcm90b3R5cGUudG9TdHJpbmcoKSBp
cyAnZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHggKyAxO30nCitQQVNTIGFmMS5oYXNPd25Qcm9wZXJ0
eSgncHJvdG90eXBlJykgaXMgdHJ1ZQorZGVsZXRlIGFmMS5wcm90b3R5cGUKK1BBU1MgdHlwZW9m
IGFmMS5wcm90b3R5cGUgaXMgJ3VuZGVmaW5lZCcKK1BBU1MgYWYxLmhhc093blByb3BlcnR5KCdw
cm90b3R5cGUnKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Fycm93ZnVuY3Rpb24t
cHJvdG90eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY1ZTViZWQ2YTU5Mjk5NzhiZTZmNTg0Y2Y5MmIwNDM5YTk0YzQ5NmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlw
ZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyb3dm
dW5jdGlvbi1wcm90b3R5cGUuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyb3dm
dW5jdGlvbi1wcm90b3R5cGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQyYTQyNjQxYTA5ZDJhZmY2ZjAwOGMx
N2VkOGI3MjZlYTg3NGI5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9hcnJvd2Z1bmN0aW9uLXByb3RvdHlwZS5qcwpAQCAtMCwwICsxLDM2IEBACisvLyBJ
bnNwaXJlZCBieSBtb3ppbGxhIHRlc3RzCitkZXNjcmlwdGlvbignVGVzdHMgZm9yIEVTNiBhcnJv
dyBmdW5jdGlvbiBwcm90b3R5cGUgcHJvcGVydHknKTsKKwordmFyIGFmMSA9ICgpID0+ICB7fTsK
KworZGVidWcoJygpID0+ICB7fScpOworc2hvdWxkQmUoInR5cGVvZiBhZjEucHJvdG90eXBlIiwg
Iid1bmRlZmluZWQnIik7CitzaG91bGRCZSgiYWYxLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUn
KSIsICJmYWxzZSIpOworCit2YXIgYWYyID0gKGEpID0+IHthICsgMX07CisKK2RlYnVnKCcoYSkg
PT4ge2EgKyAxfScpOworc2hvdWxkQmUoInR5cGVvZiBhZjIucHJvdG90eXBlIiwgIid1bmRlZmlu
ZWQnIik7CitzaG91bGRCZSgiYWYyLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSIsICJmYWxz
ZSIpOworCit2YXIgYWYzID0gKHgpID0+ICB4ICsgMTsKKworZGVidWcoJyh4KSA9PiAgeCArIDEn
KTsKK3Nob3VsZEJlKCJ0eXBlb2YgYWYzLnByb3RvdHlwZSIsICIndW5kZWZpbmVkJyIpOworc2hv
dWxkQmUoImFmMy5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJykiLCAiZmFsc2UiKTsKKworCith
ZjEucHJvdG90eXBlID0gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHggKyAxO307CisKK2RlYnVnKCdh
ZjEucHJvdG90eXBlID0gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHggKyAxO30nKTsKK3Nob3VsZEJl
KCJ0eXBlb2YgYWYxLnByb3RvdHlwZSIsICInZnVuY3Rpb24nIik7CitzaG91bGRCZSgiYWYxLnBy
b3RvdHlwZS50b1N0cmluZygpIiwgIidmdW5jdGlvbiAoeCkgeyByZXR1cm4geCArIDE7fSciKTsK
K3Nob3VsZEJlKCJhZjEuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpIiwgInRydWUiKTsKKwor
ZGVsZXRlIGFmMS5wcm90b3R5cGU7CisKK2RlYnVnKCdkZWxldGUgYWYxLnByb3RvdHlwZScpOwor
c2hvdWxkQmUoInR5cGVvZiBhZjEucHJvdG90eXBlIiwgIid1bmRlZmluZWQnIik7CitzaG91bGRC
ZSgiYWYxLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSIsICJmYWxzZSIpOworCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>