<?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>76291</bug_id>
          
          <creation_ts>2012-01-13 11:00:53 -0800</creation_ts>
          <short_desc>TextureMapper: Extract layer transform logic to a LayerTransform class.</short_desc>
          <delta_ts>2012-01-13 11:27:42 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jocelyn Turcotte">jturcotte</reporter>
          <assigned_to name="Jocelyn Turcotte">jturcotte</assigned_to>
          <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>535805</commentid>
    <comment_count>0</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-01-13 11:00:53 -0800</bug_when>
    <thetext>TextureMapper: Extract layer transform logic to a LayerTransform class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535807</commentid>
    <comment_count>1</comment_count>
      <attachid>122463</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-01-13 11:01:53 -0800</bug_when>
    <thetext>Created attachment 122463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535840</commentid>
    <comment_count>2</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-01-13 11:26:53 -0800</bug_when>
    <thetext>Committed r104961: &lt;http://trac.webkit.org/changeset/104961&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122463</attachid>
            <date>2012-01-13 11:01:53 -0800</date>
            <delta_ts>2012-01-13 11:27:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76291-20120113195903.patch</filename>
            <type>text/plain</type>
            <size>25979</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk4ZGRmZmQ0MDI5NmY1
MWYwYTU3MGIyNTZmZTA1ODc1OTUwM2MyOC4uOGQ2ZjlmOWUxNWVmNGY2MjdkMmE4ODJjNzFlZTJj
Yzg4OTU3ODQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAxLTEzICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CisKKyAgICAgICAgVGV4
dHVyZU1hcHBlcjogRXh0cmFjdCBsYXllciB0cmFuc2Zvcm0gbG9naWMgdG8gYSBMYXllclRyYW5z
Zm9ybSBjbGFzcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9MYXll
clRyYW5zZm9ybS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUcmFuc2Zvcm06
OkxheWVyVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVHJhbnNmb3JtOjpzZXRQ
b3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllclRyYW5zZm9ybTo6c2V0U2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXllclRyYW5zZm9ybTo6c2V0QW5jaG9yUG9pbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJUcmFuc2Zvcm06OnNldEZsYXR0ZW5pbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJUcmFuc2Zvcm06OnNldExvY2FsVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyVHJhbnNmb3JtOjpzZXRDaGlsZHJlblRyYW5zZm9ybSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXllclRyYW5zZm9ybTo6Y29tYmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJU
cmFuc2Zvcm06OmNvbWJpbmVkRm9yQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJU
cmFuc2Zvcm06OmNvbWJpbmVUcmFuc2Zvcm1zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVHJh
bnNmb3JtOjpjb21iaW5lVHJhbnNmb3Jtc0ZvckNoaWxkcmVuKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvTGF5ZXJUcmFuc2Zvcm0uaDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpzZXRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1dGVUcmFuc2Zvcm1zUmVjdXJzaXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpjb2xsZWN0VmlzaWJsZUNvbnRlbnRzUmVj
dHMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50U2VsZik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcGFyZUdyYXBoaWNzTGF5ZXJz
WlZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpwYWludFNlbGZB
bmRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRS
ZWZsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQ29t
cG9zaXRpbmdTdGF0ZVNlbGYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6
OlRleHR1cmVNYXBwZXJOb2RlKToKKwogMjAxMi0wMS0xMiAgSm9jZWx5biBUdXJjb3R0ZSAgPGpv
Y2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFRleHR1cmVNYXBwZXI6IERvIHRo
ZSBub2RlIHRyYW5zZm9ybSBjb21wdXRhdGlvbiB3aGVuIHBhaW50aW5nLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDRkMWEwNTI1NDMxM2Q5ZTA2Y2M4ODE5ZTY5ZDYxMmRiZDAwZmRmNjAuLmJmNDFjYTgwN2JmNWJi
NDFjY2MxMThlMmIwNjg0YmU5YWRjMmZhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxMi0wMS0xMyAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVAbm9raWEuY29t
PgorCisgICAgICAgIFRleHR1cmVNYXBwZXI6IEV4dHJhY3QgbGF5ZXIgdHJhbnNmb3JtIGxvZ2lj
IHRvIGEgTGF5ZXJUcmFuc2Zvcm0gY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NjI5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIHBhaW50IGNhbGwgYmVmb3JlIHRoZSB2aXNpYmxl
IHJlY3QgY29sbGVjdGlvbiB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICB0cmFuc2Zvcm1zIGFy
ZSBjb21iaW5lZC4gVGhpcyB3aWxsIGluY3JlYXNlIHRoZSBkZWxheSBmb3IgdGhlIHZpc2libGUg
cmVjdHMKKyAgICAgICAgdG8gZ2V0IHRvIHRoZSBXZWJQcm9jZXNzIHVudGlsIHdlIG1vdmUgdGhp
cyBjYWxjdWxhdGlvbiBvdXQgb2YgdGhlIFVJIFByb2Nlc3MuCisgICAgICAgIFRoaXMgZml4ZXMg
YW4gYXNzZXJ0IHRyaWdnZXJpbmcgaW4gTGF5ZXJUcmFuc2Zvcm06OmNvbWJpbmVUcmFuc2Zvcm1z
LgorCisgICAgICAgICogVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpwYWludFRvQ3VycmVudEdMQ29udGV4
dCk6CisKIDIwMTItMDEtMTIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFtXZWJLaXQyXSBXZWJLaXRVUklSZXF1ZXN0IGFuZCBXZWJLaXRV
UklSZXNwb25zZSBzaG91bGQgd3JhcCB0aGUgY29ycmVzcG9uZGluZyBXZWJDb3JlIGNsYXNzZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGIzMzBmZjIyZWIyNDRiNGZlOWE4YTY1
NmQwNWQwMTk5ZGZjNzY1ZGIuLjNhODQ1ZDYxZTYyNTZmYjA4OGY4YmFkNDBlN2E1NzQzNTczMDMz
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTY3MSw2ICs1NjcxLDggQEAg
aWYgVVNFX1RFWFRVUkVfTUFQUEVSX0NBSVJPCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvTGF5ZXJUcmFuc2Zvcm0uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvTGF5ZXJUcmFuc2Zvcm0uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwIFwKQEAg
LTU2ODcsNiArNTY4OSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0xheWVyVHJhbnNmb3JtLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0xheWVyVHJhbnNmb3JtLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCAzNjY5NTQ1MTZkZjM1MTY2ZjUzNWRiODM1NGY4MzA1MzhkMmFiZWFmLi4zYTRjOTc4
NzRiODdkYmM3MWVjOTMzYTc3ZGUyOGUxYmE1OTA0NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTM5MTUs
MTIgKzM5MTUsMTQgQEAgY29udGFpbnMoQ09ORklHLCB0ZXhtYXApIHsKICAgICBIRUFERVJTICs9
IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmggXAogICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIu
aCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9MYXllclRyYW5zZm9ybS5oIFwK
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBcCiAgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oIFwKICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgK
IAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJl
TWFwcGVyUXQuY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0xheWVyVHJh
bnNmb3JtLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
Tm9kZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGU4OGEzNWQ4ZDQ3NjI4ZDY0
NzQwNTg4ZjA1MThmMTdmZGMzNzQ5Ny4uNThhZjI0NzA1MjM1NmU4YjgzM2RlYzY4MTg3MWUxYjZk
Mjc2NTQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzk0NCw2ICszOTQ0LDggQEAKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1RyYW5zZm9ybWF0aW9uTWF0cml4U2tpYS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvTGF5ZXJUcmFuc2Zvcm0uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvTGF5ZXJUcmFuc2Zvcm0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9MYXllclRyYW5zZm9ybS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvTGF5ZXJUcmFuc2Zvcm0u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM3NmExZjdlMDcxMDhlODQxMWJjMmExYWI5OTg3MDA2MTZhOTIyYmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvTGF5ZXJUcmFuc2Zvcm0uY3BwCkBAIC0wLDAgKzEsMTE2IEBACisvKgorIENvcHlyaWdodCAo
QykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKwor
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxh
eWVyVHJhbnNmb3JtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTGF5ZXJUcmFuc2Zvcm06
OkxheWVyVHJhbnNmb3JtKCkKKzogbV9mbGF0dGVuaW5nKGZhbHNlKQorLCBtX2RpcnR5KGZhbHNl
KSAvLyBmYWxzZSBieSBkZWZhdWx0IHNpbmNlIGFsbCBkZWZhdWx0IHZhbHVlcyB3b3VsZCBiZSBj
b21iaW5lZCBhcyB0aGUgaWRlbnRpdHkgbWF0cml4CissIG1fY2hpbGRyZW5EaXJ0eShmYWxzZSkK
K3sKK30KKwordm9pZCBMYXllclRyYW5zZm9ybTo6c2V0UG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgcG9zaXRpb24pCit7CisgICAgbV9wb3NpdGlvbiA9IHBvc2l0aW9uOworICAgIG1fZGlydHkg
PSB0cnVlOworfQorCit2b2lkIExheWVyVHJhbnNmb3JtOjpzZXRTaXplKGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSkKK3sKKyAgICBtX3NpemUgPSBzaXplOworICAgIG1fZGlydHkgPSB0cnVlOworfQor
Cit2b2lkIExheWVyVHJhbnNmb3JtOjpzZXRBbmNob3JQb2ludChjb25zdCBGbG9hdFBvaW50M0Qm
IGFuY2hvclBvaW50KQoreworICAgIG1fYW5jaG9yUG9pbnQgPSBhbmNob3JQb2ludDsKKyAgICBt
X2RpcnR5ID0gdHJ1ZTsKK30KKwordm9pZCBMYXllclRyYW5zZm9ybTo6c2V0RmxhdHRlbmluZyhi
b29sIGZsYXR0ZW5pbmcpCit7CisgICAgbV9mbGF0dGVuaW5nID0gZmxhdHRlbmluZzsKKyAgICBt
X2RpcnR5ID0gdHJ1ZTsKK30KKwordm9pZCBMYXllclRyYW5zZm9ybTo6c2V0TG9jYWxUcmFuc2Zv
cm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKK3sKKyAgICBtX2xvY2Fs
ID0gdHJhbnNmb3JtOworICAgIG1fZGlydHkgPSB0cnVlOworfQorCit2b2lkIExheWVyVHJhbnNm
b3JtOjpzZXRDaGlsZHJlblRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJh
bnNmb3JtKQoreworICAgIG1fY2hpbGRyZW4gPSB0cmFuc2Zvcm07CisgICAgbV9kaXJ0eSA9IHRy
dWU7Cit9CisKK1RyYW5zZm9ybWF0aW9uTWF0cml4IExheWVyVHJhbnNmb3JtOjpjb21iaW5lZCgp
IGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX2RpcnR5KTsKKyAgICByZXR1cm4gbV9jb21iaW5lZDsK
K30KKworVHJhbnNmb3JtYXRpb25NYXRyaXggTGF5ZXJUcmFuc2Zvcm06OmNvbWJpbmVkRm9yQ2hp
bGRyZW4oKSBjb25zdAoreworICAgIEFTU0VSVCghbV9kaXJ0eSk7CisgICAgaWYgKG1fY2hpbGRy
ZW5EaXJ0eSkKKyAgICAgICAgY29uc3RfY2FzdDxMYXllclRyYW5zZm9ybSo+KHRoaXMpLT5jb21i
aW5lVHJhbnNmb3Jtc0ZvckNoaWxkcmVuKCk7CisgICAgcmV0dXJuIG1fY29tYmluZWRGb3JDaGls
ZHJlbjsKK30KKwordm9pZCBMYXllclRyYW5zZm9ybTo6Y29tYmluZVRyYW5zZm9ybXMoY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhcmVudFRyYW5zZm9ybSkKK3sKKyAgICBmbG9hdCBvcmln
aW5YID0gbV9hbmNob3JQb2ludC54KCkgKiBtX3NpemUud2lkdGgoKTsKKyAgICBmbG9hdCBvcmln
aW5ZID0gbV9hbmNob3JQb2ludC55KCkgKiBtX3NpemUuaGVpZ2h0KCk7CisgICAgbV9jb21iaW5l
ZCA9CisgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KHBhcmVudFRyYW5zZm9ybSkKKyAgICAg
ICAgICAgIC50cmFuc2xhdGUzZChvcmlnaW5YICsgbV9wb3NpdGlvbi54KCksIG9yaWdpblkgKyBt
X3Bvc2l0aW9uLnkoKSwgbV9hbmNob3JQb2ludC56KCkgKQorICAgICAgICAgICAgLm11bHRpcGx5
KG1fbG9jYWwpOworCisgICAgLy8gVGhlIGNoaWxkcmVuIHRyYW5zZm9ybSB3aWxsIHRha2UgaXQg
ZnJvbSBoZXJlLCBpZiBpdCBnZXRzIHVzZWQuCisgICAgbV9jb21iaW5lZEZvckNoaWxkcmVuID0g
bV9jb21iaW5lZDsKKyAgICBtX2NvbWJpbmVkLnRyYW5zbGF0ZTNkKC1vcmlnaW5YLCAtb3JpZ2lu
WSwgLW1fYW5jaG9yUG9pbnQueigpKTsKKworICAgIG1fZGlydHkgPSBmYWxzZTsKKyAgICBtX2No
aWxkcmVuRGlydHkgPSB0cnVlOworfQorCit2b2lkIExheWVyVHJhbnNmb3JtOjpjb21iaW5lVHJh
bnNmb3Jtc0ZvckNoaWxkcmVuKCkKK3sKKyAgICBBU1NFUlQoIW1fZGlydHkpOworICAgIEFTU0VS
VChtX2NoaWxkcmVuRGlydHkpOworCisgICAgZmxvYXQgb3JpZ2luWCA9IG1fYW5jaG9yUG9pbnQu
eCgpICogbV9zaXplLndpZHRoKCk7CisgICAgZmxvYXQgb3JpZ2luWSA9IG1fYW5jaG9yUG9pbnQu
eSgpICogbV9zaXplLmhlaWdodCgpOworCisgICAgLy8gSW4gY2FzZSBhIHBhcmVudCBoYWQgcHJl
c2VydmVzM0QgYW5kIHRoaXMgbGF5ZXIgaGFzIG5vdCwgZmxhdHRlbiBvdXIgY2hpbGRyZW4uCisg
ICAgaWYgKG1fZmxhdHRlbmluZykKKyAgICAgICAgbV9jb21iaW5lZEZvckNoaWxkcmVuID0gbV9j
b21iaW5lZEZvckNoaWxkcmVuLnRvMmRUcmFuc2Zvcm0oKTsKKyAgICBtX2NvbWJpbmVkRm9yQ2hp
bGRyZW4ubXVsdGlwbHkobV9jaGlsZHJlbik7CisgICAgbV9jb21iaW5lZEZvckNoaWxkcmVuLnRy
YW5zbGF0ZTNkKC1vcmlnaW5YLCAtb3JpZ2luWSwgLW1fYW5jaG9yUG9pbnQueigpKTsKKworICAg
IG1fY2hpbGRyZW5EaXJ0eSA9IGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvTGF5ZXJUcmFuc2Zvcm0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9MYXllclRyYW5zZm9ybS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYwOThiOTQ5MjYzMTgyMDRmY2I5MzMzZjQ4NzY2YmFkNWQyYzEyYzQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvTGF5ZXJUcmFu
c2Zvcm0uaApAQCAtMCwwICsxLDYyIEBACisvKgorIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2lmbmRlZiBMYXllclRyYW5zZm9ybV9oCisjZGVmaW5lIExheWVyVHJhbnNmb3Jt
X2gKKworI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIK
KyNpbmNsdWRlICJGbG9hdFNpemUuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIExheWVyVHJhbnNmb3JtIHsKK3B1Ymxp
YzoKKyAgICBMYXllclRyYW5zZm9ybSgpOworICAgIHZvaWQgc2V0UG9zaXRpb24oY29uc3QgRmxv
YXRQb2ludCYpOworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBGbG9hdFNpemUmKTsKKyAgICB2b2lk
IHNldEFuY2hvclBvaW50KGNvbnN0IEZsb2F0UG9pbnQzRCYpOworICAgIHZvaWQgc2V0RmxhdHRl
bmluZyhib29sKTsKKyAgICB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4Jik7CisgICAgdm9pZCBzZXRDaGlsZHJlblRyYW5zZm9ybShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNvbWJpbmVkKCkgY29u
c3Q7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggY29tYmluZWRGb3JDaGlsZHJlbigpIGNvbnN0
OworCisgICAgdm9pZCBjb21iaW5lVHJhbnNmb3Jtcyhjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgcGFyZW50VHJhbnNmb3JtKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGNvbWJpbmVUcmFuc2Zv
cm1zRm9yQ2hpbGRyZW4oKTsKKworICAgIEZsb2F0UG9pbnQzRCBtX2FuY2hvclBvaW50OworICAg
IEZsb2F0UG9pbnQgbV9wb3NpdGlvbjsKKyAgICBGbG9hdFNpemUgbV9zaXplOworICAgIGJvb2wg
bV9mbGF0dGVuaW5nOworICAgIGJvb2wgbV9kaXJ0eTsKKyAgICBib29sIG1fY2hpbGRyZW5EaXJ0
eTsKKworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fbG9jYWw7CisgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggbV9jaGlsZHJlbjsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2NvbWJpbmVk
OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fY29tYmluZWRGb3JDaGlsZHJlbjsKK307CisK
K30KKworI2VuZGlmIC8vIExheWVyVHJhbnNmb3JtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3Bw
CmluZGV4IGM0YmRjYTEwYWMyYzVkYzBmZDczOWM4YmUwZTlkODgyOGMzZmVkZWUuLjNiZmRmZGU1
ODZmY2MyYzA0MzFjNGNlZTUyYTcxMGEzY2M5MzYwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2Rl
LmNwcApAQCAtNDcsNyArNDcsNyBAQCBUZXh0dXJlTWFwcGVyTm9kZSogVGV4dHVyZU1hcHBlck5v
ZGU6OnJvb3RMYXllcigpCiAKIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnNldFRyYW5zZm9ybShj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4KQogewotICAgIG1fdHJhbnNmb3Jtcy5i
YXNlID0gbWF0cml4OworICAgIG1fdHJhbnNmb3JtLnNldExvY2FsVHJhbnNmb3JtKG1hdHJpeCk7
CiB9CiAKIGludCBUZXh0dXJlTWFwcGVyTm9kZTo6Y291bnREZXNjZW5kYW50c1dpdGhDb250ZW50
KCkgY29uc3QKQEAgLTY2LDQ3ICs2NiwyMyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpjb21w
dXRlT3ZlcmxhcHNJZk5lZWRlZCgpCiAgICAgbV9zdGF0ZS5taWdodEhhdmVPdmVybGFwcyA9IGNv
dW50RGVzY2VuZGFudHNXaXRoQ29udGVudCgpID4gMTsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVy
Tm9kZTo6Y29tcHV0ZVRyYW5zZm9ybXNTZWxmKCkKLXsKLSAgICBmbG9hdCBvcmlnaW5YID0gbV9z
dGF0ZS5hbmNob3JQb2ludC54KCkgKiBtX3NpemUud2lkdGgoKTsKLSAgICBmbG9hdCBvcmlnaW5Z
ID0gbV9zdGF0ZS5hbmNob3JQb2ludC55KCkgKiBtX3NpemUuaGVpZ2h0KCk7Ci0KLSAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBwYXJlbnRUcmFuc2Zvcm07Ci0gICAgaWYgKG1fcGFyZW50KQotICAg
ICAgICBwYXJlbnRUcmFuc2Zvcm0gPSBtX3BhcmVudC0+bV90cmFuc2Zvcm1zLmZvckRlc2NlbmRh
bnRzOwotICAgIGVsc2UgaWYgKG1fZWZmZWN0VGFyZ2V0KQotICAgICAgICBwYXJlbnRUcmFuc2Zv
cm0gPSBtX2VmZmVjdFRhcmdldC0+bV90cmFuc2Zvcm1zLnRhcmdldDsKLSAgICBtX3RyYW5zZm9y
bXMudGFyZ2V0ID0KLSAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgocGFyZW50VHJhbnNmb3Jt
KQotICAgICAgICAgICAgLnRyYW5zbGF0ZTNkKG9yaWdpblggKyBtX3N0YXRlLnBvcy54KCksIG9y
aWdpblkgKyBtX3N0YXRlLnBvcy55KCksIG1fc3RhdGUuYW5jaG9yUG9pbnQueigpICkKLSAgICAg
ICAgICAgIC5tdWx0aXBseShtX3RyYW5zZm9ybXMuYmFzZSk7Ci0KLSAgICAvLyBUaGUgZGVzY2Vu
ZGFudHMgdHJhbnNmb3JtIHdpbGwgdGFrZSBpdCBmcm9tIGhlcmUsIGlmIG5lZWRlZC4KLSAgICBt
X3RyYW5zZm9ybXMuZm9yRGVzY2VuZGFudHMgPSBtX3RyYW5zZm9ybXMudGFyZ2V0OwotICAgIG1f
dHJhbnNmb3Jtcy50YXJnZXQudHJhbnNsYXRlM2QoLW9yaWdpblgsIC1vcmlnaW5ZLCAtbV9zdGF0
ZS5hbmNob3JQb2ludC56KCkpOwotCi0gICAgaWYgKG1fY2hpbGRyZW4uaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICAvLyBJbiBjYXNlIGEgcGFyZW50IGhhZCBwcmVzZXJ2ZXMzRCBh
bmQgdGhpcyBsYXllciBoYXMgbm90LCBmbGF0dGVuIG91ciBjaGlsZHJlbi4KLSAgICBpZiAoIW1f
c3RhdGUucHJlc2VydmVzM0QpCi0gICAgICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cyA9
IG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cy50bzJkVHJhbnNmb3JtKCk7Ci0gICAgbV90cmFu
c2Zvcm1zLmZvckRlc2NlbmRhbnRzLm11bHRpcGx5KG1fc3RhdGUuY2hpbGRyZW5UcmFuc2Zvcm0p
OwotICAgIG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cy50cmFuc2xhdGUzZCgtb3JpZ2luWCwg
LW9yaWdpblksIC1tX3N0YXRlLmFuY2hvclBvaW50LnooKSk7Ci19Ci0KIHZvaWQgVGV4dHVyZU1h
cHBlck5vZGU6OmNvbXB1dGVUcmFuc2Zvcm1zUmVjdXJzaXZlKCkKIHsKICAgICBpZiAobV9zaXpl
LmlzRW1wdHkoKSAmJiBtX3N0YXRlLm1hc2tzVG9Cb3VuZHMpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIENvbXB1dGUgdHJhbnNmb3JtcyByZWN1cnNpdmVseSBvbiB0aGUgd2F5IGRvd24gdG8g
bGVhZnMuCi0gICAgY29tcHV0ZVRyYW5zZm9ybXNTZWxmKCk7CisgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggcGFyZW50VHJhbnNmb3JtOworICAgIGlmIChtX3BhcmVudCkKKyAgICAgICAgcGFyZW50
VHJhbnNmb3JtID0gbV9wYXJlbnQtPm1fdHJhbnNmb3JtLmNvbWJpbmVkRm9yQ2hpbGRyZW4oKTsK
KyAgICBlbHNlIGlmIChtX2VmZmVjdFRhcmdldCkKKyAgICAgICAgcGFyZW50VHJhbnNmb3JtID0g
bV9lZmZlY3RUYXJnZXQtPm1fdHJhbnNmb3JtLmNvbWJpbmVkKCk7CisgICAgbV90cmFuc2Zvcm0u
Y29tYmluZVRyYW5zZm9ybXMocGFyZW50VHJhbnNmb3JtKTsKIAotICAgIG1fc3RhdGUudmlzaWJs
ZSA9IG1fc3RhdGUuYmFja2ZhY2VWaXNpYmlsaXR5IHx8IG1fdHJhbnNmb3Jtcy50YXJnZXQuaW52
ZXJzZSgpLm0zMygpID49IDA7CisgICAgbV9zdGF0ZS52aXNpYmxlID0gbV9zdGF0ZS5iYWNrZmFj
ZVZpc2liaWxpdHkgfHwgbV90cmFuc2Zvcm0uY29tYmluZWQoKS5pbnZlcnNlKCkubTMzKCkgPj0g
MDsKIAogICAgIGlmIChtX3BhcmVudCAmJiBtX3BhcmVudC0+bV9zdGF0ZS5wcmVzZXJ2ZXMzRCkK
LSAgICAgICAgbV90cmFuc2Zvcm1zLmNlbnRlclogPSBtX3RyYW5zZm9ybXMudGFyZ2V0Lm1hcFBv
aW50KEZsb2F0UG9pbnQzRChtX3NpemUud2lkdGgoKSAvIDIsIG1fc2l6ZS5oZWlnaHQoKSAvIDIs
IDApKS56KCk7CisgICAgICAgIG1fY2VudGVyWiA9IG1fdHJhbnNmb3JtLmNvbWJpbmVkKCkubWFw
UG9pbnQoRmxvYXRQb2ludDNEKG1fc2l6ZS53aWR0aCgpIC8gMiwgbV9zaXplLmhlaWdodCgpIC8g
MiwgMCkpLnooKTsKIAogICAgIGlmIChtX3N0YXRlLm1hc2tMYXllcikKICAgICAgICAgbV9zdGF0
ZS5tYXNrTGF5ZXItPmNvbXB1dGVUcmFuc2Zvcm1zUmVjdXJzaXZlKCk7CkBAIC0xOTQsNiArMTcw
LDcgQEAgYm9vbCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29sbGVjdFZpc2libGVDb250ZW50c1JlY3Rz
KE5vZGVSZWN0TWFwJiByZWN0TWFwLCBjb25zdAogewogICAgIGlmICghbV9zdGF0ZS52aXNpYmxl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29sIGV4aXN0cyA9IGZhbHNlOwogCiAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2NoaWxkcmVuLnNpemUoKTsgKytpKQpAQCAtMjA0LDE0
ICsxODEsMTQgQEAgYm9vbCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29sbGVjdFZpc2libGVDb250ZW50
c1JlY3RzKE5vZGVSZWN0TWFwJiByZWN0TWFwLCBjb25zdAogICAgICAgICBleGlzdHMgPSBtX3N0
YXRlLnJlcGxpY2FMYXllci0+Y29sbGVjdFZpc2libGVDb250ZW50c1JlY3RzKHJlY3RNYXAsIHJv
b3RWaXNpYmxlUmVjdCkgfHwgZXhpc3RzOwogCiAgICAgLy8gTm9uLWludmVydGlibGUgbGF5ZXJz
IGFyZSBub3QgdmlzaWJsZS4KLSAgICBpZiAoIW1fdHJhbnNmb3Jtcy50YXJnZXQuaXNJbnZlcnRp
YmxlKCkpCisgICAgaWYgKCFtX3RyYW5zZm9ybS5jb21iaW5lZCgpLmlzSW52ZXJ0aWJsZSgpKQog
ICAgICAgICByZXR1cm4gZXhpc3RzOwogCiAgICAgc3RhdGljIGNvbnN0IGludCB0aWxpbmdUaHJl
c2hvbGQgPSAyNTY7CiAKICAgICBJbnRSZWN0IHZpc2libGVDb250ZW50c1JlY3QoMCwgMCwgbV9z
aXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7CiAgICAgaWYgKG1fc2l6ZS53aWR0aCgpID4g
dGlsaW5nVGhyZXNob2xkIHx8IG1fc2l6ZS5oZWlnaHQoKSA+IHRpbGluZ1RocmVzaG9sZCkgewot
ICAgICAgICBJbnRSZWN0IHZpc2libGVSZWN0SW5Mb2NhbENvb3JkaW5hdGVzID0gZW5jbG9zaW5n
SW50UmVjdChUcmFuc2Zvcm1hdGlvbk1hdHJpeChtX3RyYW5zZm9ybXMudGFyZ2V0KS5pbnZlcnNl
KCkubWFwUmVjdChyb290VmlzaWJsZVJlY3QpKTsKKyAgICAgICAgSW50UmVjdCB2aXNpYmxlUmVj
dEluTG9jYWxDb29yZGluYXRlcyA9IGVuY2xvc2luZ0ludFJlY3QoVHJhbnNmb3JtYXRpb25NYXRy
aXgobV90cmFuc2Zvcm0uY29tYmluZWQoKSkuaW52ZXJzZSgpLm1hcFJlY3Qocm9vdFZpc2libGVS
ZWN0KSk7CiAgICAgICAgIGlmICghdmlzaWJsZVJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMuaXNFbXB0
eSgpKQogICAgICAgICAgICAgY2xhbXBSZWN0KHZpc2libGVSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
LCBnVGlsZURpbWVuc2lvbik7CiAgICAgICAgIHZpc2libGVDb250ZW50c1JlY3QuaW50ZXJzZWN0
KHZpc2libGVSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKTsKQEAgLTM4MSwxMyArMzU4LDEzIEBAIHZv
aWQgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50U2VsZihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRP
cHRpb25zJiBvcHRpb25zKQogCiAgICAgICAgICAgICBmbG9hdCByZXBsaWNhT3BhY2l0eSA9IDEu
MDsKICAgICAgICAgICAgIGlmIChtX3N0YXRlLnJlcGxpY2FMYXllcikgewotICAgICAgICAgICAg
ICAgIHJlcGxpY2FNYXRyaXggPSBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1zLnRh
cmdldC5zY2FsZSgxLjAgLyB0aWxlLnNjYWxlKTsKKyAgICAgICAgICAgICAgICByZXBsaWNhTWF0
cml4ID0gbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fdHJhbnNmb3JtLmNvbWJpbmVkKCkuc2NhbGUo
MS4wIC8gdGlsZS5zY2FsZSk7CiAgICAgICAgICAgICAgICAgcmVwbGljYU9wYWNpdHkgPSBvcGFj
aXR5ICogbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fb3BhY2l0eTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIEJpdG1hcFRleHR1cmUmIHRleHR1cmUgPSAqdGlsZS5mcm9udEJ1ZmZlci50ZXh0
dXJlOwogICAgICAgICAgICAgaWYgKG1fc3RhdGUucmVwbGljYUxheWVyKQogICAgICAgICAgICAg
ICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUodGV4dHVyZSwgcmVjdCwgcmVw
bGljYU1hdHJpeCwgcmVwbGljYU9wYWNpdHksIHJlcGxpY2FNYXNrVGV4dHVyZSA/IHJlcGxpY2FN
YXNrVGV4dHVyZS5nZXQoKSA6IG1hc2tUZXh0dXJlLmdldCgpKTsKLSAgICAgICAgICAgIG9wdGlv
bnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUodGV4dHVyZSwgcmVjdCwgbV90cmFuc2Zvcm1z
LnRhcmdldCwgb3BhY2l0eSwgb3B0aW9ucy5pc1N1cmZhY2UgPyAwIDogbWFza1RleHR1cmUuZ2V0
KCkpOworICAgICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSh0ZXh0
dXJlLCByZWN0LCBtX3RyYW5zZm9ybS5jb21iaW5lZCgpLCBvcGFjaXR5LCBvcHRpb25zLmlzU3Vy
ZmFjZSA/IDAgOiBtYXNrVGV4dHVyZS5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTM5OCwyMiArMzc1LDIyIEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnBh
aW50U2VsZihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogICAgICAg
ICBCaXRtYXBUZXh0dXJlKiB0ZXh0dXJlID0gbV9vd25lZFRpbGVzW2ldLnRleHR1cmUuZ2V0KCk7
CiAgICAgICAgIGlmIChtX3N0YXRlLnJlcGxpY2FMYXllciAmJiAhb3B0aW9ucy5pc1N1cmZhY2Up
IHsKICAgICAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnRleHR1
cmUsIHRhcmdldFJlY3RGb3JUaWxlUmVjdCh0YXJnZXRSZWN0LCBtX293bmVkVGlsZXNbaV0ucmVj
dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyLT5t
X3RyYW5zZm9ybXMudGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRl
LnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm0uY29tYmluZWQoKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3BhY2l0eSAqIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX29wYWNpdHksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxpY2FNYXNrVGV4dHVyZSA/IHJlcGxpY2FN
YXNrVGV4dHVyZS5nZXQoKSA6IG1hc2tUZXh0dXJlLmdldCgpKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGNvbnN0IEZsb2F0UmVjdCByZWN0ID0gdGFyZ2V0UmVjdEZvclRpbGVSZWN0KHRhcmdldFJl
Y3QsIG1fb3duZWRUaWxlc1tpXS5yZWN0KTsKLSAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVy
LT5kcmF3VGV4dHVyZSgqdGV4dHVyZSwgcmVjdCwgbV90cmFuc2Zvcm1zLnRhcmdldCwgb3BhY2l0
eSwgb3B0aW9ucy5pc1N1cmZhY2UgPyAwIDogbWFza1RleHR1cmUuZ2V0KCkpOworICAgICAgICBv
cHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCp0ZXh0dXJlLCByZWN0LCBtX3RyYW5z
Zm9ybS5jb21iaW5lZCgpLCBvcGFjaXR5LCBvcHRpb25zLmlzU3VyZmFjZSA/IDAgOiBtYXNrVGV4
dHVyZS5nZXQoKSk7CiAgICAgfQogCiAgICAgaWYgKG1fY3VycmVudENvbnRlbnQuY29udGVudFR5
cGUgPT0gTWVkaWFDb250ZW50VHlwZSAmJiBtX2N1cnJlbnRDb250ZW50Lm1lZGlhKSB7CiAgICAg
ICAgIGlmIChtX3N0YXRlLnJlcGxpY2FMYXllciAmJiAhb3B0aW9ucy5pc1N1cmZhY2UpCiAgICAg
ICAgICAgICBtX2N1cnJlbnRDb250ZW50Lm1lZGlhLT5wYWludFRvVGV4dHVyZU1hcHBlcihvcHRp
b25zLnRleHR1cmVNYXBwZXIsIHRhcmdldFJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90
cmFuc2Zvcm1zLnRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX3RyYW5zZm9ybS5jb21i
aW5lZCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3BhY2l0eSAqIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX29wYWNpdHksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBs
aWNhTWFza1RleHR1cmUgPyByZXBsaWNhTWFza1RleHR1cmUuZ2V0KCkgOiBtYXNrVGV4dHVyZS5n
ZXQoKSk7Ci0gICAgICAgIG1fY3VycmVudENvbnRlbnQubWVkaWEtPnBhaW50VG9UZXh0dXJlTWFw
cGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgdGFyZ2V0UmVjdCwgbV90cmFuc2Zvcm1zLnRhcmdl
dCwgb3BhY2l0eSwgb3B0aW9ucy5pc1N1cmZhY2UgPyAwIDogbWFza1RleHR1cmUuZ2V0KCkpOwor
ICAgICAgICBtX2N1cnJlbnRDb250ZW50Lm1lZGlhLT5wYWludFRvVGV4dHVyZU1hcHBlcihvcHRp
b25zLnRleHR1cmVNYXBwZXIsIHRhcmdldFJlY3QsIG1fdHJhbnNmb3JtLmNvbWJpbmVkKCksIG9w
YWNpdHksIG9wdGlvbnMuaXNTdXJmYWNlID8gMCA6IG1hc2tUZXh0dXJlLmdldCgpKTsKICAgICB9
CiB9CiAKQEAgLTQyMSw3ICszOTgsNyBAQCBpbnQgVGV4dHVyZU1hcHBlck5vZGU6OmNvbXBhcmVH
cmFwaGljc0xheWVyc1pWYWx1ZShjb25zdCB2b2lkKiBhLCBjb25zdCB2b2lkKiBiKQogewogICAg
IFRleHR1cmVNYXBwZXJOb2RlKiBjb25zdCogbm9kZUEgPSBzdGF0aWNfY2FzdDxUZXh0dXJlTWFw
cGVyTm9kZSogY29uc3QqPihhKTsKICAgICBUZXh0dXJlTWFwcGVyTm9kZSogY29uc3QqIG5vZGVC
ID0gc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlck5vZGUqIGNvbnN0Kj4oYik7Ci0gICAgcmV0dXJu
IGludCgoKCpub2RlQSktPm1fdHJhbnNmb3Jtcy5jZW50ZXJaIC0gKCpub2RlQiktPm1fdHJhbnNm
b3Jtcy5jZW50ZXJaKSAqIDEwMDApOworICAgIHJldHVybiBpbnQoKCgqbm9kZUEpLT5tX2NlbnRl
clogLSAoKm5vZGVCKS0+bV9jZW50ZXJaKSAqIDEwMDApOwogfQogCiB2b2lkIFRleHR1cmVNYXBw
ZXJOb2RlOjpzb3J0QnlaT3JkZXIoVmVjdG9yPFRleHR1cmVNYXBwZXJOb2RlKiA+JiBhcnJheSwg
aW50IGZpcnN0LCBpbnQgbGFzdCkKQEAgLTQzMyw3ICs0MTAsNyBAQCB2b2lkIFRleHR1cmVNYXBw
ZXJOb2RlOjpwYWludFNlbGZBbmRDaGlsZHJlbihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRp
b25zJiBvcAogewogICAgIGJvb2wgaGFzQ2xpcCA9IG1fc3RhdGUubWFza3NUb0JvdW5kcyAmJiAh
bV9jaGlsZHJlbi5pc0VtcHR5KCk7CiAgICAgaWYgKGhhc0NsaXApCi0gICAgICAgIG9wdGlvbnMu
dGV4dHVyZU1hcHBlci0+YmVnaW5DbGlwKG1fdHJhbnNmb3Jtcy5mb3JEZXNjZW5kYW50cywgRmxv
YXRSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpKTsKKyAgICAgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5iZWdpbkNsaXAobV90cmFuc2Zvcm0uY29tYmluZWQoKSwg
RmxvYXRSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpKTsKIAogICAg
IHBhaW50U2VsZihvcHRpb25zKTsKIApAQCAtNDY3LDE0ICs0NDQsMTQgQEAgYm9vbCBUZXh0dXJl
TWFwcGVyTm9kZTo6cGFpbnRSZWZsZWN0aW9uKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlv
bnMmIG9wdGlvbnMKICAgICBjb25zdCBGbG9hdFJlY3Qgdmlld3BvcnRSZWN0KDAsIDAsIHZpZXdw
b3J0U2l6ZS53aWR0aCgpLCB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpOwogICAgIC8vIFJldmVyc2Ug
dGhpcyBsYXllcidzIHRyYW5zZm9ybSBvbiB0aGUgcmVwbGljYSdzIHRyYW5zZm9ybSBhbmQgdXNl
IGl0IHdpdGggdGhlIGNvbnRlbnRzCiAgICAgLy8gaW50ZXJtZWRpYXRlIHN1cmZhY2UsIGFwcGxp
ZWQgaW4gdGhlIHZpZXdwb3J0IGNvb3JkaW5hdGUgc3lzdGVtLgotICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IHJlcGxpY2FNYXRyaXggPSBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV90cmFuc2Zvcm1z
LnRhcmdldDsKLSAgICByZXBsaWNhTWF0cml4Lm11bHRpcGx5KG1fdHJhbnNmb3Jtcy50YXJnZXQu
aW52ZXJzZSgpKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCByZXBsaWNhTWF0cml4ID0gbV9z
dGF0ZS5yZXBsaWNhTGF5ZXItPm1fdHJhbnNmb3JtLmNvbWJpbmVkKCk7CisgICAgcmVwbGljYU1h
dHJpeC5tdWx0aXBseShtX3RyYW5zZm9ybS5jb21iaW5lZCgpLmludmVyc2UoKSk7CiAKICAgICAv
LyBUaGUgbWFzayBoYXMgdG8gYmUgYWRqdXN0ZWQgdG8gdGFyZ2V0IGNvb3JkaW5hdGVzLgogICAg
IGlmIChtYXNrVGV4dHVyZSkgewogICAgICAgICBtYXNrU3VyZmFjZSA9IG9wdGlvbnMudGV4dHVy
ZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChvcHRpb25zLnRleHR1cmVNYXBwZXItPnZp
ZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5iaW5kU3VyZmFj
ZShtYXNrU3VyZmFjZS5nZXQoKSk7Ci0gICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJh
d1RleHR1cmUoKm1hc2tUZXh0dXJlLmdldCgpLCBlbnRpcmVSZWN0KCksIG1fdHJhbnNmb3Jtcy50
YXJnZXQsIDEsIDApOworICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJl
KCptYXNrVGV4dHVyZS5nZXQoKSwgZW50aXJlUmVjdCgpLCBtX3RyYW5zZm9ybS5jb21iaW5lZCgp
LCAxLCAwKTsKICAgICAgICAgbWFza1RleHR1cmUgPSBtYXNrU3VyZmFjZTsKICAgICB9CiAKQEAg
LTQ4Miw3ICs0NTksNyBAQCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24o
Y29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogICAgIGlmIChyZXBsaWNh
TWFza1RleHR1cmUpIHsKICAgICAgICAgcmVwbGljYU1hc2tTdXJmYWNlID0gb3B0aW9ucy50ZXh0
dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+
dmlld3BvcnRTaXplKCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmJpbmRTdXJm
YWNlKHJlcGxpY2FNYXNrU3VyZmFjZS5nZXQoKSk7Ci0gICAgICAgIG9wdGlvbnMudGV4dHVyZU1h
cHBlci0+ZHJhd1RleHR1cmUoKnJlcGxpY2FNYXNrVGV4dHVyZS5nZXQoKSwgZW50aXJlUmVjdCgp
LCBtX3RyYW5zZm9ybXMudGFyZ2V0LCAxLCAwKTsKKyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFw
cGVyLT5kcmF3VGV4dHVyZSgqcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpLCBlbnRpcmVSZWN0KCks
IG1fdHJhbnNmb3JtLmNvbWJpbmVkKCksIDEsIDApOwogICAgICAgICByZXBsaWNhTWFza1RleHR1
cmUgPSByZXBsaWNhTWFza1N1cmZhY2U7CiAgICAgfQogCkBAIC03NjYsNyArNzQzLDEzIEBAIHZv
aWQgVGV4dHVyZU1hcHBlck5vZGU6OnN5bmNDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlciogZ3JhCiAgICAgaWYgKCFoYXNPcGFjaXR5QW5pbWF0aW9uKCkpCiAg
ICAgICAgIG1fb3BhY2l0eSA9IG1fc3RhdGUub3BhY2l0eTsKICAgICBpZiAoIWhhc1RyYW5zZm9y
bUFuaW1hdGlvbigpKQotICAgICAgICBtX3RyYW5zZm9ybXMuYmFzZSA9IG1fc3RhdGUudHJhbnNm
b3JtOworICAgICAgICBtX3RyYW5zZm9ybS5zZXRMb2NhbFRyYW5zZm9ybShtX3N0YXRlLnRyYW5z
Zm9ybSk7CisKKyAgICBtX3RyYW5zZm9ybS5zZXRQb3NpdGlvbihtX3N0YXRlLnBvcyk7CisgICAg
bV90cmFuc2Zvcm0uc2V0QW5jaG9yUG9pbnQobV9zdGF0ZS5hbmNob3JQb2ludCk7CisgICAgbV90
cmFuc2Zvcm0uc2V0U2l6ZShtX3N0YXRlLnNpemUpOworICAgIG1fdHJhbnNmb3JtLnNldEZsYXR0
ZW5pbmcoIW1fc3RhdGUucHJlc2VydmVzM0QpOworICAgIG1fdHJhbnNmb3JtLnNldENoaWxkcmVu
VHJhbnNmb3JtKG1fc3RhdGUuY2hpbGRyZW5UcmFuc2Zvcm0pOwogfQogCiBib29sIFRleHR1cmVN
YXBwZXJOb2RlOjpkZXNjZW5kYW50c09yU2VsZkhhdmVSdW5uaW5nQW5pbWF0aW9ucygpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTm9kZS5oCmluZGV4IGMxMmYwMGI4MGU4NDU4MGNmZGI0NWQ5MjA5NDI3
NGYwMGQwNmEyNDUuLjM5NjVlZTZjYjNiN2YzZWVhYjFlOTNmMjI4ZTY5Y2MwYzEwMjkwMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTm9kZS5oCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiR3JhcGhp
Y3NMYXllci5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50UG9pbnRIYXNoLmgi
CisjaW5jbHVkZSAiTGF5ZXJUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1PcGVyYXRpb25zLmgiCkBA
IC0xNDEsNiArMTQyLDcgQEAgcHVibGljOgogICAgICAgICA6IG1fcGFyZW50KDApCiAgICAgICAg
ICwgbV9lZmZlY3RUYXJnZXQoMCkKICAgICAgICAgLCBtX29wYWNpdHkoMSkKKyAgICAgICAgLCBt
X2NlbnRlclooMCkKICAgICAgICAgLCBtX3RleHR1cmVNYXBwZXIoMCkKICAgICB7IH0KIApAQCAt
MTc1LDggKzE3Nyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgVGV4dHVyZU1hcHBlck5vZGUq
IHJvb3RMYXllcigpOwogICAgIHZvaWQgY29tcHV0ZVRyYW5zZm9ybXNSZWN1cnNpdmUoKTsKLSAg
ICB2b2lkIGNvbXB1dGVUcmFuc2Zvcm1zU2VsZigpOwotICAgIHZvaWQgY29tcHV0ZVZpc2libGVS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcm9vdFZpc2libGVSZWN0KTsKICAgICB2b2lkIGNvbXB1dGVP
dmVybGFwc0lmTmVlZGVkKCk7CiAgICAgdm9pZCBjb21wdXRlVGlsZXMoKTsKICAgICB2b2lkIHN3
YXBDb250ZW50c0J1ZmZlcnMoKTsKQEAgLTIwNSwxNSArMjA1LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIGhhc09wYWNpdHlBbmltYXRpb24oKSBjb25zdDsKICAgICBib29sIGhhc1RyYW5zZm9ybUFu
aW1hdGlvbigpIGNvbnN0OwogICAgIGJvb2wgaGFzTW9yZVRoYW5PbmVUaWxlKCkgY29uc3Q7Ci0g
ICAgc3RydWN0IFRyYW5zZm9ybURhdGEgewotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0
YXJnZXQ7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGZvckRlc2NlbmRhbnRzOwotICAg
ICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBiYXNlOwotICAgICAgICBmbG9hdCBjZW50ZXJaOwot
ICAgICAgICBUcmFuc2Zvcm1EYXRhKCkgeyB9Ci0gICAgfTsKIAotICAgIFRyYW5zZm9ybURhdGEg
bV90cmFuc2Zvcm1zOworICAgIExheWVyVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwogCiAgICAgaW5s
aW5lIEZsb2F0UmVjdCB0YXJnZXRSZWN0KCkgY29uc3QKICAgICB7CkBAIC0yNjksNiArMjYyLDcg
QEAgcHJpdmF0ZToKICAgICBUZXh0dXJlTWFwcGVyTm9kZSogbV9lZmZlY3RUYXJnZXQ7CiAgICAg
RmxvYXRTaXplIG1fc2l6ZTsKICAgICBmbG9hdCBtX29wYWNpdHk7CisgICAgZmxvYXQgbV9jZW50
ZXJaOwogICAgIFN0cmluZyBtX25hbWU7CiAgICAgaW50IG1faWQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCmluZGV4IGRi
ZWZlYTk0YThmMDdkZTQ4ODA4MTk2NjhmYWI3ODczOTc3NjM1MDQuLmMyNjRlYTcyYTJhNjk5YWQ0
Mjg0NThmMGQ4NTI4MGZiOGQ5ODA3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcApAQCAtMTk0LDYgKzE5NCw4IEBAIHZv
aWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpwYWludFRvQ3VycmVudEdMQ29udGV4dChjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgbWF0CiAgICAgICAgIGN1cnJlbnRSb290TGF5ZXItPnN5bmNDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogICAgIH0KIAorICAgIG5vZGUtPnBhaW50
KCk7CisKICAgICBUZXh0dXJlTWFwcGVyTm9kZTo6Tm9kZVJlY3RNYXAgbm9kZVZpc3VhbENvbnRl
bnRzUmVjdE1hcDsKICAgICBpZiAobm9kZS0+Y29sbGVjdFZpc2libGVDb250ZW50c1JlY3RzKG5v
ZGVWaXN1YWxDb250ZW50c1JlY3RNYXAsIHZpZXdwb3J0UmVjdCkpIHsKICAgICAgICAgVGV4dHVy
ZU1hcHBlck5vZGU6Ok5vZGVSZWN0TWFwOjppdGVyYXRvciBlbmRJdGVyYXRvciA9IG5vZGVWaXN1
YWxDb250ZW50c1JlY3RNYXAuZW5kKCk7CkBAIC0yMDYsNyArMjA4LDYgQEAgdm9pZCBMYXllclRy
ZWVIb3N0UHJveHk6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBtYXQKICAgICAgICAgICAgIHNldFZpc2libGVDb250ZW50c1JlY3RGb3JMYXllcihs
YXllcklELCB2aXNpYmxlUmVjdCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgbm9kZS0+cGFpbnQo
KTsKIAogICAgIG1fdGV4dHVyZU1hcHBlci0+ZW5kUGFpbnRpbmcoKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>