<?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>193881</bug_id>
          
          <creation_ts>2019-01-26 22:18:59 -0800</creation_ts>
          <short_desc>Use a load optimizer for some sites</short_desc>
          <delta_ts>2019-01-27 12:44:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1498821</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-26 22:18:59 -0800</bug_when>
    <thetext>Use a load optimizer for some sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498822</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-26 22:22:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/46325455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498823</commentid>
    <comment_count>2</comment_count>
      <attachid>360270</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-26 22:41:04 -0800</bug_when>
    <thetext>Created attachment 360270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498835</commentid>
    <comment_count>3</comment_count>
      <attachid>360275</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-27 00:23:52 -0800</bug_when>
    <thetext>Created attachment 360275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498846</commentid>
    <comment_count>4</comment_count>
      <attachid>360281</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-27 01:18:28 -0800</bug_when>
    <thetext>Created attachment 360281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498847</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-27 01:19:40 -0800</bug_when>
    <thetext>Attachment 360281 did not pass style-queue:


ERROR: Source/WebKit/ChangeLog:21:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 15 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>1498848</commentid>
    <comment_count>6</comment_count>
      <attachid>360281</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-27 01:28:12 -0800</bug_when>
    <thetext>Comment on attachment 360281
Patch

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

&gt; Source/WebKit/ChangeLog:21
&gt; +        * UIProcess/Cocoa/MediaCaptureUtilities.h

Added :</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498877</commentid>
    <comment_count>7</comment_count>
      <attachid>360281</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-27 11:04:55 -0800</bug_when>
    <thetext>Comment on attachment 360281
Patch

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

R=me after fixing the ChangeLog and style warning.

&gt; Source/WebKitLegacy/ChangeLog:9
&gt; +        * WebKitLegacy.xcodeproj/project.pbxproj:

I don’t think this changelog is right. He load optimizer isn’t relevant to WebKitLegacy.

Did you mean to make this Changelog for the WebKit directory?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm:29
&gt; +#import &lt;WebKitAdditions/TestLoadOptimizerAdditions.mm&gt;

Not much of a test! :-)

I assume we’ll add some over the coming weeks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498883</commentid>
    <comment_count>8</comment_count>
      <attachid>360281</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-27 11:26:59 -0800</bug_when>
    <thetext>Comment on attachment 360281
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/LoadOptimizer.mm:27
&gt; +#import &quot;LoadOptimizer.h&quot;

I would rename LoadOptimizer to NavigationLoadOptimizer since this is navigation load specific.
Maybe there is a more specific term than Optimizer as well, not sure.

&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:472
&gt; +        auto* localCompletionHandler = new WTF::Function&lt;void (bool)&gt;(WTFMove(completionHandler));

This preexisting code could be modernized.
Maybe we should use a BlockPtr?
Also, if there is a bug in LSAppLink which makes it call the completion handler twice, we would delete twice localCompletionHandler.

&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:483
&gt; +#if HAVE(LOAD_OPTIMIZER)

Ditto for LOAD_OPTIMIZER -&gt; NAVIGATION_LOAD_OPTIMIZER

&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:490
&gt; +    completionHandler(false);

This could be written this way:
#if HAVE(LOAD_OPTIMIZER)
    page.websiteDataStore().loadOptimizer().tryLoading(navigationAction-&gt;request(), page, WTFMove(completionHandler));
#else
    completionHandler(false);
#endif
That way it is up to the loadOptimizer instance to know when it can or not optimize the load.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:242
&gt; +    LoadOptimizer&amp; loadOptimizer() { return m_loadOptimizer.get(); }

Ditto here, renaming loadOptimizer to navigationLoadOptimizer, might be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498884</commentid>
    <comment_count>9</comment_count>
      <attachid>360281</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-27 11:27:36 -0800</bug_when>
    <thetext>Comment on attachment 360281
Patch

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

Thanks Brent for r+ the patch.

&gt;&gt; Source/WebKitLegacy/ChangeLog:9
&gt;&gt; +        * WebKitLegacy.xcodeproj/project.pbxproj:
&gt; 
&gt; I don’t think this changelog is right. He load optimizer isn’t relevant to WebKitLegacy.
&gt; 
&gt; Did you mean to make this Changelog for the WebKit directory?

Sure, removed.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm:29
&gt;&gt; +#import &lt;WebKitAdditions/TestLoadOptimizerAdditions.mm&gt;
&gt; 
&gt; Not much of a test! :-)
&gt; 
&gt; I assume we’ll add some over the coming weeks.

: )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498887</commentid>
    <comment_count>10</comment_count>
      <attachid>360281</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-27 12:00:31 -0800</bug_when>
    <thetext>Comment on attachment 360281
Patch

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

Thanks Youenn and Brent for reviewing the patch.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/LoadOptimizer.mm:27
&gt;&gt; +#import &quot;LoadOptimizer.h&quot;
&gt; 
&gt; I would rename LoadOptimizer to NavigationLoadOptimizer since this is navigation load specific.
&gt; Maybe there is a more specific term than Optimizer as well, not sure.

I don&apos;t think we should focus too much on the naming.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:472
&gt;&gt; +        auto* localCompletionHandler = new WTF::Function&lt;void (bool)&gt;(WTFMove(completionHandler));
&gt; 
&gt; This preexisting code could be modernized.
&gt; Maybe we should use a BlockPtr?
&gt; Also, if there is a bug in LSAppLink which makes it call the completion handler twice, we would delete twice localCompletionHandler.

You are right. Could we modernize the code in a separate patch since it is unrelated to what I have done here? Bug 193886.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:490
&gt;&gt; +    completionHandler(false);
&gt; 
&gt; This could be written this way:
&gt; #if HAVE(LOAD_OPTIMIZER)
&gt;     page.websiteDataStore().loadOptimizer().tryLoading(navigationAction-&gt;request(), page, WTFMove(completionHandler));
&gt; #else
&gt;     completionHandler(false);
&gt; #endif
&gt; That way it is up to the loadOptimizer instance to know when it can or not optimize the load.

Good catch. I would keep that in mind. Since we have this lock step development process for things involving internal. I will address this later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498889</commentid>
    <comment_count>11</comment_count>
      <attachid>360304</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-27 12:06:21 -0800</bug_when>
    <thetext>Created attachment 360304
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498890</commentid>
    <comment_count>12</comment_count>
      <attachid>360281</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-01-27 12:14:48 -0800</bug_when>
    <thetext>Comment on attachment 360281
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:490
&gt;&gt;&gt; +    completionHandler(false);
&gt;&gt; 
&gt;&gt; This could be written this way:
&gt;&gt; #if HAVE(LOAD_OPTIMIZER)
&gt;&gt;     page.websiteDataStore().loadOptimizer().tryLoading(navigationAction-&gt;request(), page, WTFMove(completionHandler));
&gt;&gt; #else
&gt;&gt;     completionHandler(false);
&gt;&gt; #endif
&gt;&gt; That way it is up to the loadOptimizer instance to know when it can or not optimize the load.
&gt; 
&gt; Good catch. I would keep that in mind. Since we have this lock step development process for things involving internal. I will address this later.

&lt;rdar://problem/47582894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498896</commentid>
    <comment_count>13</comment_count>
      <attachid>360304</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-27 12:44:10 -0800</bug_when>
    <thetext>Comment on attachment 360304
Patch for landing

Clearing flags on attachment: 360304

Committed r240555: &lt;https://trac.webkit.org/changeset/240555&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360270</attachid>
            <date>2019-01-26 22:41:04 -0800</date>
            <delta_ts>2019-01-27 00:22:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>WIP.patch</filename>
            <type>text/plain</type>
            <size>26338</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MGE2NzA2ZDkxMy4uZDk4YmZmMzIzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wMS0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBhIGxvYWQgb3B0aW1pemVyIGZvciBzb21lIHNpdGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM4ODEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ2MzI1NDU1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGb3JtRGF0YTo6ZmxhdHRlbiB0byBiZSB1c2VkIGJ5
