# adi_gps v0.1 # Extract GET & POST variables # Adi Gilbert # http://www.greatoceanmedia.com.au/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YToxMDp7czo0OiJuYW1lIjtzOjc6ImFkaV9ncHMiO3M6NzoidmVyc2lvbiI7czozOiIwLjEi O3M6NjoiYXV0aG9yIjtzOjExOiJBZGkgR2lsYmVydCI7czoxMDoiYXV0aG9yX3VyaSI7czoz NDoiaHR0cDovL3d3dy5ncmVhdG9jZWFubWVkaWEuY29tLmF1LyI7czoxMToiZGVzY3JpcHRp b24iO3M6Mjg6IkV4dHJhY3QgR0VUICYgUE9TVCB2YXJpYWJsZXMiO3M6NDoidHlwZSI7aTow O3M6NDoiaGVscCI7czo1NjUwOiIJPGgxPjxzdHJvbmc+YWRpX2dwczwvc3Ryb25nPiAmIzgy MTE7IEV4dHJhY3QgPHNwYW4gY2xhc3M9ImNhcHMiPkdFVDwvc3Bhbj4gJmFtcDsgPHNwYW4g Y2xhc3M9ImNhcHMiPlBPU1Q8L3NwYW4+IHZhcmlhYmxlczwvaDE+CgoJPHA+VGhpcyBwbHVn aW4gZXh0cmFjdHMgPHNwYW4gY2xhc3M9ImNhcHMiPkdFVDwvc3Bhbj4vUE9TVCB2YXJpYWJs ZXMgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gYW5kIGFzc2lnbnMg dGhlbSB0byA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB2YXJpYWJsZXMuPC9wPgoK CTxoMj48c3Ryb25nPkF0dHJpYnV0ZXM8L3N0cm9uZz48L2gyPgoKCTxwPjxjb2RlPm5hbWU9 JnF1b3Q7dmFyIG5hbWUmcXVvdDs8L2NvZGU+PC9wPgoKCTxwPi0gYSBzaW5nbGUgPHNwYW4g Y2xhc3M9ImNhcHMiPkdFVDwvc3Bhbj4vUE9TVCB2YXJpYWJsZSB0byBleHRyYWN0LiBEZWZh dWx0ID0gJiM4MjIwOyYjODIyMTsgKGV4dHJhY3QgYWxsIDxzcGFuIGNsYXNzPSJjYXBzIj5H RVQ8L3NwYW4+IHZhcmlhYmxlcykuIFNlZSA8Y29kZT5wb3N0PC9jb2RlPiBhdHRyaWJ1dGUg Zm9yIGV4dHJhY3RpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPlBPU1Q8L3NwYW4+IHZhcmlhYmxl cy48L3A+CgoJPHA+PGNvZGU+bmV3PSZxdW90O3ZhciBuYW1lJnF1b3Q7PC9jb2RlPjwvcD4K Cgk8cD4tIHJlbmFtZSB0aGUgdmFyaWFibGUuIERlZmF1bHQgPSAmIzgyMjA7JiM4MjIxOyAo bm8gcmVuYW1lKS4gT25seSBhcHBsaWVzIHdoZW4gcmV0cmlldmluZyBhIHNpbmdsZSA8c3Bh biBjbGFzcz0iY2FwcyI+R0VUPC9zcGFuPi9QT1NUIHZhcmlhYmxlLjwvcD4KCgk8cD48Y29k ZT50eHB2YXI9JnF1b3Q7Ym9vbGVhbiZxdW90OzwvY29kZT48L3A+CgoJPHA+LSBkdXBsaWNh dGUgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5HRVQ8L3NwYW4+L1BPU1QgdmFyaWFibGUgYXMg YSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB2YXJpYWJsZSBvZiB0aGUgc2FtZSBu YW1lLiBEZWZhdWx0ID0gJiM4MjIwOzEmIzgyMjE7IChZZXMpLiBSZXF1aXJlcyBUZXh0cGF0 dGVybiA0LjAuNy4gU3dpdGNoIG9mZiBpZiB1c2luZyB2ZXJzaW9ucyBwcmlvciB0byB0aGlz LjwvcD4KCgk8cD48Y29kZT5wb3N0PSZxdW90O2Jvb2xlYW4mcXVvdDs8L2NvZGU+PC9wPgoK CTxwPi0gZXh0cmFjdCA8c3BhbiBjbGFzcz0iY2FwcyI+UE9TVDwvc3Bhbj4gdmFyaWFibGVz IGFzIHdlbGwuIERlZmF1bHQgPSAmIzgyMjA7MCYjODIyMTsgKE5vKS4gT25seSBhcHBsaWVz IGluICYjODIyMDtleHRyYWN0IGFsbCYjODIyMTsgbW9kZS48L3A+CgoJPHA+PGNvZGU+cXVp ZXQ9JnF1b3Q7Ym9vbGVhbiZxdW90OzwvY29kZT48L3A+CgoJPHA+LSBkb24mIzgyMTc7dCBk aXNwbGF5IHZhcmlhYmxlIHZhbHVlLiBEZWZhdWx0ID0gJiM4MjIwOzAmIzgyMjE7IChkaXNw bGF5IHZhcmlhYmxlIHZhbHVlKS4gT25seSBhcHBsaWVzIHdoZW4gcmV0cmlldmluZyBhIHNp bmdsZSA8c3BhbiBjbGFzcz0iY2FwcyI+R0VUPC9zcGFuPi9QT1NUIHZhcmlhYmxlLiBRdWll dCBtb2RlIGF1dG9tYXRpY2FsbHkgc3dpdGNoZWQgb24gd2l0aCAmIzgyMjA7ZXh0cmFjdCBh bGwmIzgyMjE7IG1vZGUuPC9wPgoKCTxwPjxjb2RlPmdsb2JhbD0mcXVvdDtib29sZWFuJnF1 b3Q7PC9jb2RlPjwvcD4KCgk8cD4tIG1ha2UgdGhlIHZhcmlhYmxlIDxpPmdsb2JhbDwvaT4g aW4gc2NvcGUuIERlZmF1bHQgPSAmIzgyMjA7MSYjODIyMTsgKFllcykuPC9wPgoKCTxwPjxj b2RlPmVzY2FwZT0mcXVvdDttb2RlJnF1b3Q7PC9jb2RlPjwvcD4KCgk8cD4tIGVzY2FwZSA8 c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gZW50aXRpZXMgaW4gdmFyaWFibGUgdmFs dWUuIERlZmF1bHQgPSAmIzgyMjA7JiM4MjIxOyAobm8gZXNjYXBlKS4gIFVzZSA8Y29kZT5l c2NhcGU9JnF1b3Q7aHRtbCZxdW90OzwvY29kZT4gdG8gc3dpdGNoIG9uLjwvcD4KCgk8cD48 Y29kZT5kZWNvZGU9JnF1b3Q7Ym9vbGVhbiZxdW90OzwvY29kZT48L3A+CgoJPHA+LSBkZWNv ZGVzIGFueSByZW1haW5pbmcgJSMjIGVuY29kaW5nIGluIHRoZSB2YXJpYWJsZSB2YWx1ZXMu IERlZmF1bHQgPSAmIzgyMjA7MCYjODIyMTsgKE5vKS4gTm90IG5vcm1hbGx5IHJlcXVpcmVk IGJ1dCBtYXkgYmUgbmVlZGVkIGlmIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGhh cyBiZWVuIHByb2Nlc3NlZCBieSBodGFjY2Vzcy48L3A+CgoJPHA+PGNvZGU+bGlzdD0mcXVv dDtib29sZWFuJnF1b3Q7PC9jb2RlPjwvcD4KCgk8cD4tIG91dHB1dHMgYSBsaXN0IG9mIHRo ZSBleHRyYWN0ZWQgdmFyaWFibGVzICZhbXA7IHRoZWlyIHZhbHVlcy4gSGFuZHkgZm9yIGRl YnVnZ2luZy4gRGVmYXVsdCA9ICYjODIyMDswJiM4MjIxOyAoTm8gbGlzdCkuPC9wPgoKCTxo Mj48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9oMj4KCgk8cD48Y29kZT4mbHQ7dHhwOmFk aV9ncHMgLyZndDs8L2NvZGU+PC9wPgoKCTxwPi0gZXh0cmFjdCBhbGwgPHNwYW4gY2xhc3M9 ImNhcHMiPkdFVDwvc3Bhbj4gdmFyaWFibGVzIGFuZCBkdXBsaWNhdGUgdGhlbSBhcyA8c3Bh biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB2YXJpYWJsZXMuPC9wPgoKCTxwPjxjb2RlPiZs dDt0eHA6YWRpX2dwcyBwb3N0PSZxdW90OzEmcXVvdDsgLyZndDs8L2NvZGU+PC9wPgoKCTxw Pi0gZXh0cmFjdCBhbGwgPHNwYW4gY2xhc3M9ImNhcHMiPkdFVDwvc3Bhbj4gPGk+YW5kPC9p PiA8c3BhbiBjbGFzcz0iY2FwcyI+UE9TVDwvc3Bhbj4gdmFyaWFibGVzIGFuZCBkdXBsaWNh dGUgdGhlbSBhcyA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB2YXJpYWJsZXMuPC9w PgoKCTxwPjxjb2RlPiZsdDt0eHA6YWRpX2dwcyBuYW1lPSZxdW90O215dmFyMSZxdW90OyAv Jmd0OzwvY29kZT48L3A+CgoJPHA+LSBleHRyYWN0IGEgdmFyaWFibGUgY2FsbGVkIDxzdHJv bmc+bXl2YXIxPC9zdHJvbmc+IGZyb20gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4s IGNyZWF0ZSBhIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHZhcmlhYmxlIG9mIHRo ZSBzYW1lIG5hbWUgYW5kIGRpc3BsYXkgaXQmIzgyMTc7cyB2YWx1ZS48L3A+CgoJPHA+PGNv ZGU+Jmx0O3R4cDphZGlfZ3BzIG5hbWU9JnF1b3Q7bXl2YXIyJnF1b3Q7IHR4cHZhcj0mcXVv dDswJnF1b3Q7IC8mZ3Q7PC9jb2RlPjwvcD4KCgk8cD4tIGV4dHJhY3QgYSB2YXJpYWJsZSBj YWxsZWQgPHN0cm9uZz5teXZhcjI8L3N0cm9uZz4gZnJvbSA8c3BhbiBjbGFzcz0iY2FwcyI+ VVJMPC9zcGFuPiBhbmQgZGlzcGxheSBpdCYjODIxNztzIHZhbHVlLiBObyA8c3BhbiBjbGFz cz0iY2FwcyI+VFhQPC9zcGFuPiB2YXJpYWJsZSBpcyBjcmVhdGVkIChzdWl0YWJsZSBmb3Ig dXNlIHdpdGggVGV4dHBhdHRlcm4gdmVyc2lvbnMgcHJpb3IgdG8gNC4wLjcpLjwvcD4KCgk8 cD48Y29kZT4mbHQ7dHhwOmFkaV9ncHMgbmFtZT0mcXVvdDtteXZhcjMmcXVvdDsgcXVpZXQ9 JnF1b3Q7MSZxdW90OyAvJmd0OzwvY29kZT48L3A+CgoJPHA+LSBleHRyYWN0IGEgdmFyaWFi bGUgY2FsbGVkIDxzdHJvbmc+bXl2YXIzPC9zdHJvbmc+IGZyb20gPHNwYW4gY2xhc3M9ImNh cHMiPlVSTDwvc3Bhbj4sIGNyZWF0ZSBhIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ IHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUgYnV0IGRvbiYjODIxNzt0IGRpc3BsYXkgaXQm IzgyMTc7cyB2YWx1ZS48L3A+CgoJPGgyPjxzdHJvbmc+VXNpbmcgdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlcyBpbiBwYWdlcyBvciBmb3Jtczwvc3Ryb25n PjwvaDI+CgoJPHA+QmVjYXVzZSwgYnkgZGVmYXVsdCwgPHN0cm9uZz5hZGlfZ3BzPC9zdHJv bmc+IGR1cGxpY2F0ZXMgdGhlIGV4dHJhY3RlZCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiB2YXJpYWJsZXMgYXMgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdmFyaWFi bGVzIHlvdSBjYW4gdXNlIGFsbCB0aGUgc3RhbmRhcmQgPHNwYW4gY2xhc3M9ImNhcHMiPlRY UDwvc3Bhbj4gdmFyaWFibGUgdGFncyB0byBwcm9jZXNzIHRoZW06PC9wPgoKCTx1bD4KCQk8 bGk+PGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT48L2xpPgoJCTxsaT48Y29k ZT4mbHQ7dHhwOmlmX3ZhcmlhYmxlIC8mZ3Q7PC9jb2RlPjwvbGk+Cgk8L3VsPgoKCTxwPkZv ciBleGFtcGxlOjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDphZGlfZ3BzIG5hbWU9JnF1b3Q7 bXl2YXImcXVvdDsgcXVpZXQ9JnF1b3Q7MSZxdW90OyAvJmd0OwombHQ7dHhwOmlmX3Zhcmlh YmxlIG5hbWU9JnF1b3Q7bXl2YXImcXVvdDsgdmFsdWU9JnF1b3Q7c29tZV92YWx1ZSZxdW90 OyZndDsKLi4uIGRvIHNvbWV0aGluZyBkaWZmZXJlbnQgLi4uCiZsdDt0eHA6ZWxzZSAvJmd0 OwouLi4gdGhlIHNhbWUgb2xkIHRoaW5nIC4uLgombHQ7L3R4cDppZl92YXJpYWJsZSZndDsK PC9jb2RlPjwvcHJlPgoKCTxoMj48c3Ryb25nPlVzaW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5V Ukw8L3NwYW4+IHZhcmlhYmxlcyBpbiBhcnRpY2xlczwvc3Ryb25nPjwvaDI+CgoJPHA+WW91 IGNhbiBhbHNvIHVzZSA8Y29kZT4mbHQ7dHhwOmFkaV9ncHMgLyZndDs8L2NvZGU+IHdpdGhp biBhcnRpY2xlcy4gIEZvciBleGFtcGxlOjwvcD4KCgk8YmxvY2txdW90ZT4KCQk8cD48aT5U aGUgdmFsdWUgb2YgbXl2YXIgaXMgPGNvZGU+Jmx0O3R4cDphZGlfZ3BzIG5hbWU9JnF1b3Q7 bXl2YXImcXVvdDsgLyZndDs8L2NvZGU+ICYjODIzMDs8L2k+PC9wPgoJPC9ibG9ja3F1b3Rl PgoKCTxwPm9yIGlmIHlvdSYjODIxNzt2ZSBhbHJlYWR5IGV4dHJhY3RlZCB0aGUgdmFyaWFi bGUgZWxzZXdoZXJlOjwvcD4KCgk8YmxvY2txdW90ZT4KCQk8cD48aT5UaGUgdmFsdWUgb2Yg bXl2YXIgaXMgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O215dmFyJnF1b3Q7 IC8mZ3Q7PC9jb2RlPiAmIzgyMzA7PC9pPjwvcD4KCTwvYmxvY2txdW90ZT4KCgk8cD5ObyBl c2NhcGluZyBmcm9tIFRleHRpbGUgaXMgcmVxdWlyZWQgKGUuZy4gdXNpbmcgPGNvZGU+bm90 ZXh0aWxlLjwvY29kZT4gb3IgPGNvZGU+PT0gLi4uID09PC9jb2RlPikuPC9wPgoKCTxoMj48 c3Ryb25nPkFjY2Vzc2luZyB0aGUgZXh0cmFjdGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5HRVQ8 L3NwYW4+L1BPU1QgdmFyaWFibGVzIGluIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+ PC9zdHJvbmc+PC9oMj4KCgk8cD5CeSBkZWZhdWx0LCA8c3Ryb25nPmFkaV9ncHM8L3N0cm9u Zz4gbWFrZXMgZXh0cmFjdGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlh YmxlcyBhdmFpbGFibGUgaW4gdGhlIGdsb2JhbCBzY29wZS4gRm9yIGV4YW1wbGUgaWYgJG15 dmFyMSwgJG15dmFyMiAmYW1wOyAkbXl2YXIzIGhhdmUgYmVlbiBleHRyYWN0ZWQgcHJldmlv dXNseSB0aGV5IGNhbiBiZSBhY2Nlc3NlZCBpbiA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9z cGFuPiBzbmlwcGV0cyBhcyBmb2xsb3dzOjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDpwaHAm Z3Q7Cmdsb2JhbCAkbXl2YXIxLCRteXZhcjIsJG15dmFyMzsKZWNobyAmcXVvdDskbXl2YXIx ICRteXZhcjIgJG15dmFyMyZxdW90OzsKJmx0Oy90eHA6cGhwJmd0Owo8L2NvZGU+PC9wcmU+ IjtzOjQ6ImNvZGUiO3M6MTk1MDoiCi8qCglhZGlfZ3BzIC0gRXh0cmFjdCBHRVQgJiBQT1NU IHZhcmlhYmxlcwoKCVdyaXR0ZW4gYnkgQWRpIEdpbGJlcnQKCglSZWxlYXNlZCB1bmRlciB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKCglWZXJzaW9uIGhpc3Rvcnk6CgkwLjEJ CS0gaW5pdGlhbCByZWxlYXNlCgoqLwoKZnVuY3Rpb24gYWRpX2dwcygkYXR0cykgewoKCWV4 dHJhY3QobEF0dHMoYXJyYXkoCgkJJ25hbWUnCQkJPT4gJycsCS8vIGEgc2luZ2xlIEdFVC9Q T1NUIHZhcgoJCSduZXcnCQkJPT4gJycsCS8vIG5ldyB2YXJpYWJsZSBuYW1lCgkJJ3R4cHZh cicJCT0+ICcxJywJLy8gc2V0IGFzIGEgVFhQIHZhcmlhYmxlIG9yIG5vdAoJCSdwb3N0JwkJ CT0+ICcwJywJLy8gZXh0cmFjdCBQT1NUIHZhcnMgb3Igbm90CgkJJ3F1aWV0JwkJCT0+ICcw JywJLy8gcmV0dXJuIHZhbHVlIG9yIG5vdAoJCSdnbG9iYWwnCQk9PiAnMScsIC8vIG1ha2Ug dmFycyBnbG9iYWwgb3Igbm90CgkJJ2VzY2FwZScJCT0+ICcnLAkvLyBlc2NhcGUgSFRNTCBl bnRpdGllcyBvciBub3QKCQknZGVjb2RlJwkJPT4gJzAnLAkvLyBwZXJmb3JtIGEgdXJsZGVj b2RlIG9yIG5vdAoJCSdsaXN0JwkJCT0+ICcwJywgLy8gbGlzdCB2YXJpYWJsZSBuYW1lcyBh bmQgdmFsdWVzCgkJJ2RlYnVnJwkJCT0+ICcwJywKCSksICRhdHRzKSk7CgoJaWYgKCRuYW1l ID09ICcnKSB7IC8vIGFsbCB2YXJzIHJldHJpZXZlZAoJCSRxdWlldCA9IDE7IC8vIGZvcmNl IHF1aWV0IG1vZGUKCQkkbmV3ID0gJyc7IC8vIGRpc2FibGUgdmFyIHJlbmFtZQoJCSRnZXRf bGlzdCA9IGFycmF5X2tleXMoJF9HRVQpOwoJCSRwb3N0ID8KCQkJJHBvc3RfbGlzdCA9IGFy cmF5X2tleXMoJF9QT1NUKSA6ICRwb3N0X2xpc3QgPSBhcnJheSgpOwoJCSRuYW1lX2xpc3Qg PSBhcnJheV9tZXJnZSgkZ2V0X2xpc3QsJHBvc3RfbGlzdCk7Cgl9CgllbHNlCgkJJG5hbWVf bGlzdFtdID0gJG5hbWU7CgoJJGRlYnVnX2xpc3QgPSAnYWRpX2dwcyB2YXJpYWJsZXMnOwoJ Zm9yZWFjaCAoJG5hbWVfbGlzdCBhcyAkaW5kZXggPT4gJG5hbWUpIHsKCQkkdmFsdWUgPSBn cHMoJG5hbWUpOyAvLyBleHRyYWN0IHZhbHVlCgkJaWYgKCRkZWNvZGUpIC8vIGNvbnZlcnQg JWNoYXJzCgkJCSR2YWx1ZSA9IHVybGRlY29kZSgkdmFsdWUpOwoJCWlmICgkZXNjYXBlID09 ICdodG1sJykgLy8gZW5jb2RlIGNoYXJzIChlLmcuIGFtcGVyc2FuZCBiZWNvbWVzICZhbXA7 KQoJCQkkdmFsdWUgPSBodG1sZW50aXRpZXMoJHZhbHVlKTsKCQlpZiAoJG5ldykgLy8gcmVu YW1lIHZhciAoc2luZ2xlIHZhciBtb2RlIG9ubHkpCgkJCSRuYW1lID0gJG5ldzsKCQlpZiAo JHR4cHZhcikgLy8gY3JlYXRlIFRYUCB2YXJpYWJsZQoJCQlwYXJzZSgnPHR4cDp2YXJpYWJs ZSBuYW1lPSInLiRuYW1lLiciIHZhbHVlPSInLiR2YWx1ZS4nIi8+Jyk7CgkJaWYgKCRnbG9i YWwpIC8vIG1ha2UgdGhlIHZhcmlhYmxlIGdsb2JhbAoJCQkkR0xPQkFMU1skbmFtZV0gPSAk dmFsdWU7CgkJaWYgKCRsaXN0KQoJCQkkZGVidWdfbGlzdCAuPSAiOiRuYW1lPSR2YWx1ZSI7 Cgl9CgoJaWYgKCRkZWJ1ZykgewoJCWVjaG8gJ1NVUFBMSUVEIEFUVFJJQlVURVM6PGJyLz4n OwoJCWRtcCgkYXR0cyk7CgkJZWNobyAiR0VUIFZBUlM6PGJyLz4iOwoJCWRtcCgkX0dFVCk7 CgkJZWNobyAiUE9TVCBWQVJTOjxici8+IjsKCQlkbXAoJF9QT1NUKTsKCQllY2hvICJBRElf R1BTIFZBUiBMSVNUOjxici8+IjsKCQlkbXAoJG5hbWVfbGlzdCk7CgkJZWNobyAiQUxMIFRY UCBWQVJTOjxici8+IjsKCQlkbXAoJEdMT0JBTFNbJ3ZhcmlhYmxlJ10pOwoJfQoKCWlmICgk bGlzdCkKCQlyZXR1cm4gJGRlYnVnX2xpc3QuJzxici8+JzsKCWVsc2UKCQlpZiAoJHF1aWV0 KSAvLyBkb24ndCByZXBvcnQgdmFsdWUKCQkJcmV0dXJuICcnOwoJCWVsc2UgLy8gcmV0dXJu IHZhbHVlCgkJCXJldHVybiAkdmFsdWU7Cn0KIjtzOjg6ImhlbHBfcmF3IjtzOjMzMzM6Imgx LiAqYWRpX2dwcyogLSBFeHRyYWN0IEdFVCAmIFBPU1QgdmFyaWFibGVzCgpUaGlzIHBsdWdp biBleHRyYWN0cyBHRVQvUE9TVCB2YXJpYWJsZXMgZnJvbSB0aGUgVVJMIGFuZCBhc3NpZ25z IHRoZW0gdG8gVFhQIHZhcmlhYmxlcy4KCmgyLiAqQXR0cmlidXRlcyoKCkBuYW1lPSJ2YXIg bmFtZSJACgotIGEgc2luZ2xlIEdFVC9QT1NUIHZhcmlhYmxlIHRvIGV4dHJhY3QuIERlZmF1 bHQgPSAiIiAoZXh0cmFjdCBhbGwgR0VUIHZhcmlhYmxlcykuIFNlZSBAcG9zdEAgYXR0cmli dXRlIGZvciBleHRyYWN0aW5nIFBPU1QgdmFyaWFibGVzLgoKQG5ldz0idmFyIG5hbWUiQAoK LSByZW5hbWUgdGhlIHZhcmlhYmxlLiBEZWZhdWx0ID0gIiIgKG5vIHJlbmFtZSkuIE9ubHkg YXBwbGllcyB3aGVuIHJldHJpZXZpbmcgYSBzaW5nbGUgR0VUL1BPU1QgdmFyaWFibGUuCgpA dHhwdmFyPSJib29sZWFuIkAKCi0gZHVwbGljYXRlIHRoZSBHRVQvUE9TVCB2YXJpYWJsZSBh cyBhIFRYUCB2YXJpYWJsZSBvZiB0aGUgc2FtZSBuYW1lLiBEZWZhdWx0ID0gIjEiIChZZXMp LiBSZXF1aXJlcyBUZXh0cGF0dGVybiA0LjAuNy4gU3dpdGNoIG9mZiBpZiB1c2luZyB2ZXJz aW9ucyBwcmlvciB0byB0aGlzLgoKQHBvc3Q9ImJvb2xlYW4iQAoKLSBleHRyYWN0IFBPU1Qg dmFyaWFibGVzIGFzIHdlbGwuIERlZmF1bHQgPSAiMCIgKE5vKS4gT25seSBhcHBsaWVzIGlu ICJleHRyYWN0IGFsbCIgbW9kZS4KCkBxdWlldD0iYm9vbGVhbiJACgotIGRvbid0IGRpc3Bs YXkgdmFyaWFibGUgdmFsdWUuIERlZmF1bHQgPSAiMCIgKGRpc3BsYXkgdmFyaWFibGUgdmFs dWUpLiBPbmx5IGFwcGxpZXMgd2hlbiByZXRyaWV2aW5nIGEgc2luZ2xlIEdFVC9QT1NUIHZh cmlhYmxlLiBRdWlldCBtb2RlIGF1dG9tYXRpY2FsbHkgc3dpdGNoZWQgb24gd2l0aCAiZXh0 cmFjdCBhbGwiIG1vZGUuCgpAZ2xvYmFsPSJib29sZWFuIkAKCi0gbWFrZSB0aGUgdmFyaWFi bGUgX19nbG9iYWxfXyBpbiBzY29wZS4gRGVmYXVsdCA9ICIxIiAoWWVzKS4KCkBlc2NhcGU9 Im1vZGUiQAoKLSBlc2NhcGUgSFRNTCBlbnRpdGllcyBpbiB2YXJpYWJsZSB2YWx1ZS4gRGVm YXVsdCA9ICIiIChubyBlc2NhcGUpLiAgVXNlIEBlc2NhcGU9Imh0bWwiQCB0byBzd2l0Y2gg b24uCgpAZGVjb2RlPSJib29sZWFuIkAKCi0gZGVjb2RlcyBhbnkgcmVtYWluaW5nICUjIyBl bmNvZGluZyBpbiB0aGUgdmFyaWFibGUgdmFsdWVzLiBEZWZhdWx0ID0gIjAiIChObykuIE5v dCBub3JtYWxseSByZXF1aXJlZCBidXQgbWF5IGJlIG5lZWRlZCBpZiBVUkwgaGFzIGJlZW4g cHJvY2Vzc2VkIGJ5IGh0YWNjZXNzLgoKQGxpc3Q9ImJvb2xlYW4iQAoKLSBvdXRwdXRzIGEg bGlzdCBvZiB0aGUgZXh0cmFjdGVkIHZhcmlhYmxlcyAmIHRoZWlyIHZhbHVlcy4gSGFuZHkg Zm9yIGRlYnVnZ2luZy4gRGVmYXVsdCA9ICIwIiAoTm8gbGlzdCkuCgpoMi4gKkV4YW1wbGVz KgoKQDx0eHA6YWRpX2dwcyAvPkAKCi0gZXh0cmFjdCBhbGwgR0VUIHZhcmlhYmxlcyBhbmQg ZHVwbGljYXRlIHRoZW0gYXMgVFhQIHZhcmlhYmxlcy4KCkA8dHhwOmFkaV9ncHMgcG9zdD0i MSIgLz5ACgotIGV4dHJhY3QgYWxsIEdFVCBfX2FuZF9fIFBPU1QgdmFyaWFibGVzIGFuZCBk dXBsaWNhdGUgdGhlbSBhcyBUWFAgdmFyaWFibGVzLgoKQDx0eHA6YWRpX2dwcyBuYW1lPSJt eXZhcjEiIC8+QAoKLSBleHRyYWN0IGEgdmFyaWFibGUgY2FsbGVkICpteXZhcjEqIGZyb20g VVJMLCBjcmVhdGUgYSBUWFAgdmFyaWFibGUgb2YgdGhlIHNhbWUgbmFtZSBhbmQgZGlzcGxh eSBpdCdzIHZhbHVlLgoKQDx0eHA6YWRpX2dwcyBuYW1lPSJteXZhcjIiIHR4cHZhcj0iMCIg Lz5ACgotIGV4dHJhY3QgYSB2YXJpYWJsZSBjYWxsZWQgKm15dmFyMiogZnJvbSBVUkwgYW5k IGRpc3BsYXkgaXQncyB2YWx1ZS4gTm8gVFhQIHZhcmlhYmxlIGlzIGNyZWF0ZWQgKHN1aXRh YmxlIGZvciB1c2Ugd2l0aCBUZXh0cGF0dGVybiB2ZXJzaW9ucyBwcmlvciB0byA0LjAuNyku CgpAPHR4cDphZGlfZ3BzIG5hbWU9Im15dmFyMyIgcXVpZXQ9IjEiIC8+QAoKLSBleHRyYWN0 IGEgdmFyaWFibGUgY2FsbGVkICpteXZhcjMqIGZyb20gVVJMLCBjcmVhdGUgYSBUWFAgdmFy aWFibGUgb2YgdGhlIHNhbWUgbmFtZSBidXQgZG9uJ3QgZGlzcGxheSBpdCdzIHZhbHVlLgoK aDIuICpVc2luZyB0aGUgVVJMIHZhcmlhYmxlcyBpbiBwYWdlcyBvciBmb3JtcyoKCkJlY2F1 c2UsIGJ5IGRlZmF1bHQsICphZGlfZ3BzKiBkdXBsaWNhdGVzIHRoZSBleHRyYWN0ZWQgVVJM IHZhcmlhYmxlcyBhcyBUWFAgdmFyaWFibGVzIHlvdSBjYW4gdXNlIGFsbCB0aGUgc3RhbmRh cmQgVFhQIHZhcmlhYmxlIHRhZ3MgdG8gcHJvY2VzcyB0aGVtOgoKKiBAPHR4cDp2YXJpYWJs ZSAvPkAKKiBAPHR4cDppZl92YXJpYWJsZSAvPkAKCkZvciBleGFtcGxlOgoKYmMuIDx0eHA6 YWRpX2dwcyBuYW1lPSJteXZhciIgcXVpZXQ9IjEiIC8+Cjx0eHA6aWZfdmFyaWFibGUgbmFt ZT0ibXl2YXIiIHZhbHVlPSJzb21lX3ZhbHVlIj4KLi4uIGRvIHNvbWV0aGluZyBkaWZmZXJl bnQgLi4uCjx0eHA6ZWxzZSAvPgouLi4gdGhlIHNhbWUgb2xkIHRoaW5nIC4uLgo8L3R4cDpp Zl92YXJpYWJsZT4KCmgyLiAqVXNpbmcgVVJMIHZhcmlhYmxlcyBpbiBhcnRpY2xlcyoKCllv dSBjYW4gYWxzbyB1c2UgQDx0eHA6YWRpX2dwcyAvPkAgd2l0aGluIGFydGljbGVzLiAgRm9y IGV4YW1wbGU6CgpicS4gX19UaGUgdmFsdWUgb2YgbXl2YXIgaXMgQDx0eHA6YWRpX2dwcyBu YW1lPSJteXZhciIgLz5AIC4uLl9fCgpvciBpZiB5b3UndmUgYWxyZWFkeSBleHRyYWN0ZWQg dGhlIHZhcmlhYmxlIGVsc2V3aGVyZToKCmJxLiBfX1RoZSB2YWx1ZSBvZiBteXZhciBpcyBA PHR4cDp2YXJpYWJsZSBuYW1lPSJteXZhciIgLz5AIC4uLl9fCgpObyBlc2NhcGluZyBmcm9t IFRleHRpbGUgaXMgcmVxdWlyZWQgKGUuZy4gdXNpbmcgQG5vdGV4dGlsZS5AIG9yIEA9PSAu Li4gPT1AKS4KCmgyLiAqQWNjZXNzaW5nIHRoZSBleHRyYWN0ZWQgR0VUL1BPU1QgdmFyaWFi bGVzIGluIFBIUCoKCkJ5IGRlZmF1bHQsICphZGlfZ3BzKiBtYWtlcyBleHRyYWN0ZWQgVVJM IHZhcmlhYmxlcyBhdmFpbGFibGUgaW4gdGhlIGdsb2JhbCBzY29wZS4gRm9yIGV4YW1wbGUg aWYgJG15dmFyMSwgJG15dmFyMiAmICRteXZhcjMgaGF2ZSBiZWVuIGV4dHJhY3RlZCBwcmV2 aW91c2x5IHRoZXkgY2FuIGJlIGFjY2Vzc2VkIGluIFBIUCBzbmlwcGV0cyBhcyBmb2xsb3dz OgoKYmMuIDx0eHA6cGhwPgpnbG9iYWwgJG15dmFyMSwkbXl2YXIyLCRteXZhcjM7CmVjaG8g IiRteXZhcjEgJG15dmFyMiAkbXl2YXIzIjsKPC90eHA6cGhwPiI7czozOiJtZDUiO3M6MzI6 IjQxNzZmMjA0ZWNiMzIxMGM3Y2QzYmUwMTQ5NzY2OWI1Ijt9