<?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>196291</bug_id>
          
          <creation_ts>2019-03-27 00:00:39 -0700</creation_ts>
          <short_desc>Add SPI to access the WKNavigation from the navigation action and response</short_desc>
          <delta_ts>2019-04-09 15:21:53 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="David Quesada">david_quesada</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1521630</commentid>
    <comment_count>0</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2019-03-27 00:00:39 -0700</bug_when>
    <thetext>There is WKNavigationAction._mainFrameNavigation to access the navigation from the action. There should be similar SPI that works for subframe navigation actions and for the WKNavigationResponse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521633</commentid>
    <comment_count>1</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2019-03-27 00:02:02 -0700</bug_when>
    <thetext>rdar://problem/49310648</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521635</commentid>
    <comment_count>2</comment_count>
      <attachid>366059</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2019-03-27 00:09:06 -0700</bug_when>
    <thetext>Created attachment 366059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521710</commentid>
    <comment_count>3</comment_count>
      <attachid>366076</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2019-03-27 09:47:10 -0700</bug_when>
    <thetext>Created attachment 366076
Patch v2

Try to fix the GTK and WPE builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521752</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-03-27 11:21:16 -0700</bug_when>
    <thetext>This seems odd to me. WKNavigation is supposed to represent, and is publicly document as such, the navigation of a &quot;webpage&quot;, which maps to main-frame navigations. I&apos;m not sure exposing, even as SPI, navigation objects for subframes makes all that much sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525713</commentid>
    <comment_count>5</comment_count>
      <attachid>366076</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-09 12:30:07 -0700</bug_when>
    <thetext>Comment on attachment 366076
Patch v2

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        Given a WKNavigationAction or a WKNavigationResponse, it should be possible to determine

Sam is right that WKNavigation is supposed to represent a page (aka main frame) navigation so exposing it for subframes seems odd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525728</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-04-09 12:58:38 -0700</bug_when>
    <thetext>I think you could achieve your stated goal by giving WKNavigationAction a property indicating whether it has the download attribute, and giving WKNavigationResponse a pointer to WKNavigationAction. That would avoid introducing a WKNavigation object for things that are not main frame navigations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525777</commentid>
    <comment_count>7</comment_count>
      <attachid>366076</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2019-04-09 15:21:39 -0700</bug_when>
    <thetext>Comment on attachment 366076
Patch v2

After talking about this a bit more, Alex and I came up with another solution.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366059</attachid>
            <date>2019-03-27 00:09:06 -0700</date>
            <delta_ts>2019-03-27 09:47:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>file_196291.txt</filename>
            <type>text/plain</type>
            <size>23538</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IGM5MTcxNTFjZjM2NjUxNWQ2NDQ3YThiN2YyNmMwY2I2ZjhiODJkYTgNCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIFdlZCBNYXIg
MjcgMDA6MDc6MDMgMjAxOSAtMDcwMA0KDQogICAgQWRkIFNQSSB0byBhY2Nlc3MgdGhlIFdLTmF2
aWdhdGlvbiBmcm9tIHRoZSBuYXZpZ2F0aW9uIGFjdGlvbiBhbmQgcmVzcG9uc2UNCiAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjkxDQogICAgcmRhcjovL3By
b2JsZW0vNDkzMTA2NDgNCiAgICANCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCiAg
ICANCiAgICBTb3VyY2UvV2ViS2l0Og0KICAgIA0KICAgIEdpdmVuIGEgV0tOYXZpZ2F0aW9uQWN0
aW9uIG9yIGEgV0tOYXZpZ2F0aW9uUmVzcG9uc2UsIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBk
ZXRlcm1pbmUNCiAgICB0aGUgYXNzb2NpYXRlZCBXS05hdmlnYXRpb24gdHJhY2tpbmcgdGhlIG5h
dmlnYXRpb24uIFRoaXMgbWFrZXMgaXQgZWFzaWVyIGZvciBjbGllbnRzIHRvDQogICAgZGVjaWRl
IHRoZSByZXNwb25zZSBwb2xpY3kgYmFzZWQgb24ga25vd2xlZGdlIGtub3duIGF0IG5hdmlnYXRp
b24tYWN0aW9uIHRpbWUuDQogICAgDQogICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25B
Y3Rpb24uaDoNCiAgICAgICAgUmVuYW1lIHRoZSAnbWFpbkZyYW1lTmF2aWdhdGlvbicgY29uc3Ry
dWN0b3IgcGFyYW1ldGVyIHRvICduYXZpZ2F0aW9uJyBzaW5jZSB3ZSBhbHNvDQogICAgICAgIHdh
bnQgdG8ga2VlcCB0cmFjayBvZiBpdCBmb3Igc3ViZnJhbWUgbmF2aWdhdGlvbnMuIFRoZSBtYWlu
RnJhbWVOYXZpZ2F0aW9uKCkgZ2V0dGVyDQogICAgICAgIHN0aWxsIGV4aXN0cyAoYnV0IGFkZHMg
YSBtYWluLWZyYW1lIGNoZWNrKSwgYW5kIGEgbmV3IGdldHRlciBuYXZpZ2F0aW9uKCkgaXMgYWRk
ZWQNCiAgICAgICAgdG8gYWNjZXNzIHRoZSBuYXZpZ2F0aW9uLCBldmVuIGlmIGl0IHRhcmdldHMg
YSBzdWJmcmFtZS4NCiAgICANCiAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvblJlc3Bv
bnNlLmg6DQogICAgICAgIEFkZCBhIGNvbnN0cnVjdG9yIHBhcmFtZXRlciwgcHJpdmF0ZSBmaWVs
ZCwgYW5kIGdldHRlciBmb3IgdGhlIG5hdmlnYXRpb24gYXNzb2NpYXRlZA0KICAgICAgICB3aXRo
IHRoaXMgcmVzcG9uc2UuDQogICAgDQogICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkFjdGlvbi5tbToNCiAgICAoLVtXS05hdmlnYXRpb25BY3Rpb24gX25hdmlnYXRpb25dKToN
CiAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOg0K
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbToNCiAgICAo
LVtXS05hdmlnYXRpb25SZXNwb25zZSBfbmF2aWdhdGlvbl0pOg0KICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaDoNCiAgICANCiAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOg0KICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6DQogICAgICAgIFVzZSB0aGUgbmF2aWdhdGlvbiAo
bm90IGp1c3QgbWFpbkZyYW1lTmF2aWdhdGlvbikgd2hlbiBjcmVhdGluZyB0aGUgTmF2aWdhdGlv
bkFjdGlvbi4NCiAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKToNCiAgICAgICAgRGl0dG8sIGJ1dCBmb3IgdGhlIE5hdmlnYXRpb25SZXNwb25z
ZS4NCiAgICANCiAgICBUb29sczoNCiAgICANCiAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgdGhlIF9u
YXZpZ2F0aW9uIHByb3BlcnR5IG9mIFdLTmF2aWdhdGlvbkFjdGlvbiBhbmQgV0tOYXZpZ2F0aW9u
UmVzcG9uc2UsDQogICAgYm90aCBmb3IgbWFpbi1mcmFtZSBhbmQgc3ViZnJhbWUgbmF2aWdhdGlv
bnMuDQogICAgDQogICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRp
b24ubW06DQogICAgKC1bTmF2aWdhdGlvbkFjdGlvbkhhc05hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJW
aWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOg0K
ICAgICgtW05hdmlnYXRpb25BY3Rpb25IYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlIHdl
YlZpZXc6ZGlkRmluaXNoTmF2aWdhdGlvbjpdKToNCiAgICAoLVtOYXZpZ2F0aW9uQWN0aW9uSGFz
TmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOg0KICAgIChURVNUKToNCiAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW06DQogICAg
KC1bTmF2aWdhdGlvblJlc3BvbnNlSGFzTmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGlkRmlu
aXNoTmF2aWdhdGlvbjpdKToNCiAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VIYXNOYXZpZ2F0aW9u
RGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNp
b25IYW5kbGVyOl0pOg0KICAgIChURVNUKToNCiAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VIYXNO
YXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlIHdlYlZpZXc6ZGlkRmluaXNoTmF2aWdhdGlvbjpd
KToNCiAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VIYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVn
YXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFu
ZGxlcjpdKToNCg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cNCmluZGV4IDM5NDBlZDYzM2M5Li44ZjhmYmFmN2EzNyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZw0KQEAgLTEsMyArMSwzOCBAQA0KKzIwMTktMDMtMjYgIERhdmlkIFF1ZXNhZGEgIDxkYXZp
ZF9xdWVzYWRhQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFkZCBTUEkgdG8gYWNjZXNzIHRoZSBX
S05hdmlnYXRpb24gZnJvbSB0aGUgbmF2aWdhdGlvbiBhY3Rpb24gYW5kIHJlc3BvbnNlDQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjkxDQorICAg
ICAgICByZGFyOi8vcHJvYmxlbS80OTMxMDY0OA0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuDQorDQorICAgICAgICBHaXZlbiBhIFdLTmF2aWdhdGlvbkFjdGlvbiBvciBh
IFdLTmF2aWdhdGlvblJlc3BvbnNlLCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZGV0ZXJtaW5l
DQorICAgICAgICB0aGUgYXNzb2NpYXRlZCBXS05hdmlnYXRpb24gdHJhY2tpbmcgdGhlIG5hdmln
YXRpb24uIFRoaXMgbWFrZXMgaXQgZWFzaWVyIGZvciBjbGllbnRzIHRvDQorICAgICAgICBkZWNp
ZGUgdGhlIHJlc3BvbnNlIHBvbGljeSBiYXNlZCBvbiBrbm93bGVkZ2Uga25vd24gYXQgbmF2aWdh
dGlvbi1hY3Rpb24gdGltZS4NCisNCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uQWN0aW9uLmg6DQorICAgICAgICAgICAgUmVuYW1lIHRoZSAnbWFpbkZyYW1lTmF2aWdhdGlv
bicgY29uc3RydWN0b3IgcGFyYW1ldGVyIHRvICduYXZpZ2F0aW9uJyBzaW5jZSB3ZSBhbHNvDQor
ICAgICAgICAgICAgd2FudCB0byBrZWVwIHRyYWNrIG9mIGl0IGZvciBzdWJmcmFtZSBuYXZpZ2F0
aW9ucy4gVGhlIG1haW5GcmFtZU5hdmlnYXRpb24oKSBnZXR0ZXINCisgICAgICAgICAgICBzdGls
bCBleGlzdHMgKGJ1dCBhZGRzIGEgbWFpbi1mcmFtZSBjaGVjayksIGFuZCBhIG5ldyBnZXR0ZXIg
bmF2aWdhdGlvbigpIGlzIGFkZGVkDQorICAgICAgICAgICAgdG8gYWNjZXNzIHRoZSBuYXZpZ2F0
aW9uLCBldmVuIGlmIGl0IHRhcmdldHMgYSBzdWJmcmFtZS4NCisNCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9BUElOYXZpZ2F0aW9uUmVzcG9uc2UuaDoNCisgICAgICAgICAgICBBZGQgYSBjb25z
dHJ1Y3RvciBwYXJhbWV0ZXIsIHByaXZhdGUgZmllbGQsIGFuZCBnZXR0ZXIgZm9yIHRoZSBuYXZp
Z2F0aW9uIGFzc29jaWF0ZWQNCisgICAgICAgICAgICB3aXRoIHRoaXMgcmVzcG9uc2UuDQorDQor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tOg0KKyAg
ICAgICAgKC1bV0tOYXZpZ2F0aW9uQWN0aW9uIF9uYXZpZ2F0aW9uXSk6DQorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOg0KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tOg0KKyAgICAgICAg
KC1bV0tOYXZpZ2F0aW9uUmVzcG9uc2UgX25hdmlnYXRpb25dKToNCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaDoNCisNCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6DQorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOg0KKyAgICAgICAgICAgIFVz
ZSB0aGUgbmF2aWdhdGlvbiAobm90IGp1c3QgbWFpbkZyYW1lTmF2aWdhdGlvbikgd2hlbiBjcmVh
dGluZyB0aGUgTmF2aWdhdGlvbkFjdGlvbi4NCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQpOg0KKyAgICAgICAgICAgIERpdHRvLCBi
dXQgZm9yIHRoZSBOYXZpZ2F0aW9uUmVzcG9uc2UuDQorDQogMjAxOS0wMy0yNiAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFttYWNPU10gQ29ycmVjdCBr
ZXJiZXJvcy1yZWxhdGVkIHNhbmRib3ggdmlvbGF0aW9ucw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkFjdGlvbi5oDQppbmRleCBjMTUyOGY4YjUxNS4u
YTdiNTIzMWY0ZjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TmF2aWdhdGlvbkFjdGlvbi5oDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TmF2aWdhdGlvbkFjdGlvbi5oDQpAQCAtNjcsMTQgKzY3LDE1IEBAIHB1YmxpYzoNCiAgICAgYm9v
bCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlckluaXRpYXRl
ZEFjdGlvbjsgfQ0KICAgICBVc2VySW5pdGlhdGVkQWN0aW9uKiB1c2VySW5pdGlhdGVkQWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV91c2VySW5pdGlhdGVkQWN0aW9uLmdldCgpOyB9DQogDQotICAg
IE5hdmlnYXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24oKSBjb25zdCB7IHJldHVybiBtX21haW5G
cmFtZU5hdmlnYXRpb24uZ2V0KCk7IH0NCisgICAgTmF2aWdhdGlvbiogbWFpbkZyYW1lTmF2aWdh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIChtX3RhcmdldEZyYW1lICYmIG1fdGFyZ2V0RnJhbWUtPmlz
TWFpbkZyYW1lKCkpID8gbV9uYXZpZ2F0aW9uLmdldCgpIDogbnVsbHB0cjsgfQ0KKyAgICBOYXZp
Z2F0aW9uKiBuYXZpZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uLmdldCgpOyB9
DQogDQogI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpDQogQVBJTkFWSUdBVElPTkFDVElPTl9MT0FE
T1BUSU1JWkVSX0FERElUSU9OU18xDQogI2VuZGlmDQogDQogcHJpdmF0ZToNCi0gICAgTmF2aWdh
dGlvbkFjdGlvbihXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlv
bkRhdGEsIEFQSTo6RnJhbWVJbmZvKiBzb3VyY2VGcmFtZSwgQVBJOjpGcmFtZUluZm8qIHRhcmdl
dEZyYW1lLCBPcHRpb25hbDxXVEY6OlN0cmluZz4gdGFyZ2V0RnJhbWVOYW1lLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBXVEY6OlVSTCYgb3JpZ2luYWxVUkwsIGJv
b2wgc2hvdWxkT3BlbkFwcExpbmtzLCBSZWZQdHI8VXNlckluaXRpYXRlZEFjdGlvbj4mJiB1c2Vy
SW5pdGlhdGVkQWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24pDQor
ICAgIE5hdmlnYXRpb25BY3Rpb24oV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBBUEk6OkZyYW1lSW5mbyogc291cmNlRnJhbWUsIEFQSTo6RnJhbWVJ
bmZvKiB0YXJnZXRGcmFtZSwgT3B0aW9uYWw8V1RGOjpTdHJpbmc+IHRhcmdldEZyYW1lTmFtZSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgV1RGOjpVUkwmIG9yaWdp
bmFsVVJMLCBib29sIHNob3VsZE9wZW5BcHBMaW5rcywgUmVmUHRyPFVzZXJJbml0aWF0ZWRBY3Rp
b24+JiYgdXNlckluaXRpYXRlZEFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQ0K
ICAgICAgICAgOiBtX3NvdXJjZUZyYW1lKHNvdXJjZUZyYW1lKQ0KICAgICAgICAgLCBtX3Rhcmdl
dEZyYW1lKHRhcmdldEZyYW1lKQ0KICAgICAgICAgLCBtX3RhcmdldEZyYW1lTmFtZSh0YXJnZXRG
cmFtZU5hbWUpDQpAQCAtODMsNyArODQsNyBAQCBwcml2YXRlOg0KICAgICAgICAgLCBtX3Nob3Vs
ZE9wZW5BcHBMaW5rcyhzaG91bGRPcGVuQXBwTGlua3MpDQogICAgICAgICAsIG1fdXNlckluaXRp
YXRlZEFjdGlvbihXVEZNb3ZlKHVzZXJJbml0aWF0ZWRBY3Rpb24pKQ0KICAgICAgICAgLCBtX25h
dmlnYXRpb25BY3Rpb25EYXRhKFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpKQ0KLSAgICAg
ICAgLCBtX21haW5GcmFtZU5hdmlnYXRpb24obWFpbkZyYW1lTmF2aWdhdGlvbikNCisgICAgICAg
ICwgbV9uYXZpZ2F0aW9uKG5hdmlnYXRpb24pDQogICAgIHsNCiAgICAgfQ0KIA0KQEAgLTEwNyw3
ICsxMDgsNyBAQCBBUElOQVZJR0FUSU9OQUNUSU9OX0xPQURPUFRJTUlaRVJfQURESVRJT05TXzIN
CiAgICAgUmVmUHRyPFVzZXJJbml0aWF0ZWRBY3Rpb24+IG1fdXNlckluaXRpYXRlZEFjdGlvbjsN
CiANCiAgICAgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBtX25hdmlnYXRpb25BY3Rpb25E
YXRhOw0KLSAgICBSZWZQdHI8TmF2aWdhdGlvbj4gbV9tYWluRnJhbWVOYXZpZ2F0aW9uOw0KKyAg
ICBSZWZQdHI8TmF2aWdhdGlvbj4gbV9uYXZpZ2F0aW9uOw0KIH07DQogDQogfSAvLyBuYW1lc3Bh
Y2UgQVBJDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25SZXNwb25zZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25SZXNwb25zZS5oDQppbmRleCA3NWM0NTZmNTM0Zi4uNGVhMzg2NGE1YjEgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvblJlc3BvbnNlLmgNCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uUmVzcG9uc2UuaA0K
QEAgLTM3LDEzICszNywxNCBAQCBjbGFzcyBGcmFtZUluZm87DQogDQogY2xhc3MgTmF2aWdhdGlv
blJlc3BvbnNlIGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpOYXZpZ2F0
aW9uUmVzcG9uc2U+IHsNCiBwdWJsaWM6DQotICAgIHN0YXRpYyBSZWY8TmF2aWdhdGlvblJlc3Bv
bnNlPiBjcmVhdGUoQVBJOjpGcmFtZUluZm8mIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBib29sIGNhblNob3dNSU1FVHlwZSkNCisgICAgc3RhdGljIFJlZjxOYXZpZ2F0aW9uUmVz
cG9uc2U+IGNyZWF0ZShBUEk6OkZyYW1lSW5mbyYgZnJhbWUsIEFQSTo6TmF2aWdhdGlvbiogbmF2
aWdhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBjYW5TaG93TUlNRVR5cGUp
DQogICAgIHsNCi0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdmlnYXRpb25SZXNwb25z
ZShmcmFtZSwgcmVxdWVzdCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSkpOw0KKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF2aWdhdGlvblJlc3BvbnNlKGZyYW1lLCBuYXZpZ2F0aW9u
LCByZXF1ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBlKSk7DQogICAgIH0NCiANCi0gICAg
TmF2aWdhdGlvblJlc3BvbnNlKEFQSTo6RnJhbWVJbmZvJiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgYm9vbCBjYW5TaG93TUlNRVR5cGUpDQorICAgIE5hdmlnYXRpb25SZXNwb25z
ZShBUEk6OkZyYW1lSW5mbyYgZnJhbWUsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBjYW5TaG93TUlNRVR5cGUpDQogICAgICAgICA6
IG1fZnJhbWUoZnJhbWUpDQorICAgICAgICAsIG1fbmF2aWdhdGlvbihuYXZpZ2F0aW9uKQ0KICAg
ICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkNCiAgICAgICAgICwgbV9yZXNwb25zZShyZXNwb25z
ZSkNCiAgICAgICAgICwgbV9jYW5TaG93TUlNRVR5cGUoY2FuU2hvd01JTUVUeXBlKQ0KQEAgLTUx
LDYgKzUyLDcgQEAgcHVibGljOg0KICAgICB9DQogDQogICAgIEZyYW1lSW5mbyYgZnJhbWUoKSB7
IHJldHVybiBtX2ZyYW1lLmdldCgpOyB9DQorICAgIE5hdmlnYXRpb24qIG5hdmlnYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX25hdmlnYXRpb24uZ2V0KCk7IH0NCiANCiAgICAgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9
DQogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNwb25zZTsgfQ0KQEAgLTU5LDYgKzYxLDcgQEAgcHVibGljOg0KIA0KIHBy
aXZhdGU6DQogICAgIFJlZjxGcmFtZUluZm8+IG1fZnJhbWU7DQorICAgIFJlZlB0cjxOYXZpZ2F0
aW9uPiBtX25hdmlnYXRpb247DQogDQogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3Jl
cXVlc3Q7DQogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFj
dGlvbi5tbQ0KaW5kZXggYjI1YTQzNzM3MzcuLmFjNTdmNTFiMjFkIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5tbQ0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5t
bQ0KQEAgLTIxMCw0ICsyMTAsOSBAQCAtIChXS05hdmlnYXRpb24gKilfbWFpbkZyYW1lTmF2aWdh
dGlvbg0KICAgICByZXR1cm4gd3JhcHBlcihfbmF2aWdhdGlvbkFjdGlvbi0+bWFpbkZyYW1lTmF2
aWdhdGlvbigpKTsNCiB9DQogDQorLSAoV0tOYXZpZ2F0aW9uICopX25hdmlnYXRpb24NCit7DQor
ICAgIHJldHVybiB3cmFwcGVyKF9uYXZpZ2F0aW9uQWN0aW9uLT5uYXZpZ2F0aW9uKCkpOw0KK30N
CisNCiBAZW5kDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgNCmluZGV4IDA4Y2JmNTAwYTY3Li44
NWYwZGI1NWMwNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgNCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgNCkBAIC02MCw1ICs2MCw2
IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLU3ludGhldGljQ2xpY2tUeXBlKSB7DQog
DQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc1JlZGlyZWN0IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOw0KIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgV0tOYXZpZ2F0aW9uICpfbWFpbkZyYW1lTmF2aWdhdGlvbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOw0KK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZpZ2F0aW9uICpfbmF2aWdhdGlvbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOw0KIA0KIEBlbmQN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uUmVzcG9uc2UubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uUmVzcG9uc2UubW0NCmluZGV4IDBiYjM5NGY1MWFmLi5lZmIwMjk0NTM3YiAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNw
b25zZS5tbQ0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvblJlc3BvbnNlLm1tDQpAQCAtMjcsNiArMjcsNyBAQA0KICNpbXBvcnQgIldLTmF2aWdhdGlv
blJlc3BvbnNlSW50ZXJuYWwuaCINCiANCiAjaW1wb3J0ICJXS0ZyYW1lSW5mb0ludGVybmFsLmgi
DQorI2ltcG9ydCAiV0tOYXZpZ2F0aW9uSW50ZXJuYWwuaCINCiANCiBAaW1wbGVtZW50YXRpb24g
V0tOYXZpZ2F0aW9uUmVzcG9uc2UNCiANCkBAIC03OCw0ICs3OSw5IEBAIC0gKE5TVVJMUmVxdWVz
dCAqKV9yZXF1ZXN0DQogICAgIHJldHVybiBfbmF2aWdhdGlvblJlc3BvbnNlLT5yZXF1ZXN0KCku
bnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhU
VFBCb2R5KTsNCiB9DQogDQorLSAoV0tOYXZpZ2F0aW9uICopX25hdmlnYXRpb24NCit7DQorICAg
IHJldHVybiB3cmFwcGVyKF9uYXZpZ2F0aW9uUmVzcG9uc2UtPm5hdmlnYXRpb24oKSk7DQorfQ0K
Kw0KIEBlbmQNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uUmVzcG9uc2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2VQcml2YXRlLmgNCmluZGV4IGYwZGZkMzM5NmQx
Li4yNjBiOGQwYTFmMyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaA0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlUHJpdmF0ZS5oDQpAQCAtMjks
NSArMjksNiBAQA0KIA0KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tGcmFtZUlu
Zm8gKl9mcmFtZTsNCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMUmVxdWVz
dCAqX3JlcXVlc3Q7DQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS05hdmlnYXRp
b24gKl9uYXZpZ2F0aW9uOw0KIA0KIEBlbmQNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcA0KaW5kZXggMzYyZTk4NDJmZWEuLmUwZGZlNDE1YWIwIDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KQEAgLTQ2MTQsNyArNDYxNCw2IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzDQogICAgIGlmIChzaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdS
ZXN1bHQgPT0gU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpZZXMpDQogICAgICAgICBi
ZWdpblNhZmVCcm93c2luZ0NoZWNrKHJlcXVlc3QudXJsKCksIGZyYW1lLmlzTWFpbkZyYW1lKCks
IGxpc3RlbmVyKTsNCiANCi0gICAgQVBJOjpOYXZpZ2F0aW9uKiBtYWluRnJhbWVOYXZpZ2F0aW9u
ID0gZnJhbWUuaXNNYWluRnJhbWUoKSA/IG5hdmlnYXRpb24uZ2V0KCkgOiBudWxscHRyOw0KICAg
ICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGluZ0ZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUob3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpOw0KIA0KICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQ0KQEAgLTQ2MzYsNyArNDYzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzDQogICAgICAgICBhdXRvIHVzZXJJbml0aWF0ZWRBY3Rpdml0eSA9IHByb2Nlc3MtPnVz
ZXJJbml0aWF0ZWRBY3Rpdml0eShuYXZpZ2F0aW9uQWN0aW9uRGF0YS51c2VyR2VzdHVyZVRva2Vu
SWRlbnRpZmllcik7DQogICAgICAgICBib29sIHNob3VsZE9wZW5BcHBMaW5rcyA9ICFtX3Nob3Vs
ZFN1cHByZXNzQXBwTGlua3NJbk5leHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gJiYgZGVzdGlu
YXRpb25GcmFtZUluZm8tPmlzTWFpbkZyYW1lKCkgJiYgIWhvc3RzQXJlRXF1YWwoVVJMKHsgfSwg
bV9tYWluRnJhbWUtPnVybCgpKSwgcmVxdWVzdC51cmwoKSkgJiYgbmF2aWdhdGlvbkFjdGlvbkRh
dGEubmF2aWdhdGlvblR5cGUgIT0gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGU6OkJhY2tGb3J3YXJk
Ow0KIA0KLSAgICAgICAgYXV0byBuYXZpZ2F0aW9uQWN0aW9uID0gQVBJOjpOYXZpZ2F0aW9uQWN0
aW9uOjpjcmVhdGUoV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIHNvdXJjZUZyYW1lSW5m
by5nZXQoKSwgZGVzdGluYXRpb25GcmFtZUluZm8ucHRyKCksIFdURjo6bnVsbG9wdCwgV1RGTW92
ZShyZXF1ZXN0KSwgb3JpZ2luYWxSZXF1ZXN0LnVybCgpLCBzaG91bGRPcGVuQXBwTGlua3MsIFdU
Rk1vdmUodXNlckluaXRpYXRlZEFjdGl2aXR5KSwgbWFpbkZyYW1lTmF2aWdhdGlvbik7DQorICAg
ICAgICBhdXRvIG5hdmlnYXRpb25BY3Rpb24gPSBBUEk6Ok5hdmlnYXRpb25BY3Rpb246OmNyZWF0
ZShXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgc291cmNlRnJhbWVJbmZvLmdldCgpLCBk
ZXN0aW5hdGlvbkZyYW1lSW5mby5wdHIoKSwgV1RGOjpudWxsb3B0LCBXVEZNb3ZlKHJlcXVlc3Qp
LCBvcmlnaW5hbFJlcXVlc3QudXJsKCksIHNob3VsZE9wZW5BcHBMaW5rcywgV1RGTW92ZSh1c2Vy
SW5pdGlhdGVkQWN0aXZpdHkpLCBuYXZpZ2F0aW9uLmdldCgpKTsNCiANCiAjaWYgSEFWRShMT0FE
X09QVElNSVpFUikNCiBXRUJQQUdFUFJPWFlfTE9BRE9QVElNSVpFUl9BRERJVElPTlNfMw0KQEAg
LTQ3OTIsNyArNDc5MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsDQogICAgIE1FU1NBR0Vf
Q0hFQ0tfVVJMKHByb2Nlc3MsIHJlc3BvbnNlLnVybCgpKTsNCiANCiAgICAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2aWdhdGlvblN0YXRl
LT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOw0KLSAgICBhdXRvIGxpc3RlbmVy
ID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQs
IG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb24pLA0KKyAgICBhdXRvIGxpc3RlbmVyID0g
bWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5h
dmlnYXRpb24sDQogICAgICAgICBwcm9jZXNzID0gcHJvY2Vzcy5jb3B5UmVmKCldIChQb2xpY3lB
Y3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVC
cm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZykgbXV0YWJsZSB7DQogICAgICAg
ICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyogaXMgbnVsbHB0ciBo
ZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMg
Z28gYXdheS4NCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8pOw0KQEAgLTQ4MDgsNyAr
NDgwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsDQogICAgIGlmIChtX3BvbGljeUNsaWVu
dCkNCiAgICAgICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSgqdGhp
cywgKmZyYW1lLCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBXVEZNb3ZlKGxp
c3RlbmVyKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCkpOw0KICAgICBlbHNlIHsNCi0gICAgICAgIGF1dG8gbmF2aWdhdGlvblJlc3Bv
bnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3Jl
YXRlKCpmcmFtZSwgZnJhbWVTZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbigpKS5nZXQoKSwg
cmVxdWVzdCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSk7DQorICAgICAgICBhdXRvIG5hdmln
YXRpb25SZXNwb25zZSA9IEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlOjpjcmVhdGUoQVBJOjpGcmFt
ZUluZm86OmNyZWF0ZSgqZnJhbWUsIGZyYW1lU2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmlnaW4o
KSkuZ2V0KCksIG5hdmlnYXRpb24uZ2V0KCksIHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlN
RVR5cGUpOw0KICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uUmVzcG9uc2UoKnRoaXMsIFdURk1vdmUobmF2aWdhdGlvblJlc3BvbnNlKSwgV1RGTW92
ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsNCiAgICAgfQ0KIH0NCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cNCmluZGV4IDk5ZGJlNTRkYzVjLi4yM2YxOWExMTZiOSAxMDA2
NDQNCi0tLSBhL1Rvb2xzL0NoYW5nZUxvZw0KKysrIGIvVG9vbHMvQ2hhbmdlTG9nDQpAQCAtMSwz
ICsxLDI2IEBADQorMjAxOS0wMy0yNiAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBw
bGUuY29tPg0KKw0KKyAgICAgICAgQWRkIFNQSSB0byBhY2Nlc3MgdGhlIFdLTmF2aWdhdGlvbiBm
cm9tIHRoZSBuYXZpZ2F0aW9uIGFjdGlvbiBhbmQgcmVzcG9uc2UNCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYyOTENCisgICAgICAgIHJkYXI6Ly9w
cm9ibGVtLzQ5MzEwNjQ4DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4N
CisNCisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciB0aGUgX25hdmlnYXRpb24gcHJvcGVydHkg
b2YgV0tOYXZpZ2F0aW9uQWN0aW9uIGFuZCBXS05hdmlnYXRpb25SZXNwb25zZSwNCisgICAgICAg
IGJvdGggZm9yIG1haW4tZnJhbWUgYW5kIHN1YmZyYW1lIG5hdmlnYXRpb25zLg0KKw0KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW06DQorICAg
ICAgICAoLVtOYXZpZ2F0aW9uQWN0aW9uSGFzTmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6DQorICAgICAg
ICAoLVtOYXZpZ2F0aW9uQWN0aW9uSGFzTmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZSB3ZWJW
aWV3OmRpZEZpbmlzaE5hdmlnYXRpb246XSk6DQorICAgICAgICAoLVtOYXZpZ2F0aW9uQWN0aW9u
SGFzTmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOg0KKyAgICAgICAgKFRFU1QpOg0KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlvblJlc3Bv
bnNlLm1tOg0KKyAgICAgICAgKC1bTmF2aWdhdGlvblJlc3BvbnNlSGFzTmF2aWdhdGlvbkRlbGVn
YXRlIHdlYlZpZXc6ZGlkRmluaXNoTmF2aWdhdGlvbjpdKToNCisgICAgICAgICgtW05hdmlnYXRp
b25SZXNwb25zZUhhc05hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6XSk6DQorICAgICAgICAoVEVTVCk6DQor
ICAgICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VIYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVn
YXRlIHdlYlZpZXc6ZGlkRmluaXNoTmF2aWdhdGlvbjpdKToNCisgICAgICAgICgtW05hdmlnYXRp
b25SZXNwb25zZUhhc05hdmlnYXRpb25JblN1YmZyYW1lRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOl0pOg0KKw0KIDIwMTkt
MDMtMjYgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPg0KIA0KICAgICAgICAgVXBk
YXRlIHRoZSB3YXkgZ2VuZXJhdGUteGNmaWxlbGlzdHMgcmV0dXJucyBzdHJpbmdzIGZyb20gZnVu
Y3Rpb25zDQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9O
YXZpZ2F0aW9uLm1tDQppbmRleCBlYTNhY2U1MDUwYi4uMzA4MjE4MjYxNTIgMTAwNjQ0DQotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0NCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbQ0K
QEAgLTIzMyw2ICsyMzMsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aQ0KIHsNCiAgICAgRVhQ
RUNUX1RSVUUoISFuYXZpZ2F0aW9uQWN0aW9uLl9tYWluRnJhbWVOYXZpZ2F0aW9uKTsNCiAgICAg
RVhQRUNUX0VRKG5hdmlnYXRpb25BY3Rpb24uX21haW5GcmFtZU5hdmlnYXRpb24sIG5hdmlnYXRp
b24pOw0KKyAgICBFWFBFQ1RfRVEobmF2aWdhdGlvbkFjdGlvbi5fbmF2aWdhdGlvbiwgbmF2aWdh
dGlvbik7DQogICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxv
dyk7DQogfQ0KIA0KQEAgLTI1Miw2ICsyNTMsNTEgQEAgVEVTVChXS05hdmlnYXRpb24sIE5hdmln
YXRpb25BY3Rpb25IYXNOYXZpZ2F0aW9uKQ0KICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmlzRG9uZSk7DQogfQ0KIA0KK0BpbnRlcmZhY2UgTmF2aWdhdGlvbkFjdGlvbkhhc05hdmlnYXRp
b25JblN1YmZyYW1lRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IHsN
CisgICAgV0tOYXZpZ2F0aW9uICpfbWFpbkZyYW1lTmF2aWdhdGlvbjsNCisgICAgYm9vbCBfaGFz
RmluaXNoZWRGaXJzdE5hdmlnYXRpb247DQorfQ0KK0BlbmQNCisNCitAaW1wbGVtZW50YXRpb24g
TmF2aWdhdGlvbkFjdGlvbkhhc05hdmlnYXRpb25JblN1YmZyYW1lRGVsZWdhdGUNCisNCistICh2
b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjooV0tO
YXZpZ2F0aW9uICopbmF2aWdhdGlvbg0KK3sNCisgICAgRVhQRUNUX0VRKF9tYWluRnJhbWVOYXZp
Z2F0aW9uLCBuaWwpOw0KKyAgICBfbWFpbkZyYW1lTmF2aWdhdGlvbiA9IG5hdmlnYXRpb247DQor
ICAgIGlzRG9uZSA9IHRydWU7DQorfQ0KKw0KKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rp
b24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5KSlkZWNpc2lvbkhhbmRsZXINCit7DQorICAgIGlmIChfbWFpbkZyYW1l
TmF2aWdhdGlvbikgew0KKyAgICAgICAgRVhQRUNUX1RSVUUoISFuYXZpZ2F0aW9uQWN0aW9uLl9u
YXZpZ2F0aW9uKTsNCisgICAgICAgIEVYUEVDVF9ORShuYXZpZ2F0aW9uQWN0aW9uLl9uYXZpZ2F0
aW9uLCBfbWFpbkZyYW1lTmF2aWdhdGlvbik7DQorICAgICAgICBFWFBFQ1RfRVEobmF2aWdhdGlv
bkFjdGlvbi5fbWFpbkZyYW1lTmF2aWdhdGlvbiwgbmlsKTsNCisgICAgICAgIGlzRG9uZSA9IHRy
dWU7DQorICAgIH0NCisNCisgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeUFsbG93KTsNCit9DQorDQorQGVuZA0KKw0KK1RFU1QoV0tOYXZpZ2F0aW9uLCBOYXZpZ2F0
aW9uQWN0aW9uSGFzTmF2aWdhdGlvbkluU3ViZnJhbWUpDQorew0KKyAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOw0KKw0KKyAgICBSZXRhaW5QdHI8TmF2aWdh
dGlvbkFjdGlvbkhhc05hdmlnYXRpb25JblN1YmZyYW1lRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRv
cHROUyhbW05hdmlnYXRpb25BY3Rpb25IYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7DQorICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07DQorDQorICAgIGlzRG9uZSA9IGZhbHNlOw0KKyAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpAIjxpZnJhbWUgbmFtZT0nc3ViZnJhbWUnPjwvaWZyYW1lPjxhIGhyZWY9J2RhdGE6
dGV4dC9odG1sLGEnIHRhcmdldD0nc3ViZnJhbWUnIGlkPSdsaW5rJz5DbGljayBNZSE8L2E+IiBi
YXNlVVJMOm5pbF07DQorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsNCisN
CisgICAgaXNEb25lID0gZmFsc2U7DQorICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaW5rJykuY2xpY2soKTsiIGNvbXBsZXRpb25IYW5k
bGVyOm5pbF07DQorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsNCit9DQor
DQogQGludGVyZmFjZSBDbGllbnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0
PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4NCiBAZW5kDQogDQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVz
cG9uc2UubW0NCmluZGV4IDMwOTQyZTc5YzI0Li43ZjZiODM4MTk0MCAxMDA2NDQNCi0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2Uu
bW0NCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0
aW9uUmVzcG9uc2UubW0NCkBAIC0yNiw2ICsyNiw3IEBADQogI2ltcG9ydCAiY29uZmlnLmgiDQog
DQogI2ltcG9ydCAiVXRpbGl0aWVzLmgiDQorI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvblJl
c3BvbnNlUHJpdmF0ZS5oPg0KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
Pg0KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4NCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
DQpAQCAtMTQyLDMgKzE0Myw4MiBAQCBURVNUKFdlYktpdCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQ
REZUeXBlKQ0KICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOnRlc3RVUkxdXTsNCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUp
Ow0KIH0NCisNCitAaW50ZXJmYWNlIE5hdmlnYXRpb25SZXNwb25zZUhhc05hdmlnYXRpb25EZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4gew0KK0BwdWJsaWMNCisgICAg
V0tOYXZpZ2F0aW9uICpuYXZpZ2F0aW9uOw0KK30NCitAZW5kDQorDQorQGltcGxlbWVudGF0aW9u
IE5hdmlnYXRpb25SZXNwb25zZUhhc05hdmlnYXRpb25EZWxlZ2F0ZQ0KKw0KKy0gKHZvaWQpd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihXS05hdmlnYXRp
b24gKiluYXZpZ2F0aW9uDQorew0KKyAgICBpc0RvbmUgPSB0cnVlOw0KK30NCisNCistICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJl
c3BvbnNlOihXS05hdmlnYXRpb25SZXNwb25zZSAqKW5hdmlnYXRpb25SZXNwb25zZSBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSlkZWNpc2lvbkhh
bmRsZXINCit7DQorICAgIEVYUEVDVF9UUlVFKCEhbmF2aWdhdGlvblJlc3BvbnNlLl9uYXZpZ2F0
aW9uKTsNCisgICAgRVhQRUNUX0VRKG5hdmlnYXRpb25SZXNwb25zZS5fbmF2aWdhdGlvbiwgbmF2
aWdhdGlvbik7DQorICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25SZXNwb25zZVBvbGlj
eUFsbG93KTsNCit9DQorDQorQGVuZA0KKw0KK1RFU1QoV2ViS2l0LCBOYXZpZ2F0aW9uUmVzcG9u
c2VIYXNOYXZpZ2F0aW9uKQ0KK3sNCisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9
IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCldKTsNCisNCisgICAgUmV0YWluUHRyPE5hdmlnYXRpb25SZXNwb25zZUhhc05h
dmlnYXRpb25EZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTmF2aWdhdGlvblJlc3BvbnNl
SGFzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7DQorICAgIFt3ZWJWaWV3IHNldE5h
dmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07DQorDQorICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJkYXRhOnRleHQvaHRtbCwxIl1dOw0KKw0KKyAgICBpc0RvbmUgPSBmYWxzZTsNCisgICAg
ZGVsZWdhdGUtPm5hdmlnYXRpb24gPSBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsNCisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOw0KK30NCisNCitAaW50ZXJmYWNl
IE5hdmlnYXRpb25SZXNwb25zZUhhc05hdmlnYXRpb25JblN1YmZyYW1lRGVsZWdhdGUgOiBOU09i
amVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IHsNCisgICAgV0tOYXZpZ2F0aW9uICpfbWFpbkZy
YW1lTmF2aWdhdGlvbjsNCit9DQorQGVuZA0KKw0KK0BpbXBsZW1lbnRhdGlvbiBOYXZpZ2F0aW9u
UmVzcG9uc2VIYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlDQorDQorLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlv
biAqKW5hdmlnYXRpb24NCit7DQorICAgIEVYUEVDVF9FUShfbWFpbkZyYW1lTmF2aWdhdGlvbiwg
bmlsKTsNCisgICAgX21haW5GcmFtZU5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uOw0KKyAgICBpc0Rv
bmUgPSB0cnVlOw0KK30NCisNCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOihXS05hdmlnYXRpb25SZXNwb25zZSAq
KW5hdmlnYXRpb25SZXNwb25zZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5KSlkZWNpc2lvbkhhbmRsZXINCit7DQorICAgIGlmIChfbWFpbkZyYW1l
TmF2aWdhdGlvbikgew0KKyAgICAgICAgRVhQRUNUX1RSVUUoISFuYXZpZ2F0aW9uUmVzcG9uc2Uu
X25hdmlnYXRpb24pOw0KKyAgICAgICAgRVhQRUNUX05FKG5hdmlnYXRpb25SZXNwb25zZS5fbmF2
aWdhdGlvbiwgX21haW5GcmFtZU5hdmlnYXRpb24pOw0KKyAgICAgICAgaXNEb25lID0gdHJ1ZTsN
CisgICAgfQ0KKw0KKyAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xp
Y3lBbGxvdyk7DQorfQ0KKw0KK0BlbmQNCisNCitURVNUKFdlYktpdCwgTmF2aWdhdGlvblJlc3Bv
bnNlSGFzTmF2aWdhdGlvbkluU3ViZnJhbWUpDQorew0KKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3
PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOw0KKw0KKyAgICBSZXRhaW5QdHI8TmF2aWdhdGlvblJl
c3BvbnNlSGFzTmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbTmF2aWdhdGlvblJlc3BvbnNlSGFzTmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOw0KKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUu
Z2V0KCldOw0KKw0KKyAgICBpc0RvbmUgPSBmYWxzZTsNCisgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8aWZyYW1lIG5hbWU9J3N1YmZyYW1lJz48L2lmcmFtZT48YSBocmVmPSdkYXRhOnRl
eHQvaHRtbCxhJyB0YXJnZXQ9J3N1YmZyYW1lJyBpZD0nbGluayc+Q2xpY2sgTWUhPC9hPiIgYmFz
ZVVSTDpuaWxdOw0KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7DQorDQor
ICAgIGlzRG9uZSA9IGZhbHNlOw0KKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGluaycpLmNsaWNrKCk7IiBjb21wbGV0aW9uSGFuZGxl
cjpuaWxdOw0KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7DQorfQ0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366076</attachid>
            <date>2019-03-27 09:47:10 -0700</date>
            <delta_ts>2019-04-09 15:21:39 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>file_196291.txt</filename>
            <type>text/plain</type>
            <size>23762</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IGM3YmRmMjBhNDNlNjNhYjcyOTJkZmViZWUzNTcwZDhmMDBkOGNjN2YNCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIFdlZCBNYXIg
MjcgMDA6MDc6MDMgMjAxOSAtMDcwMA0KDQogICAgQWRkIFNQSSB0byBhY2Nlc3MgdGhlIFdLTmF2
aWdhdGlvbiBmcm9tIHRoZSBuYXZpZ2F0aW9uIGFjdGlvbiBhbmQgcmVzcG9uc2UNCiAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjkxDQogICAgcmRhcjovL3By
b2JsZW0vNDkzMTA2NDgNCiAgICANCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCiAg
ICANCiAgICBTb3VyY2UvV2ViS2l0Og0KICAgIA0KICAgIEdpdmVuIGEgV0tOYXZpZ2F0aW9uQWN0
aW9uIG9yIGEgV0tOYXZpZ2F0aW9uUmVzcG9uc2UsIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBk
ZXRlcm1pbmUNCiAgICB0aGUgYXNzb2NpYXRlZCBXS05hdmlnYXRpb24gdHJhY2tpbmcgdGhlIG5h
dmlnYXRpb24uIFRoaXMgbWFrZXMgaXQgZWFzaWVyIGZvciBjbGllbnRzIHRvDQogICAgZGVjaWRl
IHRoZSByZXNwb25zZSBwb2xpY3kgYmFzZWQgb24ga25vd2xlZGdlIGtub3duIGF0IG5hdmlnYXRp
b24tYWN0aW9uIHRpbWUuDQogICAgDQogICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25B
Y3Rpb24uaDoNCiAgICAgICAgUmVuYW1lIHRoZSAnbWFpbkZyYW1lTmF2aWdhdGlvbicgY29uc3Ry
dWN0b3IgcGFyYW1ldGVyIHRvICduYXZpZ2F0aW9uJyBzaW5jZSB3ZSBhbHNvDQogICAgICAgIHdh
bnQgdG8ga2VlcCB0cmFjayBvZiBpdCBmb3Igc3ViZnJhbWUgbmF2aWdhdGlvbnMuIFRoZSBtYWlu
RnJhbWVOYXZpZ2F0aW9uKCkgZ2V0dGVyDQogICAgICAgIHN0aWxsIGV4aXN0cyAoYnV0IGFkZHMg
YSBtYWluLWZyYW1lIGNoZWNrKSwgYW5kIGEgbmV3IGdldHRlciBuYXZpZ2F0aW9uKCkgaXMgYWRk
ZWQNCiAgICAgICAgdG8gYWNjZXNzIHRoZSBuYXZpZ2F0aW9uLCBldmVuIGlmIGl0IHRhcmdldHMg
YSBzdWJmcmFtZS4NCiAgICANCiAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvblJlc3Bv
bnNlLmg6DQogICAgICAgIEFkZCBhIGNvbnN0cnVjdG9yIHBhcmFtZXRlciwgcHJpdmF0ZSBmaWVs
ZCwgYW5kIGdldHRlciBmb3IgdGhlIG5hdmlnYXRpb24gYXNzb2NpYXRlZA0KICAgICAgICB3aXRo
IHRoaXMgcmVzcG9uc2UuDQogICAgDQogICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkFjdGlvbi5tbToNCiAgICAoLVtXS05hdmlnYXRpb25BY3Rpb24gX25hdmlnYXRpb25dKToN
CiAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOg0K
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbToNCiAgICAo
LVtXS05hdmlnYXRpb25SZXNwb25zZSBfbmF2aWdhdGlvbl0pOg0KICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaDoNCiAgICANCiAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOg0KICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6DQogICAgICAgIFVzZSB0aGUgbmF2aWdhdGlvbiAo
bm90IGp1c3QgbWFpbkZyYW1lTmF2aWdhdGlvbikgd2hlbiBjcmVhdGluZyB0aGUgTmF2aWdhdGlv
bkFjdGlvbi4NCiAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKToNCiAgICAgICAgRGl0dG8sIGJ1dCBmb3IgdGhlIE5hdmlnYXRpb25SZXNwb25z
ZS4NCiAgICANCiAgICBUb29sczoNCiAgICANCiAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgdGhlIF9u
YXZpZ2F0aW9uIHByb3BlcnR5IG9mIFdLTmF2aWdhdGlvbkFjdGlvbiBhbmQgV0tOYXZpZ2F0aW9u
UmVzcG9uc2UsDQogICAgYm90aCBmb3IgbWFpbi1mcmFtZSBhbmQgc3ViZnJhbWUgbmF2aWdhdGlv
bnMuDQogICAgDQogICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRp
b24ubW06DQogICAgKC1bTmF2aWdhdGlvbkFjdGlvbkhhc05hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJW
aWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOg0K
ICAgICgtW05hdmlnYXRpb25BY3Rpb25IYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlIHdl
YlZpZXc6ZGlkRmluaXNoTmF2aWdhdGlvbjpdKToNCiAgICAoLVtOYXZpZ2F0aW9uQWN0aW9uSGFz
TmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOg0KICAgIChURVNUKToNCiAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW06DQogICAg
KC1bTmF2aWdhdGlvblJlc3BvbnNlSGFzTmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGlkRmlu
aXNoTmF2aWdhdGlvbjpdKToNCiAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VIYXNOYXZpZ2F0aW9u
RGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNp
b25IYW5kbGVyOl0pOg0KICAgIChURVNUKToNCiAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VIYXNO
YXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlIHdlYlZpZXc6ZGlkRmluaXNoTmF2aWdhdGlvbjpd
KToNCiAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VIYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVn
YXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFu
ZGxlcjpdKToNCg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cNCmluZGV4IDM5NDBlZDYzM2M5Li44ZjhmYmFmN2EzNyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZw0KQEAgLTEsMyArMSwzOCBAQA0KKzIwMTktMDMtMjYgIERhdmlkIFF1ZXNhZGEgIDxkYXZp
ZF9xdWVzYWRhQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFkZCBTUEkgdG8gYWNjZXNzIHRoZSBX
S05hdmlnYXRpb24gZnJvbSB0aGUgbmF2aWdhdGlvbiBhY3Rpb24gYW5kIHJlc3BvbnNlDQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjkxDQorICAg
ICAgICByZGFyOi8vcHJvYmxlbS80OTMxMDY0OA0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuDQorDQorICAgICAgICBHaXZlbiBhIFdLTmF2aWdhdGlvbkFjdGlvbiBvciBh
IFdLTmF2aWdhdGlvblJlc3BvbnNlLCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZGV0ZXJtaW5l
DQorICAgICAgICB0aGUgYXNzb2NpYXRlZCBXS05hdmlnYXRpb24gdHJhY2tpbmcgdGhlIG5hdmln
YXRpb24uIFRoaXMgbWFrZXMgaXQgZWFzaWVyIGZvciBjbGllbnRzIHRvDQorICAgICAgICBkZWNp
ZGUgdGhlIHJlc3BvbnNlIHBvbGljeSBiYXNlZCBvbiBrbm93bGVkZ2Uga25vd24gYXQgbmF2aWdh
dGlvbi1hY3Rpb24gdGltZS4NCisNCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uQWN0aW9uLmg6DQorICAgICAgICAgICAgUmVuYW1lIHRoZSAnbWFpbkZyYW1lTmF2aWdhdGlv
bicgY29uc3RydWN0b3IgcGFyYW1ldGVyIHRvICduYXZpZ2F0aW9uJyBzaW5jZSB3ZSBhbHNvDQor
ICAgICAgICAgICAgd2FudCB0byBrZWVwIHRyYWNrIG9mIGl0IGZvciBzdWJmcmFtZSBuYXZpZ2F0
aW9ucy4gVGhlIG1haW5GcmFtZU5hdmlnYXRpb24oKSBnZXR0ZXINCisgICAgICAgICAgICBzdGls
bCBleGlzdHMgKGJ1dCBhZGRzIGEgbWFpbi1mcmFtZSBjaGVjayksIGFuZCBhIG5ldyBnZXR0ZXIg
bmF2aWdhdGlvbigpIGlzIGFkZGVkDQorICAgICAgICAgICAgdG8gYWNjZXNzIHRoZSBuYXZpZ2F0
aW9uLCBldmVuIGlmIGl0IHRhcmdldHMgYSBzdWJmcmFtZS4NCisNCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9BUElOYXZpZ2F0aW9uUmVzcG9uc2UuaDoNCisgICAgICAgICAgICBBZGQgYSBjb25z
dHJ1Y3RvciBwYXJhbWV0ZXIsIHByaXZhdGUgZmllbGQsIGFuZCBnZXR0ZXIgZm9yIHRoZSBuYXZp
Z2F0aW9uIGFzc29jaWF0ZWQNCisgICAgICAgICAgICB3aXRoIHRoaXMgcmVzcG9uc2UuDQorDQor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tOg0KKyAg
ICAgICAgKC1bV0tOYXZpZ2F0aW9uQWN0aW9uIF9uYXZpZ2F0aW9uXSk6DQorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOg0KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tOg0KKyAgICAgICAg
KC1bV0tOYXZpZ2F0aW9uUmVzcG9uc2UgX25hdmlnYXRpb25dKToNCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaDoNCisNCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6DQorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOg0KKyAgICAgICAgICAgIFVz
ZSB0aGUgbmF2aWdhdGlvbiAobm90IGp1c3QgbWFpbkZyYW1lTmF2aWdhdGlvbikgd2hlbiBjcmVh
dGluZyB0aGUgTmF2aWdhdGlvbkFjdGlvbi4NCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQpOg0KKyAgICAgICAgICAgIERpdHRvLCBi
dXQgZm9yIHRoZSBOYXZpZ2F0aW9uUmVzcG9uc2UuDQorDQogMjAxOS0wMy0yNiAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFttYWNPU10gQ29ycmVjdCBr
ZXJiZXJvcy1yZWxhdGVkIHNhbmRib3ggdmlvbGF0aW9ucw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkFjdGlvbi5oDQppbmRleCBjMTUyOGY4YjUxNS4u
YTdiNTIzMWY0ZjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TmF2aWdhdGlvbkFjdGlvbi5oDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TmF2aWdhdGlvbkFjdGlvbi5oDQpAQCAtNjcsMTQgKzY3LDE1IEBAIHB1YmxpYzoNCiAgICAgYm9v
bCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlckluaXRpYXRl
ZEFjdGlvbjsgfQ0KICAgICBVc2VySW5pdGlhdGVkQWN0aW9uKiB1c2VySW5pdGlhdGVkQWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV91c2VySW5pdGlhdGVkQWN0aW9uLmdldCgpOyB9DQogDQotICAg
IE5hdmlnYXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24oKSBjb25zdCB7IHJldHVybiBtX21haW5G
cmFtZU5hdmlnYXRpb24uZ2V0KCk7IH0NCisgICAgTmF2aWdhdGlvbiogbWFpbkZyYW1lTmF2aWdh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIChtX3RhcmdldEZyYW1lICYmIG1fdGFyZ2V0RnJhbWUtPmlz
TWFpbkZyYW1lKCkpID8gbV9uYXZpZ2F0aW9uLmdldCgpIDogbnVsbHB0cjsgfQ0KKyAgICBOYXZp
Z2F0aW9uKiBuYXZpZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uLmdldCgpOyB9
DQogDQogI2lmIEhBVkUoTE9BRF9PUFRJTUlaRVIpDQogQVBJTkFWSUdBVElPTkFDVElPTl9MT0FE
T1BUSU1JWkVSX0FERElUSU9OU18xDQogI2VuZGlmDQogDQogcHJpdmF0ZToNCi0gICAgTmF2aWdh
dGlvbkFjdGlvbihXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlv
bkRhdGEsIEFQSTo6RnJhbWVJbmZvKiBzb3VyY2VGcmFtZSwgQVBJOjpGcmFtZUluZm8qIHRhcmdl
dEZyYW1lLCBPcHRpb25hbDxXVEY6OlN0cmluZz4gdGFyZ2V0RnJhbWVOYW1lLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBXVEY6OlVSTCYgb3JpZ2luYWxVUkwsIGJv
b2wgc2hvdWxkT3BlbkFwcExpbmtzLCBSZWZQdHI8VXNlckluaXRpYXRlZEFjdGlvbj4mJiB1c2Vy
SW5pdGlhdGVkQWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24pDQor
ICAgIE5hdmlnYXRpb25BY3Rpb24oV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBBUEk6OkZyYW1lSW5mbyogc291cmNlRnJhbWUsIEFQSTo6RnJhbWVJ
bmZvKiB0YXJnZXRGcmFtZSwgT3B0aW9uYWw8V1RGOjpTdHJpbmc+IHRhcmdldEZyYW1lTmFtZSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgV1RGOjpVUkwmIG9yaWdp
bmFsVVJMLCBib29sIHNob3VsZE9wZW5BcHBMaW5rcywgUmVmUHRyPFVzZXJJbml0aWF0ZWRBY3Rp
b24+JiYgdXNlckluaXRpYXRlZEFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQ0K
ICAgICAgICAgOiBtX3NvdXJjZUZyYW1lKHNvdXJjZUZyYW1lKQ0KICAgICAgICAgLCBtX3Rhcmdl
dEZyYW1lKHRhcmdldEZyYW1lKQ0KICAgICAgICAgLCBtX3RhcmdldEZyYW1lTmFtZSh0YXJnZXRG
cmFtZU5hbWUpDQpAQCAtODMsNyArODQsNyBAQCBwcml2YXRlOg0KICAgICAgICAgLCBtX3Nob3Vs
ZE9wZW5BcHBMaW5rcyhzaG91bGRPcGVuQXBwTGlua3MpDQogICAgICAgICAsIG1fdXNlckluaXRp
YXRlZEFjdGlvbihXVEZNb3ZlKHVzZXJJbml0aWF0ZWRBY3Rpb24pKQ0KICAgICAgICAgLCBtX25h
dmlnYXRpb25BY3Rpb25EYXRhKFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpKQ0KLSAgICAg
ICAgLCBtX21haW5GcmFtZU5hdmlnYXRpb24obWFpbkZyYW1lTmF2aWdhdGlvbikNCisgICAgICAg
ICwgbV9uYXZpZ2F0aW9uKG5hdmlnYXRpb24pDQogICAgIHsNCiAgICAgfQ0KIA0KQEAgLTEwNyw3
ICsxMDgsNyBAQCBBUElOQVZJR0FUSU9OQUNUSU9OX0xPQURPUFRJTUlaRVJfQURESVRJT05TXzIN
CiAgICAgUmVmUHRyPFVzZXJJbml0aWF0ZWRBY3Rpb24+IG1fdXNlckluaXRpYXRlZEFjdGlvbjsN
CiANCiAgICAgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBtX25hdmlnYXRpb25BY3Rpb25E
YXRhOw0KLSAgICBSZWZQdHI8TmF2aWdhdGlvbj4gbV9tYWluRnJhbWVOYXZpZ2F0aW9uOw0KKyAg
ICBSZWZQdHI8TmF2aWdhdGlvbj4gbV9uYXZpZ2F0aW9uOw0KIH07DQogDQogfSAvLyBuYW1lc3Bh
Y2UgQVBJDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25SZXNwb25zZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25SZXNwb25zZS5oDQppbmRleCA3NWM0NTZmNTM0Zi4uZDQ2MTQ0OTA3OWIgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvblJlc3BvbnNlLmgNCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uUmVzcG9uc2UuaA0K
QEAgLTI3LDIzICsyNywyMyBAQA0KICNkZWZpbmUgQVBJTmF2aWdhdGlvblJlc3BvbnNlX2gNCiAN
CiAjaW5jbHVkZSAiQVBJRnJhbWVJbmZvLmgiDQorI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIN
CiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiDQogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1
ZXN0Lmg+DQogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPg0KIA0KIG5hbWVz
cGFjZSBBUEkgew0KIA0KLWNsYXNzIEZyYW1lSW5mbzsNCi0NCiBjbGFzcyBOYXZpZ2F0aW9uUmVz
cG9uc2UgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6Ok5hdmlnYXRpb25S
ZXNwb25zZT4gew0KIHB1YmxpYzoNCi0gICAgc3RhdGljIFJlZjxOYXZpZ2F0aW9uUmVzcG9uc2U+
IGNyZWF0ZShBUEk6OkZyYW1lSW5mbyYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGJvb2wgY2FuU2hvd01JTUVUeXBlKQ0KKyAgICBzdGF0aWMgUmVmPE5hdmlnYXRpb25SZXNwb25z
ZT4gY3JlYXRlKEFQSTo6RnJhbWVJbmZvJiBmcmFtZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0
aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGNhblNob3dNSU1FVHlwZSkNCiAg
ICAgew0KLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF2aWdhdGlvblJlc3BvbnNlKGZy
YW1lLCByZXF1ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBlKSk7DQorICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBOYXZpZ2F0aW9uUmVzcG9uc2UoZnJhbWUsIG5hdmlnYXRpb24sIHJl
cXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlNRVR5cGUpKTsNCiAgICAgfQ0KIA0KLSAgICBOYXZp
Z2F0aW9uUmVzcG9uc2UoQVBJOjpGcmFtZUluZm8mIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBib29sIGNhblNob3dNSU1FVHlwZSkNCisgICAgTmF2aWdhdGlvblJlc3BvbnNlKEFQ
STo6RnJhbWVJbmZvJiBmcmFtZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGNhblNob3dNSU1FVHlwZSkNCiAgICAgICAgIDogbV9m
cmFtZShmcmFtZSkNCisgICAgICAgICwgbV9uYXZpZ2F0aW9uKG5hdmlnYXRpb24pDQogICAgICAg
ICAsIG1fcmVxdWVzdChyZXF1ZXN0KQ0KICAgICAgICAgLCBtX3Jlc3BvbnNlKHJlc3BvbnNlKQ0K
ICAgICAgICAgLCBtX2NhblNob3dNSU1FVHlwZShjYW5TaG93TUlNRVR5cGUpDQpAQCAtNTEsNiAr
NTEsNyBAQCBwdWJsaWM6DQogICAgIH0NCiANCiAgICAgRnJhbWVJbmZvJiBmcmFtZSgpIHsgcmV0
dXJuIG1fZnJhbWUuZ2V0KCk7IH0NCisgICAgTmF2aWdhdGlvbiogbmF2aWdhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbmF2aWdhdGlvbi5nZXQoKTsgfQ0KIA0KICAgICBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0NCiAg
ICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc3BvbnNlOyB9DQpAQCAtNTksNiArNjAsNyBAQCBwdWJsaWM6DQogDQogcHJpdmF0
ZToNCiAgICAgUmVmPEZyYW1lSW5mbz4gbV9mcmFtZTsNCisgICAgUmVmUHRyPE5hdmlnYXRpb24+
IG1fbmF2aWdhdGlvbjsNCiANCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVz
dDsNCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOw0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9u
Lm1tDQppbmRleCBiMjVhNDM3MzczNy4uYWM1N2Y1MWIyMWQgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tDQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tDQpA
QCAtMjEwLDQgKzIxMCw5IEBAIC0gKFdLTmF2aWdhdGlvbiAqKV9tYWluRnJhbWVOYXZpZ2F0aW9u
DQogICAgIHJldHVybiB3cmFwcGVyKF9uYXZpZ2F0aW9uQWN0aW9uLT5tYWluRnJhbWVOYXZpZ2F0
aW9uKCkpOw0KIH0NCiANCistIChXS05hdmlnYXRpb24gKilfbmF2aWdhdGlvbg0KK3sNCisgICAg
cmV0dXJuIHdyYXBwZXIoX25hdmlnYXRpb25BY3Rpb24tPm5hdmlnYXRpb24oKSk7DQorfQ0KKw0K
IEBlbmQNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tO
YXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaA0KaW5kZXggMDhjYmY1MDBhNjcuLjg1ZjBk
YjU1YzA1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaA0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaA0KQEAgLTYwLDUgKzYwLDYgQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tTeW50aGV0aWNDbGlja1R5cGUpIHsNCiANCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lzUmVkaXJlY3QgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7DQogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBXS05hdmlnYXRpb24gKl9tYWluRnJhbWVOYXZpZ2F0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7DQorQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBXS05hdmlnYXRpb24gKl9uYXZpZ2F0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7DQogDQogQGVuZA0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25S
ZXNwb25zZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25SZXNwb25zZS5tbQ0KaW5kZXggMGJiMzk0ZjUxYWYuLmVmYjAyOTQ1MzdiIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNl
Lm1tDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
UmVzcG9uc2UubW0NCkBAIC0yNyw2ICsyNyw3IEBADQogI2ltcG9ydCAiV0tOYXZpZ2F0aW9uUmVz
cG9uc2VJbnRlcm5hbC5oIg0KIA0KICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCINCisj
aW1wb3J0ICJXS05hdmlnYXRpb25JbnRlcm5hbC5oIg0KIA0KIEBpbXBsZW1lbnRhdGlvbiBXS05h
dmlnYXRpb25SZXNwb25zZQ0KIA0KQEAgLTc4LDQgKzc5LDkgQEAgLSAoTlNVUkxSZXF1ZXN0ICop
X3JlcXVlc3QNCiAgICAgcmV0dXJuIF9uYXZpZ2F0aW9uUmVzcG9uc2UtPnJlcXVlc3QoKS5uc1VS
TFJlcXVlc3QoV2ViQ29yZTo6SFRUUEJvZHlVcGRhdGVQb2xpY3k6OkRvTm90VXBkYXRlSFRUUEJv
ZHkpOw0KIH0NCiANCistIChXS05hdmlnYXRpb24gKilfbmF2aWdhdGlvbg0KK3sNCisgICAgcmV0
dXJuIHdyYXBwZXIoX25hdmlnYXRpb25SZXNwb25zZS0+bmF2aWdhdGlvbigpKTsNCit9DQorDQog
QGVuZA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb25SZXNwb25zZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaA0KaW5kZXggZjBkZmQzMzk2ZDEuLjI2
MGI4ZDBhMWYzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvblJlc3BvbnNlUHJpdmF0ZS5oDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2VQcml2YXRlLmgNCkBAIC0yOSw1ICsy
OSw2IEBADQogDQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0ZyYW1lSW5mbyAq
X2ZyYW1lOw0KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkxSZXF1ZXN0ICpf
cmVxdWVzdDsNCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLTmF2aWdhdGlvbiAq
X25hdmlnYXRpb247DQogDQogQGVuZA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwDQppbmRleCAzNjJlOTg0MmZlYS4uZTBkZmU0MTVhYjAgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwDQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwDQpAQCAtNDYxNCw3ICs0NjE0LDYgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXMNCiAgICAgaWYgKHNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3Vs
dCA9PSBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQ6OlllcykNCiAgICAgICAgIGJlZ2lu
U2FmZUJyb3dzaW5nQ2hlY2socmVxdWVzdC51cmwoKSwgZnJhbWUuaXNNYWluRnJhbWUoKSwgbGlz
dGVuZXIpOw0KIA0KLSAgICBBUEk6Ok5hdmlnYXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24gPSBm
cmFtZS5pc01haW5GcmFtZSgpID8gbmF2aWdhdGlvbi5nZXQoKSA6IG51bGxwdHI7DQogICAgIFdl
YkZyYW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCk7DQogDQogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpDQpAQCAtNDYzNiw3ICs0NjM1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXMNCiAgICAgICAgIGF1dG8gdXNlckluaXRpYXRlZEFjdGl2aXR5ID0gcHJvY2Vzcy0+dXNlcklu
aXRpYXRlZEFjdGl2aXR5KG5hdmlnYXRpb25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVu
dGlmaWVyKTsNCiAgICAgICAgIGJvb2wgc2hvdWxkT3BlbkFwcExpbmtzID0gIW1fc2hvdWxkU3Vw
cHJlc3NBcHBMaW5rc0luTmV4dE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiAmJiBkZXN0aW5hdGlv
bkZyYW1lSW5mby0+aXNNYWluRnJhbWUoKSAmJiAhaG9zdHNBcmVFcXVhbChVUkwoeyB9LCBtX21h
aW5GcmFtZS0+dXJsKCkpLCByZXF1ZXN0LnVybCgpKSAmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5u
YXZpZ2F0aW9uVHlwZSAhPSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZTo6QmFja0ZvcndhcmQ7DQog
DQotICAgICAgICBhdXRvIG5hdmlnYXRpb25BY3Rpb24gPSBBUEk6Ok5hdmlnYXRpb25BY3Rpb246
OmNyZWF0ZShXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgc291cmNlRnJhbWVJbmZvLmdl
dCgpLCBkZXN0aW5hdGlvbkZyYW1lSW5mby5wdHIoKSwgV1RGOjpudWxsb3B0LCBXVEZNb3ZlKHJl
cXVlc3QpLCBvcmlnaW5hbFJlcXVlc3QudXJsKCksIHNob3VsZE9wZW5BcHBMaW5rcywgV1RGTW92
ZSh1c2VySW5pdGlhdGVkQWN0aXZpdHkpLCBtYWluRnJhbWVOYXZpZ2F0aW9uKTsNCisgICAgICAg
IGF1dG8gbmF2aWdhdGlvbkFjdGlvbiA9IEFQSTo6TmF2aWdhdGlvbkFjdGlvbjo6Y3JlYXRlKFdU
Rk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBzb3VyY2VGcmFtZUluZm8uZ2V0KCksIGRlc3Rp
bmF0aW9uRnJhbWVJbmZvLnB0cigpLCBXVEY6Om51bGxvcHQsIFdURk1vdmUocmVxdWVzdCksIG9y
aWdpbmFsUmVxdWVzdC51cmwoKSwgc2hvdWxkT3BlbkFwcExpbmtzLCBXVEZNb3ZlKHVzZXJJbml0
aWF0ZWRBY3Rpdml0eSksIG5hdmlnYXRpb24uZ2V0KCkpOw0KIA0KICNpZiBIQVZFKExPQURfT1BU
SU1JWkVSKQ0KIFdFQlBBR0VQUk9YWV9MT0FET1BUSU1JWkVSX0FERElUSU9OU18zDQpAQCAtNDc5
Miw3ICs0NzkxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywNCiAgICAgTUVTU0FHRV9DSEVD
S19VUkwocHJvY2VzcywgcmVzcG9uc2UudXJsKCkpOw0KIA0KICAgICBSZWZQdHI8QVBJOjpOYXZp
Z2F0aW9uPiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvbklEID8gbV9uYXZpZ2F0aW9uU3RhdGUtPm5h
dmlnYXRpb24obmF2aWdhdGlvbklEKSA6IG51bGxwdHI7DQotICAgIGF1dG8gbGlzdGVuZXIgPSBt
YWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2
aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksDQorICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtl
UmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2aWdh
dGlvbiwNCiAgICAgICAgIHByb2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKFBvbGljeUFjdGlv
biBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dz
aW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nKSBtdXRhYmxlIHsNCiAgICAgICAgIC8v
IEZJWE1FOiBBc3NlcnQgdGhlIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBpcyBudWxscHRyIGhlcmUg
b25jZSBjbGllbnRzIG9mIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZVdpdGhQb2xpY2llcyBnbyBh
d2F5Lg0KICAgICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7DQpAQCAtNDgwOCw3ICs0ODA3
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywNCiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQ0K
ICAgICAgICAgbV9wb2xpY3lDbGllbnQtPmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKCp0aGlzLCAq
ZnJhbWUsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIFdURk1vdmUobGlzdGVu
ZXIpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgp
KS5nZXQoKSk7DQogICAgIGVsc2Ugew0KLSAgICAgICAgYXV0byBuYXZpZ2F0aW9uUmVzcG9uc2Ug
PSBBUEk6Ok5hdmlnYXRpb25SZXNwb25zZTo6Y3JlYXRlKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUo
KmZyYW1lLCBmcmFtZVNlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpLmdldCgpLCByZXF1
ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBlKTsNCisgICAgICAgIGF1dG8gbmF2aWdhdGlv
blJlc3BvbnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5m
bzo6Y3JlYXRlKCpmcmFtZSwgZnJhbWVTZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbigpKS5n
ZXQoKSwgbmF2aWdhdGlvbi5nZXQoKSwgcmVxdWVzdCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlw
ZSk7DQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25SZXNwb25zZSgqdGhpcywgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKGxp
c3RlbmVyKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCkpOw0KICAgICB9DQogfQ0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZw0KaW5kZXggOTlkYmU1NGRjNWMuLjIzZjE5YTExNmI5IDEwMDY0NA0K
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nDQorKysgYi9Ub29scy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEs
MjYgQEANCisyMDE5LTAzLTI2ICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5j
b20+DQorDQorICAgICAgICBBZGQgU1BJIHRvIGFjY2VzcyB0aGUgV0tOYXZpZ2F0aW9uIGZyb20g
dGhlIG5hdmlnYXRpb24gYWN0aW9uIGFuZCByZXNwb25zZQ0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjI5MQ0KKyAgICAgICAgcmRhcjovL3Byb2Js
ZW0vNDkzMTA2NDgNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0K
KyAgICAgICAgQWRkIHVuaXQgdGVzdHMgZm9yIHRoZSBfbmF2aWdhdGlvbiBwcm9wZXJ0eSBvZiBX
S05hdmlnYXRpb25BY3Rpb24gYW5kIFdLTmF2aWdhdGlvblJlc3BvbnNlLA0KKyAgICAgICAgYm90
aCBmb3IgbWFpbi1mcmFtZSBhbmQgc3ViZnJhbWUgbmF2aWdhdGlvbnMuDQorDQorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbToNCisgICAgICAg
ICgtW05hdmlnYXRpb25BY3Rpb25IYXNOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjpdKToNCisgICAgICAgICgt
W05hdmlnYXRpb25BY3Rpb25IYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlIHdlYlZpZXc6
ZGlkRmluaXNoTmF2aWdhdGlvbjpdKToNCisgICAgICAgICgtW05hdmlnYXRpb25BY3Rpb25IYXNO
YXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6DQorICAgICAgICAoVEVTVCk6DQorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2Uu
bW06DQorICAgICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VIYXNOYXZpZ2F0aW9uRGVsZWdhdGUg
d2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOg0KKyAgICAgICAgKC1bTmF2aWdhdGlvblJl
c3BvbnNlSGFzTmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjpdKToNCisgICAgICAgIChURVNUKToNCisgICAg
ICAgICgtW05hdmlnYXRpb25SZXNwb25zZUhhc05hdmlnYXRpb25JblN1YmZyYW1lRGVsZWdhdGUg
d2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOg0KKyAgICAgICAgKC1bTmF2aWdhdGlvblJl
c3BvbnNlSGFzTmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6XSk6DQorDQogMjAxOS0wMy0y
NiAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+DQogDQogICAgICAgICBVcGRhdGUg
dGhlIHdheSBnZW5lcmF0ZS14Y2ZpbGVsaXN0cyByZXR1cm5zIHN0cmluZ3MgZnJvbSBmdW5jdGlv
bnMNCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05h
dmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmln
YXRpb24ubW0NCmluZGV4IGVhM2FjZTUwNTBiLi4zMDgyMTgyNjE1MiAxMDA2NDQNCi0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbQ0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tDQpAQCAt
MjMzLDYgKzIzMyw3IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpDQogew0KICAgICBFWFBFQ1Rf
VFJVRSghIW5hdmlnYXRpb25BY3Rpb24uX21haW5GcmFtZU5hdmlnYXRpb24pOw0KICAgICBFWFBF
Q1RfRVEobmF2aWdhdGlvbkFjdGlvbi5fbWFpbkZyYW1lTmF2aWdhdGlvbiwgbmF2aWdhdGlvbik7
DQorICAgIEVYUEVDVF9FUShuYXZpZ2F0aW9uQWN0aW9uLl9uYXZpZ2F0aW9uLCBuYXZpZ2F0aW9u
KTsNCiAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsN
CiB9DQogDQpAQCAtMjUyLDYgKzI1Myw1MSBAQCBURVNUKFdLTmF2aWdhdGlvbiwgTmF2aWdhdGlv
bkFjdGlvbkhhc05hdmlnYXRpb24pDQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNE
b25lKTsNCiB9DQogDQorQGludGVyZmFjZSBOYXZpZ2F0aW9uQWN0aW9uSGFzTmF2aWdhdGlvbklu
U3ViZnJhbWVEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4gew0KKyAg
ICBXS05hdmlnYXRpb24gKl9tYWluRnJhbWVOYXZpZ2F0aW9uOw0KKyAgICBib29sIF9oYXNGaW5p
c2hlZEZpcnN0TmF2aWdhdGlvbjsNCit9DQorQGVuZA0KKw0KK0BpbXBsZW1lbnRhdGlvbiBOYXZp
Z2F0aW9uQWN0aW9uSGFzTmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZQ0KKw0KKy0gKHZvaWQp
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihXS05hdmln
YXRpb24gKiluYXZpZ2F0aW9uDQorew0KKyAgICBFWFBFQ1RfRVEoX21haW5GcmFtZU5hdmlnYXRp
b24sIG5pbCk7DQorICAgIF9tYWluRnJhbWVOYXZpZ2F0aW9uID0gbmF2aWdhdGlvbjsNCisgICAg
aXNEb25lID0gdHJ1ZTsNCit9DQorDQorLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAq
KW5hdmlnYXRpb25BY3Rpb24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3kpKWRlY2lzaW9uSGFuZGxlcg0KK3sNCisgICAgaWYgKF9tYWluRnJhbWVOYXZp
Z2F0aW9uKSB7DQorICAgICAgICBFWFBFQ1RfVFJVRSghIW5hdmlnYXRpb25BY3Rpb24uX25hdmln
YXRpb24pOw0KKyAgICAgICAgRVhQRUNUX05FKG5hdmlnYXRpb25BY3Rpb24uX25hdmlnYXRpb24s
IF9tYWluRnJhbWVOYXZpZ2F0aW9uKTsNCisgICAgICAgIEVYUEVDVF9FUShuYXZpZ2F0aW9uQWN0
aW9uLl9tYWluRnJhbWVOYXZpZ2F0aW9uLCBuaWwpOw0KKyAgICAgICAgaXNEb25lID0gdHJ1ZTsN
CisgICAgfQ0KKw0KKyAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
QWxsb3cpOw0KK30NCisNCitAZW5kDQorDQorVEVTVChXS05hdmlnYXRpb24sIE5hdmlnYXRpb25B
Y3Rpb25IYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZSkNCit7DQorICAgIFJldGFpblB0cjxXS1dlYlZp
ZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7DQorDQorICAgIFJldGFpblB0cjxOYXZpZ2F0aW9u
QWN0aW9uSGFzTmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbTmF2aWdhdGlvbkFjdGlvbkhhc05hdmlnYXRpb25JblN1YmZyYW1lRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsNCisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsNCisNCisgICAgaXNEb25lID0gZmFsc2U7DQorICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3Ry
aW5nOkAiPGlmcmFtZSBuYW1lPSdzdWJmcmFtZSc+PC9pZnJhbWU+PGEgaHJlZj0nZGF0YTp0ZXh0
L2h0bWwsYScgdGFyZ2V0PSdzdWJmcmFtZScgaWQ9J2xpbmsnPkNsaWNrIE1lITwvYT4iIGJhc2VV
Ukw6bmlsXTsNCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOw0KKw0KKyAg
ICBpc0RvbmUgPSBmYWxzZTsNCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpbmsnKS5jbGljaygpOyIgY29tcGxldGlvbkhhbmRsZXI6
bmlsXTsNCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOw0KK30NCisNCiBA
aW50ZXJmYWNlIENsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3Q8V0tO
YXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPg0KIEBlbmQNCiANCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25SZXNwb25z
ZS5tbQ0KaW5kZXggMzA5NDJlNzljMjQuLjdmNmI4MzgxOTQwIDEwMDY0NA0KLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbQ0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25S
ZXNwb25zZS5tbQ0KQEAgLTI2LDYgKzI2LDcgQEANCiAjaW1wb3J0ICJjb25maWcuaCINCiANCiAj
aW1wb3J0ICJVdGlsaXRpZXMuaCINCisjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uUmVzcG9u
c2VQcml2YXRlLmg+DQogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+DQog
I2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPg0KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4NCkBA
IC0xNDIsMyArMTQzLDgyIEBAIFRFU1QoV2ViS2l0LCBXS05hdmlnYXRpb25SZXNwb25zZVBERlR5
cGUpDQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6dGVzdFVSTF1dOw0KICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7DQog
fQ0KKw0KK0BpbnRlcmZhY2UgTmF2aWdhdGlvblJlc3BvbnNlSGFzTmF2aWdhdGlvbkRlbGVnYXRl
IDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiB7DQorQHB1YmxpYw0KKyAgICBXS05h
dmlnYXRpb24gKm5hdmlnYXRpb247DQorfQ0KK0BlbmQNCisNCitAaW1wbGVtZW50YXRpb24gTmF2
aWdhdGlvblJlc3BvbnNlSGFzTmF2aWdhdGlvbkRlbGVnYXRlDQorDQorLSAodm9pZCl3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAq
KW5hdmlnYXRpb24NCit7DQorICAgIGlzRG9uZSA9IHRydWU7DQorfQ0KKw0KKy0gKHZvaWQpd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9u
c2U6KFdLTmF2aWdhdGlvblJlc3BvbnNlICopbmF2aWdhdGlvblJlc3BvbnNlIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpKWRlY2lzaW9uSGFuZGxl
cg0KK3sNCisgICAgRVhQRUNUX1RSVUUoISFuYXZpZ2F0aW9uUmVzcG9uc2UuX25hdmlnYXRpb24p
Ow0KKyAgICBFWFBFQ1RfRVEobmF2aWdhdGlvblJlc3BvbnNlLl9uYXZpZ2F0aW9uLCBuYXZpZ2F0
aW9uKTsNCisgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QWxs
b3cpOw0KK30NCisNCitAZW5kDQorDQorVEVTVChXZWJLaXQsIE5hdmlnYXRpb25SZXNwb25zZUhh
c05hdmlnYXRpb24pDQorew0KKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKV0pOw0KKw0KKyAgICBSZXRhaW5QdHI8TmF2aWdhdGlvblJlc3BvbnNlSGFzTmF2aWdh
dGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tOYXZpZ2F0aW9uUmVzcG9uc2VIYXNO
YXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsNCisgICAgW3dlYlZpZXcgc2V0TmF2aWdh
dGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsNCisNCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
ImRhdGE6dGV4dC9odG1sLDEiXV07DQorDQorICAgIGlzRG9uZSA9IGZhbHNlOw0KKyAgICBkZWxl
Z2F0ZS0+bmF2aWdhdGlvbiA9IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOw0KKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7DQorfQ0KKw0KK0BpbnRlcmZhY2UgTmF2
aWdhdGlvblJlc3BvbnNlSGFzTmF2aWdhdGlvbkluU3ViZnJhbWVEZWxlZ2F0ZSA6IE5TT2JqZWN0
IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4gew0KKyAgICBXS05hdmlnYXRpb24gKl9tYWluRnJhbWVO
YXZpZ2F0aW9uOw0KK30NCitAZW5kDQorDQorQGltcGxlbWVudGF0aW9uIE5hdmlnYXRpb25SZXNw
b25zZUhhc05hdmlnYXRpb25JblN1YmZyYW1lRGVsZWdhdGUNCisNCistICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICop
bmF2aWdhdGlvbg0KK3sNCisgICAgRVhQRUNUX0VRKF9tYWluRnJhbWVOYXZpZ2F0aW9uLCBuaWwp
Ow0KKyAgICBfbWFpbkZyYW1lTmF2aWdhdGlvbiA9IG5hdmlnYXRpb247DQorICAgIGlzRG9uZSA9
IHRydWU7DQorfQ0KKw0KKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6KFdLTmF2aWdhdGlvblJlc3BvbnNlICopbmF2
aWdhdGlvblJlc3BvbnNlIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kpKWRlY2lzaW9uSGFuZGxlcg0KK3sNCisgICAgaWYgKF9tYWluRnJhbWVOYXZp
Z2F0aW9uKSB7DQorICAgICAgICBFWFBFQ1RfVFJVRSghIW5hdmlnYXRpb25SZXNwb25zZS5fbmF2
aWdhdGlvbik7DQorICAgICAgICBFWFBFQ1RfTkUobmF2aWdhdGlvblJlc3BvbnNlLl9uYXZpZ2F0
aW9uLCBfbWFpbkZyYW1lTmF2aWdhdGlvbik7DQorICAgICAgICBpc0RvbmUgPSB0cnVlOw0KKyAg
ICB9DQorDQorICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFs
bG93KTsNCit9DQorDQorQGVuZA0KKw0KK1RFU1QoV2ViS2l0LCBOYXZpZ2F0aW9uUmVzcG9uc2VI
YXNOYXZpZ2F0aW9uSW5TdWJmcmFtZSkNCit7DQorICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdl
YlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApXSk7DQorDQorICAgIFJldGFpblB0cjxOYXZpZ2F0aW9uUmVzcG9u
c2VIYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tO
YXZpZ2F0aW9uUmVzcG9uc2VIYXNOYXZpZ2F0aW9uSW5TdWJmcmFtZURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7DQorICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07DQorDQorICAgIGlzRG9uZSA9IGZhbHNlOw0KKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmlu
ZzpAIjxpZnJhbWUgbmFtZT0nc3ViZnJhbWUnPjwvaWZyYW1lPjxhIGhyZWY9J2RhdGE6dGV4dC9o
dG1sLGEnIHRhcmdldD0nc3ViZnJhbWUnIGlkPSdsaW5rJz5DbGljayBNZSE8L2E+IiBiYXNlVVJM
Om5pbF07DQorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsNCisNCisgICAg
aXNEb25lID0gZmFsc2U7DQorICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdsaW5rJykuY2xpY2soKTsiIGNvbXBsZXRpb25IYW5kbGVyOm5p
bF07DQorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsNCit9DQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>