IHRoZSBsb2FkIG9wdGltaXplci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmg6CisKIDIw
MTktMDEtMDggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViQXV0aE5dIFN1cHBvcnQgVTJGIEhJRCBBdXRoZW50aWNhdG9ycyBvbiBtYWNPUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNl
YzY2NzgyNDU0Li40NDI2NGUyZTgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzIwODUsNiArMzIwODUsNyBAQAogCQkJCVNw
YW5pc2gsCiAJCQkJRHV0Y2gsCiAJCQkJSXRhbGlhbiwKKwkJCQllbiwKIAkJCSk7CiAJCQltYWlu
R3JvdXAgPSAwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViQ29yZSAqLzsKIAkJCXByb2R1
Y3RSZWZHcm91cCA9IDAzNDc2OERGRkYzOEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0cyAqLzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAppbmRleCAzNjU5MGViYWY0
Yi4uZWZhYTFmMGVmNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmgKQEAgLTIyMSw3ICsyMjEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhcHBlbmRGaWxlUmFuZ2UoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgbG9uZyBsb25nIHN0YXJ0
LCBsb25nIGxvbmcgbGVuZ3RoLCBPcHRpb25hbDxXYWxsVGltZT4gZXhwZWN0ZWRNb2RpZmljYXRp
b25UaW1lLCBib29sIHNob3VsZEdlbmVyYXRlRmlsZSA9IGZhbHNlKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFwcGVuZEJsb2IoY29uc3QgVVJMJiBibG9iVVJMKTsKIAotICAgIFZlY3Rvcjxj
aGFyPiBmbGF0dGVuKCkgY29uc3Q7IC8vIG9taXRzIGZpbGVzCisgICAgV0VCQ09SRV9FWFBPUlQg
VmVjdG9yPGNoYXI+IGZsYXR0ZW4oKSBjb25zdDsgLy8gb21pdHMgZmlsZXMKICAgICBTdHJpbmcg
ZmxhdHRlblRvU3RyaW5nKCkgY29uc3Q7IC8vIG9taXRzIGZpbGVzCiAKICAgICAvLyBSZXNvbHZl
IGFsbCBibG9iIHJlZmVyZW5jZXMgc28gd2Ugb25seSBoYXZlIGZpbGUgYW5kIGRhdGEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGI2ZmQzMjQyMzFkLi41ZWNiYmQ2NjZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBA
QAorMjAxOS0wMS0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFVzZSBhIGxvYWQgb3B0aW1pemVyIGZvciBzb21lIHNpdGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM4ODEKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQ2MzI1NDU1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlIHdpbGwgdHJ5IHRvIHNwZWVkIHVwIHNvbWUgc2l0ZXMgd2l0aCBhIGRlZGlj
YXRlZCBsb2FkIG9wdGltaXplci4gVGhlIGxvYWQgb3B0aW1pemVyIGxpdmVzCisgICAgICAgIHdp
dGhpbiB0aGUgV2Vic2l0ZURhdGFTdG9yZSBhcyBvbmUgY2xpZW50IGluc3RhbmNlIHNob3VsZCBo
YXZlIG9ubHkgb25lIGFuZCBpdCBzaG91bGQgbGl2ZQorICAgICAgICBhcyBsb25nIGFzIHRoZSBj
bGllbnQgbGl2ZXMuIEhvdyBkb2VzIHRoZSBsb2FkIG9wdGltaXplciB3b3JrPyBJdCBpbnRlcmNl
cHRzIGV2ZXJ5IGxvYWQgaW4KKyAgICAgICAgdGhlIG5hdmlnYXRpb24gc3RhdGUuIElmIGEgcmVx
dWVzdCBtZWV0cyBzb21lIHJlcXVpcmVtZW50cywgaXQgd2lsbCB0aGVuIGZldGNoIHRoZSByZXF1
ZXN0CisgICAgICAgIGZyb20gaXRzIG93biBjYWNoZS4gT25jZSB0aGUgZmV0Y2ggc3VjY2VlZHMs
IHRoZSBvcmlnaW5hbCBsb2FkIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlCisgICAgICAgIG9wdGlt
aXplciB3aWxsIGRpc3BsYXkgdGhlIGNhY2hlZCBjb250ZW50LgorCisgICAgICAgIENvdmVyZWQg
YnkgQVBJIHRlc3RzLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvTG9hZE9wdGltaXplci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvTG9hZE9wdGltaXplci5tbTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6dHJ5SW50ZXJjZXB0TmF2
aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OnRyeUFwcExpbmspOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6bG9hZE9w
dGltaXplcik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMTktMDEtMDggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViQXV0aE5dIFN1cHBvcnQgVTJGIEhJRCBBdXRoZW50aWNhdG9ycyBvbiBtYWNPUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CmluZGV4IDMwOGY2NmNiZTZkLi44ZGM3MGNlYjkyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dApAQCAtMzIxLDYgKzMyMSw3IEBAIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2Ny
ZWVuQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLm1tCiBV
SVByb2Nlc3MvQ29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQogVUlQcm9jZXNzL0NvY29hL0xl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQorVUlQcm9jZXNzL0NvY29hL0xvYWRP
cHRpbWl6ZXIubW0KIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KIFVJUHJvY2Vz
cy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Mb2FkT3B0aW1pemVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9M
b2FkT3B0aW1pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFj
ZWNmMDQ1ZThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTG9hZE9wdGltaXplci5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL0xvYWRPcHRpbWl6ZXJBZGRpdGlvbnMuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTG9hZE9wdGltaXplci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL0xvYWRPcHRpbWl6ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjIxNWNlYmZkOWRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTG9hZE9wdGltaXplci5tbQpAQCAtMCwwICsxLDMxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJMb2FkT3B0aW1pemVyLmgi
CisKKyNpZiBIQVZFKExPQURfT1BUSU1JWkVSKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL0xv
YWRPcHRpbWl6ZXJBZGRpdGlvbnMubW0+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCAyODVkNjZiNzg0Yy4uMDEyYjA0
MTc0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0KQEAgLTQwLDYgKzQwLDcgQEAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQg
Ik5hdmlnYXRpb25BY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJQYWdlTG9hZFN0YXRlLmgiCisjaW1w
b3J0ICJMb2FkT3B0aW1pemVyLmgiCiAjaW1wb3J0ICJXS0JhY2tGb3J3YXJkTGlzdEludGVybmFs
LmgiCiAjaW1wb3J0ICJXS0JhY2tGb3J3YXJkTGlzdEl0ZW1JbnRlcm5hbC5oIgogI2ltcG9ydCAi
V0tGcmFtZUluZm9JbnRlcm5hbC5oIgpAQCAtNDY0LDI0ICs0NjUsMjkgQEAgYm9vbCBOYXZpZ2F0
aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShX
ZWJQYWdlUHJveHkKIH0KICNlbmRpZgogCi1zdGF0aWMgdm9pZCB0cnlBcHBMaW5rKFJlZjxBUEk6
Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgU3RyaW5nJiBjdXJy
ZW50TWFpbkZyYW1lVVJMLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCitzdGF0aWMgdm9pZCB0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKFJlZjxBUEk6Ok5hdmln
YXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgU3RyaW5nJiBjdXJyZW50TWFp
bkZyYW1lVVJMLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBIQVZFKEFQUF9MSU5LUykKLSAgICBpZiAoIW5h
dmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBMaW5rcygpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKKyAgICBpZiAobmF2aWdhdGlvbkFjdGlvbi0+c2hvdWxkT3BlbkFw
cExpbmtzKCkpIHsKKyAgICAgICAgYXV0byogbG9jYWxDb21wbGV0aW9uSGFuZGxlciA9IG5ldyBX
VEY6OkZ1bmN0aW9uPHZvaWQgKGJvb2wpPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgICAgIFtMU0FwcExpbmsgb3BlbldpdGhVUkw6bmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgp
LnVybCgpIGNvbXBsZXRpb25IYW5kbGVyOltsb2NhbENvbXBsZXRpb25IYW5kbGVyXShCT09MIHN1
Y2Nlc3MsIE5TRXJyb3IgKikgeworICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW2xvY2FsQ29tcGxldGlvbkhhbmRsZXIsIHN1Y2Nlc3NdIHsKKyAg
ICAgICAgICAgICAgICAoKmxvY2FsQ29tcGxldGlvbkhhbmRsZXIpKHN1Y2Nlc3MpOworICAgICAg
ICAgICAgICAgIGRlbGV0ZSBsb2NhbENvbXBsZXRpb25IYW5kbGVyOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH1dOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKLSAgICBhdXRv
KiBsb2NhbENvbXBsZXRpb25IYW5kbGVyID0gbmV3IFdURjo6RnVuY3Rpb248dm9pZCAoYm9vbCk+
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICBbTFNBcHBMaW5rIG9wZW5XaXRoVVJM
Om5hdmlnYXRpb25BY3Rpb24tPnJlcXVlc3QoKS51cmwoKSBjb21wbGV0aW9uSGFuZGxlcjpbbG9j
YWxDb21wbGV0aW9uSGFuZGxlcl0oQk9PTCBzdWNjZXNzLCBOU0Vycm9yICopIHsKLSAgICAgICAg
ZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW2xvY2FsQ29tcGxldGlv
bkhhbmRsZXIsIHN1Y2Nlc3NdIHsKLSAgICAgICAgICAgICgqbG9jYWxDb21wbGV0aW9uSGFuZGxl
cikoc3VjY2Vzcyk7Ci0gICAgICAgICAgICBkZWxldGUgbG9jYWxDb21wbGV0aW9uSGFuZGxlcjsK
LSAgICAgICAgfSk7Ci0gICAgfV07Ci0jZWxzZQotICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsKKyNpZiBIQVZFKExPQURfT1BUSU1JWkVSKQorICAgIGlmIChMb2FkT3B0aW1pemVyOjpjYW5P
cHRpbWl6ZUxvYWQobmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpKSkgeworICAgICAg
ICBwYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5sb2FkT3B0aW1pemVyKCkub3B0aW1pemVMb2FkKG5h
dmlnYXRpb25BY3Rpb24tPnJlcXVlc3QoKSwgcGFnZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlmCisKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CiB9CiAKIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVBy
b3h5LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFJlZjxX
ZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiB1c2Vy
SW5mbykKQEAgLTQ5Myw4ICs0OTksOCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlv
bkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgIGlm
ICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyCiAgICAgICAgICYm
ICFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNp
ZXMKICAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNp
b25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzKSB7Ci0gICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRs
ZXIgPSBbd2ViUGFnZSA9IG1ha2VSZWYod2ViUGFnZVByb3h5KSwgbGlzdGVuZXIgPSBXVEZNb3Zl
KGxpc3RlbmVyKSwgbmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJlZigp
XSAoYm9vbCBmb2xsb3dlZExpbmtUb0FwcCkgewotICAgICAgICAgICAgaWYgKGZvbGxvd2VkTGlu
a1RvQXBwKSB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbd2ViUGFnZSA9IG1h
a2VSZWYod2ViUGFnZVByb3h5KSwgbGlzdGVuZXIgPSBXVEZNb3ZlKGxpc3RlbmVyKSwgbmF2aWdh
dGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJlZigpXSAoYm9vbCBpbnRlcmNlcHRl
ZE5hdmlnYXRpb24pIHsKKyAgICAgICAgICAgIGlmIChpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsK
ICAgICAgICAgICAgICAgICBsaXN0ZW5lci0+aWdub3JlKCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtNTIxLDcgKzUyNyw3IEBAIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdl
YlBhZ2VQCiAjZW5kaWYKICAgICAgICAgICAgIGxpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAg
fTsKLSAgICAgICAgdHJ5QXBwTGluayhXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBtYWluRnJh
bWVVUkxTdHJpbmcsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgdHJ5SW50
ZXJjZXB0TmF2aWdhdGlvbihXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBtYWluRnJhbWVVUkxT
dHJpbmcsIHdlYlBhZ2VQcm94eSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC01NTYsOCArNTYyLDggQEAgdm9pZCBOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2Vi
UGFnZVAKICAgICAgICAgc3dpdGNoIChhY3Rpb25Qb2xpY3kpIHsKICAgICAgICAgY2FzZSBXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdzoKICAgICAgICAgY2FzZSBfV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5QWxsb3dJbk5ld1Byb2Nlc3M6Ci0gICAgICAgICAgICB0cnlBcHBMaW5rKFdURk1v
dmUobmF2aWdhdGlvbkFjdGlvbiksIG1haW5GcmFtZVVSTFN0cmluZywgW2FjdGlvblBvbGljeSwg
bG9jYWxMaXN0ZW5lciA9IFdURk1vdmUobG9jYWxMaXN0ZW5lciksIHdlYnNpdGVQb2xpY2llcyA9
IFdURk1vdmUoYXBpV2Vic2l0ZVBvbGljaWVzKV0oYm9vbCBmb2xsb3dlZExpbmtUb0FwcCkgbXV0
YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZvbGxvd2VkTGlua1RvQXBwKSB7CisgICAgICAg
ICAgICB0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIG1h
aW5GcmFtZVVSTFN0cmluZywgd2ViUGFnZVByb3h5LCBbYWN0aW9uUG9saWN5LCBsb2NhbExpc3Rl
bmVyID0gV1RGTW92ZShsb2NhbExpc3RlbmVyKSwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZShh
cGlXZWJzaXRlUG9saWNpZXMpXShib29sIGludGVyY2VwdGVkTmF2aWdhdGlvbikgbXV0YWJsZSB7
CisgICAgICAgICAgICAgICAgaWYgKGludGVyY2VwdGVkTmF2aWdhdGlvbikgewogICAgICAgICAg
ICAgICAgICAgICBsb2NhbExpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggNGQ3ZjUxMTRm
ODIuLjFiNTMyYWQyMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkRldmljZUlkSGFzaFNhbHRTdG9yYWdlLmgiCiAjaW5jbHVkZSAiTW9ja0F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIkxvYWRPcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNz
YWdlcy5oIgpAQCAtOTcsNiArOTgsOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0
b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4mJiBjb25maWd1cgogI2lmIEVO
QUJMRShXRUJfQVVUSE4pCiAgICAgLCBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VVbmlxdWVS
ZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkpCiAjZW5kaWYKKyNpZiBIQVZFKExPQURfT1BUSU1J
WkVSKQorICAgICwgbV9sb2FkT3B0aW1pemVyKG1ha2VVbmlxdWVSZWY8TG9hZE9wdGltaXplcj4o
KSkKKyNlbmRpZgogewogICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoYWxsUHJpdmlsZWdl
cygpKTsKICAgICBtYXliZVJlZ2lzdGVyV2l0aFNlc3Npb25JRE1hcCgpOwpAQCAtMTEzLDYgKzEx
Nyw5IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgLCBtX2F1dGhlbnRpY2F0b3JN
YW5hZ2VyKG1ha2VVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkpCiAjZW5kaWYKKyNp
ZiBIQVZFKExPQURfT1BUSU1JWkVSKQorICAgICwgbV9sb2FkT3B0aW1pemVyKG1ha2VVbmlxdWVS
ZWY8TG9hZE9wdGltaXplcj4oKSkKKyNlbmRpZgogewogICAgIG1heWJlUmVnaXN0ZXJXaXRoU2Vz
c2lvbklETWFwKCk7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXgg
N2M1MzQzZTIxNTguLjE0NzZlZmEzMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC01OCw2ICs1OCw3IEBA
IGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1dGhl
bnRpY2F0b3JNYW5hZ2VyOworY2xhc3MgTG9hZE9wdGltaXplcjsKIGNsYXNzIFNlY0tleVByb3h5
U3RvcmU7CiBjbGFzcyBTdG9yYWdlTWFuYWdlcjsKIGNsYXNzIERldmljZUlkSGFzaFNhbHRTdG9y
YWdlOwpAQCAtMTg4LDYgKzE4OSwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fY29uZmlndXJh
dGlvbi5nZXQoKTsgfQogCisjaWYgSEFWRShMT0FEX09QVElNSVpFUikKKyAgICBMb2FkT3B0aW1p
emVyJiBsb2FkT3B0aW1pemVyKCkgeyByZXR1cm4gbV9sb2FkT3B0aW1pemVyLmdldCgpOyB9Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vz
c2lvbklEKTsKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbj4mJiwgUEFMOjpTZXNzaW9uSUQpOwpAQCAtMjU2LDYgKzI2MSwxMCBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgVW5pcXVlUmVmPEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyPiBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyOwogI2VuZGlmCisKKyNpZiBIQVZF
KExPQURfT1BUSU1JWkVSKQorICAgIFVuaXF1ZVJlZjxMb2FkT3B0aW1pemVyPiBtX2xvYWRPcHRp
bWl6ZXI7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDljODI1MTc4MzI2Li4xNDFhZWNiNzJhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDE1
LDYgKzEwMTUsNyBAQAogCQk1NzU5N0VCRDIxODE4NDkwMDAzN0Y5MjQgLyogQ3RhcEhpZEF1dGhl
bnRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3NTk3RUJCMjE4MTg0OEYwMDM3RjkyNCAvKiBDdGFwSGlkQXV0aGVudGljYXRvci5oICovOyB9
OwogCQk1NzcyRjIwNjIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3MkYyMDQyMTdEQkQ2QTAwNTZC
RjJDIC8qIEhpZFNlcnZpY2UuaCAqLzsgfTsKIAkJNTc4REMyOTgyMTU1QTAwMjAwNzRFODE1IC8q
IExvY2FsQXV0aGVudGljYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc4REMyOTcyMTU1QTAwMTAwNzRFODE1IC8qIExvY2FsQXV0
aGVudGljYXRpb25Tb2Z0TGluay5oICovOyB9OworCQk1NzkwMEI0MDIxRjhGOUI4MDA4MzE3REUg
LyogTG9hZE9wdGltaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTc5MDBCM0UyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIuaCAqLzsg
fTsKIAkJNTdBQzhGNTAyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5lY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QUM4RjRFMjE3RkVFRDkw
MDU1NDM4QyAvKiBIaWRDb25uZWN0aW9uLmggKi87IH07CiAJCTU3QjRCNDYwMjBCNTA0QUMwMEQ0
QUQ3OSAvKiBDbGllbnRDZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0I0QjQ1RTIwQjUw
NEFCMDBENEFENzkgLyogQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50
cy5oICovOyB9OwogCQk1N0RDRUQ2RTIxNDJFRTVFMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFRDZCMjE0MkVBRTIwMDE2Qjg0NyAvKiBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMzM3NCw2
ICszMzc1LDggQEAKIAkJNTc3MkYyMDQyMTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSGlkU2VydmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzcyRjIwNTIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEhpZFNlcnZpY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
OERDMjk3MjE1NUEwMDEwMDc0RTgxNSAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3OTAwQjNFMjFGOEY5QjgwMDgzMTdERSAvKiBMb2FkT3B0aW1p
emVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRPcHRpbWl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTc5MDBCM0YyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkT3B0aW1pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0FDOEY0RTIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBIaWRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3QUM4RjRGMjE3RkVFRDkwMDU1NDM4QyAvKiBIaWRDb25uZWN0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gSGlkQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTdCNEI0NUQyMEI1MDRBQjAwRDRBRDc5IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdl
ckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQXV0aGVu
dGljYXRpb25NYW5hZ2VyQ29jb2EubW07IHBhdGggPSBBdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRo
ZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUzMTcsNiArNTMyMCw4IEBACiAJCQkJNTFDMEM5NzMxRERENzRGMDAwMzJDQUQzIC8qIEljb25M
b2FkaW5nRGVsZWdhdGUubW0gKi8sCiAJCQkJN0E4MjFGNEIxRTJGNjY0ODAwNjA0NTc3IC8qIExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oICovLAogCQkJCTdBODIxRjREMUUyRjY3
OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gKi8sCisJ
CQkJNTc5MDBCM0UyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIuaCAqLywKKwkJCQk1
NzkwMEIzRjIxRjhGOUI4MDA4MzE3REUgLyogTG9hZE9wdGltaXplci5tbSAqLywKIAkJCQkxQUJD
M0RGNDE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNE
RjMxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKIAkJCQk1QzZDRTZE
MzFGNTlFQTM1MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5oICovLApAQCAtOTg5Nyw2
ICs5OTAyLDcgQEAKIAkJCQk3Qzg5RDJBNDFBNjc4ODc1MDAzQTVGREUgLyogV0tVc2VyU2NyaXB0
UmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyogV0tW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tW
aWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3OTAwQjQwMjFGOEY5QjgwMDgzMTdE
RSAvKiBMb2FkT3B0aW1pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI4QTQ5NzFBRjk2NUEx
MDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUJG
QTYxNzlGMTJGMEI5OUQwMDMzRTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNUUxQUZFOTE2QjIwQjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggMjBkMjY5YzZiZjQuLjg5YmE5NmRmZTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTAxLTI2ICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgbG9hZCBvcHRpbWl6
ZXIgZm9yIHNvbWUgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5Mzg4MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYzMjU0NTU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRMZWdh
Y3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0wNCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQ1NQIHZpb2xhdGlvbiByZXBvcnRzIHNo
b3VsZCBieXBhc3MgQ1NQIGNoZWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9X
ZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTdkN2JkNzZm
MmMuLmVhZjA5ZGJmMzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExl
Z2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
V2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyMzAsNiArMzIzMCw3
IEBACiAJCQkJU3BhbmlzaCwKIAkJCQlEdXRjaCwKIAkJCQlJdGFsaWFuLAorCQkJCWVuLAogCQkJ
KTsKIAkJCW1haW5Hcm91cCA9IDA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQgKi87
CiAJCQlwcm9kdWN0UmVmR3JvdXAgPSAwMzQ3NjhERkZGMzhBNTA0MTFEQjlDOEIgLyogUHJvZHVj
dHMgKi87CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNjFiZjBkNjZmZTMuLjNjYmU4NjhhNTEzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMjYgIEppZXdl
biBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBsb2FkIG9wdGlt
aXplciBmb3Igc29tZSBzaXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzODgxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NjMyNTQ1NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVzdExvYWRPcHRpbWl6ZXIubW06IEFk
ZGVkLgorCiAyMDE5LTAxLTA4ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dlYkF1dGhOXSBTdXBwb3J0IFUyRiBISUQgQXV0aGVudGljYXRvcnMgb24gbWFj
T1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWMzMzc4NWFiOGUuLmVjMDQyNzRkMjBkIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjc0LDYgKzI3NCw3IEBACiAJCTU3NTk5RTJBMUYw
NzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGli
aWxpdHlSZWFkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc1OTlFMjUxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCAqLzsgfTsKIAkJNTc1OTlFMkIx
RjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0
aWJpbGl0eVdyaXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi87IH07CiAJCTU3NjlD
NTBCMUQ5QjAwMDIwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjlDNTBBMUQ5QjAwMDEw
MDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLzsgfTsKKwkJNTc3NEFBNjgy
MUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8q
IFRlc3RMb2FkT3B0aW1pemVyLm1tICovOyB9OwogCQk1NzhDQkQ2NzIwNEZCMkM4MDA4M0I5RjIg
LyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzhDQkQ2NjIwNEZCMkM3MDA4M0I5RjIgLyogTG9j
YWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCTU3OTAxRkIxMUNBRjE0MkQwMEVE
NjRGOSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzkwMUZCMDFDQUYxNDFDMDBFRDY0Rjkg
LyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lmh0bWwgKi87IH07CiAJCTU3OTY1MUU3MjE2QkZERUQw
MDZFQkZFNSAvKiBGaWRvSGlkTWVzc2FnZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5NjUxRTYyMTZCRkQ1MzAwNkVCRkU1IC8qIEZpZG9I
aWRNZXNzYWdlVGVzdC5jcHAgKi87IH07CkBAIC0xNjMzLDYgKzE2MzQsNyBAQAogCQk1NzU5OUUy
NTFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5UmVhZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzU5OUUyNjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJJbmRleGVkREJTdHJ1Y3R1cmVk
Q2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0iOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0
b0tleVdyYXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZXJp
YWxpemVkQ3J5cHRvS2V5V3JhcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc3
NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVGVzdExvYWRPcHRpbWl6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3OENCRDY2MjA0RkIyQzcwMDgzQjlGMiAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcms7
IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0xvY2FsQXV0aGVudGljYXRpb24uZnJh
bWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKIAkJNTc5MDFGQUMxQ0FGMTJDMjAwRUQ2
NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTc5MDFGQUUxQ0FGMTM3MTAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJM
UmVxdWVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJ
bnZhbGlkVVJMUmVxdWVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0ODcs
NiArMjQ4OSw3IEBACiAJCQkJQTEyNTQ3OEQxREIxOEI5NDAwMzU4NTY0IC8qIExvYWREYXRhV2l0
aE5pbE1JTUVUeXBlLm1tICovLAogCQkJCTQ2MTJDMkI4MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2Fk
RmlsZVRoZW5SZWxvYWQubW0gKi8sCiAJCQkJNTc5MDFGQUMxQ0FGMTJDMjAwRUQ2NEY5IC8qIExv
YWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLywKKwkJCQk1Nzc0QUE2NzIxRkJCRjc4MDBBRjJBMUIg
LyogVGVzdExvYWRPcHRpbWl6ZXIubW0gKi8sCiAJCQkJNTFFNkE4OTIxRDJGMUJFQzAwQzAwNEI2
IC8qIExvY2FsU3RvcmFnZUNsZWFyLm1tICovLAogCQkJCUNBMzg0NTk1MjBBRTAxMkUwMDk5MEQz
QiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIubW0gKi8sCiAJCQkJNDZDNTE5RDgxRDM1
NUE3MzAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tICovLApAQCAtNDIxNSw2
ICs0MjE4LDcgQEAKIAkJCQk3Q0NFN0YyNzFBNDExQUY2MDA0NDdDNEMgLyogVXNlckNvbnRlbnRD
b250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMkQxQTQxMUIxMDAwNDQ3QzRD
IC8qIFVzZXJDb250ZW50VGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODgyRTBBMUM4MEM3
NjQwMDZCRjczMSAvKiBVc2VyQ29udGVudFdvcmxkLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTc3
NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDQjk5MjExRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25J
bk5hdmlnYXRpb25BY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxNzFBNDExQUU2
MDA0NDdDNEMgLyogVXNlck1lZGlhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTlDMzQ5MUVC
QTJEN0IwMDNCNzUzMiAvKiBVc2VyTWVkaWFEaXNhYmxlZC5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXN0TG9hZE9w
dGltaXplci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVzdExv
YWRPcHRpbWl6ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM2
ZjI5YzU5NzhlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9UZXN0TG9hZE9wdGltaXplci5tbQpAQCAtMCwwICsxLDMwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBIQVZFKExPQURfT1BUSU1JWkVSKQorI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL1Rlc3RMb2FkT3B0aW1pemVyQWRkaXRpb25zLm1tPgorI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360275</attachid>
            <date>2019-01-27 00:23:52 -0800</date>
            <delta_ts>2019-01-27 01:18:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>WIP.patch</filename>
            <type>text/plain</type>
            <size>25336</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYWExMTM5OTRkNi4uYjBjNGI4Njk5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wMS0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBhIGxvYWQgb3B0aW1pemVyIGZvciBzb21lIHNpdGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM4ODEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ2MzI1NDU1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGb3JtRGF0YTo6ZmxhdHRlbiB0byBiZSB1c2VkIGJ5
