<?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>40451</bug_id>
          
          <creation_ts>2010-06-10 16:05:39 -0700</creation_ts>
          <short_desc>history.back() example that works in a main frame breaks in an iframe</short_desc>
          <delta_ts>2011-02-07 23:26:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          <cc>abarth</cc>
    
    <cc>cowboy</cc>
    
    <cc>fishd</cc>
    
    <cc>priyajeet.hora</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>236573</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-10 16:05:39 -0700</bug_when>
    <thetext>I don&apos;t have the example handy, but the developer I&apos;m working with right now will attach a fantastic reduction later.

If an application navigates using a combination of anchors to move forward, and history.back() to go backwards, we run into a problem when it&apos;s hosted in an iframe.

When the user has history.back()&apos;ed all the way to the site right after the original # anchor, the first call to history.back() doesn&apos;t return to the original page (visibly, anyways).

A second click on history.back() goes to the page before the web app was ever visited.

I can post a proof of concept soon, but the original developer will also attach his reduction in a few days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236605</commentid>
    <comment_count>1</comment_count>
      <attachid>58425</attachid>
    <who name="Jean-Marc Trinon">jmt.be</who>
    <bug_when>2010-06-10 17:48:02 -0700</bug_when>
    <thetext>Created attachment 58425
reduction example


test.html contains a web page that navigates through different elements in an &quot;iPhonish&quot; style. 

Going to previous level is done by clicking button at the left of the navigation bar at the top.
 
 iframe.html loads test.html in an iframe.

When in the iframe, it&apos;s impossible to navigate back to the top level element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236857</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-11 09:09:34 -0700</bug_when>
    <thetext>Note that this example is broken in the way described in both ToT WebKit, Safari 5, and Chrome 5, but works fine in Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236859</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-11 09:10:19 -0700</bug_when>
    <thetext>I haven&apos;t had a chance to scour the HTML5 spec yet, but I wonder if changes to support things like the hashchange event and push/pop state actually specify that our behavior is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236884</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 10:08:30 -0700</bug_when>
    <thetext>Note: history.back() is not really relevant.  The same issue occurs if you click the back button in the browser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236886</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-11 10:18:55 -0700</bug_when>
    <thetext>Of course - history.back() is defined to be the same as clicking the back button.

Programmatically or manually, &quot;going back&quot; in general has the problem  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236887</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 10:21:03 -0700</bug_when>
    <thetext>When embedded in an IFRAME, it seems like WebKit is failing to change the location of the IFRAME from e.g. #_settings to #_home upon navigating back.

While debugging the back navigation, one thing that is striking is that the isTargetItem property is set to the true for the topframe and not the inner frame.  That seems quite surprising.  It causes HistoryController::recursiveGoToItem to just navigate the top frame from iframe.html to iframe.html, which ends up being a no-op.  As a result, the navigation completes without doing anything.

The source of the mixed up isTargetItem flag probably will explain why we see this bug.  I wonder if the initial redirection from test.html to test.html#_home could be related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236904</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 10:51:49 -0700</bug_when>
    <thetext>Interestingly, if I load iframe.html, click on settings, then hit reload, and then click on settings again, back/forward buttons now start working properly!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236922</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 11:11:00 -0700</bug_when>
    <thetext>So, I think this is an issue with isTargetItem not being expressive enough.  We use that to determine which frame was the target of a navigation, but that is only really applicable when navigating forward.  If you are navigating back, then what we really want to know is which frames are different from the current frame configuration.  The checks in recursiveGoToItem are not adequate.

I think we really need a HistoryItem identifier.  If a HistoryItem is really just a clone of another HistoryItem, then they should have the same identifier.  That way, during a history traversal, we&apos;d know in recursiveGoToItem that we should not modify a frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236978</commentid>
    <comment_count>9</comment_count>
      <attachid>58496</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 12:37:07 -0700</bug_when>
    <thetext>Created attachment 58496
reduced test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236982</commentid>
    <comment_count>10</comment_count>
      <attachid>58498</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 12:42:28 -0700</bug_when>
    <thetext>Created attachment 58498
