<?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>93467</bug_id>
          
          <creation_ts>2012-08-08 05:11:19 -0700</creation_ts>
          <short_desc>Change ImageSource to be asynchronous.</short_desc>
          <delta_ts>2014-02-05 10:49:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>UNCONFIRMED</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>
          <dependson>93464</dependson>
    
    <dependson>93466</dependson>
          <blocked>93590</blocked>
    
    <blocked>94190</blocked>
    
    <blocked>90375</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hclam</cc>
    
    <cc>mifenton</cc>
    
    <cc>nick</cc>
    
    <cc>noam</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>skyul</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>690173</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-08 05:11:19 -0700</bug_when>
    <thetext>This change makes the API of ImageSource support asynchronous image decoding. This
is a preparation for asynchronous image decoding. After ImageSource
compelets image decoding, ImageSource sends NativeImagePtr to BitmapImage via
ImageSourceObserver::didDecodeFrameAtIndex().

This patch renames createFrameAtIndex to requestFrameAtIndex, to imply
this method can be asynchrous. If ImageSource has ImageSourceObserver, this
method sends the result via didDecodeFrameAtIndex() either synchronously or
asynchronously. Otherwise, this method returns the result synchronously.
e.g. GraphicsContext3D calls requestFrameAtIndex without ImageSourceObserver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690182</commentid>
    <comment_count>1</comment_count>
      <attachid>157190</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-08 05:16:25 -0700</bug_when>
    <thetext>Created attachment 157190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691131</commentid>
    <comment_count>2</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-08 20:08:57 -0700</bug_when>
    <thetext>High level comments first.

I wonder if it is better to make ImageSource a full asynchronous interface. Which is:

class ImageSource {
  public:
    ImageSource(ImageSourceObserver* observer, ...);
 
    void requestFrameAtIndex(size_t index, bool useAsynchronousDecodingIfPossible = false);
};

class ImageSourceObserver {
  public:
    virtual void didDecodeFrameAtIndex(size_t, NativeImagePtr);
};

And then create a wrapper of SynchronousImageSource:

class SynchronousImageSource : public ImageSourceObserver {
  public:
    SynchronousImageSource(...) : m_imageSource(this, ...) {
    }

    virtual void didDecodeFrameAtIndex(size_t index, NativaImagePtr frame) {
      m_frames[index] = frame;
    }

    NativeImagePtr createFrameAtIndex(size_t index) {
      m_imageSource.requestFrameAtIndex(index);
      return m_frames[index];
    }

  private:
    Vector&lt;NativeImagePtr&gt; m_frames;
    ImageSource m_imageSource;
};

This way we make ImageSource fully asynchronous and separate a synchronous interface. We&apos;ll also need to move image decoding in frameDurationAtIndex() and orientationAtIndex() to ImageDecoder such that individual decoder can decide how to implement it. The latter can be done separately though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691203</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-08 22:22:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This way we make ImageSource fully asynchronous and separate a synchronous interface. We&apos;ll also need to move image decoding in frameDurationAtIndex() and orientationAtIndex() to ImageDecoder such that individual decoder can decide how to implement it. The latter can be done separately though.

That&apos;s good idea. GraphicsContext3D and others will use SynchronousImageSource instead of ImageSource. I&apos;ll update it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691282</commentid>
    <comment_count>4</comment_count>
      <attachid>157406</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-09 00:20:18 -0700</bug_when>
    <thetext>Created attachment 157406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691299</commentid>
    <comment_count>5</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-09 00:38:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=157406) [details]
&gt; Patch

This patch introduced SynchronousImageSource, which Alpha suggested.
SynchronousImageSource makes us avoid making a mistake.

So, the changelog was also changed.
&quot;This change makes the API of ImageSource support asynchronous image decoding. This
is a preparation for asynchronous image decoding. After ImageSource
completes image decoding, ImageSource sends NativeImagePtr to BitmapImage via
ImageSourceObserver::didDecodeFrameAtIndex().

This patch renames createFrameAtIndex to requestFrameAtIndex, to imply
this method can be asynchronous.

This patch introduced SynchronousImageSource, which decodes image synchronously.
The main reason to add this class is to prevent clients from misusing
ImageSource. ImageSource will be able to perform sync and async image decoding,
so it will be hard to use ImageSource correctly. So, after this patch, only
BitmapImage and SynchronousImageSource can create and use ImageSource, and other
clients which need to use ImageSource must use SynchronousImageSource.
Currently, GraphicsContext3D and WebImageSkia use SynchronousImageSource.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691760</commentid>
    <comment_count>6</comment_count>
      <attachid>157406</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-09 13:32:01 -0700</bug_when>
    <thetext>Comment on attachment 157406
Patch

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

&gt; Source/WebCore/ChangeLog:24
&gt; +        No new tests - existing image tests cover these cases.

I believe image layout tests will verify the correctness of this change, but it&apos;s best to list the tests here, e.g.

compositing/images/content-image-change.html
fast/images/jpeg-with-color-profile.html

&gt; Source/WebCore/platform/graphics/BitmapImage.cpp:-132
&gt; -    ASSERT(m_decodedSize == 0 || numFrames &gt; 1);

I think we don&apos;t need to change this line in this patch.

&gt; Source/WebCore/platform/graphics/ImageSource.cpp:147
&gt; +    ASSERT(m_observer);

I don&apos;t think this is necessary since constructor always have this assigned. If this is 0 it will crash in the following line anyway.

&gt; Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp:307
&gt; +    ASSERT(m_observer);

I don&apos;t think ASSERT is needed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691774</commentid>
    <comment_count>7</comment_count>
      <attachid>157406</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-09 13:37:17 -0700</bug_when>
    <thetext>Comment on attachment 157406
Patch

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

&gt; Source/WebCore/platform/graphics/BitmapImage.h:185
&gt; +    virtual void didDecodeFrameAtIndex(size_t, NativeImagePtr);

please add OVERRIDE annotation when you&apos;re overriding a virtual. It goes after the signature but before the ;

&gt; Source/WebCore/platform/graphics/skia/GraphicsContext3DSkia.cpp:60
&gt; +        SynchronousImageSource decoder(ImageSource::AlphaNotPremultiplied,
&gt;                              ignoreGammaAndColorProfile ? ImageSource::GammaAndColorProfileIgnored : ImageSource::GammaAndColorProfileApplied);

please make the parameter line up with opening ( as it did before the type name change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691776</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-09 13:37:50 -0700</bug_when>
    <thetext>I was just checking for style, I don&apos;t have opinions about the code itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691800</commentid>
    <comment_count>9</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-09 13:49:42 -0700</bug_when>
    <thetext>Dongsung:

I have looked at the code and looks good to me. James helped to check the coding style. Please fix those nits and I think it&apos;ll be ready for review. smfr will probably be the best person to review this. Please add him to cc list after you upload a new patch. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692364</commentid>
    <comment_count>10</comment_count>
      <attachid>157681</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 02:09:57 -0700</bug_when>
    <thetext>Created attachment 157681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692368</commentid>
    <comment_count>11</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 02:12:40 -0700</bug_when>
    <thetext>(In reply to comment #6)
Thanks for review

&gt; I believe image layout tests will verify the correctness of this change, but it&apos;s best to list the tests here, e.g.

Ok. I add the paragraph in the changelog

Test: compositing/images/*
      fast/images/*
      fast/dom/HTMLImageElement/*
      http/tests/images/*
      css3/images/*

&gt; &gt; -    ASSERT(m_decodedSize == 0 || numFrames &gt; 1);
&gt; I think we don&apos;t need to change this line in this patch.

Ok.

&gt; &gt; +    ASSERT(m_observer);
&gt; I don&apos;t think this is necessary since constructor always have this assigned. If this is 0 it will crash in the following line anyway.
&gt; I don&apos;t think ASSERT is needed here.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692370</commentid>
    <comment_count>12</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 02:13:23 -0700</bug_when>
    <thetext>(In reply to comment #7)
Thanks for review.

&gt; please add OVERRIDE annotation when you&apos;re overriding a virtual. It goes after the signature but before the ;

Fixed.

&gt; please make the parameter line up with opening ( as it did before the type name change

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692371</commentid>
    <comment_count>13</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 02:14:20 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I have looked at the code and looks good to me. James helped to check the coding style. Please fix those nits and I think it&apos;ll be ready for review. smfr will probably be the best person to review this. Please add him to cc list after you upload a new patch. Thanks.

Thanks for your instruction. I added him. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692382</commentid>
    <comment_count>14</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 02:29:47 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=157681) [details]
&gt; Patch

The third patch is changed a lot. I described the details in the change log.

ImageSource::frameHasAlphaAtIndex can trigger image decoding again. BitmapImage always queries alpha without triggering image decoding, while SychronousImageSource always triggers image decoding to get alpha.
Clients can not use ImageSource directly. Clients can decode an image with BitmapImage or SychronousImageSource. We could change three methods of ImageSource this way after adding SychronousImageSource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692401</commentid>
    <comment_count>15</comment_count>
      <attachid>157681</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-10 02:56:13 -0700</bug_when>
    <thetext>Comment on attachment 157681
Patch

Attachment 157681 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13478050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692432</commentid>
    <comment_count>16</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-10 03:54:43 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 157681 [details])
&gt; Attachment 157681 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/13478050

Oops, mac is broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692445</commentid>
    <comment_count>17</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 04:35:52 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (From update of attachment 157681 [details] [details])
&gt; &gt; Attachment 157681 [details] [details] did not pass mac-ews (mac):
&gt; &gt; Output: http://queues.webkit.org/results/13478050
&gt; 
&gt; Oops, mac is broken.

Changing the mac build system by hand is too hard.
I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692456</commentid>
    <comment_count>18</comment_count>
      <attachid>157706</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 04:57:10 -0700</bug_when>
    <thetext>Created attachment 157706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692462</commentid>
    <comment_count>19</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-10 04:59:30 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Created an attachment (id=157706) [details]
&gt; Patch

Make mac build well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692810</commentid>
    <comment_count>20</comment_count>
      <attachid>157706</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-10 12:38:15 -0700</bug_when>
    <thetext>Comment on attachment 157706
Patch

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

&gt; Source/WebCore/platform/graphics/BitmapImage.cpp:-133
&gt; -    

nit: Don&apos;t remove this empty line.

&gt; Source/WebCore/platform/graphics/BitmapImage.cpp:150
&gt; +    m_frames[index].m_isComplete = m_source.frameIsCompleteAtIndex(index, ImageSource::NonRequestDecoding);

I can understand why you add this flag here: you want to prevent this call from doing a full image decoding internally. I suggest we don&apos;t worry about this yet. It becomes confusing with details at this level because we want to just complete asynchronous ImageSource for this change.

&gt; Source/WebCore/platform/graphics/ImageSource.cpp:178
&gt;      ImageFrame* buffer = m_decoder-&gt;frameBufferAtIndex(index);

I understand this function causes a full decode when didDecodeFrameAtIndex() is called and you want to avoid that with RequestDecodingMode. I think a better way to do this is to delegate the call to ImageDecoder. And then only GIFImageDecoder will do a full frame decode, which is not in the scope of parallel image decoding and keep us out of trouble.

I suggest we don&apos;t change this implementation, we should narrow our focus to just making ImageSource asynchronous.

&gt; Source/WebCore/platform/graphics/ImageSource.cpp:203
&gt; +

Same here we should let ImageDecoder answer this call.

&gt; Source/WebCore/platform/graphics/ImageSource.cpp:218
&gt; +    if (mode == RequestDecoding)

Same here we don&apos;t need to do this. We should have a separate change to move decoding in this call into ImageDecoder.

&gt; Source/WebCore/platform/graphics/ImageSource.h:151
&gt; +    float frameDurationAtIndex(size_t, RequestDecodingMode = RequestDecoding);

I don&apos;t think we need this enum. See below in SynchronousImageSource.

&gt; Source/WebCore/platform/graphics/SynchronousImageSource.cpp:106
&gt; +    return m_imageSource.frameHasAlphaAtIndex(index);

We can write this function as:

m_imageSource.requestFrameAtIndex(index);
return m_imageSource.frameHasAlphaAtIndex(index);

If we&apos;re worried about future changes we can write a unit test to make sure behavior is correct. Also give a comment to state calling requestFrameAtIndex() is needed.

&gt; Source/WebCore/platform/graphics/SynchronousImageSource.cpp:111
&gt; +    return m_imageSource.frameIsCompleteAtIndex(index);

Same here:

m_imageSource.requestFrameAtIndex(index);
return m_imageSource.frameIsCompleteAtIndex(index);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692820</commentid>
    <comment_count>21</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-10 12:43:20 -0700</bug_when>
    <thetext>Please limit the scope of this change to just refactoring ImageSource to be asynchronous, i.e. limit the scope to just ImageSource::requestFrameAtIndex(), ImageSourceObserver, SynchronousImageSource and switch usage of ImageSource to SynchronousImageSource.

We should do the refactoring of ImageSource, ImageDecoder::decodeAtIndex in a separate patch and discussed in a different bug. Having it included in this change is confusing for other reviewers. I think your second patch with a few nits would be good for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692842</commentid>
    <comment_count>22</comment_count>
      <attachid>157706</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-10 13:18:32 -0700</bug_when>
    <thetext>Comment on attachment 157706
Patch

Attachment 157706 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13463811</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696598</commentid>
    <comment_count>23</comment_count>
      <attachid>158682</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-15 18:34:44 -0700</bug_when>
    <thetext>Created attachment 158682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696652</commentid>
    <comment_count>24</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-15 19:32:25 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Please limit the scope of this change to just refactoring ImageSource to be asynchronous, i.e. limit the scope to just ImageSource::requestFrameAtIndex(), ImageSourceObserver, SynchronousImageSource and switch usage of ImageSource to SynchronousImageSource.
&gt; 
&gt; We should do the refactoring of ImageSource, ImageDecoder::decodeAtIndex in a separate patch and discussed in a different bug. Having it included in this change is confusing for other reviewers. I think your second patch with a few nits would be good for review.

Thank you for your review. I agree with you. I&apos;ll file another bug about ImageDecoder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696662</commentid>
    <comment_count>25</comment_count>
      <attachid>158695</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-15 19:46:37 -0700</bug_when>
    <thetext>Created attachment 158695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696681</commentid>
    <comment_count>26</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-15 20:26:32 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; m_imageSource.requestFrameAtIndex(index);
&gt; return m_imageSource.frameHasAlphaAtIndex(index);

We need the code above because ImageSource::frameHasAlphaAtIndex does not decode the given frame.

&gt; 
&gt; m_imageSource.requestFrameAtIndex(index);
&gt; return m_imageSource.frameIsCompleteAtIndex(index);

However, the code above is not yet needed because ImageSource::frameIsCompleteAtIndex decodes the given frame.
A follow-up patch will change frameIsCompleteAtIndex() not to decode anymore, so the code above will be needed. I&apos;ll file another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976813</commentid>
    <comment_count>27</comment_count>
      <attachid>158695</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-05 10:49:43 -0800</bug_when>
    <thetext>Comment on attachment 158695
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157190</attachid>
            <date>2012-08-08 05:16:25 -0700</date>
            <delta_ts>2012-08-09 00:20:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93467-20120808211533.patch</filename>
            <type>text/plain</type>
            <size>26133</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NiMzdlNjBhOTVkNjkw
ZDcwN2M0NTk5MjJkODNjMWU1MzM1OTJmMS4uYzZhMmFiY2MyYWViZTViNGE5MTYwNmUwZTk1YjU0
MTRmMTdlNTI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY5IEBACiAyMDEyLTA4LTA4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENoYW5nZSBJ
bWFnZVNvdXJjZSB0byBiZSBhc3luY2hyb25vdXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBBUEkgb2YgSW1hZ2VT
b3VyY2Ugc3VwcG9ydCBhc3luY2hyb25vdXMgaW1hZ2UgZGVjb2RpbmcuIFRoaXMKKyAgICAgICAg
aXMgYSBwcmVwYXJhdGlvbiBmb3IgYXN5bmNocm9ub3VzIGltYWdlIGRlY29kaW5nLiBBZnRlciBJ
bWFnZVNvdXJjZQorICAgICAgICBjb21wZWxldHMgaW1hZ2UgZGVjb2RpbmcsIEltYWdlU291cmNl
IHNlbmRzIE5hdGl2ZUltYWdlUHRyIHRvIEJpdG1hcEltYWdlIHZpYQorICAgICAgICBJbWFnZVNv
dXJjZU9ic2VydmVyOjpkaWREZWNvZGVGcmFtZUF0SW5kZXgoKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHJlbmFtZXMgY3JlYXRlRnJhbWVBdEluZGV4IHRvIHJlcXVlc3RGcmFtZUF0SW5kZXgsIHRv
IGltcGx5CisgICAgICAgIHRoaXMgbWV0aG9kIGNhbiBiZSBhc3luY2hyb3VzLiBJZiBJbWFnZVNv
dXJjZSBoYXMgSW1hZ2VTb3VyY2VPYnNlcnZlciwgdGhpcworICAgICAgICBtZXRob2Qgc2VuZHMg
dGhlIHJlc3VsdCB2aWEgZGlkRGVjb2RlRnJhbWVBdEluZGV4KCkgZWl0aGVyIHN5bmNocm9ub3Vz
bHkgb3IKKyAgICAgICAgYXN5bmNocm9ub3VzbHkuIE90aGVyd2lzZSwgdGhpcyBtZXRob2QgcmV0
dXJucyB0aGUgcmVzdWx0IHN5bmNocm9ub3VzbHkuCisgICAgICAgIGUuZy4gR3JhcGhpY3NDb250
ZXh0M0QgY2FsbHMgcmVxdWVzdEZyYW1lQXRJbmRleCB3aXRob3V0IEltYWdlU291cmNlT2JzZXJ2
ZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gZXhpc3RpbmcgaW1hZ2UgdGVzdHMgY292ZXIg
dGhlc2UgY2FzZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAq
IFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmNhY2hlRnJhbWUpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGlkRGVjb2RlRnJhbWVBdEluZGV4KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oOgorICAgICAgICAoQml0bWFw
SW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpJbWFnZVNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChJbWFnZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2VPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSW1hZ2VTb3VyY2VPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNv
dXJjZU9ic2VydmVyOjp+SW1hZ2VTb3VyY2VPYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6cmVxdWVzdEZyYW1lQXRJbmRleCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJ
bWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3Jh
cGhpY3NDb250ZXh0M0RTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToKKwor
MjAxMi0wOC0wOCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwog
ICAgICAgICBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIE5hdGl2ZUltYWdlUHRyIGZyb20gSW1h
Z2VTb3VyY2UuaCBpbnRvIE5hdGl2ZUltYWdlUHRyLmguCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ2NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDE0M2VmMDAyYmU0NWE1ZDI1MjNiYzZhOTM4ZjhiYmRlMDg0NWYwNzAuLmI0NzY1NTY5
YTI4NTRkMWZkOTVhOWQxYTc3YjRlMDg3MzE1YjFjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDgtMDggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVs
bGFAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgQ2hhbmdlIEltYWdlU291cmNlIHRvIGJlIGFz
eW5jaHJvbm91cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkzNDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCByZXBsYWNlZCBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4IHRv
CisgICAgICAgIEltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4LCBzbyBJIGFtZW5kZWQg
V2ViSW1hZ2VTa2lhIHRvIHVzZQorICAgICAgICBjaGFuZ2VkIEltYWdlU291cmNlIGNvcnJlY3Rs
eS4KKworICAgICAgICAqIHNyYy9XZWJJbWFnZVNraWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbWFnZTo6ZnJvbURhdGEpOgorCiAyMDEyLTA4LTA2ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYlNvY2tldC5zZW5kKCkgc2hvdWxkIGFjY2VwdCBB
cnJheUJ1ZmZlclZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGRmMjIxMDFl
NDhkMmE3NWMwYTQ3ZDYxZjJlOTE3MmU5NWRlNDVlNTYuLjg4YWUwYjhjY2YwYWI5MDY4M2MyOWQ1
MDJiMWE0YTRlNTY0ODM2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzQx
Miw2ICszNDEyLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2VPYnNlcnZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbnRQb2ludC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQ
b2ludEhhc2guaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggZDViNmQ2ZjRlZWI1NmUzYmFjN2M4YTYxNTY5ZjFjMGU3Njdj
YWExNS4uOWFkNDZmZmJmYjQwYzRhZmU3MDE1OTdjNDBlMjFiNzEyMzViOTFhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0yMDk5LDYgKzIwOTksNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggXAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50
UG9pbnQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnRIYXNoLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzUzNzAyYzMy
OTlhOTRmN2ExZmRmZjk1OWU0MTU4YmE2NDYxMzBmOC4uMzU0ZDgzNWU5NGViMTEyMThjZDk5ZGI1
MDMwNmM2ODQ3MmQ3ZWU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzg5LDYgKzM4OSw3IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvSW50UG9pbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW50
UG9pbnRIYXNoLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQ0
ZTNjMjRiNDZhN2QyNjhhNGI2MTU4NDZhMTZjZmFhZjk5YjEzMzcuLmRjNDU5YjJlMzEwN2QyMzYz
MjhjOTY5ZDY2MjEzOWZiMWVhYTQ4NzMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yOTUwNiw2ICsyOTUwNiwxMCBAQAogCQkJCQk+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhp
Y3NcSW1hZ2VTb3VyY2VPYnNlcnZlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSW50UG9pbnQuaCIKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxZDY2NzJjNWVkMDgyMjkxZDY3YWNiMzEyYzM0Yjg0YTMy
Y2U0NzI5Li4yMzVlNTA1Mzk4NTJlY2VlZmQzOTMxNGZlODJlNDNiMTc0OGM0ODUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00
ODI4LDYgKzQ4MjgsNyBAQAogCQlCMjc1MzU2RjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDEw
QjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCAqLzsgfTsKIAkJQjI3NTM1NzAwQjA1MzgxNDAw
MkNFNjRGIC8qIEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjc1MzU0MjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjc1MzU3MTBCMDUzODE0MDAy
Q0U2NEYgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUIyNzUzNTcx
MEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0MzBCMDUzODE0MDAyQ0U2NEUg
LyogSW1hZ2VTb3VyY2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUIyNzUzNTcyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDQw
QjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1NzMwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJl
Y3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3
NTM1NDUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwICovOyB9OwogCQlCMjc1MzU3NDBC
MDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDYwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTIwNjMs
NiArMTIwNjQsNyBAQAogCQlCMjc1MzU0MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NDIwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMjc1MzU0MzBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFn
ZVNvdXJjZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZVNvdXJjZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNTQ0
MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW50UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1
NDUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEludFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMjc1MzU0NjBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTk4MTYsNiArMTk4MTgsNyBAQAogCQkJCUE4NzQ4RDY2MTJDQzM3NjMwMDFGQkE0MSAvKiBJ
bWFnZU9yaWVudGF0aW9uLmggKi8sCiAJCQkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIElt
YWdlUmVuZGVyaW5nTW9kZS5oICovLAogCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJ
bWFnZVNvdXJjZS5oICovLAorCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNv
dXJjZU9ic2VydmVyLmggKi8sCiAJCQkJQjI3NTM1NDQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBv
aW50LmggKi8sCiAJCQkJRTQ2MkE0QTAxMTNFNzFCRTAwNEE0MjIwIC8qIEludFBvaW50SGFzaC5o
ICovLAogCQkJCUIyNzUzNTQ1MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmNwcCAqLywKQEAg
LTIzNTgyLDYgKzIzNTg1LDcgQEAKIAkJCQkyRDVBNTkzMTE1MjUyNUQwMDAzNkVFNTEgLyogSW1h
Z2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDkyOTFFNEIxMzQxNzJDODAwRTc1
M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzEw
QjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCMjc1
MzU3MTBCMDUzODE0MDAyQ0U2NEUgLyogSW1hZ2VTb3VyY2VPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIEltYWdlU291cmNlQ0cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxNkZFMTE4MEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1h
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCAzNjhhZjg3MjJlOWZmNzA3
MDhjYzg1ZTIwMWZjNmExMTQwNjUxMDMwLi4xZWEwODE1MWU3NzE5ZGEzOGUxMzFkOTZmOWJjZTQy
ZjlmOGRiNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuY3BwCkBAIC00NSw2ICs0NSw3IEBAIHN0YXRpYyBpbnQgZnJhbWVCeXRlcyhjb25z
dCBJbnRTaXplJiBmcmFtZVNpemUpCiAKIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShJbWFnZU9i
c2VydmVyKiBvYnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3VyY2Uo
dGhpcykKICAgICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2ZyYW1lcygwKQogICAgICwg
bV9mcmFtZVRpbWVyKDApCkBAIC0xMjksMTIgKzEzMCwxNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpk
ZXN0cm95TWV0YWRhdGFBbmROb3RpZnkoaW50IGZyYW1lc0NsZWFyZWQpCiB2b2lkIEJpdG1hcElt
YWdlOjpjYWNoZUZyYW1lKHNpemVfdCBpbmRleCkKIHsKICAgICBzaXplX3QgbnVtRnJhbWVzID0g
ZnJhbWVDb3VudCgpOwotICAgIEFTU0VSVChtX2RlY29kZWRTaXplID09IDAgfHwgbnVtRnJhbWVz
ID4gMSk7Ci0gICAgCiAgICAgaWYgKG1fZnJhbWVzLnNpemUoKSA8IG51bUZyYW1lcykKICAgICAg
ICAgbV9mcmFtZXMuZ3JvdyhudW1GcmFtZXMpOwogCi0gICAgbV9mcmFtZXNbaW5kZXhdLm1fZnJh
bWUgPSBtX3NvdXJjZS5jcmVhdGVGcmFtZUF0SW5kZXgoaW5kZXgpOworICAgIG1fc291cmNlLnJl
cXVlc3RGcmFtZUF0SW5kZXgoaW5kZXgpOworfQorCit2b2lkIEJpdG1hcEltYWdlOjpkaWREZWNv
ZGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZSkK
K3sKKyAgICBtX2ZyYW1lc1tpbmRleF0ubV9mcmFtZSA9IG5hdGl2ZUltYWdlOworCisgICAgc2l6
ZV90IG51bUZyYW1lcyA9IGZyYW1lQ291bnQoKTsKICAgICBpZiAobnVtRnJhbWVzID09IDEgJiYg
bV9mcmFtZXNbaW5kZXhdLm1fZnJhbWUpCiAgICAgICAgIGNoZWNrRm9yU29saWRDb2xvcigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRl
eCA2YmU5NzYxYzcyMjkyYTVlODhhMjc4OTUxNTQ2OTI0NjdlZTQ4MjU0Li44OTZjOTJlN2M3ZDM3
ZmZhNjUzYjZjOTZiNjhkYTEzMjI3YjExMzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJD
b2xvci5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJJbWFnZVNv
dXJjZS5oIgorI2luY2x1ZGUgIkltYWdlU291cmNlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC05OSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAv
LyBCaXRtYXBJbWFnZSBDbGFzcwogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogCi1jbGFzcyBCaXRtYXBJbWFnZSA6IHB1YmxpYyBJbWFnZSB7Citj
bGFzcyBCaXRtYXBJbWFnZSA6IHB1YmxpYyBJbWFnZSwgcHVibGljIEltYWdlU291cmNlT2JzZXJ2
ZXIgewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xhc3Mg
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlOwpAQCAtMTgwLDYgKzE4MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
bm90U29saWRDb2xvcigpOwogI2VuZGlmCiAKKyAgICAvLyBJbWFnZVNvdXJjZU9ic2VydmVyCisg
ICAgdmlydHVhbCB2b2lkIGRpZERlY29kZUZyYW1lQXRJbmRleChzaXplX3QsIE5hdGl2ZUltYWdl
UHRyKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVNpemUoKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IDEx
NTQ1OTQ5MTZhNmU2MmZhZGQ4Njg4ZDFjMzI2NzcxNWY5YTVkNTMuLjQwZDI2MWQ2MjJkMzVhNGNm
NTM4ZWZlY2RjMzc0OThmZGU0YTZhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJ
bWFnZURlY29kZXIuaCIKIAogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRl
ICJJbWFnZVNvdXJjZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNiArNDMsMTUgQEAgdW5zaWduZWQgSW1hZ2VTb3Vy
Y2U6OnNfbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlID0gMTAyNCAqIDEwMjQ7CiAKIEltYWdlU291
cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIElt
YWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmls
ZU9wdGlvbikKICAgICA6IG1fZGVjb2RlcigwKQorICAgICwgbV9vYnNlcnZlcigwKQorICAgICwg
bV9hbHBoYU9wdGlvbihhbHBoYU9wdGlvbikKKyAgICAsIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24oZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCit7Cit9CisKK0ltYWdlU291cmNlOjpJ
bWFnZVNvdXJjZShJbWFnZVNvdXJjZU9ic2VydmVyKiBvYnNlcnZlciwgSW1hZ2VTb3VyY2U6OkFs
cGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCisgICAgOiBtX2RlY29kZXIoMCkKKyAg
ICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCiAgICAgLCBtX2FscGhhT3B0aW9uKGFscGhhT3B0aW9u
KQogICAgICwgbV9nYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbihnYW1tYUFuZENvbG9yUHJvZmls
ZU9wdGlvbikKIHsKQEAgLTEzNyw2ICsxNDcsMTUgQEAgc2l6ZV90IEltYWdlU291cmNlOjpmcmFt
ZUNvdW50KCkgY29uc3QKICAgICByZXR1cm4gbV9kZWNvZGVyID8gbV9kZWNvZGVyLT5mcmFtZUNv
dW50KCkgOiAwOwogfQogCitOYXRpdmVJbWFnZVB0ciBJbWFnZVNvdXJjZTo6cmVxdWVzdEZyYW1l
QXRJbmRleChzaXplX3QgaW5kZXgpCit7CisgICAgLy8gVE9ETzogSW1wbGVtZW50IGFzeW5jaHJv
bm91cyBkZWNvZGluZy4KKyAgICBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZSA9IGNyZWF0ZUZy
YW1lQXRJbmRleChpbmRleCk7CisgICAgaWYgKG1fb2JzZXJ2ZXIpCisgICAgICAgIG1fb2JzZXJ2
ZXItPmRpZERlY29kZUZyYW1lQXRJbmRleChpbmRleCwgbmF0aXZlSW1hZ2UpOworICAgIHJldHVy
biBuYXRpdmVJbWFnZTsKK30KKwogTmF0aXZlSW1hZ2VQdHIgSW1hZ2VTb3VyY2U6OmNyZWF0ZUZy
YW1lQXRJbmRleChzaXplX3QgaW5kZXgpCiB7CiAgICAgaWYgKCFtX2RlY29kZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAppbmRleCA0MTFhMmU3
NmJmYWRmYmJiZWIwNzE0OTMzZTQ4ZWEwMzM3MTBiZDljLi5jY2U3NGI1ZjM0OWMyMDMwNTA2ZTBi
ZTJhMjY2NWMzOGVhZTQ2YTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmgKQEAgLTQyLDYgKzQyLDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X19DRkRhdGEqIENGRGF0YVJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VP
cmllbnRhdGlvbjsKK2NsYXNzIEltYWdlU291cmNlT2JzZXJ2ZXI7CiBjbGFzcyBJbnRQb2ludDsK
IGNsYXNzIEludFNpemU7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CkBAIC05Miw2ICs5Myw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgSW1hZ2VTb3VyY2UoQWxwaGFPcHRpb24gYWxwaGFPcHRpb24g
PSBBbHBoYVByZW11bHRpcGxpZWQsIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5k
Q29sb3JQcm9maWxlT3B0aW9uID0gR2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKKyAgICBJ
bWFnZVNvdXJjZShJbWFnZVNvdXJjZU9ic2VydmVyKiwgQWxwaGFPcHRpb24gPSBBbHBoYVByZW11
bHRpcGxpZWQsIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uID0gR2FtbWFBbmRDb2xvclByb2Zp
bGVBcHBsaWVkKTsKICAgICB+SW1hZ2VTb3VyY2UoKTsKIAogICAgIC8vIFRlbGxzIHRoZSBJbWFn
ZVNvdXJjZSB0aGF0IHRoZSBJbWFnZSBubyBsb25nZXIgY2FyZXMgYWJvdXQgZGVjb2RlZCBmcmFt
ZQpAQCAtMTM3LDkgKzEzOSwxMSBAQCBwdWJsaWM6CiAKICAgICBzaXplX3QgZnJhbWVDb3VudCgp
IGNvbnN0OwogCi0gICAgLy8gQ2FsbGVycyBzaG91bGQgbm90IGNhbGwgdGhpcyBhZnRlciBjYWxs
aW5nIGNsZWFyKCkgd2l0aCBhIGhpZ2hlciBpbmRleDsKKyAgICAvLyBOT1RFOiBDYWxsZXJzIHNo
b3VsZCBub3QgY2FsbCB0aGlzIGFmdGVyIGNhbGxpbmcgY2xlYXIoKSB3aXRoIGEgaGlnaGVyIGlu
ZGV4OwogICAgIC8vIHNlZSBjb21tZW50cyBvbiBjbGVhcigpIGFib3ZlLgotICAgIE5hdGl2ZUlt
YWdlUHRyIGNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QpOworICAgIC8vIE5PVEU6IElmIEltYWdl
U291cmNlIGhhcyBJbWFnZVNvdXJjZU9ic2VydmVyLCB0aGlzIG1ldGhvZCBzZW5kcyB0aGUgcmVz
dWx0IHZpYSBkaWREZWNvZGVGcmFtZUF0SW5kZXgoKS4KKyAgICAvLyBPdGhlcndpc2UsIHRoaXMg
bWV0aG9kIHJldHVybnMgdGhlIHJlc3VsdC4gZS5nLiBHcmFwaGljc0NvbnRleHQzRAorICAgIE5h
dGl2ZUltYWdlUHRyIHJlcXVlc3RGcmFtZUF0SW5kZXgoc2l6ZV90KTsKIAogICAgIGZsb2F0IGZy
YW1lRHVyYXRpb25BdEluZGV4RGVjb2RpbmdJZk5lY2Vzc2FyeShzaXplX3QpOwogICAgIGJvb2wg
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KTsgLy8gV2hldGhlciBvciBub3QgdGhlIGZyYW1l
IGFjdHVhbGx5IHVzZWQgYW55IGFscGhhLgpAQCAtMTUyLDcgKzE1NiwxMCBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogcHJpdmF0ZToKKyAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUF0SW5kZXgo
c2l6ZV90KTsKKwogICAgIE5hdGl2ZUltYWdlU291cmNlUHRyIG1fZGVjb2RlcjsKKyAgICBJbWFn
ZVNvdXJjZU9ic2VydmVyKiBtX29ic2VydmVyOwogICAgIEFscGhhT3B0aW9uIG1fYWxwaGFPcHRp
b247CiAgICAgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gbV9nYW1tYUFuZENvbG9yUHJvZmls
ZU9wdGlvbjsKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2VPYnNlcnZl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2VPYnNlcnZl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE1MTU4MjYxZTBmYTJhNDExMDc0ZjM0MzI0YWVlNjU5ZDdlNmJmZWEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZU9ic2VydmVyLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgSW1hZ2VTb3VyY2VPYnNlcnZlcl9oCisjZGVmaW5lIEltYWdlU291cmNlT2JzZXJ2ZXJfaAor
CisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisv
LyBJbnRlcmZhY2UgZm9yIG5vdGlmaWNhdGlvbiBhYm91dCBjaGFuZ2VzIHRvIGFuIEltYWdlU291
cmNlLCBpbmNsdWRpbmcgZGVjb2RpbmcuCitjbGFzcyBJbWFnZVNvdXJjZU9ic2VydmVyIHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVjb2RlRnJhbWVBdEluZGV4KHNpemVfdCwgTmF0
aXZlSW1hZ2VQdHIpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfkltYWdlU291cmNl
T2JzZXJ2ZXIoKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCmlu
ZGV4IDQ1ODUwYTgwM2FhNGQwMGZhNjcxMDQyODdhYjdkNTM5OTgzYzY4YzYuLmMxMTVhOWU1N2Nj
NmIwYjNiNmU3MWFlN2FkYmRmYThjMmVjNjc3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCkBA
IC00Miw2ICs0Miw3IEBAIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IEJpdG1hcEltYWdlOjpjcmVh
dGUoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2Uo
TmF0aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQog
ICAgIDogSW1hZ2Uob2JzZXJ2ZXIpCisgICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJy
ZW50RnJhbWUoMCkKICAgICAsIG1fZnJhbWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKaW5kZXggY2Y0NmM4MzNkMGUwZGVmZjFhNmQ0
M2VmM2Q3YWVjZGViNjM3NmY5Ny4uMjJkNGNiNjFmZDJkZGJmZGY2OTA5YmQyMjljZTIyYTFhNGI0
ZTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTE2NSw3ICsxNjUs
NyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1hZ2UqIGltYWdlLCB1
bnNpZ25lZCBpbnQgZm9ybWF0LCB1bnNpZ25lZAogICAgICAgICBkZWNvZGVyLnNldERhdGEoaW1h
Z2UtPmRhdGEoKSwgdHJ1ZSk7CiAgICAgICAgIGlmICghZGVjb2Rlci5mcmFtZUNvdW50KCkgfHwg
IWRlY29kZXIuZnJhbWVJc0NvbXBsZXRlQXRJbmRleERlY29kaW5nSWZOZWNlc3NhcnkoMCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIE93blB0cjxOYXRpdmVJbWFnZUNhaXJv
PiBuYXRpdmVJbWFnZSA9IGFkb3B0UHRyKGRlY29kZXIuY3JlYXRlRnJhbWVBdEluZGV4KDApKTsK
KyAgICAgICAgT3duUHRyPE5hdGl2ZUltYWdlQ2Fpcm8+IG5hdGl2ZUltYWdlID0gYWRvcHRQdHIo
ZGVjb2Rlci5yZXF1ZXN0RnJhbWVBdEluZGV4KDApKTsKICAgICAgICAgaW1hZ2VTdXJmYWNlID0g
bmF0aXZlSW1hZ2UtPnN1cmZhY2UoKTsKICAgICB9IGVsc2UgewogICAgICAgICBpbWFnZVN1cmZh
Y2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKS0+c3VyZmFjZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcAppbmRleCA1MGRlNTFmNDc5Mjc3OGU2YjM1OWJkZjY5YjNmYzk0ZGRi
OThhODYyLi45NzQ1M2FhMzI4MDkxMTZlMjIwOGEwY2QxZWQwZjcyYzhlZjdiODk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQz
RENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0
M0Q6OmdldEltYWdlRGF0YShJbWFnZSogaW1hZ2UsCiAgICAgICAgIGRlY29kZXIuc2V0RGF0YShp
bWFnZS0+ZGF0YSgpLCB0cnVlKTsKICAgICAgICAgaWYgKCFkZWNvZGVyLmZyYW1lQ291bnQoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZGVjb2RlZEltYWdlLmFkb3B0Q0Yo
ZGVjb2Rlci5jcmVhdGVGcmFtZUF0SW5kZXgoMCkpOworICAgICAgICBkZWNvZGVkSW1hZ2UuYWRv
cHRDRihkZWNvZGVyLnJlcXVlc3RGcmFtZUF0SW5kZXgoMCkpOwogICAgICAgICBjZ0ltYWdlID0g
ZGVjb2RlZEltYWdlLmdldCgpOwogICAgIH0gZWxzZQogICAgICAgICBjZ0ltYWdlID0gaW1hZ2Ut
Pm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCmluZGV4IGY1MzIwMzdkNTYxNDQ4NGEwNDk3ZDdm
OTk3ZTg1YzIzY2Y4YzJiZjIuLmM0MzBjNGQwYjliNjI3NGY0N2M4MjRhM2U1NzEwNDFkYTBkZGEz
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cu
Y3BwCkBAIC03MCw2ICs3MCw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0
YWRhdGEpCiAKIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShDR0ltYWdlUmVmIGNnSW1hZ2UsIElt
YWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIDogSW1hZ2Uob2JzZXJ2ZXIpCisgICAgLCBtX3Nv
dXJjZSh0aGlzKQogICAgICwgbV9jdXJyZW50RnJhbWUoMCkKICAgICAsIG1fZnJhbWVzKDApCiAg
ICAgLCBtX2ZyYW1lVGltZXIoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKaW5kZXggNzZhZmI4Y2EwNTI5OTliOTExY2Zh
YjgxM2FkOGJjNWNkMzY2NzY2ZS4uMTM0Yzg5NTRiOGUyZWVlOGE0MTMzZjA3NGViN2Q3NDFjMjhi
ZmNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VTb3VyY2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VTb3VyY2VDRy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJJbWFnZVNvdXJj
ZUNHLmgiCiAKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VT
b3VyY2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiSW50U2l6
ZS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKQEAgLTcyLDYgKzczLDE2IEBAIHZv
aWQgc2hhcmVkQnVmZmVyUmVsZWFzZSh2b2lkKiBpbmZvKQogCiBJbWFnZVNvdXJjZTo6SW1hZ2VT
b3VyY2UoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6
R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiAg
ICAgOiBtX2RlY29kZXIoMCkKKyAgICAsIG1fb2JzZXJ2ZXIoMCkKKyAgICAvLyBGSVhNRTogbV9w
cmVtdWx0aXBseUFscGhhIGlzIGlnbm9yZWQgaW4gY2cgYXQgdGhlIG1vbWVudC4KKyAgICAsIG1f
YWxwaGFPcHRpb24oYWxwaGFPcHRpb24pCisgICAgLCBtX2dhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uKGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQoreworfQorCitJbWFnZVNvdXJjZTo6SW1h
Z2VTb3VyY2UoSW1hZ2VTb3VyY2VPYnNlcnZlciogb2JzZXJ2ZXIsIEltYWdlU291cmNlOjpBbHBo
YU9wdGlvbiBhbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQorICAgIDogbV9kZWNvZGVyKDApCisgICAg
LCBtX29ic2VydmVyKG9ic2VydmVyKQogICAgIC8vIEZJWE1FOiBtX3ByZW11bHRpcGx5QWxwaGEg
aXMgaWdub3JlZCBpbiBjZyBhdCB0aGUgbW9tZW50LgogICAgICwgbV9hbHBoYU9wdGlvbihhbHBo
YU9wdGlvbikKICAgICAsIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24oZ2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24pCkBAIC0yOTksNiArMzEwLDE0IEBAIHNpemVfdCBJbWFnZVNvdXJjZTo6
ZnJhbWVDb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGVjb2RlciA/IENHSW1hZ2VTb3VyY2VH
ZXRDb3VudChtX2RlY29kZXIpIDogMDsKIH0KIAorQ0dJbWFnZVJlZiBJbWFnZVNvdXJjZTo6cmVx
dWVzdEZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgpCit7CisgICAgQ0dJbWFnZVJlZiBpbWFnZVJl
ZiA9IGNyZWF0ZUZyYW1lQXRJbmRleChpbmRleCk7CisgICAgaWYgKG1fb2JzZXJ2ZXIpCisgICAg
ICAgIG1fb2JzZXJ2ZXItPmRpZERlY29kZUZyYW1lQXRJbmRleChpbmRleCwgaW1hZ2VSZWYpOwor
ICAgIHJldHVybiBpbWFnZVJlZjsKK30KKwogQ0dJbWFnZVJlZiBJbWFnZVNvdXJjZTo6Y3JlYXRl
RnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKICAgICBpZiAoIWluaXRpYWxpemVkKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VP
cGVuVkcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdl
T3BlblZHLmNwcAppbmRleCA5NTEwODgyY2M4NTQ0MDY1NGE5ZGUwYmExOGRkN2Y0YTE5ZjIwZjA5
Li5lYjgwNjZjNDc0MDAzZWNhODFmMGUxNzJmN2FmZGE0OWQ2MDc0ZmEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5j
cHAKQEAgLTUyLDYgKzUyLDcgQEAgYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wgY2xlYXJNZXRh
ZGF0YSkKIAogQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKFRpbGVkSW1hZ2VPcGVuVkcqIHRpbGVk
SW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIDogSW1hZ2Uob2JzZXJ2ZXIpCisg
ICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9zaXplKHRpbGVkSW1hZ2UtPnNpemUoKSkKICAg
ICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2ZyYW1lcygxKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAppbmRleCA3ODY0ZTlmNjhmNjVh
NzkzMzQ4NmQ4NTVjZjUyZTUwZmJlNWYwYjE4Li41MWQ2YzEyY2E0MWIyNjYyOTQwNjk0NWNjNzNh
NjUzMmY4OGQzZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZVF0LmNwcApAQCAtMjAxLDYgKzIwMSw3IEBAIHZvaWQgSW1hZ2U6OmRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QK
IAogQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKFFJbWFnZSogaW1hZ2UsIEltYWdlT2JzZXJ2ZXIq
IG9ic2VydmVyKQogICAgIDogSW1hZ2Uob2JzZXJ2ZXIpCisgICAgLCBtX3NvdXJjZSh0aGlzKQog
ICAgICwgbV9jdXJyZW50RnJhbWUoMCkKICAgICAsIG1fZnJhbWVzKDApCiAgICAgLCBtX2ZyYW1l
VGltZXIoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAppbmRleCA4NTBjYWFiZDg4OGQ4
YzkxODJlMmIwOWQwNTcyZTJmMTcxMjM4ZDY1Li42ZDVmN2QxYThjYjEzMzcwNWZlZTRjYzNjZjM2
MDgyNjU1OGMzYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3BwCkBAIC02Myw3ICs2
Myw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWFnZSogaW1hZ2Us
CiAgICAgICAgIGlmICghZGVjb2Rlci5mcmFtZUNvdW50KCkgfHwgIWRlY29kZXIuZnJhbWVJc0Nv
bXBsZXRlQXRJbmRleERlY29kaW5nSWZOZWNlc3NhcnkoMCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGhhc0FscGhhID0gZGVjb2Rlci5mcmFtZUhhc0FscGhhQXRJbmRleCgw
KTsKLSAgICAgICAgcGl4ZWxzID0gYWRvcHRQdHIoZGVjb2Rlci5jcmVhdGVGcmFtZUF0SW5kZXgo
MCkpOworICAgICAgICBwaXhlbHMgPSBhZG9wdFB0cihkZWNvZGVyLnJlcXVlc3RGcmFtZUF0SW5k
ZXgoMCkpOwogICAgICAgICBpZiAoIXBpeGVscy5nZXQoKSB8fCAhcGl4ZWxzLT5pc0RhdGFDb21w
bGV0ZSgpIHx8ICFwaXhlbHMtPmJpdG1hcCgpLndpZHRoKCkgfHwgIXBpeGVscy0+Yml0bWFwKCku
aGVpZ2h0KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIFNrQml0bWFwOjpD
b25maWcgc2tpYUNvbmZpZyA9IHBpeGVscy0+Yml0bWFwKCkuY29uZmlnKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCmluZGV4IGQ3ZDBhMGYw
ZGRhNzdlMzQzODYwNDU3ZTRlYTI4YzI4MDk5NzcxY2YuLjgzNTY0MThlZjg4NGI0NWJmZDhhYWVl
OGZkMzZjNDMwNjI4NDFkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ltYWdlV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3d4L0ltYWdlV3guY3BwCkBAIC04Miw2ICs4Miw3IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IElt
YWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyICpuYW1lKQogCiBCaXRtYXBJbWFn
ZTo6Qml0bWFwSW1hZ2UoY29uc3Qgd3hCaXRtYXAmIGJpdG1hcCkKICAgICA6IEltYWdlKDApCisg
ICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJyZW50RnJhbWUoMCkKICAgICAsIG1fZnJh
bWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbWFnZVNraWEuY3BwCmluZGV4IGUxYTkyNjA1MDYyODFkODlhMjhmYTBjZDI0MDMzZDAz
OTcxODA1YzcuLjJkNDMxMmI2OTQ2MjRkNTBmMWM4ODBiODQxNGQ1ZjI1NjBiZmViM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcApAQCAtNzksNyArNzks
NyBAQCBXZWJJbWFnZSBXZWJJbWFnZTo6ZnJvbURhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29u
c3QgV2ViU2l6ZSYgZGVzaXJlZFNpemUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBPd25QdHI8
TmF0aXZlSW1hZ2VTa2lhPiBmcmFtZSA9IGFkb3B0UHRyKHNvdXJjZS5jcmVhdGVGcmFtZUF0SW5k
ZXgoaW5kZXgpKTsKKyAgICBPd25QdHI8TmF0aXZlSW1hZ2VTa2lhPiBmcmFtZSA9IGFkb3B0UHRy
KHNvdXJjZS5yZXF1ZXN0RnJhbWVBdEluZGV4KGluZGV4KSk7CiAgICAgaWYgKCFmcmFtZSkKICAg
ICAgICAgcmV0dXJuIFdlYkltYWdlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157406</attachid>
            <date>2012-08-09 00:20:18 -0700</date>
            <delta_ts>2012-08-10 02:09:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93467-20120809161923.patch</filename>
            <type>text/plain</type>
            <size>43756</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE2NjIyOWQ5ODc4NTAx
MTZjNGM1ZDc3NTZhZWRlYTA0M2Y2ODMxMi4uMDcxZjYyNWEwMGVjNTU0ZDNmMWE2YjQ2MDI4YzNj
M2M3NWM4MzgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk0IEBACiAyMDEyLTA4LTA5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENoYW5nZSBJ
bWFnZVNvdXJjZSB0byBiZSBhc3luY2hyb25vdXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBBUEkgb2YgSW1hZ2VT
b3VyY2Ugc3VwcG9ydCBhc3luY2hyb25vdXMgaW1hZ2UgZGVjb2RpbmcuIFRoaXMKKyAgICAgICAg
aXMgYSBwcmVwYXJhdGlvbiBmb3IgYXN5bmNocm9ub3VzIGltYWdlIGRlY29kaW5nLiBBZnRlciBJ
bWFnZVNvdXJjZQorICAgICAgICBjb21wbGV0ZXMgaW1hZ2UgZGVjb2RpbmcsIEltYWdlU291cmNl
IHNlbmRzIE5hdGl2ZUltYWdlUHRyIHRvIEJpdG1hcEltYWdlIHZpYQorICAgICAgICBJbWFnZVNv
dXJjZU9ic2VydmVyOjpkaWREZWNvZGVGcmFtZUF0SW5kZXgoKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHJlbmFtZXMgY3JlYXRlRnJhbWVBdEluZGV4IHRvIHJlcXVlc3RGcmFtZUF0SW5kZXgsIHRv
IGltcGx5CisgICAgICAgIHRoaXMgbWV0aG9kIGNhbiBiZSBhc3luY2hyb25vdXMuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VkIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UsIHdoaWNoIGRl
Y29kZXMgaW1hZ2Ugc3luY2hyb25vdXNseS4KKyAgICAgICAgVGhlIG1haW4gcmVhc29uIHRvIGFk
ZCB0aGlzIGNsYXNzIGlzIHRvIHByZXZlbnQgY2xpZW50cyBmcm9tIG1pc3VzaW5nCisgICAgICAg
IEltYWdlU291cmNlLiBJbWFnZVNvdXJjZSB3aWxsIGJlIGFibGUgdG8gcGVyZm9ybSBzeW5jIGFu
ZCBhc3luYyBpbWFnZSBkZWNvZGluZywKKyAgICAgICAgc28gaXQgd2lsbCBiZSBoYXJkIHRvIHVz
ZSBJbWFnZVNvdXJjZSBjb3JyZWN0bHkuIFNvLCBhZnRlciB0aGlzIHBhdGNoLCBvbmx5CisgICAg
ICAgIEJpdG1hcEltYWdlIGFuZCBTeW5jaHJvbm91c0ltYWdlU291cmNlIGNhbiBjcmVhdGUgYW5k
IHVzZSBJbWFnZVNvdXJjZSwgYW5kIG90aGVyCisgICAgICAgIGNsaWVudHMgd2hpY2ggbmVlZCB0
byB1c2UgSW1hZ2VTb3VyY2UgbXVzdCB1c2UgU3luY2hyb25vdXNJbWFnZVNvdXJjZS4KKyAgICAg
ICAgQ3VycmVudGx5LCBHcmFwaGljc0NvbnRleHQzRCBhbmQgV2ViSW1hZ2VTa2lhIHVzZSBTeW5j
aHJvbm91c0ltYWdlU291cmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGV4aXN0aW5nIGlt
YWdlIHRlc3RzIGNvdmVyIHRoZXNlIGNhc2VzLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRpZERlY29kZUZy
YW1lQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoK
KyAgICAgICAgKEJpdG1hcEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnJlcXVlc3RGcmFtZUF0SW5kZXgpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW1hZ2VTb3VyY2UpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKEltYWdlU291cmNlT2JzZXJ2ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2VPYnNlcnZlcjo6fkltYWdlU291cmNlT2JzZXJ2ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW1hZ2VTb3VyY2VPYnNlcnZlckltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2VPYnNlcnZlckltcGw6OkltYWdlU291cmNl
T2JzZXJ2ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlT2JzZXJ2ZXJJbXBs
Ojp+SW1hZ2VTb3VyY2VPYnNlcnZlckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3Vy
Y2VPYnNlcnZlckltcGw6OmRpZERlY29kZUZyYW1lQXRJbmRleCk6CisgICAgICAgIChXZWJDb3Jl
OjpTeW5jaHJvbm91c0ltYWdlU291cmNlOjpTeW5jaHJvbm91c0ltYWdlU291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6On5TeW5jaHJvbm91c0ltYWdlU291
cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OnNldERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6ZmlsZW5hbWVFeHRl
bnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6aXNTaXpl
QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OnNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVTaXpl
QXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c0ltYWdlU291cmNlOjpmcmFt
ZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmNyZWF0
ZUZyYW1lQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c0ltYWdlU291cmNl
OjpmcmFtZUhhc0FscGhhQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c0lt
YWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9TeW5jaHJvbm91c0ltYWdlU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChTeW5jaHJvbm91c0ltYWdlU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpJbWFnZVNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVNvdXJjZTo6cmVxdWVzdEZyYW1lQXRJbmRleCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9H
cmFwaGljc0NvbnRleHQzRFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1h
Z2VXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgor
CisyMDEyLTA4LTA5ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0Pgor
CiAgICAgICAgIFJlbmFtZSB0d28gbWV0aG9kcyBvZiBCaXRtYXBJbWFnZSBpbiBvcmRlciB0byBj
bGFyaWZ5IHRoZSBpbnRlbnRpb246IGZyYW1lRHVyYXRpb25BdEluZGV4KCkgYW5kIGZyYW1lSXND
b21wbGV0ZUF0SW5kZXgoKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkzNDY0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTAwNzM5ZWVi
NDY5YWFjOGI3YzE0ZTZiNjQxYjBjMTU0MWZhZjE3OS4uMThiNDdhNmY0MTE4ZTFkYmU4OGExOTg0
ZGZmNzczNWJiNDY5YTRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMi0wOC0wOSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5l
dD4KKworICAgICAgICBDaGFuZ2UgSW1hZ2VTb3VyY2UgdG8gYmUgYXN5bmNocm9ub3VzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM0NjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlu
dHJvZHVjZWQgU3luY2hyb25vdXNJbWFnZVNvdXJjZSwgYW5kIGFsbCBjbGllbnRzIHdoaWNoIHVz
ZWQKKyAgICAgICAgSW1hZ2VTb3VyY2UgbXVzdCB1c2UgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBp
bnN0ZWFkIG9mIEltYWdlU291cmNlLgorCisgICAgICAgICogc3JjL1dlYkltYWdlU2tpYS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkltYWdlOjpmcm9tRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkltYWdlOjpmcmFtZXNGcm9tRGF0YSk6CisKIDIwMTItMDgtMDggIFNoYW5lIFN0ZXBoZW5z
ICA8c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgogCiAgICAgICAgIENvbXBpbGUgZmxhZyBmb3Ig
Q1NTIEhpZXJhcmNoaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA3ODAzYTdj
NjljM2JkMTU5OWFiMWEzYTAyZGU5MDIwYjQ4NDlmZmE1Li5kMTFlOTg0OTBlZmM0MjY1YWU1Njc1
NGZiMjVjMzFkMWY3NDhkOTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM0
MTIsNiArMzQxMiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW50UG9pbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50
UG9pbnRIYXNoLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3Qu
Y3BwIFwKQEAgLTM0NDYsNiArMzQ0Nyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9y
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NWR0dseXBoLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU1ZHR2x5cGguaCBcCisJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJlbmRlcmluZ01vZGUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBm
NDMxNzVkZTYxN2U3YzVhZTZkOTU4ZTg1NDZjY2E5M2QxMDIyZjA4Li40ZTZjNmJhMGZmMTk5MmM5
NDQ1YjNmNTc2OGJkZDU1NWE1ZmE4MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk2OCw2ICs5NjgsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TVkdHbHlwaC5jcHAgXAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hy
b25vdXNJbWFnZVNvdXJjZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dy
YXBoaWNzU3VyZmFjZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL3F0L0dy
YXBoaWNzU3VyZmFjZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5jcHAg
XApAQCAtMjA4Miw2ICsyMDgzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIFwKKyAgICBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBv
aW50LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50SGFzaC5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggXApAQCAtMjEwMSw2ICsyMTAzLDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU2VnbWVudGVkRm9udERhdGEuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdlU291
cmNlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggNWExOGRiNzIyMDlmZjgyNTJjY2YwZThmYWRkNzU1ODczY2Y1OGM5
NS4uYjE1M2RkNWU3OWU1OTg4MGQ0ZGU5ZjQ1YTNmZGUwOTRmYmEzMTQ4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMzkwLDYgKzM5MCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VPYnNlcnZlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnRIYXNoLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaCcsCkBAIC00MDUsNiArNDA2LDcgQEAKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvU1ZHR2x5cGguaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
U3luY2hyb25vdXNJbWFnZVNvdXJjZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0UmVuZGVyaW5nTW9kZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1R5cGVzZXR0aW5nRmVh
dHVyZXMuaCcsCkBAIC0zNTQ5LDYgKzM1NTEsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL1N0cm9rZVN0eWxlQXBwbGllci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9UaWxlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDkyNTZlNDc2MzNmMmI2YzRjMjQ1NjBhZjBiNWFjMzI4
NzgzZWJkMWIuLjQ4MDFjYzE1MWMxOGFiNzI4YzAwMDVlZTZiYTc4YjQ0N2M0ZTU0ODMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yOTUyMiw2
ICsyOTUyMiwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSW1hZ2VTb3VyY2VPYnNlcnZlci5oIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcSW50UG9pbnQuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTI5NjIyLDYg
KzI5NjI2LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xTeW5jaHJvbm91c0ltYWdlU291cmNlLmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XFRleHRSdW4uY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRkZGU2YTM0NGUwNmFjOWYy
MjU4Nzc4Nzk2YWI4YTBjMDQ1NTdmMjYuLmQ3OTIxMTYxMTZkODQ2NWQxYzk2NTg1YTk1YjRiNWRi
OTAyMzliOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQ4MjEsNiArNDgyMSw3IEBACiAJCUIyNzUzNTZGMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjc1MzU0MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwICovOyB9OwogCQlC
Mjc1MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTQyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFn
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIy
NzUzNTcxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8q
IEltYWdlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJQjI3NTM1NzEwQjA1MzgxNDAwMkNFNjRFIC8qIEltYWdlU291cmNlT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTQz
MEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1NzIwQjA1MzgxNDAwMkNF
NjRGIC8qIEludFBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjc1MzU0NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjc1MzU3MzBCMDUzODE0
MDAyQ0U2NEYgLyogSW50UmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMjc1MzU0NTBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5jcHAgKi87
IH07CiAJCUIyNzUzNTc0MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0NjBCMDUzODE0MDAyQ0U2
NEYgLyogSW50UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC00ODM3LDYgKzQ4MzgsOCBAQAogCQlCMjc1MzU3RTBCMDUzODE0MDAyQ0U2NEYg
LyogSW50U2l6ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyNzUzNTUxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplTWFjLm1tICovOyB9Owog
CQlCMjc1MzU3RjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MjBCMDUzODE0MDAyQ0U2NEYgLyog
UGF0aC5jcHAgKi87IH07CiAJCUIyNzUzNTgwMEIwNTM4MTQwMDJDRTY0RiAvKiBQYXRoLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MzBCMDUz
ODE0MDAyQ0U2NEYgLyogUGF0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUE5OTk0MzI5MEI0MjMzODgwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0lt
YWdlU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE5OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNlLmNw
cCAqLzsgfTsKKwkJQjM3NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIFN5bmNocm9ub3VzSW1hZ2VT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIz
NzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1OEUwQjA1
M0E2NjAwMkNFNjRGIC8qIEljb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU4RDBCMDUzQTY2MDAyQ0U2NEYgLyogSWNvbk1hYy5tbSAq
LzsgfTsKIAkJQjI3N0I0MDQwQjIyRjM3QzAwMDRCRUM2IC8qIEdyYXBoaWNzQ29udGV4dE1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzdCNDAz
MEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0gKi87IH07CiAJCUIyN0Iy
ODI1MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODFGMENFRjBDMDcwMEQzOUQ1
NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTEyMDU5LDYgKzEyMDYyLDcgQEAK
IAkJQjI3NTM1NDEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUIyNzUzNTQyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCMjc1MzU0MzBCMDUzODE0MDAyQ0U2NEUgLyogSW1hZ2VTb3VyY2VPYnNlcnZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VTb3VyY2VPYnNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU0NDBCMDUzODE0MDAyQ0U2
NEYgLyogSW50UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludFBv
aW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNTQ1MEIwNTM4MTQwMDJD
RTY0RiAvKiBJbnRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NDYwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEludFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDc1LDYgKzEy
MDc5LDggQEAKIAkJQjI3NTM1NTEwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemVNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW50U2l6ZU1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NTIwQjA1MzgxNDAwMkNFNjRGIC8qIFBh
dGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGguY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU1MzBCMDUzODE0MDAyQ0U2NEYgLyog
UGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0aC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogU3luY2hy
b25vdXNJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUIzNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW5jaHJvbm91c0ltYWdlU291cmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNThEMEIwNTNBNjYwMDJDRTY0
RiAvKiBJY29uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEljb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzdCNDAzMEIyMkYz
N0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0TWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMjdCMjgxRjBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdGb250
RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTgyNCw2ICsxOTgz
MCw3IEBACiAJCQkJQTg3NDhENjYxMkNDMzc2MzAwMUZCQTQxIC8qIEltYWdlT3JpZW50YXRpb24u
aCAqLywKIAkJCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2Rl
LmggKi8sCiAJCQkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggKi8s
CisJCQkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRFIC8qIEltYWdlU291cmNlT2JzZXJ2ZXIuaCAq
LywKIAkJCQlCMjc1MzU0NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAqLywKIAkJCQlF
NDYyQTRBMDExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggKi8sCiAJCQkJQjI3NTM1
NDUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwICovLApAQCAtMTk4NTgsNiArMTk4NjUs
OCBAQAogCQkJCTA4NzU1OEM0MTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJyb2dhdGVQYWlyQXdhcmVU
ZXh0SXRlcmF0b3IuaCAqLywKIAkJCQkwODdFMEFGNDEzNjA2RDBCMDBGQTRCQTggLyogU1ZHR2x5
cGguY3BwICovLAogCQkJCTA4N0UwQUY1MTM2MDZEMEIwMEZBNEJBOCAvKiBTVkdHbHlwaC5oICov
LAorCQkJCUE5OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNl
LmNwcCAqLywKKwkJCQlCMzc1MzU0MzBCMDUzODE0MDAyQ0U2NEYgLyogU3luY2hyb25vdXNJbWFn
ZVNvdXJjZS5oICovLAogCQkJCTkzMEZDNjg5MTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVy
aW5nTW9kZS5oICovLAogCQkJCTM3NkRDQ0UwMTNCNEY5NjYwMDJFQkVGQyAvKiBUZXh0UnVuLmNw
cCAqLywKIAkJCQlBODI0QjQ2NDBFMkVGMkVBMDA4MUE3QjcgLyogVGV4dFJ1bi5oICovLApAQCAt
MjM1ODUsNiArMjM1OTQsNyBAQAogCQkJCTJENUE1OTMxMTUyNTI1RDAwMDM2RUU1MSAvKiBJbWFn
ZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUz
REUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU3MTBC
MDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUIyNzUz
NTcxMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9ic2VydmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VTb3VyY2VDRy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzE2RkUxMTgwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxMjAsNiArMjUxMzAsNyBA
QAogCQkJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QUY2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdab29tQW5kUGFu
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkU0RUM5ODBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9v
bUV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCMzc1MzU3MTBCMDUzODE0MDAyQ0U2NEYgLyog
U3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNFNjJEOUIwOTg1
RjQxNjAwRTFCNUUzIC8qIFN5c3RlbVRpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGMDUx
MEExNTRGMDkwMDBBNDIzNCAvKiBUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNF
M0JFQzMwRDIyMkIxRDAwN0UwNkU0IC8qIFRhZ05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKQEAg
LTI4MjM1LDYgKzI4MjQ2LDcgQEAKIAkJCQk4NDg1MjI4QTExOTAxNzNDMDA2RURDN0YgLyogU1ZH
Vktlcm5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QUY1MEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdab29tQW5kUGFuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRTRFQzk3MEQw
MEMyMkIwMDQzMjY0MyAvKiBTVkdab29tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTk5
OTQzMjkwQjQyMzM4ODAwRDdDODAyIC8qIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNjU4MkExNjMwOTk5OUQ2RDAwQkVFQjZEIC8qIFN5c3RlbVRpbWVNYWMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFM0JFQzIwRDIyMkIxRDAwN0UwNkU0IC8qIFRhZ05v
ZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREQ1MTI1MUYxMkQwMDNFRjI2OSAv
KiBUZWxlcGhvbmVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggZWJiOGQ3ODkwNzRk
MWVjZjQwNjkwYmY2MjNlMGE3Yjk5OGM4MTA2Ni4uNzUzMjMyNWExZmRmMGNiMDVlZTIyM2E5NTg1
YTQxNDI0Y2U5NDQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQCBzdGF0aWMgaW50IGZyYW1lQnl0ZXMo
Y29uc3QgSW50U2l6ZSYgZnJhbWVTaXplKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoSW1h
Z2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZlcikKKyAgICAsIG1fc291
cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgwKQogICAgICwgbV9mcmFtZXMoMCkKICAg
ICAsIG1fZnJhbWVUaW1lcigwKQpAQCAtMTI5LDEyICsxMzAsMTcgQEAgdm9pZCBCaXRtYXBJbWFn
ZTo6ZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KGludCBmcmFtZXNDbGVhcmVkKQogdm9pZCBCaXRt
YXBJbWFnZTo6Y2FjaGVGcmFtZShzaXplX3QgaW5kZXgpCiB7CiAgICAgc2l6ZV90IG51bUZyYW1l
cyA9IGZyYW1lQ291bnQoKTsKLSAgICBBU1NFUlQobV9kZWNvZGVkU2l6ZSA9PSAwIHx8IG51bUZy
YW1lcyA+IDEpOwotICAgIAogICAgIGlmIChtX2ZyYW1lcy5zaXplKCkgPCBudW1GcmFtZXMpCiAg
ICAgICAgIG1fZnJhbWVzLmdyb3cobnVtRnJhbWVzKTsKIAotICAgIG1fZnJhbWVzW2luZGV4XS5t
X2ZyYW1lID0gbV9zb3VyY2UuY3JlYXRlRnJhbWVBdEluZGV4KGluZGV4KTsKKyAgICBtX3NvdXJj
ZS5yZXF1ZXN0RnJhbWVBdEluZGV4KGluZGV4KTsKK30KKwordm9pZCBCaXRtYXBJbWFnZTo6ZGlk
RGVjb2RlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCwgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1h
Z2UpCit7CisgICAgbV9mcmFtZXNbaW5kZXhdLm1fZnJhbWUgPSBuYXRpdmVJbWFnZTsKKworICAg
IHNpemVfdCBudW1GcmFtZXMgPSBmcmFtZUNvdW50KCk7CiAgICAgaWYgKG51bUZyYW1lcyA9PSAx
ICYmIG1fZnJhbWVzW2luZGV4XS5tX2ZyYW1lKQogICAgICAgICBjaGVja0ZvclNvbGlkQ29sb3Io
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgK
aW5kZXggNmJlOTc2MWM3MjI5MmE1ZTg4YTI3ODk1MTU0NjkyNDY3ZWU0ODI1NC4uODk2YzkyZTdj
N2QzN2ZmYTY1M2I2Yzk2YjY4ZGExMzIyN2IxMTM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiQ29sb3IuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSW1h
Z2VTb3VyY2UuaCIKKyNpbmNsdWRlICJJbWFnZVNvdXJjZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
SW50U2l6ZS5oIgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtOTksNyArMTAwLDcgQEAgcHVibGlj
OgogLy8gQml0bWFwSW1hZ2UgQ2xhc3MKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KIAotY2xhc3MgQml0bWFwSW1hZ2UgOiBwdWJsaWMgSW1hZ2Ug
eworY2xhc3MgQml0bWFwSW1hZ2UgOiBwdWJsaWMgSW1hZ2UsIHB1YmxpYyBJbWFnZVNvdXJjZU9i
c2VydmVyIHsKICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJpZW5kIGNs
YXNzIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZTsKQEAgLTE4MCw2ICsxODEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIG5vdFNvbGlkQ29sb3IoKTsKICNlbmRpZgogCisgICAgLy8gSW1hZ2VTb3VyY2VPYnNlcnZl
cgorICAgIHZpcnR1YWwgdm9pZCBkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6ZV90LCBOYXRpdmVJ
bWFnZVB0cik7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVTaXplKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRl
eCBjNDMzZGU0MDEyZTk4OGRjNmY5MDkxNjk3ODc1NTMwNTY3MTUxYjZiLi43ZjUzMDM5ZTgxZjVh
MDc3OGE3YzJkNDk0ODRlNDIzY2Y5YTAwZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiSW1hZ2VEZWNvZGVyLmgiCiAKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCisjaW5j
bHVkZSAiSW1hZ2VTb3VyY2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDExICs0MSwxMyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB1bnNpZ25lZCBJbWFnZVNvdXJjZTo6c19tYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2Ug
PSAxMDI0ICogMTAyNDsKICNlbmRpZgogCi1JbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoSW1hZ2VT
b3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCitJbWFnZVNvdXJjZTo6
SW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2VPYnNlcnZlciogb2JzZXJ2ZXIsIEltYWdlU291cmNlOjpB
bHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxl
T3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQogICAgIDogbV9kZWNvZGVyKDApCisg
ICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQogICAgICwgbV9hbHBoYU9wdGlvbihhbHBoYU9wdGlv
bikKICAgICAsIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24oZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pCiB7CisgICAgQVNTRVJUKG1fb2JzZXJ2ZXIpOwogfQogCiBJbWFnZVNvdXJjZTo6
fkltYWdlU291cmNlKCkKQEAgLTEzNyw2ICsxNDAsMTQgQEAgc2l6ZV90IEltYWdlU291cmNlOjpm
cmFtZUNvdW50KCkgY29uc3QKICAgICByZXR1cm4gbV9kZWNvZGVyID8gbV9kZWNvZGVyLT5mcmFt
ZUNvdW50KCkgOiAwOwogfQogCit2b2lkIEltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4
KHNpemVfdCBpbmRleCwgYm9vbCkKK3sKKyAgICAvLyBUT0RPOiBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGRlY29kaW5nLgorICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlID0gY3JlYXRlRnJh
bWVBdEluZGV4KGluZGV4KTsKKyAgICBBU1NFUlQobV9vYnNlcnZlcik7CisgICAgbV9vYnNlcnZl
ci0+ZGlkRGVjb2RlRnJhbWVBdEluZGV4KGluZGV4LCBuYXRpdmVJbWFnZSk7Cit9CisKIE5hdGl2
ZUltYWdlUHRyIEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQog
ewogICAgIGlmICghbV9kZWNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmgKaW5kZXggNDBkNzU3ZmEwOWEzY2Y2ZWJlNmJkMDUyMTgzNjdjNDNl
ZWI3MDI5Ni4uMGU5MDlhYmZjNTExOTlkN2EwYWE3ZDI4N2RiM2Q1MDZkZDJmZDgxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC00Miw5
ICs0MiwxMSBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGRGF0YSogQ0ZEYXRhUmVmOwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbWFnZU9yaWVudGF0aW9uOworY2xhc3MgSW1hZ2VT
b3VyY2VPYnNlcnZlcjsKIGNsYXNzIEludFBvaW50OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNo
YXJlZEJ1ZmZlcjsKK2NsYXNzIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U7CiAKICNpZiBVU0UoQ0cp
CiB0eXBlZGVmIENHSW1hZ2VTb3VyY2VSZWYgTmF0aXZlSW1hZ2VTb3VyY2VQdHI7CkBAIC03Myw2
ICs3NSw4IEBAIGNvbnN0IGludCBjQW5pbWF0aW9uTm9uZSA9IC0yOwogCiBjbGFzcyBJbWFnZVNv
dXJjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VTb3VyY2UpOworICAgIGZyaWVu
ZCBjbGFzcyBCaXRtYXBJbWFnZTsKKyAgICBmcmllbmQgY2xhc3MgU3luY2hyb25vdXNJbWFnZVNv
dXJjZTsKIHB1YmxpYzoKICAgICBlbnVtIEFscGhhT3B0aW9uIHsKICAgICAgICAgQWxwaGFQcmVt
dWx0aXBsaWVkLApAQCAtOTEsNyArOTUsNiBAQCBwdWJsaWM6CiAgICAgfTsKICNlbmRpZgogCi0g
ICAgSW1hZ2VTb3VyY2UoQWxwaGFPcHRpb24gYWxwaGFPcHRpb24gPSBBbHBoYVByZW11bHRpcGxp
ZWQsIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9u
ID0gR2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKICAgICB+SW1hZ2VTb3VyY2UoKTsKIAog
ICAgIC8vIFRlbGxzIHRoZSBJbWFnZVNvdXJjZSB0aGF0IHRoZSBJbWFnZSBubyBsb25nZXIgY2Fy
ZXMgYWJvdXQgZGVjb2RlZCBmcmFtZQpAQCAtMTA4LDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICAv
LyBkZWNvZGVkIGZyYW1lcy4KICAgICAvLwogICAgIC8vIENhbGxlcnMgc2hvdWxkIG5vdCBjYWxs
IGNsZWFyKGZhbHNlLCBuKSBhbmQgc3Vic2VxdWVudGx5IGNhbGwKLSAgICAvLyBjcmVhdGVGcmFt
ZUF0SW5kZXgobSkgd2l0aCBtIDwgbiwgdW5sZXNzIHRoZXkgZmlyc3QgY2FsbCBjbGVhcih0cnVl
KS4KKyAgICAvLyByZXF1ZXN0RnJhbWVBdEluZGV4KG0pIHdpdGggbSA8IG4sIHVubGVzcyB0aGV5
IGZpcnN0IGNhbGwgY2xlYXIodHJ1ZSkuCiAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgc3RhdGVm
dWwgSW1hZ2VTb3VyY2VzL2RlY29kZXJzIHdpbGwgd29yayBwcm9wZXJseS4KICAgICAvLwogICAg
IC8vIFRoZSB8ZGF0YXwgYW5kIHxhbGxEYXRhUmVjZWl2ZWR8IHBhcmFtZXRlcnMgc2hvdWxkIGJl
IHN1cHBsaWVkIGJ5IGNhbGxlcnMKQEAgLTEzNyw5ICsxNDAsOSBAQCBwdWJsaWM6CiAKICAgICBz
aXplX3QgZnJhbWVDb3VudCgpIGNvbnN0OwogCi0gICAgLy8gQ2FsbGVycyBzaG91bGQgbm90IGNh
bGwgdGhpcyBhZnRlciBjYWxsaW5nIGNsZWFyKCkgd2l0aCBhIGhpZ2hlciBpbmRleDsKKyAgICAv
LyBOT1RFOiBDYWxsZXJzIHNob3VsZCBub3QgY2FsbCB0aGlzIGFmdGVyIGNhbGxpbmcgY2xlYXIo
KSB3aXRoIGEgaGlnaGVyIGluZGV4OwogICAgIC8vIHNlZSBjb21tZW50cyBvbiBjbGVhcigpIGFi
b3ZlLgotICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QpOworICAg
IHZvaWQgcmVxdWVzdEZyYW1lQXRJbmRleChzaXplX3QsIGJvb2wgdXNlQXN5bmNocm9ub3VzRGVj
b2RpbmdJZlBvc3NpYmxlID0gZmFsc2UpOwogCiAgICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5k
ZXgoc2l6ZV90KTsKICAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCk7IC8vIFdo
ZXRoZXIgb3Igbm90IHRoZSBmcmFtZSBhY3R1YWxseSB1c2VkIGFueSBhbHBoYS4KQEAgLTE1Miw3
ICsxNTUsMTEgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6CisgICAgSW1hZ2VTb3VyY2Uo
SW1hZ2VTb3VyY2VPYnNlcnZlciosIEFscGhhT3B0aW9uID0gQWxwaGFQcmVtdWx0aXBsaWVkLCBH
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiA9IEdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7
CisgICAgTmF0aXZlSW1hZ2VQdHIgY3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCk7CisKICAgICBO
YXRpdmVJbWFnZVNvdXJjZVB0ciBtX2RlY29kZXI7CisgICAgSW1hZ2VTb3VyY2VPYnNlcnZlciog
bV9vYnNlcnZlcjsKICAgICBBbHBoYU9wdGlvbiBtX2FscGhhT3B0aW9uOwogICAgIEdhbW1hQW5k
Q29sb3JQcm9maWxlT3B0aW9uIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb247CiAjaWYgRU5B
QkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
NTE1ODI2MWUwZmEyYTQxMTA3NGYzNDMyNGFlZTY1OWQ3ZTZiZmVhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2VPYnNlcnZlci5o
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEltYWdlU291cmNlT2Jz
ZXJ2ZXJfaAorI2RlZmluZSBJbWFnZVNvdXJjZU9ic2VydmVyX2gKKworI2luY2x1ZGUgIk5hdGl2
ZUltYWdlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gSW50ZXJmYWNlIGZvciBu
b3RpZmljYXRpb24gYWJvdXQgY2hhbmdlcyB0byBhbiBJbWFnZVNvdXJjZSwgaW5jbHVkaW5nIGRl
Y29kaW5nLgorY2xhc3MgSW1hZ2VTb3VyY2VPYnNlcnZlciB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB2b2lkIGRpZERlY29kZUZyYW1lQXRJbmRleChzaXplX3QsIE5hdGl2ZUltYWdlUHRyKSA9IDA7
CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5JbWFnZVNvdXJjZU9ic2VydmVyKCkgeyB9Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdlU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kY2EzMzEw
ZjA4Yjc2ZTliM2QxMmQ5NzJhZTgzYzM1YTMzMmNhYjllCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAK
QEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxw
IFRva2VyIDxhbHAudG9rZXJAY29sbGFib3JhLmNvLnVrPgorICogQ29weXJpZ2h0IChDKSAyMDA4
LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3
LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEw
MCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2UuaCIKKworI2luY2x1ZGUgIkltYWdlU291cmNlT2JzZXJ2ZXIuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW1hZ2VTb3VyY2VPYnNlcnZlckltcGwgOiBwdWJs
aWMgSW1hZ2VTb3VyY2VPYnNlcnZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VT
b3VyY2VPYnNlcnZlckltcGwpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsKCkKKyAgICAgICAgOiBtX25hdGl2ZUltYWdl
UHRyKCkKKyAgICB7IH0KKworICAgIHZpcnR1YWwgfkltYWdlU291cmNlT2JzZXJ2ZXJJbXBsKCkg
eyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVjb2RlRnJhbWVBdEluZGV4KHNpemVfdCwgTmF0
aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VQdHIpCisgICAgeworICAgICAgICBtX25hdGl2ZUltYWdl
UHRyID0gbmF0aXZlSW1hZ2VQdHI7CisgICAgfQorCisgICAgTmF0aXZlSW1hZ2VQdHIgbV9uYXRp
dmVJbWFnZVB0cjsKK307CisKK1N5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OlN5bmNocm9ub3VzSW1h
Z2VTb3VyY2UoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJj
ZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24p
CisgICAgOiBtX29ic2VydmVyKGFkb3B0UHRyKG5ldyBJbWFnZVNvdXJjZU9ic2VydmVySW1wbCkp
CisgICAgLCBtX2ltYWdlU291cmNlKG1fb2JzZXJ2ZXIuZ2V0KCksIGFscGhhT3B0aW9uLCBnYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbikKK3sKK30KKworU3luY2hyb25vdXNJbWFnZVNvdXJjZTo6
flN5bmNocm9ub3VzSW1hZ2VTb3VyY2UoKQoreworICAgIG1faW1hZ2VTb3VyY2UuY2xlYXIodHJ1
ZSk7Cit9CisKK3ZvaWQgU3luY2hyb25vdXNJbWFnZVNvdXJjZTo6c2V0RGF0YShTaGFyZWRCdWZm
ZXIqIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQoreworICAgIG1faW1hZ2VTb3VyY2Uuc2V0
RGF0YShkYXRhLCBhbGxEYXRhUmVjZWl2ZWQpOworfQorCitTdHJpbmcgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZTo6ZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdl
U291cmNlLmZpbGVuYW1lRXh0ZW5zaW9uKCk7Cit9CisKK2Jvb2wgU3luY2hyb25vdXNJbWFnZVNv
dXJjZTo6aXNTaXplQXZhaWxhYmxlKCkKK3sKKyAgICByZXR1cm4gbV9pbWFnZVNvdXJjZS5pc1Np
emVBdmFpbGFibGUoKTsKK30KKworSW50U2l6ZSBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpzaXpl
KFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24pIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1faW1hZ2VTb3VyY2Uuc2l6ZShzaG91bGRSZXNwZWN0T3JpZW50
YXRpb24pOworfQorCitJbnRTaXplIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0
SW5kZXgoc2l6ZV90IGluZGV4LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVz
cGVjdE9yaWVudGF0aW9uKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdlU291cmNlLmZyYW1l
U2l6ZUF0SW5kZXgoaW5kZXgsIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbik7Cit9CisKK3NpemVf
dCBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpmcmFtZUNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9pbWFnZVNvdXJjZS5mcmFtZUNvdW50KCk7Cit9CisKK05hdGl2ZUltYWdlUHRyIFN5bmNo
cm9ub3VzSW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgpCit7Cisg
ICAgbV9pbWFnZVNvdXJjZS5yZXF1ZXN0RnJhbWVBdEluZGV4KGluZGV4KTsKKyAgICByZXR1cm4g
bV9vYnNlcnZlci0+bV9uYXRpdmVJbWFnZVB0cjsKK30KKworYm9vbCBTeW5jaHJvbm91c0ltYWdl
U291cmNlOjpmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QgaW5kZXgpCit7CisgICAgcmV0dXJu
IG1faW1hZ2VTb3VyY2UuZnJhbWVIYXNBbHBoYUF0SW5kZXgoaW5kZXgpOworfQorCitib29sIFN5
bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90IGluZGV4
KQoreworICAgIHJldHVybiBtX2ltYWdlU291cmNlLmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoaW5k
ZXgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9TeW5jaHJvbm91c0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TeW5jaHJvbm91c0ltYWdlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgyMjE2M2I5M2MyNDg0
Y2IxMzE5YzdhYjY0MDZjNjNkOWQ0NzFiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaApAQCAtMCwwICsx
LDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIw
MDggVG9yY2ggTW9iaWxlLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAg
SW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2VfaAorI2RlZmluZSBT
eW5jaHJvbm91c0ltYWdlU291cmNlX2gKKworI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCisjaW5j
bHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsOworCitjbGFzcyBTeW5jaHJv
bm91c0ltYWdlU291cmNlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTeW5jaHJvbm91c0lt
YWdlU291cmNlKTsKK3B1YmxpYzoKKyAgICBTeW5jaHJvbm91c0ltYWdlU291cmNlKEltYWdlU291
cmNlOjpBbHBoYU9wdGlvbiA9IEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdl
U291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiA9IEltYWdlU291cmNlOjpHYW1tYUFu
ZENvbG9yUHJvZmlsZUFwcGxpZWQpOworICAgIH5TeW5jaHJvbm91c0ltYWdlU291cmNlKCk7CisK
KyAgICB2b2lkIHNldERhdGEoU2hhcmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZl
ZCk7CisgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3Q7CisKKyAgICBib29sIGlz
U2l6ZUF2YWlsYWJsZSgpOworICAgIEludFNpemUgc2l6ZShSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSBjb25zdDsKKyAgICBJbnRTaXpl
IGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBE
b05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSBjb25zdDsKKworICAgIHNpemVfdCBmcmFtZUNv
dW50KCkgY29uc3Q7CisKKyAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUF0SW5kZXgoc2l6
ZV90KTsKKworICAgIGJvb2wgZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KTsKKyAgICBib29s
IGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90KTsKKworcHJpdmF0ZToKKyAgICBPd25QdHI8
SW1hZ2VTb3VyY2VPYnNlcnZlckltcGw+IG1fb2JzZXJ2ZXI7CisgICAgSW1hZ2VTb3VyY2UgbV9p
bWFnZVNvdXJjZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCmluZGV4
IDQ1ODUwYTgwM2FhNGQwMGZhNjcxMDQyODdhYjdkNTM5OTgzYzY4YzYuLmMxMTVhOWU1N2NjNmIw
YjNiNmU3MWFlN2FkYmRmYThjMmVjNjc3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCkBAIC00
Miw2ICs0Miw3IEBAIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IEJpdG1hcEltYWdlOjpjcmVhdGUo
Y2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoTmF0
aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAg
IDogSW1hZ2Uob2JzZXJ2ZXIpCisgICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJyZW50
RnJhbWUoMCkKICAgICAsIG1fZnJhbWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKaW5kZXggOTgyMmQ0ZTI0YmNiOThkMGEwNWE0MTBl
NGFiNjBhNTkyNWIwMDM4My4uYzI2MzJjZDhkNWE0ZGIxNzEwY2M5NmY4MmIxMmQ3ZTc4M2RjYzU5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0M0RDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTMzLDEyICszMywxMiBA
QAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiSW1hZ2VTb3Vy
Y2UuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9wZW5HTFNoaW1z
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKICNpbmNsdWRlICJSZWZQdHJD
YWlyby5oIgogI2luY2x1ZGUgIlNoYWRlckxhbmcuaCIKKyNpbmNsdWRlICJTeW5jaHJvbm91c0lt
YWdlU291cmNlLmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDx3dGYvTm90Rm91bmQu
aD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xNTgsNyArMTU4LDcgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwgdW5zaWduZWQgaW50IGZv
cm1hdCwgdW5zaWduZWQKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgLy8gV2UgbmVlZCB0aGlzIHRvIHN0YXkgaW4gc2NvcGUgYmVjYXVzZSB0aGUgbmF0aXZlIGlt
YWdlIGlzIGp1c3QgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGRhdGEuCi0gICAgSW1hZ2VTb3VyY2Ug
ZGVjb2RlcihwcmVtdWx0aXBseUFscGhhID8gSW1hZ2VTb3VyY2U6OkFscGhhUHJlbXVsdGlwbGll
ZCA6IEltYWdlU291cmNlOjpBbHBoYU5vdFByZW11bHRpcGxpZWQsCisgICAgU3luY2hyb25vdXNJ
bWFnZVNvdXJjZSBkZWNvZGVyKHByZW11bHRpcGx5QWxwaGEgPyBJbWFnZVNvdXJjZTo6QWxwaGFQ
cmVtdWx0aXBsaWVkIDogSW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlID8gSW1hZ2VTb3Vy
Y2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlSWdub3JlZCA6IEltYWdlU291cmNlOjpHYW1tYUFuZENv
bG9yUHJvZmlsZUFwcGxpZWQpOwogICAgIEFscGhhT3AgYWxwaGFPcCA9IEFscGhhRG9Ob3RoaW5n
OwogICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGltYWdlU3VyZmFjZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
M0RDRy5jcHAKaW5kZXggNTBkZTUxZjQ3OTI3NzhlNmIzNTliZGY2OWIzZmM5NGRkYjk4YTg2Mi4u
NjAwYTZkZmViZGUwNjcyMzljNWM2MDllZmRkYjRkYTZjMWEyYTBhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
M0RDRy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRl
ICJTeW5jaHJvbm91c0ltYWdlU291cmNlLmgiCiAKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dC
aXRtYXBDb250ZXh0Lmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dC5oPgpAQCAt
MTAyLDcgKzEwMyw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWFn
ZSogaW1hZ2UsCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGRlY29kZWRJbWFnZTsKICAgICBi
b29sIGhhc0FscGhhID0gaW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSA/IHN0YXRpY19jYXN0PEJpdG1h
cEltYWdlKj4oaW1hZ2UpLT5mcmFtZUhhc0FscGhhQXRJbmRleCgwKSA6IHRydWU7CiAgICAgaWYg
KChpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSB8fCAoaGFzQWxwaGEgJiYgIXByZW11bHRpcGx5
QWxwaGEpKSAmJiBpbWFnZS0+ZGF0YSgpKSB7Ci0gICAgICAgIEltYWdlU291cmNlIGRlY29kZXIo
SW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwKKyAgICAgICAgU3luY2hyb25vdXNJ
bWFnZVNvdXJjZSBkZWNvZGVyKEltYWdlU291cmNlOjpBbHBoYU5vdFByZW11bHRpcGxpZWQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBJ
bWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6Okdh
bW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAgICAgICAgIGRlY29kZXIuc2V0RGF0YShpbWFn
ZS0+ZGF0YSgpLCB0cnVlKTsKICAgICAgICAgaWYgKCFkZWNvZGVyLmZyYW1lQ291bnQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKaW5kZXgg
ZjUzMjAzN2Q1NjE0NDg0YTA0OTdkN2Y5OTdlODVjMjNjZjhjMmJmMi4uYzQzMGM0ZDBiOWI2Mjc0
ZjQ3YzgyNGEzZTU3MTA0MWRhMGRkYTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgYm9vbCBGcmFtZURh
dGE6OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkKIAogQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdl
KENHSW1hZ2VSZWYgY2dJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFn
ZShvYnNlcnZlcikKKyAgICAsIG1fc291cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgw
KQogICAgICwgbV9mcmFtZXMoMCkKICAgICAsIG1fZnJhbWVUaW1lcigwKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcAppbmRl
eCA3NmFmYjhjYTA1Mjk5OWI5MTFjZmFiODEzYWQ4YmM1Y2QzNjY3NjZlLi5jYWMxMjc2MDZhNjA4
MDhlNjQxZDk3NzdiZjc2YmU4MWUzMjhlYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkltYWdlU291cmNlQ0cuaCIKIAogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRp
b24uaCIKKyNpbmNsdWRlICJJbWFnZVNvdXJjZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSW50UG9p
bnQuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5o
IgpAQCAtNzAsOCArNzEsOSBAQCB2b2lkIHNoYXJlZEJ1ZmZlclJlbGVhc2Uodm9pZCogaW5mbykK
IH0KICNlbmRpZgogCi1JbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2U6OkFscGhh
T3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRp
b24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCitJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2Uo
SW1hZ2VTb3VyY2VPYnNlcnZlciogb2JzZXJ2ZXIsIEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiBh
bHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1h
QW5kQ29sb3JQcm9maWxlT3B0aW9uKQogICAgIDogbV9kZWNvZGVyKDApCisgICAgLCBtX29ic2Vy
dmVyKG9ic2VydmVyKQogICAgIC8vIEZJWE1FOiBtX3ByZW11bHRpcGx5QWxwaGEgaXMgaWdub3Jl
ZCBpbiBjZyBhdCB0aGUgbW9tZW50LgogICAgICwgbV9hbHBoYU9wdGlvbihhbHBoYU9wdGlvbikK
ICAgICAsIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24oZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pCkBAIC0yOTksNiArMzAxLDEzIEBAIHNpemVfdCBJbWFnZVNvdXJjZTo6ZnJhbWVDb3Vu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGVjb2RlciA/IENHSW1hZ2VTb3VyY2VHZXRDb3VudCht
X2RlY29kZXIpIDogMDsKIH0KIAordm9pZCBJbWFnZVNvdXJjZTo6cmVxdWVzdEZyYW1lQXRJbmRl
eChzaXplX3QgaW5kZXgpCit7CisgICAgQ0dJbWFnZVJlZiBpbWFnZVJlZiA9IGNyZWF0ZUZyYW1l
QXRJbmRleChpbmRleCk7CisgICAgQVNTRVJUKG1fb2JzZXJ2ZXIpOworICAgIG1fb2JzZXJ2ZXIt
PmRpZERlY29kZUZyYW1lQXRJbmRleChpbmRleCwgaW1hZ2VSZWYpOworfQorCiBDR0ltYWdlUmVm
IEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAgIGlm
ICghaW5pdGlhbGl6ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCmluZGV4IDk1MTA4ODJjYzg1NDQwNjU0YTlk
ZTBiYTE4ZGQ3ZjRhMTlmMjBmMDkuLmViODA2NmM0NzQwMDNlY2E4MWYwZTE3MmY3YWZkYTQ5ZDYw
NzRmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52
Zy9JbWFnZU9wZW5WRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbnZnL0ltYWdlT3BlblZHLmNwcApAQCAtNTIsNiArNTIsNyBAQCBib29sIEZyYW1lRGF0YTo6
Y2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoVGls
ZWRJbWFnZU9wZW5WRyogdGlsZWRJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAg
OiBJbWFnZShvYnNlcnZlcikKKyAgICAsIG1fc291cmNlKHRoaXMpCiAgICAgLCBtX3NpemUodGls
ZWRJbWFnZS0+c2l6ZSgpKQogICAgICwgbV9jdXJyZW50RnJhbWUoMCkKICAgICAsIG1fZnJhbWVz
KDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3Bw
CmluZGV4IDY4YTU0OWI5MGIyNThlNmI4OWQ1NGI2OTllNDBkNTMzM2JmOGM1NmUuLjdkMDQ3YjQ5
YjE0OGQ2MmI1MmY3Y2JkYzBlNzMzMmIzMzlmOWJlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwCkBAIC0yMDEsNiArMjAxLDcgQEAgdm9p
ZCBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdAogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoUUltYWdlKiBp
bWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZlcikKKyAg
ICAsIG1fc291cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgwKQogICAgICwgbV9mcmFt
ZXMoMCkKICAgICAsIG1fZnJhbWVUaW1lcigwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3Bw
CmluZGV4IDE3YWQ4M2Q4ZjgzNzVmZTBjOTMxNThjNjQ1YjBmNTIwZTE1MTcyZTguLmE4MmY0NWNj
Y2I0MDg1MWJhZDUwOWMwOTI3MjkwOWRhOTk3ZmQ1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNE
U2tpYS5jcHAKQEAgLTMyLDkgKzMyLDkgQEAKIAogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAj
aW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgogI2luY2x1ZGUgIk5h
dGl2ZUltYWdlU2tpYS5oIgogI2luY2x1ZGUgIlNrQ29sb3JQcml2LmgiCisjaW5jbHVkZSAiU3lu
Y2hyb25vdXNJbWFnZVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCkBAIC01Niw3ICs1Niw3IEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OmdldEltYWdlRGF0YShJbWFnZSogaW1hZ2UsCiAgICAgQWxwaGFPcCBuZWVkZWRBbHBo
YU9wID0gQWxwaGFEb05vdGhpbmc7CiAgICAgYm9vbCBoYXNBbHBoYSA9IHNraWFJbWFnZSA/ICFz
a2lhSW1hZ2UtPmJpdG1hcCgpLmlzT3BhcXVlKCkgOiB0cnVlOwogICAgIGlmICgoIXNraWFJbWFn
ZSB8fCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSB8fCAoaGFzQWxwaGEgJiYgIXByZW11bHRp
cGx5QWxwaGEpKSAmJiBpbWFnZS0+ZGF0YSgpKSB7Ci0gICAgICAgIEltYWdlU291cmNlIGRlY29k
ZXIoSW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwKKyAgICAgICAgU3luY2hyb25v
dXNJbWFnZVNvdXJjZSBkZWNvZGVyKEltYWdlU291cmNlOjpBbHBoYU5vdFByZW11bHRpcGxpZWQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUg
PyBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6
OkdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAgICAgICAgIC8vIEF0dGVtcHQgdG8gZ2V0
IHJhdyB1bnByZW11bHRpcGxpZWQgaW1hZ2UgZGF0YSAKICAgICAgICAgZGVjb2Rlci5zZXREYXRh
KGltYWdlLT5kYXRhKCksIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93eC9JbWFnZVd4LmNwcAppbmRleCBkN2QwYTBmMGRkYTc3ZTM0Mzg2MDQ1N2U0ZWEyOGMy
ODA5OTc3MWNmLi44MzU2NDE4ZWY4ODRiNDViZmQ4YWFlZThmZDM2YzQzMDYyODQxZGZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcApAQCAt
ODIsNiArODIsNyBAQCBQYXNzUmVmUHRyPEltYWdlPiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3Vy
Y2UoY29uc3QgY2hhciAqbmFtZSkKIAogQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKGNvbnN0IHd4
Qml0bWFwJiBiaXRtYXApCiAgICAgOiBJbWFnZSgwKQorICAgICwgbV9zb3VyY2UodGhpcykKICAg
ICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2ZyYW1lcygwKQogICAgICwgbV9mcmFtZVRp
bWVyKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZVNr
aWEuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcAppbmRl
eCBlMWE5MjYwNTA2MjgxZDg5YTI4ZmEwY2QyNDAzM2QwMzk3MTgwNWM3Li5lNGE3MTQyMGFiZjIy
Y2EwM2E4NDUyMzUxNjI1ZWRhZGRmYjY5NWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkltYWdlU2tpYS5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKIAogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKICNpbmNs
dWRlICJOYXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNs
dWRlICJTeW5jaHJvbm91c0ltYWdlU291cmNlLmgiCiAKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJE
YXRhLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViU2l6ZS5oIgpAQCAtNTEsNyArNTEsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViSW1hZ2UgV2ViSW1hZ2U6OmZyb21EYXRhKGNvbnN0IFdl
YkRhdGEmIGRhdGEsIGNvbnN0IFdlYlNpemUmIGRlc2lyZWRTaXplKQogewotICAgIEltYWdlU291
cmNlIHNvdXJjZTsKKyAgICBTeW5jaHJvbm91c0ltYWdlU291cmNlIHNvdXJjZTsKICAgICBzb3Vy
Y2Uuc2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSkuZ2V0KCksIHRydWUpOwog
ICAgIGlmICghc291cmNlLmlzU2l6ZUF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gV2ViSW1h
Z2UoKTsKQEAgLTkxLDcgKzkxLDcgQEAgV2ViVmVjdG9yPFdlYkltYWdlPiBXZWJJbWFnZTo6ZnJh
bWVzRnJvbURhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSkKICAgICAvLyBUaGlzIGlzIHRvIHByb3Rl
Y3QgZnJvbSBtYWxpY2lvdXMgaW1hZ2VzLiBJdCBzaG91bGQgYmUgYmlnIGVub3VnaCB0aGF0IGl0
J3MgbmV2ZXIgaGl0IGluIHByYWNpY2UuCiAgICAgY29uc3Qgc2l6ZV90IG1heEZyYW1lQ291bnQg
PSA4OwogCi0gICAgSW1hZ2VTb3VyY2Ugc291cmNlOworICAgIFN5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2Ugc291cmNlOwogICAgIHNvdXJjZS5zZXREYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPihk
YXRhKS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFzb3VyY2UuaXNTaXplQXZhaWxhYmxlKCkpCiAg
ICAgICAgIHJldHVybiBXZWJWZWN0b3I8V2ViSW1hZ2U+KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157681</attachid>
            <date>2012-08-10 02:09:57 -0700</date>
            <delta_ts>2012-08-10 04:57:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93467-20120810180926.patch</filename>
            <type>text/plain</type>
            <size>72696</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyMzExYzkwZWZlZDY0
OTczZTdhYTA5NWUzOTA2NjgyYTcxNWM3Mi4uYzAyMWE1MWQwOTk4N2QzMzMyYWIxMTU0M2E1Yzcw
NTczM2Q2MGE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NSBAQAorMjAxMi0wOC0xMCAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBDaGFuZ2Ug
SW1hZ2VTb3VyY2UgdG8gYmUgYXN5bmNocm9ub3VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM0NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnRlcm5hbCByZXZpZXcgYnkgS3dhbmcgWXVsIFNlby4K
KworICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgQVBJIG9mIEltYWdlU291cmNlIHN1cHBv
cnQgYXN5bmNocm9ub3VzIGltYWdlIGRlY29kaW5nLiBUaGlzCisgICAgICAgIGlzIGEgcHJlcGFy
YXRpb24gZm9yIGFzeW5jaHJvbm91cyBpbWFnZSBkZWNvZGluZy4gQWZ0ZXIgSW1hZ2VTb3VyY2UK
KyAgICAgICAgY29tcGxldGVzIGltYWdlIGRlY29kaW5nLCBJbWFnZVNvdXJjZSBzZW5kcyBOYXRp
dmVJbWFnZVB0ciB0byBCaXRtYXBJbWFnZSB2aWEKKyAgICAgICAgSW1hZ2VTb3VyY2VPYnNlcnZl
cjo6ZGlkRGVjb2RlRnJhbWVBdEluZGV4KCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWVz
IGNyZWF0ZUZyYW1lQXRJbmRleCB0byByZXF1ZXN0RnJhbWVBdEluZGV4LCB0byBpbXBseQorICAg
ICAgICB0aGlzIG1ldGhvZCBjYW4gYmUgYXN5bmNocm9ub3VzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW50cm9kdWNlZCBTeW5jaHJvbm91c0ltYWdlU291cmNlLCB3aGljaCBkZWNvZGVzIGltYWdl
IHN5bmNocm9ub3VzbHkuCisgICAgICAgIFRoZSBtYWluIHJlYXNvbiB0byBhZGQgdGhpcyBjbGFz
cyBpcyB0byBwcmV2ZW50IGNsaWVudHMgZnJvbSBtaXN1c2luZworICAgICAgICBJbWFnZVNvdXJj
ZS4gSW1hZ2VTb3VyY2Ugd2lsbCBiZSBhYmxlIHRvIHBlcmZvcm0gc3luYyBhbmQgYXN5bmMgaW1h
Z2UgZGVjb2RpbmcsCisgICAgICAgIHNvIGl0IHdpbGwgYmUgaGFyZCB0byB1c2UgSW1hZ2VTb3Vy
Y2UgY29ycmVjdGx5LiBTbywgYWZ0ZXIgdGhpcyBwYXRjaCwgb25seQorICAgICAgICBCaXRtYXBJ
bWFnZSBhbmQgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBjYW4gY3JlYXRlIGFuZCB1c2UgSW1hZ2VT
b3VyY2UsIGFuZCBvdGhlcgorICAgICAgICBjbGllbnRzIHdoaWNoIG5lZWQgdG8gdXNlIEltYWdl
U291cmNlIG11c3QgdXNlIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuCisgICAgICAgIEN1cnJlbnRs
eSwgR3JhcGhpY3NDb250ZXh0M0QgYW5kIFdlYkltYWdlU2tpYSB1c2UgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZS4KKworICAgICAgICBJbnRyb2R1Y2VkIEltYWdlU291cmNlOjpSZXF1ZXN0RGVjb2Rp
bmdNb2RlIGVudW0uIFRocmVlIG1ldGFkYXRhIHF1ZXJ5CisgICAgICAgIG1ldGhvZHMgbm93IHJl
Y2VpdmUgYSBkZWNvZGluZyBtb2RlIGFzIHdlbGwgYXMgYW4gaW5kZXggbnVtYmVyLiBJZiB0aGUg
cGFzc2VkCisgICAgICAgIGFyZ3VtZW50IGlzIFJlcXVlc3REZWNvZGluZywgdGhlc2UgbWV0aG9k
cyBkZWNvZGUgaW1hZ2Ugc3luY2hyb25vdXNseS4KKyAgICAgICAgQml0bWFwSW1hZ2UgYWx3YXlz
IHBhc3NlcyBOb25SZXF1ZXN0RGVjb2Rpbmcgd2hpbGUgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBh
bHdheXMKKyAgICAgICAgcGFzc2VzIFJlcXVlc3REZWNvZGluZy4KKworICAgICAgICBDaGFuZ2Vk
IGZyYW1lQnVmZmVyQXRJbmRleCgpIG5vdCB0byBkZWNvZGUgYW55bW9yZSBhbmQganVzdCByZXR1
cm4gdGhlIGNhY2hlZAorICAgICAgICBmcmFtZSBpZiBhdmFpbGFibGUuIEFsc28gaW50cm9kdWNl
ZCBkZWNvZGVBdEluZGV4KCkgc28gdGhhdCBjbGllbnRzIGNhbiByZXF1ZXN0CisgICAgICAgIGRl
Y29kaW5nIGFuIGltYWdlLiBGb3IgZXhhbXBsZSwgSW1hZ2VTb3VyY2UgcXVlcmllcyBtZXRhZGF0
YSB1c2luZworICAgICAgICBmcmFtZUJ1ZmZlckF0SW5kZXgoKSB3aXRob3V0IHRyaWdnZXJpbmcg
aW1hZ2UgZGVjb2RpbmcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gZXhpc3RpbmcgaW1hZ2Ug
dGVzdHMgY292ZXIgdGhlc2UgY2FzZXMuCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2ltYWdl
cy8qCisgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzLyoKKyAgICAgICAgICAgICAgZmFzdC9kb20v
SFRNTEltYWdlRWxlbWVudC8qCisgICAgICAgICAgICAgIGh0dHAvdGVzdHMvaW1hZ2VzLyoKKyAg
ICAgICAgICAgICAgY3NzMy9pbWFnZXMvKgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRpZERlY29kZUZyYW1l
QXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZnJhbWVIYXNBbHBoYUF0
SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAg
ICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1l
QXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkF0
SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdElu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdElu
ZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChJbWFnZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2VPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoSW1hZ2VTb3VyY2VPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVNvdXJjZU9ic2VydmVyOjp+SW1hZ2VTb3VyY2VPYnNlcnZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChJbWFnZVNvdXJjZU9ic2VydmVySW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZVNvdXJjZU9ic2VydmVySW1wbDo6SW1hZ2VTb3VyY2VPYnNlcnZlckltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6U3luY2hyb25vdXNJ
bWFnZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c0ltYWdlU291cmNlOjp+
U3luY2hyb25vdXNJbWFnZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c0lt
YWdlU291cmNlOjpzZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VT
b3VyY2U6OmZpbGVuYW1lRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2U6OmlzU2l6ZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJv
bm91c0ltYWdlU291cmNlOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1h
Z2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25v
dXNJbWFnZVNvdXJjZTo6ZnJhbWVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91
c0ltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6U3lu
Y2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgpOgorICAgICAgICAoV2Vi
Q29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3luY2hyb25vdXNJbWFnZVNvdXJjZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VTb3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6SW1hZ2VTb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnJlcXVlc3RGcmFtZUF0SW5kZXgp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJh
bWVJc0NvbXBsZXRlQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJh
bWVEdXJhdGlvbkF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1h
Z2VPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJRdDo6ZGVjb2RlQXRJbmRleCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuaDoKKyAgICAgICAgKEltYWdl
RGVjb2RlclF0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6OmZyYW1l
QnVmZmVyQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VE
ZWNvZGVyLmg6CisgICAgICAgIChJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2JsYWNrYmVycnkvSlBFR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKUEVHSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9ibGFja2JlcnJ5L0pQRUdJbWFnZURlY29kZXIuaDoKKyAgICAg
ICAgKEpQRUdJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2JtcC9CTVBJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qk1QSW1hZ2VEZWNv
ZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9i
bXAvQk1QSW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChCTVBJbWFnZURlY29kZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R0lGSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVyLmg6CisgICAgICAg
IChHSUZJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2lj
by9JQ09JbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SUNPSW1hZ2VEZWNvZGVy
OjpmcmFtZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OklDT0ltYWdlRGVjb2Rlcjo6ZGVjb2Rl
QXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJQ09JbWFnZURlY29kZXI6OmRlY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJQ09JbWFnZURlY29kZXI6OmRlY29kZUF0SW5kZXhQcml2YXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmg6
CisgICAgICAgIChJQ09JbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKUEVH
SW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuaDoKKyAgICAgICAgKEpQRUdJbWFnZURlY29k
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29k
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UE5HSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVy
Lmg6CisgICAgICAgIChQTkdJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
RUJQSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuaDoKKyAgICAgICAgKFdFQlBJbWFnZURl
Y29kZXIpOgorCiAyMDEyLTA4LTA5ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkx
MDAubmV0PgogCiAgICAgICAgIFJlbmFtZSB0d28gbWV0aG9kcyBvZiBCaXRtYXBJbWFnZSBpbiBv
cmRlciB0byBjbGFyaWZ5IHRoZSBpbnRlbnRpb246IGZyYW1lRHVyYXRpb25BdEluZGV4KCkgYW5k
IGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
YjY5OWJiZDNhMzJjZjNjYTA4MWFlNDM0ZDI0NzZmYTYzMTE0OGE2OC4uODY0ZWJhNzE0N2I1Yzdm
MDIwNjY4NmMzOTQ2NWE4NzY2MDcwYzllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMi0wOC0xMCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21w
YW55MTAwLm5ldD4KKworICAgICAgICBDaGFuZ2UgSW1hZ2VTb3VyY2UgdG8gYmUgYXN5bmNocm9u
b3VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM0
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGludHJvZHVjZWQgU3luY2hyb25vdXNJbWFnZVNvdXJjZSwgYW5kIGFsbCBjbGllbnRz
IHdoaWNoIHVzZWQKKyAgICAgICAgSW1hZ2VTb3VyY2UgbXVzdCB1c2UgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZSBpbnN0ZWFkIG9mIEltYWdlU291cmNlLgorICAgICAgICBDaGFuZ2VkIGZyYW1lQnVm
ZmVyQXRJbmRleCgpIG5vdCB0byBkZWNvZGUgYW55bW9yZSBhbmQganVzdCByZXR1cm4gdGhlCisg
ICAgICAgIGNhY2hlZCBmcmFtZSBpZiBhdmFpbGFibGUuIENsaWVudHMgbXVzdCBleHBsaWNpdGx5
IGNhbGwgZGVjb2RlQXRJbmRleCgpLgorCisgICAgICAgICogc3JjL1dlYkltYWdlRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkltYWdlRGVjb2Rlcjo6aXNGcmFtZUNvbXBsZXRlQXRJ
bmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYkltYWdlRGVjb2Rlcjo6Z2V0RnJhbWVBdEluZGV4
KToKKyAgICAgICAgKiBzcmMvV2ViSW1hZ2VTa2lhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW1hZ2U6OmZyb21EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW1hZ2U6OmZyYW1lc0Zyb21E
YXRhKToKKwogMjAxMi0wOC0wOSAgRXJpYyBQZW5uZXIgIDxlcGVubmVyQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBQYWludCBhbmltYXRlZCBsYXllcnMgaW1tZWRpYXRlbHkgdG8g
YXZvaWQgYW5pbWF0aW9uIGhpY2N1cHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCA3ODAzYTdjNjljM2JkMTU5OWFiMWEzYTAyZGU5MDIwYjQ4NDlmZmE1Li5kMTFlOTg0OTBlZmM0
MjY1YWU1Njc1NGZiMjVjMzFkMWY3NDhkOTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTM0MTIsNiArMzQxMiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW50UG9pbnRIYXNoLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ludFJlY3QuY3BwIFwKQEAgLTM0NDYsNiArMzQ0Nyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4
dEl0ZXJhdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NWR0dseXBo
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU1ZHR2x5cGguaCBcCisJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VT
b3VyY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJlbmRlcmlu
Z01vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCBmNDMxNzVkZTYxN2U3YzVhZTZkOTU4ZTg1NDZjY2E5M2QxMDIyZjA4Li40ZTZjNmJh
MGZmMTk5MmM5NDQ1YjNmNTc2OGJkZDU1NWE1ZmE4MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk2OCw2
ICs5NjgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TVkdHbHlwaC5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcCBcCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL3F0L0dyYXBoaWNzU3VyZmFjZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFJ1bi5jcHAgXApAQCAtMjA4Miw2ICsyMDgzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRh
dGlvbi5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIFwKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFBvaW50LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50SGFzaC5oIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggXApAQCAtMjEwMSw2ICsyMTAzLDcgQEAg
SEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU2VnbWVudGVkRm9udERhdGEuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5oIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91
c0ltYWdlU291cmNlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNz
U3VyZmFjZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYjQ5YzMyMDMxNTlkYWRmMDJiMmE3MGM3YzRlOWNm
MzNkMDEyNTJiOC4uYWMzYzIxZWIwNmIwNDA3NTFlM2MwYjc0Yjc4ZDgyMzJiOTIyOTczYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMzkwLDYgKzM5MCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZU9yaWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
T2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnRIYXNoLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaCcsCkBAIC00MDUsNiArNDA2LDcgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvU1ZHR2x5cGguaCcsCisgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9UZXh0UmVuZGVyaW5nTW9kZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9UZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1R5cGVz
ZXR0aW5nRmVhdHVyZXMuaCcsCkBAIC0zNTQ5LDYgKzM1NTEsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL1N0cm9rZVN0eWxlQXBwbGllci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3Iu
aCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJj
ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9UaWxlLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDcwNThmOTNlZTUzZjdiNDU2Yzg1MmE1
MDc2Y2VhZmZkMTdlOTExYTIuLjliNzBiYzU4ZjdiZmY1YzVmYzFiOWIyYTBhZDc1ZmZlMjAzZDdj
MzcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yOTUyMiw2ICsyOTUyMiwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSW1hZ2VTb3VyY2VPYnNlcnZl
ci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcSW50UG9pbnQuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAg
LTI5NjI2LDYgKzI5NjMwLDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xTeW5jaHJvbm91c0ltYWdlU291
cmNlLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXFRleHRSdW4uY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRkZGU2YTM0
NGUwNmFjOWYyMjU4Nzc4Nzk2YWI4YTBjMDQ1NTdmMjYuLmQ3OTIxMTYxMTZkODQ2NWQxYzk2NTg1
YTk1YjRiNWRiOTAyMzliOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MjEsNiArNDgyMSw3IEBACiAJCUIyNzUzNTZGMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwICov
OyB9OwogCQlCMjc1MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTQyMEIwNTM4MTQwMDJDRTY0
RiAvKiBJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUIyNzUzNTcxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDMwQjA1MzgxNDAw
MkNFNjRGIC8qIEltYWdlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJQjI3NTM1NzEwQjA1MzgxNDAwMkNFNjRFIC8qIEltYWdlU291cmNl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9ic2VydmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1NzIwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjc1MzU3
MzBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0NTBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVj
dC5jcHAgKi87IH07CiAJCUIyNzUzNTc0MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0NjBCMDUz
ODE0MDAyQ0U2NEYgLyogSW50UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC00ODM3LDYgKzQ4MzgsOCBAQAogCQlCMjc1MzU3RTBCMDUzODE0
MDAyQ0U2NEYgLyogSW50U2l6ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyNzUzNTUxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplTWFjLm1t
ICovOyB9OwogCQlCMjc1MzU3RjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MjBCMDUzODE0MDAy
Q0U2NEYgLyogUGF0aC5jcHAgKi87IH07CiAJCUIyNzUzNTgwMEIwNTM4MTQwMDJDRTY0RiAvKiBQ
YXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1
MzU1MzBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE5OTk0MzI5MEI0MjMzODgwMEQ3QzgwMiAvKiBTeW5j
aHJvbm91c0ltYWdlU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE5OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdl
U291cmNlLmNwcCAqLzsgfTsKKwkJQjM3NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIFN5bmNocm9u
b3VzSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIzNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3
NTM1OEUwQjA1M0E2NjAwMkNFNjRGIC8qIEljb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU4RDBCMDUzQTY2MDAyQ0U2NEYgLyogSWNv
bk1hYy5tbSAqLzsgfTsKIAkJQjI3N0I0MDQwQjIyRjM3QzAwMDRCRUM2IC8qIEdyYXBoaWNzQ29u
dGV4dE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyNzdCNDAzMEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0gKi87IH07
CiAJCUIyN0IyODI1MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODFGMENFRjBD
MDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTEyMDU5LDYgKzEy
MDYyLDcgQEAKIAkJQjI3NTM1NDEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIyNzUzNTQyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCMjc1MzU0MzBCMDUzODE0MDAyQ0U2NEUgLyogSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU0NDBCMDUz
ODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEludFBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNTQ1MEIw
NTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbnRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3
NTM1NDYwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEludFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
MDc1LDYgKzEyMDc5LDggQEAKIAkJQjI3NTM1NTEwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemVN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW50U2l6ZU1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NTIwQjA1MzgxNDAwMkNF
NjRGIC8qIFBhdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
dGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU1MzBCMDUzODE0MDAy
Q0U2NEYgLyogUGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0aC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIg
LyogU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUIzNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJvbm91c0ltYWdl
U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW5jaHJvbm91c0lt
YWdlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNThEMEIwNTNB
NjYwMDJDRTY0RiAvKiBJY29uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEljb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzdC
NDAzMEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0TWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjdCMjgxRjBDRUYwQzA3MDBEMzlENTQgLyogSlNT
VkdGb250RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTVkdGb250RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTgy
NCw2ICsxOTgzMCw3IEBACiAJCQkJQTg3NDhENjYxMkNDMzc2MzAwMUZCQTQxIC8qIEltYWdlT3Jp
ZW50YXRpb24uaCAqLywKIAkJCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5k
ZXJpbmdNb2RlLmggKi8sCiAJCQkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291
cmNlLmggKi8sCisJCQkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRFIC8qIEltYWdlU291cmNlT2Jz
ZXJ2ZXIuaCAqLywKIAkJCQlCMjc1MzU0NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAq
LywKIAkJCQlFNDYyQTRBMDExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggKi8sCiAJ
CQkJQjI3NTM1NDUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwICovLApAQCAtMTk4NTgs
NiArMTk4NjUsOCBAQAogCQkJCTA4NzU1OEM0MTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJyb2dhdGVQ
YWlyQXdhcmVUZXh0SXRlcmF0b3IuaCAqLywKIAkJCQkwODdFMEFGNDEzNjA2RDBCMDBGQTRCQTgg
LyogU1ZHR2x5cGguY3BwICovLAogCQkJCTA4N0UwQUY1MTM2MDZEMEIwMEZBNEJBOCAvKiBTVkdH
bHlwaC5oICovLAorCQkJCUE5OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0lt
YWdlU291cmNlLmNwcCAqLywKKwkJCQlCMzc1MzU0MzBCMDUzODE0MDAyQ0U2NEYgLyogU3luY2hy
b25vdXNJbWFnZVNvdXJjZS5oICovLAogCQkJCTkzMEZDNjg5MTA3MkI5MjgwMDQ1MjkzRSAvKiBU
ZXh0UmVuZGVyaW5nTW9kZS5oICovLAogCQkJCTM3NkRDQ0UwMTNCNEY5NjYwMDJFQkVGQyAvKiBU
ZXh0UnVuLmNwcCAqLywKIAkJCQlBODI0QjQ2NDBFMkVGMkVBMDA4MUE3QjcgLyogVGV4dFJ1bi5o
ICovLApAQCAtMjM1ODUsNiArMjM1OTQsNyBAQAogCQkJCTJENUE1OTMxMTUyNTI1RDAwMDM2RUU1
MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTI5MUU0QjEzNDE3
MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Mjc1MzU3MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCUIyNzUzNTcxMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VTb3VyY2VD
Ry5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUxMTgwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxp
Y2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5
RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxMjAsNiAr
MjUxMzAsNyBAQAogCQkJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUY2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkda
b29tQW5kUGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkU0RUM5ODBEMDBDMjJCMDA0MzI2NDMg
LyogU1ZHWm9vbUV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCMzc1MzU3MTBCMDUzODE0MDAy
Q0U2NEYgLyogU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNF
NjJEOUIwOTg1RjQxNjAwRTFCNUUzIC8qIFN5c3RlbVRpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4Q0ZGMDUxMEExNTRGMDkwMDBBNDIzNCAvKiBUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNFM0JFQzMwRDIyMkIxRDAwN0UwNkU0IC8qIFRhZ05vZGVMaXN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4MjM1LDYgKzI4MjQ2LDcgQEAKIAkJCQk4NDg1MjI4QTExOTAxNzNDMDA2RURD
N0YgLyogU1ZHVktlcm5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QUY1MEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdab29tQW5kUGFuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
RTRFQzk3MEQwMEMyMkIwMDQzMjY0MyAvKiBTVkdab29tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTk5OTQzMjkwQjQyMzM4ODAwRDdDODAyIC8qIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU4MkExNjMwOTk5OUQ2RDAwQkVFQjZEIC8qIFN5c3Rl
bVRpbWVNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFM0JFQzIwRDIyMkIxRDAwN0UwNkU0
IC8qIFRhZ05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREQ1MTI1MUYxMkQw
MDNFRjI2OSAvKiBUZWxlcGhvbmVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggZWJi
OGQ3ODkwNzRkMWVjZjQwNjkwYmY2MjNlMGE3Yjk5OGM4MTA2Ni4uNzM2ZjJjODgzNzZiOWJhNzEx
ZGI2N2MwYmM3MjdiMjQxYTNlNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQCBzdGF0aWMgaW50IGZy
YW1lQnl0ZXMoY29uc3QgSW50U2l6ZSYgZnJhbWVTaXplKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFw
SW1hZ2UoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZlcikKKyAg
ICAsIG1fc291cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgwKQogICAgICwgbV9mcmFt
ZXMoMCkKICAgICAsIG1fZnJhbWVUaW1lcigwKQpAQCAtMTMwLDIwICsxMzEsMjYgQEAgdm9pZCBC
aXRtYXBJbWFnZTo6Y2FjaGVGcmFtZShzaXplX3QgaW5kZXgpCiB7CiAgICAgc2l6ZV90IG51bUZy
YW1lcyA9IGZyYW1lQ291bnQoKTsKICAgICBBU1NFUlQobV9kZWNvZGVkU2l6ZSA9PSAwIHx8IG51
bUZyYW1lcyA+IDEpOwotICAgIAogICAgIGlmIChtX2ZyYW1lcy5zaXplKCkgPCBudW1GcmFtZXMp
CiAgICAgICAgIG1fZnJhbWVzLmdyb3cobnVtRnJhbWVzKTsKIAotICAgIG1fZnJhbWVzW2luZGV4
XS5tX2ZyYW1lID0gbV9zb3VyY2UuY3JlYXRlRnJhbWVBdEluZGV4KGluZGV4KTsKKyAgICBtX3Nv
dXJjZS5yZXF1ZXN0RnJhbWVBdEluZGV4KGluZGV4KTsKK30KKwordm9pZCBCaXRtYXBJbWFnZTo6
ZGlkRGVjb2RlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCwgTmF0aXZlSW1hZ2VQdHIgbmF0aXZl
SW1hZ2UpCit7CisgICAgbV9mcmFtZXNbaW5kZXhdLm1fZnJhbWUgPSBuYXRpdmVJbWFnZTsKKwor
ICAgIHNpemVfdCBudW1GcmFtZXMgPSBmcmFtZUNvdW50KCk7CiAgICAgaWYgKG51bUZyYW1lcyA9
PSAxICYmIG1fZnJhbWVzW2luZGV4XS5tX2ZyYW1lKQogICAgICAgICBjaGVja0ZvclNvbGlkQ29s
b3IoKTsKIAogICAgIG1fZnJhbWVzW2luZGV4XS5tX29yaWVudGF0aW9uID0gbV9zb3VyY2Uub3Jp
ZW50YXRpb25BdEluZGV4KGluZGV4KTsKICAgICBtX2ZyYW1lc1tpbmRleF0ubV9oYXZlTWV0YWRh
dGEgPSB0cnVlOwotICAgIG1fZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxldGUgPSBtX3NvdXJjZS5m
cmFtZUlzQ29tcGxldGVBdEluZGV4KGluZGV4KTsKKyAgICBtX2ZyYW1lc1tpbmRleF0ubV9pc0Nv
bXBsZXRlID0gbV9zb3VyY2UuZnJhbWVJc0NvbXBsZXRlQXRJbmRleChpbmRleCwgSW1hZ2VTb3Vy
Y2U6Ok5vblJlcXVlc3REZWNvZGluZyk7CiAgICAgaWYgKHJlcGV0aXRpb25Db3VudChmYWxzZSkg
IT0gY0FuaW1hdGlvbk5vbmUpCi0gICAgICAgIG1fZnJhbWVzW2luZGV4XS5tX2R1cmF0aW9uID0g
bV9zb3VyY2UuZnJhbWVEdXJhdGlvbkF0SW5kZXgoaW5kZXgpOwotICAgIG1fZnJhbWVzW2luZGV4
XS5tX2hhc0FscGhhID0gbV9zb3VyY2UuZnJhbWVIYXNBbHBoYUF0SW5kZXgoaW5kZXgpOworICAg
ICAgICBtX2ZyYW1lc1tpbmRleF0ubV9kdXJhdGlvbiA9IG1fc291cmNlLmZyYW1lRHVyYXRpb25B
dEluZGV4KGluZGV4LCBJbWFnZVNvdXJjZTo6Tm9uUmVxdWVzdERlY29kaW5nKTsKKyAgICBtX2Zy
YW1lc1tpbmRleF0ubV9oYXNBbHBoYSA9IG1fc291cmNlLmZyYW1lSGFzQWxwaGFBdEluZGV4KGlu
ZGV4LCBJbWFnZVNvdXJjZTo6Tm9uUmVxdWVzdERlY29kaW5nKTsKIAogICAgIGNvbnN0IEludFNp
emUgZnJhbWVTaXplKGluZGV4ID8gbV9zb3VyY2UuZnJhbWVTaXplQXRJbmRleChpbmRleCkgOiBt
X3NpemUpOwogICAgIGlmIChmcmFtZVNpemUgIT0gbV9zaXplKQpAQCAtMzI4LDcgKzMzNSw3IEBA
IGJvb2wgQml0bWFwSW1hZ2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkKICAg
ICBpZiAobV9mcmFtZXNbaW5kZXhdLm1faGF2ZU1ldGFkYXRhKQogICAgICAgICByZXR1cm4gbV9m
cmFtZXNbaW5kZXhdLm1faGFzQWxwaGE7CiAKLSAgICByZXR1cm4gbV9zb3VyY2UuZnJhbWVIYXNB
bHBoYUF0SW5kZXgoaW5kZXgpOworICAgIHJldHVybiBtX3NvdXJjZS5mcmFtZUhhc0FscGhhQXRJ
bmRleChpbmRleCwgSW1hZ2VTb3VyY2U6Ok5vblJlcXVlc3REZWNvZGluZyk7CiB9CiAKIGJvb2wg
Qml0bWFwSW1hZ2U6OmN1cnJlbnRGcmFtZUhhc0FscGhhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDZiZTk3NjFjNzIyOTJhNWU4OGEy
Nzg5NTE1NDY5MjQ2N2VlNDgyNTQuLmIzNmQwZTNlZTNmZWY1OWYzNmJlYTE3MzY1NjFkZjM2Mzk5
MDAyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiSW1h
Z2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCisjaW5jbHVkZSAiSW1h
Z2VTb3VyY2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKIAogI2lmIFBMQVRGT1JN
KE1BQykKQEAgLTk5LDcgKzEwMCw3IEBAIHB1YmxpYzoKIC8vIEJpdG1hcEltYWdlIENsYXNzCiAv
LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLWNs
YXNzIEJpdG1hcEltYWdlIDogcHVibGljIEltYWdlIHsKK2NsYXNzIEJpdG1hcEltYWdlIDogcHVi
bGljIEltYWdlLCBwdWJsaWMgSW1hZ2VTb3VyY2VPYnNlcnZlciB7CiAgICAgZnJpZW5kIGNsYXNz
IEdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZTsKICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CkBAIC0xNzAsNiAr
MTcxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRyIG5h
dGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgLy8gTWFrZSB0aGUgYmVzdCBlZmZvcnQg
Z3Vlc3MgdG8gY2hlY2sgaWYgdGhlIHJlcXVlc3RlZCBmcmFtZSBoYXMgYWxwaGEgY2hhbm5lbC4K
ICAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCk7CiAgICAgdmlydHVhbCBib29s
IGN1cnJlbnRGcmFtZUhhc0FscGhhKCk7CiAKQEAgLTE4MCw2ICsxODIsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIG5vdFNvbGlkQ29sb3IoKTsKICNlbmRpZgogCisgICAgLy8gSW1hZ2VT
b3VyY2VPYnNlcnZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6
ZV90LCBOYXRpdmVJbWFnZVB0cikgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVTaXplKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmNwcAppbmRleCBjNDMzZGU0MDEyZTk4OGRjNmY5MDkxNjk3ODc1NTMwNTY3
MTUxYjZiLi41NGY5YThkNjc4ZDkyZWIzZmViYTgzYjk3ZjkzNWMzYzAyMmJjYjg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAKICNpbmNsdWRlICJJbWFn
ZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VTb3VyY2VPYnNlcnZlci5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDExICs0
MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1bnNpZ25lZCBJbWFnZVNvdXJjZTo6c19tYXhQ
aXhlbHNQZXJEZWNvZGVkSW1hZ2UgPSAxMDI0ICogMTAyNDsKICNlbmRpZgogCi1JbWFnZVNvdXJj
ZTo6SW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFn
ZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pCitJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2VPYnNlcnZlciogb2Jz
ZXJ2ZXIsIEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6
OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQog
ICAgIDogbV9kZWNvZGVyKDApCisgICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQogICAgICwgbV9h
bHBoYU9wdGlvbihhbHBoYU9wdGlvbikKICAgICAsIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRp
b24oZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CisgICAgQVNTRVJUKG1fb2JzZXJ2ZXIp
OwogfQogCiBJbWFnZVNvdXJjZTo6fkltYWdlU291cmNlKCkKQEAgLTEzNywxMSArMTQwLDE5IEBA
IHNpemVfdCBJbWFnZVNvdXJjZTo6ZnJhbWVDb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGVj
b2RlciA/IG1fZGVjb2Rlci0+ZnJhbWVDb3VudCgpIDogMDsKIH0KIAordm9pZCBJbWFnZVNvdXJj
ZTo6cmVxdWVzdEZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgsIGJvb2wpCit7CisgICAgLy8gVE9E
TzogSW1wbGVtZW50IGFzeW5jaHJvbm91cyBkZWNvZGluZy4KKyAgICBOYXRpdmVJbWFnZVB0ciBu
YXRpdmVJbWFnZSA9IGNyZWF0ZUZyYW1lQXRJbmRleChpbmRleCk7CisgICAgbV9vYnNlcnZlci0+
ZGlkRGVjb2RlRnJhbWVBdEluZGV4KGluZGV4LCBuYXRpdmVJbWFnZSk7Cit9CisKIE5hdGl2ZUlt
YWdlUHRyIEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewog
ICAgIGlmICghbV9kZWNvZGVyKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIG1fZGVjb2Rlci0+
ZGVjb2RlQXRJbmRleChpbmRleCk7CiAgICAgSW1hZ2VGcmFtZSogYnVmZmVyID0gbV9kZWNvZGVy
LT5mcmFtZUJ1ZmZlckF0SW5kZXgoaW5kZXgpOwogICAgIGlmICghYnVmZmVyIHx8IGJ1ZmZlci0+
c3RhdHVzKCkgPT0gSW1hZ2VGcmFtZTo6RnJhbWVFbXB0eSkKICAgICAgICAgcmV0dXJuIDA7CkBA
IC0xNTYsMTEgKzE2NywxNCBAQCBOYXRpdmVJbWFnZVB0ciBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJh
bWVBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICByZXR1cm4gYnVmZmVyLT5hc05ld05hdGl2ZUlt
YWdlKCk7CiB9CiAKLWZsb2F0IEltYWdlU291cmNlOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXpl
X3QgaW5kZXgpCitmbG9hdCBJbWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90
IGluZGV4LCBSZXF1ZXN0RGVjb2RpbmdNb2RlIG1vZGUpCiB7CiAgICAgaWYgKCFtX2RlY29kZXIp
CiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKG1vZGUgPT0gUmVxdWVzdERlY29kaW5nKQor
ICAgICAgICBtX2RlY29kZXItPmRlY29kZUF0SW5kZXgoaW5kZXgpOworCiAgICAgSW1hZ2VGcmFt
ZSogYnVmZmVyID0gbV9kZWNvZGVyLT5mcmFtZUJ1ZmZlckF0SW5kZXgoaW5kZXgpOwogICAgIGlm
ICghYnVmZmVyIHx8IGJ1ZmZlci0+c3RhdHVzKCkgPT0gSW1hZ2VGcmFtZTo6RnJhbWVFbXB0eSkK
ICAgICAgICAgcmV0dXJuIDA7CkBAIC0xODIsMTggKzE5NiwyOCBAQCBJbWFnZU9yaWVudGF0aW9u
IEltYWdlU291cmNlOjpvcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogICAg
IHJldHVybiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKIH0KIAotYm9vbCBJbWFnZVNvdXJjZTo6
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQorYm9vbCBJbWFnZVNvdXJjZTo6ZnJh
bWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXF1ZXN0RGVjb2RpbmdNb2RlIG1vZGUp
CiB7CiAgICAgaWYgKCFtX2RlY29kZXIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVy
biBtX2RlY29kZXItPmZyYW1lSGFzQWxwaGFBdEluZGV4KGluZGV4KTsKKworICAgIGlmIChtb2Rl
ID09IFJlcXVlc3REZWNvZGluZykKKyAgICAgICAgbV9kZWNvZGVyLT5kZWNvZGVBdEluZGV4KGlu
ZGV4KTsKKworICAgIEltYWdlRnJhbWUqIGJ1ZmZlciA9IG1fZGVjb2Rlci0+ZnJhbWVCdWZmZXJB
dEluZGV4KGluZGV4KTsKKyAgICBpZiAoYnVmZmVyLT5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpG
cmFtZUNvbXBsZXRlKQorICAgICAgICByZXR1cm4gYnVmZmVyLT5oYXNBbHBoYSgpOworICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4
KHNpemVfdCBpbmRleCkKK2Jvb2wgSW1hZ2VTb3VyY2U6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgo
c2l6ZV90IGluZGV4LCBSZXF1ZXN0RGVjb2RpbmdNb2RlIG1vZGUpCiB7CiAgICAgaWYgKCFtX2Rl
Y29kZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtb2RlID09IFJlcXVlc3RE
ZWNvZGluZykKKyAgICAgICAgbV9kZWNvZGVyLT5kZWNvZGVBdEluZGV4KGluZGV4KTsKKwogICAg
IEltYWdlRnJhbWUqIGJ1ZmZlciA9IG1fZGVjb2Rlci0+ZnJhbWVCdWZmZXJBdEluZGV4KGluZGV4
KTsKICAgICByZXR1cm4gYnVmZmVyICYmIGJ1ZmZlci0+c3RhdHVzKCkgPT0gSW1hZ2VGcmFtZTo6
RnJhbWVDb21wbGV0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oCmluZGV4IDQwZDc1N2ZhMDlhM2NmNmViZTZiZDA1MjE4MzY3YzQzZWViNzAy
OTYuLjExZmU3MDRlMzM0N2NkNjllMTY2MTMwMTE0NzNhMzhkMDk4M2FiODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtNDIsOSArNDIs
MTEgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRkRhdGEqIENGRGF0YVJlZjsKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VPcmllbnRhdGlvbjsKK2NsYXNzIEltYWdlU291cmNl
T2JzZXJ2ZXI7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBTaGFyZWRC
dWZmZXI7CitjbGFzcyBTeW5jaHJvbm91c0ltYWdlU291cmNlOwogCiAjaWYgVVNFKENHKQogdHlw
ZWRlZiBDR0ltYWdlU291cmNlUmVmIE5hdGl2ZUltYWdlU291cmNlUHRyOwpAQCAtNzMsNiArNzUs
OCBAQCBjb25zdCBpbnQgY0FuaW1hdGlvbk5vbmUgPSAtMjsKIAogY2xhc3MgSW1hZ2VTb3VyY2Ug
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlU291cmNlKTsKKyAgICBmcmllbmQgY2xh
c3MgQml0bWFwSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U7
CiBwdWJsaWM6CiAgICAgZW51bSBBbHBoYU9wdGlvbiB7CiAgICAgICAgIEFscGhhUHJlbXVsdGlw
bGllZCwKQEAgLTkxLDcgKzk1LDYgQEAgcHVibGljOgogICAgIH07CiAjZW5kaWYKIAotICAgIElt
YWdlU291cmNlKEFscGhhT3B0aW9uIGFscGhhT3B0aW9uID0gQWxwaGFQcmVtdWx0aXBsaWVkLCBH
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiA9IEdh
bW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAgICAgfkltYWdlU291cmNlKCk7CiAKICAgICAv
LyBUZWxscyB0aGUgSW1hZ2VTb3VyY2UgdGhhdCB0aGUgSW1hZ2Ugbm8gbG9uZ2VyIGNhcmVzIGFi
b3V0IGRlY29kZWQgZnJhbWUKQEAgLTEwOCw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgLy8gZGVj
b2RlZCBmcmFtZXMuCiAgICAgLy8KICAgICAvLyBDYWxsZXJzIHNob3VsZCBub3QgY2FsbCBjbGVh
cihmYWxzZSwgbikgYW5kIHN1YnNlcXVlbnRseSBjYWxsCi0gICAgLy8gY3JlYXRlRnJhbWVBdElu
ZGV4KG0pIHdpdGggbSA8IG4sIHVubGVzcyB0aGV5IGZpcnN0IGNhbGwgY2xlYXIodHJ1ZSkuCisg
ICAgLy8gcmVxdWVzdEZyYW1lQXRJbmRleChtKSB3aXRoIG0gPCBuLCB1bmxlc3MgdGhleSBmaXJz
dCBjYWxsIGNsZWFyKHRydWUpLgogICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHN0YXRlZnVsIElt
YWdlU291cmNlcy9kZWNvZGVycyB3aWxsIHdvcmsgcHJvcGVybHkuCiAgICAgLy8KICAgICAvLyBU
aGUgfGRhdGF8IGFuZCB8YWxsRGF0YVJlY2VpdmVkfCBwYXJhbWV0ZXJzIHNob3VsZCBiZSBzdXBw
bGllZCBieSBjYWxsZXJzCkBAIC0xMzcsMTMgKzE0MCwxNyBAQCBwdWJsaWM6CiAKICAgICBzaXpl
X3QgZnJhbWVDb3VudCgpIGNvbnN0OwogCi0gICAgLy8gQ2FsbGVycyBzaG91bGQgbm90IGNhbGwg
dGhpcyBhZnRlciBjYWxsaW5nIGNsZWFyKCkgd2l0aCBhIGhpZ2hlciBpbmRleDsKKyAgICAvLyBO
T1RFOiBDYWxsZXJzIHNob3VsZCBub3QgY2FsbCB0aGlzIGFmdGVyIGNhbGxpbmcgY2xlYXIoKSB3
aXRoIGEgaGlnaGVyIGluZGV4OwogICAgIC8vIHNlZSBjb21tZW50cyBvbiBjbGVhcigpIGFib3Zl
LgotICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QpOworICAgIHZv
aWQgcmVxdWVzdEZyYW1lQXRJbmRleChzaXplX3QsIGJvb2wgdXNlQXN5bmNocm9ub3VzRGVjb2Rp
bmdJZlBvc3NpYmxlID0gZmFsc2UpOwogCi0gICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5kZXgo
c2l6ZV90KTsKLSAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCk7IC8vIFdoZXRo
ZXIgb3Igbm90IHRoZSBmcmFtZSBhY3R1YWxseSB1c2VkIGFueSBhbHBoYS4KLSAgICBib29sIGZy
YW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90KTsgLy8gV2hldGhlciBvciBub3QgdGhlIGZyYW1l
IGlzIGNvbXBsZXRlbHkgZGVjb2RlZC4KKyAgICBlbnVtIFJlcXVlc3REZWNvZGluZ01vZGUgewor
ICAgICAgICBSZXF1ZXN0RGVjb2RpbmcsCisgICAgICAgIE5vblJlcXVlc3REZWNvZGluZworICAg
IH07CisgICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90LCBSZXF1ZXN0RGVjb2Rp
bmdNb2RlID0gUmVxdWVzdERlY29kaW5nKTsKKyAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4
KHNpemVfdCwgUmVxdWVzdERlY29kaW5nTW9kZSA9IFJlcXVlc3REZWNvZGluZyk7IC8vIFdoZXRo
ZXIgb3Igbm90IHRoZSBmcmFtZSBhY3R1YWxseSB1c2VkIGFueSBhbHBoYS4KKyAgICBib29sIGZy
YW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90LCBSZXF1ZXN0RGVjb2RpbmdNb2RlID0gUmVxdWVz
dERlY29kaW5nKTsgLy8gV2hldGhlciBvciBub3QgdGhlIGZyYW1lIGlzIGNvbXBsZXRlbHkgZGVj
b2RlZC4KICAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uQXRJbmRleChzaXplX3QpIGNv
bnN0OyAvLyBFWElGIGltYWdlIG9yaWVudGF0aW9uCiAKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RF
Ul9ET1dOX1NBTVBMSU5HKQpAQCAtMTUyLDcgKzE1OSwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
cHJpdmF0ZToKKyAgICBJbWFnZVNvdXJjZShJbWFnZVNvdXJjZU9ic2VydmVyKiwgQWxwaGFPcHRp
b24gPSBBbHBoYVByZW11bHRpcGxpZWQsIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uID0gR2Ft
bWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKKyAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFt
ZUF0SW5kZXgoc2l6ZV90KTsKKwogICAgIE5hdGl2ZUltYWdlU291cmNlUHRyIG1fZGVjb2RlcjsK
KyAgICBJbWFnZVNvdXJjZU9ic2VydmVyKiBtX29ic2VydmVyOwogICAgIEFscGhhT3B0aW9uIG1f
YWxwaGFPcHRpb247CiAgICAgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gbV9nYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbjsKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1MTU4MjYxZTBmYTJhNDExMDc0ZjM0MzI0YWVlNjU5
ZDdlNmJmZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgSW1hZ2VTb3VyY2VPYnNlcnZlcl9oCisjZGVmaW5lIEltYWdlU291cmNlT2Jz
ZXJ2ZXJfaAorCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisvLyBJbnRlcmZhY2UgZm9yIG5vdGlmaWNhdGlvbiBhYm91dCBjaGFuZ2VzIHRvIGFu
IEltYWdlU291cmNlLCBpbmNsdWRpbmcgZGVjb2RpbmcuCitjbGFzcyBJbWFnZVNvdXJjZU9ic2Vy
dmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVjb2RlRnJhbWVBdEluZGV4KHNp
emVfdCwgTmF0aXZlSW1hZ2VQdHIpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfklt
YWdlU291cmNlT2JzZXJ2ZXIoKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ4Zjk5Zjk1Yzk4OTBmYTg2MzFiYjU1ZGU3ZDc5ZTdjMDVhODA1
ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
eW5jaHJvbm91c0ltYWdlU291cmNlLmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscC50b2tlckBjb2xsYWJvcmEuY28u
dWs+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYworICogQ29w
eXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIgorCisjaW5jbHVkZSAiSW1h
Z2VTb3VyY2VPYnNlcnZlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbWFn
ZVNvdXJjZU9ic2VydmVySW1wbCA6IHB1YmxpYyBJbWFnZVNvdXJjZU9ic2VydmVyIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZVNvdXJjZU9ic2VydmVySW1wbCk7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgSW1hZ2VTb3VyY2VPYnNlcnZlckltcGwo
KQorICAgICAgICA6IG1fbmF0aXZlSW1hZ2VQdHIoKQorICAgIHsgfQorCisgICAgdmlydHVhbCB+
SW1hZ2VTb3VyY2VPYnNlcnZlckltcGwoKSBPVkVSUklERSB7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCBkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6ZV90LCBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFn
ZVB0cikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fbmF0aXZlSW1hZ2VQdHIgPSBuYXRpdmVJ
bWFnZVB0cjsKKyAgICB9CisKKyAgICBOYXRpdmVJbWFnZVB0ciBtX25hdGl2ZUltYWdlUHRyOwor
fTsKKworU3luY2hyb25vdXNJbWFnZVNvdXJjZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZShJbWFn
ZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKKyAgICA6IG1fb2Jz
ZXJ2ZXIoYWRvcHRQdHIobmV3IEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsKSkKKyAgICAsIG1faW1h
Z2VTb3VyY2UobV9vYnNlcnZlci5nZXQoKSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9m
aWxlT3B0aW9uKQoreworfQorCitTeW5jaHJvbm91c0ltYWdlU291cmNlOjp+U3luY2hyb25vdXNJ
bWFnZVNvdXJjZSgpCit7CisgICAgbV9pbWFnZVNvdXJjZS5jbGVhcih0cnVlKTsKK30KKwordm9p
ZCBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpzZXREYXRhKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9v
bCBhbGxEYXRhUmVjZWl2ZWQpCit7CisgICAgbV9pbWFnZVNvdXJjZS5zZXREYXRhKGRhdGEsIGFs
bERhdGFSZWNlaXZlZCk7Cit9CisKK1N0cmluZyBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpmaWxl
bmFtZUV4dGVuc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW1hZ2VTb3VyY2UuZmlsZW5h
bWVFeHRlbnNpb24oKTsKK30KKworYm9vbCBTeW5jaHJvbm91c0ltYWdlU291cmNlOjppc1NpemVB
dmFpbGFibGUoKQoreworICAgIHJldHVybiBtX2ltYWdlU291cmNlLmlzU2l6ZUF2YWlsYWJsZSgp
OworfQorCitJbnRTaXplIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OnNpemUoUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9pbWFnZVNvdXJjZS5zaXplKHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbik7Cit9CisK
K0ludFNpemUgU3luY2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVTaXplQXRJbmRleChzaXplX3Qg
aW5kZXgsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRp
b24pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW1hZ2VTb3VyY2UuZnJhbWVTaXplQXRJbmRleChp
bmRleCwgc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uKTsKK30KKworc2l6ZV90IFN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2U6OmZyYW1lQ291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdlU291
cmNlLmZyYW1lQ291bnQoKTsKK30KKworTmF0aXZlSW1hZ2VQdHIgU3luY2hyb25vdXNJbWFnZVNv
dXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCkKK3sKKyAgICBtX2ltYWdlU291
cmNlLnJlcXVlc3RGcmFtZUF0SW5kZXgoaW5kZXgpOworICAgIHJldHVybiBtX29ic2VydmVyLT5t
X25hdGl2ZUltYWdlUHRyOworfQorCitib29sIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkKK3sKKyAgICByZXR1cm4gbV9pbWFnZVNvdXJj
ZS5mcmFtZUhhc0FscGhhQXRJbmRleChpbmRleCk7Cit9CisKK2Jvb2wgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgpCit7CisgICAgcmV0
dXJuIG1faW1hZ2VTb3VyY2UuZnJhbWVJc0NvbXBsZXRlQXRJbmRleChpbmRleCk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3Vz
SW1hZ2VTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9u
b3VzSW1hZ2VTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODIyMTYzYjkzYzI0ODRjYjEzMTljN2FiNjQw
NmM2M2Q5ZDQ3MWI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2Jp
bGUsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgU3luY2hyb25vdXNJbWFnZVNvdXJjZV9oCisjZGVmaW5lIFN5bmNocm9ub3VzSW1h
Z2VTb3VyY2VfaAorCisjaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKKyNpbmNsdWRlICJJbnRTaXpl
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgSW1hZ2VTb3VyY2VPYnNlcnZlckltcGw7CisKK2NsYXNzIFN5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2UgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UpOwor
cHVibGljOgorICAgIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2U6OkFscGhhT3B0
aW9uID0gSW1hZ2VTb3VyY2U6OkFscGhhUHJlbXVsdGlwbGllZCwgSW1hZ2VTb3VyY2U6OkdhbW1h
QW5kQ29sb3JQcm9maWxlT3B0aW9uID0gSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxl
QXBwbGllZCk7CisgICAgflN5bmNocm9ub3VzSW1hZ2VTb3VyY2UoKTsKKworICAgIHZvaWQgc2V0
RGF0YShTaGFyZWRCdWZmZXIqIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKKyAgICBTdHJp
bmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdDsKKworICAgIGJvb2wgaXNTaXplQXZhaWxhYmxl
KCk7CisgICAgSW50U2l6ZSBzaXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90
UmVzcGVjdEltYWdlT3JpZW50YXRpb24pIGNvbnN0OworICAgIEludFNpemUgZnJhbWVTaXplQXRJ
bmRleChzaXplX3QsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdElt
YWdlT3JpZW50YXRpb24pIGNvbnN0OworCisgICAgc2l6ZV90IGZyYW1lQ291bnQoKSBjb25zdDsK
KworICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QpOworCisgICAg
Ym9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpOworICAgIGJvb2wgZnJhbWVJc0NvbXBs
ZXRlQXRJbmRleChzaXplX3QpOworCitwcml2YXRlOgorICAgIE93blB0cjxJbWFnZVNvdXJjZU9i
c2VydmVySW1wbD4gbV9vYnNlcnZlcjsKKyAgICBJbWFnZVNvdXJjZSBtX2ltYWdlU291cmNlOwor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKaW5kZXggNDU4NTBhODAzYWE0
ZDAwZmE2NzEwNDI4N2FiN2Q1Mzk5ODNjNjhjNi4uYzExNWE5ZTU3Y2M2YjBiM2I2ZTcxYWU3YWRi
ZGZhOGMyZWM2NzczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKQEAgLTQyLDYgKzQyLDcgQEAg
UGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gQml0bWFwSW1hZ2U6OmNyZWF0ZShjYWlyb19zdXJmYWNl
X3QqIHN1cmZhY2UpCiAKIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShOYXRpdmVJbWFnZUNhaXJv
KiBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNl
cnZlcikKKyAgICAsIG1fc291cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgwKQogICAg
ICwgbV9mcmFtZXMoMCkKICAgICAsIG1fZnJhbWVUaW1lcigwKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHQzRENhaXJvLmNwcAppbmRleCA5ODIyZDRlMjRiY2I5OGQwYTA1YTQxMGU0YWI2MGE1OTI1YjAw
MzgzLi5jMjYzMmNkOGQ1YTRkYjE3MTBjYzk2ZjgyYjEyZDdlNzgzZGNjNTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQz
RENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHQzRENhaXJvLmNwcApAQCAtMzMsMTIgKzMzLDEyIEBACiAjaW5jbHVkZSAi
RXh0ZW5zaW9uczNET3BlbkdMLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUNvbnRleHRDYWlyby5oIgogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5j
bHVkZSAiU2hhZGVyTGFuZy5oIgorI2luY2x1ZGUgIlN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCIK
ICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPHd0Zi9Ob3RGb3VuZC5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KQEAgLTE1OCw3ICsxNTgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNE
OjpnZXRJbWFnZURhdGEoSW1hZ2UqIGltYWdlLCB1bnNpZ25lZCBpbnQgZm9ybWF0LCB1bnNpZ25l
ZAogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBXZSBuZWVk
IHRoaXMgdG8gc3RheSBpbiBzY29wZSBiZWNhdXNlIHRoZSBuYXRpdmUgaW1hZ2UgaXMganVzdCBh
IHNoYWxsb3cgY29weSBvZiB0aGUgZGF0YS4KLSAgICBJbWFnZVNvdXJjZSBkZWNvZGVyKHByZW11
bHRpcGx5QWxwaGEgPyBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkIDogSW1hZ2VTb3Vy
Y2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwKKyAgICBTeW5jaHJvbm91c0ltYWdlU291cmNlIGRl
Y29kZXIocHJlbXVsdGlwbHlBbHBoYSA/IEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQg
OiBJbWFnZVNvdXJjZTo6QWxwaGFOb3RQcmVtdWx0aXBsaWVkLAogICAgICAgICAgICAgICAgICAg
ICAgICAgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBJbWFnZVNvdXJjZTo6R2FtbWFBbmRD
b2xvclByb2ZpbGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlQXBw
bGllZCk7CiAgICAgQWxwaGFPcCBhbHBoYU9wID0gQWxwaGFEb05vdGhpbmc7CiAgICAgUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4gaW1hZ2VTdXJmYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAppbmRl
eCA1MGRlNTFmNDc5Mjc3OGU2YjM1OWJkZjY5YjNmYzk0ZGRiOThhODYyLi42MDBhNmRmZWJkZTA2
NzIzOWM1YzYwOWVmZGRiNGRhNmMxYTJhMGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIlN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2UuaCIKIAogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQu
aD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0Lmg+CkBAIC0xMDIsNyArMTAzLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwKICAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gZGVjb2RlZEltYWdlOwogICAgIGJvb2wgaGFzQWxwaGEg
PSBpbWFnZS0+aXNCaXRtYXBJbWFnZSgpID8gc3RhdGljX2Nhc3Q8Qml0bWFwSW1hZ2UqPihpbWFn
ZSktPmZyYW1lSGFzQWxwaGFBdEluZGV4KDApIDogdHJ1ZTsKICAgICBpZiAoKGlnbm9yZUdhbW1h
QW5kQ29sb3JQcm9maWxlIHx8IChoYXNBbHBoYSAmJiAhcHJlbXVsdGlwbHlBbHBoYSkpICYmIGlt
YWdlLT5kYXRhKCkpIHsKLSAgICAgICAgSW1hZ2VTb3VyY2UgZGVjb2RlcihJbWFnZVNvdXJjZTo6
QWxwaGFOb3RQcmVtdWx0aXBsaWVkLAorICAgICAgICBTeW5jaHJvbm91c0ltYWdlU291cmNlIGRl
Y29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSA/IEltYWdlU291cmNlOjpH
YW1tYUFuZENvbG9yUHJvZmlsZUlnbm9yZWQgOiBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclBy
b2ZpbGVBcHBsaWVkKTsKICAgICAgICAgZGVjb2Rlci5zZXREYXRhKGltYWdlLT5kYXRhKCksIHRy
dWUpOwogICAgICAgICBpZiAoIWRlY29kZXIuZnJhbWVDb3VudCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAppbmRleCBmNTMyMDM3ZDU2MTQ0
ODRhMDQ5N2Q3Zjk5N2U4NWMyM2NmOGMyYmYyLi5jNDMwYzRkMGI5YjYyNzRmNDdjODI0YTNlNTcx
MDQxZGEwZGRhMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUNHLmNwcApAQCAtNzAsNiArNzAsNyBAQCBib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9v
bCBjbGVhck1ldGFkYXRhKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoQ0dJbWFnZVJlZiBj
Z0ltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQor
ICAgICwgbV9zb3VyY2UodGhpcykKICAgICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2Zy
YW1lcygwKQogICAgICwgbV9mcmFtZVRpbWVyKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCmluZGV4IDdjZjAyOTY4ZWRj
NmQ2YTgwZjVmMTE5ZjdlMmM1YWJkMzAzZDRjN2UuLjdmZWVkMmZkNjJlM2MzMDgxMzIwZmFjMzEz
MWM5NGFiOTc2NWZkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
SW1hZ2VTb3VyY2VDRy5oIgogCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1
ZGUgIkltYWdlU291cmNlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCkBAIC03MCw4ICs3
MSw5IEBAIHZvaWQgc2hhcmVkQnVmZmVyUmVsZWFzZSh2b2lkKiBpbmZvKQogfQogI2VuZGlmCiAK
LUltYWdlU291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFP
cHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbikKK0ltYWdlU291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZU9i
c2VydmVyKiBvYnNlcnZlciwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJ
bWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pCiAgICAgOiBtX2RlY29kZXIoMCkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIp
CiAgICAgLy8gRklYTUU6IG1fcHJlbXVsdGlwbHlBbHBoYSBpcyBpZ25vcmVkIGluIGNnIGF0IHRo
ZSBtb21lbnQuCiAgICAgLCBtX2FscGhhT3B0aW9uKGFscGhhT3B0aW9uKQogICAgICwgbV9nYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbihnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKQEAgLTI5
OSw2ICszMDEsMTIgQEAgc2l6ZV90IEltYWdlU291cmNlOjpmcmFtZUNvdW50KCkgY29uc3QKICAg
ICByZXR1cm4gbV9kZWNvZGVyID8gQ0dJbWFnZVNvdXJjZUdldENvdW50KG1fZGVjb2RlcikgOiAw
OwogfQogCit2b2lkIEltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4KHNpemVfdCBpbmRl
eCkKK3sKKyAgICBDR0ltYWdlUmVmIGltYWdlUmVmID0gY3JlYXRlRnJhbWVBdEluZGV4KGluZGV4
KTsKKyAgICBtX29ic2VydmVyLT5kaWREZWNvZGVGcmFtZUF0SW5kZXgoaW5kZXgsIGltYWdlUmVm
KTsKK30KKwogQ0dJbWFnZVJlZiBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVf
dCBpbmRleCkKIHsKICAgICBpZiAoIWluaXRpYWxpemVkKCkpCkBAIC0zMTksNyArMzI3LDcgQEAg
Q0dJbWFnZVJlZiBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCkK
ICAgICByZXR1cm4gbWFza2VkSW1hZ2UubGVha1JlZigpOwogfQogCi1ib29sIEltYWdlU291cmNl
OjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCBpbmRleCkKK2Jvb2wgSW1hZ2VTb3VyY2U6
OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXF1ZXN0RGVjb2RpbmdNb2Rl
KQogewogICAgIEFTU0VSVChmcmFtZUNvdW50KCkpOwogCkBAIC0zMzksNyArMzQ3LDcgQEAgYm9v
bCBJbWFnZVNvdXJjZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAg
cmV0dXJuIGZyYW1lU3RhdHVzID09IGtDR0ltYWdlU3RhdHVzQ29tcGxldGU7CiB9CiAKLWZsb2F0
IEltYWdlU291cmNlOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpCitmbG9hdCBJ
bWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXF1ZXN0RGVj
b2RpbmdNb2RlKQogewogICAgIGlmICghaW5pdGlhbGl6ZWQoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0zNjgsNyArMzc2LDcgQEAgZmxvYXQgSW1hZ2VTb3VyY2U6OmZyYW1lRHVyYXRpb25BdElu
ZGV4KHNpemVfdCBpbmRleCkKICAgICByZXR1cm4gZHVyYXRpb247CiB9CiAKLWJvb2wgSW1hZ2VT
b3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCkKK2Jvb2wgSW1hZ2VTb3VyY2U6OmZy
YW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCwgUmVxdWVzdERlY29kaW5nTW9kZSkKIHsKICAgICBp
ZiAoIW1fZGVjb2RlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAKaW5kZXgg
OTUxMDg4MmNjODU0NDA2NTRhOWRlMGJhMThkZDdmNGExOWYyMGYwOS4uZWI4MDY2YzQ3NDAwM2Vj
YTgxZjBlMTcyZjdhZmRhNDlkNjA3NGZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCkBAIC01Miw2ICs1Miw3
IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAKIEJpdG1hcElt
YWdlOjpCaXRtYXBJbWFnZShUaWxlZEltYWdlT3BlblZHKiB0aWxlZEltYWdlLCBJbWFnZU9ic2Vy
dmVyKiBvYnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3VyY2UodGhp
cykKICAgICAsIG1fc2l6ZSh0aWxlZEltYWdlLT5zaXplKCkpCiAgICAgLCBtX2N1cnJlbnRGcmFt
ZSgwKQogICAgICwgbV9mcmFtZXMoMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcAppbmRleCBmMDM5ZTQzMDA5NzIxNjlh
ZGM0ZDhiZTIwYmRhNjZiOGYyZDNlNWNlLi5kOTc2NWFmZTA0ZmEzODA5NGE0ZjdmNzliODY0NTNi
NzE2MzA3ZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZURlY29kZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvSW1hZ2VEZWNvZGVyUXQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgU3RyaW5nIEltYWdl
RGVjb2RlclF0OjpmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZyht
X2Zvcm1hdC5jb25zdERhdGEoKSwgbV9mb3JtYXQubGVuZ3RoKCkpOwogfQogCi1JbWFnZUZyYW1l
KiBJbWFnZURlY29kZXJRdDo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKK2Jvb2wg
SW1hZ2VEZWNvZGVyUXQ6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAgIC8vIElu
IGNhc2UgdGhlIEltYWdlRGVjb2RlclF0IGdvdCByZWNyZWF0ZWQgd2UgZG9uJ3Qga25vdwogICAg
IC8vIHlldCBob3cgbWFueSBpbWFnZXMgd2UgYXJlIGdvaW5nIHRvIGhhdmUgYW5kIG5lZWQgdG8K
QEAgLTEzMiwxMiArMTMyLDEyIEBAIEltYWdlRnJhbWUqIEltYWdlRGVjb2RlclF0OjpmcmFtZUJ1
ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIH0KIAogICAgIGlmIChpbmRleCA+PSBjb3Vu
dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEltYWdl
RnJhbWUmIGZyYW1lID0gbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XTsKICAgICBpZiAoZnJhbWUu
c3RhdHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSAmJiBtX3JlYWRlcikKICAgICAg
ICAgaW50ZXJuYWxSZWFkSW1hZ2UoaW5kZXgpOwotICAgIHJldHVybiAmZnJhbWU7CisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgSW1hZ2VEZWNvZGVyUXQ6OmNsZWFyRnJhbWVCdWZmZXJDYWNo
ZShzaXplX3QgLyppbmRleCovKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmgKaW5kZXggM2U0MjFjMzM2Yzc3ZGEwMTE4YzlkMWRj
OTJhYzU3M2U5NDI5MjViZi4uMTczMTAzOGQwY2QyYmYzMTU1YjQ1OGQwYjM5MGU1MzgyYjZiNjY0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VE
ZWNvZGVyUXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZURlY29kZXJRdC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
aXNTaXplQXZhaWxhYmxlKCk7CiAgICAgdmlydHVhbCBzaXplX3QgZnJhbWVDb3VudCgpOwogICAg
IHZpcnR1YWwgaW50IHJlcGV0aXRpb25Db3VudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgSW1hZ2VG
cmFtZSogZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCk7CisgICAgdmlydHVhbCBib29s
IGRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgU3Ry
aW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAKaW5kZXggNjhhNTQ5YjkwYjI1OGU2Yjg5ZDU0
YjY5OWU0MGQ1MzMzYmY4YzU2ZS4uN2QwNDdiNDliMTQ4ZDYyYjUyZjdjYmRjMGU3MzMyYjMzOWY5
YmVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1h
Z2VRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VR
dC5jcHAKQEAgLTIwMSw2ICsyMDEsNyBAQCB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGlj
c0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0CiAKIEJpdG1h
cEltYWdlOjpCaXRtYXBJbWFnZShRSW1hZ2UqIGltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZl
cikKICAgICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3VyY2UodGhpcykKICAgICAsIG1f
Y3VycmVudEZyYW1lKDApCiAgICAgLCBtX2ZyYW1lcygwKQogICAgICwgbV9mcmFtZVRpbWVyKDAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBo
aWNzQ29udGV4dDNEU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKaW5kZXggMTdhZDgzZDhmODM3NWZlMGM5MzE1
OGM2NDViMGY1MjBlMTUxNzJlOC4uNDcyN2YxNWU3Mzg1NjgyOTE3NWNkNzEzOWQwOTY2MzRjZWYy
YmZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9H
cmFwaGljc0NvbnRleHQzRFNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcApAQCAtMzIsOSArMzIsOSBAQAog
CiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUg
IkltYWdlU291cmNlLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAi
U2tDb2xvclByaXYuaCIKKyNpbmNsdWRlICJTeW5jaHJvbm91c0ltYWdlU291cmNlLmgiCiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTU2
LDggKzU2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBp
bWFnZSwKICAgICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBBbHBoYURvTm90aGluZzsKICAgICBi
b29sIGhhc0FscGhhID0gc2tpYUltYWdlID8gIXNraWFJbWFnZS0+Yml0bWFwKCkuaXNPcGFxdWUo
KSA6IHRydWU7CiAgICAgaWYgKCghc2tpYUltYWdlIHx8IGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9m
aWxlIHx8IChoYXNBbHBoYSAmJiAhcHJlbXVsdGlwbHlBbHBoYSkpICYmIGltYWdlLT5kYXRhKCkp
IHsKLSAgICAgICAgSW1hZ2VTb3VyY2UgZGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFOb3RQcmVt
dWx0aXBsaWVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZUdhbW1hQW5kQ29s
b3JQcm9maWxlID8gSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlSWdub3JlZCA6IElt
YWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpOworICAgICAgICBTeW5jaHJv
bm91c0ltYWdlU291cmNlIGRlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVsdGlwbGll
ZCwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xv
clByb2ZpbGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGll
ZCk7CiAgICAgICAgIC8vIEF0dGVtcHQgdG8gZ2V0IHJhdyB1bnByZW11bHRpcGxpZWQgaW1hZ2Ug
ZGF0YSAKICAgICAgICAgZGVjb2Rlci5zZXREYXRhKGltYWdlLT5kYXRhKCksIHRydWUpOwogICAg
ICAgICBpZiAoIWRlY29kZXIuZnJhbWVDb3VudCgpIHx8ICFkZWNvZGVyLmZyYW1lSXNDb21wbGV0
ZUF0SW5kZXgoMCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93eC9JbWFnZVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0lt
YWdlV3guY3BwCmluZGV4IGQ3ZDBhMGYwZGRhNzdlMzQzODYwNDU3ZTRlYTI4YzI4MDk5NzcxY2Yu
LjgzNTY0MThlZjg4NGI0NWJmZDhhYWVlOGZkMzZjNDMwNjI4NDFkZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCkBAIC04Miw2ICs4Miw3
IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBj
aGFyICpuYW1lKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoY29uc3Qgd3hCaXRtYXAmIGJp
dG1hcCkKICAgICA6IEltYWdlKDApCisgICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJy
ZW50RnJhbWUoMCkKICAgICAsIG1fZnJhbWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVj
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURl
Y29kZXIuY3BwCmluZGV4IDk5NTExMDgyN2U1NWQ2OWE5MTA5NjdmNGFjMTM2N2IxOGEyMjE3YzIu
LjQ4YTQ2N2ZlOTJiMDI5MDVlYmQ2YTQ0NDJkMWJlN2U4NGRkYzM2MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNw
cApAQCAtMjc3LDEzICsyNzcsMTEgQEAgdGVtcGxhdGUgPE1hdGNoVHlwZSB0eXBlPiBpbnQgZ2V0
U2NhbGVkVmFsdWUoY29uc3QgVmVjdG9yPGludD4mIHNjYWxlZFZhbHVlcywgaW4KIAogfQogCi1i
b29sIEltYWdlRGVjb2Rlcjo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25z
dAorSW1hZ2VGcmFtZSogSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGlu
ZGV4KQogewogICAgIGlmIChtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpIDw9IGluZGV4KQotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XS5zdGF0
dXMoKSA9PSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQotICAgICAgICByZXR1cm4gbV9mcmFt
ZUJ1ZmZlckNhY2hlW2luZGV4XS5oYXNBbHBoYSgpOwotICAgIHJldHVybiB0cnVlOworICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gJm1fZnJhbWVCdWZmZXJDYWNoZVtpbmRleF07CiB9CiAK
IHZvaWQgSW1hZ2VEZWNvZGVyOjpwcmVwYXJlU2NhbGVEYXRhSWZOZWNlc3NhcnkoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIu
aAppbmRleCBmMmFhZWNjNDcwNzYwMGZjZDBmNDczYmY4OGQyNjdkODgxNjE3ZjI2Li5iYTA4ZDhk
Yjc1NjJiNGVmMTk1Njg3OWVhMjExY2QzM2QzYjVjZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaApAQCAtMjcyLDEy
ICsyNzIsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgaW50IHJl
cGV0aXRpb25Db3VudCgpIGNvbnN0IHsgcmV0dXJuIGNBbmltYXRpb25Ob25lOyB9CiAKLSAgICAg
ICAgLy8gRGVjb2RlcyBhcyBtdWNoIG9mIHRoZSByZXF1ZXN0ZWQgZnJhbWUgYXMgcG9zc2libGUs
IGFuZCByZXR1cm5zIGFuCi0gICAgICAgIC8vIEltYWdlRGVjb2Rlci1vd25lZCBwb2ludGVyLgot
ICAgICAgICB2aXJ0dWFsIEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QpID0g
MDsKKyAgICAgICAgLy8gRGVjb2RlcyBhcyBtdWNoIG9mIHRoZSByZXF1ZXN0ZWQgZnJhbWUgYXMg
cG9zc2libGUuCisgICAgICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVBdEluZGV4KHNpemVfdCkgPSAw
OwogCi0gICAgICAgIC8vIE1ha2UgdGhlIGJlc3QgZWZmb3J0IGd1ZXNzIHRvIGNoZWNrIGlmIHRo
ZSByZXF1ZXN0ZWQgZnJhbWUgaGFzIGFscGhhIGNoYW5uZWwuCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0OworICAgICAgICAvLyBSZXR1cm5z
IGFuIEltYWdlRGVjb2Rlci1vd25lZCBwb2ludGVyLgorICAgICAgICBJbWFnZUZyYW1lKiBmcmFt
ZUJ1ZmZlckF0SW5kZXgoc2l6ZV90KTsKIAogICAgICAgICB2b2lkIHNldElnbm9yZUdhbW1hQW5k
Q29sb3JQcm9maWxlKGJvb2wgZmxhZykgeyBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlID0g
ZmxhZzsgfQogICAgICAgICBib29sIGlnbm9yZXNHYW1tYUFuZENvbG9yUHJvZmlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JsYWNrYmVycnkvSlBFR0ltYWdl
RGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibGFj
a2JlcnJ5L0pQRUdJbWFnZURlY29kZXIuY3BwCmluZGV4IDZhNjVlNjE3ZDE5ZTY3YmZhMjE4MDUz
ODdjMTE5NWRhNDgyMWRiNmQuLmZjYjIwOTFjMzRjZjYyM2EzNTE2MDc1NWUzYmRjN2I1M2EyMDUx
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2Js
YWNrYmVycnkvSlBFR0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYmxhY2tiZXJyeS9KUEVHSW1hZ2VEZWNvZGVyLmNwcApAQCAtMTk1
LDEzICsxOTUsMTMgQEAgYm9vbCBKUEVHSW1hZ2VEZWNvZGVyOjppc1NpemVBdmFpbGFibGUoKQog
ICAgIHJldHVybiBJbWFnZURlY29kZXI6OmlzU2l6ZUF2YWlsYWJsZSgpOwogfQogCi1JbWFnZUZy
YW1lKiBKUEVHSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQor
Ym9vbCBKUEVHSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKICAg
ICBpZiAoIWlzQWxsRGF0YVJlY2VpdmVkKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoaW5kZXgpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLmlzRW1wdHkoKSkK
ICAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlLnJlc2l6ZSgxKTsKQEAgLTIxMSwxNiArMjExLDE2
IEBAIEltYWdlRnJhbWUqIEpQRUdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXpl
X3QgaW5kZXgpCiAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIGl0J3MgYWxyZWFkeSBkZWNvZGVkLgog
ICAgIC8vIEZJWE1FOiBDb3VsZCBzaXplIGNoYW5nZSBiZXR3ZWVuIGNhbGxzIHRvIHRoaXMgbWV0
aG9kPwogICAgIGlmIChmcmFtZS5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRl
KQotICAgICAgICByZXR1cm4gJmZyYW1lOworICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlm
IChmcmFtZS5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpGcmFtZUVtcHR5KSB7CiAgICAgICAgIGlm
ICghc2l6ZSgpLndpZHRoKCkgfHwgIXNpemUoKS5oZWlnaHQoKSkgewogICAgICAgICAgICAgaWYg
KCFpc1NpemVBdmFpbGFibGUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFmcmFtZS5zZXRT
aXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKSB7CiAgICAgICAgICAgICBzZXRG
YWlsZWQoKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAgICAgICAgIGZyYW1lLnNldFN0YXR1cyhJbWFnZUZyYW1lOjpGcmFtZVBh
cnRpYWwpOwogICAgICAgICAvLyBGb3IgSlBFR3MsIHRoZSBmcmFtZSBhbHdheXMgZmlsbHMgdGhl
IGVudGlyZSBpbWFnZS4KQEAgLTIyOSwxMSArMjI5LDExIEBAIEltYWdlRnJhbWUqIEpQRUdJbWFn
ZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCiAKICAgICBpZiAoIW1f
cmVhZGVyIHx8IG1fcmVhZGVyLT5kZWNvZGUoc2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWlnaHQo
KSwgJmZyYW1lKSA9PSAtMSkgewogICAgICAgICBzZXRGYWlsZWQoKTsKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBmcmFtZS5zZXRTdGF0dXMo
SW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSk7Ci0gICAgcmV0dXJuICZmcmFtZTsKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYmxhY2tiZXJyeS9KUEVHSW1hZ2VEZWNv
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibGFja2JlcnJ5
L0pQRUdJbWFnZURlY29kZXIuaAppbmRleCA2NTQ0ZGY0MjE0MGNhYzUxYmIyYWU2MTg2ODJlMGVk
NTI2NjBjMmI3Li5kNDgzYTQzMTgyMzk1MmZkNGI5ODYzZjFmNjdhZTgyMmVhNDhkYzQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibGFja2JlcnJ5
L0pQRUdJbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9ibGFja2JlcnJ5L0pQRUdJbWFnZURlY29kZXIuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBKUEVHSW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdlRGVjb2RlciB7CiAgICAgICAgIHZp
cnR1YWwgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QgeyByZXR1cm4gImpwZyI7IH0K
ICAgICAgICAgdmlydHVhbCBib29sIGlzU2l6ZUF2YWlsYWJsZSgpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmly
dHVhbCBJbWFnZUZyYW1lKiBmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90KTsKKyAgICAgICAgdmly
dHVhbCBib29sIGRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBPVkVSUklERTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGF0YShTaGFyZWRCdWZmZXIqLCBib29sIGFsbERhdGFSZWNlaXZl
ZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2JtcC9CTVBJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKaW5kZXggNDNlZjUxOGRlODc4OTZlNDM3
OGEwYjc0OTVkZjI2OTlhYTdiYjQ4OC4uNDE2ZGJmYTFjZjk1ZWY1MjkwOTFmYTM4MTg3Y2YxZmQz
Yjg3YmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKQEAgLTcwLDEwICs3MCwxMCBA
QCBib29sIEJNUEltYWdlRGVjb2Rlcjo6aXNTaXplQXZhaWxhYmxlKCkKICAgICByZXR1cm4gSW1h
Z2VEZWNvZGVyOjppc1NpemVBdmFpbGFibGUoKTsKIH0KIAotSW1hZ2VGcmFtZSogQk1QSW1hZ2VE
ZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQorYm9vbCBCTVBJbWFnZURl
Y29kZXI6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAgIGlmIChpbmRleCkKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2ZyYW1l
QnVmZmVyQ2FjaGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZS5yZXNp
emUoMSk7CkBAIC04Myw3ICs4Myw3IEBAIEltYWdlRnJhbWUqIEJNUEltYWdlRGVjb2Rlcjo6ZnJh
bWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICBJbWFnZUZyYW1lKiBidWZmZXIgPSAm
bV9mcmFtZUJ1ZmZlckNhY2hlLmZpcnN0KCk7CiAgICAgaWYgKGJ1ZmZlci0+c3RhdHVzKCkgIT0g
SW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkKICAgICAgICAgZGVjb2RlKGZhbHNlKTsKLSAgICBy
ZXR1cm4gYnVmZmVyOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIEJNUEltYWdlRGVjb2Rl
cjo6c2V0RmFpbGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2JtcC9CTVBJbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL2JtcC9CTVBJbWFnZURlY29kZXIuaAppbmRleCBmNWI5ZDVlMjdhZTAx
MDMzNzA5N2QyZjU3NTRiN2EzZmUyY2MwNGQwLi4zYjQyNTU1ZDc2YTA1ZmM3Zjk2NTUxY2ViYmVl
ZmJhNjI1MjA3ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5oCkBAIC00NSw3ICs0NSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRl
bnNpb24oKSBjb25zdCB7IHJldHVybiAiYm1wIjsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0
RGF0YShTaGFyZWRCdWZmZXIqLCBib29sIGFsbERhdGFSZWNlaXZlZCk7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBpc1NpemVBdmFpbGFibGUoKTsKLSAgICAgICAgdmlydHVhbCBJbWFnZUZyYW1lKiBm
cmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KTsKKyAgICAgICAgdmlydHVhbCBib29sIGRl
Y29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBPVkVSUklERTsKICAgICAgICAgLy8gQ0FVVElPTjog
c2V0RmFpbGVkKCkgZGVsZXRlcyB8bV9yZWFkZXJ8LiAgQmUgY2FyZWZ1bCB0byBhdm9pZAogICAg
ICAgICAvLyBhY2Nlc3NpbmcgZGVsZXRlZCBtZW1vcnksIGVzcGVjaWFsbHkgd2hlbiBjYWxsaW5n
IHRoaXMgZnJvbSBpbnNpZGUKICAgICAgICAgLy8gQk1QSW1hZ2VSZWFkZXIhCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNv
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJ
bWFnZURlY29kZXIuY3BwCmluZGV4IDcyNGVhMGQxM2I2ZWRiNTI1ZmViYTViZWE1ZmUwZDgzMWFk
MTAwYmYuLjA2OGIzN2UzOTc5MTg4YWY1NDM4OGI1OTNjZmVjZTFiN2M3OGU0ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURl
Y29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dp
Zi9HSUZJbWFnZURlY29kZXIuY3BwCkBAIC0xMjQsMTUgKzEyNCwxNSBAQCBpbnQgR0lGSW1hZ2VE
ZWNvZGVyOjpyZXBldGl0aW9uQ291bnQoKSBjb25zdAogICAgIHJldHVybiBtX3JlcGV0aXRpb25D
b3VudDsKIH0KIAotSW1hZ2VGcmFtZSogR0lGSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5k
ZXgoc2l6ZV90IGluZGV4KQorYm9vbCBHSUZJbWFnZURlY29kZXI6OmRlY29kZUF0SW5kZXgoc2l6
ZV90IGluZGV4KQogewogICAgIGlmIChpbmRleCA+PSBmcmFtZUNvdW50KCkpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbWFnZUZyYW1lJiBmcmFtZSA9
IG1fZnJhbWVCdWZmZXJDYWNoZVtpbmRleF07CiAgICAgaWYgKGZyYW1lLnN0YXR1cygpICE9IElt
YWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpCiAgICAgICAgIGRlY29kZShpbmRleCArIDEsIEdJRkZ1
bGxRdWVyeSk7Ci0gICAgcmV0dXJuICZmcmFtZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9v
bCBHSUZJbWFnZURlY29kZXI6OnNldEZhaWxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVyLmgKaW5k
ZXggMTViZDk5ZjY4NjIzNGFkYzM5YWZlYWZiNmUxMDVjMTc5YjMyOTA3MS4uNjZjZWUyNDBkZmY3
Yjk2ODZkZjY5NmRhZWJlZmYwMWI0NTk4NTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuaApA
QCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBzZXRTaXplKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgICAgICB2aXJ0
dWFsIHNpemVfdCBmcmFtZUNvdW50KCk7CiAgICAgICAgIHZpcnR1YWwgaW50IHJlcGV0aXRpb25D
b3VudCgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJ
bmRleChzaXplX3QgaW5kZXgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlQXRJbmRleChz
aXplX3QgaW5kZXgpIE9WRVJSSURFOwogICAgICAgICAvLyBDQVVUSU9OOiBzZXRGYWlsZWQoKSBk
ZWxldGVzIHxtX3JlYWRlcnwuICBCZSBjYXJlZnVsIHRvIGF2b2lkCiAgICAgICAgIC8vIGFjY2Vz
c2luZyBkZWxldGVkIG1lbW9yeSwgZXNwZWNpYWxseSB3aGVuIGNhbGxpbmcgdGhpcyBmcm9tIGlu
c2lkZQogICAgICAgICAvLyBHSUZJbWFnZVJlYWRlciEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5j
cHAKaW5kZXggMzZkZGUxY2RkNTZkMDA4NGU0ZjZkZTUyYjNmNzQ1NWQ2YTA2OTlhMC4uOTU4Yzgw
MTQ4MzQwZDgwMTE4NGRhMmI4ZWQ1ZGY5NGI0N2Q0YzI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVj
b2Rlci5jcHAKQEAgLTEwOSwyMSArMTA5LDIxIEBAIHNpemVfdCBJQ09JbWFnZURlY29kZXI6OmZy
YW1lQ291bnQoKQogICAgICAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlW2ldLnNldFByZW11bHRp
cGx5QWxwaGEobV9wcmVtdWx0aXBseUFscGhhKTsKICAgICB9CiAgICAgLy8gQ0FVVElPTjogV2Ug
bXVzdCBub3QgcmVzaXplIG1fZnJhbWVCdWZmZXJDYWNoZSBhZ2FpbiBhZnRlciB0aGlzLCBhcwot
ICAgIC8vIGRlY29kZUF0SW5kZXgoKSBtYXkgZ2l2ZSBhIEJNUEltYWdlUmVhZGVyIGEgcG9pbnRl
ciB0byBvbmUgb2YgdGhlCisgICAgLy8gZGVjb2RlQXRJbmRleFByaXZhdGUoKSBtYXkgZ2l2ZSBh
IEJNUEltYWdlUmVhZGVyIGEgcG9pbnRlciB0byBvbmUgb2YgdGhlCiAgICAgLy8gZW50cmllcy4K
ICAgICByZXR1cm4gbV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKTsKIH0KIAotSW1hZ2VGcmFtZSog
SUNPSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQorYm9vbCBJ
Q09JbWFnZURlY29kZXI6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAgIC8vIEVu
c3VyZSB8aW5kZXh8IGlzIHZhbGlkLgogICAgIGlmIChpbmRleCA+PSBmcmFtZUNvdW50KCkpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbWFnZUZyYW1l
KiBidWZmZXIgPSAmbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XTsKICAgICBpZiAoYnVmZmVyLT5z
dGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQogICAgICAgICBkZWNvZGUoaW5k
ZXgsIGZhbHNlKTsKLSAgICByZXR1cm4gYnVmZmVyOworICAgIHJldHVybiB0cnVlOwogfQogCiBi
b29sIElDT0ltYWdlRGVjb2Rlcjo6c2V0RmFpbGVkKCkKQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lk
IElDT0ltYWdlRGVjb2Rlcjo6ZGVjb2RlKHNpemVfdCBpbmRleCwgYm9vbCBvbmx5U2l6ZSkKIAog
ICAgIC8vIElmIHdlIGNvdWxkbid0IGRlY29kZSB0aGUgaW1hZ2UgYnV0IHdlJ3ZlIHJlY2VpdmVk
IGFsbCB0aGUgZGF0YSwgZGVjb2RpbmcKICAgICAvLyBoYXMgZmFpbGVkLgotICAgIGlmICgoIWRl
Y29kZURpcmVjdG9yeSgpIHx8ICghb25seVNpemUgJiYgIWRlY29kZUF0SW5kZXgoaW5kZXgpKSkg
JiYgaXNBbGxEYXRhUmVjZWl2ZWQoKSkKKyAgICBpZiAoKCFkZWNvZGVEaXJlY3RvcnkoKSB8fCAo
IW9ubHlTaXplICYmICFkZWNvZGVBdEluZGV4UHJpdmF0ZShpbmRleCkpKSAmJiBpc0FsbERhdGFS
ZWNlaXZlZCgpKQogICAgICAgICBzZXRGYWlsZWQoKTsKICAgICAvLyBJZiB3ZSdyZSBkb25lIGRl
Y29kaW5nIHRoaXMgZnJhbWUsIHdlIGRvbid0IG5lZWQgdGhlIEJNUEltYWdlUmVhZGVyIG9yCiAg
ICAgLy8gUE5HSW1hZ2VEZWNvZGVyIGFueW1vcmUuICAoSWYgd2UgZmFpbGVkLCB0aGVzZSBoYXZl
IGFscmVhZHkgYmVlbgpAQCAtMTg2LDcgKzE4Niw3IEBAIGJvb2wgSUNPSW1hZ2VEZWNvZGVyOjpk
ZWNvZGVEaXJlY3RvcnkoKQogICAgIHJldHVybiAobV9kZWNvZGVkT2Zmc2V0ID49IChzaXplT2ZE
aXJlY3RvcnkgKyAobV9kaXJFbnRyaWVzLnNpemUoKSAqIHNpemVPZkRpckVudHJ5KSkpIHx8IHBy
b2Nlc3NEaXJlY3RvcnlFbnRyaWVzKCk7CiB9CiAKLWJvb2wgSUNPSW1hZ2VEZWNvZGVyOjpkZWNv
ZGVBdEluZGV4KHNpemVfdCBpbmRleCkKK2Jvb2wgSUNPSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdElu
ZGV4UHJpdmF0ZShzaXplX3QgaW5kZXgpCiB7CiAgICAgQVNTRVJUKGluZGV4IDwgbV9kaXJFbnRy
aWVzLnNpemUoKSk7CiAgICAgY29uc3QgSWNvbkRpcmVjdG9yeUVudHJ5JiBkaXJFbnRyeSA9IG1f
ZGlyRW50cmllc1tpbmRleF07CkBAIC0yMTksNiArMjE5LDcgQEAgYm9vbCBJQ09JbWFnZURlY29k
ZXI6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIC8vIGluIHRoZSBkaXJlY3Rvcnku
CiAgICAgaWYgKG1fcG5nRGVjb2RlcnNbaW5kZXhdLT5pc1NpemVBdmFpbGFibGUoKSAmJiAobV9w
bmdEZWNvZGVyc1tpbmRleF0tPnNpemUoKSAhPSBkaXJFbnRyeS5tX3NpemUpKQogICAgICAgICBy
ZXR1cm4gc2V0RmFpbGVkKCk7CisgICAgbV9wbmdEZWNvZGVyc1tpbmRleF0tPmRlY29kZUF0SW5k
ZXgoMCk7CiAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XSA9ICptX3BuZ0RlY29kZXJzW2lu
ZGV4XS0+ZnJhbWVCdWZmZXJBdEluZGV4KDApOwogICAgIHJldHVybiAhbV9wbmdEZWNvZGVyc1tp
bmRleF0tPmZhaWxlZCgpIHx8IHNldEZhaWxlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5o
CmluZGV4IDMxZDkxYzgxOTAyZmIwZDJjNjlkYzBhMzYxOGNiZGM1NGJmNmI3MTMuLmU4MTBmYTQz
MTEyNmE2NDVhZTM0NDE0N2RmYjlhMTU2YWEwMmNiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVy
LmgKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IEludFNpemUgZnJhbWVTaXplQXRJbmRleChzaXplX3QpIGNvbnN0OwogICAgICAgICB2aXJ0dWFs
IGJvb2wgc2V0U2l6ZSh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKICAgICAgICAg
dmlydHVhbCBzaXplX3QgZnJhbWVDb3VudCgpOwotICAgICAgICB2aXJ0dWFsIEltYWdlRnJhbWUq
IGZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjb2Rl
QXRJbmRleChzaXplX3QgaW5kZXgpIE9WRVJSSURFOwogICAgICAgICAvLyBDQVVUSU9OOiBzZXRG
YWlsZWQoKSBkZWxldGVzIGFsbCByZWFkZXJzIGFuZCBkZWNvZGVycy4gIEJlIGNhcmVmdWwgdG8K
ICAgICAgICAgLy8gYXZvaWQgYWNjZXNzaW5nIGRlbGV0ZWQgbWVtb3J5LCBlc3BlY2lhbGx5IHdo
ZW4gY2FsbGluZyB0aGlzIGZyb20KICAgICAgICAgLy8gaW5zaWRlIEJNUEltYWdlUmVhZGVyIQpA
QCAtOTgsNyArOTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZGVjb2Rl
RGlyZWN0b3J5KCk7CiAKICAgICAgICAgLy8gRGVjb2RlcyB0aGUgc3BlY2lmaWVkIGVudHJ5Lgot
ICAgICAgICBib29sIGRlY29kZUF0SW5kZXgoc2l6ZV90KTsKKyAgICAgICAgYm9vbCBkZWNvZGVB
dEluZGV4UHJpdmF0ZShzaXplX3QpOwogCiAgICAgICAgIC8vIFByb2Nlc3NlcyB0aGUgSUNPTkRJ
UiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkYXRhLiAgUmV0dXJucyB0cnVlIGlmCiAgICAgICAg
IC8vIHRoZSBkaXJlY3RvcnkgY291bGQgYmUgZGVjb2RlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURl
Y29kZXIuY3BwCmluZGV4IGJlZjQyMDNhNTc3MDM0Njg5MTFmY2I3ZDc2ZTQ5MWZhOTAyMGVhOTEu
LjQ4ZDYzYWZjMmU4NmFmNmE1NTMzYmYxZDI1MTQyN2NmY2E0NjJhMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9K
UEVHSW1hZ2VEZWNvZGVyLmNwcApAQCAtNTI5LDEwICs1MjksMTAgQEAgYm9vbCBKUEVHSW1hZ2VE
ZWNvZGVyOjpzZXRTaXplKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUltYWdlRnJhbWUqIEpQRUdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVy
QXRJbmRleChzaXplX3QgaW5kZXgpCitib29sIEpQRUdJbWFnZURlY29kZXI6OmRlY29kZUF0SW5k
ZXgoc2l6ZV90IGluZGV4KQogewogICAgIGlmIChpbmRleCkKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2ZyYW1lQnVmZmVyQ2FjaGUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZS5yZXNpemUoMSk7CkBAIC01NDIsNyAr
NTQyLDcgQEAgSW1hZ2VGcmFtZSogSlBFR0ltYWdlRGVjb2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4
KHNpemVfdCBpbmRleCkKICAgICBJbWFnZUZyYW1lJiBmcmFtZSA9IG1fZnJhbWVCdWZmZXJDYWNo
ZVswXTsKICAgICBpZiAoZnJhbWUuc3RhdHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0
ZSkKICAgICAgICAgZGVjb2RlKGZhbHNlKTsKLSAgICByZXR1cm4gJmZyYW1lOworICAgIHJldHVy
biB0cnVlOwogfQogCiBib29sIEpQRUdJbWFnZURlY29kZXI6OnNldEZhaWxlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFn
ZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcv
SlBFR0ltYWdlRGVjb2Rlci5oCmluZGV4IGQwOTVjYmIxNjllNzA3MGIzYjVlMzNiY2UyMTAzZGUw
NTJiZTRiNDMuLjAzODVmOGZjOWZhZmIwZGEwN2NhNzYwM2Q4ZGVmN2E3MTEwNGRjNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0lt
YWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCB7
IHJldHVybiAianBnIjsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTaXplQXZhaWxhYmxlKCk7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRTaXplKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBo
ZWlnaHQpOwotICAgICAgICB2aXJ0dWFsIEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChz
aXplX3QgaW5kZXgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlQXRJbmRleChzaXplX3Qg
aW5kZXgpIE9WRVJSSURFOwogICAgICAgICAvLyBDQVVUSU9OOiBzZXRGYWlsZWQoKSBkZWxldGVz
IHxtX3JlYWRlcnwuICBCZSBjYXJlZnVsIHRvIGF2b2lkCiAgICAgICAgIC8vIGFjY2Vzc2luZyBk
ZWxldGVkIG1lbW9yeSwgZXNwZWNpYWxseSB3aGVuIGNhbGxpbmcgdGhpcyBmcm9tIGluc2lkZQog
ICAgICAgICAvLyBKUEVHSW1hZ2VSZWFkZXIhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCmlu
ZGV4IDE1OGRlYmI1YWIxYzM4YzFlMWE3YmFhM2FkMGQzYWY0ZDczNjQ5YTguLmYyMGYyYTIxODc2
ZjIzYmUzZDI2YzgxNTk3NDMxMzdlNTI3ODUzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIu
Y3BwCkBAIC0yNTAsMTAgKzI1MCwxMCBAQCBib29sIFBOR0ltYWdlRGVjb2Rlcjo6c2V0U2l6ZSh1
bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogICAgIHJldHVybiB0cnVlOwogfQogCi1J
bWFnZUZyYW1lKiBQTkdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5k
ZXgpCitib29sIFBOR0ltYWdlRGVjb2Rlcjo6ZGVjb2RlQXRJbmRleChzaXplX3QgaW5kZXgpCiB7
CiAgICAgaWYgKGluZGV4KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9m
cmFtZUJ1ZmZlckNhY2hlLnJlc2l6ZSgxKTsKQEAgLTI2Myw3ICsyNjMsNyBAQCBJbWFnZUZyYW1l
KiBQTkdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAg
SW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1lQnVmZmVyQ2FjaGVbMF07CiAgICAgaWYgKGZyYW1l
LnN0YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpCiAgICAgICAgIGRlY29kZShm
YWxzZSk7Ci0gICAgcmV0dXJuICZmcmFtZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBQ
TkdJbWFnZURlY29kZXI6OnNldEZhaWxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmgKaW5kZXgg
ZWMyZTg1NzQwYjM2OTk2MDJkN2U4MzYwY2QyOWRlMGY5MDA3NzM0Yi4uZmM2ZWFkOGQ2NjE4ZGI1
YTkzMzBhNWFkZjAzNGMwZGE3YmFmMTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuaApAQCAt
NDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgU3RyaW5n
IGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QgeyByZXR1cm4gInBuZyI7IH0KICAgICAgICAgdmly
dHVhbCBib29sIGlzU2l6ZUF2YWlsYWJsZSgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0U2l6
ZSh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKLSAgICAgICAgdmlydHVhbCBJbWFn
ZUZyYW1lKiBmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KTsKKyAgICAgICAgdmlydHVh
bCBib29sIGRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBPVkVSUklERTsKICAgICAgICAgLy8g
Q0FVVElPTjogc2V0RmFpbGVkKCkgZGVsZXRlcyB8bV9yZWFkZXJ8LiAgQmUgY2FyZWZ1bCB0byBh
dm9pZAogICAgICAgICAvLyBhY2Nlc3NpbmcgZGVsZXRlZCBtZW1vcnksIGVzcGVjaWFsbHkgd2hl
biBjYWxsaW5nIHRoaXMgZnJvbSBpbnNpZGUKICAgICAgICAgLy8gUE5HSW1hZ2VSZWFkZXIhCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dF
QlBJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNwcAppbmRleCA2MTI4OTBmMzEyNTJiZTE3MGJmNzlm
M2MxZjA1ZTUyNzUwMzU4MjlhLi4xNmFmNDJiOGNlYzhjMmFmMzkyNTdlOWI5OGEzZTJiYTdmMzBi
OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93
ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKQEAgLTY5LDEwICs2OSwxMCBA
QCBib29sIFdFQlBJbWFnZURlY29kZXI6OmlzU2l6ZUF2YWlsYWJsZSgpCiAgICAgcmV0dXJuIElt
YWdlRGVjb2Rlcjo6aXNTaXplQXZhaWxhYmxlKCk7CiB9CiAKLUltYWdlRnJhbWUqIFdFQlBJbWFn
ZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCitib29sIFdFQlBJbWFn
ZURlY29kZXI6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAgIGlmIChpbmRleCkK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2Zy
YW1lQnVmZmVyQ2FjaGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZS5y
ZXNpemUoMSk7CkBAIC04Miw3ICs4Miw3IEBAIEltYWdlRnJhbWUqIFdFQlBJbWFnZURlY29kZXI6
OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAgSW1hZ2VGcmFtZSYgZnJhbWUg
PSBtX2ZyYW1lQnVmZmVyQ2FjaGVbMF07CiAgICAgaWYgKGZyYW1lLnN0YXR1cygpICE9IEltYWdl
RnJhbWU6OkZyYW1lQ29tcGxldGUpCiAgICAgICAgIGRlY29kZShmYWxzZSk7Ci0gICAgcmV0dXJu
ICZmcmFtZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBXRUJQSW1hZ2VEZWNvZGVyOjpk
ZWNvZGUoYm9vbCBvbmx5U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmgKaW5kZXggNjFl
YTEzOTUzNGM2ODE0YWRkNTIyNDdmM2UwZDhhNjc3MzBlMjc0ZC4uMjA1NDcyYTc3NTkxZmRlOWVl
MTNiYTk0ODkxMmExMzYzNzhmYTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmgKQEAg
LTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRl
bnNpb24oKSBjb25zdCB7IHJldHVybiAid2VicCI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTaXpl
QXZhaWxhYmxlKCk7Ci0gICAgdmlydHVhbCBJbWFnZUZyYW1lKiBmcmFtZUJ1ZmZlckF0SW5kZXgo
c2l6ZV90IGluZGV4KTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlQXRJbmRleChzaXplX3QgaW5k
ZXgpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIGJvb2wgZGVjb2RlKGJvb2wgb25seVNpemUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VEZWNvZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlRGVjb2Rlci5jcHAKaW5k
ZXggYWQwYTY3ZTUxNTU3YzEzYTA3YTU3OGEwZDJiMWVmYTRjYWUzNzUzMi4uNGQ2ZjRiZWM1M2Zj
M2Y3YzM3YWI2YmIwZWU2ZGFiZmU1NmFmMjU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJbWFnZURlY29kZXIuY3BwCkBAIC05OCw2ICs5OCw3IEBAIHNpemVfdCBXZWJJ
bWFnZURlY29kZXI6OmZyYW1lQ291bnQoKSBjb25zdAogYm9vbCBXZWJJbWFnZURlY29kZXI6Omlz
RnJhbWVDb21wbGV0ZUF0SW5kZXgoaW50IGluZGV4KSBjb25zdAogewogICAgIEFTU0VSVChtX3By
aXZhdGUpOworICAgIG1fcHJpdmF0ZS0+ZGVjb2RlQXRJbmRleChpbmRleCk7CiAgICAgSW1hZ2VG
cmFtZSogY29uc3QgZnJhbWVCdWZmZXIgPSBtX3ByaXZhdGUtPmZyYW1lQnVmZmVyQXRJbmRleChp
bmRleCk7CiAgICAgaWYgKCFmcmFtZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTA3LDYgKzEwOCw3IEBAIGJvb2wgV2ViSW1hZ2VEZWNvZGVyOjppc0ZyYW1lQ29tcGxldGVBdElu
ZGV4KGludCBpbmRleCkgY29uc3QKIFdlYkltYWdlIFdlYkltYWdlRGVjb2Rlcjo6Z2V0RnJhbWVB
dEluZGV4KGludCBpbmRleCA9IDApIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fcHJpdmF0ZSk7Cisg
ICAgbV9wcml2YXRlLT5kZWNvZGVBdEluZGV4KGluZGV4KTsKICAgICBJbWFnZUZyYW1lKiBjb25z
dCBmcmFtZUJ1ZmZlciA9IG1fcHJpdmF0ZS0+ZnJhbWVCdWZmZXJBdEluZGV4KGluZGV4KTsKICAg
ICBpZiAoIWZyYW1lQnVmZmVyKQogICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCmluZGV4IGUxYTkyNjA1MDYyODFk
ODlhMjhmYTBjZDI0MDMzZDAzOTcxODA1YzcuLmU0YTcxNDIwYWJmMjJjYTAzYTg0NTIzNTE2MjVl
ZGFkZGZiNjk1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklt
YWdlU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lh
LmNwcApAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAi
SW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdl
U2tpYS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2UuaCIKIAogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRhdGEuaCIKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJTaXplLmgiCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBXZWJJbWFnZSBXZWJJbWFnZTo6ZnJvbURhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29u
c3QgV2ViU2l6ZSYgZGVzaXJlZFNpemUpCiB7Ci0gICAgSW1hZ2VTb3VyY2Ugc291cmNlOworICAg
IFN5bmNocm9ub3VzSW1hZ2VTb3VyY2Ugc291cmNlOwogICAgIHNvdXJjZS5zZXREYXRhKFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPihkYXRhKS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFzb3VyY2Uu
aXNTaXplQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBXZWJJbWFnZSgpOwpAQCAtOTEsNyAr
OTEsNyBAQCBXZWJWZWN0b3I8V2ViSW1hZ2U+IFdlYkltYWdlOjpmcmFtZXNGcm9tRGF0YShjb25z
dCBXZWJEYXRhJiBkYXRhKQogICAgIC8vIFRoaXMgaXMgdG8gcHJvdGVjdCBmcm9tIG1hbGljaW91
cyBpbWFnZXMuIEl0IHNob3VsZCBiZSBiaWcgZW5vdWdoIHRoYXQgaXQncyBuZXZlciBoaXQgaW4g
cHJhY2ljZS4KICAgICBjb25zdCBzaXplX3QgbWF4RnJhbWVDb3VudCA9IDg7CiAKLSAgICBJbWFn
ZVNvdXJjZSBzb3VyY2U7CisgICAgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBzb3VyY2U7CiAgICAg
c291cmNlLnNldERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KGRhdGEpLmdldCgpLCB0cnVl
KTsKICAgICBpZiAoIXNvdXJjZS5pc1NpemVBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIFdl
YlZlY3RvcjxXZWJJbWFnZT4oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157706</attachid>
            <date>2012-08-10 04:57:10 -0700</date>
            <delta_ts>2012-08-15 18:34:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93467-20120810205638.patch</filename>
            <type>text/plain</type>
            <size>72702</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE1YjRmNzFmODBhMTYx
NzkzZDBkYWNhNDhiYzZkYjY3ZjRiMDQ2NC4uYjNlOWQ4OGNhZWRhZWRkOGMzZmVmZDhhYTI4MGU5
OWExZTYwMGQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NSBAQAorMjAxMi0wOC0xMCAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBDaGFuZ2Ug
SW1hZ2VTb3VyY2UgdG8gYmUgYXN5bmNocm9ub3VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM0NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnRlcm5hbCByZXZpZXcgYnkgS3dhbmcgWXVsIFNlby4K
KworICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgQVBJIG9mIEltYWdlU291cmNlIHN1cHBv
cnQgYXN5bmNocm9ub3VzIGltYWdlIGRlY29kaW5nLiBUaGlzCisgICAgICAgIGlzIGEgcHJlcGFy
YXRpb24gZm9yIGFzeW5jaHJvbm91cyBpbWFnZSBkZWNvZGluZy4gQWZ0ZXIgSW1hZ2VTb3VyY2UK
KyAgICAgICAgY29tcGxldGVzIGltYWdlIGRlY29kaW5nLCBJbWFnZVNvdXJjZSBzZW5kcyBOYXRp
dmVJbWFnZVB0ciB0byBCaXRtYXBJbWFnZSB2aWEKKyAgICAgICAgSW1hZ2VTb3VyY2VPYnNlcnZl
cjo6ZGlkRGVjb2RlRnJhbWVBdEluZGV4KCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWVz
IGNyZWF0ZUZyYW1lQXRJbmRleCB0byByZXF1ZXN0RnJhbWVBdEluZGV4LCB0byBpbXBseQorICAg
ICAgICB0aGlzIG1ldGhvZCBjYW4gYmUgYXN5bmNocm9ub3VzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW50cm9kdWNlZCBTeW5jaHJvbm91c0ltYWdlU291cmNlLCB3aGljaCBkZWNvZGVzIGltYWdl
IHN5bmNocm9ub3VzbHkuCisgICAgICAgIFRoZSBtYWluIHJlYXNvbiB0byBhZGQgdGhpcyBjbGFz
cyBpcyB0byBwcmV2ZW50IGNsaWVudHMgZnJvbSBtaXN1c2luZworICAgICAgICBJbWFnZVNvdXJj
ZS4gSW1hZ2VTb3VyY2Ugd2lsbCBiZSBhYmxlIHRvIHBlcmZvcm0gc3luYyBhbmQgYXN5bmMgaW1h
Z2UgZGVjb2RpbmcsCisgICAgICAgIHNvIGl0IHdpbGwgYmUgaGFyZCB0byB1c2UgSW1hZ2VTb3Vy
Y2UgY29ycmVjdGx5LiBTbywgYWZ0ZXIgdGhpcyBwYXRjaCwgb25seQorICAgICAgICBCaXRtYXBJ
bWFnZSBhbmQgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBjYW4gY3JlYXRlIGFuZCB1c2UgSW1hZ2VT
b3VyY2UsIGFuZCBvdGhlcgorICAgICAgICBjbGllbnRzIHdoaWNoIG5lZWQgdG8gdXNlIEltYWdl
U291cmNlIG11c3QgdXNlIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuCisgICAgICAgIEN1cnJlbnRs
eSwgR3JhcGhpY3NDb250ZXh0M0QgYW5kIFdlYkltYWdlU2tpYSB1c2UgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZS4KKworICAgICAgICBJbnRyb2R1Y2VkIEltYWdlU291cmNlOjpSZXF1ZXN0RGVjb2Rp
bmdNb2RlIGVudW0uIFRocmVlIG1ldGFkYXRhIHF1ZXJ5CisgICAgICAgIG1ldGhvZHMgbm93IHJl
Y2VpdmUgYSBkZWNvZGluZyBtb2RlIGFzIHdlbGwgYXMgYW4gaW5kZXggbnVtYmVyLiBJZiB0aGUg
cGFzc2VkCisgICAgICAgIGFyZ3VtZW50IGlzIFJlcXVlc3REZWNvZGluZywgdGhlc2UgbWV0aG9k
cyBkZWNvZGUgaW1hZ2Ugc3luY2hyb25vdXNseS4KKyAgICAgICAgQml0bWFwSW1hZ2UgYWx3YXlz
IHBhc3NlcyBOb25SZXF1ZXN0RGVjb2Rpbmcgd2hpbGUgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBh
bHdheXMKKyAgICAgICAgcGFzc2VzIFJlcXVlc3REZWNvZGluZy4KKworICAgICAgICBDaGFuZ2Vk
IGZyYW1lQnVmZmVyQXRJbmRleCgpIG5vdCB0byBkZWNvZGUgYW55bW9yZSBhbmQganVzdCByZXR1
cm4gdGhlIGNhY2hlZAorICAgICAgICBmcmFtZSBpZiBhdmFpbGFibGUuIEFsc28gaW50cm9kdWNl
ZCBkZWNvZGVBdEluZGV4KCkgc28gdGhhdCBjbGllbnRzIGNhbiByZXF1ZXN0CisgICAgICAgIGRl
Y29kaW5nIGFuIGltYWdlLiBGb3IgZXhhbXBsZSwgSW1hZ2VTb3VyY2UgcXVlcmllcyBtZXRhZGF0
YSB1c2luZworICAgICAgICBmcmFtZUJ1ZmZlckF0SW5kZXgoKSB3aXRob3V0IHRyaWdnZXJpbmcg
aW1hZ2UgZGVjb2RpbmcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gZXhpc3RpbmcgaW1hZ2Ug
dGVzdHMgY292ZXIgdGhlc2UgY2FzZXMuCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2ltYWdl
cy8qCisgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzLyoKKyAgICAgICAgICAgICAgZmFzdC9kb20v
SFRNTEltYWdlRWxlbWVudC8qCisgICAgICAgICAgICAgIGh0dHAvdGVzdHMvaW1hZ2VzLyoKKyAg
ICAgICAgICAgICAgY3NzMy9pbWFnZXMvKgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRpZERlY29kZUZyYW1l
QXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZnJhbWVIYXNBbHBoYUF0
SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAg
ICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1l
QXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkF0
SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdElu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdElu
ZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChJbWFnZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2VPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoSW1hZ2VTb3VyY2VPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVNvdXJjZU9ic2VydmVyOjp+SW1hZ2VTb3VyY2VPYnNlcnZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChJbWFnZVNvdXJjZU9ic2VydmVySW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZVNvdXJjZU9ic2VydmVySW1wbDo6SW1hZ2VTb3VyY2VPYnNlcnZlckltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6U3luY2hyb25vdXNJ
bWFnZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c0ltYWdlU291cmNlOjp+
U3luY2hyb25vdXNJbWFnZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c0lt
YWdlU291cmNlOjpzZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VT
b3VyY2U6OmZpbGVuYW1lRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2U6OmlzU2l6ZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJv
bm91c0ltYWdlU291cmNlOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1h
Z2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25v
dXNJbWFnZVNvdXJjZTo6ZnJhbWVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91
c0ltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6U3lu
Y2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgpOgorICAgICAgICAoV2Vi
Q29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3luY2hyb25vdXNJbWFnZVNvdXJjZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VTb3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6SW1hZ2VTb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnJlcXVlc3RGcmFtZUF0SW5kZXgp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJh
bWVJc0NvbXBsZXRlQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJh
bWVEdXJhdGlvbkF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1h
Z2VPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJRdDo6ZGVjb2RlQXRJbmRleCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuaDoKKyAgICAgICAgKEltYWdl
RGVjb2RlclF0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6OmZyYW1l
QnVmZmVyQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VE
ZWNvZGVyLmg6CisgICAgICAgIChJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2JsYWNrYmVycnkvSlBFR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKUEVHSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9ibGFja2JlcnJ5L0pQRUdJbWFnZURlY29kZXIuaDoKKyAgICAg
ICAgKEpQRUdJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2JtcC9CTVBJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qk1QSW1hZ2VEZWNv
ZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9i
bXAvQk1QSW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChCTVBJbWFnZURlY29kZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R0lGSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVyLmg6CisgICAgICAg
IChHSUZJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2lj
by9JQ09JbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SUNPSW1hZ2VEZWNvZGVy
OjpmcmFtZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OklDT0ltYWdlRGVjb2Rlcjo6ZGVjb2Rl
QXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJQ09JbWFnZURlY29kZXI6OmRlY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJQ09JbWFnZURlY29kZXI6OmRlY29kZUF0SW5kZXhQcml2YXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmg6
CisgICAgICAgIChJQ09JbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKUEVH
SW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuaDoKKyAgICAgICAgKEpQRUdJbWFnZURlY29k
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29k
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UE5HSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVy
Lmg6CisgICAgICAgIChQTkdJbWFnZURlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
RUJQSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuaDoKKyAgICAgICAgKFdFQlBJbWFnZURl
Y29kZXIpOgorCiAyMDEyLTA4LTA5ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkx
MDAubmV0PgogCiAgICAgICAgIFJlbmFtZSB0d28gbWV0aG9kcyBvZiBCaXRtYXBJbWFnZSBpbiBv
cmRlciB0byBjbGFyaWZ5IHRoZSBpbnRlbnRpb246IGZyYW1lRHVyYXRpb25BdEluZGV4KCkgYW5k
IGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
YjY5OWJiZDNhMzJjZjNjYTA4MWFlNDM0ZDI0NzZmYTYzMTE0OGE2OC4uODY0ZWJhNzE0N2I1Yzdm
MDIwNjY4NmMzOTQ2NWE4NzY2MDcwYzllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMi0wOC0xMCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21w
YW55MTAwLm5ldD4KKworICAgICAgICBDaGFuZ2UgSW1hZ2VTb3VyY2UgdG8gYmUgYXN5bmNocm9u
b3VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM0
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGludHJvZHVjZWQgU3luY2hyb25vdXNJbWFnZVNvdXJjZSwgYW5kIGFsbCBjbGllbnRz
IHdoaWNoIHVzZWQKKyAgICAgICAgSW1hZ2VTb3VyY2UgbXVzdCB1c2UgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZSBpbnN0ZWFkIG9mIEltYWdlU291cmNlLgorICAgICAgICBDaGFuZ2VkIGZyYW1lQnVm
ZmVyQXRJbmRleCgpIG5vdCB0byBkZWNvZGUgYW55bW9yZSBhbmQganVzdCByZXR1cm4gdGhlCisg
ICAgICAgIGNhY2hlZCBmcmFtZSBpZiBhdmFpbGFibGUuIENsaWVudHMgbXVzdCBleHBsaWNpdGx5
IGNhbGwgZGVjb2RlQXRJbmRleCgpLgorCisgICAgICAgICogc3JjL1dlYkltYWdlRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkltYWdlRGVjb2Rlcjo6aXNGcmFtZUNvbXBsZXRlQXRJ
bmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYkltYWdlRGVjb2Rlcjo6Z2V0RnJhbWVBdEluZGV4
KToKKyAgICAgICAgKiBzcmMvV2ViSW1hZ2VTa2lhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW1hZ2U6OmZyb21EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW1hZ2U6OmZyYW1lc0Zyb21E
YXRhKToKKwogMjAxMi0wOC0wOSAgRXJpYyBQZW5uZXIgIDxlcGVubmVyQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBQYWludCBhbmltYXRlZCBsYXllcnMgaW1tZWRpYXRlbHkgdG8g
YXZvaWQgYW5pbWF0aW9uIGhpY2N1cHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCA3ODAzYTdjNjljM2JkMTU5OWFiMWEzYTAyZGU5MDIwYjQ4NDlmZmE1Li5kMTFlOTg0OTBlZmM0
MjY1YWU1Njc1NGZiMjVjMzFkMWY3NDhkOTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTM0MTIsNiArMzQxMiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW50UG9pbnRIYXNoLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ludFJlY3QuY3BwIFwKQEAgLTM0NDYsNiArMzQ0Nyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4
dEl0ZXJhdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NWR0dseXBo
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU1ZHR2x5cGguaCBcCisJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VT
b3VyY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJlbmRlcmlu
Z01vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCBmNDMxNzVkZTYxN2U3YzVhZTZkOTU4ZTg1NDZjY2E5M2QxMDIyZjA4Li40ZTZjNmJh
MGZmMTk5MmM5NDQ1YjNmNTc2OGJkZDU1NWE1ZmE4MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk2OCw2
ICs5NjgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TVkdHbHlwaC5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcCBcCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL3F0L0dyYXBoaWNzU3VyZmFjZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFJ1bi5jcHAgXApAQCAtMjA4Miw2ICsyMDgzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRh
dGlvbi5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIFwKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFBvaW50LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50SGFzaC5oIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggXApAQCAtMjEwMSw2ICsyMTAzLDcgQEAg
SEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU2VnbWVudGVkRm9udERhdGEuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5oIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91
c0ltYWdlU291cmNlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNz
U3VyZmFjZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYjQ5YzMyMDMxNTlkYWRmMDJiMmE3MGM3YzRlOWNm
MzNkMDEyNTJiOC4uYWMzYzIxZWIwNmIwNDA3NTFlM2MwYjc0Yjc4ZDgyMzJiOTIyOTczYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMzkwLDYgKzM5MCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VPYnNlcnZlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZU9yaWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
T2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnRIYXNoLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaCcsCkBAIC00MDUsNiArNDA2LDcgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvU1ZHR2x5cGguaCcsCisgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9UZXh0UmVuZGVyaW5nTW9kZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9UZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1R5cGVz
ZXR0aW5nRmVhdHVyZXMuaCcsCkBAIC0zNTQ5LDYgKzM1NTEsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL1N0cm9rZVN0eWxlQXBwbGllci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3Iu
aCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJj
ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9UaWxlLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGMxNzc5MjIzNDI1NmE2NjdkNWQzM2Y2
ZDFjZmEyODYzMTc2ZDIzMjguLmI4M2RjN2UxOTQ5M2NhZjAzN2JlYWE4NTBiOWUwNDgzOGNiMWRk
ODMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yOTUyMiw2ICsyOTUyMiwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSW1hZ2VTb3VyY2VPYnNlcnZl
ci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcSW50UG9pbnQuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAg
LTI5NjIyLDYgKzI5NjI2LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xTeW5jaHJvbm91c0ltYWdlU291
cmNlLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXFRleHRSdW4uY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRkZGU2YTM0
NGUwNmFjOWYyMjU4Nzc4Nzk2YWI4YTBjMDQ1NTdmMjYuLmQ3OTIxMTYxMTZkODQ2NWQxYzk2NTg1
YTk1YjRiNWRiOTAyMzliOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MjEsNiArNDgyMSw3IEBACiAJCUIyNzUzNTZGMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwICov
OyB9OwogCQlCMjc1MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTQyMEIwNTM4MTQwMDJDRTY0
RiAvKiBJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUIyNzUzNTcxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDMwQjA1MzgxNDAw
MkNFNjRGIC8qIEltYWdlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJQjI3NTM1NzEwQjA1MzgxNDAwMkNFNjRFIC8qIEltYWdlU291cmNl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9ic2VydmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1NzIwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjc1MzU3
MzBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0NTBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVj
dC5jcHAgKi87IH07CiAJCUIyNzUzNTc0MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0NjBCMDUz
ODE0MDAyQ0U2NEYgLyogSW50UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC00ODM3LDYgKzQ4MzgsOCBAQAogCQlCMjc1MzU3RTBCMDUzODE0
MDAyQ0U2NEYgLyogSW50U2l6ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyNzUzNTUxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplTWFjLm1t
ICovOyB9OwogCQlCMjc1MzU3RjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MjBCMDUzODE0MDAy
Q0U2NEYgLyogUGF0aC5jcHAgKi87IH07CiAJCUIyNzUzNTgwMEIwNTM4MTQwMDJDRTY0RiAvKiBQ
YXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1
MzU1MzBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE5OTk0MzI5MEI0MjMzODgwMEQ3QzgwMiAvKiBTeW5j
aHJvbm91c0ltYWdlU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE5OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdl
U291cmNlLmNwcCAqLzsgfTsKKwkJQjM3NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIFN5bmNocm9u
b3VzSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIzNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3
NTM1OEUwQjA1M0E2NjAwMkNFNjRGIC8qIEljb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU4RDBCMDUzQTY2MDAyQ0U2NEYgLyogSWNv
bk1hYy5tbSAqLzsgfTsKIAkJQjI3N0I0MDQwQjIyRjM3QzAwMDRCRUM2IC8qIEdyYXBoaWNzQ29u
dGV4dE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyNzdCNDAzMEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0gKi87IH07
CiAJCUIyN0IyODI1MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODFGMENFRjBD
MDcwMEQzOUQ1NCAvKiBKU1NWR0ZvbnRFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTEyMDU5LDYgKzEy
MDYyLDcgQEAKIAkJQjI3NTM1NDEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIyNzUzNTQyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCMjc1MzU0MzBCMDUzODE0MDAyQ0U2NEUgLyogSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU0NDBCMDUz
ODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEludFBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNTQ1MEIw
NTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbnRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3
NTM1NDYwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEludFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
MDc1LDYgKzEyMDc5LDggQEAKIAkJQjI3NTM1NTEwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemVN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW50U2l6ZU1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NTIwQjA1MzgxNDAwMkNF
NjRGIC8qIFBhdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
dGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU1MzBCMDUzODE0MDAy
Q0U2NEYgLyogUGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0aC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIg
LyogU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUIzNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJvbm91c0ltYWdl
U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW5jaHJvbm91c0lt
YWdlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNThEMEIwNTNB
NjYwMDJDRTY0RiAvKiBJY29uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEljb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzdC
NDAzMEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0NvbnRleHRNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0TWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjdCMjgxRjBDRUYwQzA3MDBEMzlENTQgLyogSlNT
VkdGb250RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTVkdGb250RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTgy
NCw2ICsxOTgzMCw3IEBACiAJCQkJQTg3NDhENjYxMkNDMzc2MzAwMUZCQTQxIC8qIEltYWdlT3Jp
ZW50YXRpb24uaCAqLywKIAkJCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5k
ZXJpbmdNb2RlLmggKi8sCiAJCQkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291
cmNlLmggKi8sCisJCQkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRFIC8qIEltYWdlU291cmNlT2Jz
ZXJ2ZXIuaCAqLywKIAkJCQlCMjc1MzU0NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAq
LywKIAkJCQlFNDYyQTRBMDExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggKi8sCiAJ
CQkJQjI3NTM1NDUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwICovLApAQCAtMTk4NTgs
NiArMTk4NjUsOCBAQAogCQkJCTA4NzU1OEM0MTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJyb2dhdGVQ
YWlyQXdhcmVUZXh0SXRlcmF0b3IuaCAqLywKIAkJCQkwODdFMEFGNDEzNjA2RDBCMDBGQTRCQTgg
LyogU1ZHR2x5cGguY3BwICovLAogCQkJCTA4N0UwQUY1MTM2MDZEMEIwMEZBNEJBOCAvKiBTVkdH
bHlwaC5oICovLAorCQkJCUE5OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0lt
YWdlU291cmNlLmNwcCAqLywKKwkJCQlCMzc1MzU0MzBCMDUzODE0MDAyQ0U2NEYgLyogU3luY2hy
b25vdXNJbWFnZVNvdXJjZS5oICovLAogCQkJCTkzMEZDNjg5MTA3MkI5MjgwMDQ1MjkzRSAvKiBU
ZXh0UmVuZGVyaW5nTW9kZS5oICovLAogCQkJCTM3NkRDQ0UwMTNCNEY5NjYwMDJFQkVGQyAvKiBU
ZXh0UnVuLmNwcCAqLywKIAkJCQlBODI0QjQ2NDBFMkVGMkVBMDA4MUE3QjcgLyogVGV4dFJ1bi5o
ICovLApAQCAtMjM1ODUsNiArMjM1OTQsNyBAQAogCQkJCTJENUE1OTMxMTUyNTI1RDAwMDM2RUU1
MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTI5MUU0QjEzNDE3
MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Mjc1MzU3MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCUIyNzUzNTcxMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VTb3VyY2VD
Ry5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUxMTgwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxp
Y2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5
RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxMjAsNiAr
MjUxMzAsNyBAQAogCQkJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUY2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkda
b29tQW5kUGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkU0RUM5ODBEMDBDMjJCMDA0MzI2NDMg
LyogU1ZHWm9vbUV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCMzc1MzU3MTBCMDUzODE0MDAy
Q0U2NEYgLyogU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNF
NjJEOUIwOTg1RjQxNjAwRTFCNUUzIC8qIFN5c3RlbVRpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4Q0ZGMDUxMEExNTRGMDkwMDBBNDIzNCAvKiBUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNFM0JFQzMwRDIyMkIxRDAwN0UwNkU0IC8qIFRhZ05vZGVMaXN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4MjM1LDYgKzI4MjQ2LDcgQEAKIAkJCQk4NDg1MjI4QTExOTAxNzNDMDA2RURD
N0YgLyogU1ZHVktlcm5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QUY1MEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdab29tQW5kUGFuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
RTRFQzk3MEQwMEMyMkIwMDQzMjY0MyAvKiBTVkdab29tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTk5OTQzMjkwQjQyMzM4ODAwRDdDODAyIC8qIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU4MkExNjMwOTk5OUQ2RDAwQkVFQjZEIC8qIFN5c3Rl
bVRpbWVNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFM0JFQzIwRDIyMkIxRDAwN0UwNkU0
IC8qIFRhZ05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREQ1MTI1MUYxMkQw
MDNFRjI2OSAvKiBUZWxlcGhvbmVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggZWJi
OGQ3ODkwNzRkMWVjZjQwNjkwYmY2MjNlMGE3Yjk5OGM4MTA2Ni4uNzM2ZjJjODgzNzZiOWJhNzEx
ZGI2N2MwYmM3MjdiMjQxYTNlNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQCBzdGF0aWMgaW50IGZy
YW1lQnl0ZXMoY29uc3QgSW50U2l6ZSYgZnJhbWVTaXplKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFw
SW1hZ2UoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZlcikKKyAg
ICAsIG1fc291cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgwKQogICAgICwgbV9mcmFt
ZXMoMCkKICAgICAsIG1fZnJhbWVUaW1lcigwKQpAQCAtMTMwLDIwICsxMzEsMjYgQEAgdm9pZCBC
aXRtYXBJbWFnZTo6Y2FjaGVGcmFtZShzaXplX3QgaW5kZXgpCiB7CiAgICAgc2l6ZV90IG51bUZy
YW1lcyA9IGZyYW1lQ291bnQoKTsKICAgICBBU1NFUlQobV9kZWNvZGVkU2l6ZSA9PSAwIHx8IG51
bUZyYW1lcyA+IDEpOwotICAgIAogICAgIGlmIChtX2ZyYW1lcy5zaXplKCkgPCBudW1GcmFtZXMp
CiAgICAgICAgIG1fZnJhbWVzLmdyb3cobnVtRnJhbWVzKTsKIAotICAgIG1fZnJhbWVzW2luZGV4
XS5tX2ZyYW1lID0gbV9zb3VyY2UuY3JlYXRlRnJhbWVBdEluZGV4KGluZGV4KTsKKyAgICBtX3Nv
dXJjZS5yZXF1ZXN0RnJhbWVBdEluZGV4KGluZGV4KTsKK30KKwordm9pZCBCaXRtYXBJbWFnZTo6
ZGlkRGVjb2RlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCwgTmF0aXZlSW1hZ2VQdHIgbmF0aXZl
SW1hZ2UpCit7CisgICAgbV9mcmFtZXNbaW5kZXhdLm1fZnJhbWUgPSBuYXRpdmVJbWFnZTsKKwor
ICAgIHNpemVfdCBudW1GcmFtZXMgPSBmcmFtZUNvdW50KCk7CiAgICAgaWYgKG51bUZyYW1lcyA9
PSAxICYmIG1fZnJhbWVzW2luZGV4XS5tX2ZyYW1lKQogICAgICAgICBjaGVja0ZvclNvbGlkQ29s
b3IoKTsKIAogICAgIG1fZnJhbWVzW2luZGV4XS5tX29yaWVudGF0aW9uID0gbV9zb3VyY2Uub3Jp
ZW50YXRpb25BdEluZGV4KGluZGV4KTsKICAgICBtX2ZyYW1lc1tpbmRleF0ubV9oYXZlTWV0YWRh
dGEgPSB0cnVlOwotICAgIG1fZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxldGUgPSBtX3NvdXJjZS5m
cmFtZUlzQ29tcGxldGVBdEluZGV4KGluZGV4KTsKKyAgICBtX2ZyYW1lc1tpbmRleF0ubV9pc0Nv
bXBsZXRlID0gbV9zb3VyY2UuZnJhbWVJc0NvbXBsZXRlQXRJbmRleChpbmRleCwgSW1hZ2VTb3Vy
Y2U6Ok5vblJlcXVlc3REZWNvZGluZyk7CiAgICAgaWYgKHJlcGV0aXRpb25Db3VudChmYWxzZSkg
IT0gY0FuaW1hdGlvbk5vbmUpCi0gICAgICAgIG1fZnJhbWVzW2luZGV4XS5tX2R1cmF0aW9uID0g
bV9zb3VyY2UuZnJhbWVEdXJhdGlvbkF0SW5kZXgoaW5kZXgpOwotICAgIG1fZnJhbWVzW2luZGV4
XS5tX2hhc0FscGhhID0gbV9zb3VyY2UuZnJhbWVIYXNBbHBoYUF0SW5kZXgoaW5kZXgpOworICAg
ICAgICBtX2ZyYW1lc1tpbmRleF0ubV9kdXJhdGlvbiA9IG1fc291cmNlLmZyYW1lRHVyYXRpb25B
dEluZGV4KGluZGV4LCBJbWFnZVNvdXJjZTo6Tm9uUmVxdWVzdERlY29kaW5nKTsKKyAgICBtX2Zy
YW1lc1tpbmRleF0ubV9oYXNBbHBoYSA9IG1fc291cmNlLmZyYW1lSGFzQWxwaGFBdEluZGV4KGlu
ZGV4LCBJbWFnZVNvdXJjZTo6Tm9uUmVxdWVzdERlY29kaW5nKTsKIAogICAgIGNvbnN0IEludFNp
emUgZnJhbWVTaXplKGluZGV4ID8gbV9zb3VyY2UuZnJhbWVTaXplQXRJbmRleChpbmRleCkgOiBt
X3NpemUpOwogICAgIGlmIChmcmFtZVNpemUgIT0gbV9zaXplKQpAQCAtMzI4LDcgKzMzNSw3IEBA
IGJvb2wgQml0bWFwSW1hZ2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkKICAg
ICBpZiAobV9mcmFtZXNbaW5kZXhdLm1faGF2ZU1ldGFkYXRhKQogICAgICAgICByZXR1cm4gbV9m
cmFtZXNbaW5kZXhdLm1faGFzQWxwaGE7CiAKLSAgICByZXR1cm4gbV9zb3VyY2UuZnJhbWVIYXNB
bHBoYUF0SW5kZXgoaW5kZXgpOworICAgIHJldHVybiBtX3NvdXJjZS5mcmFtZUhhc0FscGhhQXRJ
bmRleChpbmRleCwgSW1hZ2VTb3VyY2U6Ok5vblJlcXVlc3REZWNvZGluZyk7CiB9CiAKIGJvb2wg
Qml0bWFwSW1hZ2U6OmN1cnJlbnRGcmFtZUhhc0FscGhhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDZiZTk3NjFjNzIyOTJhNWU4OGEy
Nzg5NTE1NDY5MjQ2N2VlNDgyNTQuLmIzNmQwZTNlZTNmZWY1OWYzNmJlYTE3MzY1NjFkZjM2Mzk5
MDAyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiSW1h
Z2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCisjaW5jbHVkZSAiSW1h
Z2VTb3VyY2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKIAogI2lmIFBMQVRGT1JN
KE1BQykKQEAgLTk5LDcgKzEwMCw3IEBAIHB1YmxpYzoKIC8vIEJpdG1hcEltYWdlIENsYXNzCiAv
LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLWNs
YXNzIEJpdG1hcEltYWdlIDogcHVibGljIEltYWdlIHsKK2NsYXNzIEJpdG1hcEltYWdlIDogcHVi
bGljIEltYWdlLCBwdWJsaWMgSW1hZ2VTb3VyY2VPYnNlcnZlciB7CiAgICAgZnJpZW5kIGNsYXNz
IEdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZTsKICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CkBAIC0xNzAsNiAr
MTcxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRyIG5h
dGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgLy8gTWFrZSB0aGUgYmVzdCBlZmZvcnQg
Z3Vlc3MgdG8gY2hlY2sgaWYgdGhlIHJlcXVlc3RlZCBmcmFtZSBoYXMgYWxwaGEgY2hhbm5lbC4K
ICAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCk7CiAgICAgdmlydHVhbCBib29s
IGN1cnJlbnRGcmFtZUhhc0FscGhhKCk7CiAKQEAgLTE4MCw2ICsxODIsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIG5vdFNvbGlkQ29sb3IoKTsKICNlbmRpZgogCisgICAgLy8gSW1hZ2VT
b3VyY2VPYnNlcnZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6
ZV90LCBOYXRpdmVJbWFnZVB0cikgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVTaXplKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmNwcAppbmRleCBjNDMzZGU0MDEyZTk4OGRjNmY5MDkxNjk3ODc1NTMwNTY3
MTUxYjZiLi41NGY5YThkNjc4ZDkyZWIzZmViYTgzYjk3ZjkzNWMzYzAyMmJjYjg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAKICNpbmNsdWRlICJJbWFn
ZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VTb3VyY2VPYnNlcnZlci5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDExICs0
MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1bnNpZ25lZCBJbWFnZVNvdXJjZTo6c19tYXhQ
aXhlbHNQZXJEZWNvZGVkSW1hZ2UgPSAxMDI0ICogMTAyNDsKICNlbmRpZgogCi1JbWFnZVNvdXJj
ZTo6SW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFn
ZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pCitJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2VPYnNlcnZlciogb2Jz
ZXJ2ZXIsIEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgSW1hZ2VTb3VyY2U6
OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQog
ICAgIDogbV9kZWNvZGVyKDApCisgICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQogICAgICwgbV9h
bHBoYU9wdGlvbihhbHBoYU9wdGlvbikKICAgICAsIG1fZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRp
b24oZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CisgICAgQVNTRVJUKG1fb2JzZXJ2ZXIp
OwogfQogCiBJbWFnZVNvdXJjZTo6fkltYWdlU291cmNlKCkKQEAgLTEzNywxMSArMTQwLDE5IEBA
IHNpemVfdCBJbWFnZVNvdXJjZTo6ZnJhbWVDb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGVj
b2RlciA/IG1fZGVjb2Rlci0+ZnJhbWVDb3VudCgpIDogMDsKIH0KIAordm9pZCBJbWFnZVNvdXJj
ZTo6cmVxdWVzdEZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgsIGJvb2wpCit7CisgICAgLy8gVE9E
TzogSW1wbGVtZW50IGFzeW5jaHJvbm91cyBkZWNvZGluZy4KKyAgICBOYXRpdmVJbWFnZVB0ciBu
YXRpdmVJbWFnZSA9IGNyZWF0ZUZyYW1lQXRJbmRleChpbmRleCk7CisgICAgbV9vYnNlcnZlci0+
ZGlkRGVjb2RlRnJhbWVBdEluZGV4KGluZGV4LCBuYXRpdmVJbWFnZSk7Cit9CisKIE5hdGl2ZUlt
YWdlUHRyIEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewog
ICAgIGlmICghbV9kZWNvZGVyKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIG1fZGVjb2Rlci0+
ZGVjb2RlQXRJbmRleChpbmRleCk7CiAgICAgSW1hZ2VGcmFtZSogYnVmZmVyID0gbV9kZWNvZGVy
LT5mcmFtZUJ1ZmZlckF0SW5kZXgoaW5kZXgpOwogICAgIGlmICghYnVmZmVyIHx8IGJ1ZmZlci0+
c3RhdHVzKCkgPT0gSW1hZ2VGcmFtZTo6RnJhbWVFbXB0eSkKICAgICAgICAgcmV0dXJuIDA7CkBA
IC0xNTYsMTEgKzE2NywxNCBAQCBOYXRpdmVJbWFnZVB0ciBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJh
bWVBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICByZXR1cm4gYnVmZmVyLT5hc05ld05hdGl2ZUlt
YWdlKCk7CiB9CiAKLWZsb2F0IEltYWdlU291cmNlOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXpl
X3QgaW5kZXgpCitmbG9hdCBJbWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90
IGluZGV4LCBSZXF1ZXN0RGVjb2RpbmdNb2RlIG1vZGUpCiB7CiAgICAgaWYgKCFtX2RlY29kZXIp
CiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKG1vZGUgPT0gUmVxdWVzdERlY29kaW5nKQor
ICAgICAgICBtX2RlY29kZXItPmRlY29kZUF0SW5kZXgoaW5kZXgpOworCiAgICAgSW1hZ2VGcmFt
ZSogYnVmZmVyID0gbV9kZWNvZGVyLT5mcmFtZUJ1ZmZlckF0SW5kZXgoaW5kZXgpOwogICAgIGlm
ICghYnVmZmVyIHx8IGJ1ZmZlci0+c3RhdHVzKCkgPT0gSW1hZ2VGcmFtZTo6RnJhbWVFbXB0eSkK
ICAgICAgICAgcmV0dXJuIDA7CkBAIC0xODIsMTggKzE5NiwyOCBAQCBJbWFnZU9yaWVudGF0aW9u
IEltYWdlU291cmNlOjpvcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogICAg
IHJldHVybiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKIH0KIAotYm9vbCBJbWFnZVNvdXJjZTo6
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQorYm9vbCBJbWFnZVNvdXJjZTo6ZnJh
bWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXF1ZXN0RGVjb2RpbmdNb2RlIG1vZGUp
CiB7CiAgICAgaWYgKCFtX2RlY29kZXIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVy
biBtX2RlY29kZXItPmZyYW1lSGFzQWxwaGFBdEluZGV4KGluZGV4KTsKKworICAgIGlmIChtb2Rl
ID09IFJlcXVlc3REZWNvZGluZykKKyAgICAgICAgbV9kZWNvZGVyLT5kZWNvZGVBdEluZGV4KGlu
ZGV4KTsKKworICAgIEltYWdlRnJhbWUqIGJ1ZmZlciA9IG1fZGVjb2Rlci0+ZnJhbWVCdWZmZXJB
dEluZGV4KGluZGV4KTsKKyAgICBpZiAoYnVmZmVyLT5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpG
cmFtZUNvbXBsZXRlKQorICAgICAgICByZXR1cm4gYnVmZmVyLT5oYXNBbHBoYSgpOworICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4
KHNpemVfdCBpbmRleCkKK2Jvb2wgSW1hZ2VTb3VyY2U6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgo
c2l6ZV90IGluZGV4LCBSZXF1ZXN0RGVjb2RpbmdNb2RlIG1vZGUpCiB7CiAgICAgaWYgKCFtX2Rl
Y29kZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtb2RlID09IFJlcXVlc3RE
ZWNvZGluZykKKyAgICAgICAgbV9kZWNvZGVyLT5kZWNvZGVBdEluZGV4KGluZGV4KTsKKwogICAg
IEltYWdlRnJhbWUqIGJ1ZmZlciA9IG1fZGVjb2Rlci0+ZnJhbWVCdWZmZXJBdEluZGV4KGluZGV4
KTsKICAgICByZXR1cm4gYnVmZmVyICYmIGJ1ZmZlci0+c3RhdHVzKCkgPT0gSW1hZ2VGcmFtZTo6
RnJhbWVDb21wbGV0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oCmluZGV4IDQwZDc1N2ZhMDlhM2NmNmViZTZiZDA1MjE4MzY3YzQzZWViNzAy
OTYuLjExZmU3MDRlMzM0N2NkNjllMTY2MTMwMTE0NzNhMzhkMDk4M2FiODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtNDIsOSArNDIs
MTEgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRkRhdGEqIENGRGF0YVJlZjsKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VPcmllbnRhdGlvbjsKK2NsYXNzIEltYWdlU291cmNl
T2JzZXJ2ZXI7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBTaGFyZWRC
dWZmZXI7CitjbGFzcyBTeW5jaHJvbm91c0ltYWdlU291cmNlOwogCiAjaWYgVVNFKENHKQogdHlw
ZWRlZiBDR0ltYWdlU291cmNlUmVmIE5hdGl2ZUltYWdlU291cmNlUHRyOwpAQCAtNzMsNiArNzUs
OCBAQCBjb25zdCBpbnQgY0FuaW1hdGlvbk5vbmUgPSAtMjsKIAogY2xhc3MgSW1hZ2VTb3VyY2Ug
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlU291cmNlKTsKKyAgICBmcmllbmQgY2xh
c3MgQml0bWFwSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U7
CiBwdWJsaWM6CiAgICAgZW51bSBBbHBoYU9wdGlvbiB7CiAgICAgICAgIEFscGhhUHJlbXVsdGlw
bGllZCwKQEAgLTkxLDcgKzk1LDYgQEAgcHVibGljOgogICAgIH07CiAjZW5kaWYKIAotICAgIElt
YWdlU291cmNlKEFscGhhT3B0aW9uIGFscGhhT3B0aW9uID0gQWxwaGFQcmVtdWx0aXBsaWVkLCBH
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiA9IEdh
bW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAgICAgfkltYWdlU291cmNlKCk7CiAKICAgICAv
LyBUZWxscyB0aGUgSW1hZ2VTb3VyY2UgdGhhdCB0aGUgSW1hZ2Ugbm8gbG9uZ2VyIGNhcmVzIGFi
b3V0IGRlY29kZWQgZnJhbWUKQEAgLTEwOCw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgLy8gZGVj
b2RlZCBmcmFtZXMuCiAgICAgLy8KICAgICAvLyBDYWxsZXJzIHNob3VsZCBub3QgY2FsbCBjbGVh
cihmYWxzZSwgbikgYW5kIHN1YnNlcXVlbnRseSBjYWxsCi0gICAgLy8gY3JlYXRlRnJhbWVBdElu
ZGV4KG0pIHdpdGggbSA8IG4sIHVubGVzcyB0aGV5IGZpcnN0IGNhbGwgY2xlYXIodHJ1ZSkuCisg
ICAgLy8gcmVxdWVzdEZyYW1lQXRJbmRleChtKSB3aXRoIG0gPCBuLCB1bmxlc3MgdGhleSBmaXJz
dCBjYWxsIGNsZWFyKHRydWUpLgogICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHN0YXRlZnVsIElt
YWdlU291cmNlcy9kZWNvZGVycyB3aWxsIHdvcmsgcHJvcGVybHkuCiAgICAgLy8KICAgICAvLyBU
aGUgfGRhdGF8IGFuZCB8YWxsRGF0YVJlY2VpdmVkfCBwYXJhbWV0ZXJzIHNob3VsZCBiZSBzdXBw
bGllZCBieSBjYWxsZXJzCkBAIC0xMzcsMTMgKzE0MCwxNyBAQCBwdWJsaWM6CiAKICAgICBzaXpl
X3QgZnJhbWVDb3VudCgpIGNvbnN0OwogCi0gICAgLy8gQ2FsbGVycyBzaG91bGQgbm90IGNhbGwg
dGhpcyBhZnRlciBjYWxsaW5nIGNsZWFyKCkgd2l0aCBhIGhpZ2hlciBpbmRleDsKKyAgICAvLyBO
T1RFOiBDYWxsZXJzIHNob3VsZCBub3QgY2FsbCB0aGlzIGFmdGVyIGNhbGxpbmcgY2xlYXIoKSB3
aXRoIGEgaGlnaGVyIGluZGV4OwogICAgIC8vIHNlZSBjb21tZW50cyBvbiBjbGVhcigpIGFib3Zl
LgotICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QpOworICAgIHZv
aWQgcmVxdWVzdEZyYW1lQXRJbmRleChzaXplX3QsIGJvb2wgdXNlQXN5bmNocm9ub3VzRGVjb2Rp
bmdJZlBvc3NpYmxlID0gZmFsc2UpOwogCi0gICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5kZXgo
c2l6ZV90KTsKLSAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCk7IC8vIFdoZXRo
ZXIgb3Igbm90IHRoZSBmcmFtZSBhY3R1YWxseSB1c2VkIGFueSBhbHBoYS4KLSAgICBib29sIGZy
YW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90KTsgLy8gV2hldGhlciBvciBub3QgdGhlIGZyYW1l
IGlzIGNvbXBsZXRlbHkgZGVjb2RlZC4KKyAgICBlbnVtIFJlcXVlc3REZWNvZGluZ01vZGUgewor
ICAgICAgICBSZXF1ZXN0RGVjb2RpbmcsCisgICAgICAgIE5vblJlcXVlc3REZWNvZGluZworICAg
IH07CisgICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90LCBSZXF1ZXN0RGVjb2Rp
bmdNb2RlID0gUmVxdWVzdERlY29kaW5nKTsKKyAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4
KHNpemVfdCwgUmVxdWVzdERlY29kaW5nTW9kZSA9IFJlcXVlc3REZWNvZGluZyk7IC8vIFdoZXRo
ZXIgb3Igbm90IHRoZSBmcmFtZSBhY3R1YWxseSB1c2VkIGFueSBhbHBoYS4KKyAgICBib29sIGZy
YW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90LCBSZXF1ZXN0RGVjb2RpbmdNb2RlID0gUmVxdWVz
dERlY29kaW5nKTsgLy8gV2hldGhlciBvciBub3QgdGhlIGZyYW1lIGlzIGNvbXBsZXRlbHkgZGVj
b2RlZC4KICAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uQXRJbmRleChzaXplX3QpIGNv
bnN0OyAvLyBFWElGIGltYWdlIG9yaWVudGF0aW9uCiAKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RF
Ul9ET1dOX1NBTVBMSU5HKQpAQCAtMTUyLDcgKzE1OSwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
cHJpdmF0ZToKKyAgICBJbWFnZVNvdXJjZShJbWFnZVNvdXJjZU9ic2VydmVyKiwgQWxwaGFPcHRp
b24gPSBBbHBoYVByZW11bHRpcGxpZWQsIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uID0gR2Ft
bWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKKyAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFt
ZUF0SW5kZXgoc2l6ZV90KTsKKwogICAgIE5hdGl2ZUltYWdlU291cmNlUHRyIG1fZGVjb2RlcjsK
KyAgICBJbWFnZVNvdXJjZU9ic2VydmVyKiBtX29ic2VydmVyOwogICAgIEFscGhhT3B0aW9uIG1f
YWxwaGFPcHRpb247CiAgICAgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gbV9nYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbjsKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2VPYnNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1MTU4MjYxZTBmYTJhNDExMDc0ZjM0MzI0YWVlNjU5
ZDdlNmJmZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgSW1hZ2VTb3VyY2VPYnNlcnZlcl9oCisjZGVmaW5lIEltYWdlU291cmNlT2Jz
ZXJ2ZXJfaAorCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisvLyBJbnRlcmZhY2UgZm9yIG5vdGlmaWNhdGlvbiBhYm91dCBjaGFuZ2VzIHRvIGFu
IEltYWdlU291cmNlLCBpbmNsdWRpbmcgZGVjb2RpbmcuCitjbGFzcyBJbWFnZVNvdXJjZU9ic2Vy
dmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVjb2RlRnJhbWVBdEluZGV4KHNp
emVfdCwgTmF0aXZlSW1hZ2VQdHIpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfklt
YWdlU291cmNlT2JzZXJ2ZXIoKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ4Zjk5Zjk1Yzk4OTBmYTg2MzFiYjU1ZGU3ZDc5ZTdjMDVhODA1
ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
eW5jaHJvbm91c0ltYWdlU291cmNlLmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscC50b2tlckBjb2xsYWJvcmEuY28u
dWs+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYworICogQ29w
eXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIgorCisjaW5jbHVkZSAiSW1h
Z2VTb3VyY2VPYnNlcnZlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbWFn
ZVNvdXJjZU9ic2VydmVySW1wbCA6IHB1YmxpYyBJbWFnZVNvdXJjZU9ic2VydmVyIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZVNvdXJjZU9ic2VydmVySW1wbCk7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgSW1hZ2VTb3VyY2VPYnNlcnZlckltcGwo
KQorICAgICAgICA6IG1fbmF0aXZlSW1hZ2VQdHIoKQorICAgIHsgfQorCisgICAgdmlydHVhbCB+
SW1hZ2VTb3VyY2VPYnNlcnZlckltcGwoKSBPVkVSUklERSB7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCBkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6ZV90LCBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFn
ZVB0cikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fbmF0aXZlSW1hZ2VQdHIgPSBuYXRpdmVJ
bWFnZVB0cjsKKyAgICB9CisKKyAgICBOYXRpdmVJbWFnZVB0ciBtX25hdGl2ZUltYWdlUHRyOwor
fTsKKworU3luY2hyb25vdXNJbWFnZVNvdXJjZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZShJbWFn
ZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKKyAgICA6IG1fb2Jz
ZXJ2ZXIoYWRvcHRQdHIobmV3IEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsKSkKKyAgICAsIG1faW1h
Z2VTb3VyY2UobV9vYnNlcnZlci5nZXQoKSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9m
aWxlT3B0aW9uKQoreworfQorCitTeW5jaHJvbm91c0ltYWdlU291cmNlOjp+U3luY2hyb25vdXNJ
bWFnZVNvdXJjZSgpCit7CisgICAgbV9pbWFnZVNvdXJjZS5jbGVhcih0cnVlKTsKK30KKwordm9p
ZCBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpzZXREYXRhKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9v
bCBhbGxEYXRhUmVjZWl2ZWQpCit7CisgICAgbV9pbWFnZVNvdXJjZS5zZXREYXRhKGRhdGEsIGFs
bERhdGFSZWNlaXZlZCk7Cit9CisKK1N0cmluZyBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpmaWxl
bmFtZUV4dGVuc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW1hZ2VTb3VyY2UuZmlsZW5h
bWVFeHRlbnNpb24oKTsKK30KKworYm9vbCBTeW5jaHJvbm91c0ltYWdlU291cmNlOjppc1NpemVB
dmFpbGFibGUoKQoreworICAgIHJldHVybiBtX2ltYWdlU291cmNlLmlzU2l6ZUF2YWlsYWJsZSgp
OworfQorCitJbnRTaXplIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OnNpemUoUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9pbWFnZVNvdXJjZS5zaXplKHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbik7Cit9CisK
K0ludFNpemUgU3luY2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVTaXplQXRJbmRleChzaXplX3Qg
aW5kZXgsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRp
b24pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW1hZ2VTb3VyY2UuZnJhbWVTaXplQXRJbmRleChp
bmRleCwgc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uKTsKK30KKworc2l6ZV90IFN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2U6OmZyYW1lQ291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdlU291
cmNlLmZyYW1lQ291bnQoKTsKK30KKworTmF0aXZlSW1hZ2VQdHIgU3luY2hyb25vdXNJbWFnZVNv
dXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCkKK3sKKyAgICBtX2ltYWdlU291
cmNlLnJlcXVlc3RGcmFtZUF0SW5kZXgoaW5kZXgpOworICAgIHJldHVybiBtX29ic2VydmVyLT5t
X25hdGl2ZUltYWdlUHRyOworfQorCitib29sIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkKK3sKKyAgICByZXR1cm4gbV9pbWFnZVNvdXJj
ZS5mcmFtZUhhc0FscGhhQXRJbmRleChpbmRleCk7Cit9CisKK2Jvb2wgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgpCit7CisgICAgcmV0
dXJuIG1faW1hZ2VTb3VyY2UuZnJhbWVJc0NvbXBsZXRlQXRJbmRleChpbmRleCk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3Vz
SW1hZ2VTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9u
b3VzSW1hZ2VTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODIyMTYzYjkzYzI0ODRjYjEzMTljN2FiNjQw
NmM2M2Q5ZDQ3MWI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2Jp
bGUsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgU3luY2hyb25vdXNJbWFnZVNvdXJjZV9oCisjZGVmaW5lIFN5bmNocm9ub3VzSW1h
Z2VTb3VyY2VfaAorCisjaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKKyNpbmNsdWRlICJJbnRTaXpl
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgSW1hZ2VTb3VyY2VPYnNlcnZlckltcGw7CisKK2NsYXNzIFN5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2UgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UpOwor
cHVibGljOgorICAgIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2U6OkFscGhhT3B0
aW9uID0gSW1hZ2VTb3VyY2U6OkFscGhhUHJlbXVsdGlwbGllZCwgSW1hZ2VTb3VyY2U6OkdhbW1h
QW5kQ29sb3JQcm9maWxlT3B0aW9uID0gSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxl
QXBwbGllZCk7CisgICAgflN5bmNocm9ub3VzSW1hZ2VTb3VyY2UoKTsKKworICAgIHZvaWQgc2V0
RGF0YShTaGFyZWRCdWZmZXIqIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKKyAgICBTdHJp
bmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdDsKKworICAgIGJvb2wgaXNTaXplQXZhaWxhYmxl
KCk7CisgICAgSW50U2l6ZSBzaXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90
UmVzcGVjdEltYWdlT3JpZW50YXRpb24pIGNvbnN0OworICAgIEludFNpemUgZnJhbWVTaXplQXRJ
bmRleChzaXplX3QsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdElt
YWdlT3JpZW50YXRpb24pIGNvbnN0OworCisgICAgc2l6ZV90IGZyYW1lQ291bnQoKSBjb25zdDsK
KworICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QpOworCisgICAg
Ym9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpOworICAgIGJvb2wgZnJhbWVJc0NvbXBs
ZXRlQXRJbmRleChzaXplX3QpOworCitwcml2YXRlOgorICAgIE93blB0cjxJbWFnZVNvdXJjZU9i
c2VydmVySW1wbD4gbV9vYnNlcnZlcjsKKyAgICBJbWFnZVNvdXJjZSBtX2ltYWdlU291cmNlOwor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKaW5kZXggNDU4NTBhODAzYWE0
ZDAwZmE2NzEwNDI4N2FiN2Q1Mzk5ODNjNjhjNi4uYzExNWE5ZTU3Y2M2YjBiM2I2ZTcxYWU3YWRi
ZGZhOGMyZWM2NzczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKQEAgLTQyLDYgKzQyLDcgQEAg
UGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gQml0bWFwSW1hZ2U6OmNyZWF0ZShjYWlyb19zdXJmYWNl
X3QqIHN1cmZhY2UpCiAKIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShOYXRpdmVJbWFnZUNhaXJv
KiBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNl
cnZlcikKKyAgICAsIG1fc291cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgwKQogICAg
ICwgbV9mcmFtZXMoMCkKICAgICAsIG1fZnJhbWVUaW1lcigwKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHQzRENhaXJvLmNwcAppbmRleCA5ODIyZDRlMjRiY2I5OGQwYTA1YTQxMGU0YWI2MGE1OTI1YjAw
MzgzLi5jMjYzMmNkOGQ1YTRkYjE3MTBjYzk2ZjgyYjEyZDdlNzgzZGNjNTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQz
RENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHQzRENhaXJvLmNwcApAQCAtMzMsMTIgKzMzLDEyIEBACiAjaW5jbHVkZSAi
RXh0ZW5zaW9uczNET3BlbkdMLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUNvbnRleHRDYWlyby5oIgogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5j
bHVkZSAiU2hhZGVyTGFuZy5oIgorI2luY2x1ZGUgIlN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCIK
ICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPHd0Zi9Ob3RGb3VuZC5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KQEAgLTE1OCw3ICsxNTgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNE
OjpnZXRJbWFnZURhdGEoSW1hZ2UqIGltYWdlLCB1bnNpZ25lZCBpbnQgZm9ybWF0LCB1bnNpZ25l
ZAogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBXZSBuZWVk
IHRoaXMgdG8gc3RheSBpbiBzY29wZSBiZWNhdXNlIHRoZSBuYXRpdmUgaW1hZ2UgaXMganVzdCBh
IHNoYWxsb3cgY29weSBvZiB0aGUgZGF0YS4KLSAgICBJbWFnZVNvdXJjZSBkZWNvZGVyKHByZW11
bHRpcGx5QWxwaGEgPyBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkIDogSW1hZ2VTb3Vy
Y2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwKKyAgICBTeW5jaHJvbm91c0ltYWdlU291cmNlIGRl
Y29kZXIocHJlbXVsdGlwbHlBbHBoYSA/IEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQg
OiBJbWFnZVNvdXJjZTo6QWxwaGFOb3RQcmVtdWx0aXBsaWVkLAogICAgICAgICAgICAgICAgICAg
ICAgICAgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBJbWFnZVNvdXJjZTo6R2FtbWFBbmRD
b2xvclByb2ZpbGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlQXBw
bGllZCk7CiAgICAgQWxwaGFPcCBhbHBoYU9wID0gQWxwaGFEb05vdGhpbmc7CiAgICAgUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4gaW1hZ2VTdXJmYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAppbmRl
eCA1MGRlNTFmNDc5Mjc3OGU2YjM1OWJkZjY5YjNmYzk0ZGRiOThhODYyLi42MDBhNmRmZWJkZTA2
NzIzOWM1YzYwOWVmZGRiNGRhNmMxYTJhMGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIlN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2UuaCIKIAogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQu
aD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0Lmg+CkBAIC0xMDIsNyArMTAzLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwKICAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gZGVjb2RlZEltYWdlOwogICAgIGJvb2wgaGFzQWxwaGEg
PSBpbWFnZS0+aXNCaXRtYXBJbWFnZSgpID8gc3RhdGljX2Nhc3Q8Qml0bWFwSW1hZ2UqPihpbWFn
ZSktPmZyYW1lSGFzQWxwaGFBdEluZGV4KDApIDogdHJ1ZTsKICAgICBpZiAoKGlnbm9yZUdhbW1h
QW5kQ29sb3JQcm9maWxlIHx8IChoYXNBbHBoYSAmJiAhcHJlbXVsdGlwbHlBbHBoYSkpICYmIGlt
YWdlLT5kYXRhKCkpIHsKLSAgICAgICAgSW1hZ2VTb3VyY2UgZGVjb2RlcihJbWFnZVNvdXJjZTo6
QWxwaGFOb3RQcmVtdWx0aXBsaWVkLAorICAgICAgICBTeW5jaHJvbm91c0ltYWdlU291cmNlIGRl
Y29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSA/IEltYWdlU291cmNlOjpH
YW1tYUFuZENvbG9yUHJvZmlsZUlnbm9yZWQgOiBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclBy
b2ZpbGVBcHBsaWVkKTsKICAgICAgICAgZGVjb2Rlci5zZXREYXRhKGltYWdlLT5kYXRhKCksIHRy
dWUpOwogICAgICAgICBpZiAoIWRlY29kZXIuZnJhbWVDb3VudCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAppbmRleCBmNTMyMDM3ZDU2MTQ0
ODRhMDQ5N2Q3Zjk5N2U4NWMyM2NmOGMyYmYyLi5jNDMwYzRkMGI5YjYyNzRmNDdjODI0YTNlNTcx
MDQxZGEwZGRhMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUNHLmNwcApAQCAtNzAsNiArNzAsNyBAQCBib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9v
bCBjbGVhck1ldGFkYXRhKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoQ0dJbWFnZVJlZiBj
Z0ltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQor
ICAgICwgbV9zb3VyY2UodGhpcykKICAgICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2Zy
YW1lcygwKQogICAgICwgbV9mcmFtZVRpbWVyKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCmluZGV4IDdjZjAyOTY4ZWRj
NmQ2YTgwZjVmMTE5ZjdlMmM1YWJkMzAzZDRjN2UuLmM5Zjk0YWRlOTIxZjUxZjhlYzBjN2U2MTJk
NGEzNDg2YWZmOGM3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
SW1hZ2VTb3VyY2VDRy5oIgogCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1
ZGUgIkltYWdlU291cmNlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCkBAIC03MCw4ICs3
MSw5IEBAIHZvaWQgc2hhcmVkQnVmZmVyUmVsZWFzZSh2b2lkKiBpbmZvKQogfQogI2VuZGlmCiAK
LUltYWdlU291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFP
cHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbikKK0ltYWdlU291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZU9i
c2VydmVyKiBvYnNlcnZlciwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJ
bWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pCiAgICAgOiBtX2RlY29kZXIoMCkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIp
CiAgICAgLy8gRklYTUU6IG1fcHJlbXVsdGlwbHlBbHBoYSBpcyBpZ25vcmVkIGluIGNnIGF0IHRo
ZSBtb21lbnQuCiAgICAgLCBtX2FscGhhT3B0aW9uKGFscGhhT3B0aW9uKQogICAgICwgbV9nYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbihnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKQEAgLTI5
OSw2ICszMDEsMTIgQEAgc2l6ZV90IEltYWdlU291cmNlOjpmcmFtZUNvdW50KCkgY29uc3QKICAg
ICByZXR1cm4gbV9kZWNvZGVyID8gQ0dJbWFnZVNvdXJjZUdldENvdW50KG1fZGVjb2RlcikgOiAw
OwogfQogCit2b2lkIEltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4KHNpemVfdCBpbmRl
eCwgYm9vbCkKK3sKKyAgICBDR0ltYWdlUmVmIGltYWdlUmVmID0gY3JlYXRlRnJhbWVBdEluZGV4
KGluZGV4KTsKKyAgICBtX29ic2VydmVyLT5kaWREZWNvZGVGcmFtZUF0SW5kZXgoaW5kZXgsIGlt
YWdlUmVmKTsKK30KKwogQ0dJbWFnZVJlZiBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4
KHNpemVfdCBpbmRleCkKIHsKICAgICBpZiAoIWluaXRpYWxpemVkKCkpCkBAIC0zMTksNyArMzI3
LDcgQEAgQ0dJbWFnZVJlZiBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCBp
bmRleCkKICAgICByZXR1cm4gbWFza2VkSW1hZ2UubGVha1JlZigpOwogfQogCi1ib29sIEltYWdl
U291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCBpbmRleCkKK2Jvb2wgSW1hZ2VT
b3VyY2U6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXF1ZXN0RGVjb2Rp
bmdNb2RlKQogewogICAgIEFTU0VSVChmcmFtZUNvdW50KCkpOwogCkBAIC0zMzksNyArMzQ3LDcg
QEAgYm9vbCBJbWFnZVNvdXJjZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgp
CiAgICAgcmV0dXJuIGZyYW1lU3RhdHVzID09IGtDR0ltYWdlU3RhdHVzQ29tcGxldGU7CiB9CiAK
LWZsb2F0IEltYWdlU291cmNlOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpCitm
bG9hdCBJbWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXF1
ZXN0RGVjb2RpbmdNb2RlKQogewogICAgIGlmICghaW5pdGlhbGl6ZWQoKSkKICAgICAgICAgcmV0
dXJuIDA7CkBAIC0zNjgsNyArMzc2LDcgQEAgZmxvYXQgSW1hZ2VTb3VyY2U6OmZyYW1lRHVyYXRp
b25BdEluZGV4KHNpemVfdCBpbmRleCkKICAgICByZXR1cm4gZHVyYXRpb247CiB9CiAKLWJvb2wg
SW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCkKK2Jvb2wgSW1hZ2VTb3Vy
Y2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCwgUmVxdWVzdERlY29kaW5nTW9kZSkKIHsK
ICAgICBpZiAoIW1fZGVjb2RlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAK
aW5kZXggOTUxMDg4MmNjODU0NDA2NTRhOWRlMGJhMThkZDdmNGExOWYyMGYwOS4uZWI4MDY2YzQ3
NDAwM2VjYTgxZjBlMTcyZjdhZmRhNDlkNjA3NGZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCkBAIC01Miw2
ICs1Miw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAKIEJp
dG1hcEltYWdlOjpCaXRtYXBJbWFnZShUaWxlZEltYWdlT3BlblZHKiB0aWxlZEltYWdlLCBJbWFn
ZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3Vy
Y2UodGhpcykKICAgICAsIG1fc2l6ZSh0aWxlZEltYWdlLT5zaXplKCkpCiAgICAgLCBtX2N1cnJl
bnRGcmFtZSgwKQogICAgICwgbV9mcmFtZXMoMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcAppbmRleCBmMDM5ZTQzMDA5
NzIxNjlhZGM0ZDhiZTIwYmRhNjZiOGYyZDNlNWNlLi5kOTc2NWFmZTA0ZmEzODA5NGE0ZjdmNzli
ODY0NTNiNzE2MzA3ZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgU3RyaW5n
IEltYWdlRGVjb2RlclF0OjpmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIFN0
cmluZyhtX2Zvcm1hdC5jb25zdERhdGEoKSwgbV9mb3JtYXQubGVuZ3RoKCkpOwogfQogCi1JbWFn
ZUZyYW1lKiBJbWFnZURlY29kZXJRdDo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkK
K2Jvb2wgSW1hZ2VEZWNvZGVyUXQ6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAg
IC8vIEluIGNhc2UgdGhlIEltYWdlRGVjb2RlclF0IGdvdCByZWNyZWF0ZWQgd2UgZG9uJ3Qga25v
dwogICAgIC8vIHlldCBob3cgbWFueSBpbWFnZXMgd2UgYXJlIGdvaW5nIHRvIGhhdmUgYW5kIG5l
ZWQgdG8KQEAgLTEzMiwxMiArMTMyLDEyIEBAIEltYWdlRnJhbWUqIEltYWdlRGVjb2RlclF0Ojpm
cmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIH0KIAogICAgIGlmIChpbmRleCA+
PSBjb3VudCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XTsKICAgICBpZiAo
ZnJhbWUuc3RhdHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSAmJiBtX3JlYWRlcikK
ICAgICAgICAgaW50ZXJuYWxSZWFkSW1hZ2UoaW5kZXgpOwotICAgIHJldHVybiAmZnJhbWU7Cisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgSW1hZ2VEZWNvZGVyUXQ6OmNsZWFyRnJhbWVCdWZm
ZXJDYWNoZShzaXplX3QgLyppbmRleCovKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmgKaW5kZXggM2U0MjFjMzM2Yzc3ZGEwMTE4
YzlkMWRjOTJhYzU3M2U5NDI5MjViZi4uMTczMTAzOGQwY2QyYmYzMTU1YjQ1OGQwYjM5MGU1Mzgy
YjZiNjY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
SW1hZ2VEZWNvZGVyUXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZURlY29kZXJRdC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNTaXplQXZhaWxhYmxlKCk7CiAgICAgdmlydHVhbCBzaXplX3QgZnJhbWVDb3VudCgp
OwogICAgIHZpcnR1YWwgaW50IHJlcGV0aXRpb25Db3VudCgpIGNvbnN0OwotICAgIHZpcnR1YWwg
SW1hZ2VGcmFtZSogZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCk7CisgICAgdmlydHVh
bCBib29sIGRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBPVkVSUklERTsKIAogICAgIHZpcnR1
YWwgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAKaW5kZXggNjhhNTQ5YjkwYjI1OGU2
Yjg5ZDU0YjY5OWU0MGQ1MzMzYmY4YzU2ZS4uN2QwNDdiNDliMTQ4ZDYyYjUyZjdjYmRjMGU3MzMy
YjMzOWY5YmVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
SW1hZ2VRdC5jcHAKQEAgLTIwMSw2ICsyMDEsNyBAQCB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0CiAK
IEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShRSW1hZ2UqIGltYWdlLCBJbWFnZU9ic2VydmVyKiBv
YnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3VyY2UodGhpcykKICAg
ICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2ZyYW1lcygwKQogICAgICwgbV9mcmFtZVRp
bWVyKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKaW5kZXggMTdhZDgzZDhmODM3NWZl
MGM5MzE1OGM2NDViMGY1MjBlMTUxNzJlOC4uNDcyN2YxNWU3Mzg1NjgyOTE3NWNkNzEzOWQwOTY2
MzRjZWYyYmZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcApAQCAtMzIsOSArMzIs
OSBAQAogCiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2lu
Y2x1ZGUgIkltYWdlU291cmNlLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5j
bHVkZSAiU2tDb2xvclByaXYuaCIKKyNpbmNsdWRlICJTeW5jaHJvbm91c0ltYWdlU291cmNlLmgi
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
QEAgLTU2LDggKzU2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKElt
YWdlKiBpbWFnZSwKICAgICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBBbHBoYURvTm90aGluZzsK
ICAgICBib29sIGhhc0FscGhhID0gc2tpYUltYWdlID8gIXNraWFJbWFnZS0+Yml0bWFwKCkuaXNP
cGFxdWUoKSA6IHRydWU7CiAgICAgaWYgKCghc2tpYUltYWdlIHx8IGlnbm9yZUdhbW1hQW5kQ29s
b3JQcm9maWxlIHx8IChoYXNBbHBoYSAmJiAhcHJlbXVsdGlwbHlBbHBoYSkpICYmIGltYWdlLT5k
YXRhKCkpIHsKLSAgICAgICAgSW1hZ2VTb3VyY2UgZGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFO
b3RQcmVtdWx0aXBsaWVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZUdhbW1h
QW5kQ29sb3JQcm9maWxlID8gSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlSWdub3Jl
ZCA6IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpOworICAgICAgICBT
eW5jaHJvbm91c0ltYWdlU291cmNlIGRlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVs
dGlwbGllZCwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBJbWFnZVNvdXJjZTo6R2FtbWFB
bmRDb2xvclByb2ZpbGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxl
QXBwbGllZCk7CiAgICAgICAgIC8vIEF0dGVtcHQgdG8gZ2V0IHJhdyB1bnByZW11bHRpcGxpZWQg
aW1hZ2UgZGF0YSAKICAgICAgICAgZGVjb2Rlci5zZXREYXRhKGltYWdlLT5kYXRhKCksIHRydWUp
OwogICAgICAgICBpZiAoIWRlY29kZXIuZnJhbWVDb3VudCgpIHx8ICFkZWNvZGVyLmZyYW1lSXND
b21wbGV0ZUF0SW5kZXgoMCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93eC9JbWFnZVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3d4L0ltYWdlV3guY3BwCmluZGV4IGQ3ZDBhMGYwZGRhNzdlMzQzODYwNDU3ZTRlYTI4YzI4MDk5
NzcxY2YuLjgzNTY0MThlZjg4NGI0NWJmZDhhYWVlOGZkMzZjNDMwNjI4NDFkZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCkBAIC04Miw2
ICs4Miw3IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShj
b25zdCBjaGFyICpuYW1lKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoY29uc3Qgd3hCaXRt
YXAmIGJpdG1hcCkKICAgICA6IEltYWdlKDApCisgICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwg
bV9jdXJyZW50RnJhbWUoMCkKICAgICAsIG1fZnJhbWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIo
MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0lt
YWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9J
bWFnZURlY29kZXIuY3BwCmluZGV4IDk5NTExMDgyN2U1NWQ2OWE5MTA5NjdmNGFjMTM2N2IxOGEy
MjE3YzIuLjQ4YTQ2N2ZlOTJiMDI5MDVlYmQ2YTQ0NDJkMWJlN2U4NGRkYzM2MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNv
ZGVyLmNwcApAQCAtMjc3LDEzICsyNzcsMTEgQEAgdGVtcGxhdGUgPE1hdGNoVHlwZSB0eXBlPiBp
bnQgZ2V0U2NhbGVkVmFsdWUoY29uc3QgVmVjdG9yPGludD4mIHNjYWxlZFZhbHVlcywgaW4KIAog
fQogCi1ib29sIEltYWdlRGVjb2Rlcjo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4
KSBjb25zdAorSW1hZ2VGcmFtZSogSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6
ZV90IGluZGV4KQogewogICAgIGlmIChtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpIDw9IGluZGV4
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4
XS5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQotICAgICAgICByZXR1cm4g
bV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XS5oYXNBbHBoYSgpOwotICAgIHJldHVybiB0cnVlOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gJm1fZnJhbWVCdWZmZXJDYWNoZVtpbmRleF07
CiB9CiAKIHZvaWQgSW1hZ2VEZWNvZGVyOjpwcmVwYXJlU2NhbGVEYXRhSWZOZWNlc3NhcnkoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VE
ZWNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURl
Y29kZXIuaAppbmRleCBmMmFhZWNjNDcwNzYwMGZjZDBmNDczYmY4OGQyNjdkODgxNjE3ZjI2Li5i
YTA4ZDhkYjc1NjJiNGVmMTk1Njg3OWVhMjExY2QzM2QzYjVjZDVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaApAQCAt
MjcyLDEyICsyNzIsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwg
aW50IHJlcGV0aXRpb25Db3VudCgpIGNvbnN0IHsgcmV0dXJuIGNBbmltYXRpb25Ob25lOyB9CiAK
LSAgICAgICAgLy8gRGVjb2RlcyBhcyBtdWNoIG9mIHRoZSByZXF1ZXN0ZWQgZnJhbWUgYXMgcG9z
c2libGUsIGFuZCByZXR1cm5zIGFuCi0gICAgICAgIC8vIEltYWdlRGVjb2Rlci1vd25lZCBwb2lu
dGVyLgotICAgICAgICB2aXJ0dWFsIEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChzaXpl
X3QpID0gMDsKKyAgICAgICAgLy8gRGVjb2RlcyBhcyBtdWNoIG9mIHRoZSByZXF1ZXN0ZWQgZnJh
bWUgYXMgcG9zc2libGUuCisgICAgICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVBdEluZGV4KHNpemVf
dCkgPSAwOwogCi0gICAgICAgIC8vIE1ha2UgdGhlIGJlc3QgZWZmb3J0IGd1ZXNzIHRvIGNoZWNr
IGlmIHRoZSByZXF1ZXN0ZWQgZnJhbWUgaGFzIGFscGhhIGNoYW5uZWwuCi0gICAgICAgIHZpcnR1
YWwgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0OworICAgICAgICAvLyBS
ZXR1cm5zIGFuIEltYWdlRGVjb2Rlci1vd25lZCBwb2ludGVyLgorICAgICAgICBJbWFnZUZyYW1l
KiBmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90KTsKIAogICAgICAgICB2b2lkIHNldElnbm9yZUdh
bW1hQW5kQ29sb3JQcm9maWxlKGJvb2wgZmxhZykgeyBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9m
aWxlID0gZmxhZzsgfQogICAgICAgICBib29sIGlnbm9yZXNHYW1tYUFuZENvbG9yUHJvZmlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JsYWNrYmVycnkvSlBF
R0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9ibGFja2JlcnJ5L0pQRUdJbWFnZURlY29kZXIuY3BwCmluZGV4IDZhNjVlNjE3ZDE5ZTY3YmZh
MjE4MDUzODdjMTE5NWRhNDgyMWRiNmQuLmZjYjIwOTFjMzRjZjYyM2EzNTE2MDc1NWUzYmRjN2I1
M2EyMDUxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL2JsYWNrYmVycnkvSlBFR0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYmxhY2tiZXJyeS9KUEVHSW1hZ2VEZWNvZGVyLmNwcApA
QCAtMTk1LDEzICsxOTUsMTMgQEAgYm9vbCBKUEVHSW1hZ2VEZWNvZGVyOjppc1NpemVBdmFpbGFi
bGUoKQogICAgIHJldHVybiBJbWFnZURlY29kZXI6OmlzU2l6ZUF2YWlsYWJsZSgpOwogfQogCi1J
bWFnZUZyYW1lKiBKUEVHSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGlu
ZGV4KQorYm9vbCBKUEVHSW1hZ2VEZWNvZGVyOjpkZWNvZGVBdEluZGV4KHNpemVfdCBpbmRleCkK
IHsKICAgICBpZiAoIWlzQWxsRGF0YVJlY2VpdmVkKCkpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoaW5kZXgpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLmlzRW1w
dHkoKSkKICAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlLnJlc2l6ZSgxKTsKQEAgLTIxMSwxNiAr
MjExLDE2IEBAIEltYWdlRnJhbWUqIEpQRUdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRl
eChzaXplX3QgaW5kZXgpCiAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIGl0J3MgYWxyZWFkeSBkZWNv
ZGVkLgogICAgIC8vIEZJWE1FOiBDb3VsZCBzaXplIGNoYW5nZSBiZXR3ZWVuIGNhbGxzIHRvIHRo
aXMgbWV0aG9kPwogICAgIGlmIChmcmFtZS5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpGcmFtZUNv
bXBsZXRlKQotICAgICAgICByZXR1cm4gJmZyYW1lOworICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIGlmIChmcmFtZS5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpGcmFtZUVtcHR5KSB7CiAgICAg
ICAgIGlmICghc2l6ZSgpLndpZHRoKCkgfHwgIXNpemUoKS5oZWlnaHQoKSkgewogICAgICAgICAg
ICAgaWYgKCFpc1NpemVBdmFpbGFibGUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFmcmFt
ZS5zZXRTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKSB7CiAgICAgICAgICAg
ICBzZXRGYWlsZWQoKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGZyYW1lLnNldFN0YXR1cyhJbWFnZUZyYW1lOjpG
cmFtZVBhcnRpYWwpOwogICAgICAgICAvLyBGb3IgSlBFR3MsIHRoZSBmcmFtZSBhbHdheXMgZmls
bHMgdGhlIGVudGlyZSBpbWFnZS4KQEAgLTIyOSwxMSArMjI5LDExIEBAIEltYWdlRnJhbWUqIEpQ
RUdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCiAKICAgICBp
ZiAoIW1fcmVhZGVyIHx8IG1fcmVhZGVyLT5kZWNvZGUoc2l6ZSgpLndpZHRoKCksIHNpemUoKS5o
ZWlnaHQoKSwgJmZyYW1lKSA9PSAtMSkgewogICAgICAgICBzZXRGYWlsZWQoKTsKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBmcmFtZS5zZXRT
dGF0dXMoSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSk7Ci0gICAgcmV0dXJuICZmcmFtZTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYmxhY2tiZXJyeS9KUEVHSW1h
Z2VEZWNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibGFj
a2JlcnJ5L0pQRUdJbWFnZURlY29kZXIuaAppbmRleCA2NTQ0ZGY0MjE0MGNhYzUxYmIyYWU2MTg2
ODJlMGVkNTI2NjBjMmI3Li5kNDgzYTQzMTgyMzk1MmZkNGI5ODYzZjFmNjdhZTgyMmVhNDhkYzQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibGFj
a2JlcnJ5L0pQRUdJbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9ibGFja2JlcnJ5L0pQRUdJbWFnZURlY29kZXIuaApAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBKUEVHSW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdlRGVjb2RlciB7CiAgICAg
ICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QgeyByZXR1cm4gImpw
ZyI7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzU2l6ZUF2YWlsYWJsZSgpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICAg
ICAgdmlydHVhbCBJbWFnZUZyYW1lKiBmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90KTsKKyAgICAg
ICAgdmlydHVhbCBib29sIGRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBPVkVSUklERTsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RGF0YShTaGFyZWRCdWZmZXIqLCBib29sIGFsbERhdGFS
ZWNlaXZlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2JtcC9CTVBJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKaW5kZXggNDNlZjUxOGRlODc4
OTZlNDM3OGEwYjc0OTVkZjI2OTlhYTdiYjQ4OC4uNDE2ZGJmYTFjZjk1ZWY1MjkwOTFmYTM4MTg3
Y2YxZmQzYjg3YmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKQEAgLTcwLDEwICs3
MCwxMCBAQCBib29sIEJNUEltYWdlRGVjb2Rlcjo6aXNTaXplQXZhaWxhYmxlKCkKICAgICByZXR1
cm4gSW1hZ2VEZWNvZGVyOjppc1NpemVBdmFpbGFibGUoKTsKIH0KIAotSW1hZ2VGcmFtZSogQk1Q
SW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQorYm9vbCBCTVBJ
bWFnZURlY29kZXI6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAgIGlmIChpbmRl
eCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICht
X2ZyYW1lQnVmZmVyQ2FjaGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNo
ZS5yZXNpemUoMSk7CkBAIC04Myw3ICs4Myw3IEBAIEltYWdlRnJhbWUqIEJNUEltYWdlRGVjb2Rl
cjo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICBJbWFnZUZyYW1lKiBidWZm
ZXIgPSAmbV9mcmFtZUJ1ZmZlckNhY2hlLmZpcnN0KCk7CiAgICAgaWYgKGJ1ZmZlci0+c3RhdHVz
KCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkKICAgICAgICAgZGVjb2RlKGZhbHNlKTsK
LSAgICByZXR1cm4gYnVmZmVyOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIEJNUEltYWdl
RGVjb2Rlcjo6c2V0RmFpbGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL2JtcC9CTVBJbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcC9CTVBJbWFnZURlY29kZXIuaAppbmRleCBmNWI5ZDVl
MjdhZTAxMDMzNzA5N2QyZjU3NTRiN2EzZmUyY2MwNGQwLi4zYjQyNTU1ZDc2YTA1ZmM3Zjk2NTUx
Y2ViYmVlZmJhNjI1MjA3ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5oCkBAIC00NSw3ICs0
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBTdHJpbmcgZmlsZW5h
bWVFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiAiYm1wIjsgfQogICAgICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGF0YShTaGFyZWRCdWZmZXIqLCBib29sIGFsbERhdGFSZWNlaXZlZCk7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc1NpemVBdmFpbGFibGUoKTsKLSAgICAgICAgdmlydHVhbCBJbWFnZUZy
YW1lKiBmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KTsKKyAgICAgICAgdmlydHVhbCBi
b29sIGRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBPVkVSUklERTsKICAgICAgICAgLy8gQ0FV
VElPTjogc2V0RmFpbGVkKCkgZGVsZXRlcyB8bV9yZWFkZXJ8LiAgQmUgY2FyZWZ1bCB0byBhdm9p
ZAogICAgICAgICAvLyBhY2Nlc3NpbmcgZGVsZXRlZCBtZW1vcnksIGVzcGVjaWFsbHkgd2hlbiBj
YWxsaW5nIHRoaXMgZnJvbSBpbnNpZGUKICAgICAgICAgLy8gQk1QSW1hZ2VSZWFkZXIhCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1h
Z2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dp
Zi9HSUZJbWFnZURlY29kZXIuY3BwCmluZGV4IDcyNGVhMGQxM2I2ZWRiNTI1ZmViYTViZWE1ZmUw
ZDgzMWFkMTAwYmYuLjA2OGIzN2UzOTc5MTg4YWY1NDM4OGI1OTNjZmVjZTFiN2M3OGU0ZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJ
bWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwCkBAIC0xMjQsMTUgKzEyNCwxNSBAQCBpbnQgR0lG
SW1hZ2VEZWNvZGVyOjpyZXBldGl0aW9uQ291bnQoKSBjb25zdAogICAgIHJldHVybiBtX3JlcGV0
aXRpb25Db3VudDsKIH0KIAotSW1hZ2VGcmFtZSogR0lGSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZl
ckF0SW5kZXgoc2l6ZV90IGluZGV4KQorYm9vbCBHSUZJbWFnZURlY29kZXI6OmRlY29kZUF0SW5k
ZXgoc2l6ZV90IGluZGV4KQogewogICAgIGlmIChpbmRleCA+PSBmcmFtZUNvdW50KCkpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbWFnZUZyYW1lJiBm
cmFtZSA9IG1fZnJhbWVCdWZmZXJDYWNoZVtpbmRleF07CiAgICAgaWYgKGZyYW1lLnN0YXR1cygp
ICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpCiAgICAgICAgIGRlY29kZShpbmRleCArIDEs
IEdJRkZ1bGxRdWVyeSk7Ci0gICAgcmV0dXJuICZmcmFtZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogYm9vbCBHSUZJbWFnZURlY29kZXI6OnNldEZhaWxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVy
LmgKaW5kZXggMTViZDk5ZjY4NjIzNGFkYzM5YWZlYWZiNmUxMDVjMTc5YjMyOTA3MS4uNjZjZWUy
NDBkZmY3Yjk2ODZkZjY5NmRhZWJlZmYwMWI0NTk4NTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29k
ZXIuaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBzZXRTaXplKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgICAg
ICB2aXJ0dWFsIHNpemVfdCBmcmFtZUNvdW50KCk7CiAgICAgICAgIHZpcnR1YWwgaW50IHJlcGV0
aXRpb25Db3VudCgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIEltYWdlRnJhbWUqIGZyYW1lQnVm
ZmVyQXRJbmRleChzaXplX3QgaW5kZXgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlQXRJ
bmRleChzaXplX3QgaW5kZXgpIE9WRVJSSURFOwogICAgICAgICAvLyBDQVVUSU9OOiBzZXRGYWls
ZWQoKSBkZWxldGVzIHxtX3JlYWRlcnwuICBCZSBjYXJlZnVsIHRvIGF2b2lkCiAgICAgICAgIC8v
IGFjY2Vzc2luZyBkZWxldGVkIG1lbW9yeSwgZXNwZWNpYWxseSB3aGVuIGNhbGxpbmcgdGhpcyBm
cm9tIGluc2lkZQogICAgICAgICAvLyBHSUZJbWFnZVJlYWRlciEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVj
b2Rlci5jcHAKaW5kZXggMzZkZGUxY2RkNTZkMDA4NGU0ZjZkZTUyYjNmNzQ1NWQ2YTA2OTlhMC4u
OTU4YzgwMTQ4MzQwZDgwMTE4NGRhMmI4ZWQ1ZGY5NGI0N2Q0YzI0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0lt
YWdlRGVjb2Rlci5jcHAKQEAgLTEwOSwyMSArMTA5LDIxIEBAIHNpemVfdCBJQ09JbWFnZURlY29k
ZXI6OmZyYW1lQ291bnQoKQogICAgICAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlW2ldLnNldFBy
ZW11bHRpcGx5QWxwaGEobV9wcmVtdWx0aXBseUFscGhhKTsKICAgICB9CiAgICAgLy8gQ0FVVElP
TjogV2UgbXVzdCBub3QgcmVzaXplIG1fZnJhbWVCdWZmZXJDYWNoZSBhZ2FpbiBhZnRlciB0aGlz
LCBhcwotICAgIC8vIGRlY29kZUF0SW5kZXgoKSBtYXkgZ2l2ZSBhIEJNUEltYWdlUmVhZGVyIGEg
cG9pbnRlciB0byBvbmUgb2YgdGhlCisgICAgLy8gZGVjb2RlQXRJbmRleFByaXZhdGUoKSBtYXkg
Z2l2ZSBhIEJNUEltYWdlUmVhZGVyIGEgcG9pbnRlciB0byBvbmUgb2YgdGhlCiAgICAgLy8gZW50
cmllcy4KICAgICByZXR1cm4gbV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKTsKIH0KIAotSW1hZ2VG
cmFtZSogSUNPSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQor
Ym9vbCBJQ09JbWFnZURlY29kZXI6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAg
IC8vIEVuc3VyZSB8aW5kZXh8IGlzIHZhbGlkLgogICAgIGlmIChpbmRleCA+PSBmcmFtZUNvdW50
KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbWFn
ZUZyYW1lKiBidWZmZXIgPSAmbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XTsKICAgICBpZiAoYnVm
ZmVyLT5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQogICAgICAgICBkZWNv
ZGUoaW5kZXgsIGZhbHNlKTsKLSAgICByZXR1cm4gYnVmZmVyOworICAgIHJldHVybiB0cnVlOwog
fQogCiBib29sIElDT0ltYWdlRGVjb2Rlcjo6c2V0RmFpbGVkKCkKQEAgLTE2NSw3ICsxNjUsNyBA
QCB2b2lkIElDT0ltYWdlRGVjb2Rlcjo6ZGVjb2RlKHNpemVfdCBpbmRleCwgYm9vbCBvbmx5U2l6
ZSkKIAogICAgIC8vIElmIHdlIGNvdWxkbid0IGRlY29kZSB0aGUgaW1hZ2UgYnV0IHdlJ3ZlIHJl
Y2VpdmVkIGFsbCB0aGUgZGF0YSwgZGVjb2RpbmcKICAgICAvLyBoYXMgZmFpbGVkLgotICAgIGlm
ICgoIWRlY29kZURpcmVjdG9yeSgpIHx8ICghb25seVNpemUgJiYgIWRlY29kZUF0SW5kZXgoaW5k
ZXgpKSkgJiYgaXNBbGxEYXRhUmVjZWl2ZWQoKSkKKyAgICBpZiAoKCFkZWNvZGVEaXJlY3Rvcnko
KSB8fCAoIW9ubHlTaXplICYmICFkZWNvZGVBdEluZGV4UHJpdmF0ZShpbmRleCkpKSAmJiBpc0Fs
bERhdGFSZWNlaXZlZCgpKQogICAgICAgICBzZXRGYWlsZWQoKTsKICAgICAvLyBJZiB3ZSdyZSBk
b25lIGRlY29kaW5nIHRoaXMgZnJhbWUsIHdlIGRvbid0IG5lZWQgdGhlIEJNUEltYWdlUmVhZGVy
IG9yCiAgICAgLy8gUE5HSW1hZ2VEZWNvZGVyIGFueW1vcmUuICAoSWYgd2UgZmFpbGVkLCB0aGVz
ZSBoYXZlIGFscmVhZHkgYmVlbgpAQCAtMTg2LDcgKzE4Niw3IEBAIGJvb2wgSUNPSW1hZ2VEZWNv
ZGVyOjpkZWNvZGVEaXJlY3RvcnkoKQogICAgIHJldHVybiAobV9kZWNvZGVkT2Zmc2V0ID49IChz
aXplT2ZEaXJlY3RvcnkgKyAobV9kaXJFbnRyaWVzLnNpemUoKSAqIHNpemVPZkRpckVudHJ5KSkp
IHx8IHByb2Nlc3NEaXJlY3RvcnlFbnRyaWVzKCk7CiB9CiAKLWJvb2wgSUNPSW1hZ2VEZWNvZGVy
OjpkZWNvZGVBdEluZGV4KHNpemVfdCBpbmRleCkKK2Jvb2wgSUNPSW1hZ2VEZWNvZGVyOjpkZWNv
ZGVBdEluZGV4UHJpdmF0ZShzaXplX3QgaW5kZXgpCiB7CiAgICAgQVNTRVJUKGluZGV4IDwgbV9k
aXJFbnRyaWVzLnNpemUoKSk7CiAgICAgY29uc3QgSWNvbkRpcmVjdG9yeUVudHJ5JiBkaXJFbnRy
eSA9IG1fZGlyRW50cmllc1tpbmRleF07CkBAIC0yMTksNiArMjE5LDcgQEAgYm9vbCBJQ09JbWFn
ZURlY29kZXI6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIC8vIGluIHRoZSBkaXJl
Y3RvcnkuCiAgICAgaWYgKG1fcG5nRGVjb2RlcnNbaW5kZXhdLT5pc1NpemVBdmFpbGFibGUoKSAm
JiAobV9wbmdEZWNvZGVyc1tpbmRleF0tPnNpemUoKSAhPSBkaXJFbnRyeS5tX3NpemUpKQogICAg
ICAgICByZXR1cm4gc2V0RmFpbGVkKCk7CisgICAgbV9wbmdEZWNvZGVyc1tpbmRleF0tPmRlY29k
ZUF0SW5kZXgoMCk7CiAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XSA9ICptX3BuZ0RlY29k
ZXJzW2luZGV4XS0+ZnJhbWVCdWZmZXJBdEluZGV4KDApOwogICAgIHJldHVybiAhbV9wbmdEZWNv
ZGVyc1tpbmRleF0tPmZhaWxlZCgpIHx8IHNldEZhaWxlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVj
b2Rlci5oCmluZGV4IDMxZDkxYzgxOTAyZmIwZDJjNjlkYzBhMzYxOGNiZGM1NGJmNmI3MTMuLmU4
MTBmYTQzMTEyNmE2NDVhZTM0NDE0N2RmYjlhMTU2YWEwMmNiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VE
ZWNvZGVyLmgKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIEludFNpemUgZnJhbWVTaXplQXRJbmRleChzaXplX3QpIGNvbnN0OwogICAgICAgICB2
aXJ0dWFsIGJvb2wgc2V0U2l6ZSh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKICAg
ICAgICAgdmlydHVhbCBzaXplX3QgZnJhbWVDb3VudCgpOwotICAgICAgICB2aXJ0dWFsIEltYWdl
RnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QpOworICAgICAgICB2aXJ0dWFsIGJvb2wg
ZGVjb2RlQXRJbmRleChzaXplX3QgaW5kZXgpIE9WRVJSSURFOwogICAgICAgICAvLyBDQVVUSU9O
OiBzZXRGYWlsZWQoKSBkZWxldGVzIGFsbCByZWFkZXJzIGFuZCBkZWNvZGVycy4gIEJlIGNhcmVm
dWwgdG8KICAgICAgICAgLy8gYXZvaWQgYWNjZXNzaW5nIGRlbGV0ZWQgbWVtb3J5LCBlc3BlY2lh
bGx5IHdoZW4gY2FsbGluZyB0aGlzIGZyb20KICAgICAgICAgLy8gaW5zaWRlIEJNUEltYWdlUmVh
ZGVyIQpAQCAtOTgsNyArOTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
ZGVjb2RlRGlyZWN0b3J5KCk7CiAKICAgICAgICAgLy8gRGVjb2RlcyB0aGUgc3BlY2lmaWVkIGVu
dHJ5LgotICAgICAgICBib29sIGRlY29kZUF0SW5kZXgoc2l6ZV90KTsKKyAgICAgICAgYm9vbCBk
ZWNvZGVBdEluZGV4UHJpdmF0ZShzaXplX3QpOwogCiAgICAgICAgIC8vIFByb2Nlc3NlcyB0aGUg
SUNPTkRJUiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkYXRhLiAgUmV0dXJucyB0cnVlIGlmCiAg
ICAgICAgIC8vIHRoZSBkaXJlY3RvcnkgY291bGQgYmUgZGVjb2RlZC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwCmluZGV4IGJlZjQyMDNhNTc3MDM0Njg5MTFmY2I3ZDc2ZTQ5MWZhOTAy
MGVhOTEuLjQ4ZDYzYWZjMmU4NmFmNmE1NTMzYmYxZDI1MTQyN2NmY2E0NjJhMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdl
RGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcApAQCAtNTI5LDEwICs1MjksMTAgQEAgYm9vbCBKUEVH
SW1hZ2VEZWNvZGVyOjpzZXRTaXplKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLUltYWdlRnJhbWUqIEpQRUdJbWFnZURlY29kZXI6OmZyYW1l
QnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCitib29sIEpQRUdJbWFnZURlY29kZXI6OmRlY29k
ZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAgIGlmIChpbmRleCkKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2ZyYW1lQnVmZmVyQ2FjaGUu
aXNFbXB0eSgpKSB7CiAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZS5yZXNpemUoMSk7CkBAIC01
NDIsNyArNTQyLDcgQEAgSW1hZ2VGcmFtZSogSlBFR0ltYWdlRGVjb2Rlcjo6ZnJhbWVCdWZmZXJB
dEluZGV4KHNpemVfdCBpbmRleCkKICAgICBJbWFnZUZyYW1lJiBmcmFtZSA9IG1fZnJhbWVCdWZm
ZXJDYWNoZVswXTsKICAgICBpZiAoZnJhbWUuc3RhdHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVD
b21wbGV0ZSkKICAgICAgICAgZGVjb2RlKGZhbHNlKTsKLSAgICByZXR1cm4gJmZyYW1lOworICAg
IHJldHVybiB0cnVlOwogfQogCiBib29sIEpQRUdJbWFnZURlY29kZXI6OnNldEZhaWxlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQ
RUdJbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5oCmluZGV4IGQwOTVjYmIxNjllNzA3MGIzYjVlMzNiY2Uy
MTAzZGUwNTJiZTRiNDMuLjAzODVmOGZjOWZhZmIwZGEwN2NhNzYwM2Q4ZGVmN2E3MTEwNGRjNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcv
SlBFR0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBj
b25zdCB7IHJldHVybiAianBnIjsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTaXplQXZhaWxh
YmxlKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRTaXplKHVuc2lnbmVkIHdpZHRoLCB1bnNp
Z25lZCBoZWlnaHQpOwotICAgICAgICB2aXJ0dWFsIEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJ
bmRleChzaXplX3QgaW5kZXgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlQXRJbmRleChz
aXplX3QgaW5kZXgpIE9WRVJSSURFOwogICAgICAgICAvLyBDQVVUSU9OOiBzZXRGYWlsZWQoKSBk
ZWxldGVzIHxtX3JlYWRlcnwuICBCZSBjYXJlZnVsIHRvIGF2b2lkCiAgICAgICAgIC8vIGFjY2Vz
c2luZyBkZWxldGVkIG1lbW9yeSwgZXNwZWNpYWxseSB3aGVuIGNhbGxpbmcgdGhpcyBmcm9tIGlu
c2lkZQogICAgICAgICAvLyBKUEVHSW1hZ2VSZWFkZXIhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIu
Y3BwCmluZGV4IDE1OGRlYmI1YWIxYzM4YzFlMWE3YmFhM2FkMGQzYWY0ZDczNjQ5YTguLmYyMGYy
YTIxODc2ZjIzYmUzZDI2YzgxNTk3NDMxMzdlNTI3ODUzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURl
Y29kZXIuY3BwCkBAIC0yNTAsMTAgKzI1MCwxMCBAQCBib29sIFBOR0ltYWdlRGVjb2Rlcjo6c2V0
U2l6ZSh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogICAgIHJldHVybiB0cnVlOwog
fQogCi1JbWFnZUZyYW1lKiBQTkdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXpl
X3QgaW5kZXgpCitib29sIFBOR0ltYWdlRGVjb2Rlcjo6ZGVjb2RlQXRJbmRleChzaXplX3QgaW5k
ZXgpCiB7CiAgICAgaWYgKGluZGV4KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgbV9mcmFtZUJ1ZmZlckNhY2hlLnJlc2l6ZSgxKTsKQEAgLTI2Myw3ICsyNjMsNyBAQCBJbWFn
ZUZyYW1lKiBQTkdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgp
CiAgICAgSW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1lQnVmZmVyQ2FjaGVbMF07CiAgICAgaWYg
KGZyYW1lLnN0YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpCiAgICAgICAgIGRl
Y29kZShmYWxzZSk7Ci0gICAgcmV0dXJuICZmcmFtZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
Ym9vbCBQTkdJbWFnZURlY29kZXI6OnNldEZhaWxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmgK
aW5kZXggZWMyZTg1NzQwYjM2OTk2MDJkN2U4MzYwY2QyOWRlMGY5MDA3NzM0Yi4uZmM2ZWFkOGQ2
NjE4ZGI1YTkzMzBhNWFkZjAzNGMwZGE3YmFmMTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIu
aApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
U3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QgeyByZXR1cm4gInBuZyI7IH0KICAgICAg
ICAgdmlydHVhbCBib29sIGlzU2l6ZUF2YWlsYWJsZSgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
c2V0U2l6ZSh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKLSAgICAgICAgdmlydHVh
bCBJbWFnZUZyYW1lKiBmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KTsKKyAgICAgICAg
dmlydHVhbCBib29sIGRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBPVkVSUklERTsKICAgICAg
ICAgLy8gQ0FVVElPTjogc2V0RmFpbGVkKCkgZGVsZXRlcyB8bV9yZWFkZXJ8LiAgQmUgY2FyZWZ1
bCB0byBhdm9pZAogICAgICAgICAvLyBhY2Nlc3NpbmcgZGVsZXRlZCBtZW1vcnksIGVzcGVjaWFs
bHkgd2hlbiBjYWxsaW5nIHRoaXMgZnJvbSBpbnNpZGUKICAgICAgICAgLy8gUE5HSW1hZ2VSZWFk
ZXIhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93
ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNwcAppbmRleCA2MTI4OTBmMzEyNTJiZTE3
MGJmNzlmM2MxZjA1ZTUyNzUwMzU4MjlhLi4xNmFmNDJiOGNlYzhjMmFmMzkyNTdlOWI5OGEzZTJi
YTdmMzBiOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKQEAgLTY5LDEwICs2
OSwxMCBAQCBib29sIFdFQlBJbWFnZURlY29kZXI6OmlzU2l6ZUF2YWlsYWJsZSgpCiAgICAgcmV0
dXJuIEltYWdlRGVjb2Rlcjo6aXNTaXplQXZhaWxhYmxlKCk7CiB9CiAKLUltYWdlRnJhbWUqIFdF
QlBJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCitib29sIFdF
QlBJbWFnZURlY29kZXI6OmRlY29kZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAgIGlmIChp
bmRleCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
IChtX2ZyYW1lQnVmZmVyQ2FjaGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fZnJhbWVCdWZmZXJD
YWNoZS5yZXNpemUoMSk7CkBAIC04Miw3ICs4Miw3IEBAIEltYWdlRnJhbWUqIFdFQlBJbWFnZURl
Y29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAgSW1hZ2VGcmFtZSYg
ZnJhbWUgPSBtX2ZyYW1lQnVmZmVyQ2FjaGVbMF07CiAgICAgaWYgKGZyYW1lLnN0YXR1cygpICE9
IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpCiAgICAgICAgIGRlY29kZShmYWxzZSk7Ci0gICAg
cmV0dXJuICZmcmFtZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBXRUJQSW1hZ2VEZWNv
ZGVyOjpkZWNvZGUoYm9vbCBvbmx5U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmgKaW5k
ZXggNjFlYTEzOTUzNGM2ODE0YWRkNTIyNDdmM2UwZDhhNjc3MzBlMjc0ZC4uMjA1NDcyYTc3NTkx
ZmRlOWVlMTNiYTk0ODkxMmExMzYzNzhmYTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVy
LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgZmlsZW5h
bWVFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiAid2VicCI7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNTaXplQXZhaWxhYmxlKCk7Ci0gICAgdmlydHVhbCBJbWFnZUZyYW1lKiBmcmFtZUJ1ZmZlckF0
SW5kZXgoc2l6ZV90IGluZGV4KTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlQXRJbmRleChzaXpl
X3QgaW5kZXgpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIGJvb2wgZGVjb2RlKGJvb2wgb25s
eVNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VE
ZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlRGVjb2Rlci5j
cHAKaW5kZXggYWQwYTY3ZTUxNTU3YzEzYTA3YTU3OGEwZDJiMWVmYTRjYWUzNzUzMi4uNGQ2ZjRi
ZWM1M2ZjM2Y3YzM3YWI2YmIwZWU2ZGFiZmU1NmFmMjU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJbWFnZURlY29kZXIuY3BwCkBAIC05OCw2ICs5OCw3IEBAIHNpemVf
dCBXZWJJbWFnZURlY29kZXI6OmZyYW1lQ291bnQoKSBjb25zdAogYm9vbCBXZWJJbWFnZURlY29k
ZXI6OmlzRnJhbWVDb21wbGV0ZUF0SW5kZXgoaW50IGluZGV4KSBjb25zdAogewogICAgIEFTU0VS
VChtX3ByaXZhdGUpOworICAgIG1fcHJpdmF0ZS0+ZGVjb2RlQXRJbmRleChpbmRleCk7CiAgICAg
SW1hZ2VGcmFtZSogY29uc3QgZnJhbWVCdWZmZXIgPSBtX3ByaXZhdGUtPmZyYW1lQnVmZmVyQXRJ
bmRleChpbmRleCk7CiAgICAgaWYgKCFmcmFtZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTA3LDYgKzEwOCw3IEBAIGJvb2wgV2ViSW1hZ2VEZWNvZGVyOjppc0ZyYW1lQ29tcGxl
dGVBdEluZGV4KGludCBpbmRleCkgY29uc3QKIFdlYkltYWdlIFdlYkltYWdlRGVjb2Rlcjo6Z2V0
RnJhbWVBdEluZGV4KGludCBpbmRleCA9IDApIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fcHJpdmF0
ZSk7CisgICAgbV9wcml2YXRlLT5kZWNvZGVBdEluZGV4KGluZGV4KTsKICAgICBJbWFnZUZyYW1l
KiBjb25zdCBmcmFtZUJ1ZmZlciA9IG1fcHJpdmF0ZS0+ZnJhbWVCdWZmZXJBdEluZGV4KGluZGV4
KTsKICAgICBpZiAoIWZyYW1lQnVmZmVyKQogICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCmluZGV4IGUxYTkyNjA1
MDYyODFkODlhMjhmYTBjZDI0MDMzZDAzOTcxODA1YzcuLmU0YTcxNDIwYWJmMjJjYTAzYTg0NTIz
NTE2MjVlZGFkZGZiNjk1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkltYWdlU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1h
Z2VTa2lhLmNwcApAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5j
bHVkZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgogI2luY2x1ZGUgIk5hdGl2
ZUltYWdlU2tpYS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlN5bmNo
cm9ub3VzSW1hZ2VTb3VyY2UuaCIKIAogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRhdGEuaCIKICNp
bmNsdWRlICJwbGF0Zm9ybS9XZWJTaXplLmgiCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJJbWFnZSBXZWJJbWFnZTo6ZnJvbURhdGEoY29uc3QgV2ViRGF0YSYgZGF0
YSwgY29uc3QgV2ViU2l6ZSYgZGVzaXJlZFNpemUpCiB7Ci0gICAgSW1hZ2VTb3VyY2Ugc291cmNl
OworICAgIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2Ugc291cmNlOwogICAgIHNvdXJjZS5zZXREYXRh
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPihkYXRhKS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFz
b3VyY2UuaXNTaXplQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBXZWJJbWFnZSgpOwpAQCAt
OTEsNyArOTEsNyBAQCBXZWJWZWN0b3I8V2ViSW1hZ2U+IFdlYkltYWdlOjpmcmFtZXNGcm9tRGF0
YShjb25zdCBXZWJEYXRhJiBkYXRhKQogICAgIC8vIFRoaXMgaXMgdG8gcHJvdGVjdCBmcm9tIG1h
bGljaW91cyBpbWFnZXMuIEl0IHNob3VsZCBiZSBiaWcgZW5vdWdoIHRoYXQgaXQncyBuZXZlciBo
aXQgaW4gcHJhY2ljZS4KICAgICBjb25zdCBzaXplX3QgbWF4RnJhbWVDb3VudCA9IDg7CiAKLSAg
ICBJbWFnZVNvdXJjZSBzb3VyY2U7CisgICAgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBzb3VyY2U7
CiAgICAgc291cmNlLnNldERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KGRhdGEpLmdldCgp
LCB0cnVlKTsKICAgICBpZiAoIXNvdXJjZS5pc1NpemVBdmFpbGFibGUoKSkKICAgICAgICAgcmV0
dXJuIFdlYlZlY3RvcjxXZWJJbWFnZT4oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158682</attachid>
            <date>2012-08-15 18:34:44 -0700</date>
            <delta_ts>2012-08-15 19:46:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93467-20120816103349.patch</filename>
            <type>text/plain</type>
            <size>43854</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY2MTc4MmM0ODQ5ODNh
MmZjYTI1NzdjZTgzNWVjODkzYzM5MGIzMC4uN2IxMWQwZDA5NzkzM2NiOGU5Mzg4OWM2MTRmYWM3
Zjc2MmI4YmFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDEyLTA4LTE1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENoYW5nZSBJ
bWFnZVNvdXJjZSB0byBiZSBhc3luY2hyb25vdXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEludGVybmFsIHJldmlldyBieSBLd2FuZyBZdWwgU2VvLgor
CisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBBUEkgb2YgSW1hZ2VTb3VyY2Ugc3VwcG9y
dCBhc3luY2hyb25vdXMgaW1hZ2UgZGVjb2RpbmcuIFRoaXMKKyAgICAgICAgaXMgYSBwcmVwYXJh
dGlvbiBmb3IgYXN5bmNocm9ub3VzIGltYWdlIGRlY29kaW5nLiBBZnRlciBJbWFnZVNvdXJjZQor
ICAgICAgICBjb21wbGV0ZXMgaW1hZ2UgZGVjb2RpbmcsIEltYWdlU291cmNlIHNlbmRzIE5hdGl2
ZUltYWdlUHRyIHRvIEJpdG1hcEltYWdlIHZpYQorICAgICAgICBJbWFnZVNvdXJjZU9ic2VydmVy
OjpkaWREZWNvZGVGcmFtZUF0SW5kZXgoKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZXMg
Y3JlYXRlRnJhbWVBdEluZGV4IHRvIHJlcXVlc3RGcmFtZUF0SW5kZXgsIHRvIGltcGx5CisgICAg
ICAgIHRoaXMgbWV0aG9kIGNhbiBiZSBhc3luY2hyb25vdXMuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbnRyb2R1Y2VkIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UsIHdoaWNoIGRlY29kZXMgaW1hZ2Ug
c3luY2hyb25vdXNseS4KKyAgICAgICAgVGhlIG1haW4gcmVhc29uIHRvIGFkZCB0aGlzIGNsYXNz
IGlzIHRvIHByZXZlbnQgY2xpZW50cyBmcm9tIG1pc3VzaW5nCisgICAgICAgIEltYWdlU291cmNl
LiBJbWFnZVNvdXJjZSB3aWxsIGJlIGFibGUgdG8gcGVyZm9ybSBzeW5jIGFuZCBhc3luYyBpbWFn
ZSBkZWNvZGluZywKKyAgICAgICAgc28gaXQgd2lsbCBiZSBoYXJkIHRvIHVzZSBJbWFnZVNvdXJj
ZSBjb3JyZWN0bHkuIFNvLCBhZnRlciB0aGlzIHBhdGNoLCBvbmx5CisgICAgICAgIEJpdG1hcElt
YWdlIGFuZCBTeW5jaHJvbm91c0ltYWdlU291cmNlIGNhbiBjcmVhdGUgYW5kIHVzZSBJbWFnZVNv
dXJjZSwgYW5kIG90aGVyCisgICAgICAgIGNsaWVudHMgd2hpY2ggbmVlZCB0byB1c2UgSW1hZ2VT
b3VyY2UgbXVzdCB1c2UgU3luY2hyb25vdXNJbWFnZVNvdXJjZS4KKyAgICAgICAgQ3VycmVudGx5
LCBHcmFwaGljc0NvbnRleHQzRCBhbmQgV2ViSW1hZ2VTa2lhIHVzZSBTeW5jaHJvbm91c0ltYWdl
U291cmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGV4aXN0aW5nIGltYWdlIHRlc3RzIGNv
dmVyIHRoZXNlIGNhc2VzLgorICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9pbWFnZXMvKgorICAg
ICAgICAgICAgICBmYXN0L2ltYWdlcy8qCisgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxJbWFn
ZUVsZW1lbnQvKgorICAgICAgICAgICAgICBodHRwL3Rlc3RzL2ltYWdlcy8qCisgICAgICAgICAg
ICAgIGNzczMvaW1hZ2VzLyoKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y2FjaGVGcmFtZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkaWREZWNvZGVGcmFtZUF0SW5kZXgp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgIChC
aXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKEltYWdlU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChJbWFnZVNvdXJjZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlU291cmNlT2JzZXJ2ZXI6On5JbWFnZVNvdXJjZU9ic2VydmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdlU291cmNlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlU291cmNlT2JzZXJ2ZXJJbXBsOjpJbWFnZVNvdXJjZU9ic2VydmVySW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZU9ic2VydmVySW1wbDo6fkltYWdlU291
cmNlT2JzZXJ2ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2U6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25v
dXNJbWFnZVNvdXJjZTo6flN5bmNocm9ub3VzSW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6c2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
eW5jaHJvbm91c0ltYWdlU291cmNlOjpmaWxlbmFtZUV4dGVuc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpTeW5jaHJvbm91c0ltYWdlU291cmNlOjppc1NpemVBdmFpbGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6c2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTeW5jaHJvbm91c0ltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1lQ291bnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4
KToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1lSXNDb21w
bGV0ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1h
Z2VTb3VyY2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN5bmNocm9u
b3VzSW1hZ2VTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1h
cEltYWdlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcElt
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQz
RENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFn
ZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNE
Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VT
b3VyY2U6OkltYWdlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpyZXF1
ZXN0RnJhbWVBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0lt
YWdlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisKIDIwMTItMDgtMDkgIEh1YW5nIERv
bmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmVuYW1lIHR3byBt
ZXRob2RzIG9mIEJpdG1hcEltYWdlIGluIG9yZGVyIHRvIGNsYXJpZnkgdGhlIGludGVudGlvbjog
ZnJhbWVEdXJhdGlvbkF0SW5kZXgoKSBhbmQgZnJhbWVJc0NvbXBsZXRlQXRJbmRleCgpLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzODJhZTFjNDE0OTExYWIyN2JlZmUxZjRkMjg0Mjcw
YWFlMzYxMDQwLi5lYmNjMzZmNjJiZDViNjA2N2E4N2EwZTIxNWIzNjlmMjAyMThkNTZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA4LTE1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENoYW5nZSBJ
bWFnZVNvdXJjZSB0byBiZSBhc3luY2hyb25vdXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlZCBTeW5jaHJvbm91c0lt
YWdlU291cmNlLCBhbmQgYWxsIGNsaWVudHMgd2hpY2ggdXNlZAorICAgICAgICBJbWFnZVNvdXJj
ZSBtdXN0IHVzZSBTeW5jaHJvbm91c0ltYWdlU291cmNlIGluc3RlYWQgb2YgSW1hZ2VTb3VyY2Uu
CisKKyAgICAgICAgKiBzcmMvV2ViSW1hZ2VTa2lhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW1hZ2U6OmZyb21EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW1hZ2U6OmZyYW1lc0Zyb21E
YXRhKToKKwogMjAxMi0wOC0xNSAgQnJ1bm8gZGUgT2xpdmVpcmEgQWJpbmFkZXIgIDxicnVuby5h
YmluYWRlckBiYXN5c2tvbS5jb20+CiAKICAgICAgICAgW2NzczMtdGV4dF0gQWRkIENTUzMgVGV4
dCBkZWNvcmF0aW9uIGNvbXBpbGUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggODlmZjAzNWY4YTU3OGZlYWIzYjRiNmY0MjZmMWExNjExZDE5NGQ3NS4uZDdlZmU3ZTMwNDYz
MDE4NTg0YmFhNDdmMDdkNGMzMDk0MmM0Nzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC00MzQzLDYgKzQzNDMsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ludFBvaW50SGFzaC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0LmNwcCBcCkBAIC00Mzg1LDYgKzQzODYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRl
eHRJdGVyYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TVkdHbHlw
aC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NWR0dseXBoLmggXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2Uu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdl
U291cmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSZW5kZXJp
bmdNb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggN2Q0MzkyZDBlZDM4MTlhMDk3MzZlMzFkZjYxOTg0ZmUwYzhmMzU5ZS4uMTQyNTg2
ZTVkMmVkNDQ2MTZhZjg4YjNiM2MyODExMjNkZDZmMzI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05Njks
NiArOTY5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU1ZHR2x5cGgu
Y3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAgXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1N0cmluZ1RydW5jYXRvci5jcHAgXAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9xdC9HcmFwaGljc1N1cmZhY2VRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uY3BwIFwKQEAgLTIwODQsNiArMjA4NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50
YXRpb24uaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBcCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2VPYnNlcnZlci5oIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9JbnRQb2ludC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludEhhc2guaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oIFwKQEAgLTIxMDMsNiArMjEwNSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1NlZ21lbnRlZEZvbnREYXRhLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25v
dXNJbWFnZVNvdXJjZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGlj
c1N1cmZhY2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDNmMmVmNTJlNjg0YmJlMTNkN2Y2M2E0ZTFhZmY3
ODMxMzhkNmQ2NTYuLmU1MjQ0OGI0NTYwZTc5MmYwYWI5MWI3MzAwMDU2OTM0ZjI4ZjJiNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTM5MSw2ICszOTEsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VPcmllbnRhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZU9ic2VydmVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50SGFzaC5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgnLApAQCAtNDA2LDYgKzQwNyw3IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1NWR0dseXBoLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvVGV4dFJlbmRlcmluZ01vZGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvVGV4dFJ1bi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9UeXBl
c2V0dGluZ0ZlYXR1cmVzLmgnLApAQCAtMzU0NCw2ICszNTQ2LDcgQEAKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9TdHJva2VTdHlsZUFwcGxpZXIuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9y
LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvVGlsZS5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlN2FjYjFhYzA1YTQ2YjE4N2EwNDFl
NzYwOTEyMjNjZDk0ODQ5YTVlLi4yN2VjNjY2YzdmMjY5NDM3YTlhNjNiOWE2MTk3MzkxYmM1ZjI0
NzU0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtMjk1MjYsNiArMjk1MjYsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEltYWdlU291cmNlT2JzZXJ2
ZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEludFBvaW50LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBA
IC0yOTYyNiw2ICsyOTYzMCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcU3luY2hyb25vdXNJbWFnZVNv
dXJjZS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xTeW5jaHJvbm91c0ltYWdlU291cmNlLmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xUZXh0UnVuLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNmY1ZjVm
NzVhMDE2MThiMjc1ZDdhODU2OGZmNTg0MDc0Y2JhOTgxLi5jYjhmZTBiMzFhNjRjZWFjYzkyYTRk
NGU3N2QwZWIwMDYyN2ZiNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODIxLDYgKzQ4MjEsNyBAQAogCQlCMjc1MzU2RjBC
MDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCAq
LzsgfTsKIAkJQjI3NTM1NzAwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0MjBCMDUzODE0MDAyQ0U2
NEYgLyogSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCMjc1MzU3MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTQzMEIwNTM4MTQw
MDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUIyNzUzNTcxMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJj
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjc1MzU0MzBCMDUzODE0MDAyQ0U2NEUgLyogSW1hZ2VTb3VyY2VPYnNlcnZlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyNzUzNTcyMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1
NzMwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJl
Y3QuY3BwICovOyB9OwogCQlCMjc1MzU3NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDYwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNDgzNyw2ICs0ODM4LDggQEAKIAkJQjI3NTM1N0UwQjA1Mzgx
NDAwMkNFNjRGIC8qIEludFNpemVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MTBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZU1hYy5t
bSAqLzsgfTsKIAkJQjI3NTM1N0YwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NTIwQjA1MzgxNDAw
MkNFNjRGIC8qIFBhdGguY3BwICovOyB9OwogCQlCMjc1MzU4MDBCMDUzODE0MDAyQ0U2NEYgLyog
UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3
NTM1NTMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBOTk5NDMyOTBCNDIzMzg4MDBEN0M4MDIgLyogU3lu
Y2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogU3luY2hyb25vdXNJbWFn
ZVNvdXJjZS5jcHAgKi87IH07CisJCUIzNzUzNTcxMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJv
bm91c0ltYWdlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMzc1MzU0MzBCMDUzODE0MDAyQ0U2NEYgLyogU3luY2hyb25vdXNJbWFnZVNvdXJj
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIy
NzUzNThFMEIwNTNBNjYwMDJDRTY0RiAvKiBJY29uTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1OEQwQjA1M0E2NjAwMkNFNjRGIC8qIElj
b25NYWMubW0gKi87IH07CiAJCUIyNzdCNDA0MEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0Nv
bnRleHRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjc3QjQwMzBCMjJGMzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tICovOyB9
OwogCQlCMjdCMjgyNTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgxRjBDRUYw
QzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5jcHAgKi87IH07CkBAIC0xMjA1OCw2ICsx
MjA2MSw3IEBACiAJCUIyNzUzNTQxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMjc1MzU0MjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRFIC8qIEltYWdlU291
cmNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291
cmNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NDQwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnRQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU0NTBC
MDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW50UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIy
NzUzNTQ2MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MjA3NCw2ICsxMjA3OCw4IEBACiAJCUIyNzUzNTUxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXpl
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEludFNpemVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNTUyMEIwNTM4MTQwMDJD
RTY0RiAvKiBQYXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NTMwQjA1MzgxNDAw
MkNFNjRGIC8qIFBhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhdGgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTk5OTQzMjcwQjQyMzM4NzAwRDdDODAy
IC8qIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCMzc1MzU0MzBCMDUzODE0MDAyQ0U2NEYgLyogU3luY2hyb25vdXNJbWFn
ZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3luY2hyb25vdXNJ
bWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU4RDBCMDUz
QTY2MDAyQ0U2NEYgLyogSWNvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBJY29uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc3
QjQwMzBCMjJGMzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3QjI4MUYwQ0VGMEMwNzAwRDM5RDU0IC8qIEpT
U1ZHRm9udEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTU1ZHRm9udEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk4
MjIsNiArMTk4MjgsNyBAQAogCQkJCUE4NzQ4RDY2MTJDQzM3NjMwMDFGQkE0MSAvKiBJbWFnZU9y
aWVudGF0aW9uLmggKi8sCiAJCQkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVu
ZGVyaW5nTW9kZS5oICovLAogCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNv
dXJjZS5oICovLAorCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9i
c2VydmVyLmggKi8sCiAJCQkJQjI3NTM1NDQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Lmgg
Ki8sCiAJCQkJRTQ2MkE0QTAxMTNFNzFCRTAwNEE0MjIwIC8qIEludFBvaW50SGFzaC5oICovLAog
CQkJCUIyNzUzNTQ1MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmNwcCAqLywKQEAgLTE5ODU2
LDYgKzE5ODYzLDggQEAKIAkJCQkwODc1NThDNDEzQjRBNTdEMDBGNDkzMDcgLyogU3Vycm9nYXRl
UGFpckF3YXJlVGV4dEl0ZXJhdG9yLmggKi8sCiAJCQkJMDg3RTBBRjQxMzYwNkQwQjAwRkE0QkE4
IC8qIFNWR0dseXBoLmNwcCAqLywKIAkJCQkwODdFMEFGNTEzNjA2RDBCMDBGQTRCQTggLyogU1ZH
R2x5cGguaCAqLywKKwkJCQlBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogU3luY2hyb25vdXNJ
bWFnZVNvdXJjZS5jcHAgKi8sCisJCQkJQjM3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIFN5bmNo
cm9ub3VzSW1hZ2VTb3VyY2UuaCAqLywKIAkJCQk5MzBGQzY4OTEwNzJCOTI4MDA0NTI5M0UgLyog
VGV4dFJlbmRlcmluZ01vZGUuaCAqLywKIAkJCQkzNzZEQ0NFMDEzQjRGOTY2MDAyRUJFRkMgLyog
VGV4dFJ1bi5jcHAgKi8sCiAJCQkJQTgyNEI0NjQwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4u
aCAqLywKQEAgLTIzNTgzLDYgKzIzNTkyLDcgQEAKIAkJCQkyRDVBNTkzMTE1MjUyNUQwMDAzNkVF
NTEgLyogSW1hZ2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDkyOTFFNEIxMzQx
NzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjI3NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlCMjc1MzU3MTBCMDUzODE0MDAyQ0U2NEUgLyogSW1hZ2VTb3VyY2VPYnNlcnZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNEIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIEltYWdlU291cmNl
Q0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTE4MEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBs
aWNpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4
OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTE4LDYg
KzI1MTI4LDcgQEAKIAkJCQk4NDg1MjI4QjExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FGNjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
Wm9vbUFuZFBhbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJFNEVDOTgwRDAwQzIyQjAwNDMyNjQz
IC8qIFNWR1pvb21FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjM3NTM1NzEwQjA1MzgxNDAw
MkNFNjRGIC8qIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RTYyRDlCMDk4NUY0MTYwMEUxQjVFMyAvKiBTeXN0ZW1UaW1lLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOENGRjA1MTBBMTU0RjA5MDAwQTQyMzQgLyogVGFibGVMYXlvdXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRTNCRUMzMEQyMjJCMUQwMDdFMDZFNCAvKiBUYWdOb2RlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yODIzMiw2ICsyODI0Myw3IEBACiAJCQkJODQ4NTIyOEExMTkwMTczQzAwNkVE
QzdGIC8qIFNWR1ZLZXJuRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0FGNTBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHWm9vbUFuZFBhbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkU0RUM5NzBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9vbUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE5OTk0MzI5MEI0MjMzODgwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1ODJBMTYzMDk5OTlENkQwMEJFRUI2RCAvKiBTeXN0
ZW1UaW1lTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTNCRUMyMEQyMjJCMUQwMDdFMDZF
NCAvKiBUYWdOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RENTEyNTFGMTJE
MDAzRUYyNjkgLyogVGVsZXBob25lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IGVi
YjhkNzg5MDc0ZDFlY2Y0MDY5MGJmNjIzZTBhN2I5OThjODEwNjYuLmU5NzE3M2UxZGRlODMxYmVk
NzIwMTZlNjk3ODQyZDlkOGE3MWU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RhdGljIGludCBm
cmFtZUJ5dGVzKGNvbnN0IEludFNpemUmIGZyYW1lU2l6ZSkKIAogQml0bWFwSW1hZ2U6OkJpdG1h
cEltYWdlKEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIDogSW1hZ2Uob2JzZXJ2ZXIpCisg
ICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJyZW50RnJhbWUoMCkKICAgICAsIG1fZnJh
bWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKQEAgLTEzNCw3ICsxMzUsMTQgQEAgdm9pZCBC
aXRtYXBJbWFnZTo6Y2FjaGVGcmFtZShzaXplX3QgaW5kZXgpCiAgICAgaWYgKG1fZnJhbWVzLnNp
emUoKSA8IG51bUZyYW1lcykKICAgICAgICAgbV9mcmFtZXMuZ3JvdyhudW1GcmFtZXMpOwogCi0g
ICAgbV9mcmFtZXNbaW5kZXhdLm1fZnJhbWUgPSBtX3NvdXJjZS5jcmVhdGVGcmFtZUF0SW5kZXgo
aW5kZXgpOworICAgIG1fc291cmNlLnJlcXVlc3RGcmFtZUF0SW5kZXgoaW5kZXgpOworfQorCit2
b2lkIEJpdG1hcEltYWdlOjpkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBOYXRp
dmVJbWFnZVB0ciBuYXRpdmVJbWFnZSkKK3sKKyAgICBtX2ZyYW1lc1tpbmRleF0ubV9mcmFtZSA9
IG5hdGl2ZUltYWdlOworCisgICAgc2l6ZV90IG51bUZyYW1lcyA9IGZyYW1lQ291bnQoKTsKICAg
ICBpZiAobnVtRnJhbWVzID09IDEgJiYgbV9mcmFtZXNbaW5kZXhdLm1fZnJhbWUpCiAgICAgICAg
IGNoZWNrRm9yU29saWRDb2xvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA0MmY3ZWE2ZWFkMDEyNzQ0MWQ1ZDVlODJiN2M3YzUz
OTcwOTNiNWEzLi5lODA4NjY2ZTIxOTM4YmQxOTlkOWY4MzJmYjUxMDNhODRjNDg5OGJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRp
b24uaCIKICNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgorI2luY2x1ZGUgIkltYWdlU291cmNlT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC05
OSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAvLyBCaXRtYXBJbWFnZSBDbGFzcwogLy8gPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi1jbGFzcyBCaXRtYXBJ
bWFnZSA6IHB1YmxpYyBJbWFnZSB7CitjbGFzcyBCaXRtYXBJbWFnZSA6IHB1YmxpYyBJbWFnZSwg
cHVibGljIEltYWdlU291cmNlT2JzZXJ2ZXIgewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJ
bWFnZTsKICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJp
ZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwpAQCAtMTc4LDYgKzE3OSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm90U29saWRDb2xvcigpOwogI2VuZGlmCiAKKyAgICAv
LyBJbWFnZVNvdXJjZU9ic2VydmVyCisgICAgdmlydHVhbCB2b2lkIGRpZERlY29kZUZyYW1lQXRJ
bmRleChzaXplX3QsIE5hdGl2ZUltYWdlUHRyKSBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZVNpemUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IGM0MzNkZTQwMTJlOTg4ZGM2ZjkwOTE2OTc4
NzU1MzA1NjcxNTFiNmIuLmY0NmRmNTYxYTVjMmJkY2E1OTAyM2ZhZWRlMjIxYTMwMmM0YzVjYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbWFnZURlY29kZXIuaCIKIAogI2luY2x1
ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbWFnZVNvdXJjZU9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDAsMTEgKzQxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVuc2lnbmVkIEltYWdlU291cmNl
OjpzX21heFBpeGVsc1BlckRlY29kZWRJbWFnZSA9IDEwMjQgKiAxMDI0OwogI2VuZGlmCiAKLUlt
YWdlU291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRp
b24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbikKK0ltYWdlU291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZU9ic2Vy
dmVyKiBvYnNlcnZlciwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFn
ZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pCiAgICAgOiBtX2RlY29kZXIoMCkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCiAg
ICAgLCBtX2FscGhhT3B0aW9uKGFscGhhT3B0aW9uKQogICAgICwgbV9nYW1tYUFuZENvbG9yUHJv
ZmlsZU9wdGlvbihnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKIHsKKyAgICBBU1NFUlQobV9v
YnNlcnZlcik7CiB9CiAKIEltYWdlU291cmNlOjp+SW1hZ2VTb3VyY2UoKQpAQCAtMTM3LDYgKzE0
MCwxMyBAQCBzaXplX3QgSW1hZ2VTb3VyY2U6OmZyYW1lQ291bnQoKSBjb25zdAogICAgIHJldHVy
biBtX2RlY29kZXIgPyBtX2RlY29kZXItPmZyYW1lQ291bnQoKSA6IDA7CiB9CiAKK3ZvaWQgSW1h
Z2VTb3VyY2U6OnJlcXVlc3RGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBib29sKQoreworICAg
IC8vIFRPRE86IEltcGxlbWVudCBhc3luY2hyb25vdXMgZGVjb2RpbmcuCisgICAgTmF0aXZlSW1h
Z2VQdHIgbmF0aXZlSW1hZ2UgPSBjcmVhdGVGcmFtZUF0SW5kZXgoaW5kZXgpOworICAgIG1fb2Jz
ZXJ2ZXItPmRpZERlY29kZUZyYW1lQXRJbmRleChpbmRleCwgbmF0aXZlSW1hZ2UpOworfQorCiBO
YXRpdmVJbWFnZVB0ciBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRl
eCkKIHsKICAgICBpZiAoIW1fZGVjb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IDQwZDc1N2ZhMDlhM2NmNmViZTZiZDA1MjE4MzY3
YzQzZWViNzAyOTYuLjBlOTA5YWJmYzUxMTk5ZDdhMGFhN2QyODdkYjNkNTA2ZGQyZmQ4MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAt
NDIsOSArNDIsMTEgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRkRhdGEqIENGRGF0YVJlZjsK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VPcmllbnRhdGlvbjsKK2NsYXNzIElt
YWdlU291cmNlT2JzZXJ2ZXI7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFNpemU7CiBjbGFz
cyBTaGFyZWRCdWZmZXI7CitjbGFzcyBTeW5jaHJvbm91c0ltYWdlU291cmNlOwogCiAjaWYgVVNF
KENHKQogdHlwZWRlZiBDR0ltYWdlU291cmNlUmVmIE5hdGl2ZUltYWdlU291cmNlUHRyOwpAQCAt
NzMsNiArNzUsOCBAQCBjb25zdCBpbnQgY0FuaW1hdGlvbk5vbmUgPSAtMjsKIAogY2xhc3MgSW1h
Z2VTb3VyY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlU291cmNlKTsKKyAgICBm
cmllbmQgY2xhc3MgQml0bWFwSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIFN5bmNocm9ub3VzSW1h
Z2VTb3VyY2U7CiBwdWJsaWM6CiAgICAgZW51bSBBbHBoYU9wdGlvbiB7CiAgICAgICAgIEFscGhh
UHJlbXVsdGlwbGllZCwKQEAgLTkxLDcgKzk1LDYgQEAgcHVibGljOgogICAgIH07CiAjZW5kaWYK
IAotICAgIEltYWdlU291cmNlKEFscGhhT3B0aW9uIGFscGhhT3B0aW9uID0gQWxwaGFQcmVtdWx0
aXBsaWVkLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9w
dGlvbiA9IEdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAgICAgfkltYWdlU291cmNlKCk7
CiAKICAgICAvLyBUZWxscyB0aGUgSW1hZ2VTb3VyY2UgdGhhdCB0aGUgSW1hZ2Ugbm8gbG9uZ2Vy
IGNhcmVzIGFib3V0IGRlY29kZWQgZnJhbWUKQEAgLTEwOCw3ICsxMTEsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gZGVjb2RlZCBmcmFtZXMuCiAgICAgLy8KICAgICAvLyBDYWxsZXJzIHNob3VsZCBub3Qg
Y2FsbCBjbGVhcihmYWxzZSwgbikgYW5kIHN1YnNlcXVlbnRseSBjYWxsCi0gICAgLy8gY3JlYXRl
RnJhbWVBdEluZGV4KG0pIHdpdGggbSA8IG4sIHVubGVzcyB0aGV5IGZpcnN0IGNhbGwgY2xlYXIo
dHJ1ZSkuCisgICAgLy8gcmVxdWVzdEZyYW1lQXRJbmRleChtKSB3aXRoIG0gPCBuLCB1bmxlc3Mg
dGhleSBmaXJzdCBjYWxsIGNsZWFyKHRydWUpLgogICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHN0
YXRlZnVsIEltYWdlU291cmNlcy9kZWNvZGVycyB3aWxsIHdvcmsgcHJvcGVybHkuCiAgICAgLy8K
ICAgICAvLyBUaGUgfGRhdGF8IGFuZCB8YWxsRGF0YVJlY2VpdmVkfCBwYXJhbWV0ZXJzIHNob3Vs
ZCBiZSBzdXBwbGllZCBieSBjYWxsZXJzCkBAIC0xMzcsOSArMTQwLDkgQEAgcHVibGljOgogCiAg
ICAgc2l6ZV90IGZyYW1lQ291bnQoKSBjb25zdDsKIAotICAgIC8vIENhbGxlcnMgc2hvdWxkIG5v
dCBjYWxsIHRoaXMgYWZ0ZXIgY2FsbGluZyBjbGVhcigpIHdpdGggYSBoaWdoZXIgaW5kZXg7Cisg
ICAgLy8gTk9URTogQ2FsbGVycyBzaG91bGQgbm90IGNhbGwgdGhpcyBhZnRlciBjYWxsaW5nIGNs
ZWFyKCkgd2l0aCBhIGhpZ2hlciBpbmRleDsKICAgICAvLyBzZWUgY29tbWVudHMgb24gY2xlYXIo
KSBhYm92ZS4KLSAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90KTsK
KyAgICB2b2lkIHJlcXVlc3RGcmFtZUF0SW5kZXgoc2l6ZV90LCBib29sIHVzZUFzeW5jaHJvbm91
c0RlY29kaW5nSWZQb3NzaWJsZSA9IGZhbHNlKTsKIAogICAgIGZsb2F0IGZyYW1lRHVyYXRpb25B
dEluZGV4KHNpemVfdCk7CiAgICAgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpOyAv
LyBXaGV0aGVyIG9yIG5vdCB0aGUgZnJhbWUgYWN0dWFsbHkgdXNlZCBhbnkgYWxwaGEuCkBAIC0x
NTIsNyArMTU1LDExIEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorICAgIEltYWdlU291
cmNlKEltYWdlU291cmNlT2JzZXJ2ZXIqLCBBbHBoYU9wdGlvbiA9IEFscGhhUHJlbXVsdGlwbGll
ZCwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gPSBHYW1tYUFuZENvbG9yUHJvZmlsZUFwcGxp
ZWQpOworICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QpOworCiAg
ICAgTmF0aXZlSW1hZ2VTb3VyY2VQdHIgbV9kZWNvZGVyOworICAgIEltYWdlU291cmNlT2JzZXJ2
ZXIqIG1fb2JzZXJ2ZXI7CiAgICAgQWxwaGFPcHRpb24gbV9hbHBoYU9wdGlvbjsKICAgICBHYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbiBtX2dhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uOwogI2lm
IEVOQUJMRShJTUFHRV9ERUNPREVSX0RPV05fU0FNUExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTUxNTgyNjFlMGZhMmE0MTEwNzRmMzQzMjRhZWU2NTlkN2U2YmZlYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2
ZXIuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkg
MTAwIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbWFnZVNvdXJj
ZU9ic2VydmVyX2gKKyNkZWZpbmUgSW1hZ2VTb3VyY2VPYnNlcnZlcl9oCisKKyNpbmNsdWRlICJO
YXRpdmVJbWFnZVB0ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEludGVyZmFjZSBm
b3Igbm90aWZpY2F0aW9uIGFib3V0IGNoYW5nZXMgdG8gYW4gSW1hZ2VTb3VyY2UsIGluY2x1ZGlu
ZyBkZWNvZGluZy4KK2NsYXNzIEltYWdlU291cmNlT2JzZXJ2ZXIgeworcHVibGljOgorICAgIHZp
cnR1YWwgdm9pZCBkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6ZV90LCBOYXRpdmVJbWFnZVB0cikg
PSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+SW1hZ2VTb3VyY2VPYnNlcnZlcigpIHsg
fQorfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDky
ODkxZjJlZGNjNDRjMjZkOTQyYzAwNzgzN2M0ODdkNGNmNjI3YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2Uu
Y3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3
IEFscCBUb2tlciA8YWxwLnRva2VyQGNvbGxhYm9yYS5jby51az4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFu
eSAxMDAgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTeW5jaHJv
bm91c0ltYWdlU291cmNlLmgiCisKKyNpbmNsdWRlICJJbWFnZVNvdXJjZU9ic2VydmVyLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsIDog
cHVibGljIEltYWdlU291cmNlT2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElt
YWdlU291cmNlT2JzZXJ2ZXJJbXBsKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBJbWFnZVNvdXJjZU9ic2VydmVySW1wbCgpCisgICAgICAgIDogbV9uYXRpdmVJ
bWFnZVB0cigpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIH5JbWFnZVNvdXJjZU9ic2VydmVySW1w
bCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZERlY29kZUZyYW1lQXRJbmRleChzaXplX3Qs
IE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlUHRyKSBPVkVSUklERQorICAgIHsKKyAgICAgICAg
bV9uYXRpdmVJbWFnZVB0ciA9IG5hdGl2ZUltYWdlUHRyOworICAgIH0KKworICAgIE5hdGl2ZUlt
YWdlUHRyIG1fbmF0aXZlSW1hZ2VQdHI7Cit9OworCitTeW5jaHJvbm91c0ltYWdlU291cmNlOjpT
eW5jaHJvbm91c0ltYWdlU291cmNlKEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiBhbHBoYU9wdGlv
biwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQ
cm9maWxlT3B0aW9uKQorICAgIDogbV9vYnNlcnZlcihhZG9wdFB0cihuZXcgSW1hZ2VTb3VyY2VP
YnNlcnZlckltcGwpKQorICAgICwgbV9pbWFnZVNvdXJjZShtX29ic2VydmVyLmdldCgpLCBhbHBo
YU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCit7Cit9CisKK1N5bmNocm9ub3Vz
SW1hZ2VTb3VyY2U6On5TeW5jaHJvbm91c0ltYWdlU291cmNlKCkKK3sKKyAgICBtX2ltYWdlU291
cmNlLmNsZWFyKHRydWUpOworfQorCit2b2lkIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OnNldERh
dGEoU2hhcmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKK3sKKyAgICBtX2lt
YWdlU291cmNlLnNldERhdGEoZGF0YSwgYWxsRGF0YVJlY2VpdmVkKTsKK30KKworU3RyaW5nIFN5
bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9pbWFnZVNvdXJjZS5maWxlbmFtZUV4dGVuc2lvbigpOworfQorCitib29sIFN5bmNo
cm9ub3VzSW1hZ2VTb3VyY2U6OmlzU2l6ZUF2YWlsYWJsZSgpCit7CisgICAgcmV0dXJuIG1faW1h
Z2VTb3VyY2UuaXNTaXplQXZhaWxhYmxlKCk7Cit9CisKK0ludFNpemUgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZTo6c2l6ZShSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdE9y
aWVudGF0aW9uKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdlU291cmNlLnNpemUoc2hvdWxk
UmVzcGVjdE9yaWVudGF0aW9uKTsKK30KKworSW50U2l6ZSBTeW5jaHJvbm91c0ltYWdlU291cmNl
OjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCBpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbWFn
ZVNvdXJjZS5mcmFtZVNpemVBdEluZGV4KGluZGV4LCBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24p
OworfQorCitzaXplX3QgU3luY2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVDb3VudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1faW1hZ2VTb3VyY2UuZnJhbWVDb3VudCgpOworfQorCitOYXRpdmVJ
bWFnZVB0ciBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90
IGluZGV4KQoreworICAgIG1faW1hZ2VTb3VyY2UucmVxdWVzdEZyYW1lQXRJbmRleChpbmRleCk7
CisgICAgcmV0dXJuIG1fb2JzZXJ2ZXItPm1fbmF0aXZlSW1hZ2VQdHI7Cit9CisKK2Jvb2wgU3lu
Y2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQor
eworICAgIHJldHVybiBtX2ltYWdlU291cmNlLmZyYW1lSGFzQWxwaGFBdEluZGV4KGluZGV4KTsK
K30KKworYm9vbCBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4
KHNpemVfdCBpbmRleCkKK3sKKyAgICByZXR1cm4gbV9pbWFnZVNvdXJjZS5mcmFtZUlzQ29tcGxl
dGVBdEluZGV4KGluZGV4KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4
MjIxNjNiOTNjMjQ4NGNiMTMxOWM3YWI2NDA2YzYzZDlkNDcxYjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdlU291cmNl
LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEy
IENvbXBhbnkgMTAwIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBTeW5jaHJvbm91c0ltYWdlU291cmNl
X2gKKyNkZWZpbmUgU3luY2hyb25vdXNJbWFnZVNvdXJjZV9oCisKKyNpbmNsdWRlICJJbWFnZVNv
dXJjZS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbWFnZVNvdXJjZU9ic2VydmVySW1wbDsKKwor
Y2xhc3MgU3luY2hyb25vdXNJbWFnZVNvdXJjZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
U3luY2hyb25vdXNJbWFnZVNvdXJjZSk7CitwdWJsaWM6CisgICAgU3luY2hyb25vdXNJbWFnZVNv
dXJjZShJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gPSBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0
aXBsaWVkLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gPSBJbWFnZVNv
dXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKKyAgICB+U3luY2hyb25vdXNJbWFn
ZVNvdXJjZSgpOworCisgICAgdm9pZCBzZXREYXRhKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpOworICAgIFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0Owor
CisgICAgYm9vbCBpc1NpemVBdmFpbGFibGUoKTsKKyAgICBJbnRTaXplIHNpemUoUmVzcGVjdElt
YWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgY29uc3Q7
CisgICAgSW50U2l6ZSBmcmFtZVNpemVBdEluZGV4KHNpemVfdCwgUmVzcGVjdEltYWdlT3JpZW50
YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgY29uc3Q7CisKKyAgICBz
aXplX3QgZnJhbWVDb3VudCgpIGNvbnN0OworCisgICAgTmF0aXZlSW1hZ2VQdHIgY3JlYXRlRnJh
bWVBdEluZGV4KHNpemVfdCk7CisKKyAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVf
dCk7CisgICAgYm9vbCBmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCk7CisKK3ByaXZhdGU6
CisgICAgT3duUHRyPEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsPiBtX29ic2VydmVyOworICAgIElt
YWdlU291cmNlIG1faW1hZ2VTb3VyY2U7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNh
aXJvLmNwcAppbmRleCA0NTg1MGE4MDNhYTRkMDBmYTY3MTA0Mjg3YWI3ZDUzOTk4M2M2OGM2Li5j
MTE1YTllNTdjYzZiMGIzYjZlNzFhZTdhZGJkZmE4YzJlYzY3NzMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNh
aXJvLmNwcApAQCAtNDIsNiArNDIsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcEltYWdlPiBCaXRtYXBJ
bWFnZTo6Y3JlYXRlKGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSkKIAogQml0bWFwSW1hZ2U6OkJp
dG1hcEltYWdlKE5hdGl2ZUltYWdlQ2Fpcm8qIG5hdGl2ZUltYWdlLCBJbWFnZU9ic2VydmVyKiBv
YnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3VyY2UodGhpcykKICAg
ICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2ZyYW1lcygwKQogICAgICwgbV9mcmFtZVRp
bWVyKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCmluZGV4IDk4MjJkNGUyNGJj
Yjk4ZDBhMDVhNDEwZTRhYjYwYTU5MjViMDAzODMuLmMyNjMyY2Q4ZDVhNGRiMTcxMGNjOTZmODJi
MTJkN2U3ODNkY2M1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCkBAIC0z
MywxMiArMzMsMTIgQEAKICNpbmNsdWRlICJFeHRlbnNpb25zM0RPcGVuR0wuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1
ZGUgIkltYWdlU291cmNlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRl
ICJPcGVuR0xTaGltcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dENhaXJvLmgiCiAjaW5j
bHVkZSAiUmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJTaGFkZXJMYW5nLmgiCisjaW5jbHVkZSAi
U3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8
d3RmL05vdEZvdW5kLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTU4LDcgKzE1OCw3
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWFnZSogaW1hZ2UsIHVu
c2lnbmVkIGludCBmb3JtYXQsIHVuc2lnbmVkCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIC8vIFdlIG5lZWQgdGhpcyB0byBzdGF5IGluIHNjb3BlIGJlY2F1c2Ug
dGhlIG5hdGl2ZSBpbWFnZSBpcyBqdXN0IGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBkYXRhLgotICAg
IEltYWdlU291cmNlIGRlY29kZXIocHJlbXVsdGlwbHlBbHBoYSA/IEltYWdlU291cmNlOjpBbHBo
YVByZW11bHRpcGxpZWQgOiBJbWFnZVNvdXJjZTo6QWxwaGFOb3RQcmVtdWx0aXBsaWVkLAorICAg
IFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UgZGVjb2RlcihwcmVtdWx0aXBseUFscGhhID8gSW1hZ2VT
b3VyY2U6OkFscGhhUHJlbXVsdGlwbGllZCA6IEltYWdlU291cmNlOjpBbHBoYU5vdFByZW11bHRp
cGxpZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmls
ZSA/IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUlnbm9yZWQgOiBJbWFnZVNvdXJj
ZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKICAgICBBbHBoYU9wIGFscGhhT3AgPSBB
bHBoYURvTm90aGluZzsKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBpbWFnZVN1cmZhY2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dDNEQ0cuY3BwCmluZGV4IGFjMDBjNDNkZTBhYTRkYjExN2FlNjEyNGI1ODQ2
MzgxYjQ5NzRmZTYuLmM5NjY5YjM0OGY5MjM1OTgwNWZiODUyMzYyNTQ4MGQ1MDhjYzVkYTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dDNEQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dDNEQ0cuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQml0bWFw
SW1hZ2UuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2luY2x1ZGUgIkltYWdl
LmgiCisjaW5jbHVkZSAiU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIgogCiAjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHQml0bWFwQ29udGV4dC5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0Nv
bnRleHQuaD4KQEAgLTEwMiw3ICsxMDMsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJ
bWFnZURhdGEoSW1hZ2UqIGltYWdlLAogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBkZWNvZGVk
SW1hZ2U7CiAgICAgYm9vbCBoYXNBbHBoYSA9IGltYWdlLT5pc0JpdG1hcEltYWdlKCkgPyBpbWFn
ZS0+Y3VycmVudEZyYW1lSGFzQWxwaGEoKSA6IHRydWU7CiAgICAgaWYgKChpZ25vcmVHYW1tYUFu
ZENvbG9yUHJvZmlsZSB8fCAoaGFzQWxwaGEgJiYgIXByZW11bHRpcGx5QWxwaGEpKSAmJiBpbWFn
ZS0+ZGF0YSgpKSB7Ci0gICAgICAgIEltYWdlU291cmNlIGRlY29kZXIoSW1hZ2VTb3VyY2U6OkFs
cGhhTm90UHJlbXVsdGlwbGllZCwKKyAgICAgICAgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBkZWNv
ZGVyKEltYWdlU291cmNlOjpBbHBoYU5vdFByZW11bHRpcGxpZWQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBJbWFnZVNvdXJjZTo6R2Ft
bWFBbmRDb2xvclByb2ZpbGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9m
aWxlQXBwbGllZCk7CiAgICAgICAgIGRlY29kZXIuc2V0RGF0YShpbWFnZS0+ZGF0YSgpLCB0cnVl
KTsKICAgICAgICAgaWYgKCFkZWNvZGVyLmZyYW1lQ291bnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKaW5kZXggZjUzMjAzN2Q1NjE0NDg0
YTA0OTdkN2Y5OTdlODVjMjNjZjhjMmJmMi4uYzQzMGM0ZDBiOWI2Mjc0ZjQ3YzgyNGEzZTU3MTA0
MWRhMGRkYTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VDRy5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wg
Y2xlYXJNZXRhZGF0YSkKIAogQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKENHSW1hZ2VSZWYgY2dJ
bWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZlcikKKyAg
ICAsIG1fc291cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgwKQogICAgICwgbV9mcmFt
ZXMoMCkKICAgICAsIG1fZnJhbWVUaW1lcigwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcAppbmRleCA3Y2YwMjk2OGVkYzZk
NmE4MGY1ZjExOWY3ZTJjNWFiZDMwM2Q0YzdlLi41NjZmNGQ5Y2QxNWFlZTUzM2EwMjc5YzM0MmYy
YTg2YTMyMjFiNWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZVNvdXJjZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIklt
YWdlU291cmNlQ0cuaCIKIAogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRl
ICJJbWFnZVNvdXJjZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRl
ICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgpAQCAtNzAsOCArNzEs
OSBAQCB2b2lkIHNoYXJlZEJ1ZmZlclJlbGVhc2Uodm9pZCogaW5mbykKIH0KICNlbmRpZgogCi1J
bWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0
aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24pCitJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoSW1hZ2VTb3VyY2VPYnNl
cnZlciogb2JzZXJ2ZXIsIEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgSW1h
Z2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxl
T3B0aW9uKQogICAgIDogbV9kZWNvZGVyKDApCisgICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQog
ICAgIC8vIEZJWE1FOiBtX3ByZW11bHRpcGx5QWxwaGEgaXMgaWdub3JlZCBpbiBjZyBhdCB0aGUg
bW9tZW50LgogICAgICwgbV9hbHBoYU9wdGlvbihhbHBoYU9wdGlvbikKICAgICAsIG1fZ2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24oZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCkBAIC0yOTks
NiArMzAxLDEyIEBAIHNpemVfdCBJbWFnZVNvdXJjZTo6ZnJhbWVDb3VudCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fZGVjb2RlciA/IENHSW1hZ2VTb3VyY2VHZXRDb3VudChtX2RlY29kZXIpIDogMDsK
IH0KIAordm9pZCBJbWFnZVNvdXJjZTo6cmVxdWVzdEZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgs
IGJvb2wpCit7CisgICAgQ0dJbWFnZVJlZiBpbWFnZVJlZiA9IGNyZWF0ZUZyYW1lQXRJbmRleChp
bmRleCk7CisgICAgbV9vYnNlcnZlci0+ZGlkRGVjb2RlRnJhbWVBdEluZGV4KGluZGV4LCBpbWFn
ZVJlZik7Cit9CisKIENHSW1hZ2VSZWYgSW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1lQXRJbmRleChz
aXplX3QgaW5kZXgpCiB7CiAgICAgaWYgKCFpbml0aWFsaXplZCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAKaW5k
ZXggOTUxMDg4MmNjODU0NDA2NTRhOWRlMGJhMThkZDdmNGExOWYyMGYwOS4uZWI4MDY2YzQ3NDAw
M2VjYTgxZjBlMTcyZjdhZmRhNDlkNjA3NGZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCkBAIC01Miw2ICs1
Miw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAKIEJpdG1h
cEltYWdlOjpCaXRtYXBJbWFnZShUaWxlZEltYWdlT3BlblZHKiB0aWxlZEltYWdlLCBJbWFnZU9i
c2VydmVyKiBvYnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3VyY2Uo
dGhpcykKICAgICAsIG1fc2l6ZSh0aWxlZEltYWdlLT5zaXplKCkpCiAgICAgLCBtX2N1cnJlbnRG
cmFtZSgwKQogICAgICwgbV9mcmFtZXMoMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAKaW5kZXggNjhhNTQ5YjkwYjI1OGU2Yjg5ZDU0YjY5OWU0
MGQ1MzMzYmY4YzU2ZS4uN2QwNDdiNDliMTQ4ZDYyYjUyZjdjYmRjMGU3MzMyYjMzOWY5YmVjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAK
QEAgLTIwMSw2ICsyMDEsNyBAQCB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0CiAKIEJpdG1hcEltYWdl
OjpCaXRtYXBJbWFnZShRSW1hZ2UqIGltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikKICAg
ICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3VyY2UodGhpcykKICAgICAsIG1fY3VycmVu
dEZyYW1lKDApCiAgICAgLCBtX2ZyYW1lcygwKQogICAgICwgbV9mcmFtZVRpbWVyKDApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29u
dGV4dDNEU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dy
YXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKaW5kZXggMTdhZDgzZDhmODM3NWZlMGM5MzE1OGM2NDVi
MGY1MjBlMTUxNzJlOC4uNDcyN2YxNWU3Mzg1NjgyOTE3NWNkNzEzOWQwOTY2MzRjZWYyYmZmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGlj
c0NvbnRleHQzRFNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcApAQCAtMzIsOSArMzIsOSBAQAogCiAjaW5j
bHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIkltYWdl
U291cmNlLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiU2tDb2xv
clByaXYuaCIKKyNpbmNsdWRlICJTeW5jaHJvbm91c0ltYWdlU291cmNlLmgiCiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTU2LDggKzU2
LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwK
ICAgICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBBbHBoYURvTm90aGluZzsKICAgICBib29sIGhh
c0FscGhhID0gc2tpYUltYWdlID8gIXNraWFJbWFnZS0+Yml0bWFwKCkuaXNPcGFxdWUoKSA6IHRy
dWU7CiAgICAgaWYgKCghc2tpYUltYWdlIHx8IGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlIHx8
IChoYXNBbHBoYSAmJiAhcHJlbXVsdGlwbHlBbHBoYSkpICYmIGltYWdlLT5kYXRhKCkpIHsKLSAg
ICAgICAgSW1hZ2VTb3VyY2UgZGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFOb3RQcmVtdWx0aXBs
aWVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9m
aWxlID8gSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlSWdub3JlZCA6IEltYWdlU291
cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpOworICAgICAgICBTeW5jaHJvbm91c0lt
YWdlU291cmNlIGRlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwgaWdu
b3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2Zp
bGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAg
ICAgICAgIC8vIEF0dGVtcHQgdG8gZ2V0IHJhdyB1bnByZW11bHRpcGxpZWQgaW1hZ2UgZGF0YSAK
ICAgICAgICAgZGVjb2Rlci5zZXREYXRhKGltYWdlLT5kYXRhKCksIHRydWUpOwogICAgICAgICBp
ZiAoIWRlY29kZXIuZnJhbWVDb3VudCgpIHx8ICFkZWNvZGVyLmZyYW1lSXNDb21wbGV0ZUF0SW5k
ZXgoMCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9J
bWFnZVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3gu
Y3BwCmluZGV4IGQ3ZDBhMGYwZGRhNzdlMzQzODYwNDU3ZTRlYTI4YzI4MDk5NzcxY2YuLjgzNTY0
MThlZjg4NGI0NWJmZDhhYWVlOGZkMzZjNDMwNjI4NDFkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCkBAIC04Miw2ICs4Miw3IEBAIFBh
c3NSZWZQdHI8SW1hZ2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyICpu
YW1lKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoY29uc3Qgd3hCaXRtYXAmIGJpdG1hcCkK
ICAgICA6IEltYWdlKDApCisgICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJyZW50RnJh
bWUoMCkKICAgICAsIG1fZnJhbWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCmluZGV4IGUxYTkyNjA1MDYyODFk
ODlhMjhmYTBjZDI0MDMzZDAzOTcxODA1YzcuLmU0YTcxNDIwYWJmMjJjYTAzYTg0NTIzNTE2MjVl
ZGFkZGZiNjk1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklt
YWdlU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lh
LmNwcApAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAi
SW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdl
U2tpYS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2UuaCIKIAogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRhdGEuaCIKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJTaXplLmgiCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBXZWJJbWFnZSBXZWJJbWFnZTo6ZnJvbURhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29u
c3QgV2ViU2l6ZSYgZGVzaXJlZFNpemUpCiB7Ci0gICAgSW1hZ2VTb3VyY2Ugc291cmNlOworICAg
IFN5bmNocm9ub3VzSW1hZ2VTb3VyY2Ugc291cmNlOwogICAgIHNvdXJjZS5zZXREYXRhKFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPihkYXRhKS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFzb3VyY2Uu
aXNTaXplQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBXZWJJbWFnZSgpOwpAQCAtOTEsNyAr
OTEsNyBAQCBXZWJWZWN0b3I8V2ViSW1hZ2U+IFdlYkltYWdlOjpmcmFtZXNGcm9tRGF0YShjb25z
dCBXZWJEYXRhJiBkYXRhKQogICAgIC8vIFRoaXMgaXMgdG8gcHJvdGVjdCBmcm9tIG1hbGljaW91
cyBpbWFnZXMuIEl0IHNob3VsZCBiZSBiaWcgZW5vdWdoIHRoYXQgaXQncyBuZXZlciBoaXQgaW4g
cHJhY2ljZS4KICAgICBjb25zdCBzaXplX3QgbWF4RnJhbWVDb3VudCA9IDg7CiAKLSAgICBJbWFn
ZVNvdXJjZSBzb3VyY2U7CisgICAgU3luY2hyb25vdXNJbWFnZVNvdXJjZSBzb3VyY2U7CiAgICAg
c291cmNlLnNldERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KGRhdGEpLmdldCgpLCB0cnVl
KTsKICAgICBpZiAoIXNvdXJjZS5pc1NpemVBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIFdl
YlZlY3RvcjxXZWJJbWFnZT4oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158695</attachid>
            <date>2012-08-15 19:46:37 -0700</date>
            <delta_ts>2014-02-05 10:49:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93467-20120816114541.patch</filename>
            <type>text/plain</type>
            <size>44060</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY2MTc4MmM0ODQ5ODNh
MmZjYTI1NzdjZTgzNWVjODkzYzM5MGIzMC4uN2IxMWQwZDA5NzkzM2NiOGU5Mzg4OWM2MTRmYWM3
Zjc2MmI4YmFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDEyLTA4LTE1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENoYW5nZSBJ
bWFnZVNvdXJjZSB0byBiZSBhc3luY2hyb25vdXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEludGVybmFsIHJldmlldyBieSBLd2FuZyBZdWwgU2VvLgor
CisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBBUEkgb2YgSW1hZ2VTb3VyY2Ugc3VwcG9y
dCBhc3luY2hyb25vdXMgaW1hZ2UgZGVjb2RpbmcuIFRoaXMKKyAgICAgICAgaXMgYSBwcmVwYXJh
dGlvbiBmb3IgYXN5bmNocm9ub3VzIGltYWdlIGRlY29kaW5nLiBBZnRlciBJbWFnZVNvdXJjZQor
ICAgICAgICBjb21wbGV0ZXMgaW1hZ2UgZGVjb2RpbmcsIEltYWdlU291cmNlIHNlbmRzIE5hdGl2
ZUltYWdlUHRyIHRvIEJpdG1hcEltYWdlIHZpYQorICAgICAgICBJbWFnZVNvdXJjZU9ic2VydmVy
OjpkaWREZWNvZGVGcmFtZUF0SW5kZXgoKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZXMg
Y3JlYXRlRnJhbWVBdEluZGV4IHRvIHJlcXVlc3RGcmFtZUF0SW5kZXgsIHRvIGltcGx5CisgICAg
ICAgIHRoaXMgbWV0aG9kIGNhbiBiZSBhc3luY2hyb25vdXMuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbnRyb2R1Y2VkIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UsIHdoaWNoIGRlY29kZXMgaW1hZ2Ug
c3luY2hyb25vdXNseS4KKyAgICAgICAgVGhlIG1haW4gcmVhc29uIHRvIGFkZCB0aGlzIGNsYXNz
IGlzIHRvIHByZXZlbnQgY2xpZW50cyBmcm9tIG1pc3VzaW5nCisgICAgICAgIEltYWdlU291cmNl
LiBJbWFnZVNvdXJjZSB3aWxsIGJlIGFibGUgdG8gcGVyZm9ybSBzeW5jIGFuZCBhc3luYyBpbWFn
ZSBkZWNvZGluZywKKyAgICAgICAgc28gaXQgd2lsbCBiZSBoYXJkIHRvIHVzZSBJbWFnZVNvdXJj
ZSBjb3JyZWN0bHkuIFNvLCBhZnRlciB0aGlzIHBhdGNoLCBvbmx5CisgICAgICAgIEJpdG1hcElt
YWdlIGFuZCBTeW5jaHJvbm91c0ltYWdlU291cmNlIGNhbiBjcmVhdGUgYW5kIHVzZSBJbWFnZVNv
dXJjZSwgYW5kIG90aGVyCisgICAgICAgIGNsaWVudHMgd2hpY2ggbmVlZCB0byB1c2UgSW1hZ2VT
b3VyY2UgbXVzdCB1c2UgU3luY2hyb25vdXNJbWFnZVNvdXJjZS4KKyAgICAgICAgQ3VycmVudGx5
LCBHcmFwaGljc0NvbnRleHQzRCBhbmQgV2ViSW1hZ2VTa2lhIHVzZSBTeW5jaHJvbm91c0ltYWdl
U291cmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGV4aXN0aW5nIGltYWdlIHRlc3RzIGNv
dmVyIHRoZXNlIGNhc2VzLgorICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9pbWFnZXMvKgorICAg
ICAgICAgICAgICBmYXN0L2ltYWdlcy8qCisgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxJbWFn
ZUVsZW1lbnQvKgorICAgICAgICAgICAgICBodHRwL3Rlc3RzL2ltYWdlcy8qCisgICAgICAgICAg
ICAgIGNzczMvaW1hZ2VzLyoKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y2FjaGVGcmFtZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkaWREZWNvZGVGcmFtZUF0SW5kZXgp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgIChC
aXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlU291cmNlOjpyZXF1ZXN0RnJhbWVBdEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKEltYWdlU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChJbWFnZVNvdXJjZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlU291cmNlT2JzZXJ2ZXI6On5JbWFnZVNvdXJjZU9ic2VydmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdlU291cmNlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlU291cmNlT2JzZXJ2ZXJJbXBsOjpJbWFnZVNvdXJjZU9ic2VydmVySW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZU9ic2VydmVySW1wbDo6fkltYWdlU291
cmNlT2JzZXJ2ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2U6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25v
dXNJbWFnZVNvdXJjZTo6flN5bmNocm9ub3VzSW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6c2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
eW5jaHJvbm91c0ltYWdlU291cmNlOjpmaWxlbmFtZUV4dGVuc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpTeW5jaHJvbm91c0ltYWdlU291cmNlOjppc1NpemVBdmFpbGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6c2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTeW5jaHJvbm91c0ltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1lQ291bnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3luY2hyb25vdXNJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4
KToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZyYW1lSXNDb21w
bGV0ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1h
Z2VTb3VyY2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN5bmNocm9u
b3VzSW1hZ2VTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1h
cEltYWdlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcElt
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQz
RENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFn
ZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNE
Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VT
b3VyY2U6OkltYWdlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpyZXF1
ZXN0RnJhbWVBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0lt
YWdlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisKIDIwMTItMDgtMDkgIEh1YW5nIERv
bmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmVuYW1lIHR3byBt
ZXRob2RzIG9mIEJpdG1hcEltYWdlIGluIG9yZGVyIHRvIGNsYXJpZnkgdGhlIGludGVudGlvbjog
ZnJhbWVEdXJhdGlvbkF0SW5kZXgoKSBhbmQgZnJhbWVJc0NvbXBsZXRlQXRJbmRleCgpLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzODJhZTFjNDE0OTExYWIyN2JlZmUxZjRkMjg0Mjcw
YWFlMzYxMDQwLi5lYmNjMzZmNjJiZDViNjA2N2E4N2EwZTIxNWIzNjlmMjAyMThkNTZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA4LTE1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENoYW5nZSBJ
bWFnZVNvdXJjZSB0byBiZSBhc3luY2hyb25vdXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlZCBTeW5jaHJvbm91c0lt
YWdlU291cmNlLCBhbmQgYWxsIGNsaWVudHMgd2hpY2ggdXNlZAorICAgICAgICBJbWFnZVNvdXJj
ZSBtdXN0IHVzZSBTeW5jaHJvbm91c0ltYWdlU291cmNlIGluc3RlYWQgb2YgSW1hZ2VTb3VyY2Uu
CisKKyAgICAgICAgKiBzcmMvV2ViSW1hZ2VTa2lhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW1hZ2U6OmZyb21EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW1hZ2U6OmZyYW1lc0Zyb21E
YXRhKToKKwogMjAxMi0wOC0xNSAgQnJ1bm8gZGUgT2xpdmVpcmEgQWJpbmFkZXIgIDxicnVuby5h
YmluYWRlckBiYXN5c2tvbS5jb20+CiAKICAgICAgICAgW2NzczMtdGV4dF0gQWRkIENTUzMgVGV4
dCBkZWNvcmF0aW9uIGNvbXBpbGUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggODlmZjAzNWY4YTU3OGZlYWIzYjRiNmY0MjZmMWExNjExZDE5NGQ3NS4uZDdlZmU3ZTMwNDYz
MDE4NTg0YmFhNDdmMDdkNGMzMDk0MmM0Nzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC00MzQzLDYgKzQzNDMsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ludFBvaW50SGFzaC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0LmNwcCBcCkBAIC00Mzg1LDYgKzQzODYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRl
eHRJdGVyYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TVkdHbHlw
aC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NWR0dseXBoLmggXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2Uu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJvbm91c0ltYWdl
U291cmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSZW5kZXJp
bmdNb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggN2Q0MzkyZDBlZDM4MTlhMDk3MzZlMzFkZjYxOTg0ZmUwYzhmMzU5ZS4uMTQyNTg2
ZTVkMmVkNDQ2MTZhZjg4YjNiM2MyODExMjNkZDZmMzI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05Njks
NiArOTY5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU1ZHR2x5cGgu
Y3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAgXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1N0cmluZ1RydW5jYXRvci5jcHAgXAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9xdC9HcmFwaGljc1N1cmZhY2VRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uY3BwIFwKQEAgLTIwODQsNiArMjA4NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50
YXRpb24uaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBcCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2VPYnNlcnZlci5oIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9JbnRQb2ludC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludEhhc2guaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oIFwKQEAgLTIxMDMsNiArMjEwNSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1NlZ21lbnRlZEZvbnREYXRhLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU3luY2hyb25v
dXNJbWFnZVNvdXJjZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGlj
c1N1cmZhY2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDNmMmVmNTJlNjg0YmJlMTNkN2Y2M2E0ZTFhZmY3
ODMxMzhkNmQ2NTYuLmU1MjQ0OGI0NTYwZTc5MmYwYWI5MWI3MzAwMDU2OTM0ZjI4ZjJiNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTM5MSw2ICszOTEsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VPcmllbnRhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZU9ic2VydmVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50SGFzaC5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgnLApAQCAtNDA2LDYgKzQwNyw3IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1NWR0dseXBoLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvVGV4dFJlbmRlcmluZ01vZGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvVGV4dFJ1bi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9UeXBl
c2V0dGluZ0ZlYXR1cmVzLmgnLApAQCAtMzU0NCw2ICszNTQ2LDcgQEAKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9TdHJva2VTdHlsZUFwcGxpZXIuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9y
LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3Vy
Y2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvVGlsZS5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlN2FjYjFhYzA1YTQ2YjE4N2EwNDFl
NzYwOTEyMjNjZDk0ODQ5YTVlLi4yN2VjNjY2YzdmMjY5NDM3YTlhNjNiOWE2MTk3MzkxYmM1ZjI0
NzU0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtMjk1MjYsNiArMjk1MjYsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEltYWdlU291cmNlT2JzZXJ2
ZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEludFBvaW50LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBA
IC0yOTYyNiw2ICsyOTYzMCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcU3luY2hyb25vdXNJbWFnZVNv
dXJjZS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xTeW5jaHJvbm91c0ltYWdlU291cmNlLmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xUZXh0UnVuLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNmY1ZjVm
NzVhMDE2MThiMjc1ZDdhODU2OGZmNTg0MDc0Y2JhOTgxLi5jYjhmZTBiMzFhNjRjZWFjYzkyYTRk
NGU3N2QwZWIwMDYyN2ZiNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODIxLDYgKzQ4MjEsNyBAQAogCQlCMjc1MzU2RjBC
MDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCAq
LzsgfTsKIAkJQjI3NTM1NzAwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU0MjBCMDUzODE0MDAyQ0U2
NEYgLyogSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCMjc1MzU3MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNTQzMEIwNTM4MTQw
MDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUIyNzUzNTcxMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJj
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjc1MzU0MzBCMDUzODE0MDAyQ0U2NEUgLyogSW1hZ2VTb3VyY2VPYnNlcnZlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyNzUzNTcyMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1
NzMwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJl
Y3QuY3BwICovOyB9OwogCQlCMjc1MzU3NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NDYwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNDgzNyw2ICs0ODM4LDggQEAKIAkJQjI3NTM1N0UwQjA1Mzgx
NDAwMkNFNjRGIC8qIEludFNpemVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzU1MTBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZU1hYy5t
bSAqLzsgfTsKIAkJQjI3NTM1N0YwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NTIwQjA1MzgxNDAw
MkNFNjRGIC8qIFBhdGguY3BwICovOyB9OwogCQlCMjc1MzU4MDBCMDUzODE0MDAyQ0U2NEYgLyog
UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3
NTM1NTMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBOTk5NDMyOTBCNDIzMzg4MDBEN0M4MDIgLyogU3lu
Y2hyb25vdXNJbWFnZVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogU3luY2hyb25vdXNJbWFn
ZVNvdXJjZS5jcHAgKi87IH07CisJCUIzNzUzNTcxMEIwNTM4MTQwMDJDRTY0RiAvKiBTeW5jaHJv
bm91c0ltYWdlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMzc1MzU0MzBCMDUzODE0MDAyQ0U2NEYgLyogU3luY2hyb25vdXNJbWFnZVNvdXJj
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIy
NzUzNThFMEIwNTNBNjYwMDJDRTY0RiAvKiBJY29uTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1OEQwQjA1M0E2NjAwMkNFNjRGIC8qIElj
b25NYWMubW0gKi87IH07CiAJCUIyNzdCNDA0MEIyMkYzN0MwMDA0QkVDNiAvKiBHcmFwaGljc0Nv
bnRleHRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjc3QjQwMzBCMjJGMzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tICovOyB9
OwogCQlCMjdCMjgyNTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjdCMjgxRjBDRUYw
QzA3MDBEMzlENTQgLyogSlNTVkdGb250RWxlbWVudC5jcHAgKi87IH07CkBAIC0xMjA1OCw2ICsx
MjA2MSw3IEBACiAJCUIyNzUzNTQxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMjc1MzU0MjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRFIC8qIEltYWdlU291
cmNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291
cmNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NDQwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnRQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU0NTBC
MDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW50UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIy
NzUzNTQ2MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MjA3NCw2ICsxMjA3OCw4IEBACiAJCUIyNzUzNTUxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXpl
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEludFNpemVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNzUzNTUyMEIwNTM4MTQwMDJD
RTY0RiAvKiBQYXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1NTMwQjA1MzgxNDAw
MkNFNjRGIC8qIFBhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhdGgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTk5OTQzMjcwQjQyMzM4NzAwRDdDODAy
IC8qIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCMzc1MzU0MzBCMDUzODE0MDAyQ0U2NEYgLyogU3luY2hyb25vdXNJbWFn
ZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3luY2hyb25vdXNJ
bWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc1MzU4RDBCMDUz
QTY2MDAyQ0U2NEYgLyogSWNvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBJY29uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjc3
QjQwMzBCMjJGMzdDMDAwNEJFQzYgLyogR3JhcGhpY3NDb250ZXh0TWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3QjI4MUYwQ0VGMEMwNzAwRDM5RDU0IC8qIEpT
U1ZHRm9udEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTU1ZHRm9udEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk4
MjIsNiArMTk4MjgsNyBAQAogCQkJCUE4NzQ4RDY2MTJDQzM3NjMwMDFGQkE0MSAvKiBJbWFnZU9y
aWVudGF0aW9uLmggKi8sCiAJCQkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVu
ZGVyaW5nTW9kZS5oICovLAogCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNv
dXJjZS5oICovLAorCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RSAvKiBJbWFnZVNvdXJjZU9i
c2VydmVyLmggKi8sCiAJCQkJQjI3NTM1NDQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Lmgg
Ki8sCiAJCQkJRTQ2MkE0QTAxMTNFNzFCRTAwNEE0MjIwIC8qIEludFBvaW50SGFzaC5oICovLAog
CQkJCUIyNzUzNTQ1MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmNwcCAqLywKQEAgLTE5ODU2
LDYgKzE5ODYzLDggQEAKIAkJCQkwODc1NThDNDEzQjRBNTdEMDBGNDkzMDcgLyogU3Vycm9nYXRl
UGFpckF3YXJlVGV4dEl0ZXJhdG9yLmggKi8sCiAJCQkJMDg3RTBBRjQxMzYwNkQwQjAwRkE0QkE4
IC8qIFNWR0dseXBoLmNwcCAqLywKIAkJCQkwODdFMEFGNTEzNjA2RDBCMDBGQTRCQTggLyogU1ZH
R2x5cGguaCAqLywKKwkJCQlBOTk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogU3luY2hyb25vdXNJ
bWFnZVNvdXJjZS5jcHAgKi8sCisJCQkJQjM3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIFN5bmNo
cm9ub3VzSW1hZ2VTb3VyY2UuaCAqLywKIAkJCQk5MzBGQzY4OTEwNzJCOTI4MDA0NTI5M0UgLyog
VGV4dFJlbmRlcmluZ01vZGUuaCAqLywKIAkJCQkzNzZEQ0NFMDEzQjRGOTY2MDAyRUJFRkMgLyog
VGV4dFJ1bi5jcHAgKi8sCiAJCQkJQTgyNEI0NjQwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4u
aCAqLywKQEAgLTIzNTgzLDYgKzIzNTkyLDcgQEAKIAkJCQkyRDVBNTkzMTE1MjUyNUQwMDAzNkVF
NTEgLyogSW1hZ2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDkyOTFFNEIxMzQx
NzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjI3NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlCMjc1MzU3MTBCMDUzODE0MDAyQ0U2NEUgLyogSW1hZ2VTb3VyY2VPYnNlcnZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNEIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIEltYWdlU291cmNl
Q0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTE4MEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBs
aWNpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4
OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTE4LDYg
KzI1MTI4LDcgQEAKIAkJCQk4NDg1MjI4QjExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FGNjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
Wm9vbUFuZFBhbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJFNEVDOTgwRDAwQzIyQjAwNDMyNjQz
IC8qIFNWR1pvb21FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjM3NTM1NzEwQjA1MzgxNDAw
MkNFNjRGIC8qIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RTYyRDlCMDk4NUY0MTYwMEUxQjVFMyAvKiBTeXN0ZW1UaW1lLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOENGRjA1MTBBMTU0RjA5MDAwQTQyMzQgLyogVGFibGVMYXlvdXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRTNCRUMzMEQyMjJCMUQwMDdFMDZFNCAvKiBUYWdOb2RlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yODIzMiw2ICsyODI0Myw3IEBACiAJCQkJODQ4NTIyOEExMTkwMTczQzAwNkVE
QzdGIC8qIFNWR1ZLZXJuRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0FGNTBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHWm9vbUFuZFBhbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkU0RUM5NzBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9vbUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE5OTk0MzI5MEI0MjMzODgwMEQ3QzgwMiAvKiBTeW5jaHJvbm91c0ltYWdlU291cmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1ODJBMTYzMDk5OTlENkQwMEJFRUI2RCAvKiBTeXN0
ZW1UaW1lTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTNCRUMyMEQyMjJCMUQwMDdFMDZF
NCAvKiBUYWdOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RENTEyNTFGMTJE
MDAzRUYyNjkgLyogVGVsZXBob25lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IGVi
YjhkNzg5MDc0ZDFlY2Y0MDY5MGJmNjIzZTBhN2I5OThjODEwNjYuLmU5NzE3M2UxZGRlODMxYmVk
NzIwMTZlNjk3ODQyZDlkOGE3MWU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RhdGljIGludCBm
cmFtZUJ5dGVzKGNvbnN0IEludFNpemUmIGZyYW1lU2l6ZSkKIAogQml0bWFwSW1hZ2U6OkJpdG1h
cEltYWdlKEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIDogSW1hZ2Uob2JzZXJ2ZXIpCisg
ICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJyZW50RnJhbWUoMCkKICAgICAsIG1fZnJh
bWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKQEAgLTEzNCw3ICsxMzUsMTQgQEAgdm9pZCBC
aXRtYXBJbWFnZTo6Y2FjaGVGcmFtZShzaXplX3QgaW5kZXgpCiAgICAgaWYgKG1fZnJhbWVzLnNp
emUoKSA8IG51bUZyYW1lcykKICAgICAgICAgbV9mcmFtZXMuZ3JvdyhudW1GcmFtZXMpOwogCi0g
ICAgbV9mcmFtZXNbaW5kZXhdLm1fZnJhbWUgPSBtX3NvdXJjZS5jcmVhdGVGcmFtZUF0SW5kZXgo
aW5kZXgpOworICAgIG1fc291cmNlLnJlcXVlc3RGcmFtZUF0SW5kZXgoaW5kZXgpOworfQorCit2
b2lkIEJpdG1hcEltYWdlOjpkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBOYXRp
dmVJbWFnZVB0ciBuYXRpdmVJbWFnZSkKK3sKKyAgICBtX2ZyYW1lc1tpbmRleF0ubV9mcmFtZSA9
IG5hdGl2ZUltYWdlOworCisgICAgc2l6ZV90IG51bUZyYW1lcyA9IGZyYW1lQ291bnQoKTsKICAg
ICBpZiAobnVtRnJhbWVzID09IDEgJiYgbV9mcmFtZXNbaW5kZXhdLm1fZnJhbWUpCiAgICAgICAg
IGNoZWNrRm9yU29saWRDb2xvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA0MmY3ZWE2ZWFkMDEyNzQ0MWQ1ZDVlODJiN2M3YzUz
OTcwOTNiNWEzLi5lODA4NjY2ZTIxOTM4YmQxOTlkOWY4MzJmYjUxMDNhODRjNDg5OGJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRp
b24uaCIKICNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgorI2luY2x1ZGUgIkltYWdlU291cmNlT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC05
OSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAvLyBCaXRtYXBJbWFnZSBDbGFzcwogLy8gPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi1jbGFzcyBCaXRtYXBJ
bWFnZSA6IHB1YmxpYyBJbWFnZSB7CitjbGFzcyBCaXRtYXBJbWFnZSA6IHB1YmxpYyBJbWFnZSwg
cHVibGljIEltYWdlU291cmNlT2JzZXJ2ZXIgewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJ
bWFnZTsKICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJp
ZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwpAQCAtMTc4LDYgKzE3OSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm90U29saWRDb2xvcigpOwogI2VuZGlmCiAKKyAgICAv
LyBJbWFnZVNvdXJjZU9ic2VydmVyCisgICAgdmlydHVhbCB2b2lkIGRpZERlY29kZUZyYW1lQXRJ
bmRleChzaXplX3QsIE5hdGl2ZUltYWdlUHRyKSBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZVNpemUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IGM0MzNkZTQwMTJlOTg4ZGM2ZjkwOTE2OTc4
NzU1MzA1NjcxNTFiNmIuLmY0NmRmNTYxYTVjMmJkY2E1OTAyM2ZhZWRlMjIxYTMwMmM0YzVjYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbWFnZURlY29kZXIuaCIKIAogI2luY2x1
ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbWFnZVNvdXJjZU9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDAsMTEgKzQxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVuc2lnbmVkIEltYWdlU291cmNl
OjpzX21heFBpeGVsc1BlckRlY29kZWRJbWFnZSA9IDEwMjQgKiAxMDI0OwogI2VuZGlmCiAKLUlt
YWdlU291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRp
b24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbikKK0ltYWdlU291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZU9ic2Vy
dmVyKiBvYnNlcnZlciwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFn
ZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pCiAgICAgOiBtX2RlY29kZXIoMCkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCiAg
ICAgLCBtX2FscGhhT3B0aW9uKGFscGhhT3B0aW9uKQogICAgICwgbV9nYW1tYUFuZENvbG9yUHJv
ZmlsZU9wdGlvbihnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKIHsKKyAgICBBU1NFUlQobV9v
YnNlcnZlcik7CiB9CiAKIEltYWdlU291cmNlOjp+SW1hZ2VTb3VyY2UoKQpAQCAtMTM3LDYgKzE0
MCwxMyBAQCBzaXplX3QgSW1hZ2VTb3VyY2U6OmZyYW1lQ291bnQoKSBjb25zdAogICAgIHJldHVy
biBtX2RlY29kZXIgPyBtX2RlY29kZXItPmZyYW1lQ291bnQoKSA6IDA7CiB9CiAKK3ZvaWQgSW1h
Z2VTb3VyY2U6OnJlcXVlc3RGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBib29sKQoreworICAg
IC8vIFRPRE86IEltcGxlbWVudCBhc3luY2hyb25vdXMgZGVjb2RpbmcuCisgICAgTmF0aXZlSW1h
Z2VQdHIgbmF0aXZlSW1hZ2UgPSBjcmVhdGVGcmFtZUF0SW5kZXgoaW5kZXgpOworICAgIG1fb2Jz
ZXJ2ZXItPmRpZERlY29kZUZyYW1lQXRJbmRleChpbmRleCwgbmF0aXZlSW1hZ2UpOworfQorCiBO
YXRpdmVJbWFnZVB0ciBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRl
eCkKIHsKICAgICBpZiAoIW1fZGVjb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IDQwZDc1N2ZhMDlhM2NmNmViZTZiZDA1MjE4MzY3
YzQzZWViNzAyOTYuLjBlOTA5YWJmYzUxMTk5ZDdhMGFhN2QyODdkYjNkNTA2ZGQyZmQ4MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAt
NDIsOSArNDIsMTEgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRkRhdGEqIENGRGF0YVJlZjsK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VPcmllbnRhdGlvbjsKK2NsYXNzIElt
YWdlU291cmNlT2JzZXJ2ZXI7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFNpemU7CiBjbGFz
cyBTaGFyZWRCdWZmZXI7CitjbGFzcyBTeW5jaHJvbm91c0ltYWdlU291cmNlOwogCiAjaWYgVVNF
KENHKQogdHlwZWRlZiBDR0ltYWdlU291cmNlUmVmIE5hdGl2ZUltYWdlU291cmNlUHRyOwpAQCAt
NzMsNiArNzUsOCBAQCBjb25zdCBpbnQgY0FuaW1hdGlvbk5vbmUgPSAtMjsKIAogY2xhc3MgSW1h
Z2VTb3VyY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlU291cmNlKTsKKyAgICBm
cmllbmQgY2xhc3MgQml0bWFwSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIFN5bmNocm9ub3VzSW1h
Z2VTb3VyY2U7CiBwdWJsaWM6CiAgICAgZW51bSBBbHBoYU9wdGlvbiB7CiAgICAgICAgIEFscGhh
UHJlbXVsdGlwbGllZCwKQEAgLTkxLDcgKzk1LDYgQEAgcHVibGljOgogICAgIH07CiAjZW5kaWYK
IAotICAgIEltYWdlU291cmNlKEFscGhhT3B0aW9uIGFscGhhT3B0aW9uID0gQWxwaGFQcmVtdWx0
aXBsaWVkLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9w
dGlvbiA9IEdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCk7CiAgICAgfkltYWdlU291cmNlKCk7
CiAKICAgICAvLyBUZWxscyB0aGUgSW1hZ2VTb3VyY2UgdGhhdCB0aGUgSW1hZ2Ugbm8gbG9uZ2Vy
IGNhcmVzIGFib3V0IGRlY29kZWQgZnJhbWUKQEAgLTEwOCw3ICsxMTEsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gZGVjb2RlZCBmcmFtZXMuCiAgICAgLy8KICAgICAvLyBDYWxsZXJzIHNob3VsZCBub3Qg
Y2FsbCBjbGVhcihmYWxzZSwgbikgYW5kIHN1YnNlcXVlbnRseSBjYWxsCi0gICAgLy8gY3JlYXRl
RnJhbWVBdEluZGV4KG0pIHdpdGggbSA8IG4sIHVubGVzcyB0aGV5IGZpcnN0IGNhbGwgY2xlYXIo
dHJ1ZSkuCisgICAgLy8gcmVxdWVzdEZyYW1lQXRJbmRleChtKSB3aXRoIG0gPCBuLCB1bmxlc3Mg
dGhleSBmaXJzdCBjYWxsIGNsZWFyKHRydWUpLgogICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHN0
YXRlZnVsIEltYWdlU291cmNlcy9kZWNvZGVycyB3aWxsIHdvcmsgcHJvcGVybHkuCiAgICAgLy8K
ICAgICAvLyBUaGUgfGRhdGF8IGFuZCB8YWxsRGF0YVJlY2VpdmVkfCBwYXJhbWV0ZXJzIHNob3Vs
ZCBiZSBzdXBwbGllZCBieSBjYWxsZXJzCkBAIC0xMzcsOSArMTQwLDkgQEAgcHVibGljOgogCiAg
ICAgc2l6ZV90IGZyYW1lQ291bnQoKSBjb25zdDsKIAotICAgIC8vIENhbGxlcnMgc2hvdWxkIG5v
dCBjYWxsIHRoaXMgYWZ0ZXIgY2FsbGluZyBjbGVhcigpIHdpdGggYSBoaWdoZXIgaW5kZXg7Cisg
ICAgLy8gTk9URTogQ2FsbGVycyBzaG91bGQgbm90IGNhbGwgdGhpcyBhZnRlciBjYWxsaW5nIGNs
ZWFyKCkgd2l0aCBhIGhpZ2hlciBpbmRleDsKICAgICAvLyBzZWUgY29tbWVudHMgb24gY2xlYXIo
KSBhYm92ZS4KLSAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90KTsK
KyAgICB2b2lkIHJlcXVlc3RGcmFtZUF0SW5kZXgoc2l6ZV90LCBib29sIHVzZUFzeW5jaHJvbm91
c0RlY29kaW5nSWZQb3NzaWJsZSA9IGZhbHNlKTsKIAogICAgIGZsb2F0IGZyYW1lRHVyYXRpb25B
dEluZGV4KHNpemVfdCk7CiAgICAgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpOyAv
LyBXaGV0aGVyIG9yIG5vdCB0aGUgZnJhbWUgYWN0dWFsbHkgdXNlZCBhbnkgYWxwaGEuCkBAIC0x
NTIsNyArMTU1LDExIEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorICAgIEltYWdlU291
cmNlKEltYWdlU291cmNlT2JzZXJ2ZXIqLCBBbHBoYU9wdGlvbiA9IEFscGhhUHJlbXVsdGlwbGll
ZCwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gPSBHYW1tYUFuZENvbG9yUHJvZmlsZUFwcGxp
ZWQpOworICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QpOworCiAg
ICAgTmF0aXZlSW1hZ2VTb3VyY2VQdHIgbV9kZWNvZGVyOworICAgIEltYWdlU291cmNlT2JzZXJ2
ZXIqIG1fb2JzZXJ2ZXI7CiAgICAgQWxwaGFPcHRpb24gbV9hbHBoYU9wdGlvbjsKICAgICBHYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbiBtX2dhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uOwogI2lm
IEVOQUJMRShJTUFHRV9ERUNPREVSX0RPV05fU0FNUExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZU9ic2VydmVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTUxNTgyNjFlMGZhMmE0MTEwNzRmMzQzMjRhZWU2NTlkN2U2YmZlYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlT2JzZXJ2
ZXIuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkg
MTAwIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbWFnZVNvdXJj
ZU9ic2VydmVyX2gKKyNkZWZpbmUgSW1hZ2VTb3VyY2VPYnNlcnZlcl9oCisKKyNpbmNsdWRlICJO
YXRpdmVJbWFnZVB0ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEludGVyZmFjZSBm
b3Igbm90aWZpY2F0aW9uIGFib3V0IGNoYW5nZXMgdG8gYW4gSW1hZ2VTb3VyY2UsIGluY2x1ZGlu
ZyBkZWNvZGluZy4KK2NsYXNzIEltYWdlU291cmNlT2JzZXJ2ZXIgeworcHVibGljOgorICAgIHZp
cnR1YWwgdm9pZCBkaWREZWNvZGVGcmFtZUF0SW5kZXgoc2l6ZV90LCBOYXRpdmVJbWFnZVB0cikg
PSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+SW1hZ2VTb3VyY2VPYnNlcnZlcigpIHsg
fQorfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU3luY2hyb25vdXNJbWFnZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU2
MDk2MTliYzg2YzJjOGMxNGYzZWE4MWY3NGViNzg4NGQ4YmU0ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2Uu
Y3BwCkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3
IEFscCBUb2tlciA8YWxwLnRva2VyQGNvbGxhYm9yYS5jby51az4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFu
eSAxMDAgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTeW5jaHJv
bm91c0ltYWdlU291cmNlLmgiCisKKyNpbmNsdWRlICJJbWFnZVNvdXJjZU9ic2VydmVyLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsIDog
cHVibGljIEltYWdlU291cmNlT2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElt
YWdlU291cmNlT2JzZXJ2ZXJJbXBsKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBJbWFnZVNvdXJjZU9ic2VydmVySW1wbCgpCisgICAgICAgIDogbV9uYXRpdmVJ
bWFnZVB0cigpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIH5JbWFnZVNvdXJjZU9ic2VydmVySW1w
bCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZERlY29kZUZyYW1lQXRJbmRleChzaXplX3Qs
IE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlUHRyKSBPVkVSUklERQorICAgIHsKKyAgICAgICAg
bV9uYXRpdmVJbWFnZVB0ciA9IG5hdGl2ZUltYWdlUHRyOworICAgIH0KKworICAgIE5hdGl2ZUlt
YWdlUHRyIG1fbmF0aXZlSW1hZ2VQdHI7Cit9OworCitTeW5jaHJvbm91c0ltYWdlU291cmNlOjpT
eW5jaHJvbm91c0ltYWdlU291cmNlKEltYWdlU291cmNlOjpBbHBoYU9wdGlvbiBhbHBoYU9wdGlv
biwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQ
cm9maWxlT3B0aW9uKQorICAgIDogbV9vYnNlcnZlcihhZG9wdFB0cihuZXcgSW1hZ2VTb3VyY2VP
YnNlcnZlckltcGwpKQorICAgICwgbV9pbWFnZVNvdXJjZShtX29ic2VydmVyLmdldCgpLCBhbHBo
YU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCit7Cit9CisKK1N5bmNocm9ub3Vz
SW1hZ2VTb3VyY2U6On5TeW5jaHJvbm91c0ltYWdlU291cmNlKCkKK3sKKyAgICBtX2ltYWdlU291
cmNlLmNsZWFyKHRydWUpOworfQorCit2b2lkIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2U6OnNldERh
dGEoU2hhcmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKK3sKKyAgICBtX2lt
YWdlU291cmNlLnNldERhdGEoZGF0YSwgYWxsRGF0YVJlY2VpdmVkKTsKK30KKworU3RyaW5nIFN5
bmNocm9ub3VzSW1hZ2VTb3VyY2U6OmZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9pbWFnZVNvdXJjZS5maWxlbmFtZUV4dGVuc2lvbigpOworfQorCitib29sIFN5bmNo
cm9ub3VzSW1hZ2VTb3VyY2U6OmlzU2l6ZUF2YWlsYWJsZSgpCit7CisgICAgcmV0dXJuIG1faW1h
Z2VTb3VyY2UuaXNTaXplQXZhaWxhYmxlKCk7Cit9CisKK0ludFNpemUgU3luY2hyb25vdXNJbWFn
ZVNvdXJjZTo6c2l6ZShSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdE9y
aWVudGF0aW9uKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdlU291cmNlLnNpemUoc2hvdWxk
UmVzcGVjdE9yaWVudGF0aW9uKTsKK30KKworSW50U2l6ZSBTeW5jaHJvbm91c0ltYWdlU291cmNl
OjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCBpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbWFn
ZVNvdXJjZS5mcmFtZVNpemVBdEluZGV4KGluZGV4LCBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24p
OworfQorCitzaXplX3QgU3luY2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVDb3VudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1faW1hZ2VTb3VyY2UuZnJhbWVDb3VudCgpOworfQorCitOYXRpdmVJ
bWFnZVB0ciBTeW5jaHJvbm91c0ltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90
IGluZGV4KQoreworICAgIG1faW1hZ2VTb3VyY2UucmVxdWVzdEZyYW1lQXRJbmRleChpbmRleCk7
CisgICAgcmV0dXJuIG1fb2JzZXJ2ZXItPm1fbmF0aXZlSW1hZ2VQdHI7Cit9CisKK2Jvb2wgU3lu
Y2hyb25vdXNJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQor
eworICAgIC8vIENhbGxpbmcgcmVxdWVzdEZyYW1lQXRJbmRleCgpIGlzIG5lZWRlZCBpbiBvcmRl
ciB0byBnZXQgYW4gdXAtdG8tZGF0ZSBhbHBoYSBiZWNhdXNlIEltYWdlU291cmNlOjpmcmFtZUhh
c0FscGhhQXRJbmRleCBkb3NlIG5vdCBkZWNvZGUgdGhlIGdpdmVuIGZyYW1lLgorICAgIG1faW1h
Z2VTb3VyY2UucmVxdWVzdEZyYW1lQXRJbmRleChpbmRleCk7CisgICAgcmV0dXJuIG1faW1hZ2VT
b3VyY2UuZnJhbWVIYXNBbHBoYUF0SW5kZXgoaW5kZXgpOworfQorCitib29sIFN5bmNocm9ub3Vz
SW1hZ2VTb3VyY2U6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90IGluZGV4KQoreworICAg
IHJldHVybiBtX2ltYWdlU291cmNlLmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoaW5kZXgpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TeW5jaHJv
bm91c0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TeW5j
aHJvbm91c0ltYWdlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgyMjE2M2I5M2MyNDg0Y2IxMzE5Yzdh
YjY0MDZjNjNkOWQ0NzFiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1N5bmNocm9ub3VzSW1hZ2VTb3VyY2UuaApAQCAtMCwwICsxLDY4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggVG9yY2gg
TW9iaWxlLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAgSW5jLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2VfaAorI2RlZmluZSBTeW5jaHJvbm91
c0ltYWdlU291cmNlX2gKKworI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCisjaW5jbHVkZSAiSW50
U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEltYWdlU291cmNlT2JzZXJ2ZXJJbXBsOworCitjbGFzcyBTeW5jaHJvbm91c0ltYWdl
U291cmNlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTeW5jaHJvbm91c0ltYWdlU291cmNl
KTsKK3B1YmxpYzoKKyAgICBTeW5jaHJvbm91c0ltYWdlU291cmNlKEltYWdlU291cmNlOjpBbHBo
YU9wdGlvbiA9IEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdlU291cmNlOjpH
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiA9IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJv
ZmlsZUFwcGxpZWQpOworICAgIH5TeW5jaHJvbm91c0ltYWdlU291cmNlKCk7CisKKyAgICB2b2lk
IHNldERhdGEoU2hhcmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCk7CisgICAg
U3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3Q7CisKKyAgICBib29sIGlzU2l6ZUF2YWls
YWJsZSgpOworICAgIEludFNpemUgc2l6ZShSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBE
b05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSBjb25zdDsKKyAgICBJbnRTaXplIGZyYW1lU2l6
ZUF0SW5kZXgoc2l6ZV90LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKSBjb25zdDsKKworICAgIHNpemVfdCBmcmFtZUNvdW50KCkgY29u
c3Q7CisKKyAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90KTsKKwor
ICAgIGJvb2wgZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KTsKKyAgICBib29sIGZyYW1lSXND
b21wbGV0ZUF0SW5kZXgoc2l6ZV90KTsKKworcHJpdmF0ZToKKyAgICBPd25QdHI8SW1hZ2VTb3Vy
Y2VPYnNlcnZlckltcGw+IG1fb2JzZXJ2ZXI7CisgICAgSW1hZ2VTb3VyY2UgbV9pbWFnZVNvdXJj
ZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCmluZGV4IDQ1ODUwYTgw
M2FhNGQwMGZhNjcxMDQyODdhYjdkNTM5OTgzYzY4YzYuLmMxMTVhOWU1N2NjNmIwYjNiNmU3MWFl
N2FkYmRmYThjMmVjNjc3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCkBAIC00Miw2ICs0Miw3
IEBAIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IEJpdG1hcEltYWdlOjpjcmVhdGUoY2Fpcm9fc3Vy
ZmFjZV90KiBzdXJmYWNlKQogCiBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoTmF0aXZlSW1hZ2VD
YWlybyogbmF0aXZlSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIDogSW1hZ2Uo
b2JzZXJ2ZXIpCisgICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJyZW50RnJhbWUoMCkK
ICAgICAsIG1fZnJhbWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fp
cm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0M0RDYWlyby5jcHAKaW5kZXggOTgyMmQ0ZTI0YmNiOThkMGEwNWE0MTBlNGFiNjBhNTky
NWIwMDM4My4uYzI2MzJjZDhkNWE0ZGIxNzEwY2M5NmY4MmIxMmQ3ZTc4M2RjYzU5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTMzLDEyICszMywxMiBAQAogI2luY2x1
ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgog
I2luY2x1ZGUgIlNoYWRlckxhbmcuaCIKKyNpbmNsdWRlICJTeW5jaHJvbm91c0ltYWdlU291cmNl
LmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDx3dGYvTm90Rm91bmQuaD4KICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xNTgsNyArMTU4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwgdW5zaWduZWQgaW50IGZvcm1hdCwgdW5z
aWduZWQKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gV2Ug
bmVlZCB0aGlzIHRvIHN0YXkgaW4gc2NvcGUgYmVjYXVzZSB0aGUgbmF0aXZlIGltYWdlIGlzIGp1
c3QgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGRhdGEuCi0gICAgSW1hZ2VTb3VyY2UgZGVjb2Rlcihw
cmVtdWx0aXBseUFscGhhID8gSW1hZ2VTb3VyY2U6OkFscGhhUHJlbXVsdGlwbGllZCA6IEltYWdl
U291cmNlOjpBbHBoYU5vdFByZW11bHRpcGxpZWQsCisgICAgU3luY2hyb25vdXNJbWFnZVNvdXJj
ZSBkZWNvZGVyKHByZW11bHRpcGx5QWxwaGEgPyBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBs
aWVkIDogSW1hZ2VTb3VyY2U6OkFscGhhTm90UHJlbXVsdGlwbGllZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlID8gSW1hZ2VTb3VyY2U6OkdhbW1h
QW5kQ29sb3JQcm9maWxlSWdub3JlZCA6IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmls
ZUFwcGxpZWQpOwogICAgIEFscGhhT3AgYWxwaGFPcCA9IEFscGhhRG9Ob3RoaW5nOwogICAgIFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGltYWdlU3VyZmFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAK
aW5kZXggYWMwMGM0M2RlMGFhNGRiMTE3YWU2MTI0YjU4NDYzODFiNDk3NGZlNi4uYzk2NjliMzQ4
ZjkyMzU5ODA1ZmI4NTIzNjI1NDgwZDUwOGNjNWRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dENHLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJTeW5jaHJv
bm91c0ltYWdlU291cmNlLmgiCiAKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250
ZXh0Lmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dC5oPgpAQCAtMTAyLDcgKzEw
Myw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWFnZSogaW1hZ2Us
CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGRlY29kZWRJbWFnZTsKICAgICBib29sIGhhc0Fs
cGhhID0gaW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSA/IGltYWdlLT5jdXJyZW50RnJhbWVIYXNBbHBo
YSgpIDogdHJ1ZTsKICAgICBpZiAoKGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlIHx8IChoYXNB
bHBoYSAmJiAhcHJlbXVsdGlwbHlBbHBoYSkpICYmIGltYWdlLT5kYXRhKCkpIHsKLSAgICAgICAg
SW1hZ2VTb3VyY2UgZGVjb2RlcihJbWFnZVNvdXJjZTo6QWxwaGFOb3RQcmVtdWx0aXBsaWVkLAor
ICAgICAgICBTeW5jaHJvbm91c0ltYWdlU291cmNlIGRlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhh
Tm90UHJlbXVsdGlwbGllZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVHYW1t
YUFuZENvbG9yUHJvZmlsZSA/IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUlnbm9y
ZWQgOiBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKICAgICAgICAg
ZGVjb2Rlci5zZXREYXRhKGltYWdlLT5kYXRhKCksIHRydWUpOwogICAgICAgICBpZiAoIWRlY29k
ZXIuZnJhbWVDb3VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUNHLmNwcAppbmRleCBmNTMyMDM3ZDU2MTQ0ODRhMDQ5N2Q3Zjk5N2U4NWMyM2NmOGMy
YmYyLi5jNDMwYzRkMGI5YjYyNzRmNDdjODI0YTNlNTcxMDQxZGEwZGRhMzEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcApAQCAtNzAsNiAr
NzAsNyBAQCBib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKQogCiBCaXRt
YXBJbWFnZTo6Qml0bWFwSW1hZ2UoQ0dJbWFnZVJlZiBjZ0ltYWdlLCBJbWFnZU9ic2VydmVyKiBv
YnNlcnZlcikKICAgICA6IEltYWdlKG9ic2VydmVyKQorICAgICwgbV9zb3VyY2UodGhpcykKICAg
ICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2ZyYW1lcygwKQogICAgICwgbV9mcmFtZVRp
bWVyKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlU291cmNlQ0cuY3BwCmluZGV4IDdjZjAyOTY4ZWRjNmQ2YTgwZjVmMTE5ZjdlMmM1YWJkMzAz
ZDRjN2UuLjU2NmY0ZDljZDE1YWVlNTMzYTAyNzljMzQyZjJhODZhMzIyMWI1ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VTb3VyY2VDRy5oIgogCiAjaW5j
bHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlU291cmNlT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRl
ICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCkBAIC03MCw4ICs3MSw5IEBAIHZvaWQgc2hhcmVkQnVmZmVy
UmVsZWFzZSh2b2lkKiBpbmZvKQogfQogI2VuZGlmCiAKLUltYWdlU291cmNlOjpJbWFnZVNvdXJj
ZShJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1t
YUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKK0ltYWdl
U291cmNlOjpJbWFnZVNvdXJjZShJbWFnZVNvdXJjZU9ic2VydmVyKiBvYnNlcnZlciwgSW1hZ2VT
b3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiAgICAgOiBtX2RlY29k
ZXIoMCkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCiAgICAgLy8gRklYTUU6IG1fcHJlbXVs
dGlwbHlBbHBoYSBpcyBpZ25vcmVkIGluIGNnIGF0IHRoZSBtb21lbnQuCiAgICAgLCBtX2FscGhh
T3B0aW9uKGFscGhhT3B0aW9uKQogICAgICwgbV9nYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbihn
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKQEAgLTI5OSw2ICszMDEsMTIgQEAgc2l6ZV90IElt
YWdlU291cmNlOjpmcmFtZUNvdW50KCkgY29uc3QKICAgICByZXR1cm4gbV9kZWNvZGVyID8gQ0dJ
bWFnZVNvdXJjZUdldENvdW50KG1fZGVjb2RlcikgOiAwOwogfQogCit2b2lkIEltYWdlU291cmNl
OjpyZXF1ZXN0RnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCwgYm9vbCkKK3sKKyAgICBDR0ltYWdl
UmVmIGltYWdlUmVmID0gY3JlYXRlRnJhbWVBdEluZGV4KGluZGV4KTsKKyAgICBtX29ic2VydmVy
LT5kaWREZWNvZGVGcmFtZUF0SW5kZXgoaW5kZXgsIGltYWdlUmVmKTsKK30KKwogQ0dJbWFnZVJl
ZiBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKICAgICBp
ZiAoIWluaXRpYWxpemVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcAppbmRleCA5NTEwODgyY2M4NTQ0MDY1NGE5
ZGUwYmExOGRkN2Y0YTE5ZjIwZjA5Li5lYjgwNjZjNDc0MDAzZWNhODFmMGUxNzJmN2FmZGE0OWQ2
MDc0ZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
dmcvSW1hZ2VPcGVuVkcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW52Zy9JbWFnZU9wZW5WRy5jcHAKQEAgLTUyLDYgKzUyLDcgQEAgYm9vbCBGcmFtZURhdGE6
OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkKIAogQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKFRp
bGVkSW1hZ2VPcGVuVkcqIHRpbGVkSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAg
IDogSW1hZ2Uob2JzZXJ2ZXIpCisgICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9zaXplKHRp
bGVkSW1hZ2UtPnNpemUoKSkKICAgICAsIG1fY3VycmVudEZyYW1lKDApCiAgICAgLCBtX2ZyYW1l
cygxKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1h
Z2VRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNw
cAppbmRleCA2OGE1NDliOTBiMjU4ZTZiODlkNTRiNjk5ZTQwZDUzMzNiZjhjNTZlLi43ZDA0N2I0
OWIxNDhkNjJiNTJmN2NiZGMwZTczMzJiMzM5ZjliZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcApAQCAtMjAxLDYgKzIwMSw3IEBAIHZv
aWQgSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRS
ZWN0JiB0aWxlUmVjdCwgY29uc3QKIAogQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKFFJbWFnZSog
aW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIDogSW1hZ2Uob2JzZXJ2ZXIpCisg
ICAgLCBtX3NvdXJjZSh0aGlzKQogICAgICwgbV9jdXJyZW50RnJhbWUoMCkKICAgICAsIG1fZnJh
bWVzKDApCiAgICAgLCBtX2ZyYW1lVGltZXIoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNw
cAppbmRleCAxN2FkODNkOGY4Mzc1ZmUwYzkzMTU4YzY0NWIwZjUyMGUxNTE3MmU4Li40NzI3ZjE1
ZTczODU2ODI5MTc1Y2Q3MTM5ZDA5NjYzNGNlZjJiZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQz
RFNraWEuY3BwCkBAIC0zMiw5ICszMiw5IEBACiAKICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgog
I2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKICNpbmNsdWRlICJO
YXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRlICJTa0NvbG9yUHJpdi5oIgorI2luY2x1ZGUgIlN5
bmNocm9ub3VzSW1hZ2VTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNTYsOCArNTYsNyBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRJbWFnZURhdGEoSW1hZ2UqIGltYWdlLAogICAgIEFscGhhT3AgbmVlZGVkQWxw
aGFPcCA9IEFscGhhRG9Ob3RoaW5nOwogICAgIGJvb2wgaGFzQWxwaGEgPSBza2lhSW1hZ2UgPyAh
c2tpYUltYWdlLT5iaXRtYXAoKS5pc09wYXF1ZSgpIDogdHJ1ZTsKICAgICBpZiAoKCFza2lhSW1h
Z2UgfHwgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgfHwgKGhhc0FscGhhICYmICFwcmVtdWx0
aXBseUFscGhhKSkgJiYgaW1hZ2UtPmRhdGEoKSkgewotICAgICAgICBJbWFnZVNvdXJjZSBkZWNv
ZGVyKEltYWdlU291cmNlOjpBbHBoYU5vdFByZW11bHRpcGxpZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBJbWFnZVNvdXJjZTo6R2Ft
bWFBbmRDb2xvclByb2ZpbGVJZ25vcmVkIDogSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9m
aWxlQXBwbGllZCk7CisgICAgICAgIFN5bmNocm9ub3VzSW1hZ2VTb3VyY2UgZGVjb2RlcihJbWFn
ZVNvdXJjZTo6QWxwaGFOb3RQcmVtdWx0aXBsaWVkLCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmls
ZSA/IEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUlnbm9yZWQgOiBJbWFnZVNvdXJj
ZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKTsKICAgICAgICAgLy8gQXR0ZW1wdCB0byBn
ZXQgcmF3IHVucHJlbXVsdGlwbGllZCBpbWFnZSBkYXRhIAogICAgICAgICBkZWNvZGVyLnNldERh
dGEoaW1hZ2UtPmRhdGEoKSwgdHJ1ZSk7CiAgICAgICAgIGlmICghZGVjb2Rlci5mcmFtZUNvdW50
KCkgfHwgIWRlY29kZXIuZnJhbWVJc0NvbXBsZXRlQXRJbmRleCgwKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHAKaW5kZXggZDdkMGEwZjBkZGE3
N2UzNDM4NjA0NTdlNGVhMjhjMjgwOTk3NzFjZi4uODM1NjQxOGVmODg0YjQ1YmZkOGFhZWU4ZmQz
NmM0MzA2Mjg0MWRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3gvSW1hZ2VXeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3gvSW1hZ2VXeC5jcHAKQEAgLTgyLDYgKzgyLDcgQEAgUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2U6
OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIgKm5hbWUpCiAKIEJpdG1hcEltYWdlOjpC
aXRtYXBJbWFnZShjb25zdCB3eEJpdG1hcCYgYml0bWFwKQogICAgIDogSW1hZ2UoMCkKKyAgICAs
IG1fc291cmNlKHRoaXMpCiAgICAgLCBtX2N1cnJlbnRGcmFtZSgwKQogICAgICwgbV9mcmFtZXMo
MCkKICAgICAsIG1fZnJhbWVUaW1lcigwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkltYWdlU2tpYS5jcHAKaW5kZXggZTFhOTI2MDUwNjI4MWQ4OWEyOGZhMGNkMjQwMzNkMDM5NzE4
MDVjNy4uZTRhNzE0MjBhYmYyMmNhMDNhODQ1MjM1MTYyNWVkYWRkZmI2OTViMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCkBAIC0zMSw5ICszMSw5IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIklt
YWdlU291cmNlLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiU3luY2hyb25vdXNJbWFnZVNvdXJjZS5oIgogCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViRGF0YS5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlNpemUuaCIK
QEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkltYWdlIFdlYkltYWdl
Ojpmcm9tRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJTaXplJiBkZXNpcmVkU2l6
ZSkKIHsKLSAgICBJbWFnZVNvdXJjZSBzb3VyY2U7CisgICAgU3luY2hyb25vdXNJbWFnZVNvdXJj
ZSBzb3VyY2U7CiAgICAgc291cmNlLnNldERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KGRh
dGEpLmdldCgpLCB0cnVlKTsKICAgICBpZiAoIXNvdXJjZS5pc1NpemVBdmFpbGFibGUoKSkKICAg
ICAgICAgcmV0dXJuIFdlYkltYWdlKCk7CkBAIC05MSw3ICs5MSw3IEBAIFdlYlZlY3RvcjxXZWJJ
bWFnZT4gV2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEpCiAgICAg
Ly8gVGhpcyBpcyB0byBwcm90ZWN0IGZyb20gbWFsaWNpb3VzIGltYWdlcy4gSXQgc2hvdWxkIGJl
IGJpZyBlbm91Z2ggdGhhdCBpdCdzIG5ldmVyIGhpdCBpbiBwcmFjaWNlLgogICAgIGNvbnN0IHNp
emVfdCBtYXhGcmFtZUNvdW50ID0gODsKIAotICAgIEltYWdlU291cmNlIHNvdXJjZTsKKyAgICBT
eW5jaHJvbm91c0ltYWdlU291cmNlIHNvdXJjZTsKICAgICBzb3VyY2Uuc2V0RGF0YShQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSkuZ2V0KCksIHRydWUpOwogICAgIGlmICghc291cmNlLmlz
U2l6ZUF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gV2ViVmVjdG9yPFdlYkltYWdlPigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>