IHRoZSBsb2FkIG9wdGltaXplci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmg6CisKIDIw
MTktMDEtMjYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWxsb3cgc2Nyb2xsaW5nIHRyZWUgbm9kZXMgdG8gZXhpc3QgaW4gYSBkZXRhY2hlZCBzdGF0
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCmluZGV4IDM2NTkw
ZWJhZjRiLi5lZmFhMWYwZWY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9Gb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Rm9ybURhdGEuaApAQCAtMjIxLDcgKzIyMSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFwcGVuZEZpbGVSYW5nZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBsb25nIGxvbmcg
c3RhcnQsIGxvbmcgbG9uZyBsZW5ndGgsIE9wdGlvbmFsPFdhbGxUaW1lPiBleHBlY3RlZE1vZGlm
aWNhdGlvblRpbWUsIGJvb2wgc2hvdWxkR2VuZXJhdGVGaWxlID0gZmFsc2UpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgYXBwZW5kQmxvYihjb25zdCBVUkwmIGJsb2JVUkwpOwogCi0gICAgVmVj
dG9yPGNoYXI+IGZsYXR0ZW4oKSBjb25zdDsgLy8gb21pdHMgZmlsZXMKKyAgICBXRUJDT1JFX0VY
UE9SVCBWZWN0b3I8Y2hhcj4gZmxhdHRlbigpIGNvbnN0OyAvLyBvbWl0cyBmaWxlcwogICAgIFN0
cmluZyBmbGF0dGVuVG9TdHJpbmcoKSBjb25zdDsgLy8gb21pdHMgZmlsZXMKIAogICAgIC8vIFJl
c29sdmUgYWxsIGJsb2IgcmVmZXJlbmNlcyBzbyB3ZSBvbmx5IGhhdmUgZmlsZSBhbmQgZGF0YS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNhMTAxM2I2ZGMuLjBmZTdkZDlkZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMzIEBACisyMDE5LTAxLTI2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXNlIGEgbG9hZCBvcHRpbWl6ZXIgZm9yIHNvbWUgc2l0ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzg4MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDYzMjU0NTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2Ugd2lsbCB0cnkgdG8gc3BlZWQgdXAgc29tZSBzaXRlcyB3aXRoIGEg
ZGVkaWNhdGVkIGxvYWQgb3B0aW1pemVyLiBUaGUgbG9hZCBvcHRpbWl6ZXIgbGl2ZXMKKyAgICAg
ICAgd2l0aGluIHRoZSBXZWJzaXRlRGF0YVN0b3JlIGFzIG9uZSBjbGllbnQgaW5zdGFuY2Ugc2hv
dWxkIGhhdmUgb25seSBvbmUgYW5kIGl0IHNob3VsZCBsaXZlCisgICAgICAgIGFzIGxvbmcgYXMg
dGhlIGNsaWVudCBsaXZlcy4gSG93IGRvZXMgdGhlIGxvYWQgb3B0aW1pemVyIHdvcms/IEl0IGlu
dGVyY2VwdHMgZXZlcnkgbG9hZCBpbgorICAgICAgICB0aGUgbmF2aWdhdGlvbiBzdGF0ZS4gSWYg
YSByZXF1ZXN0IG1lZXRzIHNvbWUgcmVxdWlyZW1lbnRzLCBpdCB3aWxsIHRoZW4gZmV0Y2ggdGhl
IHJlcXVlc3QKKyAgICAgICAgZnJvbSBpdHMgb3duIGNhY2hlLiBPbmNlIHRoZSBmZXRjaCBzdWNj
ZWVkcywgdGhlIG9yaWdpbmFsIGxvYWQgd2lsbCBiZSBpZ25vcmVkIGFuZCB0aGUKKyAgICAgICAg
b3B0aW1pemVyIHdpbGwgZGlzcGxheSB0aGUgY2FjaGVkIGNvbnRlbnQuCisKKyAgICAgICAgQ292
ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLm1tOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbnRlcmNl
cHROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6dHJ5QXBwTGluayk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjps
b2FkT3B0aW1pemVyKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAxOS0wMS0yNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBBbGxvdyBzY3JvbGxpbmcgdHJlZSBub2RlcyB0byBleGlzdCBpbiBhIGRldGFj
aGVkIHN0YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjY5NjRjZDUxYjEuLmIxNTYyYTI5
NTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMjMsNiArMzIzLDcgQEAgVUlQcm9jZXNz
L0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5Q
YWdlU3RhdGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiBVSVBy
b2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCitVSVByb2Nl
c3MvQ29jb2EvTG9hZE9wdGltaXplci5tbQogVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0
aWxpdGllcy5tbQogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQogVUlQcm9jZXNz
L0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL0xvYWRPcHRpbWl6ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL0xvYWRPcHRpbWl6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYWNlY2YwNDVlOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShMT0FEX09QVElNSVpFUikKKyNpbmNsdWRlIDxXZWJL
aXRBZGRpdGlvbnMvTG9hZE9wdGltaXplckFkZGl0aW9ucy5oPgorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTG9hZE9wdGltaXplci5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjE1Y2ViZmQ5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLm1tCkBAIC0wLDAgKzEs
MzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkxvYWRPcHRp
bWl6ZXIuaCIKKworI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpCisjaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvTG9hZE9wdGltaXplckFkZGl0aW9ucy5tbT4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IDFmNzMyY2E2NjU4
Li42YTQ3Y2VhZTkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyLmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCisj
aW1wb3J0ICJMb2FkT3B0aW1pemVyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJO
YXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgogI2ltcG9ydCAiUGFnZUxvYWRTdGF0ZS5oIgpAQCAtNDY0
LDI0ICs0NjUsMjkgQEAgYm9vbCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6Ondp
bGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlUHJveHkKIH0KICNlbmRpZgogCi1zdGF0
aWMgdm9pZCB0cnlBcHBMaW5rKFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlv
bkFjdGlvbiwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
c3RhdGljIHZvaWQgdHJ5SW50ZXJjZXB0TmF2aWdhdGlvbihSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0
aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFdlYlBhZ2VQcm94eSYgcGFnZSwgV1RGOjpGdW5jdGlv
bjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEhBVkUoQVBQX0xJTktT
KQotICAgIGlmICghbmF2aWdhdGlvbkFjdGlvbi0+c2hvdWxkT3BlbkFwcExpbmtzKCkpIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9u
LT5zaG91bGRPcGVuQXBwTGlua3MoKSkgeworICAgICAgICBhdXRvKiBsb2NhbENvbXBsZXRpb25I
YW5kbGVyID0gbmV3IFdURjo6RnVuY3Rpb248dm9pZCAoYm9vbCk+KFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICAgICAgW0xTQXBwTGluayBvcGVuV2l0aFVSTDpuYXZpZ2F0aW9uQWN0
aW9uLT5yZXF1ZXN0KCkudXJsKCkgY29tcGxldGlvbkhhbmRsZXI6W2xvY2FsQ29tcGxldGlvbkhh
bmRsZXJdKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKSB7CisgICAgICAgICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbbG9jYWxDb21wbGV0aW9uSGFuZGxlciwg
c3VjY2Vzc10geworICAgICAgICAgICAgICAgICgqbG9jYWxDb21wbGV0aW9uSGFuZGxlcikoc3Vj
Y2Vzcyk7CisgICAgICAgICAgICAgICAgZGVsZXRlIGxvY2FsQ29tcGxldGlvbkhhbmRsZXI7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfV07CiAgICAgICAgIHJldHVybjsKICAgICB9CisjZW5k
aWYKIAotICAgIGF1dG8qIGxvY2FsQ29tcGxldGlvbkhhbmRsZXIgPSBuZXcgV1RGOjpGdW5jdGlv
bjx2b2lkIChib29sKT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIFtMU0FwcExp
bmsgb3BlbldpdGhVUkw6bmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpIGNvbXBsZXRp
b25IYW5kbGVyOltsb2NhbENvbXBsZXRpb25IYW5kbGVyXShCT09MIHN1Y2Nlc3MsIE5TRXJyb3Ig
KikgewotICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBb
bG9jYWxDb21wbGV0aW9uSGFuZGxlciwgc3VjY2Vzc10gewotICAgICAgICAgICAgKCpsb2NhbENv
bXBsZXRpb25IYW5kbGVyKShzdWNjZXNzKTsKLSAgICAgICAgICAgIGRlbGV0ZSBsb2NhbENvbXBs
ZXRpb25IYW5kbGVyOwotICAgICAgICB9KTsKLSAgICB9XTsKLSNlbHNlCi0gICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOworI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpCisgICAgaWYgKExvYWRP
cHRpbWl6ZXI6OmNhbk9wdGltaXplTG9hZChuYXZpZ2F0aW9uQWN0aW9uLT5yZXF1ZXN0KCkudXJs
KCkpKSB7CisgICAgICAgIHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmxvYWRPcHRpbWl6ZXIoKS5v
cHRpbWl6ZUxvYWQobmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLCBwYWdlLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAjZW5kaWYKKworICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5h
dmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVBy
b3h5JiB3ZWJQYWdlUHJveHksIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlv
bkFjdGlvbiwgUmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJ
OjpPYmplY3QqIHVzZXJJbmZvKQpAQCAtNDkxLDggKzQ5Nyw4IEBAIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdl
YlBhZ2VQCiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRs
ZXIKICAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxl
cldlYnNpdGVQb2xpY2llcwogICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0
aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
VXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpIHsKLSAgICAgICAgYXV0byBj
b21wbGV0aW9uSGFuZGxlciA9IFt3ZWJQYWdlID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBsaXN0
ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFj
dGlvbi5jb3B5UmVmKCldIChib29sIGZvbGxvd2VkTGlua1RvQXBwKSB7Ci0gICAgICAgICAgICBp
ZiAoZm9sbG93ZWRMaW5rVG9BcHApIHsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9
IFt3ZWJQYWdlID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBsaXN0ZW5lciA9IFdURk1vdmUobGlz
dGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5jb3B5UmVmKCldIChi
b29sIGludGVyY2VwdGVkTmF2aWdhdGlvbikgeworICAgICAgICAgICAgaWYgKGludGVyY2VwdGVk
TmF2aWdhdGlvbikgewogICAgICAgICAgICAgICAgIGxpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC01MTksNyArNTI1LDcgQEAgdm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV2ViUGFnZVAKICNlbmRpZgogICAgICAgICAgICAgbGlzdGVuZXItPmlnbm9y
ZSgpOwogICAgICAgICB9OwotICAgICAgICB0cnlBcHBMaW5rKFdURk1vdmUobmF2aWdhdGlvbkFj
dGlvbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgdHJ5SW50ZXJjZXB0
TmF2aWdhdGlvbihXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCB3ZWJQYWdlUHJveHksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTU0
LDggKzU2MCw4IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAgICAgIHN3aXRjaCAoYWN0
aW9uUG9saWN5KSB7CiAgICAgICAgIGNhc2UgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3c6
CiAgICAgICAgIGNhc2UgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93SW5OZXdQcm9jZXNz
OgotICAgICAgICAgICAgdHJ5QXBwTGluayhXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBbYWN0
aW9uUG9saWN5LCBsb2NhbExpc3RlbmVyID0gV1RGTW92ZShsb2NhbExpc3RlbmVyKSwgd2Vic2l0
ZVBvbGljaWVzID0gV1RGTW92ZShhcGlXZWJzaXRlUG9saWNpZXMpXShib29sIGZvbGxvd2VkTGlu
a1RvQXBwKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoZm9sbG93ZWRMaW5rVG9BcHAp
IHsKKyAgICAgICAgICAgIHRyeUludGVyY2VwdE5hdmlnYXRpb24oV1RGTW92ZShuYXZpZ2F0aW9u
QWN0aW9uKSwgd2ViUGFnZVByb3h5LCBbYWN0aW9uUG9saWN5LCBsb2NhbExpc3RlbmVyID0gV1RG
TW92ZShsb2NhbExpc3RlbmVyKSwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZShhcGlXZWJzaXRl
UG9saWNpZXMpXShib29sIGludGVyY2VwdGVkTmF2aWdhdGlvbikgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgaWYgKGludGVyY2VwdGVkTmF2aWdhdGlvbikgewogICAgICAgICAgICAgICAgICAg
ICBsb2NhbExpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggODJiZTExNTQ1YTMuLjY1MTBl
M2JiYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFQ
SVdlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdG9yTWFuYWdlci5oIgog
I2luY2x1ZGUgIkRldmljZUlkSGFzaFNhbHRTdG9yYWdlLmgiCisjaW5jbHVkZSAiTG9hZE9wdGlt
aXplci5oIgogI2luY2x1ZGUgIk1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaG91bGRHcmFuZGZhdGhlclN0
YXRpc3RpY3MuaCIKQEAgLTEwMSw2ICsxMDIsOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRl
RGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4mJiBjb25maWd1cgog
ICAgICwgbV9hdXRoZW50aWNhdG9yTWFuYWdlcihtYWtlVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JN
YW5hZ2VyPigpKQogI2VuZGlmCiAgICAgLCBtX2NsaWVudChtYWtlVW5pcXVlUmVmPFdlYnNpdGVE
YXRhU3RvcmVDbGllbnQ+KCkpCisjaWYgSEFWRShMT0FEX09QVElNSVpFUikKKyAgICAsIG1fbG9h
ZE9wdGltaXplcihtYWtlVW5pcXVlUmVmPExvYWRPcHRpbWl6ZXI+KCkpCisjZW5kaWYKIHsKICAg
ICBXVEY6OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZpbGVnZXMoKSk7CiAgICAgbWF5YmVS
ZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKQEAgLTExOSw2ICsxMjMsOSBAQCBXZWJzaXRlRGF0
YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAs
IG1fYXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdl
cj4oKSkKICNlbmRpZgogICAgICwgbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0
b3JlQ2xpZW50PigpKQorI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpCisgICAgLCBtX2xvYWRPcHRp
bWl6ZXIobWFrZVVuaXF1ZVJlZjxMb2FkT3B0aW1pemVyPigpKQorI2VuZGlmCiB7CiAgICAgbWF5
YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaAppbmRleCBlNTI4ZjZkZDM2Yy4uYTVlNjU2MmIwNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
QEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgQXV0aGVudGljYXRvck1hbmFnZXI7CitjbGFzcyBMb2FkT3B0aW1pemVyOwog
Y2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIFN0b3JhZ2VNYW5hZ2VyOwogY2xhc3MgRGV2
aWNlSWRIYXNoU2FsdFN0b3JhZ2U7CkBAIC0yMzcsNiArMjM4LDEwIEBAIHB1YmxpYzoKICAgICBX
ZWJzaXRlRGF0YVN0b3JlQ2xpZW50JiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsg
fQogICAgIHZvaWQgc2V0Q2xpZW50KFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiYm
IGNsaWVudCkgeyBtX2NsaWVudCA9IFdURk1vdmUoY2xpZW50KTsgfQogCisjaWYgSEFWRShMT0FE
X09QVElNSVpFUikKKyAgICBMb2FkT3B0aW1pemVyJiBsb2FkT3B0aW1pemVyKCkgeyByZXR1cm4g
bV9sb2FkT3B0aW1pemVyLmdldCgpOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEKTsKICAgICBleHBsaWNpdCBXZWJzaXRl
RGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4mJiwgUEFMOjpTZXNz
aW9uSUQpOwpAQCAtMzE0LDYgKzMxOSwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBVbmlx
dWVSZWY8V2Vic2l0ZURhdGFTdG9yZUNsaWVudD4gbV9jbGllbnQ7CisKKyNpZiBIQVZFKExPQURf
T1BUSU1JWkVSKQorICAgIFVuaXF1ZVJlZjxMb2FkT3B0aW1pemVyPiBtX2xvYWRPcHRpbWl6ZXI7
CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDQ2ZWFiMmI4OWY2Li42ZWRhYWQxNDNmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEw
MjMsNyBAQAogCQk1NzU5N0VCRDIxODE4NDkwMDAzN0Y5MjQgLyogQ3RhcEhpZEF1dGhlbnRpY2F0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk3
RUJCMjE4MTg0OEYwMDM3RjkyNCAvKiBDdGFwSGlkQXV0aGVudGljYXRvci5oICovOyB9OwogCQk1
NzcyRjIwNjIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3MkYyMDQyMTdEQkQ2QTAwNTZCRjJDIC8q
IEhpZFNlcnZpY2UuaCAqLzsgfTsKIAkJNTc4REMyOTgyMTU1QTAwMjAwNzRFODE1IC8qIExvY2Fs
QXV0aGVudGljYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc4REMyOTcyMTU1QTAwMTAwNzRFODE1IC8qIExvY2FsQXV0aGVudGlj
YXRpb25Tb2Z0TGluay5oICovOyB9OworCQk1NzkwMEI0MDIxRjhGOUI4MDA4MzE3REUgLyogTG9h
ZE9wdGltaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc5MDBCM0UyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIuaCAqLzsgfTsKIAkJ
NTdBQzhGNTAyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QUM4RjRFMjE3RkVFRDkwMDU1NDM4
QyAvKiBIaWRDb25uZWN0aW9uLmggKi87IH07CiAJCTU3QjRCNDYwMjBCNTA0QUMwMEQ0QUQ3OSAv
KiBDbGllbnRDZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0I0QjQ1RTIwQjUwNEFCMDBE
NEFENzkgLyogQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5oICov
OyB9OwogCQk1N0RDRUQ2RTIxNDJFRTVFMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RENFRDZCMjE0MkVBRTIwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMzM3MCw2ICszMzcx
LDggQEAKIAkJNTc3MkYyMDQyMTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSGlkU2VydmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Nzcy
RjIwNTIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEhpZFNlcnZpY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OERDMjk3
MjE1NUEwMDEwMDc0RTgxNSAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3OTAwQjNFMjFGOEY5QjgwMDgzMTdERSAvKiBMb2FkT3B0aW1pemVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExvYWRPcHRpbWl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTc5MDBCM0YyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBMb2FkT3B0aW1pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0FDOEY0RTIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBIaWRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3QUM4RjRGMjE3RkVFRDkwMDU1NDM4QyAvKiBIaWRDb25uZWN0aW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gSGlkQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTdCNEI0NUQyMEI1MDRBQjAwRDRBRDc5IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlckNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVudGljYXRp
b25NYW5hZ2VyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzEwLDYg
KzUzMTMsOCBAQAogCQkJCTdBODIxRjREMUUyRjY3OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJDbGllbnQubW0gKi8sCiAJCQkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUw
IC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovLAogCQkJCTQxMTI4NkYwMjFDOEE5MEQwMDNB
ODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gKi8sCisJCQkJNTc5MDBCM0UyMUY4RjlC
ODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIuaCAqLywKKwkJCQk1NzkwMEIzRjIxRjhGOUI4MDA4
MzE3REUgLyogTG9hZE9wdGltaXplci5tbSAqLywKIAkJCQkxQUJDM0RGNDE4OTlFNDM3MDA0RjA2
MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5RTQzNzAwNEYwNjI2
IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKIAkJCQk1QzZDRTZEMzFGNTlFQTM1MDAwN0M2Q0Ig
LyogUGFnZUNsaWVudEltcGxDb2NvYS5oICovLApAQCAtOTkwOCw2ICs5OTEzLDcgQEAKIAkJCQk3
Qzg5RDJBNDFBNjc4ODc1MDAzQTVGREUgLyogV0tVc2VyU2NyaXB0UmVmLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU3OTAwQjQwMjFGOEY5QjgwMDgzMTdERSAvKiBMb2FkT3B0aW1pemVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI4QTQ5NzFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3
TGF5b3V0U3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUJGQTYxNzlGMTJGMEI5OUQwMDMz
RTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFOTE2QjIw
Qjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKaW5kZXggYTZhNThjNGU5M2QuLjRkZTc2NDFmNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTAxLTI2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgbG9hZCBvcHRpbWl6ZXIgZm9yIHNvbWUgc2l0ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzg4MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYzMjU0NTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOS0wMS0yNCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdA
c29ueS5jb20+CiAKICAgICAgICAgTW92ZSBGaWxlU3lzdGVtIHRvIFdURgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFjZjgyYWM2MGY5Li5jZTAz
ZDdiYjE0OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTAxLTI2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgbG9hZCBvcHRpbWl6ZXIgZm9yIHNvbWUgc2l0ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzg4MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYzMjU0NTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Rlc3RMb2FkT3B0aW1pemVyLm1tOiBBZGRlZC4KKwogMjAxOS0wMS0yNiAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIFRoZSBkZWZh
dWx0IHZhbHVlcyBmb3IgdG9wL2JvdHRvbSBpbiBjb250ZW50SGVpZ2h0Rm9yRm9ybWF0dGluZ0Nv
bnRleHRSb290IHNob3VsZCBub3QgYmUgMC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTQ4
NmY5ODc4MWMuLmQ0YTI4YzFmZDZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgxLDYg
KzI4MSw3IEBACiAJCTU3NTk5RTJBMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjUxRjA3MTkyQzAwQTNG
QjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQu
aHRtbCAqLzsgfTsKIAkJNTc1OTlFMkIxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjMxRjA3MTkyQzAw
QTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdy
aXRlLmh0bWwgKi87IH07CiAJCTU3NjlDNTBCMUQ5QjAwMDIwMDA4NDdGQiAvKiBTZXJpYWxpemVk
Q3J5cHRvS2V5V3JhcC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cC5tbSAqLzsgfTsKKwkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1p
emVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3
NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tICovOyB9OwogCQk1
NzhDQkQ2NzIwNEZCMkM4MDA4M0I5RjIgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzhDQkQ2
NjIwNEZCMkM3MDA4M0I5RjIgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi87IH07
CiAJCTU3OTAxRkIxMUNBRjE0MkQwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NzkwMUZCMDFDQUYxNDFDMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lmh0bWwgKi87
IH07CiAJCTU3OTY1MUU3MjE2QkZERUQwMDZFQkZFNSAvKiBGaWRvSGlkTWVzc2FnZVRlc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5NjUxRTYy
MTZCRkQ1MzAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAgKi87IH07CkBAIC0xNjUz
LDYgKzE2NTQsNyBAQAogCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSW5k
ZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyNjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5k
ZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0
aCA9ICJJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRl
My1zaG0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY5QzUwQTFEOUIwMDAxMDAw
ODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc3NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2Fk
T3B0aW1pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdExvYWRPcHRpbWl6ZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OENCRDY2MjA0RkIyQzcwMDgzQjlGMiAv
KiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gTG9jYWxB
dXRoZW50aWNhdGlvbi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0xvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsK
IAkJNTc5MDFGQUMxQ0FGMTJDMjAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJMUmVx
dWVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5MDFGQUUxQ0FGMTM3MTAw
RUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MDksNiArMjUxMSw3IEBACiAJCQkJQTEyNTQ3OEQxREIxOEI5
NDAwMzU4NTY0IC8qIExvYWREYXRhV2l0aE5pbE1JTUVUeXBlLm1tICovLAogCQkJCTQ2MTJDMkI4
MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2FkRmlsZVRoZW5SZWxvYWQubW0gKi8sCiAJCQkJNTc5MDFG
QUMxQ0FGMTJDMjAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLywKKwkJCQk1
Nzc0QUE2NzIxRkJCRjc4MDBBRjJBMUIgLyogVGVzdExvYWRPcHRpbWl6ZXIubW0gKi8sCiAJCQkJ
NTFFNkE4OTIxRDJGMUJFQzAwQzAwNEI2IC8qIExvY2FsU3RvcmFnZUNsZWFyLm1tICovLAogCQkJ
CUNBMzg0NTk1MjBBRTAxMkUwMDk5MEQzQiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIu
bW0gKi8sCiAJCQkJNDZDNTE5RDgxRDM1NUE3MzAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxF
bnRyaWVzLm1tICovLApAQCAtNDI1Miw2ICs0MjU1LDcgQEAKIAkJCQk3Q0NFN0YyNzFBNDExQUY2
MDA0NDdDNEMgLyogVXNlckNvbnRlbnRDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0NDRTdGMkQxQTQxMUIxMDAwNDQ3QzRDIC8qIFVzZXJDb250ZW50VGVzdC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDODgyRTBBMUM4MEM3NjQwMDZCRjczMSAvKiBVc2VyQ29udGVudFdvcmxkLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2Fk
T3B0aW1pemVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDQjk5MjExRDNCNDFGNjAwMzkyMkY2
IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0YxNzFBNDExQUU2MDA0NDdDNEMgLyogVXNlck1lZGlhLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3OTlDMzQ5MUVCQTJEN0IwMDNCNzUzMiAvKiBVc2VyTWVkaWFEaXNhYmxl
ZC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UZXN0TG9hZE9wdGltaXplci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvVGVzdExvYWRPcHRpbWl6ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM2ZjI5YzU5NzhlCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXN0TG9hZE9wdGltaXplci5tbQpA
QCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBI
QVZFKExPQURfT1BUSU1JWkVSKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1Rlc3RMb2FkT3B0
aW1pemVyQWRkaXRpb25zLm1tPgorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360281</attachid>
            <date>2019-01-27 01:18:28 -0800</date>
            <delta_ts>2019-01-27 11:05:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>WIP.patch</filename>
            <type>text/plain</type>
            <size>25735</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYWExMTM5OTRkNi4uYjBjNGI4Njk5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wMS0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBhIGxvYWQgb3B0aW1pemVyIGZvciBzb21lIHNpdGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM4ODEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ2MzI1NDU1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGb3JtRGF0YTo6ZmxhdHRlbiB0byBiZSB1c2VkIGJ5
