<?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>137893</bug_id>
          
          <creation_ts>2014-10-20 13:50:34 -0700</creation_ts>
          <short_desc>[Mac][WK2] Fix applicationIsSafari() detection</short_desc>
          <delta_ts>2014-10-22 18:50:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aestes</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1042959</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-20 13:50:34 -0700</bug_when>
    <thetext>I noticed when profiling Safari on Mac that we were exercising a code patch we shouldn&apos;t because it is meant for other applications that Safari.

The detection relies on the applicationIsSafari() function in RuntimeApplicationChecks.cpp. This was in some cases returning false on my machine even though I was running Safari so I investigated a bit and noticed that the check relies on the main bundle identifier string and was doing:
static bool isSafari = mainBundleIsEqualTo(&quot;com.apple.Safari&quot;) || mainBundleIsEqualTo(&quot;com.apple.WebProcess&quot;);

The WebProcess detection seems wrong because:
- I believe the WebProcess bundle is called &quot;com.apple.WebKit.WebContent&quot; nowadays, not &quot;com.apple.WebProcess&quot;.
- On my machine, since I am using a development build, the name is actually &quot;com.apple.WebKit.WebContent.Development&quot; so we should probably match this too.

Here is a backtrace that lead to isSafari being false:
0               WebCore::ResourceRequest::useQuickLookResourceCachingQuirks()
1   0x10e76c2aa WebCore::FrameLoader::subresourceCachePolicy() const
2   0x10e47c6f4 WebCore::CachedResourceLoader::determineRevalidationPolicy(WebCore::CachedResource::Type, WebCore::ResourceRequest&amp;, bool, WebCore::CachedResource*, WebCore::CachedResourceRequest::DeferOption) const
3   0x10e47b885 WebCore::CachedResourceLoader::requestResource(WebCore::CachedResource::Type, WebCore::CachedResourceRequest&amp;)
4   0x10e47bb95 WebCore::CachedResourceLoader::requestCSSStyleSheet(WebCore::CachedResourceRequest&amp;)
5   0x10e81761c WebCore::HTMLLinkElement::process()
6   0x10e817abb WebCore::HTMLLinkElement::insertedInto(WebCore::ContainerNode&amp;)
7   0x10e4c5de8 WebCore::ChildNodeInsertionNotifier::notify(WebCore::Node&amp;)
8   0x10e4c1c52 WebCore::ContainerNode::parserAppendChild(WTF::PassRefPtr&lt;WebCore::Node&gt;)
9   0x10e7eafb9 WebCore::insert(WebCore::HTMLConstructionSiteTask&amp;)
10  0x10e7e7266 WebCore::HTMLConstructionSite::executeQueuedTasks()
11  0x10e7ef1e6 WebCore::HTMLDocumentParser::constructTreeFromHTMLToken(WebCore::HTMLToken&amp;)
12  0x10e7eed2f WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)
13  0x10e7ef6ad WebCore::HTMLDocumentParser::append(WTF::PassRefPtr&lt;WTF::StringImpl&gt;)
14  0x10e5b4245 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter&amp;, char const*, unsigned long)
15  0x10e61bcb8 WebCore::DocumentLoader::commitData(char const*, unsigned long)
16  0x10d0e73b7 WebKit::WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int)
17  0x10e61d82f WebCore::DocumentLoader::commitLoad(char const*, int)
18  0x10e61dcad WebCore::DocumentLoader::dataReceived(WebCore::CachedResource*, char const*, int)
19  0x10e474723 WebCore::CachedRawResource::didAddClient(WebCore::CachedResourceClient*)
20  0x10f1bdf6d WebCore::ThreadTimers::sharedTimerFiredInternal()
21  0x10f04b6c4 WebCore::timerFired(__CFRunLoopTimer*, void*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042961</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-20 14:00:02 -0700</bug_when>
    <thetext>On iOS, we seem to use the following check:
static bool isWebProcess = [[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@&quot;com.apple.WebKit.WebContent.Development&quot;] || [[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@&quot;com.apple.WebKit.WebContent&quot;] || [[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@&quot;com.apple.WebProcess&quot;];

Could someone let me know if I need to keep matching &quot;com.apple.WebProcess&quot; as well (in addition to &quot;com.apple.WebKit.WebContent&quot; / &quot;com.apple.WebKit.WebContent.Development&quot;), like iOS does?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042964</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-20 14:12:37 -0700</bug_when>
    <thetext>Note that this means we would spend ~1% of the WebProcess cpu time (when loading apple.com) trying to detect if we should useQuickLookResourceCachingQuirks(), even though that check is supposed to be disabled for Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042969</commentid>
    <comment_count>3</comment_count>
      <attachid>240145</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-20 14:16:09 -0700</bug_when>
    <thetext>Created attachment 240145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042977</commentid>
    <comment_count>4</comment_count>
      <attachid>240145</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-20 14:44:52 -0700</bug_when>
    <thetext>Comment on attachment 240145
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        patch we shouldn&apos;t because it is meant for other applications that

Typo: patch -&gt; path

&gt; Source/WebCore/platform/RuntimeApplicationChecks.cpp:63
&gt;  bool applicationIsSafari()
&gt;  {
&gt; -    // FIXME: For the WebProcess case, ensure that this is Safari&apos;s WebProcess.
&gt; -    static bool isSafari = mainBundleIsEqualTo(&quot;com.apple.Safari&quot;) || mainBundleIsEqualTo(&quot;com.apple.WebProcess&quot;);
&gt; +    // FIXME: For the WebContent case, ensure that this is Safari&apos;s WebContent process.
&gt; +    static bool isSafari = mainBundleIsEqualTo(&quot;com.apple.Safari&quot;) || mainBundleIsEqualTo(&quot;com.apple.WebKit.WebContent&quot;) || mainBundleIsEqualTo(&quot;com.apple.WebKit.WebContent.Development&quot;) || mainBundleIsEqualTo(&quot;com.apple.WebProcess&quot;);
&gt;      return isSafari;
&gt;  }

That FIXME is a really bad problem. This function has lots of false positives. It’s going to return true for tons of uses that are not Safari. Why is this OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042980</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-20 15:01:03 -0700</bug_when>
    <thetext>+aestes@ who I think added this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042981</commentid>
    <comment_count>6</comment_count>
      <attachid>240145</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-20 15:04:08 -0700</bug_when>
    <thetext>Comment on attachment 240145
Patch

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

&gt;&gt; Source/WebCore/platform/RuntimeApplicationChecks.cpp:63
&gt;&gt;  }
&gt; 
&gt; That FIXME is a really bad problem. This function has lots of false positives. It’s going to return true for tons of uses that are not Safari. Why is this OK?

I don&apos;t know :/ Does anyone have an idea how we could differentiate Safari&apos;s WebProcesses from other applications&apos; WebProcesses?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042982</commentid>
    <comment_count>7</comment_count>
      <attachid>240148</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-20 15:05:53 -0700</bug_when>
    <thetext>Created attachment 240148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043004</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-20 16:20:35 -0700</bug_when>
    <thetext>&gt; Does anyone have an idea how we could differentiate Safari&apos;s WebProcesses from other applications&apos; WebProcesses?

We certainly do, in WebKit2.

Having logic based on &quot;is Safari&quot; as low down the stack as ResourceRequest is just crazy. I&apos;d love to find another way to do it. FrameLoader certainly has clients and strategies to call out to WebKit2.

&gt; Could someone let me know if I need to keep matching &quot;com.apple.WebProcess&quot;

com.apple.WebProcess is still supported in WebKit trunk. Whether it&apos;s needed for this particular case, I&apos;m not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043269</commentid>
    <comment_count>9</comment_count>
      <attachid>240148</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-21 13:47:18 -0700</bug_when>
    <thetext>Comment on attachment 240148
Patch

Clearing cq flag for now as Alexey is proposing I refactor the code instead to make sure applicationIsSafari() is called from WebKit instead of WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043284</commentid>
    <comment_count>10</comment_count>
      <attachid>240223</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-21 14:40:44 -0700</bug_when>
    <thetext>Created attachment 240223
Alternative WIP patch

Alexey, I tried to refactor the code based on our discussion. Could you please take a look at the WIP patch and let me know if I understood your proposal correctly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043304</commentid>
    <comment_count>11</comment_count>
      <attachid>240228</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-21 16:45:33 -0700</bug_when>
    <thetext>Created attachment 240228
Alternative WIP patch

New iteration removing the code out of ResourceRequest and into FrameLoaderClient, as discussed with Alexey on IRC.
I did not know where to put the determineShouldUseQuickLookResourceCachingQuirks() code since Alexey didn&apos;t like ResourceRequest and since I&apos;d like to share the code between WK1 and WK2. So I moved it to a new QuickLookMac class under platform/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043306</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-21 16:48:20 -0700</bug_when>
    <thetext>Attachment 240228 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/QuickLookMac.mm:51:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043314</commentid>
    <comment_count>13</comment_count>
      <attachid>240228</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-21 17:12:04 -0700</bug_when>
    <thetext>Comment on attachment 240228
Alternative WIP patch

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

r=me

&gt; Source/WebCore/loader/FrameLoaderClient.h:289
&gt; +        virtual bool shouldUseQuickLookResourceCachingQuirks() const = 0;

I think that this needsQuickLookResourceCachingQuirks would be a better name for this function.

&gt; Source/WebCore/platform/mac/QuickLookMac.mm:33
&gt; +bool QuickLookMac::determineShouldUseQuickLookResourceCachingQuirks()

Perhaps simply &quot;shouldUseQuickLookResourceCachingQuirks&quot;? Any function that returns a bool determines something, and &quot;determine should&quot; is not correct grammar anyway.

&gt; Source/WebCore/platform/mac/QuickLookMac.mm:38
&gt; +    NSArray* frameworks = [NSBundle allFrameworks];

Misplaced star: should be &quot;NSArray *&quot; (I know that it&apos;s moved code).

&gt; Source/WebCore/platform/mac/QuickLookMac.mm:43
&gt; +    for (NSBundle* bundle in frameworks) {

Misplaced star: should be &quot;NSBundle *&quot;.

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:194
&gt; +#if !PLATFORM(IOS)

I&apos;m not sure if I always understand why this patch uses !PLATFORM(IOS) in some places, and PLATFORM(MAC) in others. This may be worth another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043322</commentid>
    <comment_count>14</comment_count>
      <attachid>240228</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-21 17:35:48 -0700</bug_when>
    <thetext>Comment on attachment 240228
Alternative WIP patch

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

&gt;&gt; Source/WebCore/platform/mac/QuickLookMac.mm:33
&gt;&gt; +bool QuickLookMac::determineShouldUseQuickLookResourceCachingQuirks()
&gt; 
&gt; Perhaps simply &quot;shouldUseQuickLookResourceCachingQuirks&quot;? Any function that returns a bool determines something, and &quot;determine should&quot; is not correct grammar anyway.

I wanted to hint to the caller that this method is expensive. shouldUseQuickLookResourceCachingQuirks() might should like a simple getter. Maybe computeShouldUseQuickLookResourceCachingQuirks() like in my earlier revision?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043327</commentid>
    <comment_count>15</comment_count>
      <attachid>240233</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-21 17:57:33 -0700</bug_when>
    <thetext>Created attachment 240233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043328</commentid>
    <comment_count>16</comment_count>
      <attachid>240233</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-21 17:59:38 -0700</bug_when>
    <thetext>Comment on attachment 240233
Patch

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

&gt; Source/WebCore/platform/mac/QuickLookMac.h:33
&gt; +    WEBCORE_EXPORT static bool computeNeedsQuickLookResourceCachingQuirks();

I addressed all the comments. However, I named this function computeNeedsQuickLookResourceCachingQuirks() to make it clearer to the caller that this method is potentially expensive and that the result needs to be cached.
Please let me know if you are OK with this before I land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043460</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-22 09:38:47 -0700</bug_when>
    <thetext>&gt; computeNeedsQuickLookResourceCachingQuirks

OK.

One thing that I now noticed this patch doesn&apos;t do is remove the horrendous hack from applicationIsSafari(). Cannot we do that now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043462</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-22 09:49:49 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; computeNeedsQuickLookResourceCachingQuirks
&gt; 
&gt; OK.
&gt; 
&gt; One thing that I now noticed this patch doesn&apos;t do is remove the horrendous
&gt; hack from applicationIsSafari(). Cannot we do that now?

Do you mean by checking [[NSBundle mainBundle] bundleIdentifier] at the call sites and only calling computeNeedsQuickLookResourceCachingQuirks() if the bundle name is *not* &quot;com.apple.Safari&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043466</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-22 09:52:42 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; &gt; computeNeedsQuickLookResourceCachingQuirks
&gt; &gt; 
&gt; &gt; OK.
&gt; &gt; 
&gt; &gt; One thing that I now noticed this patch doesn&apos;t do is remove the horrendous
&gt; &gt; hack from applicationIsSafari(). Cannot we do that now?
&gt; 
&gt; Do you mean by checking [[NSBundle mainBundle] bundleIdentifier] at the call
&gt; sites and only calling computeNeedsQuickLookResourceCachingQuirks() if the
&gt; bundle name is *not* &quot;com.apple.Safari&quot;?

Oh, you mean removing || mainBundleIsEqualTo(&quot;com.apple.WebProcess&quot;) from applicationIsSafari. Yes, we can do this now as applicationIsSafari is always called from the UIProcess now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043473</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-22 09:56:46 -0700</bug_when>
    <thetext>&gt; Oh, you mean removing || mainBundleIsEqualTo(&quot;com.apple.WebProcess&quot;) from applicationIsSafari

Yes, rs=me to do this as part of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043474</commentid>
    <comment_count>21</comment_count>
      <attachid>240276</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-22 09:57:17 -0700</bug_when>
    <thetext>Created attachment 240276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043475</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-22 09:57:42 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; Oh, you mean removing || mainBundleIsEqualTo(&quot;com.apple.WebProcess&quot;) from applicationIsSafari
&gt; 
&gt; Yes, rs=me to do this as part of this patch.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043482</commentid>
    <comment_count>23</comment_count>
      <attachid>240276</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-22 10:43:06 -0700</bug_when>
    <thetext>Comment on attachment 240276
Patch

Clearing flags on attachment: 240276

Committed r175055: &lt;http://trac.webkit.org/changeset/175055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043484</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-22 10:43:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043634</commentid>
    <comment_count>25</comment_count>
      <attachid>240276</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-22 18:50:02 -0700</bug_when>
    <thetext>Comment on attachment 240276
Patch

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

&gt; Source/WebCore/platform/mac/QuickLookMac.mm:46
&gt; +        const char* bundleID = [[bundle bundleIdentifier] UTF8String];
&gt; +        if (bundleID &amp;&amp; !strcasecmp(bundleID, &quot;com.apple.QuickLookUIFramework&quot;))
&gt; +            return true;

It’s strange that code was converting an identifier to a UTF-8 string just to compare it with a constant. I would write something using NSString directly and using

    @&quot;com.apple.QuickLookUIFramework&quot;

These flags are handy:

    NSCaseInsensitiveSearch | NSLiteralSearch | NSAnchoredSearch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240145</attachid>
            <date>2014-10-20 14:16:09 -0700</date>
            <delta_ts>2014-10-20 15:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137893-20141020141615.patch</filename>
            <type>text/plain</type>
            <size>2754</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNjZTg3NmIzOGYzMTM0
ZmFhNmUyOTBmNDlhNjYxMjY2NjY5Y2M0Yi4uZDQyZTM0ZTIwMmRkYTc5YzFkMWVmNmY5ZGUwMDYw
ZTQ2Nzc5MjE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTEwLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV0syXSBGaXggYXBw
bGljYXRpb25Jc1NhZmFyaSgpIGRldGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSSBub3RpY2VkIHdoZW4gcHJvZmlsaW5nIFNhZmFyaSBvbiBN
YWMgdGhhdCB3ZSB3ZXJlIGV4ZXJjaXNpbmcgYSBjb2RlCisgICAgICAgIHBhdGNoIHdlIHNob3Vs
ZG4ndCBiZWNhdXNlIGl0IGlzIG1lYW50IGZvciBvdGhlciBhcHBsaWNhdGlvbnMgdGhhdAorICAg
ICAgICBTYWZhcmkuCisKKyAgICAgICAgVGhlIGRldGVjdGlvbiByZWxpZXMgb24gdGhlIGFwcGxp
Y2F0aW9uSXNTYWZhcmkoKSBmdW5jdGlvbiBpbgorICAgICAgICBSdW50aW1lQXBwbGljYXRpb25D
aGVja3MuY3BwLiBUaGlzIHdhcyBpbiBzb21lIGNhc2VzIHJldHVybmluZyBmYWxzZSBvbgorICAg
ICAgICBteSBtYWNoaW5lIGV2ZW4gdGhvdWdoIEkgd2FzIHJ1bm5pbmcgU2FmYXJpIHNvIEkgaW52
ZXN0aWdhdGVkIGEgYml0IGFuZAorICAgICAgICBub3RpY2VkIHRoYXQgdGhlIGNoZWNrIHJlbGll
cyBvbiB0aGUgbWFpbiBidW5kbGUgaWRlbnRpZmllciBzdHJpbmcgYW5kCisgICAgICAgIHdhcyBk
b2luZzoKKyAgICAgICAgaXNTYWZhcmkgPSBtYWluQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUu
U2FmYXJpIikKKyAgICAgICAgICAgICAgICAgICB8fCBtYWluQnVuZGxlSXNFcXVhbFRvKCJjb20u
YXBwbGUuV2ViUHJvY2VzcyIpOworCisgICAgICAgIE9uIG15IG1hY2hpbmUsIHRoZSBXZWJQcm9j
ZXNzJ3MgYnVuZGxlIGlzIG5hbWVkCisgICAgICAgICJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQiIG9yCisgICAgICAgICJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQi
IHNvIEkgYW0gdXBkYXRpbmcgdGhlIGNoZWNrIHRvCisgICAgICAgIG1hdGNoIHRoZXNlIG5hbWVz
IGFzIHdlbGwuIEkgYW0gbm90IDEwMCUgd2UgbmVlZCB0byBrZWVwIG1hdGNoaW5nCisgICAgICAg
ICJjb20uYXBwbGUuV2ViUHJvY2VzcyIgYnV0IEkga2VwdCBpdCBiZWNhdXNlIG5vdyB0aGUgV2Vi
UHJvY2VzcworICAgICAgICBkZXRlY3Rpb24gb24gTWFjIG1hdGNoZXMgdGhlIG9uZSBmb3IgaU9T
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm90IGVhc2lseSB0ZXN0YWJsZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjphcHBsaWNhdGlvbklzU2FmYXJpKToKKwogMjAxNC0xMC0xOSAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgdW5uZWNlc3NhcnkgTlNVUkxSZXNw
b25zZSBjb25zdHJ1Y3Rpb24gZm9yIFF1aWNrTG9vayBvbiBpT1MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmluZGV4IDkxZTMz
MjI2ZGJiYWIyOTE2MWVlYTI2NGU1NzFiYjIzYzBjNTAzN2QuLmFjYTZmOTc0MjhiZDI3NDljZTFh
N2RhY2EyZmMzMzg2M2JjYjg2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAtNTcsOCArNTcsOCBAQCBzdGF0aWMg
Ym9vbCBtYWluQnVuZGxlSXNFcXVhbFRvKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllclN0
cmluZykKIAogYm9vbCBhcHBsaWNhdGlvbklzU2FmYXJpKCkKIHsKLSAgICAvLyBGSVhNRTogRm9y
IHRoZSBXZWJQcm9jZXNzIGNhc2UsIGVuc3VyZSB0aGF0IHRoaXMgaXMgU2FmYXJpJ3MgV2ViUHJv
Y2Vzcy4KLSAgICBzdGF0aWMgYm9vbCBpc1NhZmFyaSA9IG1haW5CdW5kbGVJc0VxdWFsVG8oImNv
bS5hcHBsZS5TYWZhcmkiKSB8fCBtYWluQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuV2ViUHJv
Y2VzcyIpOworICAgIC8vIEZJWE1FOiBGb3IgdGhlIFdlYkNvbnRlbnQgY2FzZSwgZW5zdXJlIHRo
YXQgdGhpcyBpcyBTYWZhcmkncyBXZWJDb250ZW50IHByb2Nlc3MuCisgICAgc3RhdGljIGJvb2wg
aXNTYWZhcmkgPSBtYWluQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuU2FmYXJpIikgfHwgbWFp
bkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IikgfHwgbWFpbkJ1
bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50Iikg
fHwgbWFpbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLldlYlByb2Nlc3MiKTsKICAgICByZXR1
cm4gaXNTYWZhcmk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240148</attachid>
            <date>2014-10-20 15:05:53 -0700</date>
            <delta_ts>2014-10-21 17:57:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137893-20141020150559.patch</filename>
            <type>text/plain</type>
            <size>2969</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQ1YWNhNGRmOTU5OWIy
OWMzZDM3YWMwY2EzN2NlNDhiMjI5OTI5My4uNWMyYTNlM2E4ZWEzYzhlZjJhM2E1YjljNzhmNDBm
M2YzYzkzMTgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTEwLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV0syXSBGaXggYXBw
bGljYXRpb25Jc1NhZmFyaSgpIGRldGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgSSBub3RpY2VkIHdoZW4gcHJvZmlsaW5nIFNhZmFyaSBvbiBNYWMg
dGhhdCB3ZSB3ZXJlIGV4ZXJjaXNpbmcgYSBjb2RlCisgICAgICAgIHBhdGggd2Ugc2hvdWxkbid0
IGJlY2F1c2UgaXQgaXMgbWVhbnQgZm9yIG90aGVyIGFwcGxpY2F0aW9ucyB0aGF0CisgICAgICAg
IFNhZmFyaS4KKworICAgICAgICBUaGUgZGV0ZWN0aW9uIHJlbGllcyBvbiB0aGUgYXBwbGljYXRp
b25Jc1NhZmFyaSgpIGZ1bmN0aW9uIGluCisgICAgICAgIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5jcHAuIFRoaXMgd2FzIGluIHNvbWUgY2FzZXMgcmV0dXJuaW5nIGZhbHNlIG9uCisgICAgICAg
IG15IG1hY2hpbmUgZXZlbiB0aG91Z2ggSSB3YXMgcnVubmluZyBTYWZhcmkgc28gSSBpbnZlc3Rp
Z2F0ZWQgYSBiaXQgYW5kCisgICAgICAgIG5vdGljZWQgdGhhdCB0aGUgY2hlY2sgcmVsaWVzIG9u
IHRoZSBtYWluIGJ1bmRsZSBpZGVudGlmaWVyIHN0cmluZyBhbmQKKyAgICAgICAgd2FzIGRvaW5n
OgorICAgICAgICBpc1NhZmFyaSA9IG1haW5CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5TYWZh
cmkiKQorICAgICAgICAgICAgICAgICAgIHx8IG1haW5CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBs
ZS5XZWJQcm9jZXNzIik7CisKKyAgICAgICAgT24gbXkgbWFjaGluZSwgdGhlIFdlYlByb2Nlc3Mn
cyBidW5kbGUgaXMgbmFtZWQKKyAgICAgICAgImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCIg
b3IKKyAgICAgICAgImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCIgc28g
SSBhbSB1cGRhdGluZyB0aGUgY2hlY2sgdG8KKyAgICAgICAgbWF0Y2ggdGhlc2UgbmFtZXMgYXMg
d2VsbC4gSSBhbSBub3QgMTAwJSB3ZSBuZWVkIHRvIGtlZXAgbWF0Y2hpbmcKKyAgICAgICAgImNv
bS5hcHBsZS5XZWJQcm9jZXNzIiBidXQgSSBrZXB0IGl0IGJlY2F1c2Ugbm93IHRoZSBXZWJQcm9j
ZXNzCisgICAgICAgIGRldGVjdGlvbiBvbiBNYWMgbWF0Y2hlcyB0aGUgb25lIGZvciBpT1MuCisK
KyAgICAgICAgTm90ZSB0aGF0IHRoaXMgbWVhbnQgd2Ugd291bGQgc3BlbmQgfjElIG9mIHRoZSBX
ZWJQcm9jZXNzIGNwdSB0aW1lICh3aGVuCisgICAgICAgIGxvYWRpbmcgYXBwbGUuY29tKSB0cnlp
bmcgdG8gZGV0ZWN0IGlmIHdlIHNob3VsZAorICAgICAgICB1c2VRdWlja0xvb2tSZXNvdXJjZUNh
Y2hpbmdRdWlya3MoKSwgZXZlbiB0aG91Z2ggdGhhdCBjaGVjayBpcyBzdXBwb3NlZAorICAgICAg
ICB0byBiZSBkaXNhYmxlZCBmb3IgU2FmYXJpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm90
IGVhc2lseSB0ZXN0YWJsZS4KKworICAgICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbklzU2FmYXJpKToKKwog
MjAxNC0xMC0yMCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIGFjdGlvbiBtZW51cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggOTFlMzMyMjZkYmJhYjI5MTYx
ZWVhMjY0ZTU3MWJiMjNjMGM1MDM3ZC4uYWNhNmY5NzQyOGJkMjc0OWNlMWE3ZGFjYTJmYzMzODYz
YmNiODZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuY3BwCkBAIC01Nyw4ICs1Nyw4IEBAIHN0YXRpYyBib29sIG1haW5CdW5k
bGVJc0VxdWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyU3RyaW5nKQogCiBib29s
IGFwcGxpY2F0aW9uSXNTYWZhcmkoKQogewotICAgIC8vIEZJWE1FOiBGb3IgdGhlIFdlYlByb2Nl
c3MgY2FzZSwgZW5zdXJlIHRoYXQgdGhpcyBpcyBTYWZhcmkncyBXZWJQcm9jZXNzLgotICAgIHN0
YXRpYyBib29sIGlzU2FmYXJpID0gbWFpbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLlNhZmFy
aSIpIHx8IG1haW5CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5XZWJQcm9jZXNzIik7CisgICAg
Ly8gRklYTUU6IEZvciB0aGUgV2ViQ29udGVudCBjYXNlLCBlbnN1cmUgdGhhdCB0aGlzIGlzIFNh
ZmFyaSdzIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKyAgICBzdGF0aWMgYm9vbCBpc1NhZmFyaSA9IG1h
aW5CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5TYWZhcmkiKSB8fCBtYWluQnVuZGxlSXNFcXVh
bFRvKCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiKSB8fCBtYWluQnVuZGxlSXNFcXVhbFRv
KCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQiKSB8fCBtYWluQnVuZGxl
SXNFcXVhbFRvKCJjb20uYXBwbGUuV2ViUHJvY2VzcyIpOwogICAgIHJldHVybiBpc1NhZmFyaTsK
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240223</attachid>
            <date>2014-10-21 14:40:44 -0700</date>
            <delta_ts>2014-10-21 16:45:33 -0700</delta_ts>
            <desc>Alternative WIP patch</desc>
            <filename>quickLookQuirks_betterFix.patch</filename>
            <type>text/plain</type>
            <size>9280</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDEzZTQwNi4uYjQxZTg0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTYyNSw2ICs2MjUsOCBAQCBfX1pON1dlYkNvcmUxNVBsYXRmb3JtQ0FMYXllckQy
RXYKIF9fWk43V2ViQ29yZTE1UHJvdGVjdGlvblNwYWNlQzFFUDIwTlNVUkxQcm90ZWN0aW9uU3Bh
Y2UKIF9fWk43V2ViQ29yZTE1UmVzb3VyY2VSZXF1ZXN0MjFodHRwUGlwZWxpbmluZ0VuYWJsZWRF
dgogX19aTjdXZWJDb3JlMTVSZXNvdXJjZVJlcXVlc3QyNHNldEhUVFBQaXBlbGluaW5nRW5hYmxl
ZEViCitfX1pON1dlYkNvcmUxNVJlc291cmNlUmVxdWVzdDM2c2V0VXNlUXVpY2tMb29rUmVzb3Vy
Y2VDYWNoaW5nUXVpcmtzRWIKK19fWk43V2ViQ29yZTE1UmVzb3VyY2VSZXF1ZXN0NDZjb21wdXRl
U2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzRXYKIF9fWk43V2ViQ29yZTE1
UnVuTG9vcE9ic2VydmVyMTBpbnZhbGlkYXRlRXYKIF9fWk43V2ViQ29yZTE1UnVuTG9vcE9ic2Vy
dmVyNmNyZWF0ZUVsTlN0M19fMThmdW5jdGlvbklGdnZFRUUKIF9fWk43V2ViQ29yZTE1UnVuTG9v
cE9ic2VydmVyOHNjaGVkdWxlRVAxMV9fQ0ZSdW5Mb29wCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCBj
MjI0YjlmLi5kNWViMDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE2LDYgKzE2LDggQEAgX19a
TjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlQzJFUFMwXwogX19aTjdXZWJDb3JlMTRTUUxpdGVE
YXRhYmFzZUMxRXYKIF9fWk43V2ViQ29yZTEyVVRGOEVuY29kaW5nRXYKIF9fWk43V2ViQ29yZTMx
YXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZUVQS2MKK19fWk43V2ViQ29yZTE1UmVzb3Vy
Y2VSZXF1ZXN0NDZjb21wdXRlU2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtz
RXYKK19fWk43V2ViQ29yZTE1UmVzb3VyY2VSZXF1ZXN0MzZzZXRVc2VRdWlja0xvb2tSZXNvdXJj
ZUNhY2hpbmdRdWlya3NFYgogX19aTjdXZWJDb3JlMTVUZXh0Q29kZWNMYXRpbjEyMXJlZ2lzdGVy
RW5jb2RpbmdOYW1lc0VQRnZQS2NTMl9FCiBfX1pON1dlYkNvcmVMMjRhZGRUb1RleHRFbmNvZGlu
Z05hbWVNYXBFUEtjUzFfCiBfX1pOM1dURjlIYXNoVGFibGVJUEtjTlNfMTJLZXlWYWx1ZVBhaXJJ
UzJfUzJfRUVOU18yNEtleVZhbHVlUGFpcktleUV4dHJhY3RvcklTNF9FRU43V2ViQ29yZTIwVGV4
dEVuY29kaW5nTmFtZUhhc2hFTlNfMThIYXNoTWFwVmFsdWVUcmFpdHNJTlNfMTBIYXNoVHJhaXRz
SVMyX0VFU0JfRUVTQl9FMTZsb29rdXBGb3JXcml0aW5nSU5TXzIySWRlbnRpdHlIYXNoVHJhbnNs
YXRvcklTOF9FRVMyX0VFTlN0M19fMTRwYWlySVBTNF9iRUVSS1QwXwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZmNiNTI0YS4uZWZhOGU4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMTUyLDcgKzIxNTIsNyBAQCBDYWNoZVBvbGljeSBG
cmFtZUxvYWRlcjo6c3VicmVzb3VyY2VDYWNoZVBvbGljeSgpIGNvbnN0CiAgICAgICAgIHJldHVy
biBDYWNoZVBvbGljeVJldmFsaWRhdGU7CiAKICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QoZG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpKTsKLSNpZiBQTEFURk9STShDT0NPQSkK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKHJlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBSZWxv
YWRJZ25vcmluZ0NhY2hlRGF0YSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UocmVxdWVzdC5odHRwTWV0
aG9kKCksICJwb3N0IikgJiYgUmVzb3VyY2VSZXF1ZXN0Ojp1c2VRdWlja0xvb2tSZXNvdXJjZUNh
Y2hpbmdRdWlya3MoKSkKICAgICAgICAgcmV0dXJuIENhY2hlUG9saWN5UmV2YWxpZGF0ZTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VSZXF1ZXN0LmgKaW5kZXggMjdhNmQ0MS4uZDA3ZDlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC0xMTcsNyAr
MTE3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBib29sIHJlc291
cmNlUHJpb3JpdGllc0VuYWJsZWQoKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFBMQVRG
T1JNKE1BQykKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgY29tcHV0ZVNob3Vs
ZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcygpOworICAgICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBzZXRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoYm9v
bCk7CiAgICAgICAgIHN0YXRpYyBib29sIHVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJr
cygpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1Jlc291cmNlUmVxdWVzdElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvaW9zL1Jlc291cmNlUmVxdWVzdElPUy5tbQppbmRleCAwODIzNjk4Li40NzBjZWFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9SZXNvdXJjZVJl
cXVlc3RJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUmVz
b3VyY2VSZXF1ZXN0SU9TLm1tCkBAIC0zNSwxMSArMzUsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWJvb2wgUmVzb3VyY2VSZXF1ZXN0Ojp1c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdR
dWlya3MoKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogI2lmIFVTRShDRk5FVFdPUkspCiAK
IFJlc291cmNlUmVxdWVzdDo6UmVzb3VyY2VSZXF1ZXN0KE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VSZXF1ZXN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VSZXF1ZXN0TWFjLm1tCmluZGV4IDMxZGU0YTYuLmViMDZmNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RN
YWMubW0KQEAgLTM5LDE4ICszOSwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBib29sIGluaXRRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQorc3RhdGljIGJvb2wg
c2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzID0gZmFsc2U7CisKK2Jvb2wg
UmVzb3VyY2VSZXF1ZXN0Ojpjb21wdXRlU2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5n
UXVpcmtzKCkKIHsKICAgICBpZiAoYXBwbGljYXRpb25Jc1NhZmFyaSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCisKICAgICBOU0FycmF5KiBmcmFtZXdvcmtzID0gW05TQnVuZGxlIGFs
bEZyYW1ld29ya3NdOwotICAgIAorCiAgICAgaWYgKCFmcmFtZXdvcmtzKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCi0gICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBbZnJhbWV3
b3JrcyBjb3VudF07IGkrKykgewotICAgICAgICBOU0J1bmRsZSogYnVuZGxlID0gW2ZyYW1ld29y
a3Mgb2JqZWN0QXRJbmRleDogaV07CisKKyAgICBmb3IgKE5TQnVuZGxlKiBidW5kbGUgaW4gZnJh
bWV3b3JrcykgewogICAgICAgICBjb25zdCBjaGFyKiBidW5kbGVJRCA9IFtbYnVuZGxlIGJ1bmRs
ZUlkZW50aWZpZXJdIFVURjhTdHJpbmddOwogICAgICAgICBpZiAoYnVuZGxlSUQgJiYgIXN0cmNh
c2VjbXAoYnVuZGxlSUQsICJjb20uYXBwbGUuUXVpY2tMb29rVUlGcmFtZXdvcmsiKSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwpAQCAtNjAsOCArNjEsMTIgQEAgc3RhdGljIGJvb2wgaW5pdFF1
aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcygpCiAKIGJvb2wgUmVzb3VyY2VSZXF1ZXN0Ojp1
c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQogewotICAgIHN0YXRpYyBib29sIGZs
YWcgPSBpbml0UXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCk7Ci0gICAgcmV0dXJuIGZs
YWc7CisgICAgcmV0dXJuIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrczsK
K30KKwordm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnNldFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGlu
Z1F1aXJrcyhib29sIHZhbHVlKQoreworICAgIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrcyA9IHZhbHVlOwogfQogCiAjaWYgVVNFKENGTkVUV09SSykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA4NmM0OWM2Li4xMTkzMGE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC00NjUzLDYgKzQ2NTMsMTEgQEAgc3RhdGljIFZlY3Rv
cjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9yKE5TQXJyYXkqIHBhdHRlcm5zKQogICAgIEZvbnQ6OnNl
dERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKFtkZWZhdWx0cyBib29sRm9yS2V5OldlYktpdEtl
cm5pbmdBbmRMaWdhdHVyZXNFbmFibGVkQnlEZWZhdWx0RGVmYXVsdHNLZXldID8gS2VybmluZyB8
IExpZ2F0dXJlcyA6IDApOwogCiAjaWYgIVBMQVRGT1JNKElPUykKKyAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzaG91bGRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MgPSBSZXNvdXJjZVJl
cXVlc3Q6OmNvbXB1dGVTaG91bGRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKTsK
KyAgICBSZXNvdXJjZVJlcXVlc3Q6OnNldFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJr
cyhzaG91bGRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MpOworI2VuZGlmCisKKyNp
ZiAhUExBVEZPUk0oSU9TKQogICAgIGF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCA9
IFtzZWxmIF9zaG91bGRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkJlRW5hYmxlZF07CiAgICAg
YXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQgPSBbZGVmYXVsdHMgYm9vbEZvcktleTpXZWJB
dXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZF07CiAgICAgYXV0b21hdGljRGFzaFN1YnN0aXR1
dGlvbkVuYWJsZWQgPSBbc2VsZiBfc2hvdWxkQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkJlRW5h
YmxlZF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZGE3MTNiZC4uMGE5Nzg4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtMTA2LDYgKzEwNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIGVuY29kZXIgPDwgcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAgICAgZW5jb2Rl
ciA8PCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKKyAgICBlbmNv
ZGVyIDw8IHVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrczsKICAgICBlbmNvZGVyIDw8
IG5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eTsKICAgICBlbmNvZGVyIDw8IG5zVVJMQ2FjaGVEaXNr
Q2FwYWNpdHk7CiAgICAgZW5jb2RlciA8PCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydDsKQEAg
LTIzMCw2ICsyMzEsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvYwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlF
bmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hp
bmdRdWlya3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubnNVUkxDYWNoZURpc2tD
YXBhY2l0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAppbmRleCAyNzk3OWY5Li40M2JjY2JiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEy
NCw2ICsxMjQsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAg
cGlkX3QgcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAKICAgICBib29sIGFjY2Vzc2liaWxpdHlF
bmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkOworICAgIGJvb2wgdXNlUXVpY2tMb29rUmVzb3Vy
Y2VDYWNoaW5nUXVpcmtzOwogCiAgICAgdWludDY0X3QgbnNVUkxDYWNoZU1lbW9yeUNhcGFjaXR5
OwogICAgIHVpbnQ2NF90IG5zVVJMQ2FjaGVEaXNrQ2FwYWNpdHk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KaW5kZXggMmY2YjY4Zi4uOWQ4MTNmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQpAQCAt
MTc0LDkgKzE3NCwxMiBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIHBhcmFtZXRlcnMu
cHJlc2VudGVyQXBwbGljYXRpb25QaWQgPSBnZXRwaWQoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCBzaG91bGRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdR
dWlya3MgPSBSZXNvdXJjZVJlcXVlc3Q6OmNvbXB1dGVTaG91bGRVc2VRdWlja0xvb2tSZXNvdXJj
ZUNhY2hpbmdRdWlya3MoKTsKICAgICBwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVz
ZXJJbnRlcmZhY2VFbmFibGVkID0gW1tOU0FwcCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
QCJBWEVuaGFuY2VkVXNlckludGVyZmFjZSJdIGJvb2xWYWx1ZV07CisgICAgcGFyYW1ldGVycy51
c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MgPSBzaG91bGRVc2VRdWlja0xvb2tSZXNv
dXJjZUNhY2hpbmdRdWlya3M7CiAjZWxzZQogICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVu
aGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLnVzZVF1
aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyA9IGZhbHNlOwogI2VuZGlmCiAKICAgICBOU1VS
TENhY2hlICp1cmxDYWNoZSA9IFtOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXgg
NTJlYmZiMC4uOTVkMGY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTE5MSw2ICsxOTEsNyBAQCB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycwogICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpzZXRM
b2dnaW5nRW5hYmxlZChwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZU1lbW9yeVByZXNzdXJlUmVsaWVm
TG9nZ2luZyk7CiAKICAgICBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkocGFyYW1ldGVycy5hY2Nl
c3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCk7CisgICAgUmVzb3VyY2VSZXF1
ZXN0OjpzZXRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MocGFyYW1ldGVycy51c2VR
dWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MpOwogCiAjaWYgVVNFKEFQUEtJVCkKICAgICBb
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSByZWdpc3RlckRlZmF1bHRzOkB7
IEAiTlNBcHBsaWNhdGlvbkNyYXNoT25FeGNlcHRpb25zIiA6IEBZRVMgfV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240228</attachid>
            <date>2014-10-21 16:45:33 -0700</date>
            <delta_ts>2014-10-21 17:57:27 -0700</delta_ts>
            <desc>Alternative WIP patch</desc>
            <filename>quickLookQuirks_betterFix.patch</filename>
            <type>text/plain</type>
            <size>22131</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDEzZTQwNi4uZTk0ZGVkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTI0MCw2ICsyNDAsNyBAQCBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDlzcG9v
bFBhZ2VFUk5TXzE1R3JhcGhpY3NDb250ZXh0RWlmCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4
dDlzcG9vbFJlY3RFUk5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN0ludFJlY3RFCiBfX1pON1dl
YkNvcmUxMlByaW50Q29udGV4dEMxRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUxMlByaW50Q29u
dGV4dEQxRXYKK19fWk43V2ViQ29yZTEyUXVpY2tMb29rTWFjNDhkZXRlcm1pbmVTaG91bGRVc2VR
dWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3NFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmpl
Y3QxNnBhaW50aW5nUm9vdFJlY3RFUk5TXzEwTGF5b3V0UmVjdEUKIF9fWk43V2ViQ29yZTEyUmVu
ZGVyT2JqZWN0MTlzY3JvbGxSZWN0VG9WaXNpYmxlRVJLTlNfMTBMYXlvdXRSZWN0RVJLTlNfMTVT
Y3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdldDlzZXRXaWRnZXRF
TjNXVEYxMFBhc3NSZWZQdHJJTlNfNldpZGdldEVFRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE2NWRhYzkuLjE5YzdmZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE1ODIsNiArMTU4Miw4IEBACiAJCTQ1QkFDMkIwMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29u
VVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUJB
QzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1RkVBNUNGMTU2RERFOEMwMDY1NDEwMSAvKiBE
ZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCAqLzsgfTsKIAkJNDVGRUE1
RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFs
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY0
Mzc4MzExOUY3MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9va01hYy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0Mzc4MkYxOUY3MjBFRjAwMUUzOEIzIC8q
IFF1aWNrTG9va01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTQ2NDM3ODMyMTlGNzIwRUYwMDFFMzhCMyAvKiBRdWlja0xvb2tNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQzNzgzMDE5Rjcy
MEVGMDAxRTM4QjMgLyogUXVpY2tMb29rTWFjLm1tICovOyB9OwogCQk0Njg5RjFBRjEyNjdCQUUx
MDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0Njg5RjFBRTEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRh
LmggKi87IH07CiAJCTQ2QkQxNkUzMEIyNzk0NzMwMDFGMDgzOSAvKiBub25lQ3Vyc29yLnBuZyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCRDE2RTIw
QjI3OTQ3MzAwMUYwODM5IC8qIG5vbmVDdXJzb3IucG5nICovOyB9OwogCQk0NkQ0RjI0OTBBRjk3
RTgxMDAzNTM4NUEgLyogY2VsbEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RDRGMjQ2MEFGOTdFODEwMDM1Mzg1QSAvKiBjZWxsQ3Vy
c29yLnBuZyAqLzsgfTsKQEAgLTg2MzUsNiArODYzNyw4IEBACiAJCTQ1QkFDMkFGMTM2MEJCQUIw
MDVEQTI1OCAvKiBJY29uVVJMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElj
b25VUkwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVGRUE1Q0QxNTZEREU4QzAw
NjU0MTAxIC8qIERlY2ltYWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGVjaW1hbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1RkVBNUNFMTU2
RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERlY2ltYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY0Mzc4MkYxOUY3
MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9va01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBRdWlja0xvb2tNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY0
Mzc4MzAxOUY3MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9va01hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFF1aWNrTG9va01hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDY4OUYxQUUxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWxlTWV0YWRhdGEuaDsgcGF0aCA9
IHBsYXRmb3JtL0ZpbGVNZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NkJEMTZFMjBCMjc5NDczMDAxRjA4MzkgLyogbm9uZUN1cnNvci5wbmcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBub25l
Q3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZENEYyNDYwQUY5N0U4
MTAwMzUzODVBIC8qIGNlbGxDdXJzb3IucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gY2VsbEN1cnNvci5wbmc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQxMyw2ICsxNjQxNyw4IEBACiAJCQkJQkM5
NEQxMDcwQzI3NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tICovLAogCQkJCTI5
RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1t
ICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXhNYWMubW0g
Ki8sCisJCQkJNDY0Mzc4MkYxOUY3MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9va01hYy5oICovLAor
CQkJCTQ2NDM3ODMwMTlGNzIwRUYwMDFFMzhCMyAvKiBRdWlja0xvb2tNYWMubW0gKi8sCiAJCQkJ
QkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJ
QkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tICovLAogCQkJ
CUJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5oICovLApAQCAt
MjY0NzEsNiArMjY0NzcsNyBAQAogCQkJCTI2RjlBODM5MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3
cG9ydENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTNGRkZGOUFFMTU5RDlCMDYw
MDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2
NzhEMEJCMTg3OEU4OTEwMDNBQkRFNiAvKiBWaWV3U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQ2NDM3ODMxMTlGNzIwRUYwMDFFMzhCMyAvKiBRdWlja0xvb2tNYWMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5RTIwMDk5RTY0OTIwMDU2RTU4MSAvKiBWaXNpYmxlUG9zaXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3QUI5OTY5MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODgzREYyODBGM0QwNDVEMDBGMTlCRjYgLyogVmlz
aWJsZVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTcwOCw2ICsyOTcxNSw3IEBACiAJ
CQkJRTQyNEEzQTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUU0QjY1QTVFMTMyRkFEQjYwMDcwRTdCRSAvKiBMZWdhY3lUaWxlTGF5
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlFNEUzOUFGRDEzMzBFRkM2MDAzQUIyNzQgLyogTGVn
YWN5VGlsZUxheWVyUG9vbC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQ2NDM3ODMyMTlGNzIwRUYw
MDFFMzhCMyAvKiBRdWlja0xvb2tNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0OTg3NzBGMjEy
NDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVC
M0REQjEyNTFGMTJEMDAzRUYyNjkgLyogVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3NTUzQ0ZFOTEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDlj
OTBjYjcuLjJmZDZkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQw
MSw2ICs0MDEsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXF1ZXN0QXV0b2Nv
bXBsZXRlKFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikgb3ZlcnJpZGUgeyB9CiAjZW5kaWYKIAorI2lm
IFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlUXVpY2tMb29rUmVzb3Vy
Y2VDYWNoaW5nUXVpcmtzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRp
ZgorCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlGcmFtZUxvYWRlckNsaWVudCgpIG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CmluZGV4IGZjYjUyNGEuLjI0ZDE3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcApAQCAtMjE1Miw4ICsyMTUyLDggQEAgQ2FjaGVQb2xpY3kgRnJhbWVMb2FkZXI6OnN1YnJl
c291cmNlQ2FjaGVQb2xpY3koKSBjb25zdAogICAgICAgICByZXR1cm4gQ2FjaGVQb2xpY3lSZXZh
bGlkYXRlOwogCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KGRvY3VtZW50TG9h
ZGVyKCktPnJlcXVlc3QoKSk7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKHJlcXVlc3Qu
Y2FjaGVQb2xpY3koKSA9PSBSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSAmJiAhZXF1YWxJZ25vcmlu
Z0Nhc2UocmVxdWVzdC5odHRwTWV0aG9kKCksICJwb3N0IikgJiYgUmVzb3VyY2VSZXF1ZXN0Ojp1
c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSkKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgaWYgKHJlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSAm
JiAhZXF1YWxJZ25vcmluZ0Nhc2UocmVxdWVzdC5odHRwTWV0aG9kKCksICJwb3N0IikgJiYgbV9j
bGllbnQuc2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCkpCiAgICAgICAg
IHJldHVybiBDYWNoZVBvbGljeVJldmFsaWRhdGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzY2ZhZDhhLi5kNjBhMzk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjg1LDYgKzI4NSwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9y
SWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3RlbiA9IHRydWUpID0gMDsKIAorI2lmIFBMQVRGT1JN
KE1BQykKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrcygpIGNvbnN0ID0gMDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgICAgIC8vIEFsbG93IGFuIGFjY2Vzc2liaWxpdHkgb2JqZWN0IHRvIHJldHJpZXZlIGEgRnJh
bWUgcGFyZW50IGlmIHRoZXJlJ3Mgbm8gUGxhdGZvcm1XaWRnZXQuCiAgICAgICAgIHZpcnR1YWwg
UmVtb3RlQVhPYmplY3RSZWYgYWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9RdWlja0xvb2tNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9RdWlja0xvb2tNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi41NGUxY2UyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1F1aWNrTG9va01hYy5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFF1aWNrTG9va01hY19oCisjZGVmaW5lIFF1aWNrTG9va01hY19oCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUXVpY2tMb29rTWFjIHsKK3B1YmxpYzoKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBkZXRlcm1pbmVTaG91bGRVc2VRdWlja0xvb2tSZXNv
dXJjZUNhY2hpbmdRdWlya3MoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFF1aWNrTG9va01hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUXVpY2tMb29rTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1F1aWNr
TG9va01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTZjOWQ2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1F1aWNrTG9va01h
Yy5tbQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDE0IEFwcGxlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlF1aWNrTG9va01hYy5oIgorCisjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIFF1aWNrTG9va01hYzo6ZGV0ZXJtaW5l
U2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCkKK3sKKyAgICBpZiAoYXBw
bGljYXRpb25Jc1NhZmFyaSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOU0FycmF5
KiBmcmFtZXdvcmtzID0gW05TQnVuZGxlIGFsbEZyYW1ld29ya3NdOworCisgICAgaWYgKCFmcmFt
ZXdvcmtzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKE5TQnVuZGxlKiBidW5k
bGUgaW4gZnJhbWV3b3JrcykgeworICAgICAgICBjb25zdCBjaGFyKiBidW5kbGVJRCA9IFtbYnVu
ZGxlIGJ1bmRsZUlkZW50aWZpZXJdIFVURjhTdHJpbmddOworICAgICAgICBpZiAoYnVuZGxlSUQg
JiYgIXN0cmNhc2VjbXAoYnVuZGxlSUQsICJjb20uYXBwbGUuUXVpY2tMb29rVUlGcmFtZXdvcmsi
KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK30gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAppbmRleCAyN2E2ZDQxLi4wNGQ5YjAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VSZXF1ZXN0LmgKQEAgLTExNywxMCArMTE3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIHN0YXRpYyBib29sIHJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKTsKIAotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgICAgICBzdGF0aWMgYm9vbCB1c2VRdWlja0xvb2tSZXNvdXJjZUNh
Y2hpbmdRdWlya3MoKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAvLyBG
SVhNRTogZGVwcmVjYXRlZElzTWFpblJlc291cmNlUmVxdWVzdCgpIGRvZXMgbm90IHJldHVybiB0
aGUgY29ycmVjdCB2YWx1ZSBpZiB0aGUgUmVzb3VyY2VSZXF1ZXN0IGhhcyBiZWVuCiAgICAgICAg
IC8vIGRlc2VyaWFsaXplZCBmcm9tIGFuIElQQyBtZXNzYWdlLiBBcyBhIHJlc3VsdCB0aGlzIGZ1
bmN0aW9uIGNhbiBvbmx5IGJlIHJlbGllZCBvbiB3aGVuIG5ldHdvcmtpbmcgaXMgbm90IGluIGEK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1Jlc291cmNl
UmVxdWVzdElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1Jlc291
cmNlUmVxdWVzdElPUy5tbQppbmRleCAwODIzNjk4Li40NzBjZWFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9SZXNvdXJjZVJlcXVlc3RJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VSZXF1ZXN0SU9T
Lm1tCkBAIC0zNSwxMSArMzUsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgUmVz
b3VyY2VSZXF1ZXN0Ojp1c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQotewotICAg
IHJldHVybiBmYWxzZTsKLX0KLQogI2lmIFVTRShDRk5FVFdPUkspCiAKIFJlc291cmNlUmVxdWVz
dDo6UmVzb3VyY2VSZXF1ZXN0KE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFj
Lm1tCmluZGV4IDMxZGU0YTYuLjY5NGU1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW0KQEAgLTI4LDgg
KzI4LDYgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmgiCi0KICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCiBAaW50
ZXJmYWNlIE5TVVJMUmVxdWVzdCAoV2ViTlNVUkxSZXF1ZXN0RGV0YWlscykKQEAgLTM5LDMxICsz
Nyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGJvb2wgaW5pdFF1aWNrTG9v
a1Jlc291cmNlQ2FjaGluZ1F1aXJrcygpCi17Ci0gICAgaWYgKGFwcGxpY2F0aW9uSXNTYWZhcmko
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIE5TQXJyYXkqIGZyYW1ld29ya3Mg
PSBbTlNCdW5kbGUgYWxsRnJhbWV3b3Jrc107Ci0gICAgCi0gICAgaWYgKCFmcmFtZXdvcmtzKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBbZnJhbWV3b3JrcyBjb3VudF07IGkrKykgewotICAgICAgICBOU0J1bmRsZSogYnVuZGxl
ID0gW2ZyYW1ld29ya3Mgb2JqZWN0QXRJbmRleDogaV07Ci0gICAgICAgIGNvbnN0IGNoYXIqIGJ1
bmRsZUlEID0gW1tidW5kbGUgYnVuZGxlSWRlbnRpZmllcl0gVVRGOFN0cmluZ107Ci0gICAgICAg
IGlmIChidW5kbGVJRCAmJiAhc3RyY2FzZWNtcChidW5kbGVJRCwgImNvbS5hcHBsZS5RdWlja0xv
b2tVSUZyYW1ld29yayIpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZXNvdXJjZVJlcXVlc3Q6OnVzZVF1aWNrTG9va1Jlc291
cmNlQ2FjaGluZ1F1aXJrcygpCi17Ci0gICAgc3RhdGljIGJvb2wgZmxhZyA9IGluaXRRdWlja0xv
b2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKTsKLSAgICByZXR1cm4gZmxhZzsKLX0KLQogI2lmIFVT
RShDRk5FVFdPUkspCiAKIFJlc291cmNlUmVxdWVzdDo6UmVzb3VyY2VSZXF1ZXN0KE5TVVJMUmVx
dWVzdCAqbnNSZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggODQxNWE1My4uOGVkZTUzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0yMzksNiArMjM5LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRpZENyZWF0ZVF1aWNrTG9va0hhbmRsZShXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGUmKSBv
dmVycmlkZTsKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKElPUykKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCkgY29uc3Qgb3ZlcnJpZGU7
CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50RmlsdGVyPikgb3ZlcnJpZGU7CiAKICAgICBS
ZXRhaW5QdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDJlNDNl
ZjguLjRkNjNiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNDYsNiArMTQ2LDggQEAKICNpbXBv
cnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYk1haWxEZWxlZ2F0ZS5oIgog
I2ltcG9ydCAiV2ViVUlLaXREZWxlZ2F0ZS5oIgorI2Vsc2UKKyNpbXBvcnQgPFdlYkNvcmUvUXVp
Y2tMb29rTWFjLmg+CiAjZW5kaWYKIAogI2lmIFVTRShRVUlDS19MT09LKQpAQCAtMjI0Nyw2ICsy
MjQ5LDE0IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZENyZWF0ZVF1aWNrTG9va0hh
bmRsZShXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGUmIGhhCiB9CiAjZW5kaWYKIAorI2lmICFQTEFU
Rk9STShJT1MpCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VRdWlja0xvb2tS
ZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBjb25zdAoreworICAgIHN0YXRpYyBjb25zdCBib29sIHNo
b3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyA9IFF1aWNrTG9va01hYzo6ZGV0
ZXJtaW5lU2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCk7CisgICAgcmV0
dXJuIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrczsKK30KKyNlbmRpZgor
CiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50RmlsdGVyPiBjb250ZW50RmlsdGVyKQogewog
ICAgIG1fd2ViRnJhbWUtPl9wcml2YXRlLT5jb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQgPSBX
VEY6Om1vdmUoY29udGVudEZpbHRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZGE3MTNiZC4uMGE5Nzg4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtMTA2LDYgKzEwNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgcHJlc2VudGVyQXBwbGljYXRp
b25QaWQ7CiAgICAgZW5jb2RlciA8PCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNl
RW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IHVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJr
czsKICAgICBlbmNvZGVyIDw8IG5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eTsKICAgICBlbmNvZGVy
IDw8IG5zVVJMQ2FjaGVEaXNrQ2FwYWNpdHk7CiAgICAgZW5jb2RlciA8PCBhY2NlbGVyYXRlZENv
bXBvc2l0aW5nUG9ydDsKQEAgLTIzMCw2ICsyMzEsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUHJv
YwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51c2VRdWlj
a0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRl
cnMubnNVUkxDYWNoZURpc2tDYXBhY2l0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAyNzk3OWY5Li40M2JjY2Ji
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyB7CiAgICAgcGlkX3QgcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAKICAgICBi
b29sIGFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkOworICAgIGJvb2wg
dXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzOwogCiAgICAgdWludDY0X3QgbnNVUkxD
YWNoZU1lbW9yeUNhcGFjaXR5OwogICAgIHVpbnQ2NF90IG5zVVJMQ2FjaGVEaXNrQ2FwYWNpdHk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KaW5kZXgg
MmY2YjY4Zi4uZTM3NzNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1hYy5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3NJT1MuaD4KICNlbHNlCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBUmVt
b3RlTGF5ZXJTZXJ2ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUXVpY2tMb29rTWFjLmg+CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCkBAIC0xNzUsOCArMTc2LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRV
c2VySW50ZXJmYWNlRW5hYmxlZCA9IFtbTlNBcHAgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
OkAiQVhFbmhhbmNlZFVzZXJJbnRlcmZhY2UiXSBib29sVmFsdWVdOworICAgIHN0YXRpYyBjb25z
dCBib29sIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyA9IFF1aWNrTG9v
a01hYzo6ZGV0ZXJtaW5lU2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCk7
CisgICAgcGFyYW1ldGVycy51c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MgPSBzaG91
bGRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3M7CiAjZWxzZQogICAgIHBhcmFtZXRl
cnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBmYWxzZTsKKyAg
ICBwYXJhbWV0ZXJzLnVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyA9IGZhbHNlOwog
I2VuZGlmCiAKICAgICBOU1VSTENhY2hlICp1cmxDYWNoZSA9IFtOU1VSTENhY2hlIHNoYXJlZFVS
TENhY2hlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggY2VmYWJmMC4u
ZmUyOWMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE2NTYsNCAr
MTY1NiwxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXF1ZXN0QXV0b2NvbXBs
ZXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPgogfQogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShNQUMpCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VRdWlja0xvb2tS
ZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5zaG91bGRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKTsKK30KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCA2MWY2M2YwLi4wNzgzZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0yMzIsNiArMjMyLDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0
ZVF1aWNrTG9va0hhbmRsZShXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGUmKSBvdmVycmlkZTsKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VRdWlj
a0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50Rmls
dGVyRGlkQmxvY2tMb2FkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50RmlsdGVyPikg
b3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDIzNjNhM2IuLjdhNDAzYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcApAQCAtMTU1LDYgKzE1NSw5IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQog
ICAgICwgbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoTUFDSF9QT1JUX05VTEwpCiAgICAg
LCBtX2NsZWFyUmVzb3VyY2VDYWNoZXNEaXNwYXRjaEdyb3VwKDApCiAjZW5kaWYKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgLCBtX3Nob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJr
cyhmYWxzZSkKKyNlbmRpZgogICAgICwgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKGZhbHNl
KQogICAgICwgbV90ZXh0Q2hlY2tlclN0YXRlKCkKICAgICAsIG1faWNvbkRhdGFiYXNlUHJveHko
bmV3IFdlYkljb25EYXRhYmFzZVByb3h5KHRoaXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAppbmRleCAyMTI1MWMwLi5jNjhhYjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaApAQCAtMTE2LDYgKzExNiwxMCBAQCBwdWJsaWM6CiAgICAgbWFjaF9w
b3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkgY29uc3QgeyByZXR1cm4gbV9jb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQ7IH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIGJvb2wgc2hvdWxkVXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3M7IH0KKyNl
bmRpZgorCiAgICAgYm9vbCBzaG91bGRQbHVnSW5BdXRvU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFdl
YlBhZ2UqLCBjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKICAgICB2b2lkIHBsdWdJbkRpZFN0YXJ0RnJv
bU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwogICAgIHZv
aWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmln
aW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBX
ZWJDb3JlOjpTZXNzaW9uSUQpOwpAQCAtMzEwLDYgKzMxNCw5IEBAIHByaXZhdGU6CiAgICAgZGlz
cGF0Y2hfZ3JvdXBfdCBtX2NsZWFyUmVzb3VyY2VDYWNoZXNEaXNwYXRjaEdyb3VwOwogICAgIGJv
b2wgbV9zaG91bGRGb3JjZVNjcmVlbkZvbnRTdWJzdGl0dXRpb247CiAjZW5kaWYKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgYm9vbCBtX3Nob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1
aXJrczsKKyNlbmRpZgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KaW5kZXggNTJlYmZiMC4uYTJlMjA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTE5MSw2ICsxOTEsOSBAQCB2b2lk
IFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycwogICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9n
Z2VyOjpzZXRMb2dnaW5nRW5hYmxlZChwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZU1lbW9yeVByZXNz
dXJlUmVsaWVmTG9nZ2luZyk7CiAKICAgICBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkocGFyYW1l
dGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCk7CisjaWYgIVBM
QVRGT1JNKElPUykKKyAgICBtX3Nob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJr
cyA9IHBhcmFtZXRlcnMudXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzOworI2VuZGlm
CiAKICNpZiBVU0UoQVBQS0lUKQogICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdIHJlZ2lzdGVyRGVmYXVsdHM6QHsgQCJOU0FwcGxpY2F0aW9uQ3Jhc2hPbkV4Y2VwdGlv
bnMiIDogQFlFUyB9XTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240233</attachid>
            <date>2014-10-21 17:57:33 -0700</date>
            <delta_ts>2014-10-22 09:57:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137893-20141021175739.patch</filename>
            <type>text/plain</type>
            <size>29670</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0OTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNiZDM3OGUxN2FkY2M4
NDkxNWFlNzQyYzgzZjFkYWU1YTY5N2JiNy4uZDllNTY3MmYxYjMyMWMwMWY5ZjQ0NTA4MjU2Y2Y2
ZDYxMmNkZWE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE0LTEwLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV0syXSBGaXggYXBw
bGljYXRpb25Jc1NhZmFyaSgpIGRldGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBJIG5vdGljZWQgd2hlbiBwcm9maWxpbmcgU2FmYXJp
IG9uIE1hYyB0aGF0IHdlIHdlcmUgZXhlcmNpc2luZyBhIGNvZGUKKyAgICAgICAgcGF0aCB3ZSBz
aG91bGRuJ3QgYmVjYXVzZSBpdCBpcyBtZWFudCBmb3Igb3RoZXIgYXBwbGljYXRpb25zIHRoYXQK
KyAgICAgICAgU2FmYXJpLgorCisgICAgICAgIFRoZSBkZXRlY3Rpb24gcmVsaWVzIG9uIHRoZSBh
cHBsaWNhdGlvbklzU2FmYXJpKCkgZnVuY3Rpb24gaW4KKyAgICAgICAgUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmNwcC4gVGhpcyB3YXMgaW4gc29tZSBjYXNlcyByZXR1cm5pbmcgZmFsc2Ugb24K
KyAgICAgICAgbXkgbWFjaGluZSBldmVuIHRob3VnaCBJIHdhcyBydW5uaW5nIFNhZmFyaSBzbyBJ
IGludmVzdGlnYXRlZCBhIGJpdCBhbmQKKyAgICAgICAgbm90aWNlZCB0aGF0IHRoZSBjaGVjayBy
ZWxpZXMgb24gdGhlIG1haW4gYnVuZGxlIGlkZW50aWZpZXIgc3RyaW5nIGFuZAorICAgICAgICBp
cyBkb2luZzoKKyAgICAgICAgaXNTYWZhcmkgPSBtYWluQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBw
bGUuU2FmYXJpIikKKyAgICAgICAgICAgIHx8IG1haW5CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBs
ZS5XZWJQcm9jZXNzIik7CisKKyAgICAgICAgVGhpcyBXZWJQcm9jZXNzIGRldGVjdGlvbiBpcyB2
ZXJ5IHVucmVsaWFibGUgYmVjYXVzZToKKyAgICAgICAgLSBJdCBtYXRjaGVzIG90aGVyIGFwcHMg
dGhhbiBTYWZhcmkncyBXZWJQcm9jZXNzZXMKKyAgICAgICAgLSBUaGUgYnVuZGxlIG5hbWUgZm9y
IHRoZSBXZWJQcm9jZXNzIGlzIHNvbWV0aW1lcworICAgICAgICAiY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50IiBvcgorICAgICAgICAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVs
b3BtZW50Ii4KKworICAgICAgICBUaGUgc29sdXRpb24gdXNlZCBpbiB0aGlzIHBhdGNoIGlzIHRv
IG1vdmUgdGhlIGFwcGxpY2F0aW9uSXNTYWZhcmkoKQorICAgICAgICBjaGVjayB0byB0aGUgVUlQ
cm9jZXNzIHNvIHRoYXQgdGhlIGNoZWNrIGFjdHVhbGx5IHN1Y2NlZWRzIHJlbGlhYmx5LgorICAg
ICAgICBUaGUgY2FsbCBzaXRlIGZvciBhcHBsaWNhdGlvbklzU2FmYXJpKCkgd2FzIGluCisgICAg
ICAgIFJlc291cmNlUmVxdWVzdDo6dXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCku
IFRoaXMgbWF0Y2gKKyAgICAgICAgcmVtb3ZlcyB0aGF0IGxvZ2ljIGZyb20gUmVzb3VyY2VSZXF1
ZXN0IGFuZCBtb3ZlIGl0IHRvCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50IGFzIG9ubHkgdGhl
IEZyYW1lTG9hZGVyIGlzIGludGVyZXN0ZWQgaW4gdGhpcworICAgICAgICBpbmZvcm1hdGlvbi4g
VGhlIGxvZ2ljIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgdXNlIFF1aWNrTG9vaworICAgICAg
ICByZXNvdXJjZSBjYWNoaW5nIHF1aXJrcyBpcyBtb3ZlZCB0byBhIG5ldyBRdWlja0xvb2sgY2xh
c3MgdW5kZXIKKyAgICAgICAgcGxhdGZvcm0vIGFzIHRoZSBjb2RlIG5lZWRzIHRvIGJlIHNoYXJl
ZCBiZXR3ZWVuIFdlYktpdCBhbmQgV2ViS2l0Mi4KKyAgICAgICAgT24gV2ViS2l0Miwgd2UgbWFr
ZSB1c2UgdGhhdCBjb2RlIG9uIHRoZSBVSVByb2Nlc3Mgc2lkZSBhbmQgcGFzcworICAgICAgICB0
aGUgZmxhZyBhcyBhIHBhcmFtZXRlciB3aGVuIGNvbnN0cnVjdGluZyB0aGUgV2ViUHJvY2Vzcy4g
VGhlIGZsYWcKKyAgICAgICAgaXMgdGhlbiBzdG9yZWQgb24gdGhlIFdlYlByb2Nlc3MgYW5kIHF1
ZXJpZWQgYnkgV2ViRnJhbWVMb2FkZXJDbGllbnQuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ug
d291bGQgc3BlbmQgfjElIG9mIHRoZSBXZWJQcm9jZXNzIGNwdSB0aW1lICh3aGVuIGxvYWRpbmcK
KyAgICAgICAgYXBwbGUuY29tKSB0cnlpbmcgdG8gZGV0ZWN0IGlmIHdlIHNob3VsZCB1c2UgUXVp
Y2tMb29rIHJlc291cmNlIGNhY2hpbmcKKyAgICAgICAgcXVpcmtzIGV2ZW4gdGhvdWdoIHRoYXQg
Y2hlY2sgd2FzIHN1cHBvc2VkIHRvIGJlIGRpc2FibGVkIGFuZCByZXR1cm4KKyAgICAgICAgZWFy
bHkgd2hlbiBydW5uaW5nIFNhZmFyaS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vdCBlYXNp
bHkgdGVzdGFibGUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6c3VicmVzb3VyY2VDYWNoZVBvbGljeSk6CisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1F1aWNrTG9v
a01hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUXVpY2tMb29rTWFjLm1tOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJl
cXVlc3RNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tNYWM6OmNvbXB1dGVOZWVk
c1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lv
cy9SZXNvdXJjZVJlcXVlc3RJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Q6OnVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6aW5pdFF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVzZVF1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrcyk6IERlbGV0ZWQuCisKIDIwMTQtMTAtMjEgIEphZWh1biBMaW0gIDxsamFlaHVu
LmxpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICAndHJ1ZScgaXNuJ3QgYSB2YWxpZCB2YWx1ZSBm
b3IganVzdGlmeS1zZWxmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYzc2MDJmMjI1YmU5MGQ4OTFhNzQ0
NWYzODU5YmU4YTQ2NzdmNWVlOC4uYjhlZDExNWZlNjFhZmRiNTliZGY3ODYxNWQxYWQ4NGI4YzFh
MWNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTEwLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV0syXSBGaXggYXBw
bGljYXRpb25Jc1NhZmFyaSgpIGRldGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBQcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIGZvciBG
cmFtZUxvYWRlckNsaWVudCdzIG5ldworICAgICAgICBuZWVkc1F1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrcygpIHRoYXQgcmV0dXJucworICAgICAgICBhIHN0YXRpYyBmbGFnIGluaXRpYWxp
emVkIHVzaW5nCisgICAgICAgIFF1aWNrTG9va01hYzo6Y29tcHV0ZU5lZWRzUXVpY2tMb29rUmVz
b3VyY2VDYWNoaW5nUXVpcmtzKCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tOgorCiAyMDE0LTEwLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGRlc2VyaWFsaXphdGlvbiB1bm5lY2Vzc2FyaWx5
IGNhbGxzIHBhcnRpdGlvbk5hbWUoKSBvbiBlbmNvZGVkIGNhY2hlIHBhcnRpdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDc1OTE1ZDQ3NmM4OTgwMGU3YjZmYzNiODc2YWVlZDQ3Mjk1ZmNhYjAuLjRiOTJhZTk3
NzIyYTE3NDRlMGVmOTNmOTE3ZDJmMWRmNTlmYjY3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NCBAQAorMjAxNC0xMC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdW1dLMl0gRml4IGFwcGxpY2F0aW9uSXNTYWZhcmkoKSBkZXRlY3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzg5MworCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgUHJvdmlkZSBh
biBpbXBsZW1lbnRhdGlvbiBmb3IgRnJhbWVMb2FkZXJDbGllbnQncyBuZXcKKyAgICAgICAgbmVl
ZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSwgd2hpY2ggYWNjZXNzZXMgdGhlIGZs
YWcgc3RvcmVkCisgICAgICAgIG9uIHRoZSBXZWJQcm9jZXNzLCB3aGljaCBpcyBpbml0aWFsaXpl
ZCB1cG9uIFdlYlByb2Nlc3MgY3JlYXRpb24uCisKKyAgICAgICAgUXVpY2tMb29rTWFjOjpjb21w
dXRlTmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBpcyBjYWxsZWQKKyAgICAg
ICAgb24gVUlQcm9jZXNzIHNpZGUgc28gdGhhdCBpdCB3b3JrcyByZWxpYWJseSBhbmQgdGhlIGZs
YWcgaXMgcGFzc2VkIGFzCisgICAgICAgIHBhcmFtZXRlciB3aGVuIGNvbnN0cnVjdGluZyB0aGUg
V2ViUHJvY2Vzcy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpuZWVkc1F1aWNrTG9va1Jlc291
cmNlQ2FjaGluZ1F1aXJrcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OldlYlByb2Nlc3MpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpu
ZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDE0LTEwLTIxICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgV0tSZW1vdGVPYmplY3RDb2Rl
ciBzaG91bGQgaGFuZGxlIGZsb2F0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA0MTNlNDA2YWY0
ZTkzN2IyMjJmNzFmYmVhZGQyZWRiZmZjMmZjYTI3Li5lYWI2MzhlYmY1OTkzMDE5ODYzMGI4OWRi
NWYzOGMyMTkyZWM2Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjQwLDYgKzI0MCw3IEBA
IF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0OXNwb29sUGFnZUVSTlNfMTVHcmFwaGljc0NvbnRl
eHRFaWYKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0OXNwb29sUmVjdEVSTlNfMTVHcmFwaGlj
c0NvbnRleHRFUktOU183SW50UmVjdEUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0QzFFUE5T
XzVGcmFtZUUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0RDFFdgorX19aTjdXZWJDb3JlMTJR
dWlja0xvb2tNYWM0MmNvbXB1dGVOZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrc0V2
CiBfX1pON1dlYkNvcmUxMlJlbmRlck9iamVjdDE2cGFpbnRpbmdSb290UmVjdEVSTlNfMTBMYXlv
dXRSZWN0RQogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QxOXNjcm9sbFJlY3RUb1Zpc2libGVF
UktOU18xMExheW91dFJlY3RFUktOU18xNVNjcm9sbEFsaWdubWVudEVTNl8KIF9fWk43V2ViQ29y
ZTEyUmVuZGVyV2lkZ2V0OXNldFdpZGdldEVOM1dURjEwUGFzc1JlZlB0cklOU182V2lkZ2V0RUVF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMTY1ZGFjOWFlYzhmYzIyZDhlMTFlNjU2N2I4Njc3NDE1NDU1ZTI4MS4uMTljN2ZkMjU0
M2FjYjRkYzFkZDAyNGYyZTFmMmNlNDA4N2I1MzJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU4Miw2ICsxNTgyLDggQEAK
IAkJNDVCQUMyQjAxMzYwQkJBQjAwNURBMjU4IC8qIEljb25VUkwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1QkFDMkFGMTM2MEJCQUIwMDVEQTI1OCAv
KiBJY29uVVJMLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDVGRUE1Q0YxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDVGRUE1Q0QxNTZEREU4QzAwNjU0
MTAxIC8qIERlY2ltYWwuY3BwICovOyB9OwogCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMDEgLyog
RGVjaW1hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NjQzNzgzMTE5RjcyMEVGMDAxRTM4QjMg
LyogUXVpY2tMb29rTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjQzNzgyRjE5RjcyMEVGMDAxRTM4QjMgLyogUXVpY2tMb29rTWFjLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY0Mzc4MzIxOUY3
MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9va01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDM3ODMwMTlGNzIwRUYwMDFFMzhCMyAvKiBRdWlja0xv
b2tNYWMubW0gKi87IH07CiAJCTQ2ODlGMUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlG
MUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAqLzsgfTsKIAkJNDZCRDE2RTMw
QjI3OTQ3MzAwMUYwODM5IC8qIG5vbmVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJEMTZFMjBCMjc5NDczMDAxRjA4MzkgLyogbm9u
ZUN1cnNvci5wbmcgKi87IH07CiAJCTQ2RDRGMjQ5MEFGOTdFODEwMDM1Mzg1QSAvKiBjZWxsQ3Vy
c29yLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDZENEYyNDYwQUY5N0U4MTAwMzUzODVBIC8qIGNlbGxDdXJzb3IucG5nICovOyB9OwpAQCAtODYz
NSw2ICs4NjM3LDggQEAKIAkJNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4IC8qIEljb25VUkwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblVSTC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NUZFQTVDRDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWNpbWFsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERlY2lt
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjaW1hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0NjQzNzgyRjE5RjcyMEVGMDAxRTM4QjMgLyogUXVpY2tM
b29rTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1aWNrTG9va01hYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjQzNzgzMDE5RjcyMEVGMDAxRTM4QjMg
LyogUXVpY2tMb29rTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUXVpY2tMb29rTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0Njg5RjFB
RTEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZpbGVNZXRhZGF0YS5oOyBwYXRoID0gcGxhdGZvcm0vRmlsZU1ldGFkYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkQxNkUyMEIyNzk0NzMwMDFGMDgz
OSAvKiBub25lQ3Vyc29yLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IG5vbmVDdXJzb3IucG5nOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkQ0RjI0NjBBRjk3RTgxMDAzNTM4NUEgLyogY2VsbEN1cnNv
ci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBp
bWFnZS5wbmc7IHBhdGggPSBjZWxsQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE2NDEzLDYgKzE2NDE3LDggQEAKIAkJCQlCQzk0RDEwNzBDMjc0Rjg4MDA2QkM2MTcg
LyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sCiAJCQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0NzA0
IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gKi8sCiAJCQkJMDA4MUZFRkUxNkIw
QTJCNjAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeE1hYy5tbSAqLywKKwkJCQk0NjQzNzgyRjE5Rjcy
MEVGMDAxRTM4QjMgLyogUXVpY2tMb29rTWFjLmggKi8sCisJCQkJNDY0Mzc4MzAxOUY3MjBFRjAw
MUUzOEIzIC8qIFF1aWNrTG9va01hYy5tbSAqLywKIAkJCQlCQ0FFMUZBNTEyOTM5REI3MDA0Q0Iw
MjYgLyogU2Nyb2xsQW5pbWF0b3JNYWMuaCAqLywKIAkJCQlCQzUxMTU2RDEyQjE3NDlDMDBDOTY3
NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8sCiAJCQkJQkM4Qjg1M0MwRTdDN0YxMTAwQUI2
OTg0IC8qIFNjcm9sbGJhclRoZW1lTWFjLmggKi8sCkBAIC0yNjQ3MSw2ICsyNjQ3Nyw3IEBACiAJ
CQkJMjZGOUE4MzkxOEEwNDZBQzAwQUVCODhBIC8qIFZpZXdwb3J0Q29uZmlndXJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJM0ZGRkY5QUUxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5
bGVSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3OEQwQkIxODc4RTg5MTAwM0FCREU2
IC8qIFZpZXdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDY0Mzc4MzExOUY3MjBFRjAwMUUz
OEIzIC8qIFF1aWNrTG9va01hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMjAwOTlFNjQ5
MjAwNTZFNTgxIC8qIFZpc2libGVQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBQjk5
NjkxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4ODNERjI4MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI5NzA4LDYgKzI5NzE1LDcgQEAKIAkJCQlFNDI0QTNBMDEzMzBERjFFMDBD
RjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRCNjVB
NUUxMzJGQURCNjAwNzBFN0JFIC8qIExlZ2FjeVRpbGVMYXllci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUU0RTM5QUZEMTMzMEVGQzYwMDNBQjI3NCAvKiBMZWdhY3lUaWxlTGF5ZXJQb29sLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDY0Mzc4MzIxOUY3MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9va01h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODc3MEYyMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxp
bmdEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzRERCMTI1MUYxMkQwMDNFRjI2OSAv
KiBUaW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NTNDRkU5MTA4RjQ3M0Yw
MEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOWM5MGNiN2FhMmU3NDVmNDQ2OTIzZWY2
M2NmMmU1MWZmMDY2OWRhMy4uMzhiNGYyMzI1MWFlY2IwNTdhY2M1OWFhZTBkNjMwNGVmNjJlZjk2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDAxLDYgKzQwMSwxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlcXVlc3RBdXRvY29tcGxldGUoUGFzc1Jl
ZlB0cjxGb3JtU3RhdGU+KSBvdmVycmlkZSB7IH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFD
KQorICAgIHZpcnR1YWwgYm9vbCBuZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKwogICAgIHZpcnR1YWwg
Ym9vbCBpc0VtcHR5RnJhbWVMb2FkZXJDbGllbnQoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmY2I1MjRhNzY1
YmM0MGM4NjRjNjEyMGI5MDM5M2Y1YjM2YWI2YTQyLi45MjA3NDQ0MTdjZWI2MTllYmQ0Nzg1OTgy
NWIzOWFiNTg3MTA1OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTIxNTIsOCArMjE1Miw4IEBAIENhY2hlUG9saWN5IEZyYW1lTG9hZGVyOjpzdWJyZXNvdXJjZUNh
Y2hlUG9saWN5KCkgY29uc3QKICAgICAgICAgcmV0dXJuIENhY2hlUG9saWN5UmV2YWxpZGF0ZTsK
IAogICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdChkb2N1bWVudExvYWRlcigpLT5y
ZXF1ZXN0KCkpOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmIChyZXF1ZXN0LmNhY2hlUG9s
aWN5KCkgPT0gUmVsb2FkSWdub3JpbmdDYWNoZURhdGEgJiYgIWVxdWFsSWdub3JpbmdDYXNlKHJl
cXVlc3QuaHR0cE1ldGhvZCgpLCAicG9zdCIpICYmIFJlc291cmNlUmVxdWVzdDo6dXNlUXVpY2tM
b29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCkpCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChy
ZXF1ZXN0LmNhY2hlUG9saWN5KCkgPT0gUmVsb2FkSWdub3JpbmdDYWNoZURhdGEgJiYgIWVxdWFs
SWdub3JpbmdDYXNlKHJlcXVlc3QuaHR0cE1ldGhvZCgpLCAicG9zdCIpICYmIG1fY2xpZW50Lm5l
ZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCkpCiAgICAgICAgIHJldHVybiBDYWNo
ZVBvbGljeVJldmFsaWRhdGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCAzY2ZhZDhhY2VhNmZlNDQzN2FiNmJiYTI2YzBhYjA1ZTYxN2Qw
MmY0Li4zZWRhNjAwZmMxOTE5NTZlMTVkZWI4OThiMGRkODYzZTUwZjlhOTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjg1LDYgKzI4NSwxMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNv
bk5vdGlmaWNhdGlvbihib29sIGxpc3RlbiA9IHRydWUpID0gMDsKIAorI2lmIFBMQVRGT1JNKE1B
QykKKyAgICAgICAgdmlydHVhbCBib29sIG5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVp
cmtzKCkgY29uc3QgPSAwOworI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAg
Ly8gQWxsb3cgYW4gYWNjZXNzaWJpbGl0eSBvYmplY3QgdG8gcmV0cmlldmUgYSBGcmFtZSBwYXJl
bnQgaWYgdGhlcmUncyBubyBQbGF0Zm9ybVdpZGdldC4KICAgICAgICAgdmlydHVhbCBSZW1vdGVB
WE9iamVjdFJlZiBhY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1F1aWNrTG9va01hYy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1F1aWNrTG9va01hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmMTc3ZWYzMWZiMDY4
ODFlYTUxNzRkMTI2NjM2MTMxYzkwODFhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUXVpY2tMb29rTWFjLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgUXVpY2tMb29rTWFjX2gKKyNkZWZpbmUgUXVpY2tMb29rTWFjX2gKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBRdWlja0xvb2tNYWMgeworcHVibGljOgorICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGNvbXB1dGVOZWVkc1F1aWNrTG9va1Jlc291cmNl
Q2FjaGluZ1F1aXJrcygpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gUXVpY2tMb29rTWFjX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9RdWlja0xvb2tNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUXVpY2tMb29r
TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4MTg3YjU5ZWUwYTVmY2QyNjZiMTU2ODY5OTUwZDhmOWJkMjJh
NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUXVpY2tM
b29rTWFjLm1tCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMTQgQXBwbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiUXVpY2tMb29rTWFjLmgiCisKKyNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgUXVpY2tMb29rTWFjOjpjb21w
dXRlTmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQoreworICAgIGlmIChhcHBs
aWNhdGlvbklzU2FmYXJpKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5TQXJyYXkg
KmZyYW1ld29ya3MgPSBbTlNCdW5kbGUgYWxsRnJhbWV3b3Jrc107CisKKyAgICBpZiAoIWZyYW1l
d29ya3MpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAoTlNCdW5kbGUgKmJ1bmRs
ZSBpbiBmcmFtZXdvcmtzKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGJ1bmRsZUlEID0gW1tidW5k
bGUgYnVuZGxlSWRlbnRpZmllcl0gVVRGOFN0cmluZ107CisgICAgICAgIGlmIChidW5kbGVJRCAm
JiAhc3RyY2FzZWNtcChidW5kbGVJRCwgImNvbS5hcHBsZS5RdWlja0xvb2tVSUZyYW1ld29yayIp
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggMjdhNmQ0MTlhMTg3NWJjYWY4
MjlmN2MxODljNDc4ZTI0ODU0NDAxMS4uMDRkOWIwMGI0Y2VkNzQ1OGI5ZWY2NDhkZjgxMmY2ODM1
ZTM5YTAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlUmVxdWVzdC5oCkBAIC0xMTcsMTAgKzExNyw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBzdGF0aWMgYm9vbCByZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCk7CiAK
LSNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgc3RhdGljIGJvb2wgdXNlUXVpY2tMb29rUmVz
b3VyY2VDYWNoaW5nUXVpcmtzKCk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKElPUykKICAgICAg
ICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRJc01haW5SZXNvdXJjZVJlcXVlc3QoKSBkb2VzIG5vdCBy
ZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWUgaWYgdGhlIFJlc291cmNlUmVxdWVzdCBoYXMgYmVlbgog
ICAgICAgICAvLyBkZXNlcmlhbGl6ZWQgZnJvbSBhbiBJUEMgbWVzc2FnZS4gQXMgYSByZXN1bHQg
dGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSByZWxpZWQgb24gd2hlbiBuZXR3b3JraW5nIGlzIG5v
dCBpbiBhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9S
ZXNvdXJjZVJlcXVlc3RJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lv
cy9SZXNvdXJjZVJlcXVlc3RJT1MubW0KaW5kZXggMDgyMzY5ODQzOWJmZGRmNTRjYjE4MWJkYTNm
NGIyY2Y1NzNjNTM3OC4uNDcwY2VhYmFkOGUxY2ViYWJlZDcxYzFkNjg3OWFiYWUzMWIyMTRkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VS
ZXF1ZXN0SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1Jl
c291cmNlUmVxdWVzdElPUy5tbQpAQCAtMzUsMTEgKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1ib29sIFJlc291cmNlUmVxdWVzdDo6dXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5n
UXVpcmtzKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KICNpZiBVU0UoQ0ZORVRXT1JLKQog
CiBSZXNvdXJjZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdChOU1VSTFJlcXVlc3QgKm5zUmVxdWVz
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlUmVxdWVzdE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jl
c291cmNlUmVxdWVzdE1hYy5tbQppbmRleCAzMWRlNGE2YTZmNDBjYzNlN2FmZTZlYTdjMGFjODc0
NWU4NjJkZGM4Li42OTRlNTNjNGE1NzMyMjIwZDQ0NjFkYzEwZjYwZGQ5ODRhYTg3OTZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVl
c3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VSZXF1ZXN0TWFjLm1tCkBAIC0yOCw4ICsyOCw2IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAK
LSNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KIAogQGludGVyZmFjZSBOU1VSTFJlcXVlc3QgKFdlYk5TVVJMUmVx
dWVzdERldGFpbHMpCkBAIC0zOSwzMSArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXN0YXRpYyBib29sIGluaXRRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQotewotICAg
IGlmIChhcHBsaWNhdGlvbklzU2FmYXJpKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAK
LSAgICBOU0FycmF5KiBmcmFtZXdvcmtzID0gW05TQnVuZGxlIGFsbEZyYW1ld29ya3NdOwotICAg
IAotICAgIGlmICghZnJhbWV3b3JrcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAg
IGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgW2ZyYW1ld29ya3MgY291bnRdOyBpKyspIHsK
LSAgICAgICAgTlNCdW5kbGUqIGJ1bmRsZSA9IFtmcmFtZXdvcmtzIG9iamVjdEF0SW5kZXg6IGld
OwotICAgICAgICBjb25zdCBjaGFyKiBidW5kbGVJRCA9IFtbYnVuZGxlIGJ1bmRsZUlkZW50aWZp
ZXJdIFVURjhTdHJpbmddOwotICAgICAgICBpZiAoYnVuZGxlSUQgJiYgIXN0cmNhc2VjbXAoYnVu
ZGxlSUQsICJjb20uYXBwbGUuUXVpY2tMb29rVUlGcmFtZXdvcmsiKSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgUmVzb3VyY2VS
ZXF1ZXN0Ojp1c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQotewotICAgIHN0YXRp
YyBib29sIGZsYWcgPSBpbml0UXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCk7Ci0gICAg
cmV0dXJuIGZsYWc7Ci19Ci0KICNpZiBVU0UoQ0ZORVRXT1JLKQogCiBSZXNvdXJjZVJlcXVlc3Q6
OlJlc291cmNlUmVxdWVzdChOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDg0MTVhNTM5YWE2MDFkNWI5MGU1ZmRkMzU4MmUyNGQyNmNkYzBjZmYuLjZmZWM0MzI2NTky
NWJlMDFkY2FhOTY0YTQ2OTY4ZjUwMzI4OTczMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjM5LDYg
KzIzOSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVRdWlja0xvb2tI
YW5kbGUoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lm
IFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNRdWlja0xvb2tSZXNvdXJjZUNh
Y2hpbmdRdWlya3MoKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lk
IGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbnRl
bnRGaWx0ZXI+KSBvdmVycmlkZTsKIAogICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJGcmFt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0KaW5kZXggMmU0M2VmODU3MjljZmZhMThjY2RhMDU0OGFlYWZmYWY0
NzJlZGZjZi4uODkzYTU1MGQxYjA4OGY1ODQyMjhiZDQyNGZkYTUzZmM3YmNiN2MxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0KQEAgLTE0Niw2ICsxNDYsOCBAQAogI2ltcG9ydCAiV2ViS2l0VmVyc2lvbkNo
ZWNrcy5oIgogI2ltcG9ydCAiV2ViTWFpbERlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJVSUtpdERl
bGVnYXRlLmgiCisjZWxzZQorI2ltcG9ydCA8V2ViQ29yZS9RdWlja0xvb2tNYWMuaD4KICNlbmRp
ZgogCiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0yMjQ3LDYgKzIyNDksMTQgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKFdlYkNvcmU6OlF1aWNr
TG9va0hhbmRsZSYgaGEKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6bmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBj
b25zdAoreworICAgIHN0YXRpYyBjb25zdCBib29sIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNl
Q2FjaGluZ1F1aXJrcyA9IFF1aWNrTG9va01hYzo6Y29tcHV0ZU5lZWRzUXVpY2tMb29rUmVzb3Vy
Y2VDYWNoaW5nUXVpcmtzKCk7CisgICAgcmV0dXJuIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNl
Q2FjaGluZ1F1aXJrczsKK30KKyNlbmRpZgorCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpj
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50
RmlsdGVyPiBjb250ZW50RmlsdGVyKQogewogICAgIG1fd2ViRnJhbWUtPl9wcml2YXRlLT5jb250
ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQgPSBXVEY6Om1vdmUoY29udGVudEZpbHRlcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKaW5kZXggZGE3MTNiZDE3Y2Y4OTI1ZDRjODBlOGZmODNiNzUwYWM4ODNhNjU5Zi4uZmU2
YTIzMjM4ZTk2OTNhZThmNmE2YWI5MzMwMDU0YzM4YTA1MzI5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
MTA2LDYgKzEwNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGVuY29kZXIgPDwgcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAgICAgZW5jb2RlciA8
PCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKKyAgICBlbmNvZGVy
IDw8IG5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzOwogICAgIGVuY29kZXIgPDwg
bnNVUkxDYWNoZU1lbW9yeUNhcGFjaXR5OwogICAgIGVuY29kZXIgPDwgbnNVUkxDYWNoZURpc2tD
YXBhY2l0eTsKICAgICBlbmNvZGVyIDw8IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0OwpAQCAt
MjMwLDYgKzIzMSw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVu
aGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNo
aW5nUXVpcmtzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5uc1VSTENhY2hlTWVtb3J5Q2FwYWNpdHkpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVEaXNr
Q2FwYWNpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMjc5NzlmOTUyNTNkYjJmNmY1ZjVhNjEwNDY1YWQxNTIw
ZjY0YTM3NC4uMTFmYjI5OGEzMWM2MDA0MGEyYjUxOTVkMzkzNDNiODk5NGUxMzBiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCkBAIC0xMjQsNiArMTI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIHBpZF90IHByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogCiAgICAgYm9vbCBhY2Nl
c3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKKyAgICBib29sIG5lZWRzUXVp
Y2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzOwogCiAgICAgdWludDY0X3QgbnNVUkxDYWNoZU1l
bW9yeUNhcGFjaXR5OwogICAgIHVpbnQ2NF90IG5zVVJMQ2FjaGVEaXNrQ2FwYWNpdHk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KaW5kZXggMmY2YjY4
ZjdiMzBlZGIyMGM4MGU3YmM1MWIxMzFkMTU5M2IwNGYxYy4uODBmZGFkMjk4ZmYxMjdlMmJiODQ0
MTMzNGU4YmJhMTI4ZTA5OGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJDb250ZXh0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1hYy5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3NJT1MuaD4KICNlbHNlCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NB
UmVtb3RlTGF5ZXJTZXJ2ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUXVpY2tMb29rTWFjLmg+CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCkBAIC0xNzUsOCArMTc2LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5j
ZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IFtbTlNBcHAgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOkAiQVhFbmhhbmNlZFVzZXJJbnRlcmZhY2UiXSBib29sVmFsdWVdOworICAgIHN0YXRpYyBj
b25zdCBib29sIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyA9IFF1aWNr
TG9va01hYzo6Y29tcHV0ZU5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCk7Cisg
ICAgcGFyYW1ldGVycy5uZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyA9IHNob3Vs
ZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrczsKICNlbHNlCiAgICAgcGFyYW1ldGVy
cy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IGZhbHNlOworICAg
IHBhcmFtZXRlcnMubmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MgPSBmYWxzZTsK
ICNlbmRpZgogCiAgICAgTlNVUkxDYWNoZSAqdXJsQ2FjaGUgPSBbTlNVUkxDYWNoZSBzaGFyZWRV
UkxDYWNoZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGNlZmFiZjAw
MDJiZWVjOWMzYzA2N2Q2ODdiMzYxNzRkZjk1OTkxMzUuLjkxZjhlOGY2MDJhZWZjNDA3YmZjYjI0
NmM0OWNjZjhkNjNjNTNhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBA
IC0xNjU2LDQgKzE2NTYsMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVxdWVz
dEF1dG9jb21wbGV0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4KIH0KICNlbmRpZgog
CisjaWYgUExBVEZPUk0oTUFDKQorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6bmVlZHNRdWlj
a0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5uZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcygpOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDYxZjYzZjBiYjQyNzc5NjUyNTI5MzUyN2JkZWIzMmJhMDkyYTY2NjQuLjkzZTc4
OGExMmNmNTRlMmQ1YThiMDBlMGI0OTcxZDUxZWE1NGZhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKQEAgLTIzMiw2ICsyMzIsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZSYpIG92
ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIG5l
ZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5k
aWYKKwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKICAgICB2aXJ0dWFsIHZvaWQgY29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29udGVudEZp
bHRlcj4pIG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCAyMzYzYTNiZWI4NzM2MGMwZmVlODdhOTFjMDNmZmY3ZTI4ZmY4M2FiLi5h
ZmRlYWVlNzZiOTE5MDVmOTlmMTZhZWUyZDBkNTYzZTgxYWNjZjZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE1NSw2ICsxNTUsOSBAQCBXZWJQcm9jZXNz
OjpXZWJQcm9jZXNzKCkKICAgICAsIG1fY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KE1BQ0hf
UE9SVF9OVUxMKQogICAgICwgbV9jbGVhclJlc291cmNlQ2FjaGVzRGlzcGF0Y2hHcm91cCgwKQog
I2VuZGlmCisjaWYgUExBVEZPUk0oTUFDKQorICAgICwgbV9uZWVkc1F1aWNrTG9va1Jlc291cmNl
Q2FjaGluZ1F1aXJrcyhmYWxzZSkKKyNlbmRpZgogICAgICwgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NF
bmFibGVkKGZhbHNlKQogICAgICwgbV90ZXh0Q2hlY2tlclN0YXRlKCkKICAgICAsIG1faWNvbkRh
dGFiYXNlUHJveHkobmV3IFdlYkljb25EYXRhYmFzZVByb3h5KHRoaXMpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAyMTI1MWMwNThhYzkwYzAxN2FmYWYzZTgwNzE5
NDJlM2JkZjhjNzI0Li5mMTg2NDg2YzIzMjg3MmY2ZmFjODhhNWM3N2E5YjMwODVhMTk0ZTVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTE2LDYgKzExNiwxMCBA
QCBwdWJsaWM6CiAgICAgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkg
Y29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQ7IH0KICNlbmRpZgog
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgbmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hp
bmdRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5n
UXVpcmtzOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9y
aWdpbihjb25zdCBXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJp
bmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgdm9pZCBwbHVn
SW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJp
bmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lv
bklEKTsKICAgICB2b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3Ry
aW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKQEAgLTMxMCw2ICszMTQsOSBAQCBwcml2
YXRlOgogICAgIGRpc3BhdGNoX2dyb3VwX3QgbV9jbGVhclJlc291cmNlQ2FjaGVzRGlzcGF0Y2hH
cm91cDsKICAgICBib29sIG1fc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uOwogI2Vu
ZGlmCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgbV9uZWVkc1F1aWNrTG9va1Jlc291cmNl
Q2FjaGluZ1F1aXJrczsKKyNlbmRpZgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0Vu
YWJsZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KaW5kZXggNTJlYmZiMGI5ZTI1ZTQ0Zjc4NGU3OWRiMDZjNmExMDJjZTRhNzIy
NS4uNGRhY2VmYzllYmJjYjhhZGRmMTBhZWY1ODdkMDMwMmY0ZjU5MDdiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTE5
MSw2ICsxOTEsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycwogICAgIE1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpzZXRMb2dnaW5nRW5hYmxlZChwYXJhbWV0ZXJzLnNob3Vs
ZEVuYWJsZU1lbW9yeVByZXNzdXJlUmVsaWVmTG9nZ2luZyk7CiAKICAgICBzZXRFbmhhbmNlZEFj
Y2Vzc2liaWxpdHkocGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNl
RW5hYmxlZCk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIG1fbmVlZHNRdWlja0xvb2tSZXNvdXJj
ZUNhY2hpbmdRdWlya3MgPSBwYXJhbWV0ZXJzLm5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5n
UXVpcmtzOworI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQogICAgIFtbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdIHJlZ2lzdGVyRGVmYXVsdHM6QHsgQCJOU0FwcGxpY2F0aW9u
Q3Jhc2hPbkV4Y2VwdGlvbnMiIDogQFlFUyB9XTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240276</attachid>
            <date>2014-10-22 09:57:17 -0700</date>
            <delta_ts>2014-10-22 10:43:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137893-20141022095723.patch</filename>
            <type>text/plain</type>
            <size>30807</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJjMWYwYzM4Y2UwMzYz
NGNkMzE3ZGQxNWNhYmZkZDQxZGFhMjIwNi4uMGY5Nzc3NGUzODZlNTM0NGVmNTdhMjE1ODBkZjUx
YjM4NTUwMzY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE0LTEwLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV0syXSBGaXggYXBw
bGljYXRpb25Jc1NhZmFyaSgpIGRldGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBJIG5vdGljZWQgd2hlbiBwcm9maWxpbmcgU2FmYXJp
IG9uIE1hYyB0aGF0IHdlIHdlcmUgZXhlcmNpc2luZyBhIGNvZGUKKyAgICAgICAgcGF0aCB3ZSBz
aG91bGRuJ3QgYmVjYXVzZSBpdCBpcyBtZWFudCBmb3Igb3RoZXIgYXBwbGljYXRpb25zIHRoYXQK
KyAgICAgICAgU2FmYXJpLgorCisgICAgICAgIFRoZSBkZXRlY3Rpb24gcmVsaWVzIG9uIHRoZSBh
cHBsaWNhdGlvbklzU2FmYXJpKCkgZnVuY3Rpb24gaW4KKyAgICAgICAgUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmNwcC4gVGhpcyB3YXMgaW4gc29tZSBjYXNlcyByZXR1cm5pbmcgZmFsc2Ugb24K
KyAgICAgICAgbXkgbWFjaGluZSBldmVuIHRob3VnaCBJIHdhcyBydW5uaW5nIFNhZmFyaSBzbyBJ
IGludmVzdGlnYXRlZCBhIGJpdCBhbmQKKyAgICAgICAgbm90aWNlZCB0aGF0IHRoZSBjaGVjayBy
ZWxpZXMgb24gdGhlIG1haW4gYnVuZGxlIGlkZW50aWZpZXIgc3RyaW5nIGFuZAorICAgICAgICBp
cyBkb2luZzoKKyAgICAgICAgaXNTYWZhcmkgPSBtYWluQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBw
bGUuU2FmYXJpIikKKyAgICAgICAgICAgIHx8IG1haW5CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBs
ZS5XZWJQcm9jZXNzIik7CisKKyAgICAgICAgVGhpcyBXZWJQcm9jZXNzIGRldGVjdGlvbiBpcyB2
ZXJ5IHVucmVsaWFibGUgYmVjYXVzZToKKyAgICAgICAgLSBJdCBtYXRjaGVzIG90aGVyIGFwcHMg
dGhhbiBTYWZhcmkncyBXZWJQcm9jZXNzZXMKKyAgICAgICAgLSBUaGUgYnVuZGxlIG5hbWUgZm9y
IHRoZSBXZWJQcm9jZXNzIGlzIHNvbWV0aW1lcworICAgICAgICAiY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50IiBvcgorICAgICAgICAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVs
b3BtZW50Ii4KKworICAgICAgICBUaGUgc29sdXRpb24gdXNlZCBpbiB0aGlzIHBhdGNoIGlzIHRv
IG1vdmUgdGhlIGFwcGxpY2F0aW9uSXNTYWZhcmkoKQorICAgICAgICBjaGVjayB0byB0aGUgVUlQ
cm9jZXNzIHNvIHRoYXQgdGhlIGNoZWNrIGFjdHVhbGx5IHN1Y2NlZWRzIHJlbGlhYmx5LgorICAg
ICAgICBUaGUgY2FsbCBzaXRlIGZvciBhcHBsaWNhdGlvbklzU2FmYXJpKCkgd2FzIGluCisgICAg
ICAgIFJlc291cmNlUmVxdWVzdDo6dXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCku
IFRoaXMgbWF0Y2gKKyAgICAgICAgcmVtb3ZlcyB0aGF0IGxvZ2ljIGZyb20gUmVzb3VyY2VSZXF1
ZXN0IGFuZCBtb3ZlIGl0IHRvCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50IGFzIG9ubHkgdGhl
IEZyYW1lTG9hZGVyIGlzIGludGVyZXN0ZWQgaW4gdGhpcworICAgICAgICBpbmZvcm1hdGlvbi4g
VGhlIGxvZ2ljIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgdXNlIFF1aWNrTG9vaworICAgICAg
ICByZXNvdXJjZSBjYWNoaW5nIHF1aXJrcyBpcyBtb3ZlZCB0byBhIG5ldyBRdWlja0xvb2sgY2xh
c3MgdW5kZXIKKyAgICAgICAgcGxhdGZvcm0vIGFzIHRoZSBjb2RlIG5lZWRzIHRvIGJlIHNoYXJl
ZCBiZXR3ZWVuIFdlYktpdCBhbmQgV2ViS2l0Mi4KKyAgICAgICAgT24gV2ViS2l0Miwgd2UgbWFr
ZSB1c2UgdGhhdCBjb2RlIG9uIHRoZSBVSVByb2Nlc3Mgc2lkZSBhbmQgcGFzcworICAgICAgICB0
aGUgZmxhZyBhcyBhIHBhcmFtZXRlciB3aGVuIGNvbnN0cnVjdGluZyB0aGUgV2ViUHJvY2Vzcy4g
VGhlIGZsYWcKKyAgICAgICAgaXMgdGhlbiBzdG9yZWQgb24gdGhlIFdlYlByb2Nlc3MgYW5kIHF1
ZXJpZWQgYnkgV2ViRnJhbWVMb2FkZXJDbGllbnQuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ug
d291bGQgc3BlbmQgfjElIG9mIHRoZSBXZWJQcm9jZXNzIGNwdSB0aW1lICh3aGVuIGxvYWRpbmcK
KyAgICAgICAgYXBwbGUuY29tKSB0cnlpbmcgdG8gZGV0ZWN0IGlmIHdlIHNob3VsZCB1c2UgUXVp
Y2tMb29rIHJlc291cmNlIGNhY2hpbmcKKyAgICAgICAgcXVpcmtzIGV2ZW4gdGhvdWdoIHRoYXQg
Y2hlY2sgd2FzIHN1cHBvc2VkIHRvIGJlIGRpc2FibGVkIGFuZCByZXR1cm4KKyAgICAgICAgZWFy
bHkgd2hlbiBydW5uaW5nIFNhZmFyaS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vdCBlYXNp
bHkgdGVzdGFibGUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6c3VicmVzb3VyY2VDYWNoZVBvbGljeSk6CisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNTYWZhcmkp
OgorICAgICAgICBSZW1vdmUgImNvbS5hcHBsZS5XZWJQcm9jZXNzIiBidW5kbGUgbmFtZSBtYXRj
aGluZyBhcyB0aGlzIGNhdXNlcyBmYWxzZQorICAgICAgICBwb3NpdGl2ZXMgKG1hdGNoZXMgb3Ro
ZXIgYXBwbGljYXRpb25zIHRoYW4gU2FmYXJpJ3MgV2ViUHJvY2Vzc2VzKSBhbmQKKyAgICAgICAg
aXQgaXMgbm8gbG9uZ2VyIG5lZWRlZCBub3cgdGhhdCBhcHBsaWNhdGlvbklzU2FmYXJpKCkgaXMg
YWx3YXlzIGNhbGxlZAorICAgICAgICBmcm9tIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvUXVpY2tMb29rTWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9RdWlja0xvb2tNYWMubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OlF1aWNr
TG9va01hYzo6Y29tcHV0ZU5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvaW9zL1Jlc291cmNlUmVxdWVzdElPUy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6dXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVl
c3RNYWMubW06CisgICAgICAgIChXZWJDb3JlOjppbml0UXVpY2tMb29rUmVzb3VyY2VDYWNoaW5n
UXVpcmtzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6dXNl
UXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKTogRGVsZXRlZC4KKwogMjAxNC0xMC0yMiAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gRml4IEdTdHJlYW1lciBkZWJ1ZyBidWlsZCBhZnRlciByMTc1MDUwLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCmluZGV4IGM3NjAyZjIyNWJlOTBkODkxYTc0NDVmMzg1OWJlOGE0Njc3ZjVlZTguLmI4
ZWQxMTVmZTYxYWZkYjU5YmRmNzg2MTVkMWFkODRiOGMxYTFjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxNC0xMC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNYWNdW1dLMl0gRml4IGFwcGxpY2F0aW9uSXNTYWZhcmkoKSBkZXRl
Y3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
Nzg5MworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAg
ICAgUHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgRnJhbWVMb2FkZXJDbGllbnQncyBuZXcK
KyAgICAgICAgbmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSB0aGF0IHJldHVy
bnMKKyAgICAgICAgYSBzdGF0aWMgZmxhZyBpbml0aWFsaXplZCB1c2luZworICAgICAgICBRdWlj
a0xvb2tNYWM6OmNvbXB1dGVOZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcygpLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKwogMjAxNC0xMC0y
MCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlUmVx
dWVzdCBkZXNlcmlhbGl6YXRpb24gdW5uZWNlc3NhcmlseSBjYWxscyBwYXJ0aXRpb25OYW1lKCkg
b24gZW5jb2RlZCBjYWNoZSBwYXJ0aXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmNDE0M2ZkNzhjMjViZGMz
ZGQ1ZDA5MjMzMmFkNzE2NjE2Y2JhNDZiLi44OTYwNzAxZmExMzEyZDViMmNkY2ZjZWRhMzkwYzlh
ZWM4MzhmNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMTAtMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXVtXSzJdIEZpeCBhcHBs
aWNhdGlvbklzU2FmYXJpKCkgZGV0ZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc4OTMKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkg
UHJvc2t1cnlha292LgorCisgICAgICAgIFByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gZm9yIEZy
YW1lTG9hZGVyQ2xpZW50J3MgbmV3CisgICAgICAgIG5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNo
aW5nUXVpcmtzKCksIHdoaWNoIGFjY2Vzc2VzIHRoZSBmbGFnIHN0b3JlZAorICAgICAgICBvbiB0
aGUgV2ViUHJvY2Vzcywgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgdXBvbiBXZWJQcm9jZXNzIGNyZWF0
aW9uLgorCisgICAgICAgIFF1aWNrTG9va01hYzo6Y29tcHV0ZU5lZWRzUXVpY2tMb29rUmVzb3Vy
Y2VDYWNoaW5nUXVpcmtzKCkgaXMgY2FsbGVkCisgICAgICAgIG9uIFVJUHJvY2VzcyBzaWRlIHNv
IHRoYXQgaXQgd29ya3MgcmVsaWFibHkgYW5kIHRoZSBmbGFnIGlzIHBhc3NlZCBhcworICAgICAg
ICBwYXJhbWV0ZXIgd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6bmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bmVlZHNRdWlja0xvb2tSZXNvdXJjZUNh
Y2hpbmdRdWlya3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKwogMjAxNC0xMC0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IEdUSysgZGVidWcgYnVpbGQgYWZ0
ZXIgcjE3NTA0Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDEzZTQwNmFmNGU5MzdiMjIyZjcx
ZmJlYWRkMmVkYmZmYzJmY2EyNy4uZWFiNjM4ZWJmNTk5MzAxOTg2MzBiODlkYjVmMzhjMjE5MmVj
NjI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTI0MCw2ICsyNDAsNyBAQCBfX1pON1dlYkNv
cmUxMlByaW50Q29udGV4dDlzcG9vbFBhZ2VFUk5TXzE1R3JhcGhpY3NDb250ZXh0RWlmCiBfX1pO
N1dlYkNvcmUxMlByaW50Q29udGV4dDlzcG9vbFJlY3RFUk5TXzE1R3JhcGhpY3NDb250ZXh0RVJL
TlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dEMxRVBOU181RnJhbWVFCiBf
X1pON1dlYkNvcmUxMlByaW50Q29udGV4dEQxRXYKK19fWk43V2ViQ29yZTEyUXVpY2tMb29rTWFj
NDJjb21wdXRlTmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3NFdgogX19aTjdXZWJD
b3JlMTJSZW5kZXJPYmplY3QxNnBhaW50aW5nUm9vdFJlY3RFUk5TXzEwTGF5b3V0UmVjdEUKIF9f
Wk43V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTlzY3JvbGxSZWN0VG9WaXNpYmxlRVJLTlNfMTBMYXlv
dXRSZWN0RVJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pON1dlYkNvcmUxMlJlbmRlcldp
ZGdldDlzZXRXaWRnZXRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNldpZGdldEVFRQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhiMmQy
ZWEyYjE3NzVhM2VlNzBmOWIzOGE1YTY0ZjU5ZGZlMTYwNjMuLmM3NmVhYmFmOGNhYWFhM2I1ODkx
NDE4YmI5YjBmM2Q5ZWRlNzU4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1ODIsNiArMTU4Miw4IEBACiAJCTQ1QkFDMkIw
MTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NUJBQzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1RkVB
NUNGMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNp
bWFsLmNwcCAqLzsgfTsKIAkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNFMTU2
RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY0Mzc4MzExOUY3MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9v
a01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0
Mzc4MkYxOUY3MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9va01hYy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ2NDM3ODMyMTlGNzIwRUYwMDFFMzhC
MyAvKiBRdWlja0xvb2tNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjQzNzgzMDE5RjcyMEVGMDAxRTM4QjMgLyogUXVpY2tMb29rTWFjLm1tICov
OyB9OwogCQk0Njg5RjFBRjEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njg5RjFBRTEyNjdCQUUx
MDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggKi87IH07CiAJCTQ2QkQxNkUzMEIyNzk0NzMwMDFG
MDgzOSAvKiBub25lQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDZCRDE2RTIwQjI3OTQ3MzAwMUYwODM5IC8qIG5vbmVDdXJzb3IucG5n
ICovOyB9OwogCQk0NkQ0RjI0OTBBRjk3RTgxMDAzNTM4NUEgLyogY2VsbEN1cnNvci5wbmcgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RDRGMjQ2MEFG
OTdFODEwMDM1Mzg1QSAvKiBjZWxsQ3Vyc29yLnBuZyAqLzsgfTsKQEAgLTg2NDAsNiArODY0Miw4
IEBACiAJCTQ1QkFDMkFGMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25VUkwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDVGRUE1Q0QxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVjaW1hbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY2ltYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDY0Mzc4MkYxOUY3MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9va01hYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0xvb2tNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY0Mzc4MzAxOUY3MjBFRjAwMUUzOEIzIC8qIFF1aWNrTG9v
a01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFF1aWNrTG9v
a01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4OUYxQUUxMjY3QkFFMTAw
RThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBGaWxlTWV0YWRhdGEuaDsgcGF0aCA9IHBsYXRmb3JtL0ZpbGVNZXRhZGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJEMTZFMjBCMjc5NDczMDAxRjA4MzkgLyogbm9uZUN1
cnNvci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBpbWFnZS5wbmc7IHBhdGggPSBub25lQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZENEYyNDYwQUY5N0U4MTAwMzUzODVBIC8qIGNlbGxDdXJzb3IucG5nICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBw
YXRoID0gY2VsbEN1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQy
Myw2ICsxNjQyNyw4IEBACiAJCQkJQkM5NEQxMDcwQzI3NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3Jt
U2NyZWVuTWFjLm1tICovLAogCQkJCTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3
QSAvKiBQdWJsaWNTdWZmaXhNYWMubW0gKi8sCisJCQkJNDY0Mzc4MkYxOUY3MjBFRjAwMUUzOEIz
IC8qIFF1aWNrTG9va01hYy5oICovLAorCQkJCTQ2NDM3ODMwMTlGNzIwRUYwMDFFMzhCMyAvKiBR
dWlja0xvb2tNYWMubW0gKi8sCiAJCQkJQkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8qIFNjcm9s
bEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9s
bEFuaW1hdG9yTWFjLm1tICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3Jv
bGxiYXJUaGVtZU1hYy5oICovLApAQCAtMjY0ODksNiArMjY0OTUsNyBAQAogCQkJCTI2RjlBODM5
MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTNGRkZGOUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzhEMEJCMTg3OEU4OTEwMDNBQkRFNiAvKiBWaWV3U3Rh
dGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2NDM3ODMxMTlGNzIwRUYwMDFFMzhCMyAvKiBRdWlj
a0xvb2tNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTIwMDk5RTY0OTIwMDU2RTU4MSAv
KiBWaXNpYmxlUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QUI5OTY5MThEQTNDMDEw
MDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODgzREYy
ODBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTcyOCw2ICsyOTczNSw3IEBACiAJCQkJRTQyNEEzQTAxMzMwREYxRTAwQ0Y2REM5IC8qIExl
Z2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUU0QjY1QTVFMTMyRkFEQjYw
MDcwRTdCRSAvKiBMZWdhY3lUaWxlTGF5ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlFNEUzOUFG
RDEzMzBFRkM2MDAzQUIyNzQgLyogTGVnYWN5VGlsZUxheWVyUG9vbC5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTQ2NDM3ODMyMTlGNzIwRUYwMDFFMzhCMyAvKiBRdWlja0xvb2tNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQk0OTg3NzBGMjEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0REQjEyNTFGMTJEMDAzRUYyNjkgLyogVGltZUlucHV0
VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTUzQ0ZFOTEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCmluZGV4IDljOTBjYjdhYTJlNzQ1ZjQ0NjkyM2VmNjNjZjJlNTFmZjA2
NjlkYTMuLjM4YjRmMjMyNTFhZWNiMDU3YWNjNTlhYWUwZDYzMDRlZjYyZWY5NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQwMSw2ICs0MDEsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZXF1ZXN0QXV0b2NvbXBsZXRlKFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPikgb3ZlcnJpZGUgeyB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0
dWFsIGJvb2wgbmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZmNiNTI0YTc2NWJjNDBjODY0YzYx
MjBiOTAzOTNmNWIzNmFiNmE0Mi4uOTIwNzQ0NDE3Y2ViNjE5ZWJkNDc4NTk4MjViMzlhYjU4NzEw
NThiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMTUyLDggKzIx
NTIsOCBAQCBDYWNoZVBvbGljeSBGcmFtZUxvYWRlcjo6c3VicmVzb3VyY2VDYWNoZVBvbGljeSgp
IGNvbnN0CiAgICAgICAgIHJldHVybiBDYWNoZVBvbGljeVJldmFsaWRhdGU7CiAKICAgICBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoZG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpKTsK
LSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAocmVxdWVzdC5jYWNoZVBvbGljeSgpID09IFJl
bG9hZElnbm9yaW5nQ2FjaGVEYXRhICYmICFlcXVhbElnbm9yaW5nQ2FzZShyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSwgInBvc3QiKSAmJiBSZXNvdXJjZVJlcXVlc3Q6OnVzZVF1aWNrTG9va1Jlc291cmNl
Q2FjaGluZ1F1aXJrcygpKQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAocmVxdWVzdC5jYWNo
ZVBvbGljeSgpID09IFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhICYmICFlcXVhbElnbm9yaW5nQ2Fz
ZShyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgInBvc3QiKSAmJiBtX2NsaWVudC5uZWVkc1F1aWNrTG9v
a1Jlc291cmNlQ2FjaGluZ1F1aXJrcygpKQogICAgICAgICByZXR1cm4gQ2FjaGVQb2xpY3lSZXZh
bGlkYXRlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggM2NmYWQ4YWNlYTZmZTQ0MzdhYjZiYmEyNmMwYWIwNWU2MTdkMDJmNC4uM2VkYTYw
MGZjMTkxOTU2ZTE1ZGViODk4YjBkZDg2M2U1MGY5YTkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI4NSw2ICsyODUsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRp
b24oYm9vbCBsaXN0ZW4gPSB0cnVlKSA9IDA7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAg
IHZpcnR1YWwgYm9vbCBuZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcygpIGNvbnN0
ID0gMDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIC8vIEFsbG93IGFu
IGFjY2Vzc2liaWxpdHkgb2JqZWN0IHRvIHJldHJpZXZlIGEgRnJhbWUgcGFyZW50IGlmIHRoZXJl
J3Mgbm8gUGxhdGZvcm1XaWRnZXQuCiAgICAgICAgIHZpcnR1YWwgUmVtb3RlQVhPYmplY3RSZWYg
YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmluZGV4IDkxZTMzMjI2ZGJi
YWIyOTE2MWVlYTI2NGU1NzFiYjIzYzBjNTAzN2QuLmZiNjA2MDA4ZTE3NDNiOGQzY2EwMmUxZTU2
ODZkNjBjYWYzYTNhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAtNTcsOCArNTcsNyBAQCBzdGF0aWMgYm9vbCBt
YWluQnVuZGxlSXNFcXVhbFRvKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllclN0cmluZykK
IAogYm9vbCBhcHBsaWNhdGlvbklzU2FmYXJpKCkKIHsKLSAgICAvLyBGSVhNRTogRm9yIHRoZSBX
ZWJQcm9jZXNzIGNhc2UsIGVuc3VyZSB0aGF0IHRoaXMgaXMgU2FmYXJpJ3MgV2ViUHJvY2Vzcy4K
LSAgICBzdGF0aWMgYm9vbCBpc1NhZmFyaSA9IG1haW5CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBs
ZS5TYWZhcmkiKSB8fCBtYWluQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuV2ViUHJvY2VzcyIp
OworICAgIHN0YXRpYyBib29sIGlzU2FmYXJpID0gbWFpbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFw
cGxlLlNhZmFyaSIpOwogICAgIHJldHVybiBpc1NhZmFyaTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1F1aWNrTG9va01hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1F1aWNrTG9va01hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmMTc3ZWYzMWZiMDY4ODFl
YTUxNzRkMTI2NjM2MTMxYzkwODFhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUXVpY2tMb29rTWFjLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgUXVpY2tMb29rTWFjX2gKKyNkZWZpbmUgUXVpY2tMb29rTWFjX2gKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBRdWlja0xvb2tNYWMgeworcHVibGljOgorICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGNvbXB1dGVOZWVkc1F1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrcygpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UXVpY2tMb29rTWFjX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9R
dWlja0xvb2tNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUXVpY2tMb29rTWFj
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA4MTg3YjU5ZWUwYTVmY2QyNjZiMTU2ODY5OTUwZDhmOWJkMjJhNDgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUXVpY2tMb29r
TWFjLm1tCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMTQgQXBwbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiUXVpY2tMb29rTWFjLmgiCisKKyNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgUXVpY2tMb29rTWFjOjpjb21wdXRl
TmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQoreworICAgIGlmIChhcHBsaWNh
dGlvbklzU2FmYXJpKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5TQXJyYXkgKmZy
YW1ld29ya3MgPSBbTlNCdW5kbGUgYWxsRnJhbWV3b3Jrc107CisKKyAgICBpZiAoIWZyYW1ld29y
a3MpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAoTlNCdW5kbGUgKmJ1bmRsZSBp
biBmcmFtZXdvcmtzKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGJ1bmRsZUlEID0gW1tidW5kbGUg
YnVuZGxlSWRlbnRpZmllcl0gVVRGOFN0cmluZ107CisgICAgICAgIGlmIChidW5kbGVJRCAmJiAh
c3RyY2FzZWNtcChidW5kbGVJRCwgImNvbS5hcHBsZS5RdWlja0xvb2tVSUZyYW1ld29yayIpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggMjdhNmQ0MTlhMTg3NWJjYWY4Mjlm
N2MxODljNDc4ZTI0ODU0NDAxMS4uMDRkOWIwMGI0Y2VkNzQ1OGI5ZWY2NDhkZjgxMmY2ODM1ZTM5
YTAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlUmVxdWVzdC5oCkBAIC0xMTcsMTAgKzExNyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICBzdGF0aWMgYm9vbCByZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCk7CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgc3RhdGljIGJvb2wgdXNlUXVpY2tMb29rUmVzb3Vy
Y2VDYWNoaW5nUXVpcmtzKCk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAg
Ly8gRklYTUU6IGRlcHJlY2F0ZWRJc01haW5SZXNvdXJjZVJlcXVlc3QoKSBkb2VzIG5vdCByZXR1
cm4gdGhlIGNvcnJlY3QgdmFsdWUgaWYgdGhlIFJlc291cmNlUmVxdWVzdCBoYXMgYmVlbgogICAg
ICAgICAvLyBkZXNlcmlhbGl6ZWQgZnJvbSBhbiBJUEMgbWVzc2FnZS4gQXMgYSByZXN1bHQgdGhp
cyBmdW5jdGlvbiBjYW4gb25seSBiZSByZWxpZWQgb24gd2hlbiBuZXR3b3JraW5nIGlzIG5vdCBp
biBhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9SZXNv
dXJjZVJlcXVlc3RJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9S
ZXNvdXJjZVJlcXVlc3RJT1MubW0KaW5kZXggMDgyMzY5ODQzOWJmZGRmNTRjYjE4MWJkYTNmNGIy
Y2Y1NzNjNTM3OC4uNDcwY2VhYmFkOGUxY2ViYWJlZDcxYzFkNjg3OWFiYWUzMWIyMTRkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VSZXF1
ZXN0SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1Jlc291
cmNlUmVxdWVzdElPUy5tbQpAQCAtMzUsMTEgKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1ib29sIFJlc291cmNlUmVxdWVzdDo6dXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVp
cmtzKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KICNpZiBVU0UoQ0ZORVRXT1JLKQogCiBS
ZXNvdXJjZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdChOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
UmVxdWVzdE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlUmVxdWVzdE1hYy5tbQppbmRleCAzMWRlNGE2YTZmNDBjYzNlN2FmZTZlYTdjMGFjODc0NWU4
NjJkZGM4Li42OTRlNTNjNGE1NzMyMjIwZDQ0NjFkYzEwZjYwZGQ5ODRhYTg3OTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VS
ZXF1ZXN0TWFjLm1tCkBAIC0yOCw4ICsyOCw2IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNp
bXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotCiAjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KIAogQGludGVyZmFjZSBOU1VSTFJlcXVlc3QgKFdlYk5TVVJMUmVxdWVz
dERldGFpbHMpCkBAIC0zOSwzMSArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBib29sIGluaXRRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQotewotICAgIGlm
IChhcHBsaWNhdGlvbklzU2FmYXJpKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAg
ICBOU0FycmF5KiBmcmFtZXdvcmtzID0gW05TQnVuZGxlIGFsbEZyYW1ld29ya3NdOwotICAgIAot
ICAgIGlmICghZnJhbWV3b3JrcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgW2ZyYW1ld29ya3MgY291bnRdOyBpKyspIHsKLSAg
ICAgICAgTlNCdW5kbGUqIGJ1bmRsZSA9IFtmcmFtZXdvcmtzIG9iamVjdEF0SW5kZXg6IGldOwot
ICAgICAgICBjb25zdCBjaGFyKiBidW5kbGVJRCA9IFtbYnVuZGxlIGJ1bmRsZUlkZW50aWZpZXJd
IFVURjhTdHJpbmddOwotICAgICAgICBpZiAoYnVuZGxlSUQgJiYgIXN0cmNhc2VjbXAoYnVuZGxl
SUQsICJjb20uYXBwbGUuUXVpY2tMb29rVUlGcmFtZXdvcmsiKSkKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgUmVzb3VyY2VSZXF1
ZXN0Ojp1c2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKQotewotICAgIHN0YXRpYyBi
b29sIGZsYWcgPSBpbml0UXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCk7Ci0gICAgcmV0
dXJuIGZsYWc7Ci19Ci0KICNpZiBVU0UoQ0ZORVRXT1JLKQogCiBSZXNvdXJjZVJlcXVlc3Q6OlJl
c291cmNlUmVxdWVzdChOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4
IDg0MTVhNTM5YWE2MDFkNWI5MGU1ZmRkMzU4MmUyNGQyNmNkYzBjZmYuLjZmZWM0MzI2NTkyNWJl
MDFkY2FhOTY0YTQ2OTY4ZjUwMzI4OTczMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjM5LDYgKzIz
OSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVRdWlja0xvb2tIYW5k
bGUoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hp
bmdRdWlya3MoKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXI+KSBvdmVycmlkZTsKIAogICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJGcmFtZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KaW5kZXggMmU0M2VmODU3MjljZmZhMThjY2RhMDU0OGFlYWZmYWY0NzJl
ZGZjZi4uODkzYTU1MGQxYjA4OGY1ODQyMjhiZDQyNGZkYTUzZmM3YmNiN2MxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KQEAgLTE0Niw2ICsxNDYsOCBAQAogI2ltcG9ydCAiV2ViS2l0VmVyc2lvbkNoZWNr
cy5oIgogI2ltcG9ydCAiV2ViTWFpbERlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJVSUtpdERlbGVn
YXRlLmgiCisjZWxzZQorI2ltcG9ydCA8V2ViQ29yZS9RdWlja0xvb2tNYWMuaD4KICNlbmRpZgog
CiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0yMjQ3LDYgKzIyNDksMTQgQEAgdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKFdlYkNvcmU6OlF1aWNrTG9v
a0hhbmRsZSYgaGEKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6bmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBjb25z
dAoreworICAgIHN0YXRpYyBjb25zdCBib29sIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrcyA9IFF1aWNrTG9va01hYzo6Y29tcHV0ZU5lZWRzUXVpY2tMb29rUmVzb3VyY2VD
YWNoaW5nUXVpcmtzKCk7CisgICAgcmV0dXJuIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrczsKK30KKyNlbmRpZgorCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb250
ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50Rmls
dGVyPiBjb250ZW50RmlsdGVyKQogewogICAgIG1fd2ViRnJhbWUtPl9wcml2YXRlLT5jb250ZW50
RmlsdGVyRm9yQmxvY2tlZExvYWQgPSBXVEY6Om1vdmUoY29udGVudEZpbHRlcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggZGE3MTNiZDE3Y2Y4OTI1ZDRjODBlOGZmODNiNzUwYWM4ODNhNjU5Zi4uZmU2YTIz
MjM4ZTk2OTNhZThmNmE2YWI5MzMwMDU0YzM4YTA1MzI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTA2
LDYgKzEwNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIGVuY29kZXIgPDwgcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAgICAgZW5jb2RlciA8PCBh
Y2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8
IG5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzOwogICAgIGVuY29kZXIgPDwgbnNV
UkxDYWNoZU1lbW9yeUNhcGFjaXR5OwogICAgIGVuY29kZXIgPDwgbnNVUkxDYWNoZURpc2tDYXBh
Y2l0eTsKICAgICBlbmNvZGVyIDw8IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0OwpAQCAtMjMw
LDYgKzIzMSw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFu
Y2VkVXNlckludGVyZmFjZUVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5n
UXVpcmtzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy5uc1VSTENhY2hlTWVtb3J5Q2FwYWNpdHkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVEaXNrQ2Fw
YWNpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggMjc5NzlmOTUyNTNkYjJmNmY1ZjVhNjEwNDY1YWQxNTIwZjY0
YTM3NC4uMTFmYjI5OGEzMWM2MDA0MGEyYjUxOTVkMzkzNDNiODk5NGUxMzBiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CkBAIC0xMjQsNiArMTI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
ewogICAgIHBpZF90IHByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogCiAgICAgYm9vbCBhY2Nlc3Np
YmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKKyAgICBib29sIG5lZWRzUXVpY2tM
b29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzOwogCiAgICAgdWludDY0X3QgbnNVUkxDYWNoZU1lbW9y
eUNhcGFjaXR5OwogICAgIHVpbnQ2NF90IG5zVVJMQ2FjaGVEaXNrQ2FwYWNpdHk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KaW5kZXggMmY2YjY4Zjdi
MzBlZGIyMGM4MGU3YmM1MWIxMzFkMTU5M2IwNGYxYy4uODBmZGFkMjk4ZmYxMjdlMmJiODQ0MTMz
NGU4YmJhMTI4ZTA5OGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1hYy5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3NJT1MuaD4KICNlbHNlCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBUmVt
b3RlTGF5ZXJTZXJ2ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUXVpY2tMb29rTWFjLmg+CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCkBAIC0xNzUsOCArMTc2LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRV
c2VySW50ZXJmYWNlRW5hYmxlZCA9IFtbTlNBcHAgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
OkAiQVhFbmhhbmNlZFVzZXJJbnRlcmZhY2UiXSBib29sVmFsdWVdOworICAgIHN0YXRpYyBjb25z
dCBib29sIHNob3VsZFVzZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyA9IFF1aWNrTG9v
a01hYzo6Y29tcHV0ZU5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCk7CisgICAg
cGFyYW1ldGVycy5uZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcyA9IHNob3VsZFVz
ZVF1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrczsKICNlbHNlCiAgICAgcGFyYW1ldGVycy5h
Y2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IGZhbHNlOworICAgIHBh
cmFtZXRlcnMubmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3MgPSBmYWxzZTsKICNl
bmRpZgogCiAgICAgTlNVUkxDYWNoZSAqdXJsQ2FjaGUgPSBbTlNVUkxDYWNoZSBzaGFyZWRVUkxD
YWNoZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGNlZmFiZjAwMDJi
ZWVjOWMzYzA2N2Q2ODdiMzYxNzRkZjk1OTkxMzUuLjkxZjhlOGY2MDJhZWZjNDA3YmZjYjI0NmM0
OWNjZjhkNjNjNTNhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0x
NjU2LDQgKzE2NTYsMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVxdWVzdEF1
dG9jb21wbGV0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4KIH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oTUFDKQorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6bmVlZHNRdWlja0xv
b2tSZXNvdXJjZUNhY2hpbmdRdWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5uZWVkc1F1aWNrTG9va1Jlc291cmNlQ2FjaGluZ1F1aXJrcygpOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDYxZjYzZjBiYjQyNzc5NjUyNTI5MzUyN2JkZWIzMmJhMDkyYTY2NjQuLjkzZTc4OGEx
MmNmNTRlMmQ1YThiMDBlMGI0OTcxZDUxZWE1NGZhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTIzMiw2ICsyMzIsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZSYpIG92ZXJy
aWRlOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIG5lZWRz
UXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYK
KwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKICAgICB2aXJ0dWFsIHZvaWQgY29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29udGVudEZpbHRl
cj4pIG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCAyMzYzYTNiZWI4NzM2MGMwZmVlODdhOTFjMDNmZmY3ZTI4ZmY4M2FiLi5hZmRl
YWVlNzZiOTE5MDVmOTlmMTZhZWUyZDBkNTYzZTgxYWNjZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE1NSw2ICsxNTUsOSBAQCBXZWJQcm9jZXNzOjpX
ZWJQcm9jZXNzKCkKICAgICAsIG1fY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KE1BQ0hfUE9S
VF9OVUxMKQogICAgICwgbV9jbGVhclJlc291cmNlQ2FjaGVzRGlzcGF0Y2hHcm91cCgwKQogI2Vu
ZGlmCisjaWYgUExBVEZPUk0oTUFDKQorICAgICwgbV9uZWVkc1F1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrcyhmYWxzZSkKKyNlbmRpZgogICAgICwgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFi
bGVkKGZhbHNlKQogICAgICwgbV90ZXh0Q2hlY2tlclN0YXRlKCkKICAgICAsIG1faWNvbkRhdGFi
YXNlUHJveHkobmV3IFdlYkljb25EYXRhYmFzZVByb3h5KHRoaXMpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAyMTI1MWMwNThhYzkwYzAxN2FmYWYzZTgwNzE5NDJl
M2JkZjhjNzI0Li5mMTg2NDg2YzIzMjg3MmY2ZmFjODhhNWM3N2E5YjMwODVhMTk0ZTVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTE2LDYgKzExNiwxMCBAQCBw
dWJsaWM6CiAgICAgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkgY29u
c3QgeyByZXR1cm4gbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQ7IH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgbmVlZHNRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdR
dWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVp
cmtzOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9yaWdp
bihjb25zdCBXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcm
IHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgdm9pZCBwbHVnSW5E
aWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcm
IHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklE
KTsKICAgICB2b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5n
JiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKQEAgLTMxMCw2ICszMTQsOSBAQCBwcml2YXRl
OgogICAgIGRpc3BhdGNoX2dyb3VwX3QgbV9jbGVhclJlc291cmNlQ2FjaGVzRGlzcGF0Y2hHcm91
cDsKICAgICBib29sIG1fc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgbV9uZWVkc1F1aWNrTG9va1Jlc291cmNlQ2Fj
aGluZ1F1aXJrczsKKyNlbmRpZgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJs
ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KaW5kZXggNTJlYmZiMGI5ZTI1ZTQ0Zjc4NGU3OWRiMDZjNmExMDJjZTRhNzIyNS4u
NGRhY2VmYzllYmJjYjhhZGRmMTBhZWY1ODdkMDMwMmY0ZjU5MDdiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTE5MSw2
ICsxOTEsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
Y29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycwogICAgIE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6UmVsaWVmTG9nZ2VyOjpzZXRMb2dnaW5nRW5hYmxlZChwYXJhbWV0ZXJzLnNob3VsZEVu
YWJsZU1lbW9yeVByZXNzdXJlUmVsaWVmTG9nZ2luZyk7CiAKICAgICBzZXRFbmhhbmNlZEFjY2Vz
c2liaWxpdHkocGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5h
YmxlZCk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIG1fbmVlZHNRdWlja0xvb2tSZXNvdXJjZUNh
Y2hpbmdRdWlya3MgPSBwYXJhbWV0ZXJzLm5lZWRzUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVp
cmtzOworI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQogICAgIFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIHJlZ2lzdGVyRGVmYXVsdHM6QHsgQCJOU0FwcGxpY2F0aW9uQ3Jh
c2hPbkV4Y2VwdGlvbnMiIDogQFlFUyB9XTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>