<?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>142829</bug_id>
          
          <creation_ts>2015-03-18 11:10:08 -0700</creation_ts>
          <short_desc>[ES6] Implement Symbol.unscopables</short_desc>
          <delta_ts>2015-04-01 02:31:07 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1078250</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-18 11:10:08 -0700</bug_when>
    <thetext>Implement Symbol.unscopables support in with scope.
It allow runtime to expose some generic name methods like `values`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078497</commentid>
    <comment_count>1</comment_count>
      <attachid>249026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-19 01:42:58 -0700</bug_when>
    <thetext>Created attachment 249026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078498</commentid>
    <comment_count>2</comment_count>
      <attachid>249027</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-19 01:47:46 -0700</bug_when>
    <thetext>Created attachment 249027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079059</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-21 04:43:12 -0700</bug_when>
    <thetext>Could anyone take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079075</commentid>
    <comment_count>4</comment_count>
      <attachid>249027</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-21 09:27:16 -0700</bug_when>
    <thetext>Comment on attachment 249027
Patch

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

Nifty!

&gt; Source/JavaScriptCore/tests/stress/unscopables.js:25
&gt; +        test(__proto__, Array.prototype);  // array&apos;s unscopbales.__proto__ is undefined =&gt; false.

Typo: unscopbales

&gt; Source/JavaScriptCore/tests/stress/unscopables.js:47
&gt; +        test(toString, &quot;toString&quot;);  // object.toString is hidden by unscopables.toString.

Can we have an equivalent test where the unscopables object doesn&apos;t have the Object prototype? So: [Symbol.unscopables]: { Cocoa: false, Cappuccino: true, __proto__: null }. In which I think we would expect test(toString) to be Object.prototype.toString within this with block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079140</commentid>
    <comment_count>5</comment_count>
      <attachid>249193</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-22 04:44:56 -0700</bug_when>
    <thetext>Created attachment 249193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079141</commentid>
    <comment_count>6</comment_count>
      <attachid>249027</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-22 04:45:41 -0700</bug_when>
    <thetext>Comment on attachment 249027
Patch

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

Added comments and updated the patch.

&gt;&gt; Source/JavaScriptCore/tests/stress/unscopables.js:25
&gt;&gt; +        test(__proto__, Array.prototype);  // array&apos;s unscopbales.__proto__ is undefined =&gt; false.
&gt; 
&gt; Typo: unscopbales

Oops! Thank you.
Fixed.

&gt;&gt; Source/JavaScriptCore/tests/stress/unscopables.js:47
&gt;&gt; +        test(toString, &quot;toString&quot;);  // object.toString is hidden by unscopables.toString.
&gt; 
&gt; Can we have an equivalent test where the unscopables object doesn&apos;t have the Object prototype? So: [Symbol.unscopables]: { Cocoa: false, Cappuccino: true, __proto__: null }. In which I think we would expect test(toString) to be Object.prototype.toString within this with block.

Sounds very nice. Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081782</commentid>
    <comment_count>7</comment_count>
      <attachid>249852</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-31 14:32:39 -0700</bug_when>
    <thetext>Created attachment 249852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081783</commentid>
    <comment_count>8</comment_count>
      <attachid>249853</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-31 14:34:21 -0700</bug_when>
    <thetext>Created attachment 249853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081823</commentid>
    <comment_count>9</comment_count>
      <attachid>249853</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-31 16:27:44 -0700</bug_when>
    <thetext>Comment on attachment 249853
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSScope.cpp:161
&gt; +            if (scope-&gt;type() != WithScopeType)
&gt; +                return object;
&gt; +
&gt; +            JSValue unscopables = object-&gt;get(exec, exec-&gt;propertyNames().unscopablesSymbol);
&gt; +            if (exec-&gt;hadException())
&gt; +                return object;
&gt; +            if (!unscopables.isObject())
&gt; +                return object;
&gt; +            JSValue blocked = jsCast&lt;JSObject*&gt;(unscopables)-&gt;get(exec, ident);
&gt; +            if (exec-&gt;hadException())
&gt; +                return object;
&gt; +            if (!blocked.toBoolean(exec))
&gt; +                return object;
&gt; +            ASSERT_WITH_MESSAGE(!exec-&gt;hadException(), &quot;JSValue::toBoolean does not raise any errors.&quot;);

It would be nice to factor this code into a static inline helper function named &quot;isUnscopable&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081941</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-01 02:04:01 -0700</bug_when>
    <thetext>Committed r182225: &lt;http://trac.webkit.org/changeset/182225&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081948</commentid>
    <comment_count>11</comment_count>
      <attachid>249853</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-01 02:31:07 -0700</bug_when>
    <thetext>Comment on attachment 249853
Patch

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

Thank you for your review! I&apos;ve landed it with fix.

&gt;&gt; Source/JavaScriptCore/runtime/JSScope.cpp:161
&gt;&gt; +            ASSERT_WITH_MESSAGE(!exec-&gt;hadException(), &quot;JSValue::toBoolean does not raise any errors.&quot;);
&gt; 
&gt; It would be nice to factor this code into a static inline helper function named &quot;isUnscopable&quot;.

OK! I&apos;ve extracted it to isUnscopable function.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249026</attachid>
            <date>2015-03-19 01:42:58 -0700</date>
            <delta_ts>2015-03-19 01:47:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142829-20150319174226.patch</filename>
            <type>text/plain</type>
            <size>10754</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZDMwZDk0Mjc0ZTY0YzYyNzcwNWY2ZDZhZWQ3MDNlMmVkMjFhNWIyLi4wMmE1MTU2NWI4N2NkNWYw
OTBkZGRiMThjMjc3NGZlYjQ2MDU1MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxNS0wMy0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3ltYm9sLnVuc2NvcGFibGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI4MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlu
dHJvZHVjZXMgU3ltYm9sLnVuc2NvcGFibGVzIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIEluIEVT
Niwgc29tZSBnZW5lcmljIG5hbWVzIChsaWtlIGtleXMsIHZhbHVlcykgYXJlIGludHJvZHVjZWQK
KyAgICAgICAgYXMgQXJyYXkncyBtZXRob2QgbmFtZS4gQW5kIHRoaXMgYnJlYWtzIHRoZSB3ZWIg
c2luY2Ugc29tZSB3ZWIgc2l0ZXMKKyAgICAgICAgdXNlIGxpa2UgdGhlIGZvbGxvd2luZyBjb2Rl
LgorCisgICAgICAgIHZhciB2YWx1ZXMgPSAuLi47CisgICAgICAgIHdpdGggKGFycmF5KSB7Cisg
ICAgICAgICAgICB2YWx1ZXM7ICAvLyBUaGlzIHZhbHVlcyBpcyB0cmFwcGVkIGJ5IGFycmF5J3Mg
bWV0aG9kICJ2YWx1ZXMiLgorICAgICAgICB9CisKKyAgICAgICAgVG8gZml4IHRoaXMsIFN5bWJv
bC51bnNjb3BhYmxlcyBpbnRyb2R1Y2VzIGJsYWNrbGlzdAorICAgICAgICBmb3Igd2l0aCBzY29w
ZSdzIHRyYXBwaW5nLiBXaGVuIHJlc29sdmluZyBzY29wZSwKKyAgICAgICAgaWYgbmFtZSBpcyBm
b3VuZCBpbiB0aGUgdGFyZ2V0IHNjb3BlIGFuZCB0aGUgdGFyZ2V0IHNjb3BlIGlzIHdpdGggc2Nv
cGUsCisgICAgICAgIHdlIGNoZWNrIFN5bWJvbC51bnNjb3BhYmxlcyBvYmplY3QgdG8gZmlsdGVy
IGdlbmVyaWMgbmFtZXMuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG9ubHkgYWN0
aXZlIGZvciB3aXRoIHNjb3Blcy4KKyAgICAgICAgR2xvYmFsIHNjb3BlIGRvZXMgbm90IGhhdmUg
dW5zY29wYWJsZXMgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICBBbmQgc2luY2UKKyAgICAgICAg
MSkgb3BfcmVzb2x2ZV9zY29wZSBmb3Igd2l0aCBzY29wZSBhbHdheXMgcmV0dXJuIER5bmFtaWMg
cmVzb2x2ZSB0eXBlLAorICAgICAgICAyKSBpbiB0aGF0IGNhc2UsIEpTU2NvcGU6OnJlc29sdmUg
aXMgYWx3YXlzIHVzZWQsCisgICAgICAgIDMpIHRoZSBjb2RlIHdoaWNoIGNvbnRhaW5zIG9wX3Jl
c29sdmVfc2NvcGUgdGhhdCByZXR1cm5zIER5bmFtaWMgY2Fubm90IGJlIGNvbXBpbGVkIHdpdGgg
REZHIGFuZCBGVEwsCisgICAgICAgIHRvIGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uYWxpdHksIHdl
IGp1c3QgY2hhbmdlIEpTU2NvcGU6OnJlc29sdmUgYW5kIG5vIG5lZWQgdG8gY2hhbmdlIEpJVCBj
b2RlLgorICAgICAgICBTbyBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIGlzIG9ubHkgdmlzaWJsZSBp
biBEeW5hbWljIHJlc29sdmluZyBjYXNlLCBhbmQgaXQgaXMgYWxyZWFkeSBtdWNoIHNsb3cuCisK
KyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJy
YXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNTY29wZTo6cmVzb2x2ZSk6CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmg6CisgICAg
ICAgIChKU0M6OlNjb3BlQ2hhaW5JdGVyYXRvcjo6c2NvcGUpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9nbG9iYWwtZW52aXJvbm1lbnQtZG9lcy1ub3QtdHJhcC11bnNjb3BhYmxlcy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdW5zY29wYWJsZXMu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICguKToKKwogMjAxNS0wMy0xOCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIEVTNiBDbGFz
c2VzOiBFeHRlbmRzIHNob3VsZCBhY2NlcHQgYW4gZXhwcmVzc2lvbiB3aXRob3V0IHBhcmVudGhl
c2lzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5j
cHAKaW5kZXggM2ZkMDM0YTFjMzI4NDYxYTQ2NWNlNjYyYzA5OGQyM2RlMWI0ODc0ZC4uYzBiOTdm
YjY5ZmU3OGJkYWJmZTU2NDRkMTc4ZmZjOTMxOTEyN2RiYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSm9pbmVyLmgi
CiAjaW5jbHVkZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNp
bmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgpAQCAtMTM4LDYgKzEzOSwyMSBAQCB2b2lk
IEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChp
bmhlcml0cyhpbmZvKCkpKTsKICAgICB2bS5wcm90b3R5cGVNYXAuYWRkUHJvdG90eXBlKHRoaXMp
OworICAgIHsKKyAgICAgICAgSlNPYmplY3QqIHVuc2NvcGFibGVzID0gY29uc3RydWN0RW1wdHlP
YmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3Rv
dHlwZU9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICAgICAgY29uc3QgY2hhciogdW5zY29wYWJsZU5h
bWVzW10gPSB7CisgICAgICAgICAgICAiY29weVdpdGhpbiIsCisgICAgICAgICAgICAiZW50cmll
cyIsCisgICAgICAgICAgICAiZmlsbCIsCisgICAgICAgICAgICAiZmluZCIsCisgICAgICAgICAg
ICAiZmluZEluZGV4IiwKKyAgICAgICAgICAgICJrZXlzIiwKKyAgICAgICAgICAgICJ2YWx1ZXMi
CisgICAgICAgIH07CisgICAgICAgIGZvciAoY29uc3QgY2hhciogdW5zY29wYWJsZU5hbWUgOiB1
bnNjb3BhYmxlTmFtZXMpCisgICAgICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyKCZ2bSwgdW5zY29wYWJsZU5hbWUpLCBqc0Jvb2xlYW4odHJ1ZSkpOworICAgICAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dW5zY29w
YWJsZXNQcml2YXRlTmFtZSwgdW5zY29wYWJsZXMsIERvbnRFbnVtIHwgUmVhZE9ubHkpOworICAg
IH0KICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yUHJp
dmF0ZU5hbWUsIGFycmF5UHJvdG9GdW5jVmFsdWVzLCBEb250RW51bSwgMCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4
IDZmMzRmYTkzMGQzYjE2Mjg3NTgwYmE0NWRkNWI1N2Q0MDdlZDNlNDYuLjA1YTUxZDRkZmNkODkz
MTQ1OGI2NTkxMTQ5YzZlN2U5MDcxMjU3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjMxLDcgKzIzMSw3IEBACiAgICAg
bWFjcm8oc3BsaXQpIFwKICAgICBtYWNybyh0b1ByaW1pdGl2ZSkgXAogICAgIG1hY3JvKHRvU3Ry
aW5nVGFnKSBcCi0gICAgbWFjcm8odW5zY29wYWJsZSkKKyAgICBtYWNybyh1bnNjb3BhYmxlcykK
IAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9O
QU1FKG1hY3JvKSBcCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VM
TF9LTk9XTl9TWU1CT0wobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU2NvcGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
Y29wZS5jcHAKaW5kZXggMzAwY2JlZjk3ZjBhOGU0MzY1YWZjMDQ2N2ZiMjk3ZGIyMTczMmFmYS4u
YWZlN2MwYzBkOGYxNDYzMGE4MzRiNzA3NzgzNmE5MjRlYjU5ZWU1OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKQEAgLTEzOCwxMyArMTM4LDI4IEBAIEpTVmFs
dWUgSlNTY29wZTo6cmVzb2x2ZShFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIHNjb3BlLCBjb25z
dCBJZGVudGlmaWVyJiBpZGVuCiAgICAgU2NvcGVDaGFpbkl0ZXJhdG9yIGVuZCA9IHNjb3BlLT5l
bmQoKTsKICAgICBTY29wZUNoYWluSXRlcmF0b3IgaXQgPSBzY29wZS0+YmVnaW4oKTsKICAgICB3
aGlsZSAoMSkgeworICAgICAgICBKU1Njb3BlKiBzY29wZSA9IGl0LnNjb3BlKCk7CiAgICAgICAg
IEpTT2JqZWN0KiBvYmplY3QgPSBpdC5nZXQoKTsKIAogICAgICAgICBpZiAoKytpdCA9PSBlbmQp
IC8vIEdsb2JhbCBzY29wZS4KICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CiAKLSAgICAgICAg
aWYgKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgaWRlbnQpKQotICAgICAgICAgICAgcmV0dXJu
IG9iamVjdDsKKyAgICAgICAgaWYgKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgaWRlbnQpKSB7
CisgICAgICAgICAgICBpZiAoc2NvcGUtPnR5cGUoKSAhPSBXaXRoU2NvcGVUeXBlKQorICAgICAg
ICAgICAgICAgIHJldHVybiBvYmplY3Q7CisKKyAgICAgICAgICAgIEpTVmFsdWUgdW5zY29wYWJs
ZXMgPSBvYmplY3QtPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudW5zY29wYWJsZXNQ
cml2YXRlTmFtZSk7CisgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgICAgIGlmICh1bnNjb3BhYmxlcy5p
c09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgSlNWYWx1ZSBibG9ja2VkID0ganNDYXN0PEpT
T2JqZWN0Kj4odW5zY29wYWJsZXMpLT5nZXQoZXhlYywgaWRlbnQpOworICAgICAgICAgICAgICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9i
amVjdDsKKyAgICAgICAgICAgICAgICBpZiAoIWJsb2NrZWQudG9Cb29sZWFuKGV4ZWMpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OworICAgICAgICAgICAgICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpLCAiSlNWYWx1ZTo6dG9Cb29sZWFuIGRv
ZXMgbm90IHJhaXNlIGFueSBlcnJvcnMuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2Nv
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuaAppbmRleCAyMGU0
NGJjYmQ2ZmRhMTQ5OTJlM2JhMTY1MGZjODU5NWI5MDI3MDk5Li5hYThiZGViOTRiNWU4OWVjZjUz
NTViMGM3ODBmYzg1NGU3MmU2NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Njb3BlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
Y29wZS5oCkBAIC0xOTEsNiArMTkxLDcgQEAgY2xhc3MgU2NvcGVDaGFpbkl0ZXJhdG9yIHsKIAog
ICAgIEpTT2JqZWN0KiBnZXQoKSBjb25zdCB7IHJldHVybiBKU1Njb3BlOjpvYmplY3RBdFNjb3Bl
KG1fbm9kZSk7IH0KICAgICBKU09iamVjdCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIEpT
U2NvcGU6Om9iamVjdEF0U2NvcGUobV9ub2RlKTsgfQorICAgIEpTU2NvcGUqIHNjb3BlKCkgY29u
c3QgeyByZXR1cm4gbV9ub2RlOyB9CiAKICAgICBTY29wZUNoYWluSXRlcmF0b3ImIG9wZXJhdG9y
KysoKSB7IG1fbm9kZSA9IG1fbm9kZS0+bmV4dCgpOyByZXR1cm4gKnRoaXM7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nbG9iYWwtZW52aXJvbm1l
bnQtZG9lcy1ub3QtdHJhcC11bnNjb3BhYmxlcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2xvYmFsLWVudmlyb25tZW50LWRvZXMtbm90LXRyYXAtdW5zY29wYWJsZXMu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGU5NjYwODk0YWI1OGI3NmM2ZTE5Y2NmN2RiMDI2MjQwYzlkMjFkOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2xv
YmFsLWVudmlyb25tZW50LWRvZXMtbm90LXRyYXAtdW5zY29wYWJsZXMuanMKQEAgLTAsMCArMSwx
OSBAQAorZnVuY3Rpb24gdGVzdChhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKK30KKwordmFyIGdsb2JhbCA9IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpOwor
dmFyIENvY29hID0gJ0NvY29hJzsKKworZ2xvYmFsW1N5bWJvbC51bnNjb3BhYmxlc10gPSB7Cisg
ICAgQ29jb2E6IHRydWUKK307CisKK3Rlc3QoQ29jb2EsICJDb2NvYSIpOworKGZ1bmN0aW9uICgp
IHsKKyAgICB2YXIgQ29jb2EgPSAnbG9jYWwnCisgICAgd2l0aCAoZ2xvYmFsKSB7CisgICAgICAg
IHRlc3QoQ29jb2EsICJsb2NhbCIpOworICAgIH0KK30oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Vuc2NvcGFibGVzLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy91bnNjb3BhYmxlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTc4MWUz
MWZhODg0ZDViZmQzNmY0NjUxYmQ5NjAwZmVjZTY0ZDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy91bnNjb3BhYmxlcy5qcwpAQCAtMCwwICsx
LDE0NSBAQAorZnVuY3Rpb24gdGVzdChhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVh
bCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsg
YWN0dWFsKTsKK30KKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICB2
YXIgdW5zY29wYWJsZXMgPSBhcnJheVtTeW1ib2wudW5zY29wYWJsZXNdOworCisgICAgdGVzdCh0
eXBlb2YgdW5zY29wYWJsZXMsICJvYmplY3QiKTsKKyAgICB0ZXN0KHVuc2NvcGFibGVzLl9fcHJv
dG9fXywgdW5kZWZpbmVkKTsKKyAgICB0ZXN0KFN0cmluZyhPYmplY3Qua2V5cyh1bnNjb3BhYmxl
cykuc29ydCgpKSwgImNvcHlXaXRoaW4sZW50cmllcyxmaWxsLGZpbmQsZmluZEluZGV4LGtleXMs
dmFsdWVzIik7Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBmaW5kID0gIkNvY29h
IjsKKyAgICB2YXIgZm9yRWFjaCA9ICJIaWRkZW4iOworICAgIHZhciBhcnJheSA9IFtdOworICAg
IHRlc3QodHlwZW9mIGFycmF5LmZpbmQsICJmdW5jdGlvbiIpOworCisgICAgd2l0aCAoYXJyYXkp
IHsKKyAgICAgICAgdGVzdCh0eXBlb2YgZmluZCwgInN0cmluZyIpOworICAgICAgICB0ZXN0KGZp
bmQsICJDb2NvYSIpOworICAgICAgICB0ZXN0KHR5cGVvZiBmb3JFYWNoLCAiZnVuY3Rpb24iKTsK
KyAgICAgICAgdGVzdChfX3Byb3RvX18sIEFycmF5LnByb3RvdHlwZSk7ICAvLyBhcnJheSdzIHVu
c2NvcGJhbGVzLl9fcHJvdG9fXyBpcyB1bmRlZmluZWQgPT4gZmFsc2UuCisgICAgfQorfSgpKTsK
KworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBbU3ltYm9sLnVu
c2NvcGFibGVzXTogeworICAgICAgICAgICAgQ29jb2E6IGZhbHNlLAorICAgICAgICAgICAgQ2Fw
cHVjY2lubzogdHJ1ZQorICAgICAgICB9LAorCisgICAgICAgIENvY29hOiBudWxsLAorICAgICAg
ICBDYXBwdWNjaW5vOiBudWxsCisgICAgfTsKKworICAgIHZhciBDb2NvYSA9ICJDb2NvYSI7Cisg
ICAgdmFyIENhcHB1Y2Npbm8gPSAiQ2FwcHVjY2lubyI7CisgICAgdmFyIHRvU3RyaW5nID0gInRv
U3RyaW5nIjsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCBudWxs
KTsKKyAgICAgICAgdGVzdChDYXBwdWNjaW5vLCAiQ2FwcHVjY2lubyIpOworICAgICAgICB0ZXN0
KHRvU3RyaW5nLCAidG9TdHJpbmciKTsgIC8vIG9iamVjdC50b1N0cmluZyBpcyBoaWRkZW4gYnkg
dW5zY29wYWJsZXMudG9TdHJpbmcuCisgICAgfQorCisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3Bh
Ymxlc10uQ29jb2EgPSB0cnVlOworCisgICAgd2l0aCAob2JqZWN0KSB7CisgICAgICAgIHRlc3Qo
Q29jb2EsICJDb2NvYSIpOworICAgICAgICB0ZXN0KENhcHB1Y2Npbm8sICJDYXBwdWNjaW5vIik7
CisgICAgfQorfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0geworICAg
ICAgICBnZXQgQ29jb2EoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB0cmFw
Iik7CisgICAgICAgIH0sCisgICAgICAgIENhcHB1Y2Npbm86IG51bGwKKyAgICB9OworCisgICAg
b2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10gPSB7CisgICAgICAgIENvY29hOiB0cnVlLAorICAg
ICAgICBDYXBwdWNjaW5vOiB0cnVlCisgICAgfTsKKworICAgIHZhciBDb2NvYSA9ICJDb2NvYSI7
CisgICAgdmFyIENhcHB1Y2Npbm8gPSAiQ2FwcHVjY2lubyI7CisgICAgdmFyIHRvU3RyaW5nID0g
InRvU3RyaW5nIjsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCAi
Q29jb2EiKTsKKyAgICB9CisKKyAgICBvYmplY3RbU3ltYm9sLnVuc2NvcGFibGVzXS5Db2NvYSA9
IGZhbHNlOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRo
IChvYmplY3QpIHsKKyAgICAgICAgICAgIENvY29hOworICAgICAgICB9CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIHRlc3QoU3RyaW5nKGVycm9yKSwg
IkVycm9yOiBiYWQgdHJhcCIpOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2Jq
ZWN0ID0geworICAgICAgICBDb2NvYTogbnVsbCwKKyAgICB9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShvYmplY3QsIFN5bWJvbC51bnNjb3BhYmxlcywgeworICAgICAgICBnZXQ6IGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidW5zY29wYWJsZXMgdHJhcCIp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICB2YXIgQ29jb2EgPSAiQ29jb2EiOworICAgIHZh
ciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAg
ICB0cnkgeworICAgICAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgICAgIENvY29hCisgICAg
ICAgIH0KKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAg
dGVzdChTdHJpbmcoZXJyb3IpLCAiRXJyb3I6IHVuc2NvcGFibGVzIHRyYXAiKTsKKworICAgIHdp
dGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENhcHB1Y2Npbm8sICJDYXBwdWNjaW5vIik7Cisg
ICAgfQorfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAg
ICBbU3ltYm9sLnVuc2NvcGFibGVzXTogeworICAgICAgICAgICAgZ2V0IENvY29hKCkgeworICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidW5zY29wYWJsZXMgdHJhcCIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9LAorICAgICAgICBDb2NvYTogbnVsbCwKKyAgICB9OworICAgIHZh
ciBDb2NvYSA9ICJDb2NvYSI7CisgICAgdmFyIENhcHB1Y2Npbm8gPSAiQ2FwcHVjY2lubyI7CisK
KyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIHdpdGggKG9iamVjdCkg
eworICAgICAgICAgICAgQ29jb2EKKyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgZXJyb3IgPSBlOworICAgIH0KKyAgICB0ZXN0KFN0cmluZyhlcnJvciksICJFcnJvcjogdW5z
Y29wYWJsZXMgdHJhcCIpOworCisgICAgd2l0aCAob2JqZWN0KSB7CisgICAgICAgIHRlc3QoQ2Fw
cHVjY2lubywgIkNhcHB1Y2Npbm8iKTsKKyAgICB9Cit9KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249027</attachid>
            <date>2015-03-19 01:47:46 -0700</date>
            <delta_ts>2015-03-22 04:44:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142829-20150319174714.patch</filename>
            <type>text/plain</type>
            <size>10940</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZDMwZDk0Mjc0ZTY0YzYyNzcwNWY2ZDZhZWQ3MDNlMmVkMjFhNWIyLi4wMmE1MTU2NWI4N2NkNWYw