IHRoZSBsb2FkIG9wdGltaXplci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmg6CisKIDIw
MTktMDEtMjYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWxsb3cgc2Nyb2xsaW5nIHRyZWUgbm9kZXMgdG8gZXhpc3QgaW4gYSBkZXRhY2hlZCBzdGF0
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCmluZGV4IDM2NTkw
ZWJhZjRiLi5lZmFhMWYwZWY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9Gb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Rm9ybURhdGEuaApAQCAtMjIxLDcgKzIyMSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFwcGVuZEZpbGVSYW5nZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBsb25nIGxvbmcg
c3RhcnQsIGxvbmcgbG9uZyBsZW5ndGgsIE9wdGlvbmFsPFdhbGxUaW1lPiBleHBlY3RlZE1vZGlm
aWNhdGlvblRpbWUsIGJvb2wgc2hvdWxkR2VuZXJhdGVGaWxlID0gZmFsc2UpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgYXBwZW5kQmxvYihjb25zdCBVUkwmIGJsb2JVUkwpOwogCi0gICAgVmVj
dG9yPGNoYXI+IGZsYXR0ZW4oKSBjb25zdDsgLy8gb21pdHMgZmlsZXMKKyAgICBXRUJDT1JFX0VY
UE9SVCBWZWN0b3I8Y2hhcj4gZmxhdHRlbigpIGNvbnN0OyAvLyBvbWl0cyBmaWxlcwogICAgIFN0
cmluZyBmbGF0dGVuVG9TdHJpbmcoKSBjb25zdDsgLy8gb21pdHMgZmlsZXMKIAogICAgIC8vIFJl
c29sdmUgYWxsIGJsb2IgcmVmZXJlbmNlcyBzbyB3ZSBvbmx5IGhhdmUgZmlsZSBhbmQgZGF0YS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNhMTAxM2I2ZGMuLjcyZDgzNTlhMjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDE5LTAxLTI2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXNlIGEgbG9hZCBvcHRpbWl6ZXIgZm9yIHNvbWUgc2l0ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzg4MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDYzMjU0NTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2Ugd2lsbCB0cnkgdG8gc3BlZWQgdXAgc29tZSBzaXRlcyB3aXRoIGEg
ZGVkaWNhdGVkIGxvYWQgb3B0aW1pemVyLiBUaGUgbG9hZCBvcHRpbWl6ZXIgbGl2ZXMKKyAgICAg
ICAgd2l0aGluIHRoZSBXZWJzaXRlRGF0YVN0b3JlIGFzIG9uZSBjbGllbnQgaW5zdGFuY2Ugc2hv
dWxkIGhhdmUgb25seSBvbmUgYW5kIGl0IHNob3VsZCBsaXZlCisgICAgICAgIGFzIGxvbmcgYXMg
dGhlIGNsaWVudCBsaXZlcy4gSG93IGRvZXMgdGhlIGxvYWQgb3B0aW1pemVyIHdvcms/IEl0IGlu
dGVyY2VwdHMgZXZlcnkgbG9hZCBpbgorICAgICAgICB0aGUgbmF2aWdhdGlvbiBzdGF0ZS4gSWYg
YSByZXF1ZXN0IG1lZXRzIHNvbWUgcmVxdWlyZW1lbnRzLCBpdCB3aWxsIHRoZW4gZmV0Y2ggdGhl
IHJlcXVlc3QKKyAgICAgICAgZnJvbSBpdHMgb3duIGNhY2hlLiBPbmNlIHRoZSBmZXRjaCBzdWNj
ZWVkcywgdGhlIG9yaWdpbmFsIGxvYWQgd2lsbCBiZSBpZ25vcmVkIGFuZCB0aGUKKyAgICAgICAg
b3B0aW1pemVyIHdpbGwgZGlzcGxheSB0aGUgY2FjaGVkIGNvbnRlbnQuCisKKyAgICAgICAgQ292
ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLm1tOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbnRlcmNlcHROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
dHJ5QXBwTGluayk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpX
ZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpsb2FkT3B0
aW1pemVyKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAxOS0wMS0yNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbGxvdyBzY3JvbGxpbmcgdHJlZSBub2RlcyB0byBleGlzdCBpbiBhIGRldGFjaGVkIHN0
YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjY5NjRjZDUxYjEuLmIxNTYyYTI5NTlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMjMsNiArMzIzLDcgQEAgVUlQcm9jZXNzL0NvY29h
L0Z1bGxzY3JlZW5DbGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3Rh
dGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiBVSVByb2Nlc3Mv
Q29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCitVSVByb2Nlc3MvQ29j
b2EvTG9hZE9wdGltaXplci5tbQogVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGll
cy5tbQogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQogVUlQcm9jZXNzL0NvY29h
L1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL0xvYWRPcHRpbWl6ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L0xvYWRPcHRpbWl6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YWNlY2YwNDVlOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Mb2FkT3B0aW1pemVyLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgSEFWRShMT0FEX09QVElNSVpFUikKKyNpbmNsdWRlIDxXZWJLaXRBZGRp
dGlvbnMvTG9hZE9wdGltaXplckFkZGl0aW9ucy5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTG9hZE9wdGltaXplci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMjE1Y2ViZmQ5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLm1tCkBAIC0wLDAgKzEsMzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkxvYWRPcHRpbWl6ZXIu
aCIKKworI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMv
TG9hZE9wdGltaXplckFkZGl0aW9ucy5tbT4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaAppbmRleCA0MDA0MDNm
ZmQ4My4uZmY3YjU3NjZiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKKwogI2lmIFdLX0FQSV9FTkFCTEVE
CiAKICNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCAxZjczMmNhNjY1OC4uNmE0N2Nl
YWU5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb24uaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
ci5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9ydCAi
TG9hZE9wdGltaXplci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTmF2aWdhdGlv
bkFjdGlvbkRhdGEuaCIKICNpbXBvcnQgIlBhZ2VMb2FkU3RhdGUuaCIKQEAgLTQ2NCwyNCArNDY1
LDI5IEBAIGJvb2wgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojp3aWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0oV2ViUGFnZVByb3h5CiB9CiAjZW5kaWYKIAotc3RhdGljIHZvaWQg
dHJ5QXBwTGluayhSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24s
IFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3N0YXRpYyB2
b2lkIHRyeUludGVyY2VwdE5hdmlnYXRpb24oUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBu
YXZpZ2F0aW9uQWN0aW9uLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdURjo6RnVuY3Rpb248dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBIQVZFKEFQUF9MSU5LUykKLSAgICBp
ZiAoIW5hdmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBMaW5rcygpKSB7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICBpZiAobmF2aWdhdGlvbkFjdGlvbi0+c2hvdWxk
T3BlbkFwcExpbmtzKCkpIHsKKyAgICAgICAgYXV0byogbG9jYWxDb21wbGV0aW9uSGFuZGxlciA9
IG5ldyBXVEY6OkZ1bmN0aW9uPHZvaWQgKGJvb2wpPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgICAgIFtMU0FwcExpbmsgb3BlbldpdGhVUkw6bmF2aWdhdGlvbkFjdGlvbi0+cmVx
dWVzdCgpLnVybCgpIGNvbXBsZXRpb25IYW5kbGVyOltsb2NhbENvbXBsZXRpb25IYW5kbGVyXShC
T09MIHN1Y2Nlc3MsIE5TRXJyb3IgKikgeworICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW2xvY2FsQ29tcGxldGlvbkhhbmRsZXIsIHN1Y2Nlc3Nd
IHsKKyAgICAgICAgICAgICAgICAoKmxvY2FsQ29tcGxldGlvbkhhbmRsZXIpKHN1Y2Nlc3MpOwor
ICAgICAgICAgICAgICAgIGRlbGV0ZSBsb2NhbENvbXBsZXRpb25IYW5kbGVyOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH1dOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKLSAg
ICBhdXRvKiBsb2NhbENvbXBsZXRpb25IYW5kbGVyID0gbmV3IFdURjo6RnVuY3Rpb248dm9pZCAo
Ym9vbCk+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICBbTFNBcHBMaW5rIG9wZW5X
aXRoVVJMOm5hdmlnYXRpb25BY3Rpb24tPnJlcXVlc3QoKS51cmwoKSBjb21wbGV0aW9uSGFuZGxl
cjpbbG9jYWxDb21wbGV0aW9uSGFuZGxlcl0oQk9PTCBzdWNjZXNzLCBOU0Vycm9yICopIHsKLSAg
ICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW2xvY2FsQ29t
cGxldGlvbkhhbmRsZXIsIHN1Y2Nlc3NdIHsKLSAgICAgICAgICAgICgqbG9jYWxDb21wbGV0aW9u
SGFuZGxlcikoc3VjY2Vzcyk7Ci0gICAgICAgICAgICBkZWxldGUgbG9jYWxDb21wbGV0aW9uSGFu
ZGxlcjsKLSAgICAgICAgfSk7Ci0gICAgfV07Ci0jZWxzZQotICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKKyNpZiBIQVZFKExPQURfT1BUSU1JWkVSKQorICAgIGlmIChMb2FkT3B0aW1pemVy
OjpjYW5PcHRpbWl6ZUxvYWQobmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpKSkgewor
ICAgICAgICBwYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5sb2FkT3B0aW1pemVyKCkub3B0aW1pemVM
b2FkKG5hdmlnYXRpb25BY3Rpb24tPnJlcXVlc3QoKSwgcGFnZSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlmCisKKyAgICBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7CiB9CiAKIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9u
Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSYgd2Vi
UGFnZVByb3h5LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24s
IFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0
KiB1c2VySW5mbykKQEAgLTQ5MSw4ICs0OTcsOCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAog
ICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyCiAgICAg
ICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRl
UG9saWNpZXMKICAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZv
RGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzKSB7Ci0gICAgICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBbd2ViUGFnZSA9IG1ha2VSZWYod2ViUGFnZVByb3h5KSwgbGlzdGVuZXIgPSBX
VEZNb3ZlKGxpc3RlbmVyKSwgbmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29w
eVJlZigpXSAoYm9vbCBmb2xsb3dlZExpbmtUb0FwcCkgewotICAgICAgICAgICAgaWYgKGZvbGxv
d2VkTGlua1RvQXBwKSB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbd2ViUGFn
ZSA9IG1ha2VSZWYod2ViUGFnZVByb3h5KSwgbGlzdGVuZXIgPSBXVEZNb3ZlKGxpc3RlbmVyKSwg
bmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJlZigpXSAoYm9vbCBpbnRl
cmNlcHRlZE5hdmlnYXRpb24pIHsKKyAgICAgICAgICAgIGlmIChpbnRlcmNlcHRlZE5hdmlnYXRp
b24pIHsKICAgICAgICAgICAgICAgICBsaXN0ZW5lci0+aWdub3JlKCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNTE5LDcgKzUyNSw3IEBAIHZvaWQgTmF2aWdh
dGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdlYlBhZ2VQCiAjZW5kaWYKICAgICAgICAgICAgIGxpc3RlbmVyLT5pZ25vcmUoKTsKICAg
ICAgICAgfTsKLSAgICAgICAgdHJ5QXBwTGluayhXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHRyeUludGVyY2VwdE5hdmlnYXRp
b24oV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgd2ViUGFnZVByb3h5LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU1NCw4ICs1NjAs
OCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgICAgICBzd2l0Y2ggKGFjdGlvblBvbGlj
eSkgewogICAgICAgICBjYXNlIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93OgogICAgICAg
ICBjYXNlIF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvd0luTmV3UHJvY2VzczoKLSAgICAg
ICAgICAgIHRyeUFwcExpbmsoV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgW2FjdGlvblBvbGlj
eSwgbG9jYWxMaXN0ZW5lciA9IFdURk1vdmUobG9jYWxMaXN0ZW5lciksIHdlYnNpdGVQb2xpY2ll
cyA9IFdURk1vdmUoYXBpV2Vic2l0ZVBvbGljaWVzKV0oYm9vbCBmb2xsb3dlZExpbmtUb0FwcCkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZvbGxvd2VkTGlua1RvQXBwKSB7CisgICAg
ICAgICAgICB0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiks
IHdlYlBhZ2VQcm94eSwgW2FjdGlvblBvbGljeSwgbG9jYWxMaXN0ZW5lciA9IFdURk1vdmUobG9j
YWxMaXN0ZW5lciksIHdlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUoYXBpV2Vic2l0ZVBvbGljaWVz
KV0oYm9vbCBpbnRlcmNlcHRlZE5hdmlnYXRpb24pIG11dGFibGUgeworICAgICAgICAgICAgICAg
IGlmIChpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgbG9jYWxM
aXN0ZW5lci0+aWdub3JlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDgyYmUxMTU0NWEzLi5mNjc1MzIwOWUzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKQEAgLTU3LDYgKzU3LDEwIEBACiAjaW5jbHVkZSA8d3RmL1Byb2Nl
c3NQcml2aWxlZ2UuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCisjaWYgSEFWRShMT0FE
X09QVElNSVpFUikKKyNpbmNsdWRlICJMb2FkT3B0aW1pemVyLmgiCisjZW5kaWYKKwogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2Vy
LmgiCiAjZW5kaWYKQEAgLTEwMSw2ICsxMDUsOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRl
RGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4mJiBjb25maWd1cgog
ICAgICwgbV9hdXRoZW50aWNhdG9yTWFuYWdlcihtYWtlVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JN
YW5hZ2VyPigpKQogI2VuZGlmCiAgICAgLCBtX2NsaWVudChtYWtlVW5pcXVlUmVmPFdlYnNpdGVE
YXRhU3RvcmVDbGllbnQ+KCkpCisjaWYgSEFWRShMT0FEX09QVElNSVpFUikKKyAgICAsIG1fbG9h
ZE9wdGltaXplcihtYWtlVW5pcXVlUmVmPExvYWRPcHRpbWl6ZXI+KCkpCisjZW5kaWYKIHsKICAg
ICBXVEY6OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZpbGVnZXMoKSk7CiAgICAgbWF5YmVS
ZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKQEAgLTExOSw2ICsxMjYsOSBAQCBXZWJzaXRlRGF0
YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAs
IG1fYXV0aGVudGljYXRvck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdl
cj4oKSkKICNlbmRpZgogICAgICwgbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0
b3JlQ2xpZW50PigpKQorI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpCisgICAgLCBtX2xvYWRPcHRp
bWl6ZXIobWFrZVVuaXF1ZVJlZjxMb2FkT3B0aW1pemVyPigpKQorI2VuZGlmCiB7CiAgICAgbWF5
YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaAppbmRleCBlNTI4ZjZkZDM2Yy4uYTVlNjU2MmIwNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
QEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgQXV0aGVudGljYXRvck1hbmFnZXI7CitjbGFzcyBMb2FkT3B0aW1pemVyOwog
Y2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIFN0b3JhZ2VNYW5hZ2VyOwogY2xhc3MgRGV2
aWNlSWRIYXNoU2FsdFN0b3JhZ2U7CkBAIC0yMzcsNiArMjM4LDEwIEBAIHB1YmxpYzoKICAgICBX
ZWJzaXRlRGF0YVN0b3JlQ2xpZW50JiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsg
fQogICAgIHZvaWQgc2V0Q2xpZW50KFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiYm
IGNsaWVudCkgeyBtX2NsaWVudCA9IFdURk1vdmUoY2xpZW50KTsgfQogCisjaWYgSEFWRShMT0FE
X09QVElNSVpFUikKKyAgICBMb2FkT3B0aW1pemVyJiBsb2FkT3B0aW1pemVyKCkgeyByZXR1cm4g
bV9sb2FkT3B0aW1pemVyLmdldCgpOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEKTsKICAgICBleHBsaWNpdCBXZWJzaXRl
RGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4mJiwgUEFMOjpTZXNz
aW9uSUQpOwpAQCAtMzE0LDYgKzMxOSwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBVbmlx
dWVSZWY8V2Vic2l0ZURhdGFTdG9yZUNsaWVudD4gbV9jbGllbnQ7CisKKyNpZiBIQVZFKExPQURf
T1BUSU1JWkVSKQorICAgIFVuaXF1ZVJlZjxMb2FkT3B0aW1pemVyPiBtX2xvYWRPcHRpbWl6ZXI7
CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDQ2ZWFiMmI4OWY2Li42ZWRhYWQxNDNmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEw
MjMsNyBAQAogCQk1NzU5N0VCRDIxODE4NDkwMDAzN0Y5MjQgLyogQ3RhcEhpZEF1dGhlbnRpY2F0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk3
RUJCMjE4MTg0OEYwMDM3RjkyNCAvKiBDdGFwSGlkQXV0aGVudGljYXRvci5oICovOyB9OwogCQk1
NzcyRjIwNjIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3MkYyMDQyMTdEQkQ2QTAwNTZCRjJDIC8q
IEhpZFNlcnZpY2UuaCAqLzsgfTsKIAkJNTc4REMyOTgyMTU1QTAwMjAwNzRFODE1IC8qIExvY2Fs
QXV0aGVudGljYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc4REMyOTcyMTU1QTAwMTAwNzRFODE1IC8qIExvY2FsQXV0aGVudGlj
YXRpb25Tb2Z0TGluay5oICovOyB9OworCQk1NzkwMEI0MDIxRjhGOUI4MDA4MzE3REUgLyogTG9h
ZE9wdGltaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc5MDBCM0UyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIuaCAqLzsgfTsKIAkJ
NTdBQzhGNTAyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QUM4RjRFMjE3RkVFRDkwMDU1NDM4
QyAvKiBIaWRDb25uZWN0aW9uLmggKi87IH07CiAJCTU3QjRCNDYwMjBCNTA0QUMwMEQ0QUQ3OSAv
KiBDbGllbnRDZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0I0QjQ1RTIwQjUwNEFCMDBE
NEFENzkgLyogQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5oICov
OyB9OwogCQk1N0RDRUQ2RTIxNDJFRTVFMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RENFRDZCMjE0MkVBRTIwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMzM3MCw2ICszMzcx
LDggQEAKIAkJNTc3MkYyMDQyMTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSGlkU2VydmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Nzcy
RjIwNTIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEhpZFNlcnZpY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OERDMjk3
MjE1NUEwMDEwMDc0RTgxNSAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3OTAwQjNFMjFGOEY5QjgwMDgzMTdERSAvKiBMb2FkT3B0aW1pemVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExvYWRPcHRpbWl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTc5MDBCM0YyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBMb2FkT3B0aW1pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0FDOEY0RTIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBIaWRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3QUM4RjRGMjE3RkVFRDkwMDU1NDM4QyAvKiBIaWRDb25uZWN0aW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gSGlkQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTdCNEI0NUQyMEI1MDRBQjAwRDRBRDc5IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlckNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVudGljYXRp
b25NYW5hZ2VyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzEwLDYg
KzUzMTMsOCBAQAogCQkJCTdBODIxRjREMUUyRjY3OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJDbGllbnQubW0gKi8sCiAJCQkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUw
IC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovLAogCQkJCTQxMTI4NkYwMjFDOEE5MEQwMDNB
ODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gKi8sCisJCQkJNTc5MDBCM0UyMUY4RjlC
ODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIuaCAqLywKKwkJCQk1NzkwMEIzRjIxRjhGOUI4MDA4
MzE3REUgLyogTG9hZE9wdGltaXplci5tbSAqLywKIAkJCQkxQUJDM0RGNDE4OTlFNDM3MDA0RjA2
MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5RTQzNzAwNEYwNjI2
IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKIAkJCQk1QzZDRTZEMzFGNTlFQTM1MDAwN0M2Q0Ig
LyogUGFnZUNsaWVudEltcGxDb2NvYS5oICovLApAQCAtOTkwOCw2ICs5OTEzLDcgQEAKIAkJCQk3
Qzg5RDJBNDFBNjc4ODc1MDAzQTVGREUgLyogV0tVc2VyU2NyaXB0UmVmLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU3OTAwQjQwMjFGOEY5QjgwMDgzMTdERSAvKiBMb2FkT3B0aW1pemVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI4QTQ5NzFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3
TGF5b3V0U3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUJGQTYxNzlGMTJGMEI5OUQwMDMz
RTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFOTE2QjIw
Qjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKaW5kZXggYTZhNThjNGU5M2QuLjRkZTc2NDFmNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTAxLTI2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgbG9hZCBvcHRpbWl6ZXIgZm9yIHNvbWUgc2l0ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzg4MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYzMjU0NTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOS0wMS0yNCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdA
c29ueS5jb20+CiAKICAgICAgICAgTW92ZSBGaWxlU3lzdGVtIHRvIFdURgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFjZjgyYWM2MGY5Li5jZTAz
ZDdiYjE0OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTAxLTI2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgbG9hZCBvcHRpbWl6ZXIgZm9yIHNvbWUgc2l0ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzg4MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYzMjU0NTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Rlc3RMb2FkT3B0aW1pemVyLm1tOiBBZGRlZC4KKwogMjAxOS0wMS0yNiAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIFRoZSBkZWZh
dWx0IHZhbHVlcyBmb3IgdG9wL2JvdHRvbSBpbiBjb250ZW50SGVpZ2h0Rm9yRm9ybWF0dGluZ0Nv
bnRleHRSb290IHNob3VsZCBub3QgYmUgMC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTQ4
NmY5ODc4MWMuLmQ0YTI4YzFmZDZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgxLDYg
KzI4MSw3IEBACiAJCTU3NTk5RTJBMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjUxRjA3MTkyQzAwQTNG
QjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQu
aHRtbCAqLzsgfTsKIAkJNTc1OTlFMkIxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjMxRjA3MTkyQzAw
QTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdy
aXRlLmh0bWwgKi87IH07CiAJCTU3NjlDNTBCMUQ5QjAwMDIwMDA4NDdGQiAvKiBTZXJpYWxpemVk
Q3J5cHRvS2V5V3JhcC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cC5tbSAqLzsgfTsKKwkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1p
emVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3
NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2FkT3B0aW1pemVyLm1tICovOyB9OwogCQk1
NzhDQkQ2NzIwNEZCMkM4MDA4M0I5RjIgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzhDQkQ2
NjIwNEZCMkM3MDA4M0I5RjIgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi87IH07
CiAJCTU3OTAxRkIxMUNBRjE0MkQwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NzkwMUZCMDFDQUYxNDFDMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lmh0bWwgKi87
IH07CiAJCTU3OTY1MUU3MjE2QkZERUQwMDZFQkZFNSAvKiBGaWRvSGlkTWVzc2FnZVRlc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5NjUxRTYy
MTZCRkQ1MzAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAgKi87IH07CkBAIC0xNjUz
LDYgKzE2NTQsNyBAQAogCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSW5k
ZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyNjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5k
ZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0
aCA9ICJJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRl
My1zaG0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY5QzUwQTFEOUIwMDAxMDAw
ODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc3NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2Fk
T3B0aW1pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdExvYWRPcHRpbWl6ZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OENCRDY2MjA0RkIyQzcwMDgzQjlGMiAv
KiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gTG9jYWxB
dXRoZW50aWNhdGlvbi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0xvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsK
IAkJNTc5MDFGQUMxQ0FGMTJDMjAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJMUmVx
dWVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5MDFGQUUxQ0FGMTM3MTAw
RUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MDksNiArMjUxMSw3IEBACiAJCQkJQTEyNTQ3OEQxREIxOEI5
NDAwMzU4NTY0IC8qIExvYWREYXRhV2l0aE5pbE1JTUVUeXBlLm1tICovLAogCQkJCTQ2MTJDMkI4
MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2FkRmlsZVRoZW5SZWxvYWQubW0gKi8sCiAJCQkJNTc5MDFG
QUMxQ0FGMTJDMjAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLywKKwkJCQk1
Nzc0QUE2NzIxRkJCRjc4MDBBRjJBMUIgLyogVGVzdExvYWRPcHRpbWl6ZXIubW0gKi8sCiAJCQkJ
NTFFNkE4OTIxRDJGMUJFQzAwQzAwNEI2IC8qIExvY2FsU3RvcmFnZUNsZWFyLm1tICovLAogCQkJ
CUNBMzg0NTk1MjBBRTAxMkUwMDk5MEQzQiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIu
bW0gKi8sCiAJCQkJNDZDNTE5RDgxRDM1NUE3MzAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxF
bnRyaWVzLm1tICovLApAQCAtNDI1Miw2ICs0MjU1LDcgQEAKIAkJCQk3Q0NFN0YyNzFBNDExQUY2
MDA0NDdDNEMgLyogVXNlckNvbnRlbnRDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0NDRTdGMkQxQTQxMUIxMDAwNDQ3QzRDIC8qIFVzZXJDb250ZW50VGVzdC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDODgyRTBBMUM4MEM3NjQwMDZCRjczMSAvKiBVc2VyQ29udGVudFdvcmxkLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RMb2Fk
T3B0aW1pemVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDQjk5MjExRDNCNDFGNjAwMzkyMkY2
IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0YxNzFBNDExQUU2MDA0NDdDNEMgLyogVXNlck1lZGlhLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3OTlDMzQ5MUVCQTJEN0IwMDNCNzUzMiAvKiBVc2VyTWVkaWFEaXNhYmxl
ZC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UZXN0TG9hZE9wdGltaXplci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvVGVzdExvYWRPcHRpbWl6ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM2ZjI5YzU5NzhlCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXN0TG9hZE9wdGltaXplci5tbQpA
QCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBI
QVZFKExPQURfT1BUSU1JWkVSKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1Rlc3RMb2FkT3B0
aW1pemVyQWRkaXRpb25zLm1tPgorI2VuZGlmCg==
</data>
<flag name="review"
          id="377005"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="377006"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360304</attachid>
            <date>2019-01-27 12:06:21 -0800</date>
            <delta_ts>2019-01-27 12:44:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>WIP.patch</filename>
            <type>text/plain</type>
            <size>25164</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYWExMTM5OTRkNi4uZTUyNDlmNjVlMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wMS0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBhIGxvYWQgb3B0aW1pemVyIGZvciBzb21lIHNpdGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM4ODEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ2MzI1NDU1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1