reduced test case (v2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237010</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 13:48:01 -0700</bug_when>
    <thetext>I have a patch based on comment #8 that fixes this bug and seems to pass existing layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237098</commentid>
    <comment_count>12</comment_count>
      <attachid>58518</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 15:50:14 -0700</bug_when>
    <thetext>Created attachment 58518
v1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237099</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-11 15:50:58 -0700</bug_when>
    <thetext>Attachment 58518 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/loader/HistoryController.cpp:562:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237104</commentid>
    <comment_count>14</comment_count>
      <attachid>58520</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 16:06:27 -0700</bug_when>
    <thetext>Created attachment 58520
v2 patch [fixed style error]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237117</commentid>
    <comment_count>15</comment_count>
      <attachid>58520</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-11 16:23:22 -0700</bug_when>
    <thetext>Comment on attachment 58520
v2 patch [fixed style error]

I like the approach here, and think it is fundamentally right.  But...

&gt; Index: WebCore/loader/FrameLoader.cpp
&gt; ===================================================================
&gt; --- WebCore/loader/FrameLoader.cpp	(revision 60978)
&gt; +++ WebCore/loader/FrameLoader.cpp	(working copy)
&gt; @@ -3542,14 +3542,11 @@ void FrameLoader::navigateToDifferentDoc
&gt;  void FrameLoader::loadItem(HistoryItem* item, FrameLoadType loadType)
&gt;  {
&gt;      // We do same-document navigation in the following cases:
&gt; -    // - The HistoryItem has a history state object
&gt; -    // - Navigating to an anchor within the page, with no form data stored on the target item or the current history entry,
&gt; -    //   and the URLs in the frame tree match the history item for fragment scrolling.
&gt; -    // - The HistoryItem is not the same as the current item, because such cases are treated as a new load.
&gt; +    // - The HistoryItem corresponds to the same document.
&gt; +    // - The HistoryItem is not the same as the current item.
&gt;      HistoryItem* currentItem = history()-&gt;currentItem();
&gt; -    bool sameDocumentNavigation = ((!item-&gt;formData() &amp;&amp; !(currentItem &amp;&amp; currentItem-&gt;formData()) &amp;&amp; history()-&gt;urlsMatchItem(item))
&gt; -                                  || (currentItem &amp;&amp; item-&gt;documentSequenceNumber() == currentItem-&gt;documentSequenceNumber()))
&gt; -                                  &amp;&amp; item != currentItem;
&gt; +    bool sameDocumentNavigation = currentItem &amp;&amp; item != currentItem
&gt; +        &amp;&amp; item-&gt;documentSequenceNumber() == currentItem-&gt;documentSequenceNumber();

I&apos;m concerned about the removal of the formData check here.  It&apos;s possible that it&apos;s not an issue because of the expressiveness of the item sequence number concept, but I haven&apos;t had enough coffee this afternoon to really think it through just by reading this patch.


&gt; @@ -659,10 +656,6 @@ void HistoryController::pushState(PassRe
&gt;      item-&gt;setStateObject(stateObject);
&gt;      item-&gt;setURLString(urlString);
&gt;  
&gt; -    // Since the document isn&apos;t changed as a result of a pushState call, we
&gt; -    // should preserve the DocumentSequenceNumber of the previous item.
&gt; -    item-&gt;setDocumentSequenceNumber(m_previousItem-&gt;documentSequenceNumber());
&gt; -    
&gt;      page-&gt;backForwardList()-&gt;pushStateItem(item.release());
&gt;  }

I&apos;m not entirely clear why this change is needed.

I&apos;m provisionally r-&apos;ing this patch, waiting for an explanation on both of these points.  It should be pretty easy to convince me, at which point I&apos;ll r+  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237123</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 16:34:16 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 58520 [details])
&gt; I like the approach here, and think it is fundamentally right.  But...
&gt; 
&gt; &gt; Index: WebCore/loader/FrameLoader.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/loader/FrameLoader.cpp	(revision 60978)
&gt; &gt; +++ WebCore/loader/FrameLoader.cpp	(working copy)
&gt; &gt; @@ -3542,14 +3542,11 @@ void FrameLoader::navigateToDifferentDoc
&gt; &gt;  void FrameLoader::loadItem(HistoryItem* item, FrameLoadType loadType)
&gt; &gt;  {
&gt; &gt;      // We do same-document navigation in the following cases:
&gt; &gt; -    // - The HistoryItem has a history state object
&gt; &gt; -    // - Navigating to an anchor within the page, with no form data stored on the target item or the current history entry,
&gt; &gt; -    //   and the URLs in the frame tree match the history item for fragment scrolling.
&gt; &gt; -    // - The HistoryItem is not the same as the current item, because such cases are treated as a new load.
&gt; &gt; +    // - The HistoryItem corresponds to the same document.
&gt; &gt; +    // - The HistoryItem is not the same as the current item.
&gt; &gt;      HistoryItem* currentItem = history()-&gt;currentItem();
&gt; &gt; -    bool sameDocumentNavigation = ((!item-&gt;formData() &amp;&amp; !(currentItem &amp;&amp; currentItem-&gt;formData()) &amp;&amp; history()-&gt;urlsMatchItem(item))
&gt; &gt; -                                  || (currentItem &amp;&amp; item-&gt;documentSequenceNumber() == currentItem-&gt;documentSequenceNumber()))
&gt; &gt; -                                  &amp;&amp; item != currentItem;
&gt; &gt; +    bool sameDocumentNavigation = currentItem &amp;&amp; item != currentItem
&gt; &gt; +        &amp;&amp; item-&gt;documentSequenceNumber() == currentItem-&gt;documentSequenceNumber();
&gt; 
&gt; I&apos;m concerned about the removal of the formData check here.  It&apos;s possible that it&apos;s not an issue because of the expressiveness of the item sequence number concept, but I haven&apos;t had enough coffee this afternoon to really think it through just by reading this patch.

Right, I believe the documentSequenceNumber check subsumes the formdata plus
urlsMatchItem check.  Perhaps I should create a test to verify this.


&gt; 
&gt; 
&gt; &gt; @@ -659,10 +656,6 @@ void HistoryController::pushState(PassRe
&gt; &gt;      item-&gt;setStateObject(stateObject);
&gt; &gt;      item-&gt;setURLString(urlString);
&gt; &gt;  
&gt; &gt; -    // Since the document isn&apos;t changed as a result of a pushState call, we
&gt; &gt; -    // should preserve the DocumentSequenceNumber of the previous item.
&gt; &gt; -    item-&gt;setDocumentSequenceNumber(m_previousItem-&gt;documentSequenceNumber());
&gt; &gt; -    
&gt; &gt;      page-&gt;backForwardList()-&gt;pushStateItem(item.release());
&gt; &gt;  }
&gt; 
&gt; I&apos;m not entirely clear why this change is needed.

This change removes redundancy.  The createItemTree call now sets the documentSequenceNumber.


&gt; I&apos;m provisionally r-&apos;ing this patch, waiting for an explanation on both of these points.  It should be pretty easy to convince me, at which point I&apos;ll r+  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237126</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-11 16:35:19 -0700</bug_when>
    <thetext>Also, I should have at least removed the now unused code for urlsMatchItem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237139</commentid>
    <comment_count>18</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-11 16:43:33 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; I&apos;m concerned about the removal of the formData check here.  It&apos;s possible that it&apos;s not an issue because of the expressiveness of the item sequence number concept, but I haven&apos;t had enough coffee this afternoon to really think it through just by reading this patch.
&gt; 
&gt; Right, I believe the documentSequenceNumber check subsumes the formdata plus
&gt; urlsMatchItem check.  Perhaps I should create a test to verify this.

(In reply to comment #17)
&gt; Also, I should have at least removed the now unused code for urlsMatchItem.

While I was reviewing, I was searching urlsMatchItem to see if it was now unused  ;)

I&apos;d feel a lot better about the removal of the formData check if you ran a test.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238446</commentid>
    <comment_count>19</comment_count>
      <attachid>58792</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-15 10:13:38 -0700</bug_when>
    <thetext>Created attachment 58792
v3 patch

Now with a test for submitting a form to a reference fragment.  We expect the
form submission to create a new document, and so navigating back should also
create a new document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238452</commentid>
    <comment_count>20</comment_count>
      <attachid>58795</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-15 10:21:57 -0700</bug_when>
    <thetext>Created attachment 58795
v4 patch

Now with the unused HistoryController::urlsMatchItem removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238453</commentid>
    <comment_count>21</comment_count>
      <attachid>58795</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-15 10:25:34 -0700</bug_when>
    <thetext>Comment on attachment 58795
v4 patch

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238502</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-15 12:32:33 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/61207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275174</commentid>
    <comment_count>23</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-09-07 11:15:22 -0700</bug_when>
    <thetext>*** Bug 32156 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346802</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-07 14:37:01 -0800</bug_when>
    <thetext>Re-opening at the request of bencc on #webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346804</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-07 14:37:29 -0800</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=53856 for an explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347156</commentid>
    <comment_count>26</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-07 23:26:46 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; See https://bugs.webkit.org/show_bug.cgi?id=53856 for an explanation.

I read https://bugs.webkit.org/show_bug.cgi?id=53856#c4 several times, and I find it fairly confusing.  At any rate, I don&apos;t think we should be re-opening this &quot;old&quot; bug for a new patch.  Let&apos;s use a new bug for whatever new changes are needed.  Maybe we should use bug 53856 for that?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>58425</attachid>
            <date>2010-06-10 17:48:02 -0700</date>
            <delta_ts>2010-06-10 17:48:02 -0700</delta_ts>
            <desc>reduction example</desc>
            <filename>reduction.zip</filename>
            <type>application/zip</type>
            <size>43654</size>
            <attacher name="Jean-Marc Trinon">jmt.be</attacher>
            
              <data encoding="base64">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
RYkiX9ojR44jSJAkYt4nSo8nZN8oSo4oUqUqU6cuTo0uaeAvWrAwauAzbeA5cOFBd+NDeONGeuNI
aa9Jb7xNf+RUhOVVgsBYh+ZZiOZbieZgjedkj+hnkuhui7NvhbFxjbNyiKVziaVzi7xzj7V1jrB2
j7B2j7F6lrmLoMmVnrGZpbucqMCls8antcfunrCEAAAAuklEQVQY043I1xLBQBiG4Q8hK1oWkei9
huhdEF3u/4LMrJP9Zxx4zt4Xvn/uhCAEOmffx3sctPojoW8Fx2/sVGe52QqbpaMeULfXEruJzGIl
WaTBZwSHMSUMZB0iCz4kOFI2kUJiQCQQ7xJxxBpEDFqN0MDKBIOSIxQoJvFjhOkII09HEXmLKKJA
R+mPUTXlNitocXnwNuZReUT3uE6YbnzL0NnkguPt1EtGBNY73Y5wXe/xfAn3h+e6H6GpPrdEtk5a
AAAAAElFTkSuQmCCUEsHCMMJ5yEKAgAABQIAAFBLAwQUAAgACABXmkU7AAAAAAAAAAAAAAAAJwAQ
AF9fTUFDT1NYL3JlZHVjdGlvbi9pdWkvLl9ibHVlQnV0dG9uLnBuZ1VYDACPdhFMBanKSvUBFABj
YBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAfFmIAbxnzIQBRxDQoIY0hhfQHXMAGJfNCWMCHHR5Pxc
vcSCgpxUvcLSxKLEvJLMvFSGQn0DILA2STJPSja2MLAOTkxLLMq0dnJzNDe2dDXXNTa1NNc1MXA2
1bV0MTXRNXazcDU0MTY2dbZwrkEYCNHFAABQSwcIVhi/N40AAADlAAAAUEsDBBQACAAIAFeaRTsA
AAAAAAAAAAAAAAAYABAAcmVkdWN0aW9uL2l1aS9jYW5jZWwucG5nVVgMAI92EUwFqcpK9QEUAAFq
AZX+iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAGXRFWHRTb2Z0d2FyZQBBZG9i
ZSBJbWFnZVJlYWR5ccllPAAAAQxJREFUKM+F00FKw0AYhuGBQK5S8DaFQiDH6LY3KPQYAcHlG3Hb
jWAwS4VCQUHEglCoCMVoyudiOpnJJCj/Jsk8mZlv8sdgukqYUlDT0lJTMCXxo55NqFBUFZMYzjkO
mBBH5iFcjiJXSwcz++BONz1QqnLXGcaQ8orQvU7aB7TUm6QHe7clNeR2YK0vqaOWtbp1L+aGws3h
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
BSuGVgasPLiKtipt1U+r7VeXrn69JnpNa4FewcqCwbUBa+sLVQrlhX3r3NftXU9YL1nftWH6hp0b
PhWJiq4U2xeXFX/YKNx45RuHb8q/mdyUtKmrxLlkz2bSZunm3i2eWw6Wqpfmlw5uDdnatA3fVrTt
9fZF2y+XzSjbu4O2Q7mjvzy4vGWnyc7NOz9UpFT0VPpUNu7S3bVh1/hu0e4be7z2NOzV21u89/0+
yb7bVQFVTdVm1WX7Sfuz9z+uiarp+Jb7bV2tTm1x7ccD0gP9ByMOtte51NUd0j1UUo/WK+tHDscf
vv6d73ctDTYNVY2cxuIjcER55On3Cd/3Hg062naMe6zhB9Mfdh1nHS9qQprymkabU5r7W2Jbuk/M
PtHW6t56/EfbHw+cNDxZeUrzVMlp2umC05Nn8s+MnZWdfX4u+dxg26K2e+djzt9qD2/vuhB04dJF
/4vnO7w7zlzyuHTystvlE1e4V5qvOl9t6nTqPP6T00/Hu5y7mq65XGu57nq9tXtm9+kbnjfO3fS9
efEW/9bVnjk93b3zem/3xff13xbdfnIn/c7Lu9l3J+6tvE+8X/RA7UHZQ92H1T9b/tzY79x/asB3
oPPR3Ef3BoWDz/6R9Y8PQwWPmY/Lhg2G6544Pjk54j9y/en8p0PPZM8mnhf+ov7LrhcWL3741evX
ztGY0aGX8peTv218pf3qwOsZr9vGwsYevsl4MzFe9Fb77cF33Hcd76PfD0/kfCB/KP9o+bH1U9Cn
+5MZk5P/BAOY8/xjMy3bAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5Jf
xUYAAAAqSURBVAjXYzzBwCLGwMLLwMLGwMSAQCz/Udgs7AyMvxlYGBkY/zEwwqQAm3sGItqJpTIA
AAAASUVORK5CYIJQSwcIGcX00QQLAAD/CgAAUEsDBBQACAAIAFeaRTsAAAAAAAAAAAAAAAAjABAA
X19NQUNPU1gvcmVkdWN0aW9uL2l1aS8uX3RvZ2dsZS5wbmdVWAwAj3YRTAWpykr1ARQAY2AVY2dg
YmDwTUxW8A9WiFCAApAYAycQGwHxZiAG8Z8yEAUcQ0KCGNIYf0B1zABiXzQljAhx0eT8XL3EgoKc
VL3C0sSixLySzLxUhkJ9AyCwNkkyT0o2tjCwDk5MSyzKtHZyczQ3tnQ11zU2tTTXNTFwNtW1dDE1
0TV2s3A1NDE2NnW2cK5BGAjRxQAAUEsHCC5GZ+qNAAAA5QAAAFBLAwQUAAgACABXmkU7AAAAAAAA
AAAAAAAAGgAQAHJlZHVjdGlvbi9pdWkvdG9nZ2xlT24ucG5nVVgMAI92EUwFqcpK9QEUAOsM8HPn
5ZLiYmBg4PX0cAkC0oxArMLBBCSPix2PBlKSJa4RJcH5aSXliUWpDI4p+UmpCp65iempQamJKZWF
J1NtgIpcPV0cQzhkWQ82ch5yEHHY+L+oXbeptUzcvDRh8s799q9rLORe76ioXfP3mpSo6uJDHpMy
VaSmLgHSUioznbREZ6dtCdS6Kv+wm4klQOBeB9BABk9XP5d1TglNAFBLBwi8jBqBnwAAAKMAAABQ
SwMEFAAIAAgAV5pFOwAAAAAAAAAAAAAAACUAEABfX01BQ09TWC9yZWR1Y3Rpb24vaXVpLy5fdG9n
Z2xlT24ucG5nVVgMAI92EUwFqcpK9QEUAGNgFWNnYGJg8E1MVvAPVohQgAKQGAMnEBsB8WYgBvGf
MhAFHENCghjSGH9CdcwAYl80JYwIcdHk/Fy9xIKCnFS9wtLEosS8ksy8VIZCfQMgsDZJMk9KNrYw
sA5OTEssyrR2cnM0N7Z0Ndc1NrU01zUxcDbVtXQxNdE1drNwNTQxNjZ1tnCuQRgI0cUAAFBLBwjp
QAIKjQAAAOUAAABQSwMEFAAIAAgAV5pFOwAAAAAAAAAAAAAAABkAEAByZWR1Y3Rpb24vaXVpL3Rv
b2xiYXIucG5nVVgMAI92EUwFqcpK9QEUAOsM8HPn5ZLiYmBg4PX0cAkC0oxArM3BBCTNHEr7gJRk
iWtESXB+Wkl5YlEqg2NKflKqgmduYnpqUGpiSmXhyVQboCJfTxfHEI7rsT2GfA0OAkyc///PWrq1
tXXuXjf27rveemIsbEJb1sz+/niLyGSJU8ZGhglN92d6Gu/NfvWx1N7v/5SQ+fZyM49cunM68G2X
zEvmL2EFL76cC3gINJjB09XPZZ1TQhMAUEsHCCTkkluqAAAAqwAAAFBLAwQUAAgACABXmkU7AAAA
AAAAAAAAAAAAJAAQAF9fTUFDT1NYL3JlZHVjdGlvbi9pdWkvLl90b29sYmFyLnBuZ1VYDACPdhFM
BanKSvUBFABjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAfFmIAbxnzIQBRxDQoIY0hh/QXXMAGJf
NCWMCHHR5PxcvcSCgpxUvcLSxKLEvJLMvFSGQn0DILA2STJPSja2MLAOTkxLLMq0dnJzNDe2dDXX
NTa1NNc1MXA21bV0MTXRNXazcDU0MTY2dbZwrkEYCNHFAABQSwcI4U3c8Y0AAADlAAAAUEsDBBQA
CAAIAFeaRTsAAAAAAAAAAAAAAAAcABAAcmVkdWN0aW9uL2l1aS90b29sQnV0dG9uLnBuZ1VYDACP
dhFMBanKSvUBFAABEwLs/YlQTkcNChoKAAAADUlIRFIAAAAQAAAAHggCAAAAqpsJRgAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG1SURBVHjalJRLS8NAFIUnyU0aU5OWWtRQ
H8UubAVbXwu7UHTnL/AvuhVEcedCQRFBsBtB6wORKrZUbUzTNHfira6sgpPDQJiZ83HuwM2VtnaP
GWP3d9Wz48Na7fGj9c5+Km5atp1ZKq9MZnO0Bc7Dk8ODysV5Ll/MTi8ag2Yf4DqtZuNpf2d7tji/
vLIOtzfXVzdXqxubA4OWqmqyovQBVgqH7IlMNn96tGePTyhWariwsJZMj0qyEjJGgX2LDulK0w0z
ka6cHYGsxq3kcNDl7D+RTQIDNMNEzpAjE1AsboEMWhcDJiYyAyLzBer5FpkJQAxQGEAIkPvCAJkB
eUgf0QQe9hK6AY+UwAMUfgPnwDFEDAUBMkdPcNyO9t4WBMgMTOpJECCzzCIKpB4mHEDtFDnhCxOO
YBJQPVHeHL2k6IAKQL+6iDUMOYAiJxNG0PWEWtX3UklTLs7k3FaD+H8DyFYqTMkK6HP5sbeXB99z
+F/TgA7pigxkYxAD1+tk7JHRdKpyWX2uv3hepw/Q9dhIOjE7V1JUtfHqAE22etMxdK28VBzQNfg1
Kqn5255PVtdxaPspwAAe9eMBsNOmTgAAAABJRU5ErkJgglBLBwjkcgcPGAIAABMCAABQSwMEFAAI
AAgAV5pFOwAAAAAAAAAAAAAAACcAEABfX01BQ09TWC9yZWR1Y3Rpb24vaXVpLy5fdG9vbEJ1dHRv
bi5wbmdVWAwAj3YRTAWpykr1ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwHxZiAG8Z8yEAUc
Q0KCGNIYf0N1zABiXzQljAhx0eT8XL3EgoKcVL3C0sSixLySzLxUhkJ9AyCwNkkyT0o2tjCwDk5M
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
EUx/dBFMUEsBAhUDFAAIAAgAJoTKPEPZrg/jAAAAPAEAABUADAAAAAAAAAAAQKSBYAIAAHJlZHVj
dGlvbi9pZnJhbWUuaHRtbFVYCACPdhFMOHYRTFBLAQIVAxQACAAIACaEyjwQ0slKKwAAAFIAAAAg
AAwAAAAAAAAAAECkgZYDAABfX01BQ09TWC9yZWR1Y3Rpb24vLl9pZnJhbWUuaHRtbFVYCACPdhFM
OHYRTFBLAQIVAwoAAAAAADlvdzwAAAAAAAAAAAAAAAAOAAwAAAAAAAAAAEDtQR8EAAByZWR1Y3Rp
b24vaXVpL1VYCAB6dBFMTSupS1BLAQIVAxQACAAIADlvdzxqAIhtsgAAAAQYAAAXAAwAAAAAAAAA
AECkgVsEAAByZWR1Y3Rpb24vaXVpLy5EU19TdG9yZVVYCACPdhFMTiupS1BLAQIVAwoAAAAAAFSE
yjwAAAAAAAAAAAAAAAAXAAwAAAAAAAAAAED9QWIFAABfX01BQ09TWC9yZWR1Y3Rpb24vaXVpL1VY
CACPdhFMj3YRTFBLAQIVAxQACAAIADlvdzzckY+4KAAAAFIAAAAiAAwAAAAAAAAAAECkgacFAABf
X01BQ09TWC9yZWR1Y3Rpb24vaXVpLy5fLkRTX1N0b3JlVVgIAI92EUxOK6lLUEsBAhUDFAAIAAgA
V5pFO3ODIGI1AwAAMAMAABwADAAAAAAAAAAAQKSBLwYAAHJlZHVjdGlvbi9pdWkvYmFja0J1dHRv
bi5wbmdVWAgAj3YRTAWpykpQSwECFQMUAAgACABXmkU7wwnnIQoCAAAFAgAAHAAMAAAAAAAAAABA
pIG+CQAAcmVkdWN0aW9uL2l1aS9ibHVlQnV0dG9uLnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAI
AFeaRTtWGL83jQAAAOUAAAAnAAwAAAAAAAAAAECkgSIMAABfX01BQ09TWC9yZWR1Y3Rpb24vaXVp
Ly5fYmx1ZUJ1dHRvbi5wbmdVWAgAj3YRTAWpykpQSwECFQMUAAgACABXmkU7YNu+n28BAABqAQAA
GAAMAAAAAAAAAABApIEUDQAAcmVkdWN0aW9uL2l1aS9jYW5jZWwucG5nVVgIAI92EUwFqcpKUEsB
AhUDFAAIAAgAV5pFO5Ee2teNAAAA5QAAACMADAAAAAAAAAAAQKSB2Q4AAF9fTUFDT1NYL3JlZHVj
dGlvbi9pdWkvLl9jYW5jZWwucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFOyPx9z20AwAA
rwMAABwADAAAAAAAAAAAQKSBxw8AAHJlZHVjdGlvbi9pdWkvZ3JheUJ1dHRvbi5wbmdVWAgAj3YR
TAWpykpQSwECFQMUAAgACABXmkU7mRMELI0AAADlAAAAJwAMAAAAAAAAAABApIHVEwAAX19NQUNP
U1gvcmVkdWN0aW9uL2l1aS8uX2dyYXlCdXR0b24ucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgA
V5pFO9cgmKtMCwAARwsAACUADAAAAAAAAAAAQKSBxxQAAHJlZHVjdGlvbi9pdWkvaXVpLWxvZ28t
dG91Y2gtaWNvbi5wbmdVWAgAj3YRTAWpykpQSwECFQMUAAgACABXmkU7XhVhzI0AAADlAAAAMAAM
AAAAAAAAAABApIF2IAAAX19NQUNPU1gvcmVkdWN0aW9uL2l1aS8uX2l1aS1sb2dvLXRvdWNoLWlj
b24ucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFOzCw8PpMBwAA6yAAABUADAAAAAAAAAAA
QKSBcSEAAHJlZHVjdGlvbi9pdWkvaXVpLmNzc1VYCACPdhFMBanKSlBLAQIVAxQACAAIAFeaRTtO
zj2GpA0AAJ8rAAAUAAwAAAAAAAAAAECkgRApAAByZWR1Y3Rpb24vaXVpL2l1aS5qc1VYCACPdhFM
BanKSlBLAQIVAxQACAAIAAObRTsvycAagAYAAHMXAAAWAAwAAAAAAAAAAECkgQY3AAByZWR1Y3Rp
b24vaXVpL2l1aXguY3NzVVgIAI92EUxGqspKUEsBAhUDFAAIAAgAA5tFOwcEchuNAAAA5QAAACEA
DAAAAAAAAAAAQKSB2j0AAF9fTUFDT1NYL3JlZHVjdGlvbi9pdWkvLl9pdWl4LmNzc1VYCACPdhFM
RqrKSlBLAQIVAxQACAAIAAObRTtV8WQK/woAAKEdAAAVAAwAAAAAAAAAAECkgcY+AAByZWR1Y3Rp
b24vaXVpL2l1aXguanNVWAgAj3YRTEWqykpQSwECFQMUAAgACAADm0U7wAIX+40AAADlAAAAIAAM
AAAAAAAAAABApIEYSgAAX19NQUNPU1gvcmVkdWN0aW9uL2l1aS8uX2l1aXguanNVWAgAj3YRTEWq
ykpQSwECFQMUAAgACABXmkU7Et1pcwUBAAADAQAAGwAMAAAAAAAAAABApIEDSwAAcmVkdWN0aW9u
L2l1aS9saXN0QXJyb3cucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFOxJpi4SNAAAA5QAA
ACYADAAAAAAAAAAAQKSBYUwAAF9fTUFDT1NYL3JlZHVjdGlvbi9pdWkvLl9saXN0QXJyb3cucG5n
VVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFO3xhVLs5AQAANAEAAB4ADAAAAAAAAAAAQKSBUk0A
AHJlZHVjdGlvbi9pdWkvbGlzdEFycm93U2VsLnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAIAFea
RTvVb+5kjQAAAOUAAAApAAwAAAAAAAAAAECkgedOAABfX01BQ09TWC9yZWR1Y3Rpb24vaXVpLy5f
bGlzdEFycm93U2VsLnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAIAFeaRTvphP9iOAsAADMLAAAb
AAwAAAAAAAAAAECkgdtPAAByZWR1Y3Rpb24vaXVpL2xpc3RHcm91cC5wbmdVWAgAj3YRTAWpykpQ
SwECFQMUAAgACABXmkU73WIwn40AAADlAAAAJgAMAAAAAAAAAABApIFsWwAAX19NQUNPU1gvcmVk
dWN0aW9uL2l1aS8uX2xpc3RHcm91cC5wbmdVWAgAj3YRTAWpykpQSwECFQMUAAgACABXmkU71/Sw
tQoFAACbBQAAGQAMAAAAAAAAAABApIFdXAAAcmVkdWN0aW9uL2l1aS9sb2FkaW5nLmdpZlVYCACP
dhFMBanKSlBLAQIVAxQACAAIAFeaRTsaZFV/jQAAAOUAAAAkAAwAAAAAAAAAAECkgb5hAABfX01B
Q09TWC9yZWR1Y3Rpb24vaXVpLy5fbG9hZGluZy5naWZVWAgAj3YRTAWpykpQSwECFQMUAAgACABX
mkU76vriTHAAAAB1AAAAHAAMAAAAAAAAAABApIGtYgAAcmVkdWN0aW9uL2l1aS9waW5zdHJpcGVz
LnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAIAFeaRTuMfv2zjQAAAOUAAAAnAAwAAAAAAAAAAECk
gXdjAABfX01BQ09TWC9yZWR1Y3Rpb24vaXVpLy5fcGluc3RyaXBlcy5wbmdVWAgAj3YRTAWpykpQ
SwECFQMUAAgACABXmkU7AX4wvrgDAACzAwAAGwAMAAAAAAAAAABApIFpZAAAcmVkdWN0aW9uL2l1
aS9yZWRCdXR0b24ucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFO0t4mFONAAAA5QAAACYA
DAAAAAAAAAAAQKSBemgAAF9fTUFDT1NYL3JlZHVjdGlvbi9pdWkvLl9yZWRCdXR0b24ucG5nVVgI
AI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFO1EQAnmeAAAAnwAAABsADAAAAAAAAAAAQKSBa2kAAHJl
ZHVjdGlvbi9pdWkvc2VsZWN0aW9uLnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAIAFeaRTtDdUao
jQAAAOUAAAAmAAwAAAAAAAAAAECkgWJqAABfX01BQ09TWC9yZWR1Y3Rpb24vaXVpLy5fc2VsZWN0
aW9uLnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAIAFeaRTs5Z3tRGAsAABMLAAAXAAwAAAAAAAAA
AECkgVNrAAByZWR1Y3Rpb24vaXVpL3RodW1iLnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAIAFea
RTuEcyNIjQAAAOUAAAAiAAwAAAAAAAAAAECkgcB2AABfX01BQ09TWC9yZWR1Y3Rpb24vaXVpLy5f
dGh1bWIucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFOxnF9NEECwAA/woAABgADAAAAAAA
AAAAQKSBrXcAAHJlZHVjdGlvbi9pdWkvdG9nZ2xlLnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAI
AFeaRTsuRmfqjQAAAOUAAAAjAAwAAAAAAAAAAECkgQeDAABfX01BQ09TWC9yZWR1Y3Rpb24vaXVp
Ly5fdG9nZ2xlLnBuZ1VYCACPdhFMBanKSlBLAQIVAxQACAAIAFeaRTu8jBqBnwAAAKMAAAAaAAwA
AAAAAAAAAECkgfWDAAByZWR1Y3Rpb24vaXVpL3RvZ2dsZU9uLnBuZ1VYCACPdhFMBanKSlBLAQIV
AxQACAAIAFeaRTvpQAIKjQAAAOUAAAAlAAwAAAAAAAAAAECkgeyEAABfX01BQ09TWC9yZWR1Y3Rp
b24vaXVpLy5fdG9nZ2xlT24ucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFOyTkkluqAAAA
qwAAABkADAAAAAAAAAAAQKSB3IUAAHJlZHVjdGlvbi9pdWkvdG9vbGJhci5wbmdVWAgAj3YRTAWp
ykpQSwECFQMUAAgACABXmkU74U3c8Y0AAADlAAAAJAAMAAAAAAAAAABApIHdhgAAX19NQUNPU1gv
cmVkdWN0aW9uL2l1aS8uX3Rvb2xiYXIucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFO+Ry
Bw8YAgAAEwIAABwADAAAAAAAAAAAQKSBzIcAAHJlZHVjdGlvbi9pdWkvdG9vbEJ1dHRvbi5wbmdV
WAgAj3YRTAWpykpQSwECFQMUAAgACABXmkU7Jku5EY0AAADlAAAAJwAMAAAAAAAAAABApIE+igAA
X19NQUNPU1gvcmVkdWN0aW9uL2l1aS8uX3Rvb2xCdXR0b24ucG5nVVgIAI92EUwFqcpKUEsBAhUD
FAAIAAgAV5pFO+y3CbbXAwAA0gMAAB0ADAAAAAAAAAAAQKSBMIsAAHJlZHVjdGlvbi9pdWkvd2hp
dGVCdXR0b24ucG5nVVgIAI92EUwFqcpKUEsBAhUDFAAIAAgAV5pFO7BREd2NAAAA5QAAACgADAAA
AAAAAAAAQKSBYo8AAF9fTUFDT1NYL3JlZHVjdGlvbi9pdWkvLl93aGl0ZUJ1dHRvbi5wbmdVWAgA
j3YRTAWpykpQSwECFQMUAAgACAA5b3c89CAlbo0AAADlAAAAGAAMAAAAAAAAAABApIFVkAAAX19N
QUNPU1gvcmVkdWN0aW9uLy5faXVpVVgIAHp0EUxNK6lLUEsBAhUDFAAIAAgAsIPKPERPo42tBQAA
wRQAABMADAAAAAAAAAAAQKSBOJEAAHJlZHVjdGlvbi90ZXN0Lmh0bWxVWAgAj3YRTFx1EUxQSwEC
FQMUAAgACACwg8o8ENLJSisAAABSAAAAHgAMAAAAAAAAAABApIE2lwAAX19NQUNPU1gvcmVkdWN0
aW9uLy5fdGVzdC5odG1sVVgIAI92EUxcdRFMUEsFBgAAAAA3ADcAsxIAAL2XAAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>58496</attachid>
            <date>2010-06-11 12:37:07 -0700</date>
            <delta_ts>2010-06-11 12:42:28 -0700</delta_ts>
            <desc>reduced test case</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>327</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">PGJvZHk+CjxzY3JpcHQ+CnZhciBhc19mcmFtZSA9IGxvY2F0aW9uLnNlYXJjaCA9PSAiP2ZyYW1l
IjsKaWYgKGFzX2ZyYW1lKSB7CiAgZnVuY3Rpb24gbmF2aWdhdGUoKSB7CiAgICBsb2NhdGlvbi5o
YXNoID0gJyNmb28nOwogICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiZm9vIjsKICB9CiAg
ZG9jdW1lbnQud3JpdGUoJzxidXR0b24gb25jbGljaz0ibmF2aWdhdGUoKSI+bmF2aWdhdGU8L2J1
dHRvbj4nKTsKfSBlbHNlIHsKICBkb2N1bWVudC53cml0ZSgnPGlmcmFtZSBzcmM9InRlc3QuaHRt
bD9mcmFtZSI+PC9pZnJhbWU+Jyk7Cn0KPC9zY3JpcHQ+CjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>58498</attachid>
            <date>2010-06-11 12:42:28 -0700</date>
            <delta_ts>2010-06-11 12:42:28 -0700</delta_ts>
            <desc>reduced test case (v2)</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>354</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">PGJvZHk+CjxzY3JpcHQ+CnZhciBhc19mcmFtZSA9IGxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJm
cmFtZT0xIikgIT0gLTE7CmlmIChhc19mcmFtZSkgewogIGZ1bmN0aW9uIG5hdmlnYXRlKCkgewog
ICAgbG9jYXRpb24uaGFzaCA9ICcjZm9vJzsKICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0g
ImZvbyI7CiAgfQogIGRvY3VtZW50LndyaXRlKCc8YnV0dG9uIG9uY2xpY2s9Im5hdmlnYXRlKCki
Pm5hdmlnYXRlPC9idXR0b24+Jyk7Cn0gZWxzZSB7CiAgZG9jdW1lbnQud3JpdGUoJzxpZnJhbWUg
c3JjPSInICsgbG9jYXRpb24uaHJlZiArICcmZnJhbWU9MSI+PC9pZnJhbWU+Jyk7Cn0KPC9zY3Jp
cHQ+CjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58518</attachid>
            <date>2010-06-11 15:50:14 -0700</date>
            <delta_ts>2010-06-11 16:06:27 -0700</delta_ts>
            <desc>v1 patch</desc>
            <filename>item-sn-1.txt</filename>
            <type>text/plain</type>
            <size>15281</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjEwNDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNi0xMSAgRGFyaW4gRmlzaGVyICA8
ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3QgdGhhdCBhIGJhY2sgbmF2aWdhdGlvbiBmb2xsb3dpbmcgYSBzdWJm
cmFtZSByZWZlcmVuY2UgZnJhZ21lbnQKKyAgICAgICAgbmF2aWdhdGlvbiBkb2VzIHRoZSByaWdo
dCB0aGluZy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDA0NTEKKworICAgICAgICAqIGZhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1
YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9yZXNvdXJjZXMvaGlz
dG9yeS1iYWNrLXdpdGhpbi1zdWJmcmFtZS0yLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA2LTExICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBiYXNlbGluZXMgZm9yIG5ldyB0ZXN0IG9uIFF0L0d0ay4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLmh0bWwNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdpdGhpbi1zdWJmcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3Rvcnkt
YmFjay13aXRoaW4tc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAor
PGJvZHk+Cis8c2NyaXB0Pgorb25sb2FkID0gZnVuY3Rpb24oKSB7CisgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICB9Cit9Cis8
L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaGlzdG9yeS1iYWNrLXdpdGhpbi1zdWJm
cmFtZS0yLmh0bWwiPjwvaWZyYW1lPgorPGRpdiBpZD0icmVzdWx0Ij5GQUlMPC9kaXY+Cis8L2Jv
ZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL2hpc3RvcnktYmFj
ay13aXRoaW4tc3ViZnJhbWUtMi5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3Jlc291cmNlcy9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLTIuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvaGlzdG9y
eS1iYWNrLXdpdGhpbi1zdWJmcmFtZS0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcg
QEAKKzxzY3JpcHQ+CitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICBsb2NhdGlvbi5oYXNoID0gIiNmb28iOworICB9LCAwKTsKK30KK29uaGFzaGNo
YW5nZSA9IGZ1bmN0aW9uKCkgeworICBpZiAobG9jYXRpb24uaGFzaCA9PSAiI2ZvbyIpIHsKKyAg
ICBoaXN0b3J5LmJhY2soKTsKKyAgfQorICBpZiAobG9jYXRpb24uaGFzaCA9PSAiIikgeworICAg
IHBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gIlBB
U1MiOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgIH0KK30KKzwvc2NyaXB0PgpJbmRleDogV2Vi
Q29yZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gNjEwNDEpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDQ0IEBACisyMDEwLTA2LTExICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNl
IEhpc3RvcnlJdGVtOjppdGVtU2VxdWVuY2VOdW1iZXIgYW5kIHVzZSBpdCB0byBpZGVudGlmeQor
ICAgICAgICBIaXN0b3J5SXRlbXMgdGhhdCBhcmUgY2xvbmVzIG9mIG9uZSBhbm90aGVyLgorCisg
ICAgICAgIENoYW5nZXMgSGlzdG9yeUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtIHRvIHVz
ZSBpdGVtU2VxdWVuY2VOdW1iZXIKKyAgICAgICAgZXF1YWxpdHkgaW5zdGVhZCBvZiBpc1Rhcmdl
dEl0ZW0gYXMgdGhlIHByZS1yZXF1aXNpdGUgZm9yIG5vdCBjYWxsaW5nCisgICAgICAgIEZyYW1l
TG9hZGVyOjpsb2FkSXRlbS4KKworICAgICAgICBDaGFuZ2VzIEZyYW1lTG9hZGVyOjpsb2FkSXRl
bSB0byByZXF1aXJlIGVxdWl2YWxlbnQKKyAgICAgICAgZG9jdW1lbnRTZXF1ZW5jZU51bWJlciBi
ZWZvcmUgaW5pdGlhdGluZyBhIHNhbWUgZG9jdW1lbnQgbmF2aWdhdGlvbi4KKyAgICAgICAgVGhp
cyBhbG9uZSB3b3VsZCBhcHBlYXIgdG8gZml4IHRoZSBidWcsIGJ1dCBpdCBkb2VzIG5vdCBnbyBm
YXIgZW5vdWdoCisgICAgICAgIHNpbmNlIHdpdGhvdXQgdGhlIGl0ZW1TZXF1ZW5jZU51bWJlciBl
cXVhbGl0eSBjaGVjaywgd2UnZCByZS1sb2FkIG1vcmUKKyAgICAgICAgb2Z0ZW4gdGhhbiB3ZSBz
aG91bGQuCisKKyAgICAgICAgTW92ZXMgZG9jdW1lbnRTZXF1ZW5jZU51bWJlciBhc3NpZ25tZW50
IGludG8gY3JlYXRlSXRlbVRyZWUgYXMgY2xlYW51cAorICAgICAgICBhbmQgdG8gZW5zdXJlIHRo
YXQgaXQgZ2V0cyBjYWxsZWQgcHJvcGVybHkgd2hlbmV2ZXIgd2UgY3JlYXRlIGEgY2xvbmVkCisg
ICAgICAgIEhpc3RvcnlJdGVtLiAgKGNyZWF0ZUl0ZW1UcmVlJ3MgbWlzc2lvbiBpcyB0byBjcmVh
dGUgY2xvbmVzIHVwIHVudGlsCisgICAgICAgIG9yIGluY2x1ZGluZyB0aGUgdGFyZ2V0IGZyYW1l
IGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdGhlIGRvQ2xpcAorICAgICAgICBwYXJhbWV0ZXIu
KQorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDQ1
MQorCisgICAgICAgIFRlc3Q6IGZhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZy
YW1lLmh0bWwKKworICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Z2VuZXJhdGVTZXF1ZW5jZU51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpIaXN0
b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoK
KyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpzZXRJdGVtU2VxdWVuY2VOdW1iZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06Oml0ZW1TZXF1ZW5jZU51bWJlcik6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpsb2FkSXRlbSk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjp1cGRhdGVCYWNrRm9yd2FyZExp
c3RGb3JGcmFnbWVudFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxl
cjo6Y3JlYXRlSXRlbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6
OnJlY3Vyc2l2ZUdvVG9JdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVy
OjpwdXNoU3RhdGUpOgorCiAyMDEwLTA2LTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjEwMzYu
CkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAkocmV2aXNpb24gNjA5NzgpCisrKyBXZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGxvbmcgbG9uZyBnZW5lcmF0ZURv
Y3VtZW50U2VxdWVuY2VOdW1iZXIoKQorc3RhdGljIGxvbmcgbG9uZyBnZW5lcmF0ZVNlcXVlbmNl
TnVtYmVyKCkKIHsKICAgICAvLyBJbml0aWFsaXplIHRvIHRoZSBjdXJyZW50IHRpbWUgdG8gcmVk
dWNlIHRoZSBsaWtlbGlob29kIG9mIGdlbmVyYXRpbmcKICAgICAvLyBpZGVudGlmaWVycyB0aGF0
IG92ZXJsYXAgd2l0aCB0aG9zZSBmcm9tIHBhc3QvZnV0dXJlIGJyb3dzZXIgc2Vzc2lvbnMuCkBA
IC01Nyw3ICs1Nyw4IEBAIEhpc3RvcnlJdGVtOjpIaXN0b3J5SXRlbSgpCiAgICAgLCBtX2xhc3RW
aXNpdFdhc0ZhaWx1cmUoZmFsc2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAs
IG1fdmlzaXRDb3VudCgwKQotICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRl
RG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2Vu
ZXJhdGVTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdl
bmVyYXRlU2VxdWVuY2VOdW1iZXIoKSkKIHsKIH0KIApAQCAtNzAsNyArNzEsOCBAQCBIaXN0b3J5
SXRlbTo6SGlzdG9yeUl0ZW0oY29uc3QgU3RyaW5nJiB1CiAgICAgLCBtX2xhc3RWaXNpdFdhc0Zh
aWx1cmUoZmFsc2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAsIG1fdmlzaXRD
b3VudCgwKQotICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlRG9jdW1lbnRT
ZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2VuZXJhdGVTZXF1
ZW5jZU51bWJlcigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2Vx
dWVuY2VOdW1iZXIoKSkKIHsgICAgCiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQ
YWdlVVJMKG1fdXJsU3RyaW5nKTsKIH0KQEAgLTg1LDcgKzg3LDggQEAgSGlzdG9yeUl0ZW06Okhp
c3RvcnlJdGVtKGNvbnN0IFN0cmluZyYgdQogICAgICwgbV9sYXN0VmlzaXRXYXNGYWlsdXJlKGZh
bHNlKQogICAgICwgbV9pc1RhcmdldEl0ZW0oZmFsc2UpCiAgICAgLCBtX3Zpc2l0Q291bnQoMCkK
LSAgICAsIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZURvY3VtZW50U2VxdWVuY2VO
dW1iZXIoKSkKKyAgICAsIG1faXRlbVNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VOdW1i
ZXIoKSkKKyAgICAsIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZVNlcXVlbmNlTnVt
YmVyKCkpCiB7CiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdlVVJMKG1fdXJs
U3RyaW5nKTsKIH0KQEAgLTEwMSw3ICsxMDQsOCBAQCBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0o
Y29uc3QgS1VSTCYgdXJsCiAgICAgLCBtX2xhc3RWaXNpdFdhc0ZhaWx1cmUoZmFsc2UpCiAgICAg
LCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAsIG1fdmlzaXRDb3VudCgwKQotICAgICwgbV9k
b2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlRG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKQor
ICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2VuZXJhdGVTZXF1ZW5jZU51bWJlcigpKQorICAg
ICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIoKSkKIHsg
ICAgCiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdlVVJMKG1fdXJsU3RyaW5n
KTsKIH0KQEAgLTEzMyw3ICsxMzcsOCBAQCBpbmxpbmUgSGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVt
KGNvbnN0IEhpCiAgICAgLCBtX3Zpc2l0Q291bnQoaXRlbS5tX3Zpc2l0Q291bnQpCiAgICAgLCBt
X2RhaWx5VmlzaXRDb3VudHMoaXRlbS5tX2RhaWx5VmlzaXRDb3VudHMpCiAgICAgLCBtX3dlZWts
eVZpc2l0Q291bnRzKGl0ZW0ubV93ZWVrbHlWaXNpdENvdW50cykKLSAgICAsIG1fZG9jdW1lbnRT
ZXF1ZW5jZU51bWJlcihnZW5lcmF0ZURvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSkKKyAgICAsIG1f
aXRlbVNlcXVlbmNlTnVtYmVyKGl0ZW0ubV9pdGVtU2VxdWVuY2VOdW1iZXIpCisgICAgLCBtX2Rv
Y3VtZW50U2VxdWVuY2VOdW1iZXIoaXRlbS5tX2RvY3VtZW50U2VxdWVuY2VOdW1iZXIpCiAgICAg
LCBtX2Zvcm1Db250ZW50VHlwZShpdGVtLm1fZm9ybUNvbnRlbnRUeXBlKQogewogICAgIGlmIChp
dGVtLm1fZm9ybURhdGEpCkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCShyZXZpc2lvbiA2MDk3
OCkKKysrIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzYsNiArMTM2LDkgQEAgcHVibGljOiAKICAgICB2b2lkIHNldFN0YXRlT2JqZWN0KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBvYmplY3QpOwogICAgIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSogc3RhdGVPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlT2JqZWN0LmdldCgpOyB9
CiAKKyAgICB2b2lkIHNldEl0ZW1TZXF1ZW5jZU51bWJlcihsb25nIGxvbmcgbnVtYmVyKSB7IG1f
aXRlbVNlcXVlbmNlTnVtYmVyID0gbnVtYmVyOyB9CisgICAgbG9uZyBsb25nIGl0ZW1TZXF1ZW5j
ZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1faXRlbVNlcXVlbmNlTnVtYmVyOyB9CisKICAgICB2
b2lkIHNldERvY3VtZW50U2VxdWVuY2VOdW1iZXIobG9uZyBsb25nIG51bWJlcikgeyBtX2RvY3Vt
ZW50U2VxdWVuY2VOdW1iZXIgPSBudW1iZXI7IH0KICAgICBsb25nIGxvbmcgZG9jdW1lbnRTZXF1
ZW5jZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcjsgfQog
ICAgIApAQCAtMjQyLDYgKzI0NSw4IEBAIHByaXZhdGU6CiAKICAgICBPd25QdHI8VmVjdG9yPFN0
cmluZz4gPiBtX3JlZGlyZWN0VVJMczsKIAorICAgIGxvbmcgbG9uZyBtX2l0ZW1TZXF1ZW5jZU51
bWJlcjsKKwogICAgIC8vIFN1cHBvcnQgZm9yIEhUTUw1IEhpc3RvcnkKICAgICBSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBtX3N0YXRlT2JqZWN0OwogICAgIGxvbmcgbG9uZyBtX2RvY3Vt
ZW50U2VxdWVuY2VOdW1iZXI7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9u
IDYwOTc4KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNTQyLDE0ICszNTQyLDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6Om5hdmlnYXRlVG9EaWZm
ZXJlbnREb2MKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtKiBpdGVtLCBG
cmFtZUxvYWRUeXBlIGxvYWRUeXBlKQogewogICAgIC8vIFdlIGRvIHNhbWUtZG9jdW1lbnQgbmF2
aWdhdGlvbiBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOgotICAgIC8vIC0gVGhlIEhpc3RvcnlJdGVt
IGhhcyBhIGhpc3Rvcnkgc3RhdGUgb2JqZWN0Ci0gICAgLy8gLSBOYXZpZ2F0aW5nIHRvIGFuIGFu
Y2hvciB3aXRoaW4gdGhlIHBhZ2UsIHdpdGggbm8gZm9ybSBkYXRhIHN0b3JlZCBvbiB0aGUgdGFy
Z2V0IGl0ZW0gb3IgdGhlIGN1cnJlbnQgaGlzdG9yeSBlbnRyeSwKLSAgICAvLyAgIGFuZCB0aGUg
VVJMcyBpbiB0aGUgZnJhbWUgdHJlZSBtYXRjaCB0aGUgaGlzdG9yeSBpdGVtIGZvciBmcmFnbWVu
dCBzY3JvbGxpbmcuCi0gICAgLy8gLSBUaGUgSGlzdG9yeUl0ZW0gaXMgbm90IHRoZSBzYW1lIGFz
IHRoZSBjdXJyZW50IGl0ZW0sIGJlY2F1c2Ugc3VjaCBjYXNlcyBhcmUgdHJlYXRlZCBhcyBhIG5l
dyBsb2FkLgorICAgIC8vIC0gVGhlIEhpc3RvcnlJdGVtIGNvcnJlc3BvbmRzIHRvIHRoZSBzYW1l
IGRvY3VtZW50LgorICAgIC8vIC0gVGhlIEhpc3RvcnlJdGVtIGlzIG5vdCB0aGUgc2FtZSBhcyB0
aGUgY3VycmVudCBpdGVtLgogICAgIEhpc3RvcnlJdGVtKiBjdXJyZW50SXRlbSA9IGhpc3Rvcnko
KS0+Y3VycmVudEl0ZW0oKTsKLSAgICBib29sIHNhbWVEb2N1bWVudE5hdmlnYXRpb24gPSAoKCFp
dGVtLT5mb3JtRGF0YSgpICYmICEoY3VycmVudEl0ZW0gJiYgY3VycmVudEl0ZW0tPmZvcm1EYXRh
KCkpICYmIGhpc3RvcnkoKS0+dXJsc01hdGNoSXRlbShpdGVtKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8fCAoY3VycmVudEl0ZW0gJiYgaXRlbS0+ZG9jdW1lbnRTZXF1ZW5j
ZU51bWJlcigpID09IGN1cnJlbnRJdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGl0ZW0gIT0gY3VycmVudEl0ZW07Cisg
ICAgYm9vbCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uID0gY3VycmVudEl0ZW0gJiYgaXRlbSAhPSBj
dXJyZW50SXRlbQorICAgICAgICAmJiBpdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkgPT0g
Y3VycmVudEl0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKTsKIAogI2lmIEVOQUJMRShXTUwp
CiAgICAgLy8gQWxsIFdNTCBkZWNrcyBzaG91bGQgZ28gdGhyb3VnaCB0aGUgcmVhbCBsb2FkIG1l
Y2hhbmlzbSwgbm90IHRoZSBzY3JvbGwtdG8tYW5jaG9yIGNvZGUKSW5kZXg6IFdlYkNvcmUvbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNjA5NzgpCisrKyBXZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwxNCArMTA2LDYg
QEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvcwogdm9pZCBIaXN0b3J5
Q29udHJvbGxlcjo6dXBkYXRlQmFja0ZvcndhcmRMaXN0Rm9yRnJhZ21lbnRTY3JvbGwoKQogewog
ICAgIHVwZGF0ZUJhY2tGb3J3YXJkTGlzdENsaXBwZWRBdFRhcmdldChmYWxzZSk7Ci0gICAgCi0g
ICAgLy8gU2luY2UgdGhlIGRvY3VtZW50IGlzbid0IGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgYSBm
cmFnbWVudCBzY3JvbGwsIHdlIHNob3VsZAotICAgIC8vIHByZXNlcnZlIHRoZSBEb2N1bWVudFNl
cXVlbmNlTnVtYmVyIG9mIHRoZSBwcmV2aW91cyBpdGVtLgotICAgIGlmICghbV9wcmV2aW91c0l0
ZW0pCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChtX2N1cnJlbnRJdGVtKTsKLSAgICBt
X2N1cnJlbnRJdGVtLT5zZXREb2N1bWVudFNlcXVlbmNlTnVtYmVyKG1fcHJldmlvdXNJdGVtLT5k
b2N1bWVudFNlcXVlbmNlTnVtYmVyKCkpOwogfQogCiB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpz
YXZlRG9jdW1lbnRTdGF0ZSgpCkBAIC01MjEsOSArNTEzLDIxIEBAIFBhc3NSZWZQdHI8SGlzdG9y
eUl0ZW0+IEhpc3RvcnlDb250cm9sbGUKICAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IGJmSXRlbSA9
IGNyZWF0ZUl0ZW0obV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSA/IHRydWUgOiBmYWxzZSk7CiAg
ICAgaWYgKG1fcHJldmlvdXNJdGVtKQogICAgICAgICBzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3
U3RhdGVUb0l0ZW0obV9wcmV2aW91c0l0ZW0uZ2V0KCkpOwotICAgIGlmICghKGNsaXBBdFRhcmdl
dCAmJiBtX2ZyYW1lID09IHRhcmdldEZyYW1lKSkgeworCisgICAgaWYgKCFjbGlwQXRUYXJnZXQg
fHwgbV9mcmFtZSAhPSB0YXJnZXRGcmFtZSkgewogICAgICAgICAvLyBzYXZlIGZyYW1lIHN0YXRl
IGZvciBpdGVtcyB0aGF0IGFyZW4ndCBsb2FkaW5nIChraHRtbCBkb2Vzbid0IHNhdmUgdGhvc2Up
CiAgICAgICAgIHNhdmVEb2N1bWVudFN0YXRlKCk7CisKKyAgICAgICAgLy8gY2xpcEF0VGFyZ2V0
IGlzIGZhbHNlIGZvciBuYXZpZ2F0aW9ucyB3aXRoaW4gdGhlIHNhbWUgZG9jdW1lbnQsIHNvCisg
ICAgICAgIC8vIHdlIHNob3VsZCBjb3B5IHRoZSBkb2N1bWVudFNlcXVlbmNlTnVtYmVyIG92ZXIg
dG8gdGhlIG5ld2x5IGNyZWF0ZQorICAgICAgICAvLyBpdGVtLiAgTm9uLXRhcmdldCBpdGVtcyBh
cmUganVzdCBjbG9uZXMsIGFuZCB0aGV5IHNob3VsZCB0aGVyZWZvcmUKKyAgICAgICAgLy8gcHJl
c2VydmUgdGhlIHNhbWUgaXRlbVNlcXVlbmNlTnVtYmVyLgorICAgICAgICBpZiAobV9wcmV2aW91
c0l0ZW0pIHsKKyAgICAgICAgICAgIGlmIChtX2ZyYW1lICE9IHRhcmdldEZyYW1lKQorICAgICAg
ICAgICAgICAgIGJmSXRlbS0+c2V0SXRlbVNlcXVlbmNlTnVtYmVyKG1fcHJldmlvdXNJdGVtLT5p
dGVtU2VxdWVuY2VOdW1iZXIoKSk7CisgICAgICAgICAgICBiZkl0ZW0tPnNldERvY3VtZW50U2Vx
dWVuY2VOdW1iZXIobV9wcmV2aW91c0l0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSk7Cisg
ICAgICAgIH0KKwogICAgICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IG1fZnJhbWUtPnRyZWUoKS0+
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygp
KSB7CiAgICAgICAgICAgICBGcmFtZUxvYWRlciogY2hpbGRMb2FkZXIgPSBjaGlsZC0+bG9hZGVy
KCk7CiAgICAgICAgICAgICBib29sIGhhc0NoaWxkTG9hZGVkID0gY2hpbGRMb2FkZXItPmZyYW1l
SGFzTG9hZGVkKCk7CkBAIC01MzYsNiArNTQwLDcgQEAgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4g
SGlzdG9yeUNvbnRyb2xsZQogICAgICAgICAgICAgICAgIGJmSXRlbS0+YWRkQ2hpbGRJdGVtKGNo
aWxkTG9hZGVyLT5oaXN0b3J5KCktPmNyZWF0ZUl0ZW1UcmVlKHRhcmdldEZyYW1lLCBjbGlwQXRU
YXJnZXQpKTsKICAgICAgICAgfQogICAgIH0KKyAgICAvLyBGSVhNRTogRWxpbWluYXRlIHRoZSBp
c1RhcmdldEl0ZW0gZmxhZyBpbiBmYXZvciBvZiBpdGVtU2VxdWVuY2VOdW1iZXIuCiAgICAgaWYg
KG1fZnJhbWUgPT0gdGFyZ2V0RnJhbWUpCiAgICAgICAgIGJmSXRlbS0+c2V0SXNUYXJnZXRJdGVt
KHRydWUpOwogICAgIHJldHVybiBiZkl0ZW07CkBAIC01NTAsMTkgKzU1NSwxMSBAQCB2b2lkIEhp
c3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVHb1RvSXRlCiAgICAgQVNTRVJUKGl0ZW0pOwogICAg
IEFTU0VSVChmcm9tSXRlbSk7CiAKLSAgICBLVVJMIGl0ZW1VUkwgPSBpdGVtLT51cmwoKTsKLSAg
ICBLVVJMIGN1cnJlbnRVUkw7Ci0gICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExv
YWRlcigpKQotICAgICAgICBjdXJyZW50VVJMID0gbV9mcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50
TG9hZGVyKCktPnVybCgpOwotCi0gICAgLy8gQWx3YXlzIHJlbG9hZCB0aGUgdGFyZ2V0IGZyYW1l
IG9mIHRoZSBpdGVtIHdlJ3JlIGdvaW5nIHRvLiAgVGhpcyBlbnN1cmVzIHRoYXQgd2Ugd2lsbAot
ICAgIC8vIGRvIC1zb21lLSBsb2FkIGZvciB0aGUgdHJhbnNpdGlvbiwgd2hpY2ggbWVhbnMgYSBw
cm9wZXIgbm90aWZpY2F0aW9uIHdpbGwgYmUgcG9zdGVkCi0gICAgLy8gdG8gdGhlIGFwcC4KLSAg
ICAvLyBUaGUgZXhhY3QgVVJMIGhhcyB0byBtYXRjaCwgaW5jbHVkaW5nIGZyYWdtZW50LiAgV2Ug
d2FudCB0byBnbyB0aHJvdWdoIHRoZSBfbG9hZAotICAgIC8vIG1ldGhvZCwgZXZlbiBpZiB0byBk
byBhIHdpdGhpbi1wYWdlIG5hdmlnYXRpb24uCi0gICAgLy8gVGhlIGN1cnJlbnQgZnJhbWUgdHJl
ZSBhbmQgdGhlIGZyYW1lIHRyZWUgc25hcHNob3QgaW4gdGhlIGl0ZW0gaGF2ZSB0byBtYXRjaC4K
LSAgICBpZiAoIWl0ZW0tPmlzVGFyZ2V0SXRlbSgpICYmCi0gICAgICAgIGl0ZW1VUkwgPT0gY3Vy
cmVudFVSTCAmJgorICAgIC8vIElmIHRoZSBpdGVtIHdlJ3JlIGdvaW5nIHRvIGlzIGEgY2xvbmUg
b2YgdGhlIGl0ZW0gd2UncmUgYXQsIHRoZW4gZG8KKyAgICAvLyBub3QgbG9hZCBpdCBhZ2Fpbiwg
YW5kIGNvbnRpbnVlIGhpc3RvcnkgdHJhdmVyc2FsIHRvIGl0cyBjaGlsZHJlbi4KKyAgICAvLyBU
aGUgY3VycmVudCBmcmFtZSB0cmVlIGFuZCB0aGUgZnJhbWUgdHJlZSBzbmFwc2hvdCBpbiB0aGUg
aXRlbSBoYXZlCisgICAgLy8gdG8gbWF0Y2guCisgICAgaWYgKGl0ZW0tPml0ZW1TZXF1ZW5jZU51
bWJlcigpID09IGZyb21JdGVtLT5pdGVtU2VxdWVuY2VOdW1iZXIoKSAmJgogICAgICAgICAoKG1f
ZnJhbWUtPnRyZWUoKS0+bmFtZSgpLmlzRW1wdHkoKSAmJiBpdGVtLT50YXJnZXQoKS5pc0VtcHR5
KCkpIHx8IG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpID09IGl0ZW0tPnRhcmdldCgpKSAmJgogICAg
ICAgICBjaGlsZEZyYW1lc01hdGNoSXRlbShpdGVtKSkKICAgICB7CkBAIC02NTksMTAgKzY1Niw2
IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnB1c2hTdGF0ZShQYXNzUmUKICAgICBpdGVtLT5z
ZXRTdGF0ZU9iamVjdChzdGF0ZU9iamVjdCk7CiAgICAgaXRlbS0+c2V0VVJMU3RyaW5nKHVybFN0
cmluZyk7CiAKLSAgICAvLyBTaW5jZSB0aGUgZG9jdW1lbnQgaXNuJ3QgY2hhbmdlZCBhcyBhIHJl
c3VsdCBvZiBhIHB1c2hTdGF0ZSBjYWxsLCB3ZQotICAgIC8vIHNob3VsZCBwcmVzZXJ2ZSB0aGUg
RG9jdW1lbnRTZXF1ZW5jZU51bWJlciBvZiB0aGUgcHJldmlvdXMgaXRlbS4KLSAgICBpdGVtLT5z
ZXREb2N1bWVudFNlcXVlbmNlTnVtYmVyKG1fcHJldmlvdXNJdGVtLT5kb2N1bWVudFNlcXVlbmNl
TnVtYmVyKCkpOwotICAgIAogICAgIHBhZ2UtPmJhY2tGb3J3YXJkTGlzdCgpLT5wdXNoU3RhdGVJ
dGVtKGl0ZW0ucmVsZWFzZSgpKTsKIH0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
Zw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYx
MDQxKQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDEwLTA2LTExICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3Nl
IFdlYkhpc3RvcnlJdGVtOjppdGVtU2VxdWVuY2VOdW1iZXIuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNDUxCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKiBzcmMvV2ViSGlzdG9yeUl0ZW0uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJIaXN0b3J5SXRlbTo6aXRlbVNlcXVlbmNlTnVtYmVyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSGlzdG9yeUl0ZW06OnNldEl0ZW1TZXF1ZW5jZU51bWJlcik6CisKIDIw
MTAtMDYtMTEgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJIaXN0b3J5SXRlbS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJIaXN0b3J5SXRlbS5oCShyZXZpc2lvbiA2MDk3OCkKKysrIFdlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSGlzdG9yeUl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw5IEBA
IHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdlYlZlY3RvcjxXZWJTdHJpbmc+IGRvY3VtZW50U3Rh
dGUoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RG9jdW1lbnRTdGF0ZShjb25zdCBX
ZWJWZWN0b3I8V2ViU3RyaW5nPiYpOwogCisgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgaXRlbVNl
cXVlbmNlTnVtYmVyKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldEl0ZW1TZXF1ZW5j
ZU51bWJlcihsb25nIGxvbmcpOworCiAgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgZG9jdW1lbnRT
ZXF1ZW5jZU51bWJlcigpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXREb2N1bWVudFNl
cXVlbmNlTnVtYmVyKGxvbmcgbG9uZyk7CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SGlzdG9yeUl0ZW0uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJI
aXN0b3J5SXRlbS5jcHAJKHJldmlzaW9uIDYwOTc4KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJIaXN0b3J5SXRlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMSw2ICsyMDEsMTcgQEAgdm9p
ZCBXZWJIaXN0b3J5SXRlbTo6c2V0RG9jdW1lbnRTdGF0ZShjbwogICAgIG1fcHJpdmF0ZS0+c2V0
RG9jdW1lbnRTdGF0ZShkcyk7CiB9CiAKK2xvbmcgbG9uZyBXZWJIaXN0b3J5SXRlbTo6aXRlbVNl
cXVlbmNlTnVtYmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pdGVtU2VxdWVu
Y2VOdW1iZXIoKTsKK30KKwordm9pZCBXZWJIaXN0b3J5SXRlbTo6c2V0SXRlbVNlcXVlbmNlTnVt
YmVyKGxvbmcgbG9uZyBpdGVtU2VxdWVuY2VOdW1iZXIpCit7CisgICAgZW5zdXJlTXV0YWJsZSgp
OworICAgIG1fcHJpdmF0ZS0+c2V0SXRlbVNlcXVlbmNlTnVtYmVyKGl0ZW1TZXF1ZW5jZU51bWJl
cik7Cit9CisKIGxvbmcgbG9uZyBXZWJIaXN0b3J5SXRlbTo6ZG9jdW1lbnRTZXF1ZW5jZU51bWJl
cigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZG9jdW1lbnRTZXF1ZW5jZU51bWJl
cigpOwo=
</data>
<flag name="commit-queue"
          id="44796"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58520</attachid>
            <date>2010-06-11 16:06:27 -0700</date>
            <delta_ts>2010-06-15 10:13:38 -0700</delta_ts>
            <desc>v2 patch [fixed style error]</desc>
            <filename>item-sn-2.txt</filename>
            <type>text/plain</type>
            <size>15611</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjEwNDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNi0xMSAgRGFyaW4gRmlzaGVyICA8
ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3QgdGhhdCBhIGJhY2sgbmF2aWdhdGlvbiBmb2xsb3dpbmcgYSBzdWJm
cmFtZSByZWZlcmVuY2UgZnJhZ21lbnQKKyAgICAgICAgbmF2aWdhdGlvbiBkb2VzIHRoZSByaWdo
dCB0aGluZy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDA0NTEKKworICAgICAgICAqIGZhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1
YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9yZXNvdXJjZXMvaGlz
dG9yeS1iYWNrLXdpdGhpbi1zdWJmcmFtZS0yLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA2LTExICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBiYXNlbGluZXMgZm9yIG5ldyB0ZXN0IG9uIFF0L0d0ay4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLmh0bWwNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdpdGhpbi1zdWJmcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3Rvcnkt
YmFjay13aXRoaW4tc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAor
PGJvZHk+Cis8c2NyaXB0Pgorb25sb2FkID0gZnVuY3Rpb24oKSB7CisgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICB9Cit9Cis8
L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaGlzdG9yeS1iYWNrLXdpdGhpbi1zdWJm
cmFtZS0yLmh0bWwiPjwvaWZyYW1lPgorPGRpdiBpZD0icmVzdWx0Ij5GQUlMPC9kaXY+Cis8L2Jv
ZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL2hpc3RvcnktYmFj
ay13aXRoaW4tc3ViZnJhbWUtMi5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3Jlc291cmNlcy9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLTIuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvaGlzdG9y
eS1iYWNrLXdpdGhpbi1zdWJmcmFtZS0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcg
QEAKKzxzY3JpcHQ+CitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICBsb2NhdGlvbi5oYXNoID0gIiNmb28iOworICB9LCAwKTsKK30KK29uaGFzaGNo
YW5nZSA9IGZ1bmN0aW9uKCkgeworICBpZiAobG9jYXRpb24uaGFzaCA9PSAiI2ZvbyIpIHsKKyAg
ICBoaXN0b3J5LmJhY2soKTsKKyAgfQorICBpZiAobG9jYXRpb24uaGFzaCA9PSAiIikgeworICAg
IHBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gIlBB
U1MiOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgIH0KK30KKzwvc2NyaXB0PgpJbmRleDogV2Vi
Q29yZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gNjEwNDEpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDQ0IEBACisyMDEwLTA2LTExICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNl
IEhpc3RvcnlJdGVtOjppdGVtU2VxdWVuY2VOdW1iZXIgYW5kIHVzZSBpdCB0byBpZGVudGlmeQor
ICAgICAgICBIaXN0b3J5SXRlbXMgdGhhdCBhcmUgY2xvbmVzIG9mIG9uZSBhbm90aGVyLgorCisg
ICAgICAgIENoYW5nZXMgSGlzdG9yeUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtIHRvIHVz
ZSBpdGVtU2VxdWVuY2VOdW1iZXIKKyAgICAgICAgZXF1YWxpdHkgaW5zdGVhZCBvZiBpc1Rhcmdl
dEl0ZW0gYXMgdGhlIHByZS1yZXF1aXNpdGUgZm9yIG5vdCBjYWxsaW5nCisgICAgICAgIEZyYW1l
TG9hZGVyOjpsb2FkSXRlbS4KKworICAgICAgICBDaGFuZ2VzIEZyYW1lTG9hZGVyOjpsb2FkSXRl
bSB0byByZXF1aXJlIGVxdWl2YWxlbnQKKyAgICAgICAgZG9jdW1lbnRTZXF1ZW5jZU51bWJlciBi
ZWZvcmUgaW5pdGlhdGluZyBhIHNhbWUgZG9jdW1lbnQgbmF2aWdhdGlvbi4KKyAgICAgICAgVGhp
cyBhbG9uZSB3b3VsZCBhcHBlYXIgdG8gZml4IHRoZSBidWcsIGJ1dCBpdCBkb2VzIG5vdCBnbyBm
YXIgZW5vdWdoCisgICAgICAgIHNpbmNlIHdpdGhvdXQgdGhlIGl0ZW1TZXF1ZW5jZU51bWJlciBl
cXVhbGl0eSBjaGVjaywgd2UnZCByZS1sb2FkIG1vcmUKKyAgICAgICAgb2Z0ZW4gdGhhbiB3ZSBz
aG91bGQuCisKKyAgICAgICAgTW92ZXMgZG9jdW1lbnRTZXF1ZW5jZU51bWJlciBhc3NpZ25tZW50
IGludG8gY3JlYXRlSXRlbVRyZWUgYXMgY2xlYW51cAorICAgICAgICBhbmQgdG8gZW5zdXJlIHRo
YXQgaXQgZ2V0cyBjYWxsZWQgcHJvcGVybHkgd2hlbmV2ZXIgd2UgY3JlYXRlIGEgY2xvbmVkCisg
ICAgICAgIEhpc3RvcnlJdGVtLiAgKGNyZWF0ZUl0ZW1UcmVlJ3MgbWlzc2lvbiBpcyB0byBjcmVh
dGUgY2xvbmVzIHVwIHVudGlsCisgICAgICAgIG9yIGluY2x1ZGluZyB0aGUgdGFyZ2V0IGZyYW1l
IGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdGhlIGRvQ2xpcAorICAgICAgICBwYXJhbWV0ZXIu
KQorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDQ1
MQorCisgICAgICAgIFRlc3Q6IGZhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZy
YW1lLmh0bWwKKworICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Z2VuZXJhdGVTZXF1ZW5jZU51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpIaXN0
b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoK
KyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpzZXRJdGVtU2VxdWVuY2VOdW1iZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06Oml0ZW1TZXF1ZW5jZU51bWJlcik6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpsb2FkSXRlbSk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjp1cGRhdGVCYWNrRm9yd2FyZExp
c3RGb3JGcmFnbWVudFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxl
cjo6Y3JlYXRlSXRlbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6
OnJlY3Vyc2l2ZUdvVG9JdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVy
OjpwdXNoU3RhdGUpOgorCiAyMDEwLTA2LTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjEwMzYu
CkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAkocmV2aXNpb24gNjA5NzgpCisrKyBXZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGxvbmcgbG9uZyBnZW5lcmF0ZURv
Y3VtZW50U2VxdWVuY2VOdW1iZXIoKQorc3RhdGljIGxvbmcgbG9uZyBnZW5lcmF0ZVNlcXVlbmNl
TnVtYmVyKCkKIHsKICAgICAvLyBJbml0aWFsaXplIHRvIHRoZSBjdXJyZW50IHRpbWUgdG8gcmVk
dWNlIHRoZSBsaWtlbGlob29kIG9mIGdlbmVyYXRpbmcKICAgICAvLyBpZGVudGlmaWVycyB0aGF0
IG92ZXJsYXAgd2l0aCB0aG9zZSBmcm9tIHBhc3QvZnV0dXJlIGJyb3dzZXIgc2Vzc2lvbnMuCkBA
IC01Nyw3ICs1Nyw4IEBAIEhpc3RvcnlJdGVtOjpIaXN0b3J5SXRlbSgpCiAgICAgLCBtX2xhc3RW
aXNpdFdhc0ZhaWx1cmUoZmFsc2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAs
IG1fdmlzaXRDb3VudCgwKQotICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRl
RG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2Vu
ZXJhdGVTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdl
bmVyYXRlU2VxdWVuY2VOdW1iZXIoKSkKIHsKIH0KIApAQCAtNzAsNyArNzEsOCBAQCBIaXN0b3J5
SXRlbTo6SGlzdG9yeUl0ZW0oY29uc3QgU3RyaW5nJiB1CiAgICAgLCBtX2xhc3RWaXNpdFdhc0Zh
aWx1cmUoZmFsc2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAsIG1fdmlzaXRD
b3VudCgwKQotICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlRG9jdW1lbnRT
ZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2VuZXJhdGVTZXF1
ZW5jZU51bWJlcigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2Vx
dWVuY2VOdW1iZXIoKSkKIHsgICAgCiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQ
YWdlVVJMKG1fdXJsU3RyaW5nKTsKIH0KQEAgLTg1LDcgKzg3LDggQEAgSGlzdG9yeUl0ZW06Okhp
c3RvcnlJdGVtKGNvbnN0IFN0cmluZyYgdQogICAgICwgbV9sYXN0VmlzaXRXYXNGYWlsdXJlKGZh
bHNlKQogICAgICwgbV9pc1RhcmdldEl0ZW0oZmFsc2UpCiAgICAgLCBtX3Zpc2l0Q291bnQoMCkK
LSAgICAsIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZURvY3VtZW50U2VxdWVuY2VO
dW1iZXIoKSkKKyAgICAsIG1faXRlbVNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VOdW1i
ZXIoKSkKKyAgICAsIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZVNlcXVlbmNlTnVt
YmVyKCkpCiB7CiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdlVVJMKG1fdXJs
U3RyaW5nKTsKIH0KQEAgLTEwMSw3ICsxMDQsOCBAQCBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0o
Y29uc3QgS1VSTCYgdXJsCiAgICAgLCBtX2xhc3RWaXNpdFdhc0ZhaWx1cmUoZmFsc2UpCiAgICAg
LCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAsIG1fdmlzaXRDb3VudCgwKQotICAgICwgbV9k
b2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlRG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKQor
ICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2VuZXJhdGVTZXF1ZW5jZU51bWJlcigpKQorICAg
ICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIoKSkKIHsg
ICAgCiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdlVVJMKG1fdXJsU3RyaW5n
KTsKIH0KQEAgLTEzMyw3ICsxMzcsOCBAQCBpbmxpbmUgSGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVt
KGNvbnN0IEhpCiAgICAgLCBtX3Zpc2l0Q291bnQoaXRlbS5tX3Zpc2l0Q291bnQpCiAgICAgLCBt
X2RhaWx5VmlzaXRDb3VudHMoaXRlbS5tX2RhaWx5VmlzaXRDb3VudHMpCiAgICAgLCBtX3dlZWts
eVZpc2l0Q291bnRzKGl0ZW0ubV93ZWVrbHlWaXNpdENvdW50cykKLSAgICAsIG1fZG9jdW1lbnRT
ZXF1ZW5jZU51bWJlcihnZW5lcmF0ZURvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSkKKyAgICAsIG1f
aXRlbVNlcXVlbmNlTnVtYmVyKGl0ZW0ubV9pdGVtU2VxdWVuY2VOdW1iZXIpCisgICAgLCBtX2Rv
Y3VtZW50U2VxdWVuY2VOdW1iZXIoaXRlbS5tX2RvY3VtZW50U2VxdWVuY2VOdW1iZXIpCiAgICAg
LCBtX2Zvcm1Db250ZW50VHlwZShpdGVtLm1fZm9ybUNvbnRlbnRUeXBlKQogewogICAgIGlmIChp
dGVtLm1fZm9ybURhdGEpCkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCShyZXZpc2lvbiA2MDk3
OCkKKysrIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzYsNiArMTM2LDkgQEAgcHVibGljOiAKICAgICB2b2lkIHNldFN0YXRlT2JqZWN0KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBvYmplY3QpOwogICAgIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSogc3RhdGVPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlT2JqZWN0LmdldCgpOyB9
CiAKKyAgICB2b2lkIHNldEl0ZW1TZXF1ZW5jZU51bWJlcihsb25nIGxvbmcgbnVtYmVyKSB7IG1f
aXRlbVNlcXVlbmNlTnVtYmVyID0gbnVtYmVyOyB9CisgICAgbG9uZyBsb25nIGl0ZW1TZXF1ZW5j
ZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1faXRlbVNlcXVlbmNlTnVtYmVyOyB9CisKICAgICB2
b2lkIHNldERvY3VtZW50U2VxdWVuY2VOdW1iZXIobG9uZyBsb25nIG51bWJlcikgeyBtX2RvY3Vt
ZW50U2VxdWVuY2VOdW1iZXIgPSBudW1iZXI7IH0KICAgICBsb25nIGxvbmcgZG9jdW1lbnRTZXF1
ZW5jZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcjsgfQog
ICAgIApAQCAtMjQyLDYgKzI0NSw4IEBAIHByaXZhdGU6CiAKICAgICBPd25QdHI8VmVjdG9yPFN0
cmluZz4gPiBtX3JlZGlyZWN0VVJMczsKIAorICAgIGxvbmcgbG9uZyBtX2l0ZW1TZXF1ZW5jZU51
bWJlcjsKKwogICAgIC8vIFN1cHBvcnQgZm9yIEhUTUw1IEhpc3RvcnkKICAgICBSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBtX3N0YXRlT2JqZWN0OwogICAgIGxvbmcgbG9uZyBtX2RvY3Vt
ZW50U2VxdWVuY2VOdW1iZXI7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9u
IDYwOTc4KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNTQyLDE0ICszNTQyLDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6Om5hdmlnYXRlVG9EaWZm
ZXJlbnREb2MKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtKiBpdGVtLCBG
cmFtZUxvYWRUeXBlIGxvYWRUeXBlKQogewogICAgIC8vIFdlIGRvIHNhbWUtZG9jdW1lbnQgbmF2
aWdhdGlvbiBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOgotICAgIC8vIC0gVGhlIEhpc3RvcnlJdGVt
IGhhcyBhIGhpc3Rvcnkgc3RhdGUgb2JqZWN0Ci0gICAgLy8gLSBOYXZpZ2F0aW5nIHRvIGFuIGFu
Y2hvciB3aXRoaW4gdGhlIHBhZ2UsIHdpdGggbm8gZm9ybSBkYXRhIHN0b3JlZCBvbiB0aGUgdGFy
Z2V0IGl0ZW0gb3IgdGhlIGN1cnJlbnQgaGlzdG9yeSBlbnRyeSwKLSAgICAvLyAgIGFuZCB0aGUg
VVJMcyBpbiB0aGUgZnJhbWUgdHJlZSBtYXRjaCB0aGUgaGlzdG9yeSBpdGVtIGZvciBmcmFnbWVu
dCBzY3JvbGxpbmcuCi0gICAgLy8gLSBUaGUgSGlzdG9yeUl0ZW0gaXMgbm90IHRoZSBzYW1lIGFz
IHRoZSBjdXJyZW50IGl0ZW0sIGJlY2F1c2Ugc3VjaCBjYXNlcyBhcmUgdHJlYXRlZCBhcyBhIG5l
dyBsb2FkLgorICAgIC8vIC0gVGhlIEhpc3RvcnlJdGVtIGNvcnJlc3BvbmRzIHRvIHRoZSBzYW1l
IGRvY3VtZW50LgorICAgIC8vIC0gVGhlIEhpc3RvcnlJdGVtIGlzIG5vdCB0aGUgc2FtZSBhcyB0
aGUgY3VycmVudCBpdGVtLgogICAgIEhpc3RvcnlJdGVtKiBjdXJyZW50SXRlbSA9IGhpc3Rvcnko
KS0+Y3VycmVudEl0ZW0oKTsKLSAgICBib29sIHNhbWVEb2N1bWVudE5hdmlnYXRpb24gPSAoKCFp
dGVtLT5mb3JtRGF0YSgpICYmICEoY3VycmVudEl0ZW0gJiYgY3VycmVudEl0ZW0tPmZvcm1EYXRh
KCkpICYmIGhpc3RvcnkoKS0+dXJsc01hdGNoSXRlbShpdGVtKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8fCAoY3VycmVudEl0ZW0gJiYgaXRlbS0+ZG9jdW1lbnRTZXF1ZW5j
ZU51bWJlcigpID09IGN1cnJlbnRJdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGl0ZW0gIT0gY3VycmVudEl0ZW07Cisg
ICAgYm9vbCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uID0gY3VycmVudEl0ZW0gJiYgaXRlbSAhPSBj
dXJyZW50SXRlbQorICAgICAgICAmJiBpdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkgPT0g
Y3VycmVudEl0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKTsKIAogI2lmIEVOQUJMRShXTUwp
CiAgICAgLy8gQWxsIFdNTCBkZWNrcyBzaG91bGQgZ28gdGhyb3VnaCB0aGUgcmVhbCBsb2FkIG1l
Y2hhbmlzbSwgbm90IHRoZSBzY3JvbGwtdG8tYW5jaG9yIGNvZGUKSW5kZXg6IFdlYkNvcmUvbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNjA5NzgpCisrKyBXZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwxNCArMTA2LDYg
QEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvcwogdm9pZCBIaXN0b3J5
Q29udHJvbGxlcjo6dXBkYXRlQmFja0ZvcndhcmRMaXN0Rm9yRnJhZ21lbnRTY3JvbGwoKQogewog
ICAgIHVwZGF0ZUJhY2tGb3J3YXJkTGlzdENsaXBwZWRBdFRhcmdldChmYWxzZSk7Ci0gICAgCi0g
ICAgLy8gU2luY2UgdGhlIGRvY3VtZW50IGlzbid0IGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgYSBm
cmFnbWVudCBzY3JvbGwsIHdlIHNob3VsZAotICAgIC8vIHByZXNlcnZlIHRoZSBEb2N1bWVudFNl
cXVlbmNlTnVtYmVyIG9mIHRoZSBwcmV2aW91cyBpdGVtLgotICAgIGlmICghbV9wcmV2aW91c0l0
ZW0pCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChtX2N1cnJlbnRJdGVtKTsKLSAgICBt
X2N1cnJlbnRJdGVtLT5zZXREb2N1bWVudFNlcXVlbmNlTnVtYmVyKG1fcHJldmlvdXNJdGVtLT5k
b2N1bWVudFNlcXVlbmNlTnVtYmVyKCkpOwogfQogCiB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpz
YXZlRG9jdW1lbnRTdGF0ZSgpCkBAIC01MjEsOSArNTEzLDIxIEBAIFBhc3NSZWZQdHI8SGlzdG9y
eUl0ZW0+IEhpc3RvcnlDb250cm9sbGUKICAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IGJmSXRlbSA9
IGNyZWF0ZUl0ZW0obV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSA/IHRydWUgOiBmYWxzZSk7CiAg
ICAgaWYgKG1fcHJldmlvdXNJdGVtKQogICAgICAgICBzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3
U3RhdGVUb0l0ZW0obV9wcmV2aW91c0l0ZW0uZ2V0KCkpOwotICAgIGlmICghKGNsaXBBdFRhcmdl
dCAmJiBtX2ZyYW1lID09IHRhcmdldEZyYW1lKSkgeworCisgICAgaWYgKCFjbGlwQXRUYXJnZXQg
fHwgbV9mcmFtZSAhPSB0YXJnZXRGcmFtZSkgewogICAgICAgICAvLyBzYXZlIGZyYW1lIHN0YXRl
IGZvciBpdGVtcyB0aGF0IGFyZW4ndCBsb2FkaW5nIChraHRtbCBkb2Vzbid0IHNhdmUgdGhvc2Up
CiAgICAgICAgIHNhdmVEb2N1bWVudFN0YXRlKCk7CisKKyAgICAgICAgLy8gY2xpcEF0VGFyZ2V0
IGlzIGZhbHNlIGZvciBuYXZpZ2F0aW9ucyB3aXRoaW4gdGhlIHNhbWUgZG9jdW1lbnQsIHNvCisg
ICAgICAgIC8vIHdlIHNob3VsZCBjb3B5IHRoZSBkb2N1bWVudFNlcXVlbmNlTnVtYmVyIG92ZXIg
dG8gdGhlIG5ld2x5IGNyZWF0ZQorICAgICAgICAvLyBpdGVtLiAgTm9uLXRhcmdldCBpdGVtcyBh
cmUganVzdCBjbG9uZXMsIGFuZCB0aGV5IHNob3VsZCB0aGVyZWZvcmUKKyAgICAgICAgLy8gcHJl
c2VydmUgdGhlIHNhbWUgaXRlbVNlcXVlbmNlTnVtYmVyLgorICAgICAgICBpZiAobV9wcmV2aW91
c0l0ZW0pIHsKKyAgICAgICAgICAgIGlmIChtX2ZyYW1lICE9IHRhcmdldEZyYW1lKQorICAgICAg
ICAgICAgICAgIGJmSXRlbS0+c2V0SXRlbVNlcXVlbmNlTnVtYmVyKG1fcHJldmlvdXNJdGVtLT5p
dGVtU2VxdWVuY2VOdW1iZXIoKSk7CisgICAgICAgICAgICBiZkl0ZW0tPnNldERvY3VtZW50U2Vx
dWVuY2VOdW1iZXIobV9wcmV2aW91c0l0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSk7Cisg
ICAgICAgIH0KKwogICAgICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IG1fZnJhbWUtPnRyZWUoKS0+
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygp
KSB7CiAgICAgICAgICAgICBGcmFtZUxvYWRlciogY2hpbGRMb2FkZXIgPSBjaGlsZC0+bG9hZGVy
KCk7CiAgICAgICAgICAgICBib29sIGhhc0NoaWxkTG9hZGVkID0gY2hpbGRMb2FkZXItPmZyYW1l
SGFzTG9hZGVkKCk7CkBAIC01MzYsNiArNTQwLDcgQEAgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4g
SGlzdG9yeUNvbnRyb2xsZQogICAgICAgICAgICAgICAgIGJmSXRlbS0+YWRkQ2hpbGRJdGVtKGNo
aWxkTG9hZGVyLT5oaXN0b3J5KCktPmNyZWF0ZUl0ZW1UcmVlKHRhcmdldEZyYW1lLCBjbGlwQXRU
YXJnZXQpKTsKICAgICAgICAgfQogICAgIH0KKyAgICAvLyBGSVhNRTogRWxpbWluYXRlIHRoZSBp
c1RhcmdldEl0ZW0gZmxhZyBpbiBmYXZvciBvZiBpdGVtU2VxdWVuY2VOdW1iZXIuCiAgICAgaWYg
KG1fZnJhbWUgPT0gdGFyZ2V0RnJhbWUpCiAgICAgICAgIGJmSXRlbS0+c2V0SXNUYXJnZXRJdGVt
KHRydWUpOwogICAgIHJldHVybiBiZkl0ZW07CkBAIC01NTAsMjEgKzU1NSwxMyBAQCB2b2lkIEhp
c3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVHb1RvSXRlCiAgICAgQVNTRVJUKGl0ZW0pOwogICAg
IEFTU0VSVChmcm9tSXRlbSk7CiAKLSAgICBLVVJMIGl0ZW1VUkwgPSBpdGVtLT51cmwoKTsKLSAg
ICBLVVJMIGN1cnJlbnRVUkw7Ci0gICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExv
YWRlcigpKQotICAgICAgICBjdXJyZW50VVJMID0gbV9mcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50
TG9hZGVyKCktPnVybCgpOwotCi0gICAgLy8gQWx3YXlzIHJlbG9hZCB0aGUgdGFyZ2V0IGZyYW1l
IG9mIHRoZSBpdGVtIHdlJ3JlIGdvaW5nIHRvLiAgVGhpcyBlbnN1cmVzIHRoYXQgd2Ugd2lsbAot
ICAgIC8vIGRvIC1zb21lLSBsb2FkIGZvciB0aGUgdHJhbnNpdGlvbiwgd2hpY2ggbWVhbnMgYSBw
cm9wZXIgbm90aWZpY2F0aW9uIHdpbGwgYmUgcG9zdGVkCi0gICAgLy8gdG8gdGhlIGFwcC4KLSAg
ICAvLyBUaGUgZXhhY3QgVVJMIGhhcyB0byBtYXRjaCwgaW5jbHVkaW5nIGZyYWdtZW50LiAgV2Ug
d2FudCB0byBnbyB0aHJvdWdoIHRoZSBfbG9hZAotICAgIC8vIG1ldGhvZCwgZXZlbiBpZiB0byBk
byBhIHdpdGhpbi1wYWdlIG5hdmlnYXRpb24uCi0gICAgLy8gVGhlIGN1cnJlbnQgZnJhbWUgdHJl
ZSBhbmQgdGhlIGZyYW1lIHRyZWUgc25hcHNob3QgaW4gdGhlIGl0ZW0gaGF2ZSB0byBtYXRjaC4K
LSAgICBpZiAoIWl0ZW0tPmlzVGFyZ2V0SXRlbSgpICYmCi0gICAgICAgIGl0ZW1VUkwgPT0gY3Vy
cmVudFVSTCAmJgotICAgICAgICAoKG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpLmlzRW1wdHkoKSAm
JiBpdGVtLT50YXJnZXQoKS5pc0VtcHR5KCkpIHx8IG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpID09
IGl0ZW0tPnRhcmdldCgpKSAmJgotICAgICAgICBjaGlsZEZyYW1lc01hdGNoSXRlbShpdGVtKSkK
KyAgICAvLyBJZiB0aGUgaXRlbSB3ZSdyZSBnb2luZyB0byBpcyBhIGNsb25lIG9mIHRoZSBpdGVt
IHdlJ3JlIGF0LCB0aGVuIGRvCisgICAgLy8gbm90IGxvYWQgaXQgYWdhaW4sIGFuZCBjb250aW51
ZSBoaXN0b3J5IHRyYXZlcnNhbCB0byBpdHMgY2hpbGRyZW4uCisgICAgLy8gVGhlIGN1cnJlbnQg
ZnJhbWUgdHJlZSBhbmQgdGhlIGZyYW1lIHRyZWUgc25hcHNob3QgaW4gdGhlIGl0ZW0gaGF2ZQor
ICAgIC8vIHRvIG1hdGNoLgorICAgIGlmIChpdGVtLT5pdGVtU2VxdWVuY2VOdW1iZXIoKSA9PSBm
cm9tSXRlbS0+aXRlbVNlcXVlbmNlTnVtYmVyKCkKKyAgICAgICAgJiYgKChtX2ZyYW1lLT50cmVl
KCktPm5hbWUoKS5pc0VtcHR5KCkgJiYgaXRlbS0+dGFyZ2V0KCkuaXNFbXB0eSgpKSB8fCBtX2Zy
YW1lLT50cmVlKCktPm5hbWUoKSA9PSBpdGVtLT50YXJnZXQoKSkKKyAgICAgICAgJiYgY2hpbGRG
cmFtZXNNYXRjaEl0ZW0oaXRlbSkpCiAgICAgewogICAgICAgICAvLyBUaGlzIGNvbnRlbnQgaXMg
Z29vZCwgc28gbGVhdmUgaXQgYWxvbmUgYW5kIGxvb2sgZm9yIGNoaWxkcmVuIHRoYXQgbmVlZCBy
ZWxvYWRpbmcKICAgICAgICAgLy8gU2F2ZSBmb3JtIHN0YXRlICh3b3JrcyBmcm9tIGN1cnJlbnRJ
dGVtLCBzaW5jZSBwcmV2SXRlbSBpcyBuaWwpCkBAIC02NTksMTAgKzY1Niw2IEBAIHZvaWQgSGlz
dG9yeUNvbnRyb2xsZXI6OnB1c2hTdGF0ZShQYXNzUmUKICAgICBpdGVtLT5zZXRTdGF0ZU9iamVj
dChzdGF0ZU9iamVjdCk7CiAgICAgaXRlbS0+c2V0VVJMU3RyaW5nKHVybFN0cmluZyk7CiAKLSAg
ICAvLyBTaW5jZSB0aGUgZG9jdW1lbnQgaXNuJ3QgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBhIHB1
c2hTdGF0ZSBjYWxsLCB3ZQotICAgIC8vIHNob3VsZCBwcmVzZXJ2ZSB0aGUgRG9jdW1lbnRTZXF1
ZW5jZU51bWJlciBvZiB0aGUgcHJldmlvdXMgaXRlbS4KLSAgICBpdGVtLT5zZXREb2N1bWVudFNl
cXVlbmNlTnVtYmVyKG1fcHJldmlvdXNJdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkpOwot
ICAgIAogICAgIHBhZ2UtPmJhY2tGb3J3YXJkTGlzdCgpLT5wdXNoU3RhdGVJdGVtKGl0ZW0ucmVs
ZWFzZSgpKTsKIH0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZw0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYxMDQxKQorKysgV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisy
MDEwLTA2LTExICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIFdlYkhpc3RvcnlJ
dGVtOjppdGVtU2VxdWVuY2VOdW1iZXIuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwNDUxCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSGlzdG9yeUl0
ZW0uaDoKKyAgICAgICAgKiBzcmMvV2ViSGlzdG9yeUl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJIaXN0b3J5SXRlbTo6aXRlbVNlcXVlbmNlTnVtYmVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSGlzdG9yeUl0ZW06OnNldEl0ZW1TZXF1ZW5jZU51bWJlcik6CisKIDIwMTAtMDYtMTEgIEph
bWVzIEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIaXN0b3J5
SXRlbS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIaXN0b3J5
SXRlbS5oCShyZXZpc2lvbiA2MDk3OCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSGlz
dG9yeUl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw5IEBAIHB1YmxpYzoKICAg
ICBXRUJLSVRfQVBJIFdlYlZlY3RvcjxXZWJTdHJpbmc+IGRvY3VtZW50U3RhdGUoKSBjb25zdDsK
ICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RG9jdW1lbnRTdGF0ZShjb25zdCBXZWJWZWN0b3I8V2Vi
U3RyaW5nPiYpOwogCisgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgaXRlbVNlcXVlbmNlTnVtYmVy
KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldEl0ZW1TZXF1ZW5jZU51bWJlcihsb25n
IGxvbmcpOworCiAgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgZG9jdW1lbnRTZXF1ZW5jZU51bWJl
cigpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXREb2N1bWVudFNlcXVlbmNlTnVtYmVy
KGxvbmcgbG9uZyk7CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGlzdG9yeUl0ZW0u
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIaXN0b3J5SXRlbS5j
cHAJKHJldmlzaW9uIDYwOTc4KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIaXN0b3J5SXRl
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMSw2ICsyMDEsMTcgQEAgdm9pZCBXZWJIaXN0b3J5
SXRlbTo6c2V0RG9jdW1lbnRTdGF0ZShjbwogICAgIG1fcHJpdmF0ZS0+c2V0RG9jdW1lbnRTdGF0
ZShkcyk7CiB9CiAKK2xvbmcgbG9uZyBXZWJIaXN0b3J5SXRlbTo6aXRlbVNlcXVlbmNlTnVtYmVy
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pdGVtU2VxdWVuY2VOdW1iZXIoKTsK
K30KKwordm9pZCBXZWJIaXN0b3J5SXRlbTo6c2V0SXRlbVNlcXVlbmNlTnVtYmVyKGxvbmcgbG9u
ZyBpdGVtU2VxdWVuY2VOdW1iZXIpCit7CisgICAgZW5zdXJlTXV0YWJsZSgpOworICAgIG1fcHJp
dmF0ZS0+c2V0SXRlbVNlcXVlbmNlTnVtYmVyKGl0ZW1TZXF1ZW5jZU51bWJlcik7Cit9CisKIGxv
bmcgbG9uZyBXZWJIaXN0b3J5SXRlbTo6ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpOwo=
</data>
<flag name="review"
          id="44821"
          type_id="1"
          status="-"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="44822"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58792</attachid>
            <date>2010-06-15 10:13:38 -0700</date>
            <delta_ts>2010-06-15 10:22:12 -0700</delta_ts>
            <desc>v3 patch</desc>
            <filename>item-sn-3.txt</filename>
            <type>text/plain</type>
            <size>18778</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYxMTk2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDYtMTUgIERhcmluIEZpc2hlciAgPGRh
cmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0IHRoYXQgYSBiYWNrIG5hdmlnYXRpb24gZm9sbG93aW5nIGEgc3ViZnJh
bWUgcmVmZXJlbmNlIGZyYWdtZW50CisgICAgICAgIG5hdmlnYXRpb24gZG9lcyB0aGUgcmlnaHQg
dGhpbmcuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwNDUxCisKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdpdGhpbi1zdWJm
cmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcmVzb3VyY2VzL2hpc3Rv
cnktYmFjay13aXRoaW4tc3ViZnJhbWUtMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL25hdmlnYXRpb24vaGlzdG9yeS1iYWNrLWFjcm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJh
Z21lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRp
b24vaGlzdG9yeS1iYWNrLWFjcm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21lbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWJtaXQt
dG8tZnJhZ21lbnQucGw6IEFkZGVkLgorCiAyMDEwLTA2LTE1ICBEYW4gQmVybnN0ZWluICA8bWl0
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBTdWxsaXZhbi4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13
aXRoaW4tc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTIgQEAKKzxib2R5PgorPHNjcmlwdD4KK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKKyAgfQorfQorPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2hpc3RvcnktYmFj
ay13aXRoaW4tc3ViZnJhbWUtMi5odG1sIj48L2lmcmFtZT4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJ
TDwvZGl2PgorPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNl
cy9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL2hpc3RvcnktYmFjay13aXRoaW4tc3ViZnJh
bWUtMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291
cmNlcy9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLTIuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNyBAQAorPHNjcmlwdD4KK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgIGxvY2F0aW9uLmhhc2ggPSAiI2ZvbyI7CisgIH0sIDApOwor
fQorb25oYXNoY2hhbmdlID0gZnVuY3Rpb24oKSB7CisgIGlmIChsb2NhdGlvbi5oYXNoID09ICIj
Zm9vIikgeworICAgIGhpc3RvcnkuYmFjaygpOworICB9CisgIGlmIChsb2NhdGlvbi5oYXNoID09
ICIiKSB7CisgICAgcGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5l
clRleHQgPSAiUEFTUyI7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQorfQorPC9zY3JpcHQ+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaGlzdG9yeS1iYWNrLWFj
cm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9oaXN0b3J5LWJhY2stYWNyb3Nz
LWZvcm0tc3VibWlzc2lvbi10by1mcmFnbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaGlzdG9yeS1iYWNrLWFjcm9zcy1m
b3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDggQEAKK21haW4gZnJhbWUgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitBTEVS
VDogc3RhZ2U6IDEKK21haW4gZnJhbWUgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitBTEVS
VDogc3RhZ2U6IDIKK21haW4gZnJhbWUgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitBTEVS
VDogc3RhZ2U6IDMKKyAgCitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vaGlzdG9yeS1iYWNrLWFjcm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21lbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaGlzdG9y
eS1iYWNrLWFjcm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21lbnQuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9oaXN0b3J5LWJhY2stYWNy
b3NzLWZvcm0tc3VibWlzc2lvbi10by1mcmFnbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE2IEBACis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorLy8gVGhpcyB0ZXN0IGNvbmZpcm1zIHRo
YXQgd2hlbiB3ZSBzdWJtaXQgYSBmb3JtIHRvIGEgcmVmZXJlbmNlIGZyYWdtZW50LCB0aGF0Cisv
LyBuYXZpZ2F0aW5nIGJhY2ssIGNhdXNlcyB0aGUgcGFnZSB0byBsb2FkIGFnYWluLiAgV2Ugd2Fu
dCB0byBlbnN1cmUgdGhhdCB0aGUKKy8vIGZvcm0gc3VibWlzc2lvbiBjcmVhdGVkIGEgbmV3IGRv
Y3VtZW50IGFuZCB0aGF0IHdoZW4gbmF2aWdhdGluZyBiYWNrLCB3ZQorLy8gZG9uJ3QgY29uZnVz
ZSB0aGlzIGFzIGEgc2FtZS1kb2N1bWVudCBuYXZpZ2F0aW9uLgorb25sb2FkID0gZnVuY3Rpb24o
KSB7CisgIHNlc3Npb25TdG9yYWdlLnN0YWdlID0gMTsKKyAgbG9jYXRpb24gPSAicmVzb3VyY2Vz
L3N1Ym1pdC10by1mcmFnbWVudC5wbCI7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc3VibWl0LXRvLWZyYWdt
ZW50LnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvc3VibWl0LXRvLWZyYWdtZW50LnBsCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWJtaXQtdG8tZnJhZ21lbnQucGwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKyMhL3Vzci9iaW4vcGVybCAtdworCit1c2Ug
c3RyaWN0OwordXNlIENHSTsKKworbXkgJGNnaSA9IG5ldyBDR0k7CisKK3ByaW50ICJDb250ZW50
LVR5cGU6IHRleHQvaHRtbFxuIjsKK3ByaW50ICJcbiI7CisKK3ByaW50IDw8IkVORCI7Cis8Zm9y
bSBtZXRob2Q9IlBPU1QiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZCIgYWN0aW9uPSIjZm9vIj4KKyAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImYiPgorICA8aW5w
dXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KKzwvZm9ybT4KKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8c2NyaXB0Pgorb251bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgLy8gbm8gcGFn
ZSBjYWNoZQorfQorb25sb2FkID0gZnVuY3Rpb24oKSB7CisgIGFsZXJ0KCJzdGFnZTogIiArIHNl
c3Npb25TdG9yYWdlLnN0YWdlKTsKKyAgc3dpdGNoIChzZXNzaW9uU3RvcmFnZS5zdGFnZSsrKSB7
CisgIGNhc2UgMToKKyAgICBkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsKKyAgICBicmVhazsK
KyAgY2FzZSAyOgorICAgIGhpc3RvcnkuYmFjaygpOworICAgIGJyZWFrOworICBjYXNlIDM6Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4dCA9ICJQQVNTIjsK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGJyZWFrOworICB9Cit9Cis8L3NjcmlwdD4KK0VO
RAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHNcaHR0cFx0ZXN0c1xuYXZpZ2F0aW9u
XHJlc291cmNlc1xzdWJtaXQtdG8tZnJhZ21lbnQucGwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4
ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYxMTk2KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0wNi0xMSAgRGFyaW4gRmlzaGVy
ICA8ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEludHJvZHVjZSBIaXN0b3J5SXRlbTo6aXRlbVNlcXVlbmNlTnVtYmVy
IGFuZCB1c2UgaXQgdG8gaWRlbnRpZnkKKyAgICAgICAgSGlzdG9yeUl0ZW1zIHRoYXQgYXJlIGNs
b25lcyBvZiBvbmUgYW5vdGhlci4KKworICAgICAgICBDaGFuZ2VzIEhpc3RvcnlDb250cm9sbGVy
OjpyZWN1cnNpdmVHb1RvSXRlbSB0byB1c2UgaXRlbVNlcXVlbmNlTnVtYmVyCisgICAgICAgIGVx
dWFsaXR5IGluc3RlYWQgb2YgaXNUYXJnZXRJdGVtIGFzIHRoZSBwcmUtcmVxdWlzaXRlIGZvciBu
b3QgY2FsbGluZworICAgICAgICBGcmFtZUxvYWRlcjo6bG9hZEl0ZW0uCisKKyAgICAgICAgQ2hh
bmdlcyBGcmFtZUxvYWRlcjo6bG9hZEl0ZW0gdG8gcmVxdWlyZSBlcXVpdmFsZW50CisgICAgICAg
IGRvY3VtZW50U2VxdWVuY2VOdW1iZXIgYmVmb3JlIGluaXRpYXRpbmcgYSBzYW1lIGRvY3VtZW50
IG5hdmlnYXRpb24uCisgICAgICAgIFRoaXMgYWxvbmUgd291bGQgYXBwZWFyIHRvIGZpeCB0aGUg
YnVnLCBidXQgaXQgZG9lcyBub3QgZ28gZmFyIGVub3VnaAorICAgICAgICBzaW5jZSB3aXRob3V0
IHRoZSBpdGVtU2VxdWVuY2VOdW1iZXIgZXF1YWxpdHkgY2hlY2ssIHdlJ2QgcmUtbG9hZCBtb3Jl
CisgICAgICAgIG9mdGVuIHRoYW4gd2Ugc2hvdWxkLgorCisgICAgICAgIE1vdmVzIGRvY3VtZW50
U2VxdWVuY2VOdW1iZXIgYXNzaWdubWVudCBpbnRvIGNyZWF0ZUl0ZW1UcmVlIGFzIGNsZWFudXAK
KyAgICAgICAgYW5kIHRvIGVuc3VyZSB0aGF0IGl0IGdldHMgY2FsbGVkIHByb3Blcmx5IHdoZW5l
dmVyIHdlIGNyZWF0ZSBhIGNsb25lZAorICAgICAgICBIaXN0b3J5SXRlbS4gIChjcmVhdGVJdGVt
VHJlZSdzIG1pc3Npb24gaXMgdG8gY3JlYXRlIGNsb25lcyB1cCB1bnRpbAorICAgICAgICBvciBp
bmNsdWRpbmcgdGhlIHRhcmdldCBmcmFtZSBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHRoZSBk
b0NsaXAKKyAgICAgICAgcGFyYW1ldGVyLikKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA0NTEKKworICAgICAgICBUZXN0OiBmYXN0L2hpc3Rvcnkv
aGlzdG9yeS1iYWNrLXdpdGhpbi1zdWJmcmFtZS5odG1sCisgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9oaXN0b3J5LWJhY2stYWNyb3NzLWZvcm0tc3VibWlzc2lvbi10by1mcmFn
bWVudC5odG1sCisKKyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmdlbmVyYXRlU2VxdWVuY2VOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SGlz
dG9yeUl0ZW06Okhpc3RvcnlJdGVtKToKKyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmg6
CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0SXRlbVNlcXVlbmNlTnVtYmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjppdGVtU2VxdWVuY2VOdW1iZXIpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZEl0ZW0pOgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6dXBkYXRlQmFja0ZvcndhcmRM
aXN0Rm9yRnJhZ21lbnRTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xs
ZXI6OmNyZWF0ZUl0ZW1UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVy
OjpyZWN1cnNpdmVHb1RvSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxl
cjo6cHVzaFN0YXRlKToKKwogMjAxMC0wNi0xNSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBXZWJDb3JlJ3MgYW5kIEphdmFTY3JpcHRDb3JlJ3MgRGVyaXZl
ZFNvdXJjZXMgYXZhaWxhYmxlIGZvciBkZWJ1Z2dpbmcgaW4gcHJvZHVjdGlvbiBidWlsZHMKSW5k
ZXg6IFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAkocmV2aXNpb24gNjA5NzgpCisrKyBXZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGxvbmcgbG9uZyBnZW5lcmF0ZURvY3VtZW50
U2VxdWVuY2VOdW1iZXIoKQorc3RhdGljIGxvbmcgbG9uZyBnZW5lcmF0ZVNlcXVlbmNlTnVtYmVy
KCkKIHsKICAgICAvLyBJbml0aWFsaXplIHRvIHRoZSBjdXJyZW50IHRpbWUgdG8gcmVkdWNlIHRo
ZSBsaWtlbGlob29kIG9mIGdlbmVyYXRpbmcKICAgICAvLyBpZGVudGlmaWVycyB0aGF0IG92ZXJs
YXAgd2l0aCB0aG9zZSBmcm9tIHBhc3QvZnV0dXJlIGJyb3dzZXIgc2Vzc2lvbnMuCkBAIC01Nyw3
ICs1Nyw4IEBAIEhpc3RvcnlJdGVtOjpIaXN0b3J5SXRlbSgpCiAgICAgLCBtX2xhc3RWaXNpdFdh
c0ZhaWx1cmUoZmFsc2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAsIG1fdmlz
aXRDb3VudCgwKQotICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlRG9jdW1l
bnRTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2VuZXJhdGVT
ZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRl
U2VxdWVuY2VOdW1iZXIoKSkKIHsKIH0KIApAQCAtNzAsNyArNzEsOCBAQCBIaXN0b3J5SXRlbTo6
SGlzdG9yeUl0ZW0oY29uc3QgU3RyaW5nJiB1CiAgICAgLCBtX2xhc3RWaXNpdFdhc0ZhaWx1cmUo
ZmFsc2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAsIG1fdmlzaXRDb3VudCgw
KQotICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlRG9jdW1lbnRTZXF1ZW5j
ZU51bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2VuZXJhdGVTZXF1ZW5jZU51
bWJlcigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VO
dW1iZXIoKSkKIHsgICAgCiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdlVVJM
KG1fdXJsU3RyaW5nKTsKIH0KQEAgLTg1LDcgKzg3LDggQEAgSGlzdG9yeUl0ZW06Okhpc3RvcnlJ
dGVtKGNvbnN0IFN0cmluZyYgdQogICAgICwgbV9sYXN0VmlzaXRXYXNGYWlsdXJlKGZhbHNlKQog
ICAgICwgbV9pc1RhcmdldEl0ZW0oZmFsc2UpCiAgICAgLCBtX3Zpc2l0Q291bnQoMCkKLSAgICAs
IG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZURvY3VtZW50U2VxdWVuY2VOdW1iZXIo
KSkKKyAgICAsIG1faXRlbVNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIoKSkK
KyAgICAsIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZVNlcXVlbmNlTnVtYmVyKCkp
CiB7CiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdlVVJMKG1fdXJsU3RyaW5n
KTsKIH0KQEAgLTEwMSw3ICsxMDQsOCBAQCBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0oY29uc3Qg
S1VSTCYgdXJsCiAgICAgLCBtX2xhc3RWaXNpdFdhc0ZhaWx1cmUoZmFsc2UpCiAgICAgLCBtX2lz
VGFyZ2V0SXRlbShmYWxzZSkKICAgICAsIG1fdmlzaXRDb3VudCgwKQotICAgICwgbV9kb2N1bWVu
dFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlRG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKQorICAgICwg
bV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2VuZXJhdGVTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9k
b2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIoKSkKIHsgICAgCiAg
ICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdlVVJMKG1fdXJsU3RyaW5nKTsKIH0K
QEAgLTEzMyw3ICsxMzcsOCBAQCBpbmxpbmUgSGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVtKGNvbnN0
IEhpCiAgICAgLCBtX3Zpc2l0Q291bnQoaXRlbS5tX3Zpc2l0Q291bnQpCiAgICAgLCBtX2RhaWx5
VmlzaXRDb3VudHMoaXRlbS5tX2RhaWx5VmlzaXRDb3VudHMpCiAgICAgLCBtX3dlZWtseVZpc2l0
Q291bnRzKGl0ZW0ubV93ZWVrbHlWaXNpdENvdW50cykKLSAgICAsIG1fZG9jdW1lbnRTZXF1ZW5j
ZU51bWJlcihnZW5lcmF0ZURvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSkKKyAgICAsIG1faXRlbVNl
cXVlbmNlTnVtYmVyKGl0ZW0ubV9pdGVtU2VxdWVuY2VOdW1iZXIpCisgICAgLCBtX2RvY3VtZW50
U2VxdWVuY2VOdW1iZXIoaXRlbS5tX2RvY3VtZW50U2VxdWVuY2VOdW1iZXIpCiAgICAgLCBtX2Zv
cm1Db250ZW50VHlwZShpdGVtLm1fZm9ybUNvbnRlbnRUeXBlKQogewogICAgIGlmIChpdGVtLm1f
Zm9ybURhdGEpCkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAkocmV2aXNpb24gNjA5NzgpCisrKyBX
ZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDYgKzEz
Niw5IEBAIHB1YmxpYzogCiAgICAgdm9pZCBzZXRTdGF0ZU9iamVjdChQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gb2JqZWN0KTsKICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHN0
YXRlT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZU9iamVjdC5nZXQoKTsgfQogCisgICAg
dm9pZCBzZXRJdGVtU2VxdWVuY2VOdW1iZXIobG9uZyBsb25nIG51bWJlcikgeyBtX2l0ZW1TZXF1
ZW5jZU51bWJlciA9IG51bWJlcjsgfQorICAgIGxvbmcgbG9uZyBpdGVtU2VxdWVuY2VOdW1iZXIo
KSBjb25zdCB7IHJldHVybiBtX2l0ZW1TZXF1ZW5jZU51bWJlcjsgfQorCiAgICAgdm9pZCBzZXRE
b2N1bWVudFNlcXVlbmNlTnVtYmVyKGxvbmcgbG9uZyBudW1iZXIpIHsgbV9kb2N1bWVudFNlcXVl
bmNlTnVtYmVyID0gbnVtYmVyOyB9CiAgICAgbG9uZyBsb25nIGRvY3VtZW50U2VxdWVuY2VOdW1i
ZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50U2VxdWVuY2VOdW1iZXI7IH0KICAgICAKQEAg
LTI0Miw2ICsyNDUsOCBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
bV9yZWRpcmVjdFVSTHM7CiAKKyAgICBsb25nIGxvbmcgbV9pdGVtU2VxdWVuY2VOdW1iZXI7CisK
ICAgICAvLyBTdXBwb3J0IGZvciBIVE1MNSBIaXN0b3J5CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbV9zdGF0ZU9iamVjdDsKICAgICBsb25nIGxvbmcgbV9kb2N1bWVudFNlcXVl
bmNlTnVtYmVyOwpJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gNjA5NzgpCisr
KyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1NDIs
MTQgKzM1NDIsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bmF2aWdhdGVUb0RpZmZlcmVudERvYwog
dm9pZCBGcmFtZUxvYWRlcjo6bG9hZEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0sIEZyYW1lTG9hZFR5
cGUgbG9hZFR5cGUpCiB7CiAgICAgLy8gV2UgZG8gc2FtZS1kb2N1bWVudCBuYXZpZ2F0aW9uIGlu
IHRoZSBmb2xsb3dpbmcgY2FzZXM6Ci0gICAgLy8gLSBUaGUgSGlzdG9yeUl0ZW0gaGFzIGEgaGlz
dG9yeSBzdGF0ZSBvYmplY3QKLSAgICAvLyAtIE5hdmlnYXRpbmcgdG8gYW4gYW5jaG9yIHdpdGhp
biB0aGUgcGFnZSwgd2l0aCBubyBmb3JtIGRhdGEgc3RvcmVkIG9uIHRoZSB0YXJnZXQgaXRlbSBv
ciB0aGUgY3VycmVudCBoaXN0b3J5IGVudHJ5LAotICAgIC8vICAgYW5kIHRoZSBVUkxzIGluIHRo
ZSBmcmFtZSB0cmVlIG1hdGNoIHRoZSBoaXN0b3J5IGl0ZW0gZm9yIGZyYWdtZW50IHNjcm9sbGlu
Zy4KLSAgICAvLyAtIFRoZSBIaXN0b3J5SXRlbSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGN1cnJl
bnQgaXRlbSwgYmVjYXVzZSBzdWNoIGNhc2VzIGFyZSB0cmVhdGVkIGFzIGEgbmV3IGxvYWQuCisg
ICAgLy8gLSBUaGUgSGlzdG9yeUl0ZW0gY29ycmVzcG9uZHMgdG8gdGhlIHNhbWUgZG9jdW1lbnQu
CisgICAgLy8gLSBUaGUgSGlzdG9yeUl0ZW0gaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50
IGl0ZW0uCiAgICAgSGlzdG9yeUl0ZW0qIGN1cnJlbnRJdGVtID0gaGlzdG9yeSgpLT5jdXJyZW50
SXRlbSgpOwotICAgIGJvb2wgc2FtZURvY3VtZW50TmF2aWdhdGlvbiA9ICgoIWl0ZW0tPmZvcm1E
YXRhKCkgJiYgIShjdXJyZW50SXRlbSAmJiBjdXJyZW50SXRlbS0+Zm9ybURhdGEoKSkgJiYgaGlz
dG9yeSgpLT51cmxzTWF0Y2hJdGVtKGl0ZW0pKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHx8IChjdXJyZW50SXRlbSAmJiBpdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkg
PT0gY3VycmVudEl0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJiYgaXRlbSAhPSBjdXJyZW50SXRlbTsKKyAgICBib29sIHNh
bWVEb2N1bWVudE5hdmlnYXRpb24gPSBjdXJyZW50SXRlbSAmJiBpdGVtICE9IGN1cnJlbnRJdGVt
CisgICAgICAgICYmIGl0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSA9PSBjdXJyZW50SXRl
bS0+ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpOwogCiAjaWYgRU5BQkxFKFdNTCkKICAgICAvLyBB
bGwgV01MIGRlY2tzIHNob3VsZCBnbyB0aHJvdWdoIHRoZSByZWFsIGxvYWQgbWVjaGFuaXNtLCBu
b3QgdGhlIHNjcm9sbC10by1hbmNob3IgY29kZQpJbmRleDogV2ViQ29yZS9sb2FkZXIvSGlzdG9y
eUNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcAkocmV2aXNpb24gNjA5NzgpCisrKyBXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29u
dHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwxNCArMTA2LDYgQEAgdm9pZCBIaXN0
b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvcwogdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6
dXBkYXRlQmFja0ZvcndhcmRMaXN0Rm9yRnJhZ21lbnRTY3JvbGwoKQogewogICAgIHVwZGF0ZUJh
Y2tGb3J3YXJkTGlzdENsaXBwZWRBdFRhcmdldChmYWxzZSk7Ci0gICAgCi0gICAgLy8gU2luY2Ug
dGhlIGRvY3VtZW50IGlzbid0IGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgYSBmcmFnbWVudCBzY3Jv
bGwsIHdlIHNob3VsZAotICAgIC8vIHByZXNlcnZlIHRoZSBEb2N1bWVudFNlcXVlbmNlTnVtYmVy
IG9mIHRoZSBwcmV2aW91cyBpdGVtLgotICAgIGlmICghbV9wcmV2aW91c0l0ZW0pCi0gICAgICAg
IHJldHVybjsKLQotICAgIEFTU0VSVChtX2N1cnJlbnRJdGVtKTsKLSAgICBtX2N1cnJlbnRJdGVt
LT5zZXREb2N1bWVudFNlcXVlbmNlTnVtYmVyKG1fcHJldmlvdXNJdGVtLT5kb2N1bWVudFNlcXVl
bmNlTnVtYmVyKCkpOwogfQogCiB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpzYXZlRG9jdW1lbnRT
dGF0ZSgpCkBAIC01MjEsOSArNTEzLDIxIEBAIFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+IEhpc3Rv
cnlDb250cm9sbGUKICAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IGJmSXRlbSA9IGNyZWF0ZUl0ZW0o
bV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSA/IHRydWUgOiBmYWxzZSk7CiAgICAgaWYgKG1fcHJl
dmlvdXNJdGVtKQogICAgICAgICBzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0o
bV9wcmV2aW91c0l0ZW0uZ2V0KCkpOwotICAgIGlmICghKGNsaXBBdFRhcmdldCAmJiBtX2ZyYW1l
ID09IHRhcmdldEZyYW1lKSkgeworCisgICAgaWYgKCFjbGlwQXRUYXJnZXQgfHwgbV9mcmFtZSAh
PSB0YXJnZXRGcmFtZSkgewogICAgICAgICAvLyBzYXZlIGZyYW1lIHN0YXRlIGZvciBpdGVtcyB0
aGF0IGFyZW4ndCBsb2FkaW5nIChraHRtbCBkb2Vzbid0IHNhdmUgdGhvc2UpCiAgICAgICAgIHNh
dmVEb2N1bWVudFN0YXRlKCk7CisKKyAgICAgICAgLy8gY2xpcEF0VGFyZ2V0IGlzIGZhbHNlIGZv
ciBuYXZpZ2F0aW9ucyB3aXRoaW4gdGhlIHNhbWUgZG9jdW1lbnQsIHNvCisgICAgICAgIC8vIHdl
IHNob3VsZCBjb3B5IHRoZSBkb2N1bWVudFNlcXVlbmNlTnVtYmVyIG92ZXIgdG8gdGhlIG5ld2x5
IGNyZWF0ZQorICAgICAgICAvLyBpdGVtLiAgTm9uLXRhcmdldCBpdGVtcyBhcmUganVzdCBjbG9u
ZXMsIGFuZCB0aGV5IHNob3VsZCB0aGVyZWZvcmUKKyAgICAgICAgLy8gcHJlc2VydmUgdGhlIHNh
bWUgaXRlbVNlcXVlbmNlTnVtYmVyLgorICAgICAgICBpZiAobV9wcmV2aW91c0l0ZW0pIHsKKyAg
ICAgICAgICAgIGlmIChtX2ZyYW1lICE9IHRhcmdldEZyYW1lKQorICAgICAgICAgICAgICAgIGJm
SXRlbS0+c2V0SXRlbVNlcXVlbmNlTnVtYmVyKG1fcHJldmlvdXNJdGVtLT5pdGVtU2VxdWVuY2VO
dW1iZXIoKSk7CisgICAgICAgICAgICBiZkl0ZW0tPnNldERvY3VtZW50U2VxdWVuY2VOdW1iZXIo
bV9wcmV2aW91c0l0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSk7CisgICAgICAgIH0KKwog
ICAgICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IG1fZnJhbWUtPnRyZWUoKS0+Zmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygpKSB7CiAgICAgICAg
ICAgICBGcmFtZUxvYWRlciogY2hpbGRMb2FkZXIgPSBjaGlsZC0+bG9hZGVyKCk7CiAgICAgICAg
ICAgICBib29sIGhhc0NoaWxkTG9hZGVkID0gY2hpbGRMb2FkZXItPmZyYW1lSGFzTG9hZGVkKCk7
CkBAIC01MzYsNiArNTQwLDcgQEAgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4gSGlzdG9yeUNvbnRy
b2xsZQogICAgICAgICAgICAgICAgIGJmSXRlbS0+YWRkQ2hpbGRJdGVtKGNoaWxkTG9hZGVyLT5o
aXN0b3J5KCktPmNyZWF0ZUl0ZW1UcmVlKHRhcmdldEZyYW1lLCBjbGlwQXRUYXJnZXQpKTsKICAg
ICAgICAgfQogICAgIH0KKyAgICAvLyBGSVhNRTogRWxpbWluYXRlIHRoZSBpc1RhcmdldEl0ZW0g
ZmxhZyBpbiBmYXZvciBvZiBpdGVtU2VxdWVuY2VOdW1iZXIuCiAgICAgaWYgKG1fZnJhbWUgPT0g
dGFyZ2V0RnJhbWUpCiAgICAgICAgIGJmSXRlbS0+c2V0SXNUYXJnZXRJdGVtKHRydWUpOwogICAg
IHJldHVybiBiZkl0ZW07CkBAIC01NTAsMjEgKzU1NSwxMyBAQCB2b2lkIEhpc3RvcnlDb250cm9s
bGVyOjpyZWN1cnNpdmVHb1RvSXRlCiAgICAgQVNTRVJUKGl0ZW0pOwogICAgIEFTU0VSVChmcm9t
SXRlbSk7CiAKLSAgICBLVVJMIGl0ZW1VUkwgPSBpdGVtLT51cmwoKTsKLSAgICBLVVJMIGN1cnJl
bnRVUkw7Ci0gICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpKQotICAg
ICAgICBjdXJyZW50VVJMID0gbV9mcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnVy
bCgpOwotCi0gICAgLy8gQWx3YXlzIHJlbG9hZCB0aGUgdGFyZ2V0IGZyYW1lIG9mIHRoZSBpdGVt
IHdlJ3JlIGdvaW5nIHRvLiAgVGhpcyBlbnN1cmVzIHRoYXQgd2Ugd2lsbAotICAgIC8vIGRvIC1z
b21lLSBsb2FkIGZvciB0aGUgdHJhbnNpdGlvbiwgd2hpY2ggbWVhbnMgYSBwcm9wZXIgbm90aWZp
Y2F0aW9uIHdpbGwgYmUgcG9zdGVkCi0gICAgLy8gdG8gdGhlIGFwcC4KLSAgICAvLyBUaGUgZXhh
Y3QgVVJMIGhhcyB0byBtYXRjaCwgaW5jbHVkaW5nIGZyYWdtZW50LiAgV2Ugd2FudCB0byBnbyB0
aHJvdWdoIHRoZSBfbG9hZAotICAgIC8vIG1ldGhvZCwgZXZlbiBpZiB0byBkbyBhIHdpdGhpbi1w
YWdlIG5hdmlnYXRpb24uCi0gICAgLy8gVGhlIGN1cnJlbnQgZnJhbWUgdHJlZSBhbmQgdGhlIGZy
YW1lIHRyZWUgc25hcHNob3QgaW4gdGhlIGl0ZW0gaGF2ZSB0byBtYXRjaC4KLSAgICBpZiAoIWl0
ZW0tPmlzVGFyZ2V0SXRlbSgpICYmCi0gICAgICAgIGl0ZW1VUkwgPT0gY3VycmVudFVSTCAmJgot
ICAgICAgICAoKG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpLmlzRW1wdHkoKSAmJiBpdGVtLT50YXJn
ZXQoKS5pc0VtcHR5KCkpIHx8IG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpID09IGl0ZW0tPnRhcmdl
dCgpKSAmJgotICAgICAgICBjaGlsZEZyYW1lc01hdGNoSXRlbShpdGVtKSkKKyAgICAvLyBJZiB0
aGUgaXRlbSB3ZSdyZSBnb2luZyB0byBpcyBhIGNsb25lIG9mIHRoZSBpdGVtIHdlJ3JlIGF0LCB0
aGVuIGRvCisgICAgLy8gbm90IGxvYWQgaXQgYWdhaW4sIGFuZCBjb250aW51ZSBoaXN0b3J5IHRy
YXZlcnNhbCB0byBpdHMgY2hpbGRyZW4uCisgICAgLy8gVGhlIGN1cnJlbnQgZnJhbWUgdHJlZSBh
bmQgdGhlIGZyYW1lIHRyZWUgc25hcHNob3QgaW4gdGhlIGl0ZW0gaGF2ZQorICAgIC8vIHRvIG1h
dGNoLgorICAgIGlmIChpdGVtLT5pdGVtU2VxdWVuY2VOdW1iZXIoKSA9PSBmcm9tSXRlbS0+aXRl
bVNlcXVlbmNlTnVtYmVyKCkKKyAgICAgICAgJiYgKChtX2ZyYW1lLT50cmVlKCktPm5hbWUoKS5p
c0VtcHR5KCkgJiYgaXRlbS0+dGFyZ2V0KCkuaXNFbXB0eSgpKSB8fCBtX2ZyYW1lLT50cmVlKCkt
Pm5hbWUoKSA9PSBpdGVtLT50YXJnZXQoKSkKKyAgICAgICAgJiYgY2hpbGRGcmFtZXNNYXRjaEl0
ZW0oaXRlbSkpCiAgICAgewogICAgICAgICAvLyBUaGlzIGNvbnRlbnQgaXMgZ29vZCwgc28gbGVh
dmUgaXQgYWxvbmUgYW5kIGxvb2sgZm9yIGNoaWxkcmVuIHRoYXQgbmVlZCByZWxvYWRpbmcKICAg
ICAgICAgLy8gU2F2ZSBmb3JtIHN0YXRlICh3b3JrcyBmcm9tIGN1cnJlbnRJdGVtLCBzaW5jZSBw
cmV2SXRlbSBpcyBuaWwpCkBAIC02NTksMTAgKzY1Niw2IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xs
ZXI6OnB1c2hTdGF0ZShQYXNzUmUKICAgICBpdGVtLT5zZXRTdGF0ZU9iamVjdChzdGF0ZU9iamVj
dCk7CiAgICAgaXRlbS0+c2V0VVJMU3RyaW5nKHVybFN0cmluZyk7CiAKLSAgICAvLyBTaW5jZSB0
aGUgZG9jdW1lbnQgaXNuJ3QgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBhIHB1c2hTdGF0ZSBjYWxs
LCB3ZQotICAgIC8vIHNob3VsZCBwcmVzZXJ2ZSB0aGUgRG9jdW1lbnRTZXF1ZW5jZU51bWJlciBv
ZiB0aGUgcHJldmlvdXMgaXRlbS4KLSAgICBpdGVtLT5zZXREb2N1bWVudFNlcXVlbmNlTnVtYmVy
KG1fcHJldmlvdXNJdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkpOwotICAgIAogICAgIHBh
Z2UtPmJhY2tGb3J3YXJkTGlzdCgpLT5wdXNoU3RhdGVJdGVtKGl0ZW0ucmVsZWFzZSgpKTsKIH0K
IApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2MTE5NikKKysrIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNi0xMSAgRGFy
aW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBXZWJIaXN0b3J5SXRlbTo6aXRlbVNlcXVl
bmNlTnVtYmVyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDQ1MQorCisgICAgICAgICogcHVibGljL1dlYkhpc3RvcnlJdGVtLmg6CisgICAgICAg
ICogc3JjL1dlYkhpc3RvcnlJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSGlzdG9yeUl0
ZW06Oml0ZW1TZXF1ZW5jZU51bWJlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkhpc3RvcnlJdGVt
OjpzZXRJdGVtU2VxdWVuY2VOdW1iZXIpOgorCiAyMDEwLTA2LTE0ICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IENocm9taXVtIGJ1aWxkLgpJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIaXN0b3J5SXRlbS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSGlzdG9yeUl0ZW0uaAkocmV2aXNpb24gNjA5Nzgp
CisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkhpc3RvcnlJdGVtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMiw2ICsxMDIsOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBXZWJWZWN0b3I8
V2ViU3RyaW5nPiBkb2N1bWVudFN0YXRlKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNl
dERvY3VtZW50U3RhdGUoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mKTsKIAorICAgIFdFQktJ
VF9BUEkgbG9uZyBsb25nIGl0ZW1TZXF1ZW5jZU51bWJlcigpIGNvbnN0OworICAgIFdFQktJVF9B
UEkgdm9pZCBzZXRJdGVtU2VxdWVuY2VOdW1iZXIobG9uZyBsb25nKTsKKwogICAgIFdFQktJVF9B
UEkgbG9uZyBsb25nIGRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSBjb25zdDsKICAgICBXRUJLSVRf
QVBJIHZvaWQgc2V0RG9jdW1lbnRTZXF1ZW5jZU51bWJlcihsb25nIGxvbmcpOwogCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhpc3RvcnlJdGVtLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkhpc3RvcnlJdGVtLmNwcAkocmV2aXNpb24gNjA5NzgpCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhpc3RvcnlJdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjAxLDYgKzIwMSwxNyBAQCB2b2lkIFdlYkhpc3RvcnlJdGVtOjpzZXREb2N1bWVudFN0YXRlKGNv
CiAgICAgbV9wcml2YXRlLT5zZXREb2N1bWVudFN0YXRlKGRzKTsKIH0KIAorbG9uZyBsb25nIFdl
Ykhpc3RvcnlJdGVtOjppdGVtU2VxdWVuY2VOdW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ByaXZhdGUtPml0ZW1TZXF1ZW5jZU51bWJlcigpOworfQorCit2b2lkIFdlYkhpc3RvcnlJdGVt
OjpzZXRJdGVtU2VxdWVuY2VOdW1iZXIobG9uZyBsb25nIGl0ZW1TZXF1ZW5jZU51bWJlcikKK3sK
KyAgICBlbnN1cmVNdXRhYmxlKCk7CisgICAgbV9wcml2YXRlLT5zZXRJdGVtU2VxdWVuY2VOdW1i
ZXIoaXRlbVNlcXVlbmNlTnVtYmVyKTsKK30KKwogbG9uZyBsb25nIFdlYkhpc3RvcnlJdGVtOjpk
b2N1bWVudFNlcXVlbmNlTnVtYmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5k
b2N1bWVudFNlcXVlbmNlTnVtYmVyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58795</attachid>
            <date>2010-06-15 10:21:57 -0700</date>
            <delta_ts>2010-06-15 11:59:38 -0700</delta_ts>
            <desc>v4 patch</desc>
            <filename>item-sn-4.txt</filename>
            <type>text/plain</type>
            <size>20276</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjExOTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNi0xNSAgRGFyaW4gRmlzaGVyICA8
ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3QgdGhhdCBhIGJhY2sgbmF2aWdhdGlvbiBmb2xsb3dpbmcgYSBzdWJm
cmFtZSByZWZlcmVuY2UgZnJhZ21lbnQKKyAgICAgICAgbmF2aWdhdGlvbiBkb2VzIHRoZSByaWdo
dCB0aGluZy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDA0NTEKKworICAgICAgICAqIGZhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2l0aGluLXN1
YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9yZXNvdXJjZXMvaGlz
dG9yeS1iYWNrLXdpdGhpbi1zdWJmcmFtZS0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbmF2aWdhdGlvbi9oaXN0b3J5LWJhY2stYWNyb3NzLWZvcm0tc3VibWlzc2lvbi10by1m
cmFnbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdh
dGlvbi9oaXN0b3J5LWJhY2stYWNyb3NzLWZvcm0tc3VibWlzc2lvbi10by1mcmFnbWVudC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3N1Ym1p
dC10by1mcmFnbWVudC5wbDogQWRkZWQuCisKIDIwMTAtMDYtMTUgIERhbiBCZXJuc3RlaW4gIDxt
aXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13aXRoaW4tc3ViZnJhbWUu
aHRtbA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJh
Y2std2l0aGluLXN1YmZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdpdGhpbi1zdWJmcmFtZS5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEyIEBACis8Ym9keT4KKzxzY3JpcHQ+CitvbmxvYWQgPSBmdW5jdGlvbigpIHsK
KyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgIH0KK30KKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9oaXN0b3J5
LWJhY2std2l0aGluLXN1YmZyYW1lLTIuaHRtbCI+PC9pZnJhbWU+Cis8ZGl2IGlkPSJyZXN1bHQi
PkZBSUw8L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNv
dXJjZXMvaGlzdG9yeS1iYWNrLXdpdGhpbi1zdWJmcmFtZS0yLmh0bWwNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBMYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL2hpc3RvcnktYmFjay13aXRoaW4t
c3ViZnJhbWUtMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3Jlc291cmNlcy9oaXN0b3J5LWJhY2std2l0aGluLXN1YmZyYW1lLTIuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNyBAQAorPHNjcmlwdD4KK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIGxvY2F0aW9uLmhhc2ggPSAiI2ZvbyI7CisgIH0s
IDApOworfQorb25oYXNoY2hhbmdlID0gZnVuY3Rpb24oKSB7CisgIGlmIChsb2NhdGlvbi5oYXNo
ID09ICIjZm9vIikgeworICAgIGhpc3RvcnkuYmFjaygpOworICB9CisgIGlmIChsb2NhdGlvbi5o
YXNoID09ICIiKSB7CisgICAgcGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQi
KS5pbm5lclRleHQgPSAiUEFTUyI7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQorfQorPC9z
Y3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaGlzdG9yeS1i
YWNrLWFjcm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21lbnQtZXhwZWN0ZWQudHh0DQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2hpc3RvcnktYmFj
ay1hY3Jvc3MtZm9ybS1zdWJtaXNzaW9uLXRvLWZyYWdtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9oaXN0b3J5LWJhY2st
YWNyb3NzLWZvcm0tc3VibWlzc2lvbi10by1mcmFnbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsOCBAQAorbWFpbiBmcmFtZSAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIo
cykKK0FMRVJUOiBzdGFnZTogMQorbWFpbiBmcmFtZSAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIo
cykKK0FMRVJUOiBzdGFnZTogMgorbWFpbiBmcmFtZSAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIo
cykKK0FMRVJUOiBzdGFnZTogMworICAKK1BBU1MKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9oaXN0b3J5LWJhY2stYWNyb3NzLWZvcm0tc3VibWlzc2lvbi10by1mcmFn
bWVudC5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL2hpc3RvcnktYmFjay1hY3Jvc3MtZm9ybS1zdWJtaXNzaW9uLXRvLWZyYWdtZW50Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaGlzdG9y
eS1iYWNrLWFjcm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21lbnQuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNiBAQAorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKy8vIFRoaXMgdGVzdCBj
b25maXJtcyB0aGF0IHdoZW4gd2Ugc3VibWl0IGEgZm9ybSB0byBhIHJlZmVyZW5jZSBmcmFnbWVu
dCwgdGhhdAorLy8gbmF2aWdhdGluZyBiYWNrLCBjYXVzZXMgdGhlIHBhZ2UgdG8gbG9hZCBhZ2Fp
bi4gIFdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgdGhlCisvLyBmb3JtIHN1Ym1pc3Npb24gY3JlYXRl
ZCBhIG5ldyBkb2N1bWVudCBhbmQgdGhhdCB3aGVuIG5hdmlnYXRpbmcgYmFjaywgd2UKKy8vIGRv
bid0IGNvbmZ1c2UgdGhpcyBhcyBhIHNhbWUtZG9jdW1lbnQgbmF2aWdhdGlvbi4KK29ubG9hZCA9
IGZ1bmN0aW9uKCkgeworICBzZXNzaW9uU3RvcmFnZS5zdGFnZSA9IDE7CisgIGxvY2F0aW9uID0g
InJlc291cmNlcy9zdWJtaXQtdG8tZnJhZ21lbnQucGwiOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3N1Ym1p
dC10by1mcmFnbWVudC5wbA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZXNvdXJjZXMvc3VibWl0LXRvLWZyYWdtZW50LnBsCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWJtaXQtdG8t
ZnJhZ21lbnQucGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKyMhL3Vzci9iaW4vcGVy
bCAtdworCit1c2Ugc3RyaWN0OwordXNlIENHSTsKKworbXkgJGNnaSA9IG5ldyBDR0k7CisKK3By
aW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbFxuIjsKK3ByaW50ICJcbiI7CisKK3ByaW50IDw8
IkVORCI7Cis8Zm9ybSBtZXRob2Q9IlBPU1QiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZv
cm0tdXJsZW5jb2RlZCIgYWN0aW9uPSIjZm9vIj4KKyAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9
ImYiPgorICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KKzwvZm9ybT4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0Pgorb251bmxvYWQgPSBmdW5jdGlvbigpIHsK
KyAgLy8gbm8gcGFnZSBjYWNoZQorfQorb25sb2FkID0gZnVuY3Rpb24oKSB7CisgIGFsZXJ0KCJz
dGFnZTogIiArIHNlc3Npb25TdG9yYWdlLnN0YWdlKTsKKyAgc3dpdGNoIChzZXNzaW9uU3RvcmFn
ZS5zdGFnZSsrKSB7CisgIGNhc2UgMToKKyAgICBkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsK
KyAgICBicmVhazsKKyAgY2FzZSAyOgorICAgIGhpc3RvcnkuYmFjaygpOworICAgIGJyZWFrOwor
ICBjYXNlIDM6CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4
dCA9ICJQQVNTIjsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGJyZWFrOworICB9Cit9Cis8
L3NjcmlwdD4KK0VORAoNClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzXGh0dHBcdGVz
dHNcbmF2aWdhdGlvblxyZXNvdXJjZXNcc3VibWl0LXRvLWZyYWdtZW50LnBsDQpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
DQpBZGRlZDogc3ZuOmV4ZWN1dGFibGUNCiAgICsgKg0KDQpJbmRleDogV2ViQ29yZS9DaGFuZ2VM
b2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNjExOTYpCisr
KyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDEw
LTA2LTE1ICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIEhpc3RvcnlJdGVt
OjppdGVtU2VxdWVuY2VOdW1iZXIgYW5kIHVzZSBpdCB0byBpZGVudGlmeQorICAgICAgICBIaXN0
b3J5SXRlbXMgdGhhdCBhcmUgY2xvbmVzIG9mIG9uZSBhbm90aGVyLgorCisgICAgICAgIENoYW5n
ZXMgSGlzdG9yeUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtIHRvIHVzZSBpdGVtU2VxdWVu
Y2VOdW1iZXIKKyAgICAgICAgZXF1YWxpdHkgaW5zdGVhZCBvZiBpc1RhcmdldEl0ZW0gYXMgdGhl
IHByZS1yZXF1aXNpdGUgZm9yIG5vdCBjYWxsaW5nCisgICAgICAgIEZyYW1lTG9hZGVyOjpsb2Fk
SXRlbS4KKworICAgICAgICBDaGFuZ2VzIEZyYW1lTG9hZGVyOjpsb2FkSXRlbSB0byByZXF1aXJl
IGVxdWl2YWxlbnQKKyAgICAgICAgZG9jdW1lbnRTZXF1ZW5jZU51bWJlciBiZWZvcmUgaW5pdGlh
dGluZyBhIHNhbWUgZG9jdW1lbnQgbmF2aWdhdGlvbi4KKyAgICAgICAgVGhpcyBhbG9uZSB3b3Vs
ZCBhcHBlYXIgdG8gZml4IHRoZSBidWcsIGJ1dCBpdCBkb2VzIG5vdCBnbyBmYXIgZW5vdWdoCisg
ICAgICAgIHNpbmNlIHdpdGhvdXQgdGhlIGl0ZW1TZXF1ZW5jZU51bWJlciBlcXVhbGl0eSBjaGVj
aywgd2UnZCByZS1sb2FkIG1vcmUKKyAgICAgICAgb2Z0ZW4gdGhhbiB3ZSBzaG91bGQuCisKKyAg
ICAgICAgTW92ZXMgZG9jdW1lbnRTZXF1ZW5jZU51bWJlciBhc3NpZ25tZW50IGludG8gY3JlYXRl
SXRlbVRyZWUgYXMgY2xlYW51cAorICAgICAgICBhbmQgdG8gZW5zdXJlIHRoYXQgaXQgZ2V0cyBj
YWxsZWQgcHJvcGVybHkgd2hlbmV2ZXIgd2UgY3JlYXRlIGEgY2xvbmVkCisgICAgICAgIEhpc3Rv
cnlJdGVtLiAgKGNyZWF0ZUl0ZW1UcmVlJ3MgbWlzc2lvbiBpcyB0byBjcmVhdGUgY2xvbmVzIHVw
IHVudGlsCisgICAgICAgIG9yIGluY2x1ZGluZyB0aGUgdGFyZ2V0IGZyYW1lIGRlcGVuZGluZyBv
biB0aGUgdmFsdWUgb2YgdGhlIGRvQ2xpcAorICAgICAgICBwYXJhbWV0ZXIuKQorCisgICAgICAg
IFJlbW92ZXMgdGhlIG5vdyB1bnVzZWQgSGlzdG9yeUNvbnRyb2xsZXI6OnVybHNNYXRjaEl0ZW0u
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNDUx
CisKKyAgICAgICAgVGVzdDogZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13aXRoaW4tc3ViZnJh
bWUuaHRtbAorICAgICAgICAgICAgICBodHRwL3Rlc3RzL25hdmlnYXRpb24vaGlzdG9yeS1iYWNr
LWFjcm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21lbnQuaHRtbAorCisgICAgICAgICogaGlz
dG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVNlcXVlbmNl
TnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpIaXN0b3J5SXRlbSk6Cisg
ICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5oOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9y
eUl0ZW06OnNldEl0ZW1TZXF1ZW5jZU51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5
SXRlbTo6aXRlbVNlcXVlbmNlTnVtYmVyKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRJdGVtKToKKyAgICAgICAg
KiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9y
eUNvbnRyb2xsZXI6OnVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvckZyYWdtZW50U2Nyb2xsKToKKyAg
ICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpjcmVhdGVJdGVtVHJlZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZlR29Ub0l0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnB1c2hTdGF0ZSk6CisgICAgICAgICog
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmg6CisKIDIwMTAtMDYtMTUgIEFkYW0gUm9iZW4gIDxh
cm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZSdzIGFuZCBKYXZhU2NyaXB0
Q29yZSdzIERlcml2ZWRTb3VyY2VzIGF2YWlsYWJsZSBmb3IgZGVidWdnaW5nIGluIHByb2R1Y3Rp
b24gYnVpbGRzCkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAkocmV2aXNpb24gNjA5Nzgp
CisrKyBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw3ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGxvbmcgbG9uZyBn
ZW5lcmF0ZURvY3VtZW50U2VxdWVuY2VOdW1iZXIoKQorc3RhdGljIGxvbmcgbG9uZyBnZW5lcmF0
ZVNlcXVlbmNlTnVtYmVyKCkKIHsKICAgICAvLyBJbml0aWFsaXplIHRvIHRoZSBjdXJyZW50IHRp
bWUgdG8gcmVkdWNlIHRoZSBsaWtlbGlob29kIG9mIGdlbmVyYXRpbmcKICAgICAvLyBpZGVudGlm
aWVycyB0aGF0IG92ZXJsYXAgd2l0aCB0aG9zZSBmcm9tIHBhc3QvZnV0dXJlIGJyb3dzZXIgc2Vz
c2lvbnMuCkBAIC01Nyw3ICs1Nyw4IEBAIEhpc3RvcnlJdGVtOjpIaXN0b3J5SXRlbSgpCiAgICAg
LCBtX2xhc3RWaXNpdFdhc0ZhaWx1cmUoZmFsc2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxz
ZSkKICAgICAsIG1fdmlzaXRDb3VudCgwKQotICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVy
KGdlbmVyYXRlRG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VO
dW1iZXIoZ2VuZXJhdGVTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNl
TnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIoKSkKIHsKIH0KIApAQCAtNzAsNyArNzEsOCBA
QCBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0oY29uc3QgU3RyaW5nJiB1CiAgICAgLCBtX2xhc3RW
aXNpdFdhc0ZhaWx1cmUoZmFsc2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAs
IG1fdmlzaXRDb3VudCgwKQotICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRl
RG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2Vu
ZXJhdGVTZXF1ZW5jZU51bWJlcigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdl
bmVyYXRlU2VxdWVuY2VOdW1iZXIoKSkKIHsgICAgCiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFp
bkljb25Gb3JQYWdlVVJMKG1fdXJsU3RyaW5nKTsKIH0KQEAgLTg1LDcgKzg3LDggQEAgSGlzdG9y
eUl0ZW06Okhpc3RvcnlJdGVtKGNvbnN0IFN0cmluZyYgdQogICAgICwgbV9sYXN0VmlzaXRXYXNG
YWlsdXJlKGZhbHNlKQogICAgICwgbV9pc1RhcmdldEl0ZW0oZmFsc2UpCiAgICAgLCBtX3Zpc2l0
Q291bnQoMCkKLSAgICAsIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZURvY3VtZW50
U2VxdWVuY2VOdW1iZXIoKSkKKyAgICAsIG1faXRlbVNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2Vx
dWVuY2VOdW1iZXIoKSkKKyAgICAsIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZVNl
cXVlbmNlTnVtYmVyKCkpCiB7CiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdl
VVJMKG1fdXJsU3RyaW5nKTsKIH0KQEAgLTEwMSw3ICsxMDQsOCBAQCBIaXN0b3J5SXRlbTo6SGlz
dG9yeUl0ZW0oY29uc3QgS1VSTCYgdXJsCiAgICAgLCBtX2xhc3RWaXNpdFdhc0ZhaWx1cmUoZmFs
c2UpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShmYWxzZSkKICAgICAsIG1fdmlzaXRDb3VudCgwKQot
ICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlRG9jdW1lbnRTZXF1ZW5jZU51
bWJlcigpKQorICAgICwgbV9pdGVtU2VxdWVuY2VOdW1iZXIoZ2VuZXJhdGVTZXF1ZW5jZU51bWJl
cigpKQorICAgICwgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyKGdlbmVyYXRlU2VxdWVuY2VOdW1i
ZXIoKSkKIHsgICAgCiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25Gb3JQYWdlVVJMKG1f
dXJsU3RyaW5nKTsKIH0KQEAgLTEzMyw3ICsxMzcsOCBAQCBpbmxpbmUgSGlzdG9yeUl0ZW06Okhp
c3RvcnlJdGVtKGNvbnN0IEhpCiAgICAgLCBtX3Zpc2l0Q291bnQoaXRlbS5tX3Zpc2l0Q291bnQp
CiAgICAgLCBtX2RhaWx5VmlzaXRDb3VudHMoaXRlbS5tX2RhaWx5VmlzaXRDb3VudHMpCiAgICAg
LCBtX3dlZWtseVZpc2l0Q291bnRzKGl0ZW0ubV93ZWVrbHlWaXNpdENvdW50cykKLSAgICAsIG1f
ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcihnZW5lcmF0ZURvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSkK
KyAgICAsIG1faXRlbVNlcXVlbmNlTnVtYmVyKGl0ZW0ubV9pdGVtU2VxdWVuY2VOdW1iZXIpCisg
ICAgLCBtX2RvY3VtZW50U2VxdWVuY2VOdW1iZXIoaXRlbS5tX2RvY3VtZW50U2VxdWVuY2VOdW1i
ZXIpCiAgICAgLCBtX2Zvcm1Db250ZW50VHlwZShpdGVtLm1fZm9ybUNvbnRlbnRUeXBlKQogewog
ICAgIGlmIChpdGVtLm1fZm9ybURhdGEpCkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCShyZXZp
c2lvbiA2MDk3OCkKKysrIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzYsNiArMTM2LDkgQEAgcHVibGljOiAKICAgICB2b2lkIHNldFN0YXRlT2JqZWN0
KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBvYmplY3QpOwogICAgIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSogc3RhdGVPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlT2JqZWN0
LmdldCgpOyB9CiAKKyAgICB2b2lkIHNldEl0ZW1TZXF1ZW5jZU51bWJlcihsb25nIGxvbmcgbnVt
YmVyKSB7IG1faXRlbVNlcXVlbmNlTnVtYmVyID0gbnVtYmVyOyB9CisgICAgbG9uZyBsb25nIGl0
ZW1TZXF1ZW5jZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1faXRlbVNlcXVlbmNlTnVtYmVyOyB9
CisKICAgICB2b2lkIHNldERvY3VtZW50U2VxdWVuY2VOdW1iZXIobG9uZyBsb25nIG51bWJlcikg
eyBtX2RvY3VtZW50U2VxdWVuY2VOdW1iZXIgPSBudW1iZXI7IH0KICAgICBsb25nIGxvbmcgZG9j
dW1lbnRTZXF1ZW5jZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRTZXF1ZW5jZU51
bWJlcjsgfQogICAgIApAQCAtMjQyLDYgKzI0NSw4IEBAIHByaXZhdGU6CiAKICAgICBPd25QdHI8
VmVjdG9yPFN0cmluZz4gPiBtX3JlZGlyZWN0VVJMczsKIAorICAgIGxvbmcgbG9uZyBtX2l0ZW1T
ZXF1ZW5jZU51bWJlcjsKKwogICAgIC8vIFN1cHBvcnQgZm9yIEhUTUw1IEhpc3RvcnkKICAgICBS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX3N0YXRlT2JqZWN0OwogICAgIGxvbmcgbG9u
ZyBtX2RvY3VtZW50U2VxdWVuY2VOdW1iZXI7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHJldmlzaW9uIDYwOTc4KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNTQyLDE0ICszNTQyLDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6Om5hdmln
YXRlVG9EaWZmZXJlbnREb2MKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVt
KiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlKQogewogICAgIC8vIFdlIGRvIHNhbWUtZG9j
dW1lbnQgbmF2aWdhdGlvbiBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOgotICAgIC8vIC0gVGhlIEhp
c3RvcnlJdGVtIGhhcyBhIGhpc3Rvcnkgc3RhdGUgb2JqZWN0Ci0gICAgLy8gLSBOYXZpZ2F0aW5n
IHRvIGFuIGFuY2hvciB3aXRoaW4gdGhlIHBhZ2UsIHdpdGggbm8gZm9ybSBkYXRhIHN0b3JlZCBv
biB0aGUgdGFyZ2V0IGl0ZW0gb3IgdGhlIGN1cnJlbnQgaGlzdG9yeSBlbnRyeSwKLSAgICAvLyAg
IGFuZCB0aGUgVVJMcyBpbiB0aGUgZnJhbWUgdHJlZSBtYXRjaCB0aGUgaGlzdG9yeSBpdGVtIGZv
ciBmcmFnbWVudCBzY3JvbGxpbmcuCi0gICAgLy8gLSBUaGUgSGlzdG9yeUl0ZW0gaXMgbm90IHRo
ZSBzYW1lIGFzIHRoZSBjdXJyZW50IGl0ZW0sIGJlY2F1c2Ugc3VjaCBjYXNlcyBhcmUgdHJlYXRl
ZCBhcyBhIG5ldyBsb2FkLgorICAgIC8vIC0gVGhlIEhpc3RvcnlJdGVtIGNvcnJlc3BvbmRzIHRv
IHRoZSBzYW1lIGRvY3VtZW50LgorICAgIC8vIC0gVGhlIEhpc3RvcnlJdGVtIGlzIG5vdCB0aGUg
c2FtZSBhcyB0aGUgY3VycmVudCBpdGVtLgogICAgIEhpc3RvcnlJdGVtKiBjdXJyZW50SXRlbSA9
IGhpc3RvcnkoKS0+Y3VycmVudEl0ZW0oKTsKLSAgICBib29sIHNhbWVEb2N1bWVudE5hdmlnYXRp
b24gPSAoKCFpdGVtLT5mb3JtRGF0YSgpICYmICEoY3VycmVudEl0ZW0gJiYgY3VycmVudEl0ZW0t
PmZvcm1EYXRhKCkpICYmIGhpc3RvcnkoKS0+dXJsc01hdGNoSXRlbShpdGVtKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoY3VycmVudEl0ZW0gJiYgaXRlbS0+ZG9jdW1l
bnRTZXF1ZW5jZU51bWJlcigpID09IGN1cnJlbnRJdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVy
KCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGl0ZW0gIT0gY3VycmVu
dEl0ZW07CisgICAgYm9vbCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uID0gY3VycmVudEl0ZW0gJiYg
aXRlbSAhPSBjdXJyZW50SXRlbQorICAgICAgICAmJiBpdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVt
YmVyKCkgPT0gY3VycmVudEl0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKTsKIAogI2lmIEVO
QUJMRShXTUwpCiAgICAgLy8gQWxsIFdNTCBkZWNrcyBzaG91bGQgZ28gdGhyb3VnaCB0aGUgcmVh
bCBsb2FkIG1lY2hhbmlzbSwgbm90IHRoZSBzY3JvbGwtdG8tYW5jaG9yIGNvZGUKSW5kZXg6IFdl
YkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNjA5NzgpCisrKyBXZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwx
NCArMTA2LDYgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvcwogdm9p
ZCBIaXN0b3J5Q29udHJvbGxlcjo6dXBkYXRlQmFja0ZvcndhcmRMaXN0Rm9yRnJhZ21lbnRTY3Jv
bGwoKQogewogICAgIHVwZGF0ZUJhY2tGb3J3YXJkTGlzdENsaXBwZWRBdFRhcmdldChmYWxzZSk7
Ci0gICAgCi0gICAgLy8gU2luY2UgdGhlIGRvY3VtZW50IGlzbid0IGNoYW5nZWQgYXMgYSByZXN1
bHQgb2YgYSBmcmFnbWVudCBzY3JvbGwsIHdlIHNob3VsZAotICAgIC8vIHByZXNlcnZlIHRoZSBE
b2N1bWVudFNlcXVlbmNlTnVtYmVyIG9mIHRoZSBwcmV2aW91cyBpdGVtLgotICAgIGlmICghbV9w
cmV2aW91c0l0ZW0pCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChtX2N1cnJlbnRJdGVt
KTsKLSAgICBtX2N1cnJlbnRJdGVtLT5zZXREb2N1bWVudFNlcXVlbmNlTnVtYmVyKG1fcHJldmlv
dXNJdGVtLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkpOwogfQogCiB2b2lkIEhpc3RvcnlDb250
cm9sbGVyOjpzYXZlRG9jdW1lbnRTdGF0ZSgpCkBAIC0yMzEsMjUgKzIyMyw2IEBAIHZvaWQgSGlz
dG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtKEhpc3RvcnkKICAgICByZWN1cnNpdmVHb1RvSXRlbSh0
YXJnZXRJdGVtLCBjdXJyZW50SXRlbSwgdHlwZSk7CiB9CiAKLS8vIFdhbGsgdGhlIGZyYW1lIHRy
ZWUgYW5kIGVuc3VyZSB0aGF0IHRoZSBVUkxzIG1hdGNoIHRoZSBVUkxzIGluIHRoZSBpdGVtLgot
Ym9vbCBIaXN0b3J5Q29udHJvbGxlcjo6dXJsc01hdGNoSXRlbShIaXN0b3J5SXRlbSogaXRlbSkg
Y29uc3QKLXsKLSAgICBjb25zdCBLVVJMJiBjdXJyZW50VVJMID0gbV9mcmFtZS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCktPnVybCgpOwotICAgIGlmICghZXF1YWxJZ25vcmluZ0ZyYWdtZW50
SWRlbnRpZmllcihjdXJyZW50VVJMLCBpdGVtLT51cmwoKSkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGNvbnN0IEhpc3RvcnlJdGVtVmVjdG9yJiBjaGlsZEl0ZW1zID0gaXRlbS0+Y2hp
bGRyZW4oKTsKLQotICAgIHVuc2lnbmVkIHNpemUgPSBjaGlsZEl0ZW1zLnNpemUoKTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIEZyYW1lKiBjaGls
ZEZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLT5jaGlsZChjaGlsZEl0ZW1zW2ldLT50YXJnZXQoKSk7
Ci0gICAgICAgIGlmIChjaGlsZEZyYW1lICYmICFjaGlsZEZyYW1lLT5sb2FkZXIoKS0+aGlzdG9y
eSgpLT51cmxzTWF0Y2hJdGVtKGNoaWxkSXRlbXNbaV0uZ2V0KCkpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEhpc3RvcnlD
b250cm9sbGVyOjp1cGRhdGVGb3JCYWNrRm9yd2FyZE5hdmlnYXRpb24oKQogewogI2lmICFMT0df
RElTQUJMRUQKQEAgLTUyMSw5ICs0OTQsMjEgQEAgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4gSGlz
dG9yeUNvbnRyb2xsZQogICAgIFJlZlB0cjxIaXN0b3J5SXRlbT4gYmZJdGVtID0gY3JlYXRlSXRl
bShtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpID8gdHJ1ZSA6IGZhbHNlKTsKICAgICBpZiAobV9w
cmV2aW91c0l0ZW0pCiAgICAgICAgIHNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRl
bShtX3ByZXZpb3VzSXRlbS5nZXQoKSk7Ci0gICAgaWYgKCEoY2xpcEF0VGFyZ2V0ICYmIG1fZnJh
bWUgPT0gdGFyZ2V0RnJhbWUpKSB7CisKKyAgICBpZiAoIWNsaXBBdFRhcmdldCB8fCBtX2ZyYW1l
ICE9IHRhcmdldEZyYW1lKSB7CiAgICAgICAgIC8vIHNhdmUgZnJhbWUgc3RhdGUgZm9yIGl0ZW1z
IHRoYXQgYXJlbid0IGxvYWRpbmcgKGtodG1sIGRvZXNuJ3Qgc2F2ZSB0aG9zZSkKICAgICAgICAg
c2F2ZURvY3VtZW50U3RhdGUoKTsKKworICAgICAgICAvLyBjbGlwQXRUYXJnZXQgaXMgZmFsc2Ug
Zm9yIG5hdmlnYXRpb25zIHdpdGhpbiB0aGUgc2FtZSBkb2N1bWVudCwgc28KKyAgICAgICAgLy8g
d2Ugc2hvdWxkIGNvcHkgdGhlIGRvY3VtZW50U2VxdWVuY2VOdW1iZXIgb3ZlciB0byB0aGUgbmV3
bHkgY3JlYXRlCisgICAgICAgIC8vIGl0ZW0uICBOb24tdGFyZ2V0IGl0ZW1zIGFyZSBqdXN0IGNs
b25lcywgYW5kIHRoZXkgc2hvdWxkIHRoZXJlZm9yZQorICAgICAgICAvLyBwcmVzZXJ2ZSB0aGUg
c2FtZSBpdGVtU2VxdWVuY2VOdW1iZXIuCisgICAgICAgIGlmIChtX3ByZXZpb3VzSXRlbSkgewor
ICAgICAgICAgICAgaWYgKG1fZnJhbWUgIT0gdGFyZ2V0RnJhbWUpCisgICAgICAgICAgICAgICAg
YmZJdGVtLT5zZXRJdGVtU2VxdWVuY2VOdW1iZXIobV9wcmV2aW91c0l0ZW0tPml0ZW1TZXF1ZW5j
ZU51bWJlcigpKTsKKyAgICAgICAgICAgIGJmSXRlbS0+c2V0RG9jdW1lbnRTZXF1ZW5jZU51bWJl
cihtX3ByZXZpb3VzSXRlbS0+ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKTsKKyAgICAgICAgfQor
CiAgICAgICAgIGZvciAoRnJhbWUqIGNoaWxkID0gbV9mcmFtZS0+dHJlZSgpLT5maXJzdENoaWxk
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpIHsKICAgICAg
ICAgICAgIEZyYW1lTG9hZGVyKiBjaGlsZExvYWRlciA9IGNoaWxkLT5sb2FkZXIoKTsKICAgICAg
ICAgICAgIGJvb2wgaGFzQ2hpbGRMb2FkZWQgPSBjaGlsZExvYWRlci0+ZnJhbWVIYXNMb2FkZWQo
KTsKQEAgLTUzNiw2ICs1MjEsNyBAQCBQYXNzUmVmUHRyPEhpc3RvcnlJdGVtPiBIaXN0b3J5Q29u
dHJvbGxlCiAgICAgICAgICAgICAgICAgYmZJdGVtLT5hZGRDaGlsZEl0ZW0oY2hpbGRMb2FkZXIt
Pmhpc3RvcnkoKS0+Y3JlYXRlSXRlbVRyZWUodGFyZ2V0RnJhbWUsIGNsaXBBdFRhcmdldCkpOwog
ICAgICAgICB9CiAgICAgfQorICAgIC8vIEZJWE1FOiBFbGltaW5hdGUgdGhlIGlzVGFyZ2V0SXRl
bSBmbGFnIGluIGZhdm9yIG9mIGl0ZW1TZXF1ZW5jZU51bWJlci4KICAgICBpZiAobV9mcmFtZSA9
PSB0YXJnZXRGcmFtZSkKICAgICAgICAgYmZJdGVtLT5zZXRJc1RhcmdldEl0ZW0odHJ1ZSk7CiAg
ICAgcmV0dXJuIGJmSXRlbTsKQEAgLTU1MCwyMSArNTM2LDEzIEBAIHZvaWQgSGlzdG9yeUNvbnRy
b2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGUKICAgICBBU1NFUlQoaXRlbSk7CiAgICAgQVNTRVJUKGZy
b21JdGVtKTsKIAotICAgIEtVUkwgaXRlbVVSTCA9IGl0ZW0tPnVybCgpOwotICAgIEtVUkwgY3Vy
cmVudFVSTDsKLSAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpCi0g
ICAgICAgIGN1cnJlbnRVUkwgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+
dXJsKCk7Ci0KLSAgICAvLyBBbHdheXMgcmVsb2FkIHRoZSB0YXJnZXQgZnJhbWUgb2YgdGhlIGl0
ZW0gd2UncmUgZ29pbmcgdG8uICBUaGlzIGVuc3VyZXMgdGhhdCB3ZSB3aWxsCi0gICAgLy8gZG8g
LXNvbWUtIGxvYWQgZm9yIHRoZSB0cmFuc2l0aW9uLCB3aGljaCBtZWFucyBhIHByb3BlciBub3Rp
ZmljYXRpb24gd2lsbCBiZSBwb3N0ZWQKLSAgICAvLyB0byB0aGUgYXBwLgotICAgIC8vIFRoZSBl
eGFjdCBVUkwgaGFzIHRvIG1hdGNoLCBpbmNsdWRpbmcgZnJhZ21lbnQuICBXZSB3YW50IHRvIGdv
IHRocm91Z2ggdGhlIF9sb2FkCi0gICAgLy8gbWV0aG9kLCBldmVuIGlmIHRvIGRvIGEgd2l0aGlu
LXBhZ2UgbmF2aWdhdGlvbi4KLSAgICAvLyBUaGUgY3VycmVudCBmcmFtZSB0cmVlIGFuZCB0aGUg
ZnJhbWUgdHJlZSBzbmFwc2hvdCBpbiB0aGUgaXRlbSBoYXZlIHRvIG1hdGNoLgotICAgIGlmICgh
aXRlbS0+aXNUYXJnZXRJdGVtKCkgJiYKLSAgICAgICAgaXRlbVVSTCA9PSBjdXJyZW50VVJMICYm
Ci0gICAgICAgICgobV9mcmFtZS0+dHJlZSgpLT5uYW1lKCkuaXNFbXB0eSgpICYmIGl0ZW0tPnRh
cmdldCgpLmlzRW1wdHkoKSkgfHwgbV9mcmFtZS0+dHJlZSgpLT5uYW1lKCkgPT0gaXRlbS0+dGFy
Z2V0KCkpICYmCi0gICAgICAgIGNoaWxkRnJhbWVzTWF0Y2hJdGVtKGl0ZW0pKQorICAgIC8vIElm
IHRoZSBpdGVtIHdlJ3JlIGdvaW5nIHRvIGlzIGEgY2xvbmUgb2YgdGhlIGl0ZW0gd2UncmUgYXQs
IHRoZW4gZG8KKyAgICAvLyBub3QgbG9hZCBpdCBhZ2FpbiwgYW5kIGNvbnRpbnVlIGhpc3Rvcnkg
dHJhdmVyc2FsIHRvIGl0cyBjaGlsZHJlbi4KKyAgICAvLyBUaGUgY3VycmVudCBmcmFtZSB0cmVl
IGFuZCB0aGUgZnJhbWUgdHJlZSBzbmFwc2hvdCBpbiB0aGUgaXRlbSBoYXZlCisgICAgLy8gdG8g
bWF0Y2guCisgICAgaWYgKGl0ZW0tPml0ZW1TZXF1ZW5jZU51bWJlcigpID09IGZyb21JdGVtLT5p
dGVtU2VxdWVuY2VOdW1iZXIoKQorICAgICAgICAmJiAoKG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgp
LmlzRW1wdHkoKSAmJiBpdGVtLT50YXJnZXQoKS5pc0VtcHR5KCkpIHx8IG1fZnJhbWUtPnRyZWUo
KS0+bmFtZSgpID09IGl0ZW0tPnRhcmdldCgpKQorICAgICAgICAmJiBjaGlsZEZyYW1lc01hdGNo
SXRlbShpdGVtKSkKICAgICB7CiAgICAgICAgIC8vIFRoaXMgY29udGVudCBpcyBnb29kLCBzbyBs
ZWF2ZSBpdCBhbG9uZSBhbmQgbG9vayBmb3IgY2hpbGRyZW4gdGhhdCBuZWVkIHJlbG9hZGluZwog
ICAgICAgICAvLyBTYXZlIGZvcm0gc3RhdGUgKHdvcmtzIGZyb20gY3VycmVudEl0ZW0sIHNpbmNl
IHByZXZJdGVtIGlzIG5pbCkKQEAgLTY1OSwxMCArNjM3LDYgQEAgdm9pZCBIaXN0b3J5Q29udHJv
bGxlcjo6cHVzaFN0YXRlKFBhc3NSZQogICAgIGl0ZW0tPnNldFN0YXRlT2JqZWN0KHN0YXRlT2Jq
ZWN0KTsKICAgICBpdGVtLT5zZXRVUkxTdHJpbmcodXJsU3RyaW5nKTsKIAotICAgIC8vIFNpbmNl
IHRoZSBkb2N1bWVudCBpc24ndCBjaGFuZ2VkIGFzIGEgcmVzdWx0IG9mIGEgcHVzaFN0YXRlIGNh
bGwsIHdlCi0gICAgLy8gc2hvdWxkIHByZXNlcnZlIHRoZSBEb2N1bWVudFNlcXVlbmNlTnVtYmVy
IG9mIHRoZSBwcmV2aW91cyBpdGVtLgotICAgIGl0ZW0tPnNldERvY3VtZW50U2VxdWVuY2VOdW1i
ZXIobV9wcmV2aW91c0l0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSk7Ci0gICAgCiAgICAg
cGFnZS0+YmFja0ZvcndhcmRMaXN0KCktPnB1c2hTdGF0ZUl0ZW0oaXRlbS5yZWxlYXNlKCkpOwog
fQogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaAkocmV2aXNpb24gNjA5Nzgp
CisrKyBXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OCw3ICs1OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVDdXJyZW50SXRlbUNh
Y2hlZFBhZ2UoKTsKIAogICAgIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0qLCBGcmFtZUxvYWRU
eXBlKTsKLSAgICBib29sIHVybHNNYXRjaEl0ZW0oSGlzdG9yeUl0ZW0qKSBjb25zdDsKIAogICAg
IHZvaWQgdXBkYXRlRm9yQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7CiAgICAgdm9pZCB1cGRhdGVG
b3JSZWxvYWQoKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2MTE5NikKKysrIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAx
MC0wNi0xMSAgRGFyaW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBXZWJIaXN0b3J5SXRl
bTo6aXRlbVNlcXVlbmNlTnVtYmVyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDQ1MQorCisgICAgICAgICogcHVibGljL1dlYkhpc3RvcnlJdGVt
Lmg6CisgICAgICAgICogc3JjL1dlYkhpc3RvcnlJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSGlzdG9yeUl0ZW06Oml0ZW1TZXF1ZW5jZU51bWJlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykhpc3RvcnlJdGVtOjpzZXRJdGVtU2VxdWVuY2VOdW1iZXIpOgorCiAyMDEwLTA2LTE0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IENocm9taXVt
IGJ1aWxkLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIaXN0b3J5SXRlbS5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIaXN0b3J5SXRlbS5oCShy
ZXZpc2lvbiA2MDk3OCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSGlzdG9yeUl0ZW0u
aAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw5IEBAIHB1YmxpYzoKICAgICBXRUJLSVRf
QVBJIFdlYlZlY3RvcjxXZWJTdHJpbmc+IGRvY3VtZW50U3RhdGUoKSBjb25zdDsKICAgICBXRUJL
SVRfQVBJIHZvaWQgc2V0RG9jdW1lbnRTdGF0ZShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYp
OwogCisgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgaXRlbVNlcXVlbmNlTnVtYmVyKCkgY29uc3Q7
CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldEl0ZW1TZXF1ZW5jZU51bWJlcihsb25nIGxvbmcpOwor
CiAgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpIGNvbnN0
OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXREb2N1bWVudFNlcXVlbmNlTnVtYmVyKGxvbmcgbG9u
Zyk7CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGlzdG9yeUl0ZW0uY3BwDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIaXN0b3J5SXRlbS5jcHAJKHJldmlz
aW9uIDYwOTc4KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIaXN0b3J5SXRlbS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIwMSw2ICsyMDEsMTcgQEAgdm9pZCBXZWJIaXN0b3J5SXRlbTo6c2V0
RG9jdW1lbnRTdGF0ZShjbwogICAgIG1fcHJpdmF0ZS0+c2V0RG9jdW1lbnRTdGF0ZShkcyk7CiB9
CiAKK2xvbmcgbG9uZyBXZWJIaXN0b3J5SXRlbTo6aXRlbVNlcXVlbmNlTnVtYmVyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pdGVtU2VxdWVuY2VOdW1iZXIoKTsKK30KKwordm9p
ZCBXZWJIaXN0b3J5SXRlbTo6c2V0SXRlbVNlcXVlbmNlTnVtYmVyKGxvbmcgbG9uZyBpdGVtU2Vx
dWVuY2VOdW1iZXIpCit7CisgICAgZW5zdXJlTXV0YWJsZSgpOworICAgIG1fcHJpdmF0ZS0+c2V0
SXRlbVNlcXVlbmNlTnVtYmVyKGl0ZW1TZXF1ZW5jZU51bWJlcik7Cit9CisKIGxvbmcgbG9uZyBX
ZWJIaXN0b3J5SXRlbTo6ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpOwo=
</data>
<flag name="review"
          id="45256"
          type_id="1"
          status="+"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="45280"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>