<?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>79050</bug_id>
          
          <creation_ts>2012-02-20 16:18:41 -0800</creation_ts>
          <short_desc>MEDIA_STREAM should be implemented as a PageSupplement.</short_desc>
          <delta_ts>2012-02-21 19:56:57 -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>Platform</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>78440</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>gustavo</cc>
    
    <cc>pnormand</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>560443</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-20 16:18:41 -0800</bug_when>
    <thetext>UserMediaClient should be extracted as a PageSupplement to eliminate MEDIA_STREAM ifdef in Page.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560523</commentid>
    <comment_count>1</comment_count>
      <attachid>127891</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-20 18:30:13 -0800</bug_when>
    <thetext>Created attachment 127891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560534</commentid>
    <comment_count>2</comment_count>
      <attachid>127891</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-20 18:51:16 -0800</bug_when>
    <thetext>Comment on attachment 127891
Patch

Attachment 127891 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11548449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560556</commentid>
    <comment_count>3</comment_count>
      <attachid>127899</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-20 19:35:45 -0800</bug_when>
    <thetext>Created attachment 127899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560557</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-20 19:36:03 -0800</bug_when>
    <thetext>Hi Adam, could you take a look? This should be easy.
Note that there are some other ifdefs I don&apos;t touch in this change.
I expect They would be handled by the IDL supplemental refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561307</commentid>
    <comment_count>5</comment_count>
      <attachid>127899</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-21 15:54:52 -0800</bug_when>
    <thetext>Comment on attachment 127899
Patch

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

&gt; Source/WebCore/mediastream/UserMediaController.cpp:34
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;userMedia&quot;));

I would have called this UserMediaController to match the class name.  (Just to make sure there are no collisions.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561528</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-21 19:56:57 -0800</bug_when>
    <thetext>Committed r108437: &lt;http://trac.webkit.org/changeset/108437&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127891</attachid>
            <date>2012-02-20 18:30:13 -0800</date>
            <delta_ts>2012-02-20 19:35:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79050-20120221113011.patch</filename>
            <type>text/plain</type>
            <size>19977</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVjMmIwMGI5NmIxMjU5
NTI3MjBkNjRkZTkzZGE2NmNmYzBhMDk0My4uYmRjNzIyZDc1YjRjMWIyOGIxNWQ2YjA0YWE3YmQz
ZjI1YmFkOGJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTAyLTIwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIE1FRElBX1NUUkVBTSBz
aG91bGQgYmUgaW1wbGVtZW50ZWQgYXMgYSBQYWdlU3VwcGxlbWVudC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDUwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgVXNlck1lZGlhQ29udHJvbGxl
ciB3aGljaCBpbXBsZW1lbnRzIFBhZ2VTdXBwbGVtZW50LiBUaGlzCisgICAgICAgIGNvbnRyb2xs
ZXIgbWVkaWF0ZXMgV2ViQ29yZS10by1jbGllbnQgY29tbXVuaWNhdGlvbiBhbmQgbGlmZWN5Y2xl
CisgICAgICAgIG1hbmFnZW1lbnQuIFRoZW4gcHVzaGVkIFVzZXJNZWRpYUNvbnRyb2xsZXIgb3V0
IGFzIGEKKyAgICAgICAgUGFnZVN1cHBsZW1lbnQgbW9kdWxlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIG1lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5hdmlnYXRvck1lZGlhU3RyZWFtOjp3ZWJraXRHZXRVc2VyTWVkaWEpOgorICAgICAg
ICAqIG1lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFDb250cm9sbGVyOjpz
dXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFDb250cm9sbGVyOjpV
c2VyTWVkaWFDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYUNvbnRyb2xs
ZXI6On5Vc2VyTWVkaWFDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYUNv
bnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8p
OgorICAgICAgICAqIG1lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFVzZXJNZWRpYUNvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1l
ZGlhQ29udHJvbGxlcjo6cmVxdWVzdFVzZXJNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpVc2Vy
TWVkaWFDb250cm9sbGVyOjpjYW5jZWxVc2VyTWVkaWFSZXF1ZXN0KToKKyAgICAgICAgKiBtZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpV
c2VyTWVkaWFSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmRp
ZENvbXBsZXRlUXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6Y29u
dGV4dERlc3Ryb3llZCk6CisgICAgICAgICogbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChVc2VyTWVkaWFSZXF1ZXN0KToKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjp+UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdl
Q2xpZW50czo6UGFnZUNsaWVudHMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChQYWdlQ2xpZW50cyk6CisgICAgICAgIChQYWdlKToKKwogMjAx
Mi0wMi0yMCAgUmF5bW9uZCBMaXUgIDxyYXltb25kLmxpdUBpbnRlbC5jb20+CiAKICAgICAgICAg
SGF2ZSB0aGUgRHluYW1pY3NDb21wcmVzc29yTm9kZSBzdXBwb3J0IG11bHRpLWNoYW5uZWwgZGF0
YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyYmUzNWMwZTgwZTY1MjZiMGEyNTM2ODI0
YTQ4NzliZTU3NWRhOTk1Li45ZTZhODQ5OWVjZWRhMGQ5MWNjODJiYTI4MTlmYzRmMjJhNmI2YWI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIw
ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIE1FRElBX1NU
UkVBTSBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYXMgYSBQYWdlU3VwcGxlbWVudC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDUwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorCiAyMDEy
LTAyLTIwICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLiAgUm9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNmMyYTZkODY5M2Ni
YjUwNzM0ZTM1NWQyNTY1NzYzNjdlMjYzODc4OC4uZTMyYjZiMmZlYTM1MjQ2M2NmNWVlOWQ3MWJm
NmIyMmFhMjQ5NWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjU4OCw2ICsyNTg4LDggQEAKICAg
ICAgICAgICAgICdtZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5oJywKICAgICAgICAgICAgICdt
ZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxsYmFjay5oJywKICAgICAgICAgICAgICdtZWRpYXN0cmVh
bS9Vc2VyTWVkaWFDbGllbnQuaCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9s
bGVyLmNwcCcsCiAgICAgICAgICAgICAnbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAn
LAogICAgICAgICAgICAgJ21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCcsCiAgICAgICAg
ICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcAppbmRleCAyNzI3YmY3
NWU4M2NkNmRkYjA4Yzk3MjAxNmZkY2U0YmRkOWNjMDYxLi4yMDRkNmUzYjc2ZGMzMzJlNGE1OGE4
OWJiNDc0ZGQwOGQxNzkyYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIk5hdmlnYXRvclVz
ZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MiwxNSArNTMsMTMgQEAgdm9pZCBOYXZpZ2F0b3JNZWRp
YVN0cmVhbTo6d2Via2l0R2V0VXNlck1lZGlhKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdCBT
dHJpbmcKICAgICBpZiAoIXN1Y2Nlc3NDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAg
RnJhbWUqIGZyYW1lID0gbmF2aWdhdG9yLT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICgh
cGFnZSkKKyAgICBVc2VyTWVkaWFDb250cm9sbGVyKiB1c2VyTWVkaWEgPSBVc2VyTWVkaWFDb250
cm9sbGVyOjpmcm9tKG5hdmlnYXRvci0+ZnJhbWUoKSk7CisgICAgaWYgKCF1c2VyTWVkaWEpIHsK
KyAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOworICAgIH0K
IAotICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVz
dDo6Y3JlYXRlKGZyYW1lLT5kb2N1bWVudCgpLCBwYWdlLT51c2VyTWVkaWFDbGllbnQoKSwgb3B0
aW9ucywgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKKyAgICBSZWZQdHI8VXNlck1l
ZGlhUmVxdWVzdD4gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZShuYXZpZ2F0b3It
PmZyYW1lKCktPmRvY3VtZW50KCksIHVzZXJNZWRpYSwgb3B0aW9ucywgc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrKTsKICAgICBpZiAoIXJlcXVlc3QpIHsKICAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFDbGllbnQuaAppbmRleCBjOGUyOTUyZmY0MDFmZmZmZGM1ZmY4NTlmZmE5
ZWRhZWUzMmIzMzgxLi43NDQ3MTFlNDI0ZDBmYmZkMmU2MTcwYzMzNjY1NTQ4OGFkNTNlYjFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaApAQCAtMzgs
NiArMzgsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFBhZ2U7CisKIGNsYXNz
IFVzZXJNZWRpYUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95
ZWQoKSA9IDA7CkBAIC00OSw2ICs1MSw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Vc2Vy
TWVkaWFDbGllbnQoKSB7IH0KIH07CiAKK3ZvaWQgcHJvdmlkZVVzZXJNZWRpYVRvKFBhZ2UqLCBV
c2VyTWVkaWFDbGllbnQqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0v
VXNlck1lZGlhQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIxMjMwZjI3NWI3ZTdlZmJmYzEx
MjA3OTFjODIwOTVhM2E1NWIyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9s
bGVyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NvbnN0IEF0b21pY1N0cmluZyYgVXNlck1lZGlhQ29udHJvbGxlcjo6c3VwcGxlbWVudE5h
bWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInVz
ZXJNZWRpYSIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworVXNlck1lZGlhQ29udHJvbGxlcjo6
VXNlck1lZGlhQ29udHJvbGxlcihVc2VyTWVkaWFDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xp
ZW50KGNsaWVudCkKK3sKK30KKworVXNlck1lZGlhQ29udHJvbGxlcjo6flVzZXJNZWRpYUNvbnRy
b2xsZXIoKQoreworICAgIG1fY2xpZW50LT5wYWdlRGVzdHJveWVkKCk7Cit9CisKK1Bhc3NPd25Q
dHI8VXNlck1lZGlhQ29udHJvbGxlcj4gVXNlck1lZGlhQ29udHJvbGxlcjo6Y3JlYXRlKFVzZXJN
ZWRpYUNsaWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgVXNlck1lZGlh
Q29udHJvbGxlcihjbGllbnQpKTsKK30KKwordm9pZCBwcm92aWRlVXNlck1lZGlhVG8oUGFnZSog
cGFnZSwgVXNlck1lZGlhQ2xpZW50KiBjbGllbnQpCit7CisgICAgUGFnZVN1cHBsZW1lbnQ6OnBy
b3ZpZGVUbyhwYWdlLCBVc2VyTWVkaWFDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBVc2Vy
TWVkaWFDb250cm9sbGVyOjpjcmVhdGUoY2xpZW50KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIwNTkw
ZWNmNTZiYjZmM2Y4NzhkMTExYWY2NDBkZWQ0MTU5NWNlMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaApAQCAtMCwwICsx
LDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFVzZXJNZWRpYUNvbnRyb2xsZXJfaAorI2Rl
ZmluZSBVc2VyTWVkaWFDb250cm9sbGVyX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJQYWdlU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVudC5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRnJhbWU7CitjbGFzcyBQYWdlOworCitjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyIDog
cHVibGljIFBhZ2VTdXBwbGVtZW50IHsKK3B1YmxpYzoKKyAgICB+VXNlck1lZGlhQ29udHJvbGxl
cigpOworCisgICAgVXNlck1lZGlhQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2Ns
aWVudDsgfQorICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYShQYXNzUmVmUHRyPFVzZXJNZWRpYVJl
cXVlc3Q+LCBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVZlY3RvciYgYXVkaW9Tb3VyY2VzLCAgY29u
c3QgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3ImIHZpZGVvU291cmNlcyk7CisgICAgdm9pZCBjYW5j
ZWxVc2VyTWVkaWFSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqKTsKKworICAgIHN0YXRpYyBQYXNz
T3duUHRyPFVzZXJNZWRpYUNvbnRyb2xsZXI+IGNyZWF0ZShVc2VyTWVkaWFDbGllbnQqKTsKKyAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRp
YyBVc2VyTWVkaWFDb250cm9sbGVyKiBmcm9tKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VXNlck1lZGlhQ29udHJvbGxlcio+KFBhZ2VTdXBwbGVtZW50Ojpmcm9tKGZyYW1lLCBz
dXBwbGVtZW50TmFtZSgpKSk7IH0KKyAgICBzdGF0aWMgVXNlck1lZGlhQ29udHJvbGxlciogZnJv
bShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxVc2VyTWVkaWFDb250cm9sbGVyKj4o
UGFnZVN1cHBsZW1lbnQ6OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBVc2VyTWVkaWFDb250cm9sbGVyKFVzZXJNZWRpYUNsaWVudCopOworCitwcml2
YXRlOgorICAgIFVzZXJNZWRpYUNsaWVudCogbV9jbGllbnQ7Cit9OworCitpbmxpbmUgdm9pZCBV
c2VyTWVkaWFDb250cm9sbGVyOjpyZXF1ZXN0VXNlck1lZGlhKFBhc3NSZWZQdHI8VXNlck1lZGlh
UmVxdWVzdD4gcmVxdWVzdCwgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3ImIGF1ZGlvU291
cmNlcywgIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlVmVjdG9yJiB2aWRlb1NvdXJjZXMpCit7Cisg
ICAgbV9jbGllbnQtPnJlcXVlc3RVc2VyTWVkaWEocmVxdWVzdCwgYXVkaW9Tb3VyY2VzLCB2aWRl
b1NvdXJjZXMpOworfQorCitpbmxpbmUgdm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpjYW5jZWxV
c2VyTWVkaWFSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgbV9jbGll
bnQtPmNhbmNlbFVzZXJNZWRpYVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBV
c2VyTWVkaWFDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZmFmM2Q0ZDRmZjA2YmE3MmMxMjFhOTRiNjIwMGM2M2U4
YzNkZTY2Zi4uM2YzYzllZmUxNWQwZjUzN2MzZDZlMWZlMmU4MjUwOWIyMDhkMTI0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTM2
LDI2ICszNiwyNiBAQAogCiAjaW5jbHVkZSAiTG9jYWxNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUg
IlNwYWNlU3BsaXRTdHJpbmcuaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKKyNpbmNs
dWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFz
c1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVXNlck1lZGlhQ2xpZW50KiBjbGllbnQsIGNvbnN0
IFN0cmluZyYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBV
c2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
VXNlck1lZGlhQ29udHJvbGxlciogY29udHJvbGxlciwgY29uc3QgU3RyaW5nJiBvcHRpb25zLCBQ
YXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxi
YWNrLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2spCiB7Ci0gICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdFJl
ZihuZXcgVXNlck1lZGlhUmVxdWVzdChjb250ZXh0LCBjbGllbnQsIG9wdGlvbnMsIHN1Y2Nlc3ND
YWxsYmFjaywgZXJyb3JDYWxsYmFjaykpOworICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBy
ZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVJlcXVlc3QoY29udGV4dCwgY29udHJvbGxl
ciwgb3B0aW9ucywgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7CiAgICAgaWYgKCFy
ZXF1ZXN0LT5hdWRpbygpICYmICFyZXF1ZXN0LT52aWRlbygpKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotVXNlck1lZGlhUmVxdWVzdDo6
VXNlck1lZGlhUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBVc2VyTWVk
aWFDbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmln
YXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRy
PE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCitVc2VyTWVk
aWFSZXF1ZXN0OjpVc2VyTWVkaWFSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFVzZXJNZWRpYUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIsIGNvbnN0IFN0cmluZyYgb3B0aW9u
cywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+IHN1Y2Nlc3ND
YWxsYmFjaywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJv
ckNhbGxiYWNrKQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoY29udGV4dCkKICAg
ICAsIG1fYXVkaW8oZmFsc2UpCiAgICAgLCBtX3ZpZGVvKGZhbHNlKQogICAgICwgbV9jYW1lcmFQ
cmVmZXJlbmNlVXNlcihmYWxzZSkKICAgICAsIG1fY2FtZXJhUHJlZmVyZW5jZUVudmlyb25tZW50
KGZhbHNlKQotICAgICwgbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9jb250cm9sbGVyKGNvbnRy
b2xsZXIpCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCiAgICAgLCBt
X2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFjaykKIHsKQEAgLTczLDggKzczLDggQEAgdm9pZCBV
c2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgpCiAKIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6ZGlkQ29t
cGxldGVRdWVyeShjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVZlY3RvciYgYXVkaW9Tb3VyY2VzLCBj
b25zdCBNZWRpYVN0cmVhbVNvdXJjZVZlY3RvciYgdmlkZW9Tb3VyY2VzKQogewotICAgIGlmICht
X2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnJlcXVlc3RVc2VyTWVkaWEodGhpcywgYXVkaW9T
b3VyY2VzLCB2aWRlb1NvdXJjZXMpOworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1f
Y29udHJvbGxlci0+cmVxdWVzdFVzZXJNZWRpYSh0aGlzLCBhdWRpb1NvdXJjZXMsIHZpZGVvU291
cmNlcyk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3VjY2VlZChjb25zdCBNZWRpYVN0
cmVhbVNvdXJjZVZlY3RvciYgYXVkaW9Tb3VyY2VzLCBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVZl
Y3RvciYgdmlkZW9Tb3VyY2VzKQpAQCAtOTksOSArOTksOSBAQCB2b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OmZhaWwoKQogCiB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnRleHREZXN0cm95ZWQoKQog
ewotICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICBtX2NsaWVudC0+Y2FuY2VsVXNlck1lZGlh
UmVxdWVzdCh0aGlzKTsKLSAgICAgICAgbV9jbGllbnQgPSAwOworICAgIGlmIChtX2NvbnRyb2xs
ZXIpIHsKKyAgICAgICAgbV9jb250cm9sbGVyLT5jYW5jZWxVc2VyTWVkaWFSZXF1ZXN0KHRoaXMp
OworICAgICAgICBtX2NvbnRyb2xsZXIgPSAwOwogICAgIH0KIAogICAgIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggYTcxYjVlOTNmMDJiM2UyMTcwN2U1NWY3
NTEyZjY4YWVkZGUyZmM3Ni4uNmFmMzFmMzBiZTc2MDI0YTQzYjNjY2I3YzgyZDEyYmFiMGJiMTRh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApA
QCAtNDQsMTEgKzQ0LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVXNlck1l
ZGlhQ2xpZW50OworY2xhc3MgVXNlck1lZGlhQ29udHJvbGxlcjsKIAogY2xhc3MgVXNlck1lZGlh
UmVxdWVzdCA6IHB1YmxpYyBNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudCwgcHVibGljIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxVc2VyTWVkaWFSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJN
ZWRpYUNsaWVudCosIGNvbnN0IFN0cmluZyYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JV
c2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVy
cm9yQ2FsbGJhY2s+KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBjb25z
dCBTdHJpbmcmIG9wdGlvbnMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0Nh
bGxiYWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPik7CiAg
ICAgflVzZXJNZWRpYVJlcXVlc3QoKTsKIAogICAgIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3ND
YWxsYmFjayogc3VjY2Vzc0NhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzQ2FsbGJh
Y2suZ2V0KCk7IH0KQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBj
b250ZXh0RGVzdHJveWVkKCk7CiAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUmVxdWVzdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ2xpZW50KiwgY29uc3QgU3RyaW5nJiBvcHRp
b25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NS
ZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4pOworICAgIFVzZXJNZWRpYVJl
cXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBjb25z
dCBTdHJpbmcmIG9wdGlvbnMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0Nh
bGxiYWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPik7CiAK
ICAgICB2b2lkIHBhcnNlT3B0aW9ucyhjb25zdCBTdHJpbmcmIG9wdGlvbnMpOwogCkBAIC04MCw3
ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhbWVyYVByZWZlcmVuY2VVc2VyOwogICAg
IGJvb2wgbV9jYW1lcmFQcmVmZXJlbmNlRW52aXJvbm1lbnQ7CiAKLSAgICBVc2VyTWVkaWFDbGll
bnQqIG1fY2xpZW50OworICAgIFVzZXJNZWRpYUNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKIAog
ICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+IG1fc3VjY2Vzc0Nh
bGxiYWNrOwogICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBtX2Vy
cm9yQ2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkMTYwM2ZkNDYzYTc5ZTZhZjkyNGJk
NzFjNTMxOWQxNzVlYTM2YTIzLi5hNTAzMTNjNGQ4ZWEyMThmMmRiNGM2MmUzOGEyOTI0ZTljNmFh
ZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTgyLDEwICs4Miw2IEBACiAjaW5jbHVkZSAiR2Vv
bG9jYXRpb25Db250cm9sbGVyLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
Ci0jaW5jbHVkZSAiVXNlck1lZGlhQ2xpZW50LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdGF0aWMgSGFzaFNldDxQYWdlKj4qIGFsbFBhZ2VzOwpAQCAtMTQ0LDkgKzE0MCw2
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCiAgICAgLCBtX3NwZWVjaElucHV0Q2xpZW50KHBhZ2VDbGllbnRzLnNwZWVjaElu
cHV0Q2xpZW50KQogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAsIG1fdXNl
ck1lZGlhQ2xpZW50KHBhZ2VDbGllbnRzLnVzZXJNZWRpYUNsaWVudCkKLSNlbmRpZgogICAgICwg
bV9zZXR0aW5ncyhTZXR0aW5nczo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9wcm9ncmVzcyhQcm9n
cmVzc1RyYWNrZXI6OmNyZWF0ZSgpKQogICAgICwgbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIoQmFj
a0ZvcndhcmRDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRD
bGllbnQpKQpAQCAtMjA4LDExICsyMDEsNiBAQCBQYWdlOjp+UGFnZSgpCiAgICAgbV9pbnNwZWN0
b3JDb250cm9sbGVyLT5pbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCk7CiAjZW5kaWYKIAotI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0gICAgaWYgKG1fdXNlck1lZGlhQ2xpZW50KQotICAgICAgICBt
X3VzZXJNZWRpYUNsaWVudC0+cGFnZURlc3Ryb3llZCgpOwotI2VuZGlmCi0KICAgICBpZiAobV9z
Y3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvci0+cGFn
ZURlc3Ryb3llZCgpOwogCkBAIC0xMDk4LDcgKzEwODYsNiBAQCBQYWdlOjpQYWdlQ2xpZW50czo6
UGFnZUNsaWVudHMoKQogICAgICwgZ2VvbG9jYXRpb25DbGllbnQoMCkKICAgICAsIHNwZWVjaElu
cHV0Q2xpZW50KDApCiAgICAgLCBub3RpZmljYXRpb25DbGllbnQoMCkKLSAgICAsIHVzZXJNZWRp
YUNsaWVudCgwKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDA5MGI0MmM0MzdmNGE5MDg4MWE5
OWM3MTEzNTBiOGYzNjVhMWFlYTQuLjRiNzU4MDY0NzE4ZDI1Njc4OThjNTc4NjgyMGNjZTc4N2Ew
NWZjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04NSw3ICs4NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBTZXR0aW5nczsKICAgICBjbGFzcyBTcGVlY2hJbnB1dDsKICAgICBjbGFz
cyBTcGVlY2hJbnB1dENsaWVudDsKLSAgICBjbGFzcyBVc2VyTWVkaWFDbGllbnQ7CiAgICAgY2xh
c3MgU3RvcmFnZU5hbWVzcGFjZTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBjbGFz
cyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CkBAIC0xMTksNyArMTE4LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRD
bGllbnQ7CiAgICAgICAgICAgICBTcGVlY2hJbnB1dENsaWVudCogc3BlZWNoSW5wdXRDbGllbnQ7
CiAgICAgICAgICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvbkNsaWVudDsK
LSAgICAgICAgICAgIFVzZXJNZWRpYUNsaWVudCogdXNlck1lZGlhQ2xpZW50OwogICAgICAgICB9
OwogCiAgICAgICAgIFBhZ2UoUGFnZUNsaWVudHMmKTsKQEAgLTE4OSw5ICsxODcsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgU3BlZWNo
SW5wdXQqIHNwZWVjaElucHV0KCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
ICAgICAgICBVc2VyTWVkaWFDbGllbnQqIHVzZXJNZWRpYUNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fdXNlck1lZGlhQ2xpZW50OyB9Ci0jZW5kaWYKICAgICAgICAgU2Nyb2xsaW5nQ29vcmRpbmF0
b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKCk7CiAKICAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdz
KCkgY29uc3QgeyByZXR1cm4gbV9zZXR0aW5ncy5nZXQoKTsgfQpAQCAtMzg5LDkgKzM4NCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU3BlZWNoSW5wdXRDbGllbnQqIG1fc3BlZWNo
SW5wdXRDbGllbnQ7CiAgICAgICAgIE93blB0cjxTcGVlY2hJbnB1dD4gbV9zcGVlY2hJbnB1dDsK
ICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgICAgIFVzZXJNZWRpYUNsaWVu
dCogbV91c2VyTWVkaWFDbGllbnQ7Ci0jZW5kaWYKICAgICAgICAgUmVmUHRyPFNjcm9sbGluZ0Nv
b3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwogCiAgICAgICAgIE93blB0cjxTZXR0
aW5ncz4gbV9zZXR0aW5nczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAppbmRleCA4MGExZDk2OGY3ZGM4NjJkZjlhYjFlNGZlMjUzNzI2MTA4NmExMzBkLi5jZmRj
MTk1YjNiZDljMzFlMGY2ZDg0MjFmOTgwZGNjNDc0MzBjZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC00MDUsMTEgKzQwNSwxMSBAQCBXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogICAgIHBhZ2VDbGllbnRz
Lm5vdGlmaWNhdGlvbkNsaWVudCA9IG5vdGlmaWNhdGlvblByZXNlbnRlckltcGwoKTsKICNlbmRp
ZgogICAgIHBhZ2VDbGllbnRzLmJhY2tGb3J3YXJkQ2xpZW50ID0gQmFja0ZvcndhcmRMaXN0Q2hy
b21pdW06OmNyZWF0ZSh0aGlzKTsKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIHBhZ2VD
bGllbnRzLnVzZXJNZWRpYUNsaWVudCA9ICZtX3VzZXJNZWRpYUNsaWVudEltcGw7Ci0jZW5kaWYK
IAogICAgIG1fcGFnZSA9IGFkb3B0UHRyKG5ldyBQYWdlKHBhZ2VDbGllbnRzKSk7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBwcm92aWRlVXNlck1lZGlhVG8obV9wYWdlLmdldCgpLCAm
bV91c2VyTWVkaWFDbGllbnRJbXBsKTsKKyNlbmRpZgogICAgIHByb3ZpZGVEZXZpY2VPcmllbnRh
dGlvblRvKG1fcGFnZS5nZXQoKSwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmdldCgp
KTsKICAgICBtX2dlb2xvY2F0aW9uQ2xpZW50UHJveHktPnNldENvbnRyb2xsZXIobV9wYWdlLT5n
ZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127899</attachid>
            <date>2012-02-20 19:35:45 -0800</date>
            <delta_ts>2012-02-21 15:56:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79050-20120221123544.patch</filename>
            <type>text/plain</type>
            <size>20729</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVjMmIwMGI5NmIxMjU5
NTI3MjBkNjRkZTkzZGE2NmNmYzBhMDk0My4uNzc3OWUyMjc2MzdjODZjMjExZTU1NWEyZmFlNzgx
ZmJkZTA1MDdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAyLTIwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIE1FRElBX1NUUkVBTSBz
aG91bGQgYmUgaW1wbGVtZW50ZWQgYXMgYSBQYWdlU3VwcGxlbWVudC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDUwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgVXNlck1lZGlhQ29udHJvbGxl
ciB3aGljaCBpbXBsZW1lbnRzIFBhZ2VTdXBwbGVtZW50LiBUaGlzCisgICAgICAgIGNvbnRyb2xs
ZXIgbWVkaWF0ZXMgV2ViQ29yZS10by1jbGllbnQgY29tbXVuaWNhdGlvbiBhbmQgbGlmZWN5Y2xl
CisgICAgICAgIG1hbmFnZW1lbnQuIFRoZW4gcHVzaGVkIFVzZXJNZWRpYUNvbnRyb2xsZXIgb3V0
IGFzIGEKKyAgICAgICAgUGFnZVN1cHBsZW1lbnQgbW9kdWxlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogbWVkaWFzdHJlYW0vTmF2aWdh
dG9yTWVkaWFTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yTWVkaWFTdHJl
YW06OndlYmtpdEdldFVzZXJNZWRpYSk6CisgICAgICAgICogbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBtZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJNZWRpYUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJNZWRpYUNvbnRyb2xsZXI6OlVzZXJNZWRpYUNvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6flVzZXJNZWRpYUNvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyk6CisgICAgICAgICogbWVkaWFzdHJlYW0v
VXNlck1lZGlhQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoVXNlck1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFDb250
cm9sbGVyOjpjbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhQ29udHJvbGxlcjo6
ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFDb250cm9sbGVyOjpyZXF1ZXN0VXNl
ck1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYUNvbnRyb2xsZXI6OmNhbmNlbFVz
ZXJNZWRpYVJlcXVlc3QpOgorICAgICAgICAqIG1lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OlVzZXJNZWRpYVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZGlkQ29tcGxldGVRdWVyeSk6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojpjb250ZXh0RGVzdHJveWVkKToKKyAgICAgICAg
KiBtZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFVzZXJNZWRpYVJlcXVlc3QpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6On5QYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cyk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBhZ2VD
bGllbnRzKToKKyAgICAgICAgKFBhZ2UpOgorCiAyMDEyLTAyLTIwICBSYXltb25kIExpdSAgPHJh
eW1vbmQubGl1QGludGVsLmNvbT4KIAogICAgICAgICBIYXZlIHRoZSBEeW5hbWljc0NvbXByZXNz
b3JOb2RlIHN1cHBvcnQgbXVsdGktY2hhbm5lbCBkYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDJiZTM1YzBlODBlNjUyNmIwYTI1MzY4MjRhNDg3OWJlNTc1ZGE5OTUuLjllNmE4NDk5
ZWNlZGEwZDkxY2M4MmJhMjgxOWZjNGYyMmE2YjZhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMjAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRh
QGdvb2dsZS5jb20+CisKKyAgICAgICAgTUVESUFfU1RSRUFNIHNob3VsZCBiZSBpbXBsZW1lbnRl
ZCBhcyBhIFBhZ2VTdXBwbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzkwNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisKIDIwMTItMDItMjAgIFBldGVyIEJldmVybG9vICA8
cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDIzOTE4NzVhMGRlYzNkYWI5NjhjOTYy
OTE4MTZjNGMwYWRiNDA5OWQuLmUyZDhlOWI4NjlkYWI1NmE4NjlhYjJhYmFhZDBhZWFjMGVmYTY1
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjYzOSw2ICsyNjM5LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxsYmFj
ay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCBcCisJ
U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA2
YzJhNmQ4NjkzY2JiNTA3MzRlMzU1ZDI1NjU3NjM2N2UyNjM4Nzg4Li5lMzJiNmIyZmVhMzUyNDYz
Y2Y1ZWU5ZDcxYmY2YjIyYWEyNDk1ZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNTg4LDYgKzI1
ODgsOCBAQAogICAgICAgICAgICAgJ21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmgnLAogICAg
ICAgICAgICAgJ21lZGlhc3RyZWFtL1NpZ25hbGluZ0NhbGxiYWNrLmgnLAogICAgICAgICAgICAg
J21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVh
bS9Vc2VyTWVkaWFDb250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL1VzZXJN
ZWRpYUNvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdtZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5o
JywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uY3BwCmlu
ZGV4IDI3MjdiZjc1ZTgzY2Q2ZGRiMDhjOTcyMDE2ZmRjZTRiZGQ5Y2MwNjEuLjIwNGQ2ZTNiNzZk
YzMzMmU0YTU4YTg5YmI0NzRkZDA4ZDE3OTJhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFSZXF1
ZXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDE1ICs1MywxMyBAQCB2b2lkIE5h
dmlnYXRvck1lZGlhU3RyZWFtOjp3ZWJraXRHZXRVc2VyTWVkaWEoTmF2aWdhdG9yKiBuYXZpZ2F0
b3IsIGNvbnN0IFN0cmluZwogICAgIGlmICghc3VjY2Vzc0NhbGxiYWNrKQogICAgICAgICByZXR1
cm47CiAKLSAgICBGcmFtZSogZnJhbWUgPSBuYXZpZ2F0b3ItPmZyYW1lKCk7Ci0gICAgaWYgKCFm
cmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7
Ci0gICAgaWYgKCFwYWdlKQorICAgIFVzZXJNZWRpYUNvbnRyb2xsZXIqIHVzZXJNZWRpYSA9IFVz
ZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20obmF2aWdhdG9yLT5mcmFtZSgpKTsKKyAgICBpZiAoIXVz
ZXJNZWRpYSkgeworICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1
cm47CisgICAgfQogCi0gICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QgPSBVc2Vy
TWVkaWFSZXF1ZXN0OjpjcmVhdGUoZnJhbWUtPmRvY3VtZW50KCksIHBhZ2UtPnVzZXJNZWRpYUNs
aWVudCgpLCBvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgIFJl
ZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRl
KG5hdmlnYXRvci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSwgdXNlck1lZGlhLCBvcHRpb25zLCBzdWNj
ZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwogICAgIGlmICghcmVxdWVzdCkgewogICAgICAg
ICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oCmluZGV4IGM4ZTI5NTJmZjQwMWZmZmZk
YzVmZjg1OWZmYTllZGFlZTMyYjMzODEuLjc0NDcxMWU0MjRkMGZiZmQyZTYxNzBjMzM2NjU1NDg4
YWQ1M2ViMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRp
YUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVu
dC5oCkBAIC0zOCw2ICszOCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUGFn
ZTsKKwogY2xhc3MgVXNlck1lZGlhQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cGFnZURlc3Ryb3llZCgpID0gMDsKQEAgLTQ5LDYgKzUxLDggQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgflVzZXJNZWRpYUNsaWVudCgpIHsgfQogfTsKIAordm9pZCBwcm92aWRlVXNlck1lZGlh
VG8oUGFnZSosIFVzZXJNZWRpYUNsaWVudCopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjEyMzBmMjc1
YjdlN2VmYmZjMTEyMDc5MWM4MjA5NWEzYTU1YjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYUNvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY29uc3QgQXRvbWljU3RyaW5nJiBVc2VyTWVkaWFDb250cm9sbGVyOjpz
dXBwbGVtZW50TmFtZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG5hbWUsICgidXNlck1lZGlhIikpOworICAgIHJldHVybiBuYW1lOworfQorCitVc2VyTWVkaWFD
b250cm9sbGVyOjpVc2VyTWVkaWFDb250cm9sbGVyKFVzZXJNZWRpYUNsaWVudCogY2xpZW50KQor
ICAgIDogbV9jbGllbnQoY2xpZW50KQoreworfQorCitVc2VyTWVkaWFDb250cm9sbGVyOjp+VXNl
ck1lZGlhQ29udHJvbGxlcigpCit7CisgICAgbV9jbGllbnQtPnBhZ2VEZXN0cm95ZWQoKTsKK30K
KworUGFzc093blB0cjxVc2VyTWVkaWFDb250cm9sbGVyPiBVc2VyTWVkaWFDb250cm9sbGVyOjpj
cmVhdGUoVXNlck1lZGlhQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBVc2VyTWVkaWFDb250cm9sbGVyKGNsaWVudCkpOworfQorCit2b2lkIHByb3ZpZGVVc2VyTWVk
aWFUbyhQYWdlKiBwYWdlLCBVc2VyTWVkaWFDbGllbnQqIGNsaWVudCkKK3sKKyAgICBQYWdlU3Vw
cGxlbWVudDo6cHJvdmlkZVRvKHBhZ2UsIFVzZXJNZWRpYUNvbnRyb2xsZXI6OnN1cHBsZW1lbnRO
YW1lKCksIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmNyZWF0ZShjbGllbnQpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YjA1OTBlY2Y1NmJiNmYzZjg3OGQxMTFhZjY0MGRlZDQxNTk1Y2UyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5o
CkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVXNlck1lZGlhQ29udHJv
bGxlcl9oCisjZGVmaW5lIFVzZXJNZWRpYUNvbnRyb2xsZXJfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIlBhZ2VTdXBwbGVtZW50LmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFVzZXJNZWRpYUNv
bnRyb2xsZXIgOiBwdWJsaWMgUGFnZVN1cHBsZW1lbnQgeworcHVibGljOgorICAgIH5Vc2VyTWVk
aWFDb250cm9sbGVyKCk7CisKKyAgICBVc2VyTWVkaWFDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50OyB9CisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhKFBhc3NSZWZQdHI8
VXNlck1lZGlhUmVxdWVzdD4sIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlVmVjdG9yJiBhdWRpb1Nv
dXJjZXMsICBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVZlY3RvciYgdmlkZW9Tb3VyY2VzKTsKKyAg
ICB2b2lkIGNhbmNlbFVzZXJNZWRpYVJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCopOworCisgICAg
c3RhdGljIFBhc3NPd25QdHI8VXNlck1lZGlhQ29udHJvbGxlcj4gY3JlYXRlKFVzZXJNZWRpYUNs
aWVudCopOworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7
CisgICAgc3RhdGljIFVzZXJNZWRpYUNvbnRyb2xsZXIqIGZyb20oRnJhbWUqIGZyYW1lKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxVc2VyTWVkaWFDb250cm9sbGVyKj4oUGFnZVN1cHBsZW1lbnQ6OmZy
b20oZnJhbWUsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0YXRpYyBVc2VyTWVkaWFDb250
cm9sbGVyKiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFVzZXJNZWRpYUNv
bnRyb2xsZXIqPihQYWdlU3VwcGxlbWVudDo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7
IH0KKworcHJvdGVjdGVkOgorICAgIFVzZXJNZWRpYUNvbnRyb2xsZXIoVXNlck1lZGlhQ2xpZW50
Kik7CisKK3ByaXZhdGU6CisgICAgVXNlck1lZGlhQ2xpZW50KiBtX2NsaWVudDsKK307CisKK2lu
bGluZSB2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OnJlcXVlc3RVc2VyTWVkaWEoUGFzc1JlZlB0
cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0LCBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVZlY3Rv
ciYgYXVkaW9Tb3VyY2VzLCAgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3ImIHZpZGVvU291
cmNlcykKK3sKKyAgICBtX2NsaWVudC0+cmVxdWVzdFVzZXJNZWRpYShyZXF1ZXN0LCBhdWRpb1Nv
dXJjZXMsIHZpZGVvU291cmNlcyk7Cit9CisKK2lubGluZSB2b2lkIFVzZXJNZWRpYUNvbnRyb2xs
ZXI6OmNhbmNlbFVzZXJNZWRpYVJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCogcmVxdWVzdCkKK3sK
KyAgICBtX2NsaWVudC0+Y2FuY2VsVXNlck1lZGlhUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2VuZGlmIC8vIFVzZXJNZWRpYUNvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBmYWYzZDRkNGZmMDZiYTcyYzEyMWE5
NGI2MjAwYzYzZThjM2RlNjZmLi4zZjNjOWVmZTE1ZDBmNTM3YzNkNmUxZmUyZTgyNTA5YjIwOGQx
MjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcApAQCAtMzYsMjYgKzM2LDI2IEBACiAKICNpbmNsdWRlICJMb2NhbE1lZGlhU3RyZWFtLmgi
CiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgotI2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVu
dC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IFVzZXJNZWRpYVJlcXVlc3Q6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBVc2VyTWVkaWFDbGllbnQqIGNs
aWVudCwgY29uc3QgU3RyaW5nJiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRp
YVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVz
ZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCitQYXNzUmVmUHRyPFVzZXJNZWRp
YVJlcXVlc3Q+IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBVc2VyTWVkaWFDb250cm9sbGVyKiBjb250cm9sbGVyLCBjb25zdCBTdHJpbmcm
IG9wdGlvbnMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiBz
dWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFj
az4gZXJyb3JDYWxsYmFjaykKIHsKLSAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVz
dCA9IGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFSZXF1ZXN0KGNvbnRleHQsIGNsaWVudCwgb3B0aW9u
cywgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7CisgICAgUmVmUHRyPFVzZXJNZWRp
YVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgVXNlck1lZGlhUmVxdWVzdChjb250ZXh0
LCBjb250cm9sbGVyLCBvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsK
ICAgICBpZiAoIXJlcXVlc3QtPmF1ZGlvKCkgJiYgIXJlcXVlc3QtPnZpZGVvKCkpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi1Vc2VyTWVk
aWFSZXF1ZXN0OjpVc2VyTWVkaWFSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFVzZXJNZWRpYUNsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIG9wdGlvbnMsIFBhc3NS
ZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ss
IFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFj
aykKK1VzZXJNZWRpYVJlcXVlc3Q6OlVzZXJNZWRpYVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVXNlck1lZGlhQ29udHJvbGxlciogY29udHJvbGxlciwgY29uc3QgU3Ry
aW5nJiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2Fs
bGJhY2s+IGVycm9yQ2FsbGJhY2spCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihj
b250ZXh0KQogICAgICwgbV9hdWRpbyhmYWxzZSkKICAgICAsIG1fdmlkZW8oZmFsc2UpCiAgICAg
LCBtX2NhbWVyYVByZWZlcmVuY2VVc2VyKGZhbHNlKQogICAgICwgbV9jYW1lcmFQcmVmZXJlbmNl
RW52aXJvbm1lbnQoZmFsc2UpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX2NvbnRy
b2xsZXIoY29udHJvbGxlcikKICAgICAsIG1fc3VjY2Vzc0NhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFj
aykKICAgICAsIG1fZXJyb3JDYWxsYmFjayhlcnJvckNhbGxiYWNrKQogewpAQCAtNzMsOCArNzMs
OCBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKIAogdm9pZCBVc2VyTWVkaWFSZXF1
ZXN0OjpkaWRDb21wbGV0ZVF1ZXJ5KGNvbnN0IE1lZGlhU3RyZWFtU291cmNlVmVjdG9yJiBhdWRp
b1NvdXJjZXMsIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlVmVjdG9yJiB2aWRlb1NvdXJjZXMpCiB7
Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+cmVxdWVzdFVzZXJNZWRpYSh0
aGlzLCBhdWRpb1NvdXJjZXMsIHZpZGVvU291cmNlcyk7CisgICAgaWYgKG1fY29udHJvbGxlcikK
KyAgICAgICAgbV9jb250cm9sbGVyLT5yZXF1ZXN0VXNlck1lZGlhKHRoaXMsIGF1ZGlvU291cmNl
cywgdmlkZW9Tb3VyY2VzKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpzdWNjZWVkKGNv
bnN0IE1lZGlhU3RyZWFtU291cmNlVmVjdG9yJiBhdWRpb1NvdXJjZXMsIGNvbnN0IE1lZGlhU3Ry
ZWFtU291cmNlVmVjdG9yJiB2aWRlb1NvdXJjZXMpCkBAIC05OSw5ICs5OSw5IEBAIHZvaWQgVXNl
ck1lZGlhUmVxdWVzdDo6ZmFpbCgpCiAKIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6Y29udGV4dERl
c3Ryb3llZCgpCiB7Ci0gICAgaWYgKG1fY2xpZW50KSB7Ci0gICAgICAgIG1fY2xpZW50LT5jYW5j
ZWxVc2VyTWVkaWFSZXF1ZXN0KHRoaXMpOwotICAgICAgICBtX2NsaWVudCA9IDA7CisgICAgaWYg
KG1fY29udHJvbGxlcikgeworICAgICAgICBtX2NvbnRyb2xsZXItPmNhbmNlbFVzZXJNZWRpYVJl
cXVlc3QodGhpcyk7CisgICAgICAgIG1fY29udHJvbGxlciA9IDA7CiAgICAgfQogCiAgICAgQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBhNzFiNWU5M2YwMmIz
ZTIxNzA3ZTU1Zjc1MTJmNjhhZWRkZTJmYzc2Li42YWYzMWYzMGJlNzYwMjRhNDNiM2NjYjdjODJk
MTJiYWIwYmIxNGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5oCkBAIC00NCwxMSArNDQsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBVc2VyTWVkaWFDbGllbnQ7CitjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwogCiBjbGFz
cyBVc2VyTWVkaWFSZXF1ZXN0IDogcHVibGljIE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50
LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgVXNlck1lZGlhQ2xpZW50KiwgY29uc3QgU3RyaW5nJiBvcHRpb25zLCBQYXNzUmVmUHRy
PE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9y
VXNlck1lZGlhRXJyb3JDYWxsYmFjaz4pOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRp
YVJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJv
bGxlciosIGNvbnN0IFN0cmluZyYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2Fs
bGJhY2s+KTsKICAgICB+VXNlck1lZGlhUmVxdWVzdCgpOwogCiAgICAgTmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrKiBzdWNjZXNzQ2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX3N1
Y2Nlc3NDYWxsYmFjay5nZXQoKTsgfQpAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFS
ZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDbGllbnQqLCBjb25zdCBT
dHJpbmcmIG9wdGlvbnMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxi
YWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPik7CisgICAg
VXNlck1lZGlhUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJv
bGxlciosIGNvbnN0IFN0cmluZyYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2Fs
bGJhY2s+KTsKIAogICAgIHZvaWQgcGFyc2VPcHRpb25zKGNvbnN0IFN0cmluZyYgb3B0aW9ucyk7
CiAKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FtZXJhUHJlZmVyZW5j
ZVVzZXI7CiAgICAgYm9vbCBtX2NhbWVyYVByZWZlcmVuY2VFbnZpcm9ubWVudDsKIAotICAgIFVz
ZXJNZWRpYUNsaWVudCogbV9jbGllbnQ7CisgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250
cm9sbGVyOwogCiAgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4g
bV9zdWNjZXNzQ2FsbGJhY2s7CiAgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2Fs
bGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGQxNjAzZmQ0NjNh
NzllNmFmOTI0YmQ3MWM1MzE5ZDE3NWVhMzZhMjMuLmE1MDMxM2M0ZDhlYTIxOGYyZGI0YzYyZTM4
YTI5MjRlOWM2YWFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtODIsMTAgKzgyLDYgQEAKICNp
bmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLSNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKLSNlbmRpZgotCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBIYXNoU2V0PFBhZ2UqPiogYWxsUGFnZXM7CkBAIC0x
NDQsOSArMTQwLDYgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWYg
RU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAsIG1fc3BlZWNoSW5wdXRDbGllbnQocGFnZUNsaWVu
dHMuc3BlZWNoSW5wdXRDbGllbnQpCiAjZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
ICAgICwgbV91c2VyTWVkaWFDbGllbnQocGFnZUNsaWVudHMudXNlck1lZGlhQ2xpZW50KQotI2Vu
ZGlmCiAgICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3By
b2dyZXNzKFByb2dyZXNzVHJhY2tlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2JhY2tGb3J3YXJkQ29u
dHJvbGxlcihCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5i
YWNrRm9yd2FyZENsaWVudCkpCkBAIC0yMDgsMTEgKzIwMSw2IEBAIFBhZ2U6On5QYWdlKCkKICAg
ICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAobV91c2VyTWVkaWFDbGllbnQp
Ci0gICAgICAgIG1fdXNlck1lZGlhQ2xpZW50LT5wYWdlRGVzdHJveWVkKCk7Ci0jZW5kaWYKLQog
ICAgIGlmIChtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICAgICBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5wYWdlRGVzdHJveWVkKCk7CiAKQEAgLTEwOTgsNyArMTA4Niw2IEBAIFBhZ2U6OlBh
Z2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgLCBnZW9sb2NhdGlvbkNsaWVudCgwKQogICAg
ICwgc3BlZWNoSW5wdXRDbGllbnQoMCkKICAgICAsIG5vdGlmaWNhdGlvbkNsaWVudCgwKQotICAg
ICwgdXNlck1lZGlhQ2xpZW50KDApCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMDkwYjQyYzQz
N2Y0YTkwODgxYTk5YzcxMTM1MGI4ZjM2NWExYWVhNC4uNGI3NTgwNjQ3MThkMjU2Nzg5OGM1Nzg2
ODIwY2NlNzg3YTA1ZmNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTg1LDcgKzg1LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNldHRpbmdzOwogICAgIGNsYXNzIFNwZWVjaElucHV0
OwogICAgIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50OwotICAgIGNsYXNzIFVzZXJNZWRpYUNsaWVu
dDsKICAgICBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQogICAgIGNsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlcjsKQEAgLTExOSw3ICsxMTgsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBi
YWNrRm9yd2FyZENsaWVudDsKICAgICAgICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBzcGVlY2hJ
bnB1dENsaWVudDsKICAgICAgICAgICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0
aW9uQ2xpZW50OwotICAgICAgICAgICAgVXNlck1lZGlhQ2xpZW50KiB1c2VyTWVkaWFDbGllbnQ7
CiAgICAgICAgIH07CiAKICAgICAgICAgUGFnZShQYWdlQ2xpZW50cyYpOwpAQCAtMTg5LDkgKzE4
Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAg
ICAgICBTcGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKICNlbmRpZgotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0gICAgICAgIFVzZXJNZWRpYUNsaWVudCogdXNlck1lZGlhQ2xpZW50KCkgY29u
c3QgeyByZXR1cm4gbV91c2VyTWVkaWFDbGllbnQ7IH0KLSNlbmRpZgogICAgICAgICBTY3JvbGxp
bmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKIAogICAgICAgICBTZXR0aW5n
cyogc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9CkBAIC0zODks
OSArMzg0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTcGVlY2hJbnB1dENsaWVu
dCogbV9zcGVlY2hJbnB1dENsaWVudDsKICAgICAgICAgT3duUHRyPFNwZWVjaElucHV0PiBtX3Nw
ZWVjaElucHV0OwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgVXNl
ck1lZGlhQ2xpZW50KiBtX3VzZXJNZWRpYUNsaWVudDsKLSNlbmRpZgogICAgICAgICBSZWZQdHI8
U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiAKICAgICAgICAg
T3duUHRyPFNldHRpbmdzPiBtX3NldHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCmluZGV4IDgwYTFkOTY4ZjdkYzg2MmRmOWFiMWU0ZmUyNTM3MjYxMDg2
YTEzMGQuLmNmZGMxOTViM2JkOWMzMWUwZjZkODQyMWY5ODBkY2M0NzQzMGNlMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTQwNSwxMSArNDA1LDEx
IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAg
cGFnZUNsaWVudHMubm90aWZpY2F0aW9uQ2xpZW50ID0gbm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bCgpOwogI2VuZGlmCiAgICAgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQgPSBCYWNrRm9y
d2FyZExpc3RDaHJvbWl1bTo6Y3JlYXRlKHRoaXMpOwotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
Ci0gICAgcGFnZUNsaWVudHMudXNlck1lZGlhQ2xpZW50ID0gJm1fdXNlck1lZGlhQ2xpZW50SW1w
bDsKLSNlbmRpZgogCiAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMp
KTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHByb3ZpZGVVc2VyTWVkaWFUbyhtX3Bh
Z2UuZ2V0KCksICZtX3VzZXJNZWRpYUNsaWVudEltcGwpOworI2VuZGlmCiAgICAgcHJvdmlkZURl
dmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50
UHJveHkuZ2V0KCkpOwogICAgIG1fZ2VvbG9jYXRpb25DbGllbnRQcm94eS0+c2V0Q29udHJvbGxl
cihtX3BhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpKTsKIAo=
</data>
<flag name="review"
          id="130143"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="130343"
          type_id="3"
          status="-"
          setter="morrita"
    />
          </attachment>
      

    </bug>

</bugzilla>