bGdoYW0uCisKKyAgICAgICAgRXhwb3NlIEZvcm1EYXRhOjpmbGF0dGVuIHRvIGJlIHVzZWQgYnkg
dGhlIGxvYWQgb3B0aW1pemVyLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaDoKKwogMjAx
OS0wMS0yNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBbGxvdyBzY3JvbGxpbmcgdHJlZSBub2RlcyB0byBleGlzdCBpbiBhIGRldGFjaGVkIHN0YXRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKaW5kZXggMzY1OTBl
YmFmNGIuLmVmYWExZjBlZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9G
b3JtRGF0YS5oCkBAIC0yMjEsNyArMjIxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgYXBwZW5kRmlsZVJhbmdlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGxvbmcgbG9uZyBz
dGFydCwgbG9uZyBsb25nIGxlbmd0aCwgT3B0aW9uYWw8V2FsbFRpbWU+IGV4cGVjdGVkTW9kaWZp
Y2F0aW9uVGltZSwgYm9vbCBzaG91bGRHZW5lcmF0ZUZpbGUgPSBmYWxzZSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBhcHBlbmRCbG9iKGNvbnN0IFVSTCYgYmxvYlVSTCk7CiAKLSAgICBWZWN0
b3I8Y2hhcj4gZmxhdHRlbigpIGNvbnN0OyAvLyBvbWl0cyBmaWxlcworICAgIFdFQkNPUkVfRVhQ
T1JUIFZlY3RvcjxjaGFyPiBmbGF0dGVuKCkgY29uc3Q7IC8vIG9taXRzIGZpbGVzCiAgICAgU3Ry
aW5nIGZsYXR0ZW5Ub1N0cmluZygpIGNvbnN0OyAvLyBvbWl0cyBmaWxlcwogCiAgICAgLy8gUmVz
b2x2ZSBhbGwgYmxvYiByZWZlcmVuY2VzIHNvIHdlIG9ubHkgaGF2ZSBmaWxlIGFuZCBkYXRhLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAwM2ExMDEzYjZkYy4uYjBkYmIxMGNlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzQgQEAKKzIwMTktMDEtMjYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgYSBsb2FkIG9wdGltaXplciBmb3Igc29tZSBzaXRlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzODgxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80NjMyNTQ1NT4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFt
LgorCisgICAgICAgIFdlIHdpbGwgdHJ5IHRvIHNwZWVkIHVwIHNvbWUgc2l0ZXMgd2l0aCBhIGRl
ZGljYXRlZCBsb2FkIG9wdGltaXplci4gVGhlIGxvYWQgb3B0aW1pemVyIGxpdmVzCisgICAgICAg
IHdpdGhpbiB0aGUgV2Vic2l0ZURhdGFTdG9yZSBhcyBvbmUgY2xpZW50IGluc3RhbmNlIHNob3Vs
ZCBoYXZlIG9ubHkgb25lIGFuZCBpdCBzaG91bGQgbGl2ZQorICAgICAgICBhcyBsb25nIGFzIHRo
ZSBjbGllbnQgbGl2ZXMuIEhvdyBkb2VzIHRoZSBsb2FkIG9wdGltaXplciB3b3JrPyBJdCBpbnRl
cmNlcHRzIGV2ZXJ5IGxvYWQgaW4KKyAgICAgICAgdGhlIG5hdmlnYXRpb24gc3RhdGUuIElmIGEg
cmVxdWVzdCBtZWV0cyBzb21lIHJlcXVpcmVtZW50cywgaXQgd2lsbCB0aGVuIGZldGNoIHRoZSBy
ZXF1ZXN0CisgICAgICAgIGZyb20gaXRzIG93biBjYWNoZS4gT25jZSB0aGUgZmV0Y2ggc3VjY2Vl
ZHMsIHRoZSBvcmlnaW5hbCBsb2FkIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlCisgICAgICAgIG9w
dGltaXplciB3aWxsIGRpc3BsYXkgdGhlIGNhY2hlZCBjb250ZW50LgorCisgICAgICAgIENvdmVy
ZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvTG9hZE9wdGltaXplci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvTG9hZE9wdGltaXplci5tbTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAgIChXZWJLaXQ6OnRyeUludGVyY2VwdE5hdmln
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGll
bnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViS2l0Ojp0
cnlBcHBMaW5rKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6Oldl
YnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmxvYWRPcHRp
bWl6ZXIpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDE5LTAxLTI2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFsbG93IHNjcm9sbGluZyB0cmVlIG5vZGVzIHRvIGV4aXN0IGluIGEgZGV0YWNoZWQgc3Rh
dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2Njk2NGNkNTFiMS4uYjE1NjJhMjk1OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMyMyw2ICszMjMsNyBAQCBVSVByb2Nlc3MvQ29jb2Ev
RnVsbHNjcmVlbkNsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0dsb2JhbEZpbmRJblBhZ2VTdGF0
ZS5tbQogVUlQcm9jZXNzL0NvY29hL0ljb25Mb2FkaW5nRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9D
b2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KK1VJUHJvY2Vzcy9Db2Nv
YS9Mb2FkT3B0aW1pemVyLm1tCiBVSVByb2Nlc3MvQ29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVz
Lm1tCiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCiBVSVByb2Nlc3MvQ29jb2Ev
UGFnZUNsaWVudEltcGxDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTG9hZE9wdGltaXplci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TG9hZE9wdGltaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h
Y2VjZjA0NWU4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL0xvYWRPcHRpbWl6ZXIuaApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBIQVZFKExPQURfT1BUSU1JWkVSKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0
aW9ucy9Mb2FkT3B0aW1pemVyQWRkaXRpb25zLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xvYWRPcHRpbWl6ZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Mb2FkT3B0aW1pemVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4yMTVjZWJmZDlkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xvYWRPcHRpbWl6ZXIubW0KQEAgLTAsMCArMSwzMSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiTG9hZE9wdGltaXplci5o
IgorCisjaWYgSEFWRShMT0FEX09QVElNSVpFUikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9M
b2FkT3B0aW1pemVyQWRkaXRpb25zLm1tPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhQ2FwdHVyZVV0aWxpdGllcy5oCmluZGV4IDQwMDQwM2Zm
ZDgzLi5mZjdiNTc2NmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbXBvcnQgIldLRm91bmRhdGlvbi5oIgorCiAjaWYgV0tfQVBJX0VOQUJMRUQK
IAogI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IDFmNzMyY2E2NjU4Li42YTQ3Y2Vh
ZTkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbi5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVy
LmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCisjaW1wb3J0ICJM
b2FkT3B0aW1pemVyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9u
QWN0aW9uRGF0YS5oIgogI2ltcG9ydCAiUGFnZUxvYWRTdGF0ZS5oIgpAQCAtNDY0LDI0ICs0NjUs
MjkgQEAgYm9vbCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlUHJveHkKIH0KICNlbmRpZgogCi1zdGF0aWMgdm9pZCB0
cnlBcHBMaW5rKFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwg
V1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorc3RhdGljIHZv
aWQgdHJ5SW50ZXJjZXB0TmF2aWdhdGlvbihSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5h
dmlnYXRpb25BY3Rpb24sIFdlYlBhZ2VQcm94eSYgcGFnZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEhBVkUoQVBQX0xJTktTKQotICAgIGlm
ICghbmF2aWdhdGlvbkFjdGlvbi0+c2hvdWxkT3BlbkFwcExpbmtzKCkpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9uLT5zaG91bGRP
cGVuQXBwTGlua3MoKSkgeworICAgICAgICBhdXRvKiBsb2NhbENvbXBsZXRpb25IYW5kbGVyID0g
bmV3IFdURjo6RnVuY3Rpb248dm9pZCAoYm9vbCk+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICAgICAgW0xTQXBwTGluayBvcGVuV2l0aFVSTDpuYXZpZ2F0aW9uQWN0aW9uLT5yZXF1
ZXN0KCkudXJsKCkgY29tcGxldGlvbkhhbmRsZXI6W2xvY2FsQ29tcGxldGlvbkhhbmRsZXJdKEJP
T0wgc3VjY2VzcywgTlNFcnJvciAqKSB7CisgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbbG9jYWxDb21wbGV0aW9uSGFuZGxlciwgc3VjY2Vzc10g
eworICAgICAgICAgICAgICAgICgqbG9jYWxDb21wbGV0aW9uSGFuZGxlcikoc3VjY2Vzcyk7Cisg
ICAgICAgICAgICAgICAgZGVsZXRlIGxvY2FsQ29tcGxldGlvbkhhbmRsZXI7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfV07CiAgICAgICAgIHJldHVybjsKICAgICB9CisjZW5kaWYKIAotICAg
IGF1dG8qIGxvY2FsQ29tcGxldGlvbkhhbmRsZXIgPSBuZXcgV1RGOjpGdW5jdGlvbjx2b2lkIChi
b29sKT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIFtMU0FwcExpbmsgb3Blbldp
dGhVUkw6bmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpIGNvbXBsZXRpb25IYW5kbGVy
Oltsb2NhbENvbXBsZXRpb25IYW5kbGVyXShCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKikgewotICAg
ICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbbG9jYWxDb21w
bGV0aW9uSGFuZGxlciwgc3VjY2Vzc10gewotICAgICAgICAgICAgKCpsb2NhbENvbXBsZXRpb25I
YW5kbGVyKShzdWNjZXNzKTsKLSAgICAgICAgICAgIGRlbGV0ZSBsb2NhbENvbXBsZXRpb25IYW5k
bGVyOwotICAgICAgICB9KTsKLSAgICB9XTsKLSNlbHNlCi0gICAgY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOworI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpCisgICAgaWYgKExvYWRPcHRpbWl6ZXI6
OmNhbk9wdGltaXplTG9hZChuYXZpZ2F0aW9uQWN0aW9uLT5yZXF1ZXN0KCkudXJsKCkpKSB7Cisg
ICAgICAgIHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmxvYWRPcHRpbWl6ZXIoKS5vcHRpbWl6ZUxv
YWQobmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLCBwYWdlLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAjZW5kaWYKKworICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25D
bGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVByb3h5JiB3ZWJQ
YWdlUHJveHksIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwg
UmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpPYmplY3Qq
IHVzZXJJbmZvKQpAQCAtNDkxLDggKzQ5Nyw4IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAg
ICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXIKICAgICAg
ICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQ
b2xpY2llcwogICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdh
dGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9E
ZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpIHsKLSAgICAgICAgYXV0byBjb21wbGV0aW9u
SGFuZGxlciA9IFt3ZWJQYWdlID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBsaXN0ZW5lciA9IFdU
Rk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5jb3B5
UmVmKCldIChib29sIGZvbGxvd2VkTGlua1RvQXBwKSB7Ci0gICAgICAgICAgICBpZiAoZm9sbG93
ZWRMaW5rVG9BcHApIHsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt3ZWJQYWdl
ID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBsaXN0ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBu
YXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5jb3B5UmVmKCldIChib29sIGludGVy
Y2VwdGVkTmF2aWdhdGlvbikgeworICAgICAgICAgICAgaWYgKGludGVyY2VwdGVkTmF2aWdhdGlv
bikgewogICAgICAgICAgICAgICAgIGxpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC01MTksNyArNTI1LDcgQEAgdm9pZCBOYXZpZ2F0
aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oV2ViUGFnZVAKICNlbmRpZgogICAgICAgICAgICAgbGlzdGVuZXItPmlnbm9yZSgpOwogICAg
ICAgICB9OwotICAgICAgICB0cnlBcHBMaW5rKFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgdHJ5SW50ZXJjZXB0TmF2aWdhdGlv
bihXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCB3ZWJQYWdlUHJveHksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTU0LDggKzU2MCw4
IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAgICAgIHN3aXRjaCAoYWN0aW9uUG9saWN5
KSB7CiAgICAgICAgIGNhc2UgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3c6CiAgICAgICAg
IGNhc2UgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93SW5OZXdQcm9jZXNzOgotICAgICAg
ICAgICAgdHJ5QXBwTGluayhXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBbYWN0aW9uUG9saWN5
LCBsb2NhbExpc3RlbmVyID0gV1RGTW92ZShsb2NhbExpc3RlbmVyKSwgd2Vic2l0ZVBvbGljaWVz
ID0gV1RGTW92ZShhcGlXZWJzaXRlUG9saWNpZXMpXShib29sIGZvbGxvd2VkTGlua1RvQXBwKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoZm9sbG93ZWRMaW5rVG9BcHApIHsKKyAgICAg
ICAgICAgIHRyeUludGVyY2VwdE5hdmlnYXRpb24oV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwg
d2ViUGFnZVByb3h5LCBbYWN0aW9uUG9saWN5LCBsb2NhbExpc3RlbmVyID0gV1RGTW92ZShsb2Nh
bExpc3RlbmVyKSwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZShhcGlXZWJzaXRlUG9saWNpZXMp
XShib29sIGludGVyY2VwdGVkTmF2aWdhdGlvbikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAg
aWYgKGludGVyY2VwdGVkTmF2aWdhdGlvbikgewogICAgICAgICAgICAgICAgICAgICBsb2NhbExp
c3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggODJiZTExNTQ1YTMuLmY2NzUzMjA5ZTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcApAQCAtNTcsNiArNTcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUHJvY2Vz
c1ByaXZpbGVnZS5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKKyNpZiBIQVZFKExPQURf
T1BUSU1JWkVSKQorI2luY2x1ZGUgIkxvYWRPcHRpbWl6ZXIuaCIKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIu
aCIKICNlbmRpZgpAQCAtMTAxLDYgKzEwNSw5IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVE
YXRhU3RvcmUoUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyCiAg
ICAgLCBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8QXV0aGVudGljYXRvck1h
bmFnZXI+KCkpCiAjZW5kaWYKICAgICAsIG1fY2xpZW50KG1ha2VVbmlxdWVSZWY8V2Vic2l0ZURh
dGFTdG9yZUNsaWVudD4oKSkKKyNpZiBIQVZFKExPQURfT1BUSU1JWkVSKQorICAgICwgbV9sb2Fk
T3B0aW1pemVyKG1ha2VVbmlxdWVSZWY8TG9hZE9wdGltaXplcj4oKSkKKyNlbmRpZgogewogICAg
IFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoYWxsUHJpdmlsZWdlcygpKTsKICAgICBtYXliZVJl
Z2lzdGVyV2l0aFNlc3Npb25JRE1hcCgpOwpAQCAtMTE5LDYgKzEyNiw5IEBAIFdlYnNpdGVEYXRh
U3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgICwg
bV9hdXRoZW50aWNhdG9yTWFuYWdlcihtYWtlVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
PigpKQogI2VuZGlmCiAgICAgLCBtX2NsaWVudChtYWtlVW5pcXVlUmVmPFdlYnNpdGVEYXRhU3Rv
cmVDbGllbnQ+KCkpCisjaWYgSEFWRShMT0FEX09QVElNSVpFUikKKyAgICAsIG1fbG9hZE9wdGlt
aXplcihtYWtlVW5pcXVlUmVmPExvYWRPcHRpbWl6ZXI+KCkpCisjZW5kaWYKIHsKICAgICBtYXli
ZVJlZ2lzdGVyV2l0aFNlc3Npb25JRE1hcCgpOwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCmluZGV4IGU1MjhmNmRkMzZjLi5hNWU2NTYyYjA0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApA
QCAtNTksNiArNTksNyBAQCBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBBdXRoZW50aWNhdG9yTWFuYWdlcjsKK2NsYXNzIExvYWRPcHRpbWl6ZXI7CiBj
bGFzcyBTZWNLZXlQcm94eVN0b3JlOwogY2xhc3MgU3RvcmFnZU1hbmFnZXI7CiBjbGFzcyBEZXZp
Y2VJZEhhc2hTYWx0U3RvcmFnZTsKQEAgLTIzNyw2ICsyMzgsMTAgQEAgcHVibGljOgogICAgIFdl
YnNpdGVEYXRhU3RvcmVDbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9
CiAgICAgdm9pZCBzZXRDbGllbnQoVW5pcXVlUmVmPFdlYnNpdGVEYXRhU3RvcmVDbGllbnQ+JiYg
Y2xpZW50KSB7IG1fY2xpZW50ID0gV1RGTW92ZShjbGllbnQpOyB9CiAKKyNpZiBIQVZFKExPQURf
T1BUSU1JWkVSKQorICAgIExvYWRPcHRpbWl6ZXImIGxvYWRPcHRpbWl6ZXIoKSB7IHJldHVybiBt
X2xvYWRPcHRpbWl6ZXIuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFdlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQpOwogICAgIGV4cGxpY2l0IFdlYnNpdGVE
YXRhU3RvcmUoUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiYmLCBQQUw6OlNlc3Np
b25JRCk7CkBAIC0zMTQsNiArMzE5LDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFVuaXF1
ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiBtX2NsaWVudDsKKworI2lmIEhBVkUoTE9BRF9P
UFRJTUlaRVIpCisgICAgVW5pcXVlUmVmPExvYWRPcHRpbWl6ZXI+IG1fbG9hZE9wdGltaXplcjsK
KyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNDZlYWIyYjg5ZjYuLjZlZGFhZDE0M2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMjMsNiArMTAy
Myw3IEBACiAJCTU3NTk3RUJEMjE4MTg0OTAwMDM3RjkyNCAvKiBDdGFwSGlkQXV0aGVudGljYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTdF
QkIyMTgxODQ4RjAwMzdGOTI0IC8qIEN0YXBIaWRBdXRoZW50aWNhdG9yLmggKi87IH07CiAJCTU3
NzJGMjA2MjE3REJENkEwMDU2QkYyQyAvKiBIaWRTZXJ2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzcyRjIwNDIxN0RCRDZBMDA1NkJGMkMgLyog
SGlkU2VydmljZS5oICovOyB9OwogCQk1NzhEQzI5ODIxNTVBMDAyMDA3NEU4MTUgLyogTG9jYWxB
dXRoZW50aWNhdGlvblNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzhEQzI5NzIxNTVBMDAxMDA3NEU4MTUgLyogTG9jYWxBdXRoZW50aWNh
dGlvblNvZnRMaW5rLmggKi87IH07CisJCTU3OTAwQjQwMjFGOEY5QjgwMDgzMTdERSAvKiBMb2Fk
T3B0aW1pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzkwMEIzRTIxRjhGOUI4MDA4MzE3REUgLyogTG9hZE9wdGltaXplci5oICovOyB9OwogCQk1
N0FDOEY1MDIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdBQzhGNEUyMTdGRUVEOTAwNTU0MzhD
IC8qIEhpZENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTdCNEI0NjAyMEI1MDRBQzAwRDRBRDc5IC8q
IENsaWVudENlcnRpZmljYXRlQXV0aGVudGljYXRpb25YUENDb25zdGFudHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QjRCNDVFMjBCNTA0QUIwMEQ0
QUQ3OSAvKiBDbGllbnRDZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmggKi87
IH07CiAJCTU3RENFRDZFMjE0MkVFNUUwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTdEQ0VENkIyMTQyRUFFMjAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0zMzcwLDYgKzMzNzEs
OCBAQAogCQk1NzcyRjIwNDIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIaWRTZXJ2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NzJG
MjA1MjE3REJENkEwMDU2QkYyQyAvKiBIaWRTZXJ2aWNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gSGlkU2VydmljZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc4REMyOTcy
MTU1QTAwMTAwNzRFODE1IC8qIExvY2FsQXV0aGVudGljYXRpb25Tb2Z0TGluay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTc5MDBCM0UyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTG9hZE9wdGltaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzkwMEIzRjIxRjhGOUI4MDA4MzE3REUgLyogTG9hZE9wdGltaXplci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IExvYWRPcHRpbWl6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3QUM4RjRFMjE3RkVFRDkwMDU1NDM4QyAvKiBIaWRDb25uZWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhpZENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTdBQzhGNEYyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBIaWRDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1N0I0QjQ1RDIwQjUwNEFCMDBENEFENzkgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRoZW50aWNhdGlv
bk1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzMTAsNiAr
NTMxMyw4IEBACiAJCQkJN0E4MjFGNEQxRTJGNjc5RTAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlckNsaWVudC5tbSAqLywKIAkJCQk0MTEyODZFRjIxQzhBOTBDMDAzQTg1NTAg
LyogTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmggKi8sCiAJCQkJNDExMjg2RjAyMUM4QTkwRDAwM0E4
NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSAqLywKKwkJCQk1NzkwMEIzRTIxRjhGOUI4
MDA4MzE3REUgLyogTG9hZE9wdGltaXplci5oICovLAorCQkJCTU3OTAwQjNGMjFGOEY5QjgwMDgz
MTdERSAvKiBMb2FkT3B0aW1pemVyLm1tICovLAogCQkJCTFBQkMzREY0MTg5OUU0MzcwMDRGMDYy
NiAvKiBOYXZpZ2F0aW9uU3RhdGUuaCAqLywKIAkJCQkxQUJDM0RGMzE4OTlFNDM3MDA0RjA2MjYg
LyogTmF2aWdhdGlvblN0YXRlLm1tICovLAogCQkJCTVDNkNFNkQzMUY1OUVBMzUwMDA3QzZDQiAv
KiBQYWdlQ2xpZW50SW1wbENvY29hLmggKi8sCkBAIC05OTA4LDYgKzk5MTMsNyBAQAogCQkJCTdD
ODlEMkE0MUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDODY5OUI1MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDODY5OUI3MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTc5MDBCNDAyMUY4RjlCODAwODMxN0RFIC8qIExvYWRPcHRpbWl6ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdM
YXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNF
MENBIC8qIFdLVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RTFBRkU5MTZCMjBC
NzUwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFjZjgyYWM2MGY5Li42MjI1
MzliYzBkZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTAxLTI2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgbG9hZCBvcHRpbWl6ZXIgZm9yIHNvbWUgc2l0ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzg4MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYzMjU0NTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVGVzdExvYWRPcHRpbWl6ZXIubW06IEFkZGVkLgorCiAyMDE5LTAxLTI2ICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gVGhlIGRlZmF1
bHQgdmFsdWVzIGZvciB0b3AvYm90dG9tIGluIGNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29u
dGV4dFJvb3Qgc2hvdWxkIG5vdCBiZSAwLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NDg2
Zjk4NzgxYy4uZDRhMjhjMWZkNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yODEsNiAr
MjgxLDcgQEAKIAkJNTc1OTlFMkExRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyNTFGMDcxOTJDMDBBM0ZC
OEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5o
dG1sICovOyB9OwogCQk1NzU5OUUyQjFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0
dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyMzFGMDcxOTJDMDBB
M0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3Jp
dGUuaHRtbCAqLzsgfTsKIAkJNTc2OUM1MEIxRDlCMDAwMjAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
Lm1tICovOyB9OworCQk1Nzc0QUE2ODIxRkJCRjc4MDBBRjJBMUIgLyogVGVzdExvYWRPcHRpbWl6
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzc0
QUE2NzIxRkJCRjc4MDBBRjJBMUIgLyogVGVzdExvYWRPcHRpbWl6ZXIubW0gKi87IH07CiAJCTU3
OENCRDY3MjA0RkIyQzgwMDgzQjlGMiAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3OENCRDY2
MjA0RkIyQzcwMDgzQjlGMiAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yayAqLzsgfTsK
IAkJNTc5MDFGQjExQ0FGMTQyRDAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
OTAxRkIwMUNBRjE0MUMwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QuaHRtbCAqLzsg
fTsKIAkJNTc5NjUxRTcyMTZCRkRFRDAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzk2NTFFNjIx
NkJGRDUzMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNwcCAqLzsgfTsKQEAgLTE2NTMs
NiArMTY1NCw3IEBACiAJCTU3NTk5RTI1MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1
Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBJbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NTk5RTI2MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRo
ID0gIkluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUz
LXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NjlDNTBBMUQ5QjAwMDEwMDA4
NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1Nzc0QUE2NzIxRkJCRjc4MDBBRjJBMUIgLyogVGVzdExvYWRP
cHRpbWl6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0TG9hZE9wdGltaXplci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc4Q0JENjYyMDRGQjJDNzAwODNCOUYyIC8q
IExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBMb2NhbEF1
dGhlbnRpY2F0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
TG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9Owog
CQk1NzkwMUZBQzFDQUYxMkMyMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9hZEludmFsaWRVUkxSZXF1
ZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzkwMUZBRTFDQUYxMzcxMDBF
RDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjUwOSw2ICsyNTExLDcgQEAKIAkJCQlBMTI1NDc4RDFEQjE4Qjk0
MDAzNTg1NjQgLyogTG9hZERhdGFXaXRoTmlsTUlNRVR5cGUubW0gKi8sCiAJCQkJNDYxMkMyQjgy
MTBBNkFCRjAwQjc4OEE2IC8qIExvYWRGaWxlVGhlblJlbG9hZC5tbSAqLywKIAkJCQk1NzkwMUZB
QzFDQUYxMkMyMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovLAorCQkJCTU3
NzRBQTY3MjFGQkJGNzgwMEFGMkExQiAvKiBUZXN0TG9hZE9wdGltaXplci5tbSAqLywKIAkJCQk1
MUU2QTg5MjFEMkYxQkVDMDBDMDA0QjYgLyogTG9jYWxTdG9yYWdlQ2xlYXIubW0gKi8sCiAJCQkJ
Q0EzODQ1OTUyMEFFMDEyRTAwOTkwRDNCIC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5t
bSAqLywKIAkJCQk0NkM1MTlEODFEMzU1QTczMDBEQUE1MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVu
dHJpZXMubW0gKi8sCkBAIC00MjUyLDYgKzQyNTUsNyBAQAogCQkJCTdDQ0U3RjI3MUE0MTFBRjYw
MDQ0N0M0QyAvKiBVc2VyQ29udGVudENvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0NFN0YyRDFBNDExQjEwMDA0NDdDNEMgLyogVXNlckNvbnRlbnRUZXN0Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0M4ODJFMEExQzgwQzc2NDAwNkJGNzMxIC8qIFVzZXJDb250ZW50V29ybGQubW0g
aW4gU291cmNlcyAqLywKKwkJCQk1Nzc0QUE2ODIxRkJCRjc4MDBBRjJBMUIgLyogVGVzdExvYWRP
cHRpbWl6ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NCOTkyMTFEM0I0MUY2MDAzOTIyRjYg
LyogVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RjE3MUE0MTFBRTYwMDQ0N0M0QyAvKiBVc2VyTWVkaWEuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc5OUMzNDkxRUJBMkQ3QjAwM0I3NTMyIC8qIFVzZXJNZWRpYURpc2FibGVk
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Rlc3RMb2FkT3B0aW1pemVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9UZXN0TG9hZE9wdGltaXplci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMzZmMjljNTk3OGUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Rlc3RMb2FkT3B0aW1pemVyLm1tCkBA
IC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIEhB
VkUoTE9BRF9PUFRJTUlaRVIpCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvVGVzdExvYWRPcHRp
bWl6ZXJBZGRpdGlvbnMubW0+CisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>