<?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>105477</bug_id>
          
          <creation_ts>2012-12-19 16:41:33 -0800</creation_ts>
          <short_desc>Implement ::cue() pseudo element property whitelist</short_desc>
          <delta_ts>2013-01-19 23:26:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>43668</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dima Gorbik">dgorbik</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>silviapf</cc>
    
    <cc>vcarbune</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>795033</commentid>
    <comment_count>0</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2012-12-19 16:41:33 -0800</bug_when>
    <thetext>Specs require that only certain properties could be applied with the ::cue pseudo-element.
http://dev.w3.org/html5/webvtt/#the-&apos;::cue&apos;-pseudo-element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795035</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-12-19 16:42:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/12914495&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808975</commentid>
    <comment_count>2</comment_count>
      <attachid>183095</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-16 18:59:49 -0800</bug_when>
    <thetext>Created attachment 183095
Proposed fix 0.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808982</commentid>
    <comment_count>3</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2013-01-16 19:09:20 -0800</bug_when>
    <thetext>Nice! Could you add to your test a CSS setting that is not supported by WebVTT and show that it is not being executed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808990</commentid>
    <comment_count>4</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-16 19:22:16 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Nice! Could you add to your test a CSS setting that is not supported by WebVTT and show that it is not being executed?

This is what padding is for :-)
This whitelisting patch doesn&apos;t work for the ::cue without an argument yet though. I will fix this soon later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808996</commentid>
    <comment_count>5</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-16 19:33:02 -0800</bug_when>
    <thetext>Also properties with the background shorthand should be applied to the cueDisplayBox instead of WebVTT properties. I haven&apos;t yet find a way to do this without touching too much css resolving code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809003</commentid>
    <comment_count>6</comment_count>
      <attachid>183095</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-16 19:46:32 -0800</bug_when>
    <thetext>Comment on attachment 183095
Proposed fix 0.1

Attachment 183095 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15910715

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809045</commentid>
    <comment_count>7</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-16 21:01:28 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 183095 [details])
&gt; Attachment 183095 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/15910715
&gt; 
&gt; New failing tests:
&gt; inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html

This test runs locally perfectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809842</commentid>
    <comment_count>8</comment_count>
      <attachid>183095</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-17 15:02:32 -0800</bug_when>
    <thetext>Comment on attachment 183095
Proposed fix 0.1

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

Looks pretty ok, some comments to consider though.

&gt; Source/WebCore/css/RuleSet.cpp:122
&gt; -    , m_isInRegionRule(!!(addRuleFlags &amp; RuleIsInRegionRule))
&gt; +    , m_whitelistFlags((addRuleFlags &amp; RuleIsInRegionRule) ? static_cast&lt;unsigned&gt;(PropertyWhitelistRegion) : static_cast&lt;unsigned&gt;(PropertyWhitelistNone))

It would be nicer to extract the m_whitelistFlag in RuleData constructor for cues too. Please use inline function like some other bits. Then all this is in one place.

