<?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>63585</bug_id>
          
          <creation_ts>2011-06-28 16:38:54 -0700</creation_ts>
          <short_desc>Switch paintObject and paintReplaced to new layout types</short_desc>
          <delta_ts>2011-06-29 11:32:46 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>eae</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>429258</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-28 16:38:54 -0700</bug_when>
    <thetext>Convert to layout types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429272</commentid>
    <comment_count>1</comment_count>
      <attachid>99002</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-28 16:55:17 -0700</bug_when>
    <thetext>Created attachment 99002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429328</commentid>
    <comment_count>2</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-28 18:06:55 -0700</bug_when>
    <thetext>Committed r89983: &lt;http://trac.webkit.org/changeset/89983&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99002</attachid>
            <date>2011-06-28 16:55:17 -0700</date>
            <delta_ts>2011-06-29 11:32:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63585-20110628165515.patch</filename>
            <type>text/plain</type>
            <size>29101</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5OTc1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMDYtMjggIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN3aXRjaCBwYWludE9iamVjdCBhbmQgcGFpbnRSZXBsYWNl
ZCB0byBuZXcgbGF5b3V0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MzU4NQorCisgICAgICAgIFN3aXRjaGluZyBwYWludE9iamVjdCBhbmQg
cGFpbnRSZXBsYWNlZCB0byBsYXlvdXQgdHlwZSBhYnN0cmFjdGlvbnMgZnJvbSBtb3JlIGludGVn
cmFsIHR5cGVzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGlzIGlzIGp1c3QgbW92aW5n
IHRvIGFuIGFic3RyYWN0aW9uLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVjdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludE9iamVjdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OnBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpwYWludFJlcGxhY2VkKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRSZXBs
YWNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJv
eDo6cGFpbnRPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJSZXBsYWNlZDo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpwYWludE9iamVjdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNl
Y3Rpb246OnBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpwYWludE9iamVjdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZGVvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjpwYWludFJlcGxhY2Vk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlkZW8uaDoKKwogMjAxMS0wNi0yOCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjg5OTY4LgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiA4OTk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NzksNyArMjQ3OSw3IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50Q2FyZXQoUGFpbnRJbmZvJiAKICAgICB9CiB9CiAKLXZv
aWQgUmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJ
bnRQb2ludCYgcGFpbnRPZmZzZXQpCit2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAg
IFBhaW50UGhhc2UgcGFpbnRQaGFzZSA9IHBhaW50SW5mby5waGFzZTsKIApAQCAtMjUwMSw3ICsy
NTAxLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJgogICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBBZGp1c3Qgb3VyIHBhaW50aW5nIHBvc2l0aW9uIGlmIHdlJ3Jl
IGluc2lkZSBhIHNjcm9sbGVkIGxheWVyIChlLmcuLCBhbiBvdmVyZmxvdzphdXRvIGRpdikuCi0g
ICAgSW50UG9pbnQgc2Nyb2xsZWRPZmZzZXQgPSBwYWludE9mZnNldDsKKyAgICBMYXlvdXRQb2lu
dCBzY3JvbGxlZE9mZnNldCA9IHBhaW50T2Zmc2V0OwogICAgIGlmIChoYXNPdmVyZmxvd0NsaXAo
KSkKICAgICAgICAgc2Nyb2xsZWRPZmZzZXQubW92ZSgtbGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50
T2Zmc2V0KCkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAko
cmV2aXNpb24gODk5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDcgKzI5Myw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IGxheW91dFBvc2l0aW9uZWRPYmplY3RzKGJvb2wgcmVsYXlvdXRDaGlsZHJlbik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmKTsKLSAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
IAogICAgIGludCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGludCBwb3NpdGlvbiwgaW50IGZp
eGVkT2Zmc2V0LCBib29sIGFwcGx5VGV4dEluZGVudCA9IHRydWUsIGludCogbG9naWNhbEhlaWdo
dFJlbWFpbmluZyA9IDApIGNvbnN0OwogICAgIGludCBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUo
aW50IHBvc2l0aW9uLCBpbnQgZml4ZWRPZmZzZXQsIGJvb2wgYXBwbHlUZXh0SW5kZW50ID0gdHJ1
ZSwgaW50KiBsb2dpY2FsSGVpZ2h0UmVtYWluaW5nID0gMCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiA4OTk3MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMzUyLDcgKzM1Miw3
IEBAIHB1YmxpYzoKICAgICBib29sIHB1c2hDb250ZW50c0NsaXAoUGFpbnRJbmZvJiwgY29uc3Qg
SW50UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICB2b2lkIHBvcENvbnRlbnRzQ2xpcChQ
YWludEluZm8mLCBQYWludFBoYXNlIG9yaWdpbmFsUGhhc2UsIGNvbnN0IEludFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZv
JiwgY29uc3QgSW50UG9pbnQmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVh
bCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludEJveERlY29yYXRpb25z
KFBhaW50SW5mbyYsIGNvbnN0IEludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50TWFz
ayhQYWludEluZm8mLCBjb25zdCBJbnRQb2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNo
YW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDApOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCShyZXZp
c2lvbiA4OTk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpwYWludChQYWludEluCiAgICAgUmVuZGVyUGFydDo6cGFpbnQocGFpbnRJ
bmZvLCBwYWludE9mZnNldCk7CiB9CiAKLXZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50
UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFBvaW50JiBwYWludE9mZnNl
dCkKK3ZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAgICBpZiAoIXBs
dWdpbkNyYXNoZWRPcldhc01pc3NpbmcoKSkKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgJKHJldmlzaW9u
IDg5OTcwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyRW1iZWRkZWRP
YmplY3QiOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8m
LCBjb25zdCBJbnRQb2ludCYpOworICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50
SW5mbyYsIGNvbnN0IEludFBvaW50Jik7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxl
VXBsb2FkQ29udHJvbC5jcHAJKHJldmlzaW9uIDg5OTcwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYs
NyArNzYsNyBAQCBpbnQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6Om1heEZpbGVuYW1lCiAgICAg
ICAgIC0gKGlucHV0LT5pY29uKCkgPyBpY29uV2lkdGggKyBpY29uRmlsZW5hbWVTcGFjaW5nIDog
MCkpOwogfQogCi12b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwYWludE9iamVjdChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmIHBhaW50T2Zmc2V0KQordm9pZCBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAgICBpZiAoc3R5bGUoKS0+dmlzaWJp
bGl0eSgpICE9IFZJU0lCTEUpCiAgICAgICAgIHJldHVybjsKQEAgLTg0LDcgKzg0LDcgQEAgdm9p
ZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplYwogICAgIC8vIFB1c2ggYSBjbGlw
LgogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqcGFpbnRJbmZvLmNv
bnRleHQsIGZhbHNlKTsKICAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3Jl
Z3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91
bmRzKSB7Ci0gICAgICAgIEludFJlY3QgY2xpcFJlY3QocGFpbnRPZmZzZXQueCgpICsgYm9yZGVy
TGVmdCgpLCBwYWludE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSwKKyAgICAgICAgTGF5b3V0UmVj
dCBjbGlwUmVjdChwYWludE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCksIHBhaW50T2Zmc2V0Lnko
KSArIGJvcmRlclRvcCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCkgLSBib3Jk
ZXJMZWZ0KCkgLSBib3JkZXJSaWdodCgpLCBoZWlnaHQoKSAtIGJvcmRlckJvdHRvbSgpIC0gYm9y
ZGVyVG9wKCkgKyBidXR0b25TaGFkb3dIZWlnaHQpOwogICAgICAgICBpZiAoY2xpcFJlY3QuaXNF
bXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTksNDIgKzk5LDQyIEBAIHZvaWQgUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWMKICAgICAgICAgdGV4dFJ1bi5kaXNhYmxl
Um91bmRpbmdIYWNrcygpOwogCiAgICAgICAgIC8vIERldGVybWluZSB3aGVyZSB0aGUgZmlsZW5h
bWUgc2hvdWxkIGJlIHBsYWNlZAotICAgICAgICBpbnQgY29udGVudExlZnQgPSBwYWludE9mZnNl
dC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpOworICAgICAgICBMYXlvdXRVbml0
IGNvbnRlbnRMZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKTsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCogYnV0dG9uID0gdXBsb2FkQnV0dG9uKCk7
CiAgICAgICAgIGlmICghYnV0dG9uKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5v
ZGUoKSk7Ci0gICAgICAgIGludCBidXR0b25XaWR0aCA9IG5vZGVXaWR0aChidXR0b24pOwotICAg
ICAgICBpbnQgYnV0dG9uQW5kSWNvbldpZHRoID0gYnV0dG9uV2lkdGggKyBhZnRlckJ1dHRvblNw
YWNpbmcKKyAgICAgICAgTGF5b3V0VW5pdCBidXR0b25XaWR0aCA9IG5vZGVXaWR0aChidXR0b24p
OworICAgICAgICBMYXlvdXRVbml0IGJ1dHRvbkFuZEljb25XaWR0aCA9IGJ1dHRvbldpZHRoICsg
YWZ0ZXJCdXR0b25TcGFjaW5nCiAgICAgICAgICAgICArIChpbnB1dC0+aWNvbigpID8gaWNvbldp
ZHRoICsgaWNvbkZpbGVuYW1lU3BhY2luZyA6IDApOwotICAgICAgICBpbnQgdGV4dFg7CisgICAg
ICAgIExheW91dFVuaXQgdGV4dFg7CiAgICAgICAgIGlmIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICB0ZXh0WCA9IGNvbnRlbnRMZWZ0ICsgYnV0dG9uQW5k
SWNvbldpZHRoOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0ZXh0WCA9IGNvbnRlbnRMZWZ0
ICsgY29udGVudFdpZHRoKCkgLSBidXR0b25BbmRJY29uV2lkdGggLSBmb250LndpZHRoKHRleHRS
dW4pOwogICAgICAgICAvLyBXZSB3YW50IHRvIG1hdGNoIHRoZSBidXR0b24ncyBiYXNlbGluZQog
ICAgICAgICBSZW5kZXJCdXR0b24qIGJ1dHRvblJlbmRlcmVyID0gdG9SZW5kZXJCdXR0b24oYnV0
dG9uLT5yZW5kZXJlcigpKTsKLSAgICAgICAgaW50IHRleHRZID0gYnV0dG9uUmVuZGVyZXItPmFi
c29sdXRlQm91bmRpbmdCb3hSZWN0KCkueSgpCisgICAgICAgIExheW91dFVuaXQgdGV4dFkgPSBi
dXR0b25SZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKS55KCkKICAgICAgICAgICAg
ICsgYnV0dG9uUmVuZGVyZXItPm1hcmdpblRvcCgpICsgYnV0dG9uUmVuZGVyZXItPmJvcmRlclRv
cCgpICsgYnV0dG9uUmVuZGVyZXItPnBhZGRpbmdUb3AoKQogICAgICAgICAgICAgKyBidXR0b25S
ZW5kZXJlci0+YmFzZWxpbmVQb3NpdGlvbihBbHBoYWJldGljQmFzZWxpbmUsIHRydWUsIEhvcml6
b250YWxMaW5lLCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpOwogCiAgICAgICAgIHBhaW50SW5m
by5jb250ZXh0LT5zZXRGaWxsQ29sb3Ioc3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENT
U1Byb3BlcnR5Q29sb3IpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCkpOwogICAgICAgICAKICAgICAg
ICAgLy8gRHJhdyB0aGUgZmlsZW5hbWUKLSAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmRyYXdC
aWRpVGV4dChmb250LCB0ZXh0UnVuLCBJbnRQb2ludCh0ZXh0WCwgdGV4dFkpKTsKKyAgICAgICAg
cGFpbnRJbmZvLmNvbnRleHQtPmRyYXdCaWRpVGV4dChmb250LCB0ZXh0UnVuLCBMYXlvdXRQb2lu
dCh0ZXh0WCwgdGV4dFkpKTsKICAgICAgICAgCiAgICAgICAgIGlmIChpbnB1dC0+aWNvbigpKSB7
CiAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgd2hlcmUgdGhlIGljb24gc2hvdWxkIGJlIHBsYWNl
ZAotICAgICAgICAgICAgaW50IGljb25ZID0gcGFpbnRPZmZzZXQueSgpICsgYm9yZGVyVG9wKCkg
KyBwYWRkaW5nVG9wKCkgKyAoY29udGVudEhlaWdodCgpIC0gaWNvbkhlaWdodCkgLyAyOwotICAg
ICAgICAgICAgaW50IGljb25YOworICAgICAgICAgICAgTGF5b3V0VW5pdCBpY29uWSA9IHBhaW50
T2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpICsgKGNvbnRlbnRIZWlnaHQo
KSAtIGljb25IZWlnaHQpIC8gMjsKKyAgICAgICAgICAgIExheW91dFVuaXQgaWNvblg7CiAgICAg
ICAgICAgICBpZiAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQogICAgICAgICAg
ICAgICAgIGljb25YID0gY29udGVudExlZnQgKyBidXR0b25XaWR0aCArIGFmdGVyQnV0dG9uU3Bh
Y2luZzsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBpY29uWCA9IGNvbnRlbnRM
ZWZ0ICsgY29udGVudFdpZHRoKCkgLSBidXR0b25XaWR0aCAtIGFmdGVyQnV0dG9uU3BhY2luZyAt
IGljb25XaWR0aDsKIAogICAgICAgICAgICAgLy8gRHJhdyB0aGUgZmlsZSBpY29uCi0gICAgICAg
ICAgICBpbnB1dC0+aWNvbigpLT5wYWludChwYWludEluZm8uY29udGV4dCwgSW50UmVjdChpY29u
WCwgaWNvblksIGljb25XaWR0aCwgaWNvbkhlaWdodCkpOworICAgICAgICAgICAgaW5wdXQtPmlj
b24oKS0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIExheW91dFJlY3QoaWNvblgsIGljb25ZLCBp
Y29uV2lkdGgsIGljb25IZWlnaHQpKTsKICAgICAgICAgfQogICAgIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgJKHJl
dmlzaW9uIDg5OTcwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOwotICAgIHZpcnR1YWwgdm9pZCBwYWludE9i
amVjdChQYWludEluZm8mLCBjb25zdCBJbnRQb2ludCYpOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dE9iamVjdChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogCiAgICAgdmlydHVhbCBi
b29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52
YXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1M
Q2FudmFzLmNwcAkocmV2aXNpb24gODk5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySFRNTENhbnZhcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDkgKzU0LDkgQEAgYm9v
bCBSZW5kZXJIVE1MQ2FudmFzOjpyZXF1aXJlc0xheWVyKCkgYwogICAgIHJldHVybiBjYW52YXMg
JiYgY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkgJiYgY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0
KCktPmlzQWNjZWxlcmF0ZWQoKTsKIH0KIAotdm9pZCBSZW5kZXJIVE1MQ2FudmFzOjpwYWludFJl
cGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYgcGFpbnRPZmZzZXQp
Cit2b2lkIFJlbmRlckhUTUxDYW52YXM6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSAgICBJbnRSZWN0IHJlY3Qg
PSBjb250ZW50Qm94UmVjdCgpOworICAgIExheW91dFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hSZWN0
KCk7CiAgICAgcmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOwogICAgIGJvb2wgdXNlTG93UXVhbGl0
eVNjYWxlID0gc3R5bGUoKS0+aW1hZ2VSZW5kZXJpbmcoKSA9PSBJbWFnZVJlbmRlcmluZ09wdGlt
aXplQ29udHJhc3Q7CiAgICAgc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihub2RlKCkp
LT5wYWludChwYWludEluZm8uY29udGV4dCwgcmVjdCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaAkocmV2aXNp
b24gODk5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICAKIHByaXZhdGU6
CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJl
bmRlckhUTUxDYW52YXMiOyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJ
bmZvJiwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCBpbnRyaW5z
aWNTaXplQ2hhbmdlZCgpIHsgY2FudmFzU2l6ZUNoYW5nZWQoKTsgfQogfTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCShyZXZpc2lvbiA4OTk3MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIzMSwxNCArMjMxLDE0IEBAIHZvaWQgUmVuZGVySW1hZ2U6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFIKICNlbmRpZgogfQogCi12b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYgcGFpbnRPZmZzZXQpCit2b2lkIFJlbmRl
ckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbnRPZmZzZXQpCiB7Ci0gICAgaW50IGNXaWR0aCA9IGNvbnRlbnRXaWR0aCgpOwot
ICAgIGludCBjSGVpZ2h0ID0gY29udGVudEhlaWdodCgpOwotICAgIGludCBsZWZ0Qm9yZGVyID0g
Ym9yZGVyTGVmdCgpOwotICAgIGludCB0b3BCb3JkZXIgPSBib3JkZXJUb3AoKTsKLSAgICBpbnQg
bGVmdFBhZCA9IHBhZGRpbmdMZWZ0KCk7Ci0gICAgaW50IHRvcFBhZCA9IHBhZGRpbmdUb3AoKTsK
KyAgICBMYXlvdXRVbml0IGNXaWR0aCA9IGNvbnRlbnRXaWR0aCgpOworICAgIExheW91dFVuaXQg
Y0hlaWdodCA9IGNvbnRlbnRIZWlnaHQoKTsKKyAgICBMYXlvdXRVbml0IGxlZnRCb3JkZXIgPSBi
b3JkZXJMZWZ0KCk7CisgICAgTGF5b3V0VW5pdCB0b3BCb3JkZXIgPSBib3JkZXJUb3AoKTsKKyAg
ICBMYXlvdXRVbml0IGxlZnRQYWQgPSBwYWRkaW5nTGVmdCgpOworICAgIExheW91dFVuaXQgdG9w
UGFkID0gcGFkZGluZ1RvcCgpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFp
bnRJbmZvLmNvbnRleHQ7CiAKQEAgLTI1MSwyNiArMjUxLDI2IEBAIHZvaWQgUmVuZGVySW1hZ2U6
OnBhaW50UmVwbGFjZWQoUGFpbnRJbmYKICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVN0
eWxlKFNvbGlkU3Ryb2tlKTsKICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKENv
bG9yOjpsaWdodEdyYXksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7CiAgICAgICAgICAgICBjb250
ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6OnRyYW5zcGFyZW50LCBzdHlsZSgpLT5jb2xvclNwYWNl
KCkpOwotICAgICAgICAgICAgY29udGV4dC0+ZHJhd1JlY3QoSW50UmVjdChwYWludE9mZnNldC54
KCkgKyBsZWZ0Qm9yZGVyICsgbGVmdFBhZCwgcGFpbnRPZmZzZXQueSgpICsgdG9wQm9yZGVyICsg
dG9wUGFkLCBjV2lkdGgsIGNIZWlnaHQpKTsKKyAgICAgICAgICAgIGNvbnRleHQtPmRyYXdSZWN0
KExheW91dFJlY3QocGFpbnRPZmZzZXQueCgpICsgbGVmdEJvcmRlciArIGxlZnRQYWQsIHBhaW50
T2Zmc2V0LnkoKSArIHRvcEJvcmRlciArIHRvcFBhZCwgY1dpZHRoLCBjSGVpZ2h0KSk7CiAKICAg
ICAgICAgICAgIGJvb2wgZXJyb3JQaWN0dXJlRHJhd24gPSBmYWxzZTsKLSAgICAgICAgICAgIElu
dFNpemUgaW1hZ2VPZmZzZXQ7CisgICAgICAgICAgICBMYXlvdXRTaXplIGltYWdlT2Zmc2V0Owog
ICAgICAgICAgICAgLy8gV2hlbiBjYWxjdWxhdGluZyB0aGUgdXNhYmxlIGRpbWVuc2lvbnMsIGV4
Y2x1ZGUgdGhlIHBpeGVscyBvZgogICAgICAgICAgICAgLy8gdGhlIG91bGluZSByZWN0IHNvIHRo
ZSBlcnJvciBpbWFnZS9hbHQgdGV4dCBkb2Vzbid0IGRyYXcgb24gaXQuCi0gICAgICAgICAgICBp
bnQgdXNhYmxlV2lkdGggPSBjV2lkdGggLSAyOwotICAgICAgICAgICAgaW50IHVzYWJsZUhlaWdo
dCA9IGNIZWlnaHQgLSAyOworICAgICAgICAgICAgTGF5b3V0VW5pdCB1c2FibGVXaWR0aCA9IGNX
aWR0aCAtIDI7CisgICAgICAgICAgICBMYXlvdXRVbml0IHVzYWJsZUhlaWdodCA9IGNIZWlnaHQg
LSAyOwogCiAgICAgICAgICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9pbWFnZVJlc291cmNl
LT5pbWFnZSgpOwogCiAgICAgICAgICAgICBpZiAobV9pbWFnZVJlc291cmNlLT5lcnJvck9jY3Vy
cmVkKCkgJiYgIWltYWdlLT5pc051bGwoKSAmJiB1c2FibGVXaWR0aCA+PSBpbWFnZS0+d2lkdGgo
KSAmJiB1c2FibGVIZWlnaHQgPj0gaW1hZ2UtPmhlaWdodCgpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gQ2VudGVyIHRoZSBlcnJvciBpbWFnZSwgYWNjb3VudGluZyBmb3IgYm9yZGVyIGFuZCBwYWRk
aW5nLgotICAgICAgICAgICAgICAgIGludCBjZW50ZXJYID0gKHVzYWJsZVdpZHRoIC0gaW1hZ2Ut
PndpZHRoKCkpIC8gMjsKKyAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGNlbnRlclggPSAodXNh
YmxlV2lkdGggLSBpbWFnZS0+d2lkdGgoKSkgLyAyOwogICAgICAgICAgICAgICAgIGlmIChjZW50
ZXJYIDwgMCkKICAgICAgICAgICAgICAgICAgICAgY2VudGVyWCA9IDA7Ci0gICAgICAgICAgICAg
ICAgaW50IGNlbnRlclkgPSAodXNhYmxlSGVpZ2h0IC0gaW1hZ2UtPmhlaWdodCgpKSAvIDI7Cisg
ICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBjZW50ZXJZID0gKHVzYWJsZUhlaWdodCAtIGltYWdl
LT5oZWlnaHQoKSkgLyAyOwogICAgICAgICAgICAgICAgIGlmIChjZW50ZXJZIDwgMCkKICAgICAg
ICAgICAgICAgICAgICAgY2VudGVyWSA9IDA7Ci0gICAgICAgICAgICAgICAgaW1hZ2VPZmZzZXQg
PSBJbnRTaXplKGxlZnRCb3JkZXIgKyBsZWZ0UGFkICsgY2VudGVyWCArIDEsIHRvcEJvcmRlciAr
IHRvcFBhZCArIGNlbnRlclkgKyAxKTsKKyAgICAgICAgICAgICAgICBpbWFnZU9mZnNldCA9IExh
eW91dFNpemUobGVmdEJvcmRlciArIGxlZnRQYWQgKyBjZW50ZXJYICsgMSwgdG9wQm9yZGVyICsg
dG9wUGFkICsgY2VudGVyWSArIDEpOwogICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFn
ZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBwYWludE9mZnNldCArIGltYWdl
T2Zmc2V0KTsKICAgICAgICAgICAgICAgICBlcnJvclBpY3R1cmVEcmF3biA9IHRydWU7CiAgICAg
ICAgICAgICB9CkBAIC0yODAsMTQgKzI4MCwxNCBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludFJl
cGxhY2VkKFBhaW50SW5mCiAgICAgICAgICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKHN0
eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKSwgc3R5bGUoKS0+
Y29sb3JTcGFjZSgpKTsKICAgICAgICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUo
KS0+Zm9udCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IEZvbnRNZXRyaWNzJiBmb250TWV0cmlj
cyA9IGZvbnQuZm9udE1ldHJpY3MoKTsKLSAgICAgICAgICAgICAgICBpbnQgYXNjZW50ID0gZm9u
dE1ldHJpY3MuYXNjZW50KCk7Ci0gICAgICAgICAgICAgICAgSW50UG9pbnQgYWx0VGV4dE9mZnNl
dCA9IHBhaW50T2Zmc2V0OworICAgICAgICAgICAgICAgIExheW91dFVuaXQgYXNjZW50ID0gZm9u
dE1ldHJpY3MuYXNjZW50KCk7CisgICAgICAgICAgICAgICAgTGF5b3V0UG9pbnQgYWx0VGV4dE9m
ZnNldCA9IHBhaW50T2Zmc2V0OwogICAgICAgICAgICAgICAgIGFsdFRleHRPZmZzZXQubW92ZShs
ZWZ0Qm9yZGVyICsgbGVmdFBhZCwgdG9wQm9yZGVyICsgdG9wUGFkICsgYXNjZW50KTsKIAogICAg
ICAgICAgICAgICAgIC8vIE9ubHkgZHJhdyB0aGUgYWx0IHRleHQgaWYgaXQnbGwgZml0IHdpdGhp
biB0aGUgY29udGVudCBib3gsCiAgICAgICAgICAgICAgICAgLy8gYW5kIG9ubHkgaWYgaXQgZml0
cyBhYm92ZSB0aGUgZXJyb3IgaW1hZ2UuCiAgICAgICAgICAgICAgICAgVGV4dFJ1biB0ZXh0UnVu
ID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4odGhpcywgZm9udCwgdGV4dCwgc3R5bGUo
KSk7Ci0gICAgICAgICAgICAgICAgaW50IHRleHRXaWR0aCA9IGZvbnQud2lkdGgodGV4dFJ1bik7
CisgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCB0ZXh0V2lkdGggPSBmb250LndpZHRoKHRleHRS
dW4pOwogICAgICAgICAgICAgICAgIGlmIChlcnJvclBpY3R1cmVEcmF3bikgewogICAgICAgICAg
ICAgICAgICAgICBpZiAodXNhYmxlV2lkdGggPj0gdGV4dFdpZHRoICYmIGZvbnRNZXRyaWNzLmhl
aWdodCgpIDw9IGltYWdlT2Zmc2V0LmhlaWdodCgpKQogICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgYWx0VGV4dE9mZnNldCk7CkBAIC0zMDUs
MTAgKzMwNSwxMCBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mCiAg
ICAgICAgICAgICBwYWludEN1c3RvbUhpZ2hsaWdodCh0b1BvaW50KHBhaW50T2Zmc2V0IC0gbG9j
YXRpb24oKSksIHN0eWxlKCktPmhpZ2hsaWdodCgpLCB0cnVlKTsKICNlbmRpZgogCi0gICAgICAg
IEludFNpemUgY29udGVudFNpemUoY1dpZHRoLCBjSGVpZ2h0KTsKLSAgICAgICAgSW50UG9pbnQg
Y29udGVudExvY2F0aW9uID0gcGFpbnRPZmZzZXQ7CisgICAgICAgIExheW91dFNpemUgY29udGVu
dFNpemUoY1dpZHRoLCBjSGVpZ2h0KTsKKyAgICAgICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0
aW9uID0gcGFpbnRPZmZzZXQ7CiAgICAgICAgIGNvbnRlbnRMb2NhdGlvbi5tb3ZlKGxlZnRCb3Jk
ZXIgKyBsZWZ0UGFkLCB0b3BCb3JkZXIgKyB0b3BQYWQpOwotICAgICAgICBwYWludEludG9SZWN0
KGNvbnRleHQsIEludFJlY3QoY29udGVudExvY2F0aW9uLCBjb250ZW50U2l6ZSkpOworICAgICAg
ICBwYWludEludG9SZWN0KGNvbnRleHQsIExheW91dFJlY3QoY29udGVudExvY2F0aW9uLCBjb250
ZW50U2l6ZSkpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmgJKHJldmlzaW9uIDg5OTcwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNSZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IEludFBvaW50Jik7Cisg
ICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKTsKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1SZXBsYWNlZEhlaWdodCgpIGNvbnN0Owog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCShyZXZp
c2lvbiA4OTk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYxLDcgKzI2MSw3IEBAIEludFJlY3QgUmVuZGVyTGlzdEJv
eDo6aXRlbUJvdW5kaW5nQm94UmUKICAgICAgICAgICAgICAgICAgICBjb250ZW50V2lkdGgoKSwg
aXRlbUhlaWdodCgpKTsKIH0KICAgICAKLXZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRPYmplY3Qo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFBvaW50JiBwYWludE9mZnNldCkKK3ZvaWQg
UmVuZGVyTGlzdEJveDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgp
ICE9IFZJU0lCTEUpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guaAkocmV2aXNpb24gODk5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udHJvbENsaXAoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYs
IGNvbnN0IEludFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCBJbnRSZWN0IGNvbnRyb2xDbGlw
UmVjdChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGlzUG9pbnRJ
bk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVzdWx0JiwgY29uc3QgSW50UG9pbnQmIHBvaW50SW5D
b250YWluZXIsIGNvbnN0IEludFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAkocmV2aXNpb24gODk5NzApCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAkod29ya2luZyBjb3B5
KQpAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogICAgIGludCBjYWxjQXNwZWN0UmF0aW9Mb2dp
Y2FsV2lkdGgoKSBjb25zdDsKICAgICBpbnQgY2FsY0FzcGVjdFJhdGlvTG9naWNhbEhlaWdodCgp
IGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29u
c3QgSW50UG9pbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludElu
Zm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIHsgfQogCiAgICAgdmlydHVhbCBJbnRSZWN0IGNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3Bw
CShyZXZpc2lvbiA4OTk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lkIFJlbmRlclRhYmxl
OjpwYWludChQYWludEluZm8mIHBhaW50CiAgICAgICAgIHBvcENvbnRlbnRzQ2xpcChwYWludElu
Zm8sIHBhaW50UGhhc2UsIGFkanVzdGVkUGFpbnRPZmZzZXQpOwogfQogCi12b2lkIFJlbmRlclRh
YmxlOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmIHBh
aW50T2Zmc2V0KQordm9pZCBSZW5kZXJUYWJsZTo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAgICBQYWludFBoYXNl
IHBhaW50UGhhc2UgPSBwYWludEluZm8ucGhhc2U7CiAgICAgaWYgKChwYWludFBoYXNlID09IFBh
aW50UGhhc2VCbG9ja0JhY2tncm91bmQgfHwgcGFpbnRQaGFzZSA9PSBQYWludFBoYXNlQ2hpbGRC
bG9ja0JhY2tncm91bmQpICYmIGhhc0JveERlY29yYXRpb25zKCkgJiYgc3R5bGUoKS0+dmlzaWJp
bGl0eSgpID09IFZJU0lCTEUpCkBAIC00OTcsNyArNDk3LDcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6
cGFpbnRPYmplY3QoUGFpbnRJbmZvJgogCiAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0g
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAg
ICAgICBpZiAoY2hpbGQtPmlzQm94KCkgJiYgIXRvUmVuZGVyQm94KGNoaWxkKS0+aGFzU2VsZlBh
aW50aW5nTGF5ZXIoKSAmJiAoY2hpbGQtPmlzVGFibGVTZWN0aW9uKCkgfHwgY2hpbGQgPT0gbV9j
YXB0aW9uKSkgewotICAgICAgICAgICAgSW50UG9pbnQgY2hpbGRQb2ludCA9IGZsaXBGb3JXcml0
aW5nTW9kZSh0b1JlbmRlckJveChjaGlsZCksIHBhaW50T2Zmc2V0LCBQYXJlbnRUb0NoaWxkRmxp
cHBpbmdBZGp1c3RtZW50KTsKKyAgICAgICAgICAgIExheW91dFBvaW50IGNoaWxkUG9pbnQgPSBm
bGlwRm9yV3JpdGluZ01vZGUodG9SZW5kZXJCb3goY2hpbGQpLCBwYWludE9mZnNldCwgUGFyZW50
VG9DaGlsZEZsaXBwaW5nQWRqdXN0bWVudCk7CiAgICAgICAgICAgICBjaGlsZC0+cGFpbnQoaW5m
bywgY2hpbGRQb2ludCk7CiAgICAgICAgIH0KICAgICB9CkBAIC01MTksNyArNTE5LDcgQEAgdm9p
ZCBSZW5kZXJUYWJsZTo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJgogICAgICAgICAgICAgbV9jdXJy
ZW50Qm9yZGVyID0gJmJvcmRlclN0eWxlc1tpXTsKICAgICAgICAgICAgIGZvciAoUmVuZGVyT2Jq
ZWN0KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nKCkpCiAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLT5pc1RhYmxlU2VjdGlvbigpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIEludFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRm9yV3JpdGluZ01v
ZGUodG9SZW5kZXJUYWJsZVNlY3Rpb24oY2hpbGQpLCBwYWludE9mZnNldCwgUGFyZW50VG9DaGls
ZEZsaXBwaW5nQWRqdXN0bWVudCk7CisgICAgICAgICAgICAgICAgICAgIExheW91dFBvaW50IGNo
aWxkUG9pbnQgPSBmbGlwRm9yV3JpdGluZ01vZGUodG9SZW5kZXJUYWJsZVNlY3Rpb24oY2hpbGQp
LCBwYWludE9mZnNldCwgUGFyZW50VG9DaGlsZEZsaXBwaW5nQWRqdXN0bWVudCk7CiAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkLT5wYWludChpbmZvLCBjaGlsZFBvaW50KTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTUyOCw3ICs1MjgsNyBAQCB2b2lkIFJlbmRlclRhYmxlOjpw
YWludE9iamVjdChQYWludEluZm8mCiAKICAgICAvLyBQYWludCBvdXRsaW5lLgogICAgIGlmICgo
cGFpbnRQaGFzZSA9PSBQYWludFBoYXNlT3V0bGluZSB8fCBwYWludFBoYXNlID09IFBhaW50UGhh
c2VTZWxmT3V0bGluZSkgJiYgaGFzT3V0bGluZSgpICYmIHN0eWxlKCktPnZpc2liaWxpdHkoKSA9
PSBWSVNJQkxFKQotICAgICAgICBwYWludE91dGxpbmUocGFpbnRJbmZvLmNvbnRleHQsIEludFJl
Y3QocGFpbnRPZmZzZXQsIHNpemUoKSkpOworICAgICAgICBwYWludE91dGxpbmUocGFpbnRJbmZv
LmNvbnRleHQsIExheW91dFJlY3QocGFpbnRPZmZzZXQsIHNpemUoKSkpOwogfQogCiB2b2lkIFJl
bmRlclRhYmxlOjpzdWJ0cmFjdENhcHRpb25SZWN0KEludFJlY3QmIHJlY3QpIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAkocmV2aXNpb24gODk5NzApCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjE1LDcgKzIxNSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxk
KFJlbmRlck9iamVjdCogb2xkQ2hpbGQpOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50
SW5mbyYsIGNvbnN0IEludFBvaW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBh
aW50SW5mbyYsIGNvbnN0IEludFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50
Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmKTsKICAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRNYXNrKFBhaW50SW5mbyYsIGNvbnN0IEludFBvaW50Jik7CiAgICAgdmlydHVh
bCB2b2lkIGxheW91dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5jcHAJKHJldmlzaW9uIDg5OTcwKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0Nyw3
ICs5NDcsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6cGFpbnRDZWxsKFJlbmRlCiAgICAg
ICAgIGNlbGwtPnBhaW50KHBhaW50SW5mbywgY2VsbFBvaW50KTsKIH0KIAotdm9pZCBSZW5kZXJU
YWJsZVNlY3Rpb246OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQ
b2ludCYgcGFpbnRPZmZzZXQpCit2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6cGFpbnRPYmplY3Qo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsK
ICAgICAvLyBDaGVjayB3aGljaCByb3dzIGFuZCBjb2xzIGFyZSB2aXNpYmxlIGFuZCBvbmx5IHBh
aW50IHRoZXNlLgogICAgIC8vIEZJWE1FOiBDb3VsZCB1c2UgYSBiaW5hcnkgc2VhcmNoIGhlcmUu
CkBAIC05NTYsMTEgKzk1NiwxMSBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6cGFpbnRPYmpl
Y3QoUGFpCiAKICAgICBQYWludFBoYXNlIHBhaW50UGhhc2UgPSBwYWludEluZm8ucGhhc2U7CiAK
LSAgICBpbnQgb3MgPSAyICogbWF4aW1hbE91dGxpbmVTaXplKHBhaW50UGhhc2UpOworICAgIExh
eW91dFVuaXQgb3MgPSAyICogbWF4aW1hbE91dGxpbmVTaXplKHBhaW50UGhhc2UpOwogICAgIHVu
c2lnbmVkIHN0YXJ0cm93ID0gMDsKICAgICB1bnNpZ25lZCBlbmRyb3cgPSB0b3RhbFJvd3M7CiAK
LSAgICBJbnRSZWN0IGxvY2FsUmVwYWludFJlY3QgPSBwYWludEluZm8ucmVjdDsKKyAgICBMYXlv
dXRSZWN0IGxvY2FsUmVwYWludFJlY3QgPSBwYWludEluZm8ucmVjdDsKICAgICBsb2NhbFJlcGFp
bnRSZWN0Lm1vdmVCeSgtcGFpbnRPZmZzZXQpOwogICAgIGlmIChzdHlsZSgpLT5pc0ZsaXBwZWRC
bG9ja3NXcml0aW5nTW9kZSgpKSB7CiAgICAgICAgIGlmIChzdHlsZSgpLT5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQpAQCAtOTcxLDcgKzk3MSw3IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0aW9u
OjpwYWludE9iamVjdChQYWkKIAogICAgIC8vIElmIHNvbWUgY2VsbCBvdmVyZmxvd3MsIGp1c3Qg
cGFpbnQgYWxsIG9mIHRoZW0uCiAgICAgaWYgKCFtX2hhc092ZXJmbG93aW5nQ2VsbCkgewotICAg
ICAgICBpbnQgYmVmb3JlID0gKHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBs
b2NhbFJlcGFpbnRSZWN0LnkoKSA6IGxvY2FsUmVwYWludFJlY3QueCgpKSAtIG9zOworICAgICAg
ICBMYXlvdXRVbml0IGJlZm9yZSA9IChzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gbG9jYWxSZXBhaW50UmVjdC55KCkgOiBsb2NhbFJlcGFpbnRSZWN0LngoKSkgLSBvczsKICAg
ICAgICAgLy8gYmluYXJ5IHNlYXJjaCB0byBmaW5kIGEgcm93CiAgICAgICAgIHN0YXJ0cm93ID0g
c3RkOjpsb3dlcl9ib3VuZChtX3Jvd1Bvcy5iZWdpbigpLCBtX3Jvd1Bvcy5lbmQoKSwgYmVmb3Jl
KSAtIG1fcm93UG9zLmJlZ2luKCk7CiAKQEAgLTk4MSw3ICs5ODEsNyBAQCB2b2lkIFJlbmRlclRh
YmxlU2VjdGlvbjo6cGFpbnRPYmplY3QoUGFpCiAgICAgICAgIGlmIChzdGFydHJvdyA9PSBtX3Jv
d1Bvcy5zaXplKCkgfHwgKHN0YXJ0cm93ID4gMCAmJiAobV9yb3dQb3Nbc3RhcnRyb3ddID4gIGJl
Zm9yZSkpKQogICAgICAgICAgIC0tc3RhcnRyb3c7CiAKLSAgICAgICAgaW50IGFmdGVyID0gKHN0
eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBsb2NhbFJlcGFpbnRSZWN0Lm1heFko
KSA6IGxvY2FsUmVwYWludFJlY3QubWF4WCgpKSArIG9zOworICAgICAgICBMYXlvdXRVbml0IGFm
dGVyID0gKHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBsb2NhbFJlcGFpbnRS
ZWN0Lm1heFkoKSA6IGxvY2FsUmVwYWludFJlY3QubWF4WCgpKSArIG9zOwogICAgICAgICBlbmRy
b3cgPSBzdGQ6Omxvd2VyX2JvdW5kKG1fcm93UG9zLmJlZ2luKCksIG1fcm93UG9zLmVuZCgpLCBh
ZnRlcikgLSBtX3Jvd1Bvcy5iZWdpbigpOwogICAgICAgICBpZiAoZW5kcm93ID09IG1fcm93UG9z
LnNpemUoKSkKICAgICAgICAgICAtLWVuZHJvdzsKQEAgLTk5NCwxMyArOTk0LDEzIEBAIHZvaWQg
UmVuZGVyVGFibGVTZWN0aW9uOjpwYWludE9iamVjdChQYWkKICAgICB1bnNpZ25lZCBlbmRjb2wg
PSB0b3RhbENvbHM7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBSVEwuCiAgICAgaWYgKCFtX2hh
c092ZXJmbG93aW5nQ2VsbCAmJiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpIHsK
LSAgICAgICAgaW50IHN0YXJ0ID0gKHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBsb2NhbFJlcGFpbnRSZWN0LngoKSA6IGxvY2FsUmVwYWludFJlY3QueSgpKSAtIG9zOworICAg
ICAgICBMYXlvdXRVbml0IHN0YXJ0ID0gKHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyBsb2NhbFJlcGFpbnRSZWN0LngoKSA6IGxvY2FsUmVwYWludFJlY3QueSgpKSAtIG9zOwog
ICAgICAgICBWZWN0b3I8aW50PiYgY29sdW1uUG9zID0gdGFibGUoKS0+Y29sdW1uUG9zaXRpb25z
KCk7CiAgICAgICAgIHN0YXJ0Y29sID0gc3RkOjpsb3dlcl9ib3VuZChjb2x1bW5Qb3MuYmVnaW4o
KSwgY29sdW1uUG9zLmVuZCgpLCBzdGFydCkgLSBjb2x1bW5Qb3MuYmVnaW4oKTsKICAgICAgICAg
aWYgKChzdGFydGNvbCA9PSBjb2x1bW5Qb3Muc2l6ZSgpKSB8fCAoc3RhcnRjb2wgPiAwICYmIChj
b2x1bW5Qb3Nbc3RhcnRjb2xdID4gc3RhcnQpKSkKICAgICAgICAgICAgIC0tc3RhcnRjb2w7CiAK
LSAgICAgICAgaW50IGVuZCA9IChzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8g
bG9jYWxSZXBhaW50UmVjdC5tYXhYKCkgOiBsb2NhbFJlcGFpbnRSZWN0Lm1heFkoKSkgKyBvczsK
KyAgICAgICAgTGF5b3V0VW5pdCBlbmQgPSAoc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA/IGxvY2FsUmVwYWludFJlY3QubWF4WCgpIDogbG9jYWxSZXBhaW50UmVjdC5tYXhZKCkp
ICsgb3M7CiAgICAgICAgIGVuZGNvbCA9IHN0ZDo6bG93ZXJfYm91bmQoY29sdW1uUG9zLmJlZ2lu
KCksIGNvbHVtblBvcy5lbmQoKSwgZW5kKSAtIGNvbHVtblBvcy5iZWdpbigpOwogICAgICAgICBp
ZiAoZW5kY29sID09IGNvbHVtblBvcy5zaXplKCkpCiAgICAgICAgICAgICAtLWVuZGNvbDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgJKHJl
dmlzaW9uIDg5OTcwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2Vj
dGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBJbnRQb2ludCYpOwogICAgIHZp
cnR1YWwgdm9pZCBwYWludENlbGwoUmVuZGVyVGFibGVDZWxsKiwgUGFpbnRJbmZvJiwgY29uc3Qg
SW50UG9pbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwgY29u
c3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3Jh
cHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDApOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDg5OTcwKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjMyLDcgKzYzMiw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnBhaW50
UGxhY2Vob2xkZXIKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnBhaW50T2Jq
ZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYgcGFpbnRPZmZzZXQpCit2
b2lkIFJlbmRlclRleHRDb250cm9sOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogeyAgICAKICAgICBpZiAobV9wbGFjZWhv
bGRlclZpc2libGUgJiYgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQog
ICAgICAgICBwYWludFBsYWNlaG9sZGVyKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHJldmlzaW9u
IDg5OTcwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTkwLDcgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlTGVmdG92ZXJBbm9ueW1vdXNCbG9jayhSZW5kZXJCbG9jayopIHsgfQogICAgIHZp
cnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBhdm9pZHNGbG9hdHMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IEludFBvaW50Jik7Cisg
ICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
Jik7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYsIGNvbnN0IEludFBvaW50Jik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZGVvLmNwcAkocmV2aXNpb24gODk5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlkZW8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNyArMTg4LDcgQEAg
Ym9vbCBSZW5kZXJWaWRlbzo6c2hvdWxkRGlzcGxheVZpZGVvKCkgYwogICAgIHJldHVybiAhdmlk
ZW9FbGVtZW50KCktPnNob3VsZERpc3BsYXlQb3N0ZXJJbWFnZSgpOwogfQogCi12b2lkIFJlbmRl
clZpZGVvOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2lu
dCYgcGFpbnRPZmZzZXQpCit2b2lkIFJlbmRlclZpZGVvOjpwYWludFJlcGxhY2VkKFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgTWVk
aWFQbGF5ZXIqIG1lZGlhUGxheWVyID0gbWVkaWFFbGVtZW50KCktPnBsYXllcigpOwogICAgIGJv
b2wgZGlzcGxheWluZ1Bvc3RlciA9IHZpZGVvRWxlbWVudCgpLT5zaG91bGREaXNwbGF5UG9zdGVy
SW1hZ2UoKTsKQEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFJlbmRlclZpZGVvOjpwYWludFJlcGxh
Y2VkKFBhaW50SW5mCiAgICAgICAgIHVwZGF0ZVBsYXllcigpOwogICAgIH0KIAotICAgIEludFJl
Y3QgcmVjdCA9IHZpZGVvQm94KCk7CisgICAgTGF5b3V0UmVjdCByZWN0ID0gdmlkZW9Cb3goKTsK
ICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKICAgICByZWN0Lm1vdmVC
eShwYWludE9mZnNldCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlk
ZW8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8u
aAkocmV2aXNpb24gODk5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlk
ZW8uaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwog
CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>