<?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>165776</bug_id>
          
          <creation_ts>2016-12-12 14:37:49 -0800</creation_ts>
          <short_desc>[CSS Parser] Rename CSSPrimitiveValue::UnitTypes to CSSPrimitiveValue::UnitType</short_desc>
          <delta_ts>2016-12-13 09:40:09 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1259211</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-12-12 14:37:49 -0800</bug_when>
    <thetext>[CSS Parser] Rename CSSPrimitiveValue::UnitTypes to CSSPrimitiveValue::UnitType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259223</commentid>
    <comment_count>1</comment_count>
      <attachid>296954</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-12-12 15:02:53 -0800</bug_when>
    <thetext>Created attachment 296954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259410</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-12-13 09:40:09 -0800</bug_when>
    <thetext>Landed in r209758.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296954</attachid>
            <date>2016-12-12 15:02:53 -0800</date>
            <delta_ts>2016-12-12 15:12:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165776-20161212170205.patch</filename>
            <type>text/plain</type>
            <size>72229</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTcyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk0IEBACisyMDE2LTEyLTEyICBEYXZlIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgUGFyc2VyXSBSZW5hbWUgQ1NT
UHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyB0byBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTc3Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL0NT
U0NhbGN1bGF0aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dW5pdENhdGVnb3J5KToK
KyAgICAgICAgKFdlYkNvcmU6Omhhc0RvdWJsZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmRl
dGVybWluZUNhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9uTm9k
ZVBhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUu
aDoKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNWYWxpZENTU1VuaXRUeXBlRm9yRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjppc1N0cmluZ1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OnVuaXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNs
ZWFudXApOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5n
dGhEb3VibGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVO
b25DYWxjTGVuZ3RoRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojpjb252ZXJzaW9uVG9DYW5vbmljYWxVbml0c1NjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpnZXRGbG9hdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpkb3VibGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6Y2Fub25pY2FsVW5pdFR5cGVGb3JDYXRlZ29yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZG91YmxlVmFsdWVJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xvbmVGb3JDU1NPTSk6CisgICAgICAgICog
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6aXNGb250UmVsYXRpdmVMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojppc1Jlc29sdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZUFsbG93aW5nTWFyZ2luUXVpcmspOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQ
b29sOjpjcmVhdGVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVWYWx1ZSk6CisgICAgICAgICogY3NzL01l
ZGlhUXVlcnlFeHAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmVhdHVyZVdpdGhWYWxpZERlbnNp
dHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cHJlc3Npb246Ok1lZGlhUXVlcnlF
eHByZXNzaW9uKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVNpbXBsZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpwYXJzZVNpbXBsZUxlbmd0aFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlQ29sb3JJ
bnRPclBlcmNlbnRhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6ZmFzdFBhcnNlQ29sb3JJbnRlcm5h
bCk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVRyYW5zZm9ybVRyYW5zbGF0ZUFyZ3VtZW50cyk6
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVRyYW5zZm9ybU51bWJlckFyZ3VtZW50cyk6CisgICAg
ICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
c3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZSk6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdU
b1VuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclRva2VuOjpDU1NQYXJzZXJU
b2tlbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJUb2tlbjo6Y29udmVydFRvUGVyY2Vu
dGFnZSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyVG9rZW46OnVuaXRUeXBlKToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFy
c2VyOjpjb25zdW1lVHJhbnNmb3JtT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVD
b3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVBbmltYXRpb25OYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnN1bWVQZXJzcGVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dW1lUG9zaXRpb25Mb25naGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQ291bnRlckNv
bnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZVJlZmxlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29uc3VtZUdyaWRCcmVhZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
UGFyc2VyOjpjb25zdW1lRmxleCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpDYWxjUGFyc2VyOjpjb25zdW1lTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
b3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUludGVnZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZVBlcmNlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQW5nbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lVGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVDdXN0b21JZGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVT
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25z
dW1lVXJsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29u
c3VtZURlcHJlY2F0ZWRHcmFkaWVudFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3Bl
cnR5UGFyc2VySGVscGVyczo6Y29uc3VtZURlcHJlY2F0ZWRHcmFkaWVudENvbG9yU3RvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVDcm9zc0Zh
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1l
SW1hZ2VTZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpj
b25zdW1lRmlsdGVyRnVuY3Rpb24pOgorICAgICAgICAqIGNzcy9wYXJzZXIvTWVkaWFRdWVyeVBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpyZWFkRmVhdHVy
ZVZhbHVlKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjpjb21wdXRlTGVuZ3RoKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmg6CisgICAgICAgICog
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6
c2V0SW5saW5lU3R5bGVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50
OjphZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUpOgorICAgICAgICAqIGRv
bS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aFZhbHVlOjp0b0NTU1ByaW1pdGl2ZVZhbHVlKToKKwog
MjAxNi0xMi0xMiAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NT
IFBhcnNlcl0gTWVkaWFRdWVyeVBhcnNlciBzaG91bGQgdXNlIFJlZiBhbmQgbm90IFJlZlB0cgpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAkocmV2aXNp
b24gMjA5NzE3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0
YXRpYyBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBjcmVhdGVDU1MoY29uc3QgQ2FsY0V4
cHJlc3Npb25Ob2RlJiwgY29uc3QgUmVuZGVyU3R5bGUmKTsKIHN0YXRpYyBSZWZQdHI8Q1NTQ2Fs
Y0V4cHJlc3Npb25Ob2RlPiBjcmVhdGVDU1MoY29uc3QgTGVuZ3RoJiwgY29uc3QgUmVuZGVyU3R5
bGUmKTsKIAotc3RhdGljIENhbGN1bGF0aW9uQ2F0ZWdvcnkgdW5pdENhdGVnb3J5KENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXMgdHlwZSkKK3N0YXRpYyBDYWxjdWxhdGlvbkNhdGVnb3J5IHVu
aXRDYXRlZ29yeShDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgdHlwZSkKIHsKICAgICBzd2l0
Y2ggKHR5cGUpIHsKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSOgpAQCAt
OTAsNyArOTAsNyBAQCBzdGF0aWMgQ2FsY3VsYXRpb25DYXRlZ29yeSB1bml0Q2F0ZWdvcnkoCiAg
ICAgfQogfQogCi1zdGF0aWMgYm9vbCBoYXNEb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGVzIHR5cGUpCitzdGF0aWMgYm9vbCBoYXNEb3VibGVWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfRlI6CkBAIC0yMDEsNyArMjAxLDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NDYWxjUHJpbWl0aXZlVmFsdWUoV1RGTW92ZSh2
YWx1ZSksIGlzSW50ZWdlcikpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY1By
aW1pdGl2ZVZhbHVlPiBjcmVhdGUoZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGVzIHR5cGUsIGJvb2wgaXNJbnRlZ2VyKQorICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY1By
aW1pdGl2ZVZhbHVlPiBjcmVhdGUoZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGUgdHlwZSwgYm9vbCBpc0ludGVnZXIpCiAgICAgewogICAgICAgICBpZiAoc3RkOjppc25h
bih2YWx1ZSkgfHwgc3RkOjppc2luZih2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTI4MSwxNCArMjgxLDE0IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgVHlwZSB0eXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ3NzQ2FsY1ByaW1pdGl2ZVZhbHVlOyB9Ci0gICAgQ1NT
UHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBwcmltaXRpdmVUeXBlKCkgY29uc3QgZmluYWwKKyAg
ICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgcHJpbWl0aXZlVHlwZSgpIGNvbnN0IGZpbmFs
CiAgICAgewotICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyhtX3Zh
bHVlLT5wcmltaXRpdmVUeXBlKCkpOworICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlKG1fdmFsdWUtPnByaW1pdGl2ZVR5cGUoKSk7CiAgICAgfQogCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IENTU0NhbGNQcmltaXRpdmVWYWx1ZShSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+
JiYgdmFsdWUsIGJvb2wgaXNJbnRlZ2VyKQotICAgICAgICA6IENTU0NhbGNFeHByZXNzaW9uTm9k
ZSh1bml0Q2F0ZWdvcnkoKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpdmFsdWUtPnByaW1p
dGl2ZVR5cGUoKSksIGlzSW50ZWdlcikKKyAgICAgICAgOiBDU1NDYWxjRXhwcmVzc2lvbk5vZGUo
dW5pdENhdGVnb3J5KChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUpdmFsdWUtPnByaW1pdGl2
ZVR5cGUoKSksIGlzSW50ZWdlcikKICAgICAgICAgLCBtX3ZhbHVlKFdURk1vdmUodmFsdWUpKQog
ICAgIHsKICAgICB9CkBAIC0zNjgsMjEgKzM2OCwyMSBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8g
U2ltcGxpZnkgbnVtYmVycy4KICAgICAgICAgaWYgKGxlZnRDYXRlZ29yeSA9PSBDYWxjTnVtYmVy
ICYmIHJpZ2h0Q2F0ZWdvcnkgPT0gQ2FsY051bWJlcikgewotICAgICAgICAgICAgQ1NTUHJpbWl0
aXZlVmFsdWU6OlVuaXRUeXBlcyBldmFsdWF0aW9uVHlwZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSOworICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlIGV2YWx1
YXRpb25UeXBlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVI7CiAgICAgICAgICAgICBy
ZXR1cm4gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoZXZhbHVhdGVPcGVyYXRvcihvcCwg
bGVmdFNpZGUtPmRvdWJsZVZhbHVlKCksIHJpZ2h0U2lkZS0+ZG91YmxlVmFsdWUoKSksIGV2YWx1
YXRpb25UeXBlLCBpc0ludGVnZXIpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gU2ltcGxpZnkg
YWRkaXRpb24gYW5kIHN1YnRyYWN0aW9uIGJldHdlZW4gc2FtZSB0eXBlcy4KICAgICAgICAgaWYg
KG9wID09IENhbGNBZGQgfHwgb3AgPT0gQ2FsY1N1YnRyYWN0KSB7CiAgICAgICAgICAgICBpZiAo
bGVmdENhdGVnb3J5ID09IHJpZ2h0U2lkZS0+Y2F0ZWdvcnkoKSkgewotICAgICAgICAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgbGVmdFR5cGUgPSBsZWZ0U2lkZS0+cHJpbWl0
aXZlVHlwZSgpOworICAgICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZSBs
ZWZ0VHlwZSA9IGxlZnRTaWRlLT5wcmltaXRpdmVUeXBlKCk7CiAgICAgICAgICAgICAgICAgaWYg
KGhhc0RvdWJsZVZhbHVlKGxlZnRUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICBDU1NQcmlt
aXRpdmVWYWx1ZTo6VW5pdFR5cGVzIHJpZ2h0VHlwZSA9IHJpZ2h0U2lkZS0+cHJpbWl0aXZlVHlw
ZSgpOworICAgICAgICAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgcmln
aHRUeXBlID0gcmlnaHRTaWRlLT5wcmltaXRpdmVUeXBlKCk7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChsZWZ0VHlwZSA9PSByaWdodFR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoZXZhbHVhdGVPcGVyYXRvcihvcCwgbGVm
dFNpZGUtPmRvdWJsZVZhbHVlKCksIHJpZ2h0U2lkZS0+ZG91YmxlVmFsdWUoKSksIGxlZnRUeXBl
LCBpc0ludGVnZXIpOwogICAgICAgICAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dENhdGVnb3J5IGxlZnRVbml0Q2F0ZWdvcnkgPSBDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdENhdGVn
b3J5KGxlZnRUeXBlKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRVbml0Q2F0ZWdvcnkg
IT0gQ1NTUHJpbWl0aXZlVmFsdWU6OlVPdGhlciAmJiBsZWZ0VW5pdENhdGVnb3J5ID09IENTU1By
aW1pdGl2ZVZhbHVlOjp1bml0Q2F0ZWdvcnkocmlnaHRUeXBlKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBjYW5vbmljYWxUeXBlID0gQ1NT
UHJpbWl0aXZlVmFsdWU6OmNhbm9uaWNhbFVuaXRUeXBlRm9yQ2F0ZWdvcnkobGVmdFVuaXRDYXRl
Z29yeSk7CisgICAgICAgICAgICAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGUgY2Fub25pY2FsVHlwZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjYW5vbmljYWxVbml0VHlwZUZv
ckNhdGVnb3J5KGxlZnRVbml0Q2F0ZWdvcnkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGNhbm9uaWNhbFR5cGUgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VTktOT1dOKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGxlZnRWYWx1ZSA9IGxlZnRTaWRlLT5kb3Vi
bGVWYWx1ZSgpICogQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbnZlcnNpb25Ub0Nhbm9uaWNhbFVuaXRz
U2NhbGVGYWN0b3IobGVmdFR5cGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJs
ZSByaWdodFZhbHVlID0gcmlnaHRTaWRlLT5kb3VibGVWYWx1ZSgpICogQ1NTUHJpbWl0aXZlVmFs
dWU6OmNvbnZlcnNpb25Ub0Nhbm9uaWNhbFVuaXRzU2NhbGVGYWN0b3IocmlnaHRUeXBlKTsKQEAg
LTQwNyw3ICs0MDcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAob3AgPT0gQ2FsY0Rpdmlk
ZSAmJiAhbnVtYmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAg
ICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIG90aGVyVHlwZSA9IG90aGVyU2lkZS0+
cHJpbWl0aXZlVHlwZSgpOworICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBl
IG90aGVyVHlwZSA9IG90aGVyU2lkZS0+cHJpbWl0aXZlVHlwZSgpOwogICAgICAgICAgICAgaWYg
KGhhc0RvdWJsZVZhbHVlKG90aGVyVHlwZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIENTU0Nh
bGNQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGV2YWx1YXRlT3BlcmF0b3Iob3AsIG90aGVyU2lkZS0+
ZG91YmxlVmFsdWUoKSwgbnVtYmVyKSwgb3RoZXJUeXBlLCBpc0ludGVnZXIpOwogICAgICAgICB9
CkBAIC00NzYsNyArNDc2LDcgQEAgcHJpdmF0ZToKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIENzc0NhbGNCaW5hcnlPcGVyYXRpb247IH0KIAotICAgIENTU1ByaW1pdGl2
ZVZhbHVlOjpVbml0VHlwZXMgcHJpbWl0aXZlVHlwZSgpIGNvbnN0IGZpbmFsCisgICAgQ1NTUHJp
bWl0aXZlVmFsdWU6OlVuaXRUeXBlIHByaW1pdGl2ZVR5cGUoKSBjb25zdCBmaW5hbAogICAgIHsK
ICAgICAgICAgc3dpdGNoIChjYXRlZ29yeSgpKSB7CiAgICAgICAgIGNhc2UgQ2FsY051bWJlcjoK
QEAgLTQ4OCw3ICs0ODgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHJldHVybiBtX3Jp
Z2h0U2lkZS0+cHJpbWl0aXZlVHlwZSgpOwogICAgICAgICAgICAgaWYgKG1fcmlnaHRTaWRlLT5j
YXRlZ29yeSgpID09IENhbGNOdW1iZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG1fbGVmdFNp
ZGUtPnByaW1pdGl2ZVR5cGUoKTsKLSAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0
VHlwZXMgbGVmdFR5cGUgPSBtX2xlZnRTaWRlLT5wcmltaXRpdmVUeXBlKCk7CisgICAgICAgICAg
ICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgbGVmdFR5cGUgPSBtX2xlZnRTaWRlLT5wcmlt
aXRpdmVUeXBlKCk7CiAgICAgICAgICAgICBpZiAobGVmdFR5cGUgPT0gbV9yaWdodFNpZGUtPnBy
aW1pdGl2ZVR5cGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gbGVmdFR5cGU7CiAgICAgICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VTktOT1dOOwpAQCAtNTkzLDcgKzU5
Myw3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tl
biB8fCB0b2tlbi50eXBlKCkgPT0gUGVyY2VudGFnZVRva2VuIHx8IHRva2VuLnR5cGUoKSA9PSBE
aW1lbnNpb25Ub2tlbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAg
ICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIHR5cGUgPSB0b2tlbi51bml0VHlwZSgp
OworICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgdHlwZSA9IHRva2VuLnVuaXRU
eXBlKCk7CiAgICAgICAgIGlmICh1bml0Q2F0ZWdvcnkodHlwZSkgPT0gQ2FsY090aGVyKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYWxjdWxhdGlvblZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuaAkocmV2aXNpb24gMjA5NzE3KQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0NhbGNFeHByZXNzaW9uTm9kZSYg
b3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fY2F0ZWdvcnkgPT0gb3RoZXIubV9jYXRlZ29yeSAmJiBt
X2lzSW50ZWdlciA9PSBvdGhlci5tX2lzSW50ZWdlcjsgfQogICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBw
cmltaXRpdmVUeXBlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlIHByaW1pdGl2ZVR5cGUoKSBjb25zdCA9IDA7CiAKICAgICBDYWxjdWxhdGlvbkNh
dGVnb3J5IGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfQogICAgIGJvb2wg
aXNJbnRlZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9pc0ludGVnZXI7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkocmV2aXNpb24gMjA5NzE3KQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjEsNyArNjEsNyBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJz
aW9uKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgdW5pdFR5cGUpCitzdGF0aWMgaW5saW5l
IGJvb2wgaXNWYWxpZENTU1VuaXRUeXBlRm9yRG91YmxlQ29udmVyc2lvbihDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGUgdW5pdFR5cGUpCiB7CiAgICAgc3dpdGNoICh1bml0VHlwZSkgewogICAg
IGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DQUxDOgpAQCAtMTM0LDcgKzEzNCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVGb3IKIAogI2lmICFBU1NFUlRfRElT
QUJMRUQKIAotc3RhdGljIGlubGluZSBib29sIGlzU3RyaW5nVHlwZShDU1NQcmltaXRpdmVWYWx1
ZTo6VW5pdFR5cGVzIHR5cGUpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNTdHJpbmdUeXBlKENTU1By
aW1pdGl2ZVZhbHVlOjpVbml0VHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAg
IGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkc6CkBAIC0yMDIsNyArMjAyLDcgQEAg
c3RhdGljIGlubGluZSBib29sIGlzU3RyaW5nVHlwZShDU1NQcmltaQogCiAjZW5kaWYgLy8gIUFT
U0VSVF9ESVNBQkxFRAogCi1DU1NQcmltaXRpdmVWYWx1ZTo6VW5pdENhdGVnb3J5IENTU1ByaW1p
dGl2ZVZhbHVlOjp1bml0Q2F0ZWdvcnkoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyB0eXBl
KQorQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRDYXRlZ29yeSBDU1NQcmltaXRpdmVWYWx1ZTo6dW5p
dENhdGVnb3J5KENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZSB0eXBlKQogewogICAgIC8vIEhl
cmUgd2UgdmlvbGF0ZSB0aGUgc3BlYyAoaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTIt
U3R5bGUvY3NzLmh0bWwjQ1NTLUNTU1ByaW1pdGl2ZVZhbHVlKSBhbmQgYWxsb3cgY29udmVyc2lv
bnMKICAgICAvLyBiZXR3ZWVuIENTU19QWCBhbmQgcmVsYXRpdmUgbGVuZ3RocyAoc2VlIGNzc1Bp
eGVsc1BlckluY2ggY29tbWVudCBpbiBDU1NIZWxwZXIuaCBmb3IgdGhlIHRvcGljIHRyZWF0bWVu
dCkuCkBAIC0zMTcsNyArMzE3LDcgQEAgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKENTUwogICAgIG1fdmFsdWUucHJvcGVydHlJRCA9IHByb3BlcnR5SUQ7CiB9CiAKLUNTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShkb3VibGUgbnVtLCBVbml0VHlwZXMgdHlw
ZSkKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShkb3VibGUgbnVtLCBVbml0
VHlwZSB0eXBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CiAgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IHR5cGU7CkBAIC0zMjUsNyArMzI1LDcgQEAgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKGRvdQogICAgIG1fdmFsdWUubnVtID0gbnVtOwogfQogCi1D
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgU3RyaW5nJiBzdHJpbmcs
IFVuaXRUeXBlcyB0eXBlKQorQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBVbml0VHlwZSB0eXBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7CiAgICAgQVNTRVJUKGlzU3RyaW5nVHlwZSh0eXBlKSk7CkBAIC01MDYsNyAr
NTA2LDcgQEAgQ1NTUHJpbWl0aXZlVmFsdWU6On5DU1NQcmltaXRpdmVWYWx1ZSgpCiAKIHZvaWQg
Q1NTUHJpbWl0aXZlVmFsdWU6OmNsZWFudXAoKQogewotICAgIGF1dG8gdHlwZSA9IHN0YXRpY19j
YXN0PFVuaXRUeXBlcz4obV9wcmltaXRpdmVVbml0VHlwZSk7CisgICAgYXV0byB0eXBlID0gc3Rh
dGljX2Nhc3Q8VW5pdFR5cGU+KG1fcHJpbWl0aXZlVW5pdFR5cGUpOwogICAgIHN3aXRjaCAodHlw
ZSkgewogICAgIGNhc2UgQ1NTX1NUUklORzoKICAgICBjYXNlIENTU19VUkk6CkBAIC02NjEsMTAg
KzY2MSwxMCBAQCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhECiAgICAg
ICAgIC8vIFRoZSBtdWx0aXBsaWVyIGFuZCBmYWN0b3IgaXMgYXBwbGllZCB0byBlYWNoIHZhbHVl
IGluIHRoZSBjYWxjIGV4cHJlc3Npb24gaW5kaXZpZHVhbGx5CiAgICAgICAgIHJldHVybiBtX3Zh
bHVlLmNhbGMtPmNvbXB1dGVMZW5ndGhQeChjb252ZXJzaW9uRGF0YSk7CiAKLSAgICByZXR1cm4g
Y29tcHV0ZU5vbkNhbGNMZW5ndGhEb3VibGUoY29udmVyc2lvbkRhdGEsIHN0YXRpY19jYXN0PFVu
aXRUeXBlcz4ocHJpbWl0aXZlVHlwZSgpKSwgbV92YWx1ZS5udW0pOworICAgIHJldHVybiBjb21w
dXRlTm9uQ2FsY0xlbmd0aERvdWJsZShjb252ZXJzaW9uRGF0YSwgc3RhdGljX2Nhc3Q8VW5pdFR5
cGU+KHByaW1pdGl2ZVR5cGUoKSksIG1fdmFsdWUubnVtKTsKIH0KIAotZG91YmxlIENTU1ByaW1p
dGl2ZVZhbHVlOjpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZShjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSwgVW5pdFR5cGVzIHByaW1pdGl2ZVR5cGUsIGRv
dWJsZSB2YWx1ZSkKK2RvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZU5vbkNhbGNMZW5n
dGhEb3VibGUoY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYgY29udmVyc2lvbkRhdGEs
IFVuaXRUeXBlIHByaW1pdGl2ZVR5cGUsIGRvdWJsZSB2YWx1ZSkKIHsKICAgICBkb3VibGUgZmFj
dG9yOwogCkBAIC03NTIsNyArNzUyLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ1NTUHJpbWl0aXZl
VmFsdWU6OnNldAogICAgIHJldHVybiBFeGNlcHRpb24geyBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgfTsKIH0KIAotZG91YmxlIENTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJzaW9uVG9DYW5v
bmljYWxVbml0c1NjYWxlRmFjdG9yKFVuaXRUeXBlcyB1bml0VHlwZSkKK2RvdWJsZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y29udmVyc2lvblRvQ2Fub25pY2FsVW5pdHNTY2FsZUZhY3RvcihVbml0VHlw
ZSB1bml0VHlwZSkKIHsKICAgICBkb3VibGUgZmFjdG9yID0gMS4wOwogICAgIC8vIEZJWE1FOiB0
aGUgc3dpdGNoIGNhbiBiZSByZXBsYWNlZCBieSBhbiBhcnJheSBvZiBzY2FsZSBmYWN0b3JzLgpA
QCAtODA2LDEzICs4MDYsMTMgQEAgZG91YmxlIENTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJzaW9u
VG9DYQogCiBFeGNlcHRpb25PcjxmbG9hdD4gQ1NTUHJpbWl0aXZlVmFsdWU6OmdldEZsb2F0VmFs
dWUodW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpIGNvbnN0CiB7Ci0gICAgYXV0byByZXN1bHQgPSBk
b3VibGVWYWx1ZUludGVybmFsKHN0YXRpY19jYXN0PFVuaXRUeXBlcz4odW5pdFR5cGUpKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IGRvdWJsZVZhbHVlSW50ZXJuYWwoc3RhdGljX2Nhc3Q8VW5pdFR5cGU+
KHVuaXRUeXBlKSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKICAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4ocmVzdWx0
LnZhbHVlKCkpOwogfQogCi1kb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmRvdWJsZVZhbHVlKFVu
aXRUeXBlcyB1bml0VHlwZSkgY29uc3QKK2RvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6ZG91Ymxl
VmFsdWUoVW5pdFR5cGUgdW5pdFR5cGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvdWJsZVZhbHVl
SW50ZXJuYWwodW5pdFR5cGUpLnZhbHVlX29yKDApOwogfQpAQCAtODIzLDcgKzgyMyw3IEBAIGRv
dWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6ZG91YmxlVmFsdWUoKSAKIH0KIAogCi1DU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGVzIENTU1ByaW1pdGl2ZVZhbHVlOjpjYW5vbmljYWxVbml0VHlwZUZv
ckNhdGVnb3J5KFVuaXRDYXRlZ29yeSBjYXRlZ29yeSkKK0NTU1ByaW1pdGl2ZVZhbHVlOjpVbml0
VHlwZSBDU1NQcmltaXRpdmVWYWx1ZTo6Y2Fub25pY2FsVW5pdFR5cGVGb3JDYXRlZ29yeShVbml0
Q2F0ZWdvcnkgY2F0ZWdvcnkpCiB7CiAgICAgLy8gVGhlIGNhbm9uaWNhbCB1bml0IHR5cGUgaXMg
Y2hvc2VuIGFjY29yZGluZyB0byB0aGUgd2F5IENTU1BhcnNlcjo6dmFsaWRVbml0KCkgY2hvb3Nl
cyB0aGUgZGVmYXVsdCB1bml0CiAgICAgLy8gaW4gZWFjaCBjYXRlZ29yeSAoYmFzZWQgb24gdW5p
dGZsYWdzKS4KQEAgLTg0OSwxOSArODQ5LDE5IEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlw
ZXMgQ1NTUHJpbWl0aXYKICAgICB9CiB9CiAKLXN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBDU1NQcmlt
aXRpdmVWYWx1ZTo6ZG91YmxlVmFsdWVJbnRlcm5hbChVbml0VHlwZXMgcmVxdWVzdGVkVW5pdFR5
cGUpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmRvdWJs
ZVZhbHVlSW50ZXJuYWwoVW5pdFR5cGUgcmVxdWVzdGVkVW5pdFR5cGUpIGNvbnN0CiB7Ci0gICAg
aWYgKCFpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKHN0YXRpY19jYXN0PFVu
aXRUeXBlcz4obV9wcmltaXRpdmVVbml0VHlwZSkpIHx8ICFpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JE
b3VibGVDb252ZXJzaW9uKHJlcXVlc3RlZFVuaXRUeXBlKSkKKyAgICBpZiAoIWlzVmFsaWRDU1NV
bml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24oc3RhdGljX2Nhc3Q8VW5pdFR5cGU+KG1fcHJpbWl0
aXZlVW5pdFR5cGUpKSB8fCAhaXNWYWxpZENTU1VuaXRUeXBlRm9yRG91YmxlQ29udmVyc2lvbihy
ZXF1ZXN0ZWRVbml0VHlwZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBV
bml0VHlwZXMgc291cmNlVW5pdFR5cGUgPSBzdGF0aWNfY2FzdDxVbml0VHlwZXM+KHByaW1pdGl2
ZVR5cGUoKSk7CisgICAgVW5pdFR5cGUgc291cmNlVW5pdFR5cGUgPSBzdGF0aWNfY2FzdDxVbml0
VHlwZT4ocHJpbWl0aXZlVHlwZSgpKTsKICAgICBpZiAocmVxdWVzdGVkVW5pdFR5cGUgPT0gc291
cmNlVW5pdFR5cGUgfHwgcmVxdWVzdGVkVW5pdFR5cGUgPT0gQ1NTX0RJTUVOU0lPTikKICAgICAg
ICAgcmV0dXJuIGRvdWJsZVZhbHVlKCk7CiAKICAgICBVbml0Q2F0ZWdvcnkgc291cmNlQ2F0ZWdv
cnkgPSB1bml0Q2F0ZWdvcnkoc291cmNlVW5pdFR5cGUpOwogICAgIEFTU0VSVChzb3VyY2VDYXRl
Z29yeSAhPSBVT3RoZXIpOwogCi0gICAgVW5pdFR5cGVzIHRhcmdldFVuaXRUeXBlID0gcmVxdWVz
dGVkVW5pdFR5cGU7CisgICAgVW5pdFR5cGUgdGFyZ2V0VW5pdFR5cGUgPSByZXF1ZXN0ZWRVbml0
VHlwZTsKICAgICBVbml0Q2F0ZWdvcnkgdGFyZ2V0Q2F0ZWdvcnkgPSB1bml0Q2F0ZWdvcnkodGFy
Z2V0VW5pdFR5cGUpOwogICAgIEFTU0VSVCh0YXJnZXRDYXRlZ29yeSAhPSBVT3RoZXIpOwogCkBA
IC0xMTgzLDcgKzExODMsNyBAQCBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ByaW1pdGl2ZVZh
bHVlCiAgICAgY2FzZSBDU1NfVVJJOgogICAgIGNhc2UgQ1NTX0FUVFI6CiAgICAgY2FzZSBDU1Nf
Q09VTlRFUl9OQU1FOgotICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KG1fdmFsdWUuc3RyaW5nLCBzdGF0aWNfY2FzdDxVbml0VHlwZXM+KG1fcHJpbWl0aXZlVW5pdFR5
cGUpKTsKKyAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVl
LnN0cmluZywgc3RhdGljX2Nhc3Q8VW5pdFR5cGU+KG1fcHJpbWl0aXZlVW5pdFR5cGUpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NfRk9OVF9GQU1JTFk6CiAgICAgICAgIHJlc3VsdCA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoKm1fdmFsdWUuZm9udEZhbWlseSk7CkBAIC0xMjUx
LDcgKzEyNTEsNyBAQCBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ByaW1pdGl2ZVZhbHVlCiAg
ICAgY2FzZSBDU1NfRFBDTToKICNlbmRpZgogICAgIGNhc2UgQ1NTX0ZSOgotICAgICAgICByZXN1
bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUubnVtLCBzdGF0aWNfY2FzdDxV
bml0VHlwZXM+KG1fcHJpbWl0aXZlVW5pdFR5cGUpKTsKKyAgICAgICAgcmVzdWx0ID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVlLm51bSwgc3RhdGljX2Nhc3Q8VW5pdFR5cGU+KG1f
cHJpbWl0aXZlVW5pdFR5cGUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NfUFJPUEVS
VFlfSUQ6CiAgICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlm
aWVyKG1fdmFsdWUucHJvcGVydHlJRCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaAkocmV2aXNpb24gMjA5NzE3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgZmxvYXQgcm91bmRGb3JJbXByZWNpcwogCiBjbGFzcyBDU1NQcmltaXRpdmVWYWx1
ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6Ci0gICAgZW51bSBVbml0VHlwZXMg
eworICAgIGVudW0gVW5pdFR5cGUgewogICAgICAgICBDU1NfVU5LTk9XTiA9IDAsCiAgICAgICAg
IENTU19OVU1CRVIgPSAxLAogICAgICAgICBDU1NfUEVSQ0VOVEFHRSA9IDIsCkBAIC0xNjQsMjIg
KzE2NCwyMiBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgVU90aGVyCiAgICAgfTsKLSAgICBz
dGF0aWMgVW5pdENhdGVnb3J5IHVuaXRDYXRlZ29yeShVbml0VHlwZXMpOworICAgIHN0YXRpYyBV
bml0Q2F0ZWdvcnkgdW5pdENhdGVnb3J5KFVuaXRUeXBlKTsKIAogICAgIGJvb2wgaXNBbmdsZSgp
IGNvbnN0OwogICAgIGJvb2wgaXNBdHRyKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0
VHlwZSA9PSBDU1NfQVRUUjsgfQogICAgIGJvb2wgaXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4g
bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfQ09VTlRFUjsgfQogICAgIGJvb2wgaXNGb250SW5k
ZXBlbmRlbnRMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID49IENT
U19QWCAmJiBtX3ByaW1pdGl2ZVVuaXRUeXBlIDw9IENTU19QQzsgfQotICAgIHN0YXRpYyBib29s
IGlzRm9udFJlbGF0aXZlTGVuZ3RoKFVuaXRUeXBlcyk7Ci0gICAgYm9vbCBpc0ZvbnRSZWxhdGl2
ZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGlzRm9udFJlbGF0aXZlTGVuZ3RoKHN0YXRpY19jYXN0
PFVuaXRUeXBlcz4obV9wcmltaXRpdmVVbml0VHlwZSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNG
b250UmVsYXRpdmVMZW5ndGgoVW5pdFR5cGUpOworICAgIGJvb2wgaXNGb250UmVsYXRpdmVMZW5n
dGgoKSBjb25zdCB7IHJldHVybiBpc0ZvbnRSZWxhdGl2ZUxlbmd0aChzdGF0aWNfY2FzdDxVbml0
VHlwZT4obV9wcmltaXRpdmVVbml0VHlwZSkpOyB9CiAgICAgCi0gICAgYm9vbCBpc1F1aXJreUVt
cygpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBVbml0VHlwZXM6OkNTU19RVUlS
S1lfRU1TOyB9CisgICAgYm9vbCBpc1F1aXJreUVtcygpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2
ZVR5cGUoKSA9PSBVbml0VHlwZTo6Q1NTX1FVSVJLWV9FTVM7IH0KIAotICAgIHN0YXRpYyBib29s
IGlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKFVuaXRUeXBlcyB0eXBlKSB7IHJldHVybiB0eXBl
ID49IENTU19WVyAmJiB0eXBlIDw9IENTU19WTUFYOyB9Ci0gICAgYm9vbCBpc1ZpZXdwb3J0UGVy
Y2VudGFnZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3Ro
KHN0YXRpY19jYXN0PFVuaXRUeXBlcz4obV9wcmltaXRpdmVVbml0VHlwZSkpOyB9CisgICAgc3Rh
dGljIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoVW5pdFR5cGUgdHlwZSkgeyByZXR1
cm4gdHlwZSA+PSBDU1NfVlcgJiYgdHlwZSA8PSBDU1NfVk1BWDsgfQorICAgIGJvb2wgaXNWaWV3
cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKSBjb25zdCB7IHJldHVybiBpc1ZpZXdwb3J0UGVyY2VudGFn
ZUxlbmd0aChzdGF0aWNfY2FzdDxVbml0VHlwZT4obV9wcmltaXRpdmVVbml0VHlwZSkpOyB9CiAK
LSAgICBzdGF0aWMgYm9vbCBpc0xlbmd0aChVbml0VHlwZXMpOwotICAgIGJvb2wgaXNMZW5ndGgo
KSBjb25zdCB7IHJldHVybiBpc0xlbmd0aChzdGF0aWNfY2FzdDxVbml0VHlwZXM+KHByaW1pdGl2
ZVR5cGUoKSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNMZW5ndGgoVW5pdFR5cGUpOworICAgIGJv
b2wgaXNMZW5ndGgoKSBjb25zdCB7IHJldHVybiBpc0xlbmd0aChzdGF0aWNfY2FzdDxVbml0VHlw
ZT4ocHJpbWl0aXZlVHlwZSgpKSk7IH0KICAgICBib29sIGlzTnVtYmVyKCkgY29uc3QgeyByZXR1
cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU19OVU1CRVI7IH0KICAgICBib29sIGlzUGVyY2VudGFn
ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfUEVSQ0VOVEFHRTsgfQog
ICAgIGJvb2wgaXNQeCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfUFg7
IH0KQEAgLTIwMiw4ICsyMDIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RvdHNQZXJQaXhlbCgp
IGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsgfQogICAgIGJvb2wg
aXNEb3RzUGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBD
U1NfRFBDTTsgfQogCi0gICAgc3RhdGljIGJvb2wgaXNSZXNvbHV0aW9uKFVuaXRUeXBlcyk7Ci0g
ICAgYm9vbCBpc1Jlc29sdXRpb24oKSBjb25zdCB7IHJldHVybiBpc1Jlc29sdXRpb24oc3RhdGlj
X2Nhc3Q8VW5pdFR5cGVzPihwcmltaXRpdmVUeXBlKCkpKTsgfQorICAgIHN0YXRpYyBib29sIGlz
UmVzb2x1dGlvbihVbml0VHlwZSk7CisgICAgYm9vbCBpc1Jlc29sdXRpb24oKSBjb25zdCB7IHJl
dHVybiBpc1Jlc29sdXRpb24oc3RhdGljX2Nhc3Q8VW5pdFR5cGU+KHByaW1pdGl2ZVR5cGUoKSkp
OyB9CiAgICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZVdpZHRoKCkgY29uc3QgeyByZXR1cm4g
bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVlc7IH0KICAgICBib29sIGlzVmlld3BvcnRQZXJj
ZW50YWdlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1Nf
Vkg7IH0KICAgICBib29sIGlzVmlld3BvcnRQZXJjZW50YWdlTWF4KCkgY29uc3QgeyByZXR1cm4g
bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVk1BWDsgfQpAQCAtMjE0LDggKzIxNCw4IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVy
KENTU1ZhbHVlSUQgdmFsdWVJRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVW
YWx1ZSh2YWx1ZUlEKSk7IH0KICAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVh
dGVJZGVudGlmaWVyKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDU1NQcmltaXRpdmVWYWx1ZShwcm9wZXJ0eUlEKSk7IH0KIAotICAgIHN0YXRpYyBSZWY8
Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIFVuaXRUeXBlcyB0eXBlKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLCB0eXBlKSk7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB2
YWx1ZSwgVW5pdFR5cGVzIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUHJpbWl0aXZl
VmFsdWUodmFsdWUsIHR5cGUpKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+
IGNyZWF0ZShkb3VibGUgdmFsdWUsIFVuaXRUeXBlIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWUsIHR5cGUpKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
UHJpbWl0aXZlVmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBVbml0VHlwZSB0eXBl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLCB0eXBlKSk7
IH0KICAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGUoY29uc3QgTGVuZ3Ro
JiB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLCBzdHlsZSkpOyB9CiAgICAgc3RhdGljIFJlZjxDU1NQ
cmltaXRpdmVWYWx1ZT4gY3JlYXRlKGNvbnN0IExlbmd0aFNpemUmIHZhbHVlLCBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
dmFsdWUsIHN0eWxlKSk7IH0KIApAQCAtMjI1LDcgKzIyNSw3IEBAIHB1YmxpYzoKICAgICAvLyBU
aGUgYmFzaWMgaWRlYSBpcyB0aGF0IGEgc3R5bGVzaGVldCBjYW4gdXNlIHRoZSB2YWx1ZSBfX3Fl
bSAoZm9yIHF1aXJreSBlbSkgaW5zdGVhZCBvZiBlbS4KICAgICAvLyBXaGVuIHRoZSBxdWlya3kg
dmFsdWUgaXMgdXNlZCwgaWYgeW91J3JlIGluIHF1aXJrcyBtb2RlLCB0aGUgbWFyZ2luIHdpbGwg
Y29sbGFwc2UgYXdheQogICAgIC8vIGluc2lkZSBhIHRhYmxlIGNlbGwuCi0gICAgc3RhdGljIFJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlQWxsb3dpbmdNYXJnaW5RdWlyayhkb3VibGUgdmFs
dWUsIFVuaXRUeXBlcyk7CisgICAgc3RhdGljIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRl
QWxsb3dpbmdNYXJnaW5RdWlyayhkb3VibGUgdmFsdWUsIFVuaXRUeXBlKTsKIAogICAgIH5DU1NQ
cmltaXRpdmVWYWx1ZSgpOwogCkBAIC0yNTAsMTYgKzI1MCwxNiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGNvbnZlcnRpbmdUb0xlbmd0aFJlcXVpcmVzTm9uTnVsbFN0eWxlKGludCBsZW5ndGhDb252
ZXJzaW9uKSBjb25zdDsKIAotICAgIGRvdWJsZSBkb3VibGVWYWx1ZShVbml0VHlwZXMpIGNvbnN0
OworICAgIGRvdWJsZSBkb3VibGVWYWx1ZShVbml0VHlwZSkgY29uc3Q7CiAgICAgZG91YmxlIGRv
dWJsZVZhbHVlKCkgY29uc3Q7CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCB2
YWx1ZShVbml0VHlwZXMgdHlwZSkgY29uc3QgeyByZXR1cm4gY2xhbXBUbzxUPihkb3VibGVWYWx1
ZSh0eXBlKSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCB2YWx1ZShVbml0
VHlwZSB0eXBlKSBjb25zdCB7IHJldHVybiBjbGFtcFRvPFQ+KGRvdWJsZVZhbHVlKHR5cGUpKTsg
fQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUIHZhbHVlKCkgY29uc3QgeyByZXR1
cm4gY2xhbXBUbzxUPihkb3VibGVWYWx1ZSgpKTsgfQogCi0gICAgZmxvYXQgZmxvYXRWYWx1ZShV
bml0VHlwZXMgdHlwZSkgY29uc3QgeyByZXR1cm4gdmFsdWU8ZmxvYXQ+KHR5cGUpOyB9CisgICAg
ZmxvYXQgZmxvYXRWYWx1ZShVbml0VHlwZSB0eXBlKSBjb25zdCB7IHJldHVybiB2YWx1ZTxmbG9h
dD4odHlwZSk7IH0KICAgICBmbG9hdCBmbG9hdFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWU8
ZmxvYXQ+KCk7IH0KIAotICAgIGludCBpbnRWYWx1ZShVbml0VHlwZXMgdHlwZSkgY29uc3QgeyBy
ZXR1cm4gdmFsdWU8aW50Pih0eXBlKTsgfQorICAgIGludCBpbnRWYWx1ZShVbml0VHlwZSB0eXBl
KSBjb25zdCB7IHJldHVybiB2YWx1ZTxpbnQ+KHR5cGUpOyB9CiAgICAgaW50IGludFZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gdmFsdWU8aW50PigpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgc3RyaW5nVmFsdWUoKSBjb25zdDsKQEAgLTI5NCwxMCArMjk0LDEwIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJikgY29uc3Q7CiAKLSAgICBz
dGF0aWMgVW5pdFR5cGVzIGNhbm9uaWNhbFVuaXRUeXBlRm9yQ2F0ZWdvcnkoVW5pdENhdGVnb3J5
KTsKLSAgICBzdGF0aWMgZG91YmxlIGNvbnZlcnNpb25Ub0Nhbm9uaWNhbFVuaXRzU2NhbGVGYWN0
b3IoVW5pdFR5cGVzKTsKKyAgICBzdGF0aWMgVW5pdFR5cGUgY2Fub25pY2FsVW5pdFR5cGVGb3JD
YXRlZ29yeShVbml0Q2F0ZWdvcnkpOworICAgIHN0YXRpYyBkb3VibGUgY29udmVyc2lvblRvQ2Fu
b25pY2FsVW5pdHNTY2FsZUZhY3RvcihVbml0VHlwZSk7CiAKLSAgICBzdGF0aWMgZG91YmxlIGNv
bXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEm
LCBVbml0VHlwZXMsIGRvdWJsZSB2YWx1ZSk7CisgICAgc3RhdGljIGRvdWJsZSBjb21wdXRlTm9u
Q2FsY0xlbmd0aERvdWJsZShjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgVW5pdFR5
cGUsIGRvdWJsZSB2YWx1ZSk7CiAKICNpZiBDT01QSUxFUihNU1ZDKQogICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBwcml2YXRlLCBidXQgZm9yIHNvbWUgcmVhc29uIE1TVkMgdGhlbiBmYWls
cyB0byBpbnZva2UgaXQgZnJvbSBMYXp5TmV2ZXJEZXN0cm95ZWQ6OmNvbnN0cnVjdC4KQEAgLTMx
NCw4ICszMTQsOCBAQCBwcml2YXRlOgogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IExlbmd0
aCYpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IExlbmd0aCYsIGNvbnN0IFJlbmRlclN0
eWxlJik7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgTGVuZ3RoU2l6ZSYsIGNvbnN0IFJl
bmRlclN0eWxlJik7Ci0gICAgQ1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgU3RyaW5nJiwgVW5pdFR5
cGVzKTsKLSAgICBDU1NQcmltaXRpdmVWYWx1ZShkb3VibGUsIFVuaXRUeXBlcyk7CisgICAgQ1NT
UHJpbWl0aXZlVmFsdWUoY29uc3QgU3RyaW5nJiwgVW5pdFR5cGUpOworICAgIENTU1ByaW1pdGl2
ZVZhbHVlKGRvdWJsZSwgVW5pdFR5cGUpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gQ1NT
UHJpbWl0aXZlVmFsdWUoVCk7IC8vIERlZmluZWQgaW4gQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gQ1NTUHJpbWl0aXZlVmFsdWUoUmVmUHRyPFQ+
JiYpOwpAQCAtMzQxLDcgKzM0MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0KFJlZlB0cjxE
YXNoYm9hcmRSZWdpb24+JiYpOyAvLyBGSVhNRTogRGFzaGJvYXJkIHJlZ2lvbiBzaG91bGQgbm90
IGJlIGEgcHJpbWl0aXZlIHZhbHVlLgogI2VuZGlmCiAKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJs
ZT4gZG91YmxlVmFsdWVJbnRlcm5hbChVbml0VHlwZXMgdGFyZ2V0VW5pdFR5cGUpIGNvbnN0Owor
ICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBkb3VibGVWYWx1ZUludGVybmFsKFVuaXRUeXBlIHRh
cmdldFVuaXRUeXBlKSBjb25zdDsKIAogICAgIGRvdWJsZSBjb21wdXRlTGVuZ3RoRG91YmxlKGNv
bnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmKSBjb25zdDsKIApAQCAtMzc3LDcgKzM3Nyw3
IEBAIGlubGluZSBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjppc0FuZ2xlKCkKICAgICAgICAgfHwg
bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVFVSTjsKIH0KIAotaW5saW5lIGJvb2wgQ1NTUHJp
bWl0aXZlVmFsdWU6OmlzRm9udFJlbGF0aXZlTGVuZ3RoKFVuaXRUeXBlcyB0eXBlKQoraW5saW5l
IGJvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmlzRm9udFJlbGF0aXZlTGVuZ3RoKFVuaXRUeXBlIHR5
cGUpCiB7CiAgICAgcmV0dXJuIHR5cGUgPT0gQ1NTX0VNUwogICAgICAgICB8fCB0eXBlID09IENT
U19FWFMKQEAgLTM4Niw3ICszODYsNyBAQCBpbmxpbmUgYm9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6
aXNGb250UmVsCiAgICAgICAgIHx8IHR5cGUgPT0gQ1NTX1FVSVJLWV9FTVM7CiB9CiAKLWlubGlu
ZSBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjppc0xlbmd0aChVbml0VHlwZXMgdHlwZSkKK2lubGlu
ZSBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjppc0xlbmd0aChVbml0VHlwZSB0eXBlKQogewogICAg
IHJldHVybiAodHlwZSA+PSBDU1NfRU1TICYmIHR5cGUgPD0gQ1NTX1BDKQogICAgICAgICB8fCB0
eXBlID09IENTU19SRU1TCkBAIC0zOTUsNyArMzk1LDcgQEAgaW5saW5lIGJvb2wgQ1NTUHJpbWl0
aXZlVmFsdWU6OmlzTGVuZ3RoKAogICAgICAgICB8fCB0eXBlID09IENTU19RVUlSS1lfRU1TOwog
fQogCi1pbmxpbmUgYm9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6aXNSZXNvbHV0aW9uKFVuaXRUeXBl
cyB0eXBlKQoraW5saW5lIGJvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmlzUmVzb2x1dGlvbihVbml0
VHlwZSB0eXBlKQogewogICAgIHJldHVybiB0eXBlID49IENTU19EUFBYICYmIHR5cGUgPD0gQ1NT
X0RQQ007CiB9CkBAIC00MDUsNyArNDA1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5l
IFJlZjxDU1NQcmltaQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KHN0ZDo6Zm9yd2FyZDxUPih2YWx1ZSkpKTsKIH0KIAotaW5saW5lIFJlZjxDU1NQcmltaXRpdmVW
YWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUFsbG93aW5nTWFyZ2luUXVpcmsoZG91Ymxl
IHZhbHVlLCBVbml0VHlwZXMgdHlwZSkKK2lubGluZSBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVBbGxvd2luZ01hcmdpblF1aXJrKGRvdWJsZSB2YWx1ZSwg
VW5pdFR5cGUgdHlwZSkKIHsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUodmFsdWUsIHR5cGUpKTsKICAgICByZXN1bHQtPm1faXNRdWlya1ZhbHVlID0g
dHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCShyZXZpc2lvbiAyMDk3MTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjUyLDcgKzI1Miw3
IEBAIHByb3RlY3RlZDoKICAgICAvLyB0byBtYXhpbWl6ZSBzdHJ1Y3QgcGFja2luZy4KIAogICAg
IC8vIENTU1ByaW1pdGl2ZVZhbHVlIGJpdHM6Ci0gICAgdW5zaWduZWQgbV9wcmltaXRpdmVVbml0
VHlwZSA6IDc7IC8vIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMKKyAgICB1bnNpZ25lZCBt
X3ByaW1pdGl2ZVVuaXRUeXBlIDogNzsgLy8gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlCiAg
ICAgbXV0YWJsZSB1bnNpZ25lZCBtX2hhc0NhY2hlZENTU1RleHQgOiAxOwogICAgIHVuc2lnbmVk
IG1faXNRdWlya1ZhbHVlIDogMTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
UG9vbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5j
cHAJKHJldmlzaW9uIDIwOTcxNykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3IEBAIFJlZjxDU1NQcmltaXRpdmVWYWx1
ZT4gQ1NTVmFsdWVQb29sOjpjcmUKICAgICByZXR1cm4gKmVudHJ5Lml0ZXJhdG9yLT52YWx1ZTsK
IH0KIAotUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NWYWx1ZVBvb2w6OmNyZWF0ZVZhbHVlKGRv
dWJsZSB2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyB0eXBlKQorUmVmPENTU1By
aW1pdGl2ZVZhbHVlPiBDU1NWYWx1ZVBvb2w6OmNyZWF0ZVZhbHVlKGRvdWJsZSB2YWx1ZSwgQ1NT
UHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKHN0ZDo6aXNmaW5p
dGUodmFsdWUpKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaAkocmV2aXNpb24g
MjA5NzE3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC02MSw4ICs2MSw4IEBAIHB1YmxpYzoKICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+
IGNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUlEIGlkZW50aWZpZXIpOwogICAgIFJlZjxD
U1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Byb3BlcnR5SUQgaWRl
bnRpZmllcik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVDb2xvclZhbHVlKGNv
bnN0IENvbG9yJik7Ci0gICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVWYWx1ZShkb3Vi
bGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpOwotICAgIFJlZjxDU1NQcmlt
aXRpdmVWYWx1ZT4gY3JlYXRlVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OlVuaXRUeXBlcyB0eXBlKSB7IHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCB0eXBlKTsgfQorICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlVmFsdWUo
ZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUpOworICAgIFJlZjxDU1NQ
cmltaXRpdmVWYWx1ZT4gY3JlYXRlVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgQ1NTUHJpbWl0
aXZlVmFsdWU6OlVuaXRUeXBlIHR5cGUpIHsgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUodmFsdWUsIHR5cGUpOyB9CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVWYWx1
ZShjb25zdCBMZW5ndGgmIHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIHsgcmV0dXJu
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIHN0eWxlKTsgfQogICAgIFJlZjxDU1NQ
cmltaXRpdmVWYWx1ZT4gY3JlYXRlVmFsdWUoY29uc3QgTGVuZ3RoU2l6ZSYgdmFsdWUsIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSkgeyByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgc3R5bGUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIFJlZjxDU1NQ
cmltaXRpdmVWYWx1ZT4gY3JlYXRlVmFsdWUoVCYmIHZhbHVlKSB7IHJldHVybiBDU1NQcmltaXRp
dmVWYWx1ZTo6Y3JlYXRlKHN0ZDo6Zm9yd2FyZDxUPih2YWx1ZSkpOyB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCShyZXZpc2lvbiAyMDk3MTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcg
QEAgc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoVmFsaWRJZGVudAogCiBzdGF0aWMgaW5s
aW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZERlbnNpdHkoY29uc3QgU3RyaW5nJiBtZWRpYUZlYXR1
cmUsIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbikKIHsKLSAgICBpZiAoIUNTU1ByaW1pdGl2
ZVZhbHVlOjppc1Jlc29sdXRpb24oc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRU
eXBlcz4odG9rZW4udW5pdFR5cGUoKSkpIHx8IHRva2VuLm51bWVyaWNWYWx1ZSgpIDw9IDApCisg
ICAgaWYgKCFDU1NQcmltaXRpdmVWYWx1ZTo6aXNSZXNvbHV0aW9uKHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlOjpVbml0VHlwZT4odG9rZW4udW5pdFR5cGUoKSkpIHx8IHRva2VuLm51bWVy
aWNWYWx1ZSgpIDw9IDApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXR1cm4g
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNvbHV0aW9uCkBAIC0xODYsNyAr
MTg2LDcgQEAgTWVkaWFRdWVyeUV4cHJlc3Npb246Ok1lZGlhUXVlcnlFeHByZXNzaQogICAgICAg
ICAgICAgICAgIHx8IGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmd0aChtX21lZGlhRmVhdHVy
ZSwgdG9rZW4pKSB7CiAgICAgICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0
IGhhdmUgbm9uLW5lZ2F0aXZlIDxkZW5zaXR5PiwgaWUuIGRwcHgsIGRwaSBvciBkcGNtLAogICAg
ICAgICAgICAgICAgIC8vIG9yIE1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5vbi1uZWdh
dGl2ZSA8bGVuZ3RoPiBvciBudW1iZXIgdmFsdWUuCi0gICAgICAgICAgICAgICAgbV92YWx1ZSA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIChDU1NQcmlt
aXRpdmVWYWx1ZTo6VW5pdFR5cGVzKSB0b2tlbi51bml0VHlwZSgpKTsKKyAgICAgICAgICAgICAg
ICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh0b2tlbi5udW1lcmljVmFsdWUo
KSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZSkgdG9rZW4udW5pdFR5cGUoKSk7CiAgICAg
ICAgICAgICAgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmVh
dHVyZVdpdGhQb3NpdGl2ZUludGVnZXIobV9tZWRpYUZlYXR1cmUsIHRva2VuKQogICAgICAgICAg
ICAgICAgIHx8IGZlYXR1cmVXaXRoUG9zaXRpdmVOdW1iZXIobV9tZWRpYUZlYXR1cmUsIHRva2Vu
KQpAQCAtMTk0LDcgKzE5NCw3IEBAIE1lZGlhUXVlcnlFeHByZXNzaW9uOjpNZWRpYVF1ZXJ5RXhw
cmVzc2kKICAgICAgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBu
b24tbmVnYXRpdmUgaW50ZWdlciB2YWx1ZSwKICAgICAgICAgICAgICAgICAvLyBvciBtZWRpYSBm
ZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRpdmUgbnVtYmVyIHZhbHVlLAogICAgICAg
ICAgICAgICAgIC8vIG9yIG1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlICgwfDEpIHZhbHVl
LgotICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHRv
a2VuLm51bWVyaWNWYWx1ZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfTlVN
QkVSKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1Nf
TlVNQkVSKTsKICAgICAgICAgICAgICAgICBtX2lzVmFsaWQgPSB0cnVlOwogICAgICAgICAgICAg
fQogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZh
c3RQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJGYXN0UGF0aHMuY3BwCShyZXZpc2lvbiAyMDk3MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSwx
NCArMTAxLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NpbXBsZUxlbmd0aFByb3BlcnQKIH0K
IAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci1zdGF0aWMgaW5saW5lIGJvb2wg
cGFyc2VTaW1wbGVMZW5ndGgoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbGVuZ3RoLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzJiB1bml0LCBkb3VibGUmIG51
bWJlcikKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXJzZVNpbXBsZUxlbmd0aChjb25zdCBDaGFyYWN0
ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZSYgdW5pdCwgZG91YmxlJiBudW1iZXIpCiB7CiAgICAgaWYgKGxlbmd0aCA+IDIgJiYg
KGNoYXJhY3RlcnNbbGVuZ3RoIC0gMl0gfCAweDIwKSA9PSAncCcgJiYgKGNoYXJhY3RlcnNbbGVu
Z3RoIC0gMV0gfCAweDIwKSA9PSAneCcpIHsKICAgICAgICAgbGVuZ3RoIC09IDI7Ci0gICAgICAg
IHVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfUFg7CisgICAgICAgIHVu
aXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19QWDsKICAgICB9IGVsc2UgaWYg
KGxlbmd0aCA+IDEgJiYgY2hhcmFjdGVyc1tsZW5ndGggLSAxXSA9PSAnJScpIHsKICAgICAgICAg
bGVuZ3RoIC09IDE7Ci0gICAgICAgIHVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVz
OjpDU1NfUEVSQ0VOVEFHRTsKKyAgICAgICAgdW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0
VHlwZTo6Q1NTX1BFUkNFTlRBR0U7CiAgICAgfQogCiAgICAgLy8gV2UgcmVseSBvbiBjaGFyYWN0
ZXJzVG9Eb3VibGUgZm9yIHZhbGlkYXRpb24gYXMgd2VsbC4gVGhlIGZ1bmN0aW9uCkBAIC0xMzIs
NyArMTMyLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VTaW1wbGVMZW5ndAogCiAg
ICAgdW5zaWduZWQgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOwogICAgIGRvdWJsZSBudW1iZXI7
Ci0gICAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyB1bml0ID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlczo6Q1NTX05VTUJFUjsKKyAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGUgdW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX05VTUJFUjsKIAogICAg
IGlmIChzdHJpbmcuaXM4Qml0KCkpIHsKICAgICAgICAgaWYgKCFwYXJzZVNpbXBsZUxlbmd0aChz
dHJpbmcuY2hhcmFjdGVyczgoKSwgbGVuZ3RoLCB1bml0LCBudW1iZXIpKQpAQCAtMTQyLDEwICsx
NDIsMTAgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VTaW1wbGVMZW5ndAogICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKHVuaXQgPT0gQ1NTUHJpbWl0
aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX05VTUJFUikgeworICAgIGlmICh1bml0ID09IENTU1By
aW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX05VTUJFUikgewogICAgICAgICBpZiAobnVtYmVy
ICYmIGNzc1BhcnNlck1vZGUgIT0gU1ZHQXR0cmlidXRlTW9kZSkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwotICAgICAgICB1bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6
Q1NTX1BYOworICAgICAgICB1bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1Nf
UFg7CiAgICAgfQogCiAgICAgaWYgKG51bWJlciA8IDAgJiYgIWFjY2VwdHNOZWdhdGl2ZU51bWJl
cnMpCkBAIC0yNTYsNyArMjU2LDcgQEAgc3RhdGljIGludCBwYXJzZURvdWJsZShjb25zdCBDaGFy
YWN0ZXJUeQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLXN0YXRpYyBi
b29sIHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY29uc3QgQ2hhcmFjdGVyVHlwZSomIHN0cmlu
ZywgY29uc3QgQ2hhcmFjdGVyVHlwZSogZW5kLCBjb25zdCBjaGFyIHRlcm1pbmF0b3IsIENTU1By
aW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMmIGV4cGVjdCwgaW50JiB2YWx1ZSkKK3N0YXRpYyBib29s
IHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY29uc3QgQ2hhcmFjdGVyVHlwZSomIHN0cmluZywg
Y29uc3QgQ2hhcmFjdGVyVHlwZSogZW5kLCBjb25zdCBjaGFyIHRlcm1pbmF0b3IsIENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZSYgZXhwZWN0LCBpbnQmIHZhbHVlKQogewogICAgIGNvbnN0IENo
YXJhY3RlclR5cGUqIGN1cnJlbnQgPSBzdHJpbmc7CiAgICAgZG91YmxlIGxvY2FsVmFsdWUgPSAw
OwpAQCAtMjg0LDcgKzI4NCw3IEBAIHN0YXRpYyBib29sIHBhcnNlQ29sb3JJbnRPclBlcmNlbnRh
Z2UoY28KICAgICBpZiAoY3VycmVudCA9PSBlbmQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmIChleHBlY3QgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX05VTUJF
UiAmJiAoKmN1cnJlbnQgPT0gJy4nIHx8ICpjdXJyZW50ID09ICclJykpCisgICAgaWYgKGV4cGVj
dCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19OVU1CRVIgJiYgKCpjdXJyZW50
ID09ICcuJyB8fCAqY3VycmVudCA9PSAnJScpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoKmN1cnJlbnQgPT0gJy4nKSB7CkBAIC0zMDAsMTggKzMwMCwxOCBAQCBzdGF0aWMgYm9v
bCBwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGNvCiAgICAgICAgIGxvY2FsVmFsdWUgKz0gcGVy
Y2VudGFnZTsKICAgICB9CiAKLSAgICBpZiAoZXhwZWN0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZXM6OkNTU19QRVJDRU5UQUdFICYmICpjdXJyZW50ICE9ICclJykKKyAgICBpZiAoZXhw
ZWN0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UgJiYgKmN1
cnJlbnQgIT0gJyUnKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoKmN1cnJlbnQg
PT0gJyUnKSB7Ci0gICAgICAgIGV4cGVjdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6
OkNTU19QRVJDRU5UQUdFOworICAgICAgICBleHBlY3QgPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGU6OkNTU19QRVJDRU5UQUdFOwogICAgICAgICBsb2NhbFZhbHVlID0gbG9jYWxWYWx1ZSAv
IDEwMC4wICogMjU2LjA7CiAgICAgICAgIC8vIENsYW1wIHZhbHVlcyBhdCAyNTUgZm9yIHBlcmNl
bnRhZ2VzIG92ZXIgMTAwJQogICAgICAgICBpZiAobG9jYWxWYWx1ZSA+IDI1NSkKICAgICAgICAg
ICAgIGxvY2FsVmFsdWUgPSAyNTU7CiAgICAgICAgIGN1cnJlbnQrKzsKICAgICB9IGVsc2Ugewot
ICAgICAgICBleHBlY3QgPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfTlVNQkVS
OworICAgICAgICBleHBlY3QgPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19OVU1C
RVI7CiAgICAgfQogCiAgICAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kICYmIGlzSFRNTFNwYWNlPENo
YXJhY3RlclR5cGU+KCpjdXJyZW50KSkKQEAgLTQxNiw3ICs0MTYsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgbWlnaHRCZVJHQihjb25zdCBDaGFyCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4KIHN0YXRpYyBDb2xvciBmYXN0UGFyc2VDb2xvckludGVybmFsKGNvbnN0IENoYXJhY3Rl
clR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBxdWlya3NNb2RlKQogewot
ICAgIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgZXhwZWN0ID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlczo6Q1NTX1VOS05PV047CisgICAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRU
eXBlIGV4cGVjdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1VOS05PV047CiAK
ICAgICBpZiAobGVuZ3RoID49IDQgJiYgY2hhcmFjdGVyc1swXSA9PSAnIycpIHsKICAgICAgICAg
UkdCQTMyIHJnYjsKQEAgLTEwNTksMTMgKzEwNTksMTMgQEAgc3RhdGljIGJvb2wgcGFyc2VUcmFu
c2Zvcm1UcmFuc2xhdGVBcmd1bQogICAgICAgICBpZiAoZGVsaW1pdGVyID09IG5vdEZvdW5kKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB1bnNpZ25lZCBhcmd1bWVudExlbmd0
aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZWxpbWl0ZXIpOwotICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGVzIHVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpD
U1NfTlVNQkVSOworICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgdW5pdCA9IENT
U1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX05VTUJFUjsKICAgICAgICAgZG91YmxlIG51
bWJlcjsKICAgICAgICAgaWYgKCFwYXJzZVNpbXBsZUxlbmd0aChwb3MsIGFyZ3VtZW50TGVuZ3Ro
LCB1bml0LCBudW1iZXIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAo
dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfUFggJiYgKG51bWJlciB8
fCB1bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19OVU1CRVIpKQorICAg
ICAgICBpZiAodW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19QWCAmJiAo
bnVtYmVyIHx8IHVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfTlVNQkVS
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdHJhbnNmb3JtVmFsdWUtPmFw
cGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG51bWJlciwgQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlczo6Q1NTX1BYKSk7CisgICAgICAgIHRyYW5zZm9ybVZhbHVlLT5hcHBlbmQoQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShudW1iZXIsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlw
ZTo6Q1NTX1BYKSk7CiAgICAgICAgIHBvcyArPSBhcmd1bWVudExlbmd0aCArIDE7CiAgICAgICAg
IC0tZXhwZWN0ZWRDb3VudDsKICAgICB9CkBAIC0xMDg0LDcgKzEwODQsNyBAQCBzdGF0aWMgYm9v
bCBwYXJzZVRyYW5zZm9ybU51bWJlckFyZ3VtZW50CiAgICAgICAgIGRvdWJsZSBudW1iZXIgPSBj
aGFyYWN0ZXJzVG9Eb3VibGUocG9zLCBhcmd1bWVudExlbmd0aCwgJm9rKTsKICAgICAgICAgaWYg
KCFvaykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdHJhbnNmb3JtVmFsdWUt
PmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG51bWJlciwgQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlczo6Q1NTX05VTUJFUikpOworICAgICAgICB0cmFuc2Zvcm1WYWx1ZS0+YXBw
ZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobnVtYmVyLCBDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGU6OkNTU19OVU1CRVIpKTsKICAgICAgICAgcG9zICs9IGFyZ3VtZW50TGVuZ3RoICsg
MTsKICAgICAgICAgLS1leHBlY3RlZENvdW50OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCShyZXZpc2lvbiAyMDk3MTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNyArNDAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBDaGFyYWN0ZXJUeXBlPgotQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBjc3NQcmlt
aXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25l
ZCBsZW5ndGgpCitDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVV
bml0RnJvbVRyaWUoY29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQog
ewogICAgIEFTU0VSVChkYXRhKTsKICAgICBBU1NFUlQobGVuZ3RoKTsKQEAgLTQ4LDcgKzQ4LDcg
QEAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBjc3NQcmltaXRpdgogICAgIGNhc2UgMToK
ICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVswXSkpIHsKICAgICAgICAgY2FzZSAn
cyc6Ci0gICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NT
X1M7CisgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1Nf
UzsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIDI6CkBAIC01Niw1NSArNTYs
NTUgQEAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBjc3NQcmltaXRpdgogICAgICAgICBj
YXNlICdjJzoKICAgICAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMV0pKSB7CiAg
ICAgICAgICAgICBjYXNlICdoJzoKLSAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZl
VmFsdWU6OlVuaXRUeXBlczo6Q1NTX0NIUzsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJp
bWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfQ0hTOwogICAgICAgICAgICAgY2FzZSAnbSc6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19D
TTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpD
U1NfQ007CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAn
ZSc6CiAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzFdKSkgewogICAgICAg
ICAgICAgY2FzZSAnbSc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVl
OjpVbml0VHlwZXM6OkNTU19FTVM7CisgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2
ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX0VNUzsKICAgICAgICAgICAgIGNhc2UgJ3gnOgotICAgICAg
ICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfRVhTOwor
ICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19F
WFM7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnZic6
CiAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICdyJykKLSAgICAgICAg
ICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX0ZSOworICAg
ICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19GUjsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdoJzoKICAgICAgICAgICAgIGlmICh0
b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3onKQotICAgICAgICAgICAgICAgIHJldHVybiBDU1NQ
cmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfSFo7CisgICAgICAgICAgICAgICAgcmV0dXJu
IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX0haOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgJ2knOgogICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFd
KSA9PSAnbicpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0
VHlwZXM6OkNTU19JTjsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlOjpDU1NfSU47CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnbSc6
CiAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzFdKSkgewogICAgICAgICAg
ICAgY2FzZSAnbSc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZXM6OkNTU19NTTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlOjpDU1NfTU07CiAgICAgICAgICAgICBjYXNlICdzJzoKLSAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX01TOworICAgICAg
ICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19NUzsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdwJzoKICAgICAg
ICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMV0pKSB7CiAgICAgICAgICAgICBjYXNl
ICdjJzoKLSAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBl
czo6Q1NTX1BDOworICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGU6OkNTU19QQzsKICAgICAgICAgICAgIGNhc2UgJ3QnOgotICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfUFQ7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1BUOwogICAgICAgICAg
ICAgY2FzZSAneCc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZXM6OkNTU19QWDsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlOjpDU1NfUFg7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSAndic6CiAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRh
WzFdKSkgewogICAgICAgICAgICAgY2FzZSAnaCc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIENT
U1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19WSDsKKyAgICAgICAgICAgICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfVkg7CiAgICAgICAgICAgICBjYXNl
ICd3JzoKLSAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBl
czo6Q1NTX1ZXOworICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGU6OkNTU19WVzsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CkBAIC0xMTUsMjcgKzExNSwyNyBAQCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIGNz
c1ByaW1pdGl2CiAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzFdKSkgewog
ICAgICAgICAgICAgY2FzZSAnZSc6CiAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihk
YXRhWzJdKSA9PSAnZycpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzOjpDU1NfREVHOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NT
UHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfREVHOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSAncCc6CiAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dl
cihkYXRhWzJdKSA9PSAnaScpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfRFBJOworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfRFBJOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnayc6CiAg
ICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGRhdGFbMV0pID09ICdoJyAmJiB0b0FTQ0lJTG93
ZXIoZGF0YVsyXSkgPT0gJ3onKQotICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzOjpDU1NfS0haOworICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmlt
aXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19LSFo7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSAncic6CiAgICAgICAgICAgICBzd2l0Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzFdKSkg
ewogICAgICAgICAgICAgY2FzZSAnYSc6CiAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dl
cihkYXRhWzJdKSA9PSAnZCcpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfUkFEOworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfUkFEOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSAnZSc6CiAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlM
b3dlcihkYXRhWzJdKSA9PSAnbScpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmlt
aXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfUkVNUzsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1JFTVM7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtMTQ5LDExICsxNDks
MTEgQEAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBjc3NQcmltaXRpdgogICAgICAgICAg
ICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMl0pKSB7CiAgICAgICAgICAgICAgICAg
Y2FzZSAnYyc6CiAgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVszXSkg
PT0gJ20nKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVl
OjpVbml0VHlwZXM6OkNTU19EUENNOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENT
U1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX0RQQ007CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgJ3AnOgogICAgICAgICAgICAgICAgICAgICBp
ZiAodG9BU0NJSUxvd2VyKGRhdGFbM10pID09ICd4JykKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfRFBQWDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19E
UFBYOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTE2MSwxMSArMTYxLDExIEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZXMgY3NzUHJpbWl0aXYKICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgJ2cnOgog
ICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9PSAncicgJiYgdG9BU0NJSUxv
d2VyKGRhdGFbMl0pID09ICdhJyAmJiB0b0FTQ0lJTG93ZXIoZGF0YVszXSkgPT0gJ2QnKQotICAg
ICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfR1JB
RDsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpD
U1NfR1JBRDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICd0JzoKICAgICAgICAg
ICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVsxXSkgPT0gJ3UnICYmIHRvQVNDSUlMb3dlcihkYXRh
WzJdKSA9PSAncicgJiYgdG9BU0NJSUxvd2VyKGRhdGFbM10pID09ICduJykKLSAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1RVUk47CisgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1RVUk47
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAndic6CiAgICAgICAgICAgICBzd2l0
Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzFdKSkgewpAQCAtMTczLDExICsxNzMsMTEgQEAgQ1NTUHJp
bWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBjc3NQcmltaXRpdgogICAgICAgICAgICAgICAgIHN3aXRj
aCAodG9BU0NJSUxvd2VyKGRhdGFbMl0pKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAnYSc6CiAg
ICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoZGF0YVszXSkgPT0gJ3gnKQotICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6
OkNTU19WTUFYOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZh
bHVlOjpVbml0VHlwZTo6Q1NTX1ZNQVg7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIGNhc2UgJ2knOgogICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxv
d2VyKGRhdGFbM10pID09ICduJykKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NQ
cmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfVk1JTjsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19WTUlOOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
YnJlYWs7CkBAIC0xODksMTUgKzE4OSwxNSBAQCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVz
IGNzc1ByaW1pdGl2CiAgICAgICAgIHN3aXRjaCAodG9BU0NJSUxvd2VyKGRhdGFbMF0pKSB7CiAg
ICAgICAgIGNhc2UgJ18nOgogICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihkYXRhWzFdKSA9
PSAnXycgJiYgdG9BU0NJSUxvd2VyKGRhdGFbMl0pID09ICdxJyAmJiB0b0FTQ0lJTG93ZXIoZGF0
YVszXSkgPT0gJ2UnICYmIHRvQVNDSUlMb3dlcihkYXRhWzRdKSA9PSAnbScpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19RVUlSS1lfRU1T
OworICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNT
U19RVUlSS1lfRU1TOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJl
YWs7CiAgICAgfQotICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1Nf
VU5LTk9XTjsKKyAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfVU5L
Tk9XTjsKIH0KIAotc3RhdGljIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgc3RyaW5nVG9V
bml0VHlwZShTdHJpbmdWaWV3IHN0cmluZ1ZpZXcpCitzdGF0aWMgQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlIHN0cmluZ1RvVW5pdFR5cGUoU3RyaW5nVmlldyBzdHJpbmdWaWV3KQogewogICAg
IGlmIChzdHJpbmdWaWV3LmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gY3NzUHJpbWl0aXZlVmFs
dWVVbml0RnJvbVRyaWUoc3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3Lmxlbmd0
aCgpKTsKQEAgLTIzMiw3ICsyMzIsNyBAQCBDU1NQYXJzZXJUb2tlbjo6Q1NTUGFyc2VyVG9rZW4o
Q1NTUGFyc2VyCiAgICAgLCBtX2Jsb2NrVHlwZShOb3RCbG9jaykKICAgICAsIG1fbnVtZXJpY1Zh
bHVlVHlwZShudW1lcmljVmFsdWVUeXBlKQogICAgICwgbV9udW1lcmljU2lnbihzaWduKQotICAg
ICwgbV91bml0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGVzOjpDU1NfTlVNQkVSKSkKKyAgICAsIG1fdW5pdChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQ1NT
UHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfTlVNQkVSKSkKIHsKICAgICBBU1NFUlQodHlw
ZSA9PSBOdW1iZXJUb2tlbik7CiAgICAgbV9udW1lcmljVmFsdWUgPSBudW1lcmljVmFsdWU7CkBA
IC0yNjcsNyArMjY3LDcgQEAgdm9pZCBDU1NQYXJzZXJUb2tlbjo6Y29udmVydFRvUGVyY2VudGFn
ZQogewogICAgIEFTU0VSVChtX3R5cGUgPT0gTnVtYmVyVG9rZW4pOwogICAgIG1fdHlwZSA9IFBl
cmNlbnRhZ2VUb2tlbjsKLSAgICBtX3VuaXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQ1NTUHJp
bWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1BFUkNFTlRBR0UpOworICAgIG1fdW5pdCA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19QRVJD
RU5UQUdFKTsKIH0KIAogVUNoYXIgQ1NTUGFyc2VyVG9rZW46OmRlbGltaXRlcigpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5oCShyZXZpc2lv
biAyMDk3MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgZG91YmxlIG51
bWVyaWNWYWx1ZSgpIGNvbnN0OwogICAgIEhhc2hUb2tlblR5cGUgZ2V0SGFzaFRva2VuVHlwZSgp
IGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBIYXNoVG9rZW4pOyByZXR1cm4gbV9oYXNoVG9rZW5U
eXBlOyB9CiAgICAgQmxvY2tUeXBlIGdldEJsb2NrVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PEJsb2NrVHlwZT4obV9ibG9ja1R5cGUpOyB9Ci0gICAgQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlcyB1bml0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXM+KG1fdW5pdCk7IH0KKyAgICBDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGUgdW5pdFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGU+KG1fdW5pdCk7IH0KICAgICBVQ2hhcjMyIHVuaWNvZGVSYW5nZVN0
YXJ0KCkgY29uc3QgeyBBU1NFUlQobV90eXBlID09IFVuaWNvZGVSYW5nZVRva2VuKTsgcmV0dXJu
IG1fdW5pY29kZVJhbmdlLnN0YXJ0OyB9CiAgICAgVUNoYXIzMiB1bmljb2RlUmFuZ2VFbmQoKSBj
b25zdCB7IEFTU0VSVChtX3R5cGUgPT0gVW5pY29kZVJhbmdlVG9rZW4pOyByZXR1cm4gbV91bmlj
b2RlUmFuZ2UuZW5kOyB9CiAgICAgQ1NTVmFsdWVJRCBpZCgpIGNvbnN0OwpAQCAtMTUyLDcgKzE1
Miw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9ibG9ja1R5cGUgOiAyOyAvLyBCbG9ja1R5
cGUKICAgICB1bnNpZ25lZCBtX251bWVyaWNWYWx1ZVR5cGUgOiAxOyAvLyBOdW1lcmljVmFsdWVU
eXBlCiAgICAgdW5zaWduZWQgbV9udW1lcmljU2lnbiA6IDI7IC8vIE51bWVyaWNTaWduCi0gICAg
dW5zaWduZWQgbV91bml0IDogNzsgLy8gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcworICAg
IHVuc2lnbmVkIG1fdW5pdCA6IDc7IC8vIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZQogCiAg
ICAgYm9vbCB2YWx1ZURhdGFDaGFyUmF3RXF1YWwoY29uc3QgQ1NTUGFyc2VyVG9rZW4mIG90aGVy
KSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAJKHJldmlzaW9uIDIwOTcxOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODYsNyArMzg2
LDcgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZVRyYW5zZm9ybQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eVRyYW5zZm9y
bU9yaWdpblgsIENTU1Byb3BlcnR5VHJhbnNmb3JtT3JpZ2luLCByZXN1bHRYLnJlbGVhc2VOb25O
dWxsKCksIGltcG9ydGFudCk7CiAgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5VHJhbnNm
b3JtT3JpZ2luWSwgQ1NTUHJvcGVydHlUcmFuc2Zvcm1PcmlnaW4sIHJlc3VsdFkucmVsZWFzZU5v
bk51bGwoKSwgaW1wb3J0YW50KTsKLSAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlUcmFu
c2Zvcm1PcmlnaW5aLCBDU1NQcm9wZXJ0eVRyYW5zZm9ybU9yaWdpbiwgcmVzdWx0WiA/IHJlc3Vs
dFoucmVsZWFzZU5vbk51bGwoKSA6IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFs
dWUoMCwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1BYKSwgaW1wb3J0YW50LCAh
aGFzWik7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5VHJhbnNmb3JtT3JpZ2luWiwg
Q1NTUHJvcGVydHlUcmFuc2Zvcm1PcmlnaW4sIHJlc3VsdFogPyByZXN1bHRaLnJlbGVhc2VOb25O
dWxsKCkgOiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKDAsIENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1BYKSwgaW1wb3J0YW50LCAhaGFzWik7CiAgICAgICAg
IAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xMDQxLDcgKzEwNDEsNyBAQCBzdGF0
aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQ291bnRlcihDCiAgICAgICAgIGludCBpID0gZGVm
YXVsdFZhbHVlOwogICAgICAgICBpZiAoUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb3VudGVy
VmFsdWUgPSBjb25zdW1lSW50ZWdlcihyYW5nZSkpCiAgICAgICAgICAgICBpID0gY291bnRlclZh
bHVlLT5pbnRWYWx1ZSgpOwotICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlVmFs
dWVQYWlyKGNvdW50ZXJOYW1lLnJlbGVhc2VOb25OdWxsKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUoaSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX05VTUJFUiksIFBhaXI6
OklkZW50aWNhbFZhbHVlRW5jb2Rpbmc6OkNvYWxlc2NlKSk7CisgICAgICAgIGxpc3QtPmFwcGVu
ZChjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIoY291bnRlck5hbWUucmVsZWFzZU5vbk51bGwoKSwg
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6
OkNTU19OVU1CRVIpLCBQYWlyOjpJZGVudGljYWxWYWx1ZUVuY29kaW5nOjpDb2FsZXNjZSkpOwog
ICAgIH0gd2hpbGUgKCFyYW5nZS5hdEVuZCgpKTsKICAgICByZXR1cm4gbGlzdDsKIH0KQEAgLTEy
OTMsNyArMTI5Myw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVBbmltYXRpb24K
ICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4udmFsdWUoKSwgIm5vbmUi
KSkKICAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlk
ZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwogICAgICAgICAvLyBGSVhNRS1ORVdQQVJTRVI6
IFdhbnQgdG8gdXNlIGEgQ1NTQ3VzdG9tSWRlbnRWYWx1ZSBoZXJlIGV2ZW50dWFsbHkuCi0gICAg
ICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHRva2VuLnZh
bHVlKCkudG9TdHJpbmcoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1NUUklO
Ryk7CisgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVl
KHRva2VuLnZhbHVlKCkudG9TdHJpbmcoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpD
U1NfU1RSSU5HKTsKICAgICB9CiAKICAgICByZXR1cm4gY29uc3VtZUN1c3RvbUlkZW50KHJhbmdl
KTsKQEAgLTE3NTEsNyArMTc1MSw3IEBAIHN0YXRpYyBib29sIGNvbnN1bWVQZXJzcGVjdGl2ZShD
U1NQYXJzZXIKICAgICAgICAgZG91YmxlIHBlcnNwZWN0aXZlOwogICAgICAgICBpZiAoIWNvbnN1
bWVOdW1iZXJSYXcoYXJncywgcGVyc3BlY3RpdmUpIHx8IHBlcnNwZWN0aXZlIDwgMCkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcGFyc2VkVmFsdWUgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKHBlcnNwZWN0aXZlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpD
U1NfUFgpOworICAgICAgICBwYXJzZWRWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
cGVyc3BlY3RpdmUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1BYKTsKICAgICB9
CiAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTkzNyw3
ICsxOTM3LDcgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZQogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmFuZ2UuY29u
c3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKLSAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGUocGVyY2VudCwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1BF
UkNFTlRBR0UpOworICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShwZXJj
ZW50LCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFKTsKICAgICB9
CiAgICAgcmV0dXJuIGNvbnN1bWVMZW5ndGhPclBlcmNlbnQocmFuZ2UsIGNzc1BhcnNlck1vZGUs
IFZhbHVlUmFuZ2VBbGwpOwogfQpAQCAtMjE2MCwxMSArMjE2MCwxMSBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlPiBjb25zdW1lQ291bnRlckNvCiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IHNlcGFyYXRvcjsKICAgICBpZiAoIWNvdW50ZXJzKQotICAgICAgICBzZXBhcmF0b3IgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFN0cmluZygpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGVzOjpDU1NfU1RSSU5HKTsKKyAgICAgICAgc2VwYXJhdG9yID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZShTdHJpbmcoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfU1RS
SU5HKTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFjb25zdW1lQ29tbWFJbmNsdWRpbmdXaGl0
ZXNwYWNlKGFyZ3MpIHx8IGFyZ3MucGVlaygpLnR5cGUoKSAhPSBTdHJpbmdUb2tlbikKICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBzZXBhcmF0b3IgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKGFyZ3MuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS52YWx1ZSgpLnRv
U3RyaW5nKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19TVFJJTkcpOworICAg
ICAgICBzZXBhcmF0b3IgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGFyZ3MuY29uc3VtZUlu
Y2x1ZGluZ1doaXRlc3BhY2UoKS52YWx1ZSgpLnRvU3RyaW5nKCksIENTU1ByaW1pdGl2ZVZhbHVl
OjpVbml0VHlwZTo6Q1NTX1NUUklORyk7CiAgICAgfQogCiAgICAgUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiBsaXN0U3R5bGU7CkBAIC0yMjIyLDcgKzIyMjIsNyBAQCBzdGF0aWMgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lCiAgICAgICAgIGRvdWJsZSBwZXJzcGVjdGl2ZTsKICAg
ICAgICAgaWYgKCFjb25zdW1lTnVtYmVyUmF3KHJhbmdlLCBwZXJzcGVjdGl2ZSkpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcGFyc2VkVmFsdWUgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKHBlcnNwZWN0aXZlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpD
U1NfUFgpOworICAgICAgICBwYXJzZWRWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
cGVyc3BlY3RpdmUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1BYKTsKICAgICB9
CiAgICAgaWYgKHBhcnNlZFZhbHVlICYmIChwYXJzZWRWYWx1ZS0+aXNDYWxjdWxhdGVkKCkgfHwg
cGFyc2VkVmFsdWUtPmRvdWJsZVZhbHVlKCkgPiAwKSkKICAgICAgICAgcmV0dXJuIHBhcnNlZFZh
bHVlOwpAQCAtMjc4Miw3ICsyNzgyLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3Vt
ZVJlZmxlY3QoQwogCiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBvZmZzZXQ7CiAgICAg
aWYgKHJhbmdlLmF0RW5kKCkpCi0gICAgICAgIG9mZnNldCA9IENTU1ZhbHVlUG9vbDo6c2luZ2xl
dG9uKCkuY3JlYXRlVmFsdWUoMCwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1BY
KTsKKyAgICAgICAgb2Zmc2V0ID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1
ZSgwLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19QWCk7CiAgICAgZWxzZSB7CiAg
ICAgICAgIG9mZnNldCA9IGNvbnN1bWVMZW5ndGhPclBlcmNlbnQocmFuZ2UsIGNvbnRleHQubW9k
ZSwgVmFsdWVSYW5nZUFsbCwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKICAgICAgICAgaWYgKCFv
ZmZzZXQpCkBAIC0zMjAzLDEwICszMjAzLDEwIEBAIHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IGNvbnN1bWUKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5w
ZWVrKCk7CiAgICAgaWYgKGlkZW50TWF0Y2hlczxDU1NWYWx1ZVdlYmtpdE1pbkNvbnRlbnQsIENT
U1ZhbHVlV2Via2l0TWF4Q29udGVudCwgQ1NTVmFsdWVBdXRvPih0b2tlbi5pZCgpKSkKICAgICAg
ICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Ci0gICAgaWYgKHRva2VuLnR5cGUoKSA9PSBE
aW1lbnNpb25Ub2tlbiAmJiB0b2tlbi51bml0VHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZXM6OkNTU19GUikgeworICAgIGlmICh0b2tlbi50eXBlKCkgPT0gRGltZW5zaW9uVG9r
ZW4gJiYgdG9rZW4udW5pdFR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNT
U19GUikgewogICAgICAgICBpZiAocmFuZ2UucGVlaygpLm51bWVyaWNWYWx1ZSgpIDwgMCkKICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1
ZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfRlIpOworICAgICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVz
cGFjZSgpLm51bWVyaWNWYWx1ZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19G
Uik7CiAgICAgfQogICAgIHJldHVybiBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQ
YXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUsIFVuaXRsZXNzUXVpcms6OkFsbG93KTsK
IH0KQEAgLTQ2NzYsNyArNDY3Niw3IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVG
bGV4KGJvb2wKICAgICAgICAgICAgICAgICBlbHNlIGlmIChmbGV4U2hyaW5rID09IHVuc2V0VmFs
dWUpCiAgICAgICAgICAgICAgICAgICAgIGZsZXhTaHJpbmsgPSBudW07CiAgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoIW51bSkgLy8gZmxleCBvbmx5IGFsbG93cyBhIGJhc2lzIG9mIDAgKHNhbnMg
dW5pdHMpIGlmIGZsZXgtZ3JvdyBhbmQgZmxleC1zaHJpbmsgdmFsdWVzIGhhdmUgYWxyZWFkeSBi
ZWVuIHNldC4KLSAgICAgICAgICAgICAgICAgICAgZmxleEJhc2lzID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZSgwLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfUFgpOworICAg
ICAgICAgICAgICAgICAgICBmbGV4QmFzaXMgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDAs
IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1BYKTsKICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoIWZsZXhCYXNpcykgewpAQCAtNDY5NSwxMyArNDY5NSwxMyBAQCBib29sIENTU1Byb3Bl
cnR5UGFyc2VyOjpjb25zdW1lRmxleChib29sCiAgICAgICAgIGlmIChmbGV4U2hyaW5rID09IHVu
c2V0VmFsdWUpCiAgICAgICAgICAgICBmbGV4U2hyaW5rID0gMTsKICAgICAgICAgaWYgKCFmbGV4
QmFzaXMpCi0gICAgICAgICAgICBmbGV4QmFzaXMgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KDAsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19QWCk7CisgICAgICAgICAgICBm
bGV4QmFzaXMgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDAsIENTU1ByaW1pdGl2ZVZhbHVl
OjpVbml0VHlwZTo6Q1NTX1BYKTsKICAgICB9CiAKICAgICBpZiAoIW1fcmFuZ2UuYXRFbmQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5RmxleEdy
b3csIENTU1Byb3BlcnR5RmxleCwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShjbGFtcFRvPGZs
b2F0PihmbGV4R3JvdyksIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19OVU1CRVIp
LCBpbXBvcnRhbnQpOwotICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5RmxleFNocmluaywgQ1NT
UHJvcGVydHlGbGV4LCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGNsYW1wVG88ZmxvYXQ+KGZs
ZXhTaHJpbmspLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfTlVNQkVSKSwgaW1w
b3J0YW50KTsKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZsZXhHcm93LCBDU1NQcm9wZXJ0
eUZsZXgsIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoY2xhbXBUbzxmbG9hdD4oZmxleEdyb3cp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19OVU1CRVIpLCBpbXBvcnRhbnQpOwor
ICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5RmxleFNocmluaywgQ1NTUHJvcGVydHlGbGV4LCBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGNsYW1wVG88ZmxvYXQ+KGZsZXhTaHJpbmspLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19OVU1CRVIpLCBpbXBvcnRhbnQpOwogICAgIGFk
ZFByb3BlcnR5KENTU1Byb3BlcnR5RmxleEJhc2lzLCBDU1NQcm9wZXJ0eUZsZXgsIGZsZXhCYXNp
cy5yZWxlYXNlTm9uTnVsbCgpLCBpbXBvcnRhbnQpOwogICAgIHJldHVybiB0cnVlOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzLmNwcAkocmV2aXNpb24gMjA5NzE3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAs
NyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIW1fY2FsY1ZhbHVlKQogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIG1fc291cmNlUmFuZ2UgPSBtX3JhbmdlOwotICAg
ICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShtX2NhbGNW
YWx1ZS0+ZG91YmxlVmFsdWUoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX05V
TUJFUik7CisgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZh
bHVlKG1fY2FsY1ZhbHVlLT5kb3VibGVWYWx1ZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGU6OkNTU19OVU1CRVIpOwogICAgIH0KIAogICAgIGJvb2wgY29uc3VtZU51bWJlclJhdyhkb3Vi
bGUmIHJlc3VsdCkKQEAgLTEzNSw3ICsxMzUsNyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IGNvbnN1bWVJbnRlZ2VyCiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbikgewog
ICAgICAgICBpZiAodG9rZW4ubnVtZXJpY1ZhbHVlVHlwZSgpID09IE51bWJlclZhbHVlVHlwZSB8
fCB0b2tlbi5udW1lcmljVmFsdWUoKSA8IG1pbmltdW1WYWx1ZSkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwotICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVh
dGVWYWx1ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfTlVNQkVSKTsKKyAgICAgICAgcmV0
dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUlu
Y2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVu
aXRUeXBlOjpDU1NfTlVNQkVSKTsKICAgICB9CiAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJh
bmdlKTsKICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IGNhbGNQYXJz
ZXIudmFsdWUoKSkgewpAQCAtMjEwLDI0ICsyMTAsMjQgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBjb25zdW1lTGVuZ3RoKAogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJh
bmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IERpbWVuc2lvblRva2VuKSB7CiAg
ICAgICAgIHN3aXRjaCAodG9rZW4udW5pdFR5cGUoKSkgewotICAgICAgICBjYXNlIENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19RVUlSS1lfRU1TOgorICAgICAgICBjYXNlIENTU1By
aW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1FVSVJLWV9FTVM6CiAgICAgICAgICAgICBpZiAo
Y3NzUGFyc2VyTW9kZSAhPSBVQVNoZWV0TW9kZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgICAgIEZBTExUSFJPVUdIOwotICAgICAgICBjYXNlIENTU1ByaW1pdGl2
ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19FTVM6Ci0gICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlczo6Q1NTX1JFTVM6Ci0gICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlczo6Q1NTX0NIUzoKLSAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGVzOjpDU1NfRVhTOgotICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlw
ZXM6OkNTU19QWDoKLSAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpD
U1NfQ006Ci0gICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX01N
OgotICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19JTjoKLSAg
ICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfUFQ6Ci0gICAgICAg
IGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1BDOgotICAgICAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19WVzoKLSAgICAgICAgY2FzZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfVkg6Ci0gICAgICAgIGNhc2UgQ1NTUHJpbWl0
aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1ZNSU46Ci0gICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZl
VmFsdWU6OlVuaXRUeXBlczo6Q1NTX1ZNQVg6CisgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlOjpDU1NfRU1TOgorICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZTo6Q1NTX1JFTVM6CisgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRU
eXBlOjpDU1NfQ0hTOgorICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6
Q1NTX0VYUzoKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19Q
WDoKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19DTToKKyAg
ICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19NTToKKyAgICAgICAg
Y2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19JTjoKKyAgICAgICAgY2FzZSBD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19QVDoKKyAgICAgICAgY2FzZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19QQzoKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGU6OkNTU19WVzoKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGU6OkNTU19WSDoKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGU6OkNTU19WTUlOOgorICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6
Q1NTX1ZNQVg6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwpAQCAtMjQyLDcgKzI0Miw3IEBAIFJlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZUxlbmd0aCgKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyB1bml0
VHlwZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19QWDsKKyAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlIHVuaXRUeXBlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OlVu
aXRUeXBlOjpDU1NfUFg7CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigp
LmNyZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1Zh
bHVlKCksIHVuaXRUeXBlKTsKICAgICB9CiAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdl
LCB2YWx1ZVJhbmdlKTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IGNvbnN1bWVQZXJjZW50CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBQZXJjZW50YWdlVG9r
ZW4pIHsKICAgICAgICAgaWYgKCh2YWx1ZVJhbmdlID09IFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSAm
JiB0b2tlbi5udW1lcmljVmFsdWUoKSA8IDApIHx8IHN0ZDo6aXNpbmYodG9rZW4ubnVtZXJpY1Zh
bHVlKCkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdX
aGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6
OkNTU19QRVJDRU5UQUdFKTsKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9u
KCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmlj
VmFsdWUoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSk7CiAg
ICAgfQogICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihyYW5nZSwgdmFsdWVSYW5nZSk7CiAgICAg
aWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBjYWxjUGFyc2VyLnZhbHVlKCkp
IHsKQEAgLTMwMSwxNyArMzAxLDE3IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3Vt
ZUFuZ2xlKEMKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7
CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBEaW1lbnNpb25Ub2tlbikgewogICAgICAgICBzd2l0
Y2ggKHRva2VuLnVuaXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGVzOjpDU1NfREVHOgotICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0
VHlwZXM6OkNTU19SQUQ6Ci0gICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBl
czo6Q1NTX0dSQUQ6Ci0gICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6
Q1NTX1RVUk46CisgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1Nf
REVHOgorICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1JBRDoK
KyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19HUkFEOgorICAg
ICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1RVUk46CiAgICAgICAg
ICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShyYW5nZS5j
b25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpLCB0b2tlbi51bml0VHlw
ZSgpKTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICB9CiAgICAgfQogICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4gJiYgc2hv
dWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFyc2VyTW9k
ZSwgdW5pdGxlc3MpKSB7Ci0gICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigp
LmNyZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1Zh
bHVlKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19ERUcpOworICAgICAgICBy
ZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShyYW5nZS5jb25zdW1l
SW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGU6OkNTU19ERUcpOwogICAgIH0KIAogICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihy
YW5nZSwgVmFsdWVSYW5nZUFsbCk7CkBAIC0zMjUsMTQgKzMyNSwxNCBAQCBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IGNvbnN1bWVBbmdsZShDCiBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNv
bnN1bWVUaW1lKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1Bh
cnNlck1vZGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykK
IHsKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7Ci0gICAg
Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyB1bml0ID0gdG9rZW4udW5pdFR5cGUoKTsKKyAg
ICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgdW5pdCA9IHRva2VuLnVuaXRUeXBlKCk7CiAg
ICAgYm9vbCBhY2NlcHRVbml0bGVzcyA9IHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBz
aG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJN
b2RlLCB1bml0bGVzcyk7CiAgICAgaWYgKGFjY2VwdFVuaXRsZXNzKQotICAgICAgICB1bml0ID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX01TOworICAgICAgICB1bml0ID0gQ1NT
UHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfTVM7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9
PSBEaW1lbnNpb25Ub2tlbiB8fCBhY2NlcHRVbml0bGVzcykgewogICAgICAgICBpZiAodmFsdWVS
YW5nZSA9PSBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUgJiYgdG9rZW4ubnVtZXJpY1ZhbHVlKCkgPCAw
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmICh1bml0ID09IENTU1By
aW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19NUyB8fCB1bml0ID09IENTU1ByaW1pdGl2ZVZh
bHVlOjpVbml0VHlwZXM6OkNTU19TKQorICAgICAgICBpZiAodW5pdCA9PSBDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGU6OkNTU19NUyB8fCB1bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0
VHlwZTo6Q1NTX1MpCiAgICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVWYWx1ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNW
YWx1ZSgpLCB1bml0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMzY1LDE0
ICszNjUsMTQgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQ3VzdG9tSQogewog
ICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IElkZW50VG9rZW4gfHwgaXNDU1NXaWRlS2V5
d29yZChyYW5nZS5wZWVrKCkuaWQoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJl
dHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJ
bmNsdWRpbmdXaGl0ZXNwYWNlKCkudmFsdWUoKS50b1N0cmluZygpLCBDU1NQcmltaXRpdmVWYWx1
ZTo6VW5pdFR5cGVzOjpDU1NfU1RSSU5HKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5n
bGV0b24oKS5jcmVhdGVWYWx1ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLnZh
bHVlKCkudG9TdHJpbmcoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfU1RSSU5H
KTsKIH0KIAogUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lU3RyaW5nKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IFN0
cmluZ1Rva2VuKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gQ1NTVmFsdWVQ
b29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVz
cGFjZSgpLnZhbHVlKCkudG9TdHJpbmcoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6
Q1NTX1NUUklORyk7CisgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRl
VmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS52YWx1ZSgpLnRvU3RyaW5n
KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1NUUklORyk7CiB9CiAKIFN0cmlu
Z1ZpZXcgY29uc3VtZVVybEFzU3RyaW5nVmlldyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkK
QEAgLTQwMiw3ICs0MDIsNyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVVcmwo
Q1NTCiAgICAgU3RyaW5nVmlldyB1cmwgPSBjb25zdW1lVXJsQXNTdHJpbmdWaWV3KHJhbmdlKTsK
ICAgICBpZiAodXJsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh1cmwudG9TdHJpbmcoKSwg
Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1VSSSk7CisgICAgcmV0dXJuIENTU1Zh
bHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUodXJsLnRvU3RyaW5nKCksIENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1VSSSk7CiB9CiAKIHN0YXRpYyBpbnQgY2xhbXBSR0JD
b21wb25lbnQoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIHZhbHVlKQpAQCAtNzU4LDExICs3NTgs
MTEgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZQogewogICAgIGlm
IChhcmdzLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tlbikgewogICAgICAgICBpZiAoKGhvcml6
b250YWwgJiYgY29uc3VtZUlkZW50PENTU1ZhbHVlTGVmdD4oYXJncykpIHx8ICghaG9yaXpvbnRh
bCAmJiBjb25zdW1lSWRlbnQ8Q1NTVmFsdWVUb3A+KGFyZ3MpKSkKLSAgICAgICAgICAgIHJldHVy
biBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKDAuLCBDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzOjpDU1NfUEVSQ0VOVEFHRSk7CisgICAgICAgICAgICByZXR1cm4gQ1NT
VmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSgwLiwgQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSk7CiAgICAgICAgIGlmICgoaG9yaXpvbnRhbCAmJiBj
b25zdW1lSWRlbnQ8Q1NTVmFsdWVSaWdodD4oYXJncykpIHx8ICghaG9yaXpvbnRhbCAmJiBjb25z
dW1lSWRlbnQ8Q1NTVmFsdWVCb3R0b20+KGFyZ3MpKSkKLSAgICAgICAgICAgIHJldHVybiBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKDEwMC4sIENTU1ByaW1pdGl2ZVZhbHVl
OjpVbml0VHlwZXM6OkNTU19QRVJDRU5UQUdFKTsKKyAgICAgICAgICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKDEwMC4sIENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UpOwogICAgICAgICBpZiAoY29uc3VtZUlkZW50PENTU1Zh
bHVlQ2VudGVyPihhcmdzKSkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZVZhbHVlKDUwLiwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NT
X1BFUkNFTlRBR0UpOworICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9u
KCkuY3JlYXRlVmFsdWUoNTAuLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19QRVJD
RU5UQUdFKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gcmVzdWx0ID0gY29uc3VtZVBlcmNlbnQoYXJncywgVmFsdWVSYW5nZUFs
bCk7CkBAIC04MDMsNyArODAzLDcgQEAgc3RhdGljIGJvb2wgY29uc3VtZURlcHJlY2F0ZWRHcmFk
aWVudENvbAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHN0b3AubV9w
b3NpdGlvbiA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUocG9zaXRpb24s
IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19OVU1CRVIpOworICAgIHN0b3AubV9w
b3NpdGlvbiA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUocG9zaXRpb24s
IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX05VTUJFUik7CiAgICAgc3RvcC5tX2Nv
bG9yID0gY29uc3VtZURlcHJlY2F0ZWRHcmFkaWVudFN0b3BDb2xvcihhcmdzLCBjc3NQYXJzZXJN
b2RlKTsKICAgICByZXR1cm4gc3RvcC5tX2NvbG9yICYmIGFyZ3MuYXRFbmQoKTsKIH0KQEAgLTEw
ODEsOSArMTA4MSw5IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVDcm9zc0ZhZGUK
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBlcmNlbnRhZ2U7CiAgICAgY29uc3QgQ1NT
UGFyc2VyVG9rZW4mIHBlcmNlbnRhZ2VBcmcgPSBhcmdzLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNw
YWNlKCk7CiAgICAgaWYgKHBlcmNlbnRhZ2VBcmcudHlwZSgpID09IFBlcmNlbnRhZ2VUb2tlbikK
LSAgICAgICAgcGVyY2VudGFnZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFs
dWUoY2xhbXBUbzxkb3VibGU+KHBlcmNlbnRhZ2VBcmcubnVtZXJpY1ZhbHVlKCkgLyAxMDAsIDAs
IDEpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzOjpDU1NfTlVNQkVSKTsKKyAgICAgICAg
cGVyY2VudGFnZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUoY2xhbXBU
bzxkb3VibGU+KHBlcmNlbnRhZ2VBcmcubnVtZXJpY1ZhbHVlKCkgLyAxMDAsIDAsIDEpLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19OVU1CRVIpOwogICAgIGVsc2UgaWYgKHBlcmNl
bnRhZ2VBcmcudHlwZSgpID09IE51bWJlclRva2VuKQotICAgICAgICBwZXJjZW50YWdlID0gQ1NT
VmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShjbGFtcFRvPGRvdWJsZT4ocGVyY2Vu
dGFnZUFyZy5udW1lcmljVmFsdWUoKSwgMCwgMSksIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlw
ZXM6OkNTU19OVU1CRVIpOworICAgICAgICBwZXJjZW50YWdlID0gQ1NTVmFsdWVQb29sOjpzaW5n
bGV0b24oKS5jcmVhdGVWYWx1ZShjbGFtcFRvPGRvdWJsZT4ocGVyY2VudGFnZUFyZy5udW1lcmlj
VmFsdWUoKSwgMCwgMSksIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX05VTUJFUik7
CiAKICAgICBpZiAoIXBlcmNlbnRhZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTE4
MywxMSArMTE4MywxMSBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lSW1hZ2VTZXQo
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgaWYgKHRva2VuLnZhbHVlKCkg
IT0gIngiKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIEFTU0VSVCh0b2tl
bi51bml0VHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19VTktOT1dO
KTsKKyAgICAgICAgQVNTRVJUKHRva2VuLnVuaXRUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlOjpDU1NfVU5LTk9XTik7CiAgICAgICAgIGRvdWJsZSBpbWFnZVNjYWxlRmFjdG9y
ID0gdG9rZW4ubnVtZXJpY1ZhbHVlKCk7CiAgICAgICAgIGlmIChpbWFnZVNjYWxlRmFjdG9yIDw9
IDApCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaW1hZ2VTZXQtPmFwcGVu
ZChDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKGltYWdlU2NhbGVGYWN0b3Is
IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19OVU1CRVIpKTsKKyAgICAgICAgaW1h
Z2VTZXQtPmFwcGVuZChDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKGltYWdl
U2NhbGVGYWN0b3IsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX05VTUJFUikpOwog
ICAgIH0gd2hpbGUgKGNvbnN1bWVDb21tYUluY2x1ZGluZ1doaXRlc3BhY2UoYXJncykpOwogICAg
IGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTEyNTQsNyAr
MTI1NCw3IEBAIFJlZlB0cjxDU1NGdW5jdGlvblZhbHVlPiBjb25zdW1lRmlsdGVyRnUKICAgICAg
ICAgICAgICAgICBib29sIGlzUGVyY2VudGFnZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
PigqcGFyc2VkVmFsdWUpLmlzUGVyY2VudGFnZSgpOwogICAgICAgICAgICAgICAgIGRvdWJsZSBt
YXhBbGxvd2VkID0gaXNQZXJjZW50YWdlID8gMTAwLjAgOiAxLjA7CiAgICAgICAgICAgICAgICAg
aWYgKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqcGFyc2VkVmFsdWUpLmRvdWJsZVZhbHVl
KCkgPiBtYXhBbGxvd2VkKQotICAgICAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGUobWF4QWxsb3dlZCwgaXNQZXJjZW50YWdlID8gQ1NTUHJpbWl0
aXZlVmFsdWU6OlVuaXRUeXBlczo6Q1NTX1BFUkNFTlRBR0UgOiBDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGVzOjpDU1NfTlVNQkVSKTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1heEFsbG93ZWQsIGlzUGVyY2VudGFnZSA/IENT
U1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UgOiBDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGU6OkNTU19OVU1CRVIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJz
ZXIuY3BwCShyZXZpc2lvbiAyMDk3MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01l
ZGlhUXVlcnlQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsNyArMTg0LDcgQEAgdm9p
ZCBNZWRpYVF1ZXJ5UGFyc2VyOjpyZWFkRmVhdHVyZUNvbG9uKAogCiB2b2lkIE1lZGlhUXVlcnlQ
YXJzZXI6OnJlYWRGZWF0dXJlVmFsdWUoQ1NTUGFyc2VyVG9rZW5UeXBlIHR5cGUsIGNvbnN0IENT
U1BhcnNlclRva2VuJiB0b2tlbikKIHsKLSAgICBpZiAodHlwZSA9PSBEaW1lbnNpb25Ub2tlbiAm
JiB0b2tlbi51bml0VHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19V
TktOT1dOKQorICAgIGlmICh0eXBlID09IERpbWVuc2lvblRva2VuICYmIHRva2VuLnVuaXRUeXBl
KCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlOjpDU1NfVU5LTk9XTikKICAgICAgICAg
bV9zdGF0ZSA9IFNraXBVbnRpbENvbW1hOwogICAgIGVsc2UgewogICAgICAgICBpZiAobV9tZWRp
YVF1ZXJ5RGF0YS50cnlBZGRQYXJzZXJUb2tlbih0eXBlLCB0b2tlbikpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAkocmV2
aXNpb24gMjA5NzE3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0
ZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1mbG9hdCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6Y29tcHV0ZUxlbmd0aChk
b3VibGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgdHlwZSwgY29uc3QgRG9j
dW1lbnQmIGRvY3VtZW50KQorZmxvYXQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OmNvbXB1dGVMZW5n
dGgoZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgdHlwZSwgY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGF1dG8qIHJlbmRlcmVyID0gZG9jdW1lbnQucmVu
ZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5oCShyZXZpc2lvbiAyMDk3MTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIGZsb2F0IGxlbmd0aCgpOwog
CiAgICAgc3RhdGljIGZsb2F0IGRlZmF1bHRMZW5ndGgoY29uc3QgRG9jdW1lbnQmKTsKLSAgICBz
dGF0aWMgZmxvYXQgY29tcHV0ZUxlbmd0aChkb3VibGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVl
OjpVbml0VHlwZXMsIGNvbnN0IERvY3VtZW50Jik7CisgICAgc3RhdGljIGZsb2F0IGNvbXB1dGVM
ZW5ndGgoZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUsIGNvbnN0IERv
Y3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBwYXJzZShDU1NQYXJzZXJUb2tlblJhbmdl
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDIwOTcx
NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjUxLDcgKzI1MSw3IEBAIGJvb2wgU3R5bGVkRWxlbWVudDo6c2V0SW5saW5lU3R5bGVQ
cm9wZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTdHlsZWRFbGVtZW50OjpzZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgZG91YmxlIHZhbHVlLCBD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIHVuaXQsIGJvb2wgaW1wb3J0YW50KQorYm9vbCBT
dHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGUgdW5pdCwgYm9v
bCBpbXBvcnRhbnQpCiB7CiAgICAgZW5zdXJlTXV0YWJsZUlubGluZVN0eWxlKCkuc2V0UHJvcGVy
dHkocHJvcGVydHlJRCwgQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1
ZSwgdW5pdCksIGltcG9ydGFudCk7CiAgICAgaW5saW5lU3R5bGVDaGFuZ2VkKCk7CkBAIC0zODgs
NyArMzg4LDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjphZGRQcm9wZXJ0eVRvUHJlc2VudAogICAg
IHN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5SUQsIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCku
Y3JlYXRlSWRlbnRpZmllclZhbHVlKGlkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBTdHlsZWRFbGVt
ZW50OjphZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYgc3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgZG91YmxlIHZhbHVl
LCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIHVuaXQpCit2b2lkIFN0eWxlZEVsZW1lbnQ6
OmFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzJiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBkb3VibGUgdmFsdWUsIENT
U1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZSB1bml0KQogewogICAgIHN0eWxlLnNldFByb3BlcnR5
KHByb3BlcnR5SUQsIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUodmFsdWUs
IHVuaXQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAkocmV2aXNpb24g
MjA5NzE3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBzZXRJbmxpbmVT
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlSUQgaWRlbnRpZmllciwgYm9vbCBp
bXBvcnRhbnQgPSBmYWxzZSk7CiAgICAgYm9vbCBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1By
b3BlcnR5SUQsIENTU1Byb3BlcnR5SUQgaWRlbnRpZmllciwgYm9vbCBpbXBvcnRhbnQgPSBmYWxz
ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1By
b3BlcnR5SUQsIGRvdWJsZSB2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcywgYm9v
bCBpbXBvcnRhbnQgPSBmYWxzZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRJbmxpbmVT
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQsIGRvdWJsZSB2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlLCBib29sIGltcG9ydGFudCA9IGZhbHNlKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQgPSBmYWxzZSk7CiAgICAgYm9vbCByZW1vdmVJbmxpbmVT
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogICAgIHZvaWQgcmVtb3ZlQWxsSW5saW5lU3R5
bGVQcm9wZXJ0aWVzKCk7CkBAIC03NSw3ICs3NSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lkIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiwgQ1NTUHJvcGVydHlJRCwgQ1NT
VmFsdWVJRCBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiwgQ1NTUHJvcGVydHlJRCwgZG91
YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKTsKKyAgICB2b2lkIGFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JiwgQ1NTUHJvcGVydHlJRCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGUpOwogICAgIHZvaWQgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKE11
dGFibGVTdHlsZVByb3BlcnRpZXMmLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVl
KTsKIAogICAgIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVS
TD4mKSBjb25zdCBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhW
YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVl
LmNwcAkocmV2aXNpb24gMjA5NzE3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZh
bHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEyLDcgKzMxMiw3IEBAIFNWR0xlbmd0aFZhbHVl
IFNWR0xlbmd0aFZhbHVlOjpmcm9tQ1NTUHIKIAogUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBTVkdM
ZW5ndGhWYWx1ZTo6dG9DU1NQcmltaXRpdmVWYWx1ZShjb25zdCBTVkdMZW5ndGhWYWx1ZSYgbGVu
Z3RoKQogewotICAgIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgY3NzVHlwZSA9IENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfVU5LTk9XTjsKKyAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGUgY3NzVHlwZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVU5LTk9XTjsKICAgICBzd2l0Y2gg
KGxlbmd0aC51bml0VHlwZSgpKSB7CiAgICAgY2FzZSBMZW5ndGhUeXBlVW5rbm93bjoKICAgICAg
ICAgYnJlYWs7Cg==
</data>
<flag name="review"
          id="319311"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>