<?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>217550</bug_id>
          
          <creation_ts>2020-10-09 18:34:36 -0700</creation_ts>
          <short_desc>[GPU Process][Resource caching 1/7]: Replace &quot;ImageBufferIdentifier&quot; by a generic identifier named &quot;RemoteResourceIdentifier&quot;</short_desc>
          <delta_ts>2020-10-12 15:29:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217342</blocked>
    
    <blocked>217554</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696448</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-09 18:34:36 -0700</bug_when>
    <thetext>GPU Process needs to manage all the drawing resources and the drawing buffers/layers the same way. For example an HTMLCanvasElement is backed by a drawing buffer called ImageBuffer. All the drawing to the context of this HTMLCanvasElement is supposed to be done in this ImageBuffer. But at the same time this HTMLCanvasElement can be treated as a drawing resources when it is drawn to another HTMLCanvasElement through the method drawImage().

So RemoteResourceIdentifier will be the identifier of the ImageBuffer when drawing is happening to its context in the GPU process. And it will be the identifier of the image which will be drawn to anther buffer or layer in the GPU Process. The goal is to avoid copying the image from Web Process to GPU Process and use RemoteResourceIdentifier instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696451</commentid>
    <comment_count>1</comment_count>
      <attachid>410994</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-09 18:57:30 -0700</bug_when>
    <thetext>Created attachment 410994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696814</commentid>
    <comment_count>2</comment_count>
      <attachid>410994</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-12 03:26:42 -0700</bug_when>
    <thetext>Comment on attachment 410994
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        be used drawing a remote NativeImage to a remote ImageBuffer or DOM layer.

RemoteResourceIdentifier seems very generic and it seems the identifier is all about images.
Are there plans to use this identifier in non images cases?
How about some more specific names like RemoteImageIdentifier instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697001</commentid>
    <comment_count>3</comment_count>
      <attachid>410994</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-12 13:46:14 -0700</bug_when>
    <thetext>Comment on attachment 410994
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        be used drawing a remote NativeImage to a remote ImageBuffer or DOM layer.
&gt; 
&gt; RemoteResourceIdentifier seems very generic and it seems the identifier is all about images.
&gt; Are there plans to use this identifier in non images cases?
&gt; How about some more specific names like RemoteImageIdentifier instead?

It&apos;s going to get used for fonts as well.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:75
&gt; +    WebCore::RemoteResourceIdentifier m_remoteResourceIdentifier { WebCore::RemoteResourceIdentifier::generate() };

It&apos;s weird for RemoteImageBufferMessageHandler to be the one that creates the identifiers and positively wrong for the WebProcess to be creating identifiers because they have to be unique in the GPU process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697004</commentid>
    <comment_count>4</comment_count>
      <attachid>410994</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-12 13:55:01 -0700</bug_when>
    <thetext>Comment on attachment 410994
Patch

r+ but let&apos;s fix the identifier creation in a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697074</commentid>
    <comment_count>5</comment_count>
      <attachid>410994</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 15:21:11 -0700</bug_when>
    <thetext>Comment on attachment 410994
Patch

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

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:75
&gt;&gt; +    WebCore::RemoteResourceIdentifier m_remoteResourceIdentifier { WebCore::RemoteResourceIdentifier::generate() };
&gt; 
&gt; It&apos;s weird for RemoteImageBufferMessageHandler to be the one that creates the identifiers and positively wrong for the WebProcess to be creating identifiers because they have to be unique in the GPU process.

Logged bug 217638 to track this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697079</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-12 15:28:21 -0700</bug_when>
    <thetext>Committed r268372: &lt;https://trac.webkit.org/changeset/268372&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410994.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697080</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-12 15:29:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/70226333&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410994</attachid>
            <date>2020-10-09 18:57:30 -0700</date>
            <delta_ts>2020-10-12 15:28:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217550-20201009185729.patch</filename>
            <type>text/plain</type>
            <size>45302</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uYzcyNDVmYzhjYTgwMzM0NjU2Mzk4Mjk5NjUxMjE3
NDQ5NmQ3NGUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTEwLTA5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXTogUmVwbGFjZSAiSW1hZ2VCdWZmZXJJZGVudGlmaWVyIiBieSBhIGdlbmVyaWMgaWRl
bnRpZmllciBuYW1lZCAiUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTUwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHdpbGwgYmUgdXNlZCBpbiBXZWJDb3JlIHdoZW4gcmVjb3JkaW5nIGRyYXdpbmcKKyAgICAgICAg
YSByZW1vdGUgSW1hZ2VCdWZmZXIgdG8gYW5vdGhlciByZW1vdGUgSW1hZ2VCdWZmZXIuIEV2ZW50
dWFsbHkgaXQgd2lsbAorICAgICAgICBiZSB1c2VkIGRyYXdpbmcgYSByZW1vdGUgTmF0aXZlSW1h
Z2UgdG8gYSByZW1vdGUgSW1hZ2VCdWZmZXIgb3IgRE9NIGxheWVyLgorCisgICAgICAgICogSGVh
ZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg6
IEFkZGVkLgorCiAyMDIwLTEwLTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBNZWNoYW5pY2FsIGNsZWFudXAgaW4gRGlz
cGxheUxpc3RSZWNvcmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNWJhMzQ3YjFhMWZmZjI5MWRlYTg0MTIzYzA0
NjZlOWEwZTY0NzhlLi5iYWQ2MmRmNTM3MTczN2YwMjFiMmJmZmFhZmI1ZDg3OTBmMmVmNGJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTEwLTA5ICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXTogUmVwbGFj
ZSAiSW1hZ2VCdWZmZXJJZGVudGlmaWVyIiBieSBhIGdlbmVyaWMgaWRlbnRpZmllciBuYW1lZCAi
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgR1BVIFByb2Nlc3MgbmVlZHMgYSB1bml2ZXJzYWwgaWRlbnRpZmll
ciBmb3IgZHJhd2luZyBjYWNoZWQgcmVzb3VyY2VzIGFuZCAKKyAgICAgICAgZHJhd2luZyBidWZm
ZXJzIGFuZCBsYXllcnMuIFRoZSBtZWFuaW5nIG9mIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciB3
aWxsCisgICAgICAgIGRlcGVuZCBvbiB0aGUgY29udGV4dCBpdCBpcyB1c2VkIGluLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Y3JlYXRlQmFj
a2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eTo6Y29tbWl0Rmx1c2hDb250ZXh0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZm
ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVh
c2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3
aW5nQ29udGV4dEFuZENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6cmVsZWFzZUltYWdlQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlcjo6flJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpnZXRJbWFnZURhdGEgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpm
bHVzaERyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRDb21taXQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6
cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6aW1hZ2VCdWZmZXJJZGVudGlmaWVyIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VJbWFnZUJ1
ZmZlcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW46CisKIDIwMjAtMTAtMDkgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBB
ZGQgYWRkaXRpb25hbCBzdXBwb3J0IGZvciBwYWludGluZyB2aWRlbyBlbGVtZW50cyB0byAyRCBj
b250ZXh0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYTg0N2IwNWFiNDRlNWNkNGE3MDZiZTMwOGM4
YjY0NWI1MjU0MDBmZS4uYWQxNjBhZTBmNTE4ZWY0ZjcxNmM2MGQ0ODgzMWE4NWViZjdhNDM1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjA3LDYgKzEyMDcsNyBAQCBzZXQoV2ViQ29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UZXh0
VHJhY2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2Ft
cGxlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2Q2MWUwNWIzNTc3MzA0YzE4M2M1MDNmODMx
ZWM4OTQxMDEwMDAyMS4uMzg1OGUxYzMyZTlkMGUyN2RlOWIzZTM3YjY4ODk4MTQ5NDk4OWRmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjE2MSw2ICsyMTYxLDcgQEAKIAkJNzI3QTdGM0EyNDA3OEI4NDAwNEQyOTMxIC8qIElt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzJCQUMzQUIyM0UxRTU0NDAwOEQ3NDFDIC8qIEltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTcyOTlCQzY3MjNENkE1MzIwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY4MjNE
NkE1M0UwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVy
aW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTcyOUQwNTMwMjUzMTQyNDMwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJF
MjUzMTNFMjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MkE3M0JFRjI0NUEzRjkw
MDAxQzlEMDMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjJBODE1QzIzOEZENTA1MDBDMDA1ODMgLyogQW5pbWF0
aW9uRnJhbWVSYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNzJCQUMzQUUyM0UxRjBCMDAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJCQUMzQTUy
M0UxNzMyODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVBMjgx
RSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuaCAqLzsgfTsKQEAgLTk5MjMsNiArOTkyNCw3IEBACiAJCTcyN0FGRUQzMUEy
RUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFWFRz
UkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI5OUJDNjQyM0Q2ODZBNjAw
Q0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjk5QkM2
NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOUQwNTJFMjUzMTNF
MjYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyQkFDM0E0MjNFMTczMjcwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTUyM0UxNzMyODAwOEQ3NDFDIC8q
IEltYWdlQnVmZmVyQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bWFnZUJ1ZmZlckJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMz
QTYyM0UxNzMyODAwOEQ3NDFDIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1JbWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjYyMzksNiArMjYyNDEsNyBAQAogCQkJCTA3NEU4MkI5MThBNjlG
MEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLywKIAkJCQlCQ0FCNDE3RjEzRTM1
NkU4MDBEOEFBRjMgLyogUmVnaW9uLmNwcCAqLywKIAkJCQlCQ0FCNDE4MDEzRTM1NkU4MDBEOEFB
RjMgLyogUmVnaW9uLmggKi8sCisJCQkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllci5oICovLAogCQkJCTA3M0ExNTUxMjE3N0EzOTgwMEVBMDhGMiAv
KiBSZW1vdGVWaWRlb1NhbXBsZS5jcHAgKi8sCiAJCQkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYy
IC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8sCiAJCQkJNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgz
IC8qIFJlbmRlcmluZ01vZGUuaCAqLywKQEAgLTMzNTQxLDYgKzMzNTQ0LDcgQEAKIAkJCQk0NkI5
NTE5QTIwN0Q2MzU0MDBBN0QyREQgLyogUmVtb3RlRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQzMxMkU5MjJGQ0Q3QzAwMDEyMDRFQyAvKiBSZW1vdGVQbGF5YmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RDMzEyRUIyMkZDRDdDOTAwMTIwNEVDIC8qIFJlbW90ZVBsYXliYWNrQXZhaWxh
YmlsaXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTcyOUQwNTMwMjUzMTQyNDMwMDQy
MjA5OCAvKiBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVO
b2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJhZjU0MmRmZWM4NDdhYmMzNzFhYTJmMWU4ZTRiOGRkOWZiMTEwZTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPFJlbW90ZVJlc291cmNlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwCmluZGV4IDNlMjQ3YTdhZDRjZDI5NTM4
ZTRlYWY0MGJkODAzNjk2ODYwMDhiODYuLjRmOWQxNTJiNjc0NDJkYTY3MmVhZTVhOGE4NWRhODFj
MjZhYjY4MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJv
eHkuY3BwCkBAIC0zNCwyMCArMzQsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50aWZp
ZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIFdlYkNvcmU6OlJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgOiBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkp
Ci0gICAgLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCisg
ICAgLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcihyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
CiB7CiB9CiAKIHZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVh
dGVCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKIHsKLSAgICBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdCYWNrZW5kSWRlbnRp
ZmllcigpKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNh
bFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUo
aGFuZGxlKSwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNoQ29udGV4dChJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCiB7Ci0gICAgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCBtX2ltYWdl
QnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKCkpOworICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVy
Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllciwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
LCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5LmgKaW5kZXggYTRkMDVlYWVmNTQ5NDE2ZmRiNjQyNTk1MmUw
YjRjZjNhYTIwNWVjMi4uNmIzZGI0ZDY4Yjc5NDY1NzdjOTRlYWU0MjRhZDY3ZjUzMGM5ZjBmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaApAQCAtMjks
MTAgKzI5LDEwIEBACiAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNp
bmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVm
ZmVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4
X3Q7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3Jl
OjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3QgPSAw
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Cisg
ICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAKICAgICAv
LyBNZXNzYWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbi4KICAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlKTsKQEAgLTYzLDcgKzYzLDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7Ci0g
ICAgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOworICAgIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmll
cjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXgg
NzcyMWNjZTg0NTYyNjlhZWY5MDIwYjhiZDg5NjVkZDM1YjcyMmRkYy4uYjE1N2FiYmMwZDUwOTdl
NmQ5OGZiNTY2YzZjMzAwMDE2MDJiY2FlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC00MSwx
NCArNDEsMTQgQEAgY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1YmxpYyBXZWJDb3Jl
OjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwKICAgICB1c2luZyBCYXNlQ29uY3Jl
dGVJbWFnZUJ1ZmZlcjo6bV9iYWNrZW5kOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3Jl
YXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIg
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlQ29uY3Jl
dGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KHNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LCBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gQmFz
ZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5PihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG51bGxwdHIsIHJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAK
LSAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4m
JiBiYWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikK
KyAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4m
JiBiYWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihXVEZNb3Zl
KGJhY2tlbmQpKQotICAgICAgICAsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAg
ICAgICAgLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkocmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgewogICAgICAg
ICBjcmVhdGVCYWNrZW5kKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNr
ZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9y
U3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCA3NTNhNWM4YmE5N2Zl
NzIwODMxMDU4ZTg0YzVjZDgzYjRiMTc1NTc5Li4yYTJlMThhMTgzMGY4YTg0ZGNhMTdjNzE4YWUw
YTA0MGFkNmQ1MDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtNjYs
MjcgKzY2LDI3IEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWVzc2Fn
ZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyLnRvVUludDY0KCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAg
ICAgYXV0byogZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5nZXQoKTsKICAgICBpZiAoIWdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuY29u
dGFpbnMoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkgeworICAgIGlmIChtX2ltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJNYXAuY29udGFpbnMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgewogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkKSB7
Ci0gICAgICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFj
ZSwgKnRoaXMsIGltYWdlQnVmZmVySWRlbnRpZmllcikpIHsKLSAgICAgICAgICAgIG1faW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlck1hcC5hZGQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXVEZNb3Zl
KGltYWdlQnVmZmVyKSk7CisgICAgICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0
ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpIHsKKyAg
ICAgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5hZGQocmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdN
b2RlOjpSZW1vdGVBY2NlbGVyYXRlZCB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6
OlJlbW90ZVVuYWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBV
bmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCBpbWFnZUJ1ZmZlcklkZW50aWZpZXIp
KSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKGltYWdl
QnVmZmVySWRlbnRpZmllciwgV1RGTW92ZShpbWFnZUJ1ZmZlcikpOworICAgICAgICBpZiAoYXV0
byBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVh
dGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikpIHsKKyAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlck1hcC5hZGQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlQnVm
ZmVyKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC05NCwzMCAr
OTQsMzAgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVm
ZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIC8vIENy
ZWF0ZUltYWdlQnVmZmVyIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBiZWZvcmUg
dGhpcyBvbmUuCi0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1h
cC5yZW1vdmUoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBib29sIGZvdW5kID0gbV9pbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIEFTU0VSVF9VTlVTRUQoZm91bmQsIGZvdW5kKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBJbWFnZUJ1ZmZl
cklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKSB7CisgICAgaWYgKGF1dG8g
aW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikpIHsKICAgICAgICAgYXV0byBpbWFnZURhdGEgPSBpbWFnZUJ1ZmZl
ci0+Z2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlKFdURk1vdmUoaW1hZ2VEYXRhKSkpOwog
ICAgIH0KIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VC
dWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJE
cmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKQogewotICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQorICAgIGlmIChhdXRvIGltYWdl
QnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChyZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpKQogICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4dChk
aXNwbGF5TGlzdCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVz
aEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZp
ZXIgZmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZm
ZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElk
ZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXAuZ2V0KGltYWdlQnVmZmVySWRlbnRpZmllcikpCisgICAgaWYgKGF1dG8gaW1hZ2VC
dWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikpCiAgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0QW5k
Q29tbWl0KGRpc3BsYXlMaXN0LCBmbHVzaElkZW50aWZpZXIpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgKaW5kZXggYTA5NTJiYWZiM2MxNTMyZDdkYzk5MDA2ZWI0MGYzMWJmOTFk
MjUzYi4uYzYxMDM1N2U0MTU4NjJjZjJlMDkzMThjNjYzMWQzODE5YjBlZDQ4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0jaW5j
bHVkZSAiSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhUmVmZXJl
bmNlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNl
bmRlci5oIgpAQCAtMzgsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC03NCwxMyArNzQsMTMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRl
OwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCi0gICAgdm9pZCBjcmVhdGVJbWFn
ZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpS
ZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Us
IEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAgdm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICB2b2lkIGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29u
dGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZl
cklkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5k
Q29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgZ2V0
SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBX
ZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIEltYWdlQnVmZmVySWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7CisgICAgdm9pZCBj
cmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBy
ZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNv
bnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0
LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4m
Jik7CiAKLSAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwID0gSGFzaE1hcDxJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHk+PjsKKyAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
TWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk+PjsKICAgICBJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcDsK
ICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzczsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggNzk4YzhiNGVkYjU3ZjVhZDA4MmJhODFjMTAwOGIwZGNkZWZkZjE4YS4u
MjZjZjEzNjFmZGFiMGViMGQzZmFmNzdlNWY3ZDJkMWM1NmY5NDBiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMywxMSArMjMsMTEgQEAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyKFdl
YkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29s
b3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKQotICAgIHZvaWQgUmVsZWFzZUltYWdlQnVmZmVyKFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVu
dGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJE
cmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxp
c3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikK
LSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZm
ZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJLaXQ6OkltYWdlQnVmZmVySWRl
bnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgR2V0SW1hZ2VEYXRhKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29y
ZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIpIC0+IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGEpIFN5
bmNocm9ub3VzCisgICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUg
bG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAg
dm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRy
YXdpbmdDb250ZXh0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBk
aXNwbGF5TGlzdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpCisgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cworICAg
IHZvaWQgUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBm
YWNkMmY3YWZiNWEzOTJlZTIwOTY3YTc2ZmQ0MWUxNGRmYjE1MGI5Li44NTljYzc1NjllOTJkMTY0
NTU1ZDY5ODA5NzIyMDBiYWI5YmQ1OTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTIyMiw2ICsyMjIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6UG9pbnRlcklEJywKICAgICAg
ICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpSZW5kZXJpbmdNb2RlJywKICAgICAg
ICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyJywKQEAgLTI0MCw3ICsyNDEsNiBAQCBkZWYgdHlw
ZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpH
ZW9sb2NhdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUnLAogICAgICAgICAnV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcics
Ci0gICAgICAgICdXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxlZ2FjeUN1c3Rv
bVByb3RvY29sSUQnLAogICAgICAgICAnV2ViS2l0OjpMaWJXZWJSVENSZXNvbHZlcklkZW50aWZp
ZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggOTg0MzRjYmFjMGMyZjYxYTJkNmUyODA3MTZlY2Q3Mjg4Mjg4OTI4Mi4uMTZmZDFlZWIx
M2IxZjZhMzUwYWIzMGU3ODZjYWQ5MTIxZGUxYzNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODg5LDcgKzM4ODksNiBAQAogCQk1
NTA2NDBBMjI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0NSAvKiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MDY0MEE0
MjQwNzFDMjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NTA2NDBBNTI0MDcxQ0Mw
MDBBQUUwNDUgLyogSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdl
QnVmZmVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFEMDk0
MjI0MDhBMDJFMDBERTREMkYgLyogUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVy
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAv
KiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZl
ckZsdXNoSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODA3Niw3
ICs4MDc1LDYgQEAKIAkJCQk3MjdBN0YzMzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2EgKi8sCiAJ
CQkJNzI3QTdGMzkyNDA3ODhGMTAwNEQyOTMxIC8qIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5o
ICovLAogCQkJCTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllci5oICovLAotCQkJCTU1MDY0MEE1MjQwNzFDQzAwMEFBRTA0NSAvKiBJbWFnZUJ1ZmZl
cklkZW50aWZpZXIuaCAqLywKIAkJCQk3MjdBN0YzNzI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcCAqLywKIAkJCQk3MjdBN0YzNjI0MDc4OEYw
MDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggKi8sCiAJCQkJ
NzI3QTdGMzgyNDA3ODhGMDAwNEQyOTMxIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVC
YWNrZW5kLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL0ltYWdlQnVmZmVySWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlcklkZW50aWZpZXIuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOWExYmM5YWU4N2RjOGQ3MjQyOGEwYjgwOWNhZDBkODBhNGNkMWNiOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVySWRlbnRpZmllci5oCisrKyAvZGV2
L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gSW1hZ2VCdWZmZXJJZGVudGlmaWVyVHlwZSB7
IH07Ci11c2luZyBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdl
QnVmZmVySWRlbnRpZmllclR5cGU+OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIuY3BwCmluZGV4IDc3MTUwYzdiMDc5M2FmZTlhYzVjODNhOWFjNzQ2YmEzMThl
NTFiOGYuLjRlOWI3NjJkOGUwY2Y1ZmZmODdmMWM0Mjg0NWFmMDA0YThkYTFkYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcApAQCAtNDAsNyArNDAs
NyBAQCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyKGNvbnN0IEZsb2F0U2l6ZQogICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kKG1ha2VXZWFrUHRyKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpKQogewogICAgIC8vIENyZWF0
ZSB0aGUgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4KLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1h
Z2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
LCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CisgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkNyZWF0ZUltYWdl
QnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
bV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOwogfQogCiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyOjp+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcigpCkBAIC00OCwxMyAr
NDgsMTMgQEAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6flJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXIoKQogICAgIC8vIFJlbGVhc2UgdGhlIFJlbW90ZUltYWdlQnVmZmVy
UHJveHkuCiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAgICAgIHJldHVy
bjsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6UmVsZWFzZUltYWdlQnVmZmVyKG1faW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRp
ZmllcigpKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6UmVsZWFzZVJlbW90ZVJlc291cmNlKG1fcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcigpKTsKIH0KIAogUmVmUHRyPEltYWdlRGF0YT4gUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlcjo6Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24g
b3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0KSBjb25zdAogewogICAgIElQQzo6
SW1hZ2VEYXRhUmVmZXJlbmNlIGltYWdlRGF0YVJlZmVyZW5jZTsKLSAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQtPnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OkdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIG1faW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6R2V0SW1hZ2VE
YXRhOjpSZXBseShpbWFnZURhdGFSZWZlcmVuY2UpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQt
PnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIDFfcyk7CisgICAgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLT5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpHZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCBtX3JlbW90ZVJlc291cmNlSWRl
bnRpZmllciksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkdldEltYWdl
RGF0YTo6UmVwbHkoaW1hZ2VEYXRhUmVmZXJlbmNlKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCAxX3MpOwogICAgIHJldHVybiBpbWFnZURh
dGFSZWZlcmVuY2UuYnVmZmVyKCk7CiB9CiAKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjoKICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAg
cmV0dXJuOwogICAgIAotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdl
czo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0Nv
bnRleHQoZGlzcGxheUxpc3QsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKKyAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX3JlbW90
ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIoKSk7CiAgICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKIH0KIApAQCAt
ODQsNyArODQsNyBAQCB2b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNo
RHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OgogICAgIGlmICghbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kKQogICAgICAgICByZXR1cm47CiAgICAgbV9zZW50Rmx1c2hJZGVudGlm
aWVyID0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlz
dCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CisgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNw
bGF5TGlzdCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmll
ciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIo
KSk7CiAgICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKICAgICB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZm
ZXJGbHVzaENvbnRleHQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyLmgKaW5kZXggNjIwNDE4ZDc4YzI3ZjI4YzU3NDkwMmMyZTFiYTlhMjM3MTc1MTdiOS4u
NmNmYzg1ODk1YTUxOGFhNGY3OGU5NTQyYjkwYzhhMTM0YmRhODZiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKQEAgLTI5LDEwICsyOSwxMCBAQAogCiAj
aW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZm
ZXJGbHVzaElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3Bs
YXlMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
aW5nTW9kZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OCw3ICs0OCw3IEBAIGNsYXNz
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIgewogcHVibGljOgogICAgIHZpcnR1YWwg
flJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoKTsKIAotICAgIEltYWdlQnVmZmVySWRl
bnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVm
ZmVySWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZVJlc291cmNl
SWRlbnRpZmllcjsgfQogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuIFNlZSBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluLgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVC
YWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6
OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSkgPSAwOwpAQCAtNzIsNyArNzIs
NyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kPiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7Ci0gICAgSW1hZ2VCdWZmZXJJZGVudGlm
aWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyIHsgSW1hZ2VCdWZmZXJJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpIH07CisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHsgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpIH07CiAKICAgICBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBtX3NlbnRGbHVz
aElkZW50aWZpZXI7CiAgICAgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgbV9yZWNlaXZlZEZs
dXNoSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDk5NTM0
MTc4N2VkYTIwYTU1NGU0ZDY3YmE1M2RjNjk4YTUzNzBjYzAuLmRiYmU5YjgzMDM2ZmJlNmEwZDQw
M2FjZmQ4YjllN2U5ZTY3MGQ1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApA
QCAtOTAsMzUgKzkwLDM1IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvCiB7CiAgICAgaWYgKHNo
b3VsZEFjY2VsZXJhdGUgPT0gU2hvdWxkQWNjZWxlcmF0ZTo6WWVzKSB7CiAgICAgICAgIGlmIChh
dXRvIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNp
emUsIFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsICp0aGlzKSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyTWFwLmFkZChpbWFnZUJ1ZmZlci0+aW1hZ2VCdWZmZXJJZGVudGlmaWVyKCksIGltYWdlQnVm
ZmVyLmdldCgpKTsKKyAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5h
ZGQoaW1hZ2VCdWZmZXItPnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpLCBpbWFnZUJ1ZmZlci5n
ZXQoKSk7CiAgICAgICAgICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiAgICAgICAgIH0KICAgICB9
CiAKICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUsIFJlbmRlcmluZ01vZGU6OlJlbW90ZVVuYWNjZWxlcmF0ZWQsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMpKSB7Ci0gICAgICAgIG1faW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlck1hcC5hZGQoaW1hZ2VCdWZmZXItPmltYWdlQnVmZmVySWRlbnRpZmll
cigpLCBpbWFnZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlck1hcC5hZGQoaW1hZ2VCdWZmZXItPnJlbW90ZVJlc291cmNlSWRlbnRpZmllcigpLCBpbWFn
ZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKICAgICB9CiAKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxl
YXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmll
cikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAg
Ly8gQ3JlYXRlSW1hZ2VCdWZmZXIgbWVzc2FnZSBzaG91bGQgaGF2ZSBiZWVuIHJlY2VpdmVkIGJl
Zm9yZSB0aGlzIG9uZS4KLSAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyTWFwLnJlbW92ZShpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGJvb2wgZm91bmQgPSBt
X2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOwogfQogCi12b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUsIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCit2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJNYXAuZ2V0KGltYWdlQnVmZmVySWRlbnRpZmllcikpCisgICAgaWYgKGF1
dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIGltYWdlQnVmZmVyLT5jcmVhdGVCYWNrZW5k
KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBX
VEZNb3ZlKGhhbmRsZSkpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1p
dEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNo
SWRlbnRpZmllciwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikK
K3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRl
eHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChhdXRv
IGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1
ZmZlcklkZW50aWZpZXIpKQorICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAg
ICBpbWFnZUJ1ZmZlci0+Y29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggZjQ5NjE1OGU3ZDQwZWViMDVhYzM5NDM0
YWYyNDYzM2JhYmM3ZjBlZi4uMjhhNjQzYTQ4YWY1NThhY2U0Y2Y4MWQ3NDEyNGY3NTE4ZTgxNmIw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2lu
Y2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVy
Rmx1c2hJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgog
I2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCIKQEAgLTM3LDYgKzM2
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0Rpc3BsYXlMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVuZGVyaW5nTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlNob3VsZEFjY2VsZXJhdGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7Ci0gICAgdm9pZCByZWxl
YXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAg
Ym9vbCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7CiAgICAgYm9vbCB3YWl0Rm9y
Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKQEAgLTcxLDEwICs3MSwxMCBAQCBwcml2
YXRlOgogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsKIAogICAgIC8vIE1lc3NhZ2VzIHRv
IGJlIHJlY2VpdmVkLgotICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICB2b2lk
IGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVy
LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KElt
YWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOwogCi0gICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8
SW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKj47
CisgICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8V2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyKj47CiAgICAgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCBtX2ltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJNYXA7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllciB7IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmlu
CmluZGV4IDEyYTdiZjhkYTRjODI1NzBiY2EzNmExMzVmZDcxYWYyNTg4YjY0ZDUuLjJjMGY3ZThh
MTIwM2YyNjg2NTJhMDBmYzFmN2IxN2RhNTk5ZDJhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTIzLDggKzIzLDggQEAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgTm90UmVm
Q291bnRlZCB7Ci0gICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoV2ViQ29yZTo6Rmxv
YXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRp
ZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgdm9pZCBDb21taXRJbWFnZUJ1ZmZlckZs
dXNoQ29udGV4dChXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRp
ZmllciwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVy
KQorICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdlYkNvcmU6OkZsb2F0U2l6ZSBs
b2dpY2FsU2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICB2b2lkIENvbW1pdEltYWdlQnVmZmVyRmx1
c2hDb250ZXh0KFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>