<?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>72279</bug_id>
          
          <creation_ts>2011-11-14 08:50:27 -0800</creation_ts>
          <short_desc>media/track/track-webvtt-tc004-magic-header.html flakily times out</short_desc>
          <delta_ts>2012-04-05 11:32:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
    
    <blocked>82590</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Anna Cavender">annacc</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>japhet</cc>
    
    <cc>vcarbune</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501955</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-11-14 08:50:27 -0800</bug_when>
    <thetext>media/track/track-webvtt-tc004-magic-header.html has been flakily timing out since r100085.

Flakiness dashboard:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=media%2Ftrack%2Ftrack-webvtt-tc004-magic-header.html

I&apos;m updating the expectations now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501959</commentid>
    <comment_count>1</comment_count>
      <attachid>114957</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-11-14 08:52:30 -0800</bug_when>
    <thetext>Created attachment 114957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501960</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-11-14 08:53:07 -0800</bug_when>
    <thetext>Committed r100149: &lt;http://trac.webkit.org/changeset/100149&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513645</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-02 03:20:26 -0800</bug_when>
    <thetext>This test is failing all the time on win and not so often on linux.

Added TEXT to expectations.
http://trac.webkit.org/changeset/101776</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590935</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-03-29 01:21:38 -0700</bug_when>
    <thetext>The problem occurs when parsing the third, erroneous track is being parsed. Currently a parser is automatically created if the response in TextTrackLoader::processNewCueData has text/vtt as mime type. This also happens with the mentioned track, causing the start of parsing. The parsing does not get over the Initial state in WebVTTParser::parseBytes, as the identifier could not be found, but the parser doesn&apos;t register this as an error and doesn&apos;t notify the client.

Patch incoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590936</commentid>
    <comment_count>5</comment_count>
      <attachid>134522</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-03-29 01:23:02 -0700</bug_when>
    <thetext>Created attachment 134522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591002</commentid>
    <comment_count>6</comment_count>
      <attachid>134522</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-03-29 03:11:10 -0700</bug_when>
    <thetext>Comment on attachment 134522
Patch

Also setting the cq flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591252</commentid>
    <comment_count>7</comment_count>
      <attachid>134522</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-03-29 09:29:27 -0700</bug_when>
    <thetext>Comment on attachment 134522
Patch

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

This is close, but I would prefer to have the cleanup noted. Thanks for identifying the issue and taking it on!

&gt; Source/WebCore/html/track/WebVTTParser.cpp:141
&gt;          case Initial:
&gt;              // 4-12 - Collect the first line and check for &quot;WEBVTT&quot;.
&gt; -            if (!hasRequiredFileIdentifier(data, length))
&gt; +            if (!hasRequiredFileIdentifier(data, length)) {
&gt; +                if (m_client)
&gt; +                    m_client-&gt;fileUnsuccessfullyParsed();
&gt;                  return;
&gt; +            }

&quot;fileUnsuccessfullyParsed&quot; is awkward, how about something like &quot;fileFailedToParse&quot;, or &quot;invalidFile&quot; instead?

As long as you are fixing this, I think it would be a good idea to move *all* of the logic about the file identifier into the parser. IOW, allow the client to call parseBytes() immediately instead of waiting until it knows that there is enough data loaded to check the file identifier. This will require the parser stay in the &quot;Initial&quot; state until can check for the identifier, but that will only require us to buffer up to 6 or 9 bytes before checking for the identifier.

&gt; Source/WebCore/loader/TextTrackLoader.cpp:195
&gt; +

Please include the error LOG(...) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591391</commentid>
    <comment_count>8</comment_count>
      <attachid>134522</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-03-29 11:45:41 -0700</bug_when>
    <thetext>Comment on attachment 134522
Patch

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

&gt;&gt; Source/WebCore/html/track/WebVTTParser.cpp:141
&gt;&gt; +            }
&gt; 
&gt; &quot;fileUnsuccessfullyParsed&quot; is awkward, how about something like &quot;fileFailedToParse&quot;, or &quot;invalidFile&quot; instead?
&gt; 
&gt; As long as you are fixing this, I think it would be a good idea to move *all* of the logic about the file identifier into the parser. IOW, allow the client to call parseBytes() immediately instead of waiting until it knows that there is enough data loaded to check the file identifier. This will require the parser stay in the &quot;Initial&quot; state until can check for the identifier, but that will only require us to buffer up to 6 or 9 bytes before checking for the identifier.

Should I then make WebVTTParser operate directly on the SharedBuffer that&apos;s provided by CachedResource in TextTrackLoader::processNewCueData? Progressing this idea, would it be safe to pass over the pointer to SharedBuffer already when constructing the parser? Current parsing offset would the move to be stored in the parser, making TextTrackLoader pretty much free of parser-related bloat.

Noted and agreed on the name.

&gt;&gt; Source/WebCore/loader/TextTrackLoader.cpp:195
&gt;&gt; +
&gt; 
&gt; Please include the error LOG(...) here.

Through a quick look I only found LOG macros used in track-related files on two occasions. I agree logging should be done, not only here though but rather throughout track-related operations. Because of that I recommend populating the code with logging info for another patch. I can commit to creating a bug, CC-ing people and creating the patch in near-future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591610</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-03-29 15:05:08 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 134522 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134522&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/html/track/WebVTTParser.cpp:141
&gt; &gt;&gt; +            }
&gt; &gt; 
&gt; &gt; &quot;fileUnsuccessfullyParsed&quot; is awkward, how about something like &quot;fileFailedToParse&quot;, or &quot;invalidFile&quot; instead?
&gt; &gt; 
&gt; &gt; As long as you are fixing this, I think it would be a good idea to move *all* of the logic about the file identifier into the parser. IOW, allow the client to call parseBytes() immediately instead of waiting until it knows that there is enough data loaded to check the file identifier. This will require the parser stay in the &quot;Initial&quot; state until can check for the identifier, but that will only require us to buffer up to 6 or 9 bytes before checking for the identifier.
&gt; 
&gt; Should I then make WebVTTParser operate directly on the SharedBuffer that&apos;s provided by CachedResource in TextTrackLoader::processNewCueData? Progressing this idea, would it be safe to pass over the pointer to SharedBuffer already when constructing the parser? Current parsing offset would the move to be stored in the parser, making TextTrackLoader pretty much free of parser-related bloat.
&gt; 

It already does operate on it in as much as it is passed a pointer to the data contained in the shared buffer. I do not think it make sense to change the API to always take a SharedBuffer instead of a const char *. This is not how any of the other WebKit parsers work, and it make the lifetime management of the buffer much more complicated.

&gt; 
&gt; &gt;&gt; Source/WebCore/loader/TextTrackLoader.cpp:195
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; Please include the error LOG(...) here.
&gt; 
&gt; Through a quick look I only found LOG macros used in track-related files on two occasions. I agree logging should be done, not only here though but rather throughout track-related operations. Because of that I recommend populating the code with logging info for another patch. I can commit to creating a bug, CC-ing people and creating the patch in near-future.

I definitely agree that we should have more consistent logging in other track related functions, but I don&apos;t think this is a reason to remove the error logging here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591958</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-03-30 01:50:14 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 134522 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134522&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/html/track/WebVTTParser.cpp:141
&gt; &gt; &gt;&gt; +            }
&gt; &gt; &gt; 
&gt; &gt; &gt; &quot;fileUnsuccessfullyParsed&quot; is awkward, how about something like &quot;fileFailedToParse&quot;, or &quot;invalidFile&quot; instead?
&gt; &gt; &gt; 
&gt; &gt; &gt; As long as you are fixing this, I think it would be a good idea to move *all* of the logic about the file identifier into the parser. IOW, allow the client to call parseBytes() immediately instead of waiting until it knows that there is enough data loaded to check the file identifier. This will require the parser stay in the &quot;Initial&quot; state until can check for the identifier, but that will only require us to buffer up to 6 or 9 bytes before checking for the identifier.
&gt; &gt; 
&gt; &gt; Should I then make WebVTTParser operate directly on the SharedBuffer that&apos;s provided by CachedResource in TextTrackLoader::processNewCueData? Progressing this idea, would it be safe to pass over the pointer to SharedBuffer already when constructing the parser? Current parsing offset would the move to be stored in the parser, making TextTrackLoader pretty much free of parser-related bloat.
&gt; &gt; 
&gt; 
&gt; It already does operate on it in as much as it is passed a pointer to the data contained in the shared buffer. I do not think it make sense to change the API to always take a SharedBuffer instead of a const char *. This is not how any of the other WebKit parsers work, and it make the lifetime management of the buffer much more complicated.
&gt; 

Ok, noted.

&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/loader/TextTrackLoader.cpp:195
&gt; &gt; &gt;&gt; +
&gt; &gt; &gt; 
&gt; &gt; &gt; Please include the error LOG(...) here.
&gt; &gt; 
&gt; &gt; Through a quick look I only found LOG macros used in track-related files on two occasions. I agree logging should be done, not only here though but rather throughout track-related operations. Because of that I recommend populating the code with logging info for another patch. I can commit to creating a bug, CC-ing people and creating the patch in near-future.
&gt; 
&gt; I definitely agree that we should have more consistent logging in other track related functions, but I don&apos;t think this is a reason to remove the error logging here.

Right then, might as well start logging here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591961</commentid>
    <comment_count>11</comment_count>
      <attachid>134747</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-03-30 01:52:51 -0700</bug_when>
    <thetext>Created attachment 134747
Patch

Also fixes a typo throughout WebVTTParser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592135</commentid>
    <comment_count>12</comment_count>
      <attachid>134747</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-03-30 07:07:23 -0700</bug_when>
    <thetext>Comment on attachment 134747
Patch

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

&gt; Source/WebCore/html/track/WebVTTParser.cpp:133
&gt; +            if (length &lt; bomLength + fileIdentifierLength)
&gt; +                return;

The parser only sees each byte once, so won&apos;t we now report failure if the first call to parseBytes() passes less than 9 bytes? I think you need to accumulate the first 9 bytes into a member variable and test that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596545</commentid>
    <comment_count>13</comment_count>
      <attachid>135819</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-04-05 07:17:18 -0700</bug_when>
    <thetext>Created attachment 135819
Patch

Store identifier data until there&apos;s enough of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596577</commentid>
    <comment_count>14</comment_count>
      <attachid>135819</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-04-05 08:11:31 -0700</bug_when>
    <thetext>Comment on attachment 135819
Patch

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

Nice fix, thanks! Marking r+ but cq- because of the extraneous fprintf().

&gt; Source/WebCore/html/track/WebVTTParser.cpp:152
&gt; +    if (m_identifierData.size() &gt;= bomLength &amp;&amp; m_identifierData[0] == &apos;\xEF&apos;
&gt; +        &amp;&amp; m_identifierData[1] == &apos;\xBB&apos; &amp;&amp; m_identifierData[2] == &apos;\xBF&apos;)
&gt; +        position += bomLength;

Nit: I don&apos;t think breaking the &quot;if&quot; line helps readability as it makes it harder to see which line is executed when the condition is true.

&gt; Source/WebCore/html/track/WebVTTParser.cpp:154
&gt; +    fprintf(stderr, &quot;WebVTTParser::hasRequiredFileIdentifier\n%s\n&quot;, line.utf8().data());

Oops, looks like you forgot to remove some debugging code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596654</commentid>
    <comment_count>15</comment_count>
      <attachid>135845</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-04-05 10:04:03 -0700</bug_when>
    <thetext>Created attachment 135845
Updated reviewed patch

Thanks for the reviews! Still asking for a cq+ though, thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596705</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-04-05 10:53:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/11192490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596740</commentid>
    <comment_count>17</comment_count>
      <attachid>135845</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 11:32:38 -0700</bug_when>
    <thetext>Comment on attachment 135845
Updated reviewed patch

Clearing flags on attachment: 135845

Committed r113343: &lt;http://trac.webkit.org/changeset/113343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596741</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 11:32:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114957</attachid>
            <date>2011-11-14 08:52:30 -0800</date>
            <delta_ts>2011-11-14 08:52:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72279-20111114165228.patch</filename>
            <type>text/plain</type>
            <size>1321</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMTQ4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzU2YjI2NjY5MzM2MTExZDE2ZjA4
