diff --git a/bindata.generated.go b/bindata.generated.go index 9c02c58..46238ef 100644 --- a/bindata.generated.go +++ b/bindata.generated.go @@ -74,7 +74,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _webdataFnJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3a\x5d\x6f\xdb\xb8\xb2\xef\xf9\x15\x53\x3d\x14\x72\xe3\xc8\x76\x8a\xde\x5d\xd4\x75\xef\xf5\xa6\xee\x26\xd8\xa4\x09\x6c\xe7\x6e\x8d\x20\x58\xd0\xd2\xd8\xd6\x56\x26\xb5\x22\x15\xc7\x3d\xcd\x7f\x3f\xa0\x3e\x29\x8a\x92\xb3\x5d\xf4\xe5\xe0\x18\x68\x2a\x93\x33\xc3\xf9\xfe\xa0\xdc\x7b\x75\x04\xaf\x00\x00\xce\x58\xb8\x8f\xfc\xf5\x46\x80\xed\x76\xe0\xb4\x3f\xf8\x19\x6e\x69\x14\x7b\xef\x62\xf9\xf7\xff\x58\x2c\x02\xc6\xbe\x38\x2e\xdb\xbe\x3f\x82\x1c\x69\xbe\xf1\x39\xac\xfc\x00\xc1\xe7\x10\x92\x48\x00\x5b\xc1\x14\xb7\x4c\xe0\xc9\x9c\xc5\xee\x26\x24\x9e\x53\x82\x7f\x64\x6c\x49\x22\x09\xbb\x8a\x10\x81\xb3\x95\xd8\x91\x08\xdf\xc2\x9e\xc5\xe0\x12\x0a\x11\x7a\x3e\x17\x91\xbf\x8c\x05\x82\x2f\x80\x50\xaf\xc7\x22\xd8\x32\xcf\x5f\xed\x33\x22\xbe\x80\x98\x7a\x18\x81\xd8\x20\x08\x8c\xb6\x5c\x1e\x2a\xbf\xfc\xfa\xe9\x16\x7e\x45\x8a\x11\x09\xe0\x26\x5e\x06\xbe\x0b\x97\xbe\x8b\x94\x23\x10\x0e\xa1\x5c\xe1\x1b\xf4\x60\x99\x93\x92\x48\x1f\x25\x27\xb3\x8c\x13\xf8\xc8\x62\xea\x11\xe1\x33\xda\x05\xf4\xc5\x06\x23\x78\xc0\x88\xfb\x8c\xc2\xeb\xfc\x98\x8c\x66\x17\x58\x94\xd1\xb1\x89\x90\x22\x44\xc0\x42\x89\xda\x01\x42\xf7\x10\x10\x51\x62\x2b\x4a\xd0\xd4\x23\xb5\x51\x0a\xed\x81\x4f\x93\x43\x36\x2c\x44\x10\x1b\x22\xa4\xbc\x3b\x3f\x08\x60\x89\x10\x73\x5c\xc5\x41\x37\x23\xb4\x8c\x05\xfc\x7e\x31\x3f\xbf\xbe\x9d\xc3\xf8\xd3\x02\x7e\x1f\x4f\xa7\xe3\x4f\xf3\xc5\x10\x76\xbe\xd8\xb0\x58\x00\x3e\x60\x4a\xcd\xdf\x86\x81\x8f\x1e\xec\x48\x14\x11\x2a\xf6\xc0\x56\x19\x91\xab\xc9\xf4\xec\x7c\xfc\x69\x3e\xfe\xe5\xe2\xf2\x62\xbe\x00\x16\xc1\xc7\x8b\xf9\xa7\xc9\x6c\x06\x1f\xaf\xa7\x30\x86\x9b\xf1\x74\x7e\x71\x76\x7b\x39\x9e\xc2\xcd\xed\xf4\xe6\x7a\x36\x71\x00\x66\x28\x99\xc3\x8c\x46\x8b\xde\x57\x89\xf5\x22\x04\x0f\x05\xf1\x03\x5e\xea\x61\xc1\x62\xe0\x1b\x16\x07\x1e\x6c\xc8\x03\x42\x84\x2e\xfa\x0f\xe8\x01\x01\x97\x85\xfb\xc3\x36\x4d\xc9\x90\x80\xd1\x75\x22\x70\xe6\x5d\x0e\xc0\xc5\x0a\x28\x13\x5d\xe0\x88\xf0\x6e\x23\x44\xf8\xb6\xd7\xdb\xed\x76\xce\x9a\xc6\x0e\x8b\xd6\xbd\x20\x25\xc0\x7b\xef\x25\x3b\xbd\xa3\x23\xe8\xf5\xe0\x6e\x00\x89\x49\xba\x70\x9a\x3e\x20\xef\xc2\xeb\xfc\xf1\xfe\xc8\x65\x94\x0b\x98\x5f\xdf\x9e\x9d\xff\x71\x75\xfd\xff\x93\x3f\xe6\xe7\xd3\xc9\xec\xfc\xfa\xf2\x03\x8c\xe0\x6e\xd0\xef\xc2\xe0\x8d\xfc\x77\x3f\xac\x80\xce\x2f\xae\x26\xd2\x40\x23\x38\x7d\xd3\xcf\xb7\x12\xfc\xab\xdb\x4b\xb9\x3c\xc8\x17\x67\x67\xd3\xeb\xcb\xcb\x7c\xb9\xef\xf4\xdf\x0c\x8f\x24\x5f\x77\xe1\x63\x8f\x77\x61\x1b\x07\xe2\xbe\x0b\x8e\xe3\xe4\xbc\xdc\x5c\x5f\x7c\x9a\x4f\xa6\x7f\x8c\xcf\xce\x26\x97\x93\xe9\x78\x7e\x71\xfd\x49\xf2\x72\xd7\xef\x42\xff\xbe\x0b\x77\x3f\xff\xd4\x85\x81\x7c\x18\xfc\xf4\x3a\x7b\x7a\xf3\xe6\x75\x17\x4e\xef\xef\x87\x47\x47\x0f\x24\x82\x1d\x1f\x26\xff\x87\xc4\x2b\x1e\x02\xb2\xc4\x20\xdb\x17\x52\xfa\x2b\x26\xcd\x32\x82\x15\x09\x38\x0e\xcb\xf5\x99\x90\x01\x3f\x82\xbe\xb2\x76\x49\xb8\x98\x50\x4f\x5b\x9d\x62\x80\x84\xa3\x77\xc6\x62\xaa\x60\x30\xba\x66\x3e\x5d\x67\x2a\x96\xac\xdf\xa7\x1b\x5b\xf6\x80\x9f\x67\xf1\xb6\x04\x95\x2b\x8b\xca\x0a\x77\x23\x16\x04\x9f\x0d\x6b\x55\x38\x2f\x22\xeb\xb5\x4f\xd7\x55\x01\xf2\xd5\xb9\xbf\x45\x19\x29\x23\xa0\x71\x20\xa5\x5e\xc5\xd4\x95\x31\x0c\xab\x38\x08\xb8\x1b\x21\xd2\x09\x25\xcb\x00\x3d\xbb\x03\xff\x3a\x92\xee\x1e\xa1\x88\x23\x0a\xb6\xc7\xdc\x78\x8b\x54\x38\x35\x50\xf8\xf6\x2d\x81\x94\x9f\x02\x6a\x87\xcb\x2f\xbe\xf8\xf8\x2c\xd8\x2d\xfb\x2a\x01\x67\x87\x01\x79\x2b\xc1\x44\xe2\xce\xf0\xe8\x49\x11\x2c\xc2\xbf\x62\xe4\x0a\x23\x36\xe6\x92\xf9\x2b\xb0\xd1\xa9\x01\xe4\xdb\xf2\x63\xd8\xb6\x3b\xc3\x64\xfb\x09\x30\xe0\x98\x11\x49\xa5\x9d\xb6\x93\x6a\x00\x32\x12\xdc\xb2\xaf\x0a\xe0\xcc\x40\xcd\x04\x61\x26\xc5\x0f\xf0\x65\x00\x28\x08\x55\x74\x89\x8f\x7e\x05\x46\xd1\x63\x61\xa2\x2a\x8c\x7a\x50\x03\x88\x81\x67\xcd\x89\x26\x87\x49\x9a\x00\xdb\x08\x6f\xd9\xd7\x33\x42\x5d\x0c\xcc\xda\x6d\x83\x6b\x25\xcb\x9f\xc1\xab\x0e\x64\xd6\xb5\x12\x65\x01\x4a\xbc\x67\x05\x64\x0a\xfa\xbc\x80\x6c\x81\xad\x06\x64\x1b\x20\x6f\x25\x28\xb3\x8c\x16\x8f\xc4\xf3\x4a\x14\x77\x43\xe8\x1a\x27\x0f\x48\xc5\xa5\xcf\x85\x2c\x7c\x76\x90\x3d\x18\xbd\xab\x2e\xea\x8b\xd1\x28\x69\x90\x56\x3e\x45\xcf\xa8\x6f\xe2\x79\xd5\x13\xac\x95\xc6\x80\xd5\x85\xe2\xd4\x43\xce\x58\x97\xf7\x7b\x38\x48\x69\x7d\x1f\x1f\x46\xe3\x7c\x0f\x13\x5b\xf6\xf5\x3b\x39\x30\x58\xfd\x7b\x18\xb8\x9a\x95\x74\xce\x9a\xce\xaf\x78\x8f\xec\x95\x92\x02\x6a\x8b\xb4\x7b\x11\xfe\x16\x67\x82\x6c\x43\x2d\x3a\xca\xf3\x7d\x0f\xa9\xf0\x57\x3e\x46\x6f\xd3\xf2\xec\x94\x2b\xdd\x02\x2a\x24\x6b\xfc\x9c\x03\x24\x5f\xb4\xbd\xa4\xfc\xb7\x00\x2c\xd4\xbd\x85\xb6\x57\x43\x56\x00\x0a\x09\xde\x96\x8f\xa9\xe4\xd5\xc0\x51\xdb\x87\x0b\xea\xe1\xe3\x2f\xfb\x0b\xcf\xf6\xbd\x39\xfb\xe8\xd3\x42\xe3\xb2\x03\xb5\x65\xc9\xf7\x93\x9e\x00\x7c\x78\xa7\x35\x1e\x4e\x80\x74\x2d\x36\x43\xf0\x8f\x8f\x55\x3b\x25\x48\xb2\x95\xa9\x82\xdf\xf9\xf7\x8a\xc2\x86\x47\xa5\x5e\x57\x60\x4b\xf8\x11\xe8\x3c\xe4\x9f\xcc\x14\xfe\xb0\x58\x7d\x3a\x2a\xff\x66\xbb\x27\x83\xaa\x98\x2e\x09\xdc\x58\x0e\x13\x37\xcc\xa7\x02\xa3\xb1\xeb\x62\x80\x51\x32\xa4\x5c\xc5\x81\xb0\x79\x88\xd8\x2a\xae\xa9\x51\x6c\x12\x9a\x9f\xc2\xc8\x88\x70\xe7\xdf\xdf\xf5\xef\x4b\xce\x49\x1b\xe0\x40\x01\x94\x6a\xe1\xa7\xf0\x6e\x04\x15\x46\xf3\x8f\xcb\xa8\xf0\x69\x8c\xba\x4e\x0a\x8d\x4a\x85\xf6\x1b\x34\x49\x4e\x4d\x68\x7c\xd0\xc8\xda\xc9\x40\x93\xa2\x1d\x54\x95\x23\xaf\x32\xa9\xbe\x4f\xf8\xa0\x03\x3d\x29\x99\x7c\xea\xc0\x2b\xb0\xc9\xe9\x09\x19\x74\xe0\x18\xc8\x60\xa8\x98\x55\x0a\xd1\x62\x01\x78\x5f\x95\x2e\x3b\xc6\xc8\x53\x0b\x19\x95\xdb\x8a\x3b\x0d\xf4\xa0\xf9\x50\x6d\x7d\x8b\x2a\xda\xd4\x12\xcb\xbd\x1d\x77\x38\x52\xcf\xb6\x96\x83\x61\xdf\xd2\x0a\x58\x1c\x7a\x44\xa0\x9c\x12\xc6\xd4\x9b\x25\x2d\x78\x41\xb4\xe8\xe6\x61\x04\x57\x44\x6c\x1c\x11\xc5\xd4\xb5\xf3\x06\x3f\x4b\x69\x45\x87\x5f\x87\x5a\x94\x50\x52\x91\xc9\x2e\x59\xf2\x94\x42\x07\xde\x8f\x60\x00\xdf\xbe\x41\x65\x7d\x91\xae\xab\x5a\x2d\x26\x8a\x93\x51\xfa\x3c\xac\x6c\x2d\x94\xad\x45\xb9\x55\x88\xbd\xb5\xe0\x38\x93\xe3\x18\xac\x61\xfe\x6d\xd1\x51\x15\xae\x4c\x25\x55\x39\xca\x51\x45\x91\x37\x9b\x55\x4c\x90\x4d\x32\x67\x74\x0c\x52\x67\x78\x75\xb9\x95\x29\xe9\x64\x94\x7f\x1b\x6a\xdb\x8b\xca\xb6\x49\x7e\x2e\x25\xce\x65\xcb\x35\x90\x1f\x6a\x2a\x4b\x1b\x42\xbd\x00\x93\x2c\x6f\xe3\x83\x50\x5b\x17\x63\xf2\xad\x05\x79\x65\xc2\xc4\x07\xe1\x14\xa5\x60\x58\x85\xd1\xa6\xd3\xca\x9e\x61\xee\xcc\xf7\xeb\x63\x61\xd5\x90\xa2\x18\x4a\xe5\xe1\x69\x2f\xe0\x65\x3c\x0f\x1b\x33\xad\x68\xaf\x28\x52\x7c\x51\x56\x11\x41\xa2\x35\xa6\x8d\x42\x48\x3c\x78\xf9\x12\x1a\x37\x93\xa1\xfc\xef\xa4\x4e\xc9\x75\x18\xa1\x6c\x2f\x3e\xe0\x8a\xc8\x3a\xd1\x29\xe1\x34\x1b\x84\x31\xdf\xd8\x5a\x27\x91\x70\xd1\xad\xaa\xbe\xd3\xd1\x14\x5c\x19\xf7\x55\x29\x5f\xe4\xfa\xd5\x79\x56\x46\xfb\xe6\x7c\x50\x0b\xcd\xb6\xb4\x50\x95\xbb\x72\x2d\xd0\x16\x83\x9a\xfb\xb7\x87\x61\x2e\x96\x9e\x23\xa5\x75\x92\x96\x5e\xb7\x4c\x80\x24\xca\x13\xac\x86\xa4\xc9\xd8\x96\x76\x0d\xce\x2a\xa2\xba\xbd\x4d\xa1\x37\xa1\x9e\x1a\x78\x3f\xcc\xa5\xd3\x26\xe9\x51\xeb\x92\xca\x76\x4c\x98\x9a\x26\x4d\xab\x12\xff\x5d\xbd\xc6\xb7\xb9\xb7\xe6\xc0\x3c\x0c\x7c\x17\x25\xa1\x2e\x0c\x74\x27\xad\x64\x81\xe3\xe3\x46\x17\x36\x64\x99\xb2\x82\x1b\xf2\xc9\x7b\xe3\x6d\x60\xa6\xa8\x5a\x2e\xcb\xf3\x54\x69\xc0\xa7\x67\xa4\xc4\x22\x29\x68\x47\xcb\x02\xf0\xf2\xa5\xd1\x49\xd4\x93\x6b\x75\xfb\x07\x9c\xfb\x42\x11\xef\xe5\xcb\xaa\x16\xe1\x44\x4d\xe4\xef\xaa\x77\xa2\xba\x1b\x2d\x63\x21\x18\xad\xe7\x12\x53\x2a\xd7\xca\x1c\xa4\xd7\xe1\x29\xfa\x40\x71\x98\x72\x56\x33\x53\x39\x6d\xa4\xf2\x5a\xa1\x72\x80\xc8\xeb\x46\x22\xc6\xf6\xb4\x34\x8a\xac\xa2\x19\xac\x2c\xaa\x03\x4b\x0b\x8c\x9c\x8e\x41\xda\x7a\xda\xe0\x28\xf2\x8c\x53\x6b\xf2\xba\x9a\xe6\x6b\x1a\xaa\x12\x6f\xe4\xb0\x6f\xd5\x92\xae\x29\xf9\xa4\x37\x44\xff\xcd\x3f\xff\x38\xff\x40\x5b\xf6\xa8\xeb\x5d\x42\xe9\x5a\xe7\xf1\xf6\x73\x19\x53\xd9\xca\xa2\xba\xf2\x9f\x64\x99\xe4\x76\xdf\xe7\x22\xaf\xe8\xfc\xaf\x48\xa4\x2d\x74\xc8\x76\xea\xa1\xc9\x95\x05\x9c\xd4\xa6\x7b\xef\x31\xdb\x4b\x92\x56\x57\xa6\x88\x63\x68\x22\xb0\x68\x21\xb0\x28\x08\x68\x52\x99\xd3\x6e\x6b\x39\x91\xdd\x7e\x22\x95\x19\xea\xce\x4c\xf2\x04\x06\xf7\xba\xee\x1a\xdc\xc9\xa0\x44\x69\xba\xbf\xa3\xaf\x61\x15\x7d\x5f\x47\x6f\xd5\x56\x15\x5d\x06\xc2\x07\x0c\x04\xd1\x03\xa3\x81\x84\x21\x70\x12\xcf\x3f\x1e\x49\x41\x5e\x1d\xbe\x45\x29\x66\x29\xef\x51\x0e\xf6\xe5\xf9\xaf\x60\xd0\xef\xf7\x3b\x15\xba\x8b\x84\xee\xfe\xef\xd1\xdd\x1f\xa0\xdb\xa8\x58\x83\x1d\x0e\x63\x2d\x0c\xea\x6f\xc7\x2a\x55\xfc\x9c\x5e\xa8\xbd\xe0\xe7\x59\xed\xfd\xa8\xb9\xe6\xb7\x76\x20\xc9\x7c\x7b\x70\x88\x38\x1e\xa5\x56\x7e\x55\xbe\x52\x6d\x98\x20\x52\xc8\x85\x19\x52\x69\x13\x1a\x19\xaa\x75\x0a\xda\x68\x9d\xb2\xa1\xbc\xc4\x1d\x1a\xa0\x17\x25\xf4\xa2\x09\xba\x8c\x42\xe3\xc5\x8a\xf1\x12\x78\x43\x02\xc9\x29\x4e\x91\x87\x8c\x72\xb4\xb7\xc8\x39\x59\x63\xa5\x10\x6c\xc8\xf5\xf2\x4f\x39\x5f\xe0\x0e\xfe\xe4\xb3\xf3\xb1\x6d\xcd\xce\xc7\x27\xa7\x6f\xfe\xc7\xea\x82\x35\x9f\x7c\x9e\xe7\xd5\x3d\x05\x75\x38\x8a\xf3\xab\xf1\xd9\x6f\xb8\xcf\xe9\x99\xe1\x52\x3e\xed\x9d\x4f\x3d\xb6\x73\x02\xe6\x26\xde\xef\x6c\x08\xdf\x38\x3c\x5e\x72\x11\xd9\x83\x3c\x07\x66\xb7\x52\x4b\xc1\x88\x9d\xa1\xaf\xd3\x63\x6c\xeb\x97\xc5\x7c\x32\xb3\x3a\xe9\xf5\x52\x46\xad\x7e\x47\x1e\x30\xe2\x59\x5d\xc8\x85\xaf\x5c\x35\x91\x58\x6c\x64\x29\x71\x89\xd0\x2f\x05\x92\x17\xce\x21\xd2\x74\x8c\x2a\xee\xe0\xd7\x28\xb2\x0b\xfb\xa4\x28\x59\x19\x88\xa5\xdc\xd4\xb8\x01\xe3\x09\xb5\x46\xa4\x14\x22\xc7\x91\xb3\x7c\x0b\x70\x48\x54\xc8\x64\xb0\x3f\x00\x9e\xc0\xa8\x1c\x7d\xc1\xfd\x92\x91\xa8\xf5\x98\x1c\x46\xc5\x2b\x5f\x6e\x14\x1d\x6a\x23\xbe\x0e\xab\xd2\x11\xf8\x28\xda\x70\xe5\x7e\x0e\x9f\xea\xc6\xe1\x62\x1f\xa0\xe3\xf9\x3c\x0c\x88\xac\x0c\x16\x65\x14\xad\x42\x0d\xad\xfb\xb9\x28\xad\x40\xf2\x4c\xe7\x81\x04\x31\xca\x0d\x2b\xbb\x97\x4f\x7f\xe4\x70\x13\x31\xc1\x5c\x26\xf5\x6c\xed\x38\x7f\x6b\x95\x97\x6b\x85\xb7\x86\x05\xcc\x08\xac\xe4\x47\x23\x56\x75\x92\xaa\x12\xc9\x69\xa4\xd1\xba\xe3\x59\x5c\xfd\x8e\xcb\x19\x73\xbf\xa0\xb0\x15\x84\x63\xb0\x7a\x3d\xd9\x49\x97\xa1\xc1\xb8\xa0\x64\x8b\x70\x5c\x49\x12\xca\x47\x61\x8c\x45\x02\xfe\x17\xac\xb7\x15\x0a\xc9\xea\x5b\xb0\xac\x4e\x33\x0d\xab\xb7\xe3\xd2\x0c\x19\x8b\x0e\xa3\x59\x18\xcb\xc8\xc8\xc3\x27\xb9\x22\xd2\xd3\x72\x25\x8e\xf4\xc4\xb7\xe3\x4e\x62\x54\x5b\xbb\xc9\x48\x43\xdb\x94\xc8\xf4\xb0\xac\xb6\x1d\xf9\xb4\x51\xcf\x62\x09\x6f\x8e\x47\x04\x51\x5b\xa8\x2c\x44\x5b\xbd\x21\x17\x64\xe3\x73\xc1\xa2\xbd\xc3\x05\x11\x98\x98\xb6\x8c\x0b\x4d\xac\x66\x2f\x5b\x05\xf8\x68\x55\x65\x4d\xbc\x6d\xc5\xdc\x98\xdb\x87\x86\x29\xa3\x77\x6b\x24\x33\x55\x3d\xe5\x6f\x93\x12\x63\x25\x4a\x56\x4d\xa5\x5b\xc9\xf0\x46\x5c\x17\xca\xfc\xcb\x82\xaa\x75\x9e\xab\xcf\x43\x61\xda\xae\xc4\x04\xb0\x80\x6b\xca\x0a\xaa\x5e\x72\x6d\x1c\x4c\x71\x79\x82\x32\x14\x0b\x37\xf0\xdd\x2f\x56\xb7\x29\x42\x9e\xfb\x29\xa3\xe5\x07\xd9\xe0\x9f\xe9\x56\xf3\x26\xb3\x73\xe6\xa1\x10\xc6\x7c\x33\x93\xe1\xa0\xd4\x88\x2e\x58\xe9\xcf\x12\xe1\x37\xad\x6c\x3c\x29\x2f\x22\x5e\x18\x7e\x13\xa5\x0a\xab\x97\x8c\x56\x89\x52\xd9\x6b\x28\x8d\x26\xfc\x61\x36\x30\xc5\x6c\xfd\x37\x4e\x21\xf1\xea\x57\x1f\xf9\x4a\xa3\x87\xca\xbc\xf6\x83\xbd\xb3\x59\x2d\x4a\x45\x7c\x31\x4a\x2a\x45\xc3\x2d\x8f\x90\x95\xa5\x84\xee\x18\x52\x9d\x5a\x58\xab\x4a\x48\x28\xa5\xbd\x5a\xee\x61\x4b\xe2\x7e\xb1\x35\xff\xc9\x40\x18\x0d\x59\x98\x25\xe3\x03\x35\xa8\xc9\xdd\x73\x7f\xd7\xc5\x79\x4e\x9e\x85\xe7\x76\x13\xd0\x78\x35\xd6\x2c\x6a\xa9\x93\xa7\x61\x7b\xe2\x8a\x50\x36\xb1\x3f\x3a\x6d\x99\x3d\xa3\xe8\x20\x52\x26\x74\x3b\x49\x2d\xd6\xf9\x49\x66\x3a\x2e\x48\x24\xac\xae\xfa\x6e\xaf\x5b\xfc\xc2\xf0\x00\x2e\x52\xaf\xc0\x9c\x50\xef\xd9\x78\x6e\x72\x93\x58\xa0\xa6\x17\x8b\xcf\xc6\x96\xd3\x5f\x81\x2b\xe7\xa8\x12\xf3\xa9\x7c\xfc\x77\x00\x00\x00\xff\xff\x43\x36\xc0\xc9\x03\x2f\x00\x00") +var _webdataFnJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3a\xeb\x6f\xdb\x38\xf2\xdf\xf3\x57\x4c\xf5\xa1\x90\x1b\xc7\x8f\x14\xfd\xed\x22\xae\xfb\x3b\x6f\xea\x6c\x82\xcd\x0b\xb6\x7b\x5b\x23\x08\x16\xb4\x34\xb6\xb5\x95\x49\xad\x48\xc5\x71\xaf\xf9\xdf\x0f\xd4\x93\xa2\x28\x39\xed\x5d\xee\xc3\xe1\x0c\x6c\x57\x21\x67\x86\xf3\x9e\xe1\x48\xdd\x37\x07\xf0\x06\x00\xe0\x94\x05\xbb\xd0\x5b\xad\x05\xd8\x4e\x0b\x8e\x7b\xfd\x9f\xe1\x13\x0d\x23\xf7\x7d\x24\xff\xfd\x1b\x8b\x84\xcf\xd8\x97\x8e\xc3\x36\x1f\x0e\x20\x43\x9a\xad\x3d\x0e\x4b\xcf\x47\xf0\x38\x04\x24\x14\xc0\x96\x30\xc1\x0d\x13\x78\x34\x63\x91\xb3\x0e\x88\xdb\x29\xc0\xcf\x18\x5b\x90\x50\xc2\x2e\x43\x44\xe0\x6c\x29\xb6\x24\xc4\x13\xd8\xb1\x08\x1c\x42\x21\x44\xd7\xe3\x22\xf4\x16\x91\x40\xf0\x04\x10\xea\x76\x59\x08\x1b\xe6\x7a\xcb\x5d\x4a\xc4\x13\x10\x51\x17\x43\x10\x6b\x04\x81\xe1\x86\xcb\x43\xe5\x1f\xbf\x5e\x7f\x82\x5f\x91\x62\x48\x7c\xb8\x8d\x16\xbe\xe7\xc0\xa5\xe7\x20\xe5\x08\x84\x43\x20\x57\xf8\x1a\x5d\x58\x64\xa4\x24\xd2\x99\xe4\x64\x9a\x72\x02\x67\x2c\xa2\x2e\x11\x1e\xa3\x6d\x40\x4f\xac\x31\x84\x07\x0c\xb9\xc7\x28\xbc\xcd\x8e\x49\x69\xb6\x81\x85\x29\x1d\x9b\x08\x29\x42\x08\x2c\x90\xa8\x2d\x20\x74\x07\x3e\x11\x05\xb6\xa2\x04\x4d\x3d\x52\x1b\x85\xd0\x2e\x78\x34\x3e\x64\xcd\x02\x04\xb1\x26\x42\xca\xbb\xf5\x7c\x1f\x16\x08\x11\xc7\x65\xe4\xb7\x53\x42\x8b\x48\xc0\xef\x17\xb3\xf3\x9b\x4f\x33\x18\x5d\xcf\xe1\xf7\xd1\x64\x32\xba\x9e\xcd\x07\xb0\xf5\xc4\x9a\x45\x02\xf0\x01\x13\x6a\xde\x26\xf0\x3d\x74\x61\x4b\xc2\x90\x50\xb1\x03\xb6\x4c\x89\x5c\x8d\x27\xa7\xe7\xa3\xeb\xd9\xe8\x97\x8b\xcb\x8b\xd9\x1c\x58\x08\x67\x17\xb3\xeb\xf1\x74\x0a\x67\x37\x13\x18\xc1\xed\x68\x32\xbb\x38\xfd\x74\x39\x9a\xc0\xed\xa7\xc9\xed\xcd\x74\xdc\x01\x98\xa2\x64\x0e\x53\x1a\x0d\x7a\x5f\xc6\xd6\x0b\x11\x5c\x14\xc4\xf3\x79\xa1\x87\x39\x8b\x80\xaf\x59\xe4\xbb\xb0\x26\x0f\x08\x21\x3a\xe8\x3d\xa0\x0b\x04\x1c\x16\xec\xf6\xdb\x34\x21\x43\x7c\x46\x57\xb1\xc0\xa9\x77\x75\x00\x2e\x96\x40\x99\x68\x03\x47\x84\xf7\x6b\x21\x82\x93\x6e\x77\xbb\xdd\x76\x56\x34\xea\xb0\x70\xd5\xf5\x13\x02\xbc\xfb\x41\xb2\xd3\x3d\x38\x80\x6e\x17\xee\xfa\x10\x9b\xa4\x0d\xc7\xc9\x03\xf2\x36\xbc\xcd\x1e\xef\x0f\x1c\x46\xb9\x80\xd9\xcd\xa7\xd3\xf3\x3f\xae\x6e\xfe\x3e\xfe\x63\x76\x3e\x19\x4f\xcf\x6f\x2e\x3f\xc2\x10\xee\xfa\xbd\x36\xf4\xdf\xc9\xff\xee\x07\x25\xd0\xd9\xc5\xd5\x58\x1a\x68\x08\xc7\xef\x7a\x83\x03\x79\xd0\x5d\xf0\xd8\xe5\x6d\xd8\x44\xbe\xb8\x6f\x43\xa7\xd3\xc9\x88\xdf\xde\x5c\x5c\xcf\xc6\x93\x3f\x46\xa7\xa7\xe3\xcb\xf1\x64\x34\xbb\xb8\xb9\x96\xc4\xef\x7a\x6d\xe8\xdd\xb7\xe1\xee\xe7\x9f\xda\xd0\x97\x0f\xfd\x9f\xde\xa6\x4f\xef\xde\xbd\x6d\xc3\xf1\xfd\xfd\xe0\xe0\xe0\x81\x84\xb0\xe5\x83\xf8\xff\x01\x71\xf3\x07\x9f\x2c\xd0\x4f\xf7\x85\x14\xe7\x8a\x49\x3d\x0f\x61\x49\x7c\x8e\x83\x62\x7d\x2a\x64\x04\x0f\xa1\xa7\xac\x5d\x12\x2e\xc6\xd4\xd5\x56\x27\xe8\x23\xe1\xe8\x9e\xb2\x88\x2a\x18\x8c\xae\x98\x47\x57\xa9\xce\x24\xeb\xf7\xc9\xc6\x86\x3d\xe0\xe7\x69\xb4\x29\x40\xe5\xca\xbc\xb4\xc2\x9d\x90\xf9\xfe\x67\xc3\x5a\x19\xce\x0d\xc9\x6a\xe5\xd1\x55\x59\x80\x6c\x75\xe6\x6d\x50\xba\xfe\x10\x68\xe4\xfb\x2a\x95\x12\xca\xc1\x32\xa2\x8e\x8c\x55\x58\x46\xbe\xcf\x9d\x10\x91\x8e\x29\x59\xf8\xe8\xda\x2d\xf8\xc7\x81\x74\xeb\x10\x45\x14\x52\xb0\x5d\xe6\x44\x1b\xa4\xa2\x53\x01\x85\x6f\xdf\x62\x48\xf9\xcb\xa1\xb6\xb8\xf8\xe2\x89\xb3\x67\xc1\x6e\xd8\x57\x09\x38\xdd\x0f\xc8\x1b\x09\xc6\x52\xb5\x06\x07\x4f\x8a\x60\x21\xfe\x15\x21\x57\x18\xb1\x31\x93\xcc\x5b\x82\x8d\x9d\x0a\x40\xb6\x2d\x7f\x86\x6d\xbb\x35\x88\xb7\x9f\x00\x7d\x8e\x29\x91\x44\xda\x49\x33\xa9\x1a\x20\x23\xc1\x0d\xfb\xaa\x00\x4e\x0d\xd4\x4c\x10\x66\x52\x7c\x0f\x5f\x06\x80\x9c\x50\x49\x97\xf8\xe8\x95\x60\x14\x3d\xe6\x26\x2a\xc3\xa8\x07\xd5\x80\x18\x78\xd6\x9c\x68\xbc\x9f\xa4\x09\xb0\x89\xf0\x86\x7d\x3d\x25\xd4\x41\xdf\xac\xdd\x26\xb8\x46\xb2\xfc\x19\xbc\xea\x40\x66\x5d\x2b\x51\xe6\xa3\xc4\x7b\x56\x40\x26\xa0\xcf\x0b\xc8\x06\xd8\x72\x40\x36\x01\xf2\x46\x82\x32\xf9\x68\xf1\x48\x5c\xb7\x40\x71\xd6\x84\xae\x70\xfc\x80\x54\x5c\x7a\x5c\xc8\x02\x67\xfb\xe9\x83\xd1\xbb\xaa\xa2\xbe\x1a\x0e\xe3\x46\x68\xe9\x51\x74\x8d\xfa\x26\xae\x5b\x3e\xc1\x5a\x6a\x0c\x58\x6d\xc8\x4f\xdd\xe7\x8c\x55\x79\x7f\x84\x83\x84\xd6\x8f\xf1\x61\x34\xce\x8f\x30\xb1\x61\x5f\x7f\x90\x03\x83\xd5\x7f\x84\x81\xab\x69\x41\xe7\xb4\xee\xfc\x92\xf7\xc8\x9e\x28\xae\xab\xb6\x48\xba\x14\xe1\x6d\x70\x2a\xc8\x26\xd0\xa2\xa3\x38\xdf\x73\x91\x0a\x6f\xe9\x61\x78\x92\x54\xed\x4e\xb1\xd2\xce\xa1\x02\xb2\xc2\xcf\x19\x40\xfc\x87\xb6\x17\x77\x05\x0d\x00\x73\x75\x6f\xae\xed\x55\x90\x15\x80\x5c\x82\x93\xe2\x31\x91\xbc\x1c\x38\x6a\x57\x71\x41\x5d\x7c\xfc\x65\x77\xe1\xda\x9e\x3b\x63\x67\x1e\xcd\x35\x2e\x3b\x4d\x5b\x56\x7b\x2f\x6e\x15\xc0\x83\xf7\x5a\x3f\xd2\xf1\x91\xae\xc4\x7a\x00\xde\xe1\xa1\x6a\xa7\x18\x49\x76\x38\x65\xf0\x3b\xef\x5e\x51\xd8\xe0\xa0\xd0\xeb\x12\x6c\x09\x3f\x04\x9d\x87\xec\x97\x9a\xc2\x1b\xe4\xab\x4f\x07\xc5\xbf\xe9\xee\x51\xbf\x2c\xa6\x43\x7c\x27\x92\x97\x86\x5b\xe6\x51\x81\xe1\xc8\x71\xd0\xc7\x30\xbe\x8c\x5c\x45\xbe\xb0\x79\x80\xd8\x28\xae\xa9\x7f\xac\x13\x9a\x1f\xc3\xd0\x88\x70\xe7\xdd\xdf\xf5\xee\x0b\xce\x49\x13\x60\x5f\x01\x94\x6a\xe1\xc7\xf0\x7e\x08\x25\x46\xb3\x9f\xc3\xa8\xf0\x68\x84\xba\x4e\x72\x8d\x4a\x85\xf6\x6a\x34\x49\x8e\x4d\x68\xbc\x5f\xcb\xda\x51\x5f\x93\xa2\x19\x54\x95\x23\xab\x32\x89\xbe\x8f\x78\xbf\x05\x5d\x29\x99\x7c\x6a\xc1\x1b\xb0\xc9\xf1\x11\xe9\xb7\xe0\x10\x48\x7f\xa0\x98\x55\x0a\xd1\x60\x01\xf8\x50\x96\x2e\x3d\xc6\xc8\x53\x03\x19\x95\xdb\x92\x3b\xf5\xf5\xa0\xf9\x58\xee\x88\xf3\x2a\x5a\xd7\x29\xcb\xbd\x2d\xef\x70\xa4\xae\x6d\x2d\xfa\x83\x9e\xa5\x15\xb0\x28\x70\x89\x40\x79\x79\x18\x51\x77\x1a\xf7\xd4\x39\xd1\xbc\xc9\x87\x21\x5c\x11\xb1\xee\x88\x30\xa2\x8e\x9d\xf5\xfd\x69\x4a\xcb\x1b\xff\x2a\xd4\xbc\x80\x92\x8a\x8c\x77\xc9\x82\x27\x14\x5a\xf0\x61\x08\x7d\xf8\xf6\x0d\x4a\xeb\xf3\x64\x5d\xd5\x6a\x7e\xd1\x38\x1a\x26\xcf\x83\xd2\xd6\x5c\xd9\x9a\x17\x5b\xb9\xd8\x1b\x0b\x0e\x53\x39\x0e\xc1\x1a\x64\x7f\xcd\x5b\xaa\xc2\x95\xcb\x4a\x59\x8e\xe2\x06\xa3\xc8\x9b\x5e\x61\x4c\x90\x75\x32\xa7\x74\x0c\x52\xa7\x78\x55\xb9\x95\xcb\xd3\xd1\x30\xfb\x6b\xa0\x6d\xcf\x4b\xdb\x73\x7d\x3b\xb9\x20\x89\x50\x8d\xd1\x5c\x33\x5c\xea\x22\x93\x3a\xd3\x4d\xc6\x8e\xa9\x60\xad\x09\x75\x7d\x8c\xf3\xbf\x8d\x0f\x42\x6d\x6a\x8c\x69\xb9\x12\xfe\xa5\x2b\x29\x3e\x88\x4e\x5e\x24\x06\x65\x18\xed\x3a\x5b\xda\x33\x5c\x54\xb3\xfd\xea\x3d\xb2\x6c\x62\x91\xdf\x62\xe5\xe1\x49\x97\xe0\xa6\x3c\x0f\x6a\x73\xb0\x68\xae\x35\x52\x7c\x51\xd4\x17\x41\xc2\x15\x26\x2d\x44\x40\x5c\x78\xfd\x1a\x6a\x37\xe3\x5b\xfc\xf7\x24\x55\xc9\x75\x10\xa2\x6c\x3c\x3e\xe2\x92\xc8\x0a\xd2\x2a\xe0\x34\x1b\x04\x11\x5f\xdb\x5a\x8f\x11\x73\xd1\x2e\xab\xbe\xd5\xd2\x14\x5c\x9a\x0f\xa8\x52\xbe\xca\xf4\xab\xf3\xac\xcc\x02\xea\x33\x45\x25\x68\x9b\x12\x46\x59\xee\xd2\x1c\xa1\x29\x3a\xb5\xc0\x68\x0e\xd0\x4c\x2c\x3d\x7b\x4a\xeb\xc4\xcd\xbe\x6e\x19\x1f\x49\x98\xa5\x5e\x0d\x49\x93\xb1\x29\x21\x1b\x9c\xb5\x1c\xa0\xe5\x22\x9a\x07\xb2\xce\x4e\x11\xc7\x4b\x4b\x3b\xde\x30\x1d\x29\x13\x37\xc5\xf5\x98\xba\x6a\x54\xbf\x58\xbc\x24\xbd\xd9\xa3\xd6\x9c\x15\x5d\xa0\x30\xf5\x6a\x9a\xc9\x24\xfe\xfb\x6a\x6b\xd1\x14\x3b\x5a\x74\xf0\xc0\xf7\x1c\x94\x84\xda\xd0\xd7\x23\xa0\x94\x62\x0e\x0f\x6b\xe3\xa3\x26\x85\xbd\xa0\xd9\x40\x4d\x38\xe5\x4c\xf8\xc1\x38\xc9\x4c\xad\x50\xc9\xc2\x59\x86\x2d\x5c\xef\xe9\x19\xc9\x3c\x4f\x67\xda\xd1\xb2\xa8\xbd\x7e\x6d\x74\x6f\xf5\xe4\x4a\x2f\xf2\x02\xe7\xbe\x52\xc4\x7b\xfd\xba\x6c\x22\x38\x52\x4b\xd0\xfb\xf2\x3c\x57\xf7\xd1\x45\x24\x04\xa3\xd5\x2c\x68\x2a\x42\x5a\xe9\x86\x64\x94\x9f\xa0\xf7\x15\x2b\x16\xf7\x4f\x33\x95\xe3\x5a\x2a\x6f\x15\x2a\x7b\x88\xbc\xad\x25\x62\x6c\xb9\x0b\xa3\xc8\xfa\x9f\xc2\xca\x76\xa0\x6f\x69\x51\x97\xd1\x31\x48\x5b\x4d\x78\x1c\x45\x96\x2b\x2b\x8d\x6b\x5b\xd3\x7c\x45\x43\x35\x21\xa3\x73\xd8\xb3\x2a\xe5\xc2\x94\xd9\x92\xa9\xd7\xff\x92\xdb\xbf\x25\xb9\xd5\x64\x0f\xf8\x4f\x97\x2b\xc9\x82\x6e\x52\x1e\x6d\x3e\x17\x01\x9b\xae\xcc\xcb\x2b\xff\x4d\x66\x8f\xdf\x92\x78\x5c\x64\x8d\x0e\xff\x2b\x14\xc9\x9d\x23\x60\x5b\xf5\xd0\x78\xc6\x03\x47\x95\x71\x88\xfb\x98\xee\xc5\x19\xb1\x2d\xf3\xcf\x21\xd4\x11\x98\x37\x10\x98\xe7\x04\x34\xa9\xcc\x39\xbd\xb1\x56\xc9\xeb\x51\x2c\x95\x19\xea\xce\x4c\xf2\x08\xfa\xf7\xba\xee\x1a\x7c\x55\x53\xa2\x34\xdd\xf7\xe8\x6b\x50\x46\xdf\x55\xd1\x1b\xb5\x55\x46\x97\x51\xf6\x11\x7d\x41\xf4\xa8\xab\x21\x61\x88\xca\xd8\xf3\x0f\x87\x52\x90\x37\xfb\xc7\x4e\xf9\xe5\xd3\x7d\x6c\x41\x57\x39\xff\x0d\xf4\x7b\xbd\x5e\xab\x44\x77\x1e\xd3\xdd\x7d\x1f\xdd\xdd\x1e\xba\xb5\x8a\x35\xd8\x61\x3f\xd6\xdc\xa0\xfe\x66\xac\x42\xc5\xc6\x44\xa7\x35\x5a\xcd\xdd\x44\x96\x32\x3f\x0c\xeb\x1b\x8a\xc6\xf6\x26\x1e\x08\xec\xbd\x5b\x1d\x0e\x63\x2b\xd7\x5c\xa6\x92\xdd\xb9\xb1\xd7\xa8\x3d\xb8\xd2\x6e\x68\x33\x87\xca\x71\xda\xd0\xa1\x7c\x60\xfe\x64\x9c\x2a\x19\x27\xe0\x6b\xe2\x4b\x6e\x70\x82\x3c\x60\x94\xa3\xbd\x41\xce\xc9\x0a\x4b\x49\x7d\x4d\x6e\x16\x7f\xca\x2b\x14\x6e\xe1\x4f\x3e\x3d\x1f\xd9\xd6\xf4\x7c\x74\x74\xfc\xee\xff\xac\x36\x58\xb3\xf1\xe7\x59\x56\x50\x12\xd0\x0e\x47\x71\x7e\x35\x3a\xfd\x0d\x77\x19\x3d\x33\x5c\xc2\xa7\xbd\xf5\xa8\xcb\xb6\x1d\x9f\x39\xb1\x27\x77\xd6\x84\xaf\x3b\x3c\x5a\x70\x11\xda\xfd\x2c\x9f\xa5\x23\xb9\x85\x60\xc4\x4e\xd1\x57\xc9\x31\xb6\xf5\xcb\x7c\x36\x9e\x5a\xad\x64\xb6\x96\x52\xab\xbe\x20\xf0\x19\x71\xad\x36\x64\xc2\x97\xe6\x6c\x24\x12\x6b\x59\x16\x1c\x22\xf4\xb9\x47\xfc\x12\x3e\x40\x9a\x94\xc7\xfc\x05\xc4\x0a\x45\xfa\xb6\x22\x2e\x30\x56\x0a\x62\x29\x63\x2a\xc7\x67\x3c\xa6\x56\x8b\x94\x40\x64\x38\x01\x69\x04\x0e\x88\x0a\x19\xcf\x2e\xf6\x80\xc7\x30\x2a\x47\x5f\x70\xb7\x60\x24\x6c\x3c\x26\x83\x51\xf1\x8a\x37\x3b\x79\x2b\x5b\x8b\xaf\xc3\xaa\x74\x04\x3e\x8a\x26\x5c\xb9\x9f\xc1\x27\xba\xe9\x70\xb1\xf3\xb1\xe3\x7a\x3c\xf0\x89\xcc\xf2\x16\x65\x14\xad\x5c\x0d\x8d\xfb\x99\x28\x8d\x40\xf2\xcc\xce\x03\xf1\x23\x94\x1b\x56\xfa\x52\x22\xf9\xf0\xe3\x36\x64\x82\x39\x4c\xea\xd9\xda\x72\x7e\x62\x15\x93\xc5\xdc\x5b\x83\x1c\x66\x08\x56\xfc\x65\x8c\x55\xbe\x72\x95\x89\x64\x34\x92\x68\xdd\xf2\x34\xae\x7e\xc7\xc5\x94\x39\x5f\x50\xd8\x0a\xc2\x21\x58\xdd\xae\x6c\xb9\x8b\xd0\x60\x5c\x50\xb2\x41\x38\x2c\xa5\x05\xe5\xa7\x30\xc6\x42\x01\xff\x0f\xd6\x49\x89\x42\xbc\x7a\x02\x96\xd5\xaa\xa7\x61\x75\xb7\x5c\x9a\x21\x65\xb1\xc3\x68\x1a\xc6\x32\x32\xb2\xf0\x89\xa7\x60\x7a\x8a\x2d\xc5\x91\xa1\x03\x8d\x8d\x6a\x6b\xed\x67\x12\xda\xa6\x44\xa6\x87\xa5\x79\x90\x5a\xcd\x62\x31\x6f\x1d\x97\x08\xa2\xb6\x43\x69\x88\x36\x7a\x43\x26\xc8\xda\xe3\x82\x85\xbb\x0e\x17\x44\x60\x6c\xda\x22\x2e\x34\xb1\xea\xbd\x6c\xe9\xe3\xa3\x55\x96\x35\xf6\xb6\x25\x73\x22\x6e\xef\xbb\x75\x19\xbd\x5b\x23\x99\xaa\xea\x29\x7b\x95\x16\x1b\x2b\x56\xb2\x6a\x2a\xdd\x4a\x86\xcf\x01\x74\xa1\xcc\x9f\x55\x94\xad\xf3\x5c\x7d\xee\x0b\xd3\x66\x25\xc6\x80\x39\x5c\x5d\x56\x50\xf5\x92\x69\x63\x6f\x8a\xcb\x12\x94\xa1\x58\x38\xbe\xe7\x7c\xb1\xda\x75\x11\xf2\xdc\x5f\x11\x2d\x2f\x64\x83\x7f\x4d\xb7\x9a\x37\x99\x9d\x33\x0b\x85\x20\xe2\xeb\xa9\x0c\x07\xa5\x46\xb4\xc1\x4a\xbe\xbd\x84\xdf\xb4\xb2\xf1\xa4\xbc\x85\x79\x65\xf8\x20\x4c\x15\x56\x2f\x19\x8d\x12\x25\xb2\x57\x50\x6a\x4d\xf8\x62\x36\x30\xc5\x6c\xf5\x03\xaf\x80\xb8\xd5\x19\x49\xb6\x52\xeb\xa1\x32\xaf\xbd\xb0\x77\xd6\xab\x45\xa9\x88\xaf\x86\x71\xa5\xa8\x99\x24\x08\x59\x59\x0a\xe8\x96\x21\xd5\xa9\x85\xb5\xac\x84\x98\x52\xd2\xab\x65\x1e\xb6\x20\xce\x17\x5b\xf3\x9f\x14\x84\xd1\x80\x05\x69\x32\xde\x53\x83\xea\xdc\x3d\xf3\x77\x5d\x9c\xe7\xe4\x59\x78\x6e\x37\x01\xb5\x33\xb4\x7a\x51\x0b\x9d\x3c\x0d\x9a\x13\x57\x88\xb2\x89\x7d\xe9\xb4\x65\xf6\x8c\xbc\x83\x48\x98\xd0\xed\x24\xb5\x58\xe5\x27\xbe\x9f\x71\x41\x42\x61\xb5\xd5\xd7\x97\xed\xfc\xf3\xca\x3d\xb8\x48\xdd\x1c\x73\x4c\xdd\x67\xe3\x39\xf1\xc8\x31\x47\x4d\x26\x90\xcf\xc6\x96\xb7\xba\x1c\x57\xde\xa3\x0a\xcc\xa7\xe2\xf1\x9f\x01\x00\x00\xff\xff\x16\x31\x02\x9c\xe8\x2f\x00\x00") func webdataFnJsBytes() ([]byte, error) { return bindataRead( @@ -89,7 +89,7 @@ func webdataFnJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "webdata/fn.js", size: 12035, mode: os.FileMode(436), modTime: time.Unix(1, 0)} + info := bindataFileInfo{name: "webdata/fn.js", size: 12264, mode: os.FileMode(436), modTime: time.Unix(1, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/main.go b/main.go index 1e3edf4..7f7a08d 100644 --- a/main.go +++ b/main.go @@ -51,6 +51,9 @@ func processCommand(plugin Plugin, command string) error { if len(command) == 0 { return errors.New("empty command") } + if command == "sf" { + return plugin.PointerScrollFinish() + } if command[0] == 't' { text := command[1:] if !utf8.ValidString(text) { diff --git a/plugin.go b/plugin.go index 8f9c722..9445537 100644 --- a/plugin.go +++ b/plugin.go @@ -42,5 +42,6 @@ type Plugin interface { KeyboardText(text string) error PointerButton(button uint, press bool) error PointerMove(deltaX, deltaY int) error - PointerScroll(stepsHorizontal, stepsVertical int) error + PointerScroll(deltaHorizontal, deltaVertical int) error + PointerScrollFinish() error } diff --git a/plugin_windows.go b/plugin_windows.go index 64db40f..91c6e97 100644 --- a/plugin_windows.go +++ b/plugin_windows.go @@ -44,7 +44,7 @@ const ( mouseeventfWheel uint32 = 0x800 mouseeventfHwheel uint32 = 0x1000 - wheelDelta int = 120 + scrollMult int = 6 ) type mouseInput struct { @@ -146,20 +146,20 @@ func (p *windowsPlugin) PointerMove(deltaX, deltaY int) error { return nil } -func (p *windowsPlugin) PointerScroll(stepsHorizontal, stepsVertical int) error { +func (p *windowsPlugin) PointerScroll(deltaHorizontal, deltaVertical int) error { inputs := make([]mouseInput, 0, 2) - if stepsHorizontal != 0 { + if deltaHorizontal != 0 { inputs = append(inputs, mouseInput{ typ: inputMouse, dwFlags: mouseeventfHwheel, - mouseData: uint32(stepsHorizontal * wheelDelta), + mouseData: uint32(deltaHorizontal * scrollMult), }) } - if stepsVertical != 0 { + if deltaVertical != 0 { inputs = append(inputs, mouseInput{ typ: inputMouse, dwFlags: mouseeventfWheel, - mouseData: uint32(stepsVertical * wheelDelta), + mouseData: uint32(deltaVertical * scrollMult), }) } if len(inputs) == 0 { @@ -172,3 +172,7 @@ func (p *windowsPlugin) PointerScroll(stepsHorizontal, stepsVertical int) error } return nil } + +func (p *windowsPlugin) PointerScrollFinish() error { + return nil +} diff --git a/plugin_x11.go b/plugin_x11.go index 6273f4f..747df9f 100644 --- a/plugin_x11.go +++ b/plugin_x11.go @@ -35,11 +35,15 @@ import ( "unsafe" ) -const typingDelay time.Duration = 100 * time.Millisecond +const ( + typingDelay time.Duration = 100 * time.Millisecond + scrollDiv int = 20 +) type x11Plugin struct { - display *C.Display - lock sync.Mutex + display *C.Display + lock sync.Mutex + scrollHorizontal, scrollVertical int } func InitX11Plugin() (Plugin, error) { @@ -157,7 +161,13 @@ func (p *x11Plugin) PointerMove(deltaX, deltaY int) error { return nil } -func (p *x11Plugin) PointerScroll(stepsHorizontal, stepsVertical int) error { +func (p *x11Plugin) PointerScroll(deltaHorizontal, deltaVertical int) error { + p.lock.Lock() + stepsHorizontal := (p.scrollHorizontal + deltaHorizontal) / scrollDiv + stepsVertical := (p.scrollVertical + deltaVertical) / scrollDiv + p.scrollHorizontal = (p.scrollHorizontal + deltaHorizontal) % scrollDiv + p.scrollVertical = (p.scrollVertical + deltaVertical) % scrollDiv + p.lock.Unlock() var buttonHorizontal uint = 7 if stepsHorizontal < 0 { buttonHorizontal = 6 @@ -186,3 +196,11 @@ func (p *x11Plugin) PointerScroll(stepsHorizontal, stepsVertical int) error { } return nil } + +func (p *x11Plugin) PointerScrollFinish() error { + p.lock.Lock() + defer p.lock.Unlock() + p.scrollHorizontal = 0 + p.scrollVertical = 0 + return nil +} diff --git a/webdata/fn.js b/webdata/fn.js index 35d174a..9bc7f6f 100644 --- a/webdata/fn.js +++ b/webdata/fn.js @@ -20,8 +20,6 @@ // [1 Touch, 2 Touches, 3 Touches] const TOUCH_MOVE_THRESHOLD = [10, 15, 15]; const TOUCH_TIMEOUT = 250; -const MOVE_MULT = 1; -const SCROLL_MULT = 0.05; // [[px/s, mult], ...] const POINTER_ACCELERATION = [[0, 0], [87, 1], [173, 1], [553, 2]]; @@ -40,6 +38,7 @@ var scrollXSum = 0; var scrollYSum = 0; var dragging = false; var draggingTimeout = null; +var scrolling = false; function fullscreenEnabled() { return (document.fullscreenEnabled || @@ -153,6 +152,7 @@ function updateMoveAndScroll() { if (Math.abs(scrollX) >= 1 || Math.abs(scrollY) >= 1) { scrollXSum -= scrollX; scrollYSum -= scrollY; + scrolling = true; ws.send("s" + scrollX + ";" + scrollY); } } @@ -183,6 +183,10 @@ function handleStart(evt) { draggingTimeout = null; dragging = true; } + if (scrolling) { + ws.send("sf"); + scrolling = false; + } } } @@ -196,6 +200,10 @@ function handleEnd(evt) { ongoingTouches.splice(idx, 1); touchReleasedCount++; touchLastEnd = evt.timeStamp; + if (scrolling) { + ws.send("sf"); + scrolling = false; + } } if (touchReleasedCount > TOUCH_MOVE_THRESHOLD.length) { touchMoved = true; @@ -234,6 +242,10 @@ function handleCancel(evt) { touchReleasedCount++; touchLastEnd = evt.timeStamp; touchMoved = true; + if (scrolling) { + ws.send("sf"); + scrolling = false; + } } } @@ -261,11 +273,11 @@ function handleMove(evt) { } if (touchMoved && evt.timeStamp - touchLastEnd >= TOUCH_TIMEOUT) { if (ongoingTouches.length == 1 || dragging) { - moveXSum += sumX * MOVE_MULT; - moveYSum += sumY * MOVE_MULT; + moveXSum += sumX; + moveYSum += sumY; } else if (ongoingTouches.length == 2) { - scrollXSum -= sumX * SCROLL_MULT; - scrollYSum -= sumY * SCROLL_MULT; + scrollXSum -= sumX; + scrollYSum -= sumY; } updateMoveAndScroll(); }