<?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>224720</bug_id>
          
          <creation_ts>2021-04-17 12:04:19 -0700</creation_ts>
          <short_desc>Remove PromisedAttachmentInfo::blobURL and adjacent code</short_desc>
          <delta_ts>2021-04-24 15:06:30 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</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>1751447</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-17 12:04:19 -0700</bug_when>
    <thetext>This was (and is) unused. All attachment element clients use file wrappers via `_WKAttachment` instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751451</commentid>
    <comment_count>1</comment_count>
      <attachid>426342</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-17 13:00:46 -0700</bug_when>
    <thetext>Created attachment 426342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751454</commentid>
    <comment_count>2</comment_count>
      <attachid>426344</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-17 13:06:04 -0700</bug_when>
    <thetext>Created attachment 426344
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751461</commentid>
    <comment_count>3</comment_count>
      <attachid>426347</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-17 13:51:05 -0700</bug_when>
    <thetext>Created attachment 426347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751465</commentid>
    <comment_count>4</comment_count>
      <attachid>426348</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-17 14:23:25 -0700</bug_when>
    <thetext>Created attachment 426348
Fix iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751489</commentid>
    <comment_count>5</comment_count>
      <attachid>426356</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-17 16:27:46 -0700</bug_when>
    <thetext>Created attachment 426356
Fix iOS API test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751530</commentid>
    <comment_count>6</comment_count>
      <attachid>426356</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-17 20:16:42 -0700</bug_when>
    <thetext>Comment on attachment 426356
Fix iOS API test

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751540</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-17 20:49:14 -0700</bug_when>
    <thetext>Committed r276219 (236701@main): &lt;https://commits.webkit.org/236701@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426356.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753921</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-24 15:06:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/77110076&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426342</attachid>
            <date>2021-04-17 13:00:46 -0700</date>
            <delta_ts>2021-04-17 13:06:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224720-20210417130046.patch</filename>
            <type>text/plain</type>
            <size>12918</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTljMDIxOGVmY2QxMTlk
ZGEyYmU1NmU1OGFmOTI3YzZkYmYyNmZlZC4uNTA1NTQyNWQ4ODE2ZGYzMWE5ZDY1MzRhNThhOGY0
OWU2ZmIzN2RhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTE3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQcm9t
aXNlZEF0dGFjaG1lbnRJbmZvOjpibG9iVVJMIGFuZCBhZGphY2VudCBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhpcyBtZW1iZXIg
b2YgYFByb21pc2VkQXR0YWNobWVudEluZm9gLiBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwcm9taXNlZEF0dGFjaG1lbnRJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9taXNlZEF0
dGFjaG1lbnRJbmZvOjpvcGVyYXRvciBib29sIGNvbnN0KToKKwogMjAyMS0wNC0xNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBz
b21lIHN1cHBvcnQgZm9yIHdlYnBhZ2UgdHJhbnNsYXRpb24gaW4gV2ViS2l0TGVnYWN5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDg2MDVhNDE2ODdmNjViYmIzYzUxZGI5ZjhhZmVkMDJkMjYyZTcyYTIuLmIyYjYxM2Ew
MDIyZjFhNzZlYTFhMGJjNjAyMjcwNTQ1ZmEzY2M0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMjEtMDQtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFByb21pc2VkQXR0YWNobWVudEluZm86OmJsb2JVUkwgYW5kIGFkamFj
ZW50IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBgYmxvYlVSTGAgbWVtYmVyIG9mIGBQcm9taXNlZEF0dGFjaG1lbnRJbmZvYCB3YXMgb3Jp
Z2luYWxseSBpbnRyb2R1Y2VkIHRvIGZhY2lsaXRhdGUgZHJhZyBhbmQgZHJvcCBzdXBwb3J0Cisg
ICAgICAgIGZvciBhdHRhY2htZW50IGVsZW1lbnRzIGluIFdlYktpdDIsIGJ5IHdyaXRpbmcgYmxv
YiBVUkwgZGF0YSB0byB0ZW1wb3JhcnkgZmlsZSBwYXRocyBvbiBiZWhhbGYgb2YKKyAgICAgICAg
YE5TRmlsZVByb21pc2VQcm92aWRlcmAgd2hlbiBzdGFydGluZyBhIGRyYWcgb24gYXR0YWNobWVu
dCBlbGVtZW50cyBiYWNrZWQgYnkgYmxvYnMuIEhvd2V2ZXIsIHRoaXMgd2FzCisgICAgICAgIHN1
cGVyY2VkZWQgYnkgdXNlIG9mIGBOU0ZpbGVXcmFwcGVyYCBhbmQgdGhlIGBfV0tBdHRhY2htZW50
YCBTUEkgaW5zdGVhZCwgc3VjaCB0aGF0IHdlIG9ubHkgc3VwcG9ydCBkcmFnZ2luZworICAgICAg
ICBhdHRhY2htZW50IGVsZW1lbnRzIGlmIHRoZXkgY29ycmVzcG9uZCB0byBBUEkgYEF0dGFjaG1l
bnRgIG9iamVjdHMgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgQ29kZSB0aGF0IHV0aWxp
emVkIHRoaXMgbWVtYmVyIHdhcyBvcmlnaW5hbGx5IGludHJvZHVjZWQgaW4gPGh0dHBzOi8vdHJh
Yy53ZWJraXQub3JnL3IyMzUyMDI+LCBhbmQgd2FzCisgICAgICAgIHN1YnNlcXVlbnRseSByZW1v
dmVkIGluIDxodHRwczovL3RyYWMud2Via2l0Lm9yZy9yMjQwNjg3Pi4KKworICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPFByb21pc2VkQXR0YWNobWVudEluZm8+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFByb21pc2VkQXR0YWNobWVudEluZm8+OjpkZWNvZGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKC1bV0tQcm9taXNlZEF0dGFj
aG1lbnRDb250ZXh0IGluaXRXaXRoSWRlbnRpZmllcjpmaWxlTmFtZTpdKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OndyaXRlVG9VUkxGb3JGaWxlUHJvbWlzZVByb3ZpZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgICgtW1dLUHJv
bWlzZWRBdHRhY2htZW50Q29udGV4dCBpbml0V2l0aElkZW50aWZpZXI6YmxvYlVSTDpmaWxlTmFt
ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGJs
b2JVUkxdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcHJlcGFyZVRvRHJhZ1By
b21pc2VkQXR0YWNobWVudDpdKToKKwogMjAyMS0wNC0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBzb21lIHN1cHBvcnQgZm9y
IHdlYnBhZ2UgdHJhbnNsYXRpb24gaW4gV2ViS2l0TGVnYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKaW5kZXggNWQzNGIyM2E3NDZkOTFhYTYxN2RmMTEwOTA3NzAxYTZlYTc0ZDJhZi4uYTY3
ZDZkZWEwMDRkMmU0MTZkZjAxOWNiYjU2ZWMwMzdmYzUyYzhhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcApAQCAtNDExMSw5ICs0MTExLDkgQEAgUHJvbWlzZWRBdHRhY2htZW50SW5mbyBF
ZGl0b3I6OnByb21pc2VkQXR0YWNobWVudEluZm8oRWxlbWVudCYgZWxlbWVudCkKICNlbmRpZgog
CiAgICAgaWYgKGF1dG8qIGZpbGUgPSBhdHRhY2htZW50LT5maWxlKCkpCi0gICAgICAgIHJldHVy
biB7IGZpbGUtPnVybCgpLCBwbGF0Zm9ybUNvbnRlbnRUeXBlRm9yQmxvYlR5cGUoZmlsZS0+dHlw
ZSgpKSwgZmlsZS0+bmFtZSgpLCB7IH0sIFdURk1vdmUoYWRkaXRpb25hbFR5cGVzKSwgV1RGTW92
ZShhZGRpdGlvbmFsRGF0YSkgfTsKKyAgICAgICAgcmV0dXJuIHsgcGxhdGZvcm1Db250ZW50VHlw
ZUZvckJsb2JUeXBlKGZpbGUtPnR5cGUoKSksIGZpbGUtPm5hbWUoKSwgeyB9LCBXVEZNb3ZlKGFk
ZGl0aW9uYWxUeXBlcyksIFdURk1vdmUoYWRkaXRpb25hbERhdGEpIH07CiAKLSAgICByZXR1cm4g
eyB7IH0sIHsgfSwgeyB9LCBhdHRhY2htZW50LT51bmlxdWVJZGVudGlmaWVyKCksIFdURk1vdmUo
YWRkaXRpb25hbFR5cGVzKSwgV1RGTW92ZShhZGRpdGlvbmFsRGF0YSkgfTsKKyAgICByZXR1cm4g
eyB7IH0sIHsgfSwgYXR0YWNobWVudC0+dW5pcXVlSWRlbnRpZmllcigpLCBXVEZNb3ZlKGFkZGl0
aW9uYWxUeXBlcyksIFdURk1vdmUoYWRkaXRpb25hbERhdGEpIH07CiB9CiAKIHZvaWQgRWRpdG9y
OjpyZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFt
ZSwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUHJvbWlzZWRBdHRhY2htZW50SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHJvbWlzZWRBdHRhY2htZW50SW5mby5oCmluZGV4IGE5NThjMmYwYWIyZDlmMWYzNzY2MmE3
YTBiNjAyYmUzMTM0MzA3YjUuLmFjNzM0MjIyNmJkNDFiNDRmNGFkNzk2YWZiM2JiOWEyZTMzMjM3
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2VkQXR0YWNobWVu
dEluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJ
bmZvLmgKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2hhcmVk
QnVmZmVyOwogCiBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbyB7Ci0gICAgVVJMIGJsb2JV
Ukw7CiAgICAgU3RyaW5nIGNvbnRlbnRUeXBlOwogICAgIFN0cmluZyBmaWxlTmFtZTsKIApAQCAt
NTAsOCArNDksNyBAQCBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbyB7CiAgICAgICAgIGlm
ICghYXR0YWNobWVudElkZW50aWZpZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAjZW5kaWYKLQotICAgICAgICByZXR1cm4gIWNvbnRlbnRUeXBlLmlzRW1wdHkoKSAmJiAh
YmxvYlVSTC5pc0VtcHR5KCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBm
NjUxMTZmZjlkNmIwM2IxYTMzMzFjZGJmMzZlNDdkOGE0MTE4Y2I1Li41NjZiZjkyMzAxODVkNzUw
Y2Y4MTU5NTUxMWE1N2NkYmZlNmM3NjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTI4ODIsNyArMjg4Miw2IEBAIE9wdGlvbmFsPE1l
ZGlhU2VsZWN0aW9uT3B0aW9uPiBBcmd1bWVudENvZGVyPE1lZGlhU2VsZWN0aW9uT3B0aW9uPjo6
ZGVjb2RlKERlY29kCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJbmZv
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFByb21pc2VkQXR0YWNobWVudEluZm8m
IGluZm8pCiB7Ci0gICAgZW5jb2RlciA8PCBpbmZvLmJsb2JVUkw7CiAgICAgZW5jb2RlciA8PCBp
bmZvLmNvbnRlbnRUeXBlOwogICAgIGVuY29kZXIgPDwgaW5mby5maWxlTmFtZTsKICNpZiBFTkFC
TEUoQVRUQUNITUVOVF9FTEVNRU5UKQpAQCAtMjg5Myw5ICsyODkyLDYgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPFByb21pc2VkQXR0YWNobWVudEluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgUHJvbWkKIAogYm9vbCBBcmd1bWVudENvZGVyPFByb21pc2VkQXR0YWNobWVudEluZm8+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUHJvbWlzZWRBdHRhY2htZW50SW5mbyYgaW5mbykK
IHsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uYmxvYlVSTCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5jb250ZW50VHlwZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQppbmRleCBhNDE4NDNlYTIwMDdmMGM2NTZjNjA1YTk4ZTM4NWE3NGEzODBm
MDNhLi43YjlkZGIxYWRmOWEyODg3ZjZjYjBjOTQxOWIxZGNiZmVlZjQ5NTAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtODg1LDE0ICs4ODUs
MTIgQEAgQGVuZAogCiBAaW50ZXJmYWNlIFdLUHJvbWlzZWRBdHRhY2htZW50Q29udGV4dCA6IE5T
T2JqZWN0IHsKIEBwcml2YXRlCi0gICAgUmV0YWluUHRyPE5TVVJMPiBfYmxvYlVSTDsKICAgICBS
ZXRhaW5QdHI8TlNTdHJpbmc+IF9maWxlTmFtZTsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9h
dHRhY2htZW50SWRlbnRpZmllcjsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSWRlbnRp
ZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGJsb2JVUkw6KE5TVVJMICopdXJsIGZpbGVOYW1l
OihOU1N0cmluZyAqKWZpbGVOYW1lOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSWRlbnRpZmll
cjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGZpbGVOYW1lOihOU1N0cmluZyAqKWZpbGVOYW1lOwog
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpibG9iVVJMOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqZmlsZU5hbWU7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICphdHRhY2htZW50SWRlbnRpZmllcjsKIApA
QCAtOTAwLDIyICs4OTgsMTYgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tQcm9taXNlZEF0
dGFjaG1lbnRDb250ZXh0CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aElkZW50aWZpZXI6KE5T
U3RyaW5nICopaWRlbnRpZmllciBibG9iVVJMOihOU1VSTCAqKWJsb2JVUkwgZmlsZU5hbWU6KE5T
U3RyaW5nICopZmlsZU5hbWUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aElkZW50aWZpZXI6KE5T
U3RyaW5nICopaWRlbnRpZmllciBmaWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZQogewogICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAg
X2Jsb2JVUkwgPSBibG9iVVJMOwogICAgIF9maWxlTmFtZSA9IGZpbGVOYW1lOwogICAgIF9hdHRh
Y2htZW50SWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0g
KE5TVVJMICopYmxvYlVSTAotewotICAgIHJldHVybiBfYmxvYlVSTC5nZXQoKTsKLX0KLQogLSAo
TlNTdHJpbmcgKilmaWxlTmFtZQogewogICAgIHJldHVybiBfZmlsZU5hbWUuZ2V0KCk7CkBAIC00
MjM0LDEyICs0MjI2LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6d3JpdGVUb1VSTEZvckZpbGVQcm9t
aXNlUHJvdmlkZXIoTlNGaWxlUHJvbWlzZVByb3ZpZGVyICpwcm92aWQKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFVSTCBibG9iVVJMIHsgaW5mby5ibG9iVVJMIH07Ci0gICAgaWYgKGJs
b2JVUkwuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdlYktpdFVua25v
d25FcnJvcigpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGNvbXBsZXRpb25IYW5k
bGVyKHdlYktpdFVua25vd25FcnJvcigpKTsKIH0KIApAQCAtNDI5OCw3ICs0Mjg0LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVtLCBj
b25zdCBTaGFyZWFibGVCaXRtYXAKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gcHJvdmlkZXIg
PSBhZG9wdE5TKFtbTlNGaWxlUHJvbWlzZVByb3ZpZGVyIGFsbG9jXSBpbml0V2l0aEZpbGVUeXBl
OnV0aVR5cGUgZGVsZWdhdGU6KGlkIDxOU0ZpbGVQcm9taXNlUHJvdmlkZXJEZWxlZ2F0ZT4pbV92
aWV3LmdldEF1dG9yZWxlYXNlZCgpXSk7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0TlMo
W1tXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgYWxsb2NdIGluaXRXaXRoSWRlbnRpZmllcjpp
bmZvLmF0dGFjaG1lbnRJZGVudGlmaWVyIGJsb2JVUkw6aW5mby5ibG9iVVJMIGZpbGVOYW1lOmZp
bGVOYW1lXSk7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0TlMoW1tXS1Byb21pc2VkQXR0
YWNobWVudENvbnRleHQgYWxsb2NdIGluaXRXaXRoSWRlbnRpZmllcjppbmZvLmF0dGFjaG1lbnRJ
ZGVudGlmaWVyIGZpbGVOYW1lOmZpbGVOYW1lXSk7CiAgICAgICAgIFtwcm92aWRlciBzZXRVc2Vy
SW5mbzpjb250ZXh0LmdldCgpXTsKICAgICAgICAgYXV0byBkcmFnZ2luZ0l0ZW0gPSBhZG9wdE5T
KFtbTlNEcmFnZ2luZ0l0ZW0gYWxsb2NdIGluaXRXaXRoUGFzdGVib2FyZFdyaXRlcjpwcm92aWRl
ci5nZXQoKV0pOwogICAgICAgICBbZHJhZ2dpbmdJdGVtIHNldERyYWdnaW5nRnJhbWU6TlNNYWtl
UmVjdChjbGllbnREcmFnTG9jYXRpb24ueCgpLCBjbGllbnREcmFnTG9jYXRpb24ueSgpIC0gc2l6
ZS5oZWlnaHQoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBjb250ZW50czpkcmFnTlNJ
bWFnZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4Y2ZjMTc3ZjA2ZjU3YzIyZDEwZGVlMWFj
ZjE0YTg2NmZlM2JiZWY0Li5lMmJkNmFkYjk2OGMzODNlZTA3NzViOWIyODcwMDAxMTliMzkzNzJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KQEAgLTgxNDksNyArODE0OSw3IEBAIC0gKHZvaWQpX3ByZXBhcmVU
b0RyYWdQcm9taXNlZEF0dGFjaG1lbnQ6KGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQXR0YWNobWVu
dEluZm8mCiAgICAgYXV0byBudW1iZXJPZkFkZGl0aW9uYWxUeXBlcyA9IGluZm8uYWRkaXRpb25h
bFR5cGVzLnNpemUoKTsKICAgICBBU1NFUlQobnVtYmVyT2ZBZGRpdGlvbmFsVHlwZXMgPT0gaW5m
by5hZGRpdGlvbmFsRGF0YS5zaXplKCkpOwogCi0gICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3As
ICJEcmFnIHNlc3Npb246ICVwIHByZXBhcmluZyB0byBkcmFnIGJsb2I6ICVzIHdpdGggYXR0YWNo
bWVudCBpZGVudGlmaWVyOiAlcyIsIHNlc3Npb24uZ2V0KCksIGluZm8uYmxvYlVSTC5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBpbmZvLmF0dGFjaG1lbnRJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkp
OworICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRHJhZyBzZXNzaW9uOiAlcCBwcmVwYXJp
bmcgdG8gZHJhZyB3aXRoIGF0dGFjaG1lbnQgaWRlbnRpZmllcjogJXMiLCBzZXNzaW9uLmdldCgp
LCBpbmZvLmF0dGFjaG1lbnRJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgTlNTdHJp
bmcgKnV0aVR5cGUgPSBpbmZvLmNvbnRlbnRUeXBlOwogICAgIE5TU3RyaW5nICpmaWxlTmFtZSA9
IGluZm8uZmlsZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggNTE5MmY4MWU4MGU4ODNmNzgzYTRmNWY5OGY3ZDJhZjRiYmNhYTYyNy4uNmU2
ODU2ODE5ZmM3YzFhZmJiMGYzZTZlZWQyOGJkYTYxNGY4MjM0NSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0
LTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJl
bW92ZSBQcm9taXNlZEF0dGFjaG1lbnRJbmZvOjpibG9iVVJMIGFuZCBhZGphY2VudCBjb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5l
IGEgY291cGxlIG9mIGlPUyBXS0F0dGFjaG1lbnQgdGVzdHMgdGhhdCBhcmUgZmFpbGluZyBvbiBy
ZWNlbnQgdmVyc2lvbnMgb2YgdGhlIGlPUyBTREsuIFRoZSBjb250ZW50CisgICAgICAgIHR5cGUg
b2YgdGV4dCBmaWxlcyB0aGF0IGFyZSBpbnNlcnRlZCBhcyBhdHRhY2htZW50cyBpcyBub3cgYSBN
SU1FIHR5cGUgcmF0aGVyIHRoYW4gYSBVVEksIHdoaWNoIGlzIHN0aWxsIHZhbGlkCisgICAgICAg
IHNpbmNlIGl0IGlzIHZhbGlkIGZvciB0aGUgY29udGVudCB0eXBlIG9mIGFuIGF0dGFjaG1lbnQg
dG8gYmUgZWl0aGVyIGEgTUlNRSB0eXBlIG9yIFVUSS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0wNC0xNiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVf
Y2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIGFwcC1ib3VuZCByZXF1ZXN0IEFQ
SSB0ZXN0cyBvbiBzcGVjaWZpYyBPUyB2ZXJzaW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KaW5kZXgg
NzBlMTBmZmUxOTgyMGRjNmYzOGZjNTdlNGUzNThhY2I3YzZmYWNmYi4uZWUzMmMzOTNlNzRmYzdl
MzcwMWZlMzA5MWMyNjA4MDkxMzY0Yjk0YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCkBAIC0xODk2
LDcgKzE4OTYsOCBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkUmlj
aEFuZFBsYWluVGV4dEZpbGVzQXNBdHRhY2htZW50cykKICAgICBFWFBFQ1RfV0tfU1RSRVEoImhl
bGxvLnJ0ZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0aXRsZScp
Il0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlRmxh
dFJURkQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7
CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJ3b3JsZC50eHQiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcp
WzFdLmdldEF0dHJpYnV0ZSgndGl0bGUnKSJdKTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoKF9fYnJp
ZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50
JylbMV0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CisgICAgYXV0byBjb250ZW50VHlwZSA9IFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXTsKKyAgICBFWFBF
Q1RfVFJVRShbY29udGVudFR5cGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAq
KWtVVFR5cGVVVEY4UGxhaW5UZXh0XSB8fCBbY29udGVudFR5cGUgY29udGFpbnNTdHJpbmc6QCJ0
ZXh0L3BsYWluIl0pOwogfQogCiBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9w
cGVkWmlwQXJjaGl2ZUFzQXR0YWNobWVudCkKQEAgLTE5NTMsNyArMTk1NCw4IEBAIFRFU1QoV0tB
dHRhY2htZW50VGVzdHNJT1MsIEluc2VydERyb3BwZWRJdGVtUHJvdmlkZXJzSW5PcmRlcikKICAg
ICBbd2ViVmlldyBleHBlY3RFbGVtZW50VGFnc0luT3JkZXI6QFsgQCJBVFRBQ0hNRU5UIiwgQCJB
IiwgQCJBVFRBQ0hNRU5UIiBdXTsKIAogICAgIEVYUEVDVF9XS19TVFJFUSgiZmlyc3QudHh0Iiwg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykiXSk7Ci0gICAg
RVhQRUNUX1dLX1NUUkVRKChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0
LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzBdLmdldEF0dHJpYnV0ZSgndHlwZScpIl0pOworICAg
IGF1dG8gY29udGVudFR5cGUgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzBdLmdldEF0dHJpYnV0
ZSgndHlwZScpIl07CisgICAgRVhQRUNUX1RSVUUoW2NvbnRlbnRUeXBlIGlzRXF1YWxUb1N0cmlu
ZzooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBsYWluVGV4dF0gfHwgW2NvbnRlbnRU
eXBlIGNvbnRhaW5zU3RyaW5nOkAidGV4dC9wbGFpbiJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEo
W2FwcGxlVVJMIGFic29sdXRlU3RyaW5nXSwgW3dlYlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpAImhy
ZWYiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgic2Vjb25k
LnBkZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0aXRsZScpIl0p
OwogICAgIEVYUEVDVF9XS19TVFJFUSgiYXBwbGljYXRpb24vcGRmIiwgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFj
aG1lbnQnKVsxXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426344</attachid>
            <date>2021-04-17 13:06:04 -0700</date>
            <delta_ts>2021-04-17 13:51:03 -0700</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-224720-20210417130604.patch</filename>
            <type>text/plain</type>
            <size>12930</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y3NTdjYzYxNWE5OTgw