OTBkZGRiMThjMjc3NGZlYjQ2MDU1MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxNS0wMy0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3ltYm9sLnVuc2NvcGFibGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI4MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlu
dHJvZHVjZXMgU3ltYm9sLnVuc2NvcGFibGVzIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIEluIEVT
Niwgc29tZSBnZW5lcmljIG5hbWVzIChsaWtlIGtleXMsIHZhbHVlcykgYXJlIGludHJvZHVjZWQK
KyAgICAgICAgYXMgQXJyYXkncyBtZXRob2QgbmFtZS4gQW5kIHRoaXMgYnJlYWtzIHRoZSB3ZWIg
c2luY2Ugc29tZSB3ZWIgc2l0ZXMKKyAgICAgICAgdXNlIGxpa2UgdGhlIGZvbGxvd2luZyBjb2Rl
LgorCisgICAgICAgIHZhciB2YWx1ZXMgPSAuLi47CisgICAgICAgIHdpdGggKGFycmF5KSB7Cisg
ICAgICAgICAgICB2YWx1ZXM7ICAvLyBUaGlzIHZhbHVlcyBpcyB0cmFwcGVkIGJ5IGFycmF5J3Mg
bWV0aG9kICJ2YWx1ZXMiLgorICAgICAgICB9CisKKyAgICAgICAgVG8gZml4IHRoaXMsIFN5bWJv
bC51bnNjb3BhYmxlcyBpbnRyb2R1Y2VzIGJsYWNrbGlzdAorICAgICAgICBmb3Igd2l0aCBzY29w
ZSdzIHRyYXBwaW5nLiBXaGVuIHJlc29sdmluZyBzY29wZSwKKyAgICAgICAgaWYgbmFtZSBpcyBm
b3VuZCBpbiB0aGUgdGFyZ2V0IHNjb3BlIGFuZCB0aGUgdGFyZ2V0IHNjb3BlIGlzIHdpdGggc2Nv
cGUsCisgICAgICAgIHdlIGNoZWNrIFN5bWJvbC51bnNjb3BhYmxlcyBvYmplY3QgdG8gZmlsdGVy
IGdlbmVyaWMgbmFtZXMuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG9ubHkgYWN0
aXZlIGZvciB3aXRoIHNjb3Blcy4KKyAgICAgICAgR2xvYmFsIHNjb3BlIGRvZXMgbm90IGhhdmUg
dW5zY29wYWJsZXMgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICBBbmQgc2luY2UKKyAgICAgICAg
MSkgb3BfcmVzb2x2ZV9zY29wZSBmb3Igd2l0aCBzY29wZSBhbHdheXMgcmV0dXJuIER5bmFtaWMg
cmVzb2x2ZSB0eXBlLAorICAgICAgICAyKSBpbiB0aGF0IGNhc2UsIEpTU2NvcGU6OnJlc29sdmUg
aXMgYWx3YXlzIHVzZWQsCisgICAgICAgIDMpIHRoZSBjb2RlIHdoaWNoIGNvbnRhaW5zIG9wX3Jl
c29sdmVfc2NvcGUgdGhhdCByZXR1cm5zIER5bmFtaWMgY2Fubm90IGJlIGNvbXBpbGVkIHdpdGgg
REZHIGFuZCBGVEwsCisgICAgICAgIHRvIGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uYWxpdHksIHdl
IGp1c3QgY2hhbmdlIEpTU2NvcGU6OnJlc29sdmUgYW5kIG5vIG5lZWQgdG8gY2hhbmdlIEpJVCBj
b2RlLgorICAgICAgICBTbyBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIGlzIG9ubHkgdmlzaWJsZSBp
biBEeW5hbWljIHJlc29sdmluZyBjYXNlLCBhbmQgaXQgaXMgYWxyZWFkeSBtdWNoIHNsb3cuCisK
KyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJy
YXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNTY29wZTo6cmVzb2x2ZSk6CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmg6CisgICAg
ICAgIChKU0M6OlNjb3BlQ2hhaW5JdGVyYXRvcjo6c2NvcGUpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9nbG9iYWwtZW52aXJvbm1lbnQtZG9lcy1ub3QtdHJhcC11bnNjb3BhYmxlcy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdW5zY29wYWJsZXMu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICguKToKKwogMjAxNS0wMy0xOCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIEVTNiBDbGFz
c2VzOiBFeHRlbmRzIHNob3VsZCBhY2NlcHQgYW4gZXhwcmVzc2lvbiB3aXRob3V0IHBhcmVudGhl
c2lzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5j
cHAKaW5kZXggM2ZkMDM0YTFjMzI4NDYxYTQ2NWNlNjYyYzA5OGQyM2RlMWI0ODc0ZC4uYzBiOTdm
YjY5ZmU3OGJkYWJmZTU2NDRkMTc4ZmZjOTMxOTEyN2RiYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSm9pbmVyLmgi
CiAjaW5jbHVkZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNp
bmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgpAQCAtMTM4LDYgKzEzOSwyMSBAQCB2b2lk
IEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChp
bmhlcml0cyhpbmZvKCkpKTsKICAgICB2bS5wcm90b3R5cGVNYXAuYWRkUHJvdG90eXBlKHRoaXMp
OworICAgIHsKKyAgICAgICAgSlNPYmplY3QqIHVuc2NvcGFibGVzID0gY29uc3RydWN0RW1wdHlP
YmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3Rv
dHlwZU9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICAgICAgY29uc3QgY2hhciogdW5zY29wYWJsZU5h
bWVzW10gPSB7CisgICAgICAgICAgICAiY29weVdpdGhpbiIsCisgICAgICAgICAgICAiZW50cmll
cyIsCisgICAgICAgICAgICAiZmlsbCIsCisgICAgICAgICAgICAiZmluZCIsCisgICAgICAgICAg
ICAiZmluZEluZGV4IiwKKyAgICAgICAgICAgICJrZXlzIiwKKyAgICAgICAgICAgICJ2YWx1ZXMi
CisgICAgICAgIH07CisgICAgICAgIGZvciAoY29uc3QgY2hhciogdW5zY29wYWJsZU5hbWUgOiB1
bnNjb3BhYmxlTmFtZXMpCisgICAgICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyKCZ2bSwgdW5zY29wYWJsZU5hbWUpLCBqc0Jvb2xlYW4odHJ1ZSkpOworICAgICAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dW5zY29w
YWJsZXNQcml2YXRlTmFtZSwgdW5zY29wYWJsZXMsIERvbnRFbnVtIHwgUmVhZE9ubHkpOworICAg
IH0KICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yUHJp
dmF0ZU5hbWUsIGFycmF5UHJvdG9GdW5jVmFsdWVzLCBEb250RW51bSwgMCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4
IDZmMzRmYTkzMGQzYjE2Mjg3NTgwYmE0NWRkNWI1N2Q0MDdlZDNlNDYuLjA1YTUxZDRkZmNkODkz
MTQ1OGI2NTkxMTQ5YzZlN2U5MDcxMjU3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjMxLDcgKzIzMSw3IEBACiAgICAg
bWFjcm8oc3BsaXQpIFwKICAgICBtYWNybyh0b1ByaW1pdGl2ZSkgXAogICAgIG1hY3JvKHRvU3Ry
aW5nVGFnKSBcCi0gICAgbWFjcm8odW5zY29wYWJsZSkKKyAgICBtYWNybyh1bnNjb3BhYmxlcykK
IAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9O
QU1FKG1hY3JvKSBcCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VM
TF9LTk9XTl9TWU1CT0wobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU2NvcGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
Y29wZS5jcHAKaW5kZXggMzAwY2JlZjk3ZjBhOGU0MzY1YWZjMDQ2N2ZiMjk3ZGIyMTczMmFmYS4u
NDNhZjBkOTdjYmY0NzgxY2JlOWY1Yzc4NmI1NDgxNzQ1MjJkZmJmMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKQEAgLTEzOCwxMyArMTM4LDI4IEBAIEpTVmFs
dWUgSlNTY29wZTo6cmVzb2x2ZShFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIHNjb3BlLCBjb25z
dCBJZGVudGlmaWVyJiBpZGVuCiAgICAgU2NvcGVDaGFpbkl0ZXJhdG9yIGVuZCA9IHNjb3BlLT5l
bmQoKTsKICAgICBTY29wZUNoYWluSXRlcmF0b3IgaXQgPSBzY29wZS0+YmVnaW4oKTsKICAgICB3
aGlsZSAoMSkgeworICAgICAgICBKU1Njb3BlKiBzY29wZSA9IGl0LnNjb3BlKCk7CiAgICAgICAg
IEpTT2JqZWN0KiBvYmplY3QgPSBpdC5nZXQoKTsKIAogICAgICAgICBpZiAoKytpdCA9PSBlbmQp
IC8vIEdsb2JhbCBzY29wZS4KICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CiAKLSAgICAgICAg
aWYgKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgaWRlbnQpKQotICAgICAgICAgICAgcmV0dXJu
IG9iamVjdDsKKyAgICAgICAgaWYgKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgaWRlbnQpKSB7
CisgICAgICAgICAgICBpZiAoc2NvcGUtPnR5cGUoKSAhPSBXaXRoU2NvcGVUeXBlKQorICAgICAg
ICAgICAgICAgIHJldHVybiBvYmplY3Q7CisKKyAgICAgICAgICAgIEpTVmFsdWUgdW5zY29wYWJs
ZXMgPSBvYmplY3QtPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudW5zY29wYWJsZXNQ
cml2YXRlTmFtZSk7CisgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgICAgIGlmICghdW5zY29wYWJsZXMu
aXNPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OworICAgICAgICAgICAg
SlNWYWx1ZSBibG9ja2VkID0ganNDYXN0PEpTT2JqZWN0Kj4odW5zY29wYWJsZXMpLT5nZXQoZXhl
YywgaWRlbnQpOworICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAgICAgICBpZiAoIWJsb2NrZWQudG9Cb29s
ZWFuKGV4ZWMpKQorICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAgICAgICBB
U1NFUlRfV0lUSF9NRVNTQUdFKCFleGVjLT5oYWRFeGNlcHRpb24oKSwgIkpTVmFsdWU6OnRvQm9v
bGVhbiBkb2VzIG5vdCByYWlzZSBhbnkgZXJyb3JzLiIpOworICAgICAgICB9CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmgKaW5kZXggMjBlNDRiY2JkNmZk
YTE0OTkyZTNiYTE2NTBmYzg1OTViOTAyNzA5OS4uYWE4YmRlYjk0YjVlODllY2Y1MzU1YjBjNzgw
ZmM4NTRlNzJlNjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTY29wZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuaApA
QCAtMTkxLDYgKzE5MSw3IEBAIGNsYXNzIFNjb3BlQ2hhaW5JdGVyYXRvciB7CiAKICAgICBKU09i
amVjdCogZ2V0KCkgY29uc3QgeyByZXR1cm4gSlNTY29wZTo6b2JqZWN0QXRTY29wZShtX25vZGUp
OyB9CiAgICAgSlNPYmplY3QqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBKU1Njb3BlOjpv
YmplY3RBdFNjb3BlKG1fbm9kZSk7IH0KKyAgICBKU1Njb3BlKiBzY29wZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbm9kZTsgfQogCiAgICAgU2NvcGVDaGFpbkl0ZXJhdG9yJiBvcGVyYXRvcisrKCkgeyBt
X25vZGUgPSBtX25vZGUtPm5leHQoKTsgcmV0dXJuICp0aGlzOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2xvYmFsLWVudmlyb25tZW50LWRvZXMt
bm90LXRyYXAtdW5zY29wYWJsZXMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2dsb2JhbC1lbnZpcm9ubWVudC1kb2VzLW5vdC10cmFwLXVuc2NvcGFibGVzLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRlOTY2MDg5NGFiNThiNzZjNmUxOWNjZjdkYjAyNjI0MGM5ZDIxZDkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dsb2JhbC1lbnZp
cm9ubWVudC1kb2VzLW5vdC10cmFwLXVuc2NvcGFibGVzLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1
bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9
CisKK3ZhciBnbG9iYWwgPSBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTsKK3ZhciBDb2Nv
YSA9ICdDb2NvYSc7CisKK2dsb2JhbFtTeW1ib2wudW5zY29wYWJsZXNdID0geworICAgIENvY29h
OiB0cnVlCit9OworCit0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyhmdW5jdGlvbiAoKSB7CisgICAg
dmFyIENvY29hID0gJ2xvY2FsJworICAgIHdpdGggKGdsb2JhbCkgeworICAgICAgICB0ZXN0KENv
Y29hLCAibG9jYWwiKTsKKyAgICB9Cit9KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy91bnNjb3BhYmxlcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdW5zY29wYWJsZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY2YzZmYmFlMTk0Y2I5
NTE0YTAwYTkwYmVkZWFkYWQ1NWFiOWI4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdW5zY29wYWJsZXMuanMKQEAgLTAsMCArMSwxNTcgQEAK
K2Z1bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgdmFyIHVuc2Nv
cGFibGVzID0gYXJyYXlbU3ltYm9sLnVuc2NvcGFibGVzXTsKKworICAgIHRlc3QodHlwZW9mIHVu
c2NvcGFibGVzLCAib2JqZWN0Iik7CisgICAgdGVzdCh1bnNjb3BhYmxlcy5fX3Byb3RvX18sIHVu
ZGVmaW5lZCk7CisgICAgdGVzdChTdHJpbmcoT2JqZWN0LmtleXModW5zY29wYWJsZXMpLnNvcnQo
KSksICJjb3B5V2l0aGluLGVudHJpZXMsZmlsbCxmaW5kLGZpbmRJbmRleCxrZXlzLHZhbHVlcyIp
OworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZmluZCA9ICJDb2NvYSI7CisgICAg
dmFyIGZvckVhY2ggPSAiSGlkZGVuIjsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICB0ZXN0KHR5
cGVvZiBhcnJheS5maW5kLCAiZnVuY3Rpb24iKTsKKworICAgIHdpdGggKGFycmF5KSB7CisgICAg
ICAgIHRlc3QodHlwZW9mIGZpbmQsICJzdHJpbmciKTsKKyAgICAgICAgdGVzdChmaW5kLCAiQ29j
b2EiKTsKKyAgICAgICAgdGVzdCh0eXBlb2YgZm9yRWFjaCwgImZ1bmN0aW9uIik7CisgICAgICAg
IHRlc3QoX19wcm90b19fLCBBcnJheS5wcm90b3R5cGUpOyAgLy8gYXJyYXkncyB1bnNjb3BiYWxl
cy5fX3Byb3RvX18gaXMgdW5kZWZpbmVkID0+IGZhbHNlLgorICAgIH0KK30oKSk7CisKKyhmdW5j
dGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgW1N5bWJvbC51bnNjb3BhYmxl
c106IHsKKyAgICAgICAgICAgIENvY29hOiBmYWxzZSwKKyAgICAgICAgICAgIENhcHB1Y2Npbm86
IHRydWUKKyAgICAgICAgfSwKKworICAgICAgICBDb2NvYTogbnVsbCwKKyAgICAgICAgQ2FwcHVj
Y2lubzogbnVsbAorICAgIH07CisKKyAgICB2YXIgQ29jb2EgPSAiQ29jb2EiOworICAgIHZhciBD
YXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworICAgIHZhciB0b1N0cmluZyA9ICJ0b1N0cmluZyI7
CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChDb2NvYSwgbnVsbCk7CisgICAg
ICAgIHRlc3QoQ2FwcHVjY2lubywgIkNhcHB1Y2Npbm8iKTsKKyAgICAgICAgdGVzdCh0b1N0cmlu
ZywgInRvU3RyaW5nIik7ICAvLyBvYmplY3QudG9TdHJpbmcgaXMgaGlkZGVuIGJ5IHVuc2NvcGFi
bGVzLnRvU3RyaW5nLgorICAgIH0KKworICAgIG9iamVjdFtTeW1ib2wudW5zY29wYWJsZXNdLkNv
Y29hID0gdHJ1ZTsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCAi
Q29jb2EiKTsKKyAgICAgICAgdGVzdChDYXBwdWNjaW5vLCAiQ2FwcHVjY2lubyIpOworICAgIH0K
K30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgZ2V0
IENvY29hKCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgdHJhcCIpOworICAg
ICAgICB9LAorICAgICAgICBDYXBwdWNjaW5vOiBudWxsCisgICAgfTsKKworICAgIG9iamVjdFtT
eW1ib2wudW5zY29wYWJsZXNdID0geworICAgICAgICBDb2NvYTogdHJ1ZSwKKyAgICAgICAgQ2Fw
cHVjY2lubzogdHJ1ZQorICAgIH07CisKKyAgICB2YXIgQ29jb2EgPSAiQ29jb2EiOworICAgIHZh
ciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworICAgIHZhciB0b1N0cmluZyA9ICJ0b1N0cmlu
ZyI7CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChDb2NvYSwgIkNvY29hIik7
CisgICAgfQorCisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10uQ29jb2EgPSBmYWxzZTsK
KworICAgIHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgd2l0aCAob2JqZWN0
KSB7CisgICAgICAgICAgICBDb2NvYTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICB0ZXN0KFN0cmluZyhlcnJvciksICJFcnJvcjog
YmFkIHRyYXAiKTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsK
KyAgICAgICAgQ29jb2E6IG51bGwsCisgICAgfTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
b2JqZWN0LCBTeW1ib2wudW5zY29wYWJsZXMsIHsKKyAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInVuc2NvcGFibGVzIHRyYXAiKTsKKyAgICAg
ICAgfQorICAgIH0pOworCisgICAgdmFyIENvY29hID0gIkNvY29hIjsKKyAgICB2YXIgQ2FwcHVj
Y2lubyA9ICJDYXBwdWNjaW5vIjsKKworICAgIHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsK
KyAgICAgICAgd2l0aCAob2JqZWN0KSB7CisgICAgICAgICAgICBDb2NvYQorICAgICAgICB9Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIHRlc3QoU3Ry
aW5nKGVycm9yKSwgIkVycm9yOiB1bnNjb3BhYmxlcyB0cmFwIik7CisKKyAgICB3aXRoIChvYmpl
Y3QpIHsKKyAgICAgICAgdGVzdChDYXBwdWNjaW5vLCAiQ2FwcHVjY2lubyIpOworICAgIH0KK30o
KSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgW1N5bWJv
bC51bnNjb3BhYmxlc106IHsKKyAgICAgICAgICAgIGdldCBDb2NvYSgpIHsKKyAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoInVuc2NvcGFibGVzIHRyYXAiKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSwKKyAgICAgICAgQ29jb2E6IG51bGwsCisgICAgfTsKKyAgICB2YXIgQ29jb2Eg
PSAiQ29jb2EiOworICAgIHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworCisgICAgdmFy
IGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRoIChvYmplY3QpIHsKKyAgICAg
ICAgICAgIENvY29hCisgICAgICAgIH0KKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9y
ID0gZTsKKyAgICB9CisgICAgdGVzdChTdHJpbmcoZXJyb3IpLCAiRXJyb3I6IHVuc2NvcGFibGVz
IHRyYXAiKTsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENhcHB1Y2Npbm8s
ICJDYXBwdWNjaW5vIik7CisgICAgfQorfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIg
b2JqZWN0ID0geworICAgICAgICBbU3ltYm9sLnVuc2NvcGFibGVzXTogNDIsCisgICAgICAgIENv
Y29hOiAiT0siLAorICAgIH07CisgICAgdmFyIENvY29hID0gIkNvY29hIjsKKworICAgIHdpdGgg
KG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCAiT0siKTsKKyAgICB9Cit9KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249193</attachid>
            <date>2015-03-22 04:44:56 -0700</date>
            <delta_ts>2015-03-31 14:32:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142829-20150322204421.patch</filename>
            <type>text/plain</type>
            <size>12944</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjZkMGZiZDViMjJiNjI0ZGUxZmQ4MTMxOTM4NjQxZDE0ZmI4ZDg5Li5kOGZjODFmN2ZjMWZhN2Qw