NjhlNDdmNjEzYmQ2MTgxZDVhYS4uMjY0MTkwMzRjNDQzYmFkZWI1YmZmNjMwMmQ5ZmNjM2NiY2M0
ZmEwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwIEBACisyMDExLTExLTE0ICBUb255IEdlbnRpbGNvcmUg
IDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgbWVkaWEvdHJhY2svdHJhY2std2VidnR0
LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sIGZsYWtpbHkgdGltZXMgb3V0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OQorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OiBFeHBlY3QgdGVzdCB0byBmbGFr
aWx5IHRpbWVvdXQuCisKIDIwMTEtMTEtMTQgIEJyaWFuIFNhbG9tb24gIDxic2Fsb21vbkBnb29n
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBleHBlY3RlZCBjcmFzaGVzIGZvciBza2lhLWdwdSBj
YW52YXMgZnJvbSB0ZXN0IGV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGI2MGJjODVjMjliZjdkNTVj
Nzg2YjA1MWI4ZDZmZWQwNGNjZDlhNjEuLmQ2ZTc4Yzk3MjdlMDA2N2JmZDRlNmRlOTk4N2M4OTU1
NTg4YjA0ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKQEAgLTM4NzcsMyArMzg3Nyw1IEBAIEJVR1dLNTk1NTIgTUFDIERF
QlVHIDogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY3VzdG9tLmh0bWwg
PSBQQVNTCiBCVUdXSzcyMjcxIE1BQyBERUJVRyA6IGZhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJs
LWluLWVtYmVkLmh0bWwgPSBQQVNTIENSQVNICiAKIEJVR1dLNzIyNzIgV0lOIDogc2VjdXJpdHkv
Y3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMuaHRtbCA9IFRFWFQgUEFTUworCitCVUdXSzcyMjc5
IDogbWVkaWEvdHJhY2svdHJhY2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sID0gVElN
RU9VVCBQQVNTCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134522</attachid>
            <date>2012-03-29 01:23:02 -0700</date>
            <delta_ts>2012-03-30 01:52:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72279-20120329102300.patch</filename>
            <type>text/plain</type>
            <size>7533</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmMzNTZhZGUyYTI2Mjdm
Y2Q3Yjk2YzQzYjA4N2VkZDRlZDdhODdlOC4uNDk0OGM3ZGFlN2YzMWI5NTMwODAxY2MyNDBjZTE4
ZTY1ODIwZTA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTI5ICBaYW4g
RG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAgICAgbWVkaWEvdHJhY2sv
dHJhY2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sIGZsYWtpbHkgdGltZXMgb3V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgZml4ZXMgYW4gZXhpc3Rpbmcgb25lLgorCisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpwYXJzZUJ5dGVzKTog
UmVwb3J0IHRoYXQgdGhlIGZpbGUgd2FzIG5vdAorICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2Vk
IGlmIFdFQlZUVCBpZGVudGlmaWVyIHdhcyBub3QgZm91bmQuCisgICAgICAgICogaHRtbC90cmFj
ay9XZWJWVFRQYXJzZXIuaDoKKyAgICAgICAgKFdlYlZUVFBhcnNlckNsaWVudCk6IEFkZCBhIG5l
dyBtZXRob2QuCisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OnByb2Nlc3NOZXdDdWVEYXRhKTogT25seSBwcm9j
ZWVkIHdpdGgKKyAgICAgICAgY3JlYXRpbmcgYSBwYXJzZXIgYW5kIHBhcnNpbmcgaWYgYnVmZmVy
IGlzIGJpZyBlbm91Z2ggdG8gcG90ZW50aWFsbHkKKyAgICAgICAgaG9sZCB0aGUgV0VCVlRUIGlk
ZW50aWZpZXIuIFBhcnNpbmcgaXMgbm93IGRvbmUgcmVnYXJkbGVzc2x5IG9mCisgICAgICAgIHdo
ZXRoZXIgdGhlIHJlc3BvbnNlIGhhcyB0aGUgdGV4dC92dHQgbWltZSB0eXBlIG9yIG5vdC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6ZmlsZVVuc3VjY2Vzc2Z1bGx5UGFyc2Vk
KTogU2V0IHRoZSBzdGF0ZQorICAgICAgICB0byBmYWlsZWQsIHN0YXJ0IHRoZSBjdWUgbG9hZCB0
aW1lciBhbmQgY2FuY2VsIHRoZSBsb2FkIGlmIHRoZSBmaWxlCisgICAgICAgIHdhcyBub3QgcGFy
c2VkIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuaDoKKyAgICAgICAgKFRleHRUcmFja0xvYWRlcik6CisKIDIwMTItMDMt
MjggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBUZXh0
RmllbGREZWNvcmF0aW9uRWxlbWVudDo6ZGVjb3JhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9XZWJWVFRQYXJzZXIuY3BwCmluZGV4IGRkZTJiMjQwOGU1MGRlZDIxOTFjZjhmMWU4MGEw
ZGRmNTk1NzMzNmIuLmNkNjExNmFjMzdlMzRjNDE5YmI3NDdiOTc5ODg0Y2Q2NDJhZGY5YzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKQEAgLTEzNCw4ICsx
MzQsMTEgQEAgdm9pZCBXZWJWVFRQYXJzZXI6OnBhcnNlQnl0ZXMoY29uc3QgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKQogICAgICAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKICAgICAgICAgY2Fz
ZSBJbml0aWFsOgogICAgICAgICAgICAgLy8gNC0xMiAtIENvbGxlY3QgdGhlIGZpcnN0IGxpbmUg
YW5kIGNoZWNrIGZvciAiV0VCVlRUIi4KLSAgICAgICAgICAgIGlmICghaGFzUmVxdWlyZWRGaWxl
SWRlbnRpZmllcihkYXRhLCBsZW5ndGgpKQorICAgICAgICAgICAgaWYgKCFoYXNSZXF1aXJlZEZp
bGVJZGVudGlmaWVyKGRhdGEsIGxlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9jbGll
bnQpCisgICAgICAgICAgICAgICAgICAgIG1fY2xpZW50LT5maWxlVW5zdWNjZXNzZnVsbHlQYXJz
ZWQoKTsKICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBtX3N0YXRlID0gSGVhZGVyOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmgKaW5kZXggNGUxZGMwNDUzMmM5MDI4N2E1
ZTk0NzJmYjUwYzdiYzc2ZDRmZGRjMC4uMjMwZjQwZTlmMzg4YzQxM2Q4YzkyMzQ5MjE5YzY5YzA4
MWQyMDgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oCkBAIC01
MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJWVFRQYXJzZXJDbGllbnQoKSB7
IH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZmlsZVVuc3VjY2Vzc2Z1bGx5UGFyc2VkKCkgPSAwOwogfTsKIAogY2xhc3MgV2Vi
VlRUUGFyc2VyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5k
ZXggOGJiYjUzZGZkMDhmNGVkMWI0N2RkNzFhMjc3ZTFhNjQ3OTRmYjk5Yy4uOThhZjVmNTg5YWVj
OTBjZGY5NzYzYjA0YTFkNWZmODA5YzAxZGE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAKQEAgLTg2LDQ0ICs4NiwxNSBAQCB2b2lkIFRleHRUcmFja0xvYWRl
cjo6cHJvY2Vzc05ld0N1ZURhdGEoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgU2hhcmVkQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+ZGF0YSgp
OwotICAgIGlmIChtX3BhcnNlT2Zmc2V0ID09IGJ1ZmZlci0+c2l6ZSgpKQorICAgIGlmIChtX3Bh
cnNlT2Zmc2V0ID09IGJ1ZmZlci0+c2l6ZSgpIHx8IGJ1ZmZlci0+c2l6ZSgpIDwgV2ViVlRUUGFy
c2VyOjpmaWxlSWRlbnRpZmllck1heGltdW1MZW5ndGgoKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgaWYgKCFtX2N1ZVBhcnNlcikKKyAgICAgICAgbV9jdWVQYXJzZXIgPSBXZWJWVFRQYXJzZXI6
OmNyZWF0ZSh0aGlzLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworCiAgICAgY29uc3QgY2hh
ciogZGF0YTsKICAgICB1bnNpZ25lZCBsZW5ndGg7Ci0gICAgCi0gICAgaWYgKCFtX2N1ZVBhcnNl
cikgewotICAgICAgICBpZiAocmVzb3VyY2UtPnJlc3BvbnNlKCkubWltZVR5cGUoKSA9PSAidGV4
dC92dHQiKQotICAgICAgICAgICAgbV9jdWVQYXJzZXIgPSBXZWJWVFRQYXJzZXI6OmNyZWF0ZSh0
aGlzLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIC8vIERvbid0IHByb2NlZWQgdW50aWwgd2UgaGF2ZSBlbm91Z2ggZGF0YSB0byBjaGVjayBm
b3IgdGhlIFdlYlZUVCBtYWdpYyBpZGVudGlmaWVyLgotICAgICAgICAgICAgdW5zaWduZWQgaWRl
bnRpZmllckxlbmd0aCA9IFdlYlZUVFBhcnNlcjo6ZmlsZUlkZW50aWZpZXJNYXhpbXVtTGVuZ3Ro
KCk7Ci0gICAgICAgICAgICBpZiAoYnVmZmVyLT5zaXplKCkgPCBpZGVudGlmaWVyTGVuZ3RoKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgVmVjdG9y
PGNoYXI+IGlkZW50aWZpZXI7Ci0gICAgICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSAwOwotICAg
ICAgICAgICAgd2hpbGUgKG9mZnNldCA8IGlkZW50aWZpZXJMZW5ndGggJiYgKGxlbmd0aCA9IGJ1
ZmZlci0+Z2V0U29tZURhdGEoZGF0YSwgb2Zmc2V0KSkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
bGVuZ3RoID4gaWRlbnRpZmllckxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0g
aWRlbnRpZmllckxlbmd0aDsKLSAgICAgICAgICAgICAgICBpZGVudGlmaWVyLmFwcGVuZChkYXRh
LCBsZW5ndGgpOwotICAgICAgICAgICAgICAgIG9mZnNldCArPSBsZW5ndGg7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghV2ViVlRUUGFyc2VyOjpoYXNSZXF1
aXJlZEZpbGVJZGVudGlmaWVyKGlkZW50aWZpZXIuZGF0YSgpLCBpZGVudGlmaWVyLnNpemUoKSkp
IHsKLSAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJUZXh0VHJhY2tMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhIC0gZmlsZSBcIiVzXCIgZG9lcyBub3QgaGF2ZSBXZWJWVFQgbWFnaWMgaGVhZGVyIiwg
Ci0gICAgICAgICAgICAgICAgICAgIHJlc291cmNlLT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBGYWlsZWQ7Ci0gICAg
ICAgICAgICAgICAgbV9jdWVMb2FkVGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgbV9j
dWVQYXJzZXIgPSBXZWJWVFRQYXJzZXI6OmNyZWF0ZSh0aGlzLCBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIEFTU0VSVChtX2N1ZVBhcnNlcik7
Ci0gICAgCisKICAgICB3aGlsZSAoKGxlbmd0aCA9IGJ1ZmZlci0+Z2V0U29tZURhdGEoZGF0YSwg
bV9wYXJzZU9mZnNldCkpKSB7CiAgICAgICAgIG1fY3VlUGFyc2VyLT5wYXJzZUJ5dGVzKGRhdGEs
IGxlbmd0aCk7CiAgICAgICAgIG1fcGFyc2VPZmZzZXQgKz0gbGVuZ3RoOwpAQCAtMjE1LDYgKzE4
NiwxNiBAQCB2b2lkIFRleHRUcmFja0xvYWRlcjo6bmV3Q3Vlc1BhcnNlZCgpCiAgICAgbV9jdWVM
b2FkVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIFRleHRUcmFja0xvYWRlcjo6Zmls
ZVVuc3VjY2Vzc2Z1bGx5UGFyc2VkKCkKK3sKKyAgICBtX3N0YXRlID0gRmFpbGVkOworCisgICAg
aWYgKCFtX2N1ZUxvYWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2N1ZUxvYWRUaW1lci5z
dGFydE9uZVNob3QoMCk7CisKKyAgICBjYW5jZWxMb2FkKCk7Cit9CisKIHZvaWQgVGV4dFRyYWNr
TG9hZGVyOjpnZXROZXdDdWVzKFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrQ3VlPiA+JiBvdXRwdXRD
dWVzKQogewogICAgIEFTU0VSVChtX2N1ZVBhcnNlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4
dFRyYWNrTG9hZGVyLmgKaW5kZXggMzc5YmUyMDAwYTQyYjdmYjNjMWM3OTMwY2Q5MDE1NjZiYTgz
OGQ5ZC4uYWM0MDdjYmQ0YjY2OTM4OTRmNmJmYzE3YWU5NjUzOTEwOTNhMDNhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaApAQCAtNzMsNiArNzMsNyBAQCBwcml2YXRl
OgogICAgIAogICAgIC8vIFdlYlZUVFBhcnNlckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBuZXdD
dWVzUGFyc2VkKCk7CisgICAgdmlydHVhbCB2b2lkIGZpbGVVbnN1Y2Nlc3NmdWxseVBhcnNlZCgp
OwogICAgIAogICAgIFRleHRUcmFja0xvYWRlcihUZXh0VHJhY2tMb2FkZXJDbGllbnQqLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmQxMjExYmMzYWUyMjJlZTM2ZmZj
ODRjZDVmMTJmZDY2ODI4YjU1Yi4uY2YwOGE1NWQ5NDMwNWY4OGI3MWQ2NTljYzIzOTM5N2NlZjY5
Y2E0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTI5ICBaYW4gRG9iZXJzZWsgIDx6
YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAgICAgbWVkaWEvdHJhY2svdHJhY2std2VidnR0
LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sIGZsYWtpbHkgdGltZXMgb3V0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OQorCisgICAgICAgIFJlbW92
ZSB0aGUgdGVzdCBmcm9tIHRlc3QgZXhwZWN0YXRpb25zIGZpbGUgYXMgaXQgc2hvdWxkIG5vdyBw
YXNzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEyLTAzLTI4ICBI
YXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNYWtlIGZvY3VzIG5h
dmlnYXRpb24gYmUgY29tcGxpYW50IHdpdGggU2hhZG93IERPTSBzcGVjLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGUx
ZjU0ZGMxYWNlMmZmYTU5ZTEzNTA2NTAyNGZiNGYzOGI3MDYwY2MuLjFhNjI4MDA3MWZhNDI1OGI2
ZTEzNTE1MTk1NGQ1NDFhYjE5OTg5YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTM1MjYsOCArMzUyNiw2IEBAIEJV
R1dLODE0MDIgV0lOIDogbWVkaWEvdHJhY2svdHJhY2stYWN0aXZlLWN1ZXMuaHRtbCA9IFBBU1Mg
VElNRU9VVAogQlVHV0s3MjI3MSBNQUMgREVCVUcgOiBmYXN0L2xvYWRlci9qYXZhc2NyaXB0LXVy
bC1pbi1lbWJlZC5odG1sID0gUEFTUyBDUkFTSAogQlVHV0s3MjI3MSBTTk9XTEVPUEFSRCBERUJV
RyA6IGZhc3QvZG9tL25vZGUtaXRlcmF0b3ItcmVmZXJlbmNlLW5vZGUtbW92ZWQtY3Jhc2guaHRt
bCA9IFBBU1MgQ1JBU0gKIAotQlVHV0s3MjI3OSA6IG1lZGlhL3RyYWNrL3RyYWNrLXdlYnZ0dC10
YzAwNC1tYWdpYy1oZWFkZXIuaHRtbCA9IFRJTUVPVVQgVEVYVCBQQVNTCi0KIEJVR1dLNzIzNzYg
V0lOIDogZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtbGFiZWwuaHRtbCA9IFRFWFQgUEFTUwog
CiAvLyBBbmltYXRpb25zIHRlc3RzIHVzZSBhbiBpbmhlcmVudGx5LWZsYWt5IHRpbWVyLWJhc2Vk
IGRlc2lnbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134747</attachid>
            <date>2012-03-30 01:52:51 -0700</date>
            <delta_ts>2012-04-05 07:17:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72279-20120330105249.patch</filename>
            <type>text/plain</type>
            <size>10198</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JmOTNjYmNiY2ZiY2Nj