MGFlM2ZjMDIxMDgxYmYxZDQzMzM2ZWNiYi4uYmNkNjZlODhmYjY1ZjRkMjZmMjY1NWRkNGJhNjEy
MmM1NTFkYzQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTE3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQcm9t
aXNlZEF0dGFjaG1lbnRJbmZvOjpibG9iVVJMIGFuZCBhZGphY2VudCBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhpcyBtZW1iZXIg
b2YgYFByb21pc2VkQXR0YWNobWVudEluZm9gLiBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwcm9taXNlZEF0dGFjaG1lbnRJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9taXNlZEF0
dGFjaG1lbnRJbmZvOjpvcGVyYXRvciBib29sIGNvbnN0KToKKwogMjAyMS0wNC0xNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBz
b21lIHN1cHBvcnQgZm9yIHdlYnBhZ2UgdHJhbnNsYXRpb24gaW4gV2ViS2l0TGVnYWN5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGRkOTdjNzcwYTc4ZGM1NTVmODY2OTk5ZDFmNGRjYmJlYjRiMzU1YjEuLmRlMWFhMjQ5
MzgyZjJhMmRmZmRhZDJlNDRlNzBjOTkyMGFiOWZjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMjEtMDQtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFByb21pc2VkQXR0YWNobWVudEluZm86OmJsb2JVUkwgYW5kIGFkamFj
ZW50IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBgYmxvYlVSTGAgbWVtYmVyIG9mIGBQcm9taXNlZEF0dGFjaG1lbnRJbmZvYCB3YXMgb3Jp
Z2luYWxseSBpbnRyb2R1Y2VkIHRvIGZhY2lsaXRhdGUgZHJhZyBhbmQgZHJvcCBzdXBwb3J0Cisg
ICAgICAgIGZvciBhdHRhY2htZW50IGVsZW1lbnRzIGluIFdlYktpdDIsIGJ5IHdyaXRpbmcgYmxv
YiBVUkwgZGF0YSB0byB0ZW1wb3JhcnkgZmlsZSBwYXRocyBvbiBiZWhhbGYgb2YKKyAgICAgICAg
YE5TRmlsZVByb21pc2VQcm92aWRlcmAgd2hlbiBzdGFydGluZyBhIGRyYWcgb24gYXR0YWNobWVu
dCBlbGVtZW50cyBiYWNrZWQgYnkgYmxvYnMuIEhvd2V2ZXIsIHRoaXMgd2FzCisgICAgICAgIHN1
cGVyY2VkZWQgYnkgdXNlIG9mIGBOU0ZpbGVXcmFwcGVyYCBhbmQgdGhlIGBfV0tBdHRhY2htZW50
YCBTUEkgaW5zdGVhZCwgc3VjaCB0aGF0IHdlIG9ubHkgc3VwcG9ydCBkcmFnZ2luZworICAgICAg
ICBhdHRhY2htZW50IGVsZW1lbnRzIGlmIHRoZXkgY29ycmVzcG9uZCB0byBBUEkgYEF0dGFjaG1l
bnRgIG9iamVjdHMgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgQ29kZSB0aGF0IHV0aWxp
emVkIHRoaXMgbWVtYmVyIHdhcyBvcmlnaW5hbGx5IGludHJvZHVjZWQgaW4gPGh0dHBzOi8vdHJh
Yy53ZWJraXQub3JnL3IyMzUyMDI+LCBhbmQgd2FzCisgICAgICAgIHN1YnNlcXVlbnRseSByZW1v
dmVkIGluIDxodHRwczovL3RyYWMud2Via2l0Lm9yZy9yMjQwNjg3Pi4KKworICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPFByb21pc2VkQXR0YWNobWVudEluZm8+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFByb21pc2VkQXR0YWNobWVudEluZm8+OjpkZWNvZGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKC1bV0tQcm9taXNlZEF0dGFj
aG1lbnRDb250ZXh0IGluaXRXaXRoSWRlbnRpZmllcjpmaWxlTmFtZTpdKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OndyaXRlVG9VUkxGb3JGaWxlUHJvbWlzZVByb3ZpZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgICgtW1dLUHJv
bWlzZWRBdHRhY2htZW50Q29udGV4dCBpbml0V2l0aElkZW50aWZpZXI6YmxvYlVSTDpmaWxlTmFt
ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGJs
b2JVUkxdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcHJlcGFyZVRvRHJhZ1By
b21pc2VkQXR0YWNobWVudDpdKToKKwogMjAyMS0wNC0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBzb21lIHN1cHBvcnQgZm9y
IHdlYnBhZ2UgdHJhbnNsYXRpb24gaW4gV2ViS2l0TGVnYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKaW5kZXggN2YwZjAxYmRlODg0ZmU5MTMzYzBmMWJhZGQxYzQ2YWEzNmZlYzQ1NC4uYWI1
MzQ4ZGE1Mzc4ZWZlOGU2MzE4YTEyNmM5NTlhZDFmY2RlNGFmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcApAQCAtNDEyMSw5ICs0MTIxLDkgQEAgUHJvbWlzZWRBdHRhY2htZW50SW5mbyBF
ZGl0b3I6OnByb21pc2VkQXR0YWNobWVudEluZm8oRWxlbWVudCYgZWxlbWVudCkKICNlbmRpZgog
CiAgICAgaWYgKGF1dG8gZmlsZSA9IG1ha2VSZWZQdHIoYXR0YWNobWVudC0+ZmlsZSgpKSkKLSAg
ICAgICAgcmV0dXJuIHsgZmlsZS0+dXJsKCksIHBsYXRmb3JtQ29udGVudFR5cGVGb3JCbG9iVHlw
ZShmaWxlLT50eXBlKCkpLCBmaWxlLT5uYW1lKCksIHsgfSwgV1RGTW92ZShhZGRpdGlvbmFsVHlw
ZXMpLCBXVEZNb3ZlKGFkZGl0aW9uYWxEYXRhKSB9OworICAgICAgICByZXR1cm4geyBwbGF0Zm9y
bUNvbnRlbnRUeXBlRm9yQmxvYlR5cGUoZmlsZS0+dHlwZSgpKSwgZmlsZS0+bmFtZSgpLCB7IH0s
IFdURk1vdmUoYWRkaXRpb25hbFR5cGVzKSwgV1RGTW92ZShhZGRpdGlvbmFsRGF0YSkgfTsKIAot
ICAgIHJldHVybiB7IHsgfSwgeyB9LCB7IH0sIGF0dGFjaG1lbnQtPnVuaXF1ZUlkZW50aWZpZXIo
KSwgV1RGTW92ZShhZGRpdGlvbmFsVHlwZXMpLCBXVEZNb3ZlKGFkZGl0aW9uYWxEYXRhKSB9Owor
ICAgIHJldHVybiB7IHsgfSwgeyB9LCBhdHRhY2htZW50LT51bmlxdWVJZGVudGlmaWVyKCksIFdU
Rk1vdmUoYWRkaXRpb25hbFR5cGVzKSwgV1RGTW92ZShhZGRpdGlvbmFsRGF0YSkgfTsKIH0KIAog
dm9pZCBFZGl0b3I6OnJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIHByZWZl
cnJlZEZpbGVOYW1lLCBSZWY8U2hhcmVkQnVmZmVyPiYmIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKaW5kZXggYTk1OGMyZjBhYjJk
OWYxZjM3NjYyYTdhMGI2MDJiZTMxMzQzMDdiNS4uYWM3MzQyMjI2YmQ0MWI0NGY0YWQ3OTZhZmIz
YmI5YTJlMzMyMzdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvbWlz
ZWRBdHRhY2htZW50SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2Vk
QXR0YWNobWVudEluZm8uaApAQCAtMzMsNyArMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBTaGFyZWRCdWZmZXI7CiAKIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvIHsKLSAg
ICBVUkwgYmxvYlVSTDsKICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAgICAgU3RyaW5nIGZpbGVO
YW1lOwogCkBAIC01MCw4ICs0OSw3IEBAIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvIHsK
ICAgICAgICAgaWYgKCFhdHRhY2htZW50SWRlbnRpZmllci5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotCi0gICAgICAgIHJldHVybiAhY29udGVudFR5cGUuaXNF
bXB0eSgpICYmICFibG9iVVJMLmlzRW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCmluZGV4IGY2NTExNmZmOWQ2YjAzYjFhMzMzMWNkYmYzNmU0N2Q4YTQxMThjYjUuLjU2NmJm
OTIzMDE4NWQ3NTBjZjgxNTk1NTExYTU3Y2RiZmU2Yzc2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjg4Miw3ICsyODgyLDYgQEAg
T3B0aW9uYWw8TWVkaWFTZWxlY3Rpb25PcHRpb24+IEFyZ3VtZW50Q29kZXI8TWVkaWFTZWxlY3Rp
b25PcHRpb24+OjpkZWNvZGUoRGVjb2QKIAogdm9pZCBBcmd1bWVudENvZGVyPFByb21pc2VkQXR0
YWNobWVudEluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUHJvbWlzZWRBdHRh
Y2htZW50SW5mbyYgaW5mbykKIHsKLSAgICBlbmNvZGVyIDw8IGluZm8uYmxvYlVSTDsKICAgICBl
bmNvZGVyIDw8IGluZm8uY29udGVudFR5cGU7CiAgICAgZW5jb2RlciA8PCBpbmZvLmZpbGVOYW1l
OwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCkBAIC0yODkzLDkgKzI4OTIsNiBAQCB2
b2lkIEFyZ3VtZW50Q29kZXI8UHJvbWlzZWRBdHRhY2htZW50SW5mbz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBQcm9taQogCiBib29sIEFyZ3VtZW50Q29kZXI8UHJvbWlzZWRBdHRh
Y2htZW50SW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvJiBpbmZvKQogewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5ibG9iVVJMKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbnRl
bnRUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGE0MTg0M2VhMjAwN2YwYzY1NmM2MDVhOThl
Mzg1YTc0YTM4MGYwM2EuLjdiOWRkYjFhZGY5YTI4ODdmNmNiMGM5NDE5YjFkY2JmZWVmNDk1MDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC04
ODUsMTQgKzg4NSwxMiBAQCBAZW5kCiAKIEBpbnRlcmZhY2UgV0tQcm9taXNlZEF0dGFjaG1lbnRD
b250ZXh0IDogTlNPYmplY3QgewogQHByaXZhdGUKLSAgICBSZXRhaW5QdHI8TlNVUkw+IF9ibG9i
VVJMOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gX2ZpbGVOYW1lOwogICAgIFJldGFpblB0cjxO
U1N0cmluZz4gX2F0dGFjaG1lbnRJZGVudGlmaWVyOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgYmxvYlVSTDooTlNVUkwgKil1
cmwgZmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZU5hbWU7CistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgZmlsZU5hbWU6KE5TU3RyaW5nICop
ZmlsZU5hbWU7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKmJsb2JV
Ukw7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpmaWxlTmFtZTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmF0dGFjaG1lbnRJZGVu
dGlmaWVyOwogCkBAIC05MDAsMjIgKzg5OCwxNiBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBX
S1Byb21pc2VkQXR0YWNobWVudENvbnRleHQKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSWRl
bnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGJsb2JVUkw6KE5TVVJMICopYmxvYlVSTCBm
aWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSWRl
bnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGZpbGVOYW1lOihOU1N0cmluZyAqKWZpbGVO
YW1lCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBfYmxvYlVSTCA9IGJsb2JVUkw7CiAgICAgX2ZpbGVOYW1lID0gZmlsZU5hbWU7
CiAgICAgX2F0dGFjaG1lbnRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAotLSAoTlNVUkwgKilibG9iVVJMCi17Ci0gICAgcmV0dXJuIF9ibG9iVVJMLmdldCgp
OwotfQotCiAtIChOU1N0cmluZyAqKWZpbGVOYW1lCiB7CiAgICAgcmV0dXJuIF9maWxlTmFtZS5n
ZXQoKTsKQEAgLTQyMzQsMTIgKzQyMjYsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjp3cml0ZVRvVVJM
Rm9yRmlsZVByb21pc2VQcm92aWRlcihOU0ZpbGVQcm9taXNlUHJvdmlkZXIgKnByb3ZpZAogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgVVJMIGJsb2JVUkwgeyBpbmZvLmJsb2JVUkwgfTsK
LSAgICBpZiAoYmxvYlVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
d2ViS2l0VW5rbm93bkVycm9yKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgY29t
cGxldGlvbkhhbmRsZXIod2ViS2l0VW5rbm93bkVycm9yKCkpOwogfQogCkBAIC00Mjk4LDcgKzQy
ODQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0l0
ZW0mIGl0ZW0sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcAogICAgICAgICB9CiAKICAgICAgICAgYXV0
byBwcm92aWRlciA9IGFkb3B0TlMoW1tOU0ZpbGVQcm9taXNlUHJvdmlkZXIgYWxsb2NdIGluaXRX
aXRoRmlsZVR5cGU6dXRpVHlwZSBkZWxlZ2F0ZTooaWQgPE5TRmlsZVByb21pc2VQcm92aWRlckRl
bGVnYXRlPiltX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCldKTsKLSAgICAgICAgYXV0byBjb250ZXh0
ID0gYWRvcHROUyhbW1dLUHJvbWlzZWRBdHRhY2htZW50Q29udGV4dCBhbGxvY10gaW5pdFdpdGhJ
ZGVudGlmaWVyOmluZm8uYXR0YWNobWVudElkZW50aWZpZXIgYmxvYlVSTDppbmZvLmJsb2JVUkwg
ZmlsZU5hbWU6ZmlsZU5hbWVdKTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHROUyhbW1dL
UHJvbWlzZWRBdHRhY2htZW50Q29udGV4dCBhbGxvY10gaW5pdFdpdGhJZGVudGlmaWVyOmluZm8u
YXR0YWNobWVudElkZW50aWZpZXIgZmlsZU5hbWU6ZmlsZU5hbWVdKTsKICAgICAgICAgW3Byb3Zp
ZGVyIHNldFVzZXJJbmZvOmNvbnRleHQuZ2V0KCldOwogICAgICAgICBhdXRvIGRyYWdnaW5nSXRl
bSA9IGFkb3B0TlMoW1tOU0RyYWdnaW5nSXRlbSBhbGxvY10gaW5pdFdpdGhQYXN0ZWJvYXJkV3Jp
dGVyOnByb3ZpZGVyLmdldCgpXSk7CiAgICAgICAgIFtkcmFnZ2luZ0l0ZW0gc2V0RHJhZ2dpbmdG
cmFtZTpOU01ha2VSZWN0KGNsaWVudERyYWdMb2NhdGlvbi54KCksIGNsaWVudERyYWdMb2NhdGlv
bi55KCkgLSBzaXplLmhlaWdodCgpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIGNvbnRl
bnRzOmRyYWdOU0ltYWdlLmdldCgpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDhjZmMxNzdmMDZmNTdj
MjJkMTBkZWUxYWNmMTRhODY2ZmUzYmJlZjQuLmUyYmQ2YWRiOTY4YzM4M2VlMDc3NWI5YjI4NzAw
MDExOWIzOTM3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtODE0OSw3ICs4MTQ5LDcgQEAgLSAodm9p
ZClfcHJlcGFyZVRvRHJhZ1Byb21pc2VkQXR0YWNobWVudDooY29uc3QgV2ViQ29yZTo6UHJvbWlz
ZWRBdHRhY2htZW50SW5mbyYKICAgICBhdXRvIG51bWJlck9mQWRkaXRpb25hbFR5cGVzID0gaW5m
by5hZGRpdGlvbmFsVHlwZXMuc2l6ZSgpOwogICAgIEFTU0VSVChudW1iZXJPZkFkZGl0aW9uYWxU
eXBlcyA9PSBpbmZvLmFkZGl0aW9uYWxEYXRhLnNpemUoKSk7CiAKLSAgICBSRUxFQVNFX0xPRyhE
cmFnQW5kRHJvcCwgIkRyYWcgc2Vzc2lvbjogJXAgcHJlcGFyaW5nIHRvIGRyYWcgYmxvYjogJXMg
d2l0aCBhdHRhY2htZW50IGlkZW50aWZpZXI6ICVzIiwgc2Vzc2lvbi5nZXQoKSwgaW5mby5ibG9i
VVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGluZm8uYXR0YWNobWVudElkZW50aWZpZXIudXRm
OCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb246
ICVwIHByZXBhcmluZyB0byBkcmFnIHdpdGggYXR0YWNobWVudCBpZGVudGlmaWVyOiAlcyIsIHNl
c3Npb24uZ2V0KCksIGluZm8uYXR0YWNobWVudElkZW50aWZpZXIudXRmOCgpLmRhdGEoKSk7CiAK
ICAgICBOU1N0cmluZyAqdXRpVHlwZSA9IGluZm8uY29udGVudFR5cGU7CiAgICAgTlNTdHJpbmcg
KmZpbGVOYW1lID0gaW5mby5maWxlTmFtZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMzZhNjU3M2M0NWQzODQ4MjQwZDNmY2MwY2M0MzMwN2Q1
MGUwYjM3Li4yZTM5ZjE1NjMxOTJiYmJhNTAxZGYxNDVjZjRmODZjNzNhM2NkM2JlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjEtMDQtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFByb21pc2VkQXR0YWNobWVudEluZm86OmJsb2JVUkwgYW5kIGFkamFj
ZW50IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlYmFzZWxpbmUgYSBjb3VwbGUgb2YgaU9TIFdLQXR0YWNobWVudCB0ZXN0cyB0aGF0IGFyZSBm
YWlsaW5nIG9uIHJlY2VudCB2ZXJzaW9ucyBvZiB0aGUgaU9TIFNESy4gVGhlIGNvbnRlbnQKKyAg
ICAgICAgdHlwZSBvZiB0ZXh0IGZpbGVzIHRoYXQgYXJlIGluc2VydGVkIGFzIGF0dGFjaG1lbnRz
IGlzIG5vdyBhIE1JTUUgdHlwZSByYXRoZXIgdGhhbiBhIFVUSSwgd2hpY2ggaXMgc3RpbGwgdmFs
aWQKKyAgICAgICAgc2luY2UgaXQgaXMgdmFsaWQgZm9yIHRoZSBjb250ZW50IHR5cGUgb2YgYW4g
YXR0YWNobWVudCB0byBiZSBlaXRoZXIgYSBNSU1FIHR5cGUgb3IgVVRJLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA0LTE3ICBBYWthc2ggSmFpbiAg
PGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgY29uZmlndXJlIEphbml0
b3IgdG8gZGVsZXRlIG9sZCBsb2dzIGluIGxvY2FsIHRlc3RpbmcgbW9kZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVz
dHMubW0KaW5kZXggNzBlMTBmZmUxOTgyMGRjNmYzOGZjNTdlNGUzNThhY2I3YzZmYWNmYi4uZWUz
MmMzOTNlNzRmYzdlMzcwMWZlMzA5MWMyNjA4MDkxMzY0Yjk0YSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3Rz
Lm1tCkBAIC0xODk2LDcgKzE4OTYsOCBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNl
cnREcm9wcGVkUmljaEFuZFBsYWluVGV4dEZpbGVzQXNBdHRhY2htZW50cykKICAgICBFWFBFQ1Rf
V0tfU1RSRVEoImhlbGxvLnJ0ZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmli
dXRlKCd0aXRsZScpIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgoX19icmlkZ2UgTlNTdHJpbmcg
KilrVVRUeXBlRmxhdFJURkQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRl
KCd0eXBlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJ3b3JsZC50eHQiLCBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
YXR0YWNobWVudCcpWzFdLmdldEF0dHJpYnV0ZSgndGl0bGUnKSJdKTsKLSAgICBFWFBFQ1RfV0tf
U1RSRVEoKF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQsIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CisgICAgYXV0byBjb250
ZW50VHlwZSA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0eXBlJyki
XTsKKyAgICBFWFBFQ1RfVFJVRShbY29udGVudFR5cGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRn
ZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0XSB8fCBbY29udGVudFR5cGUgY29udGFp
bnNTdHJpbmc6QCJ0ZXh0L3BsYWluIl0pOwogfQogCiBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9T
LCBJbnNlcnREcm9wcGVkWmlwQXJjaGl2ZUFzQXR0YWNobWVudCkKQEAgLTE5NTMsNyArMTk1NCw4
IEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHNJT1MsIEluc2VydERyb3BwZWRJdGVtUHJvdmlkZXJz
SW5PcmRlcikKICAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50VGFnc0luT3JkZXI6QFsgQCJBVFRB
Q0hNRU5UIiwgQCJBIiwgQCJBVFRBQ0hNRU5UIiBdXTsKIAogICAgIEVYUEVDVF9XS19TVFJFUSgi
Zmlyc3QudHh0IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3RpdGxl
JykiXSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVV
VEY4UGxhaW5UZXh0LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzBdLmdldEF0dHJpYnV0ZSgndHlw
ZScpIl0pOworICAgIGF1dG8gY29udGVudFR5cGUgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzBd
LmdldEF0dHJpYnV0ZSgndHlwZScpIl07CisgICAgRVhQRUNUX1RSVUUoW2NvbnRlbnRUeXBlIGlz
RXF1YWxUb1N0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBsYWluVGV4dF0g
fHwgW2NvbnRlbnRUeXBlIGNvbnRhaW5zU3RyaW5nOkAidGV4dC9wbGFpbiJdKTsKICAgICBFWFBF
Q1RfV0tfU1RSRVEoW2FwcGxlVVJMIGFic29sdXRlU3RyaW5nXSwgW3dlYlZpZXcgdmFsdWVPZkF0
dHJpYnV0ZTpAImhyZWYiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhIl0pOwogICAgIEVYUEVDVF9XS19T
VFJFUSgic2Vjb25kLnBkZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRl
KCd0aXRsZScpIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgiYXBwbGljYXRpb24vcGRmIiwgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoJ2F0dGFjaG1lbnQnKVsxXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426347</attachid>
            <date>2021-04-17 13:51:05 -0700</date>
            <delta_ts>2021-04-17 14:44:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224720-20210417135104.patch</filename>
            <type>text/plain</type>
            <size>14135</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y3NTdjYzYxNWE5OTgw
