Re: Patching latest TORCS changes in CVS

David Savinkoff <[email protected]> Thu, 2 Mar 2017 16:14:50 -0700 (MST)
Newsgroups gmane.games.torcs.general
Message-ID <1683652489.60528204.1488496490306.JavaMail.zimbra@mailid.telus.net>
------=_Part_60528201_1319061192.1488496490304
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Update.
----- David Savinkoff wrote:
> This one is for those that have ripped up a motocross track with a bike,
> or who have driven a Chevy II Nova on a dirt track,
> or those that have seen real drifting on you-tube:
> 
> - Grab that latest TORCS from cvs
> - Apply torcs-1.3.8.contact.2.patch and compile.
> 
> - Select car1-trb1 (semi-pro)
> - Try Alpine 2 (you can drift the whole track! -- ha ha)
> - Try Dirt 2 (yeah, you know ... see ya)
> - Then discover Hidden Valley (the new track! )
> 
> Sincerely,
> David Savinkoff
> 
> ----- David Savinkoff wrote:
> > ----- David Savinkoff wrote:
> > > Here is a patch to play with.
> > > Correctly combined longitudinal, lateral, and yaw tire friction forces.
> > > (realistic and predictable vehicular response where the rubber meets the road)
> > 
> > The latest improvements for CVS --> torcs-1.3.8.contact.2.patch
> > The latest improvements for torcs 1.3.7 --> torcs-1.3.7.contact.3.patch
> 

------=_Part_60528201_1319061192.1488496490304
Content-Type: text/x-patch; name=torcs-1.3.8.contact.4.patch
Content-Disposition: attachment; filename=torcs-1.3.8.contact.4.patch
Content-Transfer-Encoding: base64

