<?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>232515</bug_id>
          
          <creation_ts>2021-10-29 16:47:40 -0700</creation_ts>
          <short_desc>Rename ImageBuffer.logicalSize to ImageBuffer.truncatedLogicalSize</short_desc>
          <delta_ts>2021-10-29 19:44:34 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>225377</blocked>
    
    <blocked>232470</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810319</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-29 16:47:40 -0700</bug_when>
    <thetext>Rename ImageBuffer.logicalSize to ImageBuffer.truncatedLogicalSize</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810321</commentid>
    <comment_count>1</comment_count>
      <attachid>442881</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-29 16:53:35 -0700</bug_when>
    <thetext>Created attachment 442881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810329</commentid>
    <comment_count>2</comment_count>
      <attachid>442883</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-29 17:12:25 -0700</bug_when>
    <thetext>Created attachment 442883
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810337</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-29 17:40:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/84829689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810370</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-29 19:44:34 -0700</bug_when>
    <thetext>Committed r285071 (243713@main): &lt;https://commits.webkit.org/243713@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442881</attachid>
            <date>2021-10-29 16:53:35 -0700</date>
            <delta_ts>2021-10-29 17:22:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232515-20211029165334.patch</filename>
            <type>text/plain</type>
            <size>28264</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ5OGZmMTQ2YmQ4NWI4
