<?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>65855</bug_id>
          
          <creation_ts>2011-08-08 06:55:32 -0700</creation_ts>
          <short_desc>Add a ResourceRequestBase::Context class that is part of a ResourceRequest</short_desc>
          <delta_ts>2012-05-18 00:18:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>liachen</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>447975</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-08-08 06:55:32 -0700</bug_when>
    <thetext>Add empty header for LoadRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447976</commentid>
    <comment_count>1</comment_count>
      <attachid>103238</attachid>
    <who name="">jochen</who>
    <bug_when>2011-08-08 07:02:16 -0700</bug_when>
    <thetext>Created attachment 103238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447977</commentid>
    <comment_count>2</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-08-08 07:03:15 -0700</bug_when>
    <thetext>Alexey, could you have a look please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448350</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-08 16:23:09 -0700</bug_when>
    <thetext>I think that making a &quot;fatter&quot; ResourceRequest could be a viable start for refactoring lower level networking code, but I would like to know more about the next steps.

We have a number of classes incorporating &quot;request&quot; data and/or logic. Can you describe how LoadRequest will be different form each of these?

ResourceRequest
ResourceHandle
FrameLoadRequest
CachedResourceRequest
ScheduledNavigation
ResourceLoader

In particular, is your plan to have ResourceLoader contain LoadRequest instead of ResourceRequest, and move data members such as m_defersLoading into LoadRequest?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449176</commentid>
    <comment_count>4</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-08-10 08:48:34 -0700</bug_when>
    <thetext>My rough plan is to make LoadRequest look almost like FrameLoadRequest, except for that it doesn&apos;t have a security origin nor a name, but a target type instead.

FrameLoadRequest will the inherit from LoadRequest and add the security origin and the frame name to it.

Everything outside of platform/network would then pass around LoadRequests instead of ResourceRequests

(In reply to comment #3)
&gt; I think that making a &quot;fatter&quot; ResourceRequest could be a viable start for refactoring lower level networking code, but I would like to know more about the next steps.
&gt; 
&gt; We have a number of classes incorporating &quot;request&quot; data and/or logic. Can you describe how LoadRequest will be different form each of these?
&gt; 
&gt; ResourceRequest

LoadRequest will contain a ResourceRequest as data member

&gt; ResourceHandle

Being part of platform/network, ResourceHandle won&apos;t know about LoadRequest

&gt; FrameLoadRequest

This will inherit from LoadRequest

&gt; CachedResourceRequest

CachedResoure will include a LoadRequest instead of a ResourceRequest, and CachedResourceRequest will therefore also deal with LoadRequests

&gt; ScheduledNavigation

this will still deal with FrameLoadRequests

&gt; ResourceLoader

this will deal with LoadRequests instead of ResourceRequests

of course when passing a LoadRequest to an api in platform/network, the respective class has to unwrap the ResourceRequest from the LoadRequest

&gt; 
&gt; In particular, is your plan to have ResourceLoader contain LoadRequest instead of ResourceRequest, and move data members such as m_defersLoading into LoadRequest?

My current plan doesn&apos;t include moving additional data fields. However, if it makes sense to do so, this could certainly be done

I hope that makes sense, wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449588</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-10 21:53:20 -0700</bug_when>
    <thetext>Thank you. I&apos;d like to ask Maciej and Darin for their opinion on this plan at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450949</commentid>
    <comment_count>6</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-08-14 13:32:10 -0700</bug_when>
    <thetext>For some background, see also bug 48483 - I&apos;m trying to move ResourceRequest::m_targetType to a higher layer. Right now, it&apos;s part of ResourceRequest that shouldn&apos;t care about the target type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453508</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-18 17:19:26 -0700</bug_when>
    <thetext>This is not good naming.

The point of the name “resource load request” is that it’s everything needed to load a resource.

The class “frame load request” then adds to the resource request everything that you need to load a frame.

If we add have something else named “load request” that is also everything needed to load a resource, then things get really confusing. Removing the adjective makes the class vague in purpose.

We’re going to have to talk about this more to figure out what this class really is so we can give it a suitable name.

I guess the real issue here is that you at Google don’t want our loading built on top of platform/network and want your own out-of-process networking library that requires higher level context, like which frame is doing the call. If so, then the naming needs to make clear that distinction rather than just using the rule “if I remove the word Resource then I am not talking about platform/network”.

We could try to rename the platform/network code instead so we have the shorter names for the high level concept in the loader. The word “resource” is not the right word, though, to indicate it’s part of the low-level loader in the platform directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453876</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-19 09:22:42 -0700</bug_when>
    <thetext>I agree that LoadRequest is not such a great name.  That was my suggestion, derived from FrameLoadRequest, but I can see how that derivation suffers.

What if we were to make the low-level platform thing use names like:

  URLRequest   &lt;-- what is today ResourceRequest
  URLLoader    &lt;-- what is today ResourceHandle
  URLResponse  &lt;-- what is today ResourceResponse

Then, we could move the definition of Resource{Request,Response} to loader/ and we could continue regarding it the way we do today at the loader/ level.

I think since the current ResourceRequest is supposed to be translatable to NSURLRequest and CFNetwork seems to like the URL prefix, that perhaps we should use it too.  In Chromium land, we name the thing backing a ResourceRequest, WebURLRequest and so on.  So, this URL prefix seems to already be in people&apos;s minds when they think about the underlying network stack.

By the way, I&apos;m pretty sure that any multi-process embedding of WebKit would share Chromium&apos;s desire to add more context to ResourceRequest.  (I can go into much greater detail if it would be helpful.)  We are happy to hide those details from WebCore by leveraging FrameLoaderClient::dispatchWillSendRequest.  All we require from WebCore is the ability to have WebCore classify the type of resource request being made.  That&apos;s what led us to this point.  It was suggested that such classification does not belong at the network stack request level, which totally makes sense, but it can be passed to dispatchWillSendRequest in some form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453920</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-19 10:42:56 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; What if we were to make the low-level platform thing use names like:
&gt; 
&gt;   URLRequest   &lt;-- what is today ResourceRequest
&gt;   URLLoader    &lt;-- what is today ResourceHandle
&gt;   URLResponse  &lt;-- what is today ResourceResponse

I applaud this direction, but I am not overjoyed with the names. It might be worth a little more thinking about plain language names for what those objects are to look for good words. I tend to think that the word “load” might need to be added.

My passion for words rather than abbreviations or acronyms is why the ResourceXXX classes have the names they do rather than names with URL in them. The word “resource” came from the “R” in URL and I figured a word was nicer than an acronym, even one as well loved as URL. I didn’t think that “universal” or “locator” were needed.

Here are some of my attempts to describe the objects in plain language: These are abstract requests that combine a URL with the other arguments that a loader needs to perform a load. These lowest level requests include everything needed at the networking layer to do the networking, and not semantic or contextual arguments needed at a higher level.

&gt; Then, we could move the definition of Resource{Request,Response} to loader/ and we could continue regarding it the way we do today at the loader/ level.

If we free up the names in that lower level it’s fine with me to use the name ResourceRequest in the loader for something that’s a bit more than the current ResourceRequest. I do worry a bit about many different flavors of request, each with more data, so we should consider how we can keep this as simple as possible.

&gt; I think since the current ResourceRequest is supposed to be translatable to NSURLRequest and CFNetwork seems to like the URL prefix

I agree that it’s the same name. I am not in love with the URL prefix here either.

Ken Kocienda and I named these classes WebRequest and WebResponse in the early days of Safari development, but when they were moved into the Foundation framework they were given the prefix NSURL instead.

&gt; By the way, I&apos;m pretty sure that any multi-process embedding of WebKit would share Chromium&apos;s desire to add more context to ResourceRequest.

Agreed, although I don’t think the key factor here is “multi-process”.

I think that longer term we may need some additional arguments even for the code in platform/network. For example, the low level networking may need information about the security context of the top level frame for all loads done in any frame on a webpage.

One thing I don’t understand is the layering. I’d like to see this new higher level loading mechanism still be in the platform directory rather than being built on top of things such as Page and Frame. I don’t think that’s incompatible with the notion of communicating across processes. If the context for a load actually uses an object such as a Page or Frame, then we don’t have any separation.

In many cases we’ve managed to create separation within in the platform layer rather than hoisting things out of it. For example, we created the HostWindow class in the platform layer and derived the Chrome class from that. I’d like to see that approach with networking rather than giving up on separating the platform layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462827</commentid>
    <comment_count>10</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-09-06 13:47:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; One thing I don’t understand is the layering. I’d like to see this new higher level loading mechanism still be in the platform directory rather than being built on top of things such as Page and Frame. I don’t think that’s incompatible with the notion of communicating across processes. If the context for a load actually uses an object such as a Page or Frame, then we don’t have any separation.

Some time ago, I&apos;ve added a ExtraData interface to ResourceRequestBase and a member variable of that type with getters and setters. Currently, the chromium layer implements a class of this interface that keeps all the additional information it associates with a resource request.

What about implementing this interface in loader/ with a class that stores e.g. the request type, say LoaderExtraData. Whenever something in WebCore creates a ResourceRequest, it would also create a LoaderExtraData object, store the request type in that object (and in the future possibly other information), and link it to that resource request.

Since chromium will also want to store some information in this ExtraData, we could use a factory to create the LoaderExtraData object, and chromium would provide its own factory creating an chromium specific object derived form LoaderExtraData.

wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463417</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-07 10:19:22 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Some time ago, I&apos;ve added a ExtraData interface to ResourceRequestBase and a member variable of that type with getters and setters. Currently, the chromium layer implements a class of this interface that keeps all the additional information it associates with a resource request.
&gt; 
&gt; What about implementing this interface in loader/ with a class that stores e.g. the request type, say LoaderExtraData. Whenever something in WebCore creates a ResourceRequest, it would also create a LoaderExtraData object, store the request type in that object (and in the future possibly other information), and link it to that resource request.
&gt; 
&gt; Since chromium will also want to store some information in this ExtraData, we could use a factory to create the LoaderExtraData object, and chromium would provide its own factory creating an chromium specific object derived form LoaderExtraData.
&gt; 
&gt; wdyt?

I need more time to think about this, but at first blush this does not seem like the right architecture to me. Offering a “store some extra data in this object” interface doesn’t seem like the best service to make the higher level loader abstraction work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463456</commentid>
    <comment_count>12</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-09-07 11:00:06 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Some time ago, I&apos;ve added a ExtraData interface to ResourceRequestBase and a member variable of that type with getters and setters. Currently, the chromium layer implements a class of this interface that keeps all the additional information it associates with a resource request.
&gt; &gt; 
&gt; &gt; What about implementing this interface in loader/ with a class that stores e.g. the request type, say LoaderExtraData. Whenever something in WebCore creates a ResourceRequest, it would also create a LoaderExtraData object, store the request type in that object (and in the future possibly other information), and link it to that resource request.
&gt; &gt; 
&gt; &gt; Since chromium will also want to store some information in this ExtraData, we could use a factory to create the LoaderExtraData object, and chromium would provide its own factory creating an chromium specific object derived form LoaderExtraData.
&gt; &gt; 
&gt; &gt; wdyt?
&gt; 
&gt; I need more time to think about this, but at first blush this does not seem like the right architecture to me. Offering a “store some extra data in this object” interface doesn’t seem like the best service to make the higher level loader abstraction work.

You&apos;re right, the naming could be better. When I introduced ResourceRequest::ExtraData, it wasn&apos;t used anywhere in WebCore, so I gave it a rather generic name.

If we actually use it in loader, we could name the interface ResourceRequest::Context (or move it out of ResourceRequest and call it ResourceRequestContext). I can&apos;t think of a good name for the implementation of this interface in loader/ right now..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487161</commentid>
    <comment_count>13</comment_count>
      <attachid>111699</attachid>
    <who name="">jochen</who>
    <bug_when>2011-10-19 17:17:30 -0700</bug_when>
    <thetext>Created attachment 111699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487162</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-19 17:20:58 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487168</commentid>
    <comment_count>15</comment_count>
      <attachid>111699</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-19 17:31:58 -0700</bug_when>
    <thetext>Comment on attachment 111699
Patch

Attachment 111699 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10183062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487186</commentid>
    <comment_count>16</comment_count>
      <attachid>111699</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-10-19 17:53:22 -0700</bug_when>
    <thetext>Comment on attachment 111699
Patch

Attachment 111699 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10177071</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487197</commentid>
    <comment_count>17</comment_count>
      <attachid>111707</attachid>
    <who name="">jochen</who>
    <bug_when>2011-10-19 18:28:11 -0700</bug_when>
    <thetext>Created attachment 111707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487198</commentid>
    <comment_count>18</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-10-19 18:30:09 -0700</bug_when>
    <thetext>I&apos;ve implemented my proposed change. It moves the TargetType out of platform/network and thereby removes the layering violation. wdyt?

As a follow-up we can think about a more generic approach to remodel this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487205</commentid>
    <comment_count>19</comment_count>
      <attachid>111707</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-19 18:42:08 -0700</bug_when>
    <thetext>Comment on attachment 111707
Patch

Attachment 111707 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10183137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487208</commentid>
    <comment_count>20</comment_count>
      <attachid>111707</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-10-19 18:48:39 -0700</bug_when>
    <thetext>Comment on attachment 111707
Patch

Attachment 111707 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10176126</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487344</commentid>
    <comment_count>21</comment_count>
      <attachid>111707</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-10-19 23:10:27 -0700</bug_when>
    <thetext>Comment on attachment 111707
Patch

Attachment 111707 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10178311</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487619</commentid>
    <comment_count>22</comment_count>
      <attachid>111790</attachid>
    <who name="">jochen</who>
    <bug_when>2011-10-20 09:15:42 -0700</bug_when>
    <thetext>Created attachment 111790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488055</commentid>
    <comment_count>23</comment_count>
      <attachid>111790</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-20 18:04:41 -0700</bug_when>
    <thetext>Comment on attachment 111790
Patch

I’m sorry I didn’t explain myself well enough. Allowing a platform to pass through opaque data is a hack around not having an abstraction for loading that allows accomplishing the same thing. I’m sorry I haven’t been able to communicate specifics of a better design, but I am convinced this is the wrong direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488086</commentid>
    <comment_count>24</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-10-20 19:15:24 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 111790 [details])
&gt; I’m sorry I didn’t explain myself well enough. Allowing a platform to pass through opaque data is a hack around not having an abstraction for loading that allows accomplishing the same thing. I’m sorry I haven’t been able to communicate specifics of a better design, but I am convinced this is the wrong direction.

Ok, thank you for clarifying this.

Was a better design creating a wrapper, similar to FrameLoadRequest, around a ResourceRequest that is used everywhere outside of platform/network in place of a ResourceRequest?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488154</commentid>
    <comment_count>25</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-20 21:55:21 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; (From update of attachment 111790 [details] [details])
&gt; &gt; I’m sorry I didn’t explain myself well enough. Allowing a platform to pass through opaque data is a hack around not having an abstraction for loading that allows accomplishing the same thing. I’m sorry I haven’t been able to communicate specifics of a better design, but I am convinced this is the wrong direction.
&gt; 
&gt; Ok, thank you for clarifying this.
&gt; 
&gt; Was a better design creating a wrapper, similar to FrameLoadRequest, around a ResourceRequest that is used everywhere outside of platform/network in place of a ResourceRequest?

I think we should either do that or simply pass the TargetType parameter through to FrameLoaderClient::dispatchWillSendRequest since that&apos;s minimally what we need.  The ResourceRequest wrapper idea was born from trying to more cleanly pass TargetType information through to dispatchWillSendRequest.  Maybe it is not worth it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488410</commentid>
    <comment_count>26</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-10-21 08:44:52 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; (From update of attachment 111790 [details] [details] [details])
&gt; &gt; &gt; I’m sorry I didn’t explain myself well enough. Allowing a platform to pass through opaque data is a hack around not having an abstraction for loading that allows accomplishing the same thing. I’m sorry I haven’t been able to communicate specifics of a better design, but I am convinced this is the wrong direction.
&gt; &gt; 
&gt; &gt; Ok, thank you for clarifying this.
&gt; &gt; 
&gt; &gt; Was a better design creating a wrapper, similar to FrameLoadRequest, around a ResourceRequest that is used everywhere outside of platform/network in place of a ResourceRequest?
&gt; 
&gt; I think we should either do that or simply pass the TargetType parameter through to FrameLoaderClient::dispatchWillSendRequest since that&apos;s minimally what we need.  The ResourceRequest wrapper idea was born from trying to more cleanly pass TargetType information through to dispatchWillSendRequest.  Maybe it is not worth it?

What if we want to pass furthr information in the future, like the DOM element the request is being made for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574070</commentid>
    <comment_count>27</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-08 12:20:00 -0800</bug_when>
    <thetext>Any comments to https://bugs.webkit.org/show_bug.cgi?id=80519#c24 ?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103238</attachid>
            <date>2011-08-08 07:02:16 -0700</date>
            <delta_ts>2011-10-19 17:17:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65855-20110808160213.patch</filename>
            <type>text/plain</type>
            <size>8186</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1ODkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMmRjY2FhNWNjNDlmOGJh
YjFlYmMwMDE5MzI4ZjE1MzI5OTliNTBhLi5jNjAxZDY3NzhjNWQyZGEzYTViMzAyNjcyM2M1ZTA2
Y2E5MzY5NmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMDggIEpvY2hl
biBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGVtcHR5IGhl
YWRlciBmb3IgTG9hZFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1ODU1CisKKyAgICAgICAgUG9zdGluZyB0aGlzIGFzIGEgc2VwYXJhdGUg
cGF0Y2ggYmVjYXVzZSBlZGl0aW5nIHRoZSBidWlsZCBmaWxlcyBpcyBzbyBwYWluZnVsLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9Mb2FkUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxvYWRSZXF1ZXN0OjpMb2FkUmVxdWVzdCk6CisKIDIwMTEtMDgtMDggIFNo
aW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KIAogICAgICAgICBUaGUgaW5wdXRb
dHlwZT1udW1iZXJdIGVsZW1lbnQgc2hvdWxkIGJlIGFzIHdpZGUgYXMgbmVjZXNzYXJ5IHRvIHNo
b3cgdGhlIHdpZGVzdCBwb3NzaWJsZSB2YWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IGEwNjhjMDI0NDhhNzYwNTM3N2Q3ZTA4NDY0MzA3OGVlNjQ5OGJkNGQuLjc0MjEzMzkz
MDAyYjRiM2QwZmIwODQyNmVlMTAxZTQ4ZTg2M2I4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMjE0Myw2ICsyMTQzLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TGlua0xvYWRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyQ2xpZW50
LmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkUmVxdWVzdC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvbkFjdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDhkMGRmZjVjYjFmNTcxYjcyMzI4
MTJkNzQ2ZmM4YTk5NWY1YjhmMzcuLjczY2U5MWY2YzAxYzY5NTA0NmM2OWJlMDU4ODllNDljZjNm
ODkxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU2MSw2ICs1NjEsNyBAQAogICAgICAgICAgICAg
J2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvTG9hZFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAn
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCBiMmU2OWUwZWVhNWY2MWZmNDU4Y2U3MzdhYzlkNWU5ZjM2YWE1YWIwLi5jZDUxNjAy
ZDNlYWY2M2RhMGVjZTNmNDhkMDAzZjcxOGMzMjNkODAwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjYwNzgsNiArMjYwNzgsMTAgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXExv
YWRSZXF1ZXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGxvYWRlclxNYWluUmVzb3VyY2VMb2FkZXIuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiMTdkMGNmNThmNWM3Nzg4ZTc2ODRhNDg5MjYyMWMyM2NlOTliODAxLi45NmI4Yzg3MTQ5
M2VjYjg4NTE5NmQzOGVjYTgxYjE2M2JjMTU0M2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzMsNiArNTczLDcgQEAKIAkJ
MUMxNEU3NkMwQUQ4QzgxQzAwQjYxNThCIC8qIGRlbGV0ZUJ1dHRvbi50aWZmIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE0RTc2QTBBRDhDODFDMDBC
NjE1OEIgLyogZGVsZXRlQnV0dG9uLnRpZmYgKi87IH07CiAJCTFDMjY0OTdBMEQ3RTI0OEEwMEJE
MTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI2NDk3OTBEN0UyNDhBMDBCRDEwRjIgLyogRG9jdW1lbnRM
b2FkZXJNYWMuY3BwICovOyB9OwogCQkxQzI2NDk3QzBEN0UyNEVDMDBCRDEwRjIgLyogUGFnZU1h
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI2
NDk3QjBEN0UyNEVDMDBCRDEwRjIgLyogUGFnZU1hYy5jcHAgKi87IH07CisJCTFDNDVFNjYzMTNG
MDFFMDUwMDI0QkQxRiAvKiBMb2FkUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyQjE0MzAxM0YwMUQxNjAwN0ZCMDQ4IC8qIExvYWRSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MUM0QzhGMDIwQUQ4NUQ4NzAwOTQ3NUNFIC8qIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNEM4RjAwMEFEODVE
ODcwMDk0NzVDRSAvKiBEZWxldGVCdXR0b25Db250cm9sbGVyLmggKi87IH07CiAJCTFDNEM4RjY2
MEFEODY1NUQwMDk0NzVDRSAvKiBEZWxldGVCdXR0b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNEM4RjY0MEFEODY1NUQwMDk0NzVDRSAvKiBEZWxl
dGVCdXR0b24uaCAqLzsgfTsKIAkJMUM1RkFFRDEwRENGRDkwMTAwRDU4Rjc4IC8qIEpTSmF2YVNj
cmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQzVGQUVDRjBEQ0ZEOTAxMDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCAqLzsgfTsKQEAgLTcwNjMsNiArNzA2NCw3IEBACiAJCTFDMTRFNzZBMEFEOEM4MUMwMEI2
MTU4QiAvKiBkZWxldGVCdXR0b24udGlmZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnRpZmY7IHBhdGggPSBkZWxldGVCdXR0b24udGlmZjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyNjQ5NzkwRDdFMjQ4QTAwQkQxMEYyIC8q
IERvY3VtZW50TG9hZGVyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERvY3VtZW50TG9hZGVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUMyNjQ5N0IwRDdFMjRFQzAwQkQxMEYyIC8qIFBhZ2VNYWMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDMkIxNDMwMTNGMDFEMTYwMDdGQjA0OCAvKiBMb2FkUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2FkUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQzRDOEVGRjBBRDg1RDg3MDA5NDc1Q0UgLyogRGVsZXRlQnV0dG9uQ29u
dHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWxldGVC
dXR0b25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTFDNEM4RjAwMEFEODVEODcwMDk0NzVDRSAvKiBEZWxldGVC
dXR0b25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlbGV0
ZUJ1dHRvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTFDNEM4RjYzMEFEODY1NUQwMDk0NzVDRSAvKiBEZWxldGVC
dXR0b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVsZXRlQnV0
dG9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CkBAIC0xODkxMSw2ICsxODkxMyw3IEBACiAJCQkJOThDRTQzMjUxMjlFMDBCRDAwNTgy
MURDIC8qIExpbmtMb2FkZXIuY3BwICovLAogCQkJCTk4Q0U0MzI5MTI5RTAwRTUwMDU4MjFEQyAv
KiBMaW5rTG9hZGVyLmggKi8sCiAJCQkJOTg0MjY0RUYxMkQ1MjgwQTAwMEQ4OEE0IC8qIExpbmtM
b2FkZXJDbGllbnQuaCAqLywKKwkJCQkxQzJCMTQzMDEzRjAxRDE2MDA3RkIwNDggLyogTG9hZFJl
cXVlc3QuaCAqLywKIAkJCQk5M0UyMjdEQzBBRjU4OUFEMDBENDgzMjQgLyogTWFpblJlc291cmNl
TG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1NEQgLyogTWFpblJlc291
cmNlTG9hZGVyLmggKi8sCiAJCQkJOTNDQ0YwNUYwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRp
b25BY3Rpb24uY3BwICovLApAQCAtMjIzMDYsNiArMjIzMDksNyBAQAogCQkJCUIxQUQ0RTVGMTNB
MTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjU2RDM3MzIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3RUU2ODQ2OTEyRDI2RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVuTG9vcENGLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQzQ1RTY2MzEzRjAxRTA1MDAyNEJEMUYgLyogTG9hZFJlcXVl
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2RTgxRUQ3MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2Nh
bEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2MzNBNzI2MTNE
OEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg5ODc4NTY4MTIyQ0EwNjQwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZFJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzJjOWQ3
NTNmNjRlNjE1OWIyOTYxMDI5MGMwY2U2YTg3NGRmYmNkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRSZXF1ZXN0LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIExvYWRSZXF1ZXN0X2gKKyNkZWZpbmUgTG9hZFJlcXVlc3RfaAorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBMb2FkUmVxdWVzdCB7CitwdWJsaWM6CisgICAgTG9hZFJlcXVlc3Qo
KQorICAgIHsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111699</attachid>
            <date>2011-10-19 17:17:30 -0700</date>
            <delta_ts>2011-10-19 18:28:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65855-20111020021728.patch</filename>
            <type>text/plain</type>
            <size>53475</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc2NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYzNkMGIzOTY0YmIzNWI1
