<?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>118003</bug_id>
          
          <creation_ts>2013-06-25 16:33:49 -0700</creation_ts>
          <short_desc>[Mac] Document URL is not updated by HSTS</short_desc>
          <delta_ts>2013-06-26 10:44:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>903451</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-06-25 16:33:49 -0700</bug_when>
    <thetext>When opening an HTTP link to an HSTS enabled site, WebKit does not update document URL, so window.location remains an http one.

&lt;rdar://problem/14241270&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903452</commentid>
    <comment_count>1</comment_count>
      <attachid>205430</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-06-25 16:38:29 -0700</bug_when>
    <thetext>Created attachment 205430
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903455</commentid>
    <comment_count>2</comment_count>
      <attachid>205430</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-25 16:45:44 -0700</bug_when>
    <thetext>Comment on attachment 205430
proposed fix

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

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm:80
&gt; +#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
&gt; +    // &lt;rdar://problem/14241270&gt;: Synthesize a response for HSTS.
&gt; +    if (!redirectResponse &amp;&amp; ![[[newRequest URL] scheme] isEqualToString:[[[connection currentRequest] URL] scheme]]) {
&gt; +        NSDictionary *synthesizedResponseHeaderFields = @{ @&quot;Location&quot;: [[newRequest URL] absoluteString], @&quot;Cache-Control&quot;: @&quot;no-store&quot; };
&gt; +        redirectResponse = [[[NSHTTPURLResponse alloc] initWithURL:[[connection currentRequest] URL] statusCode:302 HTTPVersion:(NSString *)kCFHTTPVersion1_1 headerFields:synthesizedResponseHeaderFields] autorelease];
&gt; +    }
&gt; +#endif

This exact same code is copied below in WebCoreResourceHandelAsOperationQueueDelegate.mm.  Are you sure we can&apos;t find a suitable place to share it?

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:121
&gt; +#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
&gt; +    if (!redirectResponse &amp;&amp; ![[[newRequest URL] scheme] isEqualToString:[[[connection currentRequest] URL] scheme]]) {
&gt; +        NSDictionary *synthesizedResponseHeaderFields = @{ @&quot;Location&quot;: [[newRequest URL] absoluteString], @&quot;Cache-Control&quot;: @&quot;no-store&quot; };
&gt; +        redirectResponse = [[[NSHTTPURLResponse alloc] initWithURL:[[connection currentRequest] URL] statusCode:302 HTTPVersion:(NSString *)kCFHTTPVersion1_1 headerFields:synthesizedResponseHeaderFields] autorelease];
&gt; +    }
&gt; +#endif

Except in this copy there&apos;s no comment pointing to the radar.  I like the comment, and think it should be wherever this code is.  And, I think that this code should be in precisely one place... :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903462</commentid>
    <comment_count>3</comment_count>
      <attachid>205431</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-25 17:23:50 -0700</bug_when>
    <thetext>Created attachment 205431
Patch v2 - Bigger patch, more shared code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903463</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-25 17:25:53 -0700</bug_when>
    <thetext>Attachment 205431 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/network/mac/MacNetworkingExtras.h&apos;, u&apos;Source/WebCore/platform/network/mac/MacNetworkingExtras.mm&apos;, u&apos;Source/WebCore/platform/network/mac/ResourceHandleMac.mm&apos;, u&apos;Source/WebCore/platform/network/mac/ResourceResponseMac.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreURLResponse.h&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreURLResponse.mm&apos;]&quot; exit_code: 1
