<?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>39881</bug_id>
          
          <creation_ts>2010-05-28 09:33:01 -0700</creation_ts>
          <short_desc>AX: need to catch NSAccessibilityExceptions in DRT</short_desc>
          <delta_ts>2010-05-28 13:58:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>abarth</cc>
    
    <cc>bdakin</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231748</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-05-28 09:33:01 -0700</bug_when>
    <thetext>We need to catch NSAccessibilityExceptions in DRT. Normally these are caught in the AX Runtime on the mac, but because DRT is its own AX client, no one is there to catch these otherwise innocuous exceptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231775</commentid>
    <comment_count>1</comment_count>
      <attachid>57341</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-05-28 10:30:27 -0700</bug_when>
    <thetext>Created attachment 57341
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231781</commentid>
    <comment_count>2</comment_count>
      <attachid>57341</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-28 10:37:37 -0700</bug_when>
    <thetext>Comment on attachment 57341
patch

Don&apos;t we want to give the test access to the exception? Won&apos;t we want tests that expect exceptions and other tests that don&apos;t expect them? Maybe we can turn the exceptions into JavaScript exceptions?

r=me as is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231783</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-05-28 10:41:30 -0700</bug_when>
    <thetext>filed
https://bugs.webkit.org/show_bug.cgi?id=39885

to handle darin&apos;s request. 

as of yet, no layout tests need to know about these exceptions, but its possible in the future</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231785</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-05-28 10:45:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/60366</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231831</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-05-28 11:44:34 -0700</bug_when>
    <thetext>apparently tiger doesn&apos;t like having a NSMakeRange in a @try block. working on fix now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231834</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-05-28 11:46:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/60372</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231841</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-28 11:47:42 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/60366 might have broken Tiger Intel Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/60368
