<?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>109258</bug_id>
          
          <creation_ts>2013-02-07 22:08:25 -0800</creation_ts>
          <short_desc>Web Inspector: [CSS Regions] InspectorCSSAgent::getMatchedStylesForNode should consider CSS region styles.</short_desc>
          <delta_ts>2022-06-23 13:29:46 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174978</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122760</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Takashi Sakamoto">tasak</reporter>
          <assigned_to name="Takashi Sakamoto">tasak</assigned_to>
          <cc>achicu</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>apavlov</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>graouts</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rniwa</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828194</commentid>
    <comment_count>0</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-02-07 22:08:25 -0800</bug_when>
    <thetext>InspectorCSSAgent::getMatchedStylesForNode collects all matched styles for a given node.
However, the method doesn&apos;t provide any render region parameter for StyleResolver.

Writing in detail,
- Whether any CSS region styles are obtained or not depends on just StyleResolver&apos;s internal state: m_regionForStyling.
- m_regionForStyling is updated in StyleResolver::styleForElement by using a given region parameter.
- Only RenderRegion::computeStyleInRegion uses styleForElement with a region parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828198</commentid>
    <comment_count>1</comment_count>
      <attachid>187238</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-02-07 22:16:42 -0800</bug_when>
    <thetext>Created attachment 187238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828357</commentid>
    <comment_count>2</comment_count>
      <attachid>187238</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-08 02:19:58 -0800</bug_when>
    <thetext>Comment on attachment 187238
Patch

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

Thanks for this patch! Informally, LGTM :). I&apos;ve added a few comments.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:691
&gt; +        RenderFlowThread* flowThread = element-&gt;renderer()-&gt;enclosingRenderFlowThread();

I would ASSERT flowThread is not-null here. If the inRenderFlowThread bit is set, there should be an enclosingRenderFlowThread available.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:699
&gt; +    RefPtr&lt;CSSRuleList&gt; matchedRules = styleResolver-&gt;styleRulesForElement(element, StyleResolver::AllCSSRules, regionList);

So this basically means that we will show all the region style matching rules for the element alongside the rest of the matching rules? I wonder if this can be confusing for the users reading the matching rules list. There could be conflicting rules in the list that don&apos;t even apply because the element doesn&apos;t flow in the appropriate region of the chain. Another option would be to show only the matching rules for the regions in the region range for that element. The problem is we have this range computed only for blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828405</commentid>
    <comment_count>3</comment_count>
      <attachid>187238</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-08 03:52:31 -0800</bug_when>
    <thetext>Comment on attachment 187238
Patch

Attachment 187238 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16432604

New failing tests:
compositing/absolute-inside-out-of-view-fixed.html
animations/3d/matrix-transform-type-animation.html
accessibility/accessibility-node-memory-management.html
canvas/philip/tests/2d.canvas.reference.html
animations/additive-transform-animations.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828411</commentid>
    <comment_count>4</comment_count>
      <attachid>187238</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-08 04:04:51 -0800</bug_when>
    <thetext>Comment on attachment 187238
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:2096
&gt; +void StyleResolver::collectRulesForStyleRulesForElement(unsigned rulesToInclude, RenderRegion* regionForStyling)

Should it be &quot;collectStyleRulesForElement&quot; instead?

&gt;&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:699
&gt;&gt; +    RefPtr&lt;CSSRuleList&gt; matchedRules = styleResolver-&gt;styleRulesForElement(element, StyleResolver::AllCSSRules, regionList);
&gt; 
&gt; So this basically means that we will show all the region style matching rules for the element alongside the rest of the matching rules? I wonder if this can be confusing for the users reading the matching rules list. There could be conflicting rules in the list that don&apos;t even apply because the element doesn&apos;t flow in the appropriate region of the chain. Another option would be to show only the matching rules for the regions in the region range for that element. The problem is we have this range computed only for blocks.

Agree with Andrei - this will result in the users&apos; confusion. Any further ideas about how to visually represent the data? Ideally, I believe, there should be some API extension - either a boolean flag to this method or an entirely new method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830640</commentid>
    <comment_count>5</comment_count>
      <attachid>187790</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-02-12 00:19:33 -0800</bug_when>
    <thetext>Created attachment 187790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830733</commentid>
    <comment_count>6</comment_count>
      <attachid>187818</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-02-12 02:45:24 -0800</bug_when>
    <thetext>Created attachment 187818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830734</commentid>
    <comment_count>7</comment_count>
      <attachid>187238</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-02-12 02:48:49 -0800</bug_when>
    <thetext>Comment on attachment 187238
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:2096
&gt;&gt; +void StyleResolver::collectRulesForStyleRulesForElement(unsigned rulesToInclude, RenderRegion* regionForStyling)
&gt; 
&gt; Should it be &quot;collectStyleRulesForElement&quot; instead?

I see. Done.

&gt;&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:691
&gt;&gt; +        RenderFlowThread* flowThread = element-&gt;renderer()-&gt;enclosingRenderFlowThread();
&gt; 
&gt; I would ASSERT flowThread is not-null here. If the inRenderFlowThread bit is set, there should be an enclosingRenderFlowThread available.

Done.

&gt;&gt;&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:699
&gt;&gt;&gt; +    RefPtr&lt;CSSRuleList&gt; matchedRules = styleResolver-&gt;styleRulesForElement(element, StyleResolver::AllCSSRules, regionList);
&gt;&gt; 
&gt;&gt; So this basically means that we will show all the region style matching rules for the element alongside the rest of the matching rules? I wonder if this can be confusing for the users reading the matching rules list. There could be conflicting rules in the list that don&apos;t even apply because the element doesn&apos;t flow in the appropriate region of the chain. Another option would be to show only the matching rules for the regions in the region range for that element. The problem is we have this range computed only for blocks.
&gt; 
&gt; Agree with Andrei - this will result in the users&apos; confusion. Any further ideas about how to visually represent the data? Ideally, I believe, there should be some API extension - either a boolean flag to this method or an entirely new method.

Yes, this new styleRulesForElement collects all the region style matching rules for the element alongside the rest of the matching rules. We will show all the region style matching rules.
So I tried &quot;a boolean flag to this method&quot;, i.e. added includeRegion to getMatchedStylesForNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830736</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 02:49:23 -0800</bug_when>
    <thetext>Attachment 187818 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/inspector/styles/get-set-stylesheet-text.html&apos;, u&apos;LayoutTests/inspector/styles/styles-new-API.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.h&apos;, u&apos;Source/WebCore/inspector/Inspector.json&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.h&apos;, u&apos;Source/WebCore/inspector/front-end/CSSStyleModel.js&apos;]&quot; exit_code: 1
Source/WebCore/inspector/InspectorCSSAgent.h:111:  The parameter name &quot;pseudoIdMatches&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831149</commentid>
    <comment_count>9</comment_count>
      <attachid>187818</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-12 12:20:30 -0800</bug_when>
    <thetext>Comment on attachment 187818
Patch

Attachment 187818 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16513362

New failing tests:
inspector/styles/region-style-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831717</commentid>
    <comment_count>10</comment_count>
      <attachid>187818</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 01:08:40 -0800</bug_when>
    <thetext>Comment on attachment 187818
Patch

Attachment 187818 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16537016

New failing tests:
inspector/styles/region-style-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832980</commentid>
    <comment_count>11</comment_count>
      <attachid>187818</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-14 05:01:25 -0800</bug_when>
    <thetext>Comment on attachment 187818
Patch

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

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:698
&gt; +#endif

#else
  UNUSED_PARAM(includeRegion);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835921</commentid>
    <comment_count>12</comment_count>
      <attachid>188979</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-02-18 20:49:04 -0800</bug_when>
    <thetext>Created attachment 188979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835922</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 20:54:12 -0800</bug_when>
    <thetext>Attachment 188979 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/inspector/styles/get-set-stylesheet-text.html&apos;, u&apos;LayoutTests/inspector/styles/styles-new-API.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.h&apos;, u&apos;Source/WebCore/inspector/Inspector.json&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.h&apos;, u&apos;Source/WebCore/inspector/front-end/CSSStyleModel.js&apos;]&quot; exit_code: 1
Source/WebCore/inspector/InspectorCSSAgent.h:113:  The parameter name &quot;pseudoIdMatches&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835923</commentid>
    <comment_count>14</comment_count>
      <attachid>187818</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-02-18 20:55:11 -0800</bug_when>
    <thetext>Comment on attachment 187818
Patch

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

Thank you for reviewing.

I would like to ask how to test this change. Currently I disabled CSS region support in Source/WebCore/inspector/front-end/CSSStyleModel.js, i.e. needRegion is always false.
So no layout test can check whether inspector can obtain matched region styles or not. Should I add one more parameter to getMatchedStylesAsync and change all js and html that use getMatchedStylesAsync?

&gt;&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:698
&gt;&gt; +#endif
&gt; 
&gt; #else
&gt;   UNUSED_PARAM(includeRegion);

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890494</commentid>
    <comment_count>15</comment_count>
      <attachid>188979</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-05-17 10:04:07 -0700</bug_when>
    <thetext>Comment on attachment 188979
Patch

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

Thanks for working on this patch!

&gt; Source/WebCore/ChangeLog:12
&gt; +        getMatchedStyleForNode should provide a RenderRegionList, which is
&gt; +        obtained from a given node&apos;s render flow thread, for StyleResolver.
&gt; +        Without this, whether StyleResolver returns CSS region styles or not
&gt; +        depends on its internal state: regionForStyling. This would probably
&gt; +        make region-style-crash layout test fail or flaky.

I think regionForStyling is reset in the clear() method. Do you have a crash for it? Maybe we should fix just that first.

&gt; Source/WebCore/ChangeLog:14
&gt; +        No new tests. CSSStyleMode.js always disables obtaining matched region

Why not add a test to check the collected rules?

