<?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>180316</bug_id>
          
          <creation_ts>2017-12-02 11:24:52 -0800</creation_ts>
          <short_desc>Add a AlphaPremultiplication enum and use it consistently</short_desc>
          <delta_ts>2017-12-02 12:36:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1377329</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-02 11:24:52 -0800</bug_when>
    <thetext>Add a AlphaPremultiplication enum and use it consistently</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377331</commentid>
    <comment_count>1</comment_count>
      <attachid>328243</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-02 11:30:09 -0800</bug_when>
    <thetext>Created attachment 328243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377349</commentid>
    <comment_count>2</comment_count>
      <attachid>328243</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-02 12:35:49 -0800</bug_when>
    <thetext>Comment on attachment 328243
Patch

Clearing flags on attachment: 328243

Committed r225453: &lt;https://trac.webkit.org/changeset/225453&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377350</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-02 12:35:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377351</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-02 12:36:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/35815622&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328243</attachid>
            <date>2017-12-02 11:30:09 -0800</date>
            <delta_ts>2017-12-02 12:35:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180316-20171202113008.patch</filename>
            <type>text/plain</type>
            <size>32504</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RjMGMzMDQzY2Y0MmE4
Nzg1MDQzMTg3ZTlmNTc4MWU2NGQxNGI4YS4uNjg4YWZkYjAzNmQzYTQ1YzQ1NWM3YmJkMmM5NGMz
MzNmZGFiMTI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDE3LTEyLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBhbiBBbHBo
YVByZW11bHRpcGxpY2F0aW9uIGVudW0gYW5kIHVzZSBpdCBjb25zaXN0ZW50bHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDMxNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltYWdlQnVmZmVyLXJlbGF0
ZWQgY29kZSBzb21ldGltZXMgdXNlZCB0aGUgJ011bHRpcGx5JyBlbnVtLCBhbmQgc29tZXRpbWVz
CisgICAgICAgIGEgYm9vbCB0byByZXByZXNlbnQgYWxwaGEgcHJlbXVsdGlwbGljYXRpb24uIE1h
a2UgYW4gZW51bSBjbGFzcyBhbmQgdXNlIGl0CisgICAgICAgIGV2ZXJ5d2hlcmUuIFJlLW9yZGVy
IGFuZCByZW5hbWUgc29tZSBwYXJhbWV0ZXJzIHRvIGNsYXJpZnkgdGhlIG1lYW5pbmcgb2YgdGhp
cworICAgICAgICBhcmd1bWVudC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OnB1dEltYWdlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Omdl
bmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VNYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6Ymx1clNoYWRvd0J1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXI6OmdldFVubXVsdGlwbGllZEltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6Z2V0UHJlbXVsdGlwbGllZEltYWdlRGF0YSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0Qnl0ZUFycmF5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyOjpnZXRVbm11bHRpcGxpZWRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OmdldFByZW11bHRpcGxpZWRJbWFnZURhdGEgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OnB1dEJ5dGVBcnJheSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXJEYXRhOjpnZXREYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyRGF0YTo6cHV0RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJEYXRhQ0cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29sb3JNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6cGxhdGZv
cm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6OnBsYXRmb3Jt
QXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjppbWFnZUJ1ZmZl
clJlc3VsdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGF0
YURpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGF0YTo6Z2V0RGF0
YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OnB1dERhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFEaXJlY3QyRC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJELmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpnZXRVbm11bHRpcGxpZWRJbWFnZURh
dGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmdldFByZW11bHRpcGxp
ZWRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OnB1dEJ5
dGVBcnJheSk6CisKKzIwMTctMTItMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKICAgICAgICAgQWRkIGEgbG9nIGNoYW5uZWwgZm9yIHZpZXdwb3J0cwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMjk1CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwCmluZGV4IDFiZTQyYzhiMzFlMjBhNjkxNDhiM2MzYTZmZGU3N2ZlZTE5NjI5MmIuLjdi
MDZiYjUyOTlkMTJjNGZhNDAwNzEzMmFmODRjNTM5MzhkNWE1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApA
QCAtMjI0NSw3ICsyMjQ1LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnB1dElt
YWdlRGF0YShJbWFnZURhdGEmIGRhdGEsIEltYWdlQnVmZmVyOjpDb29yZGkKICAgICBzb3VyY2VS
ZWN0LmludGVyc2VjdChJbnRSZWN0KDAsIDAsIGRhdGEud2lkdGgoKSwgZGF0YS5oZWlnaHQoKSkp
OwogCiAgICAgaWYgKCFzb3VyY2VSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgYnVmZmVyLT5wdXRC
eXRlQXJyYXkoVW5tdWx0aXBsaWVkLCAqZGF0YS5kYXRhKCksIEludFNpemUoZGF0YS53aWR0aCgp
LCBkYXRhLmhlaWdodCgpKSwgc291cmNlUmVjdCwgSW50UG9pbnQoZGVzdE9mZnNldCksIGNvb3Jk
aW5hdGVTeXN0ZW0pOworICAgICAgICBidWZmZXItPnB1dEJ5dGVBcnJheSgqZGF0YS5kYXRhKCks
IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgSW50U2l6ZShkYXRhLndp
ZHRoKCksIGRhdGEuaGVpZ2h0KCkpLCBzb3VyY2VSZWN0LCBJbnRQb2ludChkZXN0T2Zmc2V0KSwg
Y29vcmRpbmF0ZVN5c3RlbSk7CiAKICAgICBkaWREcmF3KGRlc3RSZWN0LCBDYW52YXNEaWREcmF3
QXBwbHlOb25lKTsgLy8gaWdub3JlIHRyYW5zZm9ybSwgc2hhZG93IGFuZCBjbGlwCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCmlu
ZGV4IGY3NDE3ZWJiNjVmNmE2MDA0YjQyMzhkYjAwOTM3OTdiYWM5ODAxZTAuLmYyNmNhZWRhYjAw
MjBhMzNjM2I0ZWMxNTg0MzVmZjBjMTVjZjExNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCkBAIC0xODEsNSArMTgxLDE3IEBA
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpbmVKb2luIGpvaW5TdHls
ZSkKICAgICByZXR1cm4gdHM7CiB9CiAKLQorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBwcmVtdWx0aXBsaWNhdGlvbikKK3sKKyAg
ICBzd2l0Y2ggKHByZW11bHRpcGxpY2F0aW9uKSB7CisgICAgY2FzZSBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uOjpQcmVtdWx0aXBsaWVkOgorICAgICAgICB0cyA8PCAicHJlbXVsdGlwbGllZCI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0
aXBsaWVkOgorICAgICAgICB0cyA8PCAidW5wcmVtdWx0aXBsaWVkIjsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB0czsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oCmluZGV4
IDEyNDE3YWRlYTczNjFjOWYxMjhkYjU5ZTcwM2UzMzU2OGM4ZGZiNjkuLmJmNWNlM2ZmMzk0YTQ2
YWVlMmVlMjNmZjVlMjQ2ODY1OGZiZjRhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKQEAgLTEwMiw2ICsxMDIsMTEgQEAgZW51bSBS
ZW5kZXJpbmdNb2RlIHsKICAgICBBY2NlbGVyYXRlZAogfTsKIAorZW51bSBjbGFzcyBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIHsKKyAgICBQcmVtdWx0aXBsaWVkLAorICAgIFVucHJlbXVsdGlwbGll
ZAorfTsKKwogU3RyaW5nIGNvbXBvc2l0ZU9wZXJhdG9yTmFtZShDb21wb3NpdGVPcGVyYXRvciwg
QmxlbmRNb2RlKTsKIGJvb2wgcGFyc2VCbGVuZE1vZGUoY29uc3QgU3RyaW5nJiwgQmxlbmRNb2Rl
Jik7CiBib29sIHBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb25zdCBTdHJpbmcmLCBD
b21wb3NpdGVPcGVyYXRvciYsIEJsZW5kTW9kZSYpOwpAQCAtMTE3LDYgKzEyMiw3IEBAIFdFQkNP
UkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBD
b21wb3NpdGVPcGVyYXRvcik7CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2luZFJ1bGUpOwogV0VCQ09SRV9FWFBPUlQgV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVDYXApOwogV0VCQ09S
RV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExp
bmVKb2luKTsKK1dFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6
OlRleHRTdHJlYW0mLCBBbHBoYVByZW11bHRpcGxpY2F0aW9uKTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5jcHAKaW5kZXggZmU5MjQzNDg5NGI5Yzk4YzcxNjgyZDA2ZjUxNTM3ODhiNDdkMGIxYy4u
NTdmNDYwMWQ4ZjM5YjcyMDA3ODM3ZTA0Y2I2MGJhMjJhNDA2MzVlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAtMTgwLDcgKzE4
MCw3IEBAIGlubGluZSB2b2lkIEltYWdlQnVmZmVyOjpnZW5lcmljQ29udmVydFRvTHVtaW5hbmNl
TWFzaygpCiAgICAgICAgIGRvdWJsZSBsdW1hID0gKHIgKiAwLjIxMjUgKyBnICogMC43MTU0ICsg
YiAqIDAuMDcyMSkgKiAoKGRvdWJsZSlhIC8gMjU1LjApOwogICAgICAgICBzcmNQaXhlbEFycmF5
LT5zZXQocGl4ZWxPZmZzZXQgKyAzLCBsdW1hKTsKICAgICB9Ci0gICAgcHV0Qnl0ZUFycmF5KFVu
bXVsdGlwbGllZCwgKnNyY1BpeGVsQXJyYXksIGx1bWluYW5jZVJlY3Quc2l6ZSgpLCBsdW1pbmFu
Y2VSZWN0LCBJbnRQb2ludCgpKTsKKyAgICBwdXRCeXRlQXJyYXkoKnNyY1BpeGVsQXJyYXksIEFs
cGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgbHVtaW5hbmNlUmVjdC5zaXpl
KCksIGx1bWluYW5jZVJlY3QsIEludFBvaW50KCkpOwogfQogCiB2b2lkIEltYWdlQnVmZmVyOjpj
b252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDc3ZmUzZTFmOTNiZGQ4ZmM0OThiMDU2OGI4YzU5NWZj
ODZlOTk3ZDkuLjFkNWIwNzM3MmQ2ZDMxZGQ5OGI0MjM5ZDZkZThmMmJiYmRjNWNiNTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtNTAs
MTEgKzUwLDYgQEAgY2xhc3MgSW1hZ2VEYXRhOwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRS
ZWN0OwogCi1lbnVtIE11bHRpcGx5IHsKLSAgICBQcmVtdWx0aXBsaWVkLAotICAgIFVubXVsdGlw
bGllZAotfTsKLQogZW51bSBCYWNraW5nU3RvcmVDb3B5IHsKICAgICBDb3B5QmFja2luZ1N0b3Jl
LCAvLyBHdWFyYW50ZWUgc3Vic2VxdWVudCBkcmF3cyBkb24ndCBhZmZlY3QgdGhlIGNvcHkuCiAg
ICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3cyBtYXkgYWZmZWN0IHRo
ZSBjb3B5LgpAQCAtMTA2LDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8VWludDhDbGFt
cGVkQXJyYXk+IGdldFVubXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJbnRSZWN0JiwgSW50U2l6
ZSogcGl4ZWxBcnJheURpbWVuc2lvbnMgPSBudWxscHRyLCBDb29yZGluYXRlU3lzdGVtID0gTG9n
aWNhbENvb3JkaW5hdGVTeXN0ZW0pIGNvbnN0OwogICAgIFJlZlB0cjxVaW50OENsYW1wZWRBcnJh
eT4gZ2V0UHJlbXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJbnRSZWN0JiwgSW50U2l6ZSogcGl4
ZWxBcnJheURpbWVuc2lvbnMgPSBudWxscHRyLCBDb29yZGluYXRlU3lzdGVtID0gTG9naWNhbENv
b3JkaW5hdGVTeXN0ZW0pIGNvbnN0OwogCi0gICAgdm9pZCBwdXRCeXRlQXJyYXkoTXVsdGlwbHkg
bXVsdGlwbGllZCwgY29uc3QgVWludDhDbGFtcGVkQXJyYXkmLCBjb25zdCBJbnRTaXplJiBzb3Vy
Y2VTaXplLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBv
aW50LCBDb29yZGluYXRlU3lzdGVtID0gTG9naWNhbENvb3JkaW5hdGVTeXN0ZW0pOworICAgIHZv
aWQgcHV0Qnl0ZUFycmF5KGNvbnN0IFVpbnQ4Q2xhbXBlZEFycmF5JiwgQWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBidWZmZXJGb3JtYXQsIGNvbnN0IEludFNpemUmIHNvdXJjZVNpemUsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIENvb3JkaW5hdGVT
eXN0ZW0gPSBMb2dpY2FsQ29vcmRpbmF0ZVN5c3RlbSk7CiAgICAgCiAgICAgdm9pZCBjb252ZXJ0
VG9MdW1pbmFuY2VNYXNrKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4IGVlYjEzNWQwNzYyMDA2YjdkNTRkODc3YTJkMThl
NDQ1ZWU4ZWY4MWQuLmM2YmFmNTIzMWJmZDFlYjMyZGUyNzFjMmFmNmI1ZDVlZTg5ZTAzNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCkBA
IC04NjUsNyArODY1LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpibHVyU2hhZG93QnVmZmVyKGNvbnN0
IEludFNpemUmIHRlbXBsYXRlU2l6ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYmx1ckxheWVy
SW1hZ2UobGF5ZXJEYXRhLT5kYXRhKCksIGJsdXJSZWN0LnNpemUoKSwgYmx1clJlY3Qud2lkdGgo
KSAqIDQpOwotICAgIG1fbGF5ZXJJbWFnZS0+cHV0Qnl0ZUFycmF5KFVubXVsdGlwbGllZCwgKmxh
eWVyRGF0YSwgYmx1clJlY3Quc2l6ZSgpLCBibHVyUmVjdCwgSW50UG9pbnQoKSk7CisgICAgbV9s
YXllckltYWdlLT5wdXRCeXRlQXJyYXkoKmxheWVyRGF0YSwgQWxwaGFQcmVtdWx0aXBsaWNhdGlv
bjo6VW5wcmVtdWx0aXBsaWVkLCBibHVyUmVjdC5zaXplKCksIGJsdXJSZWN0LCB7IH0pOwogfQog
CiB2b2lkIFNoYWRvd0JsdXI6OmJsdXJBbmRDb2xvclNoYWRvd0J1ZmZlcihjb25zdCBJbnRTaXpl
JiB0ZW1wbGF0ZVNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDRjNDJhMzA5NTBkODAw
NDcxZDc2ZmQyYjM2MTM2MjlhNGYzZjBhNmQuLmNkNmQwMWM3OGNmOTQ3OTI3MzBjY2FhOGU1NGY3
NTFkOWQ1MWJmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC0zMzksNyArMzM5LDcgQEAg
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY29weVN1cmZhY2VUb0ltYWdlQW5kQWRqdXN0UmVjdChj
YWlyb19zdXJmYWNlX3QqIHN1cmZhY2UKICAgICByZXR1cm4gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vf
c3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0FSR0IzMiwgcmVjdC53aWR0aCgpLCByZWN0Lmhl
aWdodCgpKSk7CiB9CiAKLXRlbXBsYXRlIDxNdWx0aXBseSBtdWx0aXBsaWVkPgordGVtcGxhdGUg
PEFscGhhUHJlbXVsdGlwbGljYXRpb24gcHJlbXVsdGlwbGllZD4KIFJlZlB0cjxVaW50OENsYW1w
ZWRBcnJheT4gZ2V0SW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFJlY3Qm
IGxvZ2ljYWxSZWN0LCBjb25zdCBJbWFnZUJ1ZmZlckRhdGEmIGRhdGEsIGNvbnN0IEludFNpemUm
IHNpemUsIGNvbnN0IEludFNpemUmIGxvZ2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUp
CiB7CiAgICAgYXV0byByZXN1bHQgPSBVaW50OENsYW1wZWRBcnJheTo6Y3JlYXRlVW5pbml0aWFs
aXplZChyZWN0LndpZHRoKCkgKiByZWN0LmhlaWdodCgpICogNCk7CkBAIC00MDMsNyArNDAzLDcg
QEAgUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBnZXRJbWFnZURhdGEoY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgSW50UmVjdCYgbG9naWMKICAgICAgICAgICAgIHVuc2lnbmVkIGdyZWVuID0g
KCpwaXhlbCAmIDB4MDAwMEZGMDApID4+IDg7CiAgICAgICAgICAgICB1bnNpZ25lZCBibHVlID0g
KCpwaXhlbCAmIDB4MDAwMDAwRkYpOwogCi0gICAgICAgICAgICBpZiAobXVsdGlwbGllZCA9PSBV
bm11bHRpcGxpZWQpIHsKKyAgICAgICAgICAgIGlmIChwcmVtdWx0aXBsaWVkID09IEFscGhhUHJl
bXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCkgewogICAgICAgICAgICAgICAgIGlmIChh
bHBoYSAmJiBhbHBoYSAhPSAyNTUpIHsKICAgICAgICAgICAgICAgICAgICAgcmVkID0gcmVkICog
MjU1IC8gYWxwaGE7CiAgICAgICAgICAgICAgICAgICAgIGdyZWVuID0gZ3JlZW4gKiAyNTUgLyBh
bHBoYTsKQEAgLTQ0OCw3ICs0NDgsNyBAQCBSZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IEltYWdl
QnVmZmVyOjpnZXRVbm11bHRpcGxpZWRJbWFnZURhdGEoY29uc3QgSW50UmVjdCYgcgogICAgIElu
dFJlY3QgYmFja2luZ1N0b3JlUmVjdCA9IGJhY2tpbmdTdG9yZVVuaXQocmVjdCwgY29vcmRpbmF0
ZVN5c3RlbSwgbV9yZXNvbHV0aW9uU2NhbGUpOwogICAgIGlmIChwaXhlbEFycmF5RGltZW5zaW9u
cykKICAgICAgICAgKnBpeGVsQXJyYXlEaW1lbnNpb25zID0gYmFja2luZ1N0b3JlUmVjdC5zaXpl
KCk7Ci0gICAgcmV0dXJuIGdldEltYWdlRGF0YTxVbm11bHRpcGxpZWQ+KGJhY2tpbmdTdG9yZVJl
Y3QsIGxvZ2ljYWxSZWN0LCBtX2RhdGEsIG1fc2l6ZSwgbV9sb2dpY2FsU2l6ZSwgbV9yZXNvbHV0
aW9uU2NhbGUpOworICAgIHJldHVybiBnZXRJbWFnZURhdGE8QWxwaGFQcmVtdWx0aXBsaWNhdGlv
bjo6VW5wcmVtdWx0aXBsaWVkPihiYWNraW5nU3RvcmVSZWN0LCBsb2dpY2FsUmVjdCwgbV9kYXRh
LCBtX3NpemUsIG1fbG9naWNhbFNpemUsIG1fcmVzb2x1dGlvblNjYWxlKTsKIH0KIAogUmVmUHRy
PFVpbnQ4Q2xhbXBlZEFycmF5PiBJbWFnZUJ1ZmZlcjo6Z2V0UHJlbXVsdGlwbGllZEltYWdlRGF0
YShjb25zdCBJbnRSZWN0JiByZWN0LCBJbnRTaXplKiBwaXhlbEFycmF5RGltZW5zaW9ucywgQ29v
cmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSBjb25zdApAQCAtNDU3LDEwICs0NTcsMTAg
QEAgUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBJbWFnZUJ1ZmZlcjo6Z2V0UHJlbXVsdGlwbGll
ZEltYWdlRGF0YShjb25zdCBJbnRSZWN0JgogICAgIEludFJlY3QgYmFja2luZ1N0b3JlUmVjdCA9
IGJhY2tpbmdTdG9yZVVuaXQocmVjdCwgY29vcmRpbmF0ZVN5c3RlbSwgbV9yZXNvbHV0aW9uU2Nh
bGUpOwogICAgIGlmIChwaXhlbEFycmF5RGltZW5zaW9ucykKICAgICAgICAgKnBpeGVsQXJyYXlE
aW1lbnNpb25zID0gYmFja2luZ1N0b3JlUmVjdC5zaXplKCk7Ci0gICAgcmV0dXJuIGdldEltYWdl
RGF0YTxQcmVtdWx0aXBsaWVkPihiYWNraW5nU3RvcmVSZWN0LCBsb2dpY2FsUmVjdCwgbV9kYXRh
LCBtX3NpemUsIG1fbG9naWNhbFNpemUsIG1fcmVzb2x1dGlvblNjYWxlKTsKKyAgICByZXR1cm4g
Z2V0SW1hZ2VEYXRhPEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQ+KGJhY2tp
bmdTdG9yZVJlY3QsIGxvZ2ljYWxSZWN0LCBtX2RhdGEsIG1fc2l6ZSwgbV9sb2dpY2FsU2l6ZSwg
bV9yZXNvbHV0aW9uU2NhbGUpOwogfQogCi12b2lkIEltYWdlQnVmZmVyOjpwdXRCeXRlQXJyYXko
TXVsdGlwbHkgbXVsdGlwbGllZCwgY29uc3QgVWludDhDbGFtcGVkQXJyYXkmIHNvdXJjZSwgY29u
c3QgSW50U2l6ZSYgc291cmNlU2l6ZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50UG9pbnQmIGRlc3RQb2ludCwgQ29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKQor
dm9pZCBJbWFnZUJ1ZmZlcjo6cHV0Qnl0ZUFycmF5KGNvbnN0IFVpbnQ4Q2xhbXBlZEFycmF5JiBz
b3VyY2UsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gc291cmNlRm9ybWF0LCBjb25zdCBJbnRTaXpl
JiBzb3VyY2VTaXplLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYg
ZGVzdFBvaW50LCBDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CiAgICAgSW50
UmVjdCBzY2FsZWRTb3VyY2VSZWN0ID0gYmFja2luZ1N0b3JlVW5pdChzb3VyY2VSZWN0LCBjb29y
ZGluYXRlU3lzdGVtLCBtX3Jlc29sdXRpb25TY2FsZSk7CiAgICAgSW50U2l6ZSBzY2FsZWRTb3Vy
Y2VTaXplID0gYmFja2luZ1N0b3JlVW5pdChzb3VyY2VTaXplLCBjb29yZGluYXRlU3lzdGVtLCBt
X3Jlc29sdXRpb25TY2FsZSk7CkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6
cHV0Qnl0ZUFycmF5KE11bHRpcGx5IG11bHRpcGxpZWQsIGNvbnN0IFVpbnQ4Q2xhbXBlZEFycmF5
JiBzb3UKICAgICAgICAgICAgIHVuc2lnbmVkIGJsdWUgPSBzcmNSb3dzW2Jhc2V4ICsgMl07CiAg
ICAgICAgICAgICB1bnNpZ25lZCBhbHBoYSA9IHNyY1Jvd3NbYmFzZXggKyAzXTsKIAotICAgICAg
ICAgICAgaWYgKG11bHRpcGxpZWQgPT0gVW5tdWx0aXBsaWVkKSB7CisgICAgICAgICAgICBpZiAo
c291cmNlRm9ybWF0ID09IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCkg
ewogICAgICAgICAgICAgICAgIGlmIChhbHBoYSAhPSAyNTUpIHsKICAgICAgICAgICAgICAgICAg
ICAgcmVkID0gKHJlZCAqIGFscGhhICsgMjU0KSAvIDI1NTsKICAgICAgICAgICAgICAgICAgICAg
Z3JlZW4gPSAoZ3JlZW4gKiBhbHBoYSArIDI1NCkgLyAyNTU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IGViOGJl
YmQxNjA4ZTE5NmY3OTJmYjIyN2M1Y2VhNjZkNWIxYmVhYTIuLjQwM2U2NWUxNGRhYTYxYzNmMGNk
MWZhZjIzZTRlNTZlM2U4N2FmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0zOTcsNyArMzk3LDcgQEAgUmVm
UHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBJbWFnZUJ1ZmZlcjo6Z2V0VW5tdWx0aXBsaWVkSW1hZ2VE
YXRhKGNvbnN0IEludFJlY3QmIHIKICAgICBpZiAocGl4ZWxBcnJheURpbWVuc2lvbnMpCiAgICAg
ICAgICpwaXhlbEFycmF5RGltZW5zaW9ucyA9IHNyY1JlY3Quc2l6ZSgpOwogCi0gICAgcmV0dXJu
IG1fZGF0YS5nZXREYXRhKHNyY1JlY3QsIGludGVybmFsU2l6ZSgpLCBjb250ZXh0KCkuaXNBY2Nl
bGVyYXRlZENvbnRleHQoKSwgdHJ1ZSwgMSk7CisgICAgcmV0dXJuIG1fZGF0YS5nZXREYXRhKEFs
cGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgc3JjUmVjdCwgaW50ZXJuYWxT
aXplKCksIGNvbnRleHQoKS5pc0FjY2VsZXJhdGVkQ29udGV4dCgpLCAxKTsKIH0KIAogUmVmUHRy
PFVpbnQ4Q2xhbXBlZEFycmF5PiBJbWFnZUJ1ZmZlcjo6Z2V0UHJlbXVsdGlwbGllZEltYWdlRGF0
YShjb25zdCBJbnRSZWN0JiByZWN0LCBJbnRTaXplKiBwaXhlbEFycmF5RGltZW5zaW9ucywgQ29v
cmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSBjb25zdApAQCAtNDEyLDEwICs0MTIsMTAg
QEAgUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBJbWFnZUJ1ZmZlcjo6Z2V0UHJlbXVsdGlwbGll
ZEltYWdlRGF0YShjb25zdCBJbnRSZWN0JgogICAgIGlmIChwaXhlbEFycmF5RGltZW5zaW9ucykK
ICAgICAgICAgKnBpeGVsQXJyYXlEaW1lbnNpb25zID0gc3JjUmVjdC5zaXplKCk7CiAKLSAgICBy
ZXR1cm4gbV9kYXRhLmdldERhdGEoc3JjUmVjdCwgaW50ZXJuYWxTaXplKCksIGNvbnRleHQoKS5p
c0FjY2VsZXJhdGVkQ29udGV4dCgpLCBmYWxzZSwgMSk7CisgICAgcmV0dXJuIG1fZGF0YS5nZXRE
YXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIHNyY1JlY3QsIGludGVy
bmFsU2l6ZSgpLCBjb250ZXh0KCkuaXNBY2NlbGVyYXRlZENvbnRleHQoKSwgMSk7CiB9CiAKLXZv
aWQgSW1hZ2VCdWZmZXI6OnB1dEJ5dGVBcnJheShNdWx0aXBseSBtdWx0aXBsaWVkLCBjb25zdCBV
aW50OENsYW1wZWRBcnJheSYgc291cmNlLCBjb25zdCBJbnRTaXplJiBzb3VyY2VTaXplLCBjb25z
dCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBDb29yZGlu
YXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCit2b2lkIEltYWdlQnVmZmVyOjpwdXRCeXRlQXJy
YXkoY29uc3QgVWludDhDbGFtcGVkQXJyYXkmIHNvdXJjZSwgQWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBzb3VyY2VGb3JtYXQsIGNvbnN0IEludFNpemUmIHNvdXJjZVNpemUsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIENvb3JkaW5hdGVTeXN0ZW0g
Y29vcmRpbmF0ZVN5c3RlbSkKIHsKICAgICBpZiAoY29udGV4dCgpLmlzQWNjZWxlcmF0ZWRDb250
ZXh0KCkpCiAgICAgICAgIGZsdXNoQ29udGV4dCgpOwpAQCAtNDI3LDcgKzQyNyw3IEBAIHZvaWQg
SW1hZ2VCdWZmZXI6OnB1dEJ5dGVBcnJheShNdWx0aXBseSBtdWx0aXBsaWVkLCBjb25zdCBVaW50
OENsYW1wZWRBcnJheSYgc291CiAgICAgICAgIHNjYWxlZFNvdXJjZVNpemUuc2NhbGUobV9yZXNv
bHV0aW9uU2NhbGUpOwogICAgIH0KIAotICAgIG1fZGF0YS5wdXREYXRhKHNvdXJjZSwgc2NhbGVk
U291cmNlU2l6ZSwgc2NhbGVkU291cmNlUmVjdCwgZGVzdFBvaW50LCBpbnRlcm5hbFNpemUoKSwg
Y29udGV4dCgpLmlzQWNjZWxlcmF0ZWRDb250ZXh0KCksIG11bHRpcGxpZWQgPT0gVW5tdWx0aXBs
aWVkLCAxKTsKKyAgICBtX2RhdGEucHV0RGF0YShzb3VyY2UsIHNvdXJjZUZvcm1hdCwgc2NhbGVk
U291cmNlU2l6ZSwgc2NhbGVkU291cmNlUmVjdCwgZGVzdFBvaW50LCBpbnRlcm5hbFNpemUoKSwg
Y29udGV4dCgpLmlzQWNjZWxlcmF0ZWRDb250ZXh0KCksIDEpOwogICAgIAogICAgIC8vIEZvcmNl
IHJlY3JlYXRpbmcgdGhlIElPU3VyZmFjZSBjYWNoZWQgaW1hZ2UgaWYgaXQgaXMgcmVxdWVzdGVk
IHRocm91Z2ggQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1hZ2UoKS4KICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk2NiBmb3IgZXhwbGFpbmlu
ZyB3aHkgdGhpcyBpcyBuZWNlc3NhcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAKaW5kZXggM2QzZDM4ZGZm
MmIxMTEzMWNlYzBlZTk0ZDRjNTY2Mzk4ZDYzMzM1Ni4uNDI4ZjUzN2I1ZmZjMzY5YjZmOGY3ZjFi
MWU3MWNjY2QzM2ZlNWEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBA
IFZlY3Rvcjx1aW50OF90PiBJbWFnZUJ1ZmZlckRhdGE6OnRvQkdSQURhdGEoYm9vbCBhY2NlbGVy
YXRlUmVuZGVyaW5nLCBpbnQgd2lkdGgsCiB9CiAKIAotUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5
PiBJbWFnZUJ1ZmZlckRhdGE6OmdldERhdGEoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgSW50
U2l6ZSYgc2l6ZSwgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5nLCBib29sIHVubXVsdGlwbGllZCwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlKSBjb25zdAorUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBJ
bWFnZUJ1ZmZlckRhdGE6OmdldERhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3Jt
YXQsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgYWNjZWxl
cmF0ZVJlbmRlcmluZywgZmxvYXQgcmVzb2x1dGlvblNjYWxlKSBjb25zdAogewogICAgIENoZWNr
ZWQ8dW5zaWduZWQsIFJlY29yZE92ZXJmbG93PiBhcmVhID0gNDsKICAgICBhcmVhICo9IHJlY3Qu
d2lkdGgoKTsKQEAgLTIwNyw3ICsyMDcsNyBAQCBSZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IElt
YWdlQnVmZmVyRGF0YTo6Z2V0RGF0YShjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBJbgogICAg
ICAgICBzcmNSb3dzID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YSkgKyBvcmlnaW55
ICogc3JjQnl0ZXNQZXJSb3cgKyBvcmlnaW54ICogNDsKIAogI2lmIFVTRShBQ0NFTEVSQVRFKQot
ICAgICAgICBpZiAodW5tdWx0aXBsaWVkKSB7CisgICAgICAgIGlmIChvdXRwdXRGb3JtYXQgPT0g
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkKSB7CiAKICAgICAgICAgICAg
IHZJbWFnZV9CdWZmZXIgc3JjOwogICAgICAgICAgICAgc3JjLndpZHRoID0gd2lkdGgudW5zYWZl
R2V0KCk7CkBAIC0yNDIsNyArMjQyLDcgQEAgUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBJbWFn
ZUJ1ZmZlckRhdGE6OmdldERhdGEoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgSW4KICAgICAg
ICAgICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IGRlc3RpbmF0aW9uQ29udGV4dCA9IGFkb3B0
Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRlc3RSb3dzLCBkZXN0dy51bnNhZmVHZXQoKSwgZGVz
dGgudW5zYWZlR2V0KCksIDgsIGRlc3RCeXRlc1BlclJvdywgY29sb3JTcGFjZSwga0NHSW1hZ2VB
bHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CiAgICAgICAgICAgICBDR0NvbnRleHRTZXRCbGVuZE1v
ZGUoZGVzdGluYXRpb25Db250ZXh0LmdldCgpLCBrQ0dCbGVuZE1vZGVDb3B5KTsKICAgICAgICAg
ICAgIENHQ29udGV4dERyYXdJbWFnZShkZXN0aW5hdGlvbkNvbnRleHQuZ2V0KCksIENHUmVjdE1h
a2UoMCwgMCwgd2lkdGgudW5zYWZlR2V0KCkgLyByZXNvbHV0aW9uU2NhbGUsIGhlaWdodC51bnNh
ZmVHZXQoKSAvIHJlc29sdXRpb25TY2FsZSksIHNvdXJjZUltYWdlLmdldCgpKTsgLy8gRklYTUU6
IEFkZCBzdWJwaXhlbCB0cmFuc2xhdGlvbi4KLSAgICAgICAgICAgIGlmICghdW5tdWx0aXBsaWVk
KQorICAgICAgICAgICAgaWYgKG91dHB1dEZvcm1hdCA9PSBBbHBoYVByZW11bHRpcGxpY2F0aW9u
OjpQcmVtdWx0aXBsaWVkKQogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICAg
ICAgICAgIHNyY1Jvd3MgPSBkZXN0Um93czsKQEAgLTI1MCw3ICsyNTAsNyBAQCBSZWZQdHI8VWlu
dDhDbGFtcGVkQXJyYXk+IEltYWdlQnVmZmVyRGF0YTo6Z2V0RGF0YShjb25zdCBJbnRSZWN0JiBy
ZWN0LCBjb25zdCBJbgogICAgICAgICAgICAgd2lkdGggPSBkZXN0dzsKICAgICAgICAgICAgIGhl
aWdodCA9IGRlc3RoOwogICAgICAgICB9Ci0gICAgICAgIGlmICh1bm11bHRpcGxpZWQpIHsKKyAg
ICAgICAgaWYgKG91dHB1dEZvcm1hdCA9PSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11
bHRpcGxpZWQpIHsKICAgICAgICAgICAgIGlmICgod2lkdGggKiA0KS5oYXNPdmVyZmxvd2VkKCkp
CiAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIGZvciAoaW50IHkgPSAwOyB5
IDwgaGVpZ2h0LnVuc2FmZUdldCgpOyArK3kpIHsKQEAgLTMyOSw3ICszMjksNyBAQCBSZWZQdHI8
VWludDhDbGFtcGVkQXJyYXk+IEltYWdlQnVmZmVyRGF0YTo6Z2V0RGF0YShjb25zdCBJbnRSZWN0
JiByZWN0LCBjb25zdCBJbgogICAgICAgICAgICAgc3JjID0gZGVzdDsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmICh1bm11bHRpcGxpZWQpCisgICAgICAgIGlmIChvdXRwdXRGb3JtYXQgPT0gQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkKQogICAgICAgICAgICAgdW5wcmVt
dWx0aXBseUJ1ZmZlckRhdGEoc3JjLCBkZXN0KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAvLyBTd2FwIHBpeGVsIGNoYW5uZWxzIGZyb20gQkdSQSB0byBSR0JBLgpAQCAtMzUzLDcgKzM1
Myw3IEBAIFJlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gSW1hZ2VCdWZmZXJEYXRhOjpnZXREYXRh
KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEluCiAgICAgICAgIGlmICgod2lkdGggKiA0KS5o
YXNPdmVyZmxvd2VkKCkpCiAgICAgICAgICAgICBDUkFTSCgpOwogCi0gICAgICAgIGlmICh1bm11
bHRpcGxpZWQpIHsKKyAgICAgICAgaWYgKG91dHB1dEZvcm1hdCA9PSBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uOjpVbnByZW11bHRpcGxpZWQpIHsKICAgICAgICAgICAgIGZvciAoaW50IHkgPSAwOyB5
IDwgaGVpZ2h0LnVuc2FmZUdldCgpOyArK3kpIHsKICAgICAgICAgICAgICAgICBmb3IgKGludCB4
ID0gMDsgeCA8IHdpZHRoLnVuc2FmZUdldCgpOyB4KyspIHsKICAgICAgICAgICAgICAgICAgICAg
aW50IGJhc2V4ID0geCAqIDQ7CkBAIC0zOTgsNyArMzk4LDcgQEAgUmVmUHRyPFVpbnQ4Q2xhbXBl
ZEFycmF5PiBJbWFnZUJ1ZmZlckRhdGE6OmdldERhdGEoY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgSW4KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIEltYWdlQnVmZmVyRGF0YTo6cHV0
RGF0YShjb25zdCBVaW50OENsYW1wZWRBcnJheSYgc291cmNlLCBjb25zdCBJbnRTaXplJiBzb3Vy
Y2VTaXplLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBv
aW50LCBjb25zdCBJbnRTaXplJiBzaXplLCBib29sIGFjY2VsZXJhdGVSZW5kZXJpbmcsIGJvb2wg
dW5tdWx0aXBsaWVkLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUpCit2b2lkIEltYWdlQnVmZmVyRGF0
YTo6cHV0RGF0YShjb25zdCBVaW50OENsYW1wZWRBcnJheSYgc291cmNlLCBBbHBoYVByZW11bHRp
cGxpY2F0aW9uIHNvdXJjZUZvcm1hdCwgY29uc3QgSW50U2l6ZSYgc291cmNlU2l6ZSwgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50
U2l6ZSYgc2l6ZSwgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5nLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUpCiB7CiAjaWYgQVNTRVJUX0RJU0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKHNpemUpOwpAQCAt
NDUzLDcgKzQ1Myw3IEBAIHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpwdXREYXRhKGNvbnN0IFVpbnQ4
Q2xhbXBlZEFycmF5JiBzb3VyY2UsIGNvbnN0IEludFNpemUmIHNvCiAgICAgICAgIGRlc3RSb3dz
ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YSkgKyAoZGVzdHkgKiBkZXN0Qnl0ZXNQ
ZXJSb3cgKyBkZXN0eCAqIDQpLnVuc2FmZUdldCgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEUpCi0g
ICAgICAgIGlmICh1bm11bHRpcGxpZWQpIHsKKyAgICAgICAgaWYgKHNvdXJjZUZvcm1hdCA9PSBB
bHBoYVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQpIHsKIAogICAgICAgICAgICAg
dkltYWdlX0J1ZmZlciBzcmM7CiAgICAgICAgICAgICBzcmMud2lkdGggPSB3aWR0aC51bnNhZmVH
ZXQoKTsKQEAgLTQ4Nyw3ICs0ODcsNyBAQCB2b2lkIEltYWdlQnVmZmVyRGF0YTo6cHV0RGF0YShj
b25zdCBVaW50OENsYW1wZWRBcnJheSYgc291cmNlLCBjb25zdCBJbnRTaXplJiBzbwogICAgICAg
ICAgICAgUmV0YWluUHRyPENHQ29udGV4dFJlZj4gZGVzdGluYXRpb25Db250ZXh0ID0gYWRvcHRD
RihDR0JpdG1hcENvbnRleHRDcmVhdGUoZGVzdFJvd3MsIGRlc3R3LnVuc2FmZUdldCgpLCBkZXN0
aC51bnNhZmVHZXQoKSwgOCwgZGVzdEJ5dGVzUGVyUm93LCBjb2xvclNwYWNlLCBrQ0dJbWFnZUFs
cGhhUHJlbXVsdGlwbGllZExhc3QpKTsKICAgICAgICAgICAgIENHQ29udGV4dFNldEJsZW5kTW9k
ZShkZXN0aW5hdGlvbkNvbnRleHQuZ2V0KCksIGtDR0JsZW5kTW9kZUNvcHkpOwogICAgICAgICAg
ICAgQ0dDb250ZXh0RHJhd0ltYWdlKGRlc3RpbmF0aW9uQ29udGV4dC5nZXQoKSwgQ0dSZWN0TWFr
ZSgwLCAwLCB3aWR0aC51bnNhZmVHZXQoKSAvIHJlc29sdXRpb25TY2FsZSwgaGVpZ2h0LnVuc2Fm
ZUdldCgpIC8gcmVzb2x1dGlvblNjYWxlKSwgc291cmNlSW1hZ2UuZ2V0KCkpOyAvLyBGSVhNRTog
QWRkIHN1YnBpeGVsIHRyYW5zbGF0aW9uLgotICAgICAgICAgICAgaWYgKCF1bm11bHRpcGxpZWQp
CisgICAgICAgICAgICBpZiAoc291cmNlRm9ybWF0ID09IEFscGhhUHJlbXVsdGlwbGljYXRpb246
OlByZW11bHRpcGxpZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAv
LyBUaGUgcHJlbXVsdGlwbHlpbmcgd2lsbCBiZSBkb25lIGluLXBsYWNlLgpAQCAtNTAzLDcgKzUw
Myw3IEBAIHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpwdXREYXRhKGNvbnN0IFVpbnQ4Q2xhbXBlZEFy
cmF5JiBzb3VyY2UsIGNvbnN0IEludFNpemUmIHNvCiAgICAgICAgICAgICAgICAgdWludDhfdCBh
bHBoYSA9IHNyY1Jvd3NbYmFzZXggKyAzXTsKICNpZiBVU0VfQVJHQjMyCiAgICAgICAgICAgICAg
ICAgLy8gQnl0ZSBvcmRlciBpcyBkaWZmZXJlbnQgYXMgd2UgdXNlIGltYWdlIGJ1ZmZlcnMgb2Yg
QVJHQjMyCi0gICAgICAgICAgICAgICAgaWYgKHVubXVsdGlwbGllZCAmJiBhbHBoYSAhPSAyNTUp
IHsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlRm9ybWF0ID09IEFscGhhUHJlbXVsdGlwbGlj
YXRpb246OlVucHJlbXVsdGlwbGllZCAmJiBhbHBoYSAhPSAyNTUpIHsKICAgICAgICAgICAgICAg
ICAgICAgZGVzdFJvd3NbYmFzZXhdID0gKHNyY1Jvd3NbYmFzZXggKyAyXSAqIGFscGhhICsgMjU0
KSAvIDI1NTsKICAgICAgICAgICAgICAgICAgICAgZGVzdFJvd3NbYmFzZXggKyAxXSA9IChzcmNS
b3dzW2Jhc2V4ICsgMV0gKiBhbHBoYSArIDI1NCkgLyAyNTU7CiAgICAgICAgICAgICAgICAgICAg
IGRlc3RSb3dzW2Jhc2V4ICsgMl0gPSAoc3JjUm93c1tiYXNleCArIDBdICogYWxwaGEgKyAyNTQp
IC8gMjU1OwpAQCAtNTE1LDcgKzUxNSw3IEBAIHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpwdXREYXRh
KGNvbnN0IFVpbnQ4Q2xhbXBlZEFycmF5JiBzb3VyY2UsIGNvbnN0IEludFNpemUmIHNvCiAgICAg
ICAgICAgICAgICAgICAgIGRlc3RSb3dzW2Jhc2V4ICsgM10gPSBhbHBoYTsKICAgICAgICAgICAg
ICAgICB9CiAjZWxzZQotICAgICAgICAgICAgICAgIGlmICh1bm11bHRpcGxpZWQgJiYgYWxwaGEg
IT0gMjU1KSB7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUZvcm1hdCA9PSBBbHBoYVByZW11
bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQgJiYgYWxwaGEgIT0gMjU1KSB7CiAgICAgICAg
ICAgICAgICAgICAgIGRlc3RSb3dzW2Jhc2V4XSA9IChzcmNSb3dzW2Jhc2V4XSAqIGFscGhhICsg
MjU0KSAvIDI1NTsKICAgICAgICAgICAgICAgICAgICAgZGVzdFJvd3NbYmFzZXggKyAxXSA9IChz
cmNSb3dzW2Jhc2V4ICsgMV0gKiBhbHBoYSArIDI1NCkgLyAyNTU7CiAgICAgICAgICAgICAgICAg
ICAgIGRlc3RSb3dzW2Jhc2V4ICsgMl0gPSAoc3JjUm93c1tiYXNleCArIDJdICogYWxwaGEgKyAy
NTQpIC8gMjU1OwpAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpwdXRE
YXRhKGNvbnN0IFVpbnQ4Q2xhbXBlZEFycmF5JiBzb3VyY2UsIGNvbnN0IEludFNpemUmIHNvCiAg
ICAgICAgICAgICBzcmMgPSBkZXN0OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHVubXVsdGlw
bGllZCkKKyAgICAgICAgaWYgKHNvdXJjZUZvcm1hdCA9PSBBbHBoYVByZW11bHRpcGxpY2F0aW9u
OjpVbnByZW11bHRpcGxpZWQpCiAgICAgICAgICAgICBwcmVtdWx0aXBseUJ1ZmZlckRhdGEoc3Jj
LCBkZXN0KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBTd2FwIHBpeGVsIGNoYW5u
ZWxzIGZyb20gUkdCQSB0byBCR1JBLgpAQCAtNTc5LDcgKzU3OSw3IEBAIHZvaWQgSW1hZ2VCdWZm
ZXJEYXRhOjpwdXREYXRhKGNvbnN0IFVpbnQ4Q2xhbXBlZEFycmF5JiBzb3VyY2UsIGNvbnN0IElu
dFNpemUmIHNvCiAgICAgICAgICAgICAgICAgaW50IGJhc2V4ID0geCAqIDQ7CiAgICAgICAgICAg
ICAgICAgdWludDhfdCBiID0gc3JjUm93c1tiYXNleF07CiAgICAgICAgICAgICAgICAgdWludDhf
dCBhbHBoYSA9IHNyY1Jvd3NbYmFzZXggKyAzXTsKLSAgICAgICAgICAgICAgICBpZiAodW5tdWx0
aXBsaWVkICYmIGFscGhhICE9IDI1NSkgeworICAgICAgICAgICAgICAgIGlmIChzb3VyY2VGb3Jt
YXQgPT0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkICYmIGFscGhhICE9
IDI1NSkgewogICAgICAgICAgICAgICAgICAgICBkZXN0Um93c1tiYXNleF0gPSAoc3JjUm93c1ti
YXNleCArIDJdICogYWxwaGEgKyAyNTQpIC8gMjU1OwogICAgICAgICAgICAgICAgICAgICBkZXN0
Um93c1tiYXNleCArIDFdID0gKHNyY1Jvd3NbYmFzZXggKyAxXSAqIGFscGhhICsgMjU0KSAvIDI1
NTsKICAgICAgICAgICAgICAgICAgICAgZGVzdFJvd3NbYmFzZXggKyAyXSA9IChiICogYWxwaGEg
KyAyNTQpIC8gMjU1OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmgKaW5kZXggYjExNmM1YjcyMGIwYjA0ZWZiMGZkYzUw
NjY0MTJiYzRlYWNlMTc2Zi4uZjJlOTRmOThmMDZiYThkZTEyN2U5NWMxYzdlNjkwZDk3MTA2MTQ4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJEYXRhQ0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckRhdGFDRy5oCkBAIC02Miw4ICs2Miw4IEBAIHN0cnVjdCBJbWFnZUJ1ZmZlckRh
dGEgewogI2VuZGlmCiAKICAgICBWZWN0b3I8dWludDhfdD4gdG9CR1JBRGF0YShib29sIGFjY2Vs
ZXJhdGVSZW5kZXJpbmcsIGludCB3aWR0aCwgaW50IGhlaWdodCkgY29uc3Q7Ci0gICAgUmVmUHRy
PFVpbnQ4Q2xhbXBlZEFycmF5PiBnZXREYXRhKGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXpl
JiwgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5nLCBib29sIHVubXVsdGlwbGllZCwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlKSBjb25zdDsKLSAgICB2b2lkIHB1dERhdGEoY29uc3QgVWludDhDbGFtcGVk
QXJyYXkmIHNvdXJjZSwgY29uc3QgSW50U2l6ZSYgc291cmNlU2l6ZSwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50U2l6ZSYsIGJv
b2wgYWNjZWxlcmF0ZVJlbmRlcmluZywgYm9vbCB1bm11bHRpcGxpZWQsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSk7CisgICAgUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBnZXREYXRhKEFscGhhUHJl
bXVsdGlwbGljYXRpb24sIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBhY2Nl
bGVyYXRlUmVuZGVyaW5nLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUpIGNvbnN0OworICAgIHZvaWQg
cHV0RGF0YShjb25zdCBVaW50OENsYW1wZWRBcnJheSYgc291cmNlLCBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIHNvdXJjZUZvcm1hdCwgY29uc3QgSW50U2l6ZSYgc291cmNlU2l6ZSwgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50U2l6
ZSYsIGJvb2wgYWNjZWxlcmF0ZVJlbmRlcmluZywgZmxvYXQgcmVzb2x1dGlvblNjYWxlKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCmluZGV4IGE5MDE3
MWIyYjI0OTQzOTY3OTViNTQ1Y2UzOTAwZWQxNGYxNGU4NjcuLjc3NzM3ZTQyN2JhOTA3NDlhNjg3
MWZiZmJkMzU4ZGRjMzk5MzFjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcApAQCAtMzEwLDcgKzMx
MCw3IEBAIHZvaWQgRkVDb2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgcmVzdWx0SW1hZ2UtPnB1dEJ5dGVBcnJheShVbm11bHRp
cGxpZWQsICpwaXhlbEFycmF5LCBpbWFnZVJlY3Quc2l6ZSgpLCBpbWFnZVJlY3QsIEludFBvaW50
KCkpOworICAgIHJlc3VsdEltYWdlLT5wdXRCeXRlQXJyYXkoKnBpeGVsQXJyYXksIEFscGhhUHJl
bXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgaW1hZ2VSZWN0LnNpemUoKSwgaW1hZ2VS
ZWN0LCBJbnRQb2ludCgpKTsKIH0KIAogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IENvbG9yTWF0cml4VHlwZSYgdHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNw
cAppbmRleCBjNzQ4MmUyNjU3ZjE3ZWI2ZjQzMzMyMDllMDVhZjY5NTExNzhjMmFmLi4wYjA1ZjE3
MGJkMTMzZjFhOGMyNDU0OTk1MjlkMDdjZDU1MmVjZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCkBA
IC0xMDUsNyArMTA1LDcgQEAgdm9pZCBGRURyb3BTaGFkb3c6OnBsYXRmb3JtQXBwbHlTb2Z0d2Fy
ZSgpCiAKICAgICBjb250ZXh0U2hhZG93LmJsdXJMYXllckltYWdlKHNyY1BpeGVsQXJyYXktPmRh
dGEoKSwgc2hhZG93QXJlYS5zaXplKCksIDQgKiBzaGFkb3dBcmVhLnNpemUoKS53aWR0aCgpKTsK
IAotICAgIHJlc3VsdEltYWdlLT5wdXRCeXRlQXJyYXkoUHJlbXVsdGlwbGllZCwgKnNyY1BpeGVs
QXJyYXksIHNoYWRvd0FyZWEuc2l6ZSgpLCBzaGFkb3dBcmVhLCBJbnRQb2ludCgpLCBJbWFnZUJ1
ZmZlcjo6QmFja2luZ1N0b3JlQ29vcmRpbmF0ZVN5c3RlbSk7CisgICAgcmVzdWx0SW1hZ2UtPnB1
dEJ5dGVBcnJheSgqc3JjUGl4ZWxBcnJheSwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVs
dGlwbGllZCwgc2hhZG93QXJlYS5zaXplKCksIHNoYWRvd0FyZWEsIEludFBvaW50KCksIEltYWdl
QnVmZmVyOjpCYWNraW5nU3RvcmVDb29yZGluYXRlU3lzdGVtKTsKIAogICAgIHJlc3VsdENvbnRl
eHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZVNvdXJjZUluKTsKICAgICByZXN1bHRD
b250ZXh0LmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGFic29sdXRlUGFpbnRSZWN0
KCkuc2l6ZSgpKSwgbV9zaGFkb3dDb2xvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggNGQzOGUx
YmMzN2FmNjkyYTk2YTRlOTRmOTQzYTE3ZTc1M2RiZWVjNi4uMmIzY2UyOTdhOTI1ODA3MjU4Y2Nm
ZTNlODY1ZDNkZjMxOWZhNGU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtMjI1LDkgKzIyNSw5
IEBAIEltYWdlQnVmZmVyKiBGaWx0ZXJFZmZlY3Q6OmltYWdlQnVmZmVyUmVzdWx0KCkKIAogICAg
IEludFJlY3QgZGVzdGluYXRpb25SZWN0KEludFBvaW50KCksIG1fYWJzb2x1dGVQYWludFJlY3Qu
c2l6ZSgpKTsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1f
aW1hZ2VCdWZmZXJSZXN1bHQtPnB1dEJ5dGVBcnJheShQcmVtdWx0aXBsaWVkLCAqbV9wcmVtdWx0
aXBsaWVkSW1hZ2VSZXN1bHQsIGRlc3RpbmF0aW9uUmVjdC5zaXplKCksIGRlc3RpbmF0aW9uUmVj
dCwgSW50UG9pbnQoKSk7CisgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQtPnB1dEJ5dGVBcnJh
eSgqbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQsIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlBy
ZW11bHRpcGxpZWQsIGRlc3RpbmF0aW9uUmVjdC5zaXplKCksIGRlc3RpbmF0aW9uUmVjdCwgSW50
UG9pbnQoKSk7CiAgICAgZWxzZQotICAgICAgICBtX2ltYWdlQnVmZmVyUmVzdWx0LT5wdXRCeXRl
QXJyYXkoVW5tdWx0aXBsaWVkLCAqbV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCwgZGVzdGluYXRp
b25SZWN0LnNpemUoKSwgZGVzdGluYXRpb25SZWN0LCBJbnRQb2ludCgpKTsKKyAgICAgICAgbV9p
bWFnZUJ1ZmZlclJlc3VsdC0+cHV0Qnl0ZUFycmF5KCptX3VubXVsdGlwbGllZEltYWdlUmVzdWx0
LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIGRlc3RpbmF0aW9uUmVj
dC5zaXplKCksIGRlc3RpbmF0aW9uUmVjdCwgSW50UG9pbnQoKSk7CiAgICAgcmV0dXJuIG1faW1h
Z2VCdWZmZXJSZXN1bHQuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFEaXJlY3QyRC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEYXRhRGlyZWN0MkQuY3Bw
CmluZGV4IGJhZDNmMTVjNWE2YjUyOTFlNmI5ZTY1N2M2ZTQwMjBiZTY2ZGY3MzYuLjNlYmM0MGQ1
ZjcxNzFmMWIwZmQ1MTQ3NjcyOGNiYjNiZTJkY2NmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFEaXJlY3QyRC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGF0YURp
cmVjdDJELmNwcApAQCAtNDEsNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJl
ZlB0cjxVaW50OENsYW1wZWRBcnJheT4gSW1hZ2VCdWZmZXJEYXRhOjpnZXREYXRhKGNvbnN0IElu
dFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgLyogYWNjZWxlcmF0ZVJlbmRl
cmluZyAqLywgYm9vbCAvKiB1bm11bHRpcGxpZWQgKi8sIGZsb2F0IC8qIHJlc29sdXRpb25TY2Fs
ZSAqLykgY29uc3QKK1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gSW1hZ2VCdWZmZXJEYXRhOjpn
ZXREYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0
IEludFNpemUmIHNpemUsIGJvb2wgLyogYWNjZWxlcmF0ZVJlbmRlcmluZyAqLywgZmxvYXQgLyog
cmVzb2x1dGlvblNjYWxlICovKSBjb25zdAogewogICAgIGF1dG8gcGxhdGZvcm1Db250ZXh0ID0g
Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAKQEAgLTg0LDcgKzg0LDcgQEAgUmVmUHRyPFVp
bnQ4Q2xhbXBlZEFycmF5PiBJbWFnZUJ1ZmZlckRhdGE6OmdldERhdGEoY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgSW4KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIEltYWdlQnVmZmVy
RGF0YTo6cHV0RGF0YShjb25zdCBVaW50OENsYW1wZWRBcnJheSYgc291cmNlLCBjb25zdCBJbnRT
aXplJiBzb3VyY2VTaXplLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2lu
dCYgZGVzdFBvaW50LCBjb25zdCBJbnRTaXplJiBzaXplLCBib29sIC8qIGFjY2VsZXJhdGVSZW5k
ZXJpbmcgKi8sIGJvb2wgdW5tdWx0aXBsaWVkLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUpCit2b2lk
IEltYWdlQnVmZmVyRGF0YTo6cHV0RGF0YShjb25zdCBVaW50OENsYW1wZWRBcnJheSYgc291cmNl
LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIHNvdXJjZUZvcm1hdCwgY29uc3QgSW50U2l6ZSYgc291
cmNlU2l6ZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQ
b2ludCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCAvKiBhY2NlbGVyYXRlUmVuZGVyaW5nICov
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUpCiB7CiAgICAgYXV0byBwbGF0Zm9ybUNvbnRleHQgPSBj
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDT01QdHI8SUQyRDFCaXRtYXBSZW5kZXJU
YXJnZXQ+IHJlbmRlclRhcmdldChRdWVyeSwgcGxhdGZvcm1Db250ZXh0KTsKQEAgLTE0MCw3ICsx
NDAsNyBAQCB2b2lkIEltYWdlQnVmZmVyRGF0YTo6cHV0RGF0YShjb25zdCBVaW50OENsYW1wZWRB
cnJheSYgc291cmNlLCBjb25zdCBJbnRTaXplJiBzbwogICAgICAgICBmb3IgKGludCB4ID0gMDsg
eCA8IHdpZHRoLnVuc2FmZUdldCgpOyB4KyspIHsKICAgICAgICAgICAgIGludCBiYXNleCA9IHgg
KiA0OwogICAgICAgICAgICAgdWludDhfdCBhbHBoYSA9IHNyY1Jvd3NbYmFzZXggKyAzXTsKLSAg
ICAgICAgICAgIGlmICh1bm11bHRpcGxpZWQgJiYgYWxwaGEgIT0gMjU1KSB7CisgICAgICAgICAg
ICBpZiAoc291cmNlRm9ybWF0ID09IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlw
bGllZCAmJiBhbHBoYSAhPSAyNTUpIHsKICAgICAgICAgICAgICAgICByb3dbYmFzZXhdID0gKHNy
Y1Jvd3NbYmFzZXhdICogYWxwaGEgKyAyNTQpIC8gMjU1OwogICAgICAgICAgICAgICAgIHJvd1ti
YXNleCArIDFdID0gKHNyY1Jvd3NbYmFzZXggKyAxXSAqIGFscGhhICsgMjU0KSAvIDI1NTsKICAg
ICAgICAgICAgICAgICByb3dbYmFzZXggKyAyXSA9IChzcmNSb3dzW2Jhc2V4ICsgMl0gKiBhbHBo
YSArIDI1NCkgLyAyNTU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vSW1hZ2VCdWZmZXJEYXRhRGlyZWN0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFEaXJlY3QyRC5oCmluZGV4IDkyNWI0YzA3
M2E0OWMxYjA3MDBjZmFjZTQ3YTMyNGY0OTZkOWQyOWIuLjBmOGVkODljMTFiYjgzNjgzNjRjZmZi
ODlkOGNmNzEyZmRlN2NkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFEaXJlY3QyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFEaXJlY3QyRC5oCkBAIC00Myw4
ICs0Myw4IEBAIHN0cnVjdCBJbWFnZUJ1ZmZlckRhdGEgewogICAgIHN0ZDo6dW5pcXVlX3B0cjxH
cmFwaGljc0NvbnRleHQ+IGNvbnRleHQ7CiAgICAgSUQyRDFSZW5kZXJUYXJnZXQqIG1fY29tcGF0
aWJsZVRhcmdldCB7IG51bGxwdHIgfTsKIAotICAgIFJlZlB0cjxVaW50OENsYW1wZWRBcnJheT4g
Z2V0RGF0YShjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGJvb2wgYWNjZWxlcmF0ZVJl
bmRlcmluZywgYm9vbCB1bm11bHRpcGxpZWQsIGZsb2F0IHJlc29sdXRpb25TY2FsZSkgY29uc3Q7
Ci0gICAgdm9pZCBwdXREYXRhKGNvbnN0IFVpbnQ4Q2xhbXBlZEFycmF5JiBzb3VyY2UsIGNvbnN0
IEludFNpemUmIHNvdXJjZVNpemUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFNpemUmLCBib29sIGFjY2VsZXJhdGVSZW5kZXJp
bmcsIGJvb2wgdW5tdWx0aXBsaWVkLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUpOworICAgIFJlZlB0
cjxVaW50OENsYW1wZWRBcnJheT4gZ2V0RGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uLCBjb25z
dCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGJvb2wgYWNjZWxlcmF0ZVJlbmRlcmluZywgZmxv
YXQgcmVzb2x1dGlvblNjYWxlKSBjb25zdDsKKyAgICB2b2lkIHB1dERhdGEoY29uc3QgVWludDhD
bGFtcGVkQXJyYXkmIHNvdXJjZSwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBzb3VyY2VGb3JtYXQs
IGNvbnN0IEludFNpemUmIHNvdXJjZVNpemUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNv
bnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFNpemUmLCBib29sIGFjY2VsZXJhdGVS
ZW5kZXJpbmcsIGZsb2F0IHJlc29sdXRpb25TY2FsZSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
SW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAKaW5kZXggZmRjNmY2ZjQ0YzM3YjljNWM0Y2Q4
MmY2MzQzY2FjYjY5YmY1Njc0MS4uN2NmZTU4ZWFkODdiZGFlNGM3ZTVkM2RiM2ZkYjg1ZTI1MjAw
NTZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0lt
YWdlQnVmZmVyRGlyZWN0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJELmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIFJlZlB0
cjxVaW50OENsYW1wZWRBcnJheT4gSW1hZ2VCdWZmZXI6OmdldFVubXVsdGlwbGllZEltYWdlRGF0
YShjb25zdCBJbnRSZWN0JiByCiAgICAgaWYgKHBpeGVsQXJyYXlEaW1lbnNpb25zKQogICAgICAg
ICAqcGl4ZWxBcnJheURpbWVuc2lvbnMgPSBzcmNSZWN0LnNpemUoKTsKIAotICAgIHJldHVybiBt
X2RhdGEuZ2V0RGF0YShzcmNSZWN0LCBpbnRlcm5hbFNpemUoKSwgY29udGV4dCgpLmlzQWNjZWxl
cmF0ZWRDb250ZXh0KCksIHRydWUsIDEpOworICAgIHJldHVybiBtX2RhdGEuZ2V0RGF0YShBbHBo
YVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIHNyY1JlY3QsIGludGVybmFsU2l6
ZSgpLCBjb250ZXh0KCkuaXNBY2NlbGVyYXRlZENvbnRleHQoKSwgMSk7CiB9CiAKIFJlZlB0cjxV
aW50OENsYW1wZWRBcnJheT4gSW1hZ2VCdWZmZXI6OmdldFByZW11bHRpcGxpZWRJbWFnZURhdGEo
Y29uc3QgSW50UmVjdCYgcmVjdCwgSW50U2l6ZSogcGl4ZWxBcnJheURpbWVuc2lvbnMsIENvb3Jk
aW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgY29uc3QKQEAgLTI0MCwxMCArMjQwLDEwIEBA
IFJlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gSW1hZ2VCdWZmZXI6OmdldFByZW11bHRpcGxpZWRJ
bWFnZURhdGEoY29uc3QgSW50UmVjdCYKICAgICBpZiAocGl4ZWxBcnJheURpbWVuc2lvbnMpCiAg
ICAgICAgICpwaXhlbEFycmF5RGltZW5zaW9ucyA9IHNyY1JlY3Quc2l6ZSgpOwogCi0gICAgcmV0
dXJuIG1fZGF0YS5nZXREYXRhKHNyY1JlY3QsIGludGVybmFsU2l6ZSgpLCBjb250ZXh0KCkuaXNB
Y2NlbGVyYXRlZENvbnRleHQoKSwgZmFsc2UsIDEpOworICAgIHJldHVybiBtX2RhdGEuZ2V0RGF0
YShBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBzcmNSZWN0LCBpbnRlcm5h
bFNpemUoKSwgY29udGV4dCgpLmlzQWNjZWxlcmF0ZWRDb250ZXh0KCksIDEpOwogfQogCi12b2lk
IEltYWdlQnVmZmVyOjpwdXRCeXRlQXJyYXkoTXVsdGlwbHkgbXVsdGlwbGllZCwgVWludDhDbGFt
cGVkQXJyYXkqIHNvdXJjZSwgY29uc3QgSW50U2l6ZSYgc291cmNlU2l6ZSwgY29uc3QgSW50UmVj
dCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQ29vcmRpbmF0ZVN5c3Rl
bSBjb29yZGluYXRlU3lzdGVtKQordm9pZCBJbWFnZUJ1ZmZlcjo6cHV0Qnl0ZUFycmF5KGNvbnN0
IFVpbnQ4Q2xhbXBlZEFycmF5JiBzb3VyY2UsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gYnVmZmVy
Rm9ybWF0LCBjb25zdCBJbnRTaXplJiBzb3VyY2VTaXplLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5h
dGVTeXN0ZW0pCiB7CiAgICAgaWYgKGNvbnRleHQoKS5pc0FjY2VsZXJhdGVkQ29udGV4dCgpKQog
ICAgICAgICBmbHVzaENvbnRleHQoKTsKQEAgLTI1NSw3ICsyNTUsNyBAQCB2b2lkIEltYWdlQnVm
ZmVyOjpwdXRCeXRlQXJyYXkoTXVsdGlwbHkgbXVsdGlwbGllZCwgVWludDhDbGFtcGVkQXJyYXkq
IHNvdXJjZSwgYwogICAgICAgICBzY2FsZWRTb3VyY2VTaXplLnNjYWxlKG1fcmVzb2x1dGlvblNj
YWxlKTsKICAgICB9CiAKLSAgICBtX2RhdGEucHV0RGF0YShzb3VyY2UsIHNjYWxlZFNvdXJjZVNp
emUsIHNjYWxlZFNvdXJjZVJlY3QsIGRlc3RQb2ludCwgaW50ZXJuYWxTaXplKCksIGNvbnRleHQo
KS5pc0FjY2VsZXJhdGVkQ29udGV4dCgpLCBtdWx0aXBsaWVkID09IFVubXVsdGlwbGllZCwgMSk7
CisgICAgbV9kYXRhLnB1dERhdGEoc291cmNlLCBidWZmZXJGb3JtYXQsIHNjYWxlZFNvdXJjZVNp
emUsIHNjYWxlZFNvdXJjZVJlY3QsIGRlc3RQb2ludCwgaW50ZXJuYWxTaXplKCksIGNvbnRleHQo
KS5pc0FjY2VsZXJhdGVkQ29udGV4dCgpLCAxKTsKIH0KIAogU3RyaW5nIEltYWdlQnVmZmVyOjp0
b0RhdGFVUkwoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxkb3VibGU+LCBDb29yZGluYXRl
U3lzdGVtKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>