MGFlM2ZjMDIxMDgxYmYxZDQzMzM2ZWNiYi4uYmNkNjZlODhmYjY1ZjRkMjZmMjY1NWRkNGJhNjEy
MmM1NTFkYzQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTE3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQcm9t
aXNlZEF0dGFjaG1lbnRJbmZvOjpibG9iVVJMIGFuZCBhZGphY2VudCBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhpcyBtZW1iZXIg
b2YgYFByb21pc2VkQXR0YWNobWVudEluZm9gLiBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwcm9taXNlZEF0dGFjaG1lbnRJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9taXNlZEF0
dGFjaG1lbnRJbmZvOjpvcGVyYXRvciBib29sIGNvbnN0KToKKwogMjAyMS0wNC0xNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBz
b21lIHN1cHBvcnQgZm9yIHdlYnBhZ2UgdHJhbnNsYXRpb24gaW4gV2ViS2l0TGVnYWN5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGRkOTdjNzcwYTc4ZGM1NTVmODY2OTk5ZDFmNGRjYmJlYjRiMzU1YjEuLjNlOTFhNjZm
YjIxODg3M2I5ZWMyMzMwNGNiMWY3ZmY5NTU5N2UwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMjEtMDQtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFByb21pc2VkQXR0YWNobWVudEluZm86OmJsb2JVUkwgYW5kIGFkamFj
ZW50IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBgYmxvYlVSTGAgbWVtYmVyIG9mIGBQcm9taXNlZEF0dGFjaG1lbnRJbmZvYCB3YXMgb3Jp
Z2luYWxseSBpbnRyb2R1Y2VkIHRvIGZhY2lsaXRhdGUgZHJhZyBhbmQgZHJvcCBzdXBwb3J0Cisg
ICAgICAgIGZvciBhdHRhY2htZW50IGVsZW1lbnRzIGluIFdlYktpdDIsIGJ5IHdyaXRpbmcgYmxv
YiBVUkwgZGF0YSB0byB0ZW1wb3JhcnkgZmlsZSBwYXRocyBvbiBiZWhhbGYgb2YKKyAgICAgICAg
YE5TRmlsZVByb21pc2VQcm92aWRlcmAgd2hlbiBzdGFydGluZyBhIGRyYWcgb24gYXR0YWNobWVu
dCBlbGVtZW50cyBiYWNrZWQgYnkgYmxvYnMuIEhvd2V2ZXIsIHRoaXMgd2FzCisgICAgICAgIHN1
cGVyY2VkZWQgYnkgdXNlIG9mIGBOU0ZpbGVXcmFwcGVyYCBhbmQgdGhlIGBfV0tBdHRhY2htZW50
YCBTUEkgaW5zdGVhZCwgc3VjaCB0aGF0IHdlIG9ubHkgc3VwcG9ydCBkcmFnZ2luZworICAgICAg
ICBhdHRhY2htZW50IGVsZW1lbnRzIGlmIHRoZXkgY29ycmVzcG9uZCB0byBBUEkgYEF0dGFjaG1l
bnRgIG9iamVjdHMgaW4gdGhlIFVJIHByb2Nlc3MuIFRoaXMgbWVhbnMgd2UgY2FuIHJlbW92ZQor
ICAgICAgICB0aGlzIGBibG9iVVJMYCwgYWxvbmcgd2l0aCB0aGUgZmlsZSBuYW1lIGFuZCBjb250
ZW50IHR5cGUgbWVtYmVycyBvZiB0aGUgc3RydWN0ICh3aGljaCB3ZXJlIG9ubHkgYWRkZWQgdG8K
KyAgICAgICAgc3VwcG9ydCB0aGUgYWJpbGl0eSB0byBkcmFnIGJsb2ItYmFja2VkIGF0dGFjaG1l
bnRzKS4KKworICAgICAgICBDb2RlIHRoYXQgdXRpbGl6ZWQgdGhpcyBtZW1iZXIgd2FzIG9yaWdp
bmFsbHkgaW50cm9kdWNlZCBpbiA8aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvcjIzNTIwMj4sIGFu
ZCB3YXMKKyAgICAgICAgc3Vic2VxdWVudGx5IHJlbW92ZWQgaW4gPGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL3IyNDA2ODc+LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRBdHRhY2htZW50SW5m
bz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRBdHRhY2ht
ZW50SW5mbz46OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tOgorICAgICAgICAoLVtXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgaW5pdFdpdGhJZGVu
dGlmaWVyOmZpbGVOYW1lOl0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d3JpdGVU
b1VSTEZvckZpbGVQcm9taXNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c3RhcnREcmFnKToKKyAgICAgICAgKC1bV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGlu
aXRXaXRoSWRlbnRpZmllcjpibG9iVVJMOmZpbGVOYW1lOl0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgYmxvYlVSTF0pOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9wcmVwYXJlVG9EcmFnUHJvbWlzZWRBdHRhY2htZW50Ol0pOgorCiAy
MDIxLTA0LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gQWRkIHNvbWUgc3VwcG9ydCBmb3Igd2VicGFnZSB0cmFuc2xhdGlvbiBpbiBX
ZWJLaXRMZWdhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3ZjBmMDFiZGU4ODRm
ZTkxMzNjMGYxYmFkZDFjNDZhYTM2ZmVjNDU0Li41MGJjY2IwOGUwMDAxZjMxNzYzYTRkNWY3Mjc0
ZGY1YjA1MzgxZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MTIwLDEwICs0
MTIwLDcgQEAgUHJvbWlzZWRBdHRhY2htZW50SW5mbyBFZGl0b3I6OnByb21pc2VkQXR0YWNobWVu
dEluZm8oRWxlbWVudCYgZWxlbWVudCkKICAgICBnZXRQYXN0ZWJvYXJkVHlwZXNBbmREYXRhRm9y
QXR0YWNobWVudChlbGVtZW50LCBhZGRpdGlvbmFsVHlwZXMsIGFkZGl0aW9uYWxEYXRhKTsKICNl
bmRpZgogCi0gICAgaWYgKGF1dG8gZmlsZSA9IG1ha2VSZWZQdHIoYXR0YWNobWVudC0+ZmlsZSgp
KSkKLSAgICAgICAgcmV0dXJuIHsgZmlsZS0+dXJsKCksIHBsYXRmb3JtQ29udGVudFR5cGVGb3JC
bG9iVHlwZShmaWxlLT50eXBlKCkpLCBmaWxlLT5uYW1lKCksIHsgfSwgV1RGTW92ZShhZGRpdGlv
bmFsVHlwZXMpLCBXVEZNb3ZlKGFkZGl0aW9uYWxEYXRhKSB9OwotCi0gICAgcmV0dXJuIHsgeyB9
LCB7IH0sIHsgfSwgYXR0YWNobWVudC0+dW5pcXVlSWRlbnRpZmllcigpLCBXVEZNb3ZlKGFkZGl0
aW9uYWxUeXBlcyksIFdURk1vdmUoYWRkaXRpb25hbERhdGEpIH07CisgICAgcmV0dXJuIHsgYXR0
YWNobWVudC0+dW5pcXVlSWRlbnRpZmllcigpLCBXVEZNb3ZlKGFkZGl0aW9uYWxUeXBlcyksIFdU
Rk1vdmUoYWRkaXRpb25hbERhdGEpIH07CiB9CiAKIHZvaWQgRWRpdG9yOjpyZWdpc3RlckF0dGFj
aG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwgUmVmPFNoYXJlZEJ1
ZmZlcj4mJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvbWlz
ZWRBdHRhY2htZW50SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvbWlzZWRBdHRh
Y2htZW50SW5mby5oCmluZGV4IGE5NThjMmYwYWIyZDlmMWYzNzY2MmE3YTBiNjAyYmUzMTM0MzA3
YjUuLjFlMTJiOTU1NTgwMjkyYzAzYTU3OGVmM2Y3OGIxNTdlZDVmZWMzMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2VkQXR0YWNobWVudEluZm8uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKQEAgLTMzLDEw
ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogc3Ry
dWN0IFByb21pc2VkQXR0YWNobWVudEluZm8gewotICAgIFVSTCBibG9iVVJMOwotICAgIFN0cmlu
ZyBjb250ZW50VHlwZTsKLSAgICBTdHJpbmcgZmlsZU5hbWU7Ci0KICNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQogICAgIFN0cmluZyBhdHRhY2htZW50SWRlbnRpZmllcjsKICNlbmRpZgpA
QCAtNTAsOCArNDYsNyBAQCBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbyB7CiAgICAgICAg
IGlmICghYXR0YWNobWVudElkZW50aWZpZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAjZW5kaWYKLQotICAgICAgICByZXR1cm4gIWNvbnRlbnRUeXBlLmlzRW1wdHkoKSAm
JiAhYmxvYlVSTC5pc0VtcHR5KCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBmNjUxMTZmZjlkNmIwM2IxYTMzMzFjZGJmMzZlNDdkOGE0MTE4Y2I1Li44NjAzZTUyZTQ2YzVj
MTZmYmEzMTk4YTM4ZmRiM2VkYTU5ODZmODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTI4ODIsOSArMjg4Miw2IEBAIE9wdGlvbmFs
PE1lZGlhU2VsZWN0aW9uT3B0aW9uPiBBcmd1bWVudENvZGVyPE1lZGlhU2VsZWN0aW9uT3B0aW9u
Pjo6ZGVjb2RlKERlY29kCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFByb21pc2VkQXR0YWNobWVudElu
Zm8mIGluZm8pCiB7Ci0gICAgZW5jb2RlciA8PCBpbmZvLmJsb2JVUkw7Ci0gICAgZW5jb2RlciA8
PCBpbmZvLmNvbnRlbnRUeXBlOwotICAgIGVuY29kZXIgPDwgaW5mby5maWxlTmFtZTsKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGVuY29kZXIgPDwgaW5mby5hdHRhY2htZW50
SWRlbnRpZmllcjsKICNlbmRpZgpAQCAtMjg5MywxNSArMjg5MCw2IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFByb21pCiAKIGJvb2wgQXJndW1lbnRDb2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJbmZvPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFByb21pc2VkQXR0YWNobWVudEluZm8mIGluZm8pCiB7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmJsb2JVUkwpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY29udGVudFR5cGUpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uZmlsZU5h
bWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5hdHRhY2htZW50SWRlbnRpZmllcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggYTQxODQzZWEyMDA3ZjBjNjU2YzYwNWE5OGUzODVhNzRhMzgw
ZjAzYS4uZWU4NTJiYjg2NGJkY2ViZThkNTdiOGVlMzEzNWZkMGVjNzAxMTJkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTg4NSwxNCArODg1
LDEyIEBAIEBlbmQKIAogQGludGVyZmFjZSBXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgOiBO
U09iamVjdCB7CiBAcHJpdmF0ZQotICAgIFJldGFpblB0cjxOU1VSTD4gX2Jsb2JVUkw7CiAgICAg
UmV0YWluUHRyPE5TU3RyaW5nPiBfZmlsZU5hbWU7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBf
YXR0YWNobWVudElkZW50aWZpZXI7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aElkZW50
aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBibG9iVVJMOihOU1VSTCAqKXVybCBmaWxlTmFt
ZTooTlNTdHJpbmcgKilmaWxlTmFtZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aElkZW50aWZp
ZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBmaWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZTsK
IAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqYmxvYlVSTDsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmZpbGVOYW1lOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqYXR0YWNobWVudElkZW50aWZpZXI7CiAK
QEAgLTkwMCwyMiArODk4LDE2IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLUHJvbWlzZWRB
dHRhY2htZW50Q29udGV4dAogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50aWZpZXIgYmxvYlVSTDooTlNVUkwgKilibG9iVVJMIGZpbGVOYW1lOihO
U1N0cmluZyAqKWZpbGVOYW1lCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50aWZpZXIgZmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZU5hbWUKIHsKICAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IF9ibG9iVVJMID0gYmxvYlVSTDsKICAgICBfZmlsZU5hbWUgPSBmaWxlTmFtZTsKICAgICBfYXR0
YWNobWVudElkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIHJldHVybiBzZWxmOwogfQogCi0t
IChOU1VSTCAqKWJsb2JVUkwKLXsKLSAgICByZXR1cm4gX2Jsb2JVUkwuZ2V0KCk7Ci19Ci0KIC0g
KE5TU3RyaW5nICopZmlsZU5hbWUKIHsKICAgICByZXR1cm4gX2ZpbGVOYW1lLmdldCgpOwpAQCAt
NDIzNCwxMiArNDIyNiw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OndyaXRlVG9VUkxGb3JGaWxlUHJv
bWlzZVByb3ZpZGVyKE5TRmlsZVByb21pc2VQcm92aWRlciAqcHJvdmlkCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBVUkwgYmxvYlVSTCB7IGluZm8uYmxvYlVSTCB9OwotICAgIGlmIChi
bG9iVVJMLmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3ZWJLaXRVbmtu
b3duRXJyb3IoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBjb21wbGV0aW9uSGFu
ZGxlcih3ZWJLaXRVbmtub3duRXJyb3IoKSk7CiB9CiAKQEAgLTQyODUsMjAgKzQyNzEsMjEgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVt
LCBjb25zdCBTaGFyZWFibGVCaXRtYXAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogICAgIGlmIChhdXRvJiBpbmZvID0gaXRlbS5wcm9taXNlZEF0dGFjaG1lbnRJbmZv
KSB7Ci0gICAgICAgIE5TU3RyaW5nICp1dGlUeXBlID0gaW5mby5jb250ZW50VHlwZTsKLSAgICAg
ICAgTlNTdHJpbmcgKmZpbGVOYW1lID0gaW5mby5maWxlTmFtZTsKLSAgICAgICAgaWYgKGF1dG8g
YXR0YWNobWVudCA9IG1fcGFnZS0+YXR0YWNobWVudEZvcklkZW50aWZpZXIoaW5mby5hdHRhY2ht
ZW50SWRlbnRpZmllcikpIHsKLSAgICAgICAgICAgIHV0aVR5cGUgPSBhdHRhY2htZW50LT51dGlU
eXBlKCk7Ci0gICAgICAgICAgICBmaWxlTmFtZSA9IGF0dGFjaG1lbnQtPmZpbGVOYW1lKCk7Cisg
ICAgICAgIGF1dG8gYXR0YWNobWVudCA9IG1fcGFnZS0+YXR0YWNobWVudEZvcklkZW50aWZpZXIo
aW5mby5hdHRhY2htZW50SWRlbnRpZmllcik7CisgICAgICAgIGlmICghYXR0YWNobWVudCkgewor
ICAgICAgICAgICAgbV9wYWdlLT5kcmFnQ2FuY2VsbGVkKCk7CisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAorICAgICAgICBOU1N0cmluZyAqdXRpVHlwZSA9IGF0dGFjaG1lbnQtPnV0
aVR5cGUoKTsKICAgICAgICAgaWYgKCF1dGlUeXBlLmxlbmd0aCkgewogICAgICAgICAgICAgbV9w
YWdlLT5kcmFnQ2FuY2VsbGVkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAor
ICAgICAgICBOU1N0cmluZyAqZmlsZU5hbWUgPSBhdHRhY2htZW50LT5maWxlTmFtZSgpOwogICAg
ICAgICBhdXRvIHByb3ZpZGVyID0gYWRvcHROUyhbW05TRmlsZVByb21pc2VQcm92aWRlciBhbGxv
Y10gaW5pdFdpdGhGaWxlVHlwZTp1dGlUeXBlIGRlbGVnYXRlOihpZCA8TlNGaWxlUHJvbWlzZVBy
b3ZpZGVyRGVsZWdhdGU+KW1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKV0pOwotICAgICAgICBhdXRv
IGNvbnRleHQgPSBhZG9wdE5TKFtbV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGFsbG9jXSBp
bml0V2l0aElkZW50aWZpZXI6aW5mby5hdHRhY2htZW50SWRlbnRpZmllciBibG9iVVJMOmluZm8u
YmxvYlVSTCBmaWxlTmFtZTpmaWxlTmFtZV0pOworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dE5TKFtbV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGFsbG9jXSBpbml0V2l0aElkZW50aWZp
ZXI6aW5mby5hdHRhY2htZW50SWRlbnRpZmllciBmaWxlTmFtZTpmaWxlTmFtZV0pOwogICAgICAg
ICBbcHJvdmlkZXIgc2V0VXNlckluZm86Y29udGV4dC5nZXQoKV07CiAgICAgICAgIGF1dG8gZHJh
Z2dpbmdJdGVtID0gYWRvcHROUyhbW05TRHJhZ2dpbmdJdGVtIGFsbG9jXSBpbml0V2l0aFBhc3Rl
Ym9hcmRXcml0ZXI6cHJvdmlkZXIuZ2V0KCldKTsKICAgICAgICAgW2RyYWdnaW5nSXRlbSBzZXRE
cmFnZ2luZ0ZyYW1lOk5TTWFrZVJlY3QoY2xpZW50RHJhZ0xvY2F0aW9uLngoKSwgY2xpZW50RHJh
Z0xvY2F0aW9uLnkoKSAtIHNpemUuaGVpZ2h0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSkgY29udGVudHM6ZHJhZ05TSW1hZ2UuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggOGNmYzE3
N2YwNmY1N2MyMmQxMGRlZTFhY2YxNGE4NjZmZTNiYmVmNC4uZTJiZDZhZGI5NjhjMzgzZWUwNzc1
YjliMjg3MDAwMTE5YjM5MzcyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC04MTQ5LDcgKzgxNDksNyBA
QCAtICh2b2lkKV9wcmVwYXJlVG9EcmFnUHJvbWlzZWRBdHRhY2htZW50Oihjb25zdCBXZWJDb3Jl
OjpQcm9taXNlZEF0dGFjaG1lbnRJbmZvJgogICAgIGF1dG8gbnVtYmVyT2ZBZGRpdGlvbmFsVHlw
ZXMgPSBpbmZvLmFkZGl0aW9uYWxUeXBlcy5zaXplKCk7CiAgICAgQVNTRVJUKG51bWJlck9mQWRk
aXRpb25hbFR5cGVzID09IGluZm8uYWRkaXRpb25hbERhdGEuc2l6ZSgpKTsKIAotICAgIFJFTEVB
U0VfTE9HKERyYWdBbmREcm9wLCAiRHJhZyBzZXNzaW9uOiAlcCBwcmVwYXJpbmcgdG8gZHJhZyBi
bG9iOiAlcyB3aXRoIGF0dGFjaG1lbnQgaWRlbnRpZmllcjogJXMiLCBzZXNzaW9uLmdldCgpLCBp
bmZvLmJsb2JVUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaW5mby5hdHRhY2htZW50SWRlbnRp
Zmllci51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPRyhEcmFnQW5kRHJvcCwgIkRyYWcg
c2Vzc2lvbjogJXAgcHJlcGFyaW5nIHRvIGRyYWcgd2l0aCBhdHRhY2htZW50IGlkZW50aWZpZXI6
ICVzIiwgc2Vzc2lvbi5nZXQoKSwgaW5mby5hdHRhY2htZW50SWRlbnRpZmllci51dGY4KCkuZGF0
YSgpKTsKIAogICAgIE5TU3RyaW5nICp1dGlUeXBlID0gaW5mby5jb250ZW50VHlwZTsKICAgICBO
U1N0cmluZyAqZmlsZU5hbWUgPSBpbmZvLmZpbGVOYW1lOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGYzNmE2NTczYzQ1ZDM4NDgyNDBkM2ZjYzBj
YzQzMzA3ZDUwZTBiMzcuLjJlMzlmMTU2MzE5MmJiYmE1MDFkZjE0NWNmNGY4NmM3M2EzY2QzYmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wNC0xNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgUHJvbWlzZWRBdHRhY2htZW50SW5mbzo6YmxvYlVSTCBh
bmQgYWRqYWNlbnQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI0NzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmViYXNlbGluZSBhIGNvdXBsZSBvZiBpT1MgV0tBdHRhY2htZW50IHRlc3RzIHRo
YXQgYXJlIGZhaWxpbmcgb24gcmVjZW50IHZlcnNpb25zIG9mIHRoZSBpT1MgU0RLLiBUaGUgY29u
dGVudAorICAgICAgICB0eXBlIG9mIHRleHQgZmlsZXMgdGhhdCBhcmUgaW5zZXJ0ZWQgYXMgYXR0
YWNobWVudHMgaXMgbm93IGEgTUlNRSB0eXBlIHJhdGhlciB0aGFuIGEgVVRJLCB3aGljaCBpcyBz
dGlsbCB2YWxpZAorICAgICAgICBzaW5jZSBpdCBpcyB2YWxpZCBmb3IgdGhlIGNvbnRlbnQgdHlw
ZSBvZiBhbiBhdHRhY2htZW50IHRvIGJlIGVpdGhlciBhIE1JTUUgdHlwZSBvciBVVEkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3Rz
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDQtMTcgIEFha2Fz
aCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBjb25maWd1
cmUgSmFuaXRvciB0byBkZWxldGUgb2xkIGxvZ3MgaW4gbG9jYWwgdGVzdGluZyBtb2RlCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVu
dFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFj
aG1lbnRUZXN0cy5tbQppbmRleCA3MGUxMGZmZTE5ODIwZGM2ZjM4ZmM1N2U0ZTM1OGFjYjdjNmZh
Y2ZiLi5lZTMyYzM5M2U3NGZjN2UzNzAxZmUzMDkxYzI2MDgwOTEzNjRiOTRhIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3Rz
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2ht
ZW50VGVzdHMubW0KQEAgLTE4OTYsNyArMTg5Niw4IEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHNJ
T1MsIEluc2VydERyb3BwZWRSaWNoQW5kUGxhaW5UZXh0RmlsZXNBc0F0dGFjaG1lbnRzKQogICAg
IEVYUEVDVF9XS19TVFJFUSgiaGVsbG8ucnRmIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5n
ZXRBdHRyaWJ1dGUoJ3RpdGxlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKChfX2JyaWRnZSBO
U1N0cmluZyAqKWtVVFR5cGVGbGF0UlRGRCwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRB
dHRyaWJ1dGUoJ3R5cGUnKSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIndvcmxkLnR4dCIsIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0aXRsZScpIl0pOwotICAgIEVY
UEVDVF9XS19TVFJFUSgoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBsYWluVGV4dCwg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVsxXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsKKyAgICBh
dXRvIGNvbnRlbnRUeXBlID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVsxXS5nZXRBdHRyaWJ1dGUo
J3R5cGUnKSJdOworICAgIEVYUEVDVF9UUlVFKFtjb250ZW50VHlwZSBpc0VxdWFsVG9TdHJpbmc6
KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHRdIHx8IFtjb250ZW50VHlw
ZSBjb250YWluc1N0cmluZzpAInRleHQvcGxhaW4iXSk7CiB9CiAKIFRFU1QoV0tBdHRhY2htZW50
VGVzdHNJT1MsIEluc2VydERyb3BwZWRaaXBBcmNoaXZlQXNBdHRhY2htZW50KQpAQCAtMTk1Myw3
ICsxOTU0LDggQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0RHJvcHBlZEl0ZW1Q
cm92aWRlcnNJbk9yZGVyKQogICAgIFt3ZWJWaWV3IGV4cGVjdEVsZW1lbnRUYWdzSW5PcmRlcjpA
WyBAIkFUVEFDSE1FTlQiLCBAIkEiLCBAIkFUVEFDSE1FTlQiIF1dOwogCiAgICAgRVhQRUNUX1dL
X1NUUkVRKCJmaXJzdC50eHQiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzBdLmdldEF0dHJpYnV0
ZSgndGl0bGUnKSJdKTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoKF9fYnJpZGdlIE5TU3RyaW5nICop
a1VUVHlwZVVURjhQbGFpblRleHQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmli
dXRlKCd0eXBlJykiXSk7CisgICAgYXV0byBjb250ZW50VHlwZSA9IFt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2ht
ZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXTsKKyAgICBFWFBFQ1RfVFJVRShbY29udGVu
dFR5cGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxh
aW5UZXh0XSB8fCBbY29udGVudFR5cGUgY29udGFpbnNTdHJpbmc6QCJ0ZXh0L3BsYWluIl0pOwog
ICAgIEVYUEVDVF9XS19TVFJFUShbYXBwbGVVUkwgYWJzb2x1dGVTdHJpbmddLCBbd2ViVmlldyB2
YWx1ZU9mQXR0cmlidXRlOkAiaHJlZiIgZm9yUXVlcnlTZWxlY3RvcjpAImEiXSk7CiAgICAgRVhQ
RUNUX1dLX1NUUkVRKCJzZWNvbmQucGRmIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVsxXS5nZXRB
dHRyaWJ1dGUoJ3RpdGxlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJhcHBsaWNhdGlvbi9w
ZGYiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzFdLmdldEF0dHJpYnV0ZSgndHlwZScpIl0pOwo=
</data>
<flag name="commit-queue"
          id="446611"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426348</attachid>
            <date>2021-04-17 14:23:25 -0700</date>
            <delta_ts>2021-04-17 16:27:43 -0700</delta_ts>
            <desc>Fix iOS build</desc>
            <filename>bug-224720-20210417142325.patch</filename>
            <type>text/plain</type>
            <size>14769</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y3NTdjYzYxNWE5OTgw