&gt; Source/WebCore/css/RuleSet.cpp:222
&gt;      if (selector-&gt;pseudoType() == CSSSelector::PseudoCue) {
&gt; +        ruleData.setIsInCueRule();
&gt;          m_cuePseudoRules.append(ruleData);
&gt;          return;

...instead of randomly doing this one bit here.

&gt; Source/WebCore/css/RuleSet.h:46
&gt; +enum PropertyWhitelistFlags {
&gt; +    PropertyWhitelistNone   = 0,
&gt; +    PropertyWhitelistRegion = 1,
&gt; +#if ENABLE(VIDEO_TRACK)
&gt; +    PropertyWhitelistCue    = 1 &lt;&lt; 1,
&gt; +#endif

Whitelists are probably always mutually exclusive yet this looks like they are not. You could just call it PropertyWhitelistType and use default enum values. Using equality comparisons everywhere looks slightly nicer than bitops.

&gt; Source/WebCore/css/RuleSet.h:76
&gt; +    bool isInRegionRule() const { return m_whitelistFlags &amp; PropertyWhitelistRegion; }
&gt; +    PropertyWhitelistFlags whitelistType() const {return static_cast&lt;PropertyWhitelistFlags&gt;(m_whitelistFlags); }
&gt; +#if ENABLE(VIDEO_TRACK)
&gt; +    bool isInCueRule() const { return m_whitelistFlags &amp; PropertyWhitelistCue; }
&gt; +    void setIsInCueRule()  { m_whitelistFlags |= PropertyWhitelistCue; }

propertyWhitelistType()

I don&apos;t think you need other accessors, they can be removed.

&gt; Source/WebCore/css/RuleSet.h:97
&gt; +    unsigned m_whitelistFlags : 2;

m_propertyWhitelistType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810200</commentid>
    <comment_count>9</comment_count>
      <attachid>183367</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-17 21:16:23 -0800</bug_when>
    <thetext>Created attachment 183367
Proposed fix 0.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810773</commentid>
    <comment_count>10</comment_count>
      <attachid>183367</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-18 10:18:25 -0800</bug_when>
    <thetext>Comment on attachment 183367
Proposed fix 0.2

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

&gt; Source/WebCore/css/RuleSet.h:42
&gt; +    PropertyWhitelistNone   = 0,

= 0 is unnecessary (and there is extra space)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810774</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-18 10:19:08 -0800</bug_when>
    <thetext>r=me, nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810780</commentid>
    <comment_count>12</comment_count>
      <attachid>183367</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-18 10:24:14 -0800</bug_when>
    <thetext>Comment on attachment 183367
Proposed fix 0.2

Clearing flags on attachment: 183367

Committed r140173: &lt;http://trac.webkit.org/changeset/140173&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810781</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-18 10:24:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811438</commentid>
    <comment_count>14</comment_count>
      <attachid>183367</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-01-19 11:24:48 -0800</bug_when>
    <thetext>Comment on attachment 183367
Proposed fix 0.2

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

&gt; LayoutTests/media/track/track-css-property-whitelist.html:21
&gt; +            while (nextElementSibling.nodeType != 1) {

Nit: Node.ELEMENT_NODE would be clearer.

&gt; LayoutTests/media/track/track-css-property-whitelist.html:23
&gt; +                nextElementSibling = nextElementSibling.nextSibling;
&gt; +            }

Nit: braces not needed.

&gt; LayoutTests/media/track/track-css-property-whitelist.html:36
&gt; +            skipNonElements(cueNode);

Does this line do anything?

&gt; Source/WebCore/css/RuleSet.cpp:111
&gt; +static inline PropertyWhitelistType determinePropertyWhitelistType(const AddRuleFlags addRuleFlags, const CSSSelector* selector)

This should have UNUSED_PARAM for platforms that don&apos;t ENABLE(VIDEO_TRACK)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811566</commentid>
    <comment_count>15</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-19 23:26:46 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 183367 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=183367&amp;action=review
&gt; 
&gt; &gt; LayoutTests/media/track/track-css-property-whitelist.html:21
&gt; &gt; +            while (nextElementSibling.nodeType != 1) {
&gt; 
&gt; Nit: Node.ELEMENT_NODE would be clearer.
&gt; 
&gt; &gt; LayoutTests/media/track/track-css-property-whitelist.html:23
&gt; &gt; +                nextElementSibling = nextElementSibling.nextSibling;
&gt; &gt; +            }
&gt; 
&gt; Nit: braces not needed.
&gt; 
&gt; &gt; LayoutTests/media/track/track-css-property-whitelist.html:36
&gt; &gt; +            skipNonElements(cueNode);
&gt; 
&gt; Does this line do anything?
&gt; 
&gt; &gt; Source/WebCore/css/RuleSet.cpp:111
&gt; &gt; +static inline PropertyWhitelistType determinePropertyWhitelistType(const AddRuleFlags addRuleFlags, const CSSSelector* selector)
&gt; 
&gt; This should have UNUSED_PARAM for platforms that don&apos;t ENABLE(VIDEO_TRACK)

Thanks, I will fix those when I touch the whitelisting code soon.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183095</attachid>
            <date>2013-01-16 18:59:49 -0800</date>
            <delta_ts>2013-01-17 21:16:23 -0800</delta_ts>
            <desc>Proposed fix 0.1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19176</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiM2Q0MzkyLi5jZWMzZGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDEt
MTYgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDo6Y3VlKCkgcHNldWRvIGVsZW1lbnQgcHJvcGVydHkgd2hpdGVsaXN0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25z
LXdlYnZ0dC93aGl0ZWxpc3QudnR0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFj
ay1jc3MtcHJvcGVydHktd2hpdGVsaXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
bWVkaWEvdHJhY2svdHJhY2stY3NzLXByb3BlcnR5LXdoaXRlbGlzdC5odG1sOiBBZGRlZC4KKwog
MjAxMy0wMS0xNiAgVmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQ3VlcyBub3QgcmVuZGVyZWQgd2hlbiB0aGV5IHNob3VsZCBiZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3doaXRlbGlzdC52dHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvd2hpdGVsaXN0LnZ0dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODg1NzFjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3doaXRlbGlzdC52dHQK
QEAgLTAsMCArMSw1IEBACitXRUJWVFQKKworMQorMDA6MDAuMDAwIC0tPiAwMDowMC4yMDAKKzxj
LnJlZD5PbmUsPC9jPiA8Yz50d28sPC9jPiA8Yz50aHJlZS48L2M+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtcHJvcGVydHktd2hpdGVsaXN0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxp
c3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1MmNm
NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3Mt
cHJvcGVydHktd2hpdGVsaXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitFVkVOVChj
YW5wbGF5dGhyb3VnaCkKK0VWRU5UKHNlZWtlZCkKKworCitUZXN0IHRoYXQgb25seSBhbGxvd2Vk
IGZvciB0aGUgOjpjdWUgcHNldWRvLWVsZW1lbnQgcHJvcGVydGllcyBhcmUgYXBwbGllZCB0byBX
ZWJWVFQgbm9kZSBvYmplY3RzLgorRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSku
Y29sb3IgPT0gJ3JnYigyNTUsIDAsIDApJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxl
KGN1ZU5vZGUpLnBhZGRpbmcgPT0gJzBweCcpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHls
ZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMCwgMCknKSBPSworRVhQRUNURUQgKGdldENv
bXB1dGVkU3R5bGUoY3VlTm9kZSkucGFkZGluZyA9PSAnMHB4JykgT0sKK0VYUEVDVEVEIChnZXRD
b21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAwLCAwKScpIE9LCitFWFBF
Q1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5wYWRkaW5nID09ICcwcHgnKSBPSworRU5E
IE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Nz
LXByb3BlcnR5LXdoaXRlbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
Y3NzLXByb3BlcnR5LXdoaXRlbGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmRlMjFlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1jc3MtcHJvcGVydHktd2hpdGVsaXN0Lmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CisK
KyAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Li4vbWVkaWEtY29udHJvbHMuanM+PC9zY3JpcHQ+CisKKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICA6OmN1ZShjKSB7cGFkZGluZy1sZWZ0OiAxMHB4OyBjb2xvcjogcmVkO30KKyAgICAgICAg
PC9zdHlsZT4KKworICAgICAgICA8c2NyaXB0PgorCisgICAgICAgIHZhciBjdWVOb2RlOworCisg
ICAgICAgIGZ1bmN0aW9uIHNraXBOb25FbGVtZW50cyhyb290KQorICAgICAgICB7CisgICAgICAg
ICAgICBuZXh0RWxlbWVudFNpYmxpbmcgPSByb290OworICAgICAgICAgICAgd2hpbGUgKG5leHRF
bGVtZW50U2libGluZy5ub2RlVHlwZSAhPSAxKSB7CisgICAgICAgICAgICAgICAgbmV4dEVsZW1l
bnRTaWJsaW5nID0gbmV4dEVsZW1lbnRTaWJsaW5nLm5leHRTaWJsaW5nOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgcmV0dXJuIG5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIHNlZWtlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
RW5kZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoIjxicj4iKTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0IG9ubHkgYWxs
b3dlZCBmb3IgdGhlIDo6Y3VlIHBzZXVkby1lbGVtZW50IHByb3BlcnRpZXMgYXJlIGFwcGxpZWQg
dG8gV2ViVlRUIG5vZGUgb2JqZWN0cy4iKTsKKworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBO
b25FbGVtZW50cyh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2RlcycpLmZp
cnN0Q2hpbGQpOworICAgICAgICAgICAgc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUpOworICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJn
YigyNTUsIDAsIDApIik7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5
bGUoY3VlTm9kZSkucGFkZGluZyIsICIwcHgiKTsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lw
Tm9uRWxlbWVudHMoY3VlTm9kZS5uZXh0U2libGluZyk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsK
KyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5wYWRk
aW5nIiwgIjBweCIpOworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyhjdWVO
b2RlLm5leHRTaWJsaW5nKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRT
dHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMjU1LCAwLCAwKSIpOworICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLnBhZGRpbmciLCAiMHB4Iik7Cisg
ICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBsb2Fk
ZWQoKQorICAgICAgICB7CisgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAg
ICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3Qn
KTsKKyAgICAgICAgICAgIHZpZGVvLmlkID0gInRlc3R2aWRlbyI7CisgICAgICAgICAgICB3YWl0
Rm9yRXZlbnQoJ3NlZWtlZCcsIHNlZWtlZCk7CisgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2Nh
bnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7IHZpZGVvLmN1cnJlbnRUaW1lID0gMC4xOyB9KTsK
KyAgICAgICAgfQorCisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBv
bmxvYWQ9ImxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzID4KKyAgICAgICAgICAg
IDx0cmFjayBzcmM9ImNhcHRpb25zLXdlYnZ0dC93aGl0ZWxpc3QudnR0IiBraW5kPSJjYXB0aW9u
cyIgZGVmYXVsdD4KKyAgICAgICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNTE1NGRiYS4uOWU0ZjFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDEzLTAxLTE2ICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCA6OmN1ZSgpIHBzZXVkbyBlbGVtZW50IHByb3BlcnR5IHdoaXRlbGlzdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDc3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSBhbGxvd2VkIGJ5
IHNwZWNzIHByb3BlcnRpZXMgYXJlIGFwcGxpZWQgdG8gV2ViVlRUIG5vZGVzLiBXZSB1c2VkIHdo
aXRlbGlzdHMgYmVmb3JlIGZvciB0aGUgcmVnaW9uCisgICAgICAgIHN0eWxlIHJ1bGUgc28gdGhp
cyByZWZhY3RvcnMgdGhlIGNvZGUgYSBsaXR0bGUgYml0IHRvIHBhc3MgYml0ZmllbGRzIHRoYXQg
Y29udGFpbiB0aGUgaW5mb3JtYXRpb24gb24gd2hpY2ggCisgICAgICAgIHdoaXRlbGlzdHMgc2hv
dWxkIGJlIHVzZWQuCisKKyAgICAgICAgVGVzdDogbWVkaWEvdHJhY2svdHJhY2stY3NzLXByb3Bl
cnR5LXdoaXRlbGlzdC5odG1sCisKKyAgICAgICAgKiBjc3MvUnVsZVNldC5jcHA6IAorICAgICAg
ICAoV2ViQ29yZTo6UnVsZURhdGE6OlJ1bGVEYXRhKTogc2V0IGEgcmVnaW9uIGJpdCB3aGVuIGNy
ZWF0aW5nIGEgUnVsZURhdGEuCisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjphZGRSdWxlKTog
c2V0IGEgY3VlIGJpdCB3aGVuIFBzZXVkb0N1ZSB0eXBlIGlzIHNldCBmb3IgYSBzZWxlY3Rvci4K
KyAgICAgICAgKiBjc3MvUnVsZVNldC5oOiBhZGQgdGhlIG5ldyBiaXRmaWVsZCBhcyBhbiBpdmFy
IGFuZCBzZXR0ZXJzL2dldHRlcnMgdG8gYWNjZXNzIGl0LgorICAgICAgICAoV2ViQ29yZTo6UnVs
ZURhdGE6OmlzSW5SZWdpb25SdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRhOjp3aGl0
ZWxpc3RUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRhOjppc0luQ3VlUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdWxlRGF0YTo6c2V0SXNJbkN1ZVJ1bGUpOgorICAgICAgICAqIGNz
cy9TdHlsZVJlc29sdmVyLmNwcDogcmVmYWN0b3IgdGhlIGNvZGUgdG8gcGFzcyBhIGJpdGZpZWxk
IGluc3RlYWQgb2Ygc2luZ2xlIGJpdHMuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVy
OjphZGRNYXRjaGVkUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVy
Ojpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
ZXNvbHZlcjo6YXBwbHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNv
bHZlcjo6aXNWYWxpZEN1ZVN0eWxlUHJvcGVydHkpOiAKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNv
bHZlci5oOgorCiAyMDEzLTAxLTE2ICBFbGxpb3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEN1cnNvciBzdG9wcyBibGlua2luZyBhZnRlciBjbGlja2luZyBvbiBz
Y3JvbGxiYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAppbmRleCBhN2MzMmRmLi43NTRhNzJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0xMTIsMTQgKzExMiwxNCBAQCBSdWxlRGF0YTo6UnVsZURh
dGEoU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCB1bnNpZ25lZCBwb3Np
dGlvbiwgQQogICAgIDogbV9ydWxlKHJ1bGUpCiAgICAgLCBtX3NlbGVjdG9ySW5kZXgoc2VsZWN0
b3JJbmRleCkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCi0gICAgLCBtX3NwZWNpZmljaXR5
KHNlbGVjdG9yKCktPnNwZWNpZmljaXR5KCkpCiAgICAgLCBtX2hhc0Zhc3RDaGVja2FibGVTZWxl
Y3RvcigoYWRkUnVsZUZsYWdzICYgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yKSAmJiBTZWxl
Y3RvckNoZWNrZXI6OmlzRmFzdENoZWNrYWJsZVNlbGVjdG9yKHNlbGVjdG9yKCkpKQorICAgICwg
bV9zcGVjaWZpY2l0eShzZWxlY3RvcigpLT5zcGVjaWZpY2l0eSgpKQogICAgICwgbV9oYXNNdWx0
aXBhcnRTZWxlY3RvcighIXNlbGVjdG9yKCktPnRhZ0hpc3RvcnkoKSkKICAgICAsIG1faGFzUmln
aHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2goaXNTZWxlY3Rvck1hdGNo
aW5nSFRNTEJhc2VkT25SdWxlSGFzaChzZWxlY3RvcigpKSkKICAgICAsIG1fY29udGFpbnNVbmNv
bW1vbkF0dHJpYnV0ZVNlbGVjdG9yKFdlYkNvcmU6OmNvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVT
ZWxlY3RvcihzZWxlY3RvcigpKSkKICAgICAsIG1fbGlua01hdGNoVHlwZShTZWxlY3RvckNoZWNr
ZXI6OmRldGVybWluZUxpbmtNYXRjaFR5cGUoc2VsZWN0b3IoKSkpCiAgICAgLCBtX2hhc0RvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4oYWRkUnVsZUZsYWdzICYgUnVsZUhhc0RvY3VtZW50U2VjdXJpdHlP
cmlnaW4pCi0gICAgLCBtX2lzSW5SZWdpb25SdWxlKCEhKGFkZFJ1bGVGbGFncyAmIFJ1bGVJc0lu
UmVnaW9uUnVsZSkpCisgICAgLCBtX3doaXRlbGlzdEZsYWdzKChhZGRSdWxlRmxhZ3MgJiBSdWxl
SXNJblJlZ2lvblJ1bGUpID8gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5V2hpdGVsaXN0
UmVnaW9uKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eVdoaXRlbGlzdE5vbmUpKQog
ewogICAgIEFTU0VSVChtX3Bvc2l0aW9uID09IHBvc2l0aW9uKTsKICAgICBBU1NFUlQobV9zZWxl
Y3RvckluZGV4ID09IHNlbGVjdG9ySW5kZXgpOwpAQCAtMjE3LDYgKzIxNyw3IEBAIHZvaWQgUnVs
ZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIEFk
ZFJ1bGVGbGFncyBhZGRSCiAgICAgfQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBpZiAo
c2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ3VlKSB7CisgICAg
ICAgIHJ1bGVEYXRhLnNldElzSW5DdWVSdWxlKCk7CiAgICAgICAgIG1fY3VlUHNldWRvUnVsZXMu
YXBwZW5kKHJ1bGVEYXRhKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5o
CmluZGV4IGVkZmVmZDMuLmVjNzhhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9S
dWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtMzcsNiArMzcs
MTQgQEAgZW51bSBBZGRSdWxlRmxhZ3MgewogICAgIFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3Rv
ciAgID0gMSA8PCAxLAogICAgIFJ1bGVJc0luUmVnaW9uUnVsZSAgICAgICAgICAgID0gMSA8PCAy
LAogfTsKKyAgICAKK2VudW0gUHJvcGVydHlXaGl0ZWxpc3RGbGFncyB7CisgICAgUHJvcGVydHlX
aGl0ZWxpc3ROb25lICAgPSAwLAorICAgIFByb3BlcnR5V2hpdGVsaXN0UmVnaW9uID0gMSwKKyNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgUHJvcGVydHlXaGl0ZWxpc3RDdWUgICAgPSAxIDw8
IDEsCisjZW5kaWYKK307CiAKIGNsYXNzIENTU1NlbGVjdG9yOwogY2xhc3MgQ29udGFpbmVyTm9k
ZTsKQEAgLTYxLDggKzY5LDEyIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3BlY2lmaWNpdHk7IH0KICAgICB1bnNpZ25lZCBsaW5rTWF0Y2hU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV9saW5rTWF0Y2hUeXBlOyB9CiAgICAgYm9vbCBoYXNEb2N1
bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9oYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luOyB9Ci0gICAgYm9vbCBpc0luUmVnaW9uUnVsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNJ
blJlZ2lvblJ1bGU7IH0KLQorICAgIGJvb2wgaXNJblJlZ2lvblJ1bGUoKSBjb25zdCB7IHJldHVy
biBtX3doaXRlbGlzdEZsYWdzICYgUHJvcGVydHlXaGl0ZWxpc3RSZWdpb247IH0KKyAgICBQcm9w
ZXJ0eVdoaXRlbGlzdEZsYWdzIHdoaXRlbGlzdFR5cGUoKSBjb25zdCB7cmV0dXJuIHN0YXRpY19j
YXN0PFByb3BlcnR5V2hpdGVsaXN0RmxhZ3M+KG1fd2hpdGVsaXN0RmxhZ3MpOyB9CisjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQorICAgIGJvb2wgaXNJbkN1ZVJ1bGUoKSBjb25zdCB7IHJldHVybiBt
X3doaXRlbGlzdEZsYWdzICYgUHJvcGVydHlXaGl0ZWxpc3RDdWU7IH0KKyAgICB2b2lkIHNldElz
SW5DdWVSdWxlKCkgIHsgbV93aGl0ZWxpc3RGbGFncyB8PSBQcm9wZXJ0eVdoaXRlbGlzdEN1ZTsg
fQorI2VuZGlmCiAgICAgLy8gVHJ5IHRvIGJhbGFuY2UgYmV0d2VlbiBtZW1vcnkgdXNhZ2UgKHRo
ZXJlIGNhbiBiZSBsb3RzIG9mIFJ1bGVEYXRhIG9iamVjdHMpIGFuZCBnb29kIGZpbHRlcmluZyBw
ZXJmb3JtYW5jZS4KICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bUlkZW50aWZpZXJD
b3VudCA9IDQ7CiAgICAgY29uc3QgdW5zaWduZWQqIGRlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZp
ZXJIYXNoZXMoKSBjb25zdCB7IHJldHVybiBtX2Rlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZpZXJI
YXNoZXM7IH0KQEAgLTc0LDE1ICs4NiwxNSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Vs
ZWN0b3JJbmRleCA6IDEyOwogICAgIC8vIFRoaXMgbnVtYmVyIHdhcyBwaWNrZWQgZmFpcmx5IGFy
Yml0cmFyaWx5LiBXZSBjYW4gcHJvYmFibHkgbG93ZXIgaXQgaWYgd2UgbmVlZCB0by4KICAgICAv
LyBTb21lIHNpbXBsZSB0ZXN0aW5nIHNob3dlZCA8MTAwLDAwMCBSdWxlRGF0YSdzIG9uIGxhcmdl
IHNpdGVzLgotICAgIHVuc2lnbmVkIG1fcG9zaXRpb24gOiAyMDsKLSAgICB1bnNpZ25lZCBtX3Nw
ZWNpZmljaXR5IDogMjQ7CisgICAgdW5zaWduZWQgbV9wb3NpdGlvbiA6IDE5OwogICAgIHVuc2ln
bmVkIG1faGFzRmFzdENoZWNrYWJsZVNlbGVjdG9yIDogMTsKKyAgICB1bnNpZ25lZCBtX3NwZWNp
ZmljaXR5IDogMjQ7CiAgICAgdW5zaWduZWQgbV9oYXNNdWx0aXBhcnRTZWxlY3RvciA6IDE7CiAg
ICAgdW5zaWduZWQgbV9oYXNSaWdodG1vc3RTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxl
SGFzaCA6IDE7CiAgICAgdW5zaWduZWQgbV9jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0
b3IgOiAxOwogICAgIHVuc2lnbmVkIG1fbGlua01hdGNoVHlwZSA6IDI7IC8vICBTZWxlY3RvckNo
ZWNrZXI6OkxpbmtNYXRjaE1hc2sKICAgICB1bnNpZ25lZCBtX2hhc0RvY3VtZW50U2VjdXJpdHlP
cmlnaW4gOiAxOwotICAgIHVuc2lnbmVkIG1faXNJblJlZ2lvblJ1bGUgOiAxOworICAgIHVuc2ln
bmVkIG1fd2hpdGVsaXN0RmxhZ3MgOiAyOwogICAgIC8vIFVzZSBwbGFpbiBhcnJheSBpbnN0ZWFk
IG9mIGEgVmVjdG9yIHRvIG1pbmltaXplIG1lbW9yeSBvdmVyaGVhZC4KICAgICB1bnNpZ25lZCBt
X2Rlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZpZXJIYXNoZXNbbWF4aW11bUlkZW50aWZpZXJDb3Vu
dF07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGEzZDE3ZWMuLjc2
ODA4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTU5MiwxMyArNTky
LDEzIEBAIHN0YXRpYyB2b2lkIGVuc3VyZURlZmF1bHRTdHlsZVNoZWV0c0ZvckVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCkKICAgICBBU1NFUlQobWF0aE1MU3R5bGVTaGVldCB8fCBkZWZhdWx0U3R5
bGUtPmZlYXR1cmVzKCkuc2libGluZ1J1bGVzLmlzRW1wdHkoKSk7CiB9CiAKLXZvaWQgU3R5bGVS
ZXNvbHZlcjo6YWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBj
b25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqIHJ1bGUsIHVuc2ln
bmVkIGxpbmtNYXRjaFR5cGUsIGJvb2wgaW5SZWdpb25SdWxlKQordm9pZCBTdHlsZVJlc29sdmVy
OjphZGRNYXRjaGVkUHJvcGVydGllcyhNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIGNvbnN0IFN0
eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMsIFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQgbGlu
a01hdGNoVHlwZSwgUHJvcGVydHlXaGl0ZWxpc3RGbGFncyB3aGl0ZWxpc3RGbGFncykKIHsKICAg
ICBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5ncm93KG1hdGNoUmVzdWx0Lm1hdGNoZWRQ
cm9wZXJ0aWVzLnNpemUoKSArIDEpOwogICAgIE1hdGNoZWRQcm9wZXJ0aWVzJiBuZXdQcm9wZXJ0
aWVzID0gbWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMubGFzdCgpOwogICAgIG5ld1Byb3Bl
cnRpZXMucHJvcGVydGllcyA9IGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0eVNldCo+KHByb3BlcnRp
ZXMpOwogICAgIG5ld1Byb3BlcnRpZXMubGlua01hdGNoVHlwZSA9IGxpbmtNYXRjaFR5cGU7Ci0g
ICAgbmV3UHJvcGVydGllcy5pc0luUmVnaW9uUnVsZSA9IGluUmVnaW9uUnVsZTsKKyAgICBuZXdQ
cm9wZXJ0aWVzLndoaXRlbGlzdEZsYWdzID0gd2hpdGVsaXN0RmxhZ3M7CiAgICAgbWF0Y2hSZXN1
bHQubWF0Y2hlZFJ1bGVzLmFwcGVuZChydWxlKTsKIH0KIApAQCAtNzI1LDcgKzcyNSw3IEBAIHZv
aWQgU3R5bGVSZXNvbHZlcjo6c29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKE1hdGNoUmVzdWx0
JiByZXN1bHQpCiAgICAgICAgIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBtX21hdGNoZWRSdWxl
c1tpXS0+bGlua01hdGNoVHlwZSgpOwogICAgICAgICBpZiAoc3dhcFZpc2l0ZWRVbnZpc2l0ZWQg
JiYgbGlua01hdGNoVHlwZSAmJiBsaW5rTWF0Y2hUeXBlICE9IFNlbGVjdG9yQ2hlY2tlcjo6TWF0
Y2hBbGwpCiAgICAgICAgICAgICBsaW5rTWF0Y2hUeXBlID0gKGxpbmtNYXRjaFR5cGUgPT0gU2Vs
ZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0ZWQpID8gU2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbmsg
OiBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZDsKLSAgICAgICAgYWRkTWF0Y2hlZFByb3Bl
cnRpZXMocmVzdWx0LCBtX21hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLT5wcm9wZXJ0aWVzKCksIG1f
bWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCksIGxpbmtNYXRjaFR5cGUsIG1fbWF0Y2hlZFJ1bGVzW2ld
LT5pc0luUmVnaW9uUnVsZSgpKTsKKyAgICAgICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMocmVzdWx0
LCBtX21hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLT5wcm9wZXJ0aWVzKCksIG1fbWF0Y2hlZFJ1bGVz
W2ldLT5ydWxlKCksIGxpbmtNYXRjaFR5cGUsIG1fbWF0Y2hlZFJ1bGVzW2ldLT53aGl0ZWxpc3RU
eXBlKCkpOwogICAgIH0KIH0KIApAQCAtMjMwMiw5ICsyMzAyLDkgQEAgTGVuZ3RoIFN0eWxlUmVz
b2x2ZXI6OmNvbnZlcnRUb0Zsb2F0TGVuZ3RoKENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVW
YWx1ZSwgUmUKIH0KIAogdGVtcGxhdGUgPFN0eWxlUmVzb2x2ZXI6OlN0eWxlQXBwbGljYXRpb25Q
YXNzIHBhc3M+Ci12b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydGllcyhjb25zdCBTdHls
ZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqIHJ1bGUsIGJvb2wgaXNJbXBvcnRh
bnQsIGJvb2wgaW5oZXJpdGVkT25seSwgYm9vbCBmaWx0ZXJSZWdpb25Qcm9wZXJ0aWVzKQordm9p
ZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCog
cHJvcGVydGllcywgU3R5bGVSdWxlKiBydWxlLCBib29sIGlzSW1wb3J0YW50LCBib29sIGluaGVy
aXRlZE9ubHksIFByb3BlcnR5V2hpdGVsaXN0RmxhZ3Mgd2hpdGVsaXN0RmxhZ3MpCiB7Ci0gICAg
QVNTRVJUKCFmaWx0ZXJSZWdpb25Qcm9wZXJ0aWVzIHx8IG1fcmVnaW9uRm9yU3R5bGluZyk7Cisg
ICAgQVNTRVJUKCEod2hpdGVsaXN0RmxhZ3MgJiBQcm9wZXJ0eVdoaXRlbGlzdFJlZ2lvbikgfHwg
bV9yZWdpb25Gb3JTdHlsaW5nKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUg
Y29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUHJvY2Vzc1J1bGUoZG9jdW1l
bnQoKSwgcnVsZSwgdGhpcyk7CiAKICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0gcHJvcGVy
dGllcy0+cHJvcGVydHlDb3VudCgpOwpAQCAtMjMyMSw5ICsyMzIxLDEyIEBAIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6YXBwbHlQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRp
ZXMsIFN0eWxlUnVsCiAgICAgICAgIH0KICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSA9
IGN1cnJlbnQuaWQoKTsKIAotICAgICAgICBpZiAoZmlsdGVyUmVnaW9uUHJvcGVydGllcyAmJiAh
U3R5bGVSZXNvbHZlcjo6aXNWYWxpZFJlZ2lvblN0eWxlUHJvcGVydHkocHJvcGVydHkpKQorICAg
ICAgICBpZiAod2hpdGVsaXN0RmxhZ3MgJiBQcm9wZXJ0eVdoaXRlbGlzdFJlZ2lvbiAmJiAhU3R5
bGVSZXNvbHZlcjo6aXNWYWxpZFJlZ2lvblN0eWxlUHJvcGVydHkocHJvcGVydHkpKQogICAgICAg
ICAgICAgY29udGludWU7Ci0KKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgICAgIGlmICh3
aGl0ZWxpc3RGbGFncyAmIFByb3BlcnR5V2hpdGVsaXN0Q3VlICYmICFTdHlsZVJlc29sdmVyOjpp
c1ZhbGlkQ3VlU3R5bGVQcm9wZXJ0eShwcm9wZXJ0eSkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyNlbmRpZgogICAgICAgICBzd2l0Y2ggKHBhc3MpIHsKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxF
UykKICAgICAgICAgY2FzZSBWYXJpYWJsZURlZmluaXRpb25zOgpAQCAtMjM2OSw3ICsyMzcyLDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNo
UmVzdWx0JiBtYXRjaFJlc3VsdCwgYm9vbAogICAgICAgICAgICAgbV9hcHBseVByb3BlcnR5VG9S
ZWd1bGFyU3R5bGUgPSBsaW5rTWF0Y2hUeXBlICYgU2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbms7
CiAgICAgICAgICAgICBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGUgPSBsaW5rTWF0
Y2hUeXBlICYgU2VsZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0ZWQ7CiAKLSAgICAgICAgICAgIGFw
cGx5UHJvcGVydGllczxwYXNzPihtYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzLmdldCgpLCBt
YXRjaFJlc3VsdC5tYXRjaGVkUnVsZXNbaV0sIGlzSW1wb3J0YW50LCBpbmhlcml0ZWRPbmx5LCBt
YXRjaGVkUHJvcGVydGllcy5pc0luUmVnaW9uUnVsZSk7CisgICAgICAgICAgICBhcHBseVByb3Bl
cnRpZXM8cGFzcz4obWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoKSwgbWF0Y2hSZXN1
bHQubWF0Y2hlZFJ1bGVzW2ldLCBpc0ltcG9ydGFudCwgaW5oZXJpdGVkT25seSwgc3RhdGljX2Nh
c3Q8UHJvcGVydHlXaGl0ZWxpc3RGbGFncz4obWF0Y2hlZFByb3BlcnRpZXMud2hpdGVsaXN0Rmxh
Z3MpKTsKICAgICAgICAgfQogICAgICAgICBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZSA9
IHRydWU7CiAgICAgICAgIG1fYXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZSA9IGZhbHNl
OwpAQCAtMjM3Nyw3ICsyMzgwLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1hdGNoZWRQ
cm9wZXJ0aWVzKGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgYm9vbAogICAgIH0KICAg
ICBmb3IgKGludCBpID0gc3RhcnRJbmRleDsgaSA8PSBlbmRJbmRleDsgKytpKSB7CiAgICAgICAg
IGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiBtYXRjaGVkUHJvcGVydGllcyA9IG1hdGNoUmVzdWx0
Lm1hdGNoZWRQcm9wZXJ0aWVzW2ldOwotICAgICAgICBhcHBseVByb3BlcnRpZXM8cGFzcz4obWF0
Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoKSwgbWF0Y2hSZXN1bHQubWF0Y2hlZFJ1bGVz
W2ldLCBpc0ltcG9ydGFudCwgaW5oZXJpdGVkT25seSwgbWF0Y2hlZFByb3BlcnRpZXMuaXNJblJl
Z2lvblJ1bGUpOworICAgICAgICBhcHBseVByb3BlcnRpZXM8cGFzcz4obWF0Y2hlZFByb3BlcnRp
ZXMucHJvcGVydGllcy5nZXQoKSwgbWF0Y2hSZXN1bHQubWF0Y2hlZFJ1bGVzW2ldLCBpc0ltcG9y
dGFudCwgaW5oZXJpdGVkT25seSwgc3RhdGljX2Nhc3Q8UHJvcGVydHlXaGl0ZWxpc3RGbGFncz4o
bWF0Y2hlZFByb3BlcnRpZXMud2hpdGVsaXN0RmxhZ3MpKTsKICAgICB9CiB9CiAKQEAgLTI3NjAs
NiArMjc2Myw0OSBAQCBpbmxpbmUgYm9vbCBTdHlsZVJlc29sdmVyOjppc1ZhbGlkUmVnaW9uU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lm
IEVOQUJMRShWSURFT19UUkFDSykKK2lubGluZSBib29sIFN0eWxlUmVzb2x2ZXI6OmlzVmFsaWRD
dWVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQpCit7CisgICAgc3dpdGNoIChpZCkgewor
ICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kQXR0YWNobWVudDoKKyAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENsaXA6Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5
QmFja2dyb3VuZEltYWdlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kT3JpZ2luOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb246CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eUJhY2tncm91bmRQb3NpdGlvblg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQ
b3NpdGlvblk6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXQ6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRYOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kUmVwZWF0WToKKyAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFNpemU6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eUNvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlGb250OgorICAgIGNh
c2UgQ1NTUHJvcGVydHlGb250RmFtaWx5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U2l6ZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlGb250
VmFyaWFudDoKKyAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFdlaWdodDoKKyAgICBjYXNlIENTU1By
b3BlcnR5TGluZUhlaWdodDoKKyAgICBjYXNlIENTU1Byb3BlcnR5T3BhY2l0eToKKyAgICBjYXNl
IENTU1Byb3BlcnR5T3V0bGluZToKKyAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lT2Zmc2V0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlP
dXRsaW5lU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVXaWR0aDoKKyAgICBjYXNl
IENTU1Byb3BlcnR5VmlzaWJpbGl0eToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2hpdGVTcGFjZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb246CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVRleHRTaGFkb3c6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclN0eWxlOgorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorI2VuZGlmCiAvLyBTVkcgaGFuZGxlcyB6b29taW5nIGluIGEgZGlmZmVy
ZW50IHdheSBjb21wYXJlZCB0byBDU1MuIFRoZSB3aG9sZSBkb2N1bWVudCBpcyBzY2FsZWQgaW5z
dGVhZAogLy8gb2YgZWFjaCBpbmRpdmlkdWFsIGxlbmd0aCB2YWx1ZSBpbiB0aGUgcmVuZGVyIHN0
eWxlIC8gdHJlZS4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGgqKCkKIC8vIG11bHRp
cGxpZXMgZWFjaCByZXNvbHZlZCBsZW5ndGggd2l0aCB0aGUgem9vbSBtdWx0aXBsaWVyIC0gc28g
Zm9yIFNWRyB3ZSBuZWVkIHRvIGRpc2FibGUgdGhhdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5oCmluZGV4IGRiZWI2ZWEuLjBiZTg0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
aApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKICNpbmNsdWRl
ICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCisjaW5jbHVkZSAiUnVs
ZVNldC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJT
ZWxlY3RvckNoZWNrZXIuaCIKICNpbmNsdWRlICJTZWxlY3RvckZpbHRlci5oIgpAQCAtMzI3LDcg
KzMyOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgIHN0cnVjdCB7
CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSA6IDI7Ci0gICAgICAgICAg
ICAgICAgdW5zaWduZWQgaXNJblJlZ2lvblJ1bGUgOiAxOworICAgICAgICAgICAgICAgIHVuc2ln
bmVkIHdoaXRlbGlzdEZsYWdzIDogMjsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAvLyBV
c2VkIHRvIG1ha2Ugc3VyZSBhbGwgbWVtb3J5IGlzIHplcm8taW5pdGlhbGl6ZWQgc2luY2Ugd2Ug
Y29tcHV0ZSB0aGUgaGFzaCBvdmVyIHRoZSBieXRlcyBvZiB0aGlzIG9iamVjdC4KICAgICAgICAg
ICAgIHZvaWQqIHBvc3NpYmx5UGFkZGVkTWVtYmVyOwpAQCAtMzUyLDcgKzM1Myw3IEBAIHByaXZh
dGU6CiAgICAgICAgIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlOwogICAgIH07CiAKLSAgICBz
dGF0aWMgdm9pZCBhZGRNYXRjaGVkUHJvcGVydGllcyhNYXRjaFJlc3VsdCYsIGNvbnN0IFN0eWxl
UHJvcGVydHlTZXQqIHByb3BlcnRpZXMsIFN0eWxlUnVsZSogPSAwLCB1bnNpZ25lZCBsaW5rTWF0
Y2hUeXBlID0gU2VsZWN0b3JDaGVja2VyOjpNYXRjaEFsbCwgYm9vbCBpblJlZ2lvblJ1bGUgPSBm
YWxzZSk7CisgICAgc3RhdGljIHZvaWQgYWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hSZXN1bHQm
LCBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqID0gMCwgdW5z
aWduZWQgbGlua01hdGNoVHlwZSA9IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIFByb3BlcnR5
V2hpdGVsaXN0RmxhZ3MgPSBQcm9wZXJ0eVdoaXRlbGlzdE5vbmUpOwogICAgIHZvaWQgYWRkRWxl
bWVudFN0eWxlUHJvcGVydGllcyhNYXRjaFJlc3VsdCYsIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQq
LCBib29sIGlzQ2FjaGVhYmxlID0gdHJ1ZSk7CiAKICAgICB2b2lkIG1hdGNoQWxsUnVsZXMoTWF0
Y2hSZXN1bHQmLCBib29sIGluY2x1ZGVTTUlMUHJvcGVydGllcyk7CkBAIC0zODQsMTIgKzM4NSwx
NSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxTdHlsZUFwcGxpY2F0aW9uUGFzcyBwYXNzPgog
ICAgIHZvaWQgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYsIGJvb2wg
aW1wb3J0YW50LCBpbnQgc3RhcnRJbmRleCwgaW50IGVuZEluZGV4LCBib29sIGluaGVyaXRlZE9u
bHkpOwogICAgIHRlbXBsYXRlIDxTdHlsZUFwcGxpY2F0aW9uUGFzcyBwYXNzPgotICAgIHZvaWQg
YXBwbHlQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMsIFN0eWxl
UnVsZSosIGJvb2wgaXNJbXBvcnRhbnQsIGJvb2wgaW5oZXJpdGVkT25seSwgYm9vbCBmaWx0ZXJS
ZWdpb25Qcm9wZXJ0aWVzKTsKKyAgICB2b2lkIGFwcGx5UHJvcGVydGllcyhjb25zdCBTdHlsZVBy
b3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqLCBib29sIGlzSW1wb3J0YW50LCBib29s
IGluaGVyaXRlZE9ubHksIFByb3BlcnR5V2hpdGVsaXN0RmxhZ3MgPSBQcm9wZXJ0eVdoaXRlbGlz
dE5vbmUpOworCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgdm9pZCByZXNvbHZlVmFy
aWFibGVzKENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlKiwgVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9w
ZXJ0eUlELCBTdHJpbmc+ID4mIGtub3duRXhwcmVzc2lvbnMpOwogI2VuZGlmCiAgICAgc3RhdGlj
IGJvb2wgaXNWYWxpZFJlZ2lvblN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7Ci0KKyNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCisgICAgc3RhdGljIGJvb2wgaXNWYWxpZEN1ZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCk7CisjZW5kaWYKICAgICB2b2lkIG1hdGNoUGFnZVJ1bGVzKE1hdGNo
UmVzdWx0JiwgUnVsZVNldCosIGJvb2wgaXNMZWZ0UGFnZSwgYm9vbCBpc0ZpcnN0UGFnZSwgY29u
c3QgU3RyaW5nJiBwYWdlTmFtZSk7CiAgICAgdm9pZCBtYXRjaFBhZ2VSdWxlc0Zvckxpc3QoVmVj
dG9yPFN0eWxlUnVsZVBhZ2UqPiYgbWF0Y2hlZFJ1bGVzLCBjb25zdCBWZWN0b3I8U3R5bGVSdWxl
UGFnZSo+JiwgYm9vbCBpc0xlZnRQYWdlLCBib29sIGlzRmlyc3RQYWdlLCBjb25zdCBTdHJpbmcm
IHBhZ2VOYW1lKTsKICAgICBTZXR0aW5ncyogZG9jdW1lbnRTZXR0aW5ncygpIHsgcmV0dXJuIG1f
ZG9jdW1lbnQtPnNldHRpbmdzKCk7IH0K
</data>
<flag name="review"
          id="201352"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="201367"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183367</attachid>
            <date>2013-01-17 21:16:23 -0800</date>
            <delta_ts>2013-01-19 11:24:48 -0800</delta_ts>
            <desc>Proposed fix 0.2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19086</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNzU1OWI2Li44MTg5YjQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDEt
MTcgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDo6Y3VlKCkgcHNldWRvIGVsZW1lbnQgcHJvcGVydHkgd2hpdGVsaXN0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25z
LXdlYnZ0dC93aGl0ZWxpc3QudnR0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFj
ay1jc3MtcHJvcGVydHktd2hpdGVsaXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
bWVkaWEvdHJhY2svdHJhY2stY3NzLXByb3BlcnR5LXdoaXRlbGlzdC5odG1sOiBBZGRlZC4KKwog
MjAxMy0wMS0xNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2ZXJ0IHIxMjI4MjQgZm9yIGEgd2hpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC93aGl0ZWxpc3QudnR0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3doaXRlbGlzdC52dHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMzg4NTcxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC93aGl0ZWxpc3QudnR0CkBAIC0wLDAgKzEs
NSBAQAorV0VCVlRUCisKKzEKKzAwOjAwLjAwMCAtLT4gMDA6MDAuMjAwCis8Yy5yZWQ+T25lLDwv
Yz4gPGM+dHdvLDwvYz4gPGM+dGhyZWUuPC9jPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3NzLXByb3BlcnR5LXdoaXRlbGlzdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtcHJvcGVydHktd2hpdGVsaXN0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTJjZjc0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLXByb3BlcnR5LXdo
aXRlbGlzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorRVZFTlQoY2FucGxheXRocm91
Z2gpCitFVkVOVChzZWVrZWQpCisKKworVGVzdCB0aGF0IG9ubHkgYWxsb3dlZCBmb3IgdGhlIDo6
Y3VlIHBzZXVkby1lbGVtZW50IHByb3BlcnRpZXMgYXJlIGFwcGxpZWQgdG8gV2ViVlRUIG5vZGUg
b2JqZWN0cy4KK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdy
Z2IoMjU1LCAwLCAwKScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5w
YWRkaW5nID09ICcwcHgnKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSku
Y29sb3IgPT0gJ3JnYigyNTUsIDAsIDApJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxl
KGN1ZU5vZGUpLnBhZGRpbmcgPT0gJzBweCcpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHls
ZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMCwgMCknKSBPSworRVhQRUNURUQgKGdldENv
bXB1dGVkU3R5bGUoY3VlTm9kZSkucGFkZGluZyA9PSAnMHB4JykgT0sKK0VORCBPRiBURVNUCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0eS13
aGl0ZWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0
eS13aGl0ZWxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTIx
ZTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Nz
LXByb3BlcnR5LXdoaXRlbGlzdC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorCisgICAgICAgIDxz
Y3JpcHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlh
LWNvbnRyb2xzLmpzPjwvc2NyaXB0PgorCisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgOjpjdWUo
Yykge3BhZGRpbmctbGVmdDogMTBweDsgY29sb3I6IHJlZDt9CisgICAgICAgIDwvc3R5bGU+CisK
KyAgICAgICAgPHNjcmlwdD4KKworICAgICAgICB2YXIgY3VlTm9kZTsKKworICAgICAgICBmdW5j
dGlvbiBza2lwTm9uRWxlbWVudHMocm9vdCkKKyAgICAgICAgeworICAgICAgICAgICAgbmV4dEVs
ZW1lbnRTaWJsaW5nID0gcm9vdDsKKyAgICAgICAgICAgIHdoaWxlIChuZXh0RWxlbWVudFNpYmxp
bmcubm9kZVR5cGUgIT0gMSkgeworICAgICAgICAgICAgICAgIG5leHRFbGVtZW50U2libGluZyA9
IG5leHRFbGVtZW50U2libGluZy5uZXh0U2libGluZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHJldHVybiBuZXh0RWxlbWVudFNpYmxpbmc7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBzZWVrZWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGVzdEVuZGVkKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+Iik7
CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgdGhhdCBvbmx5IGFsbG93ZWQgZm9yIHRo
ZSA6OmN1ZSBwc2V1ZG8tZWxlbWVudCBwcm9wZXJ0aWVzIGFyZSBhcHBsaWVkIHRvIFdlYlZUVCBu
b2RlIG9iamVjdHMuIik7CisKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMo
dGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKS5maXJzdENoaWxkKTsK
KyAgICAgICAgICAgIHNraXBOb25FbGVtZW50cyhjdWVOb2RlKTsKKyAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMjU1LCAwLCAw
KSIpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUp
LnBhZGRpbmciLCAiMHB4Iik7CisgICAgICAgICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRz
KGN1ZU5vZGUubmV4dFNpYmxpbmcpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21w
dXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJnYigyNTUsIDAsIDApIik7CisgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkucGFkZGluZyIsICIwcHgi
KTsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMoY3VlTm9kZS5uZXh0U2li
bGluZyk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9k
ZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
Z2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5wYWRkaW5nIiwgIjBweCIpOworICAgICAgICAgICAg
ZW5kVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgdmlkZW8u
c3JjID0gZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnLi4vY29udGVudC90ZXN0Jyk7CisgICAgICAg
ICAgICB2aWRlby5pZCA9ICJ0ZXN0dmlkZW8iOworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdz
ZWVrZWQnLCBzZWVrZWQpOworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3Vn
aCcsIGZ1bmN0aW9uKCkgeyB2aWRlby5jdXJyZW50VGltZSA9IDAuMTsgfSk7CisgICAgICAgIH0K
KworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJsb2Fk
ZWQoKSI+CisgICAgICAgIDx2aWRlbyBjb250cm9scyA+CisgICAgICAgICAgICA8dHJhY2sgc3Jj
PSJjYXB0aW9ucy13ZWJ2dHQvd2hpdGVsaXN0LnZ0dCIga2luZD0iY2FwdGlvbnMiIGRlZmF1bHQ+
CisgICAgICAgIDwvdmlkZW8+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM5
OThmODcuLjgxM2NjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0wMS0xNyAg
RGltYSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgOjpj
dWUoKSBwc2V1ZG8gZWxlbWVudCBwcm9wZXJ0eSB3aGl0ZWxpc3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTQ3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9ubHkgYWxsb3dlZCBieSBzcGVjcyBwcm9w
ZXJ0aWVzIGFyZSBhcHBsaWVkIHRvIFdlYlZUVCBub2Rlcy4gV2UgdXNlZCB3aGl0ZWxpc3RzIGJl
Zm9yZSBmb3IgdGhlIHJlZ2lvbgorICAgICAgICBzdHlsZSBydWxlIHNvIHRoaXMgcmVmYWN0b3Jz
IHRoZSBjb2RlIGEgbGl0dGxlIGJpdCB0byBwYXNzIGJpdGZpZWxkcyB0aGF0IGNvbnRhaW4gdGhl
IGluZm9ybWF0aW9uIG9uIHdoaWNoIAorICAgICAgICB3aGl0ZWxpc3RzIHNob3VsZCBiZSB1c2Vk
LgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxp
c3QuaHRtbAorCisgICAgICAgICogY3NzL1J1bGVTZXQuY3BwOiAKKyAgICAgICAgKFdlYkNvcmU6
OlJ1bGVEYXRhOjpSdWxlRGF0YSk6IHNldCBhIHJlZ2lvbiBiaXQgd2hlbiBjcmVhdGluZyBhIFJ1
bGVEYXRhLgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRkUnVsZSk6IHNldCBhIGN1ZSBi
aXQgd2hlbiBQc2V1ZG9DdWUgdHlwZSBpcyBzZXQgZm9yIGEgc2VsZWN0b3IuCisgICAgICAgICog
Y3NzL1J1bGVTZXQuaDogYWRkIHRoZSBuZXcgYml0ZmllbGQgYXMgYW4gaXZhciBhbmQgc2V0dGVy
cy9nZXR0ZXJzIHRvIGFjY2VzcyBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRhOjppc0lu
UmVnaW9uUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpSdWxlRGF0YTo6d2hpdGVsaXN0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpSdWxlRGF0YTo6aXNJbkN1ZVJ1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UnVsZURhdGE6OnNldElzSW5DdWVSdWxlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNv
bHZlci5jcHA6IHJlZmFjdG9yIHRoZSBjb2RlIHRvIHBhc3MgYSBiaXRmaWVsZCBpbnN0ZWFkIG9m
IHNpbmdsZSBiaXRzLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YWRkTWF0Y2hl
ZFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c29ydEFuZFRy
YW5zZmVyTWF0Y2hlZFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFw
cGx5UHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseU1h
dGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmlzVmFs
aWRDdWVTdHlsZVByb3BlcnR5KTogCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKwog
MjAxMy0wMS0xNyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgMjAxMy0wMS0xNyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggYTdjMzJkZi4uYzY3NzE1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9S
dWxlU2V0LmNwcApAQCAtMTA4LDE4ICsxMDgsMjkgQEAgc3RhdGljIGlubGluZSBib29sIGNvbnRh
aW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBpbmxpbmUgUHJvcGVydHlXaGl0ZWxpc3RU
eXBlIGRldGVybWluZVByb3BlcnR5V2hpdGVsaXN0VHlwZShjb25zdCBBZGRSdWxlRmxhZ3MgYWRk
UnVsZUZsYWdzLCBjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgaWYgKGFkZFJ1
bGVGbGFncyAmIFJ1bGVJc0luUmVnaW9uUnVsZSkKKyAgICAgICAgcmV0dXJuIFByb3BlcnR5V2hp
dGVsaXN0UmVnaW9uOworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBpZiAoc2VsZWN0b3It
PnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ3VlKQorICAgICAgICByZXR1cm4g
UHJvcGVydHlXaGl0ZWxpc3RDdWU7CisjZW5kaWYKKyAgICByZXR1cm4gUHJvcGVydHlXaGl0ZWxp
c3ROb25lOworfQorCiBSdWxlRGF0YTo6UnVsZURhdGEoU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25l
ZCBzZWxlY3RvckluZGV4LCB1bnNpZ25lZCBwb3NpdGlvbiwgQWRkUnVsZUZsYWdzIGFkZFJ1bGVG
bGFncykKICAgICA6IG1fcnVsZShydWxlKQogICAgICwgbV9zZWxlY3RvckluZGV4KHNlbGVjdG9y
SW5kZXgpCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQotICAgICwgbV9zcGVjaWZpY2l0eShz
ZWxlY3RvcigpLT5zcGVjaWZpY2l0eSgpKQogICAgICwgbV9oYXNGYXN0Q2hlY2thYmxlU2VsZWN0
b3IoKGFkZFJ1bGVGbGFncyAmIFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3RvcikgJiYgU2VsZWN0
b3JDaGVja2VyOjppc0Zhc3RDaGVja2FibGVTZWxlY3RvcihzZWxlY3RvcigpKSkKKyAgICAsIG1f
c3BlY2lmaWNpdHkoc2VsZWN0b3IoKS0+c3BlY2lmaWNpdHkoKSkKICAgICAsIG1faGFzTXVsdGlw
YXJ0U2VsZWN0b3IoISFzZWxlY3RvcigpLT50YWdIaXN0b3J5KCkpCiAgICAgLCBtX2hhc1JpZ2h0
bW9zdFNlbGVjdG9yTWF0Y2hpbmdIVE1MQmFzZWRPblJ1bGVIYXNoKGlzU2VsZWN0b3JNYXRjaGlu
Z0hUTUxCYXNlZE9uUnVsZUhhc2goc2VsZWN0b3IoKSkpCiAgICAgLCBtX2NvbnRhaW5zVW5jb21t
b25BdHRyaWJ1dGVTZWxlY3RvcihXZWJDb3JlOjpjb250YWluc1VuY29tbW9uQXR0cmlidXRlU2Vs
ZWN0b3Ioc2VsZWN0b3IoKSkpCiAgICAgLCBtX2xpbmtNYXRjaFR5cGUoU2VsZWN0b3JDaGVja2Vy
OjpkZXRlcm1pbmVMaW5rTWF0Y2hUeXBlKHNlbGVjdG9yKCkpKQogICAgICwgbV9oYXNEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKGFkZFJ1bGVGbGFncyAmIFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luKQotICAgICwgbV9pc0luUmVnaW9uUnVsZSghIShhZGRSdWxlRmxhZ3MgJiBSdWxlSXNJblJl
Z2lvblJ1bGUpKQorICAgICwgbV9wcm9wZXJ0eVdoaXRlbGlzdFR5cGUoZGV0ZXJtaW5lUHJvcGVy
dHlXaGl0ZWxpc3RUeXBlKGFkZFJ1bGVGbGFncywgc2VsZWN0b3IoKSkpCiB7CiAgICAgQVNTRVJU
KG1fcG9zaXRpb24gPT0gcG9zaXRpb24pOwogICAgIEFTU0VSVChtX3NlbGVjdG9ySW5kZXggPT0g
c2VsZWN0b3JJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAppbmRleCBlZGZlZmQzLi4wMzAyNGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmgKQEAgLTM3LDYgKzM3LDE0IEBAIGVudW0gQWRkUnVsZUZsYWdzIHsK
ICAgICBSdWxlQ2FuVXNlRmFzdENoZWNrU2VsZWN0b3IgICA9IDEgPDwgMSwKICAgICBSdWxlSXNJ
blJlZ2lvblJ1bGUgICAgICAgICAgICA9IDEgPDwgMiwKIH07CisgICAgCitlbnVtIFByb3BlcnR5
V2hpdGVsaXN0VHlwZSB7CisgICAgUHJvcGVydHlXaGl0ZWxpc3ROb25lICAgPSAwLAorICAgIFBy
b3BlcnR5V2hpdGVsaXN0UmVnaW9uLAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBQcm9w
ZXJ0eVdoaXRlbGlzdEN1ZQorI2VuZGlmCit9OwogCiBjbGFzcyBDU1NTZWxlY3RvcjsKIGNsYXNz
IENvbnRhaW5lck5vZGU7CkBAIC02MSw4ICs2OSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBz
cGVjaWZpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY2lmaWNpdHk7IH0KICAgICB1bnNpZ25l
ZCBsaW5rTWF0Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9saW5rTWF0Y2hUeXBlOyB9CiAgICAg
Ym9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9oYXNEb2N1
bWVudFNlY3VyaXR5T3JpZ2luOyB9Ci0gICAgYm9vbCBpc0luUmVnaW9uUnVsZSgpIGNvbnN0IHsg
cmV0dXJuIG1faXNJblJlZ2lvblJ1bGU7IH0KLQorICAgIFByb3BlcnR5V2hpdGVsaXN0VHlwZSBw
cm9wZXJ0eVdoaXRlbGlzdFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0
eVdoaXRlbGlzdFR5cGU+KG1fcHJvcGVydHlXaGl0ZWxpc3RUeXBlKTsgfQogICAgIC8vIFRyeSB0
byBiYWxhbmNlIGJldHdlZW4gbWVtb3J5IHVzYWdlICh0aGVyZSBjYW4gYmUgbG90cyBvZiBSdWxl
RGF0YSBvYmplY3RzKSBhbmQgZ29vZCBmaWx0ZXJpbmcgcGVyZm9ybWFuY2UuCiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG1heGltdW1JZGVudGlmaWVyQ291bnQgPSA0OwogICAgIGNvbnN0IHVu
c2lnbmVkKiBkZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKCkgY29uc3QgeyByZXR1
cm4gbV9kZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzOyB9CkBAIC03NCwxNSArODEs
MTUgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3NlbGVjdG9ySW5kZXggOiAxMjsKICAgICAv
LyBUaGlzIG51bWJlciB3YXMgcGlja2VkIGZhaXJseSBhcmJpdHJhcmlseS4gV2UgY2FuIHByb2Jh
Ymx5IGxvd2VyIGl0IGlmIHdlIG5lZWQgdG8uCiAgICAgLy8gU29tZSBzaW1wbGUgdGVzdGluZyBz
aG93ZWQgPDEwMCwwMDAgUnVsZURhdGEncyBvbiBsYXJnZSBzaXRlcy4KLSAgICB1bnNpZ25lZCBt
X3Bvc2l0aW9uIDogMjA7Ci0gICAgdW5zaWduZWQgbV9zcGVjaWZpY2l0eSA6IDI0OworICAgIHVu
c2lnbmVkIG1fcG9zaXRpb24gOiAxOTsKICAgICB1bnNpZ25lZCBtX2hhc0Zhc3RDaGVja2FibGVT
ZWxlY3RvciA6IDE7CisgICAgdW5zaWduZWQgbV9zcGVjaWZpY2l0eSA6IDI0OwogICAgIHVuc2ln
bmVkIG1faGFzTXVsdGlwYXJ0U2VsZWN0b3IgOiAxOwogICAgIHVuc2lnbmVkIG1faGFzUmlnaHRt
b3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2ggOiAxOwogICAgIHVuc2lnbmVk
IG1fY29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yIDogMTsKICAgICB1bnNpZ25lZCBt
X2xpbmtNYXRjaFR5cGUgOiAyOyAvLyAgU2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrCiAg
ICAgdW5zaWduZWQgbV9oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIDogMTsKLSAgICB1bnNpZ25l
ZCBtX2lzSW5SZWdpb25SdWxlIDogMTsKKyAgICB1bnNpZ25lZCBtX3Byb3BlcnR5V2hpdGVsaXN0
VHlwZSA6IDI7CiAgICAgLy8gVXNlIHBsYWluIGFycmF5IGluc3RlYWQgb2YgYSBWZWN0b3IgdG8g
bWluaW1pemUgbWVtb3J5IG92ZXJoZWFkLgogICAgIHVuc2lnbmVkIG1fZGVzY2VuZGFudFNlbGVj
dG9ySWRlbnRpZmllckhhc2hlc1ttYXhpbXVtSWRlbnRpZmllckNvdW50XTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNDI4ZGNhOS4uMmNjOWE5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNTkyLDEzICs1OTIsMTMgQEAgc3RhdGljIHZv
aWQgZW5zdXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQog
ICAgIEFTU0VSVChtYXRoTUxTdHlsZVNoZWV0IHx8IGRlZmF1bHRTdHlsZS0+ZmVhdHVyZXMoKS5z
aWJsaW5nUnVsZXMuaXNFbXB0eSgpKTsKIH0KIAotdm9pZCBTdHlsZVJlc29sdmVyOjphZGRNYXRj
aGVkUHJvcGVydGllcyhNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIGNvbnN0IFN0eWxlUHJvcGVy
dHlTZXQqIHByb3BlcnRpZXMsIFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQgbGlua01hdGNoVHlw
ZSwgYm9vbCBpblJlZ2lvblJ1bGUpCit2b2lkIFN0eWxlUmVzb2x2ZXI6OmFkZE1hdGNoZWRQcm9w
ZXJ0aWVzKE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCog
cHJvcGVydGllcywgU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25lZCBsaW5rTWF0Y2hUeXBlLCBQcm9w
ZXJ0eVdoaXRlbGlzdFR5cGUgcHJvcGVydHlXaGl0ZWxpc3RUeXBlKQogewogICAgIG1hdGNoUmVz
dWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLmdyb3cobWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMu
c2l6ZSgpICsgMSk7CiAgICAgTWF0Y2hlZFByb3BlcnRpZXMmIG5ld1Byb3BlcnRpZXMgPSBtYXRj
aFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5sYXN0KCk7CiAgICAgbmV3UHJvcGVydGllcy5wcm9w
ZXJ0aWVzID0gY29uc3RfY2FzdDxTdHlsZVByb3BlcnR5U2V0Kj4ocHJvcGVydGllcyk7CiAgICAg
bmV3UHJvcGVydGllcy5saW5rTWF0Y2hUeXBlID0gbGlua01hdGNoVHlwZTsKLSAgICBuZXdQcm9w
ZXJ0aWVzLmlzSW5SZWdpb25SdWxlID0gaW5SZWdpb25SdWxlOworICAgIG5ld1Byb3BlcnRpZXMu
d2hpdGVsaXN0VHlwZSA9IHByb3BlcnR5V2hpdGVsaXN0VHlwZTsKICAgICBtYXRjaFJlc3VsdC5t
YXRjaGVkUnVsZXMuYXBwZW5kKHJ1bGUpOwogfQogCkBAIC03MjUsNyArNzI1LDcgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1bHQmIHJl
c3VsdCkKICAgICAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9IG1fbWF0Y2hlZFJ1bGVzW2ld
LT5saW5rTWF0Y2hUeXBlKCk7CiAgICAgICAgIGlmIChzd2FwVmlzaXRlZFVudmlzaXRlZCAmJiBs
aW5rTWF0Y2hUeXBlICYmIGxpbmtNYXRjaFR5cGUgIT0gU2VsZWN0b3JDaGVja2VyOjpNYXRjaEFs
bCkKICAgICAgICAgICAgIGxpbmtNYXRjaFR5cGUgPSAobGlua01hdGNoVHlwZSA9PSBTZWxlY3Rv
ckNoZWNrZXI6Ok1hdGNoVmlzaXRlZCkgPyBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoTGluayA6IFNl
bGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkOwotICAgICAgICBhZGRNYXRjaGVkUHJvcGVydGll
cyhyZXN1bHQsIG1fbWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCktPnByb3BlcnRpZXMoKSwgbV9tYXRj
aGVkUnVsZXNbaV0tPnJ1bGUoKSwgbGlua01hdGNoVHlwZSwgbV9tYXRjaGVkUnVsZXNbaV0tPmlz
SW5SZWdpb25SdWxlKCkpOworICAgICAgICBhZGRNYXRjaGVkUHJvcGVydGllcyhyZXN1bHQsIG1f
bWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCktPnByb3BlcnRpZXMoKSwgbV9tYXRjaGVkUnVsZXNbaV0t
PnJ1bGUoKSwgbGlua01hdGNoVHlwZSwgbV9tYXRjaGVkUnVsZXNbaV0tPnByb3BlcnR5V2hpdGVs
aXN0VHlwZSgpKTsKICAgICB9CiB9CiAKQEAgLTIzMTAsOSArMjMxMCw5IEBAIExlbmd0aCBTdHls
ZVJlc29sdmVyOjpjb252ZXJ0VG9GbG9hdExlbmd0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0
aXZlVmFsdWUsIFJlCiB9CiAKIHRlbXBsYXRlIDxTdHlsZVJlc29sdmVyOjpTdHlsZUFwcGxpY2F0
aW9uUGFzcyBwYXNzPgotdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnRpZXMoY29uc3Qg
U3R5bGVQcm9wZXJ0eVNldCogcHJvcGVydGllcywgU3R5bGVSdWxlKiBydWxlLCBib29sIGlzSW1w
b3J0YW50LCBib29sIGluaGVyaXRlZE9ubHksIGJvb2wgZmlsdGVyUmVnaW9uUHJvcGVydGllcykK
K3ZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydHlT
ZXQqIHByb3BlcnRpZXMsIFN0eWxlUnVsZSogcnVsZSwgYm9vbCBpc0ltcG9ydGFudCwgYm9vbCBp
bmhlcml0ZWRPbmx5LCBQcm9wZXJ0eVdoaXRlbGlzdFR5cGUgcHJvcGVydHlXaGl0ZWxpc3RUeXBl
KQogewotICAgIEFTU0VSVCghZmlsdGVyUmVnaW9uUHJvcGVydGllcyB8fCBtX3JlZ2lvbkZvclN0
eWxpbmcpOworICAgIEFTU0VSVCgocHJvcGVydHlXaGl0ZWxpc3RUeXBlICE9IFByb3BlcnR5V2hp
dGVsaXN0UmVnaW9uKSB8fCBtX3JlZ2lvbkZvclN0eWxpbmcpOwogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQ
cm9jZXNzUnVsZShkb2N1bWVudCgpLCBydWxlLCB0aGlzKTsKIAogICAgIHVuc2lnbmVkIHByb3Bl
cnR5Q291bnQgPSBwcm9wZXJ0aWVzLT5wcm9wZXJ0eUNvdW50KCk7CkBAIC0yMzI5LDkgKzIzMjks
MTIgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9w
ZXJ0eVNldCogcHJvcGVydGllcywgU3R5bGVSdWwKICAgICAgICAgfQogICAgICAgICBDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5ID0gY3VycmVudC5pZCgpOwogCi0gICAgICAgIGlmIChmaWx0ZXJSZWdp
b25Qcm9wZXJ0aWVzICYmICFTdHlsZVJlc29sdmVyOjppc1ZhbGlkUmVnaW9uU3R5bGVQcm9wZXJ0
eShwcm9wZXJ0eSkpCisgICAgICAgIGlmIChwcm9wZXJ0eVdoaXRlbGlzdFR5cGUgPT0gUHJvcGVy
dHlXaGl0ZWxpc3RSZWdpb24gJiYgIVN0eWxlUmVzb2x2ZXI6OmlzVmFsaWRSZWdpb25TdHlsZVBy
b3BlcnR5KHByb3BlcnR5KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQorICAgICAgICBpZiAocHJvcGVydHlXaGl0ZWxpc3RUeXBlID09IFByb3BlcnR5
V2hpdGVsaXN0Q3VlICYmICFTdHlsZVJlc29sdmVyOjppc1ZhbGlkQ3VlU3R5bGVQcm9wZXJ0eShw
cm9wZXJ0eSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyNlbmRpZgogICAgICAgICBzd2l0Y2gg
KHBhc3MpIHsKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKICAgICAgICAgY2FzZSBWYXJpYWJs
ZURlZmluaXRpb25zOgpAQCAtMjM3Nyw3ICsyMzgwLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjph
cHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgYm9v
bAogICAgICAgICAgICAgbV9hcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGUgPSBsaW5rTWF0Y2hU
eXBlICYgU2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbms7CiAgICAgICAgICAgICBtX2FwcGx5UHJv
cGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGUgPSBsaW5rTWF0Y2hUeXBlICYgU2VsZWN0b3JDaGVja2Vy
OjpNYXRjaFZpc2l0ZWQ7CiAKLSAgICAgICAgICAgIGFwcGx5UHJvcGVydGllczxwYXNzPihtYXRj
aGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzLmdldCgpLCBtYXRjaFJlc3VsdC5tYXRjaGVkUnVsZXNb
aV0sIGlzSW1wb3J0YW50LCBpbmhlcml0ZWRPbmx5LCBtYXRjaGVkUHJvcGVydGllcy5pc0luUmVn
aW9uUnVsZSk7CisgICAgICAgICAgICBhcHBseVByb3BlcnRpZXM8cGFzcz4obWF0Y2hlZFByb3Bl
cnRpZXMucHJvcGVydGllcy5nZXQoKSwgbWF0Y2hSZXN1bHQubWF0Y2hlZFJ1bGVzW2ldLCBpc0lt
cG9ydGFudCwgaW5oZXJpdGVkT25seSwgc3RhdGljX2Nhc3Q8UHJvcGVydHlXaGl0ZWxpc3RUeXBl
PihtYXRjaGVkUHJvcGVydGllcy53aGl0ZWxpc3RUeXBlKSk7CiAgICAgICAgIH0KICAgICAgICAg
bV9hcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGUgPSB0cnVlOwogICAgICAgICBtX2FwcGx5UHJv
cGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGUgPSBmYWxzZTsKQEAgLTIzODUsNyArMjM4OCw3IEBAIHZv
aWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3Vs
dCYgbWF0Y2hSZXN1bHQsIGJvb2wKICAgICB9CiAgICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5kZXg7
IGkgPD0gZW5kSW5kZXg7ICsraSkgewogICAgICAgICBjb25zdCBNYXRjaGVkUHJvcGVydGllcyYg
bWF0Y2hlZFByb3BlcnRpZXMgPSBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllc1tpXTsKLSAg
ICAgICAgYXBwbHlQcm9wZXJ0aWVzPHBhc3M+KG1hdGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMu
Z2V0KCksIG1hdGNoUmVzdWx0Lm1hdGNoZWRSdWxlc1tpXSwgaXNJbXBvcnRhbnQsIGluaGVyaXRl
ZE9ubHksIG1hdGNoZWRQcm9wZXJ0aWVzLmlzSW5SZWdpb25SdWxlKTsKKyAgICAgICAgYXBwbHlQ
cm9wZXJ0aWVzPHBhc3M+KG1hdGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMuZ2V0KCksIG1hdGNo
UmVzdWx0Lm1hdGNoZWRSdWxlc1tpXSwgaXNJbXBvcnRhbnQsIGluaGVyaXRlZE9ubHksIHN0YXRp
Y19jYXN0PFByb3BlcnR5V2hpdGVsaXN0VHlwZT4obWF0Y2hlZFByb3BlcnRpZXMud2hpdGVsaXN0
VHlwZSkpOwogICAgIH0KIH0KIApAQCAtMjc2OCw2ICsyNzcxLDQ5IEBAIGlubGluZSBib29sIFN0
eWxlUmVzb2x2ZXI6OmlzVmFsaWRSZWdpb25TdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQoraW5saW5l
IGJvb2wgU3R5bGVSZXNvbHZlcjo6aXNWYWxpZEN1ZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlJ
RCBpZCkKK3sKKyAgICBzd2l0Y2ggKGlkKSB7CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91
bmQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRBdHRhY2htZW50OgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ2xpcDoKKyAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3Vu
ZENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2U6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eUJhY2tncm91bmRPcmlnaW46CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91
bmRQb3NpdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWDoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWToKKyAgICBjYXNlIENTU1Byb3Bl
cnR5QmFja2dyb3VuZFJlcGVhdDoKKyAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVh
dFg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRZOgorICAgIGNhc2UgQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kU2l6ZToKKyAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eUZvbnQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHk6Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRTaXplOgorICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5
bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50OgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlGb250V2VpZ2h0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0OgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlPcGFjaXR5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lOgorICAgIGNh
c2UgQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVP
ZmZzZXQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVTdHlsZToKKyAgICBjYXNlIENTU1By
b3BlcnR5T3V0bGluZVdpZHRoOgorICAgIGNhc2UgQ1NTUHJvcGVydHlWaXNpYmlsaXR5OgorICAg
IGNhc2UgQ1NTUHJvcGVydHlXaGl0ZVNwYWNlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVj
b3JhdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFNoYWRvdzoKKyAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVyU3R5bGU6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKIC8vIFNW
RyBoYW5kbGVzIHpvb21pbmcgaW4gYSBkaWZmZXJlbnQgd2F5IGNvbXBhcmVkIHRvIENTUy4gVGhl
IHdob2xlIGRvY3VtZW50IGlzIHNjYWxlZCBpbnN0ZWFkCiAvLyBvZiBlYWNoIGluZGl2aWR1YWwg
bGVuZ3RoIHZhbHVlIGluIHRoZSByZW5kZXIgc3R5bGUgLyB0cmVlLiBDU1NQcmltaXRpdmVWYWx1
ZTo6Y29tcHV0ZUxlbmd0aCooKQogLy8gbXVsdGlwbGllcyBlYWNoIHJlc29sdmVkIGxlbmd0aCB3
aXRoIHRoZSB6b29tIG11bHRpcGxpZXIgLSBzbyBmb3IgU1ZHIHdlIG5lZWQgdG8gZGlzYWJsZSB0
aGF0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggZGJlYjZlYS4uM2M0MzRmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiTWVkaWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAi
UnVsZUZlYXR1cmUuaCIKKyNpbmNsdWRlICJSdWxlU2V0LmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgogI2luY2x1ZGUg
IlNlbGVjdG9yRmlsdGVyLmgiCkBAIC0zMjcsNyArMzI4LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
dW5pb24gewogICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
aW5rTWF0Y2hUeXBlIDogMjsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBpc0luUmVnaW9uUnVs
ZSA6IDE7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgd2hpdGVsaXN0VHlwZSA6IDI7CiAgICAg
ICAgICAgICB9OwogICAgICAgICAgICAgLy8gVXNlZCB0byBtYWtlIHN1cmUgYWxsIG1lbW9yeSBp
cyB6ZXJvLWluaXRpYWxpemVkIHNpbmNlIHdlIGNvbXB1dGUgdGhlIGhhc2ggb3ZlciB0aGUgYnl0
ZXMgb2YgdGhpcyBvYmplY3QuCiAgICAgICAgICAgICB2b2lkKiBwb3NzaWJseVBhZGRlZE1lbWJl
cjsKQEAgLTM1Miw3ICszNTMsNyBAQCBwcml2YXRlOgogICAgICAgICBjb25zdCBDb250YWluZXJO
b2RlKiBzY29wZTsKICAgICB9OwogCi0gICAgc3RhdGljIHZvaWQgYWRkTWF0Y2hlZFByb3BlcnRp
ZXMoTWF0Y2hSZXN1bHQmLCBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHls
ZVJ1bGUqID0gMCwgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9IFNlbGVjdG9yQ2hlY2tlcjo6TWF0
Y2hBbGwsIGJvb2wgaW5SZWdpb25SdWxlID0gZmFsc2UpOworICAgIHN0YXRpYyB2b2lkIGFkZE1h
dGNoZWRQcm9wZXJ0aWVzKE1hdGNoUmVzdWx0JiwgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogcHJv
cGVydGllcywgU3R5bGVSdWxlKiA9IDAsIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBTZWxlY3Rv
ckNoZWNrZXI6Ok1hdGNoQWxsLCBQcm9wZXJ0eVdoaXRlbGlzdFR5cGUgPSBQcm9wZXJ0eVdoaXRl
bGlzdE5vbmUpOwogICAgIHZvaWQgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhNYXRjaFJlc3Vs
dCYsIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqLCBib29sIGlzQ2FjaGVhYmxlID0gdHJ1ZSk7CiAK
ICAgICB2b2lkIG1hdGNoQWxsUnVsZXMoTWF0Y2hSZXN1bHQmLCBib29sIGluY2x1ZGVTTUlMUHJv
cGVydGllcyk7CkBAIC0zODQsMTIgKzM4NSwxNCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxT
dHlsZUFwcGxpY2F0aW9uUGFzcyBwYXNzPgogICAgIHZvaWQgYXBwbHlNYXRjaGVkUHJvcGVydGll
cyhjb25zdCBNYXRjaFJlc3VsdCYsIGJvb2wgaW1wb3J0YW50LCBpbnQgc3RhcnRJbmRleCwgaW50
IGVuZEluZGV4LCBib29sIGluaGVyaXRlZE9ubHkpOwogICAgIHRlbXBsYXRlIDxTdHlsZUFwcGxp
Y2F0aW9uUGFzcyBwYXNzPgotICAgIHZvaWQgYXBwbHlQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJv
cGVydHlTZXQqIHByb3BlcnRpZXMsIFN0eWxlUnVsZSosIGJvb2wgaXNJbXBvcnRhbnQsIGJvb2wg
aW5oZXJpdGVkT25seSwgYm9vbCBmaWx0ZXJSZWdpb25Qcm9wZXJ0aWVzKTsKKyAgICB2b2lkIGFw
cGx5UHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1
bGUqLCBib29sIGlzSW1wb3J0YW50LCBib29sIGluaGVyaXRlZE9ubHksIFByb3BlcnR5V2hpdGVs
aXN0VHlwZSA9IFByb3BlcnR5V2hpdGVsaXN0Tm9uZSk7CiAjaWYgRU5BQkxFKENTU19WQVJJQUJM
RVMpCiAgICAgdm9pZCByZXNvbHZlVmFyaWFibGVzKENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlKiwg
VmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eUlELCBTdHJpbmc+ID4mIGtub3duRXhwcmVzc2lv
bnMpOwogI2VuZGlmCiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZFJlZ2lvblN0eWxlUHJvcGVydHko
Q1NTUHJvcGVydHlJRCk7Ci0KKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgc3RhdGljIGJv
b2wgaXNWYWxpZEN1ZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7CisjZW5kaWYKICAgICB2
b2lkIG1hdGNoUGFnZVJ1bGVzKE1hdGNoUmVzdWx0JiwgUnVsZVNldCosIGJvb2wgaXNMZWZ0UGFn
ZSwgYm9vbCBpc0ZpcnN0UGFnZSwgY29uc3QgU3RyaW5nJiBwYWdlTmFtZSk7CiAgICAgdm9pZCBt
YXRjaFBhZ2VSdWxlc0Zvckxpc3QoVmVjdG9yPFN0eWxlUnVsZVBhZ2UqPiYgbWF0Y2hlZFJ1bGVz
LCBjb25zdCBWZWN0b3I8U3R5bGVSdWxlUGFnZSo+JiwgYm9vbCBpc0xlZnRQYWdlLCBib29sIGlz
Rmlyc3RQYWdlLCBjb25zdCBTdHJpbmcmIHBhZ2VOYW1lKTsKICAgICBTZXR0aW5ncyogZG9jdW1l
bnRTZXR0aW5ncygpIHsgcmV0dXJuIG1fZG9jdW1lbnQtPnNldHRpbmdzKCk7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>