<?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>148275</bug_id>
          
          <creation_ts>2015-08-20 17:56:55 -0700</creation_ts>
          <short_desc>[Win] Cleanup some Windows WebCore files</short_desc>
          <delta_ts>2016-01-04 10:10:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 8</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>
          <dependson>148240</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119509</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-20 17:56:55 -0700</bug_when>
    <thetext>Correct various Windows MIDL declarations and C++11/C++14 issues in Windows-specific WebCore code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119521</commentid>
    <comment_count>1</comment_count>
      <attachid>259545</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-20 18:05:47 -0700</bug_when>
    <thetext>Created attachment 259545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119522</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-20 18:08:33 -0700</bug_when>
    <thetext>Attachment 259545 did not pass style-queue:


ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1154:  AccessiblePopupMenu::get_accParent is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1163:  AccessiblePopupMenu::get_accChildCount is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1172:  AccessiblePopupMenu::get_accChild is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1186:  AccessiblePopupMenu::get_accName is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1191:  AccessiblePopupMenu::get_accValue is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1212:  AccessiblePopupMenu::get_accDescription is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1218:  AccessiblePopupMenu::get_accRole is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1237:  AccessiblePopupMenu::get_accState is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1251:  AccessiblePopupMenu::get_accHelp is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1257:  AccessiblePopupMenu::get_accKeyboardShortcut is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1263:  AccessiblePopupMenu::get_accFocus is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1269:  AccessiblePopupMenu::get_accSelection is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1275:  AccessiblePopupMenu::get_accDefaultAction is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/PopupMenuWin.cpp:1420:  AccessiblePopupMenu::get_accHelpTopic is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/win/WCDataObject.cpp:212:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 15 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152347</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-01-04 09:45:52 -0800</bug_when>
    <thetext>Whoops! I never landed this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152365</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-01-04 10:10:23 -0800</bug_when>
    <thetext>Committed r194535: &lt;http://trac.webkit.org/changeset/194535&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259545</attachid>
            <date>2015-08-20 18:05:47 -0700</date>
            <delta_ts>2015-08-20 18:06:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148275-20150820182046.patch</filename>
            <type>text/plain</type>
            <size>26699</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODcyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE1LTA4LTIwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIENsZWFuIHVwIHNv
bWUgV2luZG93cyBXZWJDb3JlIGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDgyNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgVXBkYXRlIGEgaGFuZGZ1bCBvZiBXaW5kb3dzLXNwZWNpZmlj
IFdlYkNvcmUgZmlsZXMgdG8gdXNlCisgICAgICAgIHRoZSBwcm9wZXIgbWV0aG9kIHNpZ25hdHVy
ZXMgZm9yIG91ciB1cGRhdGVkIGludGVyZmFjZXMsCisgICAgICAgIGdldCByaWQgb2YgY3J1ZnQg
aW4gdGhlIENPTSBiaW5kaW5ncywgYW5kIHVzZSBwcm9wZXIgQysrMTQKKyAgICAgICAgaW5pdGlh
bGl6ZXJzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJXaW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxh
dGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVw
TWVudVdpbi5oOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9XQ0RhdGFPYmplY3QuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9XQ0RhdGFPYmplY3QuaDoKKwogMjAxNS0wOC0yMCAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjE4ODcxNyBhbmQgcjE4ODcxOS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyV2luLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJXaW4uaAkocmV2aXNpb24gMTg4Njk4KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJXaW4uaAkod29ya2luZyBjb3B5
KQpAQCAtMzcsOCArMzcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgOiBwdWJsaWMgSVVua25vd24gewogICAgIHB1YmxpYzoKICAg
ICAgICAgLy8gSVVua25vd24KLSAgICAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCByaWlkLCB2b2lkKiogcHB2T2JqZWN0KSA9IDA7ICAg
ICAgICAKLSAgICAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYodm9p
ZCkgPSAwOworICAgICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJ
bnRlcmZhY2UoX0luXyBSRUZJSUQgcmlpZCwgX0NPTV9PdXRwdHJfIHZvaWQqKiBwcHZPYmplY3Qp
ID0gMDsgICAgICAgIAorICAgICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFk
ZFJlZigpID0gMDsKICAgICAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxl
YXNlKHZvaWQpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCkgPSAwOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHJl
dmlzaW9uIDE4ODY5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
NzAsOCArNjcwLDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmMK
ICAgICAgICAgbV9tZWRpYVBsYXllci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CiB9CiAKLUhSRVNV
TFQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpBc3luY0NhbGxiYWNrOjpRdWVy
eUludGVyZmFjZShSRUZJSUQgcmlpZCwgX19SUENfX2RlcmVmX291dCB2b2lkIF9fUlBDX0ZBUiAq
X19SUENfRkFSICpwcHZPYmplY3QpCitIUkVTVUxUIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91
bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6UXVlcnlJbnRlcmZhY2UoX0luXyBSRUZJSUQgcmlpZCwg
X19SUENfX2RlcmVmX291dCB2b2lkIF9fUlBDX0ZBUiAqX19SUENfRkFSICpwcHZPYmplY3QpCiB7
CisgICAgaWYgKCFwcHZPYmplY3QpCisgICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAgICAgaWYg
KCFJc0VxdWFsR1VJRChyaWlkLCBJSURfSU1GQXN5bmNDYWxsYmFjaykpIHsKICAgICAgICAgKnBw
dk9iamVjdCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAkocmV2aXNpb24g
MTg4Njk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNyArMTM3
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgQXN5bmNDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb24qLCBib29sIGV2ZW50KTsKICAgICAgICAgfkFzeW5jQ2FsbGJhY2soKTsK
IAotICAgICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZh
Y2UoUkVGSUlEIHJpaWQsIF9fUlBDX19kZXJlZl9vdXQgdm9pZCBfX1JQQ19GQVIgKl9fUlBDX0ZB
UiAqcHB2T2JqZWN0KSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIFF1ZXJ5SW50ZXJmYWNlKF9Jbl8gUkVGSUlEIHJpaWQsIF9fUlBDX19kZXJlZl9v
dXQgdm9pZCBfX1JQQ19GQVIgKl9fUlBDX0ZBUiAqcHB2T2JqZWN0KSBvdmVycmlkZTsKICAgICAg
ICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSBvdmVycmlkZTsKICAg
ICAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKCkgb3ZlcnJpZGU7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3Bw
CShyZXZpc2lvbiAxODg2OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDgsIDIwMTEsIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9y
Y2ggTW9iaWxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkhXbmREQy5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJMZW5ndGhG
dW5jdGlvbnMuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNj
cmVlbi5oIgpAQCAtMTAzLDE2ICsxMDQsNiBAQCBzdGF0aWMgRmxvYXRSZWN0IG1vbml0b3JGcm9t
SHduZChIV05EIGh3CiAKIFBvcHVwTWVudVdpbjo6UG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCi0gICAgLCBtX3Njcm9sbGJh
cigwKQotICAgICwgbV9wb3B1cCgwKQotICAgICwgbV93YXNDbGlja2VkKGZhbHNlKQotICAgICwg
bV9pdGVtSGVpZ2h0KDApCi0gICAgLCBtX3Njcm9sbE9mZnNldCgwKQotICAgICwgbV93aGVlbERl
bHRhKDApCi0gICAgLCBtX2ZvY3VzZWRJbmRleCgwKQotICAgICwgbV9ob3ZlcmVkSW5kZXgoMCkK
LSAgICAsIG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoZmFsc2UpCi0gICAgLCBtX3Nob3dQb3B1
cChmYWxzZSkKIHsKIH0KIApAQCAtMTA5MSw4ICsxMDgyLDcgQEAgTFJFU1VMVCBQb3B1cE1lbnVX
aW46OnduZFByb2MoSFdORCBoV25kLAogfQogCiBBY2Nlc3NpYmxlUG9wdXBNZW51OjpBY2Nlc3Np
YmxlUG9wdXBNZW51KGNvbnN0IFBvcHVwTWVudVdpbiYgcG9wdXBNZW51KQotICAgIDogbV9yZWZD
b3VudCgwKQotICAgICwgbV9wb3B1cE1lbnUocG9wdXBNZW51KQorICAgIDogbV9wb3B1cE1lbnUo
cG9wdXBNZW51KQogewogfQogCkBAIC0xMTAwLDggKzEwOTAsMTAgQEAgQWNjZXNzaWJsZVBvcHVw
TWVudTo6fkFjY2Vzc2libGVQb3B1cE1lbgogewogfQogCi1IUkVTVUxUIEFjY2Vzc2libGVQb3B1
cE1lbnU6OlF1ZXJ5SW50ZXJmYWNlKFJFRklJRCByaWlkLCBfX1JQQ19fZGVyZWZfb3V0IHZvaWQg
X19SUENfRkFSICpfX1JQQ19GQVIgKnBwdk9iamVjdCkKK0hSRVNVTFQgQWNjZXNzaWJsZVBvcHVw
TWVudTo6UXVlcnlJbnRlcmZhY2UoX0luXyBSRUZJSUQgcmlpZCwgX0NPTV9PdXRwdHJfIHZvaWQq
KiBwcHZPYmplY3QpCiB7CisgICAgaWYgKCFwcHZPYmplY3QpCisgICAgICAgIHJldHVybiBFX1BP
SU5URVI7CiAgICAgaWYgKElzRXF1YWxHVUlEKHJpaWQsIF9fdXVpZG9mKElBY2Nlc3NpYmxlKSkp
CiAgICAgICAgICpwcHZPYmplY3QgPSBzdGF0aWNfY2FzdDxJQWNjZXNzaWJsZSo+KHRoaXMpOwog
ICAgIGVsc2UgaWYgKElzRXF1YWxHVUlEKHJpaWQsIF9fdXVpZG9mKElEaXNwYXRjaCkpKQpAQCAt
MTEwOSw3ICsxMTAxLDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51OjpRdWVyeUludGVy
ZgogICAgIGVsc2UgaWYgKElzRXF1YWxHVUlEKHJpaWQsIF9fdXVpZG9mKElVbmtub3duKSkpCiAg
ICAgICAgICpwcHZPYmplY3QgPSBzdGF0aWNfY2FzdDxJQWNjZXNzaWJsZSo+KHRoaXMpOwogICAg
IGVsc2UgewotICAgICAgICAqcHB2T2JqZWN0ID0gMDsKKyAgICAgICAgKnBwdk9iamVjdCA9IG51
bGxwdHI7CiAgICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOwogICAgIH0KICAgICBBZGRSZWYo
KTsKQEAgLTExMjksMzIgKzExMjEsNDYgQEAgVUxPTkcgQWNjZXNzaWJsZVBvcHVwTWVudTo6UmVs
ZWFzZSgpCiAgICAgcmV0dXJuIHJlZkNvdW50OwogfQogCi1IUkVTVUxUIEFjY2Vzc2libGVQb3B1
cE1lbnU6OkdldFR5cGVJbmZvQ291bnQoVUlOVCogY291bnQpCitIUkVTVUxUIEFjY2Vzc2libGVQ
b3B1cE1lbnU6OkdldFR5cGVJbmZvQ291bnQoX091dF8gVUlOVCogY291bnQpCiB7CisgICAgaWYg
KCFjb3VudCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqY291bnQgPSAwOworICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIEVfTk9USU1QTDsKIH0KIAotSFJFU1VMVCBB
Y2Nlc3NpYmxlUG9wdXBNZW51OjpHZXRUeXBlSW5mbyhVSU5ULCBMQ0lELCBJVHlwZUluZm8qKiBw
cFRJbmZvKQorSFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51OjpHZXRUeXBlSW5mbyhVSU5ULCBM
Q0lELCBfQ09NX091dHB0cl9vcHRfIElUeXBlSW5mbyoqIHBwVEluZm8pCiB7CisgICAgaWYgKCFw
cFRJbmZvKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICpwcFRJbmZvID0gbnVsbHB0
cjsKKyAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBFX05PVElNUEw7CiB9CiAKLUhS
RVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6R2V0SURzT2ZOYW1lcyhSRUZJSUQsIExQT0xFU1RS
KiwgVUlOVCwgTENJRCwgRElTUElEKikKK0hSRVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6R2V0
SURzT2ZOYW1lcyhfSW5fIFJFRklJRCwgX19pbl9lY291bnQoY05hbWVzKSBMUE9MRVNUUiosIFVJ
TlQgY05hbWVzLCBMQ0lELCBfX291dF9lY291bnRfZnVsbChjTmFtZXMpIERJU1BJRCopCiB7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gRV9OT1RJTVBMOwogfQogCiBIUkVTVUxU
IEFjY2Vzc2libGVQb3B1cE1lbnU6Okludm9rZShESVNQSUQsIFJFRklJRCwgTENJRCwgV09SRCwg
RElTUFBBUkFNUyosIFZBUklBTlQqLCBFWENFUElORk8qLCBVSU5UKikKIHsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiBFX05PVElNUEw7CiB9CiAKLUhSRVNVTFQgQWNjZXNzaWJs
ZVBvcHVwTWVudTo6Z2V0X2FjY1BhcmVudChJRGlzcGF0Y2gqKikKK0hSRVNVTFQgQWNjZXNzaWJs
ZVBvcHVwTWVudTo6Z2V0X2FjY1BhcmVudChfQ09NX091dHB0cl9vcHRfIElEaXNwYXRjaCoqIHBh
cmVudCkKIHsKKyAgICBpZiAoIXBhcmVudCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAg
ICAqcGFyZW50ID0gbnVsbHB0cjsKKyAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBF
X05PVElNUEw7CiB9CiAKLUhSRVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2FjY0NoaWxk
Q291bnQobG9uZyogY291bnQpCitIUkVTVUxUIEFjY2Vzc2libGVQb3B1cE1lbnU6OmdldF9hY2ND
aGlsZENvdW50KF9PdXRfIGxvbmcqIGNvdW50KQogewogICAgIGlmICghY291bnQpCiAgICAgICAg
IHJldHVybiBFX1BPSU5URVI7CkBAIC0xMTYzLDI5ICsxMTY5LDMyIEBAIEhSRVNVTFQgQWNjZXNz
aWJsZVBvcHVwTWVudTo6Z2V0X2FjY0NoaWwKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VM
VCBBY2Nlc3NpYmxlUG9wdXBNZW51OjpnZXRfYWNjQ2hpbGQoVkFSSUFOVCB2Q2hpbGQsIElEaXNw
YXRjaCoqIHBwQ2hpbGQpCitIUkVTVUxUIEFjY2Vzc2libGVQb3B1cE1lbnU6OmdldF9hY2NDaGls
ZChWQVJJQU5UIHZDaGlsZCwgX0NPTV9PdXRwdHJfb3B0XyBJRGlzcGF0Y2gqKiBwcENoaWxkKQog
ewogICAgIGlmICghcHBDaGlsZCkKICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKIAotICAgIGlm
ICh2Q2hpbGQudnQgIT0gVlRfSTQpIHsKLSAgICAgICAgKnBwQ2hpbGQgPSBudWxscHRyOwotICAg
ICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotICAgIH0KICAgICAqcHBDaGlsZCA9IG51bGxwdHI7
CisKKyAgICBpZiAodkNoaWxkLnZ0ICE9IFZUX0k0KQorICAgICAgICByZXR1cm4gRV9JTlZBTElE
QVJHOworCisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU19GQUxTRTsKIH0KIAot
SFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51OjpnZXRfYWNjTmFtZShWQVJJQU5UIHZDaGlsZCwg
QlNUUiogbmFtZSkKK0hSRVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2FjY05hbWUoVkFS
SUFOVCB2Q2hpbGQsIF9fZGVyZWZfb3V0X29wdCBCU1RSKiBuYW1lKQogewogICAgIHJldHVybiBn
ZXRfYWNjVmFsdWUodkNoaWxkLCBuYW1lKTsKIH0KIAotSFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBN
ZW51OjpnZXRfYWNjVmFsdWUoVkFSSUFOVCB2Q2hpbGQsIEJTVFIqIHZhbHVlKQorSFJFU1VMVCBB
Y2Nlc3NpYmxlUG9wdXBNZW51OjpnZXRfYWNjVmFsdWUoVkFSSUFOVCB2Q2hpbGQsIF9fZGVyZWZf
b3V0X29wdCBCU1RSKiB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4g
RV9QT0lOVEVSOwogCisgICAgKnZhbHVlID0gbnVsbHB0cjsKKwogICAgIGlmICh2Q2hpbGQudnQg
IT0gVlRfSTQpCiAgICAgICAgIHJldHVybiBFX0lOVkFMSURBUkc7CiAKQEAgLTEyMDAsMTYgKzEy
MDksMTYgQEAgSFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51OjpnZXRfYWNjVmFsdQogICAgIHJl
dHVybiBTX09LOwogfQogCi1IUkVTVUxUIEFjY2Vzc2libGVQb3B1cE1lbnU6OmdldF9hY2NEZXNj
cmlwdGlvbihWQVJJQU5ULCBCU1RSKikKK0hSRVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0
X2FjY0Rlc2NyaXB0aW9uKFZBUklBTlQsIF9fZGVyZWZfb3V0X29wdCBCU1RSKikKIHsKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBFX05PVElNUEw7CiB9CiAKLUhSRVNVTFQgQWNj
ZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2FjY1JvbGUoVkFSSUFOVCB2Q2hpbGQsIFZBUklBTlQqIHB2
Um9sZSkKK0hSRVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2FjY1JvbGUoVkFSSUFOVCB2
Q2hpbGQsIF9PdXRfIFZBUklBTlQqIHB2Um9sZSkKIHsKICAgICBpZiAoIXB2Um9sZSkKICAgICAg
ICAgcmV0dXJuIEVfUE9JTlRFUjsKLQogICAgIGlmICh2Q2hpbGQudnQgIT0gVlRfSTQpCiAgICAg
ICAgIHJldHVybiBFX0lOVkFMSURBUkc7CiAKQEAgLTEyMjUsNyArMTIzNCw3IEBAIEhSRVNVTFQg
QWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2FjY1JvbGUKICAgICByZXR1cm4gU19PSzsKIH0KIAot
SFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51OjpnZXRfYWNjU3RhdGUoVkFSSUFOVCB2Q2hpbGQs
IFZBUklBTlQqIHB2U3RhdGUpCitIUkVTVUxUIEFjY2Vzc2libGVQb3B1cE1lbnU6OmdldF9hY2NT
dGF0ZShWQVJJQU5UIHZDaGlsZCwgX091dF8gVkFSSUFOVCogcHZTdGF0ZSkKIHsKICAgICBpZiAo
IXB2U3RhdGUpCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CkBAIC0xMjM5LDM3ICsxMjQ4LDQz
IEBAIEhSRVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2FjY1N0YXQKICAgICByZXR1cm4g
U19PSzsKIH0KIAotSFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51OjpnZXRfYWNjSGVscChWQVJJ
QU5UIHZDaGlsZCwgQlNUUiogaGVscFRleHQpCitIUkVTVUxUIEFjY2Vzc2libGVQb3B1cE1lbnU6
OmdldF9hY2NIZWxwKFZBUklBTlQgdkNoaWxkLCBfX2RlcmVmX291dF9vcHQgQlNUUiogaGVscFRl
eHQpCiB7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gRV9OT1RJTVBMOwogfQog
Ci1IUkVTVUxUIEFjY2Vzc2libGVQb3B1cE1lbnU6OmdldF9hY2NLZXlib2FyZFNob3J0Y3V0KFZB
UklBTlQgdkNoaWxkLCBCU1RSKikKK0hSRVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2Fj
Y0tleWJvYXJkU2hvcnRjdXQoVkFSSUFOVCB2Q2hpbGQsIF9fZGVyZWZfb3V0X29wdCBCU1RSKikK
IHsKKyAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBFX05PVElNUEw7CiB9CiAKLUhS
RVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2FjY0ZvY3VzKFZBUklBTlQqIHB2Rm9jdXNl
ZENoaWxkKQorSFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51OjpnZXRfYWNjRm9jdXMoX091dF8g
VkFSSUFOVCogcHZGb2N1c2VkQ2hpbGQpCiB7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gRV9OT1RJTVBMOwogfQogCi1IUkVTVUxUIEFjY2Vzc2libGVQb3B1cE1lbnU6OmdldF9h
Y2NTZWxlY3Rpb24oVkFSSUFOVCogcHZTZWxlY3RlZENoaWxkKQorSFJFU1VMVCBBY2Nlc3NpYmxl
UG9wdXBNZW51OjpnZXRfYWNjU2VsZWN0aW9uKF9PdXRfIFZBUklBTlQqIHB2U2VsZWN0ZWRDaGls
ZCkKIHsKKyAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBFX05PVElNUEw7CiB9CiAK
LUhSRVNVTFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6Z2V0X2FjY0RlZmF1bHRBY3Rpb24oVkFSSUFO
VCB2Q2hpbGQsIEJTVFIqIGFjdGlvbkRlc2NyaXB0aW9uKQorSFJFU1VMVCBBY2Nlc3NpYmxlUG9w
dXBNZW51OjpnZXRfYWNjRGVmYXVsdEFjdGlvbihWQVJJQU5UIHZDaGlsZCwgX19kZXJlZl9vdXRf
b3B0IEJTVFIqIGFjdGlvbkRlc2NyaXB0aW9uKQogeworICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIEVfTk9USU1QTDsKIH0KIAogSFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51Ojph
Y2NTZWxlY3QobG9uZyBzZWxlY3Rpb25GbGFncywgVkFSSUFOVCB2Q2hpbGQpCiB7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gRV9OT1RJTVBMOwogfQogCi1IUkVTVUxUIEFjY2Vz
c2libGVQb3B1cE1lbnU6OmFjY0xvY2F0aW9uKGxvbmcqIGxlZnQsIGxvbmcqIHRvcCwgbG9uZyog
d2lkdGgsIGxvbmcqIGhlaWdodCwgVkFSSUFOVCB2Q2hpbGQpCitIUkVTVUxUIEFjY2Vzc2libGVQ
b3B1cE1lbnU6OmFjY0xvY2F0aW9uKF9PdXRfIGxvbmcqIGxlZnQsIF9PdXRfIGxvbmcqIHRvcCwg
X091dF8gbG9uZyogd2lkdGgsIF9PdXRfIGxvbmcqIGhlaWdodCwgVkFSSUFOVCB2Q2hpbGQpCiB7
CiAgICAgaWYgKCFsZWZ0IHx8ICF0b3AgfHwgIXdpZHRoIHx8ICFoZWlnaHQpCiAgICAgICAgIHJl
dHVybiBFX1BPSU5URVI7CkBAIC0xMzM1LDEyICsxMzUwLDEzIEBAIEhSRVNVTFQgQWNjZXNzaWJs
ZVBvcHVwTWVudTo6YWNjTG9jYXRpb24KICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBB
Y2Nlc3NpYmxlUG9wdXBNZW51OjphY2NOYXZpZ2F0ZShsb25nIGRpcmVjdGlvbiwgVkFSSUFOVCB2
RnJvbUNoaWxkLCBWQVJJQU5UKiBwdk5hdmlnYXRlZFRvKQorSFJFU1VMVCBBY2Nlc3NpYmxlUG9w
dXBNZW51OjphY2NOYXZpZ2F0ZShsb25nIGRpcmVjdGlvbiwgVkFSSUFOVCB2RnJvbUNoaWxkLCBf
T3V0XyBWQVJJQU5UKiBwdk5hdmlnYXRlZFRvKQogeworICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIEVfTk9USU1QTDsKIH0KIAotSFJFU1VMVCBBY2Nlc3NpYmxlUG9wdXBNZW51Ojph
Y2NIaXRUZXN0KGxvbmcgeCwgbG9uZyB5LCBWQVJJQU5UKiBwdkNoaWxkQXRQb2ludCkKK0hSRVNV
TFQgQWNjZXNzaWJsZVBvcHVwTWVudTo6YWNjSGl0VGVzdChsb25nIHgsIGxvbmcgeSwgX091dF8g
VkFSSUFOVCogcHZDaGlsZEF0UG9pbnQpCiB7CiAgICAgaWYgKCFwdkNoaWxkQXRQb2ludCkKICAg
ICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKQEAgLTEzODUsMjEgKzE0MDEsMjUgQEAgSFJFU1VMVCBB
Y2Nlc3NpYmxlUG9wdXBNZW51OjphY2NIaXRUZXN0KAogCiBIUkVTVUxUIEFjY2Vzc2libGVQb3B1
cE1lbnU6OmFjY0RvRGVmYXVsdEFjdGlvbihWQVJJQU5UIHZDaGlsZCkKIHsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiBFX05PVElNUEw7CiB9CiAKIEhSRVNVTFQgQWNjZXNzaWJs
ZVBvcHVwTWVudTo6cHV0X2FjY05hbWUoVkFSSUFOVCwgQlNUUikKIHsKKyAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiBFX05PVElNUEw7CiB9CiAKIEhSRVNVTFQgQWNjZXNzaWJsZVBv
cHVwTWVudTo6cHV0X2FjY1ZhbHVlKFZBUklBTlQsIEJTVFIpCiB7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gRV9OT1RJTVBMOwogfQogCi1IUkVTVUxUIEFjY2Vzc2libGVQb3B1
cE1lbnU6OmdldF9hY2NIZWxwVG9waWMoQlNUUiogaGVscEZpbGUsIFZBUklBTlQsIGxvbmcqIHRv
cGljSUQpCitIUkVTVUxUIEFjY2Vzc2libGVQb3B1cE1lbnU6OmdldF9hY2NIZWxwVG9waWMoQlNU
UiogaGVscEZpbGUsIFZBUklBTlQsIF9PdXRfIGxvbmcqIHRvcGljSUQpCiB7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gRV9OT1RJTVBMOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCShyZXZpc2lvbiAxODg2OTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTEyMSwy
MSArMTIxLDIxIEBAIHByaXZhdGU6CiAgICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlO
VCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKICAgICBzdGF0aWMgdm9p
ZCByZWdpc3RlckNsYXNzKCk7CiAKLSAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7
CiAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbV9zY3JvbGxiYXI7Ci0gICAgSFdORCBtX3BvcHVwOwor
ICAgIENPTVB0cjxJQWNjZXNzaWJsZT4gbV9hY2Nlc3NpYmxlUG9wdXBNZW51OwogICAgIEdESU9i
amVjdDxIREM+IG1fREM7CiAgICAgR0RJT2JqZWN0PEhCSVRNQVA+IG1fYm1wOwotICAgIGJvb2wg
bV93YXNDbGlja2VkOworICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBI
V05EIG1fcG9wdXAgeyBudWxscHRyIH07CiAgICAgSW50UmVjdCBtX3dpbmRvd1JlY3Q7Ci0gICAg
aW50IG1faXRlbUhlaWdodDsKLSAgICBpbnQgbV9zY3JvbGxPZmZzZXQ7Ci0gICAgaW50IG1fd2hl
ZWxEZWx0YTsKLSAgICBpbnQgbV9mb2N1c2VkSW5kZXg7Ci0gICAgaW50IG1faG92ZXJlZEluZGV4
OwotICAgIGJvb2wgbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZTsKLSAgICBib29sIG1fc2hvd1Bv
cHVwOwotICAgIENPTVB0cjxJQWNjZXNzaWJsZT4gbV9hY2Nlc3NpYmxlUG9wdXBNZW51OworICAg
IGludCBtX2l0ZW1IZWlnaHQgeyAwIH07CisgICAgaW50IG1fc2Nyb2xsT2Zmc2V0IHsgMCB9Owor
ICAgIGludCBtX3doZWVsRGVsdGEgeyAwIH07CisgICAgaW50IG1fZm9jdXNlZEluZGV4IHsgMCB9
OworICAgIGludCBtX2hvdmVyZWRJbmRleCB7IDAgfTsKKyAgICBib29sIG1fd2FzQ2xpY2tlZCB7
IGZhbHNlIH07CisgICAgYm9vbCBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fc2hvd1BvcHVwIHsgZmFsc2UgfTsKIAogICAgIGZyaWVuZCBjbGFzcyBBY2Nl
c3NpYmxlUG9wdXBNZW51OwogfTsKQEAgLTE0Niw0MSArMTQ2LDQxIEBAIHB1YmxpYzoKICAgICB+
QWNjZXNzaWJsZVBvcHVwTWVudSgpOwogCiAgICAgLy8gSVVua25vd24KLSAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIF9fUlBD
X19kZXJlZl9vdXQgdm9pZCBfX1JQQ19GQVIgKl9fUlBDX0ZBUiAqcHB2T2JqZWN0KTsKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoX0luXyBSRUZJ
SUQsIF9DT01fT3V0cHRyXyB2b2lkKiopOwogICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FM
TFRZUEUgQWRkUmVmKCk7CiAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxl
YXNlKCk7CiAKICAgICAvLyBJRGlzcGF0Y2ggLSBOb3QgdG8gYmUgaW1wbGVtZW50ZWQuCi0gICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEdldFR5cGVJbmZvQ291bnQoVUlOVCog
Y291bnQpOwotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBHZXRUeXBlSW5m
byhVSU5ULCBMQ0lELCBJVHlwZUluZm8qKiBwcFRJbmZvKTsKLSAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgR2V0SURzT2ZOYW1lcyhSRUZJSUQsIExQT0xFU1RSKiwgVUlOVCwg
TENJRCwgRElTUElEKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEdl
dFR5cGVJbmZvQ291bnQoX091dF8gVUlOVCogY291bnQpOworICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBHZXRUeXBlSW5mbyhVSU5ULCBMQ0lELCBfQ09NX091dHB0cl9vcHRf
IElUeXBlSW5mbyoqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgR2V0
SURzT2ZOYW1lcyhfSW5fIFJFRklJRCwgX19pbl9lY291bnQoY05hbWVzKSBMUE9MRVNUUiosIFVJ
TlQgY05hbWVzLCBMQ0lELCBfX291dF9lY291bnRfZnVsbChjTmFtZXMpIERJU1BJRCopOwogICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBJbnZva2UoRElTUElELCBSRUZJSUQs
IExDSUQsIFdPUkQsIERJU1BQQVJBTVMqLCBWQVJJQU5UKiwgRVhDRVBJTkZPKiwgVUlOVCopOwog
CiAgICAgLy8gSUFjY2Vzc2libGUKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgZ2V0X2FjY1BhcmVudChJRGlzcGF0Y2gqKik7Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGdldF9hY2NDaGlsZENvdW50KGxvbmcqKTsKLSAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgZ2V0X2FjY0NoaWxkKFZBUklBTlQgdkNoaWxkLCBJRGlzcGF0
Y2gqKiBwcENoaWxkKTsKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZ2V0
X2FjY05hbWUoVkFSSUFOVCB2Q2hpbGQsIEJTVFIqKTsKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZ2V0X2FjY1ZhbHVlKFZBUklBTlQgdkNoaWxkLCBCU1RSKik7Ci0gICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGdldF9hY2NEZXNjcmlwdGlvbihWQVJJ
QU5ULCBCU1RSKik7Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGdldF9h
Y2NSb2xlKFZBUklBTlQgdkNoaWxkLCBWQVJJQU5UKiBwdlJvbGUpOwotICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBnZXRfYWNjU3RhdGUoVkFSSUFOVCB2Q2hpbGQsIFZBUklB
TlQqIHB2U3RhdGUpOwotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBnZXRf
YWNjSGVscChWQVJJQU5UIHZDaGlsZCwgQlNUUiogaGVscFRleHQpOwotICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBnZXRfYWNjS2V5Ym9hcmRTaG9ydGN1dChWQVJJQU5UIHZD
aGlsZCwgQlNUUiopOwotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBnZXRf
YWNjRm9jdXMoVkFSSUFOVCogcHZGb2N1c2VkQ2hpbGQpOwotICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBnZXRfYWNjU2VsZWN0aW9uKFZBUklBTlQqIHB2U2VsZWN0ZWRDaGls
ZCk7Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGdldF9hY2NEZWZhdWx0
QWN0aW9uKFZBUklBTlQgdkNoaWxkLCBCU1RSKiBhY3Rpb25EZXNjcmlwdGlvbik7CisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGdldF9hY2NQYXJlbnQoX0NPTV9PdXRwdHJf
b3B0XyBJRGlzcGF0Y2gqKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IGdldF9hY2NDaGlsZENvdW50KF9PdXRfIGxvbmcqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZ2V0X2FjY0NoaWxkKFZBUklBTlQgdkNoaWxkLCBfQ09NX091dHB0cl9v
cHRfIElEaXNwYXRjaCoqIHBwQ2hpbGQpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBnZXRfYWNjTmFtZShWQVJJQU5UIHZDaGlsZCwgX19kZXJlZl9vdXRfb3B0IEJTVFIq
KTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZ2V0X2FjY1ZhbHVlKFZB
UklBTlQgdkNoaWxkLCBfX2RlcmVmX291dF9vcHQgQlNUUiopOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBnZXRfYWNjRGVzY3JpcHRpb24oVkFSSUFOVCwgX19kZXJlZl9v
dXRfb3B0IEJTVFIqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZ2V0
X2FjY1JvbGUoVkFSSUFOVCB2Q2hpbGQsIF9PdXRfIFZBUklBTlQqIHB2Um9sZSk7CisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGdldF9hY2NTdGF0ZShWQVJJQU5UIHZDaGls
ZCwgX091dF8gVkFSSUFOVCogcHZTdGF0ZSk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIGdldF9hY2NIZWxwKFZBUklBTlQgdkNoaWxkLCBfX2RlcmVmX291dF9vcHQgQlNU
UiogaGVscFRleHQpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBnZXRf
YWNjS2V5Ym9hcmRTaG9ydGN1dChWQVJJQU5UIHZDaGlsZCwgX19kZXJlZl9vdXRfb3B0IEJTVFIq
KTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZ2V0X2FjY0ZvY3VzKF9P
dXRfIFZBUklBTlQqIHB2Rm9jdXNlZENoaWxkKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgZ2V0X2FjY1NlbGVjdGlvbihfT3V0XyBWQVJJQU5UKiBwdlNlbGVjdGVkQ2hp
bGQpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBnZXRfYWNjRGVmYXVs
dEFjdGlvbihWQVJJQU5UIHZDaGlsZCwgX19kZXJlZl9vdXRfb3B0IEJTVFIqIGFjdGlvbkRlc2Ny
aXB0aW9uKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWNjU2VsZWN0
KGxvbmcgc2VsZWN0aW9uRmxhZ3MsIFZBUklBTlQgdkNoaWxkKTsKLSAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgYWNjTG9jYXRpb24obG9uZyogbGVmdCwgbG9uZyogdG9wLCBs
b25nKiB3aWR0aCwgbG9uZyogaGVpZ2h0LCBWQVJJQU5UIHZDaGlsZCk7Ci0gICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFjY05hdmlnYXRlKGxvbmcgZGlyZWN0aW9uLCBWQVJJ
QU5UIHZGcm9tQ2hpbGQsIFZBUklBTlQqIHB2TmF2aWdhdGVkVG8pOwotICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhY2NIaXRUZXN0KGxvbmcgeCwgbG9uZyB5LCBWQVJJQU5U
KiBwdkNoaWxkQXRQb2ludCk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IGFjY0xvY2F0aW9uKF9PdXRfIGxvbmcqIGxlZnQsIF9PdXRfIGxvbmcqIHRvcCwgX091dF8gbG9u
Zyogd2lkdGgsIF9PdXRfIGxvbmcqIGhlaWdodCwgVkFSSUFOVCB2Q2hpbGQpOworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhY2NOYXZpZ2F0ZShsb25nIGRpcmVjdGlvbiwg
VkFSSUFOVCB2RnJvbUNoaWxkLCBfT3V0XyBWQVJJQU5UKiBwdk5hdmlnYXRlZFRvKTsKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWNjSGl0VGVzdChsb25nIHgsIGxvbmcg
eSwgX091dF8gVkFSSUFOVCogcHZDaGlsZEF0UG9pbnQpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBhY2NEb0RlZmF1bHRBY3Rpb24oVkFSSUFOVCB2Q2hpbGQpOwotICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBwdXRfYWNjTmFtZShWQVJJQU5ULCBC
U1RSKTsKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcHV0X2FjY1ZhbHVl
KFZBUklBTlQsIEJTVFIpOwotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBn
ZXRfYWNjSGVscFRvcGljKEJTVFIqIGhlbHBGaWxlLCBWQVJJQU5ULCBsb25nKiB0b3BpY0lEKTsK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcHV0X2FjY05hbWUoVkFSSUFO
VCwgX0luXyBCU1RSKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcHV0
X2FjY1ZhbHVlKFZBUklBTlQsIF9Jbl8gQlNUUik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGdldF9hY2NIZWxwVG9waWMoQlNUUiogaGVscEZpbGUsIFZBUklBTlQsIF9P
dXRfIGxvbmcqIHRvcGljSUQpOwogCiBwcml2YXRlOgotICAgIGludCBtX3JlZkNvdW50OworICAg
IGludCBtX3JlZkNvdW50IHsgMCB9OwogICAgIGNvbnN0IFBvcHVwTWVudVdpbiYgbV9wb3B1cE1l
bnU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV0NEYXRhT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV0NEYXRhT2Jq
ZWN0LmNwcAkocmV2aXNpb24gMTg4Njk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1dDRGF0YU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA3LCAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTQtMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3
IEBAIHB1YmxpYzoKICAgICBXQ0VudW1Gb3JtYXRFdGMoY29uc3QgVmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxGT1JNQVRFVEM+PiYgZm9ybWF0cyk7CiAKICAgICAvL0lVbmtub3duIG1lbWJlcnMKLSAg
ICBTVERNRVRIT0QoUXVlcnlJbnRlcmZhY2UpKFJFRklJRCwgdm9pZCoqKTsKKyAgICBTVERNRVRI
T0QoUXVlcnlJbnRlcmZhY2UpKF9Jbl8gUkVGSUlELCBfQ09NX091dHB0cl8gdm9pZCoqKTsKICAg
ICBTVERNRVRIT0RfKFVMT05HLCBBZGRSZWYpKHZvaWQpOwogICAgIFNURE1FVEhPRF8oVUxPTkcs
IFJlbGVhc2UpKHZvaWQpOwogCkBAIC01MCwzMCArNTAsMjggQEAgcHVibGljOgogICAgIFNURE1F
VEhPRChDbG9uZSkoSUVudW1GT1JNQVRFVEMqKik7CiAKIHByaXZhdGU6Ci0gICAgbG9uZyBtX3Jl
ZjsKLSAgICBWZWN0b3I8Rk9STUFURVRDPiAgbV9mb3JtYXRzOwotICAgIHNpemVfdCBtX2N1cnJl
bnQ7CisgICAgVmVjdG9yPEZPUk1BVEVUQz4gbV9mb3JtYXRzOworICAgIHNpemVfdCBtX2N1cnJl
bnQgeyAwIH07CisgICAgbG9uZyBtX3JlZiB7IDEgfTsKIH07CiAKIFdDRW51bUZvcm1hdEV0Yzo6
V0NFbnVtRm9ybWF0RXRjKGNvbnN0IFZlY3RvcjxGT1JNQVRFVEM+JiBmb3JtYXRzKQotOiBtX3Jl
ZigxKQotLCBtX2N1cnJlbnQoMCkKIHsKLSAgICBmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgZm9ybWF0
cy5zaXplKCk7ICsraSkKLSAgICAgICAgbV9mb3JtYXRzLmFwcGVuZChmb3JtYXRzW2ldKTsKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIGZvcm1hdCA6IGZvcm1hdHMpCisgICAgICAgIG1fZm9ybWF0cy5h
cHBlbmQoZm9ybWF0KTsKIH0KIAogV0NFbnVtRm9ybWF0RXRjOjpXQ0VudW1Gb3JtYXRFdGMoY29u
c3QgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxGT1JNQVRFVEM+PiYgZm9ybWF0cykKLSAgICA6IG1f
cmVmKDEpCi0gICAgLCBtX2N1cnJlbnQoMCkKIHsKICAgICBmb3IgKGF1dG8mIGZvcm1hdCA6IGZv
cm1hdHMpCiAgICAgICAgIG1fZm9ybWF0cy5hcHBlbmQoKmZvcm1hdCk7CiB9CiAKLVNURE1FVEhP
RElNUCAgV0NFbnVtRm9ybWF0RXRjOjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoq
IHBwdk9iamVjdCkKK1NURE1FVEhPRElNUCBXQ0VudW1Gb3JtYXRFdGM6OlF1ZXJ5SW50ZXJmYWNl
KF9Jbl8gUkVGSUlEIHJpaWQsIF9DT01fT3V0cHRyXyB2b2lkKiogcHB2T2JqZWN0KQogewotICAg
ICpwcHZPYmplY3QgPSAwOworICAgIGlmICghcHB2T2JqZWN0KQorICAgICAgICByZXR1cm4gRV9Q
T0lOVEVSOworICAgICpwcHZPYmplY3QgPSBudWxscHRyOwogICAgIGlmIChJc0VxdWFsSUlEKHJp
aWQsIElJRF9JVW5rbm93bikgfHwgSXNFcXVhbElJRChyaWlkLCBJSURfSUVudW1GT1JNQVRFVEMp
KSB7CiAgICAgICAgICpwcHZPYmplY3QgPSB0aGlzOwogICAgICAgICBBZGRSZWYoKTsKQEAgLTgz
LDEyICs4MSwxMiBAQCBTVERNRVRIT0RJTVAgIFdDRW51bUZvcm1hdEV0Yzo6UXVlcnlJbnRlCiAg
ICAgcmV0dXJuIEVfTk9JTlRFUkZBQ0U7CiB9CiAKLVNURE1FVEhPRElNUF8oVUxPTkcpIFdDRW51
bUZvcm1hdEV0Yzo6QWRkUmVmKHZvaWQpCitTVERNRVRIT0RJTVBfKFVMT05HKSBXQ0VudW1Gb3Jt
YXRFdGM6OkFkZFJlZigpCiB7CiAgICAgcmV0dXJuIEludGVybG9ja2VkSW5jcmVtZW50KCZtX3Jl
Zik7CiB9CiAKLVNURE1FVEhPRElNUF8oVUxPTkcpIFdDRW51bUZvcm1hdEV0Yzo6UmVsZWFzZSh2
b2lkKQorU1RETUVUSE9ESU1QXyhVTE9ORykgV0NFbnVtRm9ybWF0RXRjOjpSZWxlYXNlKCkKIHsK
ICAgICBsb25nIGMgPSBJbnRlcmxvY2tlZERlY3JlbWVudCgmbV9yZWYpOwogICAgIGlmIChjID09
IDApCkBAIC0xMDMsMTAgKzEwMSwxMCBAQCBTVERNRVRIT0RJTVAgV0NFbnVtRm9ybWF0RXRjOjpO
ZXh0KFVMT05HCiAKICAgICBVTE9ORyBjUmV0dXJuID0gY2VsdDsKIAotICAgIGlmKGNlbHQgPD0g
MCB8fCBscEZvcm1hdEV0YyA9PSAwIHx8IG1fY3VycmVudCA+PSBtX2Zvcm1hdHMuc2l6ZSgpKQor
ICAgIGlmIChjZWx0IDw9IDAgfHwgIWxwRm9ybWF0RXRjIHx8IG1fY3VycmVudCA+PSBtX2Zvcm1h
dHMuc2l6ZSgpKQogICAgICAgICByZXR1cm4gU19GQUxTRTsKIAotICAgIGlmKHBjZWx0RmV0Y2hl
ZCA9PSAwICYmIGNlbHQgIT0gMSkgLy8gcGNlbHRGZXRjaGVkIGNhbiBiZSAwIG9ubHkgZm9yIDEg
aXRlbSByZXF1ZXN0CisgICAgaWYgKCFwY2VsdEZldGNoZWQgJiYgY2VsdCAhPSAxKSAvLyBwY2Vs
dEZldGNoZWQgY2FuIGJlIDAgb25seSBmb3IgMSBpdGVtIHJlcXVlc3QKICAgICAgICAgcmV0dXJu
IFNfRkFMU0U7CiAKICAgICB3aGlsZSAobV9jdXJyZW50IDwgbV9mb3JtYXRzLnNpemUoKSAmJiBj
UmV0dXJuID4gMCkgewpAQCAtMTIxLDcgKzExOSw3IEBAIFNURE1FVEhPRElNUCBXQ0VudW1Gb3Jt
YXRFdGM6Ok5leHQoVUxPTkcKIAogU1RETUVUSE9ESU1QIFdDRW51bUZvcm1hdEV0Yzo6U2tpcChV
TE9ORyBjZWx0KQogewotICAgIGlmKChtX2N1cnJlbnQgKyBpbnQoY2VsdCkpID49IG1fZm9ybWF0
cy5zaXplKCkpCisgICAgaWYgKChtX2N1cnJlbnQgKyBpbnQoY2VsdCkpID49IG1fZm9ybWF0cy5z
aXplKCkpCiAgICAgICAgIHJldHVybiBTX0ZBTFNFOwogICAgIG1fY3VycmVudCArPSBjZWx0Owog
ICAgIHJldHVybiBTX09LOwpAQCAtMTM1LDExICsxMzMsMTEgQEAgU1RETUVUSE9ESU1QIFdDRW51
bUZvcm1hdEV0Yzo6UmVzZXQodm9pZAogCiBTVERNRVRIT0RJTVAgV0NFbnVtRm9ybWF0RXRjOjpD
bG9uZShJRW51bUZPUk1BVEVUQyoqIHBwQ2xvbmVFbnVtRm9ybWF0RXRjKQogewotICAgIGlmKCFw
cENsb25lRW51bUZvcm1hdEV0YykKKyAgICBpZiAoIXBwQ2xvbmVFbnVtRm9ybWF0RXRjKQogICAg
ICAgICByZXR1cm4gRV9QT0lOVEVSOwogCiAgICAgV0NFbnVtRm9ybWF0RXRjICpuZXdFbnVtID0g
bmV3IFdDRW51bUZvcm1hdEV0YyhtX2Zvcm1hdHMpOwotICAgIGlmKCFuZXdFbnVtKQorICAgIGlm
ICghbmV3RW51bSkKICAgICAgICAgcmV0dXJuIEVfT1VUT0ZNRU1PUlk7CiAKICAgICBuZXdFbnVt
LT5BZGRSZWYoKTsKQEAgLTE3MiwxMyArMTcwLDE0IEBAIEhSRVNVTFQgV0NEYXRhT2JqZWN0Ojpj
cmVhdGVJbnN0YW5jZShXQ0QKIH0KIAogV0NEYXRhT2JqZWN0OjpXQ0RhdGFPYmplY3QoKQotOiBt
X3JlZigxKQogewogfQogCi1TVERNRVRIT0RJTVAgV0NEYXRhT2JqZWN0OjpRdWVyeUludGVyZmFj
ZShSRUZJSUQgcmlpZCx2b2lkKiogcHB2T2JqZWN0KQorU1RETUVUSE9ESU1QIFdDRGF0YU9iamVj
dDo6UXVlcnlJbnRlcmZhY2UoX0luXyBSRUZJSUQgcmlpZCwgX0NPTV9PdXRwdHJfIHZvaWQqKiBw
cHZPYmplY3QpCiB7Ci0gICAgKnBwdk9iamVjdCA9IDA7CisgICAgaWYgKCFwcHZPYmplY3QpCisg
ICAgICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKnBwdk9iamVjdCA9IG51bGxwdHI7CiAgICAg
aWYgKElzRXF1YWxJSUQocmlpZCwgSUlEX0lVbmtub3duKSB8fCAKICAgICAgICAgSXNFcXVhbElJ
RChyaWlkLCBJSURfSURhdGFPYmplY3QpKSB7CiAgICAgICAgICpwcHZPYmplY3Q9dGhpczsKQEAg
LTIwNSwxNSArMjA0LDE1IEBAIFNURE1FVEhPRElNUF8oVUxPTkcpIFdDRGF0YU9iamVjdDo6UmVs
ZWEKIAogU1RETUVUSE9ESU1QIFdDRGF0YU9iamVjdDo6R2V0RGF0YShGT1JNQVRFVEMqIHBmb3Jt
YXRldGNJbiwgU1RHTUVESVVNKiBwbWVkaXVtKQogeyAKLSAgICBpZighcGZvcm1hdGV0Y0luIHx8
ICFwbWVkaXVtKQorICAgIGlmICghcGZvcm1hdGV0Y0luIHx8ICFwbWVkaXVtKQogICAgICAgICBy
ZXR1cm4gRV9QT0lOVEVSOwotICAgIHBtZWRpdW0tPmhHbG9iYWwgPSAwOworICAgIHBtZWRpdW0t
PmhHbG9iYWwgPSBudWxscHRyOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2Zvcm1h
dHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYoLypwZm9ybWF0ZXRjSW4tPnR5bWVkICYgbV9m
b3JtYXRzW2ldLT50eW1lZCAmJiovICAgICAvLyB0eW1lZCBjYW4gYmUgMCAoVFlNRURfTlVMTCkg
LSBidXQgaXQgY2FuIGhhdmUgYSBtZWRpdW0gdGhhdCBjb250YWlucyBhbiBwVW5rRm9yUmVsZWFz
ZQotICAgICAgICAgICAgcGZvcm1hdGV0Y0luLT5saW5kZXggPT0gbV9mb3JtYXRzW2ldLT5saW5k
ZXggJiYKLSAgICAgICAgICAgIHBmb3JtYXRldGNJbi0+ZHdBc3BlY3QgPT0gbV9mb3JtYXRzW2ld
LT5kd0FzcGVjdCAmJgotICAgICAgICAgICAgcGZvcm1hdGV0Y0luLT5jZkZvcm1hdCA9PSBtX2Zv
cm1hdHNbaV0tPmNmRm9ybWF0KSB7CisgICAgICAgIGlmICgvKnBmb3JtYXRldGNJbi0+dHltZWQg
JiBtX2Zvcm1hdHNbaV0tPnR5bWVkICYmKi8gLy8gdHltZWQgY2FuIGJlIDAgKFRZTUVEX05VTEwp
IC0gYnV0IGl0IGNhbiBoYXZlIGEgbWVkaXVtIHRoYXQgY29udGFpbnMgYW4gcFVua0ZvclJlbGVh
c2UKKyAgICAgICAgICAgIHBmb3JtYXRldGNJbi0+bGluZGV4ID09IG1fZm9ybWF0c1tpXS0+bGlu
ZGV4CisgICAgICAgICAgICAmJiBwZm9ybWF0ZXRjSW4tPmR3QXNwZWN0ID09IG1fZm9ybWF0c1tp
XS0+ZHdBc3BlY3QKKyAgICAgICAgICAgICYmIHBmb3JtYXRldGNJbi0+Y2ZGb3JtYXQgPT0gbV9m
b3JtYXRzW2ldLT5jZkZvcm1hdCkgewogICAgICAgICAgICAgQ29weU1lZGl1bShwbWVkaXVtLCBt
X21lZGl1bVtpXS5nZXQoKSwgbV9mb3JtYXRzW2ldLmdldCgpKTsKICAgICAgICAgICAgIHJldHVy
biBTX09LOwogICAgICAgICB9CkBAIC0yMjgsNyArMjI3LDcgQEAgU1RETUVUSE9ESU1QIFdDRGF0
YU9iamVjdDo6R2V0RGF0YUhlcmUoRgogCiBTVERNRVRIT0RJTVAgV0NEYXRhT2JqZWN0OjpRdWVy
eUdldERhdGEoRk9STUFURVRDKiBwZm9ybWF0ZXRjKQogeyAKLSAgICBpZighcGZvcm1hdGV0YykK
KyAgICBpZiAoIXBmb3JtYXRldGMpCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAKICAgICBp
ZiAoIShEVkFTUEVDVF9DT05URU5UICYgcGZvcm1hdGV0Yy0+ZHdBc3BlY3QpKQpAQCAtMjU0LDcg
KzI1Myw3IEBAIFNURE1FVEhPRElNUCBXQ0RhdGFPYmplY3Q6OkdldENhbm9uaWNhbEYKIAogU1RE
TUVUSE9ESU1QIFdDRGF0YU9iamVjdDo6U2V0RGF0YShGT1JNQVRFVEMqIHBmb3JtYXRldGMsIFNU
R01FRElVTSogcG1lZGl1bSwgQk9PTCBmUmVsZWFzZSkKIHsgCi0gICAgaWYoIXBmb3JtYXRldGMg
fHwgIXBtZWRpdW0pCisgICAgaWYgKCFwZm9ybWF0ZXRjIHx8ICFwbWVkaXVtKQogICAgICAgICBy
ZXR1cm4gRV9QT0lOVEVSOwogCiAgICAgYXV0byBmZXRjID0gc3RkOjptYWtlX3VuaXF1ZTxGT1JN
QVRFVEM+KCk7CkBAIC0zMDcsMTQgKzMwNiwxNCBAQCB2b2lkIFdDRGF0YU9iamVjdDo6Q29weU1l
ZGl1bShTVEdNRURJVU0qCiAgICAgfQogICAgIHBNZWREZXN0LT50eW1lZCA9IHBNZWRTcmMtPnR5
bWVkOwogICAgIHBNZWREZXN0LT5wVW5rRm9yUmVsZWFzZSA9IDA7Ci0gICAgaWYocE1lZFNyYy0+
cFVua0ZvclJlbGVhc2UgIT0gMCkgeworICAgIGlmIChwTWVkU3JjLT5wVW5rRm9yUmVsZWFzZSkg
ewogICAgICAgICBwTWVkRGVzdC0+cFVua0ZvclJlbGVhc2UgPSBwTWVkU3JjLT5wVW5rRm9yUmVs
ZWFzZTsKICAgICAgICAgcE1lZFNyYy0+cFVua0ZvclJlbGVhc2UtPkFkZFJlZigpOwogICAgIH0K
IH0KIFNURE1FVEhPRElNUCBXQ0RhdGFPYmplY3Q6OkVudW1Gb3JtYXRFdGMoRFdPUkQgZHdEaXJl
Y3Rpb24sIElFbnVtRk9STUFURVRDKiogcHBlbnVtRm9ybWF0RXRjKQogeyAKLSAgICBpZighcHBl
bnVtRm9ybWF0RXRjKQorICAgIGlmICghcHBlbnVtRm9ybWF0RXRjKQogICAgICAgICByZXR1cm4g
RV9QT0lOVEVSOwogCiAgICAgKnBwZW51bUZvcm1hdEV0Yz0wOwpAQCAtMzIyLDcgKzMyMSw3IEBA
IFNURE1FVEhPRElNUCBXQ0RhdGFPYmplY3Q6OkVudW1Gb3JtYXRFdGMKICAgICB7CiAgICAgY2Fz
ZSBEQVRBRElSX0dFVDoKICAgICAgICAgKnBwZW51bUZvcm1hdEV0Yz0gbmV3IFdDRW51bUZvcm1h
dEV0YyhtX2Zvcm1hdHMpOwotICAgICAgICBpZighKCpwcGVudW1Gb3JtYXRFdGMpKQorICAgICAg
ICBpZiAoISgqcHBlbnVtRm9ybWF0RXRjKSkKICAgICAgICAgICAgIHJldHVybiBFX09VVE9GTUVN
T1JZOwogICAgICAgICBicmVhazsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1dDRGF0YU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9XQ0RhdGFPYmplY3QuaAkocmV2aXNpb24gMTg4Njk4KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1dDRGF0YU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDE0LTIwMTUgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYs
OSArNDYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBDb3B5TWVkaXVtKFNUR01FRElVTSogcE1lZERl
c3QsIFNUR01FRElVTSogcE1lZFNyYywgRk9STUFURVRDKiBwRm10U3JjKTsKIAogICAgIC8vSVVu
a25vd24KLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZh
Y2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZPYmplY3QpOyAgICAgICAgCi0gICAgdmlydHVhbCBV
TE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYodm9pZCk7Ci0gICAgdmlydHVhbCBVTE9ORyBT
VERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKHZvaWQpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0
cl8gdm9pZCoqIHBwdk9iamVjdCk7ICAgICAgICAKKyAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhP
RENBTExUWVBFIEFkZFJlZigpOworICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUg
UmVsZWFzZSgpOwogCiAgICAgLy9JRGF0YU9iamVjdAogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBHZXREYXRhKEZPUk1BVEVUQyogcGZvcm1hdEluLCBTVEdNRURJVU0qIHBt
ZWRpdW0pOwpAQCAtNjcsOSArNjcsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBIUkVTVUxUIGNy
ZWF0ZUluc3RhbmNlKFdDRGF0YU9iamVjdCoqLCBjb25zdCBEcmFnRGF0YU1hcCYpOwogcHJpdmF0
ZToKICAgICBXQ0RhdGFPYmplY3QoKTsKLSAgICBsb25nIG1fcmVmOworCiAgICAgVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxGT1JNQVRFVEM+PiBtX2Zvcm1hdHM7CiAgICAgVmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxTVEdNRURJVU0sIFN0Z01lZGl1bURlbGV0ZXI+PiBtX21lZGl1bTsKKyAgICBsb25n
IG1fcmVmIHsgMSB9OwogfTsKIAogfQo=
</data>
<flag name="review"
          id="284731"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>