MDA0YTFjMzQ1ZGUyMDdkMDE3NDE2ZWY3ZS4uZmNiZTUzYTBlNTEzNzIwYjZmMTg3N2Q3OGVlZmJh
OTliNDdjYTU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTMwICBaYW4g
RG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAgICAgbWVkaWEvdHJhY2sv
dHJhY2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sIGZsYWtpbHkgdGltZXMgb3V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGFsbCB0
aGUgY2hlY2tpbmcgZm9yIHRoZSBXRUJWVFQgaWRlbnRpZmllciBmcm9tIFRleHRUcmFja0xvYWRl
cgorICAgICAgICB0byBXZWJWVFRQYXJzZXIsIG5vdGlmeWluZyB0aGUgcGFyc2VyIGNsaWVudHMg
b2YgcGFyc2luZyBmYWlsdXJlcyB0aHJvdWdoCisgICAgICAgIGEgbmV3IG1ldGhvZC4gUmVtb3Zl
cyB0aGUgV2ViVlRUUGFyc2VyOjpmaWxlSWRlbnRpZmllck1heGltdW1MZW5ndGggbWV0aG9kCisg
ICAgICAgIGFzIGl0IGlzIG5vdCB1c2VkIG91dHNpZGUgV2ViVlRUUGFyc2VyIGFueW1vcmUuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCBmaXhlcyBhbiBleGlzdGluZyBvbmUuCisKKyAgICAgICAg
KiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6IEZpeCBhIHR5cG8gdGhyb3VnaG91dCB0aGUg
ZmlsZToKKyAgICAgICAgZmlsZUlkZW50aWZlckxlbmd0aCAtPiBmaWxlSWRlbnRpZmllckxlbmd0
aAorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpoYXNMb25nV2ViVlRUSWRl
bnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6Omhhc1JlcXVpcmVkRmls
ZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpwYXJzZUJ5dGVz
KTogT25seSBjb250aW51ZSB3aXRoIHNlYXJjaGluZyBmb3IKKyAgICAgICAgdGhlIFdFQlZUVCBp
ZGVudGlmaWVyIGlmIHRoZXJlJ3MgZW5vdWdoIGRhdGEgdG8gcG9zc2libHkgY29udGFpbiB0aGUK
KyAgICAgICAgaWRlbnRpZmllci4gUmVwb3J0IHRoYXQgdGhlIGZpbGUgZmFpbGVkIHRvIHBhcnNl
IGlmIFdFQlZUVCBpZGVudGlmaWVyCisgICAgICAgIHdhcyB0aGVuIG5vdCBmb3VuZC4KKyAgICAg
ICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oOgorICAgICAgICAoV2ViVlRUUGFyc2VyQ2xp
ZW50KTogQWRkIGEgbmV3IG1ldGhvZC4KKyAgICAgICAgKiBsb2FkZXIvVGV4dFRyYWNrTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6cHJvY2Vzc05ld0N1ZURh
dGEpOiBQYXJzZXIgaXMgbm93IGNyZWF0ZWQKKyAgICAgICAgaW1tZWRpYXRlbHkgcmVnYXJkbGVz
cyBvZiB0aGUgbWltZSB0eXBlIHRoZSByZXNwb25zZSBob2xkcy4KKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja0xvYWRlcjo6ZmlsZUZhaWxlZFRvUGFyc2UpOiBMb2cgdGhlIGVycm9yLCBzZXQg
dGhlCisgICAgICAgIHN0YXRlIHRvIGZhaWxlZCwgc3RhcnQgdGhlIGN1ZSBsb2FkIHRpbWVyIGFu
ZCBjYW5jZWwgdGhlIGxvYWQgaWYgdGhlIGZpbGUKKyAgICAgICAgd2FzIG5vdCBwYXJzZWQgc3Vj
Y2Vzc2Z1bGx5LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5oOgorICAgICAgICAoVGV4dFRyYWNrTG9hZGVyKToKKwogMjAxMi0wMy0yOSAgQWxl
eGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBGaWx0
ZXJzXSBUcmlnZ2VyIGEgcmVwYWludCBvbiBlbGVtZW50cyB3aXRoIGNoYW5nZWQgZmlsdGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggZGRlMmIyNDA4
ZTUwZGVkMjE5MWNmOGYxZTgwYTBkZGY1OTU3MzM2Yi4uZDZiODkwNjc4NTJhYTBmOTJlMDFhM2Ey
YjJlYzk4YTcwMTg1OWEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9X
ZWJWVFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFy
c2VyLmNwcApAQCAtNDYsMjUgKzQ2LDIwIEBAIGNvbnN0IGludCBzZWNvbmRzUGVySG91ciA9IDM2
MDA7CiBjb25zdCBpbnQgc2Vjb25kc1Blck1pbnV0ZSA9IDYwOwogY29uc3QgZG91YmxlIG1hbGZv
cm1lZFRpbWUgPSAtMTsKIGNvbnN0IHVuc2lnbmVkIGJvbUxlbmd0aCA9IDM7Ci1jb25zdCB1bnNp
Z25lZCBmaWxlSWRlbnRpZmVyTGVuZ3RoID0gNjsKK2NvbnN0IHVuc2lnbmVkIGZpbGVJZGVudGlm
aWVyTGVuZ3RoID0gNjsKICAgICAKLXVuc2lnbmVkIFdlYlZUVFBhcnNlcjo6ZmlsZUlkZW50aWZp
ZXJNYXhpbXVtTGVuZ3RoKCkKLXsKLSAgICByZXR1cm4gYm9tTGVuZ3RoICsgZmlsZUlkZW50aWZl
ckxlbmd0aDsKLX0KLQogaW5saW5lIGJvb2wgaGFzTG9uZ1dlYlZUVElkZW50aWZpZXIoU3RyaW5n
IGxpbmUpCiB7CiAgICAgLy8gSWYgbGluZSBpcyBtb3JlIHRoYW4gc2l4IGNoYXJhY3RlcnMgLi4u
Ci0gICAgaWYgKGxpbmUubGVuZ3RoKCkgPCBmaWxlSWRlbnRpZmVyTGVuZ3RoKQorICAgIGlmIChs
aW5lLmxlbmd0aCgpIDwgZmlsZUlkZW50aWZpZXJMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIC8vIGJ1dCB0aGUgZmlyc3Qgc2l4IGNoYXJhY3RlcnMgZG8gbm90IGV4YWN0bHkg
ZXF1YWwgIldFQlZUVCIgLi4uCi0gICAgaWYgKGxpbmUuc3Vic3RyaW5nKDAsIGZpbGVJZGVudGlm
ZXJMZW5ndGgpICE9ICJXRUJWVFQiKQorICAgIGlmIChsaW5lLnN1YnN0cmluZygwLCBmaWxlSWRl
bnRpZmllckxlbmd0aCkgIT0gIldFQlZUVCIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IC8vIG9yIHRoZSBzZXZlbnRoIGNoYXJhY3RlciBpcyBuZWl0aGVyIGEgc3BhY2Ugbm9yIGEgdGFi
IGNoYXJhY3RlciwgdGhlbiBhYm9ydC4KLSAgICBpZiAobGluZS5sZW5ndGgoKSA+IGZpbGVJZGVu
dGlmZXJMZW5ndGggJiYgbGluZVtmaWxlSWRlbnRpZmVyTGVuZ3RoXSAhPSAnICcgJiYgbGluZVtm
aWxlSWRlbnRpZmVyTGVuZ3RoXSAhPSAnXHQnKQorICAgIGlmIChsaW5lLmxlbmd0aCgpID4gZmls
ZUlkZW50aWZpZXJMZW5ndGggJiYgbGluZVtmaWxlSWRlbnRpZmllckxlbmd0aF0gIT0gJyAnICYm
IGxpbmVbZmlsZUlkZW50aWZpZXJMZW5ndGhdICE9ICdcdCcpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtODAsOSArNzUsOSBAQCBib29sIFdlYlZUVFBhcnNl
cjo6aGFzUmVxdWlyZWRGaWxlSWRlbnRpZmllcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgpCiAgICAgICAgIHBvc2l0aW9uICs9IGJvbUxlbmd0aDsKICAgICBTdHJpbmcgbGluZSA9
IGNvbGxlY3ROZXh0TGluZShkYXRhLCBsZW5ndGgsICZwb3NpdGlvbik7CiAKLSAgICBpZiAobGlu
ZS5sZW5ndGgoKSA8IGZpbGVJZGVudGlmZXJMZW5ndGgpCisgICAgaWYgKGxpbmUubGVuZ3RoKCkg
PCBmaWxlSWRlbnRpZmllckxlbmd0aCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChs
aW5lLmxlbmd0aCgpID09IGZpbGVJZGVudGlmZXJMZW5ndGggJiYgbGluZSAhPSAiV0VCVlRUIikK
KyAgICBpZiAobGluZS5sZW5ndGgoKSA9PSBmaWxlSWRlbnRpZmllckxlbmd0aCAmJiBsaW5lICE9
ICJXRUJWVFQiKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFoYXNMb25nV2ViVlRU
SWRlbnRpZmllcihsaW5lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMzLDkgKzEyOCwx
NSBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6cGFyc2VCeXRlcyhjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgpCiAgICAgICAgIAogICAgICAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKICAgICAg
ICAgY2FzZSBJbml0aWFsOgorICAgICAgICAgICAgLy8gQnVmZmVyIHVwIGF0IGxlYXN0IDkgYnl0
ZXMgYmVmb3JlIHByb2NlZWRpbmcgd2l0aCBjaGVja2luZyBmb3IgdGhlIGZpbGUgaWRlbnRpZmll
ci4KKyAgICAgICAgICAgIGlmIChsZW5ndGggPCBib21MZW5ndGggKyBmaWxlSWRlbnRpZmllckxl
bmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAvLyA0LTEyIC0gQ29s
bGVjdCB0aGUgZmlyc3QgbGluZSBhbmQgY2hlY2sgZm9yICJXRUJWVFQiLgotICAgICAgICAgICAg
aWYgKCFoYXNSZXF1aXJlZEZpbGVJZGVudGlmaWVyKGRhdGEsIGxlbmd0aCkpCisgICAgICAgICAg
ICBpZiAoIWhhc1JlcXVpcmVkRmlsZUlkZW50aWZpZXIoZGF0YSwgbGVuZ3RoKSkgeworICAgICAg
ICAgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmZp
bGVGYWlsZWRUb1BhcnNlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQogICAgICAgICAgICAgbV9zdGF0ZSA9IEhlYWRlcjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oCmluZGV4IDRlMWRj
MDQ1MzJjOTAyODdhNWU5NDcyZmI1MGM3YmM3NmQ0ZmRkYzAuLjJmYjBmNzRhM2U2ZTI3MmYxNDJj
OWRlOWIzYWY4N2M0ZjUyMzBjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRUUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQ
YXJzZXIuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViVlRUUGFy
c2VyQ2xpZW50KCkgeyB9CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNQYXJzZWQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGZpbGVGYWlsZWRUb1BhcnNlKCkgPSAwOwogfTsKIAogY2xh
c3MgV2ViVlRUUGFyc2VyIHsKQEAgLTYzLDcgKzY0LDYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFdlYlZUVFBhcnNlcihjbGllbnQsIGNvbnRleHQpKTsKICAgICB9CiAg
ICAgCi0gICAgc3RhdGljIHVuc2lnbmVkIGZpbGVJZGVudGlmaWVyTWF4aW11bUxlbmd0aCgpOwog
ICAgIHN0YXRpYyBib29sIGhhc1JlcXVpcmVkRmlsZUlkZW50aWZpZXIoY29uc3QgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlY29nbml6
ZWRUYWcoY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCA4YmJiNTNkZmQwOGY0ZWQxYjQ3ZGQ3MWEyNzdlMWE2
NDc5NGZiOTljLi5lOTlhYzQwMDY0NzUxNzk5ZmNlODUyYzEwYWNhNzQ0MWQyNGVjNTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtODksNDYgKzg5LDE2
IEBAIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpwcm9jZXNzTmV3Q3VlRGF0YShDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiAgICAgaWYgKG1fcGFyc2VPZmZzZXQgPT0gYnVmZmVyLT5zaXplKCkpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIGlmICghbV9jdWVQYXJzZXIpCisgICAgICAgIG1fY3VlUGFy
c2VyID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUodGhpcywgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KTsKKwogICAgIGNvbnN0IGNoYXIqIGRhdGE7CiAgICAgdW5zaWduZWQgbGVuZ3RoOwotICAgIAot
ICAgIGlmICghbV9jdWVQYXJzZXIpIHsKLSAgICAgICAgaWYgKHJlc291cmNlLT5yZXNwb25zZSgp
Lm1pbWVUeXBlKCkgPT0gInRleHQvdnR0IikKLSAgICAgICAgICAgIG1fY3VlUGFyc2VyID0gV2Vi
VlRUUGFyc2VyOjpjcmVhdGUodGhpcywgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBEb24ndCBwcm9jZWVkIHVudGlsIHdlIGhhdmUgZW5v
dWdoIGRhdGEgdG8gY2hlY2sgZm9yIHRoZSBXZWJWVFQgbWFnaWMgaWRlbnRpZmllci4KLSAgICAg
ICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXJMZW5ndGggPSBXZWJWVFRQYXJzZXI6OmZpbGVJZGVu
dGlmaWVyTWF4aW11bUxlbmd0aCgpOwotICAgICAgICAgICAgaWYgKGJ1ZmZlci0+c2l6ZSgpIDwg
aWRlbnRpZmllckxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIFZlY3RvcjxjaGFyPiBpZGVudGlmaWVyOwotICAgICAgICAgICAgdW5zaWdu
ZWQgb2Zmc2V0ID0gMDsKLSAgICAgICAgICAgIHdoaWxlIChvZmZzZXQgPCBpZGVudGlmaWVyTGVu
Z3RoICYmIChsZW5ndGggPSBidWZmZXItPmdldFNvbWVEYXRhKGRhdGEsIG9mZnNldCkpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA+IGlkZW50aWZpZXJMZW5ndGgpCi0gICAgICAgICAg
ICAgICAgICAgIGxlbmd0aCA9IGlkZW50aWZpZXJMZW5ndGg7Ci0gICAgICAgICAgICAgICAgaWRl
bnRpZmllci5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBvZmZzZXQgKz0g
bGVuZ3RoOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIVdl
YlZUVFBhcnNlcjo6aGFzUmVxdWlyZWRGaWxlSWRlbnRpZmllcihpZGVudGlmaWVyLmRhdGEoKSwg
aWRlbnRpZmllci5zaXplKCkpKSB7Ci0gICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiVGV4dFRy
YWNrTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSAtIGZpbGUgXCIlc1wiIGRvZXMgbm90IGhhdmUgV2Vi
VlRUIG1hZ2ljIGhlYWRlciIsIAotICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS0+cmVzcG9u
c2UoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBtX3N0
YXRlID0gRmFpbGVkOwotICAgICAgICAgICAgICAgIG1fY3VlTG9hZFRpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIG1fY3VlUGFyc2VyID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUodGhpcywg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBB
U1NFUlQobV9jdWVQYXJzZXIpOwotICAgIAorCiAgICAgd2hpbGUgKChsZW5ndGggPSBidWZmZXIt
PmdldFNvbWVEYXRhKGRhdGEsIG1fcGFyc2VPZmZzZXQpKSkgewogICAgICAgICBtX2N1ZVBhcnNl
ci0+cGFyc2VCeXRlcyhkYXRhLCBsZW5ndGgpOwogICAgICAgICBtX3BhcnNlT2Zmc2V0ICs9IGxl
bmd0aDsKICAgICB9Ci0gICAgCiB9CiAKIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YShDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCkBAIC0yMTUsNiArMTg1LDE4IEBAIHZvaWQg
VGV4dFRyYWNrTG9hZGVyOjpuZXdDdWVzUGFyc2VkKCkKICAgICBtX2N1ZUxvYWRUaW1lci5zdGFy
dE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgVGV4dFRyYWNrTG9hZGVyOjpmaWxlRmFpbGVkVG9QYXJz
ZSgpCit7CisgICAgTE9HKE1lZGlhLCAiVGV4dFRyYWNrTG9hZGVyOjpmaWxlRmFpbGVkVG9QYXJz
ZSIpOworCisgICAgbV9zdGF0ZSA9IEZhaWxlZDsKKworICAgIGlmICghbV9jdWVMb2FkVGltZXIu
aXNBY3RpdmUoKSkKKyAgICAgICAgbV9jdWVMb2FkVGltZXIuc3RhcnRPbmVTaG90KDApOworCisg
ICAgY2FuY2VsTG9hZCgpOworfQorCiB2b2lkIFRleHRUcmFja0xvYWRlcjo6Z2V0TmV3Q3VlcyhW
ZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4gPiYgb3V0cHV0Q3VlcykKIHsKICAgICBBU1NFUlQo
bV9jdWVQYXJzZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5oCmluZGV4
IDM3OWJlMjAwMGE0MmI3ZmIzYzFjNzkzMGNkOTAxNTY2YmE4MzhkOWQuLjc2ZGEzOTBiZDUwYjk4
NzNmZTVlNTA4MWUwYmRlMTFkNWYyMDY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9UZXh0VHJhY2tMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRy
YWNrTG9hZGVyLmgKQEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICAvLyBXZWJW
VFRQYXJzZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpOworICAgIHZp
cnR1YWwgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpOwogICAgIAogICAgIFRleHRUcmFja0xvYWRl
cihUZXh0VHJhY2tMb2FkZXJDbGllbnQqLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOGJkY2RlY2M4M2U5MzEzOTFmMTUzZGZiOThlMjAwZTg3Nzc5MjdjZC4uZDVhYTJi
ZTU1NzdhYzIzZjkwYjBjM2NkNTY2NzhhYjYzNTEyYjY2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTAzLTMwICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAg
ICAgICAgbWVkaWEvdHJhY2svdHJhY2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sIGZs
YWtpbHkgdGltZXMgb3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjI3OQorCisgICAgICAgIFJlbW92ZSB0aGUgdGVzdCBmcm9tIHRlc3QgZXhwZWN0
YXRpb25zIGZpbGUgYXMgaXQgc2hvdWxkIG5vdyBwYXNzLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0OgorCiAyMDEyLTAzLTI5ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1
QGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIEZpbHRlcnNdIFRyaWdnZXIgYSByZXBhaW50IG9u
IGVsZW1lbnRzIHdpdGggY2hhbmdlZCBmaWx0ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBkYzMzMzRmZGMwYWQ4OGRi
ZDc3MzRlZTQ1ZWJjOGZlZWU1NmIyOTc4Li5kZGFmMjQwZDJlNmYxZDBiNWMwYTJiMGQ3YzBlMTlj
NzdmNDJlMGJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CkBAIC0zNTMwLDggKzM1MzAsNiBAQCBCVUdXSzgxNDAyIFdJTiA6
IG1lZGlhL3RyYWNrL3RyYWNrLWFjdGl2ZS1jdWVzLmh0bWwgPSBQQVNTIFRJTUVPVVQKIEJVR1dL
NzIyNzEgTUFDIERFQlVHIDogZmFzdC9sb2FkZXIvamF2YXNjcmlwdC11cmwtaW4tZW1iZWQuaHRt
bCA9IFBBU1MgQ1JBU0gKIEJVR1dLNzIyNzEgU05PV0xFT1BBUkQgREVCVUcgOiBmYXN0L2RvbS9u
b2RlLWl0ZXJhdG9yLXJlZmVyZW5jZS1ub2RlLW1vdmVkLWNyYXNoLmh0bWwgPSBQQVNTIENSQVNI
CiAKLUJVR1dLNzIyNzkgOiBtZWRpYS90cmFjay90cmFjay13ZWJ2dHQtdGMwMDQtbWFnaWMtaGVh
ZGVyLmh0bWwgPSBUSU1FT1VUIFRFWFQgUEFTUwotCiBCVUdXSzcyMzc2IFdJTiA6IGZhc3QvZm9y
bXMvZmlsZS9pbnB1dC1maWxlLWxhYmVsLmh0bWwgPSBURVhUIFBBU1MKIAogLy8gQW5pbWF0aW9u
cyB0ZXN0cyB1c2UgYW4gaW5oZXJlbnRseS1mbGFreSB0aW1lci1iYXNlZCBkZXNpZ24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135819</attachid>
            <date>2012-04-05 07:17:18 -0700</date>
            <delta_ts>2012-04-05 10:03:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72279-20120405161716.patch</filename>
            <type>text/plain</type>
            <size>12548</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE1NTNkMjZkNDA1NGE4
