Introduction
In the following section, we will show the process of detecting specious cases in this survey based on the respondents’ age, military status,and their claimed serve date.
Serve Date
|
Overall (N=1020) |
| September 2001 or later |
|
| No |
623 (61.1%) |
| Yes |
397 (38.9%) |
| August 1990 to August 2001 |
|
| No |
836 (82.0%) |
| Yes |
184 (18.0%) |
| Currently in Military |
|
| No |
891 (87.4%) |
| Yes |
129 (12.6%) |
| May 1975 to July 1990 |
|
| No |
838 (82.2%) |
| Yes |
182 (17.8%) |
| Prior to August 1964 |
|
| No |
976 (95.7%) |
| Yes |
44 (4.3%) |
| Vietnam Era |
|
| No |
823 (80.7%) |
| Yes |
197 (19.3%) |
These six groups will be assessed by their serve data timing and their age. Also, we assess younger group (>= 2002) by their military staus.
Born 2002 and later

In these four highlighted cases, their military status was not matched by their age, so we need to exclude those from the dataset.
Vietnam Era 1958
## # A tibble: 5 x 3
## Q2.2 Q3.2 ResponseId
## <chr> <dbl> <chr>
## 1 Active-duty military,National Guard or Reserve currently~ 1996 R_3kFzRKZra7Q~
## 2 Traditional retirement 1972 R_rdlwhtCTSXA~
## 3 Active-duty military,Separated from active duty at end o~ 1990 R_3mgg9jYFh05~
## 4 Medical retirement 1976 R_rehgFbcCOru~
## 5 Separated from active duty at end of commitment 2003 R_28RJgvsH5PX~
Prior to August 1964 younger than 1947
## # A tibble: 6 x 3
## Q2.2 Q3.2 ResponseId
## <chr> <dbl> <chr>
## 1 Traditional retirement 1950 R_Tjb5ffleC3lb~
## 2 Less than honorable discharge 1961 R_3HT8GpoHsM1y~
## 3 National Guard or Reserve separated at end of commitmen~ 1986 R_28LL6l5C8LYl~
## 4 National Guard or Reserve separated at end of commitment 1982 R_UXF4d4mDRzeL~
## 5 Other separation before end of service commitment 1993 R_1eraXQzUKlXL~
## 6 Medical retirement 1975 R_OOPUljnLSNFi~
May 1975 to July 1990 younger than 1973
## # A tibble: 29 x 3
## Q2.2 Q3.2 ResponseId
## <chr> <dbl> <chr>
## 1 Traditional retirement 1974 R_bEeyRhxk6o2~
## 2 Active-duty military,Separated from active duty at end ~ 1990 R_33lu6KR0sU9~
## 3 Separated from active duty at end of commitment 1994 R_3Myflx8U74B~
## 4 National Guard or Reserve currently serving,Medical sep~ 1992 R_2CVOz1YRiHt~
## 5 Separated from active duty at end of commitment,Medical~ 1995 R_BXvTHy7MWvr~
## 6 Traditional retirement 1974 R_R2HU358QDxZ~
## 7 Traditional retirement 1982 R_2rJlEab2HYn~
## 8 Separated from active duty at end of commitment,Nationa~ 2000 R_2A1lotBSMVr~
## 9 Separated from active duty at end of commitment,Traditi~ 1990 R_2EddOni6j70~
## 10 Separated from active duty at end of commitment,Nationa~ 1980 R_p4oplNDNit5~
## # ... with 19 more rows
Currently Serving (Excluding older than 1955)
## # A tibble: 5 x 3
## Q2.2 Q3.2 ResponseId
## <chr> <dbl> <chr>
## 1 National Guard or Reserve currently serving 1932 R_2xWROVT0NtLBwV5
## 2 National Guard or Reserve currently serving 1907 R_1DMRf79n44y1kEn
## 3 National Guard or Reserve currently serving 1940 R_42AaaijfcQWrJF7
## 4 National Guard or Reserve currently serving 1948 R_3MR3dmtvz48OEqD
## 5 National Guard or Reserve currently serving 1950 R_32PzVlrXuS40Ck5
August 1990 to August 2001 younger than 1984
## # A tibble: 38 x 3
## Q2.2 Q3.2 ResponseId
## <chr> <dbl> <chr>
## 1 Active-duty military,National Guard or Reserve currentl~ 1996 R_3kFzRKZra7Q~
## 2 National Guard or Reserve separated at end of commitment 1986 R_2ayl8rCEzvK~
## 3 Other separation before end of service commitment 1994 R_1Qi1mgNe20J~
## 4 Other separation before end of service commitment 2000 R_2rMcAlfzEWv~
## 5 Separated from active duty at end of commitment 1987 R_2s1DiKT9YG2~
## 6 Other separation before end of service commitment 1985 R_3dZljIVUl3J~
## 7 Active-duty military,Separated from active duty at end ~ 1990 R_3mgg9jYFh05~
## 8 National Guard or Reserve currently serving,Separated f~ 2001 R_UrKfwiYReAj~
## 9 Medical retirement 2003 R_BsoWxzD5aK3~
## 10 National Guard or Reserve separated at end of commitment 1986 R_3Pj0HRqz5NB~
## # ... with 28 more rows
Total list
## # A tibble: 78 x 3
## Q2.2 Q3.2 ResponseId
## <chr> <dbl> <chr>
## 1 Medical retirement 2003 R_BsoWxzD5aK3~
## 2 National Guard or Reserve currently serving,Traditional~ 2002 R_vjf6AmGSfgv~
## 3 Medical separation 2002 R_3qjkOTxfsUR~
## 4 Traditional retirement,Medical separation 2003 R_3szuqmJlVe3~
## 5 Active-duty military,National Guard or Reserve currentl~ 1996 R_3kFzRKZra7Q~
## 6 Traditional retirement 1972 R_rdlwhtCTSXA~
## 7 Active-duty military,Separated from active duty at end ~ 1990 R_3mgg9jYFh05~
## 8 Medical retirement 1976 R_rehgFbcCOru~
## 9 Separated from active duty at end of commitment 2003 R_28RJgvsH5PX~
## 10 Traditional retirement 1950 R_Tjb5ffleC3l~
## # ... with 68 more rows
Average time of completing the survey
## [1] 24.73966
List of those finished the survey in less than 8 minutes
## # A tibble: 36 x 2
## time_min ResponseId
## <dbl> <chr>
## 1 7.43 R_3RwRGMclvLbJz0s
## 2 7.77 R_3DnYgBXUWDhn5pB
## 3 5.68 R_81jJXuSAJPBqlUJ
## 4 7.58 R_rdlwhtCTSXAF2QV
## 5 7.9 R_28ZgscDCM6Ygyau
## 6 6.72 R_2TMdJbbZWUnICMg
## 7 6.55 R_3gZsGZNE0kRIfZV
## 8 7.2 R_AmKBYmUfrCmJIKB
## 9 7.42 R_ZkIuR2esJm9GAJX
## 10 7.97 R_3PnPfABhvlgjrg4
## # ... with 26 more rows
The average duration was 24.73, while 36 cases completed the survey in less than 8 minutes, and they may be bots or inaccurate responses.
LS0tDQp0aXRsZTogJ05EQUEgJw0KYXV0aG9yOiAiUXVhbHRyaWNzIEFkbWluaXN0cmF0ZWQvRGV0ZWN0IFNwZWNpb3VzIENhc2VzIg0KZGF0ZTogIjEyLzI3LzIwMjEiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHRpYmJsZQ0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCi0tLQ0KDQojIEludHJvZHVjdGlvbg0KDQpJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb24sIHdlIHdpbGwgc2hvdyB0aGUgcHJvY2VzcyBvZiBkZXRlY3Rpbmcgc3BlY2lvdXMgIGNhc2VzIGluIHRoaXMgc3VydmV5IGJhc2VkIG9uIHRoZSByZXNwb25kZW50cycgYWdlLCBtaWxpdGFyeSBzdGF0dXMsYW5kIHRoZWlyIGNsYWltZWQgc2VydmUgZGF0ZS4gDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQpsaWJyYXJ5KGZvcmVpZ24pDQpsaWJyYXJ5KGRhdGEudGFibGUpDQpsaWJyYXJ5KG1hZ3JpdHRyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoY2FyKQ0KbGlicmFyeSh2aXNkYXQpDQpsaWJyYXJ5KG5hbmlhcikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZ2dtYXApDQpsaWJyYXJ5KG1hcHMpDQpsaWJyYXJ5KGdnbWFwKQ0KbGlicmFyeShnZ3RoZW1lcykNCmxpYnJhcnkodmlyaWRpcykNCmxpYnJhcnkocmdkYWwpDQpsaWJyYXJ5KGdnZm9ydGlmeSkNCmxpYnJhcnkoYW5pbWF0aW9uKQ0KbGlicmFyeShnZ2FuaW1hdGUpDQpsaWJyYXJ5KGdhcG1pbmRlcikNCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShtYXBwcm9qKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShoaXN0b3J5ZGF0YSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCmxpYnJhcnkoYnJvb20pDQpsaWJyYXJ5KG1hcHRvb2xzKQ0KbGlicmFyeShzcCkNCmxpYnJhcnkodGliYmxlKQ0KbGlicmFyeShzZikNCg0KbGlicmFyeShtYXBzKQ0KbGlicmFyeSh0YWJsZTEpDQoNCmxpYnJhcnkoY29tcGFyZUdyb3VwcykNCg0KI2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQojbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHNjYWxlcykNCg0KI2luc3RhbGwucGFja2FnZXMoImRwbHlyIikNCg0KbGlicmFyeSh0aWR5cikNCiAgIGxpYnJhcnkoc3RyaW5ncikNCmBgYA0KDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQpOREFBMTwtIHJlYWQuY3N2KCJDOi9Vc2Vycy91NjAzMjQwNC9PbmVEcml2ZS9iYWNrdXAgOS45LjE5L01KL05EQUEvQ09ERV9RL1FfVkVURVJBTl8yM18xMi5jc3YiLGhlYWRlciA9IFQpDQoNCk5EQUExIDwtIE5EQUExWy1jKDIsMSksIF0gDQoNCk5EQUExICU+JSANCiAgc2VsZWN0KFEyLjIsIFEyLjMsIFEyLjQsIFEyLjUpDQojdGFibGUxKH5RMy4zK1E2LjIrIFE2LjMrUTYuNCtRNi41KyBRNi42KyBRNi43K1E2LjgrUTYuOSAsIGRhdGE9TkRBQTEpDQoNCiMgbWFrZSBkaXNjaGFyX3VwZ3INCg0KDQpOREFBMSRRMi4zW05EQUExJFEyLjM9PSIiXSA8LSJOUSINCg0KIyBkaXNjaGFyX3VwZ3Jfc3VjYw0KTkRBQTEgPC0gd2l0aGluKE5EQUExLCBRMi40WyBRMi4zID09ICJObyJdIDwtICdOb3QgZGlzY2hhcl91cGdyX3N1Y2MnKQ0KTkRBQTEkUTIuNFtOREFBMSRRMi40PT0iIl0gPC0iTlEiDQojIHNlcnZlX2RhdGUNCnRhYmxlKE5EQUExJFEyLjUsIGV4Y2x1ZGUgPSBOVUxMKQ0KDQojIFZBX2Rpc2FiaWxpdHkNCg0KTkRBQTEkUTIuNltOREFBMSRRMi42PT0iIl0gPC0iTmF0aW9uYWwgR3VhcmQvQWN0aXZlLWR1dHkgbWlsaXRhcnkiDQoNCiMgbWFrZSBhZ2UNCg0KY2xhc3MoTkRBQTEkUTMuMikNCg0KTkRBQTEkUTMuMjwtIGFzLm51bWVyaWMoTkRBQTEkUTMuMikNCk5EQUExJGFnZTwtMjAyMS1OREFBMSRRMy4yDQoNCg0KIyBISCBzaXplDQoNCk5EQUExJFEzLjhfMV8xW05EQUExJFEzLjhfMV8xPT0iIl0gPC0wDQpOREFBMSRRMy44XzJfMVtOREFBMSRRMy44XzJfMT09IiJdIDwtMA0KTkRBQTEkUTMuOF8zXzFbTkRBQTEkUTMuOF8zXzE9PSIiXSA8LTANCk5EQUExJFEzLjhfNF8xW05EQUExJFEzLjhfNF8xPT0iIl0gPC0wDQpOREFBMSRRMy44XzVfMVtOREFBMSRRMy44XzVfMT09IiJdIDwtMA0KTkRBQTEkUTMuOF82XzFbTkRBQTEkUTMuOF82XzE9PSIiXSA8LTANCg0KDQoNCg0KDQpkYXRhLmZyYW1lKGNvbG5hbWVzKE5EQUExKSkNCg0KICBOREFBMSA8LSBOREFBMSAlPiUgDQogICAgIG11dGF0ZV9hdChjKDM4OjQzKSwgYXMubnVtZXJpYykNCg0KTkRBQTEkaGhzaXplPSByb3dTdW1zKE5EQUExWyAsIGMoIlEzLjhfMV8xIiwgIlEzLjhfMl8xIiAsIlEzLjhfM18xIiwiUTMuOF80XzEiLCAiUTMuOF81XzEiLCAiUTMuOF82XzEiKV0sIG5hLnJtID0gVCkNCg0KDQpOREFBMSAlPiUgDQogIHNlbGVjdChRMy44XzFfMSxRMy44XzJfMSxRMy44XzNfMSxRMy44XzRfMSxRMy44XzVfMSxRMy44XzZfMSwgaGhzaXplKQ0KDQojIG1ha2UgdG90YWwgd29yaw0KDQpOREFBMSA8LSB3aXRoaW4oTkRBQTEsIFE1LjNbIFE1LjIgIT0gIldvcmtpbmcgZm9yIHBheSJdIDwtICdOb3Qgd29ya2luZycpDQpOREFBMSA8LSB3aXRoaW4oTkRBQTEsIFE1LjRbIFE1LjIgIT0gIldvcmtpbmcgZm9yIHBheSJdIDwtICdOb3Qgd29ya2luZycpDQpOREFBMSA8LSB3aXRoaW4oTkRBQTEsIFE1LjVfMV8xWyBRNS4yICE9ICJXb3JraW5nIGZvciBwYXkiXSA8LSAwKQ0KTkRBQTEgPC0gd2l0aGluKE5EQUExLCBRNS41XzFfMlsgUTUuMiAhPSAiV29ya2luZyBmb3IgcGF5Il0gPC0gMCkNCk5EQUExIDwtIHdpdGhpbihOREFBMSwgUTUuNlsgUTUuMiAhPSAiV29ya2luZyBmb3IgcGF5Il0gPC0gJ05vdCB3b3JraW5nJykNCk5EQUExIDwtIHdpdGhpbihOREFBMSwgUTUuOFsgUTUuMiA9PSAiV29ya2luZyBmb3IgcGF5Il0gPC0gJ3dvcmtpbmcnKQ0KTkRBQTEgPC0gd2l0aGluKE5EQUExLCBRNS45WyBRNS4yICE9ICJOb3Qgd29ya2luZyBmb3IgcGF5IGFuZCBub3QgbG9va2luZyBmb3IgcGFpZCB3b3JrIl0gPC0gJ2xvb2tpbmcgZm9yIHBhaWQgd29yaycpDQpOREFBMSA8LSBOREFBMSAlPiUgDQogICAgIG11dGF0ZV9hdChjKDY1LDY2KSwgYXMubnVtZXJpYykgJT4lIA0KICAgIG11dGF0ZShtb250aD0gUTUuNV8xXzIvIDEyICkgJT4lIA0KICBtdXRhdGUodG90YWxfd29yaz1tb250aCtRNS41XzFfMSkNCiAgDQogIA0KTkRBQTEgJT4lIA0KICBzZWxlY3QoUTUuNV8xXzEsIFE1LjVfMV8yLCAgIHRvdGFsX3dvcmssIG1vbnRoLCBRNS4yLCBRNS4zLCBRNS40LCBRNS42LFE1LjcsUTUuOCkNCg0KIyBzZXQgYmxvY2sgNiANCg0KTkRBQV9jaGlsZDwtTkRBQTEgJT4lIA0KICBzZWxlY3Qoc3RhcnRzX3dpdGgoIlE2IiksIFJlc3BvbnNlSWQpIA0KDQoNCk5EQUExPC1OREFBMSAlPiUgDQogIHNlbGVjdCgtc3RhcnRzX3dpdGgoIlE2IikpDQogIA0KDQpOREFBX2NoaWxkJFE2LjJbTkRBQV9jaGlsZCRRNi4yPT0iIl0gPC1OQQ0KDQojQ29udmVydCBjb2x1bW5zIHRvIGNoYXJhY3RlcnMNCk5EQUFfY2hpbGRbLTFdIDwtIGxhcHBseShOREFBX2NoaWxkWy0xXSwgYXMuY2hhcmFjdGVyKQ0KI0ZpbmQgaW5kZXggb2YgYE5BYCB2YWx1ZSBpbiBgbWFpbmAgY29sdW1uDQppbmRzIDwtIGlzLm5hKE5EQUFfY2hpbGQkUTYuMikNCiNDaGFuZ2UgYWxsIHRoZSBjb2x1bW5zIHRvICJOTzEiIGluIHJvdyBpbmRzDQpOREFBX2NoaWxkW2luZHMsIC0xXSA8LSAnTlEnDQoNCg0KTkRBQV9jaGlsZCRRNi4zW05EQUFfY2hpbGQkUTYuMz09IiJdIDwtIjAiDQpOREFBX2NoaWxkJFE2LjVbTkRBQV9jaGlsZCRRNi40PT0iTm8iXSA8LSJObyBhZG9wdGVkIGEgY2hpbGQiDQpOREFBX2NoaWxkJFE2LjZbTkRBQV9jaGlsZCRRNi42PT0iIl0gPC0iTm8gY2hpbGQiDQoNCk5EQUFfY2hpbGQkUTYuMTBfMVtOREFBX2NoaWxkJFE2LjEwXzE9PSIiXSA8LSJObyBjaGlsZCINCg0KDQoNCk5EQUExPC1sZWZ0X2pvaW4oTkRBQTEsIE5EQUFfY2hpbGQsIGJ5PSJSZXNwb25zZUlkIikNCg0KI2JsZTEoflE2LjIrIFE2LjMrUTYuNCtRNi41KyBRNi42KyBRNi43K1E2LjgrUTYuOSArUTYuMTBfMSwgZGF0YT1OREFBX2NoaWxkKQ0KIyBtYWtlIGZpbmFsIGRhdGEgc2V0DQoNCg0KDQpOREFBMV9maW5hbDwtIE5EQUExICU+JSANCiAgc2VsZWN0KFJlc3BvbnNlSWQsVXNlckxhbmd1YWdlLCBTY3JlZW4xLCBzdGFydHNfd2l0aCgiUSIpLCBnYywgYWdlLCBoaHNpemUsdG90YWxfd29yaykgJT4lIA0KIGRwbHlyOjogcmVuYW1lKGRpc2NoYXJfdXBncj1RMi4zLCBkaXNjaGFyX3VwZ3Jfc3VjYz1RMi40LCBWQV9kaXNhYmlsaXR5PVEyLjYsIFZBX2Rpc2FiaWxpdHlfcGVyYz1RMi43LCB1bmVtcGxveT1RMi44LCBkaXNhYmlsX2ZhY3Rvcj1RMi45LCBkaXNhYmlsX2ZhY3Rvcl9vdGhyPVEyLjlfNl9URVhULCBnZW5kZXI9IFEzLjMsIHJhY2U9UTMuNCwgcmFjZV9vdGhyPSBRMy40XzZfVEVYVCwgaGlzcF9sYXQ9IFEzLjUsIG1hcml0YWxfc3RhdHVzPSBRMy42LCBlYXJuZXJzPVEzLjksIGVudmlyb25tZW50PVEzLjEwLCBzdGF0ZV90ZXJyPVEzLjExLCB0cmliYWw9UTMuMTIsIHRyaWJhbF9PRT0gUTMuMTMsIGVkdV9wcmlvcj1RNC4yLGVkdV9jb250PVE0LjMsZWR1X2NvbnRfd2hlbj1RNC40LGVkdV9mYWN0b3JzPVE0LjUsIGVkdV9mYWN0b3JzX290aHI9IFE0LjVfNV9URVhULCBlZHVfYWRkdGxfdHlwZT0gUTQuNiwgZWR1X292cmFsbD0gUTQuNywgR0lfZWxpZz0gUTQuOCwgR0lfY29udmVydD0gUTQuOSwgR0lfdXNlZD0gUTQuMTAsIEdJX2FjdGl2PSBRNC4xMSwgR0lfbm90X3VzZWQ9UTQuMTIsIGVtcGxveV9zdGF0dXM9UTUuMiwgd29ya19ocnM9IFE1LjMsIHdvcmtfc2l0dWF0aW9uPSBRNS40LCB3b3JrX3NpdHVhdGlvbl9vdGhyPSBRNS40XzVfVEVYVCx3b3JrX3ByZWY9UTUuNiwgdW5wYWlkX3dvcms9UTUuNyxub3Rfd29yayA9UTUuOCwgbm90X3dvcmtfb3Rocj0gUTUuOF85X1RFWFQsIG5vdF9sb29rPVE1LjkgLCBjaGlsZF9iaXJ0aD1RNi4yLCBiaXJ0aF9udW09UTYuMywgY2hpbGRfYWRvcHQ9IFE2LjQsIGFkb3B0X251bT0gUTYuNSwgY2hpbGQxX3JldHVybj0gUTYuNiwgY2hpbGQxX2NhcGFjaXR5PVE2LjcsIGNoaWxkMV9jYXJlPVE2LjgsIGNoaWxkMV9ub19yZXQ9IFE2LjksIGNoaWxkMV9ub19yZXRfb3Rocj0gUTYuOV81X1RFWFQsY2hpbGQxX3BhaWRfbWF0PSBRNi4xMF8xLCBjaGlsZDFfcGFpZF9zaWNrPSBRNi4xMF8yLCBjaGlsZDFfcGFpZF92YWNheT0gUTYuMTBfMywgY2hpbGQxX3VucGRfZm1sPVE2LjEwXzQsIGNoaWxkMV9wYWlkX2ZtbD0gUTYuMTBfNSwgY2hpbGQxX3VucGRfdGltZT1RNi4xMF82LCBjaGlsZDFfT0VfbGVuZ3RoPVE2LjExKQ0KIA0KDQoNCg0KDQoNCiN0YWJsZShOREFBMV9maW5hbCRTY3JlZW4xKQ0KdGFibGUoTkRBQTFfZmluYWwkVkFfZGlzYWJpbGl0eV9wZXJjKQ0KDQojdGFibGUxKH4gZGlzY2hhcl91cGdyK2Rpc2NoYXJfdXBncl9zdWNjK1ZBX2Rpc2FiaWxpdHkrVkFfZGlzYWJpbGl0eV9wZXJjK3VuZW1wbG95K2Rpc2FiaWxfZmFjdG9yK2Rpc2FiaWxfZmFjdG9yX290aHIsIGRhdGE9TkRBQTFfZmluYWwpDQoNCg0KI3RhYmxlMSh+IGVudmlyb25tZW50K2dlbmRlcityYWNlK1ZBX2Rpc2FiaWxpdHlfcGVyYyt1bmVtcGxveStkaXNhYmlsX2ZhY3RvciwgZGF0YT1OREFBMV9maW5hbCkNCg0KTkRBQTEgJT4lIA0KICBzZWxlY3QoIFNjcmVlbjEsUTIuMixRMi4zLFEyLjQsIFEyLjUpICU+JSANCiAgZmlsdGVyKFEyLjU9PSIiKQ0KYGBgDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCg0KICBOREFBX3NlcnZpY2U8LU5EQUExX2ZpbmFsICU+JSBtdXRhdGUoUTIuMiA9IHN0cl9yZW1vdmUoUTIuMiwgJyBcXCguKlxcKT8nKSkgJT4lIA0KICBzZXBhcmF0ZV9yb3dzKFEyLjIsIHNlcCA9ICcsJykgJT4lIGNvdW50KFJlc3BvbnNlSWQsIFEyLjIsIG5hbWUgPSAnQ250JykgJT4lIA0KICBwaXZvdF93aWRlcihpZF9jb2xzID0gUmVzcG9uc2VJZCwgbmFtZXNfZnJvbSA9IFEyLjIsIHZhbHVlc19mcm9tID0gQ250LCB2YWx1ZXNfZmlsbCA9IGxpc3QoQ250ID0gMCkpICU+JSANCiAgICAgbXV0YXRlX2FsbCh+cmVwbGFjZSguLCAuID09IDAsICJObyIpKSAlPiUgDQogICAgIG11dGF0ZV9hbGwofnJlcGxhY2UoLiwgLiA9PSAxLCAiWWVzIikpDQoNCg0KICBOREFBX3NlcnZpY2UxPC1OREFBMV9maW5hbCAlPiUgbXV0YXRlKFEyLjUgPSBzdHJfcmVtb3ZlKFEyLjUsICcgXFwoLipcXCk/JykpICU+JSANCiAgICBtdXRhdGUoUTIuNSA9IHJlcGxhY2UoUTIuNSwgUTIuNSA9PSAnJywgJ05vIEluZm8nKSkgJT4lDQogIHNlcGFyYXRlX3Jvd3MoUTIuNSwgc2VwID0gJywnKSAlPiUgY291bnQoUmVzcG9uc2VJZCwgUTIuNSwgbmFtZSA9ICdDbnQnKSAlPiUgDQogIHBpdm90X3dpZGVyKGlkX2NvbHMgPSBSZXNwb25zZUlkLCBuYW1lc19mcm9tID0gUTIuNSwgdmFsdWVzX2Zyb20gPSBDbnQsIHZhbHVlc19maWxsID0gbGlzdChDbnQgPSAwKSkgJT4lIA0KICAgICBtdXRhdGVfYWxsKH5yZXBsYWNlKC4sIC4gPT0gMCwgIk5vIikpICU+JSANCiAgICAgbXV0YXRlX2FsbCh+cmVwbGFjZSguLCAuID09IDEsICJZZXMiKSkNCg0KDQoNCk5EQUExX2ZpbmFsPC1mdWxsX2pvaW4oTkRBQTFfZmluYWwsIE5EQUFfc2VydmljZSwgYnk9IlJlc3BvbnNlSWQiKQ0KDQpOREFBMV9maW5hbDwtZnVsbF9qb2luKE5EQUExX2ZpbmFsLCBOREFBX3NlcnZpY2UxLCBieT0iUmVzcG9uc2VJZCIpDQoNCg0KDQoNCg0KYGBgDQoNCg0KDQoNCg0KDQojIFNlcnZlIERhdGUNCg0KYGBge3IgZWNobz1GQUxTRX0NCk5EQUFfc2VydmljZTFfcmU8LU5EQUFfc2VydmljZTEgJT4lIA0KICBzZWxlY3QoLVJlc3BvbnNlSWQpICU+JSANCiAgZHBseXI6OnJlbmFtZShgQ3VycmVudGx5IGluIE1pbGl0YXJ5YD1gTm8gSW5mb2ApDQp0YWJsZTEofiAuLCBkYXRhPU5EQUFfc2VydmljZTFfcmUpDQoNCg0KYGBgDQoNCg0KDQpUaGVzZSBzaXggZ3JvdXBzIHdpbGwgYmUgYXNzZXNzZWQgYnkgdGhlaXIgc2VydmUgZGF0YSB0aW1pbmcgYW5kIHRoZWlyIGFnZS4gQWxzbywgd2UgYXNzZXNzIHlvdW5nZXIgZ3JvdXAgKD49IDIwMDIpIGJ5IHRoZWlyIG1pbGl0YXJ5IHN0YXVzLiANCg0KDQojIEJvcm4gMjAwMiBhbmQgbGF0ZXIgDQoNCg0KYGBge3IgZWNobz1GQUxTRX0NCk5EQUExX2ZpbmFsJGFnZTwtYXMubnVtZXJpYyhOREFBMV9maW5hbCRhZ2UpDQpOREFBMV9maW5hbCRRMy4yPC1hcy5udW1lcmljKE5EQUExX2ZpbmFsJFEzLjIpDQoNCnRhcmdldCA8LSBjKCJSX0Jzb1d4ekQ1YUszaVNVRiIsICJSX3ZqZjZBbUdTZmd2WERvSiIsICJSXzNxamtPVHhmc1VSaWp4ViIsICJSXzNzenVxbUpsVmUzWUtENyIpDQoNCk5EQUFfMjAwMjwtTkRBQTFfZmluYWwgJT4lIA0KICBzZWxlY3QoUTIuMiwgUTMuMiwgUmVzcG9uc2VJZCkgJT4lIA0KICBmaWx0ZXIoUTMuMj49IDIwMDIsIFJlc3BvbnNlSWQgJWluJSB0YXJnZXQpDQoNCg0KYGBgDQoNCmBgYHtyIGVjaG89RkFMU0V9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiYWdlMjAwMi5wbmciKQ0KYGBgDQoNCkluIHRoZXNlIGZvdXIgaGlnaGxpZ2h0ZWQgY2FzZXMsIHRoZWlyIG1pbGl0YXJ5IHN0YXR1cyB3YXMgbm90IG1hdGNoZWQgYnkgdGhlaXIgYWdlLCBzbyB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhvc2UgZnJvbSB0aGUgZGF0YXNldC4gDQoNCg0KIyBWaWV0bmFtIEVyYSAxOTU4DQpgYGB7ciBlY2hvPUZBTFNFfQ0KDQpOREFBX1ZpZXRuYW08LU5EQUExX2ZpbmFsICU+JSANCiAgc2VsZWN0KFEyLjIsIGBWaWV0bmFtIEVyYWAsUTMuMiwgUmVzcG9uc2VJZCkgJT4lIA0KICBmaWx0ZXIoUTMuMj4xOTU4LCBgVmlldG5hbSBFcmFgPT0nWWVzJykNCg0KTkRBQV9WaWV0bmFtPC1OREFBX1ZpZXRuYW0gJT4lIA0KICBzZWxlY3QoLWBWaWV0bmFtIEVyYWApDQoNCk5EQUFfVmlldG5hbQ0KYGBgDQoNCg0KDQojIFByaW9yIHRvIEF1Z3VzdCAxOTY0IHlvdW5nZXIgdGhhbiAxOTQ3DQpgYGB7ciBlY2hvPUZBTFNFfQ0KTkRBQV8xOTY0PC1OREFBMV9maW5hbCAlPiUgDQogIHNlbGVjdChRMi4yLGBQcmlvciB0byBBdWd1c3QgMTk2NGAsUTMuMiwgUmVzcG9uc2VJZCkgJT4lIA0KICBmaWx0ZXIoUTMuMj4xOTQ3LCBgUHJpb3IgdG8gQXVndXN0IDE5NjRgPT0nWWVzJykNCg0KTkRBQV8xOTY0PC1OREFBXzE5NjQgJT4lIA0KICBzZWxlY3QoLWBQcmlvciB0byBBdWd1c3QgMTk2NGApDQoNCk5EQUFfMTk2NA0KYGBgDQojIE1heSAxOTc1IHRvIEp1bHkgMTk5MCB5b3VuZ2VyIHRoYW4gMTk3Mw0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KIA0KTkRBQTE5NzVfMTk5MDwtTkRBQTFfZmluYWwgJT4lIA0KICBzZWxlY3QoUTIuMixgTWF5IDE5NzUgdG8gSnVseSAxOTkwYCxRMy4yLCBSZXNwb25zZUlkKSAlPiUgDQogIGZpbHRlcihRMy4yPjE5NzMsIGBNYXkgMTk3NSB0byBKdWx5IDE5OTBgPT0nWWVzJykNCg0KTkRBQTE5NzVfMTk5MDwtIE5EQUExOTc1XzE5OTAgJT4lIA0KICBzZWxlY3QoLWBNYXkgMTk3NSB0byBKdWx5IDE5OTBgKQ0KDQpOREFBMTk3NV8xOTkwDQoNCmBgYA0KDQojIEN1cnJlbnRseSBTZXJ2aW5nIChFeGNsdWRpbmcgb2xkZXIgdGhhbiAxOTU1KQ0KYGBge3IgZWNobz1GQUxTRX0NCk5EQUFfY3VycmVudDwtTkRBQTFfZmluYWwgJT4lIA0KICBzZWxlY3QoUTIuMixgTm8gSW5mb2AsUTMuMiwgUmVzcG9uc2VJZCkgJT4lIA0KICBmaWx0ZXIoYE5vIEluZm9gPT0nWWVzJywgUTMuMjwxOTU1KQ0KDQpOREFBX2N1cnJlbnQ8LSBOREFBX2N1cnJlbnQgJT4lIA0KICBzZWxlY3QoLWBObyBJbmZvYCkNCg0KTkRBQV9jdXJyZW50DQoNCmBgYA0KDQoNCg0KDQojIEF1Z3VzdCAxOTkwIHRvIEF1Z3VzdCAyMDAxIHlvdW5nZXIgdGhhbiAxOTg0DQpgYGB7ciBlY2hvPUZBTFNFfQ0KTkRBQTE5OTBfMjAwMTwtTkRBQTFfZmluYWwgJT4lIA0KICBzZWxlY3QoUTIuMixgQXVndXN0IDE5OTAgdG8gQXVndXN0IDIwMDFgLFEzLjIsIFJlc3BvbnNlSWQpICU+JSANCiAgZmlsdGVyKGBBdWd1c3QgMTk5MCB0byBBdWd1c3QgMjAwMWA9PSdZZXMnLCBRMy4yPjE5ODQpDQoNCg0KTkRBQTE5OTBfMjAwMTwtTkRBQTE5OTBfMjAwMSAlPiUgDQogIHNlbGVjdCgtYEF1Z3VzdCAxOTkwIHRvIEF1Z3VzdCAyMDAxYCkNCg0KTkRBQTE5OTBfMjAwMQ0KYGBgDQoNCg0KDQoNCg0KIyBUb3RhbCBsaXN0DQoNCmBgYHtyIGVjaG89RkFMU0V9DQp0b3RhbCA8LSByYmluZChOREFBXzIwMDIsTkRBQV9WaWV0bmFtLCBOREFBXzE5NjQsIE5EQUExOTc1XzE5OTAsIE5EQUFfY3VycmVudCwgTkRBQTE5OTBfMjAwMSkNCg0KI2Rpc3RpbmN0X2RhdGEgPC0gZHBseXI6OmRpc3RpbmN0KHRvdGFsKQ0KDQojdG90YWxbIWR1cGxpY2F0ZWQodG90YWxbICwgYygiUmVzcG9uc2VJZCIpXSksXQ0KDQpleGNsdWRlPC10b3RhbCAlPiUgDQogIGRpc3RpbmN0KFJlc3BvbnNlSWQsIC5rZWVwX2FsbCA9IFRSVUUpDQoNCmV4Y2x1ZGUNCg0KDQpgYGANCg0KIyBBdmVyYWdlIHRpbWUgb2YgY29tcGxldGluZyB0aGUgc3VydmV5DQpgYGB7ciBlY2hvPUZBTFNFfQ0KTkRBQTEkdGltZV9taW48LSBhcy5udW1lcmljKE5EQUExJER1cmF0aW9uLi5pbi5zZWNvbmRzLikvNjANCm1lYW4oTkRBQTEkdGltZV9taW4pDQpgYGANCg0KIyBMaXN0IG9mIHRob3NlIGZpbmlzaGVkIHRoZSBzdXJ2ZXkgaW4gbGVzcyB0aGFuIDggbWludXRlcw0KYGBge3IgZWNobz1GQUxTRX0NCk5EQUExICU+JSANCiAgc2VsZWN0KHRpbWVfbWluLCBSZXNwb25zZUlkKSAlPiUgDQogIGZpbHRlcih0aW1lX21pbjw4KQ0KYGBgDQoNClRoZSBhdmVyYWdlIGR1cmF0aW9uIHdhcyAyNC43Mywgd2hpbGUgMzYgY2FzZXMgY29tcGxldGVkIHRoZSBzdXJ2ZXkgaW4gbGVzcyB0aGFuIDggbWludXRlcywgYW5kIHRoZXkgbWF5IGJlIGJvdHMgb3IgaW5hY2N1cmF0ZSByZXNwb25zZXMuDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQpjPC1sZWZ0X2pvaW4oZXhjbHVkZSwgTkRBQTEsIGJ5ID0gIlJlc3BvbnNlSWQiKSAgDQogIA0KI3dyaXRlLmNzdihjLCBmaWxlID0gJ2V4Y2x1ZGUuY3N2JykNCmBgYA0KDQo=