<?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>66018</bug_id>
          
          <creation_ts>2011-08-10 15:44:46 -0700</creation_ts>
          <short_desc>Plumb params CachedResourceLoader to SubresourceLoader</short_desc>
          <delta_ts>2011-08-29 12:27:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>61225</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>449446</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-08-10 15:44:46 -0700</bug_when>
    <thetext>....specifically: sendLoadCallbacks, shouldSniffContent, shouldBufferData.

These parameters are available to SubresourceLoaders, but are currently only used by DocumentThreadableLoader (or are defaulted based on the CachedResource type).  This plumbing will be needed when DocumentThreadableLoader becomes a CachedResourceClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449452</commentid>
    <comment_count>1</comment_count>
      <attachid>103546</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-08-10 15:48:20 -0700</bug_when>
    <thetext>Created attachment 103546
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453055</commentid>
    <comment_count>2</comment_count>
      <attachid>103546</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-08-18 08:28:21 -0700</bug_when>
    <thetext>Comment on attachment 103546
patch

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

&gt; Source/WebCore/loader/cache/CachedResourceLoader.h:114
&gt; -    CachedResource* requestResource(CachedResource::Type, ResourceRequest&amp;, const String&amp; charset, ResourceLoadPriority = ResourceLoadPriorityUnresolved, bool isPreload = false);
&gt; -    CachedResource* revalidateResource(CachedResource*, ResourceLoadPriority priority);
&gt; -    CachedResource* loadResource(CachedResource::Type, ResourceRequest&amp;, const String&amp; charset, ResourceLoadPriority);
&gt; -    void requestPreload(CachedResource::Type, ResourceRequest&amp; url, const String&amp; charset);
&gt; +    // FIXME: sendLoadCallbacks, shouldSniffContent, and shouldBufferData will always default to true currently.
&gt; +    // They are plumbed for http://bugs.webkit.org/show_bug.cgi?id=61225 .
&gt; +    CachedResource* requestResource(CachedResource::Type, ResourceRequest&amp;, const String&amp; charset, ResourceLoadPriority = ResourceLoadPriorityUnresolved, bool isPreload = false, bool sendLoadCallbacks = true, bool shouldContentSniff = true, bool shouldBufferData = true);
&gt; +    CachedResource* revalidateResource(CachedResource*, ResourceLoadPriority);
&gt; +    CachedResource* loadResource(CachedResource::Type, ResourceRequest&amp;, const String&amp; charset, ResourceLoadPriority, bool sendLoadCallbacks, bool shouldContentSniff, bool shouldBufferData);

The number of arguments is getting unwieldy and rows of boolean parameters are generally nasty. How about bundling them into a struct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453061</commentid>
    <comment_count>3</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-08-18 08:32:45 -0700</bug_when>
    <thetext>
&gt; The number of arguments is getting unwieldy and rows of boolean parameters are generally nasty. How about bundling them into a struct?

I had tried to do something similar with https://bugs.webkit.org/show_bug.cgi?id=63301, but that patch was perhaps too ambitious.  I&apos;ll look into reviving that idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457737</commentid>
    <comment_count>4</comment_count>
      <attachid>105399</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-08-26 13:32:09 -0700</bug_when>
    <thetext>Created attachment 105399
patch using ResourceLoaderOptions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457999</commentid>
    <comment_count>5</comment_count>
      <attachid>105399</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-08-28 00:06:12 -0700</bug_when>
    <thetext>Comment on attachment 105399
patch using ResourceLoaderOptions

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

r=me

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:175
&gt; +    userSheet-&gt;setResourceLoaderOptions(ResourceLoaderOptions(DoNotSendCallbacks, SniffContent, BufferData));
&gt; +    userSheet-&gt;load(this, /*incremental*/ false, SkipSecurityCheck);

Wouldn&apos;t it be better if ResourceLoaderOptions were made a parameter of load() instead of having a setter on CachedResource? They are never used separately. Maybe something to fix later, I realize it would require more refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458307</commentid>
    <comment_count>6</comment_count>
      <attachid>105504</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-08-29 11:19:18 -0700</bug_when>
    <thetext>Created attachment 105504
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458312</commentid>
    <comment_count>7</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-08-29 11:23:23 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 105399 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=105399&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:175
&gt; &gt; +    userSheet-&gt;setResourceLoaderOptions(ResourceLoaderOptions(DoNotSendCallbacks, SniffContent, BufferData));
&gt; &gt; +    userSheet-&gt;load(this, /*incremental*/ false, SkipSecurityCheck);
&gt; 
&gt; Wouldn&apos;t it be better if ResourceLoaderOptions were made a parameter of load() instead of having a setter on CachedResource? They are never used separately. Maybe something to fix later, I realize it would require more refactoring.

Antti and I discussed this on #webkit and concluded that it made sense to land as-is, but to think about ways to clean it up further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458362</commentid>
    <comment_count>8</comment_count>
      <attachid>105504</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 12:27:02 -0700</bug_when>
    <thetext>Comment on attachment 105504
Patch for landing

Clearing flags on attachment: 105504

Committed r94003: &lt;http://trac.webkit.org/changeset/94003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458363</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 12:27:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103546</attachid>
            <date>2011-08-10 15:48:20 -0700</date>
            <delta_ts>2011-08-26 13:32:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>crl.txt</filename>
            <type>text/plain</type>
            <size>12814</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNzk5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDgtMTAgIE5hdGUgQ2hh
cGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiB0aGUgcmVtYWluaW5n
IFN1YnJlc291cmNlTG9hZGVyIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgb3V0IHRvCisgICAgICAg
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoKS4gVGhpcyB3aWxsIGJlIG5l
ZWRlZAorICAgICAgICBpbiBvcmRlciBmb3IgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyIHRvIGJl
Y29tZSBhIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yIG9ubHkuCisKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkSW1hZ2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2U6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnNldFNlbmRSZXNv
dXJjZUxvYWRDYWxsYmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnNl
dFNob3VsZENvbnRlbnRTbmlmZik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6
c2V0U2hvdWxkQnVmZmVyRGF0YSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6bG9h
ZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOgorCiAy
MDExLTA4LTEwICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQ2hlY2sgdGhhdCB3ZSBkbyBub3QgbmVlZCBsYXlvdXQgYmVmb3JlIHRyeWluZyB0byBkaXJ0
eQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiA5Mjc5NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw5
ICsxNzAsMTAgQEAKICAgICBib29sIGluQ2FjaGUgPSBtZW1vcnlDYWNoZSgpLT5hZGQodXNlclNo
ZWV0KTsKICAgICBpZiAoIWluQ2FjaGUpCiAgICAgICAgIHVzZXJTaGVldC0+c2V0SW5DYWNoZSh0
cnVlKTsKLSAgICAKLSAgICB1c2VyU2hlZXQtPmxvYWQodGhpcywgLyppbmNyZW1lbnRhbCovIGZh
bHNlLCBTa2lwU2VjdXJpdHlDaGVjaywgLypzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKi8gZmFs
c2UpOwogCisgICAgdXNlclNoZWV0LT5zZXRTZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKGZhbHNl
KTsKKyAgICB1c2VyU2hlZXQtPmxvYWQodGhpcywgLyppbmNyZW1lbnRhbCovIGZhbHNlLCBTa2lw
U2VjdXJpdHlDaGVjayk7CisKICAgICBpZiAoIWluQ2FjaGUpCiAgICAgICAgIHVzZXJTaGVldC0+
c2V0SW5DYWNoZShmYWxzZSk7CiAgICAgCkBAIC0zMTEsNyArMzEyLDcgQEAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
LCBib29sIGZvclByZWxvYWQpCitDYWNoZWRSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkg
cHJpb3JpdHksIGJvb2wgZm9yUHJlbG9hZCwgYm9vbCBzZW5kTG9hZENhbGxiYWNrcywgYm9vbCBz
aG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQnVmZmVyRGF0YSkKIHsKICAgICBLVVJMIHVy
bCA9IHJlcXVlc3QudXJsKCk7CiAgICAgCkBAIC0zNDIsMTEgKzM0MywxMSBAQAogCiAgICAgc3dp
dGNoIChkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdCwgZm9yUHJlbG9h
ZCwgcmVzb3VyY2UpKSB7CiAgICAgY2FzZSBMb2FkOgotICAgICAgICByZXNvdXJjZSA9IGxvYWRS
ZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAgICAgIHJlc291
cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQsIHByaW9yaXR5LCBzZW5k
TG9hZENhbGxiYWNrcywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRCdWZmZXJEYXRhKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZWxvYWQ6CiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJl
bW92ZShyZXNvdXJjZSk7Ci0gICAgICAgIHJlc291cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHJl
cXVlc3QsIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVzb3Vy
Y2UodHlwZSwgcmVxdWVzdCwgY2hhcnNldCwgcHJpb3JpdHksIHNlbmRMb2FkQ2FsbGJhY2tzLCBz
aG91bGRDb250ZW50U25pZmYsIHNob3VsZEJ1ZmZlckRhdGEpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFJldmFsaWRhdGU6CiAgICAgICAgIHJlc291cmNlID0gcmV2YWxpZGF0ZVJlc291cmNl
KHJlc291cmNlLCBwcmlvcml0eSk7CkBAIC0zOTMsNyArMzk0LDcgQEAKICAgICByZXR1cm4gbmV3
UmVzb3VyY2U7CiB9CiAKLUNhY2hlZFJlc291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9h
ZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0
eSkKK0NhY2hlZFJlc291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
U3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgYm9vbCBzZW5k
TG9hZENhbGxiYWNrcywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQnVmZmVy
RGF0YSkKIHsKICAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKHJlcXVl
c3QudXJsKCkpKTsKICAgICAKQEAgLTQwOSw2ICs0MTAsOSBAQAogICAgICAgICByZXNvdXJjZS0+
c2V0SW5DYWNoZSh0cnVlKTsKICAgICAKICAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHBy
aW9yaXR5KTsKKyAgICByZXNvdXJjZS0+c2V0U2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyhzZW5k
TG9hZENhbGxiYWNrcyk7CisgICAgcmVzb3VyY2UtPnNldFNob3VsZENvbnRlbnRTbmlmZihzaG91
bGRDb250ZW50U25pZmYpOworICAgIHJlc291cmNlLT5zZXRTaG91bGRCdWZmZXJEYXRhKHNob3Vs
ZEJ1ZmZlckRhdGEpOwogICAgIHJlc291cmNlLT5sb2FkKHRoaXMpOwogICAgIAogICAgIGlmICgh
aW5DYWNoZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwCShyZXZpc2lvbiA5Mjc5NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAKIHZvaWQgQ2Fj
aGVkSW1hZ2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVy
KQogewogICAgIGlmICghY2FjaGVkUmVzb3VyY2VMb2FkZXIgfHwgY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmF1dG9Mb2FkSW1hZ2VzKCkpCi0gICAgICAgIENhY2hlZFJlc291cmNlOjpsb2FkKGNhY2hl
ZFJlc291cmNlTG9hZGVyLCB0cnVlLCBEb1NlY3VyaXR5Q2hlY2ssIHRydWUpOworICAgICAgICBD
YWNoZWRSZXNvdXJjZTo6bG9hZChjYWNoZWRSZXNvdXJjZUxvYWRlciwgdHJ1ZSwgRG9TZWN1cml0
eUNoZWNrKTsKICAgICBlbHNlCiAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmgJKHJldmlzaW9uIDkyNzk2KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNywxMCArMTA3LDEyIEBACiAg
ICAgYm9vbCBjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3Qg
S1VSTCYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBDYWNoZWRSZXNvdXJjZSogcmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3Jp
dHlVbnJlc29sdmVkLCBib29sIGlzUHJlbG9hZCA9IGZhbHNlKTsKLSAgICBDYWNoZWRSZXNvdXJj
ZSogcmV2YWxpZGF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlKiwgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgcHJpb3JpdHkpOwotICAgIENhY2hlZFJlc291cmNlKiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVz
b3VyY2VMb2FkUHJpb3JpdHkpOwotICAgIHZvaWQgcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYgdXJsLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwor
ICAgIC8vIEZJWE1FOiBzZW5kTG9hZENhbGxiYWNrcywgc2hvdWxkU25pZmZDb250ZW50LCBhbmQg
c2hvdWxkQnVmZmVyRGF0YSB3aWxsIGFsd2F5cyBkZWZhdWx0IHRvIHRydWUgY3VycmVudGx5Lgor
ICAgIC8vIFRoZXkgYXJlIHBsdW1iZWQgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYxMjI1IC4KKyAgICBDYWNoZWRSZXNvdXJjZSogcmVxdWVzdFJlc291cmNlKENh
Y2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJz
ZXQsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVk
LCBib29sIGlzUHJlbG9hZCA9IGZhbHNlLCBib29sIHNlbmRMb2FkQ2FsbGJhY2tzID0gdHJ1ZSwg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYgPSB0cnVlLCBib29sIHNob3VsZEJ1ZmZlckRhdGEgPSB0
cnVlKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmV2YWxpZGF0ZVJlc291cmNlKENhY2hlZFJlc291
cmNlKiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworICAgIENhY2hlZFJlc291cmNlKiBsb2FkUmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHksIGJvb2wgc2VuZExvYWRDYWxsYmFja3Ms
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZEJ1ZmZlckRhdGEpOworICAgIHZv
aWQgcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAKICAgICBlbnVtIFJldmFsaWRhdGlvblBvbGljeSB7
IFVzZSwgUmV2YWxpZGF0ZSwgUmVsb2FkLCBMb2FkIH07CiAgICAgUmV2YWxpZGF0aW9uUG9saWN5
IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3Vy
Y2VSZXF1ZXN0JiwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNv
dXJjZSkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHAJKHJldmlzaW9uIDkyNzk2KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsOCBA
QAogICAgICwgbV9pbkxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdChmYWxzZSkKICAgICAsIG1fcmVx
dWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllcihmYWxzZSkKICAgICAsIG1fc2VuZFJlc291cmNlTG9h
ZENhbGxiYWNrcyh0cnVlKQorICAgICwgbV9zaG91bGRDb250ZW50U25pZmYodHJ1ZSkKKyAgICAs
IG1fc2hvdWxkQnVmZmVyRGF0YSh0cnVlKQogICAgICwgbV9pbkNhY2hlKGZhbHNlKQogICAgICwg
bV9sb2FkaW5nKGZhbHNlKQogICAgICwgbV90eXBlKHR5cGUpCkBAIC0xMzEsMTEgKzEzMywxMCBA
QAogICAgICAgICBtX293bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyLT5yZW1vdmVDYWNoZWRSZXNv
dXJjZSh0aGlzKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJj
ZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5
Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjaywgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tz
KQordm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVk
UmVzb3VyY2VMb2FkZXIsIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2Vj
dXJpdHlDaGVjaykKIHsKLSAgICBtX3NlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MgPSBzZW5kUmVz
b3VyY2VMb2FkQ2FsbGJhY2tzOwogICAgIG1fbG9hZGluZyA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0
ID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpsb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLCB0aGlz
LCBpbmNyZW1lbnRhbCwgc2VjdXJpdHlDaGVjaywgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyk7
CisgICAgbV9yZXF1ZXN0ID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpsb2FkKGNhY2hlZFJlc291
cmNlTG9hZGVyLCB0aGlzLCBpbmNyZW1lbnRhbCwgc2VjdXJpdHlDaGVjaywgbV9zZW5kUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzLCBtX3Nob3VsZENvbnRlbnRTbmlmZiwgbV9zaG91bGRCdWZmZXJEYXRh
KTsKICAgICBpZiAobV9yZXF1ZXN0KSB7CiAgICAgICAgIG1fc3RhdHVzID0gUGVuZGluZzsKICAg
ICAgICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPmluY3JlbWVudFJlcXVlc3RDb3VudCh0aGlzKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCShy
ZXZpc2lvbiA5Mjc5NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw4ICs4NSw4IEBACiAgICAgQ2FjaGVkUmVzb3Vy
Y2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgVHlwZSk7CiAgICAgdmlydHVhbCB+Q2FjaGVkUmVz
b3VyY2UoKTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRl
ciogY2FjaGVkUmVzb3VyY2VMb2FkZXIpICB7IGxvYWQoY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGZh
bHNlLCBEb1NlY3VyaXR5Q2hlY2ssIHRydWUpOyB9Ci0gICAgdm9pZCBsb2FkKENhY2hlZFJlc291
cmNlTG9hZGVyKiwgYm9vbCBpbmNyZW1lbnRhbCwgU2VjdXJpdHlDaGVja1BvbGljeSwgYm9vbCBz
ZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRS
ZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIpICB7IGxvYWQoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIsIGZhbHNlLCBEb1NlY3VyaXR5Q2hlY2spOyB9CisgICAgdm9pZCBsb2FkKENhY2hl
ZFJlc291cmNlTG9hZGVyKiwgYm9vbCBpbmNyZW1lbnRhbCwgU2VjdXJpdHlDaGVja1BvbGljeSk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgeyB9CiAgICAg
dmlydHVhbCBTdHJpbmcgZW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQpAQCAt
MTk0LDYgKzE5NCw3IEBACiAgICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdHVzID09IENhbmNlbGVkOyB9CiAgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyBy
ZXR1cm4gKG1fc3RhdHVzID09IExvYWRFcnJvciB8fCBtX3N0YXR1cyA9PSBEZWNvZGVFcnJvcik7
IH0KIAorICAgIHZvaWQgc2V0U2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyhib29sIHNlbmRSZXNv
dXJjZUxvYWRDYWxsYmFja3MpIHsgbV9zZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzID0gc2VuZFJl
c291cmNlTG9hZENhbGxiYWNrczsgfQogICAgIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNr
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2VuZFJlc291cmNlTG9hZENhbGxiYWNrczsgfQogICAgIAog
ICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoKSB7IH0KQEAgLTIyNiw2ICsyMjcs
OSBAQAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZVRvUmV2YWxpZGF0ZSgpOwogICAgIHZvaWQgdXBk
YXRlUmVzcG9uc2VBZnRlclJldmFsaWRhdGlvbihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiB2YWxp
ZGF0aW5nUmVzcG9uc2UpOwogCisgICAgdm9pZCBzZXRTaG91bGRDb250ZW50U25pZmYoYm9vbCBz
aG91bGRDb250ZW50U25pZmYpIHsgbV9zaG91bGRDb250ZW50U25pZmYgPSBzaG91bGRDb250ZW50
U25pZmY7IH0KKyAgICB2b2lkIHNldFNob3VsZEJ1ZmZlckRhdGEoYm9vbCBzaG91bGRCdWZmZXJE
YXRhKSB7IG1fc2hvdWxkQnVmZmVyRGF0YSA9IHNob3VsZEJ1ZmZlckRhdGE7IH0KKwogcHJvdGVj
dGVkOgogICAgIHZvaWQgY2hlY2tOb3RpZnkoKTsKIApAQCAtMjcxLDYgKzI3NSw4IEBACiAgICAg
Ym9vbCBtX2luTGl2ZURlY29kZWRSZXNvdXJjZXNMaXN0IDogMTsKICAgICBib29sIG1fcmVxdWVz
dGVkRnJvbU5ldHdvcmtpbmdMYXllciA6IDE7CiAgICAgYm9vbCBtX3NlbmRSZXNvdXJjZUxvYWRD
YWxsYmFja3MgOiAxOworICAgIGJvb2wgbV9zaG91bGRDb250ZW50U25pZmYgOiAxOworICAgIGJv
b2wgbV9zaG91bGRCdWZmZXJEYXRhIDogMTsKIAogICAgIGJvb2wgbV9pbkNhY2hlIDogMTsKICAg
ICBib29sIG1fbG9hZGluZyA6IDE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAkocmV2aXNpb24gOTI3OTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQAogewogfQogCi1QYXNzT3duUHRyPENhY2hl
ZFJlc291cmNlUmVxdWVzdD4gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpsb2FkKENhY2hlZFJlc291
cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
LCBib29sIGluY3JlbWVudGFsLCBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2ssIGJv
b2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcykKK1Bhc3NPd25QdHI8Q2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0PiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIq
IGNhY2hlZFJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGJvb2wgaW5j
cmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjaywgYm9vbCBzZW5kUmVz
b3VyY2VMb2FkQ2FsbGJhY2tzLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRC
dWZmZXJEYXRhKQogewogICAgIE93blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3Qg
PSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNhY2hlZFJlc291cmNlTG9hZGVy
LCByZXNvdXJjZSwgaW5jcmVtZW50YWwpKTsKIApAQCAtMTI1LDcgKzEyNSw3IEBACiAgICAgcmVz
b3VyY2VSZXF1ZXN0LnNldFByaW9yaXR5KHByaW9yaXR5KTsKIAogICAgIFJlZlB0cjxTdWJyZXNv
dXJjZUxvYWRlcj4gbG9hZGVyID0gcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPnNjaGVkdWxlU3Vi
cmVzb3VyY2VMb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgpLT5mcmFtZSgpLAot
ICAgICAgICByZXF1ZXN0LmdldCgpLCByZXNvdXJjZVJlcXVlc3QsIHByaW9yaXR5LCBzZWN1cml0
eUNoZWNrLCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKTsKKyAgICAgICAgcmVxdWVzdC5nZXQo
KSwgcmVzb3VyY2VSZXF1ZXN0LCBwcmlvcml0eSwgc2VjdXJpdHlDaGVjaywgc2VuZFJlc291cmNl
TG9hZENhbGxiYWNrcywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRCdWZmZXJEYXRhKTsKICAg
ICBpZiAoIWxvYWRlciB8fCBsb2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpIHsKICAgICAg
ICAgLy8gRklYTUU6IFdoYXQgaWYgcmVzb3VyY2VzIGluIG90aGVyIGZyYW1lcyB3ZXJlIHdhaXRp
bmcgZm9yIHRoaXMgcmV2YWxpZGF0aW9uPwogICAgICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAi
Q2Fubm90IHN0YXJ0IGxvYWRpbmcgJyVzJyIsIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKS5sYXRp
bjEoKS5kYXRhKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24gOTI3OTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDcgKzQxLDcgQEAKIAogICAgIGNsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCA6IHBy
aXZhdGUgU3VicmVzb3VyY2VMb2FkZXJDbGllbnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3Rh
dGljIFBhc3NPd25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0PiBsb2FkKENhY2hlZFJlc291cmNl
TG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2UqLCBib29sIGluY3JlbWVudGFsLCBTZWN1cml0eUNoZWNr
UG9saWN5LCBib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MpOworICAgICAgICBzdGF0aWMg
UGFzc093blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3Q+IGxvYWQoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqLCBDYWNoZWRSZXNvdXJjZSosIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xp
Y3ksIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIGJvb2wgc2hvdWxkQnVmZmVyRGF0YSk7CiAgICAgICAgIH5DYWNoZWRSZXNvdXJjZVJlcXVl
c3QoKTsKIAogICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFJlc291cmNlTG9hZGVyOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105399</attachid>
            <date>2011-08-26 13:32:09 -0700</date>
            <delta_ts>2011-08-29 11:19:15 -0700</delta_ts>
            <desc>patch using ResourceLoaderOptions</desc>
            <filename>crl2.txt</filename>
            <type>text/plain</type>
            <size>13158</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzOTA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDgtMjYgIE5hdGUgQ2hh
cGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgb3V0IHRvIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoKS4K
KyAgICAgICAgVGhpcyB3aWxsIGJlIG5lZWRlZCBpbiBvcmRlciBmb3IgRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyIHRvIGJlY29tZSBhIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9y
IG9ubHkuCisKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2Fj
aGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2U6OnNldFJlc291cmNlTG9hZGVyT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6c2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5oOgorCiAyMDExLTA4LTI2ICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5j
b20+CiAKICAgICAgICAgQWRkIE1lZGlhUGxheWVyOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkgbWV0
aG9kIGZvciBhdWRpbyBzdHJlYW0gYWNjZXNzIGJ5IHRoZSBXZWIgQXVkaW8gQVBJLgpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCShyZXZpc2lvbiA5Mzg5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw5ICsxNzAsMTAg
QEAKICAgICBib29sIGluQ2FjaGUgPSBtZW1vcnlDYWNoZSgpLT5hZGQodXNlclNoZWV0KTsKICAg
ICBpZiAoIWluQ2FjaGUpCiAgICAgICAgIHVzZXJTaGVldC0+c2V0SW5DYWNoZSh0cnVlKTsKLSAg
ICAKLSAgICB1c2VyU2hlZXQtPmxvYWQodGhpcywgLyppbmNyZW1lbnRhbCovIGZhbHNlLCBTa2lw
U2VjdXJpdHlDaGVjaywgLypzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKi8gZmFsc2UpOwogCisg
ICAgdXNlclNoZWV0LT5zZXRSZXNvdXJjZUxvYWRlck9wdGlvbnMoUmVzb3VyY2VMb2FkZXJPcHRp
b25zKERvTm90U2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhKSk7CisgICAg
dXNlclNoZWV0LT5sb2FkKHRoaXMsIC8qaW5jcmVtZW50YWwqLyBmYWxzZSwgU2tpcFNlY3VyaXR5
Q2hlY2spOworCiAgICAgaWYgKCFpbkNhY2hlKQogICAgICAgICB1c2VyU2hlZXQtPnNldEluQ2Fj
aGUoZmFsc2UpOwogICAgIApAQCAtMzExLDcgKzMxMiw3IEBACiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLUNhY2hlZFJlc291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgYm9vbCBm
b3JQcmVsb2FkKQorQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
LCBib29sIGZvclByZWxvYWQsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICBLVVJMIHVybCA9IHJlcXVlc3QudXJsKCk7CiAgICAgCkBAIC0zNDIsMTEgKzM0Mywx
MSBAQAogCiAgICAgc3dpdGNoIChkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVx
dWVzdCwgZm9yUHJlbG9hZCwgcmVzb3VyY2UpKSB7CiAgICAgY2FzZSBMb2FkOgotICAgICAgICBy
ZXNvdXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBjaGFyc2V0LCBwcmlvcml0eSk7
CisgICAgICAgIHJlc291cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQs
IHByaW9yaXR5LCBvcHRpb25zKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZWxvYWQ6CiAg
ICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZSk7Ci0gICAgICAgIHJlc291cmNl
ID0gbG9hZFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAg
ICAgcmVzb3VyY2UgPSBsb2FkUmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgY2hhcnNldCwgcHJpb3Jp
dHksIG9wdGlvbnMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJldmFsaWRhdGU6CiAgICAg
ICAgIHJlc291cmNlID0gcmV2YWxpZGF0ZVJlc291cmNlKHJlc291cmNlLCBwcmlvcml0eSk7CkBA
IC0zOTMsNyArMzk0LDcgQEAKICAgICByZXR1cm4gbmV3UmVzb3VyY2U7CiB9CiAKLUNhY2hlZFJl
c291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFy
c2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlKiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUs
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJj
ZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRp
b25zKQogewogICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwocmVxdWVz
dC51cmwoKSkpOwogICAgIApAQCAtNDA5LDYgKzQxMCw3IEBACiAgICAgICAgIHJlc291cmNlLT5z
ZXRJbkNhY2hlKHRydWUpOwogICAgIAogICAgIHJlc291cmNlLT5zZXRMb2FkUHJpb3JpdHkocHJp
b3JpdHkpOworICAgIHJlc291cmNlLT5zZXRSZXNvdXJjZUxvYWRlck9wdGlvbnMob3B0aW9ucyk7
CiAgICAgcmVzb3VyY2UtPmxvYWQodGhpcyk7CiAgICAgCiAgICAgaWYgKCFpbkNhY2hlKSB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAJKHJldmlz
aW9uIDkzODk1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQAogdm9pZCBDYWNoZWRJbWFnZTo6bG9h
ZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiB7CiAgICAgaWYg
KCFjYWNoZWRSZXNvdXJjZUxvYWRlciB8fCBjYWNoZWRSZXNvdXJjZUxvYWRlci0+YXV0b0xvYWRJ
bWFnZXMoKSkKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIsIHRydWUsIERvU2VjdXJpdHlDaGVjaywgdHJ1ZSk7CisgICAgICAgIENhY2hlZFJlc291cmNl
Ojpsb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLCB0cnVlLCBEb1NlY3VyaXR5Q2hlY2spOwogICAg
IGVsc2UKICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24g
OTM4OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDEwICsxMDcsMTIgQEAKICAgICBib29sIGNoZWNr
SW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBLVVJMJikgY29uc3Q7
CiAgICAgCiBwcml2YXRlOgotICAgIENhY2hlZFJlc291cmNlKiByZXF1ZXN0UmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQs
IGJvb2wgaXNQcmVsb2FkID0gZmFsc2UpOwotICAgIENhY2hlZFJlc291cmNlKiByZXZhbGlkYXRl
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSk7
Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIGxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlv
cml0eSk7Ci0gICAgdm9pZCByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVz
b3VyY2VSZXF1ZXN0JiB1cmwsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CisgICAgLy8gRklYTUU6
IFRoZSBkZWZhdWx0IHZhbHVlIGZvciBSZXNvdXJjZUxvYWRlck9wdGlvbnMgd2lsbCBhbHdheXMg
YmUgdXNlZCBjdXJyZW50bHkuCisgICAgLy8gSXQgaXMgcGx1bWJlZCBmb3IgaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyMjUgLgorICAgIENhY2hlZFJlc291cmNlKiBy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQ
cmlvcml0eVVucmVzb2x2ZWQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UsIGNvbnN0IFJlc291cmNl
TG9hZGVyT3B0aW9ucyYgPSBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25p
ZmZDb250ZW50LCBCdWZmZXJEYXRhKSk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJldmFsaWRhdGVS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZSosIFJlc291cmNlTG9hZFByaW9yaXR5KTsKKyAgICBDYWNo
ZWRSZXNvdXJjZSogbG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5LCBjb25z
dCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKKyAgICB2b2lkIHJlcXVlc3RQcmVsb2FkKENhY2hl
ZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQp
OwogCiAgICAgZW51bSBSZXZhbGlkYXRpb25Qb2xpY3kgeyBVc2UsIFJldmFsaWRhdGUsIFJlbG9h
ZCwgTG9hZCB9OwogICAgIFJldmFsaWRhdGlvblBvbGljeSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Q
b2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZm9yUHJl
bG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UpIGNvbnN0OwpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZpc2lv
biA5Mzg5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDExICs5MiwxMSBAQAogICAgICwgbV9wcmVsb2FkUmVz
dWx0KFByZWxvYWROb3RSZWZlcmVuY2VkKQogICAgICwgbV9pbkxpdmVEZWNvZGVkUmVzb3VyY2Vz
TGlzdChmYWxzZSkKICAgICAsIG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllcihmYWxzZSkK
LSAgICAsIG1fc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyh0cnVlKQogICAgICwgbV9pbkNhY2hl
KGZhbHNlKQogICAgICwgbV9sb2FkaW5nKGZhbHNlKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAg
LCBtX3N0YXR1cyhQZW5kaW5nKQorICAgICwgbV9vcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZm
Q29udGVudCwgQnVmZmVyRGF0YSkKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX2RlbGV0ZWQoZmFs
c2UpCiAgICAgLCBtX2xydUluZGV4KDApCkBAIC0xMzEsMTEgKzEzMSwxMCBAQAogICAgICAgICBt
X293bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyLT5yZW1vdmVDYWNoZWRSZXNvdXJjZSh0aGlzKTsK
IH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2Fj
aGVkUmVzb3VyY2VMb2FkZXIsIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3kg
c2VjdXJpdHlDaGVjaywgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKQordm9pZCBDYWNo
ZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIsIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjaykK
IHsKLSAgICBtX3NlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MgPSBzZW5kUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzOwogICAgIG1fbG9hZGluZyA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ID0gQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0Ojpsb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLCB0aGlzLCBpbmNyZW1lbnRh
bCwgc2VjdXJpdHlDaGVjaywgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyk7CisgICAgbV9yZXF1
ZXN0ID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpsb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLCB0
aGlzLCBpbmNyZW1lbnRhbCwgc2VjdXJpdHlDaGVjaywgbV9vcHRpb25zKTsKICAgICBpZiAobV9y
ZXF1ZXN0KSB7CiAgICAgICAgIG1fc3RhdHVzID0gUGVuZGluZzsKICAgICAgICAgY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmluY3JlbWVudFJlcXVlc3RDb3VudCh0aGlzKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCShyZXZpc2lvbiA5Mzg5NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiUHVyZ2VQcmlvcml0eS5oIgor
I2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9h
ZFByaW9yaXR5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXNwb25zZS5oIgpAQCAtODUsOCArODYsOCBAQAogICAgIENhY2hlZFJlc291cmNlKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFR5cGUpOwogICAgIHZpcnR1YWwgfkNhY2hlZFJlc291cmNl
KCk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNh
Y2hlZFJlc291cmNlTG9hZGVyKSAgeyBsb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLCBmYWxzZSwg
RG9TZWN1cml0eUNoZWNrLCB0cnVlKTsgfQotICAgIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxv
YWRlciosIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3ksIGJvb2wgc2VuZFJl
c291cmNlTG9hZENhbGxiYWNrcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWQoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKSAgeyBsb2FkKGNhY2hlZFJlc291cmNlTG9h
ZGVyLCBmYWxzZSwgRG9TZWN1cml0eUNoZWNrKTsgfQorICAgIHZvaWQgbG9hZChDYWNoZWRSZXNv
dXJjZUxvYWRlciosIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3kpOwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYpIHsgfQogICAgIHZpcnR1
YWwgU3RyaW5nIGVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KQEAgLTE5Myw5
ICsxOTQsMTAgQEAKIAogICAgIGJvb2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX3N0
YXR1cyA9PSBDYW5jZWxlZDsgfQogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IHsgcmV0
dXJuIChtX3N0YXR1cyA9PSBMb2FkRXJyb3IgfHwgbV9zdGF0dXMgPT0gRGVjb2RlRXJyb3IpOyB9
Ci0KLSAgICBib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBt
X3NlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3M7IH0KICAgICAKKyAgICB2b2lkIHNldFJlc291cmNl
TG9hZGVyT3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9v
cHRpb25zID0gb3B0aW9uczsgfQorICAgIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygp
IGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJh
Y2tzOyB9CisgICAgCiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIHsgfQog
CiAgICAgdm9pZCBzZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcihDYWNoZWRSZXNvdXJjZUxv
YWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIpIHsgbV9vd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRl
ciA9IGNhY2hlZFJlc291cmNlTG9hZGVyOyB9CkBAIC0yNzAsNyArMjcyLDYgQEAKIAogICAgIGJv
b2wgbV9pbkxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdCA6IDE7CiAgICAgYm9vbCBtX3JlcXVlc3Rl
ZEZyb21OZXR3b3JraW5nTGF5ZXIgOiAxOwotICAgIGJvb2wgbV9zZW5kUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzIDogMTsKIAogICAgIGJvb2wgbV9pbkNhY2hlIDogMTsKICAgICBib29sIG1fbG9hZGlu
ZyA6IDE7CkBAIC0yNzgsNiArMjc5LDggQEAKICAgICB1bnNpZ25lZCBtX3R5cGUgOiAzOyAvLyBU
eXBlCiAgICAgdW5zaWduZWQgbV9zdGF0dXMgOiAzOyAvLyBTdGF0dXMKIAorICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CisKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBtX2Rl
bGV0ZWQ7CiAgICAgdW5zaWduZWQgbV9scnVJbmRleDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCShyZXZpc2lv
biA5Mzg5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBACiB7CiB9CiAKLVBhc3NP
d25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0PiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmxvYWQo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UsIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJp
dHlDaGVjaywgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKQorUGFzc093blB0cjxDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q+IENhY2hlZFJlc291cmNlUmVxdWVzdDo6bG9hZChDYWNoZWRSZXNv
dXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSwgYm9vbCBpbmNyZW1lbnRhbCwgU2VjdXJpdHlDaGVja1BvbGljeSBzZWN1cml0eUNoZWNrLCBj
b25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgT3duUHRyPENhY2hl
ZFJlc291cmNlUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoY2FjaGVkUmVzb3VyY2VMb2FkZXIsIHJlc291cmNlLCBpbmNyZW1lbnRhbCkpOwogCkBA
IC0xMjQsOCArMTI0LDcgQEAKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IHJl
c291cmNlLT5sb2FkUHJpb3JpdHkoKTsKICAgICByZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHko
cHJpb3JpdHkpOwogCi0gICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBsb2FkZXIgPSByZXNv
dXJjZUxvYWRTY2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXItPmRvY3VtZW50KCktPmZyYW1lKCksIHJlcXVlc3QuZ2V0KCksIHJlc291cmNlUmVx
dWVzdCwgcHJpb3JpdHksIHNlY3VyaXR5Q2hlY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MgPyBT
ZW5kQ2FsbGJhY2tzIDogRG9Ob3RTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRh
dGEpKTsKKyAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IHJlc291cmNlTG9h
ZFNjaGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291cmNlTG9hZChjYWNoZWRSZXNvdXJjZUxvYWRl
ci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSwgcmVxdWVzdC5nZXQoKSwgcmVzb3VyY2VSZXF1ZXN0LCBw
cmlvcml0eSwgc2VjdXJpdHlDaGVjaywgb3B0aW9ucyk7CiAgICAgaWYgKCFsb2FkZXIgfHwgbG9h
ZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlm
IHJlc291cmNlcyBpbiBvdGhlciBmcmFtZXMgd2VyZSB3YWl0aW5nIGZvciB0aGlzIHJldmFsaWRh
dGlvbj8KICAgICAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhbm5vdCBzdGFydCBsb2FkaW5n
ICclcyciLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgJKHJldmlzaW9uIDkzODk1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw4IEBACiAj
ZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5
cGVzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxv
YWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00
MSw3ICs0Myw3IEBACiAKICAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgOiBwcml2YXRl
IFN1YnJlc291cmNlTG9hZGVyQ2xpZW50IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQ
YXNzT3duUHRyPENhY2hlZFJlc291cmNlUmVxdWVzdD4gbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRl
ciosIENhY2hlZFJlc291cmNlKiwgYm9vbCBpbmNyZW1lbnRhbCwgU2VjdXJpdHlDaGVja1BvbGlj
eSwgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKTsKKyAgICAgICAgc3RhdGljIFBhc3NP
d25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0PiBsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiwg
Q2FjaGVkUmVzb3VyY2UqLCBib29sIGluY3JlbWVudGFsLCBTZWN1cml0eUNoZWNrUG9saWN5LCBj
b25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKICAgICAgICAgfkNhY2hlZFJlc291cmNlUmVx
dWVzdCgpOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxv
YWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXI7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105504</attachid>
            <date>2011-08-29 11:19:18 -0700</date>
            <delta_ts>2011-08-29 12:27:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-66018-20110829111917.patch</filename>
            <type>text/plain</type>
            <size>13538</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzOTg1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDgtMjkgIE5hdGUgQ2hh
cGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgb3V0IHRvIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoKS4K
KyAgICAgICAgVGhpcyB3aWxsIGJlIG5lZWRlZCBpbiBvcmRlciBmb3IgRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyIHRvIGJlY29tZSBhIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9y
IG9ubHkuCisKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2Fj
aGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZTo6c2V0UmVzb3VyY2VMb2FkZXJPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlOjpzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0Ojpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0Lmg6CisKIDIwMTEtMDgtMjkgIFRvbSBaYWtyYWpzZWsgIDx0b216QGNvZGVhdXJvcmEu
b3JnPgogCiAgICAgICAgIGNhbnZhcyBhcmMoKSBtaXNzaW5nIGxpbmUgdG8gc3RhcnQgb2YgYXJj
IGlmIHN3aW5nIGlzIHplcm8KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmNwcAkocmV2aXNpb24gOTM5ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIHZv
aWQgQ2FjaGVkSW1hZ2U6OmRlY29kZWREYXRhRGVsZXRpb25UaW0KIHZvaWQgQ2FjaGVkSW1hZ2U6
OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQogewogICAg
IGlmICghY2FjaGVkUmVzb3VyY2VMb2FkZXIgfHwgY2FjaGVkUmVzb3VyY2VMb2FkZXItPmF1dG9M
b2FkSW1hZ2VzKCkpCi0gICAgICAgIENhY2hlZFJlc291cmNlOjpsb2FkKGNhY2hlZFJlc291cmNl
TG9hZGVyLCB0cnVlLCBEb1NlY3VyaXR5Q2hlY2ssIHRydWUpOworICAgICAgICBDYWNoZWRSZXNv
dXJjZTo6bG9hZChjYWNoZWRSZXNvdXJjZUxvYWRlciwgdHJ1ZSwgRG9TZWN1cml0eUNoZWNrKTsK
ICAgICBlbHNlCiAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpOwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZpc2lvbiA5Mzk4
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTkyLDExICs5MiwxMSBAQCBDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVz
b3VyY2UoY29uc3QgUmVzCiAgICAgLCBtX3ByZWxvYWRSZXN1bHQoUHJlbG9hZE5vdFJlZmVyZW5j
ZWQpCiAgICAgLCBtX2luTGl2ZURlY29kZWRSZXNvdXJjZXNMaXN0KGZhbHNlKQogICAgICwgbV9y
ZXF1ZXN0ZWRGcm9tTmV0d29ya2luZ0xheWVyKGZhbHNlKQotICAgICwgbV9zZW5kUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzKHRydWUpCiAgICAgLCBtX2luQ2FjaGUoZmFsc2UpCiAgICAgLCBtX2xvYWRp
bmcoZmFsc2UpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fc3RhdHVzKFBlbmRpbmcpCisg
ICAgLCBtX29wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBB
bGxvd1N0b3JlZENyZWRlbnRpYWxzKQogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fZGVsZXRlZChm
YWxzZSkKICAgICAsIG1fbHJ1SW5kZXgoMCkKQEAgLTEzMSwxMSArMTMxLDEwIEBAIENhY2hlZFJl
c291cmNlOjp+Q2FjaGVkUmVzb3VyY2UoKQogICAgICAgICBtX293bmluZ0NhY2hlZFJlc291cmNl
TG9hZGVyLT5yZW1vdmVDYWNoZWRSZXNvdXJjZSh0aGlzKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNv
dXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGJv
b2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjaywgYm9vbCBz
ZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKQordm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNo
ZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGJvb2wgaW5jcmVtZW50YWws
IFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjaykKIHsKLSAgICBtX3NlbmRSZXNvdXJj
ZUxvYWRDYWxsYmFja3MgPSBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwogICAgIG1fbG9hZGlu
ZyA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpsb2FkKGNh
Y2hlZFJlc291cmNlTG9hZGVyLCB0aGlzLCBpbmNyZW1lbnRhbCwgc2VjdXJpdHlDaGVjaywgc2Vu
ZFJlc291cmNlTG9hZENhbGxiYWNrcyk7CisgICAgbV9yZXF1ZXN0ID0gQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0Ojpsb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLCB0aGlzLCBpbmNyZW1lbnRhbCwgc2Vj
dXJpdHlDaGVjaywgbV9vcHRpb25zKTsKICAgICBpZiAobV9yZXF1ZXN0KSB7CiAgICAgICAgIG1f
c3RhdHVzID0gUGVuZGluZzsKICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPmluY3JlbWVu
dFJlcXVlc3RDb3VudCh0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oCShyZXZpc2lvbiA5Mzk4NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCiAjaW5jbHVkZSAiUHVyZ2VQcmlvcml0eS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9h
ZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5LmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAt
ODUsOCArODYsOCBAQCBwdWJsaWM6CiAgICAgQ2FjaGVkUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgVHlwZSk7CiAgICAgdmlydHVhbCB+Q2FjaGVkUmVzb3VyY2UoKTsKICAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VM
b2FkZXIpICB7IGxvYWQoY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGZhbHNlLCBEb1NlY3VyaXR5Q2hl
Y2ssIHRydWUpOyB9Ci0gICAgdm9pZCBsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiwgYm9vbCBp
bmNyZW1lbnRhbCwgU2VjdXJpdHlDaGVja1BvbGljeSwgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2Fj
aGVkUmVzb3VyY2VMb2FkZXIpICB7IGxvYWQoY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGZhbHNlLCBE
b1NlY3VyaXR5Q2hlY2spOyB9CisgICAgdm9pZCBsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiwg
Ym9vbCBpbmNyZW1lbnRhbCwgU2VjdXJpdHlDaGVja1BvbGljeSk7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVhbCBTdHJpbmcgZW5j
b2RpbmcoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQpAQCAtMTkzLDggKzE5NCw5IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXR1cyA9
PSBDYW5jZWxlZDsgfQogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IHsgcmV0dXJuICht
X3N0YXR1cyA9PSBMb2FkRXJyb3IgfHwgbV9zdGF0dXMgPT0gRGVjb2RlRXJyb3IpOyB9Ci0KLSAg
ICBib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX3NlbmRS
ZXNvdXJjZUxvYWRDYWxsYmFja3M7IH0KKyAgICAKKyAgICB2b2lkIHNldFJlc291cmNlTG9hZGVy
T3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25z
ID0gb3B0aW9uczsgfQorICAgIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0
IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9
CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIHsgfQogCkBAIC0y
NzAsNyArMjcyLDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pbkxpdmVEZWNvZGVkUmVzb3Vy
Y2VzTGlzdCA6IDE7CiAgICAgYm9vbCBtX3JlcXVlc3RlZEZyb21OZXR3b3JraW5nTGF5ZXIgOiAx
OwotICAgIGJvb2wgbV9zZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzIDogMTsKIAogICAgIGJvb2wg
bV9pbkNhY2hlIDogMTsKICAgICBib29sIG1fbG9hZGluZyA6IDE7CkBAIC0yNzgsNiArMjc5LDgg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3R5cGUgOiAzOyAvLyBUeXBlCiAgICAgdW5zaWdu
ZWQgbV9zdGF0dXMgOiAzOyAvLyBTdGF0dXMKIAorICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBt
X29wdGlvbnM7CisKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBtX2RlbGV0ZWQ7CiAgICAgdW5z
aWduZWQgbV9scnVJbmRleDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gOTM5ODUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzAsOCArMTcwLDkgQEAgQ2FjaGVkQ1NTU3R5bGVTaGVldCogQ2FjaGVkUmVz
b3VyY2VMb2FkZQogICAgIGJvb2wgaW5DYWNoZSA9IG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hl
ZXQpOwogICAgIGlmICghaW5DYWNoZSkKICAgICAgICAgdXNlclNoZWV0LT5zZXRJbkNhY2hlKHRy
dWUpOwotICAgIAotICAgIHVzZXJTaGVldC0+bG9hZCh0aGlzLCAvKmluY3JlbWVudGFsKi8gZmFs
c2UsIFNraXBTZWN1cml0eUNoZWNrLCAvKnNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MqLyBmYWxz
ZSk7CisKKyAgICB1c2VyU2hlZXQtPnNldFJlc291cmNlTG9hZGVyT3B0aW9ucyhSZXNvdXJjZUxv
YWRlck9wdGlvbnMoRG9Ob3RTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEs
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpKTsKKyAgICB1c2VyU2hlZXQtPmxvYWQodGhpcywgLypp
bmNyZW1lbnRhbCovIGZhbHNlLCBTa2lwU2VjdXJpdHlDaGVjayk7CiAKICAgICBpZiAoIWluQ2Fj
aGUpCiAgICAgICAgIHVzZXJTaGVldC0+c2V0SW5DYWNoZShmYWxzZSk7CkBAIC0zMTEsNyArMzEy
LDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYQogICAgIHJldHVy
biB0cnVlOwogfQogCi1DYWNoZWRSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3Jp
dHksIGJvb2wgZm9yUHJlbG9hZCkKK0NhY2hlZFJlc291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0
eSBwcmlvcml0eSwgYm9vbCBmb3JQcmVsb2FkLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMm
IG9wdGlvbnMpCiB7CiAgICAgS1VSTCB1cmwgPSByZXF1ZXN0LnVybCgpOwogICAgIApAQCAtMzQy
LDExICszNDMsMTEgQEAgQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZQog
CiAgICAgc3dpdGNoIChkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdCwg
Zm9yUHJlbG9hZCwgcmVzb3VyY2UpKSB7CiAgICAgY2FzZSBMb2FkOgotICAgICAgICByZXNvdXJj
ZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAg
ICAgIHJlc291cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQsIHByaW9y
aXR5LCBvcHRpb25zKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZWxvYWQ6CiAgICAgICAg
IG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZSk7Ci0gICAgICAgIHJlc291cmNlID0gbG9h
ZFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgcmVz
b3VyY2UgPSBsb2FkUmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgY2hhcnNldCwgcHJpb3JpdHksIG9w
dGlvbnMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJldmFsaWRhdGU6CiAgICAgICAgIHJl
c291cmNlID0gcmV2YWxpZGF0ZVJlc291cmNlKHJlc291cmNlLCBwcmlvcml0eSk7CkBAIC0zOTMs
NyArMzk0LDcgQEAgQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZQogICAg
IHJldHVybiBuZXdSZXNvdXJjZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNl
TG9hZGVyOjpsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9y
aXR5IHByaW9yaXR5KQorQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpsb2Fk
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgQVNTRVJUKCFt
ZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTChyZXF1ZXN0LnVybCgpKSk7CiAgICAgCkBAIC00
MDksNiArNDEwLDcgQEAgQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpsbwog
ICAgICAgICByZXNvdXJjZS0+c2V0SW5DYWNoZSh0cnVlKTsKICAgICAKICAgICByZXNvdXJjZS0+
c2V0TG9hZFByaW9yaXR5KHByaW9yaXR5KTsKKyAgICByZXNvdXJjZS0+c2V0UmVzb3VyY2VMb2Fk
ZXJPcHRpb25zKG9wdGlvbnMpOwogICAgIHJlc291cmNlLT5sb2FkKHRoaXMpOwogICAgIAogICAg
IGlmICghaW5DYWNoZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDkzOTg1KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwNywxMCArMTA3LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGNoZWNrSW5zZWN1cmVDb250
ZW50KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBLVVJMJikgY29uc3Q7CiAgICAgCiBwcml2
YXRlOgotICAgIENhY2hlZFJlc291cmNlKiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGJvb2wgaXNQcmVs
b2FkID0gZmFsc2UpOwotICAgIENhY2hlZFJlc291cmNlKiByZXZhbGlkYXRlUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2UqLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSk7Ci0gICAgQ2FjaGVk
UmVzb3VyY2UqIGxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSk7Ci0gICAg
dm9pZCByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0
JiB1cmwsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CisgICAgLy8gRklYTUU6IFRoZSBkZWZhdWx0
IHZhbHVlIGZvciBSZXNvdXJjZUxvYWRlck9wdGlvbnMgd2lsbCBhbHdheXMgYmUgdXNlZCBjdXJy
ZW50bHkuCisgICAgLy8gSXQgaXMgcGx1bWJlZCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjEyMjUgLgorICAgIENhY2hlZFJlc291cmNlKiByZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVz
b2x2ZWQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYgPSBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBC
dWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKSk7CisgICAgQ2FjaGVkUmVzb3VyY2Uq
IHJldmFsaWRhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSosIFJlc291cmNlTG9hZFByaW9yaXR5
KTsKKyAgICBDYWNoZWRSZXNvdXJjZSogbG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBl
LCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFBy
aW9yaXR5LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKKyAgICB2b2lkIHJlcXVlc3RQ
cmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQpOwogCiAgICAgZW51bSBSZXZhbGlkYXRpb25Qb2xpY3kgeyBVc2UsIFJldmFs
aWRhdGUsIFJlbG9hZCwgTG9hZCB9OwogICAgIFJldmFsaWRhdGlvblBvbGljeSBkZXRlcm1pbmVS
ZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYs
IGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UpIGNvbnN0
OwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAJKHJldmlzaW9uIDkzOTg1KQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3
LDcgKzg3LDcgQEAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp+Q2FjaGVkUmVzb3VyY2VSZQogewog
fQogCi1QYXNzT3duUHRyPENhY2hlZFJlc291cmNlUmVxdWVzdD4gQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Ojpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciwgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlLCBib29sIGluY3JlbWVudGFsLCBTZWN1cml0eUNoZWNrUG9s
aWN5IHNlY3VyaXR5Q2hlY2ssIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcykKK1Bhc3NP
d25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0PiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmxvYWQo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UsIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJp
dHlDaGVjaywgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQogewogICAgIE93
blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdFB0cihuZXcgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0KGNhY2hlZFJlc291cmNlTG9hZGVyLCByZXNvdXJjZSwgaW5jcmVtZW50
YWwpKTsKIApAQCAtMTI0LDggKzEyNCw3IEBAIFBhc3NPd25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1
ZXN0PiBDYWNoZWQKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IHJlc291cmNl
LT5sb2FkUHJpb3JpdHkoKTsKICAgICByZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkocHJpb3Jp
dHkpOwogCi0gICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBsb2FkZXIgPSByZXNvdXJjZUxv
YWRTY2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmRvY3VtZW50KCktPmZyYW1lKCksIHJlcXVlc3QuZ2V0KCksIHJlc291cmNlUmVxdWVzdCwg
cHJpb3JpdHksIHNlY3VyaXR5Q2hlY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmVzb3VyY2VMb2FkZXJPcHRpb25zKHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MgPyBTZW5kQ2Fs
bGJhY2tzIDogRG9Ob3RTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFs
bG93U3RvcmVkQ3JlZGVudGlhbHMpKTsKKyAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IGxv
YWRlciA9IHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291cmNlTG9hZChj
YWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSwgcmVxdWVzdC5nZXQoKSwg
cmVzb3VyY2VSZXF1ZXN0LCBwcmlvcml0eSwgc2VjdXJpdHlDaGVjaywgb3B0aW9ucyk7CiAgICAg
aWYgKCFsb2FkZXIgfHwgbG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBXaGF0IGlmIHJlc291cmNlcyBpbiBvdGhlciBmcmFtZXMgd2VyZSB3YWl0aW5n
IGZvciB0aGlzIHJldmFsaWRhdGlvbj8KICAgICAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNh
bm5vdCBzdGFydCBsb2FkaW5nICclcyciLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkubGF0aW4x
KCkuZGF0YSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgJKHJldmlzaW9uIDkzOTg1KQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMyw2ICsyMyw4IEBACiAjZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAKICNpbmNs
dWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CkBAIC00MSw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IGNsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCA6IHByaXZhdGUgU3VicmVzb3VyY2VMb2FkZXJD
bGllbnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0PiBsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2Uq
LCBib29sIGluY3JlbWVudGFsLCBTZWN1cml0eUNoZWNrUG9saWN5LCBib29sIHNlbmRSZXNvdXJj
ZUxvYWRDYWxsYmFja3MpOworICAgICAgICBzdGF0aWMgUGFzc093blB0cjxDYWNoZWRSZXNvdXJj
ZVJlcXVlc3Q+IGxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBDYWNoZWRSZXNvdXJjZSosIGJv
b2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xpY3ksIGNvbnN0IFJlc291cmNlTG9hZGVy
T3B0aW9ucyYpOwogICAgICAgICB+Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KCk7CiAKICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKCkgY29uc3QgeyByZXR1
cm4gbV9jYWNoZWRSZXNvdXJjZUxvYWRlcjsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>