NDk5ZGE0Y2JiMzRiMjdkOGFhMzY2ZTRhNy4uNjNiZDQwOTU1NDhmNDNlMjYxZGQwNDAwMWRkNTgy
Y2EzMWZhZWQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA0LTA1ICBaYW4g
RG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAgICAgbWVkaWEvdHJhY2sv
dHJhY2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sIGZsYWtpbHkgdGltZXMgb3V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgYWxsIHRo
ZSBjaGVja2luZyBmb3IgdGhlIFdlYlZUVCBmaWxlIGlkZW50aWZpZXIgZnJvbSBUZXh0VHJhY2tM
b2FkZXIKKyAgICAgICAgdG8gV2ViVlRUUGFyc2VyLCBub3RpZnlpbmcgdGhlIHBhcnNlciBjbGll
bnRzIG9mIHBhcnNpbmcgZmFpbHVyZXMgdGhyb3VnaAorICAgICAgICBhIG5ldyBtZXRob2QuIFJl
bW92ZSB0aGUgV2ViVlRUUGFyc2VyOjpmaWxlSWRlbnRpZmllck1heGltdW1MZW5ndGggbWV0aG9k
CisgICAgICAgIGFuZCBtYWtlIFdlYlZUVFBhcnNlcjo6aGFzUmVxdWlyZWRGaWxlSWRlbnRpZmll
ciBwcml2YXRlLiBUaGUgbGF0dGVyIG5vdworICAgICAgICBvcGVyYXRlcyBvbiBhIHZlY3RvciBo
b2xkaW5nIHRoZSBpZGVudGlmaWVyIGRhdGEgdG8gd2hpY2ggZGF0YSBpcyBhZGRlZAorICAgICAg
ICB1bnRpbCB0aGVyZSdzIGVub3VnaCBvZiBpdCB0byBwb3NzaWJseSBob2xkIHRoZSBvcHRpb25h
bCBCT00gY2hhcmFjdGVyCisgICAgICAgIGFuZCB0aGUgcmVxdWlyZWQgV0VCVlRUIGNoYXJhY3Rl
ciBzZXF1ZW5jZS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEZpeGVzIGFuIGV4aXN0aW5nIHRl
c3QuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6IEZpeCBhIHR5cG8g
dGhyb3VnaG91dCB0aGUgZmlsZToKKyAgICAgICAgZmlsZUlkZW50aWZlckxlbmd0aCAtPiBmaWxl
SWRlbnRpZmllckxlbmd0aAorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJWVFRQYXJzZXI6OnBhcnNlQnl0ZXMpOiBPbmx5IGNvbnRpbnVlIHdpdGggc2VhcmNpbmcgZm9y
CisgICAgICAgIHRoZSBXRUJWVFQgaWRlbnRpZmllciBpZiB0aGVyZSdzIGVub3VnaCBkYXRhIHRv
IHBvc3NpYmx5IGNvbnRhaW4gdGhlCisgICAgICAgIGlkZW50aWZpZXIuIFJlcG9ydCB0aGF0IHRo
ZSBmaWxlIGZhaWxlZCB0byBwYXJzZSBpZiB0aGUgaWRlbnRpZmllcgorICAgICAgICB3YXMgdGhl
biBub3QgZm91bmQuCisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6Omhhc1JlcXVpcmVk
RmlsZUlkZW50aWZpZXIpOiBSZWZhY3RvciB0byBvcGVyYXRlCisgICAgICAgIG9uIHRoZSB2ZWN0
b3IgY29udGFpbmluZyBpZGVudGlmaWVyIGRhdGEgYW5kIG1lcmdlIHdpdGggdGhlCisgICAgICAg
IGhhc0xvbmdXZWJWVFRJZGVudGlmaWVyIGZ1bmN0aW9uLgorICAgICAgICAqIGh0bWwvdHJhY2sv
V2ViVlRUUGFyc2VyLmg6CisgICAgICAgIChXZWJWVFRQYXJzZXJDbGllbnQpOiBBZGQgYSBuZXcg
bWV0aG9kLgorICAgICAgICAoV2ViVlRUUGFyc2VyKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dFRy
YWNrTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6cHJvY2Vz
c05ld0N1ZURhdGEpOiBQYXJzZXIgaXMgbm93IGNyZWF0ZWQKKyAgICAgICAgaW1tZWRpYXRlbHkg
cmVnYXJkbGVzcyBvZiB0aGUgbWltZSB0eXBlIHRoZSByZXNwb25zZSBob2xkcy4KKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6ZmlsZUZhaWxlZFRvUGFyc2UpOiBMb2cgdGhlIGVy
cm9yLCBzZXQgdGhlCisgICAgICAgIHN0YXRlIHRvIGZhaWxlZCwgc3RhcnQgdGhlIGN1ZSBsb2Fk
IHRpbWVyIGFuZCBjYW5jZWwgdGhlIGxvYWQgaWYgdGhlIGZpbGUKKyAgICAgICAgd2FzIG5vdCBw
YXJzZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVy
L1RleHRUcmFja0xvYWRlci5oOgorICAgICAgICAoVGV4dFRyYWNrTG9hZGVyKToKKwogMjAxMi0w
NC0wNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBhZGQgYWJpbGl0eSB0byBjb3B5IHJlc291cmNlIFVSTCBmcm9tIHdlYiBp
bnNwZWN0b3IncyByZXNvdXJjZXMgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUUGFyc2VyLmNwcAppbmRleCBkZGUyYjI0MDhlNTBkZWQyMTkxY2Y4ZjFlODBhMGRkZjU5NTcz
MzZiLi4xMjk4MTVlODBhYjM1NzFhNTA5ZDkwZjBmNTJhZDVlOWJjOWQyNjBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCkBAIC00Niw0OSArNDYsNyBAQCBj
b25zdCBpbnQgc2Vjb25kc1BlckhvdXIgPSAzNjAwOwogY29uc3QgaW50IHNlY29uZHNQZXJNaW51
dGUgPSA2MDsKIGNvbnN0IGRvdWJsZSBtYWxmb3JtZWRUaW1lID0gLTE7CiBjb25zdCB1bnNpZ25l
ZCBib21MZW5ndGggPSAzOwotY29uc3QgdW5zaWduZWQgZmlsZUlkZW50aWZlckxlbmd0aCA9IDY7
Ci0gICAgCi11bnNpZ25lZCBXZWJWVFRQYXJzZXI6OmZpbGVJZGVudGlmaWVyTWF4aW11bUxlbmd0
aCgpCi17Ci0gICAgcmV0dXJuIGJvbUxlbmd0aCArIGZpbGVJZGVudGlmZXJMZW5ndGg7Ci19Ci0K
LWlubGluZSBib29sIGhhc0xvbmdXZWJWVFRJZGVudGlmaWVyKFN0cmluZyBsaW5lKQotewotICAg
IC8vIElmIGxpbmUgaXMgbW9yZSB0aGFuIHNpeCBjaGFyYWN0ZXJzIC4uLgotICAgIGlmIChsaW5l
Lmxlbmd0aCgpIDwgZmlsZUlkZW50aWZlckxlbmd0aCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgLy8gYnV0IHRoZSBmaXJzdCBzaXggY2hhcmFjdGVycyBkbyBub3QgZXhhY3RseSBlcXVh
bCAiV0VCVlRUIiAuLi4KLSAgICBpZiAobGluZS5zdWJzdHJpbmcoMCwgZmlsZUlkZW50aWZlckxl
bmd0aCkgIT0gIldFQlZUVCIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIG9yIHRo
ZSBzZXZlbnRoIGNoYXJhY3RlciBpcyBuZWl0aGVyIGEgc3BhY2Ugbm9yIGEgdGFiIGNoYXJhY3Rl
ciwgdGhlbiBhYm9ydC4KLSAgICBpZiAobGluZS5sZW5ndGgoKSA+IGZpbGVJZGVudGlmZXJMZW5n
dGggJiYgbGluZVtmaWxlSWRlbnRpZmVyTGVuZ3RoXSAhPSAnICcgJiYgbGluZVtmaWxlSWRlbnRp
ZmVyTGVuZ3RoXSAhPSAnXHQnKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotYm9vbCBXZWJWVFRQYXJzZXI6Omhhc1JlcXVpcmVkRmlsZUlkZW50aWZpZXIo
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIC8vIEEgV2ViVlRUIGZp
bGUgaWRlbnRpZmllciBjb25zaXN0cyBvZiBhbiBvcHRpb25hbCBCT00gY2hhcmFjdGVyLAotICAg
IC8vIHRoZSBzdHJpbmcgIldFQlZUVCIgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgc3BhY2Ugb3Ig
dGFiIGNoYXJhY3RlciwKLSAgICAvLyBhbmQgYW55IG51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQg
YXJlIG5vdCBsaW5lIHRlcm1pbmF0b3JzIC4uLgotICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsK
LSAgICBpZiAobGVuZ3RoID49IGJvbUxlbmd0aCAmJiBkYXRhWzBdID09ICdceEVGJyAmJiBkYXRh
WzFdID09ICdceEJCJyAmJiBkYXRhWzJdID09ICdceEJGJykKLSAgICAgICAgcG9zaXRpb24gKz0g
Ym9tTGVuZ3RoOwotICAgIFN0cmluZyBsaW5lID0gY29sbGVjdE5leHRMaW5lKGRhdGEsIGxlbmd0
aCwgJnBvc2l0aW9uKTsKLQotICAgIGlmIChsaW5lLmxlbmd0aCgpIDwgZmlsZUlkZW50aWZlckxl
bmd0aCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChsaW5lLmxlbmd0aCgpID09IGZp
bGVJZGVudGlmZXJMZW5ndGggJiYgbGluZSAhPSAiV0VCVlRUIikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghaGFzTG9uZ1dlYlZUVElkZW50aWZpZXIobGluZSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQorY29uc3QgdW5zaWduZWQgZmlsZUlk
ZW50aWZpZXJMZW5ndGggPSA2OwogCiBTdHJpbmcgV2ViVlRUUGFyc2VyOjpjb2xsZWN0RGlnaXRz
KGNvbnN0IFN0cmluZyYgaW5wdXQsIHVuc2lnbmVkKiBwb3NpdGlvbikKIHsKQEAgLTEzMywxMCAr
OTEsMjAgQEAgdm9pZCBXZWJWVFRQYXJzZXI6OnBhcnNlQnl0ZXMoY29uc3QgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKQogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX3N0YXRlKSB7CiAg
ICAgICAgIGNhc2UgSW5pdGlhbDoKKyAgICAgICAgICAgIC8vIEJ1ZmZlciB1cCBhdCBsZWFzdCA5
IGJ5dGVzIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggY2hlY2tpbmcgZm9yIHRoZSBmaWxlIGlkZW50
aWZpZXIuCisgICAgICAgICAgICBtX2lkZW50aWZpZXJEYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgp
OworICAgICAgICAgICAgaWYgKG1faWRlbnRpZmllckRhdGEuc2l6ZSgpIDwgYm9tTGVuZ3RoICsg
ZmlsZUlkZW50aWZpZXJMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAg
ICAgICAvLyA0LTEyIC0gQ29sbGVjdCB0aGUgZmlyc3QgbGluZSBhbmQgY2hlY2sgZm9yICJXRUJW
VFQiLgotICAgICAgICAgICAgaWYgKCFoYXNSZXF1aXJlZEZpbGVJZGVudGlmaWVyKGRhdGEsIGxl
bmd0aCkpCisgICAgICAgICAgICBpZiAoIWhhc1JlcXVpcmVkRmlsZUlkZW50aWZpZXIoKSkgewor
ICAgICAgICAgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgICAgICAgICAgbV9jbGll
bnQtPmZpbGVGYWlsZWRUb1BhcnNlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICBtX3N0YXRlID0gSGVhZGVyOworICAgICAgICAgICAgbV9p
ZGVudGlmaWVyRGF0YS5jbGVhcigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAg
ICAgICBjYXNlIEhlYWRlcjoKQEAgLTE3Myw2ICsxNDEsMjggQEAgdm9pZCBXZWJWVFRQYXJzZXI6
OnBhcnNlQnl0ZXMoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIH0KIH0K
IAorYm9vbCBXZWJWVFRQYXJzZXI6Omhhc1JlcXVpcmVkRmlsZUlkZW50aWZpZXIoKQoreworICAg
IC8vIEEgV2ViVlRUIGZpbGUgaWRlbnRpZmllciBjb25zaXN0cyBvZiBhbiBvcHRpb25hbCBCT00g
Y2hhcmFjdGVyLAorICAgIC8vIHRoZSBzdHJpbmcgIldFQlZUVCIgZm9sbG93ZWQgYnkgYW4gb3B0
aW9uYWwgc3BhY2Ugb3IgdGFiIGNoYXJhY3RlciwKKyAgICAvLyBhbmQgYW55IG51bWJlciBvZiBj
aGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBsaW5lIHRlcm1pbmF0b3JzIC4uLgorICAgIHVuc2lnbmVk
IHBvc2l0aW9uID0gMDsKKyAgICBpZiAobV9pZGVudGlmaWVyRGF0YS5zaXplKCkgPj0gYm9tTGVu
Z3RoICYmIG1faWRlbnRpZmllckRhdGFbMF0gPT0gJ1x4RUYnCisgICAgICAgICYmIG1faWRlbnRp
ZmllckRhdGFbMV0gPT0gJ1x4QkInICYmIG1faWRlbnRpZmllckRhdGFbMl0gPT0gJ1x4QkYnKQor
ICAgICAgICBwb3NpdGlvbiArPSBib21MZW5ndGg7CisgICAgU3RyaW5nIGxpbmUgPSBjb2xsZWN0
TmV4dExpbmUobV9pZGVudGlmaWVyRGF0YS5kYXRhKCksIG1faWRlbnRpZmllckRhdGEuc2l6ZSgp
LCAmcG9zaXRpb24pOworICAgIGZwcmludGYoc3RkZXJyLCAiV2ViVlRUUGFyc2VyOjpoYXNSZXF1
aXJlZEZpbGVJZGVudGlmaWVyXG4lc1xuIiwgbGluZS51dGY4KCkuZGF0YSgpKTsKKworICAgIGlm
IChsaW5lLmxlbmd0aCgpIDwgZmlsZUlkZW50aWZpZXJMZW5ndGgpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAobGluZS5zdWJzdHJpbmcoMCwgZmlsZUlkZW50aWZpZXJMZW5ndGgpICE9
ICJXRUJWVFQiKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGxpbmUubGVuZ3RoKCkg
PiBmaWxlSWRlbnRpZmllckxlbmd0aCAmJiBsaW5lW2ZpbGVJZGVudGlmaWVyTGVuZ3RoXSAhPSAn
ICcgJiYgbGluZVtmaWxlSWRlbnRpZmllckxlbmd0aF0gIT0gJ1x0JykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIFdlYlZUVFBhcnNlcjo6UGFyc2VTdGF0
ZSBXZWJWVFRQYXJzZXI6OmNvbGxlY3RDdWVJZChjb25zdCBTdHJpbmcmIGxpbmUpCiB7CiAgICAg
aWYgKGxpbmUuY29udGFpbnMoIi0tPiIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
UGFyc2VyLmgKaW5kZXggNjVlMTM2M2RhODJiMTZlYTRiNjUyYjk0Yjk2ZjVmOTcxMzlhOWFjOC4u
MGIzYjA2NmFhZTY4NjQxOWVmNGZjYWFiYjliNmM3NDcwZGZiZTRhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5XZWJWVFRQYXJzZXJDbGllbnQoKSB7IH0KICAgICAKICAgICB2aXJ0dWFsIHZv
aWQgbmV3Q3Vlc1BhcnNlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmlsZUZhaWxlZFRvUGFy
c2UoKSA9IDA7CiB9OwogCiBjbGFzcyBXZWJWVFRQYXJzZXIgewpAQCAtNjMsOSArNjQsNiBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViVlRUUGFyc2VyKGNsaWVudCwg
Y29udGV4dCkpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgdW5zaWduZWQgZmlsZUlkZW50aWZp
ZXJNYXhpbXVtTGVuZ3RoKCk7Ci0gICAgc3RhdGljIGJvb2wgaGFzUmVxdWlyZWRGaWxlSWRlbnRp
Zmllcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOwotCiAgICAgc3RhdGljIGlu
bGluZSBib29sIGlzUmVjb2duaXplZFRhZyhjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpCiAg
ICAgewogICAgICAgICByZXR1cm4gdGFnTmFtZSA9PSBpVGFnCkBAIC0xMDQsNiArMTAyLDcgQEAg
cHJvdGVjdGVkOgogICAgIFBhcnNlU3RhdGUgbV9zdGF0ZTsKIAogcHJpdmF0ZToKKyAgICBib29s
IGhhc1JlcXVpcmVkRmlsZUlkZW50aWZpZXIoKTsKICAgICBQYXJzZVN0YXRlIGNvbGxlY3RDdWVJ
ZChjb25zdCBTdHJpbmcmKTsKICAgICBQYXJzZVN0YXRlIGNvbGxlY3RUaW1pbmdzQW5kU2V0dGlu
Z3MoY29uc3QgU3RyaW5nJik7CiAgICAgUGFyc2VTdGF0ZSBjb2xsZWN0Q3VlVGV4dChjb25zdCBT
dHJpbmcmLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkKTsKQEAgLTExOCw2ICsxMTcsNyBAQCBw
cml2YXRlOgogICAgIAogICAgIHZvaWQgY29uc3RydWN0VHJlZUZyb21Ub2tlbihEb2N1bWVudCop
OwogCisgICAgVmVjdG9yPGNoYXI+IG1faWRlbnRpZmllckRhdGE7CiAgICAgU3RyaW5nIG1fY3Vy
cmVudElkOwogICAgIGRvdWJsZSBtX2N1cnJlbnRTdGFydFRpbWU7CiAgICAgZG91YmxlIG1fY3Vy
cmVudEVuZFRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCmlu
ZGV4IDhiYmI1M2RmZDA4ZjRlZDFiNDdkZDcxYTI3N2UxYTY0Nzk0ZmI5OWMuLmU5OWFjNDAwNjQ3
NTE3OTlmY2U4NTJjMTBhY2E3NDQxZDI0ZWM1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwCkBAIC04OSw0NiArODksMTYgQEAgdm9pZCBUZXh0VHJhY2tMb2Fk
ZXI6OnByb2Nlc3NOZXdDdWVEYXRhKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICBpZiAo
bV9wYXJzZU9mZnNldCA9PSBidWZmZXItPnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKCFtX2N1ZVBhcnNlcikKKyAgICAgICAgbV9jdWVQYXJzZXIgPSBXZWJWVFRQYXJzZXI6OmNy
ZWF0ZSh0aGlzLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworCiAgICAgY29uc3QgY2hhciog
ZGF0YTsKICAgICB1bnNpZ25lZCBsZW5ndGg7Ci0gICAgCi0gICAgaWYgKCFtX2N1ZVBhcnNlcikg
ewotICAgICAgICBpZiAocmVzb3VyY2UtPnJlc3BvbnNlKCkubWltZVR5cGUoKSA9PSAidGV4dC92
dHQiKQotICAgICAgICAgICAgbV9jdWVQYXJzZXIgPSBXZWJWVFRQYXJzZXI6OmNyZWF0ZSh0aGlz
LCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
IC8vIERvbid0IHByb2NlZWQgdW50aWwgd2UgaGF2ZSBlbm91Z2ggZGF0YSB0byBjaGVjayBmb3Ig
dGhlIFdlYlZUVCBtYWdpYyBpZGVudGlmaWVyLgotICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRp
Zmllckxlbmd0aCA9IFdlYlZUVFBhcnNlcjo6ZmlsZUlkZW50aWZpZXJNYXhpbXVtTGVuZ3RoKCk7
Ci0gICAgICAgICAgICBpZiAoYnVmZmVyLT5zaXplKCkgPCBpZGVudGlmaWVyTGVuZ3RoKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgVmVjdG9yPGNo
YXI+IGlkZW50aWZpZXI7Ci0gICAgICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSAwOwotICAgICAg
ICAgICAgd2hpbGUgKG9mZnNldCA8IGlkZW50aWZpZXJMZW5ndGggJiYgKGxlbmd0aCA9IGJ1ZmZl
ci0+Z2V0U29tZURhdGEoZGF0YSwgb2Zmc2V0KSkpIHsKLSAgICAgICAgICAgICAgICBpZiAobGVu
Z3RoID4gaWRlbnRpZmllckxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gaWRl
bnRpZmllckxlbmd0aDsKLSAgICAgICAgICAgICAgICBpZGVudGlmaWVyLmFwcGVuZChkYXRhLCBs
ZW5ndGgpOwotICAgICAgICAgICAgICAgIG9mZnNldCArPSBsZW5ndGg7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghV2ViVlRUUGFyc2VyOjpoYXNSZXF1aXJl
ZEZpbGVJZGVudGlmaWVyKGlkZW50aWZpZXIuZGF0YSgpLCBpZGVudGlmaWVyLnNpemUoKSkpIHsK
LSAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJUZXh0VHJhY2tMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhIC0gZmlsZSBcIiVzXCIgZG9lcyBub3QgaGF2ZSBXZWJWVFQgbWFnaWMgaGVhZGVyIiwgCi0g
ICAgICAgICAgICAgICAgICAgIHJlc291cmNlLT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBGYWlsZWQ7Ci0gICAgICAg
ICAgICAgICAgbV9jdWVMb2FkVGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgbV9jdWVQ
YXJzZXIgPSBXZWJWVFRQYXJzZXI6OmNyZWF0ZSh0aGlzLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIEFTU0VSVChtX2N1ZVBhcnNlcik7Ci0g
ICAgCisKICAgICB3aGlsZSAoKGxlbmd0aCA9IGJ1ZmZlci0+Z2V0U29tZURhdGEoZGF0YSwgbV9w
YXJzZU9mZnNldCkpKSB7CiAgICAgICAgIG1fY3VlUGFyc2VyLT5wYXJzZUJ5dGVzKGRhdGEsIGxl
bmd0aCk7CiAgICAgICAgIG1fcGFyc2VPZmZzZXQgKz0gbGVuZ3RoOwogICAgIH0KLSAgICAKIH0K
IAogdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSkKQEAgLTIxNSw2ICsxODUsMTggQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6Om5ld0N1
ZXNQYXJzZWQoKQogICAgIG1fY3VlTG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9p
ZCBUZXh0VHJhY2tMb2FkZXI6OmZpbGVGYWlsZWRUb1BhcnNlKCkKK3sKKyAgICBMT0coTWVkaWEs
ICJUZXh0VHJhY2tMb2FkZXI6OmZpbGVGYWlsZWRUb1BhcnNlIik7CisKKyAgICBtX3N0YXRlID0g
RmFpbGVkOworCisgICAgaWYgKCFtX2N1ZUxvYWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBt
X2N1ZUxvYWRUaW1lci5zdGFydE9uZVNob3QoMCk7CisKKyAgICBjYW5jZWxMb2FkKCk7Cit9CisK
IHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpnZXROZXdDdWVzKFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNr
Q3VlPiA+JiBvdXRwdXRDdWVzKQogewogICAgIEFTU0VSVChtX2N1ZVBhcnNlcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmgKaW5kZXggMzc5YmUyMDAwYTQyYjdmYjNjMWM3
OTMwY2Q5MDE1NjZiYTgzOGQ5ZC4uNzZkYTM5MGJkNTBiOTg3M2ZlNWU1MDgxZTBiZGUxMWQ1ZjIw
NjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaApAQCAtNzMsNiAr
NzMsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIFdlYlZUVFBhcnNlckNsaWVudAogICAgIHZp
cnR1YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCk7CisgICAgdmlydHVhbCB2b2lkIGZpbGVGYWlsZWRU
b1BhcnNlKCk7CiAgICAgCiAgICAgVGV4dFRyYWNrTG9hZGVyKFRleHRUcmFja0xvYWRlckNsaWVu
dCosIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMDgzYzg5YjNiMmE0
N2ZmYmU0MmUyNjA2MGVkYzk5MDIyYTMyN2NhLi45NWM5NjJjNGQ4MTc3OTgzMThlYmNkMzI5MTc3
ZjAxYjM0ODgzODMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDQtMDUgIFphbiBEb2Jl
cnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KKworICAgICAgICBtZWRpYS90cmFjay90cmFj
ay13ZWJ2dHQtdGMwMDQtbWFnaWMtaGVhZGVyLmh0bWwgZmxha2lseSB0aW1lcyBvdXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjc5CisKKyAgICAg
ICAgUmVtb3ZlIHRoZSB0ZXN0IGZyb20gdGVzdCBleHBlY3RhdGlvbnMgZmlsZSBhcyBpdCBzaG91
bGQgbm93IHBhc3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTIt
MDQtMDUgIFpvbHRhbiBBcnZhaSAgPHphcnZhaUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAg
W1F0XVtXSzJdIFNraXAgdGVzdHMgdGhhdCBzdGlsbCBmYWlsaW5nIGFmdGVyIGltcGxlbWVudGlu
ZyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNzkx
MGUyNzRiZmZlM2VkMzhjYzAzZTEzMDRiMmQ0NTg5MTVjNmU2My4uOTIyZjllN2Q0N2VlNDE0ZTA3
NzI2NTc4YmVhNTFlZmRkZTU0Y2I0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzI2Niw4ICszMjY2LDYgQEAgQlVH
V0s4MTQwMiBXSU4gOiBtZWRpYS90cmFjay90cmFjay1hY3RpdmUtY3Vlcy5odG1sID0gUEFTUyBU
SU1FT1VUCiBCVUdXSzcyMjcxIE1BQyBERUJVRyA6IGZhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJs
LWluLWVtYmVkLmh0bWwgPSBQQVNTIENSQVNICiBCVUdXSzcyMjcxIFNOT1dMRU9QQVJEIERFQlVH
IDogZmFzdC9kb20vbm9kZS1pdGVyYXRvci1yZWZlcmVuY2Utbm9kZS1tb3ZlZC1jcmFzaC5odG1s
ID0gUEFTUyBDUkFTSAogCi1CVUdXSzcyMjc5IDogbWVkaWEvdHJhY2svdHJhY2std2VidnR0LXRj
MDA0LW1hZ2ljLWhlYWRlci5odG1sID0gVElNRU9VVCBURVhUIFBBU1MKLQogQlVHV0s3MjM3NiBX
SU4gOiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1sYWJlbC5odG1sID0gVEVYVCBQQVNTCiAK
IC8vIEFuaW1hdGlvbnMgdGVzdHMgdXNlIGFuIGluaGVyZW50bHktZmxha3kgdGltZXItYmFzZWQg
ZGVzaWduLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135845</attachid>
            <date>2012-04-05 10:04:03 -0700</date>
            <delta_ts>2012-04-05 11:32:37 -0700</delta_ts>
            <desc>Updated reviewed patch</desc>
            <filename>bug-72279-20120405190402.patch</filename>
            <type>text/plain</type>
            <size>12371</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTRjODk1ZTA2ZjBhMGEy
