<?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>13561</bug_id>
          
          <creation_ts>2007-05-01 07:19:40 -0700</creation_ts>
          <short_desc>[S60] S60 3.2 Touch: Scrolling initial implementatoin</short_desc>
          <delta_ts>2008-04-09 11:39:43 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>S60 Emulator</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Yael">yael</assigned_to>
          <cc>bradley.morrison</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>11549</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2007-05-01 07:19:40 -0700</bug_when>
    <thetext>S60 3.2 Touch: Scrolling initial implementatoin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11557</commentid>
    <comment_count>1</comment_count>
      <attachid>14295</attachid>
    <who name="Yael">yael</who>
    <bug_when>2007-05-01 08:03:33 -0700</bug_when>
    <thetext>Created attachment 14295
Initial scrolling implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10689</commentid>
    <comment_count>2</comment_count>
      <attachid>14295</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-05-08 07:48:52 -0700</bug_when>
    <thetext>Comment on attachment 14295
Initial scrolling implementation

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10690</commentid>
    <comment_count>3</comment_count>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-05-08 07:53:01 -0700</bug_when>
    <thetext>landed in ccb in r21303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76990</commentid>
    <comment_count>4</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:39:43 -0700</bug_when>
    <thetext>Bulk closing of all s60 platform bugs. 

Sorry for the noise!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14295</attachid>
            <date>2007-05-01 08:03:33 -0700</date>
            <delta_ts>2007-05-08 07:48:52 -0700</delta_ts>
            <desc>Initial scrolling implementation</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>64939</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTIwNCkNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDU2IEBADQoreWFoYXJvbiwgcmV2aWV3ZWQgYnkgPHJldmlld2VyPg0KKyBERVND
