<?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>146593</bug_id>
          
          <creation_ts>2015-07-03 07:44:45 -0700</creation_ts>
          <short_desc>Create [CustomBinding] extended IDL attribute</short_desc>
          <delta_ts>2015-08-07 05:04:29 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146594</blocked>
    
    <blocked>147153</blocked>
    
    <blocked>147556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106700</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-03 07:44:45 -0700</bug_when>
    <thetext>Create [StaticToPrototype] extended IDL attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106701</commentid>
    <comment_count>1</comment_count>
      <attachid>256104</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-03 07:53:02 -0700</bug_when>
    <thetext>Created attachment 256104
Patch

This patch creates [StaticToPrototype] as opposed to simple static functions that translate static class functions into constructor object properties. StaticToPrototype is thought to be able to create a normal JS method in the JS object prototype but that is bound to a static (class) method of the bound object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106702</commentid>
    <comment_count>2</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-03 07:55:16 -0700</bug_when>
    <thetext>Of course I already contemplate to update https://trac.webkit.org/wiki/WebKitIDL the moment this is landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106720</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-07-03 09:47:29 -0700</bug_when>
    <thetext>What spec is this needed for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106726</commentid>
    <comment_count>4</comment_count>
      <attachid>256107</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-03 10:16:16 -0700</bug_when>
    <thetext>Created attachment 256107
Patch for [StaticToPrototype]

Solved warning during compilation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106736</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-03 11:01:33 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; What spec is this needed for?

I added the dependency with bug 146594 because I need it for that patch.

I added this extended IDL attribute because of the problem I asked help for at https://lists.webkit.org/pipermail/webkit-dev/2015-July/027502.html. I was told there that the current bindings didn&apos;t support what I needed and I didn&apos;t find any better way to avoid the casting check. I assume the the casting check is needed only if you are going to use the object members but if you aren&apos;t, you can treat it as static. The new problem then was that static members become part of the constructor, not of the prototype and the spec and its tests say clearly that it has to be like that: https://streams.spec.whatwg.org/#enqueue-in-readable-stream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106839</commentid>
    <comment_count>6</comment_count>
      <attachid>256107</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-04 01:04:35 -0700</bug_when>
    <thetext>Comment on attachment 256107
Patch for [StaticToPrototype]

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        method in the JS object prototype but that is bound to a static (class) method of the bound object.

For the record, CountQueuingStrategy.size could also be fixed by making its constructor custom and adding a JSFunction* &quot;size&quot; slot to its prototype on the fly.
But the IDL would not be close to what the spec describes, making the implementation harder to understand.
Also the code generated by the binding generator with this patch is more readable and efficient, as illustrated by JSTestObj.cpp.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3650
&gt; +        if ($svgPropertyType and !$function-&gt;isStatic and !$function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;StaticToFunction&quot;}) {

Do we need that test? If so, should we cover it with a binding example?

&gt; Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:1412
&gt; +glong webkit_dom_test_obj_static_to_prototype_method(WebKitDOMTestObj* self)

Maybe disable &quot;StaticToPrototype&quot; method GObject binding?

&gt; Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm:1102
&gt; +- (int)staticToPrototypeMethod

Maybe disable &quot;StaticToPrototype&quot; method ObjC binding?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106841</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-07-04 06:58:25 -0700</bug_when>
    <thetext>It seems unfortunate that we need custom extended attributes for a new spec. Do you know if this functionality has been brought up for inclusion in WebIDL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106878</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-04 10:57:39 -0700</bug_when>
    <thetext>Stepping back a little, another option is a &apos;super-custom&apos; keyword to allow defining the C-like function directly.
This may cover cases where the method works with other callee types. See https://streams.spec.whatwg.org/#rs-pipe-through 
Not as nice for the specific case of &apos;size&apos; of course...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107043</commentid>
    <comment_count>9</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-06 01:21:16 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; For the record, CountQueuingStrategy.size could also be fixed by making its
&gt; constructor custom and adding a JSFunction* &quot;size&quot; slot to its prototype on
&gt; the fly.

Its constructor is already custom and I already tried that, but it doesn&apos;t work because it only adds the method to the prototype after invoking a constructor at least once and the protype needs to be initialized before a constructor is called. Actually some tests never invoke a constructor and just check the prototype.

&gt; But the IDL would not be close to what the spec describes, making the
&gt; implementation harder to understand.

I don&apos;t understand why you say that, it seems quite straightforward to me.

&gt; Also the code generated by the binding generator with this patch is more
&gt; readable and efficient, as illustrated by JSTestObj.cpp.

This is true :)

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3650
&gt; &gt; +        if ($svgPropertyType and !$function-&gt;isStatic and !$function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;StaticToFunction&quot;}) {
&gt; 
&gt; Do we need that test? If so, should we cover it with a binding example?

I am not sure, I tried to be thorough by adding to the same places were you have the isStatic check as that in many ways should behave as a static.

&gt; Maybe disable &quot;StaticToPrototype&quot; method GObject binding?
&gt; Maybe disable &quot;StaticToPrototype&quot; method ObjC binding?

I need to figure out how.

(In reply to comment #7)
&gt; It seems unfortunate that we need custom extended attributes for a new spec.

Yes, it does. But I have checked a lot of things and I couldn&apos;t find any other way to work around the castedThis check and make the idl map to static method.

Custom methods don&apos;t work because they still the castedThis before mapping to object methods of the binding object and static perse doesn&apos;t work because it maps the method to the constructor instead of the prototype and going back to the first comment, I cannot initialize the prototype until the constructor is called (or at least I don&apos;t know how).

&gt; Do you know if this functionality has been brought up for inclusion in
&gt; WebIDL?

Nope. Should I? Where? I would be happy to not include put this there if I knew how to map static method from the implemementation to the prototype, even by adding how many *custom* attributes and implementing whatever is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107051</commentid>
    <comment_count>10</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-06 01:38:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Stepping back a little, another option is a &apos;super-custom&apos; keyword to allow
&gt; defining the C-like function directly.
&gt; This may cover cases where the method works with other callee types. See
&gt; https://streams.spec.whatwg.org/#rs-pipe-through 
&gt; Not as nice for the specific case of &apos;size&apos; of course...

This could work too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107084</commentid>
    <comment_count>11</comment_count>
      <attachid>256107</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-06 06:15:48 -0700</bug_when>
    <thetext>Comment on attachment 256107
Patch for [StaticToPrototype]

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

&gt; Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:1418
&gt; +    WebCore::TestObj* item = WebKit::core(self);
&gt; +    glong result = item-&gt;staticToPrototypeMethod();
&gt; +    return result;

I&apos;m not sure if I understood this correctly, but if staticToPrototypeMethod is supposed to be a static method, this looks wrong, as it&apos;s called as an instance method.

&gt; Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:1428
&gt; +    item-&gt;staticToPrototypeMethodWithParameters(convertedInputString);

Ditto.

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:4072
&gt; +    UNUSED_PARAM(exec);

This is actually used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107094</commentid>
    <comment_count>12</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-06 08:06:34 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 256107 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256107&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:1418
&gt; &gt; +    WebCore::TestObj* item = WebKit::core(self);
&gt; &gt; +    glong result = item-&gt;staticToPrototypeMethod();
&gt; &gt; +    return result;
&gt; 
&gt; I&apos;m not sure if I understood this correctly, but if staticToPrototypeMethod
&gt; is supposed to be a static method, this looks wrong, as it&apos;s called as an
&gt; instance method.

Check the other static methods. Output code is the same. Are they wrong too?

&gt; &gt; Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:4072
&gt; &gt; +    UNUSED_PARAM(exec);
&gt; 
&gt; This is actually used.

I would have to generate different cases for parameters or no parameters. Isn&apos;t it ok to leave it like that to avoid the warnins of the cases without parameters not to warn?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107097</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-06 08:18:25 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Comment on attachment 256107 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=256107&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:1418
&gt; &gt; &gt; +    WebCore::TestObj* item = WebKit::core(self);
&gt; &gt; &gt; +    glong result = item-&gt;staticToPrototypeMethod();
&gt; &gt; &gt; +    return result;
&gt; &gt; 
&gt; &gt; I&apos;m not sure if I understood this correctly, but if staticToPrototypeMethod
&gt; &gt; is supposed to be a static method, this looks wrong, as it&apos;s called as an
&gt; &gt; instance method.
&gt; 
&gt; Check the other static methods. Output code is the same. Are they wrong too?

I guess you should either disable Gobj/ObjC generated code or fix the generated code.
I would tend to do the first option.
In any case, see CodeGenerator*.pm in WebCore/bindings/scripts folder, the SkipFunction routine for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107161</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-06 11:42:06 -0700</bug_when>
    <thetext>Another case where the current custom binding is falling short is for promise returning APIs.
They should reject promise in lieu of raising exception, including when the callee type is not the expected one.
This is now fixed for not custom promise APIs but not yet for custom ones.
Having a super-custom keyword would allow fixing this easily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107442</commentid>
    <comment_count>15</comment_count>
      <attachid>256297</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-07 06:35:21 -0700</bug_when>
    <thetext>Created attachment 256297
Patch for [FullCustom]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107446</commentid>
    <comment_count>16</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-07 06:53:46 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created attachment 256297 [details]
&gt; Patch for [FullCustom]

I pushed another version of patch for bug 146593 with [FullCustom] implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107447</commentid>
    <comment_count>17</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-07 06:57:16 -0700</bug_when>
    <thetext>It also seems that the GObject bindings are wrong for [StaticToPrototype] and they have to go and I will fix if Sam thinks [StaticToPrototype] is a better alternative to [FullCustom]. Not sure about ObjC (I&apos;d appreciate Sam or somebody could comment about this).

I&apos;d also appreciate a proper review for any of the cases so that we can carry on with the task :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107480</commentid>
    <comment_count>18</comment_count>
      <attachid>256297</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-07 10:37:33 -0700</bug_when>
    <thetext>Comment on attachment 256297
Patch for [FullCustom]

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        I added the [FullCustom] IDL extended attribute. The idea is that when using this attribute, bindings generate

How about CustomAsFuntion, as opposed to Custom meaning &quot;Custom as method&quot;?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm:227
&gt; +        || $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;FullCustom&quot;}) {

Do we have a use case for FullCustom attributes? If not, we could simplify the patch by removing support for it.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2216
&gt; +        foreach my $attribute (@nonFullCustomAttributes) {

Ditto.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2772
&gt; +        foreach my $function (@nonFullCustomFunctions) {

Can we rewrite this without creating the nonFullCustomFunctions array.
For example by adding the &quot;FullCustom&quot; test within this loop?

&gt; Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm:945
&gt; +

I am not sure this code is doing what &quot;FullCustom&quot; is expected to do.
I would tend to disable it until there is a use-case for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107714</commentid>
    <comment_count>19</comment_count>
      <attachid>256369</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-08 03:24:15 -0700</bug_when>
    <thetext>Created attachment 256369
Patch for [StaticToPrototype]

This is for [StaticToPrototype] version. Removed the generation of the GObject bindings and avoided the generation of UNUSED_PARAMS for exec in the case of methods with parameters as Carlos suggested</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107719</commentid>
    <comment_count>20</comment_count>
      <attachid>256370</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-08 04:11:25 -0700</bug_when>
    <thetext>Created attachment 256370
Patch for [StaticToPrototype]

This is for [StaticToPrototype] version. Removed the generation of the GObject bindings and avoided the generation of UNUSED_PARAMS for exec in the case of methods with parameters as Carlos suggested</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107736</commentid>
    <comment_count>21</comment_count>
      <attachid>256374</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-08 06:31:42 -0700</bug_when>
    <thetext>Created attachment 256374
Patch with [CustomObjectNoBindings]

This patch is for the full custom approach. I changed the attribute name into CustomObjectNoBindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107737</commentid>
    <comment_count>22</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-08 06:47:37 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; +        I added the [FullCustom] IDL extended attribute. The idea is that when using this attribute, bindings generate
&gt; 
&gt; How about CustomAsFuntion, as opposed to Custom meaning &quot;Custom as method&quot;?

Yes, FullCustom is not a good attribute name, though I think CustomAsFunction could be misleading too. I tried a more concrete approach, as CustomObjectNoBindings, though I could try CustomObjectGenerateNoBindings, if it is not concrete enough.

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm:227
&gt; &gt; +        || $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;FullCustom&quot;}) {
&gt; 
&gt; Do we have a use case for FullCustom attributes? If not, we could simplify
&gt; the patch by removing support for it.

No, we don&apos;t (yet), though I think we should keep the generation consistent and IMHO, not providing it would be weird. I kept it.

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2772
&gt; &gt; +        foreach my $function (@nonFullCustomFunctions) {
&gt; 
&gt; Can we rewrite this without creating the nonFullCustomFunctions array.
&gt; For example by adding the &quot;FullCustom&quot; test within this loop?

Using &quot;break&quot; is not an option because it fails. The other option was putting the rest of the code inside an &quot;if&quot; clause, but I think it would pollute the patch and would make the code a bit harder to read. Besides that, there are also some other filters like that at the code so taking into account all options, I thought this was the best given the circumstances (I would choose the &quot;break&quot;).

&gt; &gt; Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm:945
&gt; &gt; +
&gt; 
&gt; I am not sure this code is doing what &quot;FullCustom&quot; is expected to do.
&gt; I would tend to disable it until there is a use-case for it.

For the case of [StaticToPrototype] and GObject, I got confirmation that it was indeed a problem to generate those bindings so I removed it completely (and fixed the generation bug). For the case of ObjC, I acknowledge that it&apos;s trivial and I can do it quickly as soon as the Apple responsibles confirm that they do have to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107738</commentid>
    <comment_count>23</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-08 06:52:30 -0700</bug_when>
    <thetext>At the moment, we have two options that could land, even separately though only one would be useful for bug 146594.

I would appreciate Sam or Darin (or any reviewer) to help us decide which option is preferrable, maybe to give a better opinion for the name and tell if the ObjC bindings are ok or have to go.

Youenn is right that the full custom option could have wider use, but it is also true that [StaticToPrototype] generates more binding code and can be more straighforward to implement some similar things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107743</commentid>
    <comment_count>24</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-08 07:18:15 -0700</bug_when>
    <thetext>&gt; &gt; Do we have a use case for FullCustom attributes? If not, we could simplify
&gt; &gt; the patch by removing support for it.
&gt; 
&gt; No, we don&apos;t (yet), though I think we should keep the generation consistent
&gt; and IMHO, not providing it would be weird. I kept it.

The binding generator is generating code for attribute getters.
The binding generator is generating code for methods being called, not for method getters.

The problem we have is coming from the fact that we get a method from an object, and later call the affected method. This does not seem to be an issue for not-callable attributes.

&gt; &gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2772
&gt; &gt; &gt; +        foreach my $function (@nonFullCustomFunctions) {
&gt; &gt; 
&gt; &gt; Can we rewrite this without creating the nonFullCustomFunctions array.
&gt; &gt; For example by adding the &quot;FullCustom&quot; test within this loop?
&gt; 
&gt; Using &quot;break&quot; is not an option because it fails. The other option was
&gt; putting the rest of the code inside an &quot;if&quot; clause, but I think it would
&gt; pollute the patch and would make the code a bit harder to read. Besides
&gt; that, there are also some other filters like that at the code so taking into
&gt; account all options, I thought this was the best given the circumstances (I
&gt; would choose the &quot;break&quot;).

Maybe a statement like &quot;next if(IsCustom...);&quot; would work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112707</commentid>
    <comment_count>25</comment_count>
      <attachid>257646</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-28 08:21:01 -0700</bug_when>
    <thetext>Created attachment 257646
Patch with [CustomObjectGenerateNoBindings]

Changed name of the attribute to CustomObjectGenerateNoBindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112711</commentid>
    <comment_count>26</comment_count>
      <attachid>257646</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-28 08:54:50 -0700</bug_when>
    <thetext>Comment on attachment 257646
Patch with [CustomObjectGenerateNoBindings]

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Create [StaticToPrototype] extended IDL attribute

It might be good to rename the bug entry.
Also, should the &quot;r?&quot; on the other patch be removed?

&gt; Source/WebCore/ChangeLog:8
&gt; +        I added the [CustomObjectGenerateNoBindings] IDL extended attribute. The idea is that when using this attribute,

The keyword is a bit long but I do not really have any better name.
or maybe just NoBindingMethod?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm:227
&gt; +        || $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomObjectGenerateNoBindings&quot;}) {

CustomObjectGenerateNoBindings is not needed for attributes.
Can it be removed?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2216
&gt; +    }

CustomObjectGenerateNoBindings is not needed for attributes.
Can it be removed?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2774
&gt; +        foreach my $function (@nonCustomObjectGenerateNoBindingsFunctions) {

To reduce the size of the patch, instead of building an array, can you use inside the loop something like:
    next if($function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomObjectGenerateNoBindings&quot;});

&gt; Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm:452
&gt; +

Might want to disable binding generation for ObjC as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112719</commentid>
    <comment_count>27</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-28 09:18:08 -0700</bug_when>
    <thetext>You did almost the same comments as before and I&apos;ll provide almost the same answers :)

(In reply to comment #26)
&gt; It might be good to rename the bug entry.
&gt; Also, should the &quot;r?&quot; on the other patch be removed?

I also marked the other patch as obsolete to reduce the clutter.

&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        I added the [CustomObjectGenerateNoBindings] IDL extended attribute. The idea is that when using this attribute,
&gt; 
&gt; The keyword is a bit long but I do not really have any better name.
&gt; or maybe just NoBindingMethod?

Might be. I have no preference, let&apos;s see what Geoffrey thinks.

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm:227
&gt; &gt; +        || $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomObjectGenerateNoBindings&quot;}) {
&gt; 
&gt; CustomObjectGenerateNoBindings is not needed for attributes.
&gt; Can it be removed?

Considering that it didn&apos;t take too much time to implement or maintain and it brings more consistency between attributes and methods, I think it is better to keep it. Of course unless Geoffrey thinks otherwise.

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2774
&gt; &gt; +        foreach my $function (@nonCustomObjectGenerateNoBindingsFunctions) {
&gt; 
&gt; To reduce the size of the patch, instead of building an array, can you use
&gt; inside the loop something like:
&gt;     next
&gt; if($function-&gt;signature-&gt;extendedAttributes-
&gt; &gt;{&quot;CustomObjectGenerateNoBindings&quot;});
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm:452
&gt; &gt; +
&gt; 
&gt; Might want to disable binding generation for ObjC as well?

I disabled them for GObject because Carlos García confirmed they were wrong. I checked how the [Custom] methods are treated in ObjC and they are generated exactly the same way as [CustomObjectGenerateNoBindings]. Given my lack of knowledged of the ObjC bindings and that it is trivial to disable the generation I prefer to give Geoffrey last word.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112829</commentid>
    <comment_count>28</comment_count>
      <attachid>257646</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-28 13:17:23 -0700</bug_when>
    <thetext>Comment on attachment 257646
Patch with [CustomObjectGenerateNoBindings]

What is the difference between the [Custom] attribute and the [CustomObjectGenerateNoBindings] attribute? When should I use one or the other?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112857</commentid>
    <comment_count>29</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-28 14:00:54 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Comment on attachment 257646 [details]
&gt; Patch with [CustomObjectGenerateNoBindings]
&gt; 
&gt; What is the difference between the [Custom] attribute and the
&gt; [CustomObjectGenerateNoBindings] attribute? When should I use one or the
&gt; other?

[Custom] is typically used when the JS to C++ parameters mapping cannot be automated.

Given an IDL named Foo and its method fooMethod, [CustomObjectGenerateNoBindings] would be used if calling fooMethod on a not-JSFoo callee should not raise a TypeError exception (default behavior).

When using [CustomObjectGenerateNoBindings], one needs to directly implement the jsFooPrototypeFunctionFooMethod function.
When using [Custom], one needs to implement the JSFoo::fooMethod (which is called by the generated jsFooPrototypeFunctionFooMethod function).

One example is https://streams.spec.whatwg.org/#rs-pipe-through where the callee can be any object having a &quot;pipeTo&quot; method.
It also happens for bug 146594, the callee being undefined in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113057</commentid>
    <comment_count>30</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-29 00:42:27 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; When using [CustomObjectGenerateNoBindings], one needs to directly implement
&gt; the jsFooPrototypeFunctionFooMethod function.
&gt; When using [Custom], one needs to implement the JSFoo::fooMethod (which is
&gt; called by the generated jsFooPrototypeFunctionFooMethod function).
&gt; 
&gt; One example is https://streams.spec.whatwg.org/#rs-pipe-through where the
&gt; callee can be any object having a &quot;pipeTo&quot; method.
&gt; It also happens for bug 146594, the callee being undefined in that case.

Exactly, because in the case of [Custom], jsFooPrototypeFunctionFooMethod performs some operations like a cast to this check before calling JSFoo::fooMethod, which is our main issue here.

The proposed solution not only solves that issue because it allows you to implement jsFooPrototypeFunctionFooMethod direcly, but also provides you a way of adding any more or different checks if needed. We think it might be useful not only for this case, but maybe for others too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113070</commentid>
    <comment_count>31</comment_count>
      <attachid>257745</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-29 04:51:21 -0700</bug_when>
    <thetext>Created attachment 257745
Patch with [CustomObjectGenerateNoBindings]

Simplified patch quite a lot. Removed the attributes generation, use next instead of a new array and removed skipped generation for ObjC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113071</commentid>
    <comment_count>32</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-29 04:52:37 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Simplified patch quite a lot. Removed the attributes generation, use next
&gt; instead of a new array and removed skipped generation for ObjC.

Finally I honored Youenn&apos;s comment and patch is much simpler and cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113097</commentid>
    <comment_count>33</comment_count>
      <attachid>257751</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-29 09:14:13 -0700</bug_when>
    <thetext>Created attachment 257751
Patch

Mac compilation was failing because the header of the self generated file was private to the cpp instead of in the header..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113123</commentid>
    <comment_count>34</comment_count>
      <attachid>257751</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-29 11:30:45 -0700</bug_when>
    <thetext>Comment on attachment 257751
Patch

I see.

I don&apos;t think &quot;generate no bindings&quot; is a good way to express this difference. It is strange for IDL to instruct the parser to &quot;generate no bindings&quot;, and for the parser then to generate some bindings (see JSTestObj.h and JSTestObj.cpp) that are incomplete in a special way.

Let&apos;s call this &quot;CustomBinding&quot;.

Other options that I didn&apos;t like as much:

FullyCustom
CustomWithoutTypeCheck</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113341</commentid>
    <comment_count>35</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-30 03:33:18 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; Let&apos;s call this &quot;CustomBinding&quot;.

Roger!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113342</commentid>
    <comment_count>36</comment_count>
      <attachid>257830</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-30 03:50:51 -0700</bug_when>
    <thetext>Created attachment 257830
Patch with [CustomObjectGenerateNoBindings]

Changed attribute name into CustomBindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113345</commentid>
    <comment_count>37</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-07-30 04:42:51 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; Created attachment 257830 [details]
&gt; Patch with [CustomObjectGenerateNoBindings]
&gt; 
&gt; Changed attribute name into CustomBindings

Why adding an &quot;s&quot; to CustomBinding attribute name?
It seems it only applies to one method at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113351</commentid>
    <comment_count>38</comment_count>
      <attachid>257831</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-07-30 07:16:12 -0700</bug_when>
    <thetext>Created attachment 257831
Patch with [CustomObjectGenerateNoBindings]

Corrected typo, good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114551</commentid>
    <comment_count>39</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-08-03 23:59:55 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; Created attachment 257831 [details]
&gt; Patch with [CustomObjectGenerateNoBindings]
&gt; 
&gt; Corrected typo, good catch!

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114813</commentid>
    <comment_count>40</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-08-04 15:31:25 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; LGTM

So I guess only the official r+ (or suggesting changes) is pending.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115524</commentid>
    <comment_count>41</comment_count>
      <attachid>257831</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-06 16:18:16 -0700</bug_when>
    <thetext>Comment on attachment 257831
Patch with [CustomObjectGenerateNoBindings]

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115683</commentid>
    <comment_count>42</comment_count>
      <attachid>257831</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-07 01:15:29 -0700</bug_when>
    <thetext>Comment on attachment 257831
Patch with [CustomObjectGenerateNoBindings]

Clearing flags on attachment: 257831

Committed r188119: &lt;http://trac.webkit.org/changeset/188119&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115684</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-07 01:15:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115723</commentid>
    <comment_count>44</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-08-07 05:04:29 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; All reviewed patches have been landed.  Closing bug.

After having landed this, I updated the wiki with the documentation about the attribute https://trac.webkit.org/wiki/WebKitIDL#CustomBinding.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256104</attachid>
            <date>2015-07-03 07:53:02 -0700</date>
            <delta_ts>2015-07-03 10:16:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146593-20150703165206.patch</filename>
            <type>text/plain</type>
            <size>13872</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDliYTczNGZlMmRhZDNh
MzU0MGYyMTFjZTYxOTg5ZmY1OTQ4NzE4Ny4uNDdiY2Y4Yzc3MzM5NTUzMWZlMWU0MTQ1NTYyYTFk
NWMxMGY1MWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE1LTA3LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtTdGF0aWNUb1Byb3RvdHlwZV0gZXh0ZW5kZWQgSURMIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjcmVhdGVz
IFtTdGF0aWNUb1Byb3RvdHlwZV0gYXMgb3Bwb3NlZCB0byBzaW1wbGUgc3RhdGljIGZ1bmN0aW9u
cyB0aGF0IHRyYW5zbGF0ZSBzdGF0aWMgY2xhc3MKKyAgICAgICAgZnVuY3Rpb25zIGludG8gY29u
c3RydWN0b3Igb2JqZWN0IHByb3BlcnRpZXMuIFN0YXRpY1RvUHJvdG90eXBlIGlzIHRob3VnaHQg
dG8gYmUgYWJsZSB0byBjcmVhdGUgYSBub3JtYWwgSlMKKyAgICAgICAgbWV0aG9kIGluIHRoZSBK
UyBvYmplY3QgcHJvdG90eXBlIGJ1dCB0aGF0IGlzIGJvdW5kIHRvIGEgc3RhdGljIChjbGFzcykg
bWV0aG9kIG9mIHRoZSBib3VuZCBvYmplY3QuCisKKyAgICAgICAgc3RhdGljVG9Qcm90b3R5cGVN
ZXRob2QgYW5kIHN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMgbmV3IHRlc3Qg
bWV0aG9kcyBhdCBUZXN0T2JqLmlkbC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAg
ICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uRnVuY3Rpb25DYWxsKTogR2VuZXJhdGVkIGZ1bmN0aW9ucyBiZWhhdmUgYXMgc3RhdGlj
IGluIHRoZSBnZW5lcmF0ZWQgY29kZSwgYnV0IG5vdCBpbiB0aGUKKyAgICAgICAgbmFtZSBvciB0
aGVpciBhZGRpdGlvbiB0byB0aGUgViB0YWJsZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0OiBBZGRlZCBTdGF0aWNUb1Byb3RvdHlwZSBleHRlbmRlZCBhdHRy
aWJ1dGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3N0YXRpY190b19wcm90
b3R5cGVfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc3RhdGljX3RvX3By
b3RvdHlwZV9tZXRob2Rfd2l0aF9wYXJhbWV0ZXJzKTogRXhwZWN0YXRpb25zLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDogRXhwZWN0
YXRpb25zLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNUb1By
b3RvdHlwZU1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMpOiBFeHBlY3RhdGlvbnMu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOiBFeHBl
Y3RhdGlvbnMuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5tbTogRXhwZWN0YXRpb25zLgorICAgICAgICAoLVtET01UZXN0T2JqIHN0YXRpY1RvUHJvdG90
eXBlTWV0aG9kXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc3RhdGljVG9Qcm90b3R5cGVNZXRo
b2RXaXRoUGFyYW1ldGVyczpdKTogRXhwZWN0YXRpb25zLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbDogQWRkZWQgdHdvIHRlc3QgbWV0aG9kcywgb25lIHJldHVy
bmluZyBzb21ldGhpbmcgYW5kIGFub3RoZXIgcmVjZWl2aW5nCisgICAgICAgIHBhcmFtZXRlcnMu
CisKIDIwMTUtMDctMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5m
cj4KIAogICAgICAgICBbU3RyZWFtcyBBUEldIFJlbW92ZSBSZWFkYWJsZVN0cmVhbSBhbmQgUmVh
ZGVyIGNhbmNlbCgpIGN1c3RvbSBiaW5kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGMyNDVhMzU0MmIxNzcyNTA3ZWI5
ZWE3NGJiNzNjZDg3MDE5YjQ4YmMuLjViNjFkZTE0MjlhNjBiYTQ2NjFhMDYxMjZmNzY3Y2Q5YTgz
YmRkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC0yODAxLDcgKzI4MDEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogCiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9FcnJvci5oPiJ9ID0g
MTsKIAotICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKKyAgICAgICAgICAg
IGlmICgkZnVuY3Rpb24tPmlzU3RhdGljIG9yICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiU3RhdGljVG9Qcm90b3R5cGUifSkgewogICAgICAgICAgICAgICAgIGlm
ICgkaXNDdXN0b20pIHsKICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVBcmd1bWVudHNDb3Vu
dENoZWNrKFxAaW1wbENvbnRlbnQsICRmdW5jdGlvbiwgJGludGVyZmFjZSk7CiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
JHtjbGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihleGVjKSk7
XG4iKTsKQEAgLTMyMDgsNyArMzIwOCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawog
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiJHtpbXBsZW1lbnRlZEJ5fS5oIiwgJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9KTsKICAgICAg
ICAgdW5zaGlmdChAYXJndW1lbnRzLCAiJmltcGwiKSBpZiAhJGZ1bmN0aW9uLT5pc1N0YXRpYzsK
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ltcGxlbWVudGVkQnl9Ojoke2Z1bmN0aW9uSW1w
bGVtZW50YXRpb25OYW1lfSI7Ci0gICAgfSBlbHNpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYykgewor
ICAgIH0gZWxzaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMgb3IgJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdGF0aWNUb1Byb3RvdHlwZSJ9KSB7CiAgICAgICAgICRm
dW5jdGlvbk5hbWUgPSAiJHtpbnRlcmZhY2VOYW1lfTo6JHtmdW5jdGlvbkltcGxlbWVudGF0aW9u
TmFtZX0iOwogICAgIH0gZWxzaWYgKCRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSBhbmQg
ISRzdmdMaXN0UHJvcGVydHlUeXBlKSB7CiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAicG9kSW1w
bC4ke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgpCiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgJGluZGVudCAuICJzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIikg
aWYgJHJhaXNlc0V4Y2VwdGlvbjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgkc3ZnUHJvcGVy
dHlUeXBlIGFuZCAhJGZ1bmN0aW9uLT5pc1N0YXRpYykgeworICAgICAgICBpZiAoJHN2Z1Byb3Bl
cnR5VHlwZSBhbmQgISRmdW5jdGlvbi0+aXNTdGF0aWMgYW5kICEkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0YXRpY1RvRnVuY3Rpb24ifSkgewogICAgICAgICAg
ICAgaWYgKCRyYWlzZXNFeGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgJGluZGVudCAuICJpZiAoIWVjKVxuIik7IAogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAkaW5kZW50IC4gIiAgICBpbXBsLmNvbW1pdENoYW5nZSgpO1xuIik7CkBAIC0z
NjU3LDcgKzM2NTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgp
CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAicmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG15ICR0
aGlzT2JqZWN0ID0gJGZ1bmN0aW9uLT5pc1N0YXRpYyA/IDAgOiAiY2FzdGVkVGhpcyI7CisgICAg
ICAgIG15ICR0aGlzT2JqZWN0ID0gKCRmdW5jdGlvbi0+aXNTdGF0aWMgb3IgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdGF0aWNUb0Z1bmN0aW9uIn0pID8gMCA6
ICJjYXN0ZWRUaGlzIjsKICAgICAgICAgaWYgKCRub25kZXRlcm1pbmlzdGljKSB7CiAgICAgICAg
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiTWVtb2l6ZWRET01SZXN1bHQuaCIsICJXRUJfUkVQTEFZ
Iik7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHJlcGxheS9JbnB1dEN1cnNvci5o
PiIsICJXRUJfUkVQTEFZIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCAyOWMyM2NlMWU3YjUyNjQyMTg5ZGRjODBiOWZmYjYz
MDhlMTg5NjIxLi40NTAyNjNhYWVjNTE2M2RlOTA0NWU0ODEyNmE0ZGU4NmI0NTNhMjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQK
QEAgLTEwOCw2ICsxMDgsNyBAQCBSZXF1aXJlc0V4aXN0aW5nQXRvbWljU3RyaW5nCiBSZXR1cm5O
ZXdPYmplY3QKIFNldHRlclJhaXNlc0V4Y2VwdGlvbgogU2tpcFZUYWJsZVZhbGlkYXRpb24KK1N0
YXRpY1RvUHJvdG90eXBlCiBTdHJpY3RUeXBlQ2hlY2tpbmcKIFN1cHByZXNzVG9KU09iamVjdAog
VHJlYXROdWxsQXM9TnVsbFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApp
bmRleCA2ZDVlODBiYmU5YjBkNmI1OTU2MmY3NjFhMjg2Yzk2OGYwNTU0ZTE5Li4xMDkyM2I2YTFi
NjdmN2RmODBjYmVlMzdkMjAxNjc4NGQ4MGJlZDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmNwcApAQCAtMTQwOSw2ICsxNDA5LDI1IEBAIHZvaWQgd2Via2l0X2RvbV90ZXN0X29i
al9vdmVybG9hZGVkX21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIq
CiAjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpICovCiB9CiAKK2dsb25nIHdlYmtpdF9kb21f
dGVzdF9vYmpfc3RhdGljX3RvX3Byb3RvdHlwZV9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxmKSwgMCk7CisgICAg
V2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnbG9uZyBy
ZXN1bHQgPSBpdGVtLT5zdGF0aWNUb1Byb3RvdHlwZU1ldGhvZCgpOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK3ZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9zdGF0aWNfdG9fcHJvdG90eXBlX21l
dGhvZF93aXRoX3BhcmFtZXRlcnMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIq
IGlucHV0U3RyaW5nKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVTVF9PQkooc2VsZikpOwor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoaW5wdXRTdHJpbmcpOworICAgIFdlYkNvcmU6OlRlc3RPYmoq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkSW5w
dXRTdHJpbmcgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoaW5wdXRTdHJpbmcpOworICAgIGl0ZW0t
PnN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMoY29udmVydGVkSW5wdXRTdHJp
bmcpOworfQorCiB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE5vZGUqIHZhbHVlKQogewogICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaApp
bmRleCAyZGJiNmRjNDFiMzUwN2U2YTg3MWQxOTQ4MzU2YzdiYzZhNDRhMDA3Li4yNGU1MmRmYjgz
OTBlMDFhNTgzMmI5NDQ2NzE4ZDg5MmJlZTc1ODg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE9iai5oCkBAIC01MDcsNiArNTA3LDI3IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90
ZXN0X29ial9vdmVybG9hZGVkX21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3Qg
Z2NoYXIqIHR5cGUpOwogCiAvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc3RhdGljX3RvX3By
b3RvdHlwZV9tZXRob2Q6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICoKKyAqIFJl
dHVybnM6IEEgI2dsb25nCisgKgorICogU3RhYmlsaXR5OiBVbnN0YWJsZQorKiovCitXRUJLSVRf
QVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3N0YXRpY190b19wcm90b3R5cGVfbWV0aG9k
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpf
c3RhdGljX3RvX3Byb3RvdHlwZV9tZXRob2Rfd2l0aF9wYXJhbWV0ZXJzOgorICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKKyAqIEBpbnB1dFN0cmluZzogQSAjZ2NoYXIKKyAqCisgKiBTdGFi
aWxpdHk6IFVuc3RhYmxlCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29i
al9zdGF0aWNfdG9fcHJvdG90eXBlX21ldGhvZF93aXRoX3BhcmFtZXRlcnMoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIGlucHV0U3RyaW5nKTsKKworLyoqCiAgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAq
IEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE5vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggNjVhZjZhMGUyYTM0
NDVkZWU0NjM2Yjg2NGY5ZThlMDY2MzNhNjczYy4uYjdmYmM2ZDU1ODlmNGYwZTNlYWQzNTcwMjJm
YjlmYjk5MzcxMzVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEzNiw2ICsxMzYsOCBAQCBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNz
TWV0aG9kMihKU0M6OgogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMShKU0M6OkV4ZWNTdGF0ZSopOwog
I2VuZGlmCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcChKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3Rh
dGljVG9Qcm90b3R5cGVNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0YXRpY1RvUHJvdG90
eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhV
bnNpZ25lZExvbmdTZXF1ZW5jZShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5j
dGlvbihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKEpTQzo6RXhl
Y1N0YXRlKik7CkBAIC02MzQsNiArNjM2LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogI2VuZGlmCiAgICAgeyAib3Zlcmxv
YWRlZE1ldGhvZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZCksIChpbnRwdHJfdCkgKDIpIH0sCiAgICAgeyAiY2xhc3NNZXRob2RXaXRoQ2xhbXAi
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1w
KSwgKGludHB0cl90KSAoMikgfSwKKyAgICB7ICJzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZCIsIEpT
Qzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2Qp
LCAoaW50cHRyX3QpICgwKSB9LAorICAgIHsgInN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBh
cmFtZXRlcnMiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0YXRpY1RvUHJv
dG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMpLCAoaW50cHRyX3QpICgxKSB9LAogICAgIHsgIm1l
dGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKSwgKGludHB0cl90KSAoMSkg
fSwKICAgICB7ICJzdHJpbmdBcnJheUZ1bmN0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSwKICAgICB7
ICJkb21TdHJpbmdMaXN0RnVuY3Rpb24iLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbiksIChpbnRwdHJfdCkgKDEpIH0sCkBAIC00MDU2LDYg
KzQwNjAsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKEV4ZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2QoRXhlY1N0
YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoVGVzdE9iajo6c3Rh
dGljVG9Qcm90b3R5cGVNZXRob2QoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVycyhFeGVjU3RhdGUq
IGV4ZWMpCit7CisgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQor
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGV4ZWMpKTsKKyAgICBTdHJpbmcgaW5wdXRTdHJpbmcgPSBleGVjLT5hcmd1bWVudCgw
KS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICBUZXN0T2JqOjpzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJz
KGlucHV0U3RyaW5nKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCmlu
ZGV4IDNiNzMxMDE4YTI5Y2I1OWVjYTkxYzNlODI2M2EwNzRiM2I3ZDQwMjkuLmVkOWRkMjI1MDRk
ZDQ5ODcyZjJlY2I4ZjliYjhkMzY2NDA0OTI3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKQEAgLTE2MCw2ICsx
NjAsOCBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVRlc3RPYmogOiBET01PYmplY3QK
IC0gKHZvaWQpY2xhc3NNZXRob2Q7CiAtIChpbnQpY2xhc3NNZXRob2RXaXRoT3B0aW9uYWw6KGlu
dClhcmc7CiAtICh2b2lkKWNsYXNzTWV0aG9kMjooaW50KWFyZzsKKy0gKGludClzdGF0aWNUb1By
b3RvdHlwZU1ldGhvZDsKKy0gKHZvaWQpc3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1l
dGVyczooTlNTdHJpbmcgKilpbnB1dFN0cmluZzsKIC0gKERPTVNWR0RvY3VtZW50ICopZ2V0U1ZH
RG9jdW1lbnQ7CiAtICh2b2lkKWNvbnZlcnQxOihET01UZXN0Tm9kZSAqKXZhbHVlOwogLSAodm9p
ZCljb252ZXJ0MjooRE9NVGVzdE5vZGUgKil2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4IGFkYjI3
MzBkMzE4MTNhZDcyODBlNDVkMDY5ODVkOTAzZTUwYTBmN2QuLjdiYTJjYmJlOTFlMzYzZTQ4NzY4
NDc4MzM0MjBlZGMzZDhiOTRlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtMTA5OSw2ICsxMDk5LDE4
IEBACiAKICNlbmRpZgogCistIChpbnQpc3RhdGljVG9Qcm90b3R5cGVNZXRob2QKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnN0
YXRpY1RvUHJvdG90eXBlTWV0aG9kKCk7Cit9CisKKy0gKHZvaWQpc3RhdGljVG9Qcm90b3R5cGVN
ZXRob2RXaXRoUGFyYW1ldGVyczooTlNTdHJpbmcgKilpbnB1dFN0cmluZworeworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zdGF0aWNUb1Byb3Rv
dHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKGlucHV0U3RyaW5nKTsKK30KKwogLSAoRE9NU1ZHRG9j
dW1lbnQgKilnZXRTVkdEb2N1bWVudAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAppbmRleCBjZTgwNDJmYzA0MDU0MjY3MjU5YzZhOTdmNGRlMjVjNjM1YjNlM2U1
Li45ZGJlZWFkOTcxZmY2ZmUyM2RhMGIxYjcwYjNmOWNjYWMyZjI4M2ZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0yMDAsNiAr
MjAwLDkgQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFs
VmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogCiAgICAgdm9pZCBjbGFzc01ldGhvZFdpdGhD
bGFtcChbQ2xhbXBdIHVuc2lnbmVkIHNob3J0IG9iakFyZ3NTaG9ydCwgW0NsYW1wXSB1bnNpZ25l
ZCBsb25nIG9iakFyZ3NMb25nKTsKIAorICAgIFtTdGF0aWNUb1Byb3RvdHlwZV0gbG9uZyBzdGF0
aWNUb1Byb3RvdHlwZU1ldGhvZCgpOworICAgIFtTdGF0aWNUb1Byb3RvdHlwZV0gdm9pZCBzdGF0
aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKERPTVN0cmluZyBpbnB1dFN0cmluZyk7
CisKICNpZiBkZWZpbmVkKFRFU1RJTkdfSlMpCiAgICAgdm9pZCBtZXRob2RXaXRoVW5zaWduZWRM
b25nU2VxdWVuY2Uoc2VxdWVuY2U8dW5zaWduZWQgbG9uZz4gdW5zaWduZWRMb25nU2VxdWVuY2Up
OwogICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZ1tdIHN0cmluZ0FycmF5RnVuY3Rpb24o
RE9NU3RyaW5nW10gdmFsdWVzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256107</attachid>
            <date>2015-07-03 10:16:16 -0700</date>
            <delta_ts>2015-07-08 03:25:36 -0700</delta_ts>
            <desc>Patch for [StaticToPrototype]</desc>
            <filename>bug-146593-20150703191520.patch</filename>
            <type>text/plain</type>
            <size>14110</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDliYTczNGZlMmRhZDNh
MzU0MGYyMTFjZTYxOTg5ZmY1OTQ4NzE4Ny4uNDdiY2Y4Yzc3MzM5NTUzMWZlMWU0MTQ1NTYyYTFk
NWMxMGY1MWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE1LTA3LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtTdGF0aWNUb1Byb3RvdHlwZV0gZXh0ZW5kZWQgSURMIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjcmVhdGVz
IFtTdGF0aWNUb1Byb3RvdHlwZV0gYXMgb3Bwb3NlZCB0byBzaW1wbGUgc3RhdGljIGZ1bmN0aW9u
cyB0aGF0IHRyYW5zbGF0ZSBzdGF0aWMgY2xhc3MKKyAgICAgICAgZnVuY3Rpb25zIGludG8gY29u
c3RydWN0b3Igb2JqZWN0IHByb3BlcnRpZXMuIFN0YXRpY1RvUHJvdG90eXBlIGlzIHRob3VnaHQg
dG8gYmUgYWJsZSB0byBjcmVhdGUgYSBub3JtYWwgSlMKKyAgICAgICAgbWV0aG9kIGluIHRoZSBK
UyBvYmplY3QgcHJvdG90eXBlIGJ1dCB0aGF0IGlzIGJvdW5kIHRvIGEgc3RhdGljIChjbGFzcykg
bWV0aG9kIG9mIHRoZSBib3VuZCBvYmplY3QuCisKKyAgICAgICAgc3RhdGljVG9Qcm90b3R5cGVN
ZXRob2QgYW5kIHN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMgbmV3IHRlc3Qg
bWV0aG9kcyBhdCBUZXN0T2JqLmlkbC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAg
ICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uRnVuY3Rpb25DYWxsKTogR2VuZXJhdGVkIGZ1bmN0aW9ucyBiZWhhdmUgYXMgc3RhdGlj
IGluIHRoZSBnZW5lcmF0ZWQgY29kZSwgYnV0IG5vdCBpbiB0aGUKKyAgICAgICAgbmFtZSBvciB0
aGVpciBhZGRpdGlvbiB0byB0aGUgViB0YWJsZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0OiBBZGRlZCBTdGF0aWNUb1Byb3RvdHlwZSBleHRlbmRlZCBhdHRy
aWJ1dGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3N0YXRpY190b19wcm90
b3R5cGVfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc3RhdGljX3RvX3By
b3RvdHlwZV9tZXRob2Rfd2l0aF9wYXJhbWV0ZXJzKTogRXhwZWN0YXRpb25zLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDogRXhwZWN0
YXRpb25zLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNUb1By
b3RvdHlwZU1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMpOiBFeHBlY3RhdGlvbnMu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOiBFeHBl
Y3RhdGlvbnMuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5tbTogRXhwZWN0YXRpb25zLgorICAgICAgICAoLVtET01UZXN0T2JqIHN0YXRpY1RvUHJvdG90
eXBlTWV0aG9kXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc3RhdGljVG9Qcm90b3R5cGVNZXRo
b2RXaXRoUGFyYW1ldGVyczpdKTogRXhwZWN0YXRpb25zLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbDogQWRkZWQgdHdvIHRlc3QgbWV0aG9kcywgb25lIHJldHVy
bmluZyBzb21ldGhpbmcgYW5kIGFub3RoZXIgcmVjZWl2aW5nCisgICAgICAgIHBhcmFtZXRlcnMu
CisKIDIwMTUtMDctMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5m
cj4KIAogICAgICAgICBbU3RyZWFtcyBBUEldIFJlbW92ZSBSZWFkYWJsZVN0cmVhbSBhbmQgUmVh
ZGVyIGNhbmNlbCgpIGN1c3RvbSBiaW5kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGMyNDVhMzU0MmIxNzcyNTA3ZWI5
ZWE3NGJiNzNjZDg3MDE5YjQ4YmMuLjczY2ZhY2ZiN2RiMDI5MGMxNjY0YWYzNTAyMGY4NDJhYjY0
NDdmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC0yNzk4LDEwICsyNzk4LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0o
ZXhlYyk7XG4iKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlN0YXRpY1RvUHJvdG90eXBlIn07CiAKICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IjxydW50
aW1lL0Vycm9yLmg+In0gPSAxOwogCi0gICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5pc1N0YXRp
YykgeworICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMgb3IgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdGF0aWNUb1Byb3RvdHlwZSJ9KSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCRpc0N1c3RvbSkgewogICAgICAgICAgICAgICAgICAgICBHZW5l
cmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soXEBpbXBsQ29udGVudCwgJGZ1bmN0aW9uLCAkaW50ZXJm
YWNlKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSgke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb25JbXBsZW1lbnRhdGlv
bk5hbWUgLiAiKGV4ZWMpKTtcbiIpOwpAQCAtMzIwOCw3ICszMjA5LDcgQEAgc3ViIEdlbmVyYXRl
UGFyYW1ldGVyc0NoZWNrCiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIke2ltcGxlbWVudGVk
Qnl9LmgiLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRp
dGlvbmFsIn0pOwogICAgICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsICImaW1wbCIpIGlmICEkZnVu
Y3Rpb24tPmlzU3RhdGljOwogICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW1wbGVtZW50ZWRC
eX06OiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9IjsKLSAgICB9IGVsc2lmICgkZnVuY3Rp
b24tPmlzU3RhdGljKSB7CisgICAgfSBlbHNpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYyBvciAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0YXRpY1RvUHJvdG90eXBl
In0pIHsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ludGVyZmFjZU5hbWV9Ojoke2Z1bmN0
aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CiAgICAgfSBlbHNpZiAoJHN2Z1Byb3BlcnR5T3JMaXN0
UHJvcGVydHlUeXBlIGFuZCAhJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpIHsKICAgICAgICAgJGZ1bmN0
aW9uTmFtZSA9ICJwb2RJbXBsLiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9IjsKQEAgLTM2
NDYsNyArMzY0Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCkK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gInNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7XG4iKSBpZiAkcmFpc2VzRXhjZXB0aW9uOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUgYW5kICEkZnVuY3Rpb24tPmlzU3RhdGljKSB7CisgICAg
ICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlIGFuZCAhJGZ1bmN0aW9uLT5pc1N0YXRpYyBhbmQgISRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RhdGljVG9GdW5jdGlv
biJ9KSB7CiAgICAgICAgICAgICBpZiAoJHJhaXNlc0V4Y2VwdGlvbikgewogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gImlmICghZWMpXG4iKTsgCiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiICAgIGltcGwuY29tbWl0Q2hh
bmdlKCk7XG4iKTsKQEAgLTM2NTcsNyArMzY1OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uRnVuY3Rpb25DYWxsKCkKIAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAu
ICJyZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgbXkgJHRoaXNPYmplY3QgPSAkZnVuY3Rpb24tPmlzU3RhdGljID8gMCA6ICJj
YXN0ZWRUaGlzIjsKKyAgICAgICAgbXkgJHRoaXNPYmplY3QgPSAoJGZ1bmN0aW9uLT5pc1N0YXRp
YyBvciAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0YXRpY1Rv
RnVuY3Rpb24ifSkgPyAwIDogImNhc3RlZFRoaXMiOwogICAgICAgICBpZiAoJG5vbmRldGVybWlu
aXN0aWMpIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJNZW1vaXplZERPTVJlc3Vs
dC5oIiwgIldFQl9SRVBMQVkiKTsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cmVw
bGF5L0lucHV0Q3Vyc29yLmg+IiwgIldFQl9SRVBMQVkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IDI5YzIzY2UxZTdiNTI2
NDIxODlkZGM4MGI5ZmZiNjMwOGUxODk2MjEuLjQ1MDI2M2FhZWM1MTYzZGU5MDQ1ZTQ4MTI2YTRk
ZTg2YjQ1M2EyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMQXR0cmlidXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExBdHRyaWJ1dGVzLnR4dApAQCAtMTA4LDYgKzEwOCw3IEBAIFJlcXVpcmVzRXhpc3RpbmdBdG9t
aWNTdHJpbmcKIFJldHVybk5ld09iamVjdAogU2V0dGVyUmFpc2VzRXhjZXB0aW9uCiBTa2lwVlRh
YmxlVmFsaWRhdGlvbgorU3RhdGljVG9Qcm90b3R5cGUKIFN0cmljdFR5cGVDaGVja2luZwogU3Vw
cHJlc3NUb0pTT2JqZWN0CiBUcmVhdE51bGxBcz1OdWxsU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouY3BwCmluZGV4IDZkNWU4MGJiZTliMGQ2YjU5NTYyZjc2MWEyODZjOTY4ZjA1
NTRlMTkuLjEwOTIzYjZhMWI2N2Y3ZGY4MGNiZWUzN2QyMDE2Nzg0ZDgwYmVkODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xNDA5LDYgKzE0MDksMjUgQEAgdm9pZCB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX292ZXJsb2FkZWRfbWV0aG9kMShXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBjb25zdCBnY2hhcioKICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgKi8KIH0KIAor
Z2xvbmcgd2Via2l0X2RvbV90ZXN0X29ial9zdGF0aWNfdG9fcHJvdG90eXBlX21ldGhvZChXZWJL
aXRET01UZXN0T2JqKiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfT0JK
KHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOworICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPnN0YXRpY1RvUHJvdG90eXBlTWV0aG9kKCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3N0YXRp
Y190b19wcm90b3R5cGVfbWV0aG9kX3dpdGhfcGFyYW1ldGVycyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBjb25zdCBnY2hhciogaW5wdXRTdHJpbmcpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19U
RVNUX09CSihzZWxmKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChpbnB1dFN0cmluZyk7CisgICAg
V2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXVEY6OlN0
cmluZyBjb252ZXJ0ZWRJbnB1dFN0cmluZyA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChpbnB1dFN0
cmluZyk7CisgICAgaXRlbS0+c3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVycyhj
b252ZXJ0ZWRJbnB1dFN0cmluZyk7Cit9CisKIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9jb252
ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0Tm9kZSogdmFsdWUpCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5oCmluZGV4IDJkYmI2ZGM0MWIzNTA3ZTZhODcxZDE5NDgzNTZjN2JjNmE0
NGEwMDcuLjI0ZTUyZGZiODM5MGUwMWE1ODMyYjk0NDY3MThkODkyYmVlNzU4ODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmgKQEAgLTUwNyw2ICs1MDcsMjcgQEAgV0VCS0lUX0FQSSB2
b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX292ZXJsb2FkZWRfbWV0aG9kMShXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdHlwZSk7CiAKIC8qKgorICogd2Via2l0X2RvbV90ZXN0
X29ial9zdGF0aWNfdG9fcHJvdG90eXBlX21ldGhvZDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01U
ZXN0T2JqCisgKgorICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBTdGFiaWxpdHk6IFVuc3Rh
YmxlCisqKi8KK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfc3RhdGljX3Rv
X3Byb3RvdHlwZV9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKKy8qKgorICogd2Vi
a2l0X2RvbV90ZXN0X29ial9zdGF0aWNfdG9fcHJvdG90eXBlX21ldGhvZF93aXRoX3BhcmFtZXRl
cnM6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICogQGlucHV0U3RyaW5nOiBBICNn
Y2hhcgorICoKKyAqIFN0YWJpbGl0eTogVW5zdGFibGUKKyoqLworV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3N0YXRpY190b19wcm90b3R5cGVfbWV0aG9kX3dpdGhfcGFyYW1l
dGVycyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogaW5wdXRTdHJpbmcpOwor
CisvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDE6CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNXZWJLaXRET01UZXN0Tm9kZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApp
bmRleCA2NWFmNmEwZTJhMzQ0NWRlZTQ2MzZiODY0ZjllOGUwNjYzM2E2NzNjLi4wZDYxOGE5ZTdh
NTExN2MzMTUxNDdjMWY3NTJmMjkwODk2YTAyOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTM2LDYgKzEz
Niw4IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyKEpTQzo6CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKEpT
Qzo6RXhlY1N0YXRlKik7CiAjZW5kaWYKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKEpTQzo6RXhl
Y1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25TdGF0aWNUb1Byb3RvdHlwZU1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVycyhKU0M6OkV4ZWNTdGF0ZSop
OwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKEpTQzo6RXhlY1N0YXRlKik7CiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25TdHJpbmdBcnJheUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0
RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTYzNCw2ICs2MzYsOCBAQCBzdGF0aWMgY29u
c3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAjZW5k
aWYKICAgICB7ICJvdmVybG9hZGVkTWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKSwgKGludHB0cl90KSAoMikgfSwKICAgICB7ICJjbGFz
c01ldGhvZFdpdGhDbGFtcCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xh
c3NNZXRob2RXaXRoQ2xhbXApLCAoaW50cHRyX3QpICgyKSB9LAorICAgIHsgInN0YXRpY1RvUHJv
dG90eXBlTWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNU
b1Byb3RvdHlwZU1ldGhvZCksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAic3RhdGljVG9Qcm90
b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVycyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVycyksIChpbnRwdHJfdCkg
KDEpIH0sCiAgICAgeyAibWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlIiwgSlNDOjpGdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2Up
LCAoaW50cHRyX3QpICgxKSB9LAogICAgIHsgInN0cmluZ0FycmF5RnVuY3Rpb24iLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24pLCAoaW50cHRy
X3QpICgxKSB9LAogICAgIHsgImRvbVN0cmluZ0xpc3RGdW5jdGlvbiIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKSwgKGludHB0cl90KSAo
MSkgfSwKQEAgLTQwNTYsNiArNDA2MCwyNSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXAoRXhlYwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK0VuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNUb1Byb3Rv
dHlwZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwor
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoVGVzdE9iajo6c3RhdGljVG9Qcm90b3R5cGVN
ZXRob2QoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCitFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RhdGlj
VG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVycyhFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIGlmIChVTkxJS0VMWShleGVjLT5hcmd1bWVudENvdW50
KCkgPCAxKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CisgICAgU3RyaW5nIGlucHV0U3RyaW5nID0gZXhlYy0+
YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOworICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgVGVzdE9iajo6c3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRo
UGFyYW1ldGVycyhpbnB1dFN0cmluZyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZShFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaAppbmRleCAzYjczMTAxOGEyOWNiNTllY2E5MWMzZTgyNjNhMDc0YjNiN2Q0MDI5Li5l
ZDlkZDIyNTA0ZGQ0OTg3MmYyZWNiOGY5YmI4ZDM2NjQwNDkyNzY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBA
IC0xNjAsNiArMTYwLDggQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01UZXN0T2JqIDog
RE9NT2JqZWN0CiAtICh2b2lkKWNsYXNzTWV0aG9kOwogLSAoaW50KWNsYXNzTWV0aG9kV2l0aE9w
dGlvbmFsOihpbnQpYXJnOwogLSAodm9pZCljbGFzc01ldGhvZDI6KGludClhcmc7CistIChpbnQp
c3RhdGljVG9Qcm90b3R5cGVNZXRob2Q7CistICh2b2lkKXN0YXRpY1RvUHJvdG90eXBlTWV0aG9k
V2l0aFBhcmFtZXRlcnM6KE5TU3RyaW5nICopaW5wdXRTdHJpbmc7CiAtIChET01TVkdEb2N1bWVu
dCAqKWdldFNWR0RvY3VtZW50OwogLSAodm9pZCljb252ZXJ0MTooRE9NVGVzdE5vZGUgKil2YWx1
ZTsKIC0gKHZvaWQpY29udmVydDI6KERPTVRlc3ROb2RlICopdmFsdWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpp
bmRleCBhZGIyNzMwZDMxODEzYWQ3MjgwZTQ1ZDA2OTg1ZDkwM2U1MGEwZjdkLi43YmEyY2JiZTkx
ZTM2M2U0ODc2ODQ3ODMzNDIwZWRjM2Q4Yjk0ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTEwOTks
NiArMTA5OSwxOCBAQAogCiAjZW5kaWYKIAorLSAoaW50KXN0YXRpY1RvUHJvdG90eXBlTWV0aG9k
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5zdGF0aWNUb1Byb3RvdHlwZU1ldGhvZCgpOworfQorCistICh2b2lkKXN0YXRpY1Rv
UHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnM6KE5TU3RyaW5nICopaW5wdXRTdHJpbmcKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c3Rh
dGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVycyhpbnB1dFN0cmluZyk7Cit9CisKIC0g
KERPTVNWR0RvY3VtZW50ICopZ2V0U1ZHRG9jdW1lbnQKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggY2U4MDQyZmMwNDA1NDI2NzI1OWM2YTk3ZjRkZTI1
YzYzNWIzZTNlNS4uOWRiZWVhZDk3MWZmNmZlMjNkYTBiMWI3MGIzZjljY2FjMmYyODNmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApA
QCAtMjAwLDYgKzIwMCw5IEBAIGVudW0gX29wdGlvbmFsIHsgIiIsICJPcHRpb25hbFZhbHVlMSIs
ICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZhbHVlMyIgfTsKIAogICAgIHZvaWQgY2xhc3NN
ZXRob2RXaXRoQ2xhbXAoW0NsYW1wXSB1bnNpZ25lZCBzaG9ydCBvYmpBcmdzU2hvcnQsIFtDbGFt
cF0gdW5zaWduZWQgbG9uZyBvYmpBcmdzTG9uZyk7CiAKKyAgICBbU3RhdGljVG9Qcm90b3R5cGVd
IGxvbmcgc3RhdGljVG9Qcm90b3R5cGVNZXRob2QoKTsKKyAgICBbU3RhdGljVG9Qcm90b3R5cGVd
IHZvaWQgc3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVycyhET01TdHJpbmcgaW5w
dXRTdHJpbmcpOworCiAjaWYgZGVmaW5lZChURVNUSU5HX0pTKQogICAgIHZvaWQgbWV0aG9kV2l0
aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKHNlcXVlbmNlPHVuc2lnbmVkIGxvbmc+IHVuc2lnbmVkTG9u
Z1NlcXVlbmNlKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBET01TdHJpbmdbXSBzdHJpbmdBcnJh
eUZ1bmN0aW9uKERPTVN0cmluZ1tdIHZhbHVlcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256297</attachid>
            <date>2015-07-07 06:35:21 -0700</date>
            <delta_ts>2015-07-08 06:32:27 -0700</delta_ts>
            <desc>Patch for [FullCustom]</desc>
            <filename>bug-146593-20150707153413.patch</filename>
            <type>text/plain</type>
            <size>15233</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY0NTc1NmViN2M3YWE4
MDgwNzc4MjdiNjY1ODlhZDhlNGM3NGRkNi4uMTc1MWEzYjM0NzU0NDE1MmE1NTEzZGMwNGZlNmM5
Y2M1NjJjNmQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTA3ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtTdGF0aWNUb1Byb3RvdHlwZV0gZXh0ZW5kZWQgSURMIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBhZGRlZCB0aGUgW0Z1bGxD
dXN0b21dIElETCBleHRlbmRlZCBhdHRyaWJ1dGUuIFRoZSBpZGVhIGlzIHRoYXQgd2hlbiB1c2lu
ZyB0aGlzIGF0dHJpYnV0ZSwgYmluZGluZ3MgZ2VuZXJhdGUKKyAgICAgICAgb25seSB0aGUgaGVh
ZGVycyBvZiB0aGUgSlMgZnVuY3Rpb25zIGFuZCB3ZSBoYXZlIHRvIGltcGxlbWVudCBhbGwgdGhl
IGFjY2VzcyBpbiB0aGUgQ3VzdG9tLmNwcCBmaWxlcywgbWVhbmluZworICAgICAgICBhY2Nlc3Np
bmcgdGhlIGltcGxlbWVudGF0aW9ucyBhdCBvdXIgd2lzaC4KKworICAgICAgICBBZGRlZCBmdWxs
Q3VzdG9tQXR0ciwgZnVsbEN1c3RvbU1ldGhvZCBhbmQgZnVsbEN1c3RvbU1ldGhvZFdpdGhBcmdz
IHRvIHRoZSBnZW5lcmF0b3IgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAgICAoU2tpcEF0dHJpYnV0ZSk6CisgICAgICAg
IChTa2lwRnVuY3Rpb24pOiBTa2lwcGVkIFtGdWxsQ3VzdG9tXSBhdHRyaWJ1dGVzIGFuZCBtZXRo
b2RzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6IEF2b2lkZWQgZ2VuZXJhdGluZyB0aGUgY29k
ZSBmb3IgW0Z1bGxDdXN0b21dIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDogQWRkZWQgW0Z1bGxDdXN0b21dIElETCBl
eHRlbmRlZCBhdHRyaWJ1dGUKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcDogRXhwZWN0YXRpb25zOiBhZGRlZCBoZWFkZXJzIGFuZCBtZXRob2RzIHRvIHRo
ZSBWVGFibGVzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RP
YmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1t
OgorICAgICAgICAoLVtET01UZXN0T2JqIGZ1bGxDdXN0b21BdHRyXSk6CisgICAgICAgICgtW0RP
TVRlc3RPYmogc2V0RnVsbEN1c3RvbUF0dHI6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogZnVs
bEN1c3RvbU1ldGhvZF0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGZ1bGxDdXN0b21NZXRob2RX
aXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOiBFeHBlY3RhdGlvbnMgYmVoYXZpbmcgc2FtZSB3YXkg
YXMgW0N1c3RvbV0KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6
IEFkZGVkIGZ1bGxDdXN0b21BdHRyLCBmdWxsQ3VzdG9tTWV0aG9kIGFuZCBmdWxsQ3VzdG9tTWV0
aG9kV2l0aEFyZ3MuCisKIDIwMTUtMDctMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0syXSBDdXJyZW50IHBhZ2UncyBzY3JvbGwgcG9zaXRpb24gaXMgbG9z
dCB3aGVuIHRyYW5zZmVycmluZyBzZXNzaW9uU3RhdGUgZnJvbSBvbmUgdmlldyB0byBhbm90aGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yR09iamVjdC5wbQppbmRleCBmZjViMTc4YzlmMWU0MmI3MDY1ODQ2OTg5NWE0MGNhNTQwZThh
OWVmLi40OTQzN2RiZDlhNTdjYmZlYmJkMjAzNzdhYWE0NmQ1NDk1ZmNlYTVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG0KQEAgLTIyMyw3ICsyMjMsOCBAQCBzdWIgU2tpcEF0dHJpYnV0ZSB7CiAgICAgbXkgJGF0
dHJpYnV0ZSA9IHNoaWZ0OwogCiAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9Ci0gICAgICAgIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgIHx8ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9
CisgICAgICAgIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkZ1bGxDdXN0b20ifSkgewogICAgICAgICByZXR1cm4gMTsKICAgICB9CiAKQEAgLTI4Myw3ICsy
ODQsNyBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKIAogICAgIG15ICRmdW5jdGlvbk5hbWUgPSAid2Vi
a2l0X2RvbV8iIC4gJGRlY2FtZWxpemUgLiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CiAgICAgbXkgJGZ1bmN0aW9uUmV0dXJuVHlwZSA9ICRw
cmVmaXggZXEgInNldF8iID8gInZvaWQiIDogJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7Ci0g
ICAgbXkgJGlzQ3VzdG9tRnVuY3Rpb24gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgIG15ICRpc0N1c3RvbUZ1bmN0aW9uID0gJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZ1bGxDdXN0b20ifTsKICAgICBt
eSAkY2FsbFdpdGggPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNhbGxXaXRoIn07CiAgICAgbXkgJGlzVW5zdXBwb3J0ZWRDYWxsV2l0aCA9ICRjb2RlR2VuZXJh
dG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIlNjcmlwdEFyZ3VtZW50
cyIpIHx8ICRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0
aCwgIkNhbGxTdGFjayIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDcxNTA3OWY1M2FjNmU2ZDY0YzIwYjQzNzY1Yjc0
ZjEzY2YzMmNlMjYuLjI2N2Y4YjFiMDgyNjFkNWZjYjY0YzhmNzZhZDVkZWZlYzhkYjBkNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC0yMjA2LDggKzIyMDYsMTQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAog
ICAgIH0KICAgICAkbnVtQXR0cmlidXRlcyA9ICRudW1BdHRyaWJ1dGVzICsgMSBpZiBOZWVkc0Nv
bnN0cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSk7CisgICAgbXkgQG5vbkZ1bGxDdXN0b21BdHRy
aWJ1dGVzOworICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1
dGVzfSkgeworICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkZ1bGxDdXN0b20ifSkgeworICAgICAgICAgICAgcHVzaChAbm9uRnVsbEN1c3Rv
bUF0dHJpYnV0ZXMsICRhdHRyaWJ1dGUpOworICAgICAgICB9CisgICAgfQogICAgIGlmICgkbnVt
QXR0cmlidXRlcyA+IDApIHsKLSAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRl
cmZhY2UtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQG5v
bkZ1bGxDdXN0b21BdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgICAgIG15ICR0eXBlID0gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT50eXBlOwogICAgICAgICAgICAgbXkgJGlzTnVsbGFibGUgPSAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmlzTnVsbGFibGU7CkBAIC0yNTUwLDcgKzI1NTYsNyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAgICAgfQogCi0gICAgZm9yZWFjaCBteSAkYXR0
cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CisgICAgZm9yZWFjaCBteSAkYXR0
cmlidXRlIChAbm9uRnVsbEN1c3RvbUF0dHJpYnV0ZXMpIHsKICAgICAgICAgaWYgKCFJc1JlYWRv
bmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAgICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZTsKICAgICAgICAgICAgIG15ICR0eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT50eXBlOwpAQCAtMjc1Nyw3ICsyNzYzLDEzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgIyBGdW5jdGlvbnMKICAgICBpZiAoJG51bUZ1bmN0aW9ucyA+IDApIHsKICAgICAg
ICAgbXkgJGluQXBwbGVDb3B5cmlnaHQgPSAwOworICAgICAgICBteSBAbm9uRnVsbEN1c3RvbUZ1
bmN0aW9uczsKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVu
Y3Rpb25zfSkgeworICAgICAgICAgICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkZ1bGxDdXN0b20ifSkgeworICAgICAgICAgICAgICAgIHB1c2goQG5v
bkZ1bGxDdXN0b21GdW5jdGlvbnMsICRmdW5jdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEBub25GdWxsQ3VzdG9tRnVuY3Rpb25z
KSB7CiAgICAgICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAgICAg
ICAgIGlmICgkbmVlZHNBcHBsZUNvcHlyaWdodCkgewogICAgICAgICAgICAgICAgIGlmICghJGlu
QXBwbGVDb3B5cmlnaHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IDI5YzIzY2UxZTdiNTI2NDIxODlkZGM4MGI5ZmZiNjMw
OGUxODk2MjEuLjc4MDllOTg4MzhjNGI2ZDQzYTY3ZGNmMmJkMTgwZDM1MGRjMTQyN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dApA
QCAtNjEsNiArNjEsNyBAQCBFbmFibGVkQnlTZXR0aW5nPSoKIEVuZm9yY2VSYW5nZQogRXZlbnRU
YXJnZXQKIEZvcndhcmREZWNsYXJlSW5IZWFkZXIKK0Z1bGxDdXN0b20KIEdlbmVyYXRlSXNSZWFj
aGFibGU9fEltcGx8SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4dHxJbXBsRG9jdW1lbnR8SW1wbEVs
ZW1lbnRSb290fEltcGxGcmFtZXxJbXBsT3duZXJOb2RlUm9vdAogR2V0dGVyUmFpc2VzRXhjZXB0
aW9uCiBHbG9iYWxDb250ZXh0PURPTVdpbmRvd3xXb3JrZXJHbG9iYWxTY29wZXxEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBiZmQyZGJjYjljNzI0NDU5ZGIxODZmZDI4
ZGFiNzRiNmY4N2I1OWM3Li44MzdiYmExMmQ2N2E1YTdlN2ZjYzcyOWQxYWNmZWFhMjA4ZGRhODNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcApAQCAtOTcsNiArOTcsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2JqZWN0KEpTQzo6RQog
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9k
KEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0
ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uRnVsbEN1c3RvbU1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRnVsbEN1c3Rv
bU1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKEpTQzo6RXhlY1N0YXRlKik7
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKEpTQzo6RXhlY1N0YXRlKik7CkBAIC0yMjcsNiArMjI5
LDggQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4
Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzoKIHZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0
cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RP
YmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpGdWxsQ3VzdG9tQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakZ1
bGxDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpPbmZvbyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lkIHNldEpTVGVzdE9iak9uZm9vKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3Rh
dGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwpAQCAtNTE5LDYgKzUyMyw3IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAg
ICB7ICJhdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3Nv
ciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpBdHRy
V2l0aFNldHRlckV4Y2VwdGlvbikgfSwKICAgICB7ICJzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbiIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbikgfSwKICAgICB7ICJzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIERvbnRE
ZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0
ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbikgfSwK
KyAgICB7ICJmdWxsQ3VzdG9tQXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9J
bnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqRnVsbEN1c3RvbUF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpGdWxsQ3VzdG9tQXR0cikgfSwK
ICAgICB7ICJvbmZvbyIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqT25mb28pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RPYmpPbmZvbykgfSwKICAgICB7ICJ3aXRoU2NyaXB0U3RhdGVBdHRy
aWJ1dGUiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSkg
fSwKICAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIsIERvbnREZWxl
dGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZSkgfSwKQEAgLTU5OCw2ICs2MDMsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUg
SlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAibWV0aG9kV2l0aEV4Y2Vw
dGlvbiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2Vw
dGlvbiksIChpbnRwdHJfdCkgKDApIH0sCiAgICAgeyAiY3VzdG9tTWV0aG9kIiwgSlNDOjpGdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QpLCAoaW50cHRyX3QpICgwKSB9
LAogICAgIHsgImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMpIH0sCisgICAg
eyAiZnVsbEN1c3RvbU1ldGhvZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
RnVsbEN1c3RvbU1ldGhvZCksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAiZnVsbEN1c3RvbU1l
dGhvZFdpdGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25GdWxsQ3Vz
dG9tTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9LAogICAgIHsgImFkZEV2ZW50TGlz
dGVuZXIiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVu
ZXIpLCAoaW50cHRyX3QpICgyKSB9LAogICAgIHsgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCBKU0M6
OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIpLCAoaW50
cHRyX3QpICgyKSB9LAogICAgIHsgIndpdGhTY3JpcHRTdGF0ZVZvaWQiLCBKU0M6OkZ1bmN0aW9u
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZVZvaWQpLCAoaW50cHRyX3QpICgw
KSB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oCmluZGV4IDNiNzMxMDE4YTI5Y2I1OWVjYTkxYzNlODI2M2EwNzRiM2I3
ZDQwMjkuLmQ5ZTUxMTgwZWYzYzg3YWJiNTk5MDRiYzg0YTBlZDIzYzRjMDI2N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmgKQEAgLTkwLDYgKzkwLDcgQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01UZXN0
T2JqIDogRE9NT2JqZWN0CiBAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbjsKIEBwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnN0cmluZ0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uOwogQHByb3BlcnR5IGludCBjdXN0b21BdHRyOworQHByb3BlcnR5
IGludCBmdWxsQ3VzdG9tQXR0cjsKIEBwcm9wZXJ0eSBpbnQgd2l0aFNjcmlwdFN0YXRlQXR0cmli
dXRlOwogQHByb3BlcnR5IChzdHJvbmcpIERPTVRlc3RPYmogKndpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QXR0cmlidXRlOwogQHByb3BlcnR5IChzdHJvbmcpIERPTVRlc3RPYmogKndpdGhTY3Jp
cHRTdGF0ZUF0dHJpYnV0ZVJhaXNlczsKQEAgLTE0MCw2ICsxNDEsOCBAQCBXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIERPTVRlc3RPYmogOiBET01PYmplY3QKIC0gKHZvaWQpbWV0aG9kV2l0aEV4
Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kOwogLSAodm9pZCljdXN0b21NZXRob2RXaXRo
QXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRl
c3RPYmogKilvYmpBcmc7CistICh2b2lkKWZ1bGxDdXN0b21NZXRob2Q7CistICh2b2lkKWZ1bGxD
dXN0b21NZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFy
ZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6
KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVy
IHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpcmVtb3ZlRXZlbnRMaXN0ZW5l
cjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVu
ZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZCl3aXRoU2NyaXB0U3RhdGVW
b2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RPYmoubW0KaW5kZXggYWRiMjczMGQzMTgxM2FkNzI4MGU0NWQwNjk4NWQ5MDNl
NTBhMGY3ZC4uODBlZWU2NzEwNzk2NDVlYzYzNDZlZmY5M2Q1ZmJmMmE1NDg3ZGFhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLm1tCkBAIC00MzgsNiArNDM4LDE4IEBACiAgICAgSU1QTC0+c2V0Q3VzdG9tQXR0cihu
ZXdDdXN0b21BdHRyKTsKIH0KIAorLSAoaW50KWZ1bGxDdXN0b21BdHRyCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5mdWxsQ3Vz
dG9tQXR0cigpOworfQorCistICh2b2lkKXNldEZ1bGxDdXN0b21BdHRyOihpbnQpbmV3RnVsbEN1
c3RvbUF0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0RnVsbEN1c3RvbUF0dHIobmV3RnVsbEN1c3RvbUF0dHIpOworfQorCiAtIChp
bnQpd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwpAQCAtOTE5LDYgKzkzMSwxOCBAQAogICAgIElNUEwtPmN1c3RvbU1l
dGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAorLSAodm9p
ZClmdWxsQ3VzdG9tTWV0aG9kCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPmZ1bGxDdXN0b21NZXRob2QoKTsKK30KKworLSAodm9pZClmdWxs
Q3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJB
cmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmZ1bGxDdXN0b21NZXRob2RXaXRoQXJncyhs
b25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7Cit9CisKIC0gKHZvaWQpYWRkRXZlbnRMaXN0
ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlz
dGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGU5NjEyNzhmNDdmNjQ0Njk2ZjBiNzhlYTQwNDRh
MGE4MzFmYzE0YzkuLjZjNmE2MzAyY2ZkNTg2ZDI5ZGQ2NWFiMWM5MjVlNjliOWE4NzY0MDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwK
QEAgLTEwOSw2ICsxMDksMTEgQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFsVmFsdWUx
IiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAgIFtDdXN0b21dIHZv
aWQgY3VzdG9tTWV0aG9kKCk7CiAgICAgW0N1c3RvbV0gdm9pZCBjdXN0b21NZXRob2RXaXRoQXJn
cyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcsIFRlc3RPYmogb2JqQXJnKTsKIAorICAg
IC8vICdGdWxsQ3VzdG9tJyBleHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBbRnVsbEN1c3RvbV0gYXR0
cmlidXRlIGxvbmcgICAgICAgICAgICBmdWxsQ3VzdG9tQXR0cjsKKyAgICBbRnVsbEN1c3RvbV0g
dm9pZCBmdWxsQ3VzdG9tTWV0aG9kKCk7CisgICAgW0Z1bGxDdXN0b21dIHZvaWQgZnVsbEN1c3Rv
bU1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZ0FyZywgRE9NU3RyaW5nIHN0ckFyZywgVGVzdE9iaiBv
YmpBcmcpOworCiAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVu
dExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIHZv
aWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lciBsaXN0
ZW5lciwgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9uZm9vOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256369</attachid>
            <date>2015-07-08 03:24:15 -0700</date>
            <delta_ts>2015-07-08 03:25:57 -0700</delta_ts>
            <desc>Patch for [StaticToPrototype]</desc>
            <filename>bug-146593-20150708122314.patch</filename>
            <type>text/plain</type>
            <size>12668</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkxMGYyNGI3NmE0ZjQ5
OTA5MGU2NzFkNmI1OTZiOWM0YTIxNzE0My4uY2M0MWNhYzk1MDViNTE5ZDc4ZTk5NDYzN2RlZmM2
ZmJkMzdlNzYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA3LTA4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtTdGF0aWNUb1Byb3RvdHlwZV0gZXh0ZW5kZWQgSURMIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjcmVhdGVz
IFtTdGF0aWNUb1Byb3RvdHlwZV0gYXMgb3Bwb3NlZCB0byBzaW1wbGUgc3RhdGljIGZ1bmN0aW9u
cyB0aGF0IHRyYW5zbGF0ZSBzdGF0aWMgY2xhc3MKKyAgICAgICAgZnVuY3Rpb25zIGludG8gY29u
c3RydWN0b3Igb2JqZWN0IHByb3BlcnRpZXMuIFN0YXRpY1RvUHJvdG90eXBlIGlzIHRob3VnaHQg
dG8gYmUgYWJsZSB0byBjcmVhdGUgYSBub3JtYWwgSlMKKyAgICAgICAgbWV0aG9kIGluIHRoZSBK
UyBvYmplY3QgcHJvdG90eXBlIGJ1dCB0aGF0IGlzIGJvdW5kIHRvIGEgc3RhdGljIChjbGFzcykg
bWV0aG9kIG9mIHRoZSBib3VuZCBvYmplY3QuCisKKyAgICAgICAgc3RhdGljVG9Qcm90b3R5cGVN
ZXRob2QgYW5kIHN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMgbmV3IHRlc3Qg
bWV0aG9kcyBhdCBUZXN0T2JqLmlkbC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG06CisgICAgICAgIChTa2lwRnVuY3Rpb24pOiBTa2lwIFN0YXRp
Y1RvUHJvdG90eXBlIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAg
ICAoR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1l
dGVyc0NoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwp
OiBHZW5lcmF0ZWQgZnVuY3Rpb25zIGJlaGF2ZSBhcyBzdGF0aWMgaW4gdGhlIGdlbmVyYXRlZCBj
b2RlLCBidXQgbm90IGluIHRoZQorICAgICAgICBuYW1lIG9yIHRoZWlyIGFkZGl0aW9uIHRvIHRo
ZSBWIHRhYmxlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6
IEFkZGVkIFN0YXRpY1RvUHJvdG90eXBlIGV4dGVuZGVkIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2QpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNUb1Byb3RvdHlw
ZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKTogRXhwZWN0YXRpb25zLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDogRXhwZWN0YXRpb25zLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RP
TVRlc3RPYmogc3RhdGljVG9Qcm90b3R5cGVNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9i
aiBzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzOl0pOiBFeHBlY3RhdGlvbnMu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCB0d28g
dGVzdCBtZXRob2RzLCBvbmUgcmV0dXJuaW5nIHNvbWV0aGluZyBhbmQgYW5vdGhlciByZWNlaXZp
bmcKKyAgICAgICAgcGFyYW1ldGVycy4KKwogMjAxNS0wNy0wNyAgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIG92ZXJmbG93IGNoZWNr
cyBmcm9tIHRoZSBpbXBvcnRhbnQgdmVjdG9ycyB1c2VkIGJ5IHRoZSBjb250ZW50IGV4dGVuc2lv
bnMgbWFjaGluZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IDQ0Mjg0M2Q4ZTFmZGY3MmE4M2QxMzIyNTM4
ZjM2MTIxNzk5NjA0MjQuLjZlMjliMGI3YjZjNDE5NzE1OWFhMTAzNmU5MzRjZTkyNWVjYjhhOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQpAQCAtMjg4LDcgKzI4OCw3IEBAIHN1YiBTa2lwRnVuY3Rpb24gewog
ICAgIG15ICRpc1Vuc3VwcG9ydGVkQ2FsbFdpdGggPSAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRB
dHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJTY3JpcHRBcmd1bWVudHMiKSB8fCAkY29kZUdl
bmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJDYWxsU3RhY2si
KTsKIAogICAgICMgU3RhdGljIG1ldGhvZHMgYXJlIHVuc3VwcG9ydGVkCi0gICAgcmV0dXJuIDEg
aWYgJGZ1bmN0aW9uLT5pc1N0YXRpYzsKKyAgICByZXR1cm4gMSBpZiAkZnVuY3Rpb24tPmlzU3Rh
dGljIG9yICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RhdGlj
VG9Qcm90b3R5cGUifTsKIAogICAgIGlmICgoJGlzQ3VzdG9tRnVuY3Rpb24gfHwgJGlzVW5zdXBw
b3J0ZWRDYWxsV2l0aCkgJiYKICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAid2Via2l0X2RvbV9u
b2RlX3JlcGxhY2VfY2hpbGQiICYmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDYyZTRkYzlmOTljNTkwYmJkZThiMjU4YTU3
ZGZhMDExNjFmMDBjYjcuLjQyNjNjMDY2ZTFmNWNkYjNjNmE5OTIxYTQ2MTg1OWM0ZWY0MzNhZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC0yODE2LDcgKzI4MTYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9FcnJvci5oPiJ9ID0gMTsKIAot
ICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKKyAgICAgICAgICAgIGlmICgk
ZnVuY3Rpb24tPmlzU3RhdGljIG9yICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiU3RhdGljVG9Qcm90b3R5cGUifSkgewogICAgICAgICAgICAgICAgIGlmICgkaXND
dXN0b20pIHsKICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNr
KFxAaW1wbENvbnRlbnQsICRmdW5jdGlvbiwgJGludGVyZmFjZSk7CiAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoJHtjbGFz
c05hbWV9OjoiIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihleGVjKSk7XG4iKTsK
QEAgLTMxOTYsNiArMzE5Niw4IEBAIHN1YiBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2sKICAg
ICB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgJG51bU1hbmRhdG9yeVBhcmFtcykpXG4iKTsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTtcbiIpOworICAgIH0gZWxzaWYgKCRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RhdGljVG9Qcm90b3R5cGUi
fSkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oZXhlYyk7
XG4iKSA7CiAgICAgfQogfQogCkBAIC0zMjIzLDcgKzMyMjUsNyBAQCBzdWIgR2VuZXJhdGVQYXJh
bWV0ZXJzQ2hlY2sKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIiR7aW1wbGVtZW50ZWRCeX0u
aCIsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9u
YWwifSk7CiAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgIiZpbXBsIikgaWYgISRmdW5jdGlv
bi0+aXNTdGF0aWM7CiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbXBsZW1lbnRlZEJ5fTo6
JHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOwotICAgIH0gZWxzaWYgKCRmdW5jdGlvbi0+
aXNTdGF0aWMpIHsKKyAgICB9IGVsc2lmICgkZnVuY3Rpb24tPmlzU3RhdGljIG9yICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RhdGljVG9Qcm90b3R5cGUifSkg
ewogICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25J
bXBsZW1lbnRhdGlvbk5hbWV9IjsKICAgICB9IGVsc2lmICgkc3ZnUHJvcGVydHlPckxpc3RQcm9w
ZXJ0eVR5cGUgYW5kICEkc3ZnTGlzdFByb3BlcnR5VHlwZSkgewogICAgICAgICAkZnVuY3Rpb25O
YW1lID0gInBvZEltcGwuJHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOwpAQCAtMzY2MSw3
ICszNjYzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoKQogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAic2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTtcbiIpIGlmICRyYWlzZXNFeGNlcHRpb247CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAoJHN2Z1Byb3BlcnR5VHlwZSBhbmQgISRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKKyAgICAgICAg
aWYgKCRzdmdQcm9wZXJ0eVR5cGUgYW5kICEkZnVuY3Rpb24tPmlzU3RhdGljIGFuZCAhJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdGF0aWNUb0Z1bmN0aW9uIn0p
IHsKICAgICAgICAgICAgIGlmICgkcmFpc2VzRXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiaWYgKCFlYylcbiIpOyAKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICIgICAgaW1wbC5jb21taXRDaGFuZ2Uo
KTtcbiIpOwpAQCAtMzY3Miw3ICszNjc0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25G
dW5jdGlvbkNhbGwoKQogCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gInJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICBteSAkdGhpc09iamVjdCA9ICRmdW5jdGlvbi0+aXNTdGF0aWMgPyAwIDogImNhc3Rl
ZFRoaXMiOworICAgICAgICBteSAkdGhpc09iamVjdCA9ICgkZnVuY3Rpb24tPmlzU3RhdGljIG9y
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RhdGljVG9GdW5j
dGlvbiJ9KSA/IDAgOiAiY2FzdGVkVGhpcyI7CiAgICAgICAgIGlmICgkbm9uZGV0ZXJtaW5pc3Rp
YykgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIk1lbW9pemVkRE9NUmVzdWx0Lmgi
LCAiV0VCX1JFUExBWSIpOwogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxyZXBsYXkv
SW5wdXRDdXJzb3IuaD4iLCAiV0VCX1JFUExBWSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggMDY2MjA1MmMyMzZlNmM2Yjlj
NWQ4ZGVlZTc0MWYxM2E4YTRmMDU3Zi4uMzMyYjczMDU1YzRjM2Q0MmFlNWJhZWQxYjFmYjk1NDI3
ODdkYzNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMudHh0CkBAIC0xMDgsNiArMTA4LDcgQEAgUmVxdWlyZXNFeGlzdGluZ0F0b21pY1N0
cmluZwogUmV0dXJuTmV3T2JqZWN0CiBTZXR0ZXJSYWlzZXNFeGNlcHRpb24KIFNraXBWVGFibGVW
YWxpZGF0aW9uCitTdGF0aWNUb1Byb3RvdHlwZQogU3RyaWN0VHlwZUNoZWNraW5nCiBTdXBwcmVz
c1RvSlNPYmplY3QKIFRyZWF0TnVsbEFzPU51bGxTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggNmY3NGRl
YTQ5Y2I4YWE3NjhiOTIzNTFiYTk0ZTZkZTRhYjI1YjE2MC4uOWM0YjQwMTgyNzQwNDZhOTM0NGRj
MDY5NWFhZTY1ZTI5NWRkNDQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEzNyw2ICsxMzcsOCBAQCBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bkNsYXNzTWV0aG9kMihKU0M6OgogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMShKU0M6OkV4ZWNTdGF0
ZSopOwogI2VuZGlmCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcChKU0M6OkV4ZWNTdGF0ZSopOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0YXRpY1Rv
UHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJy
YXlGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKEpT
Qzo6RXhlY1N0YXRlKik7CkBAIC02MzYsNiArNjM4LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIm92ZXJsb2Fk
ZWRNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QpLCAoaW50cHRyX3QpICgyKSB9LAogICAgIHsgIm92ZXJsb2FkZWRNZXRob2RXaXRoT3B0
aW9uYWxQYXJhbWV0ZXIiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIpLCAoaW50cHRyX3QpICgxKSB9LAogICAg
IHsgImNsYXNzTWV0aG9kV2l0aENsYW1wIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcCksIChpbnRwdHJfdCkgKDIpIH0sCisgICAgeyAic3Rh
dGljVG9Qcm90b3R5cGVNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blN0YXRpY1RvUHJvdG90eXBlTWV0aG9kKSwgKGludHB0cl90KSAoMCkgfSwKKyAgICB7ICJzdGF0
aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25TdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKSwgKGlu
dHB0cl90KSAoMSkgfSwKICAgICB7ICJtZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UiLCBK
U0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdT
ZXF1ZW5jZSksIChpbnRwdHJfdCkgKDEpIH0sCiAgICAgeyAic3RyaW5nQXJyYXlGdW5jdGlvbiIs
IEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbiks
IChpbnRwdHJfdCkgKDEpIH0sCiAgICAgeyAiZG9tU3RyaW5nTGlzdEZ1bmN0aW9uIiwgSlNDOjpG
dW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24pLCAoaW50
cHRyX3QpICgxKSB9LApAQCAtNDE0Niw2ICs0MTUwLDI0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcChF
eGVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0YXRp
Y1RvUHJvdG90eXBlTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBVTlVTRURfUEFSQU0o
ZXhlYyk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihUZXN0T2JqOjpzdGF0aWNUb1By
b3RvdHlwZU1ldGhvZCgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9
CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25TdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICBpZiAoVU5MSUtFTFkoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkpCisgICAgICAg
IHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
ZXhlYykpOworICAgIFN0cmluZyBpbnB1dFN0cmluZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgIFRlc3RPYmo6OnN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMoaW5wdXRT
dHJpbmcpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5kZXggM2I3
MzEwMThhMjljYjU5ZWNhOTFjM2U4MjYzYTA3NGIzYjdkNDAyOS4uZWQ5ZGQyMjUwNGRkNDk4NzJm
MmVjYjhmOWJiOGQzNjY0MDQ5Mjc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtMTYwLDYgKzE2MCw4IEBA
IFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVzdE9iaiA6IERPTU9iamVjdAogLSAodm9p
ZCljbGFzc01ldGhvZDsKIC0gKGludCljbGFzc01ldGhvZFdpdGhPcHRpb25hbDooaW50KWFyZzsK
IC0gKHZvaWQpY2xhc3NNZXRob2QyOihpbnQpYXJnOworLSAoaW50KXN0YXRpY1RvUHJvdG90eXBl
TWV0aG9kOworLSAodm9pZClzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzOihO
U1N0cmluZyAqKWlucHV0U3RyaW5nOwogLSAoRE9NU1ZHRG9jdW1lbnQgKilnZXRTVkdEb2N1bWVu
dDsKIC0gKHZvaWQpY29udmVydDE6KERPTVRlc3ROb2RlICopdmFsdWU7CiAtICh2b2lkKWNvbnZl
cnQyOihET01UZXN0Tm9kZSAqKXZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggYWRiMjczMGQzMTgx
M2FkNzI4MGU0NWQwNjk4NWQ5MDNlNTBhMGY3ZC4uN2JhMmNiYmU5MWUzNjNlNDg3Njg0NzgzMzQy
MGVkYzNkOGI5NGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC0xMDk5LDYgKzEwOTksMTggQEAKIAog
I2VuZGlmCiAKKy0gKGludClzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c3RhdGljVG9Q
cm90b3R5cGVNZXRob2QoKTsKK30KKworLSAodm9pZClzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdp
dGhQYXJhbWV0ZXJzOihOU1N0cmluZyAqKWlucHV0U3RyaW5nCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnN0YXRpY1RvUHJvdG90eXBlTWV0
aG9kV2l0aFBhcmFtZXRlcnMoaW5wdXRTdHJpbmcpOworfQorCiAtIChET01TVkdEb2N1bWVudCAq
KWdldFNWR0RvY3VtZW50CiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsCmluZGV4IGU5NjEyNzhmNDdmNjQ0Njk2ZjBiNzhlYTQwNDRhMGE4MzFmYzE0YzkuLjAzZGI4
ZDkzNTBmOWU1MGZhNDMwMjE0ZDc4OGU4OTc1ZDljMTJhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTIwNiw2ICsyMDYsOSBA
QCBlbnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiT3B0aW9uYWxWYWx1ZTIi
LCAiT3B0aW9uYWxWYWx1ZTMiIH07CiAKICAgICB2b2lkIGNsYXNzTWV0aG9kV2l0aENsYW1wKFtD
bGFtcF0gdW5zaWduZWQgc2hvcnQgb2JqQXJnc1Nob3J0LCBbQ2xhbXBdIHVuc2lnbmVkIGxvbmcg
b2JqQXJnc0xvbmcpOwogCisgICAgW1N0YXRpY1RvUHJvdG90eXBlXSBsb25nIHN0YXRpY1RvUHJv
dG90eXBlTWV0aG9kKCk7CisgICAgW1N0YXRpY1RvUHJvdG90eXBlXSB2b2lkIHN0YXRpY1RvUHJv
dG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMoRE9NU3RyaW5nIGlucHV0U3RyaW5nKTsKKwogI2lm
IGRlZmluZWQoVEVTVElOR19KUykKICAgICB2b2lkIG1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1
ZW5jZShzZXF1ZW5jZTx1bnNpZ25lZCBsb25nPiB1bnNpZ25lZExvbmdTZXF1ZW5jZSk7CiAgICAg
W1JhaXNlc0V4Y2VwdGlvbl0gRE9NU3RyaW5nW10gc3RyaW5nQXJyYXlGdW5jdGlvbihET01TdHJp
bmdbXSB2YWx1ZXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256370</attachid>
            <date>2015-07-08 04:11:25 -0700</date>
            <delta_ts>2015-07-28 09:09:01 -0700</delta_ts>
            <desc>Patch for [StaticToPrototype]</desc>
            <filename>bug-146593-20150708131024.patch</filename>
            <type>text/plain</type>
            <size>12693</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFkOTE0YmJiYWE1NzU2
YzJlOWViZmVmNGVkZjQxZGZiODRkNGY4My4uOTU5YTFiN2E2MjI0Njc2NWMzMTIyYzZmZjg3YTM2
MzI3Yzg0MjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE1LTA3LTA4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CiAKKyAgICAgICAgQ3Jl
YXRlIFtTdGF0aWNUb1Byb3RvdHlwZV0gZXh0ZW5kZWQgSURMIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjcmVhdGVz
IFtTdGF0aWNUb1Byb3RvdHlwZV0gYXMgb3Bwb3NlZCB0byBzaW1wbGUgc3RhdGljIGZ1bmN0aW9u
cyB0aGF0IHRyYW5zbGF0ZSBzdGF0aWMgY2xhc3MKKyAgICAgICAgZnVuY3Rpb25zIGludG8gY29u
c3RydWN0b3Igb2JqZWN0IHByb3BlcnRpZXMuIFN0YXRpY1RvUHJvdG90eXBlIGlzIHRob3VnaHQg
dG8gYmUgYWJsZSB0byBjcmVhdGUgYSBub3JtYWwgSlMKKyAgICAgICAgbWV0aG9kIGluIHRoZSBK
UyBvYmplY3QgcHJvdG90eXBlIGJ1dCB0aGF0IGlzIGJvdW5kIHRvIGEgc3RhdGljIChjbGFzcykg
bWV0aG9kIG9mIHRoZSBib3VuZCBvYmplY3QuCisKKyAgICAgICAgc3RhdGljVG9Qcm90b3R5cGVN
ZXRob2QgYW5kIHN0YXRpY1RvUHJvdG90eXBlTWV0aG9kV2l0aFBhcmFtZXRlcnMgbmV3IHRlc3Qg
bWV0aG9kcyBhdCBUZXN0T2JqLmlkbC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG06CisgICAgICAgIChTa2lwRnVuY3Rpb24pOiBTa2lwIFN0YXRp
Y1RvUHJvdG90eXBlIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAg
ICAoR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1l
dGVyc0NoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwp
OiBHZW5lcmF0ZWQgZnVuY3Rpb25zIGJlaGF2ZSBhcyBzdGF0aWMgaW4gdGhlIGdlbmVyYXRlZCBj
b2RlLCBidXQgbm90IGluIHRoZQorICAgICAgICBuYW1lIG9yIHRoZWlyIGFkZGl0aW9uIHRvIHRo
ZSBWIHRhYmxlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6
IEFkZGVkIFN0YXRpY1RvUHJvdG90eXBlIGV4dGVuZGVkIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2QpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNUb1Byb3RvdHlw
ZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKTogRXhwZWN0YXRpb25zLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDogRXhwZWN0YXRpb25zLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RP
TVRlc3RPYmogc3RhdGljVG9Qcm90b3R5cGVNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9i
aiBzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzOl0pOiBFeHBlY3RhdGlvbnMu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCB0d28g
dGVzdCBtZXRob2RzLCBvbmUgcmV0dXJuaW5nIHNvbWV0aGluZyBhbmQgYW5vdGhlciByZWNlaXZp
bmcKKyAgICAgICAgcGFyYW1ldGVycy4KKworMjAxNS0wNy0wOCAgWGFiaWVyIFJvZHJpZ3VleiBD
YWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtdIERlYWN0aXZhdGUg
R09iamVjdCBiaW5kaW5ncyBmb3Igc3RhdGljIG1ldGhvZHMKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjcxNwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCA0
NDI4NDNkOGUxZmRmNzJhODNkMTMyMjUzOGYzNjEyMTc5OTYwNDI0Li42ZTI5YjBiN2I2YzQxOTcx
NTlhYTEwMzZlOTM0Y2U5MjVlY2I4YThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTI4OCw3ICsyODgs
NyBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKICAgICBteSAkaXNVbnN1cHBvcnRlZENhbGxXaXRoID0g
JGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiU2Ny
aXB0QXJndW1lbnRzIikgfHwgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFp
bnMoJGNhbGxXaXRoLCAiQ2FsbFN0YWNrIik7CiAKICAgICAjIFN0YXRpYyBtZXRob2RzIGFyZSB1
bnN1cHBvcnRlZAotICAgIHJldHVybiAxIGlmICRmdW5jdGlvbi0+aXNTdGF0aWM7CisgICAgcmV0
dXJuIDEgaWYgJGZ1bmN0aW9uLT5pc1N0YXRpYyBvciAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlN0YXRpY1RvUHJvdG90eXBlIn07CiAKICAgICBpZiAoKCRpc0N1
c3RvbUZ1bmN0aW9uIHx8ICRpc1Vuc3VwcG9ydGVkQ2FsbFdpdGgpICYmCiAgICAgICAgICRmdW5j
dGlvbk5hbWUgbmUgIndlYmtpdF9kb21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA2
MmU0ZGM5Zjk5YzU5MGJiZGU4YjI1OGE1N2RmYTAxMTYxZjAwY2I3Li40MjYzYzA2NmUxZjVjZGIz
YzZhOTkyMWE0NjE4NTljNGVmNDMzYWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjgxNiw3ICsyODE2LDcgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1
bnRpbWUvRXJyb3IuaD4ifSA9IDE7CiAKLSAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPmlzU3Rh
dGljKSB7CisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYyBvciAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0YXRpY1RvUHJvdG90eXBlIn0pIHsK
ICAgICAgICAgICAgICAgICBpZiAoJGlzQ3VzdG9tKSB7CiAgICAgICAgICAgICAgICAgICAgIEdl
bmVyYXRlQXJndW1lbnRzQ291bnRDaGVjayhcQGltcGxDb250ZW50LCAkZnVuY3Rpb24sICRpbnRl
cmZhY2UpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKCR7Y2xhc3NOYW1lfTo6IiAuICRmdW5jdGlvbkltcGxlbWVudGF0
aW9uTmFtZSAuICIoZXhlYykpO1xuIik7CkBAIC0zMTk2LDYgKzMxOTYsOCBAQCBzdWIgR2VuZXJh
dGVBcmd1bWVudHNDb3VudENoZWNrCiAgICAgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8ICRudW1NYW5kYXRvcnlQ
YXJhbXMpKVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
XG4iKTsKKyAgICB9IGVsc2lmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlN0YXRpY1RvUHJvdG90eXBlIn0pIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMpO1xuIikgOwogICAgIH0KIH0KIApAQCAtMzIyMyw3ICsz
MjI1LDcgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCIke2ltcGxlbWVudGVkQnl9LmgiLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn0pOwogICAgICAgICB1bnNoaWZ0KEBhcmd1bWVu
dHMsICImaW1wbCIpIGlmICEkZnVuY3Rpb24tPmlzU3RhdGljOwogICAgICAgICAkZnVuY3Rpb25O
YW1lID0gIiR7aW1wbGVtZW50ZWRCeX06OiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9IjsK
LSAgICB9IGVsc2lmICgkZnVuY3Rpb24tPmlzU3RhdGljKSB7CisgICAgfSBlbHNpZiAoJGZ1bmN0
aW9uLT5pc1N0YXRpYyBvciAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlN0YXRpY1RvUHJvdG90eXBlIn0pIHsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2lu
dGVyZmFjZU5hbWV9Ojoke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CiAgICAgfSBlbHNp
ZiAoJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlIGFuZCAhJHN2Z0xpc3RQcm9wZXJ0eVR5
cGUpIHsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJwb2RJbXBsLiR7ZnVuY3Rpb25JbXBsZW1l
bnRhdGlvbk5hbWV9IjsKQEAgLTM2NjEsNyArMzY2Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uRnVuY3Rpb25DYWxsKCkKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5k
ZW50IC4gInNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7XG4iKSBpZiAkcmFpc2VzRXhjZXB0aW9u
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUgYW5kICEkZnVuY3Rp
b24tPmlzU3RhdGljKSB7CisgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlIGFuZCAhJGZ1bmN0
aW9uLT5pc1N0YXRpYyBhbmQgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiU3RhdGljVG9GdW5jdGlvbiJ9KSB7CiAgICAgICAgICAgICBpZiAoJHJhaXNlc0V4Y2Vw
dGlvbikgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gImlm
ICghZWMpXG4iKTsgCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQg
LiAiICAgIGltcGwuY29tbWl0Q2hhbmdlKCk7XG4iKTsKQEAgLTM2NzIsNyArMzY3NCw3IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCkKIAogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgJGluZGVudCAuICJyZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpO1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJHRoaXNPYmplY3QgPSAkZnVuY3Rp
b24tPmlzU3RhdGljID8gMCA6ICJjYXN0ZWRUaGlzIjsKKyAgICAgICAgbXkgJHRoaXNPYmplY3Qg
PSAoJGZ1bmN0aW9uLT5pc1N0YXRpYyBvciAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlN0YXRpY1RvRnVuY3Rpb24ifSkgPyAwIDogImNhc3RlZFRoaXMiOwogICAg
ICAgICBpZiAoJG5vbmRldGVybWluaXN0aWMpIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1
ZGVzKCJNZW1vaXplZERPTVJlc3VsdC5oIiwgIldFQl9SRVBMQVkiKTsKICAgICAgICAgICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCI8cmVwbGF5L0lucHV0Q3Vyc29yLmg+IiwgIldFQl9SRVBMQVkiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0
CmluZGV4IDA2NjIwNTJjMjM2ZTZjNmI5YzVkOGRlZWU3NDFmMTNhOGE0ZjA1N2YuLjMzMmI3MzA1
NWM0YzNkNDJhZTViYWVkMWIxZmI5NTQyNzg3ZGMzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dApAQCAtMTA4LDYgKzEwOCw3IEBA
IFJlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmcKIFJldHVybk5ld09iamVjdAogU2V0dGVyUmFp
c2VzRXhjZXB0aW9uCiBTa2lwVlRhYmxlVmFsaWRhdGlvbgorU3RhdGljVG9Qcm90b3R5cGUKIFN0
cmljdFR5cGVDaGVja2luZwogU3VwcHJlc3NUb0pTT2JqZWN0CiBUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCmluZGV4IDZmNzRkZWE0OWNiOGFhNzY4YjkyMzUxYmE5NGU2ZGU0YWIyNWIx
NjAuLjljNGI0MDE4Mjc0MDQ2YTkzNDRkYzA2OTVhYWU2NWUyOTVkZDQ0NTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CkBAIC0xMzcsNiArMTM3LDggQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIoSlNDOjoKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDEoSlNDOjpFeGVjU3RhdGUqKTsKICNlbmRpZgogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRo
Q2xhbXAoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0YXRpY1RvUHJvdG90eXBlTWV0aG9kKEpTQzo6
RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25TdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UoSlNDOjpF
eGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsKIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkRvbVN0cmluZ0xpc3RGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwpAQCAtNjM2LDYgKzYzOCw4
IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZh
bHVlc1tdID0KICAgICB7ICJvdmVybG9hZGVkTWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKSwgKGludHB0cl90KSAoMikgfSwKICAgICB7
ICJvdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyIiwgSlNDOjpGdW5jdGlvbiwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVy
KSwgKGludHB0cl90KSAoMSkgfSwKICAgICB7ICJjbGFzc01ldGhvZFdpdGhDbGFtcCIsIEpTQzo6
RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXApLCAoaW50
cHRyX3QpICgyKSB9LAorICAgIHsgInN0YXRpY1RvUHJvdG90eXBlTWV0aG9kIiwgSlNDOjpGdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNUb1Byb3RvdHlwZU1ldGhvZCksIChpbnRw
dHJfdCkgKDApIH0sCisgICAgeyAic3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVy
cyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RhdGljVG9Qcm90b3R5cGVN
ZXRob2RXaXRoUGFyYW1ldGVycyksIChpbnRwdHJfdCkgKDEpIH0sCiAgICAgeyAibWV0aG9kV2l0
aFVuc2lnbmVkTG9uZ1NlcXVlbmNlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UpLCAoaW50cHRyX3QpICgxKSB9LAogICAg
IHsgInN0cmluZ0FycmF5RnVuY3Rpb24iLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0cmluZ0FycmF5RnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9LAogICAgIHsgImRvbVN0
cmluZ0xpc3RGdW5jdGlvbiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9t
U3RyaW5nTGlzdEZ1bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSwKQEAgLTQxNDYsNiArNDE1MCwy
NCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXAoRXhlYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25TdGF0aWNUb1Byb3RvdHlwZU1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMpCit7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoVGVzdE9iajo6c3RhdGljVG9Qcm90b3R5cGVNZXRob2QoKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFy
YW1ldGVycyhFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKKyAgICBTdHJpbmcgaW5wdXRTdHJpbmcg
PSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBUZXN0T2JqOjpzdGF0aWNUb1Byb3RvdHlwZU1l
dGhvZFdpdGhQYXJhbWV0ZXJzKGlucHV0U3RyaW5nKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oCmluZGV4IDNiNzMxMDE4YTI5Y2I1OWVjYTkxYzNlODI2M2EwNzRiM2I3
ZDQwMjkuLmVkOWRkMjI1MDRkZDQ5ODcyZjJlY2I4ZjliYjhkMzY2NDA0OTI3NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmgKQEAgLTE2MCw2ICsxNjAsOCBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVRl
c3RPYmogOiBET01PYmplY3QKIC0gKHZvaWQpY2xhc3NNZXRob2Q7CiAtIChpbnQpY2xhc3NNZXRo
b2RXaXRoT3B0aW9uYWw6KGludClhcmc7CiAtICh2b2lkKWNsYXNzTWV0aG9kMjooaW50KWFyZzsK
Ky0gKGludClzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZDsKKy0gKHZvaWQpc3RhdGljVG9Qcm90b3R5
cGVNZXRob2RXaXRoUGFyYW1ldGVyczooTlNTdHJpbmcgKilpbnB1dFN0cmluZzsKIC0gKERPTVNW
R0RvY3VtZW50ICopZ2V0U1ZHRG9jdW1lbnQ7CiAtICh2b2lkKWNvbnZlcnQxOihET01UZXN0Tm9k
ZSAqKXZhbHVlOwogLSAodm9pZCljb252ZXJ0MjooRE9NVGVzdE5vZGUgKil2YWx1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RP
YmoubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLm1tCmluZGV4IGFkYjI3MzBkMzE4MTNhZDcyODBlNDVkMDY5ODVkOTAzZTUwYTBmN2QuLjdi
YTJjYmJlOTFlMzYzZTQ4NzY4NDc4MzM0MjBlZGMzZDhiOTRlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpA
QCAtMTA5OSw2ICsxMDk5LDE4IEBACiAKICNlbmRpZgogCistIChpbnQpc3RhdGljVG9Qcm90b3R5
cGVNZXRob2QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPnN0YXRpY1RvUHJvdG90eXBlTWV0aG9kKCk7Cit9CisKKy0gKHZvaWQp
c3RhdGljVG9Qcm90b3R5cGVNZXRob2RXaXRoUGFyYW1ldGVyczooTlNTdHJpbmcgKilpbnB1dFN0
cmluZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKGlucHV0U3RyaW5nKTsK
K30KKwogLSAoRE9NU1ZHRG9jdW1lbnQgKilnZXRTVkdEb2N1bWVudAogewogICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBlOTYxMjc4ZjQ3ZjY0NDY5NmYwYjc4
ZWE0MDQ0YTBhODMxZmMxNGM5Li4wM2RiOGQ5MzUwZjllNTBmYTQzMDIxNGQ3ODhlODk3NWQ5YzEy
YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCkBAIC0yMDYsNiArMjA2LDkgQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFs
VmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogCiAgICAgdm9p
ZCBjbGFzc01ldGhvZFdpdGhDbGFtcChbQ2xhbXBdIHVuc2lnbmVkIHNob3J0IG9iakFyZ3NTaG9y
dCwgW0NsYW1wXSB1bnNpZ25lZCBsb25nIG9iakFyZ3NMb25nKTsKIAorICAgIFtTdGF0aWNUb1By
b3RvdHlwZV0gbG9uZyBzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZCgpOworICAgIFtTdGF0aWNUb1By
b3RvdHlwZV0gdm9pZCBzdGF0aWNUb1Byb3RvdHlwZU1ldGhvZFdpdGhQYXJhbWV0ZXJzKERPTVN0
cmluZyBpbnB1dFN0cmluZyk7CisKICNpZiBkZWZpbmVkKFRFU1RJTkdfSlMpCiAgICAgdm9pZCBt
ZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2Uoc2VxdWVuY2U8dW5zaWduZWQgbG9uZz4gdW5z
aWduZWRMb25nU2VxdWVuY2UpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZ1tdIHN0
cmluZ0FycmF5RnVuY3Rpb24oRE9NU3RyaW5nW10gdmFsdWVzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256374</attachid>
            <date>2015-07-08 06:31:42 -0700</date>
            <delta_ts>2015-07-28 08:21:24 -0700</delta_ts>
            <desc>Patch with [CustomObjectNoBindings]</desc>
            <filename>bug-146593-20150708153041.patch</filename>
            <type>text/plain</type>
            <size>15946</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFkOTE0YmJiYWE1NzU2
YzJlOWViZmVmNGVkZjQxZGZiODRkNGY4My4uMDU1NmU5NzI3NmNiMjNmODA3YWU3ODZhNTcwODgx
NTNhYzBjOWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDE1LTA3LTA4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CiAKKyAgICAgICAgQ3Jl
YXRlIFtTdGF0aWNUb1Byb3RvdHlwZV0gZXh0ZW5kZWQgSURMIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBhZGRlZCB0aGUgW0N1c3Rv
bU9iamVjdE5vQmluZGluZ3NdIElETCBleHRlbmRlZCBhdHRyaWJ1dGUuIFRoZSBpZGVhIGlzIHRo
YXQgd2hlbiB1c2luZyB0aGlzIGF0dHJpYnV0ZSwKKyAgICAgICAgYmluZGluZ3MgZ2VuZXJhdGUg
b25seSB0aGUgaGVhZGVycyBvZiB0aGUgSlMgZnVuY3Rpb25zIGFuZCB3ZSBoYXZlIHRvIGltcGxl
bWVudCBhbGwgdGhlIGFjY2VzcyBpbiB0aGUgQ3VzdG9tLmNwcAorICAgICAgICBmaWxlcywgbWVh
bmluZyBhY2Nlc3NpbmcgdGhlIGltcGxlbWVudGF0aW9ucyBhdCBvdXIgd2lzaC4KKworICAgICAg
ICBBZGRlZCBjdXN0b21XaXRoTm9PYmplY3RCaW5kaW5nc0F0dHIsIGN1c3RvbVdpdGhOb09iamVj
dEJpbmRpbmdzTWV0aG9kLCBjdXN0b21XaXRoTm9PYmplY3RCaW5kaW5nc01ldGhvZFdpdGhBcmdz
CisgICAgICAgIHRvIHRoZSBnZW5lcmF0b3IgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAgICAoU2tpcEF0dHJpYnV0ZSk6
CisgICAgICAgIChTa2lwRnVuY3Rpb24pOiBTa2lwcGVkIFtDdXN0b21PYmplY3ROb0JpbmRpbmdz
XSBhdHRyaWJ1dGVzIGFuZCBtZXRob2RzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6IEF2b2lk
ZWQgZ2VuZXJhdGluZyB0aGUgY29kZSBmb3IgW0Z1bGxDdXN0b21dIG1ldGhvZHMgYW5kIGF0dHJp
YnV0ZXMuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDogQWRk
ZWQgW0N1c3RvbU9iamVjdE5vQmluZGluZ3NdIElETCBleHRlbmRlZCBhdHRyaWJ1dGUKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogRXhwZWN0YXRpb25z
OiBhZGRlZCBoZWFkZXJzIGFuZCBtZXRob2RzIHRvIHRoZSBWVGFibGVzLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGZ1bGxDdXN0b21BdHRyXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0RnVsbEN1c3RvbUF0
dHI6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogZnVsbEN1c3RvbU1ldGhvZF0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIGZ1bGxDdXN0b21NZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0p
OiBFeHBlY3RhdGlvbnMgYmVoYXZpbmcgc2FtZSB3YXkgYXMgW0N1c3RvbV0uCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCBjdXN0b21XaXRoTm9PYmpl
Y3RCaW5kaW5nc0F0dHIsIGN1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzTWV0aG9kLAorICAgICAg
ICBjdXN0b21XaXRoTm9PYmplY3RCaW5kaW5nc01ldGhvZFdpdGhBcmdzLgorCisyMDE1LTA3LTA4
ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKICAgICAg
ICAgW0dUS10gRGVhY3RpdmF0ZSBHT2JqZWN0IGJpbmRpbmdzIGZvciBzdGF0aWMgbWV0aG9kcwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NzE3CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JHT2JqZWN0LnBtCmluZGV4IDQ0Mjg0M2Q4ZTFmZGY3MmE4M2QxMzIyNTM4ZjM2MTIxNzk5NjA0
MjQuLmY2OTFjZjY0YmI3ZjBjNjY1YWU5MjM5MDIxZWZkYTczYTNjOGM2MmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbQpAQCAtMjIzLDcgKzIyMyw4IEBAIHN1YiBTa2lwQXR0cmlidXRlIHsKICAgICBteSAkYXR0
cmlidXRlID0gc2hpZnQ7CiAKICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0KLSAgICAgICAgfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsKKyAgICAgICAgfHwgJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0K
KyAgICAgICAgfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tV2l0aE5vT2JqZWN0QmluZGluZ3MifSkgewogICAgICAgICByZXR1cm4gMTsKICAgICB9
CiAKQEAgLTI4Myw3ICsyODQsNyBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKIAogICAgIG15ICRmdW5j
dGlvbk5hbWUgPSAid2Via2l0X2RvbV8iIC4gJGRlY2FtZWxpemUgLiAiXyIgLiAkcHJlZml4IC4g
ZGVjYW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CiAgICAgbXkgJGZ1bmN0aW9u
UmV0dXJuVHlwZSA9ICRwcmVmaXggZXEgInNldF8iID8gInZvaWQiIDogJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGU7Ci0gICAgbXkgJGlzQ3VzdG9tRnVuY3Rpb24gPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgIG15ICRpc0N1c3RvbUZ1
bmN0aW9uID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0
b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bVdpdGhOb09iamVjdEJpbmRpbmdzIn07CiAgICAgbXkgJGNhbGxXaXRoID0gJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9OwogICAgIG15ICRpc1Vu
c3VwcG9ydGVkQ2FsbFdpdGggPSAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250
YWlucygkY2FsbFdpdGgsICJTY3JpcHRBcmd1bWVudHMiKSB8fCAkY29kZUdlbmVyYXRvci0+RXh0
ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJDYWxsU3RhY2siKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA2MmU0ZGM5Zjk5YzU5MGJiZGU4YjI1OGE1N2RmYTAxMTYxZjAwY2I3Li40NGU2MTZlY2NlODU0
MGFhYjUwNmFjNDJhMjZmMTQyZmZiZDczODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjIwNiw4ICsyMjA2LDE0IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICB9CiAgICAgJG51bUF0dHJpYnV0ZXMg
PSAkbnVtQXR0cmlidXRlcyArIDEgaWYgTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZh
Y2UpOworICAgIG15IEBub25DdXN0b21Ob09iamVjdEJpbmRpbmdzQXR0cmlidXRlczsKKyAgICBm
b3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKKyAgICAg
ICAgaWYgKCEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0
b21XaXRoTm9PYmplY3RCaW5kaW5ncyJ9KSB7CisgICAgICAgICAgICBwdXNoKEBub25DdXN0b21O
b09iamVjdEJpbmRpbmdzQXR0cmlidXRlcywgJGF0dHJpYnV0ZSk7CisgICAgICAgIH0KKyAgICB9
CiAgICAgaWYgKCRudW1BdHRyaWJ1dGVzID4gMCkgewotICAgICAgICBmb3JlYWNoIG15ICRhdHRy
aWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgZm9yZWFjaCBteSAk
YXR0cmlidXRlIChAbm9uQ3VzdG9tTm9PYmplY3RCaW5kaW5nc0F0dHJpYnV0ZXMpIHsKICAgICAg
ICAgICAgIG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAg
ICAgbXkgJHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CiAgICAgICAgICAgICBt
eSAkaXNOdWxsYWJsZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZTsKQEAgLTI1
NTAsNyArMjU1Niw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRl
c30pIHsKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEBub25DdXN0b21Ob09iamVjdEJpbmRp
bmdzQXR0cmlidXRlcykgewogICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsK
ICAgICAgICAgICAgIG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAg
ICAgICAgICAgbXkgJHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CkBAIC0yNzU3
LDcgKzI3NjMsMTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAjIEZ1bmN0aW9u
cwogICAgIGlmICgkbnVtRnVuY3Rpb25zID4gMCkgewogICAgICAgICBteSAkaW5BcHBsZUNvcHly
aWdodCA9IDA7CisgICAgICAgIG15IEBub25DdXN0b21Ob09iamVjdEJpbmRpbmdzQXR0cmlidXRl
c0Z1bmN0aW9uczsKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+
ZnVuY3Rpb25zfSkgeworICAgICAgICAgICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzIn0pIHsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBub25DdXN0b21Ob09iamVjdEJpbmRpbmdzQXR0cmlidXRlc0Z1bmN0
aW9ucywgJGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3Jl
YWNoIG15ICRmdW5jdGlvbiAoQG5vbkN1c3RvbU5vT2JqZWN0QmluZGluZ3NBdHRyaWJ1dGVzRnVu
Y3Rpb25zKSB7CiAgICAgICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAg
ICAgICAgICAgIGlmICgkbmVlZHNBcHBsZUNvcHlyaWdodCkgewogICAgICAgICAgICAgICAgIGlm
ICghJGluQXBwbGVDb3B5cmlnaHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IDA2NjIwNTJjMjM2ZTZjNmI5YzVkOGRlZWU3
NDFmMTNhOGE0ZjA1N2YuLjM2ZmQzMjIzYWNiYzljMzM3NDgzMjU2NjkwNTI0ODkwMzI4NzAwYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dApAQCAtNDksNiArNDksNyBAQCBDdXN0b21QdXRGdW5jdGlvbgogQ3VzdG9tUmV0dXJuCiBD
dXN0b21TZXR0ZXIKIEN1c3RvbVRvSlNPYmplY3QKK0N1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdz
CiBEZWZhdWx0PU51bGxTdHJpbmd8VW5kZWZpbmVkCiBEZWxldGFibGUKIERvTm90Q2hlY2tDb25z
dGFudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAKaW5kZXggNmY3NGRlYTQ5Y2I4YWE3NjhiOTIzNTFiYTk0ZTZkZTRhYjI1
YjE2MC4uNTYyMDhiYmU1ZmQ0NDJmYzMzZTIzOTliYzhjOTBlMDgzODQ3Yjk3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAKQEAgLTk3LDYgKzk3LDggQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3B0aW9uc09iamVjdChKU0M6OkUKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZChKU0M6OkV4ZWNT
dGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1
c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0
b21XaXRoTm9PYmplY3RCaW5kaW5nc01ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25BZGRFdmVudExpc3RlbmVyKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3Rl
bmVyKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKEpTQzo6RXhlY1N0
YXRlKik7CkBAIC0yMjcsNiArMjI5LDggQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpT
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzoKIHZvaWQg
c2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21XaXRoTm9PYmplY3RCaW5kaW5nc0F0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpDdXN0b21XaXRoTm9PYmplY3RCaW5k
aW5nc0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
ak9uZm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqT25mb28oSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CkBAIC01MTksNiArNTIzLDcgQEAgc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsg
ImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBO
b0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uKSB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
IiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKSB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0
ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4
Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSB9LAorICAg
IHsgImN1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzQXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21B
Y2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ3VzdG9tV2l0aE5vT2JqZWN0QmluZGluZ3NBdHRyKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqQ3VzdG9tV2l0aE5vT2JqZWN0QmluZGluZ3NBdHRyKSB9LAogICAgIHsgIm9uZm9v
IiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpPbmZvbyksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9iak9uZm9vKSB9LAogICAgIHsgIndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSIsIERvbnRE
ZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0
cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKSB9LAogICAgIHsgIndp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFj
Y2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSB9LApAQCAt
NTk4LDYgKzYwMyw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJtZXRob2RXaXRoRXhjZXB0aW9uIiwgSlNDOjpG
dW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKSwgKGludHB0
cl90KSAoMCkgfSwKICAgICB7ICJjdXN0b21NZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCksIChpbnRwdHJfdCkgKDApIH0sCiAgICAgeyAiY3Vz
dG9tTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1
c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykgfSwKKyAgICB7ICJjdXN0b21XaXRo
Tm9PYmplY3RCaW5kaW5nc01ldGhvZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ3VzdG9tV2l0aE5vT2JqZWN0QmluZGluZ3NNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9LAor
ICAgIHsgImN1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzTWV0
aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9LAogICAgIHsgImFkZEV2ZW50TGlzdGVuZXIi
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpLCAo
aW50cHRyX3QpICgyKSB9LAogICAgIHsgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCBKU0M6OkZ1bmN0
aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIpLCAoaW50cHRyX3Qp
ICgyKSB9LAogICAgIHsgIndpdGhTY3JpcHRTdGF0ZVZvaWQiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZVZvaWQpLCAoaW50cHRyX3QpICgwKSB9LApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5oCmluZGV4IDNiNzMxMDE4YTI5Y2I1OWVjYTkxYzNlODI2M2EwNzRiM2I3ZDQwMjku
LmVmZGRiMjcxOGUwYzE5YTg3OGQxNTk3NzM5NDAyMTYxNTdlMTk2NDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgK
QEAgLTkwLDYgKzkwLDcgQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01UZXN0T2JqIDog
RE9NT2JqZWN0CiBAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzdHJpbmdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbjsKIEBwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnN0cmluZ0F0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uOwogQHByb3BlcnR5IGludCBjdXN0b21BdHRyOworQHByb3BlcnR5IGludCBj
dXN0b21XaXRoTm9PYmplY3RCaW5kaW5nc0F0dHI7CiBAcHJvcGVydHkgaW50IHdpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZTsKIEBwcm9wZXJ0eSAoc3Ryb25nKSBET01UZXN0T2JqICp3aXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZTsKIEBwcm9wZXJ0eSAoc3Ryb25nKSBET01UZXN0T2Jq
ICp3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXM7CkBAIC0xNDAsNiArMTQxLDggQEAgV0VC
Q09SRV9FWFBPUlQgQGludGVyZmFjZSBET01UZXN0T2JqIDogRE9NT2JqZWN0CiAtICh2b2lkKW1l
dGhvZFdpdGhFeGNlcHRpb247CiAtICh2b2lkKWN1c3RvbU1ldGhvZDsKIC0gKHZvaWQpY3VzdG9t
TWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAodm9pZCljdXN0b21XaXRoTm9PYmplY3RCaW5k
aW5nc01ldGhvZDsKKy0gKHZvaWQpY3VzdG9tV2l0aE5vT2JqZWN0QmluZGluZ3NNZXRob2RXaXRo
QXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRl
c3RPYmogKilvYmpBcmc7CiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlw
ZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJP
T0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpcmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0
eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZToo
Qk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZCl3aXRoU2NyaXB0U3RhdGVWb2lkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
bW0KaW5kZXggYWRiMjczMGQzMTgxM2FkNzI4MGU0NWQwNjk4NWQ5MDNlNTBhMGY3ZC4uYzM5N2Y2
MDdkNjlkMWFkNTRkYjRlNThkYjMzM2Y1YjQzOTVmZmRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC00
MzgsNiArNDM4LDE4IEBACiAgICAgSU1QTC0+c2V0Q3VzdG9tQXR0cihuZXdDdXN0b21BdHRyKTsK
IH0KIAorLSAoaW50KWN1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzQXR0cgoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y3VzdG9t
V2l0aE5vT2JqZWN0QmluZGluZ3NBdHRyKCk7Cit9CisKKy0gKHZvaWQpc2V0Q3VzdG9tV2l0aE5v
T2JqZWN0QmluZGluZ3NBdHRyOihpbnQpbmV3Q3VzdG9tV2l0aE5vT2JqZWN0QmluZGluZ3NBdHRy
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwt
PnNldEN1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzQXR0cihuZXdDdXN0b21XaXRoTm9PYmplY3RC
aW5kaW5nc0F0dHIpOworfQorCiAtIChpbnQpd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlCiB7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtOTE5LDYgKzkzMSwx
OCBAQAogICAgIElNUEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29y
ZShvYmpBcmcpKTsKIH0KIAorLSAodm9pZCljdXN0b21XaXRoTm9PYmplY3RCaW5kaW5nc01ldGhv
ZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBM
LT5jdXN0b21XaXRoTm9PYmplY3RCaW5kaW5nc01ldGhvZCgpOworfQorCistICh2b2lkKWN1c3Rv
bVdpdGhOb09iamVjdEJpbmRpbmdzTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzoo
TlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmN1c3RvbVdpdGhO
b09iamVjdEJpbmRpbmdzTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFy
ZykpOworfQorCiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0
ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNl
Q2FwdHVyZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRl
eCBlOTYxMjc4ZjQ3ZjY0NDY5NmYwYjc4ZWE0MDQ0YTBhODMxZmMxNGM5Li4yZTlmYmE0ZTBmMzhk
ZmYxOWE5OWQ3MzhhNjhmNjZhNTU2YWM4OTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xMDksNiArMTA5LDExIEBAIGVudW0g
X29wdGlvbmFsIHsgIiIsICJPcHRpb25hbFZhbHVlMSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRp
b25hbFZhbHVlMyIgfTsKICAgICBbQ3VzdG9tXSB2b2lkIGN1c3RvbU1ldGhvZCgpOwogICAgIFtD
dXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nQXJnLCBET01TdHJpbmcg
c3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CiAKKyAgICAvLyAnQ3VzdG9tV2l0aE5vT2JqZWN0Qmlu
ZGluZ3MnIGV4dGVuZGVkIGF0dHJpYnV0ZQorICAgIFtDdXN0b21XaXRoTm9PYmplY3RCaW5kaW5n
c10gYXR0cmlidXRlIGxvbmcgICAgICAgICAgICBjdXN0b21XaXRoTm9PYmplY3RCaW5kaW5nc0F0
dHI7CisgICAgW0N1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzXSB2b2lkIGN1c3RvbVdpdGhOb09i
amVjdEJpbmRpbmdzTWV0aG9kKCk7CisgICAgW0N1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzXSB2
b2lkIGN1c3RvbVdpdGhOb09iamVjdEJpbmRpbmdzTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nQXJn
LCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CisKICAgICB2b2lkIGFkZEV2ZW50
TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIG9wdGlvbmFs
IGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0
cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNh
cHR1cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mb287Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257646</attachid>
            <date>2015-07-28 08:21:01 -0700</date>
            <delta_ts>2015-07-29 04:51:15 -0700</delta_ts>
            <desc>Patch with [CustomObjectGenerateNoBindings]</desc>
            <filename>bug-146593-20150728171939.patch</filename>
            <type>text/plain</type>
            <size>16189</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAyMjE3MWRhMDZlMmI4
NmFkODMyNWFjZGU4M2E3ODA5MjUxYzgzNS4uODE3YzAwYzQ3YTQ5NjNkZTg4MzM3MTE5N2I3MDUy
ZjFjZGEwYjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTA3LTI4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtTdGF0aWNUb1Byb3RvdHlwZV0gZXh0ZW5kZWQgSURMIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBhZGRlZCB0aGUgW0N1c3Rv
bU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc10gSURMIGV4dGVuZGVkIGF0dHJpYnV0ZS4gVGhlIGlk
ZWEgaXMgdGhhdCB3aGVuIHVzaW5nIHRoaXMgYXR0cmlidXRlLAorICAgICAgICBiaW5kaW5ncyBn
ZW5lcmF0ZSBvbmx5IHRoZSBoZWFkZXJzIG9mIHRoZSBKUyBmdW5jdGlvbnMgYW5kIHdlIGhhdmUg
dG8gaW1wbGVtZW50IGFsbCB0aGUgYWNjZXNzIGluIHRoZSBDdXN0b20uY3BwCisgICAgICAgIGZp
bGVzLCBtZWFuaW5nIGFjY2Vzc2luZyB0aGUgaW1wbGVtZW50YXRpb25zIGF0IG91ciB3aXNoLgor
CisgICAgICAgIEFkZGVkIGN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc0F0dHIsIGN1c3Rv
bU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc01ldGhvZCwKKyAgICAgICAgY3VzdG9tT2JqZWN0R2Vu
ZXJhdGVOb0JpbmRpbmdzTWV0aG9kV2l0aEFyZ3MgdG8gdGhlIGdlbmVyYXRvciB0ZXN0cy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06CisgICAg
ICAgIChTa2lwQXR0cmlidXRlKToKKyAgICAgICAgKFNraXBGdW5jdGlvbik6IFNraXBwZWQgW0N1
c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc10gYXR0cmlidXRlcyBhbmQgbWV0aG9kcy4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdl
bmVyYXRlSW1wbGVtZW50YXRpb24pOiBBdm9pZGVkIGdlbmVyYXRpbmcgdGhlIGNvZGUgZm9yIFtD
dXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMuCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDogQWRkZWQgW0N1c3Rv
bU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc10gSURMIGV4dGVuZGVkIGF0dHJpYnV0ZQorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOiBFeHBlY3RhdGlvbnM6
IGFkZGVkIGhlYWRlcnMgYW5kIG1ldGhvZHMgdG8gdGhlIFZUYWJsZXMuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRlc3RPYmog
Y3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzQXR0cl0pOgorICAgICAgICAoLVtET01UZXN0
T2JqIHNldEN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc0F0dHI6XSk6CisgICAgICAgICgt
W0RPTVRlc3RPYmogY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kXSk6CisgICAg
ICAgICgtW0RPTVRlc3RPYmogY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kV2l0
aEFyZ3M6c3RyQXJnOm9iakFyZzpdKTogRXhwZWN0YXRpb25zIGJlaGF2aW5nIHNhbWUgd2F5IGFz
IFtDdXN0b21dLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDog
QWRkZWQgY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzQXR0ciwKKyAgICAgICAgY3VzdG9t
T2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kLCBjdXN0b21PYmplY3RHZW5lcmF0ZU5vQmlu
ZGluZ3NNZXRob2RXaXRoQXJncy4KKwogMjAxNS0wNy0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVXNlIGZhc3RNYWxsb2MgaW5z
dGVhZCBvZiBnX3NsaWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCA0NDI4NDNkOGUxZmRmNzJhODNkMTMy
MjUzOGYzNjEyMTc5OTYwNDI0Li5jYzkxMGFhYzNhYzBkZjhiNDYxZjZkYTMxMjFmMTFjZGQ3YmFi
Yjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTIyMyw3ICsyMjMsOCBAQCBzdWIgU2tpcEF0dHJpYnV0
ZSB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OwogCiAgICAgaWYgKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9Ci0gICAgICAgIHx8ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7
CisgICAgICAgIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbUdldHRlciJ9CisgICAgICAgIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5ncyJ9KSB7CiAgICAg
ICAgIHJldHVybiAxOwogICAgIH0KIApAQCAtMjgzLDcgKzI4NCw3IEBAIHN1YiBTa2lwRnVuY3Rp
b24gewogCiAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICJ3ZWJraXRfZG9tXyIgLiAkZGVjYW1lbGl6
ZSAuICJfIiAuICRwcmVmaXggLiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
KTsKICAgICBteSAkZnVuY3Rpb25SZXR1cm5UeXBlID0gJHByZWZpeCBlcSAic2V0XyIgPyAidm9p
ZCIgOiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZTsKLSAgICBteSAkaXNDdXN0b21GdW5jdGlv
biA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07
CisgICAgbXkgJGlzQ3VzdG9tRnVuY3Rpb24gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzIn07CiAgICAgbXkg
JGNhbGxXaXRoID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
YWxsV2l0aCJ9OwogICAgIG15ICRpc1Vuc3VwcG9ydGVkQ2FsbFdpdGggPSAkY29kZUdlbmVyYXRv
ci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJTY3JpcHRBcmd1bWVudHMi
KSB8fCAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgs
ICJDYWxsU3RhY2siKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBjOTM1ZDI5ZGY0ZTk3NjU4MzlmYWZkOTAxZWMwZmQ1
YTNmOWVmODBiLi45N2QwZGYyZjkzYjcyNTVmYjI4YWRlYmRlNTFhMTFhMDkwNmU4OTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQpAQCAtMjIwOCw4ICsyMjA4LDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAg
ICB9CiAgICAgJG51bUF0dHJpYnV0ZXMgPSAkbnVtQXR0cmlidXRlcyArIDEgaWYgTmVlZHNDb25z
dHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpOworICAgIG15IEBub25DdXN0b21PYmplY3RHZW5l
cmF0ZU5vQmluZGluZ3NBdHRyaWJ1dGVzOworICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHsk
aW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5n
cyJ9KSB7CisgICAgICAgICAgICBwdXNoKEBub25DdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGlu
Z3NBdHRyaWJ1dGVzLCAkYXR0cmlidXRlKTsKKyAgICAgICAgfQorICAgIH0KICAgICBpZiAoJG51
bUF0dHJpYnV0ZXMgPiAwKSB7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50
ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEBu
b25DdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NBdHRyaWJ1dGVzKSB7CiAgICAgICAgICAg
ICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgICAgIG15
ICR0eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwogICAgICAgICAgICAgbXkgJGlz
TnVsbGFibGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmlzTnVsbGFibGU7CkBAIC0yNTUyLDcg
KzI1NTgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7
CisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAbm9uQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0Jp
bmRpbmdzQXR0cmlidXRlcykgewogICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkp
IHsKICAgICAgICAgICAgIG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwog
ICAgICAgICAgICAgbXkgJHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CkBAIC0y
NzU5LDcgKzI3NjUsMTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAjIEZ1bmN0
aW9ucwogICAgIGlmICgkbnVtRnVuY3Rpb25zID4gMCkgewogICAgICAgICBteSAkaW5BcHBsZUNv
cHlyaWdodCA9IDA7CisgICAgICAgIG15IEBub25DdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGlu
Z3NGdW5jdGlvbnM7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2Ut
PmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgIGlmICghJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3MifSkgewor
ICAgICAgICAgICAgICAgIHB1c2goQG5vbkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc0Z1
bmN0aW9ucywgJGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBm
b3JlYWNoIG15ICRmdW5jdGlvbiAoQG5vbkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc0Z1
bmN0aW9ucykgewogICAgICAgICAgICAgbXkgJG5lZWRzQXBwbGVDb3B5cmlnaHQgPSAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFwcGxlQ29weXJpZ2h0In07CiAg
ICAgICAgICAgICBpZiAoJG5lZWRzQXBwbGVDb3B5cmlnaHQpIHsKICAgICAgICAgICAgICAgICBp
ZiAoISRpbkFwcGxlQ29weXJpZ2h0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCAwNjYyMDUyYzIzNmU2YzZiOWM1ZDhkZWVl
NzQxZjEzYThhNGYwNTdmLi40N2Q5NTQ1N2IwZDMwOTBhOTMyMTQyMmViOTkwNjVlMzdlMDA1ZGJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKQEAgLTQ5LDYgKzQ5LDcgQEAgQ3VzdG9tUHV0RnVuY3Rpb24KIEN1c3RvbVJldHVybgog
Q3VzdG9tU2V0dGVyCiBDdXN0b21Ub0pTT2JqZWN0CitDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmlu
ZGluZ3MKIERlZmF1bHQ9TnVsbFN0cmluZ3xVbmRlZmluZWQKIERlbGV0YWJsZQogRG9Ob3RDaGVj
a0NvbnN0YW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA2Zjc0ZGVhNDljYjhhYTc2OGI5MjM1MWJhOTRlNmRl
NGFiMjViMTYwLi44YTk2YjE0ZTA1YWNlMmM1Mjk1NDViZjJmM2E1OTliNDZhMjhlNTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcApAQCAtOTcsNiArOTcsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2JqZWN0KEpTQzo6RQogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKEpTQzo6
RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NNZXRob2RXaXRoQXJncyhKU0M6OkV4
ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVt
b3ZlRXZlbnRMaXN0ZW5lcihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9p
ZChKU0M6OkV4ZWNTdGF0ZSopOwpAQCAtMjI3LDYgKzIyOSw4IEBAIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUq
LCBKU0M6CiB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqQ3VzdG9tQXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tT2JqZWN0R2VuZXJh
dGVOb0JpbmRpbmdzQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakN1c3Rv
bU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak9uZm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIHZvaWQgc2V0SlNU
ZXN0T2JqT25mb28oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CkBAIC01MTksNiAr
NTIzLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRh
YmxlVmFsdWVzW10gPQogICAgIHsgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0
ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlv
biksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSB9LAogICAgIHsgInN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmlu
Z0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpT
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uKSB9LAorICAgIHsgImN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc0F0
dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakN1c3RvbU9i
amVjdEdlbmVyYXRlTm9CaW5kaW5nc0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDdXN0b21PYmplY3RHZW5lcmF0
ZU5vQmluZGluZ3NBdHRyKSB9LAogICAgIHsgIm9uZm9vIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFj
Y2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpPbmZvbyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iak9uZm9vKSB9LAogICAgIHsg
IndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3Nvciwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqV2l0aFNj
cmlwdFN0YXRlQXR0cmlidXRlKSB9LAogICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSB9LApAQCAtNTk4LDYgKzYwMyw4IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAg
ICB7ICJtZXRob2RXaXRoRXhjZXB0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKSwgKGludHB0cl90KSAoMCkgfSwKICAgICB7ICJjdXN0
b21NZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhv
ZCksIChpbnRwdHJfdCkgKDApIH0sCiAgICAgeyAiY3VzdG9tTWV0aG9kV2l0aEFyZ3MiLCBKU0M6
OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGlu
dHB0cl90KSAoMykgfSwKKyAgICB7ICJjdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NNZXRo
b2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9iamVjdEdlbmVy
YXRlTm9CaW5kaW5nc01ldGhvZCksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAiY3VzdG9tT2Jq
ZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc01ldGhvZFdpdGhB
cmdzKSwgKGludHB0cl90KSAoMykgfSwKICAgICB7ICJhZGRFdmVudExpc3RlbmVyIiwgSlNDOjpG
dW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKSwgKGludHB0cl90
KSAoMikgfSwKICAgICB7ICJyZW1vdmVFdmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9J
bnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKSwgKGludHB0cl90KSAoMikgfSwK
ICAgICB7ICJ3aXRoU2NyaXB0U3RhdGVWb2lkIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKSwgKGludHB0cl90KSAoMCkgfSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aAppbmRleCAzYjczMTAxOGEyOWNiNTllY2E5MWMzZTgyNjNhMDc0YjNiN2Q0MDI5Li5mYmFhZTlj
ZmRhMjllZmUxYzJkYjA5NmNlMDRmOWRhMmU5YTgxM2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBAIC05MCw2
ICs5MCw3IEBAIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVzdE9iaiA6IERPTU9iamVj
dAogQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b247CiBAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbjsKIEBwcm9wZXJ0eSBpbnQgY3VzdG9tQXR0cjsKK0Bwcm9wZXJ0eSBpbnQgY3VzdG9tT2Jq
ZWN0R2VuZXJhdGVOb0JpbmRpbmdzQXR0cjsKIEBwcm9wZXJ0eSBpbnQgd2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlOwogQHByb3BlcnR5IChzdHJvbmcpIERPTVRlc3RPYmogKndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QXR0cmlidXRlOwogQHByb3BlcnR5IChzdHJvbmcpIERPTVRlc3RPYmogKndp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlczsKQEAgLTE0MCw2ICsxNDEsOCBAQCBXRUJDT1JF
X0VYUE9SVCBAaW50ZXJmYWNlIERPTVRlc3RPYmogOiBET01PYmplY3QKIC0gKHZvaWQpbWV0aG9k
V2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kOwogLSAodm9pZCljdXN0b21NZXRo
b2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmc7CistICh2b2lkKWN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5k
aW5nc01ldGhvZDsKKy0gKHZvaWQpY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9k
V2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihE
T01UZXN0T2JqICopb2JqQXJnOwogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAq
KXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJl
OihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5n
ICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1
cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpd2l0aFNjcmlwdFN0YXRlVm9pZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RP
YmoubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLm1tCmluZGV4IGFkYjI3MzBkMzE4MTNhZDcyODBlNDVkMDY5ODVkOTAzZTUwYTBmN2QuLjI5
MWY5NWYzYzhmZGE0ZGNjYzgzZWM2ODExYzNlOWQwMDM3MjVkYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpA
QCAtNDM4LDYgKzQzOCwxOCBAQAogICAgIElNUEwtPnNldEN1c3RvbUF0dHIobmV3Q3VzdG9tQXR0
cik7CiB9CiAKKy0gKGludCljdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NBdHRyCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5jdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NBdHRyKCk7Cit9CisKKy0gKHZvaWQpc2V0
Q3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzQXR0cjooaW50KW5ld0N1c3RvbU9iamVjdEdl
bmVyYXRlTm9CaW5kaW5nc0F0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Q3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzQXR0
cihuZXdDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NBdHRyKTsKK30KKwogLSAoaW50KXdp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKQEAgLTkxOSw2ICs5MzEsMTggQEAKICAgICBJTVBMLT5jdXN0b21NZXRob2RX
aXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKKy0gKHZvaWQpY3Vz
dG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmN1c3RvbU9iamVjdEdlbmVyYXRlTm9C
aW5kaW5nc01ldGhvZCgpOworfQorCistICh2b2lkKWN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5k
aW5nc01ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJn
IG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5jdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGlu
Z3NNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7Cit9CisKIC0g
KHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9N
RXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCiB7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGU5NjEyNzhmNDdm
NjQ0Njk2ZjBiNzhlYTQwNDRhMGE4MzFmYzE0YzkuLjJlYzI3YmNjMTNkNjZhMmQ3MTk3ZWU0ZmE3
NzZkYzQyNWU2NTRhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGwKQEAgLTEwOSw2ICsxMDksMTEgQEAgZW51bSBfb3B0aW9uYWwgeyAi
IiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9
OwogICAgIFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kKCk7CiAgICAgW0N1c3RvbV0gdm9pZCBj
dXN0b21NZXRob2RXaXRoQXJncyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcsIFRlc3RP
Ymogb2JqQXJnKTsKIAorICAgIC8vICdDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3MnIGV4
dGVuZGVkIGF0dHJpYnV0ZQorICAgIFtDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdIGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzQXR0
cjsKKyAgICBbQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzXSB2b2lkIGN1c3RvbU9iamVj
dEdlbmVyYXRlTm9CaW5kaW5nc01ldGhvZCgpOworICAgIFtDdXN0b21PYmplY3RHZW5lcmF0ZU5v
QmluZGluZ3NdIHZvaWQgY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kV2l0aEFy
Z3MobG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CisKICAg
ICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlz
dGVuZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9pZCByZW1vdmVFdmVu
dExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25h
bCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mb287
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257745</attachid>
            <date>2015-07-29 04:51:21 -0700</date>
            <delta_ts>2015-07-29 09:14:08 -0700</delta_ts>
            <desc>Patch with [CustomObjectGenerateNoBindings]</desc>
            <filename>bug-146593-20150729134957.patch</filename>
            <type>text/plain</type>
            <size>8719</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAwYTY2ZGY3YjMxMTk3
MWE5ZDI1OTE5ZmMyMjBjNjc0NGZhNjI2NS4uOWIzMTVkMDJmZGZmNTA5MWMwNDcwYmIxODg1OWJk
MmZkMWEyODQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTA3LTI5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdIGV4dGVuZGVkIElETCBhdHRyaWJ1
dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU5
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgYWRk
ZWQgdGhlIFtDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdIElETCBleHRlbmRlZCBhdHRy
aWJ1dGUuIFRoZSBpZGVhIGlzIHRoYXQgd2hlbiB1c2luZyB0aGlzIGF0dHJpYnV0ZSwKKyAgICAg
ICAgYmluZGluZ3MgZ2VuZXJhdGUgb25seSB0aGUgaGVhZGVycyBvZiB0aGUgSlMgZnVuY3Rpb25z
IGFuZCB3ZSBoYXZlIHRvIGltcGxlbWVudCBhbGwgdGhlIGFjY2VzcyBpbiB0aGUgQ3VzdG9tLmNw
cAorICAgICAgICBmaWxlcywgbWVhbmluZyBhY2Nlc3NpbmcgdGhlIGltcGxlbWVudGF0aW9ucyBh
dCBvdXIgd2lzaC4KKworICAgICAgICBBZGRlZCBjdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGlu
Z3NNZXRob2QsIGN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc01ldGhvZFdpdGhBcmdzIHRv
IHRoZSBnZW5lcmF0b3IgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAgICAoU2tpcEZ1bmN0aW9uKTogU2tpcHBlZCBbQ3Vz
dG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzXSBtZXRob2RzLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbik6IEF2b2lkZWQgZ2VuZXJhdGluZyB0aGUgaW1wbGVtZW50YXRpb24gZm9yIFtDdXN0b21P
YmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdCisgICAgICAgIG1ldGhvZHMuIFRoZSBoZWFkZXJzIGFy
ZSB1bnRvdWNoZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2Jq
Qy5wbToKKyAgICAgICAgKFNraXBGdW5jdGlvbik6IFNraXBwZWQgW0N1c3RvbU9iamVjdEdlbmVy
YXRlTm9CaW5kaW5nc10gbWV0aG9kcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMudHh0OiBBZGRlZCBbQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzXSBJREwg
ZXh0ZW5kZWQgYXR0cmlidXRlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bDogQWRkZWQgY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kLAorICAgICAgICBj
dXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NNZXRob2RXaXRoQXJncyBhbmQgdGhlaXIgZXhw
ZWN0YXRpb25zLgorCiAyMDE1LTA3LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgQXZvaWQgdW5uZWNlc3NhcmlseSBjb25zdHJ1Y3RpbmcgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyIG9uIERvY3VtZW50IGRlc3RydWN0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRl
eCA0NDI4NDNkOGUxZmRmNzJhODNkMTMyMjUzOGYzNjEyMTc5OTYwNDI0Li4yOTk4Y2JkMzNkMWFl
ZjU5NDIzYjk2N2E3MjdhODQyZGM0Yzg4YzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTI4Myw3ICsy
ODMsNyBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKIAogICAgIG15ICRmdW5jdGlvbk5hbWUgPSAid2Vi
a2l0X2RvbV8iIC4gJGRlY2FtZWxpemUgLiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CiAgICAgbXkgJGZ1bmN0aW9uUmV0dXJuVHlwZSA9ICRw
cmVmaXggZXEgInNldF8iID8gInZvaWQiIDogJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7Ci0g
ICAgbXkgJGlzQ3VzdG9tRnVuY3Rpb24gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgIG15ICRpc0N1c3RvbUZ1bmN0aW9uID0gJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU9iamVjdEdlbmVyYXRl
Tm9CaW5kaW5ncyJ9OwogICAgIG15ICRjYWxsV2l0aCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsKICAgICBteSAkaXNVbnN1cHBvcnRlZENh
bGxXaXRoID0gJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxX
aXRoLCAiU2NyaXB0QXJndW1lbnRzIikgfHwgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmli
dXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiQ2FsbFN0YWNrIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYzkzNWQyOWRm
NGU5NzY1ODM5ZmFmZDkwMWVjMGZkNWEzZjllZjgwYi4uOWYzNjg3OTYwZDgzOTJmODBkODAwZGEy
MjNmYjQ3NjU4YjdlMDQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI3NjAsNiArMjc2MCw3IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgaWYgKCRudW1GdW5jdGlvbnMgPiAwKSB7CiAgICAgICAgIG15
ICRpbkFwcGxlQ29weXJpZ2h0ID0gMDsKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7
JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICAgICAgbmV4dCBpZiAoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21PYmplY3RHZW5lcmF0ZU5v
QmluZGluZ3MifSk7CiAgICAgICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsK
ICAgICAgICAgICAgIGlmICgkbmVlZHNBcHBsZUNvcHlyaWdodCkgewogICAgICAgICAgICAgICAg
IGlmICghJGluQXBwbGVDb3B5cmlnaHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCmluZGV4IDE4NWZmOWFlNjMzZjk1Zjc3
ODEwMTAxNTc1MGQzMmY1ZWU5ZjAwYzIuLjk1NTYzNTJmMjJjNzFiYzlmMjhjNDk2NWUxMjczOTlh
NzUyMDM5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvck9iakMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yT2JqQy5wbQpAQCAtNTM4LDYgKzUzOCw3IEBAIHN1YiBTa2lwRnVuY3Rpb24K
ICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+R2V0QXJyYXlUeXBlKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlKTsKIAogICAgIHJldHVybiAxIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT50eXBlIGVxICJQcm9taXNlIjsKKyAgICByZXR1cm4gMSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5ncyJ9
OwogCiAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewog
ICAgICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+R2V0U2VxdWVuY2VUeXBlKCRwYXJh
bS0+dHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRy
aWJ1dGVzLnR4dAppbmRleCAwNjYyMDUyYzIzNmU2YzZiOWM1ZDhkZWVlNzQxZjEzYThhNGYwNTdm
Li40N2Q5NTQ1N2IwZDMwOTBhOTMyMTQyMmViOTkwNjVlMzdlMDA1ZGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTQ5LDYg
KzQ5LDcgQEAgQ3VzdG9tUHV0RnVuY3Rpb24KIEN1c3RvbVJldHVybgogQ3VzdG9tU2V0dGVyCiBD
dXN0b21Ub0pTT2JqZWN0CitDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3MKIERlZmF1bHQ9
TnVsbFN0cmluZ3xVbmRlZmluZWQKIERlbGV0YWJsZQogRG9Ob3RDaGVja0NvbnN0YW50cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAppbmRleCA2Zjc0ZGVhNDljYjhhYTc2OGI5MjM1MWJhOTRlNmRlNGFiMjViMTYwLi4yZjli
ZjQ0MWFkYzQ5Y2UzZjFjZjVhNDhjOTIwNjY3NDE3YTQwM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtOTcs
NiArOTcsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PcHRpb25zT2JqZWN0KEpTQzo6RQogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlv
bihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25DdXN0b21NZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT2JqZWN0
R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21PYmpl
Y3RHZW5lcmF0ZU5vQmluZGluZ3NNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwogSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
QWRkRXZlbnRMaXN0ZW5lcihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5l
cihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZChKU0M6OkV4ZWNTdGF0
ZSopOwpAQCAtNTk4LDYgKzYwMCw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJtZXRob2RXaXRoRXhjZXB0aW9u
IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9u
KSwgKGludHB0cl90KSAoMCkgfSwKICAgICB7ICJjdXN0b21NZXRob2QiLCBKU0M6OkZ1bmN0aW9u
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCksIChpbnRwdHJfdCkgKDApIH0sCiAg
ICAgeyAiY3VzdG9tTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykgfSwKKyAgICB7ICJj
dXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc01ldGhvZCksIChp
bnRwdHJfdCkgKDApIH0sCisgICAgeyAiY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0
aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9i
amVjdEdlbmVyYXRlTm9CaW5kaW5nc01ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykgfSwK
ICAgICB7ICJhZGRFdmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25BZGRFdmVudExpc3RlbmVyKSwgKGludHB0cl90KSAoMikgfSwKICAgICB7ICJyZW1vdmVF
dmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVF
dmVudExpc3RlbmVyKSwgKGludHB0cl90KSAoMikgfSwKICAgICB7ICJ3aXRoU2NyaXB0U3RhdGVW
b2lkIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVW
b2lkKSwgKGludHB0cl90KSAoMCkgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBlOTYxMjc4ZjQ3ZjY0NDY5NmYwYjc4ZWE0MDQ0
YTBhODMxZmMxNGM5Li5kODUxMTVmMjRkODMxMDI3YjQ2YzVhNTFjNTI5YThhMGNmNDlmNjliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
CkBAIC0xMDksNiArMTA5LDEwIEBAIGVudW0gX29wdGlvbmFsIHsgIiIsICJPcHRpb25hbFZhbHVl
MSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZhbHVlMyIgfTsKICAgICBbQ3VzdG9tXSB2
b2lkIGN1c3RvbU1ldGhvZCgpOwogICAgIFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kV2l0aEFy
Z3MobG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CiAKKyAg
ICAvLyAnQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzJyBleHRlbmRlZCBhdHRyaWJ1dGUK
KyAgICBbQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzXSB2b2lkIGN1c3RvbU9iamVjdEdl
bmVyYXRlTm9CaW5kaW5nc01ldGhvZCgpOworICAgIFtDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmlu
ZGluZ3NdIHZvaWQgY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kV2l0aEFyZ3Mo
bG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CisKICAgICB2
b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlzdGVu
ZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBi
b29sZWFuIHVzZUNhcHR1cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mb287Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257751</attachid>
            <date>2015-07-29 09:14:13 -0700</date>
            <delta_ts>2015-07-30 03:50:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146593-20150729181249.patch</filename>
            <type>text/plain</type>
            <size>10642</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAwYTY2ZGY3YjMxMTk3
MWE5ZDI1OTE5ZmMyMjBjNjc0NGZhNjI2NS4uZmJjMjQ2YjhkNTIwZGIzYTgyNTU0OGQwM2I2NjA0
OWMwMmViNWUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTA3LTI5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdIGV4dGVuZGVkIElETCBhdHRyaWJ1
dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU5
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgYWRk
ZWQgdGhlIFtDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdIElETCBleHRlbmRlZCBhdHRy
aWJ1dGUuIFRoZSBpZGVhIGlzIHRoYXQgd2hlbiB1c2luZyB0aGlzIGF0dHJpYnV0ZSwKKyAgICAg
ICAgYmluZGluZ3MgZ2VuZXJhdGUgb25seSB0aGUgc2lnbmF0dXJlIG9mIHRoZSBKUyBmdW5jdGlv
bnMgYW5kIHdlIGhhdmUgdG8gaW1wbGVtZW50IGFsbCB0aGUgYWNjZXNzIGluIHRoZQorICAgICAg
ICBDdXN0b20uY3BwIGZpbGVzLCBtZWFuaW5nIGFjY2Vzc2luZyB0aGUgaW1wbGVtZW50YXRpb25z
IGF0IG91ciB3aXNoLgorCisgICAgICAgIEFkZGVkIGN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5k
aW5nc01ldGhvZCwgY3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kV2l0aEFyZ3Mg
dG8gdGhlIGdlbmVyYXRvciB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG06CisgICAgICAgIChTa2lwRnVuY3Rpb24pOiBTa2lwcGVkIFtD
dXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdIG1ldGhvZHMuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6
IENvbnNpZGVyIEN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5ncyBhcyBGb3J3YXJkRGVjbGFy
ZUluSGVhZGVyLgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6IEF2b2lkIHByaW50
aW5nIGJvdGggaGVhZGVyIGFuZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rpb24uCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbToKKyAgICAgICAgKFNr
aXBGdW5jdGlvbik6IFNraXBwZWQgW0N1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc10gbWV0
aG9kcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OiBBZGRl
ZCBbQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzXSBJREwgZXh0ZW5kZWQgYXR0cmlidXRl
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDogQWRkZWQgY3VzdG9tT2Jq
ZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kLAorICAgICAgICBjdXN0b21PYmplY3RHZW5lcmF0
ZU5vQmluZGluZ3NNZXRob2RXaXRoQXJncyBhbmQgdGhlaXIgZXhwZWN0YXRpb25zLgorCiAyMDE1
LTA3LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQg
dW5uZWNlc3NhcmlseSBjb25zdHJ1Y3RpbmcgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyIG9u
IERvY3VtZW50IGRlc3RydWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCA0NDI4NDNkOGUxZmRmNzJh
ODNkMTMyMjUzOGYzNjEyMTc5OTYwNDI0Li4yOTk4Y2JkMzNkMWFlZjU5NDIzYjk2N2E3MjdhODQy
ZGM0Yzg4YzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTI4Myw3ICsyODMsNyBAQCBzdWIgU2tpcEZ1
bmN0aW9uIHsKIAogICAgIG15ICRmdW5jdGlvbk5hbWUgPSAid2Via2l0X2RvbV8iIC4gJGRlY2Ft
ZWxpemUgLiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZSk7CiAgICAgbXkgJGZ1bmN0aW9uUmV0dXJuVHlwZSA9ICRwcmVmaXggZXEgInNldF8iID8g
InZvaWQiIDogJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7Ci0gICAgbXkgJGlzQ3VzdG9tRnVu
Y3Rpb24gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bSJ9OworICAgIG15ICRpc0N1c3RvbUZ1bmN0aW9uID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5ncyJ9OwogICAg
IG15ICRjYWxsV2l0aCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2FsbFdpdGgifTsKICAgICBteSAkaXNVbnN1cHBvcnRlZENhbGxXaXRoID0gJGNvZGVHZW5l
cmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0QXJndW1l
bnRzIikgfHwgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxX
aXRoLCAiQ2FsbFN0YWNrIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYzkzNWQyOWRmNGU5NzY1ODM5ZmFmZDkwMWVj
MGZkNWEzZjllZjgwYi4uNTFhZjdhMTA0Y2ZlZGViZjNlMjM1YWNiNWIwOWU3OGFhYTRiYzliYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KQEAgLTEwOTIsNyArMTA5Miw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGZvcmVh
Y2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgJG51
bUN1c3RvbUZ1bmN0aW9ucysrIGlmIEhhc0N1c3RvbU1ldGhvZCgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKIAotICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVyIn0pIHsKKyAg
ICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9y
d2FyZERlY2xhcmVJbkhlYWRlciJ9IG9yICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzIn0pIHsKICAgICAgICAg
ICAgICRoYXNGb3J3YXJkRGVjbGFyaW5nRnVuY3Rpb25zID0gMTsKICAgICAgICAgfQogICAgIH0K
QEAgLTEyMjUsNyArMTIyNSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCIvLyBGdW5jdGlvbnNcblxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1
bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG5leHQgaWYg
JGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0g
PiAxOwotICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVyIn07CisgICAgICAgICAgICBu
ZXh0IHVubGVzcyAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZv
cndhcmREZWNsYXJlSW5IZWFkZXIifSBvciAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5ncyJ9OwogCiAgICAgICAg
ICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAgICAgICAgIGlmICgkbmVl
ZHNBcHBsZUNvcHlyaWdodCkgewpAQCAtMTI0Niw2ICsxMjQ2LDcgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgICAgIH0KIAogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAkZW5kQXBwbGVD
b3B5cmlnaHQpIGlmICRpbkFwcGxlQ29weXJpZ2h0OworICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCJcbiIpOwogICAgIH0KIAogICAgIGlmICgkaGFzRm9yd2FyZERlY2xhcmluZ0F0dHJpYnV0
ZXMpIHsKQEAgLTE3NDMsNiArMTc0NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsK
ICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJGZ1bmN0
aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJlSW5IZWFkZXIi
fTsKKyAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3MifTsKIAogICAgICAgICAg
ICAgbXkgJG5lZWRzQXBwbGVDb3B5cmlnaHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkFwcGxlQ29weXJpZ2h0In07CiAgICAgICAgICAgICBpZiAoJG5lZWRz
QXBwbGVDb3B5cmlnaHQpIHsKQEAgLTI3NjAsNiArMjc2Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgaWYgKCRudW1GdW5jdGlvbnMgPiAwKSB7CiAgICAgICAgIG15ICRpbkFw
cGxlQ29weXJpZ2h0ID0gMDsKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVy
ZmFjZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5n
cyJ9OwogICAgICAgICAgICAgbXkgJG5lZWRzQXBwbGVDb3B5cmlnaHQgPSAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFwcGxlQ29weXJpZ2h0In07CiAgICAgICAg
ICAgICBpZiAoJG5lZWRzQXBwbGVDb3B5cmlnaHQpIHsKICAgICAgICAgICAgICAgICBpZiAoISRp
bkFwcGxlQ29weXJpZ2h0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQppbmRleCAxODVmZjlhZTYzM2Y5NWY3NzgxMDEwMTU3
NTBkMzJmNWVlOWYwMGMyLi45NTU2MzUyZjIyYzcxYmM5ZjI4YzQ5NjVlMTI3Mzk5YTc1MjAzOTQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JPYmpDLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvck9iakMucG0KQEAgLTUzOCw2ICs1MzgsNyBAQCBzdWIgU2tpcEZ1bmN0aW9uCiAgICAgcmV0
dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPkdldEFycmF5VHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+dHlwZSk7CiAKICAgICByZXR1cm4gMSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBl
cSAiUHJvbWlzZSI7CisgICAgcmV0dXJuIDEgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3MifTsKIAogICAg
IGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKICAgICAgICAg
cmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPkdldFNlcXVlbmNlVHlwZSgkcGFyYW0tPnR5cGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1
dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQKaW5kZXggMDY2MjA1MmMyMzZlNmM2YjljNWQ4ZGVlZTc0MWYxM2E4YTRmMDU3Zi4uNDdkOTU0
NTdiMGQzMDkwYTkzMjE0MjJlYjk5MDY1ZTM3ZTAwNWRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBAIC00OSw2ICs0OSw3IEBA
IEN1c3RvbVB1dEZ1bmN0aW9uCiBDdXN0b21SZXR1cm4KIEN1c3RvbVNldHRlcgogQ3VzdG9tVG9K
U09iamVjdAorQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzCiBEZWZhdWx0PU51bGxTdHJp
bmd8VW5kZWZpbmVkCiBEZWxldGFibGUKIERvTm90Q2hlY2tDb25zdGFudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5k
ZXggNmY3NGRlYTQ5Y2I4YWE3NjhiOTIzNTFiYTk0ZTZkZTRhYjI1YjE2MC4uMTQzNjVhOGMxMTYy
MWFiOTQyNjkzZDI3MjgyODg3Mjg0MDU0MWQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTU5OCw2ICs1OTgs
OCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVW
YWx1ZXNbXSA9CiAgICAgeyAibWV0aG9kV2l0aEV4Y2VwdGlvbiIsIEpTQzo6RnVuY3Rpb24sIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbiksIChpbnRwdHJfdCkgKDApIH0s
CiAgICAgeyAiY3VzdG9tTWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25DdXN0b21NZXRob2QpLCAoaW50cHRyX3QpICgwKSB9LAogICAgIHsgImN1c3RvbU1ldGhvZFdp
dGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RX
aXRoQXJncyksIChpbnRwdHJfdCkgKDMpIH0sCisgICAgeyAiY3VzdG9tT2JqZWN0R2VuZXJhdGVO
b0JpbmRpbmdzTWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0
b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9LAorICAg
IHsgImN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5nc01ldGhvZFdpdGhBcmdzIiwgSlNDOjpG
dW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGlu
Z3NNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMpIH0sCiAgICAgeyAiYWRkRXZlbnRMaXN0
ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5l
ciksIChpbnRwdHJfdCkgKDIpIH0sCiAgICAgeyAicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIEpTQzo6
RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lciksIChpbnRw
dHJfdCkgKDIpIH0sCiAgICAgeyAid2l0aFNjcmlwdFN0YXRlVm9pZCIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZCksIChpbnRwdHJfdCkgKDAp
IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKaW5kZXggYTYwOTU1M2EzMzE0OGI4NGU3MDE1YWNkNzE3YmNjOGNjYTIyNjNhYi4u
ODFiOTYxMmI2NWE5OThmYWI0MjRjZjk3OTE3YTgzNmRjYzlkOWZjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMTAx
LDYgKzEwMSwxMSBAQCBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihE
T01XcmFwcGVyV29ybGQmLCBUZXN0T2JqKikKIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T2JqKik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFRlc3RPYmomIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1w
bCk7IH0KIAorLy8gRnVuY3Rpb25zCisKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5n
c01ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRp
bmdzTWV0aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKKwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
T2JqLmlkbAppbmRleCBlOTYxMjc4ZjQ3ZjY0NDY5NmYwYjc4ZWE0MDQ0YTBhODMxZmMxNGM5Li5k
ODUxMTVmMjRkODMxMDI3YjQ2YzVhNTFjNTI5YThhMGNmNDlmNjliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xMDksNiArMTA5
LDEwIEBAIGVudW0gX29wdGlvbmFsIHsgIiIsICJPcHRpb25hbFZhbHVlMSIsICJPcHRpb25hbFZh
bHVlMiIsICJPcHRpb25hbFZhbHVlMyIgfTsKICAgICBbQ3VzdG9tXSB2b2lkIGN1c3RvbU1ldGhv
ZCgpOwogICAgIFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nQXJn
LCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CiAKKyAgICAvLyAnQ3VzdG9tT2Jq
ZWN0R2VuZXJhdGVOb0JpbmRpbmdzJyBleHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBbQ3VzdG9tT2Jq
ZWN0R2VuZXJhdGVOb0JpbmRpbmdzXSB2b2lkIGN1c3RvbU9iamVjdEdlbmVyYXRlTm9CaW5kaW5n
c01ldGhvZCgpOworICAgIFtDdXN0b21PYmplY3RHZW5lcmF0ZU5vQmluZGluZ3NdIHZvaWQgY3Vz
dG9tT2JqZWN0R2VuZXJhdGVOb0JpbmRpbmdzTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nQXJnLCBE
T01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CisKICAgICB2b2lkIGFkZEV2ZW50TGlz
dGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIG9wdGlvbmFsIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmlu
ZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1
cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mb287Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257830</attachid>
            <date>2015-07-30 03:50:51 -0700</date>
            <delta_ts>2015-07-30 07:15:59 -0700</delta_ts>
            <desc>Patch with [CustomObjectGenerateNoBindings]</desc>
            <filename>bug-146593-20150730125050.patch</filename>
            <type>text/plain</type>
            <size>10212</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJiYTAzNjg1MTc0MGQx
ZDc0MGQzY2E2MWY0ZjA3MDhlYjJlMTIyYi4uMjkzMWMwMTdhNTc0ODJiMjM3ZGI5ZThkZDIyODE4
NmM5MDcyZTE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTA3LTMwICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtDdXN0b21CaW5kaW5nc10gZXh0ZW5kZWQgSURMIGF0dHJpYnV0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTkzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGhlIFtDdXN0b21CaW5k
aW5nc10gSURMIGV4dGVuZGVkIGF0dHJpYnV0ZS4gVGhlIGlkZWEgaXMgdGhhdCB3aGVuIHVzaW5n
IHRoaXMgYXR0cmlidXRlLCBiaW5kaW5ncyBnZW5lcmF0ZQorICAgICAgICBvbmx5IHRoZSBzaWdu
YXR1cmUgb2YgdGhlIEpTIGZ1bmN0aW9ucyBhbmQgd2UgaGF2ZSB0byBpbXBsZW1lbnQgYWxsIHRo
ZSBhY2Nlc3MgaW4gdGhlIEN1c3RvbS5jcHAgZmlsZXMsIG1lYW5pbmcKKyAgICAgICAgYWNjZXNz
aW5nIHRoZSBpbXBsZW1lbnRhdGlvbnMgYXQgb3VyIHdpc2guCisKKyAgICAgICAgQWRkZWQgY3Vz
dG9tQmluZGluZ3NNZXRob2QsIGN1c3RvbUJpbmRpbmdzTWV0aG9kV2l0aEFyZ3MgdG8gdGhlIGdl
bmVyYXRvciB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG06CisgICAgICAgIChTa2lwRnVuY3Rpb24pOiBTa2lwcGVkIFtDdXN0b21CaW5k
aW5nc10gbWV0aG9kcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKTogQ29uc2lkZXIgQ3VzdG9tQmluZGluZ3Mg
YXMgRm9yd2FyZERlY2xhcmVJbkhlYWRlci4KKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRp
b24pOiBBdm9pZCBwcmludGluZyBib3RoIGhlYWRlciBhbmQgaW1wbGVtZW50YXRpb24gb2YgdGhl
IGZ1bmN0aW9uLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMu
cG06CisgICAgICAgIChTa2lwRnVuY3Rpb24pOiBTa2lwcGVkIFtDdXN0b21CaW5kaW5nc10gbWV0
aG9kcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OiBBZGRl
ZCBbQ3VzdG9tQmluZGluZ3NdIElETCBleHRlbmRlZCBhdHRyaWJ1dGUuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCBjdXN0b21CaW5kaW5nc01ldGhvZCwgY3Vz
dG9tQmluZGluZ3NNZXRob2RXaXRoQXJncyBhbmQgdGhlaXIKKyAgICAgICAgZXhwZWN0YXRpb25z
LgorCiAyMDE1LTA3LTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBQYXN0ZSBkYXRhIGlzIHJlbW92ZWQgZnJvbSBjbGlwYm9hcmQg
d2hlbiBjbG9zaW5nIGJyb3dzZXIgdGFiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCA0NDI4NDNkOGUxZmRm
NzJhODNkMTMyMjUzOGYzNjEyMTc5OTYwNDI0Li41NzU1NWQ5NWE5MjVmZmI0MDU4MjI4ODYzMjVm
YjVhMjI1MzQ3MzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTI4Myw3ICsyODMsNyBAQCBzdWIgU2tp
cEZ1bmN0aW9uIHsKIAogICAgIG15ICRmdW5jdGlvbk5hbWUgPSAid2Via2l0X2RvbV8iIC4gJGRl
Y2FtZWxpemUgLiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZSk7CiAgICAgbXkgJGZ1bmN0aW9uUmV0dXJuVHlwZSA9ICRwcmVmaXggZXEgInNldF8i
ID8gInZvaWQiIDogJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7Ci0gICAgbXkgJGlzQ3VzdG9t
RnVuY3Rpb24gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbSJ9OworICAgIG15ICRpc0N1c3RvbUZ1bmN0aW9uID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUJpbmRpbmdzIn07CiAgICAgbXkgJGNhbGxXaXRo
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9
OwogICAgIG15ICRpc1Vuc3VwcG9ydGVkQ2FsbFdpdGggPSAkY29kZUdlbmVyYXRvci0+RXh0ZW5k
ZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJTY3JpcHRBcmd1bWVudHMiKSB8fCAkY29k
ZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJDYWxsU3Rh
Y2siKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQppbmRleCBjOTM1ZDI5ZGY0ZTk3NjU4MzlmYWZkOTAxZWMwZmQ1YTNmOWVmODBi
Li42YzgxMmZlZDlmYWE3YjdjMDI1ZTYwNDVlODU2ZWEyNTdhMTY0NGQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTA5
Miw3ICsxMDkyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgZm9yZWFjaCBteSAkZnVuY3Rp
b24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAkbnVtQ3VzdG9tRnVuY3Rp
b25zKysgaWYgSGFzQ3VzdG9tTWV0aG9kKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMpOwogCi0gICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJlSW5IZWFkZXIifSkgeworICAgICAgICBpZiAoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUlu
SGVhZGVyIn0gb3IgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21CaW5kaW5ncyJ9KSB7CiAgICAgICAgICAgICAkaGFzRm9yd2FyZERlY2xhcmluZ0Z1bmN0
aW9ucyA9IDE7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjI1LDcgKzEyMjUsNyBAQCBzdWIgR2Vu
ZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwiLy8gRnVuY3Rpb25zXG5c
biIpOwogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlv
bnN9KSB7CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ICYm
ICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID4gMTsKLSAgICAgICAgICAgIG5leHQgdW5sZXNz
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xh
cmVJbkhlYWRlciJ9OworICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVyIn0gb3IgJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21CaW5kaW5ncyJ9
OwogCiAgICAgICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAgICAg
ICAgIGlmICgkbmVlZHNBcHBsZUNvcHlyaWdodCkgewpAQCAtMTI0Niw2ICsxMjQ2LDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KIAogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAkZW5kQXBwbGVDb3B5cmlnaHQpIGlmICRpbkFwcGxlQ29weXJpZ2h0OworICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCJcbiIpOwogICAgIH0KIAogICAgIGlmICgkaGFzRm9yd2FyZERlY2xh
cmluZ0F0dHJpYnV0ZXMpIHsKQEAgLTE3NDMsNiArMTc0NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1
bmN0aW9uc30pIHsKICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRl
eH0gJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwogICAgICAgICAgICAgbmV4dCBp
ZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNs
YXJlSW5IZWFkZXIifTsKKyAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21CaW5kaW5ncyJ9OwogCiAgICAgICAgICAgICBt
eSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAgICAgICAgIGlmICgkbmVlZHNBcHBs
ZUNvcHlyaWdodCkgewpAQCAtMjc2MCw2ICsyNzYyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICBpZiAoJG51bUZ1bmN0aW9ucyA+IDApIHsKICAgICAgICAgbXkgJGluQXBwbGVD
b3B5cmlnaHQgPSAwOwogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNl
LT5mdW5jdGlvbnN9KSB7CisgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQmluZGluZ3MifTsKICAgICAgICAgICAgIG15
ICRuZWVkc0FwcGxlQ29weXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJBcHBsZUNvcHlyaWdodCJ9OwogICAgICAgICAgICAgaWYgKCRuZWVkc0FwcGxl
Q29weXJpZ2h0KSB7CiAgICAgICAgICAgICAgICAgaWYgKCEkaW5BcHBsZUNvcHlyaWdodCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
T2JqQy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9i
akMucG0KaW5kZXggMTg1ZmY5YWU2MzNmOTVmNzc4MTAxMDE1NzUwZDMyZjVlZTlmMDBjMi4uMDA0
YjFjNDZlNzMzZmQ5YjA2YzYxNTA1Y2Q0OTZiYTdhOTRiOTA1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBAIC01Mzgs
NiArNTM4LDcgQEAgc3ViIFNraXBGdW5jdGlvbgogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJh
dG9yLT5HZXRBcnJheVR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwogCiAgICAgcmV0
dXJuIDEgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgIlByb21pc2UiOworICAgIHJl
dHVybiAxIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tQmluZGluZ3MifTsKIAogICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFy
YW1ldGVyc30pIHsKICAgICAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPkdldFNlcXVl
bmNlVHlwZSgkcGFyYW0tPnR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggMDY2MjA1MmMyMzZlNmM2YjljNWQ4ZGVlZTc0
MWYxM2E4YTRmMDU3Zi4uNWZhNjZkNzEwMzc5OTg3MjM2NWNhNjUwMDI0MjhhNDAzYzZhNmJmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMu
dHh0CkBAIC0zNCw2ICszNCw3IEBAIENvbnN0cnVjdG9yQ29uZGl0aW9uYWw9KgogQ29uc3RydWN0
b3JSYWlzZXNFeGNlcHRpb24KIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnR8VHlwZWRBcnJheQog
Q3VzdG9tCitDdXN0b21CaW5kaW5ncwogQ3VzdG9tQ2FsbAogQ3VzdG9tQ29uc3RydWN0b3IKIEN1
c3RvbURlbGV0ZVByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDZmNzRkZWE0OWNiOGFhNzY4YjkyMzUx
YmE5NGU2ZGU0YWIyNWIxNjAuLjg2NGU4MzA0OWExMDZmN2MzY2UyZDdjZTU2ZjBmYzRjMDkzMTZm
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCkBAIC01OTgsNiArNTk4LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIm1ldGhvZFdp
dGhFeGNlcHRpb24iLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb24pLCAoaW50cHRyX3QpICgwKSB9LAogICAgIHsgImN1c3RvbU1ldGhvZCIsIEpT
Qzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKSwgKGludHB0cl90
KSAoMCkgfSwKICAgICB7ICJjdXN0b21NZXRob2RXaXRoQXJncyIsIEpTQzo6RnVuY3Rpb24sIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9
LAorICAgIHsgImN1c3RvbUJpbmRpbmdzTWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DdXN0b21CaW5kaW5nc01ldGhvZCksIChpbnRwdHJfdCkgKDApIH0sCisgICAg
eyAiY3VzdG9tQmluZGluZ3NNZXRob2RXaXRoQXJncyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmlu
c2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ3NNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMp
IH0sCiAgICAgeyAiYWRkRXZlbnRMaXN0ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIpIH0sCiAgICAgeyAicmVt
b3ZlRXZlbnRMaXN0ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVt
b3ZlRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIpIH0sCiAgICAgeyAid2l0aFNjcmlwdFN0
YXRlVm9pZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0
YXRlVm9pZCksIChpbnRwdHJfdCkgKDApIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggYTYwOTU1M2EzMzE0OGI4NGU3
MDE1YWNkNzE3YmNjOGNjYTIyNjNhYi4uZDhjNmI2MjIwN2U3ZjZkNjlmODg5MWUwODJmZjZiNGFm
YmNmMzc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaApAQCAtMTAxLDYgKzEwMSwxMSBAQCBpbmxpbmUgSlNDOjpXZWFrSGFu
ZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0T2JqKikKIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T2Jq
Kik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPYmomIGltcGwpIHsgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH0KIAorLy8gRnVuY3Rpb25zCisKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3Rv
bUJpbmRpbmdzTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21CaW5kaW5nc01ldGhv
ZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CisKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwK
aW5kZXggZTk2MTI3OGY0N2Y2NDQ2OTZmMGI3OGVhNDA0NGEwYTgzMWZjMTRjOS4uNTNmMDNmMjcy
NGFiYzhjNzc4MjdkM2YwMzg0YTAzYjlmY2M1MzMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMTA5LDYgKzEwOSwxMCBAQCBl
bnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiT3B0aW9uYWxWYWx1ZTIiLCAi
T3B0aW9uYWxWYWx1ZTMiIH07CiAgICAgW0N1c3RvbV0gdm9pZCBjdXN0b21NZXRob2QoKTsKICAg
ICBbQ3VzdG9tXSB2b2lkIGN1c3RvbU1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZ0FyZywgRE9NU3Ry
aW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOwogCisgICAgLy8gJ0N1c3RvbUJpbmRpbmdzJyBl
eHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBbQ3VzdG9tQmluZGluZ3NdIHZvaWQgY3VzdG9tQmluZGlu
Z3NNZXRob2QoKTsKKyAgICBbQ3VzdG9tQmluZGluZ3NdIHZvaWQgY3VzdG9tQmluZGluZ3NNZXRo
b2RXaXRoQXJncyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcsIFRlc3RPYmogb2JqQXJn
KTsKKwogICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0
ZW5lciBsaXN0ZW5lciwgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICB2b2lkIHJl
bW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIs
IG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbmZvbzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257831</attachid>
            <date>2015-07-30 07:16:12 -0700</date>
            <delta_ts>2015-08-07 01:15:29 -0700</delta_ts>
            <desc>Patch with [CustomObjectGenerateNoBindings]</desc>
            <filename>bug-146593-20150730161609.patch</filename>
            <type>text/plain</type>
            <size>10184</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJiYTAzNjg1MTc0MGQx
ZDc0MGQzY2E2MWY0ZjA3MDhlYjJlMTIyYi4uY2IyODgyODgzMzNjNDA2MTk5MTViOWU0MTkyMjM0
YjFjNzkzYWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTA3LTMwICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ3Jl
YXRlIFtDdXN0b21CaW5kaW5nXSBleHRlbmRlZCBJREwgYXR0cmlidXRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1OTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgW0N1c3RvbUJpbmRp
bmddIElETCBleHRlbmRlZCBhdHRyaWJ1dGUuIFRoZSBpZGVhIGlzIHRoYXQgd2hlbiB1c2luZyB0
aGlzIGF0dHJpYnV0ZSwgYmluZGluZ3MgZ2VuZXJhdGUKKyAgICAgICAgb25seSB0aGUgc2lnbmF0
dXJlIG9mIHRoZSBKUyBmdW5jdGlvbnMgYW5kIHdlIGhhdmUgdG8gaW1wbGVtZW50IGFsbCB0aGUg
YWNjZXNzIGluIHRoZSBDdXN0b20uY3BwIGZpbGVzLCBtZWFuaW5nCisgICAgICAgIGFjY2Vzc2lu
ZyB0aGUgaW1wbGVtZW50YXRpb25zIGF0IG91ciB3aXNoLgorCisgICAgICAgIEFkZGVkIGN1c3Rv
bUJpbmRpbmdNZXRob2QsIGN1c3RvbUJpbmRpbmdNZXRob2RXaXRoQXJncyB0byB0aGUgZ2VuZXJh
dG9yIHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09i
amVjdC5wbToKKyAgICAgICAgKFNraXBGdW5jdGlvbik6IFNraXBwZWQgW0N1c3RvbUJpbmRpbmdd
IG1ldGhvZHMuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6IENvbnNpZGVyIEN1c3RvbUJpbmRpbmcgYXMgRm9y
d2FyZERlY2xhcmVJbkhlYWRlci4KKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBB
dm9pZCBwcmludGluZyBib3RoIGhlYWRlciBhbmQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGZ1bmN0
aW9uLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06Cisg
ICAgICAgIChTa2lwRnVuY3Rpb24pOiBTa2lwcGVkIFtDdXN0b21CaW5kaW5nXSBtZXRob2RzLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6IEFkZGVkIFtDdXN0
b21CaW5kaW5nXSBJREwgZXh0ZW5kZWQgYXR0cmlidXRlLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbDogQWRkZWQgY3VzdG9tQmluZGluZ01ldGhvZCwgY3VzdG9tQmluZGlu
Z01ldGhvZFdpdGhBcmdzIGFuZCB0aGVpcgorICAgICAgICBleHBlY3RhdGlvbnMuCisKIDIwMTUt
MDctMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIFBhc3RlIGRhdGEgaXMgcmVtb3ZlZCBmcm9tIGNsaXBib2FyZCB3aGVuIGNsb3Np
bmcgYnJvd3NlciB0YWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IDQ0Mjg0M2Q4ZTFmZGY3MmE4M2QxMzIy
NTM4ZjM2MTIxNzk5NjA0MjQuLmMzNDY3NzYzZGQwZDE4YTJmMWRkNTJmNDkxOTYxYzYyN2YwYWUy
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yR09iamVjdC5wbQpAQCAtMjgzLDcgKzI4Myw3IEBAIHN1YiBTa2lwRnVuY3Rpb24g
ewogCiAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICJ3ZWJraXRfZG9tXyIgLiAkZGVjYW1lbGl6ZSAu
ICJfIiAuICRwcmVmaXggLiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsK
ICAgICBteSAkZnVuY3Rpb25SZXR1cm5UeXBlID0gJHByZWZpeCBlcSAic2V0XyIgPyAidm9pZCIg
OiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZTsKLSAgICBteSAkaXNDdXN0b21GdW5jdGlvbiA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07Cisg
ICAgbXkgJGlzQ3VzdG9tRnVuY3Rpb24gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tQmluZGluZyJ9OwogICAgIG15ICRjYWxsV2l0aCA9ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsKICAgICBteSAk
aXNVbnN1cHBvcnRlZENhbGxXaXRoID0gJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRl
Q29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0QXJndW1lbnRzIikgfHwgJGNvZGVHZW5lcmF0b3It
PkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiQ2FsbFN0YWNrIik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
aW5kZXggYzkzNWQyOWRmNGU5NzY1ODM5ZmFmZDkwMWVjMGZkNWEzZjllZjgwYi4uZTY0Y2IxYzRl
OTA3OTA2NDhjNGU5NDgyZjg3NTJkZThhMTRlODgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTEwOTIsNyArMTA5Miw3
IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRl
cmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgJG51bUN1c3RvbUZ1bmN0aW9ucysrIGlmIEhh
c0N1c3RvbU1ldGhvZCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKTsK
IAotICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVyIn0pIHsKKyAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhlYWRlciJ9IG9y
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQmluZGlu
ZyJ9KSB7CiAgICAgICAgICAgICAkaGFzRm9yd2FyZERlY2xhcmluZ0Z1bmN0aW9ucyA9IDE7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0xMjI1LDcgKzEyMjUsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwiLy8gRnVuY3Rpb25zXG5cbiIpOwogICAgICAg
ICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAg
ICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ICYmICRmdW5jdGlvbi0+
e292ZXJsb2FkSW5kZXh9ID4gMTsKLSAgICAgICAgICAgIG5leHQgdW5sZXNzICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhlYWRlciJ9
OworICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVyIn0gb3IgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21CaW5kaW5nIn07CiAKICAgICAgICAg
ICAgIG15ICRuZWVkc0FwcGxlQ29weXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJBcHBsZUNvcHlyaWdodCJ9OwogICAgICAgICAgICAgaWYgKCRuZWVk
c0FwcGxlQ29weXJpZ2h0KSB7CkBAIC0xMjQ2LDYgKzEyNDYsNyBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKICAgICAgICAgfQogCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICRlbmRBcHBsZUNv
cHlyaWdodCkgaWYgJGluQXBwbGVDb3B5cmlnaHQ7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsIlxuIik7CiAgICAgfQogCiAgICAgaWYgKCRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRl
cykgewpAQCAtMTc0Myw2ICsxNzQ0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewog
ICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSAmJiAkZnVuY3Rp
b24tPntvdmVybG9hZEluZGV4fSA+IDE7CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhlYWRlciJ9
OworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUJpbmRpbmcifTsKIAogICAgICAgICAgICAgbXkgJG5lZWRzQXBwbGVD
b3B5cmlnaHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFw
cGxlQ29weXJpZ2h0In07CiAgICAgICAgICAgICBpZiAoJG5lZWRzQXBwbGVDb3B5cmlnaHQpIHsK
QEAgLTI3NjAsNiArMjc2Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgaWYg
KCRudW1GdW5jdGlvbnMgPiAwKSB7CiAgICAgICAgIG15ICRpbkFwcGxlQ29weXJpZ2h0ID0gMDsK
ICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkg
eworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUJpbmRpbmcifTsKICAgICAgICAgICAgIG15ICRuZWVkc0FwcGxlQ29w
eXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBcHBs
ZUNvcHlyaWdodCJ9OwogICAgICAgICAgICAgaWYgKCRuZWVkc0FwcGxlQ29weXJpZ2h0KSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCEkaW5BcHBsZUNvcHlyaWdodCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggMTg1
ZmY5YWU2MzNmOTVmNzc4MTAxMDE1NzUwZDMyZjVlZTlmMDBjMi4uMmM4YzYxZWU4OWNiZTQyZmNm
N2JjMDk5MzEwZDRjZTRhMjQ3ZDIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBAIC01MzgsNiArNTM4LDcgQEAgc3Vi
IFNraXBGdW5jdGlvbgogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheVR5
cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwogCiAgICAgcmV0dXJuIDEgaWYgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgIlByb21pc2UiOworICAgIHJldHVybiAxIGlmICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQmluZGluZyJ9Owog
CiAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewogICAg
ICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+R2V0U2VxdWVuY2VUeXBlKCRwYXJhbS0+
dHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1
dGVzLnR4dAppbmRleCAwNjYyMDUyYzIzNmU2YzZiOWM1ZDhkZWVlNzQxZjEzYThhNGYwNTdmLi4w
YWNjNDEzYTg0YjRjZDI1OGIyZjEzOTVmYzFhYTY2YWNmN2Q5NmIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTM0LDYgKzM0
LDcgQEAgQ29uc3RydWN0b3JDb25kaXRpb25hbD0qCiBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlv
bgogQ29uc3RydWN0b3JUZW1wbGF0ZT1FdmVudHxUeXBlZEFycmF5CiBDdXN0b20KK0N1c3RvbUJp
bmRpbmcKIEN1c3RvbUNhbGwKIEN1c3RvbUNvbnN0cnVjdG9yCiBDdXN0b21EZWxldGVQcm9wZXJ0
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAppbmRleCA2Zjc0ZGVhNDljYjhhYTc2OGI5MjM1MWJhOTRlNmRlNGFiMjViMTYw
Li5jODUyNDMyNDllYjcxZDZjZTIyMjA5ZTI2NjdjZjI0NGZhNWU1NTMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApA
QCAtNTk4LDYgKzU5OCw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQ
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJtZXRob2RXaXRoRXhjZXB0aW9uIiwgSlND
OjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKSwgKGlu
dHB0cl90KSAoMCkgfSwKICAgICB7ICJjdXN0b21NZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCksIChpbnRwdHJfdCkgKDApIH0sCiAgICAgeyAi
Y3VzdG9tTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkN1c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykgfSwKKyAgICB7ICJjdXN0b21C
aW5kaW5nTWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21C
aW5kaW5nTWV0aG9kKSwgKGludHB0cl90KSAoMCkgfSwKKyAgICB7ICJjdXN0b21CaW5kaW5nTWV0
aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUJp
bmRpbmdNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMpIH0sCiAgICAgeyAiYWRkRXZlbnRM
aXN0ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0
ZW5lciksIChpbnRwdHJfdCkgKDIpIH0sCiAgICAgeyAicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIEpT
Qzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lciksIChp
bnRwdHJfdCkgKDIpIH0sCiAgICAgeyAid2l0aFNjcmlwdFN0YXRlVm9pZCIsIEpTQzo6RnVuY3Rp
b24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZCksIChpbnRwdHJfdCkg
KDApIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmgKaW5kZXggYTYwOTU1M2EzMzE0OGI4NGU3MDE1YWNkNzE3YmNjOGNjYTIyNjNh
Yi4uOWZjZGQ0YjUwNWZiYjFjODU0MDVlMjc3YWFiM2E5YmM3NWRkMGY5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAt
MTAxLDYgKzEwMSwxMSBAQCBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25l
cihET01XcmFwcGVyV29ybGQmLCBUZXN0T2JqKikKIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T2JqKik7CiBpbmxpbmUgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRlc3RPYmomIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAm
aW1wbCk7IH0KIAorLy8gRnVuY3Rpb25zCisKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUJpbmRpbmdNZXRob2QoSlNDOjpF
eGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbUJpbmRpbmdNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0
ZSopOworCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGU5NjEyNzhmNDdmNjQ0Njk2
ZjBiNzhlYTQwNDRhMGE4MzFmYzE0YzkuLmQ2YTg0ODMwOTdhOTVkNWM5MzMyOGIyNjgwY2NhYjNj
ZGExZGI2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwKQEAgLTEwOSw2ICsxMDksMTAgQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9w
dGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAg
IFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kKCk7CiAgICAgW0N1c3RvbV0gdm9pZCBjdXN0b21N
ZXRob2RXaXRoQXJncyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcsIFRlc3RPYmogb2Jq
QXJnKTsKIAorICAgIC8vICdDdXN0b21CaW5kaW5nJyBleHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBb
Q3VzdG9tQmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0aG9kKCk7CisgICAgW0N1c3RvbUJp
bmRpbmddIHZvaWQgY3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZ0FyZywgRE9N
U3RyaW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOworCiAgICAgdm9pZCBhZGRFdmVudExpc3Rl
bmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBib29s
ZWFuIHVzZUNhcHR1cmUpOwogICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihET01TdHJpbmcg
dHlwZSwgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJl
KTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZm9vOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>