MmUxN2M1MGU5YjQwYjQ5NWJmYWI5MzBjMi4uY2RkMTU5OTA0OTBjOTAzYzM2OGU3N2VkNzNhYzYx
NzE1Nzg5NzhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA0LTA1ICBaYW4g
RG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAgICAgbWVkaWEvdHJhY2sv
dHJhY2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sIGZsYWtpbHkgdGltZXMgb3V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBNb3ZlIGFsbCB0aGUg
Y2hlY2tpbmcgZm9yIHRoZSBXZWJWVFQgZmlsZSBpZGVudGlmaWVyIGZyb20gVGV4dFRyYWNrTG9h
ZGVyCisgICAgICAgIHRvIFdlYlZUVFBhcnNlciwgbm90aWZ5aW5nIHRoZSBwYXJzZXIgY2xpZW50
cyBvZiBwYXJzaW5nIGZhaWx1cmVzIHRocm91Z2gKKyAgICAgICAgYSBuZXcgbWV0aG9kLiBSZW1v
dmUgdGhlIFdlYlZUVFBhcnNlcjo6ZmlsZUlkZW50aWZpZXJNYXhpbXVtTGVuZ3RoIG1ldGhvZAor
ICAgICAgICBhbmQgbWFrZSBXZWJWVFRQYXJzZXI6Omhhc1JlcXVpcmVkRmlsZUlkZW50aWZpZXIg
cHJpdmF0ZS4gVGhlIGxhdHRlciBub3cKKyAgICAgICAgb3BlcmF0ZXMgb24gYSB2ZWN0b3IgaG9s
ZGluZyB0aGUgaWRlbnRpZmllciBkYXRhIHRvIHdoaWNoIGRhdGEgaXMgYWRkZWQKKyAgICAgICAg
dW50aWwgdGhlcmUncyBlbm91Z2ggb2YgaXQgdG8gcG9zc2libHkgaG9sZCB0aGUgb3B0aW9uYWwg
Qk9NIGNoYXJhY3RlcgorICAgICAgICBhbmQgdGhlIHJlcXVpcmVkIFdFQlZUVCBjaGFyYWN0ZXIg
c2VxdWVuY2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBGaXhlcyBhbiBleGlzdGluZyB0ZXN0
LgorCisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwOiBGaXggYSB0eXBvIHRo
cm91Z2hvdXQgdGhlIGZpbGU6CisgICAgICAgIGZpbGVJZGVudGlmZXJMZW5ndGggLT4gZmlsZUlk
ZW50aWZpZXJMZW5ndGgKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
VlRUUGFyc2VyOjpwYXJzZUJ5dGVzKTogT25seSBjb250aW51ZSB3aXRoIHNlYXJjaW5nIGZvcgor
ICAgICAgICB0aGUgV0VCVlRUIGlkZW50aWZpZXIgaWYgdGhlcmUncyBlbm91Z2ggZGF0YSB0byBw
b3NzaWJseSBjb250YWluIHRoZQorICAgICAgICBpZGVudGlmaWVyLiBSZXBvcnQgdGhhdCB0aGUg
ZmlsZSBmYWlsZWQgdG8gcGFyc2UgaWYgdGhlIGlkZW50aWZpZXIKKyAgICAgICAgd2FzIHRoZW4g
bm90IGZvdW5kLgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpoYXNSZXF1aXJlZEZp
bGVJZGVudGlmaWVyKTogUmVmYWN0b3IgdG8gb3BlcmF0ZQorICAgICAgICBvbiB0aGUgdmVjdG9y
IGNvbnRhaW5pbmcgaWRlbnRpZmllciBkYXRhIGFuZCBtZXJnZSB3aXRoIHRoZQorICAgICAgICBo
YXNMb25nV2ViVlRUSWRlbnRpZmllciBmdW5jdGlvbi4KKyAgICAgICAgKiBodG1sL3RyYWNrL1dl
YlZUVFBhcnNlci5oOgorICAgICAgICAoV2ViVlRUUGFyc2VyQ2xpZW50KTogQWRkIGEgbmV3IG1l
dGhvZC4KKyAgICAgICAgKFdlYlZUVFBhcnNlcik6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OnByb2Nlc3NO
ZXdDdWVEYXRhKTogUGFyc2VyIGlzIG5vdyBjcmVhdGVkCisgICAgICAgIGltbWVkaWF0ZWx5IHJl
Z2FyZGxlc3Mgb2YgdGhlIG1pbWUgdHlwZSB0aGUgcmVzcG9uc2UgaG9sZHMuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OmZpbGVGYWlsZWRUb1BhcnNlKTogTG9nIHRoZSBlcnJv
ciwgc2V0IHRoZQorICAgICAgICBzdGF0ZSB0byBmYWlsZWQsIHN0YXJ0IHRoZSBjdWUgbG9hZCB0
aW1lciBhbmQgY2FuY2VsIHRoZSBsb2FkIGlmIHRoZSBmaWxlCisgICAgICAgIHdhcyBub3QgcGFy
c2VkIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuaDoKKyAgICAgICAgKFRleHRUcmFja0xvYWRlcik6CisKIDIwMTItMDMt
MTQgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBFeHRlbmQgSGl0
VGVzdFJlc3VsdCB0byBzdXBwb3J0IG5vdCAiZGlzY2FyZGluZyIgc2hhZG93IGNvbnRlbnQgaW4g
ZmF2b3Igb2YgaXRzIERPTSBhbmNlc3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRQYXJzZXIuY3BwCmluZGV4IGRkZTJiMjQwOGU1MGRlZDIxOTFjZjhmMWU4MGEwZGRmNTk1NzMz
NmIuLjU0YzU2ZTcyNjkxZjAzMDNhNWFmOTJjZjIzNzE3MGUzYzE3OWU3Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKQEAgLTQ2LDQ5ICs0Niw3IEBAIGNv
bnN0IGludCBzZWNvbmRzUGVySG91ciA9IDM2MDA7CiBjb25zdCBpbnQgc2Vjb25kc1Blck1pbnV0
ZSA9IDYwOwogY29uc3QgZG91YmxlIG1hbGZvcm1lZFRpbWUgPSAtMTsKIGNvbnN0IHVuc2lnbmVk
IGJvbUxlbmd0aCA9IDM7Ci1jb25zdCB1bnNpZ25lZCBmaWxlSWRlbnRpZmVyTGVuZ3RoID0gNjsK
LSAgICAKLXVuc2lnbmVkIFdlYlZUVFBhcnNlcjo6ZmlsZUlkZW50aWZpZXJNYXhpbXVtTGVuZ3Ro
KCkKLXsKLSAgICByZXR1cm4gYm9tTGVuZ3RoICsgZmlsZUlkZW50aWZlckxlbmd0aDsKLX0KLQot
aW5saW5lIGJvb2wgaGFzTG9uZ1dlYlZUVElkZW50aWZpZXIoU3RyaW5nIGxpbmUpCi17Ci0gICAg
Ly8gSWYgbGluZSBpcyBtb3JlIHRoYW4gc2l4IGNoYXJhY3RlcnMgLi4uCi0gICAgaWYgKGxpbmUu
bGVuZ3RoKCkgPCBmaWxlSWRlbnRpZmVyTGVuZ3RoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICAvLyBidXQgdGhlIGZpcnN0IHNpeCBjaGFyYWN0ZXJzIGRvIG5vdCBleGFjdGx5IGVxdWFs
ICJXRUJWVFQiIC4uLgotICAgIGlmIChsaW5lLnN1YnN0cmluZygwLCBmaWxlSWRlbnRpZmVyTGVu
Z3RoKSAhPSAiV0VCVlRUIikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8gb3IgdGhl
IHNldmVudGggY2hhcmFjdGVyIGlzIG5laXRoZXIgYSBzcGFjZSBub3IgYSB0YWIgY2hhcmFjdGVy
LCB0aGVuIGFib3J0LgotICAgIGlmIChsaW5lLmxlbmd0aCgpID4gZmlsZUlkZW50aWZlckxlbmd0
aCAmJiBsaW5lW2ZpbGVJZGVudGlmZXJMZW5ndGhdICE9ICcgJyAmJiBsaW5lW2ZpbGVJZGVudGlm
ZXJMZW5ndGhdICE9ICdcdCcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0
cnVlOwotfQotCi1ib29sIFdlYlZUVFBhcnNlcjo6aGFzUmVxdWlyZWRGaWxlSWRlbnRpZmllcihj
b25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgLy8gQSBXZWJWVFQgZmls
ZSBpZGVudGlmaWVyIGNvbnNpc3RzIG9mIGFuIG9wdGlvbmFsIEJPTSBjaGFyYWN0ZXIsCi0gICAg
Ly8gdGhlIHN0cmluZyAiV0VCVlRUIiBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBzcGFjZSBvciB0
YWIgY2hhcmFjdGVyLAotICAgIC8vIGFuZCBhbnkgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhhdCBh
cmUgbm90IGxpbmUgdGVybWluYXRvcnMgLi4uCi0gICAgdW5zaWduZWQgcG9zaXRpb24gPSAwOwot
ICAgIGlmIChsZW5ndGggPj0gYm9tTGVuZ3RoICYmIGRhdGFbMF0gPT0gJ1x4RUYnICYmIGRhdGFb
MV0gPT0gJ1x4QkInICYmIGRhdGFbMl0gPT0gJ1x4QkYnKQotICAgICAgICBwb3NpdGlvbiArPSBi
b21MZW5ndGg7Ci0gICAgU3RyaW5nIGxpbmUgPSBjb2xsZWN0TmV4dExpbmUoZGF0YSwgbGVuZ3Ro
LCAmcG9zaXRpb24pOwotCi0gICAgaWYgKGxpbmUubGVuZ3RoKCkgPCBmaWxlSWRlbnRpZmVyTGVu
Z3RoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gZmls
ZUlkZW50aWZlckxlbmd0aCAmJiBsaW5lICE9ICJXRUJWVFQiKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFoYXNMb25nV2ViVlRUSWRlbnRpZmllcihsaW5lKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Citjb25zdCB1bnNpZ25lZCBmaWxlSWRl
bnRpZmllckxlbmd0aCA9IDY7CiAKIFN0cmluZyBXZWJWVFRQYXJzZXI6OmNvbGxlY3REaWdpdHMo
Y29uc3QgU3RyaW5nJiBpbnB1dCwgdW5zaWduZWQqIHBvc2l0aW9uKQogewpAQCAtMTMzLDEwICs5
MSwyMCBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6cGFyc2VCeXRlcyhjb25zdCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIAogICAgICAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKICAg
ICAgICAgY2FzZSBJbml0aWFsOgorICAgICAgICAgICAgLy8gQnVmZmVyIHVwIGF0IGxlYXN0IDkg
Ynl0ZXMgYmVmb3JlIHByb2NlZWRpbmcgd2l0aCBjaGVja2luZyBmb3IgdGhlIGZpbGUgaWRlbnRp
Zmllci4KKyAgICAgICAgICAgIG1faWRlbnRpZmllckRhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7
CisgICAgICAgICAgICBpZiAobV9pZGVudGlmaWVyRGF0YS5zaXplKCkgPCBib21MZW5ndGggKyBm
aWxlSWRlbnRpZmllckxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAg
ICAgIC8vIDQtMTIgLSBDb2xsZWN0IHRoZSBmaXJzdCBsaW5lIGFuZCBjaGVjayBmb3IgIldFQlZU
VCIuCi0gICAgICAgICAgICBpZiAoIWhhc1JlcXVpcmVkRmlsZUlkZW50aWZpZXIoZGF0YSwgbGVu
Z3RoKSkKKyAgICAgICAgICAgIGlmICghaGFzUmVxdWlyZWRGaWxlSWRlbnRpZmllcigpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgICAgICAgICBtX2NsaWVu
dC0+ZmlsZUZhaWxlZFRvUGFyc2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisKICAgICAgICAgICAgIG1fc3RhdGUgPSBIZWFkZXI7CisgICAgICAgICAgICBtX2lk
ZW50aWZpZXJEYXRhLmNsZWFyKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAg
ICAgIGNhc2UgSGVhZGVyOgpAQCAtMTczLDYgKzE0MSwyNiBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6
cGFyc2VCeXRlcyhjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgfQogfQog
Citib29sIFdlYlZUVFBhcnNlcjo6aGFzUmVxdWlyZWRGaWxlSWRlbnRpZmllcigpCit7CisgICAg
Ly8gQSBXZWJWVFQgZmlsZSBpZGVudGlmaWVyIGNvbnNpc3RzIG9mIGFuIG9wdGlvbmFsIEJPTSBj
aGFyYWN0ZXIsCisgICAgLy8gdGhlIHN0cmluZyAiV0VCVlRUIiBmb2xsb3dlZCBieSBhbiBvcHRp
b25hbCBzcGFjZSBvciB0YWIgY2hhcmFjdGVyLAorICAgIC8vIGFuZCBhbnkgbnVtYmVyIG9mIGNo
YXJhY3RlcnMgdGhhdCBhcmUgbm90IGxpbmUgdGVybWluYXRvcnMgLi4uCisgICAgdW5zaWduZWQg
cG9zaXRpb24gPSAwOworICAgIGlmIChtX2lkZW50aWZpZXJEYXRhLnNpemUoKSA+PSBib21MZW5n
dGggJiYgbV9pZGVudGlmaWVyRGF0YVswXSA9PSAnXHhFRicgJiYgbV9pZGVudGlmaWVyRGF0YVsx
XSA9PSAnXHhCQicgJiYgbV9pZGVudGlmaWVyRGF0YVsyXSA9PSAnXHhCRicpCisgICAgICAgIHBv
c2l0aW9uICs9IGJvbUxlbmd0aDsKKyAgICBTdHJpbmcgbGluZSA9IGNvbGxlY3ROZXh0TGluZSht
X2lkZW50aWZpZXJEYXRhLmRhdGEoKSwgbV9pZGVudGlmaWVyRGF0YS5zaXplKCksICZwb3NpdGlv
bik7CisKKyAgICBpZiAobGluZS5sZW5ndGgoKSA8IGZpbGVJZGVudGlmaWVyTGVuZ3RoKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGxpbmUuc3Vic3RyaW5nKDAsIGZpbGVJZGVudGlm
aWVyTGVuZ3RoKSAhPSAiV0VCVlRUIikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChs
aW5lLmxlbmd0aCgpID4gZmlsZUlkZW50aWZpZXJMZW5ndGggJiYgbGluZVtmaWxlSWRlbnRpZmll
ckxlbmd0aF0gIT0gJyAnICYmIGxpbmVbZmlsZUlkZW50aWZpZXJMZW5ndGhdICE9ICdcdCcpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiBXZWJWVFRQYXJz
ZXI6OlBhcnNlU3RhdGUgV2ViVlRUUGFyc2VyOjpjb2xsZWN0Q3VlSWQoY29uc3QgU3RyaW5nJiBs
aW5lKQogewogICAgIGlmIChsaW5lLmNvbnRhaW5zKCItLT4iKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVFBhcnNlci5oCmluZGV4IDY1ZTEzNjNkYTgyYjE2ZWE0YjY1MmI5NGI5NmY1
Zjk3MTM5YTlhYzguLjBiM2IwNjZhYWU2ODY0MTllZjRmY2FhYmI5YjZjNzQ3MGRmYmU0YWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuaApAQCAtNTAsNiArNTAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViVlRUUGFyc2VyQ2xpZW50KCkgeyB9CiAgICAgCiAg
ICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNQYXJzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZp
bGVGYWlsZWRUb1BhcnNlKCkgPSAwOwogfTsKIAogY2xhc3MgV2ViVlRUUGFyc2VyIHsKQEAgLTYz
LDkgKzY0LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlZUVFBh
cnNlcihjbGllbnQsIGNvbnRleHQpKTsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIHVuc2lnbmVk
IGZpbGVJZGVudGlmaWVyTWF4aW11bUxlbmd0aCgpOwotICAgIHN0YXRpYyBib29sIGhhc1JlcXVp
cmVkRmlsZUlkZW50aWZpZXIoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKLQog
ICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlY29nbml6ZWRUYWcoY29uc3QgQXRvbWljU3RyaW5n
JiB0YWdOYW1lKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT0gaVRhZwpAQCAtMTA0
LDYgKzEwMiw3IEBAIHByb3RlY3RlZDoKICAgICBQYXJzZVN0YXRlIG1fc3RhdGU7CiAKIHByaXZh
dGU6CisgICAgYm9vbCBoYXNSZXF1aXJlZEZpbGVJZGVudGlmaWVyKCk7CiAgICAgUGFyc2VTdGF0
ZSBjb2xsZWN0Q3VlSWQoY29uc3QgU3RyaW5nJik7CiAgICAgUGFyc2VTdGF0ZSBjb2xsZWN0VGlt
aW5nc0FuZFNldHRpbmdzKGNvbnN0IFN0cmluZyYpOwogICAgIFBhcnNlU3RhdGUgY29sbGVjdEN1
ZVRleHQoY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCk7CkBAIC0xMTgs
NiArMTE3LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbnN0cnVjdFRyZWVGcm9tVG9r
ZW4oRG9jdW1lbnQqKTsKIAorICAgIFZlY3RvcjxjaGFyPiBtX2lkZW50aWZpZXJEYXRhOwogICAg
IFN0cmluZyBtX2N1cnJlbnRJZDsKICAgICBkb3VibGUgbV9jdXJyZW50U3RhcnRUaW1lOwogICAg
IGRvdWJsZSBtX2N1cnJlbnRFbmRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcAppbmRleCA4YmJiNTNkZmQwOGY0ZWQxYjQ3ZGQ3MWEyNzdlMWE2NDc5NGZiOTlj
Li5lOTlhYzQwMDY0NzUxNzk5ZmNlODUyYzEwYWNhNzQ0MWQyNGVjNTYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtODksNDYgKzg5LDE2IEBAIHZvaWQg
VGV4dFRyYWNrTG9hZGVyOjpwcm9jZXNzTmV3Q3VlRGF0YShDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UpCiAgICAgaWYgKG1fcGFyc2VPZmZzZXQgPT0gYnVmZmVyLT5zaXplKCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGlmICghbV9jdWVQYXJzZXIpCisgICAgICAgIG1fY3VlUGFyc2VyID0gV2Vi
VlRUUGFyc2VyOjpjcmVhdGUodGhpcywgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKwogICAg
IGNvbnN0IGNoYXIqIGRhdGE7CiAgICAgdW5zaWduZWQgbGVuZ3RoOwotICAgIAotICAgIGlmICgh
bV9jdWVQYXJzZXIpIHsKLSAgICAgICAgaWYgKHJlc291cmNlLT5yZXNwb25zZSgpLm1pbWVUeXBl
KCkgPT0gInRleHQvdnR0IikKLSAgICAgICAgICAgIG1fY3VlUGFyc2VyID0gV2ViVlRUUGFyc2Vy
OjpjcmVhdGUodGhpcywgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICAvLyBEb24ndCBwcm9jZWVkIHVudGlsIHdlIGhhdmUgZW5vdWdoIGRhdGEg
dG8gY2hlY2sgZm9yIHRoZSBXZWJWVFQgbWFnaWMgaWRlbnRpZmllci4KLSAgICAgICAgICAgIHVu
c2lnbmVkIGlkZW50aWZpZXJMZW5ndGggPSBXZWJWVFRQYXJzZXI6OmZpbGVJZGVudGlmaWVyTWF4
aW11bUxlbmd0aCgpOwotICAgICAgICAgICAgaWYgKGJ1ZmZlci0+c2l6ZSgpIDwgaWRlbnRpZmll
ckxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIFZlY3RvcjxjaGFyPiBpZGVudGlmaWVyOwotICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0
ID0gMDsKLSAgICAgICAgICAgIHdoaWxlIChvZmZzZXQgPCBpZGVudGlmaWVyTGVuZ3RoICYmIChs
ZW5ndGggPSBidWZmZXItPmdldFNvbWVEYXRhKGRhdGEsIG9mZnNldCkpKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGxlbmd0aCA+IGlkZW50aWZpZXJMZW5ndGgpCi0gICAgICAgICAgICAgICAgICAg
IGxlbmd0aCA9IGlkZW50aWZpZXJMZW5ndGg7Ci0gICAgICAgICAgICAgICAgaWRlbnRpZmllci5h
cHBlbmQoZGF0YSwgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbGVuZ3RoOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIVdlYlZUVFBhcnNl
cjo6aGFzUmVxdWlyZWRGaWxlSWRlbnRpZmllcihpZGVudGlmaWVyLmRhdGEoKSwgaWRlbnRpZmll
ci5zaXplKCkpKSB7Ci0gICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiVGV4dFRyYWNrTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YSAtIGZpbGUgXCIlc1wiIGRvZXMgbm90IGhhdmUgV2ViVlRUIG1hZ2lj
IGhlYWRlciIsIAotICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS0+cmVzcG9uc2UoKS51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBtX3N0YXRlID0gRmFp
bGVkOwotICAgICAgICAgICAgICAgIG1fY3VlTG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIG1fY3VlUGFyc2VyID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUodGhpcywgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBBU1NFUlQobV9j
dWVQYXJzZXIpOwotICAgIAorCiAgICAgd2hpbGUgKChsZW5ndGggPSBidWZmZXItPmdldFNvbWVE
YXRhKGRhdGEsIG1fcGFyc2VPZmZzZXQpKSkgewogICAgICAgICBtX2N1ZVBhcnNlci0+cGFyc2VC
eXRlcyhkYXRhLCBsZW5ndGgpOwogICAgICAgICBtX3BhcnNlT2Zmc2V0ICs9IGxlbmd0aDsKICAg
ICB9Ci0gICAgCiB9CiAKIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UpCkBAIC0yMTUsNiArMTg1LDE4IEBAIHZvaWQgVGV4dFRyYWNr
TG9hZGVyOjpuZXdDdWVzUGFyc2VkKCkKICAgICBtX2N1ZUxvYWRUaW1lci5zdGFydE9uZVNob3Qo
MCk7CiB9CiAKK3ZvaWQgVGV4dFRyYWNrTG9hZGVyOjpmaWxlRmFpbGVkVG9QYXJzZSgpCit7Cisg
ICAgTE9HKE1lZGlhLCAiVGV4dFRyYWNrTG9hZGVyOjpmaWxlRmFpbGVkVG9QYXJzZSIpOworCisg
ICAgbV9zdGF0ZSA9IEZhaWxlZDsKKworICAgIGlmICghbV9jdWVMb2FkVGltZXIuaXNBY3RpdmUo
KSkKKyAgICAgICAgbV9jdWVMb2FkVGltZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgY2FuY2Vs
TG9hZCgpOworfQorCiB2b2lkIFRleHRUcmFja0xvYWRlcjo6Z2V0TmV3Q3VlcyhWZWN0b3I8UmVm
UHRyPFRleHRUcmFja0N1ZT4gPiYgb3V0cHV0Q3VlcykKIHsKICAgICBBU1NFUlQobV9jdWVQYXJz
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5oCmluZGV4IDM3OWJlMjAw
MGE0MmI3ZmIzYzFjNzkzMGNkOTAxNTY2YmE4MzhkOWQuLjc2ZGEzOTBiZDUwYjk4NzNmZTVlNTA4
MWUwYmRlMTFkNWYyMDY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0
VHJhY2tMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVy
LmgKQEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICAvLyBXZWJWVFRQYXJzZXJD
bGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpOworICAgIHZpcnR1YWwgdm9p
ZCBmaWxlRmFpbGVkVG9QYXJzZSgpOwogICAgIAogICAgIFRleHRUcmFja0xvYWRlcihUZXh0VHJh
Y2tMb2FkZXJDbGllbnQqLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTE3ZTFjODFjZWE0NTZiNTllYmViMDFmNjZjNTMxYjNkNzhhMjI0YS4uYWMwMTQzYzhlMWIxNmE1
NmI0ZDM3ZmM2OWQ1ZjE0ZDAwYjU4ZDEwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0
LTA1ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAgICAgbWVk
aWEvdHJhY2svdHJhY2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sIGZsYWtpbHkgdGlt
ZXMgb3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MjI3OQorCisgICAgICAgIFJlbW92ZSB0aGUgdGVzdCBmcm9tIHRlc3QgZXhwZWN0YXRpb25zIGZp
bGUgYXMgaXQgc2hvdWxkIG5vdyBwYXNzLgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dDoKKwogMjAxMi0wNC0wNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYWEyZWQ3MGIz
NWVjOTg5ZTdhZDVkMTE2MDRhNDliZjk1NjFhODJkMy4uZTQ5ZjRlOWJkM2ZkYTQ3MTVjMmJiMGEw
NjQ2MTdhZjgwOGQ5OTdlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzI3MCw4ICszMjcwLDYgQEAgQlVHV0s4MTQw
MiBXSU4gOiBtZWRpYS90cmFjay90cmFjay1hY3RpdmUtY3Vlcy5odG1sID0gUEFTUyBUSU1FT1VU
CiBCVUdXSzcyMjcxIE1BQyBERUJVRyA6IGZhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJsLWluLWVt
YmVkLmh0bWwgPSBQQVNTIENSQVNICiBCVUdXSzcyMjcxIFNOT1dMRU9QQVJEIERFQlVHIDogZmFz
dC9kb20vbm9kZS1pdGVyYXRvci1yZWZlcmVuY2Utbm9kZS1tb3ZlZC1jcmFzaC5odG1sID0gUEFT
UyBDUkFTSAogCi1CVUdXSzcyMjc5IDogbWVkaWEvdHJhY2svdHJhY2std2VidnR0LXRjMDA0LW1h
Z2ljLWhlYWRlci5odG1sID0gVElNRU9VVCBURVhUIFBBU1MKLQogQlVHV0s3MjM3NiBXSU4gOiBm
YXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1sYWJlbC5odG1sID0gVEVYVCBQQVNTCiAKIC8vIEFu
aW1hdGlvbnMgdGVzdHMgdXNlIGFuIGluaGVyZW50bHktZmxha3kgdGltZXItYmFzZWQgZGVzaWdu
Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>