OGEyNGYyMjJmM2JhMmNhY2FkMjBjMzVhLi41ZTE0YjNhODc1MzExZjc4ZGViNjQ2NjQ1MzcxNjc2
OGJmY2FkMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTEtMTAtMTkgIEpvY2hl
biBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgUmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6Q29udGV4dCBjbGFzcyB0aGF0IGlzIHBhcnQgb2YgYSBSZXNvdXJjZVJl
cXVlc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTg1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBDb250ZXh0IGlzIG9wYXF1ZSB0byB0aGUgY2xhc3NlcyBpbiBwbGF0Zm9ybS9uZXR3b3JrLiBJ
dCdzCisgICAgICAgIGltcGxlbWVudGVkIGluIExvYWRlclJlcXVlc3RDb250ZXh0LCBhbmQgY2Fy
cmllcyB0aGUgdGFyZ2V0VHlwZSBmaWVsZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TG9hZGVyUmVxdWVzdENvbnRleHQ6OkxvYWRlclJlcXVlc3RDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxvYWRlclJlcXVlc3RDb250ZXh0Ojpjb3B5KToKKyAgICAgICAgKiBsb2FkZXIv
TG9hZGVyUmVxdWVzdENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlclJlcXVlc3RD
b250ZXh0Ojp+TG9hZGVyUmVxdWVzdENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVy
UmVxdWVzdENvbnRleHQ6OnRhcmdldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyUmVx
dWVzdENvbnRleHQ6OnNldFRhcmdldFR5cGUpOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJSZXF1
ZXN0Q29udGV4dEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyUmVxdWVzdENvbnRl
eHQ6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGluZ0xvYWRlcjo6bG9hZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdM
b2FkZXI6OnNlbmRQaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnJlcG9ydENv
bnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbik6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNvdXJj
ZVR5cGVUb1RhcmdldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Ojpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6YWRvcHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29weURhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Q29udGV4dDo6fkNvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdDo6UmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtl
clNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjppbXBvcnRTY3Jp
cHRzKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OldvcmtlclNjcmlwdExvYWRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZVJlc291cmNlUmVxdWVzdCk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclNjcmlwdExvYWRlcjo6c2V0VGFyZ2V0VHlwZSk6CisgICAgICAgICogeG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVh
dGVSZXF1ZXN0KToKKwogMjAxMS0xMC0xNCAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVGhyb3R0bGUgcmF0ZSBvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hl
biBwYWdlIGlzIG5vdCB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDUwZTI1
ZTMyMDkwNjFjYzlmNDhhYWQ0ZDQ1OGE3OWY5YjliYTU0MGQuLjE4YmVmMDdkMGYyNTJkNThlNGE5
ODNmN2U3NzlkMmQ5YjJiZjU0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMTEtMTAtMTkgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgQWRkIGEgQ2hyb21pdW0gc3BlY2lmaWMgY2xhc3MgZGVyaXZpbmcgZnJv
bSBMb2FkZXJSZXNvdXJjZUNvbnRleHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTg1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgY2xhc3MgYWxsb3dzIHRoZSBlbWJlZGRlciB0byBhdHRhY2gg
YWRkaXRpb25hbCBkYXRhIHRvIGEgUmVzb3VyY2VSZXF1ZXN0LgorCisgICAgICAgICogV2ViS2l0
Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGE6OmNvcHkpOgorICAgICAgICAqIHNyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpzZXRUYXJnZXRUeXBlRnJvbUxv
YWRlcik6CisgICAgICAgICogc3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBz
cmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXI6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcik6CisgICAgICAgICog
c3JjL1dlYlVSTFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0RXh0
cmFEYXRhQ29udGFpbmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0
RXh0cmFEYXRhQ29udGFpbmVyOjpjb3B5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVz
dEV4dHJhRGF0YUNvbnRhaW5lcjo6V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OnRhcmdldFR5cGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxSZXF1ZXN0OjpzZXRUYXJnZXRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMUmVxdWVzdDo6ZXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdDo6
c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKiBzcmMvV2ViVVJMUmVxdWVzdFByaXZhdGUuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcjo6fldlYlVSTFJl
cXVlc3RFeHRyYURhdGFDb250YWluZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0
RXh0cmFEYXRhQ29udGFpbmVyOjpleHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxS
ZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVyOjpzZXRFeHRyYURhdGEpOgorICAgICAgICAqIHRlc3Rz
L1dlYlVSTFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdEV4dHJhRGF0YTo6
Y29weSk6CisKIDIwMTEtMTAtMTcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBXZWIgSW5zcGVjdG9yOiBkb24ndCBjaGVjayBmb3Ig
ZGVidWdnZXIgcGF1c2UgZGV0YWlscyBpbiBpbnRlcmFjdGl2ZSB1aSB0ZXN0cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCAwM2VhMTIyNDMzNmJjZWJmNGFhMmIzMTA3M2E5M2UwNzcwZGJjNDM0Li44
MGNjYjlkYjUwYTk0YmJjYzczN2ExNzc1YWU3OGJiNzk4OWY0NjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtOTE1LDYgKzkxNSw4IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwCiAgICAgbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAogICAgIGxv
YWRlci9MaW5rTG9hZGVyLmNwcAorICAgIGxvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAK
KyAgICBsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcAogICAgIGxvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCiAgICAg
bG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggODU0ZGFiMGQ3ZTE0ZDg3NTg3Y2FhZmU0ZDliNTA4MmY3YWI4Yzg3YS4u
ZjU1MjFjYzc0YTU1M2NiOTNkZDIxMmU0NmMwYjYyMjAwNzc0OWNhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0yMTc2LDYgKzIxNzYsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2Fk
ZXJDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0LmggXAor
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDk3OTUyYzFjMjAx
ZDM3ZTJkNjRhNWI3YjdlZDVlNTVlNTMwMDFjYzkuLjljZTg1NDVhMzRmZTdhYTY5ZGVlMzhlOGNk
MGQ3OGIyMDE2ZDk1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU2NCw2ICs1NjQsNyBAQAogICAg
ICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2xvYWRl
ci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQu
aCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgnLApAQCAtMjc4Miw2ICsyNzgzLDggQEAKICAgICAg
ICAgICAgICdsb2FkZXIvTGlua0xvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9MaW5r
TG9hZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9MaW5rTG9hZGVyQ2xpZW50LmgnLAorICAg
ICAgICAgICAgJ2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAnLAorICAgICAgICAgICAg
J2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5oJywKICAgICAgICAgICAgICdsb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwppbmRleCBiMGM0YmQ4MGE4NTc3NTQxZTkwZDg1OGM3MjlhYjQyMGFmYjEyOWRmLi4x
NWJlNjBlNzA4MzBjNTIyNzdiNDk1YzA3YTFkNWFlNDE0ZjkzN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtODk3LDYgKzg5Nyw4IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwIFwKICAgICBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvTGlua0xv
YWRlci5jcHAgXAorICAgIGxvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAgXAorICAgIGxv
YWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIFwKICAgICBsb2FkZXIvTWFpblJlc291
cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKICAgICBs
b2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjNjZDM3ZGVlNTczOWZmODM5Nzdj
NWNiYjI5NjY2YjlkZTMwMzczNi4uYmY5MGQ0ZTQyOWVkYTcyYzI2MjI4NzM5NWJmNDk3ZDE4M2Qz
N2FjYyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTI2Mzc0LDYgKzI2Mzc0LDE4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxMb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxMb2Fk
ZXJSZXF1ZXN0Q29udGV4dC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1haW5S
ZXNvdXJjZUxvYWRlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNjZjc4MDcxNTgxOTYx
ZWJkMDI5NzQ4OGQ0ZTE2NGY4NzVjYzBkYzEuLjgxMTdmZmJiODYxZTZlNTQyMTM5MDk3N2ExZjJh
YmI0Y2JhNDEzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTU4MSwxMSArNTgxLDE0IEBACiAJCTFDNUZBRUU3MERDRkRBNjgw
MEQ1OEY3OCAvKiBKU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM1RkFFRTYwRENGREE2ODAwRDU4Rjc4
IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgKi87IH07CiAJCTFDNjNBMjQ4MEY3
MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNjNBMjQ2MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29w
VGltZXIuaCAqLzsgfTsKIAkJMUM2M0EyNDkwRjcxNjQ2NjAwQzA5RDVBIC8qIFJ1bkxvb3BUaW1l
ckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
NjNBMjQ3MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29wVGltZXJDRi5jcHAgKi87IH07CisJCTFD
NzQzNTAzMTQ0RUFCREUwMEM4RTNFNyAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM3NDM1MDMxNDRF
QUJERTAwQzhFM0U3IC8qIExvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAgKi87IH07CiAJCTFD
ODFCOTVBMEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzgxQjk1NjBFOTczMzA4MDAy
NjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDODFCOTVCMEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDODFCOTU3MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVy
LmNwcCAqLzsgfTsKIAkJMUM4MUI5NUMwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4MUI5
NTgwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDODFCQTA5MEU5NzM0ODMwMDI2NkUw
NyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0
Q2FsbEZyYW1lLmNwcCAqLzsgfTsKIAkJMUM4MUJBMEEwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFT
Y3JpcHRDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDODFCQTA0MEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmgg
Ki87IH07CisJCTFDOURDNDNFMTQ0RTNGNTcwMDUwRUYyQSAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzlE
QzQzQzE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwICovOyB9Owor
CQkxQzlEQzQzRjE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENvbnRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOURDNDNEMTQ0RTNG
NTcwMDUwRUYyQSAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDQTE5RTA1MERDMjU1OTUwMDY1QTk5NCAv
KiBFdmVudExvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0ExOUUwMzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovOyB9
OwogCQkxQ0ExOUUxNjBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5
OTQgLyogRXZlbnRMb29wLmggKi87IH07CiAJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBX
ZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzY0NSw2ICs3
NjQ4LDcgQEAKIAkJMUM1RkFFRDAwRENGRDkwMTAwRDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxG
cmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0phdmFTY3JpcHRDYWxs
RnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM1RkFFRTYwRENGREE2ODAw
RDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzYzQTI0NjBGNzE2NDY2MDBDMDlENUEgLyog
UnVuTG9vcFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3BU
aW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzc0MzUwMzE0NEVBQkRFMDBD
OEUzRTcgLyogTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNjNBMjQ3MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29w
VGltZXJDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29w
VGltZXJDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDODFCOTU2MEU5NzMz
MDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvckNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUM4MUI5NTcwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NjU0LDYgKzc2NTgsOCBA
QAogCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q2FsbEZyYW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDODFCQTA1MEU5NzM0ODMwMDI2NkUwNyAvKiBK
YXZhU2NyaXB0Q2FsbEZyYW1lLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBKYXZhU2NyaXB0
Q2FsbEZyYW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5MDRERjkwQkE5
RDJDODAwODFFOUQwIC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gVmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5REM0M0MxNDRFM0Y1NzAwNTBFRjJBIC8qIExvYWRlclJlcXVlc3RDb250ZXh0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRlclJlcXVlc3RDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5REM0M0QxNDRFM0Y1NzAwNTBFRjJB
IC8qIExvYWRlclJlcXVlc3RDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExvYWRlclJlcXVlc3RDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQTE5RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudExvb3BNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQTE5RTE1MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3Au
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMb29wLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3Jp
cHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0T2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg2MSw2ICsxOTg2Nyw5IEBA
CiAJCQkJOThDRTQzMjUxMjlFMDBCRDAwNTgyMURDIC8qIExpbmtMb2FkZXIuY3BwICovLAogCQkJ
CTk4Q0U0MzI5MTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggKi8sCiAJCQkJOTg0MjY0
RUYxMkQ1MjgwQTAwMEQ4OEE0IC8qIExpbmtMb2FkZXJDbGllbnQuaCAqLywKKwkJCQkxQzlEQzQz
QzE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwICovLAorCQkJCTFD
OURDNDNEMTQ0RTNGNTcwMDUwRUYyQSAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dC5oICovLAorCQkJ
CTFDNzQzNTAzMTQ0RUFCREUwMEM4RTNFNyAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3Bw
ICovLAogCQkJCTkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2FkZXIu
Y3BwICovLAogCQkJCTY1NkQzNzI5MEFEQkE1REUwMEE0NTU0RCAvKiBNYWluUmVzb3VyY2VMb2Fk
ZXIuaCAqLywKIAkJCQk5M0NDRjA1RjBBRjZDQTc2MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlv
bi5jcHAgKi8sCkBAIC0yMzU0Nyw2ICsyMzU1Niw3IEBACiAJCQkJOTg1QkI5NkUxM0E5NDA1ODAw
N0EwQjY5IC8qIExpbmtSZWxBdHRyaWJ1dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIxQUQ0RTVG
MTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNjU2RDM3MzIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxQzlEQzQzRjE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFRTY4NDY5MTJEMjZFMzgwMEU3OTQxNSAvKiBM
b2FkZXJSdW5Mb29wQ0YuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2RTgxRUQ3MEFCNUQ1RTkwMEM4
NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc2MzNBNzI2MTNEOEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjY2MjEsNiArMjY2MzEsOCBAQAogCQkJCTk4NUJCOTZEMTNBOTQwNTgw
MDdBMEI2OSAvKiBMaW5rUmVsQXR0cmlidXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIxQUQ0
RTVFMTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFjay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NTZEMzczMzBBREJBNURFMDBBNDU1NEQgLyogTG9hZGVyTlNVUkxFeHRyYXMubW0g
aW4gU291cmNlcyAqLywKKwkJCQkxQzlEQzQzRTE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVx
dWVzdENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM3NDM1MDMxNDRFQUJERTAwQzhF
M0U3IC8qIExvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
RUU2ODQ2ODEyRDI2RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVuTG9vcENGLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA2RTgxRUVDMEFCNURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGlj
c0NvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3NjMzQTcyNzEzRDhCMzNBMDA4NTAxQjYg
LyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQzOTY0MGQ5ZjFhN2U5YTc5Y2M2YzBkY2Y1NWNjMWMzNjllYjE3MGEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9hZGVyUmVxdWVzdENv
bnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitMb2FkZXJSZXF1ZXN0Q29udGV4dDo6
TG9hZGVyUmVxdWVzdENvbnRleHQoVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKQorICAgIDogbV90YXJn
ZXRUeXBlKHRhcmdldFR5cGUpCit7Cit9CisKK1Bhc3NSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0OjpD
b250ZXh0PiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y29weSgpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBMb2FkZXJSZXF1ZXN0Q29udGV4dChtX3RhcmdldFR5cGUpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRl
clJlcXVlc3RDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENv
bnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xOGQ3YjQ0N2Y5MTIxMTI3NDJlOTNlM2NhZTQxNTgwNDJkY2Yw
ZDUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVl
c3RDb250ZXh0LmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9hZGVyUmVxdWVzdENvbnRleHRf
aAorI2RlZmluZSBMb2FkZXJSZXF1ZXN0Q29udGV4dF9oCisKKyNpbmNsdWRlICJSZXNvdXJjZVJl
cXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBMb2FkZXJSZXF1ZXN0Q29u
dGV4dCA6IHB1YmxpYyBSZXNvdXJjZVJlcXVlc3Q6OkNvbnRleHQgeworcHVibGljOgorCisgICAg
Ly8gVGhlIHR5cGUgb2YgdGhpcyBSZXNvdXJjZVJlcXVlc3QsIGJhc2VkIG9uIGhvdyB0aGUgcmVz
b3VyY2Ugd2lsbCBiZSB1c2VkLgorICAgIGVudW0gVGFyZ2V0VHlwZSB7CisgICAgICAgIFRhcmdl
dElzTWFpbkZyYW1lLAorICAgICAgICBUYXJnZXRJc1N1YmZyYW1lLAorICAgICAgICBUYXJnZXRJ
c1N1YnJlc291cmNlLCAvLyBSZXNvdXJjZSBpcyBhIGdlbmVyaWMgc3VicmVzb3VyY2UuIChHZW5l
cmFsbHkgYSBzcGVjaWZpYyB0eXBlIHNob3VsZCBiZSBzcGVjaWZpZWQpCisgICAgICAgIFRhcmdl
dElzU3R5bGVTaGVldCwKKyAgICAgICAgVGFyZ2V0SXNTY3JpcHQsCisgICAgICAgIFRhcmdldElz
Rm9udFJlc291cmNlLAorICAgICAgICBUYXJnZXRJc0ltYWdlLAorICAgICAgICBUYXJnZXRJc09i
amVjdCwKKyAgICAgICAgVGFyZ2V0SXNNZWRpYSwKKyAgICAgICAgVGFyZ2V0SXNXb3JrZXIsCisg
ICAgICAgIFRhcmdldElzU2hhcmVkV29ya2VyLAorICAgICAgICBUYXJnZXRJc1ByZWZldGNoLAor
ICAgICAgICBUYXJnZXRJc1ByZXJlbmRlciwKKyAgICAgICAgVGFyZ2V0SXNGYXZpY29uLAorICAg
ICAgICBUYXJnZXRJc1hIUiwKKyAgICAgICAgVGFyZ2V0SXNDdWUsCisgICAgfTsKKworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPExvYWRlclJlcXVlc3RDb250ZXh0PiBjcmVhdGUoVGFyZ2V0VHlwZSk7
CisKKyAgICB2aXJ0dWFsIH5Mb2FkZXJSZXF1ZXN0Q29udGV4dCgpIHsgfQorICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxSZXNvdXJjZVJlcXVlc3Q6OkNvbnRleHQ+IGNvcHkoKTsKKworICAgIC8vIFdo
YXQgdGhpcyByZXF1ZXN0IGlzIGZvci4KKyAgICBUYXJnZXRUeXBlIHRhcmdldFR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3RhcmdldFR5cGU7IH0KKyAgICB2b2lkIHNldFRhcmdldFR5cGUoVGFyZ2V0
VHlwZSB0YXJnZXRUeXBlKSB7IG1fdGFyZ2V0VHlwZSA9IHRhcmdldFR5cGU7IH0KKworcHJvdGVj
dGVkOgorICAgIGV4cGxpY2l0IExvYWRlclJlcXVlc3RDb250ZXh0KFRhcmdldFR5cGUpOworCitw
cml2YXRlOgorICAgIFRhcmdldFR5cGUgbV90YXJnZXRUeXBlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTG9hZGVyUmVxdWVzdENvbnRleHRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wODNjYzdhNTAwYWNiNDJlMTVlMjRjNWNhYmI0N2NkMDM2ZWZkMmFkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCisjZXJyb3IgQ2hyb21p
dW0gc2hvdWxkIG5vdCBjb21waWxlIHRoaXMgZmlsZQorI2VuZGlmCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1Bhc3NSZWZQdHI8TG9hZGVyUmVxdWVzdENvbnRleHQ+IExvYWRlclJlcXVlc3RD
b250ZXh0OjpjcmVhdGUoVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTG9hZGVyUmVxdWVzdENvbnRleHQodGFyZ2V0VHlwZSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggMGU1
Mzc4NDdlNDE3ZGMxNmNjOTI1MWU2ZjE3OTEzMWJjYjU0NGJmYS4uMGNkN2M0NzYzOTQ4NjAyOTc3
YzhmZjRmZDMxMzE4ZWRlNzI1MDc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNp
bmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgpAQCAt
NTUsOSArNTYsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSogZnJhbWUsIGNv
bnN0IEtVUkwmIHVybCkKICAgICB9CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwp
OwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNv
dXJjZVJlcXVlc3Q6OlRhcmdldElzSW1hZ2UpOwotI2VuZGlmCisgICAgcmVxdWVzdC5zZXRDb250
ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRh
cmdldElzSW1hZ2UpKTsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgiQ2FjaGUtQ29u
dHJvbCIsICJtYXgtYWdlPTAiKTsKICAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRl
UmVmZXJyZXIocmVxdWVzdC51cmwoKSwgZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVy
KCkpKQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihmcmFtZS0+bG9hZGVyKCktPm91
dGdvaW5nUmVmZXJyZXIoKSk7CkBAIC03Myw5ICs3Miw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9h
ZEltYWdlKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsKQogdm9pZCBQaW5nTG9hZGVyOjpz
ZW5kUGluZyhGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHBpbmdVUkwsIGNvbnN0IEtVUkwmIGRl
c3RpbmF0aW9uVVJMKQogewogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHBpbmdVUkwpOwot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2UpOwotI2VuZGlmCisgICAgcmVxdWVzdC5zZXRD
b250ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6
OlRhcmdldElzU3VicmVzb3VyY2UpKTsKICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1Qi
KTsKICAgICByZXF1ZXN0LnNldEhUVFBDb250ZW50VHlwZSgidGV4dC9waW5nIik7CiAgICAgcmVx
dWVzdC5zZXRIVFRQQm9keShGb3JtRGF0YTo6Y3JlYXRlKCJQSU5HIikpOwpAQCAtMTAxLDkgKzk4
LDcgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwm
IHBpbmdVUkwsIGNvbnN0IEtVUkwmIGRlc3RpbmEKIHZvaWQgUGluZ0xvYWRlcjo6cmVwb3J0Q29u
dGVudFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgcmVw
b3J0VVJMLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiByZXBvcnQpCiB7CiAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QocmVwb3J0VVJMKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXF1
ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlKTsK
LSNlbmRpZgorICAgIHJlcXVlc3Quc2V0Q29udGV4dChMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3Jl
YXRlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1N1YnJlc291cmNlKSk7CiAgICAgcmVx
dWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIik7CiAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5
cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpOwogICAgIHJlcXVlc3Quc2V0
SFRUUEJvZHkocmVwb3J0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZDM0Y2ViNGRhNDIyMTMxNzA2ZGU3YjQw
NjJiYTlkYmY0N2M3MjVkOC4uMDg5NmUxMGYyOGNmODY3NjFiZTk2ZDAwMjc0YTM1ZmMzNTA2NjBj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJM
b2FkZXJSZXF1ZXN0Q29udGV4dC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
ZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCkBAIC00NSw0MCArNDYs
MzggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1z
dGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFy
Z2V0VHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQorc3RhdGljIExvYWRlclJlcXVlc3RD
b250ZXh0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRS
ZXNvdXJjZTo6VHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKICNlbmRpZgotICAgICAgICByZXR1cm4gUmVz
b3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N0eWxlU2hlZXQ7CisgICAgICAgIHJldHVybiBMb2FkZXJS
ZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNTdHlsZVNoZWV0OwogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlNjcmlwdDogCi0gICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU2Ny
aXB0OworICAgICAgICByZXR1cm4gTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzU2NyaXB0
OwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJu
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGb250UmVzb3VyY2U7CisgICAgICAgIHJldHVybiBM
b2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNGb250UmVzb3VyY2U7CiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0SXNJbWFnZTsKKyAgICAgICAgcmV0dXJuIExvYWRlclJlcXVlc3RDb250ZXh0OjpU
YXJnZXRJc0ltYWdlOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgotICAg
ICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOyAgICAKKyAg
ICAgICAgcmV0dXJuIExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1N1YnJlc291cmNlOyAg
ICAKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpM
aW5rUHJlZmV0Y2g6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJl
ZmV0Y2g7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNQcmVm
ZXRjaDsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgotICAgICAgICBy
ZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZXJlbmRlcjsKKyAgICAgICAgcmV0dXJu
IExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1ByZXJlbmRlcjsKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1ZXN0Q29u
dGV4dDo6VGFyZ2V0SXNTdWJyZXNvdXJjZTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDdWVSZXNvdXJjZToKLSAgICAgICAgcmV0dXJu
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNDdWU7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1
ZXN0Q29udGV4dDo6VGFyZ2V0SXNDdWU7CiAjZW5kaWYKICAgICB9CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJyZXNvdXJj
ZTsKKyAgICByZXR1cm4gTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzU3VicmVzb3VyY2U7
CiB9Ci0jZW5kaWYKIAogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3QoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2UpCiAgICAgOiBtX2NhY2hlZFJlc291cmNlTG9hZGVyKGNhY2hlZFJlc291
cmNlTG9hZGVyKQpAQCAtOTcsOSArOTYsNyBAQCBQYXNzT3duUHRyPENhY2hlZFJlc291cmNlUmVx
dWVzdD4gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpsb2FkKENhY2hlZFJlc291cmNlTG9hZAogICAg
IE93blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdFB0cihuZXcgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KGNhY2hlZFJlc291cmNlTG9hZGVyLCByZXNvdXJjZSkpOwogCiAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCA9IHJlc291cmNlLT5yZXNvdXJjZVJl
cXVlc3QoKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0
VGFyZ2V0VHlwZShjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUocmVzb3VyY2UtPnR5cGUo
KSkpOwotI2VuZGlmCisgICAgcmVzb3VyY2VSZXF1ZXN0LnNldENvbnRleHQoTG9hZGVyUmVxdWVz
dENvbnRleHQ6OmNyZWF0ZShjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUocmVzb3VyY2Ut
PnR5cGUoKSkpKTsKIAogICAgIGlmICghcmVzb3VyY2UtPmFjY2VwdCgpLmlzRW1wdHkoKSkKICAg
ICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldEhUVFBBY2NlcHQocmVzb3VyY2UtPmFjY2VwdCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1
ZXN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVx
dWVzdEJhc2UuY3BwCmluZGV4IDllNTQwNDg4ZTRkMzc4MGNhYzgyN2FjYTUxOGUwMWYxMzY4ODdh
NTAuLjM0NGI3YjEyYzVmODE0ZTVlMDVmZmI5ZmEwNDBlYTkyNjZjMjkwYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
LmNwcApAQCAtNzQsNiArNzQsNyBAQCBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4gUmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6YWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlcwogI2VuZGlmCiAg
ICAgcmVxdWVzdC0+c2V0SFRUUEJvZHkoZGF0YS0+bV9odHRwQm9keSk7CiAgICAgcmVxdWVzdC0+
c2V0QWxsb3dDb29raWVzKGRhdGEtPm1fYWxsb3dDb29raWVzKTsKKyAgICByZXF1ZXN0LT5zZXRD
b250ZXh0KGRhdGEtPm1fY29udGV4dCk7CiAgICAgcmVxdWVzdC0+ZG9QbGF0Zm9ybUFkb3B0KGRh
dGEpOwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KQEAgLTk5LDYgKzEwMCw4IEBA
IFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBSZXNvdXJjZVJlcXVl
c3RCYXNlOjpjb3B5RGF0YSgpIGNvbnN0CiAgICAgaWYgKG1faHR0cEJvZHkpCiAgICAgICAgIGRh
dGEtPm1faHR0cEJvZHkgPSBtX2h0dHBCb2R5LT5kZWVwQ29weSgpOwogICAgIGRhdGEtPm1fYWxs
b3dDb29raWVzID0gbV9hbGxvd0Nvb2tpZXM7CisgICAgaWYgKG1fY29udGV4dCkKKyAgICAgICAg
ZGF0YS0+bV9jb250ZXh0ID0gbV9jb250ZXh0LT5jb3B5KCk7CiAgICAgcmV0dXJuIGFzUmVzb3Vy
Y2VSZXF1ZXN0KCkuZG9QbGF0Zm9ybUNvcHlEYXRhKGRhdGEucmVsZWFzZSgpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuaAppbmRleCA2YjllODgxMjkyZmY2YTlhYzViYjczNGMzOGVlZjNiNmE5NmE3MmIyLi4yZDYx
OTY0NjkzMjU1YWE5ZWVhNmY5YTEwMDNlMjZkNGNlZDI1ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtNTEs
NiArNTEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlUmVxdWVz
dEJhc2UgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Cisg
ICAgICAgIGNsYXNzIENvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxDb250ZXh0PiB7CisgICAg
ICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHZpcnR1YWwgfkNvbnRleHQoKSB7IH0KKyAgICAgICAg
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDb250ZXh0PiBjb3B5KCkgPSAwOworICAgICAgICB9Owor
CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4gYWRvcHQoUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KTsKIAogICAgICAgICAvLyBHZXRz
IGEgY29weSBvZiB0aGUgZGF0YSBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBhbm90aGVyIHRocmVh
ZC4KQEAgLTEzMyw2ICsxMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IHJlcG9ydFJhd0hlYWRlcnMoKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydFJhd0hlYWRlcnM7IH0K
ICAgICAgICAgdm9pZCBzZXRSZXBvcnRSYXdIZWFkZXJzKGJvb2wgcmVwb3J0UmF3SGVhZGVycykg
eyBtX3JlcG9ydFJhd0hlYWRlcnMgPSByZXBvcnRSYXdIZWFkZXJzOyB9CiAKKyAgICAgICAgLy8g
SGlnaGVyLWxldmVsIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdC4KKyAgICAg
ICAgQ29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQor
ICAgICAgICB2b2lkIHNldENvbnRleHQoUGFzc1JlZlB0cjxDb250ZXh0PiBjb250ZXh0KSB7IG1f
Y29udGV4dCA9IGNvbnRleHQ7IH0KKworCiAgICAgICAgIHN0YXRpYyBkb3VibGUgZGVmYXVsdFRp
bWVvdXRJbnRlcnZhbCgpOyAvLyBNYXkgcmV0dXJuIDAgd2hlbiB1c2luZyBwbGF0Zm9ybSBkZWZh
dWx0LgogICAgICAgICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0VGltZW91dEludGVydmFsKGRvdWJs
ZSk7CiAKQEAgLTE5NSw2ICsyMDYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0
ZToKICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhc1Jlc291cmNlUmVxdWVzdCgpIGNv
bnN0OwogCisgICAgICAgIFJlZlB0cjxDb250ZXh0PiBtX2NvbnRleHQ7CisKICAgICAgICAgc3Rh
dGljIGRvdWJsZSBzX2RlZmF1bHRUaW1lb3V0SW50ZXJ2YWw7CiAgICAgfTsKIApAQCAtMjIxLDYg
KzIzNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRhPiBt
X2h0dHBCb2R5OwogICAgICAgICBib29sIG1fYWxsb3dDb29raWVzOwogICAgICAgICBSZXNvdXJj
ZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5OworICAgICAgICBSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0
QmFzZTo6Q29udGV4dD4gbV9jb250ZXh0OwogICAgIH07CiAgICAgCiAgICAgdW5zaWduZWQgaW5p
dGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJl
cXVlc3QuY3BwCmluZGV4IDI1NDFkZTc2OTc4NjAzM2Q0ODJlN2Y2MzQ2OWMwYTBmNWVjMTFmOTAu
LjUxOWM2M2Y0YzM3MDUzNzI3ZDMzNzQ2NWU3ZjNhOTBiNjNlMjIxNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNl
UmVxdWVzdC5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGE+IFJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKFAKICAg
ICBkYXRhLT5tX2FwcENhY2hlSG9zdElEID0gbV9hcHBDYWNoZUhvc3RJRDsKICAgICBkYXRhLT5t
X2hhc1VzZXJHZXN0dXJlID0gbV9oYXNVc2VyR2VzdHVyZTsKICAgICBkYXRhLT5tX2Rvd25sb2Fk
VG9GaWxlID0gbV9kb3dubG9hZFRvRmlsZTsKLSAgICBkYXRhLT5tX3RhcmdldFR5cGUgPSBtX3Rh
cmdldFR5cGU7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKQEAgLTU1LDcgKzU0LDYgQEAgdm9pZCBS
ZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4KICAgICBtX2FwcENhY2hlSG9zdElEID0gZGF0YS0+bV9hcHBDYWNo
ZUhvc3RJRDsKICAgICBtX2hhc1VzZXJHZXN0dXJlID0gZGF0YS0+bV9oYXNVc2VyR2VzdHVyZTsK
ICAgICBtX2Rvd25sb2FkVG9GaWxlID0gZGF0YS0+bV9kb3dubG9hZFRvRmlsZTsKLSAgICBtX3Rh
cmdldFR5cGUgPSBkYXRhLT5tX3RhcmdldFR5cGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0v
UmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9t
aXVtL1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IGMwMWVkZDMwNGIwZTZiMGUwYzkyZDA4ZjE4ZTU2
YWM0ZDAxMzM3YTIuLmFjYzI4NDQ5NjNhYjAwOWQ1NjQxNzVjYjI3ZmFhZjBmOTAyMDM5YzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMzksMzAgKzM5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0IDogcHVibGljIFJlc291cmNlUmVxdWVzdEJh
c2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgLy8gVGhlIHR5cGUgb2YgdGhpcyBSZXNvdXJjZVJl
cXVlc3QsIGJhc2VkIG9uIGhvdyB0aGUgcmVzb3VyY2Ugd2lsbCBiZSB1c2VkLgotICAgICAgICBl
bnVtIFRhcmdldFR5cGUgewotICAgICAgICAgICAgVGFyZ2V0SXNNYWluRnJhbWUsCi0gICAgICAg
ICAgICBUYXJnZXRJc1N1YmZyYW1lLAotICAgICAgICAgICAgVGFyZ2V0SXNTdWJyZXNvdXJjZSwg
Ly8gUmVzb3VyY2UgaXMgYSBnZW5lcmljIHN1YnJlc291cmNlLiAoR2VuZXJhbGx5IGEgc3BlY2lm
aWMgdHlwZSBzaG91bGQgYmUgc3BlY2lmaWVkKQotICAgICAgICAgICAgVGFyZ2V0SXNTdHlsZVNo
ZWV0LAotICAgICAgICAgICAgVGFyZ2V0SXNTY3JpcHQsCi0gICAgICAgICAgICBUYXJnZXRJc0Zv
bnRSZXNvdXJjZSwKLSAgICAgICAgICAgIFRhcmdldElzSW1hZ2UsCi0gICAgICAgICAgICBUYXJn
ZXRJc09iamVjdCwKLSAgICAgICAgICAgIFRhcmdldElzTWVkaWEsCi0gICAgICAgICAgICBUYXJn
ZXRJc1dvcmtlciwKLSAgICAgICAgICAgIFRhcmdldElzU2hhcmVkV29ya2VyLAotICAgICAgICAg
ICAgVGFyZ2V0SXNQcmVmZXRjaCwKLSAgICAgICAgICAgIFRhcmdldElzUHJlcmVuZGVyLAotICAg
ICAgICAgICAgVGFyZ2V0SXNGYXZpY29uLAotICAgICAgICAgICAgVGFyZ2V0SXNYSFIsCi0gICAg
ICAgICAgICBUYXJnZXRJc0N1ZSwKLSAgICAgICAgfTsKLQotICAgICAgICBjbGFzcyBFeHRyYURh
dGEgOiBwdWJsaWMgUmVmQ291bnRlZDxFeHRyYURhdGE+IHsKLSAgICAgICAgcHVibGljOgotICAg
ICAgICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkgeyB9Ci0gICAgICAgIH07CiAKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKSAKICAgICAgICAgICAgIDogUmVzb3Vy
Y2VSZXF1ZXN0QmFzZShLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgVXNlUHJvdG9jb2xDYWNo
ZVBvbGljeSkKQEAgLTcxLDcgKzQ3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgLCBtX2FwcENhY2hlSG9zdElEKDApCiAgICAgICAgICAgICAsIG1faGFzVXNlckdlc3R1cmUo
ZmFsc2UpCiAgICAgICAgICAgICAsIG1fZG93bmxvYWRUb0ZpbGUoZmFsc2UpCi0gICAgICAgICAg
ICAsIG1fdGFyZ2V0VHlwZShUYXJnZXRJc1N1YnJlc291cmNlKQogICAgICAgICB7CiAgICAgICAg
IH0KIApAQCAtODIsNyArNTcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAs
IG1fYXBwQ2FjaGVIb3N0SUQoMCkKICAgICAgICAgICAgICwgbV9oYXNVc2VyR2VzdHVyZShmYWxz
ZSkKICAgICAgICAgICAgICwgbV9kb3dubG9hZFRvRmlsZShmYWxzZSkKLSAgICAgICAgICAgICwg
bV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAgfQog
CkBAIC05Myw3ICs2Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9h
cHBDYWNoZUhvc3RJRCgwKQogICAgICAgICAgICAgLCBtX2hhc1VzZXJHZXN0dXJlKGZhbHNlKQog
ICAgICAgICAgICAgLCBtX2Rvd25sb2FkVG9GaWxlKGZhbHNlKQotICAgICAgICAgICAgLCBtX3Rh
cmdldFR5cGUoVGFyZ2V0SXNTdWJyZXNvdXJjZSkKICAgICAgICAgewogICAgICAgICAgICAgc2V0
SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKICAgICAgICAgfQpAQCAtMTA1LDcgKzc4LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2FwcENhY2hlSG9zdElEKDApCiAgICAg
ICAgICAgICAsIG1faGFzVXNlckdlc3R1cmUoZmFsc2UpCiAgICAgICAgICAgICAsIG1fZG93bmxv
YWRUb0ZpbGUoZmFsc2UpCi0gICAgICAgICAgICAsIG1fdGFyZ2V0VHlwZShUYXJnZXRJc1N1YnJl
c291cmNlKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtMTMyLDE0ICsxMDQsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZG93bmxvYWRUb0ZpbGUoKSBjb25zdCB7IHJl
dHVybiBtX2Rvd25sb2FkVG9GaWxlOyB9CiAgICAgICAgIHZvaWQgc2V0RG93bmxvYWRUb0ZpbGUo
Ym9vbCBkb3dubG9hZFRvRmlsZSkgeyBtX2Rvd25sb2FkVG9GaWxlID0gZG93bmxvYWRUb0ZpbGU7
IH0KIAotICAgICAgICAvLyBFeHRyYSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Qu
Ci0gICAgICAgIEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRyYURh
dGEuZ2V0KCk7IH0KLSAgICAgICAgdm9pZCBzZXRFeHRyYURhdGEoUGFzc1JlZlB0cjxFeHRyYURh
dGE+IGV4dHJhRGF0YSkgeyBtX2V4dHJhRGF0YSA9IGV4dHJhRGF0YTsgfQotCi0gICAgICAgIC8v
IFdoYXQgdGhpcyByZXF1ZXN0IGlzIGZvci4KLSAgICAgICAgVGFyZ2V0VHlwZSB0YXJnZXRUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRUeXBlOyB9Ci0gICAgICAgIHZvaWQgc2V0VGFyZ2V0
VHlwZShUYXJnZXRUeXBlIHR5cGUpIHsgbV90YXJnZXRUeXBlID0gdHlwZTsgfQotCiAgICAgcHJp
dmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVxdWVzdEJhc2U7CiAKQEAgLTE1
NCw4ICsxMTgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtX2FwcENhY2hl
SG9zdElEOwogICAgICAgICBib29sIG1faGFzVXNlckdlc3R1cmU7CiAgICAgICAgIGJvb2wgbV9k
b3dubG9hZFRvRmlsZTsKLSAgICAgICAgUmVmUHRyPEV4dHJhRGF0YT4gbV9leHRyYURhdGE7Ci0g
ICAgICAgIFRhcmdldFR5cGUgbV90YXJnZXRUeXBlOwogICAgIH07CiAKICAgICBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YUJhc2UgewpAQCAtMTY0LDcgKzEyNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgaW50IG1fYXBwQ2FjaGVIb3N0SUQ7CiAgICAgICAgIGJvb2wgbV9oYXNVc2VyR2Vz
dHVyZTsKICAgICAgICAgYm9vbCBtX2Rvd25sb2FkVG9GaWxlOwotICAgICAgICBSZXNvdXJjZVJl
cXVlc3Q6OlRhcmdldFR5cGUgbV90YXJnZXRUeXBlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hh
cmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNDdiNTQyOGFhMTI0MDE2ZThlOGU0ZGU5MmU0
ZTg3MjA4ZWEzYWU2Ni4uYThjMzRkZWEyOGI2M2MzYzE5ZTA4NTUxNjM1MTBjMDViOTMyY2MzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKQEAgLTI5Nyw5ICsyOTcsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6bG9hZChjb25zdCBLVVJMJiB1cmwpCiAKICAgICAvLyBNYXJrIHRoaXMgb2Jq
ZWN0IGFzIGFjdGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb2FkLgogICAgIG1fc2NyaXB0
TG9hZGVyID0gV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSAgICBtX3NjcmlwdExvYWRlci0+c2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzU2hhcmVkV29ya2VyKTsKLSNlbmRpZgorICAgIG1fc2NyaXB0TG9hZGVyLT5zZXRU
YXJnZXRUeXBlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1NoYXJlZFdvcmtlcik7CiAg
ICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShtX3dvcmtlci0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCB1cmwsIERlbnlDcm9zc09yaWdpblJlcXVlc3RzLCB0aGlzKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDlkNDMwOTBmOGI5YWU3ZDczNzQwM2Ex
ZDdjMzUyYmI0ZGRmMjVkZjguLmRhYzJlODU0MzhlMzI3NTgyNmQ4YjQyNzNlYWM5ZjgwMTllY2Ji
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTY4LDkgKzY4LDcgQEAgUGFzc1Jl
ZlB0cjxXb3JrZXI+IFdvcmtlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYKICAgICB3b3JrZXItPnNldFBlbmRpbmdBY3Rpdml0eSh3b3JrZXIu
Z2V0KCkpOwogCiAgICAgd29ya2VyLT5tX3NjcmlwdExvYWRlciA9IFdvcmtlclNjcmlwdExvYWRl
cjo6Y3JlYXRlKCk7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgd29ya2VyLT5tX3Njcmlw
dExvYWRlci0+c2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzV29ya2VyKTsK
LSNlbmRpZgorICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPnNldFRhcmdldFR5cGUoTG9hZGVy
UmVxdWVzdENvbnRleHQ6OlRhcmdldElzV29ya2VyKTsKICAgICB3b3JrZXItPm1fc2NyaXB0TG9h
ZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgc2NyaXB0VVJMLCBEZW55Q3Jvc3NPcmln
aW5SZXF1ZXN0cywgd29ya2VyLmdldCgpKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV29ya2VyKGNvbnRleHQsIHdvcmtlci0+YXNJRCgpLCBzY3JpcHRVUkwuc3Ry
aW5nKCksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmlu
ZGV4IDAzZDQ4OGMzM2JmYWU4MDBmOTA0ODgwOGZhYWFiMjNlMzZhM2VhMDYuLmIxZTFhYTQwMzYy
MmQyMGE0NjNmNDI4M2VmMzg3ZmY1NTMxOGVjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmNwcApAQCAtMjY1LDkgKzI2NSw3IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6
aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAKICAgICBmb3IgKFZlY3RvcjxLVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjb21wbGV0
ZWRVUkxzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBSZWZQdHI8V29ya2Vy
U2NyaXB0TG9hZGVyPiBzY3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKSk7
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAgIHNjcmlwdExvYWRlci0+c2V0VGFyZ2V0
VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU2NyaXB0KTsKLSNlbmRpZgorICAgICAgICBz
Y3JpcHRMb2FkZXItPnNldFRhcmdldFR5cGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElz
U2NyaXB0KTsKICAgICAgICAgc2NyaXB0TG9hZGVyLT5sb2FkU3luY2hyb25vdXNseShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksICppdCwgQWxsb3dDcm9zc09yaWdpblJlcXVlc3RzKTsKIAogICAg
ICAgICAvLyBJZiB0aGUgZmV0Y2hpbmcgYXR0ZW1wdCBmYWlsZWQsIHRocm93IGEgTkVUV09SS19F
UlIgZXhjZXB0aW9uIGFuZCBhYm9ydCBhbGwgdGhlc2Ugc3RlcHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggOTU0NzZmODc4NTA0ZDhkNGU1
ODJhYTU1ODg0ZmE2YmRlZmIzMTAwYy4uMTEzOTI0ODFiN2U5N2Y3ZWNkOWU2ZDJhY2NiZjU1MjQ0
OTU4ZGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
LmNwcApAQCAtNTEsOSArNTEsNyBAQCBXb3JrZXJTY3JpcHRMb2FkZXI6OldvcmtlclNjcmlwdExv
YWRlcigpCiAgICAgLCBtX2ZhaWxlZChmYWxzZSkKICAgICAsIG1faWRlbnRpZmllcigwKQogICAg
ICwgbV9maW5pc2hpbmcoZmFsc2UpCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgLCBtX3Rh
cmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1dvcmtlcikKLSNlbmRpZgorICAgICwg
bV90YXJnZXRUeXBlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1dvcmtlcikKIHsKIH0K
IApAQCAtMTA5LDkgKzEwNyw3IEBAIFBhc3NPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiBXb3JrZXJT
Y3JpcHRMb2FkZXI6OmNyZWF0ZVJlc291cmNlUmVxdWVzdCgpCiB7CiAgICAgT3duUHRyPFJlc291
cmNlUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0UHRyKG5ldyBSZXNvdXJjZVJlcXVlc3QobV91cmwp
KTsKICAgICByZXF1ZXN0LT5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSAgICByZXF1ZXN0LT5zZXRUYXJnZXRUeXBlKG1fdGFyZ2V0VHlwZSk7Ci0jZW5kaWYK
KyAgICByZXF1ZXN0LT5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUobV90
YXJnZXRUeXBlKSk7CiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggZDZlN2RlMzdi
YmJmNmNkMThmMDNhYWFhMTllZTk0YWRiZjEyN2RiNC4uNzFmMjRhOWQ5OTBmNjZmZTQ4ZmRmYTdi
NWQyZmViMzAwYTQ4MmRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKFdPUktFUlMpCiAKICNpbmNs
dWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTG9hZGVyUmVxdWVzdENvbnRleHQuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgpAQCAtNzIsOSArNzMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCk7CiAK
LSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgdm9pZCBzZXRUYXJnZXRUeXBlKFJlc291
cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSB0YXJnZXRUeXBlKSB7IG1fdGFyZ2V0VHlwZSA9IHRhcmdl
dFR5cGU7IH0KLSNlbmRpZgorICAgICAgICB2b2lkIHNldFRhcmdldFR5cGUoTG9hZGVyUmVxdWVz
dENvbnRleHQ6OlRhcmdldFR5cGUgdGFyZ2V0VHlwZSkgeyBtX3RhcmdldFR5cGUgPSB0YXJnZXRU
eXBlOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgV1RGOjpSZWZDb3Vu
dGVkPFdvcmtlclNjcmlwdExvYWRlcj47CkBAIC05NSw5ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBtX2ZhaWxlZDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2lk
ZW50aWZpZXI7CiAgICAgICAgIGJvb2wgbV9maW5pc2hpbmc7Ci0jaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0gICAgICAgIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSBtX3RhcmdldFR5cGU7Ci0j
ZW5kaWYKKyAgICAgICAgTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUgbV90YXJnZXRU
eXBlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCmluZGV4IGUxYTc1MmNmNTYzYjY2MjZmNzI5MjlhZmU2MWU0OTU2Mjdi
MzdlYzEuLjRiNTFjZThkYjc2YWZmNTQ0NzM0MGZmMGJlY2Y3MDg5OWFmODYwZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUg
IkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSFRUUFZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4
dC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5o
IgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpAQCAtNjMwLDkgKzYzMSw3IEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybCk7CiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9k
KG1fbWV0aG9kKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXF1ZXN0LnNldFRhcmdl
dFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1hIUik7Ci0jZW5kaWYKKyAgICByZXF1ZXN0
LnNldENvbnRleHQoTG9hZGVyUmVxdWVzdENvbnRleHQ6OmNyZWF0ZShMb2FkZXJSZXF1ZXN0Q29u
dGV4dDo6VGFyZ2V0SXNYSFIpKTsKIAogICAgIGlmIChtX3JlcXVlc3RFbnRpdHlCb2R5KSB7CiAg
ICAgICAgIEFTU0VSVChtX21ldGhvZCAhPSAiR0VUIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKaW5kZXggM2Y0NmEyNGFjMzg3NTEzMDgwZmM3NmY1NzhiY2QwNjc5ZGQzMDczYS4uMDYyMzQ3
MDQ2ODcwZmZiY2Y3MTZlMjhmN2M0ZmY3ZWIxYjI4MGI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cApAQCAtNDEwLDYgKzQxMCw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9tYWMvV2Vi
SW5wdXRFdmVudEZhY3RvcnkubW0nLAogICAgICAgICAgICAgICAgICdzcmMvbWFjL1dlYlNjcmVl
bkluZm9GYWN0b3J5Lm1tJywKICAgICAgICAgICAgICAgICAnc3JjL21hYy9XZWJTdWJzdHJpbmdV
dGlsLm1tJywKKyAgICAgICAgICAgICAgICAnc3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL01lZGlhUGxheWVyUHJpdmF0ZUNocm9taXVtLmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKaW5kZXggODgyMTAwMDY0ODUzNzg3
ZWVkYTVkMDE1MDQ5NTE2OTlkNDBjZjA0Mi4uYTZmMTNiOTQ4ZjhjYjU3MTZlMWY2YmQ3NWU0YmU2
MDEzNmZkYWI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
VVJMUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJl
cXVlc3QuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgY2xhc3MgRXh0cmFEYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsgfQorICAgICAgICB2
aXJ0dWFsIEV4dHJhRGF0YSogY29weSgpIHsgcmV0dXJuIDA7IH0KICAgICB9OwogCiAgICAgfldl
YlVSTFJlcXVlc3QoKSB7IHJlc2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IDU3YmY1NmYzYTkyZDc3NGRi
NTBiZmE5MjU1MWEzYTk3ZDNlNmZjNGIuLjNlMWRlMjQzODM2ZTU1YzRkYWM5MTk0ODdhMjgwNjg3
MjFkZDEzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkhUTUxBcHBs
ZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiICAvLyBuZWVkZWQgYnkg
Rm9ybVN0YXRlLmgKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1
ZXN0Q29udGV4dC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJN
b3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMzMzLDEyICszMzQsMTcgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0
KAogc3RhdGljIHZvaWQgc2V0VGFyZ2V0VHlwZUZyb21Mb2FkZXIoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBEb2N1bWVudExvYWRlciogbG9hZGVyKQogewogICAgIGlmIChsb2FkZXIgPT0gbG9h
ZGVyLT5mcmFtZUxvYWRlcigpLT5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIHR5cGU7CisgICAgICAgIExvYWRlclJlcXVl
c3RDb250ZXh0OjpUYXJnZXRUeXBlIHR5cGU7CiAgICAgICAgIGlmIChsb2FkZXItPmZyYW1lTG9h
ZGVyKCktPmlzTG9hZGluZ01haW5GcmFtZSgpKQotICAgICAgICAgICAgdHlwZSA9IFJlc291cmNl
UmVxdWVzdDo6VGFyZ2V0SXNNYWluRnJhbWU7CisgICAgICAgICAgICB0eXBlID0gTG9hZGVyUmVx
dWVzdENvbnRleHQ6OlRhcmdldElzTWFpbkZyYW1lOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0eXBlID0gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YmZyYW1lOwotICAgICAgICByZXF1
ZXN0LnNldFRhcmdldFR5cGUodHlwZSk7CisgICAgICAgICAgICB0eXBlID0gTG9hZGVyUmVxdWVz
dENvbnRleHQ6OlRhcmdldElzU3ViZnJhbWU7CisKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0OjpD
b250ZXh0KiBjb250ZXh0ID0gcmVxdWVzdC5jb250ZXh0KCk7CisgICAgICAgIGlmIChjb250ZXh0
KQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRleHQqPihjb250ZXh0
KS0+c2V0VGFyZ2V0VHlwZSh0eXBlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVxdWVz
dC5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUodHlwZSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9hZGVyUmVxdWVz
dENvbnRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvYWRlclJlcXVl
c3RDb250ZXh0SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE1MWRmM2JmODhhMzQ3ZTY5ZjY1ZmY5Zjc0
NGZlYmU0NDcwYWRlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgorCisjaW5jbHVk
ZSAiV2ViVVJMUmVxdWVzdFByaXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNz
UmVmUHRyPExvYWRlclJlcXVlc3RDb250ZXh0PiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRl
KFRhcmdldFR5cGUgdGFyZ2V0VHlwZSkKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJVUkxSZXF1
ZXN0RXh0cmFEYXRhQ29udGFpbmVyOjpjcmVhdGUodGFyZ2V0VHlwZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1No
YXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hh
cmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNTVlN2I2YTg2MTRlZmNkMDJiN2RiMWNkOWZj
YmQ1ZjA3MDMzYTgzMC4uOTM0NzEzYWU1ODRmNzg3NzhhZWVjMDg5YjJkYzg4ODBiOWEzY2JiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVwb3Np
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fbG9hZGlu
ZyhmYWxzZSkKICAgICAgICAgLCBtX3Jlc3BvbnNlQXBwQ2FjaGVJRCgwKQogICAgIHsKLSAgICAg
ICAgbV9zY3JpcHRMb2FkZXItPnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1NoYXJlZFdvcmtlcik7CisgICAgICAgIG1fc2NyaXB0TG9hZGVyLT5zZXRUYXJnZXRUeXBlKExv
YWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1NoYXJlZFdvcmtlcik7CiAgICAgfQogCiAgICAg
flNoYXJlZFdvcmtlclNjcmlwdExvYWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVVJMUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJVUkxSZXF1ZXN0LmNwcAppbmRleCA2MDVmYjhjNDI1MjU3NGJmZmYxZjE0ZWU2YThkYjNj
NjdlYjdjODE3Li5mOWFlY2E0YjA5Mzk2ODExMTVkMGVhM2ZiNGJjYzczNzQ1MTJjYzU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcApAQCAtNDIsMjYg
KzQyLDIzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotbmFtZXNwYWNlIHsKLQotY2xhc3MgRXh0cmFEYXRhQ29udGFpbmVyIDogcHVibGljIFJlc291
cmNlUmVxdWVzdDo6RXh0cmFEYXRhIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxF
eHRyYURhdGFDb250YWluZXI+IGNyZWF0ZShXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJh
RGF0YSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEV4dHJhRGF0YUNvbnRhaW5lcihleHRyYURhdGEp
KTsgfQotCi0gICAgdmlydHVhbCB+RXh0cmFEYXRhQ29udGFpbmVyKCkgeyB9Ci0KLSAgICBXZWJV
UkxSZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFE
YXRhLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXh0cmFEYXRhQ29udGFpbmVy
KFdlYlVSTFJlcXVlc3Q6OkV4dHJhRGF0YSogZXh0cmFEYXRhKQotICAgICAgICA6IG1fZXh0cmFE
YXRhKGFkb3B0UHRyKGV4dHJhRGF0YSkpCi0gICAgewotICAgIH0KK1Bhc3NSZWZQdHI8V2ViVVJM
UmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcj4gV2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5l
cjo6Y3JlYXRlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRUeXBlIHRhcmdldFR5cGUpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJVUkxSZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVy
KHRhcmdldFR5cGUpKTsKK30KIAotICAgIE93blB0cjxXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGE+
IG1fZXh0cmFEYXRhOwotfTsKK1Bhc3NSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0PiBX
ZWJVUkxSZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVyOjpjb3B5KCkKK3sKKyAgICBSZWZQdHI8V2Vi
VVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcj4gY29udGFpbmVyID0gV2ViVVJMUmVxdWVzdEV4
dHJhRGF0YUNvbnRhaW5lcjo6Y3JlYXRlKHRhcmdldFR5cGUoKSk7CisgICAgaWYgKG1fZXh0cmFE
YXRhLmdldCgpKQorICAgICAgICBjb250YWluZXItPnNldEV4dHJhRGF0YShtX2V4dHJhRGF0YS0+
Y29weSgpKTsKKyAgICByZXR1cm4gY29udGFpbmVyLnJlbGVhc2UoKTsKK30KIAotfSAvLyBuYW1l
c3BhY2UKK1dlYlVSTFJlcXVlc3RFeHRyYURhdGFDb250YWluZXI6OldlYlVSTFJlcXVlc3RFeHRy
YURhdGFDb250YWluZXIoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUgdGFyZ2V0VHlw
ZSkKKyAgICA6IExvYWRlclJlcXVlc3RDb250ZXh0KHRhcmdldFR5cGUpCit7Cit9CiAKIC8vIFRo
ZSBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbiBvZiBXZWJVUkxSZXF1ZXN0UHJpdmF0ZSwgd2hpY2gg
bWFpbnRhaW5zCiAvLyBvd25lcnNoaXAgb2YgYSBSZXNvdXJjZVJlcXVlc3QgaW5zdGFuY2UuCkBA
IC0yNDEsNyArMjM4LDEwIEBAIHZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0UmVwb3J0TG9hZFRpbWlu
Zyhib29sIHJlcG9ydExvYWRUaW1pbmcpCiAKIFdlYlVSTFJlcXVlc3Q6OlRhcmdldFR5cGUgV2Vi
VVJMUmVxdWVzdDo6dGFyZ2V0VHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PFRhcmdldFR5cGU+KG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnRhcmdldFR5cGUoKSk7
CisgICAgUmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0KiBjb250ZXh0ID0gbV9wcml2YXRlLT5tX3Jl
c291cmNlUmVxdWVzdC0+Y29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0
dXJuIFRhcmdldElzU3VicmVzb3VyY2U7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRhcmdldFR5
cGU+KHN0YXRpY19jYXN0PExvYWRlclJlcXVlc3RDb250ZXh0Kj4oY29udGV4dCktPnRhcmdldFR5
cGUoKSk7CiB9CiAKIGJvb2wgV2ViVVJMUmVxdWVzdDo6aGFzVXNlckdlc3R1cmUoKSBjb25zdApA
QCAtMjU2LDggKzI1NiwxMiBAQCB2b2lkIFdlYlVSTFJlcXVlc3Q6OnNldEhhc1VzZXJHZXN0dXJl
KGJvb2wgaGFzVXNlckdlc3R1cmUpCiAKIHZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0VGFyZ2V0VHlw
ZShUYXJnZXRUeXBlIHRhcmdldFR5cGUpCiB7Ci0gICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVx
dWVzdC0+c2V0VGFyZ2V0VHlwZSgKLSAgICAgICAgc3RhdGljX2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0
OjpUYXJnZXRUeXBlPih0YXJnZXRUeXBlKSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0
KiBjb250ZXh0ID0gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+Y29udGV4dCgpOworICAg
IGlmIChjb250ZXh0KSB7CisgICAgICAgIHN0YXRpY19jYXN0PExvYWRlclJlcXVlc3RDb250ZXh0
Kj4oY29udGV4dCktPnNldFRhcmdldFR5cGUoc3RhdGljX2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRl
eHQ6OlRhcmdldFR5cGU+KHRhcmdldFR5cGUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RD
b250ZXh0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5
cGU+KHRhcmdldFR5cGUpKSk7CiB9CiAKIGludCBXZWJVUkxSZXF1ZXN0OjpyZXF1ZXN0b3JJRCgp
IGNvbnN0CkBAIC0zMDIsMTUgKzMwNiwyMCBAQCB2b2lkIFdlYlVSTFJlcXVlc3Q6OnNldERvd25s
b2FkVG9GaWxlKGJvb2wgZG93bmxvYWRUb0ZpbGUpCiAKIFdlYlVSTFJlcXVlc3Q6OkV4dHJhRGF0
YSogV2ViVVJMUmVxdWVzdDo6ZXh0cmFEYXRhKCkgY29uc3QKIHsKLSAgICBSZWZQdHI8UmVzb3Vy
Y2VSZXF1ZXN0OjpFeHRyYURhdGE+IGRhdGEgPSBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0
LT5leHRyYURhdGEoKTsKLSAgICBpZiAoIWRhdGEuZ2V0KCkpCisgICAgUmVzb3VyY2VSZXF1ZXN0
OjpDb250ZXh0KiBjb250ZXh0ID0gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+Y29udGV4
dCgpOworICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PEV4dHJhRGF0YUNvbnRhaW5lcio+KGRhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcio+
KGNvbnRleHQpLT5leHRyYURhdGEoKTsKIH0KIAogdm9pZCBXZWJVUkxSZXF1ZXN0OjpzZXRFeHRy
YURhdGEoV2ViVVJMUmVxdWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEpCiB7Ci0gICAgbV9wcml2
YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+c2V0RXh0cmFEYXRhKEV4dHJhRGF0YUNvbnRhaW5lcjo6
Y3JlYXRlKGV4dHJhRGF0YSkpOworICAgIFJlc291cmNlUmVxdWVzdDo6Q29udGV4dCogY29udGV4
dCA9IG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPmNvbnRleHQoKTsKKyAgICBpZiAoIWNv
bnRleHQpIHsKKyAgICAgICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+c2V0Q29udGV4
dChMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJn
ZXRJc1N1YnJlc291cmNlKSk7CisgICAgICAgIGNvbnRleHQgPSBtX3ByaXZhdGUtPm1fcmVzb3Vy
Y2VSZXF1ZXN0LT5jb250ZXh0KCk7CisgICAgfQorICAgIHN0YXRpY19jYXN0PFdlYlVSTFJlcXVl
c3RFeHRyYURhdGFDb250YWluZXIqPihjb250ZXh0KS0+c2V0RXh0cmFEYXRhKGV4dHJhRGF0YSk7
CiB9CiAKIFJlc291cmNlUmVxdWVzdCYgV2ViVVJMUmVxdWVzdDo6dG9NdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJl
cXVlc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0
UHJpdmF0ZS5oCmluZGV4IDFjMWI2OTYwOGVjOGE4YzExNzZkZTIwZTkyYmMwODQxZmEyNDlhNGMu
LjI0ODJkNmI5ODUwMTIwYjUwOTQ1ZjNlNmFlNjQ1YjFhMDJlYzBlZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVlc3RQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVxdWVzdFByaXZhdGUuaApAQCAtMzEsNyAr
MzEsOSBAQAogI2lmbmRlZiBXZWJVUkxSZXF1ZXN0UHJpdmF0ZV9oCiAjZGVmaW5lIFdlYlVSTFJl
cXVlc3RQcml2YXRlX2gKIAotbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7IH0KKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgorCisjaW5jbHVkZSAiV2Vi
VVJMUmVxdWVzdC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDgsNiArNTAsMjIgQEAg
cHVibGljOgogICAgIGJvb2wgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzOwogfTsKIAorY2xhc3Mg
V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lciA6IHB1YmxpYyBXZWJDb3JlOjpMb2FkZXJS
ZXF1ZXN0Q29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVVJMUmVx
dWVzdEV4dHJhRGF0YUNvbnRhaW5lcj4gY3JlYXRlKFdlYkNvcmU6OkxvYWRlclJlcXVlc3RDb250
ZXh0OjpUYXJnZXRUeXBlKTsKKworICAgIHZpcnR1YWwgfldlYlVSTFJlcXVlc3RFeHRyYURhdGFD
b250YWluZXIoKSB7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0OjpDb250ZXh0PiBjb3B5KCk7CisKKyAgICBXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGEq
IGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisgICAgdm9p
ZCBzZXRFeHRyYURhdGEoV2ViVVJMUmVxdWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEpIHsgQVNT
RVJUKCFtX2V4dHJhRGF0YS5nZXQoKSk7IG1fZXh0cmFEYXRhID0gYWRvcHRQdHIoZXh0cmFEYXRh
KTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlVSTFJlcXVlc3RFeHRyYURhdGFDb250
YWluZXIoV2ViQ29yZTo6TG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUpOworCisgICAg
T3duUHRyPFdlYlVSTFJlcXVlc3Q6OkV4dHJhRGF0YT4gbV9leHRyYURhdGE7Cit9OworCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYlVSTFJlcXVlc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvV2ViVVJMUmVxdWVzdFRlc3QuY3BwCmluZGV4IDIzNGQwMTQ4MWFiYTVjZmZjZTk2
MjUxYTFhM2I2YTAzYzJjOTRmYTUuLjgxNmRlNzYxMzUyODdmNTgzNWVhZDVhYWE3ZGY1MWU4YTg3
YjQyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVVJMUmVx
dWVzdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVVJMUmVx
dWVzdFRlc3QuY3BwCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflRl
c3RFeHRyYURhdGEoKSB7ICptX2FsaXZlID0gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgVGVzdEV4
dHJhRGF0YSogY29weSgpIHsgcmV0dXJuIDA7IH0KKwogcHJpdmF0ZToKICAgICBib29sKiBtX2Fs
aXZlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111707</attachid>
            <date>2011-10-19 18:28:11 -0700</date>
            <delta_ts>2011-10-20 09:15:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65855-20111020032809.patch</filename>
            <type>text/plain</type>
            <size>53475</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc2NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYzNkMGIzOTY0YmIzNWI1