Source/WebCore/platform/network/mac/MacNetworkingExtras.h:32:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903464</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-25 17:28:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Attachment 205431 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/network/mac/MacNetworkingExtras.h&apos;, u&apos;Source/WebCore/platform/network/mac/MacNetworkingExtras.mm&apos;, u&apos;Source/WebCore/platform/network/mac/ResourceHandleMac.mm&apos;, u&apos;Source/WebCore/platform/network/mac/ResourceResponseMac.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreURLResponse.h&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreURLResponse.mm&apos;]&quot; exit_code: 1
&gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.h:32:  Extra space before ( in function call  [whitespace/parens] [4]
&gt; Total errors found: 1 in 8 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Fixed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903465</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-25 17:29:04 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Attachment 205431 [details] [details] did not pass style-queue:
&gt; &gt; 
&gt; &gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/network/mac/MacNetworkingExtras.h&apos;, u&apos;Source/WebCore/platform/network/mac/MacNetworkingExtras.mm&apos;, u&apos;Source/WebCore/platform/network/mac/ResourceHandleMac.mm&apos;, u&apos;Source/WebCore/platform/network/mac/ResourceResponseMac.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreURLResponse.h&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreURLResponse.mm&apos;]&quot; exit_code: 1
&gt; &gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.h:32:  Extra space before ( in function call  [whitespace/parens] [4]
&gt; &gt; Total errors found: 1 in 8 files
&gt; &gt; 
&gt; &gt; 
&gt; &gt; If any of these errors are false positives, please file a bug against check-webkit-style.
&gt; 
&gt; Fixed locally.

Errrrr..... nevermind - bogus check-webkit-style not understand ObjC categories vs. function calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903466</commentid>
    <comment_count>7</comment_count>
      <attachid>205431</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-06-25 17:32:10 -0700</bug_when>
    <thetext>Comment on attachment 205431
Patch v2 - Bigger patch, more shared code.

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

&gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.h:39
&gt; +@class NSURLConnection;
&gt; +@class NSURLRequest;
&gt; +@class NSURLResponse;

This header doesn&apos;t look like it&apos;s Objective-C only (there is #ifdef __OBJC__).

&gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.h:42
&gt; +void synthesizeRedirectResponseIfNecessary(NSURLConnection *, NSURLRequest *newRequest, NSURLResponse **redirectResponse);

Can the synthesized response be returned normally?

&gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.mm:326
&gt; +#ifdef __OBJC__

Inside a .mm file?!

&gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.mm:332
&gt; +    ASSERT_UNUSED(redirectResponse, redirectResponse);
&gt; +#if __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 1090
&gt; +    UNUSED_PARAM(connection);
&gt; +    UNUSED_PARAM(newRequest);

This seems inconsistent, ASSERT_UNUSED is also not always unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903467</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-25 17:36:24 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 205431 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205431&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.h:39
&gt; &gt; +@class NSURLConnection;
&gt; &gt; +@class NSURLRequest;
&gt; &gt; +@class NSURLResponse;
&gt; 
&gt; This header doesn&apos;t look like it&apos;s Objective-C only (there is #ifdef __OBJC__).

And these @class forward decls are in the #ifdef __OBJC__ block for that reason!

&gt; &gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.h:42
&gt; &gt; +void synthesizeRedirectResponseIfNecessary(NSURLConnection *, NSURLRequest *newRequest, NSURLResponse **redirectResponse);
&gt; 
&gt; Can the synthesized response be returned normally?

Probably.
&gt; 
&gt; &gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.mm:326
&gt; &gt; +#ifdef __OBJC__
&gt; 
&gt; Inside a .mm file?!

heh.

&gt; 
&gt; &gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.mm:332
&gt; &gt; +    ASSERT_UNUSED(redirectResponse, redirectResponse);
&gt; &gt; +#if __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 1090
&gt; &gt; +    UNUSED_PARAM(connection);
&gt; &gt; +    UNUSED_PARAM(newRequest);
&gt; 
&gt; This seems inconsistent, ASSERT_UNUSED is also not always unused.

The assert makes sense 100% of the time with the current method signature, but taking your earlier feedback this will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903468</commentid>
    <comment_count>9</comment_count>
      <attachid>205432</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-25 17:41:12 -0700</bug_when>
    <thetext>Created attachment 205432
Patch v3 - Cleaner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903469</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-25 17:43:03 -0700</bug_when>
    <thetext>Attachment 205432 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/network/mac/MacNetworkingExtras.h&apos;, u&apos;Source/WebCore/platform/network/mac/MacNetworkingExtras.mm&apos;, u&apos;Source/WebCore/platform/network/mac/ResourceHandleMac.mm&apos;, u&apos;Source/WebCore/platform/network/mac/ResourceResponseMac.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreURLResponse.h&apos;, u&apos;Source/WebCore/platform/network/mac/WebCoreURLResponse.mm&apos;]&quot; exit_code: 1
Source/WebCore/platform/network/mac/MacNetworkingExtras.h:32:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903474</commentid>
    <comment_count>11</comment_count>
      <attachid>205432</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-06-25 18:04:59 -0700</bug_when>
    <thetext>Comment on attachment 205432
Patch v3 - Cleaner

Attachment 205432 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/946210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903486</commentid>
    <comment_count>12</comment_count>
      <attachid>205432</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-06-25 18:49:16 -0700</bug_when>
    <thetext>Comment on attachment 205432
Patch v3 - Cleaner

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

r=me. Please fix the build before landing.

&gt; Source/WebCore/ChangeLog:15
&gt; +        * platform/network/mac/MacNetworkingExtras.h: Renamed from Source/WebCore/platform/network/mac/WebCoreURLResponse.h.

This file name doesn&apos;t make me happy, it&apos;s so non-descriptive.

&gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.mm:328
&gt; +#if __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 1090

We usually put &quot;new&quot; code first.

&gt; Source/WebCore/platform/network/mac/MacNetworkingExtras.mm:334
&gt; +    if (!redirectResponse &amp;&amp; ![[[newRequest URL] scheme] isEqualToString:[[[connection currentRequest] URL] scheme]]) {

I think that this would be easier to read with an early return:

if (redirectResponse)
    return redirectResponse;

if (long condition)
   ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903760</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-26 09:21:32 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        * platform/network/mac/MacNetworkingExtras.h: Renamed from Source/WebCore/platform/network/mac/WebCoreURLResponse.h.
&gt; 
&gt; This file name doesn&apos;t make me happy, it&apos;s so non-descriptive.

The more I think about it, the addition of &quot;synthesizeRedirectResponseIfNecessary&quot; fits in with the previous theme of the header.

Maybe it doesn&apos;t need a name change at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903781</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-26 10:04:30 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/151994</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903783</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-06-26 10:09:18 -0700</bug_when>
    <thetext>The code you add is about NSURLConnection, so having it in WebCoreURLResponse.h is not right.

Consider a different API where the fact that HSTS mutated the request is explicitly communicated, and we don&apos;t have to guess like this. The code would be all different, despite NSURLResponse remaining unchanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903800</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-26 10:43:57 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; The code you add is about NSURLConnection, so having it in WebCoreURLResponse.h is not right.

The code I added refers to NSURLConnection, yes.  It also refers to NSURLResponse.

But it&apos;s core purpose is about fixing a response object to meet WebCore&apos;s expectations inside delegate callbacks.

I see no difference between this and the purpose of adjustMIMETypeIfNecessary.

While I wholeheartedly agree that &quot;WebCoreURLResponse&quot; is not a great name for this header, I would suggest that it was a poor name before this patch, and it is no worse a name after this patch.

&gt; Consider a different API where the fact that HSTS mutated the request is explicitly communicated, and we don&apos;t have to guess like this. The code would be all different, despite NSURLResponse remaining unchanged.

I don&apos;t think this file is explicitly about NSURLResponse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903802</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-06-26 10:44:52 -0700</bug_when>
    <thetext>I&apos;m definitely open to a better name than WebCoreURLResponse, and would gladly do the rename in a followup.

I just think that this patch is inline with the previous purpose of the header, and makes the poor name no worse.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205430</attachid>
            <date>2013-06-25 16:38:29 -0700</date>
            <delta_ts>2013-06-25 17:23:50 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>HSTS.txt</filename>
            <type>text/plain</type>
            <size>4108</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MTk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA2LTI1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIERvY3VtZW50IFVS
TCBpcyBub3QgdXBkYXRlZCBieSBIU1RTCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTgwMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE0MjQxMjcw
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN5bnRo
ZXNpemUgYSByZXNwb25zZSBhbmQgcHJvcGVybHkgaGFuZGxlIHdpbGxTZW5kUmVxdWVzdCB3aGVu
IHRoZSBVUkwgY2hhbmdlcyBpbgorICAgICAgICBhIHdheSB0aGF0J3MgdHlwaWNhbCBmb3IgSFNU
Uy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdh
dGUgY29ubmVjdGlvbjp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTZW5kUmVxdWVzdDpyZWRpcmVjdFJl
c3BvbnNlOl0pOgorCiAyMDEzLTA2LTI1ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4K
IAogICAgICAgICBEb24ndCBzbmFwc2hvdCBwbHVnLWlucyB0aGF0IGNvbWUgZnJvbSB0aGUgc2Ft
ZSBob3N0IGFzIHRoZSBwYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
RGVsZWdhdGUubW0JKHJldmlzaW9uIDE1MTkxOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTM4LDYgKzM4LDEwIEBACiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBv
cnQgIldlYkNvcmVVUkxSZXNwb25zZS5oIgogCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDgwIC8vIENGTmV0d29yayB3YXMgbm90IGEgdG9wIGxldmVsIGZyYW1ld29y
ayBwcmlvciB0byAxMC44CisjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZOZXR3b3JrLmg+CisjZW5kaWYK
KwogQGludGVyZmFjZSBOU1VSTFJlcXVlc3QgKERldGFpbHMpCiAtIChpZClfcHJvcGVydHlGb3JL
ZXk6KE5TU3RyaW5nICopa2V5OwogQGVuZApAQCAtNjYsNiArNzAsMTQgQEAgLSAoTlNVUkxSZXF1
ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZQogCiAgICAgaWYgKCFtX2hhbmRsZSkKICAgICAg
ICAgcmV0dXJuIG5pbDsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA5MAorICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8xNDI0MTI3MD46IFN5bnRoZXNpemUgYSByZXNw
b25zZSBmb3IgSFNUUy4KKyAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UgJiYgIVtbW25ld1JlcXVl
c3QgVVJMXSBzY2hlbWVdIGlzRXF1YWxUb1N0cmluZzpbW1tjb25uZWN0aW9uIGN1cnJlbnRSZXF1
ZXN0XSBVUkxdIHNjaGVtZV1dKSB7CisgICAgICAgIE5TRGljdGlvbmFyeSAqc3ludGhlc2l6ZWRS
ZXNwb25zZUhlYWRlckZpZWxkcyA9IEB7IEAiTG9jYXRpb24iOiBbW25ld1JlcXVlc3QgVVJMXSBh
YnNvbHV0ZVN0cmluZ10sIEAiQ2FjaGUtQ29udHJvbCI6IEAibm8tc3RvcmUiIH07CisgICAgICAg
IHJlZGlyZWN0UmVzcG9uc2UgPSBbW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhV
Ukw6W1tjb25uZWN0aW9uIGN1cnJlbnRSZXF1ZXN0XSBVUkxdIHN0YXR1c0NvZGU6MzAyIEhUVFBW
ZXJzaW9uOihOU1N0cmluZyAqKWtDRkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpzeW50aGVz
aXplZFJlc3BvbnNlSGVhZGVyRmllbGRzXSBhdXRvcmVsZWFzZV07CisgICAgfQorI2VuZGlmCiAg
ICAgCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81MzgwNjk3Pi4gVGhpcyBpcyBhIHdvcmth
cm91bmQgZm9yIGEgYmVoYXZpb3IgY2hhbmdlIGluIENGTmV0d29yayB3aGVyZSB3aWxsU2VuZFJl
cXVlc3QgZ2V0cyBjYWxsZWQgbW9yZSBvZnRlbi4KICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2Up
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAxNTE5MTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDEwIEBACiAjaW1wb3J0
ICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgLy8gQ0ZOZXR3b3JrIHdh
cyBub3QgYSB0b3AgbGV2ZWwgZnJhbWV3b3JrIHByaW9yIHRvIDEwLjgKKyNpbXBvcnQgPENGTmV0
d29yay9DRk5ldHdvcmsuaD4KKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoRGV0
YWlscykKIC0gKGlkKV9wcm9wZXJ0eUZvcktleTooTlNTdHJpbmcgKilrZXk7CiBAZW5kCkBAIC0x
MDksNiArMTEzLDEzIEBAIC0gKE5TVVJMUmVxdWVzdCAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmUK
ICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlv
bik7CiAKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyAgICBp
ZiAoIXJlZGlyZWN0UmVzcG9uc2UgJiYgIVtbW25ld1JlcXVlc3QgVVJMXSBzY2hlbWVdIGlzRXF1
YWxUb1N0cmluZzpbW1tjb25uZWN0aW9uIGN1cnJlbnRSZXF1ZXN0XSBVUkxdIHNjaGVtZV1dKSB7
CisgICAgICAgIE5TRGljdGlvbmFyeSAqc3ludGhlc2l6ZWRSZXNwb25zZUhlYWRlckZpZWxkcyA9
IEB7IEAiTG9jYXRpb24iOiBbW25ld1JlcXVlc3QgVVJMXSBhYnNvbHV0ZVN0cmluZ10sIEAiQ2Fj
aGUtQ29udHJvbCI6IEAibm8tc3RvcmUiIH07CisgICAgICAgIHJlZGlyZWN0UmVzcG9uc2UgPSBb
W1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6W1tjb25uZWN0aW9uIGN1cnJl
bnRSZXF1ZXN0XSBVUkxdIHN0YXR1c0NvZGU6MzAyIEhUVFBWZXJzaW9uOihOU1N0cmluZyAqKWtD
RkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpzeW50aGVzaXplZFJlc3BvbnNlSGVhZGVyRmll
bGRzXSBhdXRvcmVsZWFzZV07CisgICAgfQorI2VuZGlmCisKICAgICAvLyBTZWUgPHJkYXI6Ly9w
cm9ibGVtLzUzODA2OTc+LiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBiZWhhdmlvciBjaGFu
Z2UgaW4gQ0ZOZXR3b3JrIHdoZXJlIHdpbGxTZW5kUmVxdWVzdCBnZXRzIGNhbGxlZCBtb3JlIG9m
dGVuLgogICAgIGlmICghcmVkaXJlY3RSZXNwb25zZSkKICAgICAgICAgcmV0dXJuIG5ld1JlcXVl
c3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205431</attachid>
            <date>2013-06-25 17:23:50 -0700</date>
            <delta_ts>2013-06-25 17:41:12 -0700</delta_ts>
            <desc>Patch v2 - Bigger patch, more shared code.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>17596</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZTZmYzdmLi5iZjhkMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTMtMDYtMjUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIERvY3VtZW50IFVSTCBpcyBub3QgdXBkYXRlZCBieSBIU1RTCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xNDI0MTI3MD4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTgwMDMKKyAgICAgICAgCisgICAgICAgIFBhdGNoIGJ5IEFsZXhleSBQcm9z
a3VyeWFrb3YgYW5kIEJyYWR5IEVpZHNvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTeW50aGVzaXplIGEgcmVzcG9uc2UgYW5kIHByb3Blcmx5IGhh
bmRsZSB3aWxsU2VuZFJlcXVlc3Qgd2hlbiB0aGUgVVJMIGNoYW5nZXMgaW4KKyAgICAgICAgYSB3
YXkgdGhhdCdzIHR5cGljYWwgZm9yIEhTVFMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9NYWNO
ZXR3b3JraW5nRXh0cmFzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL21hYy9NYWNOZXR3b3JraW5nRXh0cmFzLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tLgorICAgICAgICAo
V2ViQ29yZTo6c3ludGhlc2l6ZVJlZGlyZWN0UmVzcG9uc2VJZk5lY2Vzc2FyeSk6IFN5bnRoZXNp
emUgYSByZWRpcmVjdCByZXNwb25zZSBhbmQgd2hlbiB0aGUgVVJMIGNoYW5nZXMgaW4gYSB3YXkg
dGhhdCdzCisgICAgICAgICAgdHlwaWNhbCBmb3IgSFNUUyBjb25uZWN0aW9ucy4KKworICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bjp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKTogQ2FsbCBzeW50aGVzaXplUmVk
aXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAg
ICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29u
bmVjdGlvbjp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKTogRGl0dG8uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbTogVXBkYXRl
ICNpbXBvcnQgZm9yIHJlbmFtZWQgaGVhZGVyLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbTogRGl0dG8uCisKIDIwMTMtMDYtMjQgIFJ1dGgg
Rm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIHRoZSBtZWRpYUhh
c0F1ZGlvKCkgZnVuY3Rpb24gaW4gV0syCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjIxMWUyOC4uYzU0MTNlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAw
Nyw4ICsxMDA3LDYgQEAKIAkJMzdFMzUyNEIxMjQ1MEM1MjAwQkFGNUQ5IC8qIElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UzNTI0
QTEyNDUwQzUyMDBCQUY1RDkgLyogSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJMzdFMzUyNEQxMjQ1
MEM2NjAwQkFGNUQ5IC8qIElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzdFMzUyNEMxMjQ1MEM2NjAwQkFGNUQ5IC8qIElucHV0VHlwZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RjU2
N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc3MkIwOTUxNjUzNTg1NjAwMEE0
OUNBIC8qIFBvcHVwT3BlbmluZ09ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzdGODE4RkQwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNv
cmVVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzdGODE4RkIwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTM3RjgxOEZF
MEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJDb3JlVVJMUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Y4MThGQzBENjU3NjA2MDA1RTFGMDUg
LyogV2ViQ29yZVVSTFJlc3BvbnNlLm1tICovOyB9OwogCQkzN0ZENDI5ODExODM2ODQ2MDA5M0Mw
MjkgLyogVHJlZURlcHRoTGltaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDM3RkQ0Mjk3MTE4MzY4NDYwMDkzQzAyOSAvKiBUcmVlRGVwdGhMaW1pdC5o
ICovOyB9OwogCQkzQUIwMkQyQTEyRDRGOTE2MDBGQkI2OTQgLyogU3RvcmFnZVRyYWNrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBQjAyRDI4MTJE
NEY5MTYwMEZCQjY5NCAvKiBTdG9yYWdlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTNBQjAyRDJCMTJENEY5MTYwMEZCQjY5NCAvKiBT
dG9yYWdlVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzQUIwMkQyOTEyRDRGOTE2MDBGQkI2OTQgLyogU3RvcmFnZVRyYWNrZXIuY3BwICov
OyB9OwpAQCAtMTU4Miw2ICsxNTgwLDggQEAKIAkJNTE4OUYwMUQxMEIzN0JEOTAwRjNDNzM5IC8q
IEpTUG9wU3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTg5RjAxQjEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNw
cCAqLzsgfTsKIAkJNTE4OUYwMUUxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4OUYwMUMx
MEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5oICovOyB9OwogCQk1MTg5RjBERTEw
QjQ2QjBFMDBGM0M3MzkgLyogUG9wU3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg5RjBERDEwQjQ2QjBFMDBGM0M3MzkgLyogUG9w
U3RhdGVFdmVudC5jcHAgKi87IH07CisJCTUxOEM3NkVGMTc3QTY0NUQwMDBGRTBBOCAvKiBNYWNO
ZXR3b3JraW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MThDNzZFRDE3N0E2NDVEMDAwRkUwQTggLyogTWFjTmV0d29ya2luZ0V4dHJhcy5o
ICovOyB9OworCQk1MThDNzZGMDE3N0E2NDVEMDAwRkUwQTggLyogTWFjTmV0d29ya2luZ0V4dHJh
cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEM3
NkVFMTc3QTY0NUQwMDBGRTBBOCAvKiBNYWNOZXR3b3JraW5nRXh0cmFzLm1tICovOyB9OwogCQk1
MUEwNTIzMzEwNTg3NzRGMDBDQzlFOTUgLyogQ3JlZGVudGlhbFN0b3JhZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTA1MjMxMTA1ODc3NEYwMEND
OUU5NSAvKiBDcmVkZW50aWFsU3RvcmFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxQTA1MjM0MTA1ODc3NEYwMENDOUU5NSAvKiBDcmVkZW50
aWFsU3RvcmFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUEwNTIzMjEwNTg3NzRGMDBDQzlFOTUgLyogQ3JlZGVudGlhbFN0b3JhZ2UuY3BwICov
OyB9OwogCQk1MUEwNTI1NjEwNTg4NzQwMDBDQzlFOTUgLyogUHJvdGVjdGlvblNwYWNlSGFzaC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBMDUyNTUx
MDU4ODc0MDAwQ0M5RTk1IC8qIFByb3RlY3Rpb25TcGFjZUhhc2guaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzMxMyw4ICs3MzEzLDYgQEAKIAkJ
MzdERENEQTMxMzg0NTAxQzAwMDhCNzkzIC8qIE1IVE1MUGFyc2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1IVE1MUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTM3RTM1MjRBMTI0NTBDNTIwMEJBRjVEOSAvKiBJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzdFMzUyNEMxMjQ1MEM2NjAwQkFGNUQ5IC8qIElucHV0VHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnB1dFR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzdGODE4RkIwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVV
UkxSZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVVJM
UmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzdGODE4RkMwRDY1NzYw
NjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzdGQzk2REExMTA0RUQ3MTAwM0UxRkFEIC8qIFRyYWlsaW5nRmxvYXRz
Um9vdElubGluZUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFpbGlu
Z0Zsb2F0c1Jvb3RJbmxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdG
RDQyOTcxMTgzNjg0NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRyZWVEZXB0aExpbWl0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTNBQjAyRDI4MTJENEY5MTYwMEZCQjY5NCAvKiBTdG9yYWdlVHJhY2tlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlVHJhY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzk1Nyw2ICs3OTU1LDggQEAKIAkJNTE4OUYwMUIxMEIz
N0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1BvcFN0YXRlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTg5RjAxQzEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9wU3RhdGVFdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg5RjBERDEwQjQ2QjBFMDBGM0M3MzkgLyogUG9w
U3RhdGVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQb3BT
dGF0ZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE4Qzc2RUQxNzdB
NjQ1RDAwMEZFMEE4IC8qIE1hY05ldHdvcmtpbmdFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWFjTmV0d29ya2luZ0V4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MThDNzZFRTE3N0E2NDVEMDAwRkUwQTggLyogTWFjTmV0d29ya2luZ0V4dHJh
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1hY05ldHdvcmtp
bmdFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxOUZFMEExMERBRDQ0
NkUwMEEwOEYyMSAvKiBIVE1MQXR0cmlidXRlTmFtZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gSFRNTEF0dHJpYnV0ZU5hbWVzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTlGRTBBMjBEQUQ0NDZFMDBBMDhGMjEgLyogSFRNTFRhZ05hbWVzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhUTUxUYWdOYW1lcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTFBMDUyMzExMDU4Nzc0RjAwQ0M5RTk1IC8qIENyZWRlbnRpYWxTdG9yYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWRlbnRpYWxTdG9yYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNDUzNCw2ICsxNDUzNCw4IEBACiAJCQkJNTE0Qzc2NDQwQ0U5
MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFtTWFjLmggKi8sCiAJCQkJNTE0Qzc2NDUwQ0U5
MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFtTWFjLm1tICovLAogCQkJCTFBN0ZBNjQ3MERE
QTNDQkEwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllck1hYy5jcHAgKi8sCisJCQkJNTE4
Qzc2RUQxNzdBNjQ1RDAwMEZFMEE4IC8qIE1hY05ldHdvcmtpbmdFeHRyYXMuaCAqLywKKwkJCQk1
MThDNzZFRTE3N0E2NDVEMDAwRkUwQTggLyogTWFjTmV0d29ya2luZ0V4dHJhcy5tbSAqLywKIAkJ
CQk1MTRDNzY0NjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSAqLywKIAkJ
CQk1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVNYWMubW0gKi8sCiAJ
CQkJNTE0Qzc2NDkwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdE1hYy5tbSAqLywK
QEAgLTE0NTQ1LDggKzE0NTQ3LDYgQEAKIAkJCQlFMTgwODEwQzE2RkNFQ0RGMDBCODBEMDcgLyog
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbSAqLywKIAkJCQlFMTUyNTUxMzE2RkQy
MzRGMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLmggKi8sCiAJCQkJRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLywKLQkJCQkzN0Y4MThGQjBENjU3
NjA2MDA1RTFGMDUgLyogV2ViQ29yZVVSTFJlc3BvbnNlLmggKi8sCi0JCQkJMzdGODE4RkMwRDY1
NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIyMjY2LDYgKzIyMjY2LDcg
QEAKIAkJCQk4OTg3ODU4QjEyMkNBMjZBMDAzQUFCREEgLyogSlNEaXJlY3RvcnlFbnRyeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ4MzMxMjQ5NTQ3MjAwMkIzRDg2IC8qIEpTRGlyZWN0b3J5
RW50cnlTeW5jLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODU4RDEyMkNBMjZBMDAzQUFCREEg
LyogSlNEaXJlY3RvcnlSZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxOEM3NkVGMTc3QTY0
NUQwMDBGRTBBOCAvKiBNYWNOZXR3b3JraW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
OTNDNDgzNTEyNDk1NDcyMDAyQjNEODYgLyogSlNEaXJlY3RvcnlSZWFkZXJTeW5jLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTlEREM4MzA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE0OTRFREYwQTEyM0Y0QzAwRkRBRkMxIC8qIEpTRG9jdW1lbnRG
cmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzg2MSw3ICsyMzg2Miw2IEBACiAJCQkJRTE4
MDgxMEYxNkZDRUNERjAwQjgwRDA3IC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxNTI1NTE1MTZGRDIzNTAwMDNEN0FEQiAvKiBXZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRUIxNjk3MDlGODgwQzAwMDkxRjhGRiAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkzN0Y4MThGRDBENjU3NjA2MDA1RTFGMDUgLyogV2ViQ29yZVVS
TFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlGMDA4MjQ1RTU5MDAxRTlBQkMg
LyogV2ViQ29yZVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkRBREVGMEExOTVGREYwMEU1
Q0QxNCAvKiBXZWJGb250Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDIwRjZEMTA3RjQz
OEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtMjU3MDYs
NiArMjU3MDYsNyBAQAogCQkJCUI1OURENkEyMTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNThDRUI2RTExOTEz
NjFDMDAyQTY3OTAgLyogSlNTUUxUcmFuc2FjdGlvblN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjU1RDVBQTUxMTkxMzFGQzAwQkNDMzE1IC8qIEpTU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJh
Y2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE4Qzc2RjAxNzdBNjQ1RDAwMEZFMEE4IC8qIE1h
Y05ldHdvcmtpbmdFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCNTVENUFBOTExOTEzMjUw
MDBCQ0MzMTUgLyogSlNTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFFM0Y5RDYwREEwNUUxRDAwMjUwOTExIC8qIEpTU3RvcmFnZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUQwQzUxNjBEQUE5MEI3MDAzQjM4MzEgLyogSlNTdG9yYWdlQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjY4NDYsNyArMjY4NDcsNiBAQAogCQkJCUUxODA4MTBFMTZG
Q0VDREYwMEI4MEQwNyAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE1MjU1MTYxNkZEMjM1MDAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkz
RUIxNjk1MDlGODgwQjAwMDkxRjhGRiAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJMzdGODE4RkUwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNw
b25zZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QjA3MDgyNDVFNTkwMDFFOUFCQyAvKiBX
ZWJDb3JlVmlldy5tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2REFERkEwQTE5NjAyQjAwRTVDRDE0
IC8qIFdlYkZvbnRDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUM4MTA0MkQzMkYw
MDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvTWFjTmV0d29ya2luZ0V4dHJhcy5o
CnNpbWlsYXJpdHkgaW5kZXggODYlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9NYWNOZXR3b3JraW5nRXh0cmFzLmgKaW5kZXggZDc2NmI5
Ni4uM2EwNzVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvTWFjTmV0d29ya2luZ0V4dHJhcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMywxNCBA
QCB0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKIC0gKENG
VVJMUmVzcG9uc2VSZWYpX0NGVVJMUmVzcG9uc2U7CiAtICh2b2lkKV9zZXRNSU1FVHlwZTooTlNT
dHJpbmcgKil0eXBlOwogQGVuZAorCitAY2xhc3MgTlNVUkxDb25uZWN0aW9uOworQGNsYXNzIE5T
VVJMUmVxdWVzdDsKK0BjbGFzcyBOU1VSTFJlc3BvbnNlOworCituYW1lc3BhY2UgV2ViQ29yZSB7
Cit2b2lkIHN5bnRoZXNpemVSZWRpcmVjdFJlc3BvbnNlSWZOZWNlc3NhcnkoTlNVUkxDb25uZWN0
aW9uICosIE5TVVJMUmVxdWVzdCAqbmV3UmVxdWVzdCwgTlNVUkxSZXNwb25zZSAqKnJlZGlyZWN0
UmVzcG9uc2UpOworfQogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL01hY05ldHdvcmtpbmdFeHRy
YXMubW0Kc2ltaWxhcml0eSBpbmRleCA5MSUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCnJlbmFtZSB0byBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9NYWNOZXR3b3JraW5nRXh0cmFzLm1tCmluZGV4
IDhhODNlYzAuLmIyOWI5NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9NYWNOZXR3b3JraW5nRXh0cmFzLm1tCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw3
ICsyNyw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJDb3JlVVJM
UmVzcG9uc2UuaCIKKyNpbXBvcnQgIk1hY05ldHdvcmtpbmdFeHRyYXMuaCIKIAogI2ltcG9ydCAi
TUlNRVR5cGVSZWdpc3RyeS5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCkBAIC0zMjMsNCAr
MzIzLDIxIEBAIHZvaWQgYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeShDRlVSTFJlc3BvbnNlUmVm
IGNmUmVzcG9uc2UpCiAgICAgICAgIHdrU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKGNmUmVzcG9u
c2UsIHJlc3VsdC5nZXQoKSk7CiB9CiAKKyNpZmRlZiBfX09CSkNfXwordm9pZCBzeW50aGVzaXpl
UmVkaXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5KE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwg
TlNVUkxSZXF1ZXN0ICpuZXdSZXF1ZXN0LCBOU1VSTFJlc3BvbnNlICoqcmVkaXJlY3RSZXNwb25z
ZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlZGlyZWN0UmVzcG9uc2UsIHJlZGlyZWN0UmVzcG9u
c2UpOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDkwCisgICAgVU5V
U0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShuZXdSZXF1ZXN0KTsKKyNl
bHNlCisgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzE0MjQxMjcwPjogU3ludGhlc2l6ZSBhIHJlc3Bv
bnNlIGZvciBIU1RTLgorICAgIGlmICghcmVkaXJlY3RSZXNwb25zZSAmJiAhW1tbbmV3UmVxdWVz
dCBVUkxdIHNjaGVtZV0gaXNFcXVhbFRvU3RyaW5nOltbW2Nvbm5lY3Rpb24gY3VycmVudFJlcXVl
c3RdIFVSTF0gc2NoZW1lXV0pIHsKKyAgICAgICAgTlNEaWN0aW9uYXJ5ICpzeW50aGVzaXplZFJl
c3BvbnNlSGVhZGVyRmllbGRzID0gQHsgQCJMb2NhdGlvbiI6IFtbbmV3UmVxdWVzdCBVUkxdIGFi
c29sdXRlU3RyaW5nXSwgQCJDYWNoZS1Db250cm9sIjogQCJuby1zdG9yZSIgfTsKKyAgICAgICAg
KnJlZGlyZWN0UmVzcG9uc2UgPSBbW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhV
Ukw6W1tjb25uZWN0aW9uIGN1cnJlbnRSZXF1ZXN0XSBVUkxdIHN0YXR1c0NvZGU6MzAyIEhUVFBW
ZXJzaW9uOihOU1N0cmluZyAqKWtDRkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpzeW50aGVz
aXplZFJlc3BvbnNlSGVhZGVyRmllbGRzXSBhdXRvcmVsZWFzZV07CisgICAgfQorI2VuZGlmCit9
CisjZW5kaWYgLy8gX19PQkpDX18KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCA4NTU5NzBmLi45
MzBiM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9S
ZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAiTG9n
Z2luZy5oIgogI2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2ltcG9ydCAiTmV0d29ya2lu
Z0NvbnRleHQuaCIKKyNpbXBvcnQgIk1hY05ldHdvcmtpbmdFeHRyYXMuaCIKICNpbXBvcnQgIlBh
Z2UuaCIKICNpbXBvcnQgIlJlc291cmNlRXJyb3IuaCIKICNpbXBvcnQgIlJlc291cmNlUmVzcG9u
c2UuaCIKQEAgLTUxLDcgKzUyLDYgQEAKICNpbXBvcnQgIldlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiU3luY2hyb25vdXNMb2FkZXJDbGll
bnQuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbXBvcnQgIldlYkNv
cmVVUkxSZXNwb25zZS5oIgogI2ltcG9ydCA8d3RmL1NjaGVkdWxlUGFpci5oPgogI2ltcG9ydCA8
d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNw
b25zZU1hYy5tbQppbmRleCA5N2ZjZjg3Li41N2M4N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMubW0K
QEAgLTI3LDcgKzI3LDcgQEAKICNpbXBvcnQgIlJlc291cmNlUmVzcG9uc2UuaCIKIAogI2ltcG9y
dCAiSFRUUFBhcnNlcnMuaCIKLSNpbXBvcnQgIldlYkNvcmVVUkxSZXNwb25zZS5oIgorI2ltcG9y
dCAiTWFjTmV0d29ya2luZ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxsaW1pdHM+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQppbmRleCAwYjFlMGFm
Li4xNTMxN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0K
QEAgLTMxLDEyICszMSwxMiBAQAogI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIK
ICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uTWFjLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1w
b3J0ICJNYWNOZXR3b3JraW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRsZS5oIgog
I2ltcG9ydCAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKICNpbXBvcnQgIlJlc291cmNlUmVxdWVz
dC5oIgogI2ltcG9ydCAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVy
LmgiCi0jaW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKIAogQGludGVyZmFjZSBOU1VSTFJl
cXVlc3QgKERldGFpbHMpCiAtIChpZClfcHJvcGVydHlGb3JLZXk6KE5TU3RyaW5nICopa2V5OwpA
QCAtNjYsNiArNjYsOCBAQCAtIChOU1VSTFJlcXVlc3QgKiljb25uZWN0aW9uOihOU1VSTENvbm5l
Y3Rpb24gKiljb25uZWN0aW9uIHdpbGxTZW5kUmVxdWVzdDooTlNVUgogCiAgICAgaWYgKCFtX2hh
bmRsZSkKICAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHN5bnRoZXNpemVSZWRpcmVjdFJlc3Bv
bnNlSWZOZWNlc3NhcnkoY29ubmVjdGlvbiwgbmV3UmVxdWVzdCwgJnJlZGlyZWN0UmVzcG9uc2Up
OwogICAgIAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTM4MDY5Nz4uIFRoaXMgaXMgYSB3
b3JrYXJvdW5kIGZvciBhIGJlaGF2aW9yIGNoYW5nZSBpbiBDRk5ldHdvcmsgd2hlcmUgd2lsbFNl
bmRSZXF1ZXN0IGdldHMgY2FsbGVkIG1vcmUgb2Z0ZW4uCiAgICAgaWYgKCFyZWRpcmVjdFJlc3Bv
bnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLm1tCmluZGV4IGM2OTAxNWEuLjM3NGFiNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
bW0KQEAgLTMxLDEyICszMSwxMiBAQAogI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uu
aCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uTWFjLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisj
aW1wb3J0ICJNYWNOZXR3b3JraW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRsZS5o
IgogI2ltcG9ydCAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKICNpbXBvcnQgIlJlc291cmNlUmVx
dWVzdC5oIgogI2ltcG9ydCAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2ltcG9ydCAiU2hhcmVkQnVm
ZmVyLmgiCi0jaW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAKIEBpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKQpAQCAtMTA5LDYg
KzEwOSw4IEBAIC0gKE5TVVJMUmVxdWVzdCAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvbm5lY3Rpb24gd2lsbFNlbmRSZXF1ZXN0OihOU1VSCiAgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7CiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwogCisgICAgc3ludGhlc2l6ZVJl
ZGlyZWN0UmVzcG9uc2VJZk5lY2Vzc2FyeShjb25uZWN0aW9uLCBuZXdSZXF1ZXN0LCAmcmVkaXJl
Y3RSZXNwb25zZSk7CisKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzUzODA2OTc+LiBUaGlz
IGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBiZWhhdmlvciBjaGFuZ2UgaW4gQ0ZOZXR3b3JrIHdoZXJl
IHdpbGxTZW5kUmVxdWVzdCBnZXRzIGNhbGxlZCBtb3JlIG9mdGVuLgogICAgIGlmICghcmVkaXJl
Y3RSZXNwb25zZSkKICAgICAgICAgcmV0dXJuIG5ld1JlcXVlc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205432</attachid>
            <date>2013-06-25 17:41:12 -0700</date>
            <delta_ts>2013-06-25 18:49:16 -0700</delta_ts>
            <desc>Patch v3 - Cleaner</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>17687</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZTZmYzdmLi5iZjhkMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTMtMDYtMjUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIERvY3VtZW50IFVSTCBpcyBub3QgdXBkYXRlZCBieSBIU1RTCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xNDI0MTI3MD4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTgwMDMKKyAgICAgICAgCisgICAgICAgIFBhdGNoIGJ5IEFsZXhleSBQcm9z
a3VyeWFrb3YgYW5kIEJyYWR5IEVpZHNvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTeW50aGVzaXplIGEgcmVzcG9uc2UgYW5kIHByb3Blcmx5IGhh
bmRsZSB3aWxsU2VuZFJlcXVlc3Qgd2hlbiB0aGUgVVJMIGNoYW5nZXMgaW4KKyAgICAgICAgYSB3
YXkgdGhhdCdzIHR5cGljYWwgZm9yIEhTVFMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9NYWNO
ZXR3b3JraW5nRXh0cmFzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL21hYy9NYWNOZXR3b3JraW5nRXh0cmFzLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tLgorICAgICAgICAo
V2ViQ29yZTo6c3ludGhlc2l6ZVJlZGlyZWN0UmVzcG9uc2VJZk5lY2Vzc2FyeSk6IFN5bnRoZXNp
emUgYSByZWRpcmVjdCByZXNwb25zZSBhbmQgd2hlbiB0aGUgVVJMIGNoYW5nZXMgaW4gYSB3YXkg
dGhhdCdzCisgICAgICAgICAgdHlwaWNhbCBmb3IgSFNUUyBjb25uZWN0aW9ucy4KKworICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bjp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKTogQ2FsbCBzeW50aGVzaXplUmVk
aXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAg
ICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29u
bmVjdGlvbjp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKTogRGl0dG8uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbTogVXBkYXRl
ICNpbXBvcnQgZm9yIHJlbmFtZWQgaGVhZGVyLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbTogRGl0dG8uCisKIDIwMTMtMDYtMjQgIFJ1dGgg
Rm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIHRoZSBtZWRpYUhh
c0F1ZGlvKCkgZnVuY3Rpb24gaW4gV0syCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjIxMWUyOC4uYzU0MTNlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAw
Nyw4ICsxMDA3LDYgQEAKIAkJMzdFMzUyNEIxMjQ1MEM1MjAwQkFGNUQ5IC8qIElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UzNTI0
QTEyNDUwQzUyMDBCQUY1RDkgLyogSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJMzdFMzUyNEQxMjQ1
MEM2NjAwQkFGNUQ5IC8qIElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzdFMzUyNEMxMjQ1MEM2NjAwQkFGNUQ5IC8qIElucHV0VHlwZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RjU2
N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc3MkIwOTUxNjUzNTg1NjAwMEE0
OUNBIC8qIFBvcHVwT3BlbmluZ09ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzdGODE4RkQwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNv
cmVVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzdGODE4RkIwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTM3RjgxOEZF
MEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJDb3JlVVJMUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Y4MThGQzBENjU3NjA2MDA1RTFGMDUg
LyogV2ViQ29yZVVSTFJlc3BvbnNlLm1tICovOyB9OwogCQkzN0ZENDI5ODExODM2ODQ2MDA5M0Mw
MjkgLyogVHJlZURlcHRoTGltaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDM3RkQ0Mjk3MTE4MzY4NDYwMDkzQzAyOSAvKiBUcmVlRGVwdGhMaW1pdC5o
ICovOyB9OwogCQkzQUIwMkQyQTEyRDRGOTE2MDBGQkI2OTQgLyogU3RvcmFnZVRyYWNrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBQjAyRDI4MTJE
NEY5MTYwMEZCQjY5NCAvKiBTdG9yYWdlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTNBQjAyRDJCMTJENEY5MTYwMEZCQjY5NCAvKiBT
dG9yYWdlVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzQUIwMkQyOTEyRDRGOTE2MDBGQkI2OTQgLyogU3RvcmFnZVRyYWNrZXIuY3BwICov
OyB9OwpAQCAtMTU4Miw2ICsxNTgwLDggQEAKIAkJNTE4OUYwMUQxMEIzN0JEOTAwRjNDNzM5IC8q
IEpTUG9wU3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTg5RjAxQjEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNw
cCAqLzsgfTsKIAkJNTE4OUYwMUUxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4OUYwMUMx
MEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5oICovOyB9OwogCQk1MTg5RjBERTEw
QjQ2QjBFMDBGM0M3MzkgLyogUG9wU3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg5RjBERDEwQjQ2QjBFMDBGM0M3MzkgLyogUG9w
U3RhdGVFdmVudC5jcHAgKi87IH07CisJCTUxOEM3NkVGMTc3QTY0NUQwMDBGRTBBOCAvKiBNYWNO
ZXR3b3JraW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MThDNzZFRDE3N0E2NDVEMDAwRkUwQTggLyogTWFjTmV0d29ya2luZ0V4dHJhcy5o
ICovOyB9OworCQk1MThDNzZGMDE3N0E2NDVEMDAwRkUwQTggLyogTWFjTmV0d29ya2luZ0V4dHJh
cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEM3
NkVFMTc3QTY0NUQwMDBGRTBBOCAvKiBNYWNOZXR3b3JraW5nRXh0cmFzLm1tICovOyB9OwogCQk1
MUEwNTIzMzEwNTg3NzRGMDBDQzlFOTUgLyogQ3JlZGVudGlhbFN0b3JhZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTA1MjMxMTA1ODc3NEYwMEND
OUU5NSAvKiBDcmVkZW50aWFsU3RvcmFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxQTA1MjM0MTA1ODc3NEYwMENDOUU5NSAvKiBDcmVkZW50
aWFsU3RvcmFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUEwNTIzMjEwNTg3NzRGMDBDQzlFOTUgLyogQ3JlZGVudGlhbFN0b3JhZ2UuY3BwICov
OyB9OwogCQk1MUEwNTI1NjEwNTg4NzQwMDBDQzlFOTUgLyogUHJvdGVjdGlvblNwYWNlSGFzaC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBMDUyNTUx
MDU4ODc0MDAwQ0M5RTk1IC8qIFByb3RlY3Rpb25TcGFjZUhhc2guaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzMxMyw4ICs3MzEzLDYgQEAKIAkJ
MzdERENEQTMxMzg0NTAxQzAwMDhCNzkzIC8qIE1IVE1MUGFyc2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1IVE1MUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTM3RTM1MjRBMTI0NTBDNTIwMEJBRjVEOSAvKiBJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzdFMzUyNEMxMjQ1MEM2NjAwQkFGNUQ5IC8qIElucHV0VHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnB1dFR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzdGODE4RkIwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVV
UkxSZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVVJM
UmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzdGODE4RkMwRDY1NzYw
NjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzdGQzk2REExMTA0RUQ3MTAwM0UxRkFEIC8qIFRyYWlsaW5nRmxvYXRz
Um9vdElubGluZUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFpbGlu
Z0Zsb2F0c1Jvb3RJbmxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdG
RDQyOTcxMTgzNjg0NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRyZWVEZXB0aExpbWl0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTNBQjAyRDI4MTJENEY5MTYwMEZCQjY5NCAvKiBTdG9yYWdlVHJhY2tlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlVHJhY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzk1Nyw2ICs3OTU1LDggQEAKIAkJNTE4OUYwMUIxMEIz
N0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1BvcFN0YXRlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTg5RjAxQzEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9wU3RhdGVFdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg5RjBERDEwQjQ2QjBFMDBGM0M3MzkgLyogUG9w
U3RhdGVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQb3BT
dGF0ZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE4Qzc2RUQxNzdB
NjQ1RDAwMEZFMEE4IC8qIE1hY05ldHdvcmtpbmdFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWFjTmV0d29ya2luZ0V4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MThDNzZFRTE3N0E2NDVEMDAwRkUwQTggLyogTWFjTmV0d29ya2luZ0V4dHJh
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1hY05ldHdvcmtp
bmdFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxOUZFMEExMERBRDQ0
NkUwMEEwOEYyMSAvKiBIVE1MQXR0cmlidXRlTmFtZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gSFRNTEF0dHJpYnV0ZU5hbWVzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTlGRTBBMjBEQUQ0NDZFMDBBMDhGMjEgLyogSFRNTFRhZ05hbWVzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhUTUxUYWdOYW1lcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTFBMDUyMzExMDU4Nzc0RjAwQ0M5RTk1IC8qIENyZWRlbnRpYWxTdG9yYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWRlbnRpYWxTdG9yYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNDUzNCw2ICsxNDUzNCw4IEBACiAJCQkJNTE0Qzc2NDQwQ0U5
MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFtTWFjLmggKi8sCiAJCQkJNTE0Qzc2NDUwQ0U5
MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFtTWFjLm1tICovLAogCQkJCTFBN0ZBNjQ3MERE
QTNDQkEwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllck1hYy5jcHAgKi8sCisJCQkJNTE4
Qzc2RUQxNzdBNjQ1RDAwMEZFMEE4IC8qIE1hY05ldHdvcmtpbmdFeHRyYXMuaCAqLywKKwkJCQk1
MThDNzZFRTE3N0E2NDVEMDAwRkUwQTggLyogTWFjTmV0d29ya2luZ0V4dHJhcy5tbSAqLywKIAkJ
CQk1MTRDNzY0NjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSAqLywKIAkJ
CQk1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVNYWMubW0gKi8sCiAJ
CQkJNTE0Qzc2NDkwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdE1hYy5tbSAqLywK
QEAgLTE0NTQ1LDggKzE0NTQ3LDYgQEAKIAkJCQlFMTgwODEwQzE2RkNFQ0RGMDBCODBEMDcgLyog
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbSAqLywKIAkJCQlFMTUyNTUxMzE2RkQy
MzRGMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLmggKi8sCiAJCQkJRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLywKLQkJCQkzN0Y4MThGQjBENjU3
NjA2MDA1RTFGMDUgLyogV2ViQ29yZVVSTFJlc3BvbnNlLmggKi8sCi0JCQkJMzdGODE4RkMwRDY1
NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIyMjY2LDYgKzIyMjY2LDcg
QEAKIAkJCQk4OTg3ODU4QjEyMkNBMjZBMDAzQUFCREEgLyogSlNEaXJlY3RvcnlFbnRyeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ4MzMxMjQ5NTQ3MjAwMkIzRDg2IC8qIEpTRGlyZWN0b3J5
RW50cnlTeW5jLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODU4RDEyMkNBMjZBMDAzQUFCREEg
LyogSlNEaXJlY3RvcnlSZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxOEM3NkVGMTc3QTY0
NUQwMDBGRTBBOCAvKiBNYWNOZXR3b3JraW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
OTNDNDgzNTEyNDk1NDcyMDAyQjNEODYgLyogSlNEaXJlY3RvcnlSZWFkZXJTeW5jLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTlEREM4MzA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE0OTRFREYwQTEyM0Y0QzAwRkRBRkMxIC8qIEpTRG9jdW1lbnRG
cmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzg2MSw3ICsyMzg2Miw2IEBACiAJCQkJRTE4
MDgxMEYxNkZDRUNERjAwQjgwRDA3IC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxNTI1NTE1MTZGRDIzNTAwMDNEN0FEQiAvKiBXZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRUIxNjk3MDlGODgwQzAwMDkxRjhGRiAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkzN0Y4MThGRDBENjU3NjA2MDA1RTFGMDUgLyogV2ViQ29yZVVS
TFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlGMDA4MjQ1RTU5MDAxRTlBQkMg
LyogV2ViQ29yZVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkRBREVGMEExOTVGREYwMEU1
Q0QxNCAvKiBXZWJGb250Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDIwRjZEMTA3RjQz
OEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtMjU3MDYs
NiArMjU3MDYsNyBAQAogCQkJCUI1OURENkEyMTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNThDRUI2RTExOTEz
NjFDMDAyQTY3OTAgLyogSlNTUUxUcmFuc2FjdGlvblN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjU1RDVBQTUxMTkxMzFGQzAwQkNDMzE1IC8qIEpTU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJh
Y2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE4Qzc2RjAxNzdBNjQ1RDAwMEZFMEE4IC8qIE1h
Y05ldHdvcmtpbmdFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCNTVENUFBOTExOTEzMjUw
MDBCQ0MzMTUgLyogSlNTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFFM0Y5RDYwREEwNUUxRDAwMjUwOTExIC8qIEpTU3RvcmFnZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUQwQzUxNjBEQUE5MEI3MDAzQjM4MzEgLyogSlNTdG9yYWdlQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjY4NDYsNyArMjY4NDcsNiBAQAogCQkJCUUxODA4MTBFMTZG
Q0VDREYwMEI4MEQwNyAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE1MjU1MTYxNkZEMjM1MDAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkz
RUIxNjk1MDlGODgwQjAwMDkxRjhGRiAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJMzdGODE4RkUwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNw
b25zZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QjA3MDgyNDVFNTkwMDFFOUFCQyAvKiBX
ZWJDb3JlVmlldy5tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2REFERkEwQTE5NjAyQjAwRTVDRDE0
IC8qIFdlYkZvbnRDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUM4MTA0MkQzMkYw
MDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvTWFjTmV0d29ya2luZ0V4dHJhcy5o
CnNpbWlsYXJpdHkgaW5kZXggODUlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9NYWNOZXR3b3JraW5nRXh0cmFzLmgKaW5kZXggZDc2NmI5
Ni4uM2Y3ZTI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvTWFjTmV0d29ya2luZ0V4dHJhcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMywxNSBA
QCB0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKIC0gKENG
VVJMUmVzcG9uc2VSZWYpX0NGVVJMUmVzcG9uc2U7CiAtICh2b2lkKV9zZXRNSU1FVHlwZTooTlNT
dHJpbmcgKil0eXBlOwogQGVuZAotI2VuZGlmCisKK0BjbGFzcyBOU1VSTENvbm5lY3Rpb247CitA
Y2xhc3MgTlNVUkxSZXF1ZXN0OworQGNsYXNzIE5TVVJMUmVzcG9uc2U7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK05TVVJMUmVzcG9uc2UgKnN5bnRoZXNpemVSZWRpcmVjdFJlc3BvbnNlSWZOZWNl
c3NhcnkoTlNVUkxDb25uZWN0aW9uICosIE5TVVJMUmVxdWVzdCAqbmV3UmVxdWVzdCwgTlNVUkxS
ZXNwb25zZSAqcmVkaXJlY3RSZXNwb25zZSk7Cit9CisjZW5kaWYgLy8gX19PQkpDX18KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVz
cG9uc2VSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvTWFjTmV0d29ya2luZ0V4dHJhcy5tbQpzaW1pbGFyaXR5IGluZGV4IDkyJQpyZW5hbWUg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9u
c2UubW0KcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL01hY05l
dHdvcmtpbmdFeHRyYXMubW0KaW5kZXggOGE4M2VjMC4uMDZmNzgxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL01hY05ldHdvcmtpbmdFeHRy
YXMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAw
OSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDcgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcu
aCIKLSNpbXBvcnQgIldlYkNvcmVVUkxSZXNwb25zZS5oIgorI2ltcG9ydCAiTWFjTmV0d29ya2lu
Z0V4dHJhcy5oIgogCiAjaW1wb3J0ICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJVVElV
dGlsaXRpZXMuaCIKQEAgLTMyMyw0ICszMjMsMjAgQEAgdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVj
ZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKICAgICAgICAgd2tTZXRDRlVSTFJl
c3BvbnNlTUlNRVR5cGUoY2ZSZXNwb25zZSwgcmVzdWx0LmdldCgpKTsKIH0KIAorTlNVUkxSZXNw
b25zZSAqc3ludGhlc2l6ZVJlZGlyZWN0UmVzcG9uc2VJZk5lY2Vzc2FyeShOU1VSTENvbm5lY3Rp
b24gKmNvbm5lY3Rpb24sIE5TVVJMUmVxdWVzdCAqbmV3UmVxdWVzdCwgTlNVUkxSZXNwb25zZSAq
cmVkaXJlY3RSZXNwb25zZSkKK3sKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTA5MAorICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0o
bmV3UmVxdWVzdCk7CisgICAgcmV0dXJuIHJlZGlyZWN0UmVzcG9uc2U7CisjZWxzZQorICAgIC8v
IDxyZGFyOi8vcHJvYmxlbS8xNDI0MTI3MD46IFN5bnRoZXNpemUgYSByZXNwb25zZSBmb3IgSFNU
Uy4KKyAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UgJiYgIVtbW25ld1JlcXVlc3QgVVJMXSBzY2hl
bWVdIGlzRXF1YWxUb1N0cmluZzpbW1tjb25uZWN0aW9uIGN1cnJlbnRSZXF1ZXN0XSBVUkxdIHNj
aGVtZV1dKSB7CisgICAgICAgIE5TRGljdGlvbmFyeSAqc3ludGhlc2l6ZWRSZXNwb25zZUhlYWRl
ckZpZWxkcyA9IEB7IEAiTG9jYXRpb24iOiBbW25ld1JlcXVlc3QgVVJMXSBhYnNvbHV0ZVN0cmlu
Z10sIEAiQ2FjaGUtQ29udHJvbCI6IEAibm8tc3RvcmUiIH07CisgICAgICAgIHJlZGlyZWN0UmVz
cG9uc2UgPSBbW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6W1tjb25uZWN0
aW9uIGN1cnJlbnRSZXF1ZXN0XSBVUkxdIHN0YXR1c0NvZGU6MzAyIEhUVFBWZXJzaW9uOihOU1N0
cmluZyAqKWtDRkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpzeW50aGVzaXplZFJlc3BvbnNl
SGVhZGVyRmllbGRzXSBhdXRvcmVsZWFzZV07CisgICAgfQorICAgIHJldHVybiByZWRpcmVjdFJl
c3BvbnNlOworI2VuZGlmCit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggODU1OTcwZi4uOTMw
YjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKICNpbXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbXBvcnQgIk5ldHdvcmtpbmdD
b250ZXh0LmgiCisjaW1wb3J0ICJNYWNOZXR3b3JraW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJQYWdl
LmgiCiAjaW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCiAjaW1wb3J0ICJSZXNvdXJjZVJlc3BvbnNl
LmgiCkBAIC01MSw3ICs1Miw2IEBACiAjaW1wb3J0ICJXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09w
ZXJhdGlvblF1ZXVlRGVsZWdhdGUuaCIKICNpbXBvcnQgIlN5bmNocm9ub3VzTG9hZGVyQ2xpZW50
LmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0ICJXZWJDb3Jl
VVJMUmVzcG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9TY2hlZHVsZVBhaXIuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L0Jhc2U2NC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9u
c2VNYWMubW0KaW5kZXggOTdmY2Y4Ny4uNTdjODdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlTWFjLm1tCkBA
IC0yNyw3ICsyNyw3IEBACiAjaW1wb3J0ICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAKICNpbXBvcnQg
IkhUVFBQYXJzZXJzLmgiCi0jaW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKKyNpbXBvcnQg
Ik1hY05ldHdvcmtpbmdFeHRyYXMuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8bGltaXRzPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0KaW5kZXggMGIxZTBhZi4u
NzY1ODVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCkBA
IC0zMSwxMiArMzEsMTIgQEAKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAj
aW1wb3J0ICJBdXRoZW50aWNhdGlvbk1hYy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9y
dCAiTWFjTmV0d29ya2luZ0V4dHJhcy5oIgogI2ltcG9ydCAiUmVzb3VyY2VIYW5kbGUuaCIKICNp
bXBvcnQgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW1wb3J0ICJSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbXBvcnQgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5o
IgotI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAKIEBpbnRlcmZhY2UgTlNVUkxSZXF1
ZXN0IChEZXRhaWxzKQogLSAoaWQpX3Byb3BlcnR5Rm9yS2V5OihOU1N0cmluZyAqKWtleTsKQEAg
LTY2LDYgKzY2LDggQEAgLSAoTlNVUkxSZXF1ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZWN0
aW9uICopY29ubmVjdGlvbiB3aWxsU2VuZFJlcXVlc3Q6KE5TVVIKIAogICAgIGlmICghbV9oYW5k
bGUpCiAgICAgICAgIHJldHVybiBuaWw7CisKKyAgICByZWRpcmVjdFJlc3BvbnNlID0gc3ludGhl
c2l6ZVJlZGlyZWN0UmVzcG9uc2VJZk5lY2Vzc2FyeShjb25uZWN0aW9uLCBuZXdSZXF1ZXN0LCBy
ZWRpcmVjdFJlc3BvbnNlKTsKICAgICAKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzUzODA2
OTc+LiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBiZWhhdmlvciBjaGFuZ2UgaW4gQ0ZOZXR3
b3JrIHdoZXJlIHdpbGxTZW5kUmVxdWVzdCBnZXRzIGNhbGxlZCBtb3JlIG9mdGVuLgogICAgIGlm
ICghcmVkaXJlY3RSZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQppbmRleCBjNjkwMTVhLi45ZGQyNGJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLm1tCkBAIC0zMSwxMiArMzEsMTIgQEAKICNpbXBvcnQgIkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbk1hYy5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiTWFjTmV0d29ya2luZ0V4dHJhcy5oIgogI2ltcG9ydCAi
UmVzb3VyY2VIYW5kbGUuaCIKICNpbXBvcnQgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW1w
b3J0ICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbXBvcnQgIlJlc291cmNlUmVzcG9uc2UuaCIKICNp
bXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgotI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAj
aW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogCiBAaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoRGV0
YWlscykKQEAgLTEwOSw2ICsxMDksOCBAQCAtIChOU1VSTFJlcXVlc3QgKiljb25uZWN0aW9uOihO
U1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTZW5kUmVxdWVzdDooTlNVUgogICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKIAor
ICAgIHJlZGlyZWN0UmVzcG9uc2UgPSBzeW50aGVzaXplUmVkaXJlY3RSZXNwb25zZUlmTmVjZXNz
YXJ5KGNvbm5lY3Rpb24sIG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworCiAgICAgLy8g
U2VlIDxyZGFyOi8vcHJvYmxlbS81MzgwNjk3Pi4gVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGEg
YmVoYXZpb3IgY2hhbmdlIGluIENGTmV0d29yayB3aGVyZSB3aWxsU2VuZFJlcXVlc3QgZ2V0cyBj
YWxsZWQgbW9yZSBvZnRlbi4KICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UpCiAgICAgICAgIHJl
dHVybiBuZXdSZXF1ZXN0Owo=
</data>
<flag name="review"
          id="226967"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="226970"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>