OWFhYzUwNTc0NmZjMTFhMjY5YTdlODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxNS0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3ltYm9sLnVuc2NvcGFibGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI4MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlu
dHJvZHVjZXMgU3ltYm9sLnVuc2NvcGFibGVzIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIEluIEVT
Niwgc29tZSBnZW5lcmljIG5hbWVzIChsaWtlIGtleXMsIHZhbHVlcykgYXJlIGludHJvZHVjZWQK
KyAgICAgICAgYXMgQXJyYXkncyBtZXRob2QgbmFtZS4gQW5kIHRoaXMgYnJlYWtzIHRoZSB3ZWIg
c2luY2Ugc29tZSB3ZWIgc2l0ZXMKKyAgICAgICAgdXNlIGxpa2UgdGhlIGZvbGxvd2luZyBjb2Rl
LgorCisgICAgICAgIHZhciB2YWx1ZXMgPSAuLi47CisgICAgICAgIHdpdGggKGFycmF5KSB7Cisg
ICAgICAgICAgICB2YWx1ZXM7ICAvLyBUaGlzIHZhbHVlcyBpcyB0cmFwcGVkIGJ5IGFycmF5J3Mg
bWV0aG9kICJ2YWx1ZXMiLgorICAgICAgICB9CisKKyAgICAgICAgVG8gZml4IHRoaXMsIFN5bWJv
bC51bnNjb3BhYmxlcyBpbnRyb2R1Y2VzIGJsYWNrbGlzdAorICAgICAgICBmb3Igd2l0aCBzY29w
ZSdzIHRyYXBwaW5nLiBXaGVuIHJlc29sdmluZyBzY29wZSwKKyAgICAgICAgaWYgbmFtZSBpcyBm
b3VuZCBpbiB0aGUgdGFyZ2V0IHNjb3BlIGFuZCB0aGUgdGFyZ2V0IHNjb3BlIGlzIHdpdGggc2Nv
cGUsCisgICAgICAgIHdlIGNoZWNrIFN5bWJvbC51bnNjb3BhYmxlcyBvYmplY3QgdG8gZmlsdGVy
IGdlbmVyaWMgbmFtZXMuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG9ubHkgYWN0
aXZlIGZvciB3aXRoIHNjb3Blcy4KKyAgICAgICAgR2xvYmFsIHNjb3BlIGRvZXMgbm90IGhhdmUg
dW5zY29wYWJsZXMgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICBBbmQgc2luY2UKKyAgICAgICAg
MSkgb3BfcmVzb2x2ZV9zY29wZSBmb3Igd2l0aCBzY29wZSBhbHdheXMgcmV0dXJuIER5bmFtaWMg
cmVzb2x2ZSB0eXBlLAorICAgICAgICAyKSBpbiB0aGF0IGNhc2UsIEpTU2NvcGU6OnJlc29sdmUg
aXMgYWx3YXlzIHVzZWQgaW4gSklUIGFuZCBMTEludCwKKyAgICAgICAgMykgdGhlIGNvZGUgd2hp
Y2ggY29udGFpbnMgb3BfcmVzb2x2ZV9zY29wZSB0aGF0IHJldHVybnMgRHluYW1pYyBjYW5ub3Qg
YmUgY29tcGlsZWQgd2l0aCBERkcgYW5kIEZUTCwKKyAgICAgICAgdG8gaW1wbGVtZW50IHRoaXMg
ZnVuY3Rpb25hbGl0eSwgd2UganVzdCBjaGFuZ2UgSlNTY29wZTo6cmVzb2x2ZSBhbmQgbm8gbmVl
ZCB0byBjaGFuZ2UgSklUIGNvZGUuCisgICAgICAgIFNvIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24g
aXMgb25seSB2aXNpYmxlIGluIER5bmFtaWMgcmVzb2x2aW5nIGNhc2UsIGFuZCBpdCBpcyBhbHJl
YWR5IG11Y2ggc2xvdy4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU2NvcGUu
Y3BwOgorICAgICAgICAoSlNDOjpKU1Njb3BlOjpyZXNvbHZlKToKKyAgICAgICAgKiBydW50aW1l
L0pTU2NvcGUuaDoKKyAgICAgICAgKEpTQzo6U2NvcGVDaGFpbkl0ZXJhdG9yOjpzY29wZSk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL2dsb2JhbC1lbnZpcm9ubWVudC1kb2VzLW5vdC10cmFwLXVu
c2NvcGFibGVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy91bnNjb3BhYmxlcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKC4p
OgorCiAyMDE1LTAzLTIxICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IGEgdHlwbyBpbiBQYXJzZXIgZXJyb3IgbWVzc2FnZQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDNmZDAzNGEx
YzMyODQ2MWE0NjVjZTY2MmMwOThkMjNkZTFiNDg3NGQuLmMwYjk3ZmI2OWZlNzhiZGFiZmU1NjQ0
ZDE3OGZmYzkzMTkxMjdkYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU1N0cmlu
Z0J1aWxkZXIuaCIKICNpbmNsdWRlICJKU1N0cmluZ0pvaW5lci5oIgogI2luY2x1ZGUgIkxvb2t1
cC5oIgorI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJv
dG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIlN0cmluZ1JlY3Vy
c2lvbkNoZWNrZXIuaCIKQEAgLTEzOCw2ICsxMzksMjEgQEAgdm9pZCBBcnJheVByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7
CiAgICAgdm0ucHJvdG90eXBlTWFwLmFkZFByb3RvdHlwZSh0aGlzKTsKKyAgICB7CisgICAgICAg
IEpTT2JqZWN0KiB1bnNjb3BhYmxlcyA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1
cmUoKSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHVuc2NvcGFibGVOYW1lc1tdID0geworICAgICAg
ICAgICAgImNvcHlXaXRoaW4iLAorICAgICAgICAgICAgImVudHJpZXMiLAorICAgICAgICAgICAg
ImZpbGwiLAorICAgICAgICAgICAgImZpbmQiLAorICAgICAgICAgICAgImZpbmRJbmRleCIsCisg
ICAgICAgICAgICAia2V5cyIsCisgICAgICAgICAgICAidmFsdWVzIgorICAgICAgICB9OworICAg
ICAgICBmb3IgKGNvbnN0IGNoYXIqIHVuc2NvcGFibGVOYW1lIDogdW5zY29wYWJsZU5hbWVzKQor
ICAgICAgICAgICAgdW5zY29wYWJsZXMtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcigmdm0sIHVu
c2NvcGFibGVOYW1lKSwganNCb29sZWFuKHRydWUpKTsKKyAgICAgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnVuc2NvcGFibGVzUHJpdmF0ZU5hbWUs
IHVuc2NvcGFibGVzLCBEb250RW51bSB8IFJlYWRPbmx5KTsKKyAgICB9CiAgICAgSlNDX05BVElW
RV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclByaXZhdGVOYW1lLCBhcnJheVBy
b3RvRnVuY1ZhbHVlcywgRG9udEVudW0sIDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCA2ZjM0ZmE5MzBkM2IxNjI4
NzU4MGJhNDVkZDViNTdkNDA3ZWQzZTQ2Li4wNWE1MWQ0ZGZjZDg5MzE0NThiNjU5MTE0OWM2ZTdl
OTA3MTI1NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
bklkZW50aWZpZXJzLmgKQEAgLTIzMSw3ICsyMzEsNyBAQAogICAgIG1hY3JvKHNwbGl0KSBcCiAg
ICAgbWFjcm8odG9QcmltaXRpdmUpIFwKICAgICBtYWNybyh0b1N0cmluZ1RhZykgXAotICAgIG1h
Y3JvKHVuc2NvcGFibGUpCisgICAgbWFjcm8odW5zY29wYWJsZXMpCiAKICNkZWZpbmUgSlNDX0NP
TU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAogICAg
IEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKG1h
Y3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3Bl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCmluZGV4IDMw
MGNiZWY5N2YwYThlNDM2NWFmYzA0NjdmYjI5N2RiMjE3MzJhZmEuLjQzYWYwZDk3Y2JmNDc4MWNi
ZTlmNWM3ODZiNTQ4MTc0NTIyZGZiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU2NvcGUuY3BwCkBAIC0xMzgsMTMgKzEzOCwyOCBAQCBKU1ZhbHVlIEpTU2NvcGU6OnJlc29s
dmUoRXhlY1N0YXRlKiBleGVjLCBKU1Njb3BlKiBzY29wZSwgY29uc3QgSWRlbnRpZmllciYgaWRl
bgogICAgIFNjb3BlQ2hhaW5JdGVyYXRvciBlbmQgPSBzY29wZS0+ZW5kKCk7CiAgICAgU2NvcGVD
aGFpbkl0ZXJhdG9yIGl0ID0gc2NvcGUtPmJlZ2luKCk7CiAgICAgd2hpbGUgKDEpIHsKKyAgICAg
ICAgSlNTY29wZSogc2NvcGUgPSBpdC5zY29wZSgpOwogICAgICAgICBKU09iamVjdCogb2JqZWN0
ID0gaXQuZ2V0KCk7CiAKICAgICAgICAgaWYgKCsraXQgPT0gZW5kKSAvLyBHbG9iYWwgc2NvcGUu
CiAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OwogCi0gICAgICAgIGlmIChvYmplY3QtPmhhc1By
b3BlcnR5KGV4ZWMsIGlkZW50KSkKLSAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAg
IGlmIChvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGlkZW50KSkgeworICAgICAgICAgICAgaWYg
KHNjb3BlLT50eXBlKCkgIT0gV2l0aFNjb3BlVHlwZSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
b2JqZWN0OworCisgICAgICAgICAgICBKU1ZhbHVlIHVuc2NvcGFibGVzID0gb2JqZWN0LT5nZXQo
ZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLnVuc2NvcGFibGVzUHJpdmF0ZU5hbWUpOworICAg
ICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIHJldHVy
biBvYmplY3Q7CisgICAgICAgICAgICBpZiAoIXVuc2NvcGFibGVzLmlzT2JqZWN0KCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgICAgIEpTVmFsdWUgYmxvY2tlZCA9
IGpzQ2FzdDxKU09iamVjdCo+KHVuc2NvcGFibGVzKS0+Z2V0KGV4ZWMsIGlkZW50KTsKKyAgICAg
ICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
b2JqZWN0OworICAgICAgICAgICAgaWYgKCFibG9ja2VkLnRvQm9vbGVhbihleGVjKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gb2JqZWN0OworICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghZXhlYy0+aGFkRXhjZXB0aW9uKCksICJKU1ZhbHVlOjp0b0Jvb2xlYW4gZG9lcyBub3QgcmFp
c2UgYW55IGVycm9ycy4iKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTY29wZS5oCmluZGV4IDIwZTQ0YmNiZDZmZGExNDk5MmUzYmExNjUwZmM4
NTk1YjkwMjcwOTkuLmFhOGJkZWI5NGI1ZTg5ZWNmNTM1NWIwYzc4MGZjODU0ZTcyZTY1OGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmgKQEAgLTE5MSw2ICsxOTEsNyBA
QCBjbGFzcyBTY29wZUNoYWluSXRlcmF0b3IgewogCiAgICAgSlNPYmplY3QqIGdldCgpIGNvbnN0
IHsgcmV0dXJuIEpTU2NvcGU6Om9iamVjdEF0U2NvcGUobV9ub2RlKTsgfQogICAgIEpTT2JqZWN0
KiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gSlNTY29wZTo6b2JqZWN0QXRTY29wZShtX25v
ZGUpOyB9CisgICAgSlNTY29wZSogc2NvcGUoKSBjb25zdCB7IHJldHVybiBtX25vZGU7IH0KIAog
ICAgIFNjb3BlQ2hhaW5JdGVyYXRvciYgb3BlcmF0b3IrKygpIHsgbV9ub2RlID0gbV9ub2RlLT5u
ZXh0KCk7IHJldHVybiAqdGhpczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2dsb2JhbC1lbnZpcm9ubWVudC1kb2VzLW5vdC10cmFwLXVuc2NvcGFi
bGVzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nbG9iYWwtZW52aXJv
bm1lbnQtZG9lcy1ub3QtdHJhcC11bnNjb3BhYmxlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTk2NjA4OTRh
YjU4Yjc2YzZlMTljY2Y3ZGIwMjYyNDBjOWQyMWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nbG9iYWwtZW52aXJvbm1lbnQtZG9lcy1ub3Qt
dHJhcC11bnNjb3BhYmxlcy5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiB0ZXN0KGFjdHVh
bCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit2YXIgZ2xvYmFsID0g
bmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7Cit2YXIgQ29jb2EgPSAnQ29jb2EnOworCitn
bG9iYWxbU3ltYm9sLnVuc2NvcGFibGVzXSA9IHsKKyAgICBDb2NvYTogdHJ1ZQorfTsKKwordGVz
dChDb2NvYSwgIkNvY29hIik7CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBDb2NvYSA9ICdsb2Nh
bCcKKyAgICB3aXRoIChnbG9iYWwpIHsKKyAgICAgICAgdGVzdChDb2NvYSwgImxvY2FsIik7Cisg
ICAgfQorfSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvdW5zY29wYWJsZXMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Vu
c2NvcGFibGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzYmY4YmU5NzZkMjM3MGRiMmViYWU2MWQ5MjYyODNl
YTVlNDVhN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3Vuc2NvcGFibGVzLmpzCkBAIC0wLDAgKzEsMjM5IEBACitmdW5jdGlvbiB0ZXN0KGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCisoZnVuY3Rpb24g
KCkgeworICAgIHZhciBhcnJheSA9IFtdOworICAgIHZhciB1bnNjb3BhYmxlcyA9IGFycmF5W1N5
bWJvbC51bnNjb3BhYmxlc107CisKKyAgICB0ZXN0KHR5cGVvZiB1bnNjb3BhYmxlcywgIm9iamVj
dCIpOworICAgIHRlc3QodW5zY29wYWJsZXMuX19wcm90b19fLCB1bmRlZmluZWQpOworICAgIHRl
c3QoU3RyaW5nKE9iamVjdC5rZXlzKHVuc2NvcGFibGVzKS5zb3J0KCkpLCAiY29weVdpdGhpbixl
bnRyaWVzLGZpbGwsZmluZCxmaW5kSW5kZXgsa2V5cyx2YWx1ZXMiKTsKK30oKSk7CisKKyhmdW5j
dGlvbiAoKSB7CisgICAgdmFyIGZpbmQgPSAiQ29jb2EiOworICAgIHZhciBmb3JFYWNoID0gIkhp
ZGRlbiI7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgdGVzdCh0eXBlb2YgYXJyYXkuZmluZCwg
ImZ1bmN0aW9uIik7CisKKyAgICB3aXRoIChhcnJheSkgeworICAgICAgICB0ZXN0KHR5cGVvZiBm
aW5kLCAic3RyaW5nIik7CisgICAgICAgIHRlc3QoZmluZCwgIkNvY29hIik7CisgICAgICAgIHRl
c3QodHlwZW9mIGZvckVhY2gsICJmdW5jdGlvbiIpOworICAgICAgICB0ZXN0KF9fcHJvdG9fXywg
QXJyYXkucHJvdG90eXBlKTsgIC8vIGFycmF5J3MgdW5zY29wYWJsZXMuX19wcm90b19fIGlzIHVu
ZGVmaW5lZCA9PiBmYWxzZS4KKyAgICB9Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZh
ciBvYmplY3QgPSB7CisgICAgICAgIFtTeW1ib2wudW5zY29wYWJsZXNdOiB7CisgICAgICAgICAg
ICBDb2NvYTogZmFsc2UsCisgICAgICAgICAgICBDYXBwdWNjaW5vOiB0cnVlCisgICAgICAgIH0s
CisKKyAgICAgICAgQ29jb2E6IG51bGwsCisgICAgICAgIENhcHB1Y2Npbm86IG51bGwKKyAgICB9
OworCisgICAgdmFyIENvY29hID0gIkNvY29hIjsKKyAgICB2YXIgQ2FwcHVjY2lubyA9ICJDYXBw
dWNjaW5vIjsKKyAgICB2YXIgdG9TdHJpbmcgPSAidG9TdHJpbmciOworCisgICAgd2l0aCAob2Jq
ZWN0KSB7CisgICAgICAgIHRlc3QoQ29jb2EsIG51bGwpOworICAgICAgICB0ZXN0KENhcHB1Y2Np
bm8sICJDYXBwdWNjaW5vIik7CisgICAgICAgIHRlc3QodG9TdHJpbmcsICJ0b1N0cmluZyIpOyAg
Ly8gb2JqZWN0LnRvU3RyaW5nIGlzIGhpZGRlbiBieSB1bnNjb3BhYmxlcy50b1N0cmluZy4KKyAg
ICB9CisKKyAgICBvYmplY3RbU3ltYm9sLnVuc2NvcGFibGVzXS5Db2NvYSA9IHRydWU7CisKKyAg
ICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChDb2NvYSwgIkNvY29hIik7CisgICAgICAg
IHRlc3QoQ2FwcHVjY2lubywgIkNhcHB1Y2Npbm8iKTsKKyAgICB9Cit9KCkpOworCisoZnVuY3Rp
b24gKCkgeworICAgIHZhciB1bnNjb3BhYmxlcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7CisgICAg
dW5zY29wYWJsZXMuQ29jb2EgPSBmYWxzZTsKKyAgICB1bnNjb3BhYmxlcy5DYXBwdWNjaW5vID0g
dHJ1ZTsKKworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIFtTeW1ib2wudW5zY29wYWJsZXNd
OiB1bnNjb3BhYmxlcywKKyAgICAgICAgQ29jb2E6IG51bGwsCisgICAgICAgIENhcHB1Y2Npbm86
IG51bGwsCisgICAgICAgIE1hdGNoYTogbnVsbAorICAgIH07CisKKyAgICB2YXIgQ29jb2EgPSAi
Q29jb2EiOworICAgIHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworICAgIHZhciBNYXRj
aGEgPSAiTWF0Y2hhIjsKKyAgICB2YXIgdG9TdHJpbmcgPSAidG9TdHJpbmciOworCisgICAgd2l0
aCAob2JqZWN0KSB7CisgICAgICAgIHRlc3QoQ29jb2EsIG51bGwpOworICAgICAgICB0ZXN0KENh
cHB1Y2Npbm8sICJDYXBwdWNjaW5vIik7CisgICAgICAgIHRlc3QoTWF0Y2hhLCBudWxsKTsKKyAg
ICAgICAgdGVzdCh0b1N0cmluZywgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyk7CisgICAgfQor
CisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10uQ29jb2EgPSB0cnVlOworICAgIG9iamVj
dFtTeW1ib2wudW5zY29wYWJsZXNdLkNhcHB1Y2Npbm8gPSBmYWxzZTsKKyAgICBvYmplY3RbU3lt
Ym9sLnVuc2NvcGFibGVzXS50b1N0cmluZyA9IHRydWU7CisKKyAgICB3aXRoIChvYmplY3QpIHsK
KyAgICAgICAgdGVzdChDb2NvYSwgIkNvY29hIik7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywg
bnVsbCk7CisgICAgICAgIHRlc3QodG9TdHJpbmcsICJ0b1N0cmluZyIpOworICAgICAgICB0ZXN0
KE1hdGNoYSwgbnVsbCk7CisgICAgfQorfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIg
cHJvdG8gPSBPYmplY3QuY3JlYXRlKG51bGwpOworICAgIHZhciB1bnNjb3BhYmxlcyA9IE9iamVj
dC5jcmVhdGUocHJvdG8pOworICAgIHVuc2NvcGFibGVzLkNvY29hID0gZmFsc2U7CisgICAgdW5z
Y29wYWJsZXMuQ2FwcHVjY2lubyA9IHRydWU7CisKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAg
ICBbU3ltYm9sLnVuc2NvcGFibGVzXTogdW5zY29wYWJsZXMsCisgICAgICAgIENvY29hOiBudWxs
LAorICAgICAgICBDYXBwdWNjaW5vOiBudWxsLAorICAgICAgICBNYXRjaGE6IG51bGwKKyAgICB9
OworCisgICAgdmFyIENvY29hID0gIkNvY29hIjsKKyAgICB2YXIgQ2FwcHVjY2lubyA9ICJDYXBw
dWNjaW5vIjsKKyAgICB2YXIgTWF0Y2hhID0gIk1hdGNoYSI7CisgICAgdmFyIHRvU3RyaW5nID0g
InRvU3RyaW5nIjsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCBu
dWxsKTsKKyAgICAgICAgdGVzdChDYXBwdWNjaW5vLCAiQ2FwcHVjY2lubyIpOworICAgICAgICB0
ZXN0KE1hdGNoYSwgbnVsbCk7CisgICAgICAgIHRlc3QodG9TdHJpbmcsIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcpOworICAgIH0KKworICAgIG9iamVjdFtTeW1ib2wudW5zY29wYWJsZXNdLkNv
Y29hID0gdHJ1ZTsKKyAgICBvYmplY3RbU3ltYm9sLnVuc2NvcGFibGVzXS5DYXBwdWNjaW5vID0g
ZmFsc2U7CisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10udG9TdHJpbmcgPSB0cnVlOwor
CisgICAgd2l0aCAob2JqZWN0KSB7CisgICAgICAgIHRlc3QoQ29jb2EsICJDb2NvYSIpOworICAg
ICAgICB0ZXN0KENhcHB1Y2Npbm8sIG51bGwpOworICAgICAgICB0ZXN0KHRvU3RyaW5nLCAidG9T
dHJpbmciKTsKKyAgICAgICAgdGVzdChNYXRjaGEsIG51bGwpOworICAgIH0KKworICAgIHByb3Rv
Lk1hdGNoYSA9IHRydWU7CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChDb2Nv
YSwgIkNvY29hIik7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywgbnVsbCk7CisgICAgICAgIHRl
c3QodG9TdHJpbmcsICJ0b1N0cmluZyIpOworICAgICAgICB0ZXN0KE1hdGNoYSwgIk1hdGNoYSIp
OworICAgIH0KK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAg
ICAgICAgZ2V0IENvY29hKCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgdHJh
cCIpOworICAgICAgICB9LAorICAgICAgICBDYXBwdWNjaW5vOiBudWxsCisgICAgfTsKKworICAg
IG9iamVjdFtTeW1ib2wudW5zY29wYWJsZXNdID0geworICAgICAgICBDb2NvYTogdHJ1ZSwKKyAg
ICAgICAgQ2FwcHVjY2lubzogdHJ1ZQorICAgIH07CisKKyAgICB2YXIgQ29jb2EgPSAiQ29jb2Ei
OworICAgIHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworICAgIHZhciB0b1N0cmluZyA9
ICJ0b1N0cmluZyI7CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChDb2NvYSwg
IkNvY29hIik7CisgICAgfQorCisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10uQ29jb2Eg
PSBmYWxzZTsKKworICAgIHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgd2l0
aCAob2JqZWN0KSB7CisgICAgICAgICAgICBDb2NvYTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICB0ZXN0KFN0cmluZyhlcnJvciks
ICJFcnJvcjogYmFkIHRyYXAiKTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9i
amVjdCA9IHsKKyAgICAgICAgQ29jb2E6IG51bGwsCisgICAgfTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkob2JqZWN0LCBTeW1ib2wudW5zY29wYWJsZXMsIHsKKyAgICAgICAgZ2V0OiBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInVuc2NvcGFibGVzIHRyYXAi
KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgdmFyIENvY29hID0gIkNvY29hIjsKKyAgICB2
YXIgQ2FwcHVjY2lubyA9ICJDYXBwdWNjaW5vIjsKKworICAgIHZhciBlcnJvciA9IG51bGw7Cisg
ICAgdHJ5IHsKKyAgICAgICAgd2l0aCAob2JqZWN0KSB7CisgICAgICAgICAgICBDb2NvYQorICAg
ICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAg
IHRlc3QoU3RyaW5nKGVycm9yKSwgIkVycm9yOiB1bnNjb3BhYmxlcyB0cmFwIik7CisKKyAgICB3
aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChDYXBwdWNjaW5vLCAiQ2FwcHVjY2lubyIpOwor
ICAgIH0KK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAg
ICAgW1N5bWJvbC51bnNjb3BhYmxlc106IHsKKyAgICAgICAgICAgIGdldCBDb2NvYSgpIHsKKyAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInVuc2NvcGFibGVzIHRyYXAiKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgQ29jb2E6IG51bGwsCisgICAgfTsKKyAgICB2
YXIgQ29jb2EgPSAiQ29jb2EiOworICAgIHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOwor
CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRoIChvYmplY3Qp
IHsKKyAgICAgICAgICAgIENvY29hCisgICAgICAgIH0KKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgdGVzdChTdHJpbmcoZXJyb3IpLCAiRXJyb3I6IHVu
c2NvcGFibGVzIHRyYXAiKTsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENh
cHB1Y2Npbm8sICJDYXBwdWNjaW5vIik7CisgICAgfQorfSgpKTsKKworKGZ1bmN0aW9uICgpIHsK
KyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBbU3ltYm9sLnVuc2NvcGFibGVzXTogNDIsCisg
ICAgICAgIENvY29hOiAiT0siLAorICAgIH07CisgICAgdmFyIENvY29hID0gIkNvY29hIjsKKwor
ICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCAiT0siKTsKKyAgICB9Cit9
KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249852</attachid>
            <date>2015-03-31 14:32:39 -0700</date>
            <delta_ts>2015-03-31 14:34:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142829-20150401063155.patch</filename>
            <type>text/plain</type>
            <size>13936</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZmNjM2QxNTdiYmMyNzhhZGUyOTEyOTc3ZWI5MzAxYTA5YTJjYjA4Li44MjI2N2YxZTk0ZDA0ZDkw