OiAgUzYwIDMuMiBUb3VjaDogU2Nyb2xsaW5nIGluaXRpYWwgaW1wbGVtZW50YXRvaW4NCisgaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NjENCisNCisgICAgICAgICog
QnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbElucHV0V2lkZ2V0LmNwcDoNCisg
ICAgICAgIChDQ29udHJvbElucHV0V2lkZ2V0OjpDb25zdHJ1Y3RUZXh0RWRpdG9yTCk6DQorICAg
ICAgICAqIEJyb3dzZXJWaWV3L2luYy9Qb2ludGVyRXZlbnRIYW5kbGVyLmg6DQorICAgICAgICAq
IEJyb3dzZXJWaWV3L2luYy9TY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXIuaDogQWRkZWQuDQorICAg
ICAgICAqIEJyb3dzZXJWaWV3L2luYy9XZWJLaXRWaWV3Lmg6DQorICAgICAgICAqIEJyb3dzZXJW
aWV3L3NyYy9Qb2ludGVyRXZlbnRIYW5kbGVyLmNwcDoNCisgICAgICAgIChDb250ZW50U2Nyb2xs
Q2FsbGJhY2spOg0KKyAgICAgICAgKENQb2ludGVyRXZlbnRIYW5kbGVyOjp+Q1BvaW50ZXJFdmVu
dEhhbmRsZXIpOg0KKyAgICAgICAgKENQb2ludGVyRXZlbnRIYW5kbGVyOjpIYW5kbGVQb2ludGVy
RXZlbnRMKToNCisgICAgICAgIChDUG9pbnRlckV2ZW50SGFuZGxlcjo6Q2hlY2tTbWFydFRleHRF
bnRyeSk6DQorICAgICAgICAoQ1BvaW50ZXJFdmVudEhhbmRsZXI6OkdldEZyYW1lQXQpOg0KKyAg
ICAgICAgKENQb2ludGVyRXZlbnRIYW5kbGVyOjpIYW5kbGVTY3JvbGxpbmdQb2ludGVyRXZlbnRM
KToNCisgICAgICAgIChDUG9pbnRlckV2ZW50SGFuZGxlcjo6SGFuZGxlU2hvdWxkU3RhcnRTY3Jv
bGxpbmdMKToNCisgICAgICAgIChDUG9pbnRlckV2ZW50SGFuZGxlcjo6SGFuZGxlRHJhZ0wpOg0K
KyAgICAgICAgKENQb2ludGVyRXZlbnRIYW5kbGVyOjpIYW5kbGVDb250ZW50U2Nyb2xsKToNCisg
ICAgICAgIChDUG9pbnRlckV2ZW50SGFuZGxlcjo6VXBkYXRlQ3Vyc29yKToNCisgICAgICAgICog
QnJvd3NlclZpZXcvc3JjL1Njcm9sbGluZ0luZGljYXRvckRyYXdlci5jcHA6IEFkZGVkLg0KKyAg
ICAgICAgKENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXI6Ok5ld0wpOg0KKyAgICAgICAgKENTY3Jv
bGxpbmdJbmRpY2F0b3JEcmF3ZXI6OkNTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXIpOg0KKyAgICAg
ICAgKENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXI6On5DU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2Vy
KToNCisgICAgICAgIChDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyOjpDb25zdHJ1Y3RTcHJpdGUp
Og0KKyAgICAgICAgKENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJFZGdlOjpDU2Nyb2xsaW5nSW5k
aWNhdG9yRHJhd2VyRWRnZSk6DQorICAgICAgICAoQ1Njcm9sbGluZ0luZGljYXRvckRyYXdlckVk
Z2U6OkNvbnN0cnVjdEwpOg0KKyAgICAgICAgKENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJFZGdl
Ojp+Q1Njcm9sbGluZ0luZGljYXRvckRyYXdlckVkZ2UpOg0KKyAgICAgICAgKENTY3JvbGxpbmdJ
bmRpY2F0b3JEcmF3ZXJFZGdlOjpVcGRhdGVCaXRtYXBQb3NpdGlvbkwpOg0KKyAgICAgICAgKENT
Y3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJFZGdlOjpDcmVhdGVCaXRtYXBBbmRDb250ZXh0TCk6DQor
ICAgICAgICAoQ1Njcm9sbGluZ0luZGljYXRvckRyYXdlckVkZ2U6OlVwZGF0ZU1hc2tMKToNCisg
ICAgICAgIChDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyQWNjZWxlcmF0ZWQ6OkNTY3JvbGxpbmdJ
bmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZCk6DQorICAgICAgICAoQ1Njcm9sbGluZ0luZGljYXRv
ckRyYXdlckFjY2VsZXJhdGVkOjpDb25zdHJ1Y3RMKToNCisgICAgICAgIChDU2Nyb2xsaW5nSW5k
aWNhdG9yRHJhd2VyQWNjZWxlcmF0ZWQ6On5DU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyQWNjZWxl
cmF0ZWQpOg0KKyAgICAgICAgKENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZDo6
VXBkYXRlQml0bWFwUG9zaXRpb25MKToNCisgICAgICAgIChDU2Nyb2xsaW5nSW5kaWNhdG9yRHJh
d2VyQWNjZWxlcmF0ZWQ6OkNoZWNrTmVlZFJlZnJlY2gpOg0KKyAgICAgICAgKENTY3JvbGxpbmdJ
bmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZDo6Q3JlYXRlQml0bWFwQW5kQ29udGV4dEwpOg0KKyAg
ICAgICAgKENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZDo6VXBkYXRlTWFza0wp
Og0KKyAgICAgICAgKENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZDo6VXBkYXRl
TWFza0V4TCk6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJLaXRDdXJzb3IuY3BwOg0K
KyAgICAgICAgKENXZWJLaXRDdXJzb3I6OkN1cnNvclVwZGF0ZSk6DQorICAgICAgICAqIEJyb3dz
ZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNwcDoNCisgICAgICAgIChDV2ViS2l0Vmlldzo6Q29udGVu
dElzU2Nyb2xsaW5nKToNCisgICAgICAgICogQ2hhbmdlTG9nOg0KKyAgICAgICAgKiBQbHVnaW4v
aW5jL1BsdWdpbldpbi5oOg0KKyAgICAgICAgKiBQbHVnaW4vc3JjL1BsdWdpbldpbi5jcHA6DQor
ICAgICAgICAoQ1BsdWdpbldpbjo6UGx1Z2luQ29uc3RydWN0ZWRMKToNCisgICAgICAgIChDUGx1
Z2luV2luOjpGb3JjZVJlZHJhdyk6DQorICAgICAgICAoQ1BsdWdpbldpbjo6SGl0UmVnaW9uQ29u
dGFpbnMpOg0KKyAgICAgICAgKiBncm91cC9Ccm93c2VyVmlldy5tbXA6DQorDQorDQorDQogcmFh
bGV4YW4sIHJldmlld2VkIGJ5IDxzYWNoaW4ucGFkbWFAbm9raWEuY29tPg0KICBERVNDOiAgQnJv
d3NlciBjcmFzaGVzIHdoaWxlIGxvYWRpbmcgd3d3LmNubi5jb20NCiAgaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0ODgNCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvcmUv
Rm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbElucHV0V2lkZ2V0LmNwcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9Ccm93c2VyQ29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9sSW5wdXRXaWRnZXQu
Y3BwCShyZXZpc2lvbiAyMTIwNCkNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xz
L3NyYy9GQ29udHJvbElucHV0V2lkZ2V0LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTYwLDcgKzYw
LDcgQEANCiANCiAjaW5jbHVkZSA8Y2VudHJhbHJlcG9zaXRvcnkuaD4NCiAjaW5jbHVkZSA8QWtu
RmVwSW50ZXJuYWxDUktleXMuaD4NCi0NCisjaW5jbHVkZSA8ZWlrb24uaHJoPg0KIA0KICNpbmNs
dWRlIDxlaWtzZWNlZC5oPiAgICAgICAvLyBmb3Igc2VjcmV0IGVkaXRvcg0KICNpbmNsdWRlIDxl
aWtydGVkLmg+DQpAQCAtMjk5LDYgKzI5OSw3IEBAIHZvaWQgQ0NvbnRyb2xJbnB1dFdpZGdldDo6
Q29uc3RydWN0VGV4dEUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXMsDQogICAgICAg
ICAgICAgICAgICAgICAgICAgIG1heExlbmd0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxhZ3MgKTsNCisgICAgaUVkaXRvci0+U2V0QWtuRWRpdG9yRmxhZ3MoIGlFZGl0b3ItPkFrbkVk
d2luRmxhZ3MoKSB8IEVBa25FZGl0b3JGbGFnRGVsaXZlclZpcnR1YWxLZXlFdmVudHNUb0FwcGxp
Y2F0aW9uKTsNCiAgICAgaUVkaXRvci0+RW5hYmxlVDkoIHQ5QWxsb3dlZCk7DQogICAgIGlFZGl0
b3ItPlNldEJvcmRlclZpZXdNYXJnaW5zKCBhTWFyZ2lucyApOw0KICAgICAvL2lFZGl0b3ItPlNl
dEJvcmRlciggVEd1bEJvcmRlcjo6RVdpdGhPdXRsaW5lIHwgVEd1bEJvcmRlcjo6RUZsYXQgfCBU
R3VsQm9yZGVyOjpFQWRkVHdvUGl4ZWxzKTsNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5j
L1BvaW50ZXJFdmVudEhhbmRsZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmll
dy9pbmMvUG9pbnRlckV2ZW50SGFuZGxlci5oCShyZXZpc2lvbiAyMTIwNCkNCisrKyBXZWJLaXQv
QnJvd3NlclZpZXcvaW5jL1BvaW50ZXJFdmVudEhhbmRsZXIuaAkod29ya2luZyBjb3B5KQ0KQEAg
LTQ4LDYgKzQ4LDcgQEANCiAjaW5jbHVkZSA8ZTMyYmFzZS5oPg0KICNpbmNsdWRlIDxjb2VkZWYu
aD4NCiAjaW5jbHVkZSA8dzMyc3RkLmg+DQorI2luY2x1ZGUgIlNjcm9sbGluZ0luZGljYXRvckRy
YXdlci5oIg0KIA0KIA0KIC8vIE1BQ1JPUw0KQEAgLTExMSw2ICsxMTIsMTMgQEAgY2xhc3MgQ1Bv
aW50ZXJFdmVudEhhbmRsZXI6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAg
ICAgICogQHJldHVybg0KICAgICAgICAgKi8NCisgICAgICAgIFRCb29sIENvbnRlbnRJc1Njcm9s
bGluZygpIHsgcmV0dXJuIGlDb250ZW50SXNTY3JvbGxpbmc7fQ0KKw0KKyAgICAgICAgLyoqDQor
ICAgICAgICAqIEBzaW5jZSAzLjINCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1
cm4NCisgICAgICAgICovDQogICAgICAgICB2b2lkIEF1dG9TY3JvbGwoKTsNCiANCiAgICAgICAg
IC8qKg0KQEAgLTEyNSw3ICsxMzMsMTQgQEAgY2xhc3MgQ1BvaW50ZXJFdmVudEhhbmRsZXI6IHB1
YmxpYyBDQmFzZQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAg
ICAgKi8NCi0gICAgICAgIHZvaWQgQ2hlY2tTbWFydFRleHRFbnRyeSgpOw0KKyAgICAgICAgdm9p
ZCBIYW5kbGVDb250ZW50U2Nyb2xsKCk7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogQHNp
bmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybg0KKyAgICAgICAg
Ki8NCisgICAgICAgIHZvaWQgQ2hlY2tTbWFydFRleHRFbnRyeShUUG9pbnQgYVBvaW50KTsNCiAN
CiAgICAgICAgIC8qKg0KICAgICAgICAgKiBAc2luY2UgMy4yDQpAQCAtMTM0LDYgKzE0OSwyNyBA
QCBjbGFzcyBDUG9pbnRlckV2ZW50SGFuZGxlcjogcHVibGljIENCYXNlDQogICAgICAgICAqLw0K
ICAgICAgICAgVFJlY3QmIEVsZW1lbnRSZWN0KCkgeyByZXR1cm4gaUVsZW1lbnRSZWN0OyB9DQog
DQorICAgICAgICAvKioNCisgICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBwYXJhbQ0K
KyAgICAgICAgKiByZXR1cm4NCisgICAgICAgICovDQorICAgICAgICBUQm9vbCBIYW5kbGVTY3Jv
bGxpbmdQb2ludGVyRXZlbnRMKGNvbnN0IFRQb2ludGVyRXZlbnQmIGFQb2ludGVyRXZlbnQpOw0K
Kw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIEBzaW5jZSAzLjINCisgICAgICAgICogcGFyYW0N
CisgICAgICAgICogcmV0dXJuDQorICAgICAgICAqLw0KKyAgICAgICAgVEJvb2wgSGFuZGxlU2hv
dWxkU3RhcnRTY3JvbGxpbmdMKGNvbnN0IFRQb2ludGVyRXZlbnQmIGFQb2ludGVyRXZlbnQpOw0K
Kw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIEBzaW5jZSAzLjINCisgICAgICAgICogcGFyYW0N
CisgICAgICAgICogcmV0dXJuDQorICAgICAgICAqLw0KKyAgICAgICAgVEJvb2wgSGFuZGxlRHJh
Z0woY29uc3QgVFBvaW50ZXJFdmVudCYgYVBvaW50ZXJFdmVudCk7DQorDQogICAgIHByaXZhdGU6
IC8vIE5ldyBmdW5jdGlvbnMNCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBAc2luY2UgMy4yDQpA
QCAtMTQyLDE5ICsxNzgsMzAgQEAgY2xhc3MgQ1BvaW50ZXJFdmVudEhhbmRsZXI6IHB1YmxpYyBD
QmFzZQ0KICAgICAgICAgKi8NCiAgICAgICAgIENXZWJLaXRGcmFtZSogR2V0RnJhbWVBdChUUG9p
bnQgYVBvaW50KTsNCiANCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBAc2luY2UgMy4yDQorICAg
ICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAgICAgICAg
dm9pZCBVcGRhdGVDdXJzb3IoVFBvaW50IGFQb2ludCk7DQorDQogICAgIHByaXZhdGU6ICAgIC8v
IERhdGENCiANCiAgICAgICAgIC8vIFBvaW50ZXIgdG8gb3duaW5nIHZpZXcNCiAgICAgICAgIENX
ZWJLaXRWaWV3KiBpV2ViS2l0VmlldzsgLy8gbm90IG93bmVkDQogICAgICAgICBDUGVyaW9kaWMq
IGlBdXRvU2Nyb2xsUGVyaW9kaWM7DQogICAgICAgICBUUG9pbnRlckV2ZW50IGlMYXN0UG9pbnRl
ckV2ZW50Ow0KLSAgICAgICAgVEJvb2wgaVRvdWNoU2Nyb2xsaW5nOw0KKyAgICAgICAgVEJvb2wg
aVRvdWNoU2Nyb2xsaW5nOyAvLyBpbiBwYWdlIG92ZXJ2aWV3IG1vZGUNCiAgICAgICAgIFRUaW1l
IGlUaW1lTm93Ow0KICAgICAgICAgVEJvb2wgaUVuYWJsZVRvb2xCYXI7DQogICAgICAgICBUVGlt
ZSBpUGFnZU92ZXJ2aWV3RXZlbnRUaW1lOw0KICAgICAgICAgVFJlY3QgaUVsZW1lbnRSZWN0Ow0K
ICAgICAgICAgQ1BlcmlvZGljKiBpTG9uZ3RhcFRpbWVyOw0KICAgICAgICAgVEJvb2wgaUFjdGl2
ZVdpZGdldENvbnN1bWVzOw0KKyAgICAgICAgVEJvb2wgaUNvbnRlbnRJc1Njcm9sbGluZzsgLy8g
aW4gY29udGVudCB2aWV3DQorICAgICAgICBSQXJyYXk8VFBvaW50ZXJFdmVudD4gaVByZVNjcm9s
bGluZ0V2ZW50czsNCisgICAgICAgIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXIqIGlTY3JvbGxp
bmdJbmRpY2F0b3JEcmF3ZXI7DQorICBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyOjpUU2Nyb2xs
aW5nVHlwZSBpU2Nyb2xsaW5nVHlwZTsNCiAgICAgfTsNCiANCiAjZW5kaWYgICAgICAvLyBQT0lO
VEVSRVZFTlRIQU5ETEVSX0gNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1Njcm9sbGlu
Z0luZGljYXRvckRyYXdlci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2lu
Yy9TY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXIuaAkocmV2aXNpb24gMCkNCisrKyBXZWJLaXQvQnJv
d3NlclZpZXcvaW5jL1Njcm9sbGluZ0luZGljYXRvckRyYXdlci5oCShyZXZpc2lvbiAwKQ0KQEAg
LTAsMCArMSwyODYgQEANCisvKg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKiAgTmFtZSAg
ICAgICAgOiBTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXIuaA0KKyogIFBhcnQgb2YgICAgIDogV0VC
S0lUIC8gQnJvd3NlciBWaWV3DQorKiAgSW50ZXJmYWNlICAgOiBCcm93c2VyIFZpZXcNCisqICBE
ZXNjcmlwdGlvbiA6IERyYXdzIHRoZSBzY3JvbGxpbmcgaW5kaWNhdG9yDQorKiAgVmVyc2lvbiAg
ICAgOiAzLjINCisqDQorKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9u
DQorKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyogIA0KKyogICBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKiAgDQorKiAgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisqICAgICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuDQorKiAgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCisqICAgICAgICB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
DQorKiAgICAgICAgZGlzdHJpYnV0aW9uLg0KKyogICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
dGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQorKiAgICAgICAgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkDQorKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLg0KKyogIA0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
DQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwN
CisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAg
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQor
KiAgDQorKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIg
Z3JhbnRzLg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8NCisNCisNCisjaWZuZGVmIFND
Uk9MTElOR0lORElDQVRPUkRSQVdFUl9IDQorI2RlZmluZSBTQ1JPTExJTkdJTkRJQ0FUT1JEUkFX
RVJfSA0KKw0KKy8vICBJTkNMVURFUw0KKyNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUg
PGNvZWRlZi5oPg0KKyNpbmNsdWRlIDx3MzJzdGQuaD4NCisNCisNCisvLyBNQUNST1MNCisNCisv
LyBGT1JXQVJEIERFQ0xBUkFUSU9OUw0KK2NsYXNzIENXZWJLaXRWaWV3Ow0KKw0KKy8vIENMQVNT
IERFQ0xBUkFUSU9ODQorY2xhc3MgQ1Njcm9sbGluZ0luZGljYXRvckRyYXdlcjogcHVibGljIENC
YXNlDQorICAgIHsNCisgICAgcHVibGljOiAgLy8gQ29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IN
CisNCisgICAgICAgIGVudW0gVFNjcm9sbGluZ1R5cGUNCisgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgRVNjcm9sbGluZ1R5cGVFZGdlLA0KKyAgICAgICAgICAgIEVTY3JvbGxpbmdUeXBlQWNj
ZWxlcmF0ZWQNCisgICAgICAgICAgICB9Ow0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFR3
by1waGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAgc3RhdGljIENTY3Jv
bGxpbmdJbmRpY2F0b3JEcmF3ZXIqIE5ld0woIENXZWJLaXRWaWV3JiBhV2ViS2l0VmlldywgVFNj
cm9sbGluZ1R5cGUgYVNjcm9sbGluZ1R5cGUpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAq
IERlc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAgdmlydHVhbCB+Q1Njcm9sbGluZ0lu
ZGljYXRvckRyYXdlcigpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIEMrKyBkZWZhdWx0
IGNvbnN0cnVjdG9yLg0KKyAgICAgICAgKi8NCisgICAgICAgIENTY3JvbGxpbmdJbmRpY2F0b3JE
cmF3ZXIoIENXZWJLaXRWaWV3JiBhV2ViS2l0Vmlldyk7IA0KKw0KKyAgICAgICAgLyoqDQorICAg
ICAgICAqIEJ5IGRlZmF1bHQgU3ltYmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3IgaXMgcHJpdmF0
ZS4NCisgICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIHZvaWQgQ29uc3RydWN0TCgpID0gMDsN
CisNCisgICAgcHVibGljOiAvLyBOZXcgZnVuY3Rpb25zDQorDQorICAgICAgICAvKioNCisgICAg
ICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybg0K
KyAgICAgICAgKi8NCisgICAgICAgIHZpcnR1YWwgdm9pZCBVcGRhdGVCaXRtYXBQb3NpdGlvbkwo
VFBvaW50JiBhUG9pbnQpID0gMDsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBAc2luY2Ug
My4yDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuIHRoZSBzaXplIG9mIHRo
ZSBpbmRpY2F0b3INCisgICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIFRJbnQgU2Nyb2xsaW5n
SW5kaWNhdG9yU2l6ZSgpID0gMDsNCisNCisgICAgcHVibGljOg0KKyAgICAgICAgLyoqDQorICAg
ICAgICAqIEBzaW5jZSAzLjINCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4N
CisgICAgICAgICovDQorICAgICAgICB2b2lkIENvbnN0cnVjdFNwcml0ZShSV3NTcHJpdGUmIGFT
cHJpdGUsIENGYnNCaXRtYXAqIGFTcHJpdGVCaXRtYXAsIENGYnNCaXRtYXAqIGFTcHJpdGVNYXNr
Qml0bWFwLCBUUG9pbnQmIGFQb3NpdGlvbik7DQorDQorICAgIHB1YmxpYzogICAgLy8gRGF0YQ0K
Kw0KKyAgICAgICAgLy8gUG9pbnRlciB0byBvd25pbmcgdmlldw0KKyAgICAgICAgQ1dlYktpdFZp
ZXcmIGlXZWJLaXRWaWV3OyAvLyBub3Qgb3duZWQNCisgICAgfTsNCisNCisvLyBDTEFTUyBERUNM
QVJBVElPTg0KK2NsYXNzIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJFZGdlOiBwdWJsaWMgQ1Nj
cm9sbGluZ0luZGljYXRvckRyYXdlcg0KKyAgICB7DQorICAgIHB1YmxpYzogIC8vIENvbnN0cnVj
dG9yIGFuZCBkZXN0cnVjdG9yDQorDQorICAgICAgICAvKioNCisgICAgICAgICogRGVzdHJ1Y3Rv
ci4NCisgICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIH5DU2Nyb2xsaW5nSW5kaWNhdG9yRHJh
d2VyRWRnZSgpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIEMrKyBkZWZhdWx0IGNvbnN0
cnVjdG9yLg0KKyAgICAgICAgKi8NCisgICAgICAgIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJF
ZGdlKENXZWJLaXRWaWV3JiBhV2ViS2l0Vmlldyk7DQorDQorICAgICAgICAvKioNCisgICAgICAg
ICogQnkgZGVmYXVsdCBTeW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3RvciBpcyBwcml2YXRlLg0K
KyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgQ29uc3RydWN0TCgpOw0KKw0KKyAgICBwdWJsaWM6
IC8vIE5ldyBmdW5jdGlvbnMNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBAc2luY2UgMy4y
DQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAg
ICAgICAgdm9pZCBVcGRhdGVCaXRtYXBQb3NpdGlvbkwoVFBvaW50JiBhUG9pbnQpOw0KKw0KKyAg
ICAgICAgLyoqDQorICAgICAgICAqIEBzaW5jZSAzLjINCisgICAgICAgICogQHBhcmFtDQorICAg
ICAgICAqIEByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGluZGljYXRvcg0KKyAgICAgICAgKi8NCisg
ICAgICAgIFRJbnQgU2Nyb2xsaW5nSW5kaWNhdG9yU2l6ZSgpIHsgcmV0dXJuIGlTaXplOyB9DQor
DQorICAgIHByaXZhdGU6IC8vIE5ldyBmdW5jdGlvbnMNCisNCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKiBAc2luY2UgMy4yDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQor
ICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBDcmVhdGVCaXRtYXBBbmRDb250ZXh0TCgpOw0KKw0K
KyAgICAgICAgLyoqDQorICAgICAgICAqIEBzaW5jZSAzLjINCisgICAgICAgICogQHBhcmFtDQor
ICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgICAgICB2b2lkIFVwZGF0ZU1hc2tM
KCk7DQorDQorICAgIHByaXZhdGU6ICAgIC8vIERhdGENCisNCisgICAgICAgIC8vIFBvaW50ZXIg
dG8gb3duaW5nIHZpZXcNCisgICAgICAgIFJXc1Nwcml0ZSBpU3ByaXRlOw0KKyAgICAgICAgQ0Zi
c0JpdG1hcERldmljZSogaVNwcml0ZUJpdG1hcERldmljZTsgICAgIC8vIG93bmVkDQorICAgICAg
ICBDRmJzQml0R2MqIGlTcHJpdGVCaXRtYXBDb250ZXh0OyAvLyBvd25lZA0KKyAgICAgICAgQ0Zi
c0JpdG1hcCogaVNwcml0ZUJpdG1hcDsgLy9vd25lZA0KKyAgICAgICAgQ0Zic0JpdG1hcERldmlj
ZSogICAgICAgIGlTcHJpdGVNYXNrQml0bWFwRGV2aWNlOyAgICAgLy8gb3duZWQNCisgICAgICAg
IENGYnNCaXRHYyogICAgICAgICAgICAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHQ7IC8vIG93
bmVkDQorICAgICAgICBDRmJzQml0bWFwKiAgICAgICAgICAgICAgaVNwcml0ZU1hc2tCaXRtYXA7
IC8vb3duZWQNCisgICAgICAgIFRJbnQgaVNpemU7DQorICAgICAgICBUUG9pbnQgaVBvc2l0aW9u
Ow0KKyAgICAgICAgVFJlY3QgaUNsaXBwaW5nUmVjdFg7DQorICAgICAgICBUUmVjdCBpQ2xpcHBp
bmdSZWN0WTsNCisgICAgfTsNCisNCisNCisNCisgICAgLy8gQ0xBU1MgREVDTEFSQVRJT04NCitj
bGFzcyBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyQWNjZWxlcmF0ZWQ6IHB1YmxpYyBDU2Nyb2xs
aW5nSW5kaWNhdG9yRHJhd2VyDQorICAgIHsNCisgICAgcHVibGljOiAgLy8gQ29uc3RydWN0b3Ig
YW5kIGRlc3RydWN0b3INCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBEZXN0cnVjdG9yLg0K
KyAgICAgICAgKi8NCisgICAgICAgIHZpcnR1YWwgfkNTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJB
Y2NlbGVyYXRlZCgpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIEMrKyBkZWZhdWx0IGNv
bnN0cnVjdG9yLg0KKyAgICAgICAgKi8NCisgICAgICAgIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3
ZXJBY2NlbGVyYXRlZChDV2ViS2l0VmlldyYgYVdlYktpdFZpZXcpOw0KKw0KKyAgICAgICAgLyoq
DQorICAgICAgICAqIEJ5IGRlZmF1bHQgU3ltYmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3IgaXMg
cHJpdmF0ZS4NCisgICAgICAgICovDQorICAgICAgICB2b2lkIENvbnN0cnVjdEwoKTsNCisNCisg
ICAgcHVibGljOiAvLyBOZXcgZnVuY3Rpb25zDQorDQorICAgICAgICAvKioNCisgICAgICAgICog
QHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybg0KKyAgICAg
ICAgKi8NCisgICAgICAgIHZvaWQgVXBkYXRlQml0bWFwUG9zaXRpb25MKFRQb2ludCYgYVBvaW50
KTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBAc2luY2UgMy4yDQorICAgICAgICAqIEBw
YXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBpbmRpY2F0b3INCisgICAg
ICAgICovDQorICAgICAgICBUSW50IFNjcm9sbGluZ0luZGljYXRvclNpemUoKSB7IHJldHVybiBp
U2l6ZTsgfQ0KKw0KKyAgICBwcml2YXRlOiAvLyBOZXcgZnVuY3Rpb25zDQorDQorICAgICAgICAv
KioNCisgICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICog
QHJldHVybiBFVHJ1ZSBpZiBhIHJlZnJlc2ggaXMgbmVlZGVkDQorICAgICAgICAqLw0KKyAgICAg
ICAgVEJvb2wgQ2hlY2tOZWVkUmVmcmVjaChUUG9pbnQmIGFQb2ludCk7DQorDQorICAgICAgICAv
KioNCisgICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICog
QHJldHVybg0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgQ3JlYXRlQml0bWFwQW5kQ29udGV4
dEwoKTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBAc2luY2UgMy4yDQorICAgICAgICAq
IEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBV
cGRhdGVNYXNrTCgpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIEBzaW5jZSAzLjINCisg
ICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgICAg
ICB2b2lkIFVwZGF0ZU1hc2tFeEwoKTsNCisNCisgICAgcHJpdmF0ZTogICAgLy8gRGF0YQ0KKw0K
KyAgICAgICAgUldzU3ByaXRlIGlTcHJpdGU7DQorICAgICAgICBDRmJzQml0bWFwRGV2aWNlKiBp
U3ByaXRlQml0bWFwRGV2aWNlOyAgICAgLy8gb3duZWQNCisgICAgICAgIENGYnNCaXRHYyogaVNw
cml0ZUJpdG1hcENvbnRleHQ7IC8vIG93bmVkDQorICAgICAgICBDRmJzQml0bWFwKiBpU3ByaXRl
Qml0bWFwOyAvL293bmVkDQorICAgICAgICBDRmJzQml0bWFwRGV2aWNlKiAgICAgICAgaVNwcml0
ZU1hc2tCaXRtYXBEZXZpY2U7ICAgICAvLyBvd25lZA0KKyAgICAgICAgQ0Zic0JpdEdjKiAgICAg
ICAgICAgICAgIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dDsgLy8gb3duZWQNCisgICAgICAgIENG
YnNCaXRtYXAqICAgICAgICAgICAgICBpU3ByaXRlTWFza0JpdG1hcDsgLy9vd25lZA0KKyAgICAg
ICAgVEludCBpU2l6ZTsNCisgICAgICAgIFRQb2ludCBpUG9zaXRpb247DQorICAgICAgICBUUmVj
dCBpQ2xpcHBpbmdSZWN0WDsNCisgICAgICAgIFRSZWN0IGlDbGlwcGluZ1JlY3RZOw0KKw0KKyAg
ICAgICAgUldzU3ByaXRlIGlTcHJpdGVFeDsNCisgICAgICAgIENGYnNCaXRtYXBEZXZpY2UqIGlT
cHJpdGVCaXRtYXBEZXZpY2VFeDsgICAgIC8vIG93bmVkDQorICAgICAgICBDRmJzQml0R2MqIGlT
cHJpdGVCaXRtYXBDb250ZXh0RXg7IC8vIG93bmVkDQorICAgICAgICBDRmJzQml0bWFwKiBpU3By
aXRlQml0bWFwRXg7IC8vb3duZWQNCisgICAgICAgIENGYnNCaXRtYXBEZXZpY2UqICAgICAgICBp
U3ByaXRlTWFza0JpdG1hcERldmljZUV4OyAgICAgLy8gb3duZWQNCisgICAgICAgIENGYnNCaXRH
YyogICAgICAgICAgICAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHRFeDsgLy8gb3duZWQNCisg
ICAgICAgIENGYnNCaXRtYXAqICAgICAgICAgICAgICBpU3ByaXRlTWFza0JpdG1hcEV4OyAvL293
bmVkDQorICAgICAgICBUSW50IGlTaXplRXg7DQorICAgICAgICBUUG9pbnQgaVBvc2l0aW9uRXg7
DQorICAgICAgICBUUmVjdCBpQ2xpcHBpbmdSZWN0WEV4Ow0KKyAgICAgICAgVFJlY3QgaUNsaXBw
aW5nUmVjdFlFeDsNCisgICAgICAgIFRCb29sIGlTdGF0aWNCaXRtYXBDcmVhdGVkOw0KKyAgICAg
ICAgVEJvb2wgaU5lZWRSZWZyZXNoOw0KKyAgICB9Ow0KKw0KKyNlbmRpZiAgICAgIC8vIFNDUk9M
TElOR0lORElDQVRPUkRSQVdFUl9IDQorDQorLy8gRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQv
QnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93
c2VyVmlldy9pbmMvV2ViS2l0Vmlldy5oCShyZXZpc2lvbiAyMTIwNCkNCisrKyBXZWJLaXQvQnJv
d3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIyMSw2ICsyMjEs
MTMgQEAgY2xhc3MgQ1dlYktpdFZpZXc6IHB1YmxpYyBDRWlrQm9yZGVyZWRDbw0KICAgICAgICAg
Ki8NCiAgICAgICAgIHZvaWQgSGFuZGxlUG9pbnRlckV2ZW50TChjb25zdCBUUG9pbnRlckV2ZW50
JiAvKmFQb2ludGVyRXZlbnQqLyk7DQogDQorICAgICAgICAvKioNCisgICAgICAgICogUmV0dXJu
IGlmIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBzY3JvbGxpbmcgdGhlIGNvbnRlbnQgd2hpbGUgdXNp
bmcgdGhlIHN0eWxlcw0KKyAgICAgICAgKiANCisgICAgICAgICoNCisgICAgICAgICovDQorICAg
ICAgICBUQm9vbCBDb250ZW50SXNTY3JvbGxpbmcoKTsNCisNCiAgICAgcHJvdGVjdGVkOiAvLyBG
cm9tIENDb2VDb250cm9sDQogDQogICAgICAgICAvKioNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZp
ZXcvc3JjL1BvaW50ZXJFdmVudEhhbmRsZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jy
b3dzZXJWaWV3L3NyYy9Qb2ludGVyRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gMjEyMDQpDQor
KysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9Qb2ludGVyRXZlbnRIYW5kbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTU1LDEzICs1NSwxOCBAQA0KICNpbmNsdWRlICJTbWFydExpbmtNYXAuaCIN
CiAjaW5jbHVkZSAiU21hcnRMaW5rSGFuZGxlci5oIg0KICNpbmNsdWRlICJQb3B1cERyYXdlci5o
Ig0KKyNpbmNsdWRlICJTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXIuaCINCisvLyNpbmNsdWRlIDxm
bG9nZ2VyLmg+DQorI2luY2x1ZGUgPGYzMmZpbGUuaD4NCisjaW5jbHVkZSA8ZTMybWF0aC5oPg0K
IA0KIC8vIGNvbnN0YW50cw0KIGNvbnN0IFRJbnQgS0F1dG9TY3JvbGxQZXJpb2RpYyA9IDIwICog
MTAwMDsgLy8gVXBkYXRlIGZyZXF1ZW50bHkgZm9yIGZhc3Rlciwgc21vb3RoZXIgc2Nyb2xsaW5n
DQogY29uc3QgVEludCBLTWljcm9JbnRlcnZhbCA9IDMwMDAwMDsNCi1jb25zdCBUSW50IEtMb25n
dGFwVGltZW91dCA9IDMwMDAwMDsgLy8gQWZ0ZXIgODAwIG1zLCBhIHRhcCBpcyBjb25zaWRlcmVk
IGxvbmd0YXANCi0vL2NvbnN0IFRUaW1lSW50ZXJ2YWxNaWNyb1NlY29uZHMgS01pY3JvSW50ZXJ2
YWwgPSAzMDAwMDA7DQotLy9jb25zdCBUVGltZUludGVydmFsTWljcm9TZWNvbmRzMzIgS0xvbmd0
YXBUaW1lb3V0ID0gODAwMDAwOyAvLyBBZnRlciA4MDAgbXMsIGEgdGFwIGlzIGNvbnNpZGVyZWQg
bG9uZ3RhcA0KK2NvbnN0IFRJbnQgS0xvbmd0YXBUaW1lb3V0ID0gODAwMDAwOyAvLyBBZnRlciA4
MDAgbXMsIGEgdGFwIGlzIGNvbnNpZGVyZWQgbG9uZ3RhcA0KK2NvbnN0IFRJbnQgS0NvbnRlbnRT
Y3JvbGxQZXJpb2RpYyA9IDIwMCAqIDEwMDA7DQorY29uc3QgVEludCBLU2Nyb2xsSnVtcCA9IDIw
Ow0KKw0KIF9MSVQoS0VsZW1lbnRUeXBlLCAiRWxUeXBlIik7DQogX0xJVChLUG9pbnRYLCAiUG9p
bnRYIik7DQogX0xJVChLUG9pbnRZLCAiUG9pbnRZIik7DQpAQCAtNzgsNiArODMsNDYgQEAgVElu
dCBMb25nVGFwQ2FsbGJhY2soIFRBbnkqIGFQdHIgKQ0KICAgICByZXR1cm4gS0Vyck5vbmU7DQog
ICAgIH0NCiANCitUSW50IENvbnRlbnRTY3JvbGxDYWxsYmFjayhUQW55KiBhUHRyKQ0KKyAgICB7
DQorICAgIHN0YXRpY19jYXN0PENQb2ludGVyRXZlbnRIYW5kbGVyKj4oYVB0ciktPkhhbmRsZUNv
bnRlbnRTY3JvbGwoKTsNCisgICAgcmV0dXJuIEtFcnJOb25lOw0KKyAgICB9DQorDQorLyoqIC8N
CisvL1VuY29tbWVudCB0byBsb2cgcG9pbnRlciBldmVudHMNCit2b2lkIExvZyhjb25zdCBUUG9p
bnRlckV2ZW50JiBhUG9pbnRlckV2ZW50LCBUUHRyQyBhVGV4dCkNCisgICAgew0KKyAgICBfTElU
KEtEb3duLCAiZG93biIpOw0KKyAgICBfTElUKEtEcmFnLCAiZHJhZyIpOw0KKyAgICBfTElUKEtV
cCwgInVwIik7DQorICAgIF9MSVQoS1Vua25vd24sICJVbmtub3duIik7DQorICAgIFRQdHJDIHBE
b3duKEtEb3duKTsNCisgICAgVFB0ckMgcERyYWcoS0RyYWcpOw0KKyAgICBUUHRyQyBwVXAoS1Vw
KTsNCisgICAgVFB0ckMgcChLVW5rbm93bik7DQorICAgIF9MSVQoS0ssInRpbWU6ICV1ICV1LCBw
b2ludD0oJWQsICVkKSBFdmVudD0lUyAlU1wwIik7DQorICAgIFRUaW1lIHRpbWVOb3c7DQorICAg
IHRpbWVOb3cuVW5pdmVyc2FsVGltZSgpOw0KKyAgICBUSW50NjQgbm93ID0gdGltZU5vdy5JbnQ2
NCgpOw0KKyAgICBUSW50IG5vd0hpZ2ggPSBJNjRISUdIKG5vdyk7DQorICAgIFRJbnQgbm93TG93
ID0gSTY0TE9XKG5vdyk7DQorICAgIHN3aXRjaCAoYVBvaW50ZXJFdmVudC5pVHlwZSkNCisgICAg
ICAgIHsNCisgICAgICAgIGNhc2UgVFBvaW50ZXJFdmVudDo6RUJ1dHRvbjFEb3duOg0KKyAgICAg
ICAgICAgIHAuU2V0KHBEb3duKTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2Ug
VFBvaW50ZXJFdmVudDo6RURyYWc6DQorICAgICAgICAgICAgcC5TZXQocERyYWcpOw0KKyAgICAg
ICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBUUG9pbnRlckV2ZW50OjpFQnV0dG9uMVVwOg0K
KyAgICAgICAgICAgIHAuU2V0KHBVcCk7DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICB9
DQorICAgIFJGaWxlTG9nZ2VyOjpXcml0ZUZvcm1hdChfTCgiQnJvd3NlciIpLF9MKCJwb2ludGVy
LmxvZyIpLEVGaWxlTG9nZ2luZ01vZGVBcHBlbmQsS0ssIG5vd0hpZ2gsIG5vd0xvdywgYVBvaW50
ZXJFdmVudC5pUG9zaXRpb24uaVgsDQorICAgICAgICBhUG9pbnRlckV2ZW50LmlQb3NpdGlvbi5p
WSwgJnAsICZhVGV4dCk7DQorICAgIH0NCisvKiovDQogDQogLy8gPT09PT09PT09PT09PT09PT09
PT09PT09PT09PSBNRU1CRVIgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCiANCkBAIC0xMzAsOSArMTc1LDEzIEBAIENQb2ludGVyRXZlbnRIYW5kbGVyOjp+Q1BvaW50
ZXJFdmVudEhhbmQNCiAgICAgICAgIGlMb25ndGFwVGltZXItPkNhbmNlbCgpOw0KICAgICAgICAg
ZGVsZXRlIGlMb25ndGFwVGltZXI7DQogICAgICAgICB9DQorICAgIGlQcmVTY3JvbGxpbmdFdmVu
dHMuUmVzZXQoKTsNCisgICAgZGVsZXRlIGlTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXI7DQogICAg
IH0NCisNCiB2b2lkIENQb2ludGVyRXZlbnRIYW5kbGVyOjpIYW5kbGVQb2ludGVyRXZlbnRMKGNv
bnN0IFRQb2ludGVyRXZlbnQmIGFQb2ludGVyRXZlbnQpDQogICAgIHsNCisgICAgLy9Mb2coYVBv
aW50ZXJFdmVudCwgX0woIkhhbmRsZVBvaW50ZXJFdmVudCIpKTsNCiAgICAgaWYgKEFrbkxheW91
dFV0aWxzOjpQZW5FbmFibGVkKCkpDQogICAgICAgICB7DQogICAgICAgICAvLyBIYW5kbGUgcGFn
ZSB2aWV3IG1vZGUNCkBAIC0xNTksNyArMjA4LDkgQEAgdm9pZCBDUG9pbnRlckV2ZW50SGFuZGxl
cjo6SGFuZGxlUG9pbnRlcg0KICAgICAgICAgICAgIH0NCiAgICAgICAgIC8vIEhhbmRsZSBpbnB1
dCBib3gNCiAgICAgICAgIENDb2VDb250cm9sKiBhY3RpdmVXaWRnZXQgPSBpV2ViS2l0Vmlldy0+
QWN0aXZlV2lkZ2V0KCk7DQotICAgICAgICBpZiAoYWN0aXZlV2lkZ2V0ICYmIChpV2ViS2l0Vmll
dy0+QWN0aXZlV2lkZ2V0UmVjdCgpLkNvbnRhaW5zKGFQb2ludGVyRXZlbnQuaVBvc2l0aW9uKSB8
fCBpQWN0aXZlV2lkZ2V0Q29uc3VtZXMpKQ0KKyAgICAgICAgaWYgKGFjdGl2ZVdpZGdldCkNCisg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgaWYgKChpV2ViS2l0Vmlldy0+QWN0aXZlV2lkZ2V0
UmVjdCgpLkNvbnRhaW5zKGFQb2ludGVyRXZlbnQuaVBvc2l0aW9uKSB8fCBpQWN0aXZlV2lkZ2V0
Q29uc3VtZXMpKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBpZihhUG9pbnRlckV2ZW50
LmlUeXBlID09IFRQb2ludGVyRXZlbnQ6OkVCdXR0b24xRG93bikNCiAgICAgICAgICAgICAgICAg
aUFjdGl2ZVdpZGdldENvbnN1bWVzID0gRVRydWU7DQpAQCAtMTY3LDYgKzIxOCwxNSBAQCB2b2lk
IENQb2ludGVyRXZlbnRIYW5kbGVyOjpIYW5kbGVQb2ludGVyDQogICAgICAgICAgICAgICAgIGlB
Y3RpdmVXaWRnZXRDb25zdW1lcyA9IEVGYWxzZTsNCiAgICAgICAgICAgICByZXR1cm4gYWN0aXZl
V2lkZ2V0LT5IYW5kbGVQb2ludGVyRXZlbnRMKGFQb2ludGVyRXZlbnQpOw0KICAgICAgICAgICAg
IH0NCisgICAgICAgICAgICBhY3RpdmVXaWRnZXQtPkhhbmRsZVBvaW50ZXJFdmVudEwoYVBvaW50
ZXJFdmVudCk7DQorICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgLy8gSGFuZGxlIHBsdWdpbg0K
KyAgICAgICAgaWYgKGlXZWJLaXRWaWV3LT5Gb2N1c2VkRWxlbWVudFR5cGUoKSA9PSBUQnJDdGxE
ZWZzOjpFRWxlbWVudEFjdGl2YXRlZE9iamVjdEJveCApDQorICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgIGlXZWJLaXRWaWV3LT5EZUFjdGl2YXRlKEVGYWxzZSk7DQorICAgICAgICAgICAgfQ0K
Kw0KICAgICAgICAgVFBvaW50IGFic0N1cnNvclBvcyA9IGlXZWJLaXRWaWV3LT5NYWluRnJhbWUo
KS5Ub0RvY0Nvb3JkcyhhUG9pbnRlckV2ZW50LmlQb3NpdGlvbikgKyBpV2ViS2l0Vmlldy0+TWFp
bkZyYW1lKCkuQ29udGVudFBvc2l0aW9uKCk7DQogICAgICAgICBhYnNDdXJzb3JQb3MgPSBpV2Vi
S2l0Vmlldy0+TWFpbkZyYW1lKCkuVG9WaWV3Q29vcmRzKGFic0N1cnNvclBvcyk7DQogICAgICAg
ICBDV2ViS2l0RnJhbWUqIGZyYW1lID0gaVdlYktpdFZpZXctPk1haW5GcmFtZSgpLkZyYW1lQXRQ
b2ludChhYnNDdXJzb3JQb3MpOw0KQEAgLTE4MCw1OCArMjQwLDUxIEBAIHZvaWQgQ1BvaW50ZXJF
dmVudEhhbmRsZXI6OkhhbmRsZVBvaW50ZXINCiAgICAgICAgIGlXZWJLaXRWaWV3LT5TZXRGb2N1
c2VkRWxlbWVudFR5cGUoKFRCckN0bERlZnM6OlRCckN0bEVsZW1lbnRUeXBlKWVsVHlwZSk7DQog
ICAgICAgICBpZiAoZWxUeXBlID09IFRCckN0bERlZnM6OkVFbGVtZW50Tm9uZSkNCiAgICAgICAg
ICAgICB7DQotICAgICAgICAgICAgQ2hlY2tTbWFydFRleHRFbnRyeSgpOw0KKyAgICAgICAgICAg
IENoZWNrU21hcnRUZXh0RW50cnkoYVBvaW50ZXJFdmVudC5pUG9zaXRpb24pOw0KICAgICAgICAg
ICAgIH0NCiANCisgICAgICAgIGlmIChIYW5kbGVTY3JvbGxpbmdQb2ludGVyRXZlbnRMKGFQb2lu
dGVyRXZlbnQpKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm47DQorICAgICAg
ICAgICAgfQ0KKw0KKyAgICAgICAgaWYgKGlMb25ndGFwVGltZXIpDQorICAgICAgICAgICAgew0K
KyAgICAgICAgICAgIGlMb25ndGFwVGltZXItPkNhbmNlbCgpOw0KKyAgICAgICAgICAgIH0NCiAg
ICAgICAgIFRQb2ludGVyRXZlbnQgcG9pbnRlckV2ZW50ID0gYVBvaW50ZXJFdmVudDsNCiAgICAg
ICAgIHBvaW50ZXJFdmVudC5pUG9zaXRpb24gPSBhYnNDdXJzb3JQb3M7DQogDQotICAgICAgICBp
ZiAoaVdlYktpdFZpZXctPkN1cnNvcigpKQ0KLSAgICAgICAgICAgICB7DQotICAgICAgICAgICAg
IGlXZWJLaXRWaWV3LT5DdXJzb3IoKS0+UmVzZXRUcmFuc3BhcmVuY3koKTsNCi0gICAgICAgICAg
ICAgaVdlYktpdFZpZXctPkN1cnNvcigpLT5DdXJzb3JVcGRhdGUoRVRydWUpOw0KLSAgICAgICAg
ICAgICBpV2ViS2l0Vmlldy0+Q3Vyc29yKCktPlNldFBvc2l0aW9uKGFQb2ludGVyRXZlbnQuaVBv
c2l0aW9uKTsNCi0gICAgICAgICAgICAgfQ0KKyAgICAgICAgVXBkYXRlQ3Vyc29yKGFQb2ludGVy
RXZlbnQuaVBvc2l0aW9uKTsNCiAgICAgICAgIGZyYW1lLT5XZWJLaXRCcmlkZ2UoKS5XZWJDb3Jl
QnJpZGdlKCkuUG9pbnRlckV2ZW50KHBvaW50ZXJFdmVudCk7DQogDQogICAgICAgICBpZiAocG9p
bnRlckV2ZW50LmlUeXBlID09IFRQb2ludGVyRXZlbnQ6OkVCdXR0b24xRG93bikNCiAgICAgICAg
ICAgICB7DQogICAgICAgICAgICAgaUxhc3RQb2ludGVyRXZlbnQgPSBhUG9pbnRlckV2ZW50Ow0K
ICAgICAgICAgICAgIGlFbGVtZW50UmVjdCA9IGVsUmVjdDsNCi0gICAgICAgICAgICBpZiAoaUxv
bmd0YXBUaW1lcikNCi0gICAgICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgICBpTG9uZ3Rh
cFRpbWVyLT5DYW5jZWwoKTsNCi0gICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgIGVsc2UN
CisgICAgICAgICAgICBpZiAoIWlMb25ndGFwVGltZXIpDQogICAgICAgICAgICAgICAgIHsNCiAg
ICAgICAgICAgICAgICAgaUxvbmd0YXBUaW1lciA9IENQZXJpb2RpYzo6TmV3TChDQWN0aXZlOjpF
UHJpb3JpdHlMb3cpOw0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgaUxvbmd0YXBU
aW1lci0+U3RhcnQoS0xvbmd0YXBUaW1lb3V0LCBLTG9uZ3RhcFRpbWVvdXQsIFRDYWxsQmFjaygm
TG9uZ1RhcENhbGxiYWNrLCB0aGlzKSk7DQogICAgICAgICAgICAgfQ0KLSAgICAgICAgZWxzZQ0K
LSAgICAgICAgICAgIHsNCi0gICAgICAgICAgICBpZiAoaUxvbmd0YXBUaW1lcikNCi0gICAgICAg
ICAgICAgICAgew0KLSAgICAgICAgICAgICAgICBpTG9uZ3RhcFRpbWVyLT5DYW5jZWwoKTsNCi0g
ICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgaWYgKHBvaW50ZXJFdmVudC5pVHlwZSA9PSBUUG9p
bnRlckV2ZW50OjpFQnV0dG9uMVVwKQ0KKyAgICAgICAgZWxzZSBpZiAocG9pbnRlckV2ZW50LmlU
eXBlID09IFRQb2ludGVyRXZlbnQ6OkVCdXR0b24xVXApDQogICAgICAgICAgICAgew0KICAgICAg
ICAgICAgIGlmIChlbFJlY3QgPT0gaUVsZW1lbnRSZWN0KSAvLyBkb3duIGFuZCB1cCBvbiBzYW1l
IGVsZW1lbnQ/DQogICAgICAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgICAgIGlmIChp
V2ViS2l0Vmlldy0+Rm9jdXNlZEVsZW1lbnRUeXBlKCkgIT0gVEJyQ3RsRGVmczo6RUVsZW1lbnRO
b25lKSAvLyBXZWJDb3JlIGNyYXNoZXMgb24gZW1wdHkgcGFnZQ0KLSAgICAgICAgICAgICAgICAg
ICAgICAgIHsgICAgICAgICAgICAgICAgICAgIA0KLSAgICAgICAgICAgICAgICBmcmFtZS0+V2Vi
S2l0QnJpZGdlKCkuV2ViQ29yZUJyaWRnZSgpLkFjdGl2YXRlRXZlbnQoYWJzQ3Vyc29yUG9zKTsN
Ci0gICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBoYW5k
bGluZyBmb3IgYnJva2VuIGltYWdlDQotICAgICAgICAgICAgICAgICAgICBpZiAoaVdlYktpdFZp
ZXctPkZvY3VzZWRFbGVtZW50VHlwZSgpID09IFRCckN0bERlZnM6OkVFbGVtZW50QnJva2VuSW1h
Z2UpDQotICAgICAgICAgICAgICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgICAgICAgICAg
IGZyYW1lLT5XZWJLaXRCcmlkZ2UoKS5XZWJDb3JlQnJpZGdlKCkuTG9hZEZvY3VzZWRJbWFnZShh
YnNDdXJzb3JQb3MpOw0KLSAgICAgICAgICAgIH0NCi0gICAgICAgICAgICAgICAgICAgIC8vIHNw
ZWNpYWwgaGFuZGxpbmcgZm9yIGUtbWFpbCBhZGRyZXNzDQotICAgICAgICAgICAgICAgICAgICBp
ZiAoaVdlYktpdFZpZXctPkZvY3VzZWRFbGVtZW50VHlwZSgpID09IFRCckN0bERlZnM6OkVFbGVt
ZW50U21hcnRMaW5rRW1haWwpDQotICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgICAgICAg
ICAgIGZyYW1lLT5TbWFydExpbmtIYW5kbGVyKCktPkhhbmRsZVNlbmRNZXNzYWdlKCk7DQotICAg
ICAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBpZiAoaVdlYktpdFZpZXct
PkZvY3VzZWRFbGVtZW50VHlwZSgpICE9IFRCckN0bERlZnM6OkVFbGVtZW50Tm9uZSkgLy8gV2Vi
Q29yZSBjcmFzaGVzIG9uIGVtcHR5IHBhZ2UNCisgICAgICAgICAgICAgICAgICAgIHsgICAgICAg
ICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPldlYktpdEJyaWRnZSgp
LldlYkNvcmVCcmlkZ2UoKS5BY3RpdmF0ZUV2ZW50KGFic0N1cnNvclBvcyk7DQorICAgICAgICAg
ICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGJy
b2tlbiBpbWFnZQ0KKyAgICAgICAgICAgICAgICBpZiAoaVdlYktpdFZpZXctPkZvY3VzZWRFbGVt
ZW50VHlwZSgpID09IFRCckN0bERlZnM6OkVFbGVtZW50QnJva2VuSW1hZ2UpDQorICAgICAgICAg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBmcmFtZS0+V2ViS2l0QnJpZGdlKCku
V2ViQ29yZUJyaWRnZSgpLkxvYWRGb2N1c2VkSW1hZ2UoYWJzQ3Vyc29yUG9zKTsNCisgICAgICAg
ICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBoYW5kbGluZyBmb3Ig
ZS1tYWlsIGFkZHJlc3MNCisgICAgICAgICAgICAgICAgaWYgKGlXZWJLaXRWaWV3LT5Gb2N1c2Vk
RWxlbWVudFR5cGUoKSA9PSBUQnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua0VtYWlsKQ0KKyAg
ICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPlNtYXJ0TGlu
a0hhbmRsZXIoKS0+SGFuZGxlU2VuZE1lc3NhZ2UoKTsNCiAgICAgICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIH0NCkBAIC0zNzksMTIgKzQzMiwxMiBA
QCB2b2lkIENQb2ludGVyRXZlbnRIYW5kbGVyOjpIYW5kbGVMb25nVGFwDQogICAgICAgICB9DQog
ICAgIH0NCiANCi12b2lkIENQb2ludGVyRXZlbnRIYW5kbGVyOjpDaGVja1NtYXJ0VGV4dEVudHJ5
KCkNCit2b2lkIENQb2ludGVyRXZlbnRIYW5kbGVyOjpDaGVja1NtYXJ0VGV4dEVudHJ5KFRQb2lu
dCBhUG9pbnQpDQogICAgIHsNCi0gICAgQ1dlYktpdEZyYW1lKiBmb2N1c2VkID0gR2V0RnJhbWVB
dChpTGFzdFBvaW50ZXJFdmVudC5pUG9zaXRpb24pOw0KKyAgICBDV2ViS2l0RnJhbWUqIGZvY3Vz
ZWQgPSBHZXRGcmFtZUF0KGFQb2ludCk7DQogICAgIGlmIChmb2N1c2VkKQ0KICAgICAgICAgeyAg
ICAgICAgICAgICANCi0gICAgICAgIFRQb2ludCBwdEN1cnNvciA9IGZvY3VzZWQtPlZpZXdDb29y
ZHNJbkZyYW1lQ29vcmRzKGlMYXN0UG9pbnRlckV2ZW50LmlQb3NpdGlvbik7DQorICAgICAgICBU
UG9pbnQgcHRDdXJzb3IgPSBmb2N1c2VkLT5WaWV3Q29vcmRzSW5GcmFtZUNvb3JkcyhhUG9pbnQp
Ow0KICAgICAgICAgQ1NtYXJ0TGluayogZW50cnkgPSBmb2N1c2VkLT5TbWFydExpbmtNYXAoKS0+
R2V0RW50cnkoVFJlY3QocHRDdXJzb3IsVFNpemUoMSwxKSkpOw0KICAgICAgICAgaWYgKCBlbnRy
eSAhPSBOVUxMKQ0KICAgICAgICAgICAgIHsNCkBAIC00MDgsNiArNDYxLDIyOSBAQCBDV2ViS2l0
RnJhbWUqIENQb2ludGVyRXZlbnRIYW5kbGVyOjpHZXRGDQogICAgIENXZWJLaXRGcmFtZSogZnJh
bWUgPSBpV2ViS2l0Vmlldy0+TWFpbkZyYW1lKCkuRnJhbWVBdFBvaW50KGFic0N1cnNvclBvcyk7
DQogICAgIGlmICghZnJhbWUpIGZyYW1lID0gJmlXZWJLaXRWaWV3LT5NYWluRnJhbWUoKTsNCiAg
ICAgcmV0dXJuIGZyYW1lOw0KKyAgICB9DQorDQorDQorVEJvb2wgQ1BvaW50ZXJFdmVudEhhbmRs
ZXI6OkhhbmRsZVNjcm9sbGluZ1BvaW50ZXJFdmVudEwoY29uc3QgVFBvaW50ZXJFdmVudCYgYVBv
aW50ZXJFdmVudCkNCisgICAgew0KKyAgICBUQm9vbCByZXQgPSBFRmFsc2U7DQorICAgIGlmIChp
Q29udGVudElzU2Nyb2xsaW5nKQ0KKyAgICAgICAgew0KKyAgICAgICAgcmV0dXJuIEhhbmRsZURy
YWdMKGFQb2ludGVyRXZlbnQpOw0KKyAgICAgICAgfQ0KKyAgICBlbHNlDQorICAgICAgICB7DQor
ICAgICAgICByZXR1cm4gSGFuZGxlU2hvdWxkU3RhcnRTY3JvbGxpbmdMKGFQb2ludGVyRXZlbnQp
Ow0KKyAgICAgICAgfQ0KKyAgICByZXR1cm4gcmV0Ow0KKyAgICB9DQorDQorVEJvb2wgQ1BvaW50
ZXJFdmVudEhhbmRsZXI6OkhhbmRsZVNob3VsZFN0YXJ0U2Nyb2xsaW5nTChjb25zdCBUUG9pbnRl
ckV2ZW50JiBhUG9pbnRlckV2ZW50KQ0KKyAgICB7DQorICAgIFRCb29sIHJldCA9IEVGYWxzZTsg
ICAgDQorICAgIGlmIChpV2ViS2l0Vmlldy0+TWFpbkZyYW1lKCkuQ29udGVudFNpemUoKS5pV2lk
dGggPiBpV2ViS2l0Vmlldy0+UmVjdCgpLldpZHRoKCkgfHwgDQorICAgICAgICBpV2ViS2l0Vmll
dy0+TWFpbkZyYW1lKCkuQ29udGVudFNpemUoKS5pSGVpZ2h0ID4gaVdlYktpdFZpZXctPlJlY3Qo
KS5IZWlnaHQoKSkNCisgICAgICAgIHsNCisgICAgICAgIHN3aXRjaCAoYVBvaW50ZXJFdmVudC5p
VHlwZSkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgY2FzZSBUUG9pbnRlckV2ZW50OjpF
QnV0dG9uMURvd246DQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgLy8gSGFu
ZGxlIHBsdWdpbnMgc2VwYXJhdGVseQ0KKyAgICAgICAgICAgICAgICBpZiAoaVdlYktpdFZpZXct
PkZvY3VzZWRFbGVtZW50VHlwZSgpID09IFRCckN0bERlZnM6OkVFbGVtZW50T2JqZWN0Qm94KQ0K
KyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQorICAg
ICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIGlQcmVTY3JvbGxpbmdFdmVudHMu
UmVzZXQoKTsNCisgICAgICAgICAgICAgICAgaVByZVNjcm9sbGluZ0V2ZW50cy5BcHBlbmRMKGFQ
b2ludGVyRXZlbnQpOw0KKyAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICAgICAg
fQ0KKyAgICAgICAgICAgIGNhc2UgVFBvaW50ZXJFdmVudDo6RURyYWc6DQorICAgICAgICAgICAg
ICAgIHsNCisgICAgICAgICAgICAgICAgaWYgKGlMYXN0UG9pbnRlckV2ZW50LmlQb3NpdGlvbiA9
PSBhUG9pbnRlckV2ZW50LmlQb3NpdGlvbikNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBFVHJ1ZTsgLy8gSWdub3JlIHRoZSBldmVudA0KKyAgICAg
ICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGlQcmVTY3JvbGxpbmdF
dmVudHMuQ291bnQoKSkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgMTogLy8gd2FpdCBmb3IgbW9yZSBkcmFnZ2luZyBldmVudHMNCisgICAgICAgICAg
ICAgICAgICAgICAgICBpUHJlU2Nyb2xsaW5nRXZlbnRzLkFwcGVuZEwoYVBvaW50ZXJFdmVudCk7
DQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgICAgICAgICAgICBj
YXNlIDI6DQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpV2ViS2l0Vmlldy0+QWN0aXZl
V2lkZ2V0KCkpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaUNvbnRlbnRJc1Njcm9sbGluZyA9IEVUcnVlOw0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXQgPSBFVHJ1ZTsNCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaVByZVNjcm9sbGluZ0V2ZW50cy5BcHBlbmRMKGFQb2ludGVyRXZlbnQpOw0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBDYW5jZWwgdGhlIFRQb2ludGVyRXZlbnQ6OkVCdXR0b24x
RG93biBldmVudCBpbiBXZWJDb3JlIGJ5IHNlbmRpbmcgYSBmYWtlIFRQb2ludGVyRXZlbnQ6OkVC
dXR0b24xVXAgZXZlbnQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFBvaW50ZXJFdmVu
dCBwb2ludGVyRXZlbnQ7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVu
dC5pUG9zaXRpb24gPSBUUG9pbnQoLTEsIC0xKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcG9pbnRlckV2ZW50LmlUeXBlID0gVFBvaW50ZXJFdmVudDo6RUJ1dHRvbjFVcDsNCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR2V0RnJhbWVBdChhUG9pbnRlckV2ZW50LmlQb3NpdGlv
biktPldlYktpdEJyaWRnZSgpLldlYkNvcmVCcmlkZ2UoKS5Qb2ludGVyRXZlbnQocG9pbnRlckV2
ZW50KTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlXZWJLaXRWaWV3LT5DdXJz
b3IoKSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlXZWJLaXRWaWV3LT5DdXJzb3IoKS0+Q3Vyc29yVXBkYXRlKEVG
YWxzZSk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQorLyoNCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVhc3kgd2F5IGZvciBzZWxlY3Rpbmcgb25lIG9m
IHRoZSAyIHNjcm9sbGluZyBhbGdvcml0aG1zLiANCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFdpbGwgYmUgcmVtb3ZlZCB3aGVuIGFuIGFsZ29yaXRobSBpcyBzZWxlY3RlZA0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkZzIHJmczsNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVzZXI6OkxlYXZlSWZFcnJvcihyZnMuQ29ubmVjdCgpKTsNCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1c2hMKHJmcyk7DQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUVWludCBhdHQ7DQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocmZzLkF0dChfTCgiYzpcXGEiKSwgYXR0KSA9PSBLRXJy
Tm9uZSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaVNjcm9sbGluZ1R5cGUgPSBDU2Nyb2xsaW5nSW5k
aWNhdG9yRHJhd2VyOjpFU2Nyb2xsaW5nVHlwZUVkZ2U7DQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpU2Nyb2xsaW5nVHlwZSA9IENTY3JvbGxpbmdJbmRpY2F0b3JE
cmF3ZXI6OkVTY3JvbGxpbmdUeXBlQWNjZWxlcmF0ZWQ7DQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsZWFudXBT
dGFjazo6UG9wQW5kRGVzdHJveSgpOyAvLyByZnMNCisqLw0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyID0gQ1Njcm9sbGluZ0luZGljYXRvckRy
YXdlcjo6TmV3TCgqaVdlYktpdFZpZXcsIGlTY3JvbGxpbmdUeXBlKTsNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaVNjcm9sbGluZ0luZGljYXRvckRyYXdlci0+VXBkYXRlQml0bWFwUG9z
aXRpb25MKGlQcmVTY3JvbGxpbmdFdmVudHNbMF0uaVBvc2l0aW9uKTsNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaVNjcm9sbGluZ0luZGljYXRvckRyYXdlci0+VXBkYXRlQml0bWFwUG9z
aXRpb25MKGlQcmVTY3JvbGxpbmdFdmVudHNbMl0uaVBvc2l0aW9uKTsNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdDoNCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN
CisgICAgICAgICAgICAgICAgICAgIH0gLy8gc3dpdGNoIChpUHJlU2Nyb2xsaW5nRXZlbnRzLkNv
dW50KCkpDQorICAgICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgICAgICB9DQorICAg
ICAgICAgICAgY2FzZSBUUG9pbnRlckV2ZW50OjpFQnV0dG9uMVVwOiAvLyBOb3JtYWwgdGFwDQor
ICAgICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgIGRlZmF1bHQ6DQorICAgICAgICAg
ICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgIH0gLy8gc3dpdGNoIChhUG9pbnRlckV2ZW50LmlU
eXBlKQ0KKyAgICAgICAgfQ0KKyAgICByZXR1cm4gcmV0Ow0KKyAgICB9DQorDQorVEJvb2wgQ1Bv
aW50ZXJFdmVudEhhbmRsZXI6OkhhbmRsZURyYWdMKGNvbnN0IFRQb2ludGVyRXZlbnQmIGFQb2lu
dGVyRXZlbnQpDQorICAgIHsNCisgICAgVEJvb2wgcmV0ID0gRVRydWU7DQorICAgIGlmIChhUG9p
bnRlckV2ZW50LmlUeXBlID09IFRQb2ludGVyRXZlbnQ6OkVEcmFnKQ0KKyAgICAgICAgeyAgICAg
IA0KKyAgICAgICAgaWYgKCFpQXV0b1Njcm9sbFBlcmlvZGljKQ0KKyAgICAgICAgICAgIHsNCisg
ICAgICAgICAgICBpQXV0b1Njcm9sbFBlcmlvZGljID0gQ1BlcmlvZGljOjpOZXdMKENBY3RpdmU6
OkVQcmlvcml0eVN0YW5kYXJkKTsNCisgICAgICAgICAgICBpQXV0b1Njcm9sbFBlcmlvZGljLT5T
dGFydChLQ29udGVudFNjcm9sbFBlcmlvZGljLCBLQ29udGVudFNjcm9sbFBlcmlvZGljLCBUQ2Fs
bEJhY2soJkNvbnRlbnRTY3JvbGxDYWxsYmFjaywgdGhpcykpOw0KKyAgICAgICAgICAgIH0NCisg
ICAgICAgIC8vIEtlZXAgdGhlIGxhc3QgcG9pbnRlciBldmVudA0KKyAgICAgICAgaVByZVNjcm9s
bGluZ0V2ZW50c1sxXSA9IGlQcmVTY3JvbGxpbmdFdmVudHNbMl07DQorICAgICAgICBpUHJlU2Ny
b2xsaW5nRXZlbnRzWzJdID0gYVBvaW50ZXJFdmVudDsNCisgICAgICAgIFVwZGF0ZUN1cnNvcihh
UG9pbnRlckV2ZW50LmlQb3NpdGlvbik7DQorICAgICAgICBpU2Nyb2xsaW5nSW5kaWNhdG9yRHJh
d2VyLT5VcGRhdGVCaXRtYXBQb3NpdGlvbkwoaVByZVNjcm9sbGluZ0V2ZW50c1syXS5pUG9zaXRp
b24pOw0KKyAgICAgICAgfQ0KKyAgICBlbHNlIGlmIChhUG9pbnRlckV2ZW50LmlUeXBlID09IFRQ
b2ludGVyRXZlbnQ6OkVCdXR0b24xVXApDQorICAgICAgICB7DQorICAgICAgICBpZiAoaUF1dG9T
Y3JvbGxQZXJpb2RpYykNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaUF1dG9TY3JvbGxQ
ZXJpb2RpYy0+Q2FuY2VsKCk7DQorICAgICAgICAgICAgZGVsZXRlIGlBdXRvU2Nyb2xsUGVyaW9k
aWM7DQorICAgICAgICAgICAgaUF1dG9TY3JvbGxQZXJpb2RpYyA9IE5VTEw7DQorICAgICAgICAg
ICAgfQ0KKyAgICAgICAgZGVsZXRlIGlTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXI7DQorICAgICAg
ICBpU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyID0gTlVMTDsNCisgICAgICAgIGlDb250ZW50SXNT
Y3JvbGxpbmcgPSBFRmFsc2U7DQorICAgICAgICByZXQgPSBFRmFsc2U7DQorICAgICAgICBpV2Vi
S2l0Vmlldy0+RHJhd05vdygpOw0KKyAgICAgICAgfQ0KKyAgICByZXR1cm4gcmV0Ow0KKyAgICB9
DQorDQordm9pZCBDUG9pbnRlckV2ZW50SGFuZGxlcjo6SGFuZGxlQ29udGVudFNjcm9sbCgpDQor
ICAgIHsNCisgICAgLy9Mb2coaVByZVNjcm9sbGluZ0V2ZW50c1syXSwgX0woIkhhbmRsZUNvbnRl
bnRTY3JvbGwiKSk7DQorICAgIFRJbnQgaGFsZlNpemUgPSBpU2Nyb2xsaW5nSW5kaWNhdG9yRHJh
d2VyLT5TY3JvbGxpbmdJbmRpY2F0b3JTaXplKCkgLyAyOw0KKyAgICBUSW50IGRlbHRhWCA9IDA7
DQorICAgIFRJbnQgZGVsdGFZID0gMDsNCisgICAgVFJlYWwgciA9IDE7DQorICAgIFRJbnQgaSA9
IDE7DQorICAgIFRJbnQgZGlyWCA9IDE7DQorICAgIFRJbnQgZGlyWSA9IDE7DQorICAgIFRSZWFs
IHBvd2VyOw0KKw0KKyAgICBzd2l0Y2ggKGlTY3JvbGxpbmdUeXBlKQ0KKyAgICAgICAgew0KKyAg
ICAgICAgY2FzZSBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyOjpFU2Nyb2xsaW5nVHlwZUVkZ2U6
DQorICAgICAgICAgICAgeyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIHBvd2VyID0gMS4wOw0K
KyAgICAgICAgICAgIGlmIChpUHJlU2Nyb2xsaW5nRXZlbnRzWzJdLmlQb3NpdGlvbi5pWCA8IGhh
bGZTaXplKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGRlbHRhWCA9IGhh
bGZTaXplIC0gaVByZVNjcm9sbGluZ0V2ZW50c1syXS5pUG9zaXRpb24uaVg7DQorICAgICAgICAg
ICAgICAgIGRpclggPSAtMTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ug
aWYgKGlQcmVTY3JvbGxpbmdFdmVudHNbMl0uaVBvc2l0aW9uLmlYID4gaVdlYktpdFZpZXctPlJl
Y3QoKS5pQnIuaVggLSBoYWxmU2l6ZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAg
ICAgICBkZWx0YVggPSBpUHJlU2Nyb2xsaW5nRXZlbnRzWzJdLmlQb3NpdGlvbi5pWCAtIGlXZWJL
aXRWaWV3LT5SZWN0KCkuaUJyLmlYICsgaGFsZlNpemU7DQorICAgICAgICAgICAgICAgIH0NCisN
CisgICAgICAgICAgICBpZiAoaVByZVNjcm9sbGluZ0V2ZW50c1syXS5pUG9zaXRpb24uaVkgPCBo
YWxmU2l6ZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBkZWx0YVkgPSBo
YWxmU2l6ZSAtIGlQcmVTY3JvbGxpbmdFdmVudHNbMl0uaVBvc2l0aW9uLmlZOw0KKyAgICAgICAg
ICAgICAgICBkaXJZID0gLTE7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNl
IGlmIChpUHJlU2Nyb2xsaW5nRXZlbnRzWzJdLmlQb3NpdGlvbi5pWSA+IGlXZWJLaXRWaWV3LT5S
ZWN0KCkuaUJyLmlZIC0gaGFsZlNpemUpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAg
ICAgICAgZGVsdGFZID0gaVByZVNjcm9sbGluZ0V2ZW50c1syXS5pUG9zaXRpb24uaVkgLWlXZWJL
aXRWaWV3LT5SZWN0KCkuaUJyLmlZICsgaGFsZlNpemU7DQorICAgICAgICAgICAgICAgIH0NCisg
ICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQorICAgICAgICBjYXNlIENTY3JvbGxp
bmdJbmRpY2F0b3JEcmF3ZXI6OkVTY3JvbGxpbmdUeXBlQWNjZWxlcmF0ZWQ6DQorICAgICAgICAg
ICAgew0KKyAgICAgICAgICAgIHBvd2VyID0gMC44Ow0KKyAgICAgICAgICAgIGlmIChpUHJlU2Ny
b2xsaW5nRXZlbnRzWzJdLmlQb3NpdGlvbi5pWCA8IGlQcmVTY3JvbGxpbmdFdmVudHNbMF0uaVBv
c2l0aW9uLmlYIC0gaGFsZlNpemUpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAg
ICAgZGVsdGFYID0gaVByZVNjcm9sbGluZ0V2ZW50c1swXS5pUG9zaXRpb24uaVggLSBoYWxmU2l6
ZSAtIGlQcmVTY3JvbGxpbmdFdmVudHNbMl0uaVBvc2l0aW9uLmlYOw0KKyAgICAgICAgICAgICAg
ICBkaXJYID0gLTE7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIGlmIChp
UHJlU2Nyb2xsaW5nRXZlbnRzWzJdLmlQb3NpdGlvbi5pWCA+IGlQcmVTY3JvbGxpbmdFdmVudHNb
MF0uaVBvc2l0aW9uLmlYICsgaGFsZlNpemUpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAg
ICAgICAgICAgZGVsdGFYID0gaVByZVNjcm9sbGluZ0V2ZW50c1syXS5pUG9zaXRpb24uaVggLSBp
UHJlU2Nyb2xsaW5nRXZlbnRzWzBdLmlQb3NpdGlvbi5pWCAtIGhhbGZTaXplOw0KKyAgICAgICAg
ICAgICAgICB9DQorDQorICAgICAgICAgICAgaWYgKGlQcmVTY3JvbGxpbmdFdmVudHNbMl0uaVBv
c2l0aW9uLmlZIDwgaVByZVNjcm9sbGluZ0V2ZW50c1swXS5pUG9zaXRpb24uaVkgLSBoYWxmU2l6
ZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBkZWx0YVkgPSBpUHJlU2Ny
b2xsaW5nRXZlbnRzWzBdLmlQb3NpdGlvbi5pWSAtIGhhbGZTaXplIC0gaVByZVNjcm9sbGluZ0V2
ZW50c1syXS5pUG9zaXRpb24uaVk7DQorICAgICAgICAgICAgICAgIGRpclkgPSAtMTsNCisgICAg
ICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UgaWYgKGlQcmVTY3JvbGxpbmdFdmVudHNb
Ml0uaVBvc2l0aW9uLmlZID4gaVByZVNjcm9sbGluZ0V2ZW50c1swXS5pUG9zaXRpb24uaVkgKyBo
YWxmU2l6ZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBkZWx0YVkgPSBp
UHJlU2Nyb2xsaW5nRXZlbnRzWzJdLmlQb3NpdGlvbi5pWSAtIGlQcmVTY3JvbGxpbmdFdmVudHNb
MF0uaVBvc2l0aW9uLmlZIC0gaGFsZlNpemU7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAg
ICAgICBicmVhazsNCisgICAgICAgICAgICB9DQorICAgIH0NCisNCisgICAgaWYgKGRlbHRhWCkN
CisgICAgICAgIHsNCisgICAgICAgIE1hdGg6OlBvdyhyLCBkZWx0YVgsIHBvd2VyKTsNCisgICAg
ICAgIGkgPSByOw0KKyAgICAgICAgZGVsdGFYID0gaSAqIGRpclggKiBLU2Nyb2xsSnVtcDsNCisg
ICAgICAgIH0NCisgICAgaWYgKGRlbHRhWSkNCisgICAgICAgIHsNCisgICAgICAgIE1hdGg6OlBv
dyhyLCBkZWx0YVksIHBvd2VyKTsNCisgICAgICAgIGkgPSByOw0KKyAgICAgICAgZGVsdGFZID0g
aSAqIGRpclkgKiBLU2Nyb2xsSnVtcDsNCisgICAgICAgIH0NCisNCisgICAgaWYgKGRlbHRhWCB8
fCBkZWx0YVkpDQorICAgICAgICB7DQorICAgICAgICBpV2ViS2l0Vmlldy0+TWFpbkZyYW1lKCku
U2Nyb2xsVG8oaVdlYktpdFZpZXctPk1haW5GcmFtZSgpLkNvbnRlbnRQb3NpdGlvbigpICsgVFBv
aW50KGRlbHRhWCwgZGVsdGFZKSk7DQorICAgICAgICB9DQorICAgIGlTY3JvbGxpbmdJbmRpY2F0
b3JEcmF3ZXItPlVwZGF0ZUJpdG1hcFBvc2l0aW9uTChpUHJlU2Nyb2xsaW5nRXZlbnRzWzJdLmlQ
b3NpdGlvbik7DQorICAgIH0NCisNCit2b2lkIENQb2ludGVyRXZlbnRIYW5kbGVyOjpVcGRhdGVD
dXJzb3IoVFBvaW50IGFQb2ludCkNCisgICAgew0KKyAgICBpZiAoaVdlYktpdFZpZXctPkN1cnNv
cigpKQ0KKyAgICAgICAgew0KKyAgICAgICAgaVdlYktpdFZpZXctPkN1cnNvcigpLT5SZXNldFRy
YW5zcGFyZW5jeSgpOw0KKyAgICAgICAgaVdlYktpdFZpZXctPkN1cnNvcigpLT5DdXJzb3JVcGRh
dGUoIWlDb250ZW50SXNTY3JvbGxpbmcpOw0KKyAgICAgICAgaVdlYktpdFZpZXctPkN1cnNvcigp
LT5TZXRQb3NpdGlvbihhUG9pbnQpOw0KKyAgICAgICAgfQ0KICAgICB9DQogDQogDQpJbmRleDog
V2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXIuY3BwDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TY3JvbGxpbmdJbmRpY2F0b3JEcmF3
ZXIuY3BwCShyZXZpc2lvbiAwKQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU2Nyb2xsaW5n
SW5kaWNhdG9yRHJhd2VyLmNwcAkocmV2aXNpb24gMCkNCkBAIC0wLDAgKzEsNTY1IEBADQorLyoN
CisqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyogIE5hbWUgICAgICAgIDogU2Nyb2xsaW5nSW5k
aWNhdG9yRHJhd2VyLmNwcA0KKyogIFBhcnQgb2YgICAgIDogV2ViS2l0IC8gQnJvd3NlclZpZXcN
CisqICBEZXNjcmlwdGlvbiA6DQorKiAgVmVyc2lvbiAgICAgOiAzLjINCisqDQorKiAgICBDb3B5
cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQorKiAgICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLg0KKyoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0K
KyoNCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisqICAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0K
KyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbg0KKyogICAgICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCisqICAgICAgICBkaXN0cmlidXRpb24uDQor
KiAgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgTm9raWEgQ29ycG9yYXRpb24gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMNCisqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCisqICAgICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQorKg0KKyog
ICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCisq
ICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQorKg0KKyogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVu
dGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCisqID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KKyovDQorDQorLy8gSU5DTFVERSBGSUxFUw0KKyNpbmNsdWRlIDxha251dGlscy5oPg0KKyNp
bmNsdWRlIDxndWxpY29uLmg+DQorI2luY2x1ZGUgIlNjcm9sbGluZ0luZGljYXRvckRyYXdlci5o
Ig0KKyNpbmNsdWRlICJXZWJLaXRWaWV3LmgiDQorI2luY2x1ZGUgIldlYktpdENvbnRyb2wuaCIN
CisNCisvLyBjb25zdGFudHMNCisNCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBM
T0NBTCBGVU5DVElPTlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK2NvbnN0IFRJ
bnQgU2NyZWVuSW5kaWNhdG9yUmF0aW9BY2NlbGVyYXRlZCA9IDEwOw0KK2NvbnN0IFRJbnQgU2Ny
ZWVuSW5kaWNhdG9yUmF0aW9FZGdlID0gNDsNCitjb25zdCBUSW50IEluZGljYXRvckRvdERpYW1l
dGVyID0gNTsNCitjb25zdCBUSW50IEluZGljYXRvckNpcmNsZVdpZHRoID0gNDsNCitjb25zdCBU
SW50IEluZGljYXRvclRyaWFuZ2xlTWFyZ2luID0gMjsNCitjb25zdCBUSW50IFRyYW5zcGFyZW5j
eUxldmVsRWRnZSA9IDB4Y2Y7DQorY29uc3QgVEludCBUcmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJh
dGVkID0gMHg3ZjsNCitjb25zdCBUSW50IEJhc2VDb2xvckVkZ2UgPSAwOw0KK2NvbnN0IFRJbnQg
QmFzZUNvbG9yQWNjZWxlcmF0ZWQgPSA2NDsNCisNCisvLyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09IE1FTUJFUiBGVU5DVElPTlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
Kw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1Njcm9sbGluZ0luZGljYXRvckRyYXdl
cjo6TmV3TA0KKy8vIFRoZSB0d28tcGhhc2UgU3ltYmlhbiBjb25zdHJ1Y3Rvcg0KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQorLy8NCitDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyKiBDU2Nyb2xs
aW5nSW5kaWNhdG9yRHJhd2VyOjpOZXdMKENXZWJLaXRWaWV3JiBhV2ViS2l0VmlldywgVFNjcm9s
bGluZ1R5cGUgYVNjcm9sbGluZ1R5cGUpDQorICAgIHsNCisgICAgQ1Njcm9sbGluZ0luZGljYXRv
ckRyYXdlciogc2VsZiA9IE5VTEw7DQorICAgIHN3aXRjaCAoYVNjcm9sbGluZ1R5cGUpDQorICAg
ICAgICB7DQorICAgICAgICBjYXNlIEVTY3JvbGxpbmdUeXBlRWRnZToNCisgICAgICAgICAgICBz
ZWxmID0gbmV3IChFTGVhdmUpIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJFZGdlKCBhV2ViS2l0
Vmlldyk7DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEVTY3JvbGxpbmdUeXBl
QWNjZWxlcmF0ZWQ6DQorICAgICAgICAgICAgc2VsZiA9IG5ldyAoRUxlYXZlKSBDU2Nyb2xsaW5n
SW5kaWNhdG9yRHJhd2VyQWNjZWxlcmF0ZWQoIGFXZWJLaXRWaWV3KTsNCisgICAgICAgICAgICBi
cmVhazsNCisgICAgICAgIGRlZmF1bHQ6DQorICAgICAgICAgICAgYnJlYWs7ICANCisgICAgICAg
IH0NCisgICAgQ2xlYW51cFN0YWNrOjpQdXNoTChzZWxmKTsNCisgICAgc2VsZi0+Q29uc3RydWN0
TCgpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlBvcCgpOyAvL3NlbGYNCisgICAgcmV0dXJuIHNlbGY7
DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTY3JvbGxpbmdJbmRp
Y2F0b3JEcmF3ZXI6OkNTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXINCisvLyBDKysgZGVmYXVsdCBj
b25zdHJ1Y3RvciBjYW4gTk9UIGNvbnRhaW4gYW55IGNvZGUsIHRoYXQNCisvLyBtaWdodCBsZWF2
ZS4NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQorQ1Njcm9sbGluZ0luZGljYXRvckRy
YXdlcjo6Q1Njcm9sbGluZ0luZGljYXRvckRyYXdlcihDV2ViS2l0VmlldyYgYVdlYktpdFZpZXcp
DQorICAgIDogaVdlYktpdFZpZXcoIGFXZWJLaXRWaWV3ICkNCisgICAgew0KKyAgICB9DQorDQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBEZXN0cnVjdG9yDQorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCitDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyOjp+Q1Njcm9sbGluZ0luZGljYXRv
ckRyYXdlcigpDQorICAgIHsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8gQ1Njcm9sbGluZ0luZGljYXRvckRyYXdlcjo6Q29uc3RydWN0U3ByaXRlDQorLy8gQ3JlYXRl
IHNwcml0ZSBvYmplY3QNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDU2Ny
b2xsaW5nSW5kaWNhdG9yRHJhd2VyOjpDb25zdHJ1Y3RTcHJpdGUoUldzU3ByaXRlJiBhU3ByaXRl
LCBDRmJzQml0bWFwKiBhU3ByaXRlQml0bWFwLCBDRmJzQml0bWFwKiBhU3ByaXRlTWFza0JpdG1h
cCwgVFBvaW50JiBhUG9zaXRpb24pDQorICAgIHsgICAgICAgIA0KKyAgICBhU3ByaXRlID0gUldz
U3ByaXRlKGlXZWJLaXRWaWV3LkNvbnRyb2xFbnYoKS0+V3NTZXNzaW9uKCkpOw0KKyAgICBSV2lu
ZG93VHJlZU5vZGUgKndpbmRvdyA9ICAoUkRyYXdhYmxlV2luZG93KiApaVdlYktpdFZpZXcuV2Vi
S2l0Q29udHJvbCgpLkJyQ3RsKCkuQ0NvZUNvbnRyb2xQYXJlbnQoKS0+RHJhd2FibGVXaW5kb3co
KTsNCisgICAgYVNwcml0ZS5Db25zdHJ1Y3QoKndpbmRvdywgYVBvc2l0aW9uLCBFU3ByaXRlTm9D
aGlsZENsaXApOw0KKyAgICBUU3ByaXRlTWVtYmVyIHNwcml0ZU1lbTsNCisgICAgc3ByaXRlTWVt
LmlCaXRtYXAgPSBhU3ByaXRlQml0bWFwOw0KKyAgICBzcHJpdGVNZW0uaU1hc2tCaXRtYXAgPSBh
U3ByaXRlTWFza0JpdG1hcDsNCisgICAgc3ByaXRlTWVtLmlJbnZlcnRNYXNrID0gRVRydWU7DQor
ICAgIGFTcHJpdGUuQXBwZW5kTWVtYmVyKHNwcml0ZU1lbSk7DQorICAgIGFTcHJpdGUuQWN0aXZh
dGUoKTsNCisgICAgfQ0KKw0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTUVNQkVS
IEZVTkNUSU9OUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCisvLyBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyRWRnZTo6Q1Njcm9s
bGluZ0luZGljYXRvckRyYXdlckVkZ2UNCisvLyBDKysgZGVmYXVsdCBjb25zdHJ1Y3RvciBjYW4g
Tk9UIGNvbnRhaW4gYW55IGNvZGUsIHRoYXQNCisvLyBtaWdodCBsZWF2ZS4NCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KKy8vDQorQ1Njcm9sbGluZ0luZGljYXRvckRyYXdlckVkZ2U6OkNTY3Jv
bGxpbmdJbmRpY2F0b3JEcmF3ZXJFZGdlKENXZWJLaXRWaWV3JiBhV2ViS2l0VmlldykgOiBDU2Ny
b2xsaW5nSW5kaWNhdG9yRHJhd2VyKGFXZWJLaXRWaWV3KQ0KKyAgICB7DQorICAgIFRSZWN0IHJl
Y3QgPSBpV2ViS2l0Vmlldy5SZWN0KCk7DQorICAgIFRJbnQgc2l6ZSA9IHJlY3QuV2lkdGgoKSA+
IHJlY3QuSGVpZ2h0KCkgPyByZWN0LldpZHRoKCkgLyBTY3JlZW5JbmRpY2F0b3JSYXRpb0VkZ2Ug
OiByZWN0LkhlaWdodCgpIC8gU2NyZWVuSW5kaWNhdG9yUmF0aW9FZGdlIDsNCisgICAgaWYgKCEo
c2l6ZSAmIDEpKSBzaXplLS07IC8vIG1ha2VzIHRoZSBjaXJjbGUgbG9vayBiZXR0ZXIuLi4NCisg
ICAgaVNpemUgPSBzaXplOw0KKyAgICBpQ2xpcHBpbmdSZWN0WC5TZXRSZWN0KDAsIDAsIDAsIDAp
Ow0KKyAgICBpQ2xpcHBpbmdSZWN0WS5TZXRSZWN0KDAsIDAsIDAsIDApOw0KKyAgICBpUG9zaXRp
b24gPSBUUG9pbnQoLWlTaXplLCAtaVNpemUpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisvLyBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyRWRnZTo6Q29uc3RydWN0TA0K
Ky8vIFRoZSBjb25zdHJ1Y3RvciB0aGF0IGNhbiBjb250YWluIGNvZGUgdGhhdCBtaWdodCBsZWF2
ZS4NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDU2Nyb2xsaW5nSW5kaWNh
dG9yRHJhd2VyRWRnZTo6Q29uc3RydWN0TCgpDQorICAgIHsNCisgICAgQ3JlYXRlQml0bWFwQW5k
Q29udGV4dEwoKTsNCisgICAgQ29uc3RydWN0U3ByaXRlKGlTcHJpdGUsIGlTcHJpdGVCaXRtYXAs
IGlTcHJpdGVNYXNrQml0bWFwLCBpUG9zaXRpb24pOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCisvLyBEZXN0cnVjdG9yDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitD
U2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyRWRnZTo6fkNTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJF
ZGdlKCkNCisgICAgew0KKyAgICBpU3ByaXRlLkNsb3NlKCk7DQorICAgIGRlbGV0ZSBpU3ByaXRl
TWFza0JpdG1hcERldmljZTsNCisgICAgZGVsZXRlIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dDsN
CisgICAgZGVsZXRlIGlTcHJpdGVNYXNrQml0bWFwOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCisvLyBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyRWRnZTo6VXBkYXRlQml0
bWFwUG9zaXRpb25MDQorLy8gVXBkYXRlIHRoZSBpbmRpY2F0b3IncyBwb3NpdGlvbg0KKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJF
ZGdlOjpVcGRhdGVCaXRtYXBQb3NpdGlvbkwoVFBvaW50JiBhUG9pbnQpDQorICAgIHsNCisgICAg
Ly8gYVBvaW50IGlzIHRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZSwgd2hpbGUgaVBvc2l0aW9uIGlz
IHRoZSB0b3AgbGVmdCBvZiB0aGUgcmVjdCBib3VuZGluZyB0aGUgY2lyY2xlDQorICAgIFRJbnQg
bWFyZ2luID0gaVNpemUgLyAyOw0KKyAgICBUUmVjdCByZWN0ID0gaVdlYktpdFZpZXcuUmVjdCgp
Ow0KKyAgICBUSW50IHggPSBhUG9pbnQuaVggLSBtYXJnaW47DQorICAgIFRJbnQgeSA9IGFQb2lu
dC5pWSAtIG1hcmdpbjsNCisgICAgeCA9ICh4IDwgMCAtIG1hcmdpbikgPyAwIC0gbWFyZ2luIDog
KHggPiByZWN0LldpZHRoKCkgLSBtYXJnaW4pID8gcmVjdC5XaWR0aCgpIC0gbWFyZ2luIDogeDsN
CisgICAgeSA9ICh5IDwgMCAtIG1hcmdpbikgPyAwIC0gbWFyZ2luIDogKHkgPiByZWN0LkhlaWdo
dCgpIC0gbWFyZ2luKSA/IHJlY3QuSGVpZ2h0KCkgLSBtYXJnaW4gOiB5Ow0KKyAgICBpUG9zaXRp
b24gPSBUUG9pbnQoeCwgeSk7DQorICAgIFRSZWN0IGNsaXBwaW5nUmVjdFg7DQorICAgIFRSZWN0
IGNsaXBwaW5nUmVjdFk7DQorICAgIGlmICh4IDwgMCkNCisgICAgICAgIHsNCisgICAgICAgIGNs
aXBwaW5nUmVjdFguU2V0UmVjdCgwLCAwLCAwIC0geCwgaVNpemUpOw0KKyAgICAgICAgfQ0KKyAg
ICBlbHNlIGlmICh4ID4gcmVjdC5XaWR0aCgpIC0gaVNpemUpDQorICAgICAgICB7DQorICAgICAg
ICBjbGlwcGluZ1JlY3RYLlNldFJlY3QocmVjdC5XaWR0aCgpIC0geCwgMCwgaVNpemUsIGlTaXpl
KTsNCisgICAgICAgIH0NCisNCisgICAgaWYgKHkgPCAwKQ0KKyAgICAgICAgew0KKyAgICAgICAg
Y2xpcHBpbmdSZWN0WS5TZXRSZWN0KDAsIDAsIGlTaXplLCAwIC0geSk7DQorICAgICAgICB9DQor
ICAgIGVsc2UgaWYgKHkgPiByZWN0LkhlaWdodCgpIC0gaVNpemUpDQorICAgICAgICB7DQorICAg
ICAgICBjbGlwcGluZ1JlY3RZLlNldFJlY3QoMCwgcmVjdC5IZWlnaHQoKSAtIHksIGlTaXplLCBp
U2l6ZSk7DQorICAgICAgICB9DQorICAgIGlmIChjbGlwcGluZ1JlY3RZICE9IGlDbGlwcGluZ1Jl
Y3RZIHx8IGNsaXBwaW5nUmVjdFggIT0gaUNsaXBwaW5nUmVjdFgpDQorICAgICAgICB7DQorICAg
ICAgICBpQ2xpcHBpbmdSZWN0WCA9IGNsaXBwaW5nUmVjdFg7DQorICAgICAgICBpQ2xpcHBpbmdS
ZWN0WSA9IGNsaXBwaW5nUmVjdFk7DQorICAgICAgICBVcGRhdGVNYXNrTCgpOw0KKyAgICAgICAg
fQ0KKyAgICBpU3ByaXRlLlNldFBvc2l0aW9uKGlQb3NpdGlvbik7DQorICAgIH0NCisNCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJFZGdlOjpD
cmVhdGVCaXRtYXBBbmRDb250ZXh0TA0KKy8vIENyZWF0ZSBiaXRtYXAgYW5kIGJpdG1hcCBjb250
ZXh0DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ1Njcm9sbGluZ0luZGlj
YXRvckRyYXdlckVkZ2U6OkNyZWF0ZUJpdG1hcEFuZENvbnRleHRMKCkNCisgICAgew0KKyAgICBk
ZWxldGUgaVNwcml0ZUJpdG1hcERldmljZTsNCisgICAgaVNwcml0ZUJpdG1hcERldmljZSA9IE5V
TEw7DQorICAgIGRlbGV0ZSBpU3ByaXRlQml0bWFwQ29udGV4dDsNCisgICAgaVNwcml0ZUJpdG1h
cENvbnRleHQgPSBOVUxMOw0KKyAgICBkZWxldGUgaVNwcml0ZUJpdG1hcDsNCisgICAgaVNwcml0
ZUJpdG1hcCA9IE5VTEw7DQorICAgIC8vbWFzaw0KKyAgICBkZWxldGUgaVNwcml0ZU1hc2tCaXRt
YXBEZXZpY2U7DQorICAgIGlTcHJpdGVNYXNrQml0bWFwRGV2aWNlID0gTlVMTDsNCisgICAgZGVs
ZXRlIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dDsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250
ZXh0ID0gTlVMTDsNCisgICAgZGVsZXRlIGlTcHJpdGVNYXNrQml0bWFwOw0KKyAgICBpU3ByaXRl
TWFza0JpdG1hcCA9IE5VTEw7DQorDQorICAgIGlTcHJpdGVCaXRtYXAgPSBuZXcgKEVMZWF2ZSkg
Q0Zic0JpdG1hcDsNCisgICAgVXNlcjo6TGVhdmVJZkVycm9yKCBpU3ByaXRlQml0bWFwLT5DcmVh
dGUoIFRTaXplKGlTaXplLCBpU2l6ZSksIEVDb2xvcjE2ICkgKTsNCisgICAgaVNwcml0ZUJpdG1h
cERldmljZSA9IENGYnNCaXRtYXBEZXZpY2U6Ok5ld0woIGlTcHJpdGVCaXRtYXAgKTsNCisgICAg
VXNlcjo6TGVhdmVJZkVycm9yKCBpU3ByaXRlQml0bWFwRGV2aWNlLT5DcmVhdGVDb250ZXh0KCBp
U3ByaXRlQml0bWFwQ29udGV4dCApICk7DQorICAgIGlTcHJpdGVNYXNrQml0bWFwID0gbmV3IChF
TGVhdmUpIENGYnNCaXRtYXA7DQorICAgIFVzZXI6OkxlYXZlSWZFcnJvciggaVNwcml0ZU1hc2tC
aXRtYXAtPkNyZWF0ZSggVFNpemUoaVNpemUsIGlTaXplKSwgRUNvbG9yMjU2ICkgKTsNCisgICAg
aVNwcml0ZU1hc2tCaXRtYXBEZXZpY2UgPSBDRmJzQml0bWFwRGV2aWNlOjpOZXdMKCBpU3ByaXRl
TWFza0JpdG1hcCApOw0KKyAgICBVc2VyOjpMZWF2ZUlmRXJyb3IoIGlTcHJpdGVNYXNrQml0bWFw
RGV2aWNlLT5DcmVhdGVDb250ZXh0KCBpU3ByaXRlTWFza0JpdG1hcENvbnRleHQgKSApOw0KKyAg
ICBUUmVjdCByKCBUUG9pbnQoIDAsIDAgKSwgaVNwcml0ZU1hc2tCaXRtYXAtPlNpemVJblBpeGVs
cygpKTsNCisgICAgLy8gRHJhdyBibGFjayBzcXVhcmUgZm9yIHRoZSBiaXRtYXANCisgICAgaVNw
cml0ZUJpdG1hcENvbnRleHQtPlNldEJydXNoU3R5bGUoIENHcmFwaGljc0NvbnRleHQ6OkVTb2xp
ZEJydXNoICk7DQorICAgIGlTcHJpdGVCaXRtYXBDb250ZXh0LT5TZXRQZW5TdHlsZSggQ0dyYXBo
aWNzQ29udGV4dDo6RVNvbGlkUGVuICk7DQorICAgIGlTcHJpdGVCaXRtYXBDb250ZXh0LT5TZXRC
cnVzaENvbG9yKCBUUmdiKCBCYXNlQ29sb3JFZGdlLCBCYXNlQ29sb3JFZGdlLCBCYXNlQ29sb3JF
ZGdlKSApOw0KKyAgICBpU3ByaXRlQml0bWFwQ29udGV4dC0+U2V0UGVuQ29sb3IoIFRSZ2IoIEJh
c2VDb2xvckVkZ2UsIEJhc2VDb2xvckVkZ2UsIEJhc2VDb2xvckVkZ2UpICk7DQorICAgIGlTcHJp
dGVCaXRtYXBDb250ZXh0LT5EcmF3UmVjdChyKTsNCisgICAgLy8gRHJhdyBpbmRpY2F0b3IncyBt
YXNrDQorICAgIFVwZGF0ZU1hc2tMKCk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KKy8vIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJFZGdlOjpVcGRhdGVNYXNrTA0KKy8v
IFVwZGF0ZSBtYXNrDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ1Njcm9s
bGluZ0luZGljYXRvckRyYXdlckVkZ2U6OlVwZGF0ZU1hc2tMKCkNCisgICAgew0KKyAgICAvLyBk
cmF3IHRoZSBtYXNrDQorICAgIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dC0+U2V0QnJ1c2hTdHls
ZSggQ0dyYXBoaWNzQ29udGV4dDo6RVNvbGlkQnJ1c2ggKTsNCisgICAgaVNwcml0ZU1hc2tCaXRt
YXBDb250ZXh0LT5TZXRQZW5TdHlsZSggQ0dyYXBoaWNzQ29udGV4dDo6RVNvbGlkUGVuICk7DQor
ICAgIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dC0+U2V0UGVuQ29sb3IoIFRSZ2IoIDAsIDAsIDAp
ICk7DQorICAgIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dC0+U2V0UGVuU2l6ZShUU2l6ZShpU2l6
ZSwgaVNpemUpKTsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0LT5QbG90KFRQb2ludChp
U2l6ZSAvIDIsIGlTaXplIC8gMikpOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHQtPlNl
dFBlbkNvbG9yKCBUUmdiKCBUcmFuc3BhcmVuY3lMZXZlbEVkZ2UsIFRyYW5zcGFyZW5jeUxldmVs
RWRnZSwgVHJhbnNwYXJlbmN5TGV2ZWxFZGdlKSApOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENv
bnRleHQtPlNldFBlblNpemUoVFNpemUoaVNpemUgLSAyICogSW5kaWNhdG9yQ2lyY2xlV2lkdGgs
IGlTaXplIC0gMiAqIEluZGljYXRvckNpcmNsZVdpZHRoKSk7DQorICAgIGlTcHJpdGVNYXNrQml0
bWFwQ29udGV4dC0+UGxvdChUUG9pbnQoaVNpemUgLyAyLCBpU2l6ZSAvIDIpKTsNCisgICAgaVNw
cml0ZU1hc2tCaXRtYXBDb250ZXh0LT5TZXRQZW5Db2xvciggVFJnYiggMCwgMCwgMCkgKTsNCisg
ICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0LT5TZXRQZW5TaXplKFRTaXplKEluZGljYXRvckRv
dERpYW1ldGVyLCBJbmRpY2F0b3JEb3REaWFtZXRlcikpOw0KKyAgICBpU3ByaXRlTWFza0JpdG1h
cENvbnRleHQtPlBsb3QoVFBvaW50KGlTaXplIC8gMiwgaVNpemUgLyAyKSk7DQorICAgIC8vIGNs
aXAgdGhlIG1hc2sNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0LT5TZXRQZW5Db2xvcigg
VFJnYiggMHhmZiwgMHhmZiwgMHhmZikgKTsNCisgICAgaWYgKCFpQ2xpcHBpbmdSZWN0WC5Jc0Vt
cHR5KCkpDQorICAgICAgICB7DQorICAgICAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHQtPkRy
YXdSZWN0KGlDbGlwcGluZ1JlY3RYKTsNCisgICAgICAgIH0NCisgICAgaWYgKCFpQ2xpcHBpbmdS
ZWN0WS5Jc0VtcHR5KCkpDQorICAgICAgICB7DQorICAgICAgICBpU3ByaXRlTWFza0JpdG1hcENv
bnRleHQtPkRyYXdSZWN0KGlDbGlwcGluZ1JlY3RZKTsNCisgICAgICAgIH0NCisgICAgfQ0KKw0K
Kw0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTUVNQkVSIEZVTkNUSU9OUyA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
CisvLyBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyQWNjZWxlcmF0ZWQ6OkNTY3JvbGxpbmdJbmRp
Y2F0b3JEcmF3ZXJBY2NlbGVyYXRlZA0KKy8vIEMrKyBkZWZhdWx0IGNvbnN0cnVjdG9yIGNhbiBO
T1QgY29udGFpbiBhbnkgY29kZSwgdGhhdA0KKy8vIG1pZ2h0IGxlYXZlLg0KKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQorLy8NCitDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyQWNjZWxlcmF0ZWQ6
OkNTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZChDV2ViS2l0VmlldyYgYVdlYktp
dFZpZXcpIDogQ1Njcm9sbGluZ0luZGljYXRvckRyYXdlcihhV2ViS2l0VmlldykNCisgICAgew0K
KyAgICBUUmVjdCByZWN0ID0gaVdlYktpdFZpZXcuUmVjdCgpOw0KKyAgICBUSW50IHNpemUgPSBy
ZWN0LldpZHRoKCkgPiByZWN0LkhlaWdodCgpID8gcmVjdC5XaWR0aCgpIC8gU2NyZWVuSW5kaWNh
dG9yUmF0aW9BY2NlbGVyYXRlZCA6IHJlY3QuSGVpZ2h0KCkgLyBTY3JlZW5JbmRpY2F0b3JSYXRp
b0FjY2VsZXJhdGVkIDsNCisgICAgaWYgKCEoc2l6ZSAmIDEpKSBzaXplLS07IC8vIG1ha2VzIHRo
ZSBjaXJjbGUgbG9vayBiZXR0ZXIuLi4NCisgICAgaVNpemUgPSBzaXplOw0KKyAgICBpQ2xpcHBp
bmdSZWN0WC5TZXRSZWN0KDAsIDAsIDAsIDApOw0KKyAgICBpQ2xpcHBpbmdSZWN0WS5TZXRSZWN0
KDAsIDAsIDAsIDApOw0KKw0KKyAgICBpQ2xpcHBpbmdSZWN0WEV4LlNldFJlY3QoMCwgMCwgMCwg
MCk7DQorICAgIGlDbGlwcGluZ1JlY3RZRXguU2V0UmVjdCgwLCAwLCAwLCAwKTsNCisgICAgLy8g
TW92ZSBTcHJpdGUgb2ZmIHRoZSBzY3JlZW4gdG8gcHJldmVudCB0aGUgbWFya2VycyBmcm9tIHNo
b3dpbmcgaW4gKDAsMCkgb24gc3RhcnR1cA0KKyAgICBpUG9zaXRpb24gPSBUUG9pbnQoLWlTaXpl
LCAtaVNpemUpOw0KKyAgICBpUG9zaXRpb25FeCA9IFRQb2ludCgtaVNpemUsIC1pU2l6ZSk7DQor
ICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTY3JvbGxpbmdJbmRpY2F0
b3JEcmF3ZXJBY2NlbGVyYXRlZDo6Q29uc3RydWN0TA0KKy8vIFRoZSBjb25zdHJ1Y3RvciB0aGF0
IGNhbiBjb250YWluIGNvZGUgdGhhdCBtaWdodCBsZWF2ZS4NCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KKy8vDQordm9pZCBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyQWNjZWxlcmF0ZWQ6OkNv
bnN0cnVjdEwoKQ0KKyAgICB7DQorICAgIENyZWF0ZUJpdG1hcEFuZENvbnRleHRMKCk7DQorICAg
IENvbnN0cnVjdFNwcml0ZShpU3ByaXRlRXgsIGlTcHJpdGVCaXRtYXBFeCwgaVNwcml0ZU1hc2tC
aXRtYXBFeCwgaVBvc2l0aW9uRXgpOw0KKyAgICBDb25zdHJ1Y3RTcHJpdGUoaVNwcml0ZSwgaVNw
cml0ZUJpdG1hcCwgaVNwcml0ZU1hc2tCaXRtYXAsIGlQb3NpdGlvbik7DQorICAgIH0NCisNCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIERlc3RydWN0b3INCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KK0NTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZDo6fkNTY3JvbGxp
bmdJbmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZCgpDQorICAgIHsNCisgICAgaVNwcml0ZS5DbG9z
ZSgpOw0KKyAgICBkZWxldGUgaVNwcml0ZU1hc2tCaXRtYXBEZXZpY2U7DQorICAgIGRlbGV0ZSBp
U3ByaXRlTWFza0JpdG1hcENvbnRleHQ7DQorICAgIGRlbGV0ZSBpU3ByaXRlTWFza0JpdG1hcDsN
CisgICAgaVNwcml0ZUV4LkNsb3NlKCk7DQorICAgIGRlbGV0ZSBpU3ByaXRlTWFza0JpdG1hcERl
dmljZUV4Ow0KKyAgICBkZWxldGUgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0RXg7DQorICAgIGRl
bGV0ZSBpU3ByaXRlTWFza0JpdG1hcEV4Ow0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLyBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyQWNjZWxlcmF0ZWQ6OlVwZGF0ZUJp
dG1hcFBvc2l0aW9uTA0KKy8vIFVwZGF0ZSB0aGUgaW5kaWNhdG9yJ3MgcG9zaXRpb24NCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2Vy
QWNjZWxlcmF0ZWQ6OlVwZGF0ZUJpdG1hcFBvc2l0aW9uTChUUG9pbnQmIGFQb2ludCkNCisgICAg
ew0KKyAgICBpTmVlZFJlZnJlc2ggPSBDaGVja05lZWRSZWZyZWNoKGFQb2ludCk7DQorICAgIC8v
IGFQb2ludCBpcyB0aGUgY2VudGVyIG9mIHRoZSBjaXJjbGUsIHdoaWxlIGlQb3NpdGlvbiBpcyB0
aGUgdG9wIGxlZnQgb2YgdGhlIHJlY3QgYm91bmRpbmcgdGhlIGNpcmNsZQ0KKyAgICBUSW50IG1h
cmdpbiA9IGlTaXplIC8gMjsNCisgICAgVFJlY3QgcmVjdCA9IGlXZWJLaXRWaWV3LlJlY3QoKTsN
CisgICAgVEludCB4ID0gYVBvaW50LmlYIC0gbWFyZ2luOw0KKyAgICBUSW50IHkgPSBhUG9pbnQu
aVkgLSBtYXJnaW47DQorICAgIHggPSAoeCA8IDAgLSBtYXJnaW4pID8gMCAtIG1hcmdpbiA6ICh4
ID4gcmVjdC5XaWR0aCgpIC0gbWFyZ2luKSA/IHJlY3QuV2lkdGgoKSAtIG1hcmdpbiA6IHg7DQor
ICAgIHkgPSAoeSA8IDAgLSBtYXJnaW4pID8gMCAtIG1hcmdpbiA6ICh5ID4gcmVjdC5IZWlnaHQo
KSAtIG1hcmdpbikgPyByZWN0LkhlaWdodCgpIC0gbWFyZ2luIDogeTsNCisgICAgaVBvc2l0aW9u
ID0gVFBvaW50KHgsIHkpOw0KKyAgICBUUmVjdCBjbGlwcGluZ1JlY3RYOw0KKyAgICBUUmVjdCBj
bGlwcGluZ1JlY3RZOw0KKyAgICBpZiAoeCA8IDApDQorICAgICAgICB7DQorICAgICAgICBjbGlw
cGluZ1JlY3RYLlNldFJlY3QoMCwgMCwgMCAtIHgsIGlTaXplKTsNCisgICAgICAgIH0NCisgICAg
ZWxzZSBpZiAoeCA+IHJlY3QuV2lkdGgoKSAtIGlTaXplKQ0KKyAgICAgICAgew0KKyAgICAgICAg
Y2xpcHBpbmdSZWN0WC5TZXRSZWN0KHJlY3QuV2lkdGgoKSAtIHgsIDAsIGlTaXplLCBpU2l6ZSk7
DQorICAgICAgICB9DQorDQorICAgIGlmICh5IDwgMCkNCisgICAgICAgIHsNCisgICAgICAgIGNs
aXBwaW5nUmVjdFkuU2V0UmVjdCgwLCAwLCBpU2l6ZSwgMCAtIHkpOw0KKyAgICAgICAgfQ0KKyAg
ICBlbHNlIGlmICh5ID4gcmVjdC5IZWlnaHQoKSAtIGlTaXplKQ0KKyAgICAgICAgew0KKyAgICAg
ICAgY2xpcHBpbmdSZWN0WS5TZXRSZWN0KDAsIHJlY3QuSGVpZ2h0KCkgLSB5LCBpU2l6ZSwgaVNp
emUpOw0KKyAgICAgICAgfQ0KKyAgICBpZiAoY2xpcHBpbmdSZWN0WSAhPSBpQ2xpcHBpbmdSZWN0
WSB8fCBjbGlwcGluZ1JlY3RYICE9IGlDbGlwcGluZ1JlY3RYKQ0KKyAgICAgICAgew0KKyAgICAg
ICAgaUNsaXBwaW5nUmVjdFggPSBjbGlwcGluZ1JlY3RYOw0KKyAgICAgICAgaUNsaXBwaW5nUmVj
dFkgPSBjbGlwcGluZ1JlY3RZOw0KKyAgICAgICAgVXBkYXRlTWFza0woKTsNCisgICAgICAgIH0N
CisgICAgaVNwcml0ZS5TZXRQb3NpdGlvbihpUG9zaXRpb24pOw0KKw0KKyAgICBpZiAoIWlTdGF0
aWNCaXRtYXBDcmVhdGVkKQ0KKyAgICAgICAgew0KKyAgICAgICAgaVBvc2l0aW9uRXggPSBUUG9p
bnQoeCwgeSk7DQorICAgICAgICBpZiAoY2xpcHBpbmdSZWN0WSAhPSBpQ2xpcHBpbmdSZWN0WUV4
IHx8IGNsaXBwaW5nUmVjdFggIT0gaUNsaXBwaW5nUmVjdFhFeCkNCisgICAgICAgICAgICB7DQor
ICAgICAgICAgICAgaUNsaXBwaW5nUmVjdFhFeCA9IGNsaXBwaW5nUmVjdFg7DQorICAgICAgICAg
ICAgaUNsaXBwaW5nUmVjdFlFeCA9IGNsaXBwaW5nUmVjdFk7DQorICAgICAgICAgICAgfQ0KKyAg
ICAgICAgVXBkYXRlTWFza0V4TCgpOw0KKyAgICAgICAgfQ0KKyAgICBpZiAoaU5lZWRSZWZyZXNo
KQ0KKyAgICAgICAgew0KKyAgICAgICAgaU5lZWRSZWZyZXNoID0gRUZhbHNlOw0KKyAgICAgICAg
VXBkYXRlTWFza0V4TCgpOw0KKyAgICAgICAgfQ0KKyAgICBpU3ByaXRlRXguVXBkYXRlTWVtYmVy
KDApOw0KKyAgICBpU3ByaXRlRXguU2V0UG9zaXRpb24oaVBvc2l0aW9uRXgpOw0KKyAgICB9DQor
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2Vy
QWNjZWxlcmF0ZWQ6OkNoZWNrTmVlZFJlZnJlY2gNCisvLyBDaGVjayBpZiBuZWVkIHRvIHJlZnJl
c2ggdW5kZXIgdGhlIHNwcml0ZSBvYmplY3RzDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisv
Lw0KK1RCb29sIENTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZDo6Q2hlY2tOZWVk
UmVmcmVjaChUUG9pbnQmIGFQb2ludCkNCisgICAgew0KKyAgICAvLyBBIHJlZnJlc2ggaXMgbmVl
ZGVkIGlmIHRoZSAyIHNwcml0ZSBvYmplY3RzIGFyZSBvdmVybGFwcGluZw0KKyAgICBUU2l6ZSBz
aXplID0gVFNpemUoaVNpemUsIGlTaXplKTsNCisgICAgVFJlY3QgcmVjdChpUG9zaXRpb24sIHNp
emUpOw0KKyAgICBUUmVjdCByZWN0RXgoaVBvc2l0aW9uRXgsIHNpemUpOw0KKyAgICBUUmVjdCBu
ZXdSZWN0KGFQb2ludCwgc2l6ZSk7DQorICAgIHJldHVybiByZWN0LkludGVyc2VjdHMocmVjdEV4
KTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1Njcm9sbGluZ0lu
ZGljYXRvckRyYXdlckFjY2VsZXJhdGVkOjpDcmVhdGVCaXRtYXBBbmRDb250ZXh0TA0KKy8vIENy
ZWF0ZSBiaXRtYXAgYW5kIGJpdG1hcCBjb250ZXh0DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
CisvLw0KK3ZvaWQgQ1Njcm9sbGluZ0luZGljYXRvckRyYXdlckFjY2VsZXJhdGVkOjpDcmVhdGVC
aXRtYXBBbmRDb250ZXh0TCgpDQorICAgIHsNCisgICAgZGVsZXRlIGlTcHJpdGVCaXRtYXBEZXZp
Y2U7DQorICAgIGlTcHJpdGVCaXRtYXBEZXZpY2UgPSBOVUxMOw0KKyAgICBkZWxldGUgaVNwcml0
ZUJpdG1hcENvbnRleHQ7DQorICAgIGlTcHJpdGVCaXRtYXBDb250ZXh0ID0gTlVMTDsNCisgICAg
ZGVsZXRlIGlTcHJpdGVCaXRtYXA7DQorICAgIGlTcHJpdGVCaXRtYXAgPSBOVUxMOw0KKyAgICAv
L21hc2sNCisgICAgZGVsZXRlIGlTcHJpdGVNYXNrQml0bWFwRGV2aWNlOw0KKyAgICBpU3ByaXRl
TWFza0JpdG1hcERldmljZSA9IE5VTEw7DQorICAgIGRlbGV0ZSBpU3ByaXRlTWFza0JpdG1hcENv
bnRleHQ7DQorICAgIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dCA9IE5VTEw7DQorICAgIGRlbGV0
ZSBpU3ByaXRlTWFza0JpdG1hcDsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXAgPSBOVUxMOw0KKw0K
KyAgICBpU3ByaXRlQml0bWFwID0gbmV3IChFTGVhdmUpIENGYnNCaXRtYXA7DQorICAgIFVzZXI6
OkxlYXZlSWZFcnJvciggaVNwcml0ZUJpdG1hcC0+Q3JlYXRlKCBUU2l6ZShpU2l6ZSwgaVNpemUp
LCBFQ29sb3IxNiApICk7DQorICAgIGlTcHJpdGVCaXRtYXBEZXZpY2UgPSBDRmJzQml0bWFwRGV2
aWNlOjpOZXdMKCBpU3ByaXRlQml0bWFwICk7DQorICAgIFVzZXI6OkxlYXZlSWZFcnJvciggaVNw
cml0ZUJpdG1hcERldmljZS0+Q3JlYXRlQ29udGV4dCggaVNwcml0ZUJpdG1hcENvbnRleHQgKSAp
Ow0KKyAgICBpU3ByaXRlTWFza0JpdG1hcCA9IG5ldyAoRUxlYXZlKSBDRmJzQml0bWFwOw0KKyAg
ICBVc2VyOjpMZWF2ZUlmRXJyb3IoIGlTcHJpdGVNYXNrQml0bWFwLT5DcmVhdGUoIFRTaXplKGlT
aXplLCBpU2l6ZSksIEVHcmF5MTYgKSApOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcERldmljZSA9
IENGYnNCaXRtYXBEZXZpY2U6Ok5ld0woIGlTcHJpdGVNYXNrQml0bWFwICk7DQorICAgIFVzZXI6
OkxlYXZlSWZFcnJvciggaVNwcml0ZU1hc2tCaXRtYXBEZXZpY2UtPkNyZWF0ZUNvbnRleHQoIGlT
cHJpdGVNYXNrQml0bWFwQ29udGV4dCApICk7DQorICAgIFRSZWN0IHIoIFRQb2ludCggMCwgMCAp
LCBpU3ByaXRlTWFza0JpdG1hcC0+U2l6ZUluUGl4ZWxzKCkpOw0KKyAgICAvLyBEcmF3IGJsYWNr
IHNxdWFyZSBmb3IgdGhlIGJpdG1hcA0KKyAgICBpU3ByaXRlQml0bWFwQ29udGV4dC0+U2V0QnJ1
c2hTdHlsZSggQ0dyYXBoaWNzQ29udGV4dDo6RVNvbGlkQnJ1c2ggKTsNCisgICAgaVNwcml0ZUJp
dG1hcENvbnRleHQtPlNldFBlblN0eWxlKCBDR3JhcGhpY3NDb250ZXh0OjpFU29saWRQZW4gKTsN
CisgICAgaVNwcml0ZUJpdG1hcENvbnRleHQtPlNldEJydXNoQ29sb3IoIFRSZ2IoIEJhc2VDb2xv
ckFjY2VsZXJhdGVkLCBCYXNlQ29sb3JBY2NlbGVyYXRlZCwgQmFzZUNvbG9yQWNjZWxlcmF0ZWQp
ICk7DQorICAgIGlTcHJpdGVCaXRtYXBDb250ZXh0LT5TZXRQZW5Db2xvciggVFJnYiggQmFzZUNv
bG9yQWNjZWxlcmF0ZWQsIEJhc2VDb2xvckFjY2VsZXJhdGVkLCBCYXNlQ29sb3JBY2NlbGVyYXRl
ZCkgKTsNCisgICAgaVNwcml0ZUJpdG1hcENvbnRleHQtPkRyYXdSZWN0KHIpOw0KKyAgICAvLyBE
cmF3IGluZGljYXRvcidzIG1hc2sNCisgICAgVXBkYXRlTWFza0woKTsNCisNCisgICAgZGVsZXRl
IGlTcHJpdGVCaXRtYXBEZXZpY2VFeDsNCisgICAgaVNwcml0ZUJpdG1hcERldmljZUV4PSBOVUxM
Ow0KKyAgICBkZWxldGUgaVNwcml0ZUJpdG1hcENvbnRleHRFeDsNCisgICAgaVNwcml0ZUJpdG1h
cENvbnRleHRFeCA9IE5VTEw7DQorICAgIGRlbGV0ZSBpU3ByaXRlQml0bWFwRXg7DQorICAgIGlT
cHJpdGVCaXRtYXBFeCA9IE5VTEw7DQorICAgIC8vbWFzaw0KKyAgICBkZWxldGUgaVNwcml0ZU1h
c2tCaXRtYXBEZXZpY2VFeDsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBEZXZpY2VFeCA9IE5VTEw7
DQorICAgIGRlbGV0ZSBpU3ByaXRlTWFza0JpdG1hcENvbnRleHRFeDsNCisgICAgaVNwcml0ZU1h
c2tCaXRtYXBDb250ZXh0RXggPSBOVUxMOw0KKyAgICBkZWxldGUgaVNwcml0ZU1hc2tCaXRtYXBF
eDsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBFeCA9IE5VTEw7DQorDQorICAgIGlTcHJpdGVCaXRt
YXBFeCA9IG5ldyAoRUxlYXZlKSBDRmJzQml0bWFwOw0KKyAgICBVc2VyOjpMZWF2ZUlmRXJyb3Io
IGlTcHJpdGVCaXRtYXBFeC0+Q3JlYXRlKCBUU2l6ZShpU2l6ZSwgaVNpemUpLCBFQ29sb3IxNiAp
ICk7DQorICAgIGlTcHJpdGVCaXRtYXBEZXZpY2VFeCA9IENGYnNCaXRtYXBEZXZpY2U6Ok5ld0wo
IGlTcHJpdGVCaXRtYXBFeCApOw0KKyAgICBVc2VyOjpMZWF2ZUlmRXJyb3IoIGlTcHJpdGVCaXRt
YXBEZXZpY2VFeC0+Q3JlYXRlQ29udGV4dCggaVNwcml0ZUJpdG1hcENvbnRleHRFeCApICk7DQor
ICAgIGlTcHJpdGVNYXNrQml0bWFwRXggPSBuZXcgKEVMZWF2ZSkgQ0Zic0JpdG1hcDsNCisgICAg
VXNlcjo6TGVhdmVJZkVycm9yKCBpU3ByaXRlTWFza0JpdG1hcEV4LT5DcmVhdGUoIFRTaXplKGlT
aXplLCBpU2l6ZSksIEVHcmF5MTYgKSApOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcERldmljZUV4
ID0gQ0Zic0JpdG1hcERldmljZTo6TmV3TCggaVNwcml0ZU1hc2tCaXRtYXBFeCApOw0KKyAgICBV
c2VyOjpMZWF2ZUlmRXJyb3IoIGlTcHJpdGVNYXNrQml0bWFwRGV2aWNlRXgtPkNyZWF0ZUNvbnRl
eHQoIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dEV4ICkgKTsNCisgICAgVFJlY3QgckV4KCBUUG9p
bnQoIDAsIDAgKSwgaVNwcml0ZU1hc2tCaXRtYXBFeC0+U2l6ZUluUGl4ZWxzKCkpOw0KKyAgICAv
LyBEcmF3IGJsYWNrIHNxdWFyZSBmb3IgdGhlIGJpdG1hcA0KKyAgICBpU3ByaXRlQml0bWFwQ29u
dGV4dEV4LT5TZXRCcnVzaFN0eWxlKCBDR3JhcGhpY3NDb250ZXh0OjpFU29saWRCcnVzaCApOw0K
KyAgICBpU3ByaXRlQml0bWFwQ29udGV4dEV4LT5TZXRQZW5TdHlsZSggQ0dyYXBoaWNzQ29udGV4
dDo6RVNvbGlkUGVuICk7DQorICAgIGlTcHJpdGVCaXRtYXBDb250ZXh0RXgtPlNldEJydXNoQ29s
b3IoIFRSZ2IoIEJhc2VDb2xvckFjY2VsZXJhdGVkLCBCYXNlQ29sb3JBY2NlbGVyYXRlZCwgQmFz
ZUNvbG9yQWNjZWxlcmF0ZWQpICk7DQorICAgIGlTcHJpdGVCaXRtYXBDb250ZXh0RXgtPlNldFBl
bkNvbG9yKCBUUmdiKCBCYXNlQ29sb3JBY2NlbGVyYXRlZCwgQmFzZUNvbG9yQWNjZWxlcmF0ZWQs
IEJhc2VDb2xvckFjY2VsZXJhdGVkKSApOw0KKyAgICBpU3ByaXRlQml0bWFwQ29udGV4dEV4LT5E
cmF3UmVjdChyRXgpOw0KKyAgICAvLyBNYXNrIGlzIGRyYXduIGVsc2V3aGVyZQ0KKyAgICB9DQor
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2Vy
QWNjZWxlcmF0ZWQ6OlVwZGF0ZU1hc2tMDQorLy8gVXBkYXRlIG1hc2sNCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyQWNjZWxlcmF0
ZWQ6OlVwZGF0ZU1hc2tMKCkNCisgICAgew0KKyAgICBUSW50IG1pZCA9IGlTaXplIC8gMiArIDE7
DQorICAgIFRQb2ludCBwb2ludHNbOF0gPSB7DQorICAgICAgICBUUG9pbnQobWlkLCBJbmRpY2F0
b3JUcmlhbmdsZU1hcmdpbiksIFRQb2ludChtaWQgKiA2IC8gOCwgbWlkICogNiAvIDgpLA0KKyAg
ICAgICAgVFBvaW50KEluZGljYXRvclRyaWFuZ2xlTWFyZ2luLCBtaWQpLCBUUG9pbnQobWlkICog
NiAvIDgsIG1pZCAqIDEwIC8gOCksDQorICAgICAgICBUUG9pbnQobWlkLCAobWlkIC0gSW5kaWNh
dG9yVHJpYW5nbGVNYXJnaW4pICogMiksIFRQb2ludChtaWQgKiAxMCAvIDgsIG1pZCAqIDEwIC8g
OCksDQorICAgICAgICBUUG9pbnQoKG1pZCAtIEluZGljYXRvclRyaWFuZ2xlTWFyZ2luKSAqIDIs
IG1pZCksIFRQb2ludChtaWQgKiAxMCAvIDgsIG1pZCAqIDYgLyA4KX07DQorICAgIFRSZWN0IHJl
Y3RQb2ludHNSKFRQb2ludChtaWQgKiA1IC8gOCwgbWlkICogNSAvIDgpLCBUUG9pbnQobWlkICog
MTEgLyA4LCBtaWQgKiAxMSAvIDgpKTsNCisgICAgLy8gZHJhdyB0aGUgbWFzaw0KKyAgICBpU3By
aXRlTWFza0JpdG1hcENvbnRleHQtPlNldEJydXNoU3R5bGUoIENHcmFwaGljc0NvbnRleHQ6OkVT
b2xpZEJydXNoICk7DQorICAgIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dC0+U2V0UGVuU3R5bGUo
IENHcmFwaGljc0NvbnRleHQ6OkVTb2xpZFBlbiApOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENv
bnRleHQtPlNldFBlbkNvbG9yKCBUUmdiKCBUcmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJhdGVkLCBU
cmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJhdGVkLCBUcmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJhdGVk
KSApOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHQtPlNldFBlblNpemUoVFNpemUoMSwg
MSkpOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHQtPlNldEJydXNoQ29sb3IoIFRSZ2Io
IFRyYW5zcGFyZW5jeUxldmVsQWNjZWxlcmF0ZWQsIFRyYW5zcGFyZW5jeUxldmVsQWNjZWxlcmF0
ZWQsIFRyYW5zcGFyZW5jeUxldmVsQWNjZWxlcmF0ZWQpICk7DQorICAgIGlTcHJpdGVNYXNrQml0
bWFwQ29udGV4dC0+RHJhd1BvbHlnb24ocG9pbnRzLCA4KTsNCisgICAgaVNwcml0ZU1hc2tCaXRt
YXBDb250ZXh0LT5TZXRQZW5Db2xvciggVFJnYiggMHhmZiwgMHhmZiwgMHhmZikgKTsNCisgICAg
aVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0LT5TZXRQZW5TaXplKFRTaXplKDMsIDMpKTsNCisgICAg
aVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0LT5EcmF3RWxsaXBzZShyZWN0UG9pbnRzUik7DQorICAg
IGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dC0+UGxvdChUUG9pbnQoaVNpemUgLyAyLCBpU2l6ZSAv
IDIpKTsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0LT5TZXRQZW5TaXplKFRTaXplKDEs
IDEpKTsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0LT5TZXRCcnVzaENvbG9yKCBUUmdi
KCAweGZmLCAweGZmLCAweGZmKSApOw0KKyAgICAvLyBjbGlwIHRoZSBtYXNrDQorICAgIGlmICgh
aUNsaXBwaW5nUmVjdFguSXNFbXB0eSgpKQ0KKyAgICAgICAgew0KKyAgICAgICAgaVNwcml0ZU1h
c2tCaXRtYXBDb250ZXh0LT5EcmF3UmVjdChpQ2xpcHBpbmdSZWN0WCk7DQorICAgICAgICB9DQor
ICAgIGlmICghaUNsaXBwaW5nUmVjdFkuSXNFbXB0eSgpKQ0KKyAgICAgICAgew0KKyAgICAgICAg
aVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0LT5EcmF3UmVjdChpQ2xpcHBpbmdSZWN0WSk7DQorICAg
ICAgICB9DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTY3JvbGxp
bmdJbmRpY2F0b3JEcmF3ZXJBY2NlbGVyYXRlZDo6VXBkYXRlTWFza0V4TA0KKy8vIFVwZGF0ZSBt
YXNrDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ1Njcm9sbGluZ0luZGlj
YXRvckRyYXdlckFjY2VsZXJhdGVkOjpVcGRhdGVNYXNrRXhMKCkNCisgICAgew0KKyAgICBpU3Rh
dGljQml0bWFwQ3JlYXRlZCA9IEVUcnVlOw0KKyAgICAvLyBkcmF3IHRoZSBtYXNrDQorICAgIFRJ
bnQgbWlkID0gaVNpemUgLyAyICsgMTsNCisgICAgVFBvaW50IHBvaW50c1s4XSA9IHsNCisgICAg
ICAgIFRQb2ludChtaWQsIEluZGljYXRvclRyaWFuZ2xlTWFyZ2luKSwgVFBvaW50KG1pZCAqIDYg
LyA4LCBtaWQgKiA2IC8gOCksDQorICAgICAgICBUUG9pbnQoSW5kaWNhdG9yVHJpYW5nbGVNYXJn
aW4sIG1pZCksIFRQb2ludChtaWQgKiA2IC8gOCwgbWlkICogMTAgLyA4KSwNCisgICAgICAgIFRQ
b2ludChtaWQsIChtaWQgLSBJbmRpY2F0b3JUcmlhbmdsZU1hcmdpbikgKiAyKSwgVFBvaW50KG1p
ZCAqIDEwIC8gOCwgbWlkICogMTAgLyA4KSwNCisgICAgICAgIFRQb2ludCgobWlkIC0gSW5kaWNh
dG9yVHJpYW5nbGVNYXJnaW4pICogMiwgbWlkKSwgVFBvaW50KG1pZCAqIDEwIC8gOCwgbWlkICog
NiAvIDgpfTsNCisgICAgVFJlY3QgcmVjdFBvaW50c1IoVFBvaW50KG1pZCAqIDUgLyA4LCBtaWQg
KiA1IC8gOCksIFRQb2ludChtaWQgKiAxMSAvIDgsIG1pZCAqIDExIC8gOCkpOw0KKyAgICBpU3By
aXRlTWFza0JpdG1hcENvbnRleHRFeC0+U2V0QnJ1c2hTdHlsZSggQ0dyYXBoaWNzQ29udGV4dDo6
RVNvbGlkQnJ1c2ggKTsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0RXgtPlNldFBlblN0
eWxlKCBDR3JhcGhpY3NDb250ZXh0OjpFU29saWRQZW4gKTsNCisgICAgaVNwcml0ZU1hc2tCaXRt
YXBDb250ZXh0RXgtPlNldFBlbkNvbG9yKCBUUmdiKCBUcmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJh
dGVkLCBUcmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJhdGVkLCBUcmFuc3BhcmVuY3lMZXZlbEFjY2Vs
ZXJhdGVkKSApOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHRFeC0+U2V0UGVuU2l6ZShU
U2l6ZShpU2l6ZSwgaVNpemUpKTsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0RXgtPlBs
b3QoVFBvaW50KG1pZCwgbWlkICkpOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHRFeC0+
U2V0UGVuQ29sb3IoIFRSZ2IoIDB4ZmYsIDB4ZmYsIDB4ZmYpICk7DQorICAgIGlTcHJpdGVNYXNr
Qml0bWFwQ29udGV4dEV4LT5TZXRQZW5TaXplKFRTaXplKGlTaXplIC0gMiAqIEluZGljYXRvckNp
cmNsZVdpZHRoLCBpU2l6ZSAtIDIgKiBJbmRpY2F0b3JDaXJjbGVXaWR0aCkpOw0KKyAgICBpU3By
aXRlTWFza0JpdG1hcENvbnRleHRFeC0+UGxvdChUUG9pbnQobWlkLCBtaWQpKTsNCisgICAgaVNw
cml0ZU1hc2tCaXRtYXBDb250ZXh0RXgtPlNldFBlbkNvbG9yKCBUUmdiKCBUcmFuc3BhcmVuY3lM
ZXZlbEFjY2VsZXJhdGVkLCBUcmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJhdGVkLCBUcmFuc3BhcmVu
Y3lMZXZlbEFjY2VsZXJhdGVkKSApOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHRFeC0+
U2V0UGVuU2l6ZShUU2l6ZSgxLCAxKSk7DQorICAgIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dEV4
LT5TZXRCcnVzaENvbG9yKCBUUmdiKCBUcmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJhdGVkLCBUcmFu
c3BhcmVuY3lMZXZlbEFjY2VsZXJhdGVkLCBUcmFuc3BhcmVuY3lMZXZlbEFjY2VsZXJhdGVkKSAp
Ow0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHRFeC0+RHJhd1BvbHlnb24ocG9pbnRzLCA4
KTsNCisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0RXgtPlNldFBlbkNvbG9yKCBUUmdiKCAw
eGZmLCAweGZmLCAweGZmKSApOw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHRFeC0+U2V0
UGVuU2l6ZShUU2l6ZSgzLCAzKSk7DQorICAgIGlTcHJpdGVNYXNrQml0bWFwQ29udGV4dEV4LT5E
cmF3RWxsaXBzZShyZWN0UG9pbnRzUik7DQorLy8gICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0
RXgtPlNldFBlbkNvbG9yKCBUUmdiKCAweGZmLCAweGZmLCAweGZmKSApOw0KKyAgICBpU3ByaXRl
TWFza0JpdG1hcENvbnRleHRFeC0+UGxvdChUUG9pbnQoaVNpemUgLyAyLCBpU2l6ZSAvIDIpKTsN
CisgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0RXgtPlNldFBlblNpemUoVFNpemUoMSwgMSkp
Ow0KKw0KKyAgICBpU3ByaXRlTWFza0JpdG1hcENvbnRleHRFeC0+U2V0QnJ1c2hDb2xvciggVFJn
YiggMHhmZiwgMHhmZiwgMHhmZikgKTsNCisgICAgLy8gY2xpcCB0aGUgbWFzaw0KKyAgICBpZiAo
IWlDbGlwcGluZ1JlY3RYRXguSXNFbXB0eSgpKQ0KKyAgICAgICAgew0KKyAgICAgICAgaVNwcml0
ZU1hc2tCaXRtYXBDb250ZXh0RXgtPkRyYXdSZWN0KGlDbGlwcGluZ1JlY3RYRXgpOw0KKyAgICAg
ICAgfQ0KKyAgICBpZiAoIWlDbGlwcGluZ1JlY3RZRXguSXNFbXB0eSgpKQ0KKyAgICAgICAgew0K
KyAgICAgICAgaVNwcml0ZU1hc2tCaXRtYXBDb250ZXh0RXgtPkRyYXdSZWN0KGlDbGlwcGluZ1Jl
Y3RZRXgpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorLy8gIEVuZCBvZiBGaWxlDQpJbmRleDog
V2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRDdXJzb3IuY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRDdXJzb3IuY3BwCShyZXZpc2lvbiAyMTIwNCkN
CisrKyBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdEN1cnNvci5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBDV2ViS2l0Q3Vyc29yOjpDdXJzb3JVcGRhdGUo
IFRCb29sIA0KICAgICAgICAgDQogICAgIGlJc1Zpc2libGUgPSBhVmlzaWJpbGl0eTsNCiAgICAg
aVNwcml0ZS5TZXRQb3NpdGlvbiggaVBvc2l0aW9uICk7DQotICAgIGlmICggYVZpc2liaWxpdHkg
KQ0KKyAgICBpZiAoIGFWaXNpYmlsaXR5ICYmICFpVmlldy0+Q29udGVudElzU2Nyb2xsaW5nKCkg
KQ0KICAgICAgICAgew0KICAgICAgICAgVFNwcml0ZU1lbWJlciBzcHJpdGVNZW07DQogICAgICAg
ICAvLyBTZXQgYXJyb3craG91cmdsYXNzIGluIGNhc2Ugb2YgbG9hZGluZw0KSW5kZXg6IFdlYktp
dC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0Vmlldy5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
QnJvd3NlclZpZXcvc3JjL1dlYktpdFZpZXcuY3BwCShyZXZpc2lvbiAyMTIwNCkNCisrKyBXZWJL
aXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdFZpZXcuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTgw
NSw2ICsxODA1LDE1IEBAIHZvaWQgQ1dlYktpdFZpZXc6OkhhbmRsZVBvaW50ZXJFdmVudEwoY28N
CiAgICAgfQ0KIA0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENvbnRlbnRJc1Njcm9s
bGluZw0KKy8vIFJldHVybnMgaWYgdGhlIHVzZXIgaXMgY3VycmVudGx5IHVzaW5nIHRoZSBzdHls
dXMgdG8gc2Nyb2xsDQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorVEJvb2wgQ1dlYktpdFZp
ZXc6OkNvbnRlbnRJc1Njcm9sbGluZygpDQorICAgIHsNCisgICAgcmV0dXJuIGlQb2ludGVyRXZl
bnRIYW5kbGVyLT5Db250ZW50SXNTY3JvbGxpbmcoKTsNCisgICAgfQ0KKw0KKy8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KIC8vIE5vZGVVbmRlclBvaW50ZXIoKQ0KIC8vIENoZWNrcyBpZiB0aGVy
ZSBpcyBhbnkgTm9kZSB1bmRlciBwb2ludGVyDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpJ
bmRleDogV2ViS2l0L1BsdWdpbi9pbmMvUGx1Z2luV2luLmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJL
aXQvUGx1Z2luL2luYy9QbHVnaW5XaW4uaAkocmV2aXNpb24gMjEyMDQpDQorKysgV2ViS2l0L1Bs
dWdpbi9pbmMvUGx1Z2luV2luLmgJKHdvcmtpbmcgY29weSkNCkBAIC05OCw3ICs5OCw4IEBAIGVu
dW0gVFBsdWdpbkV2ZW50VHlwZQ0KIGNsYXNzIENQbHVnaW5XaW4gOiAgcHVibGljIENDb2VDb250
cm9sLA0KICAgICAgICAgICAgICAgICAgICAgcHVibGljIE1QbHVnaW5BZGFwdGVyLA0KICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIE1Db2VDb250cm9sT2JzZXJ2ZXIsDQotICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgTUNvZUZvcmVncm91bmRPYnNlcnZlcg0KKyAgICAgICAgICAgICAgICAg
ICAgcHVibGljIE1Db2VGb3JlZ3JvdW5kT2JzZXJ2ZXIsDQorICAgICAgICAgICAgICAgICAgICBw
dWJsaWMgTUNvZUNvbnRyb2xIaXRUZXN0DQogICAgIHsNCiANCiAgICAgcHVibGljOiAgLy8gQ29u
c3RydWN0b3JzIGFuZCBkZXN0cnVjdG9yDQpAQCAtNTA5LDYgKzUxMCw5IEBAIGNsYXNzIENQbHVn
aW5XaW4gOiAgcHVibGljIENDb2VDb250cm9sLA0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAg
ICAqLw0KICAgICAgICAgdm9pZCBGb3JjZVJlZHJhdyhUQm9vbCBhRHJhd05vdyk7DQorDQorICAg
IHB1YmxpYzogLy8gRnVuY3Rpb25zIGZyb20gTUNvZUNvbnRyb2xIaXRUZXN0DQorICAgICAgICBU
Qm9vbCBIaXRSZWdpb25Db250YWlucyhjb25zdCBUUG9pbnQgJmFQb2ludCwgY29uc3QgQ0NvZUNv
bnRyb2wgJmFDb250cm9sKSBjb25zdDsNCiANCiAgICAgcHJvdGVjdGVkOiAvLyBOZXcgZnVuY3Rp
b25zDQogDQpJbmRleDogV2ViS2l0L1BsdWdpbi9zcmMvUGx1Z2luV2luLmNwcA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpbldpbi5jcHAJKHJldmlzaW9uIDIxMjA0KQ0K
KysrIFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpbldpbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0x
MjA4LDYgKzEyMDgsNyBAQCB2b2lkIENQbHVnaW5XaW46OlBsdWdpbkNvbnN0cnVjdGVkTCggQ0Nv
DQogICAgIHsNCiAgICAgaVBsdWdpbkNvbnRyb2wgPSBhQ29udHJvbDsNCiAgICAgaURlbGV0ZWQg
PSBFRmFsc2U7DQorICAgIGFDb250cm9sLT5TZXRIaXRUZXN0KHRoaXMpOw0KICAgICB9DQogDQog
DQpAQCAtMTI4OCw2ICsxMjg5LDIxIEBAIHZvaWQgQ1BsdWdpbldpbjo6Rm9yY2VSZWRyYXcoVEJv
b2wgYURyYXcNCiAgICAgICAgIC8vVFJlY3QgcnQgPSBUUmVjdChUUG9pbnQoMCwwKSxpV2ViS2l0
Q29udHJvbC0+V2ViS2l0VmlldygpLk1haW5GcmFtZSgpLkNvbnRlbnRTaXplKCkpOw0KICAgICAg
ICAgaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXcoKS5NYWluRnJhbWUoKS5JbnZhbGlkYXRlUmVj
dChpUGx1Z2luU2tpbi0+UmVjdCgpLGFEcmF3Tm93KTsNCiAgICAgICAgIH0NCisgICAgfQ0KKw0K
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1BsdWdpbldpbjo6SGl0UmVnaW9uQ29udGFp
bnMNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vICANCitUQm9vbCBDUGx1Z2luV2luOjpI
aXRSZWdpb25Db250YWlucyhjb25zdCBUUG9pbnQgJmFQb2ludCwgY29uc3QgQ0NvZUNvbnRyb2wg
Ji8qYUNvbnRyb2wqLykgY29uc3QNCisgICAgew0KKyAgICBpZiAoaVBsdWdpblNraW4tPldlYktp
dENvbnRyb2woKS0+V2ViS2l0VmlldygpLkZvY3VzZWRFbGVtZW50VHlwZSgpICE9IFRCckN0bERl
ZnM6OkVFbGVtZW50QWN0aXZhdGVkT2JqZWN0Qm94KQ0KKyAgICAgICAgew0KKyAgICAgICAgVFBv
aW50IHBvaW50ID0gaVBsdWdpblNraW4tPlJlY3QoKS5pVGwgKyBhUG9pbnQ7DQorICAgICAgICBp
UGx1Z2luU2tpbi0+RnJhbWUoKS0+V2ViS2l0QnJpZGdlKCkuV2ViQ29yZUJyaWRnZSgpLkFjdGl2
YXRlRXZlbnQocG9pbnQpOw0KKyAgICAgICAgaVBsdWdpblNraW4tPldlYktpdENvbnRyb2woKS0+
V2ViS2l0VmlldygpLldlYktpdENvbnRyb2woKS5PcGVuUGx1Z2luUGxheWVyKCk7DQorICAgICAg
ICB9DQorICAgIHJldHVybiBFVHJ1ZTsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQpJbmRleDogV2ViS2l0L2dyb3VwL0Jyb3dzZXJWaWV3Lm1tcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9ncm91cC9Ccm93c2VyVmlldy5tbXAJKHJldmlzaW9uIDIxMjA0KQ0KKysrIFdlYktp
dC9ncm91cC9Ccm93c2VyVmlldy5tbXAJKHdvcmtpbmcgY29weSkNCkBAIC03NSw3ICs3NSw4IEBA
IFNPVVJDRSAgICAgICAgICBXZWJLaXRUb29sQmFySW50ZXJmYWNlLmMNCiBTT1VSQ0UgICAgICAg
ICAgUGx1Z2luQ29udGVudFBsYXllci5jcHANCiBTT1VSQ0UgICAgICAgICAgU21hcnRMaW5rSGFu
ZGxlci5jcHANCiBTT1VSQ0UgICAgICAgICAgU21hcnRMaW5rTWFwLmNwcA0KLVNPVVJDRQkJCVBv
cHVwRHJhd2VyLmNwcA0KK1NPVVJDRQkJUG9wdXBEcmF3ZXIuY3BwDQorU09VUkNFCQlTY3JvbGxp
bmdJbmRpY2F0b3JEcmF3ZXIuY3BwDQogI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBTT1VS
Q0UgICAgICAgICAgV2lkZ2V0RXh0ZW5zaW9uLmNwcA0KIFNPVVJDRSAgICAgICAgICBXaWRnZXRQ
cmVmZXJlbmNlcy5jcHANCg==
</data>
<flag name="review"
          id="5824"
          type_id="1"
          status="+"
          setter="Sachin.Padma"
    />
          </attachment>
      

    </bug>

</bugzilla>