NGUwMzhhY2ZmNWYwNGUzYjMzZDUxNGUyYy4uMzgzNmExMzlkMzAxOWFmMTg0ODQzMWJlYWQ2Yjg1
MDNkNzY0NTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIxLTEwLTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIElt
YWdlQnVmZmVyLmxvZ2ljYWxTaXplIHRvIEltYWdlQnVmZmVyLnRydW5jYXRlZExvZ2ljYWxTaXpl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI1MTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlz
IGEgcHVyZWx5IG1lY2hhbmljYWwgY2hhbmdlLCBhbmQgaXMgdGhlIGZpcnN0IHN0ZXAgaW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTM3Ny4gT25j
ZSB3ZSBoYXZlIGJvdGggbG9naWNhbFNpemUoKQorICAgICAgICBhbmQgdHJ1bmNhdGVkTG9naWNh
bFNpemUoKSwgd2UgY2FuIHN0YXJ0IG1pZ3JhdGluZyBjYWxsZXJzIHRvIHRoZSBjb3JyZWN0IG9u
ZQorICAgICAgICBhbmQgYXdheSBmcm9tIHRoZSB0cnVjYXRlZCBvbmUuCisKKyAgICAgICAgSSBk
aWQgdGhpcyByZW5hbWUgYnkgYWRkaW5nIHRydW5jYXRlZEltYWdlU2l6ZSwgYW5kIHRoZW4gdGVt
cG9yYXJpbHkgcmVuYW1pbmcKKyAgICAgICAgbG9naWNhbFNpemUoKSB0byBzb21lIGR1bW15IHZh
bHVlIC0gdG8gZm9yY2UgY29tcGlsYXRpb24gZmFpbHVyZXMgYXQgZXZlcnkgY2FsbAorICAgICAg
ICB0byBsb2dpY2FsU2l6ZSgpLiBUaGVuLCBvbmNlIGNvbXBpbGluZyBmb3VuZCBhbGwgdGhlIGNh
bGwgc2l0ZXMsIEkgcmVuYW1lZCBpdAorICAgICAgICBiYWNrIHRvIGp1c3QgbG9naWNhbFNpemUo
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBj
aGFuZ2UuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wSW1hZ2VCaXRtYXApOgor
ICAgICAgICAqIGh0bWwvQ2FudmFzQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNC
YXNlOjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9NZWRpYVNh
bXBsZSk6CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1h
cEJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXBCYWNraW5nOjp3aWR0
aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcEJhY2tpbmc6OmhlaWdodCBj
b25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpw
dXRJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
TFJVSW1hZ2VCdWZmZXJDYWNoZTo6aW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZUNv
bG9yU2FtcGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW1wbGVDb2xvcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9T
aGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6OldURl9SRVFV
SVJFU19MT0NLKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Oklt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OnBsYXRmb3JtQXBw
bHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9y
TWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBw
bHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
c2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNv
ZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6OnBsYXRmb3JtQXBwbHlTb2Z0
d2FyZSk6CisgICAgICAgICogcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NGaWx0ZXI6OmFsbG9jYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKToKKwogMjAyMS0x
MC0yOSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEF2
b2lkIHNlbmRpbmcgdmlkZW8gZGF0YSB0byBXZWIgcHJvY2VzcyBmb3IgY2FudmFzLmRyYXdJbWFn
ZSh2aWRlbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGFlNjZkYTBkZTM1MGY4NTk5MWM4NjBkMDhkNDY5YWI2YjJl
MjZiZi4uYTQ1OGY5YThkZGE3ZTQzZTI4NGIxN2UxOTExZGIyNDA5MTVmYzBiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMC0yOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBJbWFnZUJ1ZmZlci5sb2dpY2FsU2l6ZSB0
byBJbWFnZUJ1ZmZlci50cnVuY2F0ZWRMb2dpY2FsU2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90
ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlUmVtb3RlSW1hZ2VCdWZmZXIpOgorCiAyMDIxLTEw
LTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODQ5MTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA5YzVlMmM1MDc5
YjEyZDc4MjdkZjRhZjQ1Zjk0MWQzNjBkNTQ1Yzk2Li4wYmFmYTc5ODMwOWMxNjUwYzY0MDJiZDA2
ZWVhNzMwMTE5NmUzZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTExMTMsNyArMTExMyw3IEBAIHByaXZhdGU6
CiAKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgdG8gYXZvaWQgY29udmVydGluZyBw
aXhlbCBmb3JtYXQuCiAgICAgICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZvcm1hdCB7IEFscGhhUHJl
bXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpSR0JBOCwgYnVmZmVy
LT5jb2xvclNwYWNlKCkgfTsKLSAgICAgICAgY29uc3QgSW50U2l6ZSYgbG9naWNhbFNpemUgPSBi
dWZmZXItPmxvZ2ljYWxTaXplKCk7CisgICAgICAgIGNvbnN0IEludFNpemUmIGxvZ2ljYWxTaXpl
ID0gYnVmZmVyLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpOwogICAgICAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gYnVmZmVyLT5nZXRQaXhlbEJ1ZmZlcihmb3JtYXQsIHsgSW50UG9pbnQ6Onplcm8oKSwg
bG9naWNhbFNpemUgfSk7CiAgICAgICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKICAgICAgICAgICAg
IGNvZGUgPSBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6VmFsaWRhdGlvbkVycm9yOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ2FudmFzQmFzZS5jcHAKaW5kZXggMDA4Y2NhMjQ1NmEyNWE0ZjZiZWNjY2NjMTgwMTUw
ZWFkYzU1ZTcwNy4uOGUxZjk3YzkyODE0NmI4ZTY2NWQyMjFlNGY4ZWJjYTkzMDQ2MWQzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NhbnZhc0Jhc2UuY3BwCkBAIC0yMDksOCArMjA5LDggQEAgUmVmUHRyPElt
YWdlQnVmZmVyPiBDYW52YXNCYXNlOjpzZXRJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+
JiYgYnVmZmVyKSBjb24KICAgICAgICAgcmV0dXJuQnVmZmVyID0gc3RkOjpleGNoYW5nZShtX2lt
YWdlQnVmZmVyLCBXVEZNb3ZlKGJ1ZmZlcikpOwogICAgIH0KIAotICAgIGlmIChtX2ltYWdlQnVm
ZmVyICYmIG1fc2l6ZSAhPSBtX2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKQotICAgICAgICBt
X3NpemUgPSBtX2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpOworICAgIGlmIChtX2ltYWdlQnVm
ZmVyICYmIG1fc2l6ZSAhPSBtX2ltYWdlQnVmZmVyLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpKQor
ICAgICAgICBtX3NpemUgPSBtX2ltYWdlQnVmZmVyLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpOwog
CiAgICAgc2l6ZV90IHByZXZpb3VzTWVtb3J5Q29zdCA9IG1faW1hZ2VCdWZmZXJDb3N0OwogICAg
IG1faW1hZ2VCdWZmZXJDb3N0ID0gbWVtb3J5Q29zdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA4OTEwZTc1MTkxMjUxMTIyNWM1OGVkYmYyNmNkMjE3
MzJlNjFmN2FlLi42Y2FmNzhiZWYyZWIwNmNmMGE2N2QxYTFjODExNzVmMzY0YTkwNTc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtNzc3LDcgKzc3Nyw3
IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gSFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUo
KQogICAgIC8vIEZJWE1FOiBUaGlzIGNhbiBsaWtlbHkgYmUgb3B0aW1pemVkIHF1aXRlIGEgYml0
LCBlc3BlY2lhbGx5IGluIHRoZSBjYXNlcyB3aGVyZQogICAgIC8vIHRoZSBJbWFnZUJ1ZmZlciBp
cyBiYWNrZWQgYnkgR1BVIG1lbW9yeSBhbHJlYWR5IGFuZC9vciBpcyBpbiB0aGUgR1BVIHByb2Nl
c3MgYnkKICAgICAvLyBzcGVjaWFsaXppbmcgdG9NZWRpYVNhbXBsZSgpIGluIEltYWdlQnVmZmVy
QmFja2VuZCB0byBub3QgdXNlIGdldFBpeGVsQnVmZmVyKCkuCi0gICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IGltYWdlQnVmZmVyLT5nZXRQaXhlbEJ1ZmZlcih7IEFscGhhUHJlbXVsdGlwbGljYXRpb246
OlVucHJlbXVsdGlwbGllZCwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OlNSR0IoKSB9LCB7IHsgfSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkgfSk7CisgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IGltYWdlQnVmZmVyLT5nZXRQaXhlbEJ1ZmZlcih7IEFscGhhUHJl
bXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSB9LCB7IHsgfSwgaW1hZ2VCdWZmZXItPnRydW5jYXRl
ZExvZ2ljYWxTaXplKCkgfSk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKaW5kZXggMDk4YWUwMTQ2
ZWNmOGI4ODEwYWZiMWUyOTM3NmE4YmRmZmY4MjJlOC4uYjg4NmI3NzA0YTE0ZGY1Njc3YTRkMTZi
Y2JjZTU4OWQwYTUyM2VlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJp
dG1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKQEAgLTU3
Miw3ICs1NzIsNyBAQCB2b2lkIEltYWdlQml0bWFwOjpjcmVhdGVQcm9taXNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAKICAgICAvLyA0LiBMZXQgdGhl
IEltYWdlQml0bWFwIG9iamVjdCdzIGJpdG1hcCBkYXRhIGJlIGEgY29weSBvZiB0aGUgaW1hZ2Ug
YXJndW1lbnQncwogICAgIC8vICAgIGJpdG1hcCBkYXRhLCBjcm9wcGVkIHRvIHRoZSBzb3VyY2Ug
cmVjdGFuZ2xlIHdpdGggZm9ybWF0dGluZy4KLSAgICBhdXRvIHNvdXJjZVJlY3RhbmdsZSA9IGNy
b3BwZWRTb3VyY2VSZWN0YW5nbGVXaXRoRm9ybWF0dGluZyhleGlzdGluZ0ltYWdlQml0bWFwLT5i
dWZmZXIoKS0+bG9naWNhbFNpemUoKSwgb3B0aW9ucywgV1RGTW92ZShyZWN0KSk7CisgICAgYXV0
byBzb3VyY2VSZWN0YW5nbGUgPSBjcm9wcGVkU291cmNlUmVjdGFuZ2xlV2l0aEZvcm1hdHRpbmco
ZXhpc3RpbmdJbWFnZUJpdG1hcC0+YnVmZmVyKCktPnRydW5jYXRlZExvZ2ljYWxTaXplKCksIG9w
dGlvbnMsIFdURk1vdmUocmVjdCkpOwogICAgIGlmIChzb3VyY2VSZWN0YW5nbGUuaGFzRXhjZXB0
aW9uKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3Qoc291cmNlUmVjdGFuZ2xlLnJlbGVhc2VF
eGNlcHRpb24oKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VCaXRtYXBCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VC
aXRtYXBCYWNraW5nLmNwcAppbmRleCA5M2M1ZmVhNTI3NGJhODgzMmEzMDU2N2I0NDU0YWU1Yzcx
YzVhNjQ2Li4zZmVhNmE2ZmM3ZTM2ZDk4YTg3Njg5M2NjYTUyZjM5ZGE1NzlhNjZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcEJhY2tpbmcuY3BwCkBAIC00OCwxMyArNDgsMTMg
QEAgUmVmUHRyPEltYWdlQnVmZmVyPiBJbWFnZUJpdG1hcEJhY2tpbmc6OnRha2VJbWFnZUJ1ZmZl
cigpCiB1bnNpZ25lZCBJbWFnZUJpdG1hcEJhY2tpbmc6OndpZHRoKCkgY29uc3QKIHsKICAgICAv
LyBGSVhNRTogSXMgdGhpcyB0aGUgcmlnaHQgd2lkdGg/Ci0gICAgcmV0dXJuIG1fYml0bWFwRGF0
YSA/IG1fYml0bWFwRGF0YS0+bG9naWNhbFNpemUoKS53aWR0aCgpIDogMDsKKyAgICByZXR1cm4g
bV9iaXRtYXBEYXRhID8gbV9iaXRtYXBEYXRhLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpLndpZHRo
KCkgOiAwOwogfQogCiB1bnNpZ25lZCBJbWFnZUJpdG1hcEJhY2tpbmc6OmhlaWdodCgpIGNvbnN0
CiB7CiAgICAgLy8gRklYTUU6IElzIHRoaXMgdGhlIHJpZ2h0IGhlaWdodD8KLSAgICByZXR1cm4g
bV9iaXRtYXBEYXRhID8gbV9iaXRtYXBEYXRhLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpIDogMDsK
KyAgICByZXR1cm4gbV9iaXRtYXBEYXRhID8gbV9iaXRtYXBEYXRhLT50cnVuY2F0ZWRMb2dpY2Fs
U2l6ZSgpLmhlaWdodCgpIDogMDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmNwcAppbmRleCBlNDAyNzgwM2IxYzU3MDRlNjEzYWJlMDIxOWRkNjE2YjVhYTdi
MzYzLi4zZjY5OWQ2YmZlOGQ2OTNhNzM0ZjQzMDFlYTZmODllOTRiMjU5MjVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmNwcApAQCAtMjI0OCw3ICsyMjQ4LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlOjpwdXRJbWFnZURhdGEoSW1hZ2VEYXRhJiBkYXRhLCBpbnQgZHgsIGludCBk
eSwKICAgICBJbnRTaXplIGRlc3RPZmZzZXQgeyBkeCwgZHkgfTsKICAgICBJbnRSZWN0IGRlc3RS
ZWN0ID0gY2xpcFJlY3Q7CiAgICAgZGVzdFJlY3QubW92ZShkZXN0T2Zmc2V0KTsKLSAgICBkZXN0
UmVjdC5pbnRlcnNlY3QoSW50UmVjdCB7IHsgfSwgYnVmZmVyLT5sb2dpY2FsU2l6ZSgpIH0pOwor
ICAgIGRlc3RSZWN0LmludGVyc2VjdChJbnRSZWN0IHsgeyB9LCBidWZmZXItPnRydW5jYXRlZExv
Z2ljYWxTaXplKCkgfSk7CiAgICAgaWYgKGRlc3RSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIEludFJlY3Qgc291cmNlUmVjdCB7IGRlc3RSZWN0IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGVjZmY1OTFjYzY3MTA2NjcxNDFkZWNlYjczNzAxODVhYmEyM2MyYTQuLjMzOTI1YmM2
YWM4ZDg3YjQxMDZiMDYzMWVkMzQyOTAzOWE3OGFmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC03
Nzk4LDcgKzc3OTgsNyBAQCBJbWFnZUJ1ZmZlciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
TFJVSW1hZ2VCdWZmZXJDYWNoZTo6aW1hZ2VCdWZmZXIoY29uc3QgSQogICAgICAgICBpZiAoIW1f
YnVmZmVyc1tpXSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBJbWFnZUJ1ZmZlciYgYnVm
ID0gbV9idWZmZXJzW2ldLT5zZWNvbmQuZ2V0KCk7Ci0gICAgICAgIGlmIChtX2J1ZmZlcnNbaV0t
PmZpcnN0ICE9IGNvbG9yU3BhY2UgfHwgYnVmLmxvZ2ljYWxTaXplKCkgIT0gc2l6ZSkKKyAgICAg
ICAgaWYgKG1fYnVmZmVyc1tpXS0+Zmlyc3QgIT0gY29sb3JTcGFjZSB8fCBidWYudHJ1bmNhdGVk
TG9naWNhbFNpemUoKSAhPSBzaXplKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGJ1
YmJsZVRvRnJvbnQoaSk7CiAgICAgICAgIGlmIChmaWxsT3BlcmF0b3IgIT0gQ29tcG9zaXRlT3Bl
cmF0b3I6OkNvcHkgJiYgZmlsbE9wZXJhdG9yICE9IENvbXBvc2l0ZU9wZXJhdG9yOjpDbGVhcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbG9yU2FtcGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb2xvclNhbXBsZXIuY3BwCmluZGV4IDVkZGQzMWY5ZmUy
ZTNiYjI4Y2E3ODVlNWJjNzI2NzMzMTRiMDJkZmEuLjUyYmJjNTMyZTZlZDJkYWMyZDY2NTM2OTM5
MGYyNTBjYzFiYjA2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbG9y
U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29sb3JTYW1wbGVyLmNw
cApAQCAtMTI0LDcgKzEyNCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExhYjxmbG9hdD4+IHNh
bXBsZUNvbG9yKERvY3VtZW50JiBkb2N1bWVudCwgSW50UG9pbnQmJiBsb2NhCiAgICAgaWYgKCFz
bmFwc2hvdCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGF1dG8gcGl4ZWxC
dWZmZXIgPSBzbmFwc2hvdC0+Z2V0UGl4ZWxCdWZmZXIoeyBBbHBoYVByZW11bHRpcGxpY2F0aW9u
OjpVbnByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpCR1JBOCwgY29sb3JTcGFjZSB9LCB7IHsg
fSwgc25hcHNob3QtPmxvZ2ljYWxTaXplKCkgfSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHNu
YXBzaG90LT5nZXRQaXhlbEJ1ZmZlcih7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVs
dGlwbGllZCwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBjb2xvclNwYWNlIH0sIHsgeyB9LCBzbmFwc2hv
dC0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKSB9KTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggZTVhMmEwNjQ1MTdj
NmU2MzYyNjY1OWE0YTkzMTM2MTlmMjQzMGZiMy4uOTUxYWU5YmUzODJjMTNmZDk3Mjg5ZWI0MzIz
YmFlNDM5YzYzMjNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtOTAsNyArOTAsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBJbnRTaXplIGxvZ2ljYWxTaXplKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gSW50U2l6ZShtX3BhcmFtZXRlcnMubG9naWNhbFNpemUpOyB9CisgICAg
RmxvYXRTaXplIGxvZ2ljYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wYXJhbWV0
ZXJzLmxvZ2ljYWxTaXplOyB9CisgICAgSW50U2l6ZSB0cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFNpemUobV9wYXJhbWV0ZXJzLmxvZ2ljYWxTaXplKTsg
fSAvLyBZb3UgcHJvYmFibHkgc2hvdWxkIGJlIGNhbGxpbmcgbG9naWNhbFNpemUoKSBpbnN0ZWFk
LgogICAgIGZsb2F0IHJlc29sdXRpb25TY2FsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
cGFyYW1ldGVycy5yZXNvbHV0aW9uU2NhbGU7IH0KICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5jb2xvclNw
YWNlOyB9CiAgICAgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3BhcmFtZXRlcnMucGl4ZWxGb3JtYXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDRjMWM1ZjkwODdh
OTNhN2QxMjViODkzNjQ0OGYwNGVmZWQwZjcwYzAuLjYxNjBjYmZhMDIyNTMyYzBmMTZlMmE3MDNl
MDQzOTc2YzkyMTBjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNTkxLDEyICs1OTEsMTIgQEAgSW1hZ2VEcmF3
UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG9hdFJlY3QmIGQKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCiB7Ci0gICAgZHJhd0lt
YWdlQnVmZmVyKGltYWdlLCBGbG9hdFJlY3QoZGVzdGluYXRpb24sIGltYWdlLmxvZ2ljYWxTaXpl
KCkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZS5sb2dpY2FsU2l6ZSgpKSwgaW1hZ2VQ
YWludGluZ09wdGlvbnMpOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgRmxvYXRSZWN0KGRl
c3RpbmF0aW9uLCBpbWFnZS50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpKSwgRmxvYXRSZWN0KEZsb2F0
UG9pbnQoKSwgaW1hZ2UudHJ1bmNhdGVkTG9naWNhbFNpemUoKSksIGltYWdlUGFpbnRpbmdPcHRp
b25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKIHsKLSAgICBkcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2UsIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUo
aW1hZ2UubG9naWNhbFNpemUoKSkpLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgZHJhd0lt
YWdlQnVmZmVyKGltYWdlLCBkZXN0aW5hdGlvbiwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgRmxv
YXRTaXplKGltYWdlLnRydW5jYXRlZExvZ2ljYWxTaXplKCkpKSwgaW1hZ2VQYWludGluZ09wdGlv
bnMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpAQCAtNjA5LDcg
KzYwOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIo
UmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QKIHsKICAgICBpZiAoIWltYWdlKQogICAg
ICAgICByZXR1cm47Ci0gICAgSW50U2l6ZSBpbWFnZUxvZ2ljYWxTaXplID0gaW1hZ2UtPmxvZ2lj
YWxTaXplKCk7CisgICAgSW50U2l6ZSBpbWFnZUxvZ2ljYWxTaXplID0gaW1hZ2UtPnRydW5jYXRl
ZExvZ2ljYWxTaXplKCk7CiAgICAgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKFdURk1vdmUoaW1h
Z2UpLCBGbG9hdFJlY3QoZGVzdGluYXRpb24sIGltYWdlTG9naWNhbFNpemUpLCBGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBpbWFnZUxvZ2ljYWxTaXplKSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwog
fQogCkBAIC02MTcsNyArNjE3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1p
bmdJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlLCBjb25zdAogewogICAgIGlm
ICghaW1hZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBJbnRTaXplIGltYWdlTG9naWNhbFNpemUg
PSBpbWFnZS0+bG9naWNhbFNpemUoKTsKKyAgICBJbnRTaXplIGltYWdlTG9naWNhbFNpemUgPSBp
bWFnZS0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKTsKICAgICBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZm
ZXIoV1RGTW92ZShpbWFnZSksIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBG
bG9hdFNpemUoaW1hZ2VMb2dpY2FsU2l6ZSkpLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4
IGU1YmIzZDRmNTdjMWNjMjMxNjA5OTRjYzNkNmM3MGQ4YWVjOWJlNTAuLjM0YzRjNzlkMzM0NGY0
M2M4MjYzMmRjZTliMDNhOWY2MjUyODZjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtODYsNyArODYsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvQXBwZW5kRGlzcGxh
eUxpc3RJdGVtcyhEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRsZSYmKSB7IH0KIAotICAgIHZp
cnR1YWwgSW50U2l6ZSBsb2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0
U2l6ZSBsb2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEludFNpemUgdHJ1bmNh
dGVkTG9naWNhbFNpemUoKSBjb25zdCA9IDA7IC8vIFRoaXMgdHJ1bmNhdGVzIHRoZSByZWFsIHNp
emUuIFlvdSBwcm9iYWJseSBzaG91bGQgYmUgY2FsbGluZyBsb2dpY2FsU2l6ZSgpIGluc3RlYWQu
CiAgICAgdmlydHVhbCBmbG9hdCByZXNvbHV0aW9uU2NhbGUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCA4MzJhMjc2ZTdj
NjA5MGMxYmFlODMxYjhiZTM4ZmUyMGQ0OTQyNTZiLi5mOGI2MTAyZDY4M2NkNGI2OWE4NzA5MGY1
MDZmY2Q2MDk4OThiNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9TaGFkb3dCbHVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0pOwog
CiAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIHJlY3JlYXRlIHRoZSBidWZmZXIgaWYgdGhl
IGN1cnJlbnQgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KLSAgICAgICAgaWYgKG1faW1hZ2VCdWZm
ZXIgJiYgbV9pbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKS53aWR0aCgpID49IHNpemUud2lkdGgo
KSAmJiBtX2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpID49IHNpemUuaGVpZ2h0
KCkpCisgICAgICAgIGlmIChtX2ltYWdlQnVmZmVyICYmIG1faW1hZ2VCdWZmZXItPnRydW5jYXRl
ZExvZ2ljYWxTaXplKCkud2lkdGgoKSA+PSBzaXplLndpZHRoKCkgJiYgbV9pbWFnZUJ1ZmZlci0+
dHJ1bmNhdGVkTG9naWNhbFNpemUoKS5oZWlnaHQoKSA+PSBzaXplLmhlaWdodCgpKQogICAgICAg
ICAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXI7CiAKICAgICAgICAgLy8gUm91bmQgdG8gdGhlIG5l
YXJlc3QgMzIgcGl4ZWxzIHNvIHdlIGRvIG5vdCBncm93IHRoZSBidWZmZXIgZm9yIHNpbWlsYXIg
c2l6ZWQgcmVxdWVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIu
aAppbmRleCA4OGI2YThiMjZmMDU0NTllZGU2ZDM2ZGFkMzZmZGQzYjQyZGVkNjk5Li4zZGNhOTdj
ZmViYzA3NzNkNzAzYjY1NzJlOTMzMzU1ZDRjMzI1ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgogY2xhc3MgSW1hZ2VCdWZm
ZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4gewogICAgIHVzaW5n
IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlw
ZT47CisgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRydW5jYXRlZExvZ2ljYWxT
aXplOwogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpsb2dpY2FsU2l6ZTsKICAg
ICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybTsKIApAQCAtNTEs
NyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlckJh
Y2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlw
ZT4mJiBiYWNrZW5kKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKHBhcmFtZXRl
cnMsIFdURk1vdmUoYmFja2VuZCkpCi0gICAgICAgICwgbV9kcmF3aW5nQ29udGV4dChsb2dpY2Fs
U2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCkpCisgICAgICAgICwgbV9kcmF3aW5nQ29udGV4dCh0cnVu
Y2F0ZWRMb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCkpCiAgICAgICAgICwgbV93cml0aW5n
Q2xpZW50KG1ha2VVbmlxdWU8SW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudD4oKSkK
ICAgICAgICAgLCBtX3JlYWRpbmdDbGllbnQobWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0
OjpSZWFkaW5nQ2xpZW50PigpKQogICAgIHsKQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogCiAg
ICAgSW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBSZWNvcmRlckltcGw6OkRlbGVnYXRlKiBkZWxlZ2F0ZSA9IG51bGxwdHIpCiAgICAg
ICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVycykKLSAgICAgICAgLCBtX2Ry
YXdpbmdDb250ZXh0KGxvZ2ljYWxTaXplKCksIGJhc2VUcmFuc2Zvcm0oKSwgZGVsZWdhdGUpCisg
ICAgICAgICwgbV9kcmF3aW5nQ29udGV4dCh0cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpLCBiYXNlVHJh
bnNmb3JtKCksIGRlbGVnYXRlKQogICAgICAgICAsIG1fd3JpdGluZ0NsaWVudChtYWtlVW5pcXVl
PEluTWVtb3J5RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ+KCkpCiAgICAgICAgICwgbV9yZWFk
aW5nQ2xpZW50KG1ha2VVbmlxdWU8SW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVhZGluZ0NsaWVudD4o
KSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQmxlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmNwcAppbmRleCBjZGVhYTY1ZTY3MDRjZDY3ZmIwYTdhZmU5YWYxOGZiYjYy
YzJjZWQ5Li5jYjgzYTg2MTAzMzMzNjRhNTg1MDBlMTkzMDZjMzNjYmY3YjZhYjE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5j
cHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBGRUJsZW5kOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUo
KQogICAgICAgICByZXR1cm47CiAKICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigq
aW1hZ2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWlu
dFJlY3QoKSkpOwotICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZl
ciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCB7IENvbXBvc2l0
ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCBtX21vZGUgfSk7CisgICAgZmlsdGVyQ29udGV4dC5kcmF3
SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5h
YnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+dHJ1
bmNhdGVkTG9naWNhbFNpemUoKSksIHsgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIsIG1f
bW9kZSB9KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAppbmRleCAzODA2NWNiOTZj
N2I0YjRiMDNmYzZiMGVlZDg1YWM0YjZjOTY4YTU0Li4xNjQyMmQ2ZGM1YjU3ZWM2Zjc0N2E0MjEw
YzI4NTQzMzJiYTFkM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKQEAgLTI4Niw3ICsyODYsNyBA
QCB2b2lkIEZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgICAgIHJl
c3VsdEltYWdlLT5jb250ZXh0KCkuZHJhd0ltYWdlQnVmZmVyKCppbkJ1ZmZlciwgZHJhd2luZ1Jl
Z2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwogCiAgICAgUGl4ZWxC
dWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBs
aWVkLCBQaXhlbEZvcm1hdDo6UkdCQTgsIHJlc3VsdENvbG9yU3BhY2UoKSB9OwotICAgIEludFJl
Y3QgaW1hZ2VSZWN0KEludFBvaW50KCksIHJlc3VsdEltYWdlLT5sb2dpY2FsU2l6ZSgpKTsKKyAg
ICBJbnRSZWN0IGltYWdlUmVjdChJbnRQb2ludCgpLCByZXN1bHRJbWFnZS0+dHJ1bmNhdGVkTG9n
aWNhbFNpemUoKSk7CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHJlc3VsdEltYWdlLT5nZXRQaXhl
bEJ1ZmZlcihmb3JtYXQsIGltYWdlUmVjdCk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAppbmRleCA4YjU5ZTY2ZGU5ZmU4ZDYzOTE2Y2JlNWNl
NmRkNDAzOGZhNGNiMmE4Li5mOGE2NDc5MGMxY2I0MDkwYTlmNjJhOTFlNDVlMWRiNTIzZjljYjVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9zaXRlLmNwcApAQCAtMjc4LDE5ICsyNzgsMTkgQEAgdm9pZCBGRUNvbXBvc2l0
ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICB9CiAgICAgY2FzZSBGRUNPTVBPU0lURV9P
UEVSQVRPUl9PVVQ6CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFn
ZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3Qo
KSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIy
LCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSksIElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXIyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRl
T3BlcmF0b3I6OkRlc3RpbmF0aW9uT3V0KTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1h
Z2VCdWZmZXIoKmltYWdlQnVmZmVyMiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFi
c29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVyMi0+dHJ1
bmNhdGVkTG9naWNhbFNpemUoKSksIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbk91dCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1JfQVRPUDoKICAg
ICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyMiwgZHJhd2lu
Z1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAg
ZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVnaW9u
T2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgp
LCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VB
dG9wKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVy
LCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50
UmVjdChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKSksIENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VBdG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBG
RUNPTVBPU0lURV9PUEVSQVRPUl9YT1I6CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdl
QnVmZmVyKCppbWFnZUJ1ZmZlcjIsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNv
bHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVy
KCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWlu
dFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkp
LCBDb21wb3NpdGVPcGVyYXRvcjo6WE9SKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1h
Z2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNv
bHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+dHJ1bmNh
dGVkTG9naWNhbFNpemUoKSksIENvbXBvc2l0ZU9wZXJhdG9yOjpYT1IpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0xJR0hURVI6CiAgICAgICAgIGZpbHRl
ckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIsIGRyYXdpbmdSZWdpb25PZklu
cHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRl
eHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFn
ZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZm
ZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0xpZ2h0ZXIpOworICAg
ICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdS
ZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBv
aW50KCksIGltYWdlQnVmZmVyLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlT3Bl
cmF0b3I6OlBsdXNMaWdodGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKaW5kZXggNWNlN2JlM2E0NzFiNDdiOGRkNTQyNmQ5
NjViYmZlNzg5ZjZiYmRkOC4uMzVmYmFiNDFlODA5MjE2ZTRiMjI0MzUxMTg2MjNlMjhmZmQ2MWVm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURyb3BTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEcm9wU2hhZG93LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgRkVEcm9wU2hh
ZG93OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIFNoYWRvd0JsdXIgY29udGV4dFNoYWRv
dyhibHVyUmFkaXVzLCBvZmZzZXQsIG1fc2hhZG93Q29sb3IpOwogCiAgICAgUGl4ZWxCdWZmZXJG
b3JtYXQgZm9ybWF0IHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgUGl4
ZWxGb3JtYXQ6OlJHQkE4LCByZXN1bHRDb2xvclNwYWNlKCkgfTsKLSAgICBJbnRSZWN0IHNoYWRv
d0FyZWEoSW50UG9pbnQoKSwgcmVzdWx0SW1hZ2UtPmxvZ2ljYWxTaXplKCkpOworICAgIEludFJl
Y3Qgc2hhZG93QXJlYShJbnRQb2ludCgpLCByZXN1bHRJbWFnZS0+dHJ1bmNhdGVkTG9naWNhbFNp
emUoKSk7CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHJlc3VsdEltYWdlLT5nZXRQaXhlbEJ1ZmZl
cihmb3JtYXQsIHNoYWRvd0FyZWEpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKaW5kZXggZjQ0YWUxMjlk
MDczOGQzMGM3NmU3MTA4NWIyYWVjMDVhN2I2ZjFkYS4uYjI1YjE5M2ExMGNkZWU2MzE1OWIwMjM0
YTIyZTg1YzYyZmU4NWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NT
U0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAK
QEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIENTU0ZpbHRlcjo6YWxsb2NhdGVCYWNraW5nU3RvcmVJ
Zk5lZWRlZChjb25zdCBHcmFwaGljc0NvbnRleHQmIHRhcmdldENvbnRleAogICAgICAgICByZXR1
cm47CiAKICAgICBJbnRTaXplIGxvZ2ljYWxTaXplIHsgbV9zb3VyY2VEcmF3aW5nUmVnaW9uLnNp
emUoKSB9OwotICAgIGlmICghc291cmNlSW1hZ2UoKSB8fCBzb3VyY2VJbWFnZSgpLT5sb2dpY2Fs
U2l6ZSgpICE9IGxvZ2ljYWxTaXplKSB7CisgICAgaWYgKCFzb3VyY2VJbWFnZSgpIHx8IHNvdXJj
ZUltYWdlKCktPnRydW5jYXRlZExvZ2ljYWxTaXplKCkgIT0gbG9naWNhbFNpemUpIHsKICNpZiBV
U0UoRElSRUNUMkQpCiAgICAgICAgIHNldFNvdXJjZUltYWdlKEltYWdlQnVmZmVyOjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlbmRlcmluZ01vZGUoKSwgJnRhcmdldENvbnRleHQsIGZpbHRlclNjYWxl
KCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdSQTgpKTsK
ICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlUGF0dGVybi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlUGF0dGVybi5jcHAKaW5kZXggNjUyZmI5YWYwNmMxODViMWRlZTA1NTUwM2I0
Y2I0Y2M0ZGU5MmI0Yi4uZDlmNjkxZDFmOTMxNjdlYmI5NTAwMjY1YWE2NjBkZTEzZGQ3YjlmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZVBhdHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VQYXR0ZXJuLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIFBhdHRlcm5EYXRhKiBSZW5k
ZXJTVkdSZXNvdXJjZVBhdHRlcm46OmJ1aWxkUGF0dGVybihSZW5kZXJFbGVtZW50JiByZW5kZXJl
ciwgT3B0CiAgICAgaWYgKCF0aWxlSW1hZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgY29uc3QgSW50U2l6ZSB0aWxlSW1hZ2VTaXplID0gdGlsZUltYWdlLT5sb2dpY2FsU2l6ZSgp
OworICAgIGNvbnN0IEludFNpemUgdGlsZUltYWdlU2l6ZSA9IHRpbGVJbWFnZS0+dHJ1bmNhdGVk
TG9naWNhbFNpemUoKTsKIAogICAgIGF1dG8gY29waWVkSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lu
a0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKHRpbGVJbWFnZSkpOwogICAgIGlmICghY29waWVkSW1h
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggNzAwNzZmZDVjNTFhODA5MjVkNTkxMzgy
ZTk0YzUxMTk2N2ViMjUxMi4uYjY2NGQ4ZTM3NjQwZDQ1Y2RiZGMzMDVjNWIzMmY4MTAwMGU2ODcw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtMzA3LDcgKzMwNyw3IEBAIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0U2hhcmVhYmxlQml0bWFwRm9ySW1hZ2VCdWZmZXJXaXRo
UXVhbGlmaWVkSWRlbnRpCiAgICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGF1dG8gYmFja2VuZFNpemUgPSBpbWFnZUJ1ZmZlci0+YmFja2VuZFNpemUoKTsK
LSAgICAgICAgYXV0byByZXN1bHRTaXplID0gcHJlc2VydmVSZXNvbHV0aW9uID09IFdlYkNvcmU6
OlByZXNlcnZlUmVzb2x1dGlvbjo6WWVzID8gYmFja2VuZFNpemUgOiBpbWFnZUJ1ZmZlci0+bG9n
aWNhbFNpemUoKTsKKyAgICAgICAgYXV0byByZXN1bHRTaXplID0gcHJlc2VydmVSZXNvbHV0aW9u
ID09IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbjo6WWVzID8gYmFja2VuZFNpemUgOiBpbWFn
ZUJ1ZmZlci0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKTsKICAgICAgICAgYXV0byBiaXRtYXAgPSBT
aGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShyZXN1bHRTaXplLCB7IGltYWdlQnVmZmVy
LT5jb2xvclNwYWNlKCkgfSk7CiAgICAgICAgIGlmICghYml0bWFwKQogICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCA4NWRmN2I5OGY0ZmNkZjcwMjI3
Mzk0NGY4NzBmNDg0ODRhNWRhM2RlLi4wNWQ0ZjE5NjE0YWM5NDJmOGFiMDRlYjE0ODJkZjM0MDc5
MTJjODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMTAxLDcgKzEwMSw3IEBA
IHByb3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KGNvbnN0IFdlYkNvcmU6Oklt
YWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgICAgIDogQmFz
ZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVycykKICAgICAgICAgLCBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgICAgICwg
bV9yZW1vdGVEaXNwbGF5TGlzdCgqdGhpcywgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCB7
IHsgfSwgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmxvZ2ljYWxTaXplKCkgfSwgQmFzZUNvbmNy
ZXRlSW1hZ2VCdWZmZXI6OmJhc2VUcmFuc2Zvcm0oKSkKKyAgICAgICAgLCBtX3JlbW90ZURpc3Bs
YXlMaXN0KCp0aGlzLCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIHsgeyB9LCBCYXNlQ29u
Y3JldGVJbWFnZUJ1ZmZlcjo6dHJ1bmNhdGVkTG9naWNhbFNpemUoKSB9LCBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybSgpKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KTsKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmNhY2hlSW1hZ2VCdWZmZXIoKnRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IDI4YmIy
NDQ4MTY4MTkzZWVlN2RjYWNlYjM4MWE4ZjNkZTA4ZGExYWYuLjU0ZjJjZjUyYTNiZjg4OTQ3YTA3
NGY1YzE1ZmI5MjliMjE0MmFiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6d2FpdEZvckRpZEZsdXNoKCkKIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmNyZWF0ZVJlbW90ZUltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikKIHsK
LSAgICBzZW5kVG9TdHJlYW0oTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0
ZUltYWdlQnVmZmVyKGltYWdlQnVmZmVyLmxvZ2ljYWxTaXplKCksIGltYWdlQnVmZmVyLnJlbmRl
cmluZ01vZGUoKSwgaW1hZ2VCdWZmZXIucmVzb2x1dGlvblNjYWxlKCksIGltYWdlQnVmZmVyLmNv
bG9yU3BhY2UoKSwgaW1hZ2VCdWZmZXIucGl4ZWxGb3JtYXQoKSwgaW1hZ2VCdWZmZXIucmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpKTsKKyAgICBzZW5kVG9TdHJlYW0oTWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUltYWdlQnVmZmVyKGltYWdlQnVmZmVyLnRydW5j
YXRlZExvZ2ljYWxTaXplKCksIGltYWdlQnVmZmVyLnJlbmRlcmluZ01vZGUoKSwgaW1hZ2VCdWZm
ZXIucmVzb2x1dGlvblNjYWxlKCksIGltYWdlQnVmZmVyLmNvbG9yU3BhY2UoKSwgaW1hZ2VCdWZm
ZXIucGl4ZWxGb3JtYXQoKSwgaW1hZ2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KCkpKTsKIH0KIAogUmVmUHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9u
Q29sb3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQpCg==
</data>
<flag name="review"
          id="467461"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="467467"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442883</attachid>
            <date>2021-10-29 17:12:25 -0700</date>
            <delta_ts>2021-10-29 17:12:25 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-232515-20211029171224.patch</filename>
            <type>text/plain</type>
            <size>29260</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ5OGZmMTQ2YmQ4NWI4