YTc0N2NkNmVhYjQ1OTQ4ODM3MzI5MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1MiBAQAogMjAxNS0wMy0zMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3ltYm9sLnVuc2NvcGFibGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI4MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlu
dHJvZHVjZXMgU3ltYm9sLnVuc2NvcGFibGVzIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIEluIEVT
Niwgc29tZSBnZW5lcmljIG5hbWVzIChsaWtlIGtleXMsIHZhbHVlcykgYXJlIGludHJvZHVjZWQK
KyAgICAgICAgYXMgQXJyYXkncyBtZXRob2QgbmFtZS4gQW5kIHRoaXMgYnJlYWtzIHRoZSB3ZWIg
c2luY2Ugc29tZSB3ZWIgc2l0ZXMKKyAgICAgICAgdXNlIGxpa2UgdGhlIGZvbGxvd2luZyBjb2Rl
LgorCisgICAgICAgIHZhciB2YWx1ZXMgPSAuLi47CisgICAgICAgIHdpdGggKGFycmF5KSB7Cisg
ICAgICAgICAgICB2YWx1ZXM7ICAvLyBUaGlzIHZhbHVlcyBpcyB0cmFwcGVkIGJ5IGFycmF5J3Mg
bWV0aG9kICJ2YWx1ZXMiLgorICAgICAgICB9CisKKyAgICAgICAgVG8gZml4IHRoaXMsIFN5bWJv
bC51bnNjb3BhYmxlcyBpbnRyb2R1Y2VzIGJsYWNrbGlzdAorICAgICAgICBmb3Igd2l0aCBzY29w
ZSdzIHRyYXBwaW5nLiBXaGVuIHJlc29sdmluZyBzY29wZSwKKyAgICAgICAgaWYgbmFtZSBpcyBm
b3VuZCBpbiB0aGUgdGFyZ2V0IHNjb3BlIGFuZCB0aGUgdGFyZ2V0IHNjb3BlIGlzIHdpdGggc2Nv
cGUsCisgICAgICAgIHdlIGNoZWNrIFN5bWJvbC51bnNjb3BhYmxlcyBvYmplY3QgdG8gZmlsdGVy
IGdlbmVyaWMgbmFtZXMuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG9ubHkgYWN0
aXZlIGZvciB3aXRoIHNjb3Blcy4KKyAgICAgICAgR2xvYmFsIHNjb3BlIGRvZXMgbm90IGhhdmUg
dW5zY29wYWJsZXMgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICBBbmQgc2luY2UKKyAgICAgICAg
MSkgb3BfcmVzb2x2ZV9zY29wZSBmb3Igd2l0aCBzY29wZSBhbHdheXMgcmV0dXJuIER5bmFtaWMg
cmVzb2x2ZSB0eXBlLAorICAgICAgICAyKSBpbiB0aGF0IGNhc2UsIEpTU2NvcGU6OnJlc29sdmUg
aXMgYWx3YXlzIHVzZWQgaW4gSklUIGFuZCBMTEludCwKKyAgICAgICAgMykgdGhlIGNvZGUgd2hp
Y2ggY29udGFpbnMgb3BfcmVzb2x2ZV9zY29wZSB0aGF0IHJldHVybnMgRHluYW1pYyBjYW5ub3Qg
YmUgY29tcGlsZWQgd2l0aCBERkcgYW5kIEZUTCwKKyAgICAgICAgdG8gaW1wbGVtZW50IHRoaXMg
ZnVuY3Rpb25hbGl0eSwgd2UganVzdCBjaGFuZ2UgSlNTY29wZTo6cmVzb2x2ZSBhbmQgbm8gbmVl
ZCB0byBjaGFuZ2UgSklUIGNvZGUuCisgICAgICAgIFNvIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24g
aXMgb25seSB2aXNpYmxlIGluIER5bmFtaWMgcmVzb2x2aW5nIGNhc2UsIGFuZCBpdCBpcyBhbHJl
YWR5IG11Y2ggc2xvdy4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpydW50aW1lRmxhZ3MpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgIChKU0M6OkpTU2NvcGU6OnJl
c29sdmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTY29wZS5oOgorICAgICAgICAoSlNDOjpTY29w
ZUNoYWluSXRlcmF0b3I6OnNjb3BlKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2xvYmFsLWVu
dmlyb25tZW50LWRvZXMtbm90LXRyYXAtdW5zY29wYWJsZXMuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Vuc2NvcGFibGVzLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAoLik6CisKKzIwMTUtMDMtMzEgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgQ2xlYW4gdXAgSWRlbnRpZmllciBm
YWN0b3JpZXMgdG8gY2xhcmlmeSB0aGUgbWVhbmluZyBvZiBTdHJpbmdJbXBsKgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTQ2CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCA4MTQ4
YTMxYWI3NmI4NDI3Zjg3OGUwZjc3YTVhZjJkZGY1NWM0MDZhLi5lNTJkZmYwZDQzZDNiZTUyZTdm
NGQyNzJhZDFkODgwODkwMmQyNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNT
dHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdKb2luZXIuaCIKICNpbmNsdWRlICJM
b29rdXAuaCIKKyNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9iamVj
dFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJTdHJpbmdS
ZWN1cnNpb25DaGVja2VyLmgiCkBAIC0xNDAsNiArMTQxLDIyIEBAIHZvaWQgQXJyYXlQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CiAgICAgdm0ucHJvdG90eXBlTWFwLmFkZFBy
b3RvdHlwZSh0aGlzKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMt
Pml0ZXJhdG9yU3ltYm9sLCBhcnJheVByb3RvRnVuY1ZhbHVlcywgRG9udEVudW0sIDApOworCisg
ICAgaWYgKGdsb2JhbE9iamVjdC0+cnVudGltZUZsYWdzKCkuaXNTeW1ib2xFbmFibGVkKCkpIHsK
KyAgICAgICAgSlNPYmplY3QqIHVuc2NvcGFibGVzID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVj
dFN0cnVjdHVyZSgpKTsKKyAgICAgICAgY29uc3QgY2hhciogdW5zY29wYWJsZU5hbWVzW10gPSB7
CisgICAgICAgICAgICAiY29weVdpdGhpbiIsCisgICAgICAgICAgICAiZW50cmllcyIsCisgICAg
ICAgICAgICAiZmlsbCIsCisgICAgICAgICAgICAiZmluZCIsCisgICAgICAgICAgICAiZmluZElu
ZGV4IiwKKyAgICAgICAgICAgICJrZXlzIiwKKyAgICAgICAgICAgICJ2YWx1ZXMiCisgICAgICAg
IH07CisgICAgICAgIGZvciAoY29uc3QgY2hhciogdW5zY29wYWJsZU5hbWUgOiB1bnNjb3BhYmxl
TmFtZXMpCisgICAgICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
KCZ2bSwgdW5zY29wYWJsZU5hbWUpLCBqc0Jvb2xlYW4odHJ1ZSkpOworICAgICAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dW5zY29wYWJsZXNTeW1i
b2wsIHVuc2NvcGFibGVzLCBEb250RW51bSB8IFJlYWRPbmx5KTsKKyAgICB9CiB9CiAKIGJvb2wg
QXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVy
cy5oCmluZGV4IDc5OTBiM2YxNGQyMTI5ODQ5MzA0MzE4ZTllYzU4NjNiODFkZjUyY2EuLjM5YmRl
NTU1ODk2NjgwODU5YTkxMTI5YzZmZThlOTJmNGVmODQ5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjMxLDcgKzIzMSw3
IEBACiAgICAgbWFjcm8oc3BsaXQpIFwKICAgICBtYWNybyh0b1ByaW1pdGl2ZSkgXAogICAgIG1h
Y3JvKHRvU3RyaW5nVGFnKSBcCi0gICAgbWFjcm8odW5zY29wYWJsZSkKKyAgICBtYWNybyh1bnNj
b3BhYmxlcykKIAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9Q
Uk9QRVJUWV9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oaXRlcmF0ZWRPYmplY3QpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDc0OTY2
YjdiZDA2YmFjZDg2NjFjOWJmNGFiZTQ1Y2ViM2I1MTE4YjQuLjNlNTc4Mzc4YWU5M2I1YjEzZDhl
ODFlMTZkYWU2MWZiODFhY2QxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMzA5LDYgKzMwOSw3IEBAIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogCiAgICAgYm9vbCBoYXNE
ZWJ1Z2dlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXI7IH0KICAgICBib29sIGhhc1Byb2Zp
bGVyKCkgY29uc3QgeyByZXR1cm4gZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c3VwcG9ydHNQ
cm9maWxpbmcodGhpcyk7IH0KKyAgICBjb25zdCBSdW50aW1lRmxhZ3MmIHJ1bnRpbWVGbGFncygp
IGNvbnN0IHsgcmV0dXJuIG1fcnVudGltZUZsYWdzOyB9CiAKIHByb3RlY3RlZDoKICAgICBKU19F
WFBPUlRfUFJJVkFURSBleHBsaWNpdCBKU0dsb2JhbE9iamVjdChWTSYsIFN0cnVjdHVyZSosIGNv
bnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Njb3BlLmNwcAppbmRleCBmM2Q0NjQ1ZThlNmVjZjViZTBkNmZiZDBjMTQzYjAy
OWY4ZDI3MTEzLi5jYWZlODEyNTIyNzZmM2UzNjg0MjRmYzM1ODc2OWVlYzNiMDU4ZDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcApAQCAtMTM4LDEzICsxMzgs
MjggQEAgSlNWYWx1ZSBKU1Njb3BlOjpyZXNvbHZlKEV4ZWNTdGF0ZSogZXhlYywgSlNTY29wZSog
c2NvcGUsIGNvbnN0IElkZW50aWZpZXImIGlkZW4KICAgICBTY29wZUNoYWluSXRlcmF0b3IgZW5k
ID0gc2NvcGUtPmVuZCgpOwogICAgIFNjb3BlQ2hhaW5JdGVyYXRvciBpdCA9IHNjb3BlLT5iZWdp
bigpOwogICAgIHdoaWxlICgxKSB7CisgICAgICAgIEpTU2NvcGUqIHNjb3BlID0gaXQuc2NvcGUo
KTsKICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGl0LmdldCgpOwogCiAgICAgICAgIGlmICgr
K2l0ID09IGVuZCkgLy8gR2xvYmFsIHNjb3BlLgogICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsK
IAotICAgICAgICBpZiAob2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCBpZGVudCkpCi0gICAgICAg
ICAgICByZXR1cm4gb2JqZWN0OworICAgICAgICBpZiAob2JqZWN0LT5oYXNQcm9wZXJ0eShleGVj
LCBpZGVudCkpIHsKKyAgICAgICAgICAgIGlmIChzY29wZS0+dHlwZSgpICE9IFdpdGhTY29wZVR5
cGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKworICAgICAgICAgICAgSlNWYWx1
ZSB1bnNjb3BhYmxlcyA9IG9iamVjdC0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS51
bnNjb3BhYmxlc1N5bWJvbCk7CisgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgICAgIGlmICghdW5zY29w
YWJsZXMuaXNPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OworICAgICAg
ICAgICAgSlNWYWx1ZSBibG9ja2VkID0ganNDYXN0PEpTT2JqZWN0Kj4odW5zY29wYWJsZXMpLT5n
ZXQoZXhlYywgaWRlbnQpOworICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAgICAgICBpZiAoIWJsb2NrZWQu
dG9Cb29sZWFuKGV4ZWMpKQorICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAg
ICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFleGVjLT5oYWRFeGNlcHRpb24oKSwgIkpTVmFsdWU6
OnRvQm9vbGVhbiBkb2VzIG5vdCByYWlzZSBhbnkgZXJyb3JzLiIpOworICAgICAgICB9CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3Bl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmgKaW5kZXggMjBlNDRi
Y2JkNmZkYTE0OTkyZTNiYTE2NTBmYzg1OTViOTAyNzA5OS4uYWE4YmRlYjk0YjVlODllY2Y1MzU1
YjBjNzgwZmM4NTRlNzJlNjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTY29wZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2Nv
cGUuaApAQCAtMTkxLDYgKzE5MSw3IEBAIGNsYXNzIFNjb3BlQ2hhaW5JdGVyYXRvciB7CiAKICAg
ICBKU09iamVjdCogZ2V0KCkgY29uc3QgeyByZXR1cm4gSlNTY29wZTo6b2JqZWN0QXRTY29wZSht
X25vZGUpOyB9CiAgICAgSlNPYmplY3QqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBKU1Nj
b3BlOjpvYmplY3RBdFNjb3BlKG1fbm9kZSk7IH0KKyAgICBKU1Njb3BlKiBzY29wZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbm9kZTsgfQogCiAgICAgU2NvcGVDaGFpbkl0ZXJhdG9yJiBvcGVyYXRvcisr
KCkgeyBtX25vZGUgPSBtX25vZGUtPm5leHQoKTsgcmV0dXJuICp0aGlzOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2xvYmFsLWVudmlyb25tZW50
LWRvZXMtbm90LXRyYXAtdW5zY29wYWJsZXMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2dsb2JhbC1lbnZpcm9ubWVudC1kb2VzLW5vdC10cmFwLXVuc2NvcGFibGVzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRlOTY2MDg5NGFiNThiNzZjNmUxOWNjZjdkYjAyNjI0MGM5ZDIxZDkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dsb2Jh
bC1lbnZpcm9ubWVudC1kb2VzLW5vdC10cmFwLXVuc2NvcGFibGVzLmpzCkBAIC0wLDAgKzEsMTkg
QEAKK2Z1bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK3ZhciBnbG9iYWwgPSBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTsKK3Zh
ciBDb2NvYSA9ICdDb2NvYSc7CisKK2dsb2JhbFtTeW1ib2wudW5zY29wYWJsZXNdID0geworICAg
IENvY29hOiB0cnVlCit9OworCit0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyhmdW5jdGlvbiAoKSB7
CisgICAgdmFyIENvY29hID0gJ2xvY2FsJworICAgIHdpdGggKGdsb2JhbCkgeworICAgICAgICB0
ZXN0KENvY29hLCAibG9jYWwiKTsKKyAgICB9Cit9KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy91bnNjb3BhYmxlcy5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdW5zY29wYWJsZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjNiZjhiZTk3
NmQyMzcwZGIyZWJhZTYxZDkyNjI4M2VhNWU0NWE3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdW5zY29wYWJsZXMuanMKQEAgLTAsMCArMSwy
MzkgQEAKK2Z1bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFj
dHVhbCk7Cit9CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgdmFy
IHVuc2NvcGFibGVzID0gYXJyYXlbU3ltYm9sLnVuc2NvcGFibGVzXTsKKworICAgIHRlc3QodHlw
ZW9mIHVuc2NvcGFibGVzLCAib2JqZWN0Iik7CisgICAgdGVzdCh1bnNjb3BhYmxlcy5fX3Byb3Rv
X18sIHVuZGVmaW5lZCk7CisgICAgdGVzdChTdHJpbmcoT2JqZWN0LmtleXModW5zY29wYWJsZXMp
LnNvcnQoKSksICJjb3B5V2l0aGluLGVudHJpZXMsZmlsbCxmaW5kLGZpbmRJbmRleCxrZXlzLHZh
bHVlcyIpOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZmluZCA9ICJDb2NvYSI7
CisgICAgdmFyIGZvckVhY2ggPSAiSGlkZGVuIjsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICB0
ZXN0KHR5cGVvZiBhcnJheS5maW5kLCAiZnVuY3Rpb24iKTsKKworICAgIHdpdGggKGFycmF5KSB7
CisgICAgICAgIHRlc3QodHlwZW9mIGZpbmQsICJzdHJpbmciKTsKKyAgICAgICAgdGVzdChmaW5k
LCAiQ29jb2EiKTsKKyAgICAgICAgdGVzdCh0eXBlb2YgZm9yRWFjaCwgImZ1bmN0aW9uIik7Cisg
ICAgICAgIHRlc3QoX19wcm90b19fLCBBcnJheS5wcm90b3R5cGUpOyAgLy8gYXJyYXkncyB1bnNj
b3BhYmxlcy5fX3Byb3RvX18gaXMgdW5kZWZpbmVkID0+IGZhbHNlLgorICAgIH0KK30oKSk7CisK
KyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgW1N5bWJvbC51bnNj
b3BhYmxlc106IHsKKyAgICAgICAgICAgIENvY29hOiBmYWxzZSwKKyAgICAgICAgICAgIENhcHB1
Y2Npbm86IHRydWUKKyAgICAgICAgfSwKKworICAgICAgICBDb2NvYTogbnVsbCwKKyAgICAgICAg
Q2FwcHVjY2lubzogbnVsbAorICAgIH07CisKKyAgICB2YXIgQ29jb2EgPSAiQ29jb2EiOworICAg
IHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworICAgIHZhciB0b1N0cmluZyA9ICJ0b1N0
cmluZyI7CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChDb2NvYSwgbnVsbCk7
CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywgIkNhcHB1Y2Npbm8iKTsKKyAgICAgICAgdGVzdCh0
b1N0cmluZywgInRvU3RyaW5nIik7ICAvLyBvYmplY3QudG9TdHJpbmcgaXMgaGlkZGVuIGJ5IHVu
c2NvcGFibGVzLnRvU3RyaW5nLgorICAgIH0KKworICAgIG9iamVjdFtTeW1ib2wudW5zY29wYWJs
ZXNdLkNvY29hID0gdHJ1ZTsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENv
Y29hLCAiQ29jb2EiKTsKKyAgICAgICAgdGVzdChDYXBwdWNjaW5vLCAiQ2FwcHVjY2lubyIpOwor
ICAgIH0KK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHVuc2NvcGFibGVzID0gT2Jq
ZWN0LmNyZWF0ZShudWxsKTsKKyAgICB1bnNjb3BhYmxlcy5Db2NvYSA9IGZhbHNlOworICAgIHVu
c2NvcGFibGVzLkNhcHB1Y2Npbm8gPSB0cnVlOworCisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAg
ICAgW1N5bWJvbC51bnNjb3BhYmxlc106IHVuc2NvcGFibGVzLAorICAgICAgICBDb2NvYTogbnVs
bCwKKyAgICAgICAgQ2FwcHVjY2lubzogbnVsbCwKKyAgICAgICAgTWF0Y2hhOiBudWxsCisgICAg
fTsKKworICAgIHZhciBDb2NvYSA9ICJDb2NvYSI7CisgICAgdmFyIENhcHB1Y2Npbm8gPSAiQ2Fw
cHVjY2lubyI7CisgICAgdmFyIE1hdGNoYSA9ICJNYXRjaGEiOworICAgIHZhciB0b1N0cmluZyA9
ICJ0b1N0cmluZyI7CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChDb2NvYSwg
bnVsbCk7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywgIkNhcHB1Y2Npbm8iKTsKKyAgICAgICAg
dGVzdChNYXRjaGEsIG51bGwpOworICAgICAgICB0ZXN0KHRvU3RyaW5nLCBPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nKTsKKyAgICB9CisKKyAgICBvYmplY3RbU3ltYm9sLnVuc2NvcGFibGVzXS5D
b2NvYSA9IHRydWU7CisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10uQ2FwcHVjY2lubyA9
IGZhbHNlOworICAgIG9iamVjdFtTeW1ib2wudW5zY29wYWJsZXNdLnRvU3RyaW5nID0gdHJ1ZTsK
KworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyAg
ICAgICAgdGVzdChDYXBwdWNjaW5vLCBudWxsKTsKKyAgICAgICAgdGVzdCh0b1N0cmluZywgInRv
U3RyaW5nIik7CisgICAgICAgIHRlc3QoTWF0Y2hhLCBudWxsKTsKKyAgICB9Cit9KCkpOworCiso
ZnVuY3Rpb24gKCkgeworICAgIHZhciBwcm90byA9IE9iamVjdC5jcmVhdGUobnVsbCk7CisgICAg
dmFyIHVuc2NvcGFibGVzID0gT2JqZWN0LmNyZWF0ZShwcm90byk7CisgICAgdW5zY29wYWJsZXMu
Q29jb2EgPSBmYWxzZTsKKyAgICB1bnNjb3BhYmxlcy5DYXBwdWNjaW5vID0gdHJ1ZTsKKworICAg
IHZhciBvYmplY3QgPSB7CisgICAgICAgIFtTeW1ib2wudW5zY29wYWJsZXNdOiB1bnNjb3BhYmxl
cywKKyAgICAgICAgQ29jb2E6IG51bGwsCisgICAgICAgIENhcHB1Y2Npbm86IG51bGwsCisgICAg
ICAgIE1hdGNoYTogbnVsbAorICAgIH07CisKKyAgICB2YXIgQ29jb2EgPSAiQ29jb2EiOworICAg
IHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworICAgIHZhciBNYXRjaGEgPSAiTWF0Y2hh
IjsKKyAgICB2YXIgdG9TdHJpbmcgPSAidG9TdHJpbmciOworCisgICAgd2l0aCAob2JqZWN0KSB7
CisgICAgICAgIHRlc3QoQ29jb2EsIG51bGwpOworICAgICAgICB0ZXN0KENhcHB1Y2Npbm8sICJD
YXBwdWNjaW5vIik7CisgICAgICAgIHRlc3QoTWF0Y2hhLCBudWxsKTsKKyAgICAgICAgdGVzdCh0
b1N0cmluZywgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyk7CisgICAgfQorCisgICAgb2JqZWN0
W1N5bWJvbC51bnNjb3BhYmxlc10uQ29jb2EgPSB0cnVlOworICAgIG9iamVjdFtTeW1ib2wudW5z
Y29wYWJsZXNdLkNhcHB1Y2Npbm8gPSBmYWxzZTsKKyAgICBvYmplY3RbU3ltYm9sLnVuc2NvcGFi
bGVzXS50b1N0cmluZyA9IHRydWU7CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVz
dChDb2NvYSwgIkNvY29hIik7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywgbnVsbCk7CisgICAg
ICAgIHRlc3QodG9TdHJpbmcsICJ0b1N0cmluZyIpOworICAgICAgICB0ZXN0KE1hdGNoYSwgbnVs
bCk7CisgICAgfQorCisgICAgcHJvdG8uTWF0Y2hhID0gdHJ1ZTsKKworICAgIHdpdGggKG9iamVj
dCkgeworICAgICAgICB0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyAgICAgICAgdGVzdChDYXBwdWNj
aW5vLCBudWxsKTsKKyAgICAgICAgdGVzdCh0b1N0cmluZywgInRvU3RyaW5nIik7CisgICAgICAg
IHRlc3QoTWF0Y2hhLCAiTWF0Y2hhIik7CisgICAgfQorfSgpKTsKKworKGZ1bmN0aW9uICgpIHsK
KyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBnZXQgQ29jb2EoKSB7CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoImJhZCB0cmFwIik7CisgICAgICAgIH0sCisgICAgICAgIENhcHB1Y2Np
bm86IG51bGwKKyAgICB9OworCisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10gPSB7Cisg
ICAgICAgIENvY29hOiB0cnVlLAorICAgICAgICBDYXBwdWNjaW5vOiB0cnVlCisgICAgfTsKKwor
ICAgIHZhciBDb2NvYSA9ICJDb2NvYSI7CisgICAgdmFyIENhcHB1Y2Npbm8gPSAiQ2FwcHVjY2lu
byI7CisgICAgdmFyIHRvU3RyaW5nID0gInRvU3RyaW5nIjsKKworICAgIHdpdGggKG9iamVjdCkg
eworICAgICAgICB0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyAgICB9CisKKyAgICBvYmplY3RbU3lt
Ym9sLnVuc2NvcGFibGVzXS5Db2NvYSA9IGZhbHNlOworCisgICAgdmFyIGVycm9yID0gbnVsbDsK
KyAgICB0cnkgeworICAgICAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgICAgIENvY29hOwor
ICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQor
ICAgIHRlc3QoU3RyaW5nKGVycm9yKSwgIkVycm9yOiBiYWQgdHJhcCIpOworfSgpKTsKKworKGZ1
bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBDb2NvYTogbnVsbCwKKyAg
ICB9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIFN5bWJvbC51bnNjb3BhYmxl
cywgeworICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigidW5zY29wYWJsZXMgdHJhcCIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICB2YXIg
Q29jb2EgPSAiQ29jb2EiOworICAgIHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworCisg
ICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRoIChvYmplY3QpIHsK
KyAgICAgICAgICAgIENvY29hCisgICAgICAgIH0KKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
IGVycm9yID0gZTsKKyAgICB9CisgICAgdGVzdChTdHJpbmcoZXJyb3IpLCAiRXJyb3I6IHVuc2Nv
cGFibGVzIHRyYXAiKTsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENhcHB1
Y2Npbm8sICJDYXBwdWNjaW5vIik7CisgICAgfQorfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAg
ICB2YXIgb2JqZWN0ID0geworICAgICAgICBbU3ltYm9sLnVuc2NvcGFibGVzXTogeworICAgICAg
ICAgICAgZ2V0IENvY29hKCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidW5z
Y29wYWJsZXMgdHJhcCIpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICBDb2Nv
YTogbnVsbCwKKyAgICB9OworICAgIHZhciBDb2NvYSA9ICJDb2NvYSI7CisgICAgdmFyIENhcHB1
Y2Npbm8gPSAiQ2FwcHVjY2lubyI7CisKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7
CisgICAgICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICAgICAgQ29jb2EKKyAgICAgICAgfQor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICB0ZXN0KFN0
cmluZyhlcnJvciksICJFcnJvcjogdW5zY29wYWJsZXMgdHJhcCIpOworCisgICAgd2l0aCAob2Jq
ZWN0KSB7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywgIkNhcHB1Y2Npbm8iKTsKKyAgICB9Cit9
KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIFtTeW1i
b2wudW5zY29wYWJsZXNdOiA0MiwKKyAgICAgICAgQ29jb2E6ICJPSyIsCisgICAgfTsKKyAgICB2
YXIgQ29jb2EgPSAiQ29jb2EiOworCisgICAgd2l0aCAob2JqZWN0KSB7CisgICAgICAgIHRlc3Qo
Q29jb2EsICJPSyIpOworICAgIH0KK30oKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249853</attachid>
            <date>2015-03-31 14:34:21 -0700</date>
            <delta_ts>2015-03-31 16:27:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142829-20150401063337.patch</filename>
            <type>text/plain</type>
            <size>13948</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZmNjM2QxNTdiYmMyNzhhZGUyOTEyOTc3ZWI5MzAxYTA5YTJjYjA4Li44MjI2N2YxZTk0ZDA0ZDkw