MGFlM2ZjMDIxMDgxYmYxZDQzMzM2ZWNiYi4uYmNkNjZlODhmYjY1ZjRkMjZmMjY1NWRkNGJhNjEy
MmM1NTFkYzQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTE3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQcm9t
aXNlZEF0dGFjaG1lbnRJbmZvOjpibG9iVVJMIGFuZCBhZGphY2VudCBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhpcyBtZW1iZXIg
b2YgYFByb21pc2VkQXR0YWNobWVudEluZm9gLiBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwcm9taXNlZEF0dGFjaG1lbnRJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9taXNlZEF0
dGFjaG1lbnRJbmZvOjpvcGVyYXRvciBib29sIGNvbnN0KToKKwogMjAyMS0wNC0xNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBz
b21lIHN1cHBvcnQgZm9yIHdlYnBhZ2UgdHJhbnNsYXRpb24gaW4gV2ViS2l0TGVnYWN5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGRkOTdjNzcwYTc4ZGM1NTVmODY2OTk5ZDFmNGRjYmJlYjRiMzU1YjEuLjNlOTFhNjZm
YjIxODg3M2I5ZWMyMzMwNGNiMWY3ZmY5NTU5N2UwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMjEtMDQtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFByb21pc2VkQXR0YWNobWVudEluZm86OmJsb2JVUkwgYW5kIGFkamFj
ZW50IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBgYmxvYlVSTGAgbWVtYmVyIG9mIGBQcm9taXNlZEF0dGFjaG1lbnRJbmZvYCB3YXMgb3Jp
Z2luYWxseSBpbnRyb2R1Y2VkIHRvIGZhY2lsaXRhdGUgZHJhZyBhbmQgZHJvcCBzdXBwb3J0Cisg
ICAgICAgIGZvciBhdHRhY2htZW50IGVsZW1lbnRzIGluIFdlYktpdDIsIGJ5IHdyaXRpbmcgYmxv
YiBVUkwgZGF0YSB0byB0ZW1wb3JhcnkgZmlsZSBwYXRocyBvbiBiZWhhbGYgb2YKKyAgICAgICAg
YE5TRmlsZVByb21pc2VQcm92aWRlcmAgd2hlbiBzdGFydGluZyBhIGRyYWcgb24gYXR0YWNobWVu
dCBlbGVtZW50cyBiYWNrZWQgYnkgYmxvYnMuIEhvd2V2ZXIsIHRoaXMgd2FzCisgICAgICAgIHN1
cGVyY2VkZWQgYnkgdXNlIG9mIGBOU0ZpbGVXcmFwcGVyYCBhbmQgdGhlIGBfV0tBdHRhY2htZW50
YCBTUEkgaW5zdGVhZCwgc3VjaCB0aGF0IHdlIG9ubHkgc3VwcG9ydCBkcmFnZ2luZworICAgICAg
ICBhdHRhY2htZW50IGVsZW1lbnRzIGlmIHRoZXkgY29ycmVzcG9uZCB0byBBUEkgYEF0dGFjaG1l
bnRgIG9iamVjdHMgaW4gdGhlIFVJIHByb2Nlc3MuIFRoaXMgbWVhbnMgd2UgY2FuIHJlbW92ZQor
ICAgICAgICB0aGlzIGBibG9iVVJMYCwgYWxvbmcgd2l0aCB0aGUgZmlsZSBuYW1lIGFuZCBjb250
ZW50IHR5cGUgbWVtYmVycyBvZiB0aGUgc3RydWN0ICh3aGljaCB3ZXJlIG9ubHkgYWRkZWQgdG8K
KyAgICAgICAgc3VwcG9ydCB0aGUgYWJpbGl0eSB0byBkcmFnIGJsb2ItYmFja2VkIGF0dGFjaG1l
bnRzKS4KKworICAgICAgICBDb2RlIHRoYXQgdXRpbGl6ZWQgdGhpcyBtZW1iZXIgd2FzIG9yaWdp
bmFsbHkgaW50cm9kdWNlZCBpbiA8aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvcjIzNTIwMj4sIGFu
ZCB3YXMKKyAgICAgICAgc3Vic2VxdWVudGx5IHJlbW92ZWQgaW4gPGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL3IyNDA2ODc+LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRBdHRhY2htZW50SW5m
bz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRBdHRhY2ht
ZW50SW5mbz46OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tOgorICAgICAgICAoLVtXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgaW5pdFdpdGhJZGVu
dGlmaWVyOmZpbGVOYW1lOl0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d3JpdGVU
b1VSTEZvckZpbGVQcm9taXNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c3RhcnREcmFnKToKKyAgICAgICAgKC1bV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGlu
aXRXaXRoSWRlbnRpZmllcjpibG9iVVJMOmZpbGVOYW1lOl0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgYmxvYlVSTF0pOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9wcmVwYXJlVG9EcmFnUHJvbWlzZWRBdHRhY2htZW50Ol0pOgorCiAy
MDIxLTA0LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gQWRkIHNvbWUgc3VwcG9ydCBmb3Igd2VicGFnZSB0cmFuc2xhdGlvbiBpbiBX
ZWJLaXRMZWdhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3ZjBmMDFiZGU4ODRm
ZTkxMzNjMGYxYmFkZDFjNDZhYTM2ZmVjNDU0Li41MGJjY2IwOGUwMDAxZjMxNzYzYTRkNWY3Mjc0
ZGY1YjA1MzgxZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MTIwLDEwICs0
MTIwLDcgQEAgUHJvbWlzZWRBdHRhY2htZW50SW5mbyBFZGl0b3I6OnByb21pc2VkQXR0YWNobWVu
dEluZm8oRWxlbWVudCYgZWxlbWVudCkKICAgICBnZXRQYXN0ZWJvYXJkVHlwZXNBbmREYXRhRm9y
QXR0YWNobWVudChlbGVtZW50LCBhZGRpdGlvbmFsVHlwZXMsIGFkZGl0aW9uYWxEYXRhKTsKICNl
bmRpZgogCi0gICAgaWYgKGF1dG8gZmlsZSA9IG1ha2VSZWZQdHIoYXR0YWNobWVudC0+ZmlsZSgp
KSkKLSAgICAgICAgcmV0dXJuIHsgZmlsZS0+dXJsKCksIHBsYXRmb3JtQ29udGVudFR5cGVGb3JC
bG9iVHlwZShmaWxlLT50eXBlKCkpLCBmaWxlLT5uYW1lKCksIHsgfSwgV1RGTW92ZShhZGRpdGlv
bmFsVHlwZXMpLCBXVEZNb3ZlKGFkZGl0aW9uYWxEYXRhKSB9OwotCi0gICAgcmV0dXJuIHsgeyB9
LCB7IH0sIHsgfSwgYXR0YWNobWVudC0+dW5pcXVlSWRlbnRpZmllcigpLCBXVEZNb3ZlKGFkZGl0
aW9uYWxUeXBlcyksIFdURk1vdmUoYWRkaXRpb25hbERhdGEpIH07CisgICAgcmV0dXJuIHsgYXR0
YWNobWVudC0+dW5pcXVlSWRlbnRpZmllcigpLCBXVEZNb3ZlKGFkZGl0aW9uYWxUeXBlcyksIFdU
Rk1vdmUoYWRkaXRpb25hbERhdGEpIH07CiB9CiAKIHZvaWQgRWRpdG9yOjpyZWdpc3RlckF0dGFj
aG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwgUmVmPFNoYXJlZEJ1
ZmZlcj4mJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvbWlz
ZWRBdHRhY2htZW50SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvbWlzZWRBdHRh
Y2htZW50SW5mby5oCmluZGV4IGE5NThjMmYwYWIyZDlmMWYzNzY2MmE3YTBiNjAyYmUzMTM0MzA3
YjUuLjFlMTJiOTU1NTgwMjkyYzAzYTU3OGVmM2Y3OGIxNTdlZDVmZWMzMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2VkQXR0YWNobWVudEluZm8uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKQEAgLTMzLDEw
ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogc3Ry
dWN0IFByb21pc2VkQXR0YWNobWVudEluZm8gewotICAgIFVSTCBibG9iVVJMOwotICAgIFN0cmlu
ZyBjb250ZW50VHlwZTsKLSAgICBTdHJpbmcgZmlsZU5hbWU7Ci0KICNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQogICAgIFN0cmluZyBhdHRhY2htZW50SWRlbnRpZmllcjsKICNlbmRpZgpA
QCAtNTAsOCArNDYsNyBAQCBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbyB7CiAgICAgICAg
IGlmICghYXR0YWNobWVudElkZW50aWZpZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAjZW5kaWYKLQotICAgICAgICByZXR1cm4gIWNvbnRlbnRUeXBlLmlzRW1wdHkoKSAm
JiAhYmxvYlVSTC5pc0VtcHR5KCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBmNjUxMTZmZjlkNmIwM2IxYTMzMzFjZGJmMzZlNDdkOGE0MTE4Y2I1Li44NjAzZTUyZTQ2YzVj
MTZmYmEzMTk4YTM4ZmRiM2VkYTU5ODZmODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTI4ODIsOSArMjg4Miw2IEBAIE9wdGlvbmFs
PE1lZGlhU2VsZWN0aW9uT3B0aW9uPiBBcmd1bWVudENvZGVyPE1lZGlhU2VsZWN0aW9uT3B0aW9u
Pjo6ZGVjb2RlKERlY29kCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFByb21pc2VkQXR0YWNobWVudElu
Zm8mIGluZm8pCiB7Ci0gICAgZW5jb2RlciA8PCBpbmZvLmJsb2JVUkw7Ci0gICAgZW5jb2RlciA8
PCBpbmZvLmNvbnRlbnRUeXBlOwotICAgIGVuY29kZXIgPDwgaW5mby5maWxlTmFtZTsKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGVuY29kZXIgPDwgaW5mby5hdHRhY2htZW50
SWRlbnRpZmllcjsKICNlbmRpZgpAQCAtMjg5MywxNSArMjg5MCw2IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFByb21pCiAKIGJvb2wgQXJndW1lbnRDb2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJbmZvPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFByb21pc2VkQXR0YWNobWVudEluZm8mIGluZm8pCiB7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmJsb2JVUkwpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY29udGVudFR5cGUpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uZmlsZU5h
bWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5hdHRhY2htZW50SWRlbnRpZmllcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggYTQxODQzZWEyMDA3ZjBjNjU2YzYwNWE5OGUzODVhNzRhMzgw
ZjAzYS4uZWU4NTJiYjg2NGJkY2ViZThkNTdiOGVlMzEzNWZkMGVjNzAxMTJkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTg4NSwxNCArODg1
LDEyIEBAIEBlbmQKIAogQGludGVyZmFjZSBXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgOiBO
U09iamVjdCB7CiBAcHJpdmF0ZQotICAgIFJldGFpblB0cjxOU1VSTD4gX2Jsb2JVUkw7CiAgICAg
UmV0YWluUHRyPE5TU3RyaW5nPiBfZmlsZU5hbWU7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBf
YXR0YWNobWVudElkZW50aWZpZXI7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aElkZW50
aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBibG9iVVJMOihOU1VSTCAqKXVybCBmaWxlTmFt
ZTooTlNTdHJpbmcgKilmaWxlTmFtZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aElkZW50aWZp
ZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBmaWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZTsK
IAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqYmxvYlVSTDsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmZpbGVOYW1lOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqYXR0YWNobWVudElkZW50aWZpZXI7CiAK
QEAgLTkwMCwyMiArODk4LDE2IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLUHJvbWlzZWRB
dHRhY2htZW50Q29udGV4dAogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50aWZpZXIgYmxvYlVSTDooTlNVUkwgKilibG9iVVJMIGZpbGVOYW1lOihO
U1N0cmluZyAqKWZpbGVOYW1lCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50aWZpZXIgZmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZU5hbWUKIHsKICAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IF9ibG9iVVJMID0gYmxvYlVSTDsKICAgICBfZmlsZU5hbWUgPSBmaWxlTmFtZTsKICAgICBfYXR0
YWNobWVudElkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIHJldHVybiBzZWxmOwogfQogCi0t
IChOU1VSTCAqKWJsb2JVUkwKLXsKLSAgICByZXR1cm4gX2Jsb2JVUkwuZ2V0KCk7Ci19Ci0KIC0g
KE5TU3RyaW5nICopZmlsZU5hbWUKIHsKICAgICByZXR1cm4gX2ZpbGVOYW1lLmdldCgpOwpAQCAt
NDIzNCwxMiArNDIyNiw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OndyaXRlVG9VUkxGb3JGaWxlUHJv
bWlzZVByb3ZpZGVyKE5TRmlsZVByb21pc2VQcm92aWRlciAqcHJvdmlkCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBVUkwgYmxvYlVSTCB7IGluZm8uYmxvYlVSTCB9OwotICAgIGlmIChi
bG9iVVJMLmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3ZWJLaXRVbmtu
b3duRXJyb3IoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBjb21wbGV0aW9uSGFu
ZGxlcih3ZWJLaXRVbmtub3duRXJyb3IoKSk7CiB9CiAKQEAgLTQyODUsMjAgKzQyNzEsMjEgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVt
LCBjb25zdCBTaGFyZWFibGVCaXRtYXAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogICAgIGlmIChhdXRvJiBpbmZvID0gaXRlbS5wcm9taXNlZEF0dGFjaG1lbnRJbmZv
KSB7Ci0gICAgICAgIE5TU3RyaW5nICp1dGlUeXBlID0gaW5mby5jb250ZW50VHlwZTsKLSAgICAg
ICAgTlNTdHJpbmcgKmZpbGVOYW1lID0gaW5mby5maWxlTmFtZTsKLSAgICAgICAgaWYgKGF1dG8g
YXR0YWNobWVudCA9IG1fcGFnZS0+YXR0YWNobWVudEZvcklkZW50aWZpZXIoaW5mby5hdHRhY2ht
ZW50SWRlbnRpZmllcikpIHsKLSAgICAgICAgICAgIHV0aVR5cGUgPSBhdHRhY2htZW50LT51dGlU
eXBlKCk7Ci0gICAgICAgICAgICBmaWxlTmFtZSA9IGF0dGFjaG1lbnQtPmZpbGVOYW1lKCk7Cisg
ICAgICAgIGF1dG8gYXR0YWNobWVudCA9IG1fcGFnZS0+YXR0YWNobWVudEZvcklkZW50aWZpZXIo
aW5mby5hdHRhY2htZW50SWRlbnRpZmllcik7CisgICAgICAgIGlmICghYXR0YWNobWVudCkgewor
ICAgICAgICAgICAgbV9wYWdlLT5kcmFnQ2FuY2VsbGVkKCk7CisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAorICAgICAgICBOU1N0cmluZyAqdXRpVHlwZSA9IGF0dGFjaG1lbnQtPnV0
aVR5cGUoKTsKICAgICAgICAgaWYgKCF1dGlUeXBlLmxlbmd0aCkgewogICAgICAgICAgICAgbV9w
YWdlLT5kcmFnQ2FuY2VsbGVkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAor
ICAgICAgICBOU1N0cmluZyAqZmlsZU5hbWUgPSBhdHRhY2htZW50LT5maWxlTmFtZSgpOwogICAg
ICAgICBhdXRvIHByb3ZpZGVyID0gYWRvcHROUyhbW05TRmlsZVByb21pc2VQcm92aWRlciBhbGxv
Y10gaW5pdFdpdGhGaWxlVHlwZTp1dGlUeXBlIGRlbGVnYXRlOihpZCA8TlNGaWxlUHJvbWlzZVBy
b3ZpZGVyRGVsZWdhdGU+KW1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKV0pOwotICAgICAgICBhdXRv
IGNvbnRleHQgPSBhZG9wdE5TKFtbV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGFsbG9jXSBp
bml0V2l0aElkZW50aWZpZXI6aW5mby5hdHRhY2htZW50SWRlbnRpZmllciBibG9iVVJMOmluZm8u
YmxvYlVSTCBmaWxlTmFtZTpmaWxlTmFtZV0pOworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dE5TKFtbV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGFsbG9jXSBpbml0V2l0aElkZW50aWZp
ZXI6aW5mby5hdHRhY2htZW50SWRlbnRpZmllciBmaWxlTmFtZTpmaWxlTmFtZV0pOwogICAgICAg
ICBbcHJvdmlkZXIgc2V0VXNlckluZm86Y29udGV4dC5nZXQoKV07CiAgICAgICAgIGF1dG8gZHJh
Z2dpbmdJdGVtID0gYWRvcHROUyhbW05TRHJhZ2dpbmdJdGVtIGFsbG9jXSBpbml0V2l0aFBhc3Rl
Ym9hcmRXcml0ZXI6cHJvdmlkZXIuZ2V0KCldKTsKICAgICAgICAgW2RyYWdnaW5nSXRlbSBzZXRE
cmFnZ2luZ0ZyYW1lOk5TTWFrZVJlY3QoY2xpZW50RHJhZ0xvY2F0aW9uLngoKSwgY2xpZW50RHJh
Z0xvY2F0aW9uLnkoKSAtIHNpemUuaGVpZ2h0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSkgY29udGVudHM6ZHJhZ05TSW1hZ2UuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggOGNmYzE3
N2YwNmY1N2MyMmQxMGRlZTFhY2YxNGE4NjZmZTNiYmVmNC4uMDcyMzYxYmMzZWM0MTkzODJmZjBk
Y2U5N2YxY2YwZWMwMDNjYWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC04MTQ5LDE0ICs4MTQ5LDE2
IEBAIC0gKHZvaWQpX3ByZXBhcmVUb0RyYWdQcm9taXNlZEF0dGFjaG1lbnQ6KGNvbnN0IFdlYkNv
cmU6OlByb21pc2VkQXR0YWNobWVudEluZm8mCiAgICAgYXV0byBudW1iZXJPZkFkZGl0aW9uYWxU
eXBlcyA9IGluZm8uYWRkaXRpb25hbFR5cGVzLnNpemUoKTsKICAgICBBU1NFUlQobnVtYmVyT2ZB
ZGRpdGlvbmFsVHlwZXMgPT0gaW5mby5hZGRpdGlvbmFsRGF0YS5zaXplKCkpOwogCi0gICAgUkVM
RUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb246ICVwIHByZXBhcmluZyB0byBkcmFn
IGJsb2I6ICVzIHdpdGggYXR0YWNobWVudCBpZGVudGlmaWVyOiAlcyIsIHNlc3Npb24uZ2V0KCks
IGluZm8uYmxvYlVSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBpbmZvLmF0dGFjaG1lbnRJZGVu
dGlmaWVyLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRHJh
ZyBzZXNzaW9uOiAlcCBwcmVwYXJpbmcgdG8gZHJhZyB3aXRoIGF0dGFjaG1lbnQgaWRlbnRpZmll
cjogJXMiLCBzZXNzaW9uLmdldCgpLCBpbmZvLmF0dGFjaG1lbnRJZGVudGlmaWVyLnV0ZjgoKS5k
YXRhKCkpOwogCi0gICAgTlNTdHJpbmcgKnV0aVR5cGUgPSBpbmZvLmNvbnRlbnRUeXBlOwotICAg
IE5TU3RyaW5nICpmaWxlTmFtZSA9IGluZm8uZmlsZU5hbWU7Ci0gICAgaWYgKGF1dG8gYXR0YWNo
bWVudCA9IF9wYWdlLT5hdHRhY2htZW50Rm9ySWRlbnRpZmllcihpbmZvLmF0dGFjaG1lbnRJZGVu
dGlmaWVyKSkgewotICAgICAgICB1dGlUeXBlID0gYXR0YWNobWVudC0+dXRpVHlwZSgpOwotICAg
ICAgICBmaWxlTmFtZSA9IGF0dGFjaG1lbnQtPmZpbGVOYW1lKCk7Ci0gICAgfQorICAgIGF1dG8g
YXR0YWNobWVudCA9IF9wYWdlLT5hdHRhY2htZW50Rm9ySWRlbnRpZmllcihpbmZvLmF0dGFjaG1l
bnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWF0dGFjaG1lbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIE5TU3RyaW5nICp1dGlUeXBlID0gYXR0YWNobWVudC0+dXRpVHlwZSgpOworICAgIE5TU3Ry
aW5nICpmaWxlTmFtZSA9IGF0dGFjaG1lbnQtPmZpbGVOYW1lKCk7CisgICAgaWYgKCF1dGlUeXBl
Lmxlbmd0aCkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZWdpc3RyYXRpb25MaXN0ID0g
YWRvcHROUyhbW1dlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0IGFsbG9jXSBpbml0
XSk7CiAgICAgW3JlZ2lzdHJhdGlvbkxpc3Qgc2V0UHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGU6
V2ViUHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVBdHRhY2htZW50XTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMzZhNjU3M2M0NWQzODQ4MjQw
ZDNmY2MwY2M0MzMwN2Q1MGUwYjM3Li4yZTM5ZjE1NjMxOTJiYmJhNTAxZGYxNDVjZjRmODZjNzNh
M2NkM2JlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDQtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFByb21pc2VkQXR0YWNobWVudEluZm86OmJs
b2JVUkwgYW5kIGFkamFjZW50IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgYSBjb3VwbGUgb2YgaU9TIFdLQXR0YWNobWVudCB0
ZXN0cyB0aGF0IGFyZSBmYWlsaW5nIG9uIHJlY2VudCB2ZXJzaW9ucyBvZiB0aGUgaU9TIFNESy4g
VGhlIGNvbnRlbnQKKyAgICAgICAgdHlwZSBvZiB0ZXh0IGZpbGVzIHRoYXQgYXJlIGluc2VydGVk
IGFzIGF0dGFjaG1lbnRzIGlzIG5vdyBhIE1JTUUgdHlwZSByYXRoZXIgdGhhbiBhIFVUSSwgd2hp
Y2ggaXMgc3RpbGwgdmFsaWQKKyAgICAgICAgc2luY2UgaXQgaXMgdmFsaWQgZm9yIHRoZSBjb250
ZW50IHR5cGUgb2YgYW4gYXR0YWNobWVudCB0byBiZSBlaXRoZXIgYSBNSU1FIHR5cGUgb3IgVVRJ
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1l
bnRUZXN0cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA0LTE3
ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3Qg
Y29uZmlndXJlIEphbml0b3IgdG8gZGVsZXRlIG9sZCBsb2dzIGluIGxvY2FsIHRlc3RpbmcgbW9k
ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0
dGFjaG1lbnRUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tBdHRhY2htZW50VGVzdHMubW0KaW5kZXggNzBlMTBmZmUxOTgyMGRjNmYzOGZjNTdlNGUzNThh
Y2I3YzZmYWNmYi4uZWUzMmMzOTNlNzRmYzdlMzcwMWZlMzA5MWMyNjA4MDkxMzY0Yjk0YSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1l
bnRUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
QXR0YWNobWVudFRlc3RzLm1tCkBAIC0xODk2LDcgKzE4OTYsOCBAQCBURVNUKFdLQXR0YWNobWVu
dFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkUmljaEFuZFBsYWluVGV4dEZpbGVzQXNBdHRhY2htZW50
cykKICAgICBFWFBFQ1RfV0tfU1RSRVEoImhlbGxvLnJ0ZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50
JylbMF0uZ2V0QXR0cmlidXRlKCd0aXRsZScpIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgoX19i
cmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlRmxhdFJURkQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50Jylb
MF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJ3b3JsZC50
eHQiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzFdLmdldEF0dHJpYnV0ZSgndGl0bGUnKSJdKTsK
LSAgICBFWFBFQ1RfV0tfU1RSRVEoKF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFp
blRleHQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7
CisgICAgYXV0byBjb250ZW50VHlwZSA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0
cmlidXRlKCd0eXBlJykiXTsKKyAgICBFWFBFQ1RfVFJVRShbY29udGVudFR5cGUgaXNFcXVhbFRv
U3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0XSB8fCBbY29u
dGVudFR5cGUgY29udGFpbnNTdHJpbmc6QCJ0ZXh0L3BsYWluIl0pOwogfQogCiBURVNUKFdLQXR0
YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkWmlwQXJjaGl2ZUFzQXR0YWNobWVudCkKQEAg
LTE5NTMsNyArMTk1NCw4IEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHNJT1MsIEluc2VydERyb3Bw
ZWRJdGVtUHJvdmlkZXJzSW5PcmRlcikKICAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50VGFnc0lu
T3JkZXI6QFsgQCJBVFRBQ0hNRU5UIiwgQCJBIiwgQCJBVFRBQ0hNRU5UIiBdXTsKIAogICAgIEVY
UEVDVF9XS19TVFJFUSgiZmlyc3QudHh0IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRB
dHRyaWJ1dGUoJ3RpdGxlJykiXSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKChfX2JyaWRnZSBOU1N0
cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzBdLmdl
dEF0dHJpYnV0ZSgndHlwZScpIl0pOworICAgIGF1dG8gY29udGVudFR5cGUgPSBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
YXR0YWNobWVudCcpWzBdLmdldEF0dHJpYnV0ZSgndHlwZScpIl07CisgICAgRVhQRUNUX1RSVUUo
W2NvbnRlbnRUeXBlIGlzRXF1YWxUb1N0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBl
VVRGOFBsYWluVGV4dF0gfHwgW2NvbnRlbnRUeXBlIGNvbnRhaW5zU3RyaW5nOkAidGV4dC9wbGFp
biJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoW2FwcGxlVVJMIGFic29sdXRlU3RyaW5nXSwgW3dl
YlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpAImhyZWYiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhIl0pOwog
ICAgIEVYUEVDVF9XS19TVFJFUSgic2Vjb25kLnBkZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50Jylb
MV0uZ2V0QXR0cmlidXRlKCd0aXRsZScpIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgiYXBwbGlj
YXRpb24vcGRmIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVsxXS5nZXRBdHRyaWJ1dGUoJ3R5cGUn
KSJdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426356</attachid>
            <date>2021-04-17 16:27:46 -0700</date>
            <delta_ts>2021-04-17 20:49:15 -0700</delta_ts>
            <desc>Fix iOS API test</desc>
            <filename>bug-224720-20210417162745.patch</filename>
            <type>text/plain</type>
            <size>14372</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y3NTdjYzYxNWE5OTgw
