<?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>72178</bug_id>
          
          <creation_ts>2011-11-11 13:52:31 -0800</creation_ts>
          <short_desc>Fix mixed content handling for AssociatedURLLoader.</short_desc>
          <delta_ts>2011-12-07 18:45:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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="Aaron Colwell">acolwell</reporter>
          <assigned_to name="Aaron Colwell">acolwell</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501064</commentid>
    <comment_count>0</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-11 13:52:31 -0800</bug_when>
    <thetext>Currently the AssociatedURLLoader does not check for mixed content so Chromium doesn&apos;t put the mixed content indicator in the omnibox when https:// content contains a &lt;video&gt; with an http: URL. (http://code.google.com/p/chromium/issues/detail?id=97166) 

The attached patch adds the necessary checks to properly handle mixed content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501066</commentid>
    <comment_count>1</comment_count>
      <attachid>114766</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-11 13:54:32 -0800</bug_when>
    <thetext>Created attachment 114766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501995</commentid>
    <comment_count>2</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-14 09:30:39 -0800</bug_when>
    <thetext>Can you review this please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503246</commentid>
    <comment_count>3</comment_count>
      <attachid>114766</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-15 14:07:18 -0800</bug_when>
    <thetext>Comment on attachment 114766
Patch

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

We&apos;ll also need a test.

&gt; Source/WebKit/chromium/src/AssociatedURLLoader.cpp:148
&gt; +    if (!m_loader-&gt;checkIfDisplayInsecureContent(newRequest.url())) {
&gt; +        m_loader-&gt;cancel();
&gt; +        return;
&gt; +    }

Don&apos;t we need all the checks from CachedResourceLoader::canRequest?  For example, what if this load is forbidden for other reasons?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503248</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-15 14:08:40 -0800</bug_when>
    <thetext>http://trac.webkit.org/browser/trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp#L266

Notice that we do a bunch of other checks at the same time as we check for mixed content.  If we&apos;re missing the mixed content checks, we&apos;re probably missing those as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503265</commentid>
    <comment_count>5</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-15 14:17:33 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; http://trac.webkit.org/browser/trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp#L266
&gt; 
&gt; Notice that we do a bunch of other checks at the same time as we check for mixed content.  If we&apos;re missing the mixed content checks, we&apos;re probably missing those as well.


Thanks for the pointers. I figured there might be more to this, but I didn&apos;t know where to look. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503680</commentid>
    <comment_count>6</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-16 00:31:55 -0800</bug_when>
    <thetext>I wonder why the checks aren&apos;t applied in the first place. Doesn&apos;t the loader use a threadable loader which in turn uses a cached resource loader that should apply the correct checks?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504230</commentid>
    <comment_count>7</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-16 14:03:29 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I wonder why the checks aren&apos;t applied in the first place. Doesn&apos;t the loader use a threadable loader which in turn uses a cached resource loader that should apply the correct checks?

So it appears that you are correct that AssociatedURLLoader creates a DocumentThreadableLoader which creates a CachedResourceLoader via CachedResourceLoader::requestRawResource(). Since the CachedResourceLoader has a type of RawResource the display checks are skipped. 

How about this for a fix:
1. Add a MediaResource to CachedResource::Type
2. Update switch() statements in CachedResourceLoader
3. Create the inverse of cachedResourceTypeToTargetType() that maps ResourceRequest::TargetType to CachedResource::Type
4. Update DocumentThreadableLoader::loadRequest() to use the new mapping function to determine what type of CachedResourceLoader() to create instead of always creating a RawResource CachedResource.

I believe this should fix the problem and possibly fix any other TargetTypes that happen to be getting loaded through DocumentThreadableLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504236</commentid>
    <comment_count>8</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-16 14:10:07 -0800</bug_when>
    <thetext>Adding Nate who added that code path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504401</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-16 16:55:26 -0800</bug_when>
    <thetext>Not all loads that go through AssociatedURLLoader are for media.  Perhaps we need some way to disambiguate what kind of load we&apos;re doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504900</commentid>
    <comment_count>10</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-17 08:50:59 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Not all loads that go through AssociatedURLLoader are for media.  Perhaps we need some way to disambiguate what kind of load we&apos;re doing.

I agree. That is why I was suggesting using TargetType to CachedResource::Type translation to differentiate the different types of requests. Only when TargetType is TargetIsMedia will we create a CachedResource with Type MediaResource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505313</commentid>
    <comment_count>11</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-17 16:02:48 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Not all loads that go through AssociatedURLLoader are for media.  Perhaps we need some way to disambiguate what kind of load we&apos;re doing.
&gt; 
&gt; I agree. That is why I was suggesting using TargetType to CachedResource::Type translation to differentiate the different types of requests. Only when TargetType is TargetIsMedia will we create a CachedResource with Type MediaResource.

Note that currently TargetType is only available on Chromium, so we can&apos;t rely on it for a general solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505319</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 16:05:40 -0800</bug_when>
    <thetext>&gt; Note that currently TargetType is only available on Chromium, so we can&apos;t rely on it for a general solution.