YTc0N2NkNmVhYjQ1OTQ4ODM3MzI5MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1MiBAQAogMjAxNS0wMy0zMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3ltYm9sLnVuc2NvcGFibGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI4MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlu
dHJvZHVjZXMgU3ltYm9sLnVuc2NvcGFibGVzIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIEluIEVT
Niwgc29tZSBnZW5lcmljIG5hbWVzIChsaWtlIGtleXMsIHZhbHVlcykgYXJlIGludHJvZHVjZWQK
KyAgICAgICAgYXMgQXJyYXkncyBtZXRob2QgbmFtZS4gQW5kIHRoaXMgYnJlYWtzIHRoZSB3ZWIg
c2luY2Ugc29tZSB3ZWIgc2l0ZXMKKyAgICAgICAgdXNlIGxpa2UgdGhlIGZvbGxvd2luZyBjb2Rl
LgorCisgICAgICAgIHZhciB2YWx1ZXMgPSAuLi47CisgICAgICAgIHdpdGggKGFycmF5KSB7Cisg
ICAgICAgICAgICB2YWx1ZXM7ICAvLyBUaGlzIHZhbHVlcyBpcyB0cmFwcGVkIGJ5IGFycmF5J3Mg
bWV0aG9kICJ2YWx1ZXMiLgorICAgICAgICB9CisKKyAgICAgICAgVG8gZml4IHRoaXMsIFN5bWJv
bC51bnNjb3BhYmxlcyBpbnRyb2R1Y2VzIGJsYWNrbGlzdAorICAgICAgICBmb3Igd2l0aCBzY29w
ZSdzIHRyYXBwaW5nLiBXaGVuIHJlc29sdmluZyBzY29wZSwKKyAgICAgICAgaWYgbmFtZSBpcyBm
b3VuZCBpbiB0aGUgdGFyZ2V0IHNjb3BlIGFuZCB0aGUgdGFyZ2V0IHNjb3BlIGlzIHdpdGggc2Nv
cGUsCisgICAgICAgIHdlIGNoZWNrIFN5bWJvbC51bnNjb3BhYmxlcyBvYmplY3QgdG8gZmlsdGVy
IGdlbmVyaWMgbmFtZXMuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG9ubHkgYWN0
aXZlIGZvciB3aXRoIHNjb3Blcy4KKyAgICAgICAgR2xvYmFsIHNjb3BlIGRvZXMgbm90IGhhdmUg
dW5zY29wYWJsZXMgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICBBbmQgc2luY2UKKyAgICAgICAg
MSkgb3BfcmVzb2x2ZV9zY29wZSBmb3Igd2l0aCBzY29wZSBhbHdheXMgcmV0dXJuIER5bmFtaWMg
cmVzb2x2ZSB0eXBlLAorICAgICAgICAyKSBpbiB0aGF0IGNhc2UsIEpTU2NvcGU6OnJlc29sdmUg
aXMgYWx3YXlzIHVzZWQgaW4gSklUIGFuZCBMTEludCwKKyAgICAgICAgMykgdGhlIGNvZGUgd2hp
Y2ggY29udGFpbnMgb3BfcmVzb2x2ZV9zY29wZSB0aGF0IHJldHVybnMgRHluYW1pYyBjYW5ub3Qg
YmUgY29tcGlsZWQgd2l0aCBERkcgYW5kIEZUTCwKKyAgICAgICAgdG8gaW1wbGVtZW50IHRoaXMg
ZnVuY3Rpb25hbGl0eSwgd2UganVzdCBjaGFuZ2UgSlNTY29wZTo6cmVzb2x2ZSBhbmQgbm8gbmVl
ZCB0byBjaGFuZ2UgSklUIGNvZGUuCisgICAgICAgIFNvIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24g
aXMgb25seSB2aXNpYmxlIGluIER5bmFtaWMgcmVzb2x2aW5nIGNhc2UsIGFuZCBpdCBpcyBhbHJl
YWR5IG11Y2ggc2xvdy4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpydW50aW1lRmxhZ3MpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgIChKU0M6OkpTU2NvcGU6OnJl
c29sdmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTY29wZS5oOgorICAgICAgICAoSlNDOjpTY29w
ZUNoYWluSXRlcmF0b3I6OnNjb3BlKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2xvYmFsLWVu
dmlyb25tZW50LWRvZXMtbm90LXRyYXAtdW5zY29wYWJsZXMuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Vuc2NvcGFibGVzLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAoLik6CisKKzIwMTUtMDMtMzEgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgQ2xlYW4gdXAgSWRlbnRpZmllciBm
YWN0b3JpZXMgdG8gY2xhcmlmeSB0aGUgbWVhbmluZyBvZiBTdHJpbmdJbXBsKgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTQ2CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCA4MTQ4
YTMxYWI3NmI4NDI3Zjg3OGUwZjc3YTVhZjJkZGY1NWM0MDZhLi44OTk3NjQyMjg4MTliY2M1ZjRk
MjE0MDllYjkzMTU5MzEwZjk5Yjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNT
dHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdKb2luZXIuaCIKICNpbmNsdWRlICJM
b29rdXAuaCIKKyNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9iamVj
dFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJTdHJpbmdS
ZWN1cnNpb25DaGVja2VyLmgiCkBAIC0xNDAsNiArMTQxLDIyIEBAIHZvaWQgQXJyYXlQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CiAgICAgdm0ucHJvdG90eXBlTWFwLmFkZFBy
b3RvdHlwZSh0aGlzKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMt
Pml0ZXJhdG9yU3ltYm9sLCBhcnJheVByb3RvRnVuY1ZhbHVlcywgRG9udEVudW0sIDApOworCisg
ICAgaWYgKGdsb2JhbE9iamVjdC0+cnVudGltZUZsYWdzKCkuaXNTeW1ib2xFbmFibGVkKCkpIHsK
KyAgICAgICAgSlNPYmplY3QqIHVuc2NvcGFibGVzID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVj
dFN0cnVjdHVyZSgpKTsKKyAgICAgICAgY29uc3QgY2hhciogdW5zY29wYWJsZU5hbWVzW10gPSB7
CisgICAgICAgICAgICAiY29weVdpdGhpbiIsCisgICAgICAgICAgICAiZW50cmllcyIsCisgICAg
ICAgICAgICAiZmlsbCIsCisgICAgICAgICAgICAiZmluZCIsCisgICAgICAgICAgICAiZmluZElu
ZGV4IiwKKyAgICAgICAgICAgICJrZXlzIiwKKyAgICAgICAgICAgICJ2YWx1ZXMiCisgICAgICAg
IH07CisgICAgICAgIGZvciAoY29uc3QgY2hhciogdW5zY29wYWJsZU5hbWUgOiB1bnNjb3BhYmxl
TmFtZXMpCisgICAgICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgdW5zY29wYWJsZU5hbWUpLCBqc0Jvb2xlYW4odHJ1ZSkpOworICAg
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dW5z
Y29wYWJsZXNTeW1ib2wsIHVuc2NvcGFibGVzLCBEb250RW51bSB8IFJlYWRPbmx5KTsKKyAgICB9
CiB9CiAKIGJvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCmluZGV4IDc5OTBiM2YxNGQyMTI5ODQ5MzA0MzE4ZTllYzU4NjNiODFk
ZjUyY2EuLjM5YmRlNTU1ODk2NjgwODU5YTkxMTI5YzZmZThlOTJmNGVmODQ5MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAt
MjMxLDcgKzIzMSw3IEBACiAgICAgbWFjcm8oc3BsaXQpIFwKICAgICBtYWNybyh0b1ByaW1pdGl2
ZSkgXAogICAgIG1hY3JvKHRvU3RyaW5nVGFnKSBcCi0gICAgbWFjcm8odW5zY29wYWJsZSkKKyAg
ICBtYWNybyh1bnNjb3BhYmxlcykKIAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJ
RklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oaXRlcmF0ZWRPYmpl
Y3QpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
CmluZGV4IDc0OTY2YjdiZDA2YmFjZDg2NjFjOWJmNGFiZTQ1Y2ViM2I1MTE4YjQuLjNlNTc4Mzc4
YWU5M2I1YjEzZDhlODFlMTZkYWU2MWZiODFhY2QxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMzA5LDYgKzMwOSw3IEBAIGNsYXNz
IEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogCiAg
ICAgYm9vbCBoYXNEZWJ1Z2dlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXI7IH0KICAgICBi
b29sIGhhc1Byb2ZpbGVyKCkgY29uc3QgeyByZXR1cm4gZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUo
KS0+c3VwcG9ydHNQcm9maWxpbmcodGhpcyk7IH0KKyAgICBjb25zdCBSdW50aW1lRmxhZ3MmIHJ1
bnRpbWVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fcnVudGltZUZsYWdzOyB9CiAKIHByb3RlY3Rl
ZDoKICAgICBKU19FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBKU0dsb2JhbE9iamVjdChWTSYsIFN0
cnVjdHVyZSosIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiA9IDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAppbmRleCBmM2Q0NjQ1ZThlNmVjZjViZTBk
NmZiZDBjMTQzYjAyOWY4ZDI3MTEzLi5jYWZlODEyNTIyNzZmM2UzNjg0MjRmYzM1ODc2OWVlYzNi
MDU4ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3Bl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcApAQCAt
MTM4LDEzICsxMzgsMjggQEAgSlNWYWx1ZSBKU1Njb3BlOjpyZXNvbHZlKEV4ZWNTdGF0ZSogZXhl
YywgSlNTY29wZSogc2NvcGUsIGNvbnN0IElkZW50aWZpZXImIGlkZW4KICAgICBTY29wZUNoYWlu
SXRlcmF0b3IgZW5kID0gc2NvcGUtPmVuZCgpOwogICAgIFNjb3BlQ2hhaW5JdGVyYXRvciBpdCA9
IHNjb3BlLT5iZWdpbigpOwogICAgIHdoaWxlICgxKSB7CisgICAgICAgIEpTU2NvcGUqIHNjb3Bl
ID0gaXQuc2NvcGUoKTsKICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGl0LmdldCgpOwogCiAg
ICAgICAgIGlmICgrK2l0ID09IGVuZCkgLy8gR2xvYmFsIHNjb3BlLgogICAgICAgICAgICAgcmV0
dXJuIG9iamVjdDsKIAotICAgICAgICBpZiAob2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCBpZGVu
dCkpCi0gICAgICAgICAgICByZXR1cm4gb2JqZWN0OworICAgICAgICBpZiAob2JqZWN0LT5oYXNQ
cm9wZXJ0eShleGVjLCBpZGVudCkpIHsKKyAgICAgICAgICAgIGlmIChzY29wZS0+dHlwZSgpICE9
IFdpdGhTY29wZVR5cGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKworICAgICAg
ICAgICAgSlNWYWx1ZSB1bnNjb3BhYmxlcyA9IG9iamVjdC0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS51bnNjb3BhYmxlc1N5bWJvbCk7CisgICAgICAgICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgICAg
IGlmICghdW5zY29wYWJsZXMuaXNPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gb2Jq
ZWN0OworICAgICAgICAgICAgSlNWYWx1ZSBibG9ja2VkID0ganNDYXN0PEpTT2JqZWN0Kj4odW5z
Y29wYWJsZXMpLT5nZXQoZXhlYywgaWRlbnQpOworICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAgICAgICBp
ZiAoIWJsb2NrZWQudG9Cb29sZWFuKGV4ZWMpKQorICAgICAgICAgICAgICAgIHJldHVybiBvYmpl
Y3Q7CisgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFleGVjLT5oYWRFeGNlcHRpb24o
KSwgIkpTVmFsdWU6OnRvQm9vbGVhbiBkb2VzIG5vdCByYWlzZSBhbnkgZXJyb3JzLiIpOworICAg
ICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Njb3BlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmgK
aW5kZXggMjBlNDRiY2JkNmZkYTE0OTkyZTNiYTE2NTBmYzg1OTViOTAyNzA5OS4uYWE4YmRlYjk0
YjVlODllY2Y1MzU1YjBjNzgwZmM4NTRlNzJlNjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU2NvcGUuaApAQCAtMTkxLDYgKzE5MSw3IEBAIGNsYXNzIFNjb3BlQ2hhaW5JdGVy
YXRvciB7CiAKICAgICBKU09iamVjdCogZ2V0KCkgY29uc3QgeyByZXR1cm4gSlNTY29wZTo6b2Jq
ZWN0QXRTY29wZShtX25vZGUpOyB9CiAgICAgSlNPYmplY3QqIG9wZXJhdG9yLT4oKSBjb25zdCB7
IHJldHVybiBKU1Njb3BlOjpvYmplY3RBdFNjb3BlKG1fbm9kZSk7IH0KKyAgICBKU1Njb3BlKiBz
Y29wZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZTsgfQogCiAgICAgU2NvcGVDaGFpbkl0ZXJhdG9y
JiBvcGVyYXRvcisrKCkgeyBtX25vZGUgPSBtX25vZGUtPm5leHQoKTsgcmV0dXJuICp0aGlzOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2xvYmFs
LWVudmlyb25tZW50LWRvZXMtbm90LXRyYXAtdW5zY29wYWJsZXMuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2dsb2JhbC1lbnZpcm9ubWVudC1kb2VzLW5vdC10cmFwLXVu
c2NvcGFibGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOTY2MDg5NGFiNThiNzZjNmUxOWNjZjdkYjAyNjI0
MGM5ZDIxZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2dsb2JhbC1lbnZpcm9ubWVudC1kb2VzLW5vdC10cmFwLXVuc2NvcGFibGVzLmpzCkBA
IC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlm
IChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1
ZTogJyArIGFjdHVhbCk7Cit9CisKK3ZhciBnbG9iYWwgPSBuZXcgRnVuY3Rpb24oJ3JldHVybiB0
aGlzJykoKTsKK3ZhciBDb2NvYSA9ICdDb2NvYSc7CisKK2dsb2JhbFtTeW1ib2wudW5zY29wYWJs
ZXNdID0geworICAgIENvY29hOiB0cnVlCit9OworCit0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyhm
dW5jdGlvbiAoKSB7CisgICAgdmFyIENvY29hID0gJ2xvY2FsJworICAgIHdpdGggKGdsb2JhbCkg
eworICAgICAgICB0ZXN0KENvY29hLCAibG9jYWwiKTsKKyAgICB9Cit9KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy91bnNjb3BhYmxlcy5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdW5zY29wYWJsZXMuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjNiZjhiZTk3NmQyMzcwZGIyZWJhZTYxZDkyNjI4M2VhNWU0NWE3YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdW5zY29wYWJsZXMuanMK
QEAgLTAsMCArMSwyMzkgQEAKK2Z1bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGFycmF5ID0g
W107CisgICAgdmFyIHVuc2NvcGFibGVzID0gYXJyYXlbU3ltYm9sLnVuc2NvcGFibGVzXTsKKwor
ICAgIHRlc3QodHlwZW9mIHVuc2NvcGFibGVzLCAib2JqZWN0Iik7CisgICAgdGVzdCh1bnNjb3Bh
Ymxlcy5fX3Byb3RvX18sIHVuZGVmaW5lZCk7CisgICAgdGVzdChTdHJpbmcoT2JqZWN0LmtleXMo
dW5zY29wYWJsZXMpLnNvcnQoKSksICJjb3B5V2l0aGluLGVudHJpZXMsZmlsbCxmaW5kLGZpbmRJ
bmRleCxrZXlzLHZhbHVlcyIpOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZmlu
ZCA9ICJDb2NvYSI7CisgICAgdmFyIGZvckVhY2ggPSAiSGlkZGVuIjsKKyAgICB2YXIgYXJyYXkg
PSBbXTsKKyAgICB0ZXN0KHR5cGVvZiBhcnJheS5maW5kLCAiZnVuY3Rpb24iKTsKKworICAgIHdp
dGggKGFycmF5KSB7CisgICAgICAgIHRlc3QodHlwZW9mIGZpbmQsICJzdHJpbmciKTsKKyAgICAg
ICAgdGVzdChmaW5kLCAiQ29jb2EiKTsKKyAgICAgICAgdGVzdCh0eXBlb2YgZm9yRWFjaCwgImZ1
bmN0aW9uIik7CisgICAgICAgIHRlc3QoX19wcm90b19fLCBBcnJheS5wcm90b3R5cGUpOyAgLy8g
YXJyYXkncyB1bnNjb3BhYmxlcy5fX3Byb3RvX18gaXMgdW5kZWZpbmVkID0+IGZhbHNlLgorICAg
IH0KK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAg
W1N5bWJvbC51bnNjb3BhYmxlc106IHsKKyAgICAgICAgICAgIENvY29hOiBmYWxzZSwKKyAgICAg
ICAgICAgIENhcHB1Y2Npbm86IHRydWUKKyAgICAgICAgfSwKKworICAgICAgICBDb2NvYTogbnVs
bCwKKyAgICAgICAgQ2FwcHVjY2lubzogbnVsbAorICAgIH07CisKKyAgICB2YXIgQ29jb2EgPSAi
Q29jb2EiOworICAgIHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworICAgIHZhciB0b1N0
cmluZyA9ICJ0b1N0cmluZyI7CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAgdGVzdChD
b2NvYSwgbnVsbCk7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywgIkNhcHB1Y2Npbm8iKTsKKyAg
ICAgICAgdGVzdCh0b1N0cmluZywgInRvU3RyaW5nIik7ICAvLyBvYmplY3QudG9TdHJpbmcgaXMg
aGlkZGVuIGJ5IHVuc2NvcGFibGVzLnRvU3RyaW5nLgorICAgIH0KKworICAgIG9iamVjdFtTeW1i
b2wudW5zY29wYWJsZXNdLkNvY29hID0gdHJ1ZTsKKworICAgIHdpdGggKG9iamVjdCkgeworICAg
ICAgICB0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyAgICAgICAgdGVzdChDYXBwdWNjaW5vLCAiQ2Fw
cHVjY2lubyIpOworICAgIH0KK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHVuc2Nv
cGFibGVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTsKKyAgICB1bnNjb3BhYmxlcy5Db2NvYSA9IGZh
bHNlOworICAgIHVuc2NvcGFibGVzLkNhcHB1Y2Npbm8gPSB0cnVlOworCisgICAgdmFyIG9iamVj
dCA9IHsKKyAgICAgICAgW1N5bWJvbC51bnNjb3BhYmxlc106IHVuc2NvcGFibGVzLAorICAgICAg
ICBDb2NvYTogbnVsbCwKKyAgICAgICAgQ2FwcHVjY2lubzogbnVsbCwKKyAgICAgICAgTWF0Y2hh
OiBudWxsCisgICAgfTsKKworICAgIHZhciBDb2NvYSA9ICJDb2NvYSI7CisgICAgdmFyIENhcHB1
Y2Npbm8gPSAiQ2FwcHVjY2lubyI7CisgICAgdmFyIE1hdGNoYSA9ICJNYXRjaGEiOworICAgIHZh
ciB0b1N0cmluZyA9ICJ0b1N0cmluZyI7CisKKyAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAg
dGVzdChDb2NvYSwgbnVsbCk7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywgIkNhcHB1Y2Npbm8i
KTsKKyAgICAgICAgdGVzdChNYXRjaGEsIG51bGwpOworICAgICAgICB0ZXN0KHRvU3RyaW5nLCBP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nKTsKKyAgICB9CisKKyAgICBvYmplY3RbU3ltYm9sLnVu
c2NvcGFibGVzXS5Db2NvYSA9IHRydWU7CisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10u
Q2FwcHVjY2lubyA9IGZhbHNlOworICAgIG9iamVjdFtTeW1ib2wudW5zY29wYWJsZXNdLnRvU3Ry
aW5nID0gdHJ1ZTsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCAi
Q29jb2EiKTsKKyAgICAgICAgdGVzdChDYXBwdWNjaW5vLCBudWxsKTsKKyAgICAgICAgdGVzdCh0
b1N0cmluZywgInRvU3RyaW5nIik7CisgICAgICAgIHRlc3QoTWF0Y2hhLCBudWxsKTsKKyAgICB9
Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBwcm90byA9IE9iamVjdC5jcmVhdGUo
bnVsbCk7CisgICAgdmFyIHVuc2NvcGFibGVzID0gT2JqZWN0LmNyZWF0ZShwcm90byk7CisgICAg
dW5zY29wYWJsZXMuQ29jb2EgPSBmYWxzZTsKKyAgICB1bnNjb3BhYmxlcy5DYXBwdWNjaW5vID0g
dHJ1ZTsKKworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIFtTeW1ib2wudW5zY29wYWJsZXNd
OiB1bnNjb3BhYmxlcywKKyAgICAgICAgQ29jb2E6IG51bGwsCisgICAgICAgIENhcHB1Y2Npbm86
IG51bGwsCisgICAgICAgIE1hdGNoYTogbnVsbAorICAgIH07CisKKyAgICB2YXIgQ29jb2EgPSAi
Q29jb2EiOworICAgIHZhciBDYXBwdWNjaW5vID0gIkNhcHB1Y2Npbm8iOworICAgIHZhciBNYXRj
aGEgPSAiTWF0Y2hhIjsKKyAgICB2YXIgdG9TdHJpbmcgPSAidG9TdHJpbmciOworCisgICAgd2l0
aCAob2JqZWN0KSB7CisgICAgICAgIHRlc3QoQ29jb2EsIG51bGwpOworICAgICAgICB0ZXN0KENh
cHB1Y2Npbm8sICJDYXBwdWNjaW5vIik7CisgICAgICAgIHRlc3QoTWF0Y2hhLCBudWxsKTsKKyAg
ICAgICAgdGVzdCh0b1N0cmluZywgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyk7CisgICAgfQor
CisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3BhYmxlc10uQ29jb2EgPSB0cnVlOworICAgIG9iamVj
dFtTeW1ib2wudW5zY29wYWJsZXNdLkNhcHB1Y2Npbm8gPSBmYWxzZTsKKyAgICBvYmplY3RbU3lt
Ym9sLnVuc2NvcGFibGVzXS50b1N0cmluZyA9IHRydWU7CisKKyAgICB3aXRoIChvYmplY3QpIHsK
KyAgICAgICAgdGVzdChDb2NvYSwgIkNvY29hIik7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywg
bnVsbCk7CisgICAgICAgIHRlc3QodG9TdHJpbmcsICJ0b1N0cmluZyIpOworICAgICAgICB0ZXN0
KE1hdGNoYSwgbnVsbCk7CisgICAgfQorCisgICAgcHJvdG8uTWF0Y2hhID0gdHJ1ZTsKKworICAg
IHdpdGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyAgICAgICAg
dGVzdChDYXBwdWNjaW5vLCBudWxsKTsKKyAgICAgICAgdGVzdCh0b1N0cmluZywgInRvU3RyaW5n
Iik7CisgICAgICAgIHRlc3QoTWF0Y2hhLCAiTWF0Y2hhIik7CisgICAgfQorfSgpKTsKKworKGZ1
bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBnZXQgQ29jb2EoKSB7Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB0cmFwIik7CisgICAgICAgIH0sCisgICAg
ICAgIENhcHB1Y2Npbm86IG51bGwKKyAgICB9OworCisgICAgb2JqZWN0W1N5bWJvbC51bnNjb3Bh
Ymxlc10gPSB7CisgICAgICAgIENvY29hOiB0cnVlLAorICAgICAgICBDYXBwdWNjaW5vOiB0cnVl
CisgICAgfTsKKworICAgIHZhciBDb2NvYSA9ICJDb2NvYSI7CisgICAgdmFyIENhcHB1Y2Npbm8g
PSAiQ2FwcHVjY2lubyI7CisgICAgdmFyIHRvU3RyaW5nID0gInRvU3RyaW5nIjsKKworICAgIHdp
dGggKG9iamVjdCkgeworICAgICAgICB0ZXN0KENvY29hLCAiQ29jb2EiKTsKKyAgICB9CisKKyAg
ICBvYmplY3RbU3ltYm9sLnVuc2NvcGFibGVzXS5Db2NvYSA9IGZhbHNlOworCisgICAgdmFyIGVy
cm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRoIChvYmplY3QpIHsKKyAgICAgICAg
ICAgIENvY29hOworICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9
IGU7CisgICAgfQorICAgIHRlc3QoU3RyaW5nKGVycm9yKSwgIkVycm9yOiBiYWQgdHJhcCIpOwor
fSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBDb2Nv
YTogbnVsbCwKKyAgICB9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIFN5bWJv
bC51bnNjb3BhYmxlcywgeworICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigidW5zY29wYWJsZXMgdHJhcCIpOworICAgICAgICB9CisgICAgfSk7
CisKKyAgICB2YXIgQ29jb2EgPSAiQ29jb2EiOworICAgIHZhciBDYXBwdWNjaW5vID0gIkNhcHB1
Y2Npbm8iOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRo
IChvYmplY3QpIHsKKyAgICAgICAgICAgIENvY29hCisgICAgICAgIH0KKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgdGVzdChTdHJpbmcoZXJyb3IpLCAi
RXJyb3I6IHVuc2NvcGFibGVzIHRyYXAiKTsKKworICAgIHdpdGggKG9iamVjdCkgeworICAgICAg
ICB0ZXN0KENhcHB1Y2Npbm8sICJDYXBwdWNjaW5vIik7CisgICAgfQorfSgpKTsKKworKGZ1bmN0
aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBbU3ltYm9sLnVuc2NvcGFibGVz
XTogeworICAgICAgICAgICAgZ2V0IENvY29hKCkgeworICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigidW5zY29wYWJsZXMgdHJhcCIpOworICAgICAgICAgICAgfQorICAgICAgICB9LAor
ICAgICAgICBDb2NvYTogbnVsbCwKKyAgICB9OworICAgIHZhciBDb2NvYSA9ICJDb2NvYSI7Cisg
ICAgdmFyIENhcHB1Y2Npbm8gPSAiQ2FwcHVjY2lubyI7CisKKyAgICB2YXIgZXJyb3IgPSBudWxs
OworICAgIHRyeSB7CisgICAgICAgIHdpdGggKG9iamVjdCkgeworICAgICAgICAgICAgQ29jb2EK
KyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0K
KyAgICB0ZXN0KFN0cmluZyhlcnJvciksICJFcnJvcjogdW5zY29wYWJsZXMgdHJhcCIpOworCisg
ICAgd2l0aCAob2JqZWN0KSB7CisgICAgICAgIHRlc3QoQ2FwcHVjY2lubywgIkNhcHB1Y2Npbm8i
KTsKKyAgICB9Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBvYmplY3QgPSB7Cisg
ICAgICAgIFtTeW1ib2wudW5zY29wYWJsZXNdOiA0MiwKKyAgICAgICAgQ29jb2E6ICJPSyIsCisg
ICAgfTsKKyAgICB2YXIgQ29jb2EgPSAiQ29jb2EiOworCisgICAgd2l0aCAob2JqZWN0KSB7Cisg
ICAgICAgIHRlc3QoQ29jb2EsICJPSyIpOworICAgIH0KK30oKSk7Cg==
</data>
<flag name="review"
          id="274695"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>