MGFlM2ZjMDIxMDgxYmYxZDQzMzM2ZWNiYi4uYmNkNjZlODhmYjY1ZjRkMjZmMjY1NWRkNGJhNjEy
MmM1NTFkYzQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTE3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQcm9t
aXNlZEF0dGFjaG1lbnRJbmZvOjpibG9iVVJMIGFuZCBhZGphY2VudCBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhpcyBtZW1iZXIg
b2YgYFByb21pc2VkQXR0YWNobWVudEluZm9gLiBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwcm9taXNlZEF0dGFjaG1lbnRJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9taXNlZEF0
dGFjaG1lbnRJbmZvOjpvcGVyYXRvciBib29sIGNvbnN0KToKKwogMjAyMS0wNC0xNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBz
b21lIHN1cHBvcnQgZm9yIHdlYnBhZ2UgdHJhbnNsYXRpb24gaW4gV2ViS2l0TGVnYWN5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGRkOTdjNzcwYTc4ZGM1NTVmODY2OTk5ZDFmNGRjYmJlYjRiMzU1YjEuLjNlOTFhNjZm
YjIxODg3M2I5ZWMyMzMwNGNiMWY3ZmY5NTU5N2UwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMjEtMDQtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFByb21pc2VkQXR0YWNobWVudEluZm86OmJsb2JVUkwgYW5kIGFkamFj
ZW50IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBgYmxvYlVSTGAgbWVtYmVyIG9mIGBQcm9taXNlZEF0dGFjaG1lbnRJbmZvYCB3YXMgb3Jp
Z2luYWxseSBpbnRyb2R1Y2VkIHRvIGZhY2lsaXRhdGUgZHJhZyBhbmQgZHJvcCBzdXBwb3J0Cisg
ICAgICAgIGZvciBhdHRhY2htZW50IGVsZW1lbnRzIGluIFdlYktpdDIsIGJ5IHdyaXRpbmcgYmxv
YiBVUkwgZGF0YSB0byB0ZW1wb3JhcnkgZmlsZSBwYXRocyBvbiBiZWhhbGYgb2YKKyAgICAgICAg
YE5TRmlsZVByb21pc2VQcm92aWRlcmAgd2hlbiBzdGFydGluZyBhIGRyYWcgb24gYXR0YWNobWVu
dCBlbGVtZW50cyBiYWNrZWQgYnkgYmxvYnMuIEhvd2V2ZXIsIHRoaXMgd2FzCisgICAgICAgIHN1
cGVyY2VkZWQgYnkgdXNlIG9mIGBOU0ZpbGVXcmFwcGVyYCBhbmQgdGhlIGBfV0tBdHRhY2htZW50
YCBTUEkgaW5zdGVhZCwgc3VjaCB0aGF0IHdlIG9ubHkgc3VwcG9ydCBkcmFnZ2luZworICAgICAg
ICBhdHRhY2htZW50IGVsZW1lbnRzIGlmIHRoZXkgY29ycmVzcG9uZCB0byBBUEkgYEF0dGFjaG1l
bnRgIG9iamVjdHMgaW4gdGhlIFVJIHByb2Nlc3MuIFRoaXMgbWVhbnMgd2UgY2FuIHJlbW92ZQor
ICAgICAgICB0aGlzIGBibG9iVVJMYCwgYWxvbmcgd2l0aCB0aGUgZmlsZSBuYW1lIGFuZCBjb250
ZW50IHR5cGUgbWVtYmVycyBvZiB0aGUgc3RydWN0ICh3aGljaCB3ZXJlIG9ubHkgYWRkZWQgdG8K
KyAgICAgICAgc3VwcG9ydCB0aGUgYWJpbGl0eSB0byBkcmFnIGJsb2ItYmFja2VkIGF0dGFjaG1l
bnRzKS4KKworICAgICAgICBDb2RlIHRoYXQgdXRpbGl6ZWQgdGhpcyBtZW1iZXIgd2FzIG9yaWdp
bmFsbHkgaW50cm9kdWNlZCBpbiA8aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvcjIzNTIwMj4sIGFu
ZCB3YXMKKyAgICAgICAgc3Vic2VxdWVudGx5IHJlbW92ZWQgaW4gPGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL3IyNDA2ODc+LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRBdHRhY2htZW50SW5m
bz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRBdHRhY2ht
ZW50SW5mbz46OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tOgorICAgICAgICAoLVtXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgaW5pdFdpdGhJZGVu
dGlmaWVyOmZpbGVOYW1lOl0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d3JpdGVU
b1VSTEZvckZpbGVQcm9taXNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c3RhcnREcmFnKToKKyAgICAgICAgKC1bV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGlu
aXRXaXRoSWRlbnRpZmllcjpibG9iVVJMOmZpbGVOYW1lOl0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgYmxvYlVSTF0pOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9wcmVwYXJlVG9EcmFnUHJvbWlzZWRBdHRhY2htZW50Ol0pOgorCiAy
MDIxLTA0LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gQWRkIHNvbWUgc3VwcG9ydCBmb3Igd2VicGFnZSB0cmFuc2xhdGlvbiBpbiBX
ZWJLaXRMZWdhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3ZjBmMDFiZGU4ODRm
ZTkxMzNjMGYxYmFkZDFjNDZhYTM2ZmVjNDU0Li41MGJjY2IwOGUwMDAxZjMxNzYzYTRkNWY3Mjc0
ZGY1YjA1MzgxZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MTIwLDEwICs0
MTIwLDcgQEAgUHJvbWlzZWRBdHRhY2htZW50SW5mbyBFZGl0b3I6OnByb21pc2VkQXR0YWNobWVu
dEluZm8oRWxlbWVudCYgZWxlbWVudCkKICAgICBnZXRQYXN0ZWJvYXJkVHlwZXNBbmREYXRhRm9y
QXR0YWNobWVudChlbGVtZW50LCBhZGRpdGlvbmFsVHlwZXMsIGFkZGl0aW9uYWxEYXRhKTsKICNl
bmRpZgogCi0gICAgaWYgKGF1dG8gZmlsZSA9IG1ha2VSZWZQdHIoYXR0YWNobWVudC0+ZmlsZSgp
KSkKLSAgICAgICAgcmV0dXJuIHsgZmlsZS0+dXJsKCksIHBsYXRmb3JtQ29udGVudFR5cGVGb3JC
bG9iVHlwZShmaWxlLT50eXBlKCkpLCBmaWxlLT5uYW1lKCksIHsgfSwgV1RGTW92ZShhZGRpdGlv
bmFsVHlwZXMpLCBXVEZNb3ZlKGFkZGl0aW9uYWxEYXRhKSB9OwotCi0gICAgcmV0dXJuIHsgeyB9
LCB7IH0sIHsgfSwgYXR0YWNobWVudC0+dW5pcXVlSWRlbnRpZmllcigpLCBXVEZNb3ZlKGFkZGl0
aW9uYWxUeXBlcyksIFdURk1vdmUoYWRkaXRpb25hbERhdGEpIH07CisgICAgcmV0dXJuIHsgYXR0
YWNobWVudC0+dW5pcXVlSWRlbnRpZmllcigpLCBXVEZNb3ZlKGFkZGl0aW9uYWxUeXBlcyksIFdU
Rk1vdmUoYWRkaXRpb25hbERhdGEpIH07CiB9CiAKIHZvaWQgRWRpdG9yOjpyZWdpc3RlckF0dGFj
aG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwgUmVmPFNoYXJlZEJ1
ZmZlcj4mJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvbWlz
ZWRBdHRhY2htZW50SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvbWlzZWRBdHRh
Y2htZW50SW5mby5oCmluZGV4IGE5NThjMmYwYWIyZDlmMWYzNzY2MmE3YTBiNjAyYmUzMTM0MzA3
YjUuLjFlMTJiOTU1NTgwMjkyYzAzYTU3OGVmM2Y3OGIxNTdlZDVmZWMzMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2VkQXR0YWNobWVudEluZm8uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKQEAgLTMzLDEw
ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogc3Ry
dWN0IFByb21pc2VkQXR0YWNobWVudEluZm8gewotICAgIFVSTCBibG9iVVJMOwotICAgIFN0cmlu
ZyBjb250ZW50VHlwZTsKLSAgICBTdHJpbmcgZmlsZU5hbWU7Ci0KICNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQogICAgIFN0cmluZyBhdHRhY2htZW50SWRlbnRpZmllcjsKICNlbmRpZgpA
QCAtNTAsOCArNDYsNyBAQCBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbyB7CiAgICAgICAg
IGlmICghYXR0YWNobWVudElkZW50aWZpZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAjZW5kaWYKLQotICAgICAgICByZXR1cm4gIWNvbnRlbnRUeXBlLmlzRW1wdHkoKSAm
JiAhYmxvYlVSTC5pc0VtcHR5KCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBmNjUxMTZmZjlkNmIwM2IxYTMzMzFjZGJmMzZlNDdkOGE0MTE4Y2I1Li44NjAzZTUyZTQ2YzVj
MTZmYmEzMTk4YTM4ZmRiM2VkYTU5ODZmODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTI4ODIsOSArMjg4Miw2IEBAIE9wdGlvbmFs
PE1lZGlhU2VsZWN0aW9uT3B0aW9uPiBBcmd1bWVudENvZGVyPE1lZGlhU2VsZWN0aW9uT3B0aW9u
Pjo6ZGVjb2RlKERlY29kCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFByb21pc2VkQXR0YWNobWVudElu
Zm8mIGluZm8pCiB7Ci0gICAgZW5jb2RlciA8PCBpbmZvLmJsb2JVUkw7Ci0gICAgZW5jb2RlciA8
PCBpbmZvLmNvbnRlbnRUeXBlOwotICAgIGVuY29kZXIgPDwgaW5mby5maWxlTmFtZTsKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGVuY29kZXIgPDwgaW5mby5hdHRhY2htZW50
SWRlbnRpZmllcjsKICNlbmRpZgpAQCAtMjg5MywxNSArMjg5MCw2IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFByb21pCiAKIGJvb2wgQXJndW1lbnRDb2RlcjxQcm9taXNlZEF0dGFjaG1lbnRJbmZvPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFByb21pc2VkQXR0YWNobWVudEluZm8mIGluZm8pCiB7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmJsb2JVUkwpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY29udGVudFR5cGUpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uZmlsZU5h
bWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5hdHRhY2htZW50SWRlbnRpZmllcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggYTQxODQzZWEyMDA3ZjBjNjU2YzYwNWE5OGUzODVhNzRhMzgw
ZjAzYS4uZWU4NTJiYjg2NGJkY2ViZThkNTdiOGVlMzEzNWZkMGVjNzAxMTJkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTg4NSwxNCArODg1
LDEyIEBAIEBlbmQKIAogQGludGVyZmFjZSBXS1Byb21pc2VkQXR0YWNobWVudENvbnRleHQgOiBO
U09iamVjdCB7CiBAcHJpdmF0ZQotICAgIFJldGFpblB0cjxOU1VSTD4gX2Jsb2JVUkw7CiAgICAg
UmV0YWluUHRyPE5TU3RyaW5nPiBfZmlsZU5hbWU7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBf
YXR0YWNobWVudElkZW50aWZpZXI7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aElkZW50
aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBibG9iVVJMOihOU1VSTCAqKXVybCBmaWxlTmFt
ZTooTlNTdHJpbmcgKilmaWxlTmFtZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aElkZW50aWZp
ZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBmaWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZTsK
IAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqYmxvYlVSTDsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmZpbGVOYW1lOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqYXR0YWNobWVudElkZW50aWZpZXI7CiAK
QEAgLTkwMCwyMiArODk4LDE2IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLUHJvbWlzZWRB
dHRhY2htZW50Q29udGV4dAogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50aWZpZXIgYmxvYlVSTDooTlNVUkwgKilibG9iVVJMIGZpbGVOYW1lOihO
U1N0cmluZyAqKWZpbGVOYW1lCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50aWZpZXIgZmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZU5hbWUKIHsKICAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IF9ibG9iVVJMID0gYmxvYlVSTDsKICAgICBfZmlsZU5hbWUgPSBmaWxlTmFtZTsKICAgICBfYXR0
YWNobWVudElkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIHJldHVybiBzZWxmOwogfQogCi0t
IChOU1VSTCAqKWJsb2JVUkwKLXsKLSAgICByZXR1cm4gX2Jsb2JVUkwuZ2V0KCk7Ci19Ci0KIC0g
KE5TU3RyaW5nICopZmlsZU5hbWUKIHsKICAgICByZXR1cm4gX2ZpbGVOYW1lLmdldCgpOwpAQCAt
NDIzNCwxMiArNDIyNiw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OndyaXRlVG9VUkxGb3JGaWxlUHJv
bWlzZVByb3ZpZGVyKE5TRmlsZVByb21pc2VQcm92aWRlciAqcHJvdmlkCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBVUkwgYmxvYlVSTCB7IGluZm8uYmxvYlVSTCB9OwotICAgIGlmIChi
bG9iVVJMLmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3ZWJLaXRVbmtu
b3duRXJyb3IoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBjb21wbGV0aW9uSGFu
ZGxlcih3ZWJLaXRVbmtub3duRXJyb3IoKSk7CiB9CiAKQEAgLTQyODUsMjAgKzQyNzEsMjEgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVt
LCBjb25zdCBTaGFyZWFibGVCaXRtYXAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogICAgIGlmIChhdXRvJiBpbmZvID0gaXRlbS5wcm9taXNlZEF0dGFjaG1lbnRJbmZv
KSB7Ci0gICAgICAgIE5TU3RyaW5nICp1dGlUeXBlID0gaW5mby5jb250ZW50VHlwZTsKLSAgICAg
ICAgTlNTdHJpbmcgKmZpbGVOYW1lID0gaW5mby5maWxlTmFtZTsKLSAgICAgICAgaWYgKGF1dG8g
YXR0YWNobWVudCA9IG1fcGFnZS0+YXR0YWNobWVudEZvcklkZW50aWZpZXIoaW5mby5hdHRhY2ht
ZW50SWRlbnRpZmllcikpIHsKLSAgICAgICAgICAgIHV0aVR5cGUgPSBhdHRhY2htZW50LT51dGlU
eXBlKCk7Ci0gICAgICAgICAgICBmaWxlTmFtZSA9IGF0dGFjaG1lbnQtPmZpbGVOYW1lKCk7Cisg
ICAgICAgIGF1dG8gYXR0YWNobWVudCA9IG1fcGFnZS0+YXR0YWNobWVudEZvcklkZW50aWZpZXIo
aW5mby5hdHRhY2htZW50SWRlbnRpZmllcik7CisgICAgICAgIGlmICghYXR0YWNobWVudCkgewor
ICAgICAgICAgICAgbV9wYWdlLT5kcmFnQ2FuY2VsbGVkKCk7CisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAorICAgICAgICBOU1N0cmluZyAqdXRpVHlwZSA9IGF0dGFjaG1lbnQtPnV0
aVR5cGUoKTsKICAgICAgICAgaWYgKCF1dGlUeXBlLmxlbmd0aCkgewogICAgICAgICAgICAgbV9w
YWdlLT5kcmFnQ2FuY2VsbGVkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAor
ICAgICAgICBOU1N0cmluZyAqZmlsZU5hbWUgPSBhdHRhY2htZW50LT5maWxlTmFtZSgpOwogICAg
ICAgICBhdXRvIHByb3ZpZGVyID0gYWRvcHROUyhbW05TRmlsZVByb21pc2VQcm92aWRlciBhbGxv
Y10gaW5pdFdpdGhGaWxlVHlwZTp1dGlUeXBlIGRlbGVnYXRlOihpZCA8TlNGaWxlUHJvbWlzZVBy
b3ZpZGVyRGVsZWdhdGU+KW1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKV0pOwotICAgICAgICBhdXRv
IGNvbnRleHQgPSBhZG9wdE5TKFtbV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGFsbG9jXSBp
bml0V2l0aElkZW50aWZpZXI6aW5mby5hdHRhY2htZW50SWRlbnRpZmllciBibG9iVVJMOmluZm8u
YmxvYlVSTCBmaWxlTmFtZTpmaWxlTmFtZV0pOworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dE5TKFtbV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IGFsbG9jXSBpbml0V2l0aElkZW50aWZp
ZXI6aW5mby5hdHRhY2htZW50SWRlbnRpZmllciBmaWxlTmFtZTpmaWxlTmFtZV0pOwogICAgICAg
ICBbcHJvdmlkZXIgc2V0VXNlckluZm86Y29udGV4dC5nZXQoKV07CiAgICAgICAgIGF1dG8gZHJh
Z2dpbmdJdGVtID0gYWRvcHROUyhbW05TRHJhZ2dpbmdJdGVtIGFsbG9jXSBpbml0V2l0aFBhc3Rl
Ym9hcmRXcml0ZXI6cHJvdmlkZXIuZ2V0KCldKTsKICAgICAgICAgW2RyYWdnaW5nSXRlbSBzZXRE
cmFnZ2luZ0ZyYW1lOk5TTWFrZVJlY3QoY2xpZW50RHJhZ0xvY2F0aW9uLngoKSwgY2xpZW50RHJh
Z0xvY2F0aW9uLnkoKSAtIHNpemUuaGVpZ2h0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSkgY29udGVudHM6ZHJhZ05TSW1hZ2UuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggOGNmYzE3
N2YwNmY1N2MyMmQxMGRlZTFhY2YxNGE4NjZmZTNiYmVmNC4uYzQ3NzJlNjczMTk4NTNhN2UwZTIz
MmE0OWEyNzY2NTc4MzRiNWI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC04MTQ5LDEwICs4MTQ5LDEw
IEBAIC0gKHZvaWQpX3ByZXBhcmVUb0RyYWdQcm9taXNlZEF0dGFjaG1lbnQ6KGNvbnN0IFdlYkNv
cmU6OlByb21pc2VkQXR0YWNobWVudEluZm8mCiAgICAgYXV0byBudW1iZXJPZkFkZGl0aW9uYWxU
eXBlcyA9IGluZm8uYWRkaXRpb25hbFR5cGVzLnNpemUoKTsKICAgICBBU1NFUlQobnVtYmVyT2ZB
ZGRpdGlvbmFsVHlwZXMgPT0gaW5mby5hZGRpdGlvbmFsRGF0YS5zaXplKCkpOwogCi0gICAgUkVM
RUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb246ICVwIHByZXBhcmluZyB0byBkcmFn
IGJsb2I6ICVzIHdpdGggYXR0YWNobWVudCBpZGVudGlmaWVyOiAlcyIsIHNlc3Npb24uZ2V0KCks
IGluZm8uYmxvYlVSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBpbmZvLmF0dGFjaG1lbnRJZGVu
dGlmaWVyLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRHJh
ZyBzZXNzaW9uOiAlcCBwcmVwYXJpbmcgdG8gZHJhZyB3aXRoIGF0dGFjaG1lbnQgaWRlbnRpZmll
cjogJXMiLCBzZXNzaW9uLmdldCgpLCBpbmZvLmF0dGFjaG1lbnRJZGVudGlmaWVyLnV0ZjgoKS5k
YXRhKCkpOwogCi0gICAgTlNTdHJpbmcgKnV0aVR5cGUgPSBpbmZvLmNvbnRlbnRUeXBlOwotICAg
IE5TU3RyaW5nICpmaWxlTmFtZSA9IGluZm8uZmlsZU5hbWU7CisgICAgTlNTdHJpbmcgKnV0aVR5
cGUgPSBuaWw7CisgICAgTlNTdHJpbmcgKmZpbGVOYW1lID0gbmlsOwogICAgIGlmIChhdXRvIGF0
dGFjaG1lbnQgPSBfcGFnZS0+YXR0YWNobWVudEZvcklkZW50aWZpZXIoaW5mby5hdHRhY2htZW50
SWRlbnRpZmllcikpIHsKICAgICAgICAgdXRpVHlwZSA9IGF0dGFjaG1lbnQtPnV0aVR5cGUoKTsK
ICAgICAgICAgZmlsZU5hbWUgPSBhdHRhY2htZW50LT5maWxlTmFtZSgpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGYzNmE2NTczYzQ1ZDM4NDgy
NDBkM2ZjYzBjYzQzMzA3ZDUwZTBiMzcuLjJlMzlmMTU2MzE5MmJiYmE1MDFkZjE0NWNmNGY4NmM3
M2EzY2QzYmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNC0xNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUHJvbWlzZWRBdHRhY2htZW50SW5mbzo6
YmxvYlVSTCBhbmQgYWRqYWNlbnQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBhIGNvdXBsZSBvZiBpT1MgV0tBdHRhY2htZW50
IHRlc3RzIHRoYXQgYXJlIGZhaWxpbmcgb24gcmVjZW50IHZlcnNpb25zIG9mIHRoZSBpT1MgU0RL
LiBUaGUgY29udGVudAorICAgICAgICB0eXBlIG9mIHRleHQgZmlsZXMgdGhhdCBhcmUgaW5zZXJ0
ZWQgYXMgYXR0YWNobWVudHMgaXMgbm93IGEgTUlNRSB0eXBlIHJhdGhlciB0aGFuIGEgVVRJLCB3
aGljaCBpcyBzdGlsbCB2YWxpZAorICAgICAgICBzaW5jZSBpdCBpcyB2YWxpZCBmb3IgdGhlIGNv
bnRlbnQgdHlwZSBvZiBhbiBhdHRhY2htZW50IHRvIGJlIGVpdGhlciBhIE1JTUUgdHlwZSBvciBV
VEkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNo
bWVudFRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDQt
MTcgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5v
dCBjb25maWd1cmUgSmFuaXRvciB0byBkZWxldGUgb2xkIGxvZ3MgaW4gbG9jYWwgdGVzdGluZyBt
b2RlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
QXR0YWNobWVudFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS0F0dGFjaG1lbnRUZXN0cy5tbQppbmRleCA3MGUxMGZmZTE5ODIwZGM2ZjM4ZmM1N2U0ZTM1
OGFjYjdjNmZhY2ZiLi5lZTMyYzM5M2U3NGZjN2UzNzAxZmUzMDkxYzI2MDgwOTEzNjRiOTRhIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNo
bWVudFRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tBdHRhY2htZW50VGVzdHMubW0KQEAgLTE4OTYsNyArMTg5Niw4IEBAIFRFU1QoV0tBdHRhY2ht
ZW50VGVzdHNJT1MsIEluc2VydERyb3BwZWRSaWNoQW5kUGxhaW5UZXh0RmlsZXNBc0F0dGFjaG1l
bnRzKQogICAgIEVYUEVDVF9XS19TVFJFUSgiaGVsbG8ucnRmIiwgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1l
bnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKChf
X2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVGbGF0UlRGRCwgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQn
KVswXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIndvcmxk
LnR4dCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0aXRsZScpIl0p
OwotICAgIEVYUEVDVF9XS19TVFJFUSgoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBs
YWluVGV4dCwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVsxXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJd
KTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVsxXS5nZXRB
dHRyaWJ1dGUoJ3R5cGUnKSJdOworICAgIEVYUEVDVF9UUlVFKFtjb250ZW50VHlwZSBpc0VxdWFs
VG9TdHJpbmc6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHRdIHx8IFtj
b250ZW50VHlwZSBjb250YWluc1N0cmluZzpAInRleHQvcGxhaW4iXSk7CiB9CiAKIFRFU1QoV0tB
dHRhY2htZW50VGVzdHNJT1MsIEluc2VydERyb3BwZWRaaXBBcmNoaXZlQXNBdHRhY2htZW50KQpA
QCAtMTk1Myw3ICsxOTU0LDggQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0RHJv
cHBlZEl0ZW1Qcm92aWRlcnNJbk9yZGVyKQogICAgIFt3ZWJWaWV3IGV4cGVjdEVsZW1lbnRUYWdz
SW5PcmRlcjpAWyBAIkFUVEFDSE1FTlQiLCBAIkEiLCBAIkFUVEFDSE1FTlQiIF1dOwogCiAgICAg
RVhQRUNUX1dLX1NUUkVRKCJmaXJzdC50eHQiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzBdLmdl
dEF0dHJpYnV0ZSgndGl0bGUnKSJdKTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoKF9fYnJpZGdlIE5T
U3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMF0u
Z2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CisgICAgYXV0byBjb250ZW50VHlwZSA9IFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXTsKKyAgICBFWFBFQ1RfVFJV
RShbY29udGVudFR5cGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5
cGVVVEY4UGxhaW5UZXh0XSB8fCBbY29udGVudFR5cGUgY29udGFpbnNTdHJpbmc6QCJ0ZXh0L3Bs
YWluIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUShbYXBwbGVVUkwgYWJzb2x1dGVTdHJpbmddLCBb
d2ViVmlldyB2YWx1ZU9mQXR0cmlidXRlOkAiaHJlZiIgZm9yUXVlcnlTZWxlY3RvcjpAImEiXSk7
CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJzZWNvbmQucGRmIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQn
KVsxXS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJhcHBs
aWNhdGlvbi9wZGYiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzFdLmdldEF0dHJpYnV0ZSgndHlw
ZScpIl0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>