<?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>108858</bug_id>
          
          <creation_ts>2013-02-04 14:06:11 -0800</creation_ts>
          <short_desc>Store the language internally instead of using lang attribute for WebVTT nodes</short_desc>
          <delta_ts>2014-02-07 17:14:05 -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>1</everconfirmed>
          <reporter name="Dima Gorbik">dgorbik</reporter>
          <assigned_to name="Dima Gorbik">dgorbik</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</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>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>silviapf</cc>
    
    <cc>tkent</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>824743</commentid>
    <comment_count>0</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-04 14:06:11 -0800</bug_when>
    <thetext>Specs only require language objects have lang attributes. For all other objects the language should be stored internally to enable &apos;:lang&apos; pseudo-class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824855</commentid>
    <comment_count>1</comment_count>
      <attachid>186486</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-04 15:58:31 -0800</bug_when>
    <thetext>Created attachment 186486
Proposed fix 0.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824856</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-02-04 15:59:09 -0800</bug_when>
    <thetext>&lt;rdar://problem/13148532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824893</commentid>
    <comment_count>3</comment_count>
      <attachid>186486</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 16:44:54 -0800</bug_when>
    <thetext>Comment on attachment 186486
Proposed fix 0.1

Attachment 186486 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16367469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824906</commentid>
    <comment_count>4</comment_count>
      <attachid>186498</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-04 16:57:17 -0800</bug_when>
    <thetext>Created attachment 186498
Proposed fix 0.2

Is it better not to rename?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824921</commentid>
    <comment_count>5</comment_count>
      <attachid>186498</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-04 17:12:10 -0800</bug_when>
    <thetext>Comment on attachment 186498
Proposed fix 0.2

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

&gt; Source/WebCore/dom/Element.cpp:2156
&gt; -AtomicString Element::computeInheritedLanguage() const
&gt; +AtomicString Element::elementLanguage() const

Please don&apos;t rename this function. The name &apos;compute&apos; indicates this function is not a simple getter and needs higher cost.

&gt; Source/WebCore/html/track/WebVTTElement.h:81
&gt; +    AtomicString language;

m_language</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824941</commentid>
    <comment_count>6</comment_count>
      <attachid>186498</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-04 17:27:46 -0800</bug_when>
    <thetext>Comment on attachment 186498
Proposed fix 0.2

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Only language webvtt elements should have a lang attribute so we have to store
&gt; +        the language internally in the element. Refactored the code to make 
&gt; +        computeInheritedLanguage virtual.

Despite this comment, I don&apos;t understand why WebVTTElement needs to store language internally. How is it different from every other element with a lang attribute?

&gt; Source/WebCore/dom/Element.h:335
&gt; -    AtomicString computeInheritedLanguage() const;
&gt; +    virtual AtomicString elementLanguage() const;

This function has &quot;compute&quot; as a hint that it&apos;s unnecessary slow for most uses. One should almost always take language form the renderer, not from Element.

&gt; Source/WebCore/html/track/WebVTTElement.h:59
&gt; +    virtual AtomicString elementLanguage() const OVERRIDE { return language; }

I don&apos;t think that virtualizing core DOM functions is a great approach for WebVTT in general. Virtual function calls are slower, and a lot of effort has been invested in devirtualizing everything we could.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824952</commentid>
    <comment_count>7</comment_count>
      <attachid>186508</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-04 17:36:12 -0800</bug_when>
    <thetext>Created attachment 186508
Proposed fix 0.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824958</commentid>
    <comment_count>8</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-04 17:50:36 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 186498 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186498&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        Only language webvtt elements should have a lang attribute so we have to store
&gt; &gt; +        the language internally in the element. Refactored the code to make 
&gt; &gt; +        computeInheritedLanguage virtual.
&gt; 
&gt; Despite this comment, I don&apos;t understand why WebVTTElement needs to store language internally. How is it different from every other element with a lang attribute?

If we store the language in the attribute then c[lang=&quot;en&quot;] rule will work though it shouldn&apos;t according to specs. This is a difference between html and webvtt elements.  

&gt; I don&apos;t think that virtualizing core DOM functions is a great approach for WebVTT in general. Virtual function calls are slower, and a lot of effort has been invested in devirtualizing everything we could.
In general yes, but what about this case? This function is already quite heavy in terms of performance. Also I will have to call a virtual isWebVTTElement anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824964</commentid>
    <comment_count>9</comment_count>
      <attachid>186498</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-04 17:55:38 -0800</bug_when>
    <thetext>Comment on attachment 186498
Proposed fix 0.2

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt;&gt; +        computeInheritedLanguage virtual.
&gt;&gt; 
&gt;&gt; Despite this comment, I don&apos;t understand why WebVTTElement needs to store language internally. How is it different from every other element with a lang attribute?
&gt; 
&gt; If we store the language in the attribute then c[lang=&quot;en&quot;] rule will work though it shouldn&apos;t according to specs. This is a difference between html and webvtt elements.

Doesn&apos;t :lang pseudo-class work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824969</commentid>
    <comment_count>10</comment_count>
      <attachid>186498</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-04 17:57:48 -0800</bug_when>
    <thetext>Comment on attachment 186498
Proposed fix 0.2

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

&gt;&gt;&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt;&gt;&gt; +        computeInheritedLanguage virtual.
&gt;&gt;&gt; 
&gt;&gt;&gt; Despite this comment, I don&apos;t understand why WebVTTElement needs to store language internally. How is it different from every other element with a lang attribute?
&gt;&gt; 
&gt;&gt; If we store the language in the attribute then c[lang=&quot;en&quot;] rule will work though it shouldn&apos;t according to specs. This is a difference between html and webvtt elements.
&gt; 
&gt; Doesn&apos;t :lang pseudo-class work?

An, I understand.  The language information comes from VTT, not HTML/DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824976</commentid>
    <comment_count>11</comment_count>
      <attachid>186514</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-04 18:01:50 -0800</bug_when>
    <thetext>Created attachment 186514
Proposed fix 0.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825175</commentid>
    <comment_count>12</comment_count>
      <attachid>186514</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-04 23:30:13 -0800</bug_when>
    <thetext>Comment on attachment 186514
Proposed fix 0.4

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

&gt; Source/WebCore/html/track/WebVTTElement.cpp:74
&gt; +    , m_language(nullAtom)

You should not have to write this, AtomicString default constructor is equivalent to the nullAtom.

&gt; Source/WebCore/html/track/WebVTTElement.h:59
&gt; +    virtual AtomicString computeInheritedLanguage() const OVERRIDE { return m_language; }

IMHO, this is abusing inheritance. The language your return has nothing to do with the InheritedLanguage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825239</commentid>
    <comment_count>13</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-05 00:54:07 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Source/WebCore/html/track/WebVTTElement.h:59
&gt; &gt; +    virtual AtomicString computeInheritedLanguage() const OVERRIDE { return m_language; }
&gt; 
&gt; IMHO, this is abusing inheritance. The language your return has nothing to do with the InheritedLanguage.

The language I return is an inherited language but it&apos;s being pre-cached. The implementation we have in Element is related to html elements. That&apos;s why I suggested renaming at first. Those are different algorithms for getting a language for elements of different types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825591</commentid>
    <comment_count>14</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-05 10:19:39 -0800</bug_when>
    <thetext>WebVTT selector matching does not really operate on DOM object at all. That WebVTT nodes are implemented as Elements an implementation detail. They are not conceptually elements. This is why I think it is was appropriate to have explicit test in SelectorChecker rather than hiding the differences behind virtual function.

In other words I don&apos;t think there is problem to solve here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825815</commentid>
    <comment_count>15</comment_count>
      <attachid>186704</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-05 14:20:19 -0800</bug_when>
    <thetext>Created attachment 186704
Proposed fix 0.5

Okay, it&apos;s probably better to leave this code the way it was.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826804</commentid>
    <comment_count>16</comment_count>
      <attachid>186704</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 15:34:52 -0800</bug_when>
    <thetext>Comment on attachment 186704
Proposed fix 0.5

Clearing flags on attachment: 186704

Committed r142043: &lt;http://trac.webkit.org/changeset/142043&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826805</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 15:34:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978182</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-02-07 17:14:05 -0800</bug_when>
    <thetext>*** Bug 101351 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186486</attachid>
            <date>2013-02-04 15:58:31 -0800</date>
            <delta_ts>2013-02-04 16:57:17 -0800</delta_ts>
            <desc>Proposed fix 0.1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11388</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ZjZlNTU5Li43MjI3NmUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTMtMDIt
MDQgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CiAKKyAgICAgICAgU3RvcmUgdGhl
IGxhbmd1YWdlIGludGVybmFsbHkgaW5zdGVhZCBvZiB1c2luZyBsYW5nIGF0dHJpYnV0ZSBmb3Ig
V2ViVlRUIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDg4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0OgorICAg
ICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sOgorCisy
MDEzLTAyLTA0ICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCiAgICAgICAgIGNs
YXNzPSJjdWUiIGlzIGdldHRpbmcgc29tZSBkZWZhdWx0IHN0eWxlCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3NTIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmctbGFuZy52dHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy1sYW5nLnZ0dApp
bmRleCBlN2QwOTFhLi42NGIyMjY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy1sYW5nLnZ0dAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy1sYW5nLnZ0dApAQCAtMiw4ICsyLDQgQEAg
V0VCVlRUCiAKIDEKIDAwOjAwLjAwMCAtLT4gMDA6MDAuNTAwCi08bGFuZyBlbj48Yz5FbmdsaXNo
PGxhbmcgcnU+PGM+INCg0YPRgdGB0LrQuNC5PGxhbmcgZW4+PGM+IEVuZ2xpc2ggYWdhaW48L2M+
PC9sYW5nPjwvYz48L2xhbmc+PC9jPjwvbGFuZz4KLQotMgotMDA6MDAuNTAwIC0tPiAwMDowMS4w
MDAKLTxsYW5nIGVuPjxpPkVuZ2xpc2g8bGFuZyBydT48Yj4g0KDRg9GB0YHQutC40Lk8bGFuZyBl
bj48dT4gRW5nbGlzaCBhZ2FpbjwvdT48L2xhbmc+PC9iPjwvbGFuZz48L2k+PC9sYW5nPgorPGxh
bmcgZW4+PGI+RW5nbGlzaDxsYW5nIHJ1PjxjPiDQoNGD0YHRgdC60LjQuTxsYW5nIGVuPjxpPiBF
bmdsaXNoIGFnYWluPC9pPjwvbGFuZz48L2M+PC9sYW5nPjwvYj48L2xhbmc+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy1l
eHBlY3RlZC50eHQKaW5kZXggMDM1NzhmYy4uM2VlNGNjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVk
LnR4dApAQCAtMSwxMiArMSw2IEBACi1UZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBw
cm9wZXJseSBieSB0aGUgbGFuZyBhdHRyaWJ1dGUuCitUZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcg
bWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgbGFuZyBhdHRyaWJ1dGUgYW5kIDpsYW5nKCkgcHNldWRv
IGNsYXNzLgogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFVkVOVChzZWVrZWQpCi1FWFBFQ1RFRCAo
Z2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDAsIDEyOCwgMCknKSBPSwot
RVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDAs
IDApJykgT0sKLUVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdy
Z2IoMCwgMTI4LCAwKScpIE9LCi0KLVJVTih2aWRlby5jdXJyZW50VGltZSA9IDAuNikKLUVWRU5U
KHNlZWtlZCkKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdy
Z2IoMTI4LCAwLCAxMjgpJykgT0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUp
LmNvbG9yID09ICdyZ2IoMCwgMjU1LCAwKScpIE9LCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHls
ZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMCwgMTI4KScpIE9LCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmcuaHRtbAppbmRleCBm
YmVlOTI5Li4zNDM1YzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFj
ay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLWNzcy1tYXRjaGluZy1sYW5nLmh0bWwKQEAgLTksMTkgKzksMTcgQEAKIAogICAgICAgICA8
c3R5bGU+CiAgICAgICAgIDo6Y3VlKDpsYW5nKHJ1KSkgeyBjb2xvcjogbGltZTsgfQotICAgICAg
ICA6OmN1ZSg6bGFuZyhlbikpIHsgY29sb3I6IHB1cnBsZTsgfQotICAgICAgICA6OmN1ZShjW2xh
bmc9InJ1Il0pIHsgY29sb3I6IHJlZDsgfQotICAgICAgICA6OmN1ZShjW2xhbmc9ImVuIl0pIHsg
Y29sb3I6IGdyZWVuOyB9CisgICAgICAgIDo6Y3VlKGxhbmdbbGFuZz0iZW4iXSkgeyBjb2xvcjog
cHVycGxlOyB9CisgICAgICAgIDo6Y3VlKGNbbGFuZz0icnUiXSkgeyBjb2xvcjogcmVkOyB9IC8q
IFNob3VsZG4ndCB3b3JrLCBubyBhdHRyaWJ1dGUgJ2xhbmcnIGZvciAnYycuICovCiAgICAgICAg
IDwvc3R5bGU+CiAKICAgICAgICAgPHNjcmlwdD4KIAogICAgICAgICB2YXIgY3VlTm9kZTsKICAg
ICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsKLSAgICAgICAgdmFyIHNlZWtUaW1lcyA9IFswLjEs
IDAuNl07CisgICAgICAgIHZhciBzZWVrVGltZXMgPSBbMC4xXTsKIAotICAgICAgICB2YXIgaW5m
byA9IFtbInJnYigwLCAxMjgsIDApIiwgInJnYigyNTUsIDAsIDApIiwgInJnYigwLCAxMjgsIDAp
Il0sCi0gICAgICAgICAgICAgICAgICAgIFsicmdiKDEyOCwgMCwgMTI4KSIsICJyZ2IoMCwgMjU1
LCAwKSIsICJyZ2IoMTI4LCAwLCAxMjgpIl1dOworICAgICAgICB2YXIgaW5mbyA9IFtbInJnYigx
MjgsIDAsIDEyOCkiLCAicmdiKDAsIDI1NSwgMCkiLCAicmdiKDEyOCwgMCwgMTI4KSJdXTsKIAog
ICAgICAgICBmdW5jdGlvbiBzZWVrZWQoKQogICAgICAgICB7CkBAIC00NSw3ICs0Myw3IEBACiAK
ICAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKICAgICAgICAgewotICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCJUZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUg
bGFuZyBhdHRyaWJ1dGUuIik7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgdGhhdCBj
dWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRoZSBsYW5nIGF0dHJpYnV0ZSBhbmQg
OmxhbmcoKSBwc2V1ZG8gY2xhc3MuIik7CiAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7
CiAgICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250
ZW50L3Rlc3QnKTsKICAgICAgICAgICAgIHZpZGVvLmlkID0gInRlc3R2aWRlbyI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZmVhNDM1ZC4uMzk2NjA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEz
LTAyLTA0ICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3Jl
IHRoZSBsYW5ndWFnZSBpbnRlcm5hbGx5IGluc3RlYWQgb2YgdXNpbmcgbGFuZyBhdHRyaWJ1dGUg
Zm9yIFdlYlZUVCBub2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4ODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgT25seSBsYW5ndWFnZSB3ZWJ2dHQgZWxlbWVudHMgc2hvdWxkIGhhdmUgYSBsYW5n
IGF0dHJpYnV0ZSBzbyB3ZSBoYXZlIHRvIHN0b3JlCisgICAgICAgIHRoZSBsYW5ndWFnZSBpbnRl
cm5hbGx5IGluIHRoZSBlbGVtZW50LiBSZWZhY3RvcmVkIHRoZSBjb2RlIHRvIG1ha2UgCisgICAg
ICAgIGNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSB2aXJ0dWFsLgorCisgICAgICAgIEV4aXN0aW5n
IHRlc3RzIHdlcmUgbW9kaWZpZWQgdG8gY292ZXIgdGhpcyBjYXNlLgorCisgICAgICAgICogY3Nz
L1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6
OmNoZWNrT25lKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjplbGVtZW50TGFuZ3VhZ2UpOiB0aGlzIGlzIGEgdmlydHVhbCB2ZXJzaW9uIG9m
IGNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omxv
Y2FsZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRURWxlbWVudDo6V2ViVlRU
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRFbGVtZW50OjpjbG9uZUVsZW1lbnRX
aXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKTogY2xvbmUgdGhlIGludGVybmFsIGxhbmd1YWdl
IHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRURWxlbWVudDo6Y3JlYXRlRXF1aXZh
bGVudEhUTUxFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYlZUVEVsZW1lbnQ6OnNldExhbmd1YWdlKToKKyAgICAgICAg
KiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6IG9ubHkgc2V0IHRoZSBsYW5nIGF0dHJpYnV0
ZSBmb3IgbGFuZ3VhZ2Ugb2JqZWN0cy4KKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6
Y29uc3RydWN0VHJlZUZyb21Ub2tlbik6CisKIDIwMTMtMDItMDQgIElnb3IgT2xpdmVpcmEgIDxp
Z29yLm9Ac2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbVGV4bWFwXSBJbXBsZW1lbnQgQkdS
QSBzd2l6emxpbmcgZGV0ZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3Bw
CmluZGV4IDNjYTY0ZGQuLjhjNjIzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCkBAIC04MTksMTMgKzgxOSw3IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09u
ZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgY29uc3QgU2liCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFuZzoKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWU7Ci0jaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQotICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LT5pc1dlYlZUVEVs
ZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBlbGVtZW50LT5nZXRBdHRyaWJ1
dGUobGFuZ0F0dHIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSNlbmRpZgotICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IGVsZW1lbnQtPmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpOworICAg
ICAgICAgICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZSA9IGVsZW1lbnQtPmVsZW1lbnRMYW5ndWFn
ZSgpOwogICAgICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgPSBzZWxl
Y3Rvci0+YXJndW1lbnQoKTsKICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaXNFbXB0eSgpIHx8
ICF2YWx1ZS5zdGFydHNXaXRoKGFyZ3VtZW50LCBmYWxzZSkpCiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDgzODJjNWQuLjVkODk4ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTIxNTMsNyArMjE1Myw3IEBAIGJvb2wgRWxlbWVudDo6aXNJ
bkNhbnZhc1N1YnRyZWUoKSBjb25zdAogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIGVsZW1l
bnRSYXJlRGF0YSgpLT5pc0luQ2FudmFzU3VidHJlZSgpOwogfQogCi1BdG9taWNTdHJpbmcgRWxl
bWVudDo6Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3QKK0F0b21pY1N0cmluZyBFbGVt
ZW50OjplbGVtZW50TGFuZ3VhZ2UoKSBjb25zdAogewogICAgIGNvbnN0IE5vZGUqIG4gPSB0aGlz
OwogICAgIEF0b21pY1N0cmluZyB2YWx1ZTsKQEAgLTIxODAsNyArMjE4MCw3IEBAIEF0b21pY1N0
cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAogCiBMb2NhbGUm
IEVsZW1lbnQ6OmxvY2FsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50KCktPmdldENh
Y2hlZExvY2FsZShjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSk7CisgICAgcmV0dXJuIGRvY3Vt
ZW50KCktPmdldENhY2hlZExvY2FsZShlbGVtZW50TGFuZ3VhZ2UoKSk7CiB9CiAKIHZvaWQgRWxl
bWVudDo6Y2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4
IGRmMTYzM2QuLjc1OTFjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzMyLDcgKzMzMiw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldElzSW5DYW52YXNTdWJ0cmVlKGJvb2wpOwogICAgIGJvb2wg
aXNJbkNhbnZhc1N1YnRyZWUoKSBjb25zdDsKIAotICAgIEF0b21pY1N0cmluZyBjb21wdXRlSW5o
ZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBlbGVtZW50
TGFuZ3VhZ2UoKSBjb25zdDsKICAgICBMb2NhbGUmIGxvY2FsZSgpIGNvbnN0OwogCiAgICAgdmly
dHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIC8qc2VuZFRvQW55RXZlbnQqLykgeyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcAppbmRleCBkNjc3Mjcy
Li5iZTVkMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5j
cHAKQEAgLTcxLDYgKzcxLDcgQEAgV2ViVlRURWxlbWVudDo6V2ViVlRURWxlbWVudChXZWJWVFRO
b2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogRWxlbWVudChub2Rl
VHlwZVRvVGFnTmFtZShub2RlVHlwZSksIGRvY3VtZW50LCBDcmVhdGVFbGVtZW50KQogICAgICwg
bV9pc1Bhc3ROb2RlKDApCiAgICAgLCBtX3dlYlZUVE5vZGVUeXBlKG5vZGVUeXBlKQorICAgICwg
bGFuZ3VhZ2UobnVsbEF0b20pCiB7CiB9CiAKQEAgLTgxLDcgKzgyLDkgQEAgUGFzc1JlZlB0cjxX
ZWJWVFRFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGUoV2ViVlRUTm9kZVR5cGUgbm9kZVR5
cGUsIERvY3VtZW4KIAogUGFzc1JlZlB0cjxFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjbG9uZUVs
ZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkKIHsKLSAgICByZXR1cm4gY3JlYXRl
KHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKSwgZG9jdW1lbnQo
KSk7CisgICAgUmVmUHRyPFdlYlZUVEVsZW1lbnQ+IGNsb25lID0gY3JlYXRlKHN0YXRpY19jYXN0
PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKSwgZG9jdW1lbnQoKSk7CisgICAgY2xv
bmUtPnNldExhbmd1YWdlKGxhbmd1YWdlKTsKKyAgICByZXR1cm4gY2xvbmU7CiB9CiAKIFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQpCkBAIC05Myw2ICs5Niw3IEBAIFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1
bWVudCogZG9jCiAgICAgY2FzZSBXZWJWVFROb2RlVHlwZVZvaWNlOgogICAgICAgICBodG1sRWxl
bWVudCA9IEhUTUxFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjpzcGFuVGFnLCBkb2N1bWVudCk7
CiAgICAgICAgIGh0bWxFbGVtZW50LmdldCgpLT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjp0aXRs
ZUF0dHIsIGdldEF0dHJpYnV0ZSh2b2ljZUF0dHJpYnV0ZU5hbWUoKSkpOworICAgICAgICBodG1s
RWxlbWVudC5nZXQoKS0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6bGFuZ0F0dHIsIGdldEF0dHJp
YnV0ZShsYW5nQXR0cmlidXRlTmFtZSgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2Vi
VlRUTm9kZVR5cGVJdGFsaWM6CiAgICAgICAgIGh0bWxFbGVtZW50ID0gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZShIVE1MTmFtZXM6OmlUYWcsIGRvY3VtZW50KTsKQEAgLTExMyw3ICsxMTcsNiBAQCBQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGVFcXVpdmFsZW50SFRNTEVs
ZW1lbnQoRG9jdW1lbnQqIGRvYwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9
CiAKLSAgICBodG1sRWxlbWVudC5nZXQoKS0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6bGFuZ0F0
dHIsIGdldEF0dHJpYnV0ZShsYW5nQXR0cmlidXRlTmFtZSgpKSk7CiAgICAgaHRtbEVsZW1lbnQu
Z2V0KCktPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgZ2V0QXR0cmlidXRlKEhU
TUxOYW1lczo6Y2xhc3NBdHRyKSk7CiAgICAgcmV0dXJuIGh0bWxFbGVtZW50OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAppbmRleCBkNDAwYWQ2Li5lY2E0N2Mz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaApAQCAtNTYsNiAr
NTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc1Bhc3ROb2RlKGJvb2wgdmFsdWUpIHsgbV9p
c1Bhc3ROb2RlID0gdmFsdWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc1dlYlZUVEVsZW1lbnQo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBBdG9taWNTdHJp
bmcgZWxlbWVudExhbmd1YWdlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbGFuZ3VhZ2U7IH0K
KyAgICB2b2lkIHNldExhbmd1YWdlKEF0b21pY1N0cmluZyB2YWx1ZSkgeyBsYW5ndWFnZSA9IHZh
bHVlOyB9CiAKICAgICBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgdm9pY2VBdHRyaWJ1dGVO
YW1lKCkKICAgICB7CkBAIC03Niw2ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9p
c1Bhc3ROb2RlIDogMTsKICAgICB1bnNpZ25lZCBtX3dlYlZUVE5vZGVUeXBlIDogNDsKICAgICAK
KyAgICBBdG9taWNTdHJpbmcgbGFuZ3VhZ2U7CiB9OwogCiBpbmxpbmUgV2ViVlRURWxlbWVudCog
dG9XZWJWVFRFbGVtZW50KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVFBhcnNlci5jcHAKaW5kZXggZjgzNTA2MC4uMWU2MjZlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApAQCAtMzk2LDEyICszOTYsMTIgQEAgdm9pZCBX
ZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oRG9jdW1lbnQqIGRvY3VtZW50KQog
CiAgICAgICAgICAgICBpZiAoY2hpbGQtPndlYlZUVE5vZGVUeXBlKCkgPT0gV2ViVlRUTm9kZVR5
cGVWb2ljZSkKICAgICAgICAgICAgICAgICBjaGlsZC0+c2V0QXR0cmlidXRlKFdlYlZUVEVsZW1l
bnQ6OnZvaWNlQXR0cmlidXRlTmFtZSgpLCBBdG9taWNTdHJpbmcobV90b2tlbi5hbm5vdGF0aW9u
KCkuZGF0YSgpLCBtX3Rva2VuLmFubm90YXRpb24oKS5zaXplKCkpKTsKLSAgICAgICAgICAgIGVs
c2UgaWYgKGNoaWxkLT53ZWJWVFROb2RlVHlwZSgpID09IFdlYlZUVE5vZGVUeXBlTGFuZ3VhZ2Up
CisgICAgICAgICAgICBlbHNlIGlmIChjaGlsZC0+d2ViVlRUTm9kZVR5cGUoKSA9PSBXZWJWVFRO
b2RlVHlwZUxhbmd1YWdlKSB7CiAgICAgICAgICAgICAgICAgbV9sYW5ndWFnZVN0YWNrLmFwcGVu
ZChBdG9taWNTdHJpbmcobV90b2tlbi5hbm5vdGF0aW9uKCkuZGF0YSgpLCBtX3Rva2VuLmFubm90
YXRpb24oKS5zaXplKCkpKTsKLQotICAgICAgICAgICAgaWYgKCFtX2xhbmd1YWdlU3RhY2suaXNF
bXB0eSgpKQogICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRBdHRyaWJ1dGUoV2ViVlRURWxlbWVu
dDo6bGFuZ0F0dHJpYnV0ZU5hbWUoKSwgbV9sYW5ndWFnZVN0YWNrLmxhc3QoKSk7Ci0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbV9sYW5ndWFnZVN0YWNrLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBjaGlsZC0+c2V0TGFuZ3VhZ2UobV9sYW5ndWFnZVN0YWNrLmxhc3QoKSk7
CiAgICAgICAgICAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBcHBlbmRDaGlsZChjaGlsZCk7CiAg
ICAgICAgICAgICBtX2N1cnJlbnROb2RlID0gY2hpbGQ7CiAgICAgICAgIH0K
</data>
<flag name="commit-queue"
          id="205940"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186498</attachid>
            <date>2013-02-04 16:57:17 -0800</date>
            <delta_ts>2013-02-04 17:57:48 -0800</delta_ts>
            <desc>Proposed fix 0.2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15014</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MjM0YzM4Li5jOGE4Mzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDIt
MDQgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmUgdGhl
IGxhbmd1YWdlIGludGVybmFsbHkgaW5zdGVhZCBvZiB1c2luZyBsYW5nIGF0dHJpYnV0ZSBmb3Ig
V2ViVlRUIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDg4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0OgorICAg
ICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sOgorCiAy
MDEzLTAxLTMxICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBJbXBsZW1lbnQgV2hlZWxFdmVudDo6ZGVsdGFNb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy1sYW5nLnZ0dCBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CmluZGV4IGU3
ZDA5MWEuLjY0YjIyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRp
b25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CkBAIC0yLDggKzIsNCBAQCBXRUJWVFQK
IAogMQogMDA6MDAuMDAwIC0tPiAwMDowMC41MDAKLTxsYW5nIGVuPjxjPkVuZ2xpc2g8bGFuZyBy
dT48Yz4g0KDRg9GB0YHQutC40Lk8bGFuZyBlbj48Yz4gRW5nbGlzaCBhZ2FpbjwvYz48L2xhbmc+
PC9jPjwvbGFuZz48L2M+PC9sYW5nPgotCi0yCi0wMDowMC41MDAgLS0+IDAwOjAxLjAwMAotPGxh
bmcgZW4+PGk+RW5nbGlzaDxsYW5nIHJ1PjxiPiDQoNGD0YHRgdC60LjQuTxsYW5nIGVuPjx1PiBF
bmdsaXNoIGFnYWluPC91PjwvbGFuZz48L2I+PC9sYW5nPjwvaT48L2xhbmc+Cis8bGFuZyBlbj48
Yj5FbmdsaXNoPGxhbmcgcnU+PGM+INCg0YPRgdGB0LrQuNC5PGxhbmcgZW4+PGk+IEVuZ2xpc2gg
YWdhaW48L2k+PC9sYW5nPjwvYz48L2xhbmc+PC9iPjwvbGFuZz4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVk
LnR4dAppbmRleCAwMzU3OGZjLi4zZWU0Y2M1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmctZXhwZWN0ZWQudHh0CkBA
IC0xLDEyICsxLDYgQEAKLVRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5
IGJ5IHRoZSBsYW5nIGF0dHJpYnV0ZS4KK1Rlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVk
IHByb3Blcmx5IGJ5IHRoZSBsYW5nIGF0dHJpYnV0ZSBhbmQgOmxhbmcoKSBwc2V1ZG8gY2xhc3Mu
CiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVWRU5UKHNlZWtlZCkKLUVYUEVDVEVEIChnZXRDb21w
dXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMCwgMTI4LCAwKScpIE9LCi1FWFBFQ1RF
RCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMCwgMCknKSBP
SwotRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigwLCAx
MjgsIDApJykgT0sKLQotUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gMC42KQotRVZFTlQoc2Vla2Vk
KQogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigxMjgs
IDAsIDEyOCknKSBPSwogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3Ig
PT0gJ3JnYigwLCAyNTUsIDApJykgT0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5v
ZGUpLmNvbG9yID09ICdyZ2IoMTI4LCAwLCAxMjgpJykgT0sKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sCmluZGV4IGZiZWU5Mjku
LjM0MzVjMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1t
YXRjaGluZy1sYW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Nz
LW1hdGNoaW5nLWxhbmcuaHRtbApAQCAtOSwxOSArOSwxNyBAQAogCiAgICAgICAgIDxzdHlsZT4K
ICAgICAgICAgOjpjdWUoOmxhbmcocnUpKSB7IGNvbG9yOiBsaW1lOyB9Ci0gICAgICAgIDo6Y3Vl
KDpsYW5nKGVuKSkgeyBjb2xvcjogcHVycGxlOyB9Ci0gICAgICAgIDo6Y3VlKGNbbGFuZz0icnUi
XSkgeyBjb2xvcjogcmVkOyB9Ci0gICAgICAgIDo6Y3VlKGNbbGFuZz0iZW4iXSkgeyBjb2xvcjog
Z3JlZW47IH0KKyAgICAgICAgOjpjdWUobGFuZ1tsYW5nPSJlbiJdKSB7IGNvbG9yOiBwdXJwbGU7
IH0KKyAgICAgICAgOjpjdWUoY1tsYW5nPSJydSJdKSB7IGNvbG9yOiByZWQ7IH0gLyogU2hvdWxk
bid0IHdvcmssIG5vIGF0dHJpYnV0ZSAnbGFuZycgZm9yICdjJy4gKi8KICAgICAgICAgPC9zdHls
ZT4KIAogICAgICAgICA8c2NyaXB0PgogCiAgICAgICAgIHZhciBjdWVOb2RlOwogICAgICAgICB2
YXIgc2Vla2VkQ291bnQgPSAwOwotICAgICAgICB2YXIgc2Vla1RpbWVzID0gWzAuMSwgMC42XTsK
KyAgICAgICAgdmFyIHNlZWtUaW1lcyA9IFswLjFdOwogCi0gICAgICAgIHZhciBpbmZvID0gW1si
cmdiKDAsIDEyOCwgMCkiLCAicmdiKDI1NSwgMCwgMCkiLCAicmdiKDAsIDEyOCwgMCkiXSwKLSAg
ICAgICAgICAgICAgICAgICAgWyJyZ2IoMTI4LCAwLCAxMjgpIiwgInJnYigwLCAyNTUsIDApIiwg
InJnYigxMjgsIDAsIDEyOCkiXV07CisgICAgICAgIHZhciBpbmZvID0gW1sicmdiKDEyOCwgMCwg
MTI4KSIsICJyZ2IoMCwgMjU1LCAwKSIsICJyZ2IoMTI4LCAwLCAxMjgpIl1dOwogCiAgICAgICAg
IGZ1bmN0aW9uIHNlZWtlZCgpCiAgICAgICAgIHsKQEAgLTQ1LDcgKzQzLDcgQEAKIAogICAgICAg
ICBmdW5jdGlvbiBsb2FkZWQoKQogICAgICAgICB7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUo
IlRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRoZSBsYW5nIGF0
dHJpYnV0ZS4iKTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0IGN1ZXMgYXJl
IGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlIGxhbmcgYXR0cmlidXRlIGFuZCA6bGFuZygp
IHBzZXVkbyBjbGFzcy4iKTsKICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKICAgICAg
ICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJy4uL2NvbnRlbnQvdGVz
dCcpOwogICAgICAgICAgICAgdmlkZW8uaWQgPSAidGVzdHZpZGVvIjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZTViODgzLi4yNmQ5ZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTMtMDItMDQg
IERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmUgdGhlIGxh
bmd1YWdlIGludGVybmFsbHkgaW5zdGVhZCBvZiB1c2luZyBsYW5nIGF0dHJpYnV0ZSBmb3IgV2Vi
VlRUIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPbmx5IGxhbmd1YWdlIHdlYnZ0dCBlbGVtZW50cyBzaG91bGQgaGF2ZSBhIGxhbmcgYXR0cmli
dXRlIHNvIHdlIGhhdmUgdG8gc3RvcmUKKyAgICAgICAgdGhlIGxhbmd1YWdlIGludGVybmFsbHkg
aW4gdGhlIGVsZW1lbnQuIFJlZmFjdG9yZWQgdGhlIGNvZGUgdG8gbWFrZSAKKyAgICAgICAgY29t
cHV0ZUluaGVyaXRlZExhbmd1YWdlIHZpcnR1YWwuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMg
d2VyZSBtb2RpZmllZCB0byBjb3ZlciB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBjc3MvU2VsZWN0
b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tP
bmUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmVsZW1lbnRMYW5ndWFnZSk6IHRoaXMgaXMgYSB2aXJ0dWFsIHZlcnNpb24gb2YgY29tcHV0
ZUluaGVyaXRlZExhbmd1YWdlLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6bG9jYWxlKToK
KyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmll
bGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmxvY2FsZUlkZW50aWZpZXIpOgorICAgICAg
ICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZXR1cERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3RhcnRTcGVlY2hJbnB1dCk6CisgICAg
ICAgICogaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlZUVEVsZW1lbnQ6OldlYlZUVEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRURWxl
bWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbik6IGNsb25lIHRo
ZSBpbnRlcm5hbCBsYW5ndWFnZSBwcm9wZXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVEVs
ZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudCk6CisgICAgICAgICogaHRtbC90cmFj
ay9XZWJWVFRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRFbGVtZW50OjpzZXRM
YW5ndWFnZSk6CisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwOiBvbmx5IHNl
dCB0aGUgbGFuZyBhdHRyaWJ1dGUgZm9yIGxhbmd1YWdlIG9iamVjdHMuCisgICAgICAgIChXZWJD
b3JlOjpXZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4pOgorCiAyMDEzLTAxLTMx
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1l
bnQgV2hlZWxFdmVudDo6ZGVsdGFNb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwCmluZGV4IDNjYTY0ZGQuLjhjNjIzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwCkBAIC04MTksMTMgKzgxOSw3IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVj
a09uZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgY29uc3QgU2liCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFuZzoK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWU7Ci0jaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LT5pc1dlYlZU
VEVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBlbGVtZW50LT5nZXRBdHRy
aWJ1dGUobGFuZ0F0dHIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSNlbmRpZgotICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGVsZW1lbnQtPmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpOwor
ICAgICAgICAgICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZSA9IGVsZW1lbnQtPmVsZW1lbnRMYW5n
dWFnZSgpOwogICAgICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgPSBz
ZWxlY3Rvci0+YXJndW1lbnQoKTsKICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaXNFbXB0eSgp
IHx8ICF2YWx1ZS5zdGFydHNXaXRoKGFyZ3VtZW50LCBmYWxzZSkpCiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDUzMjdjMGQuLmIzNTYyYTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIxNTMsNyArMjE1Myw3IEBAIGJvb2wgRWxlbWVudDo6
aXNJbkNhbnZhc1N1YnRyZWUoKSBjb25zdAogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIGVs
ZW1lbnRSYXJlRGF0YSgpLT5pc0luQ2FudmFzU3VidHJlZSgpOwogfQogCi1BdG9taWNTdHJpbmcg
RWxlbWVudDo6Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3QKK0F0b21pY1N0cmluZyBF
bGVtZW50OjplbGVtZW50TGFuZ3VhZ2UoKSBjb25zdAogewogICAgIGNvbnN0IE5vZGUqIG4gPSB0
aGlzOwogICAgIEF0b21pY1N0cmluZyB2YWx1ZTsKQEAgLTIxODAsNyArMjE4MCw3IEBAIEF0b21p
Y1N0cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAogCiBMb2Nh
bGUmIEVsZW1lbnQ6OmxvY2FsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50KCktPmdl
dENhY2hlZExvY2FsZShjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSk7CisgICAgcmV0dXJuIGRv
Y3VtZW50KCktPmdldENhY2hlZExvY2FsZShlbGVtZW50TGFuZ3VhZ2UoKSk7CiB9CiAKIHZvaWQg
RWxlbWVudDo6Y2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmlu
ZGV4IGRmMTYzM2QuLjc1OTFjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzMyLDcgKzMzMiw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzSW5DYW52YXNTdWJ0cmVlKGJvb2wpOwogICAgIGJv
b2wgaXNJbkNhbnZhc1N1YnRyZWUoKSBjb25zdDsKIAotICAgIEF0b21pY1N0cmluZyBjb21wdXRl
SW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBlbGVt
ZW50TGFuZ3VhZ2UoKSBjb25zdDsKICAgICBMb2NhbGUmIGxvY2FsZSgpIGNvbnN0OwogCiAgICAg
dmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIC8qc2VuZFRvQW55RXZlbnQqLykgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmll
bGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGViMjhiMzguLjliNjQyODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMDAsNyArMzAwLDcgQEAgYm9vbCBCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0
CiAKIEF0b21pY1N0cmluZyBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6
bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS0+Y29tcHV0
ZUluaGVyaXRlZExhbmd1YWdlKCk7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+ZWxlbWVudExhbmd1
YWdlKCk7CiB9CiAKIHZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6
Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAppbmRleCA0OGQ5NzNhLi44YzVlZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTE5MzEsNyArMTkzMSw3IEBAIGJvb2wgSFRNTElucHV0
RWxlbWVudDo6c2V0dXBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzKERhdGVUaW1lQ2hvb3NlclBh
cmFtZXRlcnMmCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpsYW5nQXR0cmlidXRl
QXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZCgpKQogICAgICAgICBwYXJhbWV0ZXJzLmxvY2FsZSA9
IGRlZmF1bHRMYW5ndWFnZSgpOwogICAgIGVsc2UgewotICAgICAgICBBdG9taWNTdHJpbmcgY29t
cHV0ZWRMb2NhbGUgPSBjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKKyAgICAgICAgQXRvbWlj
U3RyaW5nIGNvbXB1dGVkTG9jYWxlID0gZWxlbWVudExhbmd1YWdlKCk7CiAgICAgICAgIHBhcmFt
ZXRlcnMubG9jYWxlID0gY29tcHV0ZWRMb2NhbGUuaXNFbXB0eSgpID8gQXRvbWljU3RyaW5nKGRl
ZmF1bHRMYW5ndWFnZSgpKSA6IGNvbXB1dGVkTG9jYWxlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAK
aW5kZXggYTVhZDFiNC4uNzQ5MTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC00MjMsNyArNDIzLDcg
QEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3RhcnRTcGVlY2hJbnB1dCgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOwotICAgIEF0b21p
Y1N0cmluZyBsYW5ndWFnZSA9IGlucHV0LT5jb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKKyAg
ICBBdG9taWNTdHJpbmcgbGFuZ3VhZ2UgPSBpbnB1dC0+ZWxlbWVudExhbmd1YWdlKCk7CiAgICAg
U3RyaW5nIGdyYW1tYXIgPSBpbnB1dC0+Z2V0QXR0cmlidXRlKHdlYmtpdGdyYW1tYXJBdHRyKTsK
ICAgICBJbnRSZWN0IHJlY3QgPSBkb2N1bWVudCgpLT52aWV3KCktPmNvbnRlbnRzVG9Sb290Vmll
dyhwaXhlbFNuYXBwZWRCb3VuZGluZ0JveCgpKTsKICAgICBpZiAoc3BlZWNoSW5wdXQoKS0+c3Rh
cnRSZWNvZ25pdGlvbihtX2xpc3RlbmVySWQsIHJlY3QsIGxhbmd1YWdlLCBncmFtbWFyLCBkb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuY3BwCmluZGV4IGQ2NzcyNzIuLmJlNWQyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcApAQCAtNzEsNiArNzEsNyBAQCBXZWJWVFRF
bGVtZW50OjpXZWJWVFRFbGVtZW50KFdlYlZUVE5vZGVUeXBlIG5vZGVUeXBlLCBEb2N1bWVudCog
ZG9jdW1lbnQpCiAgICAgOiBFbGVtZW50KG5vZGVUeXBlVG9UYWdOYW1lKG5vZGVUeXBlKSwgZG9j
dW1lbnQsIENyZWF0ZUVsZW1lbnQpCiAgICAgLCBtX2lzUGFzdE5vZGUoMCkKICAgICAsIG1fd2Vi
VlRUTm9kZVR5cGUobm9kZVR5cGUpCisgICAgLCBsYW5ndWFnZShudWxsQXRvbSkKIHsKIH0KIApA
QCAtODEsNyArODIsOSBAQCBQYXNzUmVmUHRyPFdlYlZUVEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6
OmNyZWF0ZShXZWJWVFROb2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbgogCiBQYXNzUmVmUHRyPEVs
ZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4oKQogewotICAgIHJldHVybiBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+
KG1fd2ViVlRUTm9kZVR5cGUpLCBkb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8V2ViVlRURWxlbWVu
dD4gY2xvbmUgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9k
ZVR5cGUpLCBkb2N1bWVudCgpKTsKKyAgICBjbG9uZS0+c2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwor
ICAgIHJldHVybiBjbG9uZTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gV2ViVlRURWxl
bWVudDo6Y3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKQEAg
LTkzLDYgKzk2LDcgQEAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y3Jl
YXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50KiBkb2MKICAgICBjYXNlIFdlYlZUVE5v
ZGVUeXBlVm9pY2U6CiAgICAgICAgIGh0bWxFbGVtZW50ID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShI
VE1MTmFtZXM6OnNwYW5UYWcsIGRvY3VtZW50KTsKICAgICAgICAgaHRtbEVsZW1lbnQuZ2V0KCkt
PnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnRpdGxlQXR0ciwgZ2V0QXR0cmlidXRlKHZvaWNlQXR0
cmlidXRlTmFtZSgpKSk7CisgICAgICAgIGh0bWxFbGVtZW50LmdldCgpLT5zZXRBdHRyaWJ1dGUo
SFRNTE5hbWVzOjpsYW5nQXR0ciwgZ2V0QXR0cmlidXRlKGxhbmdBdHRyaWJ1dGVOYW1lKCkpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJWVFROb2RlVHlwZUl0YWxpYzoKICAgICAgICAg
aHRtbEVsZW1lbnQgPSBIVE1MRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aVRhZywgZG9jdW1l
bnQpOwpAQCAtMTEzLDcgKzExNyw2IEBAIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IFdlYlZUVEVs
ZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCogZG9jCiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIGh0bWxFbGVtZW50LmdldCgpLT5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpsYW5nQXR0ciwgZ2V0QXR0cmlidXRlKGxhbmdBdHRyaWJ1
dGVOYW1lKCkpKTsKICAgICBodG1sRWxlbWVudC5nZXQoKS0+c2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6Y2xhc3NBdHRyLCBnZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIpKTsKICAgICBy
ZXR1cm4gaHRtbEVsZW1lbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1dlYlZUVEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxl
bWVudC5oCmluZGV4IGQ0MDBhZDYuLmVjYTQ3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRURWxlbWVudC5oCkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dElzUGFzdE5vZGUoYm9vbCB2YWx1ZSkgeyBtX2lzUGFzdE5vZGUgPSB2YWx1ZTsgfQogCiAgICAg
dmlydHVhbCBib29sIGlzV2ViVlRURWxlbWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBlbGVtZW50TGFuZ3VhZ2UoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBsYW5ndWFnZTsgfQorICAgIHZvaWQgc2V0TGFuZ3VhZ2UoQXRvbWlj
U3RyaW5nIHZhbHVlKSB7IGxhbmd1YWdlID0gdmFsdWU7IH0KIAogICAgIHN0YXRpYyBjb25zdCBR
dWFsaWZpZWROYW1lJiB2b2ljZUF0dHJpYnV0ZU5hbWUoKQogICAgIHsKQEAgLTc2LDYgKzc4LDcg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2lzUGFzdE5vZGUgOiAxOwogICAgIHVuc2lnbmVk
IG1fd2ViVlRUTm9kZVR5cGUgOiA0OwogICAgIAorICAgIEF0b21pY1N0cmluZyBsYW5ndWFnZTsK
IH07CiAKIGlubGluZSBXZWJWVFRFbGVtZW50KiB0b1dlYlZUVEVsZW1lbnQoTm9kZSogbm9kZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAppbmRleCBmODM1MDYw
Li4xZTYyNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3Bw
CkBAIC0zOTYsMTIgKzM5NiwxMiBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6Y29uc3RydWN0VHJlZUZy
b21Ub2tlbihEb2N1bWVudCogZG9jdW1lbnQpCiAKICAgICAgICAgICAgIGlmIChjaGlsZC0+d2Vi
VlRUTm9kZVR5cGUoKSA9PSBXZWJWVFROb2RlVHlwZVZvaWNlKQogICAgICAgICAgICAgICAgIGNo
aWxkLT5zZXRBdHRyaWJ1dGUoV2ViVlRURWxlbWVudDo6dm9pY2VBdHRyaWJ1dGVOYW1lKCksIEF0
b21pY1N0cmluZyhtX3Rva2VuLmFubm90YXRpb24oKS5kYXRhKCksIG1fdG9rZW4uYW5ub3RhdGlv
bigpLnNpemUoKSkpOwotICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGQtPndlYlZUVE5vZGVUeXBl
KCkgPT0gV2ViVlRUTm9kZVR5cGVMYW5ndWFnZSkKKyAgICAgICAgICAgIGVsc2UgaWYgKGNoaWxk
LT53ZWJWVFROb2RlVHlwZSgpID09IFdlYlZUVE5vZGVUeXBlTGFuZ3VhZ2UpIHsKICAgICAgICAg
ICAgICAgICBtX2xhbmd1YWdlU3RhY2suYXBwZW5kKEF0b21pY1N0cmluZyhtX3Rva2VuLmFubm90
YXRpb24oKS5kYXRhKCksIG1fdG9rZW4uYW5ub3RhdGlvbigpLnNpemUoKSkpOwotCi0gICAgICAg
ICAgICBpZiAoIW1fbGFuZ3VhZ2VTdGFjay5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgY2hp
bGQtPnNldEF0dHJpYnV0ZShXZWJWVFRFbGVtZW50OjpsYW5nQXR0cmlidXRlTmFtZSgpLCBtX2xh
bmd1YWdlU3RhY2subGFzdCgpKTsKLQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFt
X2xhbmd1YWdlU3RhY2suaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRMYW5n
dWFnZShtX2xhbmd1YWdlU3RhY2subGFzdCgpKTsKICAgICAgICAgICAgIG1fY3VycmVudE5vZGUt
PnBhcnNlckFwcGVuZENoaWxkKGNoaWxkKTsKICAgICAgICAgICAgIG1fY3VycmVudE5vZGUgPSBj
aGlsZDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkYTBkMTIzLi5l
OWE3ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEz
LTAyLTA0ICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3Jl
IHRoZSBsYW5ndWFnZSBpbnRlcm5hbGx5IGluc3RlYWQgb2YgdXNpbmcgbGFuZyBhdHRyaWJ1dGUg
Zm9yIFdlYlZUVCBub2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4ODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzcmMvV2ViRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVsZW1l
bnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSk6CisKIDIwMTMtMDEtMzEgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBXaGVlbEV2ZW50
OjpkZWx0YU1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRWxlbWVudC5jcHAKaW5k
ZXggMDhmYjE0OS4uZWRhNjg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRWxl
bWVudC5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBXZWJTdHJpbmcgV2ViRWxlbWVudDo6aW5uZXJU
ZXh0KCkKIAogV2ViU3RyaW5nIFdlYkVsZW1lbnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYlN0cmluZyhjb25zdFVud3JhcDxFbGVtZW50PigpLT5j
b21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSk7CisgICAgcmV0dXJuIFdlYlN0cmluZyhjb25zdFVu
d3JhcDxFbGVtZW50PigpLT5lbGVtZW50TGFuZ3VhZ2UoKSk7CiB9CiAKIHZvaWQgV2ViRWxlbWVu
dDo6cmVxdWVzdEZ1bGxTY3JlZW4oKQo=
</data>
<flag name="review"
          id="205960"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186508</attachid>
            <date>2013-02-04 17:36:12 -0800</date>
            <delta_ts>2013-02-04 18:01:50 -0800</delta_ts>
            <desc>Proposed fix 0.3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10446</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MjM0YzM4Li5jOGE4Mzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDIt
MDQgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmUgdGhl
IGxhbmd1YWdlIGludGVybmFsbHkgaW5zdGVhZCBvZiB1c2luZyBsYW5nIGF0dHJpYnV0ZSBmb3Ig
V2ViVlRUIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDg4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0OgorICAg
ICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sOgorCiAy
MDEzLTAxLTMxICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBJbXBsZW1lbnQgV2hlZWxFdmVudDo6ZGVsdGFNb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy1sYW5nLnZ0dCBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CmluZGV4IGU3
ZDA5MWEuLjY0YjIyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRp
b25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CkBAIC0yLDggKzIsNCBAQCBXRUJWVFQK
IAogMQogMDA6MDAuMDAwIC0tPiAwMDowMC41MDAKLTxsYW5nIGVuPjxjPkVuZ2xpc2g8bGFuZyBy
dT48Yz4g0KDRg9GB0YHQutC40Lk8bGFuZyBlbj48Yz4gRW5nbGlzaCBhZ2FpbjwvYz48L2xhbmc+
PC9jPjwvbGFuZz48L2M+PC9sYW5nPgotCi0yCi0wMDowMC41MDAgLS0+IDAwOjAxLjAwMAotPGxh
bmcgZW4+PGk+RW5nbGlzaDxsYW5nIHJ1PjxiPiDQoNGD0YHRgdC60LjQuTxsYW5nIGVuPjx1PiBF
bmdsaXNoIGFnYWluPC91PjwvbGFuZz48L2I+PC9sYW5nPjwvaT48L2xhbmc+Cis8bGFuZyBlbj48
Yj5FbmdsaXNoPGxhbmcgcnU+PGM+INCg0YPRgdGB0LrQuNC5PGxhbmcgZW4+PGk+IEVuZ2xpc2gg
YWdhaW48L2k+PC9sYW5nPjwvYz48L2xhbmc+PC9iPjwvbGFuZz4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVk
LnR4dAppbmRleCAwMzU3OGZjLi4zZWU0Y2M1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmctZXhwZWN0ZWQudHh0CkBA
IC0xLDEyICsxLDYgQEAKLVRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5
IGJ5IHRoZSBsYW5nIGF0dHJpYnV0ZS4KK1Rlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVk
IHByb3Blcmx5IGJ5IHRoZSBsYW5nIGF0dHJpYnV0ZSBhbmQgOmxhbmcoKSBwc2V1ZG8gY2xhc3Mu
CiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVWRU5UKHNlZWtlZCkKLUVYUEVDVEVEIChnZXRDb21w
dXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMCwgMTI4LCAwKScpIE9LCi1FWFBFQ1RF
RCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMCwgMCknKSBP
SwotRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigwLCAx
MjgsIDApJykgT0sKLQotUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gMC42KQotRVZFTlQoc2Vla2Vk
KQogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigxMjgs
IDAsIDEyOCknKSBPSwogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3Ig
PT0gJ3JnYigwLCAyNTUsIDApJykgT0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5v
ZGUpLmNvbG9yID09ICdyZ2IoMTI4LCAwLCAxMjgpJykgT0sKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sCmluZGV4IGZiZWU5Mjku
LjM0MzVjMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1t
YXRjaGluZy1sYW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Nz
LW1hdGNoaW5nLWxhbmcuaHRtbApAQCAtOSwxOSArOSwxNyBAQAogCiAgICAgICAgIDxzdHlsZT4K
ICAgICAgICAgOjpjdWUoOmxhbmcocnUpKSB7IGNvbG9yOiBsaW1lOyB9Ci0gICAgICAgIDo6Y3Vl
KDpsYW5nKGVuKSkgeyBjb2xvcjogcHVycGxlOyB9Ci0gICAgICAgIDo6Y3VlKGNbbGFuZz0icnUi
XSkgeyBjb2xvcjogcmVkOyB9Ci0gICAgICAgIDo6Y3VlKGNbbGFuZz0iZW4iXSkgeyBjb2xvcjog
Z3JlZW47IH0KKyAgICAgICAgOjpjdWUobGFuZ1tsYW5nPSJlbiJdKSB7IGNvbG9yOiBwdXJwbGU7
IH0KKyAgICAgICAgOjpjdWUoY1tsYW5nPSJydSJdKSB7IGNvbG9yOiByZWQ7IH0gLyogU2hvdWxk
bid0IHdvcmssIG5vIGF0dHJpYnV0ZSAnbGFuZycgZm9yICdjJy4gKi8KICAgICAgICAgPC9zdHls
ZT4KIAogICAgICAgICA8c2NyaXB0PgogCiAgICAgICAgIHZhciBjdWVOb2RlOwogICAgICAgICB2
YXIgc2Vla2VkQ291bnQgPSAwOwotICAgICAgICB2YXIgc2Vla1RpbWVzID0gWzAuMSwgMC42XTsK
KyAgICAgICAgdmFyIHNlZWtUaW1lcyA9IFswLjFdOwogCi0gICAgICAgIHZhciBpbmZvID0gW1si
cmdiKDAsIDEyOCwgMCkiLCAicmdiKDI1NSwgMCwgMCkiLCAicmdiKDAsIDEyOCwgMCkiXSwKLSAg
ICAgICAgICAgICAgICAgICAgWyJyZ2IoMTI4LCAwLCAxMjgpIiwgInJnYigwLCAyNTUsIDApIiwg
InJnYigxMjgsIDAsIDEyOCkiXV07CisgICAgICAgIHZhciBpbmZvID0gW1sicmdiKDEyOCwgMCwg
MTI4KSIsICJyZ2IoMCwgMjU1LCAwKSIsICJyZ2IoMTI4LCAwLCAxMjgpIl1dOwogCiAgICAgICAg
IGZ1bmN0aW9uIHNlZWtlZCgpCiAgICAgICAgIHsKQEAgLTQ1LDcgKzQzLDcgQEAKIAogICAgICAg
ICBmdW5jdGlvbiBsb2FkZWQoKQogICAgICAgICB7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUo
IlRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRoZSBsYW5nIGF0
dHJpYnV0ZS4iKTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0IGN1ZXMgYXJl
IGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlIGxhbmcgYXR0cmlidXRlIGFuZCA6bGFuZygp
IHBzZXVkbyBjbGFzcy4iKTsKICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKICAgICAg
ICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJy4uL2NvbnRlbnQvdGVz
dCcpOwogICAgICAgICAgICAgdmlkZW8uaWQgPSAidGVzdHZpZGVvIjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZTViODgzLi41MzJhZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTMtMDItMDQg
IERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmUgdGhlIGxh
bmd1YWdlIGludGVybmFsbHkgaW5zdGVhZCBvZiB1c2luZyBsYW5nIGF0dHJpYnV0ZSBmb3IgV2Vi
VlRUIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPbmx5IGxhbmd1YWdlIHdlYnZ0dCBlbGVtZW50cyBzaG91bGQgaGF2ZSBhIGxhbmcgYXR0cmli
dXRlIHNvIHdlIGhhdmUgdG8gc3RvcmUKKyAgICAgICAgdGhlIGxhbmd1YWdlIGludGVybmFsbHkg
aW4gdGhlIGVsZW1lbnQuIFJlZmFjdG9yZWQgdGhlIGNvZGUgdG8gbWFrZSAKKyAgICAgICAgY29t
cHV0ZUluaGVyaXRlZExhbmd1YWdlIHZpcnR1YWwuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMg
d2VyZSBtb2RpZmllZCB0byBjb3ZlciB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBjc3MvU2VsZWN0
b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tP
bmUpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
VlRURWxlbWVudDo6V2ViVlRURWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRFbGVt
ZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlZUVEVsZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudCk6IGNs
b25lIHRoZSBpbnRlcm5hbCBsYW5ndWFnZSBwcm9wZXJ0eS4KKyAgICAgICAgKiBodG1sL3RyYWNr
L1dlYlZUVEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVEVsZW1lbnQ6OnNldExh
bmd1YWdlKToKKyAgICAgICAgKFdlYlZUVEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvdHJhY2sv
V2ViVlRUUGFyc2VyLmNwcDogb25seSBzZXQgdGhlIGxhbmcgYXR0cmlidXRlIGZvciBsYW5ndWFn
ZSBvYmplY3RzLgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb25zdHJ1Y3RUcmVl
RnJvbVRva2VuKToKKwogMjAxMy0wMS0zMSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IFdoZWVsRXZlbnQ6OmRlbHRhTW9kZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCAzY2E2NGRkLi5mYWI3MDQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtODE5LDEzICs4MTksNyBAQCBi
b29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IFNpYgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0xhbmc6CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
QXRvbWljU3RyaW5nIHZhbHVlOwotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgICAg
ICAgICBpZiAoZWxlbWVudC0+aXNXZWJWVFRFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgICAg
IHZhbHVlID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKGxhbmdBdHRyKTsKLSAgICAgICAgICAgICAg
ICBlbHNlCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBlbGVtZW50LT5jb21w
dXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgdmFs
dWUgPSBlbGVtZW50LT5jb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKICAgICAgICAgICAgICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50ID0gc2VsZWN0b3ItPmFyZ3VtZW50KCk7CiAg
ICAgICAgICAgICAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSB8fCAhdmFsdWUuc3RhcnRzV2l0aChh
cmd1bWVudCwgZmFsc2UpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCmluZGV4IGRmMTYzM2QuLmY1MzRhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzMyLDcg
KzMzMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzSW5DYW52YXNTdWJ0cmVlKGJvb2wpOwog
ICAgIGJvb2wgaXNJbkNhbnZhc1N1YnRyZWUoKSBjb25zdDsKIAotICAgIEF0b21pY1N0cmluZyBj
b21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEF0b21pY1N0cmlu
ZyBjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdDsKICAgICBMb2NhbGUmIGxvY2FsZSgp
IGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIC8qc2VuZFRv
QW55RXZlbnQqLykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50
LmNwcAppbmRleCBkNjc3MjcyLi5iZTVkMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRURWxlbWVudC5jcHAKQEAgLTcxLDYgKzcxLDcgQEAgV2ViVlRURWxlbWVudDo6V2Vi
VlRURWxlbWVudChXZWJWVFROb2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgIDogRWxlbWVudChub2RlVHlwZVRvVGFnTmFtZShub2RlVHlwZSksIGRvY3VtZW50LCBDcmVh
dGVFbGVtZW50KQogICAgICwgbV9pc1Bhc3ROb2RlKDApCiAgICAgLCBtX3dlYlZUVE5vZGVUeXBl
KG5vZGVUeXBlKQorICAgICwgbGFuZ3VhZ2UobnVsbEF0b20pCiB7CiB9CiAKQEAgLTgxLDcgKzgy
LDkgQEAgUGFzc1JlZlB0cjxXZWJWVFRFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGUoV2Vi
VlRUTm9kZVR5cGUgbm9kZVR5cGUsIERvY3VtZW4KIAogUGFzc1JlZlB0cjxFbGVtZW50PiBXZWJW
VFRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkKIHsK
LSAgICByZXR1cm4gY3JlYXRlKHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5v
ZGVUeXBlKSwgZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPFdlYlZUVEVsZW1lbnQ+IGNsb25lID0g
Y3JlYXRlKHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKSwgZG9j
dW1lbnQoKSk7CisgICAgY2xvbmUtPnNldExhbmd1YWdlKGxhbmd1YWdlKTsKKyAgICByZXR1cm4g
Y2xvbmU7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0
ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCkBAIC05Myw2ICs5Niw3
IEBAIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZUVxdWl2YWxl
bnRIVE1MRWxlbWVudChEb2N1bWVudCogZG9jCiAgICAgY2FzZSBXZWJWVFROb2RlVHlwZVZvaWNl
OgogICAgICAgICBodG1sRWxlbWVudCA9IEhUTUxFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjpz
cGFuVGFnLCBkb2N1bWVudCk7CiAgICAgICAgIGh0bWxFbGVtZW50LmdldCgpLT5zZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjp0aXRsZUF0dHIsIGdldEF0dHJpYnV0ZSh2b2ljZUF0dHJpYnV0ZU5hbWUo
KSkpOworICAgICAgICBodG1sRWxlbWVudC5nZXQoKS0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
bGFuZ0F0dHIsIGdldEF0dHJpYnV0ZShsYW5nQXR0cmlidXRlTmFtZSgpKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgV2ViVlRUTm9kZVR5cGVJdGFsaWM6CiAgICAgICAgIGh0bWxFbGVtZW50
ID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OmlUYWcsIGRvY3VtZW50KTsKQEAgLTEx
Myw3ICsxMTcsNiBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVh
dGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQqIGRvYwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBodG1sRWxlbWVudC5nZXQoKS0+c2V0QXR0cmlidXRl
KEhUTUxOYW1lczo6bGFuZ0F0dHIsIGdldEF0dHJpYnV0ZShsYW5nQXR0cmlidXRlTmFtZSgpKSk7
CiAgICAgaHRtbEVsZW1lbnQuZ2V0KCktPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0
ciwgZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyKSk7CiAgICAgcmV0dXJuIGh0bWxF
bGVtZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAppbmRl
eCBkNDAwYWQ2Li5iNjY1MzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVs
ZW1lbnQuaApAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc1Bhc3ROb2Rl
KGJvb2wgdmFsdWUpIHsgbV9pc1Bhc3ROb2RlID0gdmFsdWU7IH0KIAogICAgIHZpcnR1YWwgYm9v
bCBpc1dlYlZUVEVsZW1lbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAg
dmlydHVhbCBBdG9taWNTdHJpbmcgY29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbGFuZ3VhZ2U7IH0KKyAgICB2b2lkIHNldExhbmd1YWdlKEF0b21pY1N0
cmluZyB2YWx1ZSkgeyBsYW5ndWFnZSA9IHZhbHVlOyB9CiAKICAgICBzdGF0aWMgY29uc3QgUXVh
bGlmaWVkTmFtZSYgdm9pY2VBdHRyaWJ1dGVOYW1lKCkKICAgICB7CkBAIC03Niw2ICs3OCw3IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9pc1Bhc3ROb2RlIDogMTsKICAgICB1bnNpZ25lZCBt
X3dlYlZUVE5vZGVUeXBlIDogNDsKICAgICAKKyAgICBBdG9taWNTdHJpbmcgbGFuZ3VhZ2U7CiB9
OwogCiBpbmxpbmUgV2ViVlRURWxlbWVudCogdG9XZWJWVFRFbGVtZW50KE5vZGUqIG5vZGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggZjgzNTA2MC4u
MWU2MjZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApA
QCAtMzk2LDEyICszOTYsMTIgQEAgdm9pZCBXZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9t
VG9rZW4oRG9jdW1lbnQqIGRvY3VtZW50KQogCiAgICAgICAgICAgICBpZiAoY2hpbGQtPndlYlZU
VE5vZGVUeXBlKCkgPT0gV2ViVlRUTm9kZVR5cGVWb2ljZSkKICAgICAgICAgICAgICAgICBjaGls
ZC0+c2V0QXR0cmlidXRlKFdlYlZUVEVsZW1lbnQ6OnZvaWNlQXR0cmlidXRlTmFtZSgpLCBBdG9t
aWNTdHJpbmcobV90b2tlbi5hbm5vdGF0aW9uKCkuZGF0YSgpLCBtX3Rva2VuLmFubm90YXRpb24o
KS5zaXplKCkpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGNoaWxkLT53ZWJWVFROb2RlVHlwZSgp
ID09IFdlYlZUVE5vZGVUeXBlTGFuZ3VhZ2UpCisgICAgICAgICAgICBlbHNlIGlmIChjaGlsZC0+
d2ViVlRUTm9kZVR5cGUoKSA9PSBXZWJWVFROb2RlVHlwZUxhbmd1YWdlKSB7CiAgICAgICAgICAg
ICAgICAgbV9sYW5ndWFnZVN0YWNrLmFwcGVuZChBdG9taWNTdHJpbmcobV90b2tlbi5hbm5vdGF0
aW9uKCkuZGF0YSgpLCBtX3Rva2VuLmFubm90YXRpb24oKS5zaXplKCkpKTsKLQotICAgICAgICAg
ICAgaWYgKCFtX2xhbmd1YWdlU3RhY2suaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGNoaWxk
LT5zZXRBdHRyaWJ1dGUoV2ViVlRURWxlbWVudDo6bGFuZ0F0dHJpYnV0ZU5hbWUoKSwgbV9sYW5n
dWFnZVN0YWNrLmxhc3QoKSk7Ci0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbV9s
YW5ndWFnZVN0YWNrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjaGlsZC0+c2V0TGFuZ3Vh
Z2UobV9sYW5ndWFnZVN0YWNrLmxhc3QoKSk7CiAgICAgICAgICAgICBtX2N1cnJlbnROb2RlLT5w
YXJzZXJBcHBlbmRDaGlsZChjaGlsZCk7CiAgICAgICAgICAgICBtX2N1cnJlbnROb2RlID0gY2hp
bGQ7CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186514</attachid>
            <date>2013-02-04 18:01:50 -0800</date>
            <delta_ts>2013-02-05 14:20:19 -0800</delta_ts>
            <desc>Proposed fix 0.4</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10456</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MjM0YzM4Li5jOGE4Mzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDIt
MDQgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmUgdGhl
IGxhbmd1YWdlIGludGVybmFsbHkgaW5zdGVhZCBvZiB1c2luZyBsYW5nIGF0dHJpYnV0ZSBmb3Ig
V2ViVlRUIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDg4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0OgorICAg
ICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sOgorCiAy
MDEzLTAxLTMxICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBJbXBsZW1lbnQgV2hlZWxFdmVudDo6ZGVsdGFNb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy1sYW5nLnZ0dCBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CmluZGV4IGU3
ZDA5MWEuLjY0YjIyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRp
b25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0CkBAIC0yLDggKzIsNCBAQCBXRUJWVFQK
IAogMQogMDA6MDAuMDAwIC0tPiAwMDowMC41MDAKLTxsYW5nIGVuPjxjPkVuZ2xpc2g8bGFuZyBy
dT48Yz4g0KDRg9GB0YHQutC40Lk8bGFuZyBlbj48Yz4gRW5nbGlzaCBhZ2FpbjwvYz48L2xhbmc+
PC9jPjwvbGFuZz48L2M+PC9sYW5nPgotCi0yCi0wMDowMC41MDAgLS0+IDAwOjAxLjAwMAotPGxh
bmcgZW4+PGk+RW5nbGlzaDxsYW5nIHJ1PjxiPiDQoNGD0YHRgdC60LjQuTxsYW5nIGVuPjx1PiBF
bmdsaXNoIGFnYWluPC91PjwvbGFuZz48L2I+PC9sYW5nPjwvaT48L2xhbmc+Cis8bGFuZyBlbj48
Yj5FbmdsaXNoPGxhbmcgcnU+PGM+INCg0YPRgdGB0LrQuNC5PGxhbmcgZW4+PGk+IEVuZ2xpc2gg
YWdhaW48L2k+PC9sYW5nPjwvYz48L2xhbmc+PC9iPjwvbGFuZz4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVk
LnR4dAppbmRleCAwMzU3OGZjLi4zZWU0Y2M1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmctZXhwZWN0ZWQudHh0CkBA
IC0xLDEyICsxLDYgQEAKLVRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5
IGJ5IHRoZSBsYW5nIGF0dHJpYnV0ZS4KK1Rlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVk
IHByb3Blcmx5IGJ5IHRoZSBsYW5nIGF0dHJpYnV0ZSBhbmQgOmxhbmcoKSBwc2V1ZG8gY2xhc3Mu
CiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVWRU5UKHNlZWtlZCkKLUVYUEVDVEVEIChnZXRDb21w
dXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMCwgMTI4LCAwKScpIE9LCi1FWFBFQ1RF
RCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMCwgMCknKSBP
SwotRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigwLCAx
MjgsIDApJykgT0sKLQotUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gMC42KQotRVZFTlQoc2Vla2Vk
KQogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigxMjgs
IDAsIDEyOCknKSBPSwogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3Ig
PT0gJ3JnYigwLCAyNTUsIDApJykgT0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5v
ZGUpLmNvbG9yID09ICdyZ2IoMTI4LCAwLCAxMjgpJykgT0sKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sCmluZGV4IGZiZWU5Mjku
LjM0MzVjMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1t
YXRjaGluZy1sYW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Nz
LW1hdGNoaW5nLWxhbmcuaHRtbApAQCAtOSwxOSArOSwxNyBAQAogCiAgICAgICAgIDxzdHlsZT4K
ICAgICAgICAgOjpjdWUoOmxhbmcocnUpKSB7IGNvbG9yOiBsaW1lOyB9Ci0gICAgICAgIDo6Y3Vl
KDpsYW5nKGVuKSkgeyBjb2xvcjogcHVycGxlOyB9Ci0gICAgICAgIDo6Y3VlKGNbbGFuZz0icnUi
XSkgeyBjb2xvcjogcmVkOyB9Ci0gICAgICAgIDo6Y3VlKGNbbGFuZz0iZW4iXSkgeyBjb2xvcjog
Z3JlZW47IH0KKyAgICAgICAgOjpjdWUobGFuZ1tsYW5nPSJlbiJdKSB7IGNvbG9yOiBwdXJwbGU7
IH0KKyAgICAgICAgOjpjdWUoY1tsYW5nPSJydSJdKSB7IGNvbG9yOiByZWQ7IH0gLyogU2hvdWxk
bid0IHdvcmssIG5vIGF0dHJpYnV0ZSAnbGFuZycgZm9yICdjJy4gKi8KICAgICAgICAgPC9zdHls
ZT4KIAogICAgICAgICA8c2NyaXB0PgogCiAgICAgICAgIHZhciBjdWVOb2RlOwogICAgICAgICB2
YXIgc2Vla2VkQ291bnQgPSAwOwotICAgICAgICB2YXIgc2Vla1RpbWVzID0gWzAuMSwgMC42XTsK
KyAgICAgICAgdmFyIHNlZWtUaW1lcyA9IFswLjFdOwogCi0gICAgICAgIHZhciBpbmZvID0gW1si
cmdiKDAsIDEyOCwgMCkiLCAicmdiKDI1NSwgMCwgMCkiLCAicmdiKDAsIDEyOCwgMCkiXSwKLSAg
ICAgICAgICAgICAgICAgICAgWyJyZ2IoMTI4LCAwLCAxMjgpIiwgInJnYigwLCAyNTUsIDApIiwg
InJnYigxMjgsIDAsIDEyOCkiXV07CisgICAgICAgIHZhciBpbmZvID0gW1sicmdiKDEyOCwgMCwg
MTI4KSIsICJyZ2IoMCwgMjU1LCAwKSIsICJyZ2IoMTI4LCAwLCAxMjgpIl1dOwogCiAgICAgICAg
IGZ1bmN0aW9uIHNlZWtlZCgpCiAgICAgICAgIHsKQEAgLTQ1LDcgKzQzLDcgQEAKIAogICAgICAg
ICBmdW5jdGlvbiBsb2FkZWQoKQogICAgICAgICB7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUo
IlRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRoZSBsYW5nIGF0
dHJpYnV0ZS4iKTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0IGN1ZXMgYXJl
IGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlIGxhbmcgYXR0cmlidXRlIGFuZCA6bGFuZygp
IHBzZXVkbyBjbGFzcy4iKTsKICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKICAgICAg
ICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJy4uL2NvbnRlbnQvdGVz
dCcpOwogICAgICAgICAgICAgdmlkZW8uaWQgPSAidGVzdHZpZGVvIjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZTViODgzLi41MzJhZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTMtMDItMDQg
IERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmUgdGhlIGxh
bmd1YWdlIGludGVybmFsbHkgaW5zdGVhZCBvZiB1c2luZyBsYW5nIGF0dHJpYnV0ZSBmb3IgV2Vi
VlRUIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPbmx5IGxhbmd1YWdlIHdlYnZ0dCBlbGVtZW50cyBzaG91bGQgaGF2ZSBhIGxhbmcgYXR0cmli
dXRlIHNvIHdlIGhhdmUgdG8gc3RvcmUKKyAgICAgICAgdGhlIGxhbmd1YWdlIGludGVybmFsbHkg
aW4gdGhlIGVsZW1lbnQuIFJlZmFjdG9yZWQgdGhlIGNvZGUgdG8gbWFrZSAKKyAgICAgICAgY29t
cHV0ZUluaGVyaXRlZExhbmd1YWdlIHZpcnR1YWwuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMg
d2VyZSBtb2RpZmllZCB0byBjb3ZlciB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBjc3MvU2VsZWN0
b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tP
bmUpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
VlRURWxlbWVudDo6V2ViVlRURWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRFbGVt
ZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlZUVEVsZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudCk6IGNs
b25lIHRoZSBpbnRlcm5hbCBsYW5ndWFnZSBwcm9wZXJ0eS4KKyAgICAgICAgKiBodG1sL3RyYWNr
L1dlYlZUVEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVEVsZW1lbnQ6OnNldExh
bmd1YWdlKToKKyAgICAgICAgKFdlYlZUVEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvdHJhY2sv
V2ViVlRUUGFyc2VyLmNwcDogb25seSBzZXQgdGhlIGxhbmcgYXR0cmlidXRlIGZvciBsYW5ndWFn
ZSBvYmplY3RzLgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb25zdHJ1Y3RUcmVl
RnJvbVRva2VuKToKKwogMjAxMy0wMS0zMSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IFdoZWVsRXZlbnQ6OmRlbHRhTW9kZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCAzY2E2NGRkLi5mYWI3MDQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtODE5LDEzICs4MTksNyBAQCBi
b29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IFNpYgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0xhbmc6CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
QXRvbWljU3RyaW5nIHZhbHVlOwotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgICAg
ICAgICBpZiAoZWxlbWVudC0+aXNXZWJWVFRFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgICAg
IHZhbHVlID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKGxhbmdBdHRyKTsKLSAgICAgICAgICAgICAg
ICBlbHNlCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBlbGVtZW50LT5jb21w
dXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgdmFs
dWUgPSBlbGVtZW50LT5jb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKICAgICAgICAgICAgICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50ID0gc2VsZWN0b3ItPmFyZ3VtZW50KCk7CiAg
ICAgICAgICAgICAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSB8fCAhdmFsdWUuc3RhcnRzV2l0aChh
cmd1bWVudCwgZmFsc2UpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCmluZGV4IGRmMTYzM2QuLmY1MzRhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzMyLDcg
KzMzMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzSW5DYW52YXNTdWJ0cmVlKGJvb2wpOwog
ICAgIGJvb2wgaXNJbkNhbnZhc1N1YnRyZWUoKSBjb25zdDsKIAotICAgIEF0b21pY1N0cmluZyBj
b21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEF0b21pY1N0cmlu
ZyBjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdDsKICAgICBMb2NhbGUmIGxvY2FsZSgp
IGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIC8qc2VuZFRv
QW55RXZlbnQqLykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50
LmNwcAppbmRleCBkNjc3MjcyLi4wOTJlNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRURWxlbWVudC5jcHAKQEAgLTcxLDYgKzcxLDcgQEAgV2ViVlRURWxlbWVudDo6V2Vi
VlRURWxlbWVudChXZWJWVFROb2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgIDogRWxlbWVudChub2RlVHlwZVRvVGFnTmFtZShub2RlVHlwZSksIGRvY3VtZW50LCBDcmVh
dGVFbGVtZW50KQogICAgICwgbV9pc1Bhc3ROb2RlKDApCiAgICAgLCBtX3dlYlZUVE5vZGVUeXBl
KG5vZGVUeXBlKQorICAgICwgbV9sYW5ndWFnZShudWxsQXRvbSkKIHsKIH0KIApAQCAtODEsNyAr
ODIsOSBAQCBQYXNzUmVmUHRyPFdlYlZUVEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZShX
ZWJWVFROb2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbgogCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IFdl
YlZUVEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKQog
ewotICAgIHJldHVybiBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRU
Tm9kZVR5cGUpLCBkb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8V2ViVlRURWxlbWVudD4gY2xvbmUg
PSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCBk
b2N1bWVudCgpKTsKKyAgICBjbG9uZS0+c2V0TGFuZ3VhZ2UobV9sYW5ndWFnZSk7CisgICAgcmV0
dXJuIGNsb25lOwogfQogCiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBXZWJWVFRFbGVtZW50Ojpj
cmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtOTMsNiAr
OTYsNyBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGVFcXVp
dmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQqIGRvYwogICAgIGNhc2UgV2ViVlRUTm9kZVR5cGVW
b2ljZToKICAgICAgICAgaHRtbEVsZW1lbnQgPSBIVE1MRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1l
czo6c3BhblRhZywgZG9jdW1lbnQpOwogICAgICAgICBodG1sRWxlbWVudC5nZXQoKS0+c2V0QXR0
cmlidXRlKEhUTUxOYW1lczo6dGl0bGVBdHRyLCBnZXRBdHRyaWJ1dGUodm9pY2VBdHRyaWJ1dGVO
YW1lKCkpKTsKKyAgICAgICAgaHRtbEVsZW1lbnQuZ2V0KCktPnNldEF0dHJpYnV0ZShIVE1MTmFt
ZXM6OmxhbmdBdHRyLCBnZXRBdHRyaWJ1dGUobGFuZ0F0dHJpYnV0ZU5hbWUoKSkpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdlYlZUVE5vZGVUeXBlSXRhbGljOgogICAgICAgICBodG1sRWxl
bWVudCA9IEhUTUxFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjppVGFnLCBkb2N1bWVudCk7CkBA
IC0xMTMsNyArMTE3LDYgQEAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gV2ViVlRURWxlbWVudDo6
Y3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50KiBkb2MKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfQogCi0gICAgaHRtbEVsZW1lbnQuZ2V0KCktPnNldEF0dHJp
YnV0ZShIVE1MTmFtZXM6OmxhbmdBdHRyLCBnZXRBdHRyaWJ1dGUobGFuZ0F0dHJpYnV0ZU5hbWUo
KSkpOwogICAgIGh0bWxFbGVtZW50LmdldCgpLT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFz
c0F0dHIsIGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0cikpOwogICAgIHJldHVybiBo
dG1sRWxlbWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRURWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgK
aW5kZXggZDQwMGFkNi4uN2JlYTllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9XZWJWVFRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRFbGVtZW50LmgKQEAgLTU2LDYgKzU2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNQYXN0
Tm9kZShib29sIHZhbHVlKSB7IG1faXNQYXN0Tm9kZSA9IHZhbHVlOyB9CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNXZWJWVFRFbGVtZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KKyAgICB2b2lkIHNldExhbmd1YWdlKEF0
b21pY1N0cmluZyB2YWx1ZSkgeyBtX2xhbmd1YWdlID0gdmFsdWU7IH0KIAogICAgIHN0YXRpYyBj
b25zdCBRdWFsaWZpZWROYW1lJiB2b2ljZUF0dHJpYnV0ZU5hbWUoKQogICAgIHsKQEAgLTc2LDYg
Kzc4LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2lzUGFzdE5vZGUgOiAxOwogICAgIHVu
c2lnbmVkIG1fd2ViVlRUTm9kZVR5cGUgOiA0OwogICAgIAorICAgIEF0b21pY1N0cmluZyBtX2xh
bmd1YWdlOwogfTsKIAogaW5saW5lIFdlYlZUVEVsZW1lbnQqIHRvV2ViVlRURWxlbWVudChOb2Rl
KiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCmluZGV4
IGY4MzUwNjAuLjFlNjI2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRUUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBh
cnNlci5jcHAKQEAgLTM5NiwxMiArMzk2LDEyIEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjb25zdHJ1
Y3RUcmVlRnJvbVRva2VuKERvY3VtZW50KiBkb2N1bWVudCkKIAogICAgICAgICAgICAgaWYgKGNo
aWxkLT53ZWJWVFROb2RlVHlwZSgpID09IFdlYlZUVE5vZGVUeXBlVm9pY2UpCiAgICAgICAgICAg
ICAgICAgY2hpbGQtPnNldEF0dHJpYnV0ZShXZWJWVFRFbGVtZW50Ojp2b2ljZUF0dHJpYnV0ZU5h
bWUoKSwgQXRvbWljU3RyaW5nKG1fdG9rZW4uYW5ub3RhdGlvbigpLmRhdGEoKSwgbV90b2tlbi5h
bm5vdGF0aW9uKCkuc2l6ZSgpKSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChjaGlsZC0+d2ViVlRU
Tm9kZVR5cGUoKSA9PSBXZWJWVFROb2RlVHlwZUxhbmd1YWdlKQorICAgICAgICAgICAgZWxzZSBp
ZiAoY2hpbGQtPndlYlZUVE5vZGVUeXBlKCkgPT0gV2ViVlRUTm9kZVR5cGVMYW5ndWFnZSkgewog
ICAgICAgICAgICAgICAgIG1fbGFuZ3VhZ2VTdGFjay5hcHBlbmQoQXRvbWljU3RyaW5nKG1fdG9r
ZW4uYW5ub3RhdGlvbigpLmRhdGEoKSwgbV90b2tlbi5hbm5vdGF0aW9uKCkuc2l6ZSgpKSk7Ci0K
LSAgICAgICAgICAgIGlmICghbV9sYW5ndWFnZVN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgICAg
ICAgICBjaGlsZC0+c2V0QXR0cmlidXRlKFdlYlZUVEVsZW1lbnQ6OmxhbmdBdHRyaWJ1dGVOYW1l
KCksIG1fbGFuZ3VhZ2VTdGFjay5sYXN0KCkpOwotCisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoIW1fbGFuZ3VhZ2VTdGFjay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY2hpbGQt
PnNldExhbmd1YWdlKG1fbGFuZ3VhZ2VTdGFjay5sYXN0KCkpOwogICAgICAgICAgICAgbV9jdXJy
ZW50Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQoY2hpbGQpOwogICAgICAgICAgICAgbV9jdXJyZW50
Tm9kZSA9IGNoaWxkOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186704</attachid>
            <date>2013-02-05 14:20:19 -0800</date>
            <delta_ts>2013-02-06 15:34:51 -0800</delta_ts>
            <desc>Proposed fix 0.5</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9478</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZTdkMzA0Li42MmNkMDY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDIt
MDUgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmUgdGhl
IGxhbmd1YWdlIGludGVybmFsbHkgaW5zdGVhZCBvZiB1c2luZyBsYW5nIGF0dHJpYnV0ZSBmb3Ig
V2ViVlRUIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDg4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0OgorICAg
ICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sOgorCiAy
MDEzLTAyLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdW1dLMl0gVW5mbGFnIHRlc3RzIHJlbGF0ZWQgdG8gbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLWxhbmcudnR0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmctbGFuZy52dHQKaW5kZXggZTdkMDkx
YS4uNjRiMjI2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMt
d2VidnR0L3N0eWxpbmctbGFuZy52dHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2Fw
dGlvbnMtd2VidnR0L3N0eWxpbmctbGFuZy52dHQKQEAgLTIsOCArMiw0IEBAIFdFQlZUVAogCiAx
CiAwMDowMC4wMDAgLS0+IDAwOjAwLjUwMAotPGxhbmcgZW4+PGM+RW5nbGlzaDxsYW5nIHJ1Pjxj
PiDQoNGD0YHRgdC60LjQuTxsYW5nIGVuPjxjPiBFbmdsaXNoIGFnYWluPC9jPjwvbGFuZz48L2M+
PC9sYW5nPjwvYz48L2xhbmc+Ci0KLTIKLTAwOjAwLjUwMCAtLT4gMDA6MDEuMDAwCi08bGFuZyBl
bj48aT5FbmdsaXNoPGxhbmcgcnU+PGI+INCg0YPRgdGB0LrQuNC5PGxhbmcgZW4+PHU+IEVuZ2xp
c2ggYWdhaW48L3U+PC9sYW5nPjwvYj48L2xhbmc+PC9pPjwvbGFuZz4KKzxsYW5nIGVuPjxiPkVu
Z2xpc2g8bGFuZyBydT48Yz4g0KDRg9GB0YHQutC40Lk8bGFuZyBlbj48aT4gRW5nbGlzaCBhZ2Fp
bjwvaT48L2xhbmc+PC9jPjwvbGFuZz48L2I+PC9sYW5nPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmctZXhwZWN0ZWQudHh0
CmluZGV4IDAzNTc4ZmMuLjNlZTRjYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy1leHBlY3RlZC50eHQKQEAgLTEs
MTIgKzEsNiBAQAotVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkg
dGhlIGxhbmcgYXR0cmlidXRlLgorVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJv
cGVybHkgYnkgdGhlIGxhbmcgYXR0cmlidXRlIGFuZCA6bGFuZygpIHBzZXVkbyBjbGFzcy4KIEVW
RU5UKGNhbnBsYXl0aHJvdWdoKQogRVZFTlQoc2Vla2VkKQotRVhQRUNURUQgKGdldENvbXB1dGVk
U3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigwLCAxMjgsIDApJykgT0sKLUVYUEVDVEVEIChn
ZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAwLCAwKScpIE9LCi1F
WFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDAsIDEyOCwg
MCknKSBPSwotCi1SVU4odmlkZW8uY3VycmVudFRpbWUgPSAwLjYpCi1FVkVOVChzZWVrZWQpCiBF
WFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMCwg
MTI4KScpIE9LCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAn
cmdiKDAsIDI1NSwgMCknKSBPSwogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSku
Y29sb3IgPT0gJ3JnYigxMjgsIDAsIDEyOCknKSBPSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmcuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLmh0bWwKaW5kZXggZmJlZTkyOS4uMzQz
NWMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNo
aW5nLWxhbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0
Y2hpbmctbGFuZy5odG1sCkBAIC05LDE5ICs5LDE3IEBACiAKICAgICAgICAgPHN0eWxlPgogICAg
ICAgICA6OmN1ZSg6bGFuZyhydSkpIHsgY29sb3I6IGxpbWU7IH0KLSAgICAgICAgOjpjdWUoOmxh
bmcoZW4pKSB7IGNvbG9yOiBwdXJwbGU7IH0KLSAgICAgICAgOjpjdWUoY1tsYW5nPSJydSJdKSB7
IGNvbG9yOiByZWQ7IH0KLSAgICAgICAgOjpjdWUoY1tsYW5nPSJlbiJdKSB7IGNvbG9yOiBncmVl
bjsgfQorICAgICAgICA6OmN1ZShsYW5nW2xhbmc9ImVuIl0pIHsgY29sb3I6IHB1cnBsZTsgfQor
ICAgICAgICA6OmN1ZShjW2xhbmc9InJ1Il0pIHsgY29sb3I6IHJlZDsgfSAvKiBTaG91bGRuJ3Qg
d29yaywgbm8gYXR0cmlidXRlICdsYW5nJyBmb3IgJ2MnLiAqLwogICAgICAgICA8L3N0eWxlPgog
CiAgICAgICAgIDxzY3JpcHQ+CiAKICAgICAgICAgdmFyIGN1ZU5vZGU7CiAgICAgICAgIHZhciBz
ZWVrZWRDb3VudCA9IDA7Ci0gICAgICAgIHZhciBzZWVrVGltZXMgPSBbMC4xLCAwLjZdOworICAg
ICAgICB2YXIgc2Vla1RpbWVzID0gWzAuMV07CiAKLSAgICAgICAgdmFyIGluZm8gPSBbWyJyZ2Io
MCwgMTI4LCAwKSIsICJyZ2IoMjU1LCAwLCAwKSIsICJyZ2IoMCwgMTI4LCAwKSJdLAotICAgICAg
ICAgICAgICAgICAgICBbInJnYigxMjgsIDAsIDEyOCkiLCAicmdiKDAsIDI1NSwgMCkiLCAicmdi
KDEyOCwgMCwgMTI4KSJdXTsKKyAgICAgICAgdmFyIGluZm8gPSBbWyJyZ2IoMTI4LCAwLCAxMjgp
IiwgInJnYigwLCAyNTUsIDApIiwgInJnYigxMjgsIDAsIDEyOCkiXV07CiAKICAgICAgICAgZnVu
Y3Rpb24gc2Vla2VkKCkKICAgICAgICAgewpAQCAtNDUsNyArNDMsNyBAQAogCiAgICAgICAgIGZ1
bmN0aW9uIGxvYWRlZCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVz
dCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlIGxhbmcgYXR0cmli
dXRlLiIpOworICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQgY3VlcyBhcmUgYmVp
bmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgbGFuZyBhdHRyaWJ1dGUgYW5kIDpsYW5nKCkgcHNl
dWRvIGNsYXNzLiIpOwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogICAgICAgICAg
ICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnLi4vY29udGVudC90ZXN0Jyk7
CiAgICAgICAgICAgICB2aWRlby5pZCA9ICJ0ZXN0dmlkZW8iOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdiZTQ4
ZjguLjMwYjQwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMy0wMi0wNSAgRGlt
YSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yZSB0aGUgbGFuZ3Vh
Z2UgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIHVzaW5nIGxhbmcgYXR0cmlidXRlIGZvciBXZWJWVFQg
bm9kZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
ODg1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9u
bHkgbGFuZ3VhZ2Ugd2VidnR0IGVsZW1lbnRzIHNob3VsZCBoYXZlIGEgbGFuZyBhdHRyaWJ1dGUg
c28gd2UgaGF2ZSB0byBzdG9yZQorICAgICAgICB0aGUgbGFuZ3VhZ2UgaW50ZXJuYWxseSBpbiB0
aGUgZWxlbWVudC4gUmVmYWN0b3JlZCB0aGUgY29kZSB0byBtYWtlIAorICAgICAgICBjb21wdXRl
SW5oZXJpdGVkTGFuZ3VhZ2UgdmlydHVhbC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0cyB3ZXJl
IG1vZGlmaWVkIHRvIGNvdmVyIHRoaXMgY2FzZS4KKworICAgICAgICAqIGNzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSk6
CisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYlZUVEVsZW1lbnQ6OldlYlZUVEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
VlRURWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbik6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJWVFRFbGVtZW50OjpjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1l
bnQpOiBjbG9uZSB0aGUgaW50ZXJuYWwgbGFuZ3VhZ2UgcHJvcGVydHkuCisgICAgICAgICogaHRt
bC90cmFjay9XZWJWVFRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRFbGVtZW50
OjpsYW5ndWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRFbGVtZW50OjpzZXRMYW5ndWFn
ZSk6CisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwOiBvbmx5IHNldCB0aGUg
bGFuZyBhdHRyaWJ1dGUgZm9yIGxhbmd1YWdlIG9iamVjdHMuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4pOgorCiAyMDEzLTAyLTA1ICBZdXN1
ZiBPenV5c2FsICA8eXVzdWZvQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBFbmFi
bGUgc2hvdWxkR2VzdHVyZXNUcmlnZ2VyQWN0aXZlIGZvciBBbmRyb2lkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDNjYTY0ZGQuLjMwZmM0OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC04MjIsNyArODIyLDcgQEAgYm9vbCBTZWxl
Y3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBTaWIKICAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWU7CiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LT5pc1dlYlZU
VEVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBlbGVtZW50LT5nZXRBdHRy
aWJ1dGUobGFuZ0F0dHIpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRvV2ViVlRURWxl
bWVudChlbGVtZW50KS0+bGFuZ3VhZ2UoKTsKICAgICAgICAgICAgICAgICBlbHNlCiAjZW5kaWYK
ICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBlbGVtZW50LT5jb21wdXRlSW5oZXJpdGVkTGFu
Z3VhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCmlu
ZGV4IGQ2NzcyNzIuLmUwNjNlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRURWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRFbGVtZW50LmNwcApAQCAtODEsNyArODEsOSBAQCBQYXNzUmVmUHRyPFdlYlZUVEVsZW1lbnQ+
IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZShXZWJWVFROb2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbgog
CiBQYXNzUmVmUHRyPEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKQogewotICAgIHJldHVybiBjcmVhdGUoc3RhdGljX2Nhc3Q8
V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCBkb2N1bWVudCgpKTsKKyAgICBSZWZQ
dHI8V2ViVlRURWxlbWVudD4gY2xvbmUgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5
cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCBkb2N1bWVudCgpKTsKKyAgICBjbG9uZS0+c2V0TGFuZ3Vh
Z2UobV9sYW5ndWFnZSk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCiBQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQpAQCAtOTMsNiArOTUsNyBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBX
ZWJWVFRFbGVtZW50OjpjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQqIGRvYwog
ICAgIGNhc2UgV2ViVlRUTm9kZVR5cGVWb2ljZToKICAgICAgICAgaHRtbEVsZW1lbnQgPSBIVE1M
RWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6c3BhblRhZywgZG9jdW1lbnQpOwogICAgICAgICBo
dG1sRWxlbWVudC5nZXQoKS0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6dGl0bGVBdHRyLCBnZXRB
dHRyaWJ1dGUodm9pY2VBdHRyaWJ1dGVOYW1lKCkpKTsKKyAgICAgICAgaHRtbEVsZW1lbnQuZ2V0
KCktPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmxhbmdBdHRyLCBnZXRBdHRyaWJ1dGUobGFuZ0F0
dHJpYnV0ZU5hbWUoKSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYlZUVE5vZGVUeXBl
SXRhbGljOgogICAgICAgICBodG1sRWxlbWVudCA9IEhUTUxFbGVtZW50OjpjcmVhdGUoSFRNTE5h
bWVzOjppVGFnLCBkb2N1bWVudCk7CkBAIC0xMTMsNyArMTE2LDYgQEAgUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3Vt
ZW50KiBkb2MKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCi0gICAgaHRt
bEVsZW1lbnQuZ2V0KCktPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmxhbmdBdHRyLCBnZXRBdHRy
aWJ1dGUobGFuZ0F0dHJpYnV0ZU5hbWUoKSkpOwogICAgIGh0bWxFbGVtZW50LmdldCgpLT5zZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsIGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNs
YXNzQXR0cikpOwogICAgIHJldHVybiBodG1sRWxlbWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRFbGVtZW50LmgKaW5kZXggZDQwMGFkNi4uOTRhM2Y2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKQEAgLTU2LDYgKzU2LDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0SXNQYXN0Tm9kZShib29sIHZhbHVlKSB7IG1faXNQYXN0Tm9kZSA9
IHZhbHVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNXZWJWVFRFbGVtZW50KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIEF0b21pY1N0cmluZyBsYW5ndWFnZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KKyAgICB2b2lkIHNldExhbmd1YWdlKEF0b21pY1N0cmlu
ZyB2YWx1ZSkgeyBtX2xhbmd1YWdlID0gdmFsdWU7IH0KIAogICAgIHN0YXRpYyBjb25zdCBRdWFs
aWZpZWROYW1lJiB2b2ljZUF0dHJpYnV0ZU5hbWUoKQogICAgIHsKQEAgLTc2LDYgKzc4LDcgQEAg
cHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2lzUGFzdE5vZGUgOiAxOwogICAgIHVuc2lnbmVkIG1f
d2ViVlRUTm9kZVR5cGUgOiA0OwogICAgIAorICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwog
fTsKIAogaW5saW5lIFdlYlZUVEVsZW1lbnQqIHRvV2ViVlRURWxlbWVudChOb2RlKiBub2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCmluZGV4IGY4MzUwNjAu
LjFlNjI2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAK
QEAgLTM5NiwxMiArMzk2LDEyIEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjb25zdHJ1Y3RUcmVlRnJv
bVRva2VuKERvY3VtZW50KiBkb2N1bWVudCkKIAogICAgICAgICAgICAgaWYgKGNoaWxkLT53ZWJW
VFROb2RlVHlwZSgpID09IFdlYlZUVE5vZGVUeXBlVm9pY2UpCiAgICAgICAgICAgICAgICAgY2hp
bGQtPnNldEF0dHJpYnV0ZShXZWJWVFRFbGVtZW50Ojp2b2ljZUF0dHJpYnV0ZU5hbWUoKSwgQXRv
bWljU3RyaW5nKG1fdG9rZW4uYW5ub3RhdGlvbigpLmRhdGEoKSwgbV90b2tlbi5hbm5vdGF0aW9u
KCkuc2l6ZSgpKSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChjaGlsZC0+d2ViVlRUTm9kZVR5cGUo
KSA9PSBXZWJWVFROb2RlVHlwZUxhbmd1YWdlKQorICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGQt
PndlYlZUVE5vZGVUeXBlKCkgPT0gV2ViVlRUTm9kZVR5cGVMYW5ndWFnZSkgewogICAgICAgICAg
ICAgICAgIG1fbGFuZ3VhZ2VTdGFjay5hcHBlbmQoQXRvbWljU3RyaW5nKG1fdG9rZW4uYW5ub3Rh
dGlvbigpLmRhdGEoKSwgbV90b2tlbi5hbm5vdGF0aW9uKCkuc2l6ZSgpKSk7Ci0KLSAgICAgICAg
ICAgIGlmICghbV9sYW5ndWFnZVN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjaGls
ZC0+c2V0QXR0cmlidXRlKFdlYlZUVEVsZW1lbnQ6OmxhbmdBdHRyaWJ1dGVOYW1lKCksIG1fbGFu
Z3VhZ2VTdGFjay5sYXN0KCkpOwotCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW1f
bGFuZ3VhZ2VTdGFjay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY2hpbGQtPnNldExhbmd1
YWdlKG1fbGFuZ3VhZ2VTdGFjay5sYXN0KCkpOwogICAgICAgICAgICAgbV9jdXJyZW50Tm9kZS0+
cGFyc2VyQXBwZW5kQ2hpbGQoY2hpbGQpOwogICAgICAgICAgICAgbV9jdXJyZW50Tm9kZSA9IGNo
aWxkOwogICAgICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>