AssociatedURLLoader only exists in Chromium as well.  (It&apos;s a Chromium API concept.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505322</commentid>
    <comment_count>13</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-17 16:08:35 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Note that currently TargetType is only available on Chromium, so we can&apos;t rely on it for a general solution.
&gt; 
&gt; AssociatedURLLoader only exists in Chromium as well.  (It&apos;s a Chromium API concept.)

What about workers? If a worker requests a script, it&apos;ll be loaded as CachedRawResource instead of CachedScript, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506110</commentid>
    <comment_count>14</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-18 15:14:34 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; &gt; Note that currently TargetType is only available on Chromium, so we can&apos;t rely on it for a general solution.
&gt; &gt; 
&gt; &gt; AssociatedURLLoader only exists in Chromium as well.  (It&apos;s a Chromium API concept.)
&gt; 
&gt; What about workers? If a worker requests a script, it&apos;ll be loaded as CachedRawResource instead of CachedScript, right?

I believe workers would start using whatever TargetType was specified in CrossThreadResourceRequestData::m_targetType. Right now I believe they are just using RawResource as well. If someone could create me a quick worker example, I&apos;d be happy to investigate more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510190</commentid>
    <comment_count>15</comment_count>
      <attachid>116822</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-28 14:41:47 -0800</bug_when>
    <thetext>Created attachment 116822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510195</commentid>
    <comment_count>16</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-28 14:45:07 -0800</bug_when>
    <thetext>Uploaded a new patch to give people a better idea of what I had in mind. 

I&apos;m a little nervous about this change since I&apos;m not at all familiar with this code or how wide an impact such a change would be. Expert opinions definitely wanted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510198</commentid>
    <comment_count>17</comment_count>
      <attachid>116822</attachid>
    <who name="">jochen</who>
    <bug_when>2011-11-28 14:46:12 -0800</bug_when>
    <thetext>Comment on attachment 116822
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

Was it possible to test this? E.g. try to modify one of the tests for mixed content?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510207</commentid>
    <comment_count>18</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-28 14:50:36 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 116822 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116822&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests. (OOPS!)
&gt; 
&gt; Was it possible to test this? E.g. try to modify one of the tests for mixed content?

Haven&apos;t gotten to that yet. I wanted to make sure I was on the right track before investing too much effort in polishing the patch. I&apos;ll look around the LayoutTests to see if I can find something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510210</commentid>
    <comment_count>19</comment_count>
      <attachid>116822</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-28 14:51:16 -0800</bug_when>
    <thetext>Comment on attachment 116822
Patch

Attachment 116822 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10676465</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510904</commentid>
    <comment_count>20</comment_count>
      <attachid>116997</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-29 10:47:40 -0800</bug_when>
    <thetext>Created attachment 116997
Added Layout Tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511972</commentid>
    <comment_count>21</comment_count>
      <attachid>116997</attachid>
    <who name="">jochen</who>
    <bug_when>2011-11-30 11:45:53 -0800</bug_when>
    <thetext>Comment on attachment 116997
Added Layout Tests

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

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:291
&gt; +    return static_cast&lt;CachedRawResource*&gt;(requestResource(type, request, String(), options, ResourceLoadPriorityUnresolved, false));

this won&apos;t work. If the type is e.g. ImageResource, requestResource will return a CachedResource

Maybe CachedRawResource can be smarter about its own type (e.g. move the targetTypeToCachedResourceType to CachedRawResource), and have the cached resource loader query the CachedRawResource for its type before doing its type-based checks?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512166</commentid>
    <comment_count>22</comment_count>
      <attachid>117282</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-30 14:59:30 -0800</bug_when>
    <thetext>Created attachment 117282
Only consult targetType() when determining whether it is ok to request the resource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512287</commentid>
    <comment_count>23</comment_count>
      <attachid>117282</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-11-30 17:39:16 -0800</bug_when>
    <thetext>Comment on attachment 117282
Only consult targetType() when determining whether it is ok to request the resource.

Just discovered that redirects to insecure URLs aren&apos;t handled by this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513061</commentid>
    <comment_count>24</comment_count>
      <attachid>117479</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-01 13:43:22 -0800</bug_when>
    <thetext>Created attachment 117479
Fix redirects and added layout tests to verify the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513066</commentid>
    <comment_count>25</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-01 13:50:44 -0800</bug_when>
    <thetext>Please take another look. The patch intentionally focuses on just getting canRequest() to do checks with the proper type. I tried various ways of changing type() to return the appropriate type, but various code makes assumptions about (type() == RawResource) =&gt; CachedRawResource() and I&apos;d get crashes because of bad casts and various other problems. 

I believe this is the lowest risk patch to get the desired behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513068</commentid>
    <comment_count>26</comment_count>
      <attachid>117479</attachid>
    <who name="">jochen</who>
    <bug_when>2011-12-01 13:54:47 -0800</bug_when>
    <thetext>Comment on attachment 117479
Fix redirects and added layout tests to verify the fix.

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

You could add some text what this patch exactly does</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513070</commentid>
    <comment_count>27</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-12-01 13:55:11 -0800</bug_when>
    <thetext>otherwise, looks good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513861</commentid>
    <comment_count>28</comment_count>
      <attachid>117642</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-02 09:45:21 -0800</bug_when>
    <thetext>Created attachment 117642
Updated ChangeLog text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513931</commentid>
    <comment_count>29</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-02 10:58:08 -0800</bug_when>
    <thetext>Can I get an r+ &amp; c+ on the latest patch pretty please. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513937</commentid>
    <comment_count>30</comment_count>
      <attachid>117642</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-02 11:03:09 -0800</bug_when>
    <thetext>Comment on attachment 117642
Updated ChangeLog text.

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

Assuming we&apos;re not digging ourselves a bigger hole w.r.t. targetType, this looks fine.  @jochen?

&gt; Source/WebCore/loader/SubresourceLoader.cpp:130
&gt; +    CachedResource::Type canRequestType = m_resource-&gt;type();

This variable should be a noun.  Maybe requestTypeForCanRequest ?

&gt; Source/WebCore/loader/SubresourceLoader.cpp:135
&gt; +#if PLATFORM(CHROMIUM)
&gt; +    if (canRequestType == CachedResource::RawResource)
&gt; +        canRequestType = CachedResource::targetTypeToCachedResourceType(request().targetType());
&gt; +#endif

Is targetType() staying around?  I thought there were bug threads about deleting it...  Maybe those threads were just about moving it to Chromium specific code?

&gt; Source/WebCore/loader/cache/CachedRawResource.h:33
&gt;      CachedRawResource(ResourceRequest&amp;);

This first constructor should have the explicit keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513984</commentid>
    <comment_count>31</comment_count>
      <attachid>117642</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-02 11:43:32 -0800</bug_when>
    <thetext>Comment on attachment 117642
Updated ChangeLog text.

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

&gt;&gt; Source/WebCore/loader/SubresourceLoader.cpp:130
&gt;&gt; +    CachedResource::Type canRequestType = m_resource-&gt;type();
&gt; 
&gt; This variable should be a noun.  Maybe requestTypeForCanRequest ?

Done.

&gt;&gt; Source/WebCore/loader/SubresourceLoader.cpp:135
&gt;&gt; +#endif
&gt; 
&gt; Is targetType() staying around?  I thought there were bug threads about deleting it...  Maybe those threads were just about moving it to Chromium specific code?

I honestly don&apos;t know. I&apos;m not familiar with the history of this code. I just know that TargetType is how the video tag indicates that it is making a request for media. I think trying to change that is much higher risk and will likely trigger several yak shaves. This change at least exposes a use case that needs to be handled when TargetType is eventually removed.

&gt;&gt; Source/WebCore/loader/cache/CachedRawResource.h:33
&gt;&gt;      CachedRawResource(ResourceRequest&amp;);
&gt; 
&gt; This first constructor should have the explicit keyword.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513985</commentid>
    <comment_count>32</comment_count>
      <attachid>117662</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-02 11:43:58 -0800</bug_when>
    <thetext>Created attachment 117662
Addressing CR comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514035</commentid>
    <comment_count>33</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-02 12:58:45 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 117642 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117642&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/loader/SubresourceLoader.cpp:135
&gt; &gt;&gt; +#endif
&gt; &gt; 
&gt; &gt; Is targetType() staying around?  I thought there were bug threads about deleting it...  Maybe those threads were just about moving it to Chromium specific code?
&gt; 
&gt; I honestly don&apos;t know. I&apos;m not familiar with the history of this code. I just know that TargetType is how the video tag indicates that it is making a request for media. I think trying to change that is much higher risk and will likely trigger several yak shaves. This change at least exposes a use case that needs to be handled when TargetType is eventually removed.

Yeah, I was mostly asking jochen, who was involved in the discussions about the future of targetType().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514048</commentid>
    <comment_count>34</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-12-02 13:07:52 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #31)
&gt; &gt; (From update of attachment 117642 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117642&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/loader/SubresourceLoader.cpp:135
&gt; &gt; &gt;&gt; +#endif
&gt; &gt; &gt; 
&gt; &gt; &gt; Is targetType() staying around?  I thought there were bug threads about deleting it...  Maybe those threads were just about moving it to Chromium specific code?
&gt; &gt; 
&gt; &gt; I honestly don&apos;t know. I&apos;m not familiar with the history of this code. I just know that TargetType is how the video tag indicates that it is making a request for media. I think trying to change that is much higher risk and will likely trigger several yak shaves. This change at least exposes a use case that needs to be handled when TargetType is eventually removed.
&gt; 
&gt; Yeah, I was mostly asking jochen, who was involved in the discussions about the future of targetType().

It&apos;s chromium only currently. I still hope that I can make it a general part of loader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514063</commentid>
    <comment_count>35</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-02 13:31:19 -0800</bug_when>
    <thetext>&gt; It&apos;s chromium only currently. I still hope that I can make it a general part of loader

So, Alexey agreed that we don&apos;t need to remove it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514076</commentid>
    <comment_count>36</comment_count>
      <attachid>117662</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-02 13:43:18 -0800</bug_when>
    <thetext>Comment on attachment 117662
Addressing CR comments

I chatted with jochen.  It sounds like this is the right approach for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514085</commentid>
    <comment_count>37</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-02 13:46:53 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; (From update of attachment 117662 [details])
&gt; I chatted with jochen.  It sounds like this is the right approach for this patch.

Thanks for the review. I appreciate it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514299</commentid>
    <comment_count>38</comment_count>
      <attachid>117662</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-02 17:38:44 -0800</bug_when>
    <thetext>Comment on attachment 117662
Addressing CR comments

Clearing flags on attachment: 117662

Committed r101883: &lt;http://trac.webkit.org/changeset/101883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514300</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-02 17:38:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514464</commentid>
    <comment_count>40</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-12-03 01:22:28 -0800</bug_when>
    <thetext>New tests introduced in this bug fail on SL, GTK and Qt too:

SL fails:
- http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r101914%20(35151)/http/tests/security/mixedContent/redirect-http-to-https-video-in-main-frame-pretty-diff.html
- http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r101914%20(35151)/http/tests/security/mixedContent/insecure-video-in-main-frame-pretty-diff.html
- http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r101914%20(35151)/http/tests/security/mixedContent/redirect-https-to-http-video-in-main-frame-pretty-diff.html

GTK fails:
- http://build.webkit.org/results/GTK%20Linux%2032-bit%20Release/r101898%20(19680)/http/tests/security/mixedContent/redirect-http-to-https-video-in-main-frame-pretty-diff.html
- http://build.webkit.org/results/GTK%20Linux%2032-bit%20Release/r101898%20(19680)/http/tests/security/mixedContent/insecure-video-in-main-frame-pretty-diff.html
- http://build.webkit.org/results/GTK%20Linux%2032-bit%20Release/r101898%20(19680)/http/tests/security/mixedContent/redirect-https-to-http-video-in-main-frame-pretty-diff.html

Qt fails:
- http://build.webkit.org/results/Qt%20Linux%20Release/r101902%20(40538)/http/tests/security/mixedContent/redirect-http-to-https-video-in-main-frame-pretty-diff.html
- http://build.webkit.org/results/Qt%20Linux%20Release/r101902%20(40538)/http/tests/security/mixedContent/insecure-video-in-main-frame-pretty-diff.html
- http://build.webkit.org/results/Qt%20Linux%20Release/r101902%20(40538)/http/tests/security/mixedContent/redirect-https-to-http-video-in-main-frame-pretty-diff.html

Could you check what happened?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514470</commentid>
    <comment_count>41</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-12-03 01:40:31 -0800</bug_when>
    <thetext>I skipped them on Qt: http://trac.webkit.org/changeset/101918/trunk/LayoutTests/platform/qt/Skipped

Please unskip them if the bug is fixed once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514482</commentid>
    <comment_count>42</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-12-03 04:01:29 -0800</bug_when>
    <thetext>I&apos;m checking the issue on GTK. I think it doesn&apos;t work because we don&apos;t use the SubResourceLoader for videos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514997</commentid>
    <comment_count>43</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-05 03:02:36 -0800</bug_when>
    <thetext>This caused http://code.google.com/p/chromium/issues/detail?id=106383 (chromium ui_tests WorkerTest.SharedWorkerHttpAuth fails consistently.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515001</commentid>
    <comment_count>44</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-05 03:07:57 -0800</bug_when>
    <thetext>Rebaselined tests introduced by this patch here: http://trac.webkit.org/changeset/101981</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515014</commentid>
    <comment_count>45</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-05 03:39:17 -0800</bug_when>
    <thetext>Committed r101986: &lt;http://trac.webkit.org/changeset/101986&gt;

One more rebaseline since leopard and snowleopard had different results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515131</commentid>
    <comment_count>46</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-05 09:14:53 -0800</bug_when>
    <thetext>Committed r101997: &lt;http://trac.webkit.org/changeset/101997&gt;

And one more.
Now it has custom expectations on mac-snowleopard and mac-cg-snowleopard only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515351</commentid>
    <comment_count>47</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-12-05 13:29:58 -0800</bug_when>
    <thetext>Note that the diffs basically say that insecure content is displayed on these ports without a warning :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515846</commentid>
    <comment_count>48</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-06 05:52:49 -0800</bug_when>
    <thetext>No, for me it looks like these warnings are displayed twice on snowleopard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516685</commentid>
    <comment_count>49</comment_count>
      <attachid>118222</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-07 09:53:10 -0800</bug_when>
    <thetext>Created attachment 118222
Partial revert to restore old behavior for workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516690</commentid>
    <comment_count>50</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-07 09:57:47 -0800</bug_when>
    <thetext>It appears this change has caused a regression in SharedWorkers (http://crbug.com/106383) and I&apos;ve been unable to figure out how to fix them over the last to days. 

Could someone please review the partial revert so that I can at least temporarily restore workers to their old behavior that does less security checks.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516730</commentid>
    <comment_count>51</comment_count>
      <attachid>118222</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-07 10:36:54 -0800</bug_when>
    <thetext>Comment on attachment 118222
Partial revert to restore old behavior for workers.

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        No new tests. (OOPS!)

Can we not test this problem here?

&gt; Source/WebCore/loader/cache/CachedResource.cpp:139
&gt;      case ResourceRequest::TargetIsScript:
&gt; -        return CachedResource::Script;
&gt; +        // TODO: Change back to CachedResource::Script once http://crbug.com/106383 has been fixed.
&gt; +        return CachedResource::RawResource;

TODO -&gt; FIXME

This patch looks wrong on it&apos;s face.  I&apos;d rather revert the original patch entirely than land this &quot;obviously wrong&quot; code.  Can we not just fix the bug directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516883</commentid>
    <comment_count>52</comment_count>
      <attachid>118268</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-07 13:43:11 -0800</bug_when>
    <thetext>Created attachment 118268
Revert mixed content handling for video fix and follow-up rebases and Skipped updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516891</commentid>
    <comment_count>53</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2011-12-07 13:49:09 -0800</bug_when>
    <thetext>Talked with levin@ and he said he&apos;d help me figure out the issues w/ SharedWorkers. In the mean time I&apos;m just going to revert everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516899</commentid>
    <comment_count>54</comment_count>
      <attachid>118268</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-07 13:52:38 -0800</bug_when>
    <thetext>Comment on attachment 118268
Revert mixed content handling for video fix and follow-up rebases and Skipped updates.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517092</commentid>
    <comment_count>55</comment_count>
      <attachid>118268</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 18:45:17 -0800</bug_when>
    <thetext>Comment on attachment 118268
Revert mixed content handling for video fix and follow-up rebases and Skipped updates.

Clearing flags on attachment: 118268

Committed r102300: &lt;http://trac.webkit.org/changeset/102300&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517093</commentid>
    <comment_count>56</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 18:45:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114766</attachid>
            <date>2011-11-11 13:54:32 -0800</date>
            <delta_ts>2011-11-28 14:41:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72178-20111111135431.patch</filename>
            <type>text/plain</type>
            <size>3529</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGY4YjdlNGIzMDAwN2Q1NDM0NDQzMWQ2MmQwMWFiZjBjZmZkN2I2ZWQuLjIxM2JhODM4ZTQwY2Vh
NDEyNzI3ZjhkNWM2ZmM1OTdjNmMwNzBmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMTEgIEFhcm9uIENvbHdlbGwgIDxhY29sd2VsbEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgRml4IG1peGVkIGNvbnRlbnQgaGFuZGxpbmcgZm9yIEFzc29j
aWF0ZWRVUkxMb2FkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjE3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL0Fzc29jaWF0ZWRVUkxMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
c3NvY2lhdGVkVVJMTG9hZGVyOjpDbGllbnRBZGFwdGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpBc3NvY2lhdGVkVVJMTG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgor
ICAgICAgICAoV2ViS2l0OjpBc3NvY2lhdGVkVVJMTG9hZGVyOjpjaGVja0lmRGlzcGxheUluc2Vj
dXJlQ29udGVudCk6CisgICAgICAgICogc3JjL0Fzc29jaWF0ZWRVUkxMb2FkZXIuaDoKKwogMjAx
MS0xMS0xMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMDAxMC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc29jaWF0ZWRVUkxMb2FkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXNzb2NpYXRlZFVSTExvYWRlci5jcHAKaW5kZXggNjBjOGM2NzA3
ZTM1MWVhM2JhMDc1Njk0NDU4MmEwOTUxNDM4ZDFiYS4uNzUzYjBlY2ZlMDhjYzc0ZTlhYTk0ZmJi
NWZhNTY5MWViOTAyNDZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
QXNzb2NpYXRlZFVSTExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
QXNzb2NpYXRlZFVSTExvYWRlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBc3NvY2lhdGVkVVJMTG9hZGVyLmgiCiAKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUVFBWYWxpZGF0
aW9uLmgiCkBAIC0xNDEsNiArMTQyLDExIEBAIHZvaWQgQXNzb2NpYXRlZFVSTExvYWRlcjo6Q2xp
ZW50QWRhcHRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxCiAgICAg
aWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFtX2xvYWRlci0+Y2hl
Y2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQobmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAgICAg
bV9sb2FkZXItPmNhbmNlbCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgV3JhcHBl
ZFJlc291cmNlUmVxdWVzdCB3cmFwcGVkTmV3UmVxdWVzdChuZXdSZXF1ZXN0KTsKICAgICBXcmFw
cGVkUmVzb3VyY2VSZXNwb25zZSB3cmFwcGVkUmVkaXJlY3RSZXNwb25zZShyZWRpcmVjdFJlc3Bv
bnNlKTsKICAgICBtX2NsaWVudC0+d2lsbFNlbmRSZXF1ZXN0KG1fbG9hZGVyLCB3cmFwcGVkTmV3
UmVxdWVzdCwgd3JhcHBlZFJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtMjY5LDYgKzI3NSw5IEBAIHZv
aWQgQXNzb2NpYXRlZFVSTExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KGNvbnN0IFdlYlVSTFJl
cXVlc3QmIHJlcXVlc3QsIFdlYlVSCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoYWxsb3dM
b2FkKQorICAgICAgICBhbGxvd0xvYWQgPSBjaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudChu
ZXdSZXF1ZXN0LnVybCgpKTsKKwogICAgIG1fY2xpZW50QWRhcHRlciA9IENsaWVudEFkYXB0ZXI6
OmNyZWF0ZSh0aGlzLCBtX2NsaWVudCwgcmVxdWVzdC5kb3dubG9hZFRvRmlsZSgpKTsKIAogICAg
IGlmIChhbGxvd0xvYWQpIHsKQEAgLTMwNCw0ICszMTMsMTAgQEAgdm9pZCBBc3NvY2lhdGVkVVJM
TG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzTG9hZGluZykKICAgICAgICAgbV9s
b2FkZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzTG9hZGluZyk7CiB9CiAKK2Jvb2wgQXNzb2Np
YXRlZFVSTExvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoY29uc3QgV2ViVVJM
JiB1cmwpCit7CisgICAgRnJhbWUqIGZyYW1lID0gbV9mcmFtZUltcGwtPmZyYW1lKCk7CisgICAg
cmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoZnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzb2Np
YXRlZFVSTExvYWRlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzb2NpYXRlZFVS
TExvYWRlci5oCmluZGV4IDVjYzNhYTQ5NGI0ZWI1MWMzNzE1NTAzNzk2ODc3NGUyNTc3NGZmNTAu
LmU5ZGU2NGFiNDc2OThhZDFlNGM0NGE1MjcyMmY4OTk0YzlhMzc4NjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc29jaWF0ZWRVUkxMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NvY2lhdGVkVVJMTG9hZGVyLmgKQEAgLTQyLDYgKzQy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI7
IH0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJGcmFtZUltcGw7CitjbGFzcyBXZWJV
Ukw7CiAKIC8vIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBpbXBsZW1lbnQgV2ViRnJhbWU6OmNyZWF0
ZUFzc29jaWF0ZWRVUkxMb2FkZXIuCiBjbGFzcyBBc3NvY2lhdGVkVVJMTG9hZGVyIDogcHVibGlj
IFdlYlVSTExvYWRlciB7CkBAIC01Niw2ICs1NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGNhbmNlbCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOwog
CisgICAgLy8gQ2hlY2sgaWYgdGhlIGRpc3BsYXkgVVJMIHJlcHJlc2VudHMgYSBtaXhlZCBjb250
ZW50IGNvbmRpdGlvbiByZWxhdGl2ZSB0byB0aGUgZnJhbWUKKyAgICAvLyB0aGF0IGNyZWF0ZWQg
dGhpcyBsb2FkZXIuCisgICAgYm9vbCBjaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudChjb25z
dCBXZWJVUkwmKTsKKwogcHJpdmF0ZToKIAogICAgIGNsYXNzIENsaWVudEFkYXB0ZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116822</attachid>
            <date>2011-11-28 14:41:47 -0800</date>
            <delta_ts>2011-11-29 10:47:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72178-20111128144146.patch</filename>
            <type>text/plain</type>
            <size>9216</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxOTRiMjkwNWQwNDll
OGQ1MjZlMmRmYzMyMmY5Mjc4ZDg1NzQzZS4uMGIxNjI3YjQwZTExMTQ4NTJlZjI5YWFlOGU0OTU5
NmI0ZjkwYTJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTExLTI4ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBtaXhlZCBj
b250ZW50IGhhbmRsaW5nIGZvciBBc3NvY2lhdGVkVVJMTG9hZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKwor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0UHJpb3JpdHlG
b3JSZXNvdXJjZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVkUmVzb3VyY2VUeXBlVG9U
YXJnZXRUeXBlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6dGFyZ2V0VHlwZVRv
Q2FjaGVkUmVzb3VyY2VUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KToKKwogMjAxMS0xMS0yNSAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFdlYiBJbnNw
ZWN0b3I6IGdldCByaWQgb2YgV2ViRGV2VG9vbHNGcm9udGVuZENsaWVudDo6c2VuZEZyb250ZW5k
TG9hZGVkIG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
YXdSZXNvdXJjZS5jcHAKaW5kZXggNWM1NjVmMjdiODQzNTY0ZWM1N2U1ZjFmODM5ODgxNzY3NGQ0
MTQ0YS4uZjY5MDkzNzk0YmJiNGUyZmZiZGM2YmFhY2U0YjUyMTZmMjQzM2JjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC00
MSw2ICs0MSwxMiBAQCBDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCiB7CiB9CiAKK0NhY2hlZFJhd1Jlc291cmNlOjpD
YWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgVHlwZSB0
eXBlKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlKQorICAgICwg
bV9kYXRhTGVuZ3RoKDApCit7Cit9CisKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmRhdGEoUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogewogICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBwcm90ZWN0KHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRl
eCA5YjBjYWI1MjM1NTY1OWQ3YWVmYTg2OGViOGIwYTE3ZDBmNjBiNzhlLi40NzA2ZDNkODJiZTQ2
NmE4NGUxYjRhNTFmMmUwMzM4NDg3MTZkNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZSA6IHB1YmxpYyBDYWNoZWRSZXNvdXJj
ZSB7CiBwdWJsaWM6CiAgICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0Jik7Cisg
ICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiwgVHlwZSk7CiAKICAgICAvLyBG
SVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2FjaGVkUmF3UmVz
b3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBkZWZlciBs
b2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAKaW5kZXggZTFkMWRlY2RhMDI2MGMyMzBiYzFlM2UyMTE0ZjI0MmFkNzJiMTBmZi4uYjkzYzcw
ZWViMDk0MzMxYzk0ZDhlOTVhM2Y5Y2M1NTMyYjBmMGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC03Myw2ICs3MywxMCBAQCBzdGF0
aWMgUmVzb3VyY2VMb2FkUHJpb3JpdHkgZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKENh
Y2hlZFJlc291cmNlOjpUeXBlCiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJy
ZXNvdXJjZToKICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7
CiAjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCisgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
Ok1lZGlhUmVzb3VyY2U6CisgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlN
ZWRpdW07CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgogICAgICAgICAgICAgcmV0dXJuIFJlc291
cmNlTG9hZFByaW9yaXR5TG93OwpAQCAtMTExLDYgKzExNSwxMCBAQCBzdGF0aWMgUmVzb3VyY2VS
ZXF1ZXN0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRS
ZXNvdXJjZQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICAgICAg
ICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJyZXNvdXJjZTsKICNlbmRpZgor
I2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNl
OgorICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc01lZGlhOworI2VuZGlm
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRU
cmFja1Jlc291cmNlOgogICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1Rl
eHRUcmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
aW5kZXggZWFjMjYyMTAxOTVjM2RmNzJkOTFiOGNhNzIzYWYzMTEzNTJhMDM3ZS4uN2YwMzdmNzY4
NWJkN2U3YmFiZjU1ZGQ3ZjZjZTE5OTQ1YjI5ZGI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTc5LDYgKzc5LDkgQEAgcHVibGljOgogI2lm
IEVOQUJMRShDU1NfU0hBREVSUykKICAgICAgICAgLCBTaGFkZXJSZXNvdXJjZQogI2VuZGlmCisj
aWYgRU5BQkxFKFZJREVPKQorICAgICAgICAsIE1lZGlhUmVzb3VyY2UKKyNlbmRpZgogICAgIH07
CiAKICAgICBlbnVtIFN0YXR1cyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBjN2YwNjg2MzI0NjdmYTA3ZjY3ZmI0
NjlhNmYyODlkZGM5MzRkZjU5Li5mYjdiNDk3MGI2NWMxOWEyZTljMzBjYjMzMjU2MDM2ODM5YjYw
MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTg4LDYgKzg4LDEwIEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSog
Y3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICByZXR1
cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVz
b3VyY2UpOwogI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6Ok1lZGlhUmVzb3VyY2U6CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2Uo
cmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVzb3VyY2UpOworI2VuZGlmCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291
cmNlOgogICAgICAgICByZXR1cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0KTsKQEAgLTIz
NCw5ICsyMzgsNTcgQEAgQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHQKIH0KICNlbmRpZgogCisjaWYg
UExBVEZPUk0oQ0hST01JVU0pCitzdGF0aWMgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdGFyZ2V0VHlw
ZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSB0eXBlKQor
eworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1N0eWxlU2hlZXQ6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVl
dDsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTY3JpcHQ6CisgICAgICAgIHJl
dHVybiBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0OworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRJc0ZvbnRSZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpGb250
UmVzb3VyY2U7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzSW1hZ2U6CisgICAg
Y2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzRmF2aWNvbjogLy8gWFhBSkMgLSBOb3QgaW4g
Y2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBlKCkgdHJlYXQgc2FtZSBhcyBpbWFnZT8KKyAg
ICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOworICAgIGNhc2UgUmVz
b3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOgorICAgICAgICByZXR1cm4gQ2FjaGVk
UmVzb3VyY2U6OlJhd1Jlc291cmNlOworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1dvcmtlcjogLy8gWFhBSkMgLSBOb3QgaW4gY2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBl
KCkgdHJlYXQgc2FtZSBhcyBTY3JpcHQ/CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dElzU2hhcmVkV29ya2VyOiAvLyBYWEFKQyAtIE5vdCBpbiBjYWNoZWRSZXNvdXJjZVR5cGVUb1Rh
cmdldFR5cGUoKSB0cmVhdCBzYW1lIGFzIFNjcmlwdD8KKyAgICAgICAgcmV0dXJuIENhY2hlZFJl
c291cmNlOjpTY3JpcHQ7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzT2JqZWN0
OiAvLyBYWEFKQyAtIFNob3VsZCB0aGlzIGJlIHNvbWV0aGluZyBvdGhlciB0aGFuIFJhd1Jlc291
cmNlPworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc01haW5GcmFtZTogLy8gWFhB
SkMgLSBTaG91bGQgdGhpcyBiZSBzb21ldGhpbmcgb3RoZXIgdGhhbiBSYXdSZXNvdXJjZT8KKyAg
ICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJmcmFtZTogLy8gWFhBSkMgLSBTaG91
bGQgdGhpcyBiZSBzb21ldGhpbmcgb3RoZXIgdGhhbiBSYXdSZXNvdXJjZT8KKyAgICBjYXNlIFJl
c291cmNlUmVxdWVzdDo6VGFyZ2V0SXNYSFI6IC8vIFhYQUpDIC0gU2hvdWxkIHRoaXMgYmUgc29t
ZXRoaW5nIG90aGVyIHRoYW4gUmF3UmVzb3VyY2U/CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzVW5zcGVjaWZpZWQ6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6UmF3
UmVzb3VyY2U7CisjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCisgICAgY2FzZSBSZXNvdXJjZVJl
cXVlc3Q6OlRhcmdldElzUHJlZmV0Y2g6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6
TGlua1ByZWZldGNoOworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZXJlbmRl
cjoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOworI2VuZGlm
CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc01l
ZGlhOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVzb3VyY2U7CisjZW5k
aWYKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRh
cmdldElzVGV4dFRyYWNrOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFj
a1Jlc291cmNlOworI2VuZGlmCisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U7Cit9CisjZW5kaWYKKwogQ2FjaGVk
UmF3UmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlv
bnMpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jlc291cmNlKj4ocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCks
IG9wdGlvbnMsIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgZmFsc2UpKTsKKyAgICBD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOwor
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIHR5cGUgPSB0YXJnZXRUeXBlVG9DYWNoZWRSZXNv
dXJjZVR5cGUocmVxdWVzdC50YXJnZXRUeXBlKCkpOworI2VuZGlmCisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENhY2hlZFJhd1Jlc291cmNlKj4ocmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3Qs
IFN0cmluZygpLCBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGZhbHNl
KSk7CiB9CiAKIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50
KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybCkgY29uc3QKQEAgLTI1
Myw2ICszMDUsOSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29u
dGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdAogICAgICAgICAgICAgaWYgKCFm
LT5sb2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChtX2RvY3VtZW50LT5zZWN1cml0
eU9yaWdpbigpLCB1cmwpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
YnJlYWs7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlh
UmVzb3VyY2U6CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAjZW5kaWYKQEAgLTMwNCw2ICszNTksOSBA
QCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpU
eXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQ
cmVyZW5kZXI6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogI2Vu
ZGlmCisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVz
b3VyY2U6CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAjZW5kaWYKQEAgLTM2OSw2ICs0MjcsOSBAQCBi
b29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJy
ZXNvdXJjZToKICNlbmRpZgogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKKyNlbmRpZgogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToK
ICAgICAgICAgLy8gQ3VlcyBhcmVuJ3QgY2FsbGVkIG91dCBpbiB0aGUgQ1BTIHNwZWMgeWV0LCBi
dXQgdGhleSBvbmx5IHdvcmsgd2l0aCBhIG1lZGlhIGVsZW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116997</attachid>
            <date>2011-11-29 10:47:40 -0800</date>
            <delta_ts>2011-11-30 14:59:18 -0800</delta_ts>
            <desc>Added Layout Tests</desc>
            <filename>bug-72178-20111129104739.patch</filename>
            <type>text/plain</type>
            <size>16389</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxOTRiMjkwNWQwNDll
OGQ1MjZlMmRmYzMyMmY5Mjc4ZDg1NzQzZS4uYzcwN2ZkYWU4ZjVhMDc1YjBiNzUzYTk2NzRhODkx
Y2NiZGNiNGIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTExLTI5ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBtaXhlZCBj
b250ZW50IGhhbmRsaW5nIGZvciBBc3NvY2lhdGVkVVJMTG9hZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1h
aW4tZnJhbWUuaHRtbAorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpjYWNo
ZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlOjp0YXJnZXRUeXBlVG9DYWNoZWRSZXNvdXJjZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorCiAyMDExLTEx
LTI1ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gV2ViIEluc3BlY3RvcjogZ2V0IHJpZCBvZiBXZWJEZXZUb29sc0Zyb250ZW5kQ2xp
ZW50OjpzZW5kRnJvbnRlbmRMb2FkZWQgbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA1YzU2NWYyN2I4NDM1NjRlYzU3
ZTVmMWY4Mzk4ODE3Njc0ZDQxNDRhLi5mNjkwOTM3OTRiYmI0ZTJmZmJkYzZiYWFjZTRiNTIxNmYy
NDMzYmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIENhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRS
YXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKIH0KIAorQ2Fj
aGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0LCBUeXBlIHR5cGUpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVl
c3QsIHR5cGUpCisgICAgLCBtX2RhdGFMZW5ndGgoMCkKK3sKK30KKwogdm9pZCBDYWNoZWRSYXdS
ZXNvdXJjZTo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRh
UmVjZWl2ZWQpCiB7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+
IHByb3RlY3QodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
YXdSZXNvdXJjZS5oCmluZGV4IDliMGNhYjUyMzU1NjU5ZDdhZWZhODY4ZWI4YjBhMTdkMGY2MGI3
OGUuLjQ3MDZkM2Q4MmJlNDY2YTg0ZTFiNGE1MWYyZTAzMzg0ODcxNmQ1NzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCkBAIC0zMSw2ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlIDogcHVi
bGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKICAgICBDYWNoZWRSYXdSZXNvdXJjZShSZXNv
dXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmLCBU
eXBlKTsKIAogICAgIC8vIEZJWE1FOiBBc3NvY2lhdGVkVVJMTG9hZGVyIHNob3VsZG4ndCBiZSBh
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBhbmQgdGhlcmVmb3JlIHNob3VsZG4ndAogICAgIC8v
IHVzZSBDYWNoZWRSYXdSZXNvdXJjZS4gSG93ZXZlciwgaXQgaXMsIGFuZCBpdCBuZWVkcyB0byBi
ZSBhYmxlIHRvIGRlZmVyIGxvYWRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAppbmRleCBlMWQxZGVjZGEwMjYwYzIzMGJjMWUzZTIxMTRmMjQy
YWQ3MmIxMGZmLi5iOTNjNzBlZWIwOTQzMzFjOTRkOGU5NWEzZjljYzU1MzJiMGYwZWQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTcz
LDYgKzczLDEwIEBAIHN0YXRpYyBSZXNvdXJjZUxvYWRQcmlvcml0eSBkZWZhdWx0UHJpb3JpdHlG
b3JSZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUKICAgICAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9h
ZFByaW9yaXR5VmVyeUxvdzsKICNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKKyAgICAgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKKyAgICAgICAgICAgIHJldHVybiBSZXNv
dXJjZUxvYWRQcmlvcml0eU1lZGl1bTsKKyNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
ICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAgICAgICAg
ICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c7CkBAIC0xMTEsNiArMTE1LDEwIEBA
IHN0YXRpYyBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgY2FjaGVkUmVzb3VyY2VUeXBlVG9U
YXJnZXRUeXBlKENhY2hlZFJlc291cmNlCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1
YnJlc291cmNlOgogICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJl
c291cmNlOwogI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6Ok1lZGlhUmVzb3VyY2U6CisgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dElzTWVkaWE7CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJl
cXVlc3Q6OlRhcmdldElzVGV4dFRyYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuaAppbmRleCBlYWMyNjIxMDE5NWMzZGY3MmQ5MWI4Y2E3MjNhZjMxMTM1
MmEwMzdlLi43ZjAzN2Y3Njg1YmQ3ZTdiYWJmNTVkZDdmNmNlMTk5NDViMjlkYjRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtNzksNiArNzks
OSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgICAgICAsIFNoYWRlclJl
c291cmNlCiAjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCisgICAgICAgICwgTWVkaWFSZXNvdXJj
ZQorI2VuZGlmCiAgICAgfTsKIAogICAgIGVudW0gU3RhdHVzIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGM3ZjA2
ODYzMjQ2N2ZhMDdmNjdmYjQ2OWE2ZjI4OWRkYzkzNGRmNTkuLmUwMGY4MDMwZmYwODg0OGY2NDA0
MGNiMDk2MzMwNDc0YTJhODQ5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtODgsNiArODgsMTAgQEAgc3RhdGlj
IENhY2hlZFJlc291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBl
LCBSZXNvdXJjZVJlcXVlc3QKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3Vy
Y2U6CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVz
b3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIG5ldyBD
YWNoZWRSYXdSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZSk7
CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4dFRyYWNr
KHJlcXVlc3QpOwpAQCAtMjM0LDkgKzIzOCw1NyBAQCBDYWNoZWRSZXNvdXJjZSogQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdAog
fQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKK3N0YXRpYyBDYWNoZWRSZXNvdXJj
ZTo6VHlwZSB0YXJnZXRUeXBlVG9DYWNoZWRSZXNvdXJjZVR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzU3R5bGVTaGVldDoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291
cmNlOjpDU1NTdHlsZVNoZWV0OworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1Nj
cmlwdDoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpTY3JpcHQ7CisgICAgY2FzZSBS
ZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzRm9udFJlc291cmNlOgorICAgICAgICByZXR1cm4gQ2Fj
aGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZTsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFy
Z2V0SXNJbWFnZToKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uOiAv
LyBYWEFKQyAtIE5vdCBpbiBjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUoKSB0cmVhdCBz
YW1lIGFzIGltYWdlPworICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3Vy
Y2U7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U6CisgICAg
ICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U7CisgICAgY2FzZSBSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzV29ya2VyOiAvLyBYWEFKQyAtIE5vdCBpbiBjYWNoZWRSZXNvdXJj
ZVR5cGVUb1RhcmdldFR5cGUoKSB0cmVhdCBzYW1lIGFzIFNjcmlwdD8KKyAgICBjYXNlIFJlc291
cmNlUmVxdWVzdDo6VGFyZ2V0SXNTaGFyZWRXb3JrZXI6IC8vIFhYQUpDIC0gTm90IGluIGNhY2hl
ZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZSgpIHRyZWF0IHNhbWUgYXMgU2NyaXB0PworICAgICAg
ICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0SXNPYmplY3Q6IC8vIFhYQUpDIC0gU2hvdWxkIHRoaXMgYmUgc29tZXRoaW5nIG90
aGVyIHRoYW4gUmF3UmVzb3VyY2U/CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElz
TWFpbkZyYW1lOiAvLyBYWEFKQyAtIFNob3VsZCB0aGlzIGJlIHNvbWV0aGluZyBvdGhlciB0aGFu
IFJhd1Jlc291cmNlPworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YmZyYW1l
OiAvLyBYWEFKQyAtIFNob3VsZCB0aGlzIGJlIHNvbWV0aGluZyBvdGhlciB0aGFuIFJhd1Jlc291
cmNlPworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1hIUjogLy8gWFhBSkMgLSBT
aG91bGQgdGhpcyBiZSBzb21ldGhpbmcgb3RoZXIgdGhhbiBSYXdSZXNvdXJjZT8KKyAgICBjYXNl
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNVbnNwZWNpZmllZDoKKyAgICAgICAgcmV0dXJuIENh
Y2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZTsKKyNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKKyAg
ICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVmZXRjaDoKKyAgICAgICAgcmV0dXJu
IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzUHJlcmVuZGVyOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQ
cmVyZW5kZXI7CisjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCisgICAgY2FzZSBSZXNvdXJjZVJl
cXVlc3Q6OlRhcmdldElzTWVkaWE6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6TWVk
aWFSZXNvdXJjZTsKKyNlbmRpZgorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBjYXNlIFJl
c291cmNlUmVxdWVzdDo6VGFyZ2V0SXNUZXh0VHJhY2s6CisgICAgICAgIHJldHVybiBDYWNoZWRS
ZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U7CisjZW5kaWYKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZTsKK30K
KyNlbmRpZgorCiBDYWNoZWRSYXdSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlTG9h
ZGVyT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3
UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlLCBy
ZXF1ZXN0LCBTdHJpbmcoKSwgb3B0aW9ucywgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVk
LCBmYWxzZSkpOworICAgIENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUgPSBDYWNoZWRSZXNvdXJj
ZTo6UmF3UmVzb3VyY2U7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgdHlwZSA9IHRhcmdl
dFR5cGVUb0NhY2hlZFJlc291cmNlVHlwZShyZXF1ZXN0LnRhcmdldFR5cGUoKSk7CisjZW5kaWYK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3Vy
Y2UodHlwZSwgcmVxdWVzdCwgU3RyaW5nKCksIG9wdGlvbnMsIFJlc291cmNlTG9hZFByaW9yaXR5
VW5yZXNvbHZlZCwgZmFsc2UpKTsKIH0KIAogYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hl
Y2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYg
dXJsKSBjb25zdApAQCAtMjUzLDYgKzMwNSw5IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OmNoZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0CiAg
ICAgICAgICAgICBpZiAoIWYtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KG1f
ZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoVklERU8pCisgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKKyNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICNlbmRpZgpA
QCAtMzA0LDYgKzM1OSw5IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3Qo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5r
U3VicmVzb3VyY2U6CiAjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCisgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKKyNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICNlbmRpZgpAQCAt
MzY5LDggKzQyNywxMSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNlbmRpZgogICAgICAgICBicmVhazsKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNr
UmVzb3VyY2U6CisjZW5kaWYKICAgICAgICAgLy8gQ3VlcyBhcmVuJ3QgY2FsbGVkIG91dCBpbiB0
aGUgQ1BTIHNwZWMgeWV0LCBidXQgdGhleSBvbmx5IHdvcmsgd2l0aCBhIG1lZGlhIGVsZW1lbnQK
ICAgICAgICAgLy8gc28gdXNlIHRoZSBtZWRpYSBwb2xpY3kuCiAgICAgICAgIGlmICghbV9kb2N1
bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93TWVkaWFGcm9tU291cmNlKHVybCkp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOTdhYTVhMGI4MWEzZmU2NmMwMzE1YjRmOGQ3YWE3ZmNlNTBlNjU2YS4uOTEyZDUw
NzYwODhjNGYxYzY1Y2M5MTYzNDhmYzRiMjIyYWE1ZDU3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDExLTExLTI5ICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEZpeCBtaXhlZCBjb250ZW50IGhhbmRsaW5nIGZvciBBc3NvY2lhdGVkVVJMTG9hZGVy
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFtZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1l
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0
aC1pbnNlY3VyZS12aWRlby5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0yNSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVzb3Vy
Y2UtdHJlZS1lcnJvcnMtcmVsb2FkLmh0bWwgaXMgZmxha3kuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1p
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNDBiMjA1YjhjMGM2MmI1NmJiMmIwZjJhNjliYWJiMzdiNjVmZmQ4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1
cmUtdmlkZW8taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitmcmFtZSAi
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitm
cmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkQ29tbWl0TG9hZEZv
ckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1l
MC0tPi0tPiIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRp
ZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTAtLT4tLT4iIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmlu
aXNoTG9hZEZvckZyYW1lCitUaGlzIHRlc3QgbG9hZHMgYSBzZWN1cmUgaWZyYW1lIHRoYXQgbG9h
ZHMgYW4gaW5zZWN1cmUgdmlkZW8uIFdlIHNob3VsZCAqbm90KiBnZXQgYSBtaXhlZCBjb250ZW50
IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaXMgSFRUUCBhbmQgdGhlIHZpZGVvIGRv
ZXNuJ3QgY29udGFtaW5hdGUgdGhlIGNoaWxkIGlmcmFtZSdzIHNlY3VyaXR5IG9yaWdpbiB3aXRo
IG1peGVkIGNvbnRlbnQuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1p
bi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTMzYWQ5ZjJiZWY4ODdjZDQ1MDFhMDkyOGFiMmUz
NzY3OWE4MWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWwKQEAgLTAsMCAr
MSwxNCBAQAorPGh0bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxwPlRoaXMgdGVzdCBsb2FkcyBhIHNlY3VyZSBpZnJh
bWUgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlby4gIFdlIHNob3VsZAorKm5vdCogZ2V0IGEg
bWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGlzIEhUVFAgYW5k
IHRoZSB2aWRlbworZG9lc24ndCBjb250YW1pbmF0ZSB0aGUgY2hpbGQgaWZyYW1lJ3Mgc2VjdXJp
dHkgb3JpZ2luIHdpdGggbWl4ZWQgY29udGVudC48L3A+CisgICAgICAgIDxpZnJhbWUgc3JjPSJo
dHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJh
bWUtd2l0aC1pbnNlY3VyZS12aWRlby5odG1sIj48L2lmcmFtZT4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1h
aW4tZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NjhlZWE1NDIzZGQxZjQ0ODJhMjc5
YzU0OGZlYzBkMWQ0YjBhMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZy
YW1lCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJh
bWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDb21taXRMb2FkRm9y
RnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBm
cmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmlu
aXNoTG9hZEZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVGhlIHBhZ2UgYXQgaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1l
LXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbCBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVudCBmcm9t
IGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9yZXNvdXJjZXMvdGVzdC5vZ3YuCisKK2RpZERpc3BsYXlJ
bnNlY3VyZUNvbnRlbnQKK1RoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGlu
c2VjdXJlIHZpZGVvLiBXZSBzaG91bGQgdHJpZ2dlciBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sg
YmVjYXVzZSB0aGUgbWFpbiBmcmFtZSBpbiB0aGUgd2luZG93IGlzIEhUVFBTIGJ1dCBpcyBkaXNw
bGF5aW5nIGluc2VjdXJlIGNvbnRlbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3Vy
ZS12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTdmYmU2M2VjZTVlNDc4MWQx
M2M5MzMxMGJlMGMxOGFiYTQ5MzlmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJh
bWUuaHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNj
cmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsKKyAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwor
ICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2lu
ZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZSkgeworICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0sIGZh
bHNlKTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IG9wZW5zIGEg
d2luZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8uICBXZSBzaG91bGQgdHJpZ2dlciBh
CittaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhlIHdp
bmRvdyBpcyBIVFRQUyBidXQgaXMKK2Rpc3BsYXlpbmcgaW5zZWN1cmUgY29udGVudC48L3A+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB3aW5kb3cub3BlbigiaHR0cHM6Ly8xMjcuMC4w
LjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1
cmUtdmlkZW8uaHRtbCIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS12aWRlby5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5z
ZWN1cmUtdmlkZW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTc5NWFhY2I5ODBlZjM0YzBjOTBlNDYzZjA3
NTRjZTMyMzU4OWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8u
aHRtbApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBmcmFtZUxvYWRlZCgpIHsKKyAgICAgICAg
ICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Jyk7CisKKyAgICAgICAg
ICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgnZG9uZScsICcqJyk7CisgICAgICAg
ICAgICAgICAgIH0sIHRydWUpOworCisgICAgICAgICAgICAgICAgdmFyIG1lZGlhRmlsZSA9IGZp
bmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ3Jlc291cmNlcy90ZXN0Jyk7CisgICAgICAgICAgICAgICAg
dmlkZW8uc3JjID0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODA4MC8nICsgbWVkaWFGaWxlOworICAgICAg
ICAgICAgICAgIHZpZGVvLnBsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0iZnJhbWVMb2FkZWQoKSI+CisgICAgICAg
IDx2aWRlbyBpZD0idiI+IDwvdmlkZW8+CisgICAgICAgIDxwPlRlc3QgdGhhdCBhdCBsZWFzdCBv
bmUgcHJvZ3Jlc3MgZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgc3RhcnRpbmcgdG8gbG9hZCB0aGUgdmlk
ZW8uPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117282</attachid>
            <date>2011-11-30 14:59:30 -0800</date>
            <delta_ts>2011-12-01 13:43:18 -0800</delta_ts>
            <desc>Only consult targetType() when determining whether it is ok to request the resource.</desc>
            <filename>bug-72178-20111130145929.patch</filename>
            <type>text/plain</type>
            <size>16008</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUxODEzMGUxYTlkN2Qy
ZDVhYTliODdjMzY3ODg1NTk5MDNhYjY2YS4uOTk0YTUzNzg3YjczZTlmNTNlY2Q1NmI4NDMxNjNi
NmEwYmRhMWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTExLTMwICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBtaXhlZCBj
b250ZW50IGhhbmRsaW5nIGZvciBBc3NvY2lhdGVkVVJMTG9hZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1h
aW4tZnJhbWUuaHRtbAorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpjYWNo
ZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6dGFyZ2V0VHlwZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorCiAyMDExLTExLTMw
ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2luQ2Fp
cm9dIENvcnJlY3QgU2ltcGxlRm9udERhdGEgaW1wbGVtZW50YXRpb24gdG8gbWF0Y2ggQXBwbGUg
cmVzdWx0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
YXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuY3BwCmluZGV4IDYzZjgxYzlhN2VjN2VkNmVmYzdkNDg3MTQ0ZWEzMGMzNWJiMDYzNzcu
LjZjODc2YzgwOTFhNWRmNTg5N2I2MTg4MDQ0MTlkZDdhNDk1NzdhYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtNDEsNiAr
NDEsMTIgQEAgQ2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogewogfQogCitDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVk
UmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFR5cGUgdHlwZSkK
KyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgdHlwZSkKKyAgICAsIG1fZGF0
YUxlbmd0aCgwKQoreworfQorCiB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkYXRhKFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKIHsKICAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcHJvdGVjdCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKaW5kZXggOWIw
Y2FiNTIzNTU2NTlkN2FlZmE4NjhlYjhiMGExN2QwZjYwYjc4ZS4uNDcwNmQzZDgyYmU0NjZhODRl
MWI0YTUxZjJlMDMzODQ4NzE2ZDU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2UgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2Ugewog
cHVibGljOgogICAgIENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYpOworICAgIENh
Y2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUpOwogCiAgICAgLy8gRklYTUU6
IEFzc29jaWF0ZWRVUkxMb2FkZXIgc2hvdWxkbid0IGJlIGEgRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyIGFuZCB0aGVyZWZvcmUgc2hvdWxkbid0CiAgICAgLy8gdXNlIENhY2hlZFJhd1Jlc291cmNl
LiBIb3dldmVyLCBpdCBpcywgYW5kIGl0IG5lZWRzIHRvIGJlIGFibGUgdG8gZGVmZXIgbG9hZGlu
Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmlu
ZGV4IGUxZDFkZWNkYTAyNjBjMjMwYmMxZTNlMjExNGYyNDJhZDcyYjEwZmYuLmI5M2M3MGVlYjA5
NDMzMWM5NGQ4ZTk1YTNmOWNjNTUzMmIwZjBlZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNzMsNiArNzMsMTAgQEAgc3RhdGljIFJl
c291cmNlTG9hZFByaW9yaXR5IGRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZShDYWNoZWRS
ZXNvdXJjZTo6VHlwZQogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3Vy
Y2U6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFZJREVPKQorICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRp
YVJlc291cmNlOgorICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5TWVkaXVt
OworI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxv
YWRQcmlvcml0eUxvdzsKQEAgLTExMSw2ICsxMTUsMTAgQEAgc3RhdGljIFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0VHlwZSBjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUoQ2FjaGVkUmVzb3Vy
Y2UKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgIHJl
dHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CiAjZW5kaWYKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKKyAg
ICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNNZWRpYTsKKyNlbmRpZgogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tS
ZXNvdXJjZToKICAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNUZXh0VHJh
Y2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4
IGVhYzI2MjEwMTk1YzNkZjcyZDkxYjhjYTcyM2FmMzExMzUyYTAzN2UuLjdmMDM3Zjc2ODViZDdl
N2JhYmY1NWRkN2Y2Y2UxOTk0NWIyOWRiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC03OSw2ICs3OSw5IEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoQ1NTX1NIQURFUlMpCiAgICAgICAgICwgU2hhZGVyUmVzb3VyY2UKICNlbmRpZgorI2lmIEVO
QUJMRShWSURFTykKKyAgICAgICAgLCBNZWRpYVJlc291cmNlCisjZW5kaWYKICAgICB9OwogCiAg
ICAgZW51bSBTdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzdmMDY4NjMyNDY3ZmEwN2Y2N2ZiNDY5YTZm
Mjg5ZGRjOTM0ZGY1OS4uNzVlYjAzOWI5NTQxZWM2NDBlMTFmYTMyOTI3NjViZmI4YjAzYjA1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC04OCw2ICs4OCwxMCBAQCBzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0
ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdAogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICAgICAgICAgcmV0dXJuIG5l
dyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNl
KTsKICNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpN
ZWRpYVJlc291cmNlOgorICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJhd1Jlc291cmNlKHJlcXVl
c3QsIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlKTsKKyNlbmRpZgogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToK
ICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRUZXh0VHJhY2socmVxdWVzdCk7CkBAIC0yNTMsNiAr
MjU3LDkgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICAgICAgICAgIGlmICghZi0+bG9h
ZGVyKCktPmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQobV9kb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKSwgdXJsKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFr
OworI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291
cmNlOgorI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgogI2VuZGlmCkBAIC0zMDQsNiArMzExLDkgQEAgYm9v
bCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVu
ZGVyOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNlbmRpZgor
I2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNl
OgorI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlRleHRUcmFja1Jlc291cmNlOgogI2VuZGlmCkBAIC0zNjksOCArMzc5LDExIEBAIGJvb2wg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291
cmNlOgogI2VuZGlmCiAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlOgogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKKyNlbmRpZgogICAg
ICAgICAvLyBDdWVzIGFyZW4ndCBjYWxsZWQgb3V0IGluIHRoZSBDUFMgc3BlYyB5ZXQsIGJ1dCB0
aGV5IG9ubHkgd29yayB3aXRoIGEgbWVkaWEgZWxlbWVudAogICAgICAgICAvLyBzbyB1c2UgdGhl
IG1lZGlhIHBvbGljeS4KICAgICAgICAgaWYgKCFtX2RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKS0+YWxsb3dNZWRpYUZyb21Tb3VyY2UodXJsKSkKQEAgLTM5MCw2ICs0MDMsNTAgQEAg
Ym9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlw
ZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQorc3RhdGljIENhY2hlZFJlc291cmNlOjpUeXBlIHRhcmdldFR5cGVUb0Nh
Y2hlZFJlc291cmNlVHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgdHlwZSkKK3sKKyAg
ICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdHls
ZVNoZWV0OgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ7Cisg
ICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU2NyaXB0OgorICAgICAgICByZXR1cm4g
Q2FjaGVkUmVzb3VyY2U6OlNjcmlwdDsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0
SXNGb250UmVzb3VyY2U6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291
cmNlOworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0ltYWdlOgorICAgIGNhc2Ug
UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb246CisgICAgICAgIHJldHVybiBDYWNoZWRS
ZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZTsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0
SXNTdWJyZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJj
ZTsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNXb3JrZXI6CisgICAgY2FzZSBS
ZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU2hhcmVkV29ya2VyOgorICAgICAgICByZXR1cm4gQ2Fj
aGVkUmVzb3VyY2U6OlNjcmlwdDsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNP
YmplY3Q6CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzTWFpbkZyYW1lOgorICAg
IGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YmZyYW1lOgorICAgIGNhc2UgUmVzb3Vy
Y2VSZXF1ZXN0OjpUYXJnZXRJc1hIUjoKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0
SXNVbnNwZWNpZmllZDoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJj
ZTsKKyNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6
VGFyZ2V0SXNQcmVmZXRjaDoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpMaW5rUHJl
ZmV0Y2g7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJlcmVuZGVyOgorICAg
ICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI7CisjZW5kaWYKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzTWVkaWE6Cisg
ICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZTsKKyNlbmRpZgorI2lm
IEVOQUJMRShWSURFT19UUkFDSykKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNU
ZXh0VHJhY2s6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3Vy
Y2U7CisjZW5kaWYKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZTsKK30KKyNlbmRpZgorCiBDYWNoZWRSZXNvdXJj
ZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSwgYm9vbCBmb3JQcmVsb2FkKQogewogICAgIEtVUkwgdXJsID0gcmVxdWVz
dC51cmwoKTsKQEAgLTQwMiw3ICs0NTksMTQgQEAgQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwKICAg
ICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCFjYW5S
ZXF1ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCisgICAgQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
Y2FuUmVxdWVzdFR5cGUgPSB0eXBlOworCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgaWYg
KGNhblJlcXVlc3RUeXBlID09IENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSkKKyAgICAgICAg
Y2FuUmVxdWVzdFR5cGUgPSB0YXJnZXRUeXBlVG9DYWNoZWRSZXNvdXJjZVR5cGUocmVxdWVzdC50
YXJnZXRUeXBlKCkpOworI2VuZGlmCisKKyAgICBpZiAoIWNhblJlcXVlc3QoY2FuUmVxdWVzdFR5
cGUsIHVybCwgZm9yUHJlbG9hZCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKG1lbW9y
eUNhY2hlKCktPmRpc2FibGVkKCkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NTM2ZTI2ZTJmODNmZWUwMmZiNjNhYjJk
N2ViYWVmNjRmMjQxMDIyLi4zMjE2MjkxZDU2YTE2MzVjZGI2MmEzYTMxNjYwMjUxNWE5NjU4MTc4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMzAgIEFhcm9uIENvbHdlbGwgIDxhY29s
d2VsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IG1peGVkIGNvbnRlbnQgaGFuZGxpbmcg
Zm9yIEFzc29jaWF0ZWRVUkxMb2FkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MjE3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1
cmUtdmlkZW8taW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2Vj
dXJlLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZy
YW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXZpZGVvLmh0bWw6IEFkZGVkLgorCiAy
MDExLTExLTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgbmV3IFNub3cgTGVvcGFyZCBiYXNlbGluZSBhZnRlciAxMDE1MzcuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9p
bnNlY3VyZS12aWRlby1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNDBiMjA1YjhjMGM2MmI1NmJiMmIwZjJhNjliYWJiMzdiNjVm
ZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3Vt
ZW50TG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4i
IC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFt
ZTAtLT4tLT4iIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFt
ZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCitmcmFtZSAiPCEt
LWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitt
YWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitUaGlzIHRlc3QgbG9hZHMgYSBzZWN1
cmUgaWZyYW1lIHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8uIFdlIHNob3VsZCAqbm90KiBn
ZXQgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaXMgSFRU
UCBhbmQgdGhlIHZpZGVvIGRvZXNuJ3QgY29udGFtaW5hdGUgdGhlIGNoaWxkIGlmcmFtZSdzIHNl
Y3VyaXR5IG9yaWdpbiB3aXRoIG1peGVkIGNvbnRlbnQuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4t
aWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9pbnNlY3VyZS12aWRlby1pbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTMzYWQ5ZjJiZWY4
ODdjZDQ1MDFhMDkyOGFiMmUzNzY3OWE4MWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZy
YW1lLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGh0bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxwPlRoaXMgdGVzdCBs
b2FkcyBhIHNlY3VyZSBpZnJhbWUgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlby4gIFdlIHNo
b3VsZAorKm5vdCogZ2V0IGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRoZSBtYWlu
IGZyYW1lIGlzIEhUVFAgYW5kIHRoZSB2aWRlbworZG9lc24ndCBjb250YW1pbmF0ZSB0aGUgY2hp
bGQgaWZyYW1lJ3Mgc2VjdXJpdHkgb3JpZ2luIHdpdGggbWl4ZWQgY29udGVudC48L3A+CisgICAg
ICAgIDxpZnJhbWUgc3JjPSJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS12aWRlby5odG1sIj48L2lmcmFtZT4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2lu
c2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1Njhl
ZWE1NDIzZGQxZjQ0ODJhMjc5YzU0OGZlYzBkMWQ0YjBhMTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRl
by1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACittYWluIGZyYW1l
IC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRz
Rm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUg
LSBkaWRDb21taXRMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCitt
YWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogVGhlIHBhZ2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRl
bnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbCBkaXNwbGF5ZWQgaW5z
ZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9yZXNvdXJjZXMvdGVzdC5v
Z3YuCisKK2RpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQKK1RoaXMgdGVzdCBvcGVucyBhIHdpbmRv
dyB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHZpZGVvLiBXZSBzaG91bGQgdHJpZ2dlciBhIG1peGVk
IGNvbnRlbnQgY2FsbGJhY2sgYmVjYXVzZSB0aGUgbWFpbiBmcmFtZSBpbiB0aGUgd2luZG93IGlz
IEhUVFBTIGJ1dCBpcyBkaXNwbGF5aW5nIGluc2VjdXJlIGNvbnRlbnQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRl
by1pbi1tYWluLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTdmYmU2M2VjZTVlNDc4MWQxM2M5MzMxMGJlMGMxOGFiYTQ5MzlmMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJl
LXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBGcmFtZUxv
YWRDYWxsYmFja3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRD
YW5PcGVuV2luZG93cygpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlv
biAoZSkgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHA+
VGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8uICBX
ZSBzaG91bGQgdHJpZ2dlciBhCittaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1h
aW4gZnJhbWUgaW4gdGhlIHdpbmRvdyBpcyBIVFRQUyBidXQgaXMKK2Rpc3BsYXlpbmcgaW5zZWN1
cmUgY29udGVudC48L3A+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB3aW5kb3cub3Bl
bigiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2Vz
L2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbCIpOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS12aWRlby5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3Vy
Y2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTc5NWFhY2I5
ODBlZjM0YzBjOTBlNDYzZjA3NTRjZTMyMzU4OWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdp
dGgtaW5zZWN1cmUtdmlkZW8uaHRtbApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBmcmFtZUxv
YWRlZCgpIHsKKyAgICAgICAgICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd2Jyk7CisKKyAgICAgICAgICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3Rh
cnQnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVy
KQorICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgnZG9u
ZScsICcqJyk7CisgICAgICAgICAgICAgICAgIH0sIHRydWUpOworCisgICAgICAgICAgICAgICAg
dmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ3Jlc291cmNlcy90ZXN0Jyk7
CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODA4MC8nICsg
bWVkaWFGaWxlOworICAgICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0iZnJhbWVM
b2FkZWQoKSI+CisgICAgICAgIDx2aWRlbyBpZD0idiI+IDwvdmlkZW8+CisgICAgICAgIDxwPlRl
c3QgdGhhdCBhdCBsZWFzdCBvbmUgcHJvZ3Jlc3MgZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgc3RhcnRp
bmcgdG8gbG9hZCB0aGUgdmlkZW8uPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117479</attachid>
            <date>2011-12-01 13:43:22 -0800</date>
            <delta_ts>2011-12-02 09:45:17 -0800</delta_ts>
            <desc>Fix redirects and added layout tests to verify the fix.</desc>
            <filename>bug-72178-20111201134321.patch</filename>
            <type>text/plain</type>
            <size>26635</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4NWQzNDU4ODRmZDY4
Y2YyZTljMGI4ODc3YzAyNTQ1MDQ5ZjI5NC4uOTM1MjVkMWM3ZDM1MDU2ZmY2N2I0M2MyMmQ3MzJi
YTY2ZWIxMWFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDExLTEyLTAxICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBtaXhlZCBj
b250ZW50IGhhbmRsaW5nIGZvciBBc3NvY2lhdGVkVVJMTG9hZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1h
aW4tZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENv
bnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0
dHBzLXRvLWh0dHAtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCisKKyAgICAgICAgKiBsb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jl
c291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRS
YXdSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OnRhcmdldFR5cGVUb0NhY2hlZFJlc291cmNlVHlwZSk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJl
Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKToKKwogMjAxMS0xMi0wMSAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVXNlIGNvbnRlbnRCb3VuZHMgaW5zdGVhZCBvZiBi
b3VuZHMgZm9yIGludmFsaWRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IGFhNDQzOWFlMjI5ZGU4ODNmYmMxMjBhNGNlYjM3NThlMTQ3M2Fh
YjAuLmY1NDkwN2Y1Mjk1YmE0MTNlOWY0ZThhMTgwOTgyYzFkZWQyMjRkNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtMTI3LDEwICsxMjcsMTYg
QEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3UKIHsKICAgICAvLyBTdG9yZSB0aGUgcHJldmlvdXMg
VVJMIGJlY2F1c2UgdGhlIGNhbGwgdG8gUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCB3
aWxsIG1vZGlmeSBpdC4KICAgICBLVVJMIHByZXZpb3VzVVJMID0gcmVxdWVzdCgpLnVybCgpOwot
ICAgIAorICAgIENhY2hlZFJlc291cmNlOjpUeXBlIGNhblJlcXVlc3RUeXBlID0gbV9yZXNvdXJj
ZS0+dHlwZSgpOworCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgaWYgKGNhblJlcXVlc3RU
eXBlID09IENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSkKKyAgICAgICAgY2FuUmVxdWVzdFR5
cGUgPSBDYWNoZWRSZXNvdXJjZTo6dGFyZ2V0VHlwZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKHJlcXVl
c3QoKS50YXJnZXRUeXBlKCkpOworI2VuZGlmCisKICAgICBSZXNvdXJjZUxvYWRlcjo6d2lsbFNl
bmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIGlmICghcHJldmlv
dXNVUkwuaXNOdWxsKCkgJiYgIW5ld1JlcXVlc3QuaXNOdWxsKCkgJiYgcHJldmlvdXNVUkwgIT0g
bmV3UmVxdWVzdC51cmwoKSkgewotICAgICAgICBpZiAoIW1fZG9jdW1lbnQtPmNhY2hlZFJlc291
cmNlTG9hZGVyKCktPmNhblJlcXVlc3QobV9yZXNvdXJjZS0+dHlwZSgpLCBuZXdSZXF1ZXN0LnVy
bCgpKSkgeworICAgICAgICBpZiAoIW1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PmNhblJlcXVlc3QoY2FuUmVxdWVzdFR5cGUsIG5ld1JlcXVlc3QudXJsKCkpKSB7CiAgICAgICAg
ICAgICBjYW5jZWwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKaW5kZXggNjNm
ODFjOWE3ZWM3ZWQ2ZWZjN2Q0ODcxNDRlYTMwYzM1YmIwNjM3Ny4uNmM4NzZjODA5MWE1ZGY1ODk3
YjYxODgwNDQxOWRkN2E0OTU3N2FjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC00MSw2ICs0MSwxMiBAQCBDYWNoZWRSYXdS
ZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QpCiB7CiB9CiAKK0NhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgVHlwZSB0eXBlKQorICAgIDogQ2FjaGVkUmVzb3Vy
Y2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlKQorICAgICwgbV9kYXRhTGVuZ3RoKDApCit7Cit9CisK
IHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRh
dGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogewogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJhd1Jlc291cmNlPiBwcm90ZWN0KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCA5YjBjYWI1MjM1NTY1OWQ3YWVmYTg2
OGViOGIwYTE3ZDBmNjBiNzhlLi40NzA2ZDNkODJiZTQ2NmE4NGUxYjRhNTFmMmUwMzM4NDg3MTZk
NTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3Vy
Y2UuaApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRS
YXdSZXNvdXJjZSA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6CiAgICAgQ2FjaGVk
UmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0JiwgVHlwZSk7CiAKICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRl
ciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBz
aG91bGRuJ3QKICAgICAvLyB1c2UgQ2FjaGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBh
bmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBkZWZlciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggZTFkMWRlY2RhMDI2MGMy
MzBiYzFlM2UyMTE0ZjI0MmFkNzJiMTBmZi4uZmI1YjE4YTAxMGFhMzFjYTJmZWRmYWJmYmJjM2Nk
ZjQ0OTcyMTMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCkBAIC03Myw2ICs3MywxMCBAQCBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3JpdHkg
ZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlCiAgICAg
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICAgICAgICAgICAgIHJl
dHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7CiAjZW5kaWYKKyNpZiBFTkFCTEUoVklE
RU8pCisgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVzb3VyY2U6CisgICAgICAg
ICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlNZWRpdW07CisjZW5kaWYKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jl
c291cmNlOgogICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5TG93OwpAQCAt
MTExLDYgKzExNSwxMCBAQCBzdGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIGNhY2hl
ZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRSZXNvdXJjZQogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0SXNTdWJyZXNvdXJjZTsKICNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKKyAgICBj
YXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlOgorICAgICAgICByZXR1cm4gUmVzb3Vy
Y2VSZXF1ZXN0OjpUYXJnZXRJc01lZGlhOworI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgogICAgICAgICBy
ZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1RleHRUcmFjazsKQEAgLTExOSw2ICsxMjcs
NDkgQEAgc3RhdGljIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSBjYWNoZWRSZXNvdXJjZVR5
cGVUb1RhcmdldFR5cGUoQ2FjaGVkUmVzb3VyY2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOwogfQorCitD
YWNoZWRSZXNvdXJjZTo6VHlwZSBDYWNoZWRSZXNvdXJjZTo6dGFyZ2V0VHlwZVRvQ2FjaGVkUmVz
b3VyY2VUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSB0eXBlKQoreworICAgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N0eWxlU2hlZXQ6
CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDsKKyAgICBjYXNl
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTY3JpcHQ6CisgICAgICAgIHJldHVybiBDYWNoZWRS
ZXNvdXJjZTo6U2NyaXB0OworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0ZvbnRS
ZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2U7Cisg
ICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzSW1hZ2U6CisgICAgY2FzZSBSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzRmF2aWNvbjoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNl
OjpJbWFnZVJlc291cmNlOworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJl
c291cmNlOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOworICAg
IGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1dvcmtlcjoKKyAgICBjYXNlIFJlc291cmNl
UmVxdWVzdDo6VGFyZ2V0SXNTaGFyZWRXb3JrZXI6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNv
dXJjZTo6U2NyaXB0OworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc09iamVjdDoK
KyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNNYWluRnJhbWU6CisgICAgY2FzZSBS
ZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3ViZnJhbWU6CisgICAgY2FzZSBSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzWEhSOgorICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1Vuc3Bl
Y2lmaWVkOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOworI2lm
IEVOQUJMRShMSU5LX1BSRUZFVENIKQorICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1ByZWZldGNoOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDsK
KyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVyZW5kZXI6CisgICAgICAgIHJl
dHVybiBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjsKKyNlbmRpZgorI2lmIEVOQUJMRShW
SURFTykKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNNZWRpYToKKyAgICAgICAg
cmV0dXJuIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlOworI2VuZGlmCisjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQorICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1RleHRUcmFj
azoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZTsKKyNl
bmRpZgorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQ2FjaGVk
UmVzb3VyY2U6OlJhd1Jlc291cmNlOworfQorCiAjZW5kaWYKIAogREVGSU5FX0RFQlVHX09OTFlf
R0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwg
KCJDYWNoZWRSZXNvdXJjZSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmgKaW5kZXggZWFjMjYyMTAxOTVjM2RmNzJkOTFiOGNhNzIzYWYzMTEzNTJhMDM3
ZS4uMTljN2RlMWE3NjVmMmQ4ZDEwNWExZTRmYTEzODRhMWMyMzcxNzkyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTc5LDYgKzc5LDkgQEAg
cHVibGljOgogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICAgICAgLCBTaGFkZXJSZXNvdXJj
ZQogI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQorICAgICAgICAsIE1lZGlhUmVzb3VyY2UKKyNl
bmRpZgogICAgIH07CiAKICAgICBlbnVtIFN0YXR1cyB7CkBAIC0yMzgsNiArMjQxLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgLyog
Ynl0ZXNTZW50ICovLCB1bnNpZ25lZCBsb25nIGxvbmcgLyogdG90YWxCeXRlc1RvQmVTZW50ICov
KSB7IH0KICNpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICB2aXJ0dWFsIHZvaWQgZGlkRG93bmxv
YWREYXRhKGludCkgeyB9CisKKyAgICBzdGF0aWMgVHlwZSB0YXJnZXRUeXBlVG9DYWNoZWRSZXNv
dXJjZVR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlKTsKICNlbmRpZgogCiAgICAgdm9p
ZCBzZXRMb2FkRmluaXNoVGltZShkb3VibGUgZmluaXNoVGltZSkgeyBtX2xvYWRGaW5pc2hUaW1l
ID0gZmluaXNoVGltZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzdmMDY4NjMyNDY3ZmEwN2Y2N2ZiNDY5YTZm
Mjg5ZGRjOTM0ZGY1OS4uNmQ1M2JhMjBiNjFhYzBjOTE2Njg5NGNiNDE4OGE2ZWE3MzhjNmZjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC04OCw2ICs4OCwxMCBAQCBzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0
ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdAogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICAgICAgICAgcmV0dXJuIG5l
dyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNl
KTsKICNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpN
ZWRpYVJlc291cmNlOgorICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJhd1Jlc291cmNlKHJlcXVl
c3QsIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlKTsKKyNlbmRpZgogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToK
ICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRUZXh0VHJhY2socmVxdWVzdCk7CkBAIC0yNTMsNiAr
MjU3LDkgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICAgICAgICAgIGlmICghZi0+bG9h
ZGVyKCktPmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQobV9kb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKSwgdXJsKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFr
OworI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291
cmNlOgorI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgogI2VuZGlmCkBAIC0zMDQsNiArMzExLDkgQEAgYm9v
bCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVu
ZGVyOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNlbmRpZgor
I2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNl
OgorI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlRleHRUcmFja1Jlc291cmNlOgogI2VuZGlmCkBAIC0zNjksOCArMzc5LDExIEBAIGJvb2wg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291
cmNlOgogI2VuZGlmCiAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlOgogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKKyNlbmRpZgogICAg
ICAgICAvLyBDdWVzIGFyZW4ndCBjYWxsZWQgb3V0IGluIHRoZSBDUFMgc3BlYyB5ZXQsIGJ1dCB0
aGV5IG9ubHkgd29yayB3aXRoIGEgbWVkaWEgZWxlbWVudAogICAgICAgICAvLyBzbyB1c2UgdGhl
IG1lZGlhIHBvbGljeS4KICAgICAgICAgaWYgKCFtX2RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKS0+YWxsb3dNZWRpYUZyb21Tb3VyY2UodXJsKSkKQEAgLTQwMiw3ICs0MTUsMTQgQEAg
Q2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybiAwOwogCi0gICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkp
CisgICAgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgY2FuUmVxdWVzdFR5cGUgPSB0eXBlOworCisjaWYg
UExBVEZPUk0oQ0hST01JVU0pCisgICAgaWYgKGNhblJlcXVlc3RUeXBlID09IENhY2hlZFJlc291
cmNlOjpSYXdSZXNvdXJjZSkKKyAgICAgICAgY2FuUmVxdWVzdFR5cGUgPSBDYWNoZWRSZXNvdXJj
ZTo6dGFyZ2V0VHlwZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKHJlcXVlc3QudGFyZ2V0VHlwZSgpKTsK
KyNlbmRpZgorCisgICAgaWYgKCFjYW5SZXF1ZXN0KGNhblJlcXVlc3RUeXBlLCB1cmwsIGZvclBy
ZWxvYWQpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChtZW1vcnlDYWNoZSgpLT5kaXNh
YmxlZCgpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggN2JiYzI2NmNiOGVkMTU5YmE3ODg1NzkyNmQ3YWQ1NWJlOTMzZTFh
NS4uYmQ2ZDJkYWUxMWM0ZDI0ZjdhMWIyM2VlYTM2MmE5MGY5NDQxYzMzNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDExLTEyLTAxICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEZpeCBtaXhlZCBjb250ZW50IGhhbmRsaW5nIGZvciBBc3NvY2lhdGVk
VVJMTG9hZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzIxNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlm
cmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1t
YWluLWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1o
dHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwLXRv
LWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1p
bi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWlu
LWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXZpZGVvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFt
ZS13aXRoLXJlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8uaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgt
cmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby5odG1sOiBBZGRlZC4KKwogMjAxMS0xMi0wMSAg
SmVmZiBUaW1hbnVzICA8dHdpekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2xlYW5pbmcgdXAg
Y29tbWVudHMgYW5kIHVudXNlZCBwb3J0aW9ucyBvZiBhIHdlYmdsIHRlc3QsIGFzIHBlciByZXZp
ZXcgY29tbWVudHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8t
aW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDBiMjA1YjhjMGM2MmI1NmJiMmIw
ZjJhNjliYWJiMzdiNjVmZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFt
ZTAtLT4tLT4iIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAt
IGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwh
LS1mcmFtZTAtLT4tLT4iIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1l
UGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUK
K2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBkaWRIYW5kbGVPbmxv
YWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZy
YW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkRmluaXNo
TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitUaGlzIHRl
c3QgbG9hZHMgYSBzZWN1cmUgaWZyYW1lIHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8uIFdl
IHNob3VsZCAqbm90KiBnZXQgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1h
aW4gZnJhbWUgaXMgSFRUUCBhbmQgdGhlIHZpZGVvIGRvZXNuJ3QgY29udGFtaW5hdGUgdGhlIGNo
aWxkIGlmcmFtZSdzIHNlY3VyaXR5IG9yaWdpbiB3aXRoIG1peGVkIGNvbnRlbnQuCisKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5z
ZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNTMzYWQ5ZjJiZWY4ODdjZDQ1MDFhMDkyOGFiMmUzNzY3OWE4MWM2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1
cmUtdmlkZW8taW4taWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGh0bWw+CisgICAgPGJv
ZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBGcmFtZUxv
YWRDYWxsYmFja3MoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAg
IDxwPlRoaXMgdGVzdCBsb2FkcyBhIHNlY3VyZSBpZnJhbWUgdGhhdCBsb2FkcyBhbiBpbnNlY3Vy
ZSB2aWRlby4gIFdlIHNob3VsZAorKm5vdCogZ2V0IGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBi
ZWNhdXNlIHRoZSBtYWluIGZyYW1lIGlzIEhUVFAgYW5kIHRoZSB2aWRlbworZG9lc24ndCBjb250
YW1pbmF0ZSB0aGUgY2hpbGQgaWZyYW1lJ3Mgc2VjdXJpdHkgb3JpZ2luIHdpdGggbWl4ZWQgY29u
dGVudC48L3A+CisgICAgICAgIDxpZnJhbWUgc3JjPSJodHRwczovLzEyNy4wLjAuMTo4NDQzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS12aWRlby5o
dG1sIj48L2lmcmFtZT4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1t
YWluLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ1NjhlZWE1NDIzZGQxZjQ0ODJhMjc5YzU0OGZlYzBkMWQ0YjBhMTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBm
cmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFu
ZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJh
bWUKK21haW4gZnJhbWUgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2
ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogVGhlIHBhZ2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRt
bCBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9y
ZXNvdXJjZXMvdGVzdC5vZ3YuCisKK2RpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQKK1RoaXMgdGVz
dCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHZpZGVvLiBXZSBzaG91bGQg
dHJpZ2dlciBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgYmVjYXVzZSB0aGUgbWFpbiBmcmFtZSBp
biB0aGUgd2luZG93IGlzIEhUVFBTIGJ1dCBpcyBkaXNwbGF5aW5nIGluc2VjdXJlIGNvbnRlbnQu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTdmYmU2M2VjZTVlNDc4MWQxM2M5MzMxMGJlMGMxOGFiYTQ5MzlmMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbApAQCAtMCwwICsxLDI1IEBA
Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCBmdW5jdGlvbiAoZSkgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICA8L3Njcmlw
dD4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4gaW5z
ZWN1cmUgdmlkZW8uICBXZSBzaG91bGQgdHJpZ2dlciBhCittaXhlZCBjb250ZW50IGNhbGxiYWNr
IGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhlIHdpbmRvdyBpcyBIVFRQUyBidXQgaXMKK2Rp
c3BsYXlpbmcgaW5zZWN1cmUgY29udGVudC48L3A+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICB3aW5kb3cub3BlbigiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENv
bnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbCIpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBz
LXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1pbi1t
YWluLWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTVkM2IzMGIwZjU4MTE0ZmJiMzYy
ZWUyMDFlNzA3ZTA3ZTI5Yjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1p
bi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACittYWluIGZyYW1lIC0g
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9y
RnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBk
aWRDb21taXRMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCittYWlu
IGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTog
VGhlIHBhZ2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQv
cmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby5odG1sIGRp
c3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3Vy
aXR5L3Jlc291cmNlcy9yZWRpci5waHA/dXJsPWh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcmVzb3Vy
Y2VzL3Rlc3Qub2d2LgorCitkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50CitUaGlzIHRlc3Qgb3Bl
bnMgYSB3aW5kb3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlbyh2aWEgYSB0cmlja3kgcmVk
aXJlY3QpLiBXZSBzaG91bGQgdHJpZ2dlciBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgYmVjYXVz
ZSB0aGUgbWFpbiBmcmFtZSBpbiB0aGUgd2luZG93IGlzIEhUVFBTIGJ1dCBpcyBkaXNwbGF5aW5n
IGluc2VjdXJlIGNvbnRlbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4t
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3M2U0YTBkZDg4N2NmYmZhYzcyN2IxMmUyYWE3OTkzZmIzYWM0MzgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRp
cmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbApAQCAtMCwwICsxLDI1
IEBACis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVl
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCBmdW5jdGlvbiAoZSkgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICA8L3Nj
cmlwdD4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4g
aW5zZWN1cmUgdmlkZW8odmlhIGEgdHJpY2t5IAorcmVkaXJlY3QpLiAgV2Ugc2hvdWxkIHRyaWdn
ZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhl
IHdpbmRvdyBpcyBIVFRQUyBidXQgaXMKK2Rpc3BsYXlpbmcgaW5zZWN1cmUgY29udGVudC48L3A+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB3aW5kb3cub3BlbigiaHR0cHM6Ly8xMjcu
MC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVk
aXJlY3QtaHR0cC10by1odHRwcy12aWRlby5odG1sIik7CisgICAgICAgIDwvc2NyaXB0PgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlkZW8taW4tbWFpbi1m
cmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC9yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE2Mjk3ZWE5YzM2NzQzMzNiYzBjZjUzMDYxZDYwYjgwZjVhNTY5
NzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK21haW4gZnJhbWUgLSBkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJh
bWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFt
ZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRGb3JG
cmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZy
YW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5p
c2hMb2FkRm9yRnJhbWUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUaGUgcGFnZSBhdCBodHRw
czovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUt
d2l0aC1yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLmh0bWwgZGlzcGxheWVkIGluc2VjdXJl
IGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvcmVzb3VyY2VzL3Rlc3Qub2d2Lgor
CitkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50CitUaGlzIHRlc3Qgb3BlbnMgYSB3aW5kb3cgdGhh
dCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlbyh2aWEgYSB0cmlja3kgcmVkaXJlY3QpLiBXZSBzaG91
bGQgdHJpZ2dlciBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgYmVjYXVzZSB0aGUgbWFpbiBmcmFt
ZSBpbiB0aGUgd2luZG93IGlzIEhUVFBTIGJ1dCBpcyBkaXNwbGF5aW5nIGluc2VjdXJlIGNvbnRl
bnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBz
LXRvLWh0dHAtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZjVmNTg2Yjcy
YWE5ZGM5MTEwYzgxZTQ1Y2ZmNjA4NzQyMDhlODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwcy10by1o
dHRwLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5j
dGlvbiAoZSkgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAg
PHA+VGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8o
dmlhIGEgdHJpY2t5IAorcmVkaXJlY3QpLiAgV2Ugc2hvdWxkIHRyaWdnZXIgYSBtaXhlZCBjb250
ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhlIHdpbmRvdyBpcyBIVFRQ
UyBidXQgaXMKK2Rpc3BsYXlpbmcgaW5zZWN1cmUgY29udGVudC48L3A+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICB3aW5kb3cub3BlbigiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cHMtdG8t
aHR0cC12aWRlby5odG1sIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXZpZGVvLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1p
bnNlY3VyZS12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNTAyMjg0NjNjOWFiNjdhOGFlNDA0YTBh
ZjYzYTNjODZiOGE1ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS12aWRl
by5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iL21lZGlhLXJlc291cmNlcy9tZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIGZyYW1lTG9hZGVkKCkgeworICAgICAg
ICAgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3YnKTsKKworICAgICAg
ICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93Lm9wZW5lcikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoJ2RvbmUnLCAnKicpOwor
ICAgICAgICAgICAgICAgICB9LCB0cnVlKTsKKworICAgICAgICAgICAgICAgIHZhciBtZWRpYUZp
bGUgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICdyZXNvdXJjZXMvdGVzdCcpOworICAgICAgICAg
ICAgICAgIHZpZGVvLnNyYyA9ICdodHRwOi8vMTI3LjAuMC4xOjgwODAvJyArIG1lZGlhRmlsZTsK
KyAgICAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiPgor
ICAgICAgICA8dmlkZW8gaWQ9InYiPiA8L3ZpZGVvPgorICAgICAgICA8cD5UZXN0IHRoYXQgYXQg
bGVhc3Qgb25lIHByb2dyZXNzIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHN0YXJ0aW5nIHRvIGxvYWQg
dGhlIHZpZGVvLjwvcD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0
aC1yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1o
dHRwLXRvLWh0dHBzLXZpZGVvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVmYzljYzM3NDg5OWViYmM0Nzdk
NTU1M2ZhNDA3OWFjYzM5ZjM2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0
LWh0dHAtdG8taHR0cHMtdmlkZW8uaHRtbApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKyAgICA8
aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBmcmFt
ZUxvYWRlZCgpIHsKKyAgICAgICAgICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd2Jyk7CisKKyAgICAgICAgICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
ZWRtZXRhZGF0YScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy5vcGVuZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNz
YWdlKCdkb25lJywgJyonKTsKKyAgICAgICAgICAgICAgICAgfSwgdHJ1ZSk7CisKKyAgICAgICAg
ICAgICAgICB2YXIgbWVkaWFGaWxlID0gZmluZE1lZGlhRmlsZSgndmlkZW8nLCAncmVzb3VyY2Vz
L3Rlc3QnKTsKKyAgICAgICAgICAgICAgICB2aWRlby5zcmMgPSAnaHR0cDovLzEyNy4wLjAuMTo4
MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWRpci5waHA/dXJsPWh0dHBzOi8vMTI3LjAuMC4xOjg0
NDMvJyArIG1lZGlhRmlsZTsKKyAgICAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9
ImZyYW1lTG9hZGVkKCkiPgorICAgICAgICA8dmlkZW8gaWQ9InYiPiA8L3ZpZGVvPgorICAgICAg
ICA8cD5UZXN0IHRoYXQgYXQgbGVhc3Qgb25lIHByb2dyZXNzIGV2ZW50IGlzIGZpcmVkIGFmdGVy
IHN0YXJ0aW5nIHRvIGxvYWQgdGhlIHZpZGVvLjwvcD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9y
ZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJh
bWUtd2l0aC1yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgw
MjAxNDY0MDBlMmEzNTYyOGYwNmFiOWYwY2UwM2VkNjY3Y2QyMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9m
cmFtZS13aXRoLXJlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlkZW8uaHRtbApAQCAtMCwwICsxLDIz
IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii9tZWRpYS1yZXNv
dXJjZXMvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICBmdW5jdGlvbiBmcmFtZUxvYWRlZCgpIHsKKyAgICAgICAgICAgICAgICB2aWRlbyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Jyk7CisKKyAgICAgICAgICAgICAgICB2aWRlby5hZGRF
dmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5vcGVuZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3cub3BlbmVyLnBvc3RNZXNzYWdlKCdkb25lJywgJyonKTsKKyAgICAgICAgICAgICAgICAgfSwg
dHJ1ZSk7CisKKyAgICAgICAgICAgICAgICB2YXIgbWVkaWFGaWxlID0gZmluZE1lZGlhRmlsZSgn
dmlkZW8nLCAncmVzb3VyY2VzL3Rlc3QnKTsKKyAgICAgICAgICAgICAgICB2aWRlby5zcmMgPSAn
aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9yZXNvdXJjZXMvcmVkaXIucGhwP3VybD1o
dHRwOi8vMTI3LjAuMC4xOjgwODAvJyArIG1lZGlhRmlsZTsKKyAgICAgICAgICAgICAgICB2aWRl
by5wbGF5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiPgorICAgICAgICA8dmlkZW8gaWQ9InYi
PiA8L3ZpZGVvPgorICAgICAgICA8cD5UZXN0IHRoYXQgYXQgbGVhc3Qgb25lIHByb2dyZXNzIGV2
ZW50IGlzIGZpcmVkIGFmdGVyIHN0YXJ0aW5nIHRvIGxvYWQgdGhlIHZpZGVvLjwvcD4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117642</attachid>
            <date>2011-12-02 09:45:21 -0800</date>
            <delta_ts>2011-12-02 11:43:55 -0800</delta_ts>
            <desc>Updated ChangeLog text.</desc>
            <filename>bug-72178-20111202094520.patch</filename>
            <type>text/plain</type>
            <size>26744</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxODEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVkOWEyZTNlOTRmZjg2
MDljZmFkOTg4M2ZmOWJjZmZiOWZjZDE2NC4uMDZlNzYzODMwOThiNzAxZWY2NDQzZGM1NjU3ZmU2
ZGFkMDMxNDEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDExLTEyLTAyICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBtaXhlZCBj
b250ZW50IGhhbmRsaW5nIGZvciB2aWRlbyBpbiBDaHJvbWl1bSBieSBoYXZpbmcKKyAgICAgICAg
Q2FjaGVkUmVzb3VyY2VMb2FkZXIgJiBTdWJyZXNvdXJjZUxvYWRlciB1c2UgdGhlIAorICAgICAg
ICBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgd2hlbiBkZXRlcm1pbmluZyBpZiBhIFJhd1Jl
c291cmNlIGNhbgorICAgICAgICBiZSByZXF1ZXN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC9pbnNlY3VyZS12aWRlby1pbi1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFt
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9y
ZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8t
aHR0cC12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKKworICAgICAgICAqIGxvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2ls
bFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291
cmNlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hl
ZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZTo6dGFyZ2V0VHlwZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2Up
OgorCiAyMDExLTExLTAyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhQ29udHJvbHMgc2hvdWxkIHVzZSBNZWRpYUNvbnRyb2xsZXIgaWYgcHJlc2VudC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGFhNDQz
OWFlMjI5ZGU4ODNmYmMxMjBhNGNlYjM3NThlMTQ3M2FhYjAuLmY1NDkwN2Y1Mjk1YmE0MTNlOWY0
ZThhMTgwOTgyYzFkZWQyMjRkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcApAQCAtMTI3LDEwICsxMjcsMTYgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRl
cjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVz
b3UKIHsKICAgICAvLyBTdG9yZSB0aGUgcHJldmlvdXMgVVJMIGJlY2F1c2UgdGhlIGNhbGwgdG8g
UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCB3aWxsIG1vZGlmeSBpdC4KICAgICBLVVJM
IHByZXZpb3VzVVJMID0gcmVxdWVzdCgpLnVybCgpOwotICAgIAorICAgIENhY2hlZFJlc291cmNl
OjpUeXBlIGNhblJlcXVlc3RUeXBlID0gbV9yZXNvdXJjZS0+dHlwZSgpOworCisjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCisgICAgaWYgKGNhblJlcXVlc3RUeXBlID09IENhY2hlZFJlc291cmNlOjpS
YXdSZXNvdXJjZSkKKyAgICAgICAgY2FuUmVxdWVzdFR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6dGFy
Z2V0VHlwZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKHJlcXVlc3QoKS50YXJnZXRUeXBlKCkpOworI2Vu
ZGlmCisKICAgICBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJl
ZGlyZWN0UmVzcG9uc2UpOwogICAgIGlmICghcHJldmlvdXNVUkwuaXNOdWxsKCkgJiYgIW5ld1Jl
cXVlc3QuaXNOdWxsKCkgJiYgcHJldmlvdXNVUkwgIT0gbmV3UmVxdWVzdC51cmwoKSkgewotICAg
ICAgICBpZiAoIW1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmNhblJlcXVlc3Qo
bV9yZXNvdXJjZS0+dHlwZSgpLCBuZXdSZXF1ZXN0LnVybCgpKSkgeworICAgICAgICBpZiAoIW1f
ZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmNhblJlcXVlc3QoY2FuUmVxdWVzdFR5
cGUsIG5ld1JlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgICAgICBjYW5jZWwoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKaW5kZXggNjNmODFjOWE3ZWM3ZWQ2ZWZjN2Q0ODcxNDRl
YTMwYzM1YmIwNjM3Ny4uNmM4NzZjODA5MWE1ZGY1ODk3YjYxODgwNDQxOWRkN2E0OTU3N2FjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCkBAIC00MSw2ICs0MSwxMiBAQCBDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3Vy
Y2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCiB7CiB9CiAKK0NhY2hlZFJhd1Jl
c291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgVHlwZSB0eXBlKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBl
KQorICAgICwgbV9kYXRhTGVuZ3RoKDApCit7Cit9CisKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6
OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVk
KQogewogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBwcm90ZWN0
KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJh
d1Jlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3Vy
Y2UuaAppbmRleCA5YjBjYWI1MjM1NTY1OWQ3YWVmYTg2OGViOGIwYTE3ZDBmNjBiNzhlLi40NzA2
ZDNkODJiZTQ2NmE4NGUxYjRhNTFmMmUwMzM4NDg3MTZkNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApAQCAtMzEsNiArMzEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZSA6IHB1YmxpYyBDYWNo
ZWRSZXNvdXJjZSB7CiBwdWJsaWM6CiAgICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1
ZXN0Jik7CisgICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiwgVHlwZSk7CiAK
ICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2Fj
aGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0
byBkZWZlciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAKaW5kZXggZTFkMWRlY2RhMDI2MGMyMzBiYzFlM2UyMTE0ZjI0MmFkNzJiMTBm
Zi4uZmI1YjE4YTAxMGFhMzFjYTJmZWRmYWJmYmJjM2NkZjQ0OTcyMTMwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC03Myw2ICs3Mywx
MCBAQCBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3JpdHkgZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3Vy
Y2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlCiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
OkxpbmtTdWJyZXNvdXJjZToKICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlMb3c7CiAjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCisgICAgICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6Ok1lZGlhUmVzb3VyY2U6CisgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2Fk
UHJpb3JpdHlNZWRpdW07CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgogICAgICAgICAgICAgcmV0
dXJuIFJlc291cmNlTG9hZFByaW9yaXR5TG93OwpAQCAtMTExLDYgKzExNSwxMCBAQCBzdGF0aWMg
UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlw
ZShDYWNoZWRSZXNvdXJjZQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJj
ZToKICAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJyZXNvdXJjZTsK
ICNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRp
YVJlc291cmNlOgorICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc01lZGlh
OworI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlRleHRUcmFja1Jlc291cmNlOgogICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRJc1RleHRUcmFjazsKQEAgLTExOSw2ICsxMjcsNDkgQEAgc3RhdGljIFJlc291cmNlUmVx
dWVzdDo6VGFyZ2V0VHlwZSBjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUoQ2FjaGVkUmVz
b3VyY2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gUmVzb3VyY2VSZXF1
ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOwogfQorCitDYWNoZWRSZXNvdXJjZTo6VHlwZSBDYWNo
ZWRSZXNvdXJjZTo6dGFyZ2V0VHlwZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0VHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgUmVz
b3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N0eWxlU2hlZXQ6CisgICAgICAgIHJldHVybiBDYWNoZWRS
ZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0
SXNTY3JpcHQ6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0OworICAgIGNh
c2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0ZvbnRSZXNvdXJjZToKKyAgICAgICAgcmV0dXJu
IENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2U7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzSW1hZ2U6CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzRmF2aWNv
bjoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOworICAgIGNh
c2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOgorICAgICAgICByZXR1cm4g
Q2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRJc1dvcmtlcjoKKyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTaGFyZWRX
b3JrZXI6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0OworICAgIGNhc2Ug
UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc09iamVjdDoKKyAgICBjYXNlIFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0SXNNYWluRnJhbWU6CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElz
U3ViZnJhbWU6CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzWEhSOgorICAgIGNh
c2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1Vuc3BlY2lmaWVkOgorICAgICAgICByZXR1cm4g
Q2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOworI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQor
ICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZWZldGNoOgorICAgICAgICByZXR1
cm4gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDsKKyAgICBjYXNlIFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0SXNQcmVyZW5kZXI6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6TGlu
a1ByZXJlbmRlcjsKKyNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIFJlc291cmNl
UmVxdWVzdDo6VGFyZ2V0SXNNZWRpYToKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpN
ZWRpYVJlc291cmNlOworI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGNhc2Ug
UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1RleHRUcmFjazoKKyAgICAgICAgcmV0dXJuIENhY2hl
ZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZTsKKyNlbmRpZgorICAgIH0KKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOwor
fQorCiAjZW5kaWYKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291
bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRSZXNvdXJjZSIpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggZWFjMjYy
MTAxOTVjM2RmNzJkOTFiOGNhNzIzYWYzMTEzNTJhMDM3ZS4uMTljN2RlMWE3NjVmMmQ4ZDEwNWEx
ZTRmYTEzODRhMWMyMzcxNzkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmgKQEAgLTc5LDYgKzc5LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1Nf
U0hBREVSUykKICAgICAgICAgLCBTaGFkZXJSZXNvdXJjZQogI2VuZGlmCisjaWYgRU5BQkxFKFZJ
REVPKQorICAgICAgICAsIE1lZGlhUmVzb3VyY2UKKyNlbmRpZgogICAgIH07CiAKICAgICBlbnVt
IFN0YXR1cyB7CkBAIC0yMzgsNiArMjQxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgLyogYnl0ZXNTZW50ICovLCB1bnNpZ25lZCBs
b25nIGxvbmcgLyogdG90YWxCeXRlc1RvQmVTZW50ICovKSB7IH0KICNpZiBQTEFURk9STShDSFJP
TUlVTSkKICAgICB2aXJ0dWFsIHZvaWQgZGlkRG93bmxvYWREYXRhKGludCkgeyB9CisKKyAgICBz
dGF0aWMgVHlwZSB0YXJnZXRUeXBlVG9DYWNoZWRSZXNvdXJjZVR5cGUoUmVzb3VyY2VSZXF1ZXN0
OjpUYXJnZXRUeXBlKTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRMb2FkRmluaXNoVGltZShkb3Vi
bGUgZmluaXNoVGltZSkgeyBtX2xvYWRGaW5pc2hUaW1lID0gZmluaXNoVGltZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
aW5kZXggYzdmMDY4NjMyNDY3ZmEwN2Y2N2ZiNDY5YTZmMjg5ZGRjOTM0ZGY1OS4uNmQ1M2JhMjBi
NjFhYzBjOTE2Njg5NGNiNDE4OGE2ZWE3MzhjNmZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04OCw2ICs4OCwx
MCBAQCBzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Okxp
bmtTdWJyZXNvdXJjZToKICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0
LCBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsKICNlbmRpZgorI2lmIEVOQUJMRShW
SURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlOgorICAgICAgICBy
ZXR1cm4gbmV3IENhY2hlZFJhd1Jlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpNZWRp
YVJlc291cmNlKTsKKyNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICAgICAgICAgcmV0dXJuIG5ldyBDYWNo
ZWRUZXh0VHJhY2socmVxdWVzdCk7CkBAIC0yNTMsNiArMjU3LDkgQEAgYm9vbCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgY29uc3QKICAgICAgICAgICAgIGlmICghZi0+bG9hZGVyKCktPmNoZWNrSWZSdW5JbnNlY3Vy
ZUNvbnRlbnQobV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShWSURFTykKKyAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlOgorI2VuZGlmCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNl
OgogI2VuZGlmCkBAIC0zMDQsNiArMzExLDkgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKKyAgICBj
YXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlOgorI2VuZGlmCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgog
I2VuZGlmCkBAIC0zNjksOCArMzc5LDExIEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNh
blJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogI2VuZGlmCiAgICAgICAgIGJy
ZWFrOworI2lmIEVOQUJMRShWSURFTykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJl
c291cmNlOgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpUZXh0VHJhY2tSZXNvdXJjZToKKyNlbmRpZgogICAgICAgICAvLyBDdWVzIGFyZW4ndCBjYWxs
ZWQgb3V0IGluIHRoZSBDUFMgc3BlYyB5ZXQsIGJ1dCB0aGV5IG9ubHkgd29yayB3aXRoIGEgbWVk
aWEgZWxlbWVudAogICAgICAgICAvLyBzbyB1c2UgdGhlIG1lZGlhIHBvbGljeS4KICAgICAgICAg
aWYgKCFtX2RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dNZWRpYUZyb21T
b3VyY2UodXJsKSkKQEAgLTQwMiw3ICs0MTUsMTQgQEAgQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwK
ICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCFj
YW5SZXF1ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCisgICAgQ2FjaGVkUmVzb3VyY2U6OlR5
cGUgY2FuUmVxdWVzdFR5cGUgPSB0eXBlOworCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAg
aWYgKGNhblJlcXVlc3RUeXBlID09IENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSkKKyAgICAg
ICAgY2FuUmVxdWVzdFR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6dGFyZ2V0VHlwZVRvQ2FjaGVkUmVz
b3VyY2VUeXBlKHJlcXVlc3QudGFyZ2V0VHlwZSgpKTsKKyNlbmRpZgorCisgICAgaWYgKCFjYW5S
ZXF1ZXN0KGNhblJlcXVlc3RUeXBlLCB1cmwsIGZvclByZWxvYWQpKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGlmIChtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTk5YjM1
YWU4NzMzZDBhNmU2NDE2ODA2MmZkNmYzZTNjODVlZTU1Yi4uMjUzNmIwYzA5M2U5NzhiZjNlM2U4
MTg2NmYxM2Y4Yzk5ZGM1ZDdmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTAyICBB
YXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZGluZyBt
aXhlZCBjb250ZW50IHRlc3RzIGZvciB2aWRlbyB0YWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZy
YW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1p
bi1tYWluLWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFtZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVj
dC1odHRwcy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRw
cy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1
cmUtdmlkZW8uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRl
by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLmh0bWw6
IEFkZGVkLgorCiAyMDExLTEyLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBza2lwIGZhaWxpbmcgd2Vic29ja2V0IHRlc3Qg
b24gR1RLLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlm
cmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQwYjIwNWI4YzBjNjJiNTZiYjJiMGYyYTY5
YmFiYjM3YjY1ZmZkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFtZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+
LS0+IiAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJh
bWUwLS0+LS0+IiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitmcmFt
ZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkSGFuZGxlT25sb2FkRXZl
bnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQor
ZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZpbmlzaExvYWRG
b3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorVGhpcyB0ZXN0IGxv
YWRzIGEgc2VjdXJlIGlmcmFtZSB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHZpZGVvLiBXZSBzaG91
bGQgKm5vdCogZ2V0IGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRoZSBtYWluIGZy
YW1lIGlzIEhUVFAgYW5kIHRoZSB2aWRlbyBkb2Vzbid0IGNvbnRhbWluYXRlIHRoZSBjaGlsZCBp
ZnJhbWUncyBzZWN1cml0eSBvcmlnaW4gd2l0aCBtaXhlZCBjb250ZW50LgorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJl
LXZpZGVvLWluLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUz
M2FkOWYyYmVmODg3Y2Q0NTAxYTA5MjhhYjJlMzc2NzlhODFjNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZp
ZGVvLWluLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxodG1sPgorICAgIDxib2R5Pgor
ICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2FkQ2Fs
bGJhY2tzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8cD5U
aGlzIHRlc3QgbG9hZHMgYSBzZWN1cmUgaWZyYW1lIHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlk
ZW8uICBXZSBzaG91bGQKKypub3QqIGdldCBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgYmVjYXVz
ZSB0aGUgbWFpbiBmcmFtZSBpcyBIVFRQIGFuZCB0aGUgdmlkZW8KK2RvZXNuJ3QgY29udGFtaW5h
dGUgdGhlIGNoaWxkIGlmcmFtZSdzIHNlY3VyaXR5IG9yaWdpbiB3aXRoIG1peGVkIGNvbnRlbnQu
PC9wPgorICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0
eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbCI+
PC9pZnJhbWU+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1m
cmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNTY4ZWVhNTQyM2RkMWY0NDgyYTI3OWM1NDhmZWMwZDFkNGIwYTE2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5z
ZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor
bWFpbiBmcmFtZSAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUg
LSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9u
bG9hZEV2ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitt
YWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNG
b3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXZpZGVvLmh0bWwgZGlz
cGxheWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvcmVzb3Vy
Y2VzL3Rlc3Qub2d2LgorCitkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50CitUaGlzIHRlc3Qgb3Bl
bnMgYSB3aW5kb3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlby4gV2Ugc2hvdWxkIHRyaWdn
ZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhl
IHdpbmRvdyBpcyBIVFRQUyBidXQgaXMgZGlzcGxheWluZyBpbnNlY3VyZSBjb250ZW50LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5z
ZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU3ZmJlNjNlY2U1ZTQ3ODFkMTNjOTMzMTBiZTBjMThhYmE0OTM5ZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0
bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgICAgIDxwPlRoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJl
IHZpZGVvLiAgV2Ugc2hvdWxkIHRyaWdnZXIgYQorbWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNh
dXNlIHRoZSBtYWluIGZyYW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYnV0IGlzCitkaXNwbGF5
aW5nIGluc2VjdXJlIGNvbnRlbnQuPC9wPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAg
d2luZG93Lm9wZW4oImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXZpZGVvLmh0bWwiKTsKKyAgICAgICAgPC9z
Y3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRl
by1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1m
cmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGU1ZDNiMzBiMGY1ODExNGZiYjM2MmVlMjAx
ZTcwN2UwN2UyOWI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFp
bi1mcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorbWFpbiBmcmFtZSAtIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1l
CittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29t
bWl0TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJh
bWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFt
ZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFRoZSBw
YWdlIGF0IGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291
cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8uaHRtbCBkaXNwbGF5
ZWQgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9zZWN1cml0eS9y
ZXNvdXJjZXMvcmVkaXIucGhwP3VybD1odHRwczovLzEyNy4wLjAuMTo4NDQzL3Jlc291cmNlcy90
ZXN0Lm9ndi4KKworZGlkRGlzcGxheUluc2VjdXJlQ29udGVudAorVGhpcyB0ZXN0IG9wZW5zIGEg
d2luZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8odmlhIGEgdHJpY2t5IHJlZGlyZWN0
KS4gV2Ugc2hvdWxkIHRyaWdnZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhl
IG1haW4gZnJhbWUgaW4gdGhlIHdpbmRvdyBpcyBIVFRQUyBidXQgaXMgZGlzcGxheWluZyBpbnNl
Y3VyZSBjb250ZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1pbi1tYWluLWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRp
cmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NzNlNGEwZGQ4ODdjZmJmYWM3MjdiMTJlMmFhNzk5M2ZiM2FjNDM4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3Qt
aHR0cC10by1odHRwcy12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyNSBAQAor
PGh0bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgICAgIDxwPlRoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2Vj
dXJlIHZpZGVvKHZpYSBhIHRyaWNreSAKK3JlZGlyZWN0KS4gIFdlIHNob3VsZCB0cmlnZ2VyIGEg
bWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGluIHRoZSB3aW5k
b3cgaXMgSFRUUFMgYnV0IGlzCitkaXNwbGF5aW5nIGluc2VjdXJlIGNvbnRlbnQuPC9wPgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgd2luZG93Lm9wZW4oImh0dHBzOi8vMTI3LjAuMC4x
Ojg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0
LWh0dHAtdG8taHR0cHMtdmlkZW8uaHRtbCIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNjI5N2VhOWMzNjc0MzMzYmMwY2Y1MzA2MWQ2MGI4MGY1YTU2OTcyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENv
bnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitt
YWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUK
K21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAt
IGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9h
ZEZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVGhlIHBhZ2UgYXQgaHR0cHM6Ly8x
MjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgt
cmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby5odG1sIGRpc3BsYXllZCBpbnNlY3VyZSBjb250
ZW50IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3Jlc291cmNlcy90ZXN0Lm9ndi4KKworZGlk
RGlzcGxheUluc2VjdXJlQ29udGVudAorVGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9h
ZHMgYW4gaW5zZWN1cmUgdmlkZW8odmlhIGEgdHJpY2t5IHJlZGlyZWN0KS4gV2Ugc2hvdWxkIHRy
aWdnZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4g
dGhlIHdpbmRvdyBpcyBIVFRQUyBidXQgaXMgZGlzcGxheWluZyBpbnNlY3VyZSBjb250ZW50Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQv
cmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwcy10by1o
dHRwLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2Y1ZjU4NmI3MmFhOWRj
OTExMGM4MWU0NWNmZjYwODc0MjA4ZTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12
aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+CisgICAgPGJv
ZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2Fu
T3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRD
bG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24g
KGUpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxwPlRo
aXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHZpZGVvKHZpYSBh
IHRyaWNreSAKK3JlZGlyZWN0KS4gIFdlIHNob3VsZCB0cmlnZ2VyIGEgbWl4ZWQgY29udGVudCBj
YWxsYmFjayBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYnV0
IGlzCitkaXNwbGF5aW5nIGluc2VjdXJlIGNvbnRlbnQuPC9wPgorICAgICAgICA8c2NyaXB0Pgor
ICAgICAgICAgICAgd2luZG93Lm9wZW4oImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0dHBzLXRvLWh0dHAt
dmlkZW8uaHRtbCIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9y
ZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS12aWRlby5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1
cmUtdmlkZW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjUwMjI4NDYzYzlhYjY3YThhZTQwNGEwYWY2M2Ez
Yzg2YjhhNWU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRt
bApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBmcmFtZUxvYWRlZCgpIHsKKyAgICAgICAgICAg
ICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Jyk7CisKKyAgICAgICAgICAg
ICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsIGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5vcGVuZXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCdkb25lJywgJyonKTsKKyAgICAg
ICAgICAgICAgICAgfSwgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICB2YXIgbWVkaWFGaWxlID0g
ZmluZE1lZGlhRmlsZSgndmlkZW8nLCAncmVzb3VyY2VzL3Rlc3QnKTsKKyAgICAgICAgICAgICAg
ICB2aWRlby5zcmMgPSAnaHR0cDovLzEyNy4wLjAuMTo4MDgwLycgKyBtZWRpYUZpbGU7CisgICAg
ICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj4KKyAgICAg
ICAgPHZpZGVvIGlkPSJ2Ij4gPC92aWRlbz4KKyAgICAgICAgPHA+VGVzdCB0aGF0IGF0IGxlYXN0
IG9uZSBwcm9ncmVzcyBldmVudCBpcyBmaXJlZCBhZnRlciBzdGFydGluZyB0byBsb2FkIHRoZSB2
aWRlby48L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVk
aXJlY3QtaHR0cC10by1odHRwcy12aWRlby5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cC10
by1odHRwcy12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1ZmM5Y2MzNzQ4OTllYmJjNDc3ZDU1NTNm
YTQwNzlhY2MzOWYzNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRw
LXRvLWh0dHBzLXZpZGVvLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIvbWVkaWEtcmVzb3VyY2VzL21lZGlhLWZpbGUuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gZnJhbWVMb2Fk
ZWQoKSB7CisgICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dicpOworCisgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0
YWRhdGEnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cub3Bl
bmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgn
ZG9uZScsICcqJyk7CisgICAgICAgICAgICAgICAgIH0sIHRydWUpOworCisgICAgICAgICAgICAg
ICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ3Jlc291cmNlcy90ZXN0
Jyk7CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODA4MC9z
ZWN1cml0eS9yZXNvdXJjZXMvcmVkaXIucGhwP3VybD1odHRwczovLzEyNy4wLjAuMTo4NDQzLycg
KyBtZWRpYUZpbGU7CisgICAgICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAgICAgICAg
fQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJmcmFt
ZUxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIGlkPSJ2Ij4gPC92aWRlbz4KKyAgICAgICAgPHA+
VGVzdCB0aGF0IGF0IGxlYXN0IG9uZSBwcm9ncmVzcyBldmVudCBpcyBmaXJlZCBhZnRlciBzdGFy
dGluZyB0byBsb2FkIHRoZSB2aWRlby48L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3Vy
Y2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdp
dGgtcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MDIwMTQ2
NDAwZTJhMzU2MjhmMDZhYjlmMGNlMDNlZDY2N2NkMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUt
d2l0aC1yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLmh0bWwKQEAgLTAsMCArMSwyMyBAQAor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvbWVkaWEtcmVzb3VyY2Vz
L21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAg
ZnVuY3Rpb24gZnJhbWVMb2FkZWQoKSB7CisgICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndicpOworCisgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRM
aXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cub3BlbmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9w
ZW5lci5wb3N0TWVzc2FnZSgnZG9uZScsICcqJyk7CisgICAgICAgICAgICAgICAgIH0sIHRydWUp
OworCisgICAgICAgICAgICAgICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVv
JywgJ3Jlc291cmNlcy90ZXN0Jyk7CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gJ2h0dHBz
Oi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZGlyLnBocD91cmw9aHR0cDov
LzEyNy4wLjAuMTo4MDgwLycgKyBtZWRpYUZpbGU7CisgICAgICAgICAgICAgICAgdmlkZW8ucGxh
eSgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHkgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIGlkPSJ2Ij4gPC92
aWRlbz4KKyAgICAgICAgPHA+VGVzdCB0aGF0IGF0IGxlYXN0IG9uZSBwcm9ncmVzcyBldmVudCBp
cyBmaXJlZCBhZnRlciBzdGFydGluZyB0byBsb2FkIHRoZSB2aWRlby48L3A+CisgICAgPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117662</attachid>
            <date>2011-12-02 11:43:58 -0800</date>
            <delta_ts>2011-12-07 09:53:06 -0800</delta_ts>
            <desc>Addressing CR comments</desc>
            <filename>bug-72178-20111202114357.patch</filename>
            <type>text/plain</type>
            <size>26855</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIyODhiMmUxNWM0ZDFl
MDgzNzQzNDFiZGE5ZGNhODA5N2QzMjA0Mi4uMWJhMTJmOTllMDVmNWQ5MzliZDQyOTUxMzE4N2Vi
OThlNjZiNDliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDExLTEyLTAyICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBtaXhlZCBj
b250ZW50IGhhbmRsaW5nIGZvciB2aWRlbyBpbiBDaHJvbWl1bSBieSBoYXZpbmcKKyAgICAgICAg
Q2FjaGVkUmVzb3VyY2VMb2FkZXIgJiBTdWJyZXNvdXJjZUxvYWRlciB1c2UgdGhlIAorICAgICAg
ICBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgd2hlbiBkZXRlcm1pbmluZyBpZiBhIFJhd1Jl
c291cmNlIGNhbgorICAgICAgICBiZSByZXF1ZXN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC9pbnNlY3VyZS12aWRlby1pbi1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFt
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9y
ZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8t
aHR0cC12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKKworICAgICAgICAqIGxvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2ls
bFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291
cmNlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hl
ZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZTo6dGFyZ2V0VHlwZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2Up
OgorCiAyMDExLTEyLTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTAxODMzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYWE0NDM5YWUyMjlkZTg4
M2ZiYzEyMGE0Y2ViMzc1OGUxNDczYWFiMC4uMGM3YTBlYjc5MDQ2YjM0MzcwY2I2MDMxZDc3ZWYz
YzE0OTc4YWU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC0xMjcsMTAgKzEyNywxNiBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdQogewogICAg
IC8vIFN0b3JlIHRoZSBwcmV2aW91cyBVUkwgYmVjYXVzZSB0aGUgY2FsbCB0byBSZXNvdXJjZUxv
YWRlcjo6d2lsbFNlbmRSZXF1ZXN0IHdpbGwgbW9kaWZ5IGl0LgogICAgIEtVUkwgcHJldmlvdXNV
UkwgPSByZXF1ZXN0KCkudXJsKCk7Ci0gICAgCisgICAgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgcmVx
dWVzdFR5cGVGb3JDYW5SZXF1ZXN0ID0gbV9yZXNvdXJjZS0+dHlwZSgpOworCisjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCisgICAgaWYgKHJlcXVlc3RUeXBlRm9yQ2FuUmVxdWVzdCA9PSBDYWNoZWRS
ZXNvdXJjZTo6UmF3UmVzb3VyY2UpCisgICAgICAgIHJlcXVlc3RUeXBlRm9yQ2FuUmVxdWVzdCA9
IENhY2hlZFJlc291cmNlOjp0YXJnZXRUeXBlVG9DYWNoZWRSZXNvdXJjZVR5cGUocmVxdWVzdCgp
LnRhcmdldFR5cGUoKSk7CisjZW5kaWYKKwogICAgIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJl
cXVlc3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgaWYgKCFwcmV2aW91c1VS
TC5pc051bGwoKSAmJiAhbmV3UmVxdWVzdC5pc051bGwoKSAmJiBwcmV2aW91c1VSTCAhPSBuZXdS
ZXF1ZXN0LnVybCgpKSB7Ci0gICAgICAgIGlmICghbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+Y2FuUmVxdWVzdChtX3Jlc291cmNlLT50eXBlKCksIG5ld1JlcXVlc3QudXJsKCkp
KSB7CisgICAgICAgIGlmICghbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+Y2Fu
UmVxdWVzdChyZXF1ZXN0VHlwZUZvckNhblJlcXVlc3QsIG5ld1JlcXVlc3QudXJsKCkpKSB7CiAg
ICAgICAgICAgICBjYW5jZWwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKaW5k
ZXggNjNmODFjOWE3ZWM3ZWQ2ZWZjN2Q0ODcxNDRlYTMwYzM1YmIwNjM3Ny4uNmM4NzZjODA5MWE1
ZGY1ODk3YjYxODgwNDQxOWRkN2E0OTU3N2FjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC00MSw2ICs0MSwxMiBAQCBDYWNo
ZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QpCiB7CiB9CiAKK0NhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShS
ZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgVHlwZSB0eXBlKQorICAgIDogQ2FjaGVk
UmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlKQorICAgICwgbV9kYXRhTGVuZ3RoKDApCit7
Cit9CisKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogewogICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJhd1Jlc291cmNlPiBwcm90ZWN0KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCA5YjBjYWI1MjM1NTY1OWQ3
YWVmYTg2OGViOGIwYTE3ZDBmNjBiNzhlLi4xMzU2ZWZhZDcxNjkwMjIyMDA1MmRkOTQxMTczNDVi
YjgxNTBhYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmF3UmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuaApAQCAtMzAsNyArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENhY2hlZFJhd1Jlc291cmNlIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAg
ICBDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBleHBsaWNpdCBDYWNo
ZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSYXdSZXNvdXJjZShS
ZXNvdXJjZVJlcXVlc3QmLCBUeXBlKTsKIAogICAgIC8vIEZJWE1FOiBBc3NvY2lhdGVkVVJMTG9h
ZGVyIHNob3VsZG4ndCBiZSBhIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBhbmQgdGhlcmVmb3Jl
IHNob3VsZG4ndAogICAgIC8vIHVzZSBDYWNoZWRSYXdSZXNvdXJjZS4gSG93ZXZlciwgaXQgaXMs
IGFuZCBpdCBuZWVkcyB0byBiZSBhYmxlIHRvIGRlZmVyIGxvYWRpbmcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCBlMWQxZGVjZGEwMjYw
YzIzMGJjMWUzZTIxMTRmMjQyYWQ3MmIxMGZmLi5mYjViMThhMDEwYWEzMWNhMmZlZGZhYmZiYmMz
Y2RmNDQ5NzIxMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAKQEAgLTczLDYgKzczLDEwIEBAIHN0YXRpYyBSZXNvdXJjZUxvYWRQcmlvcml0
eSBkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUKICAg
ICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICAgICAg
cmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKICNlbmRpZgorI2lmIEVOQUJMRShW
SURFTykKKyAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKKyAgICAg
ICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bTsKKyNlbmRpZgogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNr
UmVzb3VyY2U6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c7CkBA
IC0xMTEsNiArMTE1LDEwIEBAIHN0YXRpYyBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgY2Fj
aGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBlKENhY2hlZFJlc291cmNlCiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1
ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOwogI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQorICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVzb3VyY2U6CisgICAgICAgIHJldHVybiBSZXNv
dXJjZVJlcXVlc3Q6OlRhcmdldElzTWVkaWE7CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAgICAgICAg
IHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzVGV4dFRyYWNrOwpAQCAtMTE5LDYgKzEy
Nyw0OSBAQCBzdGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNl
VHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRSZXNvdXJjZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CiB9CisK
K0NhY2hlZFJlc291cmNlOjpUeXBlIENhY2hlZFJlc291cmNlOjp0YXJnZXRUeXBlVG9DYWNoZWRS
ZXNvdXJjZVR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIHR5cGUpCit7CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3R5bGVTaGVl
dDoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OworICAgIGNh
c2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1NjcmlwdDoKKyAgICAgICAgcmV0dXJuIENhY2hl
ZFJlc291cmNlOjpTY3JpcHQ7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzRm9u
dFJlc291cmNlOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZTsK
KyAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNJbWFnZToKKyAgICBjYXNlIFJlc291
cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3Vy
Y2U6OkltYWdlUmVzb3VyY2U7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3Vi
cmVzb3VyY2U6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U7Cisg
ICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzV29ya2VyOgorICAgIGNhc2UgUmVzb3Vy
Y2VSZXF1ZXN0OjpUYXJnZXRJc1NoYXJlZFdvcmtlcjoKKyAgICAgICAgcmV0dXJuIENhY2hlZFJl
c291cmNlOjpTY3JpcHQ7CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzT2JqZWN0
OgorICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc01haW5GcmFtZToKKyAgICBjYXNl
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJmcmFtZToKKyAgICBjYXNlIFJlc291cmNlUmVx
dWVzdDo6VGFyZ2V0SXNYSFI6CisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzVW5z
cGVjaWZpZWQ6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U7Cisj
aWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dElzUHJlZmV0Y2g6CisgICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNo
OworICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZXJlbmRlcjoKKyAgICAgICAg
cmV0dXJuIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOworI2VuZGlmCisjaWYgRU5BQkxF
KFZJREVPKQorICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc01lZGlhOgorICAgICAg
ICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVzb3VyY2U7CisjZW5kaWYKKyNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCisgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzVGV4dFRy
YWNrOgorICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOwor
I2VuZGlmCisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDYWNo
ZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U7Cit9CisKICNlbmRpZgogCiBERUZJTkVfREVCVUdfT05M
WV9HTE9CQUwoUmVmQ291bnRlZExlYWtDb3VudGVyLCBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVy
LCAoIkNhY2hlZFJlc291cmNlIikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuaAppbmRleCBlYWMyNjIxMDE5NWMzZGY3MmQ5MWI4Y2E3MjNhZjMxMTM1MmEw
MzdlLi4xOWM3ZGUxYTc2NWYyZDhkMTA1YTFlNGZhMTM4NGExYzIzNzE3OTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtNzksNiArNzksOSBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgICAgICAsIFNoYWRlclJlc291
cmNlCiAjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCisgICAgICAgICwgTWVkaWFSZXNvdXJjZQor
I2VuZGlmCiAgICAgfTsKIAogICAgIGVudW0gU3RhdHVzIHsKQEAgLTIzOCw2ICsyNDEsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyAv
KiBieXRlc1NlbnQgKi8sIHVuc2lnbmVkIGxvbmcgbG9uZyAvKiB0b3RhbEJ5dGVzVG9CZVNlbnQg
Ki8pIHsgfQogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgIHZpcnR1YWwgdm9pZCBkaWREb3du
bG9hZERhdGEoaW50KSB7IH0KKworICAgIHN0YXRpYyBUeXBlIHRhcmdldFR5cGVUb0NhY2hlZFJl
c291cmNlVHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUpOwogI2VuZGlmCiAKICAgICB2
b2lkIHNldExvYWRGaW5pc2hUaW1lKGRvdWJsZSBmaW5pc2hUaW1lKSB7IG1fbG9hZEZpbmlzaFRp
bWUgPSBmaW5pc2hUaW1lOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBjN2YwNjg2MzI0NjdmYTA3ZjY3ZmI0Njlh
NmYyODlkZGM5MzRkZjU5Li5mYmY3YTQzN2MzODEwODgwZTJjZDY3NjM1ODJhZmU5ZTI1MjEzYzMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAKQEAgLTg4LDYgKzg4LDEwIEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3Jl
YXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICByZXR1cm4g
bmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3Vy
Y2UpOwogI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
Ok1lZGlhUmVzb3VyY2U6CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVx
dWVzdCwgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVzb3VyY2UpOworI2VuZGlmCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNl
OgogICAgICAgICByZXR1cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0KTsKQEAgLTI1Myw2
ICsyNTcsOSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVu
dChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdAogICAgICAgICAgICAgaWYgKCFmLT5s
b2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChtX2RvY3VtZW50LT5zZWN1cml0eU9y
aWdpbigpLCB1cmwpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJl
YWs7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVz
b3VyY2U6CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAjZW5kaWYKQEAgLTMwNCw2ICszMTEsOSBAQCBi
b29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVy
ZW5kZXI6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogI2VuZGlm
CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVzb3Vy
Y2U6CisjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAjZW5kaWYKQEAgLTM2OSw4ICszNzksMTEgQEAgYm9v
bCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVz
b3VyY2U6CiAjZW5kaWYKICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6Ok1lZGlhUmVzb3VyY2U6CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgorI2VuZGlmCiAg
ICAgICAgIC8vIEN1ZXMgYXJlbid0IGNhbGxlZCBvdXQgaW4gdGhlIENQUyBzcGVjIHlldCwgYnV0
IHRoZXkgb25seSB3b3JrIHdpdGggYSBtZWRpYSBlbGVtZW50CiAgICAgICAgIC8vIHNvIHVzZSB0
aGUgbWVkaWEgcG9saWN5LgogICAgICAgICBpZiAoIW1fZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpLT5hbGxvd01lZGlhRnJvbVNvdXJjZSh1cmwpKQpAQCAtNDAyLDcgKzQxNSwxNCBA
QCBDYWNoZWRSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLAogICAgIGlmICghdXJsLmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoIWNhblJlcXVlc3QodHlwZSwgdXJsLCBmb3JQcmVsb2Fk
KSkKKyAgICBDYWNoZWRSZXNvdXJjZTo6VHlwZSByZXF1ZXN0VHlwZUZvckNhblJlcXVlc3QgPSB0
eXBlOworCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgaWYgKHJlcXVlc3RUeXBlRm9yQ2Fu
UmVxdWVzdCA9PSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UpCisgICAgICAgIHJlcXVlc3RU
eXBlRm9yQ2FuUmVxdWVzdCA9IENhY2hlZFJlc291cmNlOjp0YXJnZXRUeXBlVG9DYWNoZWRSZXNv
dXJjZVR5cGUocmVxdWVzdC50YXJnZXRUeXBlKCkpOworI2VuZGlmCisKKyAgICBpZiAoIWNhblJl
cXVlc3QocmVxdWVzdFR5cGVGb3JDYW5SZXF1ZXN0LCB1cmwsIGZvclByZWxvYWQpKQogICAgICAg
ICByZXR1cm4gMDsKIAogICAgIGlmIChtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMjQ0NDhkNWI0NWY2NzlmZDBlM2YwZDEwYmE1YzBhYWM5OTJjNDUwMS4uMmE2YzcxZmYxNzdi
YzVlODVhNDI0N2JlOGU1NTAwZGViYjZkNzFjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEx
LTEyLTAyICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEFkZGluZyBtaXhlZCBjb250ZW50IHRlc3RzIGZvciB2aWRlbyB0YWcuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlk
ZW8taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3Vy
ZS12aWRlby1pbi1tYWluLWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFp
bi1mcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFt
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRp
cmVjdC1odHRwcy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdp
dGgtaW5zZWN1cmUtdmlkZW8uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cC10by1o
dHRwcy12aWRlby5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwcy10by1odHRwLXZp
ZGVvLmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTAx
ODMzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENv
bnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFt
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQwYjIwNWI4YzBjNjJiNTZiYjJiMGYyYTY5YmFi
YjM3YjY1ZmZkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFtZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+
IiAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUw
LS0+LS0+IiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88
IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitmcmFtZSAi
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRz
Rm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorZnJh
bWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZpbmlzaExvYWRGb3JG
cmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorVGhpcyB0ZXN0IGxvYWRz
IGEgc2VjdXJlIGlmcmFtZSB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHZpZGVvLiBXZSBzaG91bGQg
Km5vdCogZ2V0IGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRoZSBtYWluIGZyYW1l
IGlzIEhUVFAgYW5kIHRoZSB2aWRlbyBkb2Vzbid0IGNvbnRhbWluYXRlIHRoZSBjaGlsZCBpZnJh
bWUncyBzZWN1cml0eSBvcmlnaW4gd2l0aCBtaXhlZCBjb250ZW50LgorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZp
ZGVvLWluLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4taWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUzM2Fk
OWYyYmVmODg3Y2Q0NTAxYTA5MjhhYjJlMzc2NzlhODFjNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVv
LWluLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxodG1sPgorICAgIDxib2R5PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8cD5UaGlz
IHRlc3QgbG9hZHMgYSBzZWN1cmUgaWZyYW1lIHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8u
ICBXZSBzaG91bGQKKypub3QqIGdldCBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgYmVjYXVzZSB0
aGUgbWFpbiBmcmFtZSBpcyBIVFRQIGFuZCB0aGUgdmlkZW8KK2RvZXNuJ3QgY29udGFtaW5hdGUg
dGhlIGNoaWxkIGlmcmFtZSdzIHNlY3VyaXR5IG9yaWdpbiB3aXRoIG1peGVkIGNvbnRlbnQuPC9w
PgorICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9t
aXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbCI+PC9p
ZnJhbWU+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFt
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNTY4ZWVhNTQyM2RkMWY0NDgyYTI3OWM1NDhmZWMwZDFkNGIwYTE2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1
cmUtdmlkZW8taW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorbWFp
biBmcmFtZSAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBk
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9h
ZEV2ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCittYWlu
IGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9j
dW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JG
cmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXZpZGVvLmh0bWwgZGlzcGxh
eWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvcmVzb3VyY2Vz
L3Rlc3Qub2d2LgorCitkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50CitUaGlzIHRlc3Qgb3BlbnMg
YSB3aW5kb3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlby4gV2Ugc2hvdWxkIHRyaWdnZXIg
YSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhlIHdp
bmRvdyBpcyBIVFRQUyBidXQgaXMgZGlzcGxheWluZyBpbnNlY3VyZSBjb250ZW50LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1
cmUtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU3ZmJlNjNlY2U1ZTQ3ODFkMTNjOTMzMTBiZTBjMThhYmE0OTM5ZjAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9p
bnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+
CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
ZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
ICAgIDxwPlRoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHZp
ZGVvLiAgV2Ugc2hvdWxkIHRyaWdnZXIgYQorbWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNl
IHRoZSBtYWluIGZyYW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYnV0IGlzCitkaXNwbGF5aW5n
IGluc2VjdXJlIGNvbnRlbnQuPC9wPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgd2lu
ZG93Lm9wZW4oImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jl
c291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXZpZGVvLmh0bWwiKTsKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1p
bi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFt
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGU1ZDNiMzBiMGY1ODExNGZiYjM2MmVlMjAxZTcw
N2UwN2UyOWI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1m
cmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorbWFpbiBmcmFtZSAtIGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCitt
YWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29tbWl0
TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUK
K21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFtZSAt
IGRpZEZpbmlzaExvYWRGb3JGcmFtZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFRoZSBwYWdl
IGF0IGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNl
cy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8uaHRtbCBkaXNwbGF5ZWQg
aW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9zZWN1cml0eS9yZXNv
dXJjZXMvcmVkaXIucGhwP3VybD1odHRwczovLzEyNy4wLjAuMTo4NDQzL3Jlc291cmNlcy90ZXN0
Lm9ndi4KKworZGlkRGlzcGxheUluc2VjdXJlQ29udGVudAorVGhpcyB0ZXN0IG9wZW5zIGEgd2lu
ZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8odmlhIGEgdHJpY2t5IHJlZGlyZWN0KS4g
V2Ugc2hvdWxkIHRyaWdnZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1h
aW4gZnJhbWUgaW4gdGhlIHdpbmRvdyBpcyBIVFRQUyBidXQgaXMgZGlzcGxheWluZyBpbnNlY3Vy
ZSBjb250ZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1pbi1tYWluLWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVj
dC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzNl
NGEwZGQ4ODdjZmJmYWM3MjdiMTJlMmFhNzk5M2ZiM2FjNDM4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0
cC10by1odHRwcy12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0
bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgICAgIDxwPlRoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJl
IHZpZGVvKHZpYSBhIHRyaWNreSAKK3JlZGlyZWN0KS4gIFdlIHNob3VsZCB0cmlnZ2VyIGEgbWl4
ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGluIHRoZSB3aW5kb3cg
aXMgSFRUUFMgYnV0IGlzCitkaXNwbGF5aW5nIGluc2VjdXJlIGNvbnRlbnQuPC9wPgorICAgICAg
ICA8c2NyaXB0PgorICAgICAgICAgICAgd2luZG93Lm9wZW4oImh0dHBzOi8vMTI3LjAuMC4xOjg0
NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0
dHAtdG8taHR0cHMtdmlkZW8uaHRtbCIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQv
cmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNjI5N2VhOWMzNjc0MzMzYmMwY2Y1MzA2MWQ2MGI4MGY1YTU2OTcyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWlu
IGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRG
aW5pc2hMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKK21h
aW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRp
ZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZv
ckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVGhlIHBhZ2UgYXQgaHR0cHM6Ly8xMjcu
MC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVk
aXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby5odG1sIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50
IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3Jlc291cmNlcy90ZXN0Lm9ndi4KKworZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudAorVGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMg
YW4gaW5zZWN1cmUgdmlkZW8odmlhIGEgdHJpY2t5IHJlZGlyZWN0KS4gV2Ugc2hvdWxkIHRyaWdn
ZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhl
IHdpbmRvdyBpcyBIVFRQUyBidXQgaXMgZGlzcGxheWluZyBpbnNlY3VyZSBjb250ZW50LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVk
aXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwcy10by1odHRw
LXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2Y1ZjU4NmI3MmFhOWRjOTEx
MGM4MWU0NWNmZjYwODc0MjA4ZTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRl
by1pbi1tYWluLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+CisgICAgPGJvZHk+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2FkQ2Fs
bGJhY2tzKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3Bl
bldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDbG9z
ZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGUp
IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxwPlRoaXMg
dGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHZpZGVvKHZpYSBhIHRy
aWNreSAKK3JlZGlyZWN0KS4gIFdlIHNob3VsZCB0cmlnZ2VyIGEgbWl4ZWQgY29udGVudCBjYWxs
YmFjayBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYnV0IGlz
CitkaXNwbGF5aW5nIGluc2VjdXJlIGNvbnRlbnQuPC9wPgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgd2luZG93Lm9wZW4oImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlk
ZW8uaHRtbCIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNv
dXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS12aWRlby5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUt
dmlkZW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjUwMjI4NDYzYzlhYjY3YThhZTQwNGEwYWY2M2EzYzg2
YjhhNWU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbApA
QCAtMCwwICsxLDIzIEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBmcmFtZUxvYWRlZCgpIHsKKyAgICAgICAgICAgICAg
ICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Jyk7CisKKyAgICAgICAgICAgICAg
ICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsIGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5vcGVuZXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCdkb25lJywgJyonKTsKKyAgICAgICAg
ICAgICAgICAgfSwgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICB2YXIgbWVkaWFGaWxlID0gZmlu
ZE1lZGlhRmlsZSgndmlkZW8nLCAncmVzb3VyY2VzL3Rlc3QnKTsKKyAgICAgICAgICAgICAgICB2
aWRlby5zcmMgPSAnaHR0cDovLzEyNy4wLjAuMTo4MDgwLycgKyBtZWRpYUZpbGU7CisgICAgICAg
ICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj4KKyAgICAgICAg
PHZpZGVvIGlkPSJ2Ij4gPC92aWRlbz4KKyAgICAgICAgPHA+VGVzdCB0aGF0IGF0IGxlYXN0IG9u
ZSBwcm9ncmVzcyBldmVudCBpcyBmaXJlZCBhZnRlciBzdGFydGluZyB0byBsb2FkIHRoZSB2aWRl
by48L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJl
Y3QtaHR0cC10by1odHRwcy12aWRlby5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cC10by1o
dHRwcy12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1ZmM5Y2MzNzQ4OTllYmJjNDc3ZDU1NTNmYTQw
NzlhY2MzOWYzNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwLXRv
LWh0dHBzLXZpZGVvLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIvbWVkaWEtcmVzb3VyY2VzL21lZGlhLWZpbGUuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gZnJhbWVMb2FkZWQo
KSB7CisgICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndicp
OworCisgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRh
dGEnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVy
KQorICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgnZG9u
ZScsICcqJyk7CisgICAgICAgICAgICAgICAgIH0sIHRydWUpOworCisgICAgICAgICAgICAgICAg
dmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ3Jlc291cmNlcy90ZXN0Jyk7
CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODA4MC9zZWN1
cml0eS9yZXNvdXJjZXMvcmVkaXIucGhwP3VybD1odHRwczovLzEyNy4wLjAuMTo4NDQzLycgKyBt
ZWRpYUZpbGU7CisgICAgICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAgICAgICAgfQor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJmcmFtZUxv
YWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIGlkPSJ2Ij4gPC92aWRlbz4KKyAgICAgICAgPHA+VGVz
dCB0aGF0IGF0IGxlYXN0IG9uZSBwcm9ncmVzcyBldmVudCBpcyBmaXJlZCBhZnRlciBzdGFydGlu
ZyB0byBsb2FkIHRoZSB2aWRlby48L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2Vz
L2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgt
cmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MDIwMTQ2NDAw
ZTJhMzU2MjhmMDZhYjlmMGNlMDNlZDY2N2NkMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0
aC1yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0
bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvbWVkaWEtcmVzb3VyY2VzL21l
ZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVu
Y3Rpb24gZnJhbWVMb2FkZWQoKSB7CisgICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndicpOworCisgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0
ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cub3BlbmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW5l
ci5wb3N0TWVzc2FnZSgnZG9uZScsICcqJyk7CisgICAgICAgICAgICAgICAgIH0sIHRydWUpOwor
CisgICAgICAgICAgICAgICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywg
J3Jlc291cmNlcy90ZXN0Jyk7CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gJ2h0dHBzOi8v
MTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZGlyLnBocD91cmw9aHR0cDovLzEy
Ny4wLjAuMTo4MDgwLycgKyBtZWRpYUZpbGU7CisgICAgICAgICAgICAgICAgdmlkZW8ucGxheSgp
OworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHkgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIGlkPSJ2Ij4gPC92aWRl
bz4KKyAgICAgICAgPHA+VGVzdCB0aGF0IGF0IGxlYXN0IG9uZSBwcm9ncmVzcyBldmVudCBpcyBm
aXJlZCBhZnRlciBzdGFydGluZyB0byBsb2FkIHRoZSB2aWRlby48L3A+CisgICAgPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118222</attachid>
            <date>2011-12-07 09:53:10 -0800</date>
            <delta_ts>2011-12-07 13:43:07 -0800</delta_ts>
            <desc>Partial revert to restore old behavior for workers.</desc>
            <filename>bug-72178-20111207095309.patch</filename>
            <type>text/plain</type>
            <size>1832</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyNjdiZmIxMTdkZTk0
MGNjMjE4MjljM2JiZTFiZWVkOTJhNDYwYy4uNzEwODQ5NWZmZjFjMDE0YzAzMDE0MjcxMDNjYWE1
ZmFhYWNiZTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTA3ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmVydCBUYXJn
ZXRUeXBlIHRvIENhY2hlZFJlc291cmNlOjpUeXBlIGNvbnZlcnNpb24gZm9yIFRhcmdldElzU2Ny
aXB0CisgICAgICAgIHNvIHdvcmtlcnMgYmVoYXZlIHRoZSB3YXkgdGhleSBkaWQgYmVmb3JlIHIx
MDE4ODMuIFRoaXMgbWVhbnMgc2NyaXB0cyAKKyAgICAgICAgbG9hZGVkIGluc2lkZSBhIHdvcmtl
ciB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBSYXdSZXNvdXJjZSAoaWUgbm8gZXh0cmEKKyAgICAgICAg
c2VjdXJpdHkgY2hlY2tzKSBsaWtlIHRoZXkgd2VyZSBiZWZvcmUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlOjp0YXJnZXRUeXBlVG9DYWNoZWRSZXNvdXJjZVR5cGUpOgorCiAy
MDExLTEyLTA3ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBN
aWNyby1vcHRpbWl6ZSBTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QoKS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDdkNWM5ZmI3
NzY0MTJjMDI2NDVkOWE2M2E3ZDRkOGUyYzZkNjdkYzMuLmRhNDYzMjY0ODU5NWMwOTY2OGZhNDE3
Nzk0NDI2MTQzNWMzZTdmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcApAQCAtMTM1LDcgKzEzNSw4IEBAIENhY2hlZFJlc291cmNlOjpUeXBl
IENhY2hlZFJlc291cmNlOjp0YXJnZXRUeXBlVG9DYWNoZWRSZXNvdXJjZVR5cGUoUmVzb3VyY2VS
ZXF1CiAgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3R5bGVTaGVldDoKICAgICAg
ICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OwogICAgIGNhc2UgUmVzb3Vy
Y2VSZXF1ZXN0OjpUYXJnZXRJc1NjcmlwdDoKLSAgICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNl
OjpTY3JpcHQ7CisgICAgICAgIC8vIFRPRE86IENoYW5nZSBiYWNrIHRvIENhY2hlZFJlc291cmNl
OjpTY3JpcHQgb25jZSBodHRwOi8vY3JidWcuY29tLzEwNjM4MyBoYXMgYmVlbiBmaXhlZC4KKyAg
ICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZTsKICAgICBjYXNlIFJlc291
cmNlUmVxdWVzdDo6VGFyZ2V0SXNGb250UmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBDYWNoZWRS
ZXNvdXJjZTo6Rm9udFJlc291cmNlOwogICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c0ltYWdlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118268</attachid>
            <date>2011-12-07 13:43:11 -0800</date>
            <delta_ts>2011-12-07 18:45:16 -0800</delta_ts>
            <desc>Revert mixed content handling for video fix and follow-up rebases and Skipped updates.</desc>
            <filename>bug-72178-20111207134310.patch</filename>
            <type>text/plain</type>
            <size>35277</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYwNmZkOGVhMDhmYmQy
NmFiZjY2NjgyNzBjMTUwYjc2ZDIzYjliNC4uOTQwNGI1ODczOTVlMzJlNjVjM2IxOWRlOTY1NjRm
YmRhODM2MmNmNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDExLTEyLTA3ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmVydCBtaXhl
ZCBjb250ZW50IGhhbmRsaW5nIGZvciB2aWRlbyBmaXggYW5kIGZvbGxvdy11cCB0ZXN0IGV4cGVj
dGF0aW9ucyAmIFNraXBwZWQgY2hhbmdlcy4KKyAgICAgICAgKHIxMDE4ODMsIHIxMDE5MTgsIHIx
MDE5MjcsIHIxMDE5ODEsIHIxMDE5ODYsIHIxMDE5OTcpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRQcmlvcml0eUZv
clJlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNvdXJjZVR5cGVUb1Rh
cmdldFR5cGUpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisKIDIwMTEtMTItMDcgIEFuZHJlYXMgS2xp
bmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmRlck9iamVjdDo6c3R5bGUoKTog
SW5saW5lIGVhcmx5LXJldHVybiBjb25kaXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxMGFkMGYyZWYyM2FlYTM3ZTc1NDFhZDIwMGZhOWZh
MTUwNDZmMGMwLi4yNTAzNmZmNGY2YzY1ZDk0YWJmNGIxMDY1OTgwYTNjMzE2YWRmYzMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTEyOCwxNiAr
MTI4LDEwIEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291CiB7CiAgICAgLy8gU3RvcmUgdGhlIHBy
ZXZpb3VzIFVSTCBiZWNhdXNlIHRoZSBjYWxsIHRvIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJl
cXVlc3Qgd2lsbCBtb2RpZnkgaXQuCiAgICAgS1VSTCBwcmV2aW91c1VSTCA9IHJlcXVlc3QoKS51
cmwoKTsKLSAgICBDYWNoZWRSZXNvdXJjZTo6VHlwZSByZXF1ZXN0VHlwZUZvckNhblJlcXVlc3Qg
PSBtX3Jlc291cmNlLT50eXBlKCk7Ci0KLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBpZiAo
cmVxdWVzdFR5cGVGb3JDYW5SZXF1ZXN0ID09IENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSkK
LSAgICAgICAgcmVxdWVzdFR5cGVGb3JDYW5SZXF1ZXN0ID0gQ2FjaGVkUmVzb3VyY2U6OnRhcmdl
dFR5cGVUb0NhY2hlZFJlc291cmNlVHlwZShyZXF1ZXN0KCkudGFyZ2V0VHlwZSgpKTsKLSNlbmRp
ZgotCisgICAgCiAgICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0
LCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICBpZiAoIXByZXZpb3VzVVJMLmlzTnVsbCgpICYmICFu
ZXdSZXF1ZXN0LmlzTnVsbCgpICYmIHByZXZpb3VzVVJMICE9IG5ld1JlcXVlc3QudXJsKCkpIHsK
LSAgICAgICAgaWYgKCFtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5jYW5SZXF1
ZXN0KHJlcXVlc3RUeXBlRm9yQ2FuUmVxdWVzdCwgbmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAg
ICAgaWYgKCFtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5jYW5SZXF1ZXN0KG1f
cmVzb3VyY2UtPnR5cGUoKSwgbmV3UmVxdWVzdC51cmwoKSkpIHsKICAgICAgICAgICAgIGNhbmNl
bCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA2Yzg3NmM4MDkxYTVk
ZjU4OTdiNjE4ODA0NDE5ZGQ3YTQ5NTc3YWM5Li42M2Y4MWM5YTdlYzdlZDZlZmM3ZDQ4NzE0NGVh
MzBjMzViYjA2Mzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmF3UmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSYXdSZXNvdXJjZS5jcHAKQEAgLTQxLDEyICs0MSw2IEBAIENhY2hlZFJhd1Jlc291cmNlOjpD
YWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKIH0K
IAotQ2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYg
cmVzb3VyY2VSZXF1ZXN0LCBUeXBlIHR5cGUpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJj
ZVJlcXVlc3QsIHR5cGUpCi0gICAgLCBtX2RhdGFMZW5ndGgoMCkKLXsKLX0KLQogdm9pZCBDYWNo
ZWRSYXdSZXNvdXJjZTo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpCiB7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVz
b3VyY2U+IHByb3RlY3QodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSYXdSZXNvdXJjZS5oCmluZGV4IDEzNTZlZmFkNzE2OTAyMjIwMDUyZGQ5NDExNzM0NWJi
ODE1MGFiMGUuLjliMGNhYjUyMzU1NjU5ZDdhZWZhODY4ZWI4YjBhMTdkMGY2MGI3OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCkBAIC0z
MCw4ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkUmF3UmVzb3Vy
Y2UgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIGV4cGxpY2l0IENhY2hl
ZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYpOwotICAgIENhY2hlZFJhd1Jlc291cmNlKFJl
c291cmNlUmVxdWVzdCYsIFR5cGUpOworICAgIENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVx
dWVzdCYpOwogCiAgICAgLy8gRklYTUU6IEFzc29jaWF0ZWRVUkxMb2FkZXIgc2hvdWxkbid0IGJl
IGEgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyIGFuZCB0aGVyZWZvcmUgc2hvdWxkbid0CiAgICAg
Ly8gdXNlIENhY2hlZFJhd1Jlc291cmNlLiBIb3dldmVyLCBpdCBpcywgYW5kIGl0IG5lZWRzIHRv
IGJlIGFibGUgdG8gZGVmZXIgbG9hZGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDdkNWM5ZmI3NzY0MTJjMDI2NDVkOWE2M2E3ZDRk
OGUyYzZkNjdkYzMuLmQwMDNjNGFkMjk4NDdlYTcwYzk1MTg2MzY1M2M0ZDRmZGNhZTg3M2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAt
NzQsMTAgKzc0LDYgQEAgc3RhdGljIFJlc291cmNlTG9hZFByaW9yaXR5IGRlZmF1bHRQcmlvcml0
eUZvclJlc291cmNlVHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZQogICAgICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VM
b2FkUHJpb3JpdHlWZXJ5TG93OwogI2VuZGlmCi0jaWYgRU5BQkxFKFZJREVPKQotICAgICAgICBj
YXNlIENhY2hlZFJlc291cmNlOjpNZWRpYVJlc291cmNlOgotICAgICAgICAgICAgcmV0dXJuIFJl
c291cmNlTG9hZFByaW9yaXR5TWVkaXVtOwotI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICAgICAg
ICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKQEAgLTExNiwxMCArMTEyLDYg
QEAgc3RhdGljIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSBjYWNoZWRSZXNvdXJjZVR5cGVU
b1RhcmdldFR5cGUoQ2FjaGVkUmVzb3VyY2UKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5r
U3VicmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3Vi
cmVzb3VyY2U7CiAjZW5kaWYKLSNpZiBFTkFCTEUoVklERU8pCi0gICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6TWVkaWFSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFy
Z2V0SXNNZWRpYTsKLSNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICAgICAgICAgcmV0dXJuIFJlc291cmNl
UmVxdWVzdDo6VGFyZ2V0SXNUZXh0VHJhY2s7CkBAIC0xMjgsNDkgKzEyMCw2IEBAIHN0YXRpYyBS
ZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgY2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBl
KENhY2hlZFJlc291cmNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFJl
c291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJyZXNvdXJjZTsKIH0KLQotQ2FjaGVkUmVzb3VyY2U6
OlR5cGUgQ2FjaGVkUmVzb3VyY2U6OnRhcmdldFR5cGVUb0NhY2hlZFJlc291cmNlVHlwZShSZXNv
dXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgdHlwZSkKLXsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdHlsZVNoZWV0OgotICAgICAgICByZXR1
cm4gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ7Ci0gICAgY2FzZSBSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzU2NyaXB0OgotICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OlNjcmlw
dDsKLSAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGb250UmVzb3VyY2U6Ci0gICAg
ICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOwotICAgIGNhc2UgUmVzb3Vy
Y2VSZXF1ZXN0OjpUYXJnZXRJc0ltYWdlOgotICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJn
ZXRJc0Zhdmljb246Ci0gICAgICAgIHJldHVybiBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJj
ZTsKLSAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJyZXNvdXJjZToKLSAgICAg
ICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZTsKLSAgICBjYXNlIFJlc291cmNl
UmVxdWVzdDo6VGFyZ2V0SXNXb3JrZXI6Ci0gICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dElzU2hhcmVkV29ya2VyOgotICAgICAgICByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDsK
LSAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNPYmplY3Q6Ci0gICAgY2FzZSBSZXNv
dXJjZVJlcXVlc3Q6OlRhcmdldElzTWFpbkZyYW1lOgotICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0
OjpUYXJnZXRJc1N1YmZyYW1lOgotICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1hI
UjoKLSAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNVbnNwZWNpZmllZDoKLSAgICAg
ICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZTsKLSNpZiBFTkFCTEUoTElOS19Q
UkVGRVRDSCkKLSAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVmZXRjaDoKLSAg
ICAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g7Ci0gICAgY2FzZSBSZXNv
dXJjZVJlcXVlc3Q6OlRhcmdldElzUHJlcmVuZGVyOgotICAgICAgICByZXR1cm4gQ2FjaGVkUmVz
b3VyY2U6OkxpbmtQcmVyZW5kZXI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoVklERU8pCi0gICAgY2Fz
ZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzTWVkaWE6Ci0gICAgICAgIHJldHVybiBDYWNoZWRS
ZXNvdXJjZTo6TWVkaWFSZXNvdXJjZTsKLSNlbmRpZgotI2lmIEVOQUJMRShWSURFT19UUkFDSykK
LSAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNUZXh0VHJhY2s6Ci0gICAgICAgIHJl
dHVybiBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U7Ci0jZW5kaWYKLSAgICB9Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIENhY2hlZFJlc291cmNlOjpSYXdS
ZXNvdXJjZTsKLX0KLQogI2VuZGlmCiAKIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChSZWZDb3Vu
dGVkTGVha0NvdW50ZXIsIGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIsICgiQ2FjaGVkUmVzb3Vy
Y2UiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmlu
ZGV4IDE5YzdkZTFhNzY1ZjJkOGQxMDVhMWU0ZmExMzg0YTFjMjM3MTc5MjAuLmVhYzI2MjEwMTk1
YzNkZjcyZDkxYjhjYTcyM2FmMzExMzUyYTAzN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC03OSw5ICs3OSw2IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgICAgICwgU2hhZGVyUmVzb3VyY2UKICNlbmRpZgotI2lm
IEVOQUJMRShWSURFTykKLSAgICAgICAgLCBNZWRpYVJlc291cmNlCi0jZW5kaWYKICAgICB9Owog
CiAgICAgZW51bSBTdGF0dXMgewpAQCAtMjQxLDggKzIzOCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIC8qIGJ5dGVzU2VudCAqLywg
dW5zaWduZWQgbG9uZyBsb25nIC8qIHRvdGFsQnl0ZXNUb0JlU2VudCAqLykgeyB9CiAjaWYgUExB
VEZPUk0oQ0hST01JVU0pCiAgICAgdmlydHVhbCB2b2lkIGRpZERvd25sb2FkRGF0YShpbnQpIHsg
fQotCi0gICAgc3RhdGljIFR5cGUgdGFyZ2V0VHlwZVRvQ2FjaGVkUmVzb3VyY2VUeXBlKFJlc291
cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSk7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0TG9hZEZpbmlz
aFRpbWUoZG91YmxlIGZpbmlzaFRpbWUpIHsgbV9sb2FkRmluaXNoVGltZSA9IGZpbmlzaFRpbWU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IGZiZjdhNDM3YzM4MTA4ODBlMmNkNjc2MzU4MmFmZTllMjUyMTNjMzIu
LmM3ZjA2ODYzMjQ2N2ZhMDdmNjdmYjQ2OWE2ZjI4OWRkYzkzNGRmNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAt
ODgsMTAgKzg4LDYgQEAgc3RhdGljIENhY2hlZFJlc291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3Vy
Y2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7CiAjZW5kaWYKLSNp
ZiBFTkFCTEUoVklERU8pCi0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToK
LSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSYXdSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNv
dXJjZTo6TWVkaWFSZXNvdXJjZSk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAgICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkVGV4dFRyYWNrKHJlcXVlc3QpOwpAQCAtMjU3LDkgKzI1Myw2IEBAIGJvb2wg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIGNvbnN0CiAgICAgICAgICAgICBpZiAoIWYtPmxvYWRlcigpLT5jaGVja0lm
UnVuSW5zZWN1cmVDb250ZW50KG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUo
VklERU8pCi0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKLSNlbmRpZgog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJh
Y2tSZXNvdXJjZToKICNlbmRpZgpAQCAtMzExLDkgKzMwNCw2IEBAIGJvb2wgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VS
TCYgdXJsCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKICAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAjZW5kaWYKLSNpZiBFTkFCTEUoVklE
RU8pCi0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZToKLSNlbmRpZgogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tS
ZXNvdXJjZToKICNlbmRpZgpAQCAtMzc5LDExICszNjksOCBAQCBib29sIENhY2hlZFJlc291cmNl
TG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwm
IHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNlbmRpZgog
ICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoVklERU8pCi0gICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6TWVkaWFSZXNvdXJjZToKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6Ci0jZW5kaWYKICAgICAgICAgLy8gQ3VlcyBh
cmVuJ3QgY2FsbGVkIG91dCBpbiB0aGUgQ1BTIHNwZWMgeWV0LCBidXQgdGhleSBvbmx5IHdvcmsg
d2l0aCBhIG1lZGlhIGVsZW1lbnQKICAgICAgICAgLy8gc28gdXNlIHRoZSBtZWRpYSBwb2xpY3ku
CiAgICAgICAgIGlmICghbV9kb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93
TWVkaWFGcm9tU291cmNlKHVybCkpCkBAIC00MTUsMTQgKzQwMiw3IEBAIENhY2hlZFJlc291cmNl
KiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpU
eXBlIHR5cGUsCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gMDsKIAot
ICAgIENhY2hlZFJlc291cmNlOjpUeXBlIHJlcXVlc3RUeXBlRm9yQ2FuUmVxdWVzdCA9IHR5cGU7
Ci0KLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBpZiAocmVxdWVzdFR5cGVGb3JDYW5SZXF1
ZXN0ID09IENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSkKLSAgICAgICAgcmVxdWVzdFR5cGVG
b3JDYW5SZXF1ZXN0ID0gQ2FjaGVkUmVzb3VyY2U6OnRhcmdldFR5cGVUb0NhY2hlZFJlc291cmNl
VHlwZShyZXF1ZXN0LnRhcmdldFR5cGUoKSk7Ci0jZW5kaWYKLQotICAgIGlmICghY2FuUmVxdWVz
dChyZXF1ZXN0VHlwZUZvckNhblJlcXVlc3QsIHVybCwgZm9yUHJlbG9hZCkpCisgICAgaWYgKCFj
YW5SZXF1ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCiAgICAgICAgIHJldHVybiAwOwogCiAg
ICAgaWYgKG1lbW9yeUNhY2hlKCktPmRpc2FibGVkKCkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYjQ5Njk2ZDkwOTk0
NjUwMDhhNDQyNzRhODJmNTQzMjRkZmY0YzJmLi5jZjhiMTJkNGQwYzUyZDY5YjUxMGE1NzZlZjFh
YWFhNjc2OWUyMTM4IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTItMDcgIEFhcm9uIENv
bHdlbGwgIDxhY29sd2VsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2ZXJ0IG1peGVkIGNv
bnRlbnQgaGFuZGxpbmcgZm9yIHZpZGVvIGZpeCBhbmQgZm9sbG93LXVwIHRlc3QgZXhwZWN0YXRp
b25zICYgU2tpcHBlZCBjaGFuZ2VzLgorICAgICAgICAocjEwMTg4MywgcjEwMTkxOCwgcjEwMTky
NywgcjEwMTk4MSwgcjEwMTk4NiwgcjEwMTk5NykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9p
bnNlY3VyZS12aWRlby1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFt
ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVv
LWluLW1haW4tZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJh
bWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFtZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlkZW8taW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVk
aXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZyYW1lLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1l
LXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRw
LXRvLWh0dHBzLXZpZGVvLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cHMtdG8t
aHR0cC12aWRlby5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWNn
LW1hYy1zbm93bGVvcGFyZC9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3Vy
ZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1jZy1tYWMtc25vd2xlb3BhcmQvaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1pbi1tYWluLWZyYW1lLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25v
d2xlb3BhcmQvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8t
aW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0tbWFjLXNub3dsZW9wYXJkL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxh
dGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMS0xMi0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEw
MjI0NC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1pZnJh
bWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDBiMjA1Yjhj
MGM2MmI1NmJiMmIwZjJhNjliYWJiMzdiNjVmZmQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLWlmcmFtZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMSArMCwwIEBACi1mcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAt
LT4tLT4iIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCi1mcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTAtLT4tLT4iIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCi1mcmFtZSAiPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKLWZy
YW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBkaWRIYW5kbGVPbmxvYWRF
dmVudHNGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1l
Ci1mcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkRmluaXNoTG9h
ZEZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCi1UaGlzIHRlc3Qg
bG9hZHMgYSBzZWN1cmUgaWZyYW1lIHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8uIFdlIHNo
b3VsZCAqbm90KiBnZXQgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4g
ZnJhbWUgaXMgSFRUUCBhbmQgdGhlIHZpZGVvIGRvZXNuJ3QgY29udGFtaW5hdGUgdGhlIGNoaWxk
IGlmcmFtZSdzIHNlY3VyaXR5IG9yaWdpbiB3aXRoIG1peGVkIGNvbnRlbnQuCi0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1
cmUtdmlkZW8taW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjUzM2FkOWYyYmVmODg3Y2Q0NTAxYTA5MjhhYjJlMzc2NzlhODFj
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1p
ZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLTxodG1sPgotICAgIDxi
b2R5PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc2NyaXB0PgotICAgICAg
ICA8cD5UaGlzIHRlc3QgbG9hZHMgYSBzZWN1cmUgaWZyYW1lIHRoYXQgbG9hZHMgYW4gaW5zZWN1
cmUgdmlkZW8uICBXZSBzaG91bGQKLSpub3QqIGdldCBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sg
YmVjYXVzZSB0aGUgbWFpbiBmcmFtZSBpcyBIVFRQIGFuZCB0aGUgdmlkZW8KLWRvZXNuJ3QgY29u
dGFtaW5hdGUgdGhlIGNoaWxkIGlmcmFtZSdzIHNlY3VyaXR5IG9yaWdpbiB3aXRoIG1peGVkIGNv
bnRlbnQuPC9wPgotICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9z
ZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8u
aHRtbCI+PC9pZnJhbWU+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4t
bWFpbi1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU2OGVlYTU0MjNkZDFmNDQ4MmEyNzljNTQ4
ZmVjMGQxZDRiMGExNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3Vy
ZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLW1haW4gZnJhbWUgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCi1t
YWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKLW1haW4gZnJhbWUgLSBk
aWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRG
b3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAt
IGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkSGFuZGxlT25s
b2FkRXZlbnRzRm9yRnJhbWUKLW1haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBUaGUgcGFnZSBhdCBodHRwczovLzEyNy4wLjAuMTo4NDQz
L3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS12aWRl
by5odG1sIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4
MDgwL3Jlc291cmNlcy90ZXN0Lm9ndi4KLQotZGlkRGlzcGxheUluc2VjdXJlQ29udGVudAotVGhp
cyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8uIFdlIHNo
b3VsZCB0cmlnZ2VyIGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRoZSBtYWluIGZy
YW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYnV0IGlzIGRpc3BsYXlpbmcgaW5zZWN1cmUgY29u
dGVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJh
bWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdmYmU2M2VjZTVlNDc4MWQx
M2M5MzMxMGJlMGMxOGFiYTQ5MzlmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
NSArMCwwIEBACi08aHRtbD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsKLSAgICAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0
ZSh0cnVlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZSkgewotICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0sIGZhbHNlKTsKLQotICAgICAg
ICA8L3NjcmlwdD4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9h
ZHMgYW4gaW5zZWN1cmUgdmlkZW8uICBXZSBzaG91bGQgdHJpZ2dlciBhCi1taXhlZCBjb250ZW50
IGNhbGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhlIHdpbmRvdyBpcyBIVFRQUyBi
dXQgaXMKLWRpc3BsYXlpbmcgaW5zZWN1cmUgY29udGVudC48L3A+Ci0gICAgICAgIDxzY3JpcHQ+
Ci0gICAgICAgICAgICB3aW5kb3cub3BlbigiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0
eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbCIp
OwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRw
LXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12
aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZGU1ZDNiMzBiMGY1ODExNGZiYjM2MmVlMjAxZTcwN2UwN2UyOWI5OS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWlu
LW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAot
bWFpbiBmcmFtZSAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKLW1haW4gZnJhbWUg
LSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9u
bG9hZEV2ZW50c0ZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCi1t
YWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUKLW1haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNG
b3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0dHAtdG8taHR0cHMt
dmlkZW8uaHRtbCBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly8xMjcuMC4w
LjE6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvcmVkaXIucGhwP3VybD1odHRwczovLzEyNy4wLjAu
MTo4NDQzL3Jlc291cmNlcy90ZXN0Lm9ndi4KLQotZGlkRGlzcGxheUluc2VjdXJlQ29udGVudAot
VGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgdmlkZW8odmlh
IGEgdHJpY2t5IHJlZGlyZWN0KS4gV2Ugc2hvdWxkIHRyaWdnZXIgYSBtaXhlZCBjb250ZW50IGNh
bGxiYWNrIGJlY2F1c2UgdGhlIG1haW4gZnJhbWUgaW4gdGhlIHdpbmRvdyBpcyBIVFRQUyBidXQg
aXMgZGlzcGxheWluZyBpbnNlY3VyZSBjb250ZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12
aWRlby1pbi1tYWluLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDczZTRhMGRkODg3Y2ZiZmFjNzI3
YjEyZTJhYTc5OTNmYjNhYzQzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9y
ZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDI1ICswLDAgQEAKLTxodG1sPgotICAgIDxib2R5PgotICAgICAgICA8c2NyaXB0
PgotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpOwotICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dz
V2hlbkNvbXBsZXRlKHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSwgZmFsc2Up
OwotCi0gICAgICAgIDwvc2NyaXB0PgotICAgICAgICA8cD5UaGlzIHRlc3Qgb3BlbnMgYSB3aW5k
b3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlbyh2aWEgYSB0cmlja3kgCi1yZWRpcmVjdCku
ICBXZSBzaG91bGQgdHJpZ2dlciBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgYmVjYXVzZSB0aGUg
bWFpbiBmcmFtZSBpbiB0aGUgd2luZG93IGlzIEhUVFBTIGJ1dCBpcwotZGlzcGxheWluZyBpbnNl
Y3VyZSBjb250ZW50LjwvcD4KLSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIHdpbmRvdy5v
cGVuKCJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJj
ZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLmh0bWwiKTsKLSAgICAg
ICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0
cC12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlkZW8taW4t
bWFpbi1mcmFtZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2
Mjk3ZWE5YzM2NzQzMzNiYzBjZjUzMDYxZDYwYjgwZjVhNTY5NzIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZy
YW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLW1haW4gZnJh
bWUgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKLW1haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVu
dHNGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQotbWFpbiBmcmFt
ZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50
TG9hZEZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUK
LW1haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxOiBUaGUgcGFnZSBhdCBodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLmh0
bWwgZGlzcGxheWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAv
cmVzb3VyY2VzL3Rlc3Qub2d2LgotCi1kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Ci1UaGlzIHRl
c3Qgb3BlbnMgYSB3aW5kb3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlbyh2aWEgYSB0cmlj
a3kgcmVkaXJlY3QpLiBXZSBzaG91bGQgdHJpZ2dlciBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sg
YmVjYXVzZSB0aGUgbWFpbiBmcmFtZSBpbiB0aGUgd2luZG93IGlzIEhUVFBTIGJ1dCBpcyBkaXNw
bGF5aW5nIGluc2VjdXJlIGNvbnRlbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwcy10by1odHRwLXZpZGVvLWlu
LW1haW4tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2Y1ZjU4NmI3MmFhOWRjOTExMGM4MWU0NWNm
ZjYwODc0MjA4ZTg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0
LWh0dHBzLXRvLWh0dHAtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjUgKzAsMCBAQAotPGh0bWw+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAg
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCk7Ci0gICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICAgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29t
cGxldGUodHJ1ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9LCBmYWxzZSk7Ci0KLSAg
ICAgICAgPC9zY3JpcHQ+Ci0gICAgICAgIDxwPlRoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0
IGxvYWRzIGFuIGluc2VjdXJlIHZpZGVvKHZpYSBhIHRyaWNreSAKLXJlZGlyZWN0KS4gIFdlIHNo
b3VsZCB0cmlnZ2VyIGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRoZSBtYWluIGZy
YW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYnV0IGlzCi1kaXNwbGF5aW5nIGluc2VjdXJlIGNv
bnRlbnQuPC9wPgotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgd2luZG93Lm9wZW4oImh0
dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFt
ZS13aXRoLXJlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlkZW8uaHRtbCIpOwotICAgICAgICA8L3Nj
cmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3Vy
ZS12aWRlby5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjI1MDIyODQ2M2M5YWI2N2E4YWU0MDRhMGFmNjNhM2M4NmI4YTVl
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0
aC1pbnNlY3VyZS12aWRlby5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPGh0
bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvbWVkaWEtcmVzb3VyY2VzL21l
ZGlhLWZpbGUuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgZnVu
Y3Rpb24gZnJhbWVMb2FkZWQoKSB7Ci0gICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndicpOwotCi0gICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0
ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cub3BlbmVyKQotICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW5l
ci5wb3N0TWVzc2FnZSgnZG9uZScsICcqJyk7Ci0gICAgICAgICAgICAgICAgIH0sIHRydWUpOwot
Ci0gICAgICAgICAgICAgICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywg
J3Jlc291cmNlcy90ZXN0Jyk7Ci0gICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gJ2h0dHA6Ly8x
MjcuMC4wLjE6ODA4MC8nICsgbWVkaWFGaWxlOwotICAgICAgICAgICAgICAgIHZpZGVvLnBsYXko
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxi
b2R5IG9ubG9hZD0iZnJhbWVMb2FkZWQoKSI+Ci0gICAgICAgIDx2aWRlbyBpZD0idiI+IDwvdmlk
ZW8+Ci0gICAgICAgIDxwPlRlc3QgdGhhdCBhdCBsZWFzdCBvbmUgcHJvZ3Jlc3MgZXZlbnQgaXMg
ZmlyZWQgYWZ0ZXIgc3RhcnRpbmcgdG8gbG9hZCB0aGUgdmlkZW8uPC9wPgotICAgIDwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlk
ZW8uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jl
c291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8uaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzVmYzljYzM3NDg5OWViYmM0NzdkNTU1M2ZhNDA3
OWFjYzM5ZjM2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMv
ZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyMyArMCwwIEBACi08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBz
cmM9Ii9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxz
Y3JpcHQ+Ci0gICAgICAgICAgICBmdW5jdGlvbiBmcmFtZUxvYWRlZCgpIHsKLSAgICAgICAgICAg
ICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Jyk7Ci0KLSAgICAgICAgICAg
ICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsIGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5vcGVuZXIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCdkb25lJywgJyonKTsKLSAgICAg
ICAgICAgICAgICAgfSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgbWVkaWFGaWxlID0g
ZmluZE1lZGlhRmlsZSgndmlkZW8nLCAncmVzb3VyY2VzL3Rlc3QnKTsKLSAgICAgICAgICAgICAg
ICB2aWRlby5zcmMgPSAnaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9y
ZWRpci5waHA/dXJsPWh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvJyArIG1lZGlhRmlsZTsKLSAgICAg
ICAgICAgICAgICB2aWRlby5wbGF5KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc2NyaXB0
PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiPgotICAgICAg
ICA8dmlkZW8gaWQ9InYiPiA8L3ZpZGVvPgotICAgICAgICA8cD5UZXN0IHRoYXQgYXQgbGVhc3Qg
b25lIHByb2dyZXNzIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHN0YXJ0aW5nIHRvIGxvYWQgdGhlIHZp
ZGVvLjwvcD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRp
cmVjdC1odHRwcy10by1odHRwLXZpZGVvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwcy10
by1odHRwLXZpZGVvLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MDIwMTQ2
NDAwZTJhMzU2MjhmMDZhYjlmMGNlMDNlZDY2N2NkMjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12
aWRlby5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPGh0bWw+Ci0gICAgPGhl
YWQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvbWVkaWEtcmVzb3VyY2VzL21lZGlhLWZpbGUuanMi
Pjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgZnVuY3Rpb24gZnJhbWVM
b2FkZWQoKSB7Ci0gICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndicpOwotCi0gICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVk
bWV0YWRhdGEnLCBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
b3BlbmVyKQotICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2Fn
ZSgnZG9uZScsICcqJyk7Ci0gICAgICAgICAgICAgICAgIH0sIHRydWUpOwotCi0gICAgICAgICAg
ICAgICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ3Jlc291cmNlcy90
ZXN0Jyk7Ci0gICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gJ2h0dHBzOi8vMTI3LjAuMC4xOjg0
NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZGlyLnBocD91cmw9aHR0cDovLzEyNy4wLjAuMTo4MDgw
LycgKyBtZWRpYUZpbGU7Ci0gICAgICAgICAgICAgICAgdmlkZW8ucGxheSgpOwotICAgICAgICAg
ICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHkgb25sb2FkPSJm
cmFtZUxvYWRlZCgpIj4KLSAgICAgICAgPHZpZGVvIGlkPSJ2Ij4gPC92aWRlbz4KLSAgICAgICAg
PHA+VGVzdCB0aGF0IGF0IGxlYXN0IG9uZSBwcm9ncmVzcyBldmVudCBpcyBmaXJlZCBhZnRlciBz
dGFydGluZyB0byBsb2FkIHRoZSB2aWRlby48L3A+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tY2ctbWFjLXNub3dsZW9wYXJk
L2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4t
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tY2ctbWFj
LXNub3dsZW9wYXJkL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZp
ZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4ODE4MmRiZWVjNWJlYjgzMmNlMzhlNTA2YjZmYTM3ZmFjMTE1NTBiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWNnLW1hYy1zbm93bGVvcGFyZC9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE1ICswLDAgQEAKLW1haW4gZnJhbWUgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKLW1h
aW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQot
bWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCi1tYWluIGZyYW1lIC0g
ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKLW1haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUaGUgcGFnZSBhdCBodHRwczovLzEy
Ny4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1p
bnNlY3VyZS12aWRlby5odG1sIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDov
LzEyNy4wLjAuMTo4MDgwL3Jlc291cmNlcy90ZXN0Lm9ndi4KLQotZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3
LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWlu
c2VjdXJlLXZpZGVvLmh0bWwgZGlzcGxheWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8v
MTI3LjAuMC4xOjgwODAvcmVzb3VyY2VzL3Rlc3Qub2d2LgotCi1kaWREaXNwbGF5SW5zZWN1cmVD
b250ZW50Ci1UaGlzIHRlc3Qgb3BlbnMgYSB3aW5kb3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2
aWRlby4gV2Ugc2hvdWxkIHRyaWdnZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGJlY2F1c2Ug
dGhlIG1haW4gZnJhbWUgaW4gdGhlIHdpbmRvdyBpcyBIVFRQUyBidXQgaXMgZGlzcGxheWluZyBp
bnNlY3VyZSBjb250ZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tY2ctbWFjLXNub3dsZW9wYXJkL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jl
ZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1jZy1tYWMtc25vd2xlb3BhcmQvaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1pbi1t
YWluLWZyYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM3
NTg1YzY1NWFmNzk1NzNlMzU4OWQzMTc0NTdkODZhYzNlNGU5OC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1jZy1tYWMtc25vd2xlb3BhcmQvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVk
aXJlY3QtaHR0cC10by1odHRwcy12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLW1haW4gZnJhbWUgLSBkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJh
bWUKLW1haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQotbWFpbiBmcmFt
ZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRGb3JG
cmFtZQotbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCi1tYWluIGZy
YW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKLW1haW4gZnJhbWUgLSBkaWRGaW5p
c2hMb2FkRm9yRnJhbWUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUaGUgcGFnZSBhdCBodHRw
czovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUt
d2l0aC1yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLmh0bWwgZGlzcGxheWVkIGluc2VjdXJl
IGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL3Jl
ZGlyLnBocD91cmw9aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9yZXNvdXJjZXMvdGVzdC5vZ3YuCi0K
LWRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUaGUg
cGFnZSBhdCBodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNv
dXJjZXMvZnJhbWUtd2l0aC1yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLmh0bWwgZGlzcGxh
eWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvc2VjdXJpdHkv
cmVzb3VyY2VzL3JlZGlyLnBocD91cmw9aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9yZXNvdXJjZXMv
dGVzdC5vZ3YuCi0KLWRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQKLVRoaXMgdGVzdCBvcGVucyBh
IHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHZpZGVvKHZpYSBhIHRyaWNreSByZWRpcmVj
dCkuIFdlIHNob3VsZCB0cmlnZ2VyIGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBiZWNhdXNlIHRo
ZSBtYWluIGZyYW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYnV0IGlzIGRpc3BsYXlpbmcgaW5z
ZWN1cmUgY29udGVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LW1hYy1zbm93bGVvcGFyZC9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3Vy
ZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZC9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9pbnNlY3VyZS12aWRlby1pbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggODgxODJkYmVlYzViZWI4MzJjZTM4ZTUwNmI2ZmEzN2ZhYzExNTUw
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQvaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtdmlkZW8taW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1tYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKLW1haW4g
ZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKLW1haW4gZnJhbWUgLSBkaWRDb21taXRMb2Fk
Rm9yRnJhbWUKLW1haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQotbWFp
biBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlk
RmluaXNoTG9hZEZvckZyYW1lCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVGhlIHBhZ2UgYXQg
aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2Zy
YW1lLXdpdGgtaW5zZWN1cmUtdmlkZW8uaHRtbCBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVudCBm
cm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9yZXNvdXJjZXMvdGVzdC5vZ3YuCi0KLWRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUaGUgcGFnZSBhdCBo
dHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJh
bWUtd2l0aC1pbnNlY3VyZS12aWRlby5odG1sIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZy
b20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3Jlc291cmNlcy90ZXN0Lm9ndi4KLQotZGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudAotVGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4g
aW5zZWN1cmUgdmlkZW8uIFdlIHNob3VsZCB0cmlnZ2VyIGEgbWl4ZWQgY29udGVudCBjYWxsYmFj
ayBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYnV0IGlzIGRp
c3BsYXlpbmcgaW5zZWN1cmUgY29udGVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZC9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXZpZGVvLWluLW1haW4tZnJhbWUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkL2h0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8t
aW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQzNzU4NWM2NTVhZjc5NTczZTM1ODlkMzE3NDU3ZDg2YWMzZTRlOTguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbWFjLXNub3dsZW9wYXJkL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jl
ZGlyZWN0LWh0dHAtdG8taHR0cHMtdmlkZW8taW4tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1tYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZy
YW1lCi1tYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKLW1haW4gZnJh
bWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKLW1haW4gZnJhbWUgLSBkaWRDb21taXRMb2FkRm9y
RnJhbWUKLW1haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQotbWFpbiBm
cmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCi1tYWluIGZyYW1lIC0gZGlkRmlu
aXNoTG9hZEZvckZyYW1lCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVGhlIHBhZ2UgYXQgaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1l
LXdpdGgtcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby5odG1sIGRpc3BsYXllZCBpbnNlY3Vy
ZSBjb250ZW50IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9y
ZWRpci5waHA/dXJsPWh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcmVzb3VyY2VzL3Rlc3Qub2d2Lgot
Ci1kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVGhl
IHBhZ2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVz
b3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby5odG1sIGRpc3Bs
YXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5
L3Jlc291cmNlcy9yZWRpci5waHA/dXJsPWh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcmVzb3VyY2Vz
L3Rlc3Qub2d2LgotCi1kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Ci1UaGlzIHRlc3Qgb3BlbnMg
YSB3aW5kb3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSB2aWRlbyh2aWEgYSB0cmlja3kgcmVkaXJl
Y3QpLiBXZSBzaG91bGQgdHJpZ2dlciBhIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgYmVjYXVzZSB0
aGUgbWFpbiBmcmFtZSBpbiB0aGUgd2luZG93IGlzIEhUVFBTIGJ1dCBpcyBkaXNwbGF5aW5nIGlu
c2VjdXJlIGNvbnRlbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGIzMzg0OGU0YWJm
NjgwMDJlOTUyOTM2NDRmOTI0NDJmMTBlZDllYTEuLjk3NWM0MzJkYTUwNzM1NGU5Y2Q2YzIzMWM2
NzA0ZTUxM2MxYmZlODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xNTk0LDExICsx
NTk0LDYgQEAgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1h
ZnRlci1jbG9zZS1pbi1idXN5Lmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTczNTgzCiBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwK
IAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDMKLWh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUu
aHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1o
dHRwcy12aWRlby1pbi1tYWluLWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCi0K
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNzY5CiBzdmcvdGV4
dC90ZXh0LXN0eWxlLXJlY2FsYy1jcmFzaC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmlu
ZGV4IDAzZTVmMzllOGQ2ZDU0ZGE5NWUzMTNjYmJkMjQzNzM3YTIyM2Y3YTQuLjUyMTc0OWQxOTUx
NGI1ZWViMmEwZDJhN2I0NDBhOGVkNTFjMWViMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApA
QCAtMjUxOCwxMiArMjUxOCw2IEBAIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5YnVmZmVyLXRyYW5z
ZmVyLW9mLWNvbnRyb2wuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzM2NjAKIGZhc3QvZm9ybXMvc2VsZWN0L2xpc3Rib3gtaW4tbXVsdGktY29sdW1uLmh0
bWwKIAotIyBOZXcgdGVzdCBpbnRyb2R1Y2VkIGluIHIxMDE4ODMgZmFpbAotIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNzgKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy12aWRlby1pbi1t
YWluLWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0
LWh0dHBzLXRvLWh0dHAtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCi0KICMgW1F0XSBSRUdSRVNT
SU9OKDEwMTk2Nyk6IEl0IG1hZGUgZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNyYXNoLW1h
Yy5odG1sIHRpbWVvdXQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczODAyCiBlZGl0aW5nL3N0eWxlL2lmcmFtZS1vbmxvYWQtY3Jhc2gtbWFjLmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>