http://trac.webkit.org/changeset/60369
http://trac.webkit.org/changeset/60370
http://trac.webkit.org/changeset/60366
http://trac.webkit.org/changeset/60367</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231922</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-28 13:58:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/60372 might have broken GTK Linux 32-bit Debug
The following changes are on the blame list:
http://trac.webkit.org/changeset/60371
http://trac.webkit.org/changeset/60372
http://trac.webkit.org/changeset/60373</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57341</attachid>
            <date>2010-05-28 10:30:27 -0700</date>
            <delta_ts>2010-05-28 10:37:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>32259</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYwMzY0KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsODQgQEAKKzIwMTAtMDUtMjggIENocmlzIEZsZWl6YWNoICA8
Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBWDogbmVlZCB0byBjYXRjaCBOU0FjY2Vzc2liaWxpdHlFeGNlcHRpb25z
IGluIERSVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzk4ODEKKworICAgICAgICBOb3JtYWxseSwgYWNjZXNzaWJpbGl0eSBleGNlcHRpb25zIGFyZSBj
YXVnaHQgaW4gdGhlIEFYIFJ1bnRpbWUgb24gdGhlIE1hYywgYnV0IAorICAgICAgICBiZWNhdXNl
IERSVCBpcyBpdHMgb3duIEFYIGNsaWVudCwgbm8gb25lIGlzIHRoZXJlIHRvIGNhdGNoIHRoZXNl
IG90aGVyd2lzZSBpbm5vY3VvdXMgZXhjZXB0aW9ucy4KKyAgCisgICAgICAgIFNvIERSVCBzaG91
bGQgd3JhcCBleGNlcHRpb24gaGFuZGxlcnMgYXJvdW5kIGl0cyBBWCByZWxhdGVkIGNhbGxzLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW06CisgICAgICAgIChhdHRyaWJ1dGVzT2ZFbGVtZW50KToKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmdldExpbmtlZFVJRWxlbWVudHMpOgorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Z2V0RG9jdW1lbnRMaW5rcyk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpnZXRDaGlsZHJlbik6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpn
ZXRDaGlsZHJlbldpdGhSYW5nZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
cmlhT3duc0VsZW1lbnRBdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdGVkUm93QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0aXRsZVVJRWxlbWVudCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJl
bnRFbGVtZW50KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5
Um93KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZh
bHVlKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRyaWJ1dGVWYWx1
ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxl
KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU3VwcG9ydGVk
KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGUpOgorICAgICAgICAoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vicm9sZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpyb2xlRGVzY3JpcHRpb24pOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6dGl0bGUpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVzY3JpcHRpb24p
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6b3JpZW50YXRpb24pOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nVmFsdWUpOgorICAgICAgICAoQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6bGFuZ3VhZ2UpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aGVscFRleHQpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eCk6Cisg
ICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KToKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OndpZHRoKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhl
aWdodCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCk6Cisg
ICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WSk6CisgICAgICAgIChB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjptaW5WYWx1ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpt
YXhWYWx1ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2YWx1ZURlc2NyaXB0
aW9uKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omluc2VydGlvblBvaW50TGlu
ZU51bWJlcik6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0FjdGlvblN1cHBv
cnRlZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWQpOgorICAg
ICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNSZXF1aXJlZCk6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzRXhwYW5kZWQpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aGllcmFyY2hpY2FsTGV2ZWwpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJp
YUlzR3JhYmJlZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRHJvcEVm
ZmVjdHMpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUZvckluZGV4KToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5kc0ZvclJhbmdlKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMpOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93SGVhZGVycyk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5zKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlJvd3MpOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mVmlzaWJsZUNlbGxzKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkhlYWRlcik6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dDb3VudCk6CisgICAgICAgIChBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojpjb2x1bW5Db3VudCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjppbmRleEluVGFibGUpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93
SW5kZXhSYW5nZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5JbmRl
eFJhbmdlKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5B
bmRSb3cpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFu
Z2UpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFu
Z2UpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5jcmVtZW50KToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudCk6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzaG93TWVudSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpwcmVzcyk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1cmwpOgorICAg
ICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXApOgorCiAyMDEwLTA1LTI4ICBZ
YWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBMYXN6bG8gR29tYm9zLgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHJldmlzaW9uIDYw
MzY0KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDEyIEBACiAjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlIEAiQVhEcm9wRWZmZWN0cyIKICNlbmRp
ZgogCisvLyBJZiBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgaXMgcGFzc2VkIGluLCBpdCB3aWxs
IHJhaXNlIGFuIGFjY2Vzc2liaWxpdHkgZXhjZXB0aW9uLiBUaGVzZSBhcmUgdXN1YWxseSBjYXVn
aHQgYnkgdGhlIEFjY2Vzc2liaWxpdHkgUnVudGltZSB0byBpbmZvcm0KKy8vIHRoZSBBWCBjbGll
bnQgYXBwIG9mIHRoZSBlcnJvci4gSG93ZXZlciwgRFJUIGlzIHRoZSBBWCBjbGllbnQgYXBwLCBz
byBpdCBtdXN0IGNhdGNoIHRoZXNlIGV4Y2VwdGlvbnMuCisjZGVmaW5lIEJFR0lOX0FYX09CSkNf
RVhDRVBUSU9OUyBAdHJ5IHsKKyNkZWZpbmUgRU5EX0FYX09CSkNfRVhDRVBUSU9OUyB9IEBjYXRj
aChOU0V4Y2VwdGlvbiAqZSkgeyBpZiAoIVtbZSBuYW1lXSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nl
c3NpYmlsaXR5RXhjZXB0aW9uXSkgQHRocm93OyB9CisKKwogdHlwZWRlZiB2b2lkICgqQVhQb3N0
ZWROb3RpZmljYXRpb25DYWxsYmFjaykoaWQgZWxlbWVudCwgTlNTdHJpbmcqIG5vdGlmaWNhdGlv
biwgdm9pZCogY29udGV4dCk7CiAKIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYktpdEFjY2Vzc2li
aWxpdHlBZGRpdGlvbnMpCkBAIC0yMjQsMTEgKzIzMCwxMSBAQCBzdGF0aWMgTlNTdHJpbmcqIGF0
dHJpYnV0ZXNPZkVsZW1lbnQoaWQgCiAgICAgICAgIAogICAgICAgICAvLyBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6IGNhbiB0aHJvdyBhbiBpZiBhbiBhdHRyaWJ1dGUgaXMgbm90IHJldHVy
bmVkLgogICAgICAgICAvLyBGb3IgRHVtcFJlbmRlclRyZWUncyBwdXJwb3NlLCB3ZSBzaG91bGQg
aWdub3JlIHRob3NlIGV4Y2VwdGlvbnMKLSAgICAgICAgQHRyeSB7Ci0gICAgICAgICAgICBpZCB2
YWx1ZU9iamVjdCA9IFthY2Nlc3NpYmlsaXR5T2JqZWN0IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVW
YWx1ZTphdHRyaWJ1dGVdOwotICAgICAgICAgICAgTlNTdHJpbmcqIHZhbHVlID0gZGVzY3JpcHRp
b25PZlZhbHVlKHZhbHVlT2JqZWN0LCBhY2Nlc3NpYmlsaXR5T2JqZWN0KTsKLSAgICAgICAgICAg
IFthdHRyaWJ1dGVzU3RyaW5nIGFwcGVuZEZvcm1hdDpAIiVAOiAlQFxuIiwgYXR0cmlidXRlLCB2
YWx1ZV07Ci0gICAgICAgIH0gQGNhdGNoIChOU0V4Y2VwdGlvbiogZSkgeyB9CisgICAgICAgIEJF
R0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgICAgICBpZCB2YWx1ZU9iamVjdCA9IFthY2Nlc3Np
YmlsaXR5T2JqZWN0IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVdOworICAg
ICAgICBOU1N0cmluZyogdmFsdWUgPSBkZXNjcmlwdGlvbk9mVmFsdWUodmFsdWVPYmplY3QsIGFj
Y2Vzc2liaWxpdHlPYmplY3QpOworICAgICAgICBbYXR0cmlidXRlc1N0cmluZyBhcHBlbmRGb3Jt
YXQ6QCIlQDogJUBcbiIsIGF0dHJpYnV0ZSwgdmFsdWVdOworICAgICAgICBFTkRfQVhfT0JKQ19F
WENFUFRJT05TCiAgICAgfQogICAgIAogICAgIHJldHVybiBhdHRyaWJ1dGVzU3RyaW5nOwpAQCAt
MjY5LDI2ICsyNzUsMzQgQEAgc3RhdGljIEpTU3RyaW5nUmVmIGRlc2NyaXB0aW9uT2ZFbGVtZW50
cwogCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldExpbmtlZFVJRWxlbWVudHMoVmVj
dG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50VmVjdG9yKQogeworICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwogICAgIE5TQXJyYXkqIGxpbmtlZEVsZW1lbnRzID0gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5TGlua2VkVUlF
bGVtZW50c0F0dHJpYnV0ZV07CiAgICAgY29udmVydE5TQXJyYXlUb1ZlY3RvcihsaW5rZWRFbGVt
ZW50cywgZWxlbWVudFZlY3Rvcik7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogfQogCiB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldERvY3VtZW50TGlua3MoVmVjdG9yPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50VmVjdG9yKQogeworICAgIEJFR0lOX0FYX09CSkNf
RVhDRVBUSU9OUwogICAgIE5TQXJyYXkqIGxpbmtFbGVtZW50cyA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhMaW5rVUlFbGVtZW50cyJdOwogICAgIGNvbnZlcnRO
U0FycmF5VG9WZWN0b3IobGlua0VsZW1lbnRzLCBlbGVtZW50VmVjdG9yKTsKKyAgICBFTkRfQVhf
T0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hp
bGRyZW4oVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50VmVjdG9yKQogewor
ICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIE5TQXJyYXkqIGNoaWxkcmVuID0gW21f
ZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5BdHRyaWJ1dGVdOwogICAgIGNvbnZlcnROU0FycmF5VG9WZWN0b3IoY2hpbGRyZW4sIGVsZW1l
bnRWZWN0b3IpOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbldpdGhSYW5nZShWZWN0b3I8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4mIGVsZW1lbnRWZWN0b3IsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBs
ZW5ndGgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNBcnJheSogY2hp
bGRyZW4gPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZVZhbHVlczpOU0Fj
Y2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSBpbmRleDpsb2NhdGlvbiBtYXhDb3VudDpsZW5n
dGhdOwogICAgIGNvbnZlcnROU0FycmF5VG9WZWN0b3IoY2hpbGRyZW4sIGVsZW1lbnRWZWN0b3Ip
OworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KIAogaW50IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNoaWxkcmVuQ291bnQoKQpAQCAtMzI1LDYzICszMzksNzcgQEAgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbAogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5k
ZXgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNBcnJheSogb2JqZWN0
cyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0
eU93bnNBdHRyaWJ1dGVdOwogICAgIGlmIChpbmRleCA8IFtvYmplY3RzIGNvdW50XSkKICAgICAg
ICAgcmV0dXJuIFtvYmplY3RzIG9iamVjdEF0SW5kZXg6aW5kZXhdOworICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKICAgICAKICAgICByZXR1cm4gMDsKIH0KIAogQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNBcnJh
eSogb2JqZWN0cyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNj
ZXNzaWJpbGl0eUxpbmtlZFVJRWxlbWVudHNBdHRyaWJ1dGVdOwogICAgIGlmIChpbmRleCA8IFtv
YmplY3RzIGNvdW50XSkKICAgICAgICAgcmV0dXJuIFtvYmplY3RzIG9iamVjdEF0SW5kZXg6aW5k
ZXhdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKICAgICByZXR1cm4gMDsKIH0K
IAogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9z
ZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogeworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBU
SU9OUwogICAgIE5TQXJyYXkqIHJvd3MgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlEaXNjbG9zZWRSb3dzQXR0cmlidXRlXTsKICAgICBpZiAo
aW5kZXggPCBbcm93cyBjb3VudF0pCiAgICAgICAgIHJldHVybiBbcm93cyBvYmplY3RBdEluZGV4
OmluZGV4XTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gMDsKIH0K
IAogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3Rl
ZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCiAgICAgTlNBcnJheSogcm93cyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkUm93c0F0dHJpYnV0ZV07CiAgICAgaWYgKGlu
ZGV4IDwgW3Jvd3MgY291bnRdKQogICAgICAgICByZXR1cm4gW3Jvd3Mgb2JqZWN0QXRJbmRleDpp
bmRleF07CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIAogICAgIHJldHVybiAwOwog
fQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxl
VUlFbGVtZW50KCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCBhY2Nl
c3NpYmlsaXR5T2JqZWN0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgIGlmIChhY2Nlc3Np
YmlsaXR5T2JqZWN0KQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudChhY2Nl
c3NpYmlsaXR5T2JqZWN0KTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAgCiAgICAg
cmV0dXJuIDA7CiB9CiAKIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cGFyZW50RWxlbWVudCgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAg
ICAgaWQgYWNjZXNzaWJpbGl0eU9iamVjdCA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJp
YnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZV07CiAgICAgaWYgKGFjY2Vz
c2liaWxpdHlPYmplY3QpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGFj
Y2Vzc2liaWxpdHlPYmplY3QpOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKICAg
ICByZXR1cm4gMDsKIH0KIAogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpkaXNjbG9zZWRCeVJvdygpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05T
CiAgICAgaWQgYWNjZXNzaWJpbGl0eU9iamVjdCA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0
dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eURpc2Nsb3NlZEJ5Um93QXR0cmlidXRlXTsKICAg
ICBpZiAoYWNjZXNzaWJpbGl0eU9iamVjdCkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQoYWNjZXNzaWJpbGl0eU9iamVjdCk7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9O
UwogICAgIAogICAgIHJldHVybiAwOwogfQpAQCAtNDE1LDI5ICs0NDMsNDIgQEAgSlNTdHJpbmdS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxsQQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUp
CiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgaWQgdmFsdWUgPSBbbV9lbGVt
ZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3Ry
aW5nUmVmOmF0dHJpYnV0ZV1dOwotICAgIGlmICghW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3Ry
aW5nIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBbdmFsdWUgY3Jl
YXRlSlNTdHJpbmdSZWZdOworICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcg
Y2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIFt2YWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl07CisgICAg
RU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIDA7CiB9CiAKIGJvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Ym9vbEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0
ZSkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCB2YWx1ZSA9IFttX2Vs
ZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOltOU1N0cmluZyBzdHJpbmdXaXRoSlNT
dHJpbmdSZWY6YXR0cmlidXRlXV07Ci0gICAgaWYgKCFbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNO
dW1iZXIgY2xhc3NdXSkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKFt2YWx1ZSBpc0tp
bmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKQorICAgICAgICByZXR1cm4gW3ZhbHVlIGJvb2xW
YWx1ZV07CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIAotICAgIHJldHVybiBbdmFs
dWUgYm9vbFZhbHVlXTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCiB7
CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUlzQXR0cmlidXRlU2V0dGFibGU6W05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0cmlu
Z1JlZjphdHRyaWJ1dGVdXTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgCisgICAg
cmV0dXJuIGZhbHNlOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKIHsKKyAgICBCRUdJTl9BWF9PQkpD
X0VYQ0VQVElPTlMKICAgICByZXR1cm4gW1ttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZU5hbWVzXSBjb250YWluc09iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmF0
dHJpYnV0ZV1dOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICAKKyAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRl
cml6ZWRBdHRyaWJ1dGVOYW1lcygpCkBAIC00NTQsMTY5ICs0OTUsMjYwIEBAIEpTU3RyaW5nUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmEKIAogSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cm9sZSgpCiB7Ci0gICAgTlNTdHJpbmcqIHJvbGUgPSBkZXNjcmlwdGlvbk9m
VmFsdWUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmls
aXR5Um9sZUF0dHJpYnV0ZV0sIG1fZWxlbWVudCk7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCisgICAgTlNTdHJpbmcgKnJvbGUgPSBkZXNjcmlwdGlvbk9mVmFsdWUoW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0ZV0s
IG1fZWxlbWVudCk7CiAgICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJB
WFJvbGUiLCByb2xlKTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgCisgICAgcmV0
dXJuIDA7CiB9CiAKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1YnJvbGUo
KQogeworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIE5TU3RyaW5nKiByb2xlID0g
ZGVzY3JpcHRpb25PZlZhbHVlKFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
Ok5TQWNjZXNzaWJpbGl0eVN1YnJvbGVBdHRyaWJ1dGVdLCBtX2VsZW1lbnQpOwogICAgIHJldHVy
biBjb25jYXRlbmF0ZUF0dHJpYnV0ZUFuZFZhbHVlKEAiQVhTdWJyb2xlIiwgcm9sZSk7CisgICAg
RU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIDA7CiB9CiAKIEpTU3RyaW5nUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGVEZXNjcmlwdGlvbigpCiB7CisgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNTdHJpbmcqIHJvbGUgPSBkZXNjcmlwdGlvbk9mVmFs
dWUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5
Um9sZURlc2NyaXB0aW9uQXR0cmlidXRlXSwgbV9lbGVtZW50KTsKICAgICByZXR1cm4gY29uY2F0
ZW5hdGVBdHRyaWJ1dGVBbmRWYWx1ZShAIkFYUm9sZURlc2NyaXB0aW9uIiwgcm9sZSk7CisgICAg
RU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiAwOwogfQogCiBKU1N0cmlu
Z1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZSgpCiB7CisgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCiAgICAgTlNTdHJpbmcqIHRpdGxlID0gZGVzY3JpcHRpb25PZlZhbHVlKFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVRpdGxl
QXR0cmlidXRlXSwgbV9lbGVtZW50KTsKICAgICByZXR1cm4gY29uY2F0ZW5hdGVBdHRyaWJ1dGVB
bmRWYWx1ZShAIkFYVGl0bGUiLCB0aXRsZSk7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwor
CisgICAgcmV0dXJuIDA7CiB9CiAKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmRlc2NyaXB0aW9uKCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCBk
ZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uT2ZWYWx1ZShbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV0sIG1fZWxl
bWVudCk7CiAgICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWERlc2Ny
aXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKworICAg
IHJldHVybiAwOwogfQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpvcmll
bnRhdGlvbigpIGNvbnN0CiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgaWQg
ZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbk9mVmFsdWUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdLCBtX2Vs
ZW1lbnQpOwogICAgIHJldHVybiBjb25jYXRlbmF0ZUF0dHJpYnV0ZUFuZFZhbHVlKEAiQVhPcmll
bnRhdGlvbiIsIGRlc2NyaXB0aW9uKTsgICAgCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwor
CisgICAgcmV0dXJuIDA7CiB9CiAKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0cmluZ1ZhbHVlKCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCBk
ZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uT2ZWYWx1ZShbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlWYWx1ZUF0dHJpYnV0ZV0sIG1fZWxlbWVudCk7
CiAgICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWFZhbHVlIiwgZGVz
Y3JpcHRpb24pOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKworICAgIHJldHVybiAwOwog
fQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsYW5ndWFnZSgpCiB7Cisg
ICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgaWQgZGVzY3JpcHRpb24gPSBkZXNjcmlw
dGlvbk9mVmFsdWUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWExh
bmd1YWdlIl0sIG1fZWxlbWVudCk7CiAgICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRlQW5k
VmFsdWUoQCJBWExhbmd1YWdlIiwgZGVzY3JpcHRpb24pOworICAgIEVORF9BWF9PQkpDX0VYQ0VQ
VElPTlMKKworICAgIHJldHVybiAwOwogfQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpoZWxwVGV4dCgpIGNvbnN0CiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05T
CiAgICAgaWQgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbk9mVmFsdWUoW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5SGVscEF0dHJpYnV0ZV0sIG1f
ZWxlbWVudCk7CiAgICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEhl
bHAiLCBkZXNjcmlwdGlvbik7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAorICAg
IHJldHVybiAwOwogfQogCiBkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eCgpCiB7Cisg
ICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNWYWx1ZSogcG9zaXRpb25WYWx1ZSA9
IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVBv
c2l0aW9uQXR0cmlidXRlXTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihbcG9zaXRp
b25WYWx1ZSBwb2ludFZhbHVlXS54KTsgICAgCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwor
ICAgIAorICAgIHJldHVybiAwLjBmOwogfQogCiBkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6eSgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNWYWx1ZSogcG9z
aXRpb25WYWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNj
ZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91
YmxlPihbcG9zaXRpb25WYWx1ZSBwb2ludFZhbHVlXS55KTsgICAgCisgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiAwLjBmOwogfQogCiBkb3VibGUgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6d2lkdGgoKQogeworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwog
ICAgIE5TVmFsdWUqIHNpemVWYWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNpemVBdHRyaWJ1dGVdOwogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxkb3VibGU+KFtzaXplVmFsdWUgc2l6ZVZhbHVlXS53aWR0aCk7CisgICAgRU5EX0FYX09C
SkNfRVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiAwLjBmOwogfQogCiBkb3VibGUgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElP
TlMKICAgICBOU1ZhbHVlKiBzaXplVmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTaXplQXR0cmlidXRlXTsKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8ZG91YmxlPihbc2l6ZVZhbHVlIHNpemVWYWx1ZV0uaGVpZ2h0KTsKKyAgICBFTkRf
QVhfT0JKQ19FWENFUFRJT05TCisgICAgCisgICAgcmV0dXJuIDAuMGY7CiB9CiAKIGRvdWJsZSBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCiB7CisgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCiAgICAgTlNWYWx1ZSogcG9zaXRpb25WYWx1ZSA9IFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhDbGlja1BvaW50Il07CiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGRvdWJsZT4oW3Bvc2l0aW9uVmFsdWUgcG9pbnRWYWx1ZV0ueCk7ICAgICAgICAK
KyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgCisgICAgcmV0dXJuIDAuMGY7CiB9CiAK
IGRvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WSgpCiB7CisgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNWYWx1ZSogcG9zaXRpb25WYWx1ZSA9IFttX2Vs
ZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhDbGlja1BvaW50Il07CiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oW3Bvc2l0aW9uVmFsdWUgcG9pbnRWYWx1ZV0ueSk7
CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiAwLjBmOwogfQog
CiBkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW50VmFsdWUoKSBjb25zdAogeworICAg
IEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5VmFsdWVBdHRyaWJ1dGVdOwog
ICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkKICAgICAgICAg
cmV0dXJuIFsoTlNOdW1iZXIqKXZhbHVlIGRvdWJsZVZhbHVlXTsgCisgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUworCiAgICAgcmV0dXJuIDAuMGY7CiB9CiAKIGRvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjptaW5WYWx1ZSgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAg
ICAgaWQgdmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0Fj
Y2Vzc2liaWxpdHlNaW5WYWx1ZUF0dHJpYnV0ZV07CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNs
YXNzOltOU051bWJlciBjbGFzc11dKQogICAgICAgICByZXR1cm4gWyhOU051bWJlciopdmFsdWUg
ZG91YmxlVmFsdWVdOyAKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisKICAgICByZXR1cm4g
MC4wZjsKIH0KIAogZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKCkKIHsK
KyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eU1heFZhbHVlQXR0cmli
dXRlXTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pCiAg
ICAgICAgIHJldHVybiBbKE5TTnVtYmVyKil2YWx1ZSBkb3VibGVWYWx1ZV07IAorICAgIEVORF9B
WF9PQkpDX0VYQ0VQVElPTlMKKwogICAgIHJldHVybiAwLjA7CiB9CiAKIEpTU3RyaW5nUmVmIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24oKQogeworICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUwogICAgIE5TU3RyaW5nKiB2YWx1ZURlc2NyaXB0aW9uID0gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5VmFsdWVEZXNj
cmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgaWYgKFt2YWx1ZURlc2NyaXB0aW9uIGlzS2luZE9mQ2xh
c3M6W05TU3RyaW5nIGNsYXNzXV0pCiAgICAgICAgICByZXR1cm4gW3ZhbHVlRGVzY3JpcHRpb24g
Y3JlYXRlSlNTdHJpbmdSZWZdOworCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIHJl
dHVybiAwOwogfQogCiBpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5zZXJ0aW9uUG9pbnRM
aW5lTnVtYmVyKCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCB2YWx1
ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0
eUluc2VydGlvblBvaW50TGluZU51bWJlckF0dHJpYnV0ZV07CiAgICAgaWYgKFt2YWx1ZSBpc0tp
bmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKQogICAgICAgICByZXR1cm4gWyhOU051bWJlciAq
KXZhbHVlIGludFZhbHVlXTsgCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAogICAg
IHJldHVybiAtMTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0FjdGlvblN1
cHBvcnRlZChKU1N0cmluZ1JlZiBhY3Rpb24pCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCiAgICAgTlNBcnJheSogYWN0aW9ucyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUFjdGlv
bk5hbWVzXTsKICAgICByZXR1cm4gW2FjdGlvbnMgY29udGFpbnNPYmplY3Q6W05TU3RyaW5nIHN0
cmluZ1dpdGhKU1N0cmluZ1JlZjphY3Rpb25dXTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05T
CisgICAgCisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzRW5hYmxlZCgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgaWQg
dmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2li
aWxpdHlFbmFibGVkQXR0cmlidXRlXTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
TnVtYmVyIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBbdmFsdWUgYm9vbFZhbHVlXTsKKyAgICBF
TkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAogeworICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwogICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6QCJBWFJlcXVpcmVkIl07CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU051bWJlciBjbGFzc11dKQogICAgICAgICByZXR1cm4gW3ZhbHVlIGJvb2xWYWx1
ZV07CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkKCkgY29uc3QKIHsK
KyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQXR0cmli
dXRlXTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pCiAg
ICAgICAgIHJldHVybiBbdmFsdWUgYm9vbFZhbHVlXTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJ
T05TCisgICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzRXhwYW5kZWQoKSBjb25zdAogeworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9O
UwogICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
TlNBY2Nlc3NpYmlsaXR5RXhwYW5kZWRBdHRyaWJ1dGVdOwogICAgIGlmIChbdmFsdWUgaXNLaW5k
T2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFt2YWx1ZSBib29sVmFs
dWVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICAKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKQEAgLTYyOCwyMiArNzYwLDI5IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNDaGVja2VkKCkKIAogaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExl
dmVsKCkgY29uc3QKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCB2YWx1
ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0
eURpc2Nsb3N1cmVMZXZlbEF0dHJpYnV0ZV07CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNz
OltOU051bWJlciBjbGFzc11dKQogICAgICAgICByZXR1cm4gW3ZhbHVlIGludFZhbHVlXTsKKyAg
ICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisKICAgICByZXR1cm4gMDsKIH0KIAogYm9vbCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29uc3QKIHsKKyAgICBCRUdJTl9B
WF9PQkpDX0VYQ0VQVElPTlMKICAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdOwogICAgIGlm
IChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJu
IFt2YWx1ZSBib29sVmFsdWVdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKwogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAogSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJp
YURyb3BFZmZlY3RzKCkgY29uc3QKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAg
ICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNj
ZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXTsKICAgICBpZiAoIVt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiAwOwpAQCAtNjU3LDIwICs3
OTYsMjcgQEAgSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYQogICAgIH0K
ICAgICAKICAgICByZXR1cm4gW2Ryb3BFZmZlY3RzIGNyZWF0ZUpTU3RyaW5nUmVmXTsKKyAgICBF
TkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgCisgICAgcmV0dXJuIDA7CiB9CiAKIC8vIHBhcmFt
ZXRlcml6ZWQgYXR0cmlidXRlcwogaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJ
bmRleChpbnQgaW5kZXgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgaWQg
dmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2li
aWxpdHlMaW5lRm9ySW5kZXhQYXJhbWV0ZXJpemVkQXR0cmlidXRlIGZvclBhcmFtZXRlcjpbTlNO
dW1iZXIgbnVtYmVyV2l0aEludDppbmRleF1dOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNOdW1iZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFsoTlNOdW1iZXIgKil2YWx1ZSBp
bnRWYWx1ZV07IAorICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKwogICAgIHJldHVybiAtMTsK
IH0KIAogSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym91bmRzRm9yUmFuZ2Uo
dW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBOU1JhbmdlIHJhbmdl
ID0gTlNNYWtlUmFuZ2UobG9jYXRpb24sIGxlbmd0aCk7CisgICAgQkVHSU5fQVhfT0JKQ19FWENF
UFRJT05TCiAgICAgaWQgdmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVW
YWx1ZTpOU0FjY2Vzc2liaWxpdHlCb3VuZHNGb3JSYW5nZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUg
Zm9yUGFyYW1ldGVyOltOU1ZhbHVlIHZhbHVlV2l0aFJhbmdlOnJhbmdlXV07CiAgICAgTlNSZWN0
IHJlY3QgPSBOU01ha2VSZWN0KDAsMCwwLDApOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNWYWx1ZSBjbGFzc11dKQpAQCAtNjc5LDYxICs4MjUsODkgQEAgSlNTdHJpbmdSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym91bgogICAgIC8vIGRvbid0IHJldHVybiBwb3NpdGlvbiBp
bmZvcm1hdGlvbiBiZWNhdXNlIGl0IGlzIHBsYXRmb3JtIGRlcGVuZGVudAogICAgIE5TTXV0YWJs
ZVN0cmluZyogYm91bmRzRGVzY3JpcHRpb24gPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJ7eyVmLCAlZn0sIHslZiwgJWZ9fSIsLTEuMGYsLTEuMGYscmVjdC5zaXplLndpZHRo
LHJlY3Quc2l6ZS5oZWlnaHRdOwogICAgIHJldHVybiBbYm91bmRzRGVzY3JpcHRpb24gY3JlYXRl
SlNTdHJpbmdSZWZdOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICAKKyAgICByZXR1
cm4gMDsKIH0KIAogSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9y
UmFuZ2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBOU1Jhbmdl
IHJhbmdlID0gTlNNYWtlUmFuZ2UobG9jYXRpb24sIGxlbmd0aCk7CisgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCiAgICAgaWQgc3RyaW5nID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0
cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U3RyaW5nRm9yUmFuZ2VQYXJhbWV0ZXJpemVkQXR0
cmlidXRlIGZvclBhcmFtZXRlcjpbTlNWYWx1ZSB2YWx1ZVdpdGhSYW5nZTpyYW5nZV1dOwogICAg
IGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKICAgICByZXR1cm4gW3N0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl07Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiAwOwogfQogCiBKU1N0
cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJz
KCkKIHsKICAgICAvLyBub3QgeWV0IGRlZmluZWQgaW4gQXBwS2l0Li4uIG9kZAorICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwogICAgIE5TQXJyYXkqIGNvbHVtbkhlYWRlcnNBcnJheSA9IFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhDb2x1bW5IZWFkZXJVSUVs
ZW1lbnRzIl07CiAgICAgVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGNvbHVtbkhlYWRl
cnNWZWN0b3I7CiAgICAgY29udmVydE5TQXJyYXlUb1ZlY3Rvcihjb2x1bW5IZWFkZXJzQXJyYXks
IGNvbHVtbkhlYWRlcnNWZWN0b3IpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbk9mRWxlbWVudHMo
Y29sdW1uSGVhZGVyc1ZlY3Rvcik7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAor
ICAgIHJldHVybiAwOwogfQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
dHRyaWJ1dGVzT2ZSb3dIZWFkZXJzKCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMK
ICAgICBOU0FycmF5KiByb3dIZWFkZXJzQXJyYXkgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpAIkFYUm93SGVhZGVyVUlFbGVtZW50cyJdOwogICAgIFZlY3RvcjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiByb3dIZWFkZXJzVmVjdG9yOwogICAgIGNvbnZlcnROU0FycmF5
VG9WZWN0b3Iocm93SGVhZGVyc0FycmF5LCByb3dIZWFkZXJzVmVjdG9yKTsKICAgICByZXR1cm4g
ZGVzY3JpcHRpb25PZkVsZW1lbnRzKHJvd0hlYWRlcnNWZWN0b3IpOworICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKKyAgICAKKyAgICByZXR1cm4gMDsKIH0KIAogSlNTdHJpbmdSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1ucygpCiB7CisgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCiAgICAgTlNBcnJheSogY29sdW1uc0FycmF5ID0gW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Q29sdW1uc0F0dHJpYnV0
ZV07CiAgICAgVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGNvbHVtbnNWZWN0b3I7CiAg
ICAgY29udmVydE5TQXJyYXlUb1ZlY3Rvcihjb2x1bW5zQXJyYXksIGNvbHVtbnNWZWN0b3IpOwog
ICAgIHJldHVybiBkZXNjcmlwdGlvbk9mRWxlbWVudHMoY29sdW1uc1ZlY3Rvcik7CisgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiAwOwogfQogCiBKU1N0cmluZ1Jl
ZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dzKCkKIHsKKyAgICBCRUdJ
Tl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBOU0FycmF5KiByb3dzQXJyYXkgPSBbbV9lbGVtZW50
IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlSb3dzQXR0cmlidXRl
XTsKICAgICBWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gcm93c1ZlY3RvcjsKICAgICBj
b252ZXJ0TlNBcnJheVRvVmVjdG9yKHJvd3NBcnJheSwgcm93c1ZlY3Rvcik7CiAgICAgcmV0dXJu
IGRlc2NyaXB0aW9uT2ZFbGVtZW50cyhyb3dzVmVjdG9yKTsKKyAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCisgICAgCisgICAgcmV0dXJuIDA7CiB9CiAKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlZpc2libGVDZWxscygpCiB7CisgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCiAgICAgTlNBcnJheSogY2VsbHNBcnJheSA9IFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhWaXNpYmxlQ2VsbHMiXTsKICAgICBWZWN0b3I8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY2VsbHNWZWN0b3I7CiAgICAgY29udmVydE5TQXJyYXlU
b1ZlY3RvcihjZWxsc0FycmF5LCBjZWxsc1ZlY3Rvcik7CiAgICAgcmV0dXJuIGRlc2NyaXB0aW9u
T2ZFbGVtZW50cyhjZWxsc1ZlY3Rvcik7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAg
IAorICAgIHJldHVybiAwOwogfQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQogeworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwog
ICAgIGlkIGhlYWRlck9iamVjdCA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOk5TQWNjZXNzaWJpbGl0eUhlYWRlckF0dHJpYnV0ZV07CiAgICAgaWYgKCFoZWFkZXJPYmpl
Y3QpCiAgICAgICAgIHJldHVybiBbQCIiIGNyZWF0ZUpTU3RyaW5nUmVmXTsKQEAgLTc0MSw4MSAr
OTE1LDEyMSBAQCBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyCiAgICAg
VmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGhlYWRlclZlY3RvcjsKICAgICBoZWFkZXJW
ZWN0b3IuYXBwZW5kKGhlYWRlck9iamVjdCk7CiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uT2ZFbGVt
ZW50cyhoZWFkZXJWZWN0b3IpOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICAKKyAg
ICByZXR1cm4gMDsKIH0KIAogaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0NvdW50KCkK
IHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5QXJyYXlBdHRyaWJ1dGVDb3VudDpOU0FjY2Vzc2liaWxpdHlSb3dzQXR0cmli
dXRlXTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgCisgICAgcmV0dXJuIDA7CiB9
CiAKIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5Db3VudCgpCiB7CisgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUFycmF5QXR0cmlidXRlQ291bnQ6TlNBY2Nlc3NpYmlsaXR5Q29sdW1uc0F0dHJpYnV0ZV07Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiAwOwogfQogCiBpbnQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlKCkKIHsKKyAgICBCRUdJTl9BWF9P
QkpDX0VYQ0VQVElPTlMKICAgICBOU051bWJlciogaW5kZXhOdW1iZXIgPSBbbV9lbGVtZW50IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlJbmRleEF0dHJpYnV0ZV07
Ci0gICAgaWYgKCFpbmRleE51bWJlcikKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIHJldHVybiBb
aW5kZXhOdW1iZXIgaW50VmFsdWVdOworICAgIGlmIChpbmRleE51bWJlcikKKyAgICAgICAgcmV0
dXJuIFtpbmRleE51bWJlciBpbnRWYWx1ZV07CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwor
CisgICAgcmV0dXJuIC0xOwogfQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb3dJbmRleFJhbmdlKCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBO
U1ZhbHVlKiBpbmRleFJhbmdlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6QCJBWFJvd0luZGV4UmFuZ2UiXTsKICAgICBOU1JhbmdlIHJhbmdlID0gaW5kZXhSYW5nZSA/
IFtpbmRleFJhbmdlIHJhbmdlVmFsdWVdIDogTlNNYWtlUmFuZ2UoMCwwKTsKICAgICBOU011dGFi
bGVTdHJpbmcqIHJhbmdlRGVzY3JpcHRpb24gPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJ7JWQsICVkfSIscmFuZ2UubG9jYXRpb24sIHJhbmdlLmxlbmd0aF07CiAgICAgcmV0
dXJuIFtyYW5nZURlc2NyaXB0aW9uIGNyZWF0ZUpTU3RyaW5nUmVmXTsKKyAgICBFTkRfQVhfT0JK
Q19FWENFUFRJT05TCisgICAgCisgICAgcmV0dXJuIDA7CiB9CiAKIEpTU3RyaW5nUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQogeworICAgIEJFR0lOX0FYX09C
SkNfRVhDRVBUSU9OUwogICAgIE5TTnVtYmVyKiBpbmRleFJhbmdlID0gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWENvbHVtbkluZGV4UmFuZ2UiXTsKICAgICBOU1Jh
bmdlIHJhbmdlID0gaW5kZXhSYW5nZSA/IFtpbmRleFJhbmdlIHJhbmdlVmFsdWVdIDogTlNNYWtl
UmFuZ2UoMCwwKTsKICAgICBOU011dGFibGVTdHJpbmcqIHJhbmdlRGVzY3JpcHRpb24gPSBbTlNN
dXRhYmxlU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ7JWQsICVkfSIscmFuZ2UubG9jYXRpb24s
IHJhbmdlLmxlbmd0aF07CiAgICAgcmV0dXJuIFtyYW5nZURlc2NyaXB0aW9uIGNyZWF0ZUpTU3Ry
aW5nUmVmXTsgICAgCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIAorICAgIHJldHVy
biAwOwogfQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNlbGxGb3JDb2x1bW5BbmRSb3codW5zaWduZWQgY29sLCB1bnNpZ25lZCByb3cpCiB7CiAgICAg
TlNBcnJheSAqY29sUm93QXJyYXkgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOltOU051bWJl
ciBudW1iZXJXaXRoVW5zaWduZWRJbnQ6Y29sXSwgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25l
ZEludDpyb3ddLCBuaWxdOworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIHJldHVy
biBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYQ2VsbEZvckNvbHVt
bkFuZFJvdyIgZm9yUGFyYW1ldGVyOmNvbFJvd0FycmF5XTsKKyAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TICAgIAorCisgICAgcmV0dXJuIDA7CiB9CiAKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dFJhbmdlKCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VY
Q0VQVElPTlMKICAgICBOU051bWJlciAqaW5kZXhSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dFJhbmdlQXR0cmli
dXRlXTsKICAgICBOU1JhbmdlIHJhbmdlID0gaW5kZXhSYW5nZSA/IFtpbmRleFJhbmdlIHJhbmdl
VmFsdWVdIDogTlNNYWtlUmFuZ2UoMCwwKTsKICAgICBOU011dGFibGVTdHJpbmcgKnJhbmdlRGVz
Y3JpcHRpb24gPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ7JWQsICVkfSIs
cmFuZ2UubG9jYXRpb24sIHJhbmdlLmxlbmd0aF07CiAgICAgcmV0dXJuIFtyYW5nZURlc2NyaXB0
aW9uIGNyZWF0ZUpTU3RyaW5nUmVmXTsgICAgCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwor
ICAgIAorICAgIHJldHVybiAwOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
dFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCiB7
CiAgICAgTlNSYW5nZSB0ZXh0UmFuZ2UgPSBOU01ha2VSYW5nZShsb2NhdGlvbiwgbGVuZ3RoKTsK
ICAgICBOU1ZhbHVlICp0ZXh0UmFuZ2VWYWx1ZSA9IFtOU1ZhbHVlIHZhbHVlV2l0aFJhbmdlOnRl
eHRSYW5nZV07CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5U2V0VmFsdWU6dGV4dFJhbmdlVmFsdWUgZm9yQXR0cmlidXRlOk5TQWNjZXNz
aWJpbGl0eVNlbGVjdGVkVGV4dFJhbmdlQXR0cmlidXRlXTsKKyAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5jcmVtZW50KCkKIHsK
KyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlQZXJmb3JtQWN0aW9uOk5TQWNjZXNzaWJpbGl0eUluY3JlbWVudEFjdGlvbl07CisgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRl
Y3JlbWVudCgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgW21fZWxlbWVu
dCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpOU0FjY2Vzc2liaWxpdHlEZWNyZW1lbnRBY3Rp
b25dOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzaG93TWVudSgpCiB7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAg
ICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpOU0FjY2Vzc2liaWxpdHlT
aG93TWVudUFjdGlvbl07CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzKCkKIHsKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQ
VElPTlMKICAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQZXJmb3JtQWN0aW9uOk5TQWNjZXNz
aWJpbGl0eVByZXNzQWN0aW9uXTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiB9CiAKIEpT
U3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNv
bnN0CkBAIC04MzYsOCArMTA1MCwxMiBAQCBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpkb2N1CiAKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVybCgpCiB7
CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNVUkwgKnVybCA9IFttX2VsZW1l
bnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVVSTEF0dHJpYnV0
ZV07CiAgICAgcmV0dXJuIFtbdXJsIGFic29sdXRlU3RyaW5nXSBjcmVhdGVKU1N0cmluZ1JlZl07
ICAgIAorICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICAKKyAgICByZXR1cm4gbmlsOwog
fQogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVy
KEpTT2JqZWN0UmVmIGZ1bmN0aW9uQ2FsbGJhY2spCkBAIC04OTYsOSArMTExNCwxMiBAQCBib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkCiAKIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aGFzUG9wdXAoKSBjb25zdAogeworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBU
SU9OUwogICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6QCJBWEhhc1BvcHVwIl07CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJl
ciBjbGFzc11dKQogICAgICAgICByZXR1cm4gW3ZhbHVlIGJvb2xWYWx1ZV07CisgICAgRU5EX0FY
X09CSkNfRVhDRVBUSU9OUworCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA2MDM2NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEzIEBACisyMDEwLTA1LTI4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QVg6IG5lZWQgdG8gY2F0Y2ggTlNBY2Nlc3NpYmlsaXR5RXhjZXB0aW9ucyBpbiBEUlQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5ODgxCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS91bnN1cHBvcnRlZC1hdHRyaWJ1dGUtZG9l
cy1ub3QtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS91bnN1cHBvcnRlZC1hdHRyaWJ1dGUtZG9lcy1ub3QtY3Jhc2guaHRtbDog
QWRkZWQuCisKIDIwMTAtMDUtMjggIFNodSBDaGFuZyAgPGNoYW5nLnNodUBub2tpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3Vuc3VwcG9ydGVkLWF0dHJpYnV0ZS1kb2VzLW5vdC1jcmFzaC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
dW5zdXBwb3J0ZWQtYXR0cmlidXRlLWRvZXMtbm90LWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Vuc3VwcG9y
dGVkLWF0dHJpYnV0ZS1kb2VzLW5vdC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTAgQEAKK2xpbmsKK1RoaXMgdGVzdHMgdGhhdCBhcmlhLWxhYmVsIHdvcmtzIG9u
IGFyZWEgZWxlbWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdW5zdXBwb3J0ZWQtYXR0cmlidXRlLWRv
ZXMtbm90LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvdW5zdXBwb3J0ZWQtYXR0cmlidXRlLWRvZXMtbm90LWNyYXNoLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS91
bnN1cHBvcnRlZC1hdHRyaWJ1dGUtZG9lcy1ub3QtY3Jhc2guaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IGlkPSJib2R5Ij4KKworPGEgaHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnIiBpZD0i
bGluayI+bGluazwvYT4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRo
YXQgYXJpYS1sYWJlbCB3b3JrcyBvbiBhcmVhIGVsZW1lbnRzLiIpOworCisgICAgaWYgKHdpbmRv
dy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJsaW5rIikuZm9jdXMoKTsKKworICAgICAgICAvLyBUaGlzIHNob3VsZCBub3QgY3Jh
c2ggRFJUIGV2ZW4gdGhvdWdoIGl0IGlzIGFuIHVuc3VwcG9ydGVkIGF0dHJpYnV0ZSBmb3IgdGhl
IGVsZW1lbnQuCisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50
LmNlbGxGb3JDb2x1bW5BbmRSb3coMSwgMSk7CisgICAgfQorCisgICAgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="41903"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>