OGEyNGYyMjJmM2JhMmNhY2FkMjBjMzVhLi41ZTE0YjNhODc1MzExZjc4ZGViNjQ2NjQ1MzcxNjc2
OGJmY2FkMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTEtMTAtMTkgIEpvY2hl
biBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgUmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6Q29udGV4dCBjbGFzcyB0aGF0IGlzIHBhcnQgb2YgYSBSZXNvdXJjZVJl
cXVlc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTg1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBDb250ZXh0IGlzIG9wYXF1ZSB0byB0aGUgY2xhc3NlcyBpbiBwbGF0Zm9ybS9uZXR3b3JrLiBJ
dCdzCisgICAgICAgIGltcGxlbWVudGVkIGluIExvYWRlclJlcXVlc3RDb250ZXh0LCBhbmQgY2Fy
cmllcyB0aGUgdGFyZ2V0VHlwZSBmaWVsZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TG9hZGVyUmVxdWVzdENvbnRleHQ6OkxvYWRlclJlcXVlc3RDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxvYWRlclJlcXVlc3RDb250ZXh0Ojpjb3B5KToKKyAgICAgICAgKiBsb2FkZXIv
TG9hZGVyUmVxdWVzdENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlclJlcXVlc3RD
b250ZXh0Ojp+TG9hZGVyUmVxdWVzdENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVy
UmVxdWVzdENvbnRleHQ6OnRhcmdldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyUmVx
dWVzdENvbnRleHQ6OnNldFRhcmdldFR5cGUpOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJSZXF1
ZXN0Q29udGV4dEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyUmVxdWVzdENvbnRl
eHQ6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGluZ0xvYWRlcjo6bG9hZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdM
b2FkZXI6OnNlbmRQaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnJlcG9ydENv
bnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbik6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNvdXJj
ZVR5cGVUb1RhcmdldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Ojpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6YWRvcHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29weURhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Q29udGV4dDo6fkNvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdDo6UmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtl
clNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjppbXBvcnRTY3Jp
cHRzKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OldvcmtlclNjcmlwdExvYWRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZVJlc291cmNlUmVxdWVzdCk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclNjcmlwdExvYWRlcjo6c2V0VGFyZ2V0VHlwZSk6CisgICAgICAgICogeG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVh
dGVSZXF1ZXN0KToKKwogMjAxMS0xMC0xNCAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVGhyb3R0bGUgcmF0ZSBvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hl
biBwYWdlIGlzIG5vdCB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDUwZTI1
ZTMyMDkwNjFjYzlmNDhhYWQ0ZDQ1OGE3OWY5YjliYTU0MGQuLjE4YmVmMDdkMGYyNTJkNThlNGE5
ODNmN2U3NzlkMmQ5YjJiZjU0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMTEtMTAtMTkgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgQWRkIGEgQ2hyb21pdW0gc3BlY2lmaWMgY2xhc3MgZGVyaXZpbmcgZnJv
bSBMb2FkZXJSZXNvdXJjZUNvbnRleHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTg1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgY2xhc3MgYWxsb3dzIHRoZSBlbWJlZGRlciB0byBhdHRhY2gg
YWRkaXRpb25hbCBkYXRhIHRvIGEgUmVzb3VyY2VSZXF1ZXN0LgorCisgICAgICAgICogV2ViS2l0
Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGE6OmNvcHkpOgorICAgICAgICAqIHNyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpzZXRUYXJnZXRUeXBlRnJvbUxv
YWRlcik6CisgICAgICAgICogc3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBz
cmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXI6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcik6CisgICAgICAgICog
c3JjL1dlYlVSTFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0RXh0
cmFEYXRhQ29udGFpbmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0
RXh0cmFEYXRhQ29udGFpbmVyOjpjb3B5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVz
dEV4dHJhRGF0YUNvbnRhaW5lcjo6V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OnRhcmdldFR5cGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxSZXF1ZXN0OjpzZXRUYXJnZXRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMUmVxdWVzdDo6ZXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdDo6
c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKiBzcmMvV2ViVVJMUmVxdWVzdFByaXZhdGUuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcjo6fldlYlVSTFJl
cXVlc3RFeHRyYURhdGFDb250YWluZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0
RXh0cmFEYXRhQ29udGFpbmVyOjpleHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxS
ZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVyOjpzZXRFeHRyYURhdGEpOgorICAgICAgICAqIHRlc3Rz
L1dlYlVSTFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdEV4dHJhRGF0YTo6
Y29weSk6CisKIDIwMTEtMTAtMTcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBXZWIgSW5zcGVjdG9yOiBkb24ndCBjaGVjayBmb3Ig
ZGVidWdnZXIgcGF1c2UgZGV0YWlscyBpbiBpbnRlcmFjdGl2ZSB1aSB0ZXN0cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCAwM2VhMTIyNDMzNmJjZWJmNGFhMmIzMTA3M2E5M2UwNzcwZGJjNDM0Li44
MGNjYjlkYjUwYTk0YmJjYzczN2ExNzc1YWU3OGJiNzk4OWY0NjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtOTE1LDYgKzkxNSw4IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwCiAgICAgbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAogICAgIGxv
YWRlci9MaW5rTG9hZGVyLmNwcAorICAgIGxvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAK
KyAgICBsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcAogICAgIGxvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCiAgICAg
bG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggODU0ZGFiMGQ3ZTE0ZDg3NTg3Y2FhZmU0ZDliNTA4MmY3YWI4Yzg3YS4u
ZjU1MjFjYzc0YTU1M2NiOTNkZDIxMmU0NmMwYjYyMjAwNzc0OWNhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0yMTc2LDYgKzIxNzYsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2Fk
ZXJDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0LmggXAor
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDk3OTUyYzFjMjAx
ZDM3ZTJkNjRhNWI3YjdlZDVlNTVlNTMwMDFjYzkuLjljZTg1NDVhMzRmZTdhYTY5ZGVlMzhlOGNk
MGQ3OGIyMDE2ZDk1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU2NCw2ICs1NjQsNyBAQAogICAg
ICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2xvYWRl
ci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQu
aCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgnLApAQCAtMjc4Miw2ICsyNzgzLDggQEAKICAgICAg
ICAgICAgICdsb2FkZXIvTGlua0xvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9MaW5r
TG9hZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9MaW5rTG9hZGVyQ2xpZW50LmgnLAorICAg
ICAgICAgICAgJ2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAnLAorICAgICAgICAgICAg
J2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5oJywKICAgICAgICAgICAgICdsb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwppbmRleCBiMGM0YmQ4MGE4NTc3NTQxZTkwZDg1OGM3MjlhYjQyMGFmYjEyOWRmLi4x
NWJlNjBlNzA4MzBjNTIyNzdiNDk1YzA3YTFkNWFlNDE0ZjkzN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtODk3LDYgKzg5Nyw4IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwIFwKICAgICBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvTGlua0xv
YWRlci5jcHAgXAorICAgIGxvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAgXAorICAgIGxv
YWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIFwKICAgICBsb2FkZXIvTWFpblJlc291
cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKICAgICBs
b2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjNjZDM3ZGVlNTczOWZmODM5Nzdj
NWNiYjI5NjY2YjlkZTMwMzczNi4uYmY5MGQ0ZTQyOWVkYTcyYzI2MjI4NzM5NWJmNDk3ZDE4M2Qz
N2FjYyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTI2Mzc0LDYgKzI2Mzc0LDE4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxMb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxMb2Fk
ZXJSZXF1ZXN0Q29udGV4dC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1haW5S
ZXNvdXJjZUxvYWRlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNjZjc4MDcxNTgxOTYx
ZWJkMDI5NzQ4OGQ0ZTE2NGY4NzVjYzBkYzEuLjgxMTdmZmJiODYxZTZlNTQyMTM5MDk3N2ExZjJh
YmI0Y2JhNDEzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTU4MSwxMSArNTgxLDE0IEBACiAJCTFDNUZBRUU3MERDRkRBNjgw
MEQ1OEY3OCAvKiBKU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM1RkFFRTYwRENGREE2ODAwRDU4Rjc4
IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgKi87IH07CiAJCTFDNjNBMjQ4MEY3
MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNjNBMjQ2MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29w
VGltZXIuaCAqLzsgfTsKIAkJMUM2M0EyNDkwRjcxNjQ2NjAwQzA5RDVBIC8qIFJ1bkxvb3BUaW1l
ckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
NjNBMjQ3MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29wVGltZXJDRi5jcHAgKi87IH07CisJCTFD
NzQzNTAzMTQ0RUFCREUwMEM4RTNFNyAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM3NDM1MDMxNDRF
QUJERTAwQzhFM0U3IC8qIExvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAgKi87IH07CiAJCTFD
ODFCOTVBMEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzgxQjk1NjBFOTczMzA4MDAy
NjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDODFCOTVCMEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDODFCOTU3MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVy
LmNwcCAqLzsgfTsKIAkJMUM4MUI5NUMwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4MUI5
NTgwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDODFCQTA5MEU5NzM0ODMwMDI2NkUw
NyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0
Q2FsbEZyYW1lLmNwcCAqLzsgfTsKIAkJMUM4MUJBMEEwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFT
Y3JpcHRDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDODFCQTA0MEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmgg
Ki87IH07CisJCTFDOURDNDNFMTQ0RTNGNTcwMDUwRUYyQSAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzlE
QzQzQzE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwICovOyB9Owor
CQkxQzlEQzQzRjE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENvbnRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOURDNDNEMTQ0RTNG
NTcwMDUwRUYyQSAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDQTE5RTA1MERDMjU1OTUwMDY1QTk5NCAv
KiBFdmVudExvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0ExOUUwMzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovOyB9
OwogCQkxQ0ExOUUxNjBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5
OTQgLyogRXZlbnRMb29wLmggKi87IH07CiAJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBX
ZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzY0NSw2ICs3
NjQ4LDcgQEAKIAkJMUM1RkFFRDAwRENGRDkwMTAwRDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxG
cmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0phdmFTY3JpcHRDYWxs
RnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM1RkFFRTYwRENGREE2ODAw
RDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzYzQTI0NjBGNzE2NDY2MDBDMDlENUEgLyog
UnVuTG9vcFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3BU
aW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzc0MzUwMzE0NEVBQkRFMDBD
OEUzRTcgLyogTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNjNBMjQ3MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29w
VGltZXJDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29w
VGltZXJDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDODFCOTU2MEU5NzMz
MDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvckNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUM4MUI5NTcwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NjU0LDYgKzc2NTgsOCBA
QAogCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q2FsbEZyYW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDODFCQTA1MEU5NzM0ODMwMDI2NkUwNyAvKiBK
YXZhU2NyaXB0Q2FsbEZyYW1lLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBKYXZhU2NyaXB0
Q2FsbEZyYW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5MDRERjkwQkE5
RDJDODAwODFFOUQwIC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gVmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5REM0M0MxNDRFM0Y1NzAwNTBFRjJBIC8qIExvYWRlclJlcXVlc3RDb250ZXh0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRlclJlcXVlc3RDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5REM0M0QxNDRFM0Y1NzAwNTBFRjJB
IC8qIExvYWRlclJlcXVlc3RDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExvYWRlclJlcXVlc3RDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQTE5RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudExvb3BNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQTE5RTE1MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3Au
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMb29wLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3Jp
cHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0T2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg2MSw2ICsxOTg2Nyw5IEBA
CiAJCQkJOThDRTQzMjUxMjlFMDBCRDAwNTgyMURDIC8qIExpbmtMb2FkZXIuY3BwICovLAogCQkJ
CTk4Q0U0MzI5MTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggKi8sCiAJCQkJOTg0MjY0
RUYxMkQ1MjgwQTAwMEQ4OEE0IC8qIExpbmtMb2FkZXJDbGllbnQuaCAqLywKKwkJCQkxQzlEQzQz
QzE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwICovLAorCQkJCTFD
OURDNDNEMTQ0RTNGNTcwMDUwRUYyQSAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dC5oICovLAorCQkJ
CTFDNzQzNTAzMTQ0RUFCREUwMEM4RTNFNyAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3Bw
ICovLAogCQkJCTkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2FkZXIu
Y3BwICovLAogCQkJCTY1NkQzNzI5MEFEQkE1REUwMEE0NTU0RCAvKiBNYWluUmVzb3VyY2VMb2Fk
ZXIuaCAqLywKIAkJCQk5M0NDRjA1RjBBRjZDQTc2MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlv
bi5jcHAgKi8sCkBAIC0yMzU0Nyw2ICsyMzU1Niw3IEBACiAJCQkJOTg1QkI5NkUxM0E5NDA1ODAw
N0EwQjY5IC8qIExpbmtSZWxBdHRyaWJ1dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIxQUQ0RTVG
MTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNjU2RDM3MzIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxQzlEQzQzRjE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFRTY4NDY5MTJEMjZFMzgwMEU3OTQxNSAvKiBM
b2FkZXJSdW5Mb29wQ0YuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2RTgxRUQ3MEFCNUQ1RTkwMEM4
NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc2MzNBNzI2MTNEOEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjY2MjEsNiArMjY2MzEsOCBAQAogCQkJCTk4NUJCOTZEMTNBOTQwNTgw
MDdBMEI2OSAvKiBMaW5rUmVsQXR0cmlidXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIxQUQ0
RTVFMTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFjay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NTZEMzczMzBBREJBNURFMDBBNDU1NEQgLyogTG9hZGVyTlNVUkxFeHRyYXMubW0g
aW4gU291cmNlcyAqLywKKwkJCQkxQzlEQzQzRTE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVx
dWVzdENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM3NDM1MDMxNDRFQUJERTAwQzhF
M0U3IC8qIExvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
RUU2ODQ2ODEyRDI2RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVuTG9vcENGLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA2RTgxRUVDMEFCNURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGlj
c0NvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3NjMzQTcyNzEzRDhCMzNBMDA4NTAxQjYg
LyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQzOTY0MGQ5ZjFhN2U5YTc5Y2M2YzBkY2Y1NWNjMWMzNjllYjE3MGEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9hZGVyUmVxdWVzdENv
bnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitMb2FkZXJSZXF1ZXN0Q29udGV4dDo6
TG9hZGVyUmVxdWVzdENvbnRleHQoVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKQorICAgIDogbV90YXJn
ZXRUeXBlKHRhcmdldFR5cGUpCit7Cit9CisKK1Bhc3NSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0OjpD
b250ZXh0PiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y29weSgpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBMb2FkZXJSZXF1ZXN0Q29udGV4dChtX3RhcmdldFR5cGUpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRl
clJlcXVlc3RDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENv
bnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xOGQ3YjQ0N2Y5MTIxMTI3NDJlOTNlM2NhZTQxNTgwNDJkY2Yw
ZDUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVl
c3RDb250ZXh0LmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9hZGVyUmVxdWVzdENvbnRleHRf
aAorI2RlZmluZSBMb2FkZXJSZXF1ZXN0Q29udGV4dF9oCisKKyNpbmNsdWRlICJSZXNvdXJjZVJl
cXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBMb2FkZXJSZXF1ZXN0Q29u
dGV4dCA6IHB1YmxpYyBSZXNvdXJjZVJlcXVlc3Q6OkNvbnRleHQgeworcHVibGljOgorCisgICAg
Ly8gVGhlIHR5cGUgb2YgdGhpcyBSZXNvdXJjZVJlcXVlc3QsIGJhc2VkIG9uIGhvdyB0aGUgcmVz
b3VyY2Ugd2lsbCBiZSB1c2VkLgorICAgIGVudW0gVGFyZ2V0VHlwZSB7CisgICAgICAgIFRhcmdl
dElzTWFpbkZyYW1lLAorICAgICAgICBUYXJnZXRJc1N1YmZyYW1lLAorICAgICAgICBUYXJnZXRJ
c1N1YnJlc291cmNlLCAvLyBSZXNvdXJjZSBpcyBhIGdlbmVyaWMgc3VicmVzb3VyY2UuIChHZW5l
cmFsbHkgYSBzcGVjaWZpYyB0eXBlIHNob3VsZCBiZSBzcGVjaWZpZWQpCisgICAgICAgIFRhcmdl
dElzU3R5bGVTaGVldCwKKyAgICAgICAgVGFyZ2V0SXNTY3JpcHQsCisgICAgICAgIFRhcmdldElz
Rm9udFJlc291cmNlLAorICAgICAgICBUYXJnZXRJc0ltYWdlLAorICAgICAgICBUYXJnZXRJc09i
amVjdCwKKyAgICAgICAgVGFyZ2V0SXNNZWRpYSwKKyAgICAgICAgVGFyZ2V0SXNXb3JrZXIsCisg
ICAgICAgIFRhcmdldElzU2hhcmVkV29ya2VyLAorICAgICAgICBUYXJnZXRJc1ByZWZldGNoLAor
ICAgICAgICBUYXJnZXRJc1ByZXJlbmRlciwKKyAgICAgICAgVGFyZ2V0SXNGYXZpY29uLAorICAg
ICAgICBUYXJnZXRJc1hIUiwKKyAgICAgICAgVGFyZ2V0SXNDdWUsCisgICAgfTsKKworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPExvYWRlclJlcXVlc3RDb250ZXh0PiBjcmVhdGUoVGFyZ2V0VHlwZSk7
CisKKyAgICB2aXJ0dWFsIH5Mb2FkZXJSZXF1ZXN0Q29udGV4dCgpIHsgfQorICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxSZXNvdXJjZVJlcXVlc3Q6OkNvbnRleHQ+IGNvcHkoKTsKKworICAgIC8vIFdo
YXQgdGhpcyByZXF1ZXN0IGlzIGZvci4KKyAgICBUYXJnZXRUeXBlIHRhcmdldFR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3RhcmdldFR5cGU7IH0KKyAgICB2b2lkIHNldFRhcmdldFR5cGUoVGFyZ2V0
VHlwZSB0YXJnZXRUeXBlKSB7IG1fdGFyZ2V0VHlwZSA9IHRhcmdldFR5cGU7IH0KKworcHJvdGVj
dGVkOgorICAgIGV4cGxpY2l0IExvYWRlclJlcXVlc3RDb250ZXh0KFRhcmdldFR5cGUpOworCitw
cml2YXRlOgorICAgIFRhcmdldFR5cGUgbV90YXJnZXRUeXBlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTG9hZGVyUmVxdWVzdENvbnRleHRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZTg3M2QwYWM2MDBhMGM2MzE3MmE5N2U1YThjNmEzYTY4MTJhMWM5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2FkZXJS
ZXF1ZXN0Q29udGV4dC5oIgorCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQorI2Vycm9yIENocm9t
aXVtIHNob3VsZCBub3QgY29tcGlsZSB0aGlzIGZpbGUKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1Bhc3NSZWZQdHI8TG9hZGVyUmVxdWVzdENvbnRleHQ+IExvYWRlclJlcXVlc3RD
b250ZXh0OjpjcmVhdGUoVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTG9hZGVyUmVxdWVzdENvbnRleHQodGFyZ2V0VHlwZSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggMGU1
Mzc4NDdlNDE3ZGMxNmNjOTI1MWU2ZjE3OTEzMWJjYjU0NGJmYS4uMGNkN2M0NzYzOTQ4NjAyOTc3
YzhmZjRmZDMxMzE4ZWRlNzI1MDc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNp
bmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgpAQCAt
NTUsOSArNTYsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSogZnJhbWUsIGNv
bnN0IEtVUkwmIHVybCkKICAgICB9CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwp
OwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNv
dXJjZVJlcXVlc3Q6OlRhcmdldElzSW1hZ2UpOwotI2VuZGlmCisgICAgcmVxdWVzdC5zZXRDb250
ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRh
cmdldElzSW1hZ2UpKTsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgiQ2FjaGUtQ29u
dHJvbCIsICJtYXgtYWdlPTAiKTsKICAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRl
UmVmZXJyZXIocmVxdWVzdC51cmwoKSwgZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVy
KCkpKQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihmcmFtZS0+bG9hZGVyKCktPm91
dGdvaW5nUmVmZXJyZXIoKSk7CkBAIC03Myw5ICs3Miw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9h
ZEltYWdlKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsKQogdm9pZCBQaW5nTG9hZGVyOjpz
ZW5kUGluZyhGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHBpbmdVUkwsIGNvbnN0IEtVUkwmIGRl
c3RpbmF0aW9uVVJMKQogewogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHBpbmdVUkwpOwot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2UpOwotI2VuZGlmCisgICAgcmVxdWVzdC5zZXRD
b250ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6
OlRhcmdldElzU3VicmVzb3VyY2UpKTsKICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1Qi
KTsKICAgICByZXF1ZXN0LnNldEhUVFBDb250ZW50VHlwZSgidGV4dC9waW5nIik7CiAgICAgcmVx
dWVzdC5zZXRIVFRQQm9keShGb3JtRGF0YTo6Y3JlYXRlKCJQSU5HIikpOwpAQCAtMTAxLDkgKzk4
LDcgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwm
IHBpbmdVUkwsIGNvbnN0IEtVUkwmIGRlc3RpbmEKIHZvaWQgUGluZ0xvYWRlcjo6cmVwb3J0Q29u
dGVudFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgcmVw
b3J0VVJMLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiByZXBvcnQpCiB7CiAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QocmVwb3J0VVJMKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXF1
ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlKTsK
LSNlbmRpZgorICAgIHJlcXVlc3Quc2V0Q29udGV4dChMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3Jl
YXRlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1N1YnJlc291cmNlKSk7CiAgICAgcmVx
dWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIik7CiAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5
cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpOwogICAgIHJlcXVlc3Quc2V0
SFRUUEJvZHkocmVwb3J0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZDM0Y2ViNGRhNDIyMTMxNzA2ZGU3YjQw
NjJiYTlkYmY0N2M3MjVkOC4uMDg5NmUxMGYyOGNmODY3NjFiZTk2ZDAwMjc0YTM1ZmMzNTA2NjBj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJM
b2FkZXJSZXF1ZXN0Q29udGV4dC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
ZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCkBAIC00NSw0MCArNDYs
MzggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1z
dGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFy
Z2V0VHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQorc3RhdGljIExvYWRlclJlcXVlc3RD
b250ZXh0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRS
ZXNvdXJjZTo6VHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKICNlbmRpZgotICAgICAgICByZXR1cm4gUmVz
b3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N0eWxlU2hlZXQ7CisgICAgICAgIHJldHVybiBMb2FkZXJS
ZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNTdHlsZVNoZWV0OwogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlNjcmlwdDogCi0gICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU2Ny
aXB0OworICAgICAgICByZXR1cm4gTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzU2NyaXB0
OwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJu
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGb250UmVzb3VyY2U7CisgICAgICAgIHJldHVybiBM
b2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNGb250UmVzb3VyY2U7CiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0SXNJbWFnZTsKKyAgICAgICAgcmV0dXJuIExvYWRlclJlcXVlc3RDb250ZXh0OjpU
YXJnZXRJc0ltYWdlOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgotICAg
ICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOyAgICAKKyAg
ICAgICAgcmV0dXJuIExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1N1YnJlc291cmNlOyAg
ICAKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpM
aW5rUHJlZmV0Y2g6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJl
ZmV0Y2g7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNQcmVm
ZXRjaDsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgotICAgICAgICBy
ZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZXJlbmRlcjsKKyAgICAgICAgcmV0dXJu
IExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1ByZXJlbmRlcjsKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1ZXN0Q29u
dGV4dDo6VGFyZ2V0SXNTdWJyZXNvdXJjZTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDdWVSZXNvdXJjZToKLSAgICAgICAgcmV0dXJu
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNDdWU7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1
ZXN0Q29udGV4dDo6VGFyZ2V0SXNDdWU7CiAjZW5kaWYKICAgICB9CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJyZXNvdXJj
ZTsKKyAgICByZXR1cm4gTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzU3VicmVzb3VyY2U7
CiB9Ci0jZW5kaWYKIAogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3QoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2UpCiAgICAgOiBtX2NhY2hlZFJlc291cmNlTG9hZGVyKGNhY2hlZFJlc291
cmNlTG9hZGVyKQpAQCAtOTcsOSArOTYsNyBAQCBQYXNzT3duUHRyPENhY2hlZFJlc291cmNlUmVx
dWVzdD4gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpsb2FkKENhY2hlZFJlc291cmNlTG9hZAogICAg
IE93blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdFB0cihuZXcgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KGNhY2hlZFJlc291cmNlTG9hZGVyLCByZXNvdXJjZSkpOwogCiAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCA9IHJlc291cmNlLT5yZXNvdXJjZVJl
cXVlc3QoKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0
VGFyZ2V0VHlwZShjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUocmVzb3VyY2UtPnR5cGUo
KSkpOwotI2VuZGlmCisgICAgcmVzb3VyY2VSZXF1ZXN0LnNldENvbnRleHQoTG9hZGVyUmVxdWVz
dENvbnRleHQ6OmNyZWF0ZShjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUocmVzb3VyY2Ut
PnR5cGUoKSkpKTsKIAogICAgIGlmICghcmVzb3VyY2UtPmFjY2VwdCgpLmlzRW1wdHkoKSkKICAg
ICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldEhUVFBBY2NlcHQocmVzb3VyY2UtPmFjY2VwdCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1
ZXN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVx
dWVzdEJhc2UuY3BwCmluZGV4IDllNTQwNDg4ZTRkMzc4MGNhYzgyN2FjYTUxOGUwMWYxMzY4ODdh
NTAuLjM0NGI3YjEyYzVmODE0ZTVlMDVmZmI5ZmEwNDBlYTkyNjZjMjkwYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
LmNwcApAQCAtNzQsNiArNzQsNyBAQCBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4gUmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6YWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlcwogI2VuZGlmCiAg
ICAgcmVxdWVzdC0+c2V0SFRUUEJvZHkoZGF0YS0+bV9odHRwQm9keSk7CiAgICAgcmVxdWVzdC0+
c2V0QWxsb3dDb29raWVzKGRhdGEtPm1fYWxsb3dDb29raWVzKTsKKyAgICByZXF1ZXN0LT5zZXRD
b250ZXh0KGRhdGEtPm1fY29udGV4dCk7CiAgICAgcmVxdWVzdC0+ZG9QbGF0Zm9ybUFkb3B0KGRh
dGEpOwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KQEAgLTk5LDYgKzEwMCw4IEBA
IFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBSZXNvdXJjZVJlcXVl
c3RCYXNlOjpjb3B5RGF0YSgpIGNvbnN0CiAgICAgaWYgKG1faHR0cEJvZHkpCiAgICAgICAgIGRh
dGEtPm1faHR0cEJvZHkgPSBtX2h0dHBCb2R5LT5kZWVwQ29weSgpOwogICAgIGRhdGEtPm1fYWxs
b3dDb29raWVzID0gbV9hbGxvd0Nvb2tpZXM7CisgICAgaWYgKG1fY29udGV4dCkKKyAgICAgICAg
ZGF0YS0+bV9jb250ZXh0ID0gbV9jb250ZXh0LT5jb3B5KCk7CiAgICAgcmV0dXJuIGFzUmVzb3Vy
Y2VSZXF1ZXN0KCkuZG9QbGF0Zm9ybUNvcHlEYXRhKGRhdGEucmVsZWFzZSgpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuaAppbmRleCA2YjllODgxMjkyZmY2YTlhYzViYjczNGMzOGVlZjNiNmE5NmE3MmIyLi4yZDYx
OTY0NjkzMjU1YWE5ZWVhNmY5YTEwMDNlMjZkNGNlZDI1ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtNTEs
NiArNTEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlUmVxdWVz
dEJhc2UgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Cisg
ICAgICAgIGNsYXNzIENvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxDb250ZXh0PiB7CisgICAg
ICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHZpcnR1YWwgfkNvbnRleHQoKSB7IH0KKyAgICAgICAg
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDb250ZXh0PiBjb3B5KCkgPSAwOworICAgICAgICB9Owor
CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4gYWRvcHQoUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KTsKIAogICAgICAgICAvLyBHZXRz
IGEgY29weSBvZiB0aGUgZGF0YSBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBhbm90aGVyIHRocmVh
ZC4KQEAgLTEzMyw2ICsxMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IHJlcG9ydFJhd0hlYWRlcnMoKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydFJhd0hlYWRlcnM7IH0K
ICAgICAgICAgdm9pZCBzZXRSZXBvcnRSYXdIZWFkZXJzKGJvb2wgcmVwb3J0UmF3SGVhZGVycykg
eyBtX3JlcG9ydFJhd0hlYWRlcnMgPSByZXBvcnRSYXdIZWFkZXJzOyB9CiAKKyAgICAgICAgLy8g
SGlnaGVyLWxldmVsIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdC4KKyAgICAg
ICAgQ29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQor
ICAgICAgICB2b2lkIHNldENvbnRleHQoUGFzc1JlZlB0cjxDb250ZXh0PiBjb250ZXh0KSB7IG1f
Y29udGV4dCA9IGNvbnRleHQ7IH0KKworCiAgICAgICAgIHN0YXRpYyBkb3VibGUgZGVmYXVsdFRp
bWVvdXRJbnRlcnZhbCgpOyAvLyBNYXkgcmV0dXJuIDAgd2hlbiB1c2luZyBwbGF0Zm9ybSBkZWZh
dWx0LgogICAgICAgICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0VGltZW91dEludGVydmFsKGRvdWJs
ZSk7CiAKQEAgLTE5NSw2ICsyMDYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0
ZToKICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhc1Jlc291cmNlUmVxdWVzdCgpIGNv
bnN0OwogCisgICAgICAgIFJlZlB0cjxDb250ZXh0PiBtX2NvbnRleHQ7CisKICAgICAgICAgc3Rh
dGljIGRvdWJsZSBzX2RlZmF1bHRUaW1lb3V0SW50ZXJ2YWw7CiAgICAgfTsKIApAQCAtMjIxLDYg
KzIzNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRhPiBt
X2h0dHBCb2R5OwogICAgICAgICBib29sIG1fYWxsb3dDb29raWVzOwogICAgICAgICBSZXNvdXJj
ZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5OworICAgICAgICBSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0
QmFzZTo6Q29udGV4dD4gbV9jb250ZXh0OwogICAgIH07CiAgICAgCiAgICAgdW5zaWduZWQgaW5p
dGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJl
cXVlc3QuY3BwCmluZGV4IDI1NDFkZTc2OTc4NjAzM2Q0ODJlN2Y2MzQ2OWMwYTBmNWVjMTFmOTAu
LjUxOWM2M2Y0YzM3MDUzNzI3ZDMzNzQ2NWU3ZjNhOTBiNjNlMjIxNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNl
UmVxdWVzdC5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGE+IFJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKFAKICAg
ICBkYXRhLT5tX2FwcENhY2hlSG9zdElEID0gbV9hcHBDYWNoZUhvc3RJRDsKICAgICBkYXRhLT5t
X2hhc1VzZXJHZXN0dXJlID0gbV9oYXNVc2VyR2VzdHVyZTsKICAgICBkYXRhLT5tX2Rvd25sb2Fk
VG9GaWxlID0gbV9kb3dubG9hZFRvRmlsZTsKLSAgICBkYXRhLT5tX3RhcmdldFR5cGUgPSBtX3Rh
cmdldFR5cGU7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKQEAgLTU1LDcgKzU0LDYgQEAgdm9pZCBS
ZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4KICAgICBtX2FwcENhY2hlSG9zdElEID0gZGF0YS0+bV9hcHBDYWNo
ZUhvc3RJRDsKICAgICBtX2hhc1VzZXJHZXN0dXJlID0gZGF0YS0+bV9oYXNVc2VyR2VzdHVyZTsK
ICAgICBtX2Rvd25sb2FkVG9GaWxlID0gZGF0YS0+bV9kb3dubG9hZFRvRmlsZTsKLSAgICBtX3Rh
cmdldFR5cGUgPSBkYXRhLT5tX3RhcmdldFR5cGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0v
UmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9t
aXVtL1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IGMwMWVkZDMwNGIwZTZiMGUwYzkyZDA4ZjE4ZTU2
YWM0ZDAxMzM3YTIuLmFjYzI4NDQ5NjNhYjAwOWQ1NjQxNzVjYjI3ZmFhZjBmOTAyMDM5YzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMzksMzAgKzM5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0IDogcHVibGljIFJlc291cmNlUmVxdWVzdEJh
c2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgLy8gVGhlIHR5cGUgb2YgdGhpcyBSZXNvdXJjZVJl
cXVlc3QsIGJhc2VkIG9uIGhvdyB0aGUgcmVzb3VyY2Ugd2lsbCBiZSB1c2VkLgotICAgICAgICBl
bnVtIFRhcmdldFR5cGUgewotICAgICAgICAgICAgVGFyZ2V0SXNNYWluRnJhbWUsCi0gICAgICAg
ICAgICBUYXJnZXRJc1N1YmZyYW1lLAotICAgICAgICAgICAgVGFyZ2V0SXNTdWJyZXNvdXJjZSwg
Ly8gUmVzb3VyY2UgaXMgYSBnZW5lcmljIHN1YnJlc291cmNlLiAoR2VuZXJhbGx5IGEgc3BlY2lm
aWMgdHlwZSBzaG91bGQgYmUgc3BlY2lmaWVkKQotICAgICAgICAgICAgVGFyZ2V0SXNTdHlsZVNo
ZWV0LAotICAgICAgICAgICAgVGFyZ2V0SXNTY3JpcHQsCi0gICAgICAgICAgICBUYXJnZXRJc0Zv
bnRSZXNvdXJjZSwKLSAgICAgICAgICAgIFRhcmdldElzSW1hZ2UsCi0gICAgICAgICAgICBUYXJn
ZXRJc09iamVjdCwKLSAgICAgICAgICAgIFRhcmdldElzTWVkaWEsCi0gICAgICAgICAgICBUYXJn
ZXRJc1dvcmtlciwKLSAgICAgICAgICAgIFRhcmdldElzU2hhcmVkV29ya2VyLAotICAgICAgICAg
ICAgVGFyZ2V0SXNQcmVmZXRjaCwKLSAgICAgICAgICAgIFRhcmdldElzUHJlcmVuZGVyLAotICAg
ICAgICAgICAgVGFyZ2V0SXNGYXZpY29uLAotICAgICAgICAgICAgVGFyZ2V0SXNYSFIsCi0gICAg
ICAgICAgICBUYXJnZXRJc0N1ZSwKLSAgICAgICAgfTsKLQotICAgICAgICBjbGFzcyBFeHRyYURh
dGEgOiBwdWJsaWMgUmVmQ291bnRlZDxFeHRyYURhdGE+IHsKLSAgICAgICAgcHVibGljOgotICAg
ICAgICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkgeyB9Ci0gICAgICAgIH07CiAKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKSAKICAgICAgICAgICAgIDogUmVzb3Vy
Y2VSZXF1ZXN0QmFzZShLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgVXNlUHJvdG9jb2xDYWNo
ZVBvbGljeSkKQEAgLTcxLDcgKzQ3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgLCBtX2FwcENhY2hlSG9zdElEKDApCiAgICAgICAgICAgICAsIG1faGFzVXNlckdlc3R1cmUo
ZmFsc2UpCiAgICAgICAgICAgICAsIG1fZG93bmxvYWRUb0ZpbGUoZmFsc2UpCi0gICAgICAgICAg
ICAsIG1fdGFyZ2V0VHlwZShUYXJnZXRJc1N1YnJlc291cmNlKQogICAgICAgICB7CiAgICAgICAg
IH0KIApAQCAtODIsNyArNTcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAs
IG1fYXBwQ2FjaGVIb3N0SUQoMCkKICAgICAgICAgICAgICwgbV9oYXNVc2VyR2VzdHVyZShmYWxz
ZSkKICAgICAgICAgICAgICwgbV9kb3dubG9hZFRvRmlsZShmYWxzZSkKLSAgICAgICAgICAgICwg
bV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAgfQog
CkBAIC05Myw3ICs2Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9h
cHBDYWNoZUhvc3RJRCgwKQogICAgICAgICAgICAgLCBtX2hhc1VzZXJHZXN0dXJlKGZhbHNlKQog
ICAgICAgICAgICAgLCBtX2Rvd25sb2FkVG9GaWxlKGZhbHNlKQotICAgICAgICAgICAgLCBtX3Rh
cmdldFR5cGUoVGFyZ2V0SXNTdWJyZXNvdXJjZSkKICAgICAgICAgewogICAgICAgICAgICAgc2V0
SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKICAgICAgICAgfQpAQCAtMTA1LDcgKzc4LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2FwcENhY2hlSG9zdElEKDApCiAgICAg
ICAgICAgICAsIG1faGFzVXNlckdlc3R1cmUoZmFsc2UpCiAgICAgICAgICAgICAsIG1fZG93bmxv
YWRUb0ZpbGUoZmFsc2UpCi0gICAgICAgICAgICAsIG1fdGFyZ2V0VHlwZShUYXJnZXRJc1N1YnJl
c291cmNlKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtMTMyLDE0ICsxMDQsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZG93bmxvYWRUb0ZpbGUoKSBjb25zdCB7IHJl
dHVybiBtX2Rvd25sb2FkVG9GaWxlOyB9CiAgICAgICAgIHZvaWQgc2V0RG93bmxvYWRUb0ZpbGUo
Ym9vbCBkb3dubG9hZFRvRmlsZSkgeyBtX2Rvd25sb2FkVG9GaWxlID0gZG93bmxvYWRUb0ZpbGU7
IH0KIAotICAgICAgICAvLyBFeHRyYSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Qu
Ci0gICAgICAgIEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRyYURh
dGEuZ2V0KCk7IH0KLSAgICAgICAgdm9pZCBzZXRFeHRyYURhdGEoUGFzc1JlZlB0cjxFeHRyYURh
dGE+IGV4dHJhRGF0YSkgeyBtX2V4dHJhRGF0YSA9IGV4dHJhRGF0YTsgfQotCi0gICAgICAgIC8v
IFdoYXQgdGhpcyByZXF1ZXN0IGlzIGZvci4KLSAgICAgICAgVGFyZ2V0VHlwZSB0YXJnZXRUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRUeXBlOyB9Ci0gICAgICAgIHZvaWQgc2V0VGFyZ2V0
VHlwZShUYXJnZXRUeXBlIHR5cGUpIHsgbV90YXJnZXRUeXBlID0gdHlwZTsgfQotCiAgICAgcHJp
dmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVxdWVzdEJhc2U7CiAKQEAgLTE1
NCw4ICsxMTgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtX2FwcENhY2hl
SG9zdElEOwogICAgICAgICBib29sIG1faGFzVXNlckdlc3R1cmU7CiAgICAgICAgIGJvb2wgbV9k
b3dubG9hZFRvRmlsZTsKLSAgICAgICAgUmVmUHRyPEV4dHJhRGF0YT4gbV9leHRyYURhdGE7Ci0g
ICAgICAgIFRhcmdldFR5cGUgbV90YXJnZXRUeXBlOwogICAgIH07CiAKICAgICBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YUJhc2UgewpAQCAtMTY0LDcgKzEyNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgaW50IG1fYXBwQ2FjaGVIb3N0SUQ7CiAgICAgICAgIGJvb2wgbV9oYXNVc2VyR2Vz
dHVyZTsKICAgICAgICAgYm9vbCBtX2Rvd25sb2FkVG9GaWxlOwotICAgICAgICBSZXNvdXJjZVJl
cXVlc3Q6OlRhcmdldFR5cGUgbV90YXJnZXRUeXBlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hh
cmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNDdiNTQyOGFhMTI0MDE2ZThlOGU0ZGU5MmU0
ZTg3MjA4ZWEzYWU2Ni4uYThjMzRkZWEyOGI2M2MzYzE5ZTA4NTUxNjM1MTBjMDViOTMyY2MzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKQEAgLTI5Nyw5ICsyOTcsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6bG9hZChjb25zdCBLVVJMJiB1cmwpCiAKICAgICAvLyBNYXJrIHRoaXMgb2Jq
ZWN0IGFzIGFjdGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb2FkLgogICAgIG1fc2NyaXB0
TG9hZGVyID0gV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSAgICBtX3NjcmlwdExvYWRlci0+c2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzU2hhcmVkV29ya2VyKTsKLSNlbmRpZgorICAgIG1fc2NyaXB0TG9hZGVyLT5zZXRU
YXJnZXRUeXBlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1NoYXJlZFdvcmtlcik7CiAg
ICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShtX3dvcmtlci0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCB1cmwsIERlbnlDcm9zc09yaWdpblJlcXVlc3RzLCB0aGlzKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDlkNDMwOTBmOGI5YWU3ZDczNzQwM2Ex
ZDdjMzUyYmI0ZGRmMjVkZjguLmRhYzJlODU0MzhlMzI3NTgyNmQ4YjQyNzNlYWM5ZjgwMTllY2Ji
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTY4LDkgKzY4LDcgQEAgUGFzc1Jl
ZlB0cjxXb3JrZXI+IFdvcmtlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYKICAgICB3b3JrZXItPnNldFBlbmRpbmdBY3Rpdml0eSh3b3JrZXIu
Z2V0KCkpOwogCiAgICAgd29ya2VyLT5tX3NjcmlwdExvYWRlciA9IFdvcmtlclNjcmlwdExvYWRl
cjo6Y3JlYXRlKCk7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgd29ya2VyLT5tX3Njcmlw
dExvYWRlci0+c2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzV29ya2VyKTsK
LSNlbmRpZgorICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPnNldFRhcmdldFR5cGUoTG9hZGVy
UmVxdWVzdENvbnRleHQ6OlRhcmdldElzV29ya2VyKTsKICAgICB3b3JrZXItPm1fc2NyaXB0TG9h
ZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgc2NyaXB0VVJMLCBEZW55Q3Jvc3NPcmln
aW5SZXF1ZXN0cywgd29ya2VyLmdldCgpKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV29ya2VyKGNvbnRleHQsIHdvcmtlci0+YXNJRCgpLCBzY3JpcHRVUkwuc3Ry
aW5nKCksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmlu
ZGV4IDAzZDQ4OGMzM2JmYWU4MDBmOTA0ODgwOGZhYWFiMjNlMzZhM2VhMDYuLmIxZTFhYTQwMzYy
MmQyMGE0NjNmNDI4M2VmMzg3ZmY1NTMxOGVjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmNwcApAQCAtMjY1LDkgKzI2NSw3IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6
aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAKICAgICBmb3IgKFZlY3RvcjxLVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjb21wbGV0
ZWRVUkxzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBSZWZQdHI8V29ya2Vy
U2NyaXB0TG9hZGVyPiBzY3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKSk7
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAgIHNjcmlwdExvYWRlci0+c2V0VGFyZ2V0
VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU2NyaXB0KTsKLSNlbmRpZgorICAgICAgICBz
Y3JpcHRMb2FkZXItPnNldFRhcmdldFR5cGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElz
U2NyaXB0KTsKICAgICAgICAgc2NyaXB0TG9hZGVyLT5sb2FkU3luY2hyb25vdXNseShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksICppdCwgQWxsb3dDcm9zc09yaWdpblJlcXVlc3RzKTsKIAogICAg
ICAgICAvLyBJZiB0aGUgZmV0Y2hpbmcgYXR0ZW1wdCBmYWlsZWQsIHRocm93IGEgTkVUV09SS19F
UlIgZXhjZXB0aW9uIGFuZCBhYm9ydCBhbGwgdGhlc2Ugc3RlcHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggOTU0NzZmODc4NTA0ZDhkNGU1
ODJhYTU1ODg0ZmE2YmRlZmIzMTAwYy4uMTEzOTI0ODFiN2U5N2Y3ZWNkOWU2ZDJhY2NiZjU1MjQ0
OTU4ZGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
LmNwcApAQCAtNTEsOSArNTEsNyBAQCBXb3JrZXJTY3JpcHRMb2FkZXI6OldvcmtlclNjcmlwdExv
YWRlcigpCiAgICAgLCBtX2ZhaWxlZChmYWxzZSkKICAgICAsIG1faWRlbnRpZmllcigwKQogICAg
ICwgbV9maW5pc2hpbmcoZmFsc2UpCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgLCBtX3Rh
cmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1dvcmtlcikKLSNlbmRpZgorICAgICwg
bV90YXJnZXRUeXBlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1dvcmtlcikKIHsKIH0K
IApAQCAtMTA5LDkgKzEwNyw3IEBAIFBhc3NPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiBXb3JrZXJT
Y3JpcHRMb2FkZXI6OmNyZWF0ZVJlc291cmNlUmVxdWVzdCgpCiB7CiAgICAgT3duUHRyPFJlc291
cmNlUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0UHRyKG5ldyBSZXNvdXJjZVJlcXVlc3QobV91cmwp
KTsKICAgICByZXF1ZXN0LT5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSAgICByZXF1ZXN0LT5zZXRUYXJnZXRUeXBlKG1fdGFyZ2V0VHlwZSk7Ci0jZW5kaWYK
KyAgICByZXF1ZXN0LT5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUobV90
YXJnZXRUeXBlKSk7CiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggZDZlN2RlMzdi
YmJmNmNkMThmMDNhYWFhMTllZTk0YWRiZjEyN2RiNC4uNzFmMjRhOWQ5OTBmNjZmZTQ4ZmRmYTdi
NWQyZmViMzAwYTQ4MmRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKFdPUktFUlMpCiAKICNpbmNs
dWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTG9hZGVyUmVxdWVzdENvbnRleHQuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgpAQCAtNzIsOSArNzMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCk7CiAK
LSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgdm9pZCBzZXRUYXJnZXRUeXBlKFJlc291
cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSB0YXJnZXRUeXBlKSB7IG1fdGFyZ2V0VHlwZSA9IHRhcmdl
dFR5cGU7IH0KLSNlbmRpZgorICAgICAgICB2b2lkIHNldFRhcmdldFR5cGUoTG9hZGVyUmVxdWVz
dENvbnRleHQ6OlRhcmdldFR5cGUgdGFyZ2V0VHlwZSkgeyBtX3RhcmdldFR5cGUgPSB0YXJnZXRU
eXBlOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgV1RGOjpSZWZDb3Vu
dGVkPFdvcmtlclNjcmlwdExvYWRlcj47CkBAIC05NSw5ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBtX2ZhaWxlZDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2lk
ZW50aWZpZXI7CiAgICAgICAgIGJvb2wgbV9maW5pc2hpbmc7Ci0jaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0gICAgICAgIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSBtX3RhcmdldFR5cGU7Ci0j
ZW5kaWYKKyAgICAgICAgTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUgbV90YXJnZXRU
eXBlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCmluZGV4IGUxYTc1MmNmNTYzYjY2MjZmNzI5MjlhZmU2MWU0OTU2Mjdi
MzdlYzEuLjRiNTFjZThkYjc2YWZmNTQ0NzM0MGZmMGJlY2Y3MDg5OWFmODYwZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUg
IkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSFRUUFZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4
dC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5o
IgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpAQCAtNjMwLDkgKzYzMSw3IEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybCk7CiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9k
KG1fbWV0aG9kKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXF1ZXN0LnNldFRhcmdl
dFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1hIUik7Ci0jZW5kaWYKKyAgICByZXF1ZXN0
LnNldENvbnRleHQoTG9hZGVyUmVxdWVzdENvbnRleHQ6OmNyZWF0ZShMb2FkZXJSZXF1ZXN0Q29u
dGV4dDo6VGFyZ2V0SXNYSFIpKTsKIAogICAgIGlmIChtX3JlcXVlc3RFbnRpdHlCb2R5KSB7CiAg
ICAgICAgIEFTU0VSVChtX21ldGhvZCAhPSAiR0VUIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKaW5kZXggM2Y0NmEyNGFjMzg3NTEzMDgwZmM3NmY1NzhiY2QwNjc5ZGQzMDczYS4uMDYyMzQ3
MDQ2ODcwZmZiY2Y3MTZlMjhmN2M0ZmY3ZWIxYjI4MGI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cApAQCAtNDEwLDYgKzQxMCw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9tYWMvV2Vi
SW5wdXRFdmVudEZhY3RvcnkubW0nLAogICAgICAgICAgICAgICAgICdzcmMvbWFjL1dlYlNjcmVl
bkluZm9GYWN0b3J5Lm1tJywKICAgICAgICAgICAgICAgICAnc3JjL21hYy9XZWJTdWJzdHJpbmdV
dGlsLm1tJywKKyAgICAgICAgICAgICAgICAnc3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL01lZGlhUGxheWVyUHJpdmF0ZUNocm9taXVtLmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKaW5kZXggODgyMTAwMDY0ODUzNzg3
ZWVkYTVkMDE1MDQ5NTE2OTlkNDBjZjA0Mi4uYTZmMTNiOTQ4ZjhjYjU3MTZlMWY2YmQ3NWU0YmU2
MDEzNmZkYWI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
VVJMUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJl
cXVlc3QuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgY2xhc3MgRXh0cmFEYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsgfQorICAgICAgICB2
aXJ0dWFsIEV4dHJhRGF0YSogY29weSgpIHsgcmV0dXJuIDA7IH0KICAgICB9OwogCiAgICAgfldl
YlVSTFJlcXVlc3QoKSB7IHJlc2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IDU3YmY1NmYzYTkyZDc3NGRi
NTBiZmE5MjU1MWEzYTk3ZDNlNmZjNGIuLjNlMWRlMjQzODM2ZTU1YzRkYWM5MTk0ODdhMjgwNjg3
MjFkZDEzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkhUTUxBcHBs
ZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiICAvLyBuZWVkZWQgYnkg
Rm9ybVN0YXRlLmgKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1
ZXN0Q29udGV4dC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJN
b3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMzMzLDEyICszMzQsMTcgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0
KAogc3RhdGljIHZvaWQgc2V0VGFyZ2V0VHlwZUZyb21Mb2FkZXIoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBEb2N1bWVudExvYWRlciogbG9hZGVyKQogewogICAgIGlmIChsb2FkZXIgPT0gbG9h
ZGVyLT5mcmFtZUxvYWRlcigpLT5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIHR5cGU7CisgICAgICAgIExvYWRlclJlcXVl
c3RDb250ZXh0OjpUYXJnZXRUeXBlIHR5cGU7CiAgICAgICAgIGlmIChsb2FkZXItPmZyYW1lTG9h
ZGVyKCktPmlzTG9hZGluZ01haW5GcmFtZSgpKQotICAgICAgICAgICAgdHlwZSA9IFJlc291cmNl
UmVxdWVzdDo6VGFyZ2V0SXNNYWluRnJhbWU7CisgICAgICAgICAgICB0eXBlID0gTG9hZGVyUmVx
dWVzdENvbnRleHQ6OlRhcmdldElzTWFpbkZyYW1lOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0eXBlID0gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YmZyYW1lOwotICAgICAgICByZXF1
ZXN0LnNldFRhcmdldFR5cGUodHlwZSk7CisgICAgICAgICAgICB0eXBlID0gTG9hZGVyUmVxdWVz
dENvbnRleHQ6OlRhcmdldElzU3ViZnJhbWU7CisKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0OjpD
b250ZXh0KiBjb250ZXh0ID0gcmVxdWVzdC5jb250ZXh0KCk7CisgICAgICAgIGlmIChjb250ZXh0
KQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRleHQqPihjb250ZXh0
KS0+c2V0VGFyZ2V0VHlwZSh0eXBlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVxdWVz
dC5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUodHlwZSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9hZGVyUmVxdWVz
dENvbnRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvYWRlclJlcXVl
c3RDb250ZXh0SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE1MWRmM2JmODhhMzQ3ZTY5ZjY1ZmY5Zjc0
NGZlYmU0NDcwYWRlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgorCisjaW5jbHVk
ZSAiV2ViVVJMUmVxdWVzdFByaXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNz
UmVmUHRyPExvYWRlclJlcXVlc3RDb250ZXh0PiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRl
KFRhcmdldFR5cGUgdGFyZ2V0VHlwZSkKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJVUkxSZXF1
ZXN0RXh0cmFEYXRhQ29udGFpbmVyOjpjcmVhdGUodGFyZ2V0VHlwZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1No
YXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hh
cmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNTVlN2I2YTg2MTRlZmNkMDJiN2RiMWNkOWZj
YmQ1ZjA3MDMzYTgzMC4uOTM0NzEzYWU1ODRmNzg3NzhhZWVjMDg5YjJkYzg4ODBiOWEzY2JiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVwb3Np
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fbG9hZGlu
ZyhmYWxzZSkKICAgICAgICAgLCBtX3Jlc3BvbnNlQXBwQ2FjaGVJRCgwKQogICAgIHsKLSAgICAg
ICAgbV9zY3JpcHRMb2FkZXItPnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1NoYXJlZFdvcmtlcik7CisgICAgICAgIG1fc2NyaXB0TG9hZGVyLT5zZXRUYXJnZXRUeXBlKExv
YWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1NoYXJlZFdvcmtlcik7CiAgICAgfQogCiAgICAg
flNoYXJlZFdvcmtlclNjcmlwdExvYWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVVJMUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJVUkxSZXF1ZXN0LmNwcAppbmRleCA2MDVmYjhjNDI1MjU3NGJmZmYxZjE0ZWU2YThkYjNj
NjdlYjdjODE3Li5mOWFlY2E0YjA5Mzk2ODExMTVkMGVhM2ZiNGJjYzczNzQ1MTJjYzU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcApAQCAtNDIsMjYg
KzQyLDIzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotbmFtZXNwYWNlIHsKLQotY2xhc3MgRXh0cmFEYXRhQ29udGFpbmVyIDogcHVibGljIFJlc291
cmNlUmVxdWVzdDo6RXh0cmFEYXRhIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxF
eHRyYURhdGFDb250YWluZXI+IGNyZWF0ZShXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJh
RGF0YSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEV4dHJhRGF0YUNvbnRhaW5lcihleHRyYURhdGEp
KTsgfQotCi0gICAgdmlydHVhbCB+RXh0cmFEYXRhQ29udGFpbmVyKCkgeyB9Ci0KLSAgICBXZWJV
UkxSZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFE
YXRhLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXh0cmFEYXRhQ29udGFpbmVy
KFdlYlVSTFJlcXVlc3Q6OkV4dHJhRGF0YSogZXh0cmFEYXRhKQotICAgICAgICA6IG1fZXh0cmFE
YXRhKGFkb3B0UHRyKGV4dHJhRGF0YSkpCi0gICAgewotICAgIH0KK1Bhc3NSZWZQdHI8V2ViVVJM
UmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcj4gV2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5l
cjo6Y3JlYXRlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRUeXBlIHRhcmdldFR5cGUpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJVUkxSZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVy
KHRhcmdldFR5cGUpKTsKK30KIAotICAgIE93blB0cjxXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGE+
IG1fZXh0cmFEYXRhOwotfTsKK1Bhc3NSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0PiBX
ZWJVUkxSZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVyOjpjb3B5KCkKK3sKKyAgICBSZWZQdHI8V2Vi
VVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcj4gY29udGFpbmVyID0gV2ViVVJMUmVxdWVzdEV4
dHJhRGF0YUNvbnRhaW5lcjo6Y3JlYXRlKHRhcmdldFR5cGUoKSk7CisgICAgaWYgKG1fZXh0cmFE
YXRhLmdldCgpKQorICAgICAgICBjb250YWluZXItPnNldEV4dHJhRGF0YShtX2V4dHJhRGF0YS0+
Y29weSgpKTsKKyAgICByZXR1cm4gY29udGFpbmVyLnJlbGVhc2UoKTsKK30KIAotfSAvLyBuYW1l
c3BhY2UKK1dlYlVSTFJlcXVlc3RFeHRyYURhdGFDb250YWluZXI6OldlYlVSTFJlcXVlc3RFeHRy
YURhdGFDb250YWluZXIoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUgdGFyZ2V0VHlw
ZSkKKyAgICA6IExvYWRlclJlcXVlc3RDb250ZXh0KHRhcmdldFR5cGUpCit7Cit9CiAKIC8vIFRo
ZSBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbiBvZiBXZWJVUkxSZXF1ZXN0UHJpdmF0ZSwgd2hpY2gg
bWFpbnRhaW5zCiAvLyBvd25lcnNoaXAgb2YgYSBSZXNvdXJjZVJlcXVlc3QgaW5zdGFuY2UuCkBA
IC0yNDEsNyArMjM4LDEwIEBAIHZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0UmVwb3J0TG9hZFRpbWlu
Zyhib29sIHJlcG9ydExvYWRUaW1pbmcpCiAKIFdlYlVSTFJlcXVlc3Q6OlRhcmdldFR5cGUgV2Vi
VVJMUmVxdWVzdDo6dGFyZ2V0VHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PFRhcmdldFR5cGU+KG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnRhcmdldFR5cGUoKSk7
CisgICAgUmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0KiBjb250ZXh0ID0gbV9wcml2YXRlLT5tX3Jl
c291cmNlUmVxdWVzdC0+Y29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0
dXJuIFRhcmdldElzU3VicmVzb3VyY2U7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRhcmdldFR5
cGU+KHN0YXRpY19jYXN0PExvYWRlclJlcXVlc3RDb250ZXh0Kj4oY29udGV4dCktPnRhcmdldFR5
cGUoKSk7CiB9CiAKIGJvb2wgV2ViVVJMUmVxdWVzdDo6aGFzVXNlckdlc3R1cmUoKSBjb25zdApA
QCAtMjU2LDggKzI1NiwxMiBAQCB2b2lkIFdlYlVSTFJlcXVlc3Q6OnNldEhhc1VzZXJHZXN0dXJl
KGJvb2wgaGFzVXNlckdlc3R1cmUpCiAKIHZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0VGFyZ2V0VHlw
ZShUYXJnZXRUeXBlIHRhcmdldFR5cGUpCiB7Ci0gICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVx
dWVzdC0+c2V0VGFyZ2V0VHlwZSgKLSAgICAgICAgc3RhdGljX2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0
OjpUYXJnZXRUeXBlPih0YXJnZXRUeXBlKSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0
KiBjb250ZXh0ID0gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+Y29udGV4dCgpOworICAg
IGlmIChjb250ZXh0KSB7CisgICAgICAgIHN0YXRpY19jYXN0PExvYWRlclJlcXVlc3RDb250ZXh0
Kj4oY29udGV4dCktPnNldFRhcmdldFR5cGUoc3RhdGljX2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRl
eHQ6OlRhcmdldFR5cGU+KHRhcmdldFR5cGUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RD
b250ZXh0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5
cGU+KHRhcmdldFR5cGUpKSk7CiB9CiAKIGludCBXZWJVUkxSZXF1ZXN0OjpyZXF1ZXN0b3JJRCgp
IGNvbnN0CkBAIC0zMDIsMTUgKzMwNiwyMCBAQCB2b2lkIFdlYlVSTFJlcXVlc3Q6OnNldERvd25s
b2FkVG9GaWxlKGJvb2wgZG93bmxvYWRUb0ZpbGUpCiAKIFdlYlVSTFJlcXVlc3Q6OkV4dHJhRGF0
YSogV2ViVVJMUmVxdWVzdDo6ZXh0cmFEYXRhKCkgY29uc3QKIHsKLSAgICBSZWZQdHI8UmVzb3Vy
Y2VSZXF1ZXN0OjpFeHRyYURhdGE+IGRhdGEgPSBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0
LT5leHRyYURhdGEoKTsKLSAgICBpZiAoIWRhdGEuZ2V0KCkpCisgICAgUmVzb3VyY2VSZXF1ZXN0
OjpDb250ZXh0KiBjb250ZXh0ID0gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+Y29udGV4
dCgpOworICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PEV4dHJhRGF0YUNvbnRhaW5lcio+KGRhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcio+
KGNvbnRleHQpLT5leHRyYURhdGEoKTsKIH0KIAogdm9pZCBXZWJVUkxSZXF1ZXN0OjpzZXRFeHRy
YURhdGEoV2ViVVJMUmVxdWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEpCiB7Ci0gICAgbV9wcml2
YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+c2V0RXh0cmFEYXRhKEV4dHJhRGF0YUNvbnRhaW5lcjo6
Y3JlYXRlKGV4dHJhRGF0YSkpOworICAgIFJlc291cmNlUmVxdWVzdDo6Q29udGV4dCogY29udGV4
dCA9IG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPmNvbnRleHQoKTsKKyAgICBpZiAoIWNv
bnRleHQpIHsKKyAgICAgICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+c2V0Q29udGV4
dChMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJn
ZXRJc1N1YnJlc291cmNlKSk7CisgICAgICAgIGNvbnRleHQgPSBtX3ByaXZhdGUtPm1fcmVzb3Vy
Y2VSZXF1ZXN0LT5jb250ZXh0KCk7CisgICAgfQorICAgIHN0YXRpY19jYXN0PFdlYlVSTFJlcXVl
c3RFeHRyYURhdGFDb250YWluZXIqPihjb250ZXh0KS0+c2V0RXh0cmFEYXRhKGV4dHJhRGF0YSk7
CiB9CiAKIFJlc291cmNlUmVxdWVzdCYgV2ViVVJMUmVxdWVzdDo6dG9NdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJl
cXVlc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0
UHJpdmF0ZS5oCmluZGV4IDFjMWI2OTYwOGVjOGE4YzExNzZkZTIwZTkyYmMwODQxZmEyNDlhNGMu
LjI0ODJkNmI5ODUwMTIwYjUwOTQ1ZjNlNmFlNjQ1YjFhMDJlYzBlZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVlc3RQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVxdWVzdFByaXZhdGUuaApAQCAtMzEsNyAr
MzEsOSBAQAogI2lmbmRlZiBXZWJVUkxSZXF1ZXN0UHJpdmF0ZV9oCiAjZGVmaW5lIFdlYlVSTFJl
cXVlc3RQcml2YXRlX2gKIAotbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7IH0KKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgorCisjaW5jbHVkZSAiV2Vi
VVJMUmVxdWVzdC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDgsNiArNTAsMjIgQEAg
cHVibGljOgogICAgIGJvb2wgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzOwogfTsKIAorY2xhc3Mg
V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lciA6IHB1YmxpYyBXZWJDb3JlOjpMb2FkZXJS
ZXF1ZXN0Q29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVVJMUmVx
dWVzdEV4dHJhRGF0YUNvbnRhaW5lcj4gY3JlYXRlKFdlYkNvcmU6OkxvYWRlclJlcXVlc3RDb250
ZXh0OjpUYXJnZXRUeXBlKTsKKworICAgIHZpcnR1YWwgfldlYlVSTFJlcXVlc3RFeHRyYURhdGFD
b250YWluZXIoKSB7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0OjpDb250ZXh0PiBjb3B5KCk7CisKKyAgICBXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGEq
IGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisgICAgdm9p
ZCBzZXRFeHRyYURhdGEoV2ViVVJMUmVxdWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEpIHsgQVNT
RVJUKCFtX2V4dHJhRGF0YS5nZXQoKSk7IG1fZXh0cmFEYXRhID0gYWRvcHRQdHIoZXh0cmFEYXRh
KTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlVSTFJlcXVlc3RFeHRyYURhdGFDb250
YWluZXIoV2ViQ29yZTo6TG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUpOworCisgICAg
T3duUHRyPFdlYlVSTFJlcXVlc3Q6OkV4dHJhRGF0YT4gbV9leHRyYURhdGE7Cit9OworCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYlVSTFJlcXVlc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvV2ViVVJMUmVxdWVzdFRlc3QuY3BwCmluZGV4IDIzNGQwMTQ4MWFiYTVjZmZjZTk2
MjUxYTFhM2I2YTAzYzJjOTRmYTUuLjgxNmRlNzYxMzUyODdmNTgzNWVhZDVhYWE3ZGY1MWU4YTg3
YjQyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVVJMUmVx
dWVzdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVVJMUmVx
dWVzdFRlc3QuY3BwCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflRl
c3RFeHRyYURhdGEoKSB7ICptX2FsaXZlID0gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgVGVzdEV4
dHJhRGF0YSogY29weSgpIHsgcmV0dXJuIDA7IH0KKwogcHJpdmF0ZToKICAgICBib29sKiBtX2Fs
aXZlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111790</attachid>
            <date>2011-10-20 09:15:42 -0700</date>
            <delta_ts>2012-05-18 00:18:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65855-20111020181540.patch</filename>
            <type>text/plain</type>
            <size>53454</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc2NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYzNkMGIzOTY0YmIzNWI1
