<?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>139894</bug_id>
          
          <creation_ts>2014-12-22 19:29:52 -0800</creation_ts>
          <short_desc>Remove the custom web page preview code</short_desc>
          <delta_ts>2014-12-23 16:17:44 -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>528+ (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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mitz</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1057528</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-22 19:29:52 -0800</bug_when>
    <thetext>Remove the custom web page preview code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057529</commentid>
    <comment_count>1</comment_count>
      <attachid>243658</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-22 19:30:17 -0800</bug_when>
    <thetext>Created attachment 243658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057545</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-12-22 22:08:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/19333074&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057693</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-23 16:17:44 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/177702</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243658</attachid>
            <date>2014-12-22 19:30:17 -0800</date>
            <delta_ts>2014-12-22 22:11:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139894-20141222193018.patch</filename>
            <type>text/plain</type>
            <size>52564</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTFhMTc2OTVlOGU2MjE1
YTg2M2QwNGE5MzlmMjMyNDk1MmEyODM2NS4uMTZjYmQwN2E2NGQ0YmFmMDhmMGU4YmMzNmQ3MjFj
MjExZDJlY2JjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTEyLTIyICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
dGhlIGN1c3RvbSB3ZWIgcGFnZSBwcmV2aWV3IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTg5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTkzMTE4MTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBfZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c10pOgorICAgICAgICAoLVtXS1ZpZXcgX3ZpZXdGb3JQcmV2
aWV3aW5nVVJMOmluaXRpYWxGcmFtZVNpemU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
dyBfdGl0bGVGb3JQcmV2aWV3T2ZVUkw6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBf
c2V0UHJldmlld1RpdGxlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3NldFByZXZp
ZXdMb2FkaW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3NldFByZXZpZXdPdmVy
cmlkZUltYWdlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2ZpbmlzaFByZXZpZXdp
bmdVUkw6d2l0aFByZXZpZXdWaWV3Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2hh
bmRsZUNsaWNrSW5QcmV2aWV3VmlldzpVUkw6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
dyBfc2hvdWxkVXNlU3RhbmRhcmRRdWlja0xvb2tQcmV2aWV3XSk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAg
KC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIHdpbGxEZXN0cm95VmlldzpdKToKKyAgICAg
ICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0
YXRlXSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVB
Y3Rpb25SZWNvZ25pemVyV2lsbFByZXBhcmU6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlciBfZGVmYXVsdEFuaW1hdGlvbkNvbnRyb2xsZXJdKToKKyAgICAgICAgKC1b
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGhpZGVQcmV2aWV3XSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBzZXRQcmV2aWV3VGl0bGU6XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBzZXRQcmV2aWV3
TG9hZGluZzpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyIHNldFByZXZpZXdPdmVycmlkZUltYWdlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0lt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JDdXN0b21QcmV2
aWV3XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1BhZ2VQcmV2aWV3Vmll
d0NvbnRyb2xsZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUGFnZVBy
ZXZpZXdWaWV3Q29udHJvbGxlci5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyLmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlci5tbTog
UmVtb3ZlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgIFJlbW92ZSBhbGwgb2YgdGhlIGN1c3RvbSB3ZWIgcGFnZSBwcmV2aWV3IGNvZGUuIENs
aWVudHMgdGhhdCB3YW50IHRoZSBjdXN0b20KKyAgICAgICAgcHJldmlldyBjYW4gaW1wbGVtZW50
IGl0IGJ5IG92ZXJyaWRpbmcgdGhlIGltbWVkaWF0ZSBhY3Rpb24uCisKIDIwMTQtMTItMjIgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgaU9TIGJ1
aWxkIGFmdGVyIDxodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc3NjM5PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApp
bmRleCAzYjMwY2VkYmU5M2Y2ZWRmMGE5NDc3OTdlZjAwMjgyYmZlMGI3ZWUyLi4xYzI1OTQwMThm
MWEyNjY4NGE3NzI5MzQ5NDg3MGI5NTBjODA3NzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApAQCAtMTI5LDE1ICsxMjksNiBA
QAogLy8gZG8gc29tZXRoaW5nIGN1c3RvbSwgcmV0dXJuIGFuIG9iamVjdCB0aGF0IGNvbmZvcm1z
IHRvIHRoZSBOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXIgcHJvdG9jb2wuCiAt
IChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6
KFdLSGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOihfV0tJbW1lZGlhdGVB
Y3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KFdLVHlwZVJlZil1c2VyRGF0YTsKIAotLSAoTlNWaWV3
ICopX3ZpZXdGb3JQcmV2aWV3aW5nVVJMOihOU1VSTCAqKXVybCBpbml0aWFsRnJhbWVTaXplOihO
U1NpemUpaW5pdGlhbEZyYW1lU2l6ZTsKLS0gKE5TU3RyaW5nICopX3RpdGxlRm9yUHJldmlld09m
VVJMOihOU1VSTCAqKXVybDsKLS0gKHZvaWQpX3NldFByZXZpZXdUaXRsZTooTlNTdHJpbmcgKilw
cmV2aWV3VGl0bGU7Ci0tICh2b2lkKV9zZXRQcmV2aWV3TG9hZGluZzooQk9PTClsb2FkaW5nOwot
LSAodm9pZClfc2V0UHJldmlld092ZXJyaWRlSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZTsKLS0gKHZv
aWQpX2ZpbmlzaFByZXZpZXdpbmdVUkw6KE5TVVJMICopdXJsIHdpdGhQcmV2aWV3VmlldzooTlNW
aWV3ICopcHJldmlld1ZpZXc7Ci0tICh2b2lkKV9oYW5kbGVDbGlja0luUHJldmlld1ZpZXc6KE5T
VmlldyAqKXByZXZpZXdWaWV3IFVSTDooTlNVUkwgKil1cmw7Ci0tIChCT09MKV9zaG91bGRVc2VT
dGFuZGFyZFF1aWNrTG9va1ByZXZpZXc7Ci0KIC0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3M7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCmluZGV4IDJiZTE4Mzk4YzE3N2VjZWY0MGMwMmY0ZTk5ZTk0MTYxNmVhODZm
YzUuLjc5MDU2NGM5NjNiZGVjZGJlODA3NGMzMmJjYmM0YTI5MzEwMWZmYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTQzNDAsNjAgKzQzNDAsMTEg
QEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmlu
ZyAqcGF0aCkKICAgICBpZiAoW2FjdGlvbnNNYW5hZ2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IocmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTopXSkKICAgICAgICAg
W2FjdGlvbnNNYW5hZ2VyIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1cmU6WUVT
XTsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAg
W19kYXRhLT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBoaWRlUHJldmlld107Ci0jZW5kaWYK
LQogICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOm51bGxwdHIgZmFkZU91dDpOT107CiAKICAg
ICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50Jj4oKl9kYXRhLT5fcGFnZUNsaWVudCkuZGlzbWlzc0Nv
cnJlY3Rpb25QYW5lbChSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7
CiB9CiAKLS0gKE5TVmlldyAqKV92aWV3Rm9yUHJldmlld2luZ1VSTDooTlNVUkwgKil1cmwgaW5p
dGlhbEZyYW1lU2l6ZTooTlNTaXplKWluaXRpYWxGcmFtZVNpemUKLXsKLSAgICByZXR1cm4gbmls
OwotfQotCi0tIChOU1N0cmluZyAqKV90aXRsZUZvclByZXZpZXdPZlVSTDooTlNVUkwgKil1cmwK
LXsKLSAgICByZXR1cm4gbmlsOwotfQotCi0tICh2b2lkKV9zZXRQcmV2aWV3VGl0bGU6KE5TU3Ry
aW5nICopcHJldmlld1RpdGxlCi17Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEwMDAKLSAgICBbX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIHNldFBy
ZXZpZXdUaXRsZTpwcmV2aWV3VGl0bGVdOwotI2VuZGlmCi19Ci0KLS0gKHZvaWQpX3NldFByZXZp
ZXdMb2FkaW5nOihCT09MKWxvYWRpbmcKLXsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTAwMAotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
c2V0UHJldmlld0xvYWRpbmc6bG9hZGluZ107Ci0jZW5kaWYKLX0KLQotLSAodm9pZClfc2V0UHJl
dmlld092ZXJyaWRlSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZQotewotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlciBzZXRQcmV2aWV3T3ZlcnJpZGVJbWFnZTppbWFnZV07Ci0jZW5kaWYKLX0KLQot
LSAodm9pZClfZmluaXNoUHJldmlld2luZ1VSTDooTlNVUkwgKil1cmwgd2l0aFByZXZpZXdWaWV3
OihOU1ZpZXcgKilwcmV2aWV3VmlldwotewotfQotCi0tICh2b2lkKV9oYW5kbGVDbGlja0luUHJl
dmlld1ZpZXc6KE5TVmlldyAqKXByZXZpZXdWaWV3IFVSTDooTlNVUkwgKil1cmwKLXsKLSAgICBb
W05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gb3BlblVSTDp1cmxdOwotfQotCi0tIChCT09M
KV9zaG91bGRVc2VTdGFuZGFyZFF1aWNrTG9va1ByZXZpZXcKLXsKLSAgICByZXR1cm4gWUVTOwot
fQotCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKIAogLSAo
dm9pZClfc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOihCT09MKWF1dG9tYXRp
Y2FsbHlBZGp1c3RzQ29udGVudEluc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKaW5kZXggZjU2Njc2
ZjgzZmFhOTEzZGIzNjFmYjY2YmRjZGFlN2JhYzI5ZjRlZi4uMjEyY2RiODViMTU4MWIwODBhZmIy
YWZkZjc0ZjdhM2ZjM2RiMDE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oCkBAIC00NSw4ICs0NSw2
IEBAIGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhdGUgewogfQogCiBAY2xhc3MgRERBY3Rp
b25Db250ZXh0OwotQGNsYXNzIFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjsKLUBjbGFzcyBX
S1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlcjsKIEBjbGFzcyBXS1ZpZXc7CiAKIEBp
bnRlcmZhY2UgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIDogTlNPYmplY3QgPE5TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gewpAQCAtNjAsMTIgKzU4LDggQEAg
ZW51bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7CiAgICAgX1dLSW1tZWRpYXRlQWN0aW9u
VHlwZSBfdHlwZTsKICAgICBOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICpfaW1t
ZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKIAotICAgIE5TUG9pbnQgX2V2ZW50TG9jYXRpb25JblZp
ZXc7Ci0KICAgICBCT09MIF9oYXNBY3RpdmF0ZWRBY3Rpb25Db250ZXh0OwogICAgIFJldGFpblB0
cjxEREFjdGlvbkNvbnRleHQ+IF9jdXJyZW50QWN0aW9uQ29udGV4dDsKLQotICAgIFJldGFpblB0
cjxXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlcj4gX3ByZXZpZXdBbmltYXRpb25D
b250cm9sbGVyOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcgcmVjb2duaXplcjooTlNJbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXI7
CkBAIC03MywxMSArNjcsNiBAQCBlbnVtIGNsYXNzIEltbWVkaWF0ZUFjdGlvblN0YXRlIHsKIC0g
KHZvaWQpZGlkUGVyZm9ybUFjdGlvbk1lbnVIaXRUZXN0Oihjb25zdCBXZWJLaXQ6OkFjdGlvbk1l
bnVIaXRUZXN0UmVzdWx0JiloaXRUZXN0UmVzdWx0IHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNl
ckRhdGE7CiAtICh2b2lkKXdrVmlldzooV0tWaWV3ICopd2tWaWV3IHdpbGxIYW5kbGVNb3VzZURv
d246KE5TRXZlbnQgKilldmVudDsKIAotLSAodm9pZClzZXRQcmV2aWV3VGl0bGU6KE5TU3RyaW5n
ICopcHJldmlld1RpdGxlOwotLSAodm9pZCloaWRlUHJldmlldzsKLS0gKHZvaWQpc2V0UHJldmll
d0xvYWRpbmc6KEJPT0wpbG9hZGluZzsKLS0gKHZvaWQpc2V0UHJldmlld092ZXJyaWRlSW1hZ2U6
KE5TSW1hZ2UgKilpbWFnZTsKLQogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbQppbmRleCA0MTQ0ZDBhY2ZiYTVhMDc5NzU2MGEwMTQwMjlhZTU5NjQ0NzIzZTcxLi45NzY3
Yzk4MGE2MWM5MjM1N2EzMzE3ODJhOTkyMmExMWI0NDE5YmFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbQpAQCAtMjksOCArMjksNiBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKIAogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5o
IgotI2ltcG9ydCAiV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmgiCi0jaW1wb3J0ICJXS1By
ZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJu
YWwuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5
LmgiCkBAIC03Myw4ICs3MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKHZvaWQp
d2lsbERlc3Ryb3lWaWV3OihXS1ZpZXcgKil2aWV3CiB7Ci0gICAgW19wcmV2aWV3QW5pbWF0aW9u
Q29udHJvbGxlciBjbG9zZV07Ci0KICAgICBfcGFnZSA9IG51bGxwdHI7CiAgICAgX3drVmlldyA9
IG5pbDsKICAgICBfaGl0VGVzdFJlc3VsdCA9IEFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0KCk7CkBA
IC05OCw4ICs5NCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKHZvaWQpX2NsZWFy
SW1tZWRpYXRlQWN0aW9uU3RhdGUKIHsKLSAgICBbc2VsZiBoaWRlUHJldmlld107Ci0KICAgICBf
cGFnZS0+Y2xlYXJUZXh0SW5kaWNhdG9yKCk7CiAKICAgICBpZiAoX2N1cnJlbnRBY3Rpb25Db250
ZXh0ICYmIF9oYXNBY3RpdmF0ZWRBY3Rpb25Db250ZXh0KSB7CkBAIC0xMzUsOCArMTI5LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIFtfd2tWaWV3IF9kaXNtaXNzQ29udGVudFJl
bGF0aXZlQ2hpbGRXaW5kb3dzXTsKIAotICAgIF9ldmVudExvY2F0aW9uSW5WaWV3ID0gW2ltbWVk
aWF0ZUFjdGlvblJlY29nbml6ZXIgbG9jYXRpb25JblZpZXc6aW1tZWRpYXRlQWN0aW9uUmVjb2du
aXplci52aWV3XTsKLSAgICBfcGFnZS0+cGVyZm9ybUFjdGlvbk1lbnVIaXRUZXN0QXRMb2NhdGlv
bihfZXZlbnRMb2NhdGlvbkluVmlldywgdHJ1ZSk7CisgICAgX3BhZ2UtPnBlcmZvcm1BY3Rpb25N
ZW51SGl0VGVzdEF0TG9jYXRpb24oW2ltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgbG9jYXRpb25J
blZpZXc6aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplci52aWV3XSwgdHJ1ZSk7CiAKICAgICBfc3Rh
dGUgPSBJbW1lZGlhdGVBY3Rpb25TdGF0ZTo6UGVuZGluZzsKICAgICBpbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyLmFuaW1hdGlvbkNvbnRyb2xsZXIgPSBuaWw7CkBAIC0yMjYsMjIgKzIxOSwxMCBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIGlmICghYWJzb2x1dGVMaW5rVVJMLmlzRW1w
dHkoKSAmJiBXZWJDb3JlOjpwcm90b2NvbElzSW5IVFRQRmFtaWx5KGFic29sdXRlTGlua1VSTCkp
IHsKICAgICAgICAgX3R5cGUgPSBrV0tJbW1lZGlhdGVBY3Rpb25MaW5rUHJldmlldzsKIAotICAg
ICAgICBCT09MIHNob3VsZFVzZVN0YW5kYXJkUXVpY2tMb29rUHJldmlldyA9IFtfd2tWaWV3IF9z
aG91bGRVc2VTdGFuZGFyZFF1aWNrTG9va1ByZXZpZXddICYmIFtOU01lbnVJdGVtIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3RhbmRhcmRRdWlja0xvb2tNZW51SXRlbSldOwotICAgICAg
ICBpZiAoc2hvdWxkVXNlU3RhbmRhcmRRdWlja0xvb2tQcmV2aWV3KSB7Ci0gICAgICAgICAgICBS
ZXRhaW5QdHI8TlNNZW51SXRlbT4gcHJldmlld0xpbmtJdGVtOwotICAgICAgICAgICAgUmV0YWlu
UHRyPFFMUHJldmlld01lbnVJdGVtPiBxbFByZXZpZXdMaW5rSXRlbTsKLSAgICAgICAgICAgIGlm
IChzaG91bGRVc2VTdGFuZGFyZFF1aWNrTG9va1ByZXZpZXcpIHsKLSAgICAgICAgICAgICAgICBx
bFByZXZpZXdMaW5rSXRlbSA9IFtOU01lbnVJdGVtIHN0YW5kYXJkUXVpY2tMb29rTWVudUl0ZW1d
OwotICAgICAgICAgICAgICAgIFtxbFByZXZpZXdMaW5rSXRlbSBzZXRQcmV2aWV3U3R5bGU6UUxQ
cmV2aWV3U3R5bGVQb3BvdmVyXTsKLSAgICAgICAgICAgICAgICBbcWxQcmV2aWV3TGlua0l0ZW0g
c2V0RGVsZWdhdGU6c2VsZl07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gKGlk
PE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pcWxQcmV2aWV3TGlua0l0ZW0u
Z2V0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25Db250cm9sbGVyPiBwcmV2aWV3Q29udHJvbGxlciA9IFtzZWxmIF9hbmltYXRpb25Db250
cm9sbGVyRm9yQ3VzdG9tUHJldmlld10pCi0gICAgICAgICAgICByZXR1cm4gcHJldmlld0NvbnRy
b2xsZXI7Ci0gICAgICAgIHJldHVybiBuaWw7Ci0KKyAgICAgICAgUmV0YWluUHRyPFFMUHJldmll
d01lbnVJdGVtPiBxbFByZXZpZXdMaW5rSXRlbSA9IFtOU01lbnVJdGVtIHN0YW5kYXJkUXVpY2tM
b29rTWVudUl0ZW1dOworICAgICAgICBbcWxQcmV2aWV3TGlua0l0ZW0gc2V0UHJldmlld1N0eWxl
OlFMUHJldmlld1N0eWxlUG9wb3Zlcl07CisgICAgICAgIFtxbFByZXZpZXdMaW5rSXRlbSBzZXRE
ZWxlZ2F0ZTpzZWxmXTsKKyAgICAgICAgcmV0dXJuIChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkNvbnRyb2xsZXI+KXFsUHJldmlld0xpbmtJdGVtLmdldCgpOwogICAgIH0KIAogICAgIGlm
IChoaXRUZXN0UmVzdWx0LT5pc1RleHROb2RlKCkgfHwgaGl0VGVzdFJlc3VsdC0+aXNPdmVyVGV4
dEluc2lkZUZvcm1Db250cm9sRWxlbWVudCgpKSB7CkBAIC0yNzcsNDEgKzI1OCw2IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyLmFu
aW1hdGlvbkNvbnRyb2xsZXIgPSBkZWZhdWx0QW5pbWF0aW9uQ29udHJvbGxlcjsKIH0KIAotI3By
YWdtYSBtYXJrIExpbmsgUHJldmlldyBhY3Rpb24KLQotLSAodm9pZCloaWRlUHJldmlldwotewot
ICAgIFtfcHJldmlld0FuaW1hdGlvbkNvbnRyb2xsZXIgY2xvc2VdOwotfQotCi0tICh2b2lkKXNl
dFByZXZpZXdUaXRsZTooTlNTdHJpbmcgKilwcmV2aWV3VGl0bGUKLXsKLSAgICBbX3ByZXZpZXdB
bmltYXRpb25Db250cm9sbGVyIHNldFByZXZpZXdUaXRsZTpwcmV2aWV3VGl0bGVdOwotfQotCi0t
ICh2b2lkKXNldFByZXZpZXdMb2FkaW5nOihCT09MKWxvYWRpbmcKLXsKLSAgICBbX3ByZXZpZXdB
bmltYXRpb25Db250cm9sbGVyIHNldFByZXZpZXdMb2FkaW5nOmxvYWRpbmddOwotfQotCi0tICh2
b2lkKXNldFByZXZpZXdPdmVycmlkZUltYWdlOihOU0ltYWdlICopaW1hZ2UKLXsKLSAgICBbX3By
ZXZpZXdBbmltYXRpb25Db250cm9sbGVyIHNldFByZXZpZXdPdmVycmlkZUltYWdlOmltYWdlXTsK
LX0KLQotLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0
aW9uQ29udHJvbGxlckZvckN1c3RvbVByZXZpZXcKLXsKLSAgICBSZWZQdHI8V2ViSGl0VGVzdFJl
c3VsdD4gaGl0VGVzdFJlc3VsdCA9IFtzZWxmIF93ZWJIaXRUZXN0UmVzdWx0XTsKLSAgICBSZXRh
aW5QdHI8TlNVUkw+IHVybCA9IFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6aGl0VGVzdFJl
c3VsdC0+YWJzb2x1dGVMaW5rVVJMKCldOwotCi0gICAgaWYgKF9oaXRUZXN0UmVzdWx0LmxpbmtU
ZXh0SW5kaWNhdG9yKQotICAgICAgICBfcGFnZS0+c2V0VGV4dEluZGljYXRvcihfaGl0VGVzdFJl
c3VsdC5saW5rVGV4dEluZGljYXRvci0+ZGF0YSgpLCBmYWxzZSk7Ci0KLSAgICBfcHJldmlld0Fu
aW1hdGlvbkNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNv
bnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoVVJMOnVybC5nZXQoKSB2aWV3Ol93a1ZpZXcgcGFnZToq
X3BhZ2Ugb3JpZ2luUmVjdDpoaXRUZXN0UmVzdWx0LT5lbGVtZW50Qm91bmRpbmdCb3goKSBldmVu
dExvY2F0aW9uSW5WaWV3Ol9ldmVudExvY2F0aW9uSW5WaWV3XSk7Ci0KLSAgICByZXR1cm4gX3By
ZXZpZXdBbmltYXRpb25Db250cm9sbGVyLmdldCgpOwotfQotCiAjcHJhZ21hIG1hcmsgUUxQcmV2
aWV3TWVudUl0ZW1EZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgogCiAtIChOU1ZpZXcgKiltZW51SXRl
bTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIHZpZXdBdFNjcmVlblBvaW50OihOU1BvaW50KXNjcmVl
blBvaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUGFnZVBy
ZXZpZXdWaWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1Bh
Z2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGM3YzcyZDMzNDVhMmRiNGE1MTAwNzVlNTFlMzVmNTkzMzc4MzNlMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
X2gKLSNkZWZpbmUgV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyX2gKLQotI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLQotI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi1AY2xhc3MgTlNTdHJpbmc7Ci1AY2xhc3MgTlNUZXh0
RmllbGQ7Ci1AY2xhc3MgTlNVUkw7Ci1AY2xhc3MgTlNWaWV3OwotQGNsYXNzIFdLUGFnZVByZXZp
ZXdWaWV3Q29udHJvbGxlcjsKLQotQHByb3RvY29sIFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxl
ckRlbGVnYXRlIDxOU09iamVjdD4KLS0gKE5TVmlldyAqKXBhZ2VQcmV2aWV3Vmlld0NvbnRyb2xs
ZXI6KFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlciAqKXBhZ2VQcmV2aWV3Vmlld0NvbnRyb2xs
ZXIgdmlld0ZvclByZXZpZXdpbmdVUkw6KE5TVVJMICopdXJsIGluaXRpYWxGcmFtZVNpemU6KE5T
U2l6ZSlpbml0aWFsRnJhbWVTaXplOwotLSAoTlNTdHJpbmcgKilwYWdlUHJldmlld1ZpZXdDb250
cm9sbGVyOihXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIgKilwYWdlUHJldmlld1ZpZXdDb250
cm9sbGVyIHRpdGxlRm9yUHJldmlld09mVVJMOihOU1VSTCAqKXVybDsKLS0gKHZvaWQpcGFnZVBy
ZXZpZXdWaWV3Q29udHJvbGxlcldhc0NsaWNrZWQ6KFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxl
ciAqKXBhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXI7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgV0tQYWdl
UHJldmlld1ZpZXdDb250cm9sbGVyIDogTlNWaWV3Q29udHJvbGxlciB7Ci1AcHVibGljCi0gICAg
TlNTaXplIF9tYWluVmlld1NpemU7Ci0gICAgUmV0YWluUHRyPE5TVVJMPiBfdXJsOwotICAgIFJl
dGFpblB0cjxOU1ZpZXc+IF9wcmV2aWV3VmlldzsKLSAgICBSZXRhaW5QdHI8TlNUZXh0RmllbGQ+
IF90aXRsZVRleHRGaWVsZDsKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9wcmV2aWV3VGl0bGU7
Ci0gICAgUmV0YWluUHRyPE5TUHJvZ3Jlc3NJbmRpY2F0b3I+IF9zcGlubmVyOwotICAgIEJPT0wg
X2xvYWRpbmc7Ci0gICAgaWQgPFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlckRlbGVnYXRlPiBf
ZGVsZWdhdGU7Ci0gICAgQ0dGbG9hdCBfcG9wb3ZlclRvVmlld1NjYWxlOwotfQotCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKnByZXZpZXdUaXRsZTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBnZXR0ZXI9aXNMb2FkaW5nKSBCT09MIGxvYWRpbmc7Ci0KLS0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFBhZ2VVUkw6KE5TVVJMICopVVJMIG1haW5WaWV3U2l6ZTooTlNTaXplKXNp
emUgcG9wb3ZlclRvVmlld1NjYWxlOihDR0Zsb2F0KXNjYWxlOwotLSAodm9pZClyZXBsYWNlUHJl
dmlld1dpdGhJbWFnZTooTlNJbWFnZSAqKWltYWdlIGF0U2l6ZTooTlNTaXplKXNpemU7Ci0KLSsg
KE5TU2l6ZSlwcmV2aWV3UGFkZGluZzsKLQotQGVuZAotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotCi0jZW5kaWYg
Ly8gV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIubW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzODQ2NThiMjdmYmZiYTk4NjIyODBlNjUxZDMy
MGYyZGExNzg4MWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xs
ZXIubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBv
cnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmgiCi0K
LSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMDAwCi0KLXN0YXRpYyBjb25zdCBDR0Zsb2F0IHByZXZpZXdWaWV3SW5zZXQgPSAzOwotc3Rh
dGljIGNvbnN0IENHRmxvYXQgcHJldmlld1ZpZXdUaXRsZUhlaWdodCA9IDM0OwotCi1AaW1wbGVt
ZW50YXRpb24gV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyCi0KLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFBhZ2VVUkw6KE5TVVJMICopVVJMIG1haW5WaWV3U2l6ZTooTlNTaXplKXNpemUgcG9w
b3ZlclRvVmlld1NjYWxlOihDR0Zsb2F0KXNjYWxlCi17Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBfdXJsID0gVVJMOwotICAgIF9t
YWluVmlld1NpemUgPSBzaXplOwotICAgIF9wb3BvdmVyVG9WaWV3U2NhbGUgPSBzY2FsZTsKLQot
ICAgIHJldHVybiBzZWxmOwotfQotCi0tIChOU1N0cmluZyAqKXByZXZpZXdUaXRsZQotewotICAg
IHJldHVybiBfcHJldmlld1RpdGxlLmdldCgpOwotfQotCi0tICh2b2lkKXNldFByZXZpZXdUaXRs
ZTooTlNTdHJpbmcgKilwcmV2aWV3VGl0bGUKLXsKLSAgICBpZiAoW19wcmV2aWV3VGl0bGUgaXNF
cXVhbFRvU3RyaW5nOnByZXZpZXdUaXRsZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEtl
ZXAgYSBzZXBhcmF0ZSBjb3B5IGFyb3VuZCBpbiBjYXNlIHRoaXMgaXMgcmVjZWl2ZWQgYmVmb3Jl
IHRoZSB2aWV3IGhpZXJhcmNoeSBpcyBjcmVhdGVkLgotICAgIF9wcmV2aWV3VGl0bGUgPSBhZG9w
dE5TKFtwcmV2aWV3VGl0bGUgY29weV0pOwotICAgIFtfdGl0bGVUZXh0RmllbGQgc2V0U3RyaW5n
VmFsdWU6cHJldmlld1RpdGxlID8gcHJldmlld1RpdGxlIDogQCIiXTsKLX0KLQotKyAoTlNTaXpl
KXByZXZpZXdQYWRkaW5nCi17Ci0gICAgcmV0dXJuIE5TTWFrZVNpemUoMiAqIHByZXZpZXdWaWV3
SW5zZXQsIHByZXZpZXdWaWV3VGl0bGVIZWlnaHQgKyAyICogcHJldmlld1ZpZXdJbnNldCk7Ci19
Ci0KLS0gKHZvaWQpc2V0TG9hZGluZzooQk9PTClsb2FkaW5nCi17Ci0gICAgaWYgKF9sb2FkaW5n
ID09IGxvYWRpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9sb2FkaW5nID0gbG9hZGluZzsK
LQotICAgIFtfcHJldmlld1ZpZXcgc2V0SGlkZGVuOmxvYWRpbmddOwotCi0gICAgaWYgKF9sb2Fk
aW5nKQotICAgICAgICBbX3NwaW5uZXIgc3RhcnRBbmltYXRpb246bmlsXTsKLSAgICBlbHNlCi0g
ICAgICAgIFtfc3Bpbm5lciBzdG9wQW5pbWF0aW9uOm5pbF07Ci19Ci0KLS0gKEJPT0wpaXNMb2Fk
aW5nCi17Ci0gICAgcmV0dXJuIF9sb2FkaW5nOwotfQotCi0tICh2b2lkKWxvYWRWaWV3Ci17Ci0g
ICAgTlNSZWN0IGRlZmF1bHRGcmFtZSA9IE5TTWFrZVJlY3QoMCwgMCwgX21haW5WaWV3U2l6ZS53
aWR0aCwgX21haW5WaWV3U2l6ZS5oZWlnaHQpOwotICAgIF9wcmV2aWV3VmlldyA9IFtfZGVsZWdh
dGUgcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjpzZWxmIHZpZXdGb3JQcmV2aWV3aW5nVVJMOl91
cmwuZ2V0KCkgaW5pdGlhbEZyYW1lU2l6ZTpkZWZhdWx0RnJhbWUuc2l6ZV07Ci0gICAgQVNTRVJU
KF9wcmV2aWV3Vmlldyk7Ci0KLSAgICBSZXRhaW5QdHI8TlNDbGlja0dlc3R1cmVSZWNvZ25pemVy
PiBjbGlja1JlY29nbml6ZXIgPSBhZG9wdE5TKFtbTlNDbGlja0dlc3R1cmVSZWNvZ25pemVyIGFs
bG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX2NsaWNrUmVjb2duaXpl
ZDopXSk7Ci0gICAgW19wcmV2aWV3VmlldyBhZGRHZXN0dXJlUmVjb2duaXplcjpjbGlja1JlY29n
bml6ZXIuZ2V0KCldOwotCi0gICAgTlNSZWN0IHByZXZpZXdGcmFtZSA9IFtfcHJldmlld1ZpZXcg
ZnJhbWVdOwotICAgIE5TUmVjdCBjb250YWluZXJGcmFtZSA9IHByZXZpZXdGcmFtZTsKLSAgICBO
U1NpemUgdG90YWxQYWRkaW5nID0gW1tzZWxmIGNsYXNzXSBwcmV2aWV3UGFkZGluZ107Ci0gICAg
Y29udGFpbmVyRnJhbWUuc2l6ZS53aWR0aCArPSB0b3RhbFBhZGRpbmcud2lkdGg7Ci0gICAgY29u
dGFpbmVyRnJhbWUuc2l6ZS5oZWlnaHQgKz0gdG90YWxQYWRkaW5nLmhlaWdodDsKLSAgICBwcmV2
aWV3RnJhbWUgPSBOU09mZnNldFJlY3QocHJldmlld0ZyYW1lLCBwcmV2aWV3Vmlld0luc2V0LCBw
cmV2aWV3Vmlld0luc2V0KTsKLQotICAgIFJldGFpblB0cjxOU1ZpZXc+IGNvbnRhaW5lclZpZXcg
PSBhZG9wdE5TKFtbTlNWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmNvbnRhaW5lckZyYW1lXSk7
Ci0gICAgW2NvbnRhaW5lclZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdXaWR0aFNpemFi
bGUgfCBOU1ZpZXdIZWlnaHRTaXphYmxlXTsKLSAgICBbY29udGFpbmVyVmlldyBhZGRTdWJ2aWV3
Ol9wcmV2aWV3Vmlldy5nZXQoKV07Ci0gICAgW19wcmV2aWV3VmlldyBzZXRGcmFtZTpwcmV2aWV3
RnJhbWVdOwotICAgIFtfcHJldmlld1ZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdXaWR0
aFNpemFibGUgfCBOU1ZpZXdIZWlnaHRTaXphYmxlXTsKLSAgICBbX3ByZXZpZXdWaWV3IHNldEhp
ZGRlbjpZRVNdOwotCi0gICAgX3RpdGxlVGV4dEZpZWxkID0gYWRvcHROUyhbW05TVGV4dEZpZWxk
IGFsbG9jXSBpbml0XSk7Ci0gICAgW190aXRsZVRleHRGaWVsZCBzZXRXYW50c0xheWVyOllFU107
Ci0gICAgW190aXRsZVRleHRGaWVsZCBzZXRBdXRvcmVzaXppbmdNYXNrOk5TVmlld1dpZHRoU2l6
YWJsZSB8IE5TVmlld01pbllNYXJnaW5dOwotICAgIFtfdGl0bGVUZXh0RmllbGQgc2V0RWRpdGFi
bGU6Tk9dOwotICAgIFtfdGl0bGVUZXh0RmllbGQgc2V0QmV6ZWxlZDpOT107Ci0gICAgW190aXRs
ZVRleHRGaWVsZCBzZXREcmF3c0JhY2tncm91bmQ6Tk9dOwotICAgIFtfdGl0bGVUZXh0RmllbGQg
c2V0QWxpZ25tZW50Ok5TQ2VudGVyVGV4dEFsaWdubWVudF07Ci0gICAgW190aXRsZVRleHRGaWVs
ZCBzZXRVc2VzU2luZ2xlTGluZU1vZGU6WUVTXTsKLSAgICBbX3RpdGxlVGV4dEZpZWxkIHNldExp
bmVCcmVha01vZGU6TlNMaW5lQnJlYWtCeVRydW5jYXRpbmdUYWlsXTsKLSAgICBbX3RpdGxlVGV4
dEZpZWxkIHNldFRleHRDb2xvcjpbTlNDb2xvciBsYWJlbENvbG9yXV07Ci0KLSAgICBOU1N0cmlu
ZyAqdGl0bGUgPSBfcHJldmlld1RpdGxlLmdldCgpOwotICAgIGlmICghdGl0bGUpCi0gICAgICAg
IHRpdGxlID0gW19kZWxlZ2F0ZSBwYWdlUHJldmlld1ZpZXdDb250cm9sbGVyOnNlbGYgdGl0bGVG
b3JQcmV2aWV3T2ZVUkw6X3VybC5nZXQoKV07Ci0gICAgaWYgKCF0aXRsZSkKLSAgICAgICAgdGl0
bGUgPSBbX3VybCBhYnNvbHV0ZVN0cmluZ107Ci0KLSAgICBbX3RpdGxlVGV4dEZpZWxkIHNldFN0
cmluZ1ZhbHVlOnRpdGxlID8gdGl0bGUgOiBAIiJdOwotCi0gICAgW190aXRsZVRleHRGaWVsZCBz
aXplVG9GaXRdOwotICAgIE5TU2l6ZSB0aXRsZUZpdHRpbmdTaXplID0gW190aXRsZVRleHRGaWVs
ZCBmcmFtZV0uc2l6ZTsKLSAgICBDR0Zsb2F0IHRleHRGaWVsZENlbnRlcmluZ09mZnNldCA9IChO
U01heFkoY29udGFpbmVyRnJhbWUpIC0gTlNNYXhZKHByZXZpZXdGcmFtZSkgLSB0aXRsZUZpdHRp
bmdTaXplLmhlaWdodCkgLyAyOwotCi0gICAgTlNSZWN0IHRpdGxlRnJhbWUgPSBwcmV2aWV3RnJh
bWU7Ci0gICAgdGl0bGVGcmFtZS5zaXplLmhlaWdodCA9IHRpdGxlRml0dGluZ1NpemUuaGVpZ2h0
OwotICAgIHRpdGxlRnJhbWUub3JpZ2luLnkgPSBOU01heFkocHJldmlld0ZyYW1lKSArIHRleHRG
aWVsZENlbnRlcmluZ09mZnNldDsKLSAgICBbX3RpdGxlVGV4dEZpZWxkIHNldEZyYW1lOnRpdGxl
RnJhbWVdOwotICAgIFtjb250YWluZXJWaWV3IGFkZFN1YnZpZXc6X3RpdGxlVGV4dEZpZWxkLmdl
dCgpXTsKLQotICAgIE5TU2l6ZSBzcGlubmVyU2l6ZSA9IE5TTWFrZVNpemUoNDgsIDQ4KTsKLSAg
ICBOU1JlY3Qgc3Bpbm5lckZyYW1lID0gTlNNYWtlUmVjdChOU01pZFgoY29udGFpbmVyRnJhbWUp
LCBOU01pZFkoY29udGFpbmVyRnJhbWUpLCAwLCAwKTsKLSAgICBzcGlubmVyRnJhbWUgPSBOU0lu
c2V0UmVjdChzcGlubmVyRnJhbWUsIC1zcGlubmVyU2l6ZS53aWR0aCAqIDAuNSwgLXNwaW5uZXJT
aXplLmhlaWdodCAqIDAuNSk7Ci0gICAgc3Bpbm5lckZyYW1lLm9yaWdpbi54ID0gZmxvb3Ioc3Bp
bm5lckZyYW1lLm9yaWdpbi54KTsKLSAgICBzcGlubmVyRnJhbWUub3JpZ2luLnkgPSBmbG9vcihz
cGlubmVyRnJhbWUub3JpZ2luLnkpOwotCi0gICAgX3NwaW5uZXIgPSBhZG9wdE5TKFtbTlNQcm9n
cmVzc0luZGljYXRvciBhbGxvY10gaW5pdFdpdGhGcmFtZTpzcGlubmVyRnJhbWVdKTsKLSAgICBb
X3NwaW5uZXIgc2V0U3R5bGU6TlNQcm9ncmVzc0luZGljYXRvclNwaW5uaW5nU3R5bGVdOwotICAg
IFtfc3Bpbm5lciBzZXREaXNwbGF5ZWRXaGVuU3RvcHBlZDpOT107Ci0gICAgW19zcGlubmVyIHNl
dEF1dG9yZXNpemluZ01hc2s6TlNWaWV3TWluWE1hcmdpbiB8IE5TVmlld01heFhNYXJnaW4gfCBO
U1ZpZXdNaW5ZTWFyZ2luIHwgTlNWaWV3TWF4WU1hcmdpbl07Ci0gICAgW19zcGlubmVyIHNldEFw
cGVhcmFuY2U6W05TQXBwZWFyYW5jZSBhcHBlYXJhbmNlTmFtZWQ6TlNBcHBlYXJhbmNlTmFtZUFx
dWFdXTsKLSAgICBpZiAoX2xvYWRpbmcpCi0gICAgICAgIFtfc3Bpbm5lciBzdGFydEFuaW1hdGlv
bjpuaWxdOwotCi0gICAgW2NvbnRhaW5lclZpZXcgYWRkU3Vidmlldzpfc3Bpbm5lci5nZXQoKV07
Ci0KLSAgICAvLyBTZXR0aW5nIHRoZSB3ZWJWaWV3IGJvdW5kcyB3aWxsIHNjYWxlIGl0IHRvIDc1
JSBvZiB0aGUgX21haW5WaWV3U2l6ZS4KLSAgICBbX3ByZXZpZXdWaWV3IHNldEJvdW5kczpOU01h
a2VSZWN0KDAsIDAsIF9tYWluVmlld1NpemUud2lkdGggLyBfcG9wb3ZlclRvVmlld1NjYWxlLCBf
bWFpblZpZXdTaXplLmhlaWdodCAvIF9wb3BvdmVyVG9WaWV3U2NhbGUpXTsKLQotICAgIHNlbGYu
dmlldyA9IGNvbnRhaW5lclZpZXcuZ2V0KCk7Ci19Ci0KLS0gKHZvaWQpcmVwbGFjZVByZXZpZXdX
aXRoSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBhdFNpemU6KE5TU2l6ZSlzaXplCi17Ci0gICAgUmV0
YWluUHRyPE5TQ2xpY2tHZXN0dXJlUmVjb2duaXplcj4gY2xpY2tSZWNvZ25pemVyID0gYWRvcHRO
UyhbW05TQ2xpY2tHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBh
Y3Rpb246QHNlbGVjdG9yKF9jbGlja1JlY29nbml6ZWQ6KV0pOwotICAgIFJldGFpblB0cjxOU0lt
YWdlVmlldz4gaW1hZ2VWaWV3ID0gYWRvcHROUyhbW05TSW1hZ2VWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpXSk7Ci0gICAg
W2ltYWdlVmlldyBzZXRJbWFnZTppbWFnZV07Ci0gICAgW2ltYWdlVmlldyBhZGRHZXN0dXJlUmVj
b2duaXplcjpjbGlja1JlY29nbml6ZXIuZ2V0KCldOwotICAgIHNlbGYudmlldyA9IGltYWdlVmll
dy5nZXQoKTsKLX0KLQotLSAodm9pZClfY2xpY2tSZWNvZ25pemVkOihOU0dlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbml6ZXIKLXsKLSAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIuc3Rh
dGUgPT0gTlNHZXN0dXJlUmVjb2duaXplclN0YXRlQmVnYW4pCi0gICAgICAgIFtfZGVsZWdhdGUg
cGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcldhc0NsaWNrZWQ6c2VsZl07Ci19Ci0KLUBlbmQKLQot
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEwMDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tQ
cmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDQzODkxMzNmMWQ3NGM0ZGIzYzRiYTIyMjc4NWNlMWMzNGE2
ZDQ2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9s
bGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlcl9oCi0jZGVmaW5lIFdLUHJldmll
d1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyX2gKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLQotI2ltcG9ydCA8V2ViQ29y
ZS9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+Ci0jaW1wb3J0IDx3dGYv
Rm9yd2FyZC5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLWNsYXNzIFdlYlBhZ2VQcm94eTsKLX07Ci0KLUBjbGFzcyBOU0ltbWVkaWF0ZUFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyOwotQGNsYXNzIE5TUG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXI7Ci1A
Y2xhc3MgTlNTdHJpbmc7Ci1AY2xhc3MgTlNVUkw7Ci1AY2xhc3MgV0tQYWdlUHJldmlld1ZpZXdD
b250cm9sbGVyOwotQGNsYXNzIFdLVmlldzsKLQotQGludGVyZmFjZSBXS1ByZXZpZXdQb3BvdmVy
QW5pbWF0aW9uQ29udHJvbGxlciA6IE5TT2JqZWN0IDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bkNvbnRyb2xsZXI+IHsKLSAgICBib29sIF9zaG91bGRTaG93UHJldmlld1doZW5Mb2FkZWQ7Ci0g
ICAgYm9vbCBfaGFzRmluaXNoZWRMb2FkaW5nOwotCi0gICAgV0tWaWV3ICpfd2tWaWV3OwotICAg
IFJldGFpblB0cjxOU1VSTD4gX3VybDsKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3BhZ2U7
Ci0KLSAgICBSZXRhaW5QdHI8TlNQb3BvdmVyPiBfcHJldmlld1BvcG92ZXI7Ci0gICAgTlNSZWN0
IF9wb3BvdmVyT3JpZ2luUmVjdDsKLSAgICBSZXRhaW5QdHI8V0tQYWdlUHJldmlld1ZpZXdDb250
cm9sbGVyPiBfcHJldmlld1ZpZXdDb250cm9sbGVyOwotICAgIE5TUG9pbnQgX2V2ZW50TG9jYXRp
b25JblZpZXc7Ci0KLSAgICBSZXRhaW5QdHI8TlNQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlcj4g
X3BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyOwotCi0gICAgTlNJbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplciAqX3JlY29nbml6ZXI7Ci0gICAgYm9vbCBfZGlkQ29tcGxldGVBbmltYXRp
b247Ci0gICAgUmV0YWluUHRyPE5TVGltZXI+IF9wcmV2aWV3V2F0Y2hkb2dUaW1lcjsKLX0KLQot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVVJMOihOU1VSTCAqKXVybCB2aWV3OihXS1ZpZXcgKil3
a1ZpZXcgcGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2Ugb3JpZ2luUmVjdDooTlNSZWN0
KW9yaWdpblJlY3QgZXZlbnRMb2NhdGlvbkluVmlldzooTlNQb2ludClldmVudExvY2F0aW9uSW5W
aWV3OwotLSAodm9pZCljbG9zZTsKLQotLSAodm9pZClzZXRQcmV2aWV3VGl0bGU6KE5TU3RyaW5n
ICopcHJldmlld1RpdGxlOwotLSAodm9pZClzZXRQcmV2aWV3TG9hZGluZzooQk9PTClsb2FkaW5n
OwotLSAodm9pZClzZXRQcmV2aWV3T3ZlcnJpZGVJbWFnZTooTlNJbWFnZSAqKWltYWdlOwotCi1A
ZW5kCi0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKLQotI2VuZGlmIC8vIFdLUHJldmlld1BvcG92ZXJBbmltYXRp
b25Db250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyLm1tCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTA1MzQxMDY4YTcyNGVkZWJjZmQ0MWU2ZGFhZWZj
YWM5M2UxZDFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNv
bnRyb2xsZXIubW0KKysrIC9kZXYvbnVsbApAQCAtMSwzNjcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNv
bnRyb2xsZXIuaCIKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKLQotI2ltcG9ydCAiV0tQYWdlUHJldmlld1ZpZXdDb250cm9s
bGVyLmgiCi0jaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgotI2ltcG9ydCAiV2ViUGFnZVByb3h5
LmgiCi0jaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9HZW9t
ZXRyeVV0aWxpdGllcy5oPgotI2ltcG9ydCA8V2ViQ29yZS9OU1BvcG92ZXJTUEkuaD4KLSNpbXBv
cnQgPGFsZ29yaXRobT4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwotCi1AaW50ZXJmYWNlIFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9s
bGVyICgpIDxXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSwgTlNQb3BvdmVyRGVs
ZWdhdGU+Ci1AZW5kCi0KLXN0YXRpYyBjb25zdCBDR0Zsb2F0IHByZWZlcnJlZFBvcG92ZXJUb1Zp
ZXdTY2FsZSA9IDAuNzU7Ci0KLUBpbXBsZW1lbnRhdGlvbiBXS1ByZXZpZXdQb3BvdmVyQW5pbWF0
aW9uQ29udHJvbGxlcgotCi0rIChib29sKV9zaG91bGRJbW1lZGlhdGVseVNob3dQcmV2aWV3Ci17
Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkSW1tZWRpYXRlbHlTaG93UHJldmlldzsKLSAgICBzdGF0
aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9r
ZW4sIF57Ci0gICAgICAgIHNob3VsZEltbWVkaWF0ZWx5U2hvd1ByZXZpZXcgPSBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiV2ViS2l0U2hvdWxkSW1t
ZWRpYXRlbHlTaG93UHJldmlldyJdOwotICAgIH0pOwotICAgIHJldHVybiBzaG91bGRJbW1lZGlh
dGVseVNob3dQcmV2aWV3OwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhVUkw6KE5TVVJM
ICopdXJsIHZpZXc6KFdLVmlldyAqKXdrVmlldyBwYWdlOihXZWJQYWdlUHJveHkmKXBhZ2Ugb3Jp
Z2luUmVjdDooTlNSZWN0KW9yaWdpblJlY3QgZXZlbnRMb2NhdGlvbkluVmlldzooTlNQb2ludCll
dmVudExvY2F0aW9uSW5WaWV3Ci17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLQotICAgIGlm
ICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIF91cmwgPSB1cmw7Ci0gICAgX3dr
VmlldyA9IHdrVmlldzsKLSAgICBfcGFnZSA9ICZwYWdlOwotICAgIF9wb3BvdmVyT3JpZ2luUmVj
dCA9IG9yaWdpblJlY3Q7Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gZ2V0
IHRoaXMgZnJvbSB0aGUgcmVjb2duaXplci4KLSAgICBfZXZlbnRMb2NhdGlvbkluVmlldyA9IGV2
ZW50TG9jYXRpb25JblZpZXc7Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZCljbG9z
ZQotewotICAgIFtzZWxmIF9oaWRlUHJldmlld107Ci0KLSAgICBfd2tWaWV3ID0gbmlsOwotICAg
IF9wYWdlID0gbnVsbHB0cjsKLX0KLQotLSAodm9pZClzZXRQcmV2aWV3TG9hZGluZzooQk9PTCls
b2FkaW5nCi17Ci0gICAgW19wcmV2aWV3Vmlld0NvbnRyb2xsZXIgc2V0TG9hZGluZzpsb2FkaW5n
XTsKLSAgICBfaGFzRmluaXNoZWRMb2FkaW5nID0gIWxvYWRpbmc7Ci0gICAgaWYgKCFsb2FkaW5n
ICYmIF9zaG91bGRTaG93UHJldmlld1doZW5Mb2FkZWQpCi0gICAgICAgIFtzZWxmIF9zaG93UHJl
dmlld107Ci19Ci0KLS0gKHZvaWQpc2V0UHJldmlld092ZXJyaWRlSW1hZ2U6KE5TSW1hZ2UgKilp
bWFnZQotewotICAgIE5TU2l6ZSBpbWFnZVNpemUgPSBpbWFnZS5zaXplOwotICAgIE5TU2l6ZSBz
Y2FsZWRJbWFnZVNpemU7Ci0gICAgaWYgKFtfcHJldmlld1BvcG92ZXIgaXNTaG93bl0pIHsKLSAg
ICAgICAgTlNTaXplIGN1cnJlbnRQb3BvdmVyQ29udGVudFNpemUgPSBbX3ByZXZpZXdQb3BvdmVy
IGNvbnRlbnRTaXplXTsKLSAgICAgICAgZmxvYXQgc2NhbGUgPSBzdGQ6Om1pbihzdGQ6Om1pbjxm
bG9hdD4oY3VycmVudFBvcG92ZXJDb250ZW50U2l6ZS53aWR0aCAvIGltYWdlU2l6ZS53aWR0aCwg
MS4wKSwgc3RkOjptaW48ZmxvYXQ+KGN1cnJlbnRQb3BvdmVyQ29udGVudFNpemUuaGVpZ2h0IC8g
aW1hZ2VTaXplLmhlaWdodCwgMS4wKSk7Ci0gICAgICAgIHNjYWxlZEltYWdlU2l6ZSA9IE5TTWFr
ZVNpemUoaW1hZ2VTaXplLndpZHRoICogc2NhbGUsIGltYWdlU2l6ZS5oZWlnaHQgKiBzY2FsZSk7
Ci0gICAgfSBlbHNlCi0gICAgICAgIHNjYWxlZEltYWdlU2l6ZSA9IFtzZWxmIF9wcmVmZXJyZWRQ
b3BvdmVyU2l6ZVdpdGhQcmV2aWV3UGFkZGluZzpbV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
IHByZXZpZXdQYWRkaW5nXSBmb3JUYXJnZXRTaXplOmltYWdlU2l6ZV07Ci0KLSAgICBbX3ByZXZp
ZXdQb3BvdmVyIHNldENvbnRlbnRTaXplOnNjYWxlZEltYWdlU2l6ZV07Ci0gICAgW19wcmV2aWV3
Vmlld0NvbnRyb2xsZXIgcmVwbGFjZVByZXZpZXdXaXRoSW1hZ2U6aW1hZ2UgYXRTaXplOnNjYWxl
ZEltYWdlU2l6ZV07Ci19Ci0KLS0gKHZvaWQpX2hpZGVQcmV2aWV3Ci17Ci0gICAgaWYgKF9wYWdl
KQotICAgICAgICBfcGFnZS0+Y2xlYXJUZXh0SW5kaWNhdG9yKCk7Ci0KLSAgICBpZiAoX3ByZXZp
ZXdWaWV3Q29udHJvbGxlcikgewotICAgICAgICBfcHJldmlld1ZpZXdDb250cm9sbGVyLT5fZGVs
ZWdhdGUgPSBuaWw7Ci0gICAgICAgIFtfd2tWaWV3IF9maW5pc2hQcmV2aWV3aW5nVVJMOl9wcmV2
aWV3Vmlld0NvbnRyb2xsZXItPl91cmwuZ2V0KCkgd2l0aFByZXZpZXdWaWV3Ol9wcmV2aWV3Vmll
d0NvbnRyb2xsZXItPl9wcmV2aWV3Vmlldy5nZXQoKV07Ci0gICAgICAgIF9wcmV2aWV3Vmlld0Nv
bnRyb2xsZXIgPSBuaWw7Ci0gICAgfQotCi0gICAgW19wcmV2aWV3UG9wb3ZlciBjbG9zZV07Ci0g
ICAgW19wcmV2aWV3UG9wb3ZlciBzZXREZWxlZ2F0ZTpuaWxdOwotICAgIF9wcmV2aWV3UG9wb3Zl
ciA9IG5pbDsKLX0KLQotLSAodm9pZClzZXRQcmV2aWV3VGl0bGU6KE5TU3RyaW5nICopcHJldmll
d1RpdGxlCi17Ci0gICAgW19wcmV2aWV3Vmlld0NvbnRyb2xsZXIgc2V0UHJldmlld1RpdGxlOnBy
ZXZpZXdUaXRsZV07Ci19Ci0KLS0gKHZvaWQpX2NyZWF0ZVByZXZpZXdQb3BvdmVyCi17Ci0gICAg
TlNTaXplIHByZXZpZXdQYWRkaW5nID0gW1dLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlciBwcmV2
aWV3UGFkZGluZ107Ci0gICAgTlNTaXplIHBvcG92ZXJTaXplID0gW3NlbGYgX3ByZWZlcnJlZFBv
cG92ZXJTaXplV2l0aFByZXZpZXdQYWRkaW5nOnByZXZpZXdQYWRkaW5nIGZvclRhcmdldFNpemU6
W3NlbGYgX3RhcmdldFNpemVGb3JQYWdlUHJldmlld11dOwotICAgIENHRmxvYXQgYWN0dWFsUG9w
b3ZlclRvVmlld1NjYWxlID0gcG9wb3ZlclNpemUud2lkdGggLyBOU1dpZHRoKF93a1ZpZXcuYm91
bmRzKTsKLSAgICBwb3BvdmVyU2l6ZS53aWR0aCArPSBwcmV2aWV3UGFkZGluZy53aWR0aDsKLSAg
ICBwb3BvdmVyU2l6ZS5oZWlnaHQgKz0gcHJldmlld1BhZGRpbmcuaGVpZ2h0OwotCi0gICAgX3By
ZXZpZXdWaWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xs
ZXIgYWxsb2NdIGluaXRXaXRoUGFnZVVSTDpfdXJsLmdldCgpIG1haW5WaWV3U2l6ZTpfd2tWaWV3
LmJvdW5kcy5zaXplIHBvcG92ZXJUb1ZpZXdTY2FsZTphY3R1YWxQb3BvdmVyVG9WaWV3U2NhbGVd
KTsKLSAgICBfcHJldmlld1ZpZXdDb250cm9sbGVyLT5fZGVsZWdhdGUgPSBzZWxmOwotICAgIFtf
cHJldmlld1ZpZXdDb250cm9sbGVyIHNldExvYWRpbmc6WUVTXTsKLSAgICBbX3ByZXZpZXdWaWV3
Q29udHJvbGxlciBsb2FkVmlld107Ci0KLSAgICBfcHJldmlld1BvcG92ZXIgPSBhZG9wdE5TKFtb
TlNQb3BvdmVyIGFsbG9jXSBpbml0XSk7Ci0gICAgW19wcmV2aWV3UG9wb3ZlciBzZXRCZWhhdmlv
cjpOU1BvcG92ZXJCZWhhdmlvclRyYW5zaWVudF07Ci0gICAgW19wcmV2aWV3UG9wb3ZlciBzZXRD
b250ZW50U2l6ZTpwb3BvdmVyU2l6ZV07Ci0gICAgW19wcmV2aWV3UG9wb3ZlciBzZXRDb250ZW50
Vmlld0NvbnRyb2xsZXI6X3ByZXZpZXdWaWV3Q29udHJvbGxlci5nZXQoKV07Ci0gICAgW19wcmV2
aWV3UG9wb3ZlciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBbX3ByZXZpZXdQb3BvdmVyIHNldFBv
c2l0aW9uaW5nT3B0aW9uczpOU1BvcG92ZXJQb3NpdGlvbmluZ09wdGlvbktlZXBUb3BTdGFibGVd
OwotfQotCi0tICh2b2lkKV9zaG93UHJldmlldwotewotICAgIF9zaG91bGRTaG93UHJldmlld1do
ZW5Mb2FkZWQgPSBmYWxzZTsKLSAgICBbX3ByZXZpZXdXYXRjaGRvZ1RpbWVyIGludmFsaWRhdGVd
OwotICAgIF9wcmV2aWV3V2F0Y2hkb2dUaW1lciA9IG5pbDsKLQotICAgIENsYXNzIG5zUG9wb3Zl
ckFuaW1hdGlvbkNvbnRyb2xsZXJDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNQb3BvdmVy
QW5pbWF0aW9uQ29udHJvbGxlciIpOwotICAgIGlmIChuc1BvcG92ZXJBbmltYXRpb25Db250cm9s
bGVyQ2xhc3MpIHsKLSAgICAgICAgX3BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyID0gW25zUG9w
b3ZlckFuaW1hdGlvbkNvbnRyb2xsZXJDbGFzcyBwb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlcldp
dGhQb3BvdmVyOl9wcmV2aWV3UG9wb3Zlci5nZXQoKV07Ci0gICAgICAgIFtfcG9wb3ZlckFuaW1h
dGlvbkNvbnRyb2xsZXIgc2V0UHJlZmVycmVkRWRnZTpOU01heFlFZGdlXTsKLSAgICAgICAgW19w
b3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciBzZXRBbmNob3JWaWV3Ol93a1ZpZXddOwotICAgICAg
ICBbX3BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIHNldFBvc2l0aW9uaW5nUmVjdDpfcG9wb3Zl
ck9yaWdpblJlY3RdOwotCi0gICAgICAgIFtfcG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgcmVj
b2duaXplcldpbGxCZWdpbkFuaW1hdGlvbjpfcmVjb2duaXplcl07Ci0KLSAgICAgICAgaWYgKF9k
aWRDb21wbGV0ZUFuaW1hdGlvbikKLSAgICAgICAgICAgIFtfcG9wb3ZlckFuaW1hdGlvbkNvbnRy
b2xsZXIgcmVjb2duaXplckRpZENvbXBsZXRlQW5pbWF0aW9uOl9yZWNvZ25pemVyXTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgW19wb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciByZWNvZ25p
emVyRGlkVXBkYXRlQW5pbWF0aW9uOl9yZWNvZ25pemVyXTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBi
b29sIHRhcmdldFNpemVGaXRzSW5BdmFpbGFibGVTcGFjZShOU1NpemUgdGFyZ2V0U2l6ZSwgTlNT
aXplIGF2YWlsYWJsZVNwYWNlKQotewotICAgIHJldHVybiB0YXJnZXRTaXplLndpZHRoIDw9IGF2
YWlsYWJsZVNwYWNlLndpZHRoICYmIHRhcmdldFNpemUuaGVpZ2h0IDw9IGF2YWlsYWJsZVNwYWNl
LmhlaWdodDsKLX0KLQotLSAoTlNTaXplKWxhcmdlc3RQb3BvdmVyU2l6ZQotewotICAgIE5TU2l6
ZSBzY3JlZW5TaXplID0gX3drVmlldy53aW5kb3cuc2NyZWVuLmZyYW1lLnNpemU7Ci0KLSAgICBp
ZiAoc2NyZWVuU2l6ZS53aWR0aCA9PSAxMjgwICYmIHNjcmVlblNpemUuaGVpZ2h0ID09IDgwMCkK
LSAgICAgICAgcmV0dXJuIE5TTWFrZVNpemUoMTI0MCwgNjc0KTsKLQotICAgIGlmIChzY3JlZW5T
aXplLndpZHRoID09IDEzNjYgJiYgc2NyZWVuU2l6ZS5oZWlnaHQgPT0gNzY4KQotICAgICAgICBy
ZXR1cm4gTlNNYWtlU2l6ZSgxMjY0LCA2NDIpOwotCi0gICAgaWYgKHNjcmVlblNpemUud2lkdGgg
PT0gMTQ0MCAmJiBzY3JlZW5TaXplLmhlaWdodCA9PSA5MDApCi0gICAgICAgIHJldHVybiBOU01h
a2VTaXplKDEyNjQsIDc2MCk7Ci0KLSAgICBpZiAoc2NyZWVuU2l6ZS53aWR0aCA9PSAxNjgwICYm
IHNjcmVlblNpemUuaGVpZ2h0ID09IDEwNTApCi0gICAgICAgIHJldHVybiBOU01ha2VTaXplKDEz
MjQsIDkxMCk7Ci0KLSAgICByZXR1cm4gTlNNYWtlU2l6ZSgxMzI0LCA5NDApOwotfQotCi0tIChO
U1NpemUpX3RhcmdldFNpemVGb3JQYWdlUHJldmlldwotewotICAgIE5TUmVjdCB3a1ZpZXdCb3Vu
ZHMgPSBfd2tWaWV3LmJvdW5kczsKLSAgICByZXR1cm4gTlNNYWtlU2l6ZShOU1dpZHRoKHdrVmll
d0JvdW5kcykgKiBwcmVmZXJyZWRQb3BvdmVyVG9WaWV3U2NhbGUsIE5TSGVpZ2h0KHdrVmlld0Jv
dW5kcykgKiBwcmVmZXJyZWRQb3BvdmVyVG9WaWV3U2NhbGUpOwotfQotCi0tIChOU1NpemUpX2Vm
ZmVjdGl2ZVBhZGRpbmdXaXRoUHJldmlld1BhZGRpbmc6KE5TU2l6ZSlwcmV2aWV3UGFkZGluZwot
ewotICAgIHN0YXRpYyBjb25zdCBOU1NpemUgc2NyZWVuUGFkZGluZyA9IE5TTWFrZVNpemUoNDAs
IDQwKTsKLSAgICBOU1NpemUgZWZmZWN0aXZlUGFkZGluZyA9IE5TTWFrZVNpemUoc2NyZWVuUGFk
ZGluZy53aWR0aCArIHByZXZpZXdQYWRkaW5nLndpZHRoLCBzY3JlZW5QYWRkaW5nLmhlaWdodCAr
IHByZXZpZXdQYWRkaW5nLmhlaWdodCk7Ci0gICAgcmV0dXJuIGVmZmVjdGl2ZVBhZGRpbmc7Ci19
Ci0KLS0gKE5TU2l6ZSlfbWF4U3BhY2VBdmFpbGFibGVPbllFZGdlRm9yT3JpZ2luUmVjdDooTlNS
ZWN0KW9yaWdpblJlY3Qgd2l0aFNjcmVlblJlY3Q6KE5TUmVjdClzY3JlZW5SZWN0IHByZXZpZXdQ
YWRkaW5nOihOU1NpemUpcHJldmlld1BhZGRpbmcKLXsKLSAgICBDR0Zsb2F0IGF2YWlsYWJsZVNw
YWNlQWJvdmUgPSBOU01heFkoc2NyZWVuUmVjdCkgLSBOU01heFkob3JpZ2luUmVjdCk7Ci0gICAg
Q0dGbG9hdCBhdmFpbGFibGVTcGFjZUJlbG93ID0gTlNNaW5ZKG9yaWdpblJlY3QpIC0gTlNNaW5Z
KHNjcmVlblJlY3QpOwotICAgIE5TU2l6ZSBlZmZlY3RpdmVQYWRkaW5nID0gW3NlbGYgX2VmZmVj
dGl2ZVBhZGRpbmdXaXRoUHJldmlld1BhZGRpbmc6cHJldmlld1BhZGRpbmddOwotICAgIENHRmxv
YXQgbWF4QXZhaWxhYmxlVmVydGljYWxTcGFjZSA9IGZtYXgoYXZhaWxhYmxlU3BhY2VBYm92ZSwg
YXZhaWxhYmxlU3BhY2VCZWxvdykgLSBlZmZlY3RpdmVQYWRkaW5nLmhlaWdodDsKLSAgICByZXR1
cm4gTlNNYWtlU2l6ZShzY3JlZW5SZWN0LnNpemUud2lkdGggLSBlZmZlY3RpdmVQYWRkaW5nLmhl
aWdodCwgbWF4QXZhaWxhYmxlVmVydGljYWxTcGFjZSk7Ci19Ci0KLS0gKE5TU2l6ZSlfbWF4U3Bh
Y2VBdmFpbGFibGVPblhFZGdlRm9yT3JpZ2luUmVjdDooTlNSZWN0KW9yaWdpblJlY3Qgd2l0aFNj
cmVlblJlY3Q6KE5TUmVjdClzY3JlZW5SZWN0IHByZXZpZXdQYWRkaW5nOihOU1NpemUpcHJldmll
d1BhZGRpbmcKLXsKLSAgICBDR0Zsb2F0IGF2YWlsYWJsZVNwYWNlQXRMZWZ0ID0gTlNNaW5YKG9y
aWdpblJlY3QpIC0gTlNNaW5YKHNjcmVlblJlY3QpOwotICAgIENHRmxvYXQgYXZhaWxhYmxlU3Bh
Y2VBdFJpZ2h0ID0gTlNNYXhYKHNjcmVlblJlY3QpIC0gTlNNYXhYKG9yaWdpblJlY3QpOwotICAg
IE5TU2l6ZSBlZmZlY3RpdmVQYWRkaW5nID0gW3NlbGYgX2VmZmVjdGl2ZVBhZGRpbmdXaXRoUHJl
dmlld1BhZGRpbmc6cHJldmlld1BhZGRpbmddOwotICAgIENHRmxvYXQgbWF4QXZhaWxhYmxlSG9y
aXpvbnRhbFNwYWNlID0gZm1heChhdmFpbGFibGVTcGFjZUF0TGVmdCwgYXZhaWxhYmxlU3BhY2VB
dFJpZ2h0KSAtIGVmZmVjdGl2ZVBhZGRpbmcud2lkdGg7Ci0gICAgcmV0dXJuIE5TTWFrZVNpemUo
bWF4QXZhaWxhYmxlSG9yaXpvbnRhbFNwYWNlLCBzY3JlZW5SZWN0LnNpemUuaGVpZ2h0IC0gZWZm
ZWN0aXZlUGFkZGluZy53aWR0aCk7Ci19Ci0KLS0gKE5TU2l6ZSlfcHJlZmVycmVkUG9wb3ZlclNp
emVXaXRoUHJldmlld1BhZGRpbmc6KE5TU2l6ZSlwcmV2aWV3UGFkZGluZyBmb3JUYXJnZXRTaXpl
OihOU1NpemUpdGFyZ2V0U2l6ZQotewotICAgIHN0YXRpYyBjb25zdCBOU1NpemUgc21hbGxlc3RQ
b3BvdmVyU2l6ZSA9IE5TTWFrZVNpemUoNTAwLCA1MDApOwotCi0gICAgTlNXaW5kb3cgKndpbmRv
dyA9IF93a1ZpZXcud2luZG93OwotICAgIE5TUmVjdCBvcmlnaW5TY3JlZW5SZWN0ID0gW3dpbmRv
dyBjb252ZXJ0UmVjdFRvU2NyZWVuOltfd2tWaWV3IGNvbnZlcnRSZWN0Ol9wb3BvdmVyT3JpZ2lu
UmVjdCB0b1ZpZXc6bmlsXV07Ci0gICAgTlNSZWN0IHNjcmVlbkZyYW1lID0gd2luZG93LnNjcmVl
bi52aXNpYmxlRnJhbWU7Ci0KLSAgICBOU1NpemUgbGFyZ2VzdFBvcG92ZXJTaXplID0gW3NlbGYg
bGFyZ2VzdFBvcG92ZXJTaXplXTsKLQotICAgIE5TU2l6ZSBtYXhTcGFjZUF2YWlsYWJsZU9uWUVk
Z2UgPSBbc2VsZiBfbWF4U3BhY2VBdmFpbGFibGVPbllFZGdlRm9yT3JpZ2luUmVjdDpvcmlnaW5T
Y3JlZW5SZWN0IHdpdGhTY3JlZW5SZWN0OnNjcmVlbkZyYW1lIHByZXZpZXdQYWRkaW5nOnByZXZp
ZXdQYWRkaW5nXTsKLSAgICBpZiAodGFyZ2V0U2l6ZUZpdHNJbkF2YWlsYWJsZVNwYWNlKHRhcmdl
dFNpemUsIG1heFNwYWNlQXZhaWxhYmxlT25ZRWRnZSkgJiYgdGFyZ2V0U2l6ZUZpdHNJbkF2YWls
YWJsZVNwYWNlKHRhcmdldFNpemUsIGxhcmdlc3RQb3BvdmVyU2l6ZSkpCi0gICAgICAgIHJldHVy
biB0YXJnZXRTaXplOwotCi0gICAgTlNTaXplIG1heFNwYWNlQXZhaWxhYmxlT25YRWRnZSA9IFtz
ZWxmIF9tYXhTcGFjZUF2YWlsYWJsZU9uWEVkZ2VGb3JPcmlnaW5SZWN0Om9yaWdpblNjcmVlblJl
Y3Qgd2l0aFNjcmVlblJlY3Q6c2NyZWVuRnJhbWUgcHJldmlld1BhZGRpbmc6cHJldmlld1BhZGRp
bmddOwotICAgIGlmICh0YXJnZXRTaXplRml0c0luQXZhaWxhYmxlU3BhY2UodGFyZ2V0U2l6ZSwg
bWF4U3BhY2VBdmFpbGFibGVPblhFZGdlKSAmJiB0YXJnZXRTaXplRml0c0luQXZhaWxhYmxlU3Bh
Y2UodGFyZ2V0U2l6ZSwgbGFyZ2VzdFBvcG92ZXJTaXplKSkKLSAgICAgICAgcmV0dXJuIHRhcmdl
dFNpemU7Ci0KLSAgICAvLyBJZiB0aGUgb3JpZ2luU2NyZWVuUmVjdCBpcyB2ZXJ5IGxhcmdlLCB0
aGVuIGl0J3MgcG9zc2libGUgdGhhdCB3ZSBoYXZlIG5lZ2F0aXZlIGF2YWlsYWJsZSBzcGFjZSBv
bmNlIHRoZSBzY3JlZW4gcGFkZGluZwotICAgIC8vIHdhcyB0YWtlbiBpbnRvIGFjY291bnQuIElm
IHRoYXQgaXMgdGhlIGNhc2UsIGdpdmUgdXAgbm90IG9uIG5vdCB0cnlpbmcgdG8gb2JzY3VyZSB0
aGUgb3JpZ2luIFVSTC4KLSAgICBpZiAoKG1heFNwYWNlQXZhaWxhYmxlT25ZRWRnZS53aWR0aCA8
IDAgfHwgbWF4U3BhY2VBdmFpbGFibGVPbllFZGdlLmhlaWdodCA8IDApICYmIChtYXhTcGFjZUF2
YWlsYWJsZU9uWEVkZ2Uud2lkdGggPCAwIHx8IG1heFNwYWNlQXZhaWxhYmxlT25YRWRnZS5oZWln
aHQgPCAwKSkgewotICAgICAgICBfcG9wb3Zlck9yaWdpblJlY3Qub3JpZ2luID0gX2V2ZW50TG9j
YXRpb25JblZpZXc7Ci0gICAgICAgIF9wb3BvdmVyT3JpZ2luUmVjdC5zaXplID0gTlNNYWtlU2l6
ZSgxLCAxKTsKLSAgICAgICAgb3JpZ2luU2NyZWVuUmVjdCA9IFt3aW5kb3cgY29udmVydFJlY3RU
b1NjcmVlbjpbX3drVmlldyBjb252ZXJ0UmVjdDpfcG9wb3Zlck9yaWdpblJlY3QgdG9WaWV3Om5p
bF1dOwotICAgICAgICBtYXhTcGFjZUF2YWlsYWJsZU9uWUVkZ2UgPSBbc2VsZiBfbWF4U3BhY2VB
dmFpbGFibGVPbllFZGdlRm9yT3JpZ2luUmVjdDpvcmlnaW5TY3JlZW5SZWN0IHdpdGhTY3JlZW5S
ZWN0OnNjcmVlbkZyYW1lIHByZXZpZXdQYWRkaW5nOnByZXZpZXdQYWRkaW5nXTsKLSAgICAgICAg
bWF4U3BhY2VBdmFpbGFibGVPblhFZGdlID0gW3NlbGYgX21heFNwYWNlQXZhaWxhYmxlT25YRWRn
ZUZvck9yaWdpblJlY3Q6b3JpZ2luU2NyZWVuUmVjdCB3aXRoU2NyZWVuUmVjdDpzY3JlZW5GcmFt
ZSBwcmV2aWV3UGFkZGluZzpwcmV2aWV3UGFkZGluZ107Ci0gICAgfQotCi0gICAgLy8gQWRqdXN0
IHRoZSBtYXhpbXVtIHNwYWNlIGF2YWlsYWJsZSBpZiBpdCBpcyBsYXJnZXIgdGhhbiB0aGUgbGFy
Z2VzdCBwb3BvdmVyIHNpemUuCi0gICAgaWYgKG1heFNwYWNlQXZhaWxhYmxlT25ZRWRnZS53aWR0
aCA+IGxhcmdlc3RQb3BvdmVyU2l6ZS53aWR0aCAmJiBtYXhTcGFjZUF2YWlsYWJsZU9uWUVkZ2Uu
aGVpZ2h0ID4gbGFyZ2VzdFBvcG92ZXJTaXplLmhlaWdodCkKLSAgICAgICAgbWF4U3BhY2VBdmFp
bGFibGVPbllFZGdlID0gbGFyZ2VzdFBvcG92ZXJTaXplOwotICAgIGlmIChtYXhTcGFjZUF2YWls
YWJsZU9uWEVkZ2Uud2lkdGggPiBsYXJnZXN0UG9wb3ZlclNpemUud2lkdGggJiYgbWF4U3BhY2VB
dmFpbGFibGVPblhFZGdlLmhlaWdodCA+IGxhcmdlc3RQb3BvdmVyU2l6ZS5oZWlnaHQpCi0gICAg
ICAgIG1heFNwYWNlQXZhaWxhYmxlT25YRWRnZSA9IGxhcmdlc3RQb3BvdmVyU2l6ZTsKLQotICAg
IC8vIElmIHRoZSB0YXJnZXQgc2l6ZSBkb2Vzbid0IGZpdCBhbnl3aGVyZSwgd2UnbGwgZmluZCB0
aGUgbGFyZ2VzdCByZWN0IHRoYXQgZG9lcyBmaXQgdGhhdCBhbHNvIG1haW50YWlucyB0aGUgb3Jp
Z2luYWwgdmlldydzIGFzcGVjdCByYXRpby4KLSAgICBDR0Zsb2F0IGFzcGVjdFJhdGlvID0gdGFy
Z2V0U2l6ZS53aWR0aCAvIHRhcmdldFNpemUuaGVpZ2h0OwotICAgIEZsb2F0UmVjdCBtYXhWZXJ0
aWNhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0aW9SZWN0ID0gbGFyZ2VzdFJlY3RXaXRo
QXNwZWN0UmF0aW9JbnNpZGVSZWN0KGFzcGVjdFJhdGlvLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgp
LCBGbG9hdFNpemUobWF4U3BhY2VBdmFpbGFibGVPbllFZGdlKSkpOwotICAgIEZsb2F0UmVjdCBt
YXhIb3Jpem9udGFsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpb1JlY3QgPSBsYXJnZXN0
UmVjdFdpdGhBc3BlY3RSYXRpb0luc2lkZVJlY3QoYXNwZWN0UmF0aW8sIEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIEZsb2F0U2l6ZShtYXhTcGFjZUF2YWlsYWJsZU9uWEVkZ2UpKSk7Ci0KLSAgICBO
U1NpemUgbWF4VmVydGljYWxUYXJnZXRTaXplUHJlc2VydmluZ0FzcGVjdFJhdGlvID0gTlNNYWtl
U2l6ZShtYXhWZXJ0aWNhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0aW9SZWN0LndpZHRo
KCksIG1heFZlcnRpY2FsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpb1JlY3QuaGVpZ2h0
KCkpOwotICAgIE5TU2l6ZSBtYXhIb3J0aXpvbnRhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0
UmF0aW8gPSBOU01ha2VTaXplKG1heEhvcml6b250YWxUYXJnZXRTaXplUHJlc2VydmluZ0FzcGVj
dFJhdGlvUmVjdC53aWR0aCgpLCBtYXhIb3Jpem9udGFsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3Bl
Y3RSYXRpb1JlY3QuaGVpZ2h0KCkpOwotCi0gICAgTlNTaXplIGNvbXB1dGVkVGFyZ2V0U2l6ZTsK
LSAgICBpZiAoKG1heFZlcnRpY2FsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpby53aWR0
aCAqIG1heFZlcnRpY2FsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpby5oZWlnaHQpID4g
KG1heEhvcnRpem9udGFsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpby53aWR0aCAqIG1h
eEhvcnRpem9udGFsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpby5oZWlnaHQpKQotICAg
ICAgICBjb21wdXRlZFRhcmdldFNpemUgPSBtYXhWZXJ0aWNhbFRhcmdldFNpemVQcmVzZXJ2aW5n
QXNwZWN0UmF0aW87Ci0gICAgZWxzZQotICAgICAgICBjb21wdXRlZFRhcmdldFNpemUgPSBtYXhI
b3J0aXpvbnRhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0aW87Ci0KLSAgICAvLyBOb3cg
bWFrZSBzdXJlIHdoYXQgd2UndmUgY29tcHV0ZWQgaXNuJ3QgdG9vIHNtYWxsLgotICAgIGlmIChj
b21wdXRlZFRhcmdldFNpemUud2lkdGggPCBzbWFsbGVzdFBvcG92ZXJTaXplLndpZHRoICYmIGNv
bXB1dGVkVGFyZ2V0U2l6ZS5oZWlnaHQgPCBzbWFsbGVzdFBvcG92ZXJTaXplLmhlaWdodCkgewot
ICAgICAgICBmbG9hdCBsaW1pdFdpZHRoID0gc21hbGxlc3RQb3BvdmVyU2l6ZS53aWR0aCA+IGNv
bXB1dGVkVGFyZ2V0U2l6ZS53aWR0aCA/IHNtYWxsZXN0UG9wb3ZlclNpemUud2lkdGggOiBjb21w
dXRlZFRhcmdldFNpemUud2lkdGg7Ci0gICAgICAgIGZsb2F0IGxpbWl0SGVpZ2h0ID0gc21hbGxl
c3RQb3BvdmVyU2l6ZS5oZWlnaHQgPiBjb21wdXRlZFRhcmdldFNpemUuaGVpZ2h0ID8gc21hbGxl
c3RQb3BvdmVyU2l6ZS5oZWlnaHQgOiBjb21wdXRlZFRhcmdldFNpemUuaGVpZ2h0OwotICAgICAg
ICBGbG9hdFJlY3QgdGFyZ2V0UmVjdExhcmdlclRoYW5NaW5TaXplID0gbGFyZ2VzdFJlY3RXaXRo
QXNwZWN0UmF0aW9JbnNpZGVSZWN0KGFzcGVjdFJhdGlvLCBGbG9hdFJlY3QoMCwgMCwgbGltaXRX
aWR0aCwgbGltaXRIZWlnaHQpKTsKLSAgICAgICAgY29tcHV0ZWRUYXJnZXRTaXplID0gTlNNYWtl
U2l6ZSh0YXJnZXRSZWN0TGFyZ2VyVGhhbk1pblNpemUuc2l6ZSgpLndpZHRoKCksIHRhcmdldFJl
Y3RMYXJnZXJUaGFuTWluU2l6ZS5zaXplKCkuaGVpZ2h0KCkpOwotCi0gICAgICAgIC8vIElmIG91
ciBvcmlnbmFsIGNvbXB1dGVkVGFyZ2V0U2l6ZSB3YXMgc28gc21hbGwgdGhhdCB3ZSBoYWQgdG8g
Z2V0IGhlcmUgYW5kIG1ha2UgYSBuZXcgY29tcHV0ZWRUYXJnZXRTaXplIHRoYXQgaXMKLSAgICAg
ICAgLy8gbGFyZ2VyIHRoYW4gdGhlIG1pbmltdW0sIHRoZW4gdGhlIGVsZW1lbnRCb3VuZGluZ0Jv
eCBvZiB0aGUgX2hpdFRlc3RSZXN1bHQgaXMgcHJvYmFibHkgaHVnZS4gU28gd2Ugc2hvdWxkIHVz
ZQotICAgICAgICAvLyB0aGUgZXZlbnQgb3JpZ2luIGFzIHRoZSBwb3BvdmVyIG9yaWdpbiBpbiB0
aGlzIGNhc2UgYW5kIG5vdCB3b3JyeSBhYm91dCBvYnNjdXJpbmcgdGhlIF9oaXRUZXN0UmVzdWx0
LgotICAgICAgICBfcG9wb3Zlck9yaWdpblJlY3Qub3JpZ2luID0gX2V2ZW50TG9jYXRpb25JblZp
ZXc7Ci0gICAgICAgIF9wb3BvdmVyT3JpZ2luUmVjdC5zaXplID0gTlNNYWtlU2l6ZSgxLCAxKTsK
LSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIGNvbXB1dGVkVGFyZ2V0U2l6ZTsKLX0KLQotLSAodm9p
ZClfcHJldmlld1dhdGNoZG9nVGltZXJGaXJlZDooTlNUaW1lciAqKXRpbWVyCi17Ci0gICAgW3Nl
bGYgX3Nob3dQcmV2aWV3XTsKLSAgICBfcHJldmlld1dhdGNoZG9nVGltZXIgPSBuaWw7Ci19Ci0K
LSNwcmFnbWEgbWFyayBOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXIKLQotLSAo
dm9pZClyZWNvZ25pemVyV2lsbEJlZ2luQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyICopcmVjb2duaXplcgotewotICAgIF9yZWNvZ25pemVyID0gcmVjb2duaXpl
cjsKLSAgICBfZGlkQ29tcGxldGVBbmltYXRpb24gPSBmYWxzZTsKLSAgICBbc2VsZiBfY3JlYXRl
UHJldmlld1BvcG92ZXJdOwotCi0gICAgaWYgKFtzZWxmLmNsYXNzIF9zaG91bGRJbW1lZGlhdGVs
eVNob3dQcmV2aWV3XSkKLSAgICAgICAgW3NlbGYgX3Nob3dQcmV2aWV3XTsKLSAgICBlbHNlIHsK
LSAgICAgICAgX3Nob3VsZFNob3dQcmV2aWV3V2hlbkxvYWRlZCA9IHRydWU7Ci0gICAgICAgIF9w
cmV2aWV3V2F0Y2hkb2dUaW1lciA9IFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0aFRpbWVJbnRl
cnZhbDoxIHRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfcHJldmlld1dhdGNoZG9nVGlt
ZXJGaXJlZDopIHVzZXJJbmZvOm5pbCByZXBlYXRzOk5PXTsKLSAgICB9Ci19Ci0KLS0gKHZvaWQp
cmVjb2duaXplckRpZFVwZGF0ZUFuaW1hdGlvbjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVj
b2duaXplciAqKXJlY29nbml6ZXIKLXsKLSAgICBbX3BvcG92ZXJBbmltYXRpb25Db250cm9sbGVy
IHJlY29nbml6ZXJEaWRVcGRhdGVBbmltYXRpb246cmVjb2duaXplcl07Ci19Ci0KLS0gKHZvaWQp
cmVjb2duaXplckRpZENhbmNlbEFuaW1hdGlvbjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVj
b2duaXplciAqKXJlY29nbml6ZXIKLXsKLSAgICBbc2VsZiBfaGlkZVByZXZpZXddOwotCi0gICAg
W19wb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciByZWNvZ25pemVyRGlkQ2FuY2VsQW5pbWF0aW9u
OnJlY29nbml6ZXJdOwotfQotCi0tICh2b2lkKXJlY29nbml6ZXJEaWRDb21wbGV0ZUFuaW1hdGlv
bjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKXJlY29nbml6ZXIKLXsKLSAg
ICBfZGlkQ29tcGxldGVBbmltYXRpb24gPSB0cnVlOwotICAgIFtfcG9wb3ZlckFuaW1hdGlvbkNv
bnRyb2xsZXIgcmVjb2duaXplckRpZENvbXBsZXRlQW5pbWF0aW9uOnJlY29nbml6ZXJdOwotfQot
Ci0tICh2b2lkKXJlY29nbml6ZXJEaWREaXNtaXNzQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyICopcmVjb2duaXplcgotewotICAgIFtzZWxmIF9oaWRlUHJldmll
d107Ci0KLSAgICBbX3BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIHJlY29nbml6ZXJEaWREaXNt
aXNzQW5pbWF0aW9uOnJlY29nbml6ZXJdOwotfQotCi0jcHJhZ21hIG1hcmsgV0tQYWdlUHJldmll
d1ZpZXdDb250cm9sbGVyRGVsZWdhdGUKLQotLSAoTlNWaWV3ICopcGFnZVByZXZpZXdWaWV3Q29u
dHJvbGxlcjooV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyICopcGFnZVByZXZpZXdWaWV3Q29u
dHJvbGxlciB2aWV3Rm9yUHJldmlld2luZ1VSTDooTlNVUkwgKil1cmwgaW5pdGlhbEZyYW1lU2l6
ZTooTlNTaXplKWluaXRpYWxGcmFtZVNpemUKLXsKLSAgICByZXR1cm4gW193a1ZpZXcgX3ZpZXdG
b3JQcmV2aWV3aW5nVVJMOnVybCBpbml0aWFsRnJhbWVTaXplOmluaXRpYWxGcmFtZVNpemVdOwot
fQotCi0tIChOU1N0cmluZyAqKXBhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KFdLUGFnZVByZXZp
ZXdWaWV3Q29udHJvbGxlciAqKXBhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIgdGl0bGVGb3JQcmV2
aWV3T2ZVUkw6KE5TVVJMICopdXJsCi17Ci0gICAgcmV0dXJuIFtfd2tWaWV3IF90aXRsZUZvclBy
ZXZpZXdPZlVSTDp1cmxdOwotfQotCi0tICh2b2lkKXBhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXJX
YXNDbGlja2VkOihXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIgKilwYWdlUHJldmlld1ZpZXdD
b250cm9sbGVyCi17Ci0gICAgaWYgKE5TVVJMICp1cmwgPSBwYWdlUHJldmlld1ZpZXdDb250cm9s
bGVyLT5fdXJsLmdldCgpKQotICAgICAgICBbX3drVmlldyBfaGFuZGxlQ2xpY2tJblByZXZpZXdW
aWV3OnBhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXItPl9wcmV2aWV3Vmlldy5nZXQoKSBVUkw6dXJs
XTsKLX0KLQotI3ByYWdtYSBtYXJrIE5TUG9wb3ZlckRlbGVnYXRlCi0KLS0gKHZvaWQpcG9wb3Zl
cldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBbc2VsZiBf
aGlkZVByZXZpZXddOwotfQotCi1AZW5kCi0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4OWQyMDQyZWMw
NWNiNmJhMzZhMzAwM2M0YWRlMDJlZmNhNWM2MzFkLi4zZDMzZTkyMjBiMjNkNTViMDExYjQzM2E3
NzMwZWU2ZDU1M2Q2MGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjcsOCArNTY3LDYgQEAKIAkJMjlENTVERjIxNjFCRjlG
MTAwMzFBMkUzIC8qIFdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5RDU1REYwMTYxQkY5RjEwMDMxQTJFMyAv
KiBXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTJEMDczMEEyMTlGOUM3REEw
MEU5RDlDNCAvKiBXS0FjdGlvbk1lbnVDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQwNzMwQTAxOUY5QzdEQTAwRTlEOUM0IC8qIFdL
QWN0aW9uTWVudUNvbnRyb2xsZXIubW0gKi87IH07CiAJCTJEMDczMEEzMTlGOUM3REEwMEU5RDlD
NCAvKiBXS0FjdGlvbk1lbnVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDA3MzBBMTE5RjlDN0RBMDBFOUQ5QzQgLyogV0tBY3Rpb25N
ZW51Q29udHJvbGxlci5oICovOyB9OwotCQkyRDBCOEFDQTFBNDJBMzlDMDA2RDdGQzggLyogV0tQ
cmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMEI4QUM4MUE0MkEzOUMwMDZEN0ZDOCAvKiBXS1By
ZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlci5oICovOyB9OwotCQkyRDBCOEFDQjFBNDJB
MzlDMDA2RDdGQzggLyogV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDBCOEFDOTFBNDJB
MzlDMDA2RDdGQzggLyogV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIubW0gKi87
IH07CiAJCTJEMTI1QzVFMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMTI1QzVD
MTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJMkQx
MjVDNUYxODU3RUEwNTAwM0JBM0NCIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMTI1QzVEMTg1N0VB
MDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCTJEMUI1
RDVEMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQx
QjVENUIxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CkBAIC02NDEsOCArNjM5LDYgQEAKIAkJMkRERjczMTYxOEU5NTA2MDAw
NEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEREY3MzE0MThFOTUwNjAwMDRG
NUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0gKi87IH07CiAJCTJE
RTY5NDNEMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJERTY5NDNCMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250
cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMkRFNjk0M0UxOEJEMkE2ODAwNUMx
NUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFNjk0M0MxOEJEMkE2ODAwNUMx
NUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oICovOyB9OwotCQky
REVCMzQ3MTFBMzk4N0FCMDAzMEUyQkEgLyogV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREVCMzQ2RjFB
Mzk4N0FCMDAzMEUyQkEgLyogV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmggKi87IH07Ci0J
CTJERUIzNDcyMUEzOTg3QUIwMDMwRTJCQSAvKiBXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREVCMzQ3
MDFBMzk4N0FCMDAzMEUyQkEgLyogV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovOyB9
OwogCQkyREY5NTkzQjE4QTQyNDEyMDA5Nzg1QTEgLyogVmlld0dlc3R1cmVDb250cm9sbGVySU9T
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGOTU5
MzQxOEE0MjQxMjAwOTc4NUExIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSAqLzsgfTsK
IAkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk3MTE0
NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLzsgfTsKIAkJMzEw
OTk5QzcxNDZDOUUzRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NjgxNDZDNzFGNTAw
MjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovOyB9OwpAQCAtMjU5OSw4ICsyNTk1
LDYgQEAKIAkJMjlENTVERjAxNjFCRjlGMTAwMzFBMkUzIC8qIFdlYlBhZ2VHcm91cFByb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUdyb3VwUHJv
eHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDA3MzBBMDE5RjlD
N0RBMDBFOUQ5QzQgLyogV0tBY3Rpb25NZW51Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQWN0aW9uTWVudUNvbnRyb2xsZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMDczMEExMTlGOUM3REEwMEU5RDlDNCAvKiBXS0Fj
dGlvbk1lbnVDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
QWN0aW9uTWVudUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQw
QjhBQzgxQTQyQTM5QzAwNkQ3RkM4IC8qIFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9s
bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld1BvcG92ZXJB
bmltYXRpb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEMEI4
QUM5MUE0MkEzOUMwMDZEN0ZDOCAvKiBXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUHJldmlld1Bv
cG92ZXJBbmltYXRpb25Db250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRDEyNUM1QzE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdHZXN0dXJlQ29udHJvbGxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDEyNUM1RDE4NTdFQTA1MDAzQkEzQ0IgLyog
Vmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRDFCNUQ1QTE4NTg2NTk5MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250
cm9sbGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2ODYsOCArMjY4MCw2IEBACiAJCTJE
REY3MzE0MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJERTY5NDNCMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyREU2OTQzQzE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkyREVCMzQ2RjFBMzk4N0FCMDAzMEUyQkEgLyogV0tQYWdl
UHJldmlld1ZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkyREVCMzQ3MDFBMzk4N0FCMDAzMEUyQkEgLyogV0tQYWdlUHJldmlld1ZpZXdDb250cm9s
bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQYWdlUHJl
dmlld1ZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREY5
NTkzNDE4QTQyNDEyMDA5Nzg1QTEgLyogVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVmlld0dlc3R1cmVDb250cm9sbGVy
SU9TLm1tOyBwYXRoID0gaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5IC8qIFdlYk5vdGlm
aWNhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25DbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEwOTk5NzExNDZDNzU5QjAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNjczNCwxMCArNjcyNiw2IEBACiAJCQkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURG
IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJOTMyMUQ1ODUxQTM4
RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oICovLAogCQkJCTkz
MjFENTg3MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0g
Ki8sCi0JCQkJMkRFQjM0NkYxQTM5ODdBQjAwMzBFMkJBIC8qIFdLUGFnZVByZXZpZXdWaWV3Q29u
dHJvbGxlci5oICovLAotCQkJCTJERUIzNDcwMUEzOTg3QUIwMDMwRTJCQSAvKiBXS1BhZ2VQcmV2
aWV3Vmlld0NvbnRyb2xsZXIubW0gKi8sCi0JCQkJMkQwQjhBQzgxQTQyQTM5QzAwNkQ3RkM4IC8q
IFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyLmggKi8sCi0JCQkJMkQwQjhBQzkx
QTQyQTM5QzAwNkQ3RkM4IC8qIFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyLm1t
ICovLAogCQkJCTBGQ0I0RTVDMThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1ByaW50aW5nVmlldy5oICov
LAogCQkJCTBGQ0I0RTVEMThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1ByaW50aW5nVmlldy5tbSAqLywK
IAkJCQkwRkNCNEU1RTE4QkJFM0Q5MDAwRkNGQzkgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9s
bGVyLmggKi8sCkBAIC03OTExLDcgKzc4OTksNiBAQAogCQkJCTkzQkRFQjAxMTcxREQ3QUYwMEJG
RUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI4
QTFFRTE4NDAwQUNCMDBFOUFFNjkgLyogV0tQYWdlUG9saWN5Q2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkzNzNDRUFEODE4NTk1NTNGMDA4QzM2M0QgLyogV0tQYWdlUG9saWN5Q2xpZW50SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTJERUIzNDcxMUEzOTg3QUIwMDMwRTJCQSAvKiBX
S1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTc3NDY1
MTE4QjlGRjQwMDdEOUU5QSAvKiBXS1BhZ2VQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0UxN0I3RTEzODFGMTE3MDAxMkE2NDEgLyogV0tQYWdlUHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFCOEExRjIxODQwMEI2MjAwRTlBRTY5IC8qIFdLUGFnZVVJQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTc5MjUsNyArNzkxMiw2IEBACiAJCQkJN0M4RUIxMTcxOERCNkExOTAw
NzkxN0MyIC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q1
OTdEMDExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlc1JlZi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzYyQjc0OEQxMjBCQzc1QzAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNSZWZQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkyRDBCOEFDQTFBNDJBMzlDMDA2RDdGQzggLyogV0tQcmV2
aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0I0
RTY2MThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1ByaW50aW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNCQUFDRUIxNDUyMjVFMzAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0JBQUNFRDE0NTIyNUUzMDA1M0Y4MkYgLyogV0tQcm9jZXNzR3JvdXBQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTk1OTEsNyArOTU3Nyw2IEBACiAJCQkJNzU1NDIyQkQx
ODA2MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNENTk3RDYxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzdCNjMzODEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJMkRFQjM0NzIxQTM5ODdBQjAwMzBFMkJBIC8qIFdLUGFnZVByZXZpZXdW
aWV3Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRTE3QjdEMTM4MUYxMTcwMDEy
QTY0MSAvKiBXS1BhZ2VQcml2YXRlTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENkFCNTQy
MTkyQjFDNEEwMDNBOUZEMSAvKiBXS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0gaW4gU291cmNl
cyAqLywKIAkJCQkyREExRTRGRjE4QzAyQjZBMDBEQkM5MjkgLyogV0tQREZWaWV3Lm1tIGluIFNv
dXJjZXMgKi8sCkBAIC05NTk5LDcgKzk1ODQsNiBAQAogCQkJCTFBQzg2RkYzMTMwQjQ2RDMwMDJD
MTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
Q0Q1OTdEMTExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQUZERDMxOTE4OTFDQTEyMDAxNTM5NzAgLyogV0tQcmVmZXJlbmNlcy5tbSBpbiBT
b3VyY2VzICovLAotCQkJCTJEMEI4QUNCMUE0MkEzOUMwMDZEN0ZDOCAvKiBXS1ByZXZpZXdQb3Bv
dmVyQW5pbWF0aW9uQ29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0I0RTY3MThC
QkUzRDkwMDBGQ0ZDOSAvKiBXS1ByaW50aW5nVmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJD
QkFBQ0VDMTQ1MjI1RTMwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTFBMTU4NDE5MTg5MDQ0RjUwMDE3NjE2QyAvKiBXS1Byb2Nlc3NQb29sLm1tIGluIFNv
dXJjZXMgKi8sCg==
</data>
<flag name="review"
          id="268571"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>