&gt; Source/WebCore/css/StyleResolver.cpp:2062
&gt; +    if (regionList) {

Looks like this part changed recently. There&apos;s an ElementRuleCollector allocated on the stack now.

&gt; Source/WebCore/css/StyleResolver.h:237
&gt; +    PassRefPtr&lt;CSSRuleList&gt; pseudoStyleRulesForElement(Element*, PseudoId, unsigned rulesToInclude = AllButEmptyCSSRules, const RenderRegionList* regionListForStyling = 0);

I think pseudo styles are not supported in the region styling @rules. For example, I don&apos;t think that :hover would work with region styling at the moment.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:729
&gt; +#if ENABLE(CSS_REGIONS)

You should not need the ENABLE(CSS_REGIONS) flag. It&apos;s only used when parsing CSS properties related to regions.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:731
&gt; +        if (element-&gt;renderer() &amp;&amp; element-&gt;renderer()-&gt;inRenderFlowThread()) {

In this case renderer()-&gt;inRenderFlowThread() changed to &quot;renderer()-&gt;flowThreadState() == RenderObject::InsideOutOfFlowThread&quot;.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:732
&gt; +            RenderFlowThread* flowThread = element-&gt;renderer()-&gt;enclosingRenderFlowThread();

enclosingRenderFlowThread becomes locateFlowThreadContainingBlock

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:751
&gt; +

nit: remove empty lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890527</commentid>
    <comment_count>16</comment_count>
      <attachid>188979</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-05-17 11:17:35 -0700</bug_when>
    <thetext>Comment on attachment 188979
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:2412
&gt; +                    { &quot;name&quot;: &quot;includeInherited&quot;, &quot;type&quot;: &quot;boolean&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Whether to include inherited styles (default: true).&quot; },
&gt; +                    { &quot;name&quot;: &quot;includeRegion&quot;, &quot;type&quot;: &quot;boolean&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Whether to include region styles (default: true).&quot; }

The other optional flags control different results that get passed to the callback. The includeRegion flag does not trigger another parameter in the callback, it just includes region rules in the existing matched lists (I think…)

Why does this need to be an option? Why would you want to pass false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026557</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-08-03 18:41:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/17898290&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877788</commentid>
    <comment_count>18</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-06-23 13:22:24 -0700</bug_when>
    <thetext>CSS Regions was removed from WebKit. No need for Web Inspector support.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187238</attachid>
            <date>2013-02-07 22:16:42 -0800</date>
            <delta_ts>2013-02-12 02:48:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109258-20130208151317.patch</filename>
            <type>text/plain</type>
            <size>7994</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjNTcwNGVkNWU2Yjk3
NGJkZWEzMzRhMzZmODExZGQzZTdmNGNjOC4uMmM1YjU4MWE4MmVhM2QxNTQ3NjMyNzZlOWRkODUz
NmQwZTFkOWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTA3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBbQ1NTIFJlZ2lvbnNdIEluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9k
ZSBzaG91bGQgY29uc2lkZXIgQ1NTIHJlZ2lvbiBzdHlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyNTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRNYXRjaGVkU3R5bGVGb3JOb2RlIHNob3Vs
ZCBwcm92aWRlIGEgUmVuZGVyUmVnaW9uTGlzdCwgd2hpY2ggaXMKKyAgICAgICAgb2J0YWluZWQg
ZnJvbSBhIGdpdmVuIG5vZGUncyByZW5kZXIgZmxvdyB0aHJlYWQsIGZvciBTdHlsZVJlc29sdmVy
LgorICAgICAgICBXaXRob3V0IHRoaXMsIHdoZXRoZXIgU3R5bGVSZXNvbHZlciByZXR1cm5zIENT
UyByZWdpb24gc3R5bGVzIG9yIG5vdAorICAgICAgICBkZXBlbmRzIG9uIGl0cyBpbnRlcm5hbCBz
dGF0ZTogcmVnaW9uRm9yU3R5bGluZy4gVGhpcyB3b3VsZCBwcm9iYWJseQorICAgICAgICBtYWtl
IHJlZ2lvbi1zdHlsZS1jcmFzaCBsYXlvdXQgdGVzdCBmYWlsIG9yIGZsYWt5LgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgYmVjYXVzZSBpbnNwZWN0b3Ivc3R5bGVzL3JlZ2lvbi1zdHlsZS1jcmFz
aC5odG1sIGNvdmVycy4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlUnVsZXNGb3JFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KToK
KyAgICAgICAgQWRkZWQgb25lIG1vcmUgcGFyYW1ldGVyOiBSZW5kZXJSZWdpb25MaXN0LgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0
UnVsZXNGb3JTdHlsZVJ1bGVzRm9yRWxlbWVudCk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2
ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKToK
KyAgICAgICAgTW9kaWZpZWQgdG8gb2J0YWluIGEgcmVuZGVyIGZsb3cgdGhyZWFkIG9mIGEgZ2l2
ZW4gbm9kZSBhbmQgaWYgdGhlCisgICAgICAgIHRocmVhZCBoYXMgYW55IHJlZ2lvbnMgd2l0aCBz
dHlsaW5nLCBwcm92aWRlIHRoZSByZW5kZXIgcmVnaW9uIGxpc3QKKyAgICAgICAgZm9yIFN0eWxl
UmVzb2x2ZXIuCisKIDIwMTMtMDItMDcgIEhhbnllZSBLaW0gIDxjaG9jb0Bjb21wYW55MTAwLm5l
dD4KIAogICAgICAgICBOYW1lZEZsb3dDb2xsZWN0aW9uIHNob3VsZCBiZSBhIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMTgy
OTBmMzg1NjQ4OTUzNzZlNTg5NmFjYTI0MGE4MDA3NzI2MjczYy4uZTRkYmY1YWFjOTg1Zjk3OGVm
MGE2YWE3YTNiMDU0YTJlMDk5NzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cApAQCAtMjA2OCwxMiArMjA2OCwxMiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNhY2hlQm9yZGVy
QW5kQmFja2dyb3VuZCgpCiAgICAgfQogfQogCi1QYXNzUmVmUHRyPENTU1J1bGVMaXN0PiBTdHls
ZVJlc29sdmVyOjpzdHlsZVJ1bGVzRm9yRWxlbWVudChFbGVtZW50KiBlLCB1bnNpZ25lZCBydWxl
c1RvSW5jbHVkZSkKK1Bhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6OnN0eWxl
UnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRlLCBjb25z
dCBSZW5kZXJSZWdpb25MaXN0KiByZWdpb25MaXN0Rm9yU3R5bGluZykKIHsKLSAgICByZXR1cm4g
cHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoZSwgTk9QU0VVRE8sIHJ1bGVzVG9JbmNsdWRlKTsK
KyAgICByZXR1cm4gcHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoZSwgTk9QU0VVRE8sIHJ1bGVz
VG9JbmNsdWRlLCByZWdpb25MaXN0Rm9yU3R5bGluZyk7CiB9CiAKLVBhc3NSZWZQdHI8Q1NTUnVs
ZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQq
IGUsIFBzZXVkb0lkIHBzZXVkb0lkLCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSkKK1Bhc3NSZWZQ
dHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50
KEVsZW1lbnQqIGUsIFBzZXVkb0lkIHBzZXVkb0lkLCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSwg
Y29uc3QgUmVuZGVyUmVnaW9uTGlzdCogcmVnaW9uTGlzdCkKIHsKICAgICBpZiAoIWUgfHwgIWUt
PmRvY3VtZW50KCktPmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKQogICAgICAgICByZXR1cm4gMDsK
QEAgLTIwODMsNiArMjA4MywxOSBAQCBQYXNzUmVmUHRyPENTU1J1bGVMaXN0PiBTdHlsZVJlc29s
dmVyOjpwc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChFbGVtZW50KiBlLCBQcwogICAgIGluaXRF
bGVtZW50KGUpOwogICAgIGluaXRGb3JTdHlsZVJlc29sdmUoZSwgMCwgcHNldWRvSWQpOwogCisg
ICAgaWYgKHJlZ2lvbkxpc3QpIHsKKyAgICAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25z
dF9pdGVyYXRvciBpdCA9IHJlZ2lvbkxpc3QtPmJlZ2luKCk7IGl0ICE9IHJlZ2lvbkxpc3QtPmVu
ZCgpOyArK2l0KQorICAgICAgICAgICAgY29sbGVjdFJ1bGVzRm9yU3R5bGVSdWxlc0ZvckVsZW1l
bnQocnVsZXNUb0luY2x1ZGUsICppdCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvbGxlY3RSdWxl
c0ZvclN0eWxlUnVsZXNGb3JFbGVtZW50KHJ1bGVzVG9JbmNsdWRlKTsKKworICAgIG1fc2VsZWN0
b3JDaGVja2VyLnNldE1vZGUoU2VsZWN0b3JDaGVja2VyOjpSZXNvbHZpbmdTdHlsZSk7CisgICAg
cmV0dXJuIG1fc3RhdGUucnVsZUxpc3QucmVsZWFzZSgpOworfQorCit2b2lkIFN0eWxlUmVzb2x2
ZXI6OmNvbGxlY3RSdWxlc0ZvclN0eWxlUnVsZXNGb3JFbGVtZW50KHVuc2lnbmVkIHJ1bGVzVG9J
bmNsdWRlLCBSZW5kZXJSZWdpb24qIHJlZ2lvbkZvclN0eWxpbmcpCit7CisgICAgbV9zdGF0ZS5y
ZWdpb25Gb3JTdHlsaW5nID0gcmVnaW9uRm9yU3R5bGluZzsKICAgICBNYXRjaFJlc3VsdCBkdW1t
eTsKICAgICBpZiAocnVsZXNUb0luY2x1ZGUgJiBVQUFuZFVzZXJDU1NSdWxlcykgewogICAgICAg
ICAvLyBGaXJzdCB3ZSBtYXRjaCBydWxlcyBmcm9tIHRoZSB1c2VyIGFnZW50IHNoZWV0LgpAQCAt
MjEwMSwxMCArMjExNCw2IEBAIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6
OnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIFBzCiAKICAgICAgICAgbV9z
dGF0ZS5zYW1lT3JpZ2luT25seSA9IGZhbHNlOwogICAgIH0KLQotICAgIG1fc2VsZWN0b3JDaGVj
a2VyLnNldE1vZGUoU2VsZWN0b3JDaGVja2VyOjpSZXNvbHZpbmdTdHlsZSk7Ci0KLSAgICByZXR1
cm4gbV9zdGF0ZS5ydWxlTGlzdC5yZWxlYXNlKCk7CiB9CiAKIGlubGluZSBib29sIFN0eWxlUmVz
b2x2ZXI6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgY29uc3QgQ29udGFp
bmVyTm9kZSogc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCA4NGMzY2Qx
ZmMwMzdkYWIwZGZkNzVhOGZmZDdkOGI5YTVjNDk3M2Y4Li41ZmZlZWMxNWUwM2ZmN2IyMmRjNmZh
NWQxMTlhYjM2MzFhNjY0NDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmgiCiAjaW5jbHVk
ZSAiTGlua0hhc2guaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCisjaW5jbHVkZSAiUmVu
ZGVyRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUnVs
ZUZlYXR1cmUuaCIKICNpbmNsdWRlICJSdWxlU2V0LmgiCkBAIC0yMjMsOCArMjI0LDkgQEAgcHVi
bGljOgogICAgICAgICBBbGxCdXRFbXB0eUNTU1J1bGVzID0gVUFBbmRVc2VyQ1NTUnVsZXMgfCBB
dXRob3JDU1NSdWxlcyB8IENyb3NzT3JpZ2luQ1NTUnVsZXMsCiAgICAgICAgIEFsbENTU1J1bGVz
ICAgICAgICAgPSBBbGxCdXRFbXB0eUNTU1J1bGVzIHwgRW1wdHlDU1NSdWxlcywKICAgICB9Owot
ICAgIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IHN0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQq
LCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSA9IEFsbEJ1dEVtcHR5Q1NTUnVsZXMpOwotICAgIFBh
c3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IHBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQq
LCBQc2V1ZG9JZCwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVz
KTsKKyAgICBQYXNzUmVmUHRyPENTU1J1bGVMaXN0PiBzdHlsZVJ1bGVzRm9yRWxlbWVudChFbGVt
ZW50KiwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVzLCBjb25z
dCBSZW5kZXJSZWdpb25MaXN0KiByZWdpb25MaXN0Rm9yU3R5bGluZyA9IDApOworICAgIFBhc3NS
ZWZQdHI8Q1NTUnVsZUxpc3Q+IHBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqLCBQ
c2V1ZG9JZCwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVzLCBj
b25zdCBSZW5kZXJSZWdpb25MaXN0KiByZWdpb25MaXN0Rm9yU3R5bGluZyA9IDApOworICAgIHZv
aWQgY29sbGVjdFJ1bGVzRm9yU3R5bGVSdWxlc0ZvckVsZW1lbnQodW5zaWduZWQgcnVsZXNUb0lu
Y2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVzLCBSZW5kZXJSZWdpb24qIHJlZ2lvbkZvclN0eWxp
bmcgPSAwKTsKIAogICAgIC8vIEdpdmVuIGEgQ1NTIGtleXdvcmQgaW4gdGhlIHJhbmdlICh4eC1z
bWFsbCB0byAtd2Via2l0LXh4eC1sYXJnZSksIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4KICAg
ICAvLyB0aGUgY29ycmVjdCBmb250IHNpemUgc2NhbGVkIHJlbGF0aXZlIHRvIHRoZSB1c2VyJ3Mg
ZGVmYXVsdCAobWVkaXVtKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwCmluZGV4IDBmYThmMjY5MTE2ODViYzMwZjNhYzU3ZjFhYWU3MTdlOWNiNWI0
OWYuLmJmZDk1OGQyNjA2NjM4NDFlODljMjlmZWZlNzZmOWM4NDMyMzQ3OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNDgsNiArNDgs
NyBAQAogI2luY2x1ZGUgIk5hbWVkRmxvd0NvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJOb2RlLmgi
CiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAj
aW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgog
I2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTaG9ydGhhbmQuaCIKQEAgLTY4NCwxNiArNjg1LDI4IEBA
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgaW50IG5vCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1
cm47CiAKKyAgICBjb25zdCBSZW5kZXJSZWdpb25MaXN0KiByZWdpb25MaXN0ID0gMDsKKyNpZiBF
TkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgaWYgKGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVu
dC0+cmVuZGVyZXIoKS0+aW5SZW5kZXJGbG93VGhyZWFkKCkpIHsKKyAgICAgICAgUmVuZGVyRmxv
d1RocmVhZCogZmxvd1RocmVhZCA9IGVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ1JlbmRl
ckZsb3dUaHJlYWQoKTsKKyAgICAgICAgaWYgKGZsb3dUaHJlYWQgJiYgZmxvd1RocmVhZC0+aGFz
UmVnaW9uc1dpdGhTdHlsaW5nKCkpCisgICAgICAgICAgICByZWdpb25MaXN0ID0gJmZsb3dUaHJl
YWQtPnJlbmRlclJlZ2lvbkxpc3QoKTsKKyAgICB9CisjZW5kaWYKKwogICAgIC8vIE1hdGNoZWQg
cnVsZXMuCiAgICAgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciA9IGVsZW1lbnQtPm93bmVy
RG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpOwotICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gbWF0
Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci0+c3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwg
U3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMpOworICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gbWF0
Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci0+c3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwg
U3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMsIHJlZ2lvbkxpc3QpOworCiAgICAgbWF0Y2hlZENT
U1J1bGVzID0gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMuZ2V0KCks
IHN0eWxlUmVzb2x2ZXIsIGVsZW1lbnQpOwogCiAgICAgLy8gUHNldWRvIGVsZW1lbnRzLgogICAg
IGlmICghaW5jbHVkZVBzZXVkbyB8fCAqaW5jbHVkZVBzZXVkbykgewogICAgICAgICBSZWZQdHI8
VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4gPiBw
c2V1ZG9FbGVtZW50cyA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpQc2V1
ZG9JZE1hdGNoZXM+OjpjcmVhdGUoKTsKICAgICAgICAgZm9yIChQc2V1ZG9JZCBwc2V1ZG9JZCA9
IEZJUlNUX1BVQkxJQ19QU0VVRE9JRDsgcHNldWRvSWQgPCBBRlRFUl9MQVNUX0lOVEVSTkFMX1BT
RVVET0lEOyBwc2V1ZG9JZCA9IHN0YXRpY19jYXN0PFBzZXVkb0lkPihwc2V1ZG9JZCArIDEpKSB7
Ci0gICAgICAgICAgICBSZWZQdHI8Q1NTUnVsZUxpc3Q+IG1hdGNoZWRSdWxlcyA9IHN0eWxlUmVz
b2x2ZXItPnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQsIHBzZXVkb0lkLCBTdHls
ZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7CisKKyAgICAgICAgICAgIFJlZlB0cjxDU1NSdWxlTGlz
dD4gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci0+cHNldWRvU3R5bGVSdWxlc0ZvckVsZW1l
bnQoZWxlbWVudCwgcHNldWRvSWQsIFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzLCByZWdpb25M
aXN0KTsKKwogICAgICAgICAgICAgaWYgKG1hdGNoZWRSdWxlcyAmJiBtYXRjaGVkUnVsZXMtPmxl
bmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVk
b0lkTWF0Y2hlcz4gbWF0Y2hlcyA9IFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVkb0lkTWF0Y2hlczo6
Y3JlYXRlKCkKICAgICAgICAgICAgICAgICAgICAgLnNldFBzZXVkb0lkKHN0YXRpY19jYXN0PGlu
dD4ocHNldWRvSWQpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187790</attachid>
            <date>2013-02-12 00:19:33 -0800</date>
            <delta_ts>2013-02-12 02:45:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109258-20130212171603.patch</filename>
            <type>text/plain</type>
            <size>7984</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNjNjJmZWYyZTlkM2Ni
ZjdiZDhkMzAyZGE3YWZhNTJlZTlhNzZkOS4uMTcxZTJhY2U2Mjc0MjkyYjBkNDNlYTNlNTYzM2E5
NWJmMTkxOTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTEyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBbQ1NTIFJlZ2lvbnNdIEluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9k
ZSBzaG91bGQgY29uc2lkZXIgQ1NTIHJlZ2lvbiBzdHlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyNTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRNYXRjaGVkU3R5bGVGb3JOb2RlIHNob3Vs
ZCBwcm92aWRlIGEgUmVuZGVyUmVnaW9uTGlzdCwgd2hpY2ggaXMKKyAgICAgICAgb2J0YWluZWQg
ZnJvbSBhIGdpdmVuIG5vZGUncyByZW5kZXIgZmxvdyB0aHJlYWQsIGZvciBTdHlsZVJlc29sdmVy
LgorICAgICAgICBXaXRob3V0IHRoaXMsIHdoZXRoZXIgU3R5bGVSZXNvbHZlciByZXR1cm5zIENT
UyByZWdpb24gc3R5bGVzIG9yIG5vdAorICAgICAgICBkZXBlbmRzIG9uIGl0cyBpbnRlcm5hbCBz
dGF0ZTogcmVnaW9uRm9yU3R5bGluZy4gVGhpcyB3b3VsZCBwcm9iYWJseQorICAgICAgICBtYWtl
IHJlZ2lvbi1zdHlsZS1jcmFzaCBsYXlvdXQgdGVzdCBmYWlsIG9yIGZsYWt5LgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgYmVjYXVzZSBpbnNwZWN0b3Ivc3R5bGVzL3JlZ2lvbi1zdHlsZS1jcmFz
aC5odG1sIGNvdmVycy4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlUnVsZXNGb3JFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KToK
KyAgICAgICAgQWRkZWQgb25lIG1vcmUgcGFyYW1ldGVyOiBSZW5kZXJSZWdpb25MaXN0LgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0
U3R5bGVSdWxlc0ZvckVsZW1lbnQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9kZSk6CisgICAgICAg
IE1vZGlmaWVkIHRvIG9idGFpbiBhIHJlbmRlciBmbG93IHRocmVhZCBvZiBhIGdpdmVuIG5vZGUg
YW5kIGlmIHRoZQorICAgICAgICB0aHJlYWQgaGFzIGFueSByZWdpb25zIHdpdGggc3R5bGluZywg
cHJvdmlkZSB0aGUgcmVuZGVyIHJlZ2lvbiBsaXN0CisgICAgICAgIGZvciBTdHlsZVJlc29sdmVy
LgorCiAyMDEzLTAyLTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIxNDI1MjA/KTogU3BhY2Ugbm8gbG9uZ2VyIHNjcm9sbHMg
dGhlIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAxODI5MGYzODU2
NDg5NTM3NmU1ODk2YWNhMjQwYTgwMDc3MjYyNzNjLi4yOTA5Zjg4MzIxZDE5Y2ZmNWM2YTg1NWEx
MmM2ZGZjYWMwNGYyM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0y
MDY4LDEyICsyMDY4LDEyIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6Y2FjaGVCb3JkZXJBbmRCYWNr
Z3JvdW5kKCkKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2
ZXI6OnN0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIHVuc2lnbmVkIHJ1bGVzVG9JbmNs
dWRlKQorUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4gU3R5bGVSZXNvbHZlcjo6c3R5bGVSdWxlc0Zv
ckVsZW1lbnQoRWxlbWVudCogZSwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUsIGNvbnN0IFJlbmRl
clJlZ2lvbkxpc3QqIHJlZ2lvbkxpc3RGb3JTdHlsaW5nKQogewotICAgIHJldHVybiBwc2V1ZG9T
dHlsZVJ1bGVzRm9yRWxlbWVudChlLCBOT1BTRVVETywgcnVsZXNUb0luY2x1ZGUpOworICAgIHJl
dHVybiBwc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlLCBOT1BTRVVETywgcnVsZXNUb0luY2x1
ZGUsIHJlZ2lvbkxpc3RGb3JTdHlsaW5nKTsKIH0KIAotUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4g
U3R5bGVSZXNvbHZlcjo6cHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZSwgUHNl
dWRvSWQgcHNldWRvSWQsIHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRlKQorUGFzc1JlZlB0cjxDU1NS
dWxlTGlzdD4gU3R5bGVSZXNvbHZlcjo6cHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoRWxlbWVu
dCogZSwgUHNldWRvSWQgcHNldWRvSWQsIHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRlLCBjb25zdCBS
ZW5kZXJSZWdpb25MaXN0KiByZWdpb25MaXN0KQogewogICAgIGlmICghZSB8fCAhZS0+ZG9jdW1l
bnQoKS0+aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMjA4
Myw2ICsyMDgzLDE5IEBAIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6OnBz
ZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIFBzCiAgICAgaW5pdEVsZW1lbnQo
ZSk7CiAgICAgaW5pdEZvclN0eWxlUmVzb2x2ZShlLCAwLCBwc2V1ZG9JZCk7CiAKKyAgICBpZiAo
cmVnaW9uTGlzdCkgeworICAgICAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gcmVnaW9uTGlzdC0+YmVnaW4oKTsgaXQgIT0gcmVnaW9uTGlzdC0+ZW5kKCk7ICsr
aXQpCisgICAgICAgICAgICBjb2xsZWN0U3R5bGVSdWxlc0ZvckVsZW1lbnQocnVsZXNUb0luY2x1
ZGUsICppdCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvbGxlY3RTdHlsZVJ1bGVzRm9yRWxlbWVu
dChydWxlc1RvSW5jbHVkZSk7CisKKyAgICBtX3NlbGVjdG9yQ2hlY2tlci5zZXRNb2RlKFNlbGVj
dG9yQ2hlY2tlcjo6UmVzb2x2aW5nU3R5bGUpOworICAgIHJldHVybiBtX3N0YXRlLnJ1bGVMaXN0
LnJlbGVhc2UoKTsKK30KKwordm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0U3R5bGVSdWxlc0Zv
ckVsZW1lbnQodW5zaWduZWQgcnVsZXNUb0luY2x1ZGUsIFJlbmRlclJlZ2lvbiogcmVnaW9uRm9y
U3R5bGluZykKK3sKKyAgICBtX3N0YXRlLnJlZ2lvbkZvclN0eWxpbmcgPSByZWdpb25Gb3JTdHls
aW5nOwogICAgIE1hdGNoUmVzdWx0IGR1bW15OwogICAgIGlmIChydWxlc1RvSW5jbHVkZSAmIFVB
QW5kVXNlckNTU1J1bGVzKSB7CiAgICAgICAgIC8vIEZpcnN0IHdlIG1hdGNoIHJ1bGVzIGZyb20g
dGhlIHVzZXIgYWdlbnQgc2hlZXQuCkBAIC0yMTAxLDEwICsyMTE0LDYgQEAgUGFzc1JlZlB0cjxD
U1NSdWxlTGlzdD4gU3R5bGVSZXNvbHZlcjo6cHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoRWxl
bWVudCogZSwgUHMKIAogICAgICAgICBtX3N0YXRlLnNhbWVPcmlnaW5Pbmx5ID0gZmFsc2U7CiAg
ICAgfQotCi0gICAgbV9zZWxlY3RvckNoZWNrZXIuc2V0TW9kZShTZWxlY3RvckNoZWNrZXI6OlJl
c29sdmluZ1N0eWxlKTsKLQotICAgIHJldHVybiBtX3N0YXRlLnJ1bGVMaXN0LnJlbGVhc2UoKTsK
IH0KIAogaW5saW5lIGJvb2wgU3R5bGVSZXNvbHZlcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURh
dGEmIHJ1bGVEYXRhLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oCmluZGV4IDg0YzNjZDFmYzAzN2RhYjBkZmQ3NWE4ZmZkN2Q4YjlhNWM0OTcz
ZjguLmVjYmY4YjNiNjhmNGZjMDI4ZmI0YWU3ZDE0MDA2NDVkMzYwYzE4ZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckNTU09NV3JhcHBlcnMuaCIKICNpbmNsdWRlICJMaW5rSGFzaC5oIgogI2luY2x1ZGUgIk1lZGlh
UXVlcnlFeHAuaCIKKyNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSdWxlRmVhdHVyZS5oIgogI2luY2x1ZGUgIlJ1bGVTZXQu
aCIKQEAgLTIyMyw4ICsyMjQsOSBAQCBwdWJsaWM6CiAgICAgICAgIEFsbEJ1dEVtcHR5Q1NTUnVs
ZXMgPSBVQUFuZFVzZXJDU1NSdWxlcyB8IEF1dGhvckNTU1J1bGVzIHwgQ3Jvc3NPcmlnaW5DU1NS
dWxlcywKICAgICAgICAgQWxsQ1NTUnVsZXMgICAgICAgICA9IEFsbEJ1dEVtcHR5Q1NTUnVsZXMg
fCBFbXB0eUNTU1J1bGVzLAogICAgIH07Ci0gICAgUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4gc3R5
bGVSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCosIHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRlID0gQWxs
QnV0RW1wdHlDU1NSdWxlcyk7Ci0gICAgUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4gcHNldWRvU3R5
bGVSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCosIFBzZXVkb0lkLCB1bnNpZ25lZCBydWxlc1RvSW5j
bHVkZSA9IEFsbEJ1dEVtcHR5Q1NTUnVsZXMpOworICAgIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+
IHN0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqLCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSA9
IEFsbEJ1dEVtcHR5Q1NTUnVsZXMsIGNvbnN0IFJlbmRlclJlZ2lvbkxpc3QqIHJlZ2lvbkxpc3RG
b3JTdHlsaW5nID0gMCk7CisgICAgUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4gcHNldWRvU3R5bGVS
dWxlc0ZvckVsZW1lbnQoRWxlbWVudCosIFBzZXVkb0lkLCB1bnNpZ25lZCBydWxlc1RvSW5jbHVk
ZSA9IEFsbEJ1dEVtcHR5Q1NTUnVsZXMsIGNvbnN0IFJlbmRlclJlZ2lvbkxpc3QqIHJlZ2lvbkxp
c3RGb3JTdHlsaW5nID0gMCk7CisgICAgdm9pZCBjb2xsZWN0U3R5bGVSdWxlc0ZvckVsZW1lbnQo
dW5zaWduZWQgcnVsZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVzLCBSZW5kZXJSZWdp
b24qIHJlZ2lvbkZvclN0eWxpbmcgPSAwKTsKIAogICAgIC8vIEdpdmVuIGEgQ1NTIGtleXdvcmQg
aW4gdGhlIHJhbmdlICh4eC1zbWFsbCB0byAtd2Via2l0LXh4eC1sYXJnZSksIHRoaXMgZnVuY3Rp
b24gd2lsbCByZXR1cm4KICAgICAvLyB0aGUgY29ycmVjdCBmb250IHNpemUgc2NhbGVkIHJlbGF0
aXZlIHRvIHRoZSB1c2VyJ3MgZGVmYXVsdCAobWVkaXVtKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDZkNzA1YWUxZWRlZGVlZmFkYTlh
MmQwMTMyZTZhZmY3Y2VmMTNjOWYuLjc1NmExOWFhZDMxZWI5MTM5MjAxOTg0MDdiOTNlOTdlY2Ux
OWQ5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIk5hbWVkRmxvd0NvbGxlY3Rpb24uaCIK
ICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJSZW5k
ZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiU3R5
bGVQcm9wZXJ0eVNldC5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTaG9ydGhhbmQuaCIKQEAg
LTY4NSwxNiArNjg2LDI5IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHls
ZXNGb3JOb2RlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vCiAgICAgaWYgKCFlbGVt
ZW50KQogICAgICAgICByZXR1cm47CiAKKyAgICBjb25zdCBSZW5kZXJSZWdpb25MaXN0KiByZWdp
b25MaXN0ID0gMDsKKyNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgaWYgKGVsZW1lbnQtPnJl
bmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+aW5SZW5kZXJGbG93VGhyZWFkKCkpIHsK
KyAgICAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGVsZW1lbnQtPnJlbmRlcmVy
KCktPmVuY2xvc2luZ1JlbmRlckZsb3dUaHJlYWQoKTsKKyAgICAgICAgQVNTRVJUKGZsb3dUaHJl
YWQpOworICAgICAgICBpZiAoZmxvd1RocmVhZCAmJiBmbG93VGhyZWFkLT5oYXNSZWdpb25zV2l0
aFN0eWxpbmcoKSkKKyAgICAgICAgICAgIHJlZ2lvbkxpc3QgPSAmZmxvd1RocmVhZC0+cmVuZGVy
UmVnaW9uTGlzdCgpOworICAgIH0KKyNlbmRpZgorCiAgICAgLy8gTWF0Y2hlZCBydWxlcy4KICAg
ICBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyID0gZWxlbWVudC0+b3duZXJEb2N1bWVudCgp
LT5zdHlsZVJlc29sdmVyKCk7Ci0gICAgUmVmUHRyPENTU1J1bGVMaXN0PiBtYXRjaGVkUnVsZXMg
PSBzdHlsZVJlc29sdmVyLT5zdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBTdHlsZVJlc29s
dmVyOjpBbGxDU1NSdWxlcyk7CisgICAgUmVmUHRyPENTU1J1bGVMaXN0PiBtYXRjaGVkUnVsZXMg
PSBzdHlsZVJlc29sdmVyLT5zdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBTdHlsZVJlc29s
dmVyOjpBbGxDU1NSdWxlcywgcmVnaW9uTGlzdCk7CisKICAgICBtYXRjaGVkQ1NTUnVsZXMgPSBi
dWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcy5nZXQoKSwgc3R5bGVSZXNv
bHZlciwgZWxlbWVudCk7CiAKICAgICAvLyBQc2V1ZG8gZWxlbWVudHMuCiAgICAgaWYgKCFpbmNs
dWRlUHNldWRvIHx8ICppbmNsdWRlUHNldWRvKSB7CiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6UHNldWRvSWRNYXRjaGVzPiA+IHBzZXVkb0VsZW1l
bnRzID0gVHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVkb0lkTWF0Y2hl
cz46OmNyZWF0ZSgpOwogICAgICAgICBmb3IgKFBzZXVkb0lkIHBzZXVkb0lkID0gRklSU1RfUFVC
TElDX1BTRVVET0lEOyBwc2V1ZG9JZCA8IEFGVEVSX0xBU1RfSU5URVJOQUxfUFNFVURPSUQ7IHBz
ZXVkb0lkID0gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+KHBzZXVkb0lkICsgMSkpIHsKLSAgICAgICAg
ICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci0+cHNl
dWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgcHNldWRvSWQsIFN0eWxlUmVzb2x2ZXI6
OkFsbENTU1J1bGVzKTsKKworICAgICAgICAgICAgUmVmUHRyPENTU1J1bGVMaXN0PiBtYXRjaGVk
UnVsZXMgPSBzdHlsZVJlc29sdmVyLT5wc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50
LCBwc2V1ZG9JZCwgU3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMsIHJlZ2lvbkxpc3QpOworCiAg
ICAgICAgICAgICBpZiAobWF0Y2hlZFJ1bGVzICYmIG1hdGNoZWRSdWxlcy0+bGVuZ3RoKCkpIHsK
ICAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6UHNldWRvSWRNYXRjaGVz
PiBtYXRjaGVzID0gVHlwZUJ1aWxkZXI6OkNTUzo6UHNldWRvSWRNYXRjaGVzOjpjcmVhdGUoKQog
ICAgICAgICAgICAgICAgICAgICAuc2V0UHNldWRvSWQoc3RhdGljX2Nhc3Q8aW50Pihwc2V1ZG9J
ZCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187818</attachid>
            <date>2013-02-12 02:45:24 -0800</date>
            <delta_ts>2013-02-18 20:55:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109258-20130212194154.patch</filename>
            <type>text/plain</type>
            <size>16211</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ0ZjFkYzE3YTk5OGJj
NTU0OTRkMmE5YjkzYmM3OWJjMzM5N2UxNy4uM2JiODNiM2JmMjhhMTkxMWUzNjU2N2Y0MWRhMWRm
MzYxN2ZkN2NkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAyLTEyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBbQ1NTIFJlZ2lvbnNdIEluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9k
ZSBzaG91bGQgY29uc2lkZXIgQ1NTIHJlZ2lvbiBzdHlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyNTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRNYXRjaGVkU3R5bGVGb3JOb2RlIHNob3Vs
ZCBwcm92aWRlIGEgUmVuZGVyUmVnaW9uTGlzdCwgd2hpY2ggaXMKKyAgICAgICAgb2J0YWluZWQg
ZnJvbSBhIGdpdmVuIG5vZGUncyByZW5kZXIgZmxvdyB0aHJlYWQsIGZvciBTdHlsZVJlc29sdmVy
LgorICAgICAgICBXaXRob3V0IHRoaXMsIHdoZXRoZXIgU3R5bGVSZXNvbHZlciByZXR1cm5zIENT
UyByZWdpb24gc3R5bGVzIG9yIG5vdAorICAgICAgICBkZXBlbmRzIG9uIGl0cyBpbnRlcm5hbCBz
dGF0ZTogcmVnaW9uRm9yU3R5bGluZy4gVGhpcyB3b3VsZCBwcm9iYWJseQorICAgICAgICBtYWtl
IHJlZ2lvbi1zdHlsZS1jcmFzaCBsYXlvdXQgdGVzdCBmYWlsIG9yIGZsYWt5LgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgYmVjYXVzZSBpbnNwZWN0b3Ivc3R5bGVzL3JlZ2lvbi1zdHlsZS1jcmFz
aC5odG1sIGNvdmVycy4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlUnVsZXNGb3JFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KToK
KyAgICAgICAgQWRkZWQgb25lIG1vcmUgcGFyYW1ldGVyOiBSZW5kZXJSZWdpb25MaXN0LgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0
U3R5bGVSdWxlc0ZvckVsZW1lbnQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICBBZGRlZCBvbmUgbW9y
ZSBwYXJhbWV0ZXIgdG8gZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUuCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNT
U0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9kZSk6CisgICAgICAgIEFkZGVkIG9uZSBtb3Jl
IHBhcmFtZXRlciB0byBnZXQgbWF0Y2hlZCByZWdpb24gc3R5bGVzIG9yIG5vdC4KKyAgICAgICAg
SWYgdGhlIHBhcmFtZXRlciBpcyB0cnVlLCBvYnRhaW4gYSByZW5kZXIgZmxvdyB0aHJlYWQgb2Yg
YSBnaXZlbiBub2RlCisgICAgICAgIGFuZCBpZiB0aGUgdGhyZWFkIGhhcyBhbnkgcmVnaW9ucyB3
aXRoIHN0eWxpbmcsIHByb3ZpZGUgdGhlIHJlbmRlcgorICAgICAgICByZWdpb24gbGlzdCBmb3Ig
U3R5bGVSZXNvbHZlci4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoK
KyAgICAgICAgKEluc3BlY3RvckNTU0FnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5wcm90b3R5cGUuZ2V0TWF0Y2hlZFN0eWxlc0FzeW5jKToKKwogMjAxMy0wMi0xMiAgWm9sdGFu
IEFydmFpICA8emFydmFpQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBVbnJldmlld2VkLiBG
aXggIUVOQUJMRShJTlNQRUNUT1IpIGJ1aWxkcyBhZnRlciByMTQyNTc1CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggOGJkMWZhOTdkNjMzMDAyMTRjNjEwN2I2N2UyYWI2YTY0
NDMyYmZiNS4uMzU4NTViY2E3ZDczMDRiODk3ZDNiN2Y5MGZjZWE3Nzc2ODdjYjA3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMjAxNCwxMiArMjAxNCwxMiBAQCB2b2lk
IFN0eWxlUmVzb2x2ZXI6OmNhY2hlQm9yZGVyQW5kQmFja2dyb3VuZCgpCiAgICAgfQogfQogCi1Q
YXNzUmVmUHRyPENTU1J1bGVMaXN0PiBTdHlsZVJlc29sdmVyOjpzdHlsZVJ1bGVzRm9yRWxlbWVu
dChFbGVtZW50KiBlLCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSkKK1Bhc3NSZWZQdHI8Q1NTUnVs
ZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIHVu
c2lnbmVkIHJ1bGVzVG9JbmNsdWRlLCBjb25zdCBSZW5kZXJSZWdpb25MaXN0KiByZWdpb25MaXN0
Rm9yU3R5bGluZykKIHsKLSAgICByZXR1cm4gcHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoZSwg
Tk9QU0VVRE8sIHJ1bGVzVG9JbmNsdWRlKTsKKyAgICByZXR1cm4gcHNldWRvU3R5bGVSdWxlc0Zv
ckVsZW1lbnQoZSwgTk9QU0VVRE8sIHJ1bGVzVG9JbmNsdWRlLCByZWdpb25MaXN0Rm9yU3R5bGlu
Zyk7CiB9CiAKLVBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0
eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIFBzZXVkb0lkIHBzZXVkb0lkLCB1bnNpZ25l
ZCBydWxlc1RvSW5jbHVkZSkKK1Bhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6
OnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIFBzZXVkb0lkIHBzZXVkb0lk
LCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSwgY29uc3QgUmVuZGVyUmVnaW9uTGlzdCogcmVnaW9u
TGlzdCkKIHsKICAgICBpZiAoIWUgfHwgIWUtPmRvY3VtZW50KCktPmhhdmVTdHlsZXNoZWV0c0xv
YWRlZCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTIwMjksNiArMjAyOSwxOSBAQCBQYXNzUmVm
UHRyPENTU1J1bGVMaXN0PiBTdHlsZVJlc29sdmVyOjpwc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVu
dChFbGVtZW50KiBlLCBQcwogICAgIGluaXRFbGVtZW50KGUpOwogICAgIGluaXRGb3JTdHlsZVJl
c29sdmUoZSwgMCwgcHNldWRvSWQpOwogCisgICAgaWYgKHJlZ2lvbkxpc3QpIHsKKyAgICAgICAg
Zm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IHJlZ2lvbkxpc3QtPmJl
Z2luKCk7IGl0ICE9IHJlZ2lvbkxpc3QtPmVuZCgpOyArK2l0KQorICAgICAgICAgICAgY29sbGVj
dFN0eWxlUnVsZXNGb3JFbGVtZW50KHJ1bGVzVG9JbmNsdWRlLCAqaXQpOworICAgIH0gZWxzZQor
ICAgICAgICBjb2xsZWN0U3R5bGVSdWxlc0ZvckVsZW1lbnQocnVsZXNUb0luY2x1ZGUpOworCisg
ICAgbV9zdGF0ZS5tb2RlID0gU2VsZWN0b3JDaGVja2VyOjpSZXNvbHZpbmdTdHlsZTsKKyAgICBy
ZXR1cm4gbV9zdGF0ZS5ydWxlTGlzdC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgU3R5bGVSZXNvbHZl
cjo6Y29sbGVjdFN0eWxlUnVsZXNGb3JFbGVtZW50KHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRlLCBS
ZW5kZXJSZWdpb24qIHJlZ2lvbkZvclN0eWxpbmcpCit7CisgICAgbV9zdGF0ZS5yZWdpb25Gb3JT
dHlsaW5nID0gcmVnaW9uRm9yU3R5bGluZzsKICAgICBNYXRjaFJlc3VsdCBkdW1teTsKICAgICBp
ZiAocnVsZXNUb0luY2x1ZGUgJiBVQUFuZFVzZXJDU1NSdWxlcykgewogICAgICAgICAvLyBGaXJz
dCB3ZSBtYXRjaCBydWxlcyBmcm9tIHRoZSB1c2VyIGFnZW50IHNoZWV0LgpAQCAtMjA0NywxMCAr
MjA2MCw2IEBAIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0
eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIFBzCiAKICAgICAgICAgbV9zdGF0ZS5zYW1l
T3JpZ2luT25seSA9IGZhbHNlOwogICAgIH0KLQotICAgIG1fc3RhdGUubW9kZSA9IFNlbGVjdG9y
Q2hlY2tlcjo6UmVzb2x2aW5nU3R5bGU7Ci0KLSAgICByZXR1cm4gbV9zdGF0ZS5ydWxlTGlzdC5y
ZWxlYXNlKCk7CiB9CiAKIGlubGluZSBib29sIFN0eWxlUmVzb2x2ZXI6OnJ1bGVNYXRjaGVzKGNv
bnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBmMTU2OTM1NTA3NzNjZmNkOWI5MjU1OTdjYjQx
ZWU2NGU3NmM5YzdlLi5lMGEwMTQ0NTZhYTBkMzNjY2NhYTQzOTgxMmEyMGQwMmQ1ZjdhNTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0hhc2guaCIKICNpbmNs
dWRlICJNZWRpYVF1ZXJ5RXhwLmgiCisjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIgogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUnVsZUZlYXR1cmUuaCIKICNpbmNsdWRl
ICJSdWxlU2V0LmgiCkBAIC0yMjgsOCArMjI5LDkgQEAgcHVibGljOgogICAgICAgICBBbGxCdXRF
bXB0eUNTU1J1bGVzID0gVUFBbmRVc2VyQ1NTUnVsZXMgfCBBdXRob3JDU1NSdWxlcyB8IENyb3Nz
T3JpZ2luQ1NTUnVsZXMsCiAgICAgICAgIEFsbENTU1J1bGVzICAgICAgICAgPSBBbGxCdXRFbXB0
eUNTU1J1bGVzIHwgRW1wdHlDU1NSdWxlcywKICAgICB9OwotICAgIFBhc3NSZWZQdHI8Q1NTUnVs
ZUxpc3Q+IHN0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqLCB1bnNpZ25lZCBydWxlc1RvSW5j
bHVkZSA9IEFsbEJ1dEVtcHR5Q1NTUnVsZXMpOwotICAgIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+
IHBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqLCBQc2V1ZG9JZCwgdW5zaWduZWQg
cnVsZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVzKTsKKyAgICBQYXNzUmVmUHRyPENT
U1J1bGVMaXN0PiBzdHlsZVJ1bGVzRm9yRWxlbWVudChFbGVtZW50KiwgdW5zaWduZWQgcnVsZXNU
b0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVzLCBjb25zdCBSZW5kZXJSZWdpb25MaXN0KiBy
ZWdpb25MaXN0Rm9yU3R5bGluZyA9IDApOworICAgIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IHBz
ZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqLCBQc2V1ZG9JZCwgdW5zaWduZWQgcnVs
ZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVzLCBjb25zdCBSZW5kZXJSZWdpb25MaXN0
KiByZWdpb25MaXN0Rm9yU3R5bGluZyA9IDApOworICAgIHZvaWQgY29sbGVjdFN0eWxlUnVsZXNG
b3JFbGVtZW50KHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRlID0gQWxsQnV0RW1wdHlDU1NSdWxlcywg
UmVuZGVyUmVnaW9uKiByZWdpb25Gb3JTdHlsaW5nID0gMCk7CiAKICAgICAvLyBHaXZlbiBhIENT
UyBrZXl3b3JkIGluIHRoZSByYW5nZSAoeHgtc21hbGwgdG8gLXdlYmtpdC14eHgtbGFyZ2UpLCB0
aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCiAgICAgLy8gdGhlIGNvcnJlY3QgZm9udCBzaXplIHNj
YWxlZCByZWxhdGl2ZSB0byB0aGUgdXNlcidzIGRlZmF1bHQgKG1lZGl1bSkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggNTQwZDJiYWVmZTZmNjgzMzkzYWJkZGFj
M2E5MGU5ZDM2OGZkYWI5Yy4uOWQ5M2FlNDRmY2FjYTc0ODVjODExNDUzODU4ZTFhYjViNjk5ZDgw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMjM5Niw3ICsy
Mzk2LDggQEAKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImluY2x1ZGVQc2V1ZG8iLCAidHlwZSI6ICJib29sZWFu
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdG8gaW5jbHVkZSBw
c2V1ZG8gc3R5bGVzIChkZWZhdWx0OiB0cnVlKS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaW5jbHVkZUluaGVyaXRlZCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0byBpbmNsdWRlIGluaGVyaXRlZCBzdHls
ZXMgKGRlZmF1bHQ6IHRydWUpLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlu
Y2x1ZGVJbmhlcml0ZWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIldoZXRoZXIgdG8gaW5jbHVkZSBpbmhlcml0ZWQgc3R5bGVzIChkZWZhdWx0
OiB0cnVlKS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW5jbHVkZVJlZ2lv
biIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
V2hldGhlciB0byBpbmNsdWRlIHJlZ2lvbiBzdHlsZXMgKGRlZmF1bHQ6IHRydWUpLiIgfQogICAg
ICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibWF0Y2hlZENTU1J1bGVzIiwgInR5cGUiOiAiYXJyYXkiLCAi
aXRlbXMiOiB7ICIkcmVmIjogIlJ1bGVNYXRjaCIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIkNTUyBydWxlcyBtYXRjaGluZyB0aGlzIG5vZGUsIGZyb20gYWxsIGFwcGxpY2Fi
bGUgc3R5bGVzaGVldHMuIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5jcHAKaW5kZXggNmQ3MDVhZTFlZGVkZWVmYWRhOWEyZDAxMzJlNmFmZjdjZWYx
M2M5Zi4uOGZjYmEyOGM1MWQxNmVmMjYxZjU5M2ZkZGZhNDQ0MjliMmJkZGVkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC00OSw2ICs0
OSw3IEBACiAjaW5jbHVkZSAiTmFtZWRGbG93Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIk5vZGUu
aCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIK
ICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0Lmgi
CiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIgpAQCAtNjc5LDIyICs2ODAsMzYg
QEAgYm9vbCBJbnNwZWN0b3JDU1NBZ2VudDo6Zm9yY2VQc2V1ZG9TdGF0ZShFbGVtZW50KiBlbGVt
ZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvVHkKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ1NT
QWdlbnQ6OmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
aW50IG5vZGVJZCwgY29uc3QgYm9vbCogaW5jbHVkZVBzZXVkbywgY29uc3QgYm9vbCogaW5jbHVk
ZUluaGVyaXRlZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpS
dWxlTWF0Y2g+ID4mIG1hdGNoZWRDU1NSdWxlcywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM+ID4mIHBzZXVkb0lkTWF0Y2hlcywgUmVm
UHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVu
dHJ5PiA+JiBpbmhlcml0ZWRFbnRyaWVzKQordm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TWF0
Y2hlZFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBj
b25zdCBib29sKiBpbmNsdWRlUHNldWRvLCBjb25zdCBib29sKiBpbmNsdWRlSW5oZXJpdGVkLCBj
b25zdCBib29sKiBpbmNsdWRlUmVnaW9uLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVC
dWlsZGVyOjpDU1M6OlJ1bGVNYXRjaD4gPiYgbWF0Y2hlZENTU1J1bGVzLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4gPiYgcHNldWRv
SWRNYXRjaGVzLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6Oklu
aGVyaXRlZFN0eWxlRW50cnk+ID4mIGluaGVyaXRlZEVudHJpZXMpCiB7CiAgICAgRWxlbWVudCog
ZWxlbWVudCA9IGVsZW1lbnRGb3JJZChlcnJvclN0cmluZywgbm9kZUlkKTsKICAgICBpZiAoIWVs
ZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGNvbnN0IFJlbmRlclJlZ2lvbkxpc3QqIHJl
Z2lvbkxpc3QgPSAwOworI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKyAgICBpZiAoIWluY2x1ZGVS
ZWdpb24gfHwgKmluY2x1ZGVSZWdpb24pIAorICAgICAgICBpZiAoZWxlbWVudC0+cmVuZGVyZXIo
KSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5pblJlbmRlckZsb3dUaHJlYWQoKSkgeworICAgICAg
ICAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGVsZW1lbnQtPnJlbmRlcmVyKCkt
PmVuY2xvc2luZ1JlbmRlckZsb3dUaHJlYWQoKTsKKyAgICAgICAgICAgIEFTU0VSVChmbG93VGhy
ZWFkKTsKKyAgICAgICAgICAgIGlmIChmbG93VGhyZWFkICYmIGZsb3dUaHJlYWQtPmhhc1JlZ2lv
bnNXaXRoU3R5bGluZygpKQorICAgICAgICAgICAgICAgIHJlZ2lvbkxpc3QgPSAmZmxvd1RocmVh
ZC0+cmVuZGVyUmVnaW9uTGlzdCgpOworICAgICAgICB9CisjZW5kaWYKKwogICAgIC8vIE1hdGNo
ZWQgcnVsZXMuCiAgICAgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciA9IGVsZW1lbnQtPm93
bmVyRG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpOwotICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4g
bWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci0+c3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVu
dCwgU3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMpOworICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4g
bWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci0+c3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVu
dCwgU3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMsIHJlZ2lvbkxpc3QpOworCiAgICAgbWF0Y2hl
ZENTU1J1bGVzID0gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMuZ2V0
KCksIHN0eWxlUmVzb2x2ZXIsIGVsZW1lbnQpOwogCiAgICAgLy8gUHNldWRvIGVsZW1lbnRzLgog
ICAgIGlmICghaW5jbHVkZVBzZXVkbyB8fCAqaW5jbHVkZVBzZXVkbykgewogICAgICAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4g
PiBwc2V1ZG9FbGVtZW50cyA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpQ
c2V1ZG9JZE1hdGNoZXM+OjpjcmVhdGUoKTsKICAgICAgICAgZm9yIChQc2V1ZG9JZCBwc2V1ZG9J
ZCA9IEZJUlNUX1BVQkxJQ19QU0VVRE9JRDsgcHNldWRvSWQgPCBBRlRFUl9MQVNUX0lOVEVSTkFM
X1BTRVVET0lEOyBwc2V1ZG9JZCA9IHN0YXRpY19jYXN0PFBzZXVkb0lkPihwc2V1ZG9JZCArIDEp
KSB7Ci0gICAgICAgICAgICBSZWZQdHI8Q1NTUnVsZUxpc3Q+IG1hdGNoZWRSdWxlcyA9IHN0eWxl
UmVzb2x2ZXItPnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQsIHBzZXVkb0lkLCBT
dHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7CisKKyAgICAgICAgICAgIFJlZlB0cjxDU1NSdWxl
TGlzdD4gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci0+cHNldWRvU3R5bGVSdWxlc0ZvckVs
ZW1lbnQoZWxlbWVudCwgcHNldWRvSWQsIFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzLCByZWdp
b25MaXN0KTsKKwogICAgICAgICAgICAgaWYgKG1hdGNoZWRSdWxlcyAmJiBtYXRjaGVkUnVsZXMt
Pmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OlBz
ZXVkb0lkTWF0Y2hlcz4gbWF0Y2hlcyA9IFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVkb0lkTWF0Y2hl
czo6Y3JlYXRlKCkKICAgICAgICAgICAgICAgICAgICAgLnNldFBzZXVkb0lkKHN0YXRpY19jYXN0
PGludD4ocHNldWRvSWQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
QWdlbnQuaAppbmRleCAxNDNlNDU0YWE5NmIwMTY4MTk4MDMxNTEwZmY1OTczOGFmMGZlZTE3Li43
M2I3YzMzNWUxZjQwMjk4MmUyMTE4OGEzOTg5ZTljZDBlYzA2NjdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtMTA4LDcgKzEwOCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShFcnJvclN0
cmluZyosIGludCBub2RlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6
OkNTUzo6Q1NTQ29tcHV0ZWRTdHlsZVByb3BlcnR5PiA+Jik7CiAgICAgdmlydHVhbCB2b2lkIGdl
dElubGluZVN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+JiBpbmxpbmVTdHlsZSwgUmVmUHRyPFR5cGVCdWlsZGVy
OjpDU1M6OkNTU1N0eWxlPiYgYXR0cmlidXRlcyk7Ci0gICAgdmlydHVhbCB2b2lkIGdldE1hdGNo
ZWRTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3QgYm9vbCogaW5j
bHVkZVBzZXVkbywgY29uc3QgYm9vbCogaW5jbHVkZUluaGVyaXRlZCwgUmVmUHRyPFR5cGVCdWls
ZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpSdWxlTWF0Y2g+ID4mIG1hdGNoZWRDU1NSdWxl
cywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpQc2V1ZG9JZE1h
dGNoZXM+ID4mIHBzZXVkb0lkTWF0Y2hlcywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBl
QnVpbGRlcjo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5PiA+JiBpbmhlcml0ZWRFbnRyaWVzKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcqLCBp
bnQgbm9kZUlkLCBjb25zdCBib29sKiBpbmNsdWRlUHNldWRvLCBjb25zdCBib29sKiBpbmNsdWRl
SW5oZXJpdGVkLCBjb25zdCBib29sKiBpbmNsdWRlUmVnaW9uLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlJ1bGVNYXRjaD4gPiYgbWF0Y2hlZENTU1J1bGVzLCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVkb0lkTWF0Y2hl
cz4gPiYgcHNldWRvSWRNYXRjaGVzLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWls
ZGVyOjpDU1M6OkluaGVyaXRlZFN0eWxlRW50cnk+ID4mIGluaGVyaXRlZEVudHJpZXMpOwogICAg
IHZpcnR1YWwgdm9pZCBnZXRBbGxTdHlsZVNoZWV0cyhFcnJvclN0cmluZyosIFJlZlB0cjxUeXBl
QnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4gPiYg
c3R5bGVTaGVldEluZm9zKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3R5bGVTaGVldChFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNT
Uzo6Q1NTU3R5bGVTaGVldEJvZHk+JiByZXN1bHQpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRTdHls
ZVNoZWV0VGV4dChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBTdHJp
bmcqIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NTU1N0eWxlTW9kZWwuanMKaW5kZXggZjQ1YjJmOGQ2YmIwNDcxZDYzMmNiMzhhZTdmMjAyNTBi
MTBjZGM5Mi4uNjI2MDVlOGUxMGZlMGQ1MWFjNGE2MzVjYjYwYTg3MTQ2YTVjYTVlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5q
cwpAQCAtMTM1LDcgKzEzNSw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2socmVzdWx0KTsKICAgICAgICAgfQog
Ci0gICAgICAgIENTU0FnZW50LmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKG5vZGVJZCwgbmVlZFBz
ZXVkbywgbmVlZEluaGVyaXRlZCwgY2FsbGJhY2suYmluZChudWxsLCB1c2VyQ2FsbGJhY2spKTsK
KyAgICAgICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUobm9kZUlkLCBuZWVkUHNl
dWRvLCBuZWVkSW5oZXJpdGVkLCBmYWxzZSwgY2FsbGJhY2suYmluZChudWxsLCB1c2VyQ2FsbGJh
Y2spKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGY3Y2NhM2I4MjI1NmM5MjEyOTA3NmE3
YjFlMGM2NmZmOTA4NGI5Ny4uM2Q0NTYzZjg1ODY0ZmJlMWMwNTdiZjY2MDRlNDI0NjU2MWRiOWI0
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAyLTEyICBUYWthc2hpIFNha2Ftb3RvICA8
dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ1NTIFJlZ2lvbnNd
IEluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9kZSBzaG91bGQgY29uc2lk
ZXIgQ1NTIHJlZ2lvbiBzdHlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDkyNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWw6Cisg
ICAgICAgIFNpbmNlIHRoZSBwYXJhbWV0ZXIgbGlzdCBvZiBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0
TWF0Y2hlZFN0eWxlc0Zvck5vZGUKKyAgICAgICAgd2FzIGNoYW5nZWQsIGFkZGVkIHJlZ2lvbiBz
dHlsZSBwYXJhbWV0ZXIsIHdoaWNoIGRlc2NyaWJlcyB3aGV0aGVyCisgICAgICAgIHRvIG9idGFp
biBtYXRjaGVkIHJlZ2lvbiBzdHlsZXMgb3Igbm90IHRvIGFsbAorICAgICAgICAiQ1NTQWdlbnQu
Z2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUiLgorCiAyMDEzLTAyLTEyICBBbmRyZXkgTHVzaG5pa292
ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3Zl
IHNob3dXaGl0ZXNwYWNlIG9wdGlvbiBpbnRvIGV4cGVyaW1lbnRzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0Lmh0bWwK
aW5kZXggMTVhMzUwMTllYTNiYTZlNmVhMzk1MDc5YWYyMWY0MzMyZmFlMDgxZS4uYTlmZDRhODVk
OWM0ODMyNTYyNmI2MTAyYzE5YmZlZDg2YTM0YTcwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9nZXQtc2V0LXN0eWxlc2hlZXQtdGV4dC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQuaHRtbApAQCAt
NzAsNyArNzAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiBub2RlQ2Fs
bGJhY2sobm9kZSkKICAgICAgICAgewotICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0
eWxlc0Zvck5vZGUobm9kZS5pZCwgZmFsc2UsIGZhbHNlLCBjYWxsYmFjayk7CisgICAgICAgICAg
ICBDU1NBZ2VudC5nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShub2RlLmlkLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBjYWxsYmFjayk7CiAgICAgICAgIH0KIAogICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bGVjdE5vZGVXaXRoSWQoImluc3BlY3RlZCIsIG5vZGVDYWxsYmFjayk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwKaW5kZXggOTBiYzQ0MDhh
ODIwYTNmZTFjNjNjZTVlNmYxODBjNGJjM2E2YTgzZS4uNzU4NDRiMGMxN2Y0Y2RjNDNkMzY0ZWM1
NjQ5Mjc3OTFkNDMxODk2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtbmV3LUFQSS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLW5ldy1BUEkuaHRtbApAQCAtODksNyArODksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgIGJvZHlJZCA9IG5vZGUuaWQ7CiAgICAgICAgICAgICBDU1NBZ2VudC5nZXRDb21w
dXRlZFN0eWxlRm9yTm9kZShub2RlLmlkLCBjb21wdXRlZENhbGxiYWNrKTsKICAgICAgICAgICAg
IENTU0FnZW50LmdldElubGluZVN0eWxlc0Zvck5vZGUobm9kZS5pZCwgaW5saW5lQ2FsbGJhY2sp
OwotICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUobm9kZS5pZCwg
dHJ1ZSwgdHJ1ZSwgbWF0Y2hlZENhbGxiYWNrKTsKKyAgICAgICAgICAgIENTU0FnZW50LmdldE1h
dGNoZWRTdHlsZXNGb3JOb2RlKG5vZGUuaWQsIHRydWUsIHRydWUsIGZhbHNlLCBtYXRjaGVkQ2Fs
bGJhY2spOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJ
ZCgibWFpbkJvZHkiLCBub2RlQ2FsbGJhY2spOwogICAgIH0KQEAgLTk3LDcgKzk3LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gdGVzdF9mb3JjZWRTdGF0ZSgpCiAgICAgewogICAg
ICAgICBDU1NBZ2VudC5mb3JjZVBzZXVkb1N0YXRlKGJvZHlJZCwgWyJob3ZlciJdKTsKLSAgICAg
ICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoYm9keUlkLCB0cnVlLCB0cnVlLCBt
YXRjaGVkQ2FsbGJhY2spOworICAgICAgICBDU1NBZ2VudC5nZXRNYXRjaGVkU3R5bGVzRm9yTm9k
ZShib2R5SWQsIHRydWUsIHRydWUsIGZhbHNlLCBtYXRjaGVkQ2FsbGJhY2spOwogCiAgICAgICAg
IGZ1bmN0aW9uIG1hdGNoZWRDYWxsYmFjayhlcnJvciwgbWF0Y2hlZFJ1bGVzKQogICAgICAgICB7
CkBAIC0yMTgsNyArMjE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIENTU0FnZW50LmdldE1hdGNoZWRT
dHlsZXNGb3JOb2RlKGJvZHlJZCwgZmFsc2UsIGZhbHNlLCBkaWRHZXRTdHlsZXMpOworICAgICAg
ICAgICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoYm9keUlkLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBkaWRHZXRTdHlsZXMpOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24g
cnVsZUFkZGVkKGVycm9yLCBydWxlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188979</attachid>
            <date>2013-02-18 20:49:04 -0800</date>
            <delta_ts>2013-05-17 11:17:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109258-20130219134526.patch</filename>
            <type>text/plain</type>
            <size>18506</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM2YTRlNTk3NDNiYmY2
OGNkOTM1NjZkNWJjMTc2MjIwZjZlZGIyMi4uYjEwNjY5ZDdmMTE0YjVmNzNmMzY3NDk2Yjk0NjEy
MzQxNWZhZGNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAyLTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBbQ1NTIFJlZ2lvbnNdIEluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9k
ZSBzaG91bGQgY29uc2lkZXIgQ1NTIHJlZ2lvbiBzdHlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyNTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRNYXRjaGVkU3R5bGVGb3JOb2RlIHNob3Vs
ZCBwcm92aWRlIGEgUmVuZGVyUmVnaW9uTGlzdCwgd2hpY2ggaXMKKyAgICAgICAgb2J0YWluZWQg
ZnJvbSBhIGdpdmVuIG5vZGUncyByZW5kZXIgZmxvdyB0aHJlYWQsIGZvciBTdHlsZVJlc29sdmVy
LgorICAgICAgICBXaXRob3V0IHRoaXMsIHdoZXRoZXIgU3R5bGVSZXNvbHZlciByZXR1cm5zIENT
UyByZWdpb24gc3R5bGVzIG9yIG5vdAorICAgICAgICBkZXBlbmRzIG9uIGl0cyBpbnRlcm5hbCBz
dGF0ZTogcmVnaW9uRm9yU3R5bGluZy4gVGhpcyB3b3VsZCBwcm9iYWJseQorICAgICAgICBtYWtl
IHJlZ2lvbi1zdHlsZS1jcmFzaCBsYXlvdXQgdGVzdCBmYWlsIG9yIGZsYWt5LgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gQ1NTU3R5bGVNb2RlLmpzIGFsd2F5cyBkaXNhYmxlcyBvYnRhaW5pbmcg
bWF0Y2hlZCByZWdpb24KKyAgICAgICAgc3R5bGVzIGN1cnJlbnRseS4KKworICAgICAgICAqIGNz
cy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0
eWxlUnVsZXNGb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnBz
ZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KToKKyAgICAgICAgQWRkZWQgb25lIG1vcmUgcGFyYW1l
dGVyOiBSZW5kZXJSZWdpb25MaXN0LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0U3R5bGVSdWxlc0ZvckVsZW1lbnQpOgorICAgICAg
ICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uOgorICAgICAgICBBZGRlZCBvbmUgbW9yZSBwYXJhbWV0ZXIgdG8gZ2V0TWF0Y2hlZFN0eWxl
c0Zvck5vZGUuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9k
ZSk6CisgICAgICAgIEFkZGVkIG9uZSBtb3JlIHBhcmFtZXRlciB0byBnZXQgbWF0Y2hlZCByZWdp
b24gc3R5bGVzIG9yIG5vdC4KKyAgICAgICAgSWYgdGhlIHBhcmFtZXRlciBpcyB0cnVlLCBvYnRh
aW4gYSByZW5kZXIgZmxvdyB0aHJlYWQgb2YgYSBnaXZlbiBub2RlCisgICAgICAgIGFuZCBpZiB0
aGUgdGhyZWFkIGhhcyBhbnkgcmVnaW9ucyB3aXRoIHN0eWxpbmcsIHByb3ZpZGUgdGhlIHJlbmRl
cgorICAgICAgICByZWdpb24gbGlzdCBmb3IgU3R5bGVSZXNvbHZlci4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvckNTU0FnZW50KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuZ2V0TWF0Y2hlZFN0eWxlc0Fz
eW5jKToKKwogMjAxMy0wMi0xOCAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29rLmNv
bT4KIAogICAgICAgICBbQ3VybF0gVGhlIGZ1bmN0aW9uIGNvb2tpZXNGb3JET00oKSBkb2VzIG5v
dCBiZWhhdmUgY29ycmVjdGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4
IGVkZjUzM2NkYzhiNzA1NmMwZmQwN2E4YzVlZGM1Y2M4NWY5MDBiN2IuLjBlMDczN2QxNTY0OWY5
Y2Y0YjVhZTQwOTk3MzZmYTAwM2UxYzY4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKQEAgLTgwNSwxMCArODA1LDkgQEAgaW5saW5lIHZvaWQgU3R5bGVSZXNvbHZlcjo6aW5p
dEVsZW1lbnQoRWxlbWVudCogZSkKICAgICB9CiB9CiAKLWlubGluZSB2b2lkIFN0eWxlUmVzb2x2
ZXI6OlN0YXRlOjppbml0Rm9yU3R5bGVSZXNvbHZlKERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVu
dCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBQc2V1ZG9JZCBwc2V1ZG9JZCwgUmVuZGVy
UmVnaW9uKiByZWdpb25Gb3JTdHlsaW5nKQoraW5saW5lIHZvaWQgU3R5bGVSZXNvbHZlcjo6U3Rh
dGU6OmluaXRGb3JTdHlsZVJlc29sdmUoRG9jdW1lbnQqIGRvY3VtZW50LCBFbGVtZW50KiBlLCBS
ZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIFBzZXVkb0lkIHBzZXVkb0lkKQogewogICAgIG1fcHNl
dWRvU3R5bGUgPSBwc2V1ZG9JZDsKLSAgICBtX3JlZ2lvbkZvclN0eWxpbmcgPSByZWdpb25Gb3JT
dHlsaW5nOwogCiAgICAgaWYgKGUpIHsKICAgICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgY29u
dGV4dChlKTsKQEAgLTEzODYsNyArMTM4NSw4IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0
eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJTCiAK
ICAgICBTdGF0ZSYgc3RhdGUgPSBtX3N0YXRlOwogICAgIGluaXRFbGVtZW50KGVsZW1lbnQpOwot
ICAgIHN0YXRlLmluaXRGb3JTdHlsZVJlc29sdmUoZG9jdW1lbnQoKSwgZWxlbWVudCwgZGVmYXVs
dFBhcmVudCwgTk9QU0VVRE8sIHJlZ2lvbkZvclN0eWxpbmcpOworICAgIHN0YXRlLmluaXRGb3JT
dHlsZVJlc29sdmUoZG9jdW1lbnQoKSwgZWxlbWVudCwgZGVmYXVsdFBhcmVudCwgTk9QU0VVRE8p
OworICAgIHN0YXRlLnNldFJlZ2lvbkZvclN0eWxpbmcocmVnaW9uRm9yU3R5bGluZyk7CiAgICAg
aWYgKHNoYXJpbmdCZWhhdmlvciA9PSBBbGxvd1N0eWxlU2hhcmluZyAmJiAhc3RhdGUuZGlzdHJp
YnV0ZWRUb0luc2VydGlvblBvaW50KCkpIHsKICAgICAgICAgUmVuZGVyU3R5bGUqIHNoYXJlZFN0
eWxlID0gbG9jYXRlU2hhcmVkU3R5bGUoKTsKICAgICAgICAgaWYgKHNoYXJlZFN0eWxlKQpAQCAt
MjA0NCwxMiArMjA0NCwxMiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnVwZGF0ZUZvbnQoKQogICAg
IG1fc3RhdGUuc2V0Rm9udERpcnR5KGZhbHNlKTsKIH0KIAotUGFzc1JlZlB0cjxDU1NSdWxlTGlz
dD4gU3R5bGVSZXNvbHZlcjo6c3R5bGVSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZSwgdW5zaWdu
ZWQgcnVsZXNUb0luY2x1ZGUpCitQYXNzUmVmUHRyPENTU1J1bGVMaXN0PiBTdHlsZVJlc29sdmVy
OjpzdHlsZVJ1bGVzRm9yRWxlbWVudChFbGVtZW50KiBlLCB1bnNpZ25lZCBydWxlc1RvSW5jbHVk
ZSwgY29uc3QgUmVuZGVyUmVnaW9uTGlzdCogcmVnaW9uTGlzdEZvclN0eWxpbmcpCiB7Ci0gICAg
cmV0dXJuIHBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KGUsIE5PUFNFVURPLCBydWxlc1RvSW5j
bHVkZSk7CisgICAgcmV0dXJuIHBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KGUsIE5PUFNFVURP
LCBydWxlc1RvSW5jbHVkZSwgcmVnaW9uTGlzdEZvclN0eWxpbmcpOwogfQogCi1QYXNzUmVmUHRy
PENTU1J1bGVMaXN0PiBTdHlsZVJlc29sdmVyOjpwc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChF
bGVtZW50KiBlLCBQc2V1ZG9JZCBwc2V1ZG9JZCwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUpCitQ
YXNzUmVmUHRyPENTU1J1bGVMaXN0PiBTdHlsZVJlc29sdmVyOjpwc2V1ZG9TdHlsZVJ1bGVzRm9y
RWxlbWVudChFbGVtZW50KiBlLCBQc2V1ZG9JZCBwc2V1ZG9JZCwgdW5zaWduZWQgcnVsZXNUb0lu
Y2x1ZGUsIGNvbnN0IFJlbmRlclJlZ2lvbkxpc3QqIHJlZ2lvbkxpc3QpCiB7CiAgICAgaWYgKCFl
IHx8ICFlLT5kb2N1bWVudCgpLT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkKICAgICAgICAgcmV0
dXJuIDA7CkBAIC0yMDU5LDYgKzIwNTksMTkgQEAgUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4gU3R5
bGVSZXNvbHZlcjo6cHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZSwgUHMKICAg
ICBpbml0RWxlbWVudChlKTsKICAgICBtX3N0YXRlLmluaXRGb3JTdHlsZVJlc29sdmUoZG9jdW1l
bnQoKSwgZSwgMCwgcHNldWRvSWQpOwogCisgICAgaWYgKHJlZ2lvbkxpc3QpIHsKKyAgICAgICAg
Zm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IHJlZ2lvbkxpc3QtPmJl
Z2luKCk7IGl0ICE9IHJlZ2lvbkxpc3QtPmVuZCgpOyArK2l0KQorICAgICAgICAgICAgY29sbGVj
dFN0eWxlUnVsZXNGb3JFbGVtZW50KHJ1bGVzVG9JbmNsdWRlLCAqaXQpOworICAgIH0gZWxzZQor
ICAgICAgICBjb2xsZWN0U3R5bGVSdWxlc0ZvckVsZW1lbnQocnVsZXNUb0luY2x1ZGUpOworCisg
ICAgbV9zdGF0ZS5zZXRNb2RlKFNlbGVjdG9yQ2hlY2tlcjo6UmVzb2x2aW5nU3R5bGUpOworICAg
IHJldHVybiBtX3N0YXRlLnRha2VSdWxlTGlzdCgpOworfQorCit2b2lkIFN0eWxlUmVzb2x2ZXI6
OmNvbGxlY3RTdHlsZVJ1bGVzRm9yRWxlbWVudCh1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSwgUmVu
ZGVyUmVnaW9uKiByZWdpb25Gb3JTdHlsaW5nKQoreworICAgIG1fc3RhdGUuc2V0UmVnaW9uRm9y
U3R5bGluZyhyZWdpb25Gb3JTdHlsaW5nKTsKICAgICBNYXRjaFJlc3VsdCBkdW1teTsKICAgICBp
ZiAocnVsZXNUb0luY2x1ZGUgJiBVQUFuZFVzZXJDU1NSdWxlcykgewogICAgICAgICAvLyBGaXJz
dCB3ZSBtYXRjaCBydWxlcyBmcm9tIHRoZSB1c2VyIGFnZW50IHNoZWV0LgpAQCAtMjA3NywxMCAr
MjA5MCw2IEBAIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IFN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0
eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGUsIFBzCiAKICAgICAgICAgbV9zdGF0ZS5zZXRT
YW1lT3JpZ2luT25seShmYWxzZSk7CiAgICAgfQotCi0gICAgbV9zdGF0ZS5zZXRNb2RlKFNlbGVj
dG9yQ2hlY2tlcjo6UmVzb2x2aW5nU3R5bGUpOwotCi0gICAgcmV0dXJuIG1fc3RhdGUudGFrZVJ1
bGVMaXN0KCk7CiB9CiAKIGlubGluZSBib29sIFN0eWxlUmVzb2x2ZXI6OnJ1bGVNYXRjaGVzKGNv
bnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUsIFBzZXVk
b0lkJiBkeW5hbWljUHNldWRvLCBTZWxlY3RvckNoZWNrZXI6OkJlaGF2aW9yQXRCb3VuZGFyeSBi
ZWhhdmlvckF0Qm91bmRhcnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAyY2Rh
YzFlZGFlNTFiOGUzNTA0MTU5NDgxYmI2MzNmOGQxMjEwYmM5Li4xOTRmYjFkOGI3YzExZThmZDIz
NDQ1OTA3MTY2YjAwOTFkYzg3YTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmgiCiAjaW5j
bHVkZSAiTGlua0hhc2guaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCisjaW5jbHVkZSAi
UmVuZGVyRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAi
UnVsZUZlYXR1cmUuaCIKICNpbmNsdWRlICJSdWxlU2V0LmgiCkBAIC0yMzIsOCArMjMzLDkgQEAg
cHVibGljOgogICAgICAgICBBbGxCdXRFbXB0eUNTU1J1bGVzID0gVUFBbmRVc2VyQ1NTUnVsZXMg
fCBBdXRob3JDU1NSdWxlcyB8IENyb3NzT3JpZ2luQ1NTUnVsZXMsCiAgICAgICAgIEFsbENTU1J1
bGVzICAgICAgICAgPSBBbGxCdXRFbXB0eUNTU1J1bGVzIHwgRW1wdHlDU1NSdWxlcywKICAgICB9
OwotICAgIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IHN0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1l
bnQqLCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSA9IEFsbEJ1dEVtcHR5Q1NTUnVsZXMpOwotICAg
IFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IHBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1l
bnQqLCBQc2V1ZG9JZCwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1
bGVzKTsKKyAgICBQYXNzUmVmUHRyPENTU1J1bGVMaXN0PiBzdHlsZVJ1bGVzRm9yRWxlbWVudChF
bGVtZW50KiwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVzLCBj
b25zdCBSZW5kZXJSZWdpb25MaXN0KiByZWdpb25MaXN0Rm9yU3R5bGluZyA9IDApOworICAgIFBh
c3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IHBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQq
LCBQc2V1ZG9JZCwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUgPSBBbGxCdXRFbXB0eUNTU1J1bGVz
LCBjb25zdCBSZW5kZXJSZWdpb25MaXN0KiByZWdpb25MaXN0Rm9yU3R5bGluZyA9IDApOworICAg
IHZvaWQgY29sbGVjdFN0eWxlUnVsZXNGb3JFbGVtZW50KHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRl
ID0gQWxsQnV0RW1wdHlDU1NSdWxlcywgUmVuZGVyUmVnaW9uKiByZWdpb25Gb3JTdHlsaW5nID0g
MCk7CiAKICAgICAvLyBHaXZlbiBhIENTUyBrZXl3b3JkIGluIHRoZSByYW5nZSAoeHgtc21hbGwg
dG8gLXdlYmtpdC14eHgtbGFyZ2UpLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCiAgICAgLy8g
dGhlIGNvcnJlY3QgZm9udCBzaXplIHNjYWxlZCByZWxhdGl2ZSB0byB0aGUgdXNlcidzIGRlZmF1
bHQgKG1lZGl1bSkuCkBAIC00NDgsNyArNDUwLDcgQEAgcHVibGljOgogCiAgICAgcHVibGljOgog
ICAgICAgICB2b2lkIGluaXRFbGVtZW50KEVsZW1lbnQqKTsKLSAgICAgICAgdm9pZCBpbml0Rm9y
U3R5bGVSZXNvbHZlKERvY3VtZW50KiwgRWxlbWVudCosIFJlbmRlclN0eWxlKiBwYXJlbnRTdHls
ZSA9IDAsIFBzZXVkb0lkID0gTk9QU0VVRE8sIFJlbmRlclJlZ2lvbiogcmVnaW9uRm9yU3R5bGlu
ZyA9IDApOworICAgICAgICB2b2lkIGluaXRGb3JTdHlsZVJlc29sdmUoRG9jdW1lbnQqLCBFbGVt
ZW50KiwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gMCwgUHNldWRvSWQgPSBOT1BTRVVETyk7
CiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX2VsZW1lbnQtPmRvY3VtZW50KCk7IH0KQEAgLTQ2Niw2ICs0NjgsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyZW50U3R5bGU7IH0KICAgICAgICAgUmVuZGVyU3R5bGUqIHJvb3RFbGVtZW50U3R5
bGUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RFbGVtZW50U3R5bGU7IH0KIAorICAgICAgICB2b2lk
IHNldFJlZ2lvbkZvclN0eWxpbmcoUmVuZGVyUmVnaW9uKiByZWdpb25Gb3JTdHlsaW5nKSB7IG1f
cmVnaW9uRm9yU3R5bGluZyA9IHJlZ2lvbkZvclN0eWxpbmc7IH0KICAgICAgICAgY29uc3QgUmVu
ZGVyUmVnaW9uKiByZWdpb25Gb3JTdHlsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25Gb3JT
dHlsaW5nOyB9CiAgICAgICAgIHZvaWQgc2V0U2FtZU9yaWdpbk9ubHkoYm9vbCBpc1NhbWVPcmln
aW5Pbmx5KSB7IG1fc2FtZU9yaWdpbk9ubHkgPSBpc1NhbWVPcmlnaW5Pbmx5OyB9CiAgICAgICAg
IGJvb2wgaXNTYW1lT3JpZ2luT25seSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtZU9yaWdpbk9ubHk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBjMWNiOTgwNDll
MzczZmU4MzM5YWU1Yjk2ZjgwYTFiMzVmMTBlOGIxLi4xZTE1MDA0MzdhNTJlN2JlZjI2N2NiMDk3
ZDFmNjBhMDNkYjI2MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CkBAIC0yNDA4LDcgKzI0MDgsOCBAQAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2Rl
SWQiIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW5jbHVkZVBzZXVkbyIsICJ0
eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiV2hldGhl
ciB0byBpbmNsdWRlIHBzZXVkbyBzdHlsZXMgKGRlZmF1bHQ6IHRydWUpLiIgfSwKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJpbmNsdWRlSW5oZXJpdGVkIiwgInR5cGUiOiAiYm9vbGVh
biIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRvIGluY2x1ZGUg
aW5oZXJpdGVkIHN0eWxlcyAoZGVmYXVsdDogdHJ1ZSkuIiB9CisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaW5jbHVkZUluaGVyaXRlZCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0byBpbmNsdWRlIGluaGVyaXRlZCBz
dHlsZXMgKGRlZmF1bHQ6IHRydWUpLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJpbmNsdWRlUmVnaW9uIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRvIGluY2x1ZGUgcmVnaW9uIHN0eWxlcyAoZGVmYXVsdDog
dHJ1ZSkuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6
IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtYXRjaGVkQ1NTUnVsZXMiLCAidHlw
ZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiUnVsZU1hdGNoIiB9LCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ1NTIHJ1bGVzIG1hdGNoaW5nIHRoaXMgbm9kZSwgZnJv
bSBhbGwgYXBwbGljYWJsZSBzdHlsZXNoZWV0cy4iIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA5YjlmYTNmNTAyYWY3YWVhNDNiYjk3
YTQ3N2ZjNDM3NmMzMzQ0N2MzLi5lN2Y3ZGZlNTc4YmU1NTM5ZTViMTcwZjJkODI3M2Y0YjRhZGY0
OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJOYW1lZEZsb3dDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
Rmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1ZGUgIlN0eWxl
UHJvcGVydHlTZXQuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2hvcnRoYW5kLmgiCkBAIC03
MTgsMjIgKzcxOSwzOCBAQCBib29sIEluc3BlY3RvckNTU0FnZW50Ojpmb3JjZVBzZXVkb1N0YXRl
KEVsZW1lbnQqIGVsZW1lbnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9UeQogICAgIH0KIH0KIAotdm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdCBib29sKiBpbmNsdWRlUHNldWRvLCBjb25z
dCBib29sKiBpbmNsdWRlSW5oZXJpdGVkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVC
dWlsZGVyOjpDU1M6OlJ1bGVNYXRjaD4gPiYgbWF0Y2hlZENTU1J1bGVzLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4gPiYgcHNldWRv
SWRNYXRjaGVzLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6Oklu
aGVyaXRlZFN0eWxlRW50cnk+ID4mIGluaGVyaXRlZEVudHJpZXMpCit2b2lkIEluc3BlY3RvckNT
U0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGludCBub2RlSWQsIGNvbnN0IGJvb2wqIGluY2x1ZGVQc2V1ZG8sIGNvbnN0IGJvb2wqIGluY2x1
ZGVJbmhlcml0ZWQsIGNvbnN0IGJvb2wqIGluY2x1ZGVSZWdpb24sIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6UnVsZU1hdGNoPiA+JiBtYXRjaGVkQ1NTUnVsZXMs
IFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6UHNldWRvSWRNYXRj
aGVzPiA+JiBwc2V1ZG9JZE1hdGNoZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1
aWxkZXI6OkNTUzo6SW5oZXJpdGVkU3R5bGVFbnRyeT4gPiYgaW5oZXJpdGVkRW50cmllcykKIHsK
ICAgICBFbGVtZW50KiBlbGVtZW50ID0gZWxlbWVudEZvcklkKGVycm9yU3RyaW5nLCBub2RlSWQp
OwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgY29uc3QgUmVuZGVy
UmVnaW9uTGlzdCogcmVnaW9uTGlzdCA9IDA7CisjaWYgRU5BQkxFKENTU19SRUdJT05TKQorICAg
IGlmICghaW5jbHVkZVJlZ2lvbiB8fCAqaW5jbHVkZVJlZ2lvbikgCisgICAgICAgIGlmIChlbGVt
ZW50LT5yZW5kZXJlcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCktPmluUmVuZGVyRmxvd1RocmVh
ZCgpKSB7CisgICAgICAgICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZWxlbWVu
dC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nUmVuZGVyRmxvd1RocmVhZCgpOworICAgICAgICAgICAg
QVNTRVJUKGZsb3dUaHJlYWQpOworICAgICAgICAgICAgaWYgKGZsb3dUaHJlYWQgJiYgZmxvd1Ro
cmVhZC0+aGFzUmVnaW9uc1dpdGhTdHlsaW5nKCkpCisgICAgICAgICAgICAgICAgcmVnaW9uTGlz
dCA9ICZmbG93VGhyZWFkLT5yZW5kZXJSZWdpb25MaXN0KCk7CisgICAgICAgIH0KKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGluY2x1ZGVSZWdpb24pOworI2VuZGlmCisKICAgICAvLyBNYXRjaGVk
IHJ1bGVzLgogICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSBlbGVtZW50LT5vd25l
ckRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKTsKLSAgICBSZWZQdHI8Q1NTUnVsZUxpc3Q+IG1h
dGNoZWRSdWxlcyA9IHN0eWxlUmVzb2x2ZXItPnN0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQs
IFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKKyAgICBSZWZQdHI8Q1NTUnVsZUxpc3Q+IG1h
dGNoZWRSdWxlcyA9IHN0eWxlUmVzb2x2ZXItPnN0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQs
IFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzLCByZWdpb25MaXN0KTsKKwogICAgIG1hdGNoZWRD
U1NSdWxlcyA9IGJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVsZUxpc3QobWF0Y2hlZFJ1bGVzLmdldCgp
LCBzdHlsZVJlc29sdmVyLCBlbGVtZW50KTsKIAogICAgIC8vIFBzZXVkbyBlbGVtZW50cy4KICAg
ICBpZiAoIWluY2x1ZGVQc2V1ZG8gfHwgKmluY2x1ZGVQc2V1ZG8pIHsKICAgICAgICAgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM+ID4g
cHNldWRvRWxlbWVudHMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6UHNl
dWRvSWRNYXRjaGVzPjo6Y3JlYXRlKCk7CiAgICAgICAgIGZvciAoUHNldWRvSWQgcHNldWRvSWQg
PSBGSVJTVF9QVUJMSUNfUFNFVURPSUQ7IHBzZXVkb0lkIDwgQUZURVJfTEFTVF9JTlRFUk5BTF9Q
U0VVRE9JRDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4ocHNldWRvSWQgKyAxKSkg
ewotICAgICAgICAgICAgUmVmUHRyPENTU1J1bGVMaXN0PiBtYXRjaGVkUnVsZXMgPSBzdHlsZVJl
c29sdmVyLT5wc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBwc2V1ZG9JZCwgU3R5
bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMpOworCisgICAgICAgICAgICBSZWZQdHI8Q1NTUnVsZUxp
c3Q+IG1hdGNoZWRSdWxlcyA9IHN0eWxlUmVzb2x2ZXItPnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVt
ZW50KGVsZW1lbnQsIHBzZXVkb0lkLCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcywgcmVnaW9u
TGlzdCk7CisKICAgICAgICAgICAgIGlmIChtYXRjaGVkUnVsZXMgJiYgbWF0Y2hlZFJ1bGVzLT5s
ZW5ndGgoKSkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpQc2V1
ZG9JZE1hdGNoZXM+IG1hdGNoZXMgPSBUeXBlQnVpbGRlcjo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6
OmNyZWF0ZSgpCiAgICAgICAgICAgICAgICAgICAgIC5zZXRQc2V1ZG9JZChzdGF0aWNfY2FzdDxp
bnQ+KHBzZXVkb0lkKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0Fn
ZW50LmgKaW5kZXggZDM1YzliYzMzZTQ0N2M2YWI0MzkzNTg2ZGI5NTkzZGEwMTk1MDQyNi4uNTQz
MTdkYmM3MWMwM2RkYjI5NDg2Y2NjNjA2Mzg5MzFmZWE5NzA4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJp
bmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpD
U1M6OkNTU0NvbXB1dGVkU3R5bGVQcm9wZXJ0eT4gPiYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJ
bmxpbmVTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgUmVmUHRyPFR5cGVC
dWlsZGVyOjpDU1M6OkNTU1N0eWxlPiYgaW5saW5lU3R5bGUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6
Q1NTOjpDU1NTdHlsZT4mIGF0dHJpYnV0ZXMpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRNYXRjaGVk
U3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIGNvbnN0IGJvb2wqIGluY2x1
ZGVQc2V1ZG8sIGNvbnN0IGJvb2wqIGluY2x1ZGVJbmhlcml0ZWQsIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6UnVsZU1hdGNoPiA+JiBtYXRjaGVkQ1NTUnVsZXMs
IFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6UHNldWRvSWRNYXRj
aGVzPiA+JiBwc2V1ZG9JZE1hdGNoZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1
aWxkZXI6OkNTUzo6SW5oZXJpdGVkU3R5bGVFbnRyeT4gPiYgaW5oZXJpdGVkRW50cmllcyk7Cisg
ICAgdmlydHVhbCB2b2lkIGdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50
IG5vZGVJZCwgY29uc3QgYm9vbCogaW5jbHVkZVBzZXVkbywgY29uc3QgYm9vbCogaW5jbHVkZUlu
aGVyaXRlZCwgY29uc3QgYm9vbCogaW5jbHVkZVJlZ2lvbiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpB
cnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpSdWxlTWF0Y2g+ID4mIG1hdGNoZWRDU1NSdWxlcywgUmVm
UHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM+
ID4mIHBzZXVkb0lkTWF0Y2hlcywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRl
cjo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5PiA+JiBpbmhlcml0ZWRFbnRyaWVzKTsKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+ID4mIHN0
eWxlU2hlZXRJbmZvcyk7CiAgICAgdmlydHVhbCB2b2lkIGdldFN0eWxlU2hlZXQoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6
OkNTU1N0eWxlU2hlZXRCb2R5PiYgcmVzdWx0KTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3R5bGVT
aGVldFRleHQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgU3RyaW5n
KiByZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
U1NTdHlsZU1vZGVsLmpzCmluZGV4IGE3NTViYTVmM2YzMTc2NWEyZTk2NDNhNzE3ODAwNzQwOGY2
YmMwMDcuLmViZTU4ZmZjODhhZmEzZmI0MWZjNTgwNWQ0YWQwZTU1MWNkZWUzZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMK
QEAgLTEzNyw3ICsxMzcsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKHJlc3VsdCk7CiAgICAgICAgIH0KIAot
ICAgICAgICBDU1NBZ2VudC5nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShub2RlSWQsIG5lZWRQc2V1
ZG8sIG5lZWRJbmhlcml0ZWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7Cisg
ICAgICAgIENTU0FnZW50LmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKG5vZGVJZCwgbmVlZFBzZXVk
bywgbmVlZEluaGVyaXRlZCwgZmFsc2UsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNr
KSk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk0YmFmMDEzOWNhNGRmYzdhMDAxYzY4ZTNj
ZjM0OTZhYmE2NmI3MzIuLjZjMzJhNmU1NDhhODM5MzFhMTEyMzk3NTBiMWM5ZDFlMDRlNTlkNDUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0xOCAgVGFrYXNoaSBTYWthbW90byAgPHRh
c2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0NTUyBSZWdpb25zXSBJ
bnNwZWN0b3JDU1NBZ2VudDo6Z2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUgc2hvdWxkIGNvbnNpZGVy
IENTUyByZWdpb24gc3R5bGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA5MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0Lmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sOgorICAg
ICAgICBTaW5jZSB0aGUgcGFyYW1ldGVyIGxpc3Qgb2YgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1h
dGNoZWRTdHlsZXNGb3JOb2RlCisgICAgICAgIHdhcyBjaGFuZ2VkLCBhZGRlZCByZWdpb24gc3R5
bGUgcGFyYW1ldGVyLCB3aGljaCBkZXNjcmliZXMgd2hldGhlcgorICAgICAgICB0byBvYnRhaW4g
bWF0Y2hlZCByZWdpb24gc3R5bGVzIG9yIG5vdCB0byBhbGwKKyAgICAgICAgIkNTU0FnZW50Lmdl
dE1hdGNoZWRTdHlsZXNGb3JOb2RlIi4KKwogMjAxMy0wMi0xOCAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFN0cnVjdHVyZTo6ZmxhdHRlbkRpY3Rpb25hcnlTdHJ1
Y3R1cmUgc2hvdWxkIGNvbXB1dGUgbWF4IG9mZnNldCBpbiBhIG1hbm5lciB0aGF0IHNvdW5kbHkg
aGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB0aGUgcHJvcGVydHkgbGlzdCBiZWNvbWVzIGVtcHR5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVl
dC10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVz
aGVldC10ZXh0Lmh0bWwKaW5kZXggMTVhMzUwMTllYTNiYTZlNmVhMzk1MDc5YWYyMWY0MzMyZmFl
MDgxZS4uYTlmZDRhODVkOWM0ODMyNTYyNmI2MTAyYzE5YmZlZDg2YTM0YTcwMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9nZXQtc2V0LXN0eWxlc2hlZXQtdGV4dC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0
LXRleHQuaHRtbApAQCAtNzAsNyArNzAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBm
dW5jdGlvbiBub2RlQ2FsbGJhY2sobm9kZSkKICAgICAgICAgewotICAgICAgICAgICAgQ1NTQWdl
bnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUobm9kZS5pZCwgZmFsc2UsIGZhbHNlLCBjYWxsYmFj
ayk7CisgICAgICAgICAgICBDU1NBZ2VudC5nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShub2RlLmlk
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjYWxsYmFjayk7CiAgICAgICAgIH0KIAogICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoImluc3BlY3RlZCIsIG5vZGVDYWxsYmFjayk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJ
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwK
aW5kZXggOTBiYzQ0MDhhODIwYTNmZTFjNjNjZTVlNmYxODBjNGJjM2E2YTgzZS4uNzU4NDRiMGMx
N2Y0Y2RjNDNkMzY0ZWM1NjQ5Mjc3OTFkNDMxODk2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbApAQCAtODksNyArODksNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGJvZHlJZCA9IG5vZGUuaWQ7CiAgICAgICAgICAgICBD
U1NBZ2VudC5nZXRDb21wdXRlZFN0eWxlRm9yTm9kZShub2RlLmlkLCBjb21wdXRlZENhbGxiYWNr
KTsKICAgICAgICAgICAgIENTU0FnZW50LmdldElubGluZVN0eWxlc0Zvck5vZGUobm9kZS5pZCwg
aW5saW5lQ2FsbGJhY2spOwotICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zv
ck5vZGUobm9kZS5pZCwgdHJ1ZSwgdHJ1ZSwgbWF0Y2hlZENhbGxiYWNrKTsKKyAgICAgICAgICAg
IENTU0FnZW50LmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKG5vZGUuaWQsIHRydWUsIHRydWUsIGZh
bHNlLCBtYXRjaGVkQ2FsbGJhY2spOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
c2VsZWN0Tm9kZVdpdGhJZCgibWFpbkJvZHkiLCBub2RlQ2FsbGJhY2spOwogICAgIH0KQEAgLTk3
LDcgKzk3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gdGVzdF9mb3JjZWRTdGF0
ZSgpCiAgICAgewogICAgICAgICBDU1NBZ2VudC5mb3JjZVBzZXVkb1N0YXRlKGJvZHlJZCwgWyJo
b3ZlciJdKTsKLSAgICAgICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoYm9keUlk
LCB0cnVlLCB0cnVlLCBtYXRjaGVkQ2FsbGJhY2spOworICAgICAgICBDU1NBZ2VudC5nZXRNYXRj
aGVkU3R5bGVzRm9yTm9kZShib2R5SWQsIHRydWUsIHRydWUsIGZhbHNlLCBtYXRjaGVkQ2FsbGJh
Y2spOwogCiAgICAgICAgIGZ1bmN0aW9uIG1hdGNoZWRDYWxsYmFjayhlcnJvciwgbWF0Y2hlZFJ1
bGVzKQogICAgICAgICB7CkBAIC0yMTgsNyArMjE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIENTU0Fn
ZW50LmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKGJvZHlJZCwgZmFsc2UsIGZhbHNlLCBkaWRHZXRT
dHlsZXMpOworICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoYm9k
eUlkLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBkaWRHZXRTdHlsZXMpOwogICAgICAgICB9CiAKICAg
ICAgICAgZnVuY3Rpb24gcnVsZUFkZGVkKGVycm9yLCBydWxlKQo=
</data>
<flag name="review"
          id="209248"
          type_id="1"
          status="-"
          setter="achicu"
    />
          </attachment>
      

    </bug>

</bugzilla>