[Bf-committers] patch toets.c

Tom Musgrove bf-committers@blender.org
Thu, 27 May 2004 06:51:07 +0000


This is a multi-part message in MIME format.

------=_NextPart_000_558e_27cd_7e5d
Content-Type: text/plain; format=flowed

I'd left some commented out code in the last patch, please apply this one 
instead

Tom M.
LetterRip

_________________________________________________________________
Is your PC infected? Get a FREE online computer virus scan from McAfeeŽ 
Security. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963

------=_NextPart_000_558e_27cd_7e5d
Content-Type: application/octet-stream; name="toets.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="toets.patch"

SW5kZXg6IHNvdXJjZS9ibGVuZGVyL3NyYy90b2V0cy5jDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2c3Jvb3QvYmYtYmxlbmRlci9i
bGVuZGVyL3NvdXJjZS9ibGVuZGVyL3NyYy90b2V0cy5jLHYNCnJldHJpZXZp
bmcgcmV2aXNpb24gMS4yNw0KZGlmZiAtdSAtcjEuMjcgdG9ldHMuYw0KLS0t
IHNvdXJjZS9ibGVuZGVyL3NyYy90b2V0cy5jCTIwIEFwciAyMDA0IDIyOjAw
OjMzIC0wMDAwCTEuMjcNCisrKyBzb3VyY2UvYmxlbmRlci9zcmMvdG9ldHMu
YwkyNyBNYXkgMjAwNCAwNjo0Nzo1MCAtMDAwMA0KQEAgLTI0OSwxMzMgKzI0
OSwyNDAgQEANCiB2b2lkIHBlcnNwdG9ldHNlbih1bnNpZ25lZCBzaG9ydCBl
dmVudCkNCiB7DQogCXN0YXRpYyBPYmplY3QgKm9sZGNhbWVyYT0wOw0KLQlm
bG9hdCBwaGksIHNpLCBxMVs0XSwgdmVjWzNdOw0KKwlmbG9hdCBwaGksIHNp
LCBjaSwgcTFbNF0sIHZlY1szXTsNCiAJc3RhdGljIGludCBwZXJzcG89MTsN
CisNCisJZW51bSB7TEVGVCwgUklHSFQsIFVQLCBET1dOfTsNCisJLy9WSUVX
X0ZVTkNUSU9OUw0KKw0KIAkNCi0JaWYoZXZlbnQ9PVBBREVOVEVSKSB7DQot
CQlpZiAoRy5xdWFsID09IExSX1NISUZUS0VZKSB7DQotCQkJdmlldzNkX3Nl
dF8xX3RvXzFfdmlld2JvcmRlcihHLnZkKTsNCi0JCX0gZWxzZSB7DQotCQkJ
aWYgKEcudmQtPnBlcnNwPT0yKSB7DQotCQkJCUcudmQtPmNhbXpvb209IDAu
MDsNCi0JCQl9IGVsc2Ugew0KLQkJCQlHLnZkLT5kaXN0PSAxMC4wOw0KLQkJ
CX0NCisJLy9SZWRyYXcNCisJdm9pZCByZWRyYXdfc2NyZWVuKCkgew0KKwkJ
Y291bnRhbGwoKTsNCisJCWRvX2FsbF9pcG9zKCk7DQorCQlkb19hbGxfa2V5
cygpOw0KKwkJZG9fYWxsX2FjdGlvbnMoKTsNCisJCWRvX2FsbF9pa2FzKCk7
DQorCQl0ZXN0X2FsbF9kaXNwbGlzdHMoKTsNCisJCQ0KKwkJcmVzZXRfc2xv
d3BhcmVudHMoKTsJLyogZWRpdG9iamVjdC5jICovDQorCX0NCisNCisJLy9Q
QU4gRlVOQ1RJT05TDQorCXZvaWQgcGFuX3ZpZXcoaW50IERJUkVDVElPTikg
ew0KKwkJaW50IEEgPSAwOw0KKwkJaW50IEIgPSAwOw0KKwkJc3dpdGNoKERJ
UkVDVElPTikgew0KKwkJCWNhc2UgTEVGVDoNCisJCQkJQSA9IC0zMjsNCisJ
CQkJQiA9IDA7DQorCQkJCWJyZWFrOw0KKwkJCWNhc2UgUklHSFQ6DQorCQkJ
CUEgPSAzMjsNCisJCQkJQiA9IDA7DQorCQkJCWJyZWFrOw0KKwkJCWNhc2Ug
VVA6DQorCQkJCUEgPSAwOw0KKwkJCQlCID0gLTI1Ow0KKwkJCQlicmVhazsN
CisJCQljYXNlIERPV046DQorCQkJCUEgPSAwOw0KKwkJCQlCID0gMjU7DQor
CQkJCWJyZWFrOw0KKwkJfQ0KKwkJaW5pdGdyYWJ6KDAuMCwgMC4wLCAwLjAp
Ow0KKwkJd2luZG93X3RvXzNkKHZlYywgQSwgQik7DQorCQlHLnZkLT5vZnNb
MF0rPSB2ZWNbMF07DQorCQlHLnZkLT5vZnNbMV0rPSB2ZWNbMV07DQorCQlH
LnZkLT5vZnNbMl0rPSB2ZWNbMl07DQorCX0NCisNCisJLy9PcmJpdCBGdW5j
dGlvbnMNCisJdm9pZCBzZXRRdWF0c1VQRE9XTihmbG9hdCBhLCBmbG9hdCBi
LCBmbG9hdCBjLCBmbG9hdCBkKSB7DQorCQlWRUNDT1BZKHExKzEsIEcudmQt
PnZpZXdpbnZbMF0pOwkJCQ0KKwkJTm9ybWFsaXNlKHExKzEpOw0KKwkJcTFb
MF09IGE7DQorCQlxMVsxXSo9IGI7DQorCQlxMVsyXSo9IGM7DQorCQlxMVsz
XSo9IGQ7DQorCX0NCisNCisJdm9pZCBzZXRRdWF0c0xFRlRSSUdIVChmbG9h
dCBhLCBmbG9hdCBiLCBmbG9hdCBjLCBmbG9hdCBkKSB7DQorCQlxMVswXT0g
YTsNCisJCXExWzFdPSBiOw0KKwkJcTFbMl09IGM7DQorCQlxMVszXT0gZDsN
CisJfQ0KKw0KKwl2b2lkIG9yYml0X3ZpZXcoaW50IERJUkVDVElPTikgew0K
KwkJcGhpPSAoZmxvYXQpKE1fUEkvMjQuMCk7DQorCQlpZigoRElSRUNUSU9O
ID09IFJJR0hUKXx8KERJUkVDVElPTj09VVApKSB7DQorCQkJc2k9IChmbG9h
dClzaW4ocGhpKTsNCisJCQljaSA9IChmbG9hdCljb3MocGhpKTsNCisJCX0N
CisJCWVsc2UgewkNCisJCQlzaSA9IChmbG9hdClzaW4oLXBoaSk7DQorCQkJ
Y2kgPSAoZmxvYXQpY29zKC1waGkpOw0KKwkJfQ0KKwkJc3dpdGNoKERJUkVD
VElPTikgew0KKwkJCWNhc2UgUklHSFQ6DQorCQkJCXNldFF1YXRzTEVGVFJJ
R0hUKGNpLCAwLjAsIDAuMCwgc2kpOyBicmVhazsNCisJCQljYXNlIExFRlQ6
DQorCQkJCXNldFF1YXRzTEVGVFJJR0hUKGNpLCAwLjAsIDAuMCwgc2kpOyBi
cmVhazsNCisJCQljYXNlIFVQOg0KKwkJCQlzZXRRdWF0c1VQRE9XTihjaSwg
c2ksIHNpLCBzaSk7IGJyZWFrOw0KKwkJCWNhc2UgRE9XTjoNCisJCQkJc2V0
UXVhdHNVUERPV04oY2ksIHNpLCBzaSwgc2kpOyBicmVhazsNCisJCQlkZWZh
dWx0OiBicmVhazsNCiAJCX0NCisJCVF1YXRNdWwoRy52ZC0+dmlld3F1YXQs
IEcudmQtPnZpZXdxdWF0LCBxMSk7DQorCQlHLnZkLT52aWV3PSAwOw0KIAl9
DQotCWVsc2UgaWYoKEcucXVhbCAmIChMUl9TSElGVEtFWSB8IExSX0NUUkxL
RVkpKSAmJiAoZXZlbnQgIT0gUEFEMCkpIHsNCi0JCWlmKGV2ZW50PT1QQUQw
KSB7DQotCQkJLyogRy52ZC0+cGVyc3A9IDM7ICovDQotCQl9DQotCQllbHNl
IGlmKGV2ZW50PT1QQUQ3KSB7DQotCQkJRy52ZC0+dmlld3F1YXRbMF09IDAu
MDsNCi0JCQlHLnZkLT52aWV3cXVhdFsxXT0gLTEuMDsNCi0JCQlHLnZkLT52
aWV3cXVhdFsyXT0gMC4wOw0KLQkJCUcudmQtPnZpZXdxdWF0WzNdPSAwLjA7
DQotCQkJRy52ZC0+dmlldz0gNzsNCi0JCQlpZihHLnZkLT5wZXJzcD49Mikg
Ry52ZC0+cGVyc3A9IHBlcnNwbzsNCi0JCX0NCi0JCWVsc2UgaWYoZXZlbnQ9
PVBBRDEpIHsNCi0JCQlHLnZkLT52aWV3cXVhdFswXT0gMC4wOw0KLQkJCUcu
dmQtPnZpZXdxdWF0WzFdPSAwLjA7DQotCQkJRy52ZC0+dmlld3F1YXRbMl09
IChmbG9hdCktY29zKE1fUEkvNC4wKTsNCi0JCQlHLnZkLT52aWV3cXVhdFsz
XT0gKGZsb2F0KS1jb3MoTV9QSS80LjApOw0KLQkJCUcudmQtPnZpZXc9MTsN
Ci0JCQlpZihHLnZkLT5wZXJzcD49MikgRy52ZC0+cGVyc3A9IHBlcnNwbzsN
Ci0JCX0NCi0JCWVsc2UgaWYoZXZlbnQ9PVBBRDMpIHsNCi0JCQlHLnZkLT52
aWV3cXVhdFswXT0gMC41Ow0KLQkJCUcudmQtPnZpZXdxdWF0WzFdPSAtMC41
Ow0KLQkJCUcudmQtPnZpZXdxdWF0WzJdPSAwLjU7DQotCQkJRy52ZC0+dmll
d3F1YXRbM109IDAuNTsNCi0JCQlHLnZkLT52aWV3PTM7DQotCQkJaWYoRy52
ZC0+cGVyc3A+PTIpIEcudmQtPnBlcnNwPSBwZXJzcG87DQotCQl9DQotCQll
bHNlIGlmKGV2ZW50PT1QQURNSU5VUykgew0KLQkJCS8qIHRoaXMgbWluIGFu
ZCBtYXggaXMgYWxzbyBpbiB2aWV3bW92ZSgpICovDQotCQkJaWYoRy52ZC0+
cGVyc3A9PTIpIHsNCi0JCQkJCUcudmQtPmNhbXpvb20tPSAxMDsNCi0JCQkJ
CWlmKEcudmQtPmNhbXpvb208LTMwKSBHLnZkLT5jYW16b29tPSAtMzA7DQot
CQkJCX0NCi0JCQllbHNlIGlmKEcudmQtPmRpc3Q8MTAuMCpHLnZkLT5mYXIp
IEcudmQtPmRpc3QqPTEuMmY7DQorDQorCS8vU0VUIFZJRVcgRlVOQ1RJT05T
DQorCXZvaWQgc2V0X3ZpZXcoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgYywg
ZmxvYXQgZCwgaW50IGUpIHsNCisJCUcudmQtPnZpZXdxdWF0WzBdPSBhOw0K
KwkJRy52ZC0+dmlld3F1YXRbMV09IGI7DQorCQlHLnZkLT52aWV3cXVhdFsy
XT0gYzsNCisJCUcudmQtPnZpZXdxdWF0WzNdPSBkOw0KKwkJRy52ZC0+dmll
dz0gZTsNCisJCWlmKEcudmQtPnBlcnNwPj0yKSBHLnZkLT5wZXJzcD0gcGVy
c3BvOw0KKwl9DQorCQ0KKwl2b2lkIGJvdHRvbV92aWV3KCkgew0KKwkJc2V0
X3ZpZXcoMC4wLCAtMS4wLCAwLjAsIDAuMCwgNyk7DQorCX0NCisNCisJdm9p
ZCBiYWNrX3ZpZXcoKSB7DQorCQlzZXRfdmlldygwLjAsIDAuMCwgKGZsb2F0
KS1jb3MoTV9QSS80LjApLCAoZmxvYXQpLWNvcyhNX1BJLzQuMCksIDEpOw0K
Kwl9DQorDQorCXZvaWQgb3Bwb3NpdGVfc2lkZV92aWV3KCkgew0KKwkJc2V0
X3ZpZXcoMC41LCAtMC41LCAwLjUsIDAuNSwgMyk7DQorCX0NCisNCisJdm9p
ZCBzaWRlX3ZpZXcoKSB7DQorCQlzZXRfdmlldygwLjUsIC0wLjUsIC0wLjUs
IC0wLjUsIDMpOw0KKwl9DQorDQorCXZvaWQgZnJvbnRfdmlldygpIHsNCisJ
CXNldF92aWV3KChmbG9hdCljb3MoTV9QSS80LjApLCAoZmxvYXQpLXNpbihN
X1BJLzQuMCksIDAuMCwgMC4wLCAxKTsNCisJfQ0KKw0KKwl2b2lkIHRvcF92
aWV3KCkgew0KKwkJc2V0X3ZpZXcoMS4wLCAwLjAsIDAuMCwgMC4wLCA3KTsN
CisJfQ0KKw0KKwkvL1pPT00gRlVOQ1RJT05TDQorCXZvaWQgcmVzZXRfem9v
bSgpIHsNCisJCWlmIChHLnZkLT5wZXJzcD09Mikgew0KKwkJCUcudmQtPmNh
bXpvb209IDAuMDsNCisJCX0gZWxzZSB7DQorCQkJRy52ZC0+ZGlzdD0gMTAu
MDsNCiAJCX0NCi0JCWVsc2UgaWYoZXZlbnQ9PVBBRFBMVVNLRVkpIHsNCi0J
CQlpZihHLnZkLT5wZXJzcD09Mikgew0KLQkJCQkJRy52ZC0+Y2Ftem9vbSs9
IDEwOw0KLQkJCQkJaWYoRy52ZC0+Y2Ftem9vbT4zMDApIEcudmQtPmNhbXpv
b209IDMwMDsNCi0JCQl9DQotCQkJZWxzZSBpZihHLnZkLT5kaXN0PiAwLjAw
MSpHLnZkLT5ncmlkKSBHLnZkLT5kaXN0Kj0uODMzMzNmOw0KKwl9DQorDQor
DQorCXZvaWQgem9vbV9pbigpIHsNCisJCWlmKEcudmQtPnBlcnNwPT0yKSB7
DQorCQkJRy52ZC0+Y2Ftem9vbSs9IDEwOw0KKwkJCWlmKEcudmQtPmNhbXpv
b20+MzAwKSBHLnZkLT5jYW16b29tPSAzMDA7DQogCQl9DQotCQllbHNlIHsN
CisJCWVsc2UgaWYoRy52ZC0+ZGlzdD4gMC4wMDEqRy52ZC0+Z3JpZCkgRy52
ZC0+ZGlzdCo9LjgzMzMzZjsNCisJfQ0KIA0KLQkJCWluaXRncmFieigwLjAs
IDAuMCwgMC4wKTsNCi0JCQkNCi0JCQlpZihldmVudD09UEFENikgd2luZG93
X3RvXzNkKHZlYywgLTMyLCAwKTsNCi0JCQllbHNlIGlmKGV2ZW50PT1QQUQ0
KSB3aW5kb3dfdG9fM2QodmVjLCAzMiwgMCk7DQotCQkJZWxzZSBpZihldmVu
dD09UEFEOCkgd2luZG93X3RvXzNkKHZlYywgMCwgLTI1KTsNCi0JCQllbHNl
IGlmKGV2ZW50PT1QQUQyKSB3aW5kb3dfdG9fM2QodmVjLCAwLCAyNSk7DQot
CQkJRy52ZC0+b2ZzWzBdKz0gdmVjWzBdOw0KLQkJCUcudmQtPm9mc1sxXSs9
IHZlY1sxXTsNCi0JCQlHLnZkLT5vZnNbMl0rPSB2ZWNbMl07DQotCQl9DQot
CX0NCi0JZWxzZSB7DQotDQotCQlpZihldmVudD09UEFENykgew0KLQkJCUcu
dmQtPnZpZXdxdWF0WzBdPSAxLjA7DQotCQkJRy52ZC0+dmlld3F1YXRbMV09
IDAuMDsNCi0JCQlHLnZkLT52aWV3cXVhdFsyXT0gMC4wOw0KLQkJCUcudmQt
PnZpZXdxdWF0WzNdPSAwLjA7DQotCQkJRy52ZC0+dmlldz03Ow0KLQkJCWlm
KEcudmQtPnBlcnNwPj0yKSBHLnZkLT5wZXJzcD0gcGVyc3BvOw0KLQkJfQ0K
LQkJZWxzZSBpZihldmVudD09UEFEMSkgew0KLQkJCUcudmQtPnZpZXdxdWF0
WzBdPSAoZmxvYXQpY29zKE1fUEkvNC4wKTsNCi0JCQlHLnZkLT52aWV3cXVh
dFsxXT0gKGZsb2F0KS1zaW4oTV9QSS80LjApOw0KLQkJCUcudmQtPnZpZXdx
dWF0WzJdPSAwLjA7DQotCQkJRy52ZC0+dmlld3F1YXRbM109IDAuMDsNCi0J
CQlHLnZkLT52aWV3PTE7DQotCQkJaWYoRy52ZC0+cGVyc3A+PTIpIEcudmQt
PnBlcnNwPSBwZXJzcG87DQotCQl9DQotCQllbHNlIGlmKGV2ZW50PT1QQUQz
KSB7DQotCQkJRy52ZC0+dmlld3F1YXRbMF09IDAuNTsNCi0JCQlHLnZkLT52
aWV3cXVhdFsxXT0gLTAuNTsNCi0JCQlHLnZkLT52aWV3cXVhdFsyXT0gLTAu
NTsNCi0JCQlHLnZkLT52aWV3cXVhdFszXT0gLTAuNTsNCi0JCQlHLnZkLT52
aWV3PTM7DQotCQkJaWYoRy52ZC0+cGVyc3A+PTIpIEcudmQtPnBlcnNwPSBw
ZXJzcG87DQotCQl9DQotCQllbHNlIGlmKGV2ZW50PT1QQURNSU5VUykgew0K
LQkJCS8qIHRoaXMgbWluIGFuZCBtYXggaXMgYWxzbyBpbiB2aWV3bW92ZSgp
ICovDQotCQkJaWYoRy52ZC0+cGVyc3A9PTIpIHsNCi0JCQkJRy52ZC0+Y2Ft
em9vbT0gTUFYMigtMzAsIEcudmQtPmNhbXpvb20tNSk7DQotCQkJfQ0KLQkJ
CWVsc2UgaWYoRy52ZC0+ZGlzdDwxMC4wKkcudmQtPmZhcikgRy52ZC0+ZGlz
dCo9MS4yZjsNCisJdm9pZCB6b29tX2luMigpIHsNCisJCWlmKEcudmQtPnBl
cnNwPT0yKSB7DQorCQkJRy52ZC0+Y2Ftem9vbT0gTUlOMigzMDAsIEcudmQt
PmNhbXpvb20rNSk7DQogCQl9DQotCQllbHNlIGlmKGV2ZW50PT1QQURQTFVT
S0VZKSB7DQotCQkJaWYoRy52ZC0+cGVyc3A9PTIpIHsNCi0JCQkJRy52ZC0+
Y2Ftem9vbT0gTUlOMigzMDAsIEcudmQtPmNhbXpvb20rNSk7DQotCQkJfQ0K
LQkJCWVsc2UgaWYoRy52ZC0+ZGlzdD4gMC4wMDEqRy52ZC0+Z3JpZCkgRy52
ZC0+ZGlzdCo9LjgzMzMzZjsNCisJCWVsc2UgaWYoRy52ZC0+ZGlzdD4gMC4w
MDEqRy52ZC0+Z3JpZCkgRy52ZC0+ZGlzdCo9LjgzMzMzZjsNCisJfQ0KKw0K
Kwl2b2lkIHpvb21fb3V0KCkgew0KKwkJLyogdGhpcyBtaW4gYW5kIG1heCBp
cyBhbHNvIGluIHZpZXdtb3ZlKCkgKi8NCisJCWlmKEcudmQtPnBlcnNwPT0y
KSB7DQorCQkJRy52ZC0+Y2Ftem9vbS09IDEwOw0KKwkJCWlmKEcudmQtPmNh
bXpvb208LTMwKSBHLnZkLT5jYW16b29tPSAtMzA7DQogCQl9DQotCQllbHNl
IGlmKGV2ZW50PT1QQUQ1KSB7DQotCQkJaWYoRy52ZC0+cGVyc3A9PTEpIEcu
dmQtPnBlcnNwPTA7DQotCQkJZWxzZSBHLnZkLT5wZXJzcD0xOw0KKwkJZWxz
ZSBpZihHLnZkLT5kaXN0PDEwLjAqRy52ZC0+ZmFyKSBHLnZkLT5kaXN0Kj0x
LjJmOw0KKwl9DQorDQorCXZvaWQgem9vbV9vdXQyKCkgew0KKwkJLyogdGhp
cyBtaW4gYW5kIG1heCBpcyBhbHNvIGluIHZpZXdtb3ZlKCkgKi8NCisJCWlm
KEcudmQtPnBlcnNwPT0yKSB7DQorCQkJRy52ZC0+Y2Ftem9vbT0gTUFYMigt
MzAsIEcudmQtPmNhbXpvb20tNSk7DQogCQl9DQotCQllbHNlIGlmKGV2ZW50
PT1QQUQwKSB7DQotCQkJaWYoRy5xdWFsPT1MUl9BTFRLRVkpIHsNCisJCWVs
c2UgaWYoRy52ZC0+ZGlzdDwxMC4wKkcudmQtPmZhcikgRy52ZC0+ZGlzdCo9
MS4yZjsNCisJfQ0KKw0KKwkvL09SVEhPIFRPR0dMRSBGVU5DVElPTg0KKwl2
b2lkIHRvZ2dsZV9vcnRob19wZXJzcGVjdGl2ZSgpIHsNCisJCWlmKEcudmQt
PnBlcnNwPT0xKSBHLnZkLT5wZXJzcD0wOw0KKwkJZWxzZSBHLnZkLT5wZXJz
cD0xOw0KKwl9DQorDQorCXN3aXRjaChldmVudCkgew0KKwkJY2FzZSBQQURN
SU5VUzoNCisJCQlpZiAoRy5xdWFsID09IDApIHpvb21fb3V0MigpOw0KKwkJ
CWVsc2UgaWYoRy5xdWFsICYgKExSX1NISUZUS0VZIHwgTFJfQ1RSTEtFWSkp
IHpvb21fb3V0KCk7DQorCQkJYnJlYWs7DQorCQljYXNlIFBBRFBMVVNLRVk6
DQorCQkJaWYgKEcucXVhbCA9PSAwKSB6b29tX2luMigpOw0KKwkJCWVsc2Ug
aWYoRy5xdWFsICYgKExSX1NISUZUS0VZIHwgTFJfQ1RSTEtFWSkpIHpvb21f
aW4oKTsNCisJCQlicmVhazsNCisJCWNhc2UgUEFERU5URVI6DQorCQkJaWYo
Ry5xdWFsID09IDApIHJlc2V0X3pvb20oKTsNCisJCQllbHNlIGlmIChHLnF1
YWwgPT0gTFJfU0hJRlRLRVkpIHZpZXczZF9zZXRfMV90b18xX3ZpZXdib3Jk
ZXIoRy52ZCk7DQorCQkJYnJlYWs7DQorCQljYXNlIFBBRDE6DQorCQkJaWYg
KEcucXVhbCA9PSAwKSBmcm9udF92aWV3KCk7DQorCQkJZWxzZSBpZihHLnF1
YWwgJiAoTFJfU0hJRlRLRVkgfCBMUl9DVFJMS0VZKSkgYmFja192aWV3KCk7
DQorCQkJYnJlYWs7DQorCQljYXNlIFBBRDI6DQorCQkJaWYgKEcucXVhbCA9
PSAwKSBvcmJpdF92aWV3KERPV04pOw0KKwkJCWVsc2UgaWYoRy5xdWFsICYg
KExSX1NISUZUS0VZIHwgTFJfQ1RSTEtFWSkpIHBhbl92aWV3KERPV04pOw0K
KwkJCWJyZWFrOw0KKwkJY2FzZSBQQUQzOg0KKwkJCWlmIChHLnF1YWwgPT0g
MCkgc2lkZV92aWV3KCk7DQorCQkJZWxzZSBpZihHLnF1YWwgJiAoTFJfU0hJ
RlRLRVkgfCBMUl9DVFJMS0VZKSkgb3Bwb3NpdGVfc2lkZV92aWV3KCk7DQor
CQkJYnJlYWs7DQorCQljYXNlIFBBRDQ6DQorCQkJaWYgKEcucXVhbCA9PSAw
KSBvcmJpdF92aWV3KExFRlQpOw0KKwkJCWVsc2UgaWYoRy5xdWFsICYgKExS
X1NISUZUS0VZIHwgTFJfQ1RSTEtFWSkpIHBhbl92aWV3KExFRlQpOw0KKwkJ
CWJyZWFrOw0KKwkJY2FzZSBQQUQ1Og0KKwkJCXRvZ2dsZV9vcnRob19wZXJz
cGVjdGl2ZSgpOw0KKwkJCWJyZWFrOw0KKwkJY2FzZSBQQUQ2Og0KKwkJCWlm
IChHLnF1YWwgPT0gMCkgb3JiaXRfdmlldyhSSUdIVCk7DQorCQkJZWxzZSBp
ZihHLnF1YWwgJiAoTFJfU0hJRlRLRVkgfCBMUl9DVFJMS0VZKSkgcGFuX3Zp
ZXcoUklHSFQpOw0KKwkJCWJyZWFrOw0KKwkJY2FzZSBQQUQ3Og0KKwkJCWlm
IChHLnF1YWwgPT0gMCkgdG9wX3ZpZXcoKTsNCisJCQllbHNlIGlmKEcucXVh
bCAmIChMUl9TSElGVEtFWSB8IExSX0NUUkxLRVkpKSBiYWNrX3ZpZXcoKTsN
CisJCQlicmVhazsNCisJCWNhc2UgUEFEODoNCisJCQlpZiAoRy5xdWFsID09
IDApIG9yYml0X3ZpZXcoVVApOw0KKwkJCWVsc2UgaWYoRy5xdWFsICYgKExS
X1NISUZUS0VZIHwgTFJfQ1RSTEtFWSkpIHBhbl92aWV3KFVQKTsNCisJCQli
cmVhazsNCisJCWNhc2UgUEFEOToNCisJCQlpZiAoRy5xdWFsID09IDApIHJl
ZHJhd19zY3JlZW4oKTsNCisJCQlicmVhazsNCisJCWNhc2UgUEFEMDoNCisJ
CQlpZihHLnF1YWwgJiAoTFJfU0hJRlRLRVkgfCBMUl9DVFJMS0VZKSl7fQ0K
KwkJCS8vUkVTRVRfQ0FNRVJBX1RPIExBU1QgVklFVw0KKwkJCWVsc2UgaWYo
Ry5xdWFsPT1MUl9BTFRLRVkpIHsNCiAJCQkJaWYob2xkY2FtZXJhICYmIGlz
X2FuX2FjdGl2ZV9vYmplY3Qob2xkY2FtZXJhKSkgew0KIAkJCQkJRy52ZC0+
Y2FtZXJhPSBvbGRjYW1lcmE7DQotCQkJCX0NCi0JCQkJDQorCQkJCX0JCQ0K
IAkJCQloYW5kbGVfdmlldzNkX2xvY2soKTsNCiAJCQl9DQogCQkJZWxzZSBp
ZihCQVNBQ1QpIHsNCisJCQkJLy9NYWtlIFZpZXcNCiAJCQkJaWYoRy5xdWFs
PT1MUl9DVFJMS0VZKSB7DQogCQkJCQlpZihHLnZkLT5jYW1lcmEgIT0gT0JB
Q1QpIHsNCiAJCQkJCQlpZihHLnZkLT5jYW1lcmEgJiYgRy52ZC0+Y2FtZXJh
LT50eXBlPT1PQl9DQU1FUkEpDQogCQkJCQkJCW9sZGNhbWVyYT0gRy52ZC0+
Y2FtZXJhOw0KLQkJCQkJCQ0KIAkJCQkJCUcudmQtPmNhbWVyYT0gT0JBQ1Q7
DQogCQkJCQkJaGFuZGxlX3ZpZXczZF9sb2NrKCk7DQogCQkJCQl9DQpAQCAt
Mzg4LDggKzQ5NSw3IEBADQogCQkJaWYoRy52ZC0+Y2FtZXJhPT0wKSB7DQog
CQkJCUcudmQtPmNhbWVyYT0gc2NlbmVfZmluZF9jYW1lcmEoRy5zY2VuZSk7
DQogCQkJCWhhbmRsZV92aWV3M2RfbG9jaygpOw0KLQkJCX0NCi0JCQkNCisJ
CQl9CQkJDQogCQkJaWYoRy52ZC0+Y2FtZXJhKSB7DQogCQkJCUcudmQtPnBl
cnNwPSAyOw0KIAkJCQlHLnZkLT52aWV3PSAwOw0KQEAgLTM5OCw0OCArNTA0
LDEwIEBADQogCQkJCQlzZXRjYW1lcmF0b3ZpZXczZCgpOw0KIAkJCQl9CQkJ
CQ0KIAkJCX0NCi0JCX0NCi0JCWVsc2UgaWYoZXZlbnQ9PVBBRDkpIHsNCi0J
CQljb3VudGFsbCgpOw0KLQkJCWRvX2FsbF9pcG9zKCk7DQotCQkJZG9fYWxs
X2tleXMoKTsNCi0JCQlkb19hbGxfYWN0aW9ucygpOw0KLQkJCWRvX2FsbF9p
a2FzKCk7DQotCQkJdGVzdF9hbGxfZGlzcGxpc3RzKCk7DQotCQkJDQotCQkJ
cmVzZXRfc2xvd3BhcmVudHMoKTsJLyogZWRpdG9iamVjdC5jICovDQotCQl9
DQotCQllbHNlIGlmKEcudmQtPnBlcnNwPDIpIHsNCi0JCQlpZihldmVudD09
UEFENCB8fCBldmVudD09UEFENikgew0KLQkJCQkvKiB6LWF4aXMgKi8NCi0J
CQkJcGhpPSAoZmxvYXQpKE1fUEkvMjQuMCk7DQotCQkJCWlmKGV2ZW50PT1Q
QUQ2KSBwaGk9IC1waGk7DQotCQkJCXNpPSAoZmxvYXQpc2luKHBoaSk7DQot
CQkJCXExWzBdPSAoZmxvYXQpY29zKHBoaSk7DQotCQkJCXExWzFdPSBxMVsy
XT0gMC4wOw0KLQkJCQlxMVszXT0gc2k7DQotCQkJCVF1YXRNdWwoRy52ZC0+
dmlld3F1YXQsIEcudmQtPnZpZXdxdWF0LCBxMSk7DQotCQkJCUcudmQtPnZp
ZXc9IDA7DQotCQkJfQ0KLQkJCWlmKGV2ZW50PT1QQUQyIHx8IGV2ZW50PT1Q
QUQ4KSB7DQotCQkJCQ0KLQkJCQkvKiBob3Jpem9udGFsIGF4aXMgKi8NCi0J
CQkJVkVDQ09QWShxMSsxLCBHLnZkLT52aWV3aW52WzBdKTsNCi0JCQkJDQot
CQkJCU5vcm1hbGlzZShxMSsxKTsNCi0JCQkJcGhpPSAoZmxvYXQpKE1fUEkv
MjQuMCk7DQotCQkJCWlmKGV2ZW50PT1QQUQyKSBwaGk9IC1waGk7DQotCQkJ
CXNpPSAoZmxvYXQpc2luKHBoaSk7DQotCQkJCXExWzBdPSAoZmxvYXQpY29z
KHBoaSk7DQotCQkJCXExWzFdKj0gc2k7DQotCQkJCXExWzJdKj0gc2k7DQot
CQkJCXExWzNdKj0gc2k7DQotCQkJCVF1YXRNdWwoRy52ZC0+dmlld3F1YXQs
IEcudmQtPnZpZXdxdWF0LCBxMSk7DQotCQkJCUcudmQtPnZpZXc9IDA7DQot
CQkJfQ0KLQkJfQ0KLQ0KLQkJaWYoRy52ZC0+cGVyc3A8MikgcGVyc3BvPSBH
LnZkLT5wZXJzcDsNCisJCQlicmVhazsNCisJCWRlZmF1bHQ6DQorCQkJYnJl
YWs7DQorCQkNCiAJfQ0KIAlzY3JhcmVhX3F1ZXVlX3JlZHJhdyhjdXJhcmVh
KTsNCiB9DQo=


------=_NextPart_000_558e_27cd_7e5d--