OGEyNGYyMjJmM2JhMmNhY2FkMjBjMzVhLi41ZTE0YjNhODc1MzExZjc4ZGViNjQ2NjQ1MzcxNjc2
OGJmY2FkMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTEtMTAtMTkgIEpvY2hl
biBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgUmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6Q29udGV4dCBjbGFzcyB0aGF0IGlzIHBhcnQgb2YgYSBSZXNvdXJjZVJl
cXVlc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTg1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBDb250ZXh0IGlzIG9wYXF1ZSB0byB0aGUgY2xhc3NlcyBpbiBwbGF0Zm9ybS9uZXR3b3JrLiBJ
dCdzCisgICAgICAgIGltcGxlbWVudGVkIGluIExvYWRlclJlcXVlc3RDb250ZXh0LCBhbmQgY2Fy
cmllcyB0aGUgdGFyZ2V0VHlwZSBmaWVsZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TG9hZGVyUmVxdWVzdENvbnRleHQ6OkxvYWRlclJlcXVlc3RDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxvYWRlclJlcXVlc3RDb250ZXh0Ojpjb3B5KToKKyAgICAgICAgKiBsb2FkZXIv
TG9hZGVyUmVxdWVzdENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlclJlcXVlc3RD
b250ZXh0Ojp+TG9hZGVyUmVxdWVzdENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVy
UmVxdWVzdENvbnRleHQ6OnRhcmdldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyUmVx
dWVzdENvbnRleHQ6OnNldFRhcmdldFR5cGUpOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJSZXF1
ZXN0Q29udGV4dEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyUmVxdWVzdENvbnRl
eHQ6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGluZ0xvYWRlcjo6bG9hZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdM
b2FkZXI6OnNlbmRQaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnJlcG9ydENv
bnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbik6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNvdXJj
ZVR5cGVUb1RhcmdldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Ojpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6YWRvcHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29weURhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Q29udGV4dDo6fkNvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdDo6UmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtl
clNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjppbXBvcnRTY3Jp
cHRzKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OldvcmtlclNjcmlwdExvYWRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZVJlc291cmNlUmVxdWVzdCk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclNjcmlwdExvYWRlcjo6c2V0VGFyZ2V0VHlwZSk6CisgICAgICAgICogeG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVh
dGVSZXF1ZXN0KToKKwogMjAxMS0xMC0xNCAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVGhyb3R0bGUgcmF0ZSBvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hl
biBwYWdlIGlzIG5vdCB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDUwZTI1
ZTMyMDkwNjFjYzlmNDhhYWQ0ZDQ1OGE3OWY5YjliYTU0MGQuLjE4YmVmMDdkMGYyNTJkNThlNGE5
ODNmN2U3NzlkMmQ5YjJiZjU0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMTEtMTAtMTkgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgQWRkIGEgQ2hyb21pdW0gc3BlY2lmaWMgY2xhc3MgZGVyaXZpbmcgZnJv
bSBMb2FkZXJSZXNvdXJjZUNvbnRleHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTg1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgY2xhc3MgYWxsb3dzIHRoZSBlbWJlZGRlciB0byBhdHRhY2gg
YWRkaXRpb25hbCBkYXRhIHRvIGEgUmVzb3VyY2VSZXF1ZXN0LgorCisgICAgICAgICogV2ViS2l0
Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGE6OmNvcHkpOgorICAgICAgICAqIHNyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpzZXRUYXJnZXRUeXBlRnJvbUxv
YWRlcik6CisgICAgICAgICogc3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBz
cmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXI6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcik6CisgICAgICAgICog
c3JjL1dlYlVSTFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0RXh0
cmFEYXRhQ29udGFpbmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0
RXh0cmFEYXRhQ29udGFpbmVyOjpjb3B5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVz
dEV4dHJhRGF0YUNvbnRhaW5lcjo6V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OnRhcmdldFR5cGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxSZXF1ZXN0OjpzZXRUYXJnZXRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMUmVxdWVzdDo6ZXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdDo6
c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKiBzcmMvV2ViVVJMUmVxdWVzdFByaXZhdGUuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcjo6fldlYlVSTFJl
cXVlc3RFeHRyYURhdGFDb250YWluZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0
RXh0cmFEYXRhQ29udGFpbmVyOjpleHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxS
ZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVyOjpzZXRFeHRyYURhdGEpOgorICAgICAgICAqIHRlc3Rz
L1dlYlVSTFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdEV4dHJhRGF0YTo6
Y29weSk6CisKIDIwMTEtMTAtMTcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBXZWIgSW5zcGVjdG9yOiBkb24ndCBjaGVjayBmb3Ig
ZGVidWdnZXIgcGF1c2UgZGV0YWlscyBpbiBpbnRlcmFjdGl2ZSB1aSB0ZXN0cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCAwM2VhMTIyNDMzNmJjZWJmNGFhMmIzMTA3M2E5M2UwNzcwZGJjNDM0Li44
MGNjYjlkYjUwYTk0YmJjYzczN2ExNzc1YWU3OGJiNzk4OWY0NjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtOTE1LDYgKzkxNSw4IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwCiAgICAgbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAogICAgIGxv
YWRlci9MaW5rTG9hZGVyLmNwcAorICAgIGxvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAK
KyAgICBsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcAogICAgIGxvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCiAgICAg
bG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggODU0ZGFiMGQ3ZTE0ZDg3NTg3Y2FhZmU0ZDliNTA4MmY3YWI4Yzg3YS4u
ZjU1MjFjYzc0YTU1M2NiOTNkZDIxMmU0NmMwYjYyMjAwNzc0OWNhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0yMTc2LDYgKzIxNzYsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2Fk
ZXJDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0LmggXAor
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDk3OTUyYzFjMjAx
ZDM3ZTJkNjRhNWI3YjdlZDVlNTVlNTMwMDFjYzkuLjljZTg1NDVhMzRmZTdhYTY5ZGVlMzhlOGNk
MGQ3OGIyMDE2ZDk1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU2NCw2ICs1NjQsNyBAQAogICAg
ICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2xvYWRl
ci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQu
aCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgnLApAQCAtMjc4Miw2ICsyNzgzLDggQEAKICAgICAg
ICAgICAgICdsb2FkZXIvTGlua0xvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9MaW5r
TG9hZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9MaW5rTG9hZGVyQ2xpZW50LmgnLAorICAg
ICAgICAgICAgJ2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAnLAorICAgICAgICAgICAg
J2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5oJywKICAgICAgICAgICAgICdsb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwppbmRleCBiMGM0YmQ4MGE4NTc3NTQxZTkwZDg1OGM3MjlhYjQyMGFmYjEyOWRmLi4x
NWJlNjBlNzA4MzBjNTIyNzdiNDk1YzA3YTFkNWFlNDE0ZjkzN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtODk3LDYgKzg5Nyw4IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwIFwKICAgICBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvTGlua0xv
YWRlci5jcHAgXAorICAgIGxvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAgXAorICAgIGxv
YWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIFwKICAgICBsb2FkZXIvTWFpblJlc291
cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKICAgICBs
b2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjNjZDM3ZGVlNTczOWZmODM5Nzdj
NWNiYjI5NjY2YjlkZTMwMzczNi4uYmY5MGQ0ZTQyOWVkYTcyYzI2MjI4NzM5NWJmNDk3ZDE4M2Qz
N2FjYyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTI2Mzc0LDYgKzI2Mzc0LDE4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxMb2FkZXJSZXF1ZXN0Q29udGV4dC5jcHAiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxMb2Fk
ZXJSZXF1ZXN0Q29udGV4dC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1haW5S
ZXNvdXJjZUxvYWRlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNjZjc4MDcxNTgxOTYx
ZWJkMDI5NzQ4OGQ0ZTE2NGY4NzVjYzBkYzEuLjkzZGQwOWRjNTFiNDhlMjBjNWIxMTk4OTQ4MmY5
NDNjNDk4NTA5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTU4Niw2ICs1ODYsOCBAQAogCQkxQzgxQjk1QzBFOTczMzA4MDAy
NjZFMDcgLyogSW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzgxQjk1ODBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ2xp
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MUM4MUJBMDkwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4MUJBMDMwRTk3MzQ4
MzAwMjY2RTA3IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuY3BwICovOyB9OwogCQkxQzgxQkEwQTBF
OTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4MUJBMDQwRTk3MzQ4MzAwMjY2RTA3IC8q
IEphdmFTY3JpcHRDYWxsRnJhbWUuaCAqLzsgfTsKKwkJMUM5REM0M0UxNDRFM0Y1NzAwNTBFRjJB
IC8qIExvYWRlclJlcXVlc3RDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDOURDNDNDMTQ0RTNGNTcwMDUwRUYyQSAvKiBMb2FkZXJSZXF1
ZXN0Q29udGV4dC5jcHAgKi87IH07CisJCTFDOURDNDNGMTQ0RTNGNTcwMDUwRUYyQSAvKiBMb2Fk
ZXJSZXF1ZXN0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUM5REM0M0QxNDRFM0Y1NzAwNTBFRjJBIC8qIExvYWRlclJlcXVlc3RDb250ZXh0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUNB
MTlFMDUwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9vcE1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQTE5RTAzMERDMjU1OTUwMDY1QTk5NCAv
KiBFdmVudExvb3BNYWMubW0gKi87IH07CiAJCTFDQTE5RTE2MERDMjU1Q0EwMDY1QTk5NCAvKiBF
dmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQTE5RTE1MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3AuaCAqLzsgfTsKIAkJMUNBRjM0
ODEwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8q
IFdlYlNjcmlwdE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC01OTUsNiArNTk3LDcgQEAKIAkJMUNCNDIxNEIwQUYyQjJDQTAwODVBRDkx
IC8qIERPTUVsZW1lbnRJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNDkwQUM1RDUzNDAwNTMyNzBGIC8q
IERPTUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwogCQkxQ0I0MjE0QzBBRjJCMkNBMDA4NUFEOTEg
LyogRE9NSFRNTEVsZW1lbnRJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNTgwQUM1RDUzNDAwNTMyNzBG
IC8qIERPTUhUTUxFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJMUNCNDIxNEQwQUYyQjJDQTAw
ODVBRDkxIC8qIERPTVJhbmdlSW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MzhGMDVBMEFENzIyRjEwMDZBODFE
MSAvKiBET01SYW5nZUludGVybmFsLmggKi87IH07CisJCTFDQkRFQTE5MTQ0RkU4RjEwMDE5QjRG
MSAvKiBMb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCREVBMTgxNDRGRThGMTAwMTlCNEYxIC8qIExvYWRl
clJlcXVlc3RDb250ZXh0SW1wbC5jcHAgKi87IH07CiAJCTFDQ0E3MzIyMTBBREQ0NEEwMEZENDQw
RCAvKiBET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDQTczMjExMEFERDQzRTAw
RkQ0NDBEIC8qIERPTUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmggKi87IH07CiAJCTFDREMxNDA1
MEREMzkzNEMwMDZFQUNEMyAvKiBsb2NhbGl6ZWRTdHJpbmdzLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M2NEY1RjBEQ0ZCODRFMDA4MUVGM0Ig
LyogbG9jYWxpemVkU3RyaW5ncy5qcyAqLzsgfTsKIAkJMUNFMjRGOTcwRDdDQUYwRTAwN0UwNEMy
IC8qIFNjaGVkdWxlUGFpck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDRTI0Rjk2MEQ3Q0FGMEUwMDdFMDRDMiAvKiBTY2hlZHVsZVBhaXJNYWMu
bW0gKi87IH07CkBAIC03NjU0LDExICs3NjU3LDE0IEBACiAJCTFDODFCQTA0MEU5NzM0ODMwMDI2
NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEphdmFTY3JpcHRDYWxsRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUM4MUJBMDUwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEphdmFTY3JpcHRDYWxsRnJhbWUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzkwNERGOTBCQTlEMkM4MDA4MUU5RDAgLyogVmVyc2lvbi54
Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBWZXJzaW9uLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzlEQzQzQzE0NEUzRjU3MDA1MEVGMkEg
LyogTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzlEQzQzRDE0NEUzRjU3MDA1MEVGMkEgLyogTG9hZGVyUmVxdWVzdENvbnRleHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGVyUmVxdWVzdENvbnRleHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0
IC8qIEV2ZW50TG9vcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEV2ZW50TG9vcE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMTlF
MTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFdmVudExvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNB
RjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTY3JpcHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlNjcmlwdE9iamVj
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBRjM0ODAwQTZDNDA1MjAwQUJF
MDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0JERUExODE0NEZFOEYxMDAxOUI0RjEgLyogTG9hZGVyUmVxdWVzdENvbnRleHRJ
bXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRlclJlcXVl
c3RDb250ZXh0SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQ0E3MzIx
MTBBREQ0M0UwMEZENDQwRCAvKiBET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0QwQjYyMDBBQUJEQjUwMDBEMEEzRkYgLyog
UHVibGljRE9NSW50ZXJmYWNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
dWJsaWNET01JbnRlcmZhY2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDREQ0
NUU0MEJBOUM4NDYwMEY5MDE0NyAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTk4NjEsNiArMTk4NjcsOSBAQAogCQkJCTk4Q0U0MzI1MTI5RTAw
QkQwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmNwcCAqLywKIAkJCQk5OENFNDMyOTEyOUUwMEU1MDA1
ODIxREMgLyogTGlua0xvYWRlci5oICovLAogCQkJCTk4NDI2NEVGMTJENTI4MEEwMDBEODhBNCAv
KiBMaW5rTG9hZGVyQ2xpZW50LmggKi8sCisJCQkJMUM5REM0M0MxNDRFM0Y1NzAwNTBFRjJBIC8q
IExvYWRlclJlcXVlc3RDb250ZXh0LmNwcCAqLywKKwkJCQkxQzlEQzQzRDE0NEUzRjU3MDA1MEVG
MkEgLyogTG9hZGVyUmVxdWVzdENvbnRleHQuaCAqLywKKwkJCQkxQ0JERUExODE0NEZFOEYxMDAx
OUI0RjEgLyogTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcCAqLywKIAkJCQk5M0UyMjdEQzBB
RjU4OUFEMDBENDgzMjQgLyogTWFpblJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcy
OTBBREJBNURFMDBBNDU1NEQgLyogTWFpblJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJOTNDQ0Yw
NUYwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLApAQCAtMjM1NDcs
NiArMjM1NTYsNyBAQAogCQkJCTk4NUJCOTZFMTNBOTQwNTgwMDdBMEI2OSAvKiBMaW5rUmVsQXR0
cmlidXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMUFENEU1RjEzQTEyQTBCMDA4NDZCMjcgLyog
TG9hZGFibGVUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzMyMEFEQkE1REUw
MEE0NTU0RCAvKiBMb2FkZXJOU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUM5REM0
M0YxNDRFM0Y1NzAwNTBFRjJBIC8qIExvYWRlclJlcXVlc3RDb250ZXh0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3RUU2ODQ2OTEyRDI2RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVuTG9vcENGLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNkU4MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50
R3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NjMzQTcyNjEzRDhCMzNBMDA4
NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NjIx
LDYgKzI2NjMxLDggQEAKIAkJCQk5ODVCQjk2RDEzQTk0MDU4MDA3QTBCNjkgLyogTGlua1JlbEF0
dHJpYnV0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMUFENEU1RTEzQTEyQTBCMDA4NDZCMjcg
LyogTG9hZGFibGVUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU2RDM3MzMwQURC
QTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUM5REM0M0UxNDRFM0Y1NzAwNTBFRjJBIC8qIExvYWRlclJlcXVlc3RDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDQkRFQTE5MTQ0RkU4RjEwMDE5QjRGMSAvKiBMb2FkZXJSZXF1ZXN0
Q29udGV4dEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0VFNjg0NjgxMkQyNkUzODAwRTc5
NDE1IC8qIExvYWRlclJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNkU4MUVFQzBB
QjVEQTk3MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzYzM0E3MjcxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFw
cGluZ0RlZmF1bHQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTG9hZGVyUmVxdWVzdENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xvYWRlclJlcXVlc3RDb250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzk2NDBkOWYxYTdlOWE3OWNj
NmMwZGNmNTVjYzFjMzY5ZWIxNzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0LmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvYWRlclJlcXVlc3RDb250ZXh0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworTG9hZGVyUmVxdWVzdENvbnRleHQ6OkxvYWRlclJlcXVlc3RDb250ZXh0
KFRhcmdldFR5cGUgdGFyZ2V0VHlwZSkKKyAgICA6IG1fdGFyZ2V0VHlwZSh0YXJnZXRUeXBlKQor
eworfQorCitQYXNzUmVmUHRyPFJlc291cmNlUmVxdWVzdDo6Q29udGV4dD4gTG9hZGVyUmVxdWVz
dENvbnRleHQ6OmNvcHkoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTG9hZGVyUmVxdWVz
dENvbnRleHQobV90YXJnZXRUeXBlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclJlcXVlc3RDb250ZXh0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MThkN2I0NDdmOTEyMTEyNzQyZTkzZTNjYWU0MTU4MDQyZGNmMGQ1MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dC5oCkBAIC0wLDAg
KzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIExvYWRlclJlcXVlc3RDb250ZXh0X2gKKyNkZWZpbmUgTG9hZGVyUmVx
dWVzdENvbnRleHRfaAorCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTG9hZGVyUmVxdWVzdENvbnRleHQgOiBwdWJsaWMgUmVzb3Vy
Y2VSZXF1ZXN0OjpDb250ZXh0IHsKK3B1YmxpYzoKKworICAgIC8vIFRoZSB0eXBlIG9mIHRoaXMg
UmVzb3VyY2VSZXF1ZXN0LCBiYXNlZCBvbiBob3cgdGhlIHJlc291cmNlIHdpbGwgYmUgdXNlZC4K
KyAgICBlbnVtIFRhcmdldFR5cGUgeworICAgICAgICBUYXJnZXRJc01haW5GcmFtZSwKKyAgICAg
ICAgVGFyZ2V0SXNTdWJmcmFtZSwKKyAgICAgICAgVGFyZ2V0SXNTdWJyZXNvdXJjZSwgLy8gUmVz
b3VyY2UgaXMgYSBnZW5lcmljIHN1YnJlc291cmNlLiAoR2VuZXJhbGx5IGEgc3BlY2lmaWMgdHlw
ZSBzaG91bGQgYmUgc3BlY2lmaWVkKQorICAgICAgICBUYXJnZXRJc1N0eWxlU2hlZXQsCisgICAg
ICAgIFRhcmdldElzU2NyaXB0LAorICAgICAgICBUYXJnZXRJc0ZvbnRSZXNvdXJjZSwKKyAgICAg
ICAgVGFyZ2V0SXNJbWFnZSwKKyAgICAgICAgVGFyZ2V0SXNPYmplY3QsCisgICAgICAgIFRhcmdl
dElzTWVkaWEsCisgICAgICAgIFRhcmdldElzV29ya2VyLAorICAgICAgICBUYXJnZXRJc1NoYXJl
ZFdvcmtlciwKKyAgICAgICAgVGFyZ2V0SXNQcmVmZXRjaCwKKyAgICAgICAgVGFyZ2V0SXNQcmVy
ZW5kZXIsCisgICAgICAgIFRhcmdldElzRmF2aWNvbiwKKyAgICAgICAgVGFyZ2V0SXNYSFIsCisg
ICAgICAgIFRhcmdldElzQ3VlLAorICAgIH07CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2Fk
ZXJSZXF1ZXN0Q29udGV4dD4gY3JlYXRlKFRhcmdldFR5cGUpOworCisgICAgdmlydHVhbCB+TG9h
ZGVyUmVxdWVzdENvbnRleHQoKSB7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVzb3VyY2VS
ZXF1ZXN0OjpDb250ZXh0PiBjb3B5KCk7CisKKyAgICAvLyBXaGF0IHRoaXMgcmVxdWVzdCBpcyBm
b3IuCisgICAgVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRU
eXBlOyB9CisgICAgdm9pZCBzZXRUYXJnZXRUeXBlKFRhcmdldFR5cGUgdGFyZ2V0VHlwZSkgeyBt
X3RhcmdldFR5cGUgPSB0YXJnZXRUeXBlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBM
b2FkZXJSZXF1ZXN0Q29udGV4dChUYXJnZXRUeXBlKTsKKworcHJpdmF0ZToKKyAgICBUYXJnZXRU
eXBlIG1fdGFyZ2V0VHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIExvYWRlclJlcXVlc3RDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTE0ODdmMWRlYTc0MjQ5
YmE3ZDNjODZlYmYwZGI3N2U0MDc5MjFjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Mb2FkZXJSZXF1ZXN0Q29udGV4dEltcGwuY3BwCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9hZGVyUmVxdWVzdENvbnRleHQuaCIKKwor
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQorI2Vycm9yIENocm9taXVtIHNob3VsZCBub3QgY29tcGls
ZSB0aGlzIGZpbGUKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8
TG9hZGVyUmVxdWVzdENvbnRleHQ+IExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUoVGFyZ2V0
VHlwZSB0YXJnZXRUeXBlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTG9hZGVyUmVxdWVz
dENvbnRleHQodGFyZ2V0VHlwZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggMGU1Mzc4NDdlNDE3ZGMxNmNjOTI1MWU2
ZjE3OTEzMWJjYjU0NGJmYS4uMGNkN2M0NzYzOTQ4NjAyOTc3YzhmZjRmZDMxMzE4ZWRlNzI1MDc1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0
Q29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgpAQCAtNTUsOSArNTYsNyBAQCB2b2lkIFBp
bmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKICAgICB9
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwotI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQotICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElz
SW1hZ2UpOwotI2VuZGlmCisgICAgcmVxdWVzdC5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RDb250
ZXh0OjpjcmVhdGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzSW1hZ2UpKTsKICAgICBy
ZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTAiKTsK
ICAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRlUmVmZXJyZXIocmVxdWVzdC51cmwo
KSwgZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpKQogICAgICAgICByZXF1ZXN0
LnNldEhUVFBSZWZlcnJlcihmcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSk7CkBA
IC03Myw5ICs3Miw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lKiBmcmFtZSwg
Y29uc3QgS1VSTCYgdXJsKQogdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSogZnJhbWUs
IGNvbnN0IEtVUkwmIHBpbmdVUkwsIGNvbnN0IEtVUkwmIGRlc3RpbmF0aW9uVVJMKQogewogICAg
IFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHBpbmdVUkwpOwotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQotICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3Vi
cmVzb3VyY2UpOwotI2VuZGlmCisgICAgcmVxdWVzdC5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RD
b250ZXh0OjpjcmVhdGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzU3VicmVzb3VyY2Up
KTsKICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiKTsKICAgICByZXF1ZXN0LnNldEhU
VFBDb250ZW50VHlwZSgidGV4dC9waW5nIik7CiAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShGb3Jt
RGF0YTo6Y3JlYXRlKCJQSU5HIikpOwpAQCAtMTAxLDkgKzk4LDcgQEAgdm9pZCBQaW5nTG9hZGVy
OjpzZW5kUGluZyhGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHBpbmdVUkwsIGNvbnN0IEtVUkwm
IGRlc3RpbmEKIHZvaWQgUGluZ0xvYWRlcjo6cmVwb3J0Q29udGVudFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgcmVwb3J0VVJMLCBQYXNzUmVmUHRyPEZv
cm1EYXRhPiByZXBvcnQpCiB7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocmVwb3J0VVJM
KTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVz
b3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlKTsKLSNlbmRpZgorICAgIHJlcXVlc3Qu
c2V0Q29udGV4dChMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRlKExvYWRlclJlcXVlc3RDb250
ZXh0OjpUYXJnZXRJc1N1YnJlc291cmNlKSk7CiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQ
T1NUIik7CiAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3
LWZvcm0tdXJsZW5jb2RlZCIpOwogICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkocmVwb3J0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAKaW5kZXggZDM0Y2ViNGRhNDIyMTMxNzA2ZGU3YjQwNjJiYTlkYmY0N2M3MjVkOC4uMDg5
NmUxMGYyOGNmODY3NjFiZTk2ZDAwMjc0YTM1ZmMzNTA2NjBjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1
ZGUgIlJlc291cmNlSGFuZGxlLmgiCkBAIC00NSw0MCArNDYsMzggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1zdGF0aWMgUmVzb3VyY2VSZXF1ZXN0
OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRSZXNvdXJj
ZTo6VHlwZSB0eXBlKQorc3RhdGljIExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRUeXBlIGNh
Y2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQog
ewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxl
U2hlZXQ6CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5
bGVTaGVldDoKICNlbmRpZgotICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1N0eWxlU2hlZXQ7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0
SXNTdHlsZVNoZWV0OwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDogCi0gICAgICAg
IHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU2NyaXB0OworICAgICAgICByZXR1cm4g
TG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzU2NyaXB0OwogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OkZvbnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFy
Z2V0SXNGb250UmVzb3VyY2U7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6
VGFyZ2V0SXNGb250UmVzb3VyY2U7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNv
dXJjZToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNJbWFnZTsKKyAg
ICAgICAgcmV0dXJuIExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc0ltYWdlOwogICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgotICAgICAgICByZXR1cm4gUmVzb3VyY2VS
ZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOyAgICAKKyAgICAgICAgcmV0dXJuIExvYWRlclJl
cXVlc3RDb250ZXh0OjpUYXJnZXRJc1N1YnJlc291cmNlOyAgICAKICNpZiBFTkFCTEUoTElOS19Q
UkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6Ci0gICAgICAg
IHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJlZmV0Y2g7CisgICAgICAgIHJldHVy
biBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNQcmVmZXRjaDsKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgotICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0
OjpUYXJnZXRJc1ByZXJlbmRlcjsKKyAgICAgICAgcmV0dXJuIExvYWRlclJlcXVlc3RDb250ZXh0
OjpUYXJnZXRJc1ByZXJlbmRlcjsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVz
b3VyY2U6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3VicmVzb3Vy
Y2U7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNTdWJyZXNv
dXJjZTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpDdWVSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFy
Z2V0SXNDdWU7CisgICAgICAgIHJldHVybiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXND
dWU7CiAjZW5kaWYKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJyZXNvdXJjZTsKKyAgICByZXR1cm4gTG9hZGVy
UmVxdWVzdENvbnRleHQ6OlRhcmdldElzU3VicmVzb3VyY2U7CiB9Ci0jZW5kaWYKIAogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAg
OiBtX2NhY2hlZFJlc291cmNlTG9hZGVyKGNhY2hlZFJlc291cmNlTG9hZGVyKQpAQCAtOTcsOSAr
OTYsNyBAQCBQYXNzT3duUHRyPENhY2hlZFJlc291cmNlUmVxdWVzdD4gQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0Ojpsb2FkKENhY2hlZFJlc291cmNlTG9hZAogICAgIE93blB0cjxDYWNoZWRSZXNvdXJj
ZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNh
Y2hlZFJlc291cmNlTG9hZGVyLCByZXNvdXJjZSkpOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
c291cmNlUmVxdWVzdCA9IHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKTsKLSNpZiBQTEFURk9S
TShDSFJPTUlVTSkKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0VGFyZ2V0VHlwZShjYWNoZWRSZXNv
dXJjZVR5cGVUb1RhcmdldFR5cGUocmVzb3VyY2UtPnR5cGUoKSkpOwotI2VuZGlmCisgICAgcmVz
b3VyY2VSZXF1ZXN0LnNldENvbnRleHQoTG9hZGVyUmVxdWVzdENvbnRleHQ6OmNyZWF0ZShjYWNo
ZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUocmVzb3VyY2UtPnR5cGUoKSkpKTsKIAogICAgIGlm
ICghcmVzb3VyY2UtPmFjY2VwdCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0
LnNldEhUVFBBY2NlcHQocmVzb3VyY2UtPmFjY2VwdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCmluZGV4IDll
NTQwNDg4ZTRkMzc4MGNhYzgyN2FjYTUxOGUwMWYxMzY4ODdhNTAuLjM0NGI3YjEyYzVmODE0ZTVl
MDVmZmI5ZmEwNDBlYTkyNjZjMjkwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcApAQCAtNzQsNiArNzQsNyBA
QCBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4gUmVzb3VyY2VSZXF1ZXN0QmFzZTo6YWRvcHQo
UGFzc093blB0cjxDcm9zc1RocmVhZFJlcwogI2VuZGlmCiAgICAgcmVxdWVzdC0+c2V0SFRUUEJv
ZHkoZGF0YS0+bV9odHRwQm9keSk7CiAgICAgcmVxdWVzdC0+c2V0QWxsb3dDb29raWVzKGRhdGEt
Pm1fYWxsb3dDb29raWVzKTsKKyAgICByZXF1ZXN0LT5zZXRDb250ZXh0KGRhdGEtPm1fY29udGV4
dCk7CiAgICAgcmVxdWVzdC0+ZG9QbGF0Zm9ybUFkb3B0KGRhdGEpOwogICAgIHJldHVybiByZXF1
ZXN0LnJlbGVhc2UoKTsKIH0KQEAgLTk5LDYgKzEwMCw4IEBAIFBhc3NPd25QdHI8Q3Jvc3NUaHJl
YWRSZXNvdXJjZVJlcXVlc3REYXRhPiBSZXNvdXJjZVJlcXVlc3RCYXNlOjpjb3B5RGF0YSgpIGNv
bnN0CiAgICAgaWYgKG1faHR0cEJvZHkpCiAgICAgICAgIGRhdGEtPm1faHR0cEJvZHkgPSBtX2h0
dHBCb2R5LT5kZWVwQ29weSgpOwogICAgIGRhdGEtPm1fYWxsb3dDb29raWVzID0gbV9hbGxvd0Nv
b2tpZXM7CisgICAgaWYgKG1fY29udGV4dCkKKyAgICAgICAgZGF0YS0+bV9jb250ZXh0ID0gbV9j
b250ZXh0LT5jb3B5KCk7CiAgICAgcmV0dXJuIGFzUmVzb3VyY2VSZXF1ZXN0KCkuZG9QbGF0Zm9y
bUNvcHlEYXRhKGRhdGEucmVsZWFzZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAppbmRleCA2YjllODgxMjky
ZmY2YTlhYzViYjczNGMzOGVlZjNiNmE5NmE3MmIyLi4yZDYxOTY0NjkzMjU1YWE5ZWVhNmY5YTEw
MDNlMjZkNGNlZDI1ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtNTEsNiArNTEsMTIgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdEJhc2UgewogICAgICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CisgICAgICAgIGNsYXNzIENvbnRleHQg
OiBwdWJsaWMgUmVmQ291bnRlZDxDb250ZXh0PiB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAg
ICAgIHZpcnR1YWwgfkNvbnRleHQoKSB7IH0KKyAgICAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxDb250ZXh0PiBjb3B5KCkgPSAwOworICAgICAgICB9OworCiAgICAgICAgIHN0YXRpYyBQYXNz
T3duUHRyPFJlc291cmNlUmVxdWVzdD4gYWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGE+KTsKIAogICAgICAgICAvLyBHZXRzIGEgY29weSBvZiB0aGUgZGF0YSBz
dWl0YWJsZSBmb3IgcGFzc2luZyB0byBhbm90aGVyIHRocmVhZC4KQEAgLTEzMyw2ICsxMzksMTEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHJlcG9ydFJhd0hlYWRlcnMoKSBj
b25zdCB7IHJldHVybiBtX3JlcG9ydFJhd0hlYWRlcnM7IH0KICAgICAgICAgdm9pZCBzZXRSZXBv
cnRSYXdIZWFkZXJzKGJvb2wgcmVwb3J0UmF3SGVhZGVycykgeyBtX3JlcG9ydFJhd0hlYWRlcnMg
PSByZXBvcnRSYXdIZWFkZXJzOyB9CiAKKyAgICAgICAgLy8gSGlnaGVyLWxldmVsIGNvbnRleHQg
YXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdC4KKyAgICAgICAgQ29udGV4dCogY29udGV4dCgp
IGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorICAgICAgICB2b2lkIHNldENvbnRl
eHQoUGFzc1JlZlB0cjxDb250ZXh0PiBjb250ZXh0KSB7IG1fY29udGV4dCA9IGNvbnRleHQ7IH0K
KworCiAgICAgICAgIHN0YXRpYyBkb3VibGUgZGVmYXVsdFRpbWVvdXRJbnRlcnZhbCgpOyAvLyBN
YXkgcmV0dXJuIDAgd2hlbiB1c2luZyBwbGF0Zm9ybSBkZWZhdWx0LgogICAgICAgICBzdGF0aWMg
dm9pZCBzZXREZWZhdWx0VGltZW91dEludGVydmFsKGRvdWJsZSk7CiAKQEAgLTE5NSw2ICsyMDYs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiBhc1Jlc291cmNlUmVxdWVzdCgpIGNvbnN0OwogCisgICAgICAgIFJlZlB0
cjxDb250ZXh0PiBtX2NvbnRleHQ7CisKICAgICAgICAgc3RhdGljIGRvdWJsZSBzX2RlZmF1bHRU
aW1lb3V0SW50ZXJ2YWw7CiAgICAgfTsKIApAQCAtMjIxLDYgKzIzNCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRhPiBtX2h0dHBCb2R5OwogICAgICAgICBi
b29sIG1fYWxsb3dDb29raWVzOwogICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9y
aXR5OworICAgICAgICBSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0QmFzZTo6Q29udGV4dD4gbV9jb250
ZXh0OwogICAgIH07CiAgICAgCiAgICAgdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29u
bmVjdGlvbkNvdW50UGVySG9zdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IDI1NDFk
ZTc2OTc4NjAzM2Q0ODJlN2Y2MzQ2OWMwYTBmNWVjMTFmOTAuLjUxOWM2M2Y0YzM3MDUzNzI3ZDMz
NzQ2NWU3ZjNhOTBiNjNlMjIxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHAKQEAgLTQ0LDcg
KzQ0LDYgQEAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IFJlc291
cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKFAKICAgICBkYXRhLT5tX2FwcENhY2hlSG9z
dElEID0gbV9hcHBDYWNoZUhvc3RJRDsKICAgICBkYXRhLT5tX2hhc1VzZXJHZXN0dXJlID0gbV9o
YXNVc2VyR2VzdHVyZTsKICAgICBkYXRhLT5tX2Rvd25sb2FkVG9GaWxlID0gbV9kb3dubG9hZFRv
RmlsZTsKLSAgICBkYXRhLT5tX3RhcmdldFR5cGUgPSBtX3RhcmdldFR5cGU7CiAgICAgcmV0dXJu
IGRhdGE7CiB9CiAKQEAgLTU1LDcgKzU0LDYgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvUGxh
dGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4KICAg
ICBtX2FwcENhY2hlSG9zdElEID0gZGF0YS0+bV9hcHBDYWNoZUhvc3RJRDsKICAgICBtX2hhc1Vz
ZXJHZXN0dXJlID0gZGF0YS0+bV9oYXNVc2VyR2VzdHVyZTsKICAgICBtX2Rvd25sb2FkVG9GaWxl
ID0gZGF0YS0+bV9kb3dubG9hZFRvRmlsZTsKLSAgICBtX3RhcmdldFR5cGUgPSBkYXRhLT5tX3Rh
cmdldFR5cGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5o
CmluZGV4IGMwMWVkZDMwNGIwZTZiMGUwYzkyZDA4ZjE4ZTU2YWM0ZDAxMzM3YTIuLmFjYzI4NDQ5
NjNhYjAwOWQ1NjQxNzVjYjI3ZmFhZjBmOTAyMDM5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaApA
QCAtMzksMzAgKzM5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0IDogcHVibGljIFJlc291cmNlUmVxdWVzdEJhc2UgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgLy8gVGhlIHR5cGUgb2YgdGhpcyBSZXNvdXJjZVJlcXVlc3QsIGJhc2VkIG9uIGhvdyB0
aGUgcmVzb3VyY2Ugd2lsbCBiZSB1c2VkLgotICAgICAgICBlbnVtIFRhcmdldFR5cGUgewotICAg
ICAgICAgICAgVGFyZ2V0SXNNYWluRnJhbWUsCi0gICAgICAgICAgICBUYXJnZXRJc1N1YmZyYW1l
LAotICAgICAgICAgICAgVGFyZ2V0SXNTdWJyZXNvdXJjZSwgLy8gUmVzb3VyY2UgaXMgYSBnZW5l
cmljIHN1YnJlc291cmNlLiAoR2VuZXJhbGx5IGEgc3BlY2lmaWMgdHlwZSBzaG91bGQgYmUgc3Bl
Y2lmaWVkKQotICAgICAgICAgICAgVGFyZ2V0SXNTdHlsZVNoZWV0LAotICAgICAgICAgICAgVGFy
Z2V0SXNTY3JpcHQsCi0gICAgICAgICAgICBUYXJnZXRJc0ZvbnRSZXNvdXJjZSwKLSAgICAgICAg
ICAgIFRhcmdldElzSW1hZ2UsCi0gICAgICAgICAgICBUYXJnZXRJc09iamVjdCwKLSAgICAgICAg
ICAgIFRhcmdldElzTWVkaWEsCi0gICAgICAgICAgICBUYXJnZXRJc1dvcmtlciwKLSAgICAgICAg
ICAgIFRhcmdldElzU2hhcmVkV29ya2VyLAotICAgICAgICAgICAgVGFyZ2V0SXNQcmVmZXRjaCwK
LSAgICAgICAgICAgIFRhcmdldElzUHJlcmVuZGVyLAotICAgICAgICAgICAgVGFyZ2V0SXNGYXZp
Y29uLAotICAgICAgICAgICAgVGFyZ2V0SXNYSFIsCi0gICAgICAgICAgICBUYXJnZXRJc0N1ZSwK
LSAgICAgICAgfTsKLQotICAgICAgICBjbGFzcyBFeHRyYURhdGEgOiBwdWJsaWMgUmVmQ291bnRl
ZDxFeHRyYURhdGE+IHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgdmlydHVhbCB+RXh0
cmFEYXRhKCkgeyB9Ci0gICAgICAgIH07CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0
IFN0cmluZyYgdXJsKSAKICAgICAgICAgICAgIDogUmVzb3VyY2VSZXF1ZXN0QmFzZShLVVJMKFBh
cnNlZFVSTFN0cmluZywgdXJsKSwgVXNlUHJvdG9jb2xDYWNoZVBvbGljeSkKQEAgLTcxLDcgKzQ3
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2FwcENhY2hlSG9zdElE
KDApCiAgICAgICAgICAgICAsIG1faGFzVXNlckdlc3R1cmUoZmFsc2UpCiAgICAgICAgICAgICAs
IG1fZG93bmxvYWRUb0ZpbGUoZmFsc2UpCi0gICAgICAgICAgICAsIG1fdGFyZ2V0VHlwZShUYXJn
ZXRJc1N1YnJlc291cmNlKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtODIsNyArNTcsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fYXBwQ2FjaGVIb3N0SUQoMCkK
ICAgICAgICAgICAgICwgbV9oYXNVc2VyR2VzdHVyZShmYWxzZSkKICAgICAgICAgICAgICwgbV9k
b3dubG9hZFRvRmlsZShmYWxzZSkKLSAgICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElz
U3VicmVzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAgfQogCkBAIC05Myw3ICs2Nyw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9hcHBDYWNoZUhvc3RJRCgwKQogICAg
ICAgICAgICAgLCBtX2hhc1VzZXJHZXN0dXJlKGZhbHNlKQogICAgICAgICAgICAgLCBtX2Rvd25s
b2FkVG9GaWxlKGZhbHNlKQotICAgICAgICAgICAgLCBtX3RhcmdldFR5cGUoVGFyZ2V0SXNTdWJy
ZXNvdXJjZSkKICAgICAgICAgewogICAgICAgICAgICAgc2V0SFRUUFJlZmVycmVyKHJlZmVycmVy
KTsKICAgICAgICAgfQpAQCAtMTA1LDcgKzc4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAgICAgLCBtX2FwcENhY2hlSG9zdElEKDApCiAgICAgICAgICAgICAsIG1faGFzVXNlckdl
c3R1cmUoZmFsc2UpCiAgICAgICAgICAgICAsIG1fZG93bmxvYWRUb0ZpbGUoZmFsc2UpCi0gICAg
ICAgICAgICAsIG1fdGFyZ2V0VHlwZShUYXJnZXRJc1N1YnJlc291cmNlKQogICAgICAgICB7CiAg
ICAgICAgIH0KIApAQCAtMTMyLDE0ICsxMDQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGJvb2wgZG93bmxvYWRUb0ZpbGUoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2FkVG9GaWxl
OyB9CiAgICAgICAgIHZvaWQgc2V0RG93bmxvYWRUb0ZpbGUoYm9vbCBkb3dubG9hZFRvRmlsZSkg
eyBtX2Rvd25sb2FkVG9GaWxlID0gZG93bmxvYWRUb0ZpbGU7IH0KIAotICAgICAgICAvLyBFeHRy
YSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3QuCi0gICAgICAgIEV4dHJhRGF0YSog
ZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRyYURhdGEuZ2V0KCk7IH0KLSAgICAgICAg
dm9pZCBzZXRFeHRyYURhdGEoUGFzc1JlZlB0cjxFeHRyYURhdGE+IGV4dHJhRGF0YSkgeyBtX2V4
dHJhRGF0YSA9IGV4dHJhRGF0YTsgfQotCi0gICAgICAgIC8vIFdoYXQgdGhpcyByZXF1ZXN0IGlz
IGZvci4KLSAgICAgICAgVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV90
YXJnZXRUeXBlOyB9Ci0gICAgICAgIHZvaWQgc2V0VGFyZ2V0VHlwZShUYXJnZXRUeXBlIHR5cGUp
IHsgbV90YXJnZXRUeXBlID0gdHlwZTsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5k
IGNsYXNzIFJlc291cmNlUmVxdWVzdEJhc2U7CiAKQEAgLTE1NCw4ICsxMTgsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtX2FwcENhY2hlSG9zdElEOwogICAgICAgICBib29s
IG1faGFzVXNlckdlc3R1cmU7CiAgICAgICAgIGJvb2wgbV9kb3dubG9hZFRvRmlsZTsKLSAgICAg
ICAgUmVmUHRyPEV4dHJhRGF0YT4gbV9leHRyYURhdGE7Ci0gICAgICAgIFRhcmdldFR5cGUgbV90
YXJnZXRUeXBlOwogICAgIH07CiAKICAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVl
c3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgewpAQCAt
MTY0LDcgKzEyNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50IG1fYXBwQ2Fj
aGVIb3N0SUQ7CiAgICAgICAgIGJvb2wgbV9oYXNVc2VyR2VzdHVyZTsKICAgICAgICAgYm9vbCBt
X2Rvd25sb2FkVG9GaWxlOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgbV90
YXJnZXRUeXBlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5j
cHAKaW5kZXggNDdiNTQyOGFhMTI0MDE2ZThlOGU0ZGU5MmU0ZTg3MjA4ZWEzYWU2Ni4uYThjMzRk
ZWEyOGI2M2MzYzE5ZTA4NTUxNjM1MTBjMDViOTMyY2MzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKQEAg
LTI5Nyw5ICsyOTcsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZChjb25z
dCBLVVJMJiB1cmwpCiAKICAgICAvLyBNYXJrIHRoaXMgb2JqZWN0IGFzIGFjdGl2ZSBmb3IgdGhl
IGR1cmF0aW9uIG9mIHRoZSBsb2FkLgogICAgIG1fc2NyaXB0TG9hZGVyID0gV29ya2VyU2NyaXB0
TG9hZGVyOjpjcmVhdGUoKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBtX3NjcmlwdExv
YWRlci0+c2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU2hhcmVkV29ya2Vy
KTsKLSNlbmRpZgorICAgIG1fc2NyaXB0TG9hZGVyLT5zZXRUYXJnZXRUeXBlKExvYWRlclJlcXVl
c3RDb250ZXh0OjpUYXJnZXRJc1NoYXJlZFdvcmtlcik7CiAgICAgbV9zY3JpcHRMb2FkZXItPmxv
YWRBc3luY2hyb25vdXNseShtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB1cmws
IERlbnlDcm9zc09yaWdpblJlcXVlc3RzLCB0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuY3BwCmluZGV4IDlkNDMwOTBmOGI5YWU3ZDczNzQwM2ExZDdjMzUyYmI0ZGRmMjVkZjguLmRh
YzJlODU0MzhlMzI3NTgyNmQ4YjQyNzNlYWM5ZjgwMTllY2JiYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5jcHAKQEAgLTY4LDkgKzY4LDcgQEAgUGFzc1JlZlB0cjxXb3JrZXI+IFdvcmtlcjo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYKICAg
ICB3b3JrZXItPnNldFBlbmRpbmdBY3Rpdml0eSh3b3JrZXIuZ2V0KCkpOwogCiAgICAgd29ya2Vy
LT5tX3NjcmlwdExvYWRlciA9IFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRlKCk7Ci0jaWYgUExB
VEZPUk0oQ0hST01JVU0pCi0gICAgd29ya2VyLT5tX3NjcmlwdExvYWRlci0+c2V0VGFyZ2V0VHlw
ZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzV29ya2VyKTsKLSNlbmRpZgorICAgIHdvcmtlci0+
bV9zY3JpcHRMb2FkZXItPnNldFRhcmdldFR5cGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdl
dElzV29ya2VyKTsKICAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3Vz
bHkoY29udGV4dCwgc2NyaXB0VVJMLCBEZW55Q3Jvc3NPcmlnaW5SZXF1ZXN0cywgd29ya2VyLmdl
dCgpKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV29ya2VyKGNv
bnRleHQsIHdvcmtlci0+YXNJRCgpLCBzY3JpcHRVUkwuc3RyaW5nKCksIGZhbHNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IDAzZDQ4OGMzM2JmYWU4MDBm
OTA0ODgwOGZhYWFiMjNlMzZhM2VhMDYuLmIxZTFhYTQwMzYyMmQyMGE0NjNmNDI4M2VmMzg3ZmY1
NTMxOGVjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAt
MjY1LDkgKzI2NSw3IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6aW1wb3J0U2NyaXB0cyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICBmb3IgKFZlY3Rv
cjxLVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjb21wbGV0ZWRVUkxzLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkgewogICAgICAgICBSZWZQdHI8V29ya2VyU2NyaXB0TG9hZGVyPiBzY3JpcHRM
b2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKSk7Ci0jaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0gICAgICAgIHNjcmlwdExvYWRlci0+c2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzU2NyaXB0KTsKLSNlbmRpZgorICAgICAgICBzY3JpcHRMb2FkZXItPnNldFRhcmdl
dFR5cGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzU2NyaXB0KTsKICAgICAgICAgc2Ny
aXB0TG9hZGVyLT5sb2FkU3luY2hyb25vdXNseShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICpp
dCwgQWxsb3dDcm9zc09yaWdpblJlcXVlc3RzKTsKIAogICAgICAgICAvLyBJZiB0aGUgZmV0Y2hp
bmcgYXR0ZW1wdCBmYWlsZWQsIHRocm93IGEgTkVUV09SS19FUlIgZXhjZXB0aW9uIGFuZCBhYm9y
dCBhbGwgdGhlc2Ugc3RlcHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5jcHAKaW5kZXggOTU0NzZmODc4NTA0ZDhkNGU1ODJhYTU1ODg0ZmE2YmRlZmIzMTAw
Yy4uMTEzOTI0ODFiN2U5N2Y3ZWNkOWU2ZDJhY2NiZjU1MjQ0OTU4ZGQzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtNTEsOSArNTEsNyBA
QCBXb3JrZXJTY3JpcHRMb2FkZXI6OldvcmtlclNjcmlwdExvYWRlcigpCiAgICAgLCBtX2ZhaWxl
ZChmYWxzZSkKICAgICAsIG1faWRlbnRpZmllcigwKQogICAgICwgbV9maW5pc2hpbmcoZmFsc2Up
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgLCBtX3RhcmdldFR5cGUoUmVzb3VyY2VSZXF1
ZXN0OjpUYXJnZXRJc1dvcmtlcikKLSNlbmRpZgorICAgICwgbV90YXJnZXRUeXBlKExvYWRlclJl
cXVlc3RDb250ZXh0OjpUYXJnZXRJc1dvcmtlcikKIHsKIH0KIApAQCAtMTA5LDkgKzEwNyw3IEBA
IFBhc3NPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiBXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZVJl
c291cmNlUmVxdWVzdCgpCiB7CiAgICAgT3duUHRyPFJlc291cmNlUmVxdWVzdD4gcmVxdWVzdCA9
IGFkb3B0UHRyKG5ldyBSZXNvdXJjZVJlcXVlc3QobV91cmwpKTsKICAgICByZXF1ZXN0LT5zZXRI
VFRQTWV0aG9kKCJHRVQiKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXF1ZXN0LT5z
ZXRUYXJnZXRUeXBlKG1fdGFyZ2V0VHlwZSk7Ci0jZW5kaWYKKyAgICByZXF1ZXN0LT5zZXRDb250
ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUobV90YXJnZXRUeXBlKSk7CiAgICAgcmV0
dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggZDZlN2RlMzdiYmJmNmNkMThmMDNhYWFhMTllZTk0
YWRiZjEyN2RiNC4uNzFmMjRhOWQ5OTBmNjZmZTQ4ZmRmYTdiNWQyZmViMzAwYTQ4MmRmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCkBAIC0zMSw2ICsz
MSw3IEBACiAjaWYgRU5BQkxFKFdPUktFUlMpCiAKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVk
ZSAiTG9hZGVyUmVxdWVzdENvbnRleHQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRl
ckNsaWVudC5oIgpAQCAtNzIsOSArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCk7CiAKLSNpZiBQTEFURk9STShDSFJPTUlV
TSkKLSAgICAgICAgdm9pZCBzZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlw
ZSB0YXJnZXRUeXBlKSB7IG1fdGFyZ2V0VHlwZSA9IHRhcmdldFR5cGU7IH0KLSNlbmRpZgorICAg
ICAgICB2b2lkIHNldFRhcmdldFR5cGUoTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUg
dGFyZ2V0VHlwZSkgeyBtX3RhcmdldFR5cGUgPSB0YXJnZXRUeXBlOyB9CiAKICAgICBwcml2YXRl
OgogICAgICAgICBmcmllbmQgY2xhc3MgV1RGOjpSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRl
cj47CkBAIC05NSw5ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBt
X2ZhaWxlZDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXI7CiAgICAgICAgIGJv
b2wgbV9maW5pc2hpbmc7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAgIFJlc291cmNl
UmVxdWVzdDo6VGFyZ2V0VHlwZSBtX3RhcmdldFR5cGU7Ci0jZW5kaWYKKyAgICAgICAgTG9hZGVy
UmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUgbV90YXJnZXRUeXBlOwogICAgIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4
IGUxYTc1MmNmNTYzYjY2MjZmNzI5MjlhZmU2MWU0OTU2MjdiMzdlYzEuLjRiNTFjZThkYjc2YWZm
NTQ0NzM0MGZmMGJlY2Y3MDg5OWFmODYwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5j
bHVkZSAiSFRUUFZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgogI2luY2x1ZGUgIk1lbW9y
eUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVxdWVzdC5oIgpAQCAtNjMwLDkgKzYzMSw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNyZWF0
ZVJlcXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChtX3VybCk7CiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKG1fbWV0aG9kKTsKLSNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0
OjpUYXJnZXRJc1hIUik7Ci0jZW5kaWYKKyAgICByZXF1ZXN0LnNldENvbnRleHQoTG9hZGVyUmVx
dWVzdENvbnRleHQ6OmNyZWF0ZShMb2FkZXJSZXF1ZXN0Q29udGV4dDo6VGFyZ2V0SXNYSFIpKTsK
IAogICAgIGlmIChtX3JlcXVlc3RFbnRpdHlCb2R5KSB7CiAgICAgICAgIEFTU0VSVChtX21ldGhv
ZCAhPSAiR0VUIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggM2Y0NmEyNGFjMzg3
NTEzMDgwZmM3NmY1NzhiY2QwNjc5ZGQzMDczYS4uMDYyMzQ3MDQ2ODcwZmZiY2Y3MTZlMjhmN2M0
ZmY3ZWIxYjI4MGI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtNDEwLDYgKzQx
MCw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0n
LAogICAgICAgICAgICAgICAgICdzcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tJywKICAg
ICAgICAgICAgICAgICAnc3JjL21hYy9XZWJTdWJzdHJpbmdVdGlsLm1tJywKKyAgICAgICAgICAg
ICAgICAnc3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L0xvY2FsaXplZFN0cmluZ3MuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL01lZGlhUGxheWVy
UHJpdmF0ZUNocm9taXVtLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJVUkxSZXF1ZXN0LmgKaW5kZXggODgyMTAwMDY0ODUzNzg3ZWVkYTVkMDE1MDQ5NTE2OTlkNDBj
ZjA0Mi4uYTZmMTNiOTQ4ZjhjYjU3MTZlMWY2YmQ3NWU0YmU2MDEzNmZkYWI1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaApAQCAtNzcsNiArNzcs
NyBAQCBwdWJsaWM6CiAgICAgY2xhc3MgRXh0cmFEYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsgfQorICAgICAgICB2aXJ0dWFsIEV4dHJhRGF0YSogY29w
eSgpIHsgcmV0dXJuIDA7IH0KICAgICB9OwogCiAgICAgfldlYlVSTFJlcXVlc3QoKSB7IHJlc2V0
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNs
aWVudEltcGwuY3BwCmluZGV4IDU3YmY1NmYzYTkyZDc3NGRiNTBiZmE5MjU1MWEzYTk3ZDNlNmZj
NGIuLjNlMWRlMjQzODM2ZTU1YzRkYWM5MTk0ODdhMjgwNjg3MjFkZDEzMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcApA
QCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTEZvcm1FbGVtZW50LmgiICAvLyBuZWVkZWQgYnkgRm9ybVN0YXRlLmgKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgogI2luY2x1
ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgpAQCAtMzMzLDEyICszMzQsMTcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudElt
cGw6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KAogc3RhdGljIHZvaWQgc2V0VGFy
Z2V0VHlwZUZyb21Mb2FkZXIoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb2N1bWVudExvYWRl
ciogbG9hZGVyKQogewogICAgIGlmIChsb2FkZXIgPT0gbG9hZGVyLT5mcmFtZUxvYWRlcigpLT5w
cm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRUeXBlIHR5cGU7CisgICAgICAgIExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRUeXBl
IHR5cGU7CiAgICAgICAgIGlmIChsb2FkZXItPmZyYW1lTG9hZGVyKCktPmlzTG9hZGluZ01haW5G
cmFtZSgpKQotICAgICAgICAgICAgdHlwZSA9IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNNYWlu
RnJhbWU7CisgICAgICAgICAgICB0eXBlID0gTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElz
TWFpbkZyYW1lOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0eXBlID0gUmVzb3VyY2VSZXF1
ZXN0OjpUYXJnZXRJc1N1YmZyYW1lOwotICAgICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUodHlw
ZSk7CisgICAgICAgICAgICB0eXBlID0gTG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldElzU3Vi
ZnJhbWU7CisKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0KiBjb250ZXh0ID0gcmVx
dWVzdC5jb250ZXh0KCk7CisgICAgICAgIGlmIChjb250ZXh0KQorICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRleHQqPihjb250ZXh0KS0+c2V0VGFyZ2V0VHlwZSh0eXBl
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVxdWVzdC5zZXRDb250ZXh0KExvYWRlclJl
cXVlc3RDb250ZXh0OjpjcmVhdGUodHlwZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9hZGVyUmVxdWVzdENvbnRleHRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvYWRlclJlcXVlc3RDb250ZXh0SW1wbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjE1MWRmM2JmODhhMzQ3ZTY5ZjY1ZmY5Zjc0NGZlYmU0NDcwYWRlYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvYWRlclJlcXVlc3RDb250
ZXh0SW1wbC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJMb2FkZXJSZXF1ZXN0Q29udGV4dC5oIgorCisjaW5jbHVkZSAiV2ViVVJMUmVxdWVzdFByaXZh
dGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPExvYWRlclJlcXVlc3RD
b250ZXh0PiBMb2FkZXJSZXF1ZXN0Q29udGV4dDo6Y3JlYXRlKFRhcmdldFR5cGUgdGFyZ2V0VHlw
ZSkKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJVUkxSZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVy
OjpjcmVhdGUodGFyZ2V0VHlwZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnku
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5j
cHAKaW5kZXggNTVlN2I2YTg2MTRlZmNkMDJiN2RiMWNkOWZjYmQ1ZjA3MDMzYTgzMC4uOTM0NzEz
YWU1ODRmNzg3NzhhZWVjMDg5YjJkYzg4ODBiOWEzY2JiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKQEAgLTc0LDcg
Kzc0LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fbG9hZGluZyhmYWxzZSkKICAgICAgICAgLCBt
X3Jlc3BvbnNlQXBwQ2FjaGVJRCgwKQogICAgIHsKLSAgICAgICAgbV9zY3JpcHRMb2FkZXItPnNl
dFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1NoYXJlZFdvcmtlcik7CisgICAg
ICAgIG1fc2NyaXB0TG9hZGVyLT5zZXRUYXJnZXRUeXBlKExvYWRlclJlcXVlc3RDb250ZXh0OjpU
YXJnZXRJc1NoYXJlZFdvcmtlcik7CiAgICAgfQogCiAgICAgflNoYXJlZFdvcmtlclNjcmlwdExv
YWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcApp
bmRleCA2MDVmYjhjNDI1MjU3NGJmZmYxZjE0ZWU2YThkYjNjNjdlYjdjODE3Li5mOWFlY2E0YjA5
Mzk2ODExMTVkMGVhM2ZiNGJjYzczNzQ1MTJjYzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcApAQCAtNDIsMjYgKzQyLDIzIEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotbmFtZXNwYWNlIHsKLQotY2xh
c3MgRXh0cmFEYXRhQ29udGFpbmVyIDogcHVibGljIFJlc291cmNlUmVxdWVzdDo6RXh0cmFEYXRh
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFeHRyYURhdGFDb250YWluZXI+IGNy
ZWF0ZShXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJhRGF0YSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IEV4dHJhRGF0YUNvbnRhaW5lcihleHRyYURhdGEpKTsgfQotCi0gICAgdmlydHVhbCB+
RXh0cmFEYXRhQ29udGFpbmVyKCkgeyB9Ci0KLSAgICBXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGEq
IGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9Ci0KLXByaXZh
dGU6Ci0gICAgZXhwbGljaXQgRXh0cmFEYXRhQ29udGFpbmVyKFdlYlVSTFJlcXVlc3Q6OkV4dHJh
RGF0YSogZXh0cmFEYXRhKQotICAgICAgICA6IG1fZXh0cmFEYXRhKGFkb3B0UHRyKGV4dHJhRGF0
YSkpCi0gICAgewotICAgIH0KK1Bhc3NSZWZQdHI8V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRh
aW5lcj4gV2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcjo6Y3JlYXRlKExvYWRlclJlcXVl
c3RDb250ZXh0OjpUYXJnZXRUeXBlIHRhcmdldFR5cGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJVUkxSZXF1ZXN0RXh0cmFEYXRhQ29udGFpbmVyKHRhcmdldFR5cGUpKTsKK30KIAot
ICAgIE93blB0cjxXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGE+IG1fZXh0cmFEYXRhOwotfTsKK1Bh
c3NSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0PiBXZWJVUkxSZXF1ZXN0RXh0cmFEYXRh
Q29udGFpbmVyOjpjb3B5KCkKK3sKKyAgICBSZWZQdHI8V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNv
bnRhaW5lcj4gY29udGFpbmVyID0gV2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcjo6Y3Jl
YXRlKHRhcmdldFR5cGUoKSk7CisgICAgaWYgKG1fZXh0cmFEYXRhLmdldCgpKQorICAgICAgICBj
b250YWluZXItPnNldEV4dHJhRGF0YShtX2V4dHJhRGF0YS0+Y29weSgpKTsKKyAgICByZXR1cm4g
Y29udGFpbmVyLnJlbGVhc2UoKTsKK30KIAotfSAvLyBuYW1lc3BhY2UKK1dlYlVSTFJlcXVlc3RF
eHRyYURhdGFDb250YWluZXI6OldlYlVSTFJlcXVlc3RFeHRyYURhdGFDb250YWluZXIoTG9hZGVy
UmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUgdGFyZ2V0VHlwZSkKKyAgICA6IExvYWRlclJlcXVl
c3RDb250ZXh0KHRhcmdldFR5cGUpCit7Cit9CiAKIC8vIFRoZSBzdGFuZGFyZCBpbXBsZW1lbnRh
dGlvbiBvZiBXZWJVUkxSZXF1ZXN0UHJpdmF0ZSwgd2hpY2ggbWFpbnRhaW5zCiAvLyBvd25lcnNo
aXAgb2YgYSBSZXNvdXJjZVJlcXVlc3QgaW5zdGFuY2UuCkBAIC0yNDEsNyArMjM4LDEwIEBAIHZv
aWQgV2ViVVJMUmVxdWVzdDo6c2V0UmVwb3J0TG9hZFRpbWluZyhib29sIHJlcG9ydExvYWRUaW1p
bmcpCiAKIFdlYlVSTFJlcXVlc3Q6OlRhcmdldFR5cGUgV2ViVVJMUmVxdWVzdDo6dGFyZ2V0VHlw
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KG1fcHJpdmF0
ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnRhcmdldFR5cGUoKSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0
OjpDb250ZXh0KiBjb250ZXh0ID0gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+Y29udGV4
dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIFRhcmdldElzU3VicmVzb3Vy
Y2U7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PExvYWRl
clJlcXVlc3RDb250ZXh0Kj4oY29udGV4dCktPnRhcmdldFR5cGUoKSk7CiB9CiAKIGJvb2wgV2Vi
VVJMUmVxdWVzdDo6aGFzVXNlckdlc3R1cmUoKSBjb25zdApAQCAtMjU2LDggKzI1NiwxMiBAQCB2
b2lkIFdlYlVSTFJlcXVlc3Q6OnNldEhhc1VzZXJHZXN0dXJlKGJvb2wgaGFzVXNlckdlc3R1cmUp
CiAKIHZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0VGFyZ2V0VHlwZShUYXJnZXRUeXBlIHRhcmdldFR5
cGUpCiB7Ci0gICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+c2V0VGFyZ2V0VHlwZSgK
LSAgICAgICAgc3RhdGljX2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlPih0YXJnZXRU
eXBlKSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0KiBjb250ZXh0ID0gbV9wcml2YXRl
LT5tX3Jlc291cmNlUmVxdWVzdC0+Y29udGV4dCgpOworICAgIGlmIChjb250ZXh0KSB7CisgICAg
ICAgIHN0YXRpY19jYXN0PExvYWRlclJlcXVlc3RDb250ZXh0Kj4oY29udGV4dCktPnNldFRhcmdl
dFR5cGUoc3RhdGljX2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGU+KHRhcmdl
dFR5cGUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3ByaXZhdGUtPm1fcmVzb3Vy
Y2VSZXF1ZXN0LT5zZXRDb250ZXh0KExvYWRlclJlcXVlc3RDb250ZXh0OjpjcmVhdGUoc3RhdGlj
X2Nhc3Q8TG9hZGVyUmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGU+KHRhcmdldFR5cGUpKSk7CiB9
CiAKIGludCBXZWJVUkxSZXF1ZXN0OjpyZXF1ZXN0b3JJRCgpIGNvbnN0CkBAIC0zMDIsMTUgKzMw
NiwyMCBAQCB2b2lkIFdlYlVSTFJlcXVlc3Q6OnNldERvd25sb2FkVG9GaWxlKGJvb2wgZG93bmxv
YWRUb0ZpbGUpCiAKIFdlYlVSTFJlcXVlc3Q6OkV4dHJhRGF0YSogV2ViVVJMUmVxdWVzdDo6ZXh0
cmFEYXRhKCkgY29uc3QKIHsKLSAgICBSZWZQdHI8UmVzb3VyY2VSZXF1ZXN0OjpFeHRyYURhdGE+
IGRhdGEgPSBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5leHRyYURhdGEoKTsKLSAgICBp
ZiAoIWRhdGEuZ2V0KCkpCisgICAgUmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0KiBjb250ZXh0ID0g
bV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+Y29udGV4dCgpOworICAgIGlmICghY29udGV4
dCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEV4dHJhRGF0YUNv
bnRhaW5lcio+KGRhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5lcio+KGNvbnRleHQpLT5leHRyYURhdGEo
KTsKIH0KIAogdm9pZCBXZWJVUkxSZXF1ZXN0OjpzZXRFeHRyYURhdGEoV2ViVVJMUmVxdWVzdDo6
RXh0cmFEYXRhKiBleHRyYURhdGEpCiB7Ci0gICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVz
dC0+c2V0RXh0cmFEYXRhKEV4dHJhRGF0YUNvbnRhaW5lcjo6Y3JlYXRlKGV4dHJhRGF0YSkpOwor
ICAgIFJlc291cmNlUmVxdWVzdDo6Q29udGV4dCogY29udGV4dCA9IG1fcHJpdmF0ZS0+bV9yZXNv
dXJjZVJlcXVlc3QtPmNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgbV9w
cml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+c2V0Q29udGV4dChMb2FkZXJSZXF1ZXN0Q29udGV4
dDo6Y3JlYXRlKExvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRJc1N1YnJlc291cmNlKSk7Cisg
ICAgICAgIGNvbnRleHQgPSBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5jb250ZXh0KCk7
CisgICAgfQorICAgIHN0YXRpY19jYXN0PFdlYlVSTFJlcXVlc3RFeHRyYURhdGFDb250YWluZXIq
Pihjb250ZXh0KS0+c2V0RXh0cmFEYXRhKGV4dHJhRGF0YSk7CiB9CiAKIFJlc291cmNlUmVxdWVz
dCYgV2ViVVJMUmVxdWVzdDo6dG9NdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVlc3RQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0UHJpdmF0ZS5oCmluZGV4IDFjMWI2
OTYwOGVjOGE4YzExNzZkZTIwZTkyYmMwODQxZmEyNDlhNGMuLjI0ODJkNmI5ODUwMTIwYjUwOTQ1
ZjNlNmFlNjQ1YjFhMDJlYzBlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlVSTFJlcXVlc3RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVVJMUmVxdWVzdFByaXZhdGUuaApAQCAtMzEsNyArMzEsOSBAQAogI2lmbmRlZiBXZWJV
UkxSZXF1ZXN0UHJpdmF0ZV9oCiAjZGVmaW5lIFdlYlVSTFJlcXVlc3RQcml2YXRlX2gKIAotbmFt
ZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7IH0KKyNpbmNsdWRlICJMb2Fk
ZXJSZXF1ZXN0Q29udGV4dC5oIgorCisjaW5jbHVkZSAiV2ViVVJMUmVxdWVzdC5oIgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApAQCAtNDgsNiArNTAsMjIgQEAgcHVibGljOgogICAgIGJvb2wgbV9h
bGxvd1N0b3JlZENyZWRlbnRpYWxzOwogfTsKIAorY2xhc3MgV2ViVVJMUmVxdWVzdEV4dHJhRGF0
YUNvbnRhaW5lciA6IHB1YmxpYyBXZWJDb3JlOjpMb2FkZXJSZXF1ZXN0Q29udGV4dCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVVJMUmVxdWVzdEV4dHJhRGF0YUNvbnRhaW5l
cj4gY3JlYXRlKFdlYkNvcmU6OkxvYWRlclJlcXVlc3RDb250ZXh0OjpUYXJnZXRUeXBlKTsKKwor
ICAgIHZpcnR1YWwgfldlYlVSTFJlcXVlc3RFeHRyYURhdGFDb250YWluZXIoKSB7IH0KKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjpDb250ZXh0PiBjb3B5
KCk7CisKKyAgICBXZWJVUkxSZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisgICAgdm9pZCBzZXRFeHRyYURhdGEoV2ViVVJM
UmVxdWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEpIHsgQVNTRVJUKCFtX2V4dHJhRGF0YS5nZXQo
KSk7IG1fZXh0cmFEYXRhID0gYWRvcHRQdHIoZXh0cmFEYXRhKTsgfQorCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFdlYlVSTFJlcXVlc3RFeHRyYURhdGFDb250YWluZXIoV2ViQ29yZTo6TG9hZGVy
UmVxdWVzdENvbnRleHQ6OlRhcmdldFR5cGUpOworCisgICAgT3duUHRyPFdlYlVSTFJlcXVlc3Q6
OkV4dHJhRGF0YT4gbV9leHRyYURhdGE7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlVSTFJl
cXVlc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVVJMUmVxdWVz
dFRlc3QuY3BwCmluZGV4IDIzNGQwMTQ4MWFiYTVjZmZjZTk2MjUxYTFhM2I2YTAzYzJjOTRmYTUu
LjgxNmRlNzYxMzUyODdmNTgzNWVhZDVhYWE3ZGY1MWU4YTg3YjQyNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVVJMUmVxdWVzdFRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVVJMUmVxdWVzdFRlc3QuY3BwCkBAIC00OCw2
ICs0OCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflRlc3RFeHRyYURhdGEoKSB7ICptX2Fs
aXZlID0gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgVGVzdEV4dHJhRGF0YSogY29weSgpIHsgcmV0
dXJuIDA7IH0KKwogcHJpdmF0ZToKICAgICBib29sKiBtX2FsaXZlOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>