NGUwMzhhY2ZmNWYwNGUzYjMzZDUxNGUyYy4uMzgzNmExMzlkMzAxOWFmMTg0ODQzMWJlYWQ2Yjg1
MDNkNzY0NTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIxLTEwLTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIElt
YWdlQnVmZmVyLmxvZ2ljYWxTaXplIHRvIEltYWdlQnVmZmVyLnRydW5jYXRlZExvZ2ljYWxTaXpl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI1MTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlz
IGEgcHVyZWx5IG1lY2hhbmljYWwgY2hhbmdlLCBhbmQgaXMgdGhlIGZpcnN0IHN0ZXAgaW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTM3Ny4gT25j
ZSB3ZSBoYXZlIGJvdGggbG9naWNhbFNpemUoKQorICAgICAgICBhbmQgdHJ1bmNhdGVkTG9naWNh
bFNpemUoKSwgd2UgY2FuIHN0YXJ0IG1pZ3JhdGluZyBjYWxsZXJzIHRvIHRoZSBjb3JyZWN0IG9u
ZQorICAgICAgICBhbmQgYXdheSBmcm9tIHRoZSB0cnVjYXRlZCBvbmUuCisKKyAgICAgICAgSSBk
aWQgdGhpcyByZW5hbWUgYnkgYWRkaW5nIHRydW5jYXRlZEltYWdlU2l6ZSwgYW5kIHRoZW4gdGVt
cG9yYXJpbHkgcmVuYW1pbmcKKyAgICAgICAgbG9naWNhbFNpemUoKSB0byBzb21lIGR1bW15IHZh
bHVlIC0gdG8gZm9yY2UgY29tcGlsYXRpb24gZmFpbHVyZXMgYXQgZXZlcnkgY2FsbAorICAgICAg
ICB0byBsb2dpY2FsU2l6ZSgpLiBUaGVuLCBvbmNlIGNvbXBpbGluZyBmb3VuZCBhbGwgdGhlIGNh
bGwgc2l0ZXMsIEkgcmVuYW1lZCBpdAorICAgICAgICBiYWNrIHRvIGp1c3QgbG9naWNhbFNpemUo
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBj
aGFuZ2UuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wSW1hZ2VCaXRtYXApOgor
ICAgICAgICAqIGh0bWwvQ2FudmFzQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNC
YXNlOjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9NZWRpYVNh
bXBsZSk6CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1h
cEJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXBCYWNraW5nOjp3aWR0
aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcEJhY2tpbmc6OmhlaWdodCBj
b25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpw
dXRJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
TFJVSW1hZ2VCdWZmZXJDYWNoZTo6aW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZUNv
bG9yU2FtcGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW1wbGVDb2xvcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9T
aGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6OldURl9SRVFV
SVJFU19MT0NLKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Oklt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OnBsYXRmb3JtQXBw
bHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9y
TWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBw
bHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
c2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNv
ZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6OnBsYXRmb3JtQXBwbHlTb2Z0
d2FyZSk6CisgICAgICAgICogcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NGaWx0ZXI6OmFsbG9jYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKToKKwogMjAyMS0x
MC0yOSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEF2
b2lkIHNlbmRpbmcgdmlkZW8gZGF0YSB0byBXZWIgcHJvY2VzcyBmb3IgY2FudmFzLmRyYXdJbWFn
ZSh2aWRlbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGFlNjZkYTBkZTM1MGY4NTk5MWM4NjBkMDhkNDY5YWI2YjJl
MjZiZi4uYTQ1OGY5YThkZGE3ZTQzZTI4NGIxN2UxOTExZGIyNDA5MTVmYzBiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMC0yOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBJbWFnZUJ1ZmZlci5sb2dpY2FsU2l6ZSB0
byBJbWFnZUJ1ZmZlci50cnVuY2F0ZWRMb2dpY2FsU2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90
ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlUmVtb3RlSW1hZ2VCdWZmZXIpOgorCiAyMDIxLTEw
LTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODQ5MTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA5YzVlMmM1MDc5
YjEyZDc4MjdkZjRhZjQ1Zjk0MWQzNjBkNTQ1Yzk2Li4wYmFmYTc5ODMwOWMxNjUwYzY0MDJiZDA2
ZWVhNzMwMTE5NmUzZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTExMTMsNyArMTExMyw3IEBAIHByaXZhdGU6
CiAKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgdG8gYXZvaWQgY29udmVydGluZyBw
aXhlbCBmb3JtYXQuCiAgICAgICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZvcm1hdCB7IEFscGhhUHJl
bXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpSR0JBOCwgYnVmZmVy
LT5jb2xvclNwYWNlKCkgfTsKLSAgICAgICAgY29uc3QgSW50U2l6ZSYgbG9naWNhbFNpemUgPSBi
dWZmZXItPmxvZ2ljYWxTaXplKCk7CisgICAgICAgIGNvbnN0IEludFNpemUmIGxvZ2ljYWxTaXpl
ID0gYnVmZmVyLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpOwogICAgICAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gYnVmZmVyLT5nZXRQaXhlbEJ1ZmZlcihmb3JtYXQsIHsgSW50UG9pbnQ6Onplcm8oKSwg
bG9naWNhbFNpemUgfSk7CiAgICAgICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKICAgICAgICAgICAg
IGNvZGUgPSBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6VmFsaWRhdGlvbkVycm9yOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ2FudmFzQmFzZS5jcHAKaW5kZXggMDA4Y2NhMjQ1NmEyNWE0ZjZiZWNjY2NjMTgwMTUw
ZWFkYzU1ZTcwNy4uOGUxZjk3YzkyODE0NmI4ZTY2NWQyMjFlNGY4ZWJjYTkzMDQ2MWQzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NhbnZhc0Jhc2UuY3BwCkBAIC0yMDksOCArMjA5LDggQEAgUmVmUHRyPElt
YWdlQnVmZmVyPiBDYW52YXNCYXNlOjpzZXRJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+
JiYgYnVmZmVyKSBjb24KICAgICAgICAgcmV0dXJuQnVmZmVyID0gc3RkOjpleGNoYW5nZShtX2lt
YWdlQnVmZmVyLCBXVEZNb3ZlKGJ1ZmZlcikpOwogICAgIH0KIAotICAgIGlmIChtX2ltYWdlQnVm
ZmVyICYmIG1fc2l6ZSAhPSBtX2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKQotICAgICAgICBt
X3NpemUgPSBtX2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpOworICAgIGlmIChtX2ltYWdlQnVm
ZmVyICYmIG1fc2l6ZSAhPSBtX2ltYWdlQnVmZmVyLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpKQor
ICAgICAgICBtX3NpemUgPSBtX2ltYWdlQnVmZmVyLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpOwog
CiAgICAgc2l6ZV90IHByZXZpb3VzTWVtb3J5Q29zdCA9IG1faW1hZ2VCdWZmZXJDb3N0OwogICAg
IG1faW1hZ2VCdWZmZXJDb3N0ID0gbWVtb3J5Q29zdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA4OTEwZTc1MTkxMjUxMTIyNWM1OGVkYmYyNmNkMjE3
MzJlNjFmN2FlLi42Y2FmNzhiZWYyZWIwNmNmMGE2N2QxYTFjODExNzVmMzY0YTkwNTc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtNzc3LDcgKzc3Nyw3
IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gSFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUo
KQogICAgIC8vIEZJWE1FOiBUaGlzIGNhbiBsaWtlbHkgYmUgb3B0aW1pemVkIHF1aXRlIGEgYml0
LCBlc3BlY2lhbGx5IGluIHRoZSBjYXNlcyB3aGVyZQogICAgIC8vIHRoZSBJbWFnZUJ1ZmZlciBp
cyBiYWNrZWQgYnkgR1BVIG1lbW9yeSBhbHJlYWR5IGFuZC9vciBpcyBpbiB0aGUgR1BVIHByb2Nl
c3MgYnkKICAgICAvLyBzcGVjaWFsaXppbmcgdG9NZWRpYVNhbXBsZSgpIGluIEltYWdlQnVmZmVy
QmFja2VuZCB0byBub3QgdXNlIGdldFBpeGVsQnVmZmVyKCkuCi0gICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IGltYWdlQnVmZmVyLT5nZXRQaXhlbEJ1ZmZlcih7IEFscGhhUHJlbXVsdGlwbGljYXRpb246
OlVucHJlbXVsdGlwbGllZCwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OlNSR0IoKSB9LCB7IHsgfSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkgfSk7CisgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IGltYWdlQnVmZmVyLT5nZXRQaXhlbEJ1ZmZlcih7IEFscGhhUHJl
bXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSB9LCB7IHsgfSwgaW1hZ2VCdWZmZXItPnRydW5jYXRl
ZExvZ2ljYWxTaXplKCkgfSk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKaW5kZXggMDk4YWUwMTQ2
ZWNmOGI4ODEwYWZiMWUyOTM3NmE4YmRmZmY4MjJlOC4uYjg4NmI3NzA0YTE0ZGY1Njc3YTRkMTZi
Y2JjZTU4OWQwYTUyM2VlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJp
dG1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKQEAgLTU3
Miw3ICs1NzIsNyBAQCB2b2lkIEltYWdlQml0bWFwOjpjcmVhdGVQcm9taXNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAKICAgICAvLyA0LiBMZXQgdGhl
IEltYWdlQml0bWFwIG9iamVjdCdzIGJpdG1hcCBkYXRhIGJlIGEgY29weSBvZiB0aGUgaW1hZ2Ug
YXJndW1lbnQncwogICAgIC8vICAgIGJpdG1hcCBkYXRhLCBjcm9wcGVkIHRvIHRoZSBzb3VyY2Ug
cmVjdGFuZ2xlIHdpdGggZm9ybWF0dGluZy4KLSAgICBhdXRvIHNvdXJjZVJlY3RhbmdsZSA9IGNy
b3BwZWRTb3VyY2VSZWN0YW5nbGVXaXRoRm9ybWF0dGluZyhleGlzdGluZ0ltYWdlQml0bWFwLT5i
dWZmZXIoKS0+bG9naWNhbFNpemUoKSwgb3B0aW9ucywgV1RGTW92ZShyZWN0KSk7CisgICAgYXV0
byBzb3VyY2VSZWN0YW5nbGUgPSBjcm9wcGVkU291cmNlUmVjdGFuZ2xlV2l0aEZvcm1hdHRpbmco
ZXhpc3RpbmdJbWFnZUJpdG1hcC0+YnVmZmVyKCktPnRydW5jYXRlZExvZ2ljYWxTaXplKCksIG9w
dGlvbnMsIFdURk1vdmUocmVjdCkpOwogICAgIGlmIChzb3VyY2VSZWN0YW5nbGUuaGFzRXhjZXB0
aW9uKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3Qoc291cmNlUmVjdGFuZ2xlLnJlbGVhc2VF
eGNlcHRpb24oKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VCaXRtYXBCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VC
aXRtYXBCYWNraW5nLmNwcAppbmRleCA5M2M1ZmVhNTI3NGJhODgzMmEzMDU2N2I0NDU0YWU1Yzcx
YzVhNjQ2Li4zZmVhNmE2ZmM3ZTM2ZDk4YTg3Njg5M2NjYTUyZjM5ZGE1NzlhNjZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcEJhY2tpbmcuY3BwCkBAIC00OCwxMyArNDgsMTMg
QEAgUmVmUHRyPEltYWdlQnVmZmVyPiBJbWFnZUJpdG1hcEJhY2tpbmc6OnRha2VJbWFnZUJ1ZmZl
cigpCiB1bnNpZ25lZCBJbWFnZUJpdG1hcEJhY2tpbmc6OndpZHRoKCkgY29uc3QKIHsKICAgICAv
LyBGSVhNRTogSXMgdGhpcyB0aGUgcmlnaHQgd2lkdGg/Ci0gICAgcmV0dXJuIG1fYml0bWFwRGF0
YSA/IG1fYml0bWFwRGF0YS0+bG9naWNhbFNpemUoKS53aWR0aCgpIDogMDsKKyAgICByZXR1cm4g
bV9iaXRtYXBEYXRhID8gbV9iaXRtYXBEYXRhLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpLndpZHRo
KCkgOiAwOwogfQogCiB1bnNpZ25lZCBJbWFnZUJpdG1hcEJhY2tpbmc6OmhlaWdodCgpIGNvbnN0
CiB7CiAgICAgLy8gRklYTUU6IElzIHRoaXMgdGhlIHJpZ2h0IGhlaWdodD8KLSAgICByZXR1cm4g
bV9iaXRtYXBEYXRhID8gbV9iaXRtYXBEYXRhLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpIDogMDsK
KyAgICByZXR1cm4gbV9iaXRtYXBEYXRhID8gbV9iaXRtYXBEYXRhLT50cnVuY2F0ZWRMb2dpY2Fs
U2l6ZSgpLmhlaWdodCgpIDogMDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmNwcAppbmRleCBlNDAyNzgwM2IxYzU3MDRlNjEzYWJlMDIxOWRkNjE2YjVhYTdi
MzYzLi4zZjY5OWQ2YmZlOGQ2OTNhNzM0ZjQzMDFlYTZmODllOTRiMjU5MjVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmNwcApAQCAtMjI0OCw3ICsyMjQ4LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlOjpwdXRJbWFnZURhdGEoSW1hZ2VEYXRhJiBkYXRhLCBpbnQgZHgsIGludCBk
eSwKICAgICBJbnRTaXplIGRlc3RPZmZzZXQgeyBkeCwgZHkgfTsKICAgICBJbnRSZWN0IGRlc3RS
ZWN0ID0gY2xpcFJlY3Q7CiAgICAgZGVzdFJlY3QubW92ZShkZXN0T2Zmc2V0KTsKLSAgICBkZXN0
UmVjdC5pbnRlcnNlY3QoSW50UmVjdCB7IHsgfSwgYnVmZmVyLT5sb2dpY2FsU2l6ZSgpIH0pOwor
ICAgIGRlc3RSZWN0LmludGVyc2VjdChJbnRSZWN0IHsgeyB9LCBidWZmZXItPnRydW5jYXRlZExv
Z2ljYWxTaXplKCkgfSk7CiAgICAgaWYgKGRlc3RSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIEludFJlY3Qgc291cmNlUmVjdCB7IGRlc3RSZWN0IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGVjZmY1OTFjYzY3MTA2NjcxNDFkZWNlYjczNzAxODVhYmEyM2MyYTQuLjMzOTI1YmM2
YWM4ZDg3YjQxMDZiMDYzMWVkMzQyOTAzOWE3OGFmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC03
Nzk4LDcgKzc3OTgsNyBAQCBJbWFnZUJ1ZmZlciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
TFJVSW1hZ2VCdWZmZXJDYWNoZTo6aW1hZ2VCdWZmZXIoY29uc3QgSQogICAgICAgICBpZiAoIW1f
YnVmZmVyc1tpXSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBJbWFnZUJ1ZmZlciYgYnVm
ID0gbV9idWZmZXJzW2ldLT5zZWNvbmQuZ2V0KCk7Ci0gICAgICAgIGlmIChtX2J1ZmZlcnNbaV0t
PmZpcnN0ICE9IGNvbG9yU3BhY2UgfHwgYnVmLmxvZ2ljYWxTaXplKCkgIT0gc2l6ZSkKKyAgICAg
ICAgaWYgKG1fYnVmZmVyc1tpXS0+Zmlyc3QgIT0gY29sb3JTcGFjZSB8fCBidWYudHJ1bmNhdGVk
TG9naWNhbFNpemUoKSAhPSBzaXplKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGJ1
YmJsZVRvRnJvbnQoaSk7CiAgICAgICAgIGlmIChmaWxsT3BlcmF0b3IgIT0gQ29tcG9zaXRlT3Bl
cmF0b3I6OkNvcHkgJiYgZmlsbE9wZXJhdG9yICE9IENvbXBvc2l0ZU9wZXJhdG9yOjpDbGVhcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbG9yU2FtcGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb2xvclNhbXBsZXIuY3BwCmluZGV4IDVkZGQzMWY5ZmUy
ZTNiYjI4Y2E3ODVlNWJjNzI2NzMzMTRiMDJkZmEuLjUyYmJjNTMyZTZlZDJkYWMyZDY2NTM2OTM5
MGYyNTBjYzFiYjA2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbG9y
U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29sb3JTYW1wbGVyLmNw
cApAQCAtMTI0LDcgKzEyNCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExhYjxmbG9hdD4+IHNh
bXBsZUNvbG9yKERvY3VtZW50JiBkb2N1bWVudCwgSW50UG9pbnQmJiBsb2NhCiAgICAgaWYgKCFz
bmFwc2hvdCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGF1dG8gcGl4ZWxC
dWZmZXIgPSBzbmFwc2hvdC0+Z2V0UGl4ZWxCdWZmZXIoeyBBbHBoYVByZW11bHRpcGxpY2F0aW9u
OjpVbnByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpCR1JBOCwgY29sb3JTcGFjZSB9LCB7IHsg
fSwgc25hcHNob3QtPmxvZ2ljYWxTaXplKCkgfSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHNu
YXBzaG90LT5nZXRQaXhlbEJ1ZmZlcih7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVs
dGlwbGllZCwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBjb2xvclNwYWNlIH0sIHsgeyB9LCBzbmFwc2hv
dC0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKSB9KTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggZTVhMmEwNjQ1MTdj
NmU2MzYyNjY1OWE0YTkzMTM2MTlmMjQzMGZiMy4uOTUxYWU5YmUzODJjMTNmZDk3Mjg5ZWI0MzIz
YmFlNDM5YzYzMjNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtOTAsNyArOTAsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBJbnRTaXplIGxvZ2ljYWxTaXplKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gSW50U2l6ZShtX3BhcmFtZXRlcnMubG9naWNhbFNpemUpOyB9CisgICAg
RmxvYXRTaXplIGxvZ2ljYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wYXJhbWV0
ZXJzLmxvZ2ljYWxTaXplOyB9CisgICAgSW50U2l6ZSB0cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFNpemUobV9wYXJhbWV0ZXJzLmxvZ2ljYWxTaXplKTsg
fSAvLyBZb3UgcHJvYmFibHkgc2hvdWxkIGJlIGNhbGxpbmcgbG9naWNhbFNpemUoKSBpbnN0ZWFk
LgogICAgIGZsb2F0IHJlc29sdXRpb25TY2FsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
cGFyYW1ldGVycy5yZXNvbHV0aW9uU2NhbGU7IH0KICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5jb2xvclNw
YWNlOyB9CiAgICAgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3BhcmFtZXRlcnMucGl4ZWxGb3JtYXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDRjMWM1ZjkwODdh
OTNhN2QxMjViODkzNjQ0OGYwNGVmZWQwZjcwYzAuLjYxNjBjYmZhMDIyNTMyYzBmMTZlMmE3MDNl
MDQzOTc2YzkyMTBjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNTkxLDEyICs1OTEsMTIgQEAgSW1hZ2VEcmF3
UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG9hdFJlY3QmIGQKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCiB7Ci0gICAgZHJhd0lt
YWdlQnVmZmVyKGltYWdlLCBGbG9hdFJlY3QoZGVzdGluYXRpb24sIGltYWdlLmxvZ2ljYWxTaXpl
KCkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZS5sb2dpY2FsU2l6ZSgpKSwgaW1hZ2VQ
YWludGluZ09wdGlvbnMpOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgRmxvYXRSZWN0KGRl
c3RpbmF0aW9uLCBpbWFnZS50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpKSwgRmxvYXRSZWN0KEZsb2F0
UG9pbnQoKSwgaW1hZ2UudHJ1bmNhdGVkTG9naWNhbFNpemUoKSksIGltYWdlUGFpbnRpbmdPcHRp
b25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKIHsKLSAgICBkcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2UsIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUo
aW1hZ2UubG9naWNhbFNpemUoKSkpLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgZHJhd0lt
YWdlQnVmZmVyKGltYWdlLCBkZXN0aW5hdGlvbiwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgRmxv
YXRTaXplKGltYWdlLnRydW5jYXRlZExvZ2ljYWxTaXplKCkpKSwgaW1hZ2VQYWludGluZ09wdGlv
bnMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpAQCAtNjA5LDcg
KzYwOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIo
UmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QKIHsKICAgICBpZiAoIWltYWdlKQogICAg
ICAgICByZXR1cm47Ci0gICAgSW50U2l6ZSBpbWFnZUxvZ2ljYWxTaXplID0gaW1hZ2UtPmxvZ2lj
YWxTaXplKCk7CisgICAgSW50U2l6ZSBpbWFnZUxvZ2ljYWxTaXplID0gaW1hZ2UtPnRydW5jYXRl
ZExvZ2ljYWxTaXplKCk7CiAgICAgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKFdURk1vdmUoaW1h
Z2UpLCBGbG9hdFJlY3QoZGVzdGluYXRpb24sIGltYWdlTG9naWNhbFNpemUpLCBGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBpbWFnZUxvZ2ljYWxTaXplKSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwog
fQogCkBAIC02MTcsNyArNjE3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1p
bmdJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlLCBjb25zdAogewogICAgIGlm
ICghaW1hZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBJbnRTaXplIGltYWdlTG9naWNhbFNpemUg
PSBpbWFnZS0+bG9naWNhbFNpemUoKTsKKyAgICBJbnRTaXplIGltYWdlTG9naWNhbFNpemUgPSBp
bWFnZS0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKTsKICAgICBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZm
ZXIoV1RGTW92ZShpbWFnZSksIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBG
bG9hdFNpemUoaW1hZ2VMb2dpY2FsU2l6ZSkpLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4
IGU1YmIzZDRmNTdjMWNjMjMxNjA5OTRjYzNkNmM3MGQ4YWVjOWJlNTAuLjM0YzRjNzlkMzM0NGY0
M2M4MjYzMmRjZTliMDNhOWY2MjUyODZjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtODYsNyArODYsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvQXBwZW5kRGlzcGxh
eUxpc3RJdGVtcyhEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRsZSYmKSB7IH0KIAotICAgIHZp
cnR1YWwgSW50U2l6ZSBsb2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0
U2l6ZSBsb2dpY2FsU2l6ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEludFNpemUgdHJ1bmNh
dGVkTG9naWNhbFNpemUoKSBjb25zdCA9IDA7IC8vIFRoaXMgdHJ1bmNhdGVzIHRoZSByZWFsIHNp
emUuIFlvdSBwcm9iYWJseSBzaG91bGQgYmUgY2FsbGluZyBsb2dpY2FsU2l6ZSgpIGluc3RlYWQu
CiAgICAgdmlydHVhbCBmbG9hdCByZXNvbHV0aW9uU2NhbGUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCA4MzJhMjc2ZTdj
NjA5MGMxYmFlODMxYjhiZTM4ZmUyMGQ0OTQyNTZiLi5mOGI2MTAyZDY4M2NkNGI2OWE4NzA5MGY1
MDZmY2Q2MDk4OThiNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9TaGFkb3dCbHVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0pOwog
CiAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIHJlY3JlYXRlIHRoZSBidWZmZXIgaWYgdGhl
IGN1cnJlbnQgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KLSAgICAgICAgaWYgKG1faW1hZ2VCdWZm
ZXIgJiYgbV9pbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKS53aWR0aCgpID49IHNpemUud2lkdGgo
KSAmJiBtX2ltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpID49IHNpemUuaGVpZ2h0
KCkpCisgICAgICAgIGlmIChtX2ltYWdlQnVmZmVyICYmIG1faW1hZ2VCdWZmZXItPnRydW5jYXRl
ZExvZ2ljYWxTaXplKCkud2lkdGgoKSA+PSBzaXplLndpZHRoKCkgJiYgbV9pbWFnZUJ1ZmZlci0+
dHJ1bmNhdGVkTG9naWNhbFNpemUoKS5oZWlnaHQoKSA+PSBzaXplLmhlaWdodCgpKQogICAgICAg
ICAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXI7CiAKICAgICAgICAgLy8gUm91bmQgdG8gdGhlIG5l
YXJlc3QgMzIgcGl4ZWxzIHNvIHdlIGRvIG5vdCBncm93IHRoZSBidWZmZXIgZm9yIHNpbWlsYXIg
c2l6ZWQgcmVxdWVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIu
aAppbmRleCA4OGI2YThiMjZmMDU0NTllZGU2ZDM2ZGFkMzZmZGQzYjQyZGVkNjk5Li4zZGNhOTdj
ZmViYzA3NzNkNzAzYjY1NzJlOTMzMzU1ZDRjMzI1ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgogY2xhc3MgSW1hZ2VCdWZm
ZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4gewogICAgIHVzaW5n
IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlw
ZT47CisgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRydW5jYXRlZExvZ2ljYWxT
aXplOwogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpsb2dpY2FsU2l6ZTsKICAg
ICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybTsKIApAQCAtNTEs
NyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlckJh
Y2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlw
ZT4mJiBiYWNrZW5kKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKHBhcmFtZXRl
cnMsIFdURk1vdmUoYmFja2VuZCkpCi0gICAgICAgICwgbV9kcmF3aW5nQ29udGV4dChsb2dpY2Fs
U2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCkpCisgICAgICAgICwgbV9kcmF3aW5nQ29udGV4dCh0cnVu
Y2F0ZWRMb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCkpCiAgICAgICAgICwgbV93cml0aW5n
Q2xpZW50KG1ha2VVbmlxdWU8SW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudD4oKSkK
ICAgICAgICAgLCBtX3JlYWRpbmdDbGllbnQobWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0
OjpSZWFkaW5nQ2xpZW50PigpKQogICAgIHsKQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogCiAg
ICAgSW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBSZWNvcmRlckltcGw6OkRlbGVnYXRlKiBkZWxlZ2F0ZSA9IG51bGxwdHIpCiAgICAg
ICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVycykKLSAgICAgICAgLCBtX2Ry
YXdpbmdDb250ZXh0KGxvZ2ljYWxTaXplKCksIGJhc2VUcmFuc2Zvcm0oKSwgZGVsZWdhdGUpCisg
ICAgICAgICwgbV9kcmF3aW5nQ29udGV4dCh0cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpLCBiYXNlVHJh
bnNmb3JtKCksIGRlbGVnYXRlKQogICAgICAgICAsIG1fd3JpdGluZ0NsaWVudChtYWtlVW5pcXVl
PEluTWVtb3J5RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ+KCkpCiAgICAgICAgICwgbV9yZWFk
aW5nQ2xpZW50KG1ha2VVbmlxdWU8SW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVhZGluZ0NsaWVudD4o
KSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQmxlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmNwcAppbmRleCBjZGVhYTY1ZTY3MDRjZDY3ZmIwYTdhZmU5YWYxOGZiYjYy
YzJjZWQ5Li5jYjgzYTg2MTAzMzMzNjRhNTg1MDBlMTkzMDZjMzNjYmY3YjZhYjE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5j
cHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBGRUJsZW5kOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUo
KQogICAgICAgICByZXR1cm47CiAKICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigq
aW1hZ2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWlu
dFJlY3QoKSkpOwotICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZl
ciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCB7IENvbXBvc2l0
ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCBtX21vZGUgfSk7CisgICAgZmlsdGVyQ29udGV4dC5kcmF3
SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5h
YnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+dHJ1
bmNhdGVkTG9naWNhbFNpemUoKSksIHsgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIsIG1f
bW9kZSB9KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAppbmRleCAzODA2NWNiOTZj
N2I0YjRiMDNmYzZiMGVlZDg1YWM0YjZjOTY4YTU0Li4xNjQyMmQ2ZGM1YjU3ZWM2Zjc0N2E0MjEw
YzI4NTQzMzJiYTFkM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKQEAgLTI4Niw3ICsyODYsNyBA
QCB2b2lkIEZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgICAgIHJl
c3VsdEltYWdlLT5jb250ZXh0KCkuZHJhd0ltYWdlQnVmZmVyKCppbkJ1ZmZlciwgZHJhd2luZ1Jl
Z2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwogCiAgICAgUGl4ZWxC
dWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBs
aWVkLCBQaXhlbEZvcm1hdDo6UkdCQTgsIHJlc3VsdENvbG9yU3BhY2UoKSB9OwotICAgIEludFJl
Y3QgaW1hZ2VSZWN0KEludFBvaW50KCksIHJlc3VsdEltYWdlLT5sb2dpY2FsU2l6ZSgpKTsKKyAg
ICBJbnRSZWN0IGltYWdlUmVjdChJbnRQb2ludCgpLCByZXN1bHRJbWFnZS0+dHJ1bmNhdGVkTG9n
aWNhbFNpemUoKSk7CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHJlc3VsdEltYWdlLT5nZXRQaXhl
bEJ1ZmZlcihmb3JtYXQsIGltYWdlUmVjdCk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAppbmRleCA4YjU5ZTY2ZGU5ZmU4ZDYzOTE2Y2JlNWNl
NmRkNDAzOGZhNGNiMmE4Li5mOGE2NDc5MGMxY2I0MDkwYTlmNjJhOTFlNDVlMWRiNTIzZjljYjVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9zaXRlLmNwcApAQCAtMjc4LDE5ICsyNzgsMTkgQEAgdm9pZCBGRUNvbXBvc2l0
ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICB9CiAgICAgY2FzZSBGRUNPTVBPU0lURV9P
UEVSQVRPUl9PVVQ6CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFn
ZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3Qo
KSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIy
LCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSksIElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXIyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRl
T3BlcmF0b3I6OkRlc3RpbmF0aW9uT3V0KTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1h
Z2VCdWZmZXIoKmltYWdlQnVmZmVyMiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFi
c29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVyMi0+dHJ1
bmNhdGVkTG9naWNhbFNpemUoKSksIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbk91dCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1JfQVRPUDoKICAg
ICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyMiwgZHJhd2lu
Z1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAg
ZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVnaW9u
T2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgp
LCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VB
dG9wKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVy
LCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50
UmVjdChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKSksIENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VBdG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBG
RUNPTVBPU0lURV9PUEVSQVRPUl9YT1I6CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdl
QnVmZmVyKCppbWFnZUJ1ZmZlcjIsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNv
bHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVy
KCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWlu
dFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkp
LCBDb21wb3NpdGVPcGVyYXRvcjo6WE9SKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1h
Z2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNv
bHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+dHJ1bmNh
dGVkTG9naWNhbFNpemUoKSksIENvbXBvc2l0ZU9wZXJhdG9yOjpYT1IpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0xJR0hURVI6CiAgICAgICAgIGZpbHRl
ckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIsIGRyYXdpbmdSZWdpb25PZklu
cHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRl
eHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFn
ZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZm
ZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0xpZ2h0ZXIpOworICAg
ICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdS
ZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBv
aW50KCksIGltYWdlQnVmZmVyLT50cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlT3Bl
cmF0b3I6OlBsdXNMaWdodGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKaW5kZXggNWNlN2JlM2E0NzFiNDdiOGRkNTQyNmQ5
NjViYmZlNzg5ZjZiYmRkOC4uMzVmYmFiNDFlODA5MjE2ZTRiMjI0MzUxMTg2MjNlMjhmZmQ2MWVm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURyb3BTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEcm9wU2hhZG93LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgRkVEcm9wU2hh
ZG93OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIFNoYWRvd0JsdXIgY29udGV4dFNoYWRv
dyhibHVyUmFkaXVzLCBvZmZzZXQsIG1fc2hhZG93Q29sb3IpOwogCiAgICAgUGl4ZWxCdWZmZXJG
b3JtYXQgZm9ybWF0IHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgUGl4
ZWxGb3JtYXQ6OlJHQkE4LCByZXN1bHRDb2xvclNwYWNlKCkgfTsKLSAgICBJbnRSZWN0IHNoYWRv
d0FyZWEoSW50UG9pbnQoKSwgcmVzdWx0SW1hZ2UtPmxvZ2ljYWxTaXplKCkpOworICAgIEludFJl
Y3Qgc2hhZG93QXJlYShJbnRQb2ludCgpLCByZXN1bHRJbWFnZS0+dHJ1bmNhdGVkTG9naWNhbFNp
emUoKSk7CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHJlc3VsdEltYWdlLT5nZXRQaXhlbEJ1ZmZl
cihmb3JtYXQsIHNoYWRvd0FyZWEpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwCmluZGV4IGUxNTJmOTg3YzZkM2M2NGMwYjg5ZGI1MTE0ZWExZWQ3MGVh
NGEwYTAuLjczMDM1NGNmMWZhOThlNzMyYjg1ZWMyZTNhMzMwZDQ0ZDE3YjMyNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3Ry
ZWFtZXI6OnVwZGF0ZVNhbXBsZUJ1ZmZlcigpCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IGltYWdlQnVmZmVyLT5nZXRQaXhl
bEJ1ZmZlcih7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIFBpeGVsRm9y
bWF0OjpCR1JBOCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkgfSwgeyB7IH0sIGltYWdl
QnVmZmVyLT5sb2dpY2FsU2l6ZSgpIH0pOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBpbWFnZUJ1
ZmZlci0+Z2V0UGl4ZWxCdWZmZXIoeyBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBs
aWVkLCBQaXhlbEZvcm1hdDo6QkdSQTgsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpIH0s
IHsgeyB9LCBpbWFnZUJ1ZmZlci0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKSB9KTsKICAgICBpZiAo
IXBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NT
U0ZpbHRlci5jcHAKaW5kZXggZjQ0YWUxMjlkMDczOGQzMGM3NmU3MTA4NWIyYWVjMDVhN2I2ZjFk
YS4uYjI1YjE5M2ExMGNkZWU2MzE1OWIwMjM0YTIyZTg1YzYyZmU4NWQ0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIENTU0Zp
bHRlcjo6YWxsb2NhdGVCYWNraW5nU3RvcmVJZk5lZWRlZChjb25zdCBHcmFwaGljc0NvbnRleHQm
IHRhcmdldENvbnRleAogICAgICAgICByZXR1cm47CiAKICAgICBJbnRTaXplIGxvZ2ljYWxTaXpl
IHsgbV9zb3VyY2VEcmF3aW5nUmVnaW9uLnNpemUoKSB9OwotICAgIGlmICghc291cmNlSW1hZ2Uo
KSB8fCBzb3VyY2VJbWFnZSgpLT5sb2dpY2FsU2l6ZSgpICE9IGxvZ2ljYWxTaXplKSB7CisgICAg
aWYgKCFzb3VyY2VJbWFnZSgpIHx8IHNvdXJjZUltYWdlKCktPnRydW5jYXRlZExvZ2ljYWxTaXpl
KCkgIT0gbG9naWNhbFNpemUpIHsKICNpZiBVU0UoRElSRUNUMkQpCiAgICAgICAgIHNldFNvdXJj
ZUltYWdlKEltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlbmRlcmluZ01vZGUoKSwg
JnRhcmdldENvbnRleHQsIGZpbHRlclNjYWxlKCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JH
QigpLCBQaXhlbEZvcm1hdDo6QkdSQTgpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAKaW5kZXgg
NjUyZmI5YWYwNmMxODViMWRlZTA1NTUwM2I0Y2I0Y2M0ZGU5MmI0Yi4uZDlmNjkxZDFmOTMxNjdl
YmI5NTAwMjY1YWE2NjBkZTEzZGQ3YjlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcApAQCAtMTExLDcg
KzExMSw3IEBAIFBhdHRlcm5EYXRhKiBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmJ1aWxkUGF0
dGVybihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgT3B0CiAgICAgaWYgKCF0aWxlSW1hZ2UpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY29uc3QgSW50U2l6ZSB0aWxlSW1hZ2VTaXpl
ID0gdGlsZUltYWdlLT5sb2dpY2FsU2l6ZSgpOworICAgIGNvbnN0IEludFNpemUgdGlsZUltYWdl
U2l6ZSA9IHRpbGVJbWFnZS0+dHJ1bmNhdGVkTG9naWNhbFNpemUoKTsKIAogICAgIGF1dG8gY29w
aWVkSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKHRpbGVJ
bWFnZSkpOwogICAgIGlmICghY29waWVkSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5k
ZXggNzAwNzZmZDVjNTFhODA5MjVkNTkxMzgyZTk0YzUxMTk2N2ViMjUxMi4uYjY2NGQ4ZTM3NjQw
ZDQ1Y2RiZGMzMDVjNWIzMmY4MTAwMGU2ODcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApA
QCAtMzA3LDcgKzMwNyw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0U2hhcmVh
YmxlQml0bWFwRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpCiAgICAgICAgIGlmICgh
aW1hZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGF1dG8gYmFja2VuZFNpemUgPSBp
bWFnZUJ1ZmZlci0+YmFja2VuZFNpemUoKTsKLSAgICAgICAgYXV0byByZXN1bHRTaXplID0gcHJl
c2VydmVSZXNvbHV0aW9uID09IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbjo6WWVzID8gYmFj
a2VuZFNpemUgOiBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKTsKKyAgICAgICAgYXV0byByZXN1
bHRTaXplID0gcHJlc2VydmVSZXNvbHV0aW9uID09IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlv
bjo6WWVzID8gYmFja2VuZFNpemUgOiBpbWFnZUJ1ZmZlci0+dHJ1bmNhdGVkTG9naWNhbFNpemUo
KTsKICAgICAgICAgYXV0byBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJs
ZShyZXN1bHRTaXplLCB7IGltYWdlQnVmZmVyLT5jb2xvclNwYWNlKCkgfSk7CiAgICAgICAgIGlm
ICghYml0bWFwKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aAppbmRleCA4NWRmN2I5OGY0ZmNkZjcwMjI3Mzk0NGY4NzBmNDg0ODRhNWRhM2RlLi4wNWQ0ZjE5
NjE0YWM5NDJmOGFiMDRlYjE0ODJkZjM0MDc5MTJjODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
UHJveHkuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHByb3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5KGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyYg
cGFyYW1ldGVycywgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkpCiAgICAgICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVy
cykKICAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkpCi0gICAgICAgICwgbV9yZW1vdGVEaXNwbGF5TGlzdCgqdGhpcywgcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCB7IHsgfSwgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6
OmxvZ2ljYWxTaXplKCkgfSwgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmJhc2VUcmFuc2Zvcm0o
KSkKKyAgICAgICAgLCBtX3JlbW90ZURpc3BsYXlMaXN0KCp0aGlzLCByZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHksIHsgeyB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dHJ1bmNhdGVkTG9n
aWNhbFNpemUoKSB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybSgpKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KTsKICAg
ICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eSgpLmNhY2hlSW1hZ2VCdWZmZXIoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuY3BwCmluZGV4IDI4YmIyNDQ4MTY4MTkzZWVlN2RjYWNlYjM4MWE4ZjNkZTA4
ZGExYWYuLjU0ZjJjZjUyYTNiZjg4OTQ3YTA3NGY1YzE1ZmI5MjliMjE0MmFiNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBi
b29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2FpdEZvckRpZEZsdXNoKCkKIAogdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZVJlbW90ZUltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikKIHsKLSAgICBzZW5kVG9TdHJlYW0oTWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUltYWdlQnVmZmVyKGltYWdlQnVmZmVyLmxvZ2lj
YWxTaXplKCksIGltYWdlQnVmZmVyLnJlbmRlcmluZ01vZGUoKSwgaW1hZ2VCdWZmZXIucmVzb2x1
dGlvblNjYWxlKCksIGltYWdlQnVmZmVyLmNvbG9yU3BhY2UoKSwgaW1hZ2VCdWZmZXIucGl4ZWxG
b3JtYXQoKSwgaW1hZ2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpKTsKKyAg
ICBzZW5kVG9TdHJlYW0oTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUlt
YWdlQnVmZmVyKGltYWdlQnVmZmVyLnRydW5jYXRlZExvZ2ljYWxTaXplKCksIGltYWdlQnVmZmVy
LnJlbmRlcmluZ01vZGUoKSwgaW1hZ2VCdWZmZXIucmVzb2x1dGlvblNjYWxlKCksIGltYWdlQnVm
ZmVyLmNvbG9yU3BhY2UoKSwgaW1hZ2VCdWZmZXIucGl4ZWxGb3JtYXQoKSwgaW1hZ2VCdWZmZXIu
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpKTsKIH0KIAogUmVmUHRyPEltYWdlQnVmZmVy
PiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZs
b2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxG
b3JtYXQgcGl4ZWxGb3JtYXQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>