<?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>176011</bug_id>
          
          <creation_ts>2017-08-26 23:40:43 -0700</creation_ts>
          <short_desc>[iOS WK2] Web process crashes after changing selection to the end of the document when speaking a selection</short_desc>
          <delta_ts>2017-08-27 19:03:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>n_wang</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1342717</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-08-26 23:40:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/32614095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342723</commentid>
    <comment_count>1</comment_count>
      <attachid>319156</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-08-27 00:05:41 -0700</bug_when>
    <thetext>Created attachment 319156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342740</commentid>
    <comment_count>2</comment_count>
      <attachid>319156</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-08-27 16:49:46 -0700</bug_when>
    <thetext>Comment on attachment 319156
Patch

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

&gt; Source/WebCore/editing/Editing.cpp:1095
&gt; +VisiblePosition visiblePositionForPositionWithOffset(const VisiblePosition&amp; position, int32_t offset)

We should make this function take unsigned instead of int32_t. It&apos;s non-sensical to have a negative offset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342741</commentid>
    <comment_count>3</comment_count>
      <attachid>319156</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-08-27 16:55:30 -0700</bug_when>
    <thetext>Comment on attachment 319156
Patch

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

&gt;&gt; Source/WebCore/editing/Editing.cpp:1095
&gt;&gt; +VisiblePosition visiblePositionForPositionWithOffset(const VisiblePosition&amp; position, int32_t offset)
&gt; 
&gt; We should make this function take unsigned instead of int32_t. It&apos;s non-sensical to have a negative offset.

Sounds good! Changed to unsigned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342744</commentid>
    <comment_count>4</comment_count>
      <attachid>319156</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-08-27 17:13:10 -0700</bug_when>
    <thetext>Comment on attachment 319156
Patch

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

&gt;&gt;&gt; Source/WebCore/editing/Editing.cpp:1095
&gt;&gt;&gt; +VisiblePosition visiblePositionForPositionWithOffset(const VisiblePosition&amp; position, int32_t offset)
&gt;&gt; 
&gt;&gt; We should make this function take unsigned instead of int32_t. It&apos;s non-sensical to have a negative offset.
&gt; 
&gt; Sounds good! Changed to unsigned.

Actually, a call site of visiblePositionForPositionWithOffset in AXObjectCache.cpp takes in a negative integer -- we&apos;ll change this to be an int instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342746</commentid>
    <comment_count>5</comment_count>
      <attachid>319163</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-08-27 17:41:09 -0700</bug_when>
    <thetext>Created attachment 319163
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342750</commentid>
    <comment_count>6</comment_count>
      <attachid>319163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-27 18:22:59 -0700</bug_when>
    <thetext>Comment on attachment 319163
Patch for landing

Clearing flags on attachment: 319163

Committed r221233: &lt;http://trac.webkit.org/changeset/221233&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319156</attachid>
            <date>2017-08-27 00:05:41 -0700</date>
            <delta_ts>2017-08-27 16:49:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176011-20170827000540.patch</filename>
            <type>text/plain</type>
            <size>24038</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZiNDlkZDMzZTdiMWVl
NzY2Y2M1YThjMmUwZjM3NDc2NmI5NzBjYi4uYjVjNWE3NmRhY2RmZTdjZmY3NTQzMGM2YjUxZTA4
YWUyZmYwOGY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTA4LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBX
ZWIgcHJvY2VzcyBjcmFzaGVzIGFmdGVyIGNoYW5naW5nIHNlbGVjdGlvbiB0byB0aGUgZW5kIG9m
IHRoZSBkb2N1bWVudCB3aGVuIHNwZWFraW5nIGEgc2VsZWN0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMTEKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzMyNjE0MDk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZHMgYSBudWxsIGNoZWNrIHRvIHZpc2libGVQb3NpdGlvbkZvclBvc2l0aW9u
V2l0aE9mZnNldC4gVGhpcyBpcyBhIGNyYXNoIHBvaW50IGZvciBhY2Nlc3NpYmlsaXR5IGNvZGVw
YXRocywKKyAgICAgICAgc2luY2UgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24gaXMgbm90IGd1YXJh
bnRlZWQgdG8gc2V0IHRoZSBnaXZlbiBgcm9vdGAgb3V0cGFyYW0gdG8gYSBub24tbnVsbCB2YWx1
ZSwgeWV0CisgICAgICAgIHZpc2libGVQb3NpdGlvbkZvckluZGV4IHJlcXVpcmVzIHJvb3QgdG8g
YmUgbm9uLW51bGwuIFRoaXMgY2F1c2VzIGEgY3Jhc2ggd2hlbiBzZWxlY3Rpbmcgc29tZSB0ZXh0
LCBoaXR0aW5nCisgICAgICAgICdTcGVhaycsIGFuZCB0aGVuIGNoYW5naW5nIHRoZSBzZWxlY3Rp
b24gdG8gc29tZXdoZXJlIG5lYXIgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQsIHNpbmNlIGFjY2Vz
c2liaWxpdHkgY29kZQorICAgICAgICB3aWxsIGF0dGVtcHQgdG8gc3BlYWsgd29yZHMgYXQgYW4g
b2Zmc2V0IHBhc3QgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuIFdoaWxlIHRoaXMgaXMgYSBidWcg
aW4gYW5kIG9mIGl0c2VsZiwgdGhlCisgICAgICAgIHdlYiBwcm9jZXNzIHNob3VsZCBzdGlsbCBo
YW5kbGUgdGhpcyBjYXNlIGdyYWNlZnVsbHkgYW5kIG5vdCBjcmFzaC4gVG8gZml4IHRoaXMsIHdl
IHNpbXBseSBiYWlsIGFuZCByZXR1cm4gYQorICAgICAgICBudWxsIFZpc2libGVQb3NpdGlvbiBp
ZiBhIHJvb3QgY29udGFpbmVyIG5vZGUgd2FzIG5vdCBmb3VuZC4KKworICAgICAgICBDdXJyZW50
bHksIHZpc2libGVQb3NpdGlvbkZvclBvc2l0aW9uV2l0aE9mZnNldCBpcyBpbXBsZW1lbnRlZCB0
d2ljZSwgaW4gV2ViQ29yZSAoQVhPYmplY3RDYWNoZS5jcHApIGFuZCBhbHNvIGluCisgICAgICAg
IFdlYktpdCAoV2ViUGFnZUlPUy5tbSksIGFzIGlkZW50aWNhbCBzdGF0aWMgZnVuY3Rpb25zLiBU
aGlzIHBhdGNoIG1vdmVzIHRoaXMgaGVscGVyIGludG8gRWRpdGluZy5jcHAgYW5kIHJlbW92ZXMK
KyAgICAgICAgaXQgZnJvbSBBWE9iamVjdENhY2hlIGFuZCBXZWJQYWdlSU9TLgorCisgICAgICAg
IFRlc3RzOiBBY2Nlc3NpYmlsaXR5VGVzdHMuUmVjdHNGb3JTcGVha2luZ1NlbGVjdGlvbkJhc2lj
CisgICAgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5VGVzdHMuUmVjdHNGb3JTcGVha2luZ1NlbGVj
dGlvbldpdGhMaW5lV3JhcHBpbmcKKyAgICAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlUZXN0cy5S
ZWN0c0ZvclNwZWFraW5nU2VsZWN0aW9uRG9Ob3RDcmFzaFdoZW5DaGFuZ2luZ1NlbGVjdGlvbgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnZpc2libGVQb3NpdGlvbkZvclBvc2l0aW9uV2l0aE9mZnNldCk6IERlbGV0ZWQuCisg
ICAgICAgICogZWRpdGluZy9FZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZpc2libGVQ
b3NpdGlvbkZvclBvc2l0aW9uV2l0aE9mZnNldCk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5n
Lmg6CisKIDIwMTctMDgtMjYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjIwMTA1KTogU3RvcmFnZSBzZXJ2aWNlIGFwcGVhcnMgaW4gbWFj
T1MgQWN0aXZpdHkgTW9uaXRvciBhcyDigJxsb2NhbGl6ZWQgc3RyaW5nIG5vdCBmb3VuZOKAnQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAwOWMzMDM4ZGFmZTg2Y2IyMTZmMjdkNjRmOGYzM2U2ZDk1NDIwN2MwLi4xNDdj
ZTAzMDY4YjdjMzlmODNlZjZlNjlhMjY5ZGViNGJjNDRiMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDE3LTA4LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1MgV0syXSBXZWIgcHJvY2VzcyBjcmFzaGVzIGFmdGVyIGNoYW5naW5n
IHNlbGVjdGlvbiB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCB3aGVuIHNwZWFraW5nIGEgc2Vs
ZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzYwMTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNjE0MDk1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYW4gU1BJIGhvb2sgdG8gdGVz
dCBhY2Nlc3NpYmlsaXR5IGNvZGVwYXRocyB3aGVuIHNwZWFraW5nIHNlbGVjdGVkIGNvbnRlbnQu
IFRoaXMgcGF0Y2ggZG9lcyBzb21lIG1pbm9yCisgICAgICAgIHJlZmFjdG9yaW5nIGJ5IGludHJv
ZHVjaW5nIF9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OndpdGhU
ZXh0OmNvbXBsZXRpb25IYW5kbGVyOiwgd2hpY2ggdGFrZXMKKyAgICAgICAgYW5kIGludm9rZXMg
YSBjb21wbGV0aW9uIGhhbmRsZXIgYmxvY2suIFRoZSBleGlzdGluZyBfYWNjZXNzaWJpbGl0eVJl
dHJpZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDp3aXRoVGV4dDoKKyAgICAgICAgbWV0aG9kIHNp
bXBseSB0dXJucyBhcm91bmQgYW5kIGNhbGxzIHRoZSBmb3JtZXIgdmFyaWFudCB3aXRoIGBuaWxg
IGFzIGEgY29tcGxldGlvbiBoYW5kbGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfYWNjZXNzaWJpbGl0eVJldHJp
ZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDp3aXRoVGV4dDpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0
OndpdGhUZXh0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9hY2Nlc3NpYmlsaXR5UmV0
cmlldmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OndpdGhUZXh0OmNvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6dmlzaWJsZVBvc2l0aW9uRm9yUG9zaXRpb25XaXRoT2Zmc2V0KTogRGVsZXRl
ZC4KKwogMjAxNy0wOC0yNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFkZCBXS1VJRGVsZWdhdGVQcml2YXRlIGVxdWl2YWxlbnQgb2YgV0tQ
YWdlVUlDbGllbnQncyBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA3OGM4OTBhZjdk
NmUwMWY2ZDJmODIxZjUwMjY5OGM2NTllZjc0NDc0Li41MjYzMjZkODk1Mjk4NzEyYmU3Y2Y1NGY2
MDQyMDI2ZWVkNTJhOTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKQEAgLTE3MjcsMTMgKzE3MjcsNiBAQCBSZWZQdHI8UmFuZ2U+IEFYT2Jq
ZWN0Q2FjaGU6OnJhbmdlRm9yTm9kZUNvbnRlbnRzKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIFdU
Rk1vdmUocmFuZ2UpOwogfQogICAgIAotc3RhdGljIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9z
aXRpb25Gb3JQb3NpdGlvbldpdGhPZmZzZXQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
biwgaW50MzJfdCBvZmZzZXQpCi17Ci0gICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHJvb3Q7Ci0g
ICAgdW5zaWduZWQgc3RhcnRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9u
LCByb290KTsKLSAgICByZXR1cm4gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCAr
IG9mZnNldCwgcm9vdC5nZXQoKSk7Ci19Ci0gICAgCiBSZWZQdHI8UmFuZ2U+IEFYT2JqZWN0Q2Fj
aGU6OnJhbmdlTWF0Y2hlc1RleHROZWFyUmFuZ2UoUmVmUHRyPFJhbmdlPiBvcmlnaW5hbFJhbmdl
LCBjb25zdCBTdHJpbmcmIG1hdGNoVGV4dCkKIHsKICAgICBpZiAoIW9yaWdpbmFsUmFuZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAppbmRleCA1NzQwOTdhNmVjZDA4Mzg1MzFkODNiZDBm
MWI0Zjg2ODRhYmRiZDM4Li4yOTc3MjEwNDZkZmYwYWM2ODFlZTE3ZGU2NDQwYzEzNGRiOWI0YjVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKQEAgLTEwOTIsNiArMTA5MiwxNiBAQCBp
bnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oTm9kZSYgbm9kZSwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiB2aXNpYmxlUG9zaXRpb24sCiAgICAgcmV0dXJuIFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5n
dGgocmFuZ2UucHRyKCksIGZvclNlbGVjdGlvblByZXNlcnZhdGlvbik7CiB9CiAKK1Zpc2libGVQ
b3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb3NpdGlvbldpdGhPZmZzZXQoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbiwgaW50MzJfdCBvZmZzZXQpCit7CisgICAgUmVmUHRyPENvbnRh
aW5lck5vZGU+IHJvb3Q7CisgICAgdW5zaWduZWQgc3RhcnRJbmRleCA9IGluZGV4Rm9yVmlzaWJs
ZVBvc2l0aW9uKHBvc2l0aW9uLCByb290KTsKKyAgICBpZiAoIXJvb3QpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICByZXR1cm4gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCAr
IG9mZnNldCwgcm9vdC5nZXQoKSk7Cit9CisKIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRp
b25Gb3JJbmRleChpbnQgaW5kZXgsIENvbnRhaW5lck5vZGUqIHNjb3BlKQogewogICAgIGF1dG8g
cmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKHNjb3BlLCBp
bmRleCwgMCwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5oCmluZGV4IGVhZTQ4YzBiYmYy
M2M3NWEyNDgyYzMxZmQ1OGMxNTgwYzFjMGUwZTIuLjA5Zjc2NjJlNGM1M2JmZTFjNDRjNWEyZDg5
YjZlZWU2NGZhNzJmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Zy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5oCkBAIC0xNDYsNiArMTQ2
LDcgQEAgaW50IGNvbXBhcmVQb3NpdGlvbnMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJik7CiAKIFdFQkNPUkVfRVhQT1JUIGludCBpbmRleEZvclZpc2libGVQ
b3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBSZWZQdHI8Q29udGFpbmVyTm9kZT4mIHNj
b3BlKTsKIGludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihOb2RlJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiwgYm9vbCBmb3JTZWxlY3Rpb25QcmVzZXJ2YXRpb24pOworV0VCQ09SRV9FWFBPUlQg
VmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvc2l0aW9uV2l0aE9mZnNldChjb25z
dCBWaXNpYmxlUG9zaXRpb24mLCBpbnQzMl90IG9mZnNldCk7CiBXRUJDT1JFX0VYUE9SVCBWaXNp
YmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50IGluZGV4LCBDb250YWluZXJO
b2RlKiBzY29wZSk7CiBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXhVc2lu
Z0NoYXJhY3Rlckl0ZXJhdG9yKE5vZGUmLCBpbnQgaW5kZXgpOyAvLyBGSVhNRTogV2h5IGRvIHdl
IG5lZWQgdGhpcyB2ZXJzaW9uPwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQppbmRleCA1ZTU5OWMwODU1YjUyOTIyZDU4OTk3ZjAzY2RlZjkyMTk4
MWMxNTk5Li4xYTFmNjBkMjE3MDU2YjUzNDllYjRjZDI2MmM5ZDhiMzBiNzg5NmVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU0MDEs
NiArNTQwMSwxOCBAQCAtICh2b2lkKV9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246
KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2bwogICAgIH0gZm9yUmVxdWVzdDpp
bmZvUmVxdWVzdF07CiB9CiAKKy0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzQXRT
ZWxlY3Rpb25PZmZzZXQ6KE5TSW50ZWdlcilvZmZzZXQgd2l0aFRleHQ6KE5TU3RyaW5nICopdGV4
dCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0cykp
Y29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBbX2NvbnRlbnRWaWV3IF9hY2Nlc3NpYmlsaXR5UmV0
cmlldmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0Om9mZnNldCB3aXRoVGV4dDp0ZXh0IGNvbXBsZXRp
b25IYW5kbGVyOltjYXB0dXJlZENvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb25IYW5kbGVyKV0gKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25SZWN0PiYgc2Vs
ZWN0aW9uUmVjdHMpIHsKKyAgICAgICAgaWYgKCFjYXB0dXJlZENvbXBsZXRpb25IYW5kbGVyKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvIHJlY3RWYWx1ZXMgPSBhZG9wdE5TKFtb
TlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c2VsZWN0aW9uUmVjdHMuc2l6
ZSgpXSk7CisgICAgICAgIGZvciAoYXV0byYgc2VsZWN0aW9uUmVjdCA6IHNlbGVjdGlvblJlY3Rz
KQorICAgICAgICAgICAgW3JlY3RWYWx1ZXMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENH
UmVjdDpzZWxlY3Rpb25SZWN0LnJlY3QoKV1dOworICAgICAgICBjYXB0dXJlZENvbXBsZXRpb25I
YW5kbGVyKHJlY3RWYWx1ZXMuZ2V0KCkpOworICAgIH1dOworfQorCiAtIChDR1JlY3QpX2NvbnRl
bnRWaXNpYmxlUmVjdAogewogICAgIHJldHVybiBbc2VsZiBjb252ZXJ0UmVjdDpbc2VsZiBib3Vu
ZHNdIHRvVmlldzpzZWxmLl9jdXJyZW50Q29udGVudFZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMDE2Zjk0
OTIzMzRjZTM2M2JhMDU5MjA2MjRhMDVmZTFjMDY2NzUzNi4uYTNhZmNjYTJjMTRjOGEyYTNlYTE4
Mzk1YzllZGUwZGQ4MDgxZGViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zNzcsNiArMzc3LDcgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX2RyYWdDYXJldFJlY3QgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVu
dEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKSlibG9jayBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9u
T2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8TlNWYWx1ZSAqPiAqcmVjdHMpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlmIC8v
IFRBUkdFVF9PU19JUEhPTkUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDBjNTMwMGVkZWQ2YmM1YWRhZTA1
ZmQ3ZTg1OWJjMzRiMzI3OWRjMWUuLjJkZTYyMDdmNzhmMzM0ZTQ5ZjY0YjExODQyNDQ3NTcwYzQ4
MGUxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTU4LDYgKzU4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQ29sb3I7CiBjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBJbnRTaXplOworY2xhc3Mg
U2VsZWN0aW9uUmVjdDsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zMzEsNiAr
MzMyLDcgQEAgRk9SX0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRW
SUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtIChOU0FycmF5PE5TVmFsdWUgKj4gKilfdWlUZXh0
U2VsZWN0aW9uUmVjdHM7CiAtICh2b2lkKWFjY2Vzc2liaWxpdHlSZXRyaWV2ZVNwZWFrU2VsZWN0
aW9uQ29udGVudDsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzRW5jbG9zaW5n
U2VsZWN0aW9uT2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhHcmFudWxhcml0eTooVUlUZXh0
R3JhbnVsYXJpdHkpZ3JhbnVsYXJpdHk7CistICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVS
ZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmlu
ZyAqKXRleHQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpTZWxlY3Rpb25SZWN0PiYgcmVjdHMpKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfYWNj
ZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNl
dCB3aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gY3VycmVudFBv
c2l0aW9uSW5mb3JtYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBkMTMxOTQyNGZkNjEwZjgzYTFi
NjlkMGMxZjE1Y2M3NWE0M2U3YjM3Li5kMzJmOGQ0MWViNjQ1N2IwZDVkNTc3Y2M4MjM5MTU2MDFj
MTQxYzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTIyODAsOCArMjI4MCwxNiBAQCAtICh2b2lkKV9h
Y2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0VuY2xvc2luZ1NlbGVjdGlvbk9mZnNldDooTlNJbnRl
Z2VyKW9mZnNldCB3aQogCiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2Vs
ZWN0aW9uT2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQK
IHsKKyAgICBbc2VsZiBfYWNjZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNl
dDpvZmZzZXQgd2l0aFRleHQ6dGV4dCBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworfQorCistICh2
b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OihOU0ludGVn
ZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKGNvbnN0IFZlY3RvcjxTZWxlY3Rpb25SZWN0PiYgcmVjdHMpKWNvbXBsZXRpb25IYW5k
bGVyCit7CiAgICAgUmV0YWluUHRyPFdLQ29udGVudFZpZXc+IHZpZXcgPSBzZWxmOwotICAgIF9w
YWdlLT5yZXF1ZXN0UmVjdHNBdFNlbGVjdGlvbk9mZnNldFdpdGhUZXh0KG9mZnNldCwgdGV4dCwg
W3ZpZXcsIG9mZnNldF0oY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+JiBzZWxl
Y3Rpb25SZWN0cywgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9wYWdlLT5yZXF1
ZXN0UmVjdHNBdFNlbGVjdGlvbk9mZnNldFdpdGhUZXh0KG9mZnNldCwgdGV4dCwgW3ZpZXcsIG9m
ZnNldCwgY2FwdHVyZWRDb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildKGNvbnN0IFZlY3RvcjxTZWxlY3Rpb25SZWN0PiYgc2VsZWN0aW9uUmVjdHMsIENh
bGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAgaWYgKGNhcHR1cmVkQ29tcGxldGlv
bkhhbmRsZXIpCisgICAgICAgICAgICBjYXB0dXJlZENvbXBsZXRpb25IYW5kbGVyKHNlbGVjdGlv
blJlY3RzKTsKKwogICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yOjpOb25lKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoW3ZpZXcgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfYWNjZXNzaWJpbGl0eURpZEdldFNlbGVjdGlvblJlY3Rz
OndpdGhHcmFudWxhcml0eTphdE9mZnNldDopXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggOTM4NjNiMDUxN2ViMTRkZjE5
NGEyMmRlNTdiMzE0YjE0Y2IwZTViZi4uYzg0NTg2OWE4ZTZjZGZhZTNhNzM0MGZmNzMxYWM0N2Yw
NGE3NzFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTE4NDMsMTMgKzE4NDMsNiBAQCB2b2lkIFdlYlBhZ2U6Om1vdmVT
ZWxlY3Rpb25CeU9mZnNldChpbnQzMl90IG9mZnNldCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Vm9pZENhbGxiYWNrKGNhbGxiYWNrSUQp
KTsKIH0KIAotc3RhdGljIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb3NpdGlv
bldpdGhPZmZzZXQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbiwgaW50MzJfdCBvZmZz
ZXQpCi17Ci0gICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHJvb3Q7Ci0gICAgdW5zaWduZWQgc3Rh
cnRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uLCByb290KTsKLSAgICBy
ZXR1cm4gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCArIG9mZnNldCwgcm9vdC5n
ZXQoKSk7Ci19Ci0KIHZvaWQgV2ViUGFnZTo6Z2V0UmVjdHNGb3JHcmFudWxhcml0eVdpdGhTZWxl
Y3Rpb25PZmZzZXQodWludDMyX3QgZ3JhbnVsYXJpdHksIGludDMyX3Qgb2Zmc2V0LCBDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZTJjZWE4OGVlNDRmMDE5MTk5NDBhODUxNzBjYzg2
ODc5MTYwMGJlLi5iZmQwMTI3Njg5ZmY0NWI0MTUyYmI3ZjdkMTBlMDUxMzM3NDk5MWJiIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTctMDgtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPUyBXSzJdIFdlYiBwcm9jZXNzIGNyYXNoZXMgYWZ0ZXIgY2hhbmdpbmcg
c2VsZWN0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50IHdoZW4gc3BlYWtpbmcgYSBzZWxl
Y3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NjAxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI2MTQwOTU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlcyBBY2Nlc3NpYmlsaXR5
VGVzdHMsIGFuZCBhZGRzIHRocmVlIG5ldyB0ZXN0cyB0aGF0IHRyYXZlcnNlIHNlbGVjdGlvbi1y
ZWN0LWZpbmRpbmcgY29kZXBhdGhzIHdoZW4KKyAgICAgICAgc3BlYWtpbmcgc2VsZWN0ZWQgY29u
dGVudC4gU2VlIFdlYktpdCBhbmQgV2ViQ29yZSBDaGFuZ2VMb2dzIGZvciBtb3JlIGRldGFpbC4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0FjY2Vzc2liaWxp
dHlUZXN0c0lPUy5tbTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyByZWN0c0F0U2VsZWN0
aW9uT2Zmc2V0OndpdGhUZXh0Ol0pOgorICAgICAgICAoY2hlY2tDR1JlY3RWYWx1ZUF0SW5kZXgp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDgtMjUgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIExvZ2dlcjo6bG9n
QWx3YXlzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0OGIyODVmZDM5ZWJjY2M3MjcxZDRk
ZGI1YWY2N2QwY2NjYjIwM2YuLjVhN2Y0YjdmYWVlMGFkM2EzMWJmOTFjNGUzNWM5ZDUyMDFmZDdm
NmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04Niw2ICs4Niw3IEBACiAJCTJFMURGREVE
MUQ0MkE1MTEwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURGREVDMUQ0
MkE0MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sICovOyB9OwogCQky
RTFERkRFRjFENDJBNkYyMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3Bs
YXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8t
YXV0b3BsYXkuaHRtbCAqLzsgfTsKIAkJMkUxREZERjExRDQyRTFFNDAwNzE0QTAwIC8qIGxhcmdl
LXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURGREYw
MUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxh
eS1hZnRlci1lbmRpbmcuaHRtbCAqLzsgfTsKKwkJMkUyMDVCQTQxRjUyNzc0NjAwNTk1MkREIC8q
IEFjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFMjA1QkEzMUY1Mjc3NDYwMDU5NTJERCAvKiBBY2Nlc3NpYmlsaXR5
VGVzdHNJT1MubW0gKi87IH07CiAJCTJFNTRGNDBEMUQ3QkM4NDIwMDkyMUFERiAvKiBsYXJnZS12
aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTU0RjQwQzFEN0JDODM5MDA5MjFBREYgLyogbGFyZ2Ut
dmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwgKi87IH07CiAJCTJFNjkxQUVBMUQ3OEI1MzYwMDEy
OTQwNyAvKiBsYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2OTFB
RTgxRDc4QjUyQjAwMTI5NDA3IC8qIGxhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29u
dHJvbHMuaHRtbCAqLzsgfTsKIAkJMkU2OTFBRUIxRDc4QjUzNjAwMTI5NDA3IC8qIGxhcmdlLXZp
ZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2OTFBRTkxRDc4QjUyQjAwMTI5
NDA3IC8qIGxhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzLmh0bWwgKi87
IH07CkBAIC0xMTA5LDYgKzExMTAsNyBAQAogCQkyRTFERkRFQzFENDJBNDFDMDA3MTRBMDAgLyog
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkUxREZERUUxRDQyQTZFQjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlv
LWF1dG9wbGF5Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW9z
LXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJFMURGREYwMUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmlu
Zy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMjA1QkEzMUY1Mjc3NDYwMDU5NTJE
RCAvKiBBY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nl
c3NpYmlsaXR5VGVzdHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNTRG
NDBDMUQ3QkM4MzkwMDkyMUFERiAvKiBsYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjkxQUU4MUQ3OEI1MkIwMDEy
OTQwNyAvKiBsYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW9zLXBhdXNlZC12aWRlby1oaWRl
cy1jb250cm9scy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2OTFBRTkx
RDc4QjUyQjAwMTI5NDA3IC8qIGxhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRy
b2xzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW9zLXBsYXlp
bmctdmlkZW8ta2VlcHMtY29udHJvbHMuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMDY3LDYgKzIwNjksNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKIAkJCQlBMUM0RkI2RjFCQUNDRUZBMDAzNzQyRDAgLyogUmVzb3VyY2VzICovLAorCQkJCTJF
MjA1QkEzMUY1Mjc3NDYwMDU5NTJERCAvKiBBY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW0gKi8sCiAJ
CQkJRjQ1QjYzRkMxRjE5RDQxMDAwOUQzOEI5IC8qIEFjdGlvblNoZWV0VGVzdHMubW0gKi8sCiAJ
CQkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tICov
LAogCQkJCTc1NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBNZW1vcnlDYWNoZUFkZEltYWdlVG9D
YWNoZUlPUy5tbSAqLywKQEAgLTI2MDcsMTAgKzI2MTAsMTAgQEAKIAkJCQlDMDdFNkNBRDEzRkQ2
NzY1MDAzOEIyMkIgLyogbWFjICovLAogCQkJCUMwODU4N0Y5MTNGRUMzOUIwMDFFRjRFNSAvKiBU
ZXN0V2ViS2l0QVBJICovLAogCQkJCTQ0MEExRDM2MTRBMDEwMDAwMDhBNjZGMiAvKiBXZWJDb3Jl
ICovLAotCQkJCUNEQzhFNDk4MUJDNzI4QUUwMDU5NEZFQyAvKiBXZWJLaXRMZWdhY3kgKi8sCiAJ
CQkJQkM5MDk2NDExMjU1NjE2MDAwMDgzNzU2IC8qIFdlYktpdCAqLywKIAkJCQkxQUJDM0RFQzE4
OTlCRTU1MDA0RjA2MjYgLyogV2ViS2l0IENvY29hICovLAogCQkJCUJDM0M0QzZGMTQ1NzVCMUQw
MDI1RkI2MiAvKiBXZWJLaXQgT2JqZWN0aXZlLUMgKi8sCisJCQkJQ0RDOEU0OTgxQkM3MjhBRTAw
NTk0RkVDIC8qIFdlYktpdExlZ2FjeSAqLywKIAkJCQlCQzkwOTY0NjEyNTU2MTg5MDAwODM3NTYg
LyogV1RGICovLAogCQkJKTsKIAkJCXBhdGggPSBUZXN0czsKQEAgLTMwNzQsNiArMzA3Nyw3IEBA
CiAJCQkJN0NFRkE5NjYxQUMwQjlFMjAwQjkxMEZEIC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNDFBNDExQUU2MDA0NDdDNEMgLyog
QWJvdXRCbGFua0xvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjMxQTQxMUE3RTAw
NDQ3QzRDIC8qIEFjY2VwdHNGaXJzdE1vdXNlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkUyMDVC
QTQxRjUyNzc0NjAwNTk1MkREIC8qIEFjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUY0NUI2M0ZFMUYxOUQ0MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3RzLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzdFN0RENjQxRUEwNkZGMjAwOUIzOTZEIC8qIEFkZGl0aW9u
YWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTkwOUE3RDFE
ODc3NDgwMDA3RTEwRjggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3Rz
SU9TLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3Rz
SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAxMTQyNjZlMWUwYTAzNDM0MWFlMTFiOTA2YTFhMzI2MjgyNzUx
NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY2Nl
c3NpYmlsaXR5VGVzdHNJT1MubW0KQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1MpICYmIFdLX0FQSV9FTkFCTEVECisK
KyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3Lmgi
CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCitAaW1wbGVtZW50YXRpb24g
V0tXZWJWaWV3IChXS0FjY2Vzc2liaWxpdHlUZXN0aW5nKQorLSAoTlNBcnJheTxOU1ZhbHVlICo+
ICopcmVjdHNBdFNlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoVGV4dDooTlNT
dHJpbmcgKil0ZXh0Cit7CisgICAgX19ibG9jayBSZXRhaW5QdHI8TlNBcnJheT4gc2VsZWN0aW9u
UmVjdHM7CisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbc2VsZiBfYWNjZXNz
aWJpbGl0eVJldHJpZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDpvZmZzZXQgd2l0aFRleHQ6dGV4
dCBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8TlNWYWx1ZSAqPiAqcmVjdHMpIHsKKyAgICAg
ICAgc2VsZWN0aW9uUmVjdHMgPSByZWN0czsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICByZXR1cm4gc2VsZWN0
aW9uUmVjdHMuYXV0b3JlbGVhc2UoKTsKK30KK0BlbmQKKworc3RhdGljIHZvaWQgY2hlY2tDR1Jl
Y3RWYWx1ZUF0SW5kZXgoTlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0VmFsdWVzLCBDR1JlY3QgZXhw
ZWN0ZWRSZWN0LCBOU1VJbnRlZ2VyIGluZGV4KQoreworICAgIEVYUEVDVF9MVChpbmRleCwgcmVj
dFZhbHVlcy5jb3VudCk7CisgICAgYXV0byBvYnNlcnZlZFJlY3QgPSBbcmVjdFZhbHVlc1tpbmRl
eF0gQ0dSZWN0VmFsdWVdOworICAgIEVYUEVDVF9FUShleHBlY3RlZFJlY3Qub3JpZ2luLngsIG9i
c2VydmVkUmVjdC5vcmlnaW4ueCk7CisgICAgRVhQRUNUX0VRKGV4cGVjdGVkUmVjdC5vcmlnaW4u
eSwgb2JzZXJ2ZWRSZWN0Lm9yaWdpbi55KTsKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRSZWN0LnNp
emUud2lkdGgsIG9ic2VydmVkUmVjdC5zaXplLndpZHRoKTsKKyAgICBFWFBFQ1RfRVEoZXhwZWN0
ZWRSZWN0LnNpemUuaGVpZ2h0LCBvYnNlcnZlZFJlY3Quc2l6ZS5oZWlnaHQpOworfQorCituYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoQWNjZXNzaWJpbGl0eVRlc3RzLCBSZWN0c0Zv
clNwZWFraW5nU2VsZWN0aW9uQmFzaWMpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAs
IDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8bWV0
YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2Nh
bGU9MSc+PHNwYW4gaWQ9J2ZpcnN0Jz5maXJzdDwvc3Bhbj48c3BhbiBpZD0nc2Vjb25kJz4gc2Vj
b25kPC9zcGFuPjxicj48c3BhbiBpZD0ndGhpcmQnPiB0aGlyZDwvc3Bhbj4iXTsKKyAgICBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1NlbGVjdEFsbCcpIl07CisKKyAgICBjaGVja0NHUmVjdFZhbHVlQXRJbmRleChbd2ViVmlldyBy
ZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OjAgd2l0aFRleHQ6QCJmaXJzdCJdLCBDR1JlY3RNYWtlKDgs
IDgsIDI2LCAxOSksIDApOworICAgIGNoZWNrQ0dSZWN0VmFsdWVBdEluZGV4KFt3ZWJWaWV3IHJl
Y3RzQXRTZWxlY3Rpb25PZmZzZXQ6NiB3aXRoVGV4dDpAInNlY29uZCJdLCBDR1JlY3RNYWtlKDM3
LCA4LCA0NiwgMTkpLCAwKTsKKyAgICBjaGVja0NHUmVjdFZhbHVlQXRJbmRleChbd2ViVmlldyBy
ZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OjEzIHdpdGhUZXh0OkAidGhpcmQiXSwgQ0dSZWN0TWFrZSg4
LCAyNywgMzEsIDIwKSwgMCk7Cit9CisKK1RFU1QoQWNjZXNzaWJpbGl0eVRlc3RzLCBSZWN0c0Zv
clNwZWFraW5nU2VsZWN0aW9uV2l0aExpbmVXcmFwcGluZykKK3sKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpAIjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSd3aWR0aD1kZXZpY2Utd2lkdGgs
aW5pdGlhbC1zY2FsZT0xJz48Ym9keSBzdHlsZT0nZm9udC1zaXplOiAxMDBweDsgd29yZC13cmFw
OiBicmVhay13b3JkJz48c3BhbiBpZD0ndGV4dCc+YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo8
L3NwYW4+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJkb2N1bWVudC5leGVjQ29tbWFuZCgnU2VsZWN0QWxsJykiXTsKKworICAgIE5TQXJyYXk8
TlNWYWx1ZSAqPiAqcmVjdHMgPSBbd2ViVmlldyByZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OjAgd2l0
aFRleHQ6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJdOworICAgIGNoZWNrQ0dSZWN0VmFs
dWVBdEluZGV4KHJlY3RzLCBDR1JlY3RNYWtlKDgsIDgsIDMwNCwgMTE0KSwgMCk7CisgICAgY2hl
Y2tDR1JlY3RWYWx1ZUF0SW5kZXgocmVjdHMsIENHUmVjdE1ha2UoOCwgMTIyLCAzMDQsIDExNyks
IDEpOworICAgIGNoZWNrQ0dSZWN0VmFsdWVBdEluZGV4KHJlY3RzLCBDR1JlY3RNYWtlKDgsIDIz
OSwgMzA0LCAxMTcpLCAyKTsKKyAgICBjaGVja0NHUmVjdFZhbHVlQXRJbmRleChyZWN0cywgQ0dS
ZWN0TWFrZSg4LCAzNTYsIDMwNCwgMTE3KSwgMyk7CisgICAgY2hlY2tDR1JlY3RWYWx1ZUF0SW5k
ZXgocmVjdHMsIENHUmVjdE1ha2UoOCwgNDczLCAxNDUsIDExNyksIDQpOworfQorCitURVNUKEFj
Y2Vzc2liaWxpdHlUZXN0cywgUmVjdHNGb3JTcGVha2luZ1NlbGVjdGlvbkRvTm90Q3Jhc2hXaGVu
Q2hhbmdpbmdTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCld
KTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8bWV0YSBuYW1l
PSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSc+
PHNwYW4gaWQ9J2ZpcnN0Jz5maXJzdDwvc3Bhbj48c3BhbiBpZD0nc2Vjb25kJz4gc2Vjb25kPC9z
cGFuPjxicj48c3BhbiBpZD0ndGhpcmQnPiB0aGlyZDwvc3Bhbj4iXTsKKworICAgIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KHRoaXJkLCAwLCB0aGlyZCwgMSkiXTsKKyAgICBFWFBFQ1RfRVEoMFVMLCBbd2ViVmll
dyByZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OjEzIHdpdGhUZXh0OkAidGhpcmQiXS5jb3VudCk7Cisg
ICAgRVhQRUNUX1dLX1NUUkVRKCJ0aGlyZCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIl0pOworCisgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJh
bmdlcygpIl07CisgICAgRVhQRUNUX0VRKDBVTCwgW3dlYlZpZXcgcmVjdHNBdFNlbGVjdGlvbk9m
ZnNldDoxMyB3aXRoVGV4dDpAInRoaXJkIl0uY291bnQpOworICAgIEVYUEVDVF9XS19TVFJFUSgi
IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkiXSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykgJiYgV0tfQVBJX0VOQUJMRUQKKwo=
</data>
<flag name="review"
          id="339484"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319163</attachid>
            <date>2017-08-27 17:41:09 -0700</date>
            <delta_ts>2017-08-27 18:22:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-176011-20170827174109.patch</filename>
            <type>text/plain</type>
            <size>23547</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZiNDlkZDMzZTdiMWVl
NzY2Y2M1YThjMmUwZjM3NDc2NmI5NzBjYi4uYzhmZWEyYzVmZTRkNmVlN2NiYmYxMzQyM2JhYThh
NDg3YjJlZGJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTA4LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBX
ZWIgcHJvY2VzcyBjcmFzaGVzIGFmdGVyIGNoYW5naW5nIHNlbGVjdGlvbiB0byB0aGUgZW5kIG9m
IHRoZSBkb2N1bWVudCB3aGVuIHNwZWFraW5nIGEgc2VsZWN0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMTEKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzMyNjE0MDk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKwor
ICAgICAgICBBZGRzIGEgbnVsbCBjaGVjayB0byB2aXNpYmxlUG9zaXRpb25Gb3JQb3NpdGlvbldp
dGhPZmZzZXQuIFRoaXMgaXMgYSBjcmFzaCBwb2ludCBmb3IgYWNjZXNzaWJpbGl0eSBjb2RlcGF0
aHMsCisgICAgICAgIHNpbmNlIGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uIGlzIG5vdCBndWFyYW50
ZWVkIHRvIHNldCB0aGUgZ2l2ZW4gYHJvb3RgIG91dHBhcmFtIHRvIGEgbm9uLW51bGwgdmFsdWUs
IHlldAorICAgICAgICB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCByZXF1aXJlcyByb290IHRvIGJl
IG5vbi1udWxsLiBUaGlzIGNhdXNlcyBhIGNyYXNoIHdoZW4gc2VsZWN0aW5nIHNvbWUgdGV4dCwg
aGl0dGluZworICAgICAgICAnU3BlYWsnLCBhbmQgdGhlbiBjaGFuZ2luZyB0aGUgc2VsZWN0aW9u
IHRvIHNvbWV3aGVyZSBuZWFyIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LCBzaW5jZSBhY2Nlc3Np
YmlsaXR5IGNvZGUKKyAgICAgICAgd2lsbCBhdHRlbXB0IHRvIHNwZWFrIHdvcmRzIGF0IGFuIG9m
ZnNldCBwYXN0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LiBXaGlsZSB0aGlzIGlzIGEgYnVnIGlu
IGFuZCBvZiBpdHNlbGYsIHRoZQorICAgICAgICB3ZWIgcHJvY2VzcyBzaG91bGQgc3RpbGwgaGFu
ZGxlIHRoaXMgY2FzZSBncmFjZWZ1bGx5IGFuZCBub3QgY3Jhc2guIFRvIGZpeCB0aGlzLCB3ZSBz
aW1wbHkgYmFpbCBhbmQgcmV0dXJuIGEKKyAgICAgICAgbnVsbCBWaXNpYmxlUG9zaXRpb24gaWYg
YSByb290IGNvbnRhaW5lciBub2RlIHdhcyBub3QgZm91bmQuCisKKyAgICAgICAgQ3VycmVudGx5
LCB2aXNpYmxlUG9zaXRpb25Gb3JQb3NpdGlvbldpdGhPZmZzZXQgaXMgaW1wbGVtZW50ZWQgdHdp
Y2UsIGluIFdlYkNvcmUgKEFYT2JqZWN0Q2FjaGUuY3BwKSBhbmQgYWxzbyBpbgorICAgICAgICBX
ZWJLaXQgKFdlYlBhZ2VJT1MubW0pLCBhcyBpZGVudGljYWwgc3RhdGljIGZ1bmN0aW9ucy4gVGhp
cyBwYXRjaCBtb3ZlcyB0aGlzIGhlbHBlciBpbnRvIEVkaXRpbmcuY3BwIGFuZCByZW1vdmVzCisg
ICAgICAgIGl0IGZyb20gQVhPYmplY3RDYWNoZSBhbmQgV2ViUGFnZUlPUy4KKworICAgICAgICBU
ZXN0czogQWNjZXNzaWJpbGl0eVRlc3RzLlJlY3RzRm9yU3BlYWtpbmdTZWxlY3Rpb25CYXNpYwor
ICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVRlc3RzLlJlY3RzRm9yU3BlYWtpbmdTZWxlY3Rp
b25XaXRoTGluZVdyYXBwaW5nCisgICAgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5VGVzdHMuUmVj
dHNGb3JTcGVha2luZ1NlbGVjdGlvbkRvTm90Q3Jhc2hXaGVuQ2hhbmdpbmdTZWxlY3Rpb24KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp2aXNpYmxlUG9zaXRpb25Gb3JQb3NpdGlvbldpdGhPZmZzZXQpOiBEZWxldGVkLgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2aXNpYmxlUG9z
aXRpb25Gb3JQb3NpdGlvbldpdGhPZmZzZXQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZy5o
OgorCiAyMDE3LTA4LTI2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjIyMDEwNSk6IFN0b3JhZ2Ugc2VydmljZSBhcHBlYXJzIGluIG1hY09T
IEFjdGl2aXR5IE1vbml0b3IgYXMg4oCcbG9jYWxpemVkIHN0cmluZyBub3QgZm91bmTigJ0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggMDljMzAzOGRhZmU4NmNiMjE2ZjI3ZDY0ZjhmMzNlNmQ5NTQyMDdjMC4uMGQ2NjRi
ZjI5MGNmOWY2ZjEzNWM3NDUxZWUwYzAzNWFjYTNlZWZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAxNy0wOC0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TIFdLMl0gV2ViIHByb2Nlc3MgY3Jhc2hlcyBhZnRlciBjaGFuZ2luZyBz
ZWxlY3Rpb24gdG8gdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2hlbiBzcGVha2luZyBhIHNlbGVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
MDExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjYxNDA5NT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQWRkcyBhbiBTUEkgaG9vayB0byB0ZXN0IGFj
Y2Vzc2liaWxpdHkgY29kZXBhdGhzIHdoZW4gc3BlYWtpbmcgc2VsZWN0ZWQgY29udGVudC4gVGhp
cyBwYXRjaCBkb2VzIHNvbWUgbWlub3IKKyAgICAgICAgcmVmYWN0b3JpbmcgYnkgaW50cm9kdWNp
bmcgX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzQXRTZWxlY3Rpb25PZmZzZXQ6d2l0aFRleHQ6
Y29tcGxldGlvbkhhbmRsZXI6LCB3aGljaCB0YWtlcworICAgICAgICBhbmQgaW52b2tlcyBhIGNv
bXBsZXRpb24gaGFuZGxlciBibG9jay4gVGhlIGV4aXN0aW5nIF9hY2Nlc3NpYmlsaXR5UmV0cmll
dmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OndpdGhUZXh0OgorICAgICAgICBtZXRob2Qgc2ltcGx5
IHR1cm5zIGFyb3VuZCBhbmQgY2FsbHMgdGhlIGZvcm1lciB2YXJpYW50IHdpdGggYG5pbGAgYXMg
YSBjb21wbGV0aW9uIGhhbmRsZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9hY2Nlc3NpYmlsaXR5UmV0cmlldmVS
ZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OndpdGhUZXh0OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzQXRTZWxlY3Rpb25PZmZzZXQ6d2l0
aFRleHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2FjY2Vzc2liaWxpdHlSZXRyaWV2
ZVJlY3RzQXRTZWxlY3Rpb25PZmZzZXQ6d2l0aFRleHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0Ojp2aXNpYmxlUG9zaXRpb25Gb3JQb3NpdGlvbldpdGhPZmZzZXQpOiBEZWxldGVkLgor
CiAyMDE3LTA4LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQWRkIFdLVUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VV
SUNsaWVudCdzIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDc4Yzg5MGFmN2Q2ZTAx
ZjZkMmY4MjFmNTAyNjk4YzY1OWVmNzQ0NzQuLjUyNjMyNmQ4OTUyOTg3MTJiZTdjZjU0ZjYwNDIw
MjZlZWQ1MmE5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcApAQCAtMTcyNywxMyArMTcyNyw2IEBAIFJlZlB0cjxSYW5nZT4gQVhPYmplY3RD
YWNoZTo6cmFuZ2VGb3JOb2RlQ29udGVudHMoTm9kZSogbm9kZSkKICAgICByZXR1cm4gV1RGTW92
ZShyYW5nZSk7CiB9CiAgICAgCi1zdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlv
bkZvclBvc2l0aW9uV2l0aE9mZnNldChjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uLCBp
bnQzMl90IG9mZnNldCkKLXsKLSAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gcm9vdDsKLSAgICB1
bnNpZ25lZCBzdGFydEluZGV4ID0gaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24sIHJv
b3QpOwotICAgIHJldHVybiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4ICsgb2Zm
c2V0LCByb290LmdldCgpKTsKLX0KLSAgICAKIFJlZlB0cjxSYW5nZT4gQVhPYmplY3RDYWNoZTo6
cmFuZ2VNYXRjaGVzVGV4dE5lYXJSYW5nZShSZWZQdHI8UmFuZ2U+IG9yaWdpbmFsUmFuZ2UsIGNv
bnN0IFN0cmluZyYgbWF0Y2hUZXh0KQogewogICAgIGlmICghb3JpZ2luYWxSYW5nZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmcuY3BwCmluZGV4IDU3NDA5N2E2ZWNkMDgzODUzMWQ4M2JkMGYxYjRm
ODY4NGFiZGJkMzguLmU3OWI2NDZlMjI4OTcyMDA1ZTU4ZmU1MGZiYzI5NTMyMDNjYjdhZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcApAQCAtMTA5Miw2ICsxMDkyLDE2IEBAIGludCBp
bmRleEZvclZpc2libGVQb3NpdGlvbihOb2RlJiBub2RlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHZpc2libGVQb3NpdGlvbiwKICAgICByZXR1cm4gVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChy
YW5nZS5wdHIoKSwgZm9yU2VsZWN0aW9uUHJlc2VydmF0aW9uKTsKIH0KIAorVmlzaWJsZVBvc2l0
aW9uIHZpc2libGVQb3NpdGlvbkZvclBvc2l0aW9uV2l0aE9mZnNldChjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uLCBpbnQgb2Zmc2V0KQoreworICAgIFJlZlB0cjxDb250YWluZXJOb2Rl
PiByb290OworICAgIHVuc2lnbmVkIHN0YXJ0SW5kZXggPSBpbmRleEZvclZpc2libGVQb3NpdGlv
bihwb3NpdGlvbiwgcm9vdCk7CisgICAgaWYgKCFyb290KQorICAgICAgICByZXR1cm4geyB9Owor
CisgICAgcmV0dXJuIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBvZmZzZXQs
IHJvb3QuZ2V0KCkpOworfQorCiBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5k
ZXgoaW50IGluZGV4LCBDb250YWluZXJOb2RlKiBzY29wZSkKIHsKICAgICBhdXRvIHJhbmdlID0g
VGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChzY29wZSwgaW5kZXgsIDAs
IHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuaAppbmRleCBlYWU0OGMwYmJmMjNjNzVhMjQ4
MmMzMWZkNThjMTU4MGMxYzBlMGUyLi4yYjM3MmMwYzk4ZjVjNjcyMjNiNzdlNzM4NmYyYWYzMjY1
NTk5YWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIGlu
dCBjb21wYXJlUG9zaXRpb25zKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOwogCiBXRUJDT1JFX0VYUE9SVCBpbnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUmVmUHRyPENvbnRhaW5lck5vZGU+JiBzY29wZSk7CiBp
bnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oTm9kZSYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYs
IGJvb2wgZm9yU2VsZWN0aW9uUHJlc2VydmF0aW9uKTsKK1dFQkNPUkVfRVhQT1JUIFZpc2libGVQ
b3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb3NpdGlvbldpdGhPZmZzZXQoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiwgaW50IG9mZnNldCk7CiBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlUG9zaXRpb24g
dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50IGluZGV4LCBDb250YWluZXJOb2RlKiBzY29wZSk7
CiBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXhVc2luZ0NoYXJhY3Rlckl0
ZXJhdG9yKE5vZGUmLCBpbnQgaW5kZXgpOyAvLyBGSVhNRTogV2h5IGRvIHdlIG5lZWQgdGhpcyB2
ZXJzaW9uPwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCA1ZTU5OWMwODU1YjUyOTIyZDU4OTk3ZjAzY2RlZjkyMTk4MWMxNTk5Li4xYTFm
NjBkMjE3MDU2YjUzNDllYjRjZDI2MmM5ZDhiMzBiNzg5NmVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU0MDEsNiArNTQwMSwxOCBA
QCAtICh2b2lkKV9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9z
aXRpb24gY29tcGxldGlvbkJsb2NrOih2bwogICAgIH0gZm9yUmVxdWVzdDppbmZvUmVxdWVzdF07
CiB9CiAKKy0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzQXRTZWxlY3Rpb25PZmZz
ZXQ6KE5TSW50ZWdlcilvZmZzZXQgd2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dCBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0cykpY29tcGxldGlvbkhh
bmRsZXIKK3sKKyAgICBbX2NvbnRlbnRWaWV3IF9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0
U2VsZWN0aW9uT2Zmc2V0Om9mZnNldCB3aXRoVGV4dDp0ZXh0IGNvbXBsZXRpb25IYW5kbGVyOltj
YXB0dXJlZENvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVy
KV0gKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25SZWN0PiYgc2VsZWN0aW9uUmVjdHMp
IHsKKyAgICAgICAgaWYgKCFjYXB0dXJlZENvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBhdXRvIHJlY3RWYWx1ZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c2VsZWN0aW9uUmVjdHMuc2l6ZSgpXSk7CisgICAg
ICAgIGZvciAoYXV0byYgc2VsZWN0aW9uUmVjdCA6IHNlbGVjdGlvblJlY3RzKQorICAgICAgICAg
ICAgW3JlY3RWYWx1ZXMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpzZWxlY3Rp
b25SZWN0LnJlY3QoKV1dOworICAgICAgICBjYXB0dXJlZENvbXBsZXRpb25IYW5kbGVyKHJlY3RW
YWx1ZXMuZ2V0KCkpOworICAgIH1dOworfQorCiAtIChDR1JlY3QpX2NvbnRlbnRWaXNpYmxlUmVj
dAogewogICAgIHJldHVybiBbc2VsZiBjb252ZXJ0UmVjdDpbc2VsZiBib3VuZHNdIHRvVmlldzpz
ZWxmLl9jdXJyZW50Q29udGVudFZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMDE2Zjk0OTIzMzRjZTM2M2Jh
MDU5MjA2MjRhMDVmZTFjMDY2NzUzNi4uYTNhZmNjYTJjMTRjOGEyYTNlYTE4Mzk1YzllZGUwZGQ4
MDgxZGViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zNzcsNiArMzc3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBDR1JlY3QgX2RyYWdDYXJldFJlY3QgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOwogCiAtICh2b2lkKV9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246
KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKSlibG9jayBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Cist
ICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OihOU0lu
dGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKE5TQXJyYXk8TlNWYWx1ZSAqPiAqcmVjdHMpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlmIC8vIFRBUkdFVF9PU19J
UEhPTkUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDBjNTMwMGVkZWQ2YmM1YWRhZTA1ZmQ3ZTg1OWJjMzRi
MzI3OWRjMWUuLjJkZTYyMDdmNzhmMzM0ZTQ5ZjY0YjExODQyNDQ3NTcwYzQ4MGUxMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKQEAgLTU4LDYgKzU4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29s
b3I7CiBjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgU2VsZWN0aW9uUmVj
dDsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zMzEsNiArMzMyLDcgQEAgRk9S
X0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9G
T1JfV0VCX1ZJRVcpCiAtIChOU0FycmF5PE5TVmFsdWUgKj4gKilfdWlUZXh0U2VsZWN0aW9uUmVj
dHM7CiAtICh2b2lkKWFjY2Vzc2liaWxpdHlSZXRyaWV2ZVNwZWFrU2VsZWN0aW9uQ29udGVudDsK
IC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzRW5jbG9zaW5nU2VsZWN0aW9uT2Zm
c2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhHcmFudWxhcml0eTooVUlUZXh0R3JhbnVsYXJpdHkp
Z3JhbnVsYXJpdHk7CistICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0
aW9uT2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25S
ZWN0PiYgcmVjdHMpKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJl
dHJpZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoVGV4dDoo
TlNTdHJpbmcgKil0ZXh0OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gY3VycmVudFBvc2l0aW9uSW5mb3Jt
YXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBkMTMxOTQyNGZkNjEwZjgzYTFiNjlkMGMxZjE1Y2M3
NWE0M2U3YjM3Li5kMzJmOGQ0MWViNjQ1N2IwZDVkNTc3Y2M4MjM5MTU2MDFjMTQxYzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTIyODAsOCArMjI4MCwxNiBAQCAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5
UmV0cmlldmVSZWN0c0VuY2xvc2luZ1NlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3
aQogCiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0
OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQKIHsKKyAgICBbc2Vs
ZiBfYWNjZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDpvZmZzZXQgd2l0
aFRleHQ6dGV4dCBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworfQorCistICh2b2lkKV9hY2Nlc3Np
YmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdp
dGhUZXh0OihOU1N0cmluZyAqKXRleHQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGNvbnN0
IFZlY3RvcjxTZWxlY3Rpb25SZWN0PiYgcmVjdHMpKWNvbXBsZXRpb25IYW5kbGVyCit7CiAgICAg
UmV0YWluUHRyPFdLQ29udGVudFZpZXc+IHZpZXcgPSBzZWxmOwotICAgIF9wYWdlLT5yZXF1ZXN0
UmVjdHNBdFNlbGVjdGlvbk9mZnNldFdpdGhUZXh0KG9mZnNldCwgdGV4dCwgW3ZpZXcsIG9mZnNl
dF0oY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+JiBzZWxlY3Rpb25SZWN0cywg
Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9wYWdlLT5yZXF1ZXN0UmVjdHNBdFNl
bGVjdGlvbk9mZnNldFdpdGhUZXh0KG9mZnNldCwgdGV4dCwgW3ZpZXcsIG9mZnNldCwgY2FwdHVy
ZWRDb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGNv
bnN0IFZlY3RvcjxTZWxlY3Rpb25SZWN0PiYgc2VsZWN0aW9uUmVjdHMsIENhbGxiYWNrQmFzZTo6
RXJyb3IgZXJyb3IpIHsKKyAgICAgICAgaWYgKGNhcHR1cmVkQ29tcGxldGlvbkhhbmRsZXIpCisg
ICAgICAgICAgICBjYXB0dXJlZENvbXBsZXRpb25IYW5kbGVyKHNlbGVjdGlvblJlY3RzKTsKKwog
ICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoW3ZpZXcgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihfYWNjZXNzaWJpbGl0eURpZEdldFNlbGVjdGlvblJlY3RzOndpdGhHcmFudWxh
cml0eTphdE9mZnNldDopXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggOTM4NjNiMDUxN2ViMTRkZjE5NGEyMmRlNTdiMzE0
YjE0Y2IwZTViZi4uYzg0NTg2OWE4ZTZjZGZhZTNhNzM0MGZmNzMxYWM0N2YwNGE3NzFhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KQEAgLTE4NDMsMTMgKzE4NDMsNiBAQCB2b2lkIFdlYlBhZ2U6Om1vdmVTZWxlY3Rpb25CeU9m
ZnNldChpbnQzMl90IG9mZnNldCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6Vm9pZENhbGxiYWNrKGNhbGxiYWNrSUQpKTsKIH0KIAotc3Rh
dGljIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb3NpdGlvbldpdGhPZmZzZXQo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbiwgaW50MzJfdCBvZmZzZXQpCi17Ci0gICAg
UmVmUHRyPENvbnRhaW5lck5vZGU+IHJvb3Q7Ci0gICAgdW5zaWduZWQgc3RhcnRJbmRleCA9IGlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uLCByb290KTsKLSAgICByZXR1cm4gdmlzaWJs
ZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCArIG9mZnNldCwgcm9vdC5nZXQoKSk7Ci19Ci0K
IHZvaWQgV2ViUGFnZTo6Z2V0UmVjdHNGb3JHcmFudWxhcml0eVdpdGhTZWxlY3Rpb25PZmZzZXQo
dWludDMyX3QgZ3JhbnVsYXJpdHksIGludDMyX3Qgb2Zmc2V0LCBDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiB7CiAgICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1
c2VkT3JNYWluRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAwZTJjZWE4OGVlNDRmMDE5MTk5NDBhODUxNzBjYzg2ODc5MTYwMGJlLi5l
YTQzMTFmZWE1NWNlNmMwMmZlMDIyM2I0MGJhYTU2MjBmYjg2YjM5IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTct
MDgtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W2lPUyBXSzJdIFdlYiBwcm9jZXNzIGNyYXNoZXMgYWZ0ZXIgY2hhbmdpbmcgc2VsZWN0aW9uIHRv
IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50IHdoZW4gc3BlYWtpbmcgYSBzZWxlY3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAxMQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzI2MTQwOTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3Vr
ZSBOaXdhLgorCisgICAgICAgIEludHJvZHVjZXMgQWNjZXNzaWJpbGl0eVRlc3RzLCBhbmQgYWRk
cyB0aHJlZSBuZXcgdGVzdHMgdGhhdCB0cmF2ZXJzZSBzZWxlY3Rpb24tcmVjdC1maW5kaW5nIGNv
ZGVwYXRocyB3aGVuCisgICAgICAgIHNwZWFraW5nIHNlbGVjdGVkIGNvbnRlbnQuIFNlZSBXZWJL
aXQgYW5kIFdlYkNvcmUgQ2hhbmdlTG9ncyBmb3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW06
IEFkZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVjdHNBdFNlbGVjdGlvbk9mZnNldDp3aXRo
VGV4dDpdKToKKyAgICAgICAgKGNoZWNrQ0dSZWN0VmFsdWVBdEluZGV4KToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE3LTA4LTI1ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBMb2dnZXI6OmxvZ0Fsd2F5cwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBlNDhiMjg1ZmQzOWViY2NjNzI3MWQ0ZGRiNWFmNjdkMGNjY2Iy
MDNmLi42YjJlNTFjM2UyZTg2MTQxYTRhMTUyNTdkZjZmZWMwNjg0ZGEyNDc2IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtODYsNiArODYsNyBAQAogCQkyRTFERkRFRDFENDJBNTExMDA3MTRB
MDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFERkRFQzFENDJBNDFDMDA3MTRBMDAg
LyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKIAkJMkUxREZERUYxRDQyQTZG
MjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxREZERUUx
RDQyQTZFQjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwg
Ki87IH07CiAJCTJFMURGREYxMUQ0MkUxRTQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRv
LWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFERkRGMDFENDJFMTQ0MDA3MTRB
MDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5n
Lmh0bWwgKi87IH07CisJCTJFMjA1QkE0MUY1Mjc3NDYwMDU5NTJERCAvKiBBY2Nlc3NpYmlsaXR5
VGVzdHNJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRTIwNUJBMzFGNTI3NzQ2MDA1OTUyREQgLyogQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tICov
OyB9OwogCQkyRTU0RjQwRDFEN0JDODQyMDA5MjFBREYgLyogbGFyZ2UtdmlkZW8tbXV0ZXMtb25w
bGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU1NEY0MEMxRDdCQzgzOTAwOTIxQURGIC8qIGxhcmdlLXZpZGVvLW11dGVzLW9u
cGxheWluZy5odG1sICovOyB9OwogCQkyRTY5MUFFQTFENzhCNTM2MDAxMjk0MDcgLyogbGFyZ2Ut
dmlkZW9zLXBhdXNlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjkxQUU4MUQ3OEI1MkIwMDEy
OTQwNyAvKiBsYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwgKi87
IH07CiAJCTJFNjkxQUVCMUQ3OEI1MzYwMDEyOTQwNyAvKiBsYXJnZS12aWRlb3MtcGxheWluZy12
aWRlby1rZWVwcy1jb250cm9scy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjkxQUU5MUQ3OEI1MkIwMDEyOTQwNyAvKiBsYXJnZS12
aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sICovOyB9OwpAQCAtMTEwOSw2
ICsxMTEwLDcgQEAKIAkJMkUxREZERUMxRDQyQTQxQzAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13
aXRoLWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW9z
LXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMURGREVF
MUQ0MkE2RUIwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1
dG9wbGF5Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTFERkRGMDFENDJF
MTQ0MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0
ZXItZW5kaW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8t
c2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRTIwNUJBMzFGNTI3NzQ2MDA1OTUyREQgLyogQWNjZXNzaWJp
bGl0eVRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRlc3Rz
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTU0RjQwQzFEN0JDODM5MDA5
MjFBREYgLyogbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRTY5MUFFODFENzhCNTJCMDAxMjk0MDcgLyogbGFyZ2Ut
dmlkZW9zLXBhdXNlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gImxhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjkxQUU5MUQ3OEI1MkIwMDEyOTQw
NyAvKiBsYXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBz
LWNvbnRyb2xzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA2Nyw2ICsy
MDY5LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTFDNEZC
NkYxQkFDQ0VGQTAwMzc0MkQwIC8qIFJlc291cmNlcyAqLywKKwkJCQkyRTIwNUJBMzFGNTI3NzQ2
MDA1OTUyREQgLyogQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tICovLAogCQkJCUY0NUI2M0ZDMUYx
OUQ0MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3RzLm1tICovLAogCQkJCUY0RDRGM0I3MUU0
RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLywKIAkJCQk3NTYwOTE3
NzE5MjU5QzU5MDA5RUYwNkUgLyogTWVtb3J5Q2FjaGVBZGRJbWFnZVRvQ2FjaGVJT1MubW0gKi8s
CkBAIC0zMDc0LDYgKzMwNzcsNyBAQAogCQkJCTdDRUZBOTY2MUFDMEI5RTIwMEI5MTBGRCAvKiBf
V0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
RTQxQTQxMUFFNjAwNDQ3QzRDIC8qIEFib3V0QmxhbmtMb2FkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RUIzMUE0MTFBN0UwMDQ0N0M0QyAvKiBBY2NlcHRzRmlyc3RNb3VzZS5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTJFMjA1QkE0MUY1Mjc3NDYwMDU5NTJERCAvKiBBY2Nlc3NpYmlsaXR5
VGVzdHNJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDVCNjNGRTFGMTlENDEwMDA5RDM4Qjkg
LyogQWN0aW9uU2hlZXRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3RTdERDY0MUVBMDZG
RjIwMDlCMzk2RCAvKiBBZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRVUkxzLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0E5MDlBN0QxRDg3NzQ4MDAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTE0MjY2ZTFlMGEwMzQz
NDFhZTExYjkwNmExYTMyNjI4Mjc1MTY5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tCkBAIC0wLDAgKzEsMTAy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9T
KSAmJiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2lt
cG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUu
aD4KKworQGltcGxlbWVudGF0aW9uIFdLV2ViVmlldyAoV0tBY2Nlc3NpYmlsaXR5VGVzdGluZykK
Ky0gKE5TQXJyYXk8TlNWYWx1ZSAqPiAqKXJlY3RzQXRTZWxlY3Rpb25PZmZzZXQ6KE5TSW50ZWdl
cilvZmZzZXQgd2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dAoreworICAgIF9fYmxvY2sgUmV0YWlu
UHRyPE5TQXJyYXk+IHNlbGVjdGlvblJlY3RzOworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFs
c2U7CisgICAgW3NlbGYgX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzQXRTZWxlY3Rpb25PZmZz
ZXQ6b2Zmc2V0IHdpdGhUZXh0OnRleHQgY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PE5TVmFs
dWUgKj4gKnJlY3RzKSB7CisgICAgICAgIHNlbGVjdGlvblJlY3RzID0gcmVjdHM7CisgICAgICAg
IGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgcmV0dXJuIHNlbGVjdGlvblJlY3RzLmF1dG9yZWxlYXNlKCk7Cit9CitAZW5kCisK
K3N0YXRpYyB2b2lkIGNoZWNrQ0dSZWN0VmFsdWVBdEluZGV4KE5TQXJyYXk8TlNWYWx1ZSAqPiAq
cmVjdFZhbHVlcywgQ0dSZWN0IGV4cGVjdGVkUmVjdCwgTlNVSW50ZWdlciBpbmRleCkKK3sKKyAg
ICBFWFBFQ1RfTFQoaW5kZXgsIHJlY3RWYWx1ZXMuY291bnQpOworICAgIGF1dG8gb2JzZXJ2ZWRS
ZWN0ID0gW3JlY3RWYWx1ZXNbaW5kZXhdIENHUmVjdFZhbHVlXTsKKyAgICBFWFBFQ1RfRVEoZXhw
ZWN0ZWRSZWN0Lm9yaWdpbi54LCBvYnNlcnZlZFJlY3Qub3JpZ2luLngpOworICAgIEVYUEVDVF9F
UShleHBlY3RlZFJlY3Qub3JpZ2luLnksIG9ic2VydmVkUmVjdC5vcmlnaW4ueSk7CisgICAgRVhQ
RUNUX0VRKGV4cGVjdGVkUmVjdC5zaXplLndpZHRoLCBvYnNlcnZlZFJlY3Quc2l6ZS53aWR0aCk7
CisgICAgRVhQRUNUX0VRKGV4cGVjdGVkUmVjdC5zaXplLmhlaWdodCwgb2JzZXJ2ZWRSZWN0LnNp
emUuaGVpZ2h0KTsKK30KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKEFjY2Vz
c2liaWxpdHlUZXN0cywgUmVjdHNGb3JTcGVha2luZ1NlbGVjdGlvbkJhc2ljKQoreworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRl
dmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEnPjxzcGFuIGlkPSdmaXJzdCc+Zmlyc3Q8L3NwYW4+
PHNwYW4gaWQ9J3NlY29uZCc+IHNlY29uZDwvc3Bhbj48YnI+PHNwYW4gaWQ9J3RoaXJkJz4gdGhp
cmQ8L3NwYW4+Il07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImRvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RBbGwnKSJdOworCisgICAgY2hlY2tDR1JlY3RW
YWx1ZUF0SW5kZXgoW3dlYlZpZXcgcmVjdHNBdFNlbGVjdGlvbk9mZnNldDowIHdpdGhUZXh0OkAi
Zmlyc3QiXSwgQ0dSZWN0TWFrZSg4LCA4LCAyNiwgMTkpLCAwKTsKKyAgICBjaGVja0NHUmVjdFZh
bHVlQXRJbmRleChbd2ViVmlldyByZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OjYgd2l0aFRleHQ6QCJz
ZWNvbmQiXSwgQ0dSZWN0TWFrZSgzNywgOCwgNDYsIDE5KSwgMCk7CisgICAgY2hlY2tDR1JlY3RW
YWx1ZUF0SW5kZXgoW3dlYlZpZXcgcmVjdHNBdFNlbGVjdGlvbk9mZnNldDoxMyB3aXRoVGV4dDpA
InRoaXJkIl0sIENHUmVjdE1ha2UoOCwgMjcsIDMxLCAyMCksIDApOworfQorCitURVNUKEFjY2Vz
c2liaWxpdHlUZXN0cywgUmVjdHNGb3JTcGVha2luZ1NlbGVjdGlvbldpdGhMaW5lV3JhcHBpbmcp
Cit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVu
dD0nd2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSc+PGJvZHkgc3R5bGU9J2ZvbnQt
c2l6ZTogMTAwcHg7IHdvcmQtd3JhcDogYnJlYWstd29yZCc+PHNwYW4gaWQ9J3RleHQnPmFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6PC9zcGFuPjwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFs
bCcpIl07CisKKyAgICBOU0FycmF5PE5TVmFsdWUgKj4gKnJlY3RzID0gW3dlYlZpZXcgcmVjdHNB
dFNlbGVjdGlvbk9mZnNldDowIHdpdGhUZXh0OkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
XTsKKyAgICBjaGVja0NHUmVjdFZhbHVlQXRJbmRleChyZWN0cywgQ0dSZWN0TWFrZSg4LCA4LCAz
MDQsIDExNCksIDApOworICAgIGNoZWNrQ0dSZWN0VmFsdWVBdEluZGV4KHJlY3RzLCBDR1JlY3RN
YWtlKDgsIDEyMiwgMzA0LCAxMTcpLCAxKTsKKyAgICBjaGVja0NHUmVjdFZhbHVlQXRJbmRleChy
ZWN0cywgQ0dSZWN0TWFrZSg4LCAyMzksIDMwNCwgMTE3KSwgMik7CisgICAgY2hlY2tDR1JlY3RW
YWx1ZUF0SW5kZXgocmVjdHMsIENHUmVjdE1ha2UoOCwgMzU2LCAzMDQsIDExNyksIDMpOworICAg
IGNoZWNrQ0dSZWN0VmFsdWVBdEluZGV4KHJlY3RzLCBDR1JlY3RNYWtlKDgsIDQ3MywgMTQ1LCAx
MTcpLCA0KTsKK30KKworVEVTVChBY2Nlc3NpYmlsaXR5VGVzdHMsIFJlY3RzRm9yU3BlYWtpbmdT
ZWxlY3Rpb25Eb05vdENyYXNoV2hlbkNoYW5naW5nU2VsZWN0aW9uKQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmljZS13
aWR0aCxpbml0aWFsLXNjYWxlPTEnPjxzcGFuIGlkPSdmaXJzdCc+Zmlyc3Q8L3NwYW4+PHNwYW4g
aWQ9J3NlY29uZCc+IHNlY29uZDwvc3Bhbj48YnI+PHNwYW4gaWQ9J3RoaXJkJz4gdGhpcmQ8L3Nw
YW4+Il07CisKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0aGlyZCwgMCwgdGhpcmQsIDEpIl07CisgICAg
RVhQRUNUX0VRKDBVTCwgW3dlYlZpZXcgcmVjdHNBdFNlbGVjdGlvbk9mZnNldDoxMyB3aXRoVGV4
dDpAInRoaXJkIl0uY291bnQpOworICAgIEVYUEVDVF9XS19TVFJFUSgidGhpcmQiLCBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KSJdKTsKKworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRT
ZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKSJdOworICAgIEVYUEVDVF9FUSgwVUwsIFt3ZWJW
aWV3IHJlY3RzQXRTZWxlY3Rpb25PZmZzZXQ6MTMgd2l0aFRleHQ6QCJ0aGlyZCJdLmNvdW50KTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoIiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIl0pOworfQorCit9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpICYmIFdLX0FQSV9FTkFC
TEVECisK
</data>

          </attachment>
      

    </bug>

</bugzilla>