LS0tIHRvcmNzL3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvQ2FyU291bmREYXRhLmNwcAky
MDE0LTAyLTEwIDAzOjE2OjE4LjAwMDAwMDAwMCAtMDgwMAorKysgdG9yY3Mvc3JjL21vZHVsZXMv
Z3JhcGhpYy9zc2dncmFwaC9DYXJTb3VuZERhdGEuY3BwCTIwMTctMDItMjQgMjM6Mjg6MjIuMDAw
MDAwMDAwIC0wODAwCkBAIC0zMTUsMjkgKzMxNSwzMCBAQAogCiAgICAgfQogCisvLyBDYWxjdWxh
dGUgcm9hZC10aXJlIGNvbnRhY3Qgbm9pc2UgcG9zaXRpb25zIHdpdGggYW4gZWZmaWNpZW50IGZv
cm11bGEuCisvLyBub3RlIHRoYXQgc2luKGF6KSBpcyBuZWFybHkgZXF1YWwgdG8gYXogW2luIHJh
ZGlhbnNdLgorLy8gbm90ZSB0aGF0IGNvcyhheikgaXMgY2xvc2UgdG8gMS4wIGZvciBtb2RlcmF0
ZSB5YXcgYW5nbGVzLgorLy8gbm90ZSB0aGF0IHRoZSBjb250YWN0IHBhdGNoIGlzIGJlbmVhdGgg
R0MgKGFwcHJveCAtMC4zIG1ldHJlcykuCisgICAgdGRibGUgYXogPSBjYXItPl95YXc7CiAgICAg
Zm9yIChpID0gMDsgaTw0OyBpKyspIHsKLSAgICAgICAgdGRibGUgYXogPSBjYXItPl95YXc7Ci0g
ICAgICAgIHRkYmxlIFNpbnogPSBzaW4oYXopOwotICAgICAgICB0ZGJsZSBDb3N6ID0gY29zKGF6
KTsKLSAgICAgICAgICAgICAgICAKICAgICAgICAgdGRibGUgeCA9IGNhci0+cHJpdi53aGVlbFtp
XS5yZWxQb3MueDsKICAgICAgICAgdGRibGUgeSA9IGNhci0+cHJpdi53aGVlbFtpXS5yZWxQb3Mu
eTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgdGRibGUgZHggPSB4ICogQ29zeiAtIHkgKiBT
aW56OwotICAgICAgICB0ZGJsZSBkeSA9IHggKiBTaW56ICsgeSAqIENvc3o7CisgICAgICAgIHRk
YmxlIGR4ID0geCAtIHkqYXo7IC8vIHgqY29zKGF6KSAtIHkqc2luKGF6KQorICAgICAgICB0ZGJs
ZSBkeSA9IHgqYXogKyB5OwogICAgICAgICAgICAgICAgIAogICAgICAgICB0ZGJsZSBkdXggPSAt
Y2FyLT5feWF3X3JhdGUgKiB5OwogICAgICAgICB0ZGJsZSBkdXkgPSBjYXItPl95YXdfcmF0ZSAq
IHg7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgIGR1eCA9IGR1eCAqIENvc3ogLSBkdXkgKiBT
aW56OwotICAgICAgICBkdXkgPSBkdXggKiBTaW56ICsgZHV5ICogQ29zejsKKyAgICAgICAgZHV4
ID0gZHV4IC0gZHV5KmF6OworICAgICAgICBkdXkgPSBkdXgqYXogKyBkdXk7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgIHdoZWVsW2ldLnVbMF0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLnggKyBk
dXg7CiAgICAgICAgIHdoZWVsW2ldLnVbMV0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLnkgKyBkdXk7
CiAgICAgICAgIHdoZWVsW2ldLnVbMl0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLno7CiAgICAgICAg
IHdoZWVsW2ldLnBbMF0gPSBjYXItPnB1Yi5EeW5HQ2cucG9zLnggKyBkeDsKICAgICAgICAgd2hl
ZWxbaV0ucFsxXSA9IGNhci0+cHViLkR5bkdDZy5wb3MueSArIGR5OwotICAgICAgICB3aGVlbFtp
XS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56OworICAgICAgICB3aGVlbFtpXS5wWzJdID0g
Y2FyLT5wdWIuRHluR0NnLnBvcy56IC0gMC4zZjsKICAgICB9CiB9CiAKLS0tIHRvcmNzL3NyYy9t
b2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvZ3Jza2lkbWFya3MuY3BwCTIwMTQtMDItMTAgMDM6MDk6
MzYuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy9zcmMvbW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBo
L2dyc2tpZG1hcmtzLmNwcAkyMDE3LTAyLTI0IDIzOjI4OjIyLjAwMDAwMDAwMCAtMDgwMApAQCAt
MTk5LDExICsxOTksNyBAQAogCQkJfQogCQl9CiAKLQkJaWYgKGNhci0+X3NraWRbaV0gPiAwLjFm
KSB7Ci0JCQljdXJfY2xyWzNdID0gdGFuaChza2lkX3NlbnNpdGl2aXR5KmNhci0+X3NraWRbaV0p
OwotCQl9IGVsc2UgewotCQkJY3VyX2NsclszXSA9IDAuMGY7Ci0JCX0KKwkJY3VyX2NsclszXSA9
IHNraWRfc2Vuc2l0aXZpdHkqY2FyLT5fc2tpZFtpXTsgLy8gbGluZWFyICh0YW5oIHJlbW92ZWQs
IHNlZSB3aGVlbC5jcHApCiAKIAkJZm9yIChpbnQgYyA9IDA7IGMgPCAzOyBjKyspIHsKIAkJCXRk
YmxlIHRtcCA9IGdyQ2FySW5mb1tjYXItPmluZGV4XS5za2lkbWFya3MtPnN0cmlwc1tpXS5zbW9v
dGhfY29sb3VyW2NdOwpAQCAtMjE2LDcgKzIxMiw3IEBACiAJCX0KIAogCQlpZiAoY2FyLT5wdWIu
c3BlZWQgPiAxLjBmKSB7Ci0JICAgIAlpZiAoY3VyX2NsclszXSA+IDAuMWYpIHsKKwkgICAgCWlm
IChjdXJfY2xyWzNdID4gMC4xZikgeyAvLyAwLjA2IHdvcmtzIGJldHRlciB0aGFuIDAuMSAvLyBz
b21ldGhpbmcgaGVyZSBpbXByb3ZlcyB0cmFjdGlvbiA/IQogICAgICAgICAgICAgICAgIAogCQkJ
CWJhc2V2dHggPSBuZXcgc3NnVmVydGV4QXJyYXkoNCAqIDIgKyAxKTsKIAkJCQl0ZGJsZSBzbGlu
Z19sZWZ0ID0gMC4wZjsKLS0tIHRvcmNzL3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJ
MjAxNy0wMi0xMiAwOTo0NTo1Ny4wMDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3NyYy9tb2R1bGVz
L3NpbXUvc2ltdXYyL2Nhci5jcHAJMjAxNy0wMi0yNCAyMzoyODoyMi4wMDAwMDAwMDAgLTA4MDAK
QEAgLTY0LDcgKzY0LDcgQEAKIAl9CiAJayA9IGsgKiBrOwogCWNhci0+SWludi54ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoY2FyLT5kaW1lbnNpb24ueSAqIGNhci0+ZGltZW5zaW9uLnkgKyBjYXIt
PmRpbWVuc2lvbi56ICogY2FyLT5kaW1lbnNpb24ueikpOwotCWNhci0+SWludi55ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoY2FyLT5kaW1lbnNpb24ueCAqIGNhci0+ZGltZW5zaW9uLnggKyBjYXIt
PmRpbWVuc2lvbi56ICogY2FyLT5kaW1lbnNpb24ueikpOworCWNhci0+SWludi55ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoayAqIGNhci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54ICsg
Y2FyLT5kaW1lbnNpb24ueiAqIGNhci0+ZGltZW5zaW9uLnopKTsKIAljYXItPklpbnYueiA9IDEy
LjAgLyAoY2FyLT5tYXNzICogKGNhci0+ZGltZW5zaW9uLnkgKiBjYXItPmRpbWVuc2lvbi55ICsg
ayAqIGNhci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54KSk7CiAJCiAJLyogY29uZmln
dXJlIGNvbXBvbmVudHMgKi8KQEAgLTE0NSwxMCArMTQ1LDcgQEAKIAl0Rm9yY2VzCUY7CiAJaW50
CQlpOwogCXRkYmxlCW0sIHcsIG1pbnY7Ci0JdGRibGUJdiwgUiwgUnYsIFJtLCBSeCwgUnksIFJ6
OwogCi0JY2FyLT5wcmVEeW5HQyA9IGNhci0+RHluR0NnOwotCQogCS8qIHRvdGFsIG1hc3MgKi8K
IAltID0gY2FyLT5tYXNzICsgY2FyLT5mdWVsOwogCW1pbnYgPSAxLjAgLyBtOwpAQCAtMjAwLDM0
ICsxOTcsMTAgQEAKIAkJRi5NLnkgLT0gY2FyLT5hZXJvLmxpZnRbaV0gKiAoY2FyLT5heGxlW2ld
Lnhwb3MgLSBjYXItPnN0YXRHQy54KTsKIAl9CiAJCQotCS8qIFJvbGxpbmcgUmVzaXN0YW5jZSAq
LwotCXYgPSBjYXItPnNwZWVkOwotCVIgPSAwLjBmOwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKysp
IHsKLQkJUiArPSBjYXItPndoZWVsW2ldLnJvbGxSZXM7Ci0JfQotCWlmICh2ID4gMC4wMDAwMWYp
IHsKLQkJUnYgPSBSIC8gdjsKLQkJaWYgKChSdiAqIG1pbnYgKiBTaW1EZWx0YVRpbWUpID4gdikg
ewotCQkJUnYgPSB2ICogbSAvIFNpbURlbHRhVGltZTsKLQkJfQotCX0gZWxzZSB7Ci0JCVJ2ID0g
MC4wZjsKLQl9Ci0JUnggPSBSdiAqIGNhci0+RHluR0MudmVsLng7Ci0JUnkgPSBSdiAqIGNhci0+
RHluR0MudmVsLnk7Ci0JUnogPSBSdiAqIGNhci0+RHluR0MudmVsLno7Ci0JCi0JaWYgKChSICog
Y2FyLT53aGVlbGJhc2UgLyAyLjAgKiBjYXItPklpbnYueikgPiBmYWJzKGNhci0+RHluR0NnLnZl
bC5heikpIHsKLQkJUm0gPSBjYXItPkR5bkdDZy52ZWwuYXogLyBjYXItPklpbnYuejsKLQl9IGVs
c2UgewotCQlSbSA9IFNJR04oY2FyLT5EeW5HQ2cudmVsLmF6KSAqIFIgKiBjYXItPndoZWVsYmFz
ZSAvIDIuMDsKLQl9Ci0JCiAJLyogY29tcHV0ZSBhY2NlbGVyYXRpb25zICovCi0JY2FyLT5EeW5H
Qy5hY2MueCA9IChGLkYueCAtIFJ4KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQy5hY2MueSA9IChGLkYu
eSAtIFJ5KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQy5hY2MueiA9IChGLkYueiAtIFJ6KSAqIG1pbnY7
CisJY2FyLT5EeW5HQy5hY2MueCA9IEYuRi54ICogbWludjsKKwljYXItPkR5bkdDLmFjYy55ID0g
Ri5GLnkgKiBtaW52OworCWNhci0+RHluR0MuYWNjLnogPSBGLkYueiAqIG1pbnY7CiAJCiAJc2dW
ZWMzIGFjY2VsID0ge2Nhci0+RHluR0MuYWNjLngsIGNhci0+RHluR0MuYWNjLnksIGNhci0+RHlu
R0MuYWNjLnp9OwogCXNnWGZvcm1WZWMzKGFjY2VsLCBkc3QpOwpAQCAtMjM4LDcgKzIxMSw3IEBA
CiAKIAljYXItPkR5bkdDZy5hY2MuYXggPSBjYXItPkR5bkdDLmFjYy5heCA9IEYuTS54ICogY2Fy
LT5JaW52Lng7CiAJY2FyLT5EeW5HQ2cuYWNjLmF5ID0gY2FyLT5EeW5HQy5hY2MuYXkgPSBGLk0u
eSAqIGNhci0+SWludi55OwotCWNhci0+RHluR0NnLmFjYy5heiA9IGNhci0+RHluR0MuYWNjLmF6
ID0gKEYuTS56IC0gUm0pICogY2FyLT5JaW52Lno7CisJY2FyLT5EeW5HQ2cuYWNjLmF6ID0gY2Fy
LT5EeW5HQy5hY2MuYXogKz0gRi5NLnogKiBjYXItPklpbnYuejsgLy8gKz0gc2VlIHRvcmNzL3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwIDo6IFNpbVVwZGF0ZSgpCiB9CiAKIHN0YXRp
YyB2b2lkCkBAIC0yNTYsNyArMjI5LDE1IEBACiAJaWYgKGZhYnMoY2FyLT5EeW5HQ2cudmVsLmF6
KSA+IDkuMCkgewogCQljYXItPkR5bkdDZy52ZWwuYXogPSBTSUdOKGNhci0+RHluR0NnLnZlbC5h
eikgKiA5LjA7CiAJfQotCQkKKworCS8qIEZJWE1FOiBIYWNrIHRvIHN0b3Agc3RhdGlvbmFyeSBj
YXIgZnJvbSByb3RhdGluZyAqLworCWlmICgoCWNhci0+RHluR0NnLnZlbC54KmNhci0+RHluR0Nn
LnZlbC54ICsKKwkJY2FyLT5EeW5HQ2cudmVsLnkqY2FyLT5EeW5HQ2cudmVsLnkgKworCQljYXIt
PkR5bkdDZy52ZWwueipjYXItPkR5bkdDZy52ZWwueikgPCAwLjAxZiApCisJeworCQljYXItPkR5
bkdDZy52ZWwuYXggPSBjYXItPkR5bkdDZy52ZWwuYXkgPSBjYXItPkR5bkdDZy52ZWwuYXogPSAw
LjBmOworCX0KKwogCWNhci0+RHluR0MudmVsLmF4ID0gY2FyLT5EeW5HQ2cudmVsLmF4OwogCWNh
ci0+RHluR0MudmVsLmF5ID0gY2FyLT5EeW5HQ2cudmVsLmF5OwogCWNhci0+RHluR0MudmVsLmF6
ID0gY2FyLT5EeW5HQ2cudmVsLmF6OwotLS0gdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIv
c2ltdS5jcHAJMjAxNy0wMi0xOSAwNTowOTowMC4wMDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwCTIwMTctMDItMjQgMjM6Mjg6MjIuMDAwMDAw
MDAwIC0wODAwCkBAIC0zODUsNiArMzg1LDcgQEAKIAkJCQlTaW1BeGxlVXBkYXRlKGNhciwgaSk7
CiAJCQl9CiAJCQlDSEVDSyhjYXIpOworCQkJY2FyLT5EeW5HQy5hY2MuYXogPSAwLjBmOyAvLyBz
ZWUgdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvd2hlZWwuY3BwIDo6IFNpbVdoZWVsVXBk
YXRlRm9yY2UoKQogCQkJZm9yIChpID0gMDsgaSA8IDQ7IGkrKyl7CiAJCQkJU2ltV2hlZWxVcGRh
dGVGb3JjZShjYXIsIGkpOwogCQkJCVNpbVdoZWVsVXBkYXRlVGlyZShjYXIsIGkpOwotLS0gdG9y
Y3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc3VzcC5jcHAJMjAxNy0wMS0xNSAwNDo1MjoxNi4w
MDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL3N1c3AuY3Bw
CTIwMTctMDItMjQgMjM6Mjg6MjIuMDAwMDAwMDAwIC0wODAwCkBAIC0xMDcsOSArMTA3LDkgQEAK
IAl9CiAJCiAJc3VzcC0+eCAqPSBzdXNwLT5zcHJpbmcuYmVsbGNyYW5rOwotCWlmIChzdXNwLT54
ID4gc3VzcC0+c3ByaW5nLnhNYXgpIHsKKwlpZiAoc3VzcC0+eCA+PSBzdXNwLT5zcHJpbmcueE1h
eCkgeyAvLyBUZXN0ZWQgT0sgd2l0aCAnPj0nIChTRCByNjAyMCkKIAkJc3VzcC0+eCA9IHN1c3At
PnNwcmluZy54TWF4OwotCQlzdXNwLT5zdGF0ZSA9IFNJTV9TVVNQX0VYVDsKKwkJc3VzcC0+c3Rh
dGUgPSBTSU1fU1VTUF9FWFQ7IC8vIHN1c3AtPnN0YXRlIHVwZGF0ZWQgYWxzbwogCX0KIH0KIAot
LS0gdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvd2hlZWwuY3BwCTIwMTctMDItMTMgMTU6
NTE6MDcuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi93
aGVlbC5jcHAJMjAxNy0wMy0wMiAxMjo0NjowNC4wMDAwMDAwMDAgLTA4MDAKQEAgLTQ3LDkgKzQ3
LDkgQEAKIAlDYSAgICAgICAgICAgICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxT
ZWN0W2luZGV4XSwgUFJNX0NBLCAoY2hhciopTlVMTCwgMzAuMGYpOwogCVJGYWN0b3IgICAgICAg
ICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fUkZBQ1RP
UiwgKGNoYXIqKU5VTEwsIDAuOGYpOwogCUVGYWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdl
dE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fRUZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAu
N2YpOwotCXdoZWVsLT5sZk1heCAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNl
Y3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChjaGFyKilOVUxMLCAxLjZmKTsKLQl3aGVlbC0+bGZN
aW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0xP
QURGTUlOLCAoY2hhciopTlVMTCwgMC44Zik7Ci0Jd2hlZWwtPm9wTG9hZCAgICAgICAgID0gR2ZQ
YXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9PUExPQUQsIChjaGFyKilOVUxM
LCB3aGVlbC0+d2VpZ2h0MCAqIDEuMmYpOworCXdoZWVsLT5sZk1heCAgICAgICAgICA9IEdmUGFy
bUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChjaGFyKilOVUxM
LCAxLjRmKTsKKwl3aGVlbC0+bGZNaW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hl
ZWxTZWN0W2luZGV4XSwgUFJNX0xPQURGTUlOLCAoY2hhciopTlVMTCwgMS4wZik7CisJd2hlZWwt
Pm9wTG9hZCAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBS
TV9PUExPQUQsIChjaGFyKilOVUxMLCB3aGVlbC0+d2VpZ2h0MCAqIDEuNjE4Zik7CiAJd2hlZWwt
Pm1hc3MgICAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBS
TV9NQVNTLCAoY2hhciopTlVMTCwgMjAuMGYpOwogCQogCXdoZWVsLT5sZk1pbiA9IE1JTigwLjhm
LCB3aGVlbC0+bGZNaW4pOwpAQCAtMjEzLDEyICsyMTMsMTIgQEAKIHsKIAl0V2hlZWwgKndoZWVs
ID0gJihjYXItPndoZWVsW2luZGV4XSk7CiAJdGRibGUgYXhsZUZ6ID0gd2hlZWwtPmF4bGVGejsK
LQl0ZGJsZSB2dCwgdiwgdjIsIHdybDsgLy8gd2hlZWwgcmVsYXRlZCB2ZWxvY2l0eQorCXRkYmxl
IHZ0LCB2biwgdiwgdjIsIHdybCwgc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMGY7IC8vIHdoZWVs
IHJlbGF0ZWQgdmVsb2NpdHkKIAl0ZGJsZSBGbiwgRnQ7CiAJdGRibGUgd2F6OwotCXRkYmxlIENv
c0EsIFNpbkE7Ci0JdGRibGUgcywgc2EsIHN4LCBzeTsgLy8gc2xpcCB2ZWN0b3IKLQl0ZGJsZSBz
dG1wLCBGLCBCeDsKKwlkb3VibGUgQ29zQSwgU2luQTsKKwl0ZGJsZSBzLCBzeCwgc3ksIHNhejsg
Ly8gc2xpcCB2ZWN0b3IKKwl0ZGJsZSBGLCBCeDsKIAl0ZGJsZSBtdTsKIAl3aGVlbC0+c3RhdGUg
PSAwOwogCkBAIC0yNDgsNDQgKzI0OCw0MSBAQAogCX0KIAogCS8vIEhPUklaT05UQUwgRk9SQ0VT
Ci0Jd2F6ID0gd2hlZWwtPnN0ZWVyICsgd2hlZWwtPnN0YXRpY1Bvcy5hejsKKwl3YXogPSB3aGVl
bC0+c3RlZXIgKyB3aGVlbC0+c3RhdGljUG9zLmF6IC0gKFNpbURlbHRhVGltZSpjYXItPkR5bkdD
LnZlbC5heiAvKiBhY2NvdW50IGZvciB5YXcgaW5kdWNlZCB3aGVlbCBkaXJlY3Rpb24gKi8pOwog
CUNvc0EgPSBjb3Mod2F6KTsKIAlTaW5BID0gc2luKHdheik7CiAKIAkvLyB0YW5nZW50IHZlbG9j
aXR5LgogCXZ0ID0gd2hlZWwtPmJvZHlWZWwueCAqIENvc0EgKyB3aGVlbC0+Ym9keVZlbC55ICog
U2luQTsKKwl2biA9IHdoZWVsLT5ib2R5VmVsLnkgKiBDb3NBIC0gd2hlZWwtPmJvZHlWZWwueCAq
IFNpbkE7CiAJdjIgPSB3aGVlbC0+Ym9keVZlbC54ICogd2hlZWwtPmJvZHlWZWwueCArIHdoZWVs
LT5ib2R5VmVsLnkgKiB3aGVlbC0+Ym9keVZlbC55OwotCXYgPSBzcXJ0KHYyKTsKLQotCS8vIHNs
aXAgYW5nbGUKLQlpZiAodiA8IDAuMDAwMDAxZikgewotCQlzYSA9IDAuMGY7Ci0JfSBlbHNlIHsK
LQkJc2EgPSBhdGFuMih3aGVlbC0+Ym9keVZlbC55LCB3aGVlbC0+Ym9keVZlbC54KSAtIHdhejsK
LQl9Ci0JTk9STV9QSV9QSShzYSk7CisJdiA9IHNxcnRmKHYyKTsKIAogCXdybCA9IHdoZWVsLT5z
cGluVmVsICogd2hlZWwtPnJhZGl1czsKKwogCWlmICgod2hlZWwtPnN0YXRlICYgU0lNX1dIX09O
QUlSKSAhPSAwKSB7Ci0JCXN4ID0gc3kgPSAwLjBmOwotCX0gZWxzZSBpZiAodiA8IDAuMDAwMDAx
ZikgewotCQlzeCA9IHdybDsKLQkJc3kgPSAwLjBmOworCQlzeCA9IHN5ID0gc2F6ID0gMC4wZjsK
IAl9IGVsc2UgewotCQlzeCA9ICh2dCAtIHdybCkgLyBmYWJzKHZ0KTsKLQkJc3kgPSBzaW4oc2Ep
OworCQkvLyBDT01CSU5FRCBMT05HSVRVRElOQUwsIExBVEVSQUwsIGFuZCBZQVdJTkcgVElSRSBT
TElQIEZPUkNFUzoKKwkJLy8gTm9ybWFsaXplIHRoZSBmcmljdGlvbiBjaXJjbGUgdG8gZ2V0IG5v
cm1hbGl6ZWQgdmVjdG9yIGNvbXBvbmVudHMgKHN4LCBzeSkgd2hpbGUKKwkJLy8gYnJha2luZyAo
dnQpLCBhY2NlbGVyYXRpbmcgKHdybCksIG9yIHdoZWVsIGNvdW50ZXIgc3BpbiAodnQgLSB3cmwp
IGZvciBhbnkgYW5nbGUuCisJCS8vIHNheiBzbGlwIHNwZWVkIGFjY291bnRzIGZvciByb3RhdGlu
ZyB0aGUgY29udGFjdCBwYXRjaCAoeWF3KS4gKiBhZGQgc3RlZXJpbmcgc3BlZWQgYW5kIHNlbGYg
YWxpZ25pbmcgdG9ycXVlLgorCQlzYXogPSAoMS4xZiozLjE0MTZmKSAqIGNhci0+RHluR0MudmVs
LmF6ICogY2FyLT5jYXJFbHQtPl90aXJlV2lkdGgoaW5kZXgpOyAvLyB5YXcgc2xpcCBzcGVlZC4K
KwkJc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMWYgKyAvKiBTb2Z0ZW5pbmcgZmFjdG9yIDAuMDAw
MDAxIHByZXZlbnRzIGRpdmlkZSBieSB6ZXJvICovCisJCQkJc3FydCggTUFYKE1BWCgodjIgKyBz
YXoqc2F6KSwgKHZuKnZuICsgd3JsKndybCArIHNheipzYXopKSwgKHZuKnZuICsgKHZ0IC0gd3Js
KSoodnQgLSB3cmwpICsgc2F6KnNheikpICk7CisJCXN4ID0gKHZ0IC0gd3JsKSAvIHNsaXBfbWFn
bml0dWRlOworCQlzeSA9IHZuIC8gc2xpcF9tYWduaXR1ZGU7CisJCXNheiAvPSBzbGlwX21hZ25p
dHVkZTsKIAl9Ci0JCi0JRnQgPSAwLjBmOwotCUZuID0gMC4wZjsKLQlzID0gc3FydChzeCpzeCtz
eSpzeSk7CisKKwlzID0gc3FydGYoc3gqc3grc3kqc3krc2F6KnNheik7CiAKIAl7Ci0JCS8vIGNh
bGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3VuZC4KLQkJaWYgKHYgPCAyLjBmKSB7
CisJCS8vIGNhbGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3VuZCAoc3VzcGljaW91
c2x5OyBhZmZlY3RzIHRyYWN0aW9uIGFsc28pLgorCQlpZiAoKHYgPCAwLjAxZikgfHwgKHpmb3Jj
ZSA8IDAuMDAyZikpIHsKIAkJCWNhci0+Y2FyRWx0LT5fc2tpZFtpbmRleF0gPSAwLjBmOwogCQl9
IGVsc2UgewotCQkJY2FyLT5jYXJFbHQtPl9za2lkW2luZGV4XSA9ICBNSU4oMS4wZiwgKHMqemZv
cmNlKjAuMDAwMmYpKTsKKwkJCWNhci0+Y2FyRWx0LT5fc2tpZFtpbmRleF0gPSBzOyAvLyBsaW5l
YXIgKHRhbmggcmVtb3ZlZCBpbiBncnNraWRtYXJrcy5jcHApCiAJCX0KIAl9CiAKQEAgLTI5OSw0
NyArMjk2LDQ4IEBACiAJCWNhbWJlckRlbHRhID0gY2FzdGVyQ2FtYmVyOwogCX0KIAotCXN0bXAg
PSBNSU4ocywgMS41Zik7Ci0JCi0JLy8gTUFHSUMgRk9STVVMQQotCUJ4ID0gd2hlZWwtPm1mQiAq
IHN0bXA7Ci0JRiA9IHNpbih3aGVlbC0+bWZDICogYXRhbihCeCAqICgxLjBmIC0gd2hlZWwtPm1m
RSkgKyB3aGVlbC0+bWZFICogYXRhbihCeCkpKSAqICgxLjBmICsgc3RtcCAqIHNpbVNraWRGYWN0
b3JbY2FyLT5jYXJFbHQtPl9za2lsbExldmVsXSk7CisJLy8gTUFHSUMgRk9STVVMQSAvLyBOb3Rl
OiBGID0gc2luKC4uLikgYmVsb3cgcmV0dXJucyBub3JtYWxpemVkIGZvcmNlIQorCUJ4ID0gd2hl
ZWwtPm1mQiAqIHM7CisJRiA9IHNpbih3aGVlbC0+bWZDICogYXRhbihCeCAqICgxLjBmIC0gd2hl
ZWwtPm1mRSkgKyB3aGVlbC0+bWZFICogYXRhbihCeCkpKSAqICgxLjBmICsgcyAqIHNpbVNraWRG
YWN0b3JbY2FyLT5jYXJFbHQtPl9za2lsbExldmVsXSk7CiAKIAkvLyBsb2FkIHNlbnNpdGl2aXR5
CiAJbXUgPSB3aGVlbC0+bXUgKiAod2hlZWwtPmxmTWluICsgKHdoZWVsLT5sZk1heCAtIHdoZWVs
LT5sZk1pbikgKiBleHAod2hlZWwtPmxmSyAqIHpmb3JjZSAvIHdoZWVsLT5vcExvYWQpKTsKIAog
CUYgKj0gemZvcmNlICogbXUgKiB3aGVlbC0+dHJrUG9zLnNlZy0+c3VyZmFjZS0+a0ZyaWN0aW9u
ICogKDEuMGYgKyAwLjA1ZiAqIHNpbigoLXdoZWVsLT5zdGF0aWNQb3MuYXggKyBjYW1iZXJEZWx0
YSkgKiAxOC4wZikpOwkvKiBjb2VmZiAqLwogCUYgKj0gd2hlZWwtPmN1cnJlbnRHcmlwRmFjdG9y
OwotCQorCiAJd2hlZWwtPnJvbGxSZXMgPSB6Zm9yY2UgKiB3aGVlbC0+dHJrUG9zLnNlZy0+c3Vy
ZmFjZS0+a1JvbGxSZXM7Ci0gICAgY2FyLT5jYXJFbHQtPnByaXYud2hlZWxbaW5kZXhdLnJvbGxS
ZXMgPSB3aGVlbC0+cm9sbFJlczsKKwkvLyB3aGVlbCBheGlzIGJhc2VkCisJcyArPSAwLjAwMDAw
MWY7IC8vIGFkZCAwLjAwMDAwMSB0byBhdm9pZCBkaXZpZGUgYnkgemVybyBsYXRlci4KKwlGdCA9
IC0oRiAtIHdoZWVsLT5yb2xsUmVzKSAqIHN4L3M7IC8vIHJvbGxpbmcgcmVzaXN0YW5jZSBpcyB0
aGUgcm9sbGluZyB2ZWN0b3IgY29tcG9uZW50IG9ubHkuCisJRm4gPSAtRiAqIHN5L3M7CiAKLQlp
ZiAocyA+IDAuMDAwMDAxZikgewotCQkvLyB3aGVlbCBheGlzIGJhc2VkCi0JCUZ0IC09IEYgKiBz
eCAvIHM7Ci0JCUZuIC09IEYgKiBzeSAvIHM7Ci0JfQorCWNhci0+RHluR0MuYWNjLmF6ICs9IC1G
ICogc2F6L3MgKiBTaW1EZWx0YVRpbWUgKiBjYXItPklpbnYuejsgLy8gc2VlIHRvcmNzL3NyYy9t
b2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwIDo6IFNpbVVwZGF0ZSgpCiAKLQlSRUxBWEFUSU9O
MihGbiwgd2hlZWwtPnByZUZuLCA1MC4wZik7Ci0JUkVMQVhBVElPTjIoRnQsIHdoZWVsLT5wcmVG
dCwgNTAuMGYpOworCXdoZWVsLT5yb2xsUmVzICo9IGZhYnNmKHN4L3MpOyAvLyBub3QgdXNlZCAo
cmVtb3ZlZCBmcm9tIC9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi9jYXIuY3BwKQorCWNhci0+Y2Fy
RWx0LT5wcml2LndoZWVsW2luZGV4XS5yb2xsUmVzID0gd2hlZWwtPnJvbGxSZXM7IC8vIG5vdCB1
c2VkIGluIC9zcmMvbW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBoL0NhclNvdW5kRGF0YS5jcHAKKwor
CXdheiA9IHdoZWVsLT5zdGVlciArIHdoZWVsLT5zdGF0aWNQb3MuYXo7IC8qIGRvbid0IGluY2x1
ZGUgeWF3IGluZHVjZWQgd2hlZWwgZGlyZWN0aW9uIGhlcmUgKi8KKwlDb3NBID0gY29zKHdheik7
CisJU2luQSA9IHNpbih3YXopOwogCiAJd2hlZWwtPnJlbFBvcy5heiA9IHdhejsKIAkKIAl3aGVl
bC0+Zm9yY2VzLnggPSBGdCAqIENvc0EgLSBGbiAqIFNpbkE7CiAJd2hlZWwtPmZvcmNlcy55ID0g
RnQgKiBTaW5BICsgRm4gKiBDb3NBOwogCXdoZWVsLT5zcGluVHEgPSBGdCAqIHdoZWVsLT5yYWRp
dXM7Ci0Jd2hlZWwtPnNhID0gc2E7CisJd2hlZWwtPnNhID0gYXRhbjIod2hlZWwtPmJvZHlWZWwu
eSwgd2hlZWwtPmJvZHlWZWwueCkgLSB3YXo7CiAJd2hlZWwtPnN4ID0gc3g7CiAKIAl3aGVlbC0+
dGlyZVpGb3JjZSA9IHpmb3JjZTsKLQl3aGVlbC0+dGlyZVNsaXAgPSBzdG1wOworCXdoZWVsLT50
aXJlU2xpcCA9IHM7CiAKIAl3aGVlbC0+ZmVlZEJhY2suc3BpblZlbCA9IHdoZWVsLT5zcGluVmVs
OwogCXdoZWVsLT5mZWVkQmFjay5UcSA9IHdoZWVsLT5zcGluVHE7CiAJd2hlZWwtPmZlZWRCYWNr
LmJya1RxID0gd2hlZWwtPmJyYWtlLlRxOwogCi0JY2FyLT5jYXJFbHQtPl93aGVlbFNsaXBTaWRl
KGluZGV4KSA9IHN5KnY7Ci0JY2FyLT5jYXJFbHQtPl93aGVlbFNsaXBBY2NlbChpbmRleCkgPSBz
eCp2OworCWNhci0+Y2FyRWx0LT5fd2hlZWxTbGlwU2lkZShpbmRleCkgPSB2biooMS4wZi1zeSk7
IC8vIHdoZWVsIG5vcm1hbCBhZGhlc2lvbiB2ZWxvY2l0eQorCWNhci0+Y2FyRWx0LT5fd2hlZWxT
bGlwQWNjZWwoaW5kZXgpID0gdnQqKDEuMGYtc3gpOyAvLyB3aGVlbCB0YW5nZW50IGFkaGVzaW9u
IHZlbG9jaXR5CiAJY2FyLT5jYXJFbHQtPl9yZWFjdGlvbltpbmRleF0gPSB6Zm9yY2U7CiB9CiAK
QEAgLTM1NCw4ICszNTIsNiBAQAogCQl3aGVlbCA9ICYoY2FyLT53aGVlbFtpXSk7CiAJCXdoZWVs
LT5zcGluVmVsID0gd2hlZWwtPmluLnNwaW5WZWw7CiAKLQkJUkVMQVhBVElPTjIod2hlZWwtPnNw
aW5WZWwsIHdoZWVsLT5wcmVzcGluVmVsLCA1MC4wZik7Ci0KIAkJd2hlZWwtPnJlbFBvcy5heSAr
PSB3aGVlbC0+c3BpblZlbCAqIFNpbURlbHRhVGltZTsKIAkJTk9STV9QSV9QSSh3aGVlbC0+cmVs
UG9zLmF5KTsKIAkJY2FyLT5jYXJFbHQtPl93aGVlbFNwaW5WZWwoaSkgPSB3aGVlbC0+c3BpblZl
bDsK
------=_Part_60528201_1319061192.1488496490304
Content-Type: text/x-patch; name=torcs-1.3.7.contact.4.patch
Content-Disposition: attachment; filename=torcs-1.3.7.contact.4.patch
Content-Transfer-Encoding: base64

