<?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>74952</bug_id>
          
          <creation_ts>2011-12-20 13:31:25 -0800</creation_ts>
          <short_desc>Need AssociatedURLLoader tests for redirects and CORS access control</short_desc>
          <delta_ts>2011-12-23 01:52: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>Platform</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>0</everconfirmed>
          <reporter name="Bill Budge">bbudge</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>524789</commentid>
    <comment_count>0</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-20 13:31:25 -0800</bug_when>
    <thetext>Add unit tests for AssociatedURLLoader to check handling of redirects and cross-origin access control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524796</commentid>
    <comment_count>1</comment_count>
      <attachid>120071</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-20 13:41:05 -0800</bug_when>
    <thetext>Created attachment 120071
Proposed Patch

This follows the addition of redirect handling in weburl_loader_mock, and adds tests of redirects, CORS, and CORS w/ redirect (currently not supported by WebKit, so disabled.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524805</commentid>
    <comment_count>2</comment_count>
      <attachid>120074</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-20 13:59:44 -0800</bug_when>
    <thetext>Created attachment 120074
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524814</commentid>
    <comment_count>3</comment_count>
      <attachid>120079</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-20 14:10:00 -0800</bug_when>
    <thetext>Created attachment 120079
Proposed Patch

svn troubles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524820</commentid>
    <comment_count>4</comment_count>
      <attachid>120083</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-20 14:16:50 -0800</bug_when>
    <thetext>Created attachment 120083
Proposed Patch

A little rusty at this. Try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525239</commentid>
    <comment_count>5</comment_count>
      <attachid>120173</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-21 06:21:05 -0800</bug_when>
    <thetext>Created attachment 120173
Proposed Patch

I had a bad client setup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525506</commentid>
    <comment_count>6</comment_count>
      <attachid>120173</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-21 13:15:07 -0800</bug_when>
    <thetext>Comment on attachment 120173
Proposed Patch

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

&gt; Source/WebKit/chromium/tests/AssociatedURLLoaderTest.cpp:-126
&gt; -        EXPECT_EQ(m_expectedRedirectResponse.mimeType(), redirectResponse.mimeType());

Can you explain in the ChangeLog why you&apos;re removing this check?

&gt; Source/WebKit/chromium/tests/AssociatedURLLoaderTest.cpp:176
&gt; +          m_runningMessageLoop = false;
&gt; +          webkit_support::QuitMessageLoop();

Four-space indent pls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525641</commentid>
    <comment_count>7</comment_count>
      <attachid>120221</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-21 14:48:15 -0800</bug_when>
    <thetext>Created attachment 120221
Proposed Patch

Adam, it turns out it&apos;s easier to leave that check in than to add the comment. So I put it back in.

My thinking was that there are a lot of properties I can check on the responses, but since they&apos;re created by the test code (mocks) and passed unchanged by the loader framework, it&apos;s just testing the test code.

Thanks for reviewing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525642</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-21 14:50:10 -0800</bug_when>
    <thetext>Attachment 120221 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
From git://git.webkit.org/WebKit
   e797230..daea471  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 103455 = e797230b5731bc67238cdaca8cd2f71e3c1b08c4
r103457 = 0764c68a648212f3475b6449e45b26f52901256a
r103458 = daea471373d620a3fbc3e7dbc138f927d151a5c9
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Applying: Inform the scrolling coordinator when scrollbar layers come and go
Using index info to reconstruct a base tree...
&lt;stdin&gt;:474806: trailing whitespace.
        [Chromium] DatabaseTrackerChromium: iterating DatabaseSet races with Database disposal on worker thread 
&lt;stdin&gt;:474827: trailing whitespace.
        Nothing to test, just removing redundant code. Correct behavior tested by 
&lt;stdin&gt;:475346: trailing whitespace.
    
warning: 3 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 167249 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/chromium/test_expectations.txt
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebCore/rendering/RenderLayerCompositor.cpp
CONFLICT (content): Merge conflict in Source/WebCore/rendering/RenderLayerCompositor.cpp
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Inform the scrolling coordinator when scrollbar layers come and go

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 158.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525656</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-21 14:56:33 -0800</bug_when>
    <thetext>Seems this doesn&apos;t apply, otherwise I&apos;d be happy to r+ it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525685</commentid>
    <comment_count>10</comment_count>
      <attachid>120227</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-21 15:08:44 -0800</bug_when>
    <thetext>Created attachment 120227
Proposed Patch

Let&apos;s try this again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525689</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-21 15:11:04 -0800</bug_when>
    <thetext>Attachment 120227 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Inform the scrolling coordinator when scrollbar layers come and go
Using index info to reconstruct a base tree...
&lt;stdin&gt;:474806: trailing whitespace.
        [Chromium] DatabaseTrackerChromium: iterating DatabaseSet races with Database disposal on worker thread 
&lt;stdin&gt;:474827: trailing whitespace.
        Nothing to test, just removing redundant code. Correct behavior tested by 
&lt;stdin&gt;:475346: trailing whitespace.
    
warning: 3 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 167249 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/chromium/test_expectations.txt
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebCore/page/ScrollingCoordinator.h
CONFLICT (content): Merge conflict in Source/WebCore/page/ScrollingCoordinator.h
Auto-merging Source/WebCore/page/mac/ScrollingCoordinatorMac.mm
CONFLICT (content): Merge conflict in Source/WebCore/page/mac/ScrollingCoordinatorMac.mm
Auto-merging Source/WebCore/platform/ScrollView.cpp
Auto-merging Source/WebCore/rendering/RenderLayerCompositor.cpp
CONFLICT (content): Merge conflict in Source/WebCore/rendering/RenderLayerCompositor.cpp
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Auto-merging Tools/Scripts/build-webkit
Auto-merging Tools/Scripts/webkitdirs.pm
CONFLICT (content): Merge conflict in Tools/Scripts/webkitdirs.pm
Failed to merge in the changes.
Patch failed at 0001 Inform the scrolling coordinator when scrollbar layers come and go

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 158.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525774</commentid>
    <comment_count>12</comment_count>
      <attachid>120231</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-21 16:04:32 -0800</bug_when>
    <thetext>Created attachment 120231
Proposed Patch

Freshened up my client. Hope it fixes this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525779</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-21 16:08:42 -0800</bug_when>
    <thetext>Attachment 120231 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Inform the scrolling coordinator when scrollbar layers come and go
Using index info to reconstruct a base tree...
&lt;stdin&gt;:474806: trailing whitespace.
        [Chromium] DatabaseTrackerChromium: iterating DatabaseSet races with Database disposal on worker thread 
&lt;stdin&gt;:474827: trailing whitespace.
        Nothing to test, just removing redundant code. Correct behavior tested by 
&lt;stdin&gt;:475346: trailing whitespace.
    
warning: 3 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 167254 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/chromium/test_expectations.txt
CONFLICT (content): Merge conflict in LayoutTests/platform/chromium/test_expectations.txt
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebCore/page/ScrollingCoordinator.h
CONFLICT (content): Merge conflict in Source/WebCore/page/ScrollingCoordinator.h
Auto-merging Source/WebCore/page/mac/ScrollingCoordinatorMac.mm
CONFLICT (content): Merge conflict in Source/WebCore/page/mac/ScrollingCoordinatorMac.mm
Auto-merging Source/WebCore/platform/ScrollView.cpp
Auto-merging Source/WebCore/rendering/RenderLayerCompositor.cpp
CONFLICT (content): Merge conflict in Source/WebCore/rendering/RenderLayerCompositor.cpp
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Auto-merging Tools/Scripts/build-webkit
Auto-merging Tools/Scripts/webkitdirs.pm
CONFLICT (content): Merge conflict in Tools/Scripts/webkitdirs.pm
Failed to merge in the changes.
Patch failed at 0001 Inform the scrolling coordinator when scrollbar layers come and go

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 158.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526029</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-21 23:03:36 -0800</bug_when>
    <thetext>Sorry, the style bot was having some issues today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526031</commentid>
    <comment_count>15</comment_count>
      <attachid>120231</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-21 23:04:09 -0800</bug_when>
    <thetext>Comment on attachment 120231
Proposed Patch

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

&gt; Source/WebKit/chromium/tests/AssociatedURLLoaderTest.cpp:-126
&gt; -        EXPECT_EQ(m_expectedRedirectResponse.mimeType(), redirectResponse.mimeType());

I thought you were going to leave this in?

&gt; Source/WebKit/chromium/tests/AssociatedURLLoaderTest.cpp:177
&gt; +        if (m_runningMessageLoop) {
&gt; +          m_runningMessageLoop = false;
&gt; +          webkit_support::QuitMessageLoop();
&gt; +        }

Bad indent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526344</commentid>
    <comment_count>16</comment_count>
      <attachid>120338</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-12-22 10:26:31 -0800</bug_when>
    <thetext>Created attachment 120338
Proposed Patch

Sorry, in all the confusion, I didn&apos;t save the file with your changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526774</commentid>
    <comment_count>17</comment_count>
      <attachid>120338</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-23 01:52:40 -0800</bug_when>
    <thetext>Comment on attachment 120338
Proposed Patch

Clearing flags on attachment: 120338

Committed r103612: &lt;http://trac.webkit.org/changeset/103612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526775</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-23 01:52:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120071</attachid>
            <date>2011-12-20 13:41:05 -0800</date>
            <delta_ts>2011-12-20 13:59:44 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>10035</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAzMzQ2KQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTIwICBCaWxs
IEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0cyBm
b3IgQXNzb2NpYXRlZFVSTExvYWRlciB0byBjaGVjayBoYW5kbGluZyBvZiByZWRpcmVjdHMgYW5k
CisgICAgICAgIGNyb3NzLW9yaWdpbiBhY2Nlc3MgY29udHJvbC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVy
VGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0OjpBc3Nv
Y2lhdGVkVVJMTG9hZGVyVGVzdCk6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2Fk
ZXJUZXN0Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpBc3NvY2lhdGVkVVJM
TG9hZGVyVGVzdDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2Fk
ZXJUZXN0OjpDaGVja0ZhaWxzKToKKyAgICAgICAgKFdlYktpdDo6VEVTVF9GKToKKwogMjAxMS0x
Mi0yMCAgR3JlZyBCaWxsb2NrICA8Z2JpbGxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNYWtl
IFdlYkludGVudFNlcnZpY2VJbmZvIGNvbnN0cnVjdG9yIHB1YmxpYyBmb3IgdGVzdGluZy4KSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVyVGVzdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0
LmNwcAkocmV2aXNpb24gMTAzMzA4KQorKysgV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0
ZWRVUkxMb2FkZXJUZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsNyBAQCBwdWJs
aWM6CiAgICAgICAgICwgIG1fZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGZhbHNlKQogICAgICAg
ICAsICBtX2RpZEZpbmlzaExvYWRpbmcoZmFsc2UpCiAgICAgICAgICwgIG1fZGlkRmFpbChmYWxz
ZSkKKyAgICAgICAgLCBtX3J1bm5pbmdNZXNzYWdlTG9vcChmYWxzZSkKICAgICB7CiAgICAgICAg
IC8vIFJldXNlIG9uZSBvZiB0aGUgdGVzdCBmaWxlcyBmcm9tIFdlYkZyYW1lVGVzdC4KICAgICAg
ICAgc3RkOjpzdHJpbmcgZmlsZVBhdGggPSB3ZWJraXRfc3VwcG9ydDo6R2V0V2ViS2l0Um9vdERp
cigpLnV0ZjgoKTsKQEAgLTEyMyw3ICsxMjQsNiBAQCBwdWJsaWM6CiAgICAgICAgIEVYUEVDVF9F
UShtX2V4cGVjdGVkTG9hZGVyLCBsb2FkZXIpOwogICAgICAgICBFWFBFQ1RfRVEobV9leHBlY3Rl
ZE5ld1JlcXVlc3QudXJsKCksIG5ld1JlcXVlc3QudXJsKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
bV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UudXJsKCksIHJlZGlyZWN0UmVzcG9uc2UudXJsKCkp
OwotICAgICAgICBFWFBFQ1RfRVEobV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UubWltZVR5cGUo
KSwgcmVkaXJlY3RSZXNwb25zZS5taW1lVHlwZSgpKTsKICAgICAgICAgRVhQRUNUX0VRKG1fZXhw
ZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlZGlyZWN0UmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSk7CiAgICAgfQogCkBAIC0xNzEsNyArMTcxLDEwIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIG1fZGlkRmFpbCA9IHRydWU7CiAgICAgICAgIEVYUEVDVF9FUShtX2V4
cGVjdGVkTG9hZGVyLCBsb2FkZXIpOwotICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UXVpdE1lc3Nh
Z2VMb29wKCk7CisgICAgICAgIGlmIChtX3J1bm5pbmdNZXNzYWdlTG9vcCkgeworICAgICAgICAg
IG1fcnVubmluZ01lc3NhZ2VMb29wID0gZmFsc2U7CisgICAgICAgICAgd2Via2l0X3N1cHBvcnQ6
OlF1aXRNZXNzYWdlTG9vcCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBDaGVja01l
dGhvZEZhaWxzKGNvbnN0IGNoYXIqIHVuc2FmZU1ldGhvZCkKQEAgLTIxMCw4ICsyMTMsMTAgQEAg
cHVibGljOgogICAgICAgICAvLyBGYWlsdXJlIHNob3VsZCBub3QgYmUgcmVwb3J0ZWQgc3luY2hy
b25vdXNseS4KICAgICAgICAgRVhQRUNUX0ZBTFNFKG1fZGlkRmFpbCk7CiAgICAgICAgIC8vIEFs
bG93IHRoZSBsb2FkZXIgdG8gcmV0dXJuIHRoZSBlcnJvci4KKyAgICAgICAgbV9ydW5uaW5nTWVz
c2FnZUxvb3AgPSB0cnVlOwogICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UnVuTWVzc2FnZUxvb3Ao
KTsKICAgICAgICAgRVhQRUNUX1RSVUUobV9kaWRGYWlsKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNF
KG1fZGlkUmVjZWl2ZVJlc3BvbnNlKTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTIzMSwxMiAr
MjM2LDEzIEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRh
OwogICAgIGJvb2wgbV9kaWRGaW5pc2hMb2FkaW5nOwogICAgIGJvb2wgbV9kaWRGYWlsOworICAg
IGJvb2wgbV9ydW5uaW5nTWVzc2FnZUxvb3A7CiB9OwogCi0vLyBUZXN0IGEgc3VjY2Vzc2Z1bCBV
UkwgbG9hZC4KLVRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgU3VjY2VzcykKKy8vIFRl
c3QgYSBzdWNjZXNzZnVsIHNhbWUtb3JpZ2luIFVSTCBsb2FkLgorVEVTVF9GKEFzc29jaWF0ZWRV
UkxMb2FkZXJUZXN0LCBTYW1lT3JpZ2luU3VjY2VzcykKIHsKLSAgICBHVVJMIHVybCA9IEdVUkwo
Imh0dHA6Ly93d3cudGVzdC5jb20vc3VjY2Vzcy5odG1sIik7CisgICAgR1VSTCB1cmwgPSBHVVJM
KCJodHRwOi8vd3d3LnRlc3QuY29tL1NhbWVPcmlnaW5TdWNjZXNzLmh0bWwiKTsKICAgICBXZWJV
UkxSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CiAgICAgcmVxdWVz
dC5zZXRVUkwodXJsKTsKQEAgLTI1OSw3ICsyNjUsNyBAQCBURVNUX0YoQXNzb2NpYXRlZFVSTExv
YWRlclRlc3QsIFN1Y2Nlc3MpCiBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFNhbWVP
cmlnaW5SZXN0cmljdGlvbikKIHsKICAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdpbiBzaW5jZSB0
aGUgZnJhbWUgd2FzIGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4KLSAgICBHVVJMIHVybCA9IEdV
UkwoImh0dHA6Ly93d3cub3RoZXIuY29tL2ZhaWx1cmUuaHRtbCIpOworICAgIEdVUkwgdXJsID0g
R1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vU2FtZU9yaWdpblJlc3RyaWN0aW9uLmh0bWwiKTsK
ICAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CiAg
ICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKQEAgLTI3MCw3ICsyNzYsNyBAQCBURVNUX0YoQXNzb2Np
YXRlZFVSTExvYWRlclRlc3QsIFNhbWVPcmlnCiBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRl
c3QsIENyb3NzT3JpZ2luU3VjY2VzcykKIHsKICAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdpbiBz
aW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4KLSAgICBHVVJMIHVy
bCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL3N1Y2Nlc3MuaHRtbCIpOworICAgIEdVUkwg
dXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vQ3Jvc3NPcmlnaW5TdWNjZXNzLmh0bWwi
KTsKICAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7
CiAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKQEAgLTI5MSw2ICsyOTcsMTQyIEBAIFRFU1RfRihB
c3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgQ3Jvc3NPcmkKICAgICBFWFBFQ1RfVFJVRShtX2RpZEZp
bmlzaExvYWRpbmcpOwogfQogCisvLyBUZXN0IGEgc3VjY2Vzc2Z1bCBjcm9zcy1vcmlnaW4gbG9h
ZCB1c2luZyBDT1JTLgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBDcm9zc09yaWdp
bldpdGhBY2Nlc3NDb250cm9sU3VjY2VzcykKK3sKKyAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdp
biBzaW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4KKyAgICBHVVJM
IHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL0Nyb3NzT3JpZ2luV2l0aEFjY2Vzc0Nv
bnRyb2xTdWNjZXNzLmh0bWwiKTsKKyAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVx
dWVzdC5pbml0aWFsaXplKCk7CisgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhw
ZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNl
LmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQv
aHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5hZGRIVFRQSGVhZGVyRmllbGQoImFjY2Vz
cy1jb250cm9sLWFsbG93LW9yaWdpbiIsICIqIik7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lz
dGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOwor
CisgICAgV2ViVVJMTG9hZGVyT3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMuY3Jvc3NPcmln
aW5SZXF1ZXN0UG9saWN5ID0gV2ViVVJMTG9hZGVyT3B0aW9uczo6Q3Jvc3NPcmlnaW5SZXF1ZXN0
UG9saWN5VXNlQWNjZXNzQ29udHJvbDsKKyAgICBtX2V4cGVjdGVkTG9hZGVyID0gY3JlYXRlQXNz
b2NpYXRlZFVSTExvYWRlcihvcHRpb25zKTsKKyAgICBFWFBFQ1RfVFJVRShtX2V4cGVjdGVkTG9h
ZGVyKTsKKyAgICBtX2V4cGVjdGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkocmVxdWVzdCwg
dGhpcyk7CisgICAgc2VydmVSZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2
ZVJlc3BvbnNlKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVEYXRhKTsKKyAgICBFWFBF
Q1RfVFJVRShtX2RpZEZpbmlzaExvYWRpbmcpOworfQorCisvLyBUZXN0IGFuIHVuc3VjY2Vzc2Z1
bCBjcm9zcy1vcmlnaW4gbG9hZCB1c2luZyBDT1JTLgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2Fk
ZXJUZXN0LCBDcm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sRmFpbHVyZSkKK3sKKyAgICAvLyBU
aGlzIGlzIGNyb3NzLW9yaWdpbiBzaW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRlZCBmcm9tIHd3dy50
ZXN0LmNvbS4KKyAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL0Nyb3Nz
T3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xGYWlsdXJlLmh0bWwiKTsKKyAgICBXZWJVUkxSZXF1ZXN0
IHJlcXVlc3Q7CisgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CisgICAgcmVxdWVzdC5zZXRVUkwo
dXJsKTsKKworICAgIG1fZXhwZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAg
bV9leHBlY3RlZFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uu
c2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5hZGRIVFRQ
SGVhZGVyRmllbGQoImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIsICIqIik7CisgICAgd2Vi
a2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJlc3BvbnNlLCBt
X2ZyYW1lRmlsZVBhdGgpOworCisgICAgV2ViVVJMTG9hZGVyT3B0aW9ucyBvcHRpb25zOworICAg
IC8vIFNlbmQgY3JlZGVudGlhbHMuIFRoaXMgd2lsbCBjYXVzZSB0aGUgQ09SUyBjaGVja3MgdG8g
ZmFpbCwgYmVjYXVzZSBjcmVkZW50aWFscyBjYW4ndCBiZQorICAgIC8vIHNlbnQgdG8gYSBzZXJ2
ZXIgd2hpY2ggcmV0dXJucyB0aGUgaGVhZGVyICJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4i
IHdpdGggIioiIGFzIGl0cyB2YWx1ZS4KKyAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSB0
cnVlOworICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gV2ViVVJMTG9hZGVy
T3B0aW9uczo6Q3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5VXNlQWNjZXNzQ29udHJvbDsKKyAgICBt
X2V4cGVjdGVkTG9hZGVyID0gY3JlYXRlQXNzb2NpYXRlZFVSTExvYWRlcihvcHRpb25zKTsKKyAg
ICBFWFBFQ1RfVFJVRShtX2V4cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4cGVjdGVkTG9hZGVyLT5s
b2FkQXN5bmNocm9ub3VzbHkocmVxdWVzdCwgdGhpcyk7CisKKyAgICAvLyBGYWlsdXJlIHNob3Vs
ZCBub3QgYmUgcmVwb3J0ZWQgc3luY2hyb25vdXNseS4KKyAgICBFWFBFQ1RfRkFMU0UobV9kaWRG
YWlsKTsKKyAgICAvLyBUaGUgbG9hZGVyIG5lZWRzIHRvIHJlY2VpdmUgdGhlIHJlc3BvbnNlLCBi
ZWZvcmUgZG9pbmcgdGhlIENPUlMgY2hlY2suCisgICAgc2VydmVSZXF1ZXN0cygpOworICAgIEVY
UEVDVF9UUlVFKG1fZGlkRmFpbCk7CisgICAgRVhQRUNUX0ZBTFNFKG1fZGlkUmVjZWl2ZVJlc3Bv
bnNlKTsKK30KKworLy8gVGVzdCBhIHNhbWUtb3JpZ2luIFVSTCByZWRpcmVjdCBhbmQgbG9hZC4K
K1RFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgUmVkaXJlY3RTdWNjZXNzKQoreworICAg
IEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS9SZWRpcmVjdFN1Y2Nlc3MuaHRt
bCIpOworICAgIGNoYXIgcmVkaXJlY3RbXSA9ICJodHRwOi8vd3d3LnRlc3QuY29tL1JlZGlyZWN0
U3VjY2VzczIuaHRtbCI7ICAvLyBTYW1lLW9yaWdpbgorICAgIEdVUkwgcmVkaXJlY3RVUkwgPSBH
VVJMKHJlZGlyZWN0KTsKKworICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKKyAgICByZXF1ZXN0
LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworCisgICAgbV9leHBlY3Rl
ZFJlZGlyZWN0UmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZWRp
cmVjdFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25z
ZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9u
c2Uuc2V0SFRUUFN0YXR1c0NvZGUoMzAxKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25z
ZS5zZXRIVFRQSGVhZGVyRmllbGQoIkxvY2F0aW9uIiwgcmVkaXJlY3QpOworICAgIHdlYmtpdF9z
dXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNl
LCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3QgPSBXZWJVUkxS
ZXF1ZXN0KCk7CisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIG1f
ZXhwZWN0ZWROZXdSZXF1ZXN0LnNldFVSTChyZWRpcmVjdFVSTCk7CisKKyAgICBtX2V4cGVjdGVk
UmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5pbml0
aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwi
KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwocmVkaXJlY3RVUkwsIG1f
ZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIG1fZXhwZWN0ZWRMb2Fk
ZXIgPSBjcmVhdGVBc3NvY2lhdGVkVVJMTG9hZGVyKCk7CisgICAgRVhQRUNUX1RSVUUobV9leHBl
Y3RlZExvYWRlcik7CisgICAgbV9leHBlY3RlZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJl
cXVlc3QsIHRoaXMpOworICAgIHNlcnZlUmVxdWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX3dp
bGxTZW5kUmVxdWVzdCk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlUmVzcG9uc2UpOwor
ICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZURhdGEpOworICAgIEVYUEVDVF9UUlVFKG1fZGlk
RmluaXNoTG9hZGluZyk7Cit9CisKKy8vIFRlc3QgYSBzdWNjZXNzZnVsIHJlZGlyZWN0IGFuZCBj
cm9zcy1vcmlnaW4gbG9hZCB1c2luZyBDT1JTLgorLy8gRklYTUU6IEVuYWJsZSB0aGlzIHdoZW4g
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyIHN1cHBvcnRzIGNyb3NzLW9yaWdpbiByZWRpcmVjdHMu
CitURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIERJU0FCTEVEX1JlZGlyZWN0Q3Jvc3NP
cmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1Y2Nlc3MpCit7CisgICAgR1VSTCB1cmwgPSBHVVJMKCJo
dHRwOi8vd3d3LnRlc3QuY29tL1JlZGlyZWN0Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1
Y2Nlc3MuaHRtbCIpOworICAgIGNoYXIgcmVkaXJlY3RbXSA9ICJodHRwOi8vd3d3Lm90aGVyLmNv
bS9SZWRpcmVjdENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzLmh0bWwiOyAgLy8g
Q3Jvc3Mtb3JpZ2luCisgICAgR1VSTCByZWRpcmVjdFVSTCA9IEdVUkwocmVkaXJlY3QpOworCisg
ICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAg
IHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZSA9
IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UuaW5pdGlh
bGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0
L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29k
ZSgzMDEpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVs
ZCgiTG9jYXRpb24iLCByZWRpcmVjdCk7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9j
a2VkVVJMKHVybCwgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7
CisKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdCA9IFdlYlVSTFJlcXVlc3QoKTsKKyAgICBtX2V4
cGVjdGVkTmV3UmVxdWVzdC5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3Qu
c2V0VVJMKHJlZGlyZWN0VVJMKTsKKworICAgIG1fZXhwZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJl
c3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAgICBtX2V4
cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRS
ZXNwb25zZS5hZGRIVFRQSGVhZGVyRmllbGQoImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIs
ICIqIik7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHJlZGlyZWN0VVJM
LCBtX2V4cGVjdGVkUmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBXZWJVUkxMb2Fk
ZXJPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kg
PSBXZWJVUkxMb2FkZXJPcHRpb25zOjpDcm9zc09yaWdpblJlcXVlc3RQb2xpY3lVc2VBY2Nlc3ND
b250cm9sOworICAgIG1fZXhwZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lhdGVkVVJMTG9hZGVy
KG9wdGlvbnMpOworICAgIEVYUEVDVF9UUlVFKG1fZXhwZWN0ZWRMb2FkZXIpOworICAgIG1fZXhw
ZWN0ZWRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShyZXF1ZXN0LCB0aGlzKTsKKyAgICBzZXJ2
ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNUX1RSVUUobV93aWxsU2VuZFJlcXVlc3QpOworICAgIEVY
UEVDVF9UUlVFKG1fZGlkUmVjZWl2ZVJlc3BvbnNlKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJl
Y2VpdmVEYXRhKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZEZpbmlzaExvYWRpbmcpOworfQorCiAv
LyBUZXN0IHRoYXQgdW50cnVzdGVkIGxvYWRzIGNhbid0IHVzZSBhIGZvcmJpZGRlbiBtZXRob2Qu
CiBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFVudHJ1c3RlZENoZWNrTWV0aG9kcykK
IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120074</attachid>
            <date>2011-12-20 13:59:44 -0800</date>
            <delta_ts>2011-12-20 14:10:00 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>10036</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAzMzQ2KQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTIwICBCaWxs
IEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0cyBm
b3IgQXNzb2NpYXRlZFVSTExvYWRlciB0byBjaGVjayBoYW5kbGluZyBvZiByZWRpcmVjdHMgYW5k
CisgICAgICAgIGNyb3NzLW9yaWdpbiBhY2Nlc3MgY29udHJvbC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVy
VGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0OjpBc3Nv
Y2lhdGVkVVJMTG9hZGVyVGVzdCk6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2Fk
ZXJUZXN0Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpBc3NvY2lhdGVkVVJM
TG9hZGVyVGVzdDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2Fk
ZXJUZXN0OjpDaGVja0ZhaWxzKToKKyAgICAgICAgKFdlYktpdDo6VEVTVF9GKToKKwogMjAxMS0x
Mi0yMCAgR3JlZyBCaWxsb2NrICA8Z2JpbGxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNYWtl
IFdlYkludGVudFNlcnZpY2VJbmZvIGNvbnN0cnVjdG9yIHB1YmxpYyBmb3IgdGVzdGluZy4KSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVyVGVzdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0
LmNwcAkocmV2aXNpb24gMTAzMzA4KQorKysgV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0
ZWRVUkxMb2FkZXJUZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsNyBAQCBwdWJs
aWM6CiAgICAgICAgICwgIG1fZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGZhbHNlKQogICAgICAg
ICAsICBtX2RpZEZpbmlzaExvYWRpbmcoZmFsc2UpCiAgICAgICAgICwgIG1fZGlkRmFpbChmYWxz
ZSkKKyAgICAgICAgLCAgbV9ydW5uaW5nTWVzc2FnZUxvb3AoZmFsc2UpCiAgICAgewogICAgICAg
ICAvLyBSZXVzZSBvbmUgb2YgdGhlIHRlc3QgZmlsZXMgZnJvbSBXZWJGcmFtZVRlc3QuCiAgICAg
ICAgIHN0ZDo6c3RyaW5nIGZpbGVQYXRoID0gd2Via2l0X3N1cHBvcnQ6OkdldFdlYktpdFJvb3RE
aXIoKS51dGY4KCk7CkBAIC0xMjMsNyArMTI0LDYgQEAgcHVibGljOgogICAgICAgICBFWFBFQ1Rf
RVEobV9leHBlY3RlZExvYWRlciwgbG9hZGVyKTsKICAgICAgICAgRVhQRUNUX0VRKG1fZXhwZWN0
ZWROZXdSZXF1ZXN0LnVybCgpLCBuZXdSZXF1ZXN0LnVybCgpKTsKICAgICAgICAgRVhQRUNUX0VR
KG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnVybCgpLCByZWRpcmVjdFJlc3BvbnNlLnVybCgp
KTsKLSAgICAgICAgRVhQRUNUX0VRKG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLm1pbWVUeXBl
KCksIHJlZGlyZWN0UmVzcG9uc2UubWltZVR5cGUoKSk7CiAgICAgICAgIEVYUEVDVF9FUShtX2V4
cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCByZWRpcmVjdFJlc3BvbnNl
Lmh0dHBTdGF0dXNDb2RlKCkpOwogICAgIH0KIApAQCAtMTcxLDcgKzE3MSwxMCBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBtX2RpZEZhaWwgPSB0cnVlOwogICAgICAgICBFWFBFQ1RfRVEobV9l
eHBlY3RlZExvYWRlciwgbG9hZGVyKTsKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlF1aXRNZXNz
YWdlTG9vcCgpOworICAgICAgICBpZiAobV9ydW5uaW5nTWVzc2FnZUxvb3ApIHsKKyAgICAgICAg
ICBtX3J1bm5pbmdNZXNzYWdlTG9vcCA9IGZhbHNlOworICAgICAgICAgIHdlYmtpdF9zdXBwb3J0
OjpRdWl0TWVzc2FnZUxvb3AoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgQ2hlY2tN
ZXRob2RGYWlscyhjb25zdCBjaGFyKiB1bnNhZmVNZXRob2QpCkBAIC0yMTAsOCArMjEzLDEwIEBA
IHB1YmxpYzoKICAgICAgICAgLy8gRmFpbHVyZSBzaG91bGQgbm90IGJlIHJlcG9ydGVkIHN5bmNo
cm9ub3VzbHkuCiAgICAgICAgIEVYUEVDVF9GQUxTRShtX2RpZEZhaWwpOwogICAgICAgICAvLyBB
bGxvdyB0aGUgbG9hZGVyIHRvIHJldHVybiB0aGUgZXJyb3IuCisgICAgICAgIG1fcnVubmluZ01l
c3NhZ2VMb29wID0gdHJ1ZTsKICAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlJ1bk1lc3NhZ2VMb29w
KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG1fZGlkRmFpbCk7CisgICAgICAgIEVYUEVDVF9GQUxT
RShtX2RpZFJlY2VpdmVSZXNwb25zZSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC0yMzEsMTIg
KzIzNiwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2RpZFJlY2VpdmVDYWNoZWRNZXRhZGF0
YTsKICAgICBib29sIG1fZGlkRmluaXNoTG9hZGluZzsKICAgICBib29sIG1fZGlkRmFpbDsKKyAg
ICBib29sIG1fcnVubmluZ01lc3NhZ2VMb29wOwogfTsKIAotLy8gVGVzdCBhIHN1Y2Nlc3NmdWwg
VVJMIGxvYWQuCi1URVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFN1Y2Nlc3MpCisvLyBU
ZXN0IGEgc3VjY2Vzc2Z1bCBzYW1lLW9yaWdpbiBVUkwgbG9hZC4KK1RFU1RfRihBc3NvY2lhdGVk
VVJMTG9hZGVyVGVzdCwgU2FtZU9yaWdpblN1Y2Nlc3MpCiB7Ci0gICAgR1VSTCB1cmwgPSBHVVJM
KCJodHRwOi8vd3d3LnRlc3QuY29tL3N1Y2Nlc3MuaHRtbCIpOworICAgIEdVUkwgdXJsID0gR1VS
TCgiaHR0cDovL3d3dy50ZXN0LmNvbS9TYW1lT3JpZ2luU3VjY2Vzcy5odG1sIik7CiAgICAgV2Vi
VVJMUmVxdWVzdCByZXF1ZXN0OwogICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOwogICAgIHJlcXVl
c3Quc2V0VVJMKHVybCk7CkBAIC0yNTksNyArMjY1LDcgQEAgVEVTVF9GKEFzc29jaWF0ZWRVUkxM
b2FkZXJUZXN0LCBTdWNjZXNzKQogVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTYW1l
T3JpZ2luUmVzdHJpY3Rpb24pCiB7CiAgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmlnaW4gc2luY2Ug
dGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCi0gICAgR1VSTCB1cmwgPSBH
VVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9mYWlsdXJlLmh0bWwiKTsKKyAgICBHVVJMIHVybCA9
IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL1NhbWVPcmlnaW5SZXN0cmljdGlvbi5odG1sIik7
CiAgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OwogICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOwog
ICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CkBAIC0yNzAsNyArMjc2LDcgQEAgVEVTVF9GKEFzc29j
aWF0ZWRVUkxMb2FkZXJUZXN0LCBTYW1lT3JpZwogVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJU
ZXN0LCBDcm9zc09yaWdpblN1Y2Nlc3MpCiB7CiAgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmlnaW4g
c2luY2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCi0gICAgR1VSTCB1
cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9zdWNjZXNzLmh0bWwiKTsKKyAgICBHVVJM
IHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL0Nyb3NzT3JpZ2luU3VjY2Vzcy5odG1s
Iik7CiAgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OwogICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgp
OwogICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CkBAIC0yOTEsNiArMjk3LDE0MiBAQCBURVNUX0Yo
QXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIENyb3NzT3JpCiAgICAgRVhQRUNUX1RSVUUobV9kaWRG
aW5pc2hMb2FkaW5nKTsKIH0KIAorLy8gVGVzdCBhIHN1Y2Nlc3NmdWwgY3Jvc3Mtb3JpZ2luIGxv
YWQgdXNpbmcgQ09SUy4KK1RFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgQ3Jvc3NPcmln
aW5XaXRoQWNjZXNzQ29udHJvbFN1Y2Nlc3MpCit7CisgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmln
aW4gc2luY2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCisgICAgR1VS
TCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9Dcm9zc09yaWdpbldpdGhBY2Nlc3ND
b250cm9sU3VjY2Vzcy5odG1sIik7CisgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAgIHJl
cXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBtX2V4
cGVjdGVkUmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25z
ZS5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0
L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKCJhY2Nl
c3MtY29udHJvbC1hbGxvdy1vcmlnaW4iLCAiKiIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdp
c3Rlck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsK
KworICAgIFdlYlVSTExvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLmNyb3NzT3Jp
Z2luUmVxdWVzdFBvbGljeSA9IFdlYlVSTExvYWRlck9wdGlvbnM6OkNyb3NzT3JpZ2luUmVxdWVz
dFBvbGljeVVzZUFjY2Vzc0NvbnRyb2w7CisgICAgbV9leHBlY3RlZExvYWRlciA9IGNyZWF0ZUFz
c29jaWF0ZWRVUkxMb2FkZXIob3B0aW9ucyk7CisgICAgRVhQRUNUX1RSVUUobV9leHBlY3RlZExv
YWRlcik7CisgICAgbV9leHBlY3RlZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVlc3Qs
IHRoaXMpOworICAgIHNlcnZlUmVxdWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2Vp
dmVSZXNwb25zZSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlRGF0YSk7CisgICAgRVhQ
RUNUX1RSVUUobV9kaWRGaW5pc2hMb2FkaW5nKTsKK30KKworLy8gVGVzdCBhbiB1bnN1Y2Nlc3Nm
dWwgY3Jvc3Mtb3JpZ2luIGxvYWQgdXNpbmcgQ09SUy4KK1RFU1RfRihBc3NvY2lhdGVkVVJMTG9h
ZGVyVGVzdCwgQ3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbEZhaWx1cmUpCit7CisgICAgLy8g
VGhpcyBpcyBjcm9zcy1vcmlnaW4gc2luY2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3d3cu
dGVzdC5jb20uCisgICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9Dcm9z
c09yaWdpbldpdGhBY2Nlc3NDb250cm9sRmFpbHVyZS5odG1sIik7CisgICAgV2ViVVJMUmVxdWVz
dCByZXF1ZXN0OworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0VVJM
KHVybCk7CisKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAg
IG1fZXhwZWN0ZWRSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNl
LnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuYWRkSFRU
UEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4iLCAiKiIpOworICAgIHdl
YmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZXNwb25zZSwg
bV9mcmFtZUZpbGVQYXRoKTsKKworICAgIFdlYlVSTExvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAg
ICAvLyBTZW5kIGNyZWRlbnRpYWxzLiBUaGlzIHdpbGwgY2F1c2UgdGhlIENPUlMgY2hlY2tzIHRv
IGZhaWwsIGJlY2F1c2UgY3JlZGVudGlhbHMgY2FuJ3QgYmUKKyAgICAvLyBzZW50IHRvIGEgc2Vy
dmVyIHdoaWNoIHJldHVybnMgdGhlIGhlYWRlciAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2lu
IiB3aXRoICIqIiBhcyBpdHMgdmFsdWUuCisgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID0g
dHJ1ZTsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFdlYlVSTExvYWRl
ck9wdGlvbnM6OkNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeVVzZUFjY2Vzc0NvbnRyb2w7CisgICAg
bV9leHBlY3RlZExvYWRlciA9IGNyZWF0ZUFzc29jaWF0ZWRVUkxMb2FkZXIob3B0aW9ucyk7Cisg
ICAgRVhQRUNUX1RSVUUobV9leHBlY3RlZExvYWRlcik7CisgICAgbV9leHBlY3RlZExvYWRlci0+
bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVlc3QsIHRoaXMpOworCisgICAgLy8gRmFpbHVyZSBzaG91
bGQgbm90IGJlIHJlcG9ydGVkIHN5bmNocm9ub3VzbHkuCisgICAgRVhQRUNUX0ZBTFNFKG1fZGlk
RmFpbCk7CisgICAgLy8gVGhlIGxvYWRlciBuZWVkcyB0byByZWNlaXZlIHRoZSByZXNwb25zZSwg
YmVmb3JlIGRvaW5nIHRoZSBDT1JTIGNoZWNrLgorICAgIHNlcnZlUmVxdWVzdHMoKTsKKyAgICBF
WFBFQ1RfVFJVRShtX2RpZEZhaWwpOworICAgIEVYUEVDVF9GQUxTRShtX2RpZFJlY2VpdmVSZXNw
b25zZSk7Cit9CisKKy8vIFRlc3QgYSBzYW1lLW9yaWdpbiBVUkwgcmVkaXJlY3QgYW5kIGxvYWQu
CitURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFJlZGlyZWN0U3VjY2VzcykKK3sKKyAg
ICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vUmVkaXJlY3RTdWNjZXNzLmh0
bWwiKTsKKyAgICBjaGFyIHJlZGlyZWN0W10gPSAiaHR0cDovL3d3dy50ZXN0LmNvbS9SZWRpcmVj
dFN1Y2Nlc3MyLmh0bWwiOyAgLy8gU2FtZS1vcmlnaW4KKyAgICBHVVJMIHJlZGlyZWN0VVJMID0g
R1VSTChyZWRpcmVjdCk7CisKKyAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVxdWVz
dC5pbml0aWFsaXplKCk7CisgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhwZWN0
ZWRSZWRpcmVjdFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVk
aXJlY3RSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9u
c2Uuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNDb2RlKDMwMSk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9u
c2Uuc2V0SFRUUEhlYWRlckZpZWxkKCJMb2NhdGlvbiIsIHJlZGlyZWN0KTsKKyAgICB3ZWJraXRf
c3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25z
ZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0ID0gV2ViVVJM
UmVxdWVzdCgpOworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICBt
X2V4cGVjdGVkTmV3UmVxdWVzdC5zZXRVUkwocmVkaXJlY3RVUkwpOworCisgICAgbV9leHBlY3Rl
ZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuaW5p
dGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1s
Iik7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHJlZGlyZWN0VVJMLCBt
X2V4cGVjdGVkUmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBtX2V4cGVjdGVkTG9h
ZGVyID0gY3JlYXRlQXNzb2NpYXRlZFVSTExvYWRlcigpOworICAgIEVYUEVDVF9UUlVFKG1fZXhw
ZWN0ZWRMb2FkZXIpOworICAgIG1fZXhwZWN0ZWRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShy
ZXF1ZXN0LCB0aGlzKTsKKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNUX1RSVUUobV93
aWxsU2VuZFJlcXVlc3QpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZVJlc3BvbnNlKTsK
KyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVEYXRhKTsKKyAgICBFWFBFQ1RfVFJVRShtX2Rp
ZEZpbmlzaExvYWRpbmcpOworfQorCisvLyBUZXN0IGEgc3VjY2Vzc2Z1bCByZWRpcmVjdCBhbmQg
Y3Jvc3Mtb3JpZ2luIGxvYWQgdXNpbmcgQ09SUy4KKy8vIEZJWE1FOiBFbmFibGUgdGhpcyB3aGVu
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBzdXBwb3J0cyBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rz
LgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBESVNBQkxFRF9SZWRpcmVjdENyb3Nz
T3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzKQoreworICAgIEdVUkwgdXJsID0gR1VSTCgi
aHR0cDovL3d3dy50ZXN0LmNvbS9SZWRpcmVjdENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xT
dWNjZXNzLmh0bWwiKTsKKyAgICBjaGFyIHJlZGlyZWN0W10gPSAiaHR0cDovL3d3dy5vdGhlci5j
b20vUmVkaXJlY3RDcm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sU3VjY2Vzcy5odG1sIjsgIC8v
IENyb3NzLW9yaWdpbgorICAgIEdVUkwgcmVkaXJlY3RVUkwgPSBHVVJMKHJlZGlyZWN0KTsKKwor
ICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKKyAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAg
ICByZXF1ZXN0LnNldFVSTCh1cmwpOworCisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Ug
PSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLmluaXRp
YWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4
dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0Nv
ZGUoMzAxKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmll
bGQoIkxvY2F0aW9uIiwgcmVkaXJlY3QpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1v
Y2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgp
OworCisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3QgPSBXZWJVUkxSZXF1ZXN0KCk7CisgICAgbV9l
eHBlY3RlZE5ld1JlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0
LnNldFVSTChyZWRpcmVjdFVSTCk7CisKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJVUkxS
ZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAgbV9l
eHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVk
UmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4i
LCAiKiIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTChyZWRpcmVjdFVS
TCwgbV9leHBlY3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgV2ViVVJMTG9h
ZGVyT3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5
ID0gV2ViVVJMTG9hZGVyT3B0aW9uczo6Q3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5VXNlQWNjZXNz
Q29udHJvbDsKKyAgICBtX2V4cGVjdGVkTG9hZGVyID0gY3JlYXRlQXNzb2NpYXRlZFVSTExvYWRl
cihvcHRpb25zKTsKKyAgICBFWFBFQ1RfVFJVRShtX2V4cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4
cGVjdGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkocmVxdWVzdCwgdGhpcyk7CisgICAgc2Vy
dmVSZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVFKG1fd2lsbFNlbmRSZXF1ZXN0KTsKKyAgICBF
WFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVSZXNwb25zZSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRS
ZWNlaXZlRGF0YSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRGaW5pc2hMb2FkaW5nKTsKK30KKwog
Ly8gVGVzdCB0aGF0IHVudHJ1c3RlZCBsb2FkcyBjYW4ndCB1c2UgYSBmb3JiaWRkZW4gbWV0aG9k
LgogVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBVbnRydXN0ZWRDaGVja01ldGhvZHMp
CiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120079</attachid>
            <date>2011-12-20 14:10:00 -0800</date>
            <delta_ts>2011-12-20 14:16:50 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>9917</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAzMzQ5KQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTIwICBCaWxs
IEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVz
Y3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQXNzb2NpYXRlZFVSTExvYWRlclRlc3QuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdDo6QXNzb2NpYXRlZFVS
TExvYWRlclRlc3QpOgorICAgICAgICAoV2ViS2l0OjpBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdDo6
d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6QXNzb2NpYXRlZFVSTExvYWRlclRl
c3Q6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdDo6
Q2hlY2tGYWlscyk6CisgICAgICAgIChXZWJLaXQ6OlRFU1RfRik6CisKIDIwMTEtMTItMjAgIE1p
a2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4KIAogICAgICAgICBlbmFibGUgVVNFX1NLSUFfVEVY
VCBieSBkZWZhdWx0LCByZXBsYWNpbmcgR0RJIGZvciBhbGwgdGV4dCBkcmF3aW5nCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQXNzb2NpYXRlZFVSTExvYWRlclRlc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVyVGVzdC5jcHAJ
KHJldmlzaW9uIDEwMzMwOCkKKysrIFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3NvY2lhdGVkVVJM
TG9hZGVyVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgog
ICAgICAgICAsICBtX2RpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShmYWxzZSkKICAgICAgICAgLCAg
bV9kaWRGaW5pc2hMb2FkaW5nKGZhbHNlKQogICAgICAgICAsICBtX2RpZEZhaWwoZmFsc2UpCisg
ICAgICAgICwgIG1fcnVubmluZ01lc3NhZ2VMb29wKGZhbHNlKQogICAgIHsKICAgICAgICAgLy8g
UmV1c2Ugb25lIG9mIHRoZSB0ZXN0IGZpbGVzIGZyb20gV2ViRnJhbWVUZXN0LgogICAgICAgICBz
dGQ6OnN0cmluZyBmaWxlUGF0aCA9IHdlYmtpdF9zdXBwb3J0OjpHZXRXZWJLaXRSb290RGlyKCku
dXRmOCgpOwpAQCAtMTIzLDcgKzEyNCw2IEBAIHB1YmxpYzoKICAgICAgICAgRVhQRUNUX0VRKG1f
ZXhwZWN0ZWRMb2FkZXIsIGxvYWRlcik7CiAgICAgICAgIEVYUEVDVF9FUShtX2V4cGVjdGVkTmV3
UmVxdWVzdC51cmwoKSwgbmV3UmVxdWVzdC51cmwoKSk7CiAgICAgICAgIEVYUEVDVF9FUShtX2V4
cGVjdGVkUmVkaXJlY3RSZXNwb25zZS51cmwoKSwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSk7Ci0g
ICAgICAgIEVYUEVDVF9FUShtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5taW1lVHlwZSgpLCBy
ZWRpcmVjdFJlc3BvbnNlLm1pbWVUeXBlKCkpOwogICAgICAgICBFWFBFQ1RfRVEobV9leHBlY3Rl
ZFJlZGlyZWN0UmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVkaXJlY3RSZXNwb25zZS5odHRw
U3RhdHVzQ29kZSgpKTsKICAgICB9CiAKQEAgLTE3MSw3ICsxNzEsMTAgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgbV9kaWRGYWlsID0gdHJ1ZTsKICAgICAgICAgRVhQRUNUX0VRKG1fZXhwZWN0
ZWRMb2FkZXIsIGxvYWRlcik7Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpRdWl0TWVzc2FnZUxv
b3AoKTsKKyAgICAgICAgaWYgKG1fcnVubmluZ01lc3NhZ2VMb29wKSB7CisgICAgICAgICAgbV9y
dW5uaW5nTWVzc2FnZUxvb3AgPSBmYWxzZTsKKyAgICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UXVp
dE1lc3NhZ2VMb29wKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIENoZWNrTWV0aG9k
RmFpbHMoY29uc3QgY2hhciogdW5zYWZlTWV0aG9kKQpAQCAtMjEwLDggKzIxMywxMCBAQCBwdWJs
aWM6CiAgICAgICAgIC8vIEZhaWx1cmUgc2hvdWxkIG5vdCBiZSByZXBvcnRlZCBzeW5jaHJvbm91
c2x5LgogICAgICAgICBFWFBFQ1RfRkFMU0UobV9kaWRGYWlsKTsKICAgICAgICAgLy8gQWxsb3cg
dGhlIGxvYWRlciB0byByZXR1cm4gdGhlIGVycm9yLgorICAgICAgICBtX3J1bm5pbmdNZXNzYWdl
TG9vcCA9IHRydWU7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpSdW5NZXNzYWdlTG9vcCgpOwog
ICAgICAgICBFWFBFQ1RfVFJVRShtX2RpZEZhaWwpOworICAgICAgICBFWFBFQ1RfRkFMU0UobV9k
aWRSZWNlaXZlUmVzcG9uc2UpOwogICAgIH0KIAogcHJvdGVjdGVkOgpAQCAtMjMxLDEyICsyMzYs
MTMgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9kaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGE7CiAg
ICAgYm9vbCBtX2RpZEZpbmlzaExvYWRpbmc7CiAgICAgYm9vbCBtX2RpZEZhaWw7CisgICAgYm9v
bCBtX3J1bm5pbmdNZXNzYWdlTG9vcDsKIH07CiAKLS8vIFRlc3QgYSBzdWNjZXNzZnVsIFVSTCBs
b2FkLgotVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTdWNjZXNzKQorLy8gVGVzdCBh
IHN1Y2Nlc3NmdWwgc2FtZS1vcmlnaW4gVVJMIGxvYWQuCitURVNUX0YoQXNzb2NpYXRlZFVSTExv
YWRlclRlc3QsIFNhbWVPcmlnaW5TdWNjZXNzKQogewotICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0
cDovL3d3dy50ZXN0LmNvbS9zdWNjZXNzLmh0bWwiKTsKKyAgICBHVVJMIHVybCA9IEdVUkwoImh0
dHA6Ly93d3cudGVzdC5jb20vU2FtZU9yaWdpblN1Y2Nlc3MuaHRtbCIpOwogICAgIFdlYlVSTFJl
cXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKICAgICByZXF1ZXN0LnNl
dFVSTCh1cmwpOwpAQCAtMjU5LDcgKzI2NSw3IEBAIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVy
VGVzdCwgU3VjY2VzcykKIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgU2FtZU9yaWdp
blJlc3RyaWN0aW9uKQogewogICAgIC8vIFRoaXMgaXMgY3Jvc3Mtb3JpZ2luIHNpbmNlIHRoZSBm
cmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgotICAgIEdVUkwgdXJsID0gR1VSTCgi
aHR0cDovL3d3dy5vdGhlci5jb20vZmFpbHVyZS5odG1sIik7CisgICAgR1VSTCB1cmwgPSBHVVJM
KCJodHRwOi8vd3d3Lm90aGVyLmNvbS9TYW1lT3JpZ2luUmVzdHJpY3Rpb24uaHRtbCIpOwogICAg
IFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKICAgICBy
ZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMjcwLDcgKzI3Niw3IEBAIFRFU1RfRihBc3NvY2lhdGVk
VVJMTG9hZGVyVGVzdCwgU2FtZU9yaWcKIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwg
Q3Jvc3NPcmlnaW5TdWNjZXNzKQogewogICAgIC8vIFRoaXMgaXMgY3Jvc3Mtb3JpZ2luIHNpbmNl
IHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgotICAgIEdVUkwgdXJsID0g
R1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vc3VjY2Vzcy5odG1sIik7CisgICAgR1VSTCB1cmwg
PSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9Dcm9zc09yaWdpblN1Y2Nlc3MuaHRtbCIpOwog
ICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKICAg
ICByZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMjkxLDYgKzI5NywxNDIgQEAgVEVTVF9GKEFzc29j
aWF0ZWRVUkxMb2FkZXJUZXN0LCBDcm9zc09yaQogICAgIEVYUEVDVF9UUlVFKG1fZGlkRmluaXNo
TG9hZGluZyk7CiB9CiAKKy8vIFRlc3QgYSBzdWNjZXNzZnVsIGNyb3NzLW9yaWdpbiBsb2FkIHVz
aW5nIENPUlMuCitURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIENyb3NzT3JpZ2luV2l0
aEFjY2Vzc0NvbnRyb2xTdWNjZXNzKQoreworICAgIC8vIFRoaXMgaXMgY3Jvc3Mtb3JpZ2luIHNp
bmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgorICAgIEdVUkwgdXJs
ID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vQ3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJv
bFN1Y2Nlc3MuaHRtbCIpOworICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKKyAgICByZXF1ZXN0
LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworCisgICAgbV9leHBlY3Rl
ZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuaW5p
dGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1s
Iik7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZCgiYWNjZXNzLWNv
bnRyb2wtYWxsb3ctb3JpZ2luIiwgIioiKTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJN
b2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAg
ICBXZWJVUkxMb2FkZXJPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5jcm9zc09yaWdpblJl
cXVlc3RQb2xpY3kgPSBXZWJVUkxMb2FkZXJPcHRpb25zOjpDcm9zc09yaWdpblJlcXVlc3RQb2xp
Y3lVc2VBY2Nlc3NDb250cm9sOworICAgIG1fZXhwZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lh
dGVkVVJMTG9hZGVyKG9wdGlvbnMpOworICAgIEVYUEVDVF9UUlVFKG1fZXhwZWN0ZWRMb2FkZXIp
OworICAgIG1fZXhwZWN0ZWRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShyZXF1ZXN0LCB0aGlz
KTsKKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlUmVz
cG9uc2UpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZURhdGEpOworICAgIEVYUEVDVF9U
UlVFKG1fZGlkRmluaXNoTG9hZGluZyk7Cit9CisKKy8vIFRlc3QgYW4gdW5zdWNjZXNzZnVsIGNy
b3NzLW9yaWdpbiBsb2FkIHVzaW5nIENPUlMuCitURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRl
c3QsIENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xGYWlsdXJlKQoreworICAgIC8vIFRoaXMg
aXMgY3Jvc3Mtb3JpZ2luIHNpbmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3Qu
Y29tLgorICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vQ3Jvc3NPcmln
aW5XaXRoQWNjZXNzQ29udHJvbEZhaWx1cmUuaHRtbCIpOworICAgIFdlYlVSTFJlcXVlc3QgcmVx
dWVzdDsKKyAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmwp
OworCisgICAgbV9leHBlY3RlZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4
cGVjdGVkUmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5zZXRN
SU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmFkZEhUVFBIZWFk
ZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgIioiKTsKKyAgICB3ZWJraXRf
c3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVzcG9uc2UsIG1fZnJh
bWVGaWxlUGF0aCk7CisKKyAgICBXZWJVUkxMb2FkZXJPcHRpb25zIG9wdGlvbnM7CisgICAgLy8g
U2VuZCBjcmVkZW50aWFscy4gVGhpcyB3aWxsIGNhdXNlIHRoZSBDT1JTIGNoZWNrcyB0byBmYWls
LCBiZWNhdXNlIGNyZWRlbnRpYWxzIGNhbid0IGJlCisgICAgLy8gc2VudCB0byBhIHNlcnZlciB3
aGljaCByZXR1cm5zIHRoZSBoZWFkZXIgImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIgd2l0
aCAiKiIgYXMgaXRzIHZhbHVlLgorICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9IHRydWU7
CisgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBXZWJVUkxMb2FkZXJPcHRp
b25zOjpDcm9zc09yaWdpblJlcXVlc3RQb2xpY3lVc2VBY2Nlc3NDb250cm9sOworICAgIG1fZXhw
ZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lhdGVkVVJMTG9hZGVyKG9wdGlvbnMpOworICAgIEVY
UEVDVF9UUlVFKG1fZXhwZWN0ZWRMb2FkZXIpOworICAgIG1fZXhwZWN0ZWRMb2FkZXItPmxvYWRB
c3luY2hyb25vdXNseShyZXF1ZXN0LCB0aGlzKTsKKworICAgIC8vIEZhaWx1cmUgc2hvdWxkIG5v
dCBiZSByZXBvcnRlZCBzeW5jaHJvbm91c2x5LgorICAgIEVYUEVDVF9GQUxTRShtX2RpZEZhaWwp
OworICAgIC8vIFRoZSBsb2FkZXIgbmVlZHMgdG8gcmVjZWl2ZSB0aGUgcmVzcG9uc2UsIGJlZm9y
ZSBkb2luZyB0aGUgQ09SUyBjaGVjay4KKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNU
X1RSVUUobV9kaWRGYWlsKTsKKyAgICBFWFBFQ1RfRkFMU0UobV9kaWRSZWNlaXZlUmVzcG9uc2Up
OworfQorCisvLyBUZXN0IGEgc2FtZS1vcmlnaW4gVVJMIHJlZGlyZWN0IGFuZCBsb2FkLgorVEVT
VF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBSZWRpcmVjdFN1Y2Nlc3MpCit7CisgICAgR1VS
TCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tL1JlZGlyZWN0U3VjY2Vzcy5odG1sIik7
CisgICAgY2hhciByZWRpcmVjdFtdID0gImh0dHA6Ly93d3cudGVzdC5jb20vUmVkaXJlY3RTdWNj
ZXNzMi5odG1sIjsgIC8vIFNhbWUtb3JpZ2luCisgICAgR1VSTCByZWRpcmVjdFVSTCA9IEdVUkwo
cmVkaXJlY3QpOworCisgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAgIHJlcXVlc3QuaW5p
dGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBtX2V4cGVjdGVkUmVk
aXJlY3RSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0
UmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNl
dE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5z
ZXRIVFRQU3RhdHVzQ29kZSgzMDEpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNl
dEhUVFBIZWFkZXJGaWVsZCgiTG9jYXRpb24iLCByZWRpcmVjdCk7CisgICAgd2Via2l0X3N1cHBv
cnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UsIG1f
ZnJhbWVGaWxlUGF0aCk7CisKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdCA9IFdlYlVSTFJlcXVl
c3QoKTsKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdC5pbml0aWFsaXplKCk7CisgICAgbV9leHBl
Y3RlZE5ld1JlcXVlc3Quc2V0VVJMKHJlZGlyZWN0VVJMKTsKKworICAgIG1fZXhwZWN0ZWRSZXNw
b25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmluaXRpYWxp
emUoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOwor
ICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTChyZWRpcmVjdFVSTCwgbV9leHBl
Y3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgbV9leHBlY3RlZExvYWRlciA9
IGNyZWF0ZUFzc29jaWF0ZWRVUkxMb2FkZXIoKTsKKyAgICBFWFBFQ1RfVFJVRShtX2V4cGVjdGVk
TG9hZGVyKTsKKyAgICBtX2V4cGVjdGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkocmVxdWVz
dCwgdGhpcyk7CisgICAgc2VydmVSZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVFKG1fd2lsbFNl
bmRSZXF1ZXN0KTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVSZXNwb25zZSk7CisgICAg
RVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlRGF0YSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRGaW5p
c2hMb2FkaW5nKTsKK30KKworLy8gVGVzdCBhIHN1Y2Nlc3NmdWwgcmVkaXJlY3QgYW5kIGNyb3Nz
LW9yaWdpbiBsb2FkIHVzaW5nIENPUlMuCisvLyBGSVhNRTogRW5hYmxlIHRoaXMgd2hlbiBEb2N1
bWVudFRocmVhZGFibGVMb2FkZXIgc3VwcG9ydHMgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0cy4KK1RF
U1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgRElTQUJMRURfUmVkaXJlY3RDcm9zc09yaWdp
bldpdGhBY2Nlc3NDb250cm9sU3VjY2VzcykKK3sKKyAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6
Ly93d3cudGVzdC5jb20vUmVkaXJlY3RDcm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sU3VjY2Vz
cy5odG1sIik7CisgICAgY2hhciByZWRpcmVjdFtdID0gImh0dHA6Ly93d3cub3RoZXIuY29tL1Jl
ZGlyZWN0Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1Y2Nlc3MuaHRtbCI7ICAvLyBDcm9z
cy1vcmlnaW4KKyAgICBHVVJMIHJlZGlyZWN0VVJMID0gR1VSTChyZWRpcmVjdCk7CisKKyAgICBX
ZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CisgICAgcmVx
dWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlID0gV2Vi
VVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5pbml0aWFsaXpl
KCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQvaHRt
bCIpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDMw
MSk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKCJM
b2NhdGlvbiIsIHJlZGlyZWN0KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRV
UkwodXJsLCBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKwor
ICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdCgpOworICAgIG1fZXhwZWN0
ZWROZXdSZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdC5zZXRV
UkwocmVkaXJlY3RVUkwpOworCisgICAgbV9leHBlY3RlZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9u
c2UoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0
ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlc3Bv
bnNlLmFkZEhUVFBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgIioi
KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwocmVkaXJlY3RVUkwsIG1f
ZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIFdlYlVSTExvYWRlck9w
dGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFdl
YlVSTExvYWRlck9wdGlvbnM6OkNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeVVzZUFjY2Vzc0NvbnRy
b2w7CisgICAgbV9leHBlY3RlZExvYWRlciA9IGNyZWF0ZUFzc29jaWF0ZWRVUkxMb2FkZXIob3B0
aW9ucyk7CisgICAgRVhQRUNUX1RSVUUobV9leHBlY3RlZExvYWRlcik7CisgICAgbV9leHBlY3Rl
ZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVlc3QsIHRoaXMpOworICAgIHNlcnZlUmVx
dWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX3dpbGxTZW5kUmVxdWVzdCk7CisgICAgRVhQRUNU
X1RSVUUobV9kaWRSZWNlaXZlUmVzcG9uc2UpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2
ZURhdGEpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkRmluaXNoTG9hZGluZyk7Cit9CisKIC8vIFRl
c3QgdGhhdCB1bnRydXN0ZWQgbG9hZHMgY2FuJ3QgdXNlIGEgZm9yYmlkZGVuIG1ldGhvZC4KIFRF
U1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgVW50cnVzdGVkQ2hlY2tNZXRob2RzKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120083</attachid>
            <date>2011-12-20 14:16:50 -0800</date>
            <delta_ts>2011-12-21 06:21:05 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>10039</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAzMzUwKQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTIwICBCaWxs
IEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0cyBm
b3IgQXNzb2NpYXRlZFVSTExvYWRlciB0byBjaGVjayBoYW5kbGluZyBvZiByZWRpcmVjdHMgYW5k
CisgICAgICAgIGNyb3NzLW9yaWdpbiBhY2Nlc3MgY29udHJvbC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVy
VGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0OjpBc3Nv
Y2lhdGVkVVJMTG9hZGVyVGVzdCk6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2Fk
ZXJUZXN0Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpBc3NvY2lhdGVkVVJM
TG9hZGVyVGVzdDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0ZWRVUkxMb2Fk
ZXJUZXN0OjpDaGVja0ZhaWxzKToKKyAgICAgICAgKFdlYktpdDo6VEVTVF9GKToKKwogMjAxMS0x
Mi0yMCAgTWlrZSBSZWVkICA8cmVlZEBnb29nbGUuY29tPgogCiAgICAgICAgIGVuYWJsZSBVU0Vf
U0tJQV9URVhUIGJ5IGRlZmF1bHQsIHJlcGxhY2luZyBHREkgZm9yIGFsbCB0ZXh0IGRyYXdpbmcK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVyVGVzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJU
ZXN0LmNwcAkocmV2aXNpb24gMTAzMzUwKQorKysgV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29j
aWF0ZWRVUkxMb2FkZXJUZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsNyBAQCBw
dWJsaWM6CiAgICAgICAgICwgIG1fZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGZhbHNlKQogICAg
ICAgICAsICBtX2RpZEZpbmlzaExvYWRpbmcoZmFsc2UpCiAgICAgICAgICwgIG1fZGlkRmFpbChm
YWxzZSkKKyAgICAgICAgLCAgbV9ydW5uaW5nTWVzc2FnZUxvb3AoZmFsc2UpCiAgICAgewogICAg
ICAgICAvLyBSZXVzZSBvbmUgb2YgdGhlIHRlc3QgZmlsZXMgZnJvbSBXZWJGcmFtZVRlc3QuCiAg
ICAgICAgIHN0ZDo6c3RyaW5nIGZpbGVQYXRoID0gd2Via2l0X3N1cHBvcnQ6OkdldFdlYktpdFJv
b3REaXIoKS51dGY4KCk7CkBAIC0xMjMsNyArMTI0LDYgQEAgcHVibGljOgogICAgICAgICBFWFBF
Q1RfRVEobV9leHBlY3RlZExvYWRlciwgbG9hZGVyKTsKICAgICAgICAgRVhQRUNUX0VRKG1fZXhw
ZWN0ZWROZXdSZXF1ZXN0LnVybCgpLCBuZXdSZXF1ZXN0LnVybCgpKTsKICAgICAgICAgRVhQRUNU
X0VRKG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnVybCgpLCByZWRpcmVjdFJlc3BvbnNlLnVy
bCgpKTsKLSAgICAgICAgRVhQRUNUX0VRKG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLm1pbWVU
eXBlKCksIHJlZGlyZWN0UmVzcG9uc2UubWltZVR5cGUoKSk7CiAgICAgICAgIEVYUEVDVF9FUSht
X2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCByZWRpcmVjdFJlc3Bv
bnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogICAgIH0KIApAQCAtMTcxLDcgKzE3MSwxMCBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBtX2RpZEZhaWwgPSB0cnVlOwogICAgICAgICBFWFBFQ1RfRVEo
bV9leHBlY3RlZExvYWRlciwgbG9hZGVyKTsKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlF1aXRN
ZXNzYWdlTG9vcCgpOworICAgICAgICBpZiAobV9ydW5uaW5nTWVzc2FnZUxvb3ApIHsKKyAgICAg
ICAgICBtX3J1bm5pbmdNZXNzYWdlTG9vcCA9IGZhbHNlOworICAgICAgICAgIHdlYmtpdF9zdXBw
b3J0OjpRdWl0TWVzc2FnZUxvb3AoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgQ2hl
Y2tNZXRob2RGYWlscyhjb25zdCBjaGFyKiB1bnNhZmVNZXRob2QpCkBAIC0yMTAsOCArMjEzLDEw
IEBAIHB1YmxpYzoKICAgICAgICAgLy8gRmFpbHVyZSBzaG91bGQgbm90IGJlIHJlcG9ydGVkIHN5
bmNocm9ub3VzbHkuCiAgICAgICAgIEVYUEVDVF9GQUxTRShtX2RpZEZhaWwpOwogICAgICAgICAv
LyBBbGxvdyB0aGUgbG9hZGVyIHRvIHJldHVybiB0aGUgZXJyb3IuCisgICAgICAgIG1fcnVubmlu
Z01lc3NhZ2VMb29wID0gdHJ1ZTsKICAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlJ1bk1lc3NhZ2VM
b29wKCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG1fZGlkRmFpbCk7CisgICAgICAgIEVYUEVDVF9G
QUxTRShtX2RpZFJlY2VpdmVSZXNwb25zZSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC0yMzEs
MTIgKzIzNiwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2RpZFJlY2VpdmVDYWNoZWRNZXRh
ZGF0YTsKICAgICBib29sIG1fZGlkRmluaXNoTG9hZGluZzsKICAgICBib29sIG1fZGlkRmFpbDsK
KyAgICBib29sIG1fcnVubmluZ01lc3NhZ2VMb29wOwogfTsKIAotLy8gVGVzdCBhIHN1Y2Nlc3Nm
dWwgVVJMIGxvYWQuCi1URVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFN1Y2Nlc3MpCisv
LyBUZXN0IGEgc3VjY2Vzc2Z1bCBzYW1lLW9yaWdpbiBVUkwgbG9hZC4KK1RFU1RfRihBc3NvY2lh
dGVkVVJMTG9hZGVyVGVzdCwgU2FtZU9yaWdpblN1Y2Nlc3MpCiB7Ci0gICAgR1VSTCB1cmwgPSBH
VVJMKCJodHRwOi8vd3d3LnRlc3QuY29tL3N1Y2Nlc3MuaHRtbCIpOworICAgIEdVUkwgdXJsID0g
R1VSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS9TYW1lT3JpZ2luU3VjY2Vzcy5odG1sIik7CiAgICAg
V2ViVVJMUmVxdWVzdCByZXF1ZXN0OwogICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOwogICAgIHJl
cXVlc3Quc2V0VVJMKHVybCk7CkBAIC0yNTksNyArMjY1LDcgQEAgVEVTVF9GKEFzc29jaWF0ZWRV
UkxMb2FkZXJUZXN0LCBTdWNjZXNzKQogVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBT
YW1lT3JpZ2luUmVzdHJpY3Rpb24pCiB7CiAgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmlnaW4gc2lu
Y2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCi0gICAgR1VSTCB1cmwg
PSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9mYWlsdXJlLmh0bWwiKTsKKyAgICBHVVJMIHVy
bCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL1NhbWVPcmlnaW5SZXN0cmljdGlvbi5odG1s
Iik7CiAgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OwogICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgp
OwogICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CkBAIC0yNzAsNyArMjc2LDcgQEAgVEVTVF9GKEFz
c29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTYW1lT3JpZwogVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2Fk
ZXJUZXN0LCBDcm9zc09yaWdpblN1Y2Nlc3MpCiB7CiAgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmln
aW4gc2luY2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCi0gICAgR1VS
TCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9zdWNjZXNzLmh0bWwiKTsKKyAgICBH
VVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL0Nyb3NzT3JpZ2luU3VjY2Vzcy5o
dG1sIik7CiAgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OwogICAgIHJlcXVlc3QuaW5pdGlhbGl6
ZSgpOwogICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CkBAIC0yOTEsNiArMjk3LDE0MiBAQCBURVNU
X0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIENyb3NzT3JpCiAgICAgRVhQRUNUX1RSVUUobV9k
aWRGaW5pc2hMb2FkaW5nKTsKIH0KIAorLy8gVGVzdCBhIHN1Y2Nlc3NmdWwgY3Jvc3Mtb3JpZ2lu
IGxvYWQgdXNpbmcgQ09SUy4KK1RFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgQ3Jvc3NP
cmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1Y2Nlc3MpCit7CisgICAgLy8gVGhpcyBpcyBjcm9zcy1v
cmlnaW4gc2luY2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCisgICAg
R1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9Dcm9zc09yaWdpbldpdGhBY2Nl
c3NDb250cm9sU3VjY2Vzcy5odG1sIik7CisgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAg
IHJlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBt
X2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNw
b25zZS5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0
ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKCJh
Y2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4iLCAiKiIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpS
ZWdpc3Rlck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRo
KTsKKworICAgIFdlYlVSTExvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLmNyb3Nz
T3JpZ2luUmVxdWVzdFBvbGljeSA9IFdlYlVSTExvYWRlck9wdGlvbnM6OkNyb3NzT3JpZ2luUmVx
dWVzdFBvbGljeVVzZUFjY2Vzc0NvbnRyb2w7CisgICAgbV9leHBlY3RlZExvYWRlciA9IGNyZWF0
ZUFzc29jaWF0ZWRVUkxMb2FkZXIob3B0aW9ucyk7CisgICAgRVhQRUNUX1RSVUUobV9leHBlY3Rl
ZExvYWRlcik7CisgICAgbV9leHBlY3RlZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVl
c3QsIHRoaXMpOworICAgIHNlcnZlUmVxdWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJl
Y2VpdmVSZXNwb25zZSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlRGF0YSk7CisgICAg
RVhQRUNUX1RSVUUobV9kaWRGaW5pc2hMb2FkaW5nKTsKK30KKworLy8gVGVzdCBhbiB1bnN1Y2Nl
c3NmdWwgY3Jvc3Mtb3JpZ2luIGxvYWQgdXNpbmcgQ09SUy4KK1RFU1RfRihBc3NvY2lhdGVkVVJM
TG9hZGVyVGVzdCwgQ3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbEZhaWx1cmUpCit7CisgICAg
Ly8gVGhpcyBpcyBjcm9zcy1vcmlnaW4gc2luY2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3
d3cudGVzdC5jb20uCisgICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9D
cm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sRmFpbHVyZS5odG1sIik7CisgICAgV2ViVVJMUmVx
dWVzdCByZXF1ZXN0OworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0
VVJMKHVybCk7CisKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOwor
ICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlc3Bv
bnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuYWRk
SFRUUEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4iLCAiKiIpOworICAg
IHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZXNwb25z
ZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIFdlYlVSTExvYWRlck9wdGlvbnMgb3B0aW9uczsK
KyAgICAvLyBTZW5kIGNyZWRlbnRpYWxzLiBUaGlzIHdpbGwgY2F1c2UgdGhlIENPUlMgY2hlY2tz
IHRvIGZhaWwsIGJlY2F1c2UgY3JlZGVudGlhbHMgY2FuJ3QgYmUKKyAgICAvLyBzZW50IHRvIGEg
c2VydmVyIHdoaWNoIHJldHVybnMgdGhlIGhlYWRlciAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3Jp
Z2luIiB3aXRoICIqIiBhcyBpdHMgdmFsdWUuCisgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxz
ID0gdHJ1ZTsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFdlYlVSTExv
YWRlck9wdGlvbnM6OkNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeVVzZUFjY2Vzc0NvbnRyb2w7Cisg
ICAgbV9leHBlY3RlZExvYWRlciA9IGNyZWF0ZUFzc29jaWF0ZWRVUkxMb2FkZXIob3B0aW9ucyk7
CisgICAgRVhQRUNUX1RSVUUobV9leHBlY3RlZExvYWRlcik7CisgICAgbV9leHBlY3RlZExvYWRl
ci0+bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVlc3QsIHRoaXMpOworCisgICAgLy8gRmFpbHVyZSBz
aG91bGQgbm90IGJlIHJlcG9ydGVkIHN5bmNocm9ub3VzbHkuCisgICAgRVhQRUNUX0ZBTFNFKG1f
ZGlkRmFpbCk7CisgICAgLy8gVGhlIGxvYWRlciBuZWVkcyB0byByZWNlaXZlIHRoZSByZXNwb25z
ZSwgYmVmb3JlIGRvaW5nIHRoZSBDT1JTIGNoZWNrLgorICAgIHNlcnZlUmVxdWVzdHMoKTsKKyAg
ICBFWFBFQ1RfVFJVRShtX2RpZEZhaWwpOworICAgIEVYUEVDVF9GQUxTRShtX2RpZFJlY2VpdmVS
ZXNwb25zZSk7Cit9CisKKy8vIFRlc3QgYSBzYW1lLW9yaWdpbiBVUkwgcmVkaXJlY3QgYW5kIGxv
YWQuCitURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFJlZGlyZWN0U3VjY2VzcykKK3sK
KyAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vUmVkaXJlY3RTdWNjZXNz
Lmh0bWwiKTsKKyAgICBjaGFyIHJlZGlyZWN0W10gPSAiaHR0cDovL3d3dy50ZXN0LmNvbS9SZWRp
cmVjdFN1Y2Nlc3MyLmh0bWwiOyAgLy8gU2FtZS1vcmlnaW4KKyAgICBHVVJMIHJlZGlyZWN0VVJM
ID0gR1VSTChyZWRpcmVjdCk7CisKKyAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVx
dWVzdC5pbml0aWFsaXplKCk7CisgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhw
ZWN0ZWRSZWRpcmVjdFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVk
UmVkaXJlY3RSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVz
cG9uc2Uuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJl
c3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDMwMSk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVz
cG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKCJMb2NhdGlvbiIsIHJlZGlyZWN0KTsKKyAgICB3ZWJr
aXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVkaXJlY3RSZXNw
b25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0ID0gV2Vi
VVJMUmVxdWVzdCgpOworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAg
ICBtX2V4cGVjdGVkTmV3UmVxdWVzdC5zZXRVUkwocmVkaXJlY3RVUkwpOworCisgICAgbV9leHBl
Y3RlZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uu
aW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9o
dG1sIik7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHJlZGlyZWN0VVJM
LCBtX2V4cGVjdGVkUmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBtX2V4cGVjdGVk
TG9hZGVyID0gY3JlYXRlQXNzb2NpYXRlZFVSTExvYWRlcigpOworICAgIEVYUEVDVF9UUlVFKG1f
ZXhwZWN0ZWRMb2FkZXIpOworICAgIG1fZXhwZWN0ZWRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNs
eShyZXF1ZXN0LCB0aGlzKTsKKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNUX1RSVUUo
bV93aWxsU2VuZFJlcXVlc3QpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZVJlc3BvbnNl
KTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVEYXRhKTsKKyAgICBFWFBFQ1RfVFJVRSht
X2RpZEZpbmlzaExvYWRpbmcpOworfQorCisvLyBUZXN0IGEgc3VjY2Vzc2Z1bCByZWRpcmVjdCBh
bmQgY3Jvc3Mtb3JpZ2luIGxvYWQgdXNpbmcgQ09SUy4KKy8vIEZJWE1FOiBFbmFibGUgdGhpcyB3
aGVuIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBzdXBwb3J0cyBjcm9zcy1vcmlnaW4gcmVkaXJl
Y3RzLgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBESVNBQkxFRF9SZWRpcmVjdENy
b3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzKQoreworICAgIEdVUkwgdXJsID0gR1VS
TCgiaHR0cDovL3d3dy50ZXN0LmNvbS9SZWRpcmVjdENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRy
b2xTdWNjZXNzLmh0bWwiKTsKKyAgICBjaGFyIHJlZGlyZWN0W10gPSAiaHR0cDovL3d3dy5vdGhl
ci5jb20vUmVkaXJlY3RDcm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sU3VjY2Vzcy5odG1sIjsg
IC8vIENyb3NzLW9yaWdpbgorICAgIEdVUkwgcmVkaXJlY3RVUkwgPSBHVVJMKHJlZGlyZWN0KTsK
KworICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKKyAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsK
KyAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworCisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9u
c2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLmlu
aXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRNSU1FVHlwZSgi
dGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0SFRUUFN0YXR1
c0NvZGUoMzAxKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRIVFRQSGVhZGVy
RmllbGQoIkxvY2F0aW9uIiwgcmVkaXJlY3QpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rl
ck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBh
dGgpOworCisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3QgPSBXZWJVUkxSZXF1ZXN0KCk7CisgICAg
bV9leHBlY3RlZE5ld1JlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWROZXdSZXF1
ZXN0LnNldFVSTChyZWRpcmVjdFVSTCk7CisKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJV
UkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAg
bV9leHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVj
dGVkUmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmln
aW4iLCAiKiIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTChyZWRpcmVj
dFVSTCwgbV9leHBlY3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgV2ViVVJM
TG9hZGVyT3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9s
aWN5ID0gV2ViVVJMTG9hZGVyT3B0aW9uczo6Q3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5VXNlQWNj
ZXNzQ29udHJvbDsKKyAgICBtX2V4cGVjdGVkTG9hZGVyID0gY3JlYXRlQXNzb2NpYXRlZFVSTExv
YWRlcihvcHRpb25zKTsKKyAgICBFWFBFQ1RfVFJVRShtX2V4cGVjdGVkTG9hZGVyKTsKKyAgICBt
X2V4cGVjdGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkocmVxdWVzdCwgdGhpcyk7CisgICAg
c2VydmVSZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVFKG1fd2lsbFNlbmRSZXF1ZXN0KTsKKyAg
ICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVSZXNwb25zZSk7CisgICAgRVhQRUNUX1RSVUUobV9k
aWRSZWNlaXZlRGF0YSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRGaW5pc2hMb2FkaW5nKTsKK30K
KwogLy8gVGVzdCB0aGF0IHVudHJ1c3RlZCBsb2FkcyBjYW4ndCB1c2UgYSBmb3JiaWRkZW4gbWV0
aG9kLgogVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBVbnRydXN0ZWRDaGVja01ldGhv
ZHMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120173</attachid>
            <date>2011-12-21 06:21:05 -0800</date>
            <delta_ts>2011-12-21 14:48:15 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>10072</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDM0MDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4
IEBACisyMDExLTEyLTIxICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgQXNzb2NpYXRlZFVSTExvYWRlciB0byBjaGVjayBoYW5k
bGluZyBvZiByZWRpcmVjdHMKKyAgICAgICAgYW5kIGNyb3NzLW9yaWdpbiBhY2Nlc3MgY29udHJv
bC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTUy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0
cy9Bc3NvY2lhdGVkVVJMTG9hZGVyVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFzc29jaWF0
ZWRVUkxMb2FkZXJUZXN0OjpBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCk6CisgICAgICAgIChXZWJL
aXQ6OkFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJL
aXQ6OkFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0OjpDaGVja0ZhaWxzKToKKyAgICAgICAgKFdlYktp
dDo6VEVTVF9GKToKKwogMjAxMS0xMi0yMCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmVydCBjb2RlIGZvciByOTY5MTIgYW5kIHIxMDE5MDUsIHNpbmNl
IHRoZXkgY2F1c2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQXNzb2NpYXRl
ZFVSTExvYWRlclRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQXNzb2NpYXRlZFVSTExvYWRlclRlc3QuY3BwCShyZXZpc2lvbiAxMDM0MDUpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgIG1fZGlk
UmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGZhbHNlKQogICAgICAgICAsICBtX2RpZEZpbmlzaExvYWRp
bmcoZmFsc2UpCiAgICAgICAgICwgIG1fZGlkRmFpbChmYWxzZSkKKyAgICAgICAgLCAgbV9ydW5u
aW5nTWVzc2FnZUxvb3AoZmFsc2UpCiAgICAgewogICAgICAgICAvLyBSZXVzZSBvbmUgb2YgdGhl
IHRlc3QgZmlsZXMgZnJvbSBXZWJGcmFtZVRlc3QuCiAgICAgICAgIHN0ZDo6c3RyaW5nIGZpbGVQ
YXRoID0gd2Via2l0X3N1cHBvcnQ6OkdldFdlYktpdFJvb3REaXIoKS51dGY4KCk7CkBAIC0xMjMs
NyArMTI0LDYgQEAgcHVibGljOgogICAgICAgICBFWFBFQ1RfRVEobV9leHBlY3RlZExvYWRlciwg
bG9hZGVyKTsKICAgICAgICAgRVhQRUNUX0VRKG1fZXhwZWN0ZWROZXdSZXF1ZXN0LnVybCgpLCBu
ZXdSZXF1ZXN0LnVybCgpKTsKICAgICAgICAgRVhQRUNUX0VRKG1fZXhwZWN0ZWRSZWRpcmVjdFJl
c3BvbnNlLnVybCgpLCByZWRpcmVjdFJlc3BvbnNlLnVybCgpKTsKLSAgICAgICAgRVhQRUNUX0VR
KG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLm1pbWVUeXBlKCksIHJlZGlyZWN0UmVzcG9uc2Uu
bWltZVR5cGUoKSk7CiAgICAgICAgIEVYUEVDVF9FUShtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25z
ZS5odHRwU3RhdHVzQ29kZSgpLCByZWRpcmVjdFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwog
ICAgIH0KIApAQCAtMTcxLDcgKzE3MSwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX2Rp
ZEZhaWwgPSB0cnVlOwogICAgICAgICBFWFBFQ1RfRVEobV9leHBlY3RlZExvYWRlciwgbG9hZGVy
KTsKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlF1aXRNZXNzYWdlTG9vcCgpOworICAgICAgICBp
ZiAobV9ydW5uaW5nTWVzc2FnZUxvb3ApIHsKKyAgICAgICAgICBtX3J1bm5pbmdNZXNzYWdlTG9v
cCA9IGZhbHNlOworICAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpRdWl0TWVzc2FnZUxvb3AoKTsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgQ2hlY2tNZXRob2RGYWlscyhjb25zdCBjaGFy
KiB1bnNhZmVNZXRob2QpCkBAIC0yMTAsOCArMjEzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgLy8g
RmFpbHVyZSBzaG91bGQgbm90IGJlIHJlcG9ydGVkIHN5bmNocm9ub3VzbHkuCiAgICAgICAgIEVY
UEVDVF9GQUxTRShtX2RpZEZhaWwpOwogICAgICAgICAvLyBBbGxvdyB0aGUgbG9hZGVyIHRvIHJl
dHVybiB0aGUgZXJyb3IuCisgICAgICAgIG1fcnVubmluZ01lc3NhZ2VMb29wID0gdHJ1ZTsKICAg
ICAgICAgd2Via2l0X3N1cHBvcnQ6OlJ1bk1lc3NhZ2VMb29wKCk7CiAgICAgICAgIEVYUEVDVF9U
UlVFKG1fZGlkRmFpbCk7CisgICAgICAgIEVYUEVDVF9GQUxTRShtX2RpZFJlY2VpdmVSZXNwb25z
ZSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC0yMzEsMTIgKzIzNiwxMyBAQCBwcm90ZWN0ZWQ6
CiAgICAgYm9vbCBtX2RpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YTsKICAgICBib29sIG1fZGlkRmlu
aXNoTG9hZGluZzsKICAgICBib29sIG1fZGlkRmFpbDsKKyAgICBib29sIG1fcnVubmluZ01lc3Nh
Z2VMb29wOwogfTsKIAotLy8gVGVzdCBhIHN1Y2Nlc3NmdWwgVVJMIGxvYWQuCi1URVNUX0YoQXNz
b2NpYXRlZFVSTExvYWRlclRlc3QsIFN1Y2Nlc3MpCisvLyBUZXN0IGEgc3VjY2Vzc2Z1bCBzYW1l
LW9yaWdpbiBVUkwgbG9hZC4KK1RFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgU2FtZU9y
aWdpblN1Y2Nlc3MpCiB7Ci0gICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3LnRlc3QuY29t
L3N1Y2Nlc3MuaHRtbCIpOworICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy50ZXN0LmNv
bS9TYW1lT3JpZ2luU3VjY2Vzcy5odG1sIik7CiAgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0Owog
ICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOwogICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CkBAIC0y
NTksNyArMjY1LDcgQEAgVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTdWNjZXNzKQog
VEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTYW1lT3JpZ2luUmVzdHJpY3Rpb24pCiB7
CiAgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmlnaW4gc2luY2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQg
ZnJvbSB3d3cudGVzdC5jb20uCi0gICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVy
LmNvbS9mYWlsdXJlLmh0bWwiKTsKKyAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3Ro
ZXIuY29tL1NhbWVPcmlnaW5SZXN0cmljdGlvbi5odG1sIik7CiAgICAgV2ViVVJMUmVxdWVzdCBy
ZXF1ZXN0OwogICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOwogICAgIHJlcXVlc3Quc2V0VVJMKHVy
bCk7CkBAIC0yNzAsNyArMjc2LDcgQEAgVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBT
YW1lT3JpZwogVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBDcm9zc09yaWdpblN1Y2Nl
c3MpCiB7CiAgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmlnaW4gc2luY2UgdGhlIGZyYW1lIHdhcyBs
b2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCi0gICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3
Lm90aGVyLmNvbS9zdWNjZXNzLmh0bWwiKTsKKyAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93
d3cub3RoZXIuY29tL0Nyb3NzT3JpZ2luU3VjY2Vzcy5odG1sIik7CiAgICAgV2ViVVJMUmVxdWVz
dCByZXF1ZXN0OwogICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOwogICAgIHJlcXVlc3Quc2V0VVJM
KHVybCk7CkBAIC0yOTEsNiArMjk3LDE0MiBAQCBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRl
c3QsIENyb3NzT3JpCiAgICAgRVhQRUNUX1RSVUUobV9kaWRGaW5pc2hMb2FkaW5nKTsKIH0KIAor
Ly8gVGVzdCBhIHN1Y2Nlc3NmdWwgY3Jvc3Mtb3JpZ2luIGxvYWQgdXNpbmcgQ09SUy4KK1RFU1Rf
RihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgQ3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1
Y2Nlc3MpCit7CisgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmlnaW4gc2luY2UgdGhlIGZyYW1lIHdh
cyBsb2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCisgICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8v
d3d3Lm90aGVyLmNvbS9Dcm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sU3VjY2Vzcy5odG1sIik7
CisgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOwor
ICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJV
UkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAg
bV9leHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVj
dGVkUmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmln
aW4iLCAiKiIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTCh1cmwsIG1f
ZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIFdlYlVSTExvYWRlck9w
dGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFdl
YlVSTExvYWRlck9wdGlvbnM6OkNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeVVzZUFjY2Vzc0NvbnRy
b2w7CisgICAgbV9leHBlY3RlZExvYWRlciA9IGNyZWF0ZUFzc29jaWF0ZWRVUkxMb2FkZXIob3B0
aW9ucyk7CisgICAgRVhQRUNUX1RSVUUobV9leHBlY3RlZExvYWRlcik7CisgICAgbV9leHBlY3Rl
ZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVlc3QsIHRoaXMpOworICAgIHNlcnZlUmVx
dWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVSZXNwb25zZSk7CisgICAgRVhQ
RUNUX1RSVUUobV9kaWRSZWNlaXZlRGF0YSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRGaW5pc2hM
b2FkaW5nKTsKK30KKworLy8gVGVzdCBhbiB1bnN1Y2Nlc3NmdWwgY3Jvc3Mtb3JpZ2luIGxvYWQg
dXNpbmcgQ09SUy4KK1RFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgQ3Jvc3NPcmlnaW5X
aXRoQWNjZXNzQ29udHJvbEZhaWx1cmUpCit7CisgICAgLy8gVGhpcyBpcyBjcm9zcy1vcmlnaW4g
c2luY2UgdGhlIGZyYW1lIHdhcyBsb2FkZWQgZnJvbSB3d3cudGVzdC5jb20uCisgICAgR1VSTCB1
cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9Dcm9zc09yaWdpbldpdGhBY2Nlc3NDb250
cm9sRmFpbHVyZS5odG1sIik7CisgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAgIHJlcXVl
c3QuaW5pdGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBtX2V4cGVj
dGVkUmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5p
bml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0
bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKCJhY2Nlc3Mt
Y29udHJvbC1hbGxvdy1vcmlnaW4iLCAiKiIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rl
ck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKwor
ICAgIFdlYlVSTExvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAgICAvLyBTZW5kIGNyZWRlbnRpYWxz
LiBUaGlzIHdpbGwgY2F1c2UgdGhlIENPUlMgY2hlY2tzIHRvIGZhaWwsIGJlY2F1c2UgY3JlZGVu
dGlhbHMgY2FuJ3QgYmUKKyAgICAvLyBzZW50IHRvIGEgc2VydmVyIHdoaWNoIHJldHVybnMgdGhl
IGhlYWRlciAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiB3aXRoICIqIiBhcyBpdHMgdmFs
dWUuCisgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID0gdHJ1ZTsKKyAgICBvcHRpb25zLmNy
b3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFdlYlVSTExvYWRlck9wdGlvbnM6OkNyb3NzT3JpZ2lu
UmVxdWVzdFBvbGljeVVzZUFjY2Vzc0NvbnRyb2w7CisgICAgbV9leHBlY3RlZExvYWRlciA9IGNy
ZWF0ZUFzc29jaWF0ZWRVUkxMb2FkZXIob3B0aW9ucyk7CisgICAgRVhQRUNUX1RSVUUobV9leHBl
Y3RlZExvYWRlcik7CisgICAgbV9leHBlY3RlZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJl
cXVlc3QsIHRoaXMpOworCisgICAgLy8gRmFpbHVyZSBzaG91bGQgbm90IGJlIHJlcG9ydGVkIHN5
bmNocm9ub3VzbHkuCisgICAgRVhQRUNUX0ZBTFNFKG1fZGlkRmFpbCk7CisgICAgLy8gVGhlIGxv
YWRlciBuZWVkcyB0byByZWNlaXZlIHRoZSByZXNwb25zZSwgYmVmb3JlIGRvaW5nIHRoZSBDT1JT
IGNoZWNrLgorICAgIHNlcnZlUmVxdWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZEZhaWwp
OworICAgIEVYUEVDVF9GQUxTRShtX2RpZFJlY2VpdmVSZXNwb25zZSk7Cit9CisKKy8vIFRlc3Qg
YSBzYW1lLW9yaWdpbiBVUkwgcmVkaXJlY3QgYW5kIGxvYWQuCitURVNUX0YoQXNzb2NpYXRlZFVS
TExvYWRlclRlc3QsIFJlZGlyZWN0U3VjY2VzcykKK3sKKyAgICBHVVJMIHVybCA9IEdVUkwoImh0
dHA6Ly93d3cudGVzdC5jb20vUmVkaXJlY3RTdWNjZXNzLmh0bWwiKTsKKyAgICBjaGFyIHJlZGly
ZWN0W10gPSAiaHR0cDovL3d3dy50ZXN0LmNvbS9SZWRpcmVjdFN1Y2Nlc3MyLmh0bWwiOyAgLy8g
U2FtZS1vcmlnaW4KKyAgICBHVVJMIHJlZGlyZWN0VVJMID0gR1VSTChyZWRpcmVjdCk7CisKKyAg
ICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CisgICAg
cmVxdWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlID0g
V2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5pbml0aWFs
aXplKCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQv
aHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2Rl
KDMwMSk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxk
KCJMb2NhdGlvbiIsIHJlZGlyZWN0KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2Nr
ZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsK
KworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdCgpOworICAgIG1fZXhw
ZWN0ZWROZXdSZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdC5z
ZXRVUkwocmVkaXJlY3RVUkwpOworCisgICAgbV9leHBlY3RlZFJlc3BvbnNlID0gV2ViVVJMUmVz
cG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhw
ZWN0ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgd2Via2l0X3N1cHBv
cnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHJlZGlyZWN0VVJMLCBtX2V4cGVjdGVkUmVzcG9uc2UsIG1f
ZnJhbWVGaWxlUGF0aCk7CisKKyAgICBtX2V4cGVjdGVkTG9hZGVyID0gY3JlYXRlQXNzb2NpYXRl
ZFVSTExvYWRlcigpOworICAgIEVYUEVDVF9UUlVFKG1fZXhwZWN0ZWRMb2FkZXIpOworICAgIG1f
ZXhwZWN0ZWRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShyZXF1ZXN0LCB0aGlzKTsKKyAgICBz
ZXJ2ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNUX1RSVUUobV93aWxsU2VuZFJlcXVlc3QpOworICAg
IEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZVJlc3BvbnNlKTsKKyAgICBFWFBFQ1RfVFJVRShtX2Rp
ZFJlY2VpdmVEYXRhKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZEZpbmlzaExvYWRpbmcpOworfQor
CisvLyBUZXN0IGEgc3VjY2Vzc2Z1bCByZWRpcmVjdCBhbmQgY3Jvc3Mtb3JpZ2luIGxvYWQgdXNp
bmcgQ09SUy4KKy8vIEZJWE1FOiBFbmFibGUgdGhpcyB3aGVuIERvY3VtZW50VGhyZWFkYWJsZUxv
YWRlciBzdXBwb3J0cyBjcm9zcy1vcmlnaW4gcmVkaXJlY3RzLgorVEVTVF9GKEFzc29jaWF0ZWRV
UkxMb2FkZXJUZXN0LCBESVNBQkxFRF9SZWRpcmVjdENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRy
b2xTdWNjZXNzKQoreworICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS9S
ZWRpcmVjdENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzLmh0bWwiKTsKKyAgICBj
aGFyIHJlZGlyZWN0W10gPSAiaHR0cDovL3d3dy5vdGhlci5jb20vUmVkaXJlY3RDcm9zc09yaWdp
bldpdGhBY2Nlc3NDb250cm9sU3VjY2Vzcy5odG1sIjsgIC8vIENyb3NzLW9yaWdpbgorICAgIEdV
UkwgcmVkaXJlY3RVUkwgPSBHVVJMKHJlZGlyZWN0KTsKKworICAgIFdlYlVSTFJlcXVlc3QgcmVx
dWVzdDsKKyAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmwp
OworCisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOwor
ICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVj
dGVkUmVkaXJlY3RSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBl
Y3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMzAxKTsKKyAgICBtX2V4cGVj
dGVkUmVkaXJlY3RSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoIkxvY2F0aW9uIiwgcmVkaXJl
Y3QpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0
ZWRSZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgbV9leHBlY3RlZE5l
d1JlcXVlc3QgPSBXZWJVUkxSZXF1ZXN0KCk7CisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3QuaW5p
dGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0LnNldFVSTChyZWRpcmVjdFVSTCk7
CisKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhw
ZWN0ZWRSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLnNldE1J
TUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuYWRkSFRUUEhlYWRl
ckZpZWxkKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4iLCAiKiIpOworICAgIHdlYmtpdF9z
dXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTChyZWRpcmVjdFVSTCwgbV9leHBlY3RlZFJlc3BvbnNl
LCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgV2ViVVJMTG9hZGVyT3B0aW9ucyBvcHRpb25zOwor
ICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gV2ViVVJMTG9hZGVyT3B0aW9u
czo6Q3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5VXNlQWNjZXNzQ29udHJvbDsKKyAgICBtX2V4cGVj
dGVkTG9hZGVyID0gY3JlYXRlQXNzb2NpYXRlZFVSTExvYWRlcihvcHRpb25zKTsKKyAgICBFWFBF
Q1RfVFJVRShtX2V4cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4cGVjdGVkTG9hZGVyLT5sb2FkQXN5
bmNocm9ub3VzbHkocmVxdWVzdCwgdGhpcyk7CisgICAgc2VydmVSZXF1ZXN0cygpOworICAgIEVY
UEVDVF9UUlVFKG1fd2lsbFNlbmRSZXF1ZXN0KTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2Vp
dmVSZXNwb25zZSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlRGF0YSk7CisgICAgRVhQ
RUNUX1RSVUUobV9kaWRGaW5pc2hMb2FkaW5nKTsKK30KKwogLy8gVGVzdCB0aGF0IHVudHJ1c3Rl
ZCBsb2FkcyBjYW4ndCB1c2UgYSBmb3JiaWRkZW4gbWV0aG9kLgogVEVTVF9GKEFzc29jaWF0ZWRV
UkxMb2FkZXJUZXN0LCBVbnRydXN0ZWRDaGVja01ldGhvZHMpCiB7Cg==
</data>
<flag name="review"
          id="120359"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120221</attachid>
            <date>2011-12-21 14:48:15 -0800</date>
            <delta_ts>2011-12-21 15:08:44 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>9873</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDM0NDMpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDExLTEyLTIxICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgQXNzb2NpYXRlZFVSTExvYWRlciB0byBjaGVjayBoYW5k
bGluZyBvZiByZWRpcmVjdHMKKyAgICAgICAgYW5kIGNyb3NzLW9yaWdpbiBhY2Nlc3MgY29udHJv
bC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTUy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0
cy9Bc3NvY2lhdGVkVVJMTG9hZGVyVGVzdC5jcHA6CisKIDIwMTEtMTItMjAgIEFuZHJleSBLb3N5
YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRXh0
ZW5zaW9uIEFQSV0gcmVmYWN0b3IgZXh0ZW5zaW9uIEFQSSBidWlsZCBjb2RlLCBleHBvc2UgZXhw
ZXJpbWVudGFsIEFQSXMgY29uZGl0aW9uYWxseSBpbiBjaHJvbWl1bQpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVyVGVzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3NvY2lhdGVkVVJMTG9hZGVyVGVz
dC5jcHAJKHJldmlzaW9uIDEwMzQwNSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
QXNzb2NpYXRlZFVSTExvYWRlclRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw2ICs3Miw3
IEBAIHB1YmxpYzoKICAgICAgICAgLCAgbV9kaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoZmFsc2Up
CiAgICAgICAgICwgIG1fZGlkRmluaXNoTG9hZGluZyhmYWxzZSkKICAgICAgICAgLCAgbV9kaWRG
YWlsKGZhbHNlKQorICAgICAgICAsICBtX3J1bm5pbmdNZXNzYWdlTG9vcChmYWxzZSkKICAgICB7
CiAgICAgICAgIC8vIFJldXNlIG9uZSBvZiB0aGUgdGVzdCBmaWxlcyBmcm9tIFdlYkZyYW1lVGVz
dC4KICAgICAgICAgc3RkOjpzdHJpbmcgZmlsZVBhdGggPSB3ZWJraXRfc3VwcG9ydDo6R2V0V2Vi
S2l0Um9vdERpcigpLnV0ZjgoKTsKQEAgLTEyMyw3ICsxMjQsNiBAQCBwdWJsaWM6CiAgICAgICAg
IEVYUEVDVF9FUShtX2V4cGVjdGVkTG9hZGVyLCBsb2FkZXIpOwogICAgICAgICBFWFBFQ1RfRVEo
bV9leHBlY3RlZE5ld1JlcXVlc3QudXJsKCksIG5ld1JlcXVlc3QudXJsKCkpOwogICAgICAgICBF
WFBFQ1RfRVEobV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UudXJsKCksIHJlZGlyZWN0UmVzcG9u
c2UudXJsKCkpOwotICAgICAgICBFWFBFQ1RfRVEobV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uu
bWltZVR5cGUoKSwgcmVkaXJlY3RSZXNwb25zZS5taW1lVHlwZSgpKTsKICAgICAgICAgRVhQRUNU
X0VRKG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlZGlyZWN0
UmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAgICAgfQogCkBAIC0xNzEsNyArMTcxLDEwIEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fZGlkRmFpbCA9IHRydWU7CiAgICAgICAgIEVYUEVD
VF9FUShtX2V4cGVjdGVkTG9hZGVyLCBsb2FkZXIpOwotICAgICAgICB3ZWJraXRfc3VwcG9ydDo6
UXVpdE1lc3NhZ2VMb29wKCk7CisgICAgICAgIGlmIChtX3J1bm5pbmdNZXNzYWdlTG9vcCkgewor
ICAgICAgICAgIG1fcnVubmluZ01lc3NhZ2VMb29wID0gZmFsc2U7CisgICAgICAgICAgd2Via2l0
X3N1cHBvcnQ6OlF1aXRNZXNzYWdlTG9vcCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgdm9p
ZCBDaGVja01ldGhvZEZhaWxzKGNvbnN0IGNoYXIqIHVuc2FmZU1ldGhvZCkKQEAgLTIxMCw4ICsy
MTMsMTAgQEAgcHVibGljOgogICAgICAgICAvLyBGYWlsdXJlIHNob3VsZCBub3QgYmUgcmVwb3J0
ZWQgc3luY2hyb25vdXNseS4KICAgICAgICAgRVhQRUNUX0ZBTFNFKG1fZGlkRmFpbCk7CiAgICAg
ICAgIC8vIEFsbG93IHRoZSBsb2FkZXIgdG8gcmV0dXJuIHRoZSBlcnJvci4KKyAgICAgICAgbV9y
dW5uaW5nTWVzc2FnZUxvb3AgPSB0cnVlOwogICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UnVuTWVz
c2FnZUxvb3AoKTsKICAgICAgICAgRVhQRUNUX1RSVUUobV9kaWRGYWlsKTsKKyAgICAgICAgRVhQ
RUNUX0ZBTFNFKG1fZGlkUmVjZWl2ZVJlc3BvbnNlKTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAg
LTIzMSwxMiArMjM2LDEzIEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fZGlkUmVjZWl2ZUNhY2hl
ZE1ldGFkYXRhOwogICAgIGJvb2wgbV9kaWRGaW5pc2hMb2FkaW5nOwogICAgIGJvb2wgbV9kaWRG
YWlsOworICAgIGJvb2wgbV9ydW5uaW5nTWVzc2FnZUxvb3A7CiB9OwogCi0vLyBUZXN0IGEgc3Vj
Y2Vzc2Z1bCBVUkwgbG9hZC4KLVRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgU3VjY2Vz
cykKKy8vIFRlc3QgYSBzdWNjZXNzZnVsIHNhbWUtb3JpZ2luIFVSTCBsb2FkLgorVEVTVF9GKEFz
c29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTYW1lT3JpZ2luU3VjY2VzcykKIHsKLSAgICBHVVJMIHVy
bCA9IEdVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vc3VjY2Vzcy5odG1sIik7CisgICAgR1VSTCB1
cmwgPSBHVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tL1NhbWVPcmlnaW5TdWNjZXNzLmh0bWwiKTsK
ICAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CiAg
ICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKQEAgLTI1OSw3ICsyNjUsNyBAQCBURVNUX0YoQXNzb2Np
YXRlZFVSTExvYWRlclRlc3QsIFN1Y2Nlc3MpCiBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRl
c3QsIFNhbWVPcmlnaW5SZXN0cmljdGlvbikKIHsKICAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdp
biBzaW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4KLSAgICBHVVJM
IHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL2ZhaWx1cmUuaHRtbCIpOworICAgIEdV
UkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vU2FtZU9yaWdpblJlc3RyaWN0aW9u
Lmh0bWwiKTsKICAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgcmVxdWVzdC5pbml0aWFs
aXplKCk7CiAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKQEAgLTI3MCw3ICsyNzYsNyBAQCBURVNU
X0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFNhbWVPcmlnCiBURVNUX0YoQXNzb2NpYXRlZFVS
TExvYWRlclRlc3QsIENyb3NzT3JpZ2luU3VjY2VzcykKIHsKICAgICAvLyBUaGlzIGlzIGNyb3Nz
LW9yaWdpbiBzaW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4KLSAg
ICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL3N1Y2Nlc3MuaHRtbCIpOwor
ICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vQ3Jvc3NPcmlnaW5TdWNj
ZXNzLmh0bWwiKTsKICAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgcmVxdWVzdC5pbml0
aWFsaXplKCk7CiAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKQEAgLTI5MSw2ICsyOTcsMTQyIEBA
IFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgQ3Jvc3NPcmkKICAgICBFWFBFQ1RfVFJV
RShtX2RpZEZpbmlzaExvYWRpbmcpOwogfQogCisvLyBUZXN0IGEgc3VjY2Vzc2Z1bCBjcm9zcy1v
cmlnaW4gbG9hZCB1c2luZyBDT1JTLgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBD
cm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sU3VjY2VzcykKK3sKKyAgICAvLyBUaGlzIGlzIGNy
b3NzLW9yaWdpbiBzaW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4K
KyAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL0Nyb3NzT3JpZ2luV2l0
aEFjY2Vzc0NvbnRyb2xTdWNjZXNzLmh0bWwiKTsKKyAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7
CisgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CisgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKwor
ICAgIG1fZXhwZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3Rl
ZFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5
cGUoInRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5hZGRIVFRQSGVhZGVyRmll
bGQoImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIsICIqIik7CisgICAgd2Via2l0X3N1cHBv
cnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmls
ZVBhdGgpOworCisgICAgV2ViVVJMTG9hZGVyT3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMu
Y3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gV2ViVVJMTG9hZGVyT3B0aW9uczo6Q3Jvc3NPcmln
aW5SZXF1ZXN0UG9saWN5VXNlQWNjZXNzQ29udHJvbDsKKyAgICBtX2V4cGVjdGVkTG9hZGVyID0g
Y3JlYXRlQXNzb2NpYXRlZFVSTExvYWRlcihvcHRpb25zKTsKKyAgICBFWFBFQ1RfVFJVRShtX2V4
cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4cGVjdGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHko
cmVxdWVzdCwgdGhpcyk7CisgICAgc2VydmVSZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVFKG1f
ZGlkUmVjZWl2ZVJlc3BvbnNlKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVEYXRhKTsK
KyAgICBFWFBFQ1RfVFJVRShtX2RpZEZpbmlzaExvYWRpbmcpOworfQorCisvLyBUZXN0IGFuIHVu
c3VjY2Vzc2Z1bCBjcm9zcy1vcmlnaW4gbG9hZCB1c2luZyBDT1JTLgorVEVTVF9GKEFzc29jaWF0
ZWRVUkxMb2FkZXJUZXN0LCBDcm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sRmFpbHVyZSkKK3sK
KyAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdpbiBzaW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRlZCBm
cm9tIHd3dy50ZXN0LmNvbS4KKyAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIu
Y29tL0Nyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xGYWlsdXJlLmh0bWwiKTsKKyAgICBXZWJV
UkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CisgICAgcmVxdWVz
dC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhwZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNl
KCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVk
UmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZXNwb25z
ZS5hZGRIVFRQSGVhZGVyRmllbGQoImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIsICIqIik7
CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJl
c3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgV2ViVVJMTG9hZGVyT3B0aW9ucyBvcHRp
b25zOworICAgIC8vIFNlbmQgY3JlZGVudGlhbHMuIFRoaXMgd2lsbCBjYXVzZSB0aGUgQ09SUyBj
aGVja3MgdG8gZmFpbCwgYmVjYXVzZSBjcmVkZW50aWFscyBjYW4ndCBiZQorICAgIC8vIHNlbnQg
dG8gYSBzZXJ2ZXIgd2hpY2ggcmV0dXJucyB0aGUgaGVhZGVyICJhY2Nlc3MtY29udHJvbC1hbGxv
dy1vcmlnaW4iIHdpdGggIioiIGFzIGl0cyB2YWx1ZS4KKyAgICBvcHRpb25zLmFsbG93Q3JlZGVu
dGlhbHMgPSB0cnVlOworICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gV2Vi
VVJMTG9hZGVyT3B0aW9uczo6Q3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5VXNlQWNjZXNzQ29udHJv
bDsKKyAgICBtX2V4cGVjdGVkTG9hZGVyID0gY3JlYXRlQXNzb2NpYXRlZFVSTExvYWRlcihvcHRp
b25zKTsKKyAgICBFWFBFQ1RfVFJVRShtX2V4cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4cGVjdGVk
TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkocmVxdWVzdCwgdGhpcyk7CisKKyAgICAvLyBGYWls
dXJlIHNob3VsZCBub3QgYmUgcmVwb3J0ZWQgc3luY2hyb25vdXNseS4KKyAgICBFWFBFQ1RfRkFM
U0UobV9kaWRGYWlsKTsKKyAgICAvLyBUaGUgbG9hZGVyIG5lZWRzIHRvIHJlY2VpdmUgdGhlIHJl
c3BvbnNlLCBiZWZvcmUgZG9pbmcgdGhlIENPUlMgY2hlY2suCisgICAgc2VydmVSZXF1ZXN0cygp
OworICAgIEVYUEVDVF9UUlVFKG1fZGlkRmFpbCk7CisgICAgRVhQRUNUX0ZBTFNFKG1fZGlkUmVj
ZWl2ZVJlc3BvbnNlKTsKK30KKworLy8gVGVzdCBhIHNhbWUtb3JpZ2luIFVSTCByZWRpcmVjdCBh
bmQgbG9hZC4KK1RFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgUmVkaXJlY3RTdWNjZXNz
KQoreworICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS9SZWRpcmVjdFN1
Y2Nlc3MuaHRtbCIpOworICAgIGNoYXIgcmVkaXJlY3RbXSA9ICJodHRwOi8vd3d3LnRlc3QuY29t
L1JlZGlyZWN0U3VjY2VzczIuaHRtbCI7ICAvLyBTYW1lLW9yaWdpbgorICAgIEdVUkwgcmVkaXJl
Y3RVUkwgPSBHVVJMKHJlZGlyZWN0KTsKKworICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKKyAg
ICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworCisgICAg
bV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhw
ZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJl
Y3RSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlZGly
ZWN0UmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMzAxKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJl
Y3RSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoIkxvY2F0aW9uIiwgcmVkaXJlY3QpOworICAg
IHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZWRpcmVj
dFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3Qg
PSBXZWJVUkxSZXF1ZXN0KCk7CisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3QuaW5pdGlhbGl6ZSgp
OworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0LnNldFVSTChyZWRpcmVjdFVSTCk7CisKKyAgICBt
X2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNw
b25zZS5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0
ZXh0L2h0bWwiKTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwocmVkaXJl
Y3RVUkwsIG1fZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIG1fZXhw
ZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lhdGVkVVJMTG9hZGVyKCk7CisgICAgRVhQRUNUX1RS
VUUobV9leHBlY3RlZExvYWRlcik7CisgICAgbV9leHBlY3RlZExvYWRlci0+bG9hZEFzeW5jaHJv
bm91c2x5KHJlcXVlc3QsIHRoaXMpOworICAgIHNlcnZlUmVxdWVzdHMoKTsKKyAgICBFWFBFQ1Rf
VFJVRShtX3dpbGxTZW5kUmVxdWVzdCk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlUmVz
cG9uc2UpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZURhdGEpOworICAgIEVYUEVDVF9U
UlVFKG1fZGlkRmluaXNoTG9hZGluZyk7Cit9CisKKy8vIFRlc3QgYSBzdWNjZXNzZnVsIHJlZGly
ZWN0IGFuZCBjcm9zcy1vcmlnaW4gbG9hZCB1c2luZyBDT1JTLgorLy8gRklYTUU6IEVuYWJsZSB0
aGlzIHdoZW4gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyIHN1cHBvcnRzIGNyb3NzLW9yaWdpbiBy
ZWRpcmVjdHMuCitURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIERJU0FCTEVEX1JlZGly
ZWN0Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1Y2Nlc3MpCit7CisgICAgR1VSTCB1cmwg
PSBHVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tL1JlZGlyZWN0Q3Jvc3NPcmlnaW5XaXRoQWNjZXNz
Q29udHJvbFN1Y2Nlc3MuaHRtbCIpOworICAgIGNoYXIgcmVkaXJlY3RbXSA9ICJodHRwOi8vd3d3
Lm90aGVyLmNvbS9SZWRpcmVjdENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzLmh0
bWwiOyAgLy8gQ3Jvc3Mtb3JpZ2luCisgICAgR1VSTCByZWRpcmVjdFVSTCA9IEdVUkwocmVkaXJl
Y3QpOworCisgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAgIHJlcXVlc3QuaW5pdGlhbGl6
ZSgpOworICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RS
ZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9u
c2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldE1JTUVU
eXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRIVFRQ
U3RhdHVzQ29kZSgzMDEpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldEhUVFBI
ZWFkZXJGaWVsZCgiTG9jYXRpb24iLCByZWRpcmVjdCk7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJl
Z2lzdGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UsIG1fZnJhbWVG
aWxlUGF0aCk7CisKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdCA9IFdlYlVSTFJlcXVlc3QoKTsK
KyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdC5pbml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZE5l
d1JlcXVlc3Quc2V0VVJMKHJlZGlyZWN0VVJMKTsKKworICAgIG1fZXhwZWN0ZWRSZXNwb25zZSA9
IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmluaXRpYWxpemUoKTsK
KyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIG1f
ZXhwZWN0ZWRSZXNwb25zZS5hZGRIVFRQSGVhZGVyRmllbGQoImFjY2Vzcy1jb250cm9sLWFsbG93
LW9yaWdpbiIsICIqIik7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHJl
ZGlyZWN0VVJMLCBtX2V4cGVjdGVkUmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBX
ZWJVUkxMb2FkZXJPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVl
c3RQb2xpY3kgPSBXZWJVUkxMb2FkZXJPcHRpb25zOjpDcm9zc09yaWdpblJlcXVlc3RQb2xpY3lV
c2VBY2Nlc3NDb250cm9sOworICAgIG1fZXhwZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lhdGVk
VVJMTG9hZGVyKG9wdGlvbnMpOworICAgIEVYUEVDVF9UUlVFKG1fZXhwZWN0ZWRMb2FkZXIpOwor
ICAgIG1fZXhwZWN0ZWRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShyZXF1ZXN0LCB0aGlzKTsK
KyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNUX1RSVUUobV93aWxsU2VuZFJlcXVlc3Qp
OworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZVJlc3BvbnNlKTsKKyAgICBFWFBFQ1RfVFJV
RShtX2RpZFJlY2VpdmVEYXRhKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZEZpbmlzaExvYWRpbmcp
OworfQorCiAvLyBUZXN0IHRoYXQgdW50cnVzdGVkIGxvYWRzIGNhbid0IHVzZSBhIGZvcmJpZGRl
biBtZXRob2QuCiBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFVudHJ1c3RlZENoZWNr
TWV0aG9kcykKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120227</attachid>
            <date>2011-12-21 15:08:44 -0800</date>
            <delta_ts>2011-12-21 16:04:32 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>9869</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDM0NjIpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDExLTEyLTIxICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgQXNzb2NpYXRlZFVSTExvYWRlciB0byBjaGVjayByZWRp
cmVjdCBoYW5kbGluZyBhbmQKKyAgICAgICAgY3Jvc3Mtb3JpZ2luIGFjY2VzcyBjb250cm9sLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5NTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0Fz
c29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNwcDoKKwogMjAxMS0xMi0yMCAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNp
b24gQVBJXSByZWZhY3RvciBleHRlbnNpb24gQVBJIGJ1aWxkIGNvZGUsIGV4cG9zZSBleHBlcmlt
ZW50YWwgQVBJcyBjb25kaXRpb25hbGx5IGluIGNocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNw
cAkocmV2aXNpb24gMTAzNDA1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3Nv
Y2lhdGVkVVJMTG9hZGVyVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcgQEAg
cHVibGljOgogICAgICAgICAsICBtX2RpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShmYWxzZSkKICAg
ICAgICAgLCAgbV9kaWRGaW5pc2hMb2FkaW5nKGZhbHNlKQogICAgICAgICAsICBtX2RpZEZhaWwo
ZmFsc2UpCisgICAgICAgICwgIG1fcnVubmluZ01lc3NhZ2VMb29wKGZhbHNlKQogICAgIHsKICAg
ICAgICAgLy8gUmV1c2Ugb25lIG9mIHRoZSB0ZXN0IGZpbGVzIGZyb20gV2ViRnJhbWVUZXN0Lgog
ICAgICAgICBzdGQ6OnN0cmluZyBmaWxlUGF0aCA9IHdlYmtpdF9zdXBwb3J0OjpHZXRXZWJLaXRS
b290RGlyKCkudXRmOCgpOwpAQCAtMTIzLDcgKzEyNCw2IEBAIHB1YmxpYzoKICAgICAgICAgRVhQ
RUNUX0VRKG1fZXhwZWN0ZWRMb2FkZXIsIGxvYWRlcik7CiAgICAgICAgIEVYUEVDVF9FUShtX2V4
cGVjdGVkTmV3UmVxdWVzdC51cmwoKSwgbmV3UmVxdWVzdC51cmwoKSk7CiAgICAgICAgIEVYUEVD
VF9FUShtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS51cmwoKSwgcmVkaXJlY3RSZXNwb25zZS51
cmwoKSk7Ci0gICAgICAgIEVYUEVDVF9FUShtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5taW1l
VHlwZSgpLCByZWRpcmVjdFJlc3BvbnNlLm1pbWVUeXBlKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
bV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVkaXJlY3RSZXNw
b25zZS5odHRwU3RhdHVzQ29kZSgpKTsKICAgICB9CiAKQEAgLTE3MSw3ICsxNzEsMTAgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgbV9kaWRGYWlsID0gdHJ1ZTsKICAgICAgICAgRVhQRUNUX0VR
KG1fZXhwZWN0ZWRMb2FkZXIsIGxvYWRlcik7Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpRdWl0
TWVzc2FnZUxvb3AoKTsKKyAgICAgICAgaWYgKG1fcnVubmluZ01lc3NhZ2VMb29wKSB7CisgICAg
ICAgICAgbV9ydW5uaW5nTWVzc2FnZUxvb3AgPSBmYWxzZTsKKyAgICAgICAgICB3ZWJraXRfc3Vw
cG9ydDo6UXVpdE1lc3NhZ2VMb29wKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIENo
ZWNrTWV0aG9kRmFpbHMoY29uc3QgY2hhciogdW5zYWZlTWV0aG9kKQpAQCAtMjEwLDggKzIxMywx
MCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIEZhaWx1cmUgc2hvdWxkIG5vdCBiZSByZXBvcnRlZCBz
eW5jaHJvbm91c2x5LgogICAgICAgICBFWFBFQ1RfRkFMU0UobV9kaWRGYWlsKTsKICAgICAgICAg
Ly8gQWxsb3cgdGhlIGxvYWRlciB0byByZXR1cm4gdGhlIGVycm9yLgorICAgICAgICBtX3J1bm5p
bmdNZXNzYWdlTG9vcCA9IHRydWU7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpSdW5NZXNzYWdl
TG9vcCgpOwogICAgICAgICBFWFBFQ1RfVFJVRShtX2RpZEZhaWwpOworICAgICAgICBFWFBFQ1Rf
RkFMU0UobV9kaWRSZWNlaXZlUmVzcG9uc2UpOwogICAgIH0KIAogcHJvdGVjdGVkOgpAQCAtMjMx
LDEyICsyMzYsMTMgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9kaWRSZWNlaXZlQ2FjaGVkTWV0
YWRhdGE7CiAgICAgYm9vbCBtX2RpZEZpbmlzaExvYWRpbmc7CiAgICAgYm9vbCBtX2RpZEZhaWw7
CisgICAgYm9vbCBtX3J1bm5pbmdNZXNzYWdlTG9vcDsKIH07CiAKLS8vIFRlc3QgYSBzdWNjZXNz
ZnVsIFVSTCBsb2FkLgotVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTdWNjZXNzKQor
Ly8gVGVzdCBhIHN1Y2Nlc3NmdWwgc2FtZS1vcmlnaW4gVVJMIGxvYWQuCitURVNUX0YoQXNzb2Np
YXRlZFVSTExvYWRlclRlc3QsIFNhbWVPcmlnaW5TdWNjZXNzKQogewotICAgIEdVUkwgdXJsID0g
R1VSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS9zdWNjZXNzLmh0bWwiKTsKKyAgICBHVVJMIHVybCA9
IEdVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vU2FtZU9yaWdpblN1Y2Nlc3MuaHRtbCIpOwogICAg
IFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKICAgICBy
ZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMjU5LDcgKzI2NSw3IEBAIFRFU1RfRihBc3NvY2lhdGVk
VVJMTG9hZGVyVGVzdCwgU3VjY2VzcykKIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwg
U2FtZU9yaWdpblJlc3RyaWN0aW9uKQogewogICAgIC8vIFRoaXMgaXMgY3Jvc3Mtb3JpZ2luIHNp
bmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgotICAgIEdVUkwgdXJs
ID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vZmFpbHVyZS5odG1sIik7CisgICAgR1VSTCB1
cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9TYW1lT3JpZ2luUmVzdHJpY3Rpb24uaHRt
bCIpOwogICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxpemUo
KTsKICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMjcwLDcgKzI3Niw3IEBAIFRFU1RfRihB
c3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgU2FtZU9yaWcKIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9h
ZGVyVGVzdCwgQ3Jvc3NPcmlnaW5TdWNjZXNzKQogewogICAgIC8vIFRoaXMgaXMgY3Jvc3Mtb3Jp
Z2luIHNpbmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgotICAgIEdV
UkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vc3VjY2Vzcy5odG1sIik7CisgICAg
R1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9Dcm9zc09yaWdpblN1Y2Nlc3Mu
aHRtbCIpOwogICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxp
emUoKTsKICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMjkxLDYgKzI5NywxNDIgQEAgVEVT
VF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBDcm9zc09yaQogICAgIEVYUEVDVF9UUlVFKG1f
ZGlkRmluaXNoTG9hZGluZyk7CiB9CiAKKy8vIFRlc3QgYSBzdWNjZXNzZnVsIGNyb3NzLW9yaWdp
biBsb2FkIHVzaW5nIENPUlMuCitURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIENyb3Nz
T3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzKQoreworICAgIC8vIFRoaXMgaXMgY3Jvc3Mt
b3JpZ2luIHNpbmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgorICAg
IEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vQ3Jvc3NPcmlnaW5XaXRoQWNj
ZXNzQ29udHJvbFN1Y2Nlc3MuaHRtbCIpOworICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKKyAg
ICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworCisgICAg
bV9leHBlY3RlZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVz
cG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgi
dGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZCgi
YWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgIioiKTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6
UmVnaXN0ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0
aCk7CisKKyAgICBXZWJVUkxMb2FkZXJPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5jcm9z
c09yaWdpblJlcXVlc3RQb2xpY3kgPSBXZWJVUkxMb2FkZXJPcHRpb25zOjpDcm9zc09yaWdpblJl
cXVlc3RQb2xpY3lVc2VBY2Nlc3NDb250cm9sOworICAgIG1fZXhwZWN0ZWRMb2FkZXIgPSBjcmVh
dGVBc3NvY2lhdGVkVVJMTG9hZGVyKG9wdGlvbnMpOworICAgIEVYUEVDVF9UUlVFKG1fZXhwZWN0
ZWRMb2FkZXIpOworICAgIG1fZXhwZWN0ZWRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShyZXF1
ZXN0LCB0aGlzKTsKKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRS
ZWNlaXZlUmVzcG9uc2UpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZURhdGEpOworICAg
IEVYUEVDVF9UUlVFKG1fZGlkRmluaXNoTG9hZGluZyk7Cit9CisKKy8vIFRlc3QgYW4gdW5zdWNj
ZXNzZnVsIGNyb3NzLW9yaWdpbiBsb2FkIHVzaW5nIENPUlMuCitURVNUX0YoQXNzb2NpYXRlZFVS
TExvYWRlclRlc3QsIENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xGYWlsdXJlKQoreworICAg
IC8vIFRoaXMgaXMgY3Jvc3Mtb3JpZ2luIHNpbmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20g
d3d3LnRlc3QuY29tLgorICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20v
Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbEZhaWx1cmUuaHRtbCIpOworICAgIFdlYlVSTFJl
cXVlc3QgcmVxdWVzdDsKKyAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNl
dFVSTCh1cmwpOworCisgICAgbV9leHBlY3RlZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsK
KyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZXNw
b25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmFk
ZEhUVFBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgIioiKTsKKyAg
ICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVzcG9u
c2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBXZWJVUkxMb2FkZXJPcHRpb25zIG9wdGlvbnM7
CisgICAgLy8gU2VuZCBjcmVkZW50aWFscy4gVGhpcyB3aWxsIGNhdXNlIHRoZSBDT1JTIGNoZWNr
cyB0byBmYWlsLCBiZWNhdXNlIGNyZWRlbnRpYWxzIGNhbid0IGJlCisgICAgLy8gc2VudCB0byBh
IHNlcnZlciB3aGljaCByZXR1cm5zIHRoZSBoZWFkZXIgImFjY2Vzcy1jb250cm9sLWFsbG93LW9y
aWdpbiIgd2l0aCAiKiIgYXMgaXRzIHZhbHVlLgorICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFs
cyA9IHRydWU7CisgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBXZWJVUkxM
b2FkZXJPcHRpb25zOjpDcm9zc09yaWdpblJlcXVlc3RQb2xpY3lVc2VBY2Nlc3NDb250cm9sOwor
ICAgIG1fZXhwZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lhdGVkVVJMTG9hZGVyKG9wdGlvbnMp
OworICAgIEVYUEVDVF9UUlVFKG1fZXhwZWN0ZWRMb2FkZXIpOworICAgIG1fZXhwZWN0ZWRMb2Fk
ZXItPmxvYWRBc3luY2hyb25vdXNseShyZXF1ZXN0LCB0aGlzKTsKKworICAgIC8vIEZhaWx1cmUg
c2hvdWxkIG5vdCBiZSByZXBvcnRlZCBzeW5jaHJvbm91c2x5LgorICAgIEVYUEVDVF9GQUxTRSht
X2RpZEZhaWwpOworICAgIC8vIFRoZSBsb2FkZXIgbmVlZHMgdG8gcmVjZWl2ZSB0aGUgcmVzcG9u
c2UsIGJlZm9yZSBkb2luZyB0aGUgQ09SUyBjaGVjay4KKyAgICBzZXJ2ZVJlcXVlc3RzKCk7Cisg
ICAgRVhQRUNUX1RSVUUobV9kaWRGYWlsKTsKKyAgICBFWFBFQ1RfRkFMU0UobV9kaWRSZWNlaXZl
UmVzcG9uc2UpOworfQorCisvLyBUZXN0IGEgc2FtZS1vcmlnaW4gVVJMIHJlZGlyZWN0IGFuZCBs
b2FkLgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBSZWRpcmVjdFN1Y2Nlc3MpCit7
CisgICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tL1JlZGlyZWN0U3VjY2Vz
cy5odG1sIik7CisgICAgY2hhciByZWRpcmVjdFtdID0gImh0dHA6Ly93d3cudGVzdC5jb20vUmVk
aXJlY3RTdWNjZXNzMi5odG1sIjsgIC8vIFNhbWUtb3JpZ2luCisgICAgR1VSTCByZWRpcmVjdFVS
TCA9IEdVUkwocmVkaXJlY3QpOworCisgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAgIHJl
cXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBtX2V4
cGVjdGVkUmVkaXJlY3RSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3Rl
ZFJlZGlyZWN0UmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJl
c3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RS
ZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgzMDEpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJl
c3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZCgiTG9jYXRpb24iLCByZWRpcmVjdCk7CisgICAgd2Vi
a2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJlZGlyZWN0UmVz
cG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdCA9IFdl
YlVSTFJlcXVlc3QoKTsKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdC5pbml0aWFsaXplKCk7Cisg
ICAgbV9leHBlY3RlZE5ld1JlcXVlc3Quc2V0VVJMKHJlZGlyZWN0VVJMKTsKKworICAgIG1fZXhw
ZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNl
LmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQv
aHRtbCIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTChyZWRpcmVjdFVS
TCwgbV9leHBlY3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgbV9leHBlY3Rl
ZExvYWRlciA9IGNyZWF0ZUFzc29jaWF0ZWRVUkxMb2FkZXIoKTsKKyAgICBFWFBFQ1RfVFJVRSht
X2V4cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4cGVjdGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3Vz
bHkocmVxdWVzdCwgdGhpcyk7CisgICAgc2VydmVSZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVF
KG1fd2lsbFNlbmRSZXF1ZXN0KTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVSZXNwb25z
ZSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlRGF0YSk7CisgICAgRVhQRUNUX1RSVUUo
bV9kaWRGaW5pc2hMb2FkaW5nKTsKK30KKworLy8gVGVzdCBhIHN1Y2Nlc3NmdWwgcmVkaXJlY3Qg
YW5kIGNyb3NzLW9yaWdpbiBsb2FkIHVzaW5nIENPUlMuCisvLyBGSVhNRTogRW5hYmxlIHRoaXMg
d2hlbiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIgc3VwcG9ydHMgY3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0cy4KK1RFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgRElTQUJMRURfUmVkaXJlY3RD
cm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sU3VjY2VzcykKK3sKKyAgICBHVVJMIHVybCA9IEdV
UkwoImh0dHA6Ly93d3cudGVzdC5jb20vUmVkaXJlY3RDcm9zc09yaWdpbldpdGhBY2Nlc3NDb250
cm9sU3VjY2Vzcy5odG1sIik7CisgICAgY2hhciByZWRpcmVjdFtdID0gImh0dHA6Ly93d3cub3Ro
ZXIuY29tL1JlZGlyZWN0Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1Y2Nlc3MuaHRtbCI7
ICAvLyBDcm9zcy1vcmlnaW4KKyAgICBHVVJMIHJlZGlyZWN0VVJMID0gR1VSTChyZWRpcmVjdCk7
CisKKyAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7
CisgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3Bv
bnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5p
bml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0TUlNRVR5cGUo
InRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldEhUVFBTdGF0
dXNDb2RlKDMwMSk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0SFRUUEhlYWRl
ckZpZWxkKCJMb2NhdGlvbiIsIHJlZGlyZWN0KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0
ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZSwgbV9mcmFtZUZpbGVQ
YXRoKTsKKworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdCgpOworICAg
IG1fZXhwZWN0ZWROZXdSZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkTmV3UmVx
dWVzdC5zZXRVUkwocmVkaXJlY3RVUkwpOworCisgICAgbV9leHBlY3RlZFJlc3BvbnNlID0gV2Vi
VVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAg
IG1fZXhwZWN0ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBl
Y3RlZFJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3Jp
Z2luIiwgIioiKTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwocmVkaXJl
Y3RVUkwsIG1fZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIFdlYlVS
TExvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBv
bGljeSA9IFdlYlVSTExvYWRlck9wdGlvbnM6OkNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeVVzZUFj
Y2Vzc0NvbnRyb2w7CisgICAgbV9leHBlY3RlZExvYWRlciA9IGNyZWF0ZUFzc29jaWF0ZWRVUkxM
b2FkZXIob3B0aW9ucyk7CisgICAgRVhQRUNUX1RSVUUobV9leHBlY3RlZExvYWRlcik7CisgICAg
bV9leHBlY3RlZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVlc3QsIHRoaXMpOworICAg
IHNlcnZlUmVxdWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX3dpbGxTZW5kUmVxdWVzdCk7Cisg
ICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlUmVzcG9uc2UpOworICAgIEVYUEVDVF9UUlVFKG1f
ZGlkUmVjZWl2ZURhdGEpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkRmluaXNoTG9hZGluZyk7Cit9
CisKIC8vIFRlc3QgdGhhdCB1bnRydXN0ZWQgbG9hZHMgY2FuJ3QgdXNlIGEgZm9yYmlkZGVuIG1l
dGhvZC4KIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgVW50cnVzdGVkQ2hlY2tNZXRo
b2RzKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120231</attachid>
            <date>2011-12-21 16:04:32 -0800</date>
            <delta_ts>2011-12-22 10:26:31 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>9869</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDM0NjUpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDExLTEyLTIxICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgQXNzb2NpYXRlZFVSTExvYWRlciB0byBjaGVjayByZWRp
cmVjdCBoYW5kbGluZyBhbmQKKyAgICAgICAgY3Jvc3Mtb3JpZ2luIGFjY2VzcyBjb250cm9sLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5NTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0Fz
c29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNwcDoKKwogMjAxMS0xMi0yMCAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNp
b24gQVBJXSByZWZhY3RvciBleHRlbnNpb24gQVBJIGJ1aWxkIGNvZGUsIGV4cG9zZSBleHBlcmlt
ZW50YWwgQVBJcyBjb25kaXRpb25hbGx5IGluIGNocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNw
cAkocmV2aXNpb24gMTAzNDYzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3Nv
Y2lhdGVkVVJMTG9hZGVyVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcgQEAg
cHVibGljOgogICAgICAgICAsICBtX2RpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShmYWxzZSkKICAg
ICAgICAgLCAgbV9kaWRGaW5pc2hMb2FkaW5nKGZhbHNlKQogICAgICAgICAsICBtX2RpZEZhaWwo
ZmFsc2UpCisgICAgICAgICwgIG1fcnVubmluZ01lc3NhZ2VMb29wKGZhbHNlKQogICAgIHsKICAg
ICAgICAgLy8gUmV1c2Ugb25lIG9mIHRoZSB0ZXN0IGZpbGVzIGZyb20gV2ViRnJhbWVUZXN0Lgog
ICAgICAgICBzdGQ6OnN0cmluZyBmaWxlUGF0aCA9IHdlYmtpdF9zdXBwb3J0OjpHZXRXZWJLaXRS
b290RGlyKCkudXRmOCgpOwpAQCAtMTIzLDcgKzEyNCw2IEBAIHB1YmxpYzoKICAgICAgICAgRVhQ
RUNUX0VRKG1fZXhwZWN0ZWRMb2FkZXIsIGxvYWRlcik7CiAgICAgICAgIEVYUEVDVF9FUShtX2V4
cGVjdGVkTmV3UmVxdWVzdC51cmwoKSwgbmV3UmVxdWVzdC51cmwoKSk7CiAgICAgICAgIEVYUEVD
VF9FUShtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS51cmwoKSwgcmVkaXJlY3RSZXNwb25zZS51
cmwoKSk7Ci0gICAgICAgIEVYUEVDVF9FUShtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5taW1l
VHlwZSgpLCByZWRpcmVjdFJlc3BvbnNlLm1pbWVUeXBlKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
bV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVkaXJlY3RSZXNw
b25zZS5odHRwU3RhdHVzQ29kZSgpKTsKICAgICB9CiAKQEAgLTE3MSw3ICsxNzEsMTAgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgbV9kaWRGYWlsID0gdHJ1ZTsKICAgICAgICAgRVhQRUNUX0VR
KG1fZXhwZWN0ZWRMb2FkZXIsIGxvYWRlcik7Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpRdWl0
TWVzc2FnZUxvb3AoKTsKKyAgICAgICAgaWYgKG1fcnVubmluZ01lc3NhZ2VMb29wKSB7CisgICAg
ICAgICAgbV9ydW5uaW5nTWVzc2FnZUxvb3AgPSBmYWxzZTsKKyAgICAgICAgICB3ZWJraXRfc3Vw
cG9ydDo6UXVpdE1lc3NhZ2VMb29wKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIENo
ZWNrTWV0aG9kRmFpbHMoY29uc3QgY2hhciogdW5zYWZlTWV0aG9kKQpAQCAtMjEwLDggKzIxMywx
MCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIEZhaWx1cmUgc2hvdWxkIG5vdCBiZSByZXBvcnRlZCBz
eW5jaHJvbm91c2x5LgogICAgICAgICBFWFBFQ1RfRkFMU0UobV9kaWRGYWlsKTsKICAgICAgICAg
Ly8gQWxsb3cgdGhlIGxvYWRlciB0byByZXR1cm4gdGhlIGVycm9yLgorICAgICAgICBtX3J1bm5p
bmdNZXNzYWdlTG9vcCA9IHRydWU7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpSdW5NZXNzYWdl
TG9vcCgpOwogICAgICAgICBFWFBFQ1RfVFJVRShtX2RpZEZhaWwpOworICAgICAgICBFWFBFQ1Rf
RkFMU0UobV9kaWRSZWNlaXZlUmVzcG9uc2UpOwogICAgIH0KIAogcHJvdGVjdGVkOgpAQCAtMjMx
LDEyICsyMzYsMTMgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9kaWRSZWNlaXZlQ2FjaGVkTWV0
YWRhdGE7CiAgICAgYm9vbCBtX2RpZEZpbmlzaExvYWRpbmc7CiAgICAgYm9vbCBtX2RpZEZhaWw7
CisgICAgYm9vbCBtX3J1bm5pbmdNZXNzYWdlTG9vcDsKIH07CiAKLS8vIFRlc3QgYSBzdWNjZXNz
ZnVsIFVSTCBsb2FkLgotVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTdWNjZXNzKQor
Ly8gVGVzdCBhIHN1Y2Nlc3NmdWwgc2FtZS1vcmlnaW4gVVJMIGxvYWQuCitURVNUX0YoQXNzb2Np
YXRlZFVSTExvYWRlclRlc3QsIFNhbWVPcmlnaW5TdWNjZXNzKQogewotICAgIEdVUkwgdXJsID0g
R1VSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS9zdWNjZXNzLmh0bWwiKTsKKyAgICBHVVJMIHVybCA9
IEdVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vU2FtZU9yaWdpblN1Y2Nlc3MuaHRtbCIpOwogICAg
IFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKICAgICBy
ZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMjU5LDcgKzI2NSw3IEBAIFRFU1RfRihBc3NvY2lhdGVk
VVJMTG9hZGVyVGVzdCwgU3VjY2VzcykKIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwg
U2FtZU9yaWdpblJlc3RyaWN0aW9uKQogewogICAgIC8vIFRoaXMgaXMgY3Jvc3Mtb3JpZ2luIHNp
bmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgotICAgIEdVUkwgdXJs
ID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vZmFpbHVyZS5odG1sIik7CisgICAgR1VSTCB1
cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9TYW1lT3JpZ2luUmVzdHJpY3Rpb24uaHRt
bCIpOwogICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxpemUo
KTsKICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMjcwLDcgKzI3Niw3IEBAIFRFU1RfRihB
c3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgU2FtZU9yaWcKIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9h
ZGVyVGVzdCwgQ3Jvc3NPcmlnaW5TdWNjZXNzKQogewogICAgIC8vIFRoaXMgaXMgY3Jvc3Mtb3Jp
Z2luIHNpbmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgotICAgIEdV
UkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vc3VjY2Vzcy5odG1sIik7CisgICAg
R1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3Lm90aGVyLmNvbS9Dcm9zc09yaWdpblN1Y2Nlc3Mu
aHRtbCIpOwogICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LmluaXRpYWxp
emUoKTsKICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOwpAQCAtMjkxLDYgKzI5NywxNDIgQEAgVEVT
VF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBDcm9zc09yaQogICAgIEVYUEVDVF9UUlVFKG1f
ZGlkRmluaXNoTG9hZGluZyk7CiB9CiAKKy8vIFRlc3QgYSBzdWNjZXNzZnVsIGNyb3NzLW9yaWdp
biBsb2FkIHVzaW5nIENPUlMuCitURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIENyb3Nz
T3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzKQoreworICAgIC8vIFRoaXMgaXMgY3Jvc3Mt
b3JpZ2luIHNpbmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20gd3d3LnRlc3QuY29tLgorICAg
IEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20vQ3Jvc3NPcmlnaW5XaXRoQWNj
ZXNzQ29udHJvbFN1Y2Nlc3MuaHRtbCIpOworICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKKyAg
ICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworCisgICAg
bV9leHBlY3RlZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVz
cG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgi
dGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZCgi
YWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgIioiKTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6
UmVnaXN0ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0
aCk7CisKKyAgICBXZWJVUkxMb2FkZXJPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5jcm9z
c09yaWdpblJlcXVlc3RQb2xpY3kgPSBXZWJVUkxMb2FkZXJPcHRpb25zOjpDcm9zc09yaWdpblJl
cXVlc3RQb2xpY3lVc2VBY2Nlc3NDb250cm9sOworICAgIG1fZXhwZWN0ZWRMb2FkZXIgPSBjcmVh
dGVBc3NvY2lhdGVkVVJMTG9hZGVyKG9wdGlvbnMpOworICAgIEVYUEVDVF9UUlVFKG1fZXhwZWN0
ZWRMb2FkZXIpOworICAgIG1fZXhwZWN0ZWRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShyZXF1
ZXN0LCB0aGlzKTsKKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRS
ZWNlaXZlUmVzcG9uc2UpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZURhdGEpOworICAg
IEVYUEVDVF9UUlVFKG1fZGlkRmluaXNoTG9hZGluZyk7Cit9CisKKy8vIFRlc3QgYW4gdW5zdWNj
ZXNzZnVsIGNyb3NzLW9yaWdpbiBsb2FkIHVzaW5nIENPUlMuCitURVNUX0YoQXNzb2NpYXRlZFVS
TExvYWRlclRlc3QsIENyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xGYWlsdXJlKQoreworICAg
IC8vIFRoaXMgaXMgY3Jvc3Mtb3JpZ2luIHNpbmNlIHRoZSBmcmFtZSB3YXMgbG9hZGVkIGZyb20g
d3d3LnRlc3QuY29tLgorICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5vdGhlci5jb20v
Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbEZhaWx1cmUuaHRtbCIpOworICAgIFdlYlVSTFJl
cXVlc3QgcmVxdWVzdDsKKyAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICByZXF1ZXN0LnNl
dFVSTCh1cmwpOworCisgICAgbV9leHBlY3RlZFJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2UoKTsK
KyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZXNw
b25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmFk
ZEhUVFBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgIioiKTsKKyAg
ICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVzcG9u
c2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBXZWJVUkxMb2FkZXJPcHRpb25zIG9wdGlvbnM7
CisgICAgLy8gU2VuZCBjcmVkZW50aWFscy4gVGhpcyB3aWxsIGNhdXNlIHRoZSBDT1JTIGNoZWNr
cyB0byBmYWlsLCBiZWNhdXNlIGNyZWRlbnRpYWxzIGNhbid0IGJlCisgICAgLy8gc2VudCB0byBh
IHNlcnZlciB3aGljaCByZXR1cm5zIHRoZSBoZWFkZXIgImFjY2Vzcy1jb250cm9sLWFsbG93LW9y
aWdpbiIgd2l0aCAiKiIgYXMgaXRzIHZhbHVlLgorICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFs
cyA9IHRydWU7CisgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBXZWJVUkxM
b2FkZXJPcHRpb25zOjpDcm9zc09yaWdpblJlcXVlc3RQb2xpY3lVc2VBY2Nlc3NDb250cm9sOwor
ICAgIG1fZXhwZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lhdGVkVVJMTG9hZGVyKG9wdGlvbnMp
OworICAgIEVYUEVDVF9UUlVFKG1fZXhwZWN0ZWRMb2FkZXIpOworICAgIG1fZXhwZWN0ZWRMb2Fk
ZXItPmxvYWRBc3luY2hyb25vdXNseShyZXF1ZXN0LCB0aGlzKTsKKworICAgIC8vIEZhaWx1cmUg
c2hvdWxkIG5vdCBiZSByZXBvcnRlZCBzeW5jaHJvbm91c2x5LgorICAgIEVYUEVDVF9GQUxTRSht
X2RpZEZhaWwpOworICAgIC8vIFRoZSBsb2FkZXIgbmVlZHMgdG8gcmVjZWl2ZSB0aGUgcmVzcG9u
c2UsIGJlZm9yZSBkb2luZyB0aGUgQ09SUyBjaGVjay4KKyAgICBzZXJ2ZVJlcXVlc3RzKCk7Cisg
ICAgRVhQRUNUX1RSVUUobV9kaWRGYWlsKTsKKyAgICBFWFBFQ1RfRkFMU0UobV9kaWRSZWNlaXZl
UmVzcG9uc2UpOworfQorCisvLyBUZXN0IGEgc2FtZS1vcmlnaW4gVVJMIHJlZGlyZWN0IGFuZCBs
b2FkLgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBSZWRpcmVjdFN1Y2Nlc3MpCit7
CisgICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tL1JlZGlyZWN0U3VjY2Vz
cy5odG1sIik7CisgICAgY2hhciByZWRpcmVjdFtdID0gImh0dHA6Ly93d3cudGVzdC5jb20vUmVk
aXJlY3RTdWNjZXNzMi5odG1sIjsgIC8vIFNhbWUtb3JpZ2luCisgICAgR1VSTCByZWRpcmVjdFVS
TCA9IEdVUkwocmVkaXJlY3QpOworCisgICAgV2ViVVJMUmVxdWVzdCByZXF1ZXN0OworICAgIHJl
cXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisKKyAgICBtX2V4
cGVjdGVkUmVkaXJlY3RSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3Rl
ZFJlZGlyZWN0UmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJl
c3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RS
ZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgzMDEpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJl
c3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZCgiTG9jYXRpb24iLCByZWRpcmVjdCk7CisgICAgd2Vi
a2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJlZGlyZWN0UmVz
cG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdCA9IFdl
YlVSTFJlcXVlc3QoKTsKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdC5pbml0aWFsaXplKCk7Cisg
ICAgbV9leHBlY3RlZE5ld1JlcXVlc3Quc2V0VVJMKHJlZGlyZWN0VVJMKTsKKworICAgIG1fZXhw
ZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNl
LmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQv
aHRtbCIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTChyZWRpcmVjdFVS
TCwgbV9leHBlY3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgbV9leHBlY3Rl
ZExvYWRlciA9IGNyZWF0ZUFzc29jaWF0ZWRVUkxMb2FkZXIoKTsKKyAgICBFWFBFQ1RfVFJVRSht
X2V4cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4cGVjdGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3Vz
bHkocmVxdWVzdCwgdGhpcyk7CisgICAgc2VydmVSZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVF
KG1fd2lsbFNlbmRSZXF1ZXN0KTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVSZXNwb25z
ZSk7CisgICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlRGF0YSk7CisgICAgRVhQRUNUX1RSVUUo
bV9kaWRGaW5pc2hMb2FkaW5nKTsKK30KKworLy8gVGVzdCBhIHN1Y2Nlc3NmdWwgcmVkaXJlY3Qg
YW5kIGNyb3NzLW9yaWdpbiBsb2FkIHVzaW5nIENPUlMuCisvLyBGSVhNRTogRW5hYmxlIHRoaXMg
d2hlbiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIgc3VwcG9ydHMgY3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0cy4KK1RFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgRElTQUJMRURfUmVkaXJlY3RD
cm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9sU3VjY2VzcykKK3sKKyAgICBHVVJMIHVybCA9IEdV
UkwoImh0dHA6Ly93d3cudGVzdC5jb20vUmVkaXJlY3RDcm9zc09yaWdpbldpdGhBY2Nlc3NDb250
cm9sU3VjY2Vzcy5odG1sIik7CisgICAgY2hhciByZWRpcmVjdFtdID0gImh0dHA6Ly93d3cub3Ro
ZXIuY29tL1JlZGlyZWN0Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1Y2Nlc3MuaHRtbCI7
ICAvLyBDcm9zcy1vcmlnaW4KKyAgICBHVVJMIHJlZGlyZWN0VVJMID0gR1VSTChyZWRpcmVjdCk7
CisKKyAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7
CisgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3Bv
bnNlID0gV2ViVVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5p
bml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0TUlNRVR5cGUo
InRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldEhUVFBTdGF0
dXNDb2RlKDMwMSk7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0SFRUUEhlYWRl
ckZpZWxkKCJMb2NhdGlvbiIsIHJlZGlyZWN0KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0
ZXJNb2NrZWRVUkwodXJsLCBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZSwgbV9mcmFtZUZpbGVQ
YXRoKTsKKworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdCgpOworICAg
IG1fZXhwZWN0ZWROZXdSZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkTmV3UmVx
dWVzdC5zZXRVUkwocmVkaXJlY3RVUkwpOworCisgICAgbV9leHBlY3RlZFJlc3BvbnNlID0gV2Vi
VVJMUmVzcG9uc2UoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAg
IG1fZXhwZWN0ZWRSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgbV9leHBl
Y3RlZFJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZCgiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3Jp
Z2luIiwgIioiKTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwocmVkaXJl
Y3RVUkwsIG1fZXhwZWN0ZWRSZXNwb25zZSwgbV9mcmFtZUZpbGVQYXRoKTsKKworICAgIFdlYlVS
TExvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBv
bGljeSA9IFdlYlVSTExvYWRlck9wdGlvbnM6OkNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeVVzZUFj
Y2Vzc0NvbnRyb2w7CisgICAgbV9leHBlY3RlZExvYWRlciA9IGNyZWF0ZUFzc29jaWF0ZWRVUkxM
b2FkZXIob3B0aW9ucyk7CisgICAgRVhQRUNUX1RSVUUobV9leHBlY3RlZExvYWRlcik7CisgICAg
bV9leHBlY3RlZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVlc3QsIHRoaXMpOworICAg
IHNlcnZlUmVxdWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX3dpbGxTZW5kUmVxdWVzdCk7Cisg
ICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlUmVzcG9uc2UpOworICAgIEVYUEVDVF9UUlVFKG1f
ZGlkUmVjZWl2ZURhdGEpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkRmluaXNoTG9hZGluZyk7Cit9
CisKIC8vIFRlc3QgdGhhdCB1bnRydXN0ZWQgbG9hZHMgY2FuJ3QgdXNlIGEgZm9yYmlkZGVuIG1l
dGhvZC4KIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgVW50cnVzdGVkQ2hlY2tNZXRo
b2RzKQogewo=
</data>
<flag name="review"
          id="120454"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="120455"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120338</attachid>
            <date>2011-12-22 10:26:31 -0800</date>
            <delta_ts>2011-12-23 01:52:40 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>aaa.txt</filename>
            <type>text/plain</type>
            <size>10074</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDM0NjUpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDExLTEyLTIxICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgQXNzb2NpYXRlZFVSTExvYWRlciB0byBjaGVjayByZWRp
cmVjdCBoYW5kbGluZyBhbmQKKyAgICAgICAgY3Jvc3Mtb3JpZ2luIGFjY2VzcyBjb250cm9sLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5NTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0Fz
c29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNwcDoKKwogMjAxMS0xMi0yMCAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNp
b24gQVBJXSByZWZhY3RvciBleHRlbnNpb24gQVBJIGJ1aWxkIGNvZGUsIGV4cG9zZSBleHBlcmlt
ZW50YWwgQVBJcyBjb25kaXRpb25hbGx5IGluIGNocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNw
cAkocmV2aXNpb24gMTAzNDYzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Bc3Nv
Y2lhdGVkVVJMTG9hZGVyVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcgQEAg
cHVibGljOgogICAgICAgICAsICBtX2RpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShmYWxzZSkKICAg
ICAgICAgLCAgbV9kaWRGaW5pc2hMb2FkaW5nKGZhbHNlKQogICAgICAgICAsICBtX2RpZEZhaWwo
ZmFsc2UpCisgICAgICAgICwgIG1fcnVubmluZ01lc3NhZ2VMb29wKGZhbHNlKQogICAgIHsKICAg
ICAgICAgLy8gUmV1c2Ugb25lIG9mIHRoZSB0ZXN0IGZpbGVzIGZyb20gV2ViRnJhbWVUZXN0Lgog
ICAgICAgICBzdGQ6OnN0cmluZyBmaWxlUGF0aCA9IHdlYmtpdF9zdXBwb3J0OjpHZXRXZWJLaXRS
b290RGlyKCkudXRmOCgpOwpAQCAtMTIzLDggKzEyNCw4IEBAIHB1YmxpYzoKICAgICAgICAgRVhQ
RUNUX0VRKG1fZXhwZWN0ZWRMb2FkZXIsIGxvYWRlcik7CiAgICAgICAgIEVYUEVDVF9FUShtX2V4
cGVjdGVkTmV3UmVxdWVzdC51cmwoKSwgbmV3UmVxdWVzdC51cmwoKSk7CiAgICAgICAgIEVYUEVD
VF9FUShtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS51cmwoKSwgcmVkaXJlY3RSZXNwb25zZS51
cmwoKSk7Ci0gICAgICAgIEVYUEVDVF9FUShtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5taW1l
VHlwZSgpLCByZWRpcmVjdFJlc3BvbnNlLm1pbWVUeXBlKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
bV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVkaXJlY3RSZXNw
b25zZS5odHRwU3RhdHVzQ29kZSgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG1fZXhwZWN0ZWRSZWRp
cmVjdFJlc3BvbnNlLm1pbWVUeXBlKCksIHJlZGlyZWN0UmVzcG9uc2UubWltZVR5cGUoKSk7CiAg
ICAgfQogCiAgICAgdm9pZCBkaWRTZW5kRGF0YShXZWJVUkxMb2FkZXIqIGxvYWRlciwgdW5zaWdu
ZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0Jl
U2VudCkKQEAgLTE3MSw3ICsxNzIsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgbV9kaWRG
YWlsID0gdHJ1ZTsKICAgICAgICAgRVhQRUNUX0VRKG1fZXhwZWN0ZWRMb2FkZXIsIGxvYWRlcik7
Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpRdWl0TWVzc2FnZUxvb3AoKTsKKyAgICAgICAgaWYg
KG1fcnVubmluZ01lc3NhZ2VMb29wKSB7CisgICAgICAgICAgICBtX3J1bm5pbmdNZXNzYWdlTG9v
cCA9IGZhbHNlOworICAgICAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlF1aXRNZXNzYWdlTG9vcCgp
OworICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBDaGVja01ldGhvZEZhaWxzKGNvbnN0IGNo
YXIqIHVuc2FmZU1ldGhvZCkKQEAgLTIxMCw4ICsyMTQsMTAgQEAgcHVibGljOgogICAgICAgICAv
LyBGYWlsdXJlIHNob3VsZCBub3QgYmUgcmVwb3J0ZWQgc3luY2hyb25vdXNseS4KICAgICAgICAg
RVhQRUNUX0ZBTFNFKG1fZGlkRmFpbCk7CiAgICAgICAgIC8vIEFsbG93IHRoZSBsb2FkZXIgdG8g
cmV0dXJuIHRoZSBlcnJvci4KKyAgICAgICAgbV9ydW5uaW5nTWVzc2FnZUxvb3AgPSB0cnVlOwog
ICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UnVuTWVzc2FnZUxvb3AoKTsKICAgICAgICAgRVhQRUNU
X1RSVUUobV9kaWRGYWlsKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKG1fZGlkUmVjZWl2ZVJlc3Bv
bnNlKTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTIzMSwxMiArMjM3LDEzIEBAIHByb3RlY3Rl
ZDoKICAgICBib29sIG1fZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhOwogICAgIGJvb2wgbV9kaWRG
aW5pc2hMb2FkaW5nOwogICAgIGJvb2wgbV9kaWRGYWlsOworICAgIGJvb2wgbV9ydW5uaW5nTWVz
c2FnZUxvb3A7CiB9OwogCi0vLyBUZXN0IGEgc3VjY2Vzc2Z1bCBVUkwgbG9hZC4KLVRFU1RfRihB
c3NvY2lhdGVkVVJMTG9hZGVyVGVzdCwgU3VjY2VzcykKKy8vIFRlc3QgYSBzdWNjZXNzZnVsIHNh
bWUtb3JpZ2luIFVSTCBsb2FkLgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBTYW1l
T3JpZ2luU3VjY2VzcykKIHsKLSAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cudGVzdC5j
b20vc3VjY2Vzcy5odG1sIik7CisgICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3LnRlc3Qu
Y29tL1NhbWVPcmlnaW5TdWNjZXNzLmh0bWwiKTsKICAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7
CiAgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CiAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKQEAg
LTI1OSw3ICsyNjYsNyBAQCBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFN1Y2Nlc3Mp
CiBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIFNhbWVPcmlnaW5SZXN0cmljdGlvbikK
IHsKICAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdpbiBzaW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRl
ZCBmcm9tIHd3dy50ZXN0LmNvbS4KLSAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3Ro
ZXIuY29tL2ZhaWx1cmUuaHRtbCIpOworICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDovL3d3dy5v
dGhlci5jb20vU2FtZU9yaWdpblJlc3RyaWN0aW9uLmh0bWwiKTsKICAgICBXZWJVUkxSZXF1ZXN0
IHJlcXVlc3Q7CiAgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CiAgICAgcmVxdWVzdC5zZXRVUkwo
dXJsKTsKQEAgLTI3MCw3ICsyNzcsNyBAQCBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3Qs
IFNhbWVPcmlnCiBURVNUX0YoQXNzb2NpYXRlZFVSTExvYWRlclRlc3QsIENyb3NzT3JpZ2luU3Vj
Y2VzcykKIHsKICAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdpbiBzaW5jZSB0aGUgZnJhbWUgd2Fz
IGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4KLSAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6Ly93
d3cub3RoZXIuY29tL3N1Y2Nlc3MuaHRtbCIpOworICAgIEdVUkwgdXJsID0gR1VSTCgiaHR0cDov
L3d3dy5vdGhlci5jb20vQ3Jvc3NPcmlnaW5TdWNjZXNzLmh0bWwiKTsKICAgICBXZWJVUkxSZXF1
ZXN0IHJlcXVlc3Q7CiAgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7CiAgICAgcmVxdWVzdC5zZXRV
UkwodXJsKTsKQEAgLTI5MSw2ICsyOTgsMTQyIEBAIFRFU1RfRihBc3NvY2lhdGVkVVJMTG9hZGVy
VGVzdCwgQ3Jvc3NPcmkKICAgICBFWFBFQ1RfVFJVRShtX2RpZEZpbmlzaExvYWRpbmcpOwogfQog
CisvLyBUZXN0IGEgc3VjY2Vzc2Z1bCBjcm9zcy1vcmlnaW4gbG9hZCB1c2luZyBDT1JTLgorVEVT
VF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBDcm9zc09yaWdpbldpdGhBY2Nlc3NDb250cm9s
U3VjY2VzcykKK3sKKyAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdpbiBzaW5jZSB0aGUgZnJhbWUg
d2FzIGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4KKyAgICBHVVJMIHVybCA9IEdVUkwoImh0dHA6
Ly93d3cub3RoZXIuY29tL0Nyb3NzT3JpZ2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzLmh0bWwi
KTsKKyAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVxdWVzdC5pbml0aWFsaXplKCk7
CisgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhwZWN0ZWRSZXNwb25zZSA9IFdl
YlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAg
ICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIG1fZXhw
ZWN0ZWRSZXNwb25zZS5hZGRIVFRQSGVhZGVyRmllbGQoImFjY2Vzcy1jb250cm9sLWFsbG93LW9y
aWdpbiIsICIqIik7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHVybCwg
bV9leHBlY3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOworCisgICAgV2ViVVJMTG9hZGVy
T3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0g
V2ViVVJMTG9hZGVyT3B0aW9uczo6Q3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5VXNlQWNjZXNzQ29u
dHJvbDsKKyAgICBtX2V4cGVjdGVkTG9hZGVyID0gY3JlYXRlQXNzb2NpYXRlZFVSTExvYWRlcihv
cHRpb25zKTsKKyAgICBFWFBFQ1RfVFJVRShtX2V4cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4cGVj
dGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkocmVxdWVzdCwgdGhpcyk7CisgICAgc2VydmVS
ZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVjZWl2ZVJlc3BvbnNlKTsKKyAgICBF
WFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVEYXRhKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZEZpbmlz
aExvYWRpbmcpOworfQorCisvLyBUZXN0IGFuIHVuc3VjY2Vzc2Z1bCBjcm9zcy1vcmlnaW4gbG9h
ZCB1c2luZyBDT1JTLgorVEVTVF9GKEFzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LCBDcm9zc09yaWdp
bldpdGhBY2Nlc3NDb250cm9sRmFpbHVyZSkKK3sKKyAgICAvLyBUaGlzIGlzIGNyb3NzLW9yaWdp
biBzaW5jZSB0aGUgZnJhbWUgd2FzIGxvYWRlZCBmcm9tIHd3dy50ZXN0LmNvbS4KKyAgICBHVVJM
IHVybCA9IEdVUkwoImh0dHA6Ly93d3cub3RoZXIuY29tL0Nyb3NzT3JpZ2luV2l0aEFjY2Vzc0Nv
bnRyb2xGYWlsdXJlLmh0bWwiKTsKKyAgICBXZWJVUkxSZXF1ZXN0IHJlcXVlc3Q7CisgICAgcmVx
dWVzdC5pbml0aWFsaXplKCk7CisgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKworICAgIG1fZXhw
ZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9leHBlY3RlZFJlc3BvbnNl
LmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0TUlNRVR5cGUoInRleHQv
aHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5hZGRIVFRQSGVhZGVyRmllbGQoImFjY2Vz
cy1jb250cm9sLWFsbG93LW9yaWdpbiIsICIqIik7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lz
dGVyTW9ja2VkVVJMKHVybCwgbV9leHBlY3RlZFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgpOwor
CisgICAgV2ViVVJMTG9hZGVyT3B0aW9ucyBvcHRpb25zOworICAgIC8vIFNlbmQgY3JlZGVudGlh
bHMuIFRoaXMgd2lsbCBjYXVzZSB0aGUgQ09SUyBjaGVja3MgdG8gZmFpbCwgYmVjYXVzZSBjcmVk
ZW50aWFscyBjYW4ndCBiZQorICAgIC8vIHNlbnQgdG8gYSBzZXJ2ZXIgd2hpY2ggcmV0dXJucyB0
aGUgaGVhZGVyICJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4iIHdpdGggIioiIGFzIGl0cyB2
YWx1ZS4KKyAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSB0cnVlOworICAgIG9wdGlvbnMu
Y3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gV2ViVVJMTG9hZGVyT3B0aW9uczo6Q3Jvc3NPcmln
aW5SZXF1ZXN0UG9saWN5VXNlQWNjZXNzQ29udHJvbDsKKyAgICBtX2V4cGVjdGVkTG9hZGVyID0g
Y3JlYXRlQXNzb2NpYXRlZFVSTExvYWRlcihvcHRpb25zKTsKKyAgICBFWFBFQ1RfVFJVRShtX2V4
cGVjdGVkTG9hZGVyKTsKKyAgICBtX2V4cGVjdGVkTG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHko
cmVxdWVzdCwgdGhpcyk7CisKKyAgICAvLyBGYWlsdXJlIHNob3VsZCBub3QgYmUgcmVwb3J0ZWQg
c3luY2hyb25vdXNseS4KKyAgICBFWFBFQ1RfRkFMU0UobV9kaWRGYWlsKTsKKyAgICAvLyBUaGUg
bG9hZGVyIG5lZWRzIHRvIHJlY2VpdmUgdGhlIHJlc3BvbnNlLCBiZWZvcmUgZG9pbmcgdGhlIENP
UlMgY2hlY2suCisgICAgc2VydmVSZXF1ZXN0cygpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkRmFp
bCk7CisgICAgRVhQRUNUX0ZBTFNFKG1fZGlkUmVjZWl2ZVJlc3BvbnNlKTsKK30KKworLy8gVGVz
dCBhIHNhbWUtb3JpZ2luIFVSTCByZWRpcmVjdCBhbmQgbG9hZC4KK1RFU1RfRihBc3NvY2lhdGVk
VVJMTG9hZGVyVGVzdCwgUmVkaXJlY3RTdWNjZXNzKQoreworICAgIEdVUkwgdXJsID0gR1VSTCgi
aHR0cDovL3d3dy50ZXN0LmNvbS9SZWRpcmVjdFN1Y2Nlc3MuaHRtbCIpOworICAgIGNoYXIgcmVk
aXJlY3RbXSA9ICJodHRwOi8vd3d3LnRlc3QuY29tL1JlZGlyZWN0U3VjY2VzczIuaHRtbCI7ICAv
LyBTYW1lLW9yaWdpbgorICAgIEdVUkwgcmVkaXJlY3RVUkwgPSBHVVJMKHJlZGlyZWN0KTsKKwor
ICAgIFdlYlVSTFJlcXVlc3QgcmVxdWVzdDsKKyAgICByZXF1ZXN0LmluaXRpYWxpemUoKTsKKyAg
ICByZXF1ZXN0LnNldFVSTCh1cmwpOworCisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Ug
PSBXZWJVUkxSZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLmluaXRp
YWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRNSU1FVHlwZSgidGV4
dC9odG1sIik7CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0Nv
ZGUoMzAxKTsKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmll
bGQoIkxvY2F0aW9uIiwgcmVkaXJlY3QpOworICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1v
Y2tlZFVSTCh1cmwsIG1fZXhwZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lRmlsZVBhdGgp
OworCisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3QgPSBXZWJVUkxSZXF1ZXN0KCk7CisgICAgbV9l
eHBlY3RlZE5ld1JlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhwZWN0ZWROZXdSZXF1ZXN0
LnNldFVSTChyZWRpcmVjdFVSTCk7CisKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2UgPSBXZWJVUkxS
ZXNwb25zZSgpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5pbml0aWFsaXplKCk7CisgICAgbV9l
eHBlY3RlZFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICB3ZWJraXRfc3Vw
cG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwocmVkaXJlY3RVUkwsIG1fZXhwZWN0ZWRSZXNwb25zZSwg
bV9mcmFtZUZpbGVQYXRoKTsKKworICAgIG1fZXhwZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lh
dGVkVVJMTG9hZGVyKCk7CisgICAgRVhQRUNUX1RSVUUobV9leHBlY3RlZExvYWRlcik7CisgICAg
bV9leHBlY3RlZExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KHJlcXVlc3QsIHRoaXMpOworICAg
IHNlcnZlUmVxdWVzdHMoKTsKKyAgICBFWFBFQ1RfVFJVRShtX3dpbGxTZW5kUmVxdWVzdCk7Cisg
ICAgRVhQRUNUX1RSVUUobV9kaWRSZWNlaXZlUmVzcG9uc2UpOworICAgIEVYUEVDVF9UUlVFKG1f
ZGlkUmVjZWl2ZURhdGEpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkRmluaXNoTG9hZGluZyk7Cit9
CisKKy8vIFRlc3QgYSBzdWNjZXNzZnVsIHJlZGlyZWN0IGFuZCBjcm9zcy1vcmlnaW4gbG9hZCB1
c2luZyBDT1JTLgorLy8gRklYTUU6IEVuYWJsZSB0aGlzIHdoZW4gRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyIHN1cHBvcnRzIGNyb3NzLW9yaWdpbiByZWRpcmVjdHMuCitURVNUX0YoQXNzb2NpYXRl
ZFVSTExvYWRlclRlc3QsIERJU0FCTEVEX1JlZGlyZWN0Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29u
dHJvbFN1Y2Nlc3MpCit7CisgICAgR1VSTCB1cmwgPSBHVVJMKCJodHRwOi8vd3d3LnRlc3QuY29t
L1JlZGlyZWN0Q3Jvc3NPcmlnaW5XaXRoQWNjZXNzQ29udHJvbFN1Y2Nlc3MuaHRtbCIpOworICAg
IGNoYXIgcmVkaXJlY3RbXSA9ICJodHRwOi8vd3d3Lm90aGVyLmNvbS9SZWRpcmVjdENyb3NzT3Jp
Z2luV2l0aEFjY2Vzc0NvbnRyb2xTdWNjZXNzLmh0bWwiOyAgLy8gQ3Jvc3Mtb3JpZ2luCisgICAg
R1VSTCByZWRpcmVjdFVSTCA9IEdVUkwocmVkaXJlY3QpOworCisgICAgV2ViVVJMUmVxdWVzdCBy
ZXF1ZXN0OworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZSgpOworICAgIHJlcXVlc3Quc2V0VVJMKHVy
bCk7CisKKyAgICBtX2V4cGVjdGVkUmVkaXJlY3RSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7
CisgICAgbV9leHBlY3RlZFJlZGlyZWN0UmVzcG9uc2UuaW5pdGlhbGl6ZSgpOworICAgIG1fZXhw
ZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICBtX2V4
cGVjdGVkUmVkaXJlY3RSZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgzMDEpOworICAgIG1fZXhw
ZWN0ZWRSZWRpcmVjdFJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZCgiTG9jYXRpb24iLCByZWRp
cmVjdCk7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHVybCwgbV9leHBl
Y3RlZFJlZGlyZWN0UmVzcG9uc2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBtX2V4cGVjdGVk
TmV3UmVxdWVzdCA9IFdlYlVSTFJlcXVlc3QoKTsKKyAgICBtX2V4cGVjdGVkTmV3UmVxdWVzdC5p
bml0aWFsaXplKCk7CisgICAgbV9leHBlY3RlZE5ld1JlcXVlc3Quc2V0VVJMKHJlZGlyZWN0VVJM
KTsKKworICAgIG1fZXhwZWN0ZWRSZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlKCk7CisgICAgbV9l
eHBlY3RlZFJlc3BvbnNlLmluaXRpYWxpemUoKTsKKyAgICBtX2V4cGVjdGVkUmVzcG9uc2Uuc2V0
TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIG1fZXhwZWN0ZWRSZXNwb25zZS5hZGRIVFRQSGVh
ZGVyRmllbGQoImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIsICIqIik7CisgICAgd2Via2l0
X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKHJlZGlyZWN0VVJMLCBtX2V4cGVjdGVkUmVzcG9u
c2UsIG1fZnJhbWVGaWxlUGF0aCk7CisKKyAgICBXZWJVUkxMb2FkZXJPcHRpb25zIG9wdGlvbnM7
CisgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBXZWJVUkxMb2FkZXJPcHRp
b25zOjpDcm9zc09yaWdpblJlcXVlc3RQb2xpY3lVc2VBY2Nlc3NDb250cm9sOworICAgIG1fZXhw
ZWN0ZWRMb2FkZXIgPSBjcmVhdGVBc3NvY2lhdGVkVVJMTG9hZGVyKG9wdGlvbnMpOworICAgIEVY
UEVDVF9UUlVFKG1fZXhwZWN0ZWRMb2FkZXIpOworICAgIG1fZXhwZWN0ZWRMb2FkZXItPmxvYWRB
c3luY2hyb25vdXNseShyZXF1ZXN0LCB0aGlzKTsKKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisgICAg
RVhQRUNUX1RSVUUobV93aWxsU2VuZFJlcXVlc3QpOworICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVj
ZWl2ZVJlc3BvbnNlKTsKKyAgICBFWFBFQ1RfVFJVRShtX2RpZFJlY2VpdmVEYXRhKTsKKyAgICBF
WFBFQ1RfVFJVRShtX2RpZEZpbmlzaExvYWRpbmcpOworfQorCiAvLyBUZXN0IHRoYXQgdW50cnVz
dGVkIGxvYWRzIGNhbid0IHVzZSBhIGZvcmJpZGRlbiBtZXRob2QuCiBURVNUX0YoQXNzb2NpYXRl
ZFVSTExvYWRlclRlc3QsIFVudHJ1c3RlZENoZWNrTWV0aG9kcykKIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>