<?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>196442</bug_id>
          
          <creation_ts>2019-04-01 07:39:40 -0700</creation_ts>
          <short_desc>Unable to copy and paste a PDF from Notes into Mail compose body</short_desc>
          <delta_ts>2019-04-01 14:22: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>HTML Editing</component>
          <version>Other</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>
          <dependson>196435</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1522913</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-01 07:39:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/48573098&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522948</commentid>
    <comment_count>1</comment_count>
      <attachid>366404</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-01 10:52:09 -0700</bug_when>
    <thetext>Created attachment 366404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522952</commentid>
    <comment_count>2</comment_count>
      <attachid>366405</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-01 10:57:25 -0700</bug_when>
    <thetext>Created attachment 366405
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522995</commentid>
    <comment_count>3</comment_count>
      <attachid>366405</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-04-01 12:06:22 -0700</bug_when>
    <thetext>Comment on attachment 366405
Rebase on trunk

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

&gt; Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm:223
&gt;  static String mimeTypeFromContentType(const String&amp; contentType)

Why isn&apos;t this in UTIUtilities?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523005</commentid>
    <comment_count>4</comment_count>
      <attachid>366405</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-01 12:29:23 -0700</bug_when>
    <thetext>Comment on attachment 366405
Rebase on trunk

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

&gt;&gt; Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm:223
&gt;&gt;  static String mimeTypeFromContentType(const String&amp; contentType)
&gt; 
&gt; Why isn&apos;t this in UTIUtilities?

AFAICT, no good reason :P

I&apos;ll pull this out into a separate helper in a separate change (https://bugs.webkit.org/show_bug.cgi?id=196455), since there are a number of other (unrelated) places that would also benefit from this refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523027</commentid>
    <comment_count>5</comment_count>
      <attachid>366405</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-01 13:09:02 -0700</bug_when>
    <thetext>Comment on attachment 366405
Rebase on trunk

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

&gt; Source/WebCore/platform/PasteboardItemInfo.h:73
&gt; +            return isNonTextType || containsFileURLAndFileUploadContent || !suggestedFileName.isEmpty();

As we discussed on IRC, I&apos;m going to move the (isNonTextType || containsFileURLAndFileUploadContent) part of this out of canBeTreatedAsAttachmentOrFile() and back into Pasteboard::fileContentState, where it was originally. Relaxing the heuristic for items that contain non-text types or any file URL/file upload content causes copying and pasting text from Notes to Mail compose to insert an RTFD attachment instead of inline text :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523052</commentid>
    <comment_count>6</comment_count>
      <attachid>366420</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-01 14:04:18 -0700</bug_when>
    <thetext>Created attachment 366420
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523062</commentid>
    <comment_count>7</comment_count>
      <attachid>366420</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-01 14:21:30 -0700</bug_when>
    <thetext>Comment on attachment 366420
Patch for landing

Clearing flags on attachment: 366420

Committed r243713: &lt;https://trac.webkit.org/changeset/243713&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366404</attachid>
            <date>2019-04-01 10:52:09 -0700</date>
            <delta_ts>2019-04-01 10:57:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196442-20190401105209.patch</filename>
            <type>text/plain</type>
            <size>29267</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJhZWU2NmMyODc2MjEy
M2U5MTBlZjYxMDFjZDViNWJkZTkzNjU4Zi4uNzVlY2EzOTAzMzUwZDY5ZDJkMGM5NzBkZGIxMWYz
ODFmMTFkNGY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDE5LTA0LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVuYWJsZSB0byBj
b3B5IGFuZCBwYXN0ZSBhIFBERiBmcm9tIE5vdGVzIGludG8gTWFpbCBjb21wb3NlIGJvZHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjQ0MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDg1NzMwOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Igc29tZSBsb2dpYyBmb3IgaW5zZXJ0aW5n
IGF0dGFjaG1lbnQgZWxlbWVudHMgdXBvbiBwYXN0ZSBvciBkcm9wLiBDdXJyZW50bHksIHdlIG9u
bHkgcHJlZmVyIGluc2VydGluZworICAgICAgICBjb250ZW50IGFzIGF0dGFjaG1lbnQgZWxlbWVu
dHMgaWYgdGhlIGl0ZW1zIGFyZSBhbm5vdGF0ZWQgd2l0aCBVSVByZWZlcnJlZFByZXNlbnRhdGlv
blN0eWxlQXR0YWNobWVudC4gSG93ZXZlciwKKyAgICAgICAgbWFueSBkYXRhIHNvdXJjZXMgYXJv
dW5kIHRoZSBzeXN0ZW0gKGJvdGggZmlyc3QgYW5kIHRoaXJkIHBhcnR5KSBoYXZlIG5vdCBhZG9w
dGVkIHRoaXMgQVBJLCB3aGljaCBtYWtlcyBpdAorICAgICAgICBkaWZmaWN1bHQgdG8gZGV0ZXJt
aW5lIHdoZXRoZXIgYSBnaXZlbiBpdGVtIHByb3ZpZGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEg
ZmlsZSBvciBub3QuIEluIHRoaXMgYnVnIGluCisgICAgICAgIHBhcnRpY3VsYXIsIG5vIHByZWZl
cnJlZCBwcmVzZW50YXRpb24gc3R5bGUgaXMgc2V0LCBzbyB3ZSBmYWlsIHRvIGhhbmRsZSB0aGUg
cGFzdGUgY29tbWFuZCBieSBpbnNlcnRpbmcgYW4KKyAgICAgICAgYXR0YWNobWVudCBlbGVtZW50
LgorCisgICAgICAgIEhvd2V2ZXIsIG1vc3QgYXBwcyBhcm91bmQgdGhlIHN5c3RlbSB0aGF0IHdy
aXRlIGZpbGUgb3IgYXR0YWNobWVudC1saWtlIGRhdGEgdG8gdGhlIHBhc3RlYm9hcmQgd2lsbCBh
dCBsZWFzdAorICAgICAgICBvZmZlciBhIHN1Z2dlc3RlZCBuYW1lIGZvciB0aGUgZmlsZSwgaW4g
dGhlIGZvcm0gb2YgLVtOU0l0ZW1Qcm92aWRlciBzdWdnZXN0ZWROYW1lXS4gVG8gYWRkcmVzcyB0
aGlzLCBpbnN0ZWFkIG9mCisgICAgICAgIHJlbHlpbmcgc29sZWx5IG9uIHRoZSBwcmVmZXJyZWRQ
cmVzZW50YXRpb25TdHlsZSwgYWRkaXRpb25hbGx5IHRha2UgYSBzdWdnZXN0ZWQgbmFtZSBhcyBh
biBpbmRpY2F0b3IgdGhhdCB0aGUKKyAgICAgICAgaXRlbSBpcyBwcm9iYWJseSBhIGZpbGUuCisK
KyAgICAgICAgSW4gZmFjdCwgUGFzdGVib2FyZDo6ZmlsZUNvbnRlbnRTdGF0ZSBhbHJlYWR5IGhh
cyBzaW1pbGFyIGxvZ2ljIHRvIGNoZWNrIGZvciBlaXRoZXIgYSBzdWdnZXN0ZWQgZmlsZSBuYW1l
IG9yCisgICAgICAgIGV4cGxpY2l0bHkgc3BlY2lmaWVkIHByZXNlbnRhdGlvbiBzdHlsZS4gV2Ug
cHVsbCB0aGlzIG91dCBpbnRvIGEgc2VwYXJhdGUgaGVscGVyIG1ldGhvZCBvbiBQYXN0ZWJvYXJk
SXRlbUluZm8sCisgICAgICAgIGFuZCB1c2UgaXQgZm9yIGJvdGggUGFzdGVib2FyZDo6ZmlsZUNv
bnRlbnRTdGF0ZSBhbmQgcHJlZmVyc0F0dGFjaG1lbnRSZXByZXNlbnRhdGlvbi4KKworICAgICAg
ICBUZXN0czogIFdLQXR0YWNobWVudFRlc3RzSU9TLkluc2VydFBhc3RlZENvbnRhY3RBc0F0dGFj
aG1lbnQKKyAgICAgICAgICAgICAgICBXS0F0dGFjaG1lbnRUZXN0c0lPUy5JbnNlcnRQYXN0ZWRN
YXBJdGVtQXNBdHRhY2htZW50CisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRS
ZWFkZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlRnJvbUNvbnRlbnRUeXBl
KToKKworICAgICAgICBXb3JrIGFyb3VuZCA8cmRhcjovL3Byb2JsZW0vNDk0NzgyMjk+IGJ5IHVz
aW5nIHRoZSAidGV4dC92Y2FyZCIgTUlNRSB0eXBlIHRvIGhhbmRsZSAicHVibGljLnZjYXJkIi4g
Q29yZVNlcnZpY2VzCisgICAgICAgIGN1cnJlbnRseSBtYXBzICJwdWJsaWMudmNhcmQiIHRvICJ0
ZXh0L2RpcmVjdG9yeSIgd2hlbiB1c2luZyBVVFR5cGVDb3B5UHJlZmVycmVkVGFnV2l0aENsYXNz
LCBkZXNwaXRlIHRoZSBTUEkKKyAgICAgICAgLVtOU1VSTEZpbGVUeXBlTWFwcGluZ3MgTUlNRVR5
cGVGb3JFeHRlbnNpb246XSByZXR1cm5pbmcgInRleHQvdmNhcmQiIGZvciBhICIudmNmIiBmaWxl
LgorCisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZEl0ZW1JbmZvLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQYXN0ZWJvYXJkSXRlbUluZm86OmNhbkJlVHJlYXRlZEFzQXR0YWNobWVudE9yRmls
ZSBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBkZXRlcm1pbmUgd2hl
dGhlciB0aGUgUGFzdGVib2FyZEl0ZW1JbmZvIHByZWZlcnMgdG8gYmUgcmVwcmVzZW50ZWQgYXMg
aW5saW5lIGRhdGEsIG9yIGFuCisgICAgICAgIGF0dGFjaG1lbnQsIG9yIG5laXRoZXIuIFRoaXMg
ZGlmZmVycyBzbGlnaHRseSBmcm9tIHRoZSBleGlzdGluZyB2YWx1ZSBvZiBwcmVmZXJyZWRQcmVz
ZW50YXRpb25TdHlsZSBpbiB0aGF0IHdlCisgICAgICAgIGNvbnNpZGVyIGhhdmluZyBhIHN1Z2dl
c3RlZCBmaWxlIG5hbWUgYXMgYSBzdHJvbmcgaW5kaWNhdG9yIHRoYXQgdGhlIGl0ZW0gc2hvdWxk
IGJlIHRyZWF0ZWQgYXMgYW4gYXR0YWNobWVudCwKKyAgICAgICAgZXZlbiBpZiB0aGUgcHJlc2Vu
dGF0aW9uIHN0eWxlIGlzIHVuc3BlY2lmaWVkLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
UGFzdGVib2FyZENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6ZmlsZUNv
bnRlbnRTdGF0ZSk6CisKKyAgICAgICAgVXNlIFBhc3RlYm9hcmRJdGVtSW5mbzo6Y2FuQmVUcmVh
dGVkQXNBdHRhY2htZW50T3JGaWxlKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGFzdGVi
b2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnByZWZlcnNBdHRhY2htZW50UmVwcmVzZW50
YXRpb24pOgorCisgICAgICAgIFVzZSBQYXN0ZWJvYXJkSXRlbUluZm86OmNhbkJlVHJlYXRlZEFz
QXR0YWNobWVudE9yRmlsZSgpLgorCisyMDE5LTAzLTMxICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlZmFjdG9yIHNvbWUgbG9naWMgZm9y
IGluc2VydGluZyBwYXN0ZWQgb3IgZHJvcHBlZCB2aXJ0dWFsIGNhcmQgZmlsZXMgYXMgYXR0YWNo
bWVudCBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk2NDM1CisgICAgICAgIFdvcmsgdG93YXJkcyA8cmRhcjovL3Byb2JsZW0vNDg1NzMw
OTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmVmYWN0
b3Igc29tZSBleGlzdGluZyBjb2RlcGF0aHMgb24gaU9TIGZvciBpbnNlcnRpbmcgVkNhcmQgZmls
ZXMgYXMgYXR0YWNobWVudCBlbGVtZW50cy4gSW5zdGVhZCBvZiB1c2luZyBhCisgICAgICAgIHNl
cGFyYXRlIHJlYWRWaXJ0dWFsQ29udGFjdEZpbGUgbWV0aG9kIGZvciBjb252ZXJ0aW5nIGEgdmNh
cmQgZmlsZSBvciBkYXRhIGludG8gYW4gYXR0YWNobWVudCBlbGVtZW50IChwb3NzaWJseQorICAg
ICAgICBhY2NvbXBhbmllZCBieSBhIGxpbmspLCB1c2UgdGhlIGV4aXN0aW5nIHJlYWRGaWxlUGF0
aHMgV2ViQ29udGVudFJlYWRlciBtZXRob2QuCisKKyAgICAgICAgVG8gaGFuZGxlIGxpbmtzIHdo
aWNoIG1heSBhY2NvbXBhbnkgdGhlIGF0dGFjaG1lbnQgZWxlbWVudCwgYWRkIGEgaGVscGVyIG1l
dGhvZCBpbiBQYXN0ZWJvYXJkSU9TIHRoYXQgcmVhZHMgYQorICAgICAgICB0aXRsZWQgVVJMIHBy
aW9yIHRvIGluc2VydGluZyBhbiBhdHRhY2htZW50IGVsZW1lbnQsIGluIHRoZSBjYXNlIG9mIHBh
c3Rpbmcgb3IgZHJvcHBpbmcgYSBWQ0YuCisKKyAgICAgICAgVGhpcyBtZWFucyB3ZSBubyBsb25n
ZXIgbmVlZCB0byBoYW5kbGUgYXR0YWNobWVudCByZWFkaW5nIGluIHJlYWRQYXN0ZWJvYXJkV2Vi
Q29udGVudERhdGFGb3JUeXBlLCBzbyB3ZSBjYW4KKyAgICAgICAgc2ltcGx5IGJhaWwgYmVmb3Jl
IHJlYWRpbmcgInB1YmxpYy52Y2FyZCIgaGVyZSBhbmQgZGVmZXIgdG8gcmVhZGluZyBvdGhlciBk
YXRhIHR5cGVzLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgQVBJIHRlc3RzIGluIFdL
QXR0YWNobWVudFRlc3RzIGFuZCBEcmFnQW5kRHJvcFRlc3RzSU9TLgorCisgICAgICAgICogZWRp
dGluZy9XZWJDb250ZW50UmVhZGVyLmg6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9XZWJDb250
ZW50UmVhZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJDb250ZW50UmVhZGVyOjpy
ZWFkVmlydHVhbENvbnRhY3RGaWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0
ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkUGFzdGVib2FyZFdlYkNvbnRlbnREYXRhRm9y
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpyZWFkVVJMQWxvbmdzaWRlQXR0YWNobWVudElmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnByZWZlcnNBdHRhY2htZW50UmVwcmVzZW50YXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpyZWFkUmVzcGVjdGluZ1VUSUZpZGVsaXRpZXMpOgorCiAyMDE5LTAz
LTMxICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgbW9y
ZSBpMzg2IHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlOTM4ODMxNWVlNWM5
YTQyOWI1NjUyZWZkMzc1MmY2NzE2NWQyMmQuLmYwYTczYTYzYTExMGQ4MjU2NjQyM2RiZjc1Y2U2
ZjYzMWEyYzFhZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDQtMDEgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVW5hYmxlIHRvIGNv
cHkgYW5kIHBhc3RlIGEgUERGIGZyb20gTm90ZXMgaW50byBNYWlsIGNvbXBvc2UgYm9keQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDQyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80ODU3MzA5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZWxheCB0aGUgLWNhblBlcmZvcm1BY3Rpb246IGxvZ2lj
IGluIHRoZSBjYXNlIG9mIHBhc3RpbmcgYW4gYXR0YWNobWVudC4gQ29uc2lkZXIgYW4gTlNJdGVt
UHJvdmlkZXIgdG8gcG9zc2libHkKKyAgICAgICAgcGFzdGUgYXMgYW4gYXR0YWNobWVudCBpZiBl
aXRoZXIgaXQgaGFzIGEgcHJlZmVycmVkIHByZXNlbnRhdGlvbiBzdHlsZSBvZiBVSVByZWZlcnJl
ZFByZXNlbnRhdGlvblN0eWxlQXR0YWNobWVudAorICAgICAgICBvciBoYXMgYSBzdHlsZSBvZiBV
SVByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlVW5zcGVjaWZpZWQsIGJ1dCBoYXMgYSBzdWdnZXN0
ZWQgZmlsZSBuYW1lLgorCisgICAgICAgIFRoaXMgYWxsb3dzIGZvciB0aGUgIlBhc3RlIiBhY3Rp
b24gdG8gYmUgc2hvd24gaW4gdGhlIGNhbGxvdXQgbWVudSB3aGVuIGNvcHlpbmcgYW5kIHBhc3Rp
bmcgYSBub24tdGV4dCBmaWxlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2FuUGVyZm9ybUFj
dGlvbkZvcldlYlZpZXc6d2l0aFNlbmRlcjpdKToKKwogMjAxOS0wMy0zMSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBDcmFzaCB3aGVuIGNo
YW5naW5nIGlucHV0bW9kZSBmb3IgY2VydGFpbiB0eXBlcyBvZiBmb2N1c2FibGUgZWxlbWVudHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV2ViQ29udGVudFJlYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9XZWJDb250ZW50UmVhZGVyLmgKaW5kZXggN2U3OGRiMTBl
ZTJiYmE2ZjA0MzRhODVjMWMzNDI5M2IwMjgyMjJmNC4uM2MzMTExMmZiZTQzOTk3YTQ2NDIyMDIw
NWZkMTk0MDM0MzdmMjQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XZWJD
b250ZW50UmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XZWJDb250ZW50UmVh
ZGVyLmgKQEAgLTc3LDcgKzc3LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHJlYWRSVEYoU2hhcmVk
QnVmZmVyJikgb3ZlcnJpZGU7CiAgICAgYm9vbCByZWFkSW1hZ2UoUmVmPFNoYXJlZEJ1ZmZlcj4m
JiwgY29uc3QgU3RyaW5nJiB0eXBlKSBvdmVycmlkZTsKICAgICBib29sIHJlYWRVUkwoY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZWFkVmlydHVh
bENvbnRhY3RGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgdXJsVGl0bGUpIG92ZXJyaWRlOwogICAgIGJvb2wgcmVhZERhdGFCdWZmZXIoU2hhcmVk
QnVmZmVyJiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRl
OwogI2VuZGlmCiAgICAgYm9vbCByZWFkUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRl
OwpAQCAtOTYsNyArOTUsNiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJv
b2wgcmVhZFdlYkFyY2hpdmUoU2hhcmVkQnVmZmVyJikgb3ZlcnJpZGU7CiAgICAgYm9vbCByZWFk
RmlsZVBhdGhzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICBib29sIHJlYWRWaXJ0dWFsQ29udGFjdEZpbGUoY29uc3QgU3RyaW5nJiwgY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29s
IHJlYWRIVE1MKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIGJvb2wgcmVhZFJURkQoU2hh
cmVkQnVmZmVyJikgb3ZlcnJpZGU7CiAgICAgYm9vbCByZWFkUlRGKFNoYXJlZEJ1ZmZlciYpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250
ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRl
bnRSZWFkZXJDb2NvYS5tbQppbmRleCA5ZThlMjY1NmQ1MWRlNjllYWEwZTA2NTQzNzg4YTFmZGFj
Zjc4NTU1Li44YzMzMWZmNzMyZTgzMDQ5Y2EzODg3NDg0MWRlM2IyYTRkZGY1ZWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2Nv
YS5tbQpAQCAtMjIyLDYgKzIyMiwxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXBsYWNlUmljaENv
bnRlbnRXaXRoQXR0YWNobWVudHMoKQogCiBzdGF0aWMgU3RyaW5nIG1pbWVUeXBlRnJvbUNvbnRl
bnRUeXBlKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CisgICAgaWYgKGNvbnRlbnRUeXBl
ID09IFN0cmluZyhrVVRUeXBlVkNhcmQpKSB7CisgICAgICAgIC8vIENvcmVTZXJ2aWNlcyBlcnJv
bmVvdXNseSByZXBvcnRzIHRoYXQgInB1YmxpYy52Y2FyZCIgbWFwcyB0byAidGV4dC9kaXJlY3Rv
cnkiLCByYXRoZXIKKyAgICAgICAgLy8gdGhhbiBlaXRoZXIgInRleHQvdmNhcmQiIG9yICJ0ZXh0
L3gtdmNhcmQiLiBXb3JrIGFyb3VuZCB0aGlzIGJ5IHNwZWNpYWwgY2FzaW5nIHRoZQorICAgICAg
ICAvLyAicHVibGljLnZjYXJkIiBVVEkgdHlwZS4gU2VlIDxyZGFyOi8vcHJvYmxlbS80OTQ3ODIy
OT4gZm9yIG1vcmUgZGV0YWlsLgorICAgICAgICByZXR1cm4gInRleHQvdmNhcmQiX3M7CisgICAg
fQogICAgIHJldHVybiBpc0RlY2xhcmVkVVRJKGNvbnRlbnRUeXBlKSA/IE1JTUVUeXBlRnJvbVVU
SShjb250ZW50VHlwZSkgOiBjb250ZW50VHlwZTsKIH0KIApAQCAtNzc0LDI4ICs3ODAsNiBAQCBi
b29sIFdlYkNvbnRlbnRSZWFkZXI6OnJlYWRGaWxlUGF0aHMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhdGhzKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFdlYkNvbnRlbnRSZWFkZXI6OnJl
YWRWaXJ0dWFsQ29udGFjdEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdXJsVGl0bGUpCi17Ci0gICAgaWYgKGZpbGVQYXRoLmlzRW1wdHko
KSB8fCAhZnJhbWUuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYXV0
byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsKLSAgICBpZiAoIWZyYWdtZW50KQotICAg
ICAgICBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLQotI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAgaWYgKCF1cmwuaXNFbXB0eSgpKQotICAg
ICAgICByZWFkVVJMKHVybCwgdXJsVGl0bGUpOwotCi0gICAgYXV0byBhdHRhY2htZW50Q29udGFp
bmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgYXR0
YWNobWVudENvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3Bs
YXksIENTU1ZhbHVlQmxvY2ssIHRydWUpOwotICAgIGF0dGFjaG1lbnRDb250YWluZXItPmFwcGVu
ZENoaWxkKGF0dGFjaG1lbnRGb3JGaWxlUGF0aChmcmFtZSwgZmlsZVBhdGgpKTsKLSAgICBmcmFn
bWVudC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShhdHRhY2htZW50Q29udGFpbmVyKSk7Ci0jZW5kaWYK
LQotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIFdlYkNvbnRlbnRSZWFkZXI6OnJlYWRVUkwo
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgaWYgKHVybC5pc0Vt
cHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggMzVhODMxZDFjMGEz
MDljMzc2MTVjMWI1MDdmNjM3YWYzODE0ZWE1MC4uNGEyZjM2NDVjNDAzOWFiZGJlOGI0NjhhNDI4
ODNjMGJkNGVkNmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMTM3
LDcgKzEzNyw2IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIGJv
b2wgcmVhZFdlYkFyY2hpdmUoU2hhcmVkQnVmZmVyJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBy
ZWFkRmlsZVBhdGhzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgPSAwOwotICAgIHZpcnR1YWwgYm9v
bCByZWFkVmlydHVhbENvbnRhY3RGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgdXJsVGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgcmVhZEhU
TUwoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZWFkUlRGRChTaGFyZWRC
dWZmZXImKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHJlYWRSVEYoU2hhcmVkQnVmZmVyJikgPSAw
OwpAQCAtMjg5LDcgKzI4OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIERpZE5vdFJlYWRUeXBlLAog
ICAgICAgICBQYXN0ZWJvYXJkV2FzQ2hhbmdlZEV4dGVybmFsbHkKICAgICB9OwotICAgIFJlYWRl
clJlc3VsdCByZWFkUGFzdGVib2FyZFdlYkNvbnRlbnREYXRhRm9yVHlwZShQYXN0ZWJvYXJkV2Vi
Q29udGVudFJlYWRlciYsIFBhc3RlYm9hcmRTdHJhdGVneSYsIE5TU3RyaW5nICp0eXBlLCBpbnQg
aXRlbUluZGV4LCBjb25zdCBQYXN0ZWJvYXJkSXRlbUluZm8mKTsKKyAgICBSZWFkZXJSZXN1bHQg
cmVhZFBhc3RlYm9hcmRXZWJDb250ZW50RGF0YUZvclR5cGUoUGFzdGVib2FyZFdlYkNvbnRlbnRS
ZWFkZXImLCBQYXN0ZWJvYXJkU3RyYXRlZ3kmLCBOU1N0cmluZyAqdHlwZSwgaW50IGl0ZW1JbmRl
eCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRJdGVtSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGFzdGVib2FyZEl0ZW1JbmZvLmgKaW5kZXggOTJkOGIwYmZkNjdhODJkZjg0NmU1ODlkNDNk
ZjFjZGIxYzFmNDJhYS4uMDRmNGQ2N2JkYmNkNzliODIyZjJkZmU5Y2E2YTNkMjhkMjg0ZjdjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEl0ZW1JbmZvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEl0ZW1JbmZvLmgKQEAgLTU2
LDYgKzU2LDI2IEBAIHN0cnVjdCBQYXN0ZWJvYXJkSXRlbUluZm8gewogICAgICAgICByZXR1cm4g
cGF0aHNGb3JGaWxlVXBsb2FkW2luZGV4XTsKICAgICB9CiAKKyAgICAvLyBUaGUgcHJlZmVycmVk
UHJlc2VudGF0aW9uU3R5bGUgZmxhZyBpcyBwbGF0Zm9ybSBBUEkgdXNlZCBieSBkcmFnIG9yIGNv
cHkgc291cmNlcyB0byBleHBsaWNpdGx5IGluZGljYXRlCisgICAgLy8gdGhhdCB0aGUgZGF0YSBi
ZWluZyB3cml0dGVuIHRvIHRoZSBpdGVtIHByb3ZpZGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIGFu
IGF0dGFjaG1lbnQ7IHVuZm9ydHVuYXRlbHksIG5vdAorICAgIC8vIGFsbCBjbGllbnRzIGF0dGVt
cHQgdG8gc2V0IHRoaXMgZmxhZywgc28gd2UgYWRkaXRpb25hbGx5IHRha2UgaGF2aW5nIGEgc3Vn
Z2VzdGVkIGZpbGVuYW1lIGFzIGEgc3Ryb25nCisgICAgLy8gaW5kaWNhdG9yIHRoYXQgdGhlIGl0
ZW0gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gYXR0YWNobWVudCBvciBmaWxlLiBBbHNvLCB0aGUg
cHJlc2VuY2Ugb2YgYW55IG90aGVyCisgICAgLy8gZGVjbGFyZWQgbm9uLXRleHQgZGF0YSBpbiB0
aGUgc2FtZSBpdGVtIGluZGljYXRlcyB0aGF0IHRoZSBjb250ZW50IGJlaW5nIGRyb3BwZWQgY2Fu
IHRha2Ugb24gYW5vdGhlcgorICAgIC8vIG5vbi10ZXh0IGZvcm1hdCwgd2hpY2ggY291bGQgYmUg
YSBmaWxlLgorICAgIGJvb2wgY2FuQmVUcmVhdGVkQXNBdHRhY2htZW50T3JGaWxlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHN3aXRjaCAocHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGUpIHsKKyAg
ICAgICAgY2FzZSBQYXN0ZWJvYXJkSXRlbVByZXNlbnRhdGlvblN0eWxlOjpJbmxpbmU6CisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgUGFzdGVib2FyZEl0ZW1QcmVzZW50
YXRpb25TdHlsZTo6QXR0YWNobWVudDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICBjYXNlIFBhc3RlYm9hcmRJdGVtUHJlc2VudGF0aW9uU3R5bGU6OlVuc3BlY2lmaWVkOgorICAg
ICAgICAgICAgcmV0dXJuIGlzTm9uVGV4dFR5cGUgfHwgY29udGFpbnNGaWxlVVJMQW5kRmlsZVVw
bG9hZENvbnRlbnQgfHwgIXN1Z2dlc3RlZEZpbGVOYW1lLmlzRW1wdHkoKTsKKyAgICAgICAgfQor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKwogICAgIFN0cmluZyBjb250ZW50VHlwZUZvckhpZ2hlc3RGaWRlbGl0eUl0ZW0oKSBjb25z
dAogICAgIHsKICAgICAgICAgaWYgKGNvbnRlbnRUeXBlc0ZvckZpbGVVcGxvYWQuaXNFbXB0eSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1t
CmluZGV4IDI1MGEyYWZlYTU4ZTVmMThmMGU2ZDI1ZGQwYjYxODFiZDRmNmQ1MjQuLmM1ZWM2Nzgw
OWRlYmQzZmE3MjE4MzcxMWRlNjNmYWY2ZjRiYjJiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KQEAgLTE0MywyNiArMTQzLDEyIEBA
IFBhc3RlYm9hcmQ6OkZpbGVDb250ZW50U3RhdGUgUGFzdGVib2FyZDo6ZmlsZUNvbnRlbnRTdGF0
ZSgpCiAgICAgICAgIC8vIE9uIGlPUywgZmlsZXMgYXJlIG5vdCB3cml0dGVuIHRvIHRoZSBwYXN0
ZWJvYXJkIHVzaW5nIGZpbGUgVVJMcywgc28gd2UgbmVlZCBhIGhldXJpc3RpYyB0byBkZXRlcm1p
bmUKICAgICAgICAgLy8gd2hldGhlciBvciBub3QgdGhlIHBhc3RlYm9hcmQgY29udGFpbnMgaXRl
bXMgdGhhdCByZXByZXNlbnQgZmlsZXMuIEFuIGV4YW1wbGUgb2Ygd2hlbiB0aGlzIGdldHMgdHJp
Y2t5CiAgICAgICAgIC8vIGlzIGRpZmZlcmVudGlhdGluZyBiZXR3ZWVuIGNhc2VzIHdoZXJlIHRo
ZSB1c2VyIGlzIGRyYWdnaW5nIGEgcGxhaW4gdGV4dCBmaWxlLCB2ZXJzdXMgc2VsZWN0ZWQgdGV4
dC4KLSAgICAgICAgLy8gU29tZSBjb21tb24gc2lnbnMgdGhhdCBpbmRpY2F0ZSBhIGZpbGUgZHJv
cCBhcyBvcHBvc2VkIHRvIGRyb3BwaW5nIGlubGluZSBkYXRhIGFyZToKLSAgICAgICAgLy8KLSAg
ICAgICAgLy8gIDEuIE11bHRpcGxlIGl0ZW1zIC0gdGhlIHN5c3RlbSBnZW5lcmFsbHkgZG9lcyBu
b3QgZ2l2ZSBvcHBvcnR1bml0aWVzIHRvIGZsb2NrIG11bHRpcGxlIHBpZWNlcyBvZgotICAgICAg
ICAvLyAgICAgc2VsZWN0ZWQgdGV4dC4KLSAgICAgICAgLy8gIDIuIFByZWZlcnJlZCBhdHRhY2ht
ZW50IHByZXNlbnRhdGlvbiBzdHlsZSAtIHRoaXMgbWVhbnMgdGhlIHNvdXJjZSBoYXMgZXhwbGlj
aXRseSBtYXJrZWQgdGhlIGl0ZW0KLSAgICAgICAgLy8gICAgIGFzIGEgZmlsZS1saWtlIGVudGl0
eSwgYXMgb3Bwb3NlZCB0byBpbmxpbmUgZGF0YS4KLSAgICAgICAgLy8gIDMuIEEgc3VnZ2VzdGVk
IG5hbWUgLSB0aGlzIG1lYW5zIHRoYXQgdGhlIHNvdXJjZSBoYXMgZXhwbGljaXRseSBzcGVjaWZp
ZWQgYSBwb3RlbnRpYWwgZmlsZSBuYW1lIGZvcgotICAgICAgICAvLyAgICAgdGhlIGl0ZW0gd2hl
biBkcm9wcGVkLgotICAgICAgICAvLyAgNC4gVGhlIHByZXNlbmNlIG9mIGFueSBvdGhlciBkZWNs
YXJlZCBub24tdGV4dCBkYXRhIGluIHRoZSBzYW1lIGl0ZW0gaW5kaWNhdGVzIHRoYXQgdGhlIGNv
bnRlbnQgYmVpbmcKLSAgICAgICAgLy8gICAgIGRyb3BwZWQgY2FuIHRha2Ugb24gYW5vdGhlciBu
b24tdGV4dCBmb3JtYXQsIHdoaWNoIGNvdWxkIGJlIGEgZmlsZS4KLSAgICAgICAgLy8KLSAgICAg
ICAgLy8gSWYgbm9uZSBvZiB0aGVzZSBmb3VyIGNvbmRpdGlvbnMgYXJlIHNhdGlzZmllZCwgaXQn
cyB2ZXJ5IGxpa2VseSB0aGF0IHRoZSBjb250ZW50IGJlaW5nIGRyb3BwZWQgaXMganVzdAorICAg
ICAgICAvLyBJZiB0aGUgaXRlbSBjYW4ndCBiZSB0cmVhdGVkIGFzIGFuIGF0dGFjaG1lbnQsIGl0
J3MgdmVyeSBsaWtlbHkgdGhhdCB0aGUgY29udGVudCBiZWluZyBkcm9wcGVkIGlzIGp1c3QKICAg
ICAgICAgLy8gYW4gaW5saW5lIHBpZWNlIG9mIHRleHQsIHdpdGggbm8gZmlsZXMgaW4gdGhlIHBh
c3RlYm9hcmQgKGFuZCB0aGVyZWZvcmUsIG5vIHJpc2sgb2YgbGVha2luZyBmaWxlIHBhdGhzCiAg
ICAgICAgIC8vIHRvIHdlYiBjb250ZW50KS4gSW4gY2FzZXMgc3VjaCBhcyB0aGVzZSwgd2Ugc2hv
dWxkIG5vdCBzdXBwcmVzcyBEYXRhVHJhbnNmZXIgYWNjZXNzLgogICAgICAgICBhdXRvIGl0ZW1z
ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5hbGxQYXN0ZWJv
YXJkSXRlbUluZm8obV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgICAgIG1heUNvbnRhaW5GaWxlUGF0
aHMgPSBpdGVtcy5zaXplKCkgIT0gMSB8fCBub3RGb3VuZCAhPSBpdGVtcy5maW5kTWF0Y2hpbmco
W10gKGF1dG8mIGl0ZW0pIHsKLSAgICAgICAgICAgIGlmIChpdGVtLnByZWZlcnJlZFByZXNlbnRh
dGlvblN0eWxlICE9IFBhc3RlYm9hcmRJdGVtUHJlc2VudGF0aW9uU3R5bGU6OlVuc3BlY2lmaWVk
KQotICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxl
ID09IFBhc3RlYm9hcmRJdGVtUHJlc2VudGF0aW9uU3R5bGU6OkF0dGFjaG1lbnQ7Ci0KLSAgICAg
ICAgICAgIHJldHVybiAhaXRlbS5zdWdnZXN0ZWRGaWxlTmFtZS5pc0VtcHR5KCkgfHwgaXRlbS5p
c05vblRleHRUeXBlIHx8IGl0ZW0uY29udGFpbnNGaWxlVVJMQW5kRmlsZVVwbG9hZENvbnRlbnQ7
CisgICAgICAgICAgICByZXR1cm4gaXRlbS5jYW5CZVRyZWF0ZWRBc0F0dGFjaG1lbnRPckZpbGUo
KTsKICAgICAgICAgfSk7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IDVlZjNjZThhOWFhOGY5YzA5MzA1ZGQ5ZDI2MmJj
Yjg0ZDhhNzYwYTguLjA2NTg0YTBhYzlkNTU5YWU5MGEzOTYzOTRhMDNlNThkMjI1ZTM4MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCkBAIC0xODEs
NyArMTgxLDcgQEAgc3RhdGljIGJvb2wgaXNUeXBlQWxsb3dlZEJ5UmVhZGluZ1BvbGljeShOU1N0
cmluZyAqdHlwZSwgV2ViQ29udGVudFJlYWRpbmdQb2xpY3kKICAgICAgICAgfHwgW3R5cGUgaXNF
cXVhbFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVGbGF0UlRGRF07CiB9CiAK
LVBhc3RlYm9hcmQ6OlJlYWRlclJlc3VsdCBQYXN0ZWJvYXJkOjpyZWFkUGFzdGVib2FyZFdlYkNv
bnRlbnREYXRhRm9yVHlwZShQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYgcmVhZGVyLCBQYXN0
ZWJvYXJkU3RyYXRlZ3kmIHN0cmF0ZWd5LCBOU1N0cmluZyAqdHlwZSwgaW50IGl0ZW1JbmRleCwg
Y29uc3QgUGFzdGVib2FyZEl0ZW1JbmZvJiBpbmZvKQorUGFzdGVib2FyZDo6UmVhZGVyUmVzdWx0
IFBhc3RlYm9hcmQ6OnJlYWRQYXN0ZWJvYXJkV2ViQ29udGVudERhdGFGb3JUeXBlKFBhc3RlYm9h
cmRXZWJDb250ZW50UmVhZGVyJiByZWFkZXIsIFBhc3RlYm9hcmRTdHJhdGVneSYgc3RyYXRlZ3ks
IE5TU3RyaW5nICp0eXBlLCBpbnQgaXRlbUluZGV4KQogewogICAgIGlmIChbdHlwZSBpc0VxdWFs
VG9TdHJpbmc6V2ViQXJjaGl2ZVBib2FyZFR5cGVdIHx8IFt0eXBlIGlzRXF1YWxUb1N0cmluZzoo
X19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlV2ViQXJjaGl2ZV0pIHsKICAgICAgICAgYXV0byBi
dWZmZXIgPSBzdHJhdGVneS5yZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaXRlbUluZGV4LCB0eXBl
LCBtX3Bhc3RlYm9hcmROYW1lKTsKQEAgLTE5OCwyNCArMTk4LDEwIEBAIFBhc3RlYm9hcmQ6OlJl
YWRlclJlc3VsdCBQYXN0ZWJvYXJkOjpyZWFkUGFzdGVib2FyZFdlYkNvbnRlbnREYXRhRm9yVHlw
ZShQYXN0ZWJvCiAgICAgfQogCiAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzooX19icmlk
Z2UgTlNTdHJpbmcgKilrVVRUeXBlVkNhcmRdKSB7Ci0gICAgICAgIGJvb2wgY2FuQ3JlYXRlQXR0
YWNobWVudHMgPSBmYWxzZTsKLSNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgICAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50
RWxlbWVudEVuYWJsZWQoKSkKLSAgICAgICAgICAgIGNhbkNyZWF0ZUF0dGFjaG1lbnRzID0gdHJ1
ZTsKLSNlbmRpZgotICAgICAgICBpZiAoY2FuQ3JlYXRlQXR0YWNobWVudHMpIHsKLSAgICAgICAg
ICAgIGF1dG8gcGF0aCA9IGluZm8ucGF0aEZvckNvbnRlbnRUeXBlKGtVVFR5cGVWQ2FyZCk7Ci0g
ICAgICAgICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFJl
YWRlclJlc3VsdDo6RGlkTm90UmVhZFR5cGU7Ci0KLSAgICAgICAgICAgIFN0cmluZyB0aXRsZTsK
LSAgICAgICAgICAgIGF1dG8gdXJsID0gc3RyYXRlZ3kucmVhZFVSTEZyb21QYXN0ZWJvYXJkKGl0
ZW1JbmRleCwgbV9wYXN0ZWJvYXJkTmFtZSwgdGl0bGUpOwotICAgICAgICAgICAgaWYgKG1fY2hh
bmdlQ291bnQgIT0gY2hhbmdlQ291bnQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gUmVhZGVy
UmVzdWx0OjpQYXN0ZWJvYXJkV2FzQ2hhbmdlZEV4dGVybmFsbHk7Ci0KLSAgICAgICAgICAgIGlm
IChyZWFkZXIucmVhZFZpcnR1YWxDb250YWN0RmlsZShwYXRoLCB1cmwsIHRpdGxlKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gUmVhZGVyUmVzdWx0OjpSZWFkVHlwZTsKLSAgICAgICAgfQorICAg
ICAgICAvLyBXaGVuIGRyb3BwaW5nIG9yIHBhc3RpbmcgYSB2aXJ0dWFsIGNvbnRhY3QgZmlsZSBp
biBlZGl0YWJsZSBjb250ZW50LCB0aGVyZSdzIG5ldmVyIGEgY2FzZSB3aGVyZSB3ZQorICAgICAg
ICAvLyB3b3VsZCB3YW50IHRvIGR1bXAgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGUgZmlsZSBh
cyBwbGFpbiB0ZXh0LiBJbnN0ZWFkLCBmYWxsIGJhY2sgb24gYW5vdGhlcgorICAgICAgICAvLyBh
cHByb3ByaWF0ZSByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBhIFVSTCBvciBwbGFpbiB0ZXh0LiBG
b3IgaW5zdGFuY2UsIGluIHRoZSBjYXNlIG9mIGFuIE1LTWFwSXRlbSwKKyAgICAgICAgLy8gd2Ug
d291bGQgcHJlZmVyIHRvIGluc2VydCBhbiBBcHBsZSBNYXBzIGxpbmsgaW5zdGVhZC4KICAgICAg
ICAgcmV0dXJuIFJlYWRlclJlc3VsdDo6RGlkTm90UmVhZFR5cGU7CiAgICAgfQogCkBAIC0yNjcs
NiArMjUzLDI5IEBAIFBhc3RlYm9hcmQ6OlJlYWRlclJlc3VsdCBQYXN0ZWJvYXJkOjpyZWFkUGFz
dGVib2FyZFdlYkNvbnRlbnREYXRhRm9yVHlwZShQYXN0ZWJvCiAgICAgcmV0dXJuIFJlYWRlclJl
c3VsdDo6RGlkTm90UmVhZFR5cGU7CiB9CiAKK3N0YXRpYyB2b2lkIHJlYWRVUkxBbG9uZ3NpZGVB
dHRhY2htZW50SWZOZWNlc3NhcnkoUGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXImIHJlYWRlciwg
UGFzdGVib2FyZFN0cmF0ZWd5JiBzdHJhdGVneSwgY29uc3QgU3RyaW5nJiB0eXBlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgaW50IGl0ZW1JbmRleCkKK3sKKyAgICBp
ZiAoIVVUVHlwZUNvbmZvcm1zVG8odHlwZUlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KSwga1VUVHlwZVZDYXJkKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIHRpdGxlOwor
ICAgIGF1dG8gdXJsID0gc3RyYXRlZ3kucmVhZFVSTEZyb21QYXN0ZWJvYXJkKGl0ZW1JbmRleCwg
cGFzdGVib2FyZE5hbWUsIHRpdGxlKTsKKyAgICBpZiAoIXVybC5pc0VtcHR5KCkpCisgICAgICAg
IHJlYWRlci5yZWFkVVJMKHVybCwgdGl0bGUpOworfQorCitzdGF0aWMgYm9vbCBwcmVmZXJzQXR0
YWNobWVudFJlcHJlc2VudGF0aW9uKGNvbnN0IFBhc3RlYm9hcmRJdGVtSW5mbyYgaW5mbykKK3sK
KyAgICBhdXRvIGNvbnRlbnRUeXBlRm9ySGlnaGVzdEZpZGVsaXR5SXRlbSA9IGluZm8uY29udGVu
dFR5cGVGb3JIaWdoZXN0RmlkZWxpdHlJdGVtKCk7CisgICAgaWYgKGNvbnRlbnRUeXBlRm9ySGln
aGVzdEZpZGVsaXR5SXRlbS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmIChpbmZvLnByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlID09IFBhc3RlYm9hcmRJdGVtUHJl
c2VudGF0aW9uU3R5bGU6OklubGluZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIGluZm8uY2FuQmVUcmVhdGVkQXNBdHRhY2htZW50T3JGaWxlKCkgfHwgVVRUeXBlQ29uZm9y
bXNUbyhjb250ZW50VHlwZUZvckhpZ2hlc3RGaWRlbGl0eUl0ZW0uY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSwga1VUVHlwZVZDYXJkKTsKK30KKwogdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9h
cmRXZWJDb250ZW50UmVhZGVyJiByZWFkZXIsIFdlYkNvbnRlbnRSZWFkaW5nUG9saWN5IHBvbGlj
eSkKIHsKICAgICByZWFkZXIuY29udGVudE9yaWdpbiA9IHJlYWRPcmlnaW4oKTsKQEAgLTI5NCwx
MiArMzAzLDEyIEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJl
YWRlciYgcmVhZGVyLCBXZWJDb250ZW50UmVhZGluZ1BvbGljCiAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBudW1iZXJPZkl0ZW1zOyBpKyspIHsKICAgICAgICAgYXV0byBpbmZvID0gc3RyYXRlZ3ku
aW5mb3JtYXRpb25Gb3JJdGVtQXRJbmRleChpLCBtX3Bhc3RlYm9hcmROYW1lKTsKICNpZiBFTkFC
TEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgICAgICBpZiAoY2FuUmVhZEF0dGFjaG1lbnQpIHsK
KyAgICAgICAgaWYgKGNhblJlYWRBdHRhY2htZW50ICYmIHByZWZlcnNBdHRhY2htZW50UmVwcmVz
ZW50YXRpb24oaW5mbykpIHsKICAgICAgICAgICAgIGF1dG8gdHlwZUZvckZpbGVVcGxvYWQgPSBp
bmZvLmNvbnRlbnRUeXBlRm9ySGlnaGVzdEZpZGVsaXR5SXRlbSgpOwotICAgICAgICAgICAgaWYg
KCF0eXBlRm9yRmlsZVVwbG9hZC5pc0VtcHR5KCkgJiYgaW5mby5wcmVmZXJyZWRQcmVzZW50YXRp
b25TdHlsZSA9PSBQYXN0ZWJvYXJkSXRlbVByZXNlbnRhdGlvblN0eWxlOjpBdHRhY2htZW50KSB7
Ci0gICAgICAgICAgICAgICAgYXV0byBidWZmZXIgPSBzdHJhdGVneS5yZWFkQnVmZmVyRnJvbVBh
c3RlYm9hcmQoaSwgdHlwZUZvckZpbGVVcGxvYWQsIG1fcGFzdGVib2FyZE5hbWUpOwotICAgICAg
ICAgICAgICAgIGlmIChidWZmZXIgJiYgcmVhZGVyLnJlYWREYXRhQnVmZmVyKCpidWZmZXIsIHR5
cGVGb3JGaWxlVXBsb2FkLCBpbmZvLnN1Z2dlc3RlZEZpbGVOYW1lKSkKLSAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoYXV0byBidWZmZXIgPSBzdHJhdGVneS5y
ZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaSwgdHlwZUZvckZpbGVVcGxvYWQsIG1fcGFzdGVib2Fy
ZE5hbWUpKSB7CisgICAgICAgICAgICAgICAgcmVhZFVSTEFsb25nc2lkZUF0dGFjaG1lbnRJZk5l
Y2Vzc2FyeShyZWFkZXIsIHN0cmF0ZWd5LCB0eXBlRm9yRmlsZVVwbG9hZCwgbV9wYXN0ZWJvYXJk
TmFtZSwgaSk7CisgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWREYXRhQnVmZmVyKCpidWZmZXIs
IHR5cGVGb3JGaWxlVXBsb2FkLCBpbmZvLnN1Z2dlc3RlZEZpbGVOYW1lKTsKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogI2VuZGlmCkBAIC0zMDks
NyArMzE4LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRXZWJDb250ZW50UmVh
ZGVyJiByZWFkZXIsIFdlYkNvbnRlbnRSZWFkaW5nUG9saWMKICAgICAgICAgICAgIGlmICghaXNU
eXBlQWxsb3dlZEJ5UmVhZGluZ1BvbGljeSh0eXBlLCBwb2xpY3kpKQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIGl0ZW1SZXN1bHQgPSByZWFkUGFzdGVib2Fy
ZFdlYkNvbnRlbnREYXRhRm9yVHlwZShyZWFkZXIsIHN0cmF0ZWd5LCB0eXBlLCBpLCBpbmZvKTsK
KyAgICAgICAgICAgIGF1dG8gaXRlbVJlc3VsdCA9IHJlYWRQYXN0ZWJvYXJkV2ViQ29udGVudERh
dGFGb3JUeXBlKHJlYWRlciwgc3RyYXRlZ3ksIHR5cGUsIGkpOwogICAgICAgICAgICAgaWYgKGl0
ZW1SZXN1bHQgPT0gUmVhZGVyUmVzdWx0OjpQYXN0ZWJvYXJkV2FzQ2hhbmdlZEV4dGVybmFsbHkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0zMzYsNyArMzQ1LDggQEAgdm9pZCBQYXN0
ZWJvYXJkOjpyZWFkUmVzcGVjdGluZ1VUSUZpZGVsaXRpZXMoUGFzdGVib2FyZFdlYkNvbnRlbnRS
ZWFkZXImIHJlYWRlciwKICAgICAgICAgYXV0byBpbmZvID0gc3RyYXRlZ3kuaW5mb3JtYXRpb25G
b3JJdGVtQXRJbmRleChpbmRleCwgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgICAgIGF1dG8gYXR0
YWNobWVudEZpbGVQYXRoID0gaW5mby5wYXRoRm9ySGlnaGVzdEZpZGVsaXR5SXRlbSgpOwogICAg
ICAgICBib29sIGNhblJlYWRBdHRhY2htZW50ID0gcG9saWN5ID09IFdlYkNvbnRlbnRSZWFkaW5n
UG9saWN5OjpBbnlUeXBlICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuYXR0YWNobWVudEVsZW1lbnRFbmFibGVkKCkgJiYgIWF0dGFjaG1lbnRGaWxlUGF0aC5pc0Vt
cHR5KCk7Ci0gICAgICAgIGlmIChjYW5SZWFkQXR0YWNobWVudCAmJiBpbmZvLnByZWZlcnJlZFBy
ZXNlbnRhdGlvblN0eWxlID09IFBhc3RlYm9hcmRJdGVtUHJlc2VudGF0aW9uU3R5bGU6OkF0dGFj
aG1lbnQpIHsKKyAgICAgICAgaWYgKGNhblJlYWRBdHRhY2htZW50ICYmIHByZWZlcnNBdHRhY2ht
ZW50UmVwcmVzZW50YXRpb24oaW5mbykpIHsKKyAgICAgICAgICAgIHJlYWRVUkxBbG9uZ3NpZGVB
dHRhY2htZW50SWZOZWNlc3NhcnkocmVhZGVyLCBzdHJhdGVneSwgaW5mby5jb250ZW50VHlwZUZv
ckhpZ2hlc3RGaWRlbGl0eUl0ZW0oKSwgbV9wYXN0ZWJvYXJkTmFtZSwgaW5kZXgpOwogICAgICAg
ICAgICAgcmVhZGVyLnJlYWRGaWxlUGF0aHMoeyBXVEZNb3ZlKGF0dGFjaG1lbnRGaWxlUGF0aCkg
fSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMzQ4LDcgKzM1OCw3IEBA
IHZvaWQgUGFzdGVib2FyZDo6cmVhZFJlc3BlY3RpbmdVVElGaWRlbGl0aWVzKFBhc3RlYm9hcmRX
ZWJDb250ZW50UmVhZGVyJiByZWFkZXIsCiAgICAgICAgICAgICBpZiAoIWlzVHlwZUFsbG93ZWRC
eVJlYWRpbmdQb2xpY3kodHlwZSwgcG9saWN5KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICAgICAgcmVzdWx0ID0gcmVhZFBhc3RlYm9hcmRXZWJDb250ZW50RGF0YUZvclR5
cGUocmVhZGVyLCBzdHJhdGVneSwgdHlwZSwgaW5kZXgsIGluZm8pOworICAgICAgICAgICAgcmVz
dWx0ID0gcmVhZFBhc3RlYm9hcmRXZWJDb250ZW50RGF0YUZvclR5cGUocmVhZGVyLCBzdHJhdGVn
eSwgdHlwZSwgaW5kZXgpOwogICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBSZWFkZXJSZXN1bHQ6
OlBhc3RlYm9hcmRXYXNDaGFuZ2VkRXh0ZXJuYWxseSkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlYWRlclJlc3VsdDo6UmVhZFR5cGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCA0ZjllZjEzYzdiODBjMDQwMzYxMjUzYjI2YWY3OWY2MmM5OWNkN2MzLi4x
YWE2MWZmNmE3NDQ3MmMyNDg4ZWI3MDFiMjU3NGQwNmRmMDdjMDdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTI4MjYsNyArMjgyNiwxNCBAQCAtIChCT09MKWNhblBlcmZvcm1BY3Rpb25Gb3JXZWJWaWV3
OihTRUwpYWN0aW9uIHdpdGhTZW5kZXI6KGlkKXNlbmRlcgogI2lmIFBMQVRGT1JNKElPUykKICAg
ICAgICAgaWYgKGVkaXRvclN0YXRlLmlzQ29udGVudFJpY2hseUVkaXRhYmxlICYmIF93ZWJWaWV3
LmNvbmZpZ3VyYXRpb24uX2F0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCkgewogICAgICAgICAgICAg
Zm9yIChOU0l0ZW1Qcm92aWRlciAqaXRlbVByb3ZpZGVyIGluIHBhc3RlYm9hcmQuaXRlbVByb3Zp
ZGVycykgewotICAgICAgICAgICAgICAgIGlmIChpdGVtUHJvdmlkZXIucHJlZmVycmVkUHJlc2Vu
dGF0aW9uU3R5bGUgPT0gVUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFjaG1lbnQgJiYg
aXRlbVByb3ZpZGVyLndlYl9maWxlVXBsb2FkQ29udGVudFR5cGVzLmNvdW50KQorICAgICAgICAg
ICAgICAgIGF1dG8gcHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGUgPSBpdGVtUHJvdmlkZXIucHJl
ZmVycmVkUHJlc2VudGF0aW9uU3R5bGU7CisgICAgICAgICAgICAgICAgaWYgKHByZWZlcnJlZFBy
ZXNlbnRhdGlvblN0eWxlID09IFVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVJbmxpbmUpCisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaWYgKHByZWZl
cnJlZFByZXNlbnRhdGlvblN0eWxlID09IFVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVVbnNw
ZWNpZmllZCAmJiAhaXRlbVByb3ZpZGVyLnN1Z2dlc3RlZE5hbWUubGVuZ3RoKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGlmIChpdGVtUHJvdmlkZXIu
d2ViX2ZpbGVVcGxvYWRDb250ZW50VHlwZXMuY291bnQpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBZRVM7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNTk3YzY4NjZkYTJkMDQ5YzNmOWQ3YTg2
ZTIyMzZmMTVhODg2ZWNjLi4wZDJhYjJkZjYxZWFjNzlkMThiNjU4Yjk0ZTZiNTdjYmM3NDY3ZjRh
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTktMDQtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CisKKyAgICAgICAgVW5hYmxlIHRvIGNvcHkgYW5kIHBhc3RlIGEgUERGIGZyb20gTm90
ZXMgaW50byBNYWlsIGNvbXBvc2UgYm9keQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODU3MzA5
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IEFQSSB0ZXN0cyB0byBleGVyY2lzZSBwYXN0aW5nIENOQ29udGFjdCBhbmQgTUtNYXBJdGVt
LWJhY2tlZCBpdGVtIHByb3ZpZGVycy4gQWRkaXRpb25hbGx5LCBhZGp1c3QgYW4KKyAgICAgICAg
ZXhpc3RpbmcgdGVzdCB0aGF0IHBhc3RlcyBhIFBERiBmaWxlIGFzIGFuIGF0dGFjaG1lbnQgdG8g
bm90IHJlcXVpcmUgVUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFjaG1lbnQKKyAgICAg
ICAgdG8gYmUgc3BlY2lmaWVkIG9uIHRoZSBpdGVtIHByb3ZpZGVycy4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjptYXBJdGVtRm9yVGVzdGluZyk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpjb250YWN0SXRlbUZvclRlc3RpbmcpOgorCiAyMDE5LTAzLTMxICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgbW9yZSBpMzg2IHNwZWNpZmlj
IGNvbmZpZ3VyYXRpb25zCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQppbmRleCA1ODdjNTM5ZjI2ZTFjYTBi
YTg4M2E5MWRmNWMxMDczYzc3YzFhYWYwLi4xYzJiNDkwNzRlZGZlNmFkNTdiNThiYjkwMTE1NWM5
NmYxMjZjY2Q0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLQXR0YWNobWVudFRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KQEAgLTE4MDQsMTYgKzE4MDQsMzMgQEAg
VEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgRHJhZ0F0dGFjaG1lbnRJbnNlcnRlZEFzRGF0YSkK
ICAgICBbZHJhZ0FuZERyb3BTaW11bGF0b3IgZW5kRGF0YVRyYW5zZmVyXTsKIH0KIAotVEVTVChX
S0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0RHJvcHBlZE1hcEl0ZW1Bc0F0dGFjaG1lbnQpCitz
dGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBtYXBJdGVtRm9yVGVzdGluZygpCiB7CiAg
ICAgYXV0byBwbGFjZW1hcmsgPSBhZG9wdE5TKFthbGxvY01LUGxhY2VtYXJrSW5zdGFuY2UoKSBp
bml0V2l0aENvb3JkaW5hdGU6Q0xMb2NhdGlvbkNvb3JkaW5hdGUyRE1ha2UoMzcuMzMyNywgLTEy
Mi4wMDUzKV0pOwogICAgIGF1dG8gbWFwSXRlbSA9IGFkb3B0TlMoW2FsbG9jTUtNYXBJdGVtSW5z
dGFuY2UoKSBpbml0V2l0aFBsYWNlbWFyazpwbGFjZW1hcmsuZ2V0KCldKTsKLSAgICBbbWFwSXRl
bSBzZXROYW1lOkAiQXBwbGUgUGFyayJdOworICAgIFttYXBJdGVtIHNldE5hbWU6QCJBcHBsZSBQ
YXJrLnZjZiJdOwogCiAgICAgYXV0byBpdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbTlNJdGVtUHJv
dmlkZXIgYWxsb2NdIGluaXRdKTsKICAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyT2JqZWN0Om1h
cEl0ZW0uZ2V0KCkgdmlzaWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uVmlzaWJp
bGl0eUFsbF07CiAgICAgW2l0ZW1Qcm92aWRlciBzZXRTdWdnZXN0ZWROYW1lOlttYXBJdGVtIG5h
bWVdXTsKKyAgICByZXR1cm4gaXRlbVByb3ZpZGVyOworfQorCitzdGF0aWMgUmV0YWluUHRyPE5T
SXRlbVByb3ZpZGVyPiBjb250YWN0SXRlbUZvclRlc3RpbmcoKQoreworICAgIGF1dG8gY29udGFj
dCA9IGFkb3B0TlMoW2FsbG9jQ05NdXRhYmxlQ29udGFjdEluc3RhbmNlKCkgaW5pdF0pOworICAg
IFtjb250YWN0IHNldEdpdmVuTmFtZTpAIkZvbyJdOworICAgIFtjb250YWN0IHNldEZhbWlseU5h
bWU6QCJCYXIiXTsKKworICAgIGF1dG8gaXRlbVByb3ZpZGVyID0gYWRvcHROUyhbW05TSXRlbVBy
b3ZpZGVyIGFsbG9jXSBpbml0XSk7CisgICAgW2l0ZW1Qcm92aWRlciByZWdpc3Rlck9iamVjdDpj
b250YWN0LmdldCgpIHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXByZXNlbnRhdGlvblZpc2li
aWxpdHlBbGxdOworICAgIFtpdGVtUHJvdmlkZXIgc2V0U3VnZ2VzdGVkTmFtZTpAIkZvbyBCYXIu
dmNmIl07CisgICAgcmV0dXJuIGl0ZW1Qcm92aWRlcjsKK30KIAorVEVTVChXS0F0dGFjaG1lbnRU
ZXN0c0lPUywgSW5zZXJ0RHJvcHBlZE1hcEl0ZW1Bc0F0dGFjaG1lbnQpCit7CisgICAgYXV0byBp
dGVtUHJvdmlkZXIgPSBtYXBJdGVtRm9yVGVzdGluZygpOwogICAgIGF1dG8gd2ViVmlldyA9IHdl
YlZpZXdGb3JUZXN0aW5nQXR0YWNobWVudHMoKTsKICAgICBhdXRvIHNpbXVsYXRvciA9IGFkb3B0
TlMoW1tEcmFnQW5kRHJvcFNpbXVsYXRvciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcu
Z2V0KCldKTsKICAgICBbc2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVByb3ZpZGVyczpAWyBpdGVt
UHJvdmlkZXIuZ2V0KCkgXV07CkBAIC0xODMyLDE0ICsxODQ5LDcgQEAgVEVTVChXS0F0dGFjaG1l
bnRUZXN0c0lPUywgSW5zZXJ0RHJvcHBlZE1hcEl0ZW1Bc0F0dGFjaG1lbnQpCiAKIFRFU1QoV0tB
dHRhY2htZW50VGVzdHNJT1MsIEluc2VydERyb3BwZWRDb250YWN0QXNBdHRhY2htZW50KQogewot
ICAgIGF1dG8gY29udGFjdCA9IGFkb3B0TlMoW2FsbG9jQ05NdXRhYmxlQ29udGFjdEluc3RhbmNl
KCkgaW5pdF0pOwotICAgIFtjb250YWN0IHNldEdpdmVuTmFtZTpAIkZvbyJdOwotICAgIFtjb250
YWN0IHNldEZhbWlseU5hbWU6QCJCYXIiXTsKLQotICAgIGF1dG8gaXRlbVByb3ZpZGVyID0gYWRv
cHROUyhbW05TSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7Ci0gICAgW2l0ZW1Qcm92aWRlciBy
ZWdpc3Rlck9iamVjdDpjb250YWN0LmdldCgpIHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXBy
ZXNlbnRhdGlvblZpc2liaWxpdHlBbGxdOwotICAgIFtpdGVtUHJvdmlkZXIgc2V0U3VnZ2VzdGVk
TmFtZTpAIkZvbyBCYXIiXTsKLQorICAgIGF1dG8gaXRlbVByb3ZpZGVyID0gY29udGFjdEl0ZW1G
b3JUZXN0aW5nKCk7CiAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2ht
ZW50cygpOwogICAgIGF1dG8gc2ltdWxhdG9yID0gYWRvcHROUyhbW0RyYWdBbmREcm9wU2ltdWxh
dG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOwogICAgIFtzaW11bGF0
b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGl0ZW1Qcm92aWRlci5nZXQoKSBdXTsKQEAg
LTE4NTQsMTYgKzE4NjQsNDkgQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0RHJv
cHBlZENvbnRhY3RBc0F0dGFjaG1lbnQpCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3ZjYXJk
IiwgaW5mby5jb250ZW50VHlwZSk7CiB9CiAKK1RFU1QoV0tBdHRhY2htZW50VGVzdHNJT1MsIElu
c2VydFBhc3RlZENvbnRhY3RBc0F0dGFjaG1lbnQpCit7CisgICAgVUlQYXN0ZWJvYXJkLmdlbmVy
YWxQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBAWyBjb250YWN0SXRlbUZvclRlc3RpbmcoKS5h
dXRvcmVsZWFzZSgpIF07CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRh
Y2htZW50cygpOworICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0ZvclNjb3BlIG9ic2VydmVy
KHdlYlZpZXcuZ2V0KCkpOworICAgIFt3ZWJWaWV3IHBhc3RlOm5pbF07CisKKyAgICBbd2ViVmll
dyBleHBlY3RFbGVtZW50Q291bnQ6MCBxdWVyeVNlbGVjdG9yOkAiYSJdOworICAgIEVYUEVDVF9X
S19TVFJFUSgiRm9vIEJhci52Y2YiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXR0YWNobWVudCcpLnRpdGxlIl0pOworICAg
IEVYUEVDVF9XS19TVFJFUSgidGV4dC92Y2FyZCIsIFt3ZWJWaWV3IHZhbHVlT2ZBdHRyaWJ1dGU6
QCJ0eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKKyAgICBFWFBFQ1RfRVEo
MVUsIG9ic2VydmVyLm9ic2VydmVyKCkuaW5zZXJ0ZWQuY291bnQpOworICAgIF9XS0F0dGFjaG1l
bnQgKmF0dGFjaG1lbnQgPSBvYnNlcnZlci5vYnNlcnZlcigpLmluc2VydGVkLmZpcnN0T2JqZWN0
OworICAgIEVYUEVDVF9XS19TVFJFUSgiRm9vIEJhci52Y2YiLCBhdHRhY2htZW50LmluZm8ubmFt
ZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3ZjYXJkIiwgYXR0YWNobWVudC5pbmZvLmNv
bnRlbnRUeXBlKTsKK30KKworVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0UGFzdGVk
TWFwSXRlbUFzQXR0YWNobWVudCkKK3sKKyAgICBVSUFwcGxpY2F0aW9uSW5pdGlhbGl6ZSgpOwor
ICAgIFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZC5pdGVtUHJvdmlkZXJzID0gQFsgbWFw
SXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpIF07CisgICAgYXV0byB3ZWJWaWV3ID0gd2Vi
Vmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOworICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRl
c0ZvclNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOworICAgIFt3ZWJWaWV3IHBhc3RlOm5p
bF07CisKKyAgICBOU1VSTCAqcGFzdGVkTGlua1VSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOlt3
ZWJWaWV3IHZhbHVlT2ZBdHRyaWJ1dGU6QCJocmVmIiBmb3JRdWVyeVNlbGVjdG9yOkAiYSJdXTsK
KyAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50VGFnOkAiQSIgdG9Db21lQmVmb3JlOkAiQVRUQUNI
TUVOVCJdOworICAgIEVYUEVDVF9XS19TVFJFUSgibWFwcy5hcHBsZS5jb20iLCBwYXN0ZWRMaW5r
VVJMLmhvc3QpOworICAgIEVYUEVDVF9XS19TVFJFUSgiQXBwbGUgUGFyay52Y2YiLCBbd2ViVmll
dyB2YWx1ZU9mQXR0cmlidXRlOkAidGl0bGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50
Il0pOworICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC92Y2FyZCIsIFt3ZWJWaWV3IHZhbHVlT2ZB
dHRyaWJ1dGU6QCJ0eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKKyAgICBF
WFBFQ1RfRVEoMVUsIG9ic2VydmVyLm9ic2VydmVyKCkuaW5zZXJ0ZWQuY291bnQpOworICAgIF9X
S0F0dGFjaG1lbnQgKmF0dGFjaG1lbnQgPSBvYnNlcnZlci5vYnNlcnZlcigpLmluc2VydGVkLmZp
cnN0T2JqZWN0OworICAgIEVYUEVDVF9XS19TVFJFUSgiQXBwbGUgUGFyay52Y2YiLCBhdHRhY2ht
ZW50LmluZm8ubmFtZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3ZjYXJkIiwgYXR0YWNo
bWVudC5pbmZvLmNvbnRlbnRUeXBlKTsKK30KKwogVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywg
SW5zZXJ0UGFzdGVkRmlsZXNBc0F0dGFjaG1lbnRzKQogewogICAgIGF1dG8gcGRmSXRlbSA9IGFk
b3B0TlMoW1tOU0l0ZW1Qcm92aWRlciBhbGxvY10gaW5pdF0pOwogICAgIFtwZGZJdGVtIHNldFN1
Z2dlc3RlZE5hbWU6QCJkb2MiXTsKLSAgICBbcGRmSXRlbSBzZXRQcmVmZXJyZWRQcmVzZW50YXRp
b25TdHlsZTpVSVByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlQXR0YWNobWVudF07CiAgICAgW3Bk
Zkl0ZW0gcmVnaXN0ZXJEYXRhOnRlc3RQREZEYXRhKCkgdHlwZTooX19icmlkZ2UgTlNTdHJpbmcg
KilrVVRUeXBlUERGXTsKIAogICAgIGF1dG8gdGV4dEl0ZW0gPSBhZG9wdE5TKFtbTlNJdGVtUHJv
dmlkZXIgYWxsb2NdIGluaXRdKTsKICAgICBbdGV4dEl0ZW0gc2V0U3VnZ2VzdGVkTmFtZTpAImhl
bGxvIl07Ci0gICAgW3RleHRJdGVtIHNldFByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlOlVJUHJl
ZmVycmVkUHJlc2VudGF0aW9uU3R5bGVBdHRhY2htZW50XTsKICAgICBbdGV4dEl0ZW0gcmVnaXN0
ZXJEYXRhOltAImhlbGxvd29ybGQiIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXSB0eXBlOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVQbGFpblRleHRdOwogCiAgICAg
VUlQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBAWyBwZGZJdGVt
LmdldCgpLCB0ZXh0SXRlbS5nZXQoKSBdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366405</attachid>
            <date>2019-04-01 10:57:25 -0700</date>
            <delta_ts>2019-04-01 12:06:22 -0700</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-196442-20190401105725.patch</filename>
            <type>text/plain</type>
            <size>18715</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDViYzlhMjUzMzJkYzFm
ODNlMzhiODM4OWQ4ZDIyOWY3NWRlODI0Ni4uMDQ4OTkwNTU1NjU5NTMzZTU4YWJjZmZhNjVkMTNh
ZmRmZTk1Yzc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE5LTA0LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVuYWJsZSB0byBj
b3B5IGFuZCBwYXN0ZSBhIFBERiBmcm9tIE5vdGVzIGludG8gTWFpbCBjb21wb3NlIGJvZHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjQ0MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDg1NzMwOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Igc29tZSBsb2dpYyBmb3IgaW5zZXJ0aW5n
IGF0dGFjaG1lbnQgZWxlbWVudHMgdXBvbiBwYXN0ZSBvciBkcm9wLiBDdXJyZW50bHksIHdlIG9u
bHkgcHJlZmVyIGluc2VydGluZworICAgICAgICBjb250ZW50IGFzIGF0dGFjaG1lbnQgZWxlbWVu
dHMgaWYgdGhlIGl0ZW1zIGFyZSBhbm5vdGF0ZWQgd2l0aCBVSVByZWZlcnJlZFByZXNlbnRhdGlv
blN0eWxlQXR0YWNobWVudC4gSG93ZXZlciwKKyAgICAgICAgbWFueSBkYXRhIHNvdXJjZXMgYXJv
dW5kIHRoZSBzeXN0ZW0gKGJvdGggZmlyc3QgYW5kIHRoaXJkIHBhcnR5KSBoYXZlIG5vdCBhZG9w
dGVkIHRoaXMgQVBJLCB3aGljaCBtYWtlcyBpdAorICAgICAgICBkaWZmaWN1bHQgdG8gZGV0ZXJt
aW5lIHdoZXRoZXIgYSBnaXZlbiBpdGVtIHByb3ZpZGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEg
ZmlsZSBvciBub3QuIEluIHRoaXMgYnVnIGluCisgICAgICAgIHBhcnRpY3VsYXIsIG5vIHByZWZl
cnJlZCBwcmVzZW50YXRpb24gc3R5bGUgaXMgc2V0LCBzbyB3ZSBmYWlsIHRvIGhhbmRsZSB0aGUg
cGFzdGUgY29tbWFuZCBieSBpbnNlcnRpbmcgYW4KKyAgICAgICAgYXR0YWNobWVudCBlbGVtZW50
LgorCisgICAgICAgIEhvd2V2ZXIsIG1vc3QgYXBwcyBhcm91bmQgdGhlIHN5c3RlbSB0aGF0IHdy
aXRlIGZpbGUgb3IgYXR0YWNobWVudC1saWtlIGRhdGEgdG8gdGhlIHBhc3RlYm9hcmQgd2lsbCBh
dCBsZWFzdAorICAgICAgICBvZmZlciBhIHN1Z2dlc3RlZCBuYW1lIGZvciB0aGUgZmlsZSwgaW4g
dGhlIGZvcm0gb2YgLVtOU0l0ZW1Qcm92aWRlciBzdWdnZXN0ZWROYW1lXS4gVG8gYWRkcmVzcyB0
aGlzLCBpbnN0ZWFkIG9mCisgICAgICAgIHJlbHlpbmcgc29sZWx5IG9uIHRoZSBwcmVmZXJyZWRQ
cmVzZW50YXRpb25TdHlsZSwgYWRkaXRpb25hbGx5IHRha2UgYSBzdWdnZXN0ZWQgbmFtZSBhcyBh
biBpbmRpY2F0b3IgdGhhdCB0aGUKKyAgICAgICAgaXRlbSBpcyBwcm9iYWJseSBhIGZpbGUuCisK
KyAgICAgICAgSW4gZmFjdCwgUGFzdGVib2FyZDo6ZmlsZUNvbnRlbnRTdGF0ZSBhbHJlYWR5IGhh
cyBzaW1pbGFyIGxvZ2ljIHRvIGNoZWNrIGZvciBlaXRoZXIgYSBzdWdnZXN0ZWQgZmlsZSBuYW1l
IG9yCisgICAgICAgIGV4cGxpY2l0bHkgc3BlY2lmaWVkIHByZXNlbnRhdGlvbiBzdHlsZS4gV2Ug
cHVsbCB0aGlzIG91dCBpbnRvIGEgc2VwYXJhdGUgaGVscGVyIG1ldGhvZCBvbiBQYXN0ZWJvYXJk
SXRlbUluZm8sCisgICAgICAgIGFuZCB1c2UgaXQgZm9yIGJvdGggUGFzdGVib2FyZDo6ZmlsZUNv
bnRlbnRTdGF0ZSBhbmQgcHJlZmVyc0F0dGFjaG1lbnRSZXByZXNlbnRhdGlvbi4KKworICAgICAg
ICBUZXN0czogIFdLQXR0YWNobWVudFRlc3RzSU9TLkluc2VydFBhc3RlZENvbnRhY3RBc0F0dGFj
aG1lbnQKKyAgICAgICAgICAgICAgICBXS0F0dGFjaG1lbnRUZXN0c0lPUy5JbnNlcnRQYXN0ZWRN
YXBJdGVtQXNBdHRhY2htZW50CisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRS
ZWFkZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlRnJvbUNvbnRlbnRUeXBl
KToKKworICAgICAgICBXb3JrIGFyb3VuZCA8cmRhcjovL3Byb2JsZW0vNDk0NzgyMjk+IGJ5IHVz
aW5nIHRoZSAidGV4dC92Y2FyZCIgTUlNRSB0eXBlIHRvIGhhbmRsZSAicHVibGljLnZjYXJkIi4g
Q29yZVNlcnZpY2VzCisgICAgICAgIGN1cnJlbnRseSBtYXBzICJwdWJsaWMudmNhcmQiIHRvICJ0
ZXh0L2RpcmVjdG9yeSIgd2hlbiB1c2luZyBVVFR5cGVDb3B5UHJlZmVycmVkVGFnV2l0aENsYXNz
LCBkZXNwaXRlIHRoZSBTUEkKKyAgICAgICAgLVtOU1VSTEZpbGVUeXBlTWFwcGluZ3MgTUlNRVR5
cGVGb3JFeHRlbnNpb246XSByZXR1cm5pbmcgInRleHQvdmNhcmQiIGZvciBhICIudmNmIiBmaWxl
LgorCisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZEl0ZW1JbmZvLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQYXN0ZWJvYXJkSXRlbUluZm86OmNhbkJlVHJlYXRlZEFzQXR0YWNobWVudE9yRmls
ZSBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBkZXRlcm1pbmUgd2hl
dGhlciB0aGUgUGFzdGVib2FyZEl0ZW1JbmZvIHByZWZlcnMgdG8gYmUgcmVwcmVzZW50ZWQgYXMg
aW5saW5lIGRhdGEsIG9yIGFuCisgICAgICAgIGF0dGFjaG1lbnQsIG9yIG5laXRoZXIuIFRoaXMg
ZGlmZmVycyBzbGlnaHRseSBmcm9tIHRoZSBleGlzdGluZyB2YWx1ZSBvZiBwcmVmZXJyZWRQcmVz
ZW50YXRpb25TdHlsZSBpbiB0aGF0IHdlCisgICAgICAgIGNvbnNpZGVyIGhhdmluZyBhIHN1Z2dl
c3RlZCBmaWxlIG5hbWUgYXMgYSBzdHJvbmcgaW5kaWNhdG9yIHRoYXQgdGhlIGl0ZW0gc2hvdWxk
IGJlIHRyZWF0ZWQgYXMgYW4gYXR0YWNobWVudCwKKyAgICAgICAgZXZlbiBpZiB0aGUgcHJlc2Vu
dGF0aW9uIHN0eWxlIGlzIHVuc3BlY2lmaWVkLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
UGFzdGVib2FyZENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6ZmlsZUNv
bnRlbnRTdGF0ZSk6CisKKyAgICAgICAgVXNlIFBhc3RlYm9hcmRJdGVtSW5mbzo6Y2FuQmVUcmVh
dGVkQXNBdHRhY2htZW50T3JGaWxlKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGFzdGVi
b2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnByZWZlcnNBdHRhY2htZW50UmVwcmVzZW50
YXRpb24pOgorCisgICAgICAgIFVzZSBQYXN0ZWJvYXJkSXRlbUluZm86OmNhbkJlVHJlYXRlZEFz
QXR0YWNobWVudE9yRmlsZSgpLgorCiAyMDE5LTA0LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJlZmFjdG9yIHNvbWUgbG9naWMgZm9y
IGluc2VydGluZyBwYXN0ZWQgb3IgZHJvcHBlZCB2aXJ0dWFsIGNhcmQgZmlsZXMgYXMgYXR0YWNo
bWVudCBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxODQ2N2YwMmRlODMwNzc5OWQ5MDQ1Nzc4MzUyMTZm
ZWIxODcyYmNhLi5kNjUyMTY1MjExYmViMDk2YzcxZjVlNjcyODM3MjRiNDg0OTZkMWIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA0LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVuYWJsZSB0byBjb3B5IGFuZCBwYXN0ZSBhIFBE
RiBmcm9tIE5vdGVzIGludG8gTWFpbCBjb21wb3NlIGJvZHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjQ0MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDg1NzMwOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVsYXggdGhlIC1jYW5QZXJmb3JtQWN0aW9uOiBsb2dpYyBpbiB0aGUgY2FzZSBvZiBw
YXN0aW5nIGFuIGF0dGFjaG1lbnQuIENvbnNpZGVyIGFuIE5TSXRlbVByb3ZpZGVyIHRvIHBvc3Np
Ymx5CisgICAgICAgIHBhc3RlIGFzIGFuIGF0dGFjaG1lbnQgaWYgZWl0aGVyIGl0IGhhcyBhIHBy
ZWZlcnJlZCBwcmVzZW50YXRpb24gc3R5bGUgb2YgVUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHls
ZUF0dGFjaG1lbnQKKyAgICAgICAgb3IgaGFzIGEgc3R5bGUgb2YgVUlQcmVmZXJyZWRQcmVzZW50
YXRpb25TdHlsZVVuc3BlY2lmaWVkLCBidXQgaGFzIGEgc3VnZ2VzdGVkIGZpbGUgbmFtZS4KKwor
ICAgICAgICBUaGlzIGFsbG93cyBmb3IgdGhlICJQYXN0ZSIgYWN0aW9uIHRvIGJlIHNob3duIGlu
IHRoZSBjYWxsb3V0IG1lbnUgd2hlbiBjb3B5aW5nIGFuZCBwYXN0aW5nIGEgbm9uLXRleHQgZmls
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNhblBlcmZvcm1BY3Rpb25Gb3JXZWJWaWV3Ondp
dGhTZW5kZXI6XSk6CisKIDIwMTktMDQtMDEgIFBhdHJpY2sgR3JpZmZpcyAgPHBncmlmZmlzQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBGaXggc2VjY29tcCBydWxlIGZvciBibGFj
a2xpc3RpbmcgVElPQ1NUSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbQppbmRleCA4ZDFmOWU3N2ZkMWY2ODJlZTEwMzVjMTI1
ZTAxZjY2MzZhMjMwZmJhLi44YzMzMWZmNzMyZTgzMDQ5Y2EzODg3NDg0MWRlM2IyYTRkZGY1ZWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFk
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRS
ZWFkZXJDb2NvYS5tbQpAQCAtMjIyLDYgKzIyMiwxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXBs
YWNlUmljaENvbnRlbnRXaXRoQXR0YWNobWVudHMoKQogCiBzdGF0aWMgU3RyaW5nIG1pbWVUeXBl
RnJvbUNvbnRlbnRUeXBlKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CisgICAgaWYgKGNv
bnRlbnRUeXBlID09IFN0cmluZyhrVVRUeXBlVkNhcmQpKSB7CisgICAgICAgIC8vIENvcmVTZXJ2
aWNlcyBlcnJvbmVvdXNseSByZXBvcnRzIHRoYXQgInB1YmxpYy52Y2FyZCIgbWFwcyB0byAidGV4
dC9kaXJlY3RvcnkiLCByYXRoZXIKKyAgICAgICAgLy8gdGhhbiBlaXRoZXIgInRleHQvdmNhcmQi
IG9yICJ0ZXh0L3gtdmNhcmQiLiBXb3JrIGFyb3VuZCB0aGlzIGJ5IHNwZWNpYWwgY2FzaW5nIHRo
ZQorICAgICAgICAvLyAicHVibGljLnZjYXJkIiBVVEkgdHlwZS4gU2VlIDxyZGFyOi8vcHJvYmxl
bS80OTQ3ODIyOT4gZm9yIG1vcmUgZGV0YWlsLgorICAgICAgICByZXR1cm4gInRleHQvdmNhcmQi
X3M7CisgICAgfQogICAgIHJldHVybiBpc0RlY2xhcmVkVVRJKGNvbnRlbnRUeXBlKSA/IE1JTUVU
eXBlRnJvbVVUSShjb250ZW50VHlwZSkgOiBjb250ZW50VHlwZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEl0ZW1JbmZvLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkSXRlbUluZm8uaAppbmRleCA5MmQ4YjBiZmQ2N2E4MmRm
ODQ2ZTU4OWQ0M2RmMWNkYjFjMWY0MmFhLi4wNGY0ZDY3YmRiY2Q3OWI4MjJmMmRmZTljYTZhM2Qy
OGQyODRmN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJk
SXRlbUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkSXRlbUlu
Zm8uaApAQCAtNTYsNiArNTYsMjYgQEAgc3RydWN0IFBhc3RlYm9hcmRJdGVtSW5mbyB7CiAgICAg
ICAgIHJldHVybiBwYXRoc0ZvckZpbGVVcGxvYWRbaW5kZXhdOwogICAgIH0KIAorICAgIC8vIFRo
ZSBwcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZSBmbGFnIGlzIHBsYXRmb3JtIEFQSSB1c2VkIGJ5
IGRyYWcgb3IgY29weSBzb3VyY2VzIHRvIGV4cGxpY2l0bHkgaW5kaWNhdGUKKyAgICAvLyB0aGF0
IHRoZSBkYXRhIGJlaW5nIHdyaXR0ZW4gdG8gdGhlIGl0ZW0gcHJvdmlkZXIgc2hvdWxkIGJlIHRy
ZWF0ZWQgYXMgYW4gYXR0YWNobWVudDsgdW5mb3J0dW5hdGVseSwgbm90CisgICAgLy8gYWxsIGNs
aWVudHMgYXR0ZW1wdCB0byBzZXQgdGhpcyBmbGFnLCBzbyB3ZSBhZGRpdGlvbmFsbHkgdGFrZSBo
YXZpbmcgYSBzdWdnZXN0ZWQgZmlsZW5hbWUgYXMgYSBzdHJvbmcKKyAgICAvLyBpbmRpY2F0b3Ig
dGhhdCB0aGUgaXRlbSBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbiBhdHRhY2htZW50IG9yIGZpbGUu
IEFsc28sIHRoZSBwcmVzZW5jZSBvZiBhbnkgb3RoZXIKKyAgICAvLyBkZWNsYXJlZCBub24tdGV4
dCBkYXRhIGluIHRoZSBzYW1lIGl0ZW0gaW5kaWNhdGVzIHRoYXQgdGhlIGNvbnRlbnQgYmVpbmcg
ZHJvcHBlZCBjYW4gdGFrZSBvbiBhbm90aGVyCisgICAgLy8gbm9uLXRleHQgZm9ybWF0LCB3aGlj
aCBjb3VsZCBiZSBhIGZpbGUuCisgICAgYm9vbCBjYW5CZVRyZWF0ZWRBc0F0dGFjaG1lbnRPckZp
bGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3dpdGNoIChwcmVmZXJyZWRQcmVzZW50YXRpb25T
dHlsZSkgeworICAgICAgICBjYXNlIFBhc3RlYm9hcmRJdGVtUHJlc2VudGF0aW9uU3R5bGU6Oklu
bGluZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBQYXN0ZWJvYXJk
SXRlbVByZXNlbnRhdGlvblN0eWxlOjpBdHRhY2htZW50OgorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIGNhc2UgUGFzdGVib2FyZEl0ZW1QcmVzZW50YXRpb25TdHlsZTo6VW5zcGVj
aWZpZWQ6CisgICAgICAgICAgICByZXR1cm4gaXNOb25UZXh0VHlwZSB8fCBjb250YWluc0ZpbGVV
UkxBbmRGaWxlVXBsb2FkQ29udGVudCB8fCAhc3VnZ2VzdGVkRmlsZU5hbWUuaXNFbXB0eSgpOwor
ICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCiAgICAgU3RyaW5nIGNvbnRlbnRUeXBlRm9ySGlnaGVzdEZpZGVsaXR5
SXRlbSgpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoY29udGVudFR5cGVzRm9yRmlsZVVwbG9h
ZC5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Q
YXN0ZWJvYXJkQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJv
YXJkQ29jb2EubW0KaW5kZXggMjUwYTJhZmVhNThlNWYxOGYwZTZkMjVkZDBiNjE4MWJkNGY2ZDUy
NC4uYzVlYzY3ODA5ZGViZDNmYTcyMTgzNzExZGU2M2ZhZjZmNGJiMmJjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQpAQCAtMTQzLDI2
ICsxNDMsMTIgQEAgUGFzdGVib2FyZDo6RmlsZUNvbnRlbnRTdGF0ZSBQYXN0ZWJvYXJkOjpmaWxl
Q29udGVudFN0YXRlKCkKICAgICAgICAgLy8gT24gaU9TLCBmaWxlcyBhcmUgbm90IHdyaXR0ZW4g
dG8gdGhlIHBhc3RlYm9hcmQgdXNpbmcgZmlsZSBVUkxzLCBzbyB3ZSBuZWVkIGEgaGV1cmlzdGlj
IHRvIGRldGVybWluZQogICAgICAgICAvLyB3aGV0aGVyIG9yIG5vdCB0aGUgcGFzdGVib2FyZCBj
b250YWlucyBpdGVtcyB0aGF0IHJlcHJlc2VudCBmaWxlcy4gQW4gZXhhbXBsZSBvZiB3aGVuIHRo
aXMgZ2V0cyB0cmlja3kKICAgICAgICAgLy8gaXMgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gY2Fz
ZXMgd2hlcmUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcgYSBwbGFpbiB0ZXh0IGZpbGUsIHZlcnN1cyBz
ZWxlY3RlZCB0ZXh0LgotICAgICAgICAvLyBTb21lIGNvbW1vbiBzaWducyB0aGF0IGluZGljYXRl
IGEgZmlsZSBkcm9wIGFzIG9wcG9zZWQgdG8gZHJvcHBpbmcgaW5saW5lIGRhdGEgYXJlOgotICAg
ICAgICAvLwotICAgICAgICAvLyAgMS4gTXVsdGlwbGUgaXRlbXMgLSB0aGUgc3lzdGVtIGdlbmVy
YWxseSBkb2VzIG5vdCBnaXZlIG9wcG9ydHVuaXRpZXMgdG8gZmxvY2sgbXVsdGlwbGUgcGllY2Vz
IG9mCi0gICAgICAgIC8vICAgICBzZWxlY3RlZCB0ZXh0LgotICAgICAgICAvLyAgMi4gUHJlZmVy
cmVkIGF0dGFjaG1lbnQgcHJlc2VudGF0aW9uIHN0eWxlIC0gdGhpcyBtZWFucyB0aGUgc291cmNl
IGhhcyBleHBsaWNpdGx5IG1hcmtlZCB0aGUgaXRlbQotICAgICAgICAvLyAgICAgYXMgYSBmaWxl
LWxpa2UgZW50aXR5LCBhcyBvcHBvc2VkIHRvIGlubGluZSBkYXRhLgotICAgICAgICAvLyAgMy4g
QSBzdWdnZXN0ZWQgbmFtZSAtIHRoaXMgbWVhbnMgdGhhdCB0aGUgc291cmNlIGhhcyBleHBsaWNp
dGx5IHNwZWNpZmllZCBhIHBvdGVudGlhbCBmaWxlIG5hbWUgZm9yCi0gICAgICAgIC8vICAgICB0
aGUgaXRlbSB3aGVuIGRyb3BwZWQuCi0gICAgICAgIC8vICA0LiBUaGUgcHJlc2VuY2Ugb2YgYW55
IG90aGVyIGRlY2xhcmVkIG5vbi10ZXh0IGRhdGEgaW4gdGhlIHNhbWUgaXRlbSBpbmRpY2F0ZXMg
dGhhdCB0aGUgY29udGVudCBiZWluZwotICAgICAgICAvLyAgICAgZHJvcHBlZCBjYW4gdGFrZSBv
biBhbm90aGVyIG5vbi10ZXh0IGZvcm1hdCwgd2hpY2ggY291bGQgYmUgYSBmaWxlLgotICAgICAg
ICAvLwotICAgICAgICAvLyBJZiBub25lIG9mIHRoZXNlIGZvdXIgY29uZGl0aW9ucyBhcmUgc2F0
aXNmaWVkLCBpdCdzIHZlcnkgbGlrZWx5IHRoYXQgdGhlIGNvbnRlbnQgYmVpbmcgZHJvcHBlZCBp
cyBqdXN0CisgICAgICAgIC8vIElmIHRoZSBpdGVtIGNhbid0IGJlIHRyZWF0ZWQgYXMgYW4gYXR0
YWNobWVudCwgaXQncyB2ZXJ5IGxpa2VseSB0aGF0IHRoZSBjb250ZW50IGJlaW5nIGRyb3BwZWQg
aXMganVzdAogICAgICAgICAvLyBhbiBpbmxpbmUgcGllY2Ugb2YgdGV4dCwgd2l0aCBubyBmaWxl
cyBpbiB0aGUgcGFzdGVib2FyZCAoYW5kIHRoZXJlZm9yZSwgbm8gcmlzayBvZiBsZWFraW5nIGZp
bGUgcGF0aHMKICAgICAgICAgLy8gdG8gd2ViIGNvbnRlbnQpLiBJbiBjYXNlcyBzdWNoIGFzIHRo
ZXNlLCB3ZSBzaG91bGQgbm90IHN1cHByZXNzIERhdGFUcmFuc2ZlciBhY2Nlc3MuCiAgICAgICAg
IGF1dG8gaXRlbXMgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PmFsbFBhc3RlYm9hcmRJdGVtSW5mbyhtX3Bhc3RlYm9hcmROYW1lKTsKICAgICAgICAgbWF5Q29u
dGFpbkZpbGVQYXRocyA9IGl0ZW1zLnNpemUoKSAhPSAxIHx8IG5vdEZvdW5kICE9IGl0ZW1zLmZp
bmRNYXRjaGluZyhbXSAoYXV0byYgaXRlbSkgewotICAgICAgICAgICAgaWYgKGl0ZW0ucHJlZmVy
cmVkUHJlc2VudGF0aW9uU3R5bGUgIT0gUGFzdGVib2FyZEl0ZW1QcmVzZW50YXRpb25TdHlsZTo6
VW5zcGVjaWZpZWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ucHJlZmVycmVkUHJlc2Vu
dGF0aW9uU3R5bGUgPT0gUGFzdGVib2FyZEl0ZW1QcmVzZW50YXRpb25TdHlsZTo6QXR0YWNobWVu
dDsKLQotICAgICAgICAgICAgcmV0dXJuICFpdGVtLnN1Z2dlc3RlZEZpbGVOYW1lLmlzRW1wdHko
KSB8fCBpdGVtLmlzTm9uVGV4dFR5cGUgfHwgaXRlbS5jb250YWluc0ZpbGVVUkxBbmRGaWxlVXBs
b2FkQ29udGVudDsKKyAgICAgICAgICAgIHJldHVybiBpdGVtLmNhbkJlVHJlYXRlZEFzQXR0YWNo
bWVudE9yRmlsZSgpOwogICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggNDFkOTA1NjNlNDEzNmNhNDk3
YzRkZjc4M2UzNmI5ODI5NmNlN2VjMi4uMDY1ODRhMGFjOWQ1NTlhZTkwYTM5NjM5NGEwM2U1OGQy
MjVlMzgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9h
cmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1Mu
bW0KQEAgLTI3MCwxMCArMjcwLDEwIEBAIHN0YXRpYyBib29sIHByZWZlcnNBdHRhY2htZW50UmVw
cmVzZW50YXRpb24oY29uc3QgUGFzdGVib2FyZEl0ZW1JbmZvJiBpbmZvKQogICAgIGlmIChjb250
ZW50VHlwZUZvckhpZ2hlc3RGaWRlbGl0eUl0ZW0uaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBpZiAoaW5mby5wcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZSA9PSBQYXN0
ZWJvYXJkSXRlbVByZXNlbnRhdGlvblN0eWxlOjpBdHRhY2htZW50KQotICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBpZiAoaW5mby5wcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZSA9PSBQYXN0ZWJv
YXJkSXRlbVByZXNlbnRhdGlvblN0eWxlOjpJbmxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiBVVFR5cGVDb25mb3Jtc1RvKGNvbnRlbnRUeXBlRm9ySGlnaGVzdEZpZGVs
aXR5SXRlbS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBrVVRUeXBlVkNhcmQpOworICAgIHJldHVy
biBpbmZvLmNhbkJlVHJlYXRlZEFzQXR0YWNobWVudE9yRmlsZSgpIHx8IFVUVHlwZUNvbmZvcm1z
VG8oY29udGVudFR5cGVGb3JIaWdoZXN0RmlkZWxpdHlJdGVtLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksIGtVVFR5cGVWQ2FyZCk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJk
V2ViQ29udGVudFJlYWRlciYgcmVhZGVyLCBXZWJDb250ZW50UmVhZGluZ1BvbGljeSBwb2xpY3kp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQppbmRleCA0ZjllZjEzYzdiODBjMDQwMzYxMjUzYjI2YWY3OWY2MmM5OWNk
N2MzLi4xYWE2MWZmNmE3NDQ3MmMyNDg4ZWI3MDFiMjU3NGQwNmRmMDdjMDdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KQEAgLTI4MjYsNyArMjgyNiwxNCBAQCAtIChCT09MKWNhblBlcmZvcm1BY3Rpb25Gb3JX
ZWJWaWV3OihTRUwpYWN0aW9uIHdpdGhTZW5kZXI6KGlkKXNlbmRlcgogI2lmIFBMQVRGT1JNKElP
UykKICAgICAgICAgaWYgKGVkaXRvclN0YXRlLmlzQ29udGVudFJpY2hseUVkaXRhYmxlICYmIF93
ZWJWaWV3LmNvbmZpZ3VyYXRpb24uX2F0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCkgewogICAgICAg
ICAgICAgZm9yIChOU0l0ZW1Qcm92aWRlciAqaXRlbVByb3ZpZGVyIGluIHBhc3RlYm9hcmQuaXRl
bVByb3ZpZGVycykgewotICAgICAgICAgICAgICAgIGlmIChpdGVtUHJvdmlkZXIucHJlZmVycmVk
UHJlc2VudGF0aW9uU3R5bGUgPT0gVUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFjaG1l
bnQgJiYgaXRlbVByb3ZpZGVyLndlYl9maWxlVXBsb2FkQ29udGVudFR5cGVzLmNvdW50KQorICAg
ICAgICAgICAgICAgIGF1dG8gcHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGUgPSBpdGVtUHJvdmlk
ZXIucHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGU7CisgICAgICAgICAgICAgICAgaWYgKHByZWZl
cnJlZFByZXNlbnRhdGlvblN0eWxlID09IFVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVJbmxp
bmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaWYg
KHByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlID09IFVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5
bGVVbnNwZWNpZmllZCAmJiAhaXRlbVByb3ZpZGVyLnN1Z2dlc3RlZE5hbWUubGVuZ3RoKQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGlmIChpdGVtUHJv
dmlkZXIud2ViX2ZpbGVVcGxvYWRDb250ZW50VHlwZXMuY291bnQpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBZRVM7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MDdiNzI2NzdkM2EyNjk4YTkw
NzAzZDMyMTRhYmRiYjZmMDAzZDE4Li4zNzE2ZDZkNGVmOWRjZDY3MDA3YzQ1YWE1ZWU4YTQ0Yjhh
YzM1ZTM4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDQtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgVW5hYmxlIHRvIGNvcHkgYW5kIHBhc3RlIGEgUERGIGZy
b20gTm90ZXMgaW50byBNYWlsIGNvbXBvc2UgYm9keQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
ODU3MzA5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbmV3IEFQSSB0ZXN0cyB0byBleGVyY2lzZSBwYXN0aW5nIENOQ29udGFjdCBhbmQgTUtN
YXBJdGVtLWJhY2tlZCBpdGVtIHByb3ZpZGVycy4gQWRkaXRpb25hbGx5LCBhZGp1c3QgYW4KKyAg
ICAgICAgZXhpc3RpbmcgdGVzdCB0aGF0IHBhc3RlcyBhIFBERiBmaWxlIGFzIGFuIGF0dGFjaG1l
bnQgdG8gbm90IHJlcXVpcmUgVUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFjaG1lbnQK
KyAgICAgICAgdG8gYmUgc3BlY2lmaWVkIG9uIHRoZSBpdGVtIHByb3ZpZGVycy4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjptYXBJdGVtRm9yVGVzdGluZyk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpjb250YWN0SXRlbUZvclRlc3RpbmcpOgorCiAyMDE5LTA0LTAxICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBFdmVudFNl
bmRlclByb3h5IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBiZWZvcmUgYSBQbGF0Zm9ybVdpbmRvdyBp
cyB1c2FibGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tBdHRhY2htZW50VGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCmluZGV4IDU4N2M1MzlmMjZlMWNhMGJhODgzYTkx
ZGY1YzEwNzNjNzdjMWFhZjAuLjFjMmI0OTA3NGVkZmU2YWQ1N2I1OGJiOTAxMTU1Yzk2ZjEyNmNj
ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tB
dHRhY2htZW50VGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQpAQCAtMTgwNCwxNiArMTgwNCwzMyBAQCBURVNUKFdL
QXR0YWNobWVudFRlc3RzSU9TLCBEcmFnQXR0YWNobWVudEluc2VydGVkQXNEYXRhKQogICAgIFtk
cmFnQW5kRHJvcFNpbXVsYXRvciBlbmREYXRhVHJhbnNmZXJdOwogfQogCi1URVNUKFdLQXR0YWNo
bWVudFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkTWFwSXRlbUFzQXR0YWNobWVudCkKK3N0YXRpYyBS
ZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IG1hcEl0ZW1Gb3JUZXN0aW5nKCkKIHsKICAgICBhdXRv
IHBsYWNlbWFyayA9IGFkb3B0TlMoW2FsbG9jTUtQbGFjZW1hcmtJbnN0YW5jZSgpIGluaXRXaXRo
Q29vcmRpbmF0ZTpDTExvY2F0aW9uQ29vcmRpbmF0ZTJETWFrZSgzNy4zMzI3LCAtMTIyLjAwNTMp
XSk7CiAgICAgYXV0byBtYXBJdGVtID0gYWRvcHROUyhbYWxsb2NNS01hcEl0ZW1JbnN0YW5jZSgp
IGluaXRXaXRoUGxhY2VtYXJrOnBsYWNlbWFyay5nZXQoKV0pOwotICAgIFttYXBJdGVtIHNldE5h
bWU6QCJBcHBsZSBQYXJrIl07CisgICAgW21hcEl0ZW0gc2V0TmFtZTpAIkFwcGxlIFBhcmsudmNm
Il07CiAKICAgICBhdXRvIGl0ZW1Qcm92aWRlciA9IGFkb3B0TlMoW1tOU0l0ZW1Qcm92aWRlciBh
bGxvY10gaW5pdF0pOwogICAgIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJPYmplY3Q6bWFwSXRlbS5n
ZXQoKSB2aXNpYmlsaXR5Ok5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25WaXNpYmlsaXR5QWxs
XTsKICAgICBbaXRlbVByb3ZpZGVyIHNldFN1Z2dlc3RlZE5hbWU6W21hcEl0ZW0gbmFtZV1dOwor
ICAgIHJldHVybiBpdGVtUHJvdmlkZXI7Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJv
dmlkZXI+IGNvbnRhY3RJdGVtRm9yVGVzdGluZygpCit7CisgICAgYXV0byBjb250YWN0ID0gYWRv
cHROUyhbYWxsb2NDTk11dGFibGVDb250YWN0SW5zdGFuY2UoKSBpbml0XSk7CisgICAgW2NvbnRh
Y3Qgc2V0R2l2ZW5OYW1lOkAiRm9vIl07CisgICAgW2NvbnRhY3Qgc2V0RmFtaWx5TmFtZTpAIkJh
ciJdOworCisgICAgYXV0byBpdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbTlNJdGVtUHJvdmlkZXIg
YWxsb2NdIGluaXRdKTsKKyAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyT2JqZWN0OmNvbnRhY3Qu
Z2V0KCkgdmlzaWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uVmlzaWJpbGl0eUFs
bF07CisgICAgW2l0ZW1Qcm92aWRlciBzZXRTdWdnZXN0ZWROYW1lOkAiRm9vIEJhci52Y2YiXTsK
KyAgICByZXR1cm4gaXRlbVByb3ZpZGVyOworfQogCitURVNUKFdLQXR0YWNobWVudFRlc3RzSU9T
LCBJbnNlcnREcm9wcGVkTWFwSXRlbUFzQXR0YWNobWVudCkKK3sKKyAgICBhdXRvIGl0ZW1Qcm92
aWRlciA9IG1hcEl0ZW1Gb3JUZXN0aW5nKCk7CiAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0Zv
clRlc3RpbmdBdHRhY2htZW50cygpOwogICAgIGF1dG8gc2ltdWxhdG9yID0gYWRvcHROUyhbW0Ry
YWdBbmREcm9wU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0p
OwogICAgIFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGl0ZW1Qcm92aWRl
ci5nZXQoKSBdXTsKQEAgLTE4MzIsMTQgKzE4NDksNyBAQCBURVNUKFdLQXR0YWNobWVudFRlc3Rz
SU9TLCBJbnNlcnREcm9wcGVkTWFwSXRlbUFzQXR0YWNobWVudCkKIAogVEVTVChXS0F0dGFjaG1l
bnRUZXN0c0lPUywgSW5zZXJ0RHJvcHBlZENvbnRhY3RBc0F0dGFjaG1lbnQpCiB7Ci0gICAgYXV0
byBjb250YWN0ID0gYWRvcHROUyhbYWxsb2NDTk11dGFibGVDb250YWN0SW5zdGFuY2UoKSBpbml0
XSk7Ci0gICAgW2NvbnRhY3Qgc2V0R2l2ZW5OYW1lOkAiRm9vIl07Ci0gICAgW2NvbnRhY3Qgc2V0
RmFtaWx5TmFtZTpAIkJhciJdOwotCi0gICAgYXV0byBpdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtb
TlNJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKLSAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVy
T2JqZWN0OmNvbnRhY3QuZ2V0KCkgdmlzaWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJlc2VudGF0
aW9uVmlzaWJpbGl0eUFsbF07Ci0gICAgW2l0ZW1Qcm92aWRlciBzZXRTdWdnZXN0ZWROYW1lOkAi
Rm9vIEJhciJdOwotCisgICAgYXV0byBpdGVtUHJvdmlkZXIgPSBjb250YWN0SXRlbUZvclRlc3Rp
bmcoKTsKICAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yVGVzdGluZ0F0dGFjaG1lbnRzKCk7
CiAgICAgYXV0byBzaW11bGF0b3IgPSBhZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11bGF0b3IgYWxs
b2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CiAgICAgW3NpbXVsYXRvciBzZXRF
eHRlcm5hbEl0ZW1Qcm92aWRlcnM6QFsgaXRlbVByb3ZpZGVyLmdldCgpIF1dOwpAQCAtMTg1NCwx
NiArMTg2NCw0OSBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkQ29u
dGFjdEFzQXR0YWNobWVudCkKICAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvdmNhcmQiLCBpbmZv
LmNvbnRlbnRUeXBlKTsKIH0KIAorVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0UGFz
dGVkQ29udGFjdEFzQXR0YWNobWVudCkKK3sKKyAgICBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3Rl
Ym9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIGNvbnRhY3RJdGVtRm9yVGVzdGluZygpLmF1dG9yZWxl
YXNlKCkgXTsKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yVGVzdGluZ0F0dGFjaG1lbnRz
KCk7CisgICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmll
dy5nZXQoKSk7CisgICAgW3dlYlZpZXcgcGFzdGU6bmlsXTsKKworICAgIFt3ZWJWaWV3IGV4cGVj
dEVsZW1lbnRDb3VudDowIHF1ZXJ5U2VsZWN0b3I6QCJhIl07CisgICAgRVhQRUNUX1dLX1NUUkVR
KCJGb28gQmFyLnZjZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhdHRhY2htZW50JykudGl0bGUiXSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKCJ0ZXh0L3ZjYXJkIiwgW3dlYlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpAInR5cGUi
IGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50Il0pOworICAgIEVYUEVDVF9FUSgxVSwgb2Jz
ZXJ2ZXIub2JzZXJ2ZXIoKS5pbnNlcnRlZC5jb3VudCk7CisgICAgX1dLQXR0YWNobWVudCAqYXR0
YWNobWVudCA9IG9ic2VydmVyLm9ic2VydmVyKCkuaW5zZXJ0ZWQuZmlyc3RPYmplY3Q7CisgICAg
RVhQRUNUX1dLX1NUUkVRKCJGb28gQmFyLnZjZiIsIGF0dGFjaG1lbnQuaW5mby5uYW1lKTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvdmNhcmQiLCBhdHRhY2htZW50LmluZm8uY29udGVudFR5
cGUpOworfQorCitURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnRQYXN0ZWRNYXBJdGVt
QXNBdHRhY2htZW50KQoreworICAgIFVJQXBwbGljYXRpb25Jbml0aWFsaXplKCk7CisgICAgVUlQ
YXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBAWyBtYXBJdGVtRm9y
VGVzdGluZygpLmF1dG9yZWxlYXNlKCkgXTsKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9y
VGVzdGluZ0F0dGFjaG1lbnRzKCk7CisgICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2Nv
cGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7CisgICAgW3dlYlZpZXcgcGFzdGU6bmlsXTsKKwor
ICAgIE5TVVJMICpwYXN0ZWRMaW5rVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6W3dlYlZpZXcg
dmFsdWVPZkF0dHJpYnV0ZTpAImhyZWYiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhIl1dOworICAgIFt3
ZWJWaWV3IGV4cGVjdEVsZW1lbnRUYWc6QCJBIiB0b0NvbWVCZWZvcmU6QCJBVFRBQ0hNRU5UIl07
CisgICAgRVhQRUNUX1dLX1NUUkVRKCJtYXBzLmFwcGxlLmNvbSIsIHBhc3RlZExpbmtVUkwuaG9z
dCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJBcHBsZSBQYXJrLnZjZiIsIFt3ZWJWaWV3IHZhbHVl
T2ZBdHRyaWJ1dGU6QCJ0aXRsZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7Cisg
ICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3ZjYXJkIiwgW3dlYlZpZXcgdmFsdWVPZkF0dHJpYnV0
ZTpAInR5cGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50Il0pOworICAgIEVYUEVDVF9F
USgxVSwgb2JzZXJ2ZXIub2JzZXJ2ZXIoKS5pbnNlcnRlZC5jb3VudCk7CisgICAgX1dLQXR0YWNo
bWVudCAqYXR0YWNobWVudCA9IG9ic2VydmVyLm9ic2VydmVyKCkuaW5zZXJ0ZWQuZmlyc3RPYmpl
Y3Q7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJBcHBsZSBQYXJrLnZjZiIsIGF0dGFjaG1lbnQuaW5m
by5uYW1lKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvdmNhcmQiLCBhdHRhY2htZW50Lmlu
Zm8uY29udGVudFR5cGUpOworfQorCiBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnRQ
YXN0ZWRGaWxlc0FzQXR0YWNobWVudHMpCiB7CiAgICAgYXV0byBwZGZJdGVtID0gYWRvcHROUyhb
W05TSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW3BkZkl0ZW0gc2V0U3VnZ2VzdGVk
TmFtZTpAImRvYyJdOwotICAgIFtwZGZJdGVtIHNldFByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxl
OlVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVBdHRhY2htZW50XTsKICAgICBbcGRmSXRlbSBy
ZWdpc3RlckRhdGE6dGVzdFBERkRhdGEoKSB0eXBlOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5
cGVQREZdOwogCiAgICAgYXV0byB0ZXh0SXRlbSA9IGFkb3B0TlMoW1tOU0l0ZW1Qcm92aWRlciBh
bGxvY10gaW5pdF0pOwogICAgIFt0ZXh0SXRlbSBzZXRTdWdnZXN0ZWROYW1lOkAiaGVsbG8iXTsK
LSAgICBbdGV4dEl0ZW0gc2V0UHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGU6VUlQcmVmZXJyZWRQ
cmVzZW50YXRpb25TdHlsZUF0dGFjaG1lbnRdOwogICAgIFt0ZXh0SXRlbSByZWdpc3RlckRhdGE6
W0AiaGVsbG93b3JsZCIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIHR5
cGU6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVBsYWluVGV4dF07CiAKICAgICBVSVBhc3Rl
Ym9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIHBkZkl0ZW0uZ2V0KCks
IHRleHRJdGVtLmdldCgpIF07Cg==
</data>
<flag name="review"
          id="382787"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366420</attachid>
            <date>2019-04-01 14:04:18 -0700</date>
            <delta_ts>2019-04-01 14:21:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196442-20190401140418.patch</filename>
            <type>text/plain</type>
            <size>18721</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDViYzlhMjUzMzJkYzFm
ODNlMzhiODM4OWQ4ZDIyOWY3NWRlODI0Ni4uZmEzN2FmMTlhYmJiYmNiOGFkNjA2ZmUzM2FhYTc4
ZWUxNzk5MjdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE5LTA0LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVuYWJsZSB0byBj
b3B5IGFuZCBwYXN0ZSBhIFBERiBmcm9tIE5vdGVzIGludG8gTWFpbCBjb21wb3NlIGJvZHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjQ0MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDg1NzMwOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
IEhvcnRvbi4KKworICAgICAgICBSZWZhY3RvciBzb21lIGxvZ2ljIGZvciBpbnNlcnRpbmcgYXR0
YWNobWVudCBlbGVtZW50cyB1cG9uIHBhc3RlIG9yIGRyb3AuIEN1cnJlbnRseSwgd2Ugb25seSBw
cmVmZXIgaW5zZXJ0aW5nCisgICAgICAgIGNvbnRlbnQgYXMgYXR0YWNobWVudCBlbGVtZW50cyBp
ZiB0aGUgaXRlbXMgYXJlIGFubm90YXRlZCB3aXRoIFVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5
bGVBdHRhY2htZW50LiBIb3dldmVyLAorICAgICAgICBtYW55IGRhdGEgc291cmNlcyBhcm91bmQg
dGhlIHN5c3RlbSAoYm90aCBmaXJzdCBhbmQgdGhpcmQgcGFydHkpIGhhdmUgbm90IGFkb3B0ZWQg
dGhpcyBBUEksIHdoaWNoIG1ha2VzIGl0CisgICAgICAgIGRpZmZpY3VsdCB0byBkZXRlcm1pbmUg
d2hldGhlciBhIGdpdmVuIGl0ZW0gcHJvdmlkZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBmaWxl
IG9yIG5vdC4gSW4gdGhpcyBidWcgaW4KKyAgICAgICAgcGFydGljdWxhciwgbm8gcHJlZmVycmVk
IHByZXNlbnRhdGlvbiBzdHlsZSBpcyBzZXQsIHNvIHdlIGZhaWwgdG8gaGFuZGxlIHRoZSBwYXN0
ZSBjb21tYW5kIGJ5IGluc2VydGluZyBhbgorICAgICAgICBhdHRhY2htZW50IGVsZW1lbnQuCisK
KyAgICAgICAgSG93ZXZlciwgbW9zdCBhcHBzIGFyb3VuZCB0aGUgc3lzdGVtIHRoYXQgd3JpdGUg
ZmlsZSBvciBhdHRhY2htZW50LWxpa2UgZGF0YSB0byB0aGUgcGFzdGVib2FyZCB3aWxsIGF0IGxl
YXN0CisgICAgICAgIG9mZmVyIGEgc3VnZ2VzdGVkIG5hbWUgZm9yIHRoZSBmaWxlLCBpbiB0aGUg
Zm9ybSBvZiAtW05TSXRlbVByb3ZpZGVyIHN1Z2dlc3RlZE5hbWVdLiBUbyBhZGRyZXNzIHRoaXMs
IGluc3RlYWQgb2YKKyAgICAgICAgcmVseWluZyBzb2xlbHkgb24gdGhlIHByZWZlcnJlZFByZXNl
bnRhdGlvblN0eWxlLCBhZGRpdGlvbmFsbHkgdGFrZSBhIHN1Z2dlc3RlZCBuYW1lIGFzIGFuIGlu
ZGljYXRvciB0aGF0IHRoZQorICAgICAgICBpdGVtIGlzIHByb2JhYmx5IGEgZmlsZS4KKworICAg
ICAgICBJbiBmYWN0LCBQYXN0ZWJvYXJkOjpmaWxlQ29udGVudFN0YXRlIGFscmVhZHkgaGFzIHNp
bWlsYXIgbG9naWMgdG8gY2hlY2sgZm9yIGVpdGhlciBhIHN1Z2dlc3RlZCBmaWxlIG5hbWUgb3IK
KyAgICAgICAgZXhwbGljaXRseSBzcGVjaWZpZWQgcHJlc2VudGF0aW9uIHN0eWxlLiBXZSBwdWxs
IHRoaXMgb3V0IGludG8gYSBzZXBhcmF0ZSBoZWxwZXIgbWV0aG9kIG9uIFBhc3RlYm9hcmRJdGVt
SW5mbywKKyAgICAgICAgYW5kIHVzZSBpdCBmb3IgYm90aCBQYXN0ZWJvYXJkOjpmaWxlQ29udGVu
dFN0YXRlIGFuZCBwcmVmZXJzQXR0YWNobWVudFJlcHJlc2VudGF0aW9uLgorCisgICAgICAgIFRl
c3RzOiAgV0tBdHRhY2htZW50VGVzdHNJT1MuSW5zZXJ0UGFzdGVkQ29udGFjdEFzQXR0YWNobWVu
dAorICAgICAgICAgICAgICAgIFdLQXR0YWNobWVudFRlc3RzSU9TLkluc2VydFBhc3RlZE1hcEl0
ZW1Bc0F0dGFjaG1lbnQKKworICAgICAgICAqIGVkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRl
ckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6bWltZVR5cGVGcm9tQ29udGVudFR5cGUpOgor
CisgICAgICAgIFdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS80OTQ3ODIyOT4gYnkgdXNpbmcg
dGhlICJ0ZXh0L3ZjYXJkIiBNSU1FIHR5cGUgdG8gaGFuZGxlICJwdWJsaWMudmNhcmQiLiBDb3Jl
U2VydmljZXMKKyAgICAgICAgY3VycmVudGx5IG1hcHMgInB1YmxpYy52Y2FyZCIgdG8gInRleHQv
ZGlyZWN0b3J5IiB3aGVuIHVzaW5nIFVUVHlwZUNvcHlQcmVmZXJyZWRUYWdXaXRoQ2xhc3MsIGRl
c3BpdGUgdGhlIFNQSQorICAgICAgICAtW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBNSU1FVHlwZUZv
ckV4dGVuc2lvbjpdIHJldHVybmluZyAidGV4dC92Y2FyZCIgZm9yIGEgIi52Y2YiIGZpbGUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkSXRlbUluZm8uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmRJdGVtSW5mbzo6Y2FuQmVUcmVhdGVkQXNBdHRhY2htZW50T3JGaWxlIGNv
bnN0KToKKworICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIGRldGVybWluZSB3aGV0aGVy
IHRoZSBQYXN0ZWJvYXJkSXRlbUluZm8gcHJlZmVycyB0byBiZSByZXByZXNlbnRlZCBhcyBpbmxp
bmUgZGF0YSwgb3IgYW4KKyAgICAgICAgYXR0YWNobWVudCwgb3IgbmVpdGhlci4gVGhpcyBkaWZm
ZXJzIHNsaWdodGx5IGZyb20gdGhlIGV4aXN0aW5nIHZhbHVlIG9mIHByZWZlcnJlZFByZXNlbnRh
dGlvblN0eWxlIGluIHRoYXQgd2UKKyAgICAgICAgY29uc2lkZXIgaGF2aW5nIGEgc3VnZ2VzdGVk
IGZpbGUgbmFtZSBhcyBhIHN0cm9uZyBpbmRpY2F0b3IgdGhhdCB0aGUgaXRlbSBzaG91bGQgYmUg
dHJlYXRlZCBhcyBhbiBhdHRhY2htZW50LAorICAgICAgICBldmVuIGlmIHRoZSBwcmVzZW50YXRp
b24gc3R5bGUgaXMgdW5zcGVjaWZpZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QYXN0
ZWJvYXJkQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpmaWxlQ29udGVu
dFN0YXRlKToKKworICAgICAgICBVc2UgUGFzdGVib2FyZEl0ZW1JbmZvOjpjYW5CZVRyZWF0ZWRB
c0F0dGFjaG1lbnRPckZpbGUoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJk
SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6cHJlZmVyc0F0dGFjaG1lbnRSZXByZXNlbnRhdGlv
bik6CisKKyAgICAgICAgVXNlIFBhc3RlYm9hcmRJdGVtSW5mbzo6Y2FuQmVUcmVhdGVkQXNBdHRh
Y2htZW50T3JGaWxlKCkuCisKIDIwMTktMDQtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVmYWN0b3Igc29tZSBsb2dpYyBmb3IgaW5z
ZXJ0aW5nIHBhc3RlZCBvciBkcm9wcGVkIHZpcnR1YWwgY2FyZCBmaWxlcyBhcyBhdHRhY2htZW50
IGVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4NDY3ZjAyZGU4MzA3Nzk5ZDkwNDU3NzgzNTIxNmZlYjE4
NzJiY2EuLmI5YzRjNzYwNzMzN2QwZTE1ODBhYTgzMGRjMTE4Mzg4MzFlMDFkYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDQtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgVW5hYmxlIHRvIGNvcHkgYW5kIHBhc3RlIGEgUERGIGZy
b20gTm90ZXMgaW50byBNYWlsIGNvbXBvc2UgYm9keQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
ODU3MzA5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFJl
bGF4IHRoZSAtY2FuUGVyZm9ybUFjdGlvbjogbG9naWMgaW4gdGhlIGNhc2Ugb2YgcGFzdGluZyBh
biBhdHRhY2htZW50LiBDb25zaWRlciBhbiBOU0l0ZW1Qcm92aWRlciB0byBwb3NzaWJseQorICAg
ICAgICBwYXN0ZSBhcyBhbiBhdHRhY2htZW50IGlmIGVpdGhlciBpdCBoYXMgYSBwcmVmZXJyZWQg
cHJlc2VudGF0aW9uIHN0eWxlIG9mIFVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVBdHRhY2ht
ZW50CisgICAgICAgIG9yIGhhcyBhIHN0eWxlIG9mIFVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5
bGVVbnNwZWNpZmllZCwgYnV0IGhhcyBhIHN1Z2dlc3RlZCBmaWxlIG5hbWUuCisKKyAgICAgICAg
VGhpcyBhbGxvd3MgZm9yIHRoZSAiUGFzdGUiIGFjdGlvbiB0byBiZSBzaG93biBpbiB0aGUgY2Fs
bG91dCBtZW51IHdoZW4gY29weWluZyBhbmQgcGFzdGluZyBhIG5vbi10ZXh0IGZpbGUuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBjYW5QZXJmb3JtQWN0aW9uRm9yV2ViVmlldzp3aXRoU2VuZGVy
Ol0pOgorCiAyMDE5LTA0LTAxICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdW1dQRV0gRml4IHNlY2NvbXAgcnVsZSBmb3IgYmxhY2tsaXN0aW5n
IFRJT0NTVEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29u
dGVudFJlYWRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250
ZW50UmVhZGVyQ29jb2EubW0KaW5kZXggOGQxZjllNzdmZDFmNjgyZWUxMDM1YzEyNWUwMWY2NjM2
YTIzMGZiYS4uOGMzMzFmZjczMmU4MzA0OWNhMzg4NzQ4NDFkZTNiMmE0ZGRmNWVkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29j
b2EubW0KQEAgLTIyMiw2ICsyMjIsMTIgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVwbGFjZVJpY2hD
b250ZW50V2l0aEF0dGFjaG1lbnRzKCkKIAogc3RhdGljIFN0cmluZyBtaW1lVHlwZUZyb21Db250
ZW50VHlwZShjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogeworICAgIGlmIChjb250ZW50VHlw
ZSA9PSBTdHJpbmcoa1VUVHlwZVZDYXJkKSkgeworICAgICAgICAvLyBDb3JlU2VydmljZXMgZXJy
b25lb3VzbHkgcmVwb3J0cyB0aGF0ICJwdWJsaWMudmNhcmQiIG1hcHMgdG8gInRleHQvZGlyZWN0
b3J5IiwgcmF0aGVyCisgICAgICAgIC8vIHRoYW4gZWl0aGVyICJ0ZXh0L3ZjYXJkIiBvciAidGV4
dC94LXZjYXJkIi4gV29yayBhcm91bmQgdGhpcyBieSBzcGVjaWFsIGNhc2luZyB0aGUKKyAgICAg
ICAgLy8gInB1YmxpYy52Y2FyZCIgVVRJIHR5cGUuIFNlZSA8cmRhcjovL3Byb2JsZW0vNDk0Nzgy
Mjk+IGZvciBtb3JlIGRldGFpbC4KKyAgICAgICAgcmV0dXJuICJ0ZXh0L3ZjYXJkIl9zOworICAg
IH0KICAgICByZXR1cm4gaXNEZWNsYXJlZFVUSShjb250ZW50VHlwZSkgPyBNSU1FVHlwZUZyb21V
VEkoY29udGVudFR5cGUpIDogY29udGVudFR5cGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRJdGVtSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZEl0ZW1JbmZvLmgKaW5kZXggOTJkOGIwYmZkNjdhODJkZjg0NmU1ODlk
NDNkZjFjZGIxYzFmNDJhYS4uNmQ1NzgzODViMTg0NmYyOGM0Njc4OGFmYjA0ZTg1Y2I5MGEwYzJh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEl0ZW1JbmZv
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEl0ZW1JbmZvLmgKQEAg
LTU2LDYgKzU2LDI0IEBAIHN0cnVjdCBQYXN0ZWJvYXJkSXRlbUluZm8gewogICAgICAgICByZXR1
cm4gcGF0aHNGb3JGaWxlVXBsb2FkW2luZGV4XTsKICAgICB9CiAKKyAgICAvLyBUaGUgcHJlZmVy
cmVkUHJlc2VudGF0aW9uU3R5bGUgZmxhZyBpcyBwbGF0Zm9ybSBBUEkgdXNlZCBieSBkcmFnIG9y
IGNvcHkgc291cmNlcyB0byBleHBsaWNpdGx5IGluZGljYXRlCisgICAgLy8gdGhhdCB0aGUgZGF0
YSBiZWluZyB3cml0dGVuIHRvIHRoZSBpdGVtIHByb3ZpZGVyIHNob3VsZCBiZSB0cmVhdGVkIGFz
IGFuIGF0dGFjaG1lbnQ7IHVuZm9ydHVuYXRlbHksIG5vdAorICAgIC8vIGFsbCBjbGllbnRzIGF0
dGVtcHQgdG8gc2V0IHRoaXMgZmxhZywgc28gd2UgYWRkaXRpb25hbGx5IHRha2UgaGF2aW5nIGEg
c3VnZ2VzdGVkIGZpbGVuYW1lIGFzIGEgc3Ryb25nCisgICAgLy8gaW5kaWNhdG9yIHRoYXQgdGhl
IGl0ZW0gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gYXR0YWNobWVudCBvciBmaWxlLgorICAgIGJv
b2wgY2FuQmVUcmVhdGVkQXNBdHRhY2htZW50T3JGaWxlKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHN3aXRjaCAocHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGUpIHsKKyAgICAgICAgY2FzZSBQYXN0
ZWJvYXJkSXRlbVByZXNlbnRhdGlvblN0eWxlOjpJbmxpbmU6CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGNhc2UgUGFzdGVib2FyZEl0ZW1QcmVzZW50YXRpb25TdHlsZTo6QXR0
YWNobWVudDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIFBhc3RlYm9h
cmRJdGVtUHJlc2VudGF0aW9uU3R5bGU6OlVuc3BlY2lmaWVkOgorICAgICAgICAgICAgcmV0dXJu
ICFzdWdnZXN0ZWRGaWxlTmFtZS5pc0VtcHR5KCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBTdHJp
bmcgY29udGVudFR5cGVGb3JIaWdoZXN0RmlkZWxpdHlJdGVtKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIGlmIChjb250ZW50VHlwZXNGb3JGaWxlVXBsb2FkLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQppbmRleCAyNTBhMmFm
ZWE1OGU1ZjE4ZjBlNmQyNWRkMGI2MTgxYmQ0ZjZkNTI0Li4yNjQ3NDgwYmRhNzJiZjM2MzMyZTU0
MmZlMTc3ZmZjMjY5OGZmMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvUGFzdGVib2FyZENvY29hLm1tCkBAIC0xNDMsMjYgKzE0MywxNCBAQCBQYXN0ZWJvYXJkOjpG
aWxlQ29udGVudFN0YXRlIFBhc3RlYm9hcmQ6OmZpbGVDb250ZW50U3RhdGUoKQogICAgICAgICAv
LyBPbiBpT1MsIGZpbGVzIGFyZSBub3Qgd3JpdHRlbiB0byB0aGUgcGFzdGVib2FyZCB1c2luZyBm
aWxlIFVSTHMsIHNvIHdlIG5lZWQgYSBoZXVyaXN0aWMgdG8gZGV0ZXJtaW5lCiAgICAgICAgIC8v
IHdoZXRoZXIgb3Igbm90IHRoZSBwYXN0ZWJvYXJkIGNvbnRhaW5zIGl0ZW1zIHRoYXQgcmVwcmVz
ZW50IGZpbGVzLiBBbiBleGFtcGxlIG9mIHdoZW4gdGhpcyBnZXRzIHRyaWNreQogICAgICAgICAv
LyBpcyBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBjYXNlcyB3aGVyZSB0aGUgdXNlciBpcyBkcmFn
Z2luZyBhIHBsYWluIHRleHQgZmlsZSwgdmVyc3VzIHNlbGVjdGVkIHRleHQuCi0gICAgICAgIC8v
IFNvbWUgY29tbW9uIHNpZ25zIHRoYXQgaW5kaWNhdGUgYSBmaWxlIGRyb3AgYXMgb3Bwb3NlZCB0
byBkcm9wcGluZyBpbmxpbmUgZGF0YSBhcmU6Ci0gICAgICAgIC8vCi0gICAgICAgIC8vICAxLiBN
dWx0aXBsZSBpdGVtcyAtIHRoZSBzeXN0ZW0gZ2VuZXJhbGx5IGRvZXMgbm90IGdpdmUgb3Bwb3J0
dW5pdGllcyB0byBmbG9jayBtdWx0aXBsZSBwaWVjZXMgb2YKLSAgICAgICAgLy8gICAgIHNlbGVj
dGVkIHRleHQuCi0gICAgICAgIC8vICAyLiBQcmVmZXJyZWQgYXR0YWNobWVudCBwcmVzZW50YXRp
b24gc3R5bGUgLSB0aGlzIG1lYW5zIHRoZSBzb3VyY2UgaGFzIGV4cGxpY2l0bHkgbWFya2VkIHRo
ZSBpdGVtCi0gICAgICAgIC8vICAgICBhcyBhIGZpbGUtbGlrZSBlbnRpdHksIGFzIG9wcG9zZWQg
dG8gaW5saW5lIGRhdGEuCi0gICAgICAgIC8vICAzLiBBIHN1Z2dlc3RlZCBuYW1lIC0gdGhpcyBt
ZWFucyB0aGF0IHRoZSBzb3VyY2UgaGFzIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGEgcG90ZW50aWFs
IGZpbGUgbmFtZSBmb3IKLSAgICAgICAgLy8gICAgIHRoZSBpdGVtIHdoZW4gZHJvcHBlZC4KLSAg
ICAgICAgLy8gIDQuIFRoZSBwcmVzZW5jZSBvZiBhbnkgb3RoZXIgZGVjbGFyZWQgbm9uLXRleHQg
ZGF0YSBpbiB0aGUgc2FtZSBpdGVtIGluZGljYXRlcyB0aGF0IHRoZSBjb250ZW50IGJlaW5nCi0g
ICAgICAgIC8vICAgICBkcm9wcGVkIGNhbiB0YWtlIG9uIGFub3RoZXIgbm9uLXRleHQgZm9ybWF0
LCB3aGljaCBjb3VsZCBiZSBhIGZpbGUuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIElmIG5vbmUg
b2YgdGhlc2UgZm91ciBjb25kaXRpb25zIGFyZSBzYXRpc2ZpZWQsIGl0J3MgdmVyeSBsaWtlbHkg
dGhhdCB0aGUgY29udGVudCBiZWluZyBkcm9wcGVkIGlzIGp1c3QKKyAgICAgICAgLy8gQWxzbywg
dGhlIHByZXNlbmNlIG9mIGFueSBvdGhlciBkZWNsYXJlZCBub24tdGV4dCBkYXRhIGluIHRoZSBz
YW1lIGl0ZW0gaW5kaWNhdGVzIHRoYXQgdGhlIGNvbnRlbnQKKyAgICAgICAgLy8gYmVpbmcgZHJv
cHBlZCBjYW4gdGFrZSBvbiBhbm90aGVyIG5vbi10ZXh0IGZvcm1hdCwgd2hpY2ggY291bGQgYmUg
YSBmaWxlLgorICAgICAgICAvLyBJZiB0aGUgaXRlbSBjYW4ndCBiZSB0cmVhdGVkIGFzIGFuIGF0
dGFjaG1lbnQsIGl0J3MgdmVyeSBsaWtlbHkgdGhhdCB0aGUgY29udGVudCBiZWluZyBkcm9wcGVk
IGlzIGp1c3QKICAgICAgICAgLy8gYW4gaW5saW5lIHBpZWNlIG9mIHRleHQsIHdpdGggbm8gZmls
ZXMgaW4gdGhlIHBhc3RlYm9hcmQgKGFuZCB0aGVyZWZvcmUsIG5vIHJpc2sgb2YgbGVha2luZyBm
aWxlIHBhdGhzCiAgICAgICAgIC8vIHRvIHdlYiBjb250ZW50KS4gSW4gY2FzZXMgc3VjaCBhcyB0
aGVzZSwgd2Ugc2hvdWxkIG5vdCBzdXBwcmVzcyBEYXRhVHJhbnNmZXIgYWNjZXNzLgogICAgICAg
ICBhdXRvIGl0ZW1zID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgp
LT5hbGxQYXN0ZWJvYXJkSXRlbUluZm8obV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgICAgIG1heUNv
bnRhaW5GaWxlUGF0aHMgPSBpdGVtcy5zaXplKCkgIT0gMSB8fCBub3RGb3VuZCAhPSBpdGVtcy5m
aW5kTWF0Y2hpbmcoW10gKGF1dG8mIGl0ZW0pIHsKLSAgICAgICAgICAgIGlmIChpdGVtLnByZWZl
cnJlZFByZXNlbnRhdGlvblN0eWxlICE9IFBhc3RlYm9hcmRJdGVtUHJlc2VudGF0aW9uU3R5bGU6
OlVuc3BlY2lmaWVkKQotICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnByZWZlcnJlZFByZXNl
bnRhdGlvblN0eWxlID09IFBhc3RlYm9hcmRJdGVtUHJlc2VudGF0aW9uU3R5bGU6OkF0dGFjaG1l
bnQ7Ci0KLSAgICAgICAgICAgIHJldHVybiAhaXRlbS5zdWdnZXN0ZWRGaWxlTmFtZS5pc0VtcHR5
KCkgfHwgaXRlbS5pc05vblRleHRUeXBlIHx8IGl0ZW0uY29udGFpbnNGaWxlVVJMQW5kRmlsZVVw
bG9hZENvbnRlbnQ7CisgICAgICAgICAgICByZXR1cm4gaXRlbS5jYW5CZVRyZWF0ZWRBc0F0dGFj
aG1lbnRPckZpbGUoKSB8fCBpdGVtLmlzTm9uVGV4dFR5cGUgfHwgaXRlbS5jb250YWluc0ZpbGVV
UkxBbmRGaWxlVXBsb2FkQ29udGVudDsKICAgICAgICAgfSk7CiAgICAgfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IDQxZDkwNTYz
ZTQxMzZjYTQ5N2M0ZGY3ODNlMzZiOTgyOTZjZTdlYzIuLjA2NTg0YTBhYzlkNTU5YWU5MGEzOTYz
OTRhMDNlNThkMjI1ZTM4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0
ZWJvYXJkSU9TLm1tCkBAIC0yNzAsMTAgKzI3MCwxMCBAQCBzdGF0aWMgYm9vbCBwcmVmZXJzQXR0
YWNobWVudFJlcHJlc2VudGF0aW9uKGNvbnN0IFBhc3RlYm9hcmRJdGVtSW5mbyYgaW5mbykKICAg
ICBpZiAoY29udGVudFR5cGVGb3JIaWdoZXN0RmlkZWxpdHlJdGVtLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGluZm8ucHJlZmVycmVkUHJlc2VudGF0aW9uU3R5
bGUgPT0gUGFzdGVib2FyZEl0ZW1QcmVzZW50YXRpb25TdHlsZTo6QXR0YWNobWVudCkKLSAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGluZm8ucHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGUg
PT0gUGFzdGVib2FyZEl0ZW1QcmVzZW50YXRpb25TdHlsZTo6SW5saW5lKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gVVRUeXBlQ29uZm9ybXNUbyhjb250ZW50VHlwZUZvckhp
Z2hlc3RGaWRlbGl0eUl0ZW0uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwga1VUVHlwZVZDYXJkKTsK
KyAgICByZXR1cm4gaW5mby5jYW5CZVRyZWF0ZWRBc0F0dGFjaG1lbnRPckZpbGUoKSB8fCBVVFR5
cGVDb25mb3Jtc1RvKGNvbnRlbnRUeXBlRm9ySGlnaGVzdEZpZGVsaXR5SXRlbS5jcmVhdGVDRlN0
cmluZygpLmdldCgpLCBrVVRUeXBlVkNhcmQpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQo
UGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXImIHJlYWRlciwgV2ViQ29udGVudFJlYWRpbmdQb2xp
Y3kgcG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNGY5ZWYxM2M3YjgwYzA0MDM2MTI1M2IyNmFm
NzlmNjJjOTljZDdjMy4uMWFhNjFmZjZhNzQ0NzJjMjQ4OGViNzAxYjI1NzRkMDZkZjA3YzA3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCkBAIC0yODI2LDcgKzI4MjYsMTQgQEAgLSAoQk9PTCljYW5QZXJmb3Jt
QWN0aW9uRm9yV2ViVmlldzooU0VMKWFjdGlvbiB3aXRoU2VuZGVyOihpZClzZW5kZXIKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgICAgIGlmIChlZGl0b3JTdGF0ZS5pc0NvbnRlbnRSaWNobHlFZGl0
YWJsZSAmJiBfd2ViVmlldy5jb25maWd1cmF0aW9uLl9hdHRhY2htZW50RWxlbWVudEVuYWJsZWQp
IHsKICAgICAgICAgICAgIGZvciAoTlNJdGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciBpbiBwYXN0
ZWJvYXJkLml0ZW1Qcm92aWRlcnMpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXRlbVByb3ZpZGVy
LnByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlID09IFVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5
bGVBdHRhY2htZW50ICYmIGl0ZW1Qcm92aWRlci53ZWJfZmlsZVVwbG9hZENvbnRlbnRUeXBlcy5j
b3VudCkKKyAgICAgICAgICAgICAgICBhdXRvIHByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlID0g
aXRlbVByb3ZpZGVyLnByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlOworICAgICAgICAgICAgICAg
IGlmIChwcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZSA9PSBVSVByZWZlcnJlZFByZXNlbnRhdGlv
blN0eWxlSW5saW5lKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAg
ICAgICAgIGlmIChwcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZSA9PSBVSVByZWZlcnJlZFByZXNl
bnRhdGlvblN0eWxlVW5zcGVjaWZpZWQgJiYgIWl0ZW1Qcm92aWRlci5zdWdnZXN0ZWROYW1lLmxl
bmd0aCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBp
ZiAoaXRlbVByb3ZpZGVyLndlYl9maWxlVXBsb2FkQ29udGVudFR5cGVzLmNvdW50KQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gWUVTOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTA3YjcyNjc3
ZDNhMjY5OGE5MDcwM2QzMjE0YWJkYmI2ZjAwM2QxOC4uYjRjYjcwOTg2NWIzYWUwZDk3YzRjZGRl
MmExODM3YzgxYWI5Mzc1YyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA0LTAxICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVuYWJsZSB0byBjb3B5IGFuZCBwYXN0
ZSBhIFBERiBmcm9tIE5vdGVzIGludG8gTWFpbCBjb21wb3NlIGJvZHkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjQ0MgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDg1NzMwOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKwor
ICAgICAgICBBZGQgbmV3IEFQSSB0ZXN0cyB0byBleGVyY2lzZSBwYXN0aW5nIENOQ29udGFjdCBh
bmQgTUtNYXBJdGVtLWJhY2tlZCBpdGVtIHByb3ZpZGVycy4gQWRkaXRpb25hbGx5LCBhZGp1c3Qg
YW4KKyAgICAgICAgZXhpc3RpbmcgdGVzdCB0aGF0IHBhc3RlcyBhIFBERiBmaWxlIGFzIGFuIGF0
dGFjaG1lbnQgdG8gbm90IHJlcXVpcmUgVUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFj
aG1lbnQKKyAgICAgICAgdG8gYmUgc3BlY2lmaWVkIG9uIHRoZSBpdGVtIHByb3ZpZGVycy4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVz
dHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjptYXBJdGVtRm9yVGVzdGluZyk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpjb250YWN0SXRlbUZvclRlc3RpbmcpOgorCiAyMDE5LTA0LTAx
ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBF
dmVudFNlbmRlclByb3h5IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBiZWZvcmUgYSBQbGF0Zm9ybVdp
bmRvdyBpcyB1c2FibGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCmluZGV4IDU4N2M1MzlmMjZlMWNhMGJh
ODgzYTkxZGY1YzEwNzNjNzdjMWFhZjAuLjFjMmI0OTA3NGVkZmU2YWQ1N2I1OGJiOTAxMTU1Yzk2
ZjEyNmNjZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tBdHRhY2htZW50VGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQpAQCAtMTgwNCwxNiArMTgwNCwzMyBAQCBU
RVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBEcmFnQXR0YWNobWVudEluc2VydGVkQXNEYXRhKQog
ICAgIFtkcmFnQW5kRHJvcFNpbXVsYXRvciBlbmREYXRhVHJhbnNmZXJdOwogfQogCi1URVNUKFdL
QXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkTWFwSXRlbUFzQXR0YWNobWVudCkKK3N0
YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IG1hcEl0ZW1Gb3JUZXN0aW5nKCkKIHsKICAg
ICBhdXRvIHBsYWNlbWFyayA9IGFkb3B0TlMoW2FsbG9jTUtQbGFjZW1hcmtJbnN0YW5jZSgpIGlu
aXRXaXRoQ29vcmRpbmF0ZTpDTExvY2F0aW9uQ29vcmRpbmF0ZTJETWFrZSgzNy4zMzI3LCAtMTIy
LjAwNTMpXSk7CiAgICAgYXV0byBtYXBJdGVtID0gYWRvcHROUyhbYWxsb2NNS01hcEl0ZW1JbnN0
YW5jZSgpIGluaXRXaXRoUGxhY2VtYXJrOnBsYWNlbWFyay5nZXQoKV0pOwotICAgIFttYXBJdGVt
IHNldE5hbWU6QCJBcHBsZSBQYXJrIl07CisgICAgW21hcEl0ZW0gc2V0TmFtZTpAIkFwcGxlIFBh
cmsudmNmIl07CiAKICAgICBhdXRvIGl0ZW1Qcm92aWRlciA9IGFkb3B0TlMoW1tOU0l0ZW1Qcm92
aWRlciBhbGxvY10gaW5pdF0pOwogICAgIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJPYmplY3Q6bWFw
SXRlbS5nZXQoKSB2aXNpYmlsaXR5Ok5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25WaXNpYmls
aXR5QWxsXTsKICAgICBbaXRlbVByb3ZpZGVyIHNldFN1Z2dlc3RlZE5hbWU6W21hcEl0ZW0gbmFt
ZV1dOworICAgIHJldHVybiBpdGVtUHJvdmlkZXI7Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNJ
dGVtUHJvdmlkZXI+IGNvbnRhY3RJdGVtRm9yVGVzdGluZygpCit7CisgICAgYXV0byBjb250YWN0
ID0gYWRvcHROUyhbYWxsb2NDTk11dGFibGVDb250YWN0SW5zdGFuY2UoKSBpbml0XSk7CisgICAg
W2NvbnRhY3Qgc2V0R2l2ZW5OYW1lOkAiRm9vIl07CisgICAgW2NvbnRhY3Qgc2V0RmFtaWx5TmFt
ZTpAIkJhciJdOworCisgICAgYXV0byBpdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbTlNJdGVtUHJv
dmlkZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyT2JqZWN0OmNv
bnRhY3QuZ2V0KCkgdmlzaWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uVmlzaWJp
bGl0eUFsbF07CisgICAgW2l0ZW1Qcm92aWRlciBzZXRTdWdnZXN0ZWROYW1lOkAiRm9vIEJhci52
Y2YiXTsKKyAgICByZXR1cm4gaXRlbVByb3ZpZGVyOworfQogCitURVNUKFdLQXR0YWNobWVudFRl
c3RzSU9TLCBJbnNlcnREcm9wcGVkTWFwSXRlbUFzQXR0YWNobWVudCkKK3sKKyAgICBhdXRvIGl0
ZW1Qcm92aWRlciA9IG1hcEl0ZW1Gb3JUZXN0aW5nKCk7CiAgICAgYXV0byB3ZWJWaWV3ID0gd2Vi
Vmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOwogICAgIGF1dG8gc2ltdWxhdG9yID0gYWRvcHRO
UyhbW0RyYWdBbmREcm9wU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5n
ZXQoKV0pOwogICAgIFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGl0ZW1Q
cm92aWRlci5nZXQoKSBdXTsKQEAgLTE4MzIsMTQgKzE4NDksNyBAQCBURVNUKFdLQXR0YWNobWVu
dFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkTWFwSXRlbUFzQXR0YWNobWVudCkKIAogVEVTVChXS0F0
dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0RHJvcHBlZENvbnRhY3RBc0F0dGFjaG1lbnQpCiB7Ci0g
ICAgYXV0byBjb250YWN0ID0gYWRvcHROUyhbYWxsb2NDTk11dGFibGVDb250YWN0SW5zdGFuY2Uo
KSBpbml0XSk7Ci0gICAgW2NvbnRhY3Qgc2V0R2l2ZW5OYW1lOkAiRm9vIl07Ci0gICAgW2NvbnRh
Y3Qgc2V0RmFtaWx5TmFtZTpAIkJhciJdOwotCi0gICAgYXV0byBpdGVtUHJvdmlkZXIgPSBhZG9w
dE5TKFtbTlNJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKLSAgICBbaXRlbVByb3ZpZGVyIHJl
Z2lzdGVyT2JqZWN0OmNvbnRhY3QuZ2V0KCkgdmlzaWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJl
c2VudGF0aW9uVmlzaWJpbGl0eUFsbF07Ci0gICAgW2l0ZW1Qcm92aWRlciBzZXRTdWdnZXN0ZWRO
YW1lOkAiRm9vIEJhciJdOwotCisgICAgYXV0byBpdGVtUHJvdmlkZXIgPSBjb250YWN0SXRlbUZv
clRlc3RpbmcoKTsKICAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yVGVzdGluZ0F0dGFjaG1l
bnRzKCk7CiAgICAgYXV0byBzaW11bGF0b3IgPSBhZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11bGF0
b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CiAgICAgW3NpbXVsYXRv
ciBzZXRFeHRlcm5hbEl0ZW1Qcm92aWRlcnM6QFsgaXRlbVByb3ZpZGVyLmdldCgpIF1dOwpAQCAt
MTg1NCwxNiArMTg2NCw0OSBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9w
cGVkQ29udGFjdEFzQXR0YWNobWVudCkKICAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvdmNhcmQi
LCBpbmZvLmNvbnRlbnRUeXBlKTsKIH0KIAorVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5z
ZXJ0UGFzdGVkQ29udGFjdEFzQXR0YWNobWVudCkKK3sKKyAgICBVSVBhc3RlYm9hcmQuZ2VuZXJh
bFBhc3RlYm9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIGNvbnRhY3RJdGVtRm9yVGVzdGluZygpLmF1
dG9yZWxlYXNlKCkgXTsKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yVGVzdGluZ0F0dGFj
aG1lbnRzKCk7CisgICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIo
d2ViVmlldy5nZXQoKSk7CisgICAgW3dlYlZpZXcgcGFzdGU6bmlsXTsKKworICAgIFt3ZWJWaWV3
IGV4cGVjdEVsZW1lbnRDb3VudDowIHF1ZXJ5U2VsZWN0b3I6QCJhIl07CisgICAgRVhQRUNUX1dL
X1NUUkVRKCJGb28gQmFyLnZjZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhdHRhY2htZW50JykudGl0bGUiXSk7CisgICAg
RVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3ZjYXJkIiwgW3dlYlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpA
InR5cGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50Il0pOworICAgIEVYUEVDVF9FUSgx
VSwgb2JzZXJ2ZXIub2JzZXJ2ZXIoKS5pbnNlcnRlZC5jb3VudCk7CisgICAgX1dLQXR0YWNobWVu
dCAqYXR0YWNobWVudCA9IG9ic2VydmVyLm9ic2VydmVyKCkuaW5zZXJ0ZWQuZmlyc3RPYmplY3Q7
CisgICAgRVhQRUNUX1dLX1NUUkVRKCJGb28gQmFyLnZjZiIsIGF0dGFjaG1lbnQuaW5mby5uYW1l
KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvdmNhcmQiLCBhdHRhY2htZW50LmluZm8uY29u
dGVudFR5cGUpOworfQorCitURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnRQYXN0ZWRN
YXBJdGVtQXNBdHRhY2htZW50KQoreworICAgIFVJQXBwbGljYXRpb25Jbml0aWFsaXplKCk7Cisg
ICAgVUlQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBAWyBtYXBJ
dGVtRm9yVGVzdGluZygpLmF1dG9yZWxlYXNlKCkgXTsKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJW
aWV3Rm9yVGVzdGluZ0F0dGFjaG1lbnRzKCk7CisgICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVz
Rm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7CisgICAgW3dlYlZpZXcgcGFzdGU6bmls
XTsKKworICAgIE5TVVJMICpwYXN0ZWRMaW5rVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6W3dl
YlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpAImhyZWYiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhIl1dOwor
ICAgIFt3ZWJWaWV3IGV4cGVjdEVsZW1lbnRUYWc6QCJBIiB0b0NvbWVCZWZvcmU6QCJBVFRBQ0hN
RU5UIl07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJtYXBzLmFwcGxlLmNvbSIsIHBhc3RlZExpbmtV
UkwuaG9zdCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJBcHBsZSBQYXJrLnZjZiIsIFt3ZWJWaWV3
IHZhbHVlT2ZBdHRyaWJ1dGU6QCJ0aXRsZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQi
XSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3ZjYXJkIiwgW3dlYlZpZXcgdmFsdWVPZkF0
dHJpYnV0ZTpAInR5cGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50Il0pOworICAgIEVY
UEVDVF9FUSgxVSwgb2JzZXJ2ZXIub2JzZXJ2ZXIoKS5pbnNlcnRlZC5jb3VudCk7CisgICAgX1dL
QXR0YWNobWVudCAqYXR0YWNobWVudCA9IG9ic2VydmVyLm9ic2VydmVyKCkuaW5zZXJ0ZWQuZmly
c3RPYmplY3Q7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJBcHBsZSBQYXJrLnZjZiIsIGF0dGFjaG1l
bnQuaW5mby5uYW1lKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvdmNhcmQiLCBhdHRhY2ht
ZW50LmluZm8uY29udGVudFR5cGUpOworfQorCiBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJ
bnNlcnRQYXN0ZWRGaWxlc0FzQXR0YWNobWVudHMpCiB7CiAgICAgYXV0byBwZGZJdGVtID0gYWRv
cHROUyhbW05TSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW3BkZkl0ZW0gc2V0U3Vn
Z2VzdGVkTmFtZTpAImRvYyJdOwotICAgIFtwZGZJdGVtIHNldFByZWZlcnJlZFByZXNlbnRhdGlv
blN0eWxlOlVJUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVBdHRhY2htZW50XTsKICAgICBbcGRm
SXRlbSByZWdpc3RlckRhdGE6dGVzdFBERkRhdGEoKSB0eXBlOihfX2JyaWRnZSBOU1N0cmluZyAq
KWtVVFR5cGVQREZdOwogCiAgICAgYXV0byB0ZXh0SXRlbSA9IGFkb3B0TlMoW1tOU0l0ZW1Qcm92
aWRlciBhbGxvY10gaW5pdF0pOwogICAgIFt0ZXh0SXRlbSBzZXRTdWdnZXN0ZWROYW1lOkAiaGVs
bG8iXTsKLSAgICBbdGV4dEl0ZW0gc2V0UHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGU6VUlQcmVm
ZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFjaG1lbnRdOwogICAgIFt0ZXh0SXRlbSByZWdpc3Rl
ckRhdGE6W0AiaGVsbG93b3JsZCIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rp
bmddIHR5cGU6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVBsYWluVGV4dF07CiAKICAgICBV
SVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIHBkZkl0ZW0u
Z2V0KCksIHRleHRJdGVtLmdldCgpIF07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>