LS0tIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvQ2FyU291bmREYXRh
LmNwcAkyMDE0LTAyLTEwIDAzOjE2OjE4LjAwMDAwMDAwMCAtMDgwMAorKysgdG9yY3MtMS4zLjcv
c3JjL21vZHVsZXMvZ3JhcGhpYy9zc2dncmFwaC9DYXJTb3VuZERhdGEuY3BwCTIwMTctMDMtMDIg
MTM6Mzc6NTUuMzMzNTgzMTY4IC0wODAwCkBAIC0zMTUsMjkgKzMxNSwzMCBAQAogCiAgICAgfQog
CisvLyBDYWxjdWxhdGUgcm9hZC10aXJlIGNvbnRhY3Qgbm9pc2UgcG9zaXRpb25zIHdpdGggYW4g
ZWZmaWNpZW50IGZvcm11bGEuCisvLyBub3RlIHRoYXQgc2luKGF6KSBpcyBuZWFybHkgZXF1YWwg
dG8gYXogW2luIHJhZGlhbnNdLgorLy8gbm90ZSB0aGF0IGNvcyhheikgaXMgY2xvc2UgdG8gMS4w
IGZvciBtb2RlcmF0ZSB5YXcgYW5nbGVzLgorLy8gbm90ZSB0aGF0IHRoZSBjb250YWN0IHBhdGNo
IGlzIGJlbmVhdGggR0MgKGFwcHJveCAtMC4zIG1ldHJlcykuCisgICAgdGRibGUgYXogPSBjYXIt
Pl95YXc7CiAgICAgZm9yIChpID0gMDsgaTw0OyBpKyspIHsKLSAgICAgICAgdGRibGUgYXogPSBj
YXItPl95YXc7Ci0gICAgICAgIHRkYmxlIFNpbnogPSBzaW4oYXopOwotICAgICAgICB0ZGJsZSBD
b3N6ID0gY29zKGF6KTsKLSAgICAgICAgICAgICAgICAKICAgICAgICAgdGRibGUgeCA9IGNhci0+
cHJpdi53aGVlbFtpXS5yZWxQb3MueDsKICAgICAgICAgdGRibGUgeSA9IGNhci0+cHJpdi53aGVl
bFtpXS5yZWxQb3MueTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgdGRibGUgZHggPSB4ICog
Q29zeiAtIHkgKiBTaW56OwotICAgICAgICB0ZGJsZSBkeSA9IHggKiBTaW56ICsgeSAqIENvc3o7
CisgICAgICAgIHRkYmxlIGR4ID0geCAtIHkqYXo7IC8vIHgqY29zKGF6KSAtIHkqc2luKGF6KQor
ICAgICAgICB0ZGJsZSBkeSA9IHgqYXogKyB5OwogICAgICAgICAgICAgICAgIAogICAgICAgICB0
ZGJsZSBkdXggPSAtY2FyLT5feWF3X3JhdGUgKiB5OwogICAgICAgICB0ZGJsZSBkdXkgPSBjYXIt
Pl95YXdfcmF0ZSAqIHg7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgIGR1eCA9IGR1eCAqIENv
c3ogLSBkdXkgKiBTaW56OwotICAgICAgICBkdXkgPSBkdXggKiBTaW56ICsgZHV5ICogQ29zejsK
KyAgICAgICAgZHV4ID0gZHV4IC0gZHV5KmF6OworICAgICAgICBkdXkgPSBkdXgqYXogKyBkdXk7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgIHdoZWVsW2ldLnVbMF0gPSBjYXItPnB1Yi5EeW5H
Q2cudmVsLnggKyBkdXg7CiAgICAgICAgIHdoZWVsW2ldLnVbMV0gPSBjYXItPnB1Yi5EeW5HQ2cu
dmVsLnkgKyBkdXk7CiAgICAgICAgIHdoZWVsW2ldLnVbMl0gPSBjYXItPnB1Yi5EeW5HQ2cudmVs
Lno7CiAgICAgICAgIHdoZWVsW2ldLnBbMF0gPSBjYXItPnB1Yi5EeW5HQ2cucG9zLnggKyBkeDsK
ICAgICAgICAgd2hlZWxbaV0ucFsxXSA9IGNhci0+cHViLkR5bkdDZy5wb3MueSArIGR5OwotICAg
ICAgICB3aGVlbFtpXS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56OworICAgICAgICB3aGVl
bFtpXS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56IC0gMC4zZjsKICAgICB9CiB9CiAKLS0t
IHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvZ3Jza2lkbWFya3MuY3Bw
CTIwMTQtMDItMTAgMDM6MDk6MzYuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy0xLjMuNy9zcmMv
bW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBoL2dyc2tpZG1hcmtzLmNwcAkyMDE3LTAzLTAyIDEzOjM3
OjU1LjMzNDU4MzI4MyAtMDgwMApAQCAtMTk5LDExICsxOTksNyBAQAogCQkJfQogCQl9CiAKLQkJ
aWYgKGNhci0+X3NraWRbaV0gPiAwLjFmKSB7Ci0JCQljdXJfY2xyWzNdID0gdGFuaChza2lkX3Nl
bnNpdGl2aXR5KmNhci0+X3NraWRbaV0pOwotCQl9IGVsc2UgewotCQkJY3VyX2NsclszXSA9IDAu
MGY7Ci0JCX0KKwkJY3VyX2NsclszXSA9IHNraWRfc2Vuc2l0aXZpdHkqY2FyLT5fc2tpZFtpXTsg
Ly8gbGluZWFyICh0YW5oIHJlbW92ZWQsIHNlZSB3aGVlbC5jcHApCiAKIAkJZm9yIChpbnQgYyA9
IDA7IGMgPCAzOyBjKyspIHsKIAkJCXRkYmxlIHRtcCA9IGdyQ2FySW5mb1tjYXItPmluZGV4XS5z
a2lkbWFya3MtPnN0cmlwc1tpXS5zbW9vdGhfY29sb3VyW2NdOwpAQCAtMjE2LDcgKzIxMiw3IEBA
CiAJCX0KIAogCQlpZiAoY2FyLT5wdWIuc3BlZWQgPiAxLjBmKSB7Ci0JICAgIAlpZiAoY3VyX2Ns
clszXSA+IDAuMWYpIHsKKwkgICAgCWlmIChjdXJfY2xyWzNdID4gMC4xZikgeyAvLyAwLjA2IHdv
cmtzIGJldHRlciB0aGFuIDAuMSAvLyBzb21ldGhpbmcgaGVyZSBpbXByb3ZlcyB0cmFjdGlvbiA/
IQogICAgICAgICAgICAgICAgIAogCQkJCWJhc2V2dHggPSBuZXcgc3NnVmVydGV4QXJyYXkoNCAq
IDIgKyAxKTsKIAkJCQl0ZGJsZSBzbGluZ19sZWZ0ID0gMC4wZjsKLS0tIHRvcmNzLTEuMy43L3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJMjAxNi0wNS0xNiAxNTo1MzowNy4wMDAwMDAw
MDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJ
MjAxNy0wMy0wMiAxMzozNzo1NS4zMzY1ODM1MDIgLTA4MDAKQEAgLTY0LDcgKzY0LDcgQEAKIAl9
CiAJayA9IGsgKiBrOwogCWNhci0+SWludi54ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoY2FyLT5k
aW1lbnNpb24ueSAqIGNhci0+ZGltZW5zaW9uLnkgKyBjYXItPmRpbWVuc2lvbi56ICogY2FyLT5k
aW1lbnNpb24ueikpOwotCWNhci0+SWludi55ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoY2FyLT5k
aW1lbnNpb24ueCAqIGNhci0+ZGltZW5zaW9uLnggKyBjYXItPmRpbWVuc2lvbi56ICogY2FyLT5k
aW1lbnNpb24ueikpOworCWNhci0+SWludi55ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoayAqIGNh
ci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54ICsgY2FyLT5kaW1lbnNpb24ueiAqIGNh
ci0+ZGltZW5zaW9uLnopKTsKIAljYXItPklpbnYueiA9IDEyLjAgLyAoY2FyLT5tYXNzICogKGNh
ci0+ZGltZW5zaW9uLnkgKiBjYXItPmRpbWVuc2lvbi55ICsgayAqIGNhci0+ZGltZW5zaW9uLngg
KiBjYXItPmRpbWVuc2lvbi54KSk7CiAJCiAJLyogY29uZmlndXJlIGNvbXBvbmVudHMgKi8KQEAg
LTE0Niw3ICsxNDYsNiBAQAogCXRkYmxlCW0sIHcsIG1pbnY7CiAJdGRibGUJU2luVGhldGE7CiAJ
dGRibGUJQ29zeiwgU2luejsKLQl0ZGJsZQl2LCBSLCBSdiwgUm0sIFJ4LCBSeTsKIAkKIAlDb3N6
ID0gY2FyLT5Db3N6ID0gY29zKGNhci0+RHluR0NnLnBvcy5heik7CiAJU2lueiA9IGNhci0+U2lu
eiA9IHNpbihjYXItPkR5bkdDZy5wb3MuYXopOwpAQCAtMTk5LDQxICsxOTgsMTggQEAKIAkJRi5N
LnkgLT0gY2FyLT5hZXJvLmxpZnRbaV0gKiAoY2FyLT5heGxlW2ldLnhwb3MgLSBjYXItPnN0YXRH
Qy54KTsKIAl9CiAJCi0JLyogUm9sbGluZyBSZXNpc3RhbmNlICovCi0JdiA9IHNxcnQoY2FyLT5E
eW5HQ2cudmVsLnggKiBjYXItPkR5bkdDZy52ZWwueCArIGNhci0+RHluR0NnLnZlbC55ICogY2Fy
LT5EeW5HQ2cudmVsLnkpOwotCVIgPSAwOwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJ
UiArPSBjYXItPndoZWVsW2ldLnJvbGxSZXM7Ci0JfQotCWlmICh2ID4gMC4wMDAwMSkgewotCQlS
diA9IFIgLyB2OwotCQlpZiAoKFJ2ICogbWludiAqIFNpbURlbHRhVGltZSkgPiB2KSB7Ci0JCQlS
diA9IHYgKiBtIC8gU2ltRGVsdGFUaW1lOwotCQl9Ci0JfSBlbHNlIHsKLQkJUnYgPSAwOwotCX0K
LQlSeCA9IFJ2ICogY2FyLT5EeW5HQ2cudmVsLng7Ci0JUnkgPSBSdiAqIGNhci0+RHluR0NnLnZl
bC55OwotCQotCWlmICgoUiAqIGNhci0+d2hlZWxiYXNlIC8gMi4wICogY2FyLT5JaW52LnopID4g
ZmFicyhjYXItPkR5bkdDZy52ZWwuYXopKSB7Ci0JCVJtID0gY2FyLT5EeW5HQ2cudmVsLmF6IC8g
Y2FyLT5JaW52Lno7Ci0JfSBlbHNlIHsKLQkJUm0gPSBTSUdOKGNhci0+RHluR0NnLnZlbC5heikg
KiBSICogY2FyLT53aGVlbGJhc2UgLyAyLjA7Ci0JfQotCQogCS8qIGNvbXB1dGUgYWNjZWxlcmF0
aW9ucyAqLwogCWNhci0+RHluR0MuYWNjLnggPSBGLkYueCAqIG1pbnY7CiAJY2FyLT5EeW5HQy5h
Y2MueSA9IEYuRi55ICogbWludjsKIAljYXItPkR5bkdDLmFjYy56ID0gRi5GLnogKiBtaW52Owog
CQotCWNhci0+RHluR0NnLmFjYy54ID0gKEYuRi54ICogQ29zeiAtIEYuRi55ICogU2lueiAtIFJ4
KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQ2cuYWNjLnkgPSAoRi5GLnggKiBTaW56ICsgRi5GLnkgKiBD
b3N6IC0gUnkpICogbWludjsKKwljYXItPkR5bkdDZy5hY2MueCA9IChGLkYueCAqIENvc3ogLSBG
LkYueSAqIFNpbnopICogbWludjsKKwljYXItPkR5bkdDZy5hY2MueSA9IChGLkYueCAqIFNpbnog
KyBGLkYueSAqIENvc3opICogbWludjsKIAljYXItPkR5bkdDZy5hY2MueiA9IGNhci0+RHluR0Mu
YWNjLno7CiAJCiAJY2FyLT5EeW5HQ2cuYWNjLmF4ID0gY2FyLT5EeW5HQy5hY2MuYXggPSBGLk0u
eCAqIGNhci0+SWludi54OwogCWNhci0+RHluR0NnLmFjYy5heSA9IGNhci0+RHluR0MuYWNjLmF5
ID0gRi5NLnkgKiBjYXItPklpbnYueTsKLQljYXItPkR5bkdDZy5hY2MuYXogPSBjYXItPkR5bkdD
LmFjYy5heiA9IChGLk0ueiAtIFJtKSAqIGNhci0+SWludi56OworCWNhci0+RHluR0NnLmFjYy5h
eiA9IGNhci0+RHluR0MuYWNjLmF6ICs9IEYuTS56ICogY2FyLT5JaW52Lno7IC8vICs9IHNlZSB0
b3Jjcy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi9zaW11LmNwcCA6OiBTaW1VcGRhdGUoKSAKIH0K
IAogc3RhdGljIHZvaWQKQEAgLTI1Niw3ICsyMzIsMTUgQEAKIAlpZiAoZmFicyhjYXItPkR5bkdD
Zy52ZWwuYXopID4gOS4wKSB7CiAJCWNhci0+RHluR0NnLnZlbC5heiA9IFNJR04oY2FyLT5EeW5H
Q2cudmVsLmF6KSAqIDkuMDsKIAl9Ci0JCQorCQorCS8qIEZJWE1FOiBIYWNrIHRvIHN0b3Agc3Rh
dGlvbmFyeSBjYXIgZnJvbSByb3RhdGluZyAqLworCWlmICgoCWNhci0+RHluR0NnLnZlbC54KmNh
ci0+RHluR0NnLnZlbC54ICsKKwkJY2FyLT5EeW5HQ2cudmVsLnkqY2FyLT5EeW5HQ2cudmVsLnkg
KworCQljYXItPkR5bkdDZy52ZWwueipjYXItPkR5bkdDZy52ZWwueikgPCAwLjAxZiApCisJewor
CQljYXItPkR5bkdDZy52ZWwuYXggPSBjYXItPkR5bkdDZy52ZWwuYXkgPSBjYXItPkR5bkdDZy52
ZWwuYXogPSAwLjBmOworCX0KKwkKIAljYXItPkR5bkdDLnZlbC5heCA9IGNhci0+RHluR0NnLnZl
bC5heDsKIAljYXItPkR5bkdDLnZlbC5heSA9IGNhci0+RHluR0NnLnZlbC5heTsKIAljYXItPkR5
bkdDLnZlbC5heiA9IGNhci0+RHluR0NnLnZlbC5hejsKLS0tIHRvcmNzLTEuMy43L3NyYy9tb2R1
bGVzL3NpbXUvc2ltdXYyL2NvbGxpZGUuY3BwCTIwMTQtMDQtMTIgMDY6NTU6MjkuMDAwMDAwMDAw
IC0wNzAwCisrKyB0b3Jjcy0xLjMuNy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi9jb2xsaWRlLmNw
cAkyMDE3LTAzLTAyIDEzOjM3OjU1LjMzNzU4MzYwNiAtMDgwMApAQCAtMzcsNyArMzcsNyBAQAog
CWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKIAkJd2hlZWwgPSAmKGNhci0+d2hlZWxbaV0pOwog
CQlpZiAod2hlZWwtPnN0YXRlICYgU0lNX1NVU1BfQ09NUCkgewotCQkJY2FyLT5EeW5HQ2cucG9z
LnogKz0gd2hlZWwtPnN1c3Auc3ByaW5nLnBhY2tlcnMgLSB3aGVlbC0+cmlkZUhlaWdodDsKKwkJ
CWNhci0+RHluR0NnLnBvcy56ICs9IDAuMjVmKih3aGVlbC0+c3VzcC5zcHJpbmcucGFja2VycyAt
IHdoZWVsLT5yaWRlSGVpZ2h0KTsgLy8gbGV2ZXJhZ2Ugb2YgNCB3aGVlbHMKIAkJCVJ0VHJhY2tT
dXJmYWNlTm9ybWFsTCgmKHdoZWVsLT50cmtQb3MpLCAmbm9ybWFsKTsKIAkJCWRvdFByb2QgPSAo
Y2FyLT5EeW5HQ2cudmVsLnggKiBub3JtYWwueCArIGNhci0+RHluR0NnLnZlbC55ICogbm9ybWFs
LnkgKyBjYXItPkR5bkdDZy52ZWwueiAqIG5vcm1hbC56KSAqIHdoZWVsLT50cmtQb3Muc2VnLT5z
dXJmYWNlLT5rUmVib3VuZDsKIAkJCWlmIChkb3RQcm9kIDwgMC4wZikgewotLS0gdG9yY3MtMS4z
Ljcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc2ltdS5jcHAJMjAxNi0xMC0xNCAyMTo1MDoxMS4w
MDAwMDAwMDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL3Np
bXUuY3BwCTIwMTctMDMtMDIgMTM6Mzc6NTUuMzM4NTgzNzA3IC0wODAwCkBAIC0zODAsNiArMzgw
LDcgQEAKIAkJCQlTaW1BeGxlVXBkYXRlKGNhciwgaSk7CiAJCQl9CiAJCQlDSEVDSyhjYXIpOwor
CQkJY2FyLT5EeW5HQy5hY2MuYXogPSAwLjBmOyAvLyBzZWUgdG9yY3Mvc3JjL21vZHVsZXMvc2lt
dS9zaW11djIvd2hlZWwuY3BwIDo6IFNpbVdoZWVsVXBkYXRlRm9yY2UoKQogCQkJZm9yIChpID0g
MDsgaSA8IDQ7IGkrKyl7CiAJCQkJU2ltV2hlZWxVcGRhdGVGb3JjZShjYXIsIGkpOwogCQkJfQot
LS0gdG9yY3MtMS4zLjcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc3VzcC5jcHAJMjAxNi0wMy0x
OSAwNzo0NzowNS4wMDAwMDAwMDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3Np
bXUvc2ltdXYyL3N1c3AuY3BwCTIwMTctMDMtMDIgMTM6Mzc6NTUuMzM5NTgzODA0IC0wODAwCkBA
IC0xMDcsOSArMTA3LDkgQEAKIAl9CiAJCiAJc3VzcC0+eCAqPSBzdXNwLT5zcHJpbmcuYmVsbGNy
YW5rOwotCWlmIChzdXNwLT54ID4gc3VzcC0+c3ByaW5nLnhNYXgpIHsKKwlpZiAoc3VzcC0+eCA+
PSBzdXNwLT5zcHJpbmcueE1heCkgeyAvLyBUZXN0ZWQgT0sgd2l0aCAnPj0nIChTRCByNjAyMCkK
IAkJc3VzcC0+eCA9IHN1c3AtPnNwcmluZy54TWF4OwotCQlzdXNwLT5zdGF0ZSA9IFNJTV9TVVNQ
X0VYVDsKKwkJc3VzcC0+c3RhdGUgPSBTSU1fU1VTUF9FWFQ7IC8vIHN1c3AtPnN0YXRlIHVwZGF0
ZWQgYWxzbwogCX0KIH0KIAotLS0gdG9yY3MtMS4zLjcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIv
d2hlZWwuY3BwCTIwMTYtMDUtMTYgMTU6NTM6MDcuMDAwMDAwMDAwIC0wNzAwCisrKyB0b3Jjcy0x
LjMuNy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi93aGVlbC5jcHAJMjAxNy0wMy0wMiAxMzo0OTox
Ni43NjMwMjE1NzUgLTA4MDAKQEAgLTQ2LDkgKzQ2LDkgQEAKIAlDYSAgICAgICAgICAgICAgICAg
ICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0NBLCAoY2hhciop
TlVMTCwgMzAuMGYpOwogCVJGYWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxl
LCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fUkZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAuOGYpOwogCUVG
YWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhd
LCBQUk1fRUZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAuN2YpOwotCXdoZWVsLT5sZk1heCAgICAgICAg
ICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChj
aGFyKilOVUxMLCAxLjZmKTsKLQl3aGVlbC0+bGZNaW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0o
aGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0xPQURGTUlOLCAoY2hhciopTlVMTCwgMC44Zik7
Ci0Jd2hlZWwtPm9wTG9hZCAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtp
bmRleF0sIFBSTV9PUExPQUQsIChjaGFyKilOVUxMLCB3aGVlbC0+d2VpZ2h0MCAqIDEuMmYpOwor
CXdoZWVsLT5sZk1heCAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5k
ZXhdLCBQUk1fTE9BREZNQVgsIChjaGFyKilOVUxMLCAxLjRmKTsKKwl3aGVlbC0+bGZNaW4gICAg
ICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0xPQURGTUlO
LCAoY2hhciopTlVMTCwgMS4wZik7CisJd2hlZWwtPm9wTG9hZCAgICAgICAgID0gR2ZQYXJtR2V0
TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9PUExPQUQsIChjaGFyKilOVUxMLCB3aGVl
bC0+d2VpZ2h0MCAqIDEuNjE4Zik7CiAJd2hlZWwtPm1hc3MgICAgICAgICAgID0gR2ZQYXJtR2V0
TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9NQVNTLCAoY2hhciopTlVMTCwgMjAuMGYp
OwogCiAJaWYgKGluZGV4ICUgMikgewpAQCAtMTc0LDEyICsxNzQsMTIgQEAKIHsKIAl0V2hlZWwg
KndoZWVsID0gJihjYXItPndoZWVsW2luZGV4XSk7CiAJdGRibGUgYXhsZUZ6ID0gd2hlZWwtPmF4
bGVGejsKLQl0ZGJsZSB2dCwgdiwgdjIsIHdybDsgLy8gd2hlZWwgcmVsYXRlZCB2ZWxvY2l0eQor
CXRkYmxlIHZ0LCB2biwgdiwgdjIsIHdybCwgc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMGY7IC8v
IHdoZWVsIHJlbGF0ZWQgdmVsb2NpdHkKIAl0ZGJsZSBGbiwgRnQ7CiAJdGRibGUgd2F6OwotCXRk
YmxlIENvc0EsIFNpbkE7Ci0JdGRibGUgcywgc2EsIHN4LCBzeTsgLy8gc2xpcCB2ZWN0b3IKLQl0
ZGJsZSBzdG1wLCBGLCBCeDsKKwlkb3VibGUgQ29zQSwgU2luQTsKKwl0ZGJsZSBzLCBzeCwgc3ks
IHNhejsgLy8gc2xpcCB2ZWN0b3IKKwl0ZGJsZSBGLCBCeDsKIAl0ZGJsZSBtdTsKIAl3aGVlbC0+
c3RhdGUgPSAwOwogCkBAIC0yMDksNTIgKzIwOSw0NyBAQAogCX0KIAogCS8vIEhPUklaT05UQUwg
Rk9SQ0VTCi0Jd2F6ID0gd2hlZWwtPnN0ZWVyICsgd2hlZWwtPnN0YXRpY1Bvcy5hejsKKwl3YXog
PSB3aGVlbC0+c3RlZXIgKyB3aGVlbC0+c3RhdGljUG9zLmF6IC0gKFNpbURlbHRhVGltZSpjYXIt
PkR5bkdDLnZlbC5heiAvKiBhY2NvdW50IGZvciB5YXcgaW5kdWNlZCB3aGVlbCBkaXJlY3Rpb24g
Ki8pOwogCUNvc0EgPSBjb3Mod2F6KTsKIAlTaW5BID0gc2luKHdheik7CiAKIAkvLyB0YW5nZW50
IHZlbG9jaXR5LgogCXZ0ID0gd2hlZWwtPmJvZHlWZWwueCAqIENvc0EgKyB3aGVlbC0+Ym9keVZl
bC55ICogU2luQTsKKwl2biA9IHdoZWVsLT5ib2R5VmVsLnkgKiBDb3NBIC0gd2hlZWwtPmJvZHlW
ZWwueCAqIFNpbkE7CiAJdjIgPSB3aGVlbC0+Ym9keVZlbC54ICogd2hlZWwtPmJvZHlWZWwueCAr
IHdoZWVsLT5ib2R5VmVsLnkgKiB3aGVlbC0+Ym9keVZlbC55OwotCXYgPSBzcXJ0KHYyKTsKLQot
CS8vIHNsaXAgYW5nbGUKLQlpZiAodiA8IDAuMDAwMDAxZikgewotCQlzYSA9IDAuMGY7Ci0JfSBl
bHNlIHsKLQkJc2EgPSBhdGFuMih3aGVlbC0+Ym9keVZlbC55LCB3aGVlbC0+Ym9keVZlbC54KSAt
IHdhejsKLQl9Ci0JTk9STV9QSV9QSShzYSk7CisJdiA9IHNxcnRmKHYyKTsKIAogCXdybCA9IHdo
ZWVsLT5zcGluVmVsICogd2hlZWwtPnJhZGl1czsKKwogCWlmICgod2hlZWwtPnN0YXRlICYgU0lN
X1dIX09OQUlSKSAhPSAwKSB7Ci0JCXN4ID0gc3kgPSAwLjBmOwotCX0gZWxzZSBpZiAodiA8IDAu
MDAwMDAxZikgewotCQlzeCA9IHdybDsKLQkJc3kgPSAwLjBmOworCQlzeCA9IHN5ID0gc2F6ID0g
MC4wZjsKIAl9IGVsc2UgewotCQlzeCA9ICh2dCAtIHdybCkgLyBmYWJzKHZ0KTsKLQkJc3kgPSBz
aW4oc2EpOworCQkvLyBDT01CSU5FRCBMT05HSVRVRElOQUwsIExBVEVSQUwsIGFuZCBZQVdJTkcg
VElSRSBTTElQIEZPUkNFUzoKKwkJLy8gTm9ybWFsaXplIHRoZSBmcmljdGlvbiBjaXJjbGUgdG8g
Z2V0IG5vcm1hbGl6ZWQgdmVjdG9yIGNvbXBvbmVudHMgKHN4LCBzeSkgd2hpbGUKKwkJLy8gYnJh
a2luZyAodnQpLCBhY2NlbGVyYXRpbmcgKHdybCksIG9yIHdoZWVsIGNvdW50ZXIgc3BpbiAodnQg
LSB3cmwpIGZvciBhbnkgYW5nbGUuCisJCS8vIHNheiBzbGlwIHNwZWVkIGFjY291bnRzIGZvciBy
b3RhdGluZyB0aGUgY29udGFjdCBwYXRjaCAoeWF3KS4gKiBhZGQgc3RlZXJpbmcgc3BlZWQgYW5k
IHNlbGYgYWxpZ25pbmcgdG9ycXVlLgorCQlzYXogPSAoMS4xZiozLjE0MTZmKSAqIGNhci0+RHlu
R0MudmVsLmF6ICogY2FyLT5jYXJFbHQtPl90aXJlV2lkdGgoaW5kZXgpOyAvLyB5YXdpbmcgc2xp
cCBzcGVlZC4KKwkJc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMWYgKyAvKiBTb2Z0ZW5pbmcgZmFj
dG9yIDAuMDAwMDAxIHByZXZlbnRzIGRpdmlkZSBieSB6ZXJvICovCisJCQkJc3FydCggTUFYKE1B
WCgodjIgKyBzYXoqc2F6KSwgKHZuKnZuICsgd3JsKndybCArIHNheipzYXopKSwgKHZuKnZuICsg
KHZ0IC0gd3JsKSoodnQgLSB3cmwpICsgc2F6KnNheikpICk7CisJCXN4ID0gKHZ0IC0gd3JsKSAv
IHNsaXBfbWFnbml0dWRlOworCQlzeSA9IHZuIC8gc2xpcF9tYWduaXR1ZGU7CisJCXNheiAvPSBz
bGlwX21hZ25pdHVkZTsKIAl9CiAKLQlGdCA9IDAuMGY7Ci0JRm4gPSAwLjBmOwotCXMgPSBzcXJ0
KHN4KnN4K3N5KnN5KTsKKwlzID0gc3FydGYoc3gqc3grc3kqc3krc2F6KnNheik7CiAKIAl7Ci0J
CS8vIGNhbGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3VuZC4KLQkJaWYgKHYgPCAy
LjBmKSB7CisJCS8vIGNhbGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3VuZCAoc3Vz
cGljaW91c2x5OyBhZmZlY3RzIHRyYWN0aW9uIGFsc28pLgorCQlpZiAoKHYgPCAwLjAxZikgfHwg
KHpmb3JjZSA8IDAuMDAyZikpIHsKIAkJCWNhci0+Y2FyRWx0LT5fc2tpZFtpbmRleF0gPSAwLjBm
OwogCQl9IGVsc2UgewotCQkJY2FyLT5jYXJFbHQtPl9za2lkW2luZGV4XSA9ICBNSU4oMS4wZiwg
KHMqemZvcmNlKjAuMDAwMmYpKTsKKwkJCWNhci0+Y2FyRWx0LT5fc2tpZFtpbmRleF0gPSBzOyAv
LyBsaW5lYXIgKHRhbmggcmVtb3ZlZCBpbiBncnNraWRtYXJrcy5jcHApCiAJCX0KIAl9CiAKLQlz
dG1wID0gTUlOKHMsIDEuNWYpOwotCQotCS8vIE1BR0lDIEZPUk1VTEEKLQlCeCA9IHdoZWVsLT5t
ZkIgKiBzdG1wOwotCUYgPSBzaW4od2hlZWwtPm1mQyAqIGF0YW4oQnggKiAoMS4wZiAtIHdoZWVs
LT5tZkUpICsgd2hlZWwtPm1mRSAqIGF0YW4oQngpKSkgKiAoMS4wZiArIHN0bXAgKiBzaW1Ta2lk
RmFjdG9yW2Nhci0+Y2FyRWx0LT5fc2tpbGxMZXZlbF0pOworCS8vIE1BR0lDIEZPUk1VTEEgLy8g
Tm90ZTogRiA9IHNpbiguLi4pIGJlbG93IHJldHVybnMgbm9ybWFsaXplZCBmb3JjZSEKKwlCeCA9
IHdoZWVsLT5tZkIgKiBzOworCUYgPSBzaW4od2hlZWwtPm1mQyAqIGF0YW4oQnggKiAoMS4wZiAt
IHdoZWVsLT5tZkUpICsgd2hlZWwtPm1mRSAqIGF0YW4oQngpKSkgKiAoMS4wZiArIHMgKiBzaW1T
a2lkRmFjdG9yW2Nhci0+Y2FyRWx0LT5fc2tpbGxMZXZlbF0pOwogCiAJLy8gbG9hZCBzZW5zaXRp
dml0eQogCW11ID0gd2hlZWwtPm11ICogKHdoZWVsLT5sZk1pbiArICh3aGVlbC0+bGZNYXggLSB3
aGVlbC0+bGZNaW4pICogZXhwKHdoZWVsLT5sZksgKiB6Zm9yY2UgLyB3aGVlbC0+b3BMb2FkKSk7
CkBAIC0yNjIsMzEgKzI1NywzNSBAQAogCUYgKj0gemZvcmNlICogbXUgKiB3aGVlbC0+dHJrUG9z
LnNlZy0+c3VyZmFjZS0+a0ZyaWN0aW9uICogKDEuMGYgKyAwLjA1ZiAqIHNpbigtd2hlZWwtPnN0
YXRpY1Bvcy5heCAqIDE4LjBmKSk7CS8qIGNvZWZmICovCiAKIAl3aGVlbC0+cm9sbFJlcyA9IHpm
b3JjZSAqIHdoZWVsLT50cmtQb3Muc2VnLT5zdXJmYWNlLT5rUm9sbFJlczsKLSAgICBjYXItPmNh
ckVsdC0+cHJpdi53aGVlbFtpbmRleF0ucm9sbFJlcyA9IHdoZWVsLT5yb2xsUmVzOwogCi0JaWYg
KHMgPiAwLjAwMDAwMWYpIHsKLQkJLy8gd2hlZWwgYXhpcyBiYXNlZAotCQlGdCAtPSBGICogc3gg
LyBzOwotCQlGbiAtPSBGICogc3kgLyBzOwotCX0KKwkvLyB3aGVlbCBheGlzIGJhc2VkCisJcyAr
PSAwLjAwMDAwMWY7IC8vIGFkZCAwLjAwMDAwMSB0byBhdm9pZCBkaXZpZGUgYnkgemVybyBsYXRl
ci4KKwlGdCA9IC0oRiAtIHdoZWVsLT5yb2xsUmVzKSAqIHN4L3M7IC8vIHJvbGxpbmcgcmVzaXN0
YW5jZSBpcyB0aGUgcm9sbGluZyB2ZWN0b3IgY29tcG9uZW50IG9ubHkuCisJRm4gPSAtRiAqIHN5
L3M7CiAKLQlSRUxBWEFUSU9OMihGbiwgd2hlZWwtPnByZUZuLCA1MC4wZik7Ci0JUkVMQVhBVElP
TjIoRnQsIHdoZWVsLT5wcmVGdCwgNTAuMGYpOworCWNhci0+RHluR0MuYWNjLmF6ICs9IC1GICog
c2F6L3MgKiBTaW1EZWx0YVRpbWUgKiBjYXItPklpbnYuejsgLy8gc2VlIHRvcmNzL3NyYy9tb2R1
bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwIDo6IFNpbVVwZGF0ZSgpCisKKwl3aGVlbC0+cm9sbFJl
cyAqPSBmYWJzZihzeC9zKTsgLy8gbm90IHVzZWQgKHJlbW92ZWQgZnJvbSAvc3JjL21vZHVsZXMv
c2ltdS9zaW11djIvY2FyLmNwcCkKKwljYXItPmNhckVsdC0+cHJpdi53aGVlbFtpbmRleF0ucm9s
bFJlcyA9IHdoZWVsLT5yb2xsUmVzOyAvLyBub3QgdXNlZCBpbiAvc3JjL21vZHVsZXMvZ3JhcGhp
Yy9zc2dncmFwaC9DYXJTb3VuZERhdGEuY3BwCisKKwl3YXogPSB3aGVlbC0+c3RlZXIgKyB3aGVl
bC0+c3RhdGljUG9zLmF6OyAvKiBkb24ndCBpbmNsdWRlIHlhdyBpbmR1Y2VkIHdoZWVsIGRpcmVj
dGlvbiBoZXJlICovCisJQ29zQSA9IGNvcyh3YXopOworCVNpbkEgPSBzaW4od2F6KTsKIAogCXdo
ZWVsLT5yZWxQb3MuYXogPSB3YXo7CiAKIAl3aGVlbC0+Zm9yY2VzLnggPSBGdCAqIENvc0EgLSBG
biAqIFNpbkE7CiAJd2hlZWwtPmZvcmNlcy55ID0gRnQgKiBTaW5BICsgRm4gKiBDb3NBOwogCXdo
ZWVsLT5zcGluVHEgPSBGdCAqIHdoZWVsLT5yYWRpdXM7Ci0Jd2hlZWwtPnNhID0gc2E7CisJd2hl
ZWwtPnNhID0gYXRhbjIod2hlZWwtPmJvZHlWZWwueSwgd2hlZWwtPmJvZHlWZWwueCkgLSB3YXo7
CiAJd2hlZWwtPnN4ID0gc3g7CiAKIAl3aGVlbC0+ZmVlZEJhY2suc3BpblZlbCA9IHdoZWVsLT5z
cGluVmVsOwogCXdoZWVsLT5mZWVkQmFjay5UcSA9IHdoZWVsLT5zcGluVHE7CiAJd2hlZWwtPmZl
ZWRCYWNrLmJya1RxID0gd2hlZWwtPmJyYWtlLlRxOwogCi0JY2FyLT5jYXJFbHQtPl93aGVlbFNs
aXBTaWRlKGluZGV4KSA9IHN5KnY7Ci0JY2FyLT5jYXJFbHQtPl93aGVlbFNsaXBBY2NlbChpbmRl
eCkgPSBzeCp2OworCWNhci0+Y2FyRWx0LT5fd2hlZWxTbGlwU2lkZShpbmRleCkgPSB2biooMS4w
Zi1zeSk7IC8vIHdoZWVsIG5vcm1hbCBhZGhlc2lvbiB2ZWxvY2l0eQorCWNhci0+Y2FyRWx0LT5f
d2hlZWxTbGlwQWNjZWwoaW5kZXgpID0gdnQqKDEuMGYtc3gpOyAvLyB3aGVlbCB0YW5nZW50IGFk
aGVzaW9uIHZlbG9jaXR5CiAJY2FyLT5jYXJFbHQtPl9yZWFjdGlvbltpbmRleF0gPSB6Zm9yY2U7
CiB9CiAKQEAgLTMwMSw4ICszMDAsNiBAQAogCQl3aGVlbCA9ICYoY2FyLT53aGVlbFtpXSk7CiAJ
CXdoZWVsLT5zcGluVmVsID0gd2hlZWwtPmluLnNwaW5WZWw7CiAKLQkJUkVMQVhBVElPTjIod2hl
ZWwtPnNwaW5WZWwsIHdoZWVsLT5wcmVzcGluVmVsLCA1MC4wZik7Ci0KIAkJd2hlZWwtPnJlbFBv
cy5heSArPSB3aGVlbC0+c3BpblZlbCAqIFNpbURlbHRhVGltZTsKIAkJTk9STV9QSV9QSSh3aGVl
bC0+cmVsUG9zLmF5KTsKIAkJY2FyLT5jYXJFbHQtPl93aGVlbFNwaW5WZWwoaSkgPSB3aGVlbC0+
c3BpblZlbDsK
------=_Part_60528201_1319061192.1488496490304
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
------=_Part_60528201_1319061192.1488496490304
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Torcs-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/torcs-users

------=